rgraph-rails 4.67 → 5.00
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/rgraph-rails/version.rb +1 -1
- data/license.txt +1 -1
- data/vendor/assets/javascripts/RGraph.bar.js +101 -105
- data/vendor/assets/javascripts/RGraph.bipolar.js +61 -64
- data/vendor/assets/javascripts/RGraph.common.annotate.js +15 -15
- data/vendor/assets/javascripts/RGraph.common.context.js +10 -10
- data/vendor/assets/javascripts/RGraph.common.core.js +104 -103
- data/vendor/assets/javascripts/RGraph.common.csv.js +12 -5
- data/vendor/assets/javascripts/RGraph.common.deprecated.js +2 -3
- data/vendor/assets/javascripts/RGraph.common.dynamic.js +17 -17
- data/vendor/assets/javascripts/RGraph.common.effects.js +2 -3
- data/vendor/assets/javascripts/RGraph.common.key.js +14 -13
- data/vendor/assets/javascripts/RGraph.common.resizing.js +4 -4
- data/vendor/assets/javascripts/RGraph.common.tooltips.js +8 -8
- data/vendor/assets/javascripts/RGraph.drawing.background.js +8 -7
- data/vendor/assets/javascripts/RGraph.drawing.circle.js +6 -5
- data/vendor/assets/javascripts/RGraph.drawing.image.js +8 -7
- data/vendor/assets/javascripts/RGraph.drawing.marker1.js +6 -5
- data/vendor/assets/javascripts/RGraph.drawing.marker2.js +8 -7
- data/vendor/assets/javascripts/RGraph.drawing.marker3.js +6 -5
- data/vendor/assets/javascripts/RGraph.drawing.poly.js +6 -5
- data/vendor/assets/javascripts/RGraph.drawing.rect.js +6 -5
- data/vendor/assets/javascripts/RGraph.drawing.text.js +8 -7
- data/vendor/assets/javascripts/RGraph.drawing.xaxis.js +24 -22
- data/vendor/assets/javascripts/RGraph.drawing.yaxis.js +22 -22
- data/vendor/assets/javascripts/RGraph.fuel.js +20 -19
- data/vendor/assets/javascripts/RGraph.funnel.js +19 -18
- data/vendor/assets/javascripts/RGraph.gantt.js +45 -40
- data/vendor/assets/javascripts/RGraph.gauge.js +30 -26
- data/vendor/assets/javascripts/RGraph.hbar.js +79 -82
- data/vendor/assets/javascripts/RGraph.hprogress.js +32 -31
- data/vendor/assets/javascripts/RGraph.line.js +117 -122
- data/vendor/assets/javascripts/RGraph.meter.js +27 -22
- data/vendor/assets/javascripts/RGraph.odo.js +26 -29
- data/vendor/assets/javascripts/RGraph.pie.js +46 -54
- data/vendor/assets/javascripts/RGraph.radar.js +34 -36
- data/vendor/assets/javascripts/RGraph.rose.js +43 -37
- data/vendor/assets/javascripts/RGraph.rscatter.js +26 -26
- data/vendor/assets/javascripts/RGraph.scatter.js +73 -74
- data/vendor/assets/javascripts/RGraph.semicircularprogress.js +15 -16
- data/vendor/assets/javascripts/RGraph.svg.bar.js +18 -16
- data/vendor/assets/javascripts/RGraph.svg.bipolar.js +48 -45
- data/vendor/assets/javascripts/RGraph.svg.common.core.js +57 -54
- data/vendor/assets/javascripts/RGraph.svg.common.csv.js +10 -2
- data/vendor/assets/javascripts/RGraph.svg.common.key.js +5 -5
- data/vendor/assets/javascripts/RGraph.svg.funnel.js +8 -7
- data/vendor/assets/javascripts/RGraph.svg.gauge.js +13 -11
- data/vendor/assets/javascripts/RGraph.svg.hbar.js +24 -21
- data/vendor/assets/javascripts/RGraph.svg.line.js +22 -20
- data/vendor/assets/javascripts/RGraph.svg.pie.js +10 -9
- data/vendor/assets/javascripts/RGraph.svg.radar.js +8 -7
- data/vendor/assets/javascripts/RGraph.svg.rose.js +37 -20
- data/vendor/assets/javascripts/RGraph.svg.scatter.js +18 -17
- data/vendor/assets/javascripts/RGraph.svg.semicircularprogress.js +10 -9
- data/vendor/assets/javascripts/RGraph.svg.waterfall.js +16 -14
- data/vendor/assets/javascripts/RGraph.thermometer.js +12 -11
- data/vendor/assets/javascripts/RGraph.vprogress.js +29 -31
- data/vendor/assets/javascripts/RGraph.waterfall.js +44 -38
- metadata +3 -4
@@ -4,15 +4,14 @@ RGraph=window.RGraph||{isRGraph:true};(function(win,doc,undefined)
|
|
4
4
|
{var args=arguments;if((typeof(text)!='string'&&typeof(text)!='number')||text=='undefined'){return;}
|
5
5
|
if(typeof(text)=='string'&&text.match(/\r\n/)){var dimensions=RGraph.MeasureText('M',args[11],font,size);var arr=text.split('\r\n');if(args[6]&&args[6]=='center')y=(y-(dimensions[1]*((arr.length-1)/2)));for(var i=1;i<arr.length;++i){RGraph.Text(context,font,size,args[9]==-90?(x+(size*1.5)):x,y+(dimensions[1]*i),arr[i],args[6]?args[6]:null,args[7],args[8],args[9],args[10],args[11],args[12]);}
|
6
6
|
text=arr[0];}
|
7
|
-
if(document.all&&RGraph.ISOLD){y+=2;}
|
8
7
|
context.font=(args[11]?'Bold ':'')+size+'pt '+font;var i;var origX=x;var origY=y;var originalFillStyle=context.fillStyle;var originalLineWidth=context.lineWidth;if(typeof(args[6])=='undefined')args[6]='bottom';if(typeof(args[7])=='undefined')args[7]='left';if(typeof(args[8])=='undefined')args[8]=null;if(typeof(args[9])=='undefined')args[9]=0;if(navigator.userAgent.indexOf('Opera')!=-1){context.canvas.__rgraph_valign__=args[6];context.canvas.__rgraph_halign__=args[7];}
|
9
8
|
context.save();context.canvas.__rgraph_originalx__=x;context.canvas.__rgraph_originaly__=y;context.translate(x,y);x=0;y=0;if(args[9]){context.rotate(args[9]/(180/RGraph.PI));}
|
10
9
|
if(args[6]){var vAlign=args[6];if(vAlign=='center'){context.textBaseline='middle';}else if(vAlign=='top'){context.textBaseline='top';}}
|
11
10
|
if(args[7]){var hAlign=args[7];var width=context.measureText(text).width;if(hAlign){if(hAlign=='center'){context.textAlign='center';}else if(hAlign=='right'){context.textAlign='right';}}}
|
12
|
-
context.fillStyle=originalFillStyle;context.save();context.fillText(text,0,0);context.lineWidth=1;var width=context.measureText(text).width;var width_offset=(hAlign=='center'?(width/2):(hAlign=='right'?width:0));var height=size*1.5;var height_offset=(vAlign=='center'?(height/2):(vAlign=='top'?height:0));var ieOffset=
|
11
|
+
context.fillStyle=originalFillStyle;context.save();context.fillText(text,0,0);context.lineWidth=1;var width=context.measureText(text).width;var width_offset=(hAlign=='center'?(width/2):(hAlign=='right'?width:0));var height=size*1.5;var height_offset=(vAlign=='center'?(height/2):(vAlign=='top'?height:0));var ieOffset=0;if(args[8]){context.strokeRect(-3-width_offset,0-3-height-ieOffset+height_offset,width+6,height+6);if(args[10]){context.fillStyle=args[10];context.fillRect(-3-width_offset,0-3-height-ieOffset+height_offset,width+6,height+6);}
|
13
12
|
context.fillStyle=originalFillStyle;context.fillText(text,0,0);}
|
14
13
|
context.restore();context.lineWidth=originalLineWidth;context.restore();};RG.getMouseXY=function(e)
|
15
|
-
{var el=
|
14
|
+
{var el=e.target;var x;var y;var paddingLeft=el.style.paddingLeft?parseInt(el.style.paddingLeft):0;var paddingTop=el.style.paddingTop?parseInt(el.style.paddingTop):0;var borderLeft=el.style.borderLeftWidth?parseInt(el.style.borderLeftWidth):0;var borderTop=el.style.borderTopWidth?parseInt(el.style.borderTopWidth):0;if(RGraph.ISIE8)e=event;if(typeof(e.offsetX)=='number'&&typeof(e.offsetY)=='number'){x=e.offsetX;y=e.offsetY;}else{x=0;y=0;while(el!=document.body&&el){x+=el.offsetLeft;y+=el.offsetTop;el=el.offsetParent;}
|
16
15
|
x=e.pageX-x;y=e.pageY-y;}
|
17
16
|
return[x,y];};RG.oldBrowserCompat=RG.OldBrowserCompat=function(co)
|
18
17
|
{if(!co){return;}
|
@@ -2,15 +2,15 @@
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};(function(win,doc,undefined)
|
3
3
|
{var RG=RGraph,ua=navigator.userAgent,ma=Math;RG.installWindowMousedownListener=RG.InstallWindowMousedownListener=function(obj)
|
4
4
|
{if(!RG.window_mousedown_event_listener){RG.window_mousedown_event_listener=function(e)
|
5
|
-
{if(navigator.userAgent.indexOf('Firefox')>=0)win.event=e;e=RG.fixEventObject(e);if(RG.HideTooltip&&RG.Registry.
|
5
|
+
{if(navigator.userAgent.indexOf('Firefox')>=0)win.event=e;e=RG.fixEventObject(e);if(RG.HideTooltip&&RG.Registry.get('chart.tooltip')){RG.clear(RG.Registry.get('chart.tooltip').__canvas__);RG.redraw();RG.hideTooltip();}};win.addEventListener('mousedown',RG.window_mousedown_event_listener,false);}};RG.installWindowMouseupListener=RG.InstallWindowMouseupListener=function(obj)
|
6
6
|
{if(!RG.window_mouseup_event_listener){RG.window_mouseup_event_listener=function(e)
|
7
7
|
{if(navigator.userAgent.indexOf('Firefox')>=0)win.event=e;e=RG.fixEventObject(e);if(RG.annotating_window_onmouseup){RG.annotating_window_onmouseup(e);return;}
|
8
|
-
if(RG.Registry.
|
9
|
-
RG.fireCustomEvent(RG.Registry.
|
8
|
+
if(RG.Registry.get('chart.adjusting')||RG.Registry.get('chart.adjusting.gantt')){var obj=RG.Registry.get('chart.adjusting');if(obj&&obj.type==='line'){obj.data_arr=RG.arrayLinearize(obj.data);}
|
9
|
+
RG.fireCustomEvent(RG.Registry.get('chart.adjusting'),'onadjustend');}
|
10
10
|
RG.Registry.set('chart.adjusting',null);RG.Registry.set('chart.adjusting.shape',null);RG.Registry.set('chart.adjusting.gantt',null);var tags=document.getElementsByTagName('canvas');for(var i=0;i<tags.length;++i){if(tags[i].__object__&&tags[i].__object__.isRGraph){if(!tags[i].__object__.get('chart.annotatable')){if(!tags[i].__rgraph_trace_cover__&&!noredraw){RG.clear(tags[i]);}else{var noredraw=true;}}}}
|
11
11
|
if(!noredraw){RG.redraw();}};win.addEventListener('mouseup',RG.window_mouseup_event_listener,false);}};RG.installCanvasMouseupListener=RG.InstallCanvasMouseupListener=function(obj)
|
12
12
|
{if(!obj.canvas.rgraph_mouseup_event_listener){obj.canvas.rgraph_mouseup_event_listener=function(e)
|
13
|
-
{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;e=RG.fixEventObject(e);var objects=RG.ObjectRegistry.getObjectsByXY(e);if(objects){for(var i=0,len=objects.length;i<len;i+=1){var obj=objects[i],id=objects[i].id;var link=obj.
|
13
|
+
{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;e=RG.fixEventObject(e);var objects=RG.ObjectRegistry.getObjectsByXY(e);if(objects){for(var i=0,len=objects.length;i<len;i+=1){var obj=objects[i],id=objects[i].id;var link=obj.get('link');if(obj.type=='drawing.text'&&typeof link==='string'){var link_target=obj.get('link.target');var link_options=obj.get('link.options');window.open(link,link_target?link_target:null,link_options);}
|
14
14
|
if(!RG.isNull(obj)&&RG.tooltip){var shape=obj.getShape(e);if(shape&&shape['tooltip']){var text=shape['tooltip'];if(text){var type=shape['object'].type;RG.clear(obj.canvas);RG.redraw();RG.Registry.set('chart.tooltip.shape',shape);RG.tooltip(obj,text,0,0,shape['index'],e);obj.highlight(shape);if(RG.Registry.get('chart.tooltip')){RG.Registry.get('chart.tooltip').__shape__=shape;RG.evaluateCursor(e);}
|
15
15
|
e.cancelBubble=true;e.stopPropagation();return false;}}}
|
16
16
|
if(RG.Registry.get('chart.adjusting')||RG.Registry.get('chart.adjusting.gantt')){if(obj&&obj.type==='line'){obj.data_arr=RG.arrayLinearize(obj.data);}
|
@@ -24,13 +24,13 @@ if(obj.coords&&obj.coords.key&&obj.coords.key.length){var mouseXY=RG.getMouseXY(
|
|
24
24
|
if(!overkey){RG.Registry.set('key-element',null);}}}
|
25
25
|
var func=obj.get('chart.events.mousemove');if(!func&&typeof obj.onmousemove=='function'){var func=obj.onmousemove;}
|
26
26
|
if(shape){var index=shape['object'].type=='scatter'?shape['index_adjusted']:shape['index'];if(typeof(obj['$'+index])=='object'&&typeof(obj['$'+index].onmousemove)=='function'){var func2=obj['$'+index].onmousemove;}}
|
27
|
-
if(shape&&(typeof(func)=='function'||typeof(func2)=='function'||typeof obj.
|
28
|
-
if(typeof(func)=='function')RGraph.custom_events_mousemove_pointer=func(e,shape);if(typeof(func2)=='function')RGraph.custom_events_mousemove_pointer=RGraph.custom_events_mousemove_pointer||func2(e,shape);if(typeof RG.events==='object'&&typeof RG.events[obj.uid]==='object'){for(i in RG.events[obj.uid]){if(typeof i==='string'&&typeof RG.events[obj.uid][i]==='object'&&RG.events[obj.uid][i][1]==='onmousemove'&&typeof RG.events[obj.uid][i][2]==='function'){(RG.events[obj.uid][i][2])(obj);}}}}else if(typeof(obj.
|
27
|
+
if(shape&&(typeof(func)=='function'||typeof(func2)=='function'||typeof obj.get('link')==='string')){if(obj.get('chart.events.mousemove.revertto')==null){obj.set('chart.events.mousemove.revertto',e.target.style.cursor);}
|
28
|
+
if(typeof(func)=='function')RGraph.custom_events_mousemove_pointer=func(e,shape);if(typeof(func2)=='function')RGraph.custom_events_mousemove_pointer=RGraph.custom_events_mousemove_pointer||func2(e,shape);if(typeof RG.events==='object'&&typeof RG.events[obj.uid]==='object'){for(i in RG.events[obj.uid]){if(typeof i==='string'&&typeof RG.events[obj.uid][i]==='object'&&RG.events[obj.uid][i][1]==='onmousemove'&&typeof RG.events[obj.uid][i][2]==='function'){(RG.events[obj.uid][i][2])(obj);}}}}else if(typeof(obj.get('chart.events.mousemove.revertto'))=='string'){RG.cursor.push('default');obj.set('chart.events.mousemove.revertto',null);}
|
29
29
|
var func=obj.properties['chart.events.mouseover'];if(!func&&typeof obj.onmouseover==='function'){func=obj.onmouseover;}
|
30
30
|
if(shape){var index=shape['object'].type=='scatter'?shape['index_adjusted']:shape['index'];if(typeof(obj['$'+index])=='object'&&typeof(obj['$'+index].onmouseover)=='function'){var func2=obj['$'+index].onmouseover;}}else{obj.__mouseover_shape_index__=null;RG.__mouseover_objects__=[];RG.last_mouseover_uid=null;RG.last_mouseover_object=null;}
|
31
31
|
if(typeof RG.__mouseover_objects__==='undefined'){RG.__mouseover_objects__=[];RG.last_mouseover_uid=null;RG.last_mouseover_object=null;}
|
32
32
|
if(shape){if((obj.__mouseover_shape_index__===shape.index)===false){obj.__mouseover_shape__=shape;obj.__mouseover_shape_index__=shape.index;RG.last_mouseover_uid=obj.uid;RG.last_mouseover_object=obj;RG.__mouseover_objects__.push(obj);if(func)func(e,shape);if(func2)func2(e,shape);if(typeof RG.events==='object'&&typeof RG.events[obj.uid]==='object'){for(i in RG.events[obj.uid]){if(typeof i==='string'&&typeof RG.events[obj.uid][i]==='object'&&RG.events[obj.uid][i][1]==='onmouseover'&&typeof RG.events[obj.uid][i][2]==='function'){(RG.events[obj.uid][i][2])(obj);}}}}}else{obj.__mouseover_shape_index__=null;RG.__mouseover_objects__=[];RG.last_mouseover_uid=null;RG.last_mouseover_object=null;}
|
33
|
-
var current_tooltip=RG.Registry.get('chart.tooltip');var tooltips=obj.get('chart.tooltips');var tooltips_event=obj.
|
33
|
+
var current_tooltip=RG.Registry.get('chart.tooltip');var tooltips=obj.get('chart.tooltips');var tooltips_event=obj.get('chart.tooltips.event');if(shape&&(tooltips&&tooltips[shape['index']]||shape['tooltip'])&&tooltips_event.indexOf('mousemove')!==-1&&(RG.isNull(current_tooltip)||obj.uid!=current_tooltip.__object__.uid||(current_tooltip.__index__!=shape['index'])||(typeof shape['dataset']==='number'&&shape['dataset']!=current_tooltip.__shape__['dataset']))){RG.clear(obj.canvas);RG.hideTooltip();RG.redraw();obj.canvas.rgraph_mouseup_event_listener(e);return;}
|
34
34
|
if(obj&&obj.get('chart.adjustable')){obj.Adjusting_mousemove(e);}
|
35
35
|
if(shape||(obj.overChartArea&&obj.overChartArea(e))){break;}}
|
36
36
|
var objects=RG.OR.getObjectsByCanvasID(e.target.id);for(var i=0;i<objects.length;++i){if(!uids[objects[i].uid]){objects[i].__mouseover_shape_index__=null;}}}else{var objects=RG.OR.getObjectsByCanvasID(e.target.id);for(var i=0;i<objects.length;i++){if(typeof objects[i].__mouseover_shape_index__==='number'){RG.fireCustomEvent(objects[i],'onmouseout');}
|
@@ -41,7 +41,7 @@ if(e.target.__object__&&e.target.__object__.get('chart.annotatable')&&RG.annotat
|
|
41
41
|
RG.evaluateCursor(e);};obj.canvas.addEventListener('mousemove',obj.canvas.rgraph_mousemove_event_listener,false);}};RG.installCanvasMousedownListener=RG.InstallCanvasMousedownListener=function(obj)
|
42
42
|
{if(!obj.canvas.rgraph_mousedown_event_listener){obj.canvas.rgraph_mousedown_event_listener=function(e)
|
43
43
|
{if(navigator.userAgent.indexOf('Firefox')>=0)window.event=e;e=RG.fixEventObject(e);if(e.target.__object__&&e.target.__object__.get('chart.annotatable')&&RG.annotating_canvas_onmousedown){RG.annotating_canvas_onmousedown(e);return;}
|
44
|
-
var obj=RG.ObjectRegistry.getObjectByXY(e);if(obj){var id=obj.id;if(obj&&obj.isRGraph&&obj.get('chart.adjustable')){var obj=RG.OR.getObjectByXY(e);if(obj&&obj.isRGraph){switch(obj.type){case'bar':var shape=obj.getShapeByX(e);break;case'gantt':var shape=obj.getShape(e);var data=typeof shape.subindex==='number'?obj.data[shape.index][shape.subindex]:obj.data[shape.index];if(shape){var mouseXY=RG.getMouseXY(e);RG.Registry.set('chart.adjusting.gantt',{index:shape.index,subindex:shape.subindex,object:obj,mousex:mouseXY[0],mousey:mouseXY[1],event:data,event_start:data
|
44
|
+
var obj=RG.ObjectRegistry.getObjectByXY(e);if(obj){var id=obj.id;if(obj&&obj.isRGraph&&obj.get('chart.adjustable')){var obj=RG.OR.getObjectByXY(e);if(obj&&obj.isRGraph){switch(obj.type){case'bar':var shape=obj.getShapeByX(e);break;case'gantt':var shape=obj.getShape(e);var data=typeof shape.subindex==='number'?obj.data[shape.index][shape.subindex]:obj.data[shape.index];if(shape){var mouseXY=RG.getMouseXY(e);RG.Registry.set('chart.adjusting.gantt',{index:shape.index,subindex:shape.subindex,object:obj,mousex:mouseXY[0],mousey:mouseXY[1],event:data,event_start:data.start,event_duration:data.duration,mode:(mouseXY[0]>(shape['x']+shape['width']-5)?'resize':'move'),shape:shape});}
|
45
45
|
break;case'line':var shape=obj.getShape(e);break;case'hbar':var shape=obj.getShapeByY(e);break;default:var shape=null;}
|
46
46
|
if(RG.isNull(obj.properties['chart.adjustable.only'])||typeof obj.properties['chart.adjustable.only']==='undefined'||(RG.isArray(obj.properties['chart.adjustable.only'])&&obj.isAdjustable&&obj.isAdjustable(shape))){RG.Registry.set('chart.adjusting.shape',shape);RG.fireCustomEvent(obj,'onadjustbegin');RG.Registry.set('chart.adjusting',obj);RG.clear(obj.canvas);RG.redraw();obj.canvas.rgraph_mousemove_event_listener(e);}}}
|
47
47
|
RG.clear(obj.canvas);RG.redraw();}};obj.canvas.addEventListener('mousedown',obj.canvas.rgraph_mousedown_event_listener,false);}};RG.installCanvasClickListener=RG.InstallCanvasClickListener=function(obj)
|
@@ -56,9 +56,9 @@ if(shape||(obj.overChartArea&&obj.overChartArea(e))){break;}}};obj.canvas.addEve
|
|
56
56
|
var obj=null;var mouseXY=RG.getMouseXY(e);var mouseX=mouseXY[0];var mouseY=mouseXY[1];var canvas=e.target;var objects=RG.OR.getObjectsByCanvasID(canvas.id);for(var i=0,len=objects.length;i<len;i+=1){if((objects[i].getShape&&objects[i].getShape(e))||(objects[i].overChartArea&&objects[i].overChartArea(e))){var obj=objects[i];var id=obj.id;}}
|
57
57
|
if(!RG.isNull(obj)){if(obj.getShape&&obj.getShape(e)){var shape=obj.getShape(e);if(obj.get('chart.tooltips')){var text=RG.parseTooltipText(obj.get('chart.tooltips'),shape['index']);if(!text&&shape['object'].type=='scatter'&&shape['index_adjusted']){text=RG.parseTooltipText(obj.get('chart.tooltips'),shape['index_adjusted']);}
|
58
58
|
if(text){var pointer=true;}}}
|
59
|
-
if(!RG.isNull(obj)&&obj.
|
59
|
+
if(!RG.isNull(obj)&&obj.get('chart.key.interactive')){for(var j=0;j<obj.coords.key.length;++j){if(mouseX>obj.coords.key[j][0]&&mouseX<(obj.coords.key[j][0]+obj.coords.key[j][2])&&mouseY>obj.coords.key[j][1]&&mouseY<(obj.coords.key[j][1]+obj.coords.key[j][3])){var pointer=true;}}}}
|
60
60
|
if(RGraph.custom_events_mousemove_pointer){var pointer=true;RGraph.custom_events_mousemove_pointer=false;}
|
61
|
-
var objects=RG.OR.objects.byCanvasID;for(var i=0,len=objects.length;i<len;i+=1){if(objects[i]&&objects[i][1].
|
61
|
+
var objects=RG.OR.objects.byCanvasID;for(var i=0,len=objects.length;i<len;i+=1){if(objects[i]&&objects[i][1].get('chart.resizable')){var resizable=true;}}
|
62
62
|
if(resizable&&mouseX>(e.target.width-32)&&mouseY>(e.target.height-16)){pointer=true;}
|
63
63
|
if(pointer){e.target.style.cursor='pointer';}else if(e.target.style.cursor=='pointer'){e.target.style.cursor='default';}else{e.target.style.cursor=null;}
|
64
64
|
if(resizable&&mouseX>=(e.target.width-15)&&mouseY>=(e.target.height-15)){e.target.style.cursor='move';}else if(e.target.style.cursor==='move'){e.target.style.cursor='default';}
|
@@ -70,16 +70,16 @@ if(obj&&obj.type==='drawing.text'&&shape&&typeof obj.get('link')==='string'){e.t
|
|
70
70
|
if(typeof tooltips=='function'){var text=tooltips(idx);}else if(typeof tooltips=='string'){var text=tooltips;}else if(typeof tooltips=='object'&&typeof tooltips[idx]=='function'){var text=tooltips[idx](idx);}else if(typeof tooltips[idx]=='string'&&tooltips[idx]){var text=tooltips[idx];}else{var text='';}
|
71
71
|
if(text=='undefined'){text='';}else if(text=='null'){text='';}
|
72
72
|
return RG.getTooltipTextFromDIV?RG.getTooltipTextFromDIV(text):text;};RG.drawCrosshairs=RG.DrawCrosshairs=function(e,obj)
|
73
|
-
{var e=RG.fixEventObject(e),width=obj.canvas.width,height=obj.canvas.height,mouseXY=RG.getMouseXY(e),x=mouseXY[0],y=mouseXY[1],
|
74
|
-
RG.redrawCanvas(ca);if(x>=
|
73
|
+
{var e=RG.fixEventObject(e),width=obj.canvas.width,height=obj.canvas.height,mouseXY=RG.getMouseXY(e),x=mouseXY[0],y=mouseXY[1],marginLeft=obj.marginLeft,marginRight=obj.marginRight,marginTop=obj.marginTop,marginBottom=obj.marginBottom,Mathround=Math.round,prop=obj.properties,co=obj.context,ca=obj.canvas
|
74
|
+
RG.redrawCanvas(ca);if(x>=marginLeft&&y>=marginTop&&x<=(width-marginRight)&&y<=(height-marginBottom)){var linewidth=prop['chart.crosshairs.linewidth']?prop['chart.crosshairs.linewidth']:1;co.lineWidth=linewidth?linewidth:1;co.beginPath();co.strokeStyle=prop['chart.crosshairs.color'];if(prop['chart.crosshairs.snap']){var point=null;var dist=null;var len=null;if(obj.type=='line'){for(var i=0;i<obj.coords.length;++i){var length=RG.getHypLength(obj.coords[i][0],obj.coords[i][1],x,y);if(typeof dist!='number'||length<dist){var point=i;var dist=length;}}
|
75
75
|
x=obj.coords[point][0];y=obj.coords[point][1];for(var dataset=0;dataset<obj.coords2.length;++dataset){for(var point=0;point<obj.coords2[dataset].length;++point){if(obj.coords2[dataset][point][0]==x&&obj.coords2[dataset][point][1]==y){ca.__crosshairs_snap_dataset__=dataset;ca.__crosshairs_snap_point__=point;}}}}else{for(var i=0;i<obj.coords.length;++i){for(var j=0;j<obj.coords[i].length;++j){var len=RG.getHypLength(obj.coords[i][j][0],obj.coords[i][j][1],x,y);if(typeof(dist)!='number'||len<dist){var dataset=i;var point=j;var dist=len;}}}
|
76
76
|
ca.__crosshairs_snap_dataset__=dataset;ca.__crosshairs_snap_point__=point;x=obj.coords[dataset][point][0];y=obj.coords[dataset][point][1];}}
|
77
|
-
if(prop['chart.crosshairs.vline']){co.moveTo(Mathround(x),Mathround(
|
78
|
-
if(prop['chart.crosshairs.hline']){co.moveTo(Mathround(
|
79
|
-
co.stroke();if(obj.type=='scatter'&&prop['chart.crosshairs.coords']){var xCoord=(((x-
|
80
|
-
yCoord=yCoord.toFixed(prop['chart.scale.decimals']);var div=RG.Registry.get('chart.coordinates.coords.div');var mouseXY=RG.getMouseXY(e);var canvasXY=RG.getCanvasXY(ca);if(!div){var div=document.createElement('DIV');div.__object__=obj;div.style.position='absolute';div.style.backgroundColor='white';div.style.border='1px solid black';div.style.fontFamily='Arial, Verdana, sans-serif';div.style.fontSize='10pt'
|
77
|
+
if(prop['chart.crosshairs.vline']){co.moveTo(Mathround(x),Mathround(marginTop));co.lineTo(Mathround(x),Mathround(height-marginBottom));}
|
78
|
+
if(prop['chart.crosshairs.hline']){co.moveTo(Mathround(marginLeft),Mathround(y));co.lineTo(Mathround(width-marginRight),Mathround(y));}
|
79
|
+
co.stroke();if(obj.type=='scatter'&&prop['chart.crosshairs.coords']){var xCoord=(((x-marginLeft)/(width-marginLeft-marginRight))*(prop['chart.xaxis.scale.max']-prop['chart.xaxis.scale.min']))+prop['chart.xaxis.scale.min'];xCoord=xCoord.toFixed(prop['chart.yaxis.scale.decimals']);var yCoord=obj.max-(((y-prop['chart.margin.top'])/(height-marginTop-marginBottom))*obj.max);if(obj.type=='scatter'&&obj.properties['chart.xaxis.position']=='center'){yCoord=(yCoord-(obj.max/2))*2;}
|
80
|
+
yCoord=yCoord.toFixed(prop['chart.yaxis.scale.decimals']);var div=RG.Registry.get('chart.coordinates.coords.div');var mouseXY=RG.getMouseXY(e);var canvasXY=RG.getCanvasXY(ca);if(!div){var div=document.createElement('DIV');div.__object__=obj;div.style.position='absolute';div.style.backgroundColor='white';div.style.border='1px solid black';div.style.fontFamily='Arial, Verdana, sans-serif';div.style.fontSize='10pt'
|
81
81
|
div.style.padding='2px';div.style.opacity=1;div.style.WebkitBorderRadius='3px';div.style.borderRadius='3px';div.style.MozBorderRadius='3px';document.body.appendChild(div);RG.Registry.set('chart.coordinates.coords.div',div);}
|
82
|
-
div.style.opacity=1;div.style.display='inline';if(!prop['chart.crosshairs.coords.fixed']){div.style.left=ma.max(2,(e.pageX-div.offsetWidth-3))+'px';div.style.top=ma.max(2,(e.pageY-div.offsetHeight-3))+'px';}else{div.style.left=canvasXY[0]+
|
82
|
+
div.style.opacity=1;div.style.display='inline';if(!prop['chart.crosshairs.coords.fixed']){div.style.left=ma.max(2,(e.pageX-div.offsetWidth-3))+'px';div.style.top=ma.max(2,(e.pageY-div.offsetHeight-3))+'px';}else{div.style.left=canvasXY[0]+marginLeft+3+'px';div.style.top=canvasXY[1]+marginTop+3+'px';}
|
83
83
|
if(typeof prop['chart.crosshairs.coords.formatter.x']==='function'){xCoord=(prop['chart.crosshairs.coords.formatter.x'])({object:obj,value:parseInt(xCoord)});}
|
84
84
|
if(typeof prop['chart.crosshairs.coords.formatter.y']==='function'){yCoord=(prop['chart.crosshairs.coords.formatter.y'])({object:obj,value:parseInt(yCoord)});}
|
85
85
|
div.innerHTML='<span style="color: #666">'+prop['chart.crosshairs.coords.labels.x']+':</span> '+xCoord+'<br><span style="color: #666">'+prop['chart.crosshairs.coords.labels.y']+':</span> '+yCoord;obj.canvas.addEventListener('mouseout',RG.hideCrosshairCoords,false);ca.__crosshairs_labels__=div;ca.__crosshairs_x__=xCoord;ca.__crosshairs_y__=yCoord;}else if(prop['chart.crosshairs.coords']){alert('[RGRAPH] Showing crosshair coordinates is only supported on the Scatter chart');}
|
@@ -82,9 +82,8 @@ if(i%2==0){jQuery('#'+'rgraph_vscissors_'+i+'_'+obj.id).animate({top:xy[1]+'px',
|
|
82
82
|
setTimeout(function()
|
83
83
|
{RG.clear(obj.canvas);for(var i=0;i<10;i++){jQuery('#rgraph_vscissors_'+i+'_'+obj.id).remove();}
|
84
84
|
callback(obj);},duration);return this;};RG.Effects.Common.animate=function(map)
|
85
|
-
{var obj=this;obj.draw();var totalFrames=(map&&map['frames'])?map['frames']:30
|
86
|
-
|
87
|
-
{var id=[obj.id+'_'+obj.type];if(!currentFrame[id]){currentFrame[id]=totalFrames;originalValues[id]={};diffs[id]={};steps[id]={};}
|
85
|
+
{var obj=this;obj.draw();var totalFrames=(map&&map['frames'])?map['frames']:30,currentFrame=new Array(),originalValues=new Array(),diffs=new Array(),steps=new Array(),callback=arguments[1];function iterator()
|
86
|
+
{var id=[obj.id+'_'+obj.type];RG.cache={};if(!currentFrame[id]){currentFrame[id]=totalFrames;originalValues[id]={};diffs[id]={};steps[id]={};}
|
88
87
|
for(var i in map){if(typeof map[i]==='string'||typeof map[i]==='number'){if(currentFrame[id]==totalFrames){originalValues[id][i]=obj.get(i);diffs[id][i]=map[i]-originalValues[id][i];steps[id][i]=diffs[id][i]/totalFrames;}
|
89
88
|
obj.set(i,obj.get(i)+steps[id][i]);RG.clear(obj.canvas);obj.draw();}}
|
90
89
|
if(--currentFrame[id]>0){RG.Effects.updateCanvas(iterator);}else{if(typeof callback==='function'){callback(obj);}}}
|
@@ -2,12 +2,13 @@
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.HTML=RGraph.HTML||{};(function(win,doc,undefined)
|
3
3
|
{var RG=RGraph,ua=navigator.userAgent,ma=Math;RG.drawKey=RG.DrawKey=function(obj,key,colors)
|
4
4
|
{if(!key){return;}
|
5
|
-
var ca=obj.canvas,co=obj.context,prop=obj.properties,keypos=prop['chart.key.position'],textsize=prop['chart.text.size'],key_non_null=[],colors_non_null=[];co.lineWidth=1;co.beginPath();if(typeof(prop['chart.key.vpos'])=='number'){obj.
|
5
|
+
var ca=obj.canvas,co=obj.context,prop=obj.properties,keypos=prop['chart.key.position'],textsize=prop['chart.text.size'],key_non_null=[],colors_non_null=[];co.lineWidth=1;co.beginPath();if(typeof(prop['chart.key.vpos'])=='number'){obj.set('chart.key.position.y',prop['chart.key.vpos']*obj.get('chart.margin.top'));}
|
6
6
|
for(var i=0;i<key.length;++i){if(key[i]!=null){colors_non_null.push(colors[i]);key_non_null.push(key[i]);}}
|
7
|
-
key=key_non_null;colors=colors_non_null;
|
8
|
-
|
9
|
-
|
10
|
-
if(
|
7
|
+
key=key_non_null;colors=colors_non_null;var textAccessible=false;if(typeof prop['chart.key.text.accessible']==='boolean'){textAccessible=prop['chart.key.text.accessible'];}
|
8
|
+
function DrawKey_graph(obj,key,colors)
|
9
|
+
{var marginLeft=obj.marginLeft,marginRight=obj.marginRight,marginTop=obj.marginTop,marginBottom=obj.marginBottom,hpos=prop['chart.yaxis.position']=='right'?marginLeft+10:ca.width-marginRight-10,vpos=marginTop+10,title=prop['chart.title'],hmargin=8,vmargin=4,fillstyle=prop['chart.key.background'],strokestyle='#333',height=0,width=0;var textConf=RG.getTextConf({object:obj,prefix:'chart.key.labels'});blob_size=textConf.size;text_size=textConf.size;if(!obj.coords)obj.coords={};obj.coords.key=[];co.font=text_size+'pt '+prop['chart.text.font'];for(i=0;i<key.length;++i){width=Math.max(width,co.measureText(key[i]).width);}
|
10
|
+
width+=5;width+=blob_size;width+=5;width+=5;width+=5;if(prop['chart.yaxispos']=='left'||(obj.type==='pie'&&!prop['chart.yaxis.position'])||(obj.type==='hbar'&&!prop['chart.yaxis.position'])||(obj.type==='hbar'&&prop['chart.yaxis.position']==='center')||(obj.type==='hbar'&&prop['chart.yaxis.position']==='right')||(obj.type==='rscatter'&&!prop['chart.yaxis.position'])||(obj.type==='radar'&&!prop['chart.yaxis.position'])||(obj.type==='rose'&&!prop['chart.yaxis.position'])||(obj.type==='funnel'&&!prop['chart.yaxis.position'])||(obj.type==='vprogress'&&!prop['chart.yaxis.position'])||(obj.type==='hprogress'&&!prop['chart.yaxis.position'])){hpos-=width;}
|
11
|
+
if(typeof(prop['chart.key.halign'])=='string'){if(prop['chart.key.halign']=='left'){hpos=marginLeft+10;}else if(prop['chart.key.halign']=='right'){hpos=ca.width-marginRight-width;}}
|
11
12
|
if(typeof(prop['chart.key.position.x'])=='number'){hpos=prop['chart.key.position.x'];}
|
12
13
|
if(typeof(prop['chart.key.position.y'])=='number'){vpos=prop['chart.key.position.y'];}
|
13
14
|
if(prop['chart.key.shadow']){co.shadowColor=prop['chart.key.shadow.color'];co.shadowBlur=prop['chart.key.shadow.blur'];co.shadowOffsetX=prop['chart.key.shadow.offsetx'];co.shadowOffsetY=prop['chart.key.shadow.offsety'];}
|
@@ -15,26 +16,26 @@ co.beginPath();co.fillStyle=prop['chart.key.background'];co.strokeStyle='black';
|
|
15
16
|
RG.NoShadow(obj);co.beginPath();if(prop['chart.key.colors']){colors=prop['chart.key.colors'];}
|
16
17
|
for(var i=key.length-1;i>=0;i--){var j=Number(i)+1;if(typeof prop['chart.key.color.shape']==='object'&&typeof prop['chart.key.color.shape'][i]==='string'){var blob_shape=prop['chart.key.color.shape'][i];}else if(typeof prop['chart.key.color.shape']==='object'&&typeof prop['chart.key.color.shape'][i]==='function'){var blob_shape=prop['chart.key.color.shape'][i];}else if(typeof prop['chart.key.color.shape']==='string'){var blob_shape=prop['chart.key.color.shape'];}else if(typeof prop['chart.key.color.shape']==='function'){var blob_shape=prop['chart.key.color.shape'];}else{var blob_shape='rect';}
|
17
18
|
if(blob_shape=='circle'){co.beginPath();co.fillStyle=colors[i];co.arc(hpos+5+(blob_size/2),vpos+(5*j)+(text_size*j)-text_size+(blob_size/2),blob_size/2,0,6.26,0);co.fill();}else if(blob_shape=='line'){co.beginPath();co.strokeStyle=colors[i];co.moveTo(hpos+5,vpos+(5*j)+(text_size*j)-text_size+(blob_size/2));co.lineTo(hpos+blob_size+5,vpos+(5*j)+(text_size*j)-text_size+(blob_size/2));co.stroke();}else if(blob_shape=='triangle'){co.beginPath();co.strokeStyle=colors[i];co.moveTo(hpos+5,vpos+(5*j)+(text_size*j)-text_size+blob_size);co.lineTo(hpos+(blob_size/2)+5,vpos+(5*j)+(text_size*j)-text_size);co.lineTo(hpos+blob_size+5,vpos+(5*j)+(text_size*j)-text_size+blob_size);co.closePath();co.fillStyle=colors[i];co.fill();}else if(typeof blob_shape==='function'){blob_shape({object:obj,color:colors[i],x:hpos+5,y:vpos+(5*j)+(text_size*j)-text_size,width:text_size,height:text_size+1});}else{co.fillStyle=colors[i];co.fillRect(hpos+5,vpos+(5*j)+(text_size*j)-text_size,text_size,text_size+1);}
|
18
|
-
co.beginPath();
|
19
|
+
co.beginPath();ret=RG.text2(obj,{font:textConf.font,size:textConf.size,bold:textConf.bold,italic:textConf.italic,color:typeof textConf.color=='object'?textConf.color[i]:textConf.color,x:hpos+blob_size+5+5+(prop['chart.key.labels.offsetx']||0),y:vpos+(5*j)+(text_size*j)+3+(prop['chart.key.labels.offsety']||0),text:key[i],accessible:textAccessible});obj.coords.key[i]=[ret.x,ret.y,ret.width,ret.height,key[i],colors[i],obj];}
|
19
20
|
co.fill();}
|
20
|
-
function
|
21
|
-
{var text_size=typeof(prop['chart.key.
|
22
|
-
length+=hmargin;if(obj.type=='pie'){if(prop['chart.align']=='left'){var hpos=obj.radius+
|
21
|
+
function DrawKey_margin(obj,key,colors)
|
22
|
+
{var text_size=typeof(prop['chart.key.labels.size'])=='number'?prop['chart.key.labels.size']:prop['chart.text.size'],text_bold=prop['chart.key.labels.bold'],text_italic=prop['chart.key.labels.italic'],text_font=prop['chart.key.labels.font']||prop['chart.key.font']||prop['chart.text.font'],text_color=prop['chart.key.labels.color']||'black',marginLeft=obj.marginLeft,marginRight=obj.marginRight,marginTop=obj.marginTop,marginBottom=obj.marginBottom,hpos=((ca.width-marginLeft-marginRight)/2)+obj.marginLeft,vpos=marginTop-text_size-5,title=prop['chart.title'],blob_size=text_size,hmargin=8,vmargin=4,fillstyle=prop['chart.key.background'],strokestyle='#999',length=0;if(!obj.coords)obj.coords={};obj.coords.key=[];co.font=(obj.properties['chart.key.labels.italic']?'italic ':'')+(obj.properties['chart.key.labels.bold']?'bold ':'')+text_size+'pt '+text_font;for(i=0;i<key.length;++i){length+=hmargin;length+=blob_size;length+=hmargin;length+=co.measureText(key[i]).width;}
|
23
|
+
length+=hmargin;if(obj.type=='pie'){if(prop['chart.align']=='left'){var hpos=obj.radius+marginLeft;}else if(prop['chart.align']=='right'){var hpos=ca.width-obj.radius-marginRight;}else{hpos=ca.width/2;}}
|
23
24
|
hpos-=(length/2);if(typeof(prop['chart.key.position.x'])=='number'){hpos=prop['chart.key.position.x'];}
|
24
25
|
if(typeof(prop['chart.key.position.y'])=='number'){vpos=prop['chart.key.position.y'];}
|
25
|
-
if(obj.
|
26
|
+
if(obj.get('chart.key.position.gutter.boxed')||obj.get('chart.key.position.margin.boxed')){if(prop['chart.key.shadow']){co.shadowColor=prop['chart.key.shadow.color'];co.shadowBlur=prop['chart.key.shadow.blur'];co.shadowOffsetX=prop['chart.key.shadow.offsetx'];co.shadowOffsetY=prop['chart.key.shadow.offsety'];}
|
26
27
|
co.beginPath();co.fillStyle=fillstyle;co.strokeStyle=strokestyle;if(prop['chart.key.rounded']){RG.strokedCurvyRect(co,hpos,vpos-vmargin,length,text_size+vmargin+vmargin)}else{co.rect(hpos,vpos-vmargin,length,text_size+vmargin+vmargin);}
|
27
28
|
co.stroke();co.fill();RG.NoShadow(obj);}
|
28
29
|
if(prop['chart.key.colors']){colors=prop['chart.key.colors'];}
|
29
30
|
for(var i=0,pos=hpos;i<key.length;++i){pos+=hmargin;if(typeof prop['chart.key.color.shape']==='object'&&typeof prop['chart.key.color.shape'][i]==='string'){var blob_shape=prop['chart.key.color.shape'][i];}else if(typeof prop['chart.key.color.shape']==='object'&&typeof prop['chart.key.color.shape'][i]==='function'){var blob_shape=prop['chart.key.color.shape'][i];}else if(typeof prop['chart.key.color.shape']==='function'){var blob_shape=prop['chart.key.color.shape'];}else if(typeof(prop['chart.key.color.shape'])=='string'){var blob_shape=prop['chart.key.color.shape'];}else{var blob_shape='square';}
|
30
31
|
if(blob_shape=='line'){co.beginPath();co.strokeStyle=colors[i];co.moveTo(pos,vpos+(blob_size/2));co.lineTo(pos+blob_size,vpos+(blob_size/2));co.stroke();}else if(blob_shape=='circle'){co.beginPath();co.fillStyle=colors[i];co.moveTo(pos,vpos+(blob_size/2));co.arc(pos+(blob_size/2),vpos+(blob_size/2),(blob_size/2),0,6.28,0);co.fill();}else if(blob_shape=='triangle'){co.fillStyle=colors[i];co.beginPath();co.strokeStyle=colors[i];co.moveTo(pos,vpos+blob_size);co.lineTo(pos+(blob_size/2),vpos);co.lineTo(pos+blob_size,vpos+blob_size);co.closePath();co.fill();}else if(typeof blob_shape==='function'){blob_shape({object:obj,color:colors[i],x:pos,y:vpos,width:blob_size,height:blob_size});}else{co.beginPath();co.fillStyle=colors[i];co.rect(pos,vpos,blob_size,blob_size);co.fill();}
|
31
|
-
pos+=blob_size;pos+=hmargin;co.beginPath();co.fillStyle=(typeof text_color==='object')?text_color[i]:text_color;var ret=RG.Text2(obj,{
|
32
|
-
if(keypos&&keypos
|
32
|
+
pos+=blob_size;pos+=hmargin;co.beginPath();co.fillStyle=(typeof text_color==='object')?text_color[i]:text_color;var ret=RG.Text2(obj,{font:text_font,bold:text_bold,size:text_size,italic:text_italic,x:pos+ +(prop['chart.key.labels.offsetx']||0),y:vpos+text_size+1+ +(prop['chart.key.labels.offsety']||0),text:key[i],accessible:textAccessible});co.fill();pos+=co.measureText(key[i]).width;obj.coords.key[i]=[ret.x,ret.y,ret.width,ret.height,key[i],colors[i],obj];}}
|
33
|
+
if(keypos&&(keypos==='gutter'||keypos==='margin')){DrawKey_margin(obj,key,colors);}else if(keypos&&(keypos==='graph'||keypos==='chart')){DrawKey_graph(obj,key,colors);}else{alert('[COMMON] ('+obj.id+') Unknown key position: '+keypos);}
|
33
34
|
if(prop['chart.key.interactive']){if(!RGraph.Drawing||!RGraph.Drawing.Rect){alert('[INTERACTIVE KEY] The drawing API Rect library does not appear to have been included (which the interactive key uses)');}
|
34
35
|
if(!RGraph.InstallWindowMousedownListener){alert('[INTERACTIVE KEY] The dynamic library does not appear to have been included');}
|
35
36
|
for(var i=0,len=obj.coords.key.length,maxlen=0;i<len;i+=1){maxlen=Math.max(maxlen,obj.coords.key[i][2]);}
|
36
37
|
for(var i=0,len=obj.coords.key.length;i<len;i+=1){(function(idx)
|
37
|
-
{var arr=obj.coords.key;var value=obj.coords.key[idx];var index=idx;var rect=new RGraph.Drawing.Rect(obj.id,value[0],value[1],prop['chart.key.position']
|
38
|
+
{var arr=obj.coords.key;var value=obj.coords.key[idx];var index=idx;var rect=new RGraph.Drawing.Rect(obj.id,value[0],value[1],(prop['chart.key.position']==='gutter'||prop['chart.key.position']==='margin')?value[2]:maxlen,value[3]).set('colorsFill','rgba(0,0,0,0)').draw();rect.onclick=function(e,shape)
|
38
39
|
{var co=rect.context;co.fillStyle=prop['chart.key.interactive.highlight.label'];co.fillRect(shape.x,shape.y,shape.width,shape.height);if(typeof obj.interactiveKeyHighlight=='function'){obj.Set('chart.key.interactive.index',idx);RG.FireCustomEvent(obj,'onbeforeinteractivekey');obj.interactiveKeyHighlight(index);RG.FireCustomEvent(obj,'onafterinteractivekey');}}
|
39
40
|
rect.onmousemove=function(e,shape)
|
40
41
|
{return true;}})(i);}}};RG.getKeyLength=function(key)
|
@@ -3,10 +3,10 @@ RGraph=window.RGraph||{isRGraph:true};(function(win,doc,undefined)
|
|
3
3
|
{var RG=RGraph,ua=navigator.userAgent,ma=Math,active=null;RGraph.allowResizing=RGraph.AllowResizing=function(obj)
|
4
4
|
{var ca=obj.canvas,co=obj.context,pa2=RG.path2;ca.resizing=ca.resizing||{};ca.resizing.placeHolders=ca.resizing.placeHolders||[];if(!ca.resizing.originalw){ca.resizing.originalw=ca.width;}
|
5
5
|
if(!ca.resizing.originalh){ca.resizing.originalh=ca.height;}
|
6
|
-
var resizeHandleSize=15;if(!ca.resizing.__rgraph_original_width__||!ca.resizing.__rgraph_original_height__||!ca.resizing.__adjustX||!ca.resizing.__adjustY){ca.resizing.__rgraph_original_width__=ca.width;ca.resizing.__rgraph_original_height__=ca.height;ca.resizing.adjustX=(typeof obj.get('chart.
|
6
|
+
var resizeHandleSize=15;if(!ca.resizing.__rgraph_original_width__||!ca.resizing.__rgraph_original_height__||!ca.resizing.__adjustX||!ca.resizing.__adjustY){ca.resizing.__rgraph_original_width__=ca.width;ca.resizing.__rgraph_original_height__=ca.height;ca.resizing.adjustX=(typeof obj.get('chart.resizable.handle.adjust')=='object'&&typeof obj.get('chart.resizable.handle.adjust')[0]=='number'?obj.get('chart.resizable.handle.adjust')[0]:0);ca.resizing.adjustY=(typeof obj.get('chart.resizable.handle.adjust')=='object'&&typeof obj.get('chart.resizable.handle.adjust')[1]=='number'?obj.get('chart.resizable.handle.adjust')[1]:0);ca.resizing.bgcolor=obj.get('chart.resizable.handle.background')||'rgba(0,0,0,0)';}
|
7
7
|
pa2(co,'b m % % r % % % % f %',ca.width-resizeHandleSize-resizeHandleSize+ca.resizing.adjustX,ca.height-resizeHandleSize,ca.width-resizeHandleSize-resizeHandleSize+ca.resizing.adjustX,ca.height-resizeHandleSize+ca.resizing.adjustY,2*resizeHandleSize,resizeHandleSize,ca.resizing.bgcolor);pa2(co,'b lw 1 m % % l % % m % % l % % s gray f transparent',ma.round(ca.width-(resizeHandleSize/2)+ca.resizing.adjustX),ca.height-resizeHandleSize+ca.resizing.adjustY,ma.round(ca.width-(resizeHandleSize/2)+ca.resizing.adjustX),ca.height+ca.resizing.adjustY,ca.width+ca.resizing.adjustX,ma.round(ca.height-(resizeHandleSize/2)+ca.resizing.adjustY),ca.width-resizeHandleSize+ca.resizing.adjustX,ma.round(ca.height-(resizeHandleSize/2)+ca.resizing.adjustY));pa2(co,['b','m',ca.width-(resizeHandleSize/2)+ca.resizing.adjustX,ca.height-resizeHandleSize+ca.resizing.adjustY,'l',ca.width-(resizeHandleSize/2)+3+ca.resizing.adjustX,ca.height-resizeHandleSize+3+ca.resizing.adjustY,'l',ca.width-(resizeHandleSize/2)-3+ca.resizing.adjustX,ca.height-resizeHandleSize+3+ca.resizing.adjustY,'c','f','gray']);pa2(co,['b','m',ca.width-(resizeHandleSize/2)+ca.resizing.adjustX,ca.height+ca.resizing.adjustY,'l',ca.width-(resizeHandleSize/2)+3+ca.resizing.adjustX,ca.height-3+ca.resizing.adjustY,'l',ca.width-(resizeHandleSize/2)-3+ca.resizing.adjustX,ca.height-3+ca.resizing.adjustY,'c','f','gray']);pa2(co,['b','m',ca.width-resizeHandleSize+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+ca.resizing.adjustY,'l',ca.width-resizeHandleSize+3+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+3+ca.resizing.adjustY,'l',ca.width-resizeHandleSize+3+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)-3+ca.resizing.adjustY,'c','f','gray']);pa2(co,['b','m',ca.width+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+ca.resizing.adjustY,'l',ca.width-3+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+3+ca.resizing.adjustY,'l',ca.width-3+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)-3+ca.resizing.adjustY,'c','f','gray']);pa2(co,['b','m',ca.width+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+ca.resizing.adjustY,'r',ca.width-(resizeHandleSize/2)-2+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)-2+ca.resizing.adjustY,4,4,'r',ca.width-(resizeHandleSize/2)-2+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)-2+ca.resizing.adjustY,4,4,'s','gray','f','white']);pa2(co,['b','m',ma.round(ca.width-resizeHandleSize-3+ca.resizing.adjustX),ca.height-resizeHandleSize/2+ca.resizing.adjustY,'l',ma.round(ca.width-resizeHandleSize-resizeHandleSize+ca.resizing.adjustX),ca.height-(resizeHandleSize/2)+ca.resizing.adjustY,'l',ca.width-resizeHandleSize-resizeHandleSize+2+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)-2+ca.resizing.adjustY,'l',ca.width-resizeHandleSize-resizeHandleSize+2+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+2+ca.resizing.adjustY,'l',ca.width-resizeHandleSize-resizeHandleSize+ca.resizing.adjustX,ca.height-(resizeHandleSize/2)+ca.resizing.adjustY,'s','gray','f','gray']);pa2(co,['b','m',ma.round(ca.width-resizeHandleSize-resizeHandleSize-1+ca.resizing.adjustX),ca.height-(resizeHandleSize/2)-3+ca.resizing.adjustY,'l',ma.round(ca.width-resizeHandleSize-resizeHandleSize-1+ca.resizing.adjustX),ca.height-(resizeHandleSize/2)+3+ca.resizing.adjustY,'s','f']);if(obj.get('chart.resizable')&&!ca.rgraphResizewrapper){ca.rgraphResizewrapper=$('<div id="rgraph_resize_container_'+ca.id+'"></div>').css({'float':ca.style.cssFloat,position:'relative'}).get(0);$(ca).wrap(ca.rgraphResizewrapper);ca.style.cssFloat='none';ca.style.top=0;ca.style.left=0;var window_onmousemove=function(e)
|
8
|
-
{var ca=active,obj=ca?ca.__object__:null;if(ca){e=RG.fixEventObject(e);if(ca.resizing.mousedown){var newWidth=ca.width+(e.pageX-ca.resizing.originalx),newHeight=ca.height+(e.pageY-ca.resizing.originaly),minWidth=obj.get('
|
9
|
-
if(newHeight>(ca.resizing.originalh/2)&&(typeof obj.get('
|
8
|
+
{var ca=active,obj=ca?ca.__object__:null;if(ca){e=RG.fixEventObject(e);if(ca.resizing.mousedown){var newWidth=ca.width+(e.pageX-ca.resizing.originalx),newHeight=ca.height+(e.pageY-ca.resizing.originaly),minWidth=obj.get('chart.resizable.minwidth'),minHeight=obj.get('chart.resizable.minheight');if(newWidth>(ca.resizing.originalw/2)&&(typeof obj.get('resizableMaxwidth')==='number'?newWidth<obj.get('resizableMaxwidth'):true)&&(typeof minWidth==='number'?newWidth>minWidth:true)){ca.resizing.div.style.width=newWidth+'px';}
|
9
|
+
if(newHeight>(ca.resizing.originalh/2)&&(typeof obj.get('chart.resizable.maxheight')==='number'?newHeight<obj.get('chart.resizable.maxheight'):true)&&(typeof minHeight==='number'?newHeight>minHeight:true)){ca.resizing.div.style.height=newHeight+'px';}
|
10
10
|
RG.fireCustomEvent(ca.__object__,'onresize');}}}
|
11
11
|
if(typeof ca.rgraph_resize_window_mousemove_listener_installed!='boolean'){window.addEventListener('mousemove',window_onmousemove,false);ca.rgraph_resize_window_mousemove_listener_installed=true;}
|
12
12
|
var MouseupFunc=function(e)
|
@@ -14,7 +14,7 @@ var MouseupFunc=function(e)
|
|
14
14
|
if(ca.resizing.div){var div=ca.resizing.div;var coords=RG.getCanvasXY(ca);var parentNode=ca.parentNode;if(ca.style.position!='absolute'){var placeHolderDIV=document.createElement('DIV');placeHolderDIV.style.width=ca.resizing.originalw+'px';placeHolderDIV.style.height=ca.resizing.originalh+'px';placeHolderDIV.style.display='inline-block';placeHolderDIV.style.position=ca.style.position;placeHolderDIV.style.left=ca.style.left;placeHolderDIV.style.top=ca.style.top;placeHolderDIV.style.cssFloat=ca.style.cssFloat;parentNode.insertBefore(placeHolderDIV,ca);}
|
15
15
|
ca.style.backgroundColor='white';ca.style.position='absolute';ca.style.border='1px dashed gray';ca.style.boxShadow='2px 2px 5px #ddd';ca.style.left=0;ca.style.top=0;ca.width=parseInt(div.style.width);ca.height=parseInt(div.style.height);ca.getContext('2d').translate(0.5,0.5);var objects=RG.ObjectRegistry.getObjectsByCanvasID(ca.id);for(var i=0,len=objects.length;i<len;i+=1){RG.resetColorsToOriginalValues(objects[i]);if(typeof objects[i].reset==='function'){objects[i].reset();}}
|
16
16
|
RG.cache=[];RG.fireCustomEvent(ca.__object__,'onresizebeforedraw');RG.redrawCanvas(ca);ca.resizing.mousedown=false;div.style.display='none';document.body.removeChild(div);}
|
17
|
-
if(RG.Registry.
|
17
|
+
if(RG.Registry.get('chart.zoomed.div')||RGraph.Registry.get('chart.zoomed.img')){RG.Registry.set('chart.zoomed.div',null);RG.Registry.set('chart.zoomed.img',null);}
|
18
18
|
RG.FireCustomEvent(ca.__object__,'onresizeend');};var window_onmouseup=MouseupFunc;if(typeof ca.rgraph_resize_window_mouseup_listener_installed!='boolean'){window.addEventListener('mouseup',window_onmouseup,false);ca.rgraph_resize_window_mouseup_listener_installed=true;}
|
19
19
|
var canvas_onmousemove=function(e)
|
20
20
|
{e=RG.fixEventObject(e);var coords=RG.getMouseXY(e);var obj=e.target.__object__;var ca=e.target;var co=ca.getContext('2d');var cursor=ca.style.cursor;if(!ca.resizing.original_cursor){ca.resizing.original_cursor=cursor;}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};(function(win,doc,undefined)
|
3
|
-
{var RG=RGraph,ua=navigator.userAgent,ma=Math;RG.tooltips={};RG.tooltips.style={display:'inline-block',position:'absolute',padding:'6px',fontFamily:'Arial',fontSize:'10pt',fontWeight:'normal',textAlign:'center',left:0,top:0,backgroundColor:'rgb(255,255,239)',color:'black',visibility:'visible',zIndex:3,borderRadius:'5px',boxShadow:'rgba(96,96,96,0.5) 0 0 5px',opacity:0};RG.tooltip=RG.Tooltip=function(obj,text,x,y,idx,e)
|
3
|
+
{var RG=RGraph,ua=navigator.userAgent,ma=Math;RG.tooltips={};RG.tooltips.style={display:'inline-block',position:'absolute',padding:'6px',fontFamily:'Arial',fontSize:'10pt',fontWeight:'normal',textAlign:'center',left:0,top:0,backgroundColor:'rgb(255,255,239)',color:'black',visibility:'visible',zIndex:3,borderRadius:'5px',boxShadow:'rgba(96,96,96,0.5) 0 0 5px',opacity:0,lineHeight:'initial'};RG.tooltip=RG.Tooltip=function(obj,text,x,y,idx,e)
|
4
4
|
{if(RG.trim(text).length===0){return;}
|
5
5
|
RG.fireCustomEvent(obj,'onbeforetooltip');if(typeof(obj.get('chart.tooltips.override'))=='function'){return obj.get('chart.tooltips.override')(obj,text,x,y,idx);}
|
6
|
-
var originalX=x;var originalY=y;text=RG.getTooltipTextFromDIV(text);var timers=RG.Registry.
|
6
|
+
var originalX=x;var originalY=y;text=RG.getTooltipTextFromDIV(text);var timers=RG.Registry.get('chart.tooltip.timers');if(timers&&timers.length){for(i=0;i<timers.length;++i){clearTimeout(timers[i]);}}
|
7
7
|
RG.Registry.Set('chart.tooltip.timers',[]);if(obj.get('chart.contextmenu')){RG.hideContext();}
|
8
8
|
var tooltipObj=document.createElement('DIV');tooltipObj.className=obj.get('chart.tooltips.css.class');for(var i in RGraph.tooltips.style){if(typeof i==='string'){tooltipObj.style[i]=RGraph.tooltips.style[i];}}
|
9
|
-
tooltipObj.innerHTML=text;tooltipObj.__text__=text;tooltipObj.__canvas__=obj.canvas;tooltipObj.id='__rgraph_tooltip_'+obj.canvas.id+'_'+obj.uid+'_'+idx;tooltipObj.__event__=obj.
|
9
|
+
tooltipObj.innerHTML=text;tooltipObj.__text__=text;tooltipObj.__canvas__=obj.canvas;tooltipObj.id='__rgraph_tooltip_'+obj.canvas.id+'_'+obj.uid+'_'+idx;tooltipObj.__event__=obj.get('chart.tooltips.event')||'click';tooltipObj.__object__=obj;if(typeof idx==='number'){tooltipObj.__index__=idx;origIdx=idx;}
|
10
10
|
if(obj.type==='line'||obj.type==='radar'){for(var ds=0;ds<obj.data.length;++ds){if(idx>=obj.data[ds].length){idx-=obj.data[ds].length;}else{break;}}
|
11
11
|
tooltipObj.__dataset__=ds;tooltipObj.__index2__=idx;}
|
12
12
|
document.body.appendChild(tooltipObj);var width=tooltipObj.offsetWidth;var height=tooltipObj.offsetHeight;tooltipObj.style.width=width+'px';var mouseXY=RG.getMouseXY(e);var canvasXY=RG.getCanvasXY(obj.canvas);tooltipObj.style.left=e.pageX-(parseFloat(tooltipObj.style.paddingLeft)+(width/2))+'px';tooltipObj.style.top=e.pageY-height-10+'px';if(parseFloat(tooltipObj.style.left)<=5){tooltipObj.style.left='5px';}
|
@@ -19,15 +19,15 @@ if(obj.get('chart.tooltips.effect')==='fade'){for(var i=1;i<=10;++i){(function(i
|
|
19
19
|
tooltipObj.onmousedown=function(e){e.stopPropagation();}
|
20
20
|
tooltipObj.onmouseup=function(e){e.stopPropagation();}
|
21
21
|
tooltipObj.onclick=function(e){if(e.button==0){e.stopPropagation();}}
|
22
|
-
RG.Registry.
|
22
|
+
RG.Registry.set('chart.tooltip',tooltipObj);RG.fireCustomEvent(obj,'ontooltip');};RG.getTooltipTextFromDIV=function(text)
|
23
23
|
{var result=/^id:(.*)/.exec(text);if(result&&result[1]&&document.getElementById(result[1])){text=document.getElementById(result[1]).innerHTML;}else if(result&&result[1]){text='';}
|
24
24
|
return text;};RG.getTooltipWidth=function(text,obj)
|
25
|
-
{var div=document.createElement('DIV');div.className=obj.
|
26
|
-
{var tooltip=RG.Registry.
|
27
|
-
{var tooltips=obj.
|
25
|
+
{var div=document.createElement('DIV');div.className=obj.get('chart.tooltips.css.class');div.style.paddingLeft=RG.tooltips.padding;div.style.paddingRight=RG.tooltips.padding;div.style.fontFamily=RG.tooltips.font_face;div.style.fontSize=RG.tooltips.font_size;div.style.visibility='hidden';div.style.position='absolute';div.style.top='300px';div.style.left=0;div.style.display='inline';div.innerHTML=RG.getTooltipTextFromDIV(text);document.body.appendChild(div);return div.offsetWidth;};RG.hideTooltip=RG.HideTooltip=function()
|
26
|
+
{var tooltip=RG.Registry.get('chart.tooltip');var uid=arguments[0]&&arguments[0].uid?arguments[0].uid:null;if(tooltip&&tooltip.parentNode&&(!uid||uid==tooltip.__canvas__.uid)){tooltip.parentNode.removeChild(tooltip);tooltip.style.display='none';tooltip.style.visibility='hidden';RG.Registry.Set('chart.tooltip',null);}};RG.preLoadTooltipImages=RG.PreLoadTooltipImages=function(obj)
|
27
|
+
{var tooltips=obj.get('chart.tooltips');if(RG.hasTooltips(obj)){if(obj.type=='rscatter'){tooltips=[];for(var i=0;i<obj.data.length;++i){tooltips.push(obj.data[3]);}}
|
28
28
|
for(var i=0;i<tooltips.length;++i){var div=document.createElement('DIV');div.style.position='absolute';div.style.opacity=0;div.style.top='-100px';div.style.left='-100px';div.innerHTML=tooltips[i];document.body.appendChild(div);var img_tags=div.getElementsByTagName('IMG');for(var j=0;j<img_tags.length;++j){if(img_tags&&img_tags[i]){var img=document.createElement('IMG');img.style.position='absolute';img.style.opacity=0;img.style.top='-100px';img.style.left='-100px';img.src=img_tags[i].src
|
29
29
|
document.body.appendChild(img);setTimeout(function(){document.body.removeChild(img);},250);}}
|
30
30
|
document.body.removeChild(div);}}};RG.tooltips_mousemove=RG.Tooltips_mousemove=function(obj,e)
|
31
31
|
{var shape=obj.getShape(e);var changeCursor_tooltips=false
|
32
|
-
if(shape&&typeof(shape['index'])=='number'&&obj.
|
32
|
+
if(shape&&typeof(shape['index'])=='number'&&obj.get('chart.tooltips')[shape['index']]){var text=RG.parseTooltipText(obj.get('chart.tooltips'),shape['index']);if(text){changeCursor_tooltips=true;if(obj.get('chart.tooltips.event')=='onmousemove'){if(!RG.Registry.get('chart.tooltip')||RG.Registry.get('chart.tooltip').__object__.uid!=obj.uid||RG.Registry.get('chart.tooltip').__index__!=shape['index']){RG.hideTooltip();RG.Clear(obj.canvas);RG.redraw();RG.tooltip(obj,text,e.pageX,e.pageY,shape['index']);obj.Highlight(shape);}}}}else if(shape&&typeof(shape['index'])=='number'){var text=RG.parseTooltipText(obj.get('chart.tooltips'),shape['index']);if(text){changeCursor_tooltips=true}}
|
33
33
|
return changeCursor_tooltips;};})(window,document);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Background=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.id==='string'){var id=conf.id,canvas=document.getElementById(id),parseConfObjectForOptions=true;}else{var id=conf,canvas=document.getElementById(id);}
|
4
|
-
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.type='drawing.background';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.background.
|
4
|
+
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.type='drawing.background';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.background.bars.count':null,'chart.background.bars.color1':'rgba(0,0,0,0)','chart.background.bars.color2':'rgba(0,0,0,0)','chart.background.grid':true,'chart.background.grid.color':'#ddd','chart.background.grid.linewidth':1,'chart.background.grid.vlines':true,'chart.background.grid.hlines':true,'chart.background.grid.border':true,'chart.background.grid.autofit':true,'chart.background.grid.hlines.count':5,'chart.background.grid.vlines.count':20,'chart.background.grid.dashed':false,'chart.background.grid.dotted':false,'chart.background.image':null,'chart.background.image.stretch':true,'chart.background.image.x':null,'chart.background.image.y':null,'chart.background.image.w':null,'chart.background.image.h':null,'chart.background.image.align':null,'chart.background.color':null,'chart.margin.left':25,'chart.margin.right':25,'chart.margin.top':25,'chart.margin.bottom':30,'chart.text.color':'black','chart.text.size':12,'chart.text.font':'Arial, Verdana, sans-serif','chart.text.bold':false,'chart.text.italic':false,'chart.text.accessible':true,'chart.text.accessible.overflow':'visible','chart.text.accessible.pointerevents':false,'chart.events.click':null,'chart.events.mousemove':null,'chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.event':'onclick','chart.highlight.stroke':'rgba(0,0,0,0)','chart.highlight.fill':'rgba(255,255,255,0.7)','chart.linewidth':1,'chart.title':'','chart.title.background':null,'chart.title.hpos':null,'chart.title.vpos':null,'chart.title.font':null,'chart.title.size':null,'chart.title.color':null,'chart.title.bold':null,'chart.title.italic':null,'chart.title.x':null,'chart.title.y':null,'chart.title.halign':null,'chart.title.valign':null,'chart.xaxis.title':'','chart.xaxis.title.bold':null,'chart.xaxis.title.italic':null,'chart.xaxis.title.size':null,'chart.xaxis.title.font':null,'chart.xaxis.title.color':null,'chart.xaxis.title.x':null,'chart.xaxis.title.y':null,'chart.xaxis.title.pos':null,'chart.yaxis.title':'','chart.yaxis.title.bold':null,'chart.yaxis.title.size':null,'chart.yaxis.title.font':null,'chart.yaxis.title.color':null,'chart.yaxis.title.italic':null,'chart.yaxis.title.x':null,'chart.yaxis.title.y':null,'chart.yaxis.title.pos':null,'chart.clearto':'rgba(0,0,0,0)'}
|
5
5
|
if(!this.canvas){alert('[DRAWING.BACKGROUND] No canvas support');return;}
|
6
6
|
this.$0={};if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
7
7
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa=RG.Path,pa2=RG.path2,win=window,doc=document,ma=Math
|
@@ -14,20 +14,21 @@ prop[name]=value;return this;};this.get=this.Get=function(name)
|
|
14
14
|
{if(name.substr(0,6)!='chart.'){name='chart.'+name;}
|
15
15
|
while(name.match(/([A-Z])/)){name=name.replace(/([A-Z])/,'.'+RegExp.$1.toLowerCase());}
|
16
16
|
return prop[name.toLowerCase()];};this.draw=this.Draw=function()
|
17
|
-
{RG.fireCustomEvent(this,'onbeforedraw');this.
|
17
|
+
{RG.fireCustomEvent(this,'onbeforedraw');this.marginLeft=prop['chart.margin.left'];this.marginRight=prop['chart.margin.right'];this.marginTop=prop['chart.margin.top'];this.marginBottom=prop['chart.margin.bottom'];if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
|
18
18
|
RG.drawBackgroundImage(this);RG.Background.draw(this);RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
19
19
|
RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
20
20
|
{func(this);return this;};this.getObjectByXY=function(e)
|
21
21
|
{if(this.getShape(e)){return this;}};this.getShape=function(e)
|
22
|
-
{var mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];if(mouseX>=this.
|
22
|
+
{var mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];if(mouseX>=this.marginLeft&&mouseX<=(ca.width-this.marginRight)&&mouseY>=this.marginTop&&mouseY<=(ca.height-this.marginBottom)){var tooltip=prop['chart.tooltips']?prop['chart.tooltips'][0]:null
|
23
23
|
return{0:this,1:0,2:tooltip,'object':this,'index':0,'tooltip':tooltip};}
|
24
24
|
return null;};this.highlight=this.Highlight=function(shape)
|
25
|
-
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,'b r % % % % f % s %',prop['chart.
|
26
|
-
{if(this.original_colors.length===0){this.original_colors['chart.
|
27
|
-
prop['chart.
|
25
|
+
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,'b r % % % % f % s %',prop['chart.margin.left'],prop['chart.margin.top'],ca.width-prop['chart.margin.left']-prop['chart.margin.right'],ca.height-prop['chart.margin.top']-prop['chart.margin.bottom'],prop['chart.highlight.fill'],prop['chart.highlight.stroke']);}}};this.parseColors=function()
|
26
|
+
{if(this.original_colors.length===0){this.original_colors['chart.background.color']=RG.arrayClone(prop['chart.background.color']);this.original_colors['chart.background.grid.color']=RG.arrayClone(prop['chart.background.grid.color']);this.original_colors['chart.highlight.stroke']=RG.arrayClone(prop['chart.highlight.stroke']);this.original_colors['chart.highlight.fill']=RG.arrayClone(prop['chart.highlight.fill']);}
|
27
|
+
prop['chart.background.color']=this.parseSingleColorForGradient(prop['chart.background.color']);prop['chart.background.grid.color']=this.parseSingleColorForGradient(prop['chart.background.grid.color']);prop['chart.highlight.stroke']=this.parseSingleColorForGradient(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);};this.reset=function()
|
28
28
|
{};this.parseSingleColorForGradient=function(color)
|
29
29
|
{if(!color){return color;}
|
30
|
-
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){
|
30
|
+
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
31
|
+
var parts=RegExp.$1.split(':'),grad=co.createLinearGradient(this.marginLeft,this.marginTop,ca.width-this.marginRight,ca.height-this.marginRight),diff=1/(parts.length-1);for(var j=0;j<parts.length;j+=1){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
31
32
|
return grad?grad:color;};this.on=function(type,func)
|
32
33
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
33
34
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Circle=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.x==='number'&&typeof conf.y==='number'&&typeof conf.radius==='number'&&typeof conf.id==='string'){var id=conf.id,canvas=document.getElementById(id),x=conf.x,y=conf.y,radius=conf.radius,parseConfObjectForOptions=true;}else{var id=conf,canvas=document.getElementById(id),x=arguments[1],y=arguments[2],radius=arguments[3];}
|
4
|
-
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.centerx=x;this.centery=y;this.radius=radius;this.type='drawing.circle';this.isRGraph=true;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.
|
4
|
+
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.centerx=x;this.centery=y;this.radius=radius;this.type='drawing.circle';this.isRGraph=true;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.colors.stroke':'rgba(0,0,0,0)','chart.colors.fill':'red','chart.events.click':null,'chart.events.mousemove':null,'chart.shadow':false,'chart.shadow.color':'gray','chart.shadow.offsetx':3,'chart.shadow.offsety':3,'chart.shadow.blur':5,'chart.highlight.style':null,'chart.highlight.stroke':'black','chart.highlight.fill':'rgba(255,255,255,0.7)','chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.event':'onclick','chart.linewidth':1,'chart.clearto':'rgba(0,0,0,0)'}
|
5
5
|
if(!this.canvas){alert('[DRAWING.CIRCLE] No canvas support');return;}
|
6
6
|
this.coords=[[this.centerx,this.centery,this.radius]];this.$0={};if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
7
7
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa2=RG.path2,win=window,doc=document,ma=Math;if(RG.Effects&&typeof RG.Effects.decorate==='function'){RG.Effects.decorate(this);}
|
@@ -15,18 +15,19 @@ while(name.match(/([A-Z])/)){name=name.replace(/([A-Z])/,'.'+RegExp.$1.toLowerCa
|
|
15
15
|
return prop[name.toLowerCase()];};this.draw=this.Draw=function()
|
16
16
|
{RG.fireCustomEvent(this,'onbeforedraw');if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
|
17
17
|
pa2(co,'b lw %',prop['chart.linewidth']);if(prop['chart.shadow']){RG.setShadow(this,prop['chart.shadow.color'],prop['chart.shadow.offsetx'],prop['chart.shadow.offsety'],prop['chart.shadow.blur']);}
|
18
|
-
pa2(co,'b a % % % % % % f % s %',this.coords[0][0],this.coords[0][1],this.radius,0,RG.TWOPI,false,prop['chart.
|
18
|
+
pa2(co,'b a % % % % % % f % s %',this.coords[0][0],this.coords[0][1],this.radius,0,RG.TWOPI,false,prop['chart.colors.fill'],prop['chart.colors.stroke']);RG.noShadow(this);RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
19
19
|
RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
20
20
|
{func(this);return this;};this.getObjectByXY=function(e)
|
21
21
|
{if(this.getShape(e)){return this;}};this.getShape=function(e)
|
22
22
|
{var mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];if(RG.getHypLength(this.centerx,this.centery,mouseXY[0],mouseXY[1])<=this.radius){return{0:this,1:this.centerx,2:this.centery,3:this.radius,4:null,5:0,'object':this,'x':this.centerx,'y':this.centery,'radius':this.radius,'index':0,'tooltip':prop['chart.tooltips']?prop['chart.tooltips'][0]:null};}
|
23
23
|
return null;};this.highlight=this.Highlight=function(shape)
|
24
24
|
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,'b a % % % % % % f % s %',this.centerx,this.centery,this.radius+0.5,0,RG.TWOPI,false,prop['chart.highlight.fill'],prop['chart.highlight.stroke']);}}};this.parseColors=function()
|
25
|
-
{if(this.original_colors.length===0){this.original_colors['chart.
|
26
|
-
prop['chart.
|
25
|
+
{if(this.original_colors.length===0){this.original_colors['chart.colors.fill']=RG.arrayClone(prop['chart.colors.fill']);this.original_colors['chart.colors.stroke']=RG.arrayClone(prop['chart.colors.stroke']);this.original_colors['chart.highlight.stroke']=RG.arrayClone(prop['chart.highlight.stroke']);this.original_colors['chart.highlight.fill']=RG.arrayClone(prop['chart.highlight.fill']);}
|
26
|
+
prop['chart.colors.fill']=this.parseSingleColorForGradient(prop['chart.colors.fill']);prop['chart.colors.stroke']=this.parseSingleColorForGradient(prop['chart.colors.stroke']);prop['chart.highlight.stroke']=this.parseSingleColorForGradient(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);};this.reset=function()
|
27
27
|
{};this.parseSingleColorForGradient=function(color)
|
28
28
|
{if(!color){return color;}
|
29
|
-
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){
|
29
|
+
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
30
|
+
var parts=RegExp.$1.split(':');var grad=co.createRadialGradient(this.centerx,this.centery,0,this.centerx,this.centery,this.radius),diff=1/(parts.length-1);for(var j=0;j<parts.length;j+=1){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
30
31
|
return grad?grad:color;};this.on=function(type,func)
|
31
32
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
32
33
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Image=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.x==='number'&&typeof conf.y==='number'&&typeof conf.src==='string'&&typeof conf.id==='string'){var id=conf.id,canvas=document.getElementById(id),x=conf.x,y=conf.y,src=conf.src,parseConfObjectForOptions=true;}else{var id=conf,canvas=document.getElementById(id),x=arguments[1],y=arguments[2],src=arguments[3];}
|
4
|
-
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.colorsParsed=false;this.canvas.__object__=this;this.alignmentProcessed=false;this.original_colors=[];this.firstDraw=true;this.x=x;this.y=y;this.src=src;this.img=new Image();this.img.src=this.src;this.type='drawing.image';this.isRGraph=true;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.CreateUID();this.properties={'chart.src':null,'chart.width':null,'chart.height':null,'chart.halign':'left','chart.valign':'top','chart.events.mousemove':null,'chart.events.click':null,'chart.shadow':false,'chart.shadow.color':'gray','chart.shadow.offsetx':3,'chart.shadow.offsety':3,'chart.shadow.blur':5,'chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.css.class':'RGraph_tooltip','chart.tooltips.event':'onclick','chart.highlight.stroke':'rgba(0,0,0,0)','chart.highlight.fill':'rgba(255,255,255,0.7)','chart.alpha':1,'chart.border':false,'chart.border.color':'black','chart.border.linewidth':1,'chart.border.radius':0,'chart.background.color':'rgba(0,0,0,0)','chart.clearto':'rgba(0,0,0,0)'}
|
4
|
+
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.colorsParsed=false;this.canvas.__object__=this;this.alignmentProcessed=false;this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.x=x;this.y=y;this.src=src;this.img=new Image();this.img.src=this.src;this.type='drawing.image';this.isRGraph=true;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.CreateUID();this.properties={'chart.src':null,'chart.width':null,'chart.height':null,'chart.halign':'left','chart.valign':'top','chart.events.mousemove':null,'chart.events.click':null,'chart.shadow':false,'chart.shadow.color':'gray','chart.shadow.offsetx':3,'chart.shadow.offsety':3,'chart.shadow.blur':5,'chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.css.class':'RGraph_tooltip','chart.tooltips.event':'onclick','chart.highlight.stroke':'rgba(0,0,0,0)','chart.highlight.fill':'rgba(255,255,255,0.7)','chart.colors.alpha':1,'chart.border':false,'chart.border.color':'black','chart.border.linewidth':1,'chart.border.radius':0,'chart.background.color':'rgba(0,0,0,0)','chart.clearto':'rgba(0,0,0,0)'}
|
5
5
|
if(!this.canvas){alert('[DRAWING.IMAGE] No canvas support');return;}
|
6
6
|
this.coords=[];this.$0={};if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
7
7
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa2=RG.path2,win=window,doc=document,ma=Math
|
@@ -21,14 +21,14 @@ if(obj.properties['chart.valign']==='center'){obj.y-=customWidthHeight?(obj.prop
|
|
21
21
|
this.alignmentProcessed=true;}}
|
22
22
|
if(this.img.complete||this.img.readyState===4){this.img.onload();}
|
23
23
|
if(prop['chart.shadow']){RG.setShadow(this,prop['chart.shadow.color'],prop['chart.shadow.offsetx'],prop['chart.shadow.offsety'],prop['chart.shadow.blur']);}
|
24
|
-
var oldAlpha=co.globalAlpha;co.globalAlpha=prop['chart.alpha'];if(prop['chart.border']){co.strokeStyle=prop['chart.border.color'];co.lineWidth=prop['chart.border.linewidth'];var borderRadius=0;if(this.width||this.height){borderRadius=ma.min(this.width/2,this.height/2)}
|
24
|
+
var oldAlpha=co.globalAlpha;co.globalAlpha=prop['chart.colors.alpha'];if(prop['chart.border']){co.strokeStyle=prop['chart.border.color'];co.lineWidth=prop['chart.border.linewidth'];var borderRadius=0;if(this.width||this.height){borderRadius=ma.min(this.width/2,this.height/2)}
|
25
25
|
if((prop['chart.width']/2)>borderRadius&&(prop['chart.height']/2)>borderRadius){borderRadius=ma.min((prop['chart.width']/2),(prop['chart.height']/2))}
|
26
26
|
if(prop['chart.border.radius']<borderRadius){borderRadius=prop['chart.border.radius'];}
|
27
27
|
co.beginPath();this.roundedRect(ma.round(this.x)-ma.round(co.lineWidth/2),ma.round(this.y)-ma.round(co.lineWidth/2),(prop['chart.width']||this.img.width)+co.lineWidth,(prop['chart.height']||this.img.height)+co.lineWidth,borderRadius);}
|
28
28
|
if(borderRadius){co.save();this.drawBackgroundColor(borderRadius);co.beginPath();this.roundedRect(ma.round(this.x)-ma.round(co.lineWidth/2),ma.round(this.y)-ma.round(co.lineWidth/2),(prop['chart.width']||this.img.width)+co.lineWidth,(prop['chart.height']||this.img.height)+co.lineWidth,borderRadius);co.clip();}else{this.drawBackgroundColor(0);}
|
29
|
-
|
29
|
+
if(typeof prop['chart.height']==='number'||typeof prop['chart.width']==='number'){co.drawImage(this.img,ma.round(this.x),ma.round(this.y),prop['chart.width']||this.width,prop['chart.height']||this.height);}else{co.drawImage(this.img,ma.round(this.x),ma.round(this.y));}
|
30
30
|
if(borderRadius){co.restore();}
|
31
|
-
if(prop['chart.border']){
|
31
|
+
RG.noShadow(this);if(prop['chart.border']){co.stroke();}
|
32
32
|
co.globalAlpha=oldAlpha;this.img.onload=function()
|
33
33
|
{RG.redrawCanvas(ca);obj.coords[0]=[ma.round(obj.x),ma.round(obj.y),typeof prop['chart.width']==='number'?prop['chart.width']:this.width,typeof prop['chart.height']=='number'?prop['chart.height']:this.height];}
|
34
34
|
RG.noShadow(this);RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
@@ -38,11 +38,12 @@ RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
|
38
38
|
{var mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];if(this.coords&&this.coords[0]&&mouseXY[0]>=this.coords[0][0]&&mouseXY[0]<=(this.coords[0][0]+this.coords[0][2])&&mouseXY[1]>=this.coords[0][1]&&mouseXY[1]<=(this.coords[0][1]+this.coords[0][3])){return{0:this,1:this.coords[0][0],2:this.coords[0][1],3:this.coords[0][2],4:this.coords[0][3],5:0,'object':this,'x':this.coords[0][0],'y':this.coords[0][1],'width':this.coords[0][2],'height':this.coords[0][3],'index':0,'tooltip':prop['chart.tooltips']?prop['chart.tooltips'][0]:null};}
|
39
39
|
return null;};this.highlight=this.Highlight=function(shape)
|
40
40
|
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,['b','r',this.coords[0][0],this.coords[0][1],this.coords[0][2],this.coords[0][3],'f',prop['chart.highlight.fill'],'s',prop['chart.highlight.stroke']]);}}};this.parseColors=function()
|
41
|
-
{if(this.original_colors.length===0){this.original_colors['chart.highlight.stroke']=RG.
|
42
|
-
prop['chart.highlight.stroke']=this.parseSingleColorForGradient(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);};this.reset=function()
|
41
|
+
{if(this.original_colors.length===0){this.original_colors['chart.colors.background']=RG.arrayClone(prop['chart.colors.background']);this.original_colors['chart.highlight.stroke']=RG.arrayClone(prop['chart.highlight.stroke']);this.original_colors['chart.highlight.fill']=RG.arrayClone(prop['chart.highlight.fill']);}
|
42
|
+
prop['chart.colors.background']=this.parseSingleColorForGradient(prop['chart.colors.background']);prop['chart.highlight.stroke']=this.parseSingleColorForGradient(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);};this.reset=function()
|
43
43
|
{};this.parseSingleColorForGradient=function(color)
|
44
44
|
{if(!color){return color;}
|
45
|
-
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){
|
45
|
+
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
46
|
+
var parts=RegExp.$1.split(':'),grad=co.createLinearGradient(this.x,this.y,this.x+this.img.width,this.y),diff=1/(parts.length-1);grad.addColorStop(0,RG.trim(parts[0]));for(var j=1;j<parts.length;++j){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
46
47
|
return grad?grad:color;};this.on=function(type,func)
|
47
48
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
48
49
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Marker1=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.x==='number'&&typeof conf.y==='number'&&typeof conf.radius=='number'&&typeof conf.id==='string'&&typeof conf.text==='string'){var id=conf.id,canvas=document.getElementById(id),x=conf.x,y=conf.y,radius=conf.radius,text=conf.text,parseConfObjectForOptions=true;}else{var id=conf,canvas=document.getElementById(id),x=arguments[1],y=arguments[2],radius=arguments[3],text=arguments[4];}
|
4
|
-
this.id=id;this.canvas=canvas;this.context=this.canvas.getContext("2d");this.colorsParsed=false;this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.centerx=x;this.centery=y;this.radius=radius;this.text=text;this.type='drawing.marker1';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.CreateUID();this.properties={'chart.
|
4
|
+
this.id=id;this.canvas=canvas;this.context=this.canvas.getContext("2d");this.colorsParsed=false;this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.centerx=x;this.centery=y;this.radius=radius;this.text=text;this.type='drawing.marker1';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.CreateUID();this.properties={'chart.colors.stroke':'black','chart.colors.fill':'white','chart.linewidth':2,'chart.text.color':'black','chart.text.size':12,'chart.text.font':'Arial, Verdana, sans-serif','chart.text.bold':false,'chart.text.italic':false,'chart.text.accessible':true,'chart.text.accessible.overflow':'visible','chart.text.accessible.pointerevents':false,'chart.events.click':null,'chart.events.mousemove':null,'chart.shadow':true,'chart.shadow.color':'#aaa','chart.shadow.offsetx':0,'chart.shadow.offsety':0,'chart.shadow.blur':15,'chart.highlight.stroke':'rgba(0,0,0,0)','chart.highlight.fill':'rgba(255,0,0,0.7)','chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.event':'onclick','chart.align':'center','chart.clearto':'rgba(0,0,0,0)'}
|
5
5
|
if(!this.canvas){alert('[DRAWING.MARKER1] No canvas support');return;}
|
6
6
|
this.$0={};this.coords=[];this.coordsText=[];if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
7
7
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa2=RG.path2,win=window,doc=document,ma=Math
|
@@ -17,7 +17,7 @@ return prop[name.toLowerCase()];};this.draw=this.Draw=function()
|
|
17
17
|
{RG.FireCustomEvent(this,'onbeforedraw');var r=this.radius;if(prop['chart.align']=='left'){this.markerCenterx=this.centerx-r-r-3;this.markerCentery=this.centery-r-r-3;}else if(prop['chart.align']=='right'){this.markerCenterx=this.centerx+r+r+3;this.markerCentery=this.centery-r-r-3;}else{this.markerCenterx=this.centerx;this.markerCentery=this.centery-r-r-3;}
|
18
18
|
if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
|
19
19
|
this.coordsText=[];pa2(co,['b','lw',prop['chart.linewidth']]);if(prop['chart.shadow']){RG.setShadow(this,prop['chart.shadow.color'],prop['chart.shadow.offsetx'],prop['chart.shadow.offsety'],prop['chart.shadow.blur']);}
|
20
|
-
this.drawMarker();pa2(co,['c','s',prop['chart.
|
20
|
+
this.drawMarker();pa2(co,['c','s',prop['chart.colors.stroke'],'f',prop['chart.colors.fill']]);RG.noShadow(this);var textConf=RG.getTextConf({object:this,prefix:'chart.text'});co.fillStyle=prop['chart.text.color'];RG.text2(this,{font:textConf.font,size:textConf.size,color:textConf.color,bold:textConf.bold,italic:textConf.italic,x:this.coords[0][0]-1,y:this.coords[0][1]-1,text:this.text,valign:'center',halign:'center',tag:'labels'});RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
21
21
|
RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
22
22
|
{func(this);return this;};this.getObjectByXY=function(e)
|
23
23
|
{if(this.getShape(e)){return this;}};this.getShape=function(e)
|
@@ -26,11 +26,12 @@ return null;};this.highlight=this.Highlight=function(shape)
|
|
26
26
|
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{co.beginPath();co.strokeStyle=prop['chart.highlight.stroke'];co.fillStyle=prop['chart.highlight.fill'];this.drawMarker();co.closePath();co.stroke();co.fill();}}};this.drawMarker=this.DrawMarker=function()
|
27
27
|
{var r=this.radius;if(prop['chart.align']==='left'){var x=this.markerCenterx,y=this.markerCentery;pa2(co,['a',x,y,r,RG.HALFPI,RG.TWOPI,false]);pa2(co,['qc',x+r,y+r,x+r+r,y+r+r]);pa2(co,['qc',x+r,y+r,x,y+r]);}else if(prop['chart.align']==='right'){var x=this.markerCenterx,y=this.markerCentery;pa2(co,['a',x,y,r,RG.HALFPI,RG.PI,true]);pa2(co,['qc',x-r,y+r,x-r-r,y+r+r]);pa2(co,['qc',x-r,y+r,x,y+r]);}else{var x=this.markerCenterx,y=this.markerCentery;pa2(co,['a',x,y,r,RG.HALFPI/2,RG.PI-(RG.HALFPI/2),true]);pa2(co,['qc',x,y+r+(r/4),x,y+r+r-2]);pa2(co,['qc',x,y+r+(r/4),x+(ma.cos(RG.HALFPI/2)*r),y+(ma.sin(RG.HALFPI/2)*r)]);}
|
28
28
|
this.coords[0]=[x,y,r];};this.parseColors=function()
|
29
|
-
{if(this.original_colors.length===0){this.original_colors['chart.
|
30
|
-
prop['chart.
|
29
|
+
{if(this.original_colors.length===0){this.original_colors['chart.colors.fill']=RG.arrayClone(prop['chart.colors.fill']);this.original_colors['chart.colors.stroke']=RG.arrayClone(prop['chart.colors.stroke']);this.original_colors['chart.highlight.fill']=RG.arrayClone(prop['chart.highlight.fill']);this.original_colors['chart.highlight.stroke']=RG.arrayClone(prop['chart.highlight.stroke']);this.original_colors['chart.text.color']=RG.arrayClone(prop['chart.text.color']);}
|
30
|
+
prop['chart.colors.fill']=this.parseSingleColorForGradient(prop['chart.colors.fill']);prop['chart.colors.stroke']=this.parseSingleColorForGradient(prop['chart.colors.stroke']);prop['chart.highlight.stroke']=this.parseSingleColorForGradient(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);prop['chart.text.color']=this.parseSingleColorForGradient(prop['chart.text.color']);};this.reset=function()
|
31
31
|
{};this.parseSingleColorForGradient=function(color)
|
32
32
|
{if(!color||typeof(color)!='string'){return color;}
|
33
|
-
if(color.match(/^gradient\((.*)\)$/i)){
|
33
|
+
if(color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
34
|
+
var parts=RegExp.$1.split(':'),grad=co.createRadialGradient(this.markerCenterx,this.markerCentery,0,this.markerCenterx,this.markerCentery,this.radius),diff=1/(parts.length-1);grad.addColorStop(0,RG.trim(parts[0]));for(var j=1;j<parts.length;++j){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
34
35
|
return grad?grad:color;};this.on=function(type,func)
|
35
36
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
36
37
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Marker2=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.x==='number'&&typeof conf.y==='number'&&typeof conf.id==='string'&&typeof conf.text==='string'){var id=conf.id,canvas=document.getElementById(id),x=conf.x,y=conf.y,text=conf.text,parseConfObjectForOptions=true;}else{var id=conf,canvas=document.getElementById(id),x=arguments[1],y=arguments[2],text=arguments[3];}
|
4
4
|
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d')
|
5
|
-
this.colorsParsed=false;this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.x=x;this.y=y;this.text=text;this.type='drawing.marker2';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.CreateUID();this.properties={'chart.
|
5
|
+
this.colorsParsed=false;this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.x=x;this.y=y;this.text=text;this.type='drawing.marker2';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.CreateUID();this.properties={'chart.colors.stroke':'black','chart.colors.fill':'white','chart.text.color':'black','chart.text.size':12,'chart.text.font':'Arial, Verdana, sans-serif','chart.text.bold':false,'chart.text.italic':false,'chart.text.accessible':true,'chart.text.accessible.overflow':'visible','chart.text.accessible.pointerevents':false,'chart.events.click':null,'chart.events.mousemove':null,'chart.shadow':true,'chart.shadow.color':'gray','chart.shadow.offsetx':3,'chart.shadow.offsety':3,'chart.shadow.blur':5,'chart.highlight.style':null,'chart.highlight.stroke':'rgba(0,0,0,0)','chart.highlight.fill':'#fcc','chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.event':'onclick','chart.voffset':20,'chart.clearto':'rgba(0,0,0,0)'}
|
6
6
|
if(!this.canvas){alert('[DRAWING.MARKER2] No canvas support');return;}
|
7
7
|
this.coords=[];this.coordsText=[];this.$0={};if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
8
8
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa2=RG.path2,win=window,doc=document,ma=Math
|
@@ -17,19 +17,20 @@ while(name.match(/([A-Z])/)){name=name.replace(/([A-Z])/,'.'+RegExp.$1.toLowerCa
|
|
17
17
|
return prop[name.toLowerCase()];};this.draw=this.Draw=function()
|
18
18
|
{co.lineWidth=1;RG.fireCustomEvent(this,'onbeforedraw');this.metrics=RG.measureText(this.text,prop['chart.text.bold'],prop['chart.text.font'],prop['chart.text.size']);if(this.x+this.metrics[0]>=ca.width){this.alignRight=true;}
|
19
19
|
if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
|
20
|
-
var x=this.alignRight?this.x-this.metrics[0]-6:this.x,y=this.y-6-prop['chart.voffset']-this.metrics[1],width=this.metrics[0]+6,height=this.metrics[1]
|
21
|
-
co.strokeStyle=prop['chart.
|
20
|
+
var x=this.alignRight?this.x-this.metrics[0]-6:this.x,y=this.y-6-prop['chart.voffset']-this.metrics[1],width=this.metrics[0]+6,height=this.metrics[1];this.coords[0]=[x,y,width,height];this.coordsText=[];co.lineWidth=prop['chart.linewidth'];if(prop['chart.shadow']){RG.setShadow(this,prop['chart.shadow.color'],prop['chart.shadow.offsetx'],prop['chart.shadow.offsety'],prop['chart.shadow.blur']);}
|
21
|
+
co.strokeStyle=prop['chart.colors.stroke'];co.fillStyle=prop['chart.colors.fill'];co.strokeRect(x+(this.alignRight?width:0),y,0,height+prop['chart.voffset']-6);co.strokeRect(x,y,width,height);co.fillRect(x,y,width,height);RG.noShadow(this);co.fillStyle=prop['chart.text.color'];RG.text2(this,{font:prop['chart.text.font'],size:prop['chart.text.size'],color:prop['chart.text.color'],bold:prop['chart.text.bold'],italic:prop['chart.text.italic'],x:ma.round(this.x)-(this.alignRight?this.metrics[0]+3:-3),y:y+(height/2),text:this.text,valign:'center',halign:'left',tag:'labels'});this.coords[0].push([x,y,width,height]);RG.noShadow(this);co.textBaseline='alphabetic';RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
22
22
|
RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
23
23
|
{func(this);return this;};this.getObjectByXY=function(e)
|
24
24
|
{if(this.getShape(e)){return this;}};this.getShape=function(e)
|
25
25
|
{var mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];if(mouseX>=this.coords[0][0]&&mouseX<=(this.coords[0][0]+this.coords[0][2])){if(mouseY>=this.coords[0][1]&&mouseY<=(this.coords[0][1]+this.coords[0][3])){return{0:this,1:this.coords[0][0],2:this.coords[0][1],3:this.coords[0][2],4:this.coords[0][3],5:0,'object':this,'x':this.coords[0][0],'y':this.coords[0][1],'width':this.coords[0][2],'height':this.coords[0][3],'index':0,'tooltip':prop['chart.tooltips']?prop['chart.tooltips'][0]:null};}}
|
26
26
|
return null;};this.highlight=this.Highlight=function(shape)
|
27
|
-
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,['b','r',this.coords[0][0],this.coords[0][1],this.coords[0][2],this.coords[0][3],'f',prop['chart.highlight.fill'],'s',prop['chart.highlight.stroke']]);}}};this.parseColors=function()
|
28
|
-
{if(this.original_colors.length===0){this.original_colors['chart.
|
29
|
-
prop['chart.
|
27
|
+
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,['b','r',this.coords[0][0],this.coords[0][1],this.coords[0][2],this.coords[0][3],'f',prop['chart.highlight.fill'],'s',prop['chart.highlight.stroke']]);pa2(co,'b r % % % % f % s %',this.coords[0][0],this.coords[0][1],this.coords[0][2],this.coords[0][3],prop['chart.highlight.fill'],prop['chart.highlight.stroke']);}}};this.parseColors=function()
|
28
|
+
{if(this.original_colors.length===0){this.original_colors['chart.colors.fill']=RG.arrayClone(prop['chart.colors.fill']);this.original_colors['chart.colors.stroke']=RG.arrayClone(prop['chart.colors.stroke']);this.original_colors['chart.highlight.fill']=RG.arrayClone(prop['chart.highlight.fill']);this.original_colors['chart.highlight.stroke']=RG.arrayClone(prop['chart.highlight.stroke']);this.original_colors['chart.text.color']=RG.arrayClone(prop['chart.text.color']);}
|
29
|
+
prop['chart.colors.fill']=this.parseSingleColorForGradient(prop['chart.colors.fill']);prop['chart.colors.stroke']=this.parseSingleColorForGradient(prop['chart.colors.stroke']);prop['chart.highlight.stroke']=this.parseSingleColorForGradient(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);prop['chart.text.color']=this.parseSingleColorForGradient(prop['chart.text.color']);};this.reset=function()
|
30
30
|
{};this.parseSingleColorForGradient=function(color)
|
31
31
|
{if(!color){return color;}
|
32
|
-
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){
|
32
|
+
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
33
|
+
var parts=RegExp.$1.split(':'),grad=co.createLinearGradient(this.x,this.y,this.x+this.metrics[0],this.y),diff=1/(parts.length-1);grad.addColorStop(0,RG.trim(parts[0]));for(var j=1;j<parts.length;++j){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
33
34
|
return grad?grad:color;};this.on=function(type,func)
|
34
35
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
35
36
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Marker3=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.x==='number'&&typeof conf.y==='number'&&typeof conf.id==='string'&&typeof conf.radius==='number'){var id=conf.id,canvas=document.getElementById(id),x=conf.x,y=conf.y,radius=conf.radius,parseConfObjectForOptions=true;}else{var id=conf,canvas=document.getElementById(id),x=arguments[1],y=arguments[2],radius=arguments[3];}
|
4
4
|
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d')
|
5
|
-
this.colorsParsed=false;this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.actualRadius=0;this.alpha=1;this.centerx=x;this.centery=y;this.radius=radius;this.type='drawing.marker3';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.
|
5
|
+
this.colorsParsed=false;this.canvas.__object__=this;this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.actualRadius=0;this.alpha=1;this.centerx=x;this.centery=y;this.radius=radius;this.type='drawing.marker3';this.isRGraph=true;this.uid=RGraph.CreateUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.colors.fill':'white','chart.delay':50,'chart.events.click':null,'chart.events.mousemove':null,'chart.highlight.fill':'rgba(255,0,0,1.0)','chart.tooltips':null,'chart.tooltips.highlight':true,'chart.tooltips.event':'onclick','chart.text.accessible':true,'chart.text.accessible.overflow':'visible','chart.text.accessible.pointerevents':false,'chart.clearto':'rgba(0,0,0,0)'}
|
6
6
|
if(!this.canvas){alert('[DRAWING.MARKER3] No canvas support');return;}
|
7
7
|
this.coords=[];this.coordsText=[];this.$0={};if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
8
8
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa2=RG.path2,win=window,doc=document,ma=Math;if(RG.Effects&&typeof RG.Effects.decorate==='function'){RG.Effects.decorate(this);}
|
@@ -14,7 +14,7 @@ prop[name]=value;return this;};this.get=this.Get=function(name)
|
|
14
14
|
{if(name.substr(0,6)!='chart.'){name='chart.'+name;}
|
15
15
|
while(name.match(/([A-Z])/)){name=name.replace(/([A-Z])/,'.'+RegExp.$1.toLowerCase());}
|
16
16
|
return prop[name.toLowerCase()];};this.draw=this.Draw=function()
|
17
|
-
{co.globalAlpha=this.alpha;pa2(co,['b','a',this.centerx,this.centery,this.actualRadius,0,2*Math.PI,false,'a',this.centerx,this.centery,ma.max(this.actualRadius-8,0),2*Math.PI,0,true,'f',prop['chart.
|
17
|
+
{co.globalAlpha=this.alpha;pa2(co,['b','a',this.centerx,this.centery,this.actualRadius,0,2*Math.PI,false,'a',this.centerx,this.centery,ma.max(this.actualRadius-8,0),2*Math.PI,0,true,'f',prop['chart.colors.fill']]);this.alpha=this.actualRadius?1-((this.actualRadius*0.75)/this.radius):1;co.globalAlpha=1;if(this.actualRadius<this.radius){this.actualRadius+=2;}else if(this.actualRadius>=this.radius){this.actualRadius=0;this.alpha=1;}
|
18
18
|
if(!this.TIMER){var obj=this;setInterval(function()
|
19
19
|
{RG.redrawCanvas(ca);},prop['chart.delay']);this.TIMER=true;}
|
20
20
|
RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
@@ -24,11 +24,12 @@ RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
|
24
24
|
{var mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];if(RG.getHypLength(this.centerx,this.centery,mouseXY[0],mouseXY[1])<=this.radius){return{0:this,1:this.centerx,2:this.centery,3:this.radius,4:null,5:0,'object':this,'x':this.centerx,'y':this.centery,'radius':this.radius,'index':0,'tooltip':prop['chart.tooltips']?prop['chart.tooltips'][0]:null};}
|
25
25
|
return null;};this.highlight=this.Highlight=function(shape)
|
26
26
|
{if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,['b','r',this.coords[0][0],this.coords[0][1],this.coords[0][2],this.coords[0][3],'f',prop['chart.highlight.fill'],'s',prop['chart.highlight.stroke']]);}}};this.parseColors=function()
|
27
|
-
{if(this.original_colors.length===0){this.original_colors['chart.
|
28
|
-
prop['chart.
|
27
|
+
{if(this.original_colors.length===0){this.original_colors['chart.colors.fill']=RG.arrayClone(prop['chart.colors.fill']);this.original_colors['chart.highlight.fill']=RG.arrayClone(prop['chart.highlight.fill']);}
|
28
|
+
prop['chart.colors.fill']=this.parseSingleColorForGradient(prop['chart.colors.fill']);prop['chart.highlight.fill']=this.parseSingleColorForGradient(prop['chart.highlight.fill']);};this.reset=function()
|
29
29
|
{};this.parseSingleColorForGradient=function(color)
|
30
30
|
{if(!color){return color;}
|
31
|
-
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){
|
31
|
+
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
32
|
+
var parts=RegExp.$1.split(':'),grad=co.createRadialGradient(this.centerx,this.centery,0,this.centerx,this.centery,this.radius),diff=1/(parts.length-1);for(var j=0;j<parts.length;j+=1){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
32
33
|
return grad?grad:color;};this.on=function(type,func)
|
33
34
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
34
35
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
RGraph=window.RGraph||{isRGraph:true};RGraph.Drawing=RGraph.Drawing||{};RGraph.Drawing.Poly=function(conf)
|
3
3
|
{if(typeof conf==='object'&&typeof conf.coords==='object'&&typeof conf.id==='string'){var id=conf.id,coords=conf.coords,parseConfObjectForOptions=true;}else{var id=conf,coords=arguments[1];}
|
4
|
-
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.colorsParsed=false;this.canvas.__object__=this;this.coords=coords;this.coordsText=[];this.original_colors=[];this.firstDraw=true;this.type='drawing.poly';this.isRGraph=true;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.linewidth':1,'chart.
|
4
|
+
this.id=id;this.canvas=document.getElementById(this.id);this.context=this.canvas.getContext('2d');this.colorsParsed=false;this.canvas.__object__=this;this.coords=coords;this.coordsText=[];this.original_colors=[];this.firstDraw=true;this.propertyNameAliases={};this.type='drawing.poly';this.isRGraph=true;this.uid=RGraph.createUID();this.canvas.uid=this.canvas.uid?this.canvas.uid:RGraph.createUID();this.properties={'chart.linewidth':1,'chart.colors.stroke':'black','chart.colors.fill':'red','chart.events.click':null,'chart.events.mousemove':null,'chart.tooltips':null,'chart.tooltips.override':null,'chart.tooltips.effect':'fade','chart.tooltips.css.class':'RGraph_tooltip','chart.tooltips.event':'onclick','chart.tooltips.highlight':true,'chart.highlight.stroke':'rgba(0,0,0,0)','chart.highlight.fill':'rgba(255,255,255,0.7)','chart.shadow':false,'chart.shadow.color':'rgba(0,0,0,0.2)','chart.shadow.offsetx':3,'chart.shadow.offsety':3,'chart.shadow.blur':5,'chart.clearto':'rgba(0,0,0,0)'}
|
5
5
|
if(!this.canvas){alert('[DRAWING.POLY] No canvas support');return;}
|
6
6
|
this.$0={};if(!this.canvas.__rgraph_aa_translated__){this.context.translate(0.5,0.5);this.canvas.__rgraph_aa_translated__=true;}
|
7
7
|
var RG=RGraph,ca=this.canvas,co=ca.getContext('2d'),prop=this.properties,pa2=RG.path2,win=window,doc=document,ma=Math;if(RG.Effects&&typeof RG.Effects.decorate==='function'){RG.Effects.decorate(this);}
|
@@ -15,7 +15,7 @@ while(name.match(/([A-Z])/)){name=name.replace(/([A-Z])/,'.'+RegExp.$1.toLowerCa
|
|
15
15
|
return prop[name.toLowerCase()];};this.draw=this.Draw=function()
|
16
16
|
{RG.fireCustomEvent(this,'onbeforedraw');if(!this.colorsParsed){this.parseColors();this.colorsParsed=true;}
|
17
17
|
this.coordsText=[];if(prop['chart.shadow']){co.shadowColor=prop['chart.shadow.color'];co.shadowOffsetX=prop['chart.shadow.offsetx'];co.shadowOffsetY=prop['chart.shadow.offsety'];co.shadowBlur=prop['chart.shadow.blur'];}
|
18
|
-
co.strokeStyle=prop['chart.
|
18
|
+
co.strokeStyle=prop['chart.colors.stroke'];co.fillStyle=prop['chart.colors.fill'];this.drawPoly();co.lineWidth=prop['chart.linewidth'];RG.noShadow(this);RG.installEventListeners(this);if(this.firstDraw){this.firstDraw=false;RG.fireCustomEvent(this,'onfirstdraw');this.firstDrawFunc();}
|
19
19
|
RG.fireCustomEvent(this,'ondraw');return this;};this.exec=function(func)
|
20
20
|
{func(this);return this;};this.getObjectByXY=function(e)
|
21
21
|
{if(this.getShape(e)){return this;}};this.drawPoly=this.DrawPoly=function()
|
@@ -24,11 +24,12 @@ pa2(co,['lw',prop['chart.linewidth'],'c','f',co.fillStyle,'s',co.strokeStyle]);}
|
|
24
24
|
{var coords=this.coords,mouseXY=RG.getMouseXY(e),mouseX=mouseXY[0],mouseY=mouseXY[1];var old_strokestyle=co.strokeStyle,old_fillstyle=co.fillStyle;co.beginPath();co.strokeStyle='rgba(0,0,0,0)';co.fillStyle='rgba(0,0,0,0)';this.drawPoly();co.strokeStyle=old_strokestyle;co.fillStyle=old_fillstyle;if(co.isPointInPath(mouseX,mouseY)){return{0:this,1:this.coords,2:0,'object':this,'coords':this.coords,'index':0,'tooltip':prop['chart.tooltips']?prop['chart.tooltips'][0]:null};}
|
25
25
|
return null;};this.highlight=this.Highlight=function(shape)
|
26
26
|
{co.fillStyle=prop['chart.fillstyle'];if(prop['chart.tooltips.highlight']){if(typeof prop['chart.highlight.style']==='function'){(prop['chart.highlight.style'])(shape);}else{pa2(co,['b','fu',function(obj){obj.drawPoly();},'f',prop['chart.highlight.fill'],'s',prop['chart.highlight.stroke']]);}}};this.parseColors=function()
|
27
|
-
{if(this.original_colors.length===0){this.original_colors['chart.
|
28
|
-
var func=this.parseSingleColorForGradient;prop['chart.
|
27
|
+
{if(this.original_colors.length===0){this.original_colors['chart.colors.fill']=RG.array_clone(prop['chart.colors.fill']);this.original_colors['chart.colors.stroke']=RG.array_clone(prop['chart.colors.stroke']);this.original_colors['chart.highlight.stroke']=RG.array_clone(prop['chart.highlight.stroke']);this.original_colors['chart.highlight.fill']=RG.array_clone(prop['chart.highlight.fill']);}
|
28
|
+
var func=this.parseSingleColorForGradient;prop['chart.colors.fill']=func(prop['chart.colors.fill']);prop['chart.colors.stroke']=func(prop['chart.colors.stroke']);prop['chart.highlight.stroke']=func(prop['chart.highlight.stroke']);prop['chart.highlight.fill']=func(prop['chart.highlight.fill']);};this.reset=function()
|
29
29
|
{};this.parseSingleColorForGradient=function(color)
|
30
30
|
{if(!color){return color;}
|
31
|
-
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){
|
31
|
+
if(typeof color==='string'&&color.match(/^gradient\((.*)\)$/i)){if(color.match(/^gradient\(({.*})\)$/i)){return RGraph.parseJSONGradient({object:this,def:RegExp.$1});}
|
32
|
+
var parts=RegExp.$1.split(':'),grad=co.createLinearGradient(0,0,ca.width,0),diff=1/(parts.length-1);grad.addColorStop(0,RG.trim(parts[0]));for(var j=1,len=parts.length;j<len;++j){grad.addColorStop(j*diff,RG.trim(parts[j]));}}
|
32
33
|
return grad?grad:color;};this.on=function(type,func)
|
33
34
|
{if(type.substr(0,2)!=='on'){type='on'+type;}
|
34
35
|
if(typeof this[type]!=='function'){this[type]=func;}else{RG.addCustomEventListener(this,type,func);}
|