Viewing File: /home/maglabs/exclusive/wp-content/plugins/g5-element/inc/assets.class.php

<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

if ( ! class_exists( 'G5Element_Assets' ) ) {
	class G5Element_Assets {
		private static $_instance;

		public static function getInstance() {
			if ( self::$_instance == null ) {
				self::$_instance = new self();
			}

			return self::$_instance;
		}

		public function init() {
			add_action( 'init', array( $this, 'register_assets' ) );
			add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_assets' ) );
			add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_backend_assets' ) );
			if ( ! is_admin() ) {
				add_action( 'template_redirect', array( $this, 'global_custom_css' ), 20 );
			}

			//add_action( 'vc_frontend_editor_render', array( $this, 'enqueueJsFrontend' ) );
		}

		public function enqueueJsFrontend() {
			wp_enqueue_script( 'slider-container-frontend-editor', G5ELEMENT()->asset_url( 'assets/frontend-editor/slider-container.min.js'), array( 'jquery' ), false, true );
		}


		public function shortcode_assets() {
			if ( G5CORE()->cache()->exists( 'g5element_shortcode_assets_list' ) ) {
				return G5CORE()->cache()->get( 'g5element_shortcode_assets_list', array() );
			}
			$shortcode_list = apply_filters( 'g5element_shortcode_assets', array(
				'banner'                            => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/banner.min.css' ),
					'js'  => '',
				),
				'button'                            => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/button.min.css' ),
					'js'  => '',
				),
				'breadcrumbs'                       => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/breadcrumbs.min.css' ),
					'js'  => '',
				),
				'client_logo'                       => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/client-logo.min.css' ),
					'js'  => '',
				),
				'counter'                           => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/counter.min.css' ),
					'js'  => G5ELEMENT()->asset_url( 'assets/shortcode-js/countUp.min.js' ),
				),
				'count_down'                        => array(
					'css'     => G5ELEMENT()->asset_url( 'assets/shortcode-css/count-down.min.css' ),
					'js'      => G5ELEMENT()->asset_url( 'assets/shortcode-js/count-down.min.js' ),
					'js_deps' => array( 'jquery-knob', 'jquery-countdown' ),
				),
				'google_map'                        => array(
					'css'     => G5ELEMENT()->asset_url( 'assets/shortcode-css/google-map.min.css' ),
					'js'      => G5ELEMENT()->asset_url( 'assets/shortcode-js/google-map.min.js' ),
					'js_deps' => array( 'gmap3' ),
				),
				'heading'                           => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/heading.min.css' ),
					'js'  => '',
				),
				'icon_box'                          => array(
					'css'     => G5ELEMENT()->asset_url( 'assets/shortcode-css/icon-box.min.css' ),
					'js'      => G5ELEMENT()->asset_url( 'assets/shortcode-js/icon-box.min.js' ),
					'js_deps' => array( 'jquery-vivus' ),
				),
				'image_box'                         => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/image-box.min.css' ),
					'js'  => '',
				),
				'layout_container'                  => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/layout-container.min.css' ),
				),
				'list'                              => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/list.min.css' ),
					'js'  => '',
				),
				'our_team'                          => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/our-team.min.css' ),
					'js'  => '',
				),
				'page_title'                        => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/page-title.min.css' ),
					'js'  => '',
				),
				'pricing_table'                     => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/pricing-table.min.css' ),
					'js'  => '',
				),
				'slider_container'                  => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/slider-container.min.css' ),
					'js'  => G5ELEMENT()->asset_url( 'assets/shortcode-js/slider-container.min.js' ),
				),
				'social_icons'                      => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/social-icons.min.css' ),
					'js'  => '',
				),
				'video'                             => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/video.min.css' ),
					'js'  => '',
				),
				'testimonial'                       => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/testimonial.min.css' ),
					'js'  => '',
				),
				'gallery'                       => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/gallery.min.css' ),
					'js'  => '',
				),
				'image_marker'                      => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/image-marker.min.css' ),
					'js'  => G5ELEMENT()->asset_url( 'assets/shortcode-js/image-marker.min.js' ),
				),
				'map_box'                           => array(
					'css'      => G5ELEMENT()->asset_url( 'assets/shortcode-css/map-box.min.css' ),
					'js'       => G5ELEMENT()->asset_url( 'assets/shortcode-js/map-box.min.js' ),
					'js_deps'  => array( 'mapbox-gl' ),
					'css_deps' => array( 'mapbox-gl' )
				),
				'bullet_one_page_scroll_navigation' => array(
					'css' => G5ELEMENT()->asset_url( 'assets/shortcode-css/bullet-one-page-scroll-navigation.min.css' ),
					'js'  => G5ELEMENT()->asset_url( 'assets/shortcode-js/bullet-one-page-scroll-navigation.min.js' ),
				),
			) );

			G5CORE()->cache()->set( 'g5element_shortcode_assets_list', $shortcode_list );

			return $shortcode_list;
		}

		public function enqueue_assets_for_shortcode( $shortcode_name ) {
			$shortcode_list = $this->shortcode_assets();
			$shortcode_src  = isset( $shortcode_list[ $shortcode_name ] ) ? $shortcode_list[ $shortcode_name ] : array();

			if ( ! empty( $shortcode_src ) ) {
				if ( isset( $shortcode_src['css'] ) && ! empty( $shortcode_src['css'] ) ) {
					wp_enqueue_style( G5ELEMENT()->assets_handle( $shortcode_name ) );
				}
				if ( isset( $shortcode_src['js'] ) && ! empty( $shortcode_src['js'] ) ) {
					wp_enqueue_script( G5ELEMENT()->assets_handle( $shortcode_name ) );
				}
			}
		}

		public function register_assets() {
			// Vendor assets
			wp_register_script( 'jquery-parallax', G5ELEMENT()->asset_url( 'assets/vendors/parallax/jquery.parallax.min.js' ), array( 'jquery' ), '1.1.3', true );
			wp_register_script( 'jquery-countdown', G5ELEMENT()->asset_url( 'assets/vendors/countdown/countdown.min.js' ), array( 'jquery' ), '2.2.0', true );
			wp_register_script( 'jquery-knob', G5ELEMENT()->asset_url( 'assets/vendors/knob/knob.min.js' ), array( 'jquery' ), '1.2.12', true );
			//wp_register_script( 'jquery-waypoints', G5ELEMENT()->asset_url( 'assets/vendors/waypoints/jquery.waypoints.min.js' ), array( 'jquery' ), '4.0.1', true );
			wp_register_script( 'gmap3', G5ELEMENT()->asset_url( 'assets/vendors/gmap3/gmap3.min.js' ), array( 'jquery' ), G5ELEMENT()->plugin_ver(), true );
			wp_register_script( 'jquery-vivus', G5ELEMENT()->asset_url( 'assets/vendors/vivus/vivus.min.js' ), array( 'jquery' ), '0.4.5', true );


			wp_register_script( 'mapbox-gl', 'https://api.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.js', array(), '0.52.0', true );
			wp_register_style( 'mapbox-gl', 'https://api.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.css', array(), '0.52.0' );
			// Shortcode assets
			foreach ( $this->shortcode_assets() as $shortcode_name => $shortcode_src ) {
				if ( ! empty( $shortcode_src ) ) {
					if ( isset( $shortcode_src['css'] ) && ! empty( $shortcode_src['css'] ) ) {
						wp_register_style( G5ELEMENT()->assets_handle( $shortcode_name ), $shortcode_src['css'],
							isset( $shortcode_src['css_deps'] ) ? $shortcode_src['css_deps'] : array(),
							G5ELEMENT()->plugin_ver() );
					}
					if ( isset( $shortcode_src['js'] ) && ! empty( $shortcode_src['js'] ) ) {
						wp_register_script( G5ELEMENT()->assets_handle( $shortcode_name ), $shortcode_src['js'],
							isset( $shortcode_src['js_deps'] ) ? $shortcode_src['js_deps'] : array( 'jquery' ),
							G5ELEMENT()->plugin_ver(), true );
					}
				}
			}

			// Plugin assets
			wp_register_style( G5ELEMENT()->assets_handle( 'vc-backend' ), G5ELEMENT()->asset_url( 'assets/css/vc-backend.min.css' ), array(), G5ELEMENT()->plugin_ver() );
			wp_register_script( G5ELEMENT()->assets_handle( 'vc-backend' ), G5ELEMENT()->asset_url( 'assets/js/vc-backend.min.js' ), array( 'jquery' ), G5ELEMENT()->plugin_ver(), true );

			wp_register_style( G5ELEMENT()->assets_handle( 'vc-frontend' ), G5ELEMENT()->asset_url( 'assets/css/vc-frontend.min.css' ), array(), G5ELEMENT()->plugin_ver() );
			wp_register_script( G5ELEMENT()->assets_handle( 'element' ), G5ELEMENT()->asset_url( 'assets/js/element.min.js' ), array( 'jquery' ), G5ELEMENT()->plugin_ver(), true );
		}


		public function enqueue_backend_assets( $hook ) {
			if ( ( ( $hook === 'post-new.php' ) || ( $hook === 'post.php' ) ) && class_exists( 'Vc_Manager' ) && Vc_Manager::getInstance()->backendEditor()->isValidPostType() ) {
				wp_enqueue_style( G5ELEMENT()->assets_handle( 'vc-backend' ) );
				wp_enqueue_script( G5ELEMENT()->assets_handle( 'vc-backend' ) );

				$id = 0;
				if ( $hook === 'post.php' ) {
					global $post;
					$id = $post->ID;
				}


				$custom_css = $this->admin_custom_css( $id );

				wp_add_inline_style( G5ELEMENT()->assets_handle( 'vc-backend' ), $custom_css );

			}
		}

		public function enqueue_assets() {
			wp_enqueue_script( 'jquery-parallax' );
			//wp_enqueue_script('jquery-waypoints');

			if ( is_singular() ) {
				global $post;
				if ( isset( $post ) && isset( $post->post_content ) ) {
					$this->enqueue_shortcode_assets( $post->post_content );
				}
			}


			$custom_css = '';

			$content_block_ids = g5core_get_content_block_ids();
			if ($content_block_ids != false) {
				foreach ( $content_block_ids as $content_block_id ) {
					if ( $content_block_id !== '' ) {

						$post_custom_css = get_post_meta( $content_block_id, '_wpb_post_custom_css', true );

						if ( ! empty( $post_custom_css ) ) {
							$custom_css .= $post_custom_css;
						}

						$shortcodes_custom_css = get_post_meta( $content_block_id, '_wpb_shortcodes_custom_css', true );
						if ( ! empty( $shortcodes_custom_css ) ) {
							$custom_css .= $shortcodes_custom_css;
						}

						$content = get_post_field( 'post_content', $content_block_id );
						G5ELEMENT()->assets()->enqueue_shortcode_assets( $content );
						wp_enqueue_style( 'js_composer_front' );
						wp_enqueue_script( 'wpb_composer_front_js' );
					}
				}
			}

			G5CORE()->custom_css()->addCss( $custom_css );


			wp_enqueue_style( G5ELEMENT()->assets_handle( 'vc-frontend' ) );
			wp_enqueue_script( G5ELEMENT()->assets_handle( 'element' ) );

			$mapbox_api_access_token = G5CORE()->options()->get_option( 'mapbox_api_access_token' );
			wp_localize_script( G5ELEMENT()->assets_handle( 'map_box' ), 'g5element_map_box_config', array(
				'accessToken' => $mapbox_api_access_token,

			) );
		}

		public function enqueue_shortcode_assets( $content ) {
			$shortcode_assets = $this->shortcode_assets();
			$pattern          = '/(\[g5element_' . implode( ')|(\[g5element_', array_keys( $shortcode_assets ) ) . ')/';

			if ( preg_match_all( $pattern, $content, $matchs ) ) {
				$shortcode_exists = array_unique( $matchs[0] );

				foreach ( $shortcode_exists as $shortcode_name ) {
					$shortcode_name = substr( $shortcode_name, 11 );

					$this->enqueue_assets_for_shortcode( $shortcode_name );
				}
			}
		}

		public function admin_custom_css( $id ) {

			if ( function_exists( 'G5CORE' ) ) {
				$prefix       = G5CORE()->meta_prefix;
				$color_preset = get_post_meta( $id, "{$prefix}color_preset", true );
				if ( ! empty( $color_preset ) ) {
					G5CORE()->options()->color()->set_preset( $color_preset );
				}
			}
			$accent_color          = G5CORE()->options()->color()->get_option( 'accent_color' );
			$accent_color_contract = g5core_color_contrast( $accent_color );

			$primary_color          = G5CORE()->options()->color()->get_option( 'primary_color' );
			$primary_color_contract = g5core_color_contrast( $primary_color );

			$secondary_color          = G5CORE()->options()->color()->get_option( 'secondary_color' );
			$secondary_color_contract = g5core_color_contrast( $secondary_color );

			$light_color          = G5CORE()->options()->color()->get_option( 'light_color' );
			$light_color_contract = g5core_color_contrast( $light_color );

			$dark_color          = G5CORE()->options()->color()->get_option( 'dark_color' );
			$dark_color_contract = g5core_color_contrast( $dark_color );

			$gray_color          = G5CORE()->options()->color()->get_option( 'gray_color' );
			$gray_color_contract = g5core_color_contrast( $gray_color );

			return <<<CUSTOM_CSS
				[data-vc-shortcode] .vc_colored-dropdown .accent {
					background-color: {$accent_color};
					color: {$accent_color_contract};
				}
				[data-vc-shortcode] .vc_colored-dropdown .primary {
					background-color: {$primary_color};
					color: {$primary_color_contract};
				}
				[data-vc-shortcode] .vc_colored-dropdown .secondary {
					background-color: {$secondary_color};
					color: {$secondary_color_contract};
				}
				[data-vc-shortcode] .vc_colored-dropdown .light {
					background-color: {$light_color};
					color: {$light_color_contract};
				}
				[data-vc-shortcode] .vc_colored-dropdown .dark {
					background-color: {$dark_color};
					color: {$dark_color_contract};
				}
				[data-vc-shortcode] .vc_colored-dropdown .gray {
					background-color: {$gray_color};
					color: {$gray_color_contract};
				}
CUSTOM_CSS;
		}

		public function global_custom_css() {
			G5CORE()->custom_css()->addCss( $this->vc_custom_site_color(), 'g5element_vc_custom_site_color' );
			G5CORE()->custom_css()->addCss( $this->vc_tab_css(), 'vc_tab_css' );
			G5CORE()->custom_css()->addCss( $this->vc_faq_css(), 'vc_faq_css' );
		}

		public function vc_custom_site_color() {
			$color_keys = array(
				'accent',
				'primary',
				'secondary',
			);
			$css        = '';
			foreach ( $color_keys as $key ) {
				$color      = G5CORE()->options()->color()->get_option( "{$key}_color" );
				$color_text = g5core_color_contrast( $color, '#fff', '#000' );

				$css .= <<<CUSTOM_CSS
					.vc_progress_bar .vc_general.vc_single_bar.vc_progress-bar-color-{$key} .vc_bar,
					.vc_progress_bar.vc_progress-bar-color-{$key} .vc_single_bar .vc_bar {
					    background-color: {$color};
					}
					.vc_progress_bar .vc_general.vc_single_bar.vc_progress-bar-color-{$key} .vc_label,
					.vc_progress_bar.vc_progress-bar-color-{$key} .vc_single_bar .vc_label {
					    color: $color_text;
					}
CUSTOM_CSS;
			}

			return $css;
		}


		private function vc_tab_css() {
			if ( is_singular() ) {
				global $post;
				if ( isset( $post ) && isset( $post->post_content ) ) {
					if ( g5element_shortcode_exists( 'vc_tta_', $post->post_content ) ) {
						$accent_color    = G5CORE()->options()->color()->get_option( 'accent_color' );
						$primary_color   = G5CORE()->options()->color()->get_option( 'primary_color' );
						$secondary_color = G5CORE()->options()->color()->get_option( 'secondary_color' );
						$custom_css      = '';
						$custom_css      .= $this->get_vc_tab_css( 'accent', $accent_color, '#f0f0f0', '#666', g5core_color_contrast( $accent_color, '#fff', '#1b1b1b' ) );
						$custom_css      .= $this->get_vc_tab_css( 'primary', $primary_color, '#f0f0f0', '#666', g5core_color_contrast( $primary_color, '#fff', '#1b1b1b' ) );
						$custom_css      .= $this->get_vc_tab_css( 'secondary', $secondary_color, '#f0f0f0', '#666', g5core_color_contrast( $secondary_color, '#fff', '#1b1b1b' ) );
						$custom_css      .= 'body.wpb-js-composer .vc_tta.vc_tta-o-no-fill .vc_tta-panels .vc_tta-panel-body {border-color: transparent;background-color: transparent;}';

						return $custom_css;
					}
				}
			}

			return '';
		}

		private function get_vc_tab_css( $color_name, $color_code, $panel_bg_color, $panel_title_color, $panel_contrast_color ) {
			$color_code_darken_10     = g5core_color_darken( $color_code, '10%' );
			$color_code_darken_15     = g5core_color_darken( $color_code, '15%' );
			$panel_bg_color_darken_10 = g5core_color_darken( $panel_bg_color, '10%' );


			return <<<CUSTOM_CSS
        body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-heading {
		border-color: {$color_code_darken_10};
		background-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-heading:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-heading:hover {
		background-color: {$color_code_darken_10}
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-title>a {
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel.vc_active .vc_tta-panel-heading {
		border-color: {$panel_bg_color_darken_10};
		background-color: {$panel_bg_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel.vc_active .vc_tta-panel-title>a {
		color: {$panel_title_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-body {
		background-color: {$panel_bg_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-body,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-body::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-panel .vc_tta-panel-body::before {
		border-color: {$panel_bg_color_darken_10};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-controls-icon::before {
		border-color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::before {
		border-color: {$panel_title_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-tab>a {
		border-color: {$color_code_darken_10};
		background-color: $color_code;
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-tab>a:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-tab>a:hover {
		background-color: {$color_code_darken_15};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic .vc_tta-tab.vc_active>a {
		border-color: {$panel_bg_color_darken_10};
		background-color: {$panel_bg_color};
		color: {$panel_title_color};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels {
		background-color: {$panel_bg_color};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels,body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels::after,body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels::before,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels::after,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels::before {
		border-color: {$panel_bg_color_darken_10};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
		border-color: transparent;
		background-color: transparent;
	}

	@media (min-width: 768px) {
		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels {
			background-color:{$panel_bg_color};
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels::before {
			border-color: {$panel_bg_color_darken_10};
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-classic.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
			border-color: transparent;
			background-color: transparent;
		}
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-heading {
		border-color: {$color_code_darken_10};
		background-color: $color_code;
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-heading:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-heading:hover {
		background-color: {$color_code_darken_10};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-title>a {
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel.vc_active .vc_tta-panel-heading {
		border-color: {$panel_bg_color_darken_10};
		background-color: {$panel_bg_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel.vc_active .vc_tta-panel-title>a {
		color: {$panel_title_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-body {
		background-color: {$panel_bg_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-body,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-body::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-panel .vc_tta-panel-body::before {
		border-color: {$panel_bg_color_darken_10};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-controls-icon::before {
		border-color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::before {
		border-color: {$panel_title_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-tab>a {
		border-color: {$color_code_darken_10};
		background-color: $color_code;
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-tab>a:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-tab>a:hover {
		background-color: {$color_code_darken_15};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern .vc_tta-tab.vc_active>a {
		border-color: {$panel_bg_color_darken_10};
		background-color: {$panel_bg_color};
		color: {$panel_title_color};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels {
		background-color: {$panel_bg_color};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels,body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels::after,body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels::before,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels::after,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels::before {
		border-color: {$panel_bg_color_darken_10};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
		border-color: transparent;
		background-color: transparent;
	}

	@media (min-width: 768px) {
		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels {
			background-color:{$panel_bg_color};
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels::before {
			border-color: {$panel_bg_color_darken_10};
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-modern.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
			border-color: transparent;
			background-color: transparent;
		}
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-heading {
		border-color: {$color_code};
		background-color: transparent;
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-heading:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-heading:hover {
		background-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-title>a {
		color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-title>a:hover {
		color: {$panel_contrast_color}
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel.vc_active .vc_tta-panel-heading {
		border-color: {$color_code};
		background-color: transparent;
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel.vc_active .vc_tta-panel-title>a {
		color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-body {
		background-color: transparent;
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-body,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-body::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel .vc_tta-panel-body::before {
		border-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-controls-icon::before {
		border-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel-heading:focus .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel-heading:focus .vc_tta-controls-icon::before,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel-heading:hover .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-panel-heading:hover .vc_tta-controls-icon::before {
		border-color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::before {
		border-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-tab>a {
		border-color: {$color_code};
		background-color: transparent;
		color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-tab>a:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-tab>a:hover {
		background-color: {$color_code};
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline .vc_tta-tab.vc_active>a {
		border-color: {$color_code};
		background-color: transparent;
		color: {$color_code};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels {
		background-color: transparent;
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels,body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels::after,body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels::before,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels::after,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels::before {
		border-color: {$color_code};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
		border-color: transparent;
		background-color: transparent;
	}

	@media (min-width: 768px) {
		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels {
			background-color:transparent;
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels::before {
			border-color: {$color_code};
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-outline.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
			border-color: transparent;
			background-color: transparent;
		}
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel .vc_tta-panel-heading {
		background-color: {$color_code_darken_10};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel .vc_tta-panel-heading:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel .vc_tta-panel-heading:hover {
		background-color: {$color_code_darken_15};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel .vc_tta-panel-title>a {
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel.vc_active .vc_tta-panel-heading {
		background-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel.vc_active .vc_tta-panel-title>a {
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-panel .vc_tta-panel-body {
		background-color: {$color_code};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat:not(.vc_tta-o-no-fill) .vc_tta-panel-body {
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-controls-icon::before {
		border-color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::after,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_active .vc_tta-panel-heading .vc_tta-controls-icon::before {
		border-color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-tab>a {
		background-color: {$color_code_darken_10};
		color: {$panel_contrast_color};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-tab>a:focus,body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-tab>a:hover {
		background-color: {$color_code_darken_15};
	}

	body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat .vc_tta-tab.vc_active>a {
		background-color: {$color_code};
		color: {$panel_contrast_color};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat.vc_tta-tabs .vc_tta-panels,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat.vc_tta-tabs .vc_tta-panels {
		background-color: {$color_code};
	}

	body.vc_non_responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body,.vc_tta-o-non-responsive body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
		border-color: transparent;
		background-color: transparent;
	}

	@media (min-width: 768px) {
		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat.vc_tta-tabs .vc_tta-panels {
			background-color:{$color_code};
		}

		body.wpb-js-composer .vc_tta-color-{$color_name}.vc_tta-style-flat.vc_tta-tabs .vc_tta-panels .vc_tta-panel-body {
			border-color: transparent;
			background-color: transparent;
		}
	}


CUSTOM_CSS;

		}


		private function vc_faq_css() {
			if ( is_singular() ) {
				global $post;
				if ( isset( $post ) && isset( $post->post_content ) ) {
					if ( g5element_shortcode_exists( 'vc_toggle', $post->post_content ) ) {
						$accent_color    = G5CORE()->options()->color()->get_option( 'accent_color' );
						$primary_color   = G5CORE()->options()->color()->get_option( 'primary_color' );
						$secondary_color = G5CORE()->options()->color()->get_option( 'secondary_color' );
						$custom_css      = '';
						$custom_css      .= $this->get_vc_faq_css( 'accent', $accent_color );
						$custom_css      .= $this->get_vc_faq_css( 'primary', $primary_color );
						$custom_css      .= $this->get_vc_faq_css( 'secondary', $secondary_color );

						return $custom_css;
					}
				}
			}

			return '';
		}

		private function get_vc_faq_css( $color_name, $color_code ) {
			$color_code_darken_10  = g5core_color_darken( $color_code, '10%' );
			$color_code_lighten_10 = g5core_color_lighten( $color_code, '10%' );
			$color_code_foreground = g5core_color_contrast( $color_code );

			return <<<CSS

.vc_toggle_color_{$color_name}.vc_toggle_simple .vc_toggle_icon {
    background-color: transparent;
    border-color: transparent;
}

.vc_toggle_color_{$color_name}.vc_toggle_simple .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_simple .vc_toggle_icon::before {
    background-color: {$color_code};
}

.vc_toggle_color_{$color_name}.vc_toggle_simple.vc_toggle_color_inverted .vc_toggle_icon {
    background-color: transparent;
    border-color: transparent;
}

.vc_toggle_color_{$color_name}.vc_toggle_simple.vc_toggle_color_inverted .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_simple.vc_toggle_color_inverted .vc_toggle_icon::before {
    background-color: transparent;
}

.vc_toggle_color_{$color_name}.vc_toggle_simple .vc_toggle_title:hover .vc_toggle_icon {
    background-color: transparent;
}

.vc_toggle_color_{$color_name}.vc_toggle_simple .vc_toggle_title:hover .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_simple .vc_toggle_title:hover .vc_toggle_icon::before {
    background-color: {$color_code_lighten_10};
}

.vc_toggle_color_{$color_name}.vc_toggle_simple.vc_toggle_color_inverted .vc_toggle_title:hover .vc_toggle_icon {
    background-color: transparent;
    border-color: transparent;
}

.vc_toggle_color_{$color_name}.vc_toggle_simple.vc_toggle_color_inverted .vc_toggle_title:hover .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_simple.vc_toggle_color_inverted .vc_toggle_title:hover .vc_toggle_icon::before {
    background-color: transparent;
}

.vc_toggle_color_{$color_name} .vc_toggle_icon {
    background-color: {$color_code};
    border-color: transparent;
}

.vc_toggle_color_{$color_name} .vc_toggle_icon::after,
.vc_toggle_color_{$color_name} .vc_toggle_icon::before {
    background-color: {$color_code_foreground};
}

.vc_toggle_color_{$color_name}.vc_toggle_color_inverted .vc_toggle_icon {
    background-color: transparent;
    border-color: {$color_code};
}

.vc_toggle_color_{$color_name}.vc_toggle_color_inverted .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_color_inverted .vc_toggle_icon::before {
    background-color: {$color_code};
}

.vc_toggle_color_{$color_name} .vc_toggle_title:hover .vc_toggle_icon {
    background-color: {$color_code_lighten_10};
}

.vc_toggle_color_{$color_name} .vc_toggle_title:hover .vc_toggle_icon::after,
.vc_toggle_color_{$color_name} .vc_toggle_title:hover .vc_toggle_icon::before {
    background-color: {$color_code_foreground};
}

.vc_toggle_color_{$color_name}.vc_toggle_color_inverted .vc_toggle_title:hover .vc_toggle_icon {
    background-color: transparent;
    border-color: {$color_code_lighten_10};
}

.vc_toggle_color_{$color_name}.vc_toggle_color_inverted .vc_toggle_title:hover .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_color_inverted .vc_toggle_title:hover .vc_toggle_icon::before {
    background-color: {$color_code_lighten_10};
}

.vc_toggle_color_{$color_name}.vc_toggle_default .vc_toggle_icon {
    background: {$color_code};
    border-color: {$color_code_darken_10};
}

.vc_toggle_color_{$color_name}.vc_toggle_default .vc_toggle_icon::before {
    border-color: {$color_code_darken_10};
    background: {$color_code};
}

.vc_toggle_color_{$color_name}.vc_toggle_default .vc_toggle_icon::after {
    background: {$color_code};
}

.vc_toggle_color_{$color_name}.vc_toggle_default .vc_toggle_title:hover .vc_toggle_icon {
    background: {$color_code_lighten_10};
    border-color: {$color_code};
}

.vc_toggle_color_{$color_name}.vc_toggle_default .vc_toggle_title:hover .vc_toggle_icon::before {
    border-color: {$color_code};
    background: {$color_code_lighten_10};
}

.vc_toggle_color_{$color_name}.vc_toggle_default .vc_toggle_title:hover .vc_toggle_icon::after {
    background: {$color_code_lighten_10};
}

.vc_toggle_color_{$color_name}.vc_toggle_arrow .vc_toggle_icon {
    background: 0 0;
}

.vc_toggle_color_{$color_name}.vc_toggle_arrow .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_arrow .vc_toggle_icon::before {
    border-color: {$color_code};
    background: 0 0;
}

.vc_toggle_color_{$color_name}.vc_toggle_arrow .vc_toggle_title:hover .vc_toggle_icon {
    background: 0 0;
}

.vc_toggle_color_{$color_name}.vc_toggle_arrow .vc_toggle_title:hover .vc_toggle_icon::after,
.vc_toggle_color_{$color_name}.vc_toggle_arrow .vc_toggle_title:hover .vc_toggle_icon::before {
    border-color: {$color_code_lighten_10};
    background: 0 0;
}

CSS;

		}
	}
}
Back to Directory File Manager