highstock-rails 2.1.10 → 5.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/css/highcharts.css +760 -0
  3. data/app/assets/javascripts/highstock.js +511 -419
  4. data/app/assets/javascripts/highstock/highstock.js +472 -0
  5. data/app/assets/javascripts/highstock/highstock.js.map +8 -0
  6. data/app/assets/javascripts/highstock/highstock.src.js +28809 -0
  7. data/app/assets/javascripts/highstock/modules/accessibility.js +48 -0
  8. data/app/assets/javascripts/highstock/modules/accessibility.js.map +8 -0
  9. data/app/assets/javascripts/highstock/modules/accessibility.src.js +1131 -0
  10. data/app/assets/javascripts/highstock/modules/annotations.js +14 -0
  11. data/app/assets/javascripts/highstock/modules/annotations.js.map +8 -0
  12. data/app/assets/javascripts/highstock/modules/annotations.src.js +407 -0
  13. data/app/assets/javascripts/highstock/modules/boost-canvas.js +23 -0
  14. data/app/assets/javascripts/highstock/modules/boost-canvas.js.map +8 -0
  15. data/app/assets/javascripts/highstock/modules/boost-canvas.src.js +771 -0
  16. data/app/assets/javascripts/highstock/modules/boost.js +51 -12
  17. data/app/assets/javascripts/highstock/modules/boost.js.map +8 -0
  18. data/app/assets/javascripts/highstock/modules/boost.src.js +2580 -492
  19. data/app/assets/javascripts/highstock/modules/broken-axis.js.map +8 -0
  20. data/app/assets/javascripts/highstock/modules/canvasrenderer.experimental.js.map +8 -0
  21. data/app/assets/javascripts/highstock/modules/data.js +19 -19
  22. data/app/assets/javascripts/highstock/modules/data.js.map +8 -0
  23. data/app/assets/javascripts/highstock/modules/data.src.js +974 -950
  24. data/app/assets/javascripts/highstock/modules/drilldown.js +25 -17
  25. data/app/assets/javascripts/highstock/modules/drilldown.js.map +8 -0
  26. data/app/assets/javascripts/highstock/modules/drilldown.src.js +790 -709
  27. data/app/assets/javascripts/highstock/modules/export-data.js +17 -0
  28. data/app/assets/javascripts/highstock/modules/export-data.js.map +8 -0
  29. data/app/assets/javascripts/highstock/modules/export-data.src.js +417 -0
  30. data/app/assets/javascripts/highstock/modules/exporting.js +21 -18
  31. data/app/assets/javascripts/highstock/modules/exporting.js.map +8 -0
  32. data/app/assets/javascripts/highstock/modules/exporting.src.js +1013 -768
  33. data/app/assets/javascripts/highstock/modules/funnel.js +6 -7
  34. data/app/assets/javascripts/highstock/modules/funnel.js.map +8 -0
  35. data/app/assets/javascripts/highstock/modules/funnel.src.js +284 -308
  36. data/app/assets/javascripts/highstock/modules/gantt.js +24 -0
  37. data/app/assets/javascripts/highstock/modules/gantt.js.map +8 -0
  38. data/app/assets/javascripts/highstock/modules/gantt.src.js +793 -0
  39. data/app/assets/javascripts/highstock/modules/grid-axis.js +19 -0
  40. data/app/assets/javascripts/highstock/modules/grid-axis.js.map +8 -0
  41. data/app/assets/javascripts/highstock/modules/grid-axis.src.js +545 -0
  42. data/app/assets/javascripts/highstock/modules/heatmap.js +20 -18
  43. data/app/assets/javascripts/highstock/modules/heatmap.js.map +8 -0
  44. data/app/assets/javascripts/highstock/modules/heatmap.src.js +738 -633
  45. data/app/assets/javascripts/highstock/modules/map-parser.js.map +8 -0
  46. data/app/assets/javascripts/highstock/modules/map.js.map +8 -0
  47. data/app/assets/javascripts/highstock/modules/no-data-to-display.js +5 -5
  48. data/app/assets/javascripts/highstock/modules/no-data-to-display.js.map +8 -0
  49. data/app/assets/javascripts/highstock/modules/no-data-to-display.src.js +140 -133
  50. data/app/assets/javascripts/highstock/modules/offline-exporting.js +12 -7
  51. data/app/assets/javascripts/highstock/modules/offline-exporting.js.map +8 -0
  52. data/app/assets/javascripts/highstock/modules/offline-exporting.src.js +543 -270
  53. data/app/assets/javascripts/highstock/modules/overlapping-datalabels.js +10 -0
  54. data/app/assets/javascripts/highstock/modules/overlapping-datalabels.js.map +8 -0
  55. data/app/assets/javascripts/highstock/modules/overlapping-datalabels.src.js +187 -0
  56. data/app/assets/javascripts/highstock/modules/series-label.js +19 -0
  57. data/app/assets/javascripts/highstock/modules/series-label.js.map +8 -0
  58. data/app/assets/javascripts/highstock/modules/series-label.src.js +606 -0
  59. data/app/assets/javascripts/highstock/modules/solid-gauge.js +9 -8
  60. data/app/assets/javascripts/highstock/modules/solid-gauge.js.map +8 -0
  61. data/app/assets/javascripts/highstock/modules/solid-gauge.src.js +334 -266
  62. data/app/assets/javascripts/highstock/modules/static-scale.js +12 -0
  63. data/app/assets/javascripts/highstock/modules/static-scale.js.map +8 -0
  64. data/app/assets/javascripts/highstock/modules/static-scale.src.js +64 -0
  65. data/app/assets/javascripts/highstock/modules/stock.js +123 -0
  66. data/app/assets/javascripts/highstock/modules/stock.js.map +8 -0
  67. data/app/assets/javascripts/highstock/modules/stock.src.js +6247 -0
  68. data/app/assets/javascripts/highstock/modules/treemap.js +22 -23
  69. data/app/assets/javascripts/highstock/modules/treemap.js.map +8 -0
  70. data/app/assets/javascripts/highstock/modules/treemap.src.js +884 -859
  71. data/app/assets/javascripts/highstock/modules/xrange-series.js +15 -0
  72. data/app/assets/javascripts/highstock/modules/xrange-series.js.map +8 -0
  73. data/app/assets/javascripts/highstock/modules/xrange-series.src.js +258 -0
  74. data/app/assets/javascripts/highstock/themes/dark-blue.js +307 -244
  75. data/app/assets/javascripts/highstock/themes/dark-green.js +303 -244
  76. data/app/assets/javascripts/highstock/themes/dark-unica.js +231 -201
  77. data/app/assets/javascripts/highstock/themes/gray.js +314 -245
  78. data/app/assets/javascripts/highstock/themes/grid-light.js +91 -66
  79. data/app/assets/javascripts/highstock/themes/grid.js +124 -96
  80. data/app/assets/javascripts/highstock/themes/sand-signika.js +119 -94
  81. data/app/assets/javascripts/highstock/themes/skies.js +108 -85
  82. data/lib/highstock/rails/version.rb +1 -1
  83. metadata +54 -11
  84. data/app/assets/javascripts/highstock/adapters/standalone-framework.js +0 -18
  85. data/app/assets/javascripts/highstock/adapters/standalone-framework.src.js +0 -635
  86. data/app/assets/javascripts/highstock/highcharts-3d.js +0 -48
  87. data/app/assets/javascripts/highstock/highcharts-3d.src.js +0 -1711
  88. data/app/assets/javascripts/highstock/highcharts-more.js +0 -55
  89. data/app/assets/javascripts/highstock/highstock-all.js +0 -637
  90. data/app/assets/javascripts/highstock/modules/canvas-tools.js +0 -133
  91. data/app/assets/javascripts/highstock/modules/canvas-tools.src.js +0 -3114
