dk-plus
Version:
2 lines (1 loc) • 2.27 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=(t,o,c)=>Math.min(c,Math.max(o,t)),m=t=>Math.round(t),b=t=>r(m(t),0,255).toString(16).padStart(2,"0").toUpperCase(),H=t=>{const o=(t.h%360+360)%360,c=r(t.s,0,100)/100,s=r(t.v,0,100)/100,a=r(t.a,0,1),n=s*c,i=n*(1-Math.abs(o/60%2-1)),l=s-n;let e=0,u=0,f=0;return o<60?(e=n,u=i,f=0):o<120?(e=i,u=n,f=0):o<180?(e=0,u=n,f=i):o<240?(e=0,u=i,f=n):o<300?(e=i,u=0,f=n):(e=n,u=0,f=i),{r:m((e+l)*255),g:m((u+l)*255),b:m((f+l)*255),a}},v=t=>{const o=r(t.r,0,255)/255,c=r(t.g,0,255)/255,s=r(t.b,0,255)/255,a=r(t.a,0,1),n=Math.max(o,c,s),i=Math.min(o,c,s),l=n-i;let e=0;l!==0&&(n===o?e=60*((c-s)/l%6):n===c?e=60*((s-o)/l+2):e=60*((o-c)/l+4)),e<0&&(e+=360);const u=n===0?0:l/n,f=n;return{h:e,s:u*100,v:f*100,a}},h=t=>{const o=r(m(t.r),0,255),c=r(m(t.g),0,255),s=r(m(t.b),0,255),a=r(t.a,0,1);return`rgba(${o}, ${c}, ${s}, ${Number(a.toFixed(3))})`},x=t=>`#${b(t.r)}${b(t.g)}${b(t.b)}`,C=t=>{const o=t.trim(),c=/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.exec(o);if(!c)return null;let s=c[1];s.length===3&&(s=s.split("").map(l=>l+l).join(""));const a=parseInt(s.slice(0,2),16),n=parseInt(s.slice(2,4),16),i=parseInt(s.slice(4,6),16);return{r:a,g:n,b:i,a:1}},R=t=>{const o=t.trim(),c=/^rgba?\(([^)]+)\)$/.exec(o);if(!c)return null;const s=c[1].split(",").map(e=>e.trim()).filter(Boolean);if(s.length<3)return null;const a=Number(s[0]),n=Number(s[1]),i=Number(s[2]),l=s.length>=4?Number(s[3]):1;return[a,n,i,l].some(e=>Number.isNaN(e))?null:{r:r(a,0,255),g:r(n,0,255),b:r(i,0,255),a:r(l,0,1)}},F=t=>t?C(t)||R(t):null,S=(t,o,c)=>{if(o==="hex"&&!c)return x(t);if(o==="rgb"){const T=r(m(t.r),0,255),d=r(m(t.g),0,255),N=r(m(t.b),0,255);return c?h(t):`rgb(${T}, ${d}, ${N})`}const s=r(m(t.r),0,255)/255,a=r(m(t.g),0,255)/255,n=r(m(t.b),0,255)/255,i=Math.max(s,a,n),l=Math.min(s,a,n),e=i-l;let u=0;e!==0&&(i===s?u=60*((a-n)/e%6):i===a?u=60*((n-s)/e+2):u=60*((s-a)/e+4)),u<0&&(u+=360);const f=(i+l)/2,M=e===0?0:e/(1-Math.abs(2*f-1)),g=m(u),$=m(M*100),p=m(f*100);return c?`hsla(${g}, ${$}%, ${p}%, ${Number(r(t.a,0,1).toFixed(3))})`:`hsl(${g}, ${$}%, ${p}%)`};exports.formatColor=S;exports.hsvaToRgba=H;exports.parseToRgba=F;exports.rgbaToCss=h;exports.rgbaToHex=x;exports.rgbaToHsva=v;