PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.83
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.83
51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 All 39 releases
← All changes | includes/widgets/Slider/Slider.php +3310 -0 51.1.251.1.83 View file →
@@ -1,0 +1,3310 @@
1 +<?php
2 +
3 +namespace King_Addons;
4 +
5 +use Elementor;
6 +use Elementor\Widget_Base;
7 +use Elementor\Controls_Manager;
8 +use Elementor\Group_Control_Typography;
9 +use Elementor\Group_Control_Background;
10 +use Elementor\Group_Control_Image_Size;
11 +use Elementor\Group_Control_Box_Shadow;
12 +use Elementor\Repeater;
13 +use Elementor\Icons_Manager;
14 +use Elementor\Modules\DynamicTags\Module as TagsModule;
15 +
16 +if (!defined('ABSPATH')) {
17 + exit;
18 +}
19 +
20 +class Slider extends Widget_Base
21 +{
22 +
23 + public function get_name()
24 + {
25 + return 'king-addons-slider';
26 + }
27 +
28 + public function get_title()
29 + {
30 + return esc_html__('Slider/Carousel', 'king-addons');
31 + }
32 +
33 + public function get_icon()
34 + {
35 + return 'king-addons-icon king-addons-slider';
36 + }
37 +
38 + public function get_categories()
39 + {
40 + return ['king-addons'];
41 + }
42 +
43 + public function get_keywords()
44 + {
45 + return ['king addons', 'king', 'addons', 'kingaddons', 'king-addons', 'image', 'images', 'media', 'content',
46 + 'slider', 'carousel', 'post', 'posts', 'image slider', 'slideshow', 'slick',
47 + 'image carousel', 'template slider', 'posts slider'];
48 + }
49 +
50 + public function get_script_depends()
51 + {
52 + return [
53 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-imagesloaded-imagesloaded',
54 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-slick-slick',
55 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-slider-script'
56 + ];
57 + }
58 +
59 + public function get_style_depends()
60 + {
61 + return [
62 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-slick-helper',
63 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-general',
64 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-timing',
65 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-slider-style',
66 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-general-general',
67 + ];
68 + }
69 +
70 + public function get_custom_help_url()
71 + {
72 + return 'mailto:bug@kingaddons.com?subject=Bug Report - King Addons&body=Please describe the issue';
73 + }
74 +
75 + public function add_control_slider_effect()
76 + {
77 + $this->add_control(
78 + 'slider_effect',
79 + [
80 + 'type' => Controls_Manager::SELECT,
81 + 'label' => esc_html__('Effect', 'king-addons'),
82 + 'default' => 'slide',
83 + 'options' => [
84 + 'slide' => esc_html__('Slide', 'king-addons'),
85 + 'sl_vl' => esc_html__('Sl Vertical (Pro)', 'king-addons'),
86 + 'fade' => esc_html__('Fade', 'king-addons'),
87 + ],
88 + 'separator' => 'before'
89 + ]
90 + );
91 + }
92 +
93 + public function add_control_slider_nav_hover()
94 + {
95 + $this->add_control(
96 + 'slider_nav_hover',
97 + [
98 + 'label' => sprintf(__('Show on Hover %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
99 + 'type' => Controls_Manager::SWITCHER,
100 + 'classes' => 'king-addons-pro-control no-distance'
101 + ]
102 + );
103 + }
104 +
105 + public function add_control_slider_dots_layout()
106 + {
107 + $this->add_control(
108 + 'slider_dots_layout',
109 + [
110 + 'label' => esc_html__('Pagination Layout', 'king-addons'),
111 + 'type' => Controls_Manager::SELECT,
112 + 'default' => 'horizontal',
113 + 'options' => [
114 + 'horizontal' => esc_html__('Horizontal', 'king-addons'),
115 + 'pro-vr' => esc_html__('Vertical (Pro)', 'king-addons'),
116 + ],
117 + 'prefix_class' => 'king-addons-slider-dots-',
118 + 'render_type' => 'template',
119 + ]
120 + );
121 + }
122 +
123 + public function add_control_slider_autoplay()
124 + {
125 + $this->add_control(
126 + 'slider_autoplay',
127 + [
128 + 'label' => sprintf(__('Autoplay %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
129 + 'type' => Controls_Manager::SWITCHER,
130 + 'separator' => 'before',
131 + 'classes' => 'king-addons-pro-control'
132 + ]
133 + );
134 + }
135 +
136 + public function add_control_slider_autoplay_duration()
137 + {
138 + }
139 +
140 + public function add_control_slider_pause_on_hover()
141 + {
142 + $this->add_control(
143 + 'pause_on_hover',
144 + [
145 + 'label' => sprintf(__('Pause on Hover %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
146 + 'type' => Controls_Manager::SWITCHER,
147 + 'classes' => 'king-addons-pro-control no-distance'
148 + ]
149 + );
150 + }
151 +
152 + public function add_control_slider_scroll_btn()
153 + {
154 + $this->add_control(
155 + 'slider_scroll_btn',
156 + [
157 + 'label' => sprintf(__('Scroll to Section Button %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
158 + 'type' => Controls_Manager::SWITCHER,
159 + 'separator' => 'before',
160 + 'classes' => 'king-addons-pro-control'
161 + ]
162 + );
163 + }
164 +
165 + public function add_repeater_args_slider_item_bg_kenburns()
166 + {
167 + return [
168 + 'label' => sprintf(__('Ken Burn Effect %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
169 + 'type' => Controls_Manager::SWITCHER,
170 + 'separator' => 'before',
171 + 'conditions' => [
172 + 'terms' => [
173 + [
174 + 'name' => 'slider_item_bg_image[url]',
175 + 'operator' => '!=',
176 + 'value' => '',
177 + ],
178 + ],
179 + ],
180 + 'classes' => 'king-addons-pro-control'
181 + ];
182 + }
183 +
184 + public function add_repeater_args_slider_item_bg_zoom()
185 + {
186 + return [
187 + 'type' => Controls_Manager::HIDDEN,
188 + 'default' => ''
189 + ];
190 + }
191 +
192 + public function add_repeater_args_slider_content_type()
193 + {
194 + return [
195 + 'custom' => esc_html__('Custom', 'king-addons'),
196 + 'pro-tm' => esc_html__('Elementor Template (Pro)', 'king-addons'),
197 + ];
198 + }
199 +
200 + public function add_repeater_args_slider_select_template()
201 + {
202 + return [
203 + 'type' => Controls_Manager::HIDDEN,
204 + 'default' => ''
205 + ];
206 + }
207 +
208 + public function add_repeater_args_slider_item_link_type()
209 + {
210 + return [
211 + 'label' => esc_html__('Link Type', 'king-addons'),
212 + 'type' => Controls_Manager::SELECT,
213 + 'default' => 'none',
214 + 'options' => [
215 + 'none' => esc_html__('None', 'king-addons'),
216 + 'pro-cstm' => esc_html__('Custom URL (Pro)', 'king-addons'),
217 + 'pro-yt' => esc_html__('Youtube (Pro)', 'king-addons'),
218 + 'pro-vm' => esc_html__('Vimeo (Pro)', 'king-addons'),
219 + 'pro-md' => esc_html__('Custom Video (Pro)', 'king-addons')
220 + ],
221 + 'condition' => [
222 + 'slider_content_type' => 'custom'
223 + ],
224 + 'separator' => 'before'
225 + ];
226 + }
227 +
228 + public function add_section_style_scroll_btn()
229 + {
230 + }
231 +
232 + public function add_control_slider_amount()
233 + {
234 + $this->add_responsive_control(
235 + 'slider_amount',
236 + [
237 + 'label' => esc_html__('Columns (Carousel)', 'king-addons'),
238 + 'type' => Controls_Manager::SELECT,
239 + 'label_block' => false,
240 + 'default' => 1,
241 + 'widescreen_default' => 1,
242 + 'laptop_default' => 1,
243 + 'tablet_extra_default' => 1,
244 + 'tablet_default' => 1,
245 + 'mobile_extra_default' => 1,
246 + 'mobile_default' => 1,
247 + 'options' => [
248 + 1 => esc_html__('One', 'king-addons'),
249 + 2 => esc_html__('Two', 'king-addons'),
250 + 'pro-3' => esc_html__('Three (Pro)', 'king-addons'),
251 + 'pro-4' => esc_html__('Four (Pro)', 'king-addons'),
252 + 'pro-5' => esc_html__('Five (Pro)', 'king-addons'),
253 + 'pro-6' => esc_html__('Six (Pro)', 'king-addons'),
254 + ],
255 + 'prefix_class' => 'king-addons-adv-slider-columns-%s',
256 + 'render_type' => 'template',
257 + 'frontend_available' => true,
258 + 'separator' => 'before',
259 + 'condition' => [
260 + 'slider_effect!' => 'slide_vertical'
261 + ]
262 + ]
263 + );
264 + }
265 +
266 + public function add_control_slides_to_scroll()
267 + {
268 + $this->add_control(
269 + 'slides_to_scroll',
270 + [
271 + 'label' => esc_html__('Slides to Scroll', 'king-addons'),
272 + 'type' => Controls_Manager::NUMBER,
273 + 'min' => 1,
274 + 'max' => 2,
275 + 'prefix_class' => 'king-addons-adv-slides-to-scroll-',
276 + 'render_type' => 'template',
277 + 'frontend_available' => true,
278 + 'default' => 1,
279 + 'condition' => [
280 + 'slider_effect!' => 'slide_vertical'
281 + ]
282 + ]
283 + );
284 + }
285 +
286 + public function add_control_stack_slider_nav_position()
287 + {
288 + }
289 +
290 + public function add_control_slider_dots_hr()
291 + {
292 + }
293 +
294 + protected function register_controls()
295 + {
296 +
297 +
298 + $this->start_controls_section(
299 + 'settings_section_slides',
300 + [
301 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Slides', 'king-addons'),
302 + ]
303 + );
304 +
305 + $repeater = new Repeater();
306 +
307 + $repeater->add_control(
308 + 'slider_content_type',
309 + [
310 + 'label' => esc_html__('Content Type', 'king-addons'),
311 + 'type' => Controls_Manager::SELECT,
312 + 'default' => 'custom',
313 + 'options' => $this->add_repeater_args_slider_content_type(),
314 + 'render_type' => 'template'
315 + ]
316 + );
317 +
318 + Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'slider', 'slider_content_type', ['pro-tm']);
319 +
320 + $repeater->add_control('slider_select_template', $this->add_repeater_args_slider_select_template());
321 +
322 + $repeater->add_control(
323 + 'slider_content_type_divider',
324 + [
325 + 'type' => Controls_Manager::DIVIDER,
326 + 'style' => 'thick',
327 + ]
328 + );
329 +
330 + $repeater->start_controls_tabs('tabs_slider_item');
331 +
332 + $repeater->start_controls_tab(
333 + 'tab_slider_item_background',
334 + [
335 + 'label' => esc_html__('Background', 'king-addons'),
336 + ]
337 + );
338 +
339 + $repeater->add_control(
340 + 'slider_item_bg_image',
341 + [
342 + 'label' => esc_html__('Image', 'king-addons'),
343 + 'type' => Controls_Manager::MEDIA,
344 + 'dynamic' => [
345 + 'active' => true,
346 + ]
347 + ]
348 + );
349 +
350 + $repeater->add_control(
351 + 'slider_item_bg_size',
352 + [
353 + 'label' => esc_html__('Size', 'king-addons'),
354 + 'type' => Controls_Manager::SELECT,
355 + 'default' => 'cover',
356 + 'options' => [
357 + 'cover' => esc_html__('Cover', 'king-addons'),
358 + 'contain' => esc_html__('Contain', 'king-addons'),
359 + 'auto' => esc_html__('Auto', 'king-addons'),
360 + ],
361 + 'selectors' => [
362 + '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-item-bg' => 'background-size: {{VALUE}}',
363 + ],
364 +
365 +
366 + ]
367 + );
368 +
369 + $repeater->add_control('slider_item_link_type', $this->add_repeater_args_slider_item_link_type());
370 +
371 +
372 + Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'slider', 'slider_item_link_type', ['pro-cstm', 'pro-yt', 'pro-vm', 'pro-md']);
373 +
374 + $repeater->add_control(
375 + 'vimeo_notice',
376 + [
377 + 'type' => Controls_Manager::RAW_HTML,
378 + 'raw' => 'Please Upload Background Image',
379 + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
380 + 'condition' => [
381 + 'slider_item_link_type' => 'video-vimeo'
382 + ]
383 + ]
384 + );
385 +
386 + $repeater->add_control(
387 + 'slider_item_bg_image_url',
388 + [
389 + 'type' => Controls_Manager::URL,
390 + 'dynamic' => [
391 + 'active' => true,
392 + ],
393 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
394 + 'show_label' => false,
395 + 'condition' => [
396 + 'slider_item_link_type' => 'custom',
397 + ],
398 + ]
399 + );
400 +
401 + $repeater->add_control(
402 + 'hosted_url',
403 + [
404 + 'label' => esc_html__('Choose File', 'elementor'),
405 + 'type' => Controls_Manager::MEDIA,
406 + 'dynamic' => [
407 + 'active' => true,
408 + 'categories' => [
409 + TagsModule::MEDIA_CATEGORY,
410 + ],
411 + ],
412 + 'media_type' => 'video',
413 + 'condition' => [
414 + 'slider_content_type' => 'custom',
415 + 'slider_item_link_type' => 'video-media',
416 + ],
417 + 'ai' => [
418 + 'active' => false,
419 + ],
420 + ]
421 + );
422 +
423 + $repeater->add_control(
424 + 'slider_item_video_src',
425 + [
426 + 'label' => esc_html__('Video URL', 'king-addons'),
427 + 'type' => Controls_Manager::TEXT,
428 + 'dynamic' => [
429 + 'active' => true,
430 + ],
431 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
432 + 'condition' => [
433 + 'slider_content_type' => 'custom',
434 + 'slider_item_link_type' => ['video-youtube', 'video-vimeo'],
435 + ],
436 + ]
437 + );
438 +
439 + $repeater->add_control(
440 + 'slider_item_video_autoplay',
441 + [
442 + 'label' => esc_html__('Autoplay', 'king-addons'),
443 + 'type' => Controls_Manager::SWITCHER,
444 + 'condition' => [
445 + 'slider_content_type' => 'custom',
446 + 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
447 + ],
448 + ]
449 + );
450 +
451 + $repeater->add_control(
452 + 'slider_item_video_loop',
453 + [
454 + 'label' => esc_html__('Loop', 'king-addons'),
455 + 'type' => Controls_Manager::SWITCHER,
456 + 'condition' => [
457 + 'slider_content_type' => 'custom',
458 + 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
459 + ],
460 + ]
461 + );
462 +
463 + $repeater->add_control(
464 + 'slider_item_video_mute',
465 + [
466 + 'label' => esc_html__('Mute', 'king-addons'),
467 + 'type' => Controls_Manager::SWITCHER,
468 + 'condition' => [
469 + 'slider_content_type' => 'custom',
470 + 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
471 + ],
472 + ]
473 + );
474 +
475 + $repeater->add_control(
476 + 'slider_item_video_controls',
477 + [
478 + 'label' => esc_html__('Controls', 'king-addons'),
479 + 'type' => Controls_Manager::SWITCHER,
480 + 'condition' => [
481 + 'slider_content_type' => 'custom',
482 + 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
483 + ],
484 + ]
485 + );
486 +
487 + $repeater->add_control(
488 + 'slider_item_video_start',
489 + [
490 + 'label' => esc_html__('Start Time', 'king-addons'),
491 + 'type' => Controls_Manager::NUMBER,
492 + 'min' => 0,
493 + 'description' => esc_html__('Specify a start time (in seconds)', 'king-addons'),
494 + 'frontend_available' => true,
495 + 'condition' => [
496 + 'slider_content_type' => 'custom',
497 + 'slider_item_link_type' => ['video-youtube', 'video-vimeo'],
498 + 'slider_item_video_loop!' => 'yes',
499 + ],
500 + ]
501 + );
502 +
503 + $repeater->add_control(
504 + 'slider_item_video_end',
505 + [
506 + 'label' => esc_html__('End Time', 'king-addons'),
507 + 'type' => Controls_Manager::NUMBER,
508 + 'min' => 0,
509 + 'description' => esc_html__('Specify an end time (in seconds)', 'king-addons'),
510 + 'frontend_available' => true,
511 + 'condition' => [
512 + 'slider_content_type' => 'custom',
513 + 'slider_item_link_type' => 'video-youtube',
514 + 'slider_item_video_loop!' => 'yes',
515 + ],
516 + ]
517 + );
518 +
519 + $repeater->add_control('slider_item_bg_kenburns', $this->add_repeater_args_slider_item_bg_kenburns());
520 +
521 + $repeater->add_control('slider_item_bg_zoom', $this->add_repeater_args_slider_item_bg_zoom());
522 +
523 + $repeater->add_control(
524 + 'overlay_divider',
525 + [
526 + 'type' => Controls_Manager::DIVIDER,
527 + 'style' => 'thick',
528 + ]
529 + );
530 +
531 + $repeater->add_control(
532 + 'slider_item_overlay',
533 + [
534 + 'label' => esc_html__('Background Overlay', 'king-addons'),
535 + 'type' => Controls_Manager::SWITCHER,
536 + 'default' => 'yes',
537 + 'render_type' => 'template',
538 + 'condition' => [
539 + 'slider_content_type' => 'custom'
540 + ]
541 + ]
542 + );
543 +
544 + $repeater->add_control(
545 + 'slider_item_overlay_bg',
546 + [
547 + 'label' => esc_html__('Color', 'king-addons'),
548 + 'type' => Controls_Manager::COLOR,
549 + 'default' => 'rgba(236,64,122,0.8)',
550 + 'selectors' => [
551 + '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-item-overlay' => 'background-color: {{VALUE}}',
552 + ],
553 + 'condition' => [
554 + 'slider_item_overlay' => 'yes',
555 + 'slider_content_type' => 'custom'
556 + ],
557 + ]
558 + );
559 +
560 + $repeater->add_control(
561 + 'slider_item_blend_mode',
562 + [
563 + 'label' => esc_html__('Blend Mode', 'king-addons'),
564 + 'type' => Controls_Manager::SELECT,
565 + 'default' => 'normal',
566 + 'options' => [
567 + 'normal' => esc_html__('Normal', 'king-addons'),
568 + 'multiply' => esc_html__('Multiply', 'king-addons'),
569 + 'screen' => esc_html__('Screen', 'king-addons'),
570 + 'overlay' => esc_html__('Overlay', 'king-addons'),
571 + 'darken' => esc_html__('Darken', 'king-addons'),
572 + 'lighten' => esc_html__('Lighten', 'king-addons'),
573 + 'color-dodge' => esc_html__('Color-dodge', 'king-addons'),
574 + 'color-burn' => esc_html__('Color-burn', 'king-addons'),
575 + 'hard-light' => esc_html__('Hard-light', 'king-addons'),
576 + 'soft-light' => esc_html__('Soft-light', 'king-addons'),
577 + 'difference' => esc_html__('Difference', 'king-addons'),
578 + 'exclusion' => esc_html__('Exclusion', 'king-addons'),
579 + 'hue' => esc_html__('Hue', 'king-addons'),
580 + 'saturation' => esc_html__('Saturation', 'king-addons'),
581 + 'color' => esc_html__('Color', 'king-addons'),
582 + 'luminosity' => esc_html__('luminosity', 'king-addons'),
583 + ],
584 + 'render_type' => 'template',
585 + 'selectors' => [
586 + '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-item-overlay' => 'mix-blend-mode: {{VALUE}}',
587 + ],
588 + 'condition' => [
589 + 'slider_item_overlay' => 'yes',
590 + 'slider_content_type' => 'custom'
591 + ],
592 + ]
593 + );
594 +
595 + $repeater->end_controls_tab();
596 +
597 + $repeater->start_controls_tab(
598 + 'tab_slider_item_content',
599 + [
600 + 'label' => esc_html__('Content', 'king-addons'),
601 + ]
602 + );
603 +
604 + $repeater->add_control(
605 + 'slider_show_content',
606 + [
607 + 'label' => esc_html__('Show Sldier Content', 'king-addons'),
608 + 'type' => Controls_Manager::SWITCHER,
609 + 'default' => 'yes',
610 + 'separator' => 'after'
611 + ]
612 + );
613 +
614 + $repeater->add_control(
615 + 'slider_title_tag',
616 + [
617 + 'label' => esc_html__('Title HTML Tag', 'king-addons'),
618 + 'type' => Controls_Manager::SELECT,
619 + 'options' => [
620 + 'h1' => esc_html__('H1', 'king-addons'),
621 + 'h2' => esc_html__('H2', 'king-addons'),
622 + 'h3' => esc_html__('H3', 'king-addons'),
623 + 'h4' => esc_html__('H4', 'king-addons'),
624 + 'h5' => esc_html__('H5', 'king-addons'),
625 + 'h6' => esc_html__('H6', 'king-addons'),
626 + 'div' => 'div',
627 + 'span' => 'span',
628 + 'P' => 'p'
629 + ],
630 + 'default' => 'h2',
631 + 'condition' => [
632 + 'slider_show_content' => 'yes',
633 + ]
634 + ]
635 + );
636 +
637 + $repeater->add_control(
638 + 'slider_item_title',
639 + [
640 + 'label' => esc_html__('Title', 'king-addons'),
641 + 'type' => Controls_Manager::TEXT,
642 + 'dynamic' => [
643 + 'active' => true,
644 + ],
645 + 'default' => 'Slide Title',
646 + 'condition' => [
647 + 'slider_show_content' => 'yes',
648 + ],
649 + ]
650 + );
651 +
652 + $repeater->add_control(
653 + 'slider_sub_title_tag',
654 + [
655 + 'label' => esc_html__('Sub Title HTML Tag', 'king-addons'),
656 + 'type' => Controls_Manager::SELECT,
657 + 'options' => [
658 + 'h1' => esc_html__('H1', 'king-addons'),
659 + 'h2' => esc_html__('H2', 'king-addons'),
660 + 'h3' => esc_html__('H3', 'king-addons'),
661 + 'h4' => esc_html__('H4', 'king-addons'),
662 + 'h5' => esc_html__('H5', 'king-addons'),
663 + 'h6' => esc_html__('H6', 'king-addons'),
664 + 'div' => 'div',
665 + 'span' => 'span',
666 + 'P' => 'p'
667 + ],
668 + 'default' => 'h3',
669 + 'condition' => [
670 + 'slider_show_content' => 'yes',
671 + ]
672 + ]
673 + );
674 +
675 + $repeater->add_control(
676 + 'slider_item_sub_title',
677 + [
678 + 'label' => esc_html__('Sub Title', 'king-addons'),
679 + 'type' => Controls_Manager::TEXT,
680 + 'dynamic' => [
681 + 'active' => true,
682 + ],
683 + 'default' => 'Slide Sub Title',
684 + 'condition' => [
685 + 'slider_show_content' => 'yes',
686 + ],
687 + ]
688 + );
689 +
690 + $repeater->add_control(
691 + 'slider_item_description',
692 + [
693 + 'label' => esc_html__('Description', 'king-addons'),
694 + 'type' => Controls_Manager::TEXTAREA,
695 + 'dynamic' => [
696 + 'active' => true,
697 + ],
698 + 'default' => 'Slider Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ',
699 + 'condition' => [
700 + 'slider_show_content' => 'yes',
701 + ],
702 + ]
703 + );
704 +
705 + $repeater->add_control(
706 + 'slider_item_btn_1_divider',
707 + [
708 + 'type' => Controls_Manager::DIVIDER,
709 + 'style' => 'thick',
710 + 'condition' => [
711 + 'slider_show_content' => 'yes',
712 + ],
713 + ]
714 + );
715 +
716 + $repeater->add_responsive_control(
717 + 'slider_item_btn_1',
718 + [
719 + 'label' => esc_html__('Button Primary', 'king-addons'),
720 + 'type' => Controls_Manager::SWITCHER,
721 + 'default' => 'yes',
722 + 'widescreen_default' => 'yes',
723 + 'laptop_default' => 'yes',
724 + 'tablet_extra_default' => 'yes',
725 + 'tablet_default' => 'yes',
726 + 'mobile_extra_default' => 'yes',
727 + 'mobile_default' => 'yes',
728 + 'selectors_dictionary' => [
729 + '' => 'none',
730 + 'yes' => 'inline-block'
731 + ],
732 + 'selectors' => [
733 + '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-primary-btn' => 'display:{{VALUE}};',
734 + ],
735 + 'condition' => [
736 + 'slider_show_content' => 'yes',
737 + ],
738 + 'render_type' => 'template'
739 + ]
740 + );
741 +
742 + $repeater->add_control(
743 + 'slider_item_btn_text_1',
744 + [
745 + 'label' => esc_html__('Text', 'king-addons'),
746 + 'type' => Controls_Manager::TEXT,
747 + 'dynamic' => [
748 + 'active' => true,
749 + ],
750 + 'default' => 'Button 1',
751 + 'condition' => [
752 + 'slider_item_btn_1' => 'yes',
753 + 'slider_show_content' => 'yes',
754 + ],
755 + ]
756 + );
757 +
758 + $repeater->add_control(
759 + 'slider_item_btn_icon_1',
760 + [
761 + 'label' => esc_html__('Select Icon', 'king-addons'),
762 + 'type' => Controls_Manager::ICONS,
763 + 'skin' => 'inline',
764 + 'label_block' => false,
765 + 'condition' => [
766 + 'slider_item_btn_1' => 'yes',
767 + 'slider_show_content' => 'yes',
768 + ],
769 + ]
770 + );
771 +
772 + $repeater->add_control(
773 + 'slider_item_btn_url_1',
774 + [
775 + 'label' => esc_html__('Link', 'king-addons'),
776 + 'type' => Controls_Manager::URL,
777 + 'dynamic' => [
778 + 'active' => true,
779 + ],
780 + 'label_block' => false,
781 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
782 + 'condition' => [
783 + 'slider_item_btn_1' => 'yes',
784 + 'slider_show_content' => 'yes',
785 + ],
786 + ]
787 + );
788 +
789 + $repeater->add_control(
790 + 'slider_item_btn_2_divider',
791 + [
792 + 'type' => Controls_Manager::DIVIDER,
793 + 'style' => 'thick',
794 + 'condition' => [
795 + 'slider_show_content' => 'yes',
796 + ],
797 + ]
798 + );
799 +
800 + $repeater->add_responsive_control(
801 + 'slider_item_btn_2',
802 + [
803 + 'label' => esc_html__('Button Secondary', 'king-addons'),
804 + 'type' => Controls_Manager::SWITCHER,
805 + 'default' => 'yes',
806 + 'widescreen_default' => 'yes',
807 + 'laptop_default' => 'yes',
808 + 'tablet_extra_default' => 'yes',
809 + 'tablet_default' => 'yes',
810 + 'mobile_extra_default' => 'yes',
811 + 'mobile_default' => 'yes',
812 + 'selectors_dictionary' => [
813 + '' => 'none',
814 + 'yes' => 'inline-block'
815 + ],
816 + 'selectors' => [
817 + '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-secondary-btn' => 'display:{{VALUE}};',
818 + ],
819 + 'condition' => [
820 + 'slider_show_content' => 'yes',
821 + ],
822 + 'render_type' => 'template'
823 + ]
824 + );
825 +
826 + $repeater->add_control(
827 + 'slider_item_btn_text_2',
828 + [
829 + 'label' => esc_html__('Text', 'king-addons'),
830 + 'type' => Controls_Manager::TEXT,
831 + 'dynamic' => [
832 + 'active' => true,
833 + ],
834 + 'default' => 'Button 2',
835 + 'condition' => [
836 + 'slider_item_btn_2' => 'yes',
837 + 'slider_show_content' => 'yes',
838 + ],
839 + ]
840 + );
841 +
842 + $repeater->add_control(
843 + 'slider_item_btn_icon_2',
844 + [
845 + 'label' => esc_html__('Select Icon', 'king-addons'),
846 + 'type' => Controls_Manager::ICONS,
847 + 'skin' => 'inline',
848 + 'label_block' => false,
849 + 'condition' => [
850 + 'slider_item_btn_2' => 'yes',
851 + 'slider_show_content' => 'yes',
852 + ],
853 + ]
854 + );
855 +
856 + $repeater->add_control(
857 + 'slider_item_btn_url_2',
858 + [
859 + 'label' => esc_html__('Link', 'king-addons'),
860 + 'type' => Controls_Manager::URL,
861 + 'dynamic' => [
862 + 'active' => true,
863 + ],
864 + 'label_block' => false,
865 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
866 + 'condition' => [
867 + 'slider_item_btn_2' => 'yes',
868 + 'slider_show_content' => 'yes',
869 + ],
870 + ]
871 + );
872 +
873 + $repeater->end_controls_tab();
874 +
875 + $repeater->end_controls_tabs();
876 +
877 + $this->add_control(
878 + 'slider_items',
879 + [
880 + 'type' => Controls_Manager::REPEATER,
881 + 'fields' => $repeater->get_controls(),
882 + 'default' => [
883 + [
884 + 'slider_item_title' => esc_html__('Slide 1 Title', 'king-addons'),
885 + 'slider_item_sub_title' => esc_html__('Slide 1 Sub Title', 'king-addons'),
886 + 'slider_item_description' => esc_html__('Slider 1 Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ', 'king-addons'),
887 + 'slider_item_btn_text_1' => esc_html__('Button 1', 'king-addons'),
888 + 'slider_item_btn_text_2' => esc_html__('Button 2', 'king-addons'),
889 + 'slider_item_overlay_bg' => '#1300B19C',
890 + ],
891 + [
892 + 'slider_item_title' => esc_html__('Slide 2 Title', 'king-addons'),
893 + 'slider_item_sub_title' => esc_html__('Slide 2 Sub Title', 'king-addons'),
894 + 'slider_item_description' => esc_html__('Slider 2 Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ', 'king-addons'),
895 + 'slider_item_btn_text_1' => esc_html__('Button 1', 'king-addons'),
896 + 'slider_item_btn_text_2' => esc_html__('Button 2', 'king-addons'),
897 + 'slider_item_overlay_bg' => '#0D7C00AB',
898 + ],
899 + [
900 + 'slider_item_title' => esc_html__('Slide 3 Title', 'king-addons'),
901 + 'slider_item_sub_title' => esc_html__('Slide 3 Sub Title', 'king-addons'),
902 + 'slider_item_description' => esc_html__('Slider 3 Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ', 'king-addons'),
903 + 'slider_item_btn_text_1' => esc_html__('Button 1', 'king-addons'),
904 + 'slider_item_btn_text_2' => esc_html__('Button 2', 'king-addons'),
905 + 'slider_item_overlay_bg' => '#D5040094',
906 + ],
907 + ],
908 + 'title_field' => '{{ slider_item_title }}',
909 + ]
910 + );
911 +
912 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
913 + $this->add_control(
914 + 'slider_repeater_pro_notice',
915 + [
916 + 'type' => Controls_Manager::RAW_HTML,
917 + 'raw' => 'More than 4 Slides are available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-slider-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
918 +
919 + 'content_classes' => 'king-addons-pro-notice',
920 + ]
921 + );
922 + }
923 +
924 + $this->end_controls_section();
925 +
926 +
927 + $this->start_controls_section(
928 + 'settings_section_slider_options',
929 + [
930 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Settings', 'king-addons'),
931 + 'type' => Controls_Manager::SECTION,
932 + ]
933 + );
934 +
935 + $this->add_group_control(
936 + Group_Control_Image_Size::get_type(),
937 + [
938 + 'name' => 'slider_image_size',
939 + 'default' => 'full',
940 + ]
941 + );
942 +
943 + $this->add_control(
944 + 'slider_image_type',
945 + [
946 + 'label' => esc_html__('Media Type', 'king-addons'),
947 + 'type' => Controls_Manager::SELECT,
948 + 'default' => 'background',
949 + 'options' => [
950 + 'background' => esc_html__('Background', 'king-addons'),
951 + 'image' => esc_html__('Image', 'king-addons')
952 + ]
953 + ]
954 + );
955 +
956 + $this->add_responsive_control(
957 + 'slider_height',
958 + [
959 + 'type' => Controls_Manager::SLIDER,
960 + 'label' => esc_html__('Height', 'king-addons'),
961 + 'size_units' => ['px', 'vh'],
962 + 'range' => [
963 + 'px' => [
964 + 'min' => 20,
965 + 'max' => 1500,
966 + ],
967 + 'vh' => [
968 + 'min' => 20,
969 + 'max' => 100,
970 + ],
971 + ],
972 + 'default' => [
973 + 'unit' => 'px',
974 + 'size' => 500,
975 + ],
976 + 'selectors' => [
977 + '{{WRAPPER}} .king-addons-advanced-slider' => 'height: {{SIZE}}{{UNIT}};',
978 + '{{WRAPPER}} .king-addons-slider-item' => 'height: {{SIZE}}{{UNIT}};',
979 + '{{WRAPPER}} .slick-list' => 'height: {{SIZE}}{{UNIT}};'
980 + ],
981 + 'separator' => 'before',
982 + 'condition' => [
983 + 'slider_image_type' => 'background'
984 + ]
985 + ]
986 + );
987 +
988 + $this->add_control_slider_amount();
989 +
990 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
991 + $this->add_control(
992 + 'slider_columns_pro_notice',
993 + [
994 + 'type' => Controls_Manager::RAW_HTML,
995 + 'raw' => 'Slider Columns option is fully supported<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-advanced-slider-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
996 +
997 + 'content_classes' => 'king-addons-pro-notice',
998 + ]
999 + );
1000 + }
1001 +
1002 + $this->add_control_slides_to_scroll();
1003 +
1004 + $this->add_control(
1005 + 'slides_amount_hidden',
1006 + [
1007 + 'type' => Controls_Manager::HIDDEN,
1008 + 'prefix_class' => 'king-addons-adv-slider-columns-',
1009 + 'default' => 1,
1010 + 'condition' => [
1011 + 'slider_effect' => 'slide_vertical'
1012 + ]
1013 + ]
1014 + );
1015 +
1016 + $this->add_control(
1017 + 'slides_to_scroll_hidden',
1018 + [
1019 + 'type' => Controls_Manager::HIDDEN,
1020 + 'prefix_class' => 'king-addons-adv-slides-to-scroll-',
1021 + 'default' => 1,
1022 + 'condition' => [
1023 + 'slider_effect' => 'slide_vertical'
1024 + ]
1025 + ]
1026 + );
1027 +
1028 + $this->add_responsive_control(
1029 + 'slider_gutter',
1030 + [
1031 + 'type' => Controls_Manager::SLIDER,
1032 + 'label' => esc_html__('Gutter', 'king-addons'),
1033 + 'size_units' => ['px'],
1034 + 'range' => [
1035 + 'px' => [
1036 + 'min' => 0,
1037 + 'max' => 300,
1038 + ]
1039 + ],
1040 + 'default' => [
1041 + 'unit' => 'px',
1042 + 'size' => 0,
1043 + ],
1044 + 'selectors' => [
1045 + '{{WRAPPER}} .king-addons-advanced-slider .slick-slide' => 'margin-left: {{SIZE}}{{UNIT}};',
1046 + '{{WRAPPER}} .king-addons-advanced-slider .slick-list' => 'margin-left: -{{SIZE}}{{UNIT}};',
1047 + ],
1048 + 'render_type' => 'template',
1049 + 'condition' => [
1050 + 'slider_amount!' => '1',
1051 + ],
1052 + ]
1053 + );
1054 +
1055 + $this->add_responsive_control(
1056 + 'slider_title',
1057 + [
1058 + 'label' => esc_html__('Title', 'king-addons'),
1059 + 'type' => Controls_Manager::SWITCHER,
1060 + 'default' => 'yes',
1061 + 'widescreen_default' => 'yes',
1062 + 'laptop_default' => 'yes',
1063 + 'tablet_extra_default' => 'yes',
1064 + 'tablet_default' => 'yes',
1065 + 'mobile_extra_default' => 'yes',
1066 + 'mobile_default' => 'yes',
1067 + 'selectors_dictionary' => [
1068 + '' => 'none',
1069 + 'yes' => 'block'
1070 + ],
1071 + 'selectors' => [
1072 + '{{WRAPPER}} .king-addons-slider-title' => 'display:{{VALUE}};',
1073 + ],
1074 + 'separator' => 'before',
1075 + 'render_type' => 'template'
1076 + ]
1077 + );
1078 +
1079 + $this->add_control(
1080 + 'slider_title_tag',
1081 + [
1082 + 'label' => esc_html__('Title HTML Tag', 'king-addons'),
1083 + 'type' => Controls_Manager::SELECT,
1084 + 'options' => [
1085 + 'h1' => esc_html__('H1', 'king-addons'),
1086 + 'h2' => esc_html__('H2', 'king-addons'),
1087 + 'h3' => esc_html__('H3', 'king-addons'),
1088 + 'h4' => esc_html__('H4', 'king-addons'),
1089 + 'h5' => esc_html__('H5', 'king-addons'),
1090 + 'h6' => esc_html__('H6', 'king-addons')
1091 + ],
1092 + 'default' => 'h2',
1093 + 'condition' => [
1094 + 'slider_title' => 'yes'
1095 + ]
1096 + ]
1097 + );
1098 +
1099 + $this->add_responsive_control(
1100 + 'slider_sub_title',
1101 + [
1102 + 'label' => esc_html__('Sub Title', 'king-addons'),
1103 + 'type' => Controls_Manager::SWITCHER,
1104 + 'default' => 'yes',
1105 + 'widescreen_default' => 'yes',
1106 + 'laptop_default' => 'yes',
1107 + 'tablet_extra_default' => 'yes',
1108 + 'tablet_default' => 'yes',
1109 + 'mobile_extra_default' => 'yes',
1110 + 'mobile_default' => 'yes',
1111 + 'selectors_dictionary' => [
1112 + '' => 'none',
1113 + 'yes' => 'block'
1114 + ],
1115 + 'selectors' => [
1116 + '{{WRAPPER}} .king-addons-slider-sub-title' => 'display:{{VALUE}};',
1117 + ],
1118 + 'render_type' => 'template'
1119 + ]
1120 + );
1121 +
1122 + $this->add_control(
1123 + 'slider_sub_title_tag',
1124 + [
1125 + 'label' => esc_html__('Sub Title HTML Tag', 'king-addons'),
1126 + 'type' => Controls_Manager::SELECT,
1127 + 'options' => [
1128 + 'h1' => esc_html__('H1', 'king-addons'),
1129 + 'h2' => esc_html__('H2', 'king-addons'),
1130 + 'h3' => esc_html__('H3', 'king-addons'),
1131 + 'h4' => esc_html__('H4', 'king-addons'),
1132 + 'h5' => esc_html__('H5', 'king-addons'),
1133 + 'h6' => esc_html__('H6', 'king-addons')
1134 + ],
1135 + 'default' => 'h3',
1136 + 'condition' => [
1137 + 'slider_sub_title' => 'yes'
1138 + ]
1139 + ]
1140 + );
1141 +
1142 + $this->add_responsive_control(
1143 + 'slider_description',
1144 + [
1145 + 'label' => esc_html__('Description', 'king-addons'),
1146 + 'type' => Controls_Manager::SWITCHER,
1147 + 'default' => 'yes',
1148 + 'widescreen_default' => 'yes',
1149 + 'laptop_default' => 'yes',
1150 + 'tablet_extra_default' => 'yes',
1151 + 'tablet_default' => 'yes',
1152 + 'mobile_extra_default' => 'yes',
1153 + 'mobile_default' => 'yes',
1154 + 'selectors_dictionary' => [
1155 + '' => 'none',
1156 + 'yes' => 'block'
1157 + ],
1158 + 'selectors' => [
1159 + '{{WRAPPER}} .king-addons-slider-description' => 'display:{{VALUE}};',
1160 + ],
1161 + 'separator' => 'after',
1162 + 'render_type' => 'template'
1163 + ]
1164 + );
1165 +
1166 + $this->add_responsive_control(
1167 + 'slider_nav',
1168 + [
1169 + 'label' => esc_html__('Navigation', 'king-addons'),
1170 + 'type' => Controls_Manager::SWITCHER,
1171 + 'default' => 'yes',
1172 + 'widescreen_default' => 'yes',
1173 + 'laptop_default' => 'yes',
1174 + 'tablet_extra_default' => 'yes',
1175 + 'tablet_default' => 'yes',
1176 + 'mobile_extra_default' => 'yes',
1177 + 'mobile_default' => 'yes',
1178 + 'selectors_dictionary' => [
1179 + '' => 'none',
1180 + 'yes' => 'flex'
1181 + ],
1182 + 'selectors' => [
1183 + '{{WRAPPER}} .king-addons-slider-arrow' => 'display:{{VALUE}} !important;',
1184 + ],
1185 + 'render_type' => 'template'
1186 + ]
1187 + );
1188 +
1189 + $this->add_control_slider_nav_hover();
1190 +
1191 + $this->add_control(
1192 + 'slider_nav_icon',
1193 + [
1194 + 'label' => esc_html__('Select Icon', 'king-addons'),
1195 + 'type' => Controls_Manager::SELECT,
1196 + 'default' => 'fas fa-angle-left',
1197 + 'options' => [
1198 + 'fas fa-angle-left' => esc_html__('Angle', 'king-addons'),
1199 + 'fas fa-angle-double-left' => esc_html__('Angle Double', 'king-addons'),
1200 + 'fas fa-arrow-left' => esc_html__('Arrow', 'king-addons'),
1201 + 'fas fa-arrow-alt-circle-left' => esc_html__('Arrow Circle', 'king-addons'),
1202 + 'far fa-arrow-alt-circle-left' => esc_html__('Arrow Circle Alt', 'king-addons'),
1203 + 'fas fa-long-arrow-alt-left' => esc_html__('Long Arrow', 'king-addons'),
1204 + 'fas fa-chevron-left' => esc_html__('Chevron', 'king-addons'),
1205 + ],
1206 + 'condition' => [
1207 + 'slider_nav' => 'yes',
1208 + ],
1209 + 'separator' => 'after',
1210 + 'render_type' => 'template'
1211 + ]
1212 + );
1213 +
1214 + $this->add_responsive_control(
1215 + 'slider_dots',
1216 + [
1217 + 'label' => esc_html__('Pagination', 'king-addons'),
1218 + 'type' => Controls_Manager::SWITCHER,
1219 + 'default' => 'yes',
1220 + 'widescreen_default' => 'yes',
1221 + 'laptop_default' => 'yes',
1222 + 'tablet_extra_default' => 'yes',
1223 + 'tablet_default' => 'yes',
1224 + 'mobile_extra_default' => 'yes',
1225 + 'mobile_default' => 'yes',
1226 + 'selectors_dictionary' => [
1227 + '' => 'none',
1228 + 'yes' => 'inline-table'
1229 + ],
1230 + 'selectors' => [
1231 + '{{WRAPPER}} .king-addons-slider-dots' => 'display:{{VALUE}};',
1232 + ],
1233 + 'render_type' => 'template',
1234 + ]
1235 + );
1236 +
1237 + $this->add_control_slider_dots_layout();
1238 +
1239 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'slider', 'slider_dots_layout', ['pro-vr']);
1240 +
1241 + $this->add_control_slider_scroll_btn();
1242 +
1243 + $this->add_control_slider_autoplay();
1244 +
1245 + $this->add_control_slider_autoplay_duration();
1246 +
1247 + $this->add_control_slider_pause_on_hover();
1248 +
1249 + $this->add_control(
1250 + 'slider_loop',
1251 + [
1252 + 'label' => esc_html__('Infinite Loop', 'king-addons'),
1253 + 'type' => Controls_Manager::SWITCHER,
1254 + 'default' => 'yes',
1255 + 'frontend_available' => true,
1256 + 'separator' => 'before',
1257 + ]
1258 + );
1259 +
1260 + $this->add_control_slider_effect();
1261 +
1262 + $this->add_control(
1263 + 'slider_effect_duration',
1264 + [
1265 + 'label' => esc_html__('Effect Duration', 'king-addons'),
1266 + 'type' => Controls_Manager::NUMBER,
1267 + 'default' => 0.7,
1268 + 'min' => 0,
1269 + 'max' => 5,
1270 + 'step' => 0.1,
1271 + ]
1272 + );
1273 +
1274 + $this->add_control(
1275 + 'slider_content_animation',
1276 + [
1277 + 'label' => esc_html__('Content Animation', 'king-addons'),
1278 + 'type' => 'king-addons-animations-alt',
1279 + 'default' => 'none',
1280 + 'condition' => [
1281 + 'slider_effect' => 'fade',
1282 + ],
1283 + ]
1284 + );
1285 +
1286 +
1287 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'slider', 'slider_content_animation', ['pro-slrt', 'pro-slxrt', 'pro-slbt', 'pro-sllt', 'pro-sltp', 'pro-slxlt', 'pro-sktp', 'pro-skrt', 'pro-skbt', 'pro-sklt', 'pro-scup', 'pro-scdn', 'pro-rllt', 'pro-rlrt']);
1288 +
1289 + $this->add_control(
1290 + 'slider_content_anim_size',
1291 + [
1292 + 'type' => Controls_Manager::SELECT,
1293 + 'label' => esc_html__('Animation Size', 'king-addons'),
1294 + 'default' => 'large',
1295 + 'options' => [
1296 + 'small' => esc_html__('Small', 'king-addons'),
1297 + 'medium' => esc_html__('Medium', 'king-addons'),
1298 + 'large' => esc_html__('Large', 'king-addons'),
1299 + ],
1300 + 'condition' => [
1301 + 'slider_content_animation!' => 'none',
1302 + 'slider_effect' => 'fade',
1303 + ],
1304 + ]
1305 + );
1306 +
1307 + $this->add_control(
1308 + 'slider_content_anim_duration',
1309 + [
1310 + 'label' => esc_html__('Animation Duration', 'king-addons'),
1311 + 'type' => Controls_Manager::NUMBER,
1312 + 'default' => 1,
1313 + 'min' => 0,
1314 + 'max' => 5,
1315 + 'step' => 0.1,
1316 + 'selectors' => [
1317 + '{{WRAPPER}} .king-addons-slider-animation .king-addons-cv-outer' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s;',
1318 + ],
1319 + 'condition' => [
1320 + 'slider_content_animation!' => 'none',
1321 + 'slider_effect' => 'fade',
1322 + ],
1323 + ]
1324 + );
1325 +
1326 + $this->end_controls_section();
1327 +
1328 + Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'slider', [
1329 + 'Add Unlimited Slides',
1330 + 'Unlimited Slides to Scroll Option',
1331 + 'Columns (Carousel) 1, 2, 3, 4, 5, 6',
1332 + 'Slider/Carousel Autoplay Options',
1333 + 'Youtube & Vimeo Video Support',
1334 + 'Custom Video Support',
1335 + 'Elementor Templates Slider Option',
1336 + 'Scroll to Section Button',
1337 + 'Ken Burn Effect',
1338 + 'Vertical Sliding',
1339 + 'Advanced Navigation Positioning',
1340 + 'Advanced Pagination Positioning'
1341 + ]);
1342 +
1343 + $this->start_controls_section(
1344 + 'settings_section_style_slider_content',
1345 + [
1346 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Slider Content', 'king-addons'),
1347 + 'tab' => Controls_Manager::TAB_STYLE,
1348 + ]
1349 + );
1350 +
1351 + $this->add_control(
1352 + 'slider_content_bg_color',
1353 + [
1354 + 'label' => esc_html__('Background Color', 'king-addons'),
1355 + 'type' => Controls_Manager::COLOR,
1356 + 'selectors' => [
1357 + '{{WRAPPER}} .king-addons-slider-content' => 'background-color: {{VALUE}};',
1358 + ],
1359 + 'separator' => 'after',
1360 + ]
1361 + );
1362 +
1363 + $this->add_responsive_control(
1364 + 'slider_content_hr',
1365 + [
1366 + 'label' => esc_html__('Horizontal Position', 'king-addons'),
1367 + 'type' => Controls_Manager::CHOOSE,
1368 + 'label_block' => false,
1369 + 'options' => [
1370 + 'left' => [
1371 + 'title' => esc_html__('Left', 'king-addons'),
1372 + 'icon' => 'eicon-h-align-left',
1373 + ],
1374 + 'center' => [
1375 + 'title' => esc_html__('Center', 'king-addons'),
1376 + 'icon' => 'eicon-h-align-center',
1377 + ],
1378 + 'right' => [
1379 + 'title' => esc_html__('Right', 'king-addons'),
1380 + 'icon' => 'eicon-h-align-right',
1381 + ]
1382 + ],
1383 + 'default' => 'center',
1384 + 'widescreen_default' => 'center',
1385 + 'laptop_default' => 'center',
1386 + 'tablet_extra_default' => 'center',
1387 + 'tablet_default' => 'center',
1388 + 'mobile_extra_default' => 'center',
1389 + 'mobile_default' => 'center',
1390 + 'selectors_dictionary' => [
1391 + 'left' => 'float: left',
1392 + 'center' => 'margin: 0 auto',
1393 + 'right' => 'float: right'
1394 + ],
1395 + 'selectors' => [
1396 + '{{WRAPPER}} .king-addons-slider-content' => '{{VALUE}};',
1397 + ],
1398 + ]
1399 + );
1400 +
1401 + $this->add_responsive_control(
1402 + 'slider_content_vr',
1403 + [
1404 + 'label' => esc_html__('Vertical Position', 'king-addons'),
1405 + 'type' => Controls_Manager::CHOOSE,
1406 + 'label_block' => false,
1407 + 'default' => 'middle',
1408 + 'options' => [
1409 + 'top' => [
1410 + 'title' => esc_html__('Top', 'king-addons'),
1411 + 'icon' => 'eicon-v-align-top',
1412 + ],
1413 + 'middle' => [
1414 + 'title' => esc_html__('Middle', 'king-addons'),
1415 + 'icon' => 'eicon-v-align-middle',
1416 + ],
1417 + 'bottom' => [
1418 + 'title' => esc_html__('Bottom', 'king-addons'),
1419 + 'icon' => 'eicon-v-align-bottom',
1420 + ],
1421 + ],
1422 + 'selectors' => [
1423 + '{{WRAPPER}} .king-addons-cv-inner' => 'vertical-align: {{VALUE}};',
1424 + ],
1425 + ]
1426 + );
1427 +
1428 + $this->add_responsive_control(
1429 + 'slider_content_align',
1430 + [
1431 + 'label' => esc_html__('Alignment', 'king-addons'),
1432 + 'type' => Controls_Manager::CHOOSE,
1433 + 'label_block' => false,
1434 + 'default' => 'center',
1435 + 'options' => [
1436 + 'left' => [
1437 + 'title' => esc_html__('Left', 'king-addons'),
1438 + 'icon' => 'eicon-text-align-left',
1439 + ],
1440 + 'center' => [
1441 + 'title' => esc_html__('Center', 'king-addons'),
1442 + 'icon' => 'eicon-text-align-center',
1443 + ],
1444 + 'right' => [
1445 + 'title' => esc_html__('Right', 'king-addons'),
1446 + 'icon' => 'eicon-text-align-right',
1447 + ],
1448 + ],
1449 + 'selectors' => [
1450 + '{{WRAPPER}} .king-addons-slider-content' => 'text-align: {{VALUE}};',
1451 + ],
1452 + ]
1453 + );
1454 +
1455 + $this->add_responsive_control(
1456 + 'slider_content_width',
1457 + [
1458 + 'label' => esc_html__('Width', 'king-addons'),
1459 + 'type' => Controls_Manager::SLIDER,
1460 + 'range' => [
1461 + '%' => [
1462 + 'min' => 20,
1463 + 'max' => 100,
1464 + ],
1465 + 'px' => [
1466 + 'min' => 200,
1467 + 'max' => 1500,
1468 + ],
1469 + ],
1470 + 'size_units' => ['%', 'px'],
1471 + 'default' => [
1472 + 'unit' => 'px',
1473 + 'size' => 750,
1474 + ],
1475 + 'selectors' => [
1476 + '{{WRAPPER}} .king-addons-slider-content' => 'max-width: {{SIZE}}{{UNIT}};',
1477 + ],
1478 + ]
1479 + );
1480 +
1481 + $this->add_responsive_control(
1482 + 'slider_content_padding',
1483 + [
1484 + 'label' => esc_html__('Padding', 'king-addons'),
1485 + 'type' => Controls_Manager::DIMENSIONS,
1486 + 'default' => [
1487 + 'top' => 10,
1488 + 'right' => 50,
1489 + 'bottom' => 50,
1490 + 'left' => 50,
1491 + ],
1492 + 'size_units' => ['px', '%'],
1493 + 'selectors' => [
1494 + '{{WRAPPER}} .king-addons-slider-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1495 + ],
1496 + 'separator' => 'after',
1497 + ]
1498 + );
1499 +
1500 + $this->end_controls_section();
1501 +
1502 +
1503 + $this->start_controls_section(
1504 + 'settings_section_style_slider_title',
1505 + [
1506 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
1507 + 'tab' => Controls_Manager::TAB_STYLE,
1508 + 'show_label' => false,
1509 + ]
1510 + );
1511 +
1512 + $this->add_control(
1513 + 'slider_title_color',
1514 + [
1515 + 'label' => esc_html__('Color', 'king-addons'),
1516 + 'type' => Controls_Manager::COLOR,
1517 + 'default' => '#ffffff',
1518 + 'selectors' => [
1519 + '{{WRAPPER}} .king-addons-slider-title *' => 'color: {{VALUE}}',
1520 + ],
1521 + ]
1522 + );
1523 +
1524 + $this->add_control(
1525 + 'slider_title_bg_color',
1526 + [
1527 + 'label' => esc_html__('Background Color', 'king-addons'),
1528 + 'type' => Controls_Manager::COLOR,
1529 + 'selectors' => [
1530 + '{{WRAPPER}} .king-addons-slider-title *' => 'background-color: {{VALUE}}',
1531 + ],
1532 + 'separator' => 'after',
1533 + ]
1534 + );
1535 +
1536 + $this->add_group_control(
1537 + Group_Control_Typography::get_type(),
1538 + [
1539 + 'name' => 'slider_title_typography',
1540 + 'selector' => '{{WRAPPER}} .king-addons-slider-title *',
1541 + ]
1542 + );
1543 +
1544 + $this->add_responsive_control(
1545 + 'slider_title_padding',
1546 + [
1547 + 'label' => esc_html__('Padding', 'king-addons'),
1548 + 'type' => Controls_Manager::DIMENSIONS,
1549 + 'size_units' => ['px'],
1550 + 'default' => [
1551 + 'top' => 5,
1552 + 'right' => 10,
1553 + 'bottom' => 5,
1554 + 'left' => 10,
1555 + ],
1556 + 'selectors' => [
1557 + '{{WRAPPER}} .king-addons-slider-title *' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1558 + ],
1559 + 'separator' => 'before',
1560 + ]
1561 + );
1562 +
1563 + $this->add_responsive_control(
1564 + 'slider_title_margin',
1565 + [
1566 + 'label' => esc_html__('Margin', 'king-addons'),
1567 + 'type' => Controls_Manager::DIMENSIONS,
1568 + 'size_units' => ['px'],
1569 + 'default' => [
1570 + 'top' => 0,
1571 + 'right' => 0,
1572 + 'bottom' => 0,
1573 + 'left' => 0,
1574 + ],
1575 + 'selectors' => [
1576 + '{{WRAPPER}} .king-addons-slider-title *' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1577 + ],
1578 + ]
1579 + );
1580 +
1581 + $this->end_controls_section();
1582 +
1583 +
1584 + $this->start_controls_section(
1585 + 'settings_section_style_slider_sub_title',
1586 + [
1587 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Sub Title', 'king-addons'),
1588 + 'tab' => Controls_Manager::TAB_STYLE,
1589 + 'show_label' => false,
1590 + ]
1591 + );
1592 +
1593 + $this->add_control(
1594 + 'slider_sub_title_color',
1595 + [
1596 + 'label' => esc_html__('Color', 'king-addons'),
1597 + 'type' => Controls_Manager::COLOR,
1598 + 'default' => '#ffffff',
1599 + 'selectors' => [
1600 + '{{WRAPPER}} .king-addons-slider-sub-title *' => 'color: {{VALUE}}',
1601 + ],
1602 + ]
1603 + );
1604 +
1605 + $this->add_control(
1606 + 'slider_sub_title_bg_color',
1607 + [
1608 + 'label' => esc_html__('Background Color', 'king-addons'),
1609 + 'type' => Controls_Manager::COLOR,
1610 + 'selectors' => [
1611 + '{{WRAPPER}} .king-addons-slider-sub-title *' => 'background-color: {{VALUE}}',
1612 + ],
1613 + 'separator' => 'after',
1614 + ]
1615 + );
1616 +
1617 + $this->add_group_control(
1618 + Group_Control_Typography::get_type(),
1619 + [
1620 + 'name' => 'slider_sub_title_typography',
1621 + 'selector' => '{{WRAPPER}} .king-addons-slider-sub-title *',
1622 + ]
1623 + );
1624 +
1625 + $this->add_responsive_control(
1626 + 'slider_sub_title_padding',
1627 + [
1628 + 'label' => esc_html__('Padding', 'king-addons'),
1629 + 'type' => Controls_Manager::DIMENSIONS,
1630 + 'size_units' => ['px'],
1631 + 'default' => [
1632 + 'top' => 5,
1633 + 'right' => 10,
1634 + 'bottom' => 5,
1635 + 'left' => 10,
1636 + ],
1637 + 'selectors' => [
1638 + '{{WRAPPER}} .king-addons-slider-sub-title *' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1639 + ],
1640 + 'separator' => 'before',
1641 + ]
1642 + );
1643 +
1644 + $this->add_responsive_control(
1645 + 'slider_sub_title_margin',
1646 + [
1647 + 'label' => esc_html__('Margin', 'king-addons'),
1648 + 'type' => Controls_Manager::DIMENSIONS,
1649 + 'size_units' => ['px'],
1650 + 'default' => [
1651 + 'top' => 0,
1652 + 'right' => 0,
1653 + 'bottom' => 5,
1654 + 'left' => 0,
1655 + ],
1656 + 'selectors' => [
1657 + '{{WRAPPER}} .king-addons-slider-sub-title *' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1658 + ],
1659 + ]
1660 + );
1661 +
1662 + $this->end_controls_section();
1663 +
1664 +
1665 + $this->start_controls_section(
1666 + 'settings_section_style_slider_description',
1667 + [
1668 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Description', 'king-addons'),
1669 + 'tab' => Controls_Manager::TAB_STYLE,
1670 + 'show_label' => false,
1671 + ]
1672 + );
1673 +
1674 + $this->add_control(
1675 + 'slider_description_color',
1676 + [
1677 + 'label' => esc_html__('Color', 'king-addons'),
1678 + 'type' => Controls_Manager::COLOR,
1679 + 'default' => '#ffffff',
1680 + 'selectors' => [
1681 + '{{WRAPPER}} .king-addons-slider-description p' => 'color: {{VALUE}}',
1682 + ],
1683 + ]
1684 + );
1685 +
1686 + $this->add_control(
1687 + 'slider_description_bg_color',
1688 + [
1689 + 'label' => esc_html__('Background Color', 'king-addons'),
1690 + 'type' => Controls_Manager::COLOR,
1691 + 'selectors' => [
1692 + '{{WRAPPER}} .king-addons-slider-description p' => 'background-color: {{VALUE}}',
1693 + ],
1694 + 'separator' => 'after',
1695 + ]
1696 + );
1697 +
1698 + $this->add_group_control(
1699 + Group_Control_Typography::get_type(),
1700 + [
1701 + 'name' => 'slider_description_typography',
1702 + 'selector' => '{{WRAPPER}} .king-addons-slider-description p',
1703 + ]
1704 + );
1705 +
1706 + $this->add_responsive_control(
1707 + 'slider_description_padding',
1708 + [
1709 + 'label' => esc_html__('Padding', 'king-addons'),
1710 + 'type' => Controls_Manager::DIMENSIONS,
1711 + 'size_units' => ['px'],
1712 + 'default' => [
1713 + 'top' => 5,
1714 + 'right' => 10,
1715 + 'bottom' => 5,
1716 + 'left' => 10,
1717 + ],
1718 + 'selectors' => [
1719 + '{{WRAPPER}} .king-addons-slider-description p' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1720 + ],
1721 + 'separator' => 'before',
1722 + ]
1723 + );
1724 +
1725 + $this->add_responsive_control(
1726 + 'slider_description_margin',
1727 + [
1728 + 'label' => esc_html__('Margin', 'king-addons'),
1729 + 'type' => Controls_Manager::DIMENSIONS,
1730 + 'size_units' => ['px'],
1731 + 'default' => [
1732 + 'top' => 0,
1733 + 'right' => 0,
1734 + 'bottom' => 30,
1735 + 'left' => 0,
1736 + ],
1737 + 'selectors' => [
1738 + '{{WRAPPER}} .king-addons-slider-description p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1739 + ],
1740 + ]
1741 + );
1742 +
1743 + $this->end_controls_section();
1744 +
1745 +
1746 + $this->start_controls_section(
1747 + 'settings_section_style_btn_1',
1748 + [
1749 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button Primary', 'king-addons'),
1750 + 'tab' => Controls_Manager::TAB_STYLE,
1751 + 'show_label' => false,
1752 + ]
1753 + );
1754 +
1755 + $this->start_controls_tabs('tabs_btn_style_1');
1756 +
1757 + $this->start_controls_tab(
1758 + 'tab_btn_normal_1',
1759 + [
1760 + 'label' => esc_html__('Normal', 'king-addons'),
1761 + ]
1762 + );
1763 +
1764 + $this->add_group_control(
1765 + Group_Control_Background::get_type(),
1766 + [
1767 + 'name' => 'btn_bg_color_1',
1768 + 'label' => esc_html__('Background', 'king-addons'),
1769 + 'types' => ['classic', 'gradient'],
1770 + 'fields_options' => [
1771 + 'color' => [
1772 + 'default' => '#434900',
1773 + ],
1774 + ],
1775 + 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn'
1776 + ]
1777 + );
1778 +
1779 + $this->add_control(
1780 + 'btn_color_1',
1781 + [
1782 + 'label' => esc_html__('Text Color', 'king-addons'),
1783 + 'type' => Controls_Manager::COLOR,
1784 + 'default' => '#ffffff',
1785 + 'selectors' => [
1786 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'color: {{VALUE}}',
1787 + '{{WRAPPER}} .king-addons-slider-primary-btn svg' => 'fill: {{VALUE}}',
1788 + ],
1789 + ]
1790 + );
1791 +
1792 + $this->add_control(
1793 + 'btn_border_color_1',
1794 + [
1795 + 'label' => esc_html__('Border Color', 'king-addons'),
1796 + 'type' => Controls_Manager::COLOR,
1797 + 'default' => '#ffffff',
1798 + 'selectors' => [
1799 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-color: {{VALUE}}',
1800 + ],
1801 + ]
1802 + );
1803 +
1804 + $this->add_group_control(
1805 + Group_Control_Box_Shadow::get_type(),
1806 + [
1807 + 'name' => 'btn_box_shadow_1',
1808 + 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn',
1809 + ]
1810 + );
1811 +
1812 + $this->end_controls_tab();
1813 +
1814 + $this->start_controls_tab(
1815 + 'tab_btn_hover_1',
1816 + [
1817 + 'label' => esc_html__('Hover', 'king-addons'),
1818 + ]
1819 + );
1820 +
1821 + $this->add_group_control(
1822 + Group_Control_Background::get_type(),
1823 + [
1824 + 'name' => 'btn_hover_bg_color_1',
1825 + 'label' => esc_html__('Background', 'king-addons'),
1826 + 'types' => ['classic', 'gradient'],
1827 + 'fields_options' => [
1828 + 'color' => [
1829 + 'default' => '#434900',
1830 + ],
1831 + ],
1832 + 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn:hover'
1833 + ]
1834 + );
1835 +
1836 + $this->add_control(
1837 + 'btn_hover_color_1',
1838 + [
1839 + 'label' => esc_html__('Text Color', 'king-addons'),
1840 + 'type' => Controls_Manager::COLOR,
1841 + 'selectors' => [
1842 + '{{WRAPPER}} .king-addons-slider-primary-btn:hover' => 'color: {{VALUE}}',
1843 + '{{WRAPPER}} .king-addons-slider-primary-btn:hover svg' => 'fill: {{VALUE}}',
1844 + ],
1845 + ]
1846 + );
1847 +
1848 + $this->add_control(
1849 + 'btn_hover_border_color_1',
1850 + [
1851 + 'label' => esc_html__('Border Color', 'king-addons'),
1852 + 'type' => Controls_Manager::COLOR,
1853 + 'selectors' => [
1854 + '{{WRAPPER}} .king-addons-slider-primary-btn:hover' => 'border-color: {{VALUE}}',
1855 + ],
1856 + ]
1857 + );
1858 +
1859 + $this->add_group_control(
1860 + Group_Control_Box_Shadow::get_type(),
1861 + [
1862 + 'name' => 'btn_hover_box_shadow_1',
1863 + 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn:hover',
1864 + ]
1865 + );
1866 +
1867 + $this->end_controls_tab();
1868 +
1869 + $this->end_controls_tabs();
1870 +
1871 + $this->add_control(
1872 + 'btn_transition_duration_1',
1873 + [
1874 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
1875 + 'type' => Controls_Manager::NUMBER,
1876 + 'default' => 0.1,
1877 + 'min' => 0,
1878 + 'max' => 5,
1879 + 'step' => 0.1,
1880 + 'selectors' => [
1881 + '{{WRAPPER}} .king-addons-slider-primary-btn' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
1882 + '{{WRAPPER}} .king-addons-slider-primary-btn svg' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
1883 + ],
1884 + 'separator' => 'before',
1885 + ]
1886 + );
1887 +
1888 + $this->add_control(
1889 + 'btn_typography_1_divider',
1890 + [
1891 + 'type' => Controls_Manager::DIVIDER,
1892 + 'style' => 'thick',
1893 + ]
1894 + );
1895 +
1896 + $this->add_group_control(
1897 + Group_Control_Typography::get_type(),
1898 + [
1899 + 'name' => 'btn_typography_1',
1900 + 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn',
1901 + 'separator' => 'before',
1902 + ]
1903 + );
1904 +
1905 + $this->add_responsive_control(
1906 + 'btn_icon_size_1',
1907 + [
1908 + 'label' => esc_html__('Icon Size', 'king-addons'),
1909 + 'type' => Controls_Manager::SLIDER,
1910 + 'range' => [
1911 + 'px' => [
1912 + 'min' => 5,
1913 + 'max' => 30,
1914 + ],
1915 + ],
1916 + 'default' => [
1917 + 'unit' => 'px',
1918 + 'size' => 13,
1919 + ],
1920 + 'selectors' => [
1921 + '{{WRAPPER}} .king-addons-slider-primary-btn i' => 'font-size: {{SIZE}}{{UNIT}};',
1922 + '{{WRAPPER}} .king-addons-slider-primary-btn svg' => 'width: {{SIZE}}{{UNIT}}; height: auto;',
1923 + ],
1924 + ]
1925 + );
1926 +
1927 + $this->add_responsive_control(
1928 + 'btn_padding_1',
1929 + [
1930 + 'label' => esc_html__('Padding', 'king-addons'),
1931 + 'type' => Controls_Manager::DIMENSIONS,
1932 + 'size_units' => ['px'],
1933 + 'default' => [
1934 + 'top' => 12,
1935 + 'right' => 25,
1936 + 'bottom' => 12,
1937 + 'left' => 25,
1938 + ],
1939 + 'selectors' => [
1940 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1941 + ],
1942 + 'separator' => 'before',
1943 + ]
1944 + );
1945 +
1946 + $this->add_responsive_control(
1947 + 'btn_margin_1',
1948 + [
1949 + 'label' => esc_html__('Margin', 'king-addons'),
1950 + 'type' => Controls_Manager::DIMENSIONS,
1951 + 'size_units' => ['px'],
1952 + 'default' => [
1953 + 'top' => 0,
1954 + 'right' => 10,
1955 + 'bottom' => 0,
1956 + 'left' => 10,
1957 + ],
1958 + 'selectors' => [
1959 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1960 + ],
1961 + 'separator' => 'after',
1962 + ]
1963 + );
1964 +
1965 + $this->add_control(
1966 + 'btn_border_type_1',
1967 + [
1968 + 'label' => esc_html__('Border Type', 'king-addons'),
1969 + 'type' => Controls_Manager::SELECT,
1970 + 'options' => [
1971 + 'none' => esc_html__('None', 'king-addons'),
1972 + 'solid' => esc_html__('Solid', 'king-addons'),
1973 + 'double' => esc_html__('Double', 'king-addons'),
1974 + 'dotted' => esc_html__('Dotted', 'king-addons'),
1975 + 'dashed' => esc_html__('Dashed', 'king-addons'),
1976 + 'groove' => esc_html__('Groove', 'king-addons'),
1977 + ],
1978 + 'default' => 'solid',
1979 + 'selectors' => [
1980 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-style: {{VALUE}};',
1981 + ],
1982 + ]
1983 + );
1984 +
1985 + $this->add_responsive_control(
1986 + 'btn_border_width_1',
1987 + [
1988 + 'label' => esc_html__('Border Width', 'king-addons'),
1989 + 'type' => Controls_Manager::DIMENSIONS,
1990 + 'size_units' => ['px',],
1991 + 'default' => [
1992 + 'top' => 1,
1993 + 'right' => 1,
1994 + 'bottom' => 1,
1995 + 'left' => 1,
1996 + ],
1997 + 'selectors' => [
1998 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1999 + ],
2000 + 'condition' => [
2001 + 'btn_border_type_1!' => 'none',
2002 + ],
2003 + ]
2004 + );
2005 +
2006 + $this->add_responsive_control(
2007 + 'btn_border_radius_1',
2008 + [
2009 + 'label' => esc_html__('Border Radius', 'king-addons'),
2010 + 'type' => Controls_Manager::DIMENSIONS,
2011 + 'size_units' => ['px', '%'],
2012 + 'default' => [
2013 + 'top' => 2,
2014 + 'right' => 2,
2015 + 'bottom' => 2,
2016 + 'left' => 2,
2017 + ],
2018 + 'selectors' => [
2019 + '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2020 + ],
2021 + 'separator' => 'before',
2022 + ]
2023 + );
2024 +
2025 + $this->end_controls_section();
2026 +
2027 +
2028 + $this->start_controls_section(
2029 + 'settings_section_style_btn_2',
2030 + [
2031 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button Secondary', 'king-addons'),
2032 + 'tab' => Controls_Manager::TAB_STYLE,
2033 + 'show_label' => false,
2034 + ]
2035 + );
2036 +
2037 + $this->start_controls_tabs('tabs_btn_style_2');
2038 +
2039 + $this->start_controls_tab(
2040 + 'tab_btn_normal_2',
2041 + [
2042 + 'label' => esc_html__('Normal', 'king-addons'),
2043 + ]
2044 + );
2045 +
2046 + $this->add_group_control(
2047 + Group_Control_Background::get_type(),
2048 + [
2049 + 'name' => 'btn_bg_color_2',
2050 + 'label' => esc_html__('Background', 'king-addons'),
2051 + 'types' => ['classic', 'gradient'],
2052 + 'fields_options' => [
2053 + 'color' => [
2054 + 'default' => '#434900',
2055 + ],
2056 + ],
2057 + 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn'
2058 + ]
2059 + );
2060 +
2061 + $this->add_control(
2062 + 'btn_color_2',
2063 + [
2064 + 'label' => esc_html__('Text Color', 'king-addons'),
2065 + 'type' => Controls_Manager::COLOR,
2066 + 'default' => '#ffffff',
2067 + 'selectors' => [
2068 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'color: {{VALUE}}',
2069 + '{{WRAPPER}} .king-addons-slider-secondary-btn svg' => 'fill: {{VALUE}}',
2070 + ],
2071 + ]
2072 + );
2073 +
2074 + $this->add_control(
2075 + 'btn_border_color_2',
2076 + [
2077 + 'label' => esc_html__('Border Color', 'king-addons'),
2078 + 'type' => Controls_Manager::COLOR,
2079 + 'default' => '#ffffff',
2080 + 'selectors' => [
2081 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-color: {{VALUE}}',
2082 + ],
2083 + ]
2084 + );
2085 +
2086 + $this->add_group_control(
2087 + Group_Control_Box_Shadow::get_type(),
2088 + [
2089 + 'name' => 'btn_box_shadow_2',
2090 + 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn',
2091 + ]
2092 + );
2093 +
2094 + $this->end_controls_tab();
2095 +
2096 + $this->start_controls_tab(
2097 + 'tab_btn_hover_2',
2098 + [
2099 + 'label' => esc_html__('Hover', 'king-addons'),
2100 + ]
2101 + );
2102 +
2103 + $this->add_group_control(
2104 + Group_Control_Background::get_type(),
2105 + [
2106 + 'name' => 'btn_hover_bg_color_2',
2107 + 'label' => esc_html__('Background', 'king-addons'),
2108 + 'types' => ['classic', 'gradient'],
2109 + 'fields_options' => [
2110 + 'color' => [
2111 + 'default' => '#434900',
2112 + ],
2113 + ],
2114 + 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn:hover'
2115 + ]
2116 + );
2117 +
2118 + $this->add_control(
2119 + 'btn_hover_color_2',
2120 + [
2121 + 'label' => esc_html__('Text Color', 'king-addons'),
2122 + 'type' => Controls_Manager::COLOR,
2123 + 'selectors' => [
2124 + '{{WRAPPER}} .king-addons-slider-secondary-btn:hover' => 'color: {{VALUE}}',
2125 + '{{WRAPPER}} .king-addons-slider-secondary-btn:hover svg' => 'fill: {{VALUE}}',
2126 + ],
2127 + ]
2128 + );
2129 +
2130 + $this->add_control(
2131 + 'btn_hover_border_color_2',
2132 + [
2133 + 'label' => esc_html__('Border Color', 'king-addons'),
2134 + 'type' => Controls_Manager::COLOR,
2135 + 'selectors' => [
2136 + '{{WRAPPER}} .king-addons-slider-secondary-btn:hover' => 'border-color: {{VALUE}}',
2137 + ],
2138 + ]
2139 + );
2140 +
2141 + $this->add_group_control(
2142 + Group_Control_Box_Shadow::get_type(),
2143 + [
2144 + 'name' => 'btn_hover_box_shadow_2',
2145 + 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn:hover',
2146 + ]
2147 + );
2148 +
2149 + $this->end_controls_tab();
2150 +
2151 + $this->end_controls_tabs();
2152 +
2153 + $this->add_control(
2154 + 'btn_transition_duration_2',
2155 + [
2156 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
2157 + 'type' => Controls_Manager::NUMBER,
2158 + 'default' => 0.1,
2159 + 'min' => 0,
2160 + 'max' => 5,
2161 + 'step' => 0.1,
2162 + 'selectors' => [
2163 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2164 + '{{WRAPPER}} .king-addons-slider-secondary-btn svg' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2165 + ],
2166 + 'separator' => 'before',
2167 + ]
2168 + );
2169 +
2170 + $this->add_control(
2171 + 'btn_typography_2_divider',
2172 + [
2173 + 'type' => Controls_Manager::DIVIDER,
2174 + 'style' => 'thick',
2175 + ]
2176 + );
2177 +
2178 + $this->add_group_control(
2179 + Group_Control_Typography::get_type(),
2180 + [
2181 + 'name' => 'btn_typography_2',
2182 + 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn',
2183 + 'separator' => 'before',
2184 + ]
2185 + );
2186 +
2187 + $this->add_responsive_control(
2188 + 'btn_icon_size_2',
2189 + [
2190 + 'label' => esc_html__('Icon Size', 'king-addons'),
2191 + 'type' => Controls_Manager::SLIDER,
2192 + 'range' => [
2193 + 'px' => [
2194 + 'min' => 5,
2195 + 'max' => 30,
2196 + ],
2197 + ],
2198 + 'default' => [
2199 + 'unit' => 'px',
2200 + 'size' => 13,
2201 + ],
2202 + 'selectors' => [
2203 + '{{WRAPPER}} .king-addons-slider-secondary-btn i' => 'font-size: {{SIZE}}{{UNIT}};',
2204 + '{{WRAPPER}} .king-addons-slider-secondary-btn svg' => 'width: {{SIZE}}{{UNIT}}; height: auto;',
2205 + ],
2206 + ]
2207 + );
2208 +
2209 +
2210 + $this->add_responsive_control(
2211 + 'btn_padding_2',
2212 + [
2213 + 'label' => esc_html__('Padding', 'king-addons'),
2214 + 'type' => Controls_Manager::DIMENSIONS,
2215 + 'size_units' => ['px',],
2216 + 'default' => [
2217 + 'top' => 12,
2218 + 'right' => 25,
2219 + 'bottom' => 12,
2220 + 'left' => 25,
2221 + ],
2222 + 'selectors' => [
2223 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2224 + ],
2225 + 'separator' => 'before',
2226 + ]
2227 + );
2228 +
2229 + $this->add_responsive_control(
2230 + 'btn_margin_2',
2231 + [
2232 + 'label' => esc_html__('Margin', 'king-addons'),
2233 + 'type' => Controls_Manager::DIMENSIONS,
2234 + 'size_units' => ['px',],
2235 + 'default' => [
2236 + 'top' => 0,
2237 + 'right' => 10,
2238 + 'bottom' => 0,
2239 + 'left' => 10,
2240 + ],
2241 + 'selectors' => [
2242 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2243 + ],
2244 + 'separator' => 'after',
2245 + ]
2246 + );
2247 +
2248 + $this->add_control(
2249 + 'btn_border_type_2',
2250 + [
2251 + 'label' => esc_html__('Border Type', 'king-addons'),
2252 + 'type' => Controls_Manager::SELECT,
2253 + 'options' => [
2254 + 'none' => esc_html__('None', 'king-addons'),
2255 + 'solid' => esc_html__('Solid', 'king-addons'),
2256 + 'double' => esc_html__('Double', 'king-addons'),
2257 + 'dotted' => esc_html__('Dotted', 'king-addons'),
2258 + 'dashed' => esc_html__('Dashed', 'king-addons'),
2259 + 'groove' => esc_html__('Groove', 'king-addons'),
2260 + ],
2261 + 'default' => 'solid',
2262 + 'selectors' => [
2263 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-style: {{VALUE}};',
2264 + ],
2265 + ]
2266 + );
2267 +
2268 + $this->add_responsive_control(
2269 + 'btn_border_width_2',
2270 + [
2271 + 'label' => esc_html__('Border Width', 'king-addons'),
2272 + 'type' => Controls_Manager::DIMENSIONS,
2273 + 'size_units' => ['px',],
2274 + 'default' => [
2275 + 'top' => 1,
2276 + 'right' => 1,
2277 + 'bottom' => 1,
2278 + 'left' => 1,
2279 + ],
2280 + 'selectors' => [
2281 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2282 + ],
2283 + 'condition' => [
2284 + 'btn_border_type_2!' => 'none',
2285 + ],
2286 + ]
2287 + );
2288 +
2289 + $this->add_responsive_control(
2290 + 'btn_border_radius_2',
2291 + [
2292 + 'label' => esc_html__('Border Radius', 'king-addons'),
2293 + 'type' => Controls_Manager::DIMENSIONS,
2294 + 'size_units' => ['px', '%'],
2295 + 'default' => [
2296 + 'top' => 2,
2297 + 'right' => 2,
2298 + 'bottom' => 2,
2299 + 'left' => 2,
2300 + ],
2301 + 'selectors' => [
2302 + '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2303 + ],
2304 + 'separator' => 'before',
2305 + ]
2306 + );
2307 +
2308 + $this->end_controls_section();
2309 +
2310 +
2311 + $this->add_section_style_scroll_btn();
2312 +
2313 +
2314 + $this->start_controls_section(
2315 + 'settings_section_style_slider_video_btn',
2316 + [
2317 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Video Icon', 'king-addons'),
2318 + 'tab' => Controls_Manager::TAB_STYLE,
2319 + ]
2320 + );
2321 +
2322 + $this->add_responsive_control(
2323 + 'slider_video_btn_size',
2324 + [
2325 + 'label' => esc_html__('Video Icon Size', 'king-addons'),
2326 + 'type' => Controls_Manager::SELECT,
2327 + 'default' => 'medium',
2328 + 'options' => [
2329 + 'none' => esc_html__('None', 'king-addons'),
2330 + 'small' => esc_html__('Small', 'king-addons'),
2331 + 'medium' => esc_html__('Medium', 'king-addons'),
2332 + 'large' => esc_html__('Large', 'king-addons'),
2333 + ],
2334 + 'frontend_available' => true,
2335 +
2336 + ]
2337 + );
2338 +
2339 + $this->add_control(
2340 + 'slider_video_btn_color',
2341 + [
2342 + 'label' => esc_html__('Text Color', 'king-addons'),
2343 + 'type' => Controls_Manager::COLOR,
2344 + 'default' => '#ffffff',
2345 + 'selectors' => [
2346 + '{{WRAPPER}} .king-addons-slider-video-btn' => 'color: {{VALUE}}; border-color: {{VALUE}};',
2347 + ],
2348 + ]
2349 + );
2350 +
2351 + $this->end_controls_section();
2352 +
2353 +
2354 + $this->start_controls_section(
2355 + 'settings_section_style_slider_nav',
2356 + [
2357 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Navigation', 'king-addons'),
2358 + 'tab' => Controls_Manager::TAB_STYLE,
2359 + ]
2360 + );
2361 +
2362 + $this->start_controls_tabs('tabs_slider_nav_style');
2363 +
2364 + $this->start_controls_tab(
2365 + 'tab_slider_nav_normal',
2366 + [
2367 + 'label' => esc_html__('Normal', 'king-addons'),
2368 + ]
2369 + );
2370 +
2371 + $this->add_control(
2372 + 'slider_nav_color',
2373 + [
2374 + 'label' => esc_html__('Color', 'king-addons'),
2375 + 'type' => Controls_Manager::COLOR,
2376 + 'default' => 'rgba(255,255,255,0.8)',
2377 + 'selectors' => [
2378 + '{{WRAPPER}} .king-addons-slider-arrow' => 'color: {{VALUE}};',
2379 + '{{WRAPPER}} .king-addons-slider-arrow svg' => 'fill: {{VALUE}};',
2380 + ],
2381 + ]
2382 + );
2383 +
2384 + $this->add_control(
2385 + 'slider_nav_bg_color',
2386 + [
2387 + 'label' => esc_html__('Background Color', 'king-addons'),
2388 + 'type' => Controls_Manager::COLOR,
2389 + 'selectors' => [
2390 + '{{WRAPPER}} .king-addons-slider-arrow' => 'background-color: {{VALUE}};',
2391 + ],
2392 + ]
2393 + );
2394 +
2395 + $this->add_control(
2396 + 'slider_nav_border_color',
2397 + [
2398 + 'label' => esc_html__('Border Color', 'king-addons'),
2399 + 'type' => Controls_Manager::COLOR,
2400 + 'default' => 'rgba(255,255,255,0.8)',
2401 + 'selectors' => [
2402 + '{{WRAPPER}} .king-addons-slider-arrow' => 'border-color: {{VALUE}};',
2403 + ],
2404 + ]
2405 + );
2406 +
2407 + $this->end_controls_tab();
2408 +
2409 + $this->start_controls_tab(
2410 + 'tab_slider_nav_hover',
2411 + [
2412 + 'label' => esc_html__('Hover', 'king-addons'),
2413 + ]
2414 + );
2415 +
2416 + $this->add_control(
2417 + 'slider_nav_hover_color',
2418 + [
2419 + 'label' => esc_html__('Color', 'king-addons'),
2420 + 'type' => Controls_Manager::COLOR,
2421 + 'default' => '#ffffff',
2422 + 'selectors' => [
2423 + '{{WRAPPER}} .king-addons-slider-arrow:hover' => 'color: {{VALUE}};',
2424 + '{{WRAPPER}} .king-addons-slider-arrow:hover svg' => 'fill: {{VALUE}};',
2425 + ],
2426 + ]
2427 + );
2428 +
2429 + $this->add_control(
2430 + 'slider_nav_hover_bg_color',
2431 + [
2432 + 'label' => esc_html__('Background Color', 'king-addons'),
2433 + 'type' => Controls_Manager::COLOR,
2434 + 'selectors' => [
2435 + '{{WRAPPER}} .king-addons-slider-arrow:hover' => 'background-color: {{VALUE}};',
2436 + ],
2437 + ]
2438 + );
2439 +
2440 + $this->add_control(
2441 + 'slider_nav_hover_border_color',
2442 + [
2443 + 'label' => esc_html__('Border Color', 'king-addons'),
2444 + 'type' => Controls_Manager::COLOR,
2445 + 'selectors' => [
2446 + '{{WRAPPER}} .king-addons-slider-arrow:hover' => 'border-color: {{VALUE}};',
2447 + ],
2448 + ]
2449 + );
2450 +
2451 + $this->end_controls_tab();
2452 +
2453 + $this->end_controls_tabs();
2454 +
2455 + $this->add_control(
2456 + 'slider_nav_transition_duration',
2457 + [
2458 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
2459 + 'type' => Controls_Manager::NUMBER,
2460 + 'default' => 0.1,
2461 + 'min' => 0,
2462 + 'max' => 5,
2463 + 'step' => 0.1,
2464 + 'selectors' => [
2465 + '{{WRAPPER}} .king-addons-slider-arrow' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2466 + '{{WRAPPER}} .king-addons-slider-arrow svg' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2467 + ],
2468 + 'separator' => 'before',
2469 + ]
2470 + );
2471 +
2472 + $this->add_responsive_control(
2473 + 'slider_nav_font_size',
2474 + [
2475 + 'label' => esc_html__('Font Size', 'king-addons'),
2476 + 'type' => Controls_Manager::SLIDER,
2477 + 'size_units' => ['px',],
2478 + 'range' => [
2479 + 'px' => [
2480 + 'min' => 10,
2481 + 'max' => 200,
2482 + ],
2483 + ],
2484 + 'default' => [
2485 + 'unit' => 'px',
2486 + 'size' => 25,
2487 + ],
2488 + 'selectors' => [
2489 + '{{WRAPPER}} .king-addons-slider-arrow' => 'font-size: {{SIZE}}{{UNIT}};',
2490 + '{{WRAPPER}} .king-addons-slider-arrow svg' => 'width: {{SIZE}}{{UNIT}};',
2491 + ],
2492 + 'separator' => 'before',
2493 + ]
2494 + );
2495 +
2496 + $this->add_responsive_control(
2497 + 'slider_nav_size',
2498 + [
2499 + 'label' => esc_html__('Box Size', 'king-addons'),
2500 + 'type' => Controls_Manager::SLIDER,
2501 + 'size_units' => ['px',],
2502 + 'range' => [
2503 + 'px' => [
2504 + 'min' => 10,
2505 + 'max' => 200,
2506 + ],
2507 + ],
2508 + 'default' => [
2509 + 'unit' => 'px',
2510 + 'size' => 60,
2511 + ],
2512 + 'selectors' => [
2513 + '{{WRAPPER}} .king-addons-slider-arrow' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
2514 + ],
2515 + 'separator' => 'after',
2516 + ]
2517 + );
2518 +
2519 + $this->add_control(
2520 + 'slider_nav_border_type',
2521 + [
2522 + 'label' => esc_html__('Border Type', 'king-addons'),
2523 + 'type' => Controls_Manager::SELECT,
2524 + 'options' => [
2525 + 'none' => esc_html__('None', 'king-addons'),
2526 + 'solid' => esc_html__('Solid', 'king-addons'),
2527 + 'double' => esc_html__('Double', 'king-addons'),
2528 + 'dotted' => esc_html__('Dotted', 'king-addons'),
2529 + 'dashed' => esc_html__('Dashed', 'king-addons'),
2530 + 'groove' => esc_html__('Groove', 'king-addons'),
2531 + ],
2532 + 'default' => 'none',
2533 + 'selectors' => [
2534 + '{{WRAPPER}} .king-addons-slider-arrow' => 'border-style: {{VALUE}};',
2535 + ],
2536 + ]
2537 + );
2538 +
2539 + $this->add_responsive_control(
2540 + 'slider_nav_border_width',
2541 + [
2542 + 'label' => esc_html__('Border Width', 'king-addons'),
2543 + 'type' => Controls_Manager::DIMENSIONS,
2544 + 'size_units' => ['px',],
2545 + 'default' => [
2546 + 'top' => 2,
2547 + 'right' => 2,
2548 + 'bottom' => 2,
2549 + 'left' => 2,
2550 + ],
2551 + 'selectors' => [
2552 + '{{WRAPPER}} .king-addons-slider-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2553 + ],
2554 + 'condition' => [
2555 + 'slider_nav_border_type!' => 'none',
2556 + ],
2557 + ]
2558 + );
2559 +
2560 + $this->add_control(
2561 + 'slider_nav_border_radius',
2562 + [
2563 + 'label' => esc_html__('Border Radius', 'king-addons'),
2564 + 'type' => Controls_Manager::DIMENSIONS,
2565 + 'size_units' => ['px', '%'],
2566 + 'selectors' => [
2567 + '{{WRAPPER}} .king-addons-slider-arrow' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2568 + ],
2569 + 'separator' => 'after',
2570 + ]
2571 + );
2572 +
2573 + $this->add_control_stack_slider_nav_position();
2574 +
2575 + $this->end_controls_section();
2576 +
2577 +
2578 + $this->start_controls_section(
2579 + 'settings_section_style_slider_dots',
2580 + [
2581 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Pagination', 'king-addons'),
2582 + 'tab' => Controls_Manager::TAB_STYLE,
2583 + ]
2584 + );
2585 +
2586 + $this->start_controls_tabs('tabs_slider_dots');
2587 +
2588 + $this->start_controls_tab(
2589 + 'tab_slider_dots_normal',
2590 + [
2591 + 'label' => esc_html__('Normal', 'king-addons'),
2592 + ]
2593 + );
2594 +
2595 + $this->add_control(
2596 + 'slider_dots_bg_color',
2597 + [
2598 + 'label' => esc_html__('Background Color', 'king-addons'),
2599 + 'type' => Controls_Manager::COLOR,
2600 + 'default' => 'rgba(0,0,0,0.35)',
2601 + 'selectors' => [
2602 + '{{WRAPPER}} .king-addons-slider-dot' => 'background-color: {{VALUE}};',
2603 + ],
2604 + ]
2605 + );
2606 +
2607 + $this->add_control(
2608 + 'slider_dots_border_color',
2609 + [
2610 + 'label' => esc_html__('Border Color', 'king-addons'),
2611 + 'type' => Controls_Manager::COLOR,
2612 + 'selectors' => [
2613 + '{{WRAPPER}} .king-addons-slider-dot' => 'border-color: {{VALUE}}',
2614 + ],
2615 + ]
2616 + );
2617 +
2618 + $this->end_controls_tab();
2619 +
2620 + $this->start_controls_tab(
2621 + 'tab_slider_dots_active',
2622 + [
2623 + 'label' => esc_html__('Active', 'king-addons'),
2624 + ]
2625 + );
2626 +
2627 + $this->add_control(
2628 + 'slider_dots_active_bg_color',
2629 + [
2630 + 'label' => esc_html__('Background Color', 'king-addons'),
2631 + 'type' => Controls_Manager::COLOR,
2632 + 'default' => '#222222',
2633 + 'selectors' => [
2634 + '{{WRAPPER}} .king-addons-slider-dots .slick-active .king-addons-slider-dot' => 'background-color: {{VALUE}}',
2635 + ],
2636 + ]
2637 + );
2638 +
2639 + $this->add_control(
2640 + 'slider_dots_active_border_color',
2641 + [
2642 + 'label' => esc_html__('Border Color', 'king-addons'),
2643 + 'type' => Controls_Manager::COLOR,
2644 + 'selectors' => [
2645 + '{{WRAPPER}} .king-addons-slider-dots .slick-active .king-addons-slider-dot' => 'border-color: {{VALUE}}',
2646 + ],
2647 + ]
2648 + );
2649 +
2650 + $this->end_controls_tab();
2651 +
2652 + $this->end_controls_tabs();
2653 +
2654 + $this->add_responsive_control(
2655 + 'slider_dots_width',
2656 + [
2657 + 'label' => esc_html__('Box Width', 'king-addons'),
2658 + 'type' => Controls_Manager::SLIDER,
2659 + 'size_units' => ['px',],
2660 + 'range' => [
2661 + 'px' => [
2662 + 'min' => 1,
2663 + 'max' => 100,
2664 + ],
2665 + ],
2666 + 'default' => [
2667 + 'unit' => 'px',
2668 + 'size' => 8,
2669 + ],
2670 + 'selectors' => [
2671 + '{{WRAPPER}} .king-addons-slider-dot' => 'width: {{SIZE}}{{UNIT}};',
2672 + ],
2673 + 'separator' => 'before',
2674 + 'render_type' => 'template'
2675 + ]
2676 + );
2677 +
2678 + $this->add_responsive_control(
2679 + 'slider_dots_height',
2680 + [
2681 + 'label' => esc_html__('Box Height', 'king-addons'),
2682 + 'type' => Controls_Manager::SLIDER,
2683 + 'size_units' => ['px',],
2684 + 'range' => [
2685 + 'px' => [
2686 + 'min' => 1,
2687 + 'max' => 100,
2688 + ],
2689 + ],
2690 + 'default' => [
2691 + 'unit' => 'px',
2692 + 'size' => 8,
2693 + ],
2694 + 'selectors' => [
2695 + '{{WRAPPER}} .king-addons-slider-dot' => 'height: {{SIZE}}{{UNIT}};',
2696 + ],
2697 + 'render_type' => 'template'
2698 + ]
2699 + );
2700 +
2701 + $this->add_control(
2702 + 'slider_dots_border_type',
2703 + [
2704 + 'label' => esc_html__('Border Type', 'king-addons'),
2705 + 'type' => Controls_Manager::SELECT,
2706 + 'options' => [
2707 + 'none' => esc_html__('None', 'king-addons'),
2708 + 'solid' => esc_html__('Solid', 'king-addons'),
2709 + 'double' => esc_html__('Double', 'king-addons'),
2710 + 'dotted' => esc_html__('Dotted', 'king-addons'),
2711 + 'dashed' => esc_html__('Dashed', 'king-addons'),
2712 + 'groove' => esc_html__('Groove', 'king-addons'),
2713 + ],
2714 + 'default' => 'none',
2715 + 'selectors' => [
2716 + '{{WRAPPER}} .king-addons-slider-dot' => 'border-style: {{VALUE}};',
2717 + ],
2718 + 'separator' => 'before',
2719 + 'render_type' => 'template'
2720 + ]
2721 + );
2722 +
2723 + $this->add_responsive_control(
2724 + 'slider_dots_border_width',
2725 + [
2726 + 'label' => esc_html__('Border Width', 'king-addons'),
2727 + 'type' => Controls_Manager::DIMENSIONS,
2728 + 'size_units' => ['px',],
2729 + 'default' => [
2730 + 'top' => 1,
2731 + 'right' => 1,
2732 + 'bottom' => 1,
2733 + 'left' => 1,
2734 + ],
2735 + 'selectors' => [
2736 + '{{WRAPPER}} .king-addons-slider-dot' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2737 + ],
2738 + 'render_type' => 'template',
2739 + 'condition' => [
2740 + 'slider_dots_border_type!' => 'none',
2741 + ],
2742 + ]
2743 + );
2744 +
2745 + $this->add_responsive_control(
2746 + 'slider_dots_border_radius',
2747 + [
2748 + 'label' => esc_html__('Border Radius', 'king-addons'),
2749 + 'type' => Controls_Manager::DIMENSIONS,
2750 + 'default' => [
2751 + 'top' => 50,
2752 + 'right' => 50,
2753 + 'bottom' => 50,
2754 + 'left' => 50,
2755 + 'unit' => '%',
2756 + ],
2757 + 'size_units' => ['px', '%'],
2758 + 'selectors' => [
2759 + '{{WRAPPER}} .king-addons-slider-dot' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2760 + ],
2761 + 'separator' => 'before',
2762 + ]
2763 + );
2764 +
2765 + $this->add_responsive_control(
2766 + 'slider_dots_gutter',
2767 + [
2768 + 'type' => Controls_Manager::SLIDER,
2769 + 'label' => esc_html__('Gutter', 'king-addons'),
2770 + 'size_units' => ['px'],
2771 + 'range' => [
2772 + 'px' => [
2773 + 'min' => 0,
2774 + 'max' => 50,
2775 + ],
2776 + ],
2777 + 'default' => [
2778 + 'unit' => 'px',
2779 + 'size' => 7,
2780 + ],
2781 + 'selectors' => [
2782 + '{{WRAPPER}}.king-addons-slider-dots-horizontal .king-addons-slider-dot' => 'margin-right: {{SIZE}}{{UNIT}};',
2783 + '{{WRAPPER}}.king-addons-slider-dots-vertical .king-addons-slider-dot' => 'margin-bottom: {{SIZE}}{{UNIT}};',
2784 + ],
2785 + 'separator' => 'before',
2786 + 'render_type' => 'template'
2787 + ]
2788 + );
2789 +
2790 + $this->add_control_slider_dots_hr();
2791 +
2792 + $this->add_responsive_control(
2793 + 'slider_dots_vr',
2794 + [
2795 + 'type' => Controls_Manager::SLIDER,
2796 + 'label' => esc_html__('Vertical Position', 'king-addons'),
2797 + 'size_units' => ['%', 'px'],
2798 + 'range' => [
2799 + '%' => [
2800 + 'min' => -20,
2801 + 'max' => 120,
2802 + ],
2803 + 'px' => [
2804 + 'min' => -200,
2805 + 'max' => 2000,
2806 + ],
2807 + ],
2808 + 'default' => [
2809 + 'unit' => '%',
2810 + 'size' => 96,
2811 + ],
2812 + 'selectors' => [
2813 + '{{WRAPPER}} .king-addons-slider-dots' => 'top: {{SIZE}}{{UNIT}};',
2814 + ],
2815 + ]
2816 + );
2817 +
2818 +
2819 +
2820 +
2821 +$this->end_controls_section();
2822 +
2823 +
2824 +
2825 + }
2826 +
2827 + public function load_slider_template($id)
2828 + {
2829 + if (empty($id)) {
2830 + return '';
2831 + }
2832 +
2833 + // WPML / Polylang language handling
2834 + if (defined('ICL_LANGUAGE_CODE')) {
2835 + $default_language_code = apply_filters('wpml_default_language', null);
2836 + /** @noinspection PhpUndefinedConstantInspection */
2837 + if (ICL_LANGUAGE_CODE !== $default_language_code) {
2838 + /** @noinspection PhpUndefinedConstantInspection */
2839 + /** @noinspection PhpUndefinedFunctionInspection */
2840 + $id = icl_object_id($id, 'elementor_library', false, ICL_LANGUAGE_CODE);
2841 + }
2842 + }
2843 +
2844 + $type = get_post_meta(get_the_ID(), '_king_addons_template_type', true);
2845 + $has_css = (
2846 + 'internal' === get_option('elementor_css_print_method')
2847 + || '' !== $type
2848 + );
2849 +
2850 + // Return the rendered Elementor template plus an "Edit" link
2851 + return Elementor\Plugin::instance()->frontend->get_builder_content_for_display($id, $has_css);
2852 + }
2853 +
2854 + // Stub left intentionally for compatibility with the original code
2855 + public function render_pro_element_slider_scroll_btn()
2856 + {
2857 + }
2858 +
2859 + protected function render()
2860 + {
2861 + $settings = $this->get_settings_for_display();
2862 + $slider_html = '';
2863 + $item_count = 0;
2864 +
2865 + // Early exit if no slider items
2866 + if (empty($settings['slider_items'])) {
2867 + return;
2868 + }
2869 +
2870 + $tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p'];
2871 +
2872 + $settings_slider_title_tag = Core::validateHTMLTags($settings['slider_title_tag'], 'h2', $tags_whitelist);
2873 + $settings_slider_sub_title_tag = Core::validateHTMLTags($settings['slider_sub_title_tag'], 'h3', $tags_whitelist);
2874 +
2875 + // Check if premium code is allowed
2876 + $is_premium = king_addons_freemius()->can_use_premium_code__premium_only();
2877 +
2878 + /**
2879 + * If the slider effect is "slide_vertical", force the slider_amount to 1
2880 + * (this matches the original code logic).
2881 + * Otherwise, use the slider_amount from the settings.
2882 + */
2883 + $slider_amount = ($settings['slider_effect'] === 'slide_vertical')
2884 + ? 1
2885 + : (int)$settings['slider_amount'];
2886 +
2887 + // In free version, override some settings if needed
2888 + if (!$is_premium) {
2889 + if (in_array($settings['slider_amount'], ['pro-3', 'pro-4', 'pro-5', 'pro-6'])) {
2890 + $settings['slider_amount'] = 2; // Force fallback for free version
2891 + }
2892 + }
2893 +
2894 + // Helper closure to get the background image URL
2895 + $get_bg_image_url = function ($item) use ($settings) {
2896 + if (
2897 + !empty($item['slider_item_bg_image']['source'])
2898 + && $item['slider_item_bg_image']['source'] === 'url'
2899 + ) {
2900 + return $item['slider_item_bg_image']['url'] ?? '';
2901 + }
2902 + return Group_Control_Image_Size::get_attachment_image_src(
2903 + $item['slider_item_bg_image']['id'],
2904 + 'slider_image_size',
2905 + $settings
2906 + );
2907 + };
2908 +
2909 + // Helper closure to render icons
2910 + $render_icon_html = function ($icon) {
2911 + if (!empty($icon['value'])) {
2912 + ob_start();
2913 + Icons_Manager::render_icon($icon, ['aria-hidden' => 'true']);
2914 + return ob_get_clean();
2915 + }
2916 + return '';
2917 + };
2918 +
2919 + foreach ($settings['slider_items'] as $key => $item) {
2920 + // Free version: limit to 4 slides
2921 + if (!$is_premium && $key === 4) {
2922 + break;
2923 + }
2924 +
2925 + // In free version, force content type to custom (if template is not allowed)
2926 + if (!$is_premium) {
2927 + $item['slider_content_type'] = 'custom';
2928 + }
2929 +
2930 + // If this slide is loaded from another Elementor template
2931 + if ($item['slider_content_type'] === 'template') {
2932 + $slider_html .= sprintf(
2933 + '<div class="king-addons-slider-item elementor-repeater-item-%s">%s</div>',
2934 + esc_attr($item['_id']),
2935 + $this->load_slider_template($item['slider_select_template'])
2936 + );
2937 + continue; // proceed to the next item
2938 + }
2939 +
2940 + // --- Below is the logic for "custom" slide content ---
2941 + if (!$is_premium) {
2942 + $item['slider_item_link_type'] = 'none';
2943 + }
2944 +
2945 + $this->add_render_attribute("slider_item$item_count", 'class', [
2946 + 'king-addons-slider-item',
2947 + 'elementor-repeater-item-' . esc_attr($item['_id'])
2948 + ]);
2949 +
2950 + $item_type = $item['slider_item_link_type'];
2951 + $item_bg_image_url = $get_bg_image_url($item);
2952 + $ken_burn_class = ($item['slider_item_bg_kenburns'] === 'yes')
2953 + ? ' king-addons-ken-burns-' . $item['slider_item_bg_zoom']
2954 + : '';
2955 +
2956 + // --- VIDEO logic ---
2957 + if (strpos($item_type, 'video') !== false && !empty($item['slider_item_video_src'])) {
2958 + $this->add_render_attribute("slider_item$item_count", 'class', 'king-addons-slider-video-item');
2959 + $this->add_render_attribute(
2960 + "slider_item$item_count",
2961 + 'data-video-autoplay',
2962 + esc_attr($item['slider_item_video_autoplay'])
2963 + );
2964 +
2965 + $item_video_src = $item['slider_item_video_src'];
2966 + $start_time = esc_attr($item['slider_item_video_start']);
2967 + $end_time = esc_attr($item['slider_item_video_end']);
2968 + $autoplay = ($item['slider_item_video_autoplay'] === 'yes');
2969 + $mute = ($item['slider_item_video_mute'] === 'yes');
2970 + $controls = ($item['slider_item_video_controls'] === 'yes');
2971 + $loop = ($item['slider_item_video_loop'] === 'yes');
2972 +
2973 + // YouTube
2974 + if ($item_type === 'video-youtube') {
2975 + preg_match('![?&]v=([^&]+)!', $item_video_src, $video_id);
2976 + $youtube_id = $video_id[1] ?? '';
2977 +
2978 + if (!$item_bg_image_url) {
2979 + $item_bg_image_url = "https://i.ytimg.com/vi_webp/$youtube_id/maxresdefault.webp";
2980 + }
2981 + $item_video_src = $autoplay
2982 + ? "https://www.youtube.com/embed/$youtube_id?autoplay=1"
2983 + : "https://www.youtube.com/embed/$youtube_id?enablejsapi=1";
2984 +
2985 + if ($mute) $item_video_src .= '&mute=1';
2986 + if (!$controls) $item_video_src .= '&controls=0';
2987 +
2988 + if ($loop) {
2989 + $item_video_src .= '&loop=1&playlist=' . $youtube_id;
2990 + } else {
2991 + if ($start_time) $item_video_src .= '&start=' . $start_time;
2992 + if ($end_time) $item_video_src .= '&end=' . $end_time;
2993 + }
2994 + } // Vimeo
2995 + elseif ($item_type === 'video-vimeo') {
2996 + $item_video_src = str_replace('vimeo.com', 'player.vimeo.com/video', $item_video_src);
2997 + $item_video_src .= '?autoplay=1&title=0&portrait=0&byline=0';
2998 + if ($mute) $item_video_src .= '&muted=1';
2999 + if (!$controls) $item_video_src .= '&controls=0';
3000 + if ($loop) {
3001 + $item_video_src .= '&loop=1';
3002 + } elseif ($start_time) {
3003 + // Convert the start time into HhMmSs format
3004 + $item_video_src .= '&#t='
3005 + . gmdate('H', $start_time) . 'h'
3006 + . gmdate('i', $start_time) . 'm'
3007 + . gmdate('s', $start_time) . 's';
3008 + }
3009 + } // Self-hosted
3010 + elseif ($item_type === 'video-media') {
3011 + $item_video_src = $item['hosted_url']['url'] ?? '';
3012 + $video_mute = $mute ? 'muted' : '';
3013 + $video_loop = $loop ? 'loop' : '';
3014 + $video_controls = $controls ? 'controls' : '';
3015 + $this->add_render_attribute("slider_item$item_count", 'data-video-mute', $video_mute);
3016 + $this->add_render_attribute("slider_item$item_count", 'data-video-loop', $video_loop);
3017 + $this->add_render_attribute("slider_item$item_count", 'data-video-controls', $video_controls);
3018 + }
3019 + $this->add_render_attribute(
3020 + "slider_item$item_count",
3021 + 'data-video-src',
3022 + esc_url($item_video_src)
3023 + );
3024 + }
3025 +
3026 + // Begin wrapper
3027 + $slider_html .= '<div ' . $this->get_render_attribute_string("slider_item$item_count") . '>';
3028 +
3029 + // Display as an <img> tag or via background
3030 + if ($settings['slider_image_type'] === 'image') {
3031 + $slider_html .= '<img class="king-addons-slider-img" src="' . esc_url($item_bg_image_url) . '"/>';
3032 + } else {
3033 + $slider_html .= '<div class="king-addons-slider-item-bg ' . esc_attr($ken_burn_class) . '" '
3034 + . 'style="background-image:url(' . esc_url($item_bg_image_url) . ')"></div>';
3035 + }
3036 +
3037 + /**
3038 + * Processing the overlay:
3039 + * - If the slider has only 1 slide or blend_mode != normal, insert overlay immediately.
3040 + * - If multiple slides and blend_mode = normal, store overlay in a variable and place it later.
3041 + */
3042 + $slider_overlay_html = '';
3043 + if ($item['slider_item_overlay'] === 'yes') {
3044 + if ($slider_amount === 1 || $item['slider_item_blend_mode'] !== 'normal') {
3045 + $slider_html .= '<div class="king-addons-slider-item-overlay"></div>';
3046 + } else {
3047 + // for multi-slide + normal blend mode, insert the overlay later
3048 + $slider_overlay_html = '<div class="king-addons-slider-item-overlay"></div>';
3049 + }
3050 + }
3051 +
3052 + // Prepare containers
3053 + $this->add_render_attribute("slider_container$item_count", 'class', 'king-addons-cv-container');
3054 + $this->add_render_attribute("slider_outer$item_count", 'class', 'king-addons-cv-outer');
3055 +
3056 + // If the effect is not "fade", disable the content animation
3057 + if ($settings['slider_effect'] !== 'fade') {
3058 + $settings['slider_content_animation'] = 'none';
3059 + }
3060 +
3061 + // If content animation is enabled
3062 + if ($settings['slider_content_animation'] !== 'none') {
3063 + $anim_size = esc_attr($settings['slider_content_anim_size']);
3064 + $anim_type = esc_attr($settings['slider_content_animation']);
3065 +
3066 + $this->add_render_attribute("slider_container$item_count", 'class', 'king-addons-slider-animation');
3067 + $this->add_render_attribute("slider_outer$item_count", 'class', [
3068 + 'king-addons-anim-transparency',
3069 + 'king-addons-anim-size-' . $anim_size,
3070 + 'king-addons-overlay-' . $anim_type
3071 + ]);
3072 +
3073 + /**
3074 + * For multi-slide + manual video start (non-autoplay),
3075 + * add an additional .king-addons-animation-wrap class
3076 + */
3077 + if (
3078 + $slider_amount !== 1
3079 + && !empty($item_bg_image_url)
3080 + && $item['slider_item_video_autoplay'] !== 'yes'
3081 + ) {
3082 + $this->add_render_attribute("slider_container$item_count", 'class', 'king-addons-animation-wrap');
3083 + }
3084 + }
3085 +
3086 + $slider_html .= '<div ' . $this->get_render_attribute_string("slider_container$item_count") . '>';
3087 +
3088 + // Optional link wrapping the background
3089 + $bg_link = $item['slider_item_bg_image_url']['url'] ?? '';
3090 + if ($bg_link && $item_type === 'custom') {
3091 + $this->add_render_attribute("slider_item_url$item_count", 'href', esc_url($bg_link));
3092 + if (!empty($item['slider_item_bg_image_url']['is_external'])) {
3093 + $this->add_render_attribute("slider_item_url$item_count", 'target', '_blank');
3094 + }
3095 + if (!empty($item['slider_item_bg_image_url']['nofollow'])) {
3096 + $this->add_render_attribute("slider_item_url$item_count", 'rel', 'nofollow');
3097 + }
3098 + $slider_html .= '<a class="king-addons-slider-item-url" '
3099 + . $this->get_render_attribute_string("slider_item_url$item_count") . '></a>';
3100 + }
3101 +
3102 + $slider_html .= '<div ' . $this->get_render_attribute_string("slider_outer$item_count") . '>';
3103 + $slider_html .= '<div class="king-addons-cv-inner">';
3104 +
3105 + // If multiple slides + normal blend mode, insert the overlay here
3106 + $slider_html .= $slider_overlay_html;
3107 +
3108 + // Slide content
3109 + if ($item['slider_show_content'] === 'yes') {
3110 + $slider_html .= '<div class="king-addons-slider-content">';
3111 +
3112 + // If it's video without autoplay, display the play button
3113 + if (strpos($item_type, 'video') !== false && $item['slider_item_video_autoplay'] !== 'yes') {
3114 + $slider_html .= '<div class="king-addons-slider-video-btn"><i class="fas fa-play"></i></div>';
3115 + }
3116 +
3117 + // Title
3118 + if (
3119 + $settings['slider_title'] === 'yes'
3120 + && !empty($item['slider_item_title'])
3121 + ) {
3122 + /**
3123 + * Use the item's slider_title_tag if valid,
3124 + * otherwise fallback to the global setting
3125 + */
3126 + $tag = $item['slider_title_tag']
3127 + ? Core::validateHTMLTags($item['slider_title_tag'], 'h2', $tags_whitelist)
3128 + : $settings_slider_title_tag;
3129 +
3130 + $slider_html .= '<div class="king-addons-slider-title">';
3131 + $slider_html .= "<$tag>" . wp_kses_post($item['slider_item_title']) . "</$tag>";
3132 + $slider_html .= '</div>';
3133 + }
3134 +
3135 + // Sub Title
3136 + if (
3137 + $settings['slider_sub_title'] === 'yes'
3138 + && !empty($item['slider_item_sub_title'])
3139 + ) {
3140 + $tag = $item['slider_sub_title_tag']
3141 + ? Core::validateHTMLTags($item['slider_sub_title_tag'], 'h3', $tags_whitelist)
3142 + : $settings_slider_sub_title_tag;
3143 +
3144 + $slider_html .= '<div class="king-addons-slider-sub-title">';
3145 + $slider_html .= "<$tag>" . wp_kses_post($item['slider_item_sub_title']) . "</$tag>";
3146 + $slider_html .= '</div>';
3147 + }
3148 +
3149 + // Description
3150 + if (
3151 + $settings['slider_description'] === 'yes'
3152 + && !empty($item['slider_item_description'])
3153 + ) {
3154 + $slider_html .= '<div class="king-addons-slider-description"><p>'
3155 + . wp_kses_post($item['slider_item_description']) . '</p></div>';
3156 + }
3157 +
3158 + // Buttons
3159 + $icon_html_1 = esc_attr($item['slider_item_btn_text_1']) . $render_icon_html($item['slider_item_btn_icon_1']);
3160 + $icon_html_2 = esc_attr($item['slider_item_btn_text_2']) . $render_icon_html($item['slider_item_btn_icon_2']);
3161 +
3162 + $btn1_url = $item['slider_item_btn_url_1']['url'] ?? '';
3163 + $btn2_url = $item['slider_item_btn_url_2']['url'] ?? '';
3164 +
3165 + $slider_html .= '<div class="king-addons-slider-btns">';
3166 +
3167 + // First button
3168 + if ($item['slider_item_btn_1'] === 'yes' && $icon_html_1) {
3169 + $tag_btn1 = 'div';
3170 + $btn1_attribs = '';
3171 + if (!empty($btn1_url)) {
3172 + $tag_btn1 = 'a';
3173 + $this->add_render_attribute("btn1_$item_count", 'href', esc_url($btn1_url));
3174 + if (!empty($item['slider_item_btn_url_1']['is_external'])) {
3175 + $this->add_render_attribute("btn1_$item_count", 'target', '_blank');
3176 + }
3177 + if (!empty($item['slider_item_btn_url_1']['nofollow'])) {
3178 + $this->add_render_attribute("btn1_$item_count", 'rel', 'nofollow');
3179 + }
3180 + $btn1_attribs = $this->get_render_attribute_string("btn1_$item_count");
3181 + }
3182 + $slider_html .= "<$tag_btn1 class=\"king-addons-slider-primary-btn\" $btn1_attribs>$icon_html_1</$tag_btn1>";
3183 + }
3184 +
3185 + // Second button
3186 + if ($item['slider_item_btn_2'] === 'yes' && $icon_html_2) {
3187 + $tag_btn2 = 'div';
3188 + $btn2_attribs = '';
3189 + if (!empty($btn2_url)) {
3190 + $tag_btn2 = 'a';
3191 + $this->add_render_attribute("btn2_$item_count", 'href', esc_url($btn2_url));
3192 + if (!empty($item['slider_item_btn_url_2']['is_external'])) {
3193 + $this->add_render_attribute("btn2_$item_count", 'target', '_blank');
3194 + }
3195 + if (!empty($item['slider_item_btn_url_2']['nofollow'])) {
3196 + $this->add_render_attribute("btn2_$item_count", 'rel', 'nofollow');
3197 + }
3198 + $btn2_attribs = $this->get_render_attribute_string("btn2_$item_count");
3199 + }
3200 + $slider_html .= "<$tag_btn2 class=\"king-addons-slider-secondary-btn\" $btn2_attribs>$icon_html_2</$tag_btn2>";
3201 + }
3202 +
3203 + $slider_html .= '</div>'; // .king-addons-slider-btns
3204 + $slider_html .= '</div>'; // .king-addons-slider-content
3205 + } else {
3206 + // If content is hidden, but it is a video without autoplay, show the "Play" button
3207 + if (strpos($item_type, 'video') !== false && $item['slider_item_video_autoplay'] !== 'yes') {
3208 + $slider_html .= '<div class="king-addons-slider-video-btn"><i class="fas fa-play"></i></div>';
3209 + }
3210 + }
3211 +
3212 + $slider_html .= '</div>'; // .king-addons-cv-inner
3213 + $slider_html .= '</div>'; // slider_outer
3214 + $slider_html .= '</div>'; // slider_container
3215 + $slider_html .= '</div>'; // slider_item
3216 + $item_count++;
3217 + }
3218 +
3219 + // Free version overrides
3220 + if (!$is_premium) {
3221 + $settings['slider_autoplay'] = '';
3222 + $settings['slider_autoplay_duration'] = 0;
3223 + $settings['slider_pause_on_hover'] = '';
3224 + }
3225 +
3226 + // If slider_effect == 'sl_vl', convert it to 'slide' (matching the original logic)
3227 + if ($settings['slider_effect'] === 'sl_vl') {
3228 + $settings['slider_effect'] = 'slide';
3229 + }
3230 +
3231 + $slider_is_rtl = is_rtl();
3232 + $slider_dir = $slider_is_rtl ? 'rtl' : 'ltr';
3233 +
3234 + // Video button sizes for different devices
3235 + $slider_video_btn_widescreen = $settings['slider_video_btn_size_widescreen'] ?? $settings['slider_video_btn_size'];
3236 + $slider_video_btn_desktop = $settings['slider_video_btn_size'] ?? $slider_video_btn_widescreen;
3237 + $slider_video_btn_laptop = $settings['slider_video_btn_size_laptop'] ?? $slider_video_btn_desktop;
3238 + $slider_video_btn_tablet_ext = $settings['slider_video_btn_size_tablet_extra'] ?? $slider_video_btn_laptop;
3239 + $slider_video_btn_tablet = $settings['slider_video_btn_size_tablet'] ?? $slider_video_btn_tablet_ext;
3240 + $slider_video_btn_mobile_ext = $settings['slider_video_btn_size_mobile_extra'] ?? $slider_video_btn_tablet;
3241 + $slider_video_btn_mobile = $settings['slider_video_btn_size_mobile'] ?? $slider_video_btn_mobile_ext;
3242 +
3243 + // Slick slider options
3244 + $slider_options = [
3245 + 'rtl' => $slider_is_rtl,
3246 + 'infinite' => ($settings['slider_loop'] === 'yes'),
3247 + 'speed' => absint(Core::jsNumber($settings, 'slider_effect_duration', 0.7) * 1000),
3248 + 'arrows' => true,
3249 + 'dots' => true,
3250 + 'autoplay' => ($settings['slider_autoplay'] === 'yes'),
3251 + 'autoplaySpeed' => absint($settings['slider_autoplay_duration'] * 1000),
3252 + 'pauseOnHover' => esc_attr($settings['slider_pause_on_hover']),
3253 + 'prevArrow' => '#king-addons-slider-prev-' . $this->get_id(),
3254 + 'nextArrow' => '#king-addons-slider-next-' . $this->get_id(),
3255 + 'vertical' => ($settings['slider_effect'] === 'slide_vertical'),
3256 + 'adaptiveHeight' => true,
3257 + ];
3258 +
3259 + // Pass data to HTML attributes
3260 + $this->add_render_attribute('advanced-slider-attribute', [
3261 + 'class' => 'king-addons-advanced-slider',
3262 + 'dir' => esc_attr($slider_dir),
3263 + 'data-slick' => wp_json_encode($slider_options),
3264 + 'data-video-btn-size' => wp_json_encode([
3265 + 'widescreen' => esc_attr($slider_video_btn_widescreen),
3266 + 'desktop' => esc_attr($slider_video_btn_desktop),
3267 + 'laptop' => esc_attr($slider_video_btn_laptop),
3268 + 'tablet_extra' => esc_attr($slider_video_btn_tablet_ext),
3269 + 'tablet' => esc_attr($slider_video_btn_tablet),
3270 + 'mobile_extra' => esc_attr($slider_video_btn_mobile_ext),
3271 + 'mobile' => esc_attr($slider_video_btn_mobile),
3272 + ]),
3273 + ]);
3274 + ?>
3275 +
3276 + <div class="king-addons-advanced-slider-wrap">
3277 + <div
3278 + <?php echo $this->get_render_attribute_string('advanced-slider-attribute'); ?>
3279 + data-slide-effect="<?php echo esc_attr($settings['slider_effect']); ?>"
3280 + >
3281 + <?php
3282 + // Output the constructed HTML string for slides
3283 + echo $slider_html;
3284 + ?>
3285 + </div>
3286 +
3287 + <div class="king-addons-slider-controls">
3288 + <div class="king-addons-slider-dots"></div>
3289 + </div>
3290 +
3291 + <div class="king-addons-slider-arrow-container">
3292 + <div class="king-addons-slider-prev-arrow king-addons-slider-arrow"
3293 + id="<?php echo 'king-addons-slider-prev-' . esc_attr($this->get_id()); ?>">
3294 + <?php echo Core::getIcon($settings['slider_nav_icon'], ''); ?>
3295 + </div>
3296 + <div class="king-addons-slider-next-arrow king-addons-slider-arrow"
3297 + id="<?php echo 'king-addons-slider-next-' . esc_attr($this->get_id()); ?>">
3298 + <?php echo Core::getIcon($settings['slider_nav_icon'], ''); ?>
3299 + </div>
3300 + </div>
3301 +
3302 + <?php
3303 + if ($settings['slider_scroll_btn'] === 'yes') {
3304 + $this->render_pro_element_slider_scroll_btn();
3305 + }
3306 + ?>
3307 + </div>
3308 + <?php
3309 + }
3310 +}