@@ -1,29 +1,29 @@
1−/**
2−module Native.Color where
3−**/
41
5−(function() {
6−"use strict";
2+Elm.Native.Color = function(elm) {
3+ "use strict";
74
8−function extract(c) {
9− if (c._3 === 1) { return 'rgb(' + c._0 + ',' + c._1 + ',' + c._2 + ')'; }
10− return 'rgba(' + c._0 + ',' + c._1 + ',' + c._2 + ',' + c._3 + ')';
11−}
12−function complement(rgb) {
5+ elm.Native = elm.Native || {};
6+ if (elm.Native.Color) return elm.Native.Color;
7+
8+ function extract(c) {
9+ if (c._3 === 1) { return 'rgb(' + c._0 + ',' + c._1 + ',' + c._2 + ')'; }
10+ return 'rgba(' + c._0 + ',' + c._1 + ',' + c._2 + ',' + c._3 + ')';
11+ }
12+ function complement(rgb) {
1313 var hsv = toHSV(rgb);
1414 hsv.hue = (hsv.hue + 180) % 360;
1515 return toRGB(hsv);
16−}
16+ }
1717
18−function hsva(h,s,v,a) {
18+ function hsva(h,s,v,a) {
1919 var clr = toRGB({hue:h, saturation:s, value:v});
2020 clr._3 = a;
2121 return clr;
22−}
22+ }
2323
24−function hsv(h,s,v) { return toRGB({hue:h, saturation:s, value:v}); }
24+ function hsv(h,s,v) { return toRGB({hue:h, saturation:s, value:v}); }
2525
26−function toHSV(rgb) {
26+ function toHSV(rgb) {
2727 var hsv = {};
2828 var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
2929 var M = Math.max(r,g,b);
@@ -31,39 +31,39 @@ function toHSV(rgb) {
3131 var c = M - m;
3232
3333 var h = 0;
34− if (c === 0) { h = 0; }
34+ if (c === 0) { h = 0; }
3535 else if (M === r) { h = ((g - b) / c) % 6; }
3636 else if (M === g) { h = ((b - r) / c) + 2; }
3737 else if (M === b) { h = ((r - g) / c) + 4; }
3838 h *= 60;
3939
4040 return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
41−}
41+ }
4242
43−function between(lo,hi,x) { return lo <= x && x < hi; }
44−function norm(n) { return Math.round(n*255); }
43+ function between(lo,hi,x) { return lo <= x && x < hi; }
44+ function norm(n) { return Math.round(n*255); }
4545
46−function toRGB(hsv) {
47− var c = hsv.value * hsv.saturation;
48− var hue = hsv.hue / 60;
49− var x = c * (1 - Math.abs((hue % 2) - 1));
50− var r = 0, g = 0, b = 0;
51− if (between(0,1,hue)) { r = c; g = x; b = 0; }
52− else if (between(1,2,hue)) { r = x; g = c; b = 0; }
53− else if (between(2,3,hue)) { r = 0; g = c; b = x; }
54− else if (between(3,4,hue)) { r = 0; g = x; b = c; }
55− else if (between(4,5,hue)) { r = x; g = 0; b = c; }
56− else if (between(5,6,hue)) { r = c; g = 0; b = x; }
46+ function toRGB(hsv) {
47+ var c = hsv.value * hsv.saturation;
48+ var hue = hsv.hue / 60;
49+ var x = c * (1 - Math.abs((hue % 2) - 1));
50+ var r = 0, g = 0, b = 0;
51+ if (between(0,1,hue)) { r = c; g = x; b = 0; }
52+ else if (between(1,2,hue)) { r = x; g = c; b = 0; }
53+ else if (between(2,3,hue)) { r = 0; g = c; b = x; }
54+ else if (between(3,4,hue)) { r = 0; g = x; b = c; }
55+ else if (between(4,5,hue)) { r = x; g = 0; b = c; }
56+ else if (between(5,6,hue)) { r = c; g = 0; b = x; }
5757
58− var m = hsv.value - c;
59− return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
60−}
58+ var m = hsv.value - c;
59+ return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
60+ }
6161
62−Elm.Native.Color = {
62+ return elm.Native.Color = {
6363 hsva:F4(hsva),
6464 hsv:F3(hsv),
6565 complement:complement,
6666 extract:extract
67−};
67+ };
6868
69−}());
69+};