rgraph-rails 1.0.8 → 4.62

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 +4 -4
  2. data/README.md +3 -3
  3. data/lib/rgraph-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/RGraph.bar.js +16 -8
  5. data/vendor/assets/javascripts/RGraph.bipolar.js +1 -1
  6. data/vendor/assets/javascripts/RGraph.common.annotate.js +1 -1
  7. data/vendor/assets/javascripts/RGraph.common.context.js +1 -1
  8. data/vendor/assets/javascripts/RGraph.common.core.js +84 -7
  9. data/vendor/assets/javascripts/RGraph.common.csv.js +1 -1
  10. data/vendor/assets/javascripts/RGraph.common.deprecated.js +1 -1
  11. data/vendor/assets/javascripts/RGraph.common.dynamic.js +1 -1
  12. data/vendor/assets/javascripts/RGraph.common.effects.js +1 -1
  13. data/vendor/assets/javascripts/RGraph.common.key.js +3 -3
  14. data/vendor/assets/javascripts/RGraph.common.resizing.js +1 -1
  15. data/vendor/assets/javascripts/RGraph.common.sheets.js +1 -1
  16. data/vendor/assets/javascripts/RGraph.common.tooltips.js +1 -1
  17. data/vendor/assets/javascripts/RGraph.common.zoom.js +1 -1
  18. data/vendor/assets/javascripts/RGraph.drawing.background.js +1 -1
  19. data/vendor/assets/javascripts/RGraph.drawing.circle.js +1 -1
  20. data/vendor/assets/javascripts/RGraph.drawing.image.js +1 -1
  21. data/vendor/assets/javascripts/RGraph.drawing.marker1.js +1 -1
  22. data/vendor/assets/javascripts/RGraph.drawing.marker2.js +1 -1
  23. data/vendor/assets/javascripts/RGraph.drawing.marker3.js +1 -1
  24. data/vendor/assets/javascripts/RGraph.drawing.poly.js +1 -1
  25. data/vendor/assets/javascripts/RGraph.drawing.rect.js +1 -1
  26. data/vendor/assets/javascripts/RGraph.drawing.text.js +1 -1
  27. data/vendor/assets/javascripts/RGraph.drawing.xaxis.js +1 -1
  28. data/vendor/assets/javascripts/RGraph.drawing.yaxis.js +1 -1
  29. data/vendor/assets/javascripts/RGraph.fuel.js +1 -1
  30. data/vendor/assets/javascripts/RGraph.funnel.js +1 -1
  31. data/vendor/assets/javascripts/RGraph.gantt.js +1 -1
  32. data/vendor/assets/javascripts/RGraph.gauge.js +1 -1
  33. data/vendor/assets/javascripts/RGraph.hbar.js +228 -2
  34. data/vendor/assets/javascripts/RGraph.hprogress.js +1 -1
  35. data/vendor/assets/javascripts/RGraph.line.js +27 -5
  36. data/vendor/assets/javascripts/RGraph.meter.js +1 -1
  37. data/vendor/assets/javascripts/RGraph.modaldialog.js +1 -1
  38. data/vendor/assets/javascripts/RGraph.odo.js +1 -1
  39. data/vendor/assets/javascripts/RGraph.pie.js +1 -1
  40. data/vendor/assets/javascripts/RGraph.radar.js +1 -1
  41. data/vendor/assets/javascripts/RGraph.rose.js +1 -1
  42. data/vendor/assets/javascripts/RGraph.rscatter.js +1 -1
  43. data/vendor/assets/javascripts/RGraph.scatter.js +161 -34
  44. data/vendor/assets/javascripts/RGraph.semicircularprogress.js +1 -1
  45. data/vendor/assets/javascripts/RGraph.svg.bar.js +772 -103
  46. data/vendor/assets/javascripts/RGraph.svg.common.ajax.js +1 -1
  47. data/vendor/assets/javascripts/RGraph.svg.common.core.js +806 -231
  48. data/vendor/assets/javascripts/RGraph.svg.common.csv.js +1 -1
  49. data/vendor/assets/javascripts/RGraph.svg.common.fx.js +24 -24
  50. data/vendor/assets/javascripts/RGraph.svg.common.key.js +206 -0
  51. data/vendor/assets/javascripts/RGraph.svg.common.sheets.js +1 -1
  52. data/vendor/assets/javascripts/RGraph.svg.common.tooltips.js +63 -22
  53. data/vendor/assets/javascripts/RGraph.svg.hbar.js +351 -91
  54. data/vendor/assets/javascripts/RGraph.svg.line.js +159 -64
  55. data/vendor/assets/javascripts/RGraph.svg.pie.js +402 -51
  56. data/vendor/assets/javascripts/RGraph.svg.radar.js +320 -143
  57. data/vendor/assets/javascripts/RGraph.svg.rose.js +1818 -0
  58. data/vendor/assets/javascripts/RGraph.svg.scatter.js +1262 -0
  59. data/vendor/assets/javascripts/RGraph.svg.semicircularprogress.js +106 -57
  60. data/vendor/assets/javascripts/RGraph.svg.waterfall.js +1253 -0
  61. data/vendor/assets/javascripts/RGraph.thermometer.js +7 -6
  62. data/vendor/assets/javascripts/RGraph.vprogress.js +1 -1
  63. data/vendor/assets/javascripts/RGraph.waterfall.js +1 -1
  64. data/vendor/assets/javascripts/financial-data.js +1067 -0
  65. metadata +8 -5
  66. data/vendor/assets/javascripts/RGraph.cornergauge.js +0 -71
  67. data/vendor/assets/javascripts/RGraph.thermometer.old.js +0 -68
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e47ecbb8906997092674ef40da68bf4368c58d8
4
- data.tar.gz: 26702943c799c8e73c66da14ea8c932a96fa82ed
3
+ metadata.gz: 5471b9fdc42af6ff337cbb054d17d429988f0a70
4
+ data.tar.gz: e5f810be4ea5a6e12694e4bc1ea94d1db02ddec6
5
5
  SHA512:
