diff --git a/association/plugins/SparklinePlugin/SparklinePlugin.js b/association/plugins/SparklinePlugin/SparklinePlugin.js
index 1aff2d2..13c634c 100644
|
a
|
b
|
|
| 1 | 1 | /*** |
| 2 | 2 | |''Name''|SparklinePlugin| |
| 3 | 3 | |''Description''|provides support for [[sparklines|http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&topic_id=1]]| |
| 4 | | |''Version''|1.0.0| |
| | 4 | |''Version''|2.0.0| |
| 5 | 5 | |''Status''|stable| |
| 6 | 6 | |''Source''|http://www.tiddlywiki.com/coreplugins.html#SparklinePlugin| |
| 7 | 7 | |''~CodeRepository:''|http://svn.tiddlywiki.org/Trunk/association/plugins/SparklinePlugin/SparklinePlugin.js | |
| 8 | 8 | |''License''|[[BSD open source license]]| |
| 9 | | |''~CoreVersion''|2.3.0| |
| | 9 | |''~CoreVersion''|2.4.1| |
| 10 | 10 | |''Feedback''|[[TiddlyWiki community|http://groups.google.com/group/TiddlyWiki]] | |
| 11 | 11 | |''Keywords''|visualization| |
| 12 | 12 | !Usage |
| … |
… |
|
| 29 | 29 | //-- |
| 30 | 30 | |
| 31 | 31 | config.macros.sparkline = {}; |
| | 32 | |
| | 33 | config.macros.sparkline.byNum = function(a,b) |
| | 34 | { |
| | 35 | return parseInt(b)-parseInt(a); |
| | 36 | }; |
| 32 | 37 | config.macros.sparkline.handler = function(place,macroName,params) |
| 33 | 38 | { |
| 34 | 39 | var data = []; |
| 35 | | var min = 0; |
| 36 | | var max = 0; |
| | 40 | var min; |
| | 41 | var max; |
| | 42 | var highest = []; |
| | 43 | var boxHeight = 100; |
| | 44 | var tickWidth = 10; |
| | 45 | var tickBorderWidth = 0; |
| | 46 | var datalength = 0; |
| 37 | 47 | var v; |
| 38 | 48 | for(var t=0; t<params.length; t++) { |
| 39 | 49 | v = parseInt(params[t]); |
| … |
… |
|
| 43 | 53 | max = v; |
| 44 | 54 | data.push(v); |
| 45 | 55 | } |
| 46 | | if(data.length < 1) |
| | 56 | if(data.length < 1){ |
| 47 | 57 | return; |
| 48 | | var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160)); |
| | 58 | }else{ |
| | 59 | //highest.clear(); |
| | 60 | datalength += data.length; |
| | 61 | for (var i = 0, item; item = data[i]; i++ ){ |
| | 62 | highest[i] = item; |
| | 63 | } |
| | 64 | highest.sort(config.macros.sparkline.byNum); |
| | 65 | } |
| | 66 | |
| | 67 | var box = createTiddlyElement(place,"span",null,"sparkline",''); |
| 49 | 68 | box.title = data.join(","); |
| 50 | | var w = box.offsetWidth; |
| 51 | | var h = box.offsetHeight; |
| 52 | | box.style.paddingRight = (data.length * 2 - w) + "px"; |
| | 69 | box.style.display = 'block'; |
| | 70 | box.style.width = datalength * tickWidth+"px"; |
| | 71 | box.style.height = boxHeight+"px"; |
| 53 | 72 | box.style.position = "relative"; |
| 54 | | for(var d=0; d<data.length; d++) { |
| | 73 | |
| | 74 | for( var i = 0 ; i < datalength ; i++ ) { |
| 55 | 75 | var tick = document.createElement("img"); |
| 56 | | tick.border = 0; |
| | 76 | tick.style.border = tickBorderWidth; |
| 57 | 77 | tick.className = "sparktick"; |
| 58 | | tick.style.position = "absolute"; |
| 59 | 78 | tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B"; |
| 60 | | tick.style.left = d*2 + "px"; |
| 61 | | tick.style.width = "2px"; |
| 62 | | v = Math.floor(((data[d] - min)/(max-min)) * h); |
| 63 | | tick.style.top = (h-v) + "px"; |
| 64 | | tick.style.height = v + "px"; |
| | 79 | |
| | 80 | tick.style.width = tickWidth+'px'; |
| | 81 | tick.style.height = (isNaN((data[i]/highest[0])*boxHeight)?boxHeight:parseInt((data[i]/highest[0])*boxHeight)) +"px"; |
| | 82 | tick.style.float = 'left'; |
| 65 | 83 | box.appendChild(tick); |
| 66 | 84 | } |
| 67 | 85 | }; |
| … |
… |
|
| 69 | 87 | |
| 70 | 88 | } |
| 71 | 89 | //}}} |
| | 90 | |
| | 91 | //{{{ |
| | 92 | // Add clear function |
| | 93 | Array.prototype.clear = function() |
| | 94 | { |
| | 95 | for(var i=0, item; item = this[i]; i++) { |
| | 96 | delete item; |
| | 97 | } |
| | 98 | if(this.length > 0){return -1;} |
| | 99 | else{return 0;} |
| | 100 | }; |
| | 101 | //}}} |
| | 102 | No newline at end of file |