Socket
Socket
Sign inDemoInstall

chart.js-scatter

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chart.js-scatter - npm Package Compare versions

Comparing version 1.1.3 to 1.1.4

2

Chart.Core.min.js

@@ -1,4 +0,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);
(function(){"use strict";var l=this,nt=l.Chart,t=function(t){var r=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)},u=this.width=i(t.canvas,"Width")||t.canvas.width,f=this.height=i(t.canvas,"Height")||t.canvas.height;return 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",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(){}}};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))},a=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},tt=n.merge=function(){var n=Array.prototype.slice.call(arguments,0);return n.unshift({}),r.apply(null,n)},it=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},w=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=w,n&&r(t.prototype,n),t.__super__=i.prototype,t},v=n.noop=function(){},rt=n.uid=function(){var n=0;return function(){return"chart-"+n++}}(),ut=n.warn=function(n){window.console&&typeof window.console.warn=="function"&&console.warn(n)},ft=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},b=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},y=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}},k=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)}}},et=n.calculateOrderOfMagnitude=function(n){return Math.floor(Math.log(n)/Math.LN10)},gt=n.calculateScaleRange=function(n,t,r,u,f){var k=2,y=Math.floor(t/(r*1.5)),p=k>=y,w=[],c,l;i(n,function(n){n==null||w.push(n)});c=o(w);l=h(w);l===c&&(l+=.5,c>=.5&&!u?c-=.5:l+=.5);for(var d=Math.abs(l-c),a=et(d),g=Math.ceil(l/(1*Math.pow(10,a)))*Math.pow(10,a),b=u?0:Math.floor(c/(1*Math.pow(10,a)))*Math.pow(10,a),v=g-b,e=Math.pow(10,a),s=Math.round(v/e);(s>y||s*2<y)&&!p;)if(s>y)e*=2,s=Math.round(v/e),s%1!=0&&(p=!0);else if(f&&a>=0)if(e/2%1==0)e/=2,s=Math.round(v/e);else break;else e/=2,s=Math.round(v/e);return p&&(s=k,e=v/s),{steps:s,stepValue:e,min:b,max:b+s*e}},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}},d=n.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(n){return window.setTimeout(n,1e3/60)}}(),ti=n.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(n){return window.clearTimeout(n,1e3/60)}}(),ii=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=d(o):u.apply(f)};d(o)},ri=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]=v},ui=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,i=parseInt(c(t,"padding-left"))+parseInt(c(t,"padding-right"));return t?t.clientWidth-i:0},lt=n.getMaximumHeight=function(n){var t=n.parentNode,i=parseInt(c(t,"padding-bottom"))+parseInt(c(t,"padding-top"));return t?t.clientHeight-i:0},c=n.getStyle=function(n,t){return n.currentStyle?n.currentStyle[t]:document.defaultView.getComputedStyle(n,null).getPropertyValue(t)},fi=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},p=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},g=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=rt();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 t.animationService.cancelAnimation(this),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:v,render:function(i){if(i&&this.reflow(),this.options.animation&&!i){var r=new t.Animation;r.numSteps=this.options.animationSteps;r.easing=this.options.animationEasing;r.render=function(t,i){var u=n.easingEffects[i.easing],r=i.currentStep/i.numSteps,f=u(r);t.draw(f,r,i.currentStep)};r.onAnimationProgress=this.options.onAnimationProgress;r.onAnimationComplete=this.options.onAnimationComplete;t.animationService.addAnimation(this,r)}else this.draw(),this.options.onAnimationComplete.call(this);return this},generateLegend:function(){return n.template(this.options.legendTemplate,this)},destroy:function(){this.stop();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=it(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:f(this.options.tooltipTitleTemplate,r[0]),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=a(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]?a(t.defaults[i.prototype.name]):{},t.defaults[f]=r(e,n.defaults),t.types[f]=u,t.prototype[f]=function(n,i){var r=tt(t.defaults.global,t.defaults[f],i||{});return new u(n,r,this)}):ut("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=a(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=w;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 u=n.getAngleFromPoint(this,{x:t,y:i}),r=u.angle%(Math.PI*2),f=(Math.PI*2+this.startAngle)%(Math.PI*2),e=(Math.PI*2+this.endAngle)%(Math.PI*2)||360,o=e<f?r<=e||r>=f:r>=f&&r<=e,s=u.distance>=this.innerRadius&&u.distance<=this.outerRadius;return o&&s},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<0?0:this.outerRadius,this.startAngle,this.endAngle);t.arc(this.x,this.y,this.innerRadius<0?0: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.Animation=t.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null});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)}g(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=p(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{g(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=b(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?p(this.ctx,this.font,this.yLabels)+10: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 i=this.endPoint,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.endPoint=i,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?n/2:this.yLabelWidth,this.xLabelRotation=0,this.display){for(t=p(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(y(this.xLabelRotation)),u=i*n,e=i*r,u+this.fontSize/2>this.yLabelWidth&&(this.xScalePaddingLeft=u+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=i*t;this.xLabelRotation>0&&(this.endPoint-=Math.sin(y(this.xLabelRotation))*t+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:v,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)+k(this.lineWidth),r=this.calculateX(i-(this.offsetGridLines?.5:0))+k(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(y(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=b(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,r,o;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--){if(u=null,r=null,this.angleLineWidth>0&&t%this.angleLineInterval==0&&(u=this.calculateCenterOffset(this.max),r=this.getPointPosition(t,u),n.beginPath(),n.moveTo(this.xCenter,this.yCenter),n.lineTo(r.x,r.y),n.stroke(),n.closePath()),this.backgroundColors&&this.backgroundColors.length==this.valuesCount){u==null&&(u=this.calculateCenterOffset(this.max));r==null&&(r=this.getPointPosition(t,u));var h=this.getPointPosition(t===0?this.valuesCount-1:t-1,u),c=this.getPointPosition(t===this.valuesCount-1?0:t+1,u),l={x:(h.x+r.x)/2,y:(h.y+r.y)/2},a={x:(r.x+c.x)/2,y:(r.y+c.y)/2};n.beginPath();n.moveTo(this.xCenter,this.yCenter);n.lineTo(l.x,l.y);n.lineTo(r.x,r.y);n.lineTo(a.x,a.y);n.fillStyle=this.backgroundColors[t];n.fill();n.closePath()}o=this.getPointPosition(t,this.calculateCenterOffset(this.max)+5);n.font=e(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily);n.fillStyle=this.pointLabelFontColor;var v=this.labels.length,s=this.labels.length/2,f=s/2,y=t<f||t>v-f,p=t===f||t===v-f;n.textAlign=t===0?"center":t===s?"center":t<s?"left":"right";n.textBaseline=p?"middle":y?"bottom":"top";n.fillText(this.labels[t],o.x,o.y)}}});t.animationService={frameDuration:17,animations:[],dropFrames:0,addAnimation:function(t,i){for(var r=0;r<this.animations.length;++r)if(this.animations[r].chartInstance===t){this.animations[r].animationObject=i;return}this.animations.push({chartInstance:t,animationObject:i});this.animations.length==1&&n.requestAnimFrame.call(window,this.digestWrapper)},cancelAnimation:function(t){var i=n.findNextWhere(this.animations,function(n){return n.chartInstance===t});i&&this.animations.splice(i,1)},digestWrapper:function(){t.animationService.startDigest.call(t.animationService)},startDigest:function(){var u=Date.now(),i=0,t;for(this.dropFrames>1&&(i=Math.floor(this.dropFrames),this.dropFrames-=i),t=0;t<this.animations.length;t++)this.animations[t].animationObject.currentStep===null&&(this.animations[t].animationObject.currentStep=0),this.animations[t].animationObject.currentStep+=1+i,this.animations[t].animationObject.currentStep>this.animations[t].animationObject.numSteps&&(this.animations[t].animationObject.currentStep=this.animations[t].animationObject.numSteps),this.animations[t].animationObject.render(this.animations[t].chartInstance,this.animations[t].animationObject),this.animations[t].animationObject.currentStep==this.animations[t].animationObject.numSteps&&(this.animations[t].animationObject.onAnimationComplete.call(this.animations[t].chartInstance),this.animations.splice(t,1),t--);var f=Date.now(),e=f-u-this.frameDuration,r=e/this.frameDuration;r>1&&(this.dropFrames+=r);this.animations.length>0&&n.requestAnimFrame.call(window,this.digestWrapper)}};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)}}());ft?define("Chart",[],function(){return t}):typeof module=="object"&&module.exports&&(module.exports=t);l.Chart=t;t.noConflict=function(){return l.Chart=nt,t}}).call(this);
/*
//# sourceMappingURL=Chart.Core.min.js.map
*/

@@ -0,1 +1,3 @@

"use strict";
(function (root, factory) {

@@ -16,4 +18,2 @@ if (typeof define === 'function' && define.amd) {

"use strict";
var helpers = chartjs.helpers,

@@ -58,2 +58,12 @@ hlp = {

},
calculateFixedScaleRange: function(startValue, steps, stepWidth) {
return {
steps: steps,
stepValue: stepWidth,
min: startValue,
max: startValue + (steps * stepWidth)
};
},
ScatterPoint: chartjs.Point.extend({

@@ -309,16 +319,14 @@

this.yScaleRange = {
steps: this.scaleSteps,
stepValue: this.scaleStepWidth,
min: this.scaleStartValue,
max: this.scaleStartValue + (this.scaleSteps * this.scaleStepWidth)
};
this.yScaleRange = hlp.calculateFixedScaleRange(
this.scaleStartValue,
this.scaleSteps,
this.scaleStepWidth);
} else {
this.yScaleRange = helpers.calculateScaleRange(
[this.dataRange.ymin, this.dataRange.ymax],
this.chart.height,
this.fontSize,
this.beginAtZero, // beginAtZero,
this.integersOnly); // integersOnly
[this.dataRange.ymin, this.dataRange.ymax],
this.chart.height,
this.fontSize,
this.beginAtZero, // beginAtZero,
this.integersOnly); // integersOnly
}

@@ -331,8 +339,6 @@ },

this.xScaleRange = {
steps: this.xScaleSteps,
stepValue: this.xScaleStepWidth,
min: this.xScaleStartValue,
max: this.xScaleStartValue + (this.xScaleSteps * this.xScaleStepWidth)
};
this.xScaleRange = hlp.calculateFixedScaleRange(
this.xScaleStartValue,
this.xScaleSteps,
this.xScaleStepWidth);
} else {

@@ -613,8 +619,17 @@

this.xScaleRange = this._calculateDateScaleRange(
this.dataRange.xmin,
this.dataRange.xmax,
this.chart.width,
this.fontSize
);
if (this.xScaleOverride) {
this.xScaleRange = hlp.calculateFixedScaleRange(
this.xScaleStartValue,
this.xScaleSteps,
this.xScaleStepWidth);
} else {
this.xScaleRange = this._calculateDateScaleRange(
this.dataRange.xmin,
this.dataRange.xmax,
this.chart.width,
this.fontSize
);
}
},

@@ -726,5 +741,5 @@

point.arg = +x;
point.value = +y;
point.size = +r; // for use in templates
point.arg = +x || 0;
point.value = +y || 0;
point.size = +r || 0; // for use in templates

@@ -746,3 +761,2 @@ point.argLabel = helpers.template(this.scaleArgLabel, { value: formattedArg }),

this.hasData = false;
this.datasets = [];

@@ -763,4 +777,2 @@ this.scale = this._initScale();

this.hasData |= !!dataset.data.length;
helpers.each(dataset.data, function (dataPoint) {

@@ -947,2 +959,12 @@

_hasData: function() {
var hasData = false;
this._forEachDataset(function(dataset) {
hasData |= !!dataset.points.length;
});
return hasData;
},
_calculateRange: function () {

@@ -1074,3 +1096,3 @@

if (this.hasData) {
if (this._hasData()) {

@@ -1077,0 +1099,0 @@ // update view params

@@ -1,4 +0,4 @@

(function(n,t){typeof define=="function"&&define.amd?define(["Chart"],t):typeof exports=="object"?t(require("Chart")):t(n.Chart)})(this,function(n){"use strict";var t=n.helpers,i={formatDateValue:function(n,t,i,u){var f,e;return(n=new Date(+n),f=u?n.getUTCMilliseconds():n.getMilliseconds(),f)?("000"+f).slice(-3):(e=u?n.getUTCHours()+n.getUTCMinutes()+n.getUTCSeconds():n.getHours()+n.getMinutes()+n.getSeconds(),e?r(n,t||"h:MM",u):r(n,i||"mmm d",u))},getElementOrDefault:function(n,t,i){return t>=0&&t<n.length?n[t]:i},applyRange:function(n,t,i){return n>i?i:n<t?t:n},ScatterPoint:n.Point.extend({inRange:function(n,t){var i=this.hitDetectionRadius+this.radius*this.size;return Math.pow(n-this.x,2)+Math.pow(t-this.y,2)<Math.pow(i,2)},draw:function(){if(this.display&&this.size>0){var n=this.ctx;n.beginPath();n.arc(this.x,this.y,this.size*this.radius,0,Math.PI*2);n.closePath();n.strokeStyle=this.strokeColor;n.lineWidth=this.strokeWidth;n.fillStyle=this.fillColor;n.fill();n.stroke()}}})},r=function(){var r=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,u=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,f=/[^-+\dA-Z]/g,n=function(n,t){for(n=String(n),t=t||2;n.length<t;)n="0"+n;return n},i={"default":"ddd mmm dd yyyy HH:MM:ss"},t={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};return function(e,o,s){if(arguments.length!=1||Object.prototype.toString.call(e)!="[object String]"||/\d/.test(e)||(o=e,e=undefined),e=e?new Date(e):new Date,isNaN(e))throw SyntaxError("invalid date");o=String(i[o]||o||i["default"]);o.slice(0,4)=="UTC:"&&(o=o.slice(4),s=!0);var h=s?"getUTC":"get",l=e[h+"Date"](),p=e[h+"Day"](),a=e[h+"Month"](),w=e[h+"FullYear"](),c=e[h+"Hours"](),b=e[h+"Minutes"](),k=e[h+"Seconds"](),v=e[h+"Milliseconds"](),y=s?0:e.getTimezoneOffset(),d={d:l,dd:n(l),ddd:t.dayNames[p],dddd:t.dayNames[p+7],m:a+1,mm:n(a+1),mmm:t.monthNames[a],mmmm:t.monthNames[a+12],yy:String(w).slice(2),yyyy:w,h:c%12||12,hh:n(c%12||12),H:c,HH:n(c),M:b,MM:n(b),s:k,ss:n(k),l:n(v,3),L:n(v>99?Math.round(v/10):v),t:c<12?"a":"p",tt:c<12?"am":"pm",T:c<12?"A":"P",TT:c<12?"AM":"PM",Z:s?"UTC":(String(e).match(u)||[""]).pop().replace(f,""),o:(y>0?"-":"+")+n(Math.floor(Math.abs(y)/60)*100+Math.abs(y)%60,4),S:["th","st","nd","rd"][l%10>3?0:(l%100-l%10!=10)*l%10]};return o.replace(r,function(n){return n in d?d[n]:n.slice(1,n.length-1)})}}();n.ScatterNumberScale=n.Element.extend({initialize:function(){this.font=t.fontString(this.fontSize,this.fontStyle,this.fontFamily);this.padding=this.fontSize/2},setDataRange:function(n){this.dataRange=n},api:{calculateControlPoints:function(n,t,r,u,f){var l=!n?0:f,a=!r?0:f,o=t,h=n?n:t,v=r?r:t,y={xx:o.arg-h.arg,yy:o.value-h.value},e={xx:v.arg-h.arg,yy:v.value-h.value},w=y.xx*e.xx+y.yy*e.yy,p=Math.sqrt(e.xx*e.xx+e.yy*e.yy),c=Math.min(Math.max(w/(p*p),.3),.7),s={before:{x:o.arg-e.xx*c*l,y:o.value-e.yy*c*l},after:{x:o.arg+e.xx*(1-c)*a,y:o.value+e.yy*(1-c)*a}};return s.before.y=i.applyRange(s.before.y,u.ymin,u.ymax),s.after.y=i.applyRange(s.after.y,u.ymin,u.ymax),s},generateLabels:function(n,i,r,u){var f=new Array(i+1),e=t.getDecimalPlaces(u);return n&&t.each(f,function(i,o){f[o]=t.template(n,{value:(r+u*o).toFixed(e)})}),f}},calculateYscaleRange:function(){this.yScaleRange=this.scaleOverride?{steps:this.scaleSteps,stepValue:this.scaleStepWidth,min:this.scaleStartValue,max:this.scaleStartValue+this.scaleSteps*this.scaleStepWidth}:t.calculateScaleRange([this.dataRange.ymin,this.dataRange.ymax],this.chart.height,this.fontSize,this.beginAtZero,this.integersOnly)},calculateXscaleRange:function(){this.xScaleRange=this.xScaleOverride?{steps:this.xScaleSteps,stepValue:this.xScaleStepWidth,min:this.xScaleStartValue,max:this.xScaleStartValue+this.xScaleSteps*this.xScaleStepWidth}:t.calculateScaleRange([this.dataRange.xmin,this.dataRange.xmax],this.chart.width,this.fontSize,!1,!0)},generateYLabels:function(){this.yLabels=this.api.generateLabels(this.labelTemplate,this.yScaleRange.steps,this.yScaleRange.min,this.yScaleRange.stepValue)},generateXLabels:function(){this.xLabels=this.api.generateLabels(this.argLabelTemplate,this.xScaleRange.steps,this.xScaleRange.min,this.xScaleRange.stepValue)},argToString:function(n){return+n+""},fit:function(){var n,i,r,u;this.calculateYscaleRange();this.calculateXscaleRange();this.generateYLabels();this.generateXLabels();n=t.longestText(this.chart.ctx,this.font,this.xLabels);i=t.longestText(this.chart.ctx,this.font,this.yLabels);this.xPadding=this.display&&this.showLabels?i+this.padding*2:this.padding;r=Math.floor((this.chart.width-this.xPadding)/this.xScaleRange.steps);u=this.fontSize*1.5;this.xLabelRotation=n>r;this.xPaddingRight=this.display&&this.showLabels&&!this.xLabelRotation?n/2:this.padding;this.yPadding=this.display&&this.showLabels?(this.xLabelRotation?n:u)+this.padding*2:this.padding},updateBezierControlPoints:function(n,t,r){for(var u=0;u<n.length;u++){var e=i.getElementOrDefault(n,u),o=i.getElementOrDefault(n,u-1),s=i.getElementOrDefault(n,u+1),f=this.api.calculateControlPoints(o,e,s,this.dataRange,r);e.controlPoints={x1:this.calculateX(f.before.x),y1:this.calculateY(f.before.y,t),x2:this.calculateX(f.after.x),y2:this.calculateY(f.after.y,t)}}},updatePoints:function(n,t){for(var i,r=0;r<n.length;r++)i=n[r],i.x=this.calculateX(i.arg),i.y=this.calculateY(i.value,t)},calculateX:function(n){return this.xPadding+(n-this.xScaleRange.min)*(this.chart.width-this.xPadding-this.xPaddingRight)/(this.xScaleRange.max-this.xScaleRange.min)},calculateY:function(n,t){return this.chart.height-this.yPadding-(n-this.yScaleRange.min)*(this.chart.height-this.yPadding-this.padding)/(this.yScaleRange.max-this.yScaleRange.min)*(t||1)},draw:function(){var n=this.chart.ctx,i,t,r,u;if(this.display){var f=this.calculateX(this.xScaleRange.min),o=this.chart.width,e=this.calculateY(this.yScaleRange.min);for(t=0,i=this.yScaleRange.min;t<=this.yScaleRange.steps;t++,i+=this.yScaleRange.stepValue)r=this.calculateY(i),(this.showLabels||this.showHorizontalLines)&&(n.lineWidth=t==0?this.lineWidth:this.gridLineWidth,n.strokeStyle=t==0?this.lineColor:this.gridLineColor,n.beginPath(),n.moveTo(f-this.padding,r),n.lineTo(this.showHorizontalLines||t==0?o:f,r),n.stroke()),this.showLabels&&(n.lineWidth=this.lineWidth,n.strokeStyle=this.lineColor,n.textAlign="right",n.textBaseline="middle",n.font=this.font,n.fillStyle=this.textColor,n.fillText(this.yLabels[t],f-this.padding*1.4,r));for(t=0,i=this.xScaleRange.min;t<=this.xScaleRange.steps;t++,i+=this.xScaleRange.stepValue)u=this.calculateX(i),(this.showLabels||this.showVerticalLines)&&(n.lineWidth=t==0?this.lineWidth:this.gridLineWidth,n.strokeStyle=t==0?this.lineColor:this.gridLineColor,n.beginPath(),n.moveTo(u,e+this.padding),n.lineTo(u,this.showVerticalLines||t==0?0:e),n.stroke()),this.showLabels&&(n.lineWidth=this.lineWidth,n.strokeStyle=this.lineColor,n.save(),n.translate(u,e+this.padding*1.4),n.rotate(this.xLabelRotation?-Math.PI/2:0),n.textAlign=this.xLabelRotation?"right":"center",n.textBaseline=this.xLabelRotation?"middle":"top",n.font=this.font,n.fillStyle=this.textColor,n.fillText(this.xLabels[t],0,0),n.restore())}}});n.ScatterDateScale=n.ScatterNumberScale.extend({_calculateDateScaleRange:function(n,t,i,r){var u=[{u:1,c:1,t:1,n:"ms"},{u:1,c:2,t:2,n:"ms"},{u:1,c:5,t:5,n:"ms"},{u:1,c:10,t:10,n:"ms"},{u:1,c:20,t:20,n:"ms"},{u:1,c:50,t:50,n:"ms"},{u:1,c:100,t:100,n:"ms"},{u:1,c:200,t:200,n:"ms"},{u:1,c:500,t:500,n:"ms"},{u:1e3,c:1,t:1e3,n:"s"},{u:1e3,c:2,t:2e3,n:"s"},{u:1e3,c:5,t:5e3,n:"s"},{u:1e3,c:10,t:1e4,n:"s"},{u:1e3,c:15,t:15e3,n:"s"},{u:1e3,c:20,t:2e4,n:"s"},{u:1e3,c:30,t:3e4,n:"s"},{u:6e4,c:1,t:6e4,n:"m"},{u:6e4,c:2,t:12e4,n:"m"},{u:6e4,c:5,t:3e5,n:"m"},{u:6e4,c:10,t:6e5,n:"m"},{u:6e4,c:15,t:9e5,n:"m"},{u:6e4,c:20,t:12e5,n:"m"},{u:6e4,c:30,t:18e5,n:"m"},{u:36e5,c:1,t:36e5,n:"h"},{u:36e5,c:2,t:72e5,n:"h"},{u:36e5,c:3,t:108e5,n:"h"},{u:36e5,c:4,t:144e5,n:"h"},{u:36e5,c:6,t:216e5,n:"h"},{u:36e5,c:8,t:288e5,n:"h"},{u:36e5,c:12,t:432e5,n:"h"},{u:864e5,c:1,t:864e5,n:"d"},{u:864e5,c:2,t:1728e5,n:"d"},{u:864e5,c:4,t:3456e5,n:"d"},{u:864e5,c:5,t:432e6,n:"d"},{u:6048e5,c:1,t:6048e5,n:"w"}],v=i/(r*3.3),f,e;t===n&&t++;for(var y=+t-n,s=this.useUtc?0:(new Date).getTimezoneOffset()*6e4,p=+n-s,w=+t-s,h=0,c=[2,3,5,7,10];y/u[h].t>v;)if(h++,h==u.length)for(f=u[u.length-1],e=0;e<c.length;e++)u.push({u:f.u,c:f.c*c[e],t:f.c*c[e]*f.u,n:f.n});var o=u[h].t,l=Math.floor(p/o)*o,a=Math.ceil((w-l)/o),b=l+o*a;return{min:l+s,max:b+s,steps:a,stepValue:o}},calculateXscaleRange:function(){this.xScaleRange=this._calculateDateScaleRange(this.dataRange.xmin,this.dataRange.xmax,this.chart.width,this.fontSize)},argToString:function(n){return r(+n,this.dateTimeFormat,this.useUtc)},generateXLabels:function(){var r=this.xScaleRange.min,u=this.xScaleRange.stepValue,n=new Array(this.xScaleRange.steps+1);t.each(n,function(t,f){var e=r+u*f;n[f]=i.formatDateValue(e,this.timeFormat,this.dateFormat,this.useUtc)},this);this.xLabels=n}});n.ScatterDataSet=function(){var n=function(n,t,i,r){this.chart=i;this.scale=r;this.label=n.label||null;this.strokeColor=n.strokeColor||t.datasetStrokeColor;this.pointColor=n.pointColor||n.strokeColor||t.datasetStrokeColor;this.pointStrokeColor=n.pointStrokeColor||t.datasetPointStrokeColor;this.pointDot=t.pointDot;this.pointDotRadius=t.pointDotRadius;this.pointHitDetectionRadius=t.pointHitDetectionRadius;this.pointDotStrokeWidth=t.pointDotStrokeWidth;this.scaleArgLabel=t.scaleArgLabel;this.scaleLabel=t.scaleLabel;this.scaleSizeLabel=t.scaleSizeLabel;this.points=[]};return n.prototype.addPoint=function(n,t,i){i=arguments.length<3?1:i;var r=this._createNewPoint();this._setPointData(r,n,t,i);this.points.push(r)},n.prototype.setPointData=function(n,t,r,u){u=arguments.length<4?1:u;var f=i.getElementOrDefault(this.points,n);f&&this._setPointData(f,t,r,u)},n.prototype.removePoint=function(n){n>=0&&n<this.points.length&&this.points.splice(n,1)},n.prototype._createNewPoint=function(){return new i.ScatterPoint({ctx:this.chart.ctx,datasetLabel:this.label,display:this.pointDot,radius:this.pointDotRadius,hitDetectionRadius:this.pointHitDetectionRadius,strokeWidth:this.pointDotStrokeWidth,strokeColor:this.pointStrokeColor,highlightStroke:this.pointColor,fillColor:this.pointColor,highlightFill:this.pointStrokeColor})},n.prototype._setPointData=function(n,i,r,u){var f=this.scale.argToString(+i),e=+r+"",o=+u+"";n.arg=+i;n.value=+r;n.size=+u;n.argLabel=t.template(this.scaleArgLabel,{value:f});n.valueLabel=t.template(this.scaleLabel,{value:e});n.sizeLabel=t.template(this.scaleSizeLabel,{value:o})},n}();n.Type.extend({name:"Scatter",defaults:{scaleArgLabel:"<%=value%>",scaleSizeLabel:"<%=value%>",emptyDataMessage:"chart has no data",scaleShowGridLines:!0,scaleGridLineWidth:1,scaleGridLineColor:"rgba(0,0,0,.05)",scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,scaleType:"number",useUtc:!0,scaleDateFormat:"mmm d",scaleTimeFormat:"h:MM",scaleDateTimeFormat:"mmm d, yyyy, hh:MM",datasetStroke:!0,datasetStrokeWidth:2,datasetStrokeColor:"#007ACC",datasetPointStrokeColor:"white",bezierCurve:!0,bezierCurveTension:.4,pointDot:!0,pointDotStrokeWidth:1,pointDotRadius:4,pointHitDetectionRadius:4,multiTooltipTemplate:"<%=argLabel%>; <%=valueLabel%>",tooltipTemplate:"<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%=argLabel%>; <%=valueLabel%>",legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><%for(var i=0;i<datasets.length;i++){%><li><span class="<%=name.toLowerCase()%>-legend-marker" style="background-color:<%=datasets[i].strokeColor%>"><\/span><%=datasets[i].label%><\/li><%}%><\/ul>'},initialize:function(i){this.hasData=!1;this.datasets=[];this.scale=this._initScale();i.datasets&&(i=i.datasets);t.each(i,function(i){var r=new n.ScatterDataSet(i,this.options,this.chart,this.scale);this.datasets.push(r);this.hasData|=!!i.data.length;t.each(i.data,function(n){r.addPoint(n.x,n.y,n.r||1)})},this);this.options.showTooltips&&t.bindEvents(this,this.options.tooltipEvents,function(n){var i=n.type!=="mouseout"?this.getPointsAtEvent(n):[];this._forEachPoint(function(n){n.restore(["fillColor","strokeColor"])});t.each(i,function(n){n.fillColor=n.highlightFill;n.strokeColor=n.highlightStroke});this.showTooltip(i)});var r=this._calculateRange();this.scale.setDataRange(r);this.update()},_initScale:function(){var t={chart:this.chart,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,labelTemplate:this.options.scaleLabel,argLabelTemplate:this.options.scaleArgLabel,showLabels:this.options.scaleShowLabels,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,display:this.options.showScale,xScaleOverride:this.options.xScaleOverride,xScaleSteps:this.options.xScaleSteps,xScaleStepWidth:this.options.xScaleStepWidth,xScaleStartValue:this.options.xScaleStartValue,scaleOverride:this.options.scaleOverride,scaleSteps:this.options.scaleSteps,scaleStepWidth:this.options.scaleStepWidth,scaleStartValue:this.options.scaleStartValue,useUtc:this.options.useUtc,dateFormat:this.options.scaleDateFormat,timeFormat:this.options.scaleTimeFormat,dateTimeFormat:this.options.scaleDateTimeFormat};return this.options.scaleType==="date"?new n.ScatterDateScale(t):new n.ScatterNumberScale(t)},getPointsAtEvent:function(n){var i=[],r=t.getRelativePosition(n);return t.each(this.datasets,function(n){t.each(n.points,function(n){n.inRange(r.x,r.y)&&i.push(n)})},this),i},showTooltip:function(i){var u,r,f,e;return this.draw(),i.length>0&&(u=i[0],r=u.tooltipPosition(),i.length==1?new n.Tooltip({x:Math.round(r.x),y:Math.round(r.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:t.template(this.options.tooltipTemplate,u),chart:this.chart,custom:this.options.customTooltips}).draw():(f=[],e=[],t.each(i,function(n){f.push(t.template(this.options.multiTooltipTemplate,n));e.push({fill:n._saved.fillColor||n.fillColor,stroke:n._saved.strokeColor||n.strokeColor})},this),new n.MultiTooltip({x:Math.round(r.x),y:Math.round(r.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:f,legendColors:e,legendColorBackground:this.options.multiTooltipKeyBackground,title:"",chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw())),this},_forEachPoint:function(n){t.each(this.datasets,function(i){t.each(i.points,n,this)},this)},_forEachDataset:function(n){t.each(this.datasets,n,this)},_calculateRange:function(){var n=undefined,t=undefined,i=undefined,r=undefined;return this._forEachPoint(function(u){(n===undefined||u.arg<n)&&(n=u.arg);(t===undefined||u.arg>t)&&(t=u.arg);(i===undefined||u.value<i)&&(i=u.value);(r===undefined||u.value>r)&&(r=u.value)}),{xmin:n,xmax:t,ymin:i,ymax:r}},_drawMessage:function(n){var i=this.chart.ctx,r=this.chart.width,u=this.chart.height,f=this.options.scaleFontSize,e=this.options.scaleFontStyle,o=this.options.scaleFontFamily,s=t.fontString(f,e,o);i.save();i.translate(r/2,u/2);i.textAlign="center";i.textBaseline="middle";i.font=s;i.fillStyle=this.options.scaleFontColor;i.fillText(n,0,0);i.restore()},_drawLine:function(n){var i=this.chart.ctx,r=undefined;i.lineJoin="round";i.lineWidth=this.options.datasetStrokeWidth;i.strokeStyle=n.strokeColor||this.options.datasetStrokeColor;i.beginPath();t.each(n.points,function(n,t){t===0?i.moveTo(n.x,n.y):this.options.bezierCurve?i.bezierCurveTo(r.controlPoints.x2,r.controlPoints.y2,n.controlPoints.x1,n.controlPoints.y1,n.x,n.y):i.lineTo(n.x,n.y);r=n},this);i.stroke()},update:function(){var n=this._calculateRange();this.scale.setDataRange(n);this.render()},draw:function(n){this.hasData?(this.scale.fit(),this._forEachDataset(function(t){this.scale.updatePoints(t.points,n);this.options.bezierCurve&&this.scale.updateBezierControlPoints(t.points,n,this.options.bezierCurveTension)}),this.clear(),this.scale.draw(),this.options.datasetStroke&&t.each(this.datasets,this._drawLine,this),this.options.pointDot&&this._forEachPoint(function(n){n.draw()})):(this.clear(),this._drawMessage(this.options.emptyDataMessage))}})});
"use strict";(function(n,t){typeof define=="function"&&define.amd?define(["Chart"],t):typeof exports=="object"?t(require("Chart")):t(n.Chart)})(this,function(n){var t=n.helpers,i={formatDateValue:function(n,t,i,u){var f,e;return(n=new Date(+n),f=u?n.getUTCMilliseconds():n.getMilliseconds(),f)?("000"+f).slice(-3):(e=u?n.getUTCHours()+n.getUTCMinutes()+n.getUTCSeconds():n.getHours()+n.getMinutes()+n.getSeconds(),e?r(n,t||"h:MM",u):r(n,i||"mmm d",u))},getElementOrDefault:function(n,t,i){return t>=0&&t<n.length?n[t]:i},applyRange:function(n,t,i){return n>i?i:n<t?t:n},calculateFixedScaleRange:function(n,t,i){return{steps:t,stepValue:i,min:n,max:n+t*i}},ScatterPoint:n.Point.extend({inRange:function(n,t){var i=this.hitDetectionRadius+this.radius*this.size;return Math.pow(n-this.x,2)+Math.pow(t-this.y,2)<Math.pow(i,2)},draw:function(){if(this.display&&this.size>0){var n=this.ctx;n.beginPath();n.arc(this.x,this.y,this.size*this.radius,0,Math.PI*2);n.closePath();n.strokeStyle=this.strokeColor;n.lineWidth=this.strokeWidth;n.fillStyle=this.fillColor;n.fill();n.stroke()}}})},r=function(){var r=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,u=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,f=/[^-+\dA-Z]/g,n=function(n,t){for(n=String(n),t=t||2;n.length<t;)n="0"+n;return n},i={"default":"ddd mmm dd yyyy HH:MM:ss"},t={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};return function(e,o,s){if(arguments.length!=1||Object.prototype.toString.call(e)!="[object String]"||/\d/.test(e)||(o=e,e=undefined),e=e?new Date(e):new Date,isNaN(e))throw SyntaxError("invalid date");o=String(i[o]||o||i["default"]);o.slice(0,4)=="UTC:"&&(o=o.slice(4),s=!0);var h=s?"getUTC":"get",l=e[h+"Date"](),p=e[h+"Day"](),a=e[h+"Month"](),w=e[h+"FullYear"](),c=e[h+"Hours"](),b=e[h+"Minutes"](),k=e[h+"Seconds"](),v=e[h+"Milliseconds"](),y=s?0:e.getTimezoneOffset(),d={d:l,dd:n(l),ddd:t.dayNames[p],dddd:t.dayNames[p+7],m:a+1,mm:n(a+1),mmm:t.monthNames[a],mmmm:t.monthNames[a+12],yy:String(w).slice(2),yyyy:w,h:c%12||12,hh:n(c%12||12),H:c,HH:n(c),M:b,MM:n(b),s:k,ss:n(k),l:n(v,3),L:n(v>99?Math.round(v/10):v),t:c<12?"a":"p",tt:c<12?"am":"pm",T:c<12?"A":"P",TT:c<12?"AM":"PM",Z:s?"UTC":(String(e).match(u)||[""]).pop().replace(f,""),o:(y>0?"-":"+")+n(Math.floor(Math.abs(y)/60)*100+Math.abs(y)%60,4),S:["th","st","nd","rd"][l%10>3?0:(l%100-l%10!=10)*l%10]};return o.replace(r,function(n){return n in d?d[n]:n.slice(1,n.length-1)})}}();n.ScatterNumberScale=n.Element.extend({initialize:function(){this.font=t.fontString(this.fontSize,this.fontStyle,this.fontFamily);this.padding=this.fontSize/2},setDataRange:function(n){this.dataRange=n},api:{calculateControlPoints:function(n,t,r,u,f){var l=!n?0:f,a=!r?0:f,o=t,h=n?n:t,v=r?r:t,y={xx:o.arg-h.arg,yy:o.value-h.value},e={xx:v.arg-h.arg,yy:v.value-h.value},w=y.xx*e.xx+y.yy*e.yy,p=Math.sqrt(e.xx*e.xx+e.yy*e.yy),c=Math.min(Math.max(w/(p*p),.3),.7),s={before:{x:o.arg-e.xx*c*l,y:o.value-e.yy*c*l},after:{x:o.arg+e.xx*(1-c)*a,y:o.value+e.yy*(1-c)*a}};return s.before.y=i.applyRange(s.before.y,u.ymin,u.ymax),s.after.y=i.applyRange(s.after.y,u.ymin,u.ymax),s},generateLabels:function(n,i,r,u){var f=new Array(i+1),e=t.getDecimalPlaces(u);return n&&t.each(f,function(i,o){f[o]=t.template(n,{value:(r+u*o).toFixed(e)})}),f}},calculateYscaleRange:function(){this.yScaleRange=this.scaleOverride?i.calculateFixedScaleRange(this.scaleStartValue,this.scaleSteps,this.scaleStepWidth):t.calculateScaleRange([this.dataRange.ymin,this.dataRange.ymax],this.chart.height,this.fontSize,this.beginAtZero,this.integersOnly)},calculateXscaleRange:function(){this.xScaleRange=this.xScaleOverride?i.calculateFixedScaleRange(this.xScaleStartValue,this.xScaleSteps,this.xScaleStepWidth):t.calculateScaleRange([this.dataRange.xmin,this.dataRange.xmax],this.chart.width,this.fontSize,!1,!0)},generateYLabels:function(){this.yLabels=this.api.generateLabels(this.labelTemplate,this.yScaleRange.steps,this.yScaleRange.min,this.yScaleRange.stepValue)},generateXLabels:function(){this.xLabels=this.api.generateLabels(this.argLabelTemplate,this.xScaleRange.steps,this.xScaleRange.min,this.xScaleRange.stepValue)},argToString:function(n){return+n+""},fit:function(){var n,i,r,u;this.calculateYscaleRange();this.calculateXscaleRange();this.generateYLabels();this.generateXLabels();n=t.longestText(this.chart.ctx,this.font,this.xLabels);i=t.longestText(this.chart.ctx,this.font,this.yLabels);this.xPadding=this.display&&this.showLabels?i+this.padding*2:this.padding;r=Math.floor((this.chart.width-this.xPadding)/this.xScaleRange.steps);u=this.fontSize*1.5;this.xLabelRotation=n>r;this.xPaddingRight=this.display&&this.showLabels&&!this.xLabelRotation?n/2:this.padding;this.yPadding=this.display&&this.showLabels?(this.xLabelRotation?n:u)+this.padding*2:this.padding},updateBezierControlPoints:function(n,t,r){for(var u=0;u<n.length;u++){var e=i.getElementOrDefault(n,u),o=i.getElementOrDefault(n,u-1),s=i.getElementOrDefault(n,u+1),f=this.api.calculateControlPoints(o,e,s,this.dataRange,r);e.controlPoints={x1:this.calculateX(f.before.x),y1:this.calculateY(f.before.y,t),x2:this.calculateX(f.after.x),y2:this.calculateY(f.after.y,t)}}},updatePoints:function(n,t){for(var i,r=0;r<n.length;r++)i=n[r],i.x=this.calculateX(i.arg),i.y=this.calculateY(i.value,t)},calculateX:function(n){return this.xPadding+(n-this.xScaleRange.min)*(this.chart.width-this.xPadding-this.xPaddingRight)/(this.xScaleRange.max-this.xScaleRange.min)},calculateY:function(n,t){return this.chart.height-this.yPadding-(n-this.yScaleRange.min)*(this.chart.height-this.yPadding-this.padding)/(this.yScaleRange.max-this.yScaleRange.min)*(t||1)},draw:function(){var n=this.chart.ctx,i,t,r,u;if(this.display){var f=this.calculateX(this.xScaleRange.min),o=this.chart.width,e=this.calculateY(this.yScaleRange.min);for(t=0,i=this.yScaleRange.min;t<=this.yScaleRange.steps;t++,i+=this.yScaleRange.stepValue)r=this.calculateY(i),(this.showLabels||this.showHorizontalLines)&&(n.lineWidth=t==0?this.lineWidth:this.gridLineWidth,n.strokeStyle=t==0?this.lineColor:this.gridLineColor,n.beginPath(),n.moveTo(f-this.padding,r),n.lineTo(this.showHorizontalLines||t==0?o:f,r),n.stroke()),this.showLabels&&(n.lineWidth=this.lineWidth,n.strokeStyle=this.lineColor,n.textAlign="right",n.textBaseline="middle",n.font=this.font,n.fillStyle=this.textColor,n.fillText(this.yLabels[t],f-this.padding*1.4,r));for(t=0,i=this.xScaleRange.min;t<=this.xScaleRange.steps;t++,i+=this.xScaleRange.stepValue)u=this.calculateX(i),(this.showLabels||this.showVerticalLines)&&(n.lineWidth=t==0?this.lineWidth:this.gridLineWidth,n.strokeStyle=t==0?this.lineColor:this.gridLineColor,n.beginPath(),n.moveTo(u,e+this.padding),n.lineTo(u,this.showVerticalLines||t==0?0:e),n.stroke()),this.showLabels&&(n.lineWidth=this.lineWidth,n.strokeStyle=this.lineColor,n.save(),n.translate(u,e+this.padding*1.4),n.rotate(this.xLabelRotation?-Math.PI/2:0),n.textAlign=this.xLabelRotation?"right":"center",n.textBaseline=this.xLabelRotation?"middle":"top",n.font=this.font,n.fillStyle=this.textColor,n.fillText(this.xLabels[t],0,0),n.restore())}}});n.ScatterDateScale=n.ScatterNumberScale.extend({_calculateDateScaleRange:function(n,t,i,r){var u=[{u:1,c:1,t:1,n:"ms"},{u:1,c:2,t:2,n:"ms"},{u:1,c:5,t:5,n:"ms"},{u:1,c:10,t:10,n:"ms"},{u:1,c:20,t:20,n:"ms"},{u:1,c:50,t:50,n:"ms"},{u:1,c:100,t:100,n:"ms"},{u:1,c:200,t:200,n:"ms"},{u:1,c:500,t:500,n:"ms"},{u:1e3,c:1,t:1e3,n:"s"},{u:1e3,c:2,t:2e3,n:"s"},{u:1e3,c:5,t:5e3,n:"s"},{u:1e3,c:10,t:1e4,n:"s"},{u:1e3,c:15,t:15e3,n:"s"},{u:1e3,c:20,t:2e4,n:"s"},{u:1e3,c:30,t:3e4,n:"s"},{u:6e4,c:1,t:6e4,n:"m"},{u:6e4,c:2,t:12e4,n:"m"},{u:6e4,c:5,t:3e5,n:"m"},{u:6e4,c:10,t:6e5,n:"m"},{u:6e4,c:15,t:9e5,n:"m"},{u:6e4,c:20,t:12e5,n:"m"},{u:6e4,c:30,t:18e5,n:"m"},{u:36e5,c:1,t:36e5,n:"h"},{u:36e5,c:2,t:72e5,n:"h"},{u:36e5,c:3,t:108e5,n:"h"},{u:36e5,c:4,t:144e5,n:"h"},{u:36e5,c:6,t:216e5,n:"h"},{u:36e5,c:8,t:288e5,n:"h"},{u:36e5,c:12,t:432e5,n:"h"},{u:864e5,c:1,t:864e5,n:"d"},{u:864e5,c:2,t:1728e5,n:"d"},{u:864e5,c:4,t:3456e5,n:"d"},{u:864e5,c:5,t:432e6,n:"d"},{u:6048e5,c:1,t:6048e5,n:"w"}],v=i/(r*3.3),f,e;t===n&&t++;for(var y=+t-n,s=this.useUtc?0:(new Date).getTimezoneOffset()*6e4,p=+n-s,w=+t-s,h=0,c=[2,3,5,7,10];y/u[h].t>v;)if(h++,h==u.length)for(f=u[u.length-1],e=0;e<c.length;e++)u.push({u:f.u,c:f.c*c[e],t:f.c*c[e]*f.u,n:f.n});var o=u[h].t,l=Math.floor(p/o)*o,a=Math.ceil((w-l)/o),b=l+o*a;return{min:l+s,max:b+s,steps:a,stepValue:o}},calculateXscaleRange:function(){this.xScaleRange=this.xScaleOverride?i.calculateFixedScaleRange(this.xScaleStartValue,this.xScaleSteps,this.xScaleStepWidth):this._calculateDateScaleRange(this.dataRange.xmin,this.dataRange.xmax,this.chart.width,this.fontSize)},argToString:function(n){return r(+n,this.dateTimeFormat,this.useUtc)},generateXLabels:function(){var r=this.xScaleRange.min,u=this.xScaleRange.stepValue,n=new Array(this.xScaleRange.steps+1);t.each(n,function(t,f){var e=r+u*f;n[f]=i.formatDateValue(e,this.timeFormat,this.dateFormat,this.useUtc)},this);this.xLabels=n}});n.ScatterDataSet=function(){var n=function(n,t,i,r){this.chart=i;this.scale=r;this.label=n.label||null;this.strokeColor=n.strokeColor||t.datasetStrokeColor;this.pointColor=n.pointColor||n.strokeColor||t.datasetStrokeColor;this.pointStrokeColor=n.pointStrokeColor||t.datasetPointStrokeColor;this.pointDot=t.pointDot;this.pointDotRadius=t.pointDotRadius;this.pointHitDetectionRadius=t.pointHitDetectionRadius;this.pointDotStrokeWidth=t.pointDotStrokeWidth;this.scaleArgLabel=t.scaleArgLabel;this.scaleLabel=t.scaleLabel;this.scaleSizeLabel=t.scaleSizeLabel;this.points=[]};return n.prototype.addPoint=function(n,t,i){i=arguments.length<3?1:i;var r=this._createNewPoint();this._setPointData(r,n,t,i);this.points.push(r)},n.prototype.setPointData=function(n,t,r,u){u=arguments.length<4?1:u;var f=i.getElementOrDefault(this.points,n);f&&this._setPointData(f,t,r,u)},n.prototype.removePoint=function(n){n>=0&&n<this.points.length&&this.points.splice(n,1)},n.prototype._createNewPoint=function(){return new i.ScatterPoint({ctx:this.chart.ctx,datasetLabel:this.label,display:this.pointDot,radius:this.pointDotRadius,hitDetectionRadius:this.pointHitDetectionRadius,strokeWidth:this.pointDotStrokeWidth,strokeColor:this.pointStrokeColor,highlightStroke:this.pointColor,fillColor:this.pointColor,highlightFill:this.pointStrokeColor})},n.prototype._setPointData=function(n,i,r,u){var f=this.scale.argToString(+i),e=+r+"",o=+u+"";n.arg=+i||0;n.value=+r||0;n.size=+u||0;n.argLabel=t.template(this.scaleArgLabel,{value:f});n.valueLabel=t.template(this.scaleLabel,{value:e});n.sizeLabel=t.template(this.scaleSizeLabel,{value:o})},n}();n.Type.extend({name:"Scatter",defaults:{scaleArgLabel:"<%=value%>",scaleSizeLabel:"<%=value%>",emptyDataMessage:"chart has no data",scaleShowGridLines:!0,scaleGridLineWidth:1,scaleGridLineColor:"rgba(0,0,0,.05)",scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,scaleType:"number",useUtc:!0,scaleDateFormat:"mmm d",scaleTimeFormat:"h:MM",scaleDateTimeFormat:"mmm d, yyyy, hh:MM",datasetStroke:!0,datasetStrokeWidth:2,datasetStrokeColor:"#007ACC",datasetPointStrokeColor:"white",bezierCurve:!0,bezierCurveTension:.4,pointDot:!0,pointDotStrokeWidth:1,pointDotRadius:4,pointHitDetectionRadius:4,multiTooltipTemplate:"<%=argLabel%>; <%=valueLabel%>",tooltipTemplate:"<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%=argLabel%>; <%=valueLabel%>",legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><%for(var i=0;i<datasets.length;i++){%><li><span class="<%=name.toLowerCase()%>-legend-marker" style="background-color:<%=datasets[i].strokeColor%>"><\/span><%=datasets[i].label%><\/li><%}%><\/ul>'},initialize:function(i){this.datasets=[];this.scale=this._initScale();i.datasets&&(i=i.datasets);t.each(i,function(i){var r=new n.ScatterDataSet(i,this.options,this.chart,this.scale);this.datasets.push(r);t.each(i.data,function(n){r.addPoint(n.x,n.y,n.r||1)})},this);this.options.showTooltips&&t.bindEvents(this,this.options.tooltipEvents,function(n){var i=n.type!=="mouseout"?this.getPointsAtEvent(n):[];this._forEachPoint(function(n){n.restore(["fillColor","strokeColor"])});t.each(i,function(n){n.fillColor=n.highlightFill;n.strokeColor=n.highlightStroke});this.showTooltip(i)});var r=this._calculateRange();this.scale.setDataRange(r);this.update()},_initScale:function(){var t={chart:this.chart,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,labelTemplate:this.options.scaleLabel,argLabelTemplate:this.options.scaleArgLabel,showLabels:this.options.scaleShowLabels,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,display:this.options.showScale,xScaleOverride:this.options.xScaleOverride,xScaleSteps:this.options.xScaleSteps,xScaleStepWidth:this.options.xScaleStepWidth,xScaleStartValue:this.options.xScaleStartValue,scaleOverride:this.options.scaleOverride,scaleSteps:this.options.scaleSteps,scaleStepWidth:this.options.scaleStepWidth,scaleStartValue:this.options.scaleStartValue,useUtc:this.options.useUtc,dateFormat:this.options.scaleDateFormat,timeFormat:this.options.scaleTimeFormat,dateTimeFormat:this.options.scaleDateTimeFormat};return this.options.scaleType==="date"?new n.ScatterDateScale(t):new n.ScatterNumberScale(t)},getPointsAtEvent:function(n){var i=[],r=t.getRelativePosition(n);return t.each(this.datasets,function(n){t.each(n.points,function(n){n.inRange(r.x,r.y)&&i.push(n)})},this),i},showTooltip:function(i){var u,r,f,e;return this.draw(),i.length>0&&(u=i[0],r=u.tooltipPosition(),i.length==1?new n.Tooltip({x:Math.round(r.x),y:Math.round(r.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:t.template(this.options.tooltipTemplate,u),chart:this.chart,custom:this.options.customTooltips}).draw():(f=[],e=[],t.each(i,function(n){f.push(t.template(this.options.multiTooltipTemplate,n));e.push({fill:n._saved.fillColor||n.fillColor,stroke:n._saved.strokeColor||n.strokeColor})},this),new n.MultiTooltip({x:Math.round(r.x),y:Math.round(r.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:f,legendColors:e,legendColorBackground:this.options.multiTooltipKeyBackground,title:"",chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw())),this},_forEachPoint:function(n){t.each(this.datasets,function(i){t.each(i.points,n,this)},this)},_forEachDataset:function(n){t.each(this.datasets,n,this)},_hasData:function(){var n=!1;return this._forEachDataset(function(t){n|=!!t.points.length}),n},_calculateRange:function(){var n=undefined,t=undefined,i=undefined,r=undefined;return this._forEachPoint(function(u){(n===undefined||u.arg<n)&&(n=u.arg);(t===undefined||u.arg>t)&&(t=u.arg);(i===undefined||u.value<i)&&(i=u.value);(r===undefined||u.value>r)&&(r=u.value)}),{xmin:n,xmax:t,ymin:i,ymax:r}},_drawMessage:function(n){var i=this.chart.ctx,r=this.chart.width,u=this.chart.height,f=this.options.scaleFontSize,e=this.options.scaleFontStyle,o=this.options.scaleFontFamily,s=t.fontString(f,e,o);i.save();i.translate(r/2,u/2);i.textAlign="center";i.textBaseline="middle";i.font=s;i.fillStyle=this.options.scaleFontColor;i.fillText(n,0,0);i.restore()},_drawLine:function(n){var i=this.chart.ctx,r=undefined;i.lineJoin="round";i.lineWidth=this.options.datasetStrokeWidth;i.strokeStyle=n.strokeColor||this.options.datasetStrokeColor;i.beginPath();t.each(n.points,function(n,t){t===0?i.moveTo(n.x,n.y):this.options.bezierCurve?i.bezierCurveTo(r.controlPoints.x2,r.controlPoints.y2,n.controlPoints.x1,n.controlPoints.y1,n.x,n.y):i.lineTo(n.x,n.y);r=n},this);i.stroke()},update:function(){var n=this._calculateRange();this.scale.setDataRange(n);this.render()},draw:function(n){this._hasData()?(this.scale.fit(),this._forEachDataset(function(t){this.scale.updatePoints(t.points,n);this.options.bezierCurve&&this.scale.updateBezierControlPoints(t.points,n,this.options.bezierCurveTension)}),this.clear(),this.scale.draw(),this.options.datasetStroke&&t.each(this.datasets,this._drawLine,this),this.options.pointDot&&this._forEachPoint(function(n){n.draw()})):(this.clear(),this._drawMessage(this.options.emptyDataMessage))}})});
/*
//# sourceMappingURL=Chart.Scatter.min.js.map
*/

@@ -0,0 +0,0 @@ The MIT License (MIT)

{
"name": "chart.js-scatter",
"version": "1.1.3",
"description": "Scatter chart plugin for Chart.js",
"main": "Chart.Scatter.js",
"dependencies": {
"chart.js": "~1.0.2"
},
"repository": {
"type": "git",
"url": "git+https://github.com/dima117/Chart.Scatter.git"
},
"keywords": [
"chart",
"chartjs",
"scatter"
],
"author": "Dmitry Andriyanov <dima117a@gmail.com> (https://github.com/dima117)",
"license": "MIT",
"bugs": {
"url": "https://github.com/dima117/Chart.Scatter/issues"
},
"homepage": "http://dima117.github.io/Chart.Scatter",
"browser": {
"Chart": "chart.js"
}
"name": "chart.js-scatter",
"version": "1.1.4",
"description": "Scatter chart plugin for Chart.js",
"main": "Chart.Scatter.js",
"dependencies": {
"chart.js": "1.1.1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/dima117/Chart.Scatter.git"
},
"keywords": [
"chart",
"chartjs",
"scatter"
],
"author": "Dmitry Andriyanov <dima117a@gmail.com> (https://github.com/dima117)",
"license": "MIT",
"bugs": {
"url": "https://github.com/dima117/Chart.Scatter/issues"
},
"homepage": "http://dima117.github.io/Chart.Scatter"
}

@@ -0,0 +0,0 @@ #Chart.Scatter

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc