Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/components/com_sppagebuilder/addons/js_slideshow/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/components/com_sppagebuilder/addons/js_slideshow/site.php

<?php

/**
 * @package SP Page Builder
 * @author JoomShaper https://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2023 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */

//no direct access
defined('_JEXEC') or die('restricted access');

use Joomla\CMS\Uri\Uri;

class SppagebuilderAddonJs_slideshow extends SppagebuilderAddons
{
	/**
	 * The addon frontend render method.
	 * The returned HTML string will render to the frontend page.
	 *
	 * @return  string  The HTML string.
	 * @since   1.0.0
	 */
	public function render()
	{

		$settings = $this->addon->settings;
		$class = (isset($settings->class) && $settings->class) ?
'' . $settings->class : '';
		$slide_vertically = (isset($settings->slide_vertically) &&
$settings->slide_vertically) ? $settings->slide_vertically : 0;
		$three_d_rotate = (isset($settings->three_d_rotate) &&
gettype($settings->three_d_rotate) == 'string') ?
$settings->three_d_rotate : '';
		$autoplay = (isset($settings->autoplay) &&
$settings->autoplay) ? $settings->autoplay : '';
		$pause_on_hover = (isset($settings->pause_on_hover) &&
$settings->pause_on_hover) ? $settings->pause_on_hover :
'';
		$interval = (isset($settings->interval) &&
$settings->interval) ? $settings->interval : 5;
		$speed = (isset($settings->speed) && $settings->speed) ?
$settings->speed : '';
		$content_container_option =
(isset($settings->content_container_option) &&
$settings->content_container_option) ?
$settings->content_container_option : '';
		//Height
		$height = (isset($settings->height) && $settings->height) ?
$settings->height : '';
		$custom_height_xl = (isset($settings->custom_height_xl) &&
$settings->custom_height_xl) ? $settings->custom_height_xl .
'px' : '';
		$custom_height_lg = (isset($settings->custom_height_lg) &&
$settings->custom_height_lg) ? $settings->custom_height_lg .
'px' : '';
		$custom_height_md = (isset($settings->custom_height_md) &&
$settings->custom_height_md) ? $settings->custom_height_md .
'px' : '';
		$custom_height_sm = (isset($settings->custom_height_sm) &&
$settings->custom_height_sm) ? $settings->custom_height_sm .
'px' : '';
		$custom_height_xs = (isset($settings->custom_height_xs) &&
$settings->custom_height_xs) ? $settings->custom_height_xs .
'px' : '';
		$slider_animation = (isset($settings->slider_animation) &&
$settings->slider_animation) ? $settings->slider_animation :
'';

		//Verticle slide
		$dataVerticleSlide = '';
		if ($slider_animation === 'stack')
		{
			$dataVerticleSlide = 'data-slide-vertically="' .
($slide_vertically ? 'true' : 'false') .
'"';
		}
		//3D rotate
		$data_three_d_rotate = '';
		if ($slider_animation === '3D')
		{
			$data_three_d_rotate = 'data-3d-rotate="' .
($three_d_rotate ? $three_d_rotate : '15') . '"';
		}
		//Timer
		$timer = (isset($settings->timer) && $settings->timer) ?
$settings->timer : '';
		//Slide counter
		$slide_counter = (isset($settings->slide_counter) &&
$settings->slide_counter) ? $settings->slide_counter : '';
		//Dot
		$dot_controllers = (isset($settings->dot_controllers) &&
$settings->dot_controllers) ? $settings->dot_controllers :
'';
		$dot_controllers_style = (isset($settings->dot_controllers_style)
&& $settings->dot_controllers_style) ?
$settings->dot_controllers_style : '';
		$dot_controllers_position =
(isset($settings->dot_controllers_position) &&
$settings->dot_controllers_position) ?
$settings->dot_controllers_position : '';
		//Arrow
		$arrow_controllers = (isset($settings->arrow_controllers) &&
$settings->arrow_controllers) ? $settings->arrow_controllers :
'';
		$arrow_controllers_content =
(isset($settings->arrow_controllers_content) &&
$settings->arrow_controllers_content) ?
$settings->arrow_controllers_content : '';
		$arrow_controllers_style = (isset($settings->arrow_controllers_style)
&& $settings->arrow_controllers_style) ?
$settings->arrow_controllers_style : '';
		$arrow_controllers_position =
(isset($settings->arrow_controllers_position) &&
$settings->arrow_controllers_position) ?
$settings->arrow_controllers_position : '';
		$arrow_on_hover = (isset($settings->arrow_on_hover) &&
$settings->arrow_on_hover) ? $settings->arrow_on_hover :
'';
		//Line
		$line_indecator = (isset($settings->line_indecator) &&
$settings->line_indecator) ? $settings->line_indecator :
'';

		//Height calculate
		$slider_height_xl = '';
		$slider_height_lg = '';
		$slider_height_md = '';
		$slider_height_sm = '';
		$slider_height_xs = '';
		if ($height == 'full')
		{
			$slider_height_xl = 'full';
			$slider_height_lg = 'full';
			$slider_height_md = 'full';
			$slider_height_sm = 'full';
			$slider_height_xs = 'full';
		}
		else
		{
			$slider_height_xl = $custom_height_xl;
			$slider_height_lg = $custom_height_lg;
			$slider_height_md = $custom_height_md;
			$slider_height_sm = $custom_height_sm;
			$slider_height_xs = $custom_height_xs;
		}

		//Dot classes
		$dot_style_class = '';
		$dot_position_class = '';
		if ($dot_controllers)
		{
			if ($dot_controllers_style)
			{
				$dot_style_class = 'dot-controller-' .
$dot_controllers_style;
			}
			if ($dot_controllers_position)
			{
				$dot_position_class = 'dot-controller-position-' .
$dot_controllers_position;
			}
		}
		//Arrow Classes
		$arrow_position_class = '';
		if ($arrow_controllers_style == "along" && 
$arrow_controllers_position)
		{
			$arrow_position_class = 'arrow-position-' .
$arrow_controllers_position;
		}
		$arrow_hover_class = '';
		if ($arrow_on_hover)
		{
			$arrow_hover_class = 'arrow-show-on-hover';
		}
		//Content
		$content_vertical_alignment =
(isset($settings->content_vertical_alignment) &&
$settings->content_vertical_alignment) ?
$settings->content_vertical_alignment : '';

		//Output
		$dots = '';
		$output = '';
		$output .= '<div id="sppb-sp-slider-' .
$this->addon->id . '" data-id="sppb-sp-slider-' .
$this->addon->id . '" class="sppb-addon-sp-slider
sp-slider ' . $class . ' ' . $dot_style_class . '
' . $dot_position_class . ' ' . $arrow_position_class .
' ' . $arrow_hover_class . '"
data-height-xl="' . $slider_height_xl . '"
data-height-lg="' . $slider_height_lg . '"
data-height-md="' . $slider_height_md . '"
data-height-sm="' . $slider_height_sm . '"
data-height-xs="' . $slider_height_xs . '"
data-slider-animation="' . $slider_animation . '"
' . $dataVerticleSlide . ' ' . $data_three_d_rotate . '
data-autoplay="' . ($autoplay ? 'true' :
'false') . '" data-interval="' . ($interval ?
$interval * 1000 : '4000') . '" data-timer="'
. ($timer ? 'true' : 'false') . '"
data-speed="' . ($speed ? $speed : 800) . '"
data-dot-control="' . ($dot_controllers ? 'true' :
'false') . '" data-arrow-control="' .
($arrow_controllers ? 'true' : 'false') . '"
data-indecator="' . ($line_indecator ? 'true' :
'false') . '" data-arrow-content="' .
($arrow_controllers_content ? $arrow_controllers_content :
'text_only') . '" data-slide-count="' .
($slide_counter ? 'true' : 'false') . '"
data-dot-style="' . $dot_controllers_style . '"
data-pause-hover="' . ($pause_on_hover && $autoplay ?
'true' : 'false') . '">';

		if (isset($settings->slideshow_items) &&
is_array($settings->slideshow_items))
		{
			$increasing_addon_id = $this->addon->id;

			foreach ($settings->slideshow_items as $item_key => $item_value)
			{
				if ($increasing_addon_id === $increasing_addon_id)
				{
					$increasing_addon_id++;
				}

				$uniqid = 'sp-slider-item-' . $this->addon->id .
'-num-' . $item_key . '-key';

				$output .= '<div id="' . $uniqid . '"
class="sp-item ' . (($item_key == 0) ? ' active' :
'') . ' ' . ($content_vertical_alignment ?
'slider-content-vercally-center' : '') .
'">';

				if ($content_container_option === 'bootstrap')
				{
					$output .= '<div class="sppb-container">';
					$output .= '<div class="sppb-row">';
					$output .= '<div class="sppb-col-sm-12">';
				}
				else
				{
					$output .= '<div
class="sp-slider-content-wrap">';
				}

				$image_in_column = (isset($item_value->image_in_column) &&
$item_value->image_in_column) ? $item_value->image_in_column :
'';

				$image_column_width_lg =
(isset($item_value->image_column_width->xl) &&
$item_value->image_column_width->xl) ? (int)
$item_value->image_column_width->xl : 6;
				$image_column_width_md =
(isset($item_value->image_column_width->lg) &&
$item_value->image_column_width->lg) ? (int)
$item_value->image_column_width->lg : 6;
				$image_column_width_sm =
(isset($item_value->image_column_width->md) &&
$item_value->image_column_width->md) ? (int)
$item_value->image_column_width->md : 6;
				$image_column_width_xs =
(isset($item_value->image_column_width->sm) &&
$item_value->image_column_width->sm) ? (int)
$item_value->image_column_width->sm : 6;
				$image_column_width = (isset($item_value->image_column_width->xs)
&& $item_value->image_column_width->xs) ? (int)
$item_value->image_column_width->xs : 6;

				$image_column_reverse = (isset($item_value->image_column_reverse)
&& $item_value->image_column_reverse) ?
$item_value->image_column_reverse : '';
				$icon_display_block = (isset($item_value->icon_display_block)
&& $item_value->icon_display_block) ?
$item_value->icon_display_block : '';
				$content_alignment = (isset($item_value->content_alignment)
&& $item_value->content_alignment) ?
$item_value->content_alignment : '';
				$image_content_alignment =
(isset($item_value->image_content_alignment) &&
$item_value->image_content_alignment) ?
$item_value->image_content_alignment : '';

				if (!$image_in_column)
				{
					$output .= '<div class="sp-slider-content-align-' .
$content_alignment . '">';

					if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
					{
						foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
						{
							$inner_uniqid = 'sp-slider-inner-item-' .
$increasing_addon_id . '-num-' . $inner_item_key .
'-key';
							$content_class = (isset($inner_value->content_class) &&
$inner_value->content_class) ? ' ' .
$inner_value->content_class : '';

							//Common animation options for settings
							$animation_duration = (isset($inner_value->animation_duration)
&& $inner_value->animation_duration != '') ?
$inner_value->animation_duration : 800;
							$animation_delay = (isset($inner_value->animation_delay)
&& $inner_value->animation_delay != '') ?
$inner_value->animation_delay : 1000;
							$animation_timing_function =
(isset($inner_value->animation_timing_function) &&
$inner_value->animation_timing_function) ?
$inner_value->animation_timing_function : 'ease';
							$animation_cubic_bezier_value =
(isset($inner_value->animation_cubic_bezier_value) &&
$inner_value->animation_cubic_bezier_value) ?
$inner_value->animation_cubic_bezier_value : '';

							if ($animation_timing_function == 'cubic-bezier')
							{
								$animation_timing_function = 'cubic-bezier(' .
$animation_cubic_bezier_value . ')';
							}

							//Slide animation options
							$content_animation_type =
(isset($inner_value->content_animation_type) &&
$inner_value->content_animation_type) ?
$inner_value->content_animation_type : 'slide';
							$animation_slide_direction =
(isset($inner_value->animation_slide_direction) &&
$inner_value->animation_slide_direction) ?
$inner_value->animation_slide_direction : 'top';
							$animation_slide_from =
(isset($inner_value->animation_slide_from) &&
gettype($inner_value->animation_slide_from) == 'string') ?
$inner_value->animation_slide_from : 100;

							//Rotate animation options
							$animation_rotate_from =
(isset($inner_value->animation_rotate_from) &&
gettype($inner_value->animation_rotate_from) == 'string') ?
$inner_value->animation_rotate_from : '';
							$animation_rotate_to = (isset($inner_value->animation_rotate_to)
&& gettype($inner_value->animation_rotate_to) ==
'string') ? $inner_value->animation_rotate_to : '';

							//animation settings
							$animation_settings = '';

							if ($content_animation_type == 'rotate')
							{
								$animation_settings =
'"type":"rotate","from":"' .
$animation_rotate_from . 'deg", "to":"' .
$animation_rotate_to . 'deg","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
							}
							elseif ($content_animation_type == 'text-animate')
							{
								$animation_settings =
'"type":"text-animate","direction":"'
. $animation_slide_direction .
'","duration":"' . $animation_duration .
'","after":"' . $animation_delay .
'", "timing_function":"' .
$animation_timing_function . '"';
							}
							elseif ($content_animation_type == 'zoom')
							{
								$animation_settings =
'"type":"zoom","direction":"zoomIn","from":"0",
"to":"1","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
							}
							else
							{
								$animation_settings =
'"type":"slide","direction":"'
. $animation_slide_direction . '","from":"' .
$animation_slide_from . '%",
"to":"0%","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
							}

							//Content type
							$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';
							//Title
							$title_content_title = (isset($inner_value->title_content_title)
&& $inner_value->title_content_title) ?
$inner_value->title_content_title : '';
							$title_heading_selector =
(isset($inner_value->title_heading_selector) &&
$inner_value->title_heading_selector) ?
$inner_value->title_heading_selector : 'h2';
							//Text
							$content_text = (isset($inner_value->content_text) &&
$inner_value->content_text) ? $inner_value->content_text :
'';
							//Image
							$image_content = (isset($inner_value->image_content) &&
$inner_value->image_content) ? $inner_value->image_content :
'';
							$image_content_src = isset($image_content->src) ?
$image_content->src : $image_content;
							//Button
							$btn_content = (isset($inner_value->btn_content) &&
$inner_value->btn_content) ? $inner_value->btn_content :
'';

							list($button_url, $button_target) =
AddonHelper::parseLink($inner_value, 'button_url',
['url' => 'button_url', 'new_tab' =>
'button_target']);

							$button_icon = (isset($inner_value->button_icon) &&
$inner_value->button_icon) ? $inner_value->button_icon :
'';
							$button_icon_position =
(isset($inner_value->button_icon_position) &&
$inner_value->button_icon_position) ?
$inner_value->button_icon_position : '';

							$icon_arr = array_filter(explode(' ', $button_icon));

							if (count($icon_arr) === 1)
							{
								$button_icon = 'fa ' . $button_icon;
							}

							if ($button_icon_position == 'left')
							{
								$btn_content = ($button_icon) ? '<span
class="sp-slider-btn-text"> <span
class="sp-slider-btn-icon"><i class="' .
$button_icon . '"></i></span> ' .
$btn_content . '</span>' : '<span
class="sp-slider-btn-text">' . $btn_content .
'</span>';
							}
							else
							{
								$btn_content = ($button_icon) ? '<span
class="sp-slider-btn-text">' . $btn_content . '
<span class="sp-slider-btn-icon"><i class="' .
$button_icon . '"
aria-hidden="true"></i></span></span>'
: '<span class="sp-slider-btn-text">' .
$btn_content . '</span>';
							}

							//Icon
							$icon_content = (isset($inner_value->icon_content) &&
$inner_value->icon_content) ? $inner_value->icon_content :
'';

							$icon_content_arr = array_filter(explode(' ',
$icon_content));

							if (count($icon_content_arr) === 1)
							{
								$icon_content = 'fa ' . $icon_content;
							}

							if ($content_type == 'text_content')
							{
								$output .= '<div id="' . $inner_uniqid .
'" class="sppb-sp-slider-text' . $content_class .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
								$output .= $content_text;
								$output .= '</div>';
							}
							elseif ($content_type == 'image_content')
							{
								$output .= '<div id="' . $inner_uniqid .
'" class="sppb-sp-slider-image' . $content_class .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
								$output .= '<img src="' . $image_content_src .
'" alt="' . $title_content_title .
'"/>';
								$output .= '</div>';
							}
							elseif ($content_type == 'btn_content')
							{
								$output .= '<a id="' . $inner_uniqid .
'" ' . ($button_target == '_blank' ?
'target="_blank" rel="noopener noreferrer"' :
'') . ' class="sppb-sp-slider-button' .
$content_class . '" href="' . $button_url .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
								$output .= $btn_content;
								$output .= '</a>';
							}
							elseif ($content_type == 'icon_content')
							{
								$output .= '<span id="' . $inner_uniqid .
'" class="sppb-sp-slider-icon' . $content_class .
' ' . ($icon_display_block ? 'sp-slider-icon-block' :
'') . '" data-layer="true"
data-animation=\'{' . $animation_settings .
'}\'>';
								$output .= '<span class="' . $icon_content .
'" aria-hidden="true"></span>';
								$output .= '</span>';
							}
							elseif ($content_type == 'title_content')
							{
								$output .= '<' . $title_heading_selector . '
id="' . $inner_uniqid . '"
class="sppb-sp-slider-title' . $content_class . '"
data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
								$output .= $title_content_title;
								$output .= '</' . $title_heading_selector .
'>';
							}
						}
					}

					$output .= '</div>'; //.sp-slider-content-align
				}
				else
				{
					$output .= '<div class="sppb-row">';

					if (!$image_column_reverse)
					{
						$output .= '<div class="sppb-col-xs-' .
($image_column_width_xs === 12 ? 12 : (12 - $image_column_width_xs)) .
' sppb-col-sm-' . ($image_column_width_sm === 12 ? 12 : (12 -
$image_column_width_sm)) . ' sppb-col-md-' .
($image_column_width_md === 12 ? 12 : (12 - $image_column_width_md)) .
' sppb-col-lg-' . ($image_column_width_lg === 12 ? 12 : (12 -
$image_column_width_lg)) . ' sppb-col-' . ($image_column_width
=== 12 ? 12 : (12 - $image_column_width)) . '">';

						$output .= '<div class="sp-slider-content-align-' .
$content_alignment . '">';

						if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
						{
							foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
							{
								$inner_uniqid = 'sp-slider-inner-item-' .
$increasing_addon_id . '-num-' . $inner_item_key .
'-key';
								$content_class = (isset($inner_value->content_class) &&
$inner_value->content_class) ? ' ' .
$inner_value->content_class : '';

								//Common animation options for settings
								$animation_duration = (isset($inner_value->animation_duration)
&& $inner_value->animation_duration != '') ?
$inner_value->animation_duration : 800;
								$animation_delay = (isset($inner_value->animation_delay)
&& $inner_value->animation_delay != '') ?
$inner_value->animation_delay : 1000;
								$animation_timing_function =
(isset($inner_value->animation_timing_function) &&
$inner_value->animation_timing_function) ?
$inner_value->animation_timing_function : 'ease';
								$animation_cubic_bezier_value =
(isset($inner_value->animation_cubic_bezier_value) &&
$inner_value->animation_cubic_bezier_value) ?
$inner_value->animation_cubic_bezier_value : '';

								if ($animation_timing_function == 'cubic-bezier')
								{
									$animation_timing_function = 'cubic-bezier(' .
$animation_cubic_bezier_value . ')';
								}

								//Slide animation options
								$content_animation_type =
(isset($inner_value->content_animation_type) &&
$inner_value->content_animation_type) ?
$inner_value->content_animation_type : 'slide';
								$animation_slide_direction =
(isset($inner_value->animation_slide_direction) &&
$inner_value->animation_slide_direction) ?
$inner_value->animation_slide_direction : 'top';
								$animation_slide_from =
(isset($inner_value->animation_slide_from) &&
gettype($inner_value->animation_slide_from) == 'string') ?
$inner_value->animation_slide_from : 100;

								//Rotate animation options
								$animation_rotate_from =
(isset($inner_value->animation_rotate_from) &&
gettype($inner_value->animation_rotate_from) == 'string') ?
$inner_value->animation_rotate_from : '';
								$animation_rotate_to = (isset($inner_value->animation_rotate_to)
&& gettype($inner_value->animation_rotate_to) ==
'string') ? $inner_value->animation_rotate_to : '';

								//animation settings
								$animation_settings = '';

								if ($content_animation_type == 'rotate')
								{
									$animation_settings =
'"type":"rotate","from":"' .
$animation_rotate_from . 'deg", "to":"' .
$animation_rotate_to . 'deg","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'text-animate')
								{
									$animation_settings =
'"type":"text-animate","direction":"'
. $animation_slide_direction .
'","duration":"' . $animation_duration .
'","after":"' . $animation_delay .
'", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'zoom')
								{
									$animation_settings =
'"type":"zoom","direction":"zoomIn","from":"0",
"to":"1","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								else
								{
									$animation_settings =
'"type":"slide","direction":"'
. $animation_slide_direction . '","from":"' .
$animation_slide_from . '%",
"to":"0%","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}

								//Content type
								$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';
								//Title
								$title_content_title = (isset($inner_value->title_content_title)
&& $inner_value->title_content_title) ?
$inner_value->title_content_title : '';
								$title_heading_selector =
(isset($inner_value->title_heading_selector) &&
$inner_value->title_heading_selector) ?
$inner_value->title_heading_selector : 'h2';
								//Text
								$content_text = (isset($inner_value->content_text) &&
$inner_value->content_text) ? $inner_value->content_text :
'';
								//Button
								$btn_content = (isset($inner_value->btn_content) &&
$inner_value->btn_content) ? $inner_value->btn_content :
'';

								list($button_url, $button_target) =
AddonHelper::parseLink($inner_value, 'button_url',
['url' => 'button_url', 'new_tab' =>
'button_target']);
								$button_icon = (isset($inner_value->button_icon) &&
$inner_value->button_icon) ? $inner_value->button_icon :
'';
								$button_icon_position =
(isset($inner_value->button_icon_position) &&
$inner_value->button_icon_position) ?
$inner_value->button_icon_position : '';

								$icon_arr = array_filter(explode(' ', $button_icon));

								if (count($icon_arr) === 1)
								{
									$button_icon = 'fa ' . $button_icon;
								}

								if ($button_icon_position == 'left')
								{
									$btn_content = ($button_icon) ? '<span
class="sp-slider-btn-text"> <span
class="sp-slider-btn-icon"><i class="' .
$button_icon . '"
aria-hidden="true"></i></span> ' .
$btn_content . '</span>' : '<span
class="sp-slider-btn-text">' . $btn_content .
'</span>';
								}
								else
								{
									$btn_content = ($button_icon) ? '<span
class="sp-slider-btn-text">' . $btn_content . '
<span class="sp-slider-btn-icon"><i class="' .
$button_icon . '"
aria-hidden="true"></i></span></span>'
: '<span class="sp-slider-btn-text">' .
$btn_content . '</span>';
								}

								//Icon
								$icon_content = (isset($inner_value->icon_content) &&
$inner_value->icon_content) ? $inner_value->icon_content :
'';

								$icon_content_arr = array_filter(explode(' ',
$icon_content));

								if (count($icon_content_arr) === 1)
								{
									$icon_content = 'fa ' . $icon_content;
								}

								if ($content_type == 'text_content')
								{
									$output .= '<div id="' . $inner_uniqid .
'" class="sppb-sp-slider-text' . $content_class .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= $content_text;
									$output .= '</div>';
								}
								elseif ($content_type == 'btn_content')
								{
									$output .= '<a id="' . $inner_uniqid .
'" ' . ($button_target == '_blank' ?
'target="_blank" rel="noopener noreferrer"' :
'') . ' class="sppb-sp-slider-button' .
$content_class . '" href="' . $button_url .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= $btn_content;
									$output .= '</a>';
								}
								elseif ($content_type == 'icon_content')
								{
									$output .= '<span id="' . $inner_uniqid .
'" class="sppb-sp-slider-icon' . $content_class .
' ' . ($icon_display_block ? 'sp-slider-icon-block' :
'') . '" data-layer="true"
data-animation=\'{' . $animation_settings .
'}\'>';
									$output .= '<span class="' . $icon_content .
'" aria-hidden="true"></span>';
									$output .= '</span>';
								}
								elseif ($content_type == 'title_content')
								{
									$output .= '<' . $title_heading_selector . '
id="' . $inner_uniqid . '"
class="sppb-sp-slider-title' . $content_class . '"
data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= $title_content_title;
									$output .= '</' . $title_heading_selector .
'>';
								}
							}
						}

						$output .= '</div>'; //.sp-slider-content-align
						$output .= '</div>'; //sppb-column

						$output .= '<div class="sppb-col-xs-' .
$image_column_width_xs . ' sppb-col-sm-' . $image_column_width_sm
. ' sppb-col-md-' . $image_column_width_md . '
sppb-col-lg-' . $image_column_width_lg . ' sppb-col-' .
$image_column_width . '">';

						$output .= '<div class="sp-slider-image-align-' .
$image_content_alignment . '">';

						if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
						{
							foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
							{
								$inner_uniqid = 'sp-slider-inner-item-' .
$increasing_addon_id . '-num-' . $inner_item_key .
'-key';
								$content_class = (isset($inner_value->content_class) &&
$inner_value->content_class) ? ' ' .
$inner_value->content_class : '';

								//Common animation options for settings
								$animation_duration = (isset($inner_value->animation_duration)
&& $inner_value->animation_duration != '') ?
$inner_value->animation_duration : 800;
								$animation_delay = (isset($inner_value->animation_delay)
&& $inner_value->animation_delay != '') ?
$inner_value->animation_delay : 1000;
								$animation_timing_function =
(isset($inner_value->animation_timing_function) &&
$inner_value->animation_timing_function) ?
$inner_value->animation_timing_function : 'ease';
								$animation_cubic_bezier_value =
(isset($inner_value->animation_cubic_bezier_value) &&
$inner_value->animation_cubic_bezier_value) ?
$inner_value->animation_cubic_bezier_value : '';

								if ($animation_timing_function == 'cubic-bezier')
								{
									$animation_timing_function = 'cubic-bezier(' .
$animation_cubic_bezier_value . ')';
								}

								//Slide animation options
								$content_animation_type =
(isset($inner_value->content_animation_type) &&
$inner_value->content_animation_type) ?
$inner_value->content_animation_type : 'slide';
								$animation_slide_direction =
(isset($inner_value->animation_slide_direction) &&
$inner_value->animation_slide_direction) ?
$inner_value->animation_slide_direction : 'top';
								$animation_slide_from =
(isset($inner_value->animation_slide_from) &&
gettype($inner_value->animation_slide_from) == 'string') ?
$inner_value->animation_slide_from : 100;

								//Rotate animation options
								$animation_rotate_from =
(isset($inner_value->animation_rotate_from) &&
gettype($inner_value->animation_rotate_from) == 'string') ?
$inner_value->animation_rotate_from : '';
								$animation_rotate_to = (isset($inner_value->animation_rotate_to)
&& gettype($inner_value->animation_rotate_to) ==
'string') ? $inner_value->animation_rotate_to : '';

								//animation settings
								$animation_settings = '';

								if ($content_animation_type == 'rotate')
								{
									$animation_settings =
'"type":"rotate","from":"' .
$animation_rotate_from . 'deg", "to":"' .
$animation_rotate_to . 'deg","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'text-animate')
								{
									$animation_settings =
'"type":"text-animate","direction":"'
. $animation_slide_direction .
'","duration":"' . $animation_duration .
'","after":"' . $animation_delay .
'", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'zoom')
								{
									$animation_settings =
'"type":"zoom","direction":"zoomIn","from":"0",
"to":"1","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								else
								{
									$animation_settings =
'"type":"slide","direction":"'
. $animation_slide_direction . '","from":"' .
$animation_slide_from . '%",
"to":"0%","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}

								//Content type
								$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';
								//Image
								$image_content = (isset($inner_value->image_content) &&
$inner_value->image_content) ? $inner_value->image_content :
'';
								$image_content_src = isset($image_content->src) ?
$image_content->src : $image_content;
								$title_content_title = (isset($inner_value->title_content_title)
&& $inner_value->title_content_title) ?
$inner_value->title_content_title : '';

								if ($content_type == 'image_content')
								{
									$output .= '<div id="' . $inner_uniqid .
'" class="sppb-sp-slider-image' . $content_class .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= '<img src="' . $image_content_src .
'" alt="' . $title_content_title .
'">';
									$output .= '</div>';
								}
							}
						}

						$output .= '</div>'; //.sp-slider-content-align
						$output .= '</div>'; //sppb-column

					}
					else
					{
						$output .= '<div class="sppb-col-xs-' .
$image_column_width_xs . ' sppb-col-sm-' . $image_column_width_sm
. ' sppb-col-md-' . $image_column_width_md . '
sppb-col-lg-' . $image_column_width_lg  . ' sppb-col-' .
$image_column_width . '">';
						$output .= '<div class="sp-slider-image-align-' .
$image_content_alignment . '">';

						if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
						{
							foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
							{
								$inner_uniqid = 'sp-slider-inner-item-' .
$increasing_addon_id . '-num-' . $inner_item_key .
'-key';
								$content_class = (isset($inner_value->content_class) &&
$inner_value->content_class) ? ' ' .
$inner_value->content_class : '';

								//Common animation options for settings
								$animation_duration = (isset($inner_value->animation_duration)
&& $inner_value->animation_duration != '') ?
$inner_value->animation_duration : 800;
								$animation_delay = (isset($inner_value->animation_delay)
&& $inner_value->animation_delay != '') ?
$inner_value->animation_delay : 1000;
								$animation_timing_function =
(isset($inner_value->animation_timing_function) &&
$inner_value->animation_timing_function) ?
$inner_value->animation_timing_function : 'ease';
								$animation_cubic_bezier_value =
(isset($inner_value->animation_cubic_bezier_value) &&
$inner_value->animation_cubic_bezier_value) ?
$inner_value->animation_cubic_bezier_value : '';

								if ($animation_timing_function == 'cubic-bezier')
								{
									$animation_timing_function = 'cubic-bezier(' .
$animation_cubic_bezier_value . ')';
								}

								//Slide animation options
								$content_animation_type =
(isset($inner_value->content_animation_type) &&
$inner_value->content_animation_type) ?
$inner_value->content_animation_type : 'slide';
								$animation_slide_direction =
(isset($inner_value->animation_slide_direction) &&
$inner_value->animation_slide_direction) ?
$inner_value->animation_slide_direction : 'top';
								$animation_slide_from =
(isset($inner_value->animation_slide_from) &&
gettype($inner_value->animation_slide_from) == 'string') ?
$inner_value->animation_slide_from : 100;

								//Rotate animation options
								$animation_rotate_from =
(isset($inner_value->animation_rotate_from) &&
gettype($inner_value->animation_rotate_from) == 'string') ?
$inner_value->animation_rotate_from : '';
								$animation_rotate_to = (isset($inner_value->animation_rotate_to)
&& gettype($inner_value->animation_rotate_to) ==
'string') ? $inner_value->animation_rotate_to : '';

								//animation settings
								$animation_settings = '';

								if ($content_animation_type == 'rotate')
								{
									$animation_settings =
'"type":"rotate","from":"' .
$animation_rotate_from . 'deg", "to":"' .
$animation_rotate_to . 'deg","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'text-animate')
								{
									$animation_settings =
'"type":"text-animate","direction":"'
. $animation_slide_direction .
'","duration":"' . $animation_duration .
'","after":"' . $animation_delay .
'", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'zoom')
								{
									$animation_settings =
'"type":"zoom","direction":"zoomIn","from":"0",
"to":"1","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								else
								{
									$animation_settings =
'"type":"slide","direction":"'
. $animation_slide_direction . '","from":"' .
$animation_slide_from . '%",
"to":"0%","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}

								//Content type
								$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';
								//Image
								$image_content = (isset($inner_value->image_content) &&
$inner_value->image_content) ? $inner_value->image_content :
'';
								$image_content_src = isset($image_content->src) ?
$image_content->src : $image_content;
								$title_content_title = (isset($inner_value->title_content_title)
&& $inner_value->title_content_title) ?
$inner_value->title_content_title : '';

								if ($content_type == 'image_content')
								{
									$output .= '<div id="' . $inner_uniqid .
'" class="sppb-sp-slider-image' . $content_class .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= '<img src="' . $image_content_src .
'" alt="' . $title_content_title .
'">';
									$output .= '</div>'; //.sppb-sp-slider-image
								}
							}
						}
						$output .= '</div>'; //.sp-slider-content-align
						$output .= '</div>'; //sppb-column

						$output .= '<div class="sppb-col-xs-' .
($image_column_width_xs === 12 ? 12 : (12 - $image_column_width_xs)) .
' sppb-col-sm-' . ($image_column_width_sm === 12 ? 12 : (12 -
$image_column_width_sm)) . ' sppb-col-md-' .
($image_column_width_md === 12 ? 12 : (12 - $image_column_width_md)) .
' sppb-col-lg-' . ($image_column_width_lg === 12 ? 12 : (12 -
$image_column_width_lg)) . ' sppb-col-' . ($image_column_width
=== 12 ? 12 : (12 - $image_column_width))   . '">';
						$output .= '<div class="sp-slider-content-align-' .
$content_alignment . '">';

						if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
						{
							foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
							{
								$inner_uniqid = 'sp-slider-inner-item-' .
$increasing_addon_id . '-num-' . $inner_item_key .
'-key';
								$content_class = (isset($inner_value->content_class) &&
$inner_value->content_class) ? ' ' .
$inner_value->content_class : '';

								//Common animation options for settings
								$animation_duration = (isset($inner_value->animation_duration)
&& $inner_value->animation_duration != '') ?
$inner_value->animation_duration : 800;
								$animation_delay = (isset($inner_value->animation_delay)
&& $inner_value->animation_delay != '') ?
$inner_value->animation_delay : 1000;
								$animation_timing_function =
(isset($inner_value->animation_timing_function) &&
$inner_value->animation_timing_function) ?
$inner_value->animation_timing_function : 'ease';
								$animation_cubic_bezier_value =
(isset($inner_value->animation_cubic_bezier_value) &&
$inner_value->animation_cubic_bezier_value) ?
$inner_value->animation_cubic_bezier_value : '';

								if ($animation_timing_function == 'cubic-bezier')
								{
									$animation_timing_function = 'cubic-bezier(' .
$animation_cubic_bezier_value . ')';
								}

								//Slide animation options
								$content_animation_type =
(isset($inner_value->content_animation_type) &&
$inner_value->content_animation_type) ?
$inner_value->content_animation_type : 'slide';
								$animation_slide_direction =
(isset($inner_value->animation_slide_direction) &&
$inner_value->animation_slide_direction) ?
$inner_value->animation_slide_direction : 'top';
								$animation_slide_from =
(isset($inner_value->animation_slide_from) &&
gettype($inner_value->animation_slide_from) == 'string') ?
$inner_value->animation_slide_from : 100;

								//Rotate animation options
								$animation_rotate_from =
(isset($inner_value->animation_rotate_from) &&
gettype($inner_value->animation_rotate_from) == 'string') ?
$inner_value->animation_rotate_from : '';
								$animation_rotate_to = (isset($inner_value->animation_rotate_to)
&& gettype($inner_value->animation_rotate_to) ==
'string') ? $inner_value->animation_rotate_to : '';

								//animation settings
								$animation_settings = '';

								if ($content_animation_type == 'rotate')
								{
									$animation_settings =
'"type":"rotate","from":"' .
$animation_rotate_from . 'deg", "to":"' .
$animation_rotate_to . 'deg","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'text-animate')
								{
									$animation_settings =
'"type":"text-animate","direction":"'
. $animation_slide_direction .
'","duration":"' . $animation_duration .
'","after":"' . $animation_delay .
'", "timing_function":"' .
$animation_timing_function . '"';
								}
								elseif ($content_animation_type == 'zoom')
								{
									$animation_settings =
'"type":"zoom","direction":"zoomIn","from":"0",
"to":"1","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}
								else
								{
									$animation_settings =
'"type":"slide","direction":"'
. $animation_slide_direction . '","from":"' .
$animation_slide_from . '%",
"to":"0%","duration":"' .
$animation_duration . '","after":"' .
$animation_delay . '", "timing_function":"' .
$animation_timing_function . '"';
								}

								//Content type
								$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';
								//Title
								$title_content_title = (isset($inner_value->title_content_title)
&& $inner_value->title_content_title) ?
$inner_value->title_content_title : '';
								$title_heading_selector =
(isset($inner_value->title_heading_selector) &&
$inner_value->title_heading_selector) ?
$inner_value->title_heading_selector : 'h2';
								//Text
								$content_text = (isset($inner_value->content_text) &&
$inner_value->content_text) ? $inner_value->content_text :
'';
								//Button
								$btn_content = (isset($inner_value->btn_content) &&
$inner_value->btn_content) ? $inner_value->btn_content :
'';
								list($button_url, $button_target) =
AddonHelper::parseLink($inner_value, 'button_url',
['url' => 'button_url', 'new_tab' =>
'button_target']);
								$button_icon = (isset($inner_value->button_icon) &&
$inner_value->button_icon) ? $inner_value->button_icon :
'';
								$button_icon_position =
(isset($inner_value->button_icon_position) &&
$inner_value->button_icon_position) ?
$inner_value->button_icon_position : '';

								$icon_arr = array_filter(explode(' ', $button_icon));

								if (count($icon_arr) === 1)
								{
									$button_icon = 'fa ' . $button_icon;
								}

								if ($button_icon_position == 'left')
								{
									$btn_content = ($button_icon) ? '<span
class="sp-slider-btn-text"> <span
class="sp-slider-btn-icon"><i class="' .
$button_icon . '"
aria-hidden="true"></i></span> ' .
$btn_content . '</span>' : '<span
class="sp-slider-btn-text">' . $btn_content .
'</span>';
								}
								else
								{
									$btn_content = ($button_icon) ? '<span
class="sp-slider-btn-text">' . $btn_content . '
<span class="sp-slider-btn-icon"><i class="' .
$button_icon . '"
aria-hidden="true"></i></span></span>'
: '<span class="sp-slider-btn-text">' .
$btn_content . '</span>';
								}

								//Icon
								$icon_content = (isset($inner_value->icon_content) &&
$inner_value->icon_content) ? $inner_value->icon_content :
'';

								$icon_content_arr = array_filter(explode(' ',
$icon_content));

								if (count($icon_content_arr) === 1)
								{
									$icon_content = 'fa ' . $icon_content;
								}

								if ($content_type == 'text_content')
								{
									$output .= '<div id="' . $inner_uniqid .
'" class="sppb-sp-slider-text' . $content_class .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= $content_text;
									$output .= '</div>';
								}
								elseif ($content_type == 'btn_content')
								{
									$output .= '<a id="' . $inner_uniqid .
'" ' . ($button_target == '_blank' ?
'target="_blank" rel="noopener noreferrer"' :
'') . ' class="sppb-sp-slider-button' .
$content_class . '" href="' . $button_url .
'" data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= $btn_content;
									$output .= '</a>';
								}
								elseif ($content_type == 'icon_content')
								{
									$output .= '<span id="' . $inner_uniqid .
'" class="sppb-sp-slider-icon' . $content_class .
' ' . ($icon_display_block ? 'sp-slider-icon-block' :
'') . '" data-layer="true"
data-animation=\'{' . $animation_settings .
'}\'>';
									$output .= '<span class="' . $icon_content .
'" aria-hidden="true"></span>';
									$output .= '</span>';
								}
								elseif ($content_type == 'title_content')
								{
									$output .= '<' . $title_heading_selector . '
id="' . $inner_uniqid . '"
class="sppb-sp-slider-title' . $content_class . '"
data-layer="true" data-animation=\'{' .
$animation_settings . '}\'>';
									$output .= $title_content_title;
									$output .= '</' . $title_heading_selector .
'>';
								}
							}
						}
						$output .= '</div>'; //.sp-slider-content-align
						$output .= '</div>'; //sppb-column
					}
					$output .= '</div>'; //sppb-row
				}

				if ($content_container_option === 'bootstrap')
				{
					$output .= '</div>'; //.sppb-col-sm-12
					$output .= '</div>'; //.sppb-row
					$output .= '</div>'; //.sppb-container
				}
				else
				{
					$output .= '</div>'; //.sp-slider-content-wrap
				}

				$slider_img = (isset($item_value->slider_img) &&
$item_value->slider_img) ? $item_value->slider_img : '';
				$slider_img_src = isset($slider_img->src) ? $slider_img->src :
$slider_img;

				if ($slider_img_src)
				{
					if (strpos($slider_img_src, "http://") !== false ||
strpos($slider_img_src, "https://") !== false)
					{
						$output .= '<div class="sp-background"
style="background-image: url(' . $slider_img_src .
');"></div>';
					}
					else
					{
						$output .= '<div class="sp-background"
style="background-image: url(' . Uri::base() . $slider_img_src .
');"></div>';
					}
				}

				if ($slider_animation != '3D')
				{
					$slider_video = (isset($item_value->slider_video) &&
$item_value->slider_video) ? $item_value->slider_video :
'';
					$slider_video_src = isset($slider_video->src) ?
$slider_video->src : $slider_video;

					if (($slider_video_src) &&
(!isset($item_value->enable_youtube_vimeo) ||
(isset($item_value->enable_youtube_vimeo) &&
!$item_value->enable_youtube_vimeo)))
					{
						if (strpos($slider_video_src, "http://") !== false ||
strpos($slider_video_src, "https://") !== false)
						{
							$output .= '<div class="sp-video-background"
data-video_src="' . $slider_video_src .
'"></div>';
						}
						else
						{
							$output .= '<div class="sp-video-background"
data-video_src="' . Uri::base() . $slider_video_src .
'"></div>';
						}
					}
					elseif (isset($item_value->youtube_vimeo_url) &&
$item_value->youtube_vimeo_url &&
$item_value->enable_youtube_vimeo)
					{
						if (strpos($item_value->youtube_vimeo_url, "http://")
!== false || strpos($item_value->youtube_vimeo_url,
"https://") !== false)
						{
							$output .= '<div class="sp-video-background"
data-video_src="' . $item_value->youtube_vimeo_url .
'"></div>';
						}
						else
						{
							$output .= '<div class="sp-video-background"
data-video_src="' . Uri::base() .
$item_value->youtube_vimeo_url . '"></div>';
						}
					}
				}

				if ($dot_controllers_style == 'with_text')
				{
					$captionItem = [];

					if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
					{
						$dot_item = 0;

						foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
						{
							$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';

							if ($content_type == 'title_content' && $dot_item
< 2)
							{
								array_unshift($captionItem, $inner_value);
							}

							$dot_item++;
						}
					}

					$dots .= '<li class="' . ($item_key == 0 ?
'active sp-text-thumbnail-list' :
'sp-text-thumbnail-list') . '">';
					$dots .= '<div
class="sp-slider-text-thumb-number">' . ($item_key > 8
? ($item_key + 1) : '0' . ($item_key + 1) . '') .
'</div>'; //.sp-slider-text-thumb-number
					$dots .= '<div
class="sp-dot-indicator-wrap">';
					$dots .= '<span
class="dot-indicator"></span>';
					$dots .= '</div>'; //.sp-dot-indicator-wrap
					$dots .= '<div
class="sp-slider-text-thumb-caption">';

					if (count($captionItem) > 0)
					{
						foreach ($captionItem as $dot_key => $inner_value)
						{
							//Content type
							$title_content_title = (isset($inner_value->title_content_title)
&& $inner_value->title_content_title) ?
$inner_value->title_content_title : '';
							$dots .= '<div class="sp-slider-dot-indecator-text
sp-dot-text-key-' . ($dot_key + 1) . '">';
							$dots .= $title_content_title;
							$dots .= '</div>'; //.sp-slider-dot-indecator-text
						}
					}
					$dots .= '</div>'; //.sp-slider-text-thumb-caption
					$dots .= '</li>';
				}

				$output .= '</div>';
			}
		}

		if ($dot_controllers_style == 'with_text' &&
$dot_controllers)
		{
			$output .= '<div
class="sp-slider-custom-dot-indecators">
						<ul>
							' . $dots . '
						</ul>';
			$output .= '</div>'; //.sp-slider-custom-dot-indecators
		}

		$output .= '</div>'; //.sppb-addon-sp-slider

		return $output;
	}
	/**
	 * Add scripts to the document.
	 *
	 * @return	array 	The list of scripts.
	 * @since 	1.0.0
	 */
	public function scripts()
	{
		return array(Uri::base(true) .
'/components/com_sppagebuilder/assets/js/js_slider.js');
	}
	/**
	 * Add stylesheets to the document.
	 *
	 * @return	array 	The list of stylesheets.
	 * @since 	1.0.0
	 */
	public function stylesheets()
	{
		return array(Uri::base(true) .
'/components/com_sppagebuilder/assets/css/js_slider.css');
	}
	/**
	 * Generate the CSS string for the frontend page.
	 *
	 * @return 	string 	The CSS string for the page.
	 * @since 	1.0.0
	 */
	public function css()
	{
		$addon_id = '#sppb-addon-' . $this->addon->id;
		$settings = $this->addon->settings;

		$cssHelper = new CSSHelper($addon_id);

		$layout_path = JPATH_ROOT .
'/components/com_sppagebuilder/layouts';
		$content_container_option =
(isset($settings->content_container_option) &&
$settings->content_container_option) ?
$settings->content_container_option : '';

		//Css output start
		$css = '';

		//Timer style
		$css .= $cssHelper->generateStyle('.sp-dot-indicator-wrap
.dot-indicator, .sp-indicator.line-indicator', $settings,
['timer_color' => 'background'], false);
		$css .= $cssHelper->generateStyle('.sp-dot-indicator-wrap',
$settings, ['timer_bg_color' => 'background'],
false);
		$css .= $cssHelper->generateStyle('.sp-indicator-container',
$settings, ['timer_bg_color' => 'background',
'timer_width' => 'width', 'timer_top_gap'
=> 'top', 'timer_left_gap' => 'left'],
['timer_bg_color' => false, 'timer_width' =>
'%']);

		//Dot/line style
		$dot_controllers_position =
(isset($settings->dot_controllers_position) &&
$settings->dot_controllers_position) ?
$settings->dot_controllers_position : '';
		$dot_controllers_style = (isset($settings->dot_controllers_style)
&& $settings->dot_controllers_style) ?
$settings->dot_controllers_style : '';

		if ($dot_controllers_position == 'vertical_left' ||
$dot_controllers_position == 'vertical_right')
		{
			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots',
$settings, ['dot_ctlr_width' =>
'height:100%;max-width']);
			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots ul',
$settings, ['dot_ctlr_width' => 'width']);
		}

		$dotsPros  = [
			'dot_ctlr_bg'            => 'background-color',
			'dot_ctlr_border_color'  => 'border-color',
			'dot_ctlr_border_width'  =>
'border-style:solid;border-width',
			'dot_ctlr_border_radius' => 'border-radius',
			'dot_ctlr_height'        => 'height',
			'dot_ctlr_width'         => 'width',
			'dot_ctlr_margin'        => 'margin'
		];

		$dotsUnits  = [
			'dot_ctlr_bg'            => false,
			'dot_ctlr_border_color'  => false,
			'dot_ctlr_margin'        => false
		];

		$css .= $cssHelper->generateStyle('.sp-slider .sp-dots ul
li', $settings, $dotsPros, $dotsUnits, ['dot_ctlr_margin'
=> 'spacing']);
		//Active style options
		$css .= $cssHelper->generateStyle('.sp-slider.dot-controller-line
.sp-dots ul li.active span', $settings,
['dot_ctlr_hover_height' => 'height',
'dot_ctlr_center_bg' => 'background-color',
'dot_ctlr_border_radius' => 'border-radius'],
['dot_ctlr_center_bg' => false]);

		$css .= $cssHelper->generateStyle('.sp-slider.dot-controller-line
.sp-dots ul li.active', $settings, ['dot_ctlr_border_radius'
=> 'border-radius', 'dot_ctlr_hover_width' =>
'width', 'dot_ctlr_hover_border_color' =>
'border-color'], ['dot_ctlr_hover_border_color' =>
false]);

		if ($dot_controllers_style !== 'line')
		{
			$dosSpanProps = [
				'dot_controllers_style' => ($dot_controllers_style !==
'with_image') ? 'background-color' : null,
				'dot_ctlr_border_radius' => 'border-radius',
				'dot_ctlr_hover_height' => 'height',
				'dot_ctlr_hover_width' => 'width'
			];

			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots ul li
span, .sp-slider .sp-dots ul li:hover span, .sp-slider .sp-dots ul
li:hover:after, .sp-slider .sp-dots ul li:after', $settings,
$dosSpanProps, ['dot_controllers_style' =>
($dot_controllers_style !== 'with_image') ? false : null]);

			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots ul
li.active', $settings, ['dot_ctlr_hover_border_color' =>
'border-color'], false);
		}

		//Dot/line gap
		if ($dot_controllers_position === 'bottom_center')
		{
			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots',
$settings, ['dot_controllers_bottom_gap' =>
'bottom']);
		}

		if ($dot_controllers_position === 'bottom_left')
		{
			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots',
$settings, ['dot_controllers_bottom_gap' =>
'bottom']);
			$css .=
$cssHelper->generateStyle('.dot-controller-position-bottom_left.sp-slider
.sp-dots', $settings, ['dot_controllers_left_gap' =>
'left']);
		}

		if ($dot_controllers_position === 'bottom_right')
		{
			$css .= $cssHelper->generateStyle('.sp-slider .sp-dots',
$settings, ['dot_controllers_bottom_gap' =>
'bottom']);
			$css .=
$cssHelper->generateStyle('.dot-controller-position-bottom_right.sp-slider
.sp-dots', $settings, ['dot_controllers_right_gap' =>
'right']);
		}

		if ($dot_controllers_position === 'vertical_left')
		{
			$css .=
$cssHelper->generateStyle('.dot-controller-position-vertical_left.sp-slider
.sp-dots',  $settings, ['dot_controllers_left_gap' =>
'left']);
		}

		if ($dot_controllers_position === 'vertical_right')
		{
			$css .=
$cssHelper->generateStyle('.dot-controller-position-vertical_right.sp-slider
.sp-dots', $settings, ['dot_controllers_right_gap' =>
'right']);
		}

		//Text thumbnail style
		$css .=
$cssHelper->generateStyle('.sp-slider-custom-dot-indecators',
$settings, ['text_thumb_ctlr_wrap_bg' =>
'background', 'text_thumb_ctlr_wrap_padding' =>
'padding', 'text_thumb_ctlr_wrap_width' =>
'width'], ['text_thumb_ctlr_wrap_bg' => false,
'text_thumb_ctlr_wrap_padding' => false,
'text_thumb_ctlr_wrap_width' => '%'],
['text_thumb_ctlr_wrap_padding' => 'spacing']);

		$css .=
$cssHelper->generateStyle('.sp-slider-custom-dot-indecators ul
li', $settings, ['text_thumb_ctlr_individual_width' =>
'width']);

		//thumb number style
		$css .=
$cssHelper->generateStyle('.sp-slider-text-thumb-number',
$settings, ['text_thumb_number_color' => 'color',
'text_thumb_number_font_size' => 'font-size',
'text_thumb_number_font_weight' => 'font-weight'],
['text_thumb_number_font_weight' => false,
'text_thumb_number_color' => false]);

		//thumb title style
		$css .=
$cssHelper->generateStyle('.sp-slider-dot-indecator-text.sp-dot-text-key-1',
$settings, ['text_thumb_title_color' => 'color',
'text_thumb_title_font_size' => 'font-size',
'text_thumb_title_font_weight' => 'font-weight',
'text_thumb_title_lineheight' => 'line-height'],
['text_thumb_title_color' => false,
'text_thumb_title_font_weight' => false]);

		//thumb subtitle style
		$css .=
