forked from bgrins/TinyColor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tinycolor-min.js
20 lines (20 loc) · 9.51 KB
/
tinycolor-min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// TinyColor.js - <https://github.com/bgrins/TinyColor> - 2011 Brian Grinstead - v0.5
(function(C){function d(c){var b,a,d,g,e,c=c?c:"";if("object"==typeof c&&c.hasOwnProperty("_tc_id"))return c;a=c;e=g=d=255;var c=1,h=!1,i=!1;if("string"==typeof a)a:{a=a.replace(D,"").replace(E,"").toLowerCase();var s=!1;if(w[a])a=w[a],s=!0;else if("transparent"==a){a={r:0,g:0,b:0,a:0};break a}a=(b=q.rgb.exec(a))?{r:b[1],g:b[2],b:b[3]}:(b=q.rgba.exec(a))?{r:b[1],g:b[2],b:b[3],a:b[4]}:(b=q.hsl.exec(a))?{h:b[1],s:b[2],l:b[3]}:(b=q.hsla.exec(a))?{h:b[1],s:b[2],l:b[3],a:b[4]}:(b=q.hsv.exec(a))?{h:b[1],
s:b[2],v:b[3]}:(b=q.hex6.exec(a))?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16),format:s?"name":"hex"}:(b=q.hex3.exec(a))?{r:parseInt(b[1]+""+b[1],16),g:parseInt(b[2]+""+b[2],16),b:parseInt(b[3]+""+b[3],16),format:s?"name":"hex"}:!1}if("object"==typeof a&&(a.hasOwnProperty("r")&&a.hasOwnProperty("g")&&a.hasOwnProperty("b")?(d=255*j(a.r,255),g=255*j(a.g,255),e=255*j(a.b,255),h=!0,i="rgb"):a.hasOwnProperty("h")&&a.hasOwnProperty("s")&&a.hasOwnProperty("v")?(a.s=u(a.s),a.v=u(a.v),b=a.h,
g=a.s,e=a.v,b=6*j(b,360),g=j(g,100),e=j(e,100),d=t.floor(b),h=b-d,b=e*(1-g),i=e*(1-h*g),h=e*(1-(1-h)*g),s=d%6,d=255*[e,i,b,b,h,e][s],g=255*[h,e,e,i,b,b][s],e=255*[b,b,h,e,e,i][s],h=!0,i="hsv"):a.hasOwnProperty("h")&&(a.hasOwnProperty("s")&&a.hasOwnProperty("l"))&&(a.s=u(a.s),a.l=u(a.l),d=a.h,b=a.s,e=a.l,g=function(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},d=j(d,360),b=j(b,100),e=j(e,100),0==b?b=e=i=e:(i=0.5>e?e*(1+b):e+b-e*b,h=2*e-i,b=g(h,i,d+1/3),
e=g(h,i,d),i=g(h,i,d-1/3)),d=255*b,g=255*e,e=255*i,h=!0,i="hsl"),a.hasOwnProperty("a")))c=a.a;b=h;a=a.format||i;d=n(255,o(d,0));g=n(255,o(g,0));e=n(255,o(e,0));var k=d,l=g,m=e,p=parseFloat(c),r=f(100*p)/100;1>k&&(k=f(k));1>l&&(l=f(l));1>m&&(m=f(m));return{ok:b,format:a,_tc_id:F++,alpha:p,toHsv:function(){var a=z(k,l,m);return{h:360*a.h,s:a.s,v:a.v,a:p}},toHsvString:function(){var a=z(k,l,m),b=f(360*a.h),c=f(100*a.s),a=f(100*a.v);return 1==p?"hsv("+b+", "+c+"%, "+a+"%)":"hsva("+b+", "+c+"%, "+a+"%, "+
r+")"},toHsl:function(){var a=A(k,l,m);return{h:360*a.h,s:a.s,l:a.l,a:p}},toHslString:function(){var a=A(k,l,m),b=f(360*a.h),c=f(100*a.s),a=f(100*a.l);return 1==p?"hsl("+b+", "+c+"%, "+a+"%)":"hsla("+b+", "+c+"%, "+a+"%, "+r+")"},toHex:function(){return v(k,l,m)},toHexString:function(){return"#"+v(k,l,m)},toRgb:function(){return{r:f(k),g:f(l),b:f(m),a:p}},toRgbString:function(){return 1==p?"rgb("+f(k)+", "+f(l)+", "+f(m)+")":"rgba("+f(k)+", "+f(l)+", "+f(m)+", "+r+")"},toName:function(){return G[v(k,
l,m)]||!1},toFilter:function(){var a=v(k,l,m),b=Math.round(255*parseFloat(p)).toString(16);return"progid:DXImageTransform.Microsoft.gradient(startColorstr=#"+b+a+",endColorstr=#"+b+a+")"},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 A(c,b,a){var c=j(c,255),b=j(b,255),a=j(a,255),d=o(c,b,a),g=n(c,
b,a),e,h=(d+g)/2;if(d==g)e=g=0;else{var f=d-g,g=0.5<h?f/(2-d-g):f/(d+g);switch(d){case c:e=(b-a)/f+(b<a?6:0);break;case b:e=(a-c)/f+2;break;case a:e=(c-b)/f+4}e/=6}return{h:e,s:g,l:h}}function z(c,b,a){var c=j(c,255),b=j(b,255),a=j(a,255),d=o(c,b,a),g=n(c,b,a),e,f=d-g;if(d==g)e=0;else{switch(d){case c:e=(b-a)/f+(b<a?6:0);break;case b:e=(a-c)/f+2;break;case a:e=(c-b)/f+4}e/=6}return{h:e,s:0==d?0:f/d,v:d}}function v(c,b,a){function d(a){return 1==a.length?"0"+a:""+a}c=[d(f(c).toString(16)),d(f(b).toString(16)),
d(f(a).toString(16))];return c[0][0]==c[0][1]&&c[1][0]==c[1][1]&&c[2][0]==c[2][1]?c[0][0]+c[1][0]+c[2][0]:c.join("")}function j(c,b){"string"==typeof c&&(-1!=c.indexOf(".")&&1===parseFloat(c))&&(c="100%");var a="string"===typeof c&&-1!=c.indexOf("%"),c=n(b,o(0,parseFloat(c)));a&&(c=parseInt(c*b)/100);return 1E-6>t.abs(c-b)?1:c%b/parseFloat(b)}function u(c){1>=c&&(c=100*c+"%");return c}var D=/^[\s,#]+/,E=/\s+$/,F=0,t=Math,f=t.round,n=t.min,o=t.max,x=t.random;d.fromRatio=function(c){if("object"==typeof c){var b=
{},a;for(a in c)b[a]=u(c[a]);c=b}return d(c)};d.equals=function(c,b){return!c||!b?!1:d(c).toHex()==d(b).toHex()};d.random=function(){return d.fromRatio({r:x(),g:x(),b:x()})};d.desaturate=function(c,b){var a=d(c).toHsl();a.s-=(b||10)/100;a.s=n(1,o(0,a.s));return d(a)};d.saturate=function(c,b){var a=d(c).toHsl();a.s+=(b||10)/100;a.s=n(1,o(0,a.s));return d(a)};d.greyscale=function(c){return d.desaturate(c,100)};d.lighten=function(c,b){var a=d(c).toHsl();a.l+=(b||10)/100;a.l=n(1,o(0,a.l));return d(a)};
d.darken=function(c,b){var a=d(c).toHsl();a.l-=(b||10)/100;a.l=n(1,o(0,a.l));return d(a)};d.complement=function(c){c=d(c).toHsl();c.h=(c.h+180)%360;return d(c)};d.triad=function(c){var b=d(c).toHsl(),a=b.h;return[d(c),d({h:(a+120)%360,s:b.s,l:b.l}),d({h:(a+240)%360,s:b.s,l:b.l})]};d.tetrad=function(c){var b=d(c).toHsl(),a=b.h;return[d(c),d({h:(a+90)%360,s:b.s,l:b.l}),d({h:(a+180)%360,s:b.s,l:b.l}),d({h:(a+270)%360,s:b.s,l:b.l})]};d.splitcomplement=function(c){var b=d(c).toHsl(),a=b.h;return[d(c),
d({h:(a+72)%360,s:b.s,l:b.l}),d({h:(a+216)%360,s:b.s,l:b.l})]};d.analogous=function(c,b,a){var b=b||6,a=a||30,f=d(c).toHsl(),a=360/a,c=[d(c)];for(f.h=(f.h-(a*b>>1)+720)%360;--b;)f.h=(f.h+a)%360,c.push(d(f));return c};d.monochromatic=function(c,b){for(var b=b||6,a=d(c).toHsv(),f=a.h,g=a.s,a=a.v,e=[],h=1/b;b--;)e.push(d({h:f,s:g,v:a})),a=(a+h)%1;return e};d.readable=function(c,b){var a=d(c).toRgb(),f=d(b).toRgb();return 10404<(f.r-a.r)*(f.r-a.r)+(f.g-a.g)*(f.g-a.g)+(f.b-a.b)*(f.b-a.b)};var w=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"},y=w,B={},r;for(r in y)y.hasOwnProperty(r)&&(B[y[r]]=r);var G=d.hexNames=B,q;q={rgb:RegExp("rgb[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"),rgba:RegExp("rgba[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"),
hsl:RegExp("hsl[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"),hsla:RegExp("hsla[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"),hsv:RegExp("hsv[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"),
hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([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);