{"version":3,"sources":["webpack:///./node_modules/vue-chartjs/dist/vue-chartjs.js","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/mixins/delayable/index.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/mixins/stackable/index.ts","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///./src/views/components/charts/BarChart.ts","webpack:///./src/views/pages/Report/general.vue?6e12","webpack:///./src/views/components/charts/LineChart.ts","webpack:///./src/views/pages/Report/general.vue","webpack:///./src/views/pages/Report/general.vue?8ec6","webpack:///./src/views/pages/Report/general.vue?7ec4","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/mixins/activatable/index.ts","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./src/views/components/inputs/period.vue?d588","webpack:///./src/views/components/inputs/period.vue","webpack:///./src/views/components/inputs/period.vue?1ba6","webpack:///./src/views/components/inputs/period.vue?c6ba","webpack:///./node_modules/core-js/internals/collection.js","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/mixins/dependent/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///./src/config/enum.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///./src/networks/ReportApi.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/mixins/menuable/index.ts"],"names":["root","factory","module","exports","self","__WEBPACK_EXTERNAL_MODULE_3__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","value","VueCharts","__WEBPACK_IMPORTED_MODULE_0__mixins_index_js__","__WEBPACK_IMPORTED_MODULE_1__BaseCharts__","Bar","HorizontalBar","Doughnut","Line","Pie","PolarArea","Radar","Bubble","Scatter","mixins","generateChart","render","console","error","dataHandler","newData","oldData","chart","this","$data","_chart","newDatasetLabels","datasets","map","dataset","label","oldDatasetLabels","oldLabels","JSON","stringify","newLabels","length","forEach","oldDatasetKeys","keys","newDatasetKeys","deletionKeys","filter","key","indexOf","attribute","deletionKey","data","labels","$emit","xLabels","yLabels","update","destroy","renderChart","chartData","options","reactiveData","watch","reactiveProp","props","type","required","default","__WEBPACK_IMPORTED_MODULE_0_chart_js__","__WEBPACK_IMPORTED_MODULE_0_chart_js___default","chartId","chartType","createElement","style","styles","class","cssClasses","attrs","id","width","height","ref","String","Number","plugins","Array","_plugins","methods","addPlugin","plugin","push","generateLegend","$refs","canvas","Error","a","getContext","beforeDestroy","breakpoints","ALIGNMENT","makeProps","prefix","def","alignValidator","str","alignProps","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","justify","alignContent","classMap","breakpointClass","className","val","breakpoint","prop","cache","functional","tag","dense","noGutters","children","cacheKey","classList","h","staticClass","openDelay","closeDelay","openTimeout","closeTimeout","undefined","clearDelay","clearTimeout","runDelay","delay","parseInt","setTimeout","cb","open","close","filteredChild","VNode","provide","isInGroup","listItemGroup","computed","classes","genData","setTextColor","role","stackElement","stackExclude","stackMinZIndex","isActive","activeZIndex","window","content","index","getMaxZIndex","exclude","base","zis","activeElements","document","Math","global","e","moment","createCommonjsModule","fn","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","comparativeDistance","x","y","pow","r","g","b","min","max","delta","rdif","gdif","bdif","v","diff","diffc","w","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","sv","smin","lmin","hi","floor","f","q","t","sl","vmin","wh","bl","ratio","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","args","arguments","round","ansi","color","mult","rem","integer","string","toString","toUpperCase","substring","match","colorString","split","char","join","grayscale","hue","chroma","pure","mg","buildGraph","graph","models","len","parent","deriveBFS","fromModel","queue","current","pop","adjacents","adjacent","node","unshift","link","from","to","wrapConversion","toModel","path","cur","conversion","route","wrapRaw","wrappedFn","slice","wrapRounded","result","routes","routeModels","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","abbr","rgba","per","hexAlpha","parseFloat","scale","alpha","isNaN","hsla","vals","hexDouble","reverseNames","num","Color","obj","valid","values","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","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","source","target","spaces","maxes","getValues","space","charAt","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","noop","uid","isNullOrUndef","isArray","substr","isObject","isFinite","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","thisArg","apply","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","create","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","assign","dst","src","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","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","ctx","clearRect","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","size","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","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","info","cacheable","exports$2","_factorize","sort","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","getAdapter","rtl","overrideTextDirection","direction","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","helpers_rtl","helpers$1","easing","math","interpolate","start","view","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","method","res","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","_data","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_config","_cachedDataOpts","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","end","mode","offset","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","listItemSpan","list","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","text","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains180","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","config","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controller_scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","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","pos","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","params","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","platform_dom","platform_dom$1","__proto__","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","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","throttled","ticking","createDiv","cls","el","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","add","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","targetNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","core_plugins","_cacheId","register","unregister","idx","getAll","notify","hook","descriptor","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","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","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_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","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","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","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","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","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","parse","format","startOf","endOf","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","sample","arr","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","ceil","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","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","getMin","time","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","input","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","visible","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","toLowerCase","BarChart","extends","_vm","_h","$createElement","_c","_self","_v","selectedPeriod","on","$event","staticStyle","mainEvent","mainUser","mainCall","mainOffice","mainOfficeCall","staticRenderFns","ChartOptions","all","calls","users","officeCall","office","ReportApi","period","dates","$vuetify","theme","currentTheme","primary","store","commit","message","response","city","officeChartColor","mainUsers","oldVal","components","LineChart","component","VApp","VCard","VCardTitle","VCol","VContainer","VRow","Boolean","isDark","$slots","baseMixins","activator","includes","disabled","internalActivator","openOnHover","openOnFocus","activatorElement","activatorNode","mounted","slotType","addActivatorEvents","genActivator","genActivatorAttributes","genActivatorListeners","getActivator","getContentSlot","getValueProxy","removeActivatorEvents","resetActivator","collectionStrong","init","directives","ripple","activeClass","appendIcon","group","noAction","prependIcon","subGroup","listClick","$route","created","matchRoute","click","genIcon","genAppendIcon","icon","genHeader","inputValue","genItems","showLazyContent","genPrependIcon","onRouteChange","toggle","_uid","isBooted","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","BaseItemGroup","mandatory","multiple","internalLazyValue","themeClasses","selectedIndex","selectedItem","selectedItems","selectedValues","internalValue","toggleMethod","getValue","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","isSame","itemGroup","breakpointProps","offsetProps","orderProps","col","cols","alignSelf","hasColClasses","redefineAll","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","AS_ENTRIES","getInternalState","define","state","entry","getEntry","removed","callbackfn","boundFunction","has","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","done","_l","slug","_s","$$v","expression","VSelect","VBtn","$","isForced","redefine","InternalMetadataModule","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","REPLACE","entries","REQUIRED","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","forced","validateAttachTarget","Node","attach","contentClass","hasDetached","hasContent","beforeMount","deactivated","getScopeIdAttrs","scopeId","initDetach","_isDestroyed","roundedClasses","minWidth","measurableStyles","$listeners","setBackgroundColor","tile","valueComparator","isInList","inject","isInMenu","isInNav","flat","nav","subheader","threeLine","twoLine","groups","attrs$","VCardActions","VCardSubtitle","VCardText","eager","defaultConditional","directive","binding","ClickOutside","inserted","app","unbind","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","proto","deleteCount","insertCount","actualDeleteCount","A","O","actualStart","argumentsLength","TypeError","searchChildren","results","child","closeDependents","isDependent","openDependents","getOpenDependents","getOpenDependentElements","getClickableDependentElements","overlay","indeterminate","indeterminateIcon","onIcon","offIcon","VIcon","mergeData","inset","action","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","tileActiveClass","staticNoDataTile","mousedown","VListItem","genTileContent","genAction","VListItemAction","genDivider","VDivider","genFilteredText","getMaskedCharacters","genHighlight","middle","genTile","hasItem","getDisabled","$scopedSlots","scopedSlot","needsTile","innerHTML","getText","VList","domProps","slot","itemsLength","tabindex","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","openOnClick","cacheItems","chips","clearable","deletableChips","disableLookup","itemColor","menuProps","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","computedItems","computedOwns","computedCounterValue","counterValue","isFocused","closeConditional","include","dynamicHeight","hasChips","hasSlot","isDirty","listData","$vnode","lang","select","selectItem","scopedSlots","staticList","VSelectList","virtualizedItems","$_menuProps","menuCanShow","normalisedProps","acc","nudgeBottom","immediate","blur","activateMenu","clearableCallback","getContent","contains","$el","uniqueValues","findExistingIndex","menu","genChipSelection","isDisabled","VChip","small","genCommaSelection","genDefaultSlot","selections","genAffix","suffix","VInput","genInput","readonly","autocomplete","keypress","onKeyPress","genHiddenInput","genInputSlot","genList","genListWithSlot","slots","slotName","genMenu","VMenu","scroll","genSelections","genSelection","genSlotSelection","selection","selected","isInteractive","getMenuIndex","onBlur","onChipInput","setValue","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","performance","onKeyDown","isReadonly","keyCode","onUpDown","onTabDown","onSpaceDown","onMenuActiveChange","onMouseUp","hasMouseDown","showMoreItems","scrollHeight","activeTile","listIndex","setMenuIndex","setSelectedItems","oldValue","appendInner","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","chipGroup","closeIcon","closeLabel","draggable","filterIcon","outlined","pill","proxyClass","groupClasses","hasClose","isClickable","breakingProps","replacement","genFilter","genClose","genContent","$attrs","orientation","Enum","eventTypes","eventStatusAdmin","eventStatus","onlineTypes","eventTypesQuick","eventTypesQuickWithPrice","userSource","months","userConnectSources","currencies","TypePayment","eventPaymentType","MigrationMethods","all_money_i_have","monthly_salary","military_status","type_of_fund","grades","languages","language_level","Ripple","inheritAttrs","inactive","selectable","genAttrs","keydown","token","localStorage","getItem","headers","Authorization","Resize","auto","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","tiles","calculatedLeft","menuWidth","dimensions","calcXOverflow","calcLeft","calculatedMaxHeight","calculatedMaxWidth","calculatedMinWidth","pageWidth","calculatedTop","calcYOverflow","hasClickableTiles","find","transformOrigin","zIndex","isContentActive","activate","calcScrollPosition","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","computedTop","changeListIndex","attributes","genTransition","genDirectives","menuable__content__active","getTiles","querySelectorAll","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","lastTile","firstTile","arg","returnValue","originalValue","allowOverflow","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","absoluteX","absoluteY","activatedBy","activatorFixed","offsetTop","hasWindow","inputActivator","pageYOffset","stackClass","computedLeft","activatorLeft","hasActivator","absolutePosition","calcTop","xOverflow","documentHeight","toTop","contentHeight","isOverflowing","callActivate","callDeactivate","checkForPageYOffset","checkActivatorFixed","deactivate","getInnerHeight","getOffsetLeft","getOffsetTop","getRoundedBoundedClientRect","measure","sneakPeek","startTransition","Promise","updateDimensions"],"mappings":"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KAAM,aACN2xE,KAAM,WAER,CACE3xE,KAAM,aACN2xE,KAAM,WAER,CACE3xE,KAAM,cACN2xE,KAAM,YAER,CACE3xE,KAAM,aACN2xE,KAAM,YAER,CACE3xE,KAAM,aACN2xE,KAAM,aAER,CACE3xE,KAAM,aACN2xE,KAAM,aAER,CACE3xE,KAAM,aACN2xE,KAAM,cAOI,EAAAyR,WAAa,CACzB,CACEznD,KAAM,MACN16B,MAAO,IAET,CACE06B,KAAM,WACN16B,MAAO,QAET,CACE06B,KAAM,oBACN16B,MAAO,aAET,CACE06B,KAAM,QACN16B,MAAO,SAET,CACE06B,KAAM,oBACN16B,MAAO,UAET,CACE06B,KAAM,gBACN16B,MAAO,SAET,CACE06B,KAAM,eACN16B,MAAO,QAET,CACE06B,KAAM,cACN16B,MAAO,OAET,CACE06B,KAAM,UACN16B,MAAO,YAET,CACE06B,KAAM,gBACN16B,MAAO,UAET,CACE06B,KAAM,cACN16B,MAAO,UAET,CACE06B,KAAM,gBACN16B,MAAO,WAGG,EAAAoiF,iBAAmB,CAC/B,CACE1nD,KAAM,aACN16B,MAAO,GAET,CACE06B,KAAM,YACN16B,MAAO,GAET,CACE06B,KAAM,UACN16B,MAAO,GAET,CACE06B,KAAM,QACN16B,MAAO,GAET,CACE06B,KAAM,mBACN16B,MAAO,IAGG,EAAAqiF,YAAc,CAC1B,CACE3nD,KAAM,uBACN16B,MAAO,GAET,CACE06B,KAAM,WACN16B,MAAO,GAET,CACE06B,KAAM,UACN16B,MAAO,GAET,CACE06B,KAAM,oCACN16B,MAAO,GAET,CACE06B,KAAM,iBACN16B,MAAO,IAGG,EAAAsiF,YAAc,CAC1B,QACA,uBACA,mBAEY,EAAAC,gBAAkB,CAC9B,CACE7nD,KAAM,yCACNqY,QAAS,uBACT/yC,MAAO,SAET,CACE06B,KAAM,qBACNqY,QAAS,wBACT/yC,MAAO,OAET,CACE06B,KAAM,eACNqY,QAAS,uBACT/yC,MAAO,QAET,CACE06B,KAAM,cACNqY,QACE,kEACF/yC,MAAO,iBAMT,CACE06B,KAAM,uBACNqY,QACE,kEACF/yC,MAAO,yBAOG,EAAAwiF,yBAA2B,CACvC,CACE9nD,KAAM,uCACN16B,MAAO,OAET,CACE06B,KAAM,gCACN16B,MAAO,QAET,CACE06B,KACE,sFACF16B,MAAO,iBAET,CACE06B,KAAM,2CACN16B,MAAO,YAET,CACE06B,KAAM,wCACN16B,MAAO,SAET,CACE06B,KACE,uFACF16B,MAAO,wBAET,CACE06B,KAAM,8CACN16B,MAAO,oBAGG,EAAAyiF,WAAa,CACzB,CACE/nD,KAAM,WACN16B,MAAO,QAET,CACE06B,KAAM,oBACN16B,MAAO,aAET,CACE06B,KAAM,QACN16B,MAAO,SAET,CACE06B,KAAM,UACN16B,MAAO,WAET,CACE06B,KAAM,WACN16B,MAAO,aAGG,EAAA0iF,OAAS,CACrB,CACEhoD,KAAM,UACN16B,MAAO,KAET,CACE06B,KAAM,WACN16B,MAAO,KAET,CACE06B,KAAM,QACN16B,MAAO,KAET,CACE06B,KAAM,MACN16B,MAAO,KAET,CACE06B,KAAM,QACN16B,MAAO,KAET,CACE06B,KAAM,SACN16B,MAAO,KAET,CACE06B,KAAM,MACN16B,MAAO,KAET,CACE06B,KAAM,OACN16B,MAAO,KAET,CACE06B,KAAM,MACN16B,MAAO,KAET,CACE06B,KAAM,KACN16B,MAAO,MAET,CACE06B,KAAM,OACN16B,MAAO,MAET,CACE06B,KAAM,QACN16B,MAAO,OAGG,EAAA2iF,mBAAqB,CACjC,QACA,YACA,WACA,UACA,QAEY,EAAA70D,MAAQ,CACpB,CACE/uB,KAAM,IACN2xE,KAAM,GAER,CACE3xE,KAAM,KACN2xE,KAAM,IAER,CACE3xE,KAAM,KACN2xE,KAAM,IAER,CACE3xE,KAAM,KACN2xE,KAAM,IAER,CACE3xE,KAAM,MACN2xE,KAAM,MAGI,EAAAkS,WAAa,CACzB,CACEloD,KAAM,cACN16B,MAAO,OAET,CACE06B,KAAM,cACN16B,MAAO,OAET,CACE06B,KAAM,OACN16B,MAAO,OAET,CACE06B,KAAM,cACN16B,MAAO,OAET,CACE06B,KAAM,kCACN16B,MAAO,UAGG,EAAAqnE,aAAe,CAC3BpuB,YAAY,EACZ3N,qBAAqB,GAET,EAAAu3C,YAAc,CAC1B,CACEnoD,KAAM,UACN16B,MAAO,MAET,CACE06B,KAAM,SACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,GAET,CACE06B,KAAM,cACN16B,MAAO,GAET,CACE06B,KAAM,WACN16B,MAAO,GAET,CACE06B,KAAM,eACN16B,MAAO,GAET,CACE06B,KAAM,eACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,IAGG,EAAA8iF,iBAAmB,CAC/B,EAAK,gBACL,EAAK,sBACL,EAAK,sBAEO,EAAAC,iBAAmB,CAC/B,CACEroD,KAAM,SACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,GAET,CACE06B,KAAM,eACN16B,MAAO,GAET,CACE06B,KAAM,MACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,IAGG,EAAAgjF,iBAAmB,CAC/B,CACEtoD,KAAM,4BACN16B,MAAO,GAET,CACE06B,KAAM,0BACN16B,MAAO,GAGT,CACE06B,KAAM,gCACN16B,MAAO,GAET,CACE06B,KAAM,uBACN16B,MAAO,GAET,CACE06B,KAAM,uBACN16B,MAAO,GAET,CACE06B,KAAM,wBACN16B,MAAO,GAET,CACE06B,KAAM,0BACN16B,MAAO,IAGG,EAAAijF,eAAiB,CAC7B,CACEvoD,KAAM,0BACN16B,MAAO,GAET,CACE06B,KAAM,uBACN16B,MAAO,GAET,CACE06B,KAAM,wBACN16B,MAAO,GAET,CACE06B,KAAM,wBACN16B,MAAO,GAET,CACE06B,KAAM,wBACN16B,MAAO,GAET,CACE06B,KAAM,yBACN16B,MAAO,GAET,CACE06B,KAAM,0BACN16B,MAAO,IAGG,EAAAkjF,gBAAkB,CAC9B,CACExoD,KAAM,UACN16B,MAAO,GAET,CACE06B,KAAM,gBACN16B,MAAO,GAET,CACE06B,KAAM,QACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,IAGG,EAAAmjF,aAAe,CAC3B,CACEzoD,KAAM,QACN16B,MAAO,GAET,CACE06B,KAAM,MACN16B,MAAO,GAET,CACE06B,KAAM,cACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,IAGG,EAAAojF,OAAS,CACrB,CACE1oD,KAAM,QACN16B,MAAO,KAET,CACE06B,KAAM,SACN16B,MAAO,KAET,CACE06B,KAAM,aACN16B,MAAO,KAET,CACE06B,KAAM,QACN16B,MAAO,KAET,CACE06B,KAAM,YACN16B,MAAO,KAET,CACE06B,KAAM,cACN16B,MAAO,KAET,CACE06B,KAAM,OACN16B,MAAO,MAGG,EAAAqjF,UAAY,CACxB,CACE3oD,KAAM,UACN16B,MAAO,GAET,CACE06B,KAAM,UACN16B,MAAO,GAET,CACE06B,KAAM,SACN16B,MAAO,GAET,CACE06B,KAAM,YACN16B,MAAO,GAET,CACE06B,KAAM,YACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,GAET,CACE06B,KAAM,OACN16B,MAAO,IAET,CACE06B,KAAM,SACN16B,MAAO,IAET,CACE06B,KAAM,QACN16B,MAAO,IAET,CACE06B,KAAM,OACN16B,MAAO,IAET,CACE06B,KAAM,OACN16B,MAAO,IAGG,EAAAsjF,eAAiB,CAC7B,CACE5oD,KAAM,YACN16B,MAAO,MAET,CACE06B,KAAM,eACN16B,MAAO,MAET,CACE06B,KAAM,sBACN16B,MAAO,MAET,CACE06B,KAAM,aACN16B,MAAO,MAET,CACE06B,KAAM,qBACN16B,MAAO,MAET,CACE06B,KAAM,eACN16B,MAAO,Q,0KCpkBPspE,EAAa,eAAO,EAAD,mBAIvB,eAJuB,iBAKvB,eALF,eAiBe,OAAAA,EAAA,gBAAoC,CACjDvqE,KADiD,cAGjD6rE,WAAY,CACV2Y,OAAA,QAGFxP,OAAQ,CACNhrE,UAAW,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","file":"js/chunk-32d57136.8edf743c.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"chart.js\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"VueChartJs\", [\"chart.js\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueChartJs\"] = factory(require(\"chart.js\"));\n\telse\n\t\troot[\"VueChartJs\"] = factory(root[\"Chart\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_3__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VueCharts\", function() { return VueCharts; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_index_js__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__BaseCharts__ = __webpack_require__(2);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Bar\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"HorizontalBar\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"d\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Doughnut\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"c\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Line\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"e\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Pie\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"f\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"PolarArea\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"g\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Radar\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"h\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Bubble\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"b\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Scatter\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"i\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"mixins\", function() { return __WEBPACK_IMPORTED_MODULE_0__mixins_index_js__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"generateChart\", function() { return __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"j\"]; });\n\n\nvar VueCharts = {\n Bar: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"a\" /* Bar */],\n HorizontalBar: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"d\" /* HorizontalBar */],\n Doughnut: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"c\" /* Doughnut */],\n Line: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"e\" /* Line */],\n Pie: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"f\" /* Pie */],\n PolarArea: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"g\" /* PolarArea */],\n Radar: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"h\" /* Radar */],\n Bubble: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"b\" /* Bubble */],\n Scatter: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"i\" /* Scatter */],\n mixins: __WEBPACK_IMPORTED_MODULE_0__mixins_index_js__[\"a\" /* default */],\n generateChart: __WEBPACK_IMPORTED_MODULE_1__BaseCharts__[\"j\" /* generateChart */],\n render: function render() {\n return console.error('[vue-chartjs]: This is not a vue component. It is the whole object containing all vue components. Please import the named export or access the components over the dot notation. For more info visit https://vue-chartjs.org/#/home?id=quick-start');\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (VueCharts);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export reactiveData */\n/* unused harmony export reactiveProp */\nfunction dataHandler(newData, oldData) {\n if (oldData) {\n var chart = this.$data._chart;\n var newDatasetLabels = newData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldDatasetLabels = oldData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldLabels = JSON.stringify(oldDatasetLabels);\n var newLabels = JSON.stringify(newDatasetLabels);\n\n if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {\n newData.datasets.forEach(function (dataset, i) {\n var oldDatasetKeys = Object.keys(oldData.datasets[i]);\n var newDatasetKeys = Object.keys(dataset);\n var deletionKeys = oldDatasetKeys.filter(function (key) {\n return key !== '_meta' && newDatasetKeys.indexOf(key) === -1;\n });\n deletionKeys.forEach(function (deletionKey) {\n delete chart.data.datasets[i][deletionKey];\n });\n\n for (var attribute in dataset) {\n if (dataset.hasOwnProperty(attribute)) {\n chart.data.datasets[i][attribute] = dataset[attribute];\n }\n }\n });\n\n if (newData.hasOwnProperty('labels')) {\n chart.data.labels = newData.labels;\n this.$emit('labels:update');\n }\n\n if (newData.hasOwnProperty('xLabels')) {\n chart.data.xLabels = newData.xLabels;\n this.$emit('xlabels:update');\n }\n\n if (newData.hasOwnProperty('yLabels')) {\n chart.data.yLabels = newData.yLabels;\n this.$emit('ylabels:update');\n }\n\n chart.update();\n this.$emit('chart:update');\n } else {\n if (chart) {\n chart.destroy();\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n } else {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n}\n\nvar reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nvar reactiveProp = {\n props: {\n chartData: {\n type: Object,\n required: true,\n default: function _default() {}\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"j\"] = generateChart;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Bar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return HorizontalBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return Doughnut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return Line; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return Pie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return PolarArea; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return Radar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Bubble; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"i\", function() { return Scatter; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_chart_js__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_chart_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_chart_js__);\n\nfunction generateChart(chartId, chartType) {\n return {\n render: function render(createElement) {\n return createElement('div', {\n style: this.styles,\n class: this.cssClasses\n }, [createElement('canvas', {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: 'canvas'\n })]);\n },\n props: {\n chartId: {\n default: chartId,\n type: String\n },\n width: {\n default: 400,\n type: Number\n },\n height: {\n default: 400,\n type: Number\n },\n cssClasses: {\n type: String,\n default: ''\n },\n styles: {\n type: Object\n },\n plugins: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n _chart: null,\n _plugins: this.plugins\n };\n },\n methods: {\n addPlugin: function addPlugin(plugin) {\n this.$data._plugins.push(plugin);\n },\n generateLegend: function generateLegend() {\n if (this.$data._chart) {\n return this.$data._chart.generateLegend();\n }\n },\n renderChart: function renderChart(data, options) {\n if (this.$data._chart) this.$data._chart.destroy();\n if (!this.$refs.canvas) throw new Error('Please remove the tags from your chart component. See https://vue-chartjs.org/guide/#vue-single-file-components');\n this.$data._chart = new __WEBPACK_IMPORTED_MODULE_0_chart_js___default.a(this.$refs.canvas.getContext('2d'), {\n type: chartType,\n data: data,\n options: options,\n plugins: this.$data._plugins\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n }\n }\n };\n}\nvar Bar = generateChart('bar-chart', 'bar');\nvar HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nvar Doughnut = generateChart('doughnut-chart', 'doughnut');\nvar Line = generateChart('line-chart', 'line');\nvar Pie = generateChart('pie-chart', 'pie');\nvar PolarArea = generateChart('polar-chart', 'polarArea');\nvar Radar = generateChart('radar-chart', 'radar');\nvar Bubble = generateChart('bubble-chart', 'bubble');\nvar Scatter = generateChart('scatter-chart', 'scatter');\n/* unused harmony default export */ var _unused_webpack_default_export = ({\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=vue-chartjs.js.map","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import Vue from 'vue'\n\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend().extend({\n name: 'delayable',\n\n props: {\n openDelay: {\n type: [Number, String],\n default: 0,\n },\n closeDelay: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data: () => ({\n openTimeout: undefined as number | undefined,\n closeTimeout: undefined as number | undefined,\n }),\n\n methods: {\n /**\n * Clear any pending delay timers from executing\n */\n clearDelay (): void {\n clearTimeout(this.openTimeout)\n clearTimeout(this.closeTimeout)\n },\n /**\n * Runs callback after a specified delay\n */\n runDelay (type: 'open' | 'close', cb?: () => void): void {\n this.clearDelay()\n\n const delay = parseInt((this as any)[`${type}Delay`], 10)\n\n ;(this as any)[`${type}Timeout`] = setTimeout(cb || (() => {\n this.isActive = { open: true, close: false }[type]\n }), delay)\n },\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","import Vue from 'vue'\n\nimport { getZIndex } from '../../util/helpers'\n\ninterface options extends Vue {\n $refs: {\n content: Element\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'stackable',\n\n data () {\n return {\n stackElement: null as Element | null,\n stackExclude: null as Element[] | null,\n stackMinZIndex: 0,\n isActive: false,\n }\n },\n computed: {\n activeZIndex (): number {\n if (typeof window === 'undefined') return 0\n\n const content = this.stackElement || this.$refs.content\n // Return current zindex if not active\n\n const index = !this.isActive\n ? getZIndex(content)\n : this.getMaxZIndex(this.stackExclude || [content]) + 2\n\n if (index == null) return index\n\n // Return max current z-index (excluding self) + 2\n // (2 to leave room for an overlay below, if needed)\n return parseInt(index)\n },\n },\n methods: {\n getMaxZIndex (exclude: Element[] = []) {\n const base = this.$el\n // Start with lowest allowed z-index or z-index of\n // base component's element, whichever is greater\n const zis = [this.stackMinZIndex, getZIndex(base)]\n // Convert the NodeList to an array to\n // prevent an Edge bug with Symbol.iterator\n // https://github.com/vuetifyjs/vuetify/issues/2146\n const activeElements = [\n ...document.getElementsByClassName('v-menu__content--active'),\n ...document.getElementsByClassName('v-dialog__content--active'),\n ]\n\n // Get z-index for all active dialogs\n for (let index = 0; index < activeElements.length; index++) {\n if (!exclude.includes(activeElements[index])) {\n zis.push(getZIndex(activeElements[index]))\n }\n }\n\n return Math.max(...zis)\n },\n },\n})\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 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 = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\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\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\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$1[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$1) {\n reverseNames[colorName$1[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\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the