Chart.js/Chart.min.js

12 lines
78 KiB
JavaScript
Raw Normal View History

2014-06-29 19:36:25 +02:00
/*!
* Chart.js
* http://chartjs.org/
2015-03-10 12:04:30 +01:00
* Version: 1.0.2
2014-06-29 19:36:25 +02:00
*
2015-01-07 23:49:33 +01:00
* Copyright 2015 Nick Downie
2014-06-29 19:36:25 +02:00
* Released under the MIT license
* https://github.com/nnnick/Chart.js/blob/master/LICENSE.md
*/
(function(){"use strict";var t=this,e=t.Chart,i=function(t){this.canvas=t.canvas,this.ctx=t;var e=function(t,e){return t["offset"+e]?t["offset"+e]:document.defaultView.getComputedStyle(t).getPropertyValue(e)},i=this.width=e(t.canvas,"Width")||t.canvas.width,n=this.height=e(t.canvas,"Height")||t.canvas.height;return t.canvas.width=i,t.canvas.height=n,i=this.width=t.canvas.width,n=this.height=t.canvas.height,this.aspectRatio=this.width/this.height,s.retinaScale(this),this};i.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(){}}},i.types={};var s=i.helpers={},n=s.each=function(t,e,i){var s=Array.prototype.slice.call(arguments,3);if(t)if(t.length===+t.length){var n;for(n=0;n<t.length;n++)e.apply(i,[t[n],n].concat(s))}else for(var a in t)e.apply(i,[t[a],a].concat(s))},a=s.clone=function(t){var e={};return n(t,function(i,s){t.hasOwnProperty(s)&&(e[s]=i)}),e},o=s.extend=function(t){return n(Array.prototype.slice.call(arguments,1),function(e){n(e,function(i,s){e.hasOwnProperty(s)&&(t[s]=i)})}),t},h=s.merge=function(t,e){var i=Array.prototype.slice.call(arguments,0);return i.unshift({}),o.apply(null,i)},r=s.indexOf=function(t,e){if(Array.prototype.indexOf)return t.indexOf(e);for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1},l=(s.where=function(t,e){var i=[];return s.each(t,function(t){e(t)&&i.push(t)}),i},s.findNextWhere=function(t,e,i){i||(i=-1);for(var s=i+1;s<t.length;s++){var n=t[s];if(e(n))return n}},s.findPreviousWhere=function(t,e,i){i||(i=t.length);for(var s=i-1;s>=0;s--){var n=t[s];if(e(n))return n}},s.inherits=function(t){var e=this,i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},s=function(){this.constructor=i};return s.prototype=e.prototype,i.prototype=new s,i.extend=l,t&&o(i.prototype,t),i.__super__=e.prototype,i}),c=s.noop=function(){},u=s.uid=function(){var t=0;return function(){return"chart-"+t++}}(),d=s.warn=function(t){window.console&&"function"==typeof window.console.warn&&console.warn(t)},p=s.amd="function"==typeof define&&define.amd,f=s.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},g=s.max=function(t){return Math.max.apply(Math,t)},v=s.min=function(t){return Math.min.apply(Math,t)},m=(s.cap=function(t,e,i){if(f(e)){if(t>e)return e}else if(f(i)&&i>t)return i;return t},s.getDecimalPlaces=function(t){if(t%1!==0&&f(t)){var e=t.toString();if(e.indexOf("e-")<0)return e.split(".")[1].length;if(e.indexOf(".")<0)return parseInt(e.split("e-")[1]);var i=e.split(".")[1].split("e-");return i[0].length+parseInt(i[1])}return 0}),b=s.radians=function(t){return t*(Math.PI/180)},y=(s.getAngleFromPoint=function(t,e){var i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s),a=2*Math.PI+Math.atan2(s,i);return 0>i&&0>s&&(a+=2*Math.PI),{angle:a,distance:n}},s.aliasPixel=function(t){return t%2===0?0:.5}),w=(s.splineCurve=function(t,e,i,s){var n=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),a=Math.sqrt(Math.pow(i.x-e.x,2)+Math.pow(i.y-e.y,2)),o=s*n/(n+a
fillColor:this.data.datasets[s].fillColor,highlightFill:this.data.datasets[s].highlightFill||this.data.datasets[s].fillColor,highlightStroke:this.data.datasets[s].highlightStroke||this.data.datasets[s].strokeColor,_start:void 0})},this),this.render()},eachBars:function(t){i.each(this.data.datasets,function(e,s){i.each(e.metaData,t,this,s)},this)},eachValue:function(t){i.each(this.data.datasets,function(e,s){i.each(e.data,t,this,s)},this)},getBarsAtEvent:function(t){for(var e,s=[],n=i.getRelativePosition(t),a=function(t){s.push(t.metaData[e])},o=0;o<this.data.datasets.length;o++)for(e=0;e<this.data.datasets[o].metaData.length;e++)if(this.data.datasets[o].metaData[e].inRange(n.x,n.y))return i.each(this.data.datasets,a),s;return s},getBarAtEvent:function(t){for(var e,s=i.getRelativePosition(t),n=0;n<this.datasets.length;++n)for(var a=0;a<this.datasets[n].metaData.length;++a)if(this.datasets[n].metaData[a].inRange(s.x,s.y))return e={rectangle:this.datasets[n].metaData[a],datasetIndex:n,barIndex:a};return e},buildScale:function(t){var e=this,s=function(){var t=[];return e.eachValue(function(e){t.push(e)}),t},n={templateString:this.options.scaleLabel,height:this.chart.height,width:this.chart.width,ctx:this.chart.ctx,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,valuesCount:t.length,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,calculateYRange:function(t){var e=i.calculateScaleRange(s(),t,this.fontSize,this.beginAtZero,this.integersOnly);i.extend(this,e)},xLabels:t,font:i.fontString(this.options.scaleFontSize,this.options.scaleFontStyle,this.options.scaleFontFamily),lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",padding:this.options.showScale?0:this.options.barShowStroke?this.options.barStrokeWidth:0,showLabels:this.options.scaleShowLabels,display:this.options.showScale};this.options.scaleOverride&&i.extend(n,{calculateYRange:i.noop,steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}),this.scale=new this.ScaleClass(n)},addData:function(t,e){i.each(t,function(t,i){this.data.datasets[i].bars.push(new this.BarClass({value:t,label:e,datasetLabel:this.data.datasets[i].label,x:this.scale.calculateBarX(this.data.datasets.length,i,this.scale.valuesCount+1),y:this.scale.endPoint,width:this.scale.calculateBarWidth(this.data.datasets.length),base:this.scale.endPoint,strokeColor:this.data.datasets[i].strokeColor,fillColor:this.data.datasets[i].fillColor}))},this),this.scale.addXLabel(e),this.update()},removeData:function(){this.scale.removeXLabel(),i.each(this.data.datasets,function(t){t.bars.shift()},this),this.update()},reflow:function(){i.extend(this.BarClass.prototype,{y:this.scale.endPoint,base:this.scale.endPoint});var t=i.extend({height:this.chart.height,width:this.chart.width});this.scale.update(t)},draw:function(t){var e=t||1;this.clear(),this.scale.draw(e),this.eachBars(function(t,i,s){t.hasValue()&&(t.base=this.scale.endPoint,t.transition(["x","y","width"],e).draw())},this)}})}.call(this),function(){"use strict";var t=this,e=t.Chart,i=e.helpers,s={segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,percentageInnerCutout:50,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>'};e.Type.extend({name:"Doughnut",defaults:s,initialize:function(t){this.data=t,this.segm
[e,100*i,100*s]}function n(t){var e,i,s,n=t[0],a=t[1],o=t[2],h=Math.min(n,a,o),r=Math.max(n,a,o),l=r-h;return i=0==r?0:l/r*1e3/10,r==h?e=0:n==r?e=(a-o)/l:a==r?e=2+(o-n)/l:o==r&&(e=4+(n-a)/l),e=Math.min(60*e,360),0>e&&(e+=360),s=r/255*1e3/10,[e,i,s]}function a(t){var e=t[0],i=t[1],n=t[2],a=s(t)[0],o=1/255*Math.min(e,Math.min(i,n)),n=1-1/255*Math.max(e,Math.max(i,n));return[a,100*o,100*n]}function o(t){var e,i,s,n,a=t[0]/255,o=t[1]/255,h=t[2]/255;return n=Math.min(1-a,1-o,1-h),e=(1-a-n)/(1-n)||0,i=(1-o-n)/(1-n)||0,s=(1-h-n)/(1-n)||0,[100*e,100*i,100*s,100*n]}function h(t){return $[JSON.stringify(t)]}function l(t){var e=t[0]/255,i=t[1]/255,s=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,s=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92;var n=.4124*e+.3576*i+.1805*s,a=.2126*e+.7152*i+.0722*s,o=.0193*e+.1192*i+.9505*s;return[100*n,100*a,100*o]}function c(t){var e,i,s,n=l(t),a=n[0],o=n[1],h=n[2];return a/=95.047,o/=100,h/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,h=h>.008856?Math.pow(h,1/3):7.787*h+16/116,e=116*o-16,i=500*(a-o),s=200*(o-h),[e,i,s]}function u(t){return V(c(t))}function d(t){var e,i,s,n,a,o=t[0]/360,h=t[1]/100,r=t[2]/100;if(0==h)return a=255*r,[a,a,a];i=.5>r?r*(1+h):r+h-r*h,e=2*r-i,n=[0,0,0];for(var l=0;3>l;l++)s=o+1/3*-(l-1),0>s&&s++,s>1&&s--,a=1>6*s?e+6*(i-e)*s:1>2*s?i:2>3*s?e+(i-e)*(2/3-s)*6:e,n[l]=255*a;return n}function p(t){var e,i,s=t[0],n=t[1]/100,a=t[2]/100;return a*=2,n*=1>=a?a:2-a,i=(a+n)/2,e=2*n/(a+n),[s,100*e,100*i]}function f(t){return a(d(t))}function v(t){return o(d(t))}function m(t){return h(d(t))}function y(t){var e=t[0]/60,i=t[1]/100,s=t[2]/100,n=Math.floor(e)%6,a=e-Math.floor(e),o=255*s*(1-i),h=255*s*(1-i*a),r=255*s*(1-i*(1-a)),s=255*s;switch(n){case 0:return[s,r,o];case 1:return[h,s,o];case 2:return[o,s,r];case 3:return[o,h,s];case 4:return[r,o,s];case 5:return[s,o,h]}}function w(t){var e,i,s=t[0],n=t[1]/100,a=t[2]/100;return i=(2-n)*a,e=n*a,e/=1>=i?i:2-i,e=e||0,i/=2,[s,100*e,100*i]}function S(t){return a(y(t))}function x(t){return o(y(t))}function C(t){return h(y(t))}function k(t){var e,i,s,n,a=t[0]/360,o=t[1]/100,h=t[2]/100,l=o+h;switch(l>1&&(o/=l,h/=l),e=Math.floor(6*a),i=1-h,s=6*a-e,0!=(1&e)&&(s=1-s),n=o+s*(i-o),e){default:case 6:case 0:r=i,g=n,b=o;break;case 1:r=n,g=i,b=o;break;case 2:r=o,g=i,b=n;break;case 3:r=o,g=n,b=i;break;case 4:r=n,g=o,b=i;break;case 5:r=i,g=o,b=n}return[255*r,255*g,255*b]}function P(t){return s(k(t))}function L(t){return n(k(t))}function M(t){return o(k(t))}function F(t){return h(k(t))}function A(t){var e,i,s,n=t[0]/100,a=t[1]/100,o=t[2]/100,h=t[3]/100;return e=1-Math.min(1,n*(1-h)+h),i=1-Math.min(1,a*(1-h)+h),s=1-Math.min(1,o*(1-h)+h),[255*e,255*i,255*s]}function R(t){return s(A(t))}function T(t){return n(A(t))}function z(t){return a(A(t))}function W(t){return h(A(t))}function O(t){var e,i,s,n=t[0]/100,a=t[1]/100,o=t[2]/100;return e=3.2406*n+-1.5372*a+o*-.4986,i=n*-.9689+1.8758*a+.0415*o,s=.0557*n+a*-.204+1.057*o,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e=12.92*e,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i=12.92*i,s=s>.0031308?1.055*Math.pow(s,1/2.4)-.055:s=12.92*s,e=Math.min(Math.max(0,e),1),i=Math.min(Math.max(0,i),1),s=Math.min(Math.max(0,s),1),[255*e,255*i,255*s]}function I(t){var e,i,s,n=t[0],a=t[1],o=t[2];return n/=95.047,a/=100,o/=108.883,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,e=116*a-16,i=500*(n-a),s=200*(a-o),[e,i,s]}function B(t){return V(I(t))}function E(t){var e,i,s,n,a=t[0],o=t[1],h=t[2];return 8>=a?(i=100*a/903.3,n=7.787*(i/100)+16/116):(i=100*Math.pow((a+16)/116,3),n=Math.pow(i/100,1/3)),e=.008856>=e/95.047?e=95.047*(o/500+n-16/116)/7.787:95.047*Math.pow(o/500+n,3),s=.008859>=s/108.883?s=108.883*(n-h/200-16/116)/7.787:108.883*Math.pow(n-h/200,3),[e,i,s]}function V(t){var e,i,s,n=t[0],a=t[1],o=t[2];return e=Math.atan2(o,a),i=360*e/2/Math.PI,0>i&&(i+=360),s=Math.sqrt(a*a+o*o),[n,s,i]}function D(t){return O(E(t))}function H(t){var e,i,s,n=t[0],a=t[1],o=