$cssHelper->generateStyle('.sp-slider-dot-indecator-text.sp-dot-text-key-2',
 $settings, ['text_thumb_subtitle_color' => 'color',
'text_thumb_subtitle_font_size' => 'font-size',
'text_thumb_subtitle_font_weight' => 'font-weight'],
['text_thumb_subtitle_color' => false,
'text_thumb_subtitle_font_weight' => false]);

		//Arrow style
		$arrow_controllers_style = (isset($settings->arrow_controllers_style)
&& $settings->arrow_controllers_style) ?
$settings->arrow_controllers_style : '';
		$arrow_controllers_position =
(isset($settings->arrow_controllers_position) &&
$settings->arrow_controllers_position) ?
$settings->arrow_controllers_position : '';
		$arrow_ctlr_border_width = (isset($settings->arrow_ctlr_border_width)
&& $settings->arrow_ctlr_border_width != '') ?
$settings->arrow_ctlr_border_width : 1;

		if ($arrow_controllers_style !== 'spread')
		{
			$css .= $cssHelper->generateStyle('.sp-slider
.sp-nav-control', $settings, ['arrow_ctlr_height' =>
'height']);
		}

		$controlProps = [
			'arrow_ctlr_background' => 'background',
			'arrow_ctlr_border_color' => 'border-color',
			'arrow_ctlr_border_radius' => 'border-radius',
			'arrow_ctlr_border_width' => 'border-width',
			'arrow_ctlr_color' => 'color',
			'arrow_ctlr_width' => 'width',
			'arrow_ctlr_height' => 'height',
			'arrow_ctlr_font_size' => 'font-size'
		];

		$controlPropsUnits = [
			'arrow_ctlr_background' => false,
			'arrow_ctlr_border_color' => false,
			'arrow_ctlr_color' => false,
		];
		$css .= $cssHelper->generateStyle('.sp-slider .sp-nav-control
.nav-control', $settings, $controlProps, $controlPropsUnits);

		$settings->dummy_arrow_ctlr_width = null;

		if (!empty($settings->arrow_ctlr_width_original))
		{
			if (\is_object($settings->arrow_ctlr_width_original))
			{
				$settings->dummy_arrow_ctlr_width = AddonHelper::initDeviceObject();

				foreach ($settings->arrow_ctlr_width_original as $key => $value)
				{
					$settings->dummy_arrow_ctlr_width->$key = (int) ((int)$value *
2) + 20;
				}
			}
			else
			{
				$settings->dummy_arrow_ctlr_width = (int)
((int)$settings->arrow_ctlr_width_original * 20) + 20;
			}
		}

		$css .=
$cssHelper->generateStyle('div[class*="arrow-position-bottom"].sp-slider
.sp-nav-control', $settings, ['dummy_arrow_ctlr_width' =>
'width']);

		if ($arrow_controllers_style === 'spread')
		{
			$css .= $cssHelper->generateStyle('.sp-slider
.sp-nav-control', $settings, ['arrow_ctlr_height' =>
'top: -%s']);
		}

		$settings->arrow_ctlr_border_width =  !$arrow_ctlr_border_width ? 1 :
