diff options
author | Zach van Rijn <me@zv.io> | 2021-07-21 16:19:29 -0500 |
---|---|---|
committer | Zach van Rijn <me@zv.io> | 2021-07-21 16:19:29 -0500 |
commit | 69c17f9c1942fd0d6a5ea941636e87723b8a6fe2 (patch) | |
tree | e1d0212147048204b0eede0aa6ff79849ed479da /inc/core/class-astra-enqueue-scripts.php | |
parent | 74a7109a2a5ab0d191f26c917ae69e46f0d83b32 (diff) | |
download | blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.tar.gz blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.tar.bz2 blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.tar.xz blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.zip |
dos2unix on all .php files, begin paring down admin page and site branding.
Diffstat (limited to 'inc/core/class-astra-enqueue-scripts.php')
-rw-r--r-- | inc/core/class-astra-enqueue-scripts.php | 778 |
1 files changed, 389 insertions, 389 deletions
diff --git a/inc/core/class-astra-enqueue-scripts.php b/inc/core/class-astra-enqueue-scripts.php index c249445..9772037 100644 --- a/inc/core/class-astra-enqueue-scripts.php +++ b/inc/core/class-astra-enqueue-scripts.php @@ -1,389 +1,389 @@ -<?php
-/**
- * Loader Functions
- *
- * @package Astra
- * @author Astra
- * @copyright Copyright (c) 2020, Astra
- * @link https://wpastra.com/
- * @since Astra 1.0.0
- */
-
-if ( ! defined( 'ABSPATH' ) ) {
- exit;
-}
-
-/**
- * Theme Enqueue Scripts
- */
-if ( ! class_exists( 'Astra_Enqueue_Scripts' ) ) {
-
- /**
- * Theme Enqueue Scripts
- */
- class Astra_Enqueue_Scripts {
-
- /**
- * Class styles.
- *
- * @access public
- * @var $styles Enqueued styles.
- */
- public static $styles;
-
- /**
- * Class scripts.
- *
- * @access public
- * @var $scripts Enqueued scripts.
- */
- public static $scripts;
-
- /**
- * Constructor
- */
- public function __construct() {
-
- add_action( 'astra_get_fonts', array( $this, 'add_fonts' ), 1 );
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
- add_action( 'enqueue_block_editor_assets', array( $this, 'gutenberg_assets' ) );
- add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
- add_action( 'wp_print_footer_scripts', array( $this, 'astra_skip_link_focus_fix' ) );
- add_filter( 'gallery_style', array( $this, 'enqueue_galleries_style' ) );
- }
-
- /**
- * Fix skip link focus in IE11.
- *
- * This does not enqueue the script because it is tiny and because it is only for IE11,
- * thus it does not warrant having an entire dedicated blocking script being loaded.
- *
- * @link https://git.io/vWdr2
- * @link https://github.com/WordPress/twentynineteen/pull/47/files
- * @link https://github.com/ampproject/amphtml/issues/18671
- */
- public function astra_skip_link_focus_fix() {
- // Skip printing script on AMP content, since accessibility fix is covered by AMP framework.
- if ( astra_is_amp_endpoint() ) {
- return;
- }
-
- // The following is minified via `terser --compress --mangle -- js/skip-link-focus-fix.js`.
- ?>
- <script>
- /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1);
- </script>
- <?php
- }
-
- /**
- * Admin body classes.
- *
- * Body classes to be added to <body> tag in admin page
- *
- * @param String $classes body classes returned from the filter.
- * @return String body classes to be added to <body> tag in admin page
- */
- public function admin_body_class( $classes ) {
-
- global $pagenow;
- $screen = get_current_screen();
-
- if ( ( ( 'post-new.php' == $pagenow || 'post.php' == $pagenow ) && ( defined( 'ASTRA_ADVANCED_HOOKS_POST_TYPE' ) && ASTRA_ADVANCED_HOOKS_POST_TYPE == $screen->post_type ) ) || 'widgets.php' == $pagenow ) {
- return;
- }
-
- $post_id = get_the_ID();
-
- if ( $post_id ) {
- $meta_content_layout = get_post_meta( $post_id, 'site-content-layout', true );
- }
-
- if ( ( isset( $meta_content_layout ) && ! empty( $meta_content_layout ) ) && 'default' !== $meta_content_layout ) {
- $content_layout = $meta_content_layout;
- } else {
- $content_layout = astra_get_option( 'site-content-layout' );
- }
-
- if ( 'content-boxed-container' == $content_layout ) {
- $classes .= ' ast-separate-container';
- } elseif ( 'boxed-container' == $content_layout ) {
- $classes .= ' ast-separate-container ast-two-container';
- } elseif ( 'page-builder' == $content_layout ) {
- $classes .= ' ast-page-builder-template';
- } elseif ( 'plain-container' == $content_layout ) {
- $classes .= ' ast-plain-container';
- }
-
- $site_layout = astra_get_option( 'site-layout' );
- if ( 'ast-box-layout' === $site_layout ) {
- $classes .= ' ast-max-width-layout';
- }
-
- $classes .= ' ast-' . astra_page_layout();
-
- return $classes;
- }
-
- /**
- * List of all assets.
- *
- * @return array assets array.
- */
- public static function theme_assets() {
-
- $default_assets = array(
- // handle => location ( in /assets/js/ ) ( without .js ext).
- 'js' => array(
- 'astra-theme-js' => 'style',
- ),
- // handle => location ( in /assets/css/ ) ( without .css ext).
- 'css' => array(
- 'astra-theme-css' => Astra_Builder_Helper::apply_flex_based_css() ? 'style-flex' : 'style',
- ),
- );
-
- if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) {
-
- $default_assets = array(
- // handle => location ( in /assets/js/ ) ( without .js ext).
- 'js' => array(
- 'astra-theme-js' => 'frontend',
- ),
- // handle => location ( in /assets/css/ ) ( without .css ext).
- 'css' => array(
- 'astra-theme-css' => Astra_Builder_Helper::apply_flex_based_css() ? 'main' : 'frontend',
- ),
- );
-
- if ( Astra_Builder_Helper::is_component_loaded( 'edd-cart', 'header' ) ||
- Astra_Builder_Helper::is_component_loaded( 'woo-cart', 'header' ) ) {
- $default_assets['js']['astra-mobile-cart'] = 'mobile-cart';
- }
- }
- return apply_filters( 'astra_theme_assets', $default_assets );
- }
-
- /**
- * Add Fonts
- */
- public function add_fonts() {
-
- $font_family = astra_get_option( 'body-font-family' );
- $font_weight = astra_get_option( 'body-font-weight' );
- $font_variant = astra_get_option( 'body-font-variant' );
-
- Astra_Fonts::add_font( $font_family, $font_weight );
- Astra_Fonts::add_font( $font_family, $font_variant );
-
- // Render headings font.
- $heading_font_family = astra_get_option( 'headings-font-family' );
- $heading_font_weight = astra_get_option( 'headings-font-weight' );
- $heading_font_variant = astra_get_option( 'headings-font-variant' );
-
- Astra_Fonts::add_font( $heading_font_family, $heading_font_weight );
- Astra_Fonts::add_font( $heading_font_family, $heading_font_variant );
- }
-
- /**
- * Enqueue Scripts
- */
- public function enqueue_scripts() {
-
- if ( false === self::enqueue_theme_assets() ) {
- return;
- }
-
- /* Directory and Extension */
- $file_prefix = ( SCRIPT_DEBUG ) ? '' : '.min';
- $dir_name = ( SCRIPT_DEBUG ) ? 'unminified' : 'minified';
-
- $js_uri = ASTRA_THEME_URI . 'assets/js/' . $dir_name . '/';
- $css_uri = ASTRA_THEME_URI . 'assets/css/' . $dir_name . '/';
-
- /**
- * IE Only Js and CSS Files.
- */
- // Flexibility.js for flexbox IE10 support.
- wp_enqueue_script( 'astra-flexibility', $js_uri . 'flexibility' . $file_prefix . '.js', array(), ASTRA_THEME_VERSION, false );
- wp_add_inline_script( 'astra-flexibility', 'flexibility(document.documentElement);' );
- wp_script_add_data( 'astra-flexibility', 'conditional', 'IE' );
-
- // Polyfill for CustomEvent for IE.
- wp_register_script( 'astra-customevent', $js_uri . 'custom-events-polyfill' . $file_prefix . '.js', array(), ASTRA_THEME_VERSION, false );
- wp_register_style( 'astra-galleries-css', $css_uri . 'galleries' . $file_prefix . '.css', array(), ASTRA_THEME_VERSION, 'all' );
- // All assets.
- $all_assets = self::theme_assets();
- $styles = $all_assets['css'];
- $scripts = $all_assets['js'];
-
- if ( is_array( $styles ) && ! empty( $styles ) ) {
- // Register & Enqueue Styles.
- foreach ( $styles as $key => $style ) {
-
- $dependency = array();
-
- // Add dynamic CSS dependency for all styles except for theme's style.css.
- if ( 'astra-theme-css' !== $key && class_exists( 'Astra_Cache_Base' ) ) {
- if ( ! Astra_Cache_Base::inline_assets() ) {
- $dependency[] = 'astra-theme-dynamic';
- }
- }
-
- // Generate CSS URL.
- $css_file = $css_uri . $style . $file_prefix . '.css';
-
- // Register.
- wp_register_style( $key, $css_file, $dependency, ASTRA_THEME_VERSION, 'all' );
-
- // Enqueue.
- wp_enqueue_style( $key );
-
- // RTL support.
- wp_style_add_data( $key, 'rtl', 'replace' );
- }
- }
-
- // Fonts - Render Fonts.
- Astra_Fonts::render_fonts();
-
- /**
- * Inline styles
- */
-
- add_filter( 'astra_dynamic_theme_css', array( 'Astra_Dynamic_CSS', 'return_output' ) );
- add_filter( 'astra_dynamic_theme_css', array( 'Astra_Dynamic_CSS', 'return_meta_output' ) );
-
- $menu_animation = astra_get_option( 'header-main-submenu-container-animation' );
-
- // Submenu Container Animation for header builder.
- if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) {
-
- for ( $index = 1; $index <= Astra_Builder_Helper::$component_limit; $index++ ) {
-
- $menu_animation_enable = astra_get_option( 'header-menu' . $index . '-submenu-container-animation' );
-
- if ( Astra_Builder_Helper::is_component_loaded( 'menu-' . $index, 'header' ) && ! empty( $menu_animation_enable ) ) {
- $menu_animation = 'is_animated';
- break;
- }
- }
- }
-
- $rtl = ( is_rtl() ) ? '-rtl' : '';
-
- if ( ! empty( $menu_animation ) || is_customize_preview() ) {
- if ( class_exists( 'Astra_Cache' ) ) {
- Astra_Cache::add_css_file( ASTRA_THEME_DIR . 'assets/css/' . $dir_name . '/menu-animation' . $rtl . $file_prefix . '.css' );
- } else {
- wp_register_style( 'astra-menu-animation', $css_uri . 'menu-animation' . $file_prefix . '.css', null, ASTRA_THEME_VERSION, 'all' );
- wp_enqueue_style( 'astra-menu-animation' );
- }
- }
-
- if ( ! class_exists( 'Astra_Cache' ) ) {
- $theme_css_data = apply_filters( 'astra_dynamic_theme_css', '' );
- wp_add_inline_style( 'astra-theme-css', $theme_css_data );
- }
-
- if ( astra_is_amp_endpoint() ) {
- return;
- }
-
- // Comment assets.
- if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
- wp_enqueue_script( 'comment-reply' );
- }
-
- if ( is_array( $scripts ) && ! empty( $scripts ) ) {
-
- // Register & Enqueue Scripts.
- foreach ( $scripts as $key => $script ) {
-
- // Register.
- wp_register_script( $key, $js_uri . $script . $file_prefix . '.js', array(), ASTRA_THEME_VERSION, true );
-
- // Enqueue.
- wp_enqueue_script( $key );
- }
- }
-
- $astra_localize = array(
- 'break_point' => astra_header_break_point(), // Header Break Point.
- 'isRtl' => is_rtl(),
- );
-
- wp_localize_script( 'astra-theme-js', 'astra', apply_filters( 'astra_theme_js_localize', $astra_localize ) );
- }
-
- /**
- * Trim CSS
- *
- * @since 1.0.0
- * @param string $css CSS content to trim.
- * @return string
- */
- public static function trim_css( $css = '' ) {
-
- // Trim white space for faster page loading.
- if ( ! empty( $css ) ) {
- $css = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css );
- $css = str_replace( array( "\r\n", "\r", "\n", "\t", ' ', ' ', ' ' ), '', $css );
- $css = str_replace( ', ', ',', $css );
- }
-
- return $css;
- }
-
- /**
- * Enqueue Gutenberg assets.
- *
- * @since 1.5.2
- *
- * @return void
- */
- public function gutenberg_assets() {
- /* Directory and Extension */
- $rtl = '';
- if ( is_rtl() ) {
- $rtl = '-rtl';
- }
-
- $css_uri = ASTRA_THEME_URI . 'inc/assets/css/block-editor-styles' . $rtl . '.css';
- $js_uri = ASTRA_THEME_URI . 'inc/assets/js/block-editor-script.js';
-
- wp_enqueue_style( 'astra-block-editor-styles', $css_uri, false, ASTRA_THEME_VERSION, 'all' );
- wp_enqueue_script( 'astra-block-editor-script', $js_uri, false, ASTRA_THEME_VERSION, 'all' );
-
- // Render fonts in Gutenberg layout.
- Astra_Fonts::render_fonts();
-
- wp_add_inline_style( 'astra-block-editor-styles', apply_filters( 'astra_block_editor_dynamic_css', Gutenberg_Editor_CSS::get_css() ) );
- }
-
- /**
- * Function to check if enqueuing of Astra assets are disabled.
- *
- * @since 2.1.0
- * @return boolean
- */
- public static function enqueue_theme_assets() {
- return apply_filters( 'astra_enqueue_theme_assets', true );
- }
-
- /**
- * Enqueue galleries relates CSS on gallery_style filter.
- *
- * @param string $gallery_style gallery style and div.
- * @since 3.5.0
- * @return string
- */
- public function enqueue_galleries_style( $gallery_style ) {
- wp_enqueue_style( 'astra-galleries-css' );
- return $gallery_style;
- }
-
- }
-
- new Astra_Enqueue_Scripts();
-}
+<?php +/** + * Loader Functions + * + * @package Astra + * @author Astra + * @copyright Copyright (c) 2020, Astra + * @link https://wpastra.com/ + * @since Astra 1.0.0 + */ + +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +/** + * Theme Enqueue Scripts + */ +if ( ! class_exists( 'Astra_Enqueue_Scripts' ) ) { + + /** + * Theme Enqueue Scripts + */ + class Astra_Enqueue_Scripts { + + /** + * Class styles. + * + * @access public + * @var $styles Enqueued styles. + */ + public static $styles; + + /** + * Class scripts. + * + * @access public + * @var $scripts Enqueued scripts. + */ + public static $scripts; + + /** + * Constructor + */ + public function __construct() { + + add_action( 'astra_get_fonts', array( $this, 'add_fonts' ), 1 ); + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); + add_action( 'enqueue_block_editor_assets', array( $this, 'gutenberg_assets' ) ); + add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) ); + add_action( 'wp_print_footer_scripts', array( $this, 'astra_skip_link_focus_fix' ) ); + add_filter( 'gallery_style', array( $this, 'enqueue_galleries_style' ) ); + } + + /** + * Fix skip link focus in IE11. + * + * This does not enqueue the script because it is tiny and because it is only for IE11, + * thus it does not warrant having an entire dedicated blocking script being loaded. + * + * @link https://git.io/vWdr2 + * @link https://github.com/WordPress/twentynineteen/pull/47/files + * @link https://github.com/ampproject/amphtml/issues/18671 + */ + public function astra_skip_link_focus_fix() { + // Skip printing script on AMP content, since accessibility fix is covered by AMP framework. + if ( astra_is_amp_endpoint() ) { + return; + } + + // The following is minified via `terser --compress --mangle -- js/skip-link-focus-fix.js`. + ?> + <script> + /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); + </script> + <?php + } + + /** + * Admin body classes. + * + * Body classes to be added to <body> tag in admin page + * + * @param String $classes body classes returned from the filter. + * @return String body classes to be added to <body> tag in admin page + */ + public function admin_body_class( $classes ) { + + global $pagenow; + $screen = get_current_screen(); + + if ( ( ( 'post-new.php' == $pagenow || 'post.php' == $pagenow ) && ( defined( 'ASTRA_ADVANCED_HOOKS_POST_TYPE' ) && ASTRA_ADVANCED_HOOKS_POST_TYPE == $screen->post_type ) ) || 'widgets.php' == $pagenow ) { + return; + } + + $post_id = get_the_ID(); + + if ( $post_id ) { + $meta_content_layout = get_post_meta( $post_id, 'site-content-layout', true ); + } + + if ( ( isset( $meta_content_layout ) && ! empty( $meta_content_layout ) ) && 'default' !== $meta_content_layout ) { + $content_layout = $meta_content_layout; + } else { + $content_layout = astra_get_option( 'site-content-layout' ); + } + + if ( 'content-boxed-container' == $content_layout ) { + $classes .= ' ast-separate-container'; + } elseif ( 'boxed-container' == $content_layout ) { + $classes .= ' ast-separate-container ast-two-container'; + } elseif ( 'page-builder' == $content_layout ) { + $classes .= ' ast-page-builder-template'; + } elseif ( 'plain-container' == $content_layout ) { + $classes .= ' ast-plain-container'; + } + + $site_layout = astra_get_option( 'site-layout' ); + if ( 'ast-box-layout' === $site_layout ) { + $classes .= ' ast-max-width-layout'; + } + + $classes .= ' ast-' . astra_page_layout(); + + return $classes; + } + + /** + * List of all assets. + * + * @return array assets array. + */ + public static function theme_assets() { + + $default_assets = array( + // handle => location ( in /assets/js/ ) ( without .js ext). + 'js' => array( + 'astra-theme-js' => 'style', + ), + // handle => location ( in /assets/css/ ) ( without .css ext). + 'css' => array( + 'astra-theme-css' => Astra_Builder_Helper::apply_flex_based_css() ? 'style-flex' : 'style', + ), + ); + + if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) { + + $default_assets = array( + // handle => location ( in /assets/js/ ) ( without .js ext). + 'js' => array( + 'astra-theme-js' => 'frontend', + ), + // handle => location ( in /assets/css/ ) ( without .css ext). + 'css' => array( + 'astra-theme-css' => Astra_Builder_Helper::apply_flex_based_css() ? 'main' : 'frontend', + ), + ); + + if ( Astra_Builder_Helper::is_component_loaded( 'edd-cart', 'header' ) || + Astra_Builder_Helper::is_component_loaded( 'woo-cart', 'header' ) ) { + $default_assets['js']['astra-mobile-cart'] = 'mobile-cart'; + } + } + return apply_filters( 'astra_theme_assets', $default_assets ); + } + + /** + * Add Fonts + */ + public function add_fonts() { + + $font_family = astra_get_option( 'body-font-family' ); + $font_weight = astra_get_option( 'body-font-weight' ); + $font_variant = astra_get_option( 'body-font-variant' ); + + Astra_Fonts::add_font( $font_family, $font_weight ); + Astra_Fonts::add_font( $font_family, $font_variant ); + + // Render headings font. + $heading_font_family = astra_get_option( 'headings-font-family' ); + $heading_font_weight = astra_get_option( 'headings-font-weight' ); + $heading_font_variant = astra_get_option( 'headings-font-variant' ); + + Astra_Fonts::add_font( $heading_font_family, $heading_font_weight ); + Astra_Fonts::add_font( $heading_font_family, $heading_font_variant ); + } + + /** + * Enqueue Scripts + */ + public function enqueue_scripts() { + + if ( false === self::enqueue_theme_assets() ) { + return; + } + + /* Directory and Extension */ + $file_prefix = ( SCRIPT_DEBUG ) ? '' : '.min'; + $dir_name = ( SCRIPT_DEBUG ) ? 'unminified' : 'minified'; + + $js_uri = ASTRA_THEME_URI . 'assets/js/' . $dir_name . '/'; + $css_uri = ASTRA_THEME_URI . 'assets/css/' . $dir_name . '/'; + + /** + * IE Only Js and CSS Files. + */ + // Flexibility.js for flexbox IE10 support. + wp_enqueue_script( 'astra-flexibility', $js_uri . 'flexibility' . $file_prefix . '.js', array(), ASTRA_THEME_VERSION, false ); + wp_add_inline_script( 'astra-flexibility', 'flexibility(document.documentElement);' ); + wp_script_add_data( 'astra-flexibility', 'conditional', 'IE' ); + + // Polyfill for CustomEvent for IE. + wp_register_script( 'astra-customevent', $js_uri . 'custom-events-polyfill' . $file_prefix . '.js', array(), ASTRA_THEME_VERSION, false ); + wp_register_style( 'astra-galleries-css', $css_uri . 'galleries' . $file_prefix . '.css', array(), ASTRA_THEME_VERSION, 'all' ); + // All assets. + $all_assets = self::theme_assets(); + $styles = $all_assets['css']; + $scripts = $all_assets['js']; + + if ( is_array( $styles ) && ! empty( $styles ) ) { + // Register & Enqueue Styles. + foreach ( $styles as $key => $style ) { + + $dependency = array(); + + // Add dynamic CSS dependency for all styles except for theme's style.css. + if ( 'astra-theme-css' !== $key && class_exists( 'Astra_Cache_Base' ) ) { + if ( ! Astra_Cache_Base::inline_assets() ) { + $dependency[] = 'astra-theme-dynamic'; + } + } + + // Generate CSS URL. + $css_file = $css_uri . $style . $file_prefix . '.css'; + + // Register. + wp_register_style( $key, $css_file, $dependency, ASTRA_THEME_VERSION, 'all' ); + + // Enqueue. + wp_enqueue_style( $key ); + + // RTL support. + wp_style_add_data( $key, 'rtl', 'replace' ); + } + } + + // Fonts - Render Fonts. + Astra_Fonts::render_fonts(); + + /** + * Inline styles + */ + + add_filter( 'astra_dynamic_theme_css', array( 'Astra_Dynamic_CSS', 'return_output' ) ); + add_filter( 'astra_dynamic_theme_css', array( 'Astra_Dynamic_CSS', 'return_meta_output' ) ); + + $menu_animation = astra_get_option( 'header-main-submenu-container-animation' ); + + // Submenu Container Animation for header builder. + if ( true === Astra_Builder_Helper::$is_header_footer_builder_active ) { + + for ( $index = 1; $index <= Astra_Builder_Helper::$component_limit; $index++ ) { + + $menu_animation_enable = astra_get_option( 'header-menu' . $index . '-submenu-container-animation' ); + + if ( Astra_Builder_Helper::is_component_loaded( 'menu-' . $index, 'header' ) && ! empty( $menu_animation_enable ) ) { + $menu_animation = 'is_animated'; + break; + } + } + } + + $rtl = ( is_rtl() ) ? '-rtl' : ''; + + if ( ! empty( $menu_animation ) || is_customize_preview() ) { + if ( class_exists( 'Astra_Cache' ) ) { + Astra_Cache::add_css_file( ASTRA_THEME_DIR . 'assets/css/' . $dir_name . '/menu-animation' . $rtl . $file_prefix . '.css' ); + } else { + wp_register_style( 'astra-menu-animation', $css_uri . 'menu-animation' . $file_prefix . '.css', null, ASTRA_THEME_VERSION, 'all' ); + wp_enqueue_style( 'astra-menu-animation' ); + } + } + + if ( ! class_exists( 'Astra_Cache' ) ) { + $theme_css_data = apply_filters( 'astra_dynamic_theme_css', '' ); + wp_add_inline_style( 'astra-theme-css', $theme_css_data ); + } + + if ( astra_is_amp_endpoint() ) { + return; + } + + // Comment assets. + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } + + if ( is_array( $scripts ) && ! empty( $scripts ) ) { + + // Register & Enqueue Scripts. + foreach ( $scripts as $key => $script ) { + + // Register. + wp_register_script( $key, $js_uri . $script . $file_prefix . '.js', array(), ASTRA_THEME_VERSION, true ); + + // Enqueue. + wp_enqueue_script( $key ); + } + } + + $astra_localize = array( + 'break_point' => astra_header_break_point(), // Header Break Point. + 'isRtl' => is_rtl(), + ); + + wp_localize_script( 'astra-theme-js', 'astra', apply_filters( 'astra_theme_js_localize', $astra_localize ) ); + } + + /** + * Trim CSS + * + * @since 1.0.0 + * @param string $css CSS content to trim. + * @return string + */ + public static function trim_css( $css = '' ) { + + // Trim white space for faster page loading. + if ( ! empty( $css ) ) { + $css = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css ); + $css = str_replace( array( "\r\n", "\r", "\n", "\t", ' ', ' ', ' ' ), '', $css ); + $css = str_replace( ', ', ',', $css ); + } + + return $css; + } + + /** + * Enqueue Gutenberg assets. + * + * @since 1.5.2 + * + * @return void + */ + public function gutenberg_assets() { + /* Directory and Extension */ + $rtl = ''; + if ( is_rtl() ) { + $rtl = '-rtl'; + } + + $css_uri = ASTRA_THEME_URI . 'inc/assets/css/block-editor-styles' . $rtl . '.css'; + $js_uri = ASTRA_THEME_URI . 'inc/assets/js/block-editor-script.js'; + + wp_enqueue_style( 'astra-block-editor-styles', $css_uri, false, ASTRA_THEME_VERSION, 'all' ); + wp_enqueue_script( 'astra-block-editor-script', $js_uri, false, ASTRA_THEME_VERSION, 'all' ); + + // Render fonts in Gutenberg layout. + Astra_Fonts::render_fonts(); + + wp_add_inline_style( 'astra-block-editor-styles', apply_filters( 'astra_block_editor_dynamic_css', Gutenberg_Editor_CSS::get_css() ) ); + } + + /** + * Function to check if enqueuing of Astra assets are disabled. + * + * @since 2.1.0 + * @return boolean + */ + public static function enqueue_theme_assets() { + return apply_filters( 'astra_enqueue_theme_assets', true ); + } + + /** + * Enqueue galleries relates CSS on gallery_style filter. + * + * @param string $gallery_style gallery style and div. + * @since 3.5.0 + * @return string + */ + public function enqueue_galleries_style( $gallery_style ) { + wp_enqueue_style( 'astra-galleries-css' ); + return $gallery_style; + } + + } + + new Astra_Enqueue_Scripts(); +} |