forked from Regaddi/Chart.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChart.min.js
9 lines (9 loc) · 29.4 KB
/
Chart.min.js
1
2
3
4
5
6
7
8
9
/*!
* Chart.js
* http://chartjs.org/
*
* Copyright 2013 Nick Downie
* Released under the MIT license
* https://github.com/nnnick/Chart.js/blob/master/LICENSE.md
*/
;window.Chart=function(e,f){var u=this;var a={linear:function(H){return H},easeInQuad:function(H){return H*H},easeOutQuad:function(H){return -1*H*(H-2)},easeInOutQuad:function(H){if((H/=1/2)<1){return 1/2*H*H}return -1/2*((--H)*(H-2)-1)},easeInCubic:function(H){return H*H*H},easeOutCubic:function(H){return 1*((H=H/1-1)*H*H+1)},easeInOutCubic:function(H){if((H/=1/2)<1){return 1/2*H*H*H}return 1/2*((H-=2)*H*H+2)},easeInQuart:function(H){return H*H*H*H},easeOutQuart:function(H){return -1*((H=H/1-1)*H*H*H-1)},easeInOutQuart:function(H){if((H/=1/2)<1){return 1/2*H*H*H*H}return -1/2*((H-=2)*H*H*H-2)},easeInQuint:function(H){return 1*(H/=1)*H*H*H*H},easeOutQuint:function(H){return 1*((H=H/1-1)*H*H*H*H+1)},easeInOutQuint:function(H){if((H/=1/2)<1){return 1/2*H*H*H*H*H}return 1/2*((H-=2)*H*H*H*H+2)},easeInSine:function(H){return -1*Math.cos(H/1*(Math.PI/2))+1},easeOutSine:function(H){return 1*Math.sin(H/1*(Math.PI/2))},easeInOutSine:function(H){return -1/2*(Math.cos(Math.PI*H/1)-1)},easeInExpo:function(H){return(H==0)?1:1*Math.pow(2,10*(H/1-1))},easeOutExpo:function(H){return(H==1)?1:1*(-Math.pow(2,-10*H/1)+1)},easeInOutExpo:function(H){if(H==0){return 0}if(H==1){return 1}if((H/=1/2)<1){return 1/2*Math.pow(2,10*(H-1))}return 1/2*(-Math.pow(2,-10*--H)+2)},easeInCirc:function(H){if(H>=1){return H}return -1*(Math.sqrt(1-(H/=1)*H)-1)},easeOutCirc:function(H){return 1*Math.sqrt(1-(H=H/1-1)*H)},easeInOutCirc:function(H){if((H/=1/2)<1){return -1/2*(Math.sqrt(1-H*H)-1)}return 1/2*(Math.sqrt(1-(H-=2)*H)+1)},easeInElastic:function(I){var J=1.70158;var K=0;var H=1;if(I==0){return 0}if((I/=1)==1){return 1}if(!K){K=1*0.3}if(H<Math.abs(1)){H=1;var J=K/4}else{var J=K/(2*Math.PI)*Math.asin(1/H)}return -(H*Math.pow(2,10*(I-=1))*Math.sin((I*1-J)*(2*Math.PI)/K))},easeOutElastic:function(I){var J=1.70158;var K=0;var H=1;if(I==0){return 0}if((I/=1)==1){return 1}if(!K){K=1*0.3}if(H<Math.abs(1)){H=1;var J=K/4}else{var J=K/(2*Math.PI)*Math.asin(1/H)}return H*Math.pow(2,-10*I)*Math.sin((I*1-J)*(2*Math.PI)/K)+1},easeInOutElastic:function(I){var J=1.70158;var K=0;var H=1;if(I==0){return 0}if((I/=1/2)==2){return 1}if(!K){K=1*(0.3*1.5)}if(H<Math.abs(1)){H=1;var J=K/4}else{var J=K/(2*Math.PI)*Math.asin(1/H)}if(I<1){return -0.5*(H*Math.pow(2,10*(I-=1))*Math.sin((I*1-J)*(2*Math.PI)/K))}return H*Math.pow(2,-10*(I-=1))*Math.sin((I*1-J)*(2*Math.PI)/K)*0.5+1},easeInBack:function(H){var I=1.70158;return 1*(H/=1)*H*((I+1)*H-I)},easeOutBack:function(H){var I=1.70158;return 1*((H=H/1-1)*H*((I+1)*H+I)+1)},easeInOutBack:function(H){var I=1.70158;if((H/=1/2)<1){return 1/2*(H*H*(((I*=(1.525))+1)*H-I))}return 1/2*((H-=2)*H*(((I*=(1.525))+1)*H+I)+2)},easeInBounce:function(H){return 1-a.easeOutBounce(1-H)},easeOutBounce:function(H){if((H/=1)<(1/2.75)){return 1*(7.5625*H*H)}else{if(H<(2/2.75)){return 1*(7.5625*(H-=(1.5/2.75))*H+0.75)}else{if(H<(2.5/2.75)){return 1*(7.5625*(H-=(2.25/2.75))*H+0.9375)}else{return 1*(7.5625*(H-=(2.625/2.75))*H+0.984375)}}}},easeInOutBounce:function(H){if(H<1/2){return a.easeInBounce(H*2)*0.5}return a.easeOutBounce(H*2-1)*0.5+1*0.5}};this.tooltips=[],defaults={tooltips:{background:"rgba(0,0,0,0.6)",fontFamily:"'Arial'",fontStyle:"normal",fontColor:"white",fontSize:"12px",labelTemplate:"<%=label%>: <%=value%>",padding:{top:10,right:10,bottom:10,left:10},offset:{left:0,top:0},border:{width:0,color:"#000"},showHighlight:true,highlight:{stroke:{width:1,color:"rgba(230,230,230,0.25)"},fill:"rgba(255,255,255,0.25)"}}},f=(f)?B(defaults,f):defaults;function n(H,K,J,I){u.tooltips.push(new z(H,K,J,I))}var z=function(H,K,J,I){this.ctx=H;this.areaObj=K;this.data=J;this.savedState=null;this.highlightState=null;this.x=null;this.y=null;this.inRange=function(L,R){if(this.areaObj.type){switch(this.areaObj.type){case"rect":return(L>=this.areaObj.x&&L<=this.areaObj.x+this.areaObj.width)&&(R>=this.areaObj.y&&R<=this.areaObj.y+this.areaObj.height);break;case"circle":return((Math.pow(L-this.areaObj.x,2)+Math.pow(R-this.areaObj.y,2))<Math.pow(this.areaObj.r,2));break;case"shape":var P=this.areaObj.points;for(var Q=false,O=-1,M=P.length,N=M-1;++O<M;N=O){((P[O].y<=R&&R<P[N].y)||(P[N].y<=R&&R<P[O].y))&&(L<(P[N].x-P[O].x)*(R-P[O].y)/(P[N].y-P[O].y)+P[O].x)&&(Q=!Q)}return Q;break}}};this.render=function(L,R){if(this.savedState==null){this.ctx.putImageData(u.savedState,0,0);this.savedState=this.ctx.getImageData(0,0,this.ctx.canvas.width,this.ctx.canvas.height)}this.ctx.putImageData(this.savedState,0,0);if(f.tooltips.showHighlight){if(this.highlightState==null){this.ctx.strokeStyle=f.tooltips.highlight.stroke.color;this.ctx.lineWidth=f.tooltips.highlight.stroke.width;this.ctx.fillStyle=f.tooltips.highlight.fill;switch(this.areaObj.type){case"rect":this.ctx.strokeRect(this.areaObj.x,this.areaObj.y,this.areaObj.width,this.areaObj.height);this.ctx.fillStyle=f.tooltips.highlight.fill;this.ctx.fillRect(this.areaObj.x,this.areaObj.y,this.areaObj.width,this.areaObj.height);break;case"circle":this.ctx.beginPath();this.ctx.arc(this.areaObj.x,this.areaObj.y,this.areaObj.r,0,2*Math.PI,false);this.ctx.stroke();this.ctx.fill();break;case"shape":this.ctx.beginPath();this.ctx.moveTo(this.areaObj.points[0].x,this.areaObj.points[0].y);for(var O in this.areaObj.points){this.ctx.lineTo(this.areaObj.points[O].x,this.areaObj.points[O].y)}this.ctx.stroke();this.ctx.fill();break}this.highlightState=this.ctx.getImageData(0,0,this.ctx.canvas.width,this.ctx.canvas.height)}else{this.ctx.putImageData(this.highlightState,0,0)}}var Q=L+f.tooltips.offset.left,P=R+f.tooltips.offset.top,M=l(f.tooltips.labelTemplate,this.data),N=f.tooltips.padding.left+this.ctx.measureText(M).width+f.tooltips.padding.right;if(Q+N>this.ctx.canvas.width){Q-=Q-N<0?Q:N}if(P+24>this.ctx.canvas.height){P-=24}this.ctx.fillStyle=f.tooltips.background;this.ctx.fillRect(Q,P,N,24);if(f.tooltips.border.width>0){this.ctx.fillStyle=f.tooltips.order.color;this.ctx.lineWidth=f.tooltips.border.width;this.ctx.strokeRect(Q,P,N,24)}this.ctx.font=f.tooltips.fontStyle+" "+f.tooltips.fontSize+" "+f.tooltips.fontFamily;this.ctx.fillStyle=f.tooltips.fontColor;this.ctx.textAlign="center";this.ctx.textBaseline="middle";this.ctx.fillText(M,Q+N/2,P+12);this.x=L;this.y=R}};var x=e.canvas.width,v=e.canvas.height;this.savedState=null;function D(J){var I=0;var H=0;while(J){I+=(J.offsetLeft-J.scrollLeft+J.clientLeft);H+=(J.offsetTop-J.scrollTop+J.clientTop);J=J.offsetParent}return{x:I,y:H}}function q(K){if(u.tooltips.length>0){u.savedState=u.savedState==null?e.getImageData(0,0,e.canvas.width,e.canvas.height):u.savedState;var M=0;for(var I in u.tooltips){var H=D(e.canvas),L=(K.clientX)-H.x,J=(K.clientY)-H.y;if(u.tooltips[I].inRange(L,J)){u.tooltips[I].render(L,J);M++}}if(M==0){e.putImageData(u.savedState,0,0)}}}if(("ontouchstart" in window)||window.DocumentTouch&&document instanceof DocumentTouch){e.canvas.ontouchstart=function(H){H.clientX=H.targetTouches[0].clientX;H.clientY=H.targetTouches[0].clientY;q(H)};e.canvas.ontouchmove=function(H){H.clientX=H.targetTouches[0].clientX;H.clientY=H.targetTouches[0].clientY;q(H)}}else{e.canvas.onmousemove=function(H){q(H)}}e.canvas.onmouseout=function(H){if(u.savedState!=null){e.putImageData(u.savedState,0,0)}};if(window.devicePixelRatio){e.canvas.style.width=x+"px";e.canvas.style.height=v+"px";e.canvas.height=v*window.devicePixelRatio;e.canvas.width=x*window.devicePixelRatio;e.scale(window.devicePixelRatio,window.devicePixelRatio)}this.PolarArea=function(J,I){u.PolarArea.defaults={scaleOverlay:true,scaleOverride:false,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleShowLine:true,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:true,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowLabelBackdrop:true,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,segmentShowStroke:true,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animation:true,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:true,animateScale:false,onAnimationComplete:null,showTooltips:true};var H=(I)?B(u.PolarArea.defaults,I):u.PolarArea.defaults;return new g(J,H,e)};this.Radar=function(J,I){u.Radar.defaults={scaleOverlay:false,scaleOverride:false,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleShowLine:true,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:false,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowLabelBackdrop:true,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,angleShowLineOut:true,angleLineColor:"rgba(0,0,0,.1)",angleLineWidth:1,pointLabelFontFamily:"'Arial'",pointLabelFontStyle:"normal",pointLabelFontSize:12,pointLabelFontColor:"#666",pointDot:true,pointDotRadius:3,pointDotStrokeWidth:1,datasetStroke:true,datasetStrokeWidth:2,datasetFill:true,animation:true,animationSteps:60,animationEasing:"easeOutQuart",onAnimationComplete:null,showTooltips:true};var H=(I)?B(u.Radar.defaults,I):u.Radar.defaults;return new F(J,H,e)};this.Pie=function(J,I){u.Pie.defaults={segmentShowStroke:true,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animation:true,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:true,animateScale:false,onAnimationComplete:null,labelFontFamily:"'Arial'",labelFontStyle:"normal",labelFontSize:12,labelFontColor:"#666",labelAlign:"right",showTooltips:true};var H=(I)?B(u.Pie.defaults,I):u.Pie.defaults;return new A(J,H,e)};this.Doughnut=function(J,I){u.Doughnut.defaults={segmentShowStroke:true,segmentStrokeColor:"#fff",segmentStrokeWidth:2,percentageInnerCutout:50,animation:true,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:true,animateScale:false,onAnimationComplete:null,showTooltips:true};var H=(I)?B(u.Doughnut.defaults,I):u.Doughnut.defaults;return new E(J,H,e)};this.Line=function(J,I){u.Line.defaults={scaleOverlay:false,scaleOverride:false,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:true,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowGridLines:true,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,bezierCurve:true,pointDot:true,pointDotRadius:4,pointDotStrokeWidth:2,datasetStroke:true,datasetStrokeWidth:2,datasetFill:true,animation:true,animationSteps:60,animationEasing:"easeOutQuart",onAnimationComplete:null,showTooltips:true};var H=(I)?B(u.Line.defaults,I):u.Line.defaults;return new y(J,H,e)};this.Bar=function(J,I){u.Bar.defaults={scaleOverlay:false,scaleOverride:false,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:true,scaleLabel:"<%=value%>",scaleFontFamily:"'Arial'",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",scaleShowGridLines:true,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,barShowStroke:true,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,animation:true,animationSteps:60,animationEasing:"easeOutQuart",onAnimationComplete:null,showTooltips:true};var H=(I)?B(u.Bar.defaults,I):u.Bar.defaults;return new d(J,H,e)};var w=function(H){H.clearRect(0,0,x,v)};var g=function(N,L,T){var S,K,J,M,U,R,H;Q();R=P();H=(L.scaleShowLabels)?L.scaleLabel:null;if(!L.scaleOverride){J=k(U,R.maxSteps,R.minSteps,R.maxValue,R.minValue,H)}else{J={steps:L.scaleSteps,stepValue:L.scaleStepWidth,graphMin:L.scaleStartValue,labels:[]};t(H,J.labels,J.steps,L.scaleStartValue,L.scaleStepWidth)}K=S/(J.steps);i(L,I,O,T);function Q(){S=(G([x,v])/2);S-=b([L.scaleFontSize*0.5,L.scaleLineWidth*0.5]);M=L.scaleFontSize*2;if(L.scaleShowLabelBackdrop){M+=(2*L.scaleBackdropPaddingY);S-=L.scaleBackdropPaddingY*1.5}U=S;M=j(M,5)}function I(){for(var W=0;W<J.steps;W++){if(L.scaleShowLine){T.beginPath();T.arc(x/2,v/2,K*(W+1),0,(Math.PI*2),true);T.strokeStyle=L.scaleLineColor;T.lineWidth=L.scaleLineWidth;T.stroke()}if(L.scaleShowLabels){T.textAlign="center";T.font=L.scaleFontStyle+" "+L.scaleFontSize+"px "+L.scaleFontFamily;var V=J.labels[W];if(L.scaleShowLabelBackdrop){var X=T.measureText(V).width;T.fillStyle=L.scaleBackdropColor;T.beginPath();T.rect(Math.round(x/2-X/2-L.scaleBackdropPaddingX),Math.round(v/2-(K*(W+1))-L.scaleFontSize*0.5-L.scaleBackdropPaddingY),Math.round(X+(L.scaleBackdropPaddingX*2)),Math.round(L.scaleFontSize+(L.scaleBackdropPaddingY*2)));T.fill()}T.textBaseline="middle";T.fillStyle=L.scaleFontColor;T.fillText(V,x/2,v/2-(K*(W+1)))}}}function O(V){var ab=-Math.PI/2,ae=(Math.PI*2)/N.length,Z=1,ac=1;if(L.animation){if(L.animateScale){Z=V}if(L.animateRotate){ac=V}}for(var X=0;X<N.length;X++){T.beginPath();T.arc(x/2,v/2,Z*p(N[X].value,J,K),ab,ab+ac*ae,false);T.lineTo(x/2,v/2);T.closePath();T.fillStyle=N[X].color;T.fill();if(V>=1&&L.showTooltips){var ad=[{x:x/2,y:v/2}],Y=50,aa=p(N[X].value,J,K);ad.push({x:x/2+aa*Math.cos(ab),y:v/2+aa*Math.sin(ab)});for(var W=0;W<=Y;W++){ad.push({x:x/2+aa*Math.cos(ab+W/Y*ac*ae),y:v/2+aa*Math.sin(ab+W/Y*ac*ae)})}n(T,{type:"shape",points:ad},{label:N[X].label,value:N[X].value},"PolarArea")}if(L.segmentShowStroke){T.strokeStyle=L.segmentStrokeColor;T.lineWidth=L.segmentStrokeWidth;T.stroke()}ab+=ac*ae}}function P(){var Z=Number.MIN_VALUE;var V=Number.MAX_VALUE;for(var Y=0;Y<N.length;Y++){if(N[Y].value>Z){Z=N[Y].value}if(N[Y].value<V){V=N[Y].value}}var X=Math.floor((U/(M*0.66)));var W=Math.floor((U/M*0.5));return{maxValue:Z,minValue:V,maxSteps:X,minSteps:W}}};var F=function(O,M,T){var S,L,K,N,U,R,H;if(!O.labels){O.labels=[]}Q();var R=P();H=(M.scaleShowLabels)?M.scaleLabel:null;if(!M.scaleOverride){K=k(U,R.maxSteps,R.minSteps,R.maxValue,R.minValue,H)}else{K={steps:M.scaleSteps,stepValue:M.scaleStepWidth,graphMin:M.scaleStartValue,labels:[]};t(H,K.labels,K.steps,M.scaleStartValue,M.scaleStepWidth)}L=S/(K.steps);i(M,I,J,T);function J(V){var ae=(2*Math.PI)/O.datasets[0].data.length;T.save();T.translate(x/2,v/2);for(var ac=0;ac<O.datasets.length;ac++){var ab=p(O.datasets[ac].data[0],K,L);T.beginPath();T.moveTo(0,V*(-1*ab));if(V>=1&&M.showTooltips){var X=x/2+ab*Math.cos(0-Math.PI/2),W=v/2+ab*Math.sin(0-Math.PI/2),ad=M.pointDot?M.pointDotRadius+M.pointDotStrokeWidth:10,Y=O.labels[0].trim()!=""?O.labels[0]+": "+O.datasets[ac].data[0]:O.datasets[ac].data[0];n(T,{type:"circle",x:X,y:W,r:ad},{label:O.labels[0],value:O.datasets[ac].data[0]},"Radar")}for(var aa=1;aa<O.datasets[ac].data.length;aa++){ab=p(O.datasets[ac].data[aa],K,L);T.rotate(ae);T.lineTo(0,V*(-1*ab));if(V>=1&&M.showTooltips){var X=x/2+ab*Math.cos(aa*ae-Math.PI/2),W=v/2+ab*Math.sin(aa*ae-Math.PI/2),ad=M.pointDot?M.pointDotRadius+M.pointDotStrokeWidth:10,Y=O.labels[aa].trim()!=""?O.labels[aa]+": "+O.datasets[ac].data[aa]:O.datasets[ac].data[aa];n(T,{type:"circle",x:X,y:W,r:ad},{label:O.labels[aa],value:O.datasets[ac].data[aa]},"Radar")}}T.closePath();T.fillStyle=O.datasets[ac].fillColor;T.strokeStyle=O.datasets[ac].strokeColor;T.lineWidth=M.datasetStrokeWidth;T.fill();T.stroke();if(M.pointDot){T.fillStyle=O.datasets[ac].pointColor;T.strokeStyle=O.datasets[ac].pointStrokeColor;T.lineWidth=M.pointDotStrokeWidth;for(var Z=0;Z<O.datasets[ac].data.length;Z++){T.rotate(ae);T.beginPath();T.arc(0,V*(-1*p(O.datasets[ac].data[Z],K,L)),M.pointDotRadius,2*Math.PI,false);T.fill();T.stroke()}}T.rotate(ae)}T.restore()}function I(){var ac=(2*Math.PI)/O.datasets[0].data.length;T.save();T.translate(x/2,v/2);if(M.angleShowLineOut){T.strokeStyle=M.angleLineColor;T.lineWidth=M.angleLineWidth;for(var Z=0;Z<O.datasets[0].data.length;Z++){T.rotate(ac);T.beginPath();T.moveTo(0,0);T.lineTo(0,-S);T.stroke()}}for(var X=0;X<K.steps;X++){T.beginPath();if(M.scaleShowLine){T.strokeStyle=M.scaleLineColor;T.lineWidth=M.scaleLineWidth;T.moveTo(0,-L*(X+1));for(var W=0;W<O.datasets[0].data.length;W++){T.rotate(ac);T.lineTo(0,-L*(X+1))}T.closePath();T.stroke()}if(M.scaleShowLabels){T.textAlign="center";T.font=M.scaleFontStyle+" "+M.scaleFontSize+"px "+M.scaleFontFamily;T.textBaseline="middle";if(M.scaleShowLabelBackdrop){var ab=T.measureText(K.labels[X]).width;T.fillStyle=M.scaleBackdropColor;T.beginPath();T.rect(Math.round(-ab/2-M.scaleBackdropPaddingX),Math.round((-L*(X+1))-M.scaleFontSize*0.5-M.scaleBackdropPaddingY),Math.round(ab+(M.scaleBackdropPaddingX*2)),Math.round(M.scaleFontSize+(M.scaleBackdropPaddingY*2)));T.fill()}T.fillStyle=M.scaleFontColor;T.fillText(K.labels[X],0,-L*(X+1))}}for(var V=0;V<O.labels.length;V++){T.font=M.pointLabelFontStyle+" "+M.pointLabelFontSize+"px "+M.pointLabelFontFamily;T.fillStyle=M.pointLabelFontColor;var aa=Math.sin(ac*V)*(S+M.pointLabelFontSize);var Y=Math.cos(ac*V)*(S+M.pointLabelFontSize);if(ac*V==Math.PI||ac*V==0){T.textAlign="center"}else{if(ac*V>Math.PI){T.textAlign="right"}else{T.textAlign="left"}}T.textBaseline="middle";T.fillText(O.labels[V],aa,-Y)}T.restore()}function Q(){S=(G([x,v])/2);N=M.scaleFontSize*2;var X=0;for(var W=0;W<O.labels.length;W++){T.font=M.pointLabelFontStyle+" "+M.pointLabelFontSize+"px "+M.pointLabelFontFamily;var V=T.measureText(O.labels[W]).width;if(V>X){X=V}}S-=b([X,((M.pointLabelFontSize/2)*1.5)]);S-=M.pointLabelFontSize;S=m(S,null,0);U=S;N=j(N,5)}function P(){var aa=Number.MIN_VALUE;var V=Number.MAX_VALUE;for(var Z=0;Z<O.datasets.length;Z++){for(var Y=0;Y<O.datasets[Z].data.length;Y++){if(O.datasets[Z].data[Y]>aa){aa=O.datasets[Z].data[Y]}if(O.datasets[Z].data[Y]<V){V=O.datasets[Z].data[Y]}}}var X=Math.floor((U/(N*0.66)));var W=Math.floor((U/N*0.5));return{maxValue:aa,minValue:V,maxSteps:X,minSteps:W}}};var A=function(N,K,I){var H=0;var J=G([v/2,x/2])-5;for(var L=0;L<N.length;L++){H+=N[L].value}I.fillStyle="black";I.textBaseline="base";i(K,null,M,I);function M(O){var V=-Math.PI/2,U=1,X=1;if(K.animation){if(K.animateScale){U=O}if(K.animateRotate){X=O}}for(var S=0;S<N.length;S++){var Q=X*((N[S].value/H)*(Math.PI*2));I.beginPath();I.arc(x/2,v/2,U*J,V,V+Q);I.lineTo(x/2,v/2);I.closePath();I.fillStyle=N[S].color;I.fill();if(N[S].label&&U*J*2*Q/(2*Math.PI)>K.labelFontSize){function Y(ae,ad){switch(ae){case"left":return -ad+20;break;case"center":return -ad/2;break}return -10}function W(ad){switch(ad){case"left":return"right";break;case"right":return"left";break;case"center":return ad;break}}var ac=N[S].labelFontSize||K.labelFontSize+"px";if(ac.match(/^[0-9]+$/g)!=null){ac=ac+"px"}I.font=K.labelFontStyle+" "+ac+" "+K.labelFontFamily;I.fillStyle=c(O,N[S].labelColor||"black",N[S].color);I.textBaseline="middle";var T=-(V+Q)+Q/2,aa=x/2+U*J*Math.cos(T),Z=v/2-U*J*Math.sin(T);I.textAlign=N[S].labelAlign||K.labelAlign;textX=Y(I.textAlign,U*J);if(T<-Math.PI/2){T-=Math.PI;I.textAlign=W(I.textAlign);textX=-textX}I.translate(aa,Z);I.rotate(-T);I.fillText(N[S].label,textX,0);I.rotate(T);I.translate(-aa,-Z)}if(O>=1&&K.showTooltips){var ab=[{x:x/2,y:v/2}],R=50;ab.push({x:x/2+J*Math.cos(V),y:v/2+J*Math.sin(V)});for(var P=0;P<=R;P++){ab.push({x:x/2+J*Math.cos(V+P/R*Q),y:v/2+J*Math.sin(V+P/R*Q)})}n(I,{type:"shape",points:ab},{label:N[S].label,value:N[S].value},"Pie")}if(K.segmentShowStroke){I.lineWidth=K.segmentStrokeWidth;I.strokeStyle=K.segmentStrokeColor;I.stroke()}V+=Q}}};var E=function(N,K,I){var H=0;var J=G([v/2,x/2])-5;var O=J*(K.percentageInnerCutout/100);for(var L=0;L<N.length;L++){H+=N[L].value}i(K,null,M,I);function M(P){var V=-Math.PI/2,U=1,W=1;if(K.animation){if(K.animateScale){U=P}if(K.animateRotate){W=P}}for(var S=0;S<N.length;S++){var R=W*((N[S].value/H)*(Math.PI*2));I.beginPath();I.arc(x/2,v/2,U*J,V,V+R,false);I.arc(x/2,v/2,U*O,V+R,V,true);I.closePath();I.fillStyle=N[S].color;I.fill();if(P>=1&&K.showTooltips){var X=[],T=50;X.push({x:x/2+J*Math.cos(V),y:v/2+J*Math.sin(V)});for(var Q=0;Q<=T;Q++){X.push({x:x/2+J*Math.cos(V+Q/T*R),y:v/2+J*Math.sin(V+Q/T*R)})}X.push({x:x/2+O*Math.cos(V+R),y:v/2+O*Math.sin(V+R)});for(var Q=T;Q>=0;Q--){X.push({x:x/2+O*Math.cos(V+Q/T*R),y:v/2+O*Math.sin(V+Q/T*R)})}n(I,{type:"shape",points:X},{label:N[S].label,value:N[S].value},"Doughnut")}if(K.segmentShowStroke){I.lineWidth=K.segmentStrokeWidth;I.strokeStyle=K.segmentStrokeColor;I.stroke()}V+=R}}};var y=function(ab,aa,U){var K,N,X,H,J,Z,S,Q,O,R,P,Y,L=0;W();Z=T();S=(aa.scaleShowLabels)?aa.scaleLabel:"";if(!aa.scaleOverride){X=k(J,Z.maxSteps,Z.minSteps,Z.maxValue,Z.minValue,S)}else{X={steps:aa.scaleSteps,stepValue:aa.scaleStepWidth,graphMin:aa.scaleStartValue,labels:[]};t(S,X.labels,X.steps,aa.scaleStartValue,aa.scaleStepWidth)}N=Math.floor(J/X.steps);V();i(aa,I,M,U);function M(ah){for(var ae=0;ae<ab.datasets.length;ae++){U.strokeStyle=ab.datasets[ae].strokeColor;U.lineWidth=aa.datasetStrokeWidth;U.beginPath();U.moveTo(P,Y-ah*(p(ab.datasets[ae].data[0],X,N)));for(var ad=1;ad<ab.datasets[ae].data.length;ad++){if(aa.bezierCurve){U.bezierCurveTo(ai(ad-0.5),af(ae,ad-1),ai(ad-0.5),af(ae,ad),ai(ad),af(ae,ad))}else{U.lineTo(ai(ad),af(ae,ad))}}var ag=aa.pointDot?aa.pointDotRadius+aa.pointDotStrokeWidth:10;for(var ad=0;ad<ab.datasets[ae].data.length;ad++){if(ah>=1&&aa.showTooltips){n(U,{type:"circle",x:ai(ad),y:af(ae,ad),r:ag},{label:ab.labels[ad],value:ab.datasets[ae].data[ad]},"Line")}}U.stroke();if(aa.datasetFill){U.lineTo(P+(Q*(ab.datasets[ae].data.length-1)),Y);U.lineTo(P,Y);U.closePath();U.fillStyle=ab.datasets[ae].fillColor;U.fill()}else{U.closePath()}if(aa.pointDot){U.fillStyle=ab.datasets[ae].pointColor;U.strokeStyle=ab.datasets[ae].pointStrokeColor;U.lineWidth=aa.pointDotStrokeWidth;for(var ac=0;ac<ab.datasets[ae].data.length;ac++){U.beginPath();U.arc(P+(Q*ac),Y-ah*(p(ab.datasets[ae].data[ac],X,N)),aa.pointDotRadius,0,Math.PI*2,true);U.fill();U.stroke()}}}function af(aj,ak){return Y-ah*(p(ab.datasets[aj].data[ak],X,N))}function ai(aj){return P+(Q*aj)}}function I(){U.lineWidth=aa.scaleLineWidth;U.strokeStyle=aa.scaleLineColor;U.beginPath();U.moveTo(x-O/2+5,Y);U.lineTo(x-(O/2)-R-5,Y);U.stroke();if(L>0){U.save();U.textAlign="right"}else{U.textAlign="center"}U.fillStyle=aa.scaleFontColor;for(var ad=0;ad<ab.labels.length;ad++){U.save();if(L>0){U.translate(P+ad*Q,Y+aa.scaleFontSize);U.rotate(-(L*(Math.PI/180)));U.fillText(ab.labels[ad],0,0);U.restore()}else{U.fillText(ab.labels[ad],P+ad*Q,Y+aa.scaleFontSize+3)}U.beginPath();U.moveTo(P+ad*Q,Y+3);if(aa.scaleShowGridLines&&ad>0){U.lineWidth=aa.scaleGridLineWidth;U.strokeStyle=aa.scaleGridLineColor;U.lineTo(P+ad*Q,5)}else{U.lineTo(P+ad*Q,Y+3)}U.stroke()}U.lineWidth=aa.scaleLineWidth;U.strokeStyle=aa.scaleLineColor;U.beginPath();U.moveTo(P,Y+5);U.lineTo(P,5);U.stroke();U.textAlign="right";U.textBaseline="middle";for(var ac=0;ac<X.steps;ac++){U.beginPath();U.moveTo(P-3,Y-((ac+1)*N));if(aa.scaleShowGridLines){U.lineWidth=aa.scaleGridLineWidth;U.strokeStyle=aa.scaleGridLineColor;U.lineTo(P+R+5,Y-((ac+1)*N))}else{U.lineTo(P-0.5,Y-((ac+1)*N))}U.stroke();if(aa.scaleShowLabels){U.fillText(X.labels[ac],P-8,Y-((ac+1)*N))}}}function V(){var ac=1;if(aa.scaleShowLabels){U.font=aa.scaleFontStyle+" "+aa.scaleFontSize+"px "+aa.scaleFontFamily;for(var ad=0;ad<X.labels.length;ad++){var ae=U.measureText(X.labels[ad]).width;ac=(ae>ac)?ae:ac}ac+=10}R=x-ac-O;Q=Math.floor(R/(ab.labels.length-1));P=x-O/2-R;Y=J+aa.scaleFontSize/2}function W(){K=v;U.font=aa.scaleFontStyle+" "+aa.scaleFontSize+"px "+aa.scaleFontFamily;O=1;for(var ad=0;ad<ab.labels.length;ad++){var ac=U.measureText(ab.labels[ad]).width;O=(ac>O)?ac:O}if(x/ab.labels.length<O){L=45;if(x/ab.labels.length<Math.cos(L)*O){L=90;K-=O}else{K-=Math.sin(L)*O}}else{K-=aa.scaleFontSize}K-=5;H=aa.scaleFontSize;K-=H;J=K}function T(){var ah=Number.MIN_VALUE;var ac=Number.MAX_VALUE;for(var ag=0;ag<ab.datasets.length;ag++){for(var af=0;af<ab.datasets[ag].data.length;af++){if(ab.datasets[ag].data[af]>ah){ah=ab.datasets[ag].data[af]}if(ab.datasets[ag].data[af]<ac){ac=ab.datasets[ag].data[af]}}}var ae=Math.floor((J/(H*0.66)));var ad=Math.floor((J/H*0.5));return{maxValue:ah,minValue:ac,maxSteps:ae,minSteps:ad}}};var d=function(ac,ab,V){var K,M,Y,H,J,aa,R,P,N,Q,O,Z,T,L=0;X();aa=S();R=(ab.scaleShowLabels)?ab.scaleLabel:"";if(!ab.scaleOverride){Y=k(J,aa.maxSteps,aa.minSteps,aa.maxValue,aa.minValue,R)}else{Y={steps:ab.scaleSteps,stepValue:ab.scaleStepWidth,graphMin:ab.scaleStartValue,labels:[]};t(R,Y.labels,Y.steps,ab.scaleStartValue,ab.scaleStepWidth)}M=Math.floor(J/Y.steps);W();i(ab,I,U,V);function U(aj){V.lineWidth=ab.barStrokeWidth;for(var ag=0;ag<ac.datasets.length;ag++){for(var af=0;af<ac.datasets[ag].data.length;af++){var ai=O+ab.barValueSpacing+P*af+T*ag+ab.barDatasetSpacing*ag+ab.barStrokeWidth*ag;V.fillStyle=o(ac.datasets[ag].fillColor,af);V.strokeStyle=o(ac.datasets[ag].strokeColor,af);V.beginPath();V.moveTo(ai,Z);V.lineTo(ai,Z-aj*p(ac.datasets[ag].data[af],Y,M)+(ab.barStrokeWidth/2));V.lineTo(ai+T,Z-aj*p(ac.datasets[ag].data[af],Y,M)+(ab.barStrokeWidth/2));V.lineTo(ai+T,Z);if(ab.barShowStroke){V.stroke()}V.closePath();V.fill();if(aj>=1&&ab.showTooltips){var ae=ai,ad=p(ac.datasets[ag].data[af],Y,M),ak=Z-ad,ah=T;n(V,{type:"rect",x:ae,y:ak,width:ah,height:ad},{label:ac.labels[af],value:ac.datasets[ag].data[af]},"Bar")}}}}function I(){V.lineWidth=ab.scaleLineWidth;V.strokeStyle=ab.scaleLineColor;V.beginPath();V.moveTo(x-N/2+5,Z);V.lineTo(x-(N/2)-Q-5,Z);V.stroke();if(L>0){V.save();V.textAlign="right"}else{V.textAlign="center"}V.fillStyle=ab.scaleFontColor;for(var ae=0;ae<ac.labels.length;ae++){V.save();if(L>0){V.translate(O+ae*P,Z+ab.scaleFontSize);V.rotate(-(L*(Math.PI/180)));V.fillText(ac.labels[ae],0,0);V.restore()}else{V.fillText(ac.labels[ae],O+ae*P+P/2,Z+ab.scaleFontSize+3)}V.beginPath();V.moveTo(O+(ae+1)*P,Z+3);V.lineWidth=ab.scaleGridLineWidth;V.strokeStyle=ab.scaleGridLineColor;V.lineTo(O+(ae+1)*P,5);V.stroke()}V.lineWidth=ab.scaleLineWidth;V.strokeStyle=ab.scaleLineColor;V.beginPath();V.moveTo(O,Z+5);V.lineTo(O,5);V.stroke();V.textAlign="right";V.textBaseline="middle";for(var ad=0;ad<Y.steps;ad++){V.beginPath();V.moveTo(O-3,Z-((ad+1)*M));if(ab.scaleShowGridLines){V.lineWidth=ab.scaleGridLineWidth;V.strokeStyle=ab.scaleGridLineColor;V.lineTo(O+Q+5,Z-((ad+1)*M))}else{V.lineTo(O-0.5,Z-((ad+1)*M))}V.stroke();if(ab.scaleShowLabels){V.fillText(Y.labels[ad],O-8,Z-((ad+1)*M))}}}function W(){var ad=1;if(ab.scaleShowLabels){V.font=ab.scaleFontStyle+" "+ab.scaleFontSize+"px "+ab.scaleFontFamily;for(var ae=0;ae<Y.labels.length;ae++){var af=V.measureText(Y.labels[ae]).width;ad=(af>ad)?af:ad}ad+=10}Q=x-ad-N;P=Math.floor(Q/(ac.labels.length));T=(P-ab.scaleGridLineWidth*2-(ab.barValueSpacing*2)-(ab.barDatasetSpacing*ac.datasets.length-1)-((ab.barStrokeWidth/2)*ac.datasets.length-1))/ac.datasets.length;O=x-N/2-Q;Z=J+ab.scaleFontSize/2}function X(){K=v;V.font=ab.scaleFontStyle+" "+ab.scaleFontSize+"px "+ab.scaleFontFamily;N=1;for(var ae=0;ae<ac.labels.length;ae++){var ad=V.measureText(ac.labels[ae]).width;N=(ad>N)?ad:N}if(x/ac.labels.length<N){L=45;if(x/ac.labels.length<Math.cos(L)*N){L=90;K-=N}else{K-=Math.sin(L)*N}}else{K-=ab.scaleFontSize}K-=5;H=ab.scaleFontSize;K-=H;J=K}function S(){var ai=Number.MIN_VALUE;var ad=Number.MAX_VALUE;for(var ah=0;ah<ac.datasets.length;ah++){for(var ag=0;ag<ac.datasets[ah].data.length;ag++){if(ac.datasets[ah].data[ag]>ai){ai=ac.datasets[ah].data[ag]}if(ac.datasets[ah].data[ag]<ad){ad=ac.datasets[ah].data[ag]}}}var af=Math.floor((J/(H*0.66)));var ae=Math.floor((J/H*0.5));return{maxValue:ai,minValue:ad,maxSteps:af,minSteps:ae}}};function p(K,I,M){var L=I.steps*I.stepValue;var J=K-I.graphMin;var H=m(J/L,1,0);return(M*I.steps)*H}function i(K,I,H,P){var J=(K.animation)?1/m(K.animationSteps,Number.MAX_VALUE,1):1,O=a[K.animationEasing],L=(K.animation)?0:1;if(typeof I!=="function"){I=function(){}}h(M);function N(){var Q=(K.animation)?m(O(L),null,0):1;w(P);if(K.scaleOverlay){H(Q);I()}else{I();H(Q)}}function M(){L+=J;N();if(L<=1){h(M)}else{if(typeof K.onAnimationComplete=="function"){K.onAnimationComplete()}}}}var h=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(H){window.setTimeout(H,1000/60)}})();function k(K,N,T,P,V,H){var U,I,J,R,W,Q,S,M;Q=P-V;S=L(Q);U=Math.floor(V/(1*Math.pow(10,S)))*Math.pow(10,S);I=Math.ceil(P/(1*Math.pow(10,S)))*Math.pow(10,S);J=I-U;R=Math.pow(10,S);W=Math.round(J/R);while(W<T||W>N){if(W<T){R/=2;W=Math.round(J/R)}else{R*=2;W=Math.round(J/R)}}var O=[];t(H,O,W,U,R);return{steps:W,stepValue:R,graphMin:U,labels:O};function L(X){return Math.floor(Math.log(X)/Math.LN10)}}function t(J,M,I,L,H){if(J){for(var K=1;K<I+1;K++){M.push(l(J,{value:(L+(H*K)).toFixed(C(H))}))}}}function o(H,I){return(H&&H.constructor.name=="Array")?H[I%H.length]:H}function b(H){return Math.max.apply(Math,H)}function G(H){return Math.min.apply(Math,H)}function j(I,H){if(!I){return H}else{return I}}function s(H){return !isNaN(parseFloat(H))&&isFinite(H)}function m(H,J,I){if(s(J)){if(H>J){return J}}if(s(I)){if(H<I){return I}}return H}function C(H){var I;if(H%1!=0){return H.toString().split(".")[1].length}else{return 0}}function B(K,I){var H={};for(var J in K){H[J]=K[J]}for(var J in I){if(typeof(I[J])==="object"&&K[J]){H[J]=B(K[J],I[J])}else{H[J]=I[J]}}return H}var r={};function l(J,I){var H=!/\W/.test(J)?r[J]=r[J]||l(document.getElementById(J).innerHTML):new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+J.replace(/[\r\t\n]/g," ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return I?H(I):H}function c(K,P,Y){var T=document.createElement("div"),V,Q;T.style.color=P;document.body.appendChild(T);V=window.getComputedStyle(T).color;T.style.color=Y;Q=window.getComputedStyle(T).color;var N=/rgb *\( *([0-9]{1,3}) *, *([0-9]{1,3}) *, *([0-9]{1,3}) *\)/,L=N.exec(V),H=N.exec(Q),M=Math.round(parseFloat(L[1])),R=Math.round(parseFloat(L[2])),W=Math.round(parseFloat(L[3])),I=Math.round(parseFloat(H[1])),O=Math.round(parseFloat(H[2])),U=Math.round(parseFloat(H[3])),S=parseInt((M-I)*K+I),X=parseInt((R-O)*K+O),J=parseInt((W-U)*K+U);T.parentNode.removeChild(T);return"rgb("+S+","+X+","+J+")"}};