<?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';
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`;
#>';
$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 .= '<# 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;
}
}