random-color-array-generator
Version:
Generate Random Colors Array in RGB, HEX, HSL, RGBA, HSLA and also provide inbuilt class for creating button
2 lines (1 loc) • 1.34 kB
JavaScript
class Conversions{constructor(){}RGBToHex(t){let e=t.indexOf(",")>-1?",":" ",r=(+(t=t.substr(4).split(")")[0].split(e))[0]).toString(16),a=(+t[1]).toString(16),n=(+t[2]).toString(16);return 1==r.length&&(r="0"+r),1==a.length&&(a="0"+a),1==n.length&&(n="0"+n),"#"+r+a+n}RGBToHSL(t){const e=this.breakRGBString(t);let r=e[0],a=e[1],n=e[2];r/=255,a/=255,n/=255;let s=Math.min(r,a,n),l=Math.max(r,a,n),i=l-s,o=0,h=0,u=0;return o=0==i?0:l==r?(a-n)/i%6:l==a?(n-r)/i+2:(r-a)/i+4,o=Math.round(60*o),o<0&&(o+=360),u=(l+s)/2,h=0==i?0:i/(1-Math.abs(2*u-1)),h=+(100*h).toFixed(1),u=+(100*u).toFixed(1),"hsl("+o+","+h+"%,"+u+"%)"}RGBToHSV(t){const e=this.breakRGBString(t);let r=e[0],a=e[1],n=e[2];var s,l,i=0;if(r=parseInt((""+r).replace(/\s/g,""),10),a=parseInt((""+a).replace(/\s/g,""),10),n=parseInt((""+n).replace(/\s/g,""),10),null==r||null==a||null==n||isNaN(r)||isNaN(a)||isNaN(n))alert("Please enter numeric RGB values!");else{if(!(r<0||a<0||n<0||r>255||a>255||n>255)){r/=255,a/=255,n/=255;var o=Math.min(r,Math.min(a,n)),h=Math.max(r,Math.max(a,n));return o==h?[0,0,i=o]:(s=60*((r==o?3:n==o?1:5)-(r==o?a-n:n==o?r-a:n-r)/(h-o)),l=(h-o)/h,i=h,`${Math.floor(s)}, ${Math.floor(100*l)}, ${Math.floor(100*i)}`)}alert("RGB values must be in the range 0 to 255.")}}breakRGBString(t){return t.substr(4).split(")")[0].split(",")}}export default Conversions;