/**
* This file adds some LIVE to the Customizer live preview. To leverage
* this, set your custom settings to 'postMessage' and then add your handling
* here. Your javascript should grab settings from customizer controls, and
* then make any necessary changes to the page using jQuery.
*
* @package Astra
* @since 3.0.0
*/
( function( $ ) {
var tablet_break_point = astraBuilderPreview.tablet_break_point || 768,
mobile_break_point = astraBuilderPreview.mobile_break_point || 544;
// Close Icon Color.
astra_css(
'astra-settings[off-canvas-close-color]',
'color',
'.ast-mobile-popup-drawer.active .menu-toggle-close'
);
// Off-Canvas Background Color.
wp.customize( 'astra-settings[off-canvas-background]', function( value ) {
value.bind( function( bg_obj ) {
var dynamicStyle = ' .ast-mobile-popup-drawer.active .ast-mobile-popup-inner, .ast-mobile-header-wrap .ast-mobile-header-content, .ast-desktop-header-content { {{css}} }';
astra_background_obj_css( wp.customize, bg_obj, 'off-canvas-background', dynamicStyle );
} );
} );
wp.customize( 'astra-settings[off-canvas-inner-spacing]', function ( value ) {
value.bind( function ( spacing ) {
var dynamicStyle = '';
if( spacing != '' ) {
dynamicStyle += '.ast-mobile-popup-content > *, .ast-mobile-header-content > *, .ast-desktop-popup-content > *, .ast-desktop-header-content > * {';
dynamicStyle += 'padding-top: ' + spacing + 'px;';
dynamicStyle += 'padding-bottom: ' + spacing + 'px;';
dynamicStyle += '} ';
}
astra_add_dynamic_css( 'off-canvas-inner-spacing', dynamicStyle );
} );
} );
wp.customize( 'astra-settings[mobile-header-type]', function ( value ) {
value.bind( function ( newVal ) {
var mobile_header = document.querySelectorAll( "#ast-mobile-header" );
var desktop_header = document.querySelectorAll( "#ast-desktop-header" );
var header_type = newVal;
var off_canvas_slide = ( typeof ( wp.customize._value['astra-settings[off-canvas-slide]'] ) != 'undefined' ) ? wp.customize._value['astra-settings[off-canvas-slide]']._value : 'right';
var side_class = '';
if ( 'off-canvas' === header_type ) {
if ( 'left' === off_canvas_slide ) {
side_class = 'ast-mobile-popup-left';
} else {
side_class = 'ast-mobile-popup-right';
}
} else if ( 'full-width' === header_type ) {
side_class = 'ast-mobile-popup-full-width';
}
jQuery('.ast-mobile-popup-drawer').removeClass( 'ast-mobile-popup-left' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'ast-mobile-popup-right' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'ast-mobile-popup-full-width' );
jQuery('.ast-mobile-popup-drawer').addClass( side_class );
if( 'full-width' === header_type ) {
header_type = 'off-canvas';
}
for ( var k = 0; k < mobile_header.length; k++ ) {
mobile_header[k].setAttribute( 'data-type', header_type );
}
for ( var k = 0; k < desktop_header.length; k++ ) {
desktop_header[k].setAttribute( 'data-type', header_type );
}
var event = new CustomEvent( "astMobileHeaderTypeChange",
{
"detail": { 'type' : header_type }
}
);
document.dispatchEvent(event);
} );
} );
wp.customize( 'astra-settings[off-canvas-slide]', function ( value ) {
value.bind( function ( newval ) {
var side_class = '';
if ( 'left' === newval ) {
side_class = 'ast-mobile-popup-left';
} else {
side_class = 'ast-mobile-popup-right';
}
jQuery('.ast-mobile-popup-drawer').removeClass( 'ast-mobile-popup-left' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'ast-mobile-popup-right' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'ast-mobile-popup-full-width' );
jQuery('.ast-mobile-popup-drawer').addClass( side_class );
} );
} );
// Padding.
wp.customize( 'astra-settings[off-canvas-padding]', function( value ) {
value.bind( function( padding ) {
if(
padding.desktop.bottom != '' || padding.desktop.top != '' || padding.desktop.left != '' || padding.desktop.right != '' ||
padding.tablet.bottom != '' || padding.tablet.top != '' || padding.tablet.left != '' || padding.tablet.right != '' ||
padding.mobile.bottom != '' || padding.mobile.top != '' || padding.mobile.left != '' || padding.mobile.right != ''
) {
var dynamicStyle = '';
dynamicStyle += '.ast-mobile-popup-drawer.active .ast-desktop-popup-content, .ast-mobile-popup-drawer.active .ast-mobile-popup-content {';
dynamicStyle += 'padding-left: ' + padding['desktop']['left'] + padding['desktop-unit'] + ';';
dynamicStyle += 'padding-right: ' + padding['desktop']['right'] + padding['desktop-unit'] + ';';
dynamicStyle += 'padding-top: ' + padding['desktop']['top'] + padding['desktop-unit'] + ';';
dynamicStyle += 'padding-bottom: ' + padding['desktop']['bottom'] + padding['desktop-unit'] + ';';
dynamicStyle += '} ';
dynamicStyle += '@media (max-width: ' + tablet_break_point + 'px) {';
dynamicStyle += '.ast-mobile-popup-drawer.active .ast-desktop-popup-content, .ast-mobile-popup-drawer.active .ast-mobile-popup-content {';
dynamicStyle += 'padding-left: ' + padding['tablet']['left'] + padding['tablet-unit'] + ';';
dynamicStyle += 'padding-right: ' + padding['tablet']['right'] + padding['tablet-unit'] + ';';
dynamicStyle += 'padding-top: ' + padding['tablet']['top'] + padding['tablet-unit'] + ';';
dynamicStyle += 'padding-bottom: ' + padding['tablet']['bottom'] + padding['tablet-unit'] + ';';
dynamicStyle += '} ';
dynamicStyle += '} ';
dynamicStyle += '@media (max-width: ' + mobile_break_point + 'px) {';
dynamicStyle += '.ast-mobile-popup-drawer.active .ast-desktop-popup-content, .ast-mobile-popup-drawer.active .ast-mobile-popup-content {';
dynamicStyle += 'padding-left: ' + padding['mobile']['left'] + padding['mobile-unit'] + ';';
dynamicStyle += 'padding-right: ' + padding['mobile']['right'] + padding['mobile-unit'] + ';';
dynamicStyle += 'padding-top: ' + padding['mobile']['top'] + padding['mobile-unit'] + ';';
dynamicStyle += 'padding-bottom: ' + padding['mobile']['bottom'] + padding['mobile-unit'] + ';';
dynamicStyle += '} ';
dynamicStyle += '} ';
astra_add_dynamic_css( 'off-canvas-padding', dynamicStyle );
} else {
astra_add_dynamic_css( 'off-canvas-padding', '' );
}
} );
} );
wp.customize( 'astra-settings[header-builder-menu-toggle-target]', function ( value ) {
value.bind( function ( newval ) {
var menuTargetClass = 'ast-builder-menu-toggle-' + newval + ' ';
jQuery( '.site-header' ).removeClass( 'ast-builder-menu-toggle-icon' );
jQuery( '.site-header' ).removeClass( 'ast-builder-menu-toggle-link' );
jQuery( '.site-header' ).addClass( menuTargetClass );
} );
} );
wp.customize( 'astra-settings[header-offcanvas-content-alignment]', function ( value ) {
value.bind( function ( newval ) {
var alignment_class = 'content-align-' + newval + ' ';
var menu_content_alignment = 'center';
jQuery('.ast-mobile-header-content').removeClass( 'content-align-flex-start' );
jQuery('.ast-mobile-header-content').removeClass( 'content-align-flex-end' );
jQuery('.ast-mobile-header-content').removeClass( 'content-align-center' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'content-align-flex-end' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'content-align-flex-start' );
jQuery('.ast-mobile-popup-drawer').removeClass( 'content-align-center' );
jQuery('.ast-desktop-header-content').removeClass( 'content-align-flex-start' );
jQuery('.ast-desktop-header-content').removeClass( 'content-align-flex-end' );
jQuery('.ast-desktop-header-content').removeClass( 'content-align-center' );
jQuery('.ast-desktop-header-content').addClass( alignment_class );
jQuery('.ast-mobile-header-content').addClass( alignment_class );
jQuery('.ast-mobile-popup-drawer').addClass( alignment_class );
if ( 'flex-start' === newval ) {
menu_content_alignment = 'left';
} else if ( 'flex-end' === newval ) {
menu_content_alignment = 'right';
}
var dynamicStyle = '.content-align-' + newval + ' .ast-builder-layout-element {';
dynamicStyle += 'justify-content: ' + newval + ';';
dynamicStyle += '} ';
dynamicStyle += '.content-align-' + newval + ' .main-header-menu {';
dynamicStyle += 'text-align: ' + menu_content_alignment + ';';
dynamicStyle += '} ';
astra_add_dynamic_css( 'header-offcanvas-content-alignment', dynamicStyle );
} );
} );
} )( jQuery );