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,568 +1,38 @@
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
- active = null;
26
-
27
-
28
- /**
29
- * This function can be used to allow resizing
30
- *
31
- * @param object obj Your graph object
32
- */
33
- RGraph.allowResizing =
34
- RGraph.AllowResizing = function (obj)
35
- {
36
- var ca = obj.canvas,
37
- co = obj.context,
38
- pa2 = RG.path2;
39
-
40
- ca.resizing = ca.resizing || {};
41
- ca.resizing.placeHolders = ca.resizing.placeHolders || [];
42
-
43
- /**
44
- * Store the original width/height on the canvas
45
- */
46
- if (!ca.resizing.originalw) { ca.resizing.originalw = ca.width; }
47
- if (!ca.resizing.originalh) { ca.resizing.originalh = ca.height; }
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
- // The size of the resize handle (so '15' isn't littered throughout the code)
62
- var resizeHandleSize = 15;
63
-
64
-
65
- // Add the original width and height to the canvas
66
- if ( !ca.resizing.__rgraph_original_width__
67
- || !ca.resizing.__rgraph_original_height__
68
- || !ca.resizing.__adjustX
69
- || !ca.resizing.__adjustY
70
- ) {
71
-
72
- ca.resizing.__rgraph_original_width__ = ca.width;
73
- ca.resizing.__rgraph_original_height__ = ca.height;
74
- ca.resizing.adjustX = (typeof obj.get('chart.resize.handle.adjust') == 'object' && typeof obj.get('chart.resize.handle.adjust')[0] == 'number' ? obj.Get('chart.resize.handle.adjust')[0] : 0);
75
- ca.resizing.adjustY = (typeof obj.get('chart.resize.handle.adjust') == 'object' && typeof obj.get('chart.resize.handle.adjust')[1] == 'number' ? obj.Get('chart.resize.handle.adjust')[1] : 0);
76
- ca.resizing.bgcolor = obj.get('chart.resize.handle.background') || 'rgba(0,0,0,0)';
77
- }
78
-
79
-
80
-
81
-
82
- // Draw the resize handle
83
- pa2(co,
84
- 'b m % % r % % % % f %',
85
- ca.width - resizeHandleSize - resizeHandleSize + ca.resizing.adjustX, ca.height - resizeHandleSize,
86
- ca.width - resizeHandleSize - resizeHandleSize + ca.resizing.adjustX, ca.height - resizeHandleSize + ca.resizing.adjustY, 2 * resizeHandleSize, resizeHandleSize,
87
- ca.resizing.bgcolor
88
- );
89
-
90
- // Draw the arrows
91
- pa2(co,
92
- 'b lw 1 m % % l % % m % % l % % s gray f transparent',
93
- ma.round(ca.width - (resizeHandleSize / 2) + ca.resizing.adjustX), ca.height - resizeHandleSize + ca.resizing.adjustY,
94
- ma.round(ca.width - (resizeHandleSize / 2) + ca.resizing.adjustX), ca.height + ca.resizing.adjustY,
95
- ca.width + ca.resizing.adjustX, ma.round(ca.height - (resizeHandleSize / 2) + ca.resizing.adjustY),
96
- ca.width - resizeHandleSize + ca.resizing.adjustX, ma.round(ca.height - (resizeHandleSize / 2) + ca.resizing.adjustY)
97
- );
98
-
99
- // Top arrow head
100
- 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']);
101
-
102
- // Bottom arrow head
103
- 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']);
104
-
105
- // Left arrow head
106
- 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']);
107
-
108
- // Right arrow head
109
- 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']);
110
-
111
- // Square at the centre of the arrows
112
- 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']);
113
-
114
- // Draw the "Reset" button
115
- 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']);
116
-
117
- // The vertical line at the end of the reset button
118
- 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']);
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
- /**
127
- * The code inside this if() condition only runs once due to the if() condition tests- if
128
- * the obj.rgraphResizewrapper variable exists then the code has run
129
- */
130
- if (obj.get('chart.resizable') && !ca.rgraphResizewrapper) {
131
-
132
-
133
-
134
- // ** TODO ** Needs fixing
135
- //
136
- //
137
- // Wrap the canvas
138
- // ** NEEDS FIXING **
139
- //
140
- ca.rgraphResizewrapper = $('<div id="rgraph_resize_container_' + ca.id +'"></div>').css({
141
- 'float': ca.style.cssFloat,
142
- position: 'relative'
143
- }).get(0);
144
-
145
- $(ca).wrap(ca.rgraphResizewrapper);
146
-
147
- // TODO Might need to add more properties here (eg margin, padding etc)
148
- ca.style.cssFloat = 'none';
149
- ca.style.top = 0;
150
- ca.style.left = 0;
151
-
152
-
153
-
154
- var window_onmousemove = function (e)
155
- {
156
- var ca = active,
157
- obj = ca ? ca.__object__ : null;
158
-
159
- if (ca) {
160
-
161
- e = RG.fixEventObject(e);
162
-
163
- if (ca.resizing.mousedown) {
164
-
165
- var newWidth = ca.width + (e.pageX - ca.resizing.originalx);
166
- var newHeight = ca.height + (e.pageY - ca.resizing.originaly);
167
-
168
- if ( newWidth > (ca.resizing.originalw / 2)
169
- && (typeof obj.get('resizableMaxwidth') === 'number' ? newWidth < obj.get('resizableMaxwidth') : true)
170
- ) {
171
- ca.resizing.div.style.width = newWidth + 'px';
172
- }
173
-
174
- if (newHeight > (ca.resizing.originalh / 2) && (typeof obj.get('resizableMaxheight') === 'number' ? newHeight < obj.get('resizableMaxheight') : true) ) {
175
- ca.resizing.div.style.height = newHeight + 'px';
176
- }
177
-
178
- RG.fireCustomEvent(ca.__object__, 'onresize');
179
- }
180
- }
181
- }
182
-
183
-
184
-
185
- // Install the function as an event listener - but only once
186
- if (typeof ca.rgraph_resize_window_mousemove_listener_installed != 'boolean') {
187
- window.addEventListener('mousemove', window_onmousemove, false);
188
- ca.rgraph_resize_window_mousemove_listener_installed = true;
189
- }
190
-
191
- // The window onmouseup function
192
- var MouseupFunc = function (e)
193
- {
194
- if (!ca.resizing || !ca.resizing.div || !ca.resizing.mousedown) {
195
- return;
196
- }
197
-
198
- if (ca.resizing.div) {
199
-
200
- var div = ca.resizing.div;
201
- var coords = RG.getCanvasXY(ca);
202
-
203
- var parentNode = ca.parentNode;
204
-
205
- if (ca.style.position != 'absolute') {
206
-
207
- // Create a DIV to go in the canvases place
208
- var placeHolderDIV = document.createElement('DIV');
209
- placeHolderDIV.style.width = ca.resizing.originalw + 'px';
210
- placeHolderDIV.style.height = ca.resizing.originalh + 'px';
211
-
212
- placeHolderDIV.style.display = 'inline-block'; // Added 5th Nov 2010
213
- placeHolderDIV.style.position = ca.style.position;
214
- placeHolderDIV.style.left = ca.style.left;
215
- placeHolderDIV.style.top = ca.style.top;
216
- placeHolderDIV.style.cssFloat = ca.style.cssFloat;
217
-
218
- parentNode.insertBefore(placeHolderDIV, ca);
219
- }
220
-
221
-
222
- // Now set the canvas to be positioned absolutely
223
- ca.style.backgroundColor = 'white';
224
- ca.style.position = 'absolute';
225
- ca.style.border = '1px dashed gray';
226
- ca.style.boxShadow = '2px 2px 5px #ddd';
227
-
228
-
229
- ca.style.left = 0;//(ca.resizing.originalCanvasX - 2) + 'px';
230
- ca.style.top = 0;//(ca.resizing.originalCanvasY - 2) + 'px';
231
-
232
-
233
- // Set the dimensions of the canvas using the HTML attributes
234
- ca.width = parseInt(div.style.width);
235
- ca.height = parseInt(div.style.height);
236
-
237
-
238
-
239
-
240
- // Because resizing the canvas resets any tranformation - the antialias fix needs to be reapplied.
241
- ca.getContext('2d').translate(0.5,0.5);
242
-
243
-
244
-
245
- // Reset the gradient parsing status by setting all of the color values back to their original
246
- // values before Draw was first called
247
- var objects = RG.ObjectRegistry.getObjectsByCanvasID(ca.id);
248
- for (var i=0,len=objects.length; i<len; i+=1) {
249
-
250
- RG.resetColorsToOriginalValues(objects[i]);
251
- if (typeof objects[i].reset === 'function') {
252
- objects[i].reset();
253
- }
254
- }
255
-
256
-
257
-
258
-
259
- // Kill the background cache
260
- RG.cache = [];
261
-
262
-
263
- // Fire the onresize event
264
- RG.fireCustomEvent(ca.__object__, 'onresizebeforedraw');
265
-
266
- RG.redrawCanvas(ca);
267
-
268
-
269
- // Get rid of transparent semi-opaque DIV
270
- ca.resizing.mousedown = false;
271
- div.style.display = 'none';
272
- document.body.removeChild(div);
273
- }
274
-
275
-
276
- // If there is zoom enabled in thumbnail mode, lose the zoom image
277
- if (RG.Registry.Get('chart.zoomed.div') || RGraph.Registry.Get('chart.zoomed.img')) {
278
- RG.Registry.Set('chart.zoomed.div', null);
279
- RG.Registry.Set('chart.zoomed.img', null);
280
- }
281
-
282
-
283
- // Fire the onresize event
284
- RG.FireCustomEvent(ca.__object__, 'onresizeend');
285
- };
286
-
287
-
288
- var window_onmouseup = MouseupFunc;
289
-
290
- // Install the function as an event listener - but only once
291
- if (typeof ca.rgraph_resize_window_mouseup_listener_installed != 'boolean') {
292
- window.addEventListener('mouseup', window_onmouseup, false);
293
- ca.rgraph_resize_window_mouseup_listener_installed = true;
294
- }
295
-
296
-
297
-
298
-
299
-
300
-
301
-
302
-
303
-
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
- var canvas_onmousemove = function (e)
324
- {
325
-
326
- e = RG.fixEventObject(e);
327
-
328
- var coords = RG.getMouseXY(e);
329
- var obj = e.target.__object__;
330
- var ca = e.target;
331
- var co = ca.getContext('2d');
332
- var cursor = ca.style.cursor;
333
-
334
- // Save the original cursor
335
- if (!ca.resizing.original_cursor) {
336
- ca.resizing.original_cursor = cursor;
337
- }
338
-
339
- if ( (coords[0] > (ca.width - resizeHandleSize)
340
- && coords[0] < ca.width
341
- && coords[1] > (ca.height - resizeHandleSize)
342
- && coords[1] < ca.height)) {
343
-
344
- ca.style.cursor = 'move';
345
-
346
- } else if ( coords[0] > (ca.width - resizeHandleSize - resizeHandleSize)
347
- && coords[0] < ca.width - resizeHandleSize
348
- && coords[1] > (ca.height - resizeHandleSize)
349
- && coords[1] < ca.height) {
350
-
351
- ca.style.cursor = 'pointer';
352
-
353
- } else {
354
- if (ca.resizing.original_cursor) {
355
- ca.style.cursor = ca.resizing.original_cursor;
356
- ca.resizing.original_cursor = null;
357
- } else {
358
- ca.style.cursor = 'default';
359
- }
360
- }
361
- };
362
-
363
-
364
-
365
-
366
-
367
- // Install the function as an event listener - but only once
368
- if (typeof ca.rgraph_resize_mousemove_listener_installed != 'boolean') {
369
- ca.addEventListener('mousemove', canvas_onmousemove, false);
370
- ca.rgraph_resize_mousemove_listener_installed = true;
371
- }
372
-
373
-
374
-
375
-
376
-
377
- var canvas_onmouseout = function (e)
378
- {
379
- e.target.style.cursor = 'default';
380
- e.target.title = '';
381
- };
382
-
383
- // Install the function as an event listener - but only once
384
- if (typeof ca.rgraph_resize_mouseout_listener_installed != 'boolean') {
385
- ca.addEventListener('mouseout', canvas_onmouseout, false);
386
- ca.rgraph_resize_mouseout_listener_installed = true;
387
- }
388
-
389
-
390
-
391
-
392
-
393
- var canvas_onmousedown = function (e)
394
- {
395
- e = RG.fixEventObject(e);
396
-
397
- var coords = RG.getMouseXY(e);
398
- var canvasXY = RG.getCanvasXY(e.target);
399
- var ca = e.target;
400
-
401
- /**
402
- * Set the active variable to the last canvas that was clicked on
403
- */
404
- active = ca;
405
-
406
-
407
-
408
-
409
-
410
-
411
- if ( coords[0] > (ca.width - resizeHandleSize)
412
- && coords[0] < ca.width
413
- && coords[1] > (ca.height - resizeHandleSize)
414
- && coords[1] < ca.height) {
415
-
416
- RG.fireCustomEvent(obj, 'onresizebegin');
417
-
418
- // Save the existing border
419
- if (ca.resizing.original_css_border == null) {
420
- ca.resizing.original_css_border = ca.style.border;
421
- }
422
-
423
- // Save the existing shadow
424
- if (ca.resizing.original_css_shadow == null) {
425
- ca.resizing.original_css_shadow = ca.style.boxShadow;
426
- }
427
-
428
- ca.resizing.mousedown = true;
429
-
430
-
431
- // Create the semi-opaque DIV
432
- var div = document.createElement('DIV');
433
- div.style.position = 'absolute';
434
- div.style.left = canvasXY[0] + 'px';
435
- div.style.top = canvasXY[1] + 'px';
436
- div.style.width = ca.width + 'px';
437
- div.style.height = ca.height + 'px';
438
- div.style.border = '1px dotted black';
439
- div.style.backgroundColor = 'gray';
440
- div.style.opacity = 0.5;
441
- div.__canvas__ = e.target;
442
- document.body.appendChild(div);
443
-
444
- ca.resizing.div = div;
445
- ca.resizing.placeHolders.push(div);
446
-
447
- // Hide the previous resize indicator layers. This is only necessary it seems for the Meter chart
448
- for (var i=0; i<(ca.resizing.placeHolders.length - 1); ++i) {
449
- ca.resizing.placeHolders[i].style.display = 'none';
450
- }
451
-
452
- // This is a repetition of the window.onmouseup function (No need to use DOM2 here)
453
- div.onmouseup = function (e)
454
- {
455
- MouseupFunc(e);
456
- }
457
-
458
-
459
- // No need to use DOM2 here
460
- ca.resizing.div.onmouseover = function (e)
461
- {
462
- e = RG.fixEventObject(e);
463
- e.stopPropagation();
464
- }
465
-
466
- // The mouse
467
- ca.resizing.originalx = e.pageX;
468
- ca.resizing.originaly = e.pageY;
469
-
470
- ca.resizing.originalCanvasX = RG.getCanvasXY(ca)[0];
471
- ca.resizing.originalCanvasY = RG.getCanvasXY(ca)[1];
472
- }
473
-
474
- // This facilitates the reset button
475
- if ( coords[0] > (ca.width - resizeHandleSize - resizeHandleSize)
476
- && coords[0] < ca.width - resizeHandleSize
477
- && coords[1] > (ca.height - resizeHandleSize)
478
- && coords[1] < ca.height
479
- && ca.resizing.originalw
480
- && ca.resizing.originaly) {
481
-
482
-
483
- // Fire the onresizebegin event
484
- RG.fireCustomEvent(ca.__object__, 'onresizebegin');
485
-
486
- // Restore the original width and height
487
- ca.width = ca.resizing.originalw;
488
- ca.height = ca.resizing.originalh;
489
-
490
- // TODO Need to check the parent is actually a DIV container or not?
491
-
492
- // Show the link if it exists and the display is set to none
493
- if (ca.__link__ && ca.__link__.style.display === 'none') {
494
- ca.__link__.style.display = 'inline';
495
- }
496
-
497
- if (typeof ca.parentNode.id === 'string' && ca.parentNode.id.substring(0, 24) === 'rgraph_resize_container_') {
498
- ca.parentNode.style.width = ca.resizing.originalw + 'px';
499
- ca.parentNode.style.height = ca.resizing.originalh + 'px';
500
- }
501
-
502
- // Lose the border
503
- ca.style.border = ca.resizing.original_css_border;
504
-
505
- //Lose the shadow
506
- ca.style.boxShadow = ca.resizing.original_css_shadow;
507
-
508
-
509
- // Add 1 pixel to the top/left because the border is going
510
- ca.style.left = (parseInt(ca.style.left)) + 'px';
511
- ca.style.top = (parseInt(ca.style.top)) + 'px';
512
-
513
-
514
-
515
- // Because resetting the canvas resizes it - and so loses any translation - need to reapply the
516
- // antialiasing translation
517
- ca.getContext('2d').translate(0.5,0.5);
518
-
519
-
520
- RG.fireCustomEvent(ca.__object__, 'onresizebeforedraw');
521
-
522
- // Since gradients are pre-parsed colors - this resets the colors to what they were
523
- // before the parsing.
524
- var objects = RG.ObjectRegistry.getObjectsByCanvasID(ca.id);
525
- for (var i=0; i<objects.length; i+=1) {
526
- RG.resetColorsToOriginalValues(objects[i]);
527
- if (objects[i].reset) {
528
- objects[i].reset();
529
- }
530
-
531
- RG.redrawCanvas(objects[i].canvas);
532
- }
533
-
534
-
535
- // Clear the cache so that old things (eg backgrounds) are not reused
536
- RG.cache = [];
537
-
538
-
539
-
540
-
541
-
542
-
543
- // Redraw the canvas
544
- //RG.redrawCanvas(objects[i].canvas);
545
-
546
-
547
- // Set the width and height on the DIV
548
- if (ca.resizing.div) {
549
- ca.resizing.div.style.width = ca.__original_width__ + 'px';
550
- ca.resizing.div.style.height = ca.__original_height__ + 'px';
551
- }
552
-
553
-
554
- // Fire the resize event
555
- RG.fireCustomEvent(ca.__object__, 'onresize');
556
- RG.fireCustomEvent(ca.__object__, 'onresizeend');
557
- }
558
- };
559
-
560
- // Install the function as an event listener - but only once
561
- if (typeof ca.rgraph_resize_mousedown_listener_installed != 'boolean') {
562
- ca.addEventListener('mousedown', canvas_onmousedown, false);
563
- ca.rgraph_resize_mousedown_listener_installed = true;
564
- }
565
- }
566
- };
567
- // End module pattern
568
- })(window, document);
2
+ RGraph=window.RGraph||{isRGraph:true};(function(win,doc,undefined)
3
+ {var RG=RGraph,ua=navigator.userAgent,ma=Math,active=null;RGraph.allowResizing=RGraph.AllowResizing=function(obj)
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
+ 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.resize.handle.adjust')=='object'&&typeof obj.get('chart.resize.handle.adjust')[0]=='number'?obj.Get('chart.resize.handle.adjust')[0]:0);ca.resizing.adjustY=(typeof obj.get('chart.resize.handle.adjust')=='object'&&typeof obj.get('chart.resize.handle.adjust')[1]=='number'?obj.Get('chart.resize.handle.adjust')[1]:0);ca.resizing.bgcolor=obj.get('chart.resize.handle.background')||'rgba(0,0,0,0)';}
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);var newHeight=ca.height+(e.pageY-ca.resizing.originaly);if(newWidth>(ca.resizing.originalw/2)&&(typeof obj.get('resizableMaxwidth')==='number'?newWidth<obj.get('resizableMaxwidth'):true)){ca.resizing.div.style.width=newWidth+'px';}
9
+ if(newHeight>(ca.resizing.originalh/2)&&(typeof obj.get('resizableMaxheight')==='number'?newHeight<obj.get('resizableMaxheight'):true)){ca.resizing.div.style.height=newHeight+'px';}
10
+ RG.fireCustomEvent(ca.__object__,'onresize');}}}
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
+ var MouseupFunc=function(e)
13
+ {if(!ca.resizing||!ca.resizing.div||!ca.resizing.mousedown){return;}
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
+ 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
+ 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.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
+ 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
+ var canvas_onmousemove=function(e)
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;}
21
+ if((coords[0]>(ca.width-resizeHandleSize)&&coords[0]<ca.width&&coords[1]>(ca.height-resizeHandleSize)&&coords[1]<ca.height)){ca.style.cursor='move';}else if(coords[0]>(ca.width-resizeHandleSize-resizeHandleSize)&&coords[0]<ca.width-resizeHandleSize&&coords[1]>(ca.height-resizeHandleSize)&&coords[1]<ca.height){ca.style.cursor='pointer';}else{if(ca.resizing.original_cursor){ca.style.cursor=ca.resizing.original_cursor;ca.resizing.original_cursor=null;}else{ca.style.cursor='default';}}};if(typeof ca.rgraph_resize_mousemove_listener_installed!='boolean'){ca.addEventListener('mousemove',canvas_onmousemove,false);ca.rgraph_resize_mousemove_listener_installed=true;}
22
+ var canvas_onmouseout=function(e)
23
+ {e.target.style.cursor='default';e.target.title='';};if(typeof ca.rgraph_resize_mouseout_listener_installed!='boolean'){ca.addEventListener('mouseout',canvas_onmouseout,false);ca.rgraph_resize_mouseout_listener_installed=true;}
24
+ var canvas_onmousedown=function(e)
25
+ {e=RG.fixEventObject(e);var coords=RG.getMouseXY(e);var canvasXY=RG.getCanvasXY(e.target);var ca=e.target;active=ca;if(coords[0]>(ca.width-resizeHandleSize)&&coords[0]<ca.width&&coords[1]>(ca.height-resizeHandleSize)&&coords[1]<ca.height){RG.fireCustomEvent(obj,'onresizebegin');if(ca.resizing.original_css_border==null){ca.resizing.original_css_border=ca.style.border;}
26
+ if(ca.resizing.original_css_shadow==null){ca.resizing.original_css_shadow=ca.style.boxShadow;}
27
+ ca.resizing.mousedown=true;var div=document.createElement('DIV');div.style.position='absolute';div.style.left=canvasXY[0]+'px';div.style.top=canvasXY[1]+'px';div.style.width=ca.width+'px';div.style.height=ca.height+'px';div.style.border='1px dotted black';div.style.backgroundColor='gray';div.style.opacity=0.5;div.__canvas__=e.target;document.body.appendChild(div);ca.resizing.div=div;ca.resizing.placeHolders.push(div);for(var i=0;i<(ca.resizing.placeHolders.length-1);++i){ca.resizing.placeHolders[i].style.display='none';}
28
+ div.onmouseup=function(e)
29
+ {MouseupFunc(e);}
30
+ ca.resizing.div.onmouseover=function(e)
31
+ {e=RG.fixEventObject(e);e.stopPropagation();}
32
+ ca.resizing.originalx=e.pageX;ca.resizing.originaly=e.pageY;ca.resizing.originalCanvasX=RG.getCanvasXY(ca)[0];ca.resizing.originalCanvasY=RG.getCanvasXY(ca)[1];}
33
+ if(coords[0]>(ca.width-resizeHandleSize-resizeHandleSize)&&coords[0]<ca.width-resizeHandleSize&&coords[1]>(ca.height-resizeHandleSize)&&coords[1]<ca.height&&ca.resizing.originalw&&ca.resizing.originaly){RG.fireCustomEvent(ca.__object__,'onresizebegin');ca.width=ca.resizing.originalw;ca.height=ca.resizing.originalh;if(ca.__link__&&ca.__link__.style.display==='none'){ca.__link__.style.display='inline';}
34
+ if(typeof ca.parentNode.id==='string'&&ca.parentNode.id.substring(0,24)==='rgraph_resize_container_'){ca.parentNode.style.width=ca.resizing.originalw+'px';ca.parentNode.style.height=ca.resizing.originalh+'px';}
35
+ ca.style.border=ca.resizing.original_css_border;ca.style.boxShadow=ca.resizing.original_css_shadow;ca.style.left=(parseInt(ca.style.left))+'px';ca.style.top=(parseInt(ca.style.top))+'px';ca.getContext('2d').translate(0.5,0.5);RG.fireCustomEvent(ca.__object__,'onresizebeforedraw');var objects=RG.ObjectRegistry.getObjectsByCanvasID(ca.id);for(var i=0;i<objects.length;i+=1){RG.resetColorsToOriginalValues(objects[i]);if(objects[i].reset){objects[i].reset();}
36
+ RG.redrawCanvas(objects[i].canvas);}
37
+ RG.cache=[];if(ca.resizing.div){ca.resizing.div.style.width=ca.__original_width__+'px';ca.resizing.div.style.height=ca.__original_height__+'px';}
38
+ RG.fireCustomEvent(ca.__object__,'onresize');RG.fireCustomEvent(ca.__object__,'onresizeend');}};if(typeof ca.rgraph_resize_mousedown_listener_installed!='boolean'){ca.addEventListener('mousedown',canvas_onmousedown,false);ca.rgraph_resize_mousedown_listener_installed=true;}}};})(window,document);