/*! * WPBakery Page Builder v6.0.0 (https://wpbakery.com) * Copyright 2011-2019 Michael M, WPBakery * License: Commercial. More details: http://go.wpbakery.com/licensing */ // jscs:disable // jshint ignore: start (function(){"use strict";var root=this,previous=root.Chart,Chart=function(context){this.canvas=context.canvas,this.ctx=context;var computeDimension=function(element,dimension){return element["offset"+dimension]?element["offset"+dimension]:document.defaultView.getComputedStyle(element).getPropertyValue(dimension)};this.width=computeDimension(context.canvas,"Width")||context.canvas.width,this.height=computeDimension(context.canvas,"Height")||context.canvas.height;return this.aspectRatio=this.width/this.height,helpers.retinaScale(this),this};Chart.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,customTooltips:!1,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipTitleTemplate:"<%= label%>",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= datasetLabel %>: <%= value %>",multiTooltipKeyBackground:"#fff",segmentColorDefault:["#A6CEE3","#1F78B4","#B2DF8A","#33A02C","#FB9A99","#E31A1C","#FDBF6F","#FF7F00","#CAB2D6","#6A3D9A","#B4B482","#B15928"],segmentHighlightColorDefaults:["#CEF6FF","#47A0DC","#DAFFB2","#5BC854","#FFC2C1","#FF4244","#FFE797","#FFA728","#F2DAFE","#9265C2","#DCDCAA","#D98150"],onAnimationProgress:function(){},onAnimationComplete:function(){}}},Chart.types={};var id,timeout,helpers=Chart.helpers={},each=helpers.each=function(loopable,callback,self){var i,additionalArgs=Array.prototype.slice.call(arguments,3);if(loopable)if(loopable.length===+loopable.length)for(i=0;i)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):cache[str]=cache[str],data?fn(data):fn}),easingEffects=(helpers.generateLabels=function(templateString,numberOfSteps,graphMin,stepValue){var labelsArray=new Array(numberOfSteps);return templateString&&each(labelsArray,function(val,index){labelsArray[index]=template(templateString,{value:graphMin+stepValue*(index+1)})}),labelsArray},helpers.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(1-Math.pow(2,-10*t/1))},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return 1<=t?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var s=1.70158,p=0,a=1;return 0===t?0:1==(t/=1)?1:(p||(p=.3),athis.chart.width/2?xMin:xMax,y:(yMin+yMax)/2}}.call(this,dataIndex);new Chart.MultiTooltip({x:medianPosition.x,y:medianPosition.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:tooltipLabels,legendColors:tooltipColors,legendColorBackground:this.options.multiTooltipKeyBackground,title:template(this.options.tooltipTitleTemplate,ChartElements[0]),chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw()}else each(ChartElements,function(Element){var tooltipPosition=Element.tooltipPosition();new Chart.Tooltip({x:Math.round(tooltipPosition.x),y:Math.round(tooltipPosition.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,text:template(this.options.tooltipTemplate,Element),chart:this.chart,custom:this.options.customTooltips}).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}}),Chart.Type.extend=function(extensions){var parent=this,ChartType=function(){return parent.apply(this,arguments)};if(ChartType.prototype=clone(parent.prototype),extend(ChartType.prototype,extensions),ChartType.extend=Chart.Type.extend,extensions.name||parent.prototype.name){var chartName=extensions.name||parent.prototype.name,baseDefaults=Chart.defaults[parent.prototype.name]?clone(Chart.defaults[parent.prototype.name]):{};Chart.defaults[chartName]=extend(baseDefaults,extensions.defaults),Chart.types[chartName]=ChartType,Chart.prototype[chartName]=function(data,options){var config=merge(Chart.defaults.global,Chart.defaults[chartName],options||{});return new ChartType(data,config,this)}}else warn("Name not provided for this chart, so it hasn't been registered");return parent},extend((Chart.Element=function(configuration){extend(this,configuration),this.initialize.apply(this,arguments),this.save()}).prototype,{initialize:function(){},restore:function(props){return props?each(props,function(key){this[key]=this._saved[key]},this):extend(this,this._saved),this},save:function(){return this._saved=clone(this),delete this._saved._saved,this},update:function(newProps){return each(newProps,function(value,key){this._saved[key]=this[key],this[key]=value},this),this},transition:function(props,ease){return each(props,function(value,key){this[key]=(value-this._saved[key])*ease+this._saved[key]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return isNumber(this.value)}}),Chart.Element.extend=inherits,Chart.Point=Chart.Element.extend({display:!0,inRange:function(chartX,chartY){var hitDetectionRange=this.hitDetectionRadius+this.radius;return Math.pow(chartX-this.x,2)+Math.pow(chartY-this.y,2)=this.innerRadius&&pointRelativePosition.distance<=this.outerRadius;return betweenAngles&&withinRadius},tooltipPosition:function(){var centreAngle=this.startAngle+(this.endAngle-this.startAngle)/2,rangeFromCentre=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(centreAngle)*rangeFromCentre,y:this.y+Math.sin(centreAngle)*rangeFromCentre}},draw:function(animationPercent){var ctx=this.ctx;ctx.beginPath(),ctx.arc(this.x,this.y,this.outerRadius<0?0:this.outerRadius,this.startAngle,this.endAngle),ctx.arc(this.x,this.y,this.innerRadius<0?0:this.innerRadius,this.endAngle,this.startAngle,!0),ctx.closePath(),ctx.strokeStyle=this.strokeColor,ctx.lineWidth=this.strokeWidth,ctx.fillStyle=this.fillColor,ctx.fill(),ctx.lineJoin="bevel",this.showStroke&&ctx.stroke()}}),Chart.Rectangle=Chart.Element.extend({draw:function(){var ctx=this.ctx,halfWidth=this.width/2,leftX=this.x-halfWidth,rightX=this.x+halfWidth,top=this.base-(this.base-this.y),halfStroke=this.strokeWidth/2;this.showStroke&&(leftX+=halfStroke,rightX-=halfStroke,top+=halfStroke),ctx.beginPath(),ctx.fillStyle=this.fillColor,ctx.strokeStyle=this.strokeColor,ctx.lineWidth=this.strokeWidth,ctx.moveTo(leftX,this.base),ctx.lineTo(leftX,top),ctx.lineTo(rightX,top),ctx.lineTo(rightX,this.base),ctx.fill(),this.showStroke&&ctx.stroke()},height:function(){return this.base-this.y},inRange:function(chartX,chartY){return chartX>=this.x-this.width/2&&chartX<=this.x+this.width/2&&chartY>=this.y&&chartY<=this.base}}),Chart.Animation=Chart.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Chart.Tooltip=Chart.Element.extend({draw:function(){var ctx=this.chart.ctx;ctx.font=fontString(this.fontSize,this.fontStyle,this.fontFamily),this.xAlign="center",this.yAlign="above";var caretPadding=this.caretPadding=2,tooltipWidth=ctx.measureText(this.text).width+2*this.xPadding,tooltipRectHeight=this.fontSize+2*this.yPadding,tooltipHeight=tooltipRectHeight+this.caretHeight+caretPadding;this.x+tooltipWidth/2>this.chart.width?this.xAlign="left":this.x-tooltipWidth/2<0&&(this.xAlign="right"),this.y-tooltipHeight<0&&(this.yAlign="below");var tooltipX=this.x-tooltipWidth/2,tooltipY=this.y-tooltipHeight;if(ctx.fillStyle=this.fillColor,this.custom)this.custom(this);else{switch(this.yAlign){case"above":ctx.beginPath(),ctx.moveTo(this.x,this.y-caretPadding),ctx.lineTo(this.x+this.caretHeight,this.y-(caretPadding+this.caretHeight)),ctx.lineTo(this.x-this.caretHeight,this.y-(caretPadding+this.caretHeight)),ctx.closePath(),ctx.fill();break;case"below":tooltipY=this.y+caretPadding+this.caretHeight,ctx.beginPath(),ctx.moveTo(this.x,this.y+caretPadding),ctx.lineTo(this.x+this.caretHeight,this.y+caretPadding+this.caretHeight),ctx.lineTo(this.x-this.caretHeight,this.y+caretPadding+this.caretHeight),ctx.closePath(),ctx.fill()}switch(this.xAlign){case"left":tooltipX=this.x-tooltipWidth+(this.cornerRadius+this.caretHeight);break;case"right":tooltipX=this.x-(this.cornerRadius+this.caretHeight)}drawRoundedRectangle(ctx,tooltipX,tooltipY,tooltipWidth,tooltipRectHeight,this.cornerRadius),ctx.fill(),ctx.fillStyle=this.textColor,ctx.textAlign="center",ctx.textBaseline="middle",ctx.fillText(this.text,tooltipX+tooltipWidth/2,tooltipY+tooltipRectHeight/2)}}}),Chart.MultiTooltip=Chart.Element.extend({initialize:function(){this.font=fontString(this.fontSize,this.fontStyle,this.fontFamily),this.titleFont=fontString(this.titleFontSize,this.titleFontStyle,this.titleFontFamily),this.titleHeight=this.title?1.5*this.titleFontSize:0,this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+2*this.yPadding+this.titleHeight,this.ctx.font=this.titleFont;var titleWidth=this.ctx.measureText(this.title).width,labelWidth=longestText(this.ctx,this.font,this.labels)+this.fontSize+3,longestTextWidth=max([labelWidth,titleWidth]);this.width=longestTextWidth+2*this.xPadding;var halfHeight=this.height/2;this.y-halfHeight<0?this.y=halfHeight:this.y+halfHeight>this.chart.height&&(this.y=this.chart.height-halfHeight),this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(index){var baseLineHeight=this.y-this.height/2+this.yPadding,afterTitleIndex=index-1;return 0===index?baseLineHeight+this.titleHeight/3:baseLineHeight+(1.5*this.fontSize*afterTitleIndex+this.fontSize/2)+this.titleHeight},draw:function(){if(this.custom)this.custom(this);else{drawRoundedRectangle(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var ctx=this.ctx;ctx.fillStyle=this.fillColor,ctx.fill(),ctx.closePath(),ctx.textAlign="left",ctx.textBaseline="middle",ctx.fillStyle=this.titleTextColor,ctx.font=this.titleFont,ctx.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0)),ctx.font=this.font,helpers.each(this.labels,function(label,index){ctx.fillStyle=this.textColor,ctx.fillText(label,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(index+1)),ctx.fillStyle=this.legendColorBackground,ctx.fillRect(this.x+this.xPadding,this.getLineHeight(index+1)-this.fontSize/2,this.fontSize,this.fontSize),ctx.fillStyle=this.legendColors[index].fill,ctx.fillRect(this.x+this.xPadding,this.getLineHeight(index+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}}),Chart.Scale=Chart.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var stepDecimalPlaces=getDecimalPlaces(this.stepValue),i=0;i<=this.steps;i++)this.yLabels.push(template(this.templateString,{value:(this.min+i*this.stepValue).toFixed(stepDecimalPlaces)}));this.yLabelWidth=this.display&&this.showLabels?longestText(this.ctx,this.font,this.yLabels)+10:0},addXLabel:function(label){this.xLabels.push(label),this.valuesCount++,this.fit()},removeXLabel:function(){this.xLabels.shift(),this.valuesCount--,this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0,this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height,this.startPoint+=this.padding,this.endPoint-=this.padding;var cachedYLabelWidth,cachedEndPoint=this.endPoint,cachedHeight=this.endPoint-this.startPoint;for(this.calculateYRange(cachedHeight),this.buildYLabels(),this.calculateXLabelRotation();cachedHeight>this.endPoint-this.startPoint;)cachedHeight=this.endPoint-this.startPoint,cachedYLabelWidth=this.yLabelWidth,this.calculateYRange(cachedHeight),this.buildYLabels(),cachedYLabelWidththis.yLabelWidth?firstWidth/2:this.yLabelWidth,this.xLabelRotation=0,this.display){var cosRotation,originalLabelWidth=longestText(this.ctx,this.font,this.xLabels);this.xLabelWidth=originalLabelWidth;for(var xGridWidth=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>xGridWidth&&0===this.xLabelRotation||this.xLabelWidth>xGridWidth&&this.xLabelRotation<=90&&0this.yLabelWidth&&(this.xScalePaddingLeft=firstRotated+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=cosRotation*originalLabelWidth;0furthestRight&&(furthestRight=pointPosition.x+halfTextWidth,furthestRightIndex=i),pointPosition.x-halfTextWidthfurthestRight&&(furthestRight=pointPosition.x+textWidth,furthestRightIndex=i):i>this.valuesCount/2&&pointPosition.x-textWidththis.animations[i].animationObject.numSteps&&(this.animations[i].animationObject.currentStep=this.animations[i].animationObject.numSteps),this.animations[i].animationObject.render(this.animations[i].chartInstance,this.animations[i].animationObject),this.animations[i].animationObject.currentStep==this.animations[i].animationObject.numSteps&&(this.animations[i].animationObject.onAnimationComplete.call(this.animations[i].chartInstance),this.animations.splice(i,1),i--);var frameDelay=(Date.now()-startTime-this.frameDuration)/this.frameDuration;1<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>'},initialize:function(data){var options=this.options;this.ScaleClass=Chart.Scale.extend({offsetGridLines:!0,calculateBarX:function(datasetCount,datasetIndex,barIndex){var xWidth=this.calculateBaseWidth(),xAbsolute=this.calculateX(barIndex)-xWidth/2,barWidth=this.calculateBarWidth(datasetCount);return xAbsolute+barWidth*datasetIndex+datasetIndex*options.barDatasetSpacing+barWidth/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*options.barValueSpacing},calculateBarWidth:function(datasetCount){return(this.calculateBaseWidth()-(datasetCount-1)*options.barDatasetSpacing)/datasetCount}}),this.datasets=[],this.options.showTooltips&&helpers.bindEvents(this,this.options.tooltipEvents,function(evt){var activeBars="mouseout"!==evt.type?this.getBarsAtEvent(evt):[];this.eachBars(function(bar){bar.restore(["fillColor","strokeColor"])}),helpers.each(activeBars,function(activeBar){activeBar&&(activeBar.fillColor=activeBar.highlightFill,activeBar.strokeColor=activeBar.highlightStroke)}),this.showTooltip(activeBars)}),this.BarClass=Chart.Rectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),helpers.each(data.datasets,function(dataset,datasetIndex){var datasetObject={label:dataset.label||null,fillColor:dataset.fillColor,strokeColor:dataset.strokeColor,bars:[]};this.datasets.push(datasetObject),helpers.each(dataset.data,function(dataPoint,index){datasetObject.bars.push(new this.BarClass({value:dataPoint,label:data.labels[index],datasetLabel:dataset.label,strokeColor:"object"==typeof dataset.strokeColor?dataset.strokeColor[index]:dataset.strokeColor,fillColor:"object"==typeof dataset.fillColor?dataset.fillColor[index]:dataset.fillColor,highlightFill:dataset.highlightFill?"object"==typeof dataset.highlightFill?dataset.highlightFill[index]:dataset.highlightFill:"object"==typeof dataset.fillColor?dataset.fillColor[index]:dataset.fillColor,highlightStroke:dataset.highlightStroke?"object"==typeof dataset.highlightStroke?dataset.highlightStroke[index]:dataset.highlightStroke:"object"==typeof dataset.strokeColor?dataset.strokeColor[index]:dataset.strokeColor}))},this)},this),this.buildScale(data.labels),this.BarClass.prototype.base=this.scale.endPoint,this.eachBars(function(bar,index,datasetIndex){helpers.extend(bar,{width:this.scale.calculateBarWidth(this.datasets.length),x:this.scale.calculateBarX(this.datasets.length,datasetIndex,index),y:this.scale.endPoint}),bar.save()},this),this.render()},update:function(){this.scale.update(),helpers.each(this.activeElements,function(activeElement){activeElement.restore(["fillColor","strokeColor"])}),this.eachBars(function(bar){bar.save()}),this.render()},eachBars:function(callback){helpers.each(this.datasets,function(dataset,datasetIndex){helpers.each(dataset.bars,callback,this,datasetIndex)},this)},getBarsAtEvent:function(e){for(var barIndex,barsArray=[],eventPosition=helpers.getRelativePosition(e),datasetIterator=function(dataset){barsArray.push(dataset.bars[barIndex])},datasetIndex=0;datasetIndex<% for (var i=0; i
  • <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>'};Chart.Type.extend({name:"Doughnut",defaults:defaultConfig,initialize:function(data){this.segments=[],this.outerRadius=(helpers.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,this.SegmentArc=Chart.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2}),this.options.showTooltips&&helpers.bindEvents(this,this.options.tooltipEvents,function(evt){var activeSegments="mouseout"!==evt.type?this.getSegmentsAtEvent(evt):[];helpers.each(this.segments,function(segment){segment.restore(["fillColor"])}),helpers.each(activeSegments,function(activeSegment){activeSegment.fillColor=activeSegment.highlightColor}),this.showTooltip(activeSegments)}),this.calculateTotal(data),helpers.each(data,function(datapoint,index){datapoint.color||(datapoint.color="hsl("+360*index/data.length+", 100%, 50%)"),this.addData(datapoint,index,!0)},this),this.render()},getSegmentsAtEvent:function(e){var segmentsArray=[],location=helpers.getRelativePosition(e);return helpers.each(this.segments,function(segment){segment.inRange(location.x,location.y)&&segmentsArray.push(segment)},this),segmentsArray},addData:function(segment,atIndex,silent){var index=void 0!==atIndex?atIndex:this.segments.length;void 0===segment.color&&(segment.color=Chart.defaults.global.segmentColorDefault[index%Chart.defaults.global.segmentColorDefault.length],segment.highlight=Chart.defaults.global.segmentHighlightColorDefaults[index%Chart.defaults.global.segmentHighlightColorDefaults.length]),this.segments.splice(index,0,new this.SegmentArc({value:segment.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:segment.color,highlightColor:segment.highlight||segment.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?0:this.calculateCircumference(segment.value),label:segment.label})),silent||(this.reflow(),this.update())},calculateCircumference:function(value){return 0<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>',offsetGridLines:!1},initialize:function(data){this.PointClass=Chart.Point.extend({offsetGridLines:this.options.offsetGridLines,strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx,inRange:function(mouseX){return Math.pow(mouseX-this.x,2)this.scale.endPoint?point.controlPoints.outer.y=this.scale.endPoint:point.controlPoints.outer.ythis.scale.endPoint?point.controlPoints.inner.y=this.scale.endPoint:point.controlPoints.inner.y<% for (var i=0; i
  • <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>'},initialize:function(data){this.segments=[],this.SegmentArc=Chart.Arc.extend({showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,ctx:this.chart.ctx,innerRadius:0,x:this.chart.width/2,y:this.chart.height/2}),this.scale=new Chart.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,lineArc:!0,width:this.chart.width,height:this.chart.height,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,valuesCount:data.length}),this.updateScaleRange(data),this.scale.update(),helpers.each(data,function(segment,index){this.addData(segment,index,!0)},this),this.options.showTooltips&&helpers.bindEvents(this,this.options.tooltipEvents,function(evt){var activeSegments="mouseout"!==evt.type?this.getSegmentsAtEvent(evt):[];helpers.each(this.segments,function(segment){segment.restore(["fillColor"])}),helpers.each(activeSegments,function(activeSegment){activeSegment.fillColor=activeSegment.highlightColor}),this.showTooltip(activeSegments)}),this.render()},getSegmentsAtEvent:function(e){var segmentsArray=[],location=helpers.getRelativePosition(e);return helpers.each(this.segments,function(segment){segment.inRange(location.x,location.y)&&segmentsArray.push(segment)},this),segmentsArray},addData:function(segment,atIndex,silent){var index=atIndex||this.segments.length;this.segments.splice(index,0,new this.SegmentArc({fillColor:segment.color,highlightColor:segment.highlight||segment.color,label:segment.label,value:segment.value,outerRadius:this.options.animateScale?0:this.scale.calculateCenterOffset(segment.value),circumference:this.options.animateRotate?0:this.scale.getCircumference(),startAngle:1.5*Math.PI})),silent||(this.reflow(),this.update())},removeData:function(atIndex){var indexToDelete=helpers.isNumber(atIndex)?atIndex:this.segments.length-1;this.segments.splice(indexToDelete,1),this.reflow(),this.update()},calculateTotal:function(data){this.total=0,helpers.each(data,function(segment){this.total+=segment.value},this),this.scale.valuesCount=this.segments.length},updateScaleRange:function(datapoints){var valuesArray=[];helpers.each(datapoints,function(segment){valuesArray.push(segment.value)});var scaleSizes=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:helpers.calculateScaleRange(valuesArray,helpers.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);helpers.extend(this.scale,scaleSizes,{size:helpers.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2})},update:function(){this.calculateTotal(this.segments),helpers.each(this.segments,function(segment){segment.save()}),this.reflow(),this.render()},reflow:function(){helpers.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.updateScaleRange(this.segments),this.scale.update(),helpers.extend(this.scale,{xCenter:this.chart.width/2,yCenter:this.chart.height/2}),helpers.each(this.segments,function(segment){segment.update({outerRadius:this.scale.calculateCenterOffset(segment.value)})},this)},draw:function(ease){var easingDecimal=ease||1;this.clear(),helpers.each(this.segments,function(segment,index){segment.transition({circumference:this.scale.getCircumference(),outerRadius:this.scale.calculateCenterOffset(segment.value)},easingDecimal),segment.endAngle=segment.startAngle+segment.circumference,0===index&&(segment.startAngle=1.5*Math.PI),index<% for (var i=0; i
  • <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>'},initialize:function(data){this.PointClass=Chart.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx}),this.datasets=[],this.buildScale(data),this.options.showTooltips&&helpers.bindEvents(this,this.options.tooltipEvents,function(evt){var activePointsCollection="mouseout"!==evt.type?this.getPointsAtEvent(evt):[];this.eachPoints(function(point){point.restore(["fillColor","strokeColor"])}),helpers.each(activePointsCollection,function(activePoint){activePoint.fillColor=activePoint.highlightFill,activePoint.strokeColor=activePoint.highlightStroke}),this.showTooltip(activePointsCollection)}),helpers.each(data.datasets,function(dataset){var datasetObject={label:dataset.label||null,fillColor:dataset.fillColor,strokeColor:dataset.strokeColor,pointColor:dataset.pointColor,pointStrokeColor:dataset.pointStrokeColor,points:[]};this.datasets.push(datasetObject),helpers.each(dataset.data,function(dataPoint,index){var pointPosition;this.scale.animation||(pointPosition=this.scale.getPointPosition(index,this.scale.calculateCenterOffset(dataPoint))),datasetObject.points.push(new this.PointClass({value:dataPoint,label:data.labels[index],datasetLabel:dataset.label,x:this.options.animation?this.scale.xCenter:pointPosition.x,y:this.options.animation?this.scale.yCenter:pointPosition.y,strokeColor:dataset.pointStrokeColor,fillColor:dataset.pointColor,highlightFill:dataset.pointHighlightFill||dataset.pointColor,highlightStroke:dataset.pointHighlightStroke||dataset.pointStrokeColor}))},this)},this),this.render()},eachPoints:function(callback){helpers.each(this.datasets,function(dataset){helpers.each(dataset.points,callback,this)},this)},getPointsAtEvent:function(evt){var mousePosition=helpers.getRelativePosition(evt),fromCenter=helpers.getAngleFromPoint({x:this.scale.xCenter,y:this.scale.yCenter},mousePosition),anglePerIndex=2*Math.PI/this.scale.valuesCount,pointIndex=Math.round((fromCenter.angle-1.5*Math.PI)/anglePerIndex),activePointsCollection=[];return(pointIndex>=this.scale.valuesCount||pointIndex<0)&&(pointIndex=0),fromCenter.distance<=this.scale.drawingArea&&helpers.each(this.datasets,function(dataset){activePointsCollection.push(dataset.points[pointIndex])}),activePointsCollection},buildScale:function(data){this.scale=new Chart.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backgroundColors:this.options.scaleBackgroundColors,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,angleLineColor:this.options.angleLineColor,angleLineWidth:this.options.angleShowLineOut?this.options.angleLineWidth:0,angleLineInterval:this.options.angleLineInterval?this.options.angleLineInterval:1,pointLabelFontColor:this.options.pointLabelFontColor,pointLabelFontSize:this.options.pointLabelFontSize,pointLabelFontFamily:this.options.pointLabelFontFamily,pointLabelFontStyle:this.options.pointLabelFontStyle,height:this.chart.height,width:this.chart.width,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,labels:data.labels,valuesCount:data.datasets[0].data.length}),this.scale.setScaleSize(),this.updateScaleRange(data.datasets),this.scale.buildYLabels()},updateScaleRange:function(datasets){var totalDataArray,valuesArray=(totalDataArray=[],helpers.each(datasets,function(dataset){dataset.data?totalDataArray=totalDataArray.concat(dataset.data):helpers.each(dataset.points,function(point){totalDataArray.push(point.value)})}),totalDataArray),scaleSizes=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:helpers.calculateScaleRange(valuesArray,helpers.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);helpers.extend(this.scale,scaleSizes)},addData:function(valuesArray,label){this.scale.valuesCount++,helpers.each(valuesArray,function(value,datasetIndex){var pointPosition=this.scale.getPointPosition(this.scale.valuesCount,this.scale.calculateCenterOffset(value));this.datasets[datasetIndex].points.push(new this.PointClass({value:value,label:label,datasetLabel:this.datasets[datasetIndex].label,x:pointPosition.x,y:pointPosition.y,strokeColor:this.datasets[datasetIndex].pointStrokeColor,fillColor:this.datasets[datasetIndex].pointColor}))},this),this.scale.labels.push(label),this.reflow(),this.update()},removeData:function(){this.scale.valuesCount--,this.scale.labels.shift(),helpers.each(this.datasets,function(dataset){dataset.points.shift()},this),this.reflow(),this.update()},update:function(){this.eachPoints(function(point){point.save()}),this.reflow(),this.render()},reflow:function(){helpers.extend(this.scale,{width:this.chart.width,height:this.chart.height,size:helpers.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2}),this.updateScaleRange(this.datasets),this.scale.setScaleSize(),this.scale.buildYLabels()},draw:function(ease){var easeDecimal=ease||1,ctx=this.chart.ctx;this.clear(),this.scale.draw(),helpers.each(this.datasets,function(dataset){helpers.each(dataset.points,function(point,index){point.hasValue()&&point.transition(this.scale.getPointPosition(index,this.scale.calculateCenterOffset(point.value)),easeDecimal)},this),ctx.lineWidth=this.options.datasetStrokeWidth,ctx.strokeStyle=dataset.strokeColor,ctx.beginPath(),helpers.each(dataset.points,function(point,index){0===index?ctx.moveTo(point.x,point.y):ctx.lineTo(point.x,point.y)},this),ctx.closePath(),ctx.stroke(),ctx.fillStyle=dataset.fillColor,this.options.datasetFill&&ctx.fill(),helpers.each(dataset.points,function(point){point.hasValue()&&point.draw()})},this)}})}.call(this);