{"version":3,"sources":["webpack:///./src/enums/EnumInterfaceTypeDerived.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanel.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelContent.ts","webpack:///../../../src/components/VExpansionPanel/VExpansionPanelHeader.ts","webpack:///./src/components/charts/BarChart.vue","webpack:///./src/mixins/DateMixin.vue","webpack:///../../../src/components/VExpansionPanel/VExpansionPanels.ts","webpack:///./src/layouts/BaseSales.vue","webpack:///./src/components/TheInterfaceSelector.vue","webpack:///src/components/TheInterfaceSelector.vue","webpack:///./src/components/TheInterfaceSelector.vue?30db","webpack:///./src/components/TheInterfaceSelector.vue?6d2a","webpack:///./src/components/SalesChartTotal.vue","webpack:///src/components/charts/BarChart.vue","webpack:///./src/components/charts/BarChart.vue?88fa","webpack:///src/mixins/DateMixin.vue","webpack:///./src/mixins/DateMixin.vue?8d5b","webpack:///src/components/SalesChartTotal.vue","webpack:///./src/components/SalesChartTotal.vue?dd33","webpack:///./src/components/SalesChartTotal.vue?adf7","webpack:///./src/components/SalesChartSeperated.vue","webpack:///src/components/SalesChartSeperated.vue","webpack:///./src/components/SalesChartSeperated.vue?cf39","webpack:///./src/components/SalesChartSeperated.vue?6f92","webpack:///./src/components/SalesTable.vue","webpack:///src/components/SalesTable.vue","webpack:///./src/components/SalesTable.vue?dfdf","webpack:///./src/components/SalesTable.vue?4a6c","webpack:///./src/components/SalesPieCharts.vue","webpack:///src/components/charts/PieChart.vue","webpack:///./src/components/charts/PieChart.vue","webpack:///./src/components/charts/PieChart.vue?0bb5","webpack:///src/components/SalesPieCharts.vue","webpack:///./src/components/SalesPieCharts.vue?1fc8","webpack:///./src/components/SalesPieCharts.vue?6744","webpack:///src/layouts/BaseSales.vue","webpack:///./src/layouts/BaseSales.vue?b3a6","webpack:///./src/layouts/BaseSales.vue?d1f9","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///./src/components/BaseDivider.vue","webpack:///./src/components/BaseDivider.vue?24d4","webpack:///../../../src/mixins/delayable/index.ts","webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///src/mixins/ValueParseMixin.vue","webpack:///./src/mixins/ValueParseMixin.vue","webpack:///./src/mixins/ValueParseMixin.vue?a53d","webpack:///../../../src/mixins/stackable/index.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/mixins/activatable/index.ts","webpack:///./src/helper/chartJsTextOnChart.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///./node_modules/chartjs-plugin-labels/src/chartjs-plugin-labels.js","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/mixins/mouse/index.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/components/VMenu/index.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:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///./src/components/TheOptionBar.vue","webpack:///../../../src/mixins/picker-button/index.ts","webpack:///../../../src/components/VDatePicker/VDatePickerTitle.ts","webpack:///../../../src/mixins/localable/index.ts","webpack:///../../../../src/components/VDatePicker/util/pad.ts","webpack:///../../../../src/components/VDatePicker/util/createNativeLocaleFormatter.ts","webpack:///../../../../src/components/VDatePicker/util/monthChange.ts","webpack:///../../../src/components/VDatePicker/VDatePickerHeader.ts","webpack:///../../../../src/components/VDatePicker/util/eventHelpers.ts","webpack:///../../../../src/components/VDatePicker/util/sanitizeDateString.ts","webpack:///../../../../src/components/VDatePicker/util/isDateAllowed.ts","webpack:///../../../../src/components/VDatePicker/mixins/date-picker-table.ts","webpack:///../../src/util/dateTimeUtils.ts","webpack:///../../../src/components/VDatePicker/VDatePickerDateTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerMonthTable.ts","webpack:///../../../src/components/VDatePicker/VDatePickerYears.ts","webpack:///../../../src/components/VPicker/VPicker.ts","webpack:///../../../src/components/VPicker/index.ts","webpack:///../../../src/mixins/picker/index.ts","webpack:///../../../../src/components/VCalendar/util/timestamp.ts","webpack:///../../../src/components/VDatePicker/VDatePicker.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///./src/components/TheDateRangePicker.vue","webpack:///src/components/TheDateRangePicker.vue","webpack:///./src/components/TheDateRangePicker.vue?c76c","webpack:///./src/components/TheDateRangePicker.vue?0749","webpack:///./src/components/TheStoreChooser.vue","webpack:///src/components/TheStoreChooser.vue","webpack:///./src/components/TheStoreChooser.vue?03c5","webpack:///./src/components/TheStoreChooser.vue?bfb2","webpack:///./src/components/TheMetricTypeSelector.vue","webpack:///src/components/TheMetricTypeSelector.vue","webpack:///./src/components/TheMetricTypeSelector.vue?e3a0","webpack:///./src/components/TheMetricTypeSelector.vue?ca4b","webpack:///src/components/TheOptionBar.vue","webpack:///./src/components/TheOptionBar.vue?5352","webpack:///./src/components/TheOptionBar.vue?2616","webpack:///./src/views/dashboard/Sales.vue","webpack:///src/views/dashboard/Sales.vue","webpack:///./src/views/dashboard/Sales.vue?223f","webpack:///./src/views/dashboard/Sales.vue?18cb","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts"],"names":["EnumInterfaceTypeDerived","name","color","id","mixins","GroupableFactory","RegistrableProvide","extend","props","disabled","Boolean","readonly","data","content","header","nextIsActive","computed","classes","this","isActive","isDisabled","groupClasses","expansionPanels","isReadonly","methods","registerContent","vm","unregisterContent","registerHeader","$on","onClick","unregisterHeader","e","detail","$el","blur","$emit","toggle","$nextTick","render","h","staticClass","class","attrs","String","getSlot","baseMixins","Bootable","Colorable","RegistrableInject","parentIsActive","expansionPanel","watch","immediate","handler","val","oldVal","isBooted","created","beforeDestroy","VExpandTransition","showLazyContent","setBackgroundColor","directives","value","open","ripple","disableIconRotate","expandIcon","type","default","hideActions","Object","hasMousedown","genIcon","icon","$createElement","VIcon","VFadeTransition","tabindex","on","$listeners","click","mousedown","mouseup","BaseItemGroup","provide","accordion","flat","hover","focusable","inset","popout","tile","options","call","$attrs","hasOwnProperty","breaking","Array","isArray","length","updateItem","item","index","getValue","nextValue","toggleMethod","_vm","itemKey","$event","_c","_v","interfaceColumnName","staticRenderFns","_self","callback","selectedInterfaces","expression","get","set","interfaces","component","chartTotal","chartOptions","extends","required","mounted","deep","updateChart","dateParsingString","dateParsingUnit","datesAreDays","components","BarChart","isCurrency","plugins","labels","textOnChart","text","show","title","display","legend","tooltips","mode","callbacks","label","responsive","scales","xAxes","offset","distribution","time","displayFormats","day","tooltipFormat","displayFormat","unit","yAxes","ticks","beginAtZero","maintainAspectRatio","cloneDeep","datasets","existingRow","match","row","backgroundColor","chartSeperated","tableHeaders","tableItems","scopedSlots","a","key","fn","isMobile","items","_s","getTotalOfColumn","loading","parseInterfaceItem","total","percent","totalValue","totalString","getRawTotalOfColumn","parseDate","tableItemTemplateArray","returnArray","parsedTableData","perDate","date","totalGross","orderCount","orderValueAverage","foundInterfaces","headers","align","i","window","fontSize","PieChart","pieChartOptions","overlap","fontColor","fontStyle","position","pieChartData","arr","dates","BaseDivider","TheOptionBar","TheInterfaceSelector","SalesChartTotal","SalesChartSeperated","SalesTable","SalesPieCharts","selectedStores","salesDataResponse","salesDataFilteredByStores","salesDataFilteredByStoresAndInterfaces","breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","upperFirst","alignValidator","str","includes","alignProps","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","functional","tag","dense","noGutters","children","cacheKey","classList","forEach","push","mergeData","script","openDelay","Number","closeDelay","openTimeout","undefined","closeTimeout","clearDelay","clearTimeout","runDelay","cb","delay","parseInt","setTimeout","close","dataHandler","newData","oldData","chart","$data","_chart","newDatasetLabels","map","dataset","oldDatasetLabels","oldLabels","JSON","stringify","newLabels","oldDatasetKeys","newDatasetKeys","deletionKeys","filter","indexOf","attribute","deletionKey","xLabels","yLabels","update","destroy","renderChart","chartData","reactiveData","reactiveProp","generateChart","chartId","chartType","createElement","style","styles","cssClasses","width","height","ref","_plugins","addPlugin","plugin","generateLegend","$refs","canvas","Error","getContext","Bar","HorizontalBar","Pie","toCurrencyString","currency","minimumFractionDigits","maximumFractionDigits","toDecimalString","toPercentString","toCurrencyOrDecimal","stackElement","stackExclude","stackMinZIndex","activeZIndex","getMaxZIndex","getZIndex","exclude","base","zis","activeElements","document","getElementsByClassName","Math","max","createSimpleFunctional","global","factory","module","exports","moment","createCommonjsModule","getCjsExportFromNamespace","n","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","defineProperty","comparativeDistance","x","y","pow","s","l","r","g","b","min","delta","rdif","gdif","bdif","v","diff","diffc","c","w","m","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","sv","smin","lmin","hi","floor","f","p","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","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","prototype","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","console","error","spaces","maxes","getValues","space","charAt","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","noop","uid","isNullOrUndef","substr","isObject","isFinite","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","apply","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","create","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","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","fontFamily","lineHeight","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","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","configurable","enumerable","method","res","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","getDataset","scalesOpts","xAxisID","yAxisID","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","borderColor","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","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","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","end","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","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","generateLabels","controller","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","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","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","circular","pointLabels","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","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","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","property","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","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","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","d","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","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","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","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","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","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","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","getMin","getMax","buildLookupTable","timestamps","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","scale_time","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","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","VChip","Themeable","isDark","rootIsDark","$slots","find","isComment","Delayable","Toggleable","activator","internalActivator","openOnClick","openOnHover","openOnFocus","activatorElement","activatorNode","slotType","getSlotType","consoleError","addActivatorEvents","removeActivatorEvents","getActivator","genActivatorListeners","genActivator","getValueProxy","genActivatorAttributes","role","mouseenter","mouseleave","focus","stopPropagation","querySelector","componentInstance","$options","some","elm","currentTarget","nodeType","Node","ELEMENT_NODE","getContentSlot","self","resetActivator","createOverlay","chartInstance","textOnChartOpts","TextOnChart","globalDefault","itemOrDefault","pluginOpts","textX","textY","fontSizeOpt","textOnChartBox","breakpointProps","offsetProps","orderProps","col","cols","alignSelf","hasColClasses","startsWith","validateAttachTarget","removeActivator","attach","contentClass","hasDetached","initDetach","hasContent","beforeMount","nextSibling","deactivated","destroyed","isConnected","observer","MutationObserver","record","removedNodes","disconnect","observe","subtree","childList","getScopeIdAttrs","scopeId","getObjectValueByPath","$vnode","_isDestroyed","consoleWarn","varArgs","TypeError","nextSource","nextKey","SUPPORTED_TYPES","Label","setup","barTotal","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","images","outsidePadding","textMargin","labelBounds","renderToDataset","totalPercentage","arg","renderToElement","shouldRenderToElement","percentage","getLabel","renderInfo","getRenderInfo","drawable","getFontColor","renderLabel","renderArcLabel","renderBaseLabel","textShadow","mertrics","showZero","getPercentage","loadImage","showActualPercentages","barTotalPercentage","getBarRenderInfo","getArcRenderInfo","getBaseRenderInfo","measureLabel","totalAngle","outsideInRange","bound","potins","image","Image","beforeDatasetsUpdate","_labels","someOutside","afterDatasetUpdate","beforeDraw","afterDatasetsDraw","inheritAttrs","sortBy","sortDesc","customSort","Function","sortItems","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","locale","disableSort","disablePagination","disableFiltering","search","customFilter","searchItems","serverItemsLength","internalOptions","wrapInArray","sortDiff","groupDiff","fillArray","itemsLength","filteredItems","pageCount","pageStart","pageStop","isGrouped","pagination","computedItems","paginateItems","groupedItems","scopedProps","sortArray","group","updateOptions","originalItemsLength","computedOptions","old","deepEqual","oldBy","oldDesc","by","desc","byIndex","$scopedSlots","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","genDataItemsPerPageOption","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","$vuetify","lang","genItemsPerPageSelect","computedIPPO","ippo","VSelect","hideDetails","auto","minWidth","genPaginationInfo","VBtn","genIcons","Mobile","VData","singleSelect","expanded","mobileBreakpoint","singleExpand","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","isSelected","someItems","sanitizedFooterProps","camelizeObjectKeys","isSelectable","breakingProps","replacement","removedProps","removed","onKeyDown","onKeyUp","keyCode","keyCodes","shiftKey","toggleSelectAll","select","emit","lastEntryKey","lastEntryKeySelected","multipleSelect","isExpanded","createItemProps","genEmptyWrapper","genEmpty","filteredItemsLength","noData","noResults","genItems","empty","genFooter","getPrefixedScopedSlots","VDataFooter","genDefaultScopedSlot","outerProps","$props","checkboxColor","sortIcon","showGroupBy","genSelectAll","indeterminate","_a","VSimpleCheckbox","genSortIcon","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","asc","genSortSelect","multiple","menuProps","closeOnContentClick","sortHeaders","th","tr","genGroupByToggle","getAria","$t","ariaSort","ariaLabel","genHeader","convertToUnit","divider","groupable","dedupeModelListeners","rebuildFunctionalSlots","slots","slot","mobile","rebuildSlots","VDataTableHeaderMobile","VDataTableHeaderDesktop","needsTd","computedSlots","columns","slotName","scopedSlot","regularSlot","cellClass","headerClass","summaryClass","fixedHeader","themeClasses","genWrapper","wrapper","hideDefaultHeader","mobileRowChildren","getDefaultMouseEventHandlers","suffix","getData","eventFirst","endsWith","acc","getMouseEventHandlers","prevent","eventOptions","once","capture","mouseEvent","button","buttons","preventDefault","classSeparator","eventTargetClasses","currentTargets","elementsFromPoint","changedTouches","_b","isSameNode","dispatchEvent","TouchEvent","targetTouches","filterFn","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","filterMode","trim","defaultFilter","matchesColumnFilters","matchesSearchTerm","VDataIterator","Loadable","Mouse","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","itemClass","itemStyle","loaderHeight","internalGroupBy","openCache","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","filterable","sanitizedHeaderProps","computedItemsPerPage","firstOption","groupByText","calcWidths","querySelectorAll","customFilterWithColumns","customSortWithHeaders","genCaption","genColgroup","genLoading","genProgress","genHeaders","VDataTableHeader","genGroupedRows","genRows","$set","genDefaultGroupedRow","isOpen","toggleFn","removeFn","small","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","MobileRow","Row","mergeClasses","getPropertyFromItem","mergeStyles","genBody","genFoot","foot","genFooters","simpleProps","VSimpleTable","proxySlot","Ripple","indeterminateIcon","onIcon","offIcon","setTextColor","VDivider","Stackable","positionableFactory","Activatable","Detachable","allowOverflow","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","zIndex","absoluteX","absoluteY","activatedBy","activatorFixed","dimensions","offsetTop","scrollHeight","relativeYOffset","hasJustFocused","hasWindow","inputActivator","isContentActive","pageWidth","pageYOffset","stackClass","computedLeft","activatorLeft","computedTop","hasActivator","absoluteYOffset","callDeactivate","callActivate","updateDimensions","absolutePosition","activate","calcLeft","menuWidth","calcXOverflow","calcTop","calcYOverflow","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","contentHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","innerHeight","documentElement","pageXOffset","getRoundedBoundedClientRect","measure","marginLeft","marginTop","sneakPeek","startTransition","Promise","absolute","offsetRect","Dependent","Returnable","Roundable","Menuable","ClickOutside","Resize","isInMenu","theme","closeOnClick","disableKeys","contentProps","calculatedTopAuto","defaultOffset","listIndex","resizeTimeout","selectedIndex","tiles","activeTile","calculatedLeft","calculatedMinWidth","calcLeftAuto","calculatedMaxHeight","calculatedMaxWidth","calculatedTop","hasClickableTiles","tabIndex","transformOrigin","goTo","appOffset","then","calcTopAuto","calcScrollPosition","maxScrollTop","offsetHeight","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","tab","down","nextTile","up","prevTile","lastTile","home","firstTile","enter","closeConditional","contains","attributes","keydown","genTransition","genContent","genDirectives","include","getOpenDependentElements","rootThemeClasses","roundedClasses","menuable__content__active","scroll","mouseEnterHandler","mouseLeaveHandler","relatedTarget","esc","offsetWidth","VThemeProvider","VMenu","VSubheader","action","hideSelected","itemDisabled","itemText","itemValue","noFilter","searchInput","selectedItems","parsedItems","tileActiveClass","staticNoDataTile","VListItem","genTileContent","genAction","inputValue","VListItemAction","genDivider","genFilteredText","middle","getMaskedCharacters","genHighlight","toLocaleLowerCase","genTile","hasItem","getDisabled","_uid","activeClass","needsTile","VListItemContent","VListItemTitle","getText","componentOptions","Ctor","VList","defaultMenuProps","VTextField","Comparable","Filterable","appendIcon","cacheItems","chips","clearable","deletableChips","disableLookup","eager","itemColor","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","lazyValue","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","hasChips","computedOwns","computedCounterValue","counterValue","isFocused","dynamicHeight","hasSlot","isDirty","listData","_scopeId","virtualizedItems","selectItem","staticList","VSelectList","$_menuProps","menuCanShow","normalisedProps","internalValue","initialValue","setSelectedItems","menu","onMenuActiveChange","setMenuIndex","activateMenu","isInteractive","clearableCallback","setValue","getContent","uniqueValues","has","findExistingIndex","valueComparator","genChipSelection","onChipInput","genCommaSelection","computedColor","genDefaultSlot","selections","genSelections","genInput","genFieldset","genLabel","genAffix","genClearIcon","genIconSlot","genHiddenInput","genMenu","extraData","VInput","domProps","autocomplete","placeholder","persistentPlaceholder","hasLabel","keypress","onKeyPress","attrs$","genInputSlot","genList","genListWithSlot","genSelection","genSlotSelection","selected","getMenuIndex","onBlur","isAppendInner","onEscDown","ctrlKey","metaKey","altKey","KEYBOARD_LOOKUP_THRESHOLD","performance","onUpDown","onTabDown","onSpaceDown","onMouseUp","hasMouseDown","which","showMoreItems","appendInner","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","touch","touchmoveX","touchmoveY","move","createHandlers","inserted","binding","vnode","parentElement","handlers","_touchHandlers","eventName","unbind","Touch","Sizeable","Routable","ToggleableFactory","chipGroup","closeIcon","closeLabel","draggable","filterIcon","outlined","pill","proxyClass","isClickable","isLink","hasClose","sizeableClasses","genFilter","VExpandXTransition","genClose","generateRouteLink","genPickerButton","kebabCase","PickerButton","selectingYear","yearIcon","isReversing","computedTransition","genYearIcon","getYearBtn","genTitleText","innerHTML","genTitleDate","currentLocale","padStart","targetLength","padString","repeat","createNativeLocaleFormatter","substrOptions","makeIsoString","dateString","pad","intlFormatter","Intl","DateTimeFormat","Localable","nextAriaLabel","prevAriaLabel","timeZone","newVal","genBtn","ariaLabelId","calculateChange","monthChange","createItemTypeNativeListeners","instance","itemTypeSuffix","createItemTypeListeners","isDateAllowed","allowedFn","allowedDates","eventColor","scrollable","tableDate","wheelThrottle","displayedMonth","displayedYear","throttle","wheel","genButtonClasses","isAllowed","isFloating","isCurrent","isFirst","isLast","genButtonEvents","mouseEventType","mergeListeners","genButton","isOtherMonth","setColor","genEvents","getEventColors","arrayize","eventData","eventColors","isValidScroll","calculateTableDate","sanitizeType","sanitizeDateString","genTable","touchDirective","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","firstDayOfWeek","firstDayOfYear","firstWeekDayInFirstWeek","firstWeekDayOfYear","getUTCDay","dayOfYear","isLeapYear","weeksInYear","weekOffset","weekOffsetNext","daysInYear","weekNumber","localeFirstDayOfYear","DatePickerTable","showAdjacentMonths","showWeek","weekdayFormat","weekdayFormatter","weekDays","createRange","genTHead","days","genTR","weekDaysBeforeFirstDayOfTheMonth","firstDayOfTheMonth","weekDay","getWeekNumber","dayInMonth","genWeekNumber","genTBody","daysInMonth","getDate","prevMonthYear","prevMonth","firstDayFromPreviousMonth","cellsInRow","nextMonthYear","nextMonth","nextMonthDay","tds","_","activeItem","genYearItem","formatted","genYearItems","selectedYear","getFullYear","maxYear","minYear","Elevatable","landscape","noTitle","computedTitleColor","defaultTitleColor","genTitle","genBodyTransition","genActions","actions","elevationClasses","VPicker","headerColor","genPickerTitle","genPickerBody","genPickerActionsSlot","cancel","genPicker","elevation","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP","Picker","activePicker","dayFormat","headerDateFormat","monthFormat","nextMonthAriaLabel","nextYearAriaLabel","pickerDate","prevMonthAriaLabel","prevYearAriaLabel","reactive","showCurrent","selectedItemsText","titleDateFormat","yearFormat","internalActivePicker","inputDay","inputMonth","inputYear","multipleValue","getMonth","isMultiple","lastValue","selectedMonths","inputDate","tableMonth","tableYear","minMonth","maxMonth","titleDate","defaultTitleMultipleDateFormatter","defaultTitleDateFormatter","titleFormats","titleDateFormatter","landscapeFormatter","nonDigit","digit","newValue","oldValue","checkMultipleProp","setInputDate","output","emitInput","newInput","valueType","expected","yearClick","monthClick","dateClick","VDatePickerTitle","genTableHeader","VDatePickerHeader","genDateTable","VDatePickerDateTable","genMonthTable","VDatePickerMonthTable","genYears","VDatePickerYears","Overlayable","fullscreen","noClickAnimation","persistent","retainFocus","animateTimeout","previousActiveElement","contentClasses","hideScroll","removeOverlay","showScroll","genOverlay","animateClick","overlay","hideOverlay","dialog","onFocusin","onClickOutside","onKeydown","getOpenDependents","hasAttribute","genInnerContent","appear","timeranges","updateDates","dateIndex","$$v","dateDialog","tmpDialogDates","dateFunction","dialogDates","newDates","selectedPreset","datesSorted","amountRangeString","amountOfRange","rangeString","stores","focusSelect","selectedType","TheDateRangePicker","TheStoreChooser","TheMetricTypeSelector","withoutUmsatz","salesData","BaseSales","mobileWidth","deprecate","returnValue","originalValue","__scrim","computedOpacity","VOverlay","overlayColor","overlayOpacity","animationFrame","propsData","$mount","addOnceEventListener","$destroy","cancelAnimationFrame","scrollListener","tagName","isContentEditable","pageup","pagedown","checkPath","hasScrollbar","overflowY","overflowX","scrollWidth","shouldScroll","dir","alreadyAtStart","alreadyAtEnd","scrollingUp","scrollingDown","isInside","composedPath","getSelection","anchorNode","smAndDown","addPassiveEventListener"],"mappings":"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","file":"js/chunk-48c11fb4.b3770f55.js","sourcesContent":["// TODO: Fix this mess.\n// Reverting back to an enum would be great,\n// but we need to assign [1] and [12] (GastroBlitz Shop) twice.\ninterface Interfaces {\n name: string;\n color: string;\n id: number;\n}\nconst EnumInterfaceTypeDerived = [] as unknown as Interfaces[];\nEnumInterfaceTypeDerived[0] = { name: 'Computer', color: '#636e72', id: 0 };\nEnumInterfaceTypeDerived[1] = { name: 'GastroBlitz Shop', color: '#d63031', id: 1 };\nEnumInterfaceTypeDerived[2] = { name: 'Lieferservice', color: '#00b894', id: 2 };\nEnumInterfaceTypeDerived[3] = { name: 'BlitzCloud', color: '#55efc4', id: 3 };\nEnumInterfaceTypeDerived[4] = { name: 'Lieferando', color: '#f57c00', id: 4 };\nEnumInterfaceTypeDerived[5] = { name: 'Pizza.de', color: '#ffeaa7', id: 5 };\nEnumInterfaceTypeDerived[6] = { name: 'Kasse', color: '#a29bfe', id: 6 };\nEnumInterfaceTypeDerived[7] = { name: 'AppSmart', color: '#0984e3', id: 7 };\nEnumInterfaceTypeDerived[8] = { name: 'Lieferheld', color: '#fd79a8', id: 8 };\nEnumInterfaceTypeDerived[9] = { name: 'Foodora', color: '#e84393', id: 9 };\nEnumInterfaceTypeDerived[10] = { ...EnumInterfaceTypeDerived[1], id: 10 };\nEnumInterfaceTypeDerived[11] = { name: 'PizzeriaDe', color: '#81ecec', id: 11 };\nEnumInterfaceTypeDerived[12] = { ...EnumInterfaceTypeDerived[1], id: 12 };\nEnumInterfaceTypeDerived[14] = { name: 'SimplyDelivery', color: '#fab1a0', id: 14 };\nEnumInterfaceTypeDerived[15] = { name: 'OrderCenterPush', color: '#2d3436', id: 15 };\nEnumInterfaceTypeDerived[100] = { name: 'Unbekannt', color: '#000000', id: 100 };\n\nexport default EnumInterfaceTypeDerived;\n","// Components\nimport VExpansionPanels from './VExpansionPanels'\nimport VExpansionPanelHeader from './VExpansionPanelHeader'\nimport VExpansionPanelContent from './VExpansionPanelContent'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VExpansionPanelHeaderInstance = InstanceType\ntype VExpansionPanelContentInstance = InstanceType\n\nexport default mixins(\n GroupableFactory<'expansionPanels', typeof VExpansionPanels>('expansionPanels', 'v-expansion-panel', 'v-expansion-panels'),\n RegistrableProvide('expansionPanel', true)\n /* @vue/component */\n).extend({\n name: 'v-expansion-panel',\n\n props: {\n disabled: Boolean,\n readonly: Boolean,\n },\n\n data () {\n return {\n content: null as VExpansionPanelContentInstance | null,\n header: null as VExpansionPanelHeaderInstance | null,\n nextIsActive: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel--active': this.isActive,\n 'v-expansion-panel--next-active': this.nextIsActive,\n 'v-expansion-panel--disabled': this.isDisabled,\n ...this.groupClasses,\n }\n },\n isDisabled (): boolean {\n return this.expansionPanels.disabled || this.disabled\n },\n isReadonly (): boolean {\n return this.expansionPanels.readonly || this.readonly\n },\n },\n\n methods: {\n registerContent (vm: VExpansionPanelContentInstance) {\n this.content = vm\n },\n unregisterContent () {\n this.content = null\n },\n registerHeader (vm: VExpansionPanelHeaderInstance) {\n this.header = vm\n vm.$on('click', this.onClick)\n },\n unregisterHeader () {\n this.header = null\n },\n onClick (e: MouseEvent) {\n if (e.detail) this.header!.$el.blur()\n\n this.$emit('click', e)\n\n this.isReadonly || this.isDisabled || this.toggle()\n },\n toggle () {\n this.$nextTick(() => this.$emit('change'))\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-expansion-panel',\n class: this.classes,\n attrs: {\n 'aria-expanded': String(this.isActive),\n },\n }, getSlot(this))\n },\n})\n","// Components\nimport VExpansionPanel from './VExpansionPanel'\nimport { VExpandTransition } from '../transitions'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Bootable,\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n expansionPanel: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-content',\n\n data: () => ({\n isActive: false,\n }),\n\n computed: {\n parentIsActive (): boolean {\n return this.expansionPanel.isActive\n },\n },\n\n watch: {\n parentIsActive: {\n immediate: true,\n handler (val, oldVal) {\n if (val) this.isBooted = true\n\n if (oldVal == null) this.isActive = val\n else this.$nextTick(() => this.isActive = val)\n },\n },\n },\n\n created () {\n this.expansionPanel.registerContent(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterContent()\n },\n\n render (h): VNode {\n return h(VExpandTransition, this.showLazyContent(() => [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-content',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }), [\n h('div', { class: 'v-expansion-panel-content__wrap' }, getSlot(this, 'default', { open: this.isActive })),\n ]),\n ]))\n },\n})\n","// Components\nimport { VFadeTransition } from '../transitions'\nimport VExpansionPanel from './VExpansionPanel'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode, VueConstructor } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject<'expansionPanel', VueConstructor>('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n expansionPanel: InstanceType\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-expansion-panel-header',\n\n directives: { ripple },\n\n props: {\n disableIconRotate: Boolean,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n },\n\n data: () => ({\n hasMousedown: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-expansion-panel-header--active': this.isActive,\n 'v-expansion-panel-header--mousedown': this.hasMousedown,\n }\n },\n isActive (): boolean {\n return this.expansionPanel.isActive\n },\n isDisabled (): boolean {\n return this.expansionPanel.isDisabled\n },\n isReadonly (): boolean {\n return this.expansionPanel.isReadonly\n },\n },\n\n created () {\n this.expansionPanel.registerHeader(this)\n },\n\n beforeDestroy () {\n this.expansionPanel.unregisterHeader()\n },\n\n methods: {\n onClick (e: MouseEvent) {\n this.$emit('click', e)\n },\n genIcon () {\n const icon = getSlot(this, 'actions', { open: this.isActive }) ||\n [this.$createElement(VIcon, this.expandIcon)]\n\n return this.$createElement(VFadeTransition, [\n this.$createElement('div', {\n staticClass: 'v-expansion-panel-header__icon',\n class: {\n 'v-expansion-panel-header__icon--disable-rotate': this.disableIconRotate,\n },\n directives: [{\n name: 'show',\n value: !this.isDisabled,\n }],\n }, icon),\n ])\n },\n },\n\n render (h): VNode {\n return h('button', this.setBackgroundColor(this.color, {\n staticClass: 'v-expansion-panel-header',\n class: this.classes,\n attrs: {\n tabindex: this.isDisabled ? -1 : null,\n type: 'button',\n 'aria-expanded': this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.$listeners,\n click: this.onClick,\n mousedown: () => (this.hasMousedown = true),\n mouseup: () => (this.hasMousedown = false),\n },\n }), [\n getSlot(this, 'default', { open: this.isActive }, true),\n this.hideActions || this.genIcon(),\n ])\n },\n})\n","var render, staticRenderFns\nimport script from \"./BarChart.vue?vue&type=script&lang=js&\"\nexport * from \"./BarChart.vue?vue&type=script&lang=js&\"\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","var render, staticRenderFns\nimport script from \"./DateMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./DateMixin.vue?vue&type=script&lang=js&\"\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","// Styles\nimport './VExpansionPanel.sass'\n\n// Components\nimport { BaseItemGroup, GroupableInstance } from '../VItemGroup/VItemGroup'\nimport VExpansionPanel from './VExpansionPanel'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\ninterface VExpansionPanelInstance extends InstanceType {}\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n name: 'v-expansion-panels',\n\n provide (): object {\n return {\n expansionPanels: this,\n }\n },\n\n props: {\n accordion: Boolean,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n focusable: Boolean,\n inset: Boolean,\n popout: Boolean,\n readonly: Boolean,\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-expansion-panels': true,\n 'v-expansion-panels--accordion': this.accordion,\n 'v-expansion-panels--flat': this.flat,\n 'v-expansion-panels--hover': this.hover,\n 'v-expansion-panels--focusable': this.focusable,\n 'v-expansion-panels--inset': this.inset,\n 'v-expansion-panels--popout': this.popout,\n 'v-expansion-panels--tile': this.tile,\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('expand')) {\n breaking('expand', 'multiple', this)\n }\n\n /* istanbul ignore next */\n if (\n Array.isArray(this.value) &&\n this.value.length > 0 &&\n typeof this.value[0] === 'boolean'\n ) {\n breaking(':value=\"[true, false, true]\"', ':value=\"[0, 2]\"', this)\n }\n },\n\n methods: {\n updateItem (item: GroupableInstance & VExpansionPanelInstance, index: number) {\n const value = this.getValue(item, index)\n const nextValue = this.getValue(item, index + 1)\n\n item.isActive = this.toggleMethod(value)\n item.nextIsActive = this.toggleMethod(nextValue)\n },\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('the-option-bar',{attrs:{\"metricItem\":_vm.itemKey,\"dates\":_vm.dates},on:{\"update:metricItem\":function($event){_vm.itemKey=$event},\"update:metric-item\":function($event){_vm.itemKey=$event},\"update:dates\":[function($event){_vm.dates=$event},function($event){return _vm.$emit('update:dates', $event)}]}}),_c('base-divider'),_c('v-container',{staticClass:\"white\",attrs:{\"rounded\":\"\",\"fluid\":\"\"}},[_c('sales-chart-total',{attrs:{\"chart-data\":_vm.salesDataFilteredByStores,\"x-axes-item\":\"date\",\"y-axes-item\":_vm.itemKey.item,\"isCurrency\":_vm.itemKey.isCurrency,\"chart-title\":\"Gesamtumsatz\"}})],1),_c('base-divider'),_c('v-container',{staticClass:\"white\",attrs:{\"rounded\":\"\",\"fluid\":\"\"}},[_c('sales-chart-seperated',{attrs:{\"chart-data\":_vm.salesDataFilteredByStores,\"y-axes-item\":_vm.itemKey.item,\"isCurrency\":_vm.itemKey.isCurrency,\"interface-column-name\":_vm.interfaceColumnName,\"interface-enum\":_vm.enumInterfaceTypeDerived}})],1),_c('base-divider'),_c('v-expansion-panels',{attrs:{\"flat\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('span',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-table\")]),_vm._v(\" Detaillierte Tabelle \")],1)]),_c('v-expansion-panel-content',[_c('sales-table',{attrs:{\"table-data\":_vm.salesDataFilteredByStores,\"interface-column-name\":_vm.interfaceColumnName,\"interface-enum\":_vm.enumInterfaceTypeDerived,\"item-name\":_vm.itemKey.item,\"isCurrency\":_vm.itemKey.isCurrency}})],1)],1)],1),_c('base-divider'),_c('v-expansion-panels',{attrs:{\"flat\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('span',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-chart-pie\")]),_vm._v(\" Kuchendiagramme \")],1)]),_c('v-expansion-panel-content',[(_vm.interfaceSelector)?_c('the-interface-selector'):_vm._e(),_c('sales-pie-charts',{attrs:{\"chart-data\":_vm.salesDataFilteredByStoresAndInterfaces,\"chart-item\":_vm.itemKey.item,\"isCurrency\":_vm.itemKey.isCurrency,\"interface-column-name\":_vm.interfaceColumnName,\"interface-enum\":_vm.enumInterfaceTypeDerived}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-select',{attrs:{\"item-text\":\"name\",\"items\":_vm.interfaces,\"label\":\"Schnittstellen\",\"prepend-icon\":\"mdi-database-search\",\"multiple\":\"\",\"small-chips\":\"\",\"hide-details\":\"\",\"single-line\":\"\",\"clearable\":\"\",\"menu-props\":{ offsetY: true }},model:{value:(_vm.selectedInterfaces),callback:function ($$v) {_vm.selectedInterfaces=$$v},expression:\"selectedInterfaces\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheInterfaceSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheInterfaceSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheInterfaceSelector.vue?vue&type=template&id=71442930&\"\nimport script from \"./TheInterfaceSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./TheInterfaceSelector.vue?vue&type=script&lang=js&\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('bar-chart',{attrs:{\"chart-data\":_vm.chartTotal,\"options\":_vm.chartOptions}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BarChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BarChart.vue?vue&type=script&lang=js&\"","\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateMixin.vue?vue&type=script&lang=js&\"","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesChartTotal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesChartTotal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SalesChartTotal.vue?vue&type=template&id=1f8ccbb4&\"\nimport script from \"./SalesChartTotal.vue?vue&type=script&lang=js&\"\nexport * from \"./SalesChartTotal.vue?vue&type=script&lang=js&\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('bar-chart',{attrs:{\"chart-data\":_vm.chartSeperated,\"options\":_vm.chartOptions}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesChartSeperated.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesChartSeperated.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SalesChartSeperated.vue?vue&type=template&id=22bfb8f5&\"\nimport script from \"./SalesChartSeperated.vue?vue&type=script&lang=js&\"\nexport * from \"./SalesChartSeperated.vue?vue&type=script&lang=js&\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"headers\":_vm.tableHeaders,\"loading\":_vm.loading,\"hide-default-footer\":\"\",\"items\":_vm.tableItems,\"items-per-page\":_vm.tableItems.length},scopedSlots:_vm._u([_vm._l((['totalGross', 'orderValueAverage']),function(a){return {key:`item.${a}`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.toCurrencyString(parseFloat(item[a])))+\" \")]}}}),_vm._l((_vm.tableItemTemplateArray),function(b){return {key:`item.${b}`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.parseInterfaceItem(item, b))+\" \")]}}}),{key:\"item.date\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.parseDate(item.date))+\" \")]}},{key:\"body.append\",fn:function({ isMobile, items }){return [_c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(items.length !== 0),expression:\"items.length !== 0\"}],class:{ 'v-data-table__mobile-table-row': isMobile }},[_c('td',{staticClass:\"font-weight-bold\",class:{ 'v-data-table__mobile-row': isMobile }},[_vm._v(\"Total\")]),_vm._l((_vm.tableHeaders.slice(1)),function(header,i){return _c('td',{key:i,staticClass:\"text-end\",class:{ 'v-data-table__mobile-row': isMobile }},[(isMobile)?_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(header.text)+\" \")]):_vm._e(),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.getTotalOfColumn(header.value, header.isCurrency))+\" \")])])})],2)]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SalesTable.vue?vue&type=template&id=d2389f14&\"\nimport script from \"./SalesTable.vue?vue&type=script&lang=js&\"\nexport * from \"./SalesTable.vue?vue&type=script&lang=js&\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-row',_vm._l((_vm.pieChartData),function(pieData,i){return _c('v-col',{key:i},[_c('v-container',{staticClass:\"outlined\",attrs:{\"rounded\":\"\",\"white\":\"\"}},[_c('pie-chart',{attrs:{\"chart-data\":pieData,\"options\":_vm.pieChartOptions(pieData.title),\"width\":300,\"align\":\"center\"}})],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","var render, staticRenderFns\nimport script from \"./PieChart.vue?vue&type=script&lang=js&\"\nexport * from \"./PieChart.vue?vue&type=script&lang=js&\"\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","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PieChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PieChart.vue?vue&type=script&lang=js&\"","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesPieCharts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SalesPieCharts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SalesPieCharts.vue?vue&type=template&id=72d834de&\"\nimport script from \"./SalesPieCharts.vue?vue&type=script&lang=js&\"\nexport * from \"./SalesPieCharts.vue?vue&type=script&lang=js&\"\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\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseSales.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseSales.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BaseSales.vue?vue&type=template&id=010bbf3c&\"\nimport script from \"./BaseSales.vue?vue&type=script&lang=js&\"\nexport * from \"./BaseSales.vue?vue&type=script&lang=js&\"\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","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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-divider',{staticClass:\"mb-4 transparent\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./BaseDivider.vue?vue&type=template&id=cbc35bb2&\"\nvar script = {}\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","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","function 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\nexport var reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport var reactiveProp = {\n props: {\n chartData: {\n type: Object,\n required: true,\n default: function _default() {}\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport default {\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n};","import Chart from 'chart.js';\nexport function 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 Chart(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}\nexport var Bar = generateChart('bar-chart', 'bar');\nexport var HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nexport var Doughnut = generateChart('doughnut-chart', 'doughnut');\nexport var Line = generateChart('line-chart', 'line');\nexport var Pie = generateChart('pie-chart', 'pie');\nexport var PolarArea = generateChart('polar-chart', 'polarArea');\nexport var Radar = generateChart('radar-chart', 'radar');\nexport var Bubble = generateChart('bubble-chart', 'bubble');\nexport var Scatter = generateChart('scatter-chart', 'scatter');\nexport default {\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","var render, staticRenderFns\nimport script from \"./ValueParseMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./ValueParseMixin.vue?vue&type=script&lang=js&\"\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","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValueParseMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValueParseMixin.vue?vue&type=script&lang=js&\"","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","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\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