on master help sign in
Add a way to construct HSV colors with `hsv` and `hsva`. Also add a `now` function to `Date`.
d4012e4evancz
core-js/Date.js+8
@@ -1,6 +1,13 @@
1
1
2Elm.Date = function() {
2Elm.Date = function() {
3
3
4+ function dateNow() { return new window.Date; }
5+ function now(t) {
6+ var clock = Elm.Signal.constant(dateNow());
7+ function tellTime() { Dispatcher.notify(clock.id, dateNow()); }
8+ setInterval(tellTime, t);
9+ return clock;
10+ }
4 function readDate(str) {
11 function readDate(str) {
5 var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
12 var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
6 if (isNaN(d.getTime())) return ["Nothing"];
13 if (isNaN(d.getTime())) return ["Nothing"];
@@ -12,6 +19,7 @@ Elm.Date = function() {
12 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
19 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
13
20
14 return {
21 return {
22+ now : now,
15 read : readDate,
23 read : readDate,
16 year : function(d) { return d.getFullYear(); },
24 year : function(d) { return d.getFullYear(); },
17 month : function(d) { return [monthTable[d.getMonth()]]; },
25 month : function(d) { return [monthTable[d.getMonth()]]; },
core-js/Graphics/Color.js+41−30
@@ -1,41 +1,52 @@
1Elm.Color = function() {
1Elm.Color = function() {
2− function Color_0(a1) {
2+
3+function Color_0(a1) {
4+ return function(a2) {
3− return function(a2) {
5+ return function(a3) {
4− return function(a3) {
6+ return function(a4) {
5− return function(a4) {
6− return["Color", a1, a2, a3, a4]
7+ return["Color", a1, a2, a3, a4]
7− }
8 }
8 }
9 }
9 }
10 }
10 }
11+}
11− var rgba_1 = Color_0;
12+var rgba_1 = Color_0;
12− var red_3 = ["Color",255,0,0,1];
13+var red_3 = ["Color",255,0,0,1];
13− var green_4 = ["Color",0,255,0,1];
14+var green_4 = ["Color",0,255,0,1];
14− var blue_5 = ["Color",0,0,255,1];
15+var blue_5 = ["Color",0,0,255,1];
15− var yellow_6 = ["Color",255,255,0,1];
16+var yellow_6 = ["Color",255,255,0,1];
16− var cyan_7 = ["Color",0,255,255,1];
17+var cyan_7 = ["Color",0,255,255,1];
17− var magenta_8 = ["Color",255,0,255,1];
18+var magenta_8 = ["Color",255,0,255,1];
18− var black_9 = ["Color",0,0,0,1];
19+var black_9 = ["Color",0,0,0,1];
19− var white_10 = ["Color",255,255,255,1];
20+var white_10 = ["Color",255,255,255,1];
20− var gray_11 = ["Color",128,128,128,1];
21+var gray_11 = ["Color",128,128,128,1];
21− var grey_12 = ["Color",128,128,128,1];
22+var grey_12 = ["Color",128,128,128,1];
22− function rgb_2(r_13) {
23+function rgb_2(r_13) {
24+ return function(g_14) {
23− return function(g_14) {
25+ return function(b_15) {
24− return function(b_15) {
25− return ["Color",r_13,g_14,b_15,1]
26+ return ["Color",r_13,g_14,b_15,1]
26− }
27 }
27 }
28 }
28 }
29+}
29− function extract(c) {
30+function extract(c) {
30− if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
31+ if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
31− return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
32+ return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
32− }
33+}
33function complement(rgb) {
34function complement(rgb) {
34− var hsv = toHSV(rgb);
35+ var hsv = toHSV(rgb);
35− hsv.hue = (hsv.hue + 180) % 360;
36+ hsv.hue = (hsv.hue + 180) % 360;
36− return toRGB(hsv);
37+ return toRGB(hsv);
38+}
39+
40+function hsva(h) { return function(s) { return function(v) { return function(a) {
41+ var clr = toRGB({hue:h, saturation:s, value:v});
42+ clr[4] = a;
43+ return clr;
44+ }; }; };
37}
45}
38
46
47+function hsv(h) { return function(s) { return function(v) {
48+ return toRGB({hue:h, saturation:s, value:v}); }; }; }
49+
39function toHSV(rgb) {
50function toHSV(rgb) {
40 var hsv = {};
51 var hsv = {};
41 var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
52 var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
@@ -71,5 +82,5 @@ function toRGB(hsv) {
71 var m = hsv.value - c;
82 var m = hsv.value - c;
72 return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
83 return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
73}
84}
74− return{rgba:rgba_1, rgb:rgb_2, red:red_3, green:green_4, blue:blue_5, yellow:yellow_6, cyan:cyan_7, magenta:magenta_8, black:black_9, white:white_10, gray:gray_11, grey:grey_12,complement:complement,extract:extract}
85+ return{rgba:rgba_1, rgb:rgb_2, hsva:hsva, hsv:hsv, red:red_3, green:green_4, blue:blue_5, yellow:yellow_6, cyan:cyan_7, magenta:magenta_8, black:black_9, white:white_10, gray:gray_11, grey:grey_12,complement:complement,extract:extract}
75}();
86}();