11( function ( $ ) { // jscs:ignore validateLineBreaks
22
3- var api = wp . customize ;
4-
5- api . shapelyLogoDimension = api . Control . extend ( {
6-
7- ready : function ( ) {
8- var control = this ,
9- dimensions ;
10- control . logo = api . control ( 'custom_logo' ) ;
11- control . values = control . setting ( ) ;
12- dimensions = control . container . find ( '.shapely-dimension' ) ;
13- control . widthElement = $ ( dimensions [ 0 ] ) ;
14- control . heightElement = $ ( dimensions [ 1 ] ) ;
15-
16- if ( ! control . values ) {
17- control . respectRatio = 1 ;
18- } else {
19- control . respectRatio = control . values . ratio ;
20- }
21-
22- if ( undefined != control . logo . params . attachment ) {
23- control . hasLogo = true ;
24- control . logoWidth = control . logo . params . attachment . width ;
25- control . logoHeight = control . logo . params . attachment . height ;
26- } else {
27- control . hasLogo = false ;
28- control . toggle ( false ) ;
29- }
30-
31- control . logo . setting . bind ( 'change' , function ( ) {
32- control . updateLogo ( ) ;
33- } ) ;
34-
35- control . widthElement . keyup ( function ( ) {
36- if ( control . respectRatio && control . hasLogo ) {
37- control . calculateRatio ( 'width' ) ;
38- control . shapelyInterval = setInterval ( control . updateControl , 1000 , control ) ;
39- }
40- } ) ;
41-
42- control . heightElement . keyup ( function ( ) {
43- if ( control . respectRatio && control . hasLogo ) {
44- control . calculateRatio ( 'height' ) ;
45- control . shapelyInterval = setInterval ( control . updateControl , 1000 , control ) ;
46- }
47- } ) ;
48-
49- control . container . find ( '.ratio input' ) . change ( function ( ) {
50- var values = control . setting ( ) ;
51-
52- if ( ! values ) {
53- values = { } ;
54- }
55-
56- if ( $ ( this ) . is ( ':checked' ) ) {
57- control . respectRatio = 1 ;
58- values . ratio = 1 ;
59- } else {
60- control . respectRatio = 0 ;
61- values . ratio = 0 ;
62- }
63-
64- control . setting ( { } ) ;
65- control . setting ( values ) ;
66- } ) ;
67-
68- } ,
69-
70- updateLogo : function ( ) {
71- var control = this ,
72- values = control . setting ( ) ;
73- if ( undefined != control . logo . params . attachment ) {
74-
75- control . logoWidth = control . logo . params . attachment . width ;
76- control . logoHeight = control . logo . params . attachment . height ;
77-
78- if ( ! values ) {
79- values = {
80- 'width' : control . logoWidth ,
81- 'height' : control . logoHeight ,
82- 'ratio' : 1
83- } ;
84- } else {
85- values . width = control . logoWidth ;
86- values . height = control . logoHeight ;
87- }
88-
89- control . widthElement . val ( control . logoWidth ) ;
90- control . heightElement . val ( control . logoHeight ) ;
91-
92- control . setting ( { } ) ;
93- control . setting ( values ) ;
94-
95- control . toggle ( true ) ;
96- } else {
97- control . toggle ( false ) ;
98- }
99- } ,
100-
101- calculateRatio : function ( keep ) {
102- var control = this ,
103- aux ;
104-
105- if ( 'width' == keep ) {
106- aux = control . logoHeight * control . widthElement . val ( ) / control . logoWidth ;
107- control . heightElement . val ( parseFloat ( aux ) . toFixed ( 2 ) ) ;
108- } else if ( 'height' == keep ) {
109- aux = control . logoWidth * control . heightElement . val ( ) / control . logoHeight ;
110- control . widthElement . val ( parseFloat ( aux ) . toFixed ( 2 ) ) ;
111- }
112-
113- clearInterval ( control . shapelyInterval ) ;
114- } ,
115-
116- updateControl : function ( control ) {
117- var values = control . setting ( ) ;
118-
119- if ( ! values ) {
120- values = {
121- 'width' : control . widthElement . val ( ) ,
122- 'height' : control . heightElement . val ( ) ,
123- 'ratio' : 1
124- } ;
125- } else {
126- values . width = control . widthElement . val ( ) ;
127- values . height = control . heightElement . val ( ) ;
128- }
129- control . setting ( { } ) ;
130- control . setting ( values ) ;
131- clearInterval ( control . shapelyInterval ) ;
3+ 'use strict' ;
4+
5+ var api = wp . customize ;
6+
7+ api . shapelyLogoDimension = api . Control . extend ( {
8+
9+ ready : function ( ) {
10+ var control = this ,
11+ dimensions ;
12+ control . logo = api . control ( 'custom_logo' ) ;
13+ control . values = control . setting ( ) ;
14+ dimensions = control . container . find ( '.shapely-dimension' ) ;
15+ control . widthElement = $ ( dimensions [ 0 ] ) ;
16+ control . heightElement = $ ( dimensions [ 1 ] ) ;
17+
18+ if ( ! control . values ) {
19+ control . respectRatio = 1 ;
20+ } else {
21+ control . respectRatio = control . values . ratio ;
22+ }
23+
24+ if ( undefined !== control . logo . params . attachment ) {
25+ control . hasLogo = true ;
26+ control . logoWidth = control . logo . params . attachment . width ;
27+ control . logoHeight = control . logo . params . attachment . height ;
28+ } else {
29+ control . hasLogo = false ;
30+ control . toggle ( false ) ;
31+ }
32+
33+ control . logo . setting . bind ( 'change' , function ( ) {
34+ control . updateLogo ( ) ;
35+ } ) ;
36+
37+ control . widthElement . keyup ( function ( ) {
38+ if ( control . respectRatio && control . hasLogo ) {
39+ control . calculateRatio ( 'width' ) ;
40+ control . shapelyInterval = setInterval ( control . updateControl , 1000 , control ) ;
13241 }
42+ } ) ;
13343
134- } ) ;
44+ control . heightElement . keyup ( function ( ) {
45+ if ( control . respectRatio && control . hasLogo ) {
46+ control . calculateRatio ( 'height' ) ;
47+ control . shapelyInterval = setInterval ( control . updateControl , 1000 , control ) ;
48+ }
49+ } ) ;
50+
51+ control . container . find ( '.ratio input' ) . change ( function ( ) {
52+ var values = control . setting ( ) ;
53+
54+ if ( ! values ) {
55+ values = { } ;
56+ }
13557
136- // Extend epsilon button constructor
137- $ . extend ( api . controlConstructor , {
138- 'shapely-logo-dimension' : api . shapelyLogoDimension ,
139- } ) ;
58+ if ( $ ( this ) . is ( ':checked' ) ) {
59+ control . respectRatio = 1 ;
60+ values . ratio = 1 ;
61+ } else {
62+ control . respectRatio = 0 ;
63+ values . ratio = 0 ;
64+ }
65+
66+ control . setting ( { } ) ;
67+ control . setting ( values ) ;
68+ } ) ;
69+
70+ } ,
71+
72+ updateLogo : function ( ) {
73+ var control = this ,
74+ values = control . setting ( ) ;
75+ if ( undefined !== control . logo . params . attachment ) {
76+
77+ control . logoWidth = control . logo . params . attachment . width ;
78+ control . logoHeight = control . logo . params . attachment . height ;
79+
80+ if ( ! values ) {
81+ values = {
82+ 'width' : control . logoWidth ,
83+ 'height' : control . logoHeight ,
84+ 'ratio' : 1
85+ } ;
86+ } else {
87+ values . width = control . logoWidth ;
88+ values . height = control . logoHeight ;
89+ }
14090
141- } ) ( jQuery ) ;
91+ control . widthElement . val ( control . logoWidth ) ;
92+ control . heightElement . val ( control . logoHeight ) ;
93+
94+ control . setting ( { } ) ;
95+ control . setting ( values ) ;
96+
97+ control . toggle ( true ) ;
98+ } else {
99+ control . toggle ( false ) ;
100+ }
101+ } ,
102+
103+ calculateRatio : function ( keep ) {
104+ var control = this ,
105+ aux ;
106+
107+ if ( 'width' === keep ) {
108+ aux = control . logoHeight * control . widthElement . val ( ) / control . logoWidth ;
109+ control . heightElement . val ( parseFloat ( aux ) . toFixed ( 2 ) ) ;
110+ } else if ( 'height' === keep ) {
111+ aux = control . logoWidth * control . heightElement . val ( ) / control . logoHeight ;
112+ control . widthElement . val ( parseFloat ( aux ) . toFixed ( 2 ) ) ;
113+ }
114+
115+ clearInterval ( control . shapelyInterval ) ;
116+ } ,
117+
118+ updateControl : function ( control ) {
119+ var values = control . setting ( ) ;
120+
121+ if ( ! values ) {
122+ values = {
123+ 'width' : control . widthElement . val ( ) ,
124+ 'height' : control . heightElement . val ( ) ,
125+ 'ratio' : 1
126+ } ;
127+ } else {
128+ values . width = control . widthElement . val ( ) ;
129+ values . height = control . heightElement . val ( ) ;
130+ }
131+ control . setting ( { } ) ;
132+ control . setting ( values ) ;
133+ clearInterval ( control . shapelyInterval ) ;
134+ }
135+
136+ } ) ;
137+
138+ // Extend epsilon button constructor
139+ $ . extend ( api . controlConstructor , {
140+ 'shapely-logo-dimension' : api . shapelyLogoDimension
141+ } ) ;
142+
143+ } ) ( jQuery ) ;
0 commit comments