rgraph-rails 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +8 -8
  2. data/.travis.yml +0 -1
  3. data/README.md +3 -3
  4. data/lib/rgraph-rails/version.rb +1 -1
  5. data/vendor/assets/javascripts/RGraph.bar.js +239 -3764
  6. data/vendor/assets/javascripts/RGraph.bipolar.js +115 -1986
  7. data/vendor/assets/javascripts/RGraph.common.annotate.js +35 -399
  8. data/vendor/assets/javascripts/RGraph.common.context.js +30 -600
  9. data/vendor/assets/javascripts/RGraph.common.core.js +403 -5187
  10. data/vendor/assets/javascripts/RGraph.common.csv.js +19 -275
  11. data/vendor/assets/javascripts/RGraph.common.deprecated.js +35 -454
  12. data/vendor/assets/javascripts/RGraph.common.dynamic.js +84 -1189
  13. data/vendor/assets/javascripts/RGraph.common.effects.js +90 -1548
  14. data/vendor/assets/javascripts/RGraph.common.key.js +54 -755
  15. data/vendor/assets/javascripts/RGraph.common.resizing.js +37 -567
  16. data/vendor/assets/javascripts/RGraph.common.sheets.js +29 -356
  17. data/vendor/assets/javascripts/RGraph.common.tooltips.js +32 -614
  18. data/vendor/assets/javascripts/RGraph.common.zoom.js +14 -223
  19. data/vendor/assets/javascripts/RGraph.cornergauge.js +71 -0
  20. data/vendor/assets/javascripts/RGraph.drawing.background.js +35 -620
  21. data/vendor/assets/javascripts/RGraph.drawing.circle.js +35 -576
  22. data/vendor/assets/javascripts/RGraph.drawing.image.js +52 -807
  23. data/vendor/assets/javascripts/RGraph.drawing.marker1.js +41 -717
  24. data/vendor/assets/javascripts/RGraph.drawing.marker2.js +37 -668
  25. data/vendor/assets/javascripts/RGraph.drawing.marker3.js +36 -563
  26. data/vendor/assets/javascripts/RGraph.drawing.poly.js +40 -608
  27. data/vendor/assets/javascripts/RGraph.drawing.rect.js +35 -597
  28. data/vendor/assets/javascripts/RGraph.drawing.text.js +34 -642
  29. data/vendor/assets/javascripts/RGraph.drawing.xaxis.js +50 -809
  30. data/vendor/assets/javascripts/RGraph.drawing.yaxis.js +51 -856
  31. data/vendor/assets/javascripts/RGraph.fuel.js +58 -964
  32. data/vendor/assets/javascripts/RGraph.funnel.js +55 -984
  33. data/vendor/assets/javascripts/RGraph.gantt.js +75 -1241
  34. data/vendor/assets/javascripts/RGraph.gauge.js +87 -1397
  35. data/vendor/assets/javascripts/RGraph.hbar.js +143 -2376
  36. data/vendor/assets/javascripts/RGraph.hprogress.js +80 -1397
  37. data/vendor/assets/javascripts/RGraph.line.js +241 -4162
  38. data/vendor/assets/javascripts/RGraph.meter.js +74 -1278
  39. metadata +3 -30
  40. data/vendor/assets/images/bg.png +0 -0
  41. data/vendor/assets/images/bullet.png +0 -0
  42. data/vendor/assets/images/facebook-large.png +0 -0
  43. data/vendor/assets/images/google-plus-large.png +0 -0
  44. data/vendor/assets/images/logo.png +0 -0
  45. data/vendor/assets/images/meter-image-sd-needle.png +0 -0
  46. data/vendor/assets/images/meter-image-sd.png +0 -0
  47. data/vendor/assets/images/meter-sketch-needle.png +0 -0
  48. data/vendor/assets/images/meter-sketch.png +0 -0
  49. data/vendor/assets/images/odometer-background.png +0 -0
  50. data/vendor/assets/images/rgraph.jpg +0 -0
  51. data/vendor/assets/images/title.png +0 -0
  52. data/vendor/assets/images/twitter-large.png +0 -0
  53. data/vendor/assets/javascripts/RGraph.modaldialog.js +0 -301
  54. data/vendor/assets/javascripts/RGraph.odo.js +0 -1265
  55. data/vendor/assets/javascripts/RGraph.pie.js +0 -2272
  56. data/vendor/assets/javascripts/RGraph.radar.js +0 -1847
  57. data/vendor/assets/javascripts/RGraph.rose.js +0 -1877
  58. data/vendor/assets/javascripts/RGraph.rscatter.js +0 -1425
  59. data/vendor/assets/javascripts/RGraph.scatter.js +0 -2970
  60. data/vendor/assets/javascripts/RGraph.semicircularprogress.js +0 -1015
  61. data/vendor/assets/javascripts/RGraph.thermometer.js +0 -1129
  62. data/vendor/assets/javascripts/RGraph.vprogress.js +0 -1452
  63. data/vendor/assets/javascripts/RGraph.waterfall.js +0 -1252
  64. data/vendor/assets/javascripts/financial-data.js +0 -1067
  65. data/vendor/assets/stylesheets/ModalDialog.css +0 -90
  66. data/vendor/assets/stylesheets/animations.css +0 -3347
  67. data/vendor/assets/stylesheets/website.css +0 -446
