highcharts-js-rails 0.1.9 → 0.1.10
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.
- data/CHANGELOG.md +6 -0
- data/highcharts-js-rails.gemspec +1 -1
- data/lib/highcharts/plot_options/plot_type.rb +2 -0
- data/lib/highcharts/plot_options.rb +4 -0
- data/vendor/assets/javascripts/highcharts/adapters/mootools.js +12 -6
- data/vendor/assets/javascripts/highcharts/adapters/prototype.js +5 -1
- data/vendor/assets/javascripts/highcharts/modules/canvas-tools.js +1 -1
- data/vendor/assets/javascripts/highcharts/modules/data.js +277 -0
- data/vendor/assets/javascripts/highcharts/modules/exporting.js +1 -1
- data/vendor/assets/javascripts/highcharts/themes/dark-blue.js +8 -8
- data/vendor/assets/javascripts/highcharts/themes/dark-green.js +7 -7
- data/vendor/assets/javascripts/highcharts/themes/gray.js +9 -9
- data/vendor/assets/javascripts/highcharts/themes/grid.js +1 -1
- data/vendor/assets/javascripts/highcharts-more.js +29 -19
- data/vendor/assets/javascripts/highcharts.js +1396 -1011
- metadata +10 -3
data/CHANGELOG.md
CHANGED
data/highcharts-js-rails.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'highcharts-js-rails'
|
6
|
-
s.version = '0.1.
|
6
|
+
s.version = '0.1.10'
|
7
7
|
s.authors = ['Alex Robbin']
|
8
8
|
s.email = ['agrobbin@gmail.com']
|
9
9
|
s.homepage = 'https://github.com/agrobbin/highcharts-js-rails'
|
@@ -5,8 +5,10 @@ class Highcharts
|
|
5
5
|
def initialize(opts = {})
|
6
6
|
@suboptions = {
|
7
7
|
:dataLabels => 'Labels',
|
8
|
+
:dial => 'Base',
|
8
9
|
:events => 'PlotOptions::PlotType::Events',
|
9
10
|
:marker => 'PlotOptions::PlotType::Marker',
|
11
|
+
:pivot => 'Base',
|
10
12
|
:point => 'Point',
|
11
13
|
:states => 'PlotOptions::PlotType::States'
|
12
14
|
}
|
@@ -4,9 +4,13 @@ class Highcharts
|
|
4
4
|
def initialize(opts = {})
|
5
5
|
@suboptions = {
|
6
6
|
:area => 'PlotOptions::PlotType',
|
7
|
+
:arearange => 'PlotOptions::PlotType',
|
7
8
|
:areaspline => 'PlotOptions::PlotType',
|
9
|
+
:areasplinerange => 'PlotOptions::PlotType',
|
8
10
|
:bar => 'PlotOptions::PlotType',
|
9
11
|
:column => 'PlotOptions::PlotType',
|
12
|
+
:columnrange => 'PlotOptions::PlotType',
|
13
|
+
:gauge => 'PlotOptions::PlotType',
|
10
14
|
:line => 'PlotOptions::PlotType',
|
11
15
|
:pie => 'PlotOptions::PlotType',
|
12
16
|
:series => 'PlotOptions::PlotType',
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v2.2
|
2
|
+
* @license Highcharts JS v2.3.2 (2012-08-31)
|
3
3
|
* MooTools adapter
|
4
4
|
*
|
5
5
|
* (c) 2010-2011 Torstein Hønsi
|
@@ -78,8 +78,9 @@ win.HighchartsAdapter = {
|
|
78
78
|
|
79
79
|
// This currently works for getting inner width and height. If adding
|
80
80
|
// more methods later, we need a conditional implementation for each.
|
81
|
-
|
82
|
-
|
81
|
+
if (method === 'width' || method === 'height') {
|
82
|
+
return parseInt($(el).getStyle(method), 10);
|
83
|
+
}
|
83
84
|
},
|
84
85
|
|
85
86
|
/**
|
@@ -181,6 +182,13 @@ win.HighchartsAdapter = {
|
|
181
182
|
grep: function (arr, fn) {
|
182
183
|
return arr.filter(fn);
|
183
184
|
},
|
185
|
+
|
186
|
+
/**
|
187
|
+
* Return the index of an item in an array, or -1 if not matched
|
188
|
+
*/
|
189
|
+
inArray: function (item, arr, from) {
|
190
|
+
return arr.indexOf(item, from);
|
191
|
+
},
|
184
192
|
|
185
193
|
/**
|
186
194
|
* Deep merge two objects and return a third
|
@@ -303,9 +311,7 @@ win.HighchartsAdapter = {
|
|
303
311
|
* Set back e.pageX and e.pageY that MooTools has abstracted away
|
304
312
|
*/
|
305
313
|
washMouseEvent: function (e) {
|
306
|
-
e.
|
307
|
-
e.pageY = e.page.y;
|
308
|
-
return e;
|
314
|
+
return e.event || e;
|
309
315
|
},
|
310
316
|
|
311
317
|
/**
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v2.2
|
2
|
+
* @license Highcharts JS v2.3.2 (2012-08-31)
|
3
3
|
* Prototype adapter
|
4
4
|
*
|
5
5
|
* @author Michael Nelson, Torstein Hønsi.
|
@@ -200,6 +200,10 @@ return {
|
|
200
200
|
each: function (arr, fn) {
|
201
201
|
$A(arr).each(fn);
|
202
202
|
},
|
203
|
+
|
204
|
+
inArray: function (item, arr) {
|
205
|
+
return arr.indexOf(item);
|
206
|
+
},
|
203
207
|
|
204
208
|
/**
|
205
209
|
* Get the cumulative offset relative to the top left of the page. This method, unlike its
|
@@ -2908,7 +2908,7 @@ if (CanvasRenderingContext2D) {
|
|
2908
2908
|
});
|
2909
2909
|
}
|
2910
2910
|
}/**
|
2911
|
-
* @license Highcharts JS v2.2
|
2911
|
+
* @license Highcharts JS v2.3.2 (2012-08-31)
|
2912
2912
|
* CanVGRenderer Extension module
|
2913
2913
|
*
|
2914
2914
|
* (c) 2011-2012 Torstein Hønsi, Erik Olsson
|
@@ -0,0 +1,277 @@
|
|
1
|
+
/**
|
2
|
+
* @license Data plugin for Highcharts v0.1
|
3
|
+
*
|
4
|
+
* (c) 2012 Torstein Hønsi
|
5
|
+
*
|
6
|
+
* License: www.highcharts.com/license
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*
|
10
|
+
* Demo: http://jsfiddle.net/highcharts/SnLFj/
|
11
|
+
*/
|
12
|
+
|
13
|
+
(function (Highcharts) {
|
14
|
+
|
15
|
+
// Utilities
|
16
|
+
var each = Highcharts.each;
|
17
|
+
|
18
|
+
|
19
|
+
// The Data constructor
|
20
|
+
var Data = function (options) {
|
21
|
+
this.init(options);
|
22
|
+
};
|
23
|
+
|
24
|
+
// Set the prototype properties
|
25
|
+
Highcharts.extend(Data.prototype, {
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Initialize the Data object with the given options
|
29
|
+
*/
|
30
|
+
init: function (options) {
|
31
|
+
this.options = options;
|
32
|
+
this.columns = [];
|
33
|
+
|
34
|
+
|
35
|
+
// Parse a CSV string if options.csv is given
|
36
|
+
this.parseCSV();
|
37
|
+
|
38
|
+
// Parse a HTML table if options.table is given
|
39
|
+
this.parseTable();
|
40
|
+
|
41
|
+
// Interpret the values into right types
|
42
|
+
this.parseTypes();
|
43
|
+
|
44
|
+
// Use first row for series names?
|
45
|
+
this.findHeaderRow();
|
46
|
+
|
47
|
+
// Handle columns if a handleColumns callback is given
|
48
|
+
this.parsed();
|
49
|
+
|
50
|
+
// Complete if a complete callback is given
|
51
|
+
this.complete();
|
52
|
+
|
53
|
+
},
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Parse a CSV input string
|
57
|
+
*/
|
58
|
+
parseCSV: function () {
|
59
|
+
var options = this.options,
|
60
|
+
csv = options.csv,
|
61
|
+
columns = this.columns,
|
62
|
+
startRow = options.startRow || 0,
|
63
|
+
endRow = options.endRow || Number.MAX_VALUE,
|
64
|
+
startColumn = options.startColumn || 0,
|
65
|
+
endColumn = options.endColumn || Number.MAX_VALUE,
|
66
|
+
lines;
|
67
|
+
|
68
|
+
if (csv) {
|
69
|
+
lines = csv.split(options.lineDelimiter || '\n');
|
70
|
+
|
71
|
+
each(lines, function (line, rowNo) {
|
72
|
+
if (rowNo >= startRow && rowNo <= endRow) {
|
73
|
+
var items = line.split(options.itemDelimiter || ',');
|
74
|
+
each(items, function (item, colNo) {
|
75
|
+
if (colNo >= startColumn && colNo <= endColumn) {
|
76
|
+
if (!columns[colNo - startColumn]) {
|
77
|
+
columns[colNo - startColumn] = [];
|
78
|
+
}
|
79
|
+
|
80
|
+
columns[colNo - startColumn][rowNo - startRow] = item;
|
81
|
+
}
|
82
|
+
});
|
83
|
+
}
|
84
|
+
});
|
85
|
+
}
|
86
|
+
},
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Parse a HTML table
|
90
|
+
*/
|
91
|
+
parseTable: function () {
|
92
|
+
var options = this.options,
|
93
|
+
table = options.table,
|
94
|
+
columns = this.columns,
|
95
|
+
startRow = options.startRow || 0,
|
96
|
+
endRow = options.endRow || Number.MAX_VALUE,
|
97
|
+
startColumn = options.startColumn || 0,
|
98
|
+
endColumn = options.endColumn || Number.MAX_VALUE,
|
99
|
+
colNo;
|
100
|
+
|
101
|
+
if (table) {
|
102
|
+
|
103
|
+
if (typeof table === 'string') {
|
104
|
+
table = document.getElementById(table);
|
105
|
+
}
|
106
|
+
|
107
|
+
each(table.getElementsByTagName('tr'), function (tr, rowNo) {
|
108
|
+
colNo = 0;
|
109
|
+
if (rowNo >= startRow && rowNo <= endRow) {
|
110
|
+
each(tr.childNodes, function (item) {
|
111
|
+
if ((item.tagName === 'TD' || item.tagName === 'TH') && colNo >= startColumn && colNo <= endColumn) {
|
112
|
+
if (!columns[colNo]) {
|
113
|
+
columns[colNo] = [];
|
114
|
+
}
|
115
|
+
columns[colNo][rowNo - startRow] = item.innerHTML;
|
116
|
+
|
117
|
+
colNo += 1;
|
118
|
+
}
|
119
|
+
});
|
120
|
+
}
|
121
|
+
});
|
122
|
+
}
|
123
|
+
},
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Find the header row. For now, we just check whether the first row contains
|
127
|
+
* numbers or strings. Later we could loop down and find the first row with
|
128
|
+
* numbers.
|
129
|
+
*/
|
130
|
+
findHeaderRow: function () {
|
131
|
+
var headerRow = 0;
|
132
|
+
each(this.columns, function (column) {
|
133
|
+
if (typeof column[0] !== 'string') {
|
134
|
+
headerRow = null;
|
135
|
+
}
|
136
|
+
});
|
137
|
+
this.headerRow = 0;
|
138
|
+
},
|
139
|
+
|
140
|
+
/**
|
141
|
+
* Trim a string from whitespace
|
142
|
+
*/
|
143
|
+
trim: function (str) {
|
144
|
+
return str.replace(/^\s+|\s+$/g, '');
|
145
|
+
},
|
146
|
+
|
147
|
+
/**
|
148
|
+
* Parse numeric cells in to number types and date types in to true dates.
|
149
|
+
* @param {Object} columns
|
150
|
+
*/
|
151
|
+
parseTypes: function () {
|
152
|
+
var columns = this.columns,
|
153
|
+
col = columns.length,
|
154
|
+
row,
|
155
|
+
val,
|
156
|
+
floatVal,
|
157
|
+
trimVal,
|
158
|
+
dateVal;
|
159
|
+
|
160
|
+
while (col--) {
|
161
|
+
row = columns[col].length;
|
162
|
+
while (row--) {
|
163
|
+
val = columns[col][row];
|
164
|
+
floatVal = parseFloat(val);
|
165
|
+
trimVal = this.trim(val);
|
166
|
+
/*jslint eqeq: true*/
|
167
|
+
if (trimVal == floatVal) { // is numeric
|
168
|
+
/*jslint eqeq: false*/
|
169
|
+
columns[col][row] = floatVal;
|
170
|
+
|
171
|
+
// If the number is greater than milliseconds in a year, assume datetime
|
172
|
+
if (floatVal > 365 * 24 * 3600 * 1000) {
|
173
|
+
columns[col].isDatetime = true;
|
174
|
+
} else {
|
175
|
+
columns[col].isNumeric = true;
|
176
|
+
}
|
177
|
+
|
178
|
+
} else { // string, continue to determine if it is a date string or really a string
|
179
|
+
dateVal = Date.parse(val);
|
180
|
+
|
181
|
+
if (col === 0 && typeof dateVal === 'number' && !isNaN(dateVal)) { // is date
|
182
|
+
columns[col][row] = dateVal;
|
183
|
+
columns[col].isDatetime = true;
|
184
|
+
|
185
|
+
} else { // string
|
186
|
+
columns[col][row] = trimVal;
|
187
|
+
}
|
188
|
+
}
|
189
|
+
|
190
|
+
}
|
191
|
+
}
|
192
|
+
},
|
193
|
+
|
194
|
+
parsed: function () {
|
195
|
+
if (this.options.parsed) {
|
196
|
+
this.options.parsed.call(this, this.columns);
|
197
|
+
}
|
198
|
+
},
|
199
|
+
|
200
|
+
/**
|
201
|
+
* If a complete callback function is provided in the options, interpret the
|
202
|
+
* columns into a Highcharts options object.
|
203
|
+
*/
|
204
|
+
complete: function () {
|
205
|
+
|
206
|
+
var columns = this.columns,
|
207
|
+
hasXData,
|
208
|
+
categories,
|
209
|
+
firstCol,
|
210
|
+
type,
|
211
|
+
options = this.options,
|
212
|
+
series,
|
213
|
+
data,
|
214
|
+
name,
|
215
|
+
i,
|
216
|
+
j;
|
217
|
+
|
218
|
+
|
219
|
+
if (options.complete) {
|
220
|
+
|
221
|
+
// Use first column for X data or categories?
|
222
|
+
if (columns.length > 1) {
|
223
|
+
firstCol = columns.shift();
|
224
|
+
if (this.headerRow === 0) {
|
225
|
+
firstCol.shift(); // remove the first cell
|
226
|
+
}
|
227
|
+
|
228
|
+
// Use the first column for categories or X values
|
229
|
+
hasXData = firstCol.isNumeric || firstCol.isDatetime;
|
230
|
+
if (!hasXData) { // means type is neither datetime nor linear
|
231
|
+
categories = firstCol;
|
232
|
+
}
|
233
|
+
|
234
|
+
if (firstCol.isDatetime) {
|
235
|
+
type = 'datetime';
|
236
|
+
}
|
237
|
+
}
|
238
|
+
|
239
|
+
// Use the next columns for series
|
240
|
+
series = [];
|
241
|
+
for (i = 0; i < columns.length; i++) {
|
242
|
+
if (this.headerRow === 0) {
|
243
|
+
name = columns[i].shift();
|
244
|
+
}
|
245
|
+
data = [];
|
246
|
+
for (j = 0; j < columns[i].length; j++) {
|
247
|
+
data[j] = columns[i][j] !== undefined ?
|
248
|
+
(hasXData ?
|
249
|
+
[firstCol[j], columns[i][j]] :
|
250
|
+
columns[i][j]
|
251
|
+
) :
|
252
|
+
null;
|
253
|
+
}
|
254
|
+
series[i] = {
|
255
|
+
name: name,
|
256
|
+
data: data
|
257
|
+
};
|
258
|
+
}
|
259
|
+
|
260
|
+
// Do the callback
|
261
|
+
options.complete({
|
262
|
+
xAxis: {
|
263
|
+
categories: categories,
|
264
|
+
type: type
|
265
|
+
},
|
266
|
+
series: series
|
267
|
+
});
|
268
|
+
}
|
269
|
+
}
|
270
|
+
});
|
271
|
+
|
272
|
+
// Register the Data prototype and data function on Highcharts
|
273
|
+
Highcharts.Data = Data;
|
274
|
+
Highcharts.data = function (options) {
|
275
|
+
return new Data(options);
|
276
|
+
};
|
277
|
+
}(Highcharts));
|
@@ -8,7 +8,7 @@ Highcharts.theme = {
|
|
8
8
|
"#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
|
9
9
|
chart: {
|
10
10
|
backgroundColor: {
|
11
|
-
linearGradient:
|
11
|
+
linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
|
12
12
|
stops: [
|
13
13
|
[0, 'rgb(48, 48, 96)'],
|
14
14
|
[1, 'rgb(0, 0, 0)']
|
@@ -133,7 +133,7 @@ Highcharts.theme = {
|
|
133
133
|
navigation: {
|
134
134
|
buttonOptions: {
|
135
135
|
backgroundColor: {
|
136
|
-
linearGradient:
|
136
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
137
137
|
stops: [
|
138
138
|
[0.4, '#606060'],
|
139
139
|
[0.6, '#333333']
|
@@ -160,7 +160,7 @@ Highcharts.theme = {
|
|
160
160
|
rangeSelector: {
|
161
161
|
buttonTheme: {
|
162
162
|
fill: {
|
163
|
-
linearGradient:
|
163
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
164
164
|
stops: [
|
165
165
|
[0.4, '#888'],
|
166
166
|
[0.6, '#555']
|
@@ -174,7 +174,7 @@ Highcharts.theme = {
|
|
174
174
|
states: {
|
175
175
|
hover: {
|
176
176
|
fill: {
|
177
|
-
linearGradient:
|
177
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
178
178
|
stops: [
|
179
179
|
[0.4, '#BBB'],
|
180
180
|
[0.6, '#888']
|
@@ -187,7 +187,7 @@ Highcharts.theme = {
|
|
187
187
|
},
|
188
188
|
select: {
|
189
189
|
fill: {
|
190
|
-
linearGradient:
|
190
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
191
191
|
stops: [
|
192
192
|
[0.1, '#000'],
|
193
193
|
[0.3, '#333']
|
@@ -224,7 +224,7 @@ Highcharts.theme = {
|
|
224
224
|
|
225
225
|
scrollbar: {
|
226
226
|
barBackgroundColor: {
|
227
|
-
linearGradient:
|
227
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
228
228
|
stops: [
|
229
229
|
[0.4, '#888'],
|
230
230
|
[0.6, '#555']
|
@@ -233,7 +233,7 @@ Highcharts.theme = {
|
|
233
233
|
barBorderColor: '#CCC',
|
234
234
|
buttonArrowColor: '#CCC',
|
235
235
|
buttonBackgroundColor: {
|
236
|
-
linearGradient:
|
236
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
237
237
|
stops: [
|
238
238
|
[0.4, '#888'],
|
239
239
|
[0.6, '#555']
|
@@ -242,7 +242,7 @@ Highcharts.theme = {
|
|
242
242
|
buttonBorderColor: '#CCC',
|
243
243
|
rifleColor: '#FFF',
|
244
244
|
trackBackgroundColor: {
|
245
|
-
linearGradient:
|
245
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
246
246
|
stops: [
|
247
247
|
[0, '#000'],
|
248
248
|
[1, '#333']
|
@@ -133,7 +133,7 @@ Highcharts.theme = {
|
|
133
133
|
navigation: {
|
134
134
|
buttonOptions: {
|
135
135
|
backgroundColor: {
|
136
|
-
linearGradient:
|
136
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
137
137
|
stops: [
|
138
138
|
[0.4, '#606060'],
|
139
139
|
[0.6, '#333333']
|
@@ -160,7 +160,7 @@ Highcharts.theme = {
|
|
160
160
|
rangeSelector: {
|
161
161
|
buttonTheme: {
|
162
162
|
fill: {
|
163
|
-
linearGradient:
|
163
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
164
164
|
stops: [
|
165
165
|
[0.4, '#888'],
|
166
166
|
[0.6, '#555']
|
@@ -174,7 +174,7 @@ Highcharts.theme = {
|
|
174
174
|
states: {
|
175
175
|
hover: {
|
176
176
|
fill: {
|
177
|
-
linearGradient:
|
177
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
178
178
|
stops: [
|
179
179
|
[0.4, '#BBB'],
|
180
180
|
[0.6, '#888']
|
@@ -187,7 +187,7 @@ Highcharts.theme = {
|
|
187
187
|
},
|
188
188
|
select: {
|
189
189
|
fill: {
|
190
|
-
linearGradient:
|
190
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
191
191
|
stops: [
|
192
192
|
[0.1, '#000'],
|
193
193
|
[0.3, '#333']
|
@@ -224,7 +224,7 @@ Highcharts.theme = {
|
|
224
224
|
|
225
225
|
scrollbar: {
|
226
226
|
barBackgroundColor: {
|
227
|
-
linearGradient:
|
227
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
228
228
|
stops: [
|
229
229
|
[0.4, '#888'],
|
230
230
|
[0.6, '#555']
|
@@ -233,7 +233,7 @@ Highcharts.theme = {
|
|
233
233
|
barBorderColor: '#CCC',
|
234
234
|
buttonArrowColor: '#CCC',
|
235
235
|
buttonBackgroundColor: {
|
236
|
-
linearGradient:
|
236
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
237
237
|
stops: [
|
238
238
|
[0.4, '#888'],
|
239
239
|
[0.6, '#555']
|
@@ -242,7 +242,7 @@ Highcharts.theme = {
|
|
242
242
|
buttonBorderColor: '#CCC',
|
243
243
|
rifleColor: '#FFF',
|
244
244
|
trackBackgroundColor: {
|
245
|
-
linearGradient:
|
245
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
246
246
|
stops: [
|
247
247
|
[0, '#000'],
|
248
248
|
[1, '#333']
|
@@ -8,7 +8,7 @@ Highcharts.theme = {
|
|
8
8
|
"#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
|
9
9
|
chart: {
|
10
10
|
backgroundColor: {
|
11
|
-
linearGradient:
|
11
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
12
12
|
stops: [
|
13
13
|
[0, 'rgb(96, 96, 96)'],
|
14
14
|
[1, 'rgb(16, 16, 16)']
|
@@ -86,7 +86,7 @@ Highcharts.theme = {
|
|
86
86
|
},
|
87
87
|
tooltip: {
|
88
88
|
backgroundColor: {
|
89
|
-
linearGradient:
|
89
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
90
90
|
stops: [
|
91
91
|
[0, 'rgba(96, 96, 96, .8)'],
|
92
92
|
[1, 'rgba(16, 16, 16, .8)']
|
@@ -132,7 +132,7 @@ Highcharts.theme = {
|
|
132
132
|
navigation: {
|
133
133
|
buttonOptions: {
|
134
134
|
backgroundColor: {
|
135
|
-
linearGradient:
|
135
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
136
136
|
stops: [
|
137
137
|
[0.4, '#606060'],
|
138
138
|
[0.6, '#333333']
|
@@ -159,7 +159,7 @@ Highcharts.theme = {
|
|
159
159
|
rangeSelector: {
|
160
160
|
buttonTheme: {
|
161
161
|
fill: {
|
162
|
-
linearGradient:
|
162
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
163
163
|
stops: [
|
164
164
|
[0.4, '#888'],
|
165
165
|
[0.6, '#555']
|
@@ -173,7 +173,7 @@ Highcharts.theme = {
|
|
173
173
|
states: {
|
174
174
|
hover: {
|
175
175
|
fill: {
|
176
|
-
linearGradient:
|
176
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
177
177
|
stops: [
|
178
178
|
[0.4, '#BBB'],
|
179
179
|
[0.6, '#888']
|
@@ -186,7 +186,7 @@ Highcharts.theme = {
|
|
186
186
|
},
|
187
187
|
select: {
|
188
188
|
fill: {
|
189
|
-
linearGradient:
|
189
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
190
190
|
stops: [
|
191
191
|
[0.1, '#000'],
|
192
192
|
[0.3, '#333']
|
@@ -223,7 +223,7 @@ Highcharts.theme = {
|
|
223
223
|
|
224
224
|
scrollbar: {
|
225
225
|
barBackgroundColor: {
|
226
|
-
linearGradient:
|
226
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
227
227
|
stops: [
|
228
228
|
[0.4, '#888'],
|
229
229
|
[0.6, '#555']
|
@@ -232,7 +232,7 @@ Highcharts.theme = {
|
|
232
232
|
barBorderColor: '#CCC',
|
233
233
|
buttonArrowColor: '#CCC',
|
234
234
|
buttonBackgroundColor: {
|
235
|
-
linearGradient:
|
235
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
236
236
|
stops: [
|
237
237
|
[0.4, '#888'],
|
238
238
|
[0.6, '#555']
|
@@ -241,7 +241,7 @@ Highcharts.theme = {
|
|
241
241
|
buttonBorderColor: '#CCC',
|
242
242
|
rifleColor: '#FFF',
|
243
243
|
trackBackgroundColor: {
|
244
|
-
linearGradient:
|
244
|
+
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
245
245
|
stops: [
|
246
246
|
[0, '#000'],
|
247
247
|
[1, '#333']
|
@@ -7,7 +7,7 @@ Highcharts.theme = {
|
|
7
7
|
colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'],
|
8
8
|
chart: {
|
9
9
|
backgroundColor: {
|
10
|
-
linearGradient:
|
10
|
+
linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
|
11
11
|
stops: [
|
12
12
|
[0, 'rgb(255, 255, 255)'],
|
13
13
|
[1, 'rgb(240, 240, 255)']
|