Add a way to construct HSV colors with hsv
and hsva
. Also add a now
function to Date
.
This commit is contained in:
parent
b9ae74b9e5
commit
d4012e466a
2 changed files with 52 additions and 33 deletions
|
@ -1,6 +1,13 @@
|
||||||
|
|
||||||
Elm.Date = function() {
|
Elm.Date = function() {
|
||||||
|
|
||||||
|
function dateNow() { return new window.Date; }
|
||||||
|
function now(t) {
|
||||||
|
var clock = Elm.Signal.constant(dateNow());
|
||||||
|
function tellTime() { Dispatcher.notify(clock.id, dateNow()); }
|
||||||
|
setInterval(tellTime, t);
|
||||||
|
return clock;
|
||||||
|
}
|
||||||
function readDate(str) {
|
function readDate(str) {
|
||||||
var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
|
var d = new window.Date(Elm.JavaScript.castStringToJSString(str));
|
||||||
if (isNaN(d.getTime())) return ["Nothing"];
|
if (isNaN(d.getTime())) return ["Nothing"];
|
||||||
|
@ -12,6 +19,7 @@ Elm.Date = function() {
|
||||||
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
now : now,
|
||||||
read : readDate,
|
read : readDate,
|
||||||
year : function(d) { return d.getFullYear(); },
|
year : function(d) { return d.getFullYear(); },
|
||||||
month : function(d) { return [monthTable[d.getMonth()]]; },
|
month : function(d) { return [monthTable[d.getMonth()]]; },
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
Elm.Color = function() {
|
Elm.Color = function() {
|
||||||
function Color_0(a1) {
|
|
||||||
|
function Color_0(a1) {
|
||||||
return function(a2) {
|
return function(a2) {
|
||||||
return function(a3) {
|
return function(a3) {
|
||||||
return function(a4) {
|
return function(a4) {
|
||||||
|
@ -7,35 +8,45 @@ Elm.Color = function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var rgba_1 = Color_0;
|
var rgba_1 = Color_0;
|
||||||
var red_3 = ["Color",255,0,0,1];
|
var red_3 = ["Color",255,0,0,1];
|
||||||
var green_4 = ["Color",0,255,0,1];
|
var green_4 = ["Color",0,255,0,1];
|
||||||
var blue_5 = ["Color",0,0,255,1];
|
var blue_5 = ["Color",0,0,255,1];
|
||||||
var yellow_6 = ["Color",255,255,0,1];
|
var yellow_6 = ["Color",255,255,0,1];
|
||||||
var cyan_7 = ["Color",0,255,255,1];
|
var cyan_7 = ["Color",0,255,255,1];
|
||||||
var magenta_8 = ["Color",255,0,255,1];
|
var magenta_8 = ["Color",255,0,255,1];
|
||||||
var black_9 = ["Color",0,0,0,1];
|
var black_9 = ["Color",0,0,0,1];
|
||||||
var white_10 = ["Color",255,255,255,1];
|
var white_10 = ["Color",255,255,255,1];
|
||||||
var gray_11 = ["Color",128,128,128,1];
|
var gray_11 = ["Color",128,128,128,1];
|
||||||
var grey_12 = ["Color",128,128,128,1];
|
var grey_12 = ["Color",128,128,128,1];
|
||||||
function rgb_2(r_13) {
|
function rgb_2(r_13) {
|
||||||
return function(g_14) {
|
return function(g_14) {
|
||||||
return function(b_15) {
|
return function(b_15) {
|
||||||
return ["Color",r_13,g_14,b_15,1]
|
return ["Color",r_13,g_14,b_15,1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function extract(c) {
|
function extract(c) {
|
||||||
if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
|
if (c[4] === 1) { return 'rgb(' + c[1] + ',' + c[2] + ',' + c[3] + ')'; }
|
||||||
return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
|
return 'rgba(' + c[1] + ',' + c[2] + ',' + c[3] + ',' + c[4] + ')';
|
||||||
}
|
}
|
||||||
function complement(rgb) {
|
function complement(rgb) {
|
||||||
var hsv = toHSV(rgb);
|
var hsv = toHSV(rgb);
|
||||||
hsv.hue = (hsv.hue + 180) % 360;
|
hsv.hue = (hsv.hue + 180) % 360;
|
||||||
return toRGB(hsv);
|
return toRGB(hsv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function hsva(h) { return function(s) { return function(v) { return function(a) {
|
||||||
|
var clr = toRGB({hue:h, saturation:s, value:v});
|
||||||
|
clr[4] = a;
|
||||||
|
return clr;
|
||||||
|
}; }; };
|
||||||
|
}
|
||||||
|
|
||||||
|
function hsv(h) { return function(s) { return function(v) {
|
||||||
|
return toRGB({hue:h, saturation:s, value:v}); }; }; }
|
||||||
|
|
||||||
function toHSV(rgb) {
|
function toHSV(rgb) {
|
||||||
var hsv = {};
|
var hsv = {};
|
||||||
var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
|
var r = rgb[1] / 255.0, g = rgb[2] / 255.0, b = rgb[3] / 255.0;
|
||||||
|
@ -71,5 +82,5 @@ function toRGB(hsv) {
|
||||||
var m = hsv.value - c;
|
var m = hsv.value - c;
|
||||||
return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
|
return ["Color", norm(r+m), norm(g+m), norm(b+m), 1 ];
|
||||||
}
|
}
|
||||||
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}
|
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}
|
||||||
}();
|
}();
|
Loading…
Reference in a new issue