on master help sign in
Add a way to construct HSV colors with `hsv` and `hsva`. Also add a `now` function to `Date`.
commitd4012e466a6b16484154d4cb4a91cdaefa211571 authorevancz <info@elm-lang.org> dateThu 22 Nov 2012, 20:32 (14 years ago) parentb9ae74b
2 files changed+49−30
core-js/Date.js+8 core-js/Graphics/Color.js+41−30
core-js/Date.js+8
@@ -1,6 +1,13 @@
11
22Elm.Date = function() {
33
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+ }
411 function readDate(str) {
512 var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
613 if (isNaN(d.getTime())) return ["Nothing"];
@@ -12,6 +19,7 @@ Elm.Date = function() {
1219 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
1320
1421 return {
22+ now : now,
1523 read : readDate,
1624 year : function(d) { return d.getFullYear(); },
1725 month : function(d) { return [monthTable[d.getMonth()]]; },
core-js/Graphics/Color.js+41−30
@@ -1,41 +1,52 @@
11Elm.Color = function() {
2− function Color_0(a1) {
3− return function(a2) {
4− return function(a3) {
5− return function(a4) {
6− return["Color", a1, a2, a3, a4]
7− }
2+
3+function Color_0(a1) {
4+ return function(a2) {
5+ return function(a3) {
6+ return function(a4) {
7+ return["Color", a1, a2, a3, a4]
88 }
99 }
1010 }
11− var rgba_1 = Color_0;
12− var red_3 = ["Color",255,0,0,1];
13− var green_4 = ["Color",0,255,0,1];
14− var blue_5 = ["Color",0,0,255,1];
15− var yellow_6 = ["Color",255,255,0,1];
16− var cyan_7 = ["Color",0,255,255,1];
17− var magenta_8 = ["Color",255,0,255,1];
18− var black_9 = ["Color",0,0,0,1];
19− var white_10 = ["Color",255,255,255,1];
20− var gray_11 = ["Color",128,128,128,1];
21− var grey_12 = ["Color",128,128,128,1];
22− function rgb_2(r_13) {
23− return function(g_14) {
24− return function(b_15) {
25− return ["Color",r_13,g_14,b_15,1]
26− }
11+}
12+var rgba_1 = Color_0;
13+var red_3 = ["Color",255,0,0,1];
14+var green_4 = ["Color",0,255,0,1];
15+var blue_5 = ["Color",0,0,255,1];
16+var yellow_6 = ["Color",255,255,0,1];
17+var cyan_7 = ["Color",0,255,255,1];
18+var magenta_8 = ["Color",255,0,255,1];
19+var black_9 = ["Color",0,0,0,1];
20+var white_10 = ["Color",255,255,255,1];
21+var gray_11 = ["Color",128,128,128,1];
22+var grey_12 = ["Color",128,128,128,1];
23+function rgb_2(r_13) {
24+ return function(g_14) {
25+ return function(b_15) {
26+ return ["Color",r_13,g_14,b_15,1]
2727 }
2828 }
29− function extract(c) {
30− if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
31− return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
32− }
29+}
30+function extract(c) {
31+ if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
32+ return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
33+}
3334function complement(rgb) {
34− var hsv = toHSV(rgb);
35− hsv.hue = (hsv.hue + 180) % 360;
36− return toRGB(hsv);
35+ var hsv = toHSV(rgb);
36+ hsv.hue = (hsv.hue + 180) % 360;
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+ }; }; };
3745}
3846
47+function hsv(h) { return function(s) { return function(v) {
48+ return toRGB({hue:h, saturation:s, value:v}); }; }; }
49+
3950function toHSV(rgb) {
4051 var hsv = {};
4152 var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
@@ -71,5 +82,5 @@ function toRGB(hsv) {
7182 var m = hsv.value - c;
7283 return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
7384}
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}
7586}();