forked from benpickles/peity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery.peity.min.js
10 lines (10 loc) · 2.09 KB
/
jquery.peity.min.js
1
2
3
4
5
6
7
8
9
10
// Peity jQuery plugin version 0.3.5
// (c) 2010 Ben Pickles
//
// http://benpickles.github.com/peity/
//
// Released under MIT license.
(function(j,m){function l(e,a){var b=m.createElement("canvas");b.setAttribute("width",e);b.setAttribute("height",a);return b}var i=j.fn.peity=function(e,a){m.createElement("canvas").getContext&&this.each(function(){j(this).change(function(){var b=j(this).html();i.graphers[e](j(this),j.extend({},i.defaults[e],a));j(this).trigger("chart:changed",b)}).trigger("change")});return this};i.graphers={};i.defaults={};i.add=function(e,a,b){i.graphers[e]=b;i.defaults[e]=a};i.add("pie",{colours:["#FFF4DD","#FF9900"],
delimeter:"/",radius:16},function(e,a){var b=a.radius/2,d=e.text().split(a.delimeter),h=parseFloat(d[0]),k=parseFloat(d[1]);d=-Math.PI/2;h=h/k*Math.PI*2;k=l(a.radius,a.radius);var c=k.getContext("2d");c.beginPath();c.moveTo(b,b);c.arc(b,b,b,h+d,h==0?Math.PI*2:d,false);c.fillStyle=a.colours[0];c.fill();c.beginPath();c.moveTo(b,b);c.arc(b,b,b,d,h+d,false);c.fillStyle=a.colours[1];c.fill();e.wrapInner(j("<span>").hide()).append(k)});i.add("line",{colour:"#c6d9fd",strokeColour:"#4d89f9",strokeWidth:1,
delimeter:",",height:16,max:null,width:32},function(e,a){var b=l(a.width,a.height),d=e.text().split(a.delimeter),h=Math.max.apply(Math,d.concat([a.max]));h=a.height/h;var k=a.width/(d.length-1),c=[],f,g=b.getContext("2d");g.beginPath();g.moveTo(0,a.height);for(f=0;f<d.length;f++){var n=f*k,o=a.height-h*d[f];c.push({x:n,y:o});g.lineTo(n,o)}g.lineTo(a.width,a.height);g.fillStyle=a.colour;g.fill();g.beginPath();g.moveTo(0,c[0].y);for(f=0;f<c.length;f++)g.lineTo(c[f].x,c[f].y);g.lineWidth=a.strokeWidth;
g.strokeStyle=a.strokeColour;g.stroke();e.wrapInner(j("<span>").hide()).append(b)});i.add("bar",{colour:"#4D89F9",delimeter:",",height:16,max:null,width:32},function(e,a){var b=l(a.width,a.height),d=e.text().split(a.delimeter),h=Math.max.apply(Math,d.concat([a.max]));h=a.height/h;var k=a.width/d.length,c=b.getContext("2d");c.fillStyle=a.colour;for(var f=0;f<d.length;f++){var g=h*d[f];c.fillRect(f*k,a.height-g,k,g)}e.wrapInner(j("<span>").hide()).append(b)})})(jQuery,document);