Skip to content

Commit be46523

Browse files
committed
[refactor] switch to improved colour conversion helper
1 parent 7ee92ce commit be46523

File tree

5 files changed

+156
-207
lines changed

5 files changed

+156
-207
lines changed

‎src/js/background.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,10 @@ var background = (function(){
127127
helper.e(".control-background-image-file").value="";
128128
},
129129
picker: function(){
130-
helper.e(".control-background-color-by-picker").value=helper.rgbToHex(state.get.current().background.color.custom);
130+
helper.e(".control-background-color-by-picker").value=helper.convertColor.rgb.hex(state.get.current().background.color.custom);
131131
},
132132
hex: function(){
133-
helper.e(".control-background-color-by-hex").value=helper.rgbToHex(state.get.current().background.color.custom);
133+
helper.e(".control-background-color-by-hex").value=helper.convertColor.rgb.hex(state.get.current().background.color.custom);
134134
}
135135
};
136136

‎src/js/control.js‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2594,8 +2594,8 @@ var control = (function(){
25942594
func: function(){
25952595
theme.mod.color.hsl();
25962596
theme.render.color.shade();
2597-
theme.render.color.range.hsl();
2598-
theme.render.color.range.rgb();
2597+
theme.render.color.input.range.hsl();
2598+
theme.render.color.input.range.rgb();
25992599
theme.render.color.input.hex();
26002600
theme.render.color.input.picker();
26012601
}
@@ -2606,8 +2606,8 @@ var control = (function(){
26062606
func: function(){
26072607
theme.mod.color.hsl();
26082608
theme.render.color.shade();
2609-
theme.render.color.range.hsl();
2610-
theme.render.color.range.rgb();
2609+
theme.render.color.input.range.hsl();
2610+
theme.render.color.input.range.rgb();
26112611
theme.render.color.input.hex();
26122612
theme.render.color.input.quick();
26132613
}
@@ -2619,8 +2619,8 @@ var control = (function(){
26192619
func: function(){
26202620
theme.mod.color.hsl();
26212621
theme.render.color.shade();
2622-
theme.render.color.range.hsl();
2623-
theme.render.color.range.rgb();
2622+
theme.render.color.input.range.hsl();
2623+
theme.render.color.input.range.rgb();
26242624
theme.render.color.input.picker();
26252625
theme.render.color.input.quick();
26262626
}
@@ -2951,7 +2951,7 @@ var control = (function(){
29512951
returnparseInt(object.element.value,10);
29522952
},
29532953
color: function(object){
2954-
returnhelper.hexToRgb(object.element.value);
2954+
returnhelper.convertColor.hex.rgb(object.element.value);
29552955
}
29562956
};
29572957
varvalueMod={
@@ -2962,7 +2962,7 @@ var control = (function(){
29622962
returnvalue/100;
29632963
},
29642964
hexTextString: function(value,object){
2965-
returnhelper.hexToRgb(value);
2965+
returnhelper.convertColor.hex.rgb(value);
29662966
}
29672967
};
29682968
varchangeValue=function(object){
@@ -2978,10 +2978,10 @@ var control = (function(){
29782978
path: object.path,
29792979
newValue: newValue
29802980
});
2981-
// console.log("state set", object.path, helper.getObject({
2982-
// object: state.get.current(),
2983-
// path: object.path
2984-
// }));
2981+
console.log("state set",object.path,helper.getObject({
2982+
object: state.get.current(),
2983+
path: object.path
2984+
}));
29852985
};
29862986
};
29872987
varbindControl=function(object){
@@ -3947,7 +3947,7 @@ var control = (function(){
39473947
returnvalue*100;
39483948
},
39493949
hexTextString: function(value,element){
3950-
returnhelper.rgbToHex(value);
3950+
returnhelper.convertColor.rgb.hex(value);
39513951
}
39523952
};
39533953
varsetValue={
@@ -4006,7 +4006,7 @@ var control = (function(){
40064006
object.element.value=newValue;
40074007
},
40084008
color: function(object){
4009-
object.element.value=helper.rgbToHex(helper.getObject({
4009+
object.element.value=helper.convertColor.rgb.hex(helper.getObject({
40104010
object: state.get.current(),
40114011
path: object.path
40124012
}));

‎src/js/helper.js‎

Lines changed: 44 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -195,90 +195,6 @@ var helper = (function(){
195195
};
196196
};
197197

198-
varhslToRgb=function(hslObject){
199-
if(hslObject==undefined){
200-
returnnull;
201-
};
202-
203-
varchroma=(1-Math.abs((2*hslObject.l)-1))*hslObject.s;
204-
varhuePrime=hslObject.h/60;
205-
varsecondComponent=chroma*(1-Math.abs((huePrime%2)-1));
206-
207-
huePrime=Math.floor(huePrime);
208-
varred;
209-
vargreen;
210-
varblue;
211-
212-
if(huePrime===0||huePrime===6){
213-
red=chroma;
214-
green=secondComponent;
215-
blue=0;
216-
}elseif(huePrime===1){
217-
red=secondComponent;
218-
green=chroma;
219-
blue=0;
220-
}elseif(huePrime===2){
221-
red=0;
222-
green=chroma;
223-
blue=secondComponent;
224-
}elseif(huePrime===3){
225-
red=0;
226-
green=secondComponent;
227-
blue=chroma;
228-
}elseif(huePrime===4){
229-
red=secondComponent;
230-
green=0;
231-
blue=chroma;
232-
}elseif(huePrime===5){
233-
red=chroma;
234-
green=0;
235-
blue=secondComponent;
236-
};
237-
238-
varlightnessAdjustment=hslObject.l-(chroma/2);
239-
red+=lightnessAdjustment;
240-
green+=lightnessAdjustment;
241-
blue+=lightnessAdjustment;
242-
243-
varresult={
244-
r: Math.round(red*255),
245-
g: Math.round(green*255),
246-
b: Math.round(blue*255)
247-
};
248-
249-
returnresult;
250-
};
251-
252-
varhexToRgb=function(hex){
253-
if(hex==undefined){
254-
returnnull;
255-
};
256-
varresult=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
257-
if(result){
258-
result={
259-
r: parseInt(result[1],16),
260-
g: parseInt(result[2],16),
261-
b: parseInt(result[3],16)
262-
};
263-
};
264-
returnresult;
265-
};
266-
267-
varrgbToHex=function(rgbObject){
268-
if(rgbObject==undefined){
269-
returnnull;
270-
};
271-
varcomponentToHex=function(hexPart){
272-
hexPart=hexPart.toString(16);
273-
if(hexPart.length==1){
274-
hexPart="0"+hexPart
275-
};
276-
returnhexPart;
277-
};
278-
varresult="#"+componentToHex(rgbObject.r)+componentToHex(rgbObject.g)+componentToHex(rgbObject.b);
279-
returnresult;
280-
};
281-
282198
varmakeNode=function(override){
283199
varoptions={
284200
tag: null,
@@ -666,9 +582,9 @@ var helper = (function(){
666582
};
667583

668584
convertColor.rgb.hsl=function(rgb){
669-
varr=rgb[0]/255;
670-
varg=rgb[1]/255;
671-
varb=rgb[2]/255;
585+
varr=rgb.r/255;
586+
varg=rgb.g/255;
587+
varb=rgb.b/255;
672588
varmin=Math.min(r,g,b);
673589
varmax=Math.max(r,g,b);
674590
vardelta=max-min;
@@ -701,36 +617,44 @@ var helper = (function(){
701617
s=delta/(2-max-min);
702618
};
703619

704-
return[h,s*100,l*100];
620+
return{
621+
h: h,
622+
s: s*100,
623+
l: l*100
624+
};
705625
};
706626

707627
convertColor.rgb.hex=function(args){
708-
varinteger=((Math.round(args[0])&0xFF)<<16)+
709-
((Math.round(args[1])&0xFF)<<8)+
710-
(Math.round(args[2])&0xFF);
628+
varinteger=((Math.round(args.r)&0xFF)<<16)+
629+
((Math.round(args.g)&0xFF)<<8)+
630+
(Math.round(args.b)&0xFF);
711631

712-
varstring=integer.toString(16).toUpperCase();
713-
return"000000".substring(string.length)+string;
632+
varstring=integer.toString(16);
633+
return"#"+"000000".substring(string.length)+string;
714634
};
715635

716636
convertColor.hsl.rgb=function(hsl){
717-
varh=hsl[0]/360;
718-
vars=hsl[1]/100;
719-
varl=hsl[2]/100;
637+
varh=hsl.h/360;
638+
vars=hsl.s/100;
639+
varl=hsl.l/100;
720640
vart2;
721641
vart3;
722642
varval;
723643

724644
if(s===0){
725645
val=l*255;
726-
return[val,val,val];
727-
}
646+
return{
647+
r: val,
648+
g: val,
649+
b: val
650+
};
651+
};
728652

729653
if(l<0.5){
730654
t2=l*(1+s);
731655
}else{
732656
t2=l+s-l*s;
733-
}
657+
};
734658

735659
vart1=2*l-t2;
736660

@@ -739,11 +663,11 @@ var helper = (function(){
739663
t3=h+1/3*-(i-1);
740664
if(t3<0){
741665
t3++;
742-
}
666+
};
743667

744668
if(t3>1){
745669
t3--;
746-
}
670+
};
747671

748672
if(6*t3<1){
749673
val=t1+(t2-t1)*6*t3;
@@ -753,34 +677,46 @@ var helper = (function(){
753677
val=t1+(t2-t1)*(2/3-t3)*6;
754678
}else{
755679
val=t1;
756-
}
680+
};
757681

758682
rgb[i]=val*255;
759-
}
683+
};
760684

761-
returnrgb;
685+
return{
686+
r: rgb[0],
687+
g: rgb[1],
688+
b: rgb[2]
689+
};
762690
};
763691

764692
convertColor.hex.rgb=function(args){
765693
varmatch=args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
766694
if(!match){
767-
return[0,0,0];
768-
}
695+
return{
696+
r: 0,
697+
g: 0,
698+
b: 0
699+
};
700+
};
769701

770702
varcolorString=match[0];
771703

772704
if(match[0].length===3){
773705
colorString=colorString.split("").map(function(char){
774706
returnchar+char;
775707
}).join("");
776-
}
708+
};
777709

778710
varinteger=parseInt(colorString,16);
779711
varr=(integer>>16)&0xFF;
780712
varg=(integer>>8)&0xFF;
781713
varb=integer&0xFF;
782714

783-
return[r,g,b];
715+
return{
716+
r: r,
717+
g: g,
718+
b: b
719+
};
784720
};
785721

786722
// exposed methods
@@ -796,9 +732,6 @@ var helper = (function(){
796732
getDateTime: getDateTime,
797733
sortObject: sortObject,
798734
applyOptions: applyOptions,
799-
hexToRgb: hexToRgb,
800-
rgbToHex: rgbToHex,
801-
hslToRgb: hslToRgb,
802735
makeNode: makeNode,
803736
node: node,
804737
setObject: setObject,

0 commit comments

Comments
(0)