UNPKG

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) 2.43 kB
class Conversions{constructor(){}RGBToHex(t){let e=t.indexOf(",")>-1?",":" ",r=(+(t=t.substr(4).split(")")[0].split(e))[0]).toString(16),n=(+t[1]).toString(16),s=(+t[2]).toString(16);return 1==r.length&&(r="0"+r),1==n.length&&(n="0"+n),1==s.length&&(s="0"+s),"#"+r+n+s}RGBToHSL(t){const e=this.breakRGBString(t);let r=e[0],n=e[1],s=e[2];r/=255,n/=255,s/=255;let o=Math.min(r,n,s),a=Math.max(r,n,s),h=a-o,i=0,l=0,c=0;return i=0==h?0:a==r?(n-s)/h%6:a==n?(s-r)/h+2:(r-n)/h+4,i=Math.round(60*i),i<0&&(i+=360),c=(a+o)/2,l=0==h?0:h/(1-Math.abs(2*c-1)),l=+(100*l).toFixed(1),c=+(100*c).toFixed(1),"hsl("+i+","+l+"%,"+c+"%)"}RGBToHSV(t){const e=this.breakRGBString(t);let r=e[0],n=e[1],s=e[2];var o,a,h=0;if(r=parseInt((""+r).replace(/\s/g,""),10),n=parseInt((""+n).replace(/\s/g,""),10),s=parseInt((""+s).replace(/\s/g,""),10),null==r||null==n||null==s||isNaN(r)||isNaN(n)||isNaN(s))alert("Please enter numeric RGB values!");else{if(!(r<0||n<0||s<0||r>255||n>255||s>255)){r/=255,n/=255,s/=255;var i=Math.min(r,Math.min(n,s)),l=Math.max(r,Math.max(n,s));return i==l?[0,0,h=i]:(o=60*((r==i?3:s==i?1:5)-(r==i?n-s:s==i?r-n:s-r)/(l-i)),a=(l-i)/l,h=l,`${Math.floor(o)}, ${Math.floor(100*a)}, ${Math.floor(100*h)}`)}alert("RGB values must be in the range 0 to 255.")}}breakRGBString(t){return t.substr(4).split(")")[0].split(",")}}class ColorGenerator{constructor(t){this.length=t,this.conversions=new Conversions}getCurrentSizeOfArray(){return this.length}setSizeOfArray(t){this.length=t}generateRGB(){const t=[];for(let e=0;e<this.length;e++){const e=`rgb(${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.floor(255*Math.random())})`;t.push(e)}return t}generateHEX(){const t=[];return this.generateRGB().forEach((e=>{const r=this.conversions.RGBToHex(e);t.push(r)})),t}generateHSL(){const t=[];return this.generateRGB().forEach((e=>{const r=this.conversions.RGBToHSL(e);t.push(r)})),t}generateHSV(){const t=[];return this.generateRGB().forEach((e=>{const r=this.conversions.RGBToHSV(e);t.push(r)})),t}generateRGBA(){const t=[];for(let e=0;e<this.length;e++){const e=`rgba(${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.floor(255*Math.random())},${Math.random().toFixed(2)})`;t.push(e)}return t}generateHSLA(){const t=this.generateHSL(),e=[];return t.forEach((t=>{const r=t.substr(4).split(")")[0].split(","),n=`hsla(${r[0]}, ${r[1]}, ${r[2]}, ${Math.random().toFixed(2)})`;e.push(n)})),e}}