forked from bgrins/TinyColor
/
tinycolor-min.js
21 lines (21 loc) · 9.84 KB
/
tinycolor-min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// TinyColor.js - <https://github.com/bgrins/TinyColor> - 2011 Brian Grinstead - v0.5
(function(C){var t,u,v,w,x,y,z;function d(a,c){a=a?a:"";if("object"==typeof a&&a.hasOwnProperty("_tc_id"))return a;var b=D(a),h=b.r,i=b.g,g=b.b,e=parseFloat(b.a),q=f(100*e)/100,j=b.format;1>h&&(h=f(h));1>i&&(i=f(i));1>g&&(g=f(g));return{ok:b.ok,format:j,_tc_id:E++,alpha:e,toHsv:function(){var a=A(h,i,g);return{h:360*a.h,s:a.s,v:a.v,a:e}},toHsvString:function(){var a=A(h,i,g),b=f(360*a.h),c=f(100*a.s),a=f(100*a.v);return 1==e?"hsv("+b+", "+c+"%, "+a+"%)":"hsva("+b+", "+c+"%, "+a+"%, "+q+")"},toHsl:function(){var a=
B(h,i,g);return{h:360*a.h,s:a.s,l:a.l,a:e}},toHslString:function(){var a=B(h,i,g),b=f(360*a.h),c=f(100*a.s),a=f(100*a.l);return 1==e?"hsl("+b+", "+c+"%, "+a+"%)":"hsla("+b+", "+c+"%, "+a+"%, "+q+")"},toHex:function(){return p(h,i,g)},toHexString:function(){return"#"+p(h,i,g)},toRgb:function(){return{r:f(h),g:f(i),b:f(g),a:e}},toRgbString:function(){return 1==e?"rgb("+f(h)+", "+f(i)+", "+f(g)+")":"rgba("+f(h)+", "+f(i)+", "+f(g)+", "+q+")"},toName:function(){return F[p(h,i,g)]||!1},toFilter:function(){var a=
secondHex=p(h,i,g),b=secondAlphaHex=Math.round(255*parseFloat(e)).toString(16),f=c&&c.gradientType?"GradientType = 1, ":"";if(secondColor){var j=d(secondColor);secondHex=j.toHex();secondAlphaHex=Math.round(255*parseFloat(j.alpha)).toString(16)}return"progid:DXImageTransform.Microsoft.gradient("+f+"startColorstr=#"+n(b)+a+",endColorstr=#"+n(secondAlphaHex)+secondHex+")"},toString:function(a){var a=a||this.format,b=!1;"rgb"===a&&(b=this.toRgbString());"hex"===a&&(b=this.toHexString());"name"===a&&(b=
this.toName());"hsl"===a&&(b=this.toHslString());"hsv"===a&&(b=this.toHsvString());return b||this.toHexString()}}}function D(a){var c={r:255,g:255,b:255},b=1,h=!1,d=!1;if("string"==typeof a)a:{var a=a.replace(G,"").replace(H,"").toLowerCase(),g=!1;if(r[a])a=r[a],g=!0;else if("transparent"==a){a={r:0,g:0,b:0,a:0};break a}var e,a=(e=t.exec(a))?{r:e[1],g:e[2],b:e[3]}:(e=u.exec(a))?{r:e[1],g:e[2],b:e[3],a:e[4]}:(e=v.exec(a))?{h:e[1],s:e[2],l:e[3]}:(e=w.exec(a))?{h:e[1],s:e[2],l:e[3],a:e[4]}:(e=x.exec(a))?
{h:e[1],s:e[2],v:e[3]}:(e=y.exec(a))?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16),format:g?"name":"hex"}:(e=z.exec(a))?{r:parseInt(e[1]+""+e[1],16),g:parseInt(e[2]+""+e[2],16),b:parseInt(e[3]+""+e[3],16),format:g?"name":"hex"}:!1}if("object"==typeof a){if(a.hasOwnProperty("r")&&a.hasOwnProperty("g")&&a.hasOwnProperty("b"))c={r:255*j(a.r,255),g:255*j(a.g,255),b:255*j(a.b,255)},h=!0,d="rgb";else if(a.hasOwnProperty("h")&&a.hasOwnProperty("s")&&a.hasOwnProperty("v")){a.s=o(a.s);a.v=o(a.v);
var d=a.h,g=a.s,c=a.v,d=6*j(d,360),g=j(g,100),c=j(c,100),h=m.floor(d),f=d-h,d=c*(1-g);e=c*(1-f*g);g=c*(1-(1-f)*g);h%=6;c={r:255*[c,e,d,d,g,c][h],g:255*[g,c,c,e,d,d][h],b:255*[d,d,g,c,c,e][h]};h=!0;d="hsv"}else a.hasOwnProperty("h")&&a.hasOwnProperty("s")&&a.hasOwnProperty("l")&&(a.s=o(a.s),a.l=o(a.l),c=I(a.h,a.s,a.l),h=!0,d="hsl");a.hasOwnProperty("a")&&(b=a.a)}return{ok:h,format:a.format||d,r:k(255,l(c.r,0)),g:k(255,l(c.g,0)),b:k(255,l(c.b,0)),a:b}}function B(a,c,b){var a=j(a,255),c=j(c,255),b=j(b,
255),d=l(a,c,b),i=k(a,c,b),g,e=(d+i)/2;if(d==i)g=i=0;else{var f=d-i,i=0.5<e?f/(2-d-i):f/(d+i);switch(d){case a:g=(c-b)/f+(c<b?6:0);break;case c:g=(b-a)/f+2;break;case b:g=(a-c)/f+4}g/=6}return{h:g,s:i,l:e}}function I(a,c,b){function d(a,b,c){0>c&&(c+=1);1<c&&(c-=1);return c<1/6?a+6*(b-a)*c:0.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}a=j(a,360);c=j(c,100);b=j(b,100);if(0==c)b=c=a=b;else var f=0.5>b?b*(1+c):b+c-b*c,g=2*b-f,b=d(g,f,a+1/3),c=d(g,f,a),a=d(g,f,a-1/3);return{r:255*b,g:255*c,b:255*a}}function A(a,
c,b){var a=j(a,255),c=j(c,255),b=j(b,255),d=l(a,c,b),f=k(a,c,b),g,e=d-f;if(d==f)g=0;else{switch(d){case a:g=(c-b)/e+(c<b?6:0);break;case c:g=(b-a)/e+2;break;case b:g=(a-c)/e+4}g/=6}return{h:g,s:0==d?0:e/d,v:d}}function p(a,c,b){a=[n(f(a).toString(16)),n(f(c).toString(16)),n(f(b).toString(16))];return a[0][0]==a[0][1]&&a[1][0]==a[1][1]&&a[2][0]==a[2][1]?a[0][0]+a[1][0]+a[2][0]:a.join("")}function j(a,c){"string"==typeof a&&-1!=a.indexOf(".")&&1===parseFloat(a)&&(a="100%");var b="string"===typeof a&&
-1!=a.indexOf("%"),a=k(c,l(0,parseFloat(a)));b&&(a=parseInt(a*c)/100);return 1.0E-6>m.abs(a-c)?1:a%c/parseFloat(c)}function n(a){return 1==a.length?"0"+a:""+a}function o(a){1>=a&&(a=100*a+"%");return a}var G=/^[\s,#]+/,H=/\s+$/,E=0,m=Math,f=m.round,k=m.min,l=m.max,s=m.random;d.fromRatio=function(a){if("object"==typeof a){var c={},b;for(b in a)c[b]=o(a[b]);a=c}return d(a)};d.equals=function(a,c){return!a||!c?!1:d(a).toRgbString()==d(c).toRgbString()};d.random=function(){return d.fromRatio({r:s(),g:s(),
b:s()})};d.desaturate=function(a,c){var b=d(a).toHsl();b.s-=(c||10)/100;b.s=k(1,l(0,b.s));return d(b)};d.saturate=function(a,c){var b=d(a).toHsl();b.s+=(c||10)/100;b.s=k(1,l(0,b.s));return d(b)};d.greyscale=function(a){return d.desaturate(a,100)};d.lighten=function(a,c){var b=d(a).toHsl();b.l+=(c||10)/100;b.l=k(1,l(0,b.l));return d(b)};d.darken=function(a,c){var b=d(a).toHsl();b.l-=(c||10)/100;b.l=k(1,l(0,b.l));return d(b)};d.complement=function(a){a=d(a).toHsl();a.h=(a.h+180)%360;return d(a)};d.triad=
function(a){var c=d(a).toHsl(),b=c.h;return[d(a),d({h:(b+120)%360,s:c.s,l:c.l}),d({h:(b+240)%360,s:c.s,l:c.l})]};d.tetrad=function(a){var c=d(a).toHsl(),b=c.h;return[d(a),d({h:(b+90)%360,s:c.s,l:c.l}),d({h:(b+180)%360,s:c.s,l:c.l}),d({h:(b+270)%360,s:c.s,l:c.l})]};d.splitcomplement=function(a){var c=d(a).toHsl(),b=c.h;return[d(a),d({h:(b+72)%360,s:c.s,l:c.l}),d({h:(b+216)%360,s:c.s,l:c.l})]};d.analogous=function(a,c,b){var c=c||6,b=b||30,f=d(a).toHsl(),b=360/b,a=[d(a)];for(f.h=(f.h-(b*c>>1)+720)%
360;--c;)f.h=(f.h+b)%360,a.push(d(f));return a};d.monochromatic=function(a,c){for(var c=c||6,b=d(a).toHsv(),f=b.h,i=b.s,b=b.v,g=[],e=1/c;c--;)g.push(d({h:f,s:i,v:b})),b=(b+e)%1;return g};d.readable=function(a,c){var b=d(a).toRgb(),f=d(c).toRgb();return 10404<(f.r-b.r)*(f.r-b.r)+(f.g-b.g)*(f.g-b.g)+(f.b-b.b)*(f.b-b.b)};var r=d.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",
brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",
darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",
lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",
mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",
pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",
yellow:"ff0",yellowgreen:"9acd32"},F=d.hexNames=function(a){var c={},b;for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);return c}(r);t=RegExp("rgb[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?");u=RegExp("rgba[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?");
v=RegExp("hsl[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?");w=RegExp("hsla[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?");x=RegExp("hsv[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?");
z=/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;y=/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/;"undefined"!==typeof module&&module.exports?module.exports=d:C.tinycolor=d})(this);