rgraph-rails 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.travis.yml +1 -0
- data/README.md +2 -2
- data/lib/rgraph-rails/version.rb +1 -1
- data/vendor/assets/images/bullet.png +0 -0
- data/vendor/assets/images/facebook-large.png +0 -0
- data/vendor/assets/images/google-plus-large.png +0 -0
- data/vendor/assets/images/logo.png +0 -0
- data/vendor/assets/images/rgraph.jpg +0 -0
- data/vendor/assets/javascripts/RGraph.bar.js +533 -242
- data/vendor/assets/javascripts/RGraph.bipolar.js +152 -169
- data/vendor/assets/javascripts/RGraph.common.annotate.js +2 -2
- data/vendor/assets/javascripts/RGraph.common.context.js +2 -2
- data/vendor/assets/javascripts/RGraph.common.core.js +688 -373
- data/vendor/assets/javascripts/RGraph.common.csv.js +2 -2
- data/vendor/assets/javascripts/RGraph.common.deprecated.js +2 -2
- data/vendor/assets/javascripts/RGraph.common.dynamic.js +188 -193
- data/vendor/assets/javascripts/RGraph.common.effects.js +62 -38
- data/vendor/assets/javascripts/RGraph.common.key.js +35 -15
- data/vendor/assets/javascripts/RGraph.common.resizing.js +38 -21
- data/vendor/assets/javascripts/RGraph.common.sheets.js +2 -2
- data/vendor/assets/javascripts/RGraph.common.tooltips.js +48 -40
- data/vendor/assets/javascripts/RGraph.common.zoom.js +2 -2
- data/vendor/assets/javascripts/RGraph.drawing.background.js +33 -49
- data/vendor/assets/javascripts/RGraph.drawing.circle.js +27 -30
- data/vendor/assets/javascripts/RGraph.drawing.image.js +23 -26
- data/vendor/assets/javascripts/RGraph.drawing.marker1.js +47 -40
- data/vendor/assets/javascripts/RGraph.drawing.marker2.js +38 -42
- data/vendor/assets/javascripts/RGraph.drawing.marker3.js +24 -28
- data/vendor/assets/javascripts/RGraph.drawing.poly.js +25 -39
- data/vendor/assets/javascripts/RGraph.drawing.rect.js +27 -32
- data/vendor/assets/javascripts/RGraph.drawing.text.js +53 -58
- data/vendor/assets/javascripts/RGraph.drawing.xaxis.js +24 -29
- data/vendor/assets/javascripts/RGraph.drawing.yaxis.js +45 -51
- data/vendor/assets/javascripts/RGraph.fuel.js +11 -9
- data/vendor/assets/javascripts/RGraph.funnel.js +40 -43
- data/vendor/assets/javascripts/RGraph.gantt.js +34 -34
- data/vendor/assets/javascripts/RGraph.gauge.js +64 -55
- data/vendor/assets/javascripts/RGraph.hbar.js +194 -137
- data/vendor/assets/javascripts/RGraph.hprogress.js +261 -167
- data/vendor/assets/javascripts/RGraph.line.js +520 -512
- data/vendor/assets/javascripts/RGraph.meter.js +11 -10
- data/vendor/assets/javascripts/RGraph.modaldialog.js +11 -2
- data/vendor/assets/javascripts/RGraph.odo.js +11 -9
- data/vendor/assets/javascripts/RGraph.pie.js +385 -100
- data/vendor/assets/javascripts/RGraph.radar.js +36 -29
- data/vendor/assets/javascripts/RGraph.rose.js +58 -41
- data/vendor/assets/javascripts/RGraph.rscatter.js +40 -36
- data/vendor/assets/javascripts/RGraph.scatter.js +441 -499
- data/vendor/assets/javascripts/RGraph.semicircularprogress.js +1015 -0
- data/vendor/assets/javascripts/RGraph.thermometer.js +37 -37
- data/vendor/assets/javascripts/RGraph.vprogress.js +285 -157
- data/vendor/assets/javascripts/RGraph.waterfall.js +62 -62
- data/vendor/assets/stylesheets/website.css +30 -16
- metadata +3 -2
@@ -1,4 +1,4 @@
|
|
1
|
-
// version: 2016-
|
1
|
+
// version: 2016-06-04
|
2
2
|
/**
|
3
3
|
* o--------------------------------------------------------------------------------o
|
4
4
|
* | This file is part of the RGraph package - you can learn more at: |
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* | |
|
8
8
|
* | RGraph is dual licensed under the Open Source GPL (General Public License) |
|
9
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 is just
|
10
|
+
* | the terms of the GPL. The commercial license is just 99 GBP and you can |
|
11
11
|
* | read about it here: |
|
12
12
|
* | http://www.rgraph.net/license |
|
13
13
|
* o--------------------------------------------------------------------------------o
|
@@ -106,7 +106,7 @@
|
|
106
106
|
this.properties =
|
107
107
|
{
|
108
108
|
'chart.size': 10,
|
109
|
-
'chart.font': 'Arial',
|
109
|
+
'chart.font': 'Segoe UI, Arial, Verdana, sans-serif',
|
110
110
|
'chart.bold': false,
|
111
111
|
'chart.angle': 0,
|
112
112
|
'chart.colors': ['black'],
|
@@ -133,7 +133,11 @@
|
|
133
133
|
'chart.valign': 'bottom',
|
134
134
|
'chart.link': null,
|
135
135
|
'chart.link.target': '_self',
|
136
|
-
'chart.link.options': ''
|
136
|
+
'chart.link.options': '',
|
137
|
+
'chart.text.accessible': true,
|
138
|
+
'chart.text.accessible.overflow': 'visible',
|
139
|
+
'chart.text.accessible.pointerevents': false,
|
140
|
+
'chart.clearto': 'rgba(0,0,0,0)'
|
137
141
|
}
|
138
142
|
|
139
143
|
/**
|
@@ -170,7 +174,6 @@
|
|
170
174
|
ca = this.canvas,
|
171
175
|
co = ca.getContext('2d'),
|
172
176
|
prop = this.properties,
|
173
|
-
pa = RG.Path,
|
174
177
|
pa2 = RG.path2,
|
175
178
|
win = window,
|
176
179
|
doc = document,
|
@@ -224,10 +227,9 @@
|
|
224
227
|
|
225
228
|
|
226
229
|
// Convert uppercase letters to dot+lower case letter
|
227
|
-
name
|
228
|
-
|
229
|
-
|
230
|
-
});
|
230
|
+
while(name.match(/([A-Z])/)) {
|
231
|
+
name = name.replace(/([A-Z])/, '.' + RegExp.$1.toLowerCase());
|
232
|
+
}
|
231
233
|
|
232
234
|
|
233
235
|
|
@@ -324,35 +326,36 @@
|
|
324
326
|
|
325
327
|
// ------------- DRAW TEXT HERE -------------
|
326
328
|
co.fillStyle = prop['chart.colors'][0];
|
327
|
-
|
328
|
-
var ret = RG.
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
329
|
+
|
330
|
+
var ret = RG.text2(this, {
|
331
|
+
font: prop['chart.font'],
|
332
|
+
size: prop['chart.size'],
|
333
|
+
x: this.x,
|
334
|
+
y: this.y,
|
335
|
+
text: this.text,
|
336
|
+
bold: prop['chart.bold'],
|
337
|
+
angle: prop['chart.angle'],
|
338
|
+
bounding: prop['chart.bounding'],
|
339
|
+
'bounding.fill': prop['chart.bounding.fill'],
|
340
|
+
'bounding.stroke': prop['chart.bounding.stroke'],
|
341
|
+
'bounding.shadow': prop['chart.bounding.shadow'],
|
342
|
+
'bounding.shadow.color': prop['chart.bounding.shadow.color'],
|
343
|
+
'bounding.shadow.blur': prop['chart.bounding.shadow.blur'],
|
344
|
+
'bounding.shadow.offsetx': prop['chart.bounding.shadow.offsetx'],
|
345
|
+
'bounding.shadow.offsety': prop['chart.bounding.shadow.offsety'],
|
346
|
+
marker: prop['chart.marker'],
|
347
|
+
halign: prop['chart.halign'],
|
348
|
+
valign: prop['chart.valign']
|
349
|
+
});
|
347
350
|
|
348
351
|
|
349
352
|
// store the dimensions
|
350
353
|
this.coords.push({
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
354
|
+
0: ret.x, 'x': ret.x,
|
355
|
+
1: ret.y, 'y': ret.y,
|
356
|
+
2: ret.width, 'width': ret.width,
|
357
|
+
3: ret.height, 'height': ret.height
|
358
|
+
});
|
356
359
|
|
357
360
|
|
358
361
|
|
@@ -460,46 +463,35 @@
|
|
460
463
|
this.positionTooltip = function (obj, x, y, tooltip, idx)
|
461
464
|
{
|
462
465
|
var coords = obj.coords[0];
|
463
|
-
var coordX = coords.x;
|
464
|
-
var coordY = coords.y;
|
466
|
+
var coordX = parseFloat(coords.x);
|
467
|
+
var coordY = parseFloat(coords.y);
|
465
468
|
var coordW = coords.width;
|
466
469
|
var coordH = coords.height;
|
467
|
-
var canvasXY =
|
470
|
+
var canvasXY = RG.getCanvasXY(obj.canvas);
|
471
|
+
var mouseXY = RG.getMouseXY(window.event);
|
468
472
|
var width = tooltip.offsetWidth;
|
469
473
|
var height = tooltip.offsetHeight;
|
470
474
|
|
471
475
|
// Set the top position
|
472
476
|
tooltip.style.left = 0;
|
473
|
-
|
474
|
-
|
475
|
-
|
477
|
+
tooltip.style.top = window.event.pageY - height - 5 + 'px';
|
478
|
+
|
476
479
|
// By default any overflow is hidden
|
477
480
|
tooltip.style.overflow = '';
|
478
|
-
|
479
|
-
// The arrow
|
480
|
-
var img = new Image();
|
481
|
-
img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAFCAYAAACjKgd3AAAARUlEQVQYV2NkQAN79+797+RkhC4M5+/bd47B2dmZEVkBCgcmgcsgbAaA9GA1BCSBbhAuA/AagmwQPgMIGgIzCD0M0AMMAEFVIAa6UQgcAAAAAElFTkSuQmCC';
|
482
|
-
img.style.position = 'absolute';
|
483
|
-
img.id = '__rgraph_tooltip_pointer__';
|
484
|
-
img.style.top = (tooltip.offsetHeight - 2) + 'px';
|
485
|
-
tooltip.appendChild(img);
|
486
481
|
|
487
482
|
// Reposition the tooltip if at the edges:
|
488
483
|
|
489
484
|
// LEFT edge
|
490
|
-
if (
|
491
|
-
tooltip.style.left =
|
492
|
-
img.style.left = ((width * 0.1) - 8.5) + 'px';
|
485
|
+
if (canvasXY[0] + mouseXY[0] - (width / 2) < 0) {
|
486
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width * 0.1) + 'px';
|
493
487
|
|
494
488
|
// RIGHT edge
|
495
|
-
} else if (
|
496
|
-
tooltip.style.left = canvasXY[0] +
|
497
|
-
img.style.left = ((width * 0.9) - 8.5) + 'px';
|
489
|
+
} else if (canvasXY[0] + mouseXY[0] + (width / 2) > doc.body.offsetWidth) {
|
490
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width * 0.9) + 'px';
|
498
491
|
|
499
492
|
// Default positioning - CENTERED
|
500
493
|
} else {
|
501
|
-
tooltip.style.left =
|
502
|
-
img.style.left = ((width * 0.5) - 8.5) + 'px';
|
494
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width / 2) + 'px';
|
503
495
|
}
|
504
496
|
};
|
505
497
|
|
@@ -514,8 +506,11 @@
|
|
514
506
|
this.highlight =
|
515
507
|
this.Highlight = function (shape)
|
516
508
|
{
|
517
|
-
|
518
|
-
|
509
|
+
if (typeof prop['chart.highlight.style'] === 'function') {
|
510
|
+
(prop['chart.highlight.style'])(shape);
|
511
|
+
} else {
|
512
|
+
RG.Highlight.Rect(this, shape);
|
513
|
+
}
|
519
514
|
};
|
520
515
|
|
521
516
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// version: 2016-
|
1
|
+
// version: 2016-06-04
|
2
2
|
/**
|
3
3
|
* o--------------------------------------------------------------------------------o
|
4
4
|
* | This file is part of the RGraph package - you can learn more at: |
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* | |
|
8
8
|
* | RGraph is dual licensed under the Open Source GPL (General Public License) |
|
9
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 is just
|
10
|
+
* | the terms of the GPL. The commercial license is just 99 GBP and you can |
|
11
11
|
* | read about it here: |
|
12
12
|
* | http://www.rgraph.net/license |
|
13
13
|
* o--------------------------------------------------------------------------------o
|
@@ -101,8 +101,11 @@
|
|
101
101
|
'chart.colors': ['black'],
|
102
102
|
'chart.title.color': null, // Defaults to same as chart.colors
|
103
103
|
'chart.text.color': null, // Defaults to same as chart.colors
|
104
|
-
'chart.text.font': 'Arial',
|
104
|
+
'chart.text.font': 'Segoe UI, Arial, Verdana, sans-serif',
|
105
105
|
'chart.text.size': 12,
|
106
|
+
'chart.text.accessible': true,
|
107
|
+
'chart.text.accessible.overflow':'visible',
|
108
|
+
'chart.text.accessible.pointerevents': false,
|
106
109
|
'chart.align': 'bottom',
|
107
110
|
'chart.numlabels': 5,
|
108
111
|
'chart.scale.visible': true,
|
@@ -130,7 +133,8 @@
|
|
130
133
|
'chart.events.click': null,
|
131
134
|
'chart.events.mousemove': null,
|
132
135
|
'chart.xaxispos': 'bottom',
|
133
|
-
'chart.yaxispos': 'left'
|
136
|
+
'chart.yaxispos': 'left',
|
137
|
+
'chart.clearto': 'rgba(0,0,0,0)'
|
134
138
|
}
|
135
139
|
|
136
140
|
/**
|
@@ -165,7 +169,6 @@
|
|
165
169
|
ca = this.canvas,
|
166
170
|
co = ca.getContext('2d'),
|
167
171
|
prop = this.properties,
|
168
|
-
pa = RG.Path,
|
169
172
|
pa2 = RG.path2,
|
170
173
|
win = window,
|
171
174
|
doc = document,
|
@@ -216,10 +219,9 @@
|
|
216
219
|
|
217
220
|
|
218
221
|
// Convert uppercase letters to dot+lower case letter
|
219
|
-
name
|
220
|
-
|
221
|
-
|
222
|
-
});
|
222
|
+
while(name.match(/([A-Z])/)) {
|
223
|
+
name = name.replace(/([A-Z])/, '.' + RegExp.$1.toLowerCase());
|
224
|
+
}
|
223
225
|
|
224
226
|
/**
|
225
227
|
* Make the tickmarks align if labels are specified
|
@@ -422,40 +424,31 @@
|
|
422
424
|
var coordW = ca.width - obj.gutterLeft - obj.gutterRight;
|
423
425
|
var coordH = prop['chart.text.size'] * 1.5;
|
424
426
|
var canvasXY = RG.getCanvasXY(ca);
|
427
|
+
var mouseXY = RG.getMouseXY(window.event);
|
425
428
|
var width = tooltip.offsetWidth;
|
426
429
|
var height = tooltip.offsetHeight;
|
430
|
+
|
427
431
|
|
428
432
|
// Set the top position
|
429
433
|
tooltip.style.left = 0;
|
430
|
-
tooltip.style.top =
|
434
|
+
tooltip.style.top = window.event.pageY - height - 5 + 'px';
|
431
435
|
|
432
436
|
// By default any overflow is hidden
|
433
437
|
tooltip.style.overflow = '';
|
434
|
-
|
435
|
-
// The arrow
|
436
|
-
var img = new Image();
|
437
|
-
img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAFCAYAAACjKgd3AAAARUlEQVQYV2NkQAN79+797+RkhC4M5+/bd47B2dmZEVkBCgcmgcsgbAaA9GA1BCSBbhAuA/AagmwQPgMIGgIzCD0M0AMMAEFVIAa6UQgcAAAAAElFTkSuQmCC';
|
438
|
-
img.style.position = 'absolute';
|
439
|
-
img.id = '__rgraph_tooltip_pointer__';
|
440
|
-
img.style.top = (tooltip.offsetHeight - 2) + 'px';
|
441
|
-
tooltip.appendChild(img);
|
442
438
|
|
443
439
|
// Reposition the tooltip if at the edges:
|
444
|
-
|
440
|
+
|
445
441
|
// LEFT edge
|
446
|
-
if (
|
447
|
-
tooltip.style.left =
|
448
|
-
img.style.left = ((width * 0.1) - 8.5) + 'px';
|
442
|
+
if (canvasXY[0] + mouseXY[0] - (width / 2) < 0) {
|
443
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width * 0.1) + 'px';
|
449
444
|
|
450
445
|
// RIGHT edge
|
451
|
-
} else if (
|
452
|
-
tooltip.style.left = canvasXY[0] +
|
453
|
-
img.style.left = ((width * 0.9) - 8.5) + 'px';
|
446
|
+
} else if (canvasXY[0] + mouseXY[0] + (width / 2) > doc.body.offsetWidth) {
|
447
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width * 0.9) + 'px';
|
454
448
|
|
455
449
|
// Default positioning - CENTERED
|
456
450
|
} else {
|
457
|
-
tooltip.style.left =
|
458
|
-
img.style.left = ((width * 0.5) - 8.5) + 'px';
|
451
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width / 2) + 'px';
|
459
452
|
}
|
460
453
|
};
|
461
454
|
|
@@ -470,7 +463,9 @@
|
|
470
463
|
this.highlight =
|
471
464
|
this.Highlight = function (shape)
|
472
465
|
{
|
473
|
-
|
466
|
+
if (typeof prop['chart.highlight.style'] === 'function') {
|
467
|
+
(prop['chart.highlight.style'])(shape);
|
468
|
+
}
|
474
469
|
};
|
475
470
|
|
476
471
|
|
@@ -608,7 +603,7 @@
|
|
608
603
|
/**
|
609
604
|
* Draw the main horizontal line
|
610
605
|
*/
|
611
|
-
|
606
|
+
pa2(co, ['b','m',x, Math.round(y),'l',x + width, Math.round(y),'s',co.strokeStyle]);
|
612
607
|
|
613
608
|
/**
|
614
609
|
* Draw the axis tickmarks
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// version: 2016-
|
1
|
+
// version: 2016-06-04
|
2
2
|
/**
|
3
3
|
* o--------------------------------------------------------------------------------o
|
4
4
|
* | This file is part of the RGraph package - you can learn more at: |
|
@@ -7,7 +7,7 @@
|
|
7
7
|
* | |
|
8
8
|
* | RGraph is dual licensed under the Open Source GPL (General Public License) |
|
9
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 is just
|
10
|
+
* | the terms of the GPL. The commercial license is just 99 GBP and you can |
|
11
11
|
* | read about it here: |
|
12
12
|
* | http://www.rgraph.net/license |
|
13
13
|
* o--------------------------------------------------------------------------------o
|
@@ -99,12 +99,15 @@
|
|
99
99
|
'chart.colors': ['black'],
|
100
100
|
'chart.title': '',
|
101
101
|
'chart.title.color': null,
|
102
|
-
'chart.text.color': null,
|
103
102
|
'chart.numticks': 5,
|
104
103
|
'chart.numlabels': 5,
|
105
104
|
'chart.labels.specific': null,
|
106
|
-
'chart.text.font': 'Arial',
|
105
|
+
'chart.text.font': 'Segoe UI, Arial, Verdana, sans-serif',
|
107
106
|
'chart.text.size': 12,
|
107
|
+
'chart.text.color': null,
|
108
|
+
'chart.text.accessible': true,
|
109
|
+
'chart.text.accessible.overflow':'visible',
|
110
|
+
'chart.text.accessible.pointerevents': false,
|
108
111
|
'chart.align': 'left',
|
109
112
|
'hart.scale.formatter': null,
|
110
113
|
'chart.scale.point': '.',
|
@@ -126,7 +129,8 @@
|
|
126
129
|
'chart.tooltips.event': 'onclick',
|
127
130
|
'chart.xaxispos': 'bottom',
|
128
131
|
'chart.events.click': null,
|
129
|
-
'chart.events.mousemove': null
|
132
|
+
'chart.events.mousemove': null,
|
133
|
+
'chart.clearto': 'rgba(0,0,0,0)'
|
130
134
|
}
|
131
135
|
|
132
136
|
|
@@ -163,7 +167,6 @@
|
|
163
167
|
ca = this.canvas,
|
164
168
|
co = ca.getContext('2d'),
|
165
169
|
prop = this.properties,
|
166
|
-
pa = RG.Path,
|
167
170
|
pa2 = RG.path2,
|
168
171
|
win = window,
|
169
172
|
doc = document,
|
@@ -220,10 +223,9 @@
|
|
220
223
|
|
221
224
|
|
222
225
|
// Convert uppercase letters to dot+lower case letter
|
223
|
-
name
|
224
|
-
|
225
|
-
|
226
|
-
});
|
226
|
+
while(name.match(/([A-Z])/)) {
|
227
|
+
name = name.replace(/([A-Z])/, '.' + RegExp.$1.toLowerCase());
|
228
|
+
}
|
227
229
|
|
228
230
|
|
229
231
|
|
@@ -421,44 +423,31 @@
|
|
421
423
|
var coordY = obj.gutterTop;
|
422
424
|
var coordH = ca.height - obj.gutterTop - obj.gutterBottom;
|
423
425
|
var canvasXY = RG.getCanvasXY(ca);
|
426
|
+
var mouseXY = RG.getMouseXY(window.event);
|
424
427
|
|
425
428
|
var width = tooltip.offsetWidth;
|
426
429
|
var height = tooltip.offsetHeight;
|
427
430
|
|
428
431
|
// Set the top position
|
429
432
|
tooltip.style.left = 0;
|
430
|
-
tooltip.style.top =
|
433
|
+
tooltip.style.top = window.event.pageY - height - 5 + 'px';
|
431
434
|
|
432
435
|
// By default any overflow is hidden
|
433
436
|
tooltip.style.overflow = '';
|
434
|
-
|
435
|
-
// The arrow
|
436
|
-
var img = new Image();
|
437
|
-
img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAFCAYAAACjKgd3AAAARUlEQVQYV2NkQAN79+797+RkhC4M5+/bd47B2dmZEVkBCgcmgcsgbAaA9GA1BCSBbhAuA/AagmwQPgMIGgIzCD0M0AMMAEFVIAa6UQgcAAAAAElFTkSuQmCC';
|
438
|
-
img.style.position = 'absolute';
|
439
|
-
img.id = '__rgraph_tooltip_pointer__';
|
440
|
-
img.style.top = (tooltip.offsetHeight - 2) + 'px';
|
441
|
-
tooltip.appendChild(img);
|
442
437
|
|
443
438
|
// Reposition the tooltip if at the edges:
|
444
439
|
|
445
440
|
// LEFT edge
|
446
|
-
if (
|
447
|
-
tooltip.style.left =
|
448
|
-
: (canvasXY[0] + coordX - (width * 0.1)) + (coordW / 2) + 'px';
|
449
|
-
img.style.left = (width * 0.1) - 8.5 + 'px';
|
441
|
+
if (canvasXY[0] + mouseXY[0] - (width / 2) < 0) {
|
442
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width * 0.1) + 'px';
|
450
443
|
|
451
444
|
// RIGHT edge
|
452
|
-
} else if (
|
453
|
-
tooltip.style.left =
|
454
|
-
: canvasXY[0] + coordX - (width * 0.9) + (coordW / 2) + 'px';
|
455
|
-
img.style.left = ((width * 0.9) - 8.5) + 'px';
|
445
|
+
} else if (canvasXY[0] + mouseXY[0] + (width / 2) > doc.body.offsetWidth) {
|
446
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width * 0.9) + 'px';
|
456
447
|
|
457
448
|
// Default positioning - CENTERED
|
458
449
|
} else {
|
459
|
-
tooltip.style.left =
|
460
|
-
: canvasXY[0] + obj.x - (width / 2) - (coordW / 2) + 'px';
|
461
|
-
img.style.left = ((width * 0.5) - 8.5) + 'px';
|
450
|
+
tooltip.style.left = canvasXY[0] + mouseXY[0] - (width / 2) + 'px';
|
462
451
|
}
|
463
452
|
};
|
464
453
|
|
@@ -473,7 +462,9 @@
|
|
473
462
|
this.highlight =
|
474
463
|
this.Highlight = function (shape)
|
475
464
|
{
|
476
|
-
|
465
|
+
if (typeof prop['chart.highlight.style'] === 'function') {
|
466
|
+
(prop['chart.highlight.style'])(shape);
|
467
|
+
}
|
477
468
|
};
|
478
469
|
|
479
470
|
|
@@ -554,7 +545,7 @@
|
|
554
545
|
{
|
555
546
|
// Allow both axis.xxx and chart.xxx to prevent any confusion that may arise
|
556
547
|
for (i in prop) {
|
557
|
-
if (typeof
|
548
|
+
if (typeof i == 'string') {
|
558
549
|
var key = i.replace(/^chart\./, 'axis.');
|
559
550
|
|
560
551
|
prop[key] = prop[i];
|
@@ -602,7 +593,7 @@
|
|
602
593
|
/**
|
603
594
|
* Draw the main vertical line
|
604
595
|
*/
|
605
|
-
|
596
|
+
pa2(co,['b','m',Math.round(x), y,'l',Math.round(x), y + height,'s',color]);
|
606
597
|
|
607
598
|
/**
|
608
599
|
* Draw the axes tickmarks
|
@@ -614,13 +605,13 @@
|
|
614
605
|
|
615
606
|
co.beginPath();
|
616
607
|
for (var i=(notopendtick ? 1 : 0); i<=(numticks - (nobottomendtick || xaxispos == 'center'? 1 : 0)); ++i) {
|
617
|
-
|
608
|
+
pa2(co, ['m',align == 'right' ? x + 3 : x - 3, Math.round(y + (gap *i)),'l',x, Math.round(y + (gap *i))]);
|
618
609
|
}
|
619
610
|
|
620
611
|
// Draw the bottom halves ticks if the X axis is in the center
|
621
612
|
if (xaxispos == 'center') {
|
622
613
|
for (var i=1; i<=numticks; ++i) {
|
623
|
-
|
614
|
+
pa2(co, ['m',align == 'right' ? x + 3 : x - 3, Math.round(y + halfheight + (gap *i)),'l',x, Math.round(y + halfheight + (gap *i))]);
|
624
615
|
}
|
625
616
|
}
|
626
617
|
co.stroke();
|
@@ -653,14 +644,14 @@
|
|
653
644
|
}
|
654
645
|
|
655
646
|
RG.text2(this, {
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
647
|
+
'font': font,
|
648
|
+
'size': size,
|
649
|
+
'x': x - (align == 'right' ? -5 : 5),
|
650
|
+
'y': (i * gap) + this.gutterTop,
|
651
|
+
'text': labels_specific[i],
|
652
|
+
'valign': 'center',
|
653
|
+
'halign': align == 'right' ? 'left' : 'right',
|
654
|
+
'tag': 'scale'
|
664
655
|
});
|
665
656
|
|
666
657
|
/**
|
@@ -773,14 +764,17 @@
|
|
773
764
|
}
|
774
765
|
|
775
766
|
|
776
|
-
RG.
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
767
|
+
RG.text2(this, {
|
768
|
+
font:font,
|
769
|
+
size:size + 2,
|
770
|
+
x:align == 'right' ? x + width + 8 : x - width - 8,
|
771
|
+
y:height / 2 + this.gutterTop,
|
772
|
+
text:title,
|
773
|
+
valign:'bottom',
|
774
|
+
halign:'center',
|
775
|
+
angle:align == 'right' ? 90 : -90,
|
776
|
+
accessible: false
|
777
|
+
});
|
784
778
|
co.stroke();
|
785
779
|
}
|
786
780
|
};
|