<?php

use Elementor\Repeater;
use Elementor\Utils;
use Elementor\Group_Control_Css_Filter;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Text_Stroke;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Image_Size;
use Elementor\Icons_Manager;


defined( 'ABSPATH' ) || die();

class Ultimate_Tag_Cloud_Register_Elementor_Widget extends \Elementor\Widget_Base {
    public function get_name() {
        return 'ultimate_tag_cloud_el_widget';
    }

    public function get_title() {
        return __('Tag Cloud', 'ultimate-tag-cloud');
    }

    public function get_icon() {
        return 'eicon-theme-builder ultc-badge';
    }

    public function get_categories() {
        return ['ultimate_tag_cloud_category'];
    }

    public function get_keywords() {
        return ['tag', 'rs', 'ultimate', 'query', 'ultimate tag cloud', 'cat'];
    }

    public function get_style_depends(): array {
		return [ 'swiper', 'rs-swiper' ];
	}
    public function get_script_depends(): array {
		return [ 'swiper', 'rs-swiper' ];
	}

    /**
     * Register widget controls.
     *
     * @since 1.0.0
     * @access protected
     */
    protected function register_controls()
    {
        // Configuration Start
        $this->start_controls_section(
            '_configuration_section',
            [
                'label' => esc_html__('Configuration', 'ultimate-tag-cloud'),
                'tab' => Controls_Manager::TAB_CONTENT,
            ]
        );
            $this->add_control(
                'layout',
                [
                    'label' => esc_html__( 'Layout', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__( 'Grid', 'ultimate-tag-cloud' ),
                        'slider' => esc_html__( 'Slider', 'ultimate-tag-cloud' )
                    ],
                ]
            );
            $this->add_control(
                'tag_style',
                [
                    'label' => esc_html__( 'Tag Style', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SELECT,
                    'default' => 'default',
                    'options' => [
                        'default' => esc_html__( 'Default', 'ultimate-tag-cloud' ),
                        'label' => esc_html__( 'Label', 'ultimate-tag-cloud' ),
                        'block' => esc_html__( 'Block', 'ultimate-tag-cloud' ),
                        'ribbon' => esc_html__( 'Ribbon', 'ultimate-tag-cloud' )
                    ],
                    'separator' => 'before'
                ]
            );
            $this->add_control(
                'ribbon_style',
                [
                    'label' => esc_html__( 'Ribbon Style', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SELECT,
                    'default' => 'style1',
                    'options' => [
                        'style1' => esc_html__( 'Style 1', 'ultimate-tag-cloud' ),
                        'style2' => esc_html__( 'Style 2', 'ultimate-tag-cloud' ),
                        'style3' => esc_html__( 'Style 3', 'ultimate-tag-cloud' ),
                    ],
                    'condition' => [
                        'tag_style' => 'ribbon',
                    ],
                ]
            );
            $this->add_control(
                'show_count',
                [
                    'label' => esc_html__( 'Show Count', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SWITCHER,
                    'label_on' => esc_html__( 'Yes', 'ultimate-tag-cloud' ),
                    'label_off' => esc_html__( 'No', 'ultimate-tag-cloud' ),
                    'return_value' => 'yes',
                    'default' => 'yes',
                    'separator' => 'before',
                ]
            );
            $this->add_control(
                'random_color',
                [
                    'label' => esc_html__( 'Random Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SWITCHER,
                    'label_on' => esc_html__( 'Yes', 'ultimate-tag-cloud' ),
                    'label_off' => esc_html__( 'No', 'ultimate-tag-cloud' ),
                    'return_value' => 'yes',
                    'default' => 'yes',
                    'separator' => 'before',
                ]
            );
            $this->add_control(
                'random_color_options',
                [
                    'label' => __('Custom Colors', 'ultimate-tag-cloud'),
                    'placeholder' => __('#FF0000, #00FF00, #0000FF', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::TEXT,
                    'label_block' => true,
                    'description' => __('Enter colors as HEX values, separated by commas (e.g., #FF0000, #00FF00, #0000FF)', 'ultimate-tag-cloud'),
                    'condition' => [
                        'random_color' => 'yes',
                    ],
                ]
            );
            $this->add_control(
                'random_size',
                [
                    'label' => esc_html__( 'Random Size', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SWITCHER,
                    'label_on' => esc_html__( 'Yes', 'ultimate-tag-cloud' ),
                    'label_off' => esc_html__( 'No', 'ultimate-tag-cloud' ),
                    'return_value' => 'yes',
                    'default' => 'no',
                    'separator' => 'before',
                ]
            );
            $this->add_control(
                'min_size',
                [
                    'label' => esc_html__( 'Min Size', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::NUMBER,
                    'min' => 5,
                    'max' => 100,
                    'default' => 14,
                    'condition' => [
                        'random_size' => 'yes',
                    ],
                ]
            );
            $this->add_control(
                'max_size',
                [
                    'label' => esc_html__( 'Max Size', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::NUMBER,
                    'min' => 5,
                    'max' => 100,
                    'default' => 25,
                    'condition' => [
                        'random_size' => 'yes',
                    ],
                ]
            );
        $this->end_controls_section();
        // Configuration End

        // Query Start
        $this->start_controls_section(
			'_query_section',
			[
				'label'     => __( 'Query', 'ultimate-tag-cloud' ),
                'tab' => Controls_Manager::TAB_CONTENT,
			]
		);
            $post_types = ultimate_tag_cloud_get_posts_types();
            $this->add_control(
                'post_type_filter',
                [
                    'label'       => __( 'Post Type', 'ultimate-tag-cloud' ),
                    'type'        => Controls_Manager::SELECT,
                    'label_block' => true,
                    'options'     => $post_types,
                    'default'     => 'post',
                ]
            );
            $this->add_control(
                'filter_tabs_type',
                [
                    'label'     => __( 'Source', 'ultimate-tag-cloud' ),
                    'type'      => Controls_Manager::SELECT,
                    'default'   => 'category',
                    'options' => [
                        'category' => esc_html__( 'Category', 'ultimate-tag-cloud' ),
                        'tag' => esc_html__( 'Tag', 'ultimate-tag-cloud' ),
                    ],
                ]
            );

            $this->add_control(
                'item_limit',
                [
                    'label' => __( 'Item Limit', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::NUMBER,
                    'separator' => 'before',
                ]
            );
    
            $this->add_control(
                'hide_empty',
                [
                    'label'       => __( 'Hide Empty', 'ultimate-tag-cloud' ),
                    'type'        => Controls_Manager::SELECT,
                    'separator'   => 'before',
                    'label_block' => true,
                    'options'     => [
                        'true'        => __( 'True', 'ultimate-tag-cloud' ),
                        'false'        => __( 'False', 'ultimate-tag-cloud' ),
                    ],
                    'default'     => 'true'
                ]
            );
            $this->add_control(
                'order_by',
                [
                    'label'       => __( 'Order By', 'ultimate-tag-cloud' ),
                    'type'        => Controls_Manager::SELECT,
                    'separator'   => 'before',
                    'label_block' => true,
                    'options'     => [
                        'none'        => __( 'None', 'ultimate-tag-cloud' ),
                        'name'        => __( 'Name Alphabetically', 'ultimate-tag-cloud' ),
                        'slug'        => __( 'Slug Alphabetically', 'ultimate-tag-cloud' ),
                        'description' => __( 'Description Alphabetically', 'ultimate-tag-cloud' ),
                        'ID'          => __( 'Term ID', 'ultimate-tag-cloud' ),
                        'count'       => __( 'Posts Number', 'ultimate-tag-cloud' ),
                        'random'      => __( 'Random', 'ultimate-tag-cloud' ),
                    ],
                    'default'     => 'none'
                ]
            );
    
            $this->add_control(
                'order',
                [
                    'label'       => __( 'Order', 'ultimate-tag-cloud' ),
                    'type'        => Controls_Manager::SELECT,
                    'label_block' => true,
                    'options'     => [
                        'ASC'  => __( 'Ascending', 'ultimate-tag-cloud' ),
                        'DESC' => __( 'Descending', 'ultimate-tag-cloud' ),
                    ],
                    'default'     => 'ASC'
                ]
            );
        $this->end_controls_section();
        // Query End

        // Slider Configuration Start
        $this->start_controls_section(
			'slider_config',
			[
				'label' => esc_html__('Slider Configuration', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_CONTENT,
                'condition' => [
                    'layout' => 'slider'
                ]
			]
		);
            $options = [
                '' => esc_html__( 'Default', 'ultimate-tag-cloud' ),
                'auto' => esc_html__( 'Custom', 'ultimate-tag-cloud' ),
            ];
            for ( $i = 1; $i <= 15; $i++ ) {
                $options[ $i ] = (string) $i;
            }
            $this->add_responsive_control(
                'sl_column',
                [
                    'label' => esc_html__( 'Column', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SELECT,
                    'options' => $options,
                    'default' => '',
                    'frontend_available' => true,
                ]
            );
            $this->add_responsive_control(
                'sl_item_auto_width',
                [
                    'label' => esc_html__( 'Item Width', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'em', 'rem', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper .swiper-slide' => 'width: {{SIZE}}{{UNIT}};',
                    ],
                    'condition' => [
                        'sl_column' => 'auto'
                    ]
                ]
            );
            $this->add_responsive_control(
                'sl_column_gap',
                [
                    'label'              => esc_html__( 'Item Gap', 'ultimate-tag-cloud' ),
                    'type'               => Controls_Manager::NUMBER,
                    'frontend_available' => true
                ]
            );
			$this->add_responsive_control(
				'sl_vertical',
				[
					'label' => esc_html__( 'Vertical Mode', 'ultimate-tag-cloud' ),
					'type' => Controls_Manager::SELECT,
					'default' => 'horizontal',
					'options' => [
						'horizontal' => esc_html__( 'False', 'ultimate-tag-cloud' ),
						'vertical' => esc_html__( 'True', 'ultimate-tag-cloud' ),
					],
					'frontend_available' => true
				]
			);

            $this->add_control(
                'slides_to_scroll',
                [
                    'label'   => esc_html__('Slide To Scroll', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => '1',
                    'options' => [
                        '1' => esc_html__('1 Item', 'ultimate-tag-cloud'),
                        '2' => esc_html__('2 Item', 'ultimate-tag-cloud'),
                        '3' => esc_html__('3 Item', 'ultimate-tag-cloud'),
                        '4' => esc_html__('4 Item', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_initial_slide',
                [
                    'label'   => esc_html__('Initial Slide', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => '0',
                    'options' => [
                        '0' => esc_html__('1st Item', 'ultimate-tag-cloud'),
                        '1' => esc_html__('2nd Item', 'ultimate-tag-cloud'),
                        '2' => esc_html__('3rd Item', 'ultimate-tag-cloud'),
                        '3' => esc_html__('4th Item', 'ultimate-tag-cloud'),
                        '4' => esc_html__('5th Item', 'ultimate-tag-cloud'),
                        '5' => esc_html__('6th Item', 'ultimate-tag-cloud'),
                        '6' => esc_html__('7th Item', 'ultimate-tag-cloud'),
                        '7' => esc_html__('8th Item', 'ultimate-tag-cloud'),
                        '8' => esc_html__('9th Item', 'ultimate-tag-cloud'),
                        '9' => esc_html__('10th Item', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_speed',
                [
                    'label'   => esc_html__('Slide Transition', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 500,
                    'options' => [
                        '300' => esc_html__('300 ms', 'ultimate-tag-cloud'),
                        '500' => esc_html__('500 ms', 'ultimate-tag-cloud'),
                        '700' => esc_html__('700 ms', 'ultimate-tag-cloud'),
                        '1000' => esc_html__('1000 ms', 'ultimate-tag-cloud'),
                        '1500' => esc_html__('1500 ms', 'ultimate-tag-cloud'),
                        '2000' => esc_html__('2000 ms', 'ultimate-tag-cloud'),
                        '2500' => esc_html__('2500 ms', 'ultimate-tag-cloud'),
                        '3000' => esc_html__('3000 ms', 'ultimate-tag-cloud'),
                        '3500' => esc_html__('3500 ms', 'ultimate-tag-cloud'),
                        '4000' => esc_html__('4000 ms', 'ultimate-tag-cloud'),
                        '4500' => esc_html__('4500 ms', 'ultimate-tag-cloud'),
                        '5000' => esc_html__('5000 ms', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_direction',
                [
                    'label'   => esc_html__('Direction', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Left', 'ultimate-tag-cloud'),
                        'right' => esc_html__('Right', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_dots',
                [
                    'label'   => esc_html__('Navigation Bullets', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]

            );
            $this->add_control(
                'slider_bullet_type',
                [
                    'label'   => esc_html__('Bullets Type', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Dots', 'ultimate-tag-cloud'),
                        'progressbar' => esc_html__('Progressbar', 'ultimate-tag-cloud'),
                        'fraction' => esc_html__('Fraction Number', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_dots' => 'true',
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_decimal_fraction',
                [
                    'label' => esc_html__( 'Decimal Count (01-10)', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SWITCHER,
                    'label_on' => esc_html__( 'Yes', 'ultimate-tag-cloud' ),
                    'label_off' => esc_html__( 'No', 'ultimate-tag-cloud' ),
                    'return_value' => 'yes',
                    'default' => 'no',
                    'render_type'  => 'template',
                    'condition' => [
                        'slider_dots' => 'true',
                        'slider_bullet_type' => 'fraction'
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_current_fraction',
                [
                    'label' => esc_html__( 'Hide Total Count', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SWITCHER,
                    'label_on' => esc_html__( 'Yes', 'ultimate-tag-cloud' ),
                    'label_off' => esc_html__( 'No', 'ultimate-tag-cloud' ),
                    'return_value' => 'yes',
                    'default' => 'no',
                    'render_type'  => 'template',
                    'condition' => [
                        'slider_dots' => 'true',
                        'slider_bullet_type' => 'fraction'
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_dynamic_bullets',
                [
                    'label'   => esc_html__('Dynamic Bullets', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_dots' => 'true',
                        'slider_bullet_type!' => ['progressbar', 'fraction']
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_dots_style',
                [
                    'label'   => esc_html__('Bullets Style', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'default',
                    'options' => [
                        'default' => esc_html__('Default', 'ultimate-tag-cloud'),
                        '2' => esc_html__('Style 2', 'ultimate-tag-cloud')
                    ],
                    'condition' => [
                        'slider_dots' => 'true',
                        'slider_bullet_type!' => ['progressbar', 'fraction']
                    ]
                ]
            );

            $this->add_control(
                'slider_nav',
                [
                    'label'   => esc_html__('Navigation Nav', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]

            );
            $this->add_control(
                'slider_nav_style',
                [
                    'label'   => esc_html__('Nav Style', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Style 1', 'ultimate-tag-cloud'),
                        '2' => esc_html__('Style 2', 'ultimate-tag-cloud')
                    ],
                    'condition' => [
                        'slider_nav' => 'true'
                    ]
                ]

            );
            $this->add_control(
                'slider_nav_icon_style',
                [
                    'label'   => esc_html__('Icon Style', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Icon 1', 'ultimate-tag-cloud'),
                        '2' => esc_html__('Icon 2', 'ultimate-tag-cloud'),
                        '3' => esc_html__('Icon 3', 'ultimate-tag-cloud'),
                        '4' => esc_html__('Icon 4', 'ultimate-tag-cloud'),
                        '5' => esc_html__('Icon 5', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_nav' => 'true'
                    ]
                ]

            );
            $this->add_control(
                'slider_scrollbar',
                [
                    'label'   => esc_html__('Scrollbar', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_scrollbar_warning',
                [
                    'type'            => Controls_Manager::RAW_HTML,
                    'raw'             => __('The <strong>Scrollbar</strong> functionality may not operate as expected when the <strong>loop</strong>  feature is enabled.', 'ultimate-tag-cloud'),
                    'content_classes' => 'fpg-panel-notice',
                    'condition' => [
                        'slider_loop' => 'true',
                        'slider_scrollbar' => 'true'
                    ]
                ]
            );
            $this->add_control(
                'slider_autoplay',
                [
                    'label'   => esc_html__('Autoplay', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slide_item_circle_progress',
                [
                    'label'   => esc_html__('Auto Play Progress', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_autoplay' => 'true'
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_stop_on_hover',
                [
                    'label'   => esc_html__('Stop on Hover', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_autoplay' => 'true'
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_interval',
                [
                    'label'   => esc_html__('Autoplay Interval', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 3000,
                    'options' => [
                        '1' => esc_html__('0 ms', 'ultimate-tag-cloud'),
                        '500' => esc_html__('500 ms', 'ultimate-tag-cloud'),
                        '700' => esc_html__('700 ms', 'ultimate-tag-cloud'),
                        '1000' => esc_html__('1000 ms', 'ultimate-tag-cloud'),
                        '1500' => esc_html__('1500 ms', 'ultimate-tag-cloud'),
                        '2000' => esc_html__('2000 ms', 'ultimate-tag-cloud'),
                        '2500' => esc_html__('2500 ms', 'ultimate-tag-cloud'),
                        '3000' => esc_html__('3000 ms', 'ultimate-tag-cloud'),
                        '3500' => esc_html__('3500 ms', 'ultimate-tag-cloud'),
                        '4000' => esc_html__('4000 ms', 'ultimate-tag-cloud'),
                        '4500' => esc_html__('4500 ms', 'ultimate-tag-cloud'),
                        '5000' => esc_html__('5000 ms', 'ultimate-tag-cloud'),
                        '5500' => esc_html__('5500 ms', 'ultimate-tag-cloud'),
                        '6000' => esc_html__('6000 ms', 'ultimate-tag-cloud'),
                        '6500' => esc_html__('6500 ms', 'ultimate-tag-cloud'),
                        '7000' => esc_html__('7000 ms', 'ultimate-tag-cloud'),
                        '7500' => esc_html__('7500 ms', 'ultimate-tag-cloud'),
                        '8000' => esc_html__('8000 ms', 'ultimate-tag-cloud'),
                        '8500' => esc_html__('8500 ms', 'ultimate-tag-cloud'),
                        '9000' => esc_html__('9000 ms', 'ultimate-tag-cloud'),
                        '9500' => esc_html__('9500 ms', 'ultimate-tag-cloud'),
                        '10000' => esc_html__('10000 ms', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_autoplay' => 'true'
					],
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_loop',
                [
                    'label'   => esc_html__('Loop', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'true',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_auto_height',
                [
                    'label'   => esc_html__('Auto Height', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_free_mode',
                [
                    'label'   => esc_html__('Free Mode', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_grab_cursor',
                [
                    'label'   => esc_html__('Grab Cursor', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_mousewheel',
                [
                    'label'   => esc_html__('Mousewheel', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_keyboard_control',
                [
                    'label'   => esc_html__('Keyboard Control', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_center_mode',
                [
                    'label'   => esc_html__('Center Mode', 'ultimate-tag-cloud'),
                    'type'    => Controls_Manager::SELECT,
                    'default' => 'false',
                    'options' => [
                        'true' => esc_html__('Enable', 'ultimate-tag-cloud'),
                        'false' => esc_html__('Disable', 'ultimate-tag-cloud'),
                    ],
                    'separator' => 'before',
					'frontend_available' => true
                ]
            );
            $this->add_control(
                'slider_slider_center_mode_warning',
                [
                    'type'            => Controls_Manager::RAW_HTML,
                    'raw'             => __("If <strong>center mode</strong> doesn't work as expected, enable the <strong>loop</strong> feature and ensure there are <strong>enough items</strong> to center one properly.", 'ultimate-tag-cloud'),
                    'content_classes' => 'fpg-panel-notice',
                    'condition' => [
                        'slider_center_mode' => 'true'
                    ]
                ]
            );
            $this->add_responsive_control(
                'slider_vertical_height',
                [
                    'label' => esc_html__( 'Vertical Height', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 2000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'default' => [
                        'unit' => 'px',
                        'size' => 400,
                    ],
                    'separator' => 'before',
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper.swiper-vertical' => 'height: {{SIZE}}{{UNIT}} !important;',
                    ],
					'condition' => [
						'sl_vertical' => 'vertical'
					]
                ]
            );
            $this->add_control(
                'swiper_item_wrapper_padding',
                [
                    'label' => esc_html__( 'Swiper Wrapper Padding', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                    'separator' => 'before',
                ]
            );
		$this->end_controls_section();
        // Slider Configuration End
        
        // Wrapper Style Start
        $this->start_controls_section(
			'_wrapper_style_section',
			[
				'label'     => __( 'Wrapper', 'ultimate-tag-cloud' ),
                'tab' => Controls_Manager::TAB_STYLE,
			]
		);
            $this->add_responsive_control(
                'wrapper_h_align',
                [
                    'label' => esc_html__( 'Horizontal Align', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'flex-start' => [
                            'title' => esc_html__( 'Start', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-align-start-h',
                        ],
                        'center' => [
                            'title' => esc_html__( 'Center', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-align-center-h',
                        ],
                        'flex-end' => [
                            'title' => esc_html__( 'End', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-align-end-h',
                        ],
                        'space-between' => [
                            'title' => esc_html__( 'Space Between', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-justify-space-between-h',
                        ],

                    ],
                    'toggle' => true,
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words' => 'justify-content: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'wrapper_vertical_align',
                [
                    'label' => esc_html__( 'Vertical Align', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'flex-start' => [
                            'title' => esc_html__( 'Top', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-align-start-v',
                        ],
                        'center' => [
                            'title' => esc_html__( 'Middle', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-align-center-v',
                        ],
                        'flex-end' => [
                            'title' => esc_html__( 'Bottom', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-align-end-v',
                        ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words' => 'align-items: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'wrapper_flex_wrap',
                [
                    'label' => esc_html__( 'Flex Wrap', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'nowrap' => [
                            'title' => esc_html__( 'No Wrap', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-nowrap',
                        ],
                        'wrap' => [
                            'title' => esc_html__( 'Wrap', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-wrap',
                        ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words' => 'flex-wrap: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'wrapper_gap_between_word',
                [
                    'label' => esc_html__( 'Space Between', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words' => 'gap: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'wrapper_margin',
                [
                    'label' => esc_html__( 'Margin', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'separator' => 'before',
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'wrapper_padding',
                [
                    'label' => esc_html__( 'Padding', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'wrapper_border_radius',
                [
                    'label' => esc_html__( 'Border Radius', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Background::get_type(),
                [
                    'name' => 'wrapper_background',
                    'types' => [ 'classic', 'gradient' ],
                    'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words',
                ]
            );
            $this->add_group_control(
                Group_Control_Border::get_type(),
                [
                    'name' => 'wrapper_border',
                    'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words',
                ]
            );
            $this->add_group_control(
                Group_Control_Box_Shadow::get_type(),
                [
                    'name' => 'wrapper_box_shadow',
                    'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words',
                ]
            );
        $this->end_controls_section();
        // Wrapper Style End

        // Tag Style Start
        $this->start_controls_section(
            '_tag_style_section',
            [
                'label' => __( 'Tag Pill Style', 'ultimate-tag-cloud' ),
                'tab' => Controls_Manager::TAB_STYLE,   
            ]
        );
            $this->add_responsive_control(
                'tag_text_align',
                [
                    'label' => esc_html__( 'Text Align', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'left' => [
                            'title' => esc_html__( 'Left', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-text-align-left',
                        ],
                        'center' => [
                            'title' => esc_html__( 'Center', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-text-align-center',
                        ],
                        'right' => [
                            'title' => esc_html__( 'Right', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-text-align-right',
                        ],
                    ],
                    'default' => '',
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'text-align: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_display_style',
                [
                    'label' => esc_html__( 'Display Style', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SELECT,
                    'options' => [
                        '' => esc_html__( 'Default', 'ultimate-tag-cloud' ),
                        'block' => esc_html__( 'Block', 'ultimate-tag-cloud' ),
                        'inline-block' => esc_html__( 'Inline Block', 'ultimate-tag-cloud' ),
                        'flex' => esc_html__( 'Flex', 'ultimate-tag-cloud' ),
                        'inline-flex' => esc_html__( 'Inline Flex', 'ultimate-tag-cloud' ),
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'display: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_flex_v_align',
                [
                    'label' => esc_html__( 'Vertical Align', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'flex-start' => [ 'title' => esc_html__( 'Top', 'ultimate-tag-cloud' ), 'icon' => 'eicon-align-start-v' ],
                        'center'     => [ 'title' => esc_html__( 'Middle', 'ultimate-tag-cloud' ), 'icon' => 'eicon-align-center-v' ],
                        'flex-end'   => [ 'title' => esc_html__( 'Bottom', 'ultimate-tag-cloud' ), 'icon' => 'eicon-align-end-v' ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'align-items: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_flex_h_align',
                [
                    'label' => esc_html__( 'Horizontal Align', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'flex-start'     => [ 'title' => esc_html__( 'Start', 'ultimate-tag-cloud' ), 'icon' => 'eicon-align-start-h' ],
                        'center'         => [ 'title' => esc_html__( 'Center', 'ultimate-tag-cloud' ), 'icon' => 'eicon-align-center-h' ],
                        'flex-end'       => [ 'title' => esc_html__( 'End', 'ultimate-tag-cloud' ), 'icon' => 'eicon-align-end-h' ],
                        'space-between'  => [ 'title' => esc_html__( 'Space Between', 'ultimate-tag-cloud' ), 'icon' => 'eicon-justify-space-between-h' ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'justify-content: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_flex_dir',
                [
                    'label' => esc_html__( 'Column Direction', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'row'            => [ 'title' => esc_html__( 'Row', 'ultimate-tag-cloud' ), 'icon' => 'eicon-justify-start-h' ],
                        'row-reverse'    => [ 'title' => esc_html__( 'Row Reverse', 'ultimate-tag-cloud' ), 'icon' => 'eicon-wrap' ],
                        'column'         => [ 'title' => esc_html__( 'Column', 'ultimate-tag-cloud' ), 'icon' => 'eicon-justify-start-v' ],
                        'column-reverse' => [ 'title' => esc_html__( 'Column Reverse', 'ultimate-tag-cloud' ), 'icon' => 'eicon-wrap' ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'flex-direction: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_flex_wrap',
                [
                    'label' => esc_html__( 'Flex Wrap', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'nowrap' => [ 'title' => esc_html__( 'No Wrap', 'ultimate-tag-cloud' ), 'icon' => 'eicon-nowrap' ],
                        'wrap'   => [ 'title' => esc_html__( 'Wrap', 'ultimate-tag-cloud' ), 'icon' => 'eicon-wrap' ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'flex-wrap: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_flex_gap',
                [
                    'label' => esc_html__( 'Gap Between', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [ 'min' => 0, 'max' => 1000 ],
                        '%' => [ 'min' => 0, 'max' => 100 ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'gap: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'tag_typography',
                    'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a',
                ]
            );
            $this->add_responsive_control(
                'tag_margin',
                [
                    'label' => esc_html__( 'Margin', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'separator' => 'before',
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_padding',
                [
                    'label' => esc_html__( 'Padding', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'tag_border_radius',
                [   
                    'label' => esc_html__( 'Border Radius', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );

            $this->start_controls_tabs(
                'tag_style_tabs'
            );
                $this->start_controls_tab(
                    'tag_style_normal_tab',
                    [
                        'label' => esc_html__( 'Normal', 'ultimate-tag-cloud' ),
                    ]
                );
                    $this->add_control(
                        'tag_text_color',
                        [
                            'label' => esc_html__( 'Text Color', 'ultimate-tag-cloud' ),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a' => 'color: {{VALUE}}',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Background::get_type(),
                        [
                            'name' => 'tag_background',
                            'types' => [ 'classic', 'gradient' ],
                            'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a',
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Border::get_type(),
                        [
                            'name' => 'tag_border',
                            'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a',
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Box_Shadow::get_type(),
                        [
                            'name' => 'tag_box_shadow',
                            'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a',
                        ]
                    );
                $this->end_controls_tab();
                $this->start_controls_tab(
                    'tag_style_hover_tab',
                    [
                        'label' => esc_html__( 'Hover', 'ultimate-tag-cloud' ),
                    ]
                );
                    $this->add_control(
                        'tag_text_color_hover',
                        [
                            'label' => esc_html__( 'Text Color', 'ultimate-tag-cloud' ),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a:hover' => 'color: {{VALUE}}',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Background::get_type(),
                        [
                            'name' => 'tag_background_hover',
                            'types' => [ 'classic', 'gradient' ],
                            'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a:hover',
                        ]
                    );
                    $this->add_control(
                        'tag_border_color_hover',
                        [
                            'label' => esc_html__( 'Border Color', 'ultimate-tag-cloud' ),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a:hover' => 'border-color: {{VALUE}}',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Box_Shadow::get_type(),
                        [
                            'name' => 'tag_box_shadow_hover',
                            'selector' => 'body {{WRAPPER}} .ultimate-tag-cloud-container .ultimate-tag-cloud-words .tag-word-wrap a:hover',
                        ]
                    );
                $this->end_controls_tab();
            $this->end_controls_tabs();
        $this->end_controls_section();
        // Tag Style End
        
        // Label Style Start
        $this->start_controls_section(
            '_label_style_section',
            [
                'label' => __( 'Label Style', 'ultimate-tag-cloud' ),
                'tab' => Controls_Manager::TAB_STYLE,
                'condition' => [
                    'tag_style' => 'label',
                ],
            ]
        );
            $this->add_control(
                'label_dot_color',
                [
                    'label' => esc_html__( 'Dot Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container.style-label .ultimate-tag-cloud-words .tag-word-wrap:before' => 'background-color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_responsive_control(
                'label_dot_size',
                [
                    'label' => esc_html__( 'Dot Size', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container.style-label .ultimate-tag-cloud-words .tag-word-wrap:before' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'label_dot_p_y',
                [
                    'label' => esc_html__( 'Dot Position Y', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'default' => [
                        'unit' => '%',
                    ],
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container.style-label .ultimate-tag-cloud-words .tag-word-wrap:before' => 'top: {{SIZE}}{{UNIT}}; transform: translateY(-{{SIZE}}{{UNIT}});',
                    ],
                ]
            );
            $this->add_responsive_control(
                'label_dot_p_x',
                [
                    'label' => esc_html__( 'Dot Position X', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                    ],  
                    'selectors' => [
                        'body {{WRAPPER}} .ultimate-tag-cloud-container.style-label .ultimate-tag-cloud-words .tag-word-wrap:before' => 'left: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            
        $this->end_controls_section();
        // Label Style End

        // Arrow Section
		$this->start_controls_section(
			'section_slider_style_arrow_control',
			[
				'label' => esc_html__('Arrow Control', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'slider_nav' => 'true'
				]
			]
		);
            // positioning start
            $this->add_control(
                'arrow_position_maker',
                [
                    'label' => esc_html__('Arrow Position Style', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Default', 'ultimate-tag-cloud'),
                        'custom' => esc_html__('Custom', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'slider_nav_style!' => '2'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_prev_x_select',
                [
                    'label' => esc_html__('Prev Position X', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Default', 'ultimate-tag-cloud'),
                        'left' => esc_html__('Left', 'ultimate-tag-cloud'),
                        'right' => esc_html__('Right', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_prev_left_position',
                [
                    'label' => esc_html__('Prev Left Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev' => 'left: {{SIZE}}{{UNIT}}; right: unset;',
                    ],
                    'condition' => [
                        'arrow_prev_x_select' => 'left',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_prev_right_position',
                [
                    'label' => esc_html__('Prev Right Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev' => 'right: {{SIZE}}{{UNIT}}; left: unset;',
                    ],
                    'condition' => [
                        'arrow_prev_x_select' => 'right',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );

            $this->add_responsive_control(
                'arrow_prev_y_select',
                [
                    'label' => esc_html__('Prev Position Y', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Default', 'ultimate-tag-cloud'),
                        'top' => esc_html__('Top', 'ultimate-tag-cloud'),
                        'bottom' => esc_html__('Bottom', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_prev_top_position',
                [
                    'label' => esc_html__('Prev Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev' => 'top: {{SIZE}}{{UNIT}}; bottom: unset;',
                    ],
                    'condition' => [
                        'arrow_prev_y_select' => 'top',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_prev_bottom_position',
                [
                    'label' => esc_html__('Prev Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev' => 'bottom: {{SIZE}}{{UNIT}}; top: unset;',
                    ],
                    'condition' => [
                        'arrow_prev_y_select' => 'bottom',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );

            $this->add_responsive_control(
                'arrow_next_x_select',
                [
                    'label' => esc_html__('Next Position X', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Default', 'ultimate-tag-cloud'),
                        'left' => esc_html__('Left', 'ultimate-tag-cloud'),
                        'right' => esc_html__('Right', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_next_left_position',
                [
                    'label' => esc_html__('Next Left Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'left: {{SIZE}}{{UNIT}}; right: unset;',
                    ],
                    'condition' => [
                        'arrow_next_x_select' => 'left',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_next_right_position',
                [
                    'label' => esc_html__('Next Right Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'right: {{SIZE}}{{UNIT}}; left: unset;',
                    ],
                    'condition' => [
                        'arrow_next_x_select' => 'right',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );

            $this->add_responsive_control(
                'arrow_next_y_select',
                [
                    'label' => esc_html__('Next Position Y', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Default', 'ultimate-tag-cloud'),
                        'top' => esc_html__('Top', 'ultimate-tag-cloud'),
                        'bottom' => esc_html__('Bottom', 'ultimate-tag-cloud'),
                    ],
                    'condition' => [
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_next_top_position',
                [
                    'label' => esc_html__('Next Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'top: {{SIZE}}{{UNIT}}; bottom: unset;',
                    ],
                    'condition' => [
                        'arrow_next_y_select' => 'top',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_next_bottom_position',
                [
                    'label' => esc_html__('Next Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'bottom: {{SIZE}}{{UNIT}}; top: unset;',
                    ],
                    'condition' => [
                        'arrow_next_y_select' => 'bottom',
                        'arrow_position_maker' => 'custom'
                    ]
                ]
            );

            // Style 3 Wrapper Position
            $this->add_control(
                'arrow_wrapper_control_heading',
                [
                    'label' => esc_html__( 'Arrow Wrapper Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                    'condition' => [
                        'slider_nav_style' => '2'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_text_align',
                [
                    'label' => esc_html__( 'Alignment', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'left' => [
                            'title' => esc_html__( 'Left', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-text-align-left',
                        ],
                        'center' => [
                            'title' => esc_html__( 'Center', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-text-align-center',
                        ],
                        'right' => [
                            'title' => esc_html__( 'Right', 'ultimate-tag-cloud' ),
                            'icon' => 'eicon-text-align-right',
                        ],
                    ],
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud.nav-style-2' => 'text-align: {{VALUE}};',
                    ],
                ]
            );
            $this->add_responsive_control(
				'arrow_wrapper_column_align',
				[
					'label' => esc_html__( 'Button Direction', 'ultimate-tag-cloud' ),
					'type' => Controls_Manager::CHOOSE,
					'options' => [
						'row' => [
							'title' => esc_html__( 'Row', 'ultimate-tag-cloud' ),
							'icon' => 'eicon-justify-start-h',
						],
						'row-reverse' => [
							'title' => esc_html__( 'Row Reverse', 'ultimate-tag-cloud' ),
							'icon' => 'eicon-wrap',
						],
						'column' => [
							'title' => esc_html__( 'Column', 'ultimate-tag-cloud' ),
							'icon' => 'eicon-justify-start-v',
						],
						'column-reverse' => [
							'title' => esc_html__( 'Column Reverse', 'ultimate-tag-cloud' ),
							'icon' => 'eicon-wrap',
						],
					],
					'toggle' => true,
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
					'selectors' => [
						'{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'flex-direction: {{VALUE}};',
					],
				]
			);
            $this->add_responsive_control(
                'arrow_wrapper_gap_between',
                [
                    'label' => esc_html__( 'Space Between', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'gap: {{SIZE}}{{UNIT}};',
                    ],
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                ]
            );
            $this->add_control(
                'arrow_wrapper_position_maker',
                [
                    'label' => esc_html__('Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SELECT,
                    'default' => '',
                    'options' => [
                        '' => esc_html__('Default', 'ultimate-tag-cloud'),
                        'absolute' => esc_html__('Absolute', 'ultimate-tag-cloud'),
                        'relative' => esc_html__('Relative', 'ultimate-tag-cloud'),
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'position: {{VALUE}};',
                    ],
                    'condition' => [
                        'slider_nav_style' => '2'
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_top_position',
                [
                    'label' => esc_html__('Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'default' => [
                        'unit' => 'px',
                        'size' => 10,
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'top: {{SIZE}}{{UNIT}};',
                    ],
                    'condition' => [
                        'arrow_wrapper_position_maker' => ['absolute', 'relative']
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_right_position',
                [
                    'label' => esc_html__('Right Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'default' => [
                        'unit' => 'px',
                        'size' => 10,
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'right: {{SIZE}}{{UNIT}};',
                    ],
                    'condition' => [
                        'arrow_wrapper_position_maker' => ['absolute', 'relative']
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_bottom_position',
                [
                    'label' => esc_html__('Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'bottom: {{SIZE}}{{UNIT}};',
                    ],
                    'condition' => [
                        'arrow_wrapper_position_maker' => ['absolute', 'relative']
                    ]
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_left_position',
                [
                    'label' => esc_html__('Left Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'left: {{SIZE}}{{UNIT}};',
                    ],
                    'condition' => [
                        'arrow_wrapper_position_maker' => ['absolute', 'relative']
                    ]
                ]
            );
            // positioning end
            $this->add_responsive_control(
                'arrow_wrapper_padding',
                [
                    'label' => esc_html__( 'Padding', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_margin',
                [
                    'label' => esc_html__( 'Margin', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'arrow_wrapper_radius',
                [
                    'label' => esc_html__( 'Border Radius', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Background::get_type(),
                [
                    'name' => 'arrow_wrapper_background',
                    'types' => [ 'classic', 'gradient' ],
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper',
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Border::get_type(),
                [
                    'name' => 'arrow_wrapper_border',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper',
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Box_Shadow::get_type(),
                [
                    'name' => 'arrow_wrapper_box_shadow',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-btn-wrapper',
                    'condition' => [
                        'slider_nav_style' => '2'
                    ],
                ]
            );

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

            $this->add_responsive_control(
                'navigation_arrow_width',
                [
                    'label' => esc_html__('Arrow Width', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'width: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'navigation_arrow_height',
                [
                    'label' => esc_html__('Arrow Height', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'height: {{SIZE}}{{UNIT}}; line-height: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'navigation_arrow_line_height',
                [
                    'label' => esc_html__('Arrow Line Height', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'line-height: {{SIZE}}{{UNIT}} !important;',
                    ],
                ]
            );

            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'nav_icon_typography',
                    'label' => esc_html__('Icon Typography', 'ultimate-tag-cloud'),
                    'selector' => '
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev::after,
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next::after
                    ',
                ]
            );

            $this->add_control(
                'arrow_border_radius_',
                [
                    'label' => esc_html__('Border Radius', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_control(
                'next_arrow_border_radius_',
                [
                    'label' => esc_html__('Next Arrow Border Radius', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
                    ],
                ]
            );
            $this->add_control(
                'arrow_border_padding_',
                [
                    'label' => esc_html__('Padding', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                        {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );

            // Arrow Hover Normal Tab Start
            $this->start_controls_tabs('_tabs_slider_arrow');
                // Normal Bullet Start
                $this->start_controls_tab(
                    'slider_arrow_normal_tab',
                    [
                        'label' => esc_html__('Normal', 'ultimate-tag-cloud'),
                    ]
                );
                    $this->add_control(
                        'navigation_arrow_color',
                        [
                            'label' => esc_html__('Icon Color', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev::after,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next::after' => 'color: {{VALUE}};',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Background::get_type(),
                        [
                            'name' => 'navigation_arrow_background',
                            'types' => ['classic', 'gradient'],
                            'selector' => '
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next
                            ',
                        ]
                    );

                    $this->add_group_control(
                        Group_Control_Border::get_type(),
                        [
                            'name' => 'nav_arrow_border',
                            'selector' => '
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next
                            ',
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Box_Shadow::get_type(),
                        [
                            'name' => 'arrow_shadow_custom',
                            'selector' => '
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next
                            ',
                        ]
                    );
                    $this->add_responsive_control(
                        'arrow_opacity',
                        [
                            'label' => esc_html__('Opacity', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'range' => [
                                'px' => [
                                    'min' => 0,
                                    'max' => 1,
                                    'step' => 0.1,
                                ],
                            ],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next' => 'opacity: {{SIZE}}',
                            ]
                        ]
                    );
                $this->end_controls_tab();

                // Hover Bullet Start
                $this->start_controls_tab(
                    'slider_arrow_hover_tab',
                    [
                        'label' => esc_html__('Hover', 'ultimate-tag-cloud'),
                    ]
                );
                    $this->add_control(
                        'navigation_arrow_color_hover',
                        [
                            'label' => esc_html__('Icon Color', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev:hover::after,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next:hover::after' => 'color: {{VALUE}};',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Background::get_type(),
                        [
                            'name' => 'navigation_arrow_background_hover',
                            'types' => ['classic', 'gradient'],
                            'selector' => '
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev:hover,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next:hover
                            ',
                        ]
                    );
                    $this->add_control(
                        'nav_arrow_border_hover',
                        [
                            'label' => esc_html__('Border Color', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-button-prev:hover,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-button-next:hover' => 'border-color: {{VALUE}};',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'arrow_opacity_hover',
                        [
                            'label' => esc_html__('Opacity', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'range' => [
                                'px' => [
                                    'min' => 0,
                                    'max' => 1,
                                    'step' => 0.1,
                                ],
                            ],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud:hover .swiper-button-prev,
                                {{WRAPPER}} .ultimate-tag-cloud:hover .swiper-button-next' => 'opacity: {{SIZE}}',
                            ]
                        ]
                    );
                $this->end_controls_tab();
            $this->end_controls_tabs();
            // Arrow Hover Normal Tab End
		$this->end_controls_section();

		// Bullet Style
		$this->start_controls_section(
			'section_slider_style_dots_control',
			[
				'label' => esc_html__('Bullets Control', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'slider_dots' => 'true',
                    'slider_bullet_type!' => ['progressbar', 'fraction']
				]
			]
		);
            $this->add_responsive_control(
                'dots_alignments',
                [
                    'label' => esc_html__('Alignment', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'left' => [
                            'title' => esc_html__('Left', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-left',
                        ],
                        'center' => [
                            'title' => esc_html__('Center', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-center',
                        ],
                        'right' => [
                            'title' => esc_html__('Right', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-right',
                        ],
                        'justify' => [
                            'title' => esc_html__('Justify', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-justify',
                        ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'text-align: {{VALUE}}'
                    ],
                ]
            );
            $this->add_control(
                'bullet_wrapper_box_style',
                [
                    'label' => esc_html__('Dots Wrapper Box', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                ]
            );
            $this->add_group_control(
                Group_Control_Background::get_type(),
                [
                    'name' => 'bullet_wrapper_box_bg',
                    'types' => ['classic', 'gradient'],
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );
            $this->add_responsive_control(
                'bullet_wrapper_box_padding',
                [
                    'label' => esc_html__('Padding', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'bullet_wrapper_box_margin',
                [
                    'label' => esc_html__('Margin', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'bullet_wrapper_box_radius',
                [
                    'label' => esc_html__('Border Radius', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => ['px', '%', 'custom'],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'bullet_wrapper_width',
                [
                    'label' => esc_html__( 'Wrapper Width', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'width: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_control(
                '_hr',
                [
                    'type' => Controls_Manager::DIVIDER,
                    'style' => 'thick',
                ]
            );
            $this->add_control(
                'bullet_item_options',
                [
                    'label' => esc_html__('Bullet Item Style', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                ]
            );
            $this->start_controls_tabs('_tabs_slider_dots');
                // Normal Bullet Start
                $this->start_controls_tab(
                    'slider_dots_normal_tab',
                    [
                        'label' => esc_html__('Normal', 'ultimate-tag-cloud'),
                    ]
                );
                    $this->add_control(
                        'navigation_dot_inner_color',
                        [
                            'label' => esc_html__('Inner Dot Color', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::COLOR,
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:after' => 'background: {{VALUE}}',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_inner_dot_height_custom',
                        [
                            'label' => esc_html__('Inner Dot Height', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:after' => 'height: {{SIZE}}{{UNIT}};',
                            ],
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_inner_dot_normal_width_custom',
                        [
                            'label' => esc_html__('Inner Dot Width', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:after' => 'width: {{SIZE}}{{UNIT}};',
                            ],
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_inner_dot_border_radius',
                        [
                            'label' => esc_html__('Inner Dot Radius', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:after' => 'border-radius: {{SIZE}}{{UNIT}};',
                            ],
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Background::get_type(),
                        [
                            'name'     => 'navigation_dot_icon_background',
                            'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet',
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_height_custom',
                        [
                            'label' => esc_html__('Bullet Height', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet' => 'height: {{SIZE}}{{UNIT}};',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_normal_width_custom',
                        [
                            'label' => esc_html__('Bullet Width', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet' => 'width: {{SIZE}}{{UNIT}};',
                            ],
                        ]
                    );
                    $this->add_control(
                        'bullet_border_radius_custom',
                        [
                            'label' => esc_html__('Border Radius', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::DIMENSIONS,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Border::get_type(),
                        [
                            'name' => 'bullet_border_custom',
                            'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet',
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Box_Shadow::get_type(),
                        [
                            'name' => 'bullet_shadow_custom',
                            'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet'
                        ]
                    );
                $this->end_controls_tab();
                // Normal Bullet End

                // Active Bullet Start
                $this->start_controls_tab(
                    'slider_dots_active_tab',
                    [
                        'label' => esc_html__('Active', 'ultimate-tag-cloud'),
                    ]
                );
                    $this->add_control(
                        'navigation_dot_inner_color_active',
                        [
                            'label' => esc_html__('Inner Dot Color', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::COLOR,
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:hover:after,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active:after' => 'background: {{VALUE}}',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_inner_dot_height_custom_active',
                        [
                            'label' => esc_html__('Inner Dot Height', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:hover:after,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:after' => 'height: {{SIZE}}{{UNIT}};',
                            ],
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_inner_dot_active_width_custom',
                        [
                            'label' => esc_html__('Inner Dot Width', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:hover:after,
                                {{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:after' => 'width: {{SIZE}}{{UNIT}};',
                            ],
                            'condition' => [
                                'slider_dots_style' => '2',
                            ],
                        ]
                    );
                    $this->add_group_control(
                        Group_Control_Background::get_type(),
                        [
                            'name'     => 'navigation_dot_icon_background_active',
                            'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:hover, {{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active',
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_active_width_custom',
                        [
                            'label' => esc_html__('Bullet Width', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active' => 'width: {{SIZE}}{{UNIT}};',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_active_height_custom',
                        [
                            'label' => esc_html__('Bullet Height', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'size_units' => ['px', '%', 'custom'],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active' => 'height: {{SIZE}}{{UNIT}};',
                            ],
                        ]
                    );
                    $this->add_responsive_control(
                        'bullet_active_scale_custom',
                        [
                            'label' => esc_html__('Bullet Scale', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::SLIDER,
                            'range' => [
                                'px' => [
                                    'min' => 0,
                                    'max' => 1000,
                                    'step' => 0.1,
                                ],
                            ],
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active' => 'transform: scale({{SIZE}})',
                            ],
                        ]
                    );
                    $this->add_control(
                        'navigation_dot_active_border_color',
                        [
                            'label' => esc_html__('Border Color', 'ultimate-tag-cloud'),
                            'type' => Controls_Manager::COLOR,
                            'selectors' => [
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet:hover' => 'border-color: {{VALUE}};',
                                '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active' => 'border-color: {{VALUE}};',

                            ],
                        ]
                    );
                $this->end_controls_tab();
            $this->end_controls_tabs();
            // Active Bullet End
            $this->add_responsive_control(
                'bullet_spacing_custom_position',
                [
                    'label' => esc_html__('Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'separator' => 'before',
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'top: {{SIZE}}{{UNIT}} !important; bottom: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'bullet_spacing_custom_position_bottom',
                [
                    'label' => esc_html__('Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'default' => [
                        'size' => 0,
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'bottom: {{SIZE}}{{UNIT}} !important; top: unset !important;',
                    ],
                ]
            );
		$this->end_controls_section();

        // Progress Pagination
		$this->start_controls_section(
			'section_slider_style_dots_progress',
			[
				'label' => esc_html__('Bullet Progress Control', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'slider_dots' => 'true',
                    'slider_bullet_type' => 'progressbar'
				]
			]
		);
            $this->add_control(
                'dots_progress_control_heading',
                [
                    'label' => esc_html__( 'Progress Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                ]
            );
            $this->add_responsive_control(
                'dots_progress_width',
                [
                    'label' => esc_html__( 'Width', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'width: {{SIZE}}{{UNIT}} !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_progress_height',
                [
                    'label' => esc_html__( 'Height', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'height: {{SIZE}}{{UNIT}} !important;',
                    ],
                ]
            );
            $this->add_control(
                'dots_progress_track_color',
                [
                    'label' => esc_html__( 'Track Background Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'background-color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_control(
                'dots_progress_color',
                [
                    'label' => esc_html__( 'Progress Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-progressbar-fill' => 'background-color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_progress_radius',
                [
                    'label' => esc_html__( 'Border Radius', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Border::get_type(),
                [
                    'name' => 'dots_progress_border',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );
            $this->add_group_control(
                Group_Control_Box_Shadow::get_type(),
                [
                    'name' => 'dots_progress_box_shadow',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );

            // Position Control
            $this->add_control(
                'dots_progress_control_position_heading',
                [
                    'label' => esc_html__( 'Position Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                    'separator' => 'before',
                ]
            );
            $this->add_responsive_control(
                'dots_progress_position_top',
                [
                    'label' => esc_html__( 'Position Top', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'top: {{SIZE}}{{UNIT}} !important; bottom: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_progress_position_right',
                [
                    'label' => esc_html__( 'Position Right', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'right: {{SIZE}}{{UNIT}} !important; left: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_progress_position_bottom',
                [
                    'label' => esc_html__( 'Position Bottom', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'bottom: {{SIZE}}{{UNIT}} !important; top: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_progress_position_left',
                [
                    'label' => esc_html__( 'Position Left', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'left: {{SIZE}}{{UNIT}} !important; right: unset !important;',
                    ],
                ]
            );
        $this->end_controls_section();

        // Fraction Pagination
		$this->start_controls_section(
			'section_slider_style_dots_fraction',
			[
				'label' => esc_html__('Bullet Fraction Control', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'slider_dots' => 'true',
                    'slider_bullet_type' => 'fraction'
				]
			]
		);
            $this->add_responsive_control(
                'dots_fraction_wrapper_alignments',
                [
                    'label' => esc_html__('Alignment', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::CHOOSE,
                    'options' => [
                        'left' => [
                            'title' => esc_html__('Left', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-left',
                        ],
                        'center' => [
                            'title' => esc_html__('Center', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-center',
                        ],
                        'right' => [
                            'title' => esc_html__('Right', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-right',
                        ],
                        'justify' => [
                            'title' => esc_html__('Justify', 'ultimate-tag-cloud'),
                            'icon' => 'eicon-text-align-justify',
                        ],
                    ],
                    'toggle' => true,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'text-align: {{VALUE}}'
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'dots_fraction_typography',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );
            $this->add_control(
                'dots_fraction_text_color',
                [
                    'label' => esc_html__( 'Text Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_control(
                'dots_fraction_text_color_current',
                [
                    'label' => esc_html__( 'Text Color (Current)', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination .swiper-pagination-current' => 'color: {{VALUE}}',
                    ],
                ]
            );

            $this->add_responsive_control(
                'dots_fraction_wrapper_width',
                [
                    'label' => esc_html__('Width', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'width: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_wrapper_height',
                [
                    'label' => esc_html__('Height', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'height: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_wrapper_padding',
                [
                    'label' => esc_html__( 'Padding', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_wrapper_radius',
                [
                    'label' => esc_html__( 'Border Radius', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Background::get_type(),
                [
                    'name' => 'dots_fraction_wrapper_background',
                    'types' => [ 'classic', 'gradient' ],
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );
            $this->add_group_control(
                Group_Control_Border::get_type(),
                [
                    'name' => 'dots_fraction_wrapper_border',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );
            $this->add_group_control(
                Group_Control_Box_Shadow::get_type(),
                [
                    'name' => 'dots_fraction_wrapper_box_shadow',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination',
                ]
            );

            // Position Control
            $this->add_control(
                'dots_fraction_control_position_heading',
                [
                    'label' => esc_html__( 'Position Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                    'separator' => 'before',
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_position_top',
                [
                    'label' => esc_html__('Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'top: {{SIZE}}{{UNIT}} !important; bottom: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_position_right',
                [
                    'label' => esc_html__('Right Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'right: {{SIZE}}{{UNIT}} !important; left: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_position_bottom',
                [
                    'label' => esc_html__('Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'bottom: {{SIZE}}{{UNIT}} !important; top: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'dots_fraction_position_left',
                [
                    'label' => esc_html__('Left Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-pagination' => 'left: {{SIZE}}{{UNIT}} !important; right: unset !important;',
                    ],
                ]
            );
        $this->end_controls_section();

        // Autoplay Progress
		$this->start_controls_section(
			'section_slider_autoplay_progress',
			[
				'label' => esc_html__('Autoplay Progress Control', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'slider_autoplay' => 'true',
                    'slide_item_circle_progress' => 'true'
				]
			]
		);
            $this->add_control(
                'autoplay_progress_circle_heading',
                [
                    'label' => esc_html__( 'Circle Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                ]
            );
            $this->add_responsive_control(
                'autoplay_progress_size',
                [
                    'label' => esc_html__( 'Size', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_responsive_control(
                'autoplay_progress_stroke_width',
                [
                    'label' => esc_html__( 'Stroke Width', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress svg' => 'stroke-width: {{SIZE}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_control(
                'autoplay_progress_stroke_color',
                [
                    'label' => esc_html__( 'Stroke Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress svg' => 'stroke: {{VALUE}}',
                    ],
                ]
            );
            $this->add_control(
                'autoplay_progress_stroke_color_solid',
                [
                    'label' => esc_html__( 'Stroke Color (Solid)', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress svg circle.normal' => 'stroke: {{VALUE}}',
                    ],
                ]
            );
            $this->add_control(
                'autoplay_progress_bg_color',
                [
                    'label' => esc_html__( 'Background Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress svg' => 'fill: {{VALUE}}',
                    ],
                ]
            );

            // Number Control
            $this->add_control(
                'autoplay_progress_number_heading',
                [
                    'label' => esc_html__( 'Number Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                    'separator' => 'before',
                ]
            );
            $this->add_group_control(
                Group_Control_Typography::get_type(),
                [
                    'name' => 'autoplay_progress_number_typography',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress',
                ]
            );
            $this->add_control(
                'autoplay_progress_number_color',
                [
                    'label' => esc_html__( 'Text Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress' => 'color: {{VALUE}}',
                    ],
                ]
            );

            // Position Control
            $this->add_control(
                'autoplay_progress_position_heading',
                [
                    'label' => esc_html__( 'Position Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                    'separator' => 'before',
                ]
            );
            $this->add_responsive_control(
                'autoplay_progress_position_top',
                [
                    'label' => esc_html__('Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress' => 'top: {{SIZE}}{{UNIT}} !important; bottom: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'autoplay_progress_position_right',
                [
                    'label' => esc_html__('Right Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress' => 'right: {{SIZE}}{{UNIT}} !important; left: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'autoplay_progress_position_bottom',
                [
                    'label' => esc_html__('Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress' => 'bottom: {{SIZE}}{{UNIT}} !important; top: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'autoplay_progress_position_left',
                [
                    'label' => esc_html__('Left Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .autoplay-progress' => 'left: {{SIZE}}{{UNIT}} !important; right: unset !important;',
                    ],
                ]
            );
        $this->end_controls_section();

        // Scrollbar
		$this->start_controls_section(
			'section_slider_scrollbar',
			[
				'label' => esc_html__('Scrollbar Control', 'ultimate-tag-cloud'),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'slider_scrollbar' => 'true'
				]
			]
		);
            $this->add_responsive_control(
                'scrollbar_width',
                [
                    'label' => esc_html__( 'Width', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'width: {{SIZE}}{{UNIT}} !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'scrollbar_height',
                [
                    'label' => esc_html__( 'Height', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'range' => [
                        'px' => [
                            'min' => 0,
                            'max' => 1000
                        ],
                        '%' => [
                            'min' => 0,
                            'max' => 100,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'height: {{SIZE}}{{UNIT}} !important;',
                    ],
                ]
            );
            $this->add_control(
                'scrollbar_track_color',
                [
                    'label' => esc_html__( 'Track Background Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'background-color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_control(
                'scrollbar_color',
                [
                    'label' => esc_html__( 'Scrollbar Color', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::COLOR,
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar .swiper-scrollbar-drag' => 'background-color: {{VALUE}}',
                    ],
                ]
            );
            $this->add_responsive_control(
                'scrollbar_margin',
                [
                    'label' => esc_html__( 'Margin', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::DIMENSIONS,
                    'size_units' => [ 'px', '%', 'custom' ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
                    ],
                ]
            );
            $this->add_group_control(
                Group_Control_Border::get_type(),
                [
                    'name' => 'scrollbar_border',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar',
                ]
            );
            $this->add_group_control(
                Group_Control_Box_Shadow::get_type(),
                [
                    'name' => 'scrollbar_box_shadow',
                    'selector' => '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar',
                ]
            );
            // Position Control
            $this->add_control(
                'scrollbar_position_heading',
                [
                    'label' => esc_html__( 'Position Options', 'ultimate-tag-cloud' ),
                    'type' => Controls_Manager::HEADING,
                    'classes' => 'fpg-control-type-heading',
                    'separator' => 'before',
                ]
            );
            $this->add_responsive_control(
                'scrollbar_position_top',
                [
                    'label' => esc_html__('Top Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'top: {{SIZE}}{{UNIT}} !important; bottom: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'scrollbar_position_right',
                [
                    'label' => esc_html__('Right Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'right: {{SIZE}}{{UNIT}} !important; left: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'scrollbar_position_bottom',
                [
                    'label' => esc_html__('Bottom Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'bottom: {{SIZE}}{{UNIT}} !important; top: unset !important;',
                    ],
                ]
            );
            $this->add_responsive_control(
                'scrollbar_position_left',
                [
                    'label' => esc_html__('Left Position', 'ultimate-tag-cloud'),
                    'type' => Controls_Manager::SLIDER,
                    'size_units' => ['px', '%', 'custom'],
                    'show_label' => true,
                    'range' => [
                        'px' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                        '%' => [
                            'min' => -1000,
                            'max' => 1000,
                        ],
                    ],
                    'selectors' => [
                        '{{WRAPPER}} .ultimate-tag-cloud .swiper-scrollbar' => 'left: {{SIZE}}{{UNIT}} !important; right: unset !important;',
                    ],
                ]
            );
        $this->end_controls_section();
    }

    /**
     * Render Widget Content to Frontend.
     *
     * @since 1.0.0
     * @access protected
     */
    protected function render() {
        $settings = $this->get_settings_for_display();
        $id = 'uni-'.$this->get_id();
        
        $tag_style = $settings['tag_style'];
        $ribbon_style = !empty($settings['ribbon_style']) ? 'ribbon-'.$settings['ribbon_style'] : '';
        $post_type = $settings['post_type_filter'];
        $selected_taxonomy = $settings['filter_tabs_type'];
        $order_by = $settings['order_by'] ;
        $order = $settings['order'];
        $hide_empty = $settings['hide_empty'] === 'false' ? false : true;
        $item_limit = $settings['item_limit'];
        $taxonomies = get_object_taxonomies($post_type, 'names');
    
        if ($selected_taxonomy === 'category' && in_array('category', $taxonomies)) {
            $taxonomies = ['category'];
        } elseif ($selected_taxonomy === 'tag' && in_array('post_tag', $taxonomies)) {
            $taxonomies = ['post_tag'];
        }
    
        $words_array = [];
        
        $cssVarColors = '';
        $cssVarNumber = '';
        $randColorCls = $settings['random_color'] === 'yes' ? 'rand-color' : '';
        $randSizeCls = $settings['random_size'] === 'yes' ? 'rand-size' : '';

        if ('slider' === $settings['layout']) {
            $sliderDots = $settings['slider_dots'] == 'true' ? 'true' : 'false';
            $sliderNav = $settings['slider_nav'] == 'true' ? 'true' : 'false';
            if ($sliderNav == 'true') {
                $sliderNavStyleCls = !empty($settings['slider_nav_style']) ? 'nav-style-' . $settings['slider_nav_style'] : '';
                $sliderNavIconCls = !empty($settings['slider_nav_icon_style']) ? 'nav-icon-' . $settings['slider_nav_icon_style'] : '';
                $sliderNavCls = $sliderNavStyleCls . ' ' . $sliderNavIconCls;
            } else {
                $sliderNavCls = '';
            }
            $sliderDotsCls = ($sliderDots == 'true') ? 'swiper-dots-'.$settings['slider_dots_style'] : '';
            $rtl = ('right' === $settings['slider_direction']) ? 'rtl' : 'ltr';

            $swiperCls = 'swiper';
            $swiperWrapperCls = 'swiper-wrapper';
            $slItemCls = 'swiper-slide';
            $this->add_render_attribute( 'utc_parent', [
                'id' => $id,
                'class' => [
                    'ultimate-tag-cloud',
                    $sliderNavCls,
                    $sliderDotsCls
                ]
            ]);
            $this->add_render_attribute( 'utc_main', [
                'class' => [
                    $swiperCls,
                    'ultimate-tag-cloud-container',
                    'style-'.$tag_style,
                    $ribbon_style
                ],
                'dir' => $rtl
            ]);
        } else {
            $swiperCls = '';
            $swiperWrapperCls = '';
            $slItemCls = '';
            $this->add_render_attribute( 'utc_parent', [
                'id' => $id,
                'class' => [
                    'ultimate-tag-cloud'
                ]
            ]);
            $this->add_render_attribute( 'utc_main', [
                'class' => [
                    $swiperCls,
                    'ultimate-tag-cloud-container',
                    'style-'.$tag_style,
                    $ribbon_style
                ],
            ]);
        }
    
        foreach ($taxonomies as $taxonomy) {
            $terms = get_terms([
                'taxonomy'   => $taxonomy,
                'hide_empty' => $hide_empty,
                'orderby'    => $order_by,
                'order'      => $order,
                'number'     => $item_limit,
            ]);
    
            if (!is_wp_error($terms) && !empty($terms)) {
                foreach ($terms as $term) {
                    $term_link = get_term_link($term);
    
                    if (!is_wp_error($term_link)) {
                        $rand_color = $this->get_random_color();
                        $rand_color_high = $this->make_color_high($rand_color);
                        $rand_number = $this->get_random_number($settings['min_size'], $settings['max_size']);
                        $words_array[] = [
                            'name'  => $term->name,
                            'show_count' => $settings['show_count'] === 'yes' ? true : false,
                            'count' => $term->count,
                            'link'  => $term_link,
                            'cls_rand_color' => $randColorCls,
                            'rand_color' => $rand_color,
                            'rand_color_high' => $rand_color_high,
                            'cls_rand_number' => $randSizeCls,
                            'rand_number' => $rand_number,
                        ];
                    }
                }
            }
        }
        if (empty($words_array)) {
            return;
        }

        if ($order_by === 'random') {
            shuffle($words_array);
        }
        ?>
        <div <?php $this->print_render_attribute_string( 'utc_parent' ); ?>>
            <div <?php $this->print_render_attribute_string( 'utc_main' ); ?>>
                <div class="ultimate-tag-cloud-words <?php echo esc_attr($tag_style.' '.$swiperWrapperCls); ?>">
                    <?php foreach ($words_array as $word) :
                        if ($settings['random_color'] === 'yes') {
                            $cssVarColors = '--colorNormal: '.$word['rand_color'].'; --colorHigh: '.$word['rand_color_high'].';';
                        }
                        if ($settings['random_size'] === 'yes') {
                            $cssVarNumber = '--randSize: '.$word['rand_number'].'px;';
                        }
                    ?>
                        <div class="<?php echo esc_attr($slItemCls.' '.$randColorCls.' '.$randSizeCls); ?> tag-word-wrap" style="<?php echo esc_attr($cssVarColors); ?> <?php echo esc_attr($cssVarNumber); ?>">
                            <a href="<?php echo esc_url($word['link']); ?>" class="ultimate-tag-cloud-word" title="<?php echo esc_attr($word['name']); ?>">
                                <?php echo esc_html($word['name']); ?> <?php if ($settings['show_count'] === 'yes') { ?> <span class="tag-count">(<?php echo esc_html($word['count']); ?>)</span> <?php } ?>
                            </a>
                        </div>
                    <?php endforeach;?>
                </div>
            </div>
            <?php $this->render_sl_nav_content(); ?>
        </div>
        <?php
    }

    /**
     * Get Random Number
     */
    private function get_random_number($min, $max) {
        return wp_rand($min, $max);
    }

    /**
     * Get Random Color
     */
    private function get_random_color() {
        $settings = $this->get_settings_for_display();
        $custom_colors_input = $settings['random_color_options'];

        $custom_colors = [];
        if (!empty($custom_colors_input)) {
            $hex_colors = array_map('trim', explode(',', $custom_colors_input));

            foreach ($hex_colors as $hex) {
                if (preg_match('/^#?[a-fA-F0-9]{6}$/', $hex)) {
                    $custom_colors[] = $this->hex_to_rgb($hex);
                }
            }
        }
        if (!empty($custom_colors)) {
            return $custom_colors[array_rand($custom_colors)];
        }

        $r = wp_rand(80, 220);
        $g = wp_rand(80, 220);
        $b = wp_rand(80, 220);
    
        return "$r, $g, $b";
    }
    private function hex_to_rgb($hex) {
        $hex = ltrim($hex, '#');
    
        if (strlen($hex) === 6) {
            list($r, $g, $b) = sscanf($hex, "%02x%02x%02x");
            return "$r, $g, $b";
        }
    
        return "0, 0, 0";
    }
    private function make_color_high($rgb) {
        list($r, $g, $b) = explode(', ', $rgb);
        $r = min(255, intval($r * 0.6));
        $g = min(255, intval($g * 0.6));
        $b = min(255, intval($b * 0.6));
        return "$r, $g, $b";
    }

    // Slider Nav
    protected function render_sl_nav_content() {
        $settings = $this->get_settings_for_display();
        if ('true' === $settings['slider_nav']) {
            if ('2' === $settings['slider_nav_style']) { ?>
                <div class="swiper-btn-wrapper">
                    <div class="swiper-button-prev"></div>
                    <div class="swiper-button-next"></div>
                </div>
            <?php } else { ?>
                <div class="swiper-button-prev"></div>
                <div class="swiper-button-next"></div>
            <?php }
        }
        if ('true' === $settings['slider_dots']) { ?>
            <div class="swiper-pagination"></div>
        <?php }
        if ('true' === $settings['slider_scrollbar']) { ?>
            <div class="swiper-scrollbar"></div>
        <?php }
        if ('true' === $settings['slide_item_circle_progress']) { ?>
            <div class="autoplay-progress">
                <svg viewBox="0 0 48 48">
                    <circle class="normal" cx="24" cy="24" r="20"></circle>
                    <circle cx="24" cy="24" r="20"></circle>
                </svg>
                <span></span>
            </div>
        <?php }
    }
}