/*jshint -W065 */ wp.customize.controlConstructor['hoo-fontawesome'] = wp.customize.Control.extend({ // When we're finished loading continue processing ready: function() { 'use strict'; var control = this; // Init the control. if ( ! _.isUndefined( window.hooControlLoader ) && _.isFunction( hooControlLoader ) ) { hooControlLoader( control ); } else { control.initHooControl(); } }, initHooControl: function() { 'use strict'; var control = this, element = this.container.find( 'select' ), icons = jQuery.parseJSON( fontAwesomeJSON ), selectValue, select2Options = { data: [], escapeMarkup: function( markup ) { return markup; }, templateResult: function( val ) { return '' + ' ' + val.text; }, templateSelection: function( val ) { return '' + ' ' + val.text; } }, select; control.container.find( '.hoo-controls-loading-spinner' ).hide(); _.each( icons.icons, function( icon ) { select2Options.data.push({ id: icon.id, text: icon.name }); }); select = jQuery( element ).select2( select2Options ); select.on( 'change', function() { selectValue = jQuery( this ).val(); control.setting.set( selectValue ); }); select.val( control.setting._value ).trigger( 'change' ); } });