require_once 'helpers/Slider.php';
class ET_Builder_Module_Slider_Item extends ET_Builder_Module {
$this->name = et_builder_i18n( 'Slide' );
$this->plural = esc_html__( 'Slides', 'et_builder' );
$this->slug = 'et_pb_slide';
$this->vb_support = 'on';
$this->child_title_var = 'admin_title';
$this->child_title_fallback_var = 'heading';
$this->advanced_setting_title_text = esc_html__( 'New Slide', 'et_builder' );
$this->settings_text = esc_html__( 'Slide Settings', 'et_builder' );
$this->main_css_element = '%%order_class%%';
$this->settings_modal_toggles = array(
'main_content' => et_builder_i18n( 'Text' ),
'image_video' => esc_html__( 'Image & Video', 'et_builder' ),
'player_pause' => esc_html__( 'Player Pause', 'et_builder' ),
'title' => et_builder_i18n( 'Admin Label' ),
'overlay' => et_builder_i18n( 'Overlay' ),
'navigation' => esc_html__( 'Navigation', 'et_builder' ),
'title' => et_builder_i18n( 'Image' ),
'title' => et_builder_i18n( 'Text' ),
'title' => esc_html__( 'Attributes', 'et_builder' ),
$this->advanced_fields = array(
'label' => et_builder_i18n( 'Title' ),
'main' => ".et_pb_slider {$this->main_css_element}.et_pb_slide .et_pb_slide_description .et_pb_slide_title",
'limited_main' => ".et_pb_slider {$this->main_css_element}.et_pb_slide .et_pb_slide_description .et_pb_slide_title, .et_pb_slider {$this->main_css_element}.et_pb_slide .et_pb_slide_description .et_pb_slide_title a",
'range_settings' => array(
'label' => et_builder_i18n( 'Body' ),
'main' => ".et_pb_slider.et_pb_module {$this->main_css_element}.et_pb_slide .et_pb_slide_description .et_pb_slide_content",
'line_height' => "{$this->main_css_element} p",
'range_settings' => array(
'block_elements' => array(
'tabbed_subtoggles' => true,
'bb_icons_support' => true,
'label' => et_builder_i18n( 'Button' ),
'main' => ".et_pb_slider {$this->main_css_element}.et_pb_slide .et_pb_more_button.et_pb_button",
'limited_main' => ".et_pb_slider {$this->main_css_element}.et_pb_slide .et_pb_more_button.et_pb_button",
'alignment' => ".et_pb_slider {$this->main_css_element} .et_pb_slide_description .et_pb_button_wrapper",
'main' => '%%order_class%% .et_pb_button',
'margin_padding' => array(
'main' => '.et_pb_slider %%order_class%%',
'background_color' => array(
'default' => et_builder_accent_color(),
'default_on_child' => true,
'border_radii' => '%%order_class%%.et_pb_slide .et_pb_slide_image img',
'border_styles' => '%%order_class%%.et_pb_slide .et_pb_slide_image img',
'label_prefix' => et_builder_i18n( 'Image' ),
'tab_slug' => 'advanced',
'toggle_slug' => 'image',
'depends_show_if' => 'off',
'border_radii' => 'on||||',
'border_styles' => array(
'margin_padding' => array(
'padding' => '.et_pb_slider %%order_class%% .et_pb_slide_description, .et_pb_slider_fullwidth_off %%order_class%% .et_pb_slide_description',
'important' => array( 'custom_padding' ), // Important is needed to overwrite parent and column-specific padding specificity
'use_background_layout' => true,
'%%order_class%% .et_pb_slide_description .et_pb_slide_title',
'%%order_class%% .et_pb_slide_description .et_pb_slide_title a',
'%%order_class%% .et_pb_slide_description .et_pb_slide_content',
'%%order_class%% .et_pb_slide_description .et_pb_slide_content .post-meta',
'%%order_class%% .et_pb_slide_description .et_pb_slide_content .post-meta a',
'%%order_class%% .et_pb_slide_description .et_pb_slide_content .et_pb_button',
'text_orientation' => '.et_pb_slides %%order_class%%.et_pb_slide .et_pb_slide_description',
'text_shadow' => '.et_pb_slides %%order_class%%.et_pb_slide .et_pb_slide_description',
'background_layout' => array(
'default_on_child' => true,
'label' => esc_html__( 'Image Box Shadow', 'et_builder' ),
'option_category' => 'layout',
'tab_slug' => 'advanced',
'toggle_slug' => 'image',
'main' => '%%order_class%%.et_pb_slide .et_pb_slide_image img',
'default_on_fronts' => array(
'child_filters_target' => array(
'tab_slug' => 'advanced',
'toggle_slug' => 'image',
'%%order_class%% .et_pb_slide_image',
'%%order_class%% .et_pb_section_video_bg',
'use_module_alignment' => false,
'main' => '.et_pb_slider %%order_class%%.et_pb_slide > .et_pb_container',
'label' => esc_html__( 'Content Width', 'et_builder' ),
'label' => esc_html__( 'Content Max Width', 'et_builder' ),
'scroll_effects' => false,
'position_fields' => false,
$this->custom_css_fields = array(
'label' => esc_html__( 'Slide Title', 'et_builder' ),
'selector' => '.et_pb_slide_description .et_pb_slide_title',
'slide_container' => array(
'label' => esc_html__( 'Slide Description Container', 'et_builder' ),
'selector' => '.et_pb_container',
'slide_description' => array(
'label' => esc_html__( 'Slide Description', 'et_builder' ),
'selector' => '.et_pb_slide_description',
'label' => esc_html__( 'Slide Button', 'et_builder' ),
'selector' => '.et_pb_slide .et_pb_container a.et_pb_more_button.et_pb_button',
'no_space_before_selector' => true,
'label' => esc_html__( 'Slide Image', 'et_builder' ),
'selector' => '.et_pb_slide_image',
$this->help_videos = array(
'name' => esc_html__( 'An introduction to the Slider module', 'et_builder' ),
'label' => et_builder_i18n( 'Title' ),
'option_category' => 'basic_option',
'description' => esc_html__( 'Define the title text for your slide.', 'et_builder' ),
'toggle_slug' => 'main_content',
'dynamic_content' => 'text',
'mobile_options' => true,
'label' => et_builder_i18n( 'Button' ),
'option_category' => 'basic_option',
'description' => esc_html__( 'Define the text for the slide button', 'et_builder' ),
'toggle_slug' => 'main_content',
'dynamic_content' => 'text',
'mobile_options' => true,
'label' => esc_html__( 'Button Link URL', 'et_builder' ),
'option_category' => 'basic_option',
'description' => esc_html__( 'Input a destination URL for the slide button.', 'et_builder' ),
'toggle_slug' => 'link_options',
'default_on_front' => '#',
'dynamic_content' => 'url',
'url_new_window' => array(
'label' => esc_html__( 'Button Link Target', 'et_builder' ),
'option_category' => 'configuration',
'off' => esc_html__( 'In The Same Window', 'et_builder' ),
'on' => esc_html__( 'In The New Tab', 'et_builder' ),
'toggle_slug' => 'link_options',
'description' => esc_html__( 'Here you can choose whether or not your link opens in a new window', 'et_builder' ),
'default_on_front' => 'off',
'label' => et_builder_i18n( 'Image' ),
'option_category' => 'configuration',
'upload_button_text' => et_builder_i18n( 'Upload an image' ),
'choose_text' => esc_attr__( 'Choose a Slide Image', 'et_builder' ),
'update_text' => esc_attr__( 'Set As Slide Image', 'et_builder' ),
'description' => esc_html__( 'If defined, this slide image will appear to the left of your slide text. Upload an image, or leave blank for a text-only slide.', 'et_builder' ),
'toggle_slug' => 'image_video',
'dynamic_content' => 'image',
'mobile_options' => true,
'use_bg_overlay' => array(
'label' => esc_html__( 'Use Background Overlay', 'et_builder' ),
'type' => 'yes_no_button',
'option_category' => 'configuration',
'off' => et_builder_i18n( 'No' ),
// Uses cached uppercase translation but keeps the lowercase not change definition content.
'on' => strtolower( et_builder_i18n( 'Yes' ) ),
'default_on_front' => '',
'tab_slug' => 'advanced',
'toggle_slug' => 'overlay',
'description' => esc_html__( 'When enabled, a custom overlay color will be added above your background image and behind your slider content.', 'et_builder' ),
'bg_overlay_color' => array(
'label' => esc_html__( 'Background Overlay Color', 'et_builder' ),
'depends_show_if' => 'on',
'description' => esc_html__( 'Use the color picker to choose a color for the background overlay.', 'et_builder' ),
'tab_slug' => 'advanced',
'toggle_slug' => 'overlay',
'mobile_options' => true,
'use_text_overlay' => array(
'label' => esc_html__( 'Use Text Overlay', 'et_builder' ),
'type' => 'yes_no_button',
'option_category' => 'configuration',
'off' => et_builder_i18n( 'No' ),
// Uses cached uppercase translation but keeps the lowercase not change definition content.
'on' => strtolower( et_builder_i18n( 'Yes' ) ),
'default_on_front' => '',
'tab_slug' => 'advanced',
'toggle_slug' => 'overlay',
'description' => esc_html__( 'When enabled, a background color is added behind the slider text to make it more readable atop background images.', 'et_builder' ),
'text_overlay_color' => array(
'label' => esc_html__( 'Text Overlay Color', 'et_builder' ),
'depends_show_if' => 'on',
'tab_slug' => 'advanced',
'toggle_slug' => 'overlay',
'description' => esc_html__( 'Use the color picker to choose a color for the text overlay.', 'et_builder' ),
'mobile_options' => true,
'label' => esc_html__( 'Image Alignment', 'et_builder' ),
'option_category' => 'layout',
'center' => et_builder_i18n( 'Center' ),
'bottom' => et_builder_i18n( 'Bottom' ),
'default_on_front' => 'center',
'tab_slug' => 'advanced',
'toggle_slug' => 'image',
'description' => esc_html__( 'This setting determines the vertical alignment of your slide image. Your image can either be vertically centered, or aligned to the bottom of your slide.', 'et_builder' ),
'label' => esc_html__( 'Video', 'et_builder' ),
'upload_button_text' => esc_attr__( 'Upload a video', 'et_builder' ),
'choose_text' => esc_attr__( 'Choose a Video WEBM File', 'et_builder' ),
'update_text' => esc_attr__( 'Set As Video', 'et_builder' ),
'option_category' => 'basic_option',
'description' => esc_html__( 'If defined, this video will appear to the left of your slide text. Enter youtube or vimeo page url, or leave blank for a text-only slide.', 'et_builder' ),
'toggle_slug' => 'image_video',
'computed_affects' => array(
'mobile_options' => true,
'label' => esc_html__( 'Image Alternative Text', 'et_builder' ),
'option_category' => 'basic_option',
'depends_show_if' => 'on',
'description' => esc_html__( 'If you have a slide image defined, input your HTML ALT text for the image here.', 'et_builder' ),
'tab_slug' => 'custom_css',
'toggle_slug' => 'attributes',
'dynamic_content' => 'text',
'allow_player_pause' => array(
'label' => esc_html__( 'Pause Video When Another Video Plays', 'et_builder' ),
'type' => 'yes_no_button',
'option_category' => 'configuration',
'off' => et_builder_i18n( 'No' ),
'on' => et_builder_i18n( 'Yes' ),
'default_on_front' => '',
'toggle_slug' => 'player_pause',
'description' => esc_html__( 'Allow video to be paused by other players when they begin playing', 'et_builder' ),
'label' => et_builder_i18n( 'Body' ),
'option_category' => 'basic_option',
'description' => esc_html__( 'Input your main slide text content here.', 'et_builder' ),
'toggle_slug' => 'main_content',
'dynamic_content' => 'text',
'mobile_options' => true,
'arrows_custom_color' => array(
'label' => esc_html__( 'Arrow Color', 'et_builder' ),
'description' => esc_html__( 'Pick a color to use for the slider arrows that are used to navigate through each slide.', 'et_builder' ),
'tab_slug' => 'advanced',
'toggle_slug' => 'navigation',
'mobile_options' => true,
'dot_nav_custom_color' => array(
'label' => esc_html__( 'Dot Navigation Color', 'et_builder' ),
'description' => esc_html__( 'Pick a color to use for the dot navigation that appears at the bottom of the slider to designate which slide is active.', 'et_builder' ),
'tab_slug' => 'advanced',
'toggle_slug' => 'navigation',
'mobile_options' => true,
'label' => et_builder_i18n( 'Admin Label' ),
'description' => esc_html__( 'This will change the label of the slide in the builder for easy identification.', 'et_builder' ),
'toggle_slug' => 'admin_label',
'text_border_radius' => array(
'label' => esc_html__( 'Text Overlay Border Radius', 'et_builder' ),
'description' => esc_html__( 'Increasing the border radius will increase the roundness of the overlay corners. Setting this value to 0 will result in squared corners.', 'et_builder' ),
'option_category' => 'layout',
'allowed_units' => array( '%', 'em', 'rem', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ex', 'vh', 'vw' ),
'default_on_front' => '',
'range_settings' => array(
'depends_show_if' => 'on',
'tab_slug' => 'advanced',
'toggle_slug' => 'overlay',
'mobile_options' => true,
'__video_embed' => array(
'computed_callback' => array( 'ET_Builder_Module_Slider_Item', 'get_video_embed' ),
'computed_depends_on' => array(
'computed_minimum' => array(