@@ -1,455 +1,36 @@
1
- // version: 2016-06-04
2
- /**
3
- * o--------------------------------------------------------------------------------o
4
- * | This file is part of the RGraph package - you can learn more at: |
5
- * | |
6
- * | http://www.rgraph.net |
7
- * | |
8
- * | RGraph is dual licensed under the Open Source GPL (General Public License) |
9
- * | v2.0 license and a commercial license which means that you're not bound by |
10
- * | the terms of the GPL. The commercial license starts at just 99 GBP and |
11
- * | you can read about it here: |
12
- * | |
13
- * | http://www.rgraph.net/license |
14
- * o--------------------------------------------------------------------------------o
15
- */
16
1
 
17
- RGraph = window.RGraph || {isRGraph: true};
18
-
19
- // Module pattern
20
- (function (win, doc, undefined)
21
- {
22
- var RG = RGraph,
23
- ua = navigator.userAgent,
24
- ma = Math;
25
-
26
-
27
-
28
-
29
- /**
30
- * This is a useful function which is basically a shortcut for drawing left, right, top and bottom alligned text.
31
- *
32
- * @param object context The context
33
- * @param string font The font
34
- * @param int size The size of the text
35
- * @param int x The X coordinate
36
- * @param int y The Y coordinate
37
- * @param string text The text to draw
38
- * @parm string The vertical alignment. Can be null. "center" gives center aligned text, "top" gives top aligned text.
39
- * Anything else produces bottom aligned text. Default is bottom.
40
- * @param string The horizontal alignment. Can be null. "center" gives center aligned text, "right" gives right aligned text.
41
- * Anything else produces left aligned text. Default is left.
42
- * @param bool Whether to show a bounding box around the text. Defaults not to
43
- * @param int The angle that the text should be rotate at (IN DEGREES)
44
- * @param string Background color for the text
45
- * @param bool Whether the text is bold or not
46
- */
47
- RG.text =
48
- RG.Text = function (context, font, size, x, y, text)
49
- {
50
- // "Cache" the args as a local variable
51
- var args = arguments;
52
-
53
- // Handle undefined - change it to an empty string
54
- if ((typeof(text) != 'string' && typeof(text) != 'number') || text == 'undefined') {
55
- return;
56
- }
57
-
58
-
59
-
60
-
61
- /**
62
- * This accommodates multi-line text
63
- */
64
- if (typeof(text) == 'string' && text.match(/\r\n/)) {
65
-
66
- var dimensions = RGraph.MeasureText('M', args[11], font, size);
67
-
68
- /**
69
- * Measure the text (width and height)
70
- */
71
-
72
- var arr = text.split('\r\n');
73
-
74
- /**
75
- * Adjust the Y position
76
- */
77
-
78
- // This adjusts the initial y position
79
- if (args[6] && args[6] == 'center') y = (y - (dimensions[1] * ((arr.length - 1) / 2)));
80
-
81
- for (var i=1; i<arr.length; ++i) {
82
-
83
- RGraph.Text(context,
84
- font,
85
- size,
86
- args[9] == -90 ? (x + (size * 1.5)) : x,
87
- y + (dimensions[1] * i),
88
- arr[i],
89
- args[6] ? args[6] : null,
90
- args[7],
91
- args[8],
92
- args[9],
93
- args[10],
94
- args[11],
95
- args[12]);
96
- }
97
-
98
- // Update text to just be the first line
99
- text = arr[0];
100
- }
101
-
102
-
103
- // Accommodate MSIE
104
- if (document.all && RGraph.ISOLD) {
105
- y += 2;
106
- }
107
-
108
-
109
- context.font = (args[11] ? 'Bold ': '') + size + 'pt ' + font;
110
-
111
- var i;
112
- var origX = x;
113
- var origY = y;
114
- var originalFillStyle = context.fillStyle;
115
- var originalLineWidth = context.lineWidth;
116
-
117
- // Need these now the angle can be specified, ie defaults for the former two args
118
- if (typeof(args[6]) == 'undefined') args[6] = 'bottom'; // Vertical alignment. Default to bottom/baseline
119
- if (typeof(args[7]) == 'undefined') args[7] = 'left'; // Horizontal alignment. Default to left
120
- if (typeof(args[8]) == 'undefined') args[8] = null; // Show a bounding box. Useful for positioning during development. Defaults to false
121
- if (typeof(args[9]) == 'undefined') args[9] = 0; // Angle (IN DEGREES) that the text should be drawn at. 0 is middle right, and it goes clockwise
122
-
123
- // The alignment is recorded here for purposes of Opera compatibility
124
- if (navigator.userAgent.indexOf('Opera') != -1) {
125
- context.canvas.__rgraph_valign__ = args[6];
126
- context.canvas.__rgraph_halign__ = args[7];
127
- }
128
-
129
- // First, translate to x/y coords
130
- context.save();
131
-
132
- context.canvas.__rgraph_originalx__ = x;
133
- context.canvas.__rgraph_originaly__ = y;
134
-
135
- context.translate(x, y);
136
- x = 0;
137
- y = 0;
138
-
139
- // Rotate the canvas if need be
140
- if (args[9]) {
141
- context.rotate(args[9] / (180 / RGraph.PI));
142
- }
143
-
144
-
145
- // Vertical alignment - defaults to bottom
146
- if (args[6]) {
147
-
148
- var vAlign = args[6];
149
-
150
- if (vAlign == 'center') {
151
- context.textBaseline = 'middle';
152
- } else if (vAlign == 'top') {
153
- context.textBaseline = 'top';
154
- }
155
- }
156
-
157
-
158
- // Hoeizontal alignment - defaults to left
159
- if (args[7]) {
160
-
161
- var hAlign = args[7];
162
- var width = context.measureText(text).width;
163
-
164
- if (hAlign) {
165
- if (hAlign == 'center') {
166
- context.textAlign = 'center';
167
- } else if (hAlign == 'right') {
168
- context.textAlign = 'right';
169
- }
170
- }
171
- }
172
-
173
-
174
- context.fillStyle = originalFillStyle;
175
-
176
- /**
177
- * Draw a bounding box if requested
178
- */
179
- context.save();
180
- context.fillText(text,0,0);
181
- context.lineWidth = 1;
182
-
183
- var width = context.measureText(text).width;
184
- var width_offset = (hAlign == 'center' ? (width / 2) : (hAlign == 'right' ? width : 0));
185
- var height = size * 1.5; // !!!
186
- var height_offset = (vAlign == 'center' ? (height / 2) : (vAlign == 'top' ? height : 0));
187
- var ieOffset = RGraph.ISOLD ? 2 : 0;
188
-
189
- if (args[8]) {
190
-
191
- context.strokeRect(-3 - width_offset,
192
- 0 - 3 - height - ieOffset + height_offset,
193
- width + 6,
194
- height + 6);
195
- /**
196
- * If requested, draw a background for the text
197
- */
198
- if (args[10]) {
199
- context.fillStyle = args[10];
200
- context.fillRect(-3 - width_offset,
201
- 0 - 3 - height - ieOffset + height_offset,
202
- width + 6,
203
- height + 6);
204
- }
205
-
206
-
207
- context.fillStyle = originalFillStyle;
208
-
209
-
210
- /**
211
- * Do the actual drawing of the text
212
- */
213
- context.fillText(text,0,0);
214
- }
215
- context.restore();
216
-
217
- // Reset the lineWidth
218
- context.lineWidth = originalLineWidth;
219
-
220
- context.restore();
221
- };
222
-
223
-
224
-
225
-
226
- /**
227
- * This function returns the mouse position in relation to the canvas
228
- *
229
- * @param object e The event object.
230
- */
231
- RG.getMouseXY = function (e)
232
- {
233
- var el = (RGraph.ISOLD ? event.srcElement : e.target);
234
- var x;
235
- var y;
236
-
237
- // ???
238
- var paddingLeft = el.style.paddingLeft ? parseInt(el.style.paddingLeft) : 0;
239
- var paddingTop = el.style.paddingTop ? parseInt(el.style.paddingTop) : 0;
240
- var borderLeft = el.style.borderLeftWidth ? parseInt(el.style.borderLeftWidth) : 0;
241
- var borderTop = el.style.borderTopWidth ? parseInt(el.style.borderTopWidth) : 0;
242
-
243
- if (RGraph.ISIE8) e = event;
244
-
245
- // Browser with offsetX and offsetY
246
- if (typeof(e.offsetX) == 'number' && typeof(e.offsetY) == 'number') {
247
- x = e.offsetX;
248
- y = e.offsetY;
249
-
250
- // FF and other
251
- } else {
252
- x = 0;
253
- y = 0;
254
-
255
- while (el != document.body && el) {
256
- x += el.offsetLeft;
257
- y += el.offsetTop;
258
-
259
- el = el.offsetParent;
260
- }
261
-
262
- x = e.pageX - x;
263
- y = e.pageY - y;
264
- }
265
-
266
- return [x, y];
267
- };
268
-
269
-
270
-
271
-
272
- /**
273
- * This function attempts to "fill in" missing functions from the canvas
274
- * context object. Only two at the moment - measureText() nd fillText().
275
- *
276
- * @param object context The canvas 2D context
277
- */
278
- RG.oldBrowserCompat =
279
- RG.OldBrowserCompat = function (co)
280
- {
281
- if (!co) {
282
- return;
283
- }
284
-
285
- if (!co.measureText) {
286
-
287
- // This emulates the measureText() function
288
- co.measureText = function (text)
289
- {
290
- var textObj = document.createElement('DIV');
291
- textObj.innerHTML = text;
292
- textObj.style.position = 'absolute';
293
- textObj.style.top = '-100px';
294
- textObj.style.left = 0;
295
- document.body.appendChild(textObj);
296
-
297
- var width = {width: textObj.offsetWidth};
298
-
299
- textObj.style.display = 'none';
300
-
301
- return width;
302
- }
303
- }
304
-
305
- if (!co.fillText) {
306
- // This emulates the fillText() method
307
- co.fillText = function (text, targetX, targetY)
308
- {
309
- return false;
310
- }
311
- }
312
-
313
- // If IE8, add addEventListener()
314
- if (!co.canvas.addEventListener) {
315
- window.addEventListener = function (ev, func, bubble)
316
- {
317
- return this.attachEvent('on' + ev, func);
318
- }
319
-
320
- co.canvas.addEventListener = function (ev, func, bubble)
321
- {
322
- return this.attachEvent('on' + ev, func);
323
- }
324
- }
325
- };
326
-
327
-
328
-
329
-
330
- /**
331
- * Similar to the jQuery each() function - this lets you iterate easily over an array. The 'this' variable is set]
332
- * to the array in the callback function.
333
- *
334
- * @param array arr The array
335
- * @param function func The function to call
336
- * @param object Optionally you can specify the object that the "this" variable is set to
337
- */
338
- RG.each = function (arr, func)
339
- {
340
- for(var i=0, len=arr.length; i<len; i+=1) {
341
-
342
- if (typeof arguments[2] !== 'undefined') {
343
- var ret = func.call(arguments[2], i, arr[i]);
344
- } else {
345
- var ret = func.call(arr, i, arr[i]);
346
- }
347
-
348
- if (ret === false) {
349
- return;
350
- }
351
- }
352
- };
353
-
354
-
355
-
356
-
357
- /**
358
- * An old function the was used before all 4 gutters were added
359
- *
360
- * DEPRECATED
361
- *
362
- * @param object obj The chart object
363
- */
364
- RG.getHeight =
365
- RG.GetHeight = function (obj)
366
- {
367
- return obj.canvas.height;
368
- };
369
-
370
-
371
-
372
-
373
- /**
374
- * An old function the was used before all 4 gutters were added
375
- *
376
- * DEPRECATED
377
- *
378
- * @param object obj The chart object
379
- */
380
- RG.getWidth =
381
- RG.GetWidth = function (obj)
382
- {
383
- return obj.canvas.width;
384
- };
385
-
386
-
387
-
388
-
389
- /**
390
- * A timer function for measuring... time!
391
- *
392
- * @param string label A string to associate with this 'checkpoint'
393
- */
394
- RG.timer =
395
- RG.Timer = function (label)
396
- {
397
- if(typeof RG.TIMER_LAST_CHECKPOINT == 'undefined') {
398
-
399
- RG.TIMER_LAST_CHECKPOINT = Date.now();
400
- }
401
-
402
- var now = Date.now();
403
-
404
- console.log(label+': ' + (now - RG.TIMER_LAST_CHECKPOINT).toString());
405
-
406
- RG.TIMER_LAST_CHECKPOINT = now;
407
- };
408
-
409
-
410
-
411
-
412
- /**
413
- * If you prefer, you can use the SetConfig() method to set the configuration information
414
- * for your chart. You may find that setting the configuration this way eases reuse.
415
- *
416
- * @param object obj The graph object
417
- * @param object config The graph configuration information
418
- */
419
- RG.setConfig =
420
- RG.SetConfig = function (obj, config)
421
- {
422
- for (i in config) {
423
- if (typeof i === 'string') {
424
- obj.Set(i, config[i]);
425
- }
426
- }
427
-
428
- return obj;
429
- };
430
-
431
-
432
-
433
-
434
- // End module pattern
435
- })(window, document);
436
-
437
-
438
-
439
-
440
- /**
441
- * Checks whether strings or numbers are empty or not. It also
442
- * handles null or variables set to undefined. If a variable really
443
- * is undefined - ie it hasn't been declared at all - you need to use
444
- * "typeof variable" and check the return value - which will be undefined.
445
- *
446
- * @param mixed value The variable to check
447
- */
448
- window.$empty = function (value)
449
- {
450
- if (!value || value.length <= 0) {
451
- return true;
452
- }
453
-
454
- return false;
455
- };
2
+ RGraph=window.RGraph||{isRGraph:true};(function(win,doc,undefined)
3
+ {var RG=RGraph,ua=navigator.userAgent,ma=Math;RG.text=RG.Text=function(context,font,size,x,y,text)
4
+ {var args=arguments;if((typeof(text)!='string'&&typeof(text)!='number')||text=='undefined'){return;}
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
+ text=arr[0];}
7
+ if(document.all&&RGraph.ISOLD){y+=2;}
8
+ 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
+ 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
+ if(args[6]){var vAlign=args[6];if(vAlign=='center'){context.textBaseline='middle';}else if(vAlign=='top'){context.textBaseline='top';}}
11
+ 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=RGraph.ISOLD?2: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
+ context.fillStyle=originalFillStyle;context.fillText(text,0,0);}
14
+ context.restore();context.lineWidth=originalLineWidth;context.restore();};RG.getMouseXY=function(e)
15
+ {var el=(RGraph.ISOLD?event.srcElement: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
+ x=e.pageX-x;y=e.pageY-y;}
17
+ return[x,y];};RG.oldBrowserCompat=RG.OldBrowserCompat=function(co)
18
+ {if(!co){return;}
19
+ if(!co.measureText){co.measureText=function(text)
20
+ {var textObj=document.createElement('DIV');textObj.innerHTML=text;textObj.style.position='absolute';textObj.style.top='-100px';textObj.style.left=0;document.body.appendChild(textObj);var width={width:textObj.offsetWidth};textObj.style.display='none';return width;}}
21
+ if(!co.fillText){co.fillText=function(text,targetX,targetY)
22
+ {return false;}}
23
+ if(!co.canvas.addEventListener){window.addEventListener=function(ev,func,bubble)
24
+ {return this.attachEvent('on'+ev,func);}
25
+ co.canvas.addEventListener=function(ev,func,bubble)
26
+ {return this.attachEvent('on'+ev,func);}}};RG.each=function(arr,func)
27
+ {for(var i=0,len=arr.length;i<len;i+=1){if(typeof arguments[2]!=='undefined'){var ret=func.call(arguments[2],i,arr[i]);}else{var ret=func.call(arr,i,arr[i]);}
28
+ if(ret===false){return;}}};RG.getHeight=RG.GetHeight=function(obj)
29
+ {return obj.canvas.height;};RG.getWidth=RG.GetWidth=function(obj)
30
+ {return obj.canvas.width;};RG.timer=RG.Timer=function(label)
31
+ {if(typeof RG.TIMER_LAST_CHECKPOINT=='undefined'){RG.TIMER_LAST_CHECKPOINT=Date.now();}
32
+ var now=Date.now();console.log(label+': '+(now-RG.TIMER_LAST_CHECKPOINT).toString());RG.TIMER_LAST_CHECKPOINT=now;};RG.setConfig=RG.SetConfig=function(obj,config)
33
+ {for(i in config){if(typeof i==='string'){obj.Set(i,config[i]);}}
34
+ return obj;};})(window,document);window.$empty=function(value)
35
+ {if(!value||value.length<=0){return true;}
36
+ return false;};