{"version":3,"sources":["webpack:///./node_modules/vue-chartjs/dist/vue-chartjs.js","webpack:///./src/views/pages/Report/best.vue?6856","webpack:///./src/views/components/inputs/count.vue?bc36","webpack:///./src/views/components/inputs/count.vue","webpack:///./src/views/components/inputs/count.vue?a8a8","webpack:///./src/views/components/inputs/count.vue?580f","webpack:///./src/views/pages/Report/best.vue","webpack:///./src/views/pages/Report/best.vue?7627","webpack:///./src/views/pages/Report/best.vue?e7c3","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/components/VTooltip/VTooltip.ts","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/models/UserModel.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","_vm","_h","$createElement","_c","_self","_v","staticClass","selectedPeriod","on","$event","selectedCount","_l","item","user","fullAvatar","domProps","_s","fullName","cnt","scopedSlots","_u","fn","_g","_b","staticRenderFns","slug","period","model","callback","$$v","expression","defaultValue","count","components","VSelect","VBtn","component","ChartOptions","mainEvent","topAdvisers","topCall","dashboard","ReportApi","bests","limit","res","top_advisers","x","UserModel","creator","top_calls","mentor","store","commit","message","response","color","val","oldVal","BarChart","VApp","VCard","VCardTitle","VCol","VContainer","VDivider","VIcon","VListItem","VListItemAction","VListItemAvatar","VListItemContent","VList","VListItemSubtitle","VListItemTitle","VRow","VTooltip","breakpoints","ALIGNMENT","makeProps","prefix","def","alignValidator","str","alignProps","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","justify","alignContent","classMap","breakpointClass","className","breakpoint","prop","cache","functional","tag","dense","noGutters","children","cacheKey","classList","h","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","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","comparativeDistance","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","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","valueAtIndexOrDefault","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","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","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","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","extends","disabled","fixed","openOnHover","calculatedMinWidth","closeDependents","calculatedLeft","unknown","activatorLeft","attach","activator","calcXOverflow","dimensions","calculatedTop","activatorTop","calcYOverflow","computedTransition","minWidth","zIndex","beforeMount","mounted","activate","deactivate","genActivatorListeners","genActivatorAttributes","genTransition","genContent","setBackgroundColor","activatorFixed","directives","isContentActive","showLazyContent","Boolean","isDark","$slots","baseMixins","includes","internalActivator","openOnFocus","activatorElement","activatorNode","slotType","addActivatorEvents","genActivator","getActivator","getContentSlot","getValueProxy","removeActivatorEvents","resetActivator","collectionStrong","init","ripple","activeClass","appendIcon","group","noAction","prependIcon","subGroup","listClick","$route","created","matchRoute","click","genIcon","genAppendIcon","icon","genHeader","inputValue","genItems","genPrependIcon","onRouteChange","toggle","_uid","isBooted","VListItemActionText","UserDTO","avatar","national_code","birthday","mobile","gender","email","fname","lname","dto","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","$","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","contentClass","hasDetached","hasContent","deactivated","getScopeIdAttrs","scopeId","initDetach","_isDestroyed","roundedClasses","measurableStyles","$listeners","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","isDependent","openDependents","getOpenDependents","getOpenDependentElements","getClickableDependentElements","overlay","indeterminate","indeterminateIcon","onIcon","offIcon","mergeData","inset","action","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","tileActiveClass","staticNoDataTile","mousedown","genTileContent","genAction","genDivider","genFilteredText","getMaskedCharacters","genHighlight","middle","genTile","hasItem","getDisabled","$scopedSlots","scopedSlot","needsTile","innerHTML","getText","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","$vuetify","lang","select","selectItem","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","$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","theme","auto","calculatedTopAuto","defaultOffset","hasJustFocused","resizeTimeout","tiles","menuWidth","calcLeft","calculatedMaxHeight","calculatedMaxWidth","pageWidth","hasClickableTiles","find","transformOrigin","calcScrollPosition","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","computedTop","changeListIndex","attributes","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","offsetTop","hasWindow","inputActivator","pageYOffset","stackClass","computedLeft","hasActivator","absolutePosition","calcTop","xOverflow","documentHeight","toTop","contentHeight","isOverflowing","callActivate","callDeactivate","checkForPageYOffset","checkActivatorFixed","getInnerHeight","getOffsetLeft","getOffsetTop","getRoundedBoundedClientRect","measure","sneakPeek","startTransition","Promise","updateDimensions"],"mappings":"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","file":"js/chunk-391f0938.fcac6d40.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\"برترین های سیستم\")]),_c('div',{staticClass:\"px-12\"},[_c('period',{attrs:{\"default-value\":_vm.selectedPeriod},on:{\"change-value\":function($event){_vm.selectedPeriod = $event}}}),_c('v-divider',{staticClass:\"my-3\"}),_c('count',{attrs:{\"default-value\":_vm.selectedCount},on:{\"change-value\":function($event){_vm.selectedCount = $event}}})],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-card',{attrs:{\"outlined\":\"\"}},[_c('v-card-title',[_vm._v(\"تعداد رویداد های ثبت شده\")]),_vm._l((_vm.topAdvisers),function(item){return _c('div',{key:item.user.id},[_c('v-list-item',[_c('v-list-item-avatar',[_c('img',{attrs:{\"src\":item.user.fullAvatar,\"alt\":\"\"}})]),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item.user.fullName)}}),_c('v-list-item-subtitle',{domProps:{\"textContent\":_vm._s(item.cnt + ' رویداد ثبت شده')}})],1),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"href\":'/events?mentor_id=' + item.user.id}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"mdi-information\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"مشاهده رویدادها\")])])],1)],1)],1)})],2)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-card',{attrs:{\"outlined\":\"\"}},[_c('v-card-title',[_vm._v(\"تعداد تماس های پاسخ داده شده\")]),_vm._l((_vm.topCall),function(item){return _c('div',{key:item.user.id},[_c('v-list-item',[_c('v-list-item-avatar',[_c('img',{attrs:{\"src\":item.user.fullAvatar,\"alt\":\"\"}})]),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item.user.fullName)}}),_c('v-list-item-subtitle',{domProps:{\"textContent\":_vm._s(item.cnt + ' تماس پاسخ داده شده')}})],1),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"href\":'/calls?mentor_id[]=' + item.user.id}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"mdi-information\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"مشاهده تماس ها\")])])],1)],1)],1)})],2)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"hidden-xs-only row\"},_vm._l((_vm.period),function(item){return _c('div',{key:item.name},[(item.slug === _vm.selectedPeriod)?_c('v-btn',{staticClass:\"text-light\",attrs:{\"raised\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.selectedPeriod = item.slug}}},[_vm._v(_vm._s(item.name))]):_c('v-btn',{staticClass:\"text-light\",attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.selectedPeriod = item.slug}}},[_vm._v(_vm._s(item.name))])],1)}),0),_c('div',{staticClass:\"hidden-sm-and-up col-12\"},[_c('v-select',{attrs:{\"items\":_vm.period,\"item-text\":\"name\",\"item-value\":\"slug\",\"label\":\"انتخاب تعداد\",\"required\":\"\"},model:{value:(_vm.selectedPeriod),callback:function ($$v) {_vm.selectedPeriod=$$v},expression:\"selectedPeriod\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\nimport { VSelect, VBtn } from \"vuetify/lib\";\nimport Enum from \"@/config/enum\";\n\n@Component({\n components: {\n VSelect,\n VBtn\n }\n})\nexport default class Count extends Vue {\n @Prop({ default: 5 })\n defaultValue = 5;\n private period = Enum.count;\n private selectedPeriod = this.defaultValue;\n\n @Watch(\"selectedPeriod\")\n public onPageChanged() {\n this.$emit(\"change-value\", this.selectedPeriod);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./count.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./count.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./count.vue?vue&type=template&id=e91ce45e&\"\nimport script from \"./count.vue?vue&type=script&lang=ts&\"\nexport * from \"./count.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\nimport store from \"../../../store\";\nimport { AxiosResponse } from \"axios\";\nimport Enum from \"@/config/enum\";\nimport { ReportApi } from \"@/networks/ReportApi\";\nimport BarChart from \"@/views/components/charts/BarChart\";\nimport Period from \"@/views/components/inputs/period.vue\";\nimport UserModel, { UserDTO } from \"@/models/UserModel\";\nimport Count from \"@/views/components/inputs/count.vue\";\n\n@Component({\n components: {\n BarChart: BarChart,\n period: Period,\n count: Count\n }\n})\nexport default class General extends Vue {\n private selectedPeriod = \"-30 days\";\n private selectedCount = 5;\n private options = Enum.ChartOptions;\n private mainEvent = {\n labels: [],\n datasets: []\n };\n private topAdvisers = [];\n private topCall = [];\n\n mounted() {\n this.dashboard();\n }\n\n public async dashboard(): Promise {\n try {\n const res: AxiosResponse = await new ReportApi().bests({\n period: this.selectedPeriod,\n limit: this.selectedCount\n });\n this.topAdvisers = res.data.data.top_advisers.map(\n (x: { cnt: number; creator: UserDTO }) => {\n return {\n cnt: x.cnt,\n user: new UserModel(x.creator)\n };\n }\n );\n this.topCall = res.data.data.top_calls.map(\n (x: { cnt: number; mentor: UserDTO }) => {\n return {\n cnt: x.cnt,\n user: new UserModel(x.mentor)\n };\n }\n );\n } catch (error: any) {\n store.commit(\"showError\", {\n message: error.response.data.message || \"خطای نامشخص\",\n color: \"danger\"\n });\n }\n }\n\n @Watch(\"selectedPeriod\")\n public onSelectedPeriodChange(val: string, oldVal: string): void {\n if (val != oldVal) {\n this.dashboard();\n }\n }\n\n @Watch(\"selectedCount\")\n public onSelectedCountChange(val: string, oldVal: string): void {\n if (val != oldVal) {\n this.dashboard();\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./best.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./best.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./best.vue?vue&type=template&id=a43592b2&\"\nimport script from \"./best.vue?vue&type=script&lang=ts&\"\nexport * from \"./best.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VApp,VBtn,VCard,VCardTitle,VCol,VContainer,VDivider,VIcon,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VRow,VTooltip})\n","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