var pagelayer_fontHtmlArray = {};
(function($) {
var api = wp.customize;
api.bind( 'ready', function() {
var controls = api.settings.controls;
for(var control in controls){
if( !('show_filter' in controls[control]) ){
continue;
}
var filter = controls[control]['show_filter'];
for(var showParam in filter){
var except = showParam.substr(0, 1) == '!' ? true : false;
showParam = except ? showParam.substr(1) : showParam;
// Show and Hide Controls
api( showParam, function( setting ){
api.control( control, function( _control ) {
var visibility = function() {
var _filter = _control.params['show_filter'];
for(var _showParam in _filter){
var reqval = _filter[_showParam];
var val = setting.get();
var toShow = false;
if(typeof reqval == 'string' && reqval == val){
toShow = true;
}
// Its an array and a value is found, then dont show
if(typeof reqval != 'string' && reqval.indexOf(val) > -1){
toShow = true;
}
if(except && !toShow || !except && toShow ){
_control.container.show();
return
}
_control.container.hide();
}
};
visibility();
setting.bind( visibility );
});
});
}
}
// Expand pagelayer setting handler
api.section('pagelayer_global_fonts_sec', function( section ){
section.expanded.bind(function( isExpanding ){
// Set default value
section.container.find('select[data-font-key]').each(function(){
var ref = jQuery(this),
name = ref.attr('data-font-key'),
value = ref.attr('data-default-value');
ref.html(pagelayer_fontHtmlArray[name]).val(value);
ref.removeAttr('data-font-key');
});
});
});
});
})(jQuery);
/**
* Initialization trigger.
*/
jQuery(document).ready( function(){
// Create color setting
pagelayer_alpha_color_control_init();
var option = function(val, lang){
var lang = lang || 'Default';
return '<option value="'+val+'">'+lang+'</option>';
}
// Create font setting list
for(var sk in pagelayer_global_font_settings){
var sval = pagelayer_global_font_settings[sk];
if('choices' in sval){
var fontHtml = '';
for( var value in sval['choices'] ) {
if(typeof sval['choices'][value] !== 'object'){
fontHtml += option(value, sval['choices'][value]);
continue;
}
if(value != 'default'){
fontHtml += '<optgroup label="'+value+'">';
}
for (x in sval['choices'][value]){
fontHtml += option((jQuery.isNumeric(x) ? sval['choices'][value][x] : x), sval['choices'][value][x]);
}
}
pagelayer_fontHtmlArray[sk] = fontHtml;
}
}
// Show hide typography
jQuery(document).on('click.pagelayer-typo-icon', function (e){
var target = jQuery(e.target);
var isTypo = target.closest('.pagelayer-control-typo');
var isIcon = target.closest('.pagelayer-control-typo-icon');
var typoHolder = isIcon.closest('.pagelayer-control-typo-holder');
if(isTypo.length > 0){
return;
}
if(isIcon.length > 0){
// Set default value
typoHolder.find('select[data-font-key]').each(function(){
var ref = jQuery(this),
name = ref.attr('data-font-key'),
value = ref.attr('data-default-value');
ref.html(pagelayer_fontHtmlArray[name]).val(value);
ref.removeAttr('data-font-key');
});
var globalInput = typoHolder.find('.pagelayer-global-font-input');
if(!pagelayer_empty(globalInput)){
// Show the global values if is not customize
typoHolder.find('.pagelayer-control-typo-fields').attr('pagelayer-set-global', 1);
typoHolder.find('select, input').each(function(){
var sEle = jQuery(this);
var val = sEle.val();
if(pagelayer_empty(val)){
return true;
}
sEle.closest('.pagelayer-control-typo-fields').removeAttr('pagelayer-set-global');
});
typoHolder.find('[pagelayer-set-global="1"] .pagelayer-typo-global-default').trigger('click');
}
typoHolder.find('.pagelayer-control-typo').slideToggle(100);
return;
}
jQuery('.pagelayer-control-typo').slideUp(100);
});
// Show hide global color option
jQuery(document).on('click.pagelayer-global-color-icon', function (e){
var target = jQuery(e.target);
var isGcolor = target.closest('.pagelayer-global-color-list');
var isGIcon = target.closest('.pagelayer-control-global-color-icon');
if(isGcolor.length > 0){
return;
}
if(isGIcon.length > 0){
var listEle = isGIcon.closest('li').find('.pagelayer-global-color-list');
jQuery('.pagelayer-global-color-list').not(listEle).slideUp(100);
listEle.slideToggle(100);
return;
}
jQuery('.pagelayer-global-color-list').slideUp(100);
});
// Hide global color option
jQuery(document).on('focus', '.wp-color-result', function(e){
jQuery('.pagelayer-global-color-list').slideUp(100);
});
// Show hide global fonts option
jQuery('#customize-theme-controls').on('click.pagelayer-global-typo-icon', function (e){
var target = jQuery(e.target);
var isGcolor = target.closest('.pagelayer-global-font-list');
var isGIcon = target.closest('.pagelayer-control-global-typo-icon');
var typoHolder = isGIcon.closest('.pagelayer-control-typo-holder');
if(isGcolor.length > 0){
return;
}
if(isGIcon.length > 0){
typoHolder.find('.pagelayer-global-font-list').slideToggle(100);
return;
}
jQuery('.pagelayer-global-font-list').slideUp(100);
});
// Device handler
jQuery('#customize-theme-controls').on('click', '.pagelayer-devices button', function(e){
e.stopPropagation();
var device = jQuery(this).data('device');
var devices = {'desktop' : 'tablet', 'tablet' : 'mobile', 'mobile' : 'desktop'};
jQuery('.devices-wrapper .devices [data-device="'+devices[device]+'"]').click();
});
// Add attr to detect device
jQuery('#customize-theme-controls').attr('data-device-detector', 'desktop');
// Device handler
jQuery('.devices-wrapper .devices button[data-device]').on('click', function(e){
e.stopPropagation();
var device = jQuery(this).data('device');
jQuery('.pagelayer-devices .active-device').removeClass('active-device');
jQuery('.pagelayer-devices [data-device="'+device+'"]').addClass('active-device');
jQuery('[data-device-detector]').attr('data-device-detector', device);
});
// Units handler
jQuery('.pagelayer-units').each(function(){
var units = jQuery(this);
var uList = units.find('[data-unit]');
var input = units.find('.pagelayer-unit-input');
var uActive = units.find('[data-unit="'+input.val()+'"]');
units.find('[data-unit]').on('click', function(){
var uEle = jQuery(this);
uList.removeClass('active');
uEle.addClass('active');
input.val(uEle.data('unit')).trigger('input');
});
if(uActive.length > 0){
uActive.click();
return;
}
//uList.first().click();
});
// Accordion Tab handlers
jQuery('.pagelayer-accordion-tab').on('click', function(){
var toggle = jQuery(this);
var allToggle = toggle.closest('ul').find('.pagelayer-accordion-tab').not(toggle);
allToggle.nextUntil('.pagelayer-accordion-tab').slideUp();
allToggle.removeClass('pagelayer-active-accordion-tab')
toggle.nextUntil('.pagelayer-accordion-tab').slideToggle();
toggle.toggleClass('pagelayer-active-accordion-tab');
var dash = toggle.find('.pagelayer-customize-heading .dashicons');
var allDash = toggle.closest('ul').find('.pagelayer-accordion-tab .pagelayer-customize-heading .dashicons');
allDash.addClass('dashicons-arrow-right-alt2');
allDash.removeClass('dashicons-arrow-down-alt2');
if(toggle.hasClass('pagelayer-active-accordion-tab')){
dash.addClass('dashicons-arrow-down-alt2');
dash.r