dk-plus
Version:
2 lines (1 loc) • 3.2 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u={white:"#FFFFFF",silver:"#C0C0C0",gray:"#808080",black:"#000000",red:"#FF0000",maroon:"#800000",yellow:"#FFFF00",olive:"#808000",lime:"#00FF00",green:"#008000",aqua:"#00FFFF",teal:"#008080",blue:"#0000FF",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080"},f=n=>{const g=/^#([0-9a-f]{3}){1,2}$/i.test(n),l=/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/i.test(n),a=/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(0?\.\d+|1)\)$/i.test(n),p=Object.keys(u).includes(n),b=(s="")=>{let r=s===""?n.replace("#",""):s.replace("#","");r.length===3&&(r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]);const t=r.match(/../g);for(let e=0;e<t.length;e++)t[e]=parseInt(t[e],16).toString();return t},i=(...s)=>{const r=[...s];for(let t=0;t<r.length;t++)r[t].length===1&&(r[t]="0"+r[t]);return"#"+r.join("")};return{getDeepen:(s=0)=>{if(g){const r=b();for(let t=0;t<r.length;t++)r[t]=Math.floor(Number(r[t])*(1-s)).toString(16);return i(...r)}if(l){const r=n,t=[];t[0]=r.split("(")[1].split(",")[0],t[1]=r.split("(")[1].split(",")[1],t[2]=r.split("(")[1].split(",")[2].split(")")[0];for(let e=0;e<t.length;e++)t[e]=Math.floor(Number(t[e])*(1-s)).toString(16);return i(...t)}if(a){const r=n,t=[];let e="";t[0]=r.split("(")[1].split(",")[0],t[1]=r.split("(")[1].split(",")[1],t[2]=r.split("(")[1].split(",")[2][0],e=r.split("(")[1].split(",")[3].split(")")[0],e=Math.round(Number(e)*255).toString(16).padStart(2,"0");for(let o=0;o<t.length;o++)t[o]=Math.floor(Number(t[o])*(1-s)).toString(16);return t.push(e),i(...t)}if(p){const r=u[n],t=b(r);for(let e=0;e<t.length;e++)t[e]=Math.floor(Number(t[e])*(1-s)).toString(16);return i(...t)}if(!g&&!l&&!a&&!p)throw new Error(`dk-plus -> getDeepen -> ${n} is not a color`);return n},getDodge:(s=0)=>{if(g){const r=b();for(let t=0;t<r.length;t++)r[t]=Math.floor((255-Number(r[t]))*s+Number(r[t])).toString(16);return i(...r)}if(l){const r=n,t=[];t[0]=r.split("(")[1].split(",")[0],t[1]=r.split("(")[1].split(",")[1],t[2]=r.split("(")[1].split(",")[2].split(")")[0];for(let e=0;e<t.length;e++)t[e]=Math.floor((255-Number(t[e]))*s+Number(t[e])).toString(16);return i(...t)}if(a){const r=n,t=[];let e="";t[0]=r.split("(")[1].split(",")[0],t[1]=r.split("(")[1].split(",")[1],t[2]=r.split("(")[1].split(",")[2][0],e=r.split("(")[1].split(",")[3].split(")")[0],e=Math.round(Number(e)*255).toString(16).padStart(2,"0");for(let o=0;o<t.length;o++)t[o]=Math.floor((255-Number(t[o]))*s+Number(t[o])).toString(16);return t.push(e),i(...t)}if(p){const r=u[n],t=b(r);for(let e=0;e<t.length;e++)t[e]=Math.floor((255-Number(t[e]))*s+Number(t[e])).toString(16);return i(...t)}if(!g&&!l&&!a&&!p)throw new Error(`dk-plus -> getDodge -> ${n} is not a color`);return n},hexToRgba:s=>{const r=n.replace("#",""),t=parseInt(r.substring(0,2),16),e=parseInt(r.substring(2,4),16),o=parseInt(r.substring(4,6),16);return`rgba(${t}, ${e}, ${o}, ${s})`},rgbaToHex:()=>{const s=n.replace(/[rgba()]/g,"").split(","),r=parseInt(s[0]),t=parseInt(s[1]),e=parseInt(s[2]),o=r.toString(16).padStart(2,"0"),c=t.toString(16).padStart(2,"0"),h=e.toString(16).padStart(2,"0");return`#${o}${c}${h}`}}};exports.getColor=f;