@@ -0,0 +1,15 @@
1
+ /*
2
+ Highcharts JS v5.0.11 (2017-05-04)
3
+ X-range series
4
+
5
+ (c) 2010-2017 Torstein Honsi, Lars A. V. Cabrera
6
+
7
+ --- WORK IN PROGRESS ---
8
+
9
+ License: www.highcharts.com/license
10
+ */
11
+ (function(g){"object"===typeof module&&module.exports?module.exports=g:g(Highcharts)})(function(g){(function(d){var g=d.getOptions().plotOptions,m=d.seriesTypes.column,k=d.each,p=d.extendClass,q=d.isNumber,v=d.isObject,n=d.merge,r=d.pick,t=d.seriesTypes,w=d.wrap,x=d.Axis,u=d.Point,y=d.Series;g.xrange=n(g.column,{tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.yCategory}\x3c/b\x3e\x3cbr/\x3e'}});t.xrange=p(m,{pointClass:p(u,{getLabelConfig:function(){var f=
12
+ u.prototype.getLabelConfig.call(this);f.x2=this.x2;f.yCategory=this.yCategory=this.series.yAxis.categories&&this.series.yAxis.categories[this.y];return f}}),type:"xrange",forceDL:!0,parallelArrays:["x","x2","y"],requireSorting:!1,animate:t.line.prototype.animate,getColumnMetrics:function(){function f(){k(h.series,function(b){var a=b.xAxis;b.xAxis=b.yAxis;b.yAxis=a})}var e,h=this.chart;f();this.yAxis.closestPointRange=1;e=m.prototype.getColumnMetrics.call(this);f();return e},cropData:function(f,e,
13
+ h,b){e=y.prototype.cropData.call(this,this.x2Data,e,h,b);e.xData=f.slice(e.start,e.end);return e},translate:function(){m.prototype.translate.apply(this,arguments);var f=this.xAxis,e=this.columnMetrics,h=this.options.minPointLength||0;k(this.points,function(b){var a=b.plotX,c=r(b.x2,b.x+(b.len||0)),c=f.toPixels(c,!0),d=c-a,l;h&&(l=h-d,0>l&&(l=0),a-=l/2,c+=l/2);a=Math.max(a,-10);c=Math.min(Math.max(c,-10),f.len+10);c<a&&(c=a);b.shapeArgs={x:a,y:b.plotY+e.offset,width:c-a,height:e.width};b.tooltipPos[0]+=
14
+ d/2;b.tooltipPos[1]-=e.width/2;if(c=b.partialFill)v(c)&&(c=c.amount),q(c)||(c=0),a=b.shapeArgs,b.partShapeArgs={x:a.x,y:a.y+1,width:a.width*c,height:a.height-2}})},drawPoints:function(){var f=this,e=this.chart,d=e.renderer,b=e.pointCount<(f.options.animationLimit||250)?"animate":"attr";k(f.points,function(a){var c=a.graphic,e=a.shapeType,h=a.shapeArgs,g=a.partShapeArgs;if(q(a.plotY)&&null!==a.y)if(c){if(a.graphicOriginal[b](n(h)),g)a.graphicOverlay[b](n(g))}else a.graphic=c=d.g("point").attr({"class":a.getClassName()}).add(a.group||
15
+ f.group),a.graphicOriginal=d[e](h).addClass("highcharts-partfill-original").add(c),g&&(a.graphicOverlay=d[e](g).addClass("highcharts-partfill-overlay").add(c));else c&&(a.graphic=c.destroy())})}});w(x.prototype,"getSeriesExtremes",function(d){var e=this.series,f,b;d.call(this);this.isXAxis&&"xrange"===e.type&&(f=r(this.dataMax,Number.MIN_VALUE),k(this.series,function(a){k(a.x2Data||[],function(a){a>f&&(f=a,b=!0)})}),b&&(this.dataMax=f))})})(g)});
@@ -0,0 +1,8 @@
1
+ {
2
+ "version":3,
3
+ "file":"",
4
+ "lineCount":15,
5
+ "mappings":"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",
6
+ "sources":["Input_0"],
7
+ "names":["factory","module","exports","Highcharts","H","defaultPlotOptions","getOptions","plotOptions","columnType","seriesTypes","column","each","extendClass","isNumber","isObject","merge","pick","wrap","Axis","Point","Series","xrange","tooltip","pointFormat","pointClass","getLabelConfig","cfg","prototype","call","x2","yCategory","series","yAxis","categories","y","type","forceDL","parallelArrays","requireSorting","animate","line","getColumnMetrics","swapAxes","chart","s","xAxis","metrics","closestPointRange","cropData","xData","yData","min","max","crop","x2Data","slice","start","end","translate","apply","arguments","columnMetrics","minPointLength","options","points","point","plotX","posX","x","len","plotX2","toPixels","width","widthDifference","Math","shapeArgs","plotY","offset","height","tooltipPos","partialFill","amount","partShapeArgs","drawPoints","renderer","verb","pointCount","animationLimit","graphic","shapeType","graphicOriginal","graphicOverlay","g","attr","getClassName","add","group","addClass","destroy","proceed","axis","dataMax","modMax","isXAxis","Number","MIN_VALUE","val"]
8
+ }
@@ -0,0 +1,258 @@
1
+ /**
2
+ * @license Highcharts JS v5.0.11 (2017-05-04)
3
+ * X-range series
4
+ *
5
+ * (c) 2010-2017 Torstein Honsi, Lars A. V. Cabrera
6
+ *
7
+ * --- WORK IN PROGRESS ---
8
+ *
9
+ * License: www.highcharts.com/license
10
+ */
11
+ 'use strict';
12
+ (function(factory) {
13
+ if (typeof module === 'object' && module.exports) {
14
+ module.exports = factory;
15
+ } else {
16
+ factory(Highcharts);
17
+ }
18
+ }(function(Highcharts) {
19
+ (function(H) {
20
+ /**
21
+ * (c) 2014-2017 Highsoft AS
22
+ * Authors: Torstein Honsi, Lars A. V. Cabrera
23
+ *
24
+ * License: www.highcharts.com/license
25
+ */
26
+
27
+ var defaultPlotOptions = H.getOptions().plotOptions,
28
+ color = H.Color,
29
+ columnType = H.seriesTypes.column,
30
+ each = H.each,
31
+ extendClass = H.extendClass,
32
+ isNumber = H.isNumber,
33
+ isObject = H.isObject,
34
+ merge = H.merge,
35
+ pick = H.pick,
36
+ seriesTypes = H.seriesTypes,
37
+ wrap = H.wrap,
38
+ Axis = H.Axis,
39
+ Point = H.Point,
40
+ Series = H.Series,
41
+ pointFormat = '<span style="color:{point.color}">' +
42
+ '\u25CF' +
43
+ '</span> {series.name}: <b>{point.yCategory}</b><br/>',
44
+ xrange = 'xrange';
45
+
46
+ defaultPlotOptions.xrange = merge(defaultPlotOptions.column, {
47
+ tooltip: {
48
+ pointFormat: pointFormat
49
+ }
50
+ });
51
+ seriesTypes.xrange = extendClass(columnType, {
52
+ pointClass: extendClass(Point, {
53
+ // Add x2 and yCategory to the available properties for tooltip formats
54
+ getLabelConfig: function() {
55
+ var cfg = Point.prototype.getLabelConfig.call(this);
56
+
57
+ cfg.x2 = this.x2;
58
+ cfg.yCategory = this.yCategory = this.series.yAxis.categories && this.series.yAxis.categories[this.y];
59
+ return cfg;
60
+ }
61
+ }),
62
+ type: xrange,
63
+ forceDL: true,
64
+ parallelArrays: ['x', 'x2', 'y'],
65
+ requireSorting: false,
66
+ animate: seriesTypes.line.prototype.animate,
67
+
68
+ /**
69
+ * Borrow the column series metrics, but with swapped axes. This gives free access
70
+ * to features like groupPadding, grouping, pointWidth etc.
71
+ */
72
+ getColumnMetrics: function() {
73
+ var metrics,
74
+ chart = this.chart;
75
+
76
+ function swapAxes() {
77
+ each(chart.series, function(s) {
78
+ var xAxis = s.xAxis;
79
+ s.xAxis = s.yAxis;
80
+ s.yAxis = xAxis;
81
+ });
82
+ }
83
+
84
+ swapAxes();
85
+
86
+ this.yAxis.closestPointRange = 1;
87
+ metrics = columnType.prototype.getColumnMetrics.call(this);
88
+
89
+ swapAxes();
90
+
91
+ return metrics;
92
+ },
93
+
94
+ /**
95
+ * Override cropData to show a point where x is outside visible range
96
+ * but x2 is outside.
97
+ */
98
+ cropData: function(xData, yData, min, max) {
99
+
100
+ // Replace xData with x2Data to find the appropriate cropStart
101
+ var cropData = Series.prototype.cropData,
102
+ crop = cropData.call(this, this.x2Data, yData, min, max);
103
+
104
+ // Re-insert the cropped xData
105
+ crop.xData = xData.slice(crop.start, crop.end);
106
+
107
+ return crop;
108
+ },
109
+
110
+ translate: function() {
111
+ columnType.prototype.translate.apply(this, arguments);
112
+ var series = this,
113
+ xAxis = series.xAxis,
114
+ metrics = series.columnMetrics,
115
+ minPointLength = series.options.minPointLength || 0;
116
+
117
+ each(series.points, function(point) {
118
+ var plotX = point.plotX,
119
+ posX = pick(point.x2, point.x + (point.len || 0)),
120
+ plotX2 = xAxis.toPixels(posX, true),
121
+ width = plotX2 - plotX,
122
+ widthDifference,
123
+ shapeArgs,
124
+ partialFill;
125
+
126
+ if (minPointLength) {
127
+ widthDifference = minPointLength - width;
128
+ if (widthDifference < 0) {
129
+ widthDifference = 0;
130
+ }
131
+ plotX -= widthDifference / 2;
132
+ plotX2 += widthDifference / 2;
133
+ }
134
+
135
+ plotX = Math.max(plotX, -10);
136
+ plotX2 = Math.min(Math.max(plotX2, -10), xAxis.len + 10);
137
+
138
+ if (plotX2 < plotX) { // #6107
139
+ plotX2 = plotX;
140
+ }
141
+
142
+ point.shapeArgs = {
143
+ x: plotX,
144
+ y: point.plotY + metrics.offset,
145
+ width: plotX2 - plotX,
146
+ height: metrics.width
147
+ };
148
+ point.tooltipPos[0] += width / 2;
149
+ point.tooltipPos[1] -= metrics.width / 2;
150
+
151
+ // Add a partShapeArgs to the point, based on the shapeArgs property
152
+ partialFill = point.partialFill;
153
+ if (partialFill) {
154
+ // Get the partial fill amount
155
+ if (isObject(partialFill)) {
156
+ partialFill = partialFill.amount;
157
+ }
158
+ // If it was not a number, assume 0
159
+ if (!isNumber(partialFill)) {
160
+ partialFill = 0;
161
+ }
162
+ shapeArgs = point.shapeArgs;
163
+ point.partShapeArgs = {
164
+ x: shapeArgs.x,
165
+ y: shapeArgs.y + 1,
166
+ width: shapeArgs.width * partialFill,
167
+ height: shapeArgs.height - 2
168
+ };
169
+ }
170
+ });
171
+ },
172
+
173
+ drawPoints: function() {
174
+ var series = this,
175
+ chart = this.chart,
176
+ options = series.options,
177
+ renderer = chart.renderer,
178
+ animationLimit = options.animationLimit || 250,
179
+ verb = chart.pointCount < animationLimit ? 'animate' : 'attr';
180
+
181
+ // draw the columns
182
+ each(series.points, function(point) {
183
+ var plotY = point.plotY,
184
+ graphic = point.graphic,
185
+ type = point.shapeType,
186
+ shapeArgs = point.shapeArgs,
187
+ partShapeArgs = point.partShapeArgs,
188
+ seriesOpts = series.options,
189
+ pfOptions = point.partialFill,
190
+ fill,
191
+ state = point.selected && 'select',
192
+ cutOff = options.stacking && !options.borderRadius;
193
+
194
+ if (isNumber(plotY) && point.y !== null) {
195
+ if (graphic) { // update
196
+ point.graphicOriginal[verb](
197
+ merge(shapeArgs)
198
+ );
199
+ if (partShapeArgs) {
200
+ point.graphicOverlay[verb](
201
+ merge(partShapeArgs)
202
+ );
203
+ }
204
+
205
+ } else {
206
+ point.graphic = graphic = renderer.g('point')
207
+ .attr({
208
+ 'class': point.getClassName()
209
+ })
210
+ .add(point.group || series.group);
211
+
212
+ point.graphicOriginal = renderer[type](shapeArgs)
213
+ .addClass('highcharts-partfill-original')
214
+ .add(graphic);
215
+ if (partShapeArgs) {
216
+ point.graphicOverlay = renderer[type](partShapeArgs)
217
+ .addClass('highcharts-partfill-overlay')
218
+ .add(graphic);
219
+ }
220
+ }
221
+
222
+
223
+
224
+ } else if (graphic) {
225
+ point.graphic = graphic.destroy(); // #1269
226
+ }
227
+ });
228
+ }
229
+ });
230
+
231
+ /**
232
+ * Max x2 should be considered in xAxis extremes
233
+ */
234
+ wrap(Axis.prototype, 'getSeriesExtremes', function(proceed) {
235
+ var axis = this,
236
+ series = axis.series,
237
+ dataMax,
238
+ modMax;
239
+
240
+ proceed.call(this);
241
+ if (axis.isXAxis && series.type === xrange) {
242
+ dataMax = pick(axis.dataMax, Number.MIN_VALUE);
243
+ each(this.series, function(series) {
244
+ each(series.x2Data || [], function(val) {
245
+ if (val > dataMax) {
246
+ dataMax = val;
247
+ modMax = true;
248
+ }
249
+ });
250
+ });
251
+ if (modMax) {
252
+ axis.dataMax = dataMax;
253
+ }
254
+ }
255
+ });
256
+
257
+ }(Highcharts));
258
+ }));
@@ -1,254 +1,317 @@
1
1
  /**
2
- * Dark blue theme for Highcharts JS
3
- * @author Torstein Honsi
2
+ * @license Highcharts JS v5.0.11 (2017-05-04)
3
+ *
4
+ * (c) 2009-2017 Torstein Honsi
5
+ *
6
+ * License: www.highcharts.com/license
4
7
  */
