diff options
Diffstat (limited to 'inc/compatibility/class-astra-amp.php')
-rw-r--r-- | inc/compatibility/class-astra-amp.php | 1209 |
1 files changed, 1209 insertions, 0 deletions
diff --git a/inc/compatibility/class-astra-amp.php b/inc/compatibility/class-astra-amp.php new file mode 100644 index 0000000..f8c1468 --- /dev/null +++ b/inc/compatibility/class-astra-amp.php @@ -0,0 +1,1209 @@ +<?php
+/**
+ * AMP Compatibility.
+ *
+ * @package Astra
+ * @author Astra
+ * @copyright Copyright (c) 2018, Astra
+ * @link https://wpastra.com/
+ * @since Astra 1.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit; // Exit if accessed directly.
+}
+
+/**
+ * Astra BB Ultimate Addon Compatibility
+ */
+if ( ! class_exists( 'Astra_AMP' ) ) :
+
+ /**
+ * Class Astra_AMP
+ */
+ class Astra_AMP {
+
+ /**
+ * Member Variable
+ *
+ * @var object instance
+ */
+ private static $instance;
+
+ /**
+ * Initiator
+ */
+ public static function get_instance() {
+ if ( ! isset( self::$instance ) ) {
+ self::$instance = new self();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Constructor
+ */
+ public function __construct() {
+ add_action( 'wp', array( $this, 'astra_amp_init' ) );
+ }
+
+ /**
+ * Init Astra Amp Compatibility.
+ * This adds required actions and filters only if AMP endpoinnt is detected.
+ *
+ * @since 1.7.0
+ * @return void
+ */
+ public function astra_amp_init() {
+
+ // bail if AMP endpoint is not detected.
+ if ( ! astra_is_amp_endpoint() ) {
+ return;
+ }
+
+ add_filter( 'astra_nav_toggle_data_attrs', array( $this, 'add_nav_toggle_attrs' ) );
+ add_filter( 'astra_search_slide_toggle_data_attrs', array( $this, 'add_search_slide_toggle_attrs' ) );
+ add_filter( 'astra_search_field_toggle_data_attrs', array( $this, 'add_search_field_toggle_attrs' ) );
+ add_action( 'wp_footer', array( $this, 'render_amp_states' ) );
+ add_filter( 'astra_attr_ast-main-header-bar-alignment', array( $this, 'nav_menu_wrapper' ) );
+ add_filter( 'astra_attr_ast-menu-toggle', array( $this, 'menu_toggle_button' ), 20, 3 );
+ add_filter( 'astra_theme_dynamic_css', array( $this, 'dynamic_css' ) );
+ add_filter( 'astra_toggle_button_markup', array( $this, 'toggle_button_markup' ), 20, 2 );
+ add_filter( 'astra_schema_body', array( $this, 'body_id' ) );
+ }
+
+ /**
+ * Add ID to body to toggleClasses on AMP actions.
+ *
+ * @since 1.7.0
+ * @param String $schema markup returned from theme.
+ * @return String
+ */
+ public function body_id( $schema ) {
+ return $schema . 'id="astra-body"';
+ }
+
+ /**
+ * Dynamic CSS used for AMP pages.
+ * This should be changed to main CSS in next versions, replacing JavaScript based interactions with pure CSS alternatives.
+ *
+ * @since 1.7.0
+ * @param String $compiled_css Dynamic CSS received to be enqueued on page.
+ *
+ * @return String Updated dynamic CSS with AMP specific changes.
+ */
+ public function dynamic_css( $compiled_css ) {
+
+
+ if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) {
+ $css = array(
+ '#ast-desktop-header' => array(
+ 'display' => 'none',
+ ),
+
+ '#ast-mobile-header' => array(
+ 'display' => 'block',
+ ),
+
+ '.ast-amp.ast-main-header-nav-open .ast-mobile-header-content' => array(
+ 'display' => 'block',
+ ),
+
+ '.ast-mobile-header-content .ast-main-header-bar-alignment.toggle-on .main-header-bar-navigation' => array(
+ 'display' => 'block',
+ ),
+
+ '.ast-amp .ast-mobile-header-content .main-navigation ul .menu-item .menu-link' => array(
+ 'padding' => '0 20px',
+ 'display' => 'inline-block',
+ 'width' => '100%',
+ 'border' => '0',
+ 'border-bottom-width' => '1px',
+ 'border-style' => 'solid',
+ 'border-color' => '#eaeaea',
+ ),
+
+ '.ast-amp .ast-mobile-header-content .toggled-on .main-header-bar-navigation' => array(
+ 'line-height' => '3',
+ 'display' => 'none',
+ ),
+ '.ast-amp .ast-mobile-header-content .main-header-bar-navigation .sub-menu' => array(
+ 'line-height' => '3',
+ ),
+ '.ast-amp .ast-mobile-header-content .main-header-bar-navigation .menu-item-has-children .sub-menu' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp .ast-mobile-header-content .main-header-bar-navigation .menu-item-has-children .dropdown-open+ul.sub-menu' => array(
+ 'display' => 'block',
+ ),
+ '.ast-amp .ast-mobile-header-content .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle' => array(
+ 'display' => 'inline-block',
+ 'position' => 'absolute',
+ 'font-size' => 'inherit',
+ 'top' => '-1px',
+ 'right' => '20px',
+ 'cursor' => 'pointer',
+ 'webkit-font-smoothing' => 'antialiased',
+ 'moz-osx-font-smoothing' => 'grayscale',
+ 'padding' => '0 0.907em',
+ 'font-weight' => 'normal',
+ 'line-height' => 'inherit',
+ 'transition' => 'all 0.2s',
+ ),
+ '.ast-amp .ast-mobile-header-content .main-header-bar-navigation .ast-submenu-expanded > .ast-menu-toggle::before' => array(
+ '-webkit-transform' => 'rotateX(180deg)',
+ 'transform' => 'rotateX(180deg)',
+ ),
+ '.ast-amp .ast-mobile-header-content .main-header-bar-navigation .main-header-menu' => array(
+ 'border-top-width' => '1px',
+ 'border-style' => 'solid',
+ 'border-color' => '#eaeaea',
+ ),
+ '.ast-amp .ast-below-header-bar, .ast-amp .main-header-bar, .ast-amp .ast-above-header-bar' => array(
+ 'display' => 'grid',
+ ),
+ );
+ if ( false === Astra_Icons::is_svg_icons() ) {
+ $css['.ast-amp .ast-mobile-header-content .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle::before'] = array(
+ 'font-weight' => 'bold',
+ 'content' => '"\e900"',
+ 'font-family' => '"Astra"',
+ 'text-decoration' => 'inherit',
+ 'display' => 'inline-block',
+ );
+ }
+ } else {
+ $css = array(
+ '.ast-mobile-menu-buttons' => array(
+ 'text-align' => 'right',
+ '-js-display' => 'flex',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-pack' => 'end',
+ '-webkit-justify-content' => 'flex-end',
+ '-moz-box-pack' => 'end',
+ '-ms-flex-pack' => 'end',
+ 'justify-content' => 'flex-end',
+ '-webkit-align-self' => 'center',
+ '-ms-flex-item-align' => 'center',
+ 'align-self' => 'center',
+ ),
+ '.header-main-layout-1 .main-navigation' => array(
+ 'padding' => '0',
+ ),
+ );
+ }
+
+ $parse_css = $compiled_css . astra_parse_css( $css, '', astra_header_break_point() );
+
+ $css = array(
+
+ '.site-header .main-header-bar-wrap .site-branding' => array(
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1',
+ 'flex' => '1',
+ '-webkit-align-self' => 'center',
+ '-ms-flex-item-align' => 'center',
+ 'align-self' => 'center',
+ ),
+
+ '.ast-main-header-bar-alignment.toggle-on .main-header-bar-navigation' => array(
+ 'display' => 'block',
+ ),
+
+ '.main-navigation' => array(
+ 'display' => 'block',
+ 'width' => '100%',
+ ),
+
+ '.main-header-menu > .menu-item > .menu-link' => array(
+ 'padding' => '0 20px',
+ 'display' => 'inline-block',
+ 'width' => '100%',
+ 'border-bottom-width' => '1px',
+ 'border-style' => 'solid',
+ 'border-color' => '#eaeaea',
+ ),
+
+ '.ast-main-header-bar-alignment.toggle-on' => array(
+ 'display' => 'block',
+ 'width' => '100%',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => 'auto',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => 'auto',
+ 'flex' => 'auto',
+ '-webkit-box-ordinal-group' => '5',
+ '-webkit-order' => '4',
+ '-moz-box-ordinal-group' => '5',
+ '-ms-flex-order' => '4',
+ 'order' => '4',
+ ),
+
+ '.main-header-menu .menu-item' => array(
+ 'width' => '100%',
+ 'text-align' => 'left',
+ 'border-top' => '0',
+ ),
+
+ '.main-header-bar-navigation' => array(
+ 'width' => '-webkit-calc( 100% + 40px)',
+ 'width' => 'calc( 100% + 40px)',
+ 'margin' => '0 -20px',
+ ),
+
+ '.main-header-bar .main-header-bar-navigation .main-header-menu' => array(
+ 'border-top-width' => '1px',
+ 'border-style' => 'solid',
+ 'border-color' => '#eaeaea',
+ ),
+
+ '.main-header-bar .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle' => array(
+ 'display' => 'inline-block',
+ 'position' => 'absolute',
+ 'font-size' => 'inherit',
+ 'top' => '-1px',
+ 'right' => '20px',
+ 'cursor' => 'pointer',
+ '-webkit-font-smoothing' => 'antialiased',
+ '-moz-osx-font-smoothing' => 'grayscale',
+ 'padding' => '0 0.907em',
+ 'font-weight' => 'normal',
+ 'line-height' => 'inherit',
+ '-webkit-transition' => 'all .2s',
+ 'transition' => 'all .2s',
+ ),
+ );
+
+ if ( false === Astra_Icons::is_svg_icons() ) {
+ $css['.main-header-bar-navigation .menu-item-has-children > .menu-link:after'] = array(
+ 'content' => 'none',
+ );
+ $css['.ast-button-wrap .menu-toggle.toggled .menu-toggle-icon:before'] = array(
+ 'content' => "\e5cd",
+ );
+ $css['.main-header-bar .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle::before'] = array(
+ 'font-weight' => 'bold',
+ 'content' => '"\e900"',
+ 'font-family' => 'Astra',
+ 'text-decoration' => 'inherit',
+ 'display' => 'inline-block',
+ );
+ }
+
+ $parse_css .= astra_parse_css( $css, '', astra_header_break_point() );
+
+ if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) {
+
+ $astra_break_point_navigation = array(
+ '.ast-amp .main-header-bar-navigation' => array(
+ 'margin' => '0',
+ ),
+ );
+
+ } else {
+ $astra_break_point_navigation = array(
+ '.ast-amp .main-header-bar-navigation' => array(
+ 'margin' => '0 -20px',
+ ),
+ '.ast-amp .ast-mobile-menu-buttons' => array(
+ 'text-align' => 'right',
+ '-js-display' => 'flex',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-pack' => 'end',
+ '-webkit-justify-content' => 'flex-end',
+ '-moz-box-pack' => 'end',
+ '-ms-flex-pack' => 'end',
+ 'justify-content' => 'flex-end',
+ '-webkit-align-self' => 'center',
+ '-ms-flex-item-align' => 'center',
+ 'align-self' => 'center',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .main-header-bar .ast-search-icon' => array(
+ 'margin-right' => '1em',
+ ),
+ '.ast-theme.ast-header-custom-item-inside .main-header-bar .main-header-bar-navigation .ast-search-icon' => array(
+ 'display' => 'none',
+ ),
+ '.ast-theme.ast-header-custom-item-inside .main-header-bar .ast-search-menu-icon .search-field, .ast-theme.ast-header-custom-item-inside .main-header-bar .ast-search-menu-icon.ast-inline-search .search-field' => array(
+ 'width' => '100%',
+ 'padding-right' => '5.5em',
+ ),
+ '.ast-theme.ast-header-custom-item-inside .main-header-bar .ast-search-menu-icon .search-submit' => array(
+ 'display' => 'block',
+ 'position' => 'absolute',
+ 'height' => '100%',
+ 'top' => '0',
+ 'right' => '0',
+ 'padding' => '0 1em',
+ 'border-radius' => '0',
+ ),
+ '.ast-theme.ast-header-custom-item-inside .main-header-bar .ast-search-menu-icon .search-form' => array(
+ 'padding' => '0',
+ 'display' => 'block',
+ 'overflow' => 'hidden',
+ ),
+ '.ast-amp .ast-header-custom-item' => array(
+ 'background-color' => '#f9f9f9',
+ ),
+ '.ast-amp .ast-mobile-header-stack .site-description' => array(
+ 'text-align' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack.ast-logo-title-inline .site-description' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-primary-menu-disabled .ast-mobile-menu-buttons' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp .ast-hide-custom-menu-mobile .ast-masthead-custom-menu-items' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp .ast-mobile-header-inline .site-branding' => array(
+ 'text-align' => 'left',
+ 'padding-bottom' => '0',
+ ),
+ '.ast-amp .ast-mobile-header-inline.header-main-layout-3 .site-branding' => array(
+ 'text-align' => 'right',
+ ),
+ '.ast-amp ul li.ast-masthead-custom-menu-items a' => array(
+ 'padding' => '0',
+ 'width' => 'auto',
+ 'display' => 'initial',
+ ),
+ '.ast-amp li.ast-masthead-custom-menu-items' => array(
+ 'padding-left' => '20px',
+ 'padding-right' => '20px',
+ 'margin-bottom' => '1em',
+ 'margin-top' => '1em',
+ ),
+ '.ast-theme.ast-header-custom-item-inside .ast-search-menu-icon' => array(
+ 'position' => 'relative',
+ 'display' => 'block',
+ 'right' => 'auto',
+ 'visibility' => 'visible',
+ 'opacity' => '1',
+ '-webkit-transform' => 'none',
+ '-ms-transform' => 'none',
+ 'transform' => 'none',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-menu-buttons' => array(
+ '-webkit-box-ordinal-group' => '3',
+ '-webkit-order' => '2',
+ '-moz-box-ordinal-group' => '3',
+ '-ms-flex-order' => '2',
+ 'order' => '2',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .main-header-bar-navigation' => array(
+ '-webkit-box-ordinal-group' => '4',
+ '-webkit-order' => '3',
+ '-moz-box-ordinal-group' => '4',
+ '-ms-flex-order' => '3',
+ 'order' => '3',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-masthead-custom-menu-items' => array(
+ '-webkit-box-ordinal-group' => '2',
+ '-webkit-order' => '1',
+ '-moz-box-ordinal-group' => '2',
+ '-ms-flex-order' => '1',
+ 'order' => '1',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .header-main-layout-2 .ast-masthead-custom-menu-items' => array(
+ 'text-align' => 'center',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline .site-branding, .ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline .ast-mobile-menu-buttons' => array(
+ '-js-display' => 'flex',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ ),
+ '.ast-theme.ast-header-custom-item-outside.ast-header-custom-item-outside .header-main-layout-2 .ast-mobile-menu-buttons' => array(
+ 'padding-bottom' => '0',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline .ast-site-identity' => array(
+ 'width' => '100%',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline.header-main-layout-3 .ast-site-identity' => array(
+ 'width' => 'auto',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline.header-main-layout-2 .site-branding' => array(
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 auto',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 auto',
+ 'flex' => '1 1 auto',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline .site-branding' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-inline .site-title' => array(
+ '-webkit-box-pack' => 'left',
+ '-webkit-justify-content' => 'left',
+ '-moz-box-pack' => 'left',
+ '-ms-flex-pack' => 'left',
+ 'justify-content' => 'left',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .header-main-layout-2 .ast-mobile-menu-buttons' => array(
+ 'padding-bottom' => '1em',
+ ),
+ '.ast-amp .ast-mobile-header-stack .main-header-container, .ast-amp .ast-mobile-header-inline .main-header-container' => array(
+ '-js-display' => 'flex',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ ),
+ '.ast-amp .header-main-layout-1 .site-branding' => array(
+ 'padding-right' => '1em',
+ ),
+ '.ast-amp .header-main-layout-1 .main-header-bar-navigation' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-amp .header-main-layout-1 .main-navigation' => array(
+ 'padding-left' => '0',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-masthead-custom-menu-items' => array(
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 100%',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 100%',
+ 'flex' => '1 1 100%',
+ ),
+ '.ast-amp .ast-mobile-header-stack .site-branding' => array(
+ 'padding-left' => '0',
+ 'padding-right' => '0',
+ 'padding-bottom' => '1em',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 100%',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 100%',
+ 'flex' => '1 1 100%',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-masthead-custom-menu-items, .ast-amp .ast-mobile-header-stack .site-branding, .ast-amp .ast-mobile-header-stack .site-title, .ast-amp .ast-mobile-header-stack .ast-site-identity' => array(
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ 'text-align' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack.ast-logo-title-inline .site-title' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 100%',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 100%',
+ 'flex' => '1 1 100%',
+ 'text-align' => 'center',
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack.header-main-layout-3 .main-header-container' => array(
+ 'flex-direction' => 'initial',
+ ),
+ '.ast-amp .header-main-layout-2 .ast-mobile-menu-buttons' => array(
+ '-js-display' => 'flex',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ ),
+ '.ast-amp .header-main-layout-2 .main-header-bar-navigation, .ast-amp .header-main-layout-2 .widget' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .header-main-layout-3 .main-header-bar .ast-search-icon' => array(
+ 'margin-right' => 'auto',
+ 'margin-left' => '1em',
+ ),
+ '.ast-amp .header-main-layout-3 .main-header-bar .ast-search-menu-icon.slide-search .search-form' => array(
+ 'right' => 'auto',
+ 'left' => '0',
+ ),
+ '.ast-amp .header-main-layout-3.ast-mobile-header-inline .ast-mobile-menu-buttons' => array(
+ '-webkit-box-pack' => 'start',
+ '-webkit-justify-content' => 'flex-start',
+ '-moz-box-pack' => 'start',
+ '-ms-flex-pack' => 'start',
+ 'justify-content' => 'flex-start',
+ ),
+ '.ast-amp .header-main-layout-3 li .ast-search-menu-icon' => array(
+ 'left' => '0',
+ ),
+ '.ast-amp .header-main-layout-3 .site-branding' => array(
+ 'padding-left' => '1em',
+ '-webkit-box-pack' => 'end',
+ '-webkit-justify-content' => 'flex-end',
+ '-moz-box-pack' => 'end',
+ '-ms-flex-pack' => 'end',
+ 'justify-content' => 'flex-end',
+ ),
+ '.ast-amp .header-main-layout-3 .main-navigation' => array(
+ 'padding-right' => '0',
+ ),
+ '.ast-amp .header-main-layout-1 .site-branding' => array(
+ 'padding-right' => '1em',
+ ),
+ '.ast-amp .header-main-layout-1 .main-header-bar-navigation' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-amp .header-main-layout-1 .main-navigation' => array(
+ 'padding-left' => '0',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-masthead-custom-menu-items' => array(
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 100%',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 100%',
+ 'flex' => '1 1 100%',
+ ),
+ '.ast-amp .ast-mobile-header-stack .site-branding' => array(
+ 'padding-left' => '0',
+ 'padding-right' => '0',
+ 'padding-bottom' => '1em',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 100%',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 100%',
+ 'flex' => '1 1 100%',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-masthead-custom-menu-items, .ast-amp .ast-mobile-header-stack .site-branding, .ast-amp .ast-mobile-header-stack .site-title, .ast-amp .ast-mobile-header-stack .ast-site-identity' => array(
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ 'text-align' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack.ast-logo-title-inline .site-title' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ 'flex' => '1 1 100%',
+ 'text-align' => 'center',
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack.header-main-layout-3 .main-header-container' => array(
+ 'flex-direction' => 'initial',
+ ),
+ '.ast-amp .header-main-layout-2 .ast-mobile-menu-buttons' => array(
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ ),
+ '.ast-amp .header-main-layout-2 .main-header-bar-navigation, .ast-amp .header-main-layout-2 .widget' => array(
+ 'text-align' => 'left',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .header-main-layout-3 .main-header-bar .ast-search-icon' => array(
+ 'margin-right' => 'auto',
+ 'margin-left' => '1em',
+ ),
+ '.ast-amp .header-main-layout-3 .main-header-bar .ast-search-menu-icon.slide-search .search-form' => array(
+ 'right' => 'auto',
+ 'left' => '0',
+ ),
+ '.ast-amp .header-main-layout-3.ast-mobile-header-inline .ast-mobile-menu-buttons' => array(
+ '-webkit-box-pack' => 'start',
+ '-webkit-justify-content' => 'flex-start',
+ '-moz-box-pack' => 'start',
+ '-ms-flex-pack' => 'start',
+ 'justify-content' => 'flex-start',
+ ),
+ '.ast-amp .header-main-layout-3 li .ast-search-menu-icon' => array(
+ 'left' => '0',
+ ),
+ '.ast-amp .header-main-layout-3 .site-branding' => array(
+ 'padding-left' => '1em',
+ '-webkit-box-pack' => 'end',
+ '-webkit-justify-content' => 'flex-end',
+ '-moz-box-pack' => 'end',
+ '-ms-flex-pack' => 'end',
+ 'justify-content' => 'flex-end',
+ ),
+ '.ast-amp .header-main-layout-3 .main-navigation' => array(
+ 'padding-right' => '0',
+ ),
+ '.ast-amp .ast-header-custom-item' => array(
+ 'border-top' => '1px solid #eaeaea',
+ ),
+ '.ast-amp .ast-header-custom-item .ast-masthead-custom-menu-items' => array(
+ 'padding-left' => '20px',
+ 'padding-right' => '20px',
+ 'margin-bottom' => '1em',
+ 'margin-top' => '1em',
+ ),
+ '.ast-amp .ast-header-custom-item .widget:last-child' => array(
+ 'margin-bottom' => '1em',
+ ),
+ '.ast-header-custom-item-inside.ast-amp .button-custom-menu-item .menu-link' => array(
+ 'display' => 'block',
+ ),
+ '.ast-header-custom-item-inside.ast-amp .button-custom-menu-item' => array(
+ 'padding-left' => '0',
+ 'padding-right' => '0',
+ 'margin-top' => '0',
+ 'margin-bottom' => '0',
+ ),
+ '.ast-header-custom-item-inside.ast-amp .button-custom-menu-item .ast-custom-button-link' => array(
+ 'display' => 'none',
+ ),
+ '.ast-header-custom-item-inside.ast-amp .button-custom-menu-item .menu-link' => array(
+ 'display' => 'block',
+ ),
+ '.ast-amp .woocommerce-custom-menu-item .ast-cart-menu-wrap' => array(
+ 'width' => '2em',
+ 'height' => '2em',
+ 'font-size' => '1.4em',
+ 'line-height' => '2',
+ 'vertical-align' => 'middle',
+ 'text-align' => 'right',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-3 .ast-site-header-cart' => array(
+ 'padding' => '0 0 1em 1em',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu.ast-header-custom-item-outside .ast-site-header-cart' => array(
+ 'padding' => '0',
+ ),
+ '.ast-amp .ast-masthead-custom-menu-items.woocommerce-custom-menu-item' => array(
+ 'margin-bottom' => '0',
+ 'margin-top' => '0',
+ ),
+ '.ast-amp .ast-masthead-custom-menu-items.woocommerce-custom-menu-item .ast-site-header-cart' => array(
+ 'padding' => '0',
+ ),
+ '.ast-amp .ast-masthead-custom-menu-items.woocommerce-custom-menu-item .ast-site-header-cart a' => array(
+ 'border' => 'none',
+ 'display' => 'inline-block',
+ ),
+ '.ast-theme.ast-header-custom-item-inside .main-header-bar .ast-search-menu-icon .search-form' => array(
+ 'visibility' => 'visible',
+ 'opacity' => '1',
+ 'position' => 'relative',
+ 'right' => 'auto',
+ 'top' => 'auto',
+ 'transform' => 'none',
+ ),
+ '.ast-theme.ast-header-custom-item-outside .ast-mobile-header-stack .main-header-bar .ast-search-icon' => array(
+ 'margin' => '0',
+ ),
+ '.ast-amp .ast-mobile-header-stack .main-header-bar .ast-search-menu-icon.slide-search .search-form' => array(
+ 'right' => '-1em',
+ ),
+ '.ast-amp .ast-mobile-header-stack .site-branding, .ast-amp .ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ 'text-align' => 'center',
+ 'padding-bottom' => '0',
+ ),
+ '.ast-safari-browser-less-than-11.ast-woocommerce-cart-menu.ast-header-break-point .header-main-layout-2 .main-header-container' => array(
+ 'display' => 'flex',
+ ),
+ );
+
+ // Tablet CSS.
+ $astra_medium_break_point_navigation = array(
+ '.ast-amp .footer-sml-layout-2 .ast-small-footer-section-2' => array(
+ 'margin-top' => '1em',
+ ),
+ );
+
+ $parse_css .= astra_parse_css( $astra_medium_break_point_navigation, astra_get_tablet_breakpoint() );
+
+ // Mobile CSS.
+ $astra_small_break_point_navigation = array(
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-1.ast-mobile-header-stack.ast-no-menu-items .ast-site-header-cart, .ast-theme.ast-woocommerce-cart-menu .header-main-layout-3.ast-mobile-header-stack.ast-no-menu-items .ast-site-header-cart' => array(
+ 'padding-right' => '0',
+ 'padding-left' => '0',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-1.ast-mobile-header-stack .main-header-bar, .ast-theme.ast-woocommerce-cart-menu .header-main-layout-3.ast-mobile-header-stack .main-header-bar' => array(
+ 'text-align' => 'center',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-1.ast-mobile-header-stack .ast-site-header-cart, .ast-theme.ast-woocommerce-cart-menu .header-main-layout-3.ast-mobile-header-stack .ast-site-header-cart' => array(
+ 'display' => 'inline-block',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-1.ast-mobile-header-stack .ast-mobile-menu-buttons, .ast-theme.ast-woocommerce-cart-menu .header-main-layout-3.ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ 'display' => 'inline-block',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-2.ast-mobile-header-inline .site-branding' => array(
+ 'flex' => 'auto',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-3.ast-mobile-header-stack .site-branding' => array(
+ 'flex' => '0 0 100%',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .header-main-layout-3.ast-mobile-header-stack .main-header-container' => array(
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ 'width' => '100%',
+ ),
+ '.ast-amp .ast-mobile-header-stack .site-branding, .ast-amp .ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ '-webkit-box-pack' => 'center',
+ '-webkit-justify-content' => 'center',
+ '-moz-box-pack' => 'center',
+ '-ms-flex-pack' => 'center',
+ 'justify-content' => 'center',
+ ),
+ '.ast-amp .ast-mobile-header-stack .main-header-bar-wrap .site-branding' => array(
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 auto',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 auto',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1 1 auto',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1 1 auto',
+ 'flex' => '1 1 auto',
+ ),
+ '.ast-amp .ast-mobile-header-stack .ast-mobile-menu-buttons' => array(
+ 'padding-top' => '0.8em',
+ ),
+ '.ast-amp .ast-mobile-header-stack.header-main-layout-2 .ast-mobile-menu-buttons' => array(
+ 'padding-top' => '0.8em',
+ ),
+ '.ast-amp .ast-mobile-header-stack.header-main-layout-1 .site-branding' => array(
+ 'padding-bottom' => '0',
+ ),
+ '.ast-header-custom-item-outside.ast-amp .ast-mobile-header-stack .ast-masthead-custom-menu-items' => array(
+ 'padding' => '0.8em 1em 0 1em',
+ 'text-align' => 'center',
+ 'width' => '100%',
+ ),
+ '.ast-header-custom-item-outside.ast-amp .ast-mobile-header-stack.header-main-layout-3 .ast-mobile-menu-buttons, .ast-header-custom-item-outside.ast-amp .ast-mobile-header-stack.header-main-layout-3 .ast-masthead-custom-menu-items' => array(
+ 'padding-top' => '0.8em',
+ ),
+ // Tablet CSS.
+ '.ast-amp .footer-sml-layout-2 .ast-small-footer-section-2' => array(
+ 'margin-top' => '1em',
+ ),
+ );
+
+ $parse_css .= astra_parse_css( $astra_small_break_point_navigation, astra_get_mobile_breakpoint() );
+ }
+
+ $parse_css .= astra_parse_css( $astra_break_point_navigation, '', astra_header_break_point() );
+
+ // Move all header-break-point css from class based css to media query based CSS.
+ $astra_break_point_navigation = array(
+
+ '.ast-amp .entry-content .alignwide' => array(
+ 'margin-left' => 'auto',
+ 'margin-right' => 'auto',
+ ),
+ '.ast-amp .main-navigation' => array(
+ 'padding-left' => '0',
+ ),
+ '.ast-amp .main-navigation ul .menu-item .menu-link, .ast-amp .main-navigation ul .button-custom-menu-item a' => array(
+ 'padding' => '0 20px',
+ 'display' => 'inline-block',
+ 'width' => '100%',
+ 'border-bottom-width' => '1px',
+ 'border-style' => 'solid',
+ 'border-color' => '#eaeaea',
+ ),
+ '.ast-amp .main-navigation .sub-menu .menu-item .menu-link' => array(
+ 'padding-left' => '30px',
+ ),
+ '.ast-amp .main-navigation .sub-menu .menu-item .menu-item .menu-link' => array(
+ 'padding-left' => '40px',
+ ),
+ '.ast-amp .main-navigation .sub-menu .menu-item .menu-item .menu-item .menu-link' => array(),
+ '.ast-amp .main-navigation .sub-menu .menu-item .menu-item .menu-item .menu-item .menu-link' => array(
+ 'padding-left' => '60px',
+ ),
+ '.ast-amp .main-header-menu' => array(
+ 'background-color' => '#f9f9f9',
+ ),
+ '.ast-amp .main-header-menu ul' => array(
+ 'background-color' => '#f9f9f9',
+ 'position' => 'static',
+ 'opacity' => '1',
+ 'visibility' => 'visible',
+ 'border' => '0',
+ 'width' => 'auto',
+ ),
+ '.ast-amp .main-header-menu ul li.ast-left-align-sub-menu:hover > ul, .ast-amp .main-header-menu ul li.ast-left-align-sub-menu.focus > ul' => array(
+ 'left' => '0',
+ ),
+ '.ast-amp .main-header-menu li.ast-sub-menu-goes-outside:hover > ul, .ast-amp .main-header-menu li.ast-sub-menu-goes-outside.focus > ul' => array(
+ 'left' => '0',
+ ),
+ '.ast-amp .submenu-with-border .sub-menu' => array(
+ 'border' => '0',
+ ),
+ '.ast-amp .user-select' => array(
+ 'clear' => 'both',
+ ),
+ '.ast-amp .ast-mobile-menu-buttons' => array(
+ 'display' => 'block',
+ '-webkit-align-self' => 'center',
+ '-ms-flex-item-align' => 'center',
+ 'align-self' => 'center',
+ ),
+ '.ast-amp .main-header-bar-navigation' => array(
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => 'auto',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => 'auto',
+ 'flex' => 'auto',
+ 'width' => '-webkit-calc( 100% + 40px)',
+ 'width' => 'calc(100% + 40px )',
+ ),
+ '.ast-amp .ast-main-header-bar-alignment' => array(
+ 'display' => 'block',
+ 'width' => '100%',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => 'auto',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => 'auto',
+ 'flex' => 'auto',
+ '-webkit-box-ordinal-group' => '5',
+ '-webkit-order' => '4',
+ '-moz-box-ordinal-group' => '5',
+ '-ms-flex-order' => '4',
+ 'order' => '4',
+ ),
+ '.ast-amp .ast-mobile-menu-buttons' => array(
+ 'text-align' => 'right',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-pack' => 'end',
+ '-webkit-justify-content' => 'flex-end',
+ '-moz-box-pack' => 'end',
+ '-ms-flex-pack' => 'end',
+ 'justify-content' => 'flex-end',
+ ),
+ '.ast-amp .site-header .main-header-bar-wrap .site-branding' => array(
+ '-js-display' => 'flex',
+ 'display' => '-webkit-box',
+ 'display' => '-webkit-flex',
+ 'display' => '-moz-box',
+ 'display' => '-ms-flexbox',
+ 'display' => 'flex',
+ '-webkit-box-flex' => '1',
+ '-webkit-flex' => '1',
+ '-moz-box-flex' => '1',
+ '-ms-flex' => '1',
+ 'flex' => '1',
+ '-webkit-align-self' => 'center',
+ '-ms-flex-item-align' => 'center',
+ 'align-self' => 'center',
+ ),
+ '.ast-amp .ast-site-identity' => array(
+ 'width' => '100%',
+ ),
+ '.ast-amp .main-header-bar-navigation .menu-item-has-children > .menu-link .sub-arrow:after' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp .main-header-bar' => array(
+ 'display' => 'block',
+ 'line-height' => '3',
+ ),
+ '.ast-main-header-bar-alignment .main-header-bar-navigation' => array(
+ 'line-height' => '3',
+ 'display' => 'none',
+ ),
+ '.ast-amp .main-header-bar .toggled-on .main-header-bar-navigation' => array(
+ 'line-height' => '3',
+ 'display' => 'none',
+ ),
+ '.ast-amp .main-header-bar .main-header-bar-navigation .sub-menu' => array(
+ 'line-height' => '3',
+ ),
+ '.ast-amp .main-header-bar .main-header-bar-navigation .menu-item-has-children .sub-menu' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp .main-header-bar .main-header-bar-navigation .menu-item-has-children .dropdown-open+ul.sub-menu' => array(
+ 'display' => 'block',
+ ),
+ '.ast-amp .main-header-bar .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle' => array(
+ 'display' => 'inline-block',
+ 'position' => 'absolute',
+ 'font-size' => 'inherit',
+ 'top' => '-1px',
+ 'right' => '20px',
+ 'cursor' => 'pointer',
+ 'webkit-font-smoothing' => 'antialiased',
+ 'moz-osx-font-smoothing' => 'grayscale',
+ 'padding' => '0 0.907em',
+ 'font-weight' => 'normal',
+ 'line-height' => 'inherit',
+ 'transition' => 'all 0.2s',
+ ),
+ '.ast-amp .main-header-bar .main-header-bar-navigation .ast-submenu-expanded > .ast-menu-toggle::before' => array(
+ '-webkit-transform' => 'rotateX(180deg)',
+ 'transform' => 'rotateX(180deg)',
+ ),
+ '.ast-amp .main-header-bar .main-header-bar-navigation .main-header-menu' => array(
+ 'border-top-width' => '1px',
+ 'border-style' => 'solid',
+ 'border-color' => '#eaeaea',
+ ),
+ '.ast-amp .main-navigation' => array(
+ 'display' => 'block',
+ 'width' => '100%',
+ ),
+ '.ast-amp .main-navigation ul > li:first-child' => array(
+ 'border-top' => '0',
+ ),
+ '.ast-amp .main-navigation ul ul' => array(
+ 'left' => 'auto',
+ 'right' => 'auto',
+ ),
+ '.ast-amp .main-navigation li' => array(
+ 'width' => '100%',
+ ),
+ '.ast-amp .main-navigation .widget' => array(
+ 'margin-bottom' => '1em',
+ ),
+ '.ast-amp .main-navigation .widget li' => array(
+ 'width' => 'auto',
+ ),
+ '.ast-amp .main-navigation .widget:last-child' => array(
+ 'margin-bottom' => '0',
+ ),
+ '.ast-amp .main-header-menu ul ul' => array(
+ 'top' => '0',
+ ),
+ '.ast-amp .ast-has-mobile-header-logo .custom-logo-link, .ast-amp .ast-has-mobile-header-logo .astra-logo-svg' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp .ast-has-mobile-header-logo .custom-mobile-logo-link' => array(
+ 'display' => 'inline-block',
+ ),
+ '.ast-theme.ast-mobile-inherit-site-logo .ast-has-mobile-header-logo .custom-logo-link, .ast-theme.ast-mobile-inherit-site-logo .ast-has-mobile-header-logo .astra-logo-svg' => array(
+ 'display' => 'block',
+ ),
+ '.ast-amp .ast-header-widget-area .widget' => array(
+ 'margin' => '0.5em 0',
+ 'display' => 'block',
+ ),
+ '.ast-amp .main-header-bar' => array(
+ 'border' => '0',
+ 'border-bottom-color' => '#eaeaea',
+ 'border-bottom-style' => 'solid',
+ ),
+ '.ast-amp .nav-fallback-text' => array(
+ 'float' => 'none',
+ ),
+ '.ast-amp .main-header-menu .woocommerce-custom-menu-item .ast-cart-menu-wrap' => array(
+ 'height' => '3em',
+ 'line-height' => '3',
+ 'text-align' => 'left',
+ ),
+ '.ast-amp #ast-site-header-cart .widget_shopping_cart' => array(
+ 'display' => 'none',
+ ),
+ '.ast-theme.ast-woocommerce-cart-menu .ast-site-header-cart' => array(
+ 'order' => 'initial',
+ 'line-height' => '3',
+ 'padding' => '0 1em 1em 0',
+ ),
+ '.ast-amp .ast-edd-site-header-cart .widget_edd_cart_widget, .ast-amp .ast-edd-site-header-cart .ast-edd-header-cart-info-wrap' => array(
+ 'display' => 'none',
+ ),
+ '.ast-amp div.ast-masthead-custom-menu-items.edd-custom-menu-item' => array(
+ 'padding' => '0',
+ ),
+ '.ast-amp .main-header-bar .ast-search-menu-icon.slide-search .search-form' => array(
+ 'right' => '0',
+ ),
+ '.ast-amp .main-header-menu .sub-menu' => array(
+ 'box-shadow' => 'none',
+ ),
+ '.ast-amp .submenu-with-border .sub-menu a' => array(
+ 'border-width' => '1px',
+ ),
+ '.ast-amp .submenu-with-border .sub-menu > li:last-child > a' => array(
+ 'border-width' => '1px',
+ ),
+ );
+
+ if ( false === Astra_Icons::is_svg_icons() ) {
+ $astra_break_point_navigation['.ast-amp .main-navigation ul.children li a:before, .ast-amp .main-navigation ul.sub-menu li a:before'] = array(
+ 'content' => '"\e900"',
+ 'font-family' => '"Astra"',
+ 'font-size' => '0.65em',
+ 'text-decoration' => 'inherit',
+ 'display' => 'inline-block',
+ 'transform' => 'translate(0, -2px) rotateZ(270deg)',
+ 'margin-right' => '5px',
+ );
+ $astra_break_point_navigation['.ast-amp .main-header-bar .main-header-bar-navigation .menu-item-has-children > .ast-menu-toggle::before'] = array(
+ 'font-weight' => 'bold',
+ 'content' => '"\e900"',
+ 'font-family' => '"Astra"',
+ 'text-decoration' => 'inherit',
+ 'display' => 'inline-block',
+ );
+ } else {
+ $astra_break_point_navigation['[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-buttons-minimal'] = array(
+ 'background' => 'transparent',
+ 'border' => 'none',
+ );
+ }
+
+ $parse_css .= astra_parse_css( $astra_break_point_navigation, '', astra_header_break_point() );
+
+ return $parse_css;
+ }
+
+ /**
+ * Add AMP attributes to the nav menu wrapper.
+ *
+ * @since 1.7.0
+ * @param Array $attr HTML attributes to be added to the nav menu wrapper.
+ *
+ * @return Array updated HTML attributes.
+ */
+ public function nav_menu_wrapper( $attr ) {
+ $attr['[class]'] = '( astraAmpMenuExpanded ? \'ast-main-header-bar-alignment toggle-on\' : \'ast-main-header-bar-alignment\' )';
+ $attr['aria-expanded'] = 'false';
+ $attr['[aria-expanded]'] = '(astraAmpMenuExpanded ? \'true\' : \'false\')';
+
+ return $attr;
+ }
+
+ /**
+ * Set AMP State for eeach sub menu toggle.
+ *
+ * @since 1.7.0
+ * @param String $item_output HTML markup for the menu item.
+ * @param WP_Post $item Post object for the navigation menu.
+ *
+ * @return String HTML MArkup for the menu including the AML State.
+ */
+ public function toggle_button_markup( $item_output, $item ) {
+ $item_output .= '<amp-state id="astraNavMenuItemExpanded' . esc_attr( $item->ID ) . '"><script type="application/json">false</script></amp-state>';
+
+ return $item_output;
+ }
+
+ /**
+ * Add AMP attribites to the toggle button to add `.ast-submenu-expanded` class to parent li.
+ *
+ * @since 1.7.0
+ * @param array $attr Optional. Extra attributes to merge with defaults.
+ * @param string $context The context, to build filter name.
+ * @param array $args Optional. Custom data to pass to filter.
+ *
+ * @return Array updated HTML attributes.
+ */
+ public function menu_toggle_button( $attr, $context, $args ) {
+ $attr['[class]'] = '( astraNavMenuItemExpanded' . $args->ID . ' ? \' ast-menu-toggle dropdown-open\' : \'ast-menu-toggle\')';
+ $attr['on'] = 'tap:AMP.setState( { astraNavMenuItemExpanded' . $args->ID . ': ! astraNavMenuItemExpanded' . $args->ID . ' } )';
+
+ return $attr;
+ }
+
+ /**
+ * Add amp states to the dom.
+ */
+ public function render_amp_states() {
+ echo '<amp-state id="astraAmpMenuExpanded">';
+ echo '<script type="application/json">false</script>';
+ echo '</amp-state>';
+ }
+
+ /**
+ * Add search slide data attributes.
+ *
+ * @param string $input the data attrs already existing in the nav.
+ *
+ * @return string
+ */
+ public function add_search_slide_toggle_attrs( $input ) {
+ $input .= ' on="tap:AMP.setState( { astraAmpSlideSearchMenuExpanded: ! astraAmpSlideSearchMenuExpanded } )" ';
+ $input .= ' [class]="( astraAmpSlideSearchMenuExpanded ? \'ast-search-menu-icon slide-search ast-dropdown-active\' : \'ast-search-menu-icon slide-search\' )" ';
+ $input .= ' aria-expanded="false" [aria-expanded]="astraAmpSlideSearchMenuExpanded ? \'true\' : \'false\'" ';
+
+ return $input;
+ }
+
+ /**
+ * Add search slide data attributes.
+ *
+ * @param string $input the data attrs already existing in the nav.
+ *
+ * @return string
+ */
+ public function add_search_field_toggle_attrs( $input ) {
+ $input .= ' on="tap:AMP.setState( { astraAmpSlideSearchMenuExpanded: astraAmpSlideSearchMenuExpanded } )" ';
+
+ return $input;
+ }
+
+ /**
+ * Add the nav toggle data attributes.
+ *
+ * @param string $input the data attrs already existing in nav toggle.
+ *
+ * @return string
+ */
+ public function add_nav_toggle_attrs( $input ) {
+ $input .= ' on="tap:AMP.setState( { astraAmpMenuExpanded: ! astraAmpMenuExpanded } ),astra-body.toggleClass(class=ast-main-header-nav-open)" ';
+ $input .= ' [class]="\'menu-toggle main-header-menu-toggle ast-mobile-menu-buttons-minimal\' + ( astraAmpMenuExpanded ? \' toggled\' : \'\' )" ';
+ $input .= ' aria-expanded="false" ';
+ $input .= ' [aria-expanded]="astraAmpMenuExpanded ? \'true\' : \'false\'" ';
+
+ return $input;
+ }
+
+ }
+endif;
+
+/**
+* Kicking this off by calling 'get_instance()' method
+*/
+Astra_AMP::get_instance();
|