(function ($) { var fontChosen, wpApi = wp.customize; fontChosen = { cache: {}, init: function () { fontChosen.buildFonts(); fontChosen.showFonts(); }, buildFonts: function () { fontChosen.cache.fonts = ''; fontChosen.cache.chosen = {}; $.each(roxthemeCustomizerFontsL10n, function (name, options) { var disabled = ''; if (options['disabled'] !== undefined) { disabled = ' disabled="disabled" '; } fontChosen.cache.fonts += ''; }); }, showFonts: function () { $(".chosen-select").each(function () { var $el = $(this), key = $el.attr('data-customize-setting-link'); fontChosen.cache.chosen[key] = $(this); wpApi(key, function (setting) { $el.on('chosen:ready', function () { var v = setting.get(), $sel = $(this) .html(fontChosen.cache.fonts) .val(v); setTimeout(function () { $el.trigger('chosen:updated'); }, 200); }); $el.on('change', function () { var $select = $(this), font = $select.val(), $variant = $select.closest('li').next().find('select'); if ($variant.length > 0 && roxthemeCustomizerFontsL10n[font] !== undefined) { $variant.html(fontChosen.showVariants(roxthemeCustomizerFontsL10n[font]['variants'])) .children('option:first').attr('selected','selected'); $variant.trigger('change'); } }); $el.chosen({ search_contains: true, width: '100%' }); }); }); fontChosen.showDefaultVariants(); }, showDefaultVariants: function () { $('[id$=_variant] select').each(function () { var $el = $(this), key = $el.attr('data-customize-setting-link'), parentKey = key.replace('_variant', '_family'); wpApi(key, function (setting) { if (fontChosen.cache.chosen[parentKey] !== undefined && fontChosen.cache.chosen[parentKey].length > 0) { $el.html(fontChosen.showVariants(roxthemeCustomizerFontsL10n[fontChosen.cache.chosen[parentKey].val()]['variants'])) .val(setting.get()); } }); }); }, showVariants: function (variants) { var options = ''; $.each(variants, function (ind, val) { var name = val.replace('italic', ' Italic').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); options += ''; }); return options; }, }; var multiCheckboxes = { init: function(){ /* === Checkbox Multiple Control === */ $( '.customize-control-checkbox-multiple input[type="checkbox"]' ).on( 'change', function() { checkbox_values = $( this ).parents( '.customize-control' ).find( 'input[type="checkbox"]:checked' ).map( function() { return this.value; } ).get().join( ',' ); $( this ).parents( '.customize-control' ).find( 'input[type="hidden"]' ).val( checkbox_values ).trigger( 'change' ); } ); } } $(document).ready(function () { multiCheckboxes.init(); fontChosen.init(); jQuery('.customize-control input[type="range"]').on('change input', function(){ var name = $(this).attr('name'); $('input[type="text"][data-name="'+ name +'"]').val( $(this).val() ); }) .trigger('change'); }); })(jQuery);