6
- metadata.gz: 07aa2605e50bbc47bf7d6ed1903ee0b81b99b3307f015ca218a2b5024586caba6c2ee55abe165776bbe73991982f1f84d4cd1b46ef230499d371a32e4f256e89
7
- data.tar.gz: 875d758e1835599237b279edd026f2ad19706f19d18888f86b1c8a99cfde00a6066ec624c2d956765cf05f8998f7815311c2b5f59dd0eec80b7eb1c948e1ec47
6
+ metadata.gz: 9891ca07216930af157c217f7c9ec9a28c27494e89a0128988b065d884247844cd49bea5349c950d5656120dc3eebb10281c6d7f8155371f7cdc47a78605ca52
7
+ data.tar.gz: b2dcef340aadc3e9e128b1365cbe1cf7f855551f1e985b6866e6d6e8c8222fa27b576c6eee24ac0860b44fb800e23f9a547cdbc9d181e8c494dd4fc90b014a72
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/dsgriffin/rgraph-rails.svg?branch=master)](https://travis-ci.org/dsgriffin/rgraph-rails)
4
4
  [![Gem Version](https://badge.fury.io/rb/rgraph-rails.svg)](https://badge.fury.io/rb/rgraph-rails)
5
- ![](https://img.shields.io/badge/rgraph-4.60-red.svg)
5
+ ![](https://img.shields.io/badge/rgraph-4.62-red.svg)
6
6
 
7
7
  Use the [rgraph](http://www.rgraph.net/) chart/graph library with the Rails asset pipeline.
8
8
 
@@ -11,7 +11,7 @@ Use the [rgraph](http://www.rgraph.net/) chart/graph library with the Rails asse
11
11
  Include the gem in your application's Gemfile:
12
12
 
13
13
  ```ruby
14
- gem 'rgraph-rails', '~> 1.0.8'
14
+ gem 'rgraph-rails', '~> 4.62'
15
15
  ```
16
16
 
17
17
  And then execute:
@@ -65,7 +65,7 @@ Automatically on tagged release to master. Reading: https://docs.travis-ci.com/u
65
65
 
66
66
  ## Versioning
67
67
 
68
- rgraph itself doesn't use semantic versioning - you can find out about breaking changes by release on the [Backwards Compatibility section on the official site](http://www.rgraph.net/docs/backwards-compatibility.html).
68
+ rgraph itself doesn't use semantic versioning (and therefore neither does this gem; it keeps the same version as it's less confusing) - you can find out about breaking changes by release on the [Backwards Compatibility section on the official site](http://www.rgraph.net/docs/backwards-compatibility.html).
69
69
 
70
70
  ## Issues
71
71
 
@@ -1,3 +1,3 @@
1
1
  module RgraphRails
2
- VERSION = "1.0.8"
2
+ VERSION = "4.62"
3
3
  end
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -97,7 +97,7 @@
97
97
  'chart.axis.color': 'black',
98
98
  'chart.axis.linewidth': 1,
99
99
  'chart.gutter.top': 25,
100
- 'chart.gutter.bottom': 30,
100
+ 'chart.gutter.bottom': 35,
101
101
  'chart.gutter.left': 25,
102
102
  'chart.gutter.right': 25,
103
103
  'chart.labels': null,
@@ -613,6 +613,14 @@
613
613
  if (prop['chart.labels.ingraph']) {
614
614
  RG.DrawInGraphLabels(this);
615
615
  }
616
+
617
+
618
+ //
619
+ // Add the attribution (if textAccessible is enabled
620
+ //
621
+ //RG.attribution(this);
622
+
623
+
616
624
 
617
625
 
618
626
  /**
@@ -3721,13 +3729,13 @@ co.lineTo(
3721
3729
  for (var i=0; i<this.objects.length; ++i) {
3722
3730
  if (this.objects[i].properties['chart.combinedchart.effect']) {
3723
3731
 
3724
- var options = this.objects[i].properties['chart.combinedchart.effect.options'] ? eval('(' + this.objects[i].properties['chart.combinedchart.effect.options'] + ')') : null;
3732
+ // The options must be given as a string because of the
3733
+ // RGraph configuration system
3734
+ var options = this.objects[i].properties['chart.combinedchart.effect.options'] ? eval('(' + this.objects[i].properties['chart.combinedchart.effect.options'] + ')') : null,
3735
+ callback = this.objects[i].properties['chart.combinedchart.effect.callback'],
3736
+ func = this.objects[i].properties['chart.combinedchart.effect'];
3725
3737
 
3726
- (this.objects[i][this.objects[i].properties['chart.combinedchart.effect']])
3727
- (
3728
- options,
3729
- this.objects[i].properties['chart.combinedchart.effect.callback']
3730
- )
3738
+ (this.objects[i][func])(options, callback);
3731
3739
  } else {
3732
3740
  this.objects[i].draw();
3733
3741
  }
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,5 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
+ /**
2
3
  /**
3
4
  * o--------------------------------------------------------------------------------o
4
5
  * | This file is part of the RGraph package - you can learn more at: |
@@ -3718,19 +3719,29 @@
3718
3719
  // clearing to that canvas.
3719
3720
  RG.text2.domNodeCache.reset = function ()
3720
3721
  {
3722
+
3721
3723
  // Limit the clearing to a single canvas tag
3722
3724
  if (arguments[0]) {
3723
-
3724
- var nodes = RG.text2.domNodeCache[arguments[0].id];
3725
+
3726
+ if (typeof arguments[0] === 'string') {
3727
+ var ca = document.getElementById(arguments[0])
3728
+ } else {
3729
+ var ca = arguments[0];
3730
+ }
3731
+
3732
+ var nodes = RG.text2.domNodeCache[ca.id];
3725
3733
 
3726
3734
  for (j in nodes) {
3727
3735
 
3728
- var node = RG.text2.domNodeCache[arguments[0].id][j];
3736
+ var node = RG.text2.domNodeCache[ca.id][j];
3729
3737
 
3730
3738
  if (node && node.parentNode) {
3731
3739
  node.parentNode.removeChild(node);
3732
3740
  }
3733
3741
  }
3742
+
3743
+ RG.text2.domNodeCache[ca.id] = [];
3744
+ RG.text2.domNodeDimensionCache[ca.id] = [];
3734
3745
 
3735
3746
  // Clear all DOM text from all tags
3736
3747
  } else {
@@ -3741,6 +3752,9 @@
3741
3752
  }
3742
3753
  }
3743
3754
  }
3755
+
3756
+ RG.text2.domNodeCache = [];
3757
+ RG.text2.domNodeDimensionCache = [];
3744
3758
  }
3745
3759
  };
3746
3760
 
@@ -4710,7 +4724,7 @@
4710
4724
 
4711
4725
 
4712
4726
  /**
4713
- * Generates logs for... ...log charts
4727
+ * Generates logs for... log charts
4714
4728
  *
4715
4729
  * @param number n The number to generate the log for
4716
4730
  * @param number base The base to use
@@ -4849,10 +4863,73 @@
4849
4863
 
4850
4864
 
4851
4865
 
4866
+
4867
+
4868
+
4869
+
4852
4870
  /**
4853
- * NOT USED ANY MORE
4871
+ * Put the attribution on the canvas IF textAccessible is enabled.
4872
+ * By default it adds the attribution in the bottom right corner.
4873
+ *
4874
+ * @param object obj The chart object
4854
4875
  */
4855
- RG.att = function (ca){}
4876
+ RG.att =
4877
+ RG.attribution = function (obj)
4878
+ {
4879
+ var ca = obj.canvas,
4880
+ co = obj.context,
4881
+ prop = obj.properties;
4882
+
4883
+ if (!ca || !co) {
4884
+ return;
4885
+ }
4886
+
4887
+ // Needs to be a new var... statement here
4888
+ var width = ca.width,
4889
+ height = ca.height,
4890
+ wrapper = document.getElementById('cvs').__object__.canvas.parentNode,
4891
+ text = prop['chart.attribution.text'] || 'Free Charts with RGraph.net',
4892
+ x = prop['chart.attribution.x'], // null
4893
+ y = prop['chart.attribution.y'], // null
4894
+ bold = prop['chart.attribution.bold'], // false
4895
+ italic = prop['chart.attribution.italic'], // true
4896
+ font = prop['chart.attribution.font'] || 'sans-serif', // sans-serif
4897
+ size = prop['chart.attribution.size'] || 8, // 8
4898
+ underline = prop['chart.attribution.underline'] ? 'underline' : 'none', // false
4899
+ color = typeof prop['chart.attribution.color'] === 'string' ? prop['chart.attribution.color'] : '',
4900
+ href = typeof prop['chart.attribution.href'] === 'string' ? prop['chart.attribution.href'] : 'http://www.rgraph.net/canvas/index.html';
4901
+
4902
+ if (wrapper.attribution_node) {
4903
+ return;
4904
+ }
4905
+
4906
+
4907
+ // Take some measurements
4908
+ var measurements = RG.measureText(text, bold, font, size);
4909
+
4910
+ // Create the link
4911
+ var a = document.createElement('A');
4912
+ a.href = href;
4913
+ a.innerHTML = text;
4914
+ a.target = '_blank';
4915
+ a.style.position = 'absolute';
4916
+ a.style.left = typeof x === 'number' ? x : wrapper.offsetWidth - measurements[0] - 5 + 'px';
4917
+ a.style.top = typeof y === 'number' ? y : wrapper.offsetHeight - measurements[1] + 'px';
4918
+ a.style.fontSize = size + 'pt';
4919
+ a.style.fontStyle = typeof italic === 'boolean' ? (italic ? 'italic' : '') : 'italic',
4920
+ a.style.fontWeight = bold ? 'bold' : '',
4921
+ a.style.textDecoration = underline;
4922
+ a.style.fontFamily = font;
4923
+ a.style.color = color;
4924
+ wrapper.appendChild(a);
4925
+
4926
+ wrapper.attribution_node = a;
4927
+ };
4928
+
4929
+
4930
+
4931
+
4932
+
4856
4933
 
4857
4934
 
4858
4935
 
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -716,7 +716,7 @@
716
716
  }
717
717
 
718
718
  return style;
719
- })() + 'display: inline-block; margin-right: 5px; margin-top: 4px; width: 15px; height: 15px; background-color: ' + prop.colors[i] + '"' + (prop.blobClass ? 'class="' + prop.blobClass + '"' : '') + '>&nbsp;</div><td>' + (prop.links && prop.links[i] ? '<a href="' + prop.links[i] + '">' : '') + '<span ' + (prop.labelClass ? 'class="' + prop.labelClass + '"' : '') + '" ' + (function ()
719
+ })() + 'display: inline-block; margin-right: 5px; margin-top: 4px; width: 15px; height: 15px; background-color: ' + prop.colors[i] + '"' + (prop.blobClass ? 'class="' + prop.blobClass + '"' : '') + '>&nbsp;</div><td>' + (prop.links && prop.links[i] ? '<a href="' + prop.links[i] + '">' : '') + '<span ' + (prop.labelClass ? 'class="' + prop.labelClass + '"' : '') + '" style="' + (function ()
720
720
  {
721
721
  var style = '';
722
722
 
@@ -727,7 +727,7 @@
727
727
  }
728
728
 
729
729
  return style;
730
- })() + (function ()
730
+ })() + '" ' + (function ()
731
731
  {
732
732
  var style = '';
733
733
 
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -1,4 +1,4 @@
1
- // version: 2017-01-02
1
+ // version: 2017-05-08
2
2
  /**
3
3
  * o--------------------------------------------------------------------------------o
4
4
  * | This file is part of the RGraph package - you can learn more at: |
@@ -2360,7 +2360,7 @@
2360
2360
  obj.original_data = RG.arrayClone(obj.data);
2361
2361
 
2362
2362
 
2363
- // Stop the scale from changing by setting chart.ymax (if it's not already set)
2363
+ // Stop the scale from changing by setting chart.xmax (if it's not already set)
2364
2364
  if (prop['chart.xmax'] == 0) {
2365
2365
 
2366
2366
  var xmax = 0;
@@ -2422,6 +2422,232 @@
2422
2422
 
2423
2423
 
2424
2424
 
2425
+
2426
+
2427
+
2428
+
2429
+ /**
2430
+ * Grow
2431
+ *
2432
+ * The HBar chart Grow effect gradually increases the values of the bars
2433
+ *
2434
+ * @param object An object of options - eg: {frames: 30}
2435
+ * @param function A function to call when the effect is complete
2436
+ */
2437
+ this.grow = function ()
2438
+ {
2439
+ // Callback
2440
+ var opt = arguments[0] || {},
2441
+ frames = opt.frames || 30,
2442
+ frame = 0,
2443
+ callback = arguments[1] || function () {},
2444
+ obj = this,
2445
+ labelsAbove = this.get('labelsAbove')
2446
+
2447
+
2448
+
2449
+
2450
+ this.original_data = RG.arrayClone(this.data);
2451
+
2452
+
2453
+
2454
+ // Stop the scale from changing by setting chart.xmax (if it's not already set)
2455
+ if (prop['chart.xmax'] == 0) {
2456
+
2457
+ var xmax = 0;
2458
+
2459
+ for (var i=0; i<obj.data.length; ++i) {
2460
+ if (RG.isArray(obj.data[i]) && prop['chart.grouping'] == 'stacked') {
2461
+ xmax = ma.max(xmax, RG.arraySum(obj.data[i]));
2462
+ } else if (RG.isArray(obj.data[i]) && prop['chart.grouping'] == 'grouped') {
2463
+ xmax = ma.max(xmax, RG.arrayMax(obj.data[i]));
2464
+ } else {
2465
+ xmax = ma.max(xmax, ma.abs(RG.arrayMax(obj.data[i])));
2466
+ }
2467
+ }
2468
+
2469
+ var scale2 = RG.getScale2(obj, {'max':xmax});
2470
+ obj.Set('chart.xmax', scale2.max);
2471
+ }
2472
+
2473
+
2474
+ // Go through the data and change string arguments of the format +/-[0-9]
2475
+ // to absolute numbers
2476
+ if (RG.isArray(opt.data)) {
2477
+
2478
+ var xmax = 0;
2479
+
2480
+ for (var i=0; i<opt.data.length; ++i) {
2481
+ if (typeof opt.data[i] === 'object') {
2482
+ for (var j=0; j<opt.data[i].length; ++j) {
2483
+ if (typeof opt.data[i][j] === 'string'&& opt.data[i][j].match(/(\+|\-)([0-9]+)/)) {
2484
+ if (RegExp.$1 === '+') {
2485
+ opt.data[i][j] = this.original_data[i][j] + parseInt(RegExp.$2);
2486
+ } else {
2487
+ opt.data[i][j] = this.original_data[i][j] - parseInt(RegExp.$2);
2488
+ }
2489
+ }
2490
+
2491
+ xmax = ma.max(xmax, opt.data[i][j]);
2492
+ }
2493
+ } else if (typeof opt.data[i] === 'string' && opt.data[i].match(/(\+|\-)([0-9]+)/)) {
2494
+ if (RegExp.$1 === '+') {
2495
+ opt.data[i] = this.original_data[i] + parseFloat(RegExp.$2);
2496
+ } else {
2497
+ opt.data[i] = this.original_data[i] - parseFloat(RegExp.$2);
2498
+ }
2499
+
2500
+ xmax = ma.max(xmax, opt.data[i]);
2501
+ } else {
2502
+ xmax = ma.max(xmax, opt.data[i]);
2503
+ }
2504
+ }
2505
+
2506
+
2507
+ var scale = RG.getScale2(this, {'max':xmax});
2508
+ if (typeof this.get('chart.xmax') === 'null') {
2509
+ this.set('chart.xmax', scale.max);
2510
+ }
2511
+ }
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+ //
2519
+ // turn off the labelsAbove option whilst animating
2520
+ //
2521
+ this.set('labelsAbove', false);
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+ // Stop the scale from changing by setting chart.xmax (if it's not already set)
2529
+ if (RG.isNull(prop['chart.xmax'])) {
2530
+
2531
+ var xmax = 0;
2532
+
2533
+ for (var i=0; i<obj.data.length; ++i) {
2534
+ if (RG.isArray(this.data[i]) && prop['chart.grouping'] === 'stacked') {
2535
+ xmax = ma.max(xmax, ma.abs(RG.arraySum(this.data[i])));
2536
+
2537
+ } else if (RG.isArray(this.data[i]) && prop['chart.grouping'] === 'grouped') {
2538
+
2539
+ for (var j=0,group=[]; j<this.data[i].length; j++) {
2540
+ group.push(ma.abs(this.data[i][j]));
2541
+ }
2542
+
2543
+ xmax = ma.max(xmax, ma.abs(RG.arrayMax(group)));
2544
+
2545
+ } else {
2546
+ xmax = ma.max(xmax, ma.abs(this.data[i]));
2547
+ }
2548
+ }
2549
+
2550
+ var scale = RG.getScale2(this, {'max':xmax});
2551
+ this.Set('chart.xmax', scale.max);
2552
+ }
2553
+
2554
+ // You can give an xmax to the grow function
2555
+ if (typeof opt.xmax === 'number') {
2556
+ obj.set('xmax', opt.xmax);
2557
+ }
2558
+
2559
+
2560
+
2561
+ var iterator = function ()
2562
+ {
2563
+ var easingMultiplier = RG.Effects.getEasingMultiplier(frames, frame);
2564
+
2565
+ // Alter the Bar chart data depending on the frame
2566
+ for (var j=0,len=obj.original_data.length; j<len; ++j) {
2567
+ if (typeof obj.data[j] === 'object' && !RG.isNull(obj.data[j])) {
2568
+ for (var k=0,len2=obj.data[j].length; k<len2; ++k) {
2569
+ if (obj.firstDraw || !opt.data) {
2570
+ obj.data[j][k] = easingMultiplier * obj.original_data[j][k];
2571
+ } else if (opt.data && opt.data.length === obj.original_data.length) {
2572
+ var diff = opt.data[j][k] - obj.original_data[j][k];
2573
+ obj.data[j][k] = (easingMultiplier * diff) + obj.original_data[j][k];
2574
+ }
2575
+ }
2576
+ } else {
2577
+
2578
+ if (obj.firstDraw || !opt.data) {
2579
+ obj.data[j] = easingMultiplier * obj.original_data[j];
2580
+ } else if (opt.data && opt.data.length === obj.original_data.length) {
2581
+ var diff = opt.data[j] - obj.original_data[j];
2582
+ obj.data[j] = (easingMultiplier * diff) + obj.original_data[j];
2583
+ }
2584
+ }
2585
+ }
2586
+
2587
+
2588
+
2589
+
2590
+ //RGraph.clear(obj.canvas);
2591
+ RG.redrawCanvas(obj.canvas);
2592
+
2593
+
2594
+
2595
+
2596
+ if (frame < frames) {
2597
+ frame += 1;
2598
+
2599
+ RG.Effects.updateCanvas(iterator);
2600
+
2601
+ // Call the callback function
2602
+ } else {
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+ // Do some housekeeping if new data was specified thats done in
2609
+ // the constructor - but needs to be redone because new data
2610
+ // has been specified
2611
+ if (RG.isArray(opt.data)) {
2612
+
2613
+ var linear_data = RG.arrayLinearize(data);
2614
+
2615
+ for (var i=0; i<linear_data.length; ++i) {
2616
+ if (!obj['$' + i]) {
2617
+ obj['$' + i] = {};
2618
+ }
2619
+ }
2620
+ }
2621
+
2622
+
2623
+
2624
+ obj.data = data;
2625
+ obj.original_data = RG.arrayClone(data);
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+ if (labelsAbove) {
2632
+ obj.set('labelsAbove', true);
2633
+ RG.redraw();
2634
+ }
2635
+ callback(obj);
2636
+ }
2637
+ };
2638
+
2639
+ iterator();
2640
+
2641
+ return this;
2642
+ };
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2425
2651
  /**
2426
2652
  * (new) Bar chart Wave effect. This is a rewrite that should be smoother
2427
2653
  * because it just uses a single loop and not setTimeout