forked from dima117/Chart.Scatter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChart.Core.min.js
4 lines (4 loc) · 27.1 KB
/
Chart.Core.min.js
1
2
3
4
(function(){"use strict";var c=this,g=c.Chart,t=function(t){var f=this;this.canvas=t.canvas;this.ctx=t;var i=function(n,t){return n["offset"+t]?n["offset"+t]:document.defaultView.getComputedStyle(n).getPropertyValue(t)},r=this.width=i(t.canvas,"Width")||t.canvas.width,u=this.height=i(t.canvas,"Height")||t.canvas.height;return t.canvas.width=r,t.canvas.height=u,r=this.width=t.canvas.width,u=this.height=t.canvas.height,this.aspectRatio=this.width/this.height,n.retinaScale(this),this};t.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",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",multiTooltipKeyBackground:"#fff",onAnimationProgress:function(){},onAnimationComplete:function(){}}};t.types={};var n=t.helpers={},i=n.each=function(n,t,i){var f=Array.prototype.slice.call(arguments,3),r,u;if(n)if(n.length===+n.length)for(r=0;r<n.length;r++)t.apply(i,[n[r],r].concat(f));else for(u in n)t.apply(i,[n[u],u].concat(f))},l=n.clone=function(n){var t={};return i(n,function(i,r){n.hasOwnProperty(r)&&(t[r]=i)}),t},r=n.extend=function(n){return i(Array.prototype.slice.call(arguments,1),function(t){i(t,function(i,r){t.hasOwnProperty(r)&&(n[r]=i)})}),n},nt=n.merge=function(){var n=Array.prototype.slice.call(arguments,0);return n.unshift({}),r.apply(null,n)},tt=n.indexOf=function(n,t){if(Array.prototype.indexOf)return n.indexOf(t);for(var i=0;i<n.length;i++)if(n[i]===t)return i;return-1},yt=n.where=function(t,i){var r=[];return n.each(t,function(n){i(n)&&r.push(n)}),r},pt=n.findNextWhere=function(n,t,i){var r,u;for(i||(i=-1),r=i+1;r<n.length;r++)if(u=n[r],t(u))return u},wt=n.findPreviousWhere=function(n,t,i){var r,u;for(i||(i=n.length),r=i-1;r>=0;r--)if(u=n[r],t(u))return u},p=n.inherits=function(n){var i=this,t=n&&n.hasOwnProperty("constructor")?n.constructor:function(){return i.apply(this,arguments)},u=function(){this.constructor=t};return u.prototype=i.prototype,t.prototype=new u,t.extend=p,n&&r(t.prototype,n),t.__super__=i.prototype,t},a=n.noop=function(){},it=n.uid=function(){var n=0;return function(){return"chart-"+n++}}(),rt=n.warn=function(n){window.console&&typeof window.console.warn=="function"&&console.warn(n)},ut=n.amd=typeof define=="function"&&define.amd,u=n.isNumber=function(n){return!isNaN(parseFloat(n))&&isFinite(n)},h=n.max=function(n){return Math.max.apply(Math,n)},o=n.min=function(n){return Math.min.apply(Math,n)},bt=n.cap=function(n,t,i){if(u(t)){if(n>t)return t}else if(u(i)&&n<i)return i;return n},w=n.getDecimalPlaces=function(n){var t,i;return n%1!=0&&u(n)?(t=n.toString(),t.indexOf("e-")<0?t.split(".")[1].length:t.indexOf(".")<0?parseInt(t.split("e-")[1]):(i=t.split(".")[1].split("e-"),i[0].length+parseInt(i[1]))):0},v=n.radians=function(n){return n*(Math.PI/180)},kt=n.getAngleFromPoint=function(n,t){var i=t.x-n.x,r=t.y-n.y,f=Math.sqrt(i*i+r*r),u=Math.PI*2+Math.atan2(r,i);return i<0&&r<0&&(u+=Math.PI*2),{angle:u,distance:f}},b=n.aliasPixel=function(n){return n%2==0?0:.5},dt=n.splineCurve=function(n,t,i,r){var u=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),f=Math.sqrt(Math.pow(i.x-t.x,2)+Math.pow(i.y-t.y,2)),e=r*u/(u+f),o=r*f/(u+f);return{inner:{x:t.x-e*(i.x-n.x),y:t.y-e*(i.y-n.y)},outer:{x:t.x+o*(i.x-n.x),y:t.y+o*(i.y-n.y)}}},ft=n.calculateOrderOfMagnitude=function(n){return Math.floor(Math.log(n)/Math.LN10)},gt=n.calculateScaleRange=function(n,t,i,r,u){var w=2,v=Math.floor(t/(i*1.5)),y=w>=v,c=h(n),l=o(n);c===l&&(c+=.5,l>=.5&&!r?l-=.5:c+=.5);for(var b=Math.abs(c-l),s=ft(b),k=Math.ceil(c/(1*Math.pow(10,s)))*Math.pow(10,s),p=r?0:Math.floor(l/(1*Math.pow(10,s)))*Math.pow(10,s),a=k-p,f=Math.pow(10,s),e=Math.round(a/f);(e>v||e*2<v)&&!y;)if(e>v)f*=2,e=Math.round(a/f),e%1!=0&&(y=!0);else if(u&&s>=0)if(f/2%1==0)f/=2,e=Math.round(a/f);else break;else f/=2,e=Math.round(a/f);return y&&(e=w,f=a/e),{steps:e,stepValue:f,min:p,max:p+e*f}},f=n.template=function(n,t){function r(n,t){var r=/\W/.test(n)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+n.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('');"):i[n]=i[n];return t?r(t):r}if(n instanceof Function)return n(t);var i={};return r(n,t)},ni=n.generateLabels=function(n,t,r,u){var e=new Array(t);return n&&i(e,function(t,i){e[i]=f(n,{value:r+u*(i+1)})}),e},s=n.easingEffects={linear:function(n){return n},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return-1*n*(n-2)},easeInOutQuad:function(n){return(n/=1/2)<1?1/2*n*n:-1/2*(--n*(n-2)-1)},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1*((n=n/1-1)*n*n+1)},easeInOutCubic:function(n){return(n/=1/2)<1?1/2*n*n*n:1/2*((n-=2)*n*n+2)},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return-1*((n=n/1-1)*n*n*n-1)},easeInOutQuart:function(n){return(n/=1/2)<1?1/2*n*n*n*n:-1/2*((n-=2)*n*n*n-2)},easeInQuint:function(n){return 1*(n/=1)*n*n*n*n},easeOutQuint:function(n){return 1*((n=n/1-1)*n*n*n*n+1)},easeInOutQuint:function(n){return(n/=1/2)<1?1/2*n*n*n*n*n:1/2*((n-=2)*n*n*n*n+2)},easeInSine:function(n){return-1*Math.cos(n/1*(Math.PI/2))+1},easeOutSine:function(n){return 1*Math.sin(n/1*(Math.PI/2))},easeInOutSine:function(n){return-1/2*(Math.cos(Math.PI*n/1)-1)},easeInExpo:function(n){return n===0?1:1*Math.pow(2,10*(n/1-1))},easeOutExpo:function(n){return n===1?1:1*(-Math.pow(2,-10*n)+1)},easeInOutExpo:function(n){return n===0?0:n===1?1:(n/=1/2)<1?1/2*Math.pow(2,10*(n-1)):1/2*(-Math.pow(2,-10*--n)+2)},easeInCirc:function(n){return n>=1?n:-1*(Math.sqrt(1-(n/=1)*n)-1)},easeOutCirc:function(n){return 1*Math.sqrt(1-(n=n/1-1)*n)},easeInOutCirc:function(n){return(n/=1/2)<1?-1/2*(Math.sqrt(1-n*n)-1):1/2*(Math.sqrt(1-(n-=2)*n)+1)},easeInElastic:function(n){var r=1.70158,t=0,i=1;return n===0?0:(n/=1)==1?1:(t||(t=1*.3),i<Math.abs(1)?(i=1,r=t/4):r=t/(2*Math.PI)*Math.asin(1/i),-(i*Math.pow(2,10*(n-=1))*Math.sin((n*1-r)*2*Math.PI/t)))},easeOutElastic:function(n){var r=1.70158,t=0,i=1;return n===0?0:(n/=1)==1?1:(t||(t=1*.3),i<Math.abs(1)?(i=1,r=t/4):r=t/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*n)*Math.sin((n*1-r)*2*Math.PI/t)+1)},easeInOutElastic:function(n){var r=1.70158,t=0,i=1;return n===0?0:(n/=1/2)==2?1:(t||(t=1*.3*1.5),i<Math.abs(1)?(i=1,r=t/4):r=t/(2*Math.PI)*Math.asin(1/i),n<1)?-.5*i*Math.pow(2,10*(n-=1))*Math.sin((n*1-r)*2*Math.PI/t):i*Math.pow(2,-10*(n-=1))*Math.sin((n*1-r)*2*Math.PI/t)*.5+1},easeInBack:function(n){var t=1.70158;return 1*(n/=1)*n*((t+1)*n-t)},easeOutBack:function(n){var t=1.70158;return 1*((n=n/1-1)*n*((t+1)*n+t)+1)},easeInOutBack:function(n){var t=1.70158;return(n/=1/2)<1?1/2*n*n*(((t*=1.525)+1)*n-t):1/2*((n-=2)*n*(((t*=1.525)+1)*n+t)+2)},easeInBounce:function(n){return 1-s.easeOutBounce(1-n)},easeOutBounce:function(n){return(n/=1)<1/2.75?1*7.5625*n*n:n<2/2.75?1*(7.5625*(n-=1.5/2.75)*n+.75):n<2.5/2.75?1*(7.5625*(n-=2.25/2.75)*n+.9375):1*(7.5625*(n-=2.625/2.75)*n+.984375)},easeInOutBounce:function(n){return n<1/2?s.easeInBounce(n*2)*.5:s.easeOutBounce(n*2-1)*.5+1*.5}},k=n.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(n){return window.setTimeout(n,1e3/60)}}(),et=n.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(n){return window.clearTimeout(n,1e3/60)}}(),ti=n.animationLoop=function(n,t,i,r,u,f){var e=0,h=s[i]||s.linear,o=function(){e++;var i=e/t,s=h(i);n.call(f,s,i,e);r.call(f,s,i);e<t?f.animationFrame=k(o):u.apply(f)};k(o)},ii=n.getRelativePosition=function(n){var r,u,t=n.originalEvent||n,f=n.currentTarget||n.srcElement,i=f.getBoundingClientRect();return t.touches?(r=t.touches[0].clientX-i.left,u=t.touches[0].clientY-i.top):(r=t.clientX-i.left,u=t.clientY-i.top),{x:r,y:u}},ot=n.addEvent=function(n,t,i){n.addEventListener?n.addEventListener(t,i):n.attachEvent?n.attachEvent("on"+t,i):n["on"+t]=i},st=n.removeEvent=function(n,t,i){n.removeEventListener?n.removeEventListener(t,i,!1):n.detachEvent?n.detachEvent("on"+t,i):n["on"+t]=a},ri=n.bindEvents=function(n,t,r){n.events||(n.events={});i(t,function(t){n.events[t]=function(){r.apply(n,arguments)};ot(n.chart.canvas,t,n.events[t])})},ht=n.unbindEvents=function(n,t){i(t,function(t,i){st(n.chart.canvas,i,t)})},ct=n.getMaximumWidth=function(n){var t=n.parentNode;return t.clientWidth},lt=n.getMaximumHeight=function(n){var t=n.parentNode;return t.clientHeight},ui=n.getMaximumSize=n.getMaximumWidth,at=n.retinaScale=function(n){var t=n.ctx,i=n.canvas.width,r=n.canvas.height;window.devicePixelRatio&&(t.canvas.style.width=i+"px",t.canvas.style.height=r+"px",t.canvas.height=r*window.devicePixelRatio,t.canvas.width=i*window.devicePixelRatio,t.scale(window.devicePixelRatio,window.devicePixelRatio))},vt=n.clear=function(n){n.ctx.clearRect(0,0,n.width,n.height)},e=n.fontString=function(n,t,i){return t+" "+n+"px "+i},y=n.longestText=function(n,t,r){n.font=t;var u=0;return i(r,function(t){var i=n.measureText(t).width;u=i>u?i:u}),u},d=n.drawRoundedRectangle=function(n,t,i,r,u,f){n.beginPath();n.moveTo(t+f,i);n.lineTo(t+r-f,i);n.quadraticCurveTo(t+r,i,t+r,i+f);n.lineTo(t+r,i+u-f);n.quadraticCurveTo(t+r,i+u,t+r-f,i+u);n.lineTo(t+f,i+u);n.quadraticCurveTo(t,i+u,t,i+u-f);n.lineTo(t,i+f);n.quadraticCurveTo(t,i,t+f,i);n.closePath()};t.instances={};t.Type=function(n,i,r){this.options=i;this.chart=r;this.id=it();t.instances[this.id]=this;i.responsive&&this.resize();this.initialize.call(this,n)};r(t.Type.prototype,{initialize:function(){return this},clear:function(){return vt(this.chart),this},stop:function(){return et(this.animationFrame),this},resize:function(n){this.stop();var t=this.chart.canvas,i=ct(this.chart.canvas),r=this.options.maintainAspectRatio?i/this.chart.aspectRatio:lt(this.chart.canvas);return t.width=this.chart.width=i,t.height=this.chart.height=r,at(this.chart),typeof n=="function"&&n.apply(this,Array.prototype.slice.call(arguments,1)),this},reflow:a,render:function(t){return t&&this.reflow(),this.options.animation&&!t?n.animationLoop(this.draw,this.options.animationSteps,this.options.animationEasing,this.options.onAnimationProgress,this.options.onAnimationComplete,this):(this.draw(),this.options.onAnimationComplete.call(this)),this},generateLegend:function(){return f(this.options.legendTemplate,this)},destroy:function(){this.clear();ht(this,this.events);var n=this.chart.canvas;n.width=this.chart.width;n.height=this.chart.height;n.style.removeProperty?(n.style.removeProperty("width"),n.style.removeProperty("height")):(n.style.removeAttribute("width"),n.style.removeAttribute("height"));delete t.instances[this.id]},showTooltip:function(r,u){var c,l,e,s;if(typeof this.activeElements=="undefined"&&(this.activeElements=[]),c=function(n){var t=!1;return n.length!==this.activeElements.length?t=!0:(i(n,function(n,i){n!==this.activeElements[i]&&(t=!0)},this),t)}.call(this,r),c||u)this.activeElements=r;else return;if(this.draw(),this.options.customTooltips&&this.options.customTooltips(!1),r.length>0)if(this.datasets&&this.datasets.length>1){for(s=this.datasets.length-1;s>=0;s--)if(l=this.datasets[s].points||this.datasets[s].bars||this.datasets[s].segments,e=tt(l,r[0]),e!==-1)break;var a=[],v=[],y=function(){var f=[],t,i=[],r=[],s,c,u,l;return n.each(this.datasets,function(n){t=n.points||n.bars||n.segments;t[e]&&t[e].hasValue()&&f.push(t[e])}),n.each(f,function(t){i.push(t.x);r.push(t.y);a.push(n.template(this.options.multiTooltipTemplate,t));v.push({fill:t._saved.fillColor||t.fillColor,stroke:t._saved.strokeColor||t.strokeColor})},this),l=o(r),c=h(r),u=o(i),s=h(i),{x:u>this.chart.width/2?u:s,y:(l+c)/2}}.call(this,e);new t.MultiTooltip({x:y.x,y:y.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:a,legendColors:v,legendColorBackground:this.options.multiTooltipKeyBackground,title:r[0].label,chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw()}else i(r,function(n){var i=n.tooltipPosition();new t.Tooltip({x:Math.round(i.x),y:Math.round(i.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:f(this.options.tooltipTemplate,n),chart:this.chart,custom:this.options.customTooltips}).draw()},this);return this},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}});t.Type.extend=function(n){var i=this,u=function(){return i.apply(this,arguments)},f,e;return u.prototype=l(i.prototype),r(u.prototype,n),u.extend=t.Type.extend,n.name||i.prototype.name?(f=n.name||i.prototype.name,e=t.defaults[i.prototype.name]?l(t.defaults[i.prototype.name]):{},t.defaults[f]=r(e,n.defaults),t.types[f]=u,t.prototype[f]=function(n,i){var r=nt(t.defaults.global,t.defaults[f],i||{});return new u(n,r,this)}):rt("Name not provided for this chart, so it hasn't been registered"),i};t.Element=function(n){r(this,n);this.initialize.apply(this,arguments);this.save()};r(t.Element.prototype,{initialize:function(){},restore:function(n){return n?i(n,function(n){this[n]=this._saved[n]},this):r(this,this._saved),this},save:function(){return this._saved=l(this),delete this._saved._saved,this},update:function(n){return i(n,function(n,t){this._saved[t]=this[t];this[t]=n},this),this},transition:function(n,t){return i(n,function(n,i){this[i]=(n-this._saved[i])*t+this._saved[i]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return u(this.value)}});t.Element.extend=p;t.Point=t.Element.extend({display:!0,inRange:function(n,t){var i=this.hitDetectionRadius+this.radius;return Math.pow(n-this.x,2)+Math.pow(t-this.y,2)<Math.pow(i,2)},draw:function(){if(this.display){var n=this.ctx;n.beginPath();n.arc(this.x,this.y,this.radius,0,Math.PI*2);n.closePath();n.strokeStyle=this.strokeColor;n.lineWidth=this.strokeWidth;n.fillStyle=this.fillColor;n.fill();n.stroke()}}});t.Arc=t.Element.extend({inRange:function(t,i){var r=n.getAngleFromPoint(this,{x:t,y:i}),u=r.angle>=this.startAngle&&r.angle<=this.endAngle,f=r.distance>=this.innerRadius&&r.distance<=this.outerRadius;return u&&f},tooltipPosition:function(){var n=this.startAngle+(this.endAngle-this.startAngle)/2,t=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(n)*t,y:this.y+Math.sin(n)*t}},draw:function(n){var i=n||1,t=this.ctx;t.beginPath();t.arc(this.x,this.y,this.outerRadius,this.startAngle,this.endAngle);t.arc(this.x,this.y,this.innerRadius,this.endAngle,this.startAngle,!0);t.closePath();t.strokeStyle=this.strokeColor;t.lineWidth=this.strokeWidth;t.fillStyle=this.fillColor;t.fill();t.lineJoin="bevel";this.showStroke&&t.stroke()}});t.Rectangle=t.Element.extend({draw:function(){var n=this.ctx,f=this.width/2,t=this.x-f,i=this.x+f,r=this.base-(this.base-this.y),u=this.strokeWidth/2;this.showStroke&&(t+=u,i-=u,r+=u);n.beginPath();n.fillStyle=this.fillColor;n.strokeStyle=this.strokeColor;n.lineWidth=this.strokeWidth;n.moveTo(t,this.base);n.lineTo(t,r);n.lineTo(i,r);n.lineTo(i,this.base);n.fill();this.showStroke&&n.stroke()},height:function(){return this.base-this.y},inRange:function(n,t){return n>=this.x-this.width/2&&n<=this.x+this.width/2&&t>=this.y&&t<=this.base}});t.Tooltip=t.Element.extend({draw:function(){var n=this.chart.ctx,r,u;n.font=e(this.fontSize,this.fontStyle,this.fontFamily);this.xAlign="center";this.yAlign="above";var t=this.caretPadding=2,i=n.measureText(this.text).width+2*this.xPadding,f=this.fontSize+2*this.yPadding,o=f+this.caretHeight+t;if(this.x+i/2>this.chart.width?this.xAlign="left":this.x-i/2<0&&(this.xAlign="right"),this.y-o<0&&(this.yAlign="below"),r=this.x-i/2,u=this.y-o,n.fillStyle=this.fillColor,this.custom)this.custom(this);else{switch(this.yAlign){case"above":n.beginPath();n.moveTo(this.x,this.y-t);n.lineTo(this.x+this.caretHeight,this.y-(t+this.caretHeight));n.lineTo(this.x-this.caretHeight,this.y-(t+this.caretHeight));n.closePath();n.fill();break;case"below":u=this.y+t+this.caretHeight;n.beginPath();n.moveTo(this.x,this.y+t);n.lineTo(this.x+this.caretHeight,this.y+t+this.caretHeight);n.lineTo(this.x-this.caretHeight,this.y+t+this.caretHeight);n.closePath();n.fill()}switch(this.xAlign){case"left":r=this.x-i+(this.cornerRadius+this.caretHeight);break;case"right":r=this.x-(this.cornerRadius+this.caretHeight)}d(n,r,u,i,f,this.cornerRadius);n.fill();n.fillStyle=this.textColor;n.textAlign="center";n.textBaseline="middle";n.fillText(this.text,r+i/2,u+f/2)}}});t.MultiTooltip=t.Element.extend({initialize:function(){var n;this.font=e(this.fontSize,this.fontStyle,this.fontFamily);this.titleFont=e(this.titleFontSize,this.titleFontStyle,this.titleFontFamily);this.titleHeight=this.title?this.titleFontSize*1.5:0;this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+this.yPadding*2+this.titleHeight;this.ctx.font=this.titleFont;var t=this.ctx.measureText(this.title).width,i=y(this.ctx,this.font,this.labels)+this.fontSize+3,r=h([i,t]);this.width=r+this.xPadding*2;n=this.height/2;this.y-n<0?this.y=n:this.y+n>this.chart.height&&(this.y=this.chart.height-n);this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(n){var t=this.y-this.height/2+this.yPadding,i=n-1;return n===0?t+this.titleHeight/3:t+(this.fontSize*1.5*i+this.fontSize/2)+this.titleHeight},draw:function(){if(this.custom)this.custom(this);else{d(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var t=this.ctx;t.fillStyle=this.fillColor;t.fill();t.closePath();t.textAlign="left";t.textBaseline="middle";t.fillStyle=this.titleTextColor;t.font=this.titleFont;t.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0));t.font=this.font;n.each(this.labels,function(n,i){t.fillStyle=this.textColor;t.fillText(n,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(i+1));t.fillStyle=this.legendColorBackground;t.fillRect(this.x+this.xPadding,this.getLineHeight(i+1)-this.fontSize/2,this.fontSize,this.fontSize);t.fillStyle=this.legendColors[i].fill;t.fillRect(this.x+this.xPadding,this.getLineHeight(i+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}});t.Scale=t.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){var t,n;for(this.yLabels=[],t=w(this.stepValue),n=0;n<=this.steps;n++)this.yLabels.push(f(this.templateString,{value:(this.min+n*this.stepValue).toFixed(t)}));this.yLabelWidth=this.display&&this.showLabels?y(this.ctx,this.font,this.yLabels):0},addXLabel:function(n){this.xLabels.push(n);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-this.fontSize*1.5-5:this.height;this.startPoint+=this.padding;this.endPoint-=this.padding;var n=this.endPoint-this.startPoint,t;for(this.calculateYRange(n),this.buildYLabels(),this.calculateXLabelRotation();n>this.endPoint-this.startPoint;)n=this.endPoint-this.startPoint,t=this.yLabelWidth,this.calculateYRange(n),this.buildYLabels(),t<this.yLabelWidth&&this.calculateXLabelRotation()},calculateXLabelRotation:function(){var n,r,u,e,t,i,f;if(this.ctx.font=this.font,n=this.ctx.measureText(this.xLabels[0]).width,r=this.ctx.measureText(this.xLabels[this.xLabels.length-1]).width,this.xScalePaddingRight=r/2+3,this.xScalePaddingLeft=n/2>this.yLabelWidth+10?n/2:this.yLabelWidth+10,this.xLabelRotation=0,this.display){for(t=y(this.ctx,this.font,this.xLabels),this.xLabelWidth=t,f=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>f&&this.xLabelRotation===0||this.xLabelWidth>f&&this.xLabelRotation<=90&&this.xLabelRotation>0;)i=Math.cos(v(this.xLabelRotation)),u=i*n,e=i*r,u+this.fontSize/2>this.yLabelWidth+8&&(this.xScalePaddingLeft=u+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=i*t;this.xLabelRotation>0&&(this.endPoint-=Math.sin(v(this.xLabelRotation))*t+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:a,drawingArea:function(){return this.startPoint-this.endPoint},calculateY:function(n){var t=this.drawingArea()/(this.min-this.max);return this.endPoint-t*(n-this.min)},calculateX:function(n){var u=this.xLabelRotation>0,r=this.width-(this.xScalePaddingLeft+this.xScalePaddingRight),t=r/Math.max(this.valuesCount-(this.offsetGridLines?0:1),1),i=t*n+this.xScalePaddingLeft;return this.offsetGridLines&&(i+=t/2),Math.round(i)},update:function(t){n.extend(this,t);this.fit()},draw:function(){var t=this.ctx,u=(this.endPoint-this.startPoint)/this.steps,r=Math.round(this.xScalePaddingLeft);this.display&&(t.fillStyle=this.textColor,t.font=this.font,i(this.yLabels,function(i,f){var s=this.endPoint-u*f,e=Math.round(s),o=this.showHorizontalLines;t.textAlign="right";t.textBaseline="middle";this.showLabels&&t.fillText(i,r-10,s);f!==0||o||(o=!0);o&&t.beginPath();f>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor);e+=n.aliasPixel(t.lineWidth);o&&(t.moveTo(r,e),t.lineTo(this.width,e),t.stroke(),t.closePath());t.lineWidth=this.lineWidth;t.strokeStyle=this.lineColor;t.beginPath();t.moveTo(r-5,e);t.lineTo(r,e);t.stroke();t.closePath()},this),i(this.xLabels,function(n,i){var e=this.calculateX(i)+b(this.lineWidth),r=this.calculateX(i-(this.offsetGridLines?.5:0))+b(this.lineWidth),f=this.xLabelRotation>0,u=this.showVerticalLines;i!==0||u||(u=!0);u&&t.beginPath();i>0?(t.lineWidth=this.gridLineWidth,t.strokeStyle=this.gridLineColor):(t.lineWidth=this.lineWidth,t.strokeStyle=this.lineColor);u&&(t.moveTo(r,this.endPoint),t.lineTo(r,this.startPoint-3),t.stroke(),t.closePath());t.lineWidth=this.lineWidth;t.strokeStyle=this.lineColor;t.beginPath();t.moveTo(r,this.endPoint);t.lineTo(r,this.endPoint+5);t.stroke();t.closePath();t.save();t.translate(e,f?this.endPoint+12:this.endPoint+8);t.rotate(v(this.xLabelRotation)*-1);t.font=this.font;t.textAlign=f?"right":"center";t.textBaseline=f?"middle":"top";t.fillText(n,0,0);t.restore()},this))}});t.RadialScale=t.Element.extend({initialize:function(){this.size=o([this.height,this.width]);this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2},calculateCenterOffset:function(n){var t=this.drawingArea/(this.max-this.min);return(n-this.min)*t},update:function(){this.lineArc?this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2:this.setScaleSize();this.buildYLabels()},buildYLabels:function(){var t,n;for(this.yLabels=[],t=w(this.stepValue),n=0;n<=this.steps;n++)this.yLabels.push(f(this.templateString,{value:(this.min+n*this.stepValue).toFixed(t)}))},getCircumference:function(){return Math.PI*2/this.valuesCount},setScaleSize:function(){var y=o([this.height/2-this.pointLabelFontSize-5,this.width/2]),t,n,i,h,c=this.width,a,p,l=0,v,w,b,k,r,s;for(this.ctx.font=e(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),n=0;n<this.valuesCount;n++)t=this.getPointPosition(n,y),i=this.ctx.measureText(f(this.templateString,{value:this.labels[n]})).width+5,n===0||n===this.valuesCount/2?(h=i/2,t.x+h>c&&(c=t.x+h,a=n),t.x-h<l&&(l=t.x-h,v=n)):n<this.valuesCount/2?t.x+i>c&&(c=t.x+i,a=n):n>this.valuesCount/2&&t.x-i<l&&(l=t.x-i,v=n);b=l;k=Math.ceil(c-this.width);p=this.getIndexAngle(a);w=this.getIndexAngle(v);r=k/Math.sin(p+Math.PI/2);s=b/Math.sin(w+Math.PI/2);r=u(r)?r:0;s=u(s)?s:0;this.drawingArea=y-(s+r)/2;this.setCenterPoint(s,r)},setCenterPoint:function(n,t){var i=this.width-t-this.drawingArea,r=n+this.drawingArea;this.xCenter=(r+i)/2;this.yCenter=this.height/2},getIndexAngle:function(n){var t=Math.PI*2/this.valuesCount;return n*t-Math.PI/2},getPointPosition:function(n,t){var i=this.getIndexAngle(n);return{x:Math.cos(i)*t+this.xCenter,y:Math.sin(i)*t+this.yCenter}},draw:function(){var n,t,u,f;if(this.display&&(n=this.ctx,i(this.yLabels,function(t,i){var f,o,r,u,s;if(i>0){if(f=i*(this.drawingArea/this.steps),o=this.yCenter-f,this.lineWidth>0)if(n.strokeStyle=this.lineColor,n.lineWidth=this.lineWidth,this.lineArc)n.beginPath(),n.arc(this.xCenter,this.yCenter,f,0,Math.PI*2),n.closePath(),n.stroke();else{for(n.beginPath(),u=0;u<this.valuesCount;u++)r=this.getPointPosition(u,this.calculateCenterOffset(this.min+i*this.stepValue)),u===0?n.moveTo(r.x,r.y):n.lineTo(r.x,r.y);n.closePath();n.stroke()}this.showLabels&&(n.font=e(this.fontSize,this.fontStyle,this.fontFamily),this.showLabelBackdrop&&(s=n.measureText(t).width,n.fillStyle=this.backdropColor,n.fillRect(this.xCenter-s/2-this.backdropPaddingX,o-this.fontSize/2-this.backdropPaddingY,s+this.backdropPaddingX*2,this.fontSize+this.backdropPaddingY*2)),n.textAlign="center",n.textBaseline="middle",n.fillStyle=this.fontColor,n.fillText(t,this.xCenter,o))}},this),!this.lineArc))for(n.lineWidth=this.angleLineWidth,n.strokeStyle=this.angleLineColor,t=this.valuesCount-1;t>=0;t--){this.angleLineWidth>0&&(u=this.getPointPosition(t,this.calculateCenterOffset(this.max)),n.beginPath(),n.moveTo(this.xCenter,this.yCenter),n.lineTo(u.x,u.y),n.stroke(),n.closePath());f=this.getPointPosition(t,this.calculateCenterOffset(this.max)+5);n.font=e(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily);n.fillStyle=this.pointLabelFontColor;var s=this.labels.length,o=this.labels.length/2,r=o/2,h=t<r||t>s-r,c=t===r||t===s-r;n.textAlign=t===0?"center":t===o?"center":t<o?"left":"right";n.textBaseline=c?"middle":h?"bottom":"top";n.fillText(this.labels[t],f.x,f.y)}}});n.addEvent(window,"resize",function(){var n;return function(){clearTimeout(n);n=setTimeout(function(){i(t.instances,function(n){n.options.responsive&&n.resize(n.render,!0)})},50)}}());ut?define(function(){return t}):typeof module=="object"&&module.exports&&(module.exports=t);c.Chart=t;t.noConflict=function(){return c.Chart=g,t}}).call(this);
/*
//# sourceMappingURL=Chart.Core.min.js.map
*/