8
+ 'use strict';
9
+ (function(factory) {
10
+ if (typeof module === 'object' && module.exports) {
11
+ module.exports = factory;
12
+ } else {
13
+ factory(Highcharts);
14
+ }
15
+ }(function(Highcharts) {
16
+ (function(Highcharts) {
17
+ /**
18
+ * (c) 2010-2017 Torstein Honsi
19
+ *
20
+ * License: www.highcharts.com/license
21
+ *
22
+ * Dark blue theme for Highcharts JS
23
+ * @author Torstein Honsi
24
+ */
25
+ Highcharts.theme = {
26
+ colors: ['#DDDF0D', '#55BF3B', '#DF5353', '#7798BF', '#aaeeee', '#ff0066', '#eeaaee',
27
+ '#55BF3B', '#DF5353', '#7798BF', '#aaeeee'
28
+ ],
29
+ chart: {
30
+ backgroundColor: {
31
+ linearGradient: {
32
+ x1: 0,
33
+ y1: 0,
34
+ x2: 1,
35
+ y2: 1
36
+ },
37
+ stops: [
38
+ [0, 'rgb(48, 48, 96)'],
39
+ [1, 'rgb(0, 0, 0)']
40
+ ]
41
+ },
42
+ borderColor: '#000000',
43
+ borderWidth: 2,
44
+ className: 'dark-container',
45
+ plotBackgroundColor: 'rgba(255, 255, 255, .1)',
46
+ plotBorderColor: '#CCCCCC',
47
+ plotBorderWidth: 1
48
+ },
49
+ title: {
50
+ style: {
51
+ color: '#C0C0C0',
52
+ font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
53
+ }
54
+ },
55
+ subtitle: {
56
+ style: {
57
+ color: '#666666',
58
+ font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
59
+ }
60
+ },
61
+ xAxis: {
62
+ gridLineColor: '#333333',
63
+ gridLineWidth: 1,
64
+ labels: {
65
+ style: {
66
+ color: '#A0A0A0'
67
+ }
68
+ },
69
+ lineColor: '#A0A0A0',
70
+ tickColor: '#A0A0A0',
71
+ title: {
72
+ style: {
73
+ color: '#CCC',
74
+ fontWeight: 'bold',
75
+ fontSize: '12px',
76
+ fontFamily: 'Trebuchet MS, Verdana, sans-serif'
5
77
 
6
- Highcharts.theme = {
7
- colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
8
- "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
9
- chart: {
10
- backgroundColor: {
11
- linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
12
- stops: [
13
- [0, 'rgb(48, 48, 96)'],
14
- [1, 'rgb(0, 0, 0)']
15
- ]
16
- },
17
- borderColor: '#000000',
18
- borderWidth: 2,
19
- className: 'dark-container',
20
- plotBackgroundColor: 'rgba(255, 255, 255, .1)',
21
- plotBorderColor: '#CCCCCC',
22
- plotBorderWidth: 1
23
- },
24
- title: {
25
- style: {
26
- color: '#C0C0C0',
27
- font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
28
- }
29
- },
30
- subtitle: {
31
- style: {
32
- color: '#666666',
33
- font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
34
- }
35
- },
36
- xAxis: {
37
- gridLineColor: '#333333',
38
- gridLineWidth: 1,
39
- labels: {
40
- style: {
41
- color: '#A0A0A0'
42
- }
43
- },
44
- lineColor: '#A0A0A0',
45
- tickColor: '#A0A0A0',
46
- title: {
47
- style: {
48
- color: '#CCC',
49
- fontWeight: 'bold',
50
- fontSize: '12px',
51
- fontFamily: 'Trebuchet MS, Verdana, sans-serif'
78
+ }
79
+ }
80
+ },
81
+ yAxis: {
82
+ gridLineColor: '#333333',
83
+ labels: {
84
+ style: {
85
+ color: '#A0A0A0'
86
+ }
87
+ },
88
+ lineColor: '#A0A0A0',
89
+ minorTickInterval: null,
90
+ tickColor: '#A0A0A0',
91
+ tickWidth: 1,
92
+ title: {
93
+ style: {
94
+ color: '#CCC',
95
+ fontWeight: 'bold',
96
+ fontSize: '12px',
97
+ fontFamily: 'Trebuchet MS, Verdana, sans-serif'
98
+ }
99
+ }
100
+ },
101
+ tooltip: {
102
+ backgroundColor: 'rgba(0, 0, 0, 0.75)',
103
+ style: {
104
+ color: '#F0F0F0'
105
+ }
106
+ },
107
+ toolbar: {
108
+ itemStyle: {
109
+ color: 'silver'
110
+ }
111
+ },
112
+ plotOptions: {
113
+ line: {
114
+ dataLabels: {
115
+ color: '#CCC'
116
+ },
117
+ marker: {
118
+ lineColor: '#333'
119
+ }
120
+ },
121
+ spline: {
122
+ marker: {
123
+ lineColor: '#333'
124
+ }
125
+ },
126
+ scatter: {
127
+ marker: {
128
+ lineColor: '#333'
129
+ }
130
+ },
131
+ candlestick: {
132
+ lineColor: 'white'
133
+ }
134
+ },
135
+ legend: {
136
+ itemStyle: {
137
+ font: '9pt Trebuchet MS, Verdana, sans-serif',
138
+ color: '#A0A0A0'
139
+ },
140
+ itemHoverStyle: {
141
+ color: '#FFF'
142
+ },
143
+ itemHiddenStyle: {
144
+ color: '#444'
145
+ }
146
+ },
147
+ credits: {
148
+ style: {
149
+ color: '#666'
150
+ }
151
+ },
152
+ labels: {
153
+ style: {
154
+ color: '#CCC'
155
+ }
156
+ },
52
157
 
53
- }
54
- }
55
- },
56
- yAxis: {
57
- gridLineColor: '#333333',
58
- labels: {
59
- style: {
60
- color: '#A0A0A0'
61
- }
62
- },
63
- lineColor: '#A0A0A0',
64
- minorTickInterval: null,
65
- tickColor: '#A0A0A0',
66
- tickWidth: 1,
67
- title: {
68
- style: {
69
- color: '#CCC',
70
- fontWeight: 'bold',
71
- fontSize: '12px',
72
- fontFamily: 'Trebuchet MS, Verdana, sans-serif'
73
- }
74
- }
75
- },
76
- tooltip: {
77
- backgroundColor: 'rgba(0, 0, 0, 0.75)',
78
- style: {
79
- color: '#F0F0F0'
80
- }
81
- },
82
- toolbar: {
83
- itemStyle: {
84
- color: 'silver'
85
- }
86
- },
87
- plotOptions: {
88
- line: {
89
- dataLabels: {
90
- color: '#CCC'
91
- },
92
- marker: {
93
- lineColor: '#333'
94
- }
95
- },
96
- spline: {
97
- marker: {
98
- lineColor: '#333'
99
- }
100
- },
101
- scatter: {
102
- marker: {
103
- lineColor: '#333'
104
- }
105
- },
106
- candlestick: {
107
- lineColor: 'white'
108
- }
109
- },
110
- legend: {
111
- itemStyle: {
112
- font: '9pt Trebuchet MS, Verdana, sans-serif',
113
- color: '#A0A0A0'
114
- },
115
- itemHoverStyle: {
116
- color: '#FFF'
117
- },
118
- itemHiddenStyle: {
119
- color: '#444'
120
- }
121
- },
122
- credits: {
123
- style: {
124
- color: '#666'
125
- }
126
- },
127
- labels: {
128
- style: {
129
- color: '#CCC'
130
- }
131
- },
158
+ navigation: {
159
+ buttonOptions: {
160
+ symbolStroke: '#DDDDDD',
161
+ hoverSymbolStroke: '#FFFFFF',
162
+ theme: {
163
+ fill: {
164
+ linearGradient: {
165
+ x1: 0,
166
+ y1: 0,
167
+ x2: 0,
168
+ y2: 1
169
+ },
170
+ stops: [
171
+ [0.4, '#606060'],
172
+ [0.6, '#333333']
173
+ ]
174
+ },
175
+ stroke: '#000000'
176
+ }
177
+ }
178
+ },
132
179
 
133
- navigation: {
134
- buttonOptions: {
135
- symbolStroke: '#DDDDDD',
136
- hoverSymbolStroke: '#FFFFFF',
137
- theme: {
138
- fill: {
139
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
140
- stops: [
141
- [0.4, '#606060'],
142
- [0.6, '#333333']
143
- ]
144
- },
145
- stroke: '#000000'
146
- }
147
- }
148
- },
180
+ // scroll charts
181
+ rangeSelector: {
182
+ buttonTheme: {
183
+ fill: {
184
+ linearGradient: {
185
+ x1: 0,
186
+ y1: 0,
187
+ x2: 0,
188
+ y2: 1
189
+ },
190
+ stops: [
191
+ [0.4, '#888'],
192
+ [0.6, '#555']
193
+ ]
194
+ },
195
+ stroke: '#000000',
196
+ style: {
197
+ color: '#CCC',
198
+ fontWeight: 'bold'
199
+ },
200
+ states: {
201
+ hover: {
202
+ fill: {
203
+ linearGradient: {
204
+ x1: 0,
205
+ y1: 0,
206
+ x2: 0,
207
+ y2: 1
208
+ },
209
+ stops: [
210
+ [0.4, '#BBB'],
211
+ [0.6, '#888']
212
+ ]
213
+ },
214
+ stroke: '#000000',
215
+ style: {
216
+ color: 'white'
217
+ }
218
+ },
219
+ select: {
220
+ fill: {
221
+ linearGradient: {
222
+ x1: 0,
223
+ y1: 0,
224
+ x2: 0,
225
+ y2: 1
226
+ },
227
+ stops: [
228
+ [0.1, '#000'],
229
+ [0.3, '#333']
230
+ ]
231
+ },
232
+ stroke: '#000000',
233
+ style: {
234
+ color: 'yellow'
235
+ }
236
+ }
237
+ }
238
+ },
239
+ inputStyle: {
240
+ backgroundColor: '#333',
241
+ color: 'silver'
242
+ },
243
+ labelStyle: {
244
+ color: 'silver'
245
+ }
246
+ },
149
247
 
150
- // scroll charts
151
- rangeSelector: {
152
- buttonTheme: {
153
- fill: {
154
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
155
- stops: [
156
- [0.4, '#888'],
157
- [0.6, '#555']
158
- ]
159
- },
160
- stroke: '#000000',
161
- style: {
162
- color: '#CCC',
163
- fontWeight: 'bold'
164
- },
165
- states: {
166
- hover: {
167
- fill: {
168
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
169
- stops: [
170
- [0.4, '#BBB'],
171
- [0.6, '#888']
172
- ]
173
- },
174
- stroke: '#000000',
175
- style: {
176
- color: 'white'
177
- }
178
- },
179
- select: {
180
- fill: {
181
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
182
- stops: [
183
- [0.1, '#000'],
184
- [0.3, '#333']
185
- ]
186
- },
187
- stroke: '#000000',
188
- style: {
189
- color: 'yellow'
190
- }
191
- }
192
- }
193
- },
194
- inputStyle: {
195
- backgroundColor: '#333',
196
- color: 'silver'
197
- },
198
- labelStyle: {
199
- color: 'silver'
200
- }
201
- },
248
+ navigator: {
249
+ handles: {
250
+ backgroundColor: '#666',
251
+ borderColor: '#AAA'
252
+ },
253
+ outlineColor: '#CCC',
254
+ maskFill: 'rgba(16, 16, 16, 0.5)',
255
+ series: {
256
+ color: '#7798BF',
257
+ lineColor: '#A6C7ED'
258
+ }
259
+ },
202
260
 
203
- navigator: {
204
- handles: {
205
- backgroundColor: '#666',
206
- borderColor: '#AAA'
207
- },
208
- outlineColor: '#CCC',
209
- maskFill: 'rgba(16, 16, 16, 0.5)',
210
- series: {
211
- color: '#7798BF',
212
- lineColor: '#A6C7ED'
213
- }
214
- },
261
+ scrollbar: {
262
+ barBackgroundColor: {
263
+ linearGradient: {
264
+ x1: 0,
265
+ y1: 0,
266
+ x2: 0,
267
+ y2: 1
268
+ },
269
+ stops: [
270
+ [0.4, '#888'],
271
+ [0.6, '#555']
272
+ ]
273
+ },
274
+ barBorderColor: '#CCC',
275
+ buttonArrowColor: '#CCC',
276
+ buttonBackgroundColor: {
277
+ linearGradient: {
278
+ x1: 0,
279
+ y1: 0,
280
+ x2: 0,
281
+ y2: 1
282
+ },
283
+ stops: [
284
+ [0.4, '#888'],
285
+ [0.6, '#555']
286
+ ]
287
+ },
288
+ buttonBorderColor: '#CCC',
289
+ rifleColor: '#FFF',
290
+ trackBackgroundColor: {
291
+ linearGradient: {
292
+ x1: 0,
293
+ y1: 0,
294
+ x2: 0,
295
+ y2: 1
296
+ },
297
+ stops: [
298
+ [0, '#000'],
299
+ [1, '#333']
300
+ ]
301
+ },
302
+ trackBorderColor: '#666'
303
+ },
215
304
 
216
- scrollbar: {
217
- barBackgroundColor: {
218
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
219
- stops: [
220
- [0.4, '#888'],
221
- [0.6, '#555']
222
- ]
223
- },
224
- barBorderColor: '#CCC',
225
- buttonArrowColor: '#CCC',
226
- buttonBackgroundColor: {
227
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
228
- stops: [
229
- [0.4, '#888'],
230
- [0.6, '#555']
231
- ]
232
- },
233
- buttonBorderColor: '#CCC',
234
- rifleColor: '#FFF',
235
- trackBackgroundColor: {
236
- linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
237
- stops: [
238
- [0, '#000'],
239
- [1, '#333']
240
- ]
241
- },
242
- trackBorderColor: '#666'
243
- },
305
+ // special colors for some of the
306
+ legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
307
+ background2: 'rgb(35, 35, 70)',
308
+ dataLabelsColor: '#444',
309
+ textColor: '#C0C0C0',
310
+ maskColor: 'rgba(255,255,255,0.3)'
311
+ };
244
312
 
245
- // special colors for some of the
246
- legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
247
- background2: 'rgb(35, 35, 70)',
248
- dataLabelsColor: '#444',
249
- textColor: '#C0C0C0',
250
- maskColor: 'rgba(255,255,255,0.3)'
251
- };
313
+ // Apply the theme
314
+ Highcharts.setOptions(Highcharts.theme);
252
315
 
253
- // Apply the theme
254
- var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
316
+ }(Highcharts));
317
+ }));