window.addEventListener( 'load', function(e) { astra_onload_function(); }); function astra_onload_function() { /* Do things after DOM has fully loaded */ var astraMetaBox = document.querySelector( '#astra_settings_meta_box' ); if( astraMetaBox != null ){ var titleCheckbox = document.getElementById('site-post-title'); if( null === titleCheckbox ) { titleCheckbox = document.querySelector('.site-post-title input'); } if( null !== titleCheckbox ) { titleCheckbox.addEventListener('change',function() { var titleBlock = document.querySelector('.editor-post-title__block'); if( null !== titleBlock ) { if( titleCheckbox.checked ){ titleBlock.style.opacity = '0.2'; } else { titleBlock.style.opacity = '1.0'; } } }); } } wp.data.subscribe(function () { setTimeout( function () { // Compatibility for updating layout in editor with direct reflection. const contentLayout = ( null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' ) && wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-content-layout'] ) ? wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-content-layout'] : 'default', bodyClass = document.querySelector('body'); switch( contentLayout ) { case 'boxed-container': bodyClass.classList.add('ast-separate-container' , 'ast-two-container'); bodyClass.classList.remove('ast-page-builder-template' , 'ast-plain-container'); break; case 'content-boxed-container': bodyClass.classList.add('ast-separate-container'); bodyClass.classList.remove('ast-two-container' , 'ast-page-builder-template' , 'ast-plain-container'); break; case 'plain-container': bodyClass.classList.add('ast-plain-container'); bodyClass.classList.remove('ast-two-container' , 'ast-page-builder-template' , 'ast-separate-container'); break; case 'page-builder': bodyClass.classList.add('ast-page-builder-template'); bodyClass.classList.remove('ast-two-container' , 'ast-plain-container' , 'ast-separate-container'); break; case 'default': if( bodyClass.classList.contains( 'ast-default-layout-boxed-container' ) ) { bodyClass.classList.add('ast-separate-container' , 'ast-two-container'); bodyClass.classList.remove('ast-page-builder-template' , 'ast-plain-container'); } else if( bodyClass.classList.contains( 'ast-default-layout-content-boxed-container' ) ) { bodyClass.classList.add('ast-separate-container'); bodyClass.classList.remove('ast-two-container' , 'ast-page-builder-template' , 'ast-plain-container'); } else if( bodyClass.classList.contains( 'ast-default-layout-page-builder' ) ) { bodyClass.classList.add('ast-page-builder-template'); bodyClass.classList.remove('ast-two-container' , 'ast-plain-container' , 'ast-separate-container'); } else { bodyClass.classList.add('ast-plain-container'); bodyClass.classList.remove('ast-two-container' , 'ast-page-builder-template' , 'ast-separate-container'); } break; } const editorStylesWrapper = document.querySelector( '.editor-styles-wrapper' ); if( null !== editorStylesWrapper ) { const editorStylesWrapperWidth = parseInt( editorStylesWrapper.offsetWidth ) if( editorStylesWrapperWidth < 1250 ) { editorStylesWrapper.classList.remove( 'ast-stacked-title-visibility' ); editorStylesWrapper.classList.add( 'ast-stacked-title-visibility' ); } else { editorStylesWrapper.classList.remove( 'ast-stacked-title-visibility' ); } } /** * In WP-5.9 block editor comes up with color palette showing color-code canvas, but with theme var() CSS its appearing directly as it is. So updated them on wp.data event. */ const customColorPickerButtons = document.querySelectorAll( '.components-color-palette__custom-color' ); for ( let btnCount = 0; btnCount < customColorPickerButtons.length; btnCount++ ) { const colorCode = customColorPickerButtons[btnCount].innerText; if ( colorCode.indexOf( 'var(--ast-global-color' ) > -1 ) { customColorPickerButtons[btnCount].innerHTML = '' + astraColors[ colorCode ] + ''; } } // Title visibility with new editor compatibility update. var titleVisibility = document.querySelector( '.title-visibility' ), titleBlock = document.querySelector( '.edit-post-visual-editor__post-title-wrapper' ); if( null === titleVisibility && null !== titleBlock ) { var titleVisibilityTrigger = ''; if( 'disabled' === wp.data.select( 'core/editor' ).getEditedPostAttribute( 'meta' )['site-post-title'] ) { titleVisibilityTrigger = ''; titleBlock.classList.toggle( 'invisible' ); } else { titleVisibilityTrigger = ''; } titleBlock.insertAdjacentHTML( 'beforeend', titleVisibilityTrigger ); document.querySelector( '.title-visibility' ).addEventListener( 'click', function() { var titleBlock = document.querySelector( '.edit-post-visual-editor__post-title-wrapper' ); titleBlock.classList.toggle( 'invisible' ); if( this.classList.contains( 'dashicons-hidden' ) ) { this.classList.add( 'dashicons-visibility' ); this.classList.remove( 'dashicons-hidden' ); this.dataset.tooltip = 'Disable Title'; wp.data.dispatch( 'core/editor' ).editPost( { meta: { 'site-post-title': '', } } ); } else { this.classList.add( 'dashicons-hidden' ); this.classList.remove( 'dashicons-visibility' ); this.dataset.tooltip = 'Enable Title'; wp.data.dispatch( 'core/editor' ).editPost( { meta: { 'site-post-title': 'disabled', } } ); } }); } var responsivePreview = document.querySelectorAll( '.is-tablet-preview, .is-mobile-preview' ); if( responsivePreview.length ) { document.body.classList.add( 'responsive-enabled' ); } else { document.body.classList.remove( 'responsive-enabled' ); } // Adding 'inherit-container-width' width to Group block externally. let postBlocks = ( null !== wp.data.select( 'core/editor' ) && undefined !== wp.data.select( 'core/editor' ).getCurrentPost() && undefined !== wp.data.select( 'core/editor' ).getBlocks() ) ? wp.data.select( 'core/editor' ).getBlocks() : false, groupBlocks = document.querySelectorAll( '.block-editor-block-list__layout.is-root-container > .wp-block-group' ); if( postBlocks && groupBlocks ) { for ( let blockNum = 0; blockNum < postBlocks.length; blockNum++ ) { if( 'core/group' === postBlocks[blockNum].name && undefined !== postBlocks[blockNum].attributes && undefined !== postBlocks[blockNum].attributes.layout && undefined !== postBlocks[blockNum].attributes.layout.inherit ) { if( undefined === groupBlocks[blockNum] ) { return; } if( ! postBlocks[blockNum].attributes.layout.inherit ) { groupBlocks[blockNum].classList.remove( 'inherit-container-width' ); } if( postBlocks[blockNum].attributes.layout.inherit && ! groupBlocks[blockNum].classList.contains( 'inherit-container-width' ) ) { groupBlocks[blockNum].classList.add( 'inherit-container-width' ); } } } } }, 1 ); }); } document.body.addEventListener('mousedown', function () { var blockCssMode = document.querySelector('body').classList.contains('ast-block-legacy') var fontCss = document.getElementById('astra-google-fonts-css'); if(true === blockCssMode){ var blockCss = document.getElementById('astra-block-editor-styles-css'); var inlineCss = document.getElementById('astra-block-editor-styles-inline-css'); }else { var blockCss = document.getElementById('astra-wp-editor-styles-css'); var inlineCss = document.getElementById('astra-wp-editor-styles-inline-css'); } var blockFixCss = blockCss.cloneNode(true); var blockInlineCss = inlineCss.cloneNode(true); var blockfontCss = null !== fontCss ? fontCss.cloneNode(true) : null; setTimeout( function() { let tabletPreview = document.getElementsByClassName('is-tablet-preview'); let mobilePreview = document.getElementsByClassName('is-mobile-preview'); if (0 !== tabletPreview.length || 0 !== mobilePreview.length) { var googleFontId = 'astra-google-fonts-css'; if(true === blockCssMode){ var styleTagId = 'astra-block-editor-styles-inline-css'; var styleTagBlockId = 'astra-block-editor-styles-css'; } else{ var styleTagId = 'astra-wp-editor-styles-inline-css'; var styleTagBlockId = 'astra-wp-editor-styles-css'; } var styleTagId = 'astra-block-editor-styles-inline-css'; var styleTagBlockId = 'astra-block-editor-styles-css'; var googleFontId = 'astra-google-fonts-css'; let preview = tabletPreview[0] || mobilePreview[0]; let iframe = preview.getElementsByTagName('iframe')[0]; let iframeDocument = iframe.contentWindow.document || iframe.contentDocument; let element = iframeDocument.getElementById( styleTagId ); let elementBlock = iframeDocument.getElementById( styleTagBlockId ); let elementGoogleFont = iframeDocument.getElementById( googleFontId ); if ( (null === element || undefined === element)) { iframeDocument.head.appendChild( blockInlineCss ); } if ( (null === elementBlock || undefined === elementBlock )) { iframeDocument.head.appendChild( blockFixCss ); } if ( (null === elementGoogleFont || undefined === elementGoogleFont ) && null !== fontCss) { iframeDocument.head.appendChild( blockfontCss ); } } }, 1000); });