UNPKG

colormath.js

Version:

A color conversion and color manipulation library written in typescript for Node.js, Deno and Browser.

2 lines (1 loc) 8.25 kB
var B=Object.defineProperty;var et=Object.getOwnPropertyDescriptor;var rt=Object.getOwnPropertyNames;var nt=Object.prototype.hasOwnProperty;var ot=t=>B(t,"__esModule",{value:!0}),e=(t,n)=>B(t,"name",{value:n,configurable:!0});var ut=(t,n)=>{for(var u in n)B(t,u,{get:n[u],enumerable:!0})},lt=(t,n,u,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of rt(n))!nt.call(t,o)&&(u||o!=="default")&&B(t,o,{get:()=>n[o],enumerable:!(r=et(n,o))||r.enumerable});return t};var mt=(t=>(n,u)=>t&&t.get(n)||(u=lt(ot({}),n,1),t&&t.set(n,u),u))(typeof WeakMap!="undefined"?new WeakMap:0);var ct={};ut(ct,{ColorResult:()=>g,ansi16:()=>j,ansi256:()=>J,apple:()=>Q,breakHex:()=>P,cmyk:()=>E,complement:()=>it,darken:()=>bt,desaturate:()=>ft,formatHex:()=>U,gray:()=>K,grayscale:()=>pt,hex:()=>q,hsl:()=>S,hsv:()=>L,hue:()=>y,hwb:()=>D,invert:()=>at,lab:()=>N,lch:()=>_,lighten:()=>v,mixColor:()=>xt,padHex:()=>w,random:()=>W,randomHex:()=>Y,rawHex:()=>T,rgb:()=>I,saturate:()=>z,xyz:()=>X});var k=e(t=>typeof t=="string"?A(t):t,"RGB"),G=e(t=>Math.floor(Math.random()*t),"RANDOM"),g=class{constructor(n){this.rgb=n}get hex(){return F(this.rgb)}valueOf(){return this.hex}};e(g,"ColorResult");function T(t){if(t[0]=="#"&&(t=t.slice(1)),t.length>=6)return t.slice(0,6);if(t.length==3){let n="";for(let u=0;u<t.length;u++)n+=`${t[u]}${t[u]}`;return n}else return"000000"}e(T,"rawHex");function U(t){return`#${T(t)}`}e(U,"formatHex");function P(t){let n=parseInt(t,16);return[n>>16,n>>8&255,n&255]}e(P,"breakHex");function w(t){let n=Math.round(t).toString(16);return`${n.length==1?"0":""}${n}`}e(w,"padHex");function A(t){return P(T(t))}e(A,"hexToRgb");function F([t,n,u,r]){return`#${w(t)}${w(n)}${w(u)}${r?w(r*255):""}`}e(F,"rgbToHex");function W(){return[G(255),G(255),G(255)]}e(W,"random");function Y(){return`#${G(16777215).toString(16)}`}e(Y,"randomHex");function s(t){return parseFloat(t.toFixed(1))}e(s,"fixedFloat");var q;(o=>{o.HEX_MAX=16777215,o.toRgb=A;function u(m){let l=Math.min(m,o.HEX_MAX).toString(16);return`#${"0".repeat(6-l.length)}${l}`}o.fromInt=u,e(u,"fromInt");function r(m){return Math.min(parseInt(T(m),16),o.HEX_MAX)}o.toInt=r,e(r,"toInt")})(q||(q={}));var I;(d=>{d.toHex=F;function n([i,f,p]){i/=255,f/=255,p/=255;let b=Math.min(i,f,p),c=Math.max(i,f,p);if(b==c)return[0,0,s(b*100)];let R=c-b;return[M([i,f,p],c,b),s(100*R/c),s(100*c)]}d.toHsv=n,e(n,"toHsv");function u([i,f,p]){i/=255,f/=255,p/=255;let b=Math.min(i,f,p),c=Math.max(i,f,p),R=c-b,C=(c+b)/2,H=0,V=0;return c!=b&&(V=c==b?0:R/(C>.5?2-R:c+b),H=M([i,f,p],c,b)),[H,s(V*100),s(C*100)]}d.toHsl=u,e(u,"toHsl");function r([i,f,p]){let b=Math.min(i,f,p),c=Math.max(i,f,p);return[M([i,f,p],c,b),s(100/255*b),s(100*(1-1/255*c))]}d.toHwb=r,e(r,"toHwb");function o([i,f,p]){let b=1-i/255,c=1-f/255,R=1-p/255,C=Math.min(b,c,R),H=1-C,V=e(tt=>s((tt-C)/H*255)||0,"f");return[V(b),V(c),V(R),s(C*255)]}d.toCmyk=o,e(o,"toCmyk");function m([i,f,p],b=null){if(b=Math.round((typeof b=="number"?b:n([i,f,p])[2])/50),!b)return 30;let c=30+(Math.round(p/255)<<2|Math.round(f/255)<<1|Math.round(i/255));return b==2&&(c+=60),c}d.toAnsi16=m,e(m,"toAnsi16");function l([i,f,p]){return i>>4===f>>4&&f>>4===p>>4?i<8?16:i>248?231:Math.round((i-8)/247*24)+232:16+36*Math.round(i/255*5)+6*Math.round(f/255*5)+Math.round(p/255*5)}d.toAnsi256=l,e(l,"toAnsi256");function a([i,f,p]){let b=e(H=>(H/=255,H>.04045?((H+.055)/1.055)**2.4:H/12.92),"f");i=b(i),f=b(f),p=b(p);let c=i*.4124564+f*.3575761+p*.1804375,R=i*.2126729+f*.7151522+p*.072175,C=i*.0193339+f*.119192+p*.9503041;return[c*100,R*100,C*100]}d.toXyz=a,e(a,"toXyz");function x(i){return X.toLab(a(i))}d.toLab=x,e(x,"toLab");function M([i,f,p],b,c){(!c||!b)&&(b=Math.max(i,f,p),c=Math.min(i,f,p));let R=i==c,C=p==c,H=R?3:C?1:5,V=R?f-p:C?i-f:p-i;return s((H-V/(b-c))*60)||0}d.toHue=M,e(M,"toHue");function h([i,f,p]){return s((i+f+p)/765*100)}d.toGray=h,e(h,"toGray");function $(i){return i.map(f=>s(f/255*65535))}d.toApple=$,e($,"toApple")})(I||(I={}));var L;(r=>{function t([o,m,l]){m/=100,l/=100;let a=[0,0,0],x=Math.floor(o/60%6),M=o/60-x,h=l*(1-m),$=l*(1-M*m),d=l*(1-(1-M)*m);switch(x%6){case 0:a=[l,d,h];break;case 1:a=[$,l,h];break;case 2:a=[h,l,d];break;case 3:a=[h,$,l];break;case 4:a=[d,h,l];break;case 5:a=[l,h,$];break}return a.map(i=>s(i*255))}r.toRgb=t,e(t,"toRgb");function n(o){return F(t(o))}r.toHex=n,e(n,"toHex");function u([o,m,l]){m/=100,l/=100;let a=Math.max(.01,l),x=(2-m)*l,M=(2-m)*a,h=m*a/(M>1?2-M:M);return[o,s(h*100),s(x*50)]}r.toHsl=u,e(u,"toHsl")})(L||(L={}));var S;(r=>{function t([o,m,l]){m/=100,l/=100;let a=e(h=>(h+o/30)%12,"k"),x=m*Math.min(l,1-l),M=e(h=>s((l-x*Math.max(-1,Math.min(a(h)-3,Math.min(9-a(h),1))))*255),"f");return[M(0),M(8),M(4)]}r.toRgb=t,e(t,"toRgb");function n([o,m,l]){m/=100,l/=100;let a=Math.max(.01,l),x=m;l*=2,m*=l>1?2-l:l,x*=a>1?2-a:a;let M=l==0?x*2/(a+x):2*m/(l+m),h=(l+m)/2;return[o,s(M*100),s(h*100)]}r.toHsv=n,e(n,"toHsv");function u(o){return F(t(o))}r.toHex=u,e(u,"toHex")})(S||(S={}));var D;(n=>{function t([u,r,o]){return S.toRgb([u,100,50]).map(m=>m*(100-r-o)/100+r)}n.toRgb=t,e(t,"toRgb")})(D||(D={}));var E;(u=>{function t([r,o,m,l]){r/=100,o/=100,m/=100,l/=100;let a=1-l,x=e(M=>s((1-(M*a+l))*255),"f");return[x(r),x(o),x(m)]}u.toRgb=t,e(t,"toRgb");function n(r){return I.toCmyk(S.toRgb(r))}u.toHex=n,e(n,"toHex")})(E||(E={}));var X;(u=>{function t([r,o,m]){r/=100,o/=100,m/=100;let l=e(a=>(a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,s(Math.min(Math.max(0,a),1)*255)),"f");return[l(r*3.2404542+o*-1.5371385+m*-.4985314),l(r*-.969266+o*1.8760108+m*.041556),l(r*.0556434+o*-.2040259+m*1.0572252)]}u.toRgb=t,e(t,"toRgb");function n([r,o,m]){let l=e(a=>a>.008856?a**(1/3):7.787*a+16/116,"f");return r=l(r/95.047),o=l(o/100),m=l(m/108.883),[116*o-16,500*(r-o),200*(o-m)]}u.toLab=n,e(n,"toLab")})(X||(X={}));var N;(r=>{function t(o){return X.toRgb(n(o))}r.toRgb=t,e(t,"toRgb");function n([o,m,l]){let a=(o+16)/116,x=m/500+a,M=a-l/200,h=e($=>{let d=$**3;return d>.008856?d:($-16/116)/7.787},"f");return[h(x)*95.047,h(a)*100,h(M)*108.883]}r.toXyz=n,e(n,"toXyz");function u([o,m,l]){let a=Math.atan2(l,m)*360/2/Math.PI;return a<0&&(a+=360),[o,Math.sqrt(m*m+l*l),a]}r.toLch=u,e(u,"toLch")})(N||(N={}));var _;(n=>{function t([u,r,o]){let m=o/360*2*Math.PI;return[u,r*Math.cos(m),r*Math.sin(m)]}n.toLab=t,e(t,"toLab")})(_||(_={}));var j;(n=>{function t(u){let r=u%10;if(r===0||r===7)return u>50&&(r+=3.5),r/=10.5*255,[r,r,r];let o=(~~(u>50)+1)*.5;return[s((r&1)*o*255),s((r>>1&1)*o*255),s((r>>2&1)*o*255)]}n.toRgb=t,e(t,"toRgb")})(j||(j={}));var J;(n=>{function t(u){if(u>=232){let o=(u-232)*10+8;return[o,o,o]}u-=16;let r=u%36;return[s(Math.floor(u/36)/5*255),s(Math.floor(r/6)/5*255),s(r%6/5*255)]}n.toRgb=t,e(t,"toRgb")})(J||(J={}));var K;(a=>{a.toHsl=e(x=>[0,0,x],"toHsl"),a.toHsv=e(x=>[0,0,x],"toHsv"),a.toHwb=e(x=>[0,100,x],"toHwb"),a.toCmyk=e(x=>[0,0,0,100-x],"toCmyk"),a.toLab=e(x=>[x,0,0],"toLab");function m(x){let M=s(x/100*255);return[M,M,M]}a.toRgb=m,e(m,"toRgb");function l(x){let M=Math.round(x/100*255)&255;return q.fromInt((M<<16)+(M<<8)+M)}a.toHex=l,e(l,"toHex")})(K||(K={}));var Q;(n=>{function t(u){return u.map(r=>s(r/65535*255))}n.toRgb=t,e(t,"toRgb")})(Q||(Q={}));function Z(t,n){let u=I.toHsv(typeof t=="string"?A(t):t);return n(u),new g(L.toRgb(u))}e(Z,"useHSV");function at(t){let[n,u,r]=k(t);return new g([255-n,255-u,255-r])}e(at,"invert");function y(t,n=30){return n>360&&(n%=360),Z(t,u=>u[0]+=n)}e(y,"hue");function it(t){return y(t,180)}e(it,"complement");function z(t,n=20){return Z(t,u=>{let r=u[1]+n;r>100?r=100:r<0&&(r=0),u[1]=r})}e(z,"saturate");function ft(t,n=20){return z(t,-n)}e(ft,"desaturate");function pt(t){let[n,u,r]=k(t),o=Math.floor((n+u+r)/765*100);return new g([o,o,o])}e(pt,"grayscale");function xt(t,n,u=.5){let r=[0,0,0],o=k(t),m=k(n);for(let l=0;l<3;l++)r[l]=o[l]*u+m[l]*(1-u);return new g(r)}e(xt,"mixColor");function v(t,n=10){let u=k(t);n*=2.55;for(let r=0;r<3;r++)u[r]+=n,u[r]>255?u[r]=255:u[r]<0&&(u[r]=0);return new g(u)}e(v,"lighten");function bt(t,n=20){return v(t,-n)}e(bt,"darken");module.exports=mt(ct);0&&(module.exports={ColorResult,ansi16,ansi256,apple,breakHex,cmyk,complement,darken,desaturate,formatHex,gray,grayscale,hex,hsl,hsv,hue,hwb,invert,lab,lch,lighten,mixColor,padHex,random,randomHex,rawHex,rgb,saturate,xyz});