1
1
function fallback(/* values ... */) {
2
-
var ilen = arguments.length;
3
-
var i = 0;
4
-
var v;
2
+
var ilen = arguments.length;
3
+
var i = 0;
4
+
var v;
5
5
6
-
for (; i < ilen; ++i) {
7
-
v = arguments[i];
8
-
if (v !== undefined) {
9
-
return v;
10
-
}
11
-
}
6
+
for (; i < ilen; ++i) {
7
+
v = arguments[i];
8
+
if (v !== undefined) {
9
+
return v;
10
+
}
11
+
}
12
12
}
13
13
14
14
export var COLORS = [
15
-
'#FF3784',
16
-
'#36A2EB',
17
-
'#4BC0C0',
18
-
'#F77825',
19
-
'#9966FF',
20
-
'#00A8C6',
21
-
'#379F7A',
22
-
'#CC2738',
23
-
'#8B628A',
24
-
'#8FBE00',
25
-
'#606060',
15
+
'#FF3784',
16
+
'#36A2EB',
17
+
'#4BC0C0',
18
+
'#F77825',
19
+
'#9966FF',
20
+
'#00A8C6',
21
+
'#379F7A',
22
+
'#CC2738',
23
+
'#8B628A',
24
+
'#8FBE00',
25
+
'#606060',
26
26
];
27
27
28
28
// Adapted from http://indiegamr.com/generate-repeatable-random-numbers-in-js/
29
29
var _seed = Date.now();
30
30
31
31
export function srand(seed) {
32
-
_seed = seed;
32
+
_seed = seed;
33
33
}
34
34
35
35
export function rand(min, max) {
36
-
min = min === undefined ? 0 : min;
37
-
max = max === undefined ? 1 : max;
38
-
_seed = (_seed * 9301 + 49297) % 233280;
39
-
return min + (_seed / 233280) * (max - min);
36
+
min = min === undefined ? 0 : min;
37
+
max = max === undefined ? 1 : max;
38
+
_seed = (_seed * 9301 + 49297) % 233280;
39
+
return min + (_seed / 233280) * (max - min);
40
40
}
41
41
42
42
export function numbers(config) {
43
-
var cfg = config || {};
44
-
var min = fallback(cfg.min, 0);
45
-
var max = fallback(cfg.max, 1);
46
-
var from = fallback(cfg.from, []);
47
-
var count = fallback(cfg.count, 8);
48
-
var decimals = fallback(cfg.decimals, 8);
49
-
var continuity = fallback(cfg.continuity, 1);
50
-
var dfactor = Math.pow(10, decimals) || 0;
51
-
var data = [];
52
-
var i, value;
43
+
var cfg = config || {};
44
+
var min = fallback(cfg.min, 0);
45
+
var max = fallback(cfg.max, 1);
46
+
var from = fallback(cfg.from, []);
47
+
var count = fallback(cfg.count, 8);
48
+
var decimals = fallback(cfg.decimals, 8);
49
+
var continuity = fallback(cfg.continuity, 1);
50
+
var dfactor = Math.pow(10, decimals) || 0;
51
+
var data = [];
52
+
var i, value;
53
53
54
-
for (i = 0; i < count; ++i) {
55
-
value = (from[i] || 0) + rand(min, max);
56
-
if (rand() <= continuity) {
57
-
data.push(Math.round(dfactor * value) / dfactor);
58
-
} else {
59
-
data.push(null);
60
-
}
61
-
}
54
+
for (i = 0; i < count; ++i) {
55
+
value = (from[i] || 0) + rand(min, max);
56
+
if (rand() <= continuity) {
57
+
data.push(Math.round(dfactor * value) / dfactor);
58
+
} else {
59
+
data.push(null);
60
+
}
61
+
}
62
62
63
-
return data;
63
+
return data;
64
64
}
65
65
66
66
export function color(offset) {
67
-
var count = COLORS.length;
68
-
var index = offset === undefined ? ~~rand(0, count) : offset;
69
-
return COLORS[index % count];
67
+
var count = COLORS.length;
68
+
var index = offset === undefined ? ~~rand(0, count) : offset;
69
+
return COLORS[index % count];
70
70
}
71
71
72
72
export function generate() {
73
-
return {
74
-
labels: [0, 1, 2, 3, 4, 5, 6, 7],
75
-
datasets: [{
76
-
backgroundColor: color(0),
77
-
data: numbers({
78
-
count: 8,
79
-
max: 0,
80
-
min: -100
81
-
}),
82
-
}, {
83
-
backgroundColor: color(1),
84
-
data: numbers({
85
-
count: 8,
86
-
max: 100,
87
-
min: 0
88
-
}),
89
-
}],
90
-
};
73
+
return {
74
+
labels: [0, 1, 2, 3, 4, 5, 6, 7],
75
+
datasets: [{
76
+
backgroundColor: color(0),
77
+
data: numbers({
78
+
count: 8,
79
+
max: 0,
80
+
min: -100
81
+
}),
82
+
}, {
83
+
backgroundColor: color(1),
84
+
data: numbers({
85
+
count: 8,
86
+
max: 100,
87
+
min: 0
88
+
}),
89
+
}],
90
+
};
91
91
}
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4