$arrow_ctlr_border_width;

		$settings->dummy_arrow_ctlr_height = null;

		if (!empty($settings->arrow_ctlr_height_original))
		{
			if (\is_object($settings->arrow_ctlr_height_original))
			{
				$settings->dummy_arrow_ctlr_height =
AddonHelper::initDeviceObject();

				foreach ($settings->arrow_ctlr_height_original as $key => $value)
				{
					$settings->dummy_arrow_ctlr_height->$key = ((int)$value -
((int)$settings->arrow_ctlr_border_width * 2));
				}
			}
			else
			{
				$settings->dummy_arrow_ctlr_height =
((int)$settings->arrow_ctlr_height_original -
((int)$settings->arrow_ctlr_border_width * 2));
			}
		}

		$css .= $cssHelper->generateStyle('.sp-slider .sp-nav-control
.nav-control', $settings, ['dummy_arrow_ctlr_height' =>
'line-height']);
		$css .= $cssHelper->generateStyle('.sp-slider .sp-nav-control
.nav-control i', $settings, ['dummy_arrow_ctlr_height' =>
'line-height']);

		//Arrow gap
		if ($arrow_controllers_position === 'bottom_center')
		{
			$css .=
$cssHelper->generateStyle('.sp-slider.arrow-position-bottom_center
.sp-nav-control', $settings, ['arrow_controllers_bottom_gap'
=> 'bottom', 'arrow_controllers_left_gap' =>
'left', 'arrow_controllers_right_gap' =>
'right']);
		}

		if ($arrow_controllers_position === 'bottom_left')
		{
			$css .=
$cssHelper->generateStyle('.sp-slider.arrow-position-bottom_left
.sp-nav-control', $settings, ['arrow_controllers_bottom_gap'
=> 'bottom', 'arrow_controllers_left_gap' =>
'left']);
		}

		if ($arrow_controllers_position === 'bottom_right')
		{
			$css .=
$cssHelper->generateStyle('.sp-slider.arrow-position-bottom_right
.sp-nav-control', $settings, ['arrow_controllers_bottom_gap'
=> 'bottom', 'arrow_controllers_right_gap' =>
'right']);
		}
		//Spread arrow gap
		if ($arrow_controllers_style === 'spread')
		{
			$css .= $cssHelper->generateStyle('div.sp-slider
.sp-nav-control', $settings,
['arrow_spread_controllers_left_gap' => 'left',
'arrow_spread_controllers_right_gap' => 'right']);
		}

		//Arrow hover
		$css .= $cssHelper->generateStyle('.sp-slider .sp-nav-control
.nav-control:hover', $settings,
['arrow_ctlr_hover_background' => 'background',
'arrow_ctlr_hover_border_color' => 'border-color',
'arrow_ctlr_hover_color' => 'color'], false);
		//Slide Counter Style
		$slide_counter = (isset($settings->slide_counter) &&
$settings->slide_counter) ? $settings->slide_counter : 0;
		if ($slide_counter)
		{
			$sliderNumberProps = [
				'slide_counter_color'      => 'color',
				'slide_counter_fontsize'   => 'font-size',
				'slide_counter_fontfamily' => 'font-family',
				'slide_counter_bg_color'   => 'background',
				'slide_counter_padding'    => 'padding',
				'slide_counter_gap_bottom' => 'bottom',
				'slide_counter_gap_left'   => 'left'
			];

			$sliderNumberUnits = [
				'slide_counter_color'      => false,
				'slide_counter_fontfamily' => false,
				'slide_counter_bg_color'   => false,
				'slide_counter_padding'    => false,
			];

			$css .= $cssHelper->generateStyle('.sp-slider
.sp-slider_number', $settings, $sliderNumberProps, $sliderNumberUnits,
['slide_counter_padding' => 'spacing']);
		}

		// Item content style
		if (isset($settings->slideshow_items) &&
is_array($settings->slideshow_items))
		{
			$increasing_addon_id = $this->addon->id;

			foreach ($settings->slideshow_items as $item_key => $item_value)
			{
				$uniqid = '#sp-slider-item-' . $this->addon->id .
'-num-' . $item_key . '-key';
				$content_alignment = (isset($item_value->content_alignment)
&& $item_value->content_alignment) ?
$item_value->content_alignment : '';

				$css .=
$cssHelper->generateStyle(".sp-slider-content-align-{$content_alignment}",
$item_value, ['slideshow_item_margin' => 'margin',
'slideshow_item_padding' => 'padding'],
['slideshow_item_margin' => false,
'slideshow_item_padding' => false]);

				if ($increasing_addon_id === $increasing_addon_id)
				{
					$increasing_addon_id++;
				}

				//Image dot style
				$slider_img = (isset($item_value->slider_img) &&
$item_value->slider_img) ? $item_value->slider_img : '';
				$slider_img_src = isset($slider_img->src) ? $slider_img->src :
$slider_img;
				$css .= $addon_id . ' .dot-controller-with_image.sp-slider
.sp-dots ul li.sp-dot-' . $item_key . ' {';

				if (strpos($slider_img_src, "http://") !== false ||
strpos($slider_img_src, "https://") !== false)
				{
					$css .= 'background: url(\'' . $slider_img_src .
'\') no-repeat scroll center center / cover;';
				}
				else
				{
					$css .= 'background: url(\'' . Uri::base() .
'/' . $slider_img_src . '\') no-repeat scroll center
center / cover;';
				}

				$css .= '}';

				if (isset($item_value->video_volume_btn) &&
$item_value->video_volume_btn)
				{
					$css .= $addon_id . ' ' . $uniqid . '.sp-item
.sp-video-control {';
					$css .= 'display:block;';
					$css .= '}';
				}
				else
				{
					$css .= $addon_id . ' ' . $uniqid . '.sp-item
.sp-video-control {';
					$css .= 'display:none;';
					$css .= '}';
				}

				if (isset($item_value->slider_overlay_options) &&
$item_value->slider_overlay_options == 'color_overlay')
				{
					if (isset($item_value->slider_bg_overlay) &&
$item_value->slider_bg_overlay)
					{
						$css .= $cssHelper->generateStyle($uniqid . '.sp-item
.sp-background:after,' . $uniqid . '.sp-item
.sp-video-background-mask', $item_value,
['slider_bg_overlay' => 'background'], false);
					}
				}

				if (isset($item_value->slider_overlay_options) &&
$item_value->slider_overlay_options == 'gradient_overlay')
				{
					if (isset($item_value->slider_bg_gradient_overlay) &&
$item_value->slider_bg_gradient_overlay)
					{
						$item_value->slider_bg_gradient_overlay =
$cssHelper->parseColor($item_value,
'slider_bg_gradient_overlay');

						$css .= $cssHelper->generateStyle($uniqid . '.sp-item
.sp-background:after,' . $uniqid . '.sp-item
.sp-video-background-mask', $item_value,
["slider_bg_gradient_overlay" => "background"],
false);
					}
				}

				if (isset($item_value->slideshow_inner_items) &&
is_array($item_value->slideshow_inner_items))
				{
					foreach ($item_value->slideshow_inner_items as $inner_item_key
=> $inner_value)
					{
						$inner_uniqid = '#sp-slider-inner-item-' .
$increasing_addon_id . '-num-' . $inner_item_key .
'-key';

						//Content type
						$content_type = (isset($inner_value->content_type) &&
$inner_value->content_type) ? $inner_value->content_type :
'';

						//Content style
						$contentStyleProps = [];

						if ($content_type !== 'image_content')
						{
							$inner_value->content_text_shadow =
$cssHelper->parseBoxShadow($inner_value,
'content_text_shadow', true);

							$contentStyleProps = array_merge($contentStyleProps,
["content_color" => "color",
"content_text_shadow" => "text-shadow"]);

							$contentTypographyFallbacks = [
								'size' => 'content_fontsize',
								'line_height' => 'content_lineheight',
								'letter_spacing' => 'content_letterspacing',
								'custom_letterspacing' =>
'custom_letterspacing'
							];
						}

						if ($content_type !== 'btn_content')
						{
							$contentStyleProps = array_merge($contentStyleProps,
["content_background" => "background",
"content_margin" => "margin"]);
						}

						if ($content_type === 'btn_content' || $content_type ===
'image_content')
						{
							$inner_value->btn_box_shadow =
$cssHelper->parseBoxShadow($inner_value, 'btn_box_shadow');
							$contentStyleProps = array_merge($contentStyleProps,
["btn_box_shadow" => "box-shadow"]);
						}

						$css .= $cssHelper->generateStyle(".sp-slider {$uniqid}
{$inner_uniqid}", $inner_value, $contentStyleProps,
['btn_box_shadow' => false, 'content_color' =>
false, "content_text_shadow" => false, 
'content_margin' => false]);

						$contentStyleProps = array_merge($contentStyleProps,
["content_padding" => "padding",
"content_border" => "border-style:
solid;border-width", "content_border_color" =>
"border-color", "content_border_radius" =>
"border-radius"]);



						if ($content_type !== 'icon_content')
						{

							$contentTypographyFallbacks = [
								'size' => 'content_fontsize',
								'font'           => 'content_font_family',
								'line_height' => 'content_lineheight',
								'letter_spacing' => 'content_letterspacing',
								'custom_letterspacing' =>
'custom_letterspacing',
								'uppercase'      =>
'content_font_style.uppercase',
								'italic'         =>
'content_font_style.italic',
								'underline'      =>
'content_font_style.underline',
								'weight'         =>
'content_font_style.weight',
							];
						}

						//Content css
						if ($content_type !== 'btn_content')
						{
							$css .= $cssHelper->generateStyle(".sp-slider {$uniqid}
{$inner_uniqid}", $inner_value, $contentStyleProps,
['content_color' => false, 'content_margin' =>
false, 'content_padding' => false, 'content_border'
=> false, 'content_border_color' => false,
'content_background' => false]);
							$css .= $cssHelper->typography(".sp-slider {$uniqid}
{$inner_uniqid}", $inner_value, 'content_typography',
$contentTypographyFallbacks);
						}

						//Image content style
						$css .= $cssHelper->generateStyle('.sp-slider ' .
$uniqid . ' ' . $inner_uniqid . ' img', $inner_value,
["image_content_height" => "height",
"image_content_width" => "width"]);

						$button_background_options =
(isset($inner_value->button_background_options) &&
$inner_value->button_background_options) ?
$inner_value->button_background_options : '';

						if ($button_background_options === 'color_bg')
						{
							$buttonNormalProps = [
								'button_background_color' => 'background'
							];

							$buttonHoverProps = [
								'button_background_color_hover' =>
'background'
							];
						}
						else
						{
							$inner_value->button_background_gradient =
$cssHelper->parseColor($inner_value,
'button_background_gradient');
							$inner_value->button_background_gradient_hover =
$cssHelper->parseColor($inner_value,
'button_background_gradient_hover');
							$buttonNormalProps = [
								'button_background_gradient' => 'background'
							];

							$buttonHoverProps = [
								'button_background_gradient_hover' =>
'background'
							];
						}

						//Button content style
						$css .= $cssHelper->generateStyle(".sp-slider {$uniqid}
{$inner_uniqid}.sppb-sp-slider-button", $inner_value,
["content_margin" => "margin"], false,
["content_margin" => "spacing"]);

						$unit = ["content_margin" => false,
"content_color" => false, "content_padding" =>
false, "content_border" => false,
"content_border_color" => false,
"content_border_radius" => "px",
"button_background_gradient" => false,
"button_background_color" => false];

						$css .= $cssHelper->generateStyle(".sp-slider {$uniqid}
{$inner_uniqid}.sppb-sp-slider-button .sp-slider-btn-text",
$inner_value, array_merge($buttonNormalProps, ["content_margin"
=> "margin", "content_color" =>
"color"], ["content_padding" => "padding",
"content_border" => "border-style:
solid;border-width", "content_border_color" =>
"border-color", "content_border_radius" =>
"border-radius"]), $unit, ["content_margin" =>
"spacing", "content_padding" =>
"spacing"]);

						$css .= $cssHelper->typography(".sp-slider {$uniqid}
{$inner_uniqid}.sppb-sp-slider-button .sp-slider-btn-text",
$inner_value, 'content_typography', $contentTypographyFallbacks);


						//Button Icon style
						$css .= $cssHelper->generateStyle(".sp-slider {$uniqid}
{$inner_uniqid}.sppb-sp-slider-button .sp-slider-btn-icon",
$inner_value, ["button_icon_margin" => "margin"],
false, ["button_icon_margin" => "spacing"]);

						//Button hover style
						$css .= $cssHelper->generateStyle(".sp-slider {$uniqid}
{$inner_uniqid}.sppb-sp-slider-button .sp-slider-btn-text:hover, .sp-slider
{$uniqid} {$inner_uniqid}.sppb-sp-slider-button
.sp-slider-btn-text:focus", $inner_value,
array_merge($buttonHoverProps, ["button_hover_color" =>
"color", "button_hover_border_color" =>
"border-color"]), false);
					}
				}
			}
		}

		//Content container style
		if ($content_container_option !== 'bootstrap')
		{
			$css .= $cssHelper->generateStyle('.sp-slider
.sp-slider-content-wrap', $settings,
['content_container_width' => 'margin: 0
auto;width'], ['content_container_width' =>
'%']);
		}

		return $css;
	}
	/**
	 * Generate the lodash template string for the frontend editor.
	 *
	 * @return 	string 	The lodash template string.
	 * @since 	1.0.0
	 */
	public static function getTemplate()
	{
		$lodash = new Lodash('#sppb-addon-{{ data.id }}');
		$output = '
		<style type="text/css">
			<# _.each (data.slideshow_items, function(item_value, item_key) { 
				var slider_img = {}
				if (typeof item_value.slider_img !== "undefined" &&
typeof item_value.slider_img.src !== "undefined") {
					slider_img = item_value.slider_img
				} else {
					slider_img = {src: item_value.slider_img}
				}
				if(slider_img.src){
			#>
					#sppb-addon-{{ data.id }} #sp-slider-item-{{ data.id }}-num-{{
item_key }}-key .sp-background {
					<# if(slider_img.src.indexOf("http://") == 0 ||
slider_img.src.indexOf("https://") == 0){ #>
						background-image: url({{ slider_img.src }});
					<# } else { #>
						background-image: url({{ pagebuilder_base + slider_img.src }});
					<# } #>
					}
			<# }
		}) #>';

		$output .= $lodash->unit('background',
'.sp-dot-indicator-wrap
.dot-indicator,.sp-indicator.line-indicator',
'data.timer_color');
		$output .= $lodash->unit('background',
'.sp-dot-indicator-wrap', 'data.timer_bg_color');
		$output .= $lodash->unit('background',
'.sp-indicator-container', 'data.timer_bg_color');
		$output .= $lodash->unit('width',
'.sp-indicator-container', 'data.timer_width',
'%');
		$output .= $lodash->unit('top',
'.sp-indicator-container', 'data.timer_top_gap',
'px');
		$output .= $lodash->unit('left',
'.sp-indicator-container', 'data.timer_left_gap',
'px');

		$output .= ' <# if (data.dot_controllers_position ==
