Viewing File: /home/rtsgrob/ww3/wp-content/plugins/tutor-lms-elementor-addons/includes/addons/CourseCarousel.php

<?php

namespace TutorLMS\Elementor\Addons;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Css_Filter;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Background;

if (!defined('ABSPATH')) exit; // Exit if accessed directly

class CourseCarousel extends BaseAddon {

	use \TutorLMS\Elementor\AddonsTrait;

	private static $prefix_class_layout = "elementor-layout-";
	private static $prefix_class_alignment = "enroll-button-align-";

	public function get_title() {
		return __('Course Carousel', 'tutor-lms-elementor-addons');
	}

	public function get_style_depends() {
		return [
			'slick-css',
			'slick-theme-css'
		];
	}

	public function get_script_depends() {
		return [
			'etlms-slick-library',
			'etlms-slick-slider',
			'etlms-enroll-button'
		];
	}

	protected function register_content_controls() {
		$content_selector = "{{WRAPPER}} .etlms-carousel-main-wrap ";

		$meta_content_selector = $content_selector . ".tutor-single-loop-meta";
		$this->start_controls_section(
			'course_carousel_content_section',
			[
				'label' => __('Layout', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_CONTENT
			]
		);

		$this->add_control(
			'course_carousel_skin',
			[
				'label' => esc_attr__('Skin', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SELECT,
				'default' => 'classic',
				'options' => [
					'classic' => esc_attr__('Classic', 'tutor-lms-elementor-addons'),
					'card' => esc_attr__('Card', 'tutor-lms-elementor-addons'),
					'stacked' => esc_attr__('Stacked', 'tutor-lms-elementor-addons'),
					'overlayed' => esc_attr__('Overlayed', 'tutor-lms-elementor-addons')
				],

			]
		);

		$slides_to_show = range(1, 3);
		$slides_to_show = array_combine($slides_to_show, $slides_to_show);

		$this->add_responsive_control(
			'etlms_course_carousel_column',
			[
				'label' => __('Slides to Show', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'1' => '1',
					'2' => '2',
					'3' => '3',
				],
				'devices' => ['desktop', 'tablet', 'mobile'],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'card_hover_animation',
			[
				'label' => __('Hover Animation', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Yes', 'tutor-lms-elementor-addons'),
				'label_off' => __('No', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',

				'default' => 'yes',
			]
		);
		$this->add_control(
			'course_carousel_image',
			[
				'label' => __('Show Image', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'course_carousel_image_size', // Actually its `image_size`.
				'label' => __('Image Size', 'tutor-lms-elementor-addons'),
				'default' => 'medium_large',
				'condition' => [
					'course_carousel_image' => 'yes'
				]
			]
		);

		$this->add_control(
			'course_carousel_meta_data',
			[
				'label' => __('Meta Data', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'your-plugin'),
				'return_value' => 'yes',
				'default' => '',
			]
		);

		$this->add_control(
			'course_carousel_meta_space',
			[
				'label' => __('Space Between'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100
					]
				],
				'default' => [
					'size' => 0,
					'unit' => 'px'
				],
				"selectors" => [
					$meta_content_selector => "padding-right: {{SIZE}}{{UNIT}};"
				],
				'condition' => [
					'course_carousel_meta_data' => "yes"
				],
			]
		);

		$this->add_control(
			'course_carousel_meta_divider',
			[
				'type' => Controls_Manager::DIVIDER
			]
		);

		$this->add_control(
			'course_carousel_rating_settings',
			[
				'label' => __('Rating', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',

			]
		);

		$this->add_control(
			'course_carousel_avatar_settings',
			[
				'label' => __('Avatar', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);
		$this->add_control(
			'course_carousel_author_settings',
			[
				'label' => __('Author', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_difficulty_settings',
			[
				'label' => __('Difficulty Level', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => '',
			]
		);

		$this->add_control(
			'course_carousel_category_settings',
			[
				'label' => __('Category', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => '',
			]
		);

		$this->add_control(
			'course_carousel_wishlist_settings',
			[
				'label' => __('Wishlist', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_footer_settings',
			[
				'label' => __('Footer', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);
		$this->end_controls_section();

		//Query section
        $this->start_controls_section(
            'course_carousel_query_section',
            [
                'label' => __('Query', 'tutor-lms-elementor-addons'),
                'tab' => Controls_Manager::TAB_CONTENT
            ]
        );

        $course_categories = etlms_course_categories();
        $course_authors = etlms_course_authors();

        /* Start Tabs */
        $this->start_controls_tabs('course_carousel_query_tabs');

            /* Include Tab */
            $this->start_controls_tab(
                'course_carousel_query_tab_include',
                [
                    'label' => __( 'Include', 'tutor-lms-elementor-addons' ),
                ]
            );

            $this->add_control(
                'course_carousel_include_by_categories',
                [
                    'label' => __( 'Categories', 'tutor-lms-elementor-addons' ),
                    'type' => Controls_Manager::SELECT2,
                    'multiple' => true,
                    'options' => $course_categories,
                    'default' => []
                ]
            );

            $this->add_control(
                'course_carousel_include_by_authors',
                [
                    'label' => __( 'Authors', 'tutor-lms-elementor-addons' ),
                    'type' => Controls_Manager::SELECT2,
                    'multiple' => true,
                    'options' => $course_authors,
                    'default' => []
                ]
            );

            $this->end_controls_tab();

            /* Exclude Tab */
            $this->start_controls_tab(
                'course_carousel_query_tab_exclude',
                [
                    'label' => __( 'Exclude', 'tutor-lms-elementor-addons' ),
                ]
            );

            $this->add_control(
                'course_carousel_exclude_by_categories',
                [
                    'label' => __( 'Categories', 'tutor-lms-elementor-addons' ),
                    'type' => Controls_Manager::SELECT2,
                    'multiple' => true,
                    'options' => $course_categories,
                    'default' => []
                ]
            );

            $this->add_control(
                'course_carousel_exclude_by_authors',
                [
                    'label' => __( 'Authors', 'tutor-lms-elementor-addons' ),
                    'type' => Controls_Manager::SELECT2,
                    'multiple' => true,
                    'options' => $course_authors,
                    'default' => []
                ]
            );

            $this->end_controls_tab();

        $this->end_controls_tabs();
        /* End Tabs */

        $this->add_control(
            'course_carousel_order_by',
            [
                'label' => __( 'Order By', 'tutor-lms-elementor-addons' ),
                'type' => Controls_Manager::SELECT,
                'options' => [
                    'post_date' => __( 'Date', 'tutor-lms-elementor-addons' ),
                    'post_title' => __( 'Title', 'tutor-lms-elementor-addons' ),
                ],
                'default' => 'post_date'
            ]
        );

        $this->add_control(
            'course_carousel_order',
            [
                'label' => __( 'Order', 'tutor-lms-elementor-addons' ),
                'type' => Controls_Manager::SELECT,
                'options' => [
                    'asc' => __( 'ASC', 'tutor-lms-elementor-addons' ),
                    'desc' => __( 'DESC', 'tutor-lms-elementor-addons' ),
                ],
                'default' => 'desc'
            ]
		);
		
		$this->add_control(
            'course_carousel_post_limit',
            [
                'label' => __( 'Limit', 'tutor-lms-elementor-addons' ),
                'type' => Controls_Manager::NUMBER,
                'min' => -1,
                'max' => 20,
                'step' => 1,
                'default' => 5
            ]
        );

        $this->end_controls_section();

		//carousel settings

		$this->start_controls_section(
			'course_carousel_settings_section',
			[
				'label' => __('Carousel Settings'),
				'type' => Controls_Manager::TAB_CONTENT
			]
		);

		$this->add_control(
			'course_carousel_settings_arrows',
			[
				'label' => __('Arrows', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_settings_dots',
			[
				'label' => __('Dots', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Show', 'tutor-lms-elementor-addons'),
				'label_off' => __('Hide', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_settings_transition',
			[
				'label' => __('Transition Duration'),
				'type' => Controls_Manager::TEXT,
				'default' => '600'
			]
		);

		$this->add_control(
			'course_carousel_settings_center_slides',
			[
				'label' => __('Centered Slides', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Yes', 'tutor-lms-elementor-addons'),
				'label_off' => __('No', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => '',
			]
		);

		$this->add_control(
			'course_carousel_settings_scroll',
			[
				'label' => __('Smooth Scrolling', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Yes', 'tutor-lms-elementor-addons'),
				'label_off' => __('No', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_settings_autoplay',
			[
				'label' => __('Auto Play', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Yes', 'tutor-lms-elementor-addons'),
				'label_off' => __('No', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_settings_autoplay_speed',
			[
				'label' => __('Auto Play Speed'),
				'type' => Controls_Manager::TEXT,
				'default' => '5000'
			]
		);

		$this->add_control(
			'course_carousel_settings_infinite_loop',
			[
				'label' => __('Infinite Loop', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Yes', 'tutor-lms-elementor-addons'),
				'label_off' => __('No', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'course_carousel_settings_pause_onhover',
			[
				'label' => __('Paush on Hover', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => __('Yes', 'tutor-lms-elementor-addons'),
				'label_off' => __('No', 'tutor-lms-elementor-addons'),
				'return_value' => 'yes',
				'default' => 'yes',
			]
		);


		$this->end_controls_section();
	}

	protected function register_style_controls() {
		$wrapper 					= "{{WRAPPER}} .etlms-carousel-main-wrap ";
		$card_selector 				= $wrapper . ".tutor-card";
		$image_selector 			= $wrapper . ".tutor-course-thumbnail";
		$badge_selector 			= $wrapper . ".tutor-course-difficulty-level";
		$avatar_selector 			= $wrapper . ".tutor-avatar";
		$course_title_selector 		= $wrapper . ".tutor-course-name";
		$meta_selector 				= $wrapper . ".etlms-course-duration-meta";
		$author_selector 			= $wrapper . ".etlms-course-author-meta";
		$category_selector 			= $wrapper . ".etlms-course-category-meta";
		$ratings_selector 			= $wrapper . ".tutor-ratings";
		$footer_selector 			= $wrapper . ".tutor-card-footer";
		$price_selector 			= $wrapper . ".tutor-course-price";
		$cart_button_selector 		= $wrapper . ".tutor-card-footer .tutor-btn-outline-primary";

		$arrow_icon_selector 		= $wrapper . ".etlms-carousel-arrow i";
		$arrow_shape_selector 		= $wrapper . ".etlms-carousel-arrow > i";
		$arrow_ghost_selector 		= $wrapper . ".etlms-carousel-arrow";
		$dots_selector 				= $wrapper . ".etlms-carousel-dots";
		$stacked_selector 			= $wrapper . ".etlms-carousel-course-container";

		$this->start_controls_section(
			'course_carousel_style_section',
			[
				'label' => __('Card', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);

		$this->add_control(
			'course_carousel_card_background_color',
			[
				'label'     => __('Background Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'course_carousel_skin',
							'operator' => 'in',
							'value' => ['classic', 'card']
						]
					],
				],
				'default' => '#fff',
				'selectors' => [
					$card_selector => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_stacked_background_color',
			[
				'label'     => __('Background Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'condition' => [
					'course_carousel_skin' => 'stacked',

				],
				'default' => '#fff',
				'selectors' => [
					$card_selector . ' .etlms-course-card-inner' => 'background-color: {{VALUE}};',
				],
			]
		);

		//border tabs
		$this->start_controls_tabs('course_carousel_card_border_tabs');

		//normal tab start
		$this->start_controls_tab('course_carousel_card_border_normal_tab', [
			'label' => __('Normal', 'tutor-lms-elementor-addons')
		]);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'course_carousel_card_border',
				'label' => __('Border', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin!' => 'stacked'
				],
				'selector' => $card_selector,
			]
		);
		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'course_carousel_stacked_border',
				'label' => __('Border', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin' => 'stacked'
				],
				'selector' => $card_selector . ' .etlms-course-card-inner',
			]
		);

		$this->add_control(
			'course_carousel_card_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'default' => [
					'size' => 8,
					'unit' => 'px'
				],
				'condition' => [
					'course_carousel_skin' => ['classic', 'card'],

				],
				'selectors' => [
					$card_selector => 'border-radius: {{SIZE}}{{UNIT}} ;',
				],
			]
		);

		$this->add_control(
			'course_carousel_stacked_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'default' => [
					'size' => 10,
					'unit' => 'px'
				],
				'condition' => [
					'course_carousel_skin' => 'stacked',

				],
				'selectors' => [
					$card_selector . ' .etlms-course-card-inner' => 'border-radius: {{SIZE}}{{UNIT}} ;',
				],
			]
		);
		$this->add_control(
			'course_carousel_card_overlayed_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'default' => [
					'size' => 20,
					'unit' => 'px'
				],
				'condition' => [
					'course_carousel_skin' => 'overlayed',

				],
				'selectors' => [
					$card_selector . ' .etlms-course-card-inner' => 'border-radius: {{SIZE}}{{UNIT}} ;',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'carousel_card_box_shadow_control',
				'label' => __('Box Shadow', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin!' => 'stacked'
				],
				'selector' => $card_selector,
			]
		);


		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'carousel_stacked_box_shadow_control',
				'label' => __('Box Shadow', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin' => 'stacked'
				],

				'selector' => $card_selector . ' .etlms-course-card-inner',
			]
		);

		$this->end_controls_tab();
		//normal tab end

		//hover tab start
		$this->start_controls_tab('course_carousel_card_border_hover_tab', [
			'label' => __('Hover', 'tutor-lms-elementor-addons')
		]);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'course_carousel_card_hover_border',
				'label' => __('Border', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin!' => 'stacked'
				],
				'selector' => $card_selector . ':hover',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'course_carousel_stacked_hover_border',
				'label' => __('Border', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin' => 'stacked'
				],
				'selector' => $card_selector . ':hover .etlms-course-card-inner',
			]
		);

		$this->add_control(
			'course_carousel_card_hover_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'default' => [
					'size' => 8,
					'unit' => 'px'
				],
				'condition' => [

					'course_carousel_skin' => ['classic', 'card'],

				],
				'selectors' => [
					$card_selector . ':hover' => 'border-radius: {{SIZE}}{{UNIT}} ;',
				],
			]
		);
		$this->add_control(
			'course_carousel_stacked_hover_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'default' => [
					'size' => 10,
					'unit' => 'px'
				],
				'condition' => [
					'course_carousel_skin' => 'stacked',

				],
				'selectors' => [
					$card_selector . ':hover .etlms-course-card-inner' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
			]
		);
		$this->add_control(
			'course_carousel_overlayed_hover_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'default' => [
					'size' => 20,
					'unit' => 'px'
				],
				'condition' => [
					'course_carousel_skin' => 'overlayed',

				],
				'selectors' => [
					$card_selector . ':hover .etlms-course-card-inner' => 'border-radius: {{SIZE}}{{UNIT}} ;',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'carousel_card_hover_box_shadow_control',
				'label' => __('Box Shadow', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin!' => 'stacked'
				],
				'selector' => $card_selector . ':hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'carousel_stacked_hover_box_shadow_control',
				'label' => __('Box Shadow', 'tutor-lms-elementor-addons'),
				'condition' => [
					'course_carousel_skin' => 'stacked'
				],
				'selector' => $card_selector . ':hover .etlms-course-card-inner',
			]
		);

		$this->end_controls_tab();
		//hover tab end

		$this->end_controls_tabs();
		//border tabs end

		$this->add_control(
			'course_carousel_card_padding',
			[
				'label' => __('Padding', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => ['px', '%'],
				'selectors' => [
					$card_selector . ' .tutor-card-body' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			\Elementor\Group_Control_Background::get_type(),
			[
				'name' => 'course_carousel_overlay_color',
				'label' => __('Overlay', 'tutor-lms-elementor-addons'),
				'types' => ['classic', 'gradient'],
				'condition' => [
					'course_carousel_skin' => 'overlayed'
				],
				'selector' => $card_selector . ' .tutor-course-thumbnail:after'
			]
		);

		/* Start Tabs */
		$this->start_controls_tabs('course_carousel_card_tabs');
		/* Normal Tab */
		$this->start_controls_tab(
			'course_carousel_card_normal_tab',
			[
				'label' => __('Normal', 'tutor-lms-elementor-addons'),
			]
		);

		$this->add_control(
			'course_coursel_footer_separator_color',
			[
				'label'     => __('Footer Separator Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$card_selector . ' .tutor-card-footer' => 'border-top-color : {{VALUE}};'
				],
			]
		);

		$this->add_control(
			'course_carousel_footer_width',
			[
				'label' => __('Footer Separator Width', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,

					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],

				'selectors' => [
					$card_selector . ' .tutor-card-footer' => 'border-top-width: {{SIZE}}{{UNIT}};',
				],
			]
		);


		$this->end_controls_tab();

		/* Hovered Tab */
		$this->start_controls_tab(
			'course_carousel_card_hover_tab',
			[
				'label' => __('Hover', 'tutor-lms-elementor-addons'),
			]
		);

		$this->add_control(
			'course_coursel_footer_separator_hover_color',
			[
				'label'     => __('Footer Separator Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$card_selector . ':hover .tutor-card-footer' => 'border-top-color : {{VALUE}};'
				],
			]
		);

		$this->add_control(
			'course_carousel_footer_hover_width',
			[
				'label' => __('Footer Separator Width', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,

					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],

				'selectors' => [
					$card_selector . ':hover .tutor-card-footer' => 'border-top-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_tab();
		$this->end_controls_tabs();
		$this->end_controls_section();

		// card section end

		//image section start
		$this->start_controls_section(
			'course_carousel_image_settings',
			[
				'label' => __('Image', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);

		//start tabs
		$this->start_controls_tabs('course_carousel_image_tabs');
		//normal tab
		$this->start_controls_tab(
			'course_course_normal_tab',
			[
				'label' => __('Normal', 'tutor-lms-elementor-addons')
			]
		);

		//for classic,card,stacked 
		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'course_carousel_overlay_classic_card_stacked_normal',
				'label' => __('Overlay', 'tutor-lms-elementor-addons'),
				'types' => ['classic', 'gradient'],
				'condition' => [
					'course_carousel_skin!' => 'overlayed'
				],
				'selector' => $card_selector . ' .tutor-course-thumbnail:after',
			]
		);

		//for overlayed skin only
		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'course_carousel_overlay_normal',
				'label' => __('Overlay', 'tutor-lms-elementor-addons'),
				'types' => ['classic', 'gradient'],
				'condition' => [
					'course_carousel_skin' => 'overlayed'
				],
				'selector' => $card_selector . ' .tutor-course-thumbnail:after',
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'label' => __('CSS Filters', 'tutor-lms-elementor-addons'),
				'name' => 'course_carousel_image_normal_filters',
				'selector' => $card_selector . ' .tutor-course-thumbnail',
			]
		);

		$this->end_controls_tab();

		//hover tab
		$this->start_controls_tab(
			'course_course_image_hover_tab',
			[
				'label' => __('Hover', 'tutor-lms-elementor-addons')
			]
		);

		//for classic,card,stacked 
		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'course_carousel_overlay_classic_card_stacked_hover',
				'label' => __('Overlay', 'tutor-lms-elementor-addons'),
				'types' => ['classic', 'gradient'],
				'condition' => [

					'course_carousel_skin!' => 'overlayed'
				],
				'selector' =>  $card_selector . ':hover .tutor-course-thumbnail:after',
			]
		);

		//for overlayed skin only
		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'course_carousel_overlay_hover',
				'label' => __('Overlay', 'tutor-lms-elementor-addons'),
				'types' => ['classic', 'gradient'],
				'condition' => [
					'course_carousel_skin' => 'overlayed'
				],
				'selector' => $card_selector . ':hover .tutor-course-thumbnail:after',
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'label' => __('CSS Filters', 'tutor-lms-elementor-addons'),
				'name' => 'course_carousel_image_hover_filters',
				'condition' => [
					'course_carousel_skin!' => 'overlayed'
				],
				'selector' => $card_selector . ':hover .tutor-course-thumbnail',
			]
		);

		$this->add_control(
			'course_carousel_img_hover_animation',
			[

				'label' => __('Hover Animation', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'selector' => $card_selector . ':hover',
			]
		);
		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'course_carousel_image_separator',
			[
				'type' => Controls_Manager::DIVIDER
			]
		);

		//badge
		$this->add_control(
			'course_carousel_badge_heading',
			[
				'label' => __('Badge', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'course_carousel_badge_background_color',
			[
				'label'     => __('Background Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$badge_selector => 'background-color:{{VALUE}};'
				],
				'condition'	=> array(
					'course_carousel_difficulty_settings' => 'yes'
				)
			]
		);

		$this->add_control(
			'course_carousel_badge_text_color',
			[
				'label'     => __('Text Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$badge_selector => 'color:{{VALUE}};'
				],
				'condition'	=> array(
					'course_carousel_difficulty_settings' => 'yes'
				)
			]
		);

		$this->add_control(
			'course_carousel_border_radius',
			[
				'label' => __('Border Radius', 'elementor'),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => ['px', '%'],
				'selectors' => [
					$badge_selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition'	=> array(
					'course_carousel_difficulty_settings' => 'yes'
				)
			]
		);

		$this->add_control(
			'course_carousel_badge_size',
			[
				'label' => __('Size', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 5,
						'max' => 200,
					],
				],
				'selectors' => [
					$badge_selector => 'width: {{SIZE}}{{UNIT}};',
				],
				'condition'	=> array(
					'course_carousel_difficulty_settings' => 'yes'
				)
			]
		);

		$this->add_control(
			'course_carousel_badge_margin',
			[
				'label' => __('Margin', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 5,
						'max' => 200,
					],
				],
				'selectors' => [
					$badge_selector => 'margin: {{SIZE}}{{UNIT}};',
				],
				'condition'	=> array(
					'course_carousel_difficulty_settings' => 'yes'
				)
			]
		);

		$this->add_control(
			'course_carousel_badge_separator',
			[
				'type' => Controls_Manager::DIVIDER
			]
		);

		//avatar
		$this->add_control(
			'course_carousel_avatar_heading',
			[
				'label' => __('Avatar', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING,
				'condition'	=> array(
					'course_carousel_avatar_settings'	=> 'yes'
				)
			]
		);

		$this->add_control(
			'course_carousel_avatar_size',
			[
				'label' => __('Size', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 5,
						'max' => 200,
					],
				],
				'default'    => array(
					'unit' => 'px',
					'size' => 34,
				),
				'selectors' => [
					$avatar_selector => 'width: {{SIZE}}{{UNIT}};height: {{SIZE}}{{UNIT}};'
				],
			]
		);

		$this->add_control(
			'course_carousel_avatar_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 5,
						'max' => 200,
					],
				],
				'default' => [
					'unit' => 'px',
					'size' => 25
				],
				'selectors' => [
					$avatar_selector => 'border-radius: {{SIZE}}{{UNIT}};'
				],
			]
		);

		$this->end_controls_section();
		//image section end

		//content section start
		$this->start_controls_section(
			'course_carousel_content_styles',
			[
				'label' => __('Content', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);

		$this->add_control(
			'course_carousel_content_title',
			[
				'label' => __('Title', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING
			]
		);

		$this->add_control(
			'course_carousel_content_color',
			[
				'label'     => __('Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$course_title_selector . ', ' . $course_title_selector . ' a' => "color:{{VALUE}};"
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'      => 'course_carousel_content_typo',
				'label'     => __('Typography', 'tutor-lms-elementor-addons'),
				'selector'  => $course_title_selector,
			]
		);

		$this->add_control(
			'course_carousel_content_spacing',
			[
				'label' => __('Space', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 300,
					],
				],
				'selectors' => [
					$course_title_selector => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'after'
			]
		);

		$this->add_control(
			'course_carousel_meta_title',
			[
				'label' => __('Meta', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING
			]
		);

		$this->add_control(
			'course_carousel_meta_key_color',
			array(
				'label'     => __( 'Key Color', 'tutor-lms-elementor-addons' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					$meta_selector . ' .tutor-meta-key, ' . $meta_selector . ' .tutor-meta-icon' => 'color:{{VALUE}} !important;',
				),
				'condition' => array(
					'course_carousel_meta_data'	=> 'yes'
				)
			)
		);

		$this->add_control(
			'course_carousel_meta_color',
			[
				'label'     => __('Value Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$meta_selector . '>*, ' . $meta_selector . ' .tutor-meta-value, ' . $meta_selector . ' a' => "color:{{VALUE}};"
				],
				'condition' => array(
					'course_carousel_meta_data'	=> 'yes'
				)
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'      => 'course_carousel_meta_typo',
				'label'     => __('Typography', 'tutor-lms-elementor-addons'),
				'selector'  => $meta_selector,
				'condition' => array(
					'course_carousel_meta_data'	=> 'yes'
				)
			]
		);

		// Author
		$this->add_control(
			'course_carousel_author_meta_divider',
			array(
				'type' => Controls_Manager::DIVIDER,
			)
		);

		$this->add_control(
			'course_carousel_author_title',
			array(
				'label' => __( 'Author', 'tutor-lms-elementor-addons' ),
				'type'  => Controls_Manager::HEADING,
				'condition'	=> array(
					'course_carousel_author_settings' => 'yes'
				)
			)
		);

		$this->add_control(
			'course_carousel_author_key_color',
			array(
				'label'     => __( 'Key Color', 'tutor-lms-elementor-addons' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					$author_selector . '.tutor-meta-key' => 'color:{{VALUE}};',
				),
			)
		);

		$this->add_control(
			'course_carousel_author_color',
			array(
				'label'     => __( 'Value Color', 'tutor-lms-elementor-addons' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					$author_selector . '.tutor-meta-value' => 'color:{{VALUE}};',
				),
			)
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			array(
				'name'     => 'course_carousel_author_typo',
				'label'    => __( 'Typography', 'tutor-lms-elementor-addons' ),
				'selector' => $author_selector,
			)
		);

		// Category
		$this->add_control(
			'course_carousel_meta_divider_alt',
			[
				'type' => Controls_Manager::DIVIDER
			]
		);

		$this->add_control(
			'course_carousel_category_title',
			[
				'label' => __('Category', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'course_carousel_category_key_color',
			array(
				'label'     => __( 'Key Color', 'tutor-lms-elementor-addons' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					$category_selector . '.tutor-meta-key' => 'color:{{VALUE}};',
				),
			)
		);

		$this->add_control(
			'course_carousel_category_color',
			[
				'label'     => __('Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$category_selector . '.tutor-meta-value' => 'color:{{VALUE}};'
				],
				'condition'	=> array(
					'course_carousel_category_settings'	=> 'yes'
				)
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'      => 'course_carousel_category_typo',
				'label'     => __('Typography', 'tutor-lms-elementor-addons'),
				'selector'  => $category_selector,
				'condition'	=> array(
					'course_carousel_category_settings'	=> 'yes'
				)
			]
		);

		$this->end_controls_section();

		//content section end		

		//rating section start
		$this->start_controls_section(
			'course_carousel_rating_styles',
			[
				'label' => __('Rating', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);

		$this->add_control(
			'course_carousel_star_color',
			[
				'label'     => __('Star Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$ratings_selector . ' .tutor-ratings-stars' => 'color: {{VALUE}};',
				],
			]
		);
		$this->add_control(
			'course_carousel_star_size',
			[
				'label' => __('Star Size', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 300,
					],
				],
				'selectors' => [
					$ratings_selector . ' .tutor-ratings-stars' => 'font-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'      => 'course_carouse_rating__typo',
				'label'     => __('Typography', 'tutor-lms-elementor-addons'),
				'selector'  => $ratings_selector . ' .tutor-ratings-average, '. $ratings_selector . ' .tutor-ratings-count',
			]
		);

		$this->add_control(
			'course_carousel_star_text_color',
			[
				'label'     => __('Text Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$ratings_selector . ' .tutor-ratings-average, '. $ratings_selector . ' .tutor-ratings-count' => 'color: {{VALUE}};',
				],
			]
		);
		$this->add_responsive_control(
			'course_carousel_star_gap',
			[
				'label' => __('Gap', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 300,
					],
				],
				'selectors' => [
					$ratings_selector . ' .tutor-ratings-average' => 'margin-left: {{SIZE}}{{UNIT}};',
				],
			]
		);
		$this->end_controls_section();
		//rating section end		

		//footer section start
		$this->start_controls_section(
			'course_carousel_footer_styles',
			[
				'label' => __('Footer', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);
		$this->add_control(
			'course_carouse_footer_background_color',
			[
				'label'     => __('Background Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$footer_selector => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'course_carousel_footer_padding',
			[
				'label' => __('Padding', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => ['px', 'em'],
				'selectors' => [
					$footer_selector => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_footer_padding_divider',
			[
				'type' => Controls_Manager::DIVIDER
			]
		);

		$this->add_control(
			'course_carousel_price_title',
			[
				'label' => __('Price', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'      => 'course_carouse_price_typo',
				'label'     => __('Typography', 'tutor-lms-elementor-addons'),
				'selector'  => $price_selector,
			]
		);

		$this->add_control(
			'course_carousel_price_text_color',
			[
				'label'     => __('Text Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$price_selector => 'color: {{VALUE}};',
				],
				'separator' => 'after'
			]
		);

		$this->add_control(
			'course_carousel_cart_title',
			[
				'label' => __('Cart Button', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::HEADING
			]
		);

		// Button
		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'      => 'course_carousel_cart_typo',
				'label'     => __('Typography', 'tutor-lms-elementor-addons'),
				'selector'  => $cart_button_selector,
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'course_carousel_cart_text_shadow',
				'label' => __('Text Shadow', 'tutor-lms-elementor-addons'),
				'selector' => $cart_button_selector,
			]
		);

		$this->start_controls_tabs(
			'course_carousel_cart_tabs'
		);
		//normal tab
		$this->start_controls_tab(
			'course_carousel_text_normal_tab',
			[
				'label' => __('Normal', 'tutor-lms-elementor-addons')
			]
		);

		$this->add_control(
			'course_carousel_cart_btn_bg_color',
			array(
				'label'     => __( 'Background Color', 'tutor-lms-elementor-addons' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					$cart_button_selector => 'border-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'course_carousel_cart_btn_text_color',
			[
				'label'     => __('Text Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$cart_button_selector => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_course_cart_icon_color',
			[
				'label'     => __('Icon Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$cart_button_selector . ' [class^="tutor-icon-"]' => 'color: {{VALUE}} !important;',
				]
			]
		);

		$this->end_controls_tab();
		//hover tab
		$this->start_controls_tab(
			'course_carousel_cart_hover_tab',
			[
				'label' => __('Hover', 'tutor-lms-elementor-addons')
			]
		);

		$this->add_control(
			'course_carousel_cart_btn_bg_color_hover',
			array(
				'label'     => __( 'Background Color', 'tutor-lms-elementor-addons' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => array(
					$cart_button_selector . ':hover' => 'border-color: {{VALUE}}; background-color: {{VALUE}};',
				),
			)
		);

		$this->add_control(
			'course_carousel_cart_btn_text_color_hover',
			[
				'label'     => __('Text Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$cart_button_selector . ':hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_course_cart_icon_hover_color',
			[
				'label'     => __('Icon Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$cart_button_selector . ':hover [class^="tutor-icon-"]' => 'color: {{VALUE}} !important;',
				]
			]
		);
		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'course_carousel_footer_tab_divider',
			[
				'type' => Controls_Manager::DIVIDER
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'course_carousel_cart_border',
				'label' => __('Border Type', 'tutor-lms-elementor-addons'),
				'selector' => $cart_button_selector,
			]
		);

		$this->add_control(
			'course_carousel_cart_border_radius',
			[
				'label' => __('Border Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					$cart_button_selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'course_carousel_cart_box_shadow',
				'label' => __('Box Shadow', 'tutor-lms-elementor-addons'),
				'selector' => $cart_button_selector,
			]
		);

		$this->end_controls_section();
		//footer section end		

		//arrow section start
		$this->start_controls_section(
			'course_carousel_arrow_styles',
			[
				'label' => __('Arrows', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);

		$this->add_control(
			'course_carousel_arrow_style',
			[
				'label' => esc_attr__('Arrow Style', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SELECT,
				'default' => 'default',
				'options' => [
					'default' => esc_attr__('Default', 'tutor-lms-elementor-addons'),
					'ghost' => esc_attr__('Ghost / Outlined', 'tutor-lms-elementor-addons'),
					'fill' => esc_attr__('Fill', 'tutor-lms-elementor-addons')
				]
			]
		);

		$this->add_control(
			'course_carousel_arrows_position',
			[
				'label' => esc_attr__('Position', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SELECT,
				'default' => 'outside',
				'options' => [
					'inside' => esc_attr__('Inside', 'tutor-lms-elementor-addons'),
					'outside' => esc_attr__('Outside', 'tutor-lms-elementor-addons'),
				]
			]
		);
		$this->add_control(
			'course_carousel_arrow_shape_size',
			[
				'label' => __('Shape Size', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 1,
					],

				],
				'default' => [
					'unit' => 'px',
					'size' => 28,
				],
				'condition' => [
					'course_carousel_arrow_style!' => 'default'
				],
				'selectors' => [
					$arrow_shape_selector => 'width: {{SIZE}}{{UNIT}};height:{{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_icon_size',
			[
				'label' => __('Icon Size', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 1,
					],

				],
				'default' => [
					'unit' => 'px',
					'size' => 28,
				],
				'selectors' => [
					$arrow_icon_selector => 'font-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		// arrow tabs
		$this->start_controls_tabs(
			'course_carousel_arrow_tabs'
		);
		// normal tab
		$this->start_controls_tab(
			'course_carousel_arrow_normal_tab',
			[
				'label' => __('Normal', 'tutor-lms-elementor-addons')
			]
		);

		$this->add_control(
			'course_carousel_arrow_color',
			[
				'label'     => __('Arrow Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$arrow_icon_selector => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_shape_color',
			[
				'label'     => __('Shape Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'course_carousel_arrow_style',
							'operator' => 'in',
							'value' => ['ghost', 'fill']
						]
					]
				],
				'selectors' => [
					$arrow_shape_selector => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_shape_border_width',
			[
				'label' => __('Border Width', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 0,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'unit' => 'px',
					'size' => 1,
				],
				'selectors' => [
					$arrow_shape_selector => 'border-width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'course_carousel_arrow_style' => 'ghost'
				]
			]
		);

		$this->add_control(
			'course_carousel_arrow_border_color',
			[
				'label' => __('Border Color', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					$arrow_shape_selector => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'course_carousel_arrow_style' => 'ghost'
				]
			]
		);

		$this->add_control(
			'course_carousel_arrow_shape_raius',
			[
				'label' => __('Shape Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 0,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'unit' => 'px',
					'size' => 0,
				],
				'selectors' => [
					$arrow_shape_selector => 'border-radius: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'course_carousel_arrow_style' => 'ghost'
				]
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'course_carousel_arrow_shape_shadow',
				'label' => __('Shadow', 'tutor-lms-elementor-addons'),
				'selector' => $arrow_shape_selector,
			]
		);

		$this->end_controls_tab();

		// hover tab
		$this->start_controls_tab(
			'course_carousel_arrow_hover_tab',
			[
				'label' => __('Hover', 'tutor-lms-elementor-addons')
			]
		);

		$this->add_control(
			'course_carousel_arrow_color_hover',
			[
				'label'     => __('Arrow Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$arrow_icon_selector . ":hover" => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_shape_color_hover',
			[
				'label'     => __('Shape Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$arrow_shape_selector . ":hover" => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_shape_border_width_hover',
			[
				'label' => __('Border Width', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 0,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'unit' => 'px',
					'size' => 1,
				],
				'condition' => [
					'course_carousel_arrow_style' => 'ghost'
				],
				'selectors' => [
					$arrow_shape_selector . ":hover" => 'border-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_border_color_hover',
			[
				'label' => __('Border Color', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::COLOR,
				'condition' => [
					'course_carousel_arrow_style' => 'ghost'
				],
				'selectors' => [
					$arrow_shape_selector . ":hover" => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'course_carousel_arrow_shape_raius_hover',
			[
				'label' => __('Shape Radius', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px', '%'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 0,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'unit' => 'px',
					'size' => 0,
				],
				'condition' => [
					'course_carousel_arrow_style' => 'ghost'
				],
				'selectors' => [
					$arrow_shape_selector . ":hover" => 'border-radius: {{SIZE}}{{UNIT}};',
				],

			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'course_carousel_arrow_shape_shadow_hover',
				'label' => __('Shadow', 'tutor-lms-elementor-addons'),
				'selector' => $arrow_shape_selector . ":hover",
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();
		$this->end_controls_section();
		//arrow section end

		//dots style section start
		$this->start_controls_section(
			'course_carousel_dots_style',
			[
				'label' => __('Dots', 'tutor-lms-elementor-addons'),
				'tab' => Controls_Manager::TAB_STYLE
			]
		);

		$this->add_control(
			'course_carousel_dots_position',
			[
				'label' => esc_attr__('Position', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SELECT,
				'default' => 'outside',
				'options' => [
					'inside' => esc_attr__('Inside', 'tutor-lms-elementor-addons'),
					'outside' => esc_attr__('Outside', 'tutor-lms-elementor-addons'),
				],

			]
		);

		$this->add_control(
			'course_carousel_dots_size',
			[
				'label' => __('Size', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 3,
						'max' => 36,
					],
				],
				'selectors' => [
					$wrapper . ".slick-dots li button:before" => 'font-size: {{SIZE}}{{UNIT}};',
				],
				'default' => [
					'size' => 12,
				]
			]
		);

		$this->add_control(
			'course_carousel_dots_alignment',
			[
				'label'        => __('Alignment', 'tutor-lms-elementor-addons'),
				'type'         => Controls_Manager::CHOOSE,
				'options'      => [
					'left'   => [
						'title' => __('Left', 'tutor-lms-elementor-addons'),
						'icon'  => 'eicon-text-align-left',
					],
					'center' => [
						'title' => __('Center', 'tutor-lms-elementor-addons'),
						'icon'  => 'eicon-text-align-center',
					],
					'right'  => [
						'title' => __('Right', 'tutor-lms-elementor-addons'),
						'icon'  => 'eicon-text-align-right'
					],

				],
				'selectors' => [
					$wrapper . ".slick-dots" => 'text-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'course_carousel_dots_gap',
			[
				'label' => __('Gap', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 10,
						'max' => 68,
					],
				],
				'selectors' => [
					$wrapper . ".slick-dots" => 'bottom: -{{SIZE}}{{UNIT}};',
				],
				'default' => [
					'size' => 30,
				]
			]
		);

		$this->add_control(
			'course_carousel_dots_space',
			[
				'label' => __('Space Between', 'tutor-lms-elementor-addons'),
				'type' => Controls_Manager::SLIDER,
				'size_units' => ['px'],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 36,
					],
				],
				'selectors' => [
					$wrapper . ".slick-dots li" => 'margin-right: {{SIZE}}{{UNIT}};',
				],
				'default' => [
					'size' => 5,
				]
			]
		);

		$this->start_controls_tabs('course_carousel_dots_tabs');

		/*normal tab*/
		$this->start_controls_tab(
			'course_carousel_dots_normal_tab',
			[
				'label' => __('Normal', 'tutor-lms-elementor-addons')
			]
		);

		$this->add_control(
			'course_carousel_dots_fill_normal_color',
			[
				'label'     => __('Fill Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$wrapper . ".slick-dots li button:before" => 'color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		/*hover tab*/
		$this->start_controls_tab(
			'course_carousel_dots_hover_tab',
			[
				'label' => __('Hover', 'tutor-lms-elementor-addons')
			]
		);

		$this->add_control(
			'course_carousel_dots_fill_hover_color',
			[
				'label'     => __('Fill Color', 'tutor-lms-elementor-addons'),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					$wrapper . ".slick-dots li button:hover:before" => 'color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
		//dots style section end
	}

	protected function render() {
		ob_start();
		$settings = $this->get_settings_for_display();

		include etlms_get_template('course/course-carousel');
		echo ob_get_clean();
	}
}
Back to Directory File Manager