' . esc_html($content['repeater_story_title']) . '
'; } } if (!empty($content['repeater_description']) && 'yes' === $settings['show_description'] && 'yes' !== $settings['description_overlay']) { echo ''None',
'fade' => 'Fade',
'pro-fd' => 'Fade Down (Pro)',
'pro-fdl' => 'Fade Down Left (Pro)',
'pro-fdr' => 'Fade Down Right (Pro)',
'pro-fl' => 'Fade Left (Pro)',
'pro-fr' => 'Fade Right (Pro)',
'pro-fu' => 'Fade Up (Pro)',
'pro-ful' => 'Fade Up Left (Pro)',
'pro-fur' => 'Fade Up Right (Pro)',
'pro-fld' => 'Flip Down (Pro)',
'pro-fll' => 'Flip Left (Pro)',
'pro-flr' => 'Flip Right (Pro)',
'pro-flu' => 'Flip Up (Pro)',
'pro-sld' => 'Slide Down (Pro)',
'pro-sll' => 'Slide Left (Pro)',
'pro-slr' => 'Slide Right (Pro)',
'pro-slu' => 'Slide Up (Pro)',
'pro-zmi' => 'Zoom In (Pro)',
'pro-zmid' => 'Zoom In Down (Pro)',
'pro-zmil' => 'Zoom In Left (Pro)',
'pro-zmir' => 'Zoom In Right (Pro)',
'pro-zmiu' => 'Zoom In Up (Pro)',
'pro-zmo' => 'Zoom Out (Pro)',
'pro-zmod' => 'Zoom Out Down (Pro)',
'pro-zmol' => 'Zoom Out Left (Pro)',
'pro-zmor' => 'Zoom Out Right (Pro)',
'pro-zmou' => 'Zoom Out Up (Pro)',
];
}
public function add_control_slides_to_show()
{
$this->add_control(
'slides_to_show',
[
'label' => esc_html__('Slides To Show', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => '3',
'max' => '4',
'separator' => 'before',
'render_type' => 'template',
'condition' => [
'timeline_layout' => [
'horizontal',
'horizontal-bottom'
],
]
]
);
}
public function add_control_swiper_loop()
{
$this->add_control(
'swiper_loop',
[
'label' => sprintf(__('Loop %s', 'king-addons'), ''),
'type' => Controls_Manager::SWITCHER,
'separator' => 'before',
'classes' => 'king-addons-pro-control'
]
);
}
public function add_control_group_autoplay()
{
$this->add_control(
'swiper_autoplay',
[
'label' => sprintf(__('Autoplay %s', 'king-addons'), ''),
'type' => Controls_Manager::SWITCHER,
'separator' => 'before',
'classes' => 'king-addons-pro-control'
]
);
}
public function add_control_show_pagination()
{
$this->add_control(
'show_pagination',
[
'label' => sprintf(__('Show Pagination %s', 'king-addons'), ''),
'type' => Controls_Manager::SWITCHER,
'separator' => 'before',
'classes' => 'king-addons-pro-control'
]
);
}
public function add_control_posts_per_page()
{
$this->add_control(
'posts_per_page',
[
'label' => esc_html__('Posts Per Page', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'render_type' => 'template',
'default' => 3,
'max' => 4,
'min' => 0,
'label_block' => false,
]
);
}
protected function register_controls()
{
$this->start_controls_section(
'general_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Layout', 'king-addons'),
'tab' => Controls_Manager::TAB_CONTENT,
]
);
$this->add_control(
'timeline_content',
[
'label' => esc_html__('Timeline Content', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'custom',
'options' => [
'custom' => esc_html__('Custom', 'king-addons'),
'dynamic' => esc_html__('Dynamic', 'king-addons')
],
'render_type' => 'template',
]
);
$this->add_control(
'timeline_layout',
[
'label' => esc_html__('Layout', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'centered',
'options' => [
'centered' => esc_html__('Zig-Zag', 'king-addons'),
'one-sided' => esc_html__('Line Left', 'king-addons'),
'one-sided-left' => esc_html__('Line Right', 'king-addons'),
'horizontal-bottom' => esc_html__('Line Top - Carousel', 'king-addons'),
'horizontal' => esc_html__('Line Bottom - Carousel', 'king-addons'),
],
'render_type' => 'template',
]
);
$this->add_control(
'content_layout',
[
'label' => esc_html__('Media Position', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'image-top',
'options' => [
'image-top' => esc_html__('Top', 'king-addons'),
'image-bottom' => esc_html__('Bottom', 'king-addons'),
],
]
);
$this->add_group_control(
Group_Control_Image_Size::get_type(),
[
'name' => 'king_addons_thumbnail_dynamic',
'default' => 'full',
'separator' => 'none',
'condition' => [
'timeline_content' => 'dynamic'
]
]
);
$this->add_control(
'date_format',
[
'label' => esc_html__('Date Format', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'F j, Y',
'options' => [
'F j, Y' => esc_html(date('F j, Y')),
'Y-m-d' => esc_html(date('Y-m-d')),
'Y, M, D' => esc_html(date('Y, M, D')),
'm/d/Y' => esc_html(date('m/d/Y')),
'd/m/Y' => esc_html(date('d/m/Y')),
'j. F Y' => esc_html(date('j. F y'))
],
'condition' => [
'timeline_content' => 'dynamic',
]
]
);
$this->add_control(
'timeline_fill',
[
'label' => esc_html__('Main Line Fill', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
'render_type' => 'template',
'condition' => [
'timeline_layout!' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control(
'posts_icon',
[
'label' => esc_html__('Main Line Icon', 'king-addons'),
'type' => Controls_Manager::ICONS,
'skin' => 'inline',
'label_block' => false,
'default' => [
'value' => 'fab fa-apple',
'library' => 'solid',
],
'condition' => [
'timeline_content' => 'dynamic'
]
]
);
$this->add_control(
'show_extra_label',
[
'label' => esc_html__('Show Extra Label', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
'separator' => 'before',
'condition' => [
'timeline_content' => 'dynamic'
]
]
);
$this->add_control_slides_to_show();
if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
$this->add_control(
'slides_to_show_pro_notice',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => 'More than 4 Slides are available
in the Pro version',
'content_classes' => 'king-addons-pro-notice',
'condition' => [
'timeline_layout' => [
'horizontal',
'horizontal-bottom'
],
]
]
);
}
$this->add_control(
'story_info_gutter',
[
'label' => esc_html__('Gutter', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 5,
'condition' => [
'timeline_layout' => [
'horizontal',
'horizontal-bottom'
],
]
]
);
$this->add_control(
'equal_height_slides',
[
'label' => esc_html__('Equal Height Slides', 'king-addons'),
'description' => esc_html__('Make all slides the same height', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'auto-height',
'default' => 'no',
'label_block' => false,
'render_type' => 'template',
'condition' => [
'timeline_layout' => [
'horizontal-bottom',
'horizontal'
],
]
]
);
$this->add_control_swiper_loop();
$this->add_control_group_autoplay();
$this->add_control(
'swiper_speed',
[
'label' => esc_html__('Carousel Speed', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'min' => 0,
'max' => 5000,
'frontend_available' => true,
'default' => 500,
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control(
'swiper_nav_icon',
[
'label' => esc_html__('Carousel Icon', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'fas fa-angle-left',
'options' => [
'fas fa-angle-left' => esc_html__('Angle', 'king-addons'),
'fas fa-angle-double-left' => esc_html__('Angle Double', 'king-addons'),
'fas fa-arrow-left' => esc_html__('Arrow', 'king-addons'),
'fas fa-arrow-alt-circle-left' => esc_html__('Arrow Circle', 'king-addons'),
'far fa-arrow-alt-circle-left' => esc_html__('Arrow Circle Alt', 'king-addons'),
'fas fa-long-arrow-alt-left' => esc_html__('Long Arrow', 'king-addons'),
'fas fa-chevron-left' => esc_html__('Chevron', 'king-addons'),
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom'],
],
]
);
$this->add_control(
'timeline_animation',
[
'label' => esc_html__('Entrance Animation', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'fade',
'separator' => 'before',
'options' => $this->king_addons_aos_animation_array(),
'condition' => [
'timeline_layout!' => [
'horizontal',
'horizontal-bottom'
],
]
]
);
Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'timeline', 'timeline_animation', [
'pro-fu',
'pro-fd',
'pro-fl',
'pro-fr',
'pro-fur',
'pro-ful',
'pro-fdr',
'pro-fdl',
'pro-flu',
'pro-fld',
'pro-flr',
'pro-fll',
'pro-slu',
'pro-sll',
'pro-slr',
'pro-sld',
'pro-zmi',
'pro-zmo',
'pro-zmiu',
'pro-zmid',
'pro-zmil',
'pro-zmir',
'pro-zmou',
'pro-zmod',
'pro-zmol',
'pro-zmor',
]);
$this->add_control(
'animation_offset',
[
'label' => esc_html__('Animation Offset', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'min' => 0,
'max' => 500,
'frontend_available' => true,
'default' => 150,
'condition' => [
'timeline_layout!' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control(
'aos_animation_duration',
[
'label' => esc_html__('Animation Duration', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'min' => 0,
'max' => 2000,
'frontend_available' => true,
'default' => 600,
'condition' => [
'timeline_layout!' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control_show_pagination();
$this->end_controls_section();
$this->start_controls_section(
'repeater_content_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Timeline Items', 'king-addons'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'timeline_content' => 'custom'
]
]
);
$repeater = new Repeater();
$repeater->start_controls_tabs(
'story_tabs'
);
$repeater->start_controls_tab(
'content_tab',
[
'label' => esc_html__('Content', 'king-addons'),
]
);
$repeater->add_control(
'main_line_label_heading',
[
'label' => esc_html__('Main Line Label', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$repeater->add_control(
'repeater_show_year_label',
[
'label' => esc_html__('Show Label', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'label_on' => esc_html__('Show', 'king-addons'),
'label_off' => esc_html__('Hide', 'king-addons'),
'return_value' => 'yes',
'default' => 'no',
]
);
$repeater->add_control(
'repeater_year',
[
'label' => esc_html__('Label Text', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => '2022',
'condition' => [
'repeater_show_year_label' => 'yes'
]
]
);
$repeater->add_control(
'main_line_label_icon',
[
'label' => esc_html__('Main Line Icon', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$repeater->add_control(
'repeater_story_icon',
[
'label' => esc_html__('Select Icon', 'king-addons'),
'type' => Controls_Manager::ICONS,
'skin' => 'inline',
'label_block' => false,
'default' => [
'value' => 'fab fa-apple',
'library' => 'solid',
],
]
);
$repeater->add_control(
'extra_label_heading',
[
'label' => esc_html__('Extra Label', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$repeater->add_control(
'repeater_show_extra_label',
[
'label' => esc_html__('Show Extra Label', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
]
);
$repeater->add_control(
'repeater_date_label',
[
'label' => esc_html__('Primary Label', 'king-addons'),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => '01 Jan 2022',
'condition' => [
'repeater_show_extra_label' => 'yes'
]
]
);
$repeater->add_control(
'repeater_extra_label',
[
'label' => esc_html__('Secondary Label', 'king-addons'),
'label_block' => true,
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => 'Secondary Label',
'condition' => [
'repeater_show_extra_label' => 'yes'
]
]
);
$repeater->add_control(
'repeater_media',
[
'label' => esc_html__('Display Media', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'image',
'options' => [
'image' => esc_html__('Image', 'king-addons'),
'icon' => esc_html__('Icon', 'king-addons'),
'video' => esc_html__('Video', 'king-addons'),
],
'render_type' => 'template',
'separator' => 'before'
]
);
$repeater->add_group_control(
Group_Control_Image_Size::get_type(),
[
'name' => 'king_addons_thumbnail',
'default' => 'full',
'separator' => 'none',
'condition' => [
'repeater_media' => 'image'
]
]
);
$repeater->add_control(
'repeater_youtube_video_url',
[
'label' => esc_html__('Youtube Video Link', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'label_block' => true,
'default' => '',
'condition' => [
'repeater_media' => 'video',
]
]
);
$repeater->add_control(
'repeater_image',
[
'label' => esc_html__('Choose Image', 'king-addons'),
'type' => Controls_Manager::MEDIA,
'dynamic' => [
'active' => true
],
'description' => esc_html__('Image Size will not work with default image', 'king-addons'),
'condition' => [
'repeater_media' => 'image'
]
]
);
$repeater->add_control(
'repeater_timeline_item_icon',
[
'label' => esc_html__('Media Icon', 'king-addons'),
'type' => Controls_Manager::ICONS,
'skin' => 'inline',
'label_block' => false,
'default' => [
'value' => 'far fa-star',
'library' => 'solid',
],
'condition' => [
'repeater_media' => 'icon'
]
]
);
$repeater->add_control(
'repeater_story_title',
[
'label' => esc_html__('Item Title', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => 'Timeline Story',
'label_block' => true,
'separator' => 'before'
]
);
$repeater->add_control(
'repeater_title_link',
[
'label' => esc_html__('Item Title URL', 'king-addons'),
'type' => Controls_Manager::URL,
'dynamic' => [
'active' => true,
],
'placeholder' => esc_html__('https://example.com', 'king-addons'),
'default' => [
'url' => '',
'is_external' => true,
'nofollow' => true,
'custom_attributes' => '',
],
]
);
$repeater->add_control(
'repeater_description',
[
'label' => esc_html__('Description', 'king-addons'),
'type' => Controls_Manager::WYSIWYG,
'default' => 'Add Description Here',
]
);
$repeater->end_controls_tab();
$repeater->start_controls_tab(
'repeater_advanced_tab',
[
'label' => esc_html__('Style', 'king-addons'),
]
);
$repeater->add_control(
'show_custom_styles',
[
'label' => esc_html__('Custom Colors', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'label_block' => false
]
);
$repeater->add_control(
'item_main_styles',
[
'label' => esc_html__('Item', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'item_bg_color',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#FFF',
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-story-info-vertical.king-addons-data-wrap' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal-bottom-timeline {{CURRENT_ITEM}} .king-addons-story-info' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal {{CURRENT_ITEM}} .king-addons-story-info' => 'background-color: {{VALUE}}'
],
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_story_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-story-info' => 'border-color: {{VALUE}} !important;',
'{{WRAPPER}} {{CURRENT_ITEM}}.king-addons-left-aligned .king-addons-story-info-vertical' => 'border-color: {{VALUE}} !important;',
'{{WRAPPER}} {{CURRENT_ITEM}}.king-addons-right-aligned .king-addons-story-info-vertical' => 'border-color: {{VALUE}} !important;',
'{{WRAPPER}} {{CURRENT_ITEM}}.swiper-slide-line-top .king-addons-story-info:before' => 'border-bottom-color: {{VALUE}} !important;',
'{{WRAPPER}} {{CURRENT_ITEM}}.swiper-slide-line-bottom .king-addons-story-info:before' => 'border-top-color: {{VALUE}} !important',
'{{WRAPPER}} {{CURRENT_ITEM}}.king-addons-left-aligned .king-addons-story-info-vertical:after' => 'border-left-color: {{VALUE}} !important',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-wrapper .king-addons-both-sided-timeline .king-addons-left-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}} !important; border-left-color: transparent !important;',
'{{WRAPPER}} .king-addons-centered .king-addons-one-sided-timeline .king-addons-right-aligned-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}} !important; border-left-color: transparent !important;',
],
'default' => '#5B03FF',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_triangle_color',
[
'label' => esc_html__('Triangle', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_triangle_bgcolor',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline {{CURRENT_ITEM}}.king-addons-right-aligned .king-addons-data-wrap:after' => 'border-right-color: {{icon_bgcolor}}',
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline-left {{CURRENT_ITEM}}.king-addons-left-aligned .king-addons-data-wrap:after' => 'border-left-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}}.king-addons-right-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal {{CURRENT_ITEM}} .king-addons-story-info:before' => 'border-top-color: {{VALUE}} !important',
'{{WRAPPER}} .king-addons-horizontal-bottom {{CURRENT_ITEM}} .king-addons-story-info:before' => 'border-bottom-color: {{VALUE}} !important',
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}}.king-addons-left-aligned .king-addons-data-wrap:after' => 'border-left-color: {{VALUE}} !important',
'{{WRAPPER}} .king-addons-centered {{CURRENT_ITEM}} .king-addons-one-sided-timeline .king-addons-right-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}} !important; border-left-color: transparent !important;',
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}} .king-addons-one-sided-timeline-left .king-addons-left-aligned .king-addons-data-wrap:after' => 'border-left-color: {{VALUE}} !important',
],
'default' => '#5B03FF',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_media_styles',
[
'label' => esc_html__('Media', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_overlay_bgcolor',
[
'label' => esc_html__('Overlay Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}} .king-addons-timeline-story-overlay' => 'background-color: {{VALUE}}',
],
'default' => '#0000005E',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_media_item_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media' => 'border-color: {{VALUE}}',
],
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_item_content_styles',
[
'label' => esc_html__('Content', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_story_title_color',
[
'label' => esc_html__('Title Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-title' => 'color: {{VALUE}} !important;',
],
'default' => '#444444',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_description_color',
[
'label' => esc_html__('Description Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}} .king-addons-description' => 'color: {{VALUE}};',
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}} .king-addons-description p' => 'color: {{VALUE}};'
],
'default' => '#333333',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'item_content_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-content-wrapper' => 'border-color: {{VALUE}}',
],
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_main_line_content_styles',
[
'label' => esc_html__('Main Line', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_timeline_icon_color',
[
'label' => esc_html__('Icon Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-icon i' => 'color: {{VALUE}}',
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-icon svg' => 'fill: {{VALUE}}'
],
'default' => '#000',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_icon_timeline_fill_color',
[
'label' => esc_html__('Icon Fill Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#fff',
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-change-border-color.king-addons-icon i' => 'color: {{VALUE}} !important;',
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-change-border-color.king-addons-icon svg' => 'fill: {{VALUE}} !important;',
],
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_timeline_icon_bg_color',
[
'label' => esc_html__('Icon Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}} .king-addons-icon' => 'background-color: {{VALUE}} !important;',
],
'default' => '#FFFFF',
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'repeater_icon_timeline_background_fill_color',
[
'label' => esc_html__('Icon Background Fill Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#FFFFFF',
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-change-border-color.king-addons-icon' => 'background-color: {{VALUE}} !important;',
],
'condition' => [
'show_custom_styles' => 'yes'
],
]
);
$repeater->add_control(
'repeater_icon_border_color',
[
'label' => esc_html__('Icon Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#000',
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper {{CURRENT_ITEM}} .king-addons-icon' => 'border-color: {{VALUE}}',
],
'condition' => [
'show_custom_styles' => 'yes'
]
]
);
$repeater->add_control(
'item_icon_styles',
[
'label' => esc_html__('Media Icon', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'repeater_media' => 'icon',
],
]
);
$repeater->add_control(
'repeater_timeline_item_icon_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media i' => 'color: {{VALUE}}',
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media svg' => 'fill: {{VALUE}}'
],
'condition' => [
'repeater_media' => 'icon',
],
'default' => '#000',
]
);
$repeater->add_control(
'repeater_timeline_item_icon_bgcolor',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media' => 'background-color: {{VALUE}}',
],
'condition' => [
'repeater_media' => 'icon',
],
'default' => '#FFF',
]
);
$repeater->add_responsive_control(
'repeater_timeline_item_icon_size',
[
'label' => esc_html__('Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 600,
],
],
'default' => [
'unit' => 'px',
'size' => 40,
],
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media i' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media svg' => 'width: {{SIZE}}{{UNIT}};',
],
'condition' => [
'repeater_media' => 'icon',
]
]
);
$repeater->add_responsive_control(
'repeater_timeline_item_icon_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 20,
'right' => 20,
'bottom' => 20,
'left' => 20,
],
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'repeater_media' => 'icon'
],
]
);
$repeater->add_responsive_control(
'repeater_timeline_item_icon_alignment',
[
'label' => esc_html__('Align', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'left' => [
'title' => esc_html__('Start', 'king-addons'),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__('End', 'king-addons'),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media i' => 'display: block; text-align: {{VALUE}};',
'{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-timeline-media svg' => 'text-align: {{VALUE}};'
],
'condition' => [
'repeater_media' => 'icon'
]
]
);
$repeater->end_controls_tab();
$repeater->end_controls_tabs();
$this->add_control(
'timeline_repeater_list',
[
'label' => esc_html__('Content', 'king-addons'),
'type' => Controls_Manager::REPEATER,
'fields' => $repeater->get_controls(),
'default' => [
[
'repeater_story_title' => esc_html__('Timeline Item 1', 'king-addons'),
'repeater_description' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima incidunt voluptates nemo.', 'king-addons'),
'repeater_year' => esc_html__('2023', 'king-addons'),
'repeater_date_label' => esc_html__('January 2023', 'king-addons'),
'repeater_extra_label' => esc_html__('Company Established', 'king-addons'),
'repeater_story_icon' => [
'value' => 'far fa-star',
'library' => 'solid'
],
'repeater_show_year_label' => 'yes',
'repeater_image' => [
'url' => Utils::get_placeholder_image_src(),
'id' => '',
],
'repeater_youtube_video_url' => '',
'item_bg_color' => '#f44771',
'repeater_triangle_bgcolor' => '#f44771',
'repeater_overlay_bgcolor' => '#0000005E',
'repeater_story_title_color' => '#FCFCFC',
'repeater_description_color' => '#ECECEC',
'repeater_timeline_icon_bg_color' => '',
'item_content_border_color' => '#E8E8E8',
'repeater_timeline_icon_color' => '#E8E8E8',
'repeater_icon_timeline_fill_color' => '#f44771',
'repeater_icon_timeline_background_fill_color' => '#FFFFFF',
'repeater_icon_border_color' => '#E8E8E8'
],
[
'repeater_story_title' => esc_html__('Timeline Item 2', 'king-addons'),
'repeater_description' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima incidunt voluptates nemo.', 'king-addons'),
'repeater_year' => esc_html__('2023', 'king-addons'),
'repeater_date_label' => esc_html__('February 2023', 'king-addons'),
'repeater_extra_label' => esc_html__('New office in California', 'king-addons'),
'repeater_story_icon' => [
'value' => 'fas fa-crown',
'library' => 'solid'
],
'repeater_image' => [
'url' => Utils::get_placeholder_image_src(),
'id' => '',
],
'repeater_youtube_video_url' => '',
'item_bg_color' => '#f44771',
'repeater_triangle_bgcolor' => '#f44771',
'repeater_overlay_bgcolor' => '#0000005E',
'repeater_story_title_color' => '#FCFCFC',
'repeater_description_color' => '#ECECEC',
'repeater_timeline_icon_bg_color' => '',
'item_content_border_color' => '#E8E8E8',
'repeater_timeline_icon_color' => '#E8E8E8',
'repeater_icon_timeline_fill_color' => '#f44771',
'repeater_icon_timeline_background_fill_color' => '#FFFFFF',
'repeater_icon_border_color' => '#E8E8E8'
],
[
'repeater_story_title' => esc_html__('Timeline Item 3', 'king-addons'),
'repeater_description' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima incidunt voluptates nemo.', 'king-addons'),
'repeater_year' => esc_html__('2023', 'king-addons'),
'repeater_date_label' => esc_html__('March 2023', 'king-addons'),
'repeater_extra_label' => esc_html__('First Product Launch', 'king-addons'),
'repeater_story_icon' => [
'value' => 'fas fa-rocket',
'library' => 'solid'
],
'repeater_show_year_label' => 'yes',
'repeater_image' => [
'url' => Utils::get_placeholder_image_src(),
'id' => '',
],
'repeater_youtube_video_url' => '',
'item_bg_color' => '#f44771',
'repeater_triangle_bgcolor' => '#f44771',
'repeater_overlay_bgcolor' => '#0000005E',
'repeater_story_title_color' => '#FCFCFC',
'repeater_description_color' => '#FDFDFD',
'item_content_border_color' => '#E8E8E8',
'repeater_timeline_icon_bg_color' => '',
'repeater_timeline_icon_color' => '#E8E8E8',
'repeater_icon_timeline_fill_color' => '#f44771',
'repeater_icon_timeline_background_fill_color' => '#FFFFFF',
'repeater_icon_border_color' => '#E8E8E8'
],
[
'repeater_story_title' => esc_html__('Timeline Item 4', 'king-addons'),
'repeater_description' => esc_html__('Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima incidunt voluptates nemo.', 'king-addons'),
'repeater_year' => esc_html__('2023', 'king-addons'),
'repeater_date_label' => esc_html__('April 2023', 'king-addons'),
'repeater_extra_label' => esc_html__('Entering Stock Market', 'king-addons'),
'repeater_story_icon' => [
'value' => 'fas fa-bolt',
'library' => 'solid'
],
'repeater_image' => [
'url' => Utils::get_placeholder_image_src(),
'id' => '',
],
'repeater_youtube_video_url' => '',
'item_bg_color' => '#f44771',
'repeater_triangle_bgcolor' => '#f44771',
'repeater_overlay_bgcolor' => '#0000005E',
'repeater_story_title_color' => '#FCFCFC',
'repeater_description_color' => '#F3F3F3',
'item_content_border_color' => '#E8E8E8',
'repeater_timeline_icon_bg_color' => '',
'repeater_timeline_icon_color' => '#E8E8E8',
'repeater_icon_timeline_fill_color' => '#f44771',
'repeater_icon_timeline_background_fill_color' => '#FFFFFF',
'repeater_icon_border_color' => '#E8E8E8'
],
],
'title_field' => '{{{ repeater_story_title }}}',
]
);
if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
$this->add_control(
'timeline_repeater_pro_notice',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => 'More than 4 Slides are available
in the Pro version',
'content_classes' => 'king-addons-pro-notice',
]
);
}
$this->end_controls_section();
$post_types = $this->add_option_query_source();
$post_taxonomies = Core::getCustomTypes('tax', false);
$this->start_controls_section(
'query_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Query', 'king-addons'),
'condition' => [
'timeline_content' => 'dynamic',
]
]
);
$this->add_control(
'timeline_post_types',
[
'label' => esc_html__('Post Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'post',
'label_block' => false,
'options' => $post_types,
]
);
Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'timeline', 'timeline_post_types', ['pro-rl']);
if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
$this->add_control(
'query_source_cpt_pro_notice',
[
'raw' => 'This option is available
in the Pro version',
'type' => Controls_Manager::RAW_HTML,
'content_classes' => 'king-addons-pro-notice',
'condition' => [
'timeline_post_types!' => ['post', 'page', 'related', 'current', 'pro-rl'],
]
]
);
}
$this->add_control(
'query_selection',
[
'label' => esc_html__('Selection', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'dynamic',
'options' => [
'dynamic' => esc_html__('Dynamic', 'king-addons'),
'manual' => esc_html__('Manual', 'king-addons'),
],
'condition' => [
'timeline_post_types!' => ['current', 'related'],
],
]
);
$this->add_control(
'query_tax_selection',
[
'label' => esc_html__('Selection Taxonomy', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'category',
'options' => $post_taxonomies,
'condition' => [
'timeline_post_types' => 'related',
],
]
);
foreach ($post_types as $slug => $title) {
$this->add_control(
'query_manual_' . $slug,
[
'label' => esc_html__('Select ', 'king-addons') . $title,
'type' => 'king-addons-ajax-select2',
'options' => 'ajaxselect2/getPostsByPostType',
'query_slug' => $slug,
'multiple' => true,
'label_block' => true,
'condition' => [
'timeline_post_types' => $slug,
'query_selection' => 'manual',
],
'separator' => 'before',
]
);
}
$this->add_control(
'query_author',
[
'label' => esc_html__('Authors', 'king-addons'),
'type' => 'king-addons-ajax-select2',
'options' => 'ajaxselect2/getUsers',
'multiple' => true,
'label_block' => true,
'separator' => 'before',
'condition' => [
'timeline_post_types!' => ['current', 'related'],
'query_selection' => 'dynamic',
],
]
);
foreach ($post_taxonomies as $slug => $title) {
global $wp_taxonomies;
$post_type = '';
if (isset($wp_taxonomies[$slug]->object_type[0])) {
$post_type = $wp_taxonomies[$slug]->object_type[0];
}
$this->add_control(
'query_taxonomy_' . $slug,
[
'label' => $title,
'type' => 'king-addons-ajax-select2',
'options' => 'ajaxselect2/getTaxonomies',
'query_slug' => $slug,
'multiple' => true,
'label_block' => true,
'condition' => [
'timeline_post_types' => $post_type,
'query_selection' => 'dynamic',
],
]
);
}
foreach ($post_types as $slug => $title) {
$this->add_control(
'query_exclude_' . $slug,
[
'label' => esc_html__('Exclude ', 'king-addons') . $title,
'type' => 'king-addons-ajax-select2',
'options' => 'ajaxselect2/getPostsByPostType',
'query_slug' => $slug,
'multiple' => true,
'label_block' => true,
'condition' => [
'timeline_content' => 'dynamic',
'timeline_post_types' => $slug,
'timeline_post_types!' => ['current', 'related'],
'query_selection' => 'dynamic',
],
]
);
}
$this->add_control_posts_per_page();
if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
$this->add_control(
'posts_per_page_pro_notice',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => 'More than 4 Posts are available
in the Pro version',
'content_classes' => 'king-addons-pro-notice',
]
);
}
$this->add_control(
'order_posts',
[
'label' => esc_html__('Order By', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'date',
'label_block' => false,
'options' => [
'title' => esc_html__('Title', 'king-addons'),
'date' => esc_html__('Date', 'king-addons'),
],
'condition' => [
'query_selection' => 'dynamic',
]
]
);
$this->add_control(
'order_direction',
[
'label' => esc_html__('Order', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'DESC',
'label_block' => false,
'options' => [
'ASC' => esc_html__('Ascending', 'king-addons'),
'DESC' => esc_html__('Descending', 'king-addons'),
],
'condition' => [
'query_selection' => 'dynamic',
]
]
);
$this->add_control(
'query_not_found_text',
[
'label' => esc_html__('Not Found Text', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => 'No Posts Found!',
'condition' => [
]
]
);
$this->add_control(
'query_exclude_no_images',
[
'label' => esc_html__('Exclude Items without Thumbnail', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'label_block' => false
]
);
$this->end_controls_section();
$this->start_controls_section(
'content_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Content', 'king-addons'),
'condition' => [
]
]
);
$this->add_responsive_control(
'content_alignment_left',
[
'label' => esc_html__('Content Align', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'left' => [
'title' => esc_html__('Left', 'king-addons'),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__('Right', 'king-addons'),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-left-aligned .king-addons-story-info-vertical' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-left-aligned .king-addons-title-wrap' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-left-aligned .king-addons-description' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-left-aligned .king-addons-inner-date-label' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .swiper-wrapper .king-addons-title-wrap' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .swiper-wrapper .king-addons-description' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .swiper-wrapper .king-addons-inner-date-label' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-title-wrap' => 'text-align: {{VALUE}};',
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided-left', 'horizontal', 'horizontal-bottom']
]
]
);
$this->add_responsive_control(
'content_alignment',
[
'label' => esc_html__('Content Align (Right)', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'left' => [
'title' => esc_html__('Left', 'king-addons'),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__('Right', 'king-addons'),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-right-aligned .king-addons-story-info-vertical' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-right-aligned .king-addons-title-wrap' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-right-aligned .king-addons-description' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-right-aligned .king-addons-inner-date-label' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-title-wrap' => 'text-align: {{VALUE}};',
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided']
]
]
);
$this->add_control(
'show_overlay',
[
'label' => esc_html__('Show Image Overlay', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'no',
'label_block' => false,
'separator' => 'before',
'render_type' => 'template',
'condition' => [
'content_layout' => 'image-top'
],
]
);
$this->add_control(
'show_on_hover',
[
'label' => esc_html__('Show Items on Hover', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'label_block' => false,
'selectors_dictionary' => [
'yes' => 'opacity: 0; transform: translateY(-50%); transition: all 0.5s ease',
'no' => 'visibility: visible;',
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => '{{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal-timeline .swiper-slide:hover .king-addons-story-info' => 'opacity: 1; transform: translateY(0%);'
],
'condition' => [
'timeline_layout' => ['horizontal']
]
]
);
$this->add_control(
'show_title',
[
'label' => esc_html__('Show Title', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
'render_type' => 'template',
'separator' => 'before'
]
);
$this->add_control(
'title_overlay',
[
'label' => esc_html__('Title Over Image', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'no',
'label_block' => false,
'render_type' => 'template',
'condition' => [
'show_overlay' => 'yes',
'content_layout' => 'image-top',
'show_title' => 'yes'
]
]
);
$this->add_control(
'show_date',
[
'label' => esc_html__('Show Date', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
'render_type' => 'template',
'separator' => 'before',
'condition' => [
'timeline_content' => 'dynamic'
]
]
);
$this->add_control(
'date_overlay',
[
'label' => esc_html__('Date Over Image', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'no',
'label_block' => false,
'condition' => [
'show_overlay' => 'yes',
'content_layout' => 'image-top',
'timeline_content' => 'dynamic',
'show_date' => 'yes'
]
]
);
$this->add_control(
'show_description',
[
'label' => esc_html__('Show Description', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
'render_type' => 'template',
'separator' => 'before',
'condition' => [
]
]
);
$this->add_control(
'description_overlay',
[
'label' => esc_html__('Description Over Image', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'no',
'label_block' => false,
'condition' => [
'show_overlay' => 'yes',
'content_layout' => 'image-top',
'show_description' => 'yes'
]
]
);
$this->add_control(
'excerpt_count',
[
'label' => esc_html__('Excerpt Count', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'min' => 0,
'max' => 200,
'render_type' => 'template',
'frontend_available' => true,
'default' => 10,
'condition' => [
'timeline_content' => 'dynamic',
'show_description' => 'yes'
]
]
);
$this->add_control(
'show_readmore',
[
'label' => esc_html__('Show Read More', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'yes',
'label_block' => false,
'render_type' => 'template',
'separator' => 'before',
'condition' => [
'timeline_content' => ['dynamic']
]
]
);
$this->add_control(
'readmore_overlay',
[
'label' => esc_html__('Read More Over Image', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'yes',
'default' => 'no',
'label_block' => false,
'render_type' => 'template',
'condition' => [
'show_overlay' => 'yes',
'show_readmore' => 'yes',
'content_layout' => 'image-top',
'timeline_content' => ['dynamic']
]
]
);
$this->add_responsive_control(
'readmore_content_alignment_left',
[
'label' => esc_html__('Align', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'left' => [
'title' => esc_html__('Left', 'king-addons'),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__('Right', 'king-addons'),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-left-aligned .king-addons-read-more-wrap' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-left-aligned .king-addons-read-more-button' => 'text-align: center;',
'{{WRAPPER}} .swiper-wrapper .king-addons-read-more-wrap' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .swiper-wrapper .king-addons-read-more-button' => 'text-align: center;',
],
'condition' => [
'show_readmore' => 'yes',
'timeline_content' => ['dynamic'],
'timeline_layout!' => 'one-sided',
]
]
);
$this->add_responsive_control(
'readmore_content_alignment',
[
'label' => esc_html__('Align (Right)', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'left' => [
'title' => esc_html__('Left', 'king-addons'),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__('Right', 'king-addons'),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-right-aligned .king-addons-read-more-wrap' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-right-aligned .king-addons-read-more-button' => 'text-align: center;',
],
'condition' => [
'show_readmore' => 'yes',
'timeline_content' => ['dynamic'],
'timeline_layout' => ['centered', 'one-sided']
]
]
);
$this->add_control(
'read_more_text',
[
'label' => esc_html__('Read More', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => 'Read More',
'condition' => [
'show_readmore' => 'yes',
'timeline_content' => 'dynamic'
]
]
);
$this->end_controls_section();
$this->start_controls_section(
'overlay_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Overlay', 'king-addons'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'content_layout' => 'image-top',
'show_overlay' => 'yes'
]
]
);
$this->add_control(
'overlay_width',
[
'label' => esc_html__('Width', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['%', 'px'],
'default' => [
'unit' => '%',
'size' => 100,
],
'range' => [
'%' => [
'min' => 0,
'max' => 100,
],
'px' => [
'min' => 0,
'max' => 500,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay' => 'width: {{SIZE}}{{UNIT}};top:calc((100% - {{overlay_height.SIZE}}{{overlay_height.UNIT}})/2);left:calc((100% - {{SIZE}}{{UNIT}})/2);',
],
]
);
$this->add_responsive_control(
'overlay_height',
[
'label' => esc_html__('Height', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['%', 'px'],
'default' => [
'unit' => '%',
'size' => 100,
],
'range' => [
'%' => [
'min' => 0,
'max' => 100,
],
'px' => [
'min' => 0,
'max' => 500,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay' => 'height: {{SIZE}}{{UNIT}};top:calc((100% - {{SIZE}}{{UNIT}})/2);left:calc((100% - {{overlay_width.SIZE}}{{overlay_width.UNIT}})/2);',
],
'separator' => 'after',
]
);
$this->add_responsive_control(
'overlay_content_alignment_vertical',
[
'label' => esc_html__('Content Vertical Align', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'flex-start' => [
'title' => esc_html__('Start', 'king-addons'),
'icon' => 'eicon-v-align-top',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-v-align-middle',
],
'flex-end' => [
'title' => esc_html__('End', 'king-addons'),
'icon' => 'eicon-v-align-bottom',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay' => 'justify-content: {{VALUE}};',
],
'condition' => [
'show_overlay' => 'yes',
'content_layout' => 'image-top'
]
]
);
$this->add_responsive_control(
'overlay_content_alignment_horizontal',
[
'label' => esc_html__('Content Horizontal Align', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'flex-start' => [
'title' => esc_html__('Start', 'king-addons'),
'icon' => 'eicon-h-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-h-align-center',
],
'flex-end' => [
'title' => esc_html__('End', 'king-addons'),
'icon' => 'eicon-h-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay p' => 'display: flex; justify-content: {{VALUE}};',
'{{WRAPPER}} .king-addons-timeline-story-overlay div' => 'display: flex; justify-content: {{VALUE}};',
],
'condition' => [
'show_overlay' => 'yes',
'content_layout' => 'image-top'
]
]
);
$this->add_control(
'overlay_animation',
[
'label' => esc_html__('Select Animation', 'king-addons'),
'type' => 'king-addons-animations',
'default' => 'none',
]
);
Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'timeline', 'overlay_animation', ['pro-slrt', 'pro-slxrt', 'pro-slbt', 'pro-sllt', 'pro-sltp', 'pro-slxlt', 'pro-sktp', 'pro-skrt', 'pro-skbt', 'pro-sklt', 'pro-scup', 'pro-scdn', 'pro-rllt', 'pro-rlrt']);
$this->add_control(
'overlay_animation_duration',
[
'label' => esc_html__('Animation Duration', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 0.3,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay' => 'transition-duration: {{VALUE}}s;'
],
'condition' => [
'overlay_animation!' => 'none',
],
]
);
$this->add_control(
'overlay_animation_delay',
[
'label' => esc_html__('Animation Delay', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 0,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-animation-wrap:hover .king-addons-timeline-story-overlay' => 'transition-delay: {{VALUE}}s;'
],
'condition' => [
'overlay_animation!' => 'none',
],
]
);
$this->add_control(
'overlay_animation_size',
[
'label' => esc_html__('Animation Size', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'small' => esc_html__('Small', 'king-addons'),
'medium' => esc_html__('Medium', 'king-addons'),
'large' => esc_html__('Large', 'king-addons'),
],
'default' => 'large',
'condition' => [
'overlay_animation!' => 'none',
],
]
);
$this->add_control(
'overlay_animation_timing',
[
'label' => esc_html__('Animation Timing', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => Core::getAnimationTimings(),
'default' => 'ease-default',
'condition' => [
'overlay_animation!' => 'none',
],
]
);
$this->add_control(
'overlay_animation_tr',
[
'label' => esc_html__('Animation Transparency', 'king-addons'),
'type' => Controls_Manager::SWITCHER,
'default' => 'yes',
'return_value' => 'yes',
'condition' => [
'overlay_animation!' => 'none',
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'pagination_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Pagination', 'king-addons'),
'tab' => Controls_Manager::TAB_CONTENT,
'condition' => [
'timeline_content' => 'dynamic',
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left'],
'show_pagination' => 'yes'
]
]
);
$this->add_control(
'pagination_type',
[
'label' => esc_html__('Pagination Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'render_type' => 'template',
'default' => 'load-more',
'options' => [
'load-more' => esc_html__('Load More'),
'infinite-scroll' => esc_html__('Infinite Scroll')
],
'condition' => [
'show_pagination' => 'yes',
]
]
);
$this->add_control(
'pagination_load_more_text',
[
'label' => esc_html__('Load More Text', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => esc_html__('Load More', 'king-addons'),
'condition' => [
'pagination_type' => 'load-more',
]
]
);
$this->add_control(
'pagination_finish_text',
[
'label' => esc_html__('Finish Text', 'king-addons'),
'type' => Controls_Manager::TEXT,
'dynamic' => [
'active' => true,
],
'default' => 'End of Content.',
'condition' => [
'pagination_type' => ['load-more', 'infinite-scroll'],
]
]
);
$this->add_control(
'pagination_animation',
[
'label' => esc_html__('Select Animation', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'loader-1',
'options' => [
'none' => esc_html__('None', 'king-addons'),
'loader-1' => esc_html__('Loader 1', 'king-addons'),
'loader-2' => esc_html__('Loader 2', 'king-addons'),
'loader-3' => esc_html__('Loader 3', 'king-addons'),
'loader-4' => esc_html__('Loader 4', 'king-addons'),
'loader-5' => esc_html__('Loader 5', 'king-addons'),
'loader-6' => esc_html__('Loader 6', 'king-addons'),
],
'condition' => [
'pagination_type' => ['load-more', 'infinite-scroll'],
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
],
]
);
$this->add_responsive_control(
'pagination_alignment',
[
'label' => esc_html__('Align', 'king-addons'),
'type' => Controls_Manager::CHOOSE,
'label_block' => false,
'default' => 'center',
'options' => [
'left' => [
'title' => esc_html__('Left', 'king-addons'),
'icon' => 'eicon-text-align-left',
],
'center' => [
'title' => esc_html__('Center', 'king-addons'),
'icon' => 'eicon-text-align-center',
],
'right' => [
'title' => esc_html__('Right', 'king-addons'),
'icon' => 'eicon-text-align-right',
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination' => 'text-align: {{VALUE}};',
'{{WRAPPER}} .king-addons-pagination-loading' => 'text-align: {{VALUE}};',
],
'condition' => [
'timeline_content' => ['dynamic'],
'timeline_layout' => ['centered', 'one-sided']
]
]
);
$this->end_controls_section();
Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'posts-timeline', [
'Add Unlimited Custom Timeline Items',
'Unlimited Posts Per Page Option',
'Custom Post Types Support',
'Unlimited Slides to Show Option',
'Carousel Autoplay and Autoplay Speed',
'Pause on Hover',
'Advanced Pagination - Load More Button or Infinite Scroll Options',
'Advanced Entrance Animation Options'
]);
$this->start_controls_section(
'content_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Timeline Items', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'story_bgcolor',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-data-wrap' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal .king-addons-story-info' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-story-info' => 'background-color: {{VALUE}}',
],
'default' => '#FFF',
]
);
$this->add_control(
'story_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'border-color: {{VALUE}} !important;',
'{{WRAPPER}} .king-addons-story-info-vertical' => 'border-color: {{VALUE}} !important;',
],
'condition' => [
'timeline_layout!' => 'centered'
],
'default' => '#5B03FF',
]
);
$this->add_control(
'story_border_color_left',
[
'label' => esc_html__('Border Color (Left Aligned)', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-left-aligned .king-addons-story-info-vertical' => 'border-color: {{VALUE}};',
],
'condition' => [
'timeline_layout' => 'centered',
],
'default' => '#5B03FF',
]
);
$this->add_control(
'story_border_color_right',
[
'label' => esc_html__('Border Color (Right Aligned)', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-right-aligned .king-addons-story-info-vertical' => 'border-color: {{VALUE}} !important;',
],
'condition' => [
'timeline_layout' => 'centered',
],
'default' => '#5B03FF',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'timeline_item_shadow',
'selector' => '{{WRAPPER}} .king-addons-story-info',
'fields_options' => [
'box_shadow_type' =>
[
'default' => 'yes'
],
'box_shadow' => [
'default' =>
[
'horizontal' => 0,
'vertical' => 0,
'blur' => 20,
'spread' => 1,
'color' => 'rgba(0,0,0,0.1)'
]
]
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'timeline_item_shadow_vertical',
'selector' => '{{WRAPPER}} .king-addons-story-info-vertical',
'fields_options' => [
'box_shadow_type' =>
[
'default' => 'yes'
],
'box_shadow' => [
'default' =>
[
'horizontal' => 0,
'vertical' => 0,
'blur' => 20,
'spread' => 1,
'color' => 'rgba(0,0,0,0.1)'
]
]
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
]
]
);
$this->add_responsive_control(
'item_distance_from_line',
[
'label' => esc_html__('Distance From Line', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'devices' => ['desktop', 'tablet', 'mobile'],
'default' => [
'size' => 40,
'unit' => 'px',
],
'tablet_default' => [
'size' => 40,
'unit' => 'px',
],
'mobile_default' => [
'size' => 15,
'unit' => 'px',
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline-left .king-addons-data-wrap' => 'margin-right: calc({{main_line_side_distance.SIZE}}px/2 + {{SIZE}}px);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline .king-addons-data-wrap' => 'margin-left: calc({{main_line_side_distance.SIZE}}px/2 + {{SIZE}}px);',
'{{WRAPPER}} .king-addons-centered .king-addons-left-aligned .king-addons-timeline-entry-inner .king-addons-data-wrap' => 'margin-right: {{SIZE}}px;',
'{{WRAPPER}} .king-addons-centered .king-addons-right-aligned .king-addons-timeline-entry-inner .king-addons-data-wrap' => 'margin-left: {{SIZE}}px;',
'{{WRAPPER}} .king-addons-centered .king-addons-one-sided-timeline .king-addons-right-aligned .king-addons-timeline-entry-inner .king-addons-data-wrap' => 'margin-left: calc({{main_line_side_distance.SIZE}}px/2 + {{SIZE}}px);',
'{{WRAPPER}} .king-addons-centered .king-addons-one-sided-timeline .king-addons-extra-label' => 'margin-left: calc({{main_line_side_distance.SIZE}}px/2 + {{SIZE}}px);',
'{{WRAPPER}} .king-addons-one-sided-wrapper .king-addons-one-sided-timeline .king-addons-extra-label' => 'margin-left: calc({{main_line_side_distance.SIZE}}px/2 + {{SIZE}}px);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline-left .king-addons-timeline-entry .king-addons-extra-label' => 'margin-right: calc({{main_line_side_distance.SIZE}}px/2 + {{SIZE}}px);',
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
],
'render_type' => 'template',
'separator' => 'before'
]
);
$this->add_responsive_control(
'item_distance_vertical',
[
'label' => esc_html__('Vertical Distance', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 200,
],
],
'default' => [
'unit' => 'px',
'size' => 40,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-centered .king-addons-year-wrap' => 'margin-bottom: {{SIZE}}px;',
'{{WRAPPER}} .king-addons-timeline-centered .king-addons-timeline-entry' => 'margin-bottom: {{SIZE}}px;',
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
],
'render_type' => 'template',
]
);
$this->add_responsive_control(
'timeline_item_position',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Item Bottom Distance', 'king-addons'),
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 150,
]
],
'default' => [
'unit' => 'px',
'size' => 50,
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'margin-bottom: calc({{SIZE}}{{UNIT}} + {{swiper_pagination_progressbar_bottom.SIZE}}{{swiper_pagination_progressbar_bottom.UNIT}}) !important;',
],
'condition' => [
'timeline_layout' => ['horizontal'],
'equal_height_slides!' => 'auto-height',
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'timeline_item_position_equal_heights',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Item Bottom Distance', 'king-addons'),
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 150,
]
],
'default' => [
'unit' => 'px',
'size' => 50,
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal-timeline .swiper-slide.swiper-slide-line-bottom.auto-height .king-addons-story-info' => 'margin-bottom: calc({{SIZE}}{{UNIT}} + {{swiper_pagination_progressbar_bottom.SIZE}}{{swiper_pagination_progressbar_bottom.UNIT}}) !important; max-height: calc(100% - {{SIZE}}{{UNIT}} - {{swiper_pagination_progressbar_bottom.SIZE}}{{swiper_pagination_progressbar_bottom.UNIT}}) !important; height: calc(100% - {{SIZE}}{{UNIT}} - {{swiper_pagination_progressbar_bottom.SIZE}}{{swiper_pagination_progressbar_bottom.UNIT}}) !important;'
],
'condition' => [
'timeline_layout' => 'horizontal',
'equal_height_slides' => 'auto-height',
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'story_info_margin_top',
[
'label' => esc_html__('Item Top Distance', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'default' => [
'unit' => 'px',
'size' => 50,
],
'range' => [
'px' => [
'min' => 0,
'max' => 150,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal-bottom-timeline .king-addons-story-info' => 'margin-top: calc({{SIZE}}{{UNIT}} + {{swiper_pagination_progressbar_top.SIZE}}{{swiper_pagination_progressbar_top.UNIT}}) !important; max-height: calc(100% - {{SIZE}}{{UNIT}}) !important;',
'{{WRAPPER}} .king-addons-horizontal-bottom-timeline .swiper-slide.auto-height .king-addons-story-info' => 'margin-top: calc({{SIZE}}{{UNIT}} + {{swiper_pagination_progressbar_top.SIZE}}{{swiper_pagination_progressbar_top.UNIT}}) !important; max-height: calc(100% - {{SIZE}}{{UNIT}}) !important; height: calc(100% - ({{SIZE}}{{UNIT}} + {{swiper_pagination_progressbar_top.SIZE}}{{swiper_pagination_progressbar_top.UNIT}})) !important'
],
'separator' => 'before',
'condition' => [
'timeline_layout' => ['horizontal-bottom'],
],
]
);
$this->add_responsive_control(
'story_padding',
[
'label' => esc_html__('Item Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 20,
'right' => 20,
'bottom' => 20,
'left' => 20,
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-data-wrap' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'condition' => [
],
]
);
$this->add_responsive_control(
'story_container_padding',
[
'label' => esc_html__('Container Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'description' => esc_html__('Apply this option to fix Box Shadow issue.', 'king-addons'),
'size_units' => ['px'],
'devices' => ['desktop', 'tablet', 'mobile'],
'default' => [
'top' => 10,
'right' => 10,
'left' => 10,
'bottom' => 10,
'unit' => 'px'
],
'tablet_default' => [
'top' => 10,
'right' => 10,
'left' => 10,
'bottom' => 10,
'unit' => 'px',
],
'mobile_default' => [
'top' => 10,
'right' => 10,
'left' => 10,
'bottom' => 10,
'unit' => 'px',
],
'selectors' => [
'{{WRAPPER}} .king-addons-vertical' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-wrapper .swiper-slide' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'timeline_item_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'border-style: {{VALUE}} !important;',
'{{WRAPPER}} .king-addons-story-info-vertical' => 'border-style: {{VALUE}} !important;',
],
'separator' => 'before',
]
);
$this->add_control(
'timeline_item_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
'{{WRAPPER}} .king-addons-story-info-vertical' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
'{{WRAPPER}} .king-addons-horizontal-timeline .king-addons-story-info:before' => 'top: calc( 100% + {{BOTTOM}}{{UNIT}} ) !important;',
'{{WRAPPER}} .king-addons-horizontal-bottom-timeline .king-addons-story-info:before' => 'bottom: calc( 100% + {{TOP}}{{UNIT}} ) !important;',
'{{WRAPPER}} .king-addons-right-aligned .king-addons-story-info-vertical.king-addons-data-wrap:after' => 'right: calc( 100% + {{LEFT}}{{UNIT}} ) !important;',
'{{WRAPPER}} .king-addons-left-aligned .king-addons-story-info-vertical.king-addons-data-wrap:after' => 'left: calc( 100% + {{LEFT}}{{UNIT}} ) !important;'
],
'condition' => [
'timeline_layout!' => 'centered',
'timeline_item_border_type!' => 'none'
],
]
);
$this->add_control(
'timeline_item_border_width_left',
[
'label' => esc_html__('Border Width (Left Aligned)', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
'{{WRAPPER}} .king-addons-story-info-vertical' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
'body[data-elementor-device-mode=desktop] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-left-aligned .king-addons-data-wrap:after' => 'left: calc( 100% + {{RIGHT}}{{UNIT}} ) !important;',
'body[data-elementor-device-mode=tablet] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-left-aligned .king-addons-data-wrap:after' => 'left: calc( 100% + {{RIGHT}}{{UNIT}} ) !important;',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-left-aligned .king-addons-data-wrap:after' => 'right: calc( 103% + {{LEFT}}{{UNIT}} ) !important; left: auto !important',
],
'condition' => [
'timeline_layout' => 'centered',
'timeline_item_border_type!' => 'none'
]
]
);
$this->add_control(
'timeline_item_border_width_right',
[
'label' => esc_html__('Border Width (Right Aligned)', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .king-addons-right-aligned .king-addons-story-info-vertical' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
'body[data-elementor-device-mode=desktop] {{WRAPPER}} .king-addons-right-aligned .king-addons-data-wrap:after' => 'right: calc( 100% + {{LEFT}}{{UNIT}} ) !important;',
'body[data-elementor-device-mode=tablet] {{WRAPPER}} .king-addons-right-aligned .king-addons-data-wrap:after' => 'right: calc( 100% + {{LEFT}}{{UNIT}} ) !important;',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-right-aligned .king-addons-data-wrap:after' => 'right: calc( 100% + {{LEFT}}{{UNIT}} ) !important;',
],
'condition' => [
'timeline_layout' => 'centered',
'timeline_item_border_type!' => 'none'
]
]
);
$this->add_control(
'story_border_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 5,
'right' => 5,
'bottom' => 5,
'left' => 5,
],
'selectors' => [
'{{WRAPPER}} .king-addons-story-info' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
'{{WRAPPER}} .king-addons-story-info-vertical' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'media_style_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Media', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_responsive_control(
'width',
[
'label' => esc_html__('Image Width', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 100,
'unit' => '%',
],
'size_units' => ['%', 'px'],
'range' => [
'%' => [
'min' => 10,
'max' => 100,
],
'px' => [
'min' => 10,
'max' => 200,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-media' => 'width: {{SIZE}}{{UNIT}};',
],
'separator' => 'after',
]
);
$this->add_control(
'media_item_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-media' => 'border-color: {{VALUE}}',
],
]
);
$this->add_control(
'media_item_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-media' => 'border-style: {{VALUE}};',
],
]
);
$this->add_responsive_control(
'media_item_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-media' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'media_item_border_type!' => 'none'
]
]
);
$this->add_control(
'media_item_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-media' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'media_item_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-media' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before'
]
);
$this->end_controls_section();
$this->start_controls_section(
'content_style_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Content', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
],
]
);
$this->add_control(
'item_content_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-content-wrapper' => 'border-color: {{VALUE}}',
],
]
);
$this->add_control(
'item_content_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-content-wrapper' => 'border-style: {{VALUE}};',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'item_content_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-content-wrapper' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'item_content_border_type!' => 'none'
],
'separator' => 'before'
]
);
$this->add_control(
'item_content_border_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-content-wrapper' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow: hidden',
],
]
);
$this->add_responsive_control(
'content_item_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-content-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
$this->start_controls_section(
'overlay_style_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Overlay', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'content_layout' => 'image-top',
'show_overlay' => 'yes'
],
]
);
$this->add_control(
'overlay_bgcolor',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-timeline-story-overlay' => 'background-color: {{VALUE}}',
],
'default' => '#0000005E',
]
);
$this->add_group_control(
Group_Control_Background::get_type(),
[
'name' => 'overlay_background',
'label' => esc_html__('Background', 'king-addons'),
'types' => ['classic', 'gradient', 'video'],
'selector' => '{{WRAPPER}} .king-addons-timeline-story-overlay',
]
);
$this->add_control(
'overlay_border_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
]
);
$this->add_responsive_control(
'timeline_overlay_padding',
[
'label' => esc_html__('Overlay Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'separator' => 'before',
'default' => [
'top' => 25,
'right' => 25,
'bottom' => 25,
'left' => 25,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-story-overlay' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'show_overlay' => 'yes',
'content_layout' => 'image-top',
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'title_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'story_title_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-title' => 'color: {{VALUE}}',
],
'default' => '#444444',
]
);
$this->add_control(
'story_title_bg_color',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-title-wrap' => 'background-color: {{VALUE}} !important',
],
'default' => '#FFFFFF00',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'title_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-wrapper .king-addons-title',
]
);
$this->add_responsive_control(
'title_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'title_margin',
[
'label' => esc_html__('Margin', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 10,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-title-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->end_controls_section();
$this->start_controls_section(
'section_style_date',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Date', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'show_label' => false,
'condition' => [
'timeline_content' => 'dynamic'
]
]
);
$this->add_control(
'date_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#9C9C9C',
'selectors' => [
'{{WRAPPER}} .king-addons-inner-date-label' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'date_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .king-addons-inner-date-label' => 'border-color: {{VALUE}}',
]
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'date_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-inner-date-label',
'fields_options' => [
'typography' => [
'default' => 'custom',
],
'font_weight' => [
'default' => '300',
],
'font_family' => [
'default' => 'Roboto',
],
'font_size' => [
'default' => [
'size' => '15',
'unit' => 'px',
]
]
]
]
);
$this->add_control(
'date_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .king-addons-inner-date-label' => 'border-style: {{VALUE}};',
],
'separator' => 'before',
]
);
$this->add_control(
'date_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .king-addons-inner-date-label' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'date_border_type!' => 'none',
],
]
);
$this->add_responsive_control(
'date_margin',
[
'label' => esc_html__('Margin', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 5,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-inner-date-label' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'description_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Description', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'description_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-description' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper .king-addons-description p' => 'color: {{VALUE}}'
],
'default' => '#808080',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'description_typography_description',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-wrapper .king-addons-description',
]
);
$this->add_control(
'timeline_list_types',
[
'label' => esc_html__('List Style', 'king-addons'),
'type' => Controls_Manager::SELECT,
'default' => 'none',
'label_block' => false,
'description' => esc_html__('Apply this option for WYSIWYG lists', 'king-addons'),
'options' => [
'none' => esc_html__('None', 'king-addons'),
'disc' => esc_html__('Disc', 'king-addons'),
'decimal' => esc_html__('Number', 'king-addons')
],
'prefix_class' => 'king-addons-list-style-',
]
);
$this->add_responsive_control(
'description_margin',
[
'label' => esc_html__('Margin', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 5,
'right' => 0,
'bottom' => 5,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-description' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->end_controls_section();
$this->start_controls_section(
'readmore_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Read More', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'timeline_content' => ['dynamic']
]
]
);
$this->start_controls_tabs(
'readmore_style_tabs'
);
$this->start_controls_tab(
'readmore_style_normal_tab',
[
'label' => esc_html__('Normal', 'king-addons'),
]
);
$this->add_control(
'readmore_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button' => 'color: {{VAlUE}}',
],
'default' => '#fff',
]
);
$this->add_control(
'readmore_bg_color',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button' => 'background-color: {{VAlUE}}',
],
'default' => '#5B03FF',
]
);
$this->add_control(
'readmore_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .king-addons-read-more-button' => 'border-color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'read_more_box_shadow',
'selector' => '{{WRAPPER}} .king-addons-read-more-button',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'readmore_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button',
]
);
$this->add_control(
'read_more_transition_duration',
[
'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-read-more-button' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'before'
]
);
$this->add_control(
'readmore_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .king-addons-read-more-button' => 'border-style: {{VALUE}};',
],
'separator' => 'before',
]
);
$this->add_control(
'readmore_item_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .king-addons-read-more-button' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'readmore_border_type!' => 'none',
],
'render_type' => 'template'
]
);
$this->add_responsive_control(
'readmore_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 6,
'right' => 13,
'bottom' => 7,
'left' => 13,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'readmore_margin',
[
'label' => esc_html__('Margin', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 15,
'right' => 0,
'bottom' => 15,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
]
);
$this->add_control(
'readmore_border_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'style_hover_tab',
[
'label' => esc_html__('Hover', 'king-addons'),
]
);
$this->add_control(
'readmore_color_hover',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button:hover' => 'color: {{VAlUE}}',
],
'default' => '#ffffff',
]
);
$this->add_control(
'readmore_bg_color_hover',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-read-more-button:hover' => 'background-color: {{VAlUE}}',
],
'default' => '#000000',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
$this->start_controls_section(
'middle_line_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Main Line', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'line_color',
[
'label' => esc_html__('Line Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-line::before' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper .king-addons-middle-line' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper .king-addons-timeline-centered .king-addons-year' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper:before' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper:after' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal .king-addons-swiper-pagination.swiper-pagination-progressbar' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-swiper-pagination.swiper-pagination-progressbar' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-prev' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-next' => 'color: {{VALUE}}',
],
'default' => '#D6D6D6',
]
);
$this->add_control(
'swiper_progressbar_color',
[
'label' => esc_html__('Progress(Fill) Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal .king-addons-swiper-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-swiper-pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill' => 'background-color: {{VALUE}}',
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
],
'default' => '#5B03FF',
]
);
$this->add_control(
'timeline_fill_color',
[
'label' => esc_html__('Line Fill Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#5B03FF',
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-fill' => 'background-color: {{VALUE}} !important;',
'{{WRAPPER}} .king-addons-change-border-color' => 'border-color: {{VALUE}} !important;',
'{{WRAPPER}} .king-addons-vertical:before' => 'background-color: {{VALUE}} !important;',
'{{WRAPPER}} .king-addons-vertical:after' => 'background-color: {{VALUE}} !important;',
],
'condition' => [
'timeline_layout!' => ['horizontal', 'horizontal-bottom']
],
]
);
$this->add_control(
'middle_line_width',
[
'label' => esc_html__('Line Width', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 1,
'max' => 50,
]
],
'default' => [
'unit' => 'px',
'size' => 4,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-middle-line' => 'width: {{SIZE}}px; transform: translate(-50%) !important',
'{{WRAPPER}} .king-addons-wrapper .king-addons-timeline-fill' => 'width: {{SIZE}}px; transform: translate(-50%) !important;',
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline-left .king-addons-middle-line' => 'width: {{SIZE}}px; transform: translate(50%) !important;',
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline-left .king-addons-timeline-fill' => 'width: {{SIZE}}px; transform: translate(50%) !important;',
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline .king-addons-middle-line' => 'width: {{SIZE}}px; transform: translate(-50%) !important;',
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline .king-addons-timeline-fill' => 'width: {{SIZE}}px; transform: translate(-50%) !important;',
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'swiper_pagination_progressbar_height',
[
'type' => Controls_Manager::NUMBER,
'label' => esc_html__('Height', 'king-addons'),
'default' => 0.7,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-swiper-pagination.swiper-pagination-progressbar' => 'transform: scaleY({{SIZE}}) translateX(-50%);',
],
'separator' => 'before',
'condition' => [
'timeline_layout' => ['horizontal-bottom', 'horizontal']
],
]
);
$this->add_responsive_control(
'swiper_pagination_progressbar_bottom',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Bottom Distance', 'king-addons'),
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
]
],
'default' => [
'unit' => 'px',
'size' => 100,
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal .king-addons-swiper-pagination.swiper-pagination-progressbar' => 'top: auto; bottom: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-icon' => 'bottom: calc({{SIZE}}{{UNIT}} + 1px) !important;',
'{{WRAPPER}} .king-addons-button-prev' => 'top: auto; bottom: calc({{SIZE}}{{UNIT}});',
'{{WRAPPER}} .king-addons-button-next' => 'top: auto; bottom: calc({{SIZE}}{{UNIT}});',
],
'condition' => [
'timeline_layout' => ['horizontal']
],
]
);
$this->add_responsive_control(
'swiper_pagination_progressbar_top',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Top Distance', 'king-addons'),
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
]
],
'default' => [
'unit' => 'px',
'size' => 100,
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-swiper-pagination.swiper-pagination-progressbar' => 'bottom: auto; top: {{SIZE}}{{UNIT}} !important',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-icon' => 'position: absolute; top: calc({{SIZE}}{{UNIT}} + 1px) !important; left: 50%; transform: translate(-50%, -50%);',
'{{WRAPPER}} .king-addons-button-prev' => 'bottom: auto; top: calc({{SIZE}}{{UNIT}} + 2px);',
'{{WRAPPER}} .king-addons-button-next' => 'bottom: auto; top: calc({{SIZE}}{{UNIT}} + 2px);',
],
'condition' => [
'timeline_layout' => ['horizontal-bottom']
],
]
);
$this->add_responsive_control(
'main_line_side_distance',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Side Distance', 'king-addons'),
'description' => esc_html__('This option for Zig-Zag layout only works on mobile devices.', 'king-addons'),
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
]
],
'devices' => ['desktop', 'tablet', 'mobile'],
'default' => [
'size' => 100,
'unit' => 'px',
],
'tablet_default' => [
'size' => 100,
'unit' => 'px',
],
'mobile_default' => [
'size' => 50,
'unit' => 'px',
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline .king-addons-year-label' => 'left: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline .king-addons-middle-line' => 'left: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline .king-addons-timeline-fill' => 'left: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline .king-addons-icon' => 'left: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline-left .king-addons-year-label' => 'right: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline-left .king-addons-middle-line' => 'right: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline-left .king-addons-timeline-fill' => 'right: calc({{SIZE}}px/2);',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline-left .king-addons-icon' => 'right: calc({{SIZE}}px/2);',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-year-label' => 'position: absolute; left: calc({{SIZE}}px/2);',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-middle-line' => 'left: calc({{SIZE}}px/2);',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-timeline-fill' => 'left: calc({{SIZE}}px/2);',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-both-sided-timeline .king-addons-icon' => 'left: calc({{SIZE}}px/2); transform: translate(-50%, -50%) !important;',
],
'render_type' => 'template',
'condition' => [
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'year_label_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Main Line Label', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'timeline_content' => 'custom'
]
]
);
$this->add_control(
'year_label_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-year' => 'color: {{VALUE}}',
],
'default' => '#222222',
'condition' => [
'timeline_content' => ['custom'],
]
]
);
$this->add_control(
'year_label_bgcolor',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-year' => 'background-color: {{VALUE}}',
],
'default' => '#fff',
'condition' => [
'timeline_content' => ['custom'],
]
]
);
$this->add_control(
'year_label_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-year.king-addons-year-label' => 'border-color: {{VALUE}}',
],
'default' => '#E0E0E0',
'condition' => [
'timeline_content' => ['custom'],
]
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'year_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-wrapper .king-addons-year',
'condition' => [
'timeline_content' => ['custom'],
]
]
);
$this->add_responsive_control(
'year_label_width',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Width', 'king-addons'),
'size_units' => ['px'],
'default' => [
'size' => 70,
'unit' => 'px'
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
]
],
'selectors' => [
'{{WRAPPER}} .king-addons-year-label' => 'width: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
'render_type' => 'template',
]
);
$this->add_responsive_control(
'year_label_height',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__('Height', 'king-addons'),
'size_units' => ['px'],
'default' => [
'size' => 41,
'unit' => 'px'
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
]
],
'selectors' => [
'{{WRAPPER}} .king-addons-year-label' => 'height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-year-wrap' => 'height: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'year_label_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'solid',
'selectors' => [
'{{WRAPPER}} .king-addons-year-label' => 'border-style: {{VALUE}};',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'year_label_border_size',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 10,
],
],
'default' => [
'unit' => 'px',
'size' => 3,
],
'selectors' => [
'{{WRAPPER}} .king-addons-year-label' => 'border-width: {{SIZE}}{{UNIT}};',
],
'condition' => [
'year_label_border_type!' => 'none'
]
]
);
$this->add_control(
'year_label_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 5,
'right' => 5,
'bottom' => 5,
'left' => 5,
],
'selectors' => [
'{{WRAPPER}} .king-addons-year-label' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
$this->start_controls_section(
'icon_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Main Line Icon', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'icon_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-icon i' => 'color: {{VALUE}};',
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon' => 'color: {{VALUE}};',
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon svg' => 'fill: {{VALUE}};',
],
'default' => '#666666',
]
);
$this->add_control(
'icon_timeline_fill_color',
[
'label' => esc_html__('Fill Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#333333',
'selectors' => [
'{{WRAPPER}} .king-addons-change-border-color.king-addons-icon i' => 'color: {{VALUE}};',
'{{WRAPPER}} .king-addons-change-border-color.king-addons-icon svg' => 'fill: {{VALUE}};',
],
'condition' => [
'timeline_layout!' => ['horizontal', 'horizontal-bottom']
],
]
);
$this->add_control(
'icon_bgcolor',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon' => 'background-color: {{VALUE}}',
],
'default' => '#FFFFFF',
]
);
$this->add_control(
'icon_timeline_background_fill_color',
[
'label' => esc_html__('Background Fill Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#FFFFFF',
'selectors' => [
'{{WRAPPER}} .king-addons-change-border-color.king-addons-icon' => 'background-color: {{VALUE}};',
],
'condition' => [
'timeline_layout!' => ['horizontal', 'horizontal-bottom']
],
]
);
$this->add_control(
'icon_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#EAEAEA',
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon' => 'border-color: {{VALUE}}',
],
]
);
$this->add_control(
'icon_transition_duration',
[
'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-icon' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'icon_size',
[
'label' => esc_html__('Icon Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 10,
'max' => 100,
],
],
'default' => [
'size' => 17,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon i' => 'font-size: {{SIZE}}{{UNIT}} !important',
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon svg' => 'width: {{SIZE}}{{UNIT}} !important; height: {{SIZE}}{{UNIT}} !important;'
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'icon_bg_size',
[
'label' => esc_html__('Background Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'default' => [
'unit' => 'px',
'size' => 45,
],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon i' => 'display: block;',
'{{WRAPPER}} .king-addons-wrapper .king-addons-icon' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}}; display: flex !important; justify-content: center !important; align-items: center !important;',
],
'render_type' => 'template',
]
);
$this->add_control(
'icon_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'solid',
'selectors' => [
'{{WRAPPER}} .king-addons-icon' => 'border-style: {{VALUE}}',
],
'separator' => 'before',
]
);
$this->add_control(
'icon_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 2,
'right' => 2,
'bottom' => 2,
'left' => 2,
],
'selectors' => [
'{{WRAPPER}} .king-addons-icon' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'condition' => [
'icon_border_type!' => 'none'
]
]
);
$this->add_control(
'icon_border_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 50,
'right' => 50,
'bottom' => 50,
'left' => 50,
'unit' => '%'
],
'selectors' => [
'{{WRAPPER}} .king-addons-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'label_styles_section',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Extra Label', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'show_extra_label' => 'yes',
]
]
);
$this->add_control(
'extra_label_bg_color_dynamic',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .king-addons-extra-label' => 'background-color: {{VALUE}}',
],
]
);
$this->add_responsive_control(
'label_bg_size',
[
'label' => esc_html__('Background Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'default' => [
'unit' => 'px',
'size' => 180,
],
'range' => [
'px' => [
'min' => 0,
'max' => 300,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-extra-label' => 'width: {{SIZE}}{{UNIT}}; height: auto;',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'label_right',
[
'label' => esc_html__('Label Distance', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'default' => [
'unit' => 'px',
'size' => 25,
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-both-sided-timeline .king-addons-timeline-entry.king-addons-left-aligned .king-addons-extra-label' => 'left: calc(100% + {{SIZE}}{{UNIT}})',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-both-sided-timeline .king-addons-timeline-entry.king-addons-right-aligned .king-addons-extra-label' => 'right: calc(100% + {{SIZE}}{{UNIT}})',
],
'condition' => [
'timeline_layout' => ['centered'],
]
]
);
$this->add_responsive_control(
'label_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 5,
'right' => 10,
'bottom' => 5,
'left' => 10,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-extra-label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_control(
'label_border_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-extra-label' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
],
'separator' => 'before',
]
);
$this->add_control(
'label_section',
[
'label' => esc_html__('Primary Label', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_control(
'date_label_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper span.king-addons-label' => 'color: {{VALUE}}',
],
'default' => '#5B03FF',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'label_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-extra-label span.king-addons-label',
]
);
$this->add_control(
'secondary_label_section',
[
'label' => esc_html__('Secondary Label', 'king-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
'condition' => [
'timeline_content' => 'custom'
]
]
);
$this->add_control(
'secondary_label_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper span.king-addons-sub-label' => 'color: {{VALUE}}',
],
'condition' => [
'timeline_content' => 'custom'
],
'default' => '#7A7A7A',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'secondary_label_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-wrapper span.king-addons-sub-label',
'condition' => [
'timeline_content' => 'custom'
],
]
);
$this->end_controls_section();
$this->start_controls_section(
'triangle_styles',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Triangle', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'triangle_bgcolor',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline .king-addons-data-wrap:after' => 'border-right-color: {{icon_bgcolor}}',
'{{WRAPPER}} .king-addons-wrapper .king-addons-one-sided-timeline-left .king-addons-data-wrap:after' => 'border-left-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wrapper .king-addons-right-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-horizontal .king-addons-story-info:before' => 'border-top-color: {{VALUE}} !important',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-story-info:before' => 'border-bottom-color: {{VALUE}} !important',
'{{WRAPPER}} .king-addons-wrapper .king-addons-left-aligned .king-addons-data-wrap:after' => 'border-left-color: {{VALUE}}',
'body[data-elementor-device-mode=mobile] {{WRAPPER}} .king-addons-wrapper .king-addons-both-sided-timeline .king-addons-left-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}} !important; border-left-color: transparent !important;',
'{{WRAPPER}} .king-addons-centered .king-addons-one-sided-timeline .king-addons-right-aligned .king-addons-data-wrap:after' => 'border-right-color: {{VALUE}} !important; border-left-color: transparent !important;',
],
'default' => '#FFFFFF',
'render_type' => 'template'
]
);
$this->add_responsive_control(
'story_triangle_size',
[
'label' => esc_html__('Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'default' => [
'unit' => 'px',
'size' => 11,
],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal .king-addons-story-info:before' => 'border-width: {{size}}{{UNIT}}; top: 100%; left: 50%; transform: translate(-50%);',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-story-info:before' => 'border-width: {{size}}{{UNIT}}; bottom: 100%; left: 50%; transform: translate(-50%);',
'{{WRAPPER}} .king-addons-one-sided-timeline .king-addons-data-wrap:after' => 'border-width: {{size}}{{UNIT}}; top: {{triangle_onesided_position_top.SIZE}}%; transform: translateY(-50%);',
'{{WRAPPER}} .king-addons-one-sided-timeline-left .king-addons-data-wrap:after' => 'border-width: {{size}}{{UNIT}}; top: {{triangle_onesided_position_top.SIZE}}%; transform: translateY(-50%);',
'{{WRAPPER}} .king-addons-both-sided-timeline .king-addons-right-aligned .king-addons-data-wrap:after' => 'border-width: {{size}}{{UNIT}}; top: {{arrow_bothsided_position_top.SIZE}}{{arrow_bothsided_position_top.UNIT}}; transform: translateY(-50%);',
'{{WRAPPER}} .king-addons-both-sided-timeline .king-addons-left-aligned .king-addons-data-wrap:after' => 'border-width: {{size}}{{UNIT}}; top: {{arrow_bothsided_position_top.SIZE}}{{arrow_bothsided_position_top.UNIT}}; transform: translateY(-50%);',
],
'separator' => 'before'
]
);
$this->add_control(
'triangle_onesided_position_top',
[
'label' => esc_html__('Position Top', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['%', 'px'],
'range' => [
'%' => [
'min' => 0,
'max' => 100,
],
'px' => [
'min' => 0,
'max' => 150,
],
],
'default' => [
'unit' => '%',
'size' => 30,
],
'selectors' => [
'{{WRAPPER}} .king-addons-one-sided-timeline .king-addons-data-wrap:after' => 'top: {{size}}{{UNIT}}; transform: translateY(-50%) !important;',
'{{WRAPPER}} .king-addons-one-sided-timeline-left .king-addons-data-wrap:after' => 'top: {{size}}{{UNIT}}; transform: translateY(-50%) !important;',
'{{WRAPPER}} .king-addons-one-sided-timeline .king-addons-icon' => 'position: absolute; top: {{size}}{{UNIT}}; transform: translate(-50%, -50%) !important;',
'{{WRAPPER}} .king-addons-one-sided-timeline-left .king-addons-icon' => 'position: absolute; top: {{size}}{{UNIT}}; transform: translate(50%,-50%) !important;',
],
'condition' => [
'timeline_layout' => ['one-sided', 'one-sided-left']
],
'render_type' => 'template',
]
);
$this->add_control(
'arrow_bothsided_position_top',
[
'label' => esc_html__('Position Top', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['%', 'px'],
'range' => [
'%' => [
'min' => 0,
'max' => 100,
],
'px' => [
'min' => 0,
'max' => 150,
],
],
'default' => [
'size' => 30,
'unit' => '%',
],
'selectors' => [
'{{WRAPPER}} .king-addons-timeline-centered .king-addons-data-wrap:after' => 'top: {{size}}{{UNIT}}; transform: translateY(-50%) !important;',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-both-sided-timeline .king-addons-right-aligned .king-addons-icon' => 'position: absolute; top: {{size}}{{UNIT}}; transform: translate(50%, -50%) !important;',
'{{WRAPPER}} .king-addons-timeline-centered.king-addons-one-sided-timeline .king-addons-right-aligned .king-addons-icon' => 'position: absolute; top: {{size}}{{UNIT}}; transform: translate(-50%, -50%) !important;',
'{{WRAPPER}} .king-addons-timeline-centered .king-addons-left-aligned .king-addons-icon' => 'position: absolute; top: {{size}}{{UNIT}}; transform: translate(-50%, -50%) !important;',
'{{WRAPPER}} .king-addons-timeline-centered .king-addons-extra-label' => 'top: {{size}}{{UNIT}};',
'{{WRAPPER}} .king-addons-centered .king-addons-one-sided-timeline .king-addons-data-wrap:after' => 'top: {{size}}{{UNIT}}; transform: translateY(-50%) !important;',
],
'condition' => [
'timeline_layout' => ['centered']
],
'render_type' => 'template'
]
);
$this->end_controls_section();
$this->start_controls_section(
'navigation_button_styles',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Navigation', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->start_controls_tabs(
'navigation_style_tabs'
);
$this->start_controls_tab(
'navigation_style_normal_tab',
[
'label' => esc_html__('Normal', 'king-addons'),
]
);
$this->add_control(
'navigation_button_bg_color',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .king-addons-button-prev' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-button-next' => 'background-color: {{VALUE}}',
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control(
'navigation_button_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#5B03FF',
'selectors' => [
'{{WRAPPER}} .king-addons-button-prev i' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-button-next i' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-button-prev svg' => 'fill: {{VALUE}}; cursor: pointer; z-index: 11;',
'{{WRAPPER}} .king-addons-button-next svg' => 'fill: {{VALUE}}; cursor: pointer; z-index: 11;',
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control(
'navigation_transition_duration',
[
'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-button-prev' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-button-next' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-button-prev i' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-button-next i' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-button-prev svg' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-button-next svg' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'navigation_icon_size',
[
'label' => esc_html__('Icon Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 10,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 40,
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-next' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-prev' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-next' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-prev' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-next svg' => 'width: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-prev svg' => 'width: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-next svg' => 'width: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-prev svg' => 'width: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'navigation_icon_bg_size',
[
'label' => esc_html__('Box Size', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 20,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 40,
],
'selectors' => [
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-next' => 'width: {{SIZE}}{{UNIT}}; text-align: center; height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-prev' => 'width: {{SIZE}}{{UNIT}}; text-align: center; height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-next' => 'width: {{SIZE}}{{UNIT}}; text-align: center; height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-prev' => 'width: {{SIZE}}{{UNIT}}; text-align: center; height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-next i' => 'width: {{SIZE}}{{UNIT}}; text-align: center; line-height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-prev i' => 'width: {{SIZE}}{{UNIT}}; text-align: center; line-height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-next svg' => ' text-align: center; line-height: 1.5;',
'{{WRAPPER}} .king-addons-horizontal .king-addons-button-prev svg' => ' text-align: center; line-height: 1.5;',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-next i' => 'width: {{SIZE}}{{UNIT}}; text-align: center; line-height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-prev i' => 'width: {{SIZE}}{{UNIT}}; text-align: center; line-height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-next svg' => 'text-align: center; line-height: 1.5;',
'{{WRAPPER}} .king-addons-horizontal-bottom .king-addons-button-prev svg' => 'text-align: center; line-height: 1.5;',
'{{WRAPPER}} .king-addons-swiper-pagination.swiper-pagination-progressbar' => 'width: calc(100% - ({{SIZE}}px + 15px)*2);',
'{{WRAPPER}} .king-addons-horizontal-bottom.swiper' => 'margin-left: {{SIZE}}px; margin-right: {{SIZE}}px;',
'{{WRAPPER}} .king-addons-horizontal.swiper' => 'margin-left: {{SIZE}}px; margin-right: {{SIZE}}px;',
],
'render_type' => 'template'
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'navigation_style_hover_tab',
[
'label' => esc_html__('Hover', 'king-addons'),
]
);
$this->add_control(
'navigation_button_bg_color_hover',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .king-addons-button-prev:hover' => 'background-color: {{VALUE}}; cursor: pointer;',
'{{WRAPPER}} .king-addons-button-next:hover' => 'background-color: {{VALUE}}; cursor: pointer;',
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->add_control(
'navigation_button_color_hover',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#605BE1',
'selectors' => [
'{{WRAPPER}} .king-addons-button-prev:hover i' => 'color: {{VALUE}}; cursor: pointer; z-index: 11;',
'{{WRAPPER}} .king-addons-button-next:hover i' => 'color: {{VALUE}}; cursor: pointer; z-index: 11;',
'{{WRAPPER}} .king-addons-button-prev:hover svg' => 'fill: {{VALUE}}; cursor: pointer; z-index: 11;',
'{{WRAPPER}} .king-addons-button-next:hover svg' => 'fill: {{VALUE}}; cursor: pointer; z-index: 11;',
],
'condition' => [
'timeline_layout' => ['horizontal', 'horizontal-bottom']
]
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
$this->start_controls_section(
'section_style_pagination',
[
'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Pagination', 'king-addons'),
'tab' => Controls_Manager::TAB_STYLE,
'show_label' => false,
'condition' => [
'timeline_content' => 'dynamic',
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
],
]
);
$this->start_controls_tabs('tabs_grid_pagination_style');
$this->start_controls_tab(
'tab_grid_pagination_normal',
[
'label' => esc_html__('Normal', 'king-addons'),
]
);
$this->add_control(
'pagination_color',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination svg' => 'fill: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'color: {{VALUE}}',
],
'condition' => [
'timeline_layout' => ['centered', 'one-sided', 'one-sided-left']
]
]
);
$this->add_control(
'pagination_bg_color',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#5B03FF',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-pagination-finish' => 'color: {{VALUE}}',
]
]
);
$this->add_control(
'pagination_border_color',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'border-color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'pagination_box_shadow',
'selector' => '{{WRAPPER}} .king-addons-grid-pagination a, {{WRAPPER}} .king-addons-grid-pagination > div > span',
]
);
$this->add_control(
'pagination_loader_color',
[
'label' => esc_html__('Loader Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#5B03FF',
'selectors' => [
'{{WRAPPER}} .king-addons-double-bounce .king-addons-child' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-wave .king-addons-rect' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-spinner-pulse' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-chasing-dots .king-addons-child' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-three-bounce .king-addons-child' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-fading-circle .king-addons-circle:before' => 'background-color: {{VALUE}}',
],
'condition' => [
'pagination_type' => ['load-more', 'infinite-scroll']
]
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_grid_pagination_hover',
[
'label' => esc_html__('Hover', 'king-addons'),
]
);
$this->add_control(
'pagination_color_hr',
[
'label' => esc_html__('Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a:hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination a:hover svg' => 'fill: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'pagination_bg_color_hr',
[
'label' => esc_html__('Background Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#4D02D8',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a:hover' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'background-color: {{VALUE}}',
]
]
);
$this->add_control(
'pagination_border_color_hr',
[
'label' => esc_html__('Border Color', 'king-addons'),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a:hover' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-color: {{VALUE}}',
]
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'pagination_box_shadow_hr',
'selector' => '{{WRAPPER}} .king-addons-grid-pagination a:hover, {{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover',
'separator' => 'after',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'pagination_transition_duration',
[
'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-grid-pagination svg' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'after',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'loadmore_typography',
'label' => esc_html__('Typography', 'king-addons'),
'selector' => '{{WRAPPER}} .king-addons-load-more-btn',
]
);
$this->add_control(
'pagination_border_type',
[
'label' => esc_html__('Border Type', 'king-addons'),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__('None', 'king-addons'),
'solid' => esc_html__('Solid', 'king-addons'),
'double' => esc_html__('Double', 'king-addons'),
'dotted' => esc_html__('Dotted', 'king-addons'),
'dashed' => esc_html__('Dashed', 'king-addons'),
'groove' => esc_html__('Groove', 'king-addons'),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'border-style: {{VALUE}}',
],
'separator' => 'before',
]
);
$this->add_control(
'pagination_border_width',
[
'label' => esc_html__('Border Width', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'pagination_border_type!' => 'none',
],
]
);
$this->add_responsive_control(
'pagination_distance_from_grid',
[
'label' => esc_html__('Distance From Timeline', 'king-addons'),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 25,
],
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination' => 'margin-top: {{SIZE}}{{UNIT}};',
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'pagination_padding',
[
'label' => esc_html__('Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 8,
'right' => 20,
'bottom' => 8,
'left' => 20,
],
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'pagination_wrapper_padding',
[
'label' => esc_html__('Wrapper Padding', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'pagination_radius',
[
'label' => esc_html__('Border Radius', 'king-addons'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px', '%'],
'default' => [
'top' => 3,
'right' => 3,
'bottom' => 3,
'left' => 3,
],
'selectors' => [
'{{WRAPPER}} .king-addons-grid-pagination a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
}
public function get_tax_query_args()
{
$settings = $this->get_settings();
$tax_query = [];
if ('related' === $settings['timeline_post_types']) {
$tax_query[] = [
'taxonomy' => $settings['query_tax_selection'],
'field' => 'term_id',
'terms' => wp_get_object_terms(
get_the_ID(),
$settings['query_tax_selection'],
['fields' => 'ids']
),
];
} else {
foreach (get_object_taxonomies($settings['timeline_post_types']) as $tax) {
$term_setting = $settings['query_taxonomy_' . $tax] ?? [];
if (!empty($term_setting)) {
$tax_query[] = [
'taxonomy' => $tax,
'field' => 'id',
'terms' => $term_setting,
];
}
}
}
return $tax_query;
}
public function get_main_query_args()
{
$settings = $this->get_settings();
$author = !empty($settings['query_author']) ? implode(',', $settings['query_author']) : '';
$paged = get_query_var('paged') ?: (get_query_var('page') ?: 1);
$posts_per_page = !king_addons_freemius()->can_use_premium_code__premium_only() && $settings['posts_per_page'] > 4
? 4
: ($settings['posts_per_page'] ?: 4);
$args = [
'post_type' => $settings['timeline_post_types'],
'tax_query' => $this->get_tax_query_args(),
'post__not_in' => $settings['query_exclude_' . $settings['timeline_post_types']] ?? '',
'posts_per_page' => $posts_per_page,
'orderby' => $settings['order_posts'],
'order' => $settings['order_direction'],
'author' => $author,
'paged' => $paged,
];
if ('yes' === $settings['query_exclude_no_images']) {
$args['meta_key'] = '_thumbnail_id';
}
// Overwrite main query args if manual selection
if ('manual' === $settings['query_selection']) {
$post_ids = $settings['query_manual_' . $settings['timeline_post_types']] ?? [''];
$args = [
'post_type' => $settings['timeline_post_types'],
'post__in' => $post_ids,
'posts_per_page' => $posts_per_page,
'orderby' => '',
'paged' => $paged,
];
}
return $args;
}
public function get_max_num_pages()
{
$query = new WP_Query($this->get_main_query_args());
$max_num_pages = (int)ceil($query->max_num_pages);
wp_reset_postdata();
return $max_num_pages;
}
/** @noinspection PhpMissingFieldTypeInspection */
public $content_alignment = '';
public function content_and_animation_alignment($layout, $countItem, $settings)
{
// Default alignment
$this->content_alignment = ($layout === 'one-sided-left')
? 'king-addons-left-aligned'
: 'king-addons-right-aligned';
// Special case for centered
if ($layout === 'centered') {
if ($countItem % 2 === 0) {
$this->content_alignment = 'king-addons-left-aligned';
}
// Handle swapping animations
if (preg_match('/right/i', $settings['timeline_animation'])) {
if ('king-addons-left-aligned' === $this->content_alignment) {
$this->animation = preg_match('/right/i', $settings['timeline_animation'])
? str_replace('right', 'left', $settings['timeline_animation'])
: $settings['timeline_animation'];
} else {
$this->animation = preg_match('/left/i', $settings['timeline_animation'])
? str_replace('left', 'right', $settings['timeline_animation'])
: $settings['timeline_animation'];
}
}
if (preg_match('/left/i', $settings['timeline_animation'])) {
if ('king-addons-left-aligned' === $this->content_alignment) {
$this->animation = preg_match('/left/i', $settings['timeline_animation'])
? str_replace('left', 'right', $settings['timeline_animation'])
: $settings['timeline_animation'];
} elseif ('king-addons-right-aligned' === $this->content_alignment) {
$this->animation = preg_match('/right/i', $settings['timeline_animation'])
? str_replace('right', 'left', $settings['timeline_animation'])
: $settings['timeline_animation'];
}
}
}
// Handle animation for load more
if (preg_match('/right/i', $settings['timeline_animation'])) {
$this->animation_loadmore_left = preg_match('/right/i', $settings['timeline_animation'])
? str_replace('right', 'left', $settings['timeline_animation'])
: $settings['timeline_animation'];
$this->animation_loadmore_right = preg_match('/left/i', $settings['timeline_animation'])
? str_replace('left', 'right', $settings['timeline_animation'])
: $settings['timeline_animation'];
} elseif (preg_match('/left/i', $settings['timeline_animation'])) {
$this->animation_loadmore_left = preg_match('/left/i', $settings['timeline_animation'])
? str_replace('left', 'right', $settings['timeline_animation'])
: $settings['timeline_animation'];
$this->animation_loadmore_right = preg_match('/right/i', $settings['timeline_animation'])
? str_replace('right', 'left', $settings['timeline_animation'])
: $settings['timeline_animation'];
}
}
public function add_custom_horizontal_timeline_attributes($content, $settings, $index)
{
$this->timeline_description = $content['repeater_description'];
$this->story_date_label = esc_html($content['repeater_date_label']);
$this->story_extra_label = esc_html($content['repeater_extra_label']);
$this->timeline_story_title = wp_kses_post($content['repeater_story_title']);
$this->thumbnail_size = $content['king_addons_thumbnail_size'];
$this->thumbnail_custom_dimension = $content['king_addons_thumbnail_custom_dimension'];
$this->show_year_label = esc_html($content['repeater_show_year_label']);
$this->timeline_year = esc_html($content['repeater_year']);
$this->title_key = $this->get_repeater_setting_key('repeater_story_title', 'timeline_repeater_list', $index);
$this->year_key = $this->get_repeater_setting_key('repeater_year', 'timeline_repeater_list', $index);
$this->date_label_key = $this->get_repeater_setting_key('repeater_date_label', 'timeline_repeater_list', $index);
$this->extra_label_key = $this->get_repeater_setting_key('repeater_extra_label', 'timeline_repeater_list', $index);
$this->description_key = $this->get_repeater_setting_key('repeater_description', 'timeline_repeater_list', $index);
$this->background_image = ($settings['content_layout'] === 'background')
? $content['repeater_image']['url']
: '';
$this->background_class = ($settings['content_layout'] === 'background')
? 'story-with-background'
: '';
$this->add_inline_editing_attributes($this->title_key, 'none');
$this->add_inline_editing_attributes($this->year_key, 'none');
$this->add_inline_editing_attributes($this->date_label_key, 'none');
$this->add_inline_editing_attributes($this->extra_label_key, 'none');
$this->add_inline_editing_attributes($this->description_key, 'advanced');
$this->add_render_attribute($this->title_key, ['class' => 'king-addons-title']);
$this->add_render_attribute($this->year_key, ['class' => 'king-addons-year-label king-addons-year']);
$this->add_render_attribute($this->date_label_key, ['class' => 'king-addons-label']);
$this->add_render_attribute($this->extra_label_key, ['class' => 'king-addons-sub-label']);
$this->add_render_attribute($this->description_key, ['class' => 'king-addons-description']);
}
public function render_image_or_icon($content)
{
$img_id = $content['repeater_image']['id'] ?? '';
$img_url = $content['repeater_image']['url'] ?? '';
$icon = $content['repeater_timeline_item_icon'] ?? '';
if (!empty($img_id)) {
if ($this->thumbnail_size === 'custom') {
$size = [$this->thumbnail_custom_dimension['width'], $this->thumbnail_custom_dimension['height']];
$this->image = wp_get_attachment_image($img_id, $size, true);
} else {
$this->image = wp_get_attachment_image($img_id, $this->thumbnail_size, true);
}
} elseif (!empty($img_url)) {
$this->image = '';
} elseif (!empty($icon)) {
ob_start();
Icons_Manager::render_icon($icon, ['aria-hidden' => 'true']);
$this->image = ob_get_clean();
} else {
$this->image = '';
}
}
public function king_addons_render_swiper_navigation($settings)
{
echo '
' . esc_html($content['repeater_story_title']) . '
'; } } if (!empty($content['repeater_description']) && 'yes' === $settings['show_description'] && 'yes' !== $settings['description_overlay']) { echo '' . esc_html(get_the_title()) . '
'; } if ('yes' === $settings['show_date'] && 'yes' !== $settings['date_overlay']) { echo '