"vertical_left" || data.dot_controllers_position ==
"vertical_right") { #> ';
		$output .= $lodash->unit('max-width', '.sp-slider
.sp-dots', 'data.dot_ctlr_width', 'px', true,
'', 'height:100%;');
		$output .= $lodash->unit('width', '.sp-slider .sp-dots
ul', 'data.dot_ctlr_width');
		$output .= '<# } #>';

		// Dots style
		$output .= $lodash->color('background-color',
'.sp-slider .sp-dots ul li', 'data.dot_ctlr_bg');
		$output .= $lodash->border('border-color', '.sp-slider
.sp-dots ul li', 'data.dot_ctlr_border_color');
		$output .= '<# if (!_.isEmpty(data.dot_ctlr_border_width)) {
#>';
		$output .= $lodash->unit('border-width', '.sp-slider
.sp-dots ul li', 'data.dot_ctlr_border_width',
'px', false, '', 'border-style:solid;');
		$output .= '<# } #>';
		$output .= $lodash->unit('border-radius', '.sp-slider
.sp-dots ul li', 'data.dot_ctlr_border_radius',
'px', false);
		$output .= $lodash->unit('height', '.sp-slider .sp-dots
ul li', 'data.dot_ctlr_height', 'px', false);
		$output .= $lodash->unit('width', '.sp-slider .sp-dots
ul li', 'data.dot_ctlr_width', 'px', false);
		$output .= $lodash->spacing('margin', '.sp-slider
.sp-dots ul li', 'data.dot_ctlr_margin');

		// Dots Active Style
		$output .= $lodash->unit('height',
'.sp-slider.dot-controller-line .sp-dots ul li.active span',
'data.dot_ctlr_hover_height', 'px', false);
		$output .= $lodash->unit('border-radius',
'.sp-slider.dot-controller-line .sp-dots ul li.active span',
'data.dot_ctlr_border_radius', 'px', false);
		$output .= $lodash->color('background-color',
'.sp-slider.dot-controller-line .sp-dots ul li.active span',
'data.dot_ctlr_center_bg');

		$output .= $lodash->unit('width',
'.sp-slider.dot-controller-line .sp-dots ul li.active',
'data.dot_ctlr_hover_width', 'px', false);
		$output .= $lodash->unit('border-radius',
'.sp-slider.dot-controller-line .sp-dots ul li.active',
'data.dot_ctlr_border_radius', 'px', false);
		$output .= $lodash->border('border-color',
'.sp-slider.dot-controller-line .sp-dots ul li.active',
'data.dot_ctlr_hover_border_color');

		$output .= '<# if (data.dot_controllers_style !==
"line") { #>';
		$output .= '<# if (data.dot_controllers_style !==
"with_image") { #>';
		$output .= $lodash->color('background-color',
'.sp-slider .sp-dots ul li span,.sp-slider .sp-dots ul li:hover
span,.sp-slider .sp-dots ul li:hover:after,.sp-slider .sp-dots ul
li:after', 'data.dot_ctlr_center_bg');
		$output .= '<# } #>';
		$output .= $lodash->unit('height', '.sp-slider .sp-dots
ul li span,.sp-slider .sp-dots ul li:hover span,.sp-slider .sp-dots ul
li:hover:after,.sp-slider .sp-dots ul li:after',
'data.dot_ctlr_hover_height', 'px', false);
		$output .= $lodash->unit('width', '.sp-slider .sp-dots
ul li span,.sp-slider .sp-dots ul li:hover span,.sp-slider .sp-dots ul
li:hover:after,.sp-slider .sp-dots ul li:after',
'data.dot_ctlr_hover_width', 'px', false);
		$output .= $lodash->unit('border-radius', '.sp-slider
.sp-dots ul li span,.sp-slider .sp-dots ul li:hover span,.sp-slider
.sp-dots ul li:hover:after,.sp-slider .sp-dots ul li:after',
'data.dot_ctlr_border_radius', 'px', false);
		$output .= $lodash->border('border-color', '.sp-slider
.sp-dots ul li.active', 'data.dot_ctlr_hover_border_color');
		$output .= '<# } #>';

		$output .= '<# if (data.dot_controllers_position ===
"bottom_center") { #>';
		$output .= $lodash->unit('bottom', '.sp-slider
.sp-dots', 'data.dot_controllers_bottom_gap',
'px');
		$output .= '<# } #>';

		$output .= '<# if (data.dot_controllers_position ===
"bottom_left") { #>';
		$output .= $lodash->unit('bottom', '.sp-slider
.sp-dots', 'data.dot_controllers_bottom_gap',
'px');
		$output .= $lodash->unit('left', '.sp-slider
.sp-dots', 'data.dot_controllers_left_gap', 'px');
		$output .= '<# } #>';

		$output .= '<# if (data.dot_controllers_position ===
"bottom_right") { #>';
		$output .= $lodash->unit('bottom', '.sp-slider
.sp-dots', 'data.dot_controllers_bottom_gap',
'px');
		$output .= $lodash->unit('left', '.sp-slider
.sp-dots', 'data.dot_controllers_right_gap',
'px');
		$output .= '<# } #>';

		$output .= '<# if (data.dot_controllers_position ===
"vertical_left") { #>';
		$output .= $lodash->unit('left',
'.dot-controller-position-vertical_left.sp-slider .sp-dots',
'data.dot_controllers_left_gap', 'px');
		$output .= '<# } #>';

		$output .= '<# if (data.dot_controllers_position ===
"vertical_right") { #>';
		$output .= $lodash->unit('right',
'.dot-controller-position-vertical_right.sp-slider .sp-dots',
'data.dot_controllers_right_gap', 'px');
		$output .= '<# } #>';

		$output .= '<# if (data.dot_controllers_position ===
"spread") { #>';
		$output .= $lodash->unit('height', '.sp-slider
.sp-nav-control', 'data.arrow_ctlr_height', 'px');
		$output .= '<# } #>';

		$output .= '<# _.isEmpty(data.arrow_ctlr_border_width) ?
data.arrow_ctlr_border_width  = 1 : data.arrow_ctlr_border_width;
#>';

		$output .= $lodash->color('background', '.sp-slider
.sp-nav-control .nav-control',
'data.arrow_ctlr_background');
		$output .= $lodash->color('color', '.sp-slider
.sp-nav-control .nav-control', 'data.arrow_ctlr_color');
		$output .= $lodash->border('border-color', '.sp-slider
.sp-nav-control .nav-control',
'data.arrow_ctlr_border_color');
		$output .= $lodash->unit('border-radius', '.sp-slider
.sp-nav-control .nav-control',
'data.arrow_ctlr_border_radius', 'px', false);
		$output .= $lodash->unit('border-width', '.sp-slider
.sp-nav-control .nav-control',
'data.arrow_ctlr_border_width', 'px', false);
		$output .= $lodash->unit('width', '.sp-slider
.sp-nav-control .nav-control', 'data.arrow_ctlr_width',
'px');
		$output .= $lodash->unit('height', '.sp-slider
.sp-nav-control, .sp-slider .sp-nav-control .nav-control',
'data.arrow_ctlr_height', 'px');
		$output .= $lodash->unit('font-size', '.sp-slider
.sp-nav-control .nav-control', 'data.arrow_ctlr_font_size',
'px');
		$output .= '<# 
		if(_.isObject(data.arrow_ctlr_width) &&
!data.arrow_ctlr_width.xl){
			data.arrow_ctlr_width.xl = 70;
		}

		if(_.isObject(data.arrow_ctlr_width)){
			data.arrow_ctlr_width.xl = (data.arrow_ctlr_width.xl * 2) + 20;
		}#>';
		$output .= $lodash->unit('width',
'div[class*="arrow-position-bottom"].sp-slider
.sp-nav-control', 'data.arrow_ctlr_width.xl',
'px');
		$output .= '<# if (data.arrow_controllers_style ==
"spread") { #>';
		$output .= $lodash->unit('top', '.sp-slider
.sp-nav-control', 'data.arrow_ctlr_height', 'px',
true, '-');
		$output .= '<# } #>';

		$output .= '<# if (_.isEmpty(data.arrow_ctlr_border_width))
{data.arrow_ctlr_border_width = 1; }  #>';

		$output .= '<# let dummy_arrow_ctlr = {}; if
(_.isObject(data.arrow_ctlr_height)) {#>';
		$output .= '<# _.each(data.arrow_ctlr_height,(ctlr_height_value,
ctlr_height_key) => dummy_arrow_ctlr[ctlr_height_key] =
ctlr_height_value - (data.arrow_ctlr_border_width * 2))#>';
		$output .= '<# } #>';

		$output .= $lodash->unit('line-height', '.sp-slider
.sp-nav-control .nav-control', 'dummy_arrow_ctlr',
'px');
		$output .= $lodash->unit('line-height', '.sp-slider
.sp-nav-control .nav-control i', 'dummy_arrow_ctlr',
'px');

		$output .= '<# if
(data.arrow_controllers_position=="bottom_center") { #>';
		$output .= $lodash->unit('bottom',
'.sp-slider.arrow-position-bottom_center .sp-nav-control',
'data.arrow_controllers_bottom_gap', 'px');
		$output .= '<# } #>';

		$output .= '<# if
(data.arrow_controllers_position=="bottom_left") { #>';
		$output .= $lodash->unit('bottom',
'.sp-slider.arrow-position-bottom_left .sp-nav-control',
'data.arrow_controllers_bottom_gap', 'px');
		$output .= $lodash->unit('left',
'.sp-slider.arrow-position-bottom_left .sp-nav-control',
'data.arrow_controllers_left_gap', 'px');
		$output .= '<# } #>';

		$output .= '<# if
(data.arrow_controllers_position=="bottom_right") { #>';
		$output .= $lodash->unit('bottom',
'.sp-slider.arrow-position-bottom_right .sp-nav-control',
'data.arrow_controllers_bottom_gap', 'px');
		$output .= $lodash->unit('right',
'.sp-slider.arrow-position-bottom_right .sp-nav-control',
'data.arrow_controllers_right_gap', 'px');
		$output .= '<# } #>';

		$output .= '<# if
(data.arrow_controllers_style==="spread") { #>';
		$output .= $lodash->unit('left', 'div.sp-slider
.sp-nav-control', 'data.arrow_spread_controllers_left_gap',
'px');
		$output .= $lodash->unit('right', 'div.sp-slider
.sp-nav-control', 'data.arrow_spread_controllers_right_gap',
'px');
		$output .= '<# } #>';

		$output .= $lodash->color('background', '.sp-slider
.sp-nav-control .nav-control:hover',
'data.arrow_ctlr_hover_background');
		$output .= $lodash->color('color', '.sp-slider
.sp-nav-control .nav-control:hover',
'data.arrow_ctlr_hover_color');
		$output .= $lodash->border('border-color', '.sp-slider
.sp-nav-control .nav-control:hover',
'data.arrow_ctlr_hover_border_color');

		$output .= $lodash->color('color', '.sp-slider
.sp-slider_number', 'data.slide_counter_color');
		$output .= $lodash->color('background', '.sp-slider
.sp-slider_number', 'data.slide_counter_bg_color');
		$output .= $lodash->unit('font-size', '.sp-slider
.sp-slider_number', 'data.slide_counter_fontsize',
'px');
		$output .= $lodash->unit('font-family', '.sp-slider
.sp-slider_number', 'data.slide_counter_fontfamily',
'', false);
		$output .= $lodash->unit('bottom', '.sp-slider
.sp-slider_number', 'data.slide_counter_gap_bottom',
'px');
		$output .= $lodash->unit('left', '.sp-slider
.sp-slider_number', 'data.slide_counter_gap_left',
'px');
		$output .= $lodash->spacing('padding', '.sp-slider
.sp-slider_number', 'data.slide_counter_padding');

		$output .= ' <# if (!_.isEmpty(data.slideshow_items) &&
data.slideshow_items) {
			_.each (data.slideshow_items, function(item_value, item_key) {
			let uniqid = `#sp-slider-item-${data.id}-num-${item_key}-key`; 
			let content_alignment = (!_.isEmpty(item_value.content_alignment)
&& item_value.content_alignment) ? item_value.content_alignment :
"";
		#>';

		$output .= '
				#sppb-addon-{{ data.id }} .dot-controller-with_image.sp-slider .sp-dots
ul li.sp-dot-{{item_key}}{
					<#
					var slider_img = {}
					if (typeof item_value.slider_img !== "undefined" &&
typeof item_value.slider_img.src !== "undefined") {
						slider_img = item_value.slider_img
					} else {
						slider_img = {src: item_value.slider_img}
					}
					if(slider_img.src){
						if(slider_img.src.indexOf("http://") == 0 ||
slider_img.src.indexOf("https://") == 0){
					#>
							background: url({{slider_img.src}}) no-repeat scroll center center /
cover;
						<# } else { #>
							background: url({{pagebuilder_base + slider_img.src}}) no-repeat
scroll center center / cover;
						<# }
					} #>
				}';

		$output .= $lodash->spacing('margin',
'.sp-slider-content-align-{{content_alignment}}',
'item_value.slideshow_item_margin');
		$output .= $lodash->spacing('padding',
'.sp-slider-content-align-{{content_alignment}}',
'item_value.slideshow_item_padding');
		$output .= '<# if (item_value.slider_overlay_options !==
"undefined" && item_value.slider_overlay_options ===
"color_overlay"){ #>';
		$output .= $lodash->color('background',
'{{uniqid}}.sp-item .sp-background:after, {{uniqid}}.sp-item
.sp-video-background-mask', 'item_value.slider_bg_overlay');
		$output .= '<# } else if(item_value.slider_overlay_options !==
"undefined" && item_value.slider_overlay_options ===
"gradient_overlay") { #>';
		$output .= $lodash->color('background-color',
'{{uniqid}}.sp-item .sp-background:after,{{uniqid}}.sp-item
.sp-video-background-mask',
'item_value.slider_bg_gradient_overlay');
		$output .= '<# } #>';
		$output .= '	
				<# if(item_value.video_volume_btn !== "undefined"
&& item_value.video_volume_btn){ #>
					#sppb-addon-{{ data.id }} {{uniqid}}.sp-item .sp-video-control {
						display:block;
					}
				<# } else { #>
					#sppb-addon-{{ data.id }} {{uniqid}}.sp-item .sp-video-control {
						display:none;
					}
				<# } #>

				<# if (!_.isEmpty(item_value.slideshow_inner_items)) {
					_.each (item_value.slideshow_inner_items, function(inner_value,
inner_item_key) {
						let inner_uniqid =
`#sp-slider-inner-item-${data.id}-num-${inner_item_key}-key`;
				#>';
		$output .= '<# if (inner_value.content_type !==
"image_content") { #>';
		$output .= $lodash->color('color', '.sp-slider
{{uniqid}} {{inner_uniqid}}', 'inner_value.content_color');
		// $output .= $lodash->unit('font-size', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_fontsize', 'px');
		// $output .= $lodash->unit('line-height', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_lineheight', 'px');
		$output .= $lodash->textShadow('.sp-slider {{uniqid}}
{{inner_uniqid}}', 'inner_value.content_text_shadow');
		$output .= $lodash->typography('.sp-slider {{uniqid}}
{{inner_uniqid}}', 'inner_value.content_typography', [
			'font'           =>
'inner_value.content_font_family',
			'size'           =>
'inner_value.content_fontsize',
			'line_height'    =>
'inner_value.content_lineheight',
			'letter_spacing' =>
'inner_value.content_letterspacing',
			'uppercase'      =>
'inner_value.content_font_style?.uppercase',
			'italic'         =>
'inner_value.content_font_style?.italic',
			'underline'      =>
'inner_value.content_font_style?.underline',
			'weight'         =>
'inner_value.content_font_style?.weight',
		]);
		// $output .= $lodash->unit('letter-spacing',
'.sp-slider {{uniqid}} {{inner_uniqid}}',
('inner_value.content_letterspacing' !== "custom") ?
'inner_value.content_letterspacing' :
'inner_value.custom_letterspacing');
		$output .= '<# } #>';

		$output .= '<# if (inner_value.content_type !==
"btn_content") { #>';
		$output .= $lodash->color('background', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_background');
		$output .= $lodash->spacing('margin', '.sp-slider
{{uniqid}} {{inner_uniqid}}', 'inner_value.content_margin');
		$output .= $lodash->spacing('padding', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_padding');
		$output .= '<# if (!_.isEmpty(inner_value.content_border)
&& _.trim(inner_value.content_border)) { #>';
		$output .= '<# inner_value.border_style =
"solid"#>';
		$output .= $lodash->border('border-style', '.sp-slider
{{uniqid}} {{inner_uniqid}}', 'inner_value.border_style');
		$output .= '<# } #>';
		$output .= $lodash->border('border-width', '.sp-slider
{{uniqid}} {{inner_uniqid}}', 'inner_value.content_border');
		$output .= $lodash->border('border-color', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_border_color');
		$output .= $lodash->unit('border-radius', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_border_radius', 'px', false);
		$output .= '<# } #>';
		$output .= '<# if (inner_value.content_type ==
"btn_content" || inner_value.content_type ==
"image_content") { #>';
		$output .= $lodash->boxShadow('.sp-slider {{uniqid}}
{{inner_uniqid}}', 'inner_value.btn_box_shadow');
		$output .= '<# } #>';

		$output .= '<# if (!["icon_content",
"btn_content"].includes(inner_value.content_type)) { #>';
		$output .= $lodash->unit('font-family', '.sp-slider
{{uniqid}} {{inner_uniqid}}',
'inner_value.content_font_family');
		$output .= $lodash->typography('.sp-slider {{uniqid}}
{{inner_uniqid}}', 'inner_value.content_typography', [
			'font'           =>
'inner_value.content_font_family',
			'size'           =>
'inner_value.content_fontsize',
			'line_height'    =>
'inner_value.content_lineheight',
			'letter_spacing' =>
'inner_value.content_letterspacing',
			'uppercase'      =>
'inner_value.content_font_style?.uppercase',
			'italic'         =>
'inner_value.content_font_style?.italic',
			'underline'      =>
'inner_value.content_font_style?.underline',
			'weight'         =>
'inner_value.content_font_style?.weight',
		]);
		$output .= '<# } else if (inner_value.content_type ===
"btn_content") { #>';
		$output .= $lodash->typography('.sp-slider {{uniqid}}
{{inner_uniqid}}.sppb-sp-slider-button .sp-slider-btn-text',
'inner_value.content_typography', [
			'font'           =>
'inner_value.content_font_family',
			'size'           =>
'inner_value.content_fontsize',
			'line_height'    =>
'inner_value.content_lineheight',
			'letter_spacing' =>
'inner_value.content_letterspacing',
			'uppercase'      =>
'inner_value.content_font_style?.uppercase',
			'italic'         =>
'inner_value.content_font_style?.italic',
			'underline'      =>
'inner_value.content_font_style?.underline',
			'weight'         =>
'inner_value.content_font_style?.weight',
		]);
		$output .= '<# } #>';

		$output .= '<#
						let image_content_style = "";

						var image_content = {}
						if(!_.isEmpty(inner_value.image_content) &&
inner_value.image_content){
							if (typeof inner_value.image_content !== "undefined"
&& typeof inner_value.image_content.src !== "undefined")
{
								image_content = inner_value.image_content
							} else {
								image_content = {src: inner_value.image_content}
							}
						}

						if(image_content.src){
							if(image_content.src.indexOf("http://") == 0 ||
image_content.src.indexOf("https://") == 0){
								image_content_style +=
`background-image:url(${image_content.src});background-size:100%
100%;background-position:center
center;background-attachment:scroll;background-repeat: no-repeat;`;
							} else {
								image_content_style +=
`background-image:url(${image_content.src});background-size:100%
100%;background-position:center
center;background-attachment:scroll;background-repeat: no-repeat;`;
							}
						}
						#>

						.sp-slider {{uniqid}} {{inner_uniqid}} .sp-slider-caption-image {
							{{image_content_style}}
						} #>';

		$output .= '<#
			if (_.isEmpty(inner_value.image_content_height)) {
				inner_value.image_content_height = {xl: 385, lg: 385, md: "",
sm: "", xs: ""};
			}

			inner_value.inner_content_min_height = 385;

			if(!Object.prototype.hasOwnProperty.call(inner_value,
"image_content_width") ||
_.isEmpty(inner_value.image_content_width)) {
				inner_value.image_content_width = 400;
			}
		#>';

		$output .= $lodash->unit('min-height', '.sp-slider
{{uniqid}} {{inner_uniqid}} .sp-slider-caption-image',
'inner_value.inner_content_min_height', 'px');
		$output .= $lodash->unit('height', '.sp-slider
{{uniqid}} {{inner_uniqid}} .sp-slider-caption-image',
'inner_value.image_content_height', 'px');
		$output .= $lodash->unit('width', '.sp-slider
{{uniqid}} {{inner_uniqid}} .sp-slider-caption-image',
'inner_value.image_content_width', 'px');

		$output .= '<# if (inner_value.button_background_options ===
"color_bg") { #>';
		$output .= $lodash->color('background', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text',
'inner_value.button_background_color');
		$output .= $lodash->color('color', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text', 'inner_value.content_color');

		$output .= '<# } else { #>';
		$output .= $lodash->color('background', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text',
'inner_value.button_background_gradient');
		$output .= $lodash->color('background', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text',
'inner_value.button_background_gradient_hover');
		$output .= '<# } #>';

		// Border Style
		$output .= '<# if (!_.isEmpty(inner_value.content_border)
&& _.trim(inner_value.content_border)) { #>';
		$output .= '<# inner_value.border_style =
"solid"#>';
		$output .= $lodash->border('border-style', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text', 'inner_value.border_style');
		$output .= $lodash->border('border-width', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text', 'inner_value.content_border');
		$output .= '<# } #>';
		$output .= $lodash->border('border-color', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text', 'inner_value.content_border_color');
		$output .= $lodash->unit('border-radius', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text', 'inner_value.content_border_radius',
'px');
		$output .= $lodash->color('background', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text:hover',
'inner_value.button_background_color_hover');
		$output .= $lodash->color('color', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text:hover, .sp-slider {{uniqid}}
{{inner_uniqid}}.sppb-sp-slider-button .sp-slider-btn-text:focus',
'inner_value.button_hover_color');
		$output .= $lodash->border('border-color', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text:hover, .sp-slider {{uniqid}}
{{inner_uniqid}}.sppb-sp-slider-button .sp-slider-btn-text:focus',
'inner_value.button_hover_border_color');
		$output .= $lodash->spacing('margin', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button',
'inner_value.content_margin');
		$output .= $lodash->spacing('padding', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-text', 'inner_value.content_padding');
		$output .= $lodash->spacing('margin', '.sp-slider
{{uniqid}} {{inner_uniqid}}.sppb-sp-slider-button
.sp-slider-btn-icon', 'inner_value.button_icon_margin');

		$output .= '<# })
				}
			})
		} #>';

		$output .= $lodash->spacing('padding',
'.sp-slider-custom-dot-indecators',
'data.text_thumb_ctlr_wrap_padding');
		$output .= $lodash->color('background',
'.sp-slider-custom-dot-indecators',
'data.text_thumb_ctlr_wrap_bg');
		$output .= $lodash->unit('width',
'.sp-slider-custom-dot-indecators',
'data.text_thumb_ctlr_wrap_width', '%');

		$output .= $lodash->unit('width',
'.sp-slider-custom-dot-indecators ul li',
'data.text_thumb_ctlr_individual_width', 'px');

		$output .= $lodash->color('color',
'.sp-slider-text-thumb-number',
'data.text_thumb_number_color');
		$output .= $lodash->unit('font-weight',
'.sp-slider-text-thumb-number',
'data.text_thumb_number_font_weight', '', false);
		$output .= $lodash->unit('font-size',
'.sp-slider-text-thumb-number',
'data.text_thumb_number_font_size', 'px');

		$output .= $lodash->color('color',
'.sp-slider-dot-indecator-text.sp-dot-text-key-1',
'data.text_thumb_title_color');
		$output .= $lodash->unit('font-weight',
'.sp-slider-dot-indecator-text.sp-dot-text-key-1',
'data.text_thumb_title_font_weight', '', false);
		$output .= $lodash->unit('font-size',
'.sp-slider-dot-indecator-text.sp-dot-text-key-1',
'data.text_thumb_title_font_size', 'px');
		$output .= $lodash->unit('line-height',
'.sp-slider-dot-indecator-text.sp-dot-text-key-1',
'data.text_thumb_title_lineheight', 'px');

		$output .= $lodash->color('color',
'.sp-slider-dot-indecator-text.sp-dot-text-key-2',
'data.text_thumb_subtitle_color');
		$output .= $lodash->unit('font-weight',
'.sp-slider-dot-indecator-text.sp-dot-text-key-2',
'data.text_thumb_subtitle_font_weight', '', false);
		$output .= $lodash->unit('font-size',
'.sp-slider-dot-indecator-text.sp-dot-text-key-2',
'data.text_thumb_subtitle_font_size', 'px');

		$output .= $lodash->unit('width', '.sp-slider
.sp-slider-content-wrap', 'data.content_container_width',
'%', true, '', 'margin: 0 auto;');
		$output .= '
		</style>
			
			<# 
			let content_class = (!_.isEmpty(data.class) && data.class) ? 
data.class : "";
			let slide_vertically = (typeof data.slide_vertically !==
"undefined" && data.slide_vertically) ? true : false;
			let autoplay = (typeof data.autoplay !== "undefined"
&& data.autoplay) ? true : false;
			let pause_on_hover = (typeof data.pause_on_hover !==
"undefined" && data.pause_on_hover) ? true : false;
			let interval = (!_.isEmpty(data.interval) && data.interval) ?
data.interval : 5;
			let speed = (!_.isEmpty(data.speed) && data.speed) ? data.speed
: 800;

			let height = (!_.isEmpty(data.height) && data.height) ?
data.height : "";
			let slider_animation = (!_.isEmpty(data.slider_animation) &&
data.slider_animation) ? data.slider_animation : "";

			let dataVerticleSlide = "";
			if(slider_animation === "stack"){
				dataVerticleSlide =
\'data-slide-vertically="\'+(slide_vertically ?
"true" : "false")+\'"\';
			}
			let data_three_d_rotate = "";
			if(slider_animation === "3D"){
				data_three_d_rotate =
\'data-3d-rotate="\'+(data.three_d_rotate ?
data.three_d_rotate : "15")+\'"\';
			}
			let timer = (typeof data.timer !== "undefined" &&
data.timer) ? true : false;

			let dot_controllers = (typeof data.dot_controllers !==
"undefined" && data.dot_controllers) ? true : false;
			let dot_controllers_style = (!_.isEmpty(data.dot_controllers_style)
&& data.dot_controllers_style) ? data.dot_controllers_style :
"";
			let dot_controllers_position =
(!_.isEmpty(data.dot_controllers_position) &&
data.dot_controllers_position) ? data.dot_controllers_position :
"";

			let arrow_controllers = (typeof
data.arrow_controllers!=="undefined" &&
data.arrow_controllers) ? true : false;
			let arrow_controllers_content =
(!_.isEmpty(data.arrow_controllers_content) &&
data.arrow_controllers_content) ? data.arrow_controllers_content :
"text_only";
			let arrow_controllers_style = (!_.isEmpty(data.arrow_controllers_style)
&& data.arrow_controllers_style) ? data.arrow_controllers_style :
"";
			let arrow_controllers_position =
(!_.isEmpty(data.arrow_controllers_position) &&
data.arrow_controllers_position) ? data.arrow_controllers_position :
"";
			let arrow_on_hover = (typeof data.arrow_on_hover!=="undefined"
&& data.arrow_on_hover) ? true : false;
			
			let line_indecator = (typeof data.line_indecator!=="undefined"
&& data.line_indecator) ? true : false;

			let slide_counter = (typeof data.slide_counter!=="undefined"
&& data.slide_counter) ? true : false;
			
			let slider_height_xl = "";
			let slider_height_lg = "";
			let slider_height_md = "";
			let slider_height_sm = "";
			let slider_height_xs = "";
			
			if(height=="full"){
				slider_height_xl = "full";
				slider_height_lg = "full";
				slider_height_md = "full";
				slider_height_sm = "full";
				slider_height_xs = "full";
			} else {
				const {xl, lg, md, sm, xs} = data.custom_height;
				slider_height_xl = `${xl}px`;
				slider_height_lg = `${lg}px`;
				slider_height_md = `${md}px`;
				slider_height_sm = `${sm}px`;
				slider_height_xs = `${xs}px`;
			}

			let dot_style_class = "";
			let dot_position_class ="";
			if(dot_controllers){
				if(dot_controllers_style){
					dot_style_class = "dot-controller-" + dot_controllers_style;
				}
				if(dot_controllers_position){
					dot_position_class = "dot-controller-position-" +
dot_controllers_position;
				}
			}
			
			let arrow_position_class = "";
			if(arrow_controllers_style == "along" && 
arrow_controllers_position){
				arrow_position_class = "arrow-position-" +
arrow_controllers_position;
			}
			let arrow_hover_class = "";
			if(arrow_on_hover){
				arrow_hover_class = "arrow-show-on-hover";
			}
			
			let content_vertical_alignment = (typeof data.content_vertical_alignment
!== "undefined" && data.content_vertical_alignment) ?
"slider-content-vercally-center" : "";
			var dots = "";
			#>
			<div id="sppb-sp-slider-{{data.id}}"
data-id="sppb-sp-slider-{{data.id}}"
class="sppb-addon-sp-slider sp-slider {{content_class}}
{{dot_style_class}} {{dot_position_class}} {{arrow_position_class}}
{{arrow_hover_class}}" data-height-xl="{{slider_height_xl}}"
 data-height-lg="{{slider_height_lg}}"
data-height-md="{{slider_height_md}}"
data-height-sm="{{slider_height_sm}}"
data-height-xs="{{slider_height_xs}}"
data-slider-animation="{{slider_animation}}"
{{{dataVerticleSlide}}} {{{data_three_d_rotate}}}
data-autoplay="{{autoplay}}" data-interval="{{interval *
1000}}" data-timer="{{timer}}"
data-speed="{{speed}}"
data-dot-control="{{dot_controllers}}"
data-arrow-control="{{arrow_controllers}}"
data-indecator="{{line_indecator}}"
data-arrow-content="{{arrow_controllers_content}}"
data-slide-count="{{slide_counter}}"
data-dot-style="{{data.dot_controllers_style}}"
data-pause-hover="{{(pause_on_hover && autoplay ?
\'true\' : \'false\')}}">
			<#
				if(!_.isEmpty(data.slideshow_items)){
					_.each (data.slideshow_items, function(item_value, item_key) {
						let uniqid = `sp-slider-item-${data.id}-num-${item_key}-key`;
						let last_field_key = item_key;
						let activeClass = "";
						if(item_key==0){
							activeClass = "active";
						}
			#>

					<div id="{{uniqid}}" class="sp-item {{activeClass}}
{{content_vertical_alignment}}">
					<# if(data.content_container_option==="bootstrap"){ #>
						<div class="sppb-container">
						<div class="sppb-row">
						<div class="sppb-col-sm-12">
					<# } else { #>
						<div class="sp-slider-content-wrap">
					<# }

						var image_in_column = (typeof item_value.image_in_column !==
"undefined" && item_value.image_in_column) ? true :
false;
						
						var image_column_width_lg =
(_.isObject(item_value.image_column_width) &&
item_value.image_column_width.xl) ?
Number(item_value.image_column_width.xl) : 6;
						var image_column_width_md =
(_.isObject(item_value.image_column_width) &&
item_value.image_column_width.lg) ?
Number(item_value.image_column_width.lg) : 6;
						var image_column_width_sm =
(_.isObject(item_value.image_column_width) &&
item_value.image_column_width.md) ?
Number(item_value.image_column_width.md) : 6;
						var image_column_width_xs =
(_.isObject(item_value.image_column_width) &&
item_value.image_column_width.sm) ?
Number(item_value.image_column_width.sm) : 6;
						var image_column_width = (_.isObject(item_value.image_column_width)
&& item_value.image_column_width.xs) ?
Number(item_value.image_column_width.xs) : 6;

						var image_column_reverse = (typeof
item_value.image_column_reverse!=="undefined" &&
item_value.image_column_reverse) ? true : false;
						var icon_display_block = (typeof
item_value.icon_display_block!=="undefined" &&
item_value.icon_display_block) ? "sp-slider-icon-block" :
"";
						var content_alignment = (!_.isEmpty(item_value.content_alignment)
&& item_value.content_alignment) ? item_value.content_alignment :
"";
						var image_content_alignment =
(!_.isEmpty(item_value.image_content_alignment) &&
item_value.image_content_alignment) ? item_value.image_content_alignment :
"";

							if(!image_in_column){
					#>
								<div
class="sp-slider-content-align-{{content_alignment}}">
								<#
								_.each(item_value.slideshow_inner_items, function(inner_value,
inner_item_key){
									let last_field_inner_key =
`slideshow_inner_items-${inner_item_key}`;
									let inner_uniqid =
`sp-slider-inner-item-${data.id}-num-${inner_item_key}-key`;
									let animation_timing_function =
(!_.isEmpty(inner_value.animation_timing_function) &&
inner_value.animation_timing_function) ?
inner_value.animation_timing_function : "";
									let animation_cubic_bezier_value =
(!_.isEmpty(inner_value.animation_cubic_bezier_value) &&
inner_value.animation_cubic_bezier_value) ?
inner_value.animation_cubic_bezier_value.replace(/\s/g,"") :
"";
									if(animation_timing_function == "cubic-bezier"){
										animation_timing_function =
`cubic-bezier(${animation_cubic_bezier_value})`;
									}
									let animation_settings = {};
									if(inner_value.content_animation_type == "rotate"){
										animation_settings = {
											"type":"rotate",
											"from":inner_value.animation_rotate_from +
"deg",
											"to":inner_value.animation_rotate_to +
"deg",
											"duration":inner_value.animation_duration,
											"after":inner_value.animation_delay,
											"timing_function":animation_timing_function,
										};
									} else if(inner_value.content_animation_type ==
"text-animate"){
										animation_settings = {
											"type":"text-animate",
											"direction":inner_value.animation_slide_direction,
											"duration":inner_value.animation_duration,
											"after":inner_value.animation_delay,
											"timing_function":animation_timing_function,
										}
									} else if(inner_value.content_animation_type == "zoom"){
										animation_settings = {
											"type":"zoom",
											"direction":"zoomIn",
											"from":0,
											"to":1,
											"duration":inner_value.animation_duration,
											"after":inner_value.animation_delay,
											"timing_function":animation_timing_function,
										};
									} else {
										animation_settings = {
											"type":"slide",
											"direction":inner_value.animation_slide_direction,
											"from":inner_value.animation_slide_from+"%",
											"to":"0%",
											"duration":inner_value.animation_duration,
											"after":inner_value.animation_delay,
											"timing_function":animation_timing_function,
										};
									}

									let animationJson = JSON.stringify(animation_settings);

									let btn_content = "";
									let btn_icon_arr = (typeof inner_value.button_icon !==
"undefined" && inner_value.button_icon) ?
inner_value.button_icon.split(" ") : "";
									let btn_icon_name = btn_icon_arr.length === 1 ? "fa
"+inner_value.button_icon : inner_value.button_icon;
									
									if (inner_value.button_icon_position == "left") {
										if(inner_value.button_icon) {
											btn_content = \'<span
class="sp-slider-btn-text"> <span
class="sp-slider-btn-icon"> <i class="\' +
btn_icon_name + \'"></i></span> \' +
inner_value?.btn_content + \'</span>\';
										} else {
											btn_content = \'<span
class="sp-slider-btn-text">\' + inner_value?.btn_content
+ \'</span>\';
										} 
									} else {
										if(inner_value.button_icon){
											btn_content = \'<span
class="sp-slider-btn-text">\' + inner_value?.btn_content
+ \' <span class="sp-slider-btn-icon"><i
class="\' + btn_icon_name +
\'"></i></span></span>\';
										} else {
											btn_content = \'<span
class="sp-slider-btn-text">\'+ inner_value?.btn_content +
\'</span>\';
										}
									}
									let content_class = typeof inner_value.content_class !==
"undefined" && inner_value.content_class ?
inner_value.content_class : "";

									if(inner_value.content_type == "text_content"){
								#>
										<div id="{{inner_uniqid}}"
class="sppb-sp-slider-text sp-editable-content {{content_class}}"
data-id={{data.id}}
data-fieldName="{{last_field_key}}-{{last_field_inner_key}}-content_text"
data-layer="true" data-animation={{animationJson}}>
											{{{inner_value.content_text}}}
										</div>
									<# } else if(inner_value.content_type ==
"image_content"){ #>
										<div id="{{inner_uniqid}}"
class="sppb-sp-slider-image {{content_class}}"
data-layer="true" data-animation={{animationJson}}>
											<div
class="sp-slider-caption-image"></div>
										</div>
									<# } else if(inner_value.content_type ==
"btn_content"){ #>
										<# 
										let buttonUrl = _.isObject(inner_value.button_url) ?
inner_value.button_url : window.getSiteUrl(inner_value.button_url,
inner_value.button_target === 1 ? "_blank" : "");
										const {url, page, menu, type, new_tab, nofollow, noopener,
noreferrer} = buttonUrl;
										const target = new_tab ? "_blank": "";
										let rel="";
										rel += nofollow ? "nofollow": "";
										rel += noopener ? " noopener": "";
										rel += noreferrer ? " noreferrer": "";
									
										let newUrl = "";
										if(type === "url") newUrl = url;
										if(type === "menu") newUrl = menu;
										if(type === "page") newUrl = page ?
`index.php?option=com_sppagebuilder&view=page&id=${page}` :
"";
										#>

										<a id="{{inner_uniqid}}" target="{{ target
}}" rel="{{ rel }}" class="sppb-sp-slider-button
{{content_class}}" href="{{newUrl}}"
data-layer="true" data-animation={{animationJson}}>
										{{{btn_content}}}
										</a>
									<# } else if(inner_value.content_type ==
"icon_content"){ 
									let content_icon_arr = !_.isEmpty(inner_value.icon_content) ?
inner_value.icon_content.split(" ") : "";
									let content_icon_name = content_icon_arr.length === 1 ? "fa
"+inner_value.icon_content : faIconList.version === 4 ? "fa
" +content_icon_arr[1] : inner_value.icon_content;	
									#>
										<span id="{{inner_uniqid}}"
class="sppb-sp-slider-icon {{content_class}}
{{icon_display_block}}" data-layer="true"
data-animation={{animationJson}}>
											<span
class="{{content_icon_name}}"></span>
										</span>
									<# } else if(inner_value.content_type ==
"title_content") { 
										if(!inner_value.title_heading_selector){
											inner_value.title_heading_selector = "h2";
										}
									#>
										<{{inner_value.title_heading_selector}}
id="{{inner_uniqid}}" class="sppb-sp-slider-title
sp-inline-editable-element {{content_class}}" data-id={{data.id}}
data-fieldName="title_content_title"
data-itemPosition={{inner_item_key}} data-slideNumber={{last_field_key}}
contenteditable="true" data-layer="true"
data-animation={{animationJson}}>
											{{{inner_value.title_content_title}}}
										</{{inner_value.title_heading_selector}}>
									<# }

								}) #>
								</div>
							<# } else { #>
								<div class="sppb-row">
									<# if(!image_column_reverse){ #>
										<div class="sppb-col-xs-{{image_column_width_xs === 12 ?
12 : 12-image_column_width_xs}} sppb-col-sm-{{image_column_width_sm === 12
? image_column_width_sm : 12-image_column_width_sm}}
sppb-col-md-{{image_column_width_md === 12 ? image_column_width_md :
12-image_column_width_md}} sppb-col-lg-{{image_column_width_lg === 12 ?
image_column_width_lg : 12-image_column_width_lg}}
sppb-col-{{image_column_width === 12 ? image_column_width :
12-image_column_width}}">
											<div
class="sp-slider-content-align-{{content_alignment}}">
												<#
												_.each(item_value.slideshow_inner_items, function(inner_value,
inner_item_key){
													let last_field_inner_key =
`slideshow_inner_items-${inner_item_key}`;
													let inner_uniqid =
`sp-slider-inner-item-${data.id}-num-${inner_item_key}-key`;
													let animation_timing_function =
(!_.isEmpty(inner_value.animation_timing_function) &&
inner_value.animation_timing_function) ?
inner_value.animation_timing_function : "";
													let animation_cubic_bezier_value =
(!_.isEmpty(inner_value.animation_cubic_bezier_value) &&
inner_value.animation_cubic_bezier_value) ?
inner_value.animation_cubic_bezier_value.replace(/\s/g,"") :
"";
													if(animation_timing_function == "cubic-bezier"){
														animation_timing_function =
`cubic-bezier(${animation_cubic_bezier_value})`;
													}
													let animation_settings = {};
													if(inner_value.content_animation_type == "rotate"){
														animation_settings = {
															"type":"rotate",
															"from":inner_value.animation_rotate_from +
"deg",
															"to":inner_value.animation_rotate_to +
"deg",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else if(inner_value.content_animation_type ==
"text-animate"){
														animation_settings = {
															"type":"text-animate",
															"direction":inner_value.animation_slide_direction,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														}
													} else if(inner_value.content_animation_type ==
"zoom"){
														animation_settings = {
															"type":"zoom",
															"direction":"zoomIn",
															"from":0,
															"to":1,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else {
														animation_settings = {
															"type":"slide",
															"direction":inner_value.animation_slide_direction,
															"from":inner_value.animation_slide_from+"%",
															"to":"0%",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													}
				
													let animationJson = JSON.stringify(animation_settings);
				
													let btn_content = "";
													let btn_icon_arr = (typeof inner_value.button_icon !==
"undefined" && inner_value.button_icon) ?
inner_value.button_icon.split(" ") : "";
													let btn_icon_name = btn_icon_arr.length === 1 ? "fa
"+inner_value.button_icon : inner_value.button_icon;
													
													if (inner_value.button_icon_position == "left") {
														if(inner_value.button_icon) {
															btn_content = \'<span
class="sp-slider-btn-text"> <span
class="sp-slider-btn-icon"> <i class="\' +
btn_icon_name + \'"></i></span> \' +
inner_value?.btn_content + \'</span>\';
														} else {
															btn_content = \'<span
class="sp-slider-btn-text">\' + inner_value?.btn_content
+ \'</span>\';
														} 
													} else {
														if(inner_value.button_icon){
															btn_content = \'<span
class="sp-slider-btn-text">\' + inner_value?.btn_content
+ \' <span class="sp-slider-btn-icon"><i
class="\' + btn_icon_name +
\'"></i></span></span>\';
														} else {
															btn_content = \'<span
class="sp-slider-btn-text">\'+ inner_value?.btn_content +
\'</span>\';
														}
													}
													let content_class = typeof inner_value.content_class !==
"undefined" && inner_value.content_class ?
inner_value.content_class : "";
				
													if(inner_value.content_type == "text_content"){
												#>
														<div id="{{inner_uniqid}}"
class="sppb-sp-slider-text sp-editable-content {{content_class}}"
data-id={{data.id}}
data-fieldName="{{last_field_key}}-{{last_field_inner_key}}-content_text"
data-layer="true" data-layer="true"
data-animation={{animationJson}}>
															{{{inner_value.content_text}}}
														</div>
													<# } else if(inner_value.content_type ==
"btn_content"){ #>
														<# 
														let buttonUrl = _.isObject(inner_value.button_url) ?
inner_value.button_url : window.getSiteUrl(inner_value.button_url,
inner_value.button_target === 1 ? "_blank" : "");
														const {url, page, menu, type, new_tab, nofollow, noopener,
noreferrer} = buttonUrl;
														const target = new_tab ? "_blank": "";
														let rel="";
														rel += nofollow ? "nofollow": "";
														rel += noopener ? " noopener": "";
														rel += noreferrer ? " noreferrer": "";
													
														let newUrl = "";
														if(type === "url") newUrl = url;
														if(type === "menu") newUrl = menu;
														if(type === "page") newUrl = page ?
`index.php?option=com_sppagebuilder&view=page&id=${page}` :
"";
														#>
														<a id="{{inner_uniqid}}" target="{{ target
}}" rel="{{ rel }}"  class="sppb-sp-slider-button
{{content_class}}" href="{{newUrl}}"
data-layer="true" data-animation={{animationJson}}>
														{{{btn_content}}}
														</a>
													<# } else if(inner_value.content_type ==
"icon_content"){
														let content_icon_arr = !_.isEmpty(inner_value.icon_content) ?
inner_value.icon_content.split(" ") : "";
														let content_icon_name = content_icon_arr.length === 1 ?
"fa "+inner_value.icon_content : faIconList.version === 4 ?
"fa " +content_icon_arr[1] : inner_value.icon_content;
													#>
														<span id="{{inner_uniqid}}"
class="sppb-sp-slider-icon {{content_class}}
{{icon_display_block}}" data-layer="true"
data-animation={{animationJson}}>
															<span
class="{{content_icon_name}}"></span>
														</span>
													<# } else if(inner_value.content_type ==
"title_content") { 
														if(!inner_value.title_heading_selector){
															inner_value.title_heading_selector = "h2";
														}
													#>
														<{{inner_value.title_heading_selector}}
id="{{inner_uniqid}}" class="sppb-sp-slider-title
sp-inline-editable-element {{content_class}}" data-id={{data.id}}
data-fieldName="title_content_title"
contenteditable="true" data-itemPosition={{inner_item_key}}
data-slideNumber={{last_field_key}} data-layer="true"
data-animation={{animationJson}}>
															{{{inner_value.title_content_title}}}
														</{{inner_value.title_heading_selector}}>
													<# }
				
												}) #>
											</div>
										</div>
										<div class="sppb-col-xs-{{image_column_width_xs}}
sppb-col-sm-{{image_column_width_sm}} sppb-col-md-{{image_column_width_md}}
sppb-col-lg-{{image_column_width_lg}}
sppb-col-{{image_column_width}}">
											<div
class="sp-slider-image-align-{{image_content_alignment}}">
												<#
												_.each(item_value.slideshow_inner_items, function(inner_value,
inner_item_key){
													let last_field_inner_key =
`slideshow_inner_items-${inner_item_key}`;
													let inner_uniqid =
`sp-slider-inner-item-${data.id}-num-${inner_item_key}-key`;
													let animation_timing_function =
(!_.isEmpty(inner_value.animation_timing_function) &&
inner_value.animation_timing_function) ?
inner_value.animation_timing_function : "";
													let animation_cubic_bezier_value =
(!_.isEmpty(inner_value.animation_cubic_bezier_value) &&
inner_value.animation_cubic_bezier_value) ?
inner_value.animation_cubic_bezier_value.replace(/\s/g,"") :
"";
													if(animation_timing_function == "cubic-bezier"){
														animation_timing_function =
`cubic-bezier(${animation_cubic_bezier_value})`;
													}
													let animation_settings = {};
													if(inner_value.content_animation_type == "rotate"){
														animation_settings = {
															"type":"rotate",
															"from":inner_value.animation_rotate_from +
"deg",
															"to":inner_value.animation_rotate_to +
"deg",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else if(inner_value.content_animation_type ==
"text-animate"){
														animation_settings = {
															"type":"text-animate",
															"direction":inner_value.animation_slide_direction,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														}
													} else if(inner_value.content_animation_type ==
"zoom"){
														animation_settings = {
															"type":"zoom",
															"direction":"zoomIn",
															"from":0,
															"to":1,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else {
														animation_settings = {
															"type":"slide",
															"direction":inner_value.animation_slide_direction,
															"from":inner_value.animation_slide_from+"%",
															"to":"0%",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													}
				
													let animationJson = JSON.stringify(animation_settings);
													let content_class = typeof inner_value.content_class !==
"undefined" && inner_value.content_class ?
inner_value.content_class : "";

													if(inner_value.content_type == "image_content"){
													#>
														<div id="{{inner_uniqid}}"
class="sppb-sp-slider-image {{content_class}}"
data-layer="true" data-animation={{animationJson}}>
															<div
class="sp-slider-caption-image"></div>
														</div>
													<# }
												}) #>
											</div>
										</div>
									<# } else { #>
										<div class="sppb-col-xs-{{image_column_width_xs}}
sppb-col-sm-{{image_column_width_sm}} sppb-col-md-{{image_column_width_md}}
sppb-col-lg-{{image_column_width_lg}}
sppb-col-{{image_column_width}}">
											<div
class="sp-slider-image-align-{{image_content_alignment}}">
												<#
												_.each(item_value.slideshow_inner_items, function(inner_value,
inner_item_key){
													let last_field_inner_key =
`slideshow_inner_items-${inner_item_key}`;
													let inner_uniqid =
`sp-slider-inner-item-${data.id}-num-${inner_item_key}-key`;
													let animation_timing_function =
(!_.isEmpty(inner_value.animation_timing_function) &&
inner_value.animation_timing_function) ?
inner_value.animation_timing_function : "";
													let animation_cubic_bezier_value =
(!_.isEmpty(inner_value.animation_cubic_bezier_value) &&
inner_value.animation_cubic_bezier_value) ?
inner_value.animation_cubic_bezier_value.replace(/\s/g,"") :
"";
													if(animation_timing_function == "cubic-bezier"){
														animation_timing_function =
`cubic-bezier(${animation_cubic_bezier_value})`;
													}
													let animation_settings = {};
													if(inner_value.content_animation_type == "rotate"){
														animation_settings = {
															"type":"rotate",
															"from":inner_value.animation_rotate_from +
"deg",
															"to":inner_value.animation_rotate_to +
"deg",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else if(inner_value.content_animation_type ==
"text-animate"){
														animation_settings = {
															"type":"text-animate",
															"direction":inner_value.animation_slide_direction,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														}
													} else if(inner_value.content_animation_type ==
"zoom"){
														animation_settings = {
															"type":"zoom",
															"direction":"zoomIn",
															"from":0,
															"to":1,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else {
														animation_settings = {
															"type":"slide",
															"direction":inner_value.animation_slide_direction,
															"from":inner_value.animation_slide_from+"%",
															"to":"0%",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													}
				
													let animationJson = JSON.stringify(animation_settings);
													let content_class = typeof inner_value.content_class !==
"undefined" && inner_value.content_class ?
inner_value.content_class : "";

													if(inner_value.content_type == "image_content"){
													#>
														<div id="{{inner_uniqid}}"
class="sppb-sp-slider-image {{content_class}}"
data-layer="true" data-animation={{animationJson}}>
															<div
class="sp-slider-caption-image"></div>
														</div>
													<# }
												}) #>
											</div>
										</div>
										<div class="sppb-col-xs-{{image_column_width_xs === 12 ?
12 : 12-image_column_width_xs}} sppb-col-sm-{{image_column_width_sm === 12
? image_column_width_sm : 12-image_column_width_sm}}
sppb-col-md-{{image_column_width_md === 12 ? image_column_width_md :
12-image_column_width_md}} sppb-col-lg-{{image_column_width_lg === 12 ?
image_column_width_lg : 12-image_column_width_lg}}
sppb-col-{{image_column_width === 12 ? image_column_width :
12-image_column_width}}">
											<div
class="sp-slider-content-align-{{content_alignment}}">
												<#
												_.each(item_value.slideshow_inner_items, function(inner_value,
inner_item_key){
													let last_field_inner_key =
`slideshow_inner_items-${inner_item_key}`;
													let inner_uniqid =
`sp-slider-inner-item-${data.id}-num-${inner_item_key}-key`;
													let animation_timing_function =
(!_.isEmpty(inner_value.animation_timing_function) &&
inner_value.animation_timing_function) ?
inner_value.animation_timing_function : "";
													let animation_cubic_bezier_value =
(!_.isEmpty(inner_value.animation_cubic_bezier_value) &&
inner_value.animation_cubic_bezier_value) ?
inner_value.animation_cubic_bezier_value.replace(/\s/g,"") :
"";
													if(animation_timing_function == "cubic-bezier"){
														animation_timing_function =
`cubic-bezier(${animation_cubic_bezier_value})`;
													}
													let animation_settings = {};
													if(inner_value.content_animation_type == "rotate"){
														animation_settings = {
															"type":"rotate",
															"from":inner_value.animation_rotate_from +
"deg",
															"to":inner_value.animation_rotate_to +
"deg",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else if(inner_value.content_animation_type ==
"text-animate"){
														animation_settings = {
															"type":"text-animate",
															"direction":inner_value.animation_slide_direction,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														}
													} else if(inner_value.content_animation_type ==
"zoom"){
														animation_settings = {
															"type":"zoom",
															"direction":"zoomIn",
															"from":0,
															"to":1,
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													} else {
														animation_settings = {
															"type":"slide",
															"direction":inner_value.animation_slide_direction,
															"from":inner_value.animation_slide_from+"%",
															"to":"0%",
															"duration":inner_value.animation_duration,
															"after":inner_value.animation_delay,
															"timing_function":animation_timing_function,
														};
													}
				
													let animationJson = JSON.stringify(animation_settings);
				
													let btn_content = "";
													let btn_icon_arr = (typeof inner_value.button_icon !==
"undefined" && inner_value.button_icon) ?
inner_value.button_icon.split(" ") : "";
													let btn_icon_name = btn_icon_arr.length === 1 ? "fa
"+inner_value.button_icon : inner_value.button_icon;
													
													if (inner_value.button_icon_position == "left") {
														if(inner_value.button_icon) {
															btn_content = \'<span
class="sp-slider-btn-text"> <span
class="sp-slider-btn-icon"> <i class="\' +
btn_icon_name + \'"></i></span> \' +
inner_value?.btn_content + \'</span>\';
														} else {
															btn_content = \'<span
class="sp-slider-btn-text">\' + inner_value?.btn_content
+ \'</span>\';
														} 
													} else {
														if(inner_value.button_icon){
															btn_content = \'<span
class="sp-slider-btn-text">\' + inner_value?.btn_content
+ \' <span class="sp-slider-btn-icon"><i
class="\' + btn_icon_name +
\'"></i></span></span>\';
														} else {
															btn_content = \'<span
class="sp-slider-btn-text">\'+ inner_value?.btn_content +
\'</span>\';
														}
													}
													let content_class = typeof inner_value.content_class !==
"undefined" && inner_value.content_class ?
inner_value.content_class : "";
				
													if(inner_value.content_type == "text_content"){
												#>
														<div id="{{inner_uniqid}}"
class="sppb-sp-slider-text sp-editable-content {{content_class}}"
data-id={{data.id}}
data-fieldName="{{last_field_key}}-{{last_field_inner_key}}-content_text"
data-layer="true" data-layer="true"
data-animation={{animationJson}}>
															{{{inner_value.content_text}}}
														</div>
													<# } else if(inner_value.content_type ==
"btn_content"){ #>
														<# 
														
														let buttonUrl = _.isObject(inner_value.button_url) ?
inner_value.button_url : window.getSiteUrl(inner_value.button_url,
inner_value.button_target === 1 ? "_blank" : "");
														const {url, page, menu, type, new_tab, nofollow, noopener,
noreferrer} = buttonUrl;
														const target = new_tab ? "_blank": "";
														let rel="";
														rel += nofollow ? "nofollow": "";
														rel += noopener ? " noopener": "";
														rel += noreferrer ? " noreferrer": "";
													
														let newUrl = "";
														if(type === "url") newUrl = url;
														if(type === "menu") newUrl = menu;
														if(type === "page") newUrl = page ?
`index.php?option=com_sppagebuilder&view=page&id=${page}` :
"";
														#>
														<a id="{{inner_uniqid}}" target="{{ target
}}" rel="{{ rel }}" class="sppb-sp-slider-button
{{content_class}}" href="{{newUrl}}"
data-layer="true" data-animation={{animationJson}}>
														{{{btn_content}}}
														</a>
													<# } else if(inner_value.content_type ==
"icon_content"){
														let content_icon_arr = !_.isEmpty(inner_value.icon_content) ?
inner_value.icon_content.split(" ") : "";
														let content_icon_name = content_icon_arr.length === 1 ?
"fa "+inner_value.icon_content : faIconList.version === 4 ?
"fa " +content_icon_arr[1] : inner_value.icon_content;	
													#>
														<span id="{{inner_uniqid}}"
class="sppb-sp-slider-icon {{content_class}}
{{icon_display_block}}" data-layer="true"
data-animation={{animationJson}}>
															<span
class="{{content_icon_name}}"></span>
														</span>
													<# } else if(inner_value.content_type ==
"title_content") { 
														if(!inner_value.title_heading_selector){
															inner_value.title_heading_selector = "h2";
														}
													#>
														<{{inner_value.title_heading_selector}}
id="{{inner_uniqid}}" class="sppb-sp-slider-title
sp-inline-editable-element {{content_class}}" data-id={{data.id}}
data-fieldName="title_content_title"
data-itemPosition={{inner_item_key}}
data-slideNumber={{last_field_key}}contenteditable="true" 
data-layer="true" data-animation={{animationJson}}> 
															{{{inner_value.title_content_title}}}
														</{{inner_value.title_heading_selector}}>
													<# }

												}) #>
											</div>
										</div>

									<# } #>

								</div>

							<# }
							if(data.content_container_option === "bootstrap"){
							#>
								</div>
								</div>
								</div>
							<# } else { #>
						</div>
						<# }
						if(!_.isEmpty(item_value.slider_img)){
						#>
							<div class="sp-background"></div>
						<# }
						if(data.slider_animation !== "3D"){
							var slider_video = {}
							if(!_.isEmpty(item_value.slider_video) &&
item_value.slider_video){
								if (typeof item_value.slider_video !== "undefined"
&& typeof item_value.slider_video.src !== "undefined") {
									slider_video = item_value.slider_video
								} else {
									slider_video = {src: item_value.slider_video}
								}
							}
							if(slider_video.src && !item_value.enable_youtube_vimeo){
								if(slider_video.src.indexOf("http://") == 0 ||
slider_video.src.indexOf("https://") == 0){
						#>
									<div class="sp-video-background"
data-video_src="{{slider_video.src}}"></div>
								<# } else { #>
									<div class="sp-video-background"
data-video_src="{{pagebuilder_base +  slider_video.src
}}"></div>
								<# }
							} else if(!_.isEmpty(item_value.youtube_vimeo_url) &&
item_value.youtube_vimeo_url && item_value.enable_youtube_vimeo) {
								if(item_value.youtube_vimeo_url.indexOf("http://") == 0
|| item_value.youtube_vimeo_url.indexOf("https://") == 0){
								#>
									<div class="sp-video-background"
data-video_src="{{item_value.youtube_vimeo_url}}"></div>
								<# } else { #>
									<div class="sp-video-background"
data-video_src="{{ pagebuilder_base + item_value.youtube_vimeo_url
}}"></div>
								<# }
							}
						} #>

						<#
						if(data.dot_controllers_style == "with_text"){
							let captionItem = []; 
							if(_.isArray(item_value.slideshow_inner_items)){
								let dot_item = 0;
								_.each(item_value.slideshow_inner_items, function(inner_value,
inner_item_key){
									if(inner_value.content_type == "title_content"
&& dot_item < 2 ) {
										captionItem.unshift(inner_value);
									}
									dot_item++;
								})
							}
							dots += `<li class="${item_key == 0 ? "active
sp-text-thumbnail-list" :
"sp-text-thumbnail-list"}">`;
								dots += `<div
class="sp-slider-text-thumb-number">${(item_key > 8 ?
(item_key + 1) : "0"+(item_key + 1))}</div>`;
								dots += `<div class="sp-dot-indicator-wrap">`;
									dots += `<span
class="dot-indicator"></span>`;
								dots += `</div>`;
								dots += `<div
class="sp-slider-text-thumb-caption">`;
									if(_.isArray(captionItem)){
										_.each(captionItem, function(inner_value, dot_key){
											dots += `<div class="sp-slider-dot-indecator-text
sp-dot-text-key-${dot_key + 1}">`;
												dots += inner_value.title_content_title;
											dots +=`</div>`;
										})
									}
								dots += `</div>`;
							dots += `</li>`;
						}
						#>
					</div>
				<# }) 

			} #>

			<# if(data.dot_controllers_style == "with_text" &&
data.dot_controllers){ #>
				<div class="sp-slider-custom-dot-indecators">
					<ul>
						{{{dots}}}
					</ul>
				</div>
			<# } #>

			</div>';

		return $output;
	}
}