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/Posts_Grid/Posts_Grid.php +9907 -0 51.1.251.1.83 View file →
@@ -1,0 +1,9907 @@
1 +<?php
2 +
3 +namespace King_Addons;
4 +
5 +use Elementor\Embed;
6 +use Elementor\Widget_Base;
7 +use Elementor\Controls_Manager;
8 +use Elementor\Group_Control_Box_Shadow;
9 +use Elementor\Group_Control_Text_Shadow;
10 +use Elementor\Group_Control_Background;
11 +use Elementor\Group_Control_Typography;
12 +use Elementor\Icons_Manager;
13 +use Elementor\Repeater;
14 +use Elementor\Group_Control_Image_Size;
15 +use Elementor\Utils;
16 +use WP_Query;
17 +
18 +if (!defined('ABSPATH')) {
19 + exit;
20 +}
21 +
22 +class Posts_Grid extends Widget_Base
23 +{
24 +
25 +
26 +
27 + public function get_name()
28 + {
29 + return 'king-addons-grid';
30 + }
31 +
32 + public function get_title()
33 + {
34 + return esc_html__('Posts Grid & Slider', 'king-addons');
35 + }
36 +
37 + public function get_icon()
38 + {
39 + return 'king-addons-icon king-addons-posts-grid';
40 + }
41 +
42 + public function get_categories()
43 + {
44 + return ['king-addons'];
45 + }
46 +
47 + public function get_keywords()
48 + {
49 + return ['king addons', 'king', 'addons', 'kingaddons', 'king-addons', 'gr', 'carousel', 'portfolio', 'loop', 'filterable',
50 + 'blog', 'portfolio grid', 'posts', 'post grid', 'posts grid', 'filter', 'post', 'posts', 'masonry', 'grid',
51 + 'post slider', 'posts slider', 'post carousel', 'posts carousel', 'masonry grid', 'gallery', 'slider',
52 + 'isotope', 'post gallery', 'posts gallery', 'filterable grid', 'loop grid'];
53 + }
54 +
55 + public function get_script_depends()
56 + {
57 + return [
58 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-imagesloaded-imagesloaded',
59 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-infinitescroll-infinitescroll',
60 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-isotope-kng',
61 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-slick-slick',
62 +// KING_ADDONS_ASSETS_UNIQUE_KEY . '-lightgallery-lightgallery',
63 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-grid-grid',
64 + ];
65 + }
66 +
67 + public function get_style_depends()
68 + {
69 + return [
70 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-slick-helper',
71 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-button',
72 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-general',
73 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-timing',
74 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-loading',
75 +// KING_ADDONS_ASSETS_UNIQUE_KEY . '-lightgallery-lightgallery',
76 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-grid-grid',
77 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-general-general',
78 + ];
79 + }
80 +
81 + public function get_custom_help_url()
82 + {
83 + return 'mailto:bug@kingaddons.com?subject=Bug Report - King Addons&body=Please describe the issue';
84 + }
85 +
86 + public function is_reload_preview_required()
87 + {
88 + return true;
89 + }
90 +
91 + public function has_widget_inner_wrapper(): bool
92 + {
93 + return true;
94 + }
95 +
96 + public function add_option_query_source()
97 + {
98 + $post_types = [];
99 + $post_types['post'] = esc_html__('Posts', 'king-addons');
100 + $post_types['page'] = esc_html__('Pages', 'king-addons');
101 +
102 + $custom_post_types = Core::getCustomTypes('post');
103 + foreach ($custom_post_types as $slug => $title) {
104 + if ('product' === $slug || 'e-landing-page' === $slug) {
105 + continue;
106 + }
107 +
108 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
109 + $post_types['pro-' . substr($slug, 0, 2)] = esc_html($title) . ' (Pro)';
110 + } else {
111 + $post_types[$slug] = esc_html($title);
112 + }
113 + }
114 +
115 + $post_types['current'] = esc_html__('Current Query', 'king-addons');
116 + $post_types['pro-rl'] = esc_html__('Related Query (Pro)', 'king-addons');
117 +
118 + return $post_types;
119 + }
120 +
121 + public function get_available_taxonomies()
122 + {
123 + $post_taxonomies = [];
124 + $post_taxonomies['category'] = esc_html__('Categories', 'king-addons');
125 + $post_taxonomies['post_tag'] = esc_html__('Tags', 'king-addons');
126 +
127 + $custom_post_taxonomies = Core::getCustomTypes('tax');
128 + foreach ($custom_post_taxonomies as $slug => $title) {
129 + if ('product_tag' === $slug || 'product_cat' === $slug) {
130 + continue;
131 + }
132 +
133 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
134 + $post_taxonomies['pro-' . substr($slug, 0, 2)] = esc_html($title) . ' (Pro)';
135 + } else {
136 + $post_taxonomies[$slug] = esc_html($title);
137 + }
138 + }
139 +
140 + return $post_taxonomies;
141 + }
142 +
143 + public function add_control_secondary_img_on_hover()
144 + {
145 + $this->add_control(
146 + 'secondary_img_on_hover',
147 + [
148 + 'label' => sprintf(__('Secondary Image on Hover %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
149 + 'type' => Controls_Manager::SWITCHER,
150 + 'classes' => 'king-addons-pro-control no-distance'
151 + ]
152 + );
153 + }
154 +
155 + public function add_control_open_links_in_new_tab()
156 + {
157 + $this->add_control(
158 + 'open_links_in_new_tab',
159 + [
160 + 'label' => sprintf(__('Open Links in New Tab %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
161 + 'type' => Controls_Manager::SWITCHER,
162 + 'classes' => 'king-addons-pro-control no-distance'
163 + ]
164 + );
165 + }
166 +
167 + public function add_control_grid_lazy_loading()
168 + {
169 + $this->add_control(
170 + 'grid_lazy_loading',
171 + [
172 + 'label' => sprintf(__('Lazy Loading %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
173 + 'type' => Controls_Manager::SWITCHER,
174 + 'classes' => 'king-addons-pro-control no-distance'
175 + ]
176 + );
177 + }
178 +
179 + public function add_control_display_scheduled_posts()
180 + {
181 + $this->add_control(
182 + 'display_scheduled_posts',
183 + [
184 + 'label' => sprintf(__('Display Only Scheduled %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
185 + 'type' => Controls_Manager::SWITCHER,
186 + 'classes' => 'king-addons-pro-control no-distance'
187 + ]
188 + );
189 + }
190 +
191 + public function add_control_query_randomize()
192 + {
193 + $this->add_control(
194 + 'query_randomize',
195 + [
196 + 'label' => sprintf(__('Randomize Query %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
197 + 'type' => Controls_Manager::SWITCHER,
198 + 'classes' => 'king-addons-pro-control no-distance'
199 + ]
200 + );
201 + }
202 +
203 + public function add_control_order_posts()
204 + {
205 + $this->add_control(
206 + 'order_posts',
207 + [
208 + 'label' => esc_html__('Order By', 'king-addons'),
209 + 'type' => Controls_Manager::SELECT,
210 + 'default' => 'date',
211 + 'label_block' => false,
212 + 'options' => [
213 + 'date' => esc_html__('Date', 'king-addons'),
214 + 'pro-tl' => esc_html__('Title (Pro)', 'king-addons'),
215 + 'pro-mf' => esc_html__('Last Modified (Pro)', 'king-addons'),
216 + 'pro-d' => esc_html__('Post ID (Pro)', 'king-addons'),
217 + 'pro-ar' => esc_html__('Post Author (Pro)', 'king-addons'),
218 + 'pro-cc' => esc_html__('Comment Count (Pro)', 'king-addons'),
219 + 'pro-mv' => esc_html__('Custom Field (Pro)', 'king-addons')
220 + ],
221 + 'condition' => [
222 + 'query_randomize!' => 'rand',
223 + ]
224 + ]
225 + );
226 + }
227 +
228 + public function add_control_order_posts_by_acf($meta)
229 + {
230 + }
231 +
232 + public function add_control_query_slides_to_show()
233 + {
234 + $this->add_control(
235 + 'query_slides_to_show',
236 + [
237 + 'label' => esc_html__('Slides to Show', 'king-addons'),
238 + 'type' => Controls_Manager::NUMBER,
239 + 'default' => 4,
240 + 'min' => 0,
241 + 'max' => 4,
242 + 'condition' => [
243 + 'layout_select' => 'slider',
244 + ],
245 + ]
246 + );
247 + }
248 +
249 + public function add_control_layout_select()
250 + {
251 + $this->add_control(
252 + 'layout_select',
253 + [
254 + 'label' => esc_html__('Select Layout', 'king-addons'),
255 + 'type' => Controls_Manager::SELECT,
256 + 'default' => 'fitRows',
257 + 'options' => [
258 + 'fitRows' => esc_html__('FitRows - Equal Height', 'king-addons'),
259 + 'list' => esc_html__('List Style', 'king-addons'),
260 + 'slider' => esc_html__('Slider / Carousel', 'king-addons'),
261 + 'pro-ms' => esc_html__('Masonry - Unlimited Height (Pro)', 'king-addons'),
262 + ],
263 + 'render_type' => 'template'
264 + ]
265 + );
266 + }
267 +
268 + public function add_control_layout_columns()
269 + {
270 + $this->add_responsive_control(
271 + 'layout_columns',
272 + [
273 + 'label' => esc_html__('Columns', 'king-addons'),
274 + 'type' => Controls_Manager::SELECT,
275 + 'default' => 3,
276 + 'widescreen_default' => 3,
277 + 'laptop_default' => 3,
278 + 'tablet_extra_default' => 3,
279 + 'tablet_default' => 2,
280 + 'mobile_extra_default' => 2,
281 + 'mobile_default' => 1,
282 + 'options' => [
283 + 1 => esc_html__('One', 'king-addons'),
284 + 2 => esc_html__('Two', 'king-addons'),
285 + 3 => esc_html__('Three', 'king-addons'),
286 + 'pro-4' => esc_html__('Four (Pro)', 'king-addons'),
287 + 'pro-5' => esc_html__('Five (Pro)', 'king-addons'),
288 + 'pro-6' => esc_html__('Six (Pro)', 'king-addons'),
289 + ],
290 + 'prefix_class' => 'king-addons-grid-columns-%s',
291 + 'render_type' => 'template',
292 + 'separator' => 'before',
293 + 'condition' => [
294 + 'layout_select' => ['fitRows', 'masonry', 'list'],
295 + ]
296 + ]
297 + );
298 + }
299 +
300 + public function add_control_layout_animation()
301 + {
302 + $this->add_control(
303 + 'layout_animation',
304 + [
305 + 'label' => esc_html__('Select Animation', 'king-addons'),
306 + 'type' => Controls_Manager::SELECT,
307 + 'default' => 'default',
308 + 'options' => [
309 + 'default' => esc_html__('None', 'king-addons'),
310 + 'zoom' => esc_html__('Zoom', 'king-addons'),
311 + 'pro-fd' => esc_html__('Fade (Pro)', 'king-addons'),
312 + 'pro-fs' => esc_html__('Fade + SlideUp (Pro)', 'king-addons'),
313 + ],
314 + 'selectors_dictionary' => [
315 + 'default' => '',
316 + 'zoom' => 'opacity: 0; transform: scale(0.01)',
317 + ],
318 + 'selectors' => [
319 + '{{WRAPPER}} .king-addons-grid-item-inner' => '{{VALUE}}',
320 + ],
321 + 'render_type' => 'template',
322 + 'separator' => 'before',
323 + 'condition' => [
324 + 'layout_select!' => 'slider',
325 + ]
326 + ]
327 + );
328 + }
329 +
330 + public function add_control_layout_slider_amount()
331 + {
332 + $this->add_responsive_control(
333 + 'layout_slider_amount',
334 + [
335 + 'label' => esc_html__('Columns (Carousel)', 'king-addons'),
336 + 'type' => Controls_Manager::SELECT,
337 + 'label_block' => false,
338 + 'default' => 2,
339 + 'widescreen_default' => 2,
340 + 'laptop_default' => 2,
341 + 'tablet_extra_default' => 2,
342 + 'tablet_default' => 2,
343 + 'mobile_extra_default' => 2,
344 + 'mobile_default' => 1,
345 + 'options' => [
346 + 1 => esc_html__('One', 'king-addons'),
347 + 2 => esc_html__('Two', 'king-addons'),
348 + 'pro-3' => esc_html__('Three (Pro)', 'king-addons'),
349 + 'pro-4' => esc_html__('Four (Pro)', 'king-addons'),
350 + 'pro-5' => esc_html__('Five (Pro)', 'king-addons'),
351 + 'pro-6' => esc_html__('Six (Pro)', 'king-addons'),
352 + ],
353 + 'prefix_class' => 'king-addons-grid-slider-columns-%s',
354 + 'render_type' => 'template',
355 + 'frontend_available' => true,
356 + 'separator' => 'before',
357 + 'condition' => [
358 + 'layout_select' => 'slider',
359 + ],
360 + ]
361 + );
362 + }
363 +
364 + public function add_control_layout_slider_nav_hover()
365 + {
366 + $this->add_control(
367 + 'layout_slider_nav_hover',
368 + [
369 + 'label' => sprintf(__('Show on Hover %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
370 + 'type' => Controls_Manager::SWITCHER,
371 + 'classes' => 'king-addons-pro-control no-distance',
372 + 'condition' => [
373 + 'layout_slider_nav' => 'yes',
374 + 'layout_select' => 'slider',
375 +
376 + ],
377 + ]
378 + );
379 + }
380 +
381 + public function add_control_layout_slider_dots_position()
382 + {
383 + $this->add_control(
384 + 'layout_slider_dots_position',
385 + [
386 + 'label' => esc_html__('Pagination Layout', 'king-addons'),
387 + 'type' => Controls_Manager::SELECT,
388 + 'default' => 'horizontal',
389 + 'options' => [
390 + 'horizontal' => esc_html__('Horizontal', 'king-addons'),
391 + 'pro-vr' => esc_html__('Vertical (Pro)', 'king-addons'),
392 + ],
393 + 'prefix_class' => 'king-addons-grid-slider-dots-',
394 + 'render_type' => 'template',
395 + 'condition' => [
396 + 'layout_slider_dots' => 'yes',
397 + 'layout_select' => 'slider',
398 + ],
399 + ]
400 + );
401 + }
402 +
403 + public function add_control_layout_slider_autoplay()
404 + {
405 + $this->add_control(
406 + 'layout_slider_autoplay',
407 + [
408 + 'label' => sprintf(__('Autoplay %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
409 + 'type' => Controls_Manager::SWITCHER,
410 + 'classes' => 'king-addons-pro-control',
411 + 'separator' => 'before',
412 + 'condition' => [
413 + 'layout_select' => 'slider',
414 + ],
415 + ]
416 + );
417 + }
418 +
419 + public function add_controls_group_layout_slider_autoplay()
420 + {
421 + }
422 +
423 + public function add_option_element_select()
424 + {
425 + return [
426 + 'title' => esc_html__('Title', 'king-addons'),
427 + 'content' => esc_html__('Content', 'king-addons'),
428 + 'excerpt' => esc_html__('Excerpt', 'king-addons'),
429 + 'date' => esc_html__('Date', 'king-addons'),
430 + 'time' => esc_html__('Time', 'king-addons'),
431 + 'author' => esc_html__('Author', 'king-addons'),
432 + 'comments' => esc_html__('Comments', 'king-addons'),
433 + 'read-more' => esc_html__('Read More', 'king-addons'),
434 +// TODO: Lightbox
435 +// 'lightbox' => esc_html__('Lightbox', 'king-addons'),
436 + 'separator' => esc_html__('Separator', 'king-addons'),
437 + 'pro-lk' => esc_html__('Likes (Pro)', 'king-addons'),
438 + 'pro-shr' => esc_html__('Sharing (Pro)', 'king-addons'),
439 + 'pro-cf' => esc_html__('Custom Field (Pro)', 'king-addons'),
440 + ];
441 + }
442 +
443 + public function add_repeater_args_element_like_icon()
444 + {
445 + return [
446 + 'type' => Controls_Manager::HIDDEN,
447 + 'default' => ''
448 + ];
449 + }
450 +
451 + public function add_repeater_args_element_like_text()
452 + {
453 + return [
454 + 'type' => Controls_Manager::HIDDEN,
455 + 'default' => ''
456 + ];
457 + }
458 +
459 + public function add_repeater_args_element_like_show_count()
460 + {
461 + return [
462 + 'type' => Controls_Manager::HIDDEN,
463 + 'default' => ''
464 + ];
465 + }
466 +
467 + public function add_repeater_args_element_sharing_icon_1()
468 + {
469 + return [
470 + 'type' => Controls_Manager::HIDDEN,
471 + 'default' => ''
472 + ];
473 + }
474 +
475 + public function add_repeater_args_element_sharing_icon_2()
476 + {
477 + return [
478 + 'type' => Controls_Manager::HIDDEN,
479 + 'default' => ''
480 + ];
481 + }
482 +
483 + public function add_repeater_args_element_sharing_icon_3()
484 + {
485 + return [
486 + 'type' => Controls_Manager::HIDDEN,
487 + 'default' => ''
488 + ];
489 + }
490 +
491 + public function add_repeater_args_element_sharing_icon_4()
492 + {
493 + return [
494 + 'type' => Controls_Manager::HIDDEN,
495 + 'default' => ''
496 + ];
497 + }
498 +
499 + public function add_repeater_args_element_sharing_icon_5()
500 + {
501 + return [
502 + 'type' => Controls_Manager::HIDDEN,
503 + 'default' => ''
504 + ];
505 + }
506 +
507 + public function add_repeater_args_element_sharing_icon_6()
508 + {
509 + return [
510 + 'type' => Controls_Manager::HIDDEN,
511 + 'default' => ''
512 + ];
513 + }
514 +
515 + public function add_repeater_args_element_sharing_trigger()
516 + {
517 + return [
518 + 'type' => Controls_Manager::HIDDEN,
519 + 'default' => ''
520 + ];
521 + }
522 +
523 + public function add_repeater_args_element_sharing_trigger_icon()
524 + {
525 + return [
526 + 'type' => Controls_Manager::HIDDEN,
527 + 'default' => ''
528 + ];
529 + }
530 +
531 + public function add_repeater_args_element_sharing_trigger_action()
532 + {
533 + return [
534 + 'type' => Controls_Manager::HIDDEN,
535 + 'default' => ''
536 + ];
537 + }
538 +
539 + public function add_repeater_args_element_sharing_trigger_direction()
540 + {
541 + return [
542 + 'type' => Controls_Manager::HIDDEN,
543 + 'default' => ''
544 + ];
545 + }
546 +
547 + public function add_repeater_args_element_sharing_tooltip()
548 + {
549 + return [
550 + 'type' => Controls_Manager::HIDDEN,
551 + 'default' => ''
552 + ];
553 + }
554 +
555 + public function add_repeater_args_element_custom_field()
556 + {
557 + return [
558 + 'type' => Controls_Manager::HIDDEN,
559 + 'default' => ''
560 + ];
561 + }
562 +
563 + public function add_repeater_args_element_custom_field_img_ID()
564 + {
565 + return [
566 + 'type' => Controls_Manager::HIDDEN,
567 + 'default' => ''
568 + ];
569 + }
570 +
571 + public function add_repeater_args_element_custom_field_btn_link()
572 + {
573 + return [
574 + 'type' => Controls_Manager::HIDDEN,
575 + 'default' => ''
576 + ];
577 + }
578 +
579 + public function add_repeater_args_element_custom_field_new_tab()
580 + {
581 + return [
582 + 'type' => Controls_Manager::HIDDEN,
583 + 'default' => ''
584 + ];
585 + }
586 +
587 + public function add_repeater_args_custom_field_wrapper_html_divider1()
588 + {
589 + return [
590 + 'type' => Controls_Manager::HIDDEN,
591 + 'default' => ''
592 + ];
593 + }
594 +
595 + public function add_repeater_args_element_custom_field_wrapper()
596 + {
597 + return [
598 + 'type' => Controls_Manager::HIDDEN,
599 + 'default' => ''
600 + ];
601 + }
602 +
603 + public function add_repeater_args_element_custom_field_wrapper_html()
604 + {
605 + return [
606 + 'type' => Controls_Manager::HIDDEN,
607 + 'default' => ''
608 + ];
609 + }
610 +
611 + public function add_repeater_args_custom_field_wrapper_html_divider2()
612 + {
613 + return [
614 + 'type' => Controls_Manager::HIDDEN,
615 + 'default' => ''
616 + ];
617 + }
618 +
619 + public function add_repeater_args_element_cf_tag()
620 + {
621 + return [
622 + 'type' => Controls_Manager::HIDDEN,
623 + 'default' => ''
624 + ];
625 + }
626 +
627 + public function add_repeater_args_element_custom_field_style()
628 + {
629 + return [
630 + 'type' => Controls_Manager::HIDDEN,
631 + 'default' => ''
632 + ];
633 + }
634 +
635 + public function add_repeater_args_element_trim_text_by()
636 + {
637 + return [
638 + 'word_count' => esc_html__('Word Count', 'king-addons'),
639 + 'pro-lc' => esc_html__('Letter Count (Pro)', 'king-addons')
640 + ];
641 + }
642 +
643 + public function add_control_overlay_animation_divider()
644 + {
645 + }
646 +
647 + public function add_control_overlay_image()
648 + {
649 + }
650 +
651 + public function add_control_overlay_image_width()
652 + {
653 + }
654 +
655 + public function add_control_image_effects()
656 + {
657 + $this->add_control(
658 + 'image_effects',
659 + [
660 + 'label' => esc_html__('Select Effect', 'king-addons'),
661 + 'type' => Controls_Manager::SELECT,
662 + 'options' => [
663 + 'none' => esc_html__('None', 'king-addons'),
664 + 'pro-zi' => esc_html__('Zoom In (Pro)', 'king-addons'),
665 + 'pro-zo' => esc_html__('Zoom Out (Pro)', 'king-addons'),
666 + 'grayscale-in' => esc_html__('Grayscale In', 'king-addons'),
667 + 'pro-go' => esc_html__('Grayscale Out (Pro)', 'king-addons'),
668 + 'blur-in' => esc_html__('Blur In', 'king-addons'),
669 + 'pro-bo' => esc_html__('Blur Out (Pro)', 'king-addons'),
670 + 'slide' => esc_html__('Slide', 'king-addons'),
671 + ],
672 + 'default' => 'none',
673 + ]
674 + );
675 + }
676 +
677 + /** @noinspection PhpUnused */
678 + public function add_section_general_lightbox() {
679 + $this->start_controls_section(
680 + 'section_lightbox_popup',
681 + [
682 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Lightbox Popup', 'king-addons'),
683 + 'tab' => Controls_Manager::TAB_CONTENT,
684 + ]
685 + );
686 +
687 + $this->add_control(
688 + 'lightbox_popup_autoplay',
689 + [
690 + 'label' => esc_html__('Autoplay Slides', 'king-addons'),
691 + 'type' => Controls_Manager::SWITCHER,
692 + 'default' => 'true',
693 + 'return_value' => 'true',
694 + ]
695 + );
696 +
697 + $this->add_control(
698 + 'lightbox_popup_progressbar',
699 + [
700 + 'label' => esc_html__('Show Progress Bar', 'king-addons'),
701 + 'type' => Controls_Manager::SWITCHER,
702 + 'default' => 'true',
703 + 'return_value' => 'true',
704 + 'condition' => [
705 + 'lightbox_popup_autoplay' => 'true'
706 + ]
707 + ]
708 + );
709 +
710 + $this->add_control(
711 + 'lightbox_popup_pause',
712 + [
713 + 'label' => esc_html__('Autoplay Speed', 'king-addons'),
714 + 'type' => Controls_Manager::NUMBER,
715 + 'default' => 5,
716 + 'min' => 1,
717 + 'max' => 10,
718 + 'step' => 1,
719 + 'condition' => [
720 + 'lightbox_popup_autoplay' => 'true',
721 + ],
722 + ]
723 + );
724 +
725 + $this->add_control(
726 + 'lightbox_popup_counter',
727 + [
728 + 'label' => esc_html__('Show Counter', 'king-addons'),
729 + 'type' => Controls_Manager::SWITCHER,
730 + 'default' => 'true',
731 + 'return_value' => 'true',
732 + ]
733 + );
734 +
735 + $this->add_control(
736 + 'lightbox_popup_arrows',
737 + [
738 + 'label' => esc_html__('Show Arrows', 'king-addons'),
739 + 'type' => Controls_Manager::SWITCHER,
740 + 'default' => 'true',
741 + 'return_value' => 'true',
742 + ]
743 + );
744 +
745 + $this->add_control(
746 + 'lightbox_popup_captions',
747 + [
748 + 'label' => esc_html__('Show Captions', 'king-addons'),
749 + 'type' => Controls_Manager::SWITCHER,
750 + 'default' => 'true',
751 + 'return_value' => 'true',
752 + ]
753 + );
754 +
755 + $this->add_control_lightbox_popup_thumbnails();
756 +
757 + $this->add_control_lightbox_popup_thumbnails_default();
758 +
759 + $this->add_control_lightbox_popup_sharing();
760 +
761 + $this->add_control(
762 + 'lightbox_popup_zoom',
763 + [
764 + 'label' => esc_html__('Show Zoom Button', 'king-addons'),
765 + 'type' => Controls_Manager::SWITCHER,
766 + 'default' => 'true',
767 + 'return_value' => 'true',
768 + ]
769 + );
770 +
771 + $this->add_control(
772 + 'lightbox_popup_fullscreen',
773 + [
774 + 'label' => esc_html__('Show Full Screen Button', 'king-addons'),
775 + 'type' => Controls_Manager::SWITCHER,
776 + 'default' => 'true',
777 + 'return_value' => 'true',
778 + ]
779 + );
780 +
781 + $this->add_control(
782 + 'lightbox_popup_download',
783 + [
784 + 'label' => esc_html__('Show Download Button', 'king-addons'),
785 + 'type' => Controls_Manager::SWITCHER,
786 + 'default' => 'true',
787 + 'return_value' => 'true',
788 + ]
789 + );
790 +
791 + $this->add_control(
792 + 'lightbox_popup_description',
793 + [
794 + 'raw' => sprintf(__('You can change Lightbox Popup styling options globally. Navigate to <strong>Dashboard > %s > Settings</strong>.', 'king-addons'), Core::getPluginName()),
795 + 'type' => Controls_Manager::RAW_HTML,
796 + 'separator' => 'before',
797 + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
798 + ]
799 + );
800 +
801 + $this->end_controls_section();
802 + }
803 +
804 + /** @noinspection PhpUnused */
805 + public function add_section_style_lightbox() {
806 + $this->start_controls_section(
807 + 'section_style_lightbox',
808 + [
809 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Lightbox', 'king-addons'),
810 + 'tab' => Controls_Manager::TAB_STYLE,
811 + 'show_label' => false,
812 + ]
813 + );
814 +
815 + $this->start_controls_tabs('tabs_grid_lightbox_style');
816 +
817 + $this->start_controls_tab(
818 + 'tab_grid_lightbox_normal',
819 + [
820 + 'label' => esc_html__('Normal', 'king-addons'),
821 + ]
822 + );
823 +
824 + $this->add_control(
825 + 'lightbox_color',
826 + [
827 + 'label' => esc_html__('Color', 'king-addons'),
828 + 'type' => Controls_Manager::COLOR,
829 + 'default' => '#ffffff',
830 + 'selectors' => [
831 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'color: {{VALUE}}',
832 + ],
833 + ]
834 + );
835 +
836 + $this->add_control(
837 + 'lightbox_bg_color',
838 + [
839 + 'label' => esc_html__('Background Color', 'king-addons'),
840 + 'type' => Controls_Manager::COLOR,
841 + 'selectors' => [
842 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'background-color: {{VALUE}}',
843 + ]
844 + ]
845 + );
846 +
847 + $this->add_control(
848 + 'lightbox_border_color',
849 + [
850 + 'label' => esc_html__('Border Color', 'king-addons'),
851 + 'type' => Controls_Manager::COLOR,
852 + 'default' => '#E8E8E8',
853 + 'selectors' => [
854 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'border-color: {{VALUE}}',
855 + ],
856 + ]
857 + );
858 +
859 + $this->add_group_control(
860 + Group_Control_Text_Shadow::get_type(),
861 + [
862 + 'name' => 'lightbox_shadow',
863 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-lightbox i',
864 + ]
865 + );
866 +
867 + $this->end_controls_tab();
868 +
869 + $this->start_controls_tab(
870 + 'tab_grid_lightbox_hover',
871 + [
872 + 'label' => esc_html__('Hover', 'king-addons'),
873 + ]
874 + );
875 +
876 + $this->add_control(
877 + 'lightbox_color_hr',
878 + [
879 + 'label' => esc_html__('Color', 'king-addons'),
880 + 'type' => Controls_Manager::COLOR,
881 + 'default' => '#5B03FF',
882 + 'selectors' => [
883 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span:hover' => 'color: {{VALUE}}',
884 + ],
885 + ]
886 + );
887 +
888 + $this->add_control(
889 + 'lightbox_bg_color_hr',
890 + [
891 + 'label' => esc_html__('Background Color', 'king-addons'),
892 + 'type' => Controls_Manager::COLOR,
893 + 'selectors' => [
894 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span:hover' => 'background-color: {{VALUE}}',
895 + ]
896 + ]
897 + );
898 +
899 + $this->add_control(
900 + 'lightbox_border_color_hr',
901 + [
902 + 'label' => esc_html__('Border Color', 'king-addons'),
903 + 'type' => Controls_Manager::COLOR,
904 + 'default' => '#E8E8E8',
905 + 'selectors' => [
906 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span:hover' => 'border-color: {{VALUE}}',
907 + ],
908 + 'separator' => 'after',
909 + ]
910 + );
911 +
912 + $this->end_controls_tab();
913 +
914 + $this->end_controls_tabs();
915 +
916 + $this->add_control(
917 + 'lightbox_shadow_divider',
918 + [
919 + 'type' => Controls_Manager::DIVIDER,
920 + 'style' => 'thick',
921 + ]
922 + );
923 +
924 + $this->add_control(
925 + 'lightbox_transition_duration',
926 + [
927 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
928 + 'type' => Controls_Manager::NUMBER,
929 + 'default' => 0.1,
930 + 'min' => 0,
931 + 'max' => 5,
932 + 'step' => 0.1,
933 + 'selectors' => [
934 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'transition-duration: {{VALUE}}s',
935 + ],
936 + 'separator' => 'after',
937 + ]
938 + );
939 +
940 + $this->add_group_control(
941 + Group_Control_Typography::get_type(),
942 + [
943 + 'name' => 'lightbox_typography',
944 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-lightbox'
945 + ]
946 + );
947 +
948 + $this->add_control(
949 + 'lightbox_border_type',
950 + [
951 + 'label' => esc_html__('Border Type', 'king-addons'),
952 + 'type' => Controls_Manager::SELECT,
953 + 'options' => [
954 + 'none' => esc_html__('None', 'king-addons'),
955 + 'solid' => esc_html__('Solid', 'king-addons'),
956 + 'double' => esc_html__('Double', 'king-addons'),
957 + 'dotted' => esc_html__('Dotted', 'king-addons'),
958 + 'dashed' => esc_html__('Dashed', 'king-addons'),
959 + 'groove' => esc_html__('Groove', 'king-addons'),
960 + ],
961 + 'default' => 'none',
962 + 'selectors' => [
963 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'border-style: {{VALUE}};',
964 + ],
965 + 'render_type' => 'template',
966 + 'separator' => 'before',
967 + ]
968 + );
969 +
970 + $this->add_control(
971 + 'lightbox_border_width',
972 + [
973 + 'label' => esc_html__('Border Width', 'king-addons'),
974 + 'type' => Controls_Manager::DIMENSIONS,
975 + 'size_units' => ['px'],
976 + 'default' => [
977 + 'top' => 1,
978 + 'right' => 1,
979 + 'bottom' => 1,
980 + 'left' => 1,
981 + ],
982 + 'selectors' => [
983 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
984 + ],
985 + 'render_type' => 'template',
986 + 'condition' => [
987 + 'lightbox_border_type!' => 'none',
988 + ],
989 + ]
990 + );
991 +
992 + $this->add_control(
993 + 'lightbox_text_spacing',
994 + [
995 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
996 + 'type' => Controls_Manager::SLIDER,
997 + 'size_units' => ['px'],
998 + 'range' => [
999 + 'px' => [
1000 + 'min' => 0,
1001 + 'max' => 25,
1002 + ],
1003 + ],
1004 + 'default' => [
1005 + 'unit' => 'px',
1006 + 'size' => 5,
1007 + ],
1008 + 'selectors' => [
1009 + '{{WRAPPER}} .king-addons-grid-item-lightbox .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
1010 + '{{WRAPPER}} .king-addons-grid-item-lightbox .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
1011 + ],
1012 + 'separator' => 'before'
1013 + ]
1014 + );
1015 +
1016 + $this->add_responsive_control(
1017 + 'lightbox_padding',
1018 + [
1019 + 'label' => esc_html__('Padding', 'king-addons'),
1020 + 'type' => Controls_Manager::DIMENSIONS,
1021 + 'size_units' => ['px', '%'],
1022 + 'default' => [
1023 + 'top' => 0,
1024 + 'right' => 0,
1025 + 'bottom' => 0,
1026 + 'left' => 0,
1027 + ],
1028 + 'selectors' => [
1029 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1030 + ],
1031 + 'render_type' => 'template',
1032 + 'separator' => 'before',
1033 + ]
1034 + );
1035 +
1036 + $this->add_responsive_control(
1037 + 'lightbox_margin',
1038 + [
1039 + 'label' => esc_html__('Margin', 'king-addons'),
1040 + 'type' => Controls_Manager::DIMENSIONS,
1041 + 'size_units' => ['px', '%'],
1042 + 'default' => [
1043 + 'top' => 0,
1044 + 'right' => 0,
1045 + 'bottom' => 0,
1046 + 'left' => 0,
1047 + ],
1048 + 'render_type' => 'template',
1049 + 'selectors' => [
1050 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1051 + ],
1052 + ]
1053 + );
1054 +
1055 + $this->add_control(
1056 + 'lightbox_radius',
1057 + [
1058 + 'label' => esc_html__('Border Radius', 'king-addons'),
1059 + 'type' => Controls_Manager::DIMENSIONS,
1060 + 'size_units' => ['px', '%'],
1061 + 'default' => [
1062 + 'top' => 2,
1063 + 'right' => 2,
1064 + 'bottom' => 2,
1065 + 'left' => 2,
1066 + ],
1067 + 'selectors' => [
1068 + '{{WRAPPER}} .king-addons-grid-item-lightbox .inner-block > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1069 + ],
1070 + 'separator' => 'before',
1071 + ]
1072 + );
1073 +
1074 +
1075 +
1076 +
1077 +$this->end_controls_section();
1078 +
1079 +
1080 + }
1081 +
1082 + public function add_control_lightbox_popup_thumbnails()
1083 + {
1084 + $this->add_control(
1085 + 'lightbox_popup_thumbnails',
1086 + [
1087 + 'label' => sprintf(__('Show Thumbnails %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
1088 + 'type' => Controls_Manager::SWITCHER,
1089 + 'classes' => 'king-addons-pro-control no-distance'
1090 + ]
1091 + );
1092 + }
1093 +
1094 + public function add_control_lightbox_popup_thumbnails_default()
1095 + {
1096 + $this->add_control(
1097 + 'popup_thumbnails_default',
1098 + [
1099 + 'label' => sprintf(__('Show Thumbs by Default %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
1100 + 'type' => Controls_Manager::SWITCHER,
1101 + 'classes' => 'king-addons-pro-control no-distance'
1102 + ]
1103 + );
1104 + }
1105 +
1106 + public function add_control_lightbox_popup_sharing()
1107 + {
1108 + $this->add_control(
1109 + 'lightbox_popup_sharing',
1110 + [
1111 + 'label' => sprintf(__('Show Sharing Button %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
1112 + 'type' => Controls_Manager::SWITCHER,
1113 + 'classes' => 'king-addons-pro-control no-distance'
1114 + ]
1115 + );
1116 + }
1117 +
1118 + public function add_control_filters_deeplinking()
1119 + {
1120 + $this->add_control(
1121 + 'filters_deeplinking',
1122 + [
1123 + 'label' => sprintf(__('Enable Deep Linking %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
1124 + 'type' => Controls_Manager::SWITCHER,
1125 + 'classes' => 'king-addons-pro-control no-distance'
1126 + ]
1127 + );
1128 + }
1129 +
1130 + public function add_control_filters_animation()
1131 + {
1132 + $this->add_control(
1133 + 'filters_animation',
1134 + [
1135 + 'label' => esc_html__('Select Animation', 'king-addons'),
1136 + 'type' => Controls_Manager::SELECT,
1137 + 'default' => 'default',
1138 + 'options' => [
1139 + 'default' => esc_html__('Default', 'king-addons'),
1140 + 'zoom' => esc_html__('Zoom', 'king-addons'),
1141 + 'pro-fd' => esc_html__('Fade (Pro)', 'king-addons'),
1142 + 'pro-fs' => esc_html__('Fade + SlideUp (Pro)', 'king-addons'),
1143 + ],
1144 + 'separator' => 'before',
1145 + ]
1146 + );
1147 + }
1148 +
1149 + public function add_control_filters_icon()
1150 + {
1151 + }
1152 +
1153 + public function add_control_filters_icon_align()
1154 + {
1155 + }
1156 +
1157 + public function add_control_filters_count()
1158 + {
1159 + $this->add_control(
1160 + 'filters_count',
1161 + [
1162 + 'label' => sprintf(__('Show Count %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
1163 + 'type' => Controls_Manager::SWITCHER,
1164 + 'classes' => 'king-addons-pro-control no-distance'
1165 + ]
1166 + );
1167 + }
1168 +
1169 + public function add_control_filters_count_superscript()
1170 + {
1171 + }
1172 +
1173 + public function add_control_filters_count_brackets()
1174 + {
1175 + }
1176 +
1177 + public function add_control_filters_default_filter()
1178 + {
1179 + }
1180 +
1181 + public function add_control_pagination_type()
1182 + {
1183 + $options = [
1184 + 'default' => esc_html__('Default', 'king-addons'),
1185 + 'numbered' => esc_html__('Numbered', 'king-addons'),
1186 + 'load-more' => esc_html__('Load More Button', 'king-addons'),
1187 + 'pro-is' => esc_html__('Infinite Scrolling (Pro)', 'king-addons'),
1188 + ];
1189 +
1190 + if (king_addons_freemius()->can_use_premium_code__premium_only()) {
1191 + $options = [
1192 + 'default' => esc_html__('Default', 'king-addons'),
1193 + 'load-more' => esc_html__('Load More Button', 'king-addons'),
1194 + 'pro-nb' => esc_html__('Numbered (Pro)', 'king-addons'),
1195 + 'pro-is' => esc_html__('Infinite Scrolling (Pro)', 'king-addons'),
1196 + ];
1197 + }
1198 +
1199 + $this->add_control(
1200 + 'pagination_type',
1201 + [
1202 + 'label' => esc_html__('Select Type', 'king-addons'),
1203 + 'type' => Controls_Manager::SELECT,
1204 + 'default' => 'load-more',
1205 + 'options' => $options,
1206 + 'separator' => 'after'
1207 + ]
1208 + );
1209 + }
1210 +
1211 + public function add_section_style_likes()
1212 + {
1213 + }
1214 +
1215 + public function add_section_style_sharing()
1216 + {
1217 + }
1218 +
1219 + public function add_section_style_custom_field1()
1220 + {
1221 + }
1222 +
1223 + public function add_section_style_custom_field2()
1224 + {
1225 + }
1226 +
1227 + public function add_section_style_custom_field3()
1228 + {
1229 + }
1230 +
1231 + public function add_section_style_custom_field4()
1232 + {
1233 + }
1234 +
1235 + public function add_control_grid_item_even_bg_color()
1236 + {
1237 + }
1238 +
1239 + public function add_control_grid_item_even_border_color()
1240 + {
1241 + }
1242 +
1243 + public function add_control_overlay_color()
1244 + {
1245 + $this->add_control(
1246 + 'overlay_color',
1247 + [
1248 + 'label' => esc_html__('Background Color', 'king-addons'),
1249 + 'type' => Controls_Manager::COLOR,
1250 + 'default' => 'rgba(0, 0, 0, 0.25)',
1251 + 'selectors' => [
1252 + '{{WRAPPER}} .king-addons-grid-media-hover-bg' => 'background-color: {{VALUE}}',
1253 + ],
1254 + ]
1255 + );
1256 + }
1257 +
1258 + public function add_control_overlay_blend_mode()
1259 + {
1260 + }
1261 +
1262 + public function add_control_overlay_border_color()
1263 + {
1264 + }
1265 +
1266 + public function add_control_overlay_border_type()
1267 + {
1268 + }
1269 +
1270 + public function add_control_overlay_border_width()
1271 + {
1272 + }
1273 +
1274 + public function add_control_title_pointer_color_hr()
1275 + {
1276 + }
1277 +
1278 + public function add_control_title_pointer()
1279 + {
1280 + }
1281 +
1282 + public function add_control_title_pointer_height()
1283 + {
1284 + }
1285 +
1286 + public function add_control_title_pointer_animation()
1287 + {
1288 + }
1289 +
1290 + public function add_control_tax1_custom_colors($meta)
1291 + {
1292 + }
1293 +
1294 + public function add_control_tax1_pointer_color_hr()
1295 + {
1296 + }
1297 +
1298 + public function add_control_tax1_pointer()
1299 + {
1300 + }
1301 +
1302 + public function add_control_tax1_pointer_height()
1303 + {
1304 + }
1305 +
1306 + public function add_control_tax1_pointer_animation()
1307 + {
1308 + }
1309 +
1310 + public function add_control_tax2_pointer_color_hr()
1311 + {
1312 + }
1313 +
1314 + public function add_control_tax2_pointer()
1315 + {
1316 + }
1317 +
1318 + public function add_control_tax2_pointer_height()
1319 + {
1320 + }
1321 +
1322 + public function add_control_tax2_pointer_animation()
1323 + {
1324 + }
1325 +
1326 + public function add_control_read_more_animation()
1327 + {
1328 + }
1329 +
1330 + public function add_control_read_more_animation_height()
1331 + {
1332 + }
1333 +
1334 + public function add_control_filters_pointer_color_hr()
1335 + {
1336 + }
1337 +
1338 + public function add_control_filters_pointer()
1339 + {
1340 + }
1341 +
1342 + public function add_control_filters_pointer_height()
1343 + {
1344 + }
1345 +
1346 + public function add_control_filters_pointer_animation()
1347 + {
1348 + }
1349 +
1350 + public function add_control_stack_grid_slider_nav_position()
1351 + {
1352 + }
1353 +
1354 + public function add_control_grid_slider_dots_hr()
1355 + {
1356 + }
1357 +
1358 + protected function register_controls()
1359 + {
1360 +
1361 +
1362 + $this->start_controls_section(
1363 + 'section_grid_query',
1364 + [
1365 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Query', 'king-addons'),
1366 + 'tab' => Controls_Manager::TAB_CONTENT,
1367 + ]
1368 + );
1369 +
1370 +
1371 + $post_types = $this->add_option_query_source();
1372 +
1373 + $post_taxonomies = $this->get_available_taxonomies();
1374 +
1375 + $tax_meta_keys = Core::getCustomMetaKeysTaxonomies();
1376 +
1377 + $this->add_control(
1378 + 'query_source',
1379 + [
1380 + 'label' => esc_html__('Source', 'king-addons'),
1381 + 'type' => Controls_Manager::SELECT,
1382 + 'default' => 'post',
1383 + 'options' => $post_types,
1384 + ]
1385 + );
1386 +
1387 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'query_source', ['pro-rl']);
1388 +
1389 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
1390 + $this->add_control(
1391 + 'query_source_cpt_pro_notice',
1392 + [
1393 + 'raw' => 'This option is available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-grid-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
1394 + 'type' => Controls_Manager::RAW_HTML,
1395 + 'content_classes' => 'king-addons-pro-notice',
1396 + 'condition' => [
1397 + 'query_source!' => ['post', 'page', 'related', 'current', 'pro-rl'],
1398 + ]
1399 + ]
1400 + );
1401 + }
1402 +
1403 + $this->add_control(
1404 + 'query_selection',
1405 + [
1406 + 'label' => esc_html__('Selection', 'king-addons'),
1407 + 'type' => Controls_Manager::SELECT,
1408 + 'default' => 'dynamic',
1409 + 'options' => [
1410 + 'dynamic' => esc_html__('Dynamic', 'king-addons'),
1411 + 'manual' => esc_html__('Manual', 'king-addons'),
1412 + ],
1413 + 'condition' => [
1414 + 'query_source!' => ['current', 'related'],
1415 + ],
1416 + ]
1417 + );
1418 +
1419 + $this->add_control_order_posts();
1420 +
1421 + $this->add_control_order_posts_by_acf([]);
1422 +
1423 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'order_posts', ['pro-tl', 'pro-mf', 'pro-d', 'pro-ar', 'pro-cc']);
1424 +
1425 + $this->add_control(
1426 + 'order_direction',
1427 + [
1428 + 'label' => esc_html__('Order', 'king-addons'),
1429 + 'type' => Controls_Manager::SELECT,
1430 + 'default' => 'DESC',
1431 + 'label_block' => false,
1432 + 'options' => [
1433 + 'ASC' => esc_html__('Ascending', 'king-addons'),
1434 + 'DESC' => esc_html__('Descending', 'king-addons'),
1435 + ],
1436 + 'condition' => [
1437 + 'query_randomize!' => 'rand',
1438 + ]
1439 + ]
1440 + );
1441 +
1442 + $this->add_control(
1443 + 'query_tax_selection',
1444 + [
1445 + 'label' => esc_html__('Select Taxonomy', 'king-addons'),
1446 + 'type' => Controls_Manager::SELECT,
1447 + 'default' => 'category',
1448 + 'options' => $post_taxonomies,
1449 + 'condition' => [
1450 + 'query_source' => 'related',
1451 + ],
1452 + ]
1453 + );
1454 +
1455 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
1456 + $this->add_control(
1457 + 'query_tax_selection_pro_notice',
1458 + [
1459 + 'raw' => 'This option is available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-grid-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
1460 + 'type' => Controls_Manager::RAW_HTML,
1461 + 'content_classes' => 'king-addons-pro-notice',
1462 + 'condition' => [
1463 + 'query_tax_selection!' => ['category', 'post_tag'],
1464 + ]
1465 + ]
1466 + );
1467 + }
1468 +
1469 + $this->add_control(
1470 + 'query_author',
1471 + [
1472 + 'label' => esc_html__('Authors', 'king-addons'),
1473 + 'type' => 'king-addons-ajax-select2',
1474 + 'options' => 'ajaxselect2/getUsers',
1475 + 'multiple' => true,
1476 + 'label_block' => true,
1477 + 'separator' => 'before',
1478 + 'condition' => [
1479 + 'query_source!' => ['current', 'related'],
1480 + 'query_selection' => 'dynamic',
1481 + ],
1482 + ]
1483 + );
1484 +
1485 +
1486 + foreach ($post_taxonomies as $slug => $title) {
1487 + global $wp_taxonomies;
1488 + $post_type = '';
1489 +
1490 + if (isset($wp_taxonomies[$slug]->object_type[0])) {
1491 + $post_type = $wp_taxonomies[$slug]->object_type[0];
1492 + }
1493 +
1494 + $this->add_control(
1495 + 'query_taxonomy_' . $slug,
1496 + [
1497 + 'label' => $title,
1498 + 'type' => 'king-addons-ajax-select2',
1499 + 'options' => 'ajaxselect2/getTaxonomies',
1500 + 'query_slug' => $slug,
1501 + 'multiple' => true,
1502 + 'label_block' => true,
1503 + 'condition' => [
1504 + 'query_source' => $post_type,
1505 + 'query_selection' => 'dynamic',
1506 + ],
1507 + ]
1508 + );
1509 + }
1510 +
1511 +
1512 + foreach ($post_types as $slug => $title) {
1513 + $this->add_control(
1514 + 'query_exclude_' . $slug,
1515 + [
1516 + 'label' => esc_html__('Exclude ', 'king-addons') . $title,
1517 + 'type' => 'king-addons-ajax-select2',
1518 + 'options' => 'ajaxselect2/getPostsByPostType',
1519 + 'query_slug' => $slug,
1520 + 'multiple' => true,
1521 + 'label_block' => true,
1522 + 'condition' => [
1523 + 'query_source' => $slug,
1524 + 'query_source!' => ['current', 'related'],
1525 + 'query_selection' => 'dynamic',
1526 + ],
1527 + ]
1528 + );
1529 + }
1530 +
1531 +
1532 + foreach ($post_types as $slug => $title) {
1533 + $this->add_control(
1534 + 'query_manual_' . $slug,
1535 + [
1536 + 'label' => esc_html__('Select ', 'king-addons') . $title,
1537 + 'type' => 'king-addons-ajax-select2',
1538 + 'options' => 'ajaxselect2/getPostsByPostType',
1539 + 'query_slug' => $slug,
1540 + 'multiple' => true,
1541 + 'label_block' => true,
1542 + 'condition' => [
1543 + 'query_source' => $slug,
1544 + 'query_selection' => 'manual',
1545 + ],
1546 + 'separator' => 'before',
1547 + ]
1548 + );
1549 + }
1550 +
1551 + $this->add_control(
1552 + 'query_posts_per_page',
1553 + [
1554 + 'label' => esc_html__('Items Per Page', 'king-addons'),
1555 + 'type' => Controls_Manager::NUMBER,
1556 + 'default' => 9,
1557 + 'min' => 0,
1558 + 'condition' => (king_addons_freemius()->can_use_premium_code__premium_only() ? ['query_source!' => 'current', 'layout_select!' => 'slider',] : ['query_source!' => 'current']),
1559 + ]
1560 + );
1561 +
1562 + if (king_addons_freemius()->can_use_premium_code__premium_only()) {
1563 + $this->add_control_query_slides_to_show();
1564 + } else {
1565 + $this->add_control(
1566 + 'limit_slides_to_show_pro_notice',
1567 + [
1568 + 'type' => Controls_Manager::RAW_HTML,
1569 + 'raw' => 'More than <strong>4 Slides</strong> are available<br>in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-grid-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
1570 +
1571 + 'content_classes' => 'king-addons-pro-notice',
1572 + 'condition' => [
1573 + 'layout_select' => 'slider',
1574 + ]
1575 + ]
1576 + );
1577 + }
1578 +
1579 + $this->add_control(
1580 + 'query_offset',
1581 + [
1582 + 'label' => esc_html__('Offset', 'king-addons'),
1583 + 'type' => Controls_Manager::NUMBER,
1584 + 'default' => 0,
1585 + 'min' => 0,
1586 + 'condition' => [
1587 + 'query_selection' => 'dynamic',
1588 + ]
1589 + ]
1590 + );
1591 +
1592 + $this->add_control(
1593 + 'query_not_found_text',
1594 + [
1595 + 'label' => esc_html__('Not Found Text', 'king-addons'),
1596 + 'type' => Controls_Manager::TEXT,
1597 + 'dynamic' => [
1598 + 'active' => true,
1599 + ],
1600 + 'default' => 'No Posts Found!',
1601 + 'condition' => [
1602 + 'query_selection' => 'dynamic',
1603 + 'query_source!' => 'related',
1604 + ]
1605 + ]
1606 + );
1607 +
1608 + $this->add_control_display_scheduled_posts();
1609 +
1610 + // TODO: Under development feature.
1611 +// $this->add_control_query_randomize();
1612 +
1613 + $this->add_control(
1614 + 'query_exclude_no_images',
1615 + [
1616 + 'label' => esc_html__('Exclude Items without Thumbnail', 'king-addons'),
1617 + 'type' => Controls_Manager::SWITCHER,
1618 + 'return_value' => 'yes',
1619 + 'label_block' => false
1620 + ]
1621 + );
1622 +
1623 + /** @noinspection HtmlUnknownTarget */
1624 + $this->add_control(
1625 + 'current_query_notice',
1626 + [
1627 + 'type' => Controls_Manager::RAW_HTML,
1628 + 'raw' => sprintf(__('To set Posts per Page for all Blog <strong>Archive Pages</strong>, navigate to <strong><a href="%s" target="_blank">Settings > Reading</a></strong>.', 'king-addons'), admin_url('options-reading.php')),
1629 + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
1630 + 'condition' => [
1631 + 'query_source' => 'current',
1632 + ],
1633 + ]
1634 + );
1635 +
1636 +
1637 + $this->add_control(
1638 + 'element_select_filter',
1639 + [
1640 + 'type' => Controls_Manager::HIDDEN,
1641 + 'default' => $this->get_related_taxonomies(),
1642 + ]
1643 + );
1644 +
1645 + $this->end_controls_section();
1646 +
1647 +
1648 + $this->start_controls_section(
1649 + 'section_grid_layout',
1650 + [
1651 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Layout', 'king-addons'),
1652 + 'tab' => Controls_Manager::TAB_CONTENT,
1653 + ]
1654 + );
1655 +
1656 + $this->add_control_layout_select();
1657 +
1658 +
1659 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'layout_select', ['pro-ms']);
1660 +
1661 + $this->add_control(
1662 + 'stick_last_element_to_bottom',
1663 + [
1664 + 'label' => esc_html__('Last Element to Bottom', 'king-addons'),
1665 + 'type' => Controls_Manager::SWITCHER,
1666 + 'default' => '',
1667 + 'render_type' => 'template',
1668 +
1669 + 'condition' => [
1670 + 'layout_select' => 'fitRows',
1671 + ]
1672 + ]
1673 + );
1674 +
1675 + $this->add_control(
1676 + 'last_element_position',
1677 + [
1678 + 'label' => esc_html__('Last Element Position', 'king-addons'),
1679 + 'type' => Controls_Manager::CHOOSE,
1680 + 'label_block' => false,
1681 + 'default' => 'left',
1682 + 'options' => [
1683 + 'left' => [
1684 + 'title' => esc_html__('Left', 'king-addons'),
1685 + 'icon' => 'eicon-h-align-left',
1686 + ],
1687 + 'center' => [
1688 + 'title' => esc_html__('Center', 'king-addons'),
1689 + 'icon' => 'eicon-h-align-center',
1690 + ],
1691 + 'right' => [
1692 + 'title' => esc_html__('Right', 'king-addons'),
1693 + 'icon' => 'eicon-h-align-right',
1694 + ]
1695 + ],
1696 + 'selectors_dictionary' => [
1697 + 'left' => 'left: 0; right: auto;',
1698 + 'center' => 'left: 50%; transform: translateX(-50%);',
1699 + 'right' => 'left: auto; right: 0;'
1700 + ],
1701 + 'selectors' => [
1702 + '{{WRAPPER}}.king-addons-grid-last-element-yes .king-addons-grid-item-below-content>div:last-child' => '{{VALUE}}',
1703 + ],
1704 + 'render_type' => 'template',
1705 + 'separator' => 'after'
1706 + ]
1707 + );
1708 +
1709 + $this->add_group_control(
1710 + Group_Control_Image_Size::get_type(),
1711 + [
1712 + 'name' => 'layout_image_crop',
1713 + 'default' => 'full',
1714 + ]
1715 + );
1716 +
1717 + $this->add_control_layout_columns();
1718 +
1719 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
1720 + $this->add_control(
1721 + 'grid_columns_pro_notice',
1722 + [
1723 + 'type' => Controls_Manager::RAW_HTML,
1724 + 'raw' => 'Grid Columns option is fully supported<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-grid-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
1725 +
1726 + 'content_classes' => 'king-addons-pro-notice',
1727 + ]
1728 + );
1729 + }
1730 +
1731 +
1732 + $this->add_control(
1733 + 'layout_list_media_section',
1734 + [
1735 + 'label' => esc_html__('Media', 'king-addons'),
1736 + 'type' => Controls_Manager::HEADING,
1737 + 'separator' => 'before',
1738 + 'condition' => [
1739 + 'layout_select' => 'list',
1740 + ],
1741 + ]
1742 + );
1743 +
1744 + /**
1745 + * Add a switcher control to allow users to hide the post thumbnail in the grid.
1746 + *
1747 + * @since 1.0.0
1748 + */
1749 + $this->add_control(
1750 + 'hide_post_thumbnail',
1751 + [
1752 + 'label' => esc_html__('Hide Post Thumbnail', 'king-addons'),
1753 + 'type' => Controls_Manager::SWITCHER,
1754 + 'default' => '',
1755 + 'return_value' => 'yes',
1756 + 'separator' => 'before',
1757 + 'description' => esc_html__('Completely hide the post featured image/thumbnail in the grid.', 'king-addons'),
1758 + ]
1759 + );
1760 +
1761 + $this->add_control(
1762 + 'layout_list_align',
1763 + [
1764 + 'label' => esc_html__('Alignment', 'king-addons'),
1765 + 'type' => Controls_Manager::SELECT,
1766 + 'default' => 'left',
1767 + 'options' => [
1768 + 'left' => esc_html__('Left', 'king-addons'),
1769 + 'right' => esc_html__('Right', 'king-addons'),
1770 + 'zigzag' => esc_html__('ZigZag', 'king-addons'),
1771 + ],
1772 + 'condition' => [
1773 + 'layout_select' => 'list',
1774 + ],
1775 + ]
1776 + );
1777 +
1778 + $this->add_control(
1779 + 'layout_list_media_width',
1780 + [
1781 + 'label' => esc_html__('Width', 'king-addons'),
1782 + 'type' => Controls_Manager::SLIDER,
1783 + 'default' => [
1784 + 'size' => 30,
1785 + ],
1786 + 'range' => [
1787 + '%' => [
1788 + 'min' => 0,
1789 + 'max' => 100,
1790 + ],
1791 + ],
1792 + 'condition' => [
1793 + 'layout_select' => 'list',
1794 + ]
1795 + ]
1796 + );
1797 +
1798 + $this->add_control(
1799 + 'layout_list_media_distance',
1800 + [
1801 + 'label' => esc_html__('Distance', 'king-addons'),
1802 + 'type' => Controls_Manager::SLIDER,
1803 + 'default' => [
1804 + 'size' => 20,
1805 + ],
1806 + 'range' => [
1807 + 'px' => [
1808 + 'min' => 0,
1809 + 'max' => 100,
1810 + ],
1811 + ],
1812 + 'condition' => [
1813 + 'layout_select' => 'list',
1814 + ]
1815 + ]
1816 + );
1817 +
1818 + $this->add_responsive_control(
1819 + 'layout_gutter_hr',
1820 + [
1821 + 'label' => esc_html__('Horizontal Gutter', 'king-addons'),
1822 + 'type' => Controls_Manager::SLIDER,
1823 + 'range' => [
1824 + 'px' => [
1825 + 'min' => 0,
1826 + 'max' => 150,
1827 + ],
1828 + ],
1829 + 'default' => [
1830 + 'size' => 15,
1831 + ],
1832 + 'widescreen_default' => [
1833 + 'size' => 15,
1834 + ],
1835 + 'laptop_default' => [
1836 + 'size' => 15,
1837 + ],
1838 + 'tablet_extra_default' => [
1839 + 'size' => 15,
1840 + ],
1841 + 'tablet_default' => [
1842 + 'size' => 15,
1843 + ],
1844 + 'mobile_extra_default' => [
1845 + 'size' => 15,
1846 + ],
1847 + 'mobile_default' => [
1848 + 'size' => 15,
1849 + ],
1850 + 'condition' => [
1851 + 'layout_select' => ['fitRows', 'masonry', 'list'],
1852 + ],
1853 + 'separator' => 'before'
1854 + ]
1855 + );
1856 +
1857 + $this->add_responsive_control(
1858 + 'layout_gutter_vr',
1859 + [
1860 + 'label' => esc_html__('Vertical Gutter', 'king-addons'),
1861 + 'type' => Controls_Manager::SLIDER,
1862 + 'range' => [
1863 + 'px' => [
1864 + 'min' => 0,
1865 + 'max' => 150,
1866 + ],
1867 + ],
1868 + 'default' => [
1869 + 'size' => 15,
1870 + ],
1871 + 'condition' => [
1872 + 'layout_select' => ['fitRows', 'masonry', 'list'],
1873 + ]
1874 + ]
1875 + );
1876 +
1877 + $this->add_responsive_control(
1878 + 'layout_filters',
1879 + [
1880 + 'label' => esc_html__('Show Filters', 'king-addons'),
1881 + 'type' => Controls_Manager::SWITCHER,
1882 + 'default' => 'yes',
1883 + 'selectors_dictionary' => [
1884 + '' => 'none',
1885 + 'yes' => 'block'
1886 + ],
1887 + 'selectors' => [
1888 + '{{WRAPPER}} .king-addons-grid-filters' => 'display:{{VALUE}};',
1889 + ],
1890 + 'render_type' => 'template',
1891 + 'separator' => 'before',
1892 + 'condition' => [
1893 + 'layout_select!' => 'slider',
1894 + ]
1895 + ]
1896 + );
1897 +
1898 + $this->add_control(
1899 + 'layout_pagination',
1900 + [
1901 + 'label' => esc_html__('Show Pagination', 'king-addons'),
1902 + 'description' => esc_html__('Please note that Pagination doesn\'t work in editor.', 'king-addons'),
1903 + 'type' => Controls_Manager::SWITCHER,
1904 + 'default' => 'yes',
1905 + 'return_value' => 'yes',
1906 + 'render_type' => 'template',
1907 + 'condition' => [
1908 + 'layout_select!' => 'slider',
1909 + ]
1910 + ]
1911 + );
1912 +
1913 + $this->add_control(
1914 + 'filters_experiment_hr_before',
1915 + [
1916 + 'type' => Controls_Manager::DIVIDER,
1917 + ]
1918 + );
1919 +
1920 + // TODO: Implement the Randomize Query feature.
1921 + $this->add_control(
1922 + 'filters_experiment',
1923 + [
1924 + 'label' => esc_html__('Filters & Load More Dynamic Loading (beta feature)', 'king-addons'),
1925 + 'type' => Controls_Manager::SWITCHER,
1926 + 'default' => 'no',
1927 + 'label_block' => false,
1928 + 'return_value' => 'yes',
1929 + 'render_type' => 'template',
1930 + 'separator' => 'after',
1931 +// TODO: Later
1932 +
1933 +// 'conditions' => [
1934 +// 'relation' => 'and',
1935 +// 'terms' => [
1936 +// [
1937 +// 'name' => 'layout_filters',
1938 +// 'operator' => '!=',
1939 +// 'value' => '',
1940 +// ],
1941 +// [
1942 +// 'relation' => 'or',
1943 +// 'terms' => [
1944 +// [
1945 +// 'relation' => 'and',
1946 +// 'terms' => [
1947 +// [
1948 +// 'name' => 'layout_pagination',
1949 +// 'operator' => '!=',
1950 +// 'value' => '',
1951 +// ],
1952 +// [
1953 +// 'name' => 'pagination_type',
1954 +// 'operator' => 'in',
1955 +// 'value' => ['load-more', 'infinite'],
1956 +// ],
1957 +// ]
1958 +// ],
1959 +// [
1960 +// 'name' => 'layout_pagination',
1961 +// 'operator' => '==',
1962 +// 'value' => '',
1963 +// ]
1964 +// ],
1965 +// ],
1966 +// ]
1967 +// ]
1968 + ]
1969 + );
1970 +
1971 + $this->add_control_open_links_in_new_tab();
1972 +
1973 + $this->add_control_grid_lazy_loading();
1974 +
1975 + $this->add_control_layout_animation();
1976 +
1977 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'layout_animation', ['pro-fd', 'pro-fs']);
1978 +
1979 + $this->add_control(
1980 + 'layout_animation_duration',
1981 + [
1982 + 'label' => esc_html__('Animation Duration', 'king-addons'),
1983 + 'type' => Controls_Manager::NUMBER,
1984 + 'default' => 0.3,
1985 + 'min' => 0,
1986 + 'max' => 5,
1987 + 'step' => 0.1,
1988 + 'condition' => [
1989 + 'layout_animation!' => 'default',
1990 + 'layout_select!' => 'slider',
1991 + ],
1992 + ]
1993 + );
1994 +
1995 + $this->add_control(
1996 + 'layout_animation_delay',
1997 + [
1998 + 'label' => esc_html__('Animation Delay', 'king-addons'),
1999 + 'type' => Controls_Manager::NUMBER,
2000 + 'default' => 0.1,
2001 + 'min' => 0,
2002 + 'max' => 5,
2003 + 'step' => 0.05,
2004 + 'condition' => [
2005 + 'layout_animation!' => 'default',
2006 + 'layout_select!' => 'slider',
2007 + ],
2008 + ]
2009 + );
2010 +
2011 + $this->add_control_layout_slider_amount();
2012 +
2013 + $this->add_control(
2014 + 'layout_slides_to_scroll',
2015 + [
2016 + 'label' => esc_html__('Slides to Scroll', 'king-addons'),
2017 + 'type' => Controls_Manager::NUMBER,
2018 + 'min' => 1,
2019 + 'max' => 10,
2020 + 'default' => 1,
2021 + 'render_type' => 'template',
2022 + 'frontend_available' => true,
2023 + 'separator' => 'before',
2024 + 'condition' => [
2025 + 'layout_select' => 'slider',
2026 + ],
2027 + ]
2028 + );
2029 +
2030 + $this->add_responsive_control(
2031 + 'layout_slider_gutter',
2032 + [
2033 + 'type' => Controls_Manager::SLIDER,
2034 + 'label' => esc_html__('Gutter', 'king-addons'),
2035 + 'size_units' => ['px'],
2036 + 'range' => [
2037 + 'px' => [
2038 + 'min' => 0,
2039 + 'max' => 50,
2040 + ]
2041 + ],
2042 + 'default' => [
2043 + 'unit' => 'px',
2044 + 'size' => 10,
2045 + ],
2046 + 'selectors' => [
2047 + '{{WRAPPER}} .king-addons-grid .slick-slide' => 'margin-left: {{SIZE}}{{UNIT}};',
2048 + '{{WRAPPER}} .king-addons-grid .slick-list' => 'margin-left: -{{SIZE}}{{UNIT}};',
2049 + ],
2050 + 'render_type' => 'template',
2051 + 'condition' => [
2052 + 'layout_slider_amount!' => '1',
2053 + 'layout_select' => 'slider',
2054 + ],
2055 + ]
2056 + );
2057 +
2058 + $this->add_responsive_control(
2059 + 'layout_slider_nav',
2060 + [
2061 + 'label' => esc_html__('Navigation', 'king-addons'),
2062 + 'type' => Controls_Manager::SWITCHER,
2063 + 'default' => 'yes',
2064 + 'widescreen_default' => 'yes',
2065 + 'laptop_default' => 'yes',
2066 + 'tablet_extra_default' => 'yes',
2067 + 'tablet_default' => 'yes',
2068 + 'mobile_extra_default' => 'yes',
2069 + 'mobile_default' => 'yes',
2070 + 'selectors_dictionary' => [
2071 + '' => 'none',
2072 + 'yes' => 'flex'
2073 + ],
2074 + 'selectors' => [
2075 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'display:{{VALUE}} !important;',
2076 + ],
2077 + 'separator' => 'before',
2078 + 'condition' => [
2079 + 'layout_select' => 'slider',
2080 + ]
2081 + ]
2082 + );
2083 +
2084 + $this->add_control_layout_slider_nav_hover();
2085 +
2086 +
2087 + $this->add_control(
2088 + 'layout_slider_nav_icon',
2089 + [
2090 + 'label' => esc_html__('Select Icon', 'king-addons'),
2091 + 'type' => Controls_Manager::SELECT,
2092 + 'default' => 'fas fa-angle-left',
2093 + 'options' => [
2094 + 'fas fa-angle-left' => esc_html__('Angle', 'king-addons'),
2095 + 'fas fa-angle-double-left' => esc_html__('Angle Double', 'king-addons'),
2096 + 'fas fa-arrow-left' => esc_html__('Arrow', 'king-addons'),
2097 + 'fas fa-arrow-alt-circle-left' => esc_html__('Arrow Circle', 'king-addons'),
2098 + 'far fa-arrow-alt-circle-left' => esc_html__('Arrow Circle Alt', 'king-addons'),
2099 + 'fas fa-long-arrow-alt-left' => esc_html__('Long Arrow', 'king-addons'),
2100 + 'fas fa-chevron-left' => esc_html__('Chevron', 'king-addons'),
2101 + ],
2102 + 'separator' => 'after',
2103 + 'condition' => [
2104 + 'layout_slider_nav' => 'yes',
2105 + 'layout_select' => 'slider',
2106 + ],
2107 + ]
2108 + );
2109 +
2110 + $this->add_responsive_control(
2111 + 'layout_slider_dots',
2112 + [
2113 + 'label' => esc_html__('Pagination', 'king-addons'),
2114 + 'type' => Controls_Manager::SWITCHER,
2115 + 'default' => 'yes',
2116 + 'widescreen_default' => 'yes',
2117 + 'laptop_default' => 'yes',
2118 + 'tablet_extra_default' => 'yes',
2119 + 'tablet_default' => 'yes',
2120 + 'mobile_extra_default' => 'yes',
2121 + 'mobile_default' => 'yes',
2122 + 'selectors_dictionary' => [
2123 + '' => 'none',
2124 + 'yes' => 'inline-table'
2125 + ],
2126 + 'selectors' => [
2127 + '{{WRAPPER}} .king-addons-grid-slider-dots' => 'display:{{VALUE}};',
2128 + ],
2129 + 'render_type' => 'template',
2130 + 'condition' => [
2131 + 'layout_select' => 'slider',
2132 + ],
2133 + ]
2134 + );
2135 +
2136 + $this->add_control_layout_slider_dots_position();
2137 +
2138 +
2139 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'layout_slider_dots_position', ['pro-vr']);
2140 +
2141 + $this->add_control_layout_slider_autoplay();
2142 +
2143 + $this->add_controls_group_layout_slider_autoplay();
2144 +
2145 + $this->add_control(
2146 + 'layout_slider_loop',
2147 + [
2148 + 'label' => esc_html__('Infinite Loop', 'king-addons'),
2149 + 'type' => Controls_Manager::SWITCHER,
2150 + 'default' => 'yes',
2151 + 'separator' => 'before',
2152 + 'frontend_available' => true,
2153 + 'condition' => [
2154 + 'layout_select' => 'slider',
2155 + ],
2156 + ]
2157 + );
2158 +
2159 + $this->add_control(
2160 + 'layout_slider_effect',
2161 + [
2162 + 'type' => Controls_Manager::SELECT,
2163 + 'label' => esc_html__('Effect', 'king-addons'),
2164 + 'default' => 'slide',
2165 + 'options' => [
2166 + 'slide' => esc_html__('Slide', 'king-addons'),
2167 + 'fade' => esc_html__('Fade', 'king-addons'),
2168 + ],
2169 + 'condition' => [
2170 + 'layout_slider_amount' => 1,
2171 + 'layout_select' => 'slider',
2172 + ],
2173 + ]
2174 + );
2175 +
2176 + $this->add_control(
2177 + 'layout_slider_effect_duration',
2178 + [
2179 + 'label' => esc_html__('Effect Duration', 'king-addons'),
2180 + 'type' => Controls_Manager::NUMBER,
2181 + 'default' => 0.7,
2182 + 'min' => 0,
2183 + 'max' => 5,
2184 + 'step' => 0.1,
2185 + 'condition' => [
2186 + 'layout_slider_amount' => 1,
2187 + 'layout_select' => 'slider',
2188 + ],
2189 + ]
2190 + );
2191 +
2192 + $this->end_controls_section();
2193 +
2194 +
2195 + $this->start_controls_section(
2196 + 'section_grid_elements',
2197 + [
2198 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Elements', 'king-addons'),
2199 + 'tab' => Controls_Manager::TAB_CONTENT,
2200 + ]
2201 + );
2202 +
2203 + $repeater = new Repeater();
2204 +
2205 + $element_select = $this->add_option_element_select();
2206 +
2207 + $repeater->add_control(
2208 + 'element_select',
2209 + [
2210 + 'label' => esc_html__('Select Element', 'king-addons'),
2211 + 'type' => Controls_Manager::SELECT,
2212 + 'default' => 'title',
2213 + 'options' => array_merge($element_select, $post_taxonomies),
2214 + 'separator' => 'after'
2215 + ]
2216 + );
2217 +
2218 + $repeater->add_control(
2219 + 'show_last_update_date',
2220 + [
2221 + 'label' => esc_html__('Show Last Update Date', 'king-addons'),
2222 + 'type' => Controls_Manager::SWITCHER,
2223 + 'return_value' => 'yes',
2224 + 'separator' => 'after',
2225 + 'condition' => [
2226 + 'element_select' => 'date',
2227 + ]
2228 + ]
2229 + );
2230 +
2231 + Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'grid', 'element_select', ['pro-lk', 'pro-shr', 'pro-cf']);
2232 +
2233 + $repeater->add_control(
2234 + 'element_location',
2235 + [
2236 + 'label' => esc_html__('Location', 'king-addons'),
2237 + 'type' => Controls_Manager::SELECT,
2238 + 'default' => 'below',
2239 + 'options' => [
2240 + 'above' => esc_html__('Above Media', 'king-addons'),
2241 + 'over' => esc_html__('Over Media', 'king-addons'),
2242 + 'below' => esc_html__('Below Media', 'king-addons'),
2243 + ]
2244 + ]
2245 + );
2246 +
2247 + $repeater->add_control(
2248 + 'element_display',
2249 + [
2250 + 'label' => esc_html__('Display', 'king-addons'),
2251 + 'type' => Controls_Manager::SELECT,
2252 + 'default' => 'block',
2253 + 'options' => [
2254 + 'inline' => esc_html__('Inline', 'king-addons'),
2255 + 'block' => esc_html__('Separate Line', 'king-addons'),
2256 + 'custom' => esc_html__('Custom Width', 'king-addons'),
2257 + ],
2258 + ]
2259 + );
2260 +
2261 + $repeater->add_control(
2262 + 'element_custom_width',
2263 + [
2264 + 'label' => esc_html__('Element Width', 'king-addons'),
2265 + 'type' => Controls_Manager::SLIDER,
2266 + 'size_units' => ['%'],
2267 + 'range' => [
2268 + '%' => [
2269 + 'min' => 0,
2270 + 'max' => 100,
2271 + ],
2272 + ],
2273 + 'default' => [
2274 + 'unit' => '%',
2275 + 'size' => 100,
2276 + ],
2277 + 'selectors' => [
2278 + '{{WRAPPER}} {{CURRENT_ITEM}}' => 'width: {{SIZE}}%;',
2279 + ],
2280 + 'condition' => [
2281 + 'element_display' => 'custom',
2282 + ],
2283 + ]
2284 + );
2285 +
2286 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
2287 + $repeater->add_control(
2288 + 'element_align_pro_notice',
2289 + [
2290 + 'raw' => 'Vertical Align option is available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-grid-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
2291 + 'type' => Controls_Manager::RAW_HTML,
2292 + 'content_classes' => 'king-addons-pro-notice',
2293 + 'condition' => [
2294 + 'element_location' => 'over',
2295 + ],
2296 + ]
2297 + );
2298 + }
2299 +
2300 + $repeater->add_control(
2301 + 'element_align_vr',
2302 + [
2303 + 'label' => esc_html__('Vertical Align', 'king-addons'),
2304 + 'type' => Controls_Manager::CHOOSE,
2305 + 'label_block' => false,
2306 + 'default' => 'middle',
2307 + 'options' => [
2308 + 'top' => [
2309 + 'title' => esc_html__('Top', 'king-addons'),
2310 + 'icon' => 'eicon-v-align-top',
2311 + ],
2312 + 'middle' => [
2313 + 'title' => esc_html__('Middle', 'king-addons'),
2314 + 'icon' => 'eicon-v-align-middle',
2315 + ],
2316 + 'bottom' => [
2317 + 'title' => esc_html__('Bottom', 'king-addons'),
2318 + 'icon' => 'eicon-v-align-bottom',
2319 + ],
2320 + ],
2321 + 'condition' => [
2322 + 'element_location' => 'over',
2323 + ],
2324 + ]
2325 + );
2326 +
2327 + $repeater->add_control(
2328 + 'element_align_hr',
2329 + [
2330 + 'label' => esc_html__('Horizontal Align', 'king-addons'),
2331 + 'type' => Controls_Manager::CHOOSE,
2332 + 'label_block' => false,
2333 + 'default' => 'left',
2334 + 'options' => [
2335 + 'left' => [
2336 + 'title' => esc_html__('Left', 'king-addons'),
2337 + 'icon' => 'eicon-h-align-left',
2338 + ],
2339 + 'center' => [
2340 + 'title' => esc_html__('Center', 'king-addons'),
2341 + 'icon' => 'eicon-h-align-center',
2342 + ],
2343 + 'right' => [
2344 + 'title' => esc_html__('Right', 'king-addons'),
2345 + 'icon' => 'eicon-h-align-right',
2346 + ]
2347 + ],
2348 + 'selectors' => [
2349 + '{{WRAPPER}} {{CURRENT_ITEM}}' => 'text-align: {{VALUE}}',
2350 + ],
2351 + 'render_type' => 'template',
2352 + 'separator' => 'after'
2353 + ]
2354 + );
2355 +
2356 + $repeater->add_control(
2357 + 'element_title_tag',
2358 + [
2359 + 'label' => esc_html__('Title HTML Tag', 'king-addons'),
2360 + 'type' => Controls_Manager::SELECT,
2361 + 'options' => [
2362 + 'h1' => 'H1',
2363 + 'h2' => 'H2',
2364 + 'h3' => 'H3',
2365 + 'h4' => 'H4',
2366 + 'h5' => 'H5',
2367 + 'h6' => 'H6',
2368 + 'div' => 'div',
2369 + 'span' => 'span',
2370 + 'P' => 'p'
2371 + ],
2372 + 'default' => 'h2',
2373 + 'condition' => [
2374 + 'element_select' => 'title',
2375 + ]
2376 + ]
2377 + );
2378 +
2379 + $repeater->add_control(
2380 + 'element_dropcap',
2381 + [
2382 + 'label' => esc_html__('Enable Drop Cap', 'king-addons'),
2383 + 'type' => Controls_Manager::SWITCHER,
2384 + 'return_value' => 'yes',
2385 + 'condition' => [
2386 + 'element_select' => ['content', 'excerpt'],
2387 + ]
2388 + ]
2389 + );
2390 +
2391 + $repeater->add_control(
2392 + 'element_trim_text_by',
2393 + [
2394 + 'label' => esc_html__('Trim Text By', 'king-addons'),
2395 + 'type' => Controls_Manager::SELECT,
2396 + 'default' => 'word_count',
2397 + 'options' => $this->add_repeater_args_element_trim_text_by(),
2398 + 'separator' => 'after',
2399 + 'condition' => [
2400 + 'element_select' => ['title', 'excerpt'],
2401 + ]
2402 + ]
2403 + );
2404 +
2405 + $repeater->add_control(
2406 + 'element_word_count',
2407 + [
2408 + 'label' => esc_html__('Word Count', 'king-addons'),
2409 + 'type' => Controls_Manager::NUMBER,
2410 + 'default' => 20,
2411 + 'min' => 1,
2412 + 'condition' => [
2413 + 'element_select' => ['title', 'excerpt'],
2414 + 'element_trim_text_by' => 'word_count'
2415 + ]
2416 + ]
2417 + );
2418 +
2419 + $repeater->add_control(
2420 + 'element_letter_count',
2421 + [
2422 + 'label' => esc_html__('Letter Count', 'king-addons'),
2423 + 'type' => Controls_Manager::NUMBER,
2424 + 'default' => 40,
2425 + 'min' => 1,
2426 + 'condition' => [
2427 + 'element_select' => ['title', 'excerpt'],
2428 + 'element_trim_text_by' => 'letter_count'
2429 + ]
2430 + ]
2431 + );
2432 +
2433 + $repeater->add_control(
2434 + 'element_show_avatar',
2435 + [
2436 + 'label' => esc_html__('Show Avatar', 'king-addons'),
2437 + 'type' => Controls_Manager::SWITCHER,
2438 + 'return_value' => 'yes',
2439 + 'condition' => [
2440 + 'element_select' => ['author']
2441 + ]
2442 + ]
2443 + );
2444 +
2445 + $repeater->add_control(
2446 + 'element_avatar_size',
2447 + [
2448 + 'label' => esc_html__('Avatar Size', 'king-addons'),
2449 + 'type' => Controls_Manager::NUMBER,
2450 + 'default' => 16,
2451 + 'min' => 8,
2452 + 'condition' => [
2453 + 'element_select' => ['author'],
2454 + 'element_show_avatar' => 'yes'
2455 + ],
2456 + 'separator' => 'after'
2457 + ]
2458 + );
2459 +
2460 + $repeater->add_control(
2461 + 'element_read_more_text',
2462 + [
2463 + 'label' => esc_html__('Read More Text', 'king-addons'),
2464 + 'type' => Controls_Manager::TEXT,
2465 + 'dynamic' => [
2466 + 'active' => true,
2467 + ],
2468 + 'default' => 'Read More',
2469 + 'condition' => [
2470 + 'element_select' => ['read-more'],
2471 + ],
2472 + 'separator' => 'after'
2473 + ]
2474 + );
2475 +
2476 + $repeater->add_control(
2477 + 'element_tax_sep',
2478 + [
2479 + 'label' => esc_html__('Separator', 'king-addons'),
2480 + 'type' => Controls_Manager::TEXT,
2481 + 'dynamic' => [
2482 + 'active' => true,
2483 + ],
2484 + 'default' => ', ',
2485 + 'condition' => [
2486 + 'element_select!' => [
2487 + 'title',
2488 + 'content',
2489 + 'excerpt',
2490 + 'date',
2491 + 'time',
2492 + 'author',
2493 + 'comments',
2494 + 'read-more',
2495 + 'likes',
2496 + 'sharing',
2497 + 'lightbox',
2498 + 'custom-field',
2499 + 'separator',
2500 + 'post_format',
2501 + ],
2502 + ],
2503 + 'separator' => 'after'
2504 + ]
2505 + );
2506 +
2507 + $repeater->add_control(
2508 + 'element_tax_style',
2509 + [
2510 + 'label' => esc_html__('Select Styling', 'king-addons'),
2511 + 'type' => Controls_Manager::SELECT,
2512 + 'default' => 'king-addons-grid-tax-style-1',
2513 + 'options' => [
2514 + 'king-addons-grid-tax-style-1' => esc_html__('Taxonomy Style 1', 'king-addons'),
2515 + 'king-addons-grid-tax-style-2' => esc_html__('Taxonomy Style 2', 'king-addons'),
2516 + ],
2517 + 'condition' => [
2518 + 'element_select!' => [
2519 + 'title',
2520 + 'content',
2521 + 'excerpt',
2522 + 'date',
2523 + 'time',
2524 + 'author',
2525 + 'comments',
2526 + 'read-more',
2527 + 'likes',
2528 + 'sharing',
2529 + 'lightbox',
2530 + 'custom-field',
2531 + 'separator',
2532 + ],
2533 + ],
2534 + 'separator' => 'after'
2535 + ]
2536 + );
2537 +
2538 + $repeater->add_control(
2539 + 'element_comments_text_1',
2540 + [
2541 + 'label' => esc_html__('No Comments', 'king-addons'),
2542 + 'type' => Controls_Manager::TEXT,
2543 + 'dynamic' => [
2544 + 'active' => true,
2545 + ],
2546 + 'default' => 'No Comments',
2547 + 'condition' => [
2548 + 'element_select' => ['comments'],
2549 + ]
2550 + ]
2551 + );
2552 +
2553 + $repeater->add_control(
2554 + 'element_comments_text_2',
2555 + [
2556 + 'label' => esc_html__('One Comment', 'king-addons'),
2557 + 'type' => Controls_Manager::TEXT,
2558 + 'dynamic' => [
2559 + 'active' => true,
2560 + ],
2561 + 'default' => 'Comment',
2562 + 'condition' => [
2563 + 'element_select' => ['comments'],
2564 + ]
2565 + ]
2566 + );
2567 +
2568 + $repeater->add_control(
2569 + 'element_comments_text_3',
2570 + [
2571 + 'label' => esc_html__('Multiple Comments', 'king-addons'),
2572 + 'type' => Controls_Manager::TEXT,
2573 + 'dynamic' => [
2574 + 'active' => true,
2575 + ],
2576 + 'default' => 'Comments',
2577 + 'condition' => [
2578 + 'element_select' => ['comments'],
2579 + ],
2580 + 'separator' => 'after'
2581 + ]
2582 + );
2583 +
2584 + $repeater->add_control('element_like_icon', $this->add_repeater_args_element_like_icon());
2585 +
2586 + $repeater->add_control('element_like_show_count', $this->add_repeater_args_element_like_show_count());
2587 +
2588 + $repeater->add_control('element_like_text', $this->add_repeater_args_element_like_text());
2589 +
2590 + $repeater->add_control('element_sharing_icon_1', $this->add_repeater_args_element_sharing_icon_1());
2591 +
2592 + $repeater->add_control('element_sharing_icon_2', $this->add_repeater_args_element_sharing_icon_2());
2593 +
2594 + $repeater->add_control('element_sharing_icon_3', $this->add_repeater_args_element_sharing_icon_3());
2595 +
2596 + $repeater->add_control('element_sharing_icon_4', $this->add_repeater_args_element_sharing_icon_4());
2597 +
2598 + $repeater->add_control('element_sharing_icon_5', $this->add_repeater_args_element_sharing_icon_5());
2599 +
2600 + $repeater->add_control('element_sharing_icon_6', $this->add_repeater_args_element_sharing_icon_6());
2601 +
2602 + $repeater->add_control('element_sharing_trigger', $this->add_repeater_args_element_sharing_trigger());
2603 +
2604 + $repeater->add_control('element_sharing_trigger_icon', $this->add_repeater_args_element_sharing_trigger_icon());
2605 +
2606 + $repeater->add_control('element_sharing_trigger_action', $this->add_repeater_args_element_sharing_trigger_action());
2607 +
2608 + $repeater->add_control('element_sharing_trigger_direction', $this->add_repeater_args_element_sharing_trigger_direction());
2609 +
2610 + $repeater->add_control('element_sharing_tooltip', $this->add_repeater_args_element_sharing_tooltip());
2611 +
2612 + $repeater->add_control(
2613 + 'element_lightbox_pfa_select',
2614 + [
2615 + 'label' => esc_html__('Post Format Audio', 'king-addons'),
2616 + 'type' => Controls_Manager::SELECT,
2617 + 'default' => 'default',
2618 + 'options' => [
2619 + 'default' => esc_html__('Default', 'king-addons'),
2620 + 'meta' => esc_html__('Meta Value', 'king-addons'),
2621 + ],
2622 + 'condition' => [
2623 + 'element_select' => 'lightbox',
2624 + ],
2625 + ]
2626 + );
2627 +
2628 + $repeater->add_control(
2629 + 'element_lightbox_pfa_meta',
2630 + [
2631 + 'label' => esc_html__('Audio Meta Value', 'king-addons'),
2632 + 'type' => 'king-addons-ajax-select2',
2633 + 'label_block' => true,
2634 + 'default' => 'default',
2635 + 'options' => 'ajaxselect2/getCustomMetaKeys',
2636 + 'condition' => [
2637 + 'element_select' => 'lightbox',
2638 + 'element_lightbox_pfa_select' => 'meta',
2639 + ],
2640 + ]
2641 + );
2642 +
2643 + $repeater->add_control(
2644 + 'element_lightbox_pfv_select',
2645 + [
2646 + 'label' => esc_html__('Post Format Video', 'king-addons'),
2647 + 'type' => Controls_Manager::SELECT,
2648 + 'default' => 'default',
2649 + 'options' => [
2650 + 'default' => esc_html__('Default', 'king-addons'),
2651 + 'meta' => esc_html__('Meta Value', 'king-addons'),
2652 + ],
2653 + 'condition' => [
2654 + 'element_select' => 'lightbox',
2655 + ],
2656 + ]
2657 + );
2658 +
2659 + $repeater->add_control(
2660 + 'element_lightbox_pfv_meta',
2661 + [
2662 + 'label' => esc_html__('Video Meta Value', 'king-addons'),
2663 + 'type' => 'king-addons-ajax-select2',
2664 + 'label_block' => true,
2665 + 'default' => 'default',
2666 + 'options' => 'ajaxselect2/getCustomMetaKeys',
2667 + 'condition' => [
2668 + 'element_select' => 'lightbox',
2669 + 'element_lightbox_pfv_select' => 'meta',
2670 + ],
2671 + ]
2672 + );
2673 +
2674 + $repeater->add_control(
2675 + 'element_lightbox_overlay',
2676 + [
2677 + 'label' => esc_html__('Media Overlay', 'king-addons'),
2678 + 'type' => Controls_Manager::SWITCHER,
2679 + 'return_value' => 'yes',
2680 + 'separator' => 'after',
2681 + 'condition' => [
2682 + 'element_select' => ['lightbox'],
2683 + ],
2684 + ]
2685 + );
2686 +
2687 + $repeater->add_control('element_custom_field', $this->add_repeater_args_element_custom_field());
2688 +
2689 + $repeater->add_control('element_custom_field_img_ID', $this->add_repeater_args_element_custom_field_img_ID());
2690 +
2691 + $repeater->add_control('element_custom_field_btn_link', $this->add_repeater_args_element_custom_field_btn_link());
2692 +
2693 + $repeater->add_control('element_custom_field_new_tab', $this->add_repeater_args_element_custom_field_new_tab());
2694 +
2695 + $repeater->add_control('custom_field_wrapper_html_divider1', $this->add_repeater_args_custom_field_wrapper_html_divider1());
2696 +
2697 + $repeater->add_control('element_custom_field_wrapper', $this->add_repeater_args_element_custom_field_wrapper());
2698 +
2699 + $repeater->add_control('element_custom_field_wrapper_html', $this->add_repeater_args_element_custom_field_wrapper_html());
2700 +
2701 + $repeater->add_control('custom_field_wrapper_html_divider2', $this->add_repeater_args_custom_field_wrapper_html_divider2());
2702 +
2703 + $repeater->add_control('element_cf_tag', $this->add_repeater_args_element_cf_tag());
2704 +
2705 + $repeater->add_control('element_custom_field_style', $this->add_repeater_args_element_custom_field_style());
2706 +
2707 + $repeater->add_control(
2708 + 'element_separator_style',
2709 + [
2710 + 'label' => esc_html__('Select Styling', 'king-addons'),
2711 + 'type' => Controls_Manager::SELECT,
2712 + 'default' => 'king-addons-grid-sep-style-1',
2713 + 'options' => [
2714 + 'king-addons-grid-sep-style-1' => esc_html__('Separator Style 1', 'king-addons'),
2715 + 'king-addons-grid-sep-style-2' => esc_html__('Separator Style 2', 'king-addons'),
2716 + ],
2717 + 'condition' => [
2718 + 'element_select' => 'separator',
2719 + ]
2720 + ]
2721 + );
2722 +
2723 + $repeater->add_control(
2724 + 'element_extra_text_pos',
2725 + [
2726 + 'label' => esc_html__('Extra Text Display', 'king-addons'),
2727 + 'type' => Controls_Manager::SELECT,
2728 + 'options' => [
2729 + 'none' => esc_html__('None', 'king-addons'),
2730 + 'before' => esc_html__('Before Element', 'king-addons'),
2731 + 'after' => esc_html__('After Element', 'king-addons'),
2732 + ],
2733 + 'default' => 'none',
2734 + 'condition' => [
2735 + 'element_select!' => [
2736 + 'title',
2737 + 'content',
2738 + 'excerpt',
2739 + 'read-more',
2740 + 'separator',
2741 + ],
2742 + ]
2743 + ]
2744 + );
2745 +
2746 + $repeater->add_control(
2747 + 'element_extra_text',
2748 + [
2749 + 'label' => esc_html__('Extra Text', 'king-addons'),
2750 + 'type' => Controls_Manager::TEXT,
2751 + 'dynamic' => [
2752 + 'active' => true,
2753 + ],
2754 + 'default' => '',
2755 + 'condition' => [
2756 + 'element_select!' => [
2757 + 'title',
2758 + 'content',
2759 + 'excerpt',
2760 + 'read-more',
2761 + 'separator',
2762 + ],
2763 + 'element_extra_text_pos!' => 'none'
2764 + ]
2765 + ]
2766 + );
2767 +
2768 + $repeater->add_control(
2769 + 'element_extra_icon_pos',
2770 + [
2771 + 'label' => esc_html__('Extra Icon Position', 'king-addons'),
2772 + 'type' => Controls_Manager::SELECT,
2773 + 'options' => [
2774 + 'none' => esc_html__('None', 'king-addons'),
2775 + 'before' => esc_html__('Before Element', 'king-addons'),
2776 + 'after' => esc_html__('After Element', 'king-addons'),
2777 + ],
2778 + 'default' => 'none',
2779 + 'condition' => [
2780 + 'element_select!' => [
2781 + 'title',
2782 + 'content',
2783 + 'excerpt',
2784 + 'separator',
2785 + 'likes',
2786 + 'sharing',
2787 + ],
2788 + ]
2789 + ]
2790 + );
2791 +
2792 + $repeater->add_control(
2793 + 'element_extra_icon',
2794 + [
2795 + 'label' => esc_html__('Select Icon', 'king-addons'),
2796 + 'type' => Controls_Manager::ICONS,
2797 + 'skin' => 'inline',
2798 + 'label_block' => false,
2799 + 'default' => [
2800 + 'value' => 'fas fa-search',
2801 + 'library' => 'fa-solid',
2802 + ],
2803 + 'condition' => [
2804 + 'element_select!' => [
2805 + 'title',
2806 + 'content',
2807 + 'excerpt',
2808 + 'separator',
2809 + 'likes',
2810 + 'sharing',
2811 + ],
2812 + 'element_extra_icon_pos!' => 'none'
2813 + ]
2814 + ]
2815 + );
2816 +
2817 + $repeater->add_control(
2818 + 'animation_divider',
2819 + [
2820 + 'type' => Controls_Manager::DIVIDER,
2821 + 'style' => 'thick',
2822 + 'condition' => [
2823 + 'element_location' => 'over'
2824 + ],
2825 + ]
2826 + );
2827 +
2828 + $repeater->add_control(
2829 + 'element_animation',
2830 + [
2831 + 'label' => esc_html__('Select Animation', 'king-addons'),
2832 + 'type' => 'king-addons-animations',
2833 + 'default' => 'none',
2834 + 'condition' => [
2835 + 'element_location' => 'over'
2836 + ],
2837 + ]
2838 + );
2839 +
2840 +
2841 + Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'grid', 'element_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']);
2842 +
2843 + $repeater->add_control(
2844 + 'element_animation_duration',
2845 + [
2846 + 'label' => esc_html__('Animation Duration', 'king-addons'),
2847 + 'type' => Controls_Manager::NUMBER,
2848 + 'default' => 0.3,
2849 + 'min' => 0,
2850 + 'max' => 5,
2851 + 'step' => 0.1,
2852 + 'selectors' => [
2853 + '{{WRAPPER}} {{CURRENT_ITEM}}' => 'transition-duration: {{VALUE}}s;'
2854 + ],
2855 + 'condition' => [
2856 + 'element_animation!' => 'none',
2857 + 'element_location' => 'over',
2858 + ],
2859 + ]
2860 + );
2861 +
2862 + $repeater->add_control(
2863 + 'element_animation_delay',
2864 + [
2865 + 'label' => esc_html__('Animation Delay', 'king-addons'),
2866 + 'type' => Controls_Manager::NUMBER,
2867 + 'default' => 0,
2868 + 'min' => 0,
2869 + 'max' => 5,
2870 + 'step' => 0.1,
2871 + 'selectors' => [
2872 + '{{WRAPPER}} .king-addons-animation-wrap:hover {{CURRENT_ITEM}}' => 'transition-delay: {{VALUE}}s;'
2873 + ],
2874 + 'condition' => [
2875 + 'element_animation!' => 'none',
2876 + 'element_location' => 'over'
2877 + ],
2878 + ]
2879 + );
2880 +
2881 + $repeater->add_control(
2882 + 'element_animation_timing',
2883 + [
2884 + 'label' => esc_html__('Animation Timing', 'king-addons'),
2885 + 'type' => Controls_Manager::SELECT,
2886 + 'options' => Core::getAnimationTimings(),
2887 + 'default' => 'ease-default',
2888 + 'condition' => [
2889 + 'element_animation!' => 'none',
2890 + 'element_location' => 'over'
2891 + ],
2892 + ]
2893 + );
2894 +
2895 +
2896 + Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'grid', 'element_animation_timing', ['pro-eio', 'pro-eiqd', 'pro-eicb', 'pro-eiqrt', 'pro-eiqnt', 'pro-eisn', 'pro-eiex', 'pro-eicr', 'pro-eibk', 'pro-eoqd', 'pro-eocb', 'pro-eoqrt', 'pro-eoqnt', 'pro-eosn', 'pro-eoex', 'pro-eocr', 'pro-eobk', 'pro-eioqd', 'pro-eiocb', 'pro-eioqrt', 'pro-eioqnt', 'pro-eiosn', 'pro-eioex', 'pro-eiocr', 'pro-eiobk',]);
2897 +
2898 + $repeater->add_control(
2899 + 'element_animation_size',
2900 + [
2901 + 'label' => esc_html__('Animation Size', 'king-addons'),
2902 + 'type' => Controls_Manager::SELECT,
2903 + 'options' => [
2904 + 'small' => esc_html__('Small', 'king-addons'),
2905 + 'medium' => esc_html__('Medium', 'king-addons'),
2906 + 'large' => esc_html__('Large', 'king-addons'),
2907 + ],
2908 + 'default' => 'large',
2909 + 'condition' => [
2910 + 'element_animation!' => 'none',
2911 + 'element_location' => 'over'
2912 + ],
2913 + ]
2914 + );
2915 +
2916 + $repeater->add_control(
2917 + 'element_animation_tr',
2918 + [
2919 + 'label' => esc_html__('Animation Transparency', 'king-addons'),
2920 + 'type' => Controls_Manager::SWITCHER,
2921 + 'default' => 'yes',
2922 + 'return_value' => 'yes',
2923 + 'condition' => [
2924 + 'element_animation!' => 'none',
2925 + 'element_location' => 'over'
2926 + ],
2927 + ]
2928 + );
2929 +
2930 + $repeater->add_control(
2931 + 'element_animation_disable_mobile',
2932 + [
2933 + 'label' => esc_html__('Disable on Mobile/Tablet', 'king-addons'),
2934 + 'type' => Controls_Manager::SWITCHER,
2935 + 'return_value' => 'yes',
2936 + 'condition' => [
2937 + 'element_animation!' => 'none',
2938 + 'element_location' => 'over'
2939 + ],
2940 + ]
2941 + );
2942 +
2943 + $repeater->add_responsive_control(
2944 + 'element_show_on',
2945 + [
2946 + 'label' => esc_html__('Show on this Device', 'king-addons'),
2947 + 'type' => Controls_Manager::SWITCHER,
2948 + 'default' => 'yes',
2949 + 'widescreen_default' => 'yes',
2950 + 'laptop_default' => 'yes',
2951 + 'tablet_extra_default' => 'yes',
2952 + 'tablet_default' => 'yes',
2953 + 'mobile_extra_default' => 'yes',
2954 + 'mobile_default' => 'yes',
2955 + 'selectors_dictionary' => [
2956 + '' => 'position: absolute; left: -99999999px;',
2957 + 'yes' => 'position: static; left: auto;'
2958 + ],
2959 + 'selectors' => [
2960 + '{{WRAPPER}} {{CURRENT_ITEM}}' => '{{VALUE}}',
2961 + ],
2962 + 'render_type' => 'template',
2963 + ]
2964 + );
2965 +
2966 + $this->add_control(
2967 + 'grid_elements',
2968 + [
2969 + 'label' => esc_html__('Grid Elements', 'king-addons'),
2970 + 'type' => Controls_Manager::REPEATER,
2971 + 'fields' => $repeater->get_controls(),
2972 + 'default' => [
2973 + [
2974 + 'element_select' => 'title',
2975 + ],
2976 + [
2977 + 'element_select' => 'date',
2978 + 'element_display' => 'inline',
2979 + 'element_extra_text_pos' => 'after',
2980 + 'element_extra_text' => '/',
2981 + ],
2982 + [
2983 + 'element_select' => 'comments',
2984 + 'element_display' => 'inline',
2985 + ],
2986 + [
2987 + 'element_select' => 'excerpt',
2988 + ],
2989 + [
2990 + 'element_select' => 'read-more',
2991 + ],
2992 + ],
2993 + 'title_field' => '{{ element_select.charAt(0).toUpperCase() + element_select.slice(1) }}',
2994 + ]
2995 + );
2996 +
2997 + $this->end_controls_section();
2998 +
2999 +
3000 + $this->start_controls_section(
3001 + 'section_image_overlay',
3002 + [
3003 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Media Overlay', 'king-addons'),
3004 + 'tab' => Controls_Manager::TAB_CONTENT,
3005 + ]
3006 + );
3007 +
3008 + $this->add_responsive_control(
3009 + 'overlay_width',
3010 + [
3011 + 'label' => esc_html__('Overlay Width', 'king-addons'),
3012 + 'type' => Controls_Manager::SLIDER,
3013 + 'size_units' => ['%', 'px'],
3014 + 'default' => [
3015 + 'unit' => '%',
3016 + 'size' => 100,
3017 + ],
3018 + 'range' => [
3019 + '%' => [
3020 + 'min' => 0,
3021 + 'max' => 100,
3022 + ],
3023 + 'px' => [
3024 + 'min' => 0,
3025 + 'max' => 500,
3026 + ],
3027 + ],
3028 + 'selectors' => [
3029 + '{{WRAPPER}} .king-addons-grid-media-hover-bg' => 'width: {{SIZE}}{{UNIT}};top:calc((100% - {{overlay_height.SIZE}}{{overlay_height.UNIT}})/2);left:calc((100% - {{SIZE}}{{UNIT}})/2);',
3030 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-top"]' => 'top:calc((100% - {{overlay_height.SIZE}}{{overlay_height.UNIT}})/2);left:calc((100% - {{SIZE}}{{UNIT}})/2);',
3031 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-bottom"]' => 'bottom:calc((100% - {{overlay_height.SIZE}}{{overlay_height.UNIT}})/2);left:calc((100% - {{SIZE}}{{UNIT}})/2);',
3032 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-right"]' => 'top:calc((100% - {{overlay_height.SIZE}}{{overlay_height.UNIT}})/2);right:calc((100% - {{SIZE}}{{UNIT}})/2);',
3033 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-left"]' => 'top:calc((100% - {{overlay_height.SIZE}}{{overlay_height.UNIT}})/2);left:calc((100% - {{SIZE}}{{UNIT}})/2);',
3034 + ],
3035 + ]
3036 + );
3037 +
3038 + $this->add_responsive_control(
3039 + 'overlay_height',
3040 + [
3041 + 'label' => esc_html__('Overlay Height', 'king-addons'),
3042 + 'type' => Controls_Manager::SLIDER,
3043 + 'size_units' => ['%', 'px'],
3044 + 'default' => [
3045 + 'unit' => '%',
3046 + 'size' => 100,
3047 + ],
3048 + 'range' => [
3049 + '%' => [
3050 + 'min' => 0,
3051 + 'max' => 100,
3052 + ],
3053 + 'px' => [
3054 + 'min' => 0,
3055 + 'max' => 500,
3056 + ],
3057 + ],
3058 + 'selectors' => [
3059 + '{{WRAPPER}} .king-addons-grid-media-hover-bg' => 'height: {{SIZE}}{{UNIT}};top:calc((100% - {{SIZE}}{{UNIT}})/2);left:calc((100% - {{overlay_width.SIZE}}{{overlay_width.UNIT}})/2);',
3060 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-top"]' => 'top:calc((100% - {{SIZE}}{{UNIT}})/2);left:calc((100% - {{overlay_width.SIZE}}{{overlay_width.UNIT}})/2);',
3061 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-bottom"]' => 'bottom:calc((100% - {{SIZE}}{{UNIT}})/2);left:calc((100% - {{overlay_width.SIZE}}{{overlay_width.UNIT}})/2);',
3062 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-right"]' => 'top:calc((100% - {{SIZE}}{{UNIT}})/2);right:calc((100% - {{overlay_width.SIZE}}{{overlay_width.UNIT}})/2);',
3063 + '{{WRAPPER}} .king-addons-grid-media-hover-bg[class*="-left"]' => 'top:calc((100% - {{SIZE}}{{UNIT}})/2);left:calc((100% - {{overlay_width.SIZE}}{{overlay_width.UNIT}})/2);',
3064 + ],
3065 + 'separator' => 'after',
3066 + ]
3067 + );
3068 +
3069 + $this->add_control(
3070 + 'overlay_post_link',
3071 + [
3072 + 'label' => esc_html__('Link to Single Page', 'king-addons'),
3073 + 'type' => Controls_Manager::SWITCHER,
3074 + 'default' => 'yes',
3075 + 'return_value' => 'yes',
3076 + 'separator' => 'after',
3077 + ]
3078 + );
3079 +
3080 + $this->add_control(
3081 + 'overlay_animation',
3082 + [
3083 + 'label' => esc_html__('Select Animation', 'king-addons'),
3084 + 'type' => 'king-addons-animations-alt',
3085 + 'default' => 'fade-in',
3086 + ]
3087 + );
3088 +
3089 +
3090 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'overlay_animation', ['pro-slrt', 'pro-slxrt', 'pro-slbt', 'pro-sllt', 'pro-sltp', 'pro-slxlt', 'pro-sktp', 'pro-skrt', 'pro-skbt', 'pro-sklt', 'pro-scup', 'pro-scdn', 'pro-rllt', 'pro-rlrt']);
3091 +
3092 + $this->add_control(
3093 + 'overlay_animation_duration',
3094 + [
3095 + 'label' => esc_html__('Animation Duration', 'king-addons'),
3096 + 'type' => Controls_Manager::NUMBER,
3097 + 'default' => 0.3,
3098 + 'min' => 0,
3099 + 'max' => 5,
3100 + 'step' => 0.1,
3101 + 'selectors' => [
3102 + '{{WRAPPER}} .king-addons-grid-media-hover-bg' => 'transition-duration: {{VALUE}}s;'
3103 + ],
3104 + 'condition' => [
3105 + 'overlay_animation!' => 'none',
3106 + ],
3107 + ]
3108 + );
3109 +
3110 + $this->add_control(
3111 + 'overlay_animation_delay',
3112 + [
3113 + 'label' => esc_html__('Animation Delay', 'king-addons'),
3114 + 'type' => Controls_Manager::NUMBER,
3115 + 'default' => 0,
3116 + 'min' => 0,
3117 + 'max' => 5,
3118 + 'step' => 0.1,
3119 + 'selectors' => [
3120 + '{{WRAPPER}} .king-addons-animation-wrap:hover .king-addons-grid-media-hover-bg' => 'transition-delay: {{VALUE}}s;'
3121 + ],
3122 + 'condition' => [
3123 + 'overlay_animation!' => 'none',
3124 + ],
3125 + ]
3126 + );
3127 +
3128 + $this->add_control(
3129 + 'overlay_animation_timing',
3130 + [
3131 + 'label' => esc_html__('Animation Timing', 'king-addons'),
3132 + 'type' => Controls_Manager::SELECT,
3133 + 'options' => Core::getAnimationTimings(),
3134 + 'default' => 'ease-default',
3135 + 'condition' => [
3136 + 'overlay_animation!' => 'none',
3137 + ],
3138 + ]
3139 + );
3140 +
3141 +
3142 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'overlay_animation_timing', Core::getAnimationTimingsConditionsPro());
3143 +
3144 + $this->add_control(
3145 + 'overlay_animation_size',
3146 + [
3147 + 'label' => esc_html__('Animation Size', 'king-addons'),
3148 + 'type' => Controls_Manager::SELECT,
3149 + 'options' => [
3150 + 'small' => esc_html__('Small', 'king-addons'),
3151 + 'medium' => esc_html__('Medium', 'king-addons'),
3152 + 'large' => esc_html__('Large', 'king-addons'),
3153 + ],
3154 + 'default' => 'large',
3155 + 'condition' => [
3156 + 'overlay_animation!' => 'none',
3157 + ],
3158 + ]
3159 + );
3160 +
3161 + $this->add_control(
3162 + 'overlay_animation_tr',
3163 + [
3164 + 'label' => esc_html__('Animation Transparency', 'king-addons'),
3165 + 'type' => Controls_Manager::SWITCHER,
3166 + 'default' => 'yes',
3167 + 'return_value' => 'yes',
3168 + 'condition' => [
3169 + 'overlay_animation!' => 'none',
3170 + ],
3171 + ]
3172 + );
3173 +
3174 + $this->add_control_overlay_animation_divider();
3175 +
3176 + $this->add_control_overlay_image();
3177 +
3178 + $this->add_control_overlay_image_width();
3179 +
3180 + $this->end_controls_section();
3181 +
3182 +
3183 + $this->start_controls_section(
3184 + 'section_image_effects',
3185 + [
3186 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Image Effects', 'king-addons'),
3187 + 'tab' => Controls_Manager::TAB_CONTENT,
3188 + ]
3189 + );
3190 +
3191 + $this->add_control_secondary_img_on_hover();
3192 +
3193 + $this->add_control_image_effects();
3194 +
3195 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'image_effects', ['pro-zi', 'pro-zo', 'pro-go', 'pro-bo']);
3196 +
3197 + $this->add_control(
3198 + 'image_effects_duration',
3199 + [
3200 + 'label' => esc_html__('Animation Duration', 'king-addons'),
3201 + 'type' => Controls_Manager::NUMBER,
3202 + 'default' => 0.5,
3203 + 'min' => 0,
3204 + 'max' => 5,
3205 + 'step' => 0.1,
3206 + 'selectors' => [
3207 + '{{WRAPPER}} .king-addons-grid-media-wrap img' => 'transition-duration: {{VALUE}}s;'
3208 + ],
3209 + 'condition' => [
3210 + 'image_effects!' => 'none',
3211 + ],
3212 + ]
3213 + );
3214 +
3215 + $this->add_control(
3216 + 'image_effects_delay',
3217 + [
3218 + 'label' => esc_html__('Animation Delay', 'king-addons'),
3219 + 'type' => Controls_Manager::NUMBER,
3220 + 'default' => 0,
3221 + 'min' => 0,
3222 + 'max' => 5,
3223 + 'step' => 0.1,
3224 + 'selectors' => [
3225 + '{{WRAPPER}} .king-addons-grid-media-wrap:hover img' => 'transition-delay: {{VALUE}}s;'
3226 + ],
3227 + 'condition' => [
3228 + 'image_effects!' => 'none',
3229 + ],
3230 + ]
3231 + );
3232 +
3233 + $this->add_control(
3234 + 'image_effects_animation_timing',
3235 + [
3236 + 'label' => esc_html__('Animation Timing', 'king-addons'),
3237 + 'type' => Controls_Manager::SELECT,
3238 + 'options' => Core::getAnimationTimings(),
3239 + 'default' => 'ease-default',
3240 + 'condition' => [
3241 + 'image_effects!' => 'none',
3242 + ],
3243 + ]
3244 + );
3245 +
3246 +
3247 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'image_effects_animation_timing', Core::getAnimationTimingsConditionsPro());
3248 +
3249 + $this->add_control(
3250 + 'image_effects_size',
3251 + [
3252 + 'label' => esc_html__('Animation Size', 'king-addons'),
3253 + 'type' => Controls_Manager::SELECT,
3254 + 'options' => [
3255 + 'small' => esc_html__('Small', 'king-addons'),
3256 + 'medium' => esc_html__('Medium', 'king-addons'),
3257 + 'large' => esc_html__('Large', 'king-addons'),
3258 + ],
3259 + 'default' => 'medium',
3260 + 'condition' => [
3261 + 'image_effects!' => ['none', 'slide'],
3262 + ]
3263 + ]
3264 + );
3265 +
3266 + $this->add_control(
3267 + 'image_effects_direction',
3268 + [
3269 + 'label' => esc_html__('Animation Direction', 'king-addons'),
3270 + 'type' => Controls_Manager::SELECT,
3271 + 'options' => [
3272 + 'top' => esc_html__('Top', 'king-addons'),
3273 + 'right' => esc_html__('Right', 'king-addons'),
3274 + 'bottom' => esc_html__('Bottom', 'king-addons'),
3275 + 'left' => esc_html__('Left', 'king-addons'),
3276 + ],
3277 + 'default' => 'bottom',
3278 + 'condition' => [
3279 + 'image_effects!' => 'none',
3280 + 'image_effects' => 'slide'
3281 + ]
3282 + ]
3283 + );
3284 +
3285 + $this->end_controls_section();
3286 +
3287 + // TODO: Check for issues.
3288 +// $this->add_section_general_lightbox();
3289 +
3290 + $this->start_controls_section(
3291 + 'section_grid_filters',
3292 + [
3293 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Filters', 'king-addons'),
3294 + 'tab' => Controls_Manager::TAB_CONTENT,
3295 + 'condition' => [
3296 + 'layout_select!' => 'slider',
3297 + 'layout_filters' => 'yes',
3298 + ],
3299 + ]
3300 + );
3301 +
3302 + $this->add_control(
3303 + 'filters_select',
3304 + [
3305 + 'label' => esc_html__('Select Taxonomy', 'king-addons'),
3306 + 'type' => Controls_Manager::SELECT,
3307 + 'options' => $post_taxonomies,
3308 + 'default' => 'category',
3309 + ]
3310 + );
3311 +
3312 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
3313 + $this->add_control(
3314 + 'filters_select_pro_notice',
3315 + [
3316 + 'raw' => 'This option is available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-grid-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
3317 + 'type' => Controls_Manager::RAW_HTML,
3318 + 'content_classes' => 'king-addons-pro-notice',
3319 + 'condition' => [
3320 + 'filters_select!' => ['category', 'post_tag'],
3321 + ]
3322 + ]
3323 + );
3324 + }
3325 +
3326 + $this->add_control(
3327 + 'filters_linkable',
3328 + [
3329 + 'label' => esc_html__('Set Linkable Filters', 'king-addons'),
3330 + 'type' => Controls_Manager::SWITCHER,
3331 + 'default' => 'no',
3332 + 'return_value' => 'yes',
3333 + ]
3334 + );
3335 +
3336 + $this->add_control(
3337 + 'filters_hide_empty',
3338 + [
3339 + 'label' => esc_html__('Hide Empty Filters', 'king-addons'),
3340 + 'type' => Controls_Manager::SWITCHER,
3341 + 'default' => 'no',
3342 + 'return_value' => 'yes',
3343 + 'condition' => [
3344 + 'filters_linkable!' => 'yes',
3345 + ],
3346 + ]
3347 + );
3348 +
3349 + $this->add_control_filters_deeplinking();
3350 +
3351 + $this->add_control(
3352 + 'filters_all',
3353 + [
3354 + 'label' => esc_html__('Show "All" Filter', 'king-addons'),
3355 + 'type' => Controls_Manager::SWITCHER,
3356 + 'default' => 'yes',
3357 + 'return_value' => 'yes',
3358 + 'condition' => [
3359 + 'filters_linkable!' => 'yes',
3360 + ],
3361 + ]
3362 + );
3363 +
3364 + $this->add_control(
3365 + 'filters_all_text',
3366 + [
3367 + 'label' => esc_html__('"All" Filter Text', 'king-addons'),
3368 + 'type' => Controls_Manager::TEXT,
3369 + 'dynamic' => [
3370 + 'active' => true,
3371 + ],
3372 + 'default' => 'All Posts',
3373 + 'condition' => [
3374 + 'filters_all' => 'yes',
3375 + 'filters_linkable!' => 'yes',
3376 + ],
3377 + ]
3378 + );
3379 +
3380 + $this->add_control_filters_count();
3381 +
3382 + $this->add_control_filters_count_superscript();
3383 +
3384 + $this->add_control_filters_count_brackets();
3385 +
3386 + $this->add_control_filters_default_filter();
3387 +
3388 + $this->add_control_filters_icon();
3389 +
3390 + $this->add_control_filters_icon_align();
3391 +
3392 + $this->add_control(
3393 + 'filters_separator',
3394 + [
3395 + 'label' => esc_html__('Separator', 'king-addons'),
3396 + 'type' => Controls_Manager::TEXT,
3397 + 'dynamic' => [
3398 + 'active' => true,
3399 + ],
3400 + 'default' => '',
3401 + 'separator' => 'before',
3402 + ]
3403 + );
3404 +
3405 + $this->add_control(
3406 + 'filters_separator_align',
3407 + [
3408 + 'label' => esc_html__('Separator Position', 'king-addons'),
3409 + 'type' => Controls_Manager::CHOOSE,
3410 + 'label_block' => false,
3411 + 'default' => 'right',
3412 + 'options' => [
3413 + 'left' => [
3414 + 'title' => esc_html__('Left', 'king-addons'),
3415 + 'icon' => 'eicon-h-align-left',
3416 + ],
3417 + 'right' => [
3418 + 'title' => esc_html__('Right', 'king-addons'),
3419 + 'icon' => 'eicon-h-align-right',
3420 + ]
3421 + ],
3422 + 'condition' => [
3423 + 'filters_separator!' => '',
3424 + ],
3425 + ]
3426 + );
3427 +
3428 + $this->add_responsive_control(
3429 + 'filters_align',
3430 + [
3431 + 'label' => esc_html__('Align', 'king-addons'),
3432 + 'type' => Controls_Manager::CHOOSE,
3433 + 'label_block' => false,
3434 + 'default' => 'center',
3435 + 'options' => [
3436 + 'left' => [
3437 + 'title' => esc_html__('Left', 'king-addons'),
3438 + 'icon' => 'eicon-h-align-left',
3439 + ],
3440 + 'center' => [
3441 + 'title' => esc_html__('Center', 'king-addons'),
3442 + 'icon' => 'eicon-h-align-center',
3443 + ],
3444 + 'right' => [
3445 + 'title' => esc_html__('Right', 'king-addons'),
3446 + 'icon' => 'eicon-h-align-right',
3447 + ]
3448 + ],
3449 + 'selectors' => [
3450 + '{{WRAPPER}} .king-addons-grid-filters' => 'text-align: {{VALUE}}',
3451 + ],
3452 + 'separator' => 'before',
3453 + ]
3454 + );
3455 +
3456 + $this->add_control_filters_animation();
3457 +
3458 +
3459 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'filters_animation', ['pro-fd', 'pro-fs']);
3460 +
3461 + $this->add_control(
3462 + 'filters_animation_duration',
3463 + [
3464 + 'label' => esc_html__('Animation Duration', 'king-addons'),
3465 + 'type' => Controls_Manager::NUMBER,
3466 + 'default' => 0.3,
3467 + 'min' => 0,
3468 + 'max' => 5,
3469 + 'step' => 0.1,
3470 + 'condition' => [
3471 + 'filters_animation!' => 'default',
3472 + ],
3473 + ]
3474 + );
3475 +
3476 + $this->add_control(
3477 + 'filters_animation_delay',
3478 + [
3479 + 'label' => esc_html__('Animation Delay', 'king-addons'),
3480 + 'type' => Controls_Manager::NUMBER,
3481 + 'default' => 0.1,
3482 + 'min' => 0,
3483 + 'max' => 5,
3484 + 'step' => 0.05,
3485 + 'condition' => [
3486 + 'filters_animation!' => 'default'
3487 + ],
3488 + ]
3489 + );
3490 +
3491 + $this->end_controls_section();
3492 +
3493 +
3494 + $this->start_controls_section(
3495 + 'section_grid_pagination',
3496 + [
3497 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Pagination', 'king-addons'),
3498 + 'tab' => Controls_Manager::TAB_CONTENT,
3499 + 'condition' => [
3500 + 'layout_select!' => 'slider',
3501 + 'layout_pagination' => 'yes',
3502 + ],
3503 + ]
3504 + );
3505 +
3506 + $this->add_control_pagination_type();
3507 +
3508 +
3509 + Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'grid', 'pagination_type', ['pro-is', 'pro-nb']);
3510 +
3511 + $this->add_control(
3512 + 'pagination_older_text',
3513 + [
3514 + 'label' => esc_html__('Older Posts Text', 'king-addons'),
3515 + 'type' => Controls_Manager::TEXT,
3516 + 'dynamic' => [
3517 + 'active' => true,
3518 + ],
3519 + 'default' => 'Older Posts',
3520 + 'condition' => [
3521 + 'pagination_type' => 'default',
3522 + ],
3523 + ]
3524 + );
3525 +
3526 + $this->add_control(
3527 + 'pagination_newer_text',
3528 + [
3529 + 'label' => esc_html__('Newer Posts Text', 'king-addons'),
3530 + 'type' => Controls_Manager::TEXT,
3531 + 'dynamic' => [
3532 + 'active' => true,
3533 + ],
3534 + 'default' => 'Newer Posts',
3535 + 'condition' => [
3536 + 'pagination_type' => 'default',
3537 + ]
3538 + ]
3539 + );
3540 +
3541 + $this->add_control(
3542 + 'pagination_on_icon',
3543 + [
3544 + 'label' => esc_html__('Select Icon', 'king-addons'),
3545 + 'type' => Controls_Manager::SELECT,
3546 + 'default' => 'fas fa-angle',
3547 + 'options' => [
3548 + 'fas fa-angle' => esc_html__('Angle', 'king-addons'),
3549 + 'fas fa-angle-double' => esc_html__('Angle Double', 'king-addons'),
3550 + 'fas fa-arrow' => esc_html__('Arrow', 'king-addons'),
3551 + 'fas fa-arrow-alt-circle' => esc_html__('Arrow Circle', 'king-addons'),
3552 + 'far fa-arrow-alt-circle' => esc_html__('Arrow Circle Alt', 'king-addons'),
3553 + 'fas fa-long-arrow-alt' => esc_html__('Long Arrow', 'king-addons'),
3554 + 'fas fa-chevron' => esc_html__('Chevron', 'king-addons'),
3555 + ],
3556 + 'condition' => [
3557 + 'pagination_type' => 'default'
3558 + ],
3559 + ]
3560 + );
3561 +
3562 + $this->add_control(
3563 + 'pagination_prev_next',
3564 + [
3565 + 'label' => esc_html__('Previous & Next Buttons', 'king-addons'),
3566 + 'type' => Controls_Manager::SWITCHER,
3567 + 'default' => 'yes',
3568 + 'return_value' => 'yes',
3569 + 'condition' => [
3570 + 'pagination_type' => 'numbered',
3571 + ],
3572 + ]
3573 + );
3574 +
3575 + $this->add_control(
3576 + 'pagination_prev_text',
3577 + [
3578 + 'label' => esc_html__('Prev Page Text', 'king-addons'),
3579 + 'type' => Controls_Manager::TEXT,
3580 + 'dynamic' => [
3581 + 'active' => true,
3582 + ],
3583 + 'default' => 'Previous Page',
3584 + 'condition' => [
3585 + 'pagination_type' => 'numbered',
3586 + 'pagination_prev_next' => 'yes',
3587 + ],
3588 + ]
3589 + );
3590 +
3591 + $this->add_control(
3592 + 'pagination_next_text',
3593 + [
3594 + 'label' => esc_html__('Next Page Text', 'king-addons'),
3595 + 'type' => Controls_Manager::TEXT,
3596 + 'dynamic' => [
3597 + 'active' => true,
3598 + ],
3599 + 'default' => 'Next Page',
3600 + 'condition' => [
3601 + 'pagination_type' => 'numbered',
3602 + 'pagination_prev_next' => 'yes',
3603 + ]
3604 + ]
3605 + );
3606 +
3607 + $this->add_control(
3608 + 'pagination_pn_icon',
3609 + [
3610 + 'label' => esc_html__('Select Icon', 'king-addons'),
3611 + 'type' => Controls_Manager::SELECT,
3612 + 'default' => 'fas fa-angle',
3613 + 'options' => [
3614 + 'fas fa-angle' => esc_html__('Angle', 'king-addons'),
3615 + 'fas fa-angle-double' => esc_html__('Angle Double', 'king-addons'),
3616 + 'fas fa-arrow' => esc_html__('Arrow', 'king-addons'),
3617 + 'fas fa-arrow-alt-circle' => esc_html__('Arrow Circle', 'king-addons'),
3618 + 'far fa-arrow-alt-circle' => esc_html__('Arrow Circle Alt', 'king-addons'),
3619 + 'fas fa-long-arrow-alt' => esc_html__('Long Arrow', 'king-addons'),
3620 + 'fas fa-chevron' => esc_html__('Chevron', 'king-addons'),
3621 + ],
3622 + 'condition' => [
3623 + 'pagination_type' => 'numbered',
3624 + 'pagination_prev_next' => 'yes'
3625 + ],
3626 + ]
3627 + );
3628 +
3629 + $this->add_control(
3630 + 'pagination_first_last',
3631 + [
3632 + 'label' => esc_html__('First & Last Buttons', 'king-addons'),
3633 + 'type' => Controls_Manager::SWITCHER,
3634 + 'default' => 'yes',
3635 + 'return_value' => 'yes',
3636 + 'condition' => [
3637 + 'pagination_type' => 'numbered',
3638 + ],
3639 + ]
3640 + );
3641 +
3642 + $this->add_control(
3643 + 'pagination_first_text',
3644 + [
3645 + 'label' => esc_html__('First Page Text', 'king-addons'),
3646 + 'type' => Controls_Manager::TEXT,
3647 + 'dynamic' => [
3648 + 'active' => true,
3649 + ],
3650 + 'default' => 'First Page',
3651 + 'condition' => [
3652 + 'pagination_type' => 'numbered',
3653 + 'pagination_first_last' => 'yes',
3654 + ],
3655 + ]
3656 + );
3657 +
3658 + $this->add_control(
3659 + 'pagination_last_text',
3660 + [
3661 + 'label' => esc_html__('Last Page Text', 'king-addons'),
3662 + 'type' => Controls_Manager::TEXT,
3663 + 'dynamic' => [
3664 + 'active' => true,
3665 + ],
3666 + 'default' => 'Last Page',
3667 + 'condition' => [
3668 + 'pagination_type' => 'numbered',
3669 + 'pagination_first_last' => 'yes',
3670 + ]
3671 + ]
3672 + );
3673 +
3674 + $this->add_control(
3675 + 'pagination_fl_icon',
3676 + [
3677 + 'label' => esc_html__('Select Icon', 'king-addons'),
3678 + 'type' => Controls_Manager::SELECT,
3679 + 'default' => 'fas fa-angle-double',
3680 + 'options' => [
3681 + 'fas fa-angle' => esc_html__('Angle', 'king-addons'),
3682 + 'fas fa-angle-double' => esc_html__('Angle Double', 'king-addons'),
3683 + 'fas fa-arrow' => esc_html__('Arrow', 'king-addons'),
3684 + 'fas fa-arrow-alt-circle' => esc_html__('Arrow Circle', 'king-addons'),
3685 + 'far fa-arrow-alt-circle' => esc_html__('Arrow Circle Alt', 'king-addons'),
3686 + 'fas fa-long-arrow-alt' => esc_html__('Long Arrow', 'king-addons'),
3687 + 'fas fa-chevron' => esc_html__('Chevron', 'king-addons'),
3688 + ],
3689 + 'condition' => [
3690 + 'pagination_type' => 'numbered',
3691 + 'pagination_first_last' => 'yes'
3692 + ],
3693 + ]
3694 + );
3695 +
3696 + $this->add_control(
3697 + 'pagination_disabled_arrows',
3698 + [
3699 + 'label' => esc_html__('Show Disabled Buttons', 'king-addons'),
3700 + 'type' => Controls_Manager::SWITCHER,
3701 + 'default' => 'yes',
3702 + 'return_value' => 'yes',
3703 + 'condition' => [
3704 + 'pagination_type' => ['default', 'numbered'],
3705 + ],
3706 + ]
3707 + );
3708 +
3709 + $this->add_control(
3710 + 'pagination_range',
3711 + [
3712 + 'label' => esc_html__('Range', 'king-addons'),
3713 + 'type' => Controls_Manager::NUMBER,
3714 + 'default' => 2,
3715 + 'min' => 1,
3716 + 'condition' => [
3717 + 'pagination_type' => 'numbered',
3718 + ]
3719 + ]
3720 + );
3721 +
3722 + $this->add_control(
3723 + 'pagination_load_more_text',
3724 + [
3725 + 'label' => esc_html__('Load More Text', 'king-addons'),
3726 + 'type' => Controls_Manager::TEXT,
3727 + 'dynamic' => [
3728 + 'active' => true,
3729 + ],
3730 + 'default' => 'Load More',
3731 + 'condition' => [
3732 + 'pagination_type' => 'load-more',
3733 + ]
3734 + ]
3735 + );
3736 +
3737 + $this->add_control(
3738 + 'pagination_finish_text',
3739 + [
3740 + 'label' => esc_html__('Finish Text', 'king-addons'),
3741 + 'type' => Controls_Manager::TEXT,
3742 + 'dynamic' => [
3743 + 'active' => true,
3744 + ],
3745 + 'default' => 'End of Content.',
3746 + 'condition' => [
3747 + 'pagination_type' => ['load-more', 'infinite-scroll'],
3748 + ]
3749 + ]
3750 + );
3751 +
3752 + $this->add_control(
3753 + 'pagination_animation',
3754 + [
3755 + 'label' => esc_html__('Select Animation', 'king-addons'),
3756 + 'type' => Controls_Manager::SELECT,
3757 + 'default' => 'loader-1',
3758 + 'options' => [
3759 + 'none' => esc_html__('None', 'king-addons'),
3760 + 'loader-1' => esc_html__('Loader 1', 'king-addons'),
3761 + 'loader-2' => esc_html__('Loader 2', 'king-addons'),
3762 + 'loader-3' => esc_html__('Loader 3', 'king-addons'),
3763 + 'loader-4' => esc_html__('Loader 4', 'king-addons'),
3764 + 'loader-5' => esc_html__('Loader 5', 'king-addons'),
3765 + 'loader-6' => esc_html__('Loader 6', 'king-addons'),
3766 + ],
3767 + 'condition' => [
3768 + 'pagination_type' => ['load-more', 'infinite-scroll'],
3769 + ]
3770 + ]
3771 + );
3772 +
3773 + $this->add_control(
3774 + 'pagination_align',
3775 + [
3776 + 'label' => esc_html__('Alignment', 'king-addons'),
3777 + 'type' => Controls_Manager::CHOOSE,
3778 + 'options' => [
3779 + 'left' => [
3780 + 'title' => esc_html__('Left', 'king-addons'),
3781 + 'icon' => 'eicon-text-align-left',
3782 + ],
3783 + 'center' => [
3784 + 'title' => esc_html__('Center', 'king-addons'),
3785 + 'icon' => 'eicon-text-align-center',
3786 + ],
3787 + 'right' => [
3788 + 'title' => esc_html__('Right', 'king-addons'),
3789 + 'icon' => 'eicon-text-align-right',
3790 + ],
3791 + 'justify' => [
3792 + 'title' => esc_html__('Justified', 'king-addons'),
3793 + 'icon' => 'eicon-text-align-justify',
3794 + ],
3795 + ],
3796 + 'default' => 'center',
3797 + 'prefix_class' => 'king-addons-grid-pagination-',
3798 + 'render_type' => 'template',
3799 + 'separator' => 'before',
3800 + 'condition' => [
3801 + 'pagination_type!' => 'infinite-scroll',
3802 + ]
3803 + ]
3804 + );
3805 +
3806 + $this->end_controls_section();
3807 +
3808 + Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'grid', [
3809 + 'Grid Columns 1, 2, 3, 4, 5, 6',
3810 + 'Masonry Layout',
3811 + 'Posts Slider Columns (Carousel) 1, 2, 3, 4, 5, 6',
3812 + 'Post Slider Autoplay Options',
3813 + 'Infinite Scrolling Pagination',
3814 + 'Related Posts Query, Current Page Query, Random Posts Query',
3815 + 'Custom Post Types Support',
3816 + 'Custom Fields Support',
3817 + 'Trim Title & Excerpt By Letter Count',
3818 + 'Posts Order',
3819 + 'Display Scheduled Posts',
3820 + 'Post Slider Advanced Navigation Positioning',
3821 + 'Post Slider Advanced Pagination Positioning',
3822 + 'Grid Category Filter Deep Linking',
3823 + 'Grid Category Filter Icons Select',
3824 + 'Grid Category Filter Count',
3825 + 'Grid Item Even/Odd Background Color',
3826 + 'Lightbox Thumbnail Gallery, Lightbox Image Sharing Button',
3827 + 'Open Links in New Tab',
3828 + 'Lazy Loading',
3829 + 'Advanced Grid Loading Animations (Fade In & Slide Up)',
3830 + 'Advanced Grid Elements Positioning',
3831 + 'Title, Category, Read More Advanced Link Hover Animations',
3832 + 'Advanced Post Likes',
3833 + 'Advanced Post Sharing',
3834 + 'Unlimited Image Overlay Animations',
3835 + 'Image Overlay GIF Upload Option',
3836 + 'Image Overlay Blend Mode',
3837 + 'Image Effects: Zoom, Grayscale, Blur',
3838 + 'List Layout Zig-zag',
3839 + 'Secondary Featured Image'
3840 + ]);
3841 +
3842 + $this->start_controls_section(
3843 + 'section_style_grid_item',
3844 + [
3845 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Grid Item', 'king-addons'),
3846 + 'tab' => Controls_Manager::TAB_STYLE,
3847 + 'show_label' => false,
3848 + ]
3849 + );
3850 +
3851 + $this->add_control(
3852 + 'grid_item_styles_selector',
3853 + [
3854 + 'label' => esc_html__('Apply Styles To', 'king-addons'),
3855 + 'type' => Controls_Manager::SELECT,
3856 + 'options' => [
3857 + 'inner' => esc_html__('Inner Elements', 'king-addons'),
3858 + 'wrapper' => esc_html__('Wrapper', 'king-addons')
3859 + ],
3860 + 'default' => 'inner',
3861 + 'prefix_class' => 'king-addons-item-styles-',
3862 + 'render_type' => 'template'
3863 + ]
3864 + );
3865 +
3866 + $this->add_control(
3867 + 'grid_item_bg_color',
3868 + [
3869 + 'label' => esc_html__('Background Color', 'king-addons'),
3870 + 'type' => Controls_Manager::COLOR,
3871 + 'default' => '',
3872 + 'selectors' => [
3873 + '{{WRAPPER}} .king-addons-grid-item-above-content' => 'background-color: {{VALUE}}',
3874 + '{{WRAPPER}} .king-addons-grid-item-below-content' => 'background-color: {{VALUE}}',
3875 + '{{WRAPPER}} .king-addons-grid[data-settings*="fitRows"] .king-addons-grid-item' => 'background-color: {{VALUE}}',
3876 + '{{WRAPPER}}.king-addons-item-styles-wrapper .king-addons-grid-item' => 'background-color: {{VALUE}}'
3877 + ],
3878 + ]
3879 + );
3880 +
3881 + $this->add_control_grid_item_even_bg_color();
3882 +
3883 + $this->add_control(
3884 + 'grid_item_border_color',
3885 + [
3886 + 'label' => esc_html__('Border Color', 'king-addons'),
3887 + 'type' => Controls_Manager::COLOR,
3888 + 'default' => '#E8E8E8',
3889 + 'selectors' => [
3890 + '{{WRAPPER}}.king-addons-item-styles-inner .king-addons-grid-item-above-content' => 'border-color: {{VALUE}}',
3891 + '{{WRAPPER}}.king-addons-item-styles-inner .king-addons-grid-item-below-content' => 'border-color: {{VALUE}}',
3892 + '{{WRAPPER}}.king-addons-item-styles-wrapper .king-addons-grid-item' => 'border-color: {{VALUE}}'
3893 + ],
3894 + ]
3895 + );
3896 +
3897 + $this->add_control_grid_item_even_border_color();
3898 +
3899 + $this->add_control(
3900 + 'grid_item_border_type',
3901 + [
3902 + 'label' => esc_html__('Border Type', 'king-addons'),
3903 + 'type' => Controls_Manager::SELECT,
3904 + 'options' => [
3905 + 'none' => esc_html__('None', 'king-addons'),
3906 + 'solid' => esc_html__('Solid', 'king-addons'),
3907 + 'double' => esc_html__('Double', 'king-addons'),
3908 + 'dotted' => esc_html__('Dotted', 'king-addons'),
3909 + 'dashed' => esc_html__('Dashed', 'king-addons'),
3910 + 'groove' => esc_html__('Groove', 'king-addons'),
3911 + ],
3912 + 'default' => 'none',
3913 + 'selectors' => [
3914 + '{{WRAPPER}}.king-addons-item-styles-inner .king-addons-grid-item-above-content' => 'border-style: {{VALUE}};',
3915 + '{{WRAPPER}}.king-addons-item-styles-inner .king-addons-grid-item-below-content' => 'border-style: {{VALUE}};',
3916 + '{{WRAPPER}}.king-addons-item-styles-wrapper .king-addons-grid-item' => 'border-style: {{VALUE}}'
3917 + ],
3918 + 'separator' => 'before',
3919 + ]
3920 + );
3921 +
3922 + $this->add_control(
3923 + 'grid_item_border_width',
3924 + [
3925 + 'label' => esc_html__('Border Width', 'king-addons'),
3926 + 'type' => Controls_Manager::DIMENSIONS,
3927 + 'size_units' => ['px'],
3928 + 'default' => [
3929 + 'top' => 1,
3930 + 'right' => 1,
3931 + 'bottom' => 1,
3932 + 'left' => 1,
3933 + ],
3934 + 'selectors' => [
3935 + '{{WRAPPER}}.king-addons-item-styles-inner .king-addons-grid-item-above-content' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
3936 + '{{WRAPPER}}.king-addons-item-styles-inner .king-addons-grid-item-below-content' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
3937 + '{{WRAPPER}}.king-addons-item-styles-wrapper .king-addons-grid-item' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
3938 + ],
3939 + 'condition' => [
3940 + 'grid_item_border_type!' => 'none',
3941 + ],
3942 + 'render_type' => 'template'
3943 + ]
3944 + );
3945 +
3946 + $this->add_responsive_control(
3947 + 'grid_item_padding',
3948 + [
3949 + 'label' => esc_html__('Padding', 'king-addons'),
3950 + 'type' => Controls_Manager::DIMENSIONS,
3951 + 'size_units' => ['px'],
3952 + 'default' => [
3953 + 'top' => 10,
3954 + 'right' => 0,
3955 + 'bottom' => 0,
3956 + 'left' => 0,
3957 + ],
3958 + 'selectors' => [
3959 + '{{WRAPPER}} .king-addons-grid-item-above-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
3960 + '{{WRAPPER}} .king-addons-grid-item-below-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
3961 + '{{WRAPPER}}.king-addons-item-styles-wrapper .king-addons-grid-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
3962 + ],
3963 + 'condition' => [
3964 + 'grid_item_styles_selector' => 'inner'
3965 + ],
3966 + 'render_type' => 'template'
3967 + ]
3968 + );
3969 +
3970 +
3971 + $this->add_responsive_control(
3972 + 'grid_item_wrap_padding',
3973 + [
3974 + 'label' => esc_html__('Padding', 'king-addons'),
3975 + 'type' => Controls_Manager::DIMENSIONS,
3976 + 'size_units' => ['px'],
3977 + 'default' => [
3978 + 'top' => 10,
3979 + 'right' => 0,
3980 + 'bottom' => 0,
3981 + 'left' => 0,
3982 + ],
3983 + 'selectors' => [
3984 + '{{WRAPPER}}.king-addons-item-styles-wrapper .king-addons-grid-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
3985 + ],
3986 + 'condition' => [
3987 + 'grid_item_styles_selector' => 'wrapper'
3988 + ],
3989 + 'render_type' => 'template'
3990 + ]
3991 + );
3992 +
3993 + $this->add_control(
3994 + 'grid_item_radius',
3995 + [
3996 + 'label' => esc_html__('Border Radius', 'king-addons'),
3997 + 'type' => Controls_Manager::DIMENSIONS,
3998 + 'size_units' => ['px', '%'],
3999 + 'default' => [
4000 + 'top' => 0,
4001 + 'right' => 0,
4002 + 'bottom' => 0,
4003 + 'left' => 0,
4004 + ],
4005 + 'selectors' => [
4006 + '{{WRAPPER}} .king-addons-grid-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4007 + '{{WRAPPER}} .king-addons-grid-item-above-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4008 + '{{WRAPPER}} .king-addons-grid-item-below-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4009 + ],
4010 + 'separator' => 'before',
4011 + ]
4012 + );
4013 +
4014 + $this->add_group_control(
4015 + Group_Control_Box_Shadow::get_type(),
4016 + [
4017 + 'name' => 'grid_item_shadow',
4018 + 'selector' => '{{WRAPPER}} .king-addons-grid-item',
4019 + ]
4020 + );
4021 +
4022 + $this->end_controls_section();
4023 +
4024 +
4025 + $this->start_controls_section(
4026 + 'section_style_grid_media',
4027 + [
4028 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Grid Media', 'king-addons'),
4029 + 'tab' => Controls_Manager::TAB_STYLE,
4030 + 'show_label' => false,
4031 + ]
4032 + );
4033 +
4034 + $this->add_control(
4035 + 'grid_media_border_color',
4036 + [
4037 + 'label' => esc_html__('Border Color', 'king-addons'),
4038 + 'type' => Controls_Manager::COLOR,
4039 + 'default' => '#E8E8E8',
4040 + 'selectors' => [
4041 + '{{WRAPPER}} .king-addons-grid-image-wrap' => 'border-color: {{VALUE}}',
4042 + ]
4043 + ]
4044 + );
4045 +
4046 + $this->add_control(
4047 + 'grid_media_border_type',
4048 + [
4049 + 'label' => esc_html__('Border Type', 'king-addons'),
4050 + 'type' => Controls_Manager::SELECT,
4051 + 'options' => [
4052 + 'none' => esc_html__('None', 'king-addons'),
4053 + 'solid' => esc_html__('Solid', 'king-addons'),
4054 + 'double' => esc_html__('Double', 'king-addons'),
4055 + 'dotted' => esc_html__('Dotted', 'king-addons'),
4056 + 'dashed' => esc_html__('Dashed', 'king-addons'),
4057 + 'groove' => esc_html__('Groove', 'king-addons'),
4058 + ],
4059 + 'default' => 'none',
4060 + 'selectors' => [
4061 + '{{WRAPPER}} .king-addons-grid-image-wrap' => 'border-style: {{VALUE}};',
4062 + ]
4063 + ]
4064 + );
4065 +
4066 + $this->add_control(
4067 + 'grid_media_border_width',
4068 + [
4069 + 'label' => esc_html__('Border Width', 'king-addons'),
4070 + 'type' => Controls_Manager::DIMENSIONS,
4071 + 'size_units' => ['px'],
4072 + 'default' => [
4073 + 'top' => 1,
4074 + 'right' => 1,
4075 + 'bottom' => 1,
4076 + 'left' => 1,
4077 + ],
4078 + 'selectors' => [
4079 + '{{WRAPPER}} .king-addons-grid-image-wrap' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4080 + ],
4081 + 'condition' => [
4082 + 'grid_media_border_type!' => 'none',
4083 + ],
4084 + ]
4085 + );
4086 +
4087 + $this->add_control(
4088 + 'grid_media_radius',
4089 + [
4090 + 'label' => esc_html__('Border Radius', 'king-addons'),
4091 + 'type' => Controls_Manager::DIMENSIONS,
4092 + 'size_units' => ['px', '%'],
4093 + 'default' => [
4094 + 'top' => 0,
4095 + 'right' => 0,
4096 + 'bottom' => 0,
4097 + 'left' => 0,
4098 + ],
4099 + 'selectors' => [
4100 + '{{WRAPPER}} .king-addons-grid-image-wrap' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4101 + ],
4102 + 'separator' => 'before',
4103 + ]
4104 + );
4105 +
4106 + $this->end_controls_section();
4107 +
4108 +
4109 + $this->start_controls_section(
4110 + 'section_style_overlay',
4111 + [
4112 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Media Overlay', 'king-addons'),
4113 + 'tab' => Controls_Manager::TAB_STYLE,
4114 + 'show_label' => false,
4115 + ]
4116 + );
4117 +
4118 + $this->add_control_overlay_color();
4119 +
4120 + $this->add_control_overlay_blend_mode();
4121 +
4122 + $this->add_control_overlay_border_color();
4123 +
4124 + $this->add_control_overlay_border_type();
4125 +
4126 + $this->add_control_overlay_border_width();
4127 +
4128 + $this->add_control(
4129 + 'overlay_radius',
4130 + [
4131 + 'label' => esc_html__('Border Radius', 'king-addons'),
4132 + 'type' => Controls_Manager::DIMENSIONS,
4133 + 'size_units' => ['px', '%'],
4134 + 'default' => [
4135 + 'top' => 0,
4136 + 'right' => 0,
4137 + 'bottom' => 0,
4138 + 'left' => 0,
4139 + ],
4140 + 'selectors' => [
4141 + '{{WRAPPER}} .king-addons-grid-media-hover-bg' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4142 + ],
4143 + 'separator' => 'before',
4144 + ]
4145 + );
4146 +
4147 + $this->end_controls_section();
4148 +
4149 +
4150 + $this->start_controls_section(
4151 + 'section_style_title',
4152 + [
4153 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
4154 + 'tab' => Controls_Manager::TAB_STYLE,
4155 + 'show_label' => false,
4156 + ]
4157 + );
4158 +
4159 + $this->start_controls_tabs('tabs_grid_title_style');
4160 +
4161 + $this->start_controls_tab(
4162 + 'tab_grid_title_normal',
4163 + [
4164 + 'label' => esc_html__('Normal', 'king-addons'),
4165 + ]
4166 + );
4167 +
4168 + $this->add_control(
4169 + 'title_color',
4170 + [
4171 + 'label' => esc_html__('Color', 'king-addons'),
4172 + 'type' => Controls_Manager::COLOR,
4173 + 'default' => '#333333',
4174 + 'selectors' => [
4175 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'color: {{VALUE}}',
4176 + ],
4177 + ]
4178 + );
4179 +
4180 + $this->add_control(
4181 + 'title_bg_color',
4182 + [
4183 + 'label' => esc_html__('Background Color', 'king-addons'),
4184 + 'type' => Controls_Manager::COLOR,
4185 + 'selectors' => [
4186 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'background-color: {{VALUE}}',
4187 + ]
4188 + ]
4189 + );
4190 +
4191 + $this->add_control(
4192 + 'title_border_color',
4193 + [
4194 + 'label' => esc_html__('Border Color', 'king-addons'),
4195 + 'type' => Controls_Manager::COLOR,
4196 + 'default' => '#E8E8E8',
4197 + 'selectors' => [
4198 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'border-color: {{VALUE}}',
4199 + ],
4200 + 'separator' => 'after',
4201 + ]
4202 + );
4203 +
4204 + $this->end_controls_tab();
4205 +
4206 + $this->start_controls_tab(
4207 + 'tab_grid_title_hover',
4208 + [
4209 + 'label' => esc_html__('Hover', 'king-addons'),
4210 + ]
4211 + );
4212 +
4213 + $this->add_control(
4214 + 'title_color_hr',
4215 + [
4216 + 'label' => esc_html__('Color', 'king-addons'),
4217 + 'type' => Controls_Manager::COLOR,
4218 + 'default' => '#54595f',
4219 + 'selectors' => [
4220 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a:hover' => 'color: {{VALUE}}',
4221 + ],
4222 + ]
4223 + );
4224 +
4225 + $this->add_control(
4226 + 'title_bg_color_hr',
4227 + [
4228 + 'label' => esc_html__('Background Color', 'king-addons'),
4229 + 'type' => Controls_Manager::COLOR,
4230 + 'selectors' => [
4231 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a:hover' => 'background-color: {{VALUE}}',
4232 + ]
4233 + ]
4234 + );
4235 +
4236 + $this->add_control(
4237 + 'title_border_color_hr',
4238 + [
4239 + 'label' => esc_html__('Border Color', 'king-addons'),
4240 + 'type' => Controls_Manager::COLOR,
4241 + 'default' => '#E8E8E8',
4242 + 'selectors' => [
4243 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a:hover' => 'border-color: {{VALUE}}',
4244 + ],
4245 + ]
4246 + );
4247 +
4248 + $this->add_control_title_pointer_color_hr();
4249 +
4250 + $this->end_controls_tab();
4251 +
4252 + $this->end_controls_tabs();
4253 +
4254 + $this->add_control_title_pointer();
4255 +
4256 + $this->add_control_title_pointer_height();
4257 +
4258 + $this->add_control_title_pointer_animation();
4259 +
4260 + $this->add_control(
4261 + 'title_transition_duration',
4262 + [
4263 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
4264 + 'type' => Controls_Manager::NUMBER,
4265 + 'default' => 0.2,
4266 + 'min' => 0,
4267 + 'max' => 5,
4268 + 'step' => 0.1,
4269 + 'selectors' => [
4270 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'transition-duration: {{VALUE}}s',
4271 + '{{WRAPPER}} .king-addons-grid-item-title .king-addons-pointer-item:before' => 'transition-duration: {{VALUE}}s',
4272 + '{{WRAPPER}} .king-addons-grid-item-title .king-addons-pointer-item:after' => 'transition-duration: {{VALUE}}s',
4273 + ],
4274 + 'separator' => 'after',
4275 + ]
4276 + );
4277 +
4278 + $this->add_group_control(
4279 + Group_Control_Typography::get_type(),
4280 + [
4281 + 'name' => 'title_typography',
4282 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-title a'
4283 + ]
4284 + );
4285 +
4286 + $this->add_control(
4287 + 'title_border_type',
4288 + [
4289 + 'label' => esc_html__('Border Type', 'king-addons'),
4290 + 'type' => Controls_Manager::SELECT,
4291 + 'options' => [
4292 + 'none' => esc_html__('None', 'king-addons'),
4293 + 'solid' => esc_html__('Solid', 'king-addons'),
4294 + 'double' => esc_html__('Double', 'king-addons'),
4295 + 'dotted' => esc_html__('Dotted', 'king-addons'),
4296 + 'dashed' => esc_html__('Dashed', 'king-addons'),
4297 + 'groove' => esc_html__('Groove', 'king-addons'),
4298 + ],
4299 + 'default' => 'none',
4300 + 'selectors' => [
4301 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'border-style: {{VALUE}};',
4302 + ],
4303 + 'render_type' => 'template',
4304 + 'separator' => 'before',
4305 + ]
4306 + );
4307 +
4308 + $this->add_control(
4309 + 'title_border_width',
4310 + [
4311 + 'label' => esc_html__('Border Width', 'king-addons'),
4312 + 'type' => Controls_Manager::DIMENSIONS,
4313 + 'size_units' => ['px'],
4314 + 'default' => [
4315 + 'top' => 1,
4316 + 'right' => 1,
4317 + 'bottom' => 1,
4318 + 'left' => 1,
4319 + ],
4320 + 'selectors' => [
4321 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4322 + ],
4323 + 'render_type' => 'template',
4324 + 'condition' => [
4325 + 'title_border_type!' => 'none',
4326 + ],
4327 + ]
4328 + );
4329 +
4330 + $this->add_responsive_control(
4331 + 'title_padding',
4332 + [
4333 + 'label' => esc_html__('Padding', 'king-addons'),
4334 + 'type' => Controls_Manager::DIMENSIONS,
4335 + 'size_units' => ['px', '%'],
4336 + 'default' => [
4337 + 'top' => 0,
4338 + 'right' => 0,
4339 + 'bottom' => 0,
4340 + 'left' => 0,
4341 + ],
4342 + 'selectors' => [
4343 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4344 + ],
4345 + 'render_type' => 'template',
4346 + 'separator' => 'before',
4347 + ]
4348 + );
4349 +
4350 + $this->add_responsive_control(
4351 + 'title_margin',
4352 + [
4353 + 'label' => esc_html__('Margin', 'king-addons'),
4354 + 'type' => Controls_Manager::DIMENSIONS,
4355 + 'size_units' => ['px', '%'],
4356 + 'default' => [
4357 + 'top' => 0,
4358 + 'right' => 0,
4359 + 'bottom' => 0,
4360 + 'left' => 0,
4361 + ],
4362 + 'selectors' => [
4363 + '{{WRAPPER}} .king-addons-grid-item-title .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4364 + ],
4365 + 'render_type' => 'template',
4366 + ]
4367 + );
4368 +
4369 + $this->end_controls_section();
4370 +
4371 +
4372 + $this->start_controls_section(
4373 + 'section_style_content',
4374 + [
4375 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Content', 'king-addons'),
4376 + 'tab' => Controls_Manager::TAB_STYLE,
4377 + 'show_label' => false,
4378 + ]
4379 + );
4380 +
4381 + $this->add_control(
4382 + 'content_color',
4383 + [
4384 + 'label' => esc_html__('Color', 'king-addons'),
4385 + 'type' => Controls_Manager::COLOR,
4386 + 'default' => '#6A6A6A',
4387 + 'selectors' => [
4388 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'color: {{VALUE}}',
4389 + ],
4390 + ]
4391 + );
4392 +
4393 + $this->add_control(
4394 + 'content_dropcap_color',
4395 + [
4396 + 'label' => esc_html__('DropCap Color', 'king-addons'),
4397 + 'type' => Controls_Manager::COLOR,
4398 + 'default' => '#3a3a3a',
4399 + 'selectors' => [
4400 + '{{WRAPPER}} .king-addons-grid-item-content.king-addons-enable-dropcap p:first-child:first-letter' => 'color: {{VALUE}}',
4401 + ],
4402 + ]
4403 + );
4404 +
4405 + $this->add_control(
4406 + 'content_bg_color',
4407 + [
4408 + 'label' => esc_html__('Background Color', 'king-addons'),
4409 + 'type' => Controls_Manager::COLOR,
4410 + 'selectors' => [
4411 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'background-color: {{VALUE}}',
4412 + ]
4413 + ]
4414 + );
4415 +
4416 + $this->add_control(
4417 + 'content_border_color',
4418 + [
4419 + 'label' => esc_html__('Border Color', 'king-addons'),
4420 + 'type' => Controls_Manager::COLOR,
4421 + 'default' => '#E8E8E8',
4422 + 'selectors' => [
4423 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'border-color: {{VALUE}}',
4424 + ],
4425 + 'separator' => 'after',
4426 + ]
4427 + );
4428 +
4429 + $this->add_group_control(
4430 + Group_Control_Typography::get_type(),
4431 + [
4432 + 'name' => 'content_typography',
4433 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-content'
4434 + ]
4435 + );
4436 +
4437 + $this->add_group_control(
4438 + Group_Control_Typography::get_type(),
4439 + [
4440 + 'name' => 'content_dropcap_typography',
4441 + 'label' => esc_html__('Drop Cap Typography', 'king-addons'),
4442 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-content.king-addons-enable-dropcap p:first-child:first-letter'
4443 + ]
4444 + );
4445 +
4446 + $this->add_responsive_control(
4447 + 'content_justify',
4448 + [
4449 + 'label' => esc_html__('Justify Text', 'king-addons'),
4450 + 'type' => Controls_Manager::SWITCHER,
4451 + 'default' => '',
4452 + 'widescreen_default' => '',
4453 + 'laptop_default' => '',
4454 + 'tablet_extra_default' => '',
4455 + 'tablet_default' => '',
4456 + 'mobile_extra_default' => '',
4457 + 'mobile_default' => '',
4458 + 'selectors_dictionary' => [
4459 + '' => '',
4460 + 'yes' => 'text-align: justify;'
4461 + ],
4462 + 'selectors' => [
4463 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => '{{VALUE}}',
4464 + ],
4465 + 'render_type' => 'template',
4466 + ]
4467 + );
4468 +
4469 + $this->add_control(
4470 + 'content_width',
4471 + [
4472 + 'label' => esc_html__('Content Width', 'king-addons'),
4473 + 'type' => Controls_Manager::SLIDER,
4474 + 'size_units' => ['%'],
4475 + 'range' => [
4476 + '%' => [
4477 + 'min' => 10,
4478 + 'max' => 100,
4479 + ],
4480 + ],
4481 + 'default' => [
4482 + 'unit' => '%',
4483 + 'size' => 100,
4484 + ],
4485 + 'selectors' => [
4486 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'width: {{SIZE}}{{UNIT}};',
4487 + ],
4488 + 'separator' => 'before',
4489 + ]
4490 + );
4491 +
4492 + $this->add_control(
4493 + 'content_border_type',
4494 + [
4495 + 'label' => esc_html__('Border Type', 'king-addons'),
4496 + 'type' => Controls_Manager::SELECT,
4497 + 'options' => [
4498 + 'none' => esc_html__('None', 'king-addons'),
4499 + 'solid' => esc_html__('Solid', 'king-addons'),
4500 + 'double' => esc_html__('Double', 'king-addons'),
4501 + 'dotted' => esc_html__('Dotted', 'king-addons'),
4502 + 'dashed' => esc_html__('Dashed', 'king-addons'),
4503 + 'groove' => esc_html__('Groove', 'king-addons'),
4504 + ],
4505 + 'default' => 'none',
4506 + 'selectors' => [
4507 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'border-style: {{VALUE}};',
4508 + ],
4509 + 'render_type' => 'template',
4510 + 'separator' => 'before',
4511 + ]
4512 + );
4513 +
4514 + $this->add_control(
4515 + 'content_border_width',
4516 + [
4517 + 'label' => esc_html__('Border Width', 'king-addons'),
4518 + 'type' => Controls_Manager::DIMENSIONS,
4519 + 'size_units' => ['px'],
4520 + 'default' => [
4521 + 'top' => 1,
4522 + 'right' => 1,
4523 + 'bottom' => 1,
4524 + 'left' => 1,
4525 + ],
4526 + 'selectors' => [
4527 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4528 + ],
4529 + 'render_type' => 'template',
4530 + 'condition' => [
4531 + 'content_border_type!' => 'none',
4532 + ],
4533 + ]
4534 + );
4535 +
4536 + $this->add_responsive_control(
4537 + 'content_padding',
4538 + [
4539 + 'label' => esc_html__('Padding', 'king-addons'),
4540 + 'type' => Controls_Manager::DIMENSIONS,
4541 + 'size_units' => ['px', '%'],
4542 + 'default' => [
4543 + 'top' => 0,
4544 + 'right' => 0,
4545 + 'bottom' => 0,
4546 + 'left' => 0,
4547 + ],
4548 + 'selectors' => [
4549 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4550 + ],
4551 + 'render_type' => 'template',
4552 + 'separator' => 'before',
4553 + ]
4554 + );
4555 +
4556 + $this->add_responsive_control(
4557 + 'content_margin',
4558 + [
4559 + 'label' => esc_html__('Margin', 'king-addons'),
4560 + 'type' => Controls_Manager::DIMENSIONS,
4561 + 'size_units' => ['px', '%'],
4562 + 'default' => [
4563 + 'top' => 0,
4564 + 'right' => 0,
4565 + 'bottom' => 0,
4566 + 'left' => 0,
4567 + ],
4568 + 'render_type' => 'template',
4569 + 'selectors' => [
4570 + '{{WRAPPER}} .king-addons-grid-item-content .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4571 + ],
4572 + ]
4573 + );
4574 +
4575 + $this->end_controls_section();
4576 +
4577 +
4578 + $this->start_controls_section(
4579 + 'section_style_excerpt',
4580 + [
4581 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Excerpt', 'king-addons'),
4582 + 'tab' => Controls_Manager::TAB_STYLE,
4583 + 'show_label' => false,
4584 + ]
4585 + );
4586 +
4587 + $this->add_control(
4588 + 'excerpt_color',
4589 + [
4590 + 'label' => esc_html__('Color', 'king-addons'),
4591 + 'type' => Controls_Manager::COLOR,
4592 + 'default' => '#6A6A6A',
4593 + 'selectors' => [
4594 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'color: {{VALUE}}',
4595 + ],
4596 + ]
4597 + );
4598 +
4599 + $this->add_control(
4600 + 'excerpt_dropcap_color',
4601 + [
4602 + 'label' => esc_html__('DropCap Color', 'king-addons'),
4603 + 'type' => Controls_Manager::COLOR,
4604 + 'default' => '#3a3a3a',
4605 + 'selectors' => [
4606 + '{{WRAPPER}} .king-addons-grid-item-excerpt.king-addons-enable-dropcap p:first-child:first-letter' => 'color: {{VALUE}}',
4607 + ],
4608 + ]
4609 + );
4610 +
4611 + $this->add_control(
4612 + 'excerpt_bg_color',
4613 + [
4614 + 'label' => esc_html__('Background Color', 'king-addons'),
4615 + 'type' => Controls_Manager::COLOR,
4616 + 'selectors' => [
4617 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'background-color: {{VALUE}}',
4618 + ]
4619 + ]
4620 + );
4621 +
4622 + $this->add_control(
4623 + 'excerpt_border_color',
4624 + [
4625 + 'label' => esc_html__('Border Color', 'king-addons'),
4626 + 'type' => Controls_Manager::COLOR,
4627 + 'default' => '#E8E8E8',
4628 + 'selectors' => [
4629 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'border-color: {{VALUE}}',
4630 + ],
4631 + 'separator' => 'after',
4632 + ]
4633 + );
4634 +
4635 + $this->add_group_control(
4636 + Group_Control_Typography::get_type(),
4637 + [
4638 + 'name' => 'excerpt_typography',
4639 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-excerpt'
4640 + ]
4641 + );
4642 +
4643 + $this->add_group_control(
4644 + Group_Control_Typography::get_type(),
4645 + [
4646 + 'name' => 'excerpt_dropcap_typography',
4647 + 'label' => esc_html__('Drop Cap Typography', 'king-addons'),
4648 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-excerpt.king-addons-enable-dropcap p:first-child:first-letter'
4649 + ]
4650 + );
4651 +
4652 + $this->add_responsive_control(
4653 + 'excerpt_justify',
4654 + [
4655 + 'label' => esc_html__('Justify Text', 'king-addons'),
4656 + 'type' => Controls_Manager::SWITCHER,
4657 + 'default' => '',
4658 + 'widescreen_default' => '',
4659 + 'laptop_default' => '',
4660 + 'tablet_extra_default' => '',
4661 + 'tablet_default' => '',
4662 + 'mobile_extra_default' => '',
4663 + 'mobile_default' => '',
4664 + 'selectors_dictionary' => [
4665 + '' => '',
4666 + 'yes' => 'text-align: justify;'
4667 + ],
4668 + 'selectors' => [
4669 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => '{{VALUE}}',
4670 + ],
4671 + 'render_type' => 'template',
4672 + ]
4673 + );
4674 +
4675 + $this->add_control(
4676 + 'excerpt_width',
4677 + [
4678 + 'label' => esc_html__('Excerpt Width', 'king-addons'),
4679 + 'type' => Controls_Manager::SLIDER,
4680 + 'size_units' => ['%'],
4681 + 'range' => [
4682 + '%' => [
4683 + 'min' => 10,
4684 + 'max' => 100,
4685 + ],
4686 + ],
4687 + 'default' => [
4688 + 'unit' => '%',
4689 + 'size' => 100,
4690 + ],
4691 + 'selectors' => [
4692 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'width: {{SIZE}}{{UNIT}};',
4693 + ],
4694 + 'separator' => 'before',
4695 + ]
4696 + );
4697 +
4698 + $this->add_control(
4699 + 'excerpt_border_type',
4700 + [
4701 + 'label' => esc_html__('Border Type', 'king-addons'),
4702 + 'type' => Controls_Manager::SELECT,
4703 + 'options' => [
4704 + 'none' => esc_html__('None', 'king-addons'),
4705 + 'solid' => esc_html__('Solid', 'king-addons'),
4706 + 'double' => esc_html__('Double', 'king-addons'),
4707 + 'dotted' => esc_html__('Dotted', 'king-addons'),
4708 + 'dashed' => esc_html__('Dashed', 'king-addons'),
4709 + 'groove' => esc_html__('Groove', 'king-addons'),
4710 + ],
4711 + 'default' => 'none',
4712 + 'selectors' => [
4713 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'border-style: {{VALUE}};',
4714 + ],
4715 + 'render_type' => 'template',
4716 + 'separator' => 'before',
4717 + ]
4718 + );
4719 +
4720 + $this->add_control(
4721 + 'excerpt_border_width',
4722 + [
4723 + 'label' => esc_html__('Border Width', 'king-addons'),
4724 + 'type' => Controls_Manager::DIMENSIONS,
4725 + 'size_units' => ['px'],
4726 + 'default' => [
4727 + 'top' => 1,
4728 + 'right' => 1,
4729 + 'bottom' => 1,
4730 + 'left' => 1,
4731 + ],
4732 + 'selectors' => [
4733 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4734 + ],
4735 + 'render_type' => 'template',
4736 + 'condition' => [
4737 + 'excerpt_border_type!' => 'none',
4738 + ],
4739 + ]
4740 + );
4741 +
4742 + $this->add_responsive_control(
4743 + 'excerpt_padding',
4744 + [
4745 + 'label' => esc_html__('Padding', 'king-addons'),
4746 + 'type' => Controls_Manager::DIMENSIONS,
4747 + 'size_units' => ['px', '%'],
4748 + 'default' => [
4749 + 'top' => 0,
4750 + 'right' => 0,
4751 + 'bottom' => 0,
4752 + 'left' => 0,
4753 + ],
4754 + 'selectors' => [
4755 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4756 + ],
4757 + 'render_type' => 'template',
4758 + 'separator' => 'before',
4759 + ]
4760 + );
4761 +
4762 + $this->add_responsive_control(
4763 + 'excerpt_margin',
4764 + [
4765 + 'label' => esc_html__('Margin', 'king-addons'),
4766 + 'type' => Controls_Manager::DIMENSIONS,
4767 + 'size_units' => ['px', '%'],
4768 + 'default' => [
4769 + 'top' => 0,
4770 + 'right' => 0,
4771 + 'bottom' => 0,
4772 + 'left' => 0,
4773 + ],
4774 + 'render_type' => 'template',
4775 + 'selectors' => [
4776 + '{{WRAPPER}} .king-addons-grid-item-excerpt .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4777 + ],
4778 + ]
4779 + );
4780 +
4781 + $this->end_controls_section();
4782 +
4783 +
4784 + $this->start_controls_section(
4785 + 'section_style_date',
4786 + [
4787 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Date', 'king-addons'),
4788 + 'tab' => Controls_Manager::TAB_STYLE,
4789 + 'show_label' => false,
4790 + ]
4791 + );
4792 +
4793 + $this->add_control(
4794 + 'date_color',
4795 + [
4796 + 'label' => esc_html__('Color', 'king-addons'),
4797 + 'type' => Controls_Manager::COLOR,
4798 + 'default' => '#9C9C9C',
4799 + 'selectors' => [
4800 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block' => 'color: {{VALUE}}',
4801 + ],
4802 + ]
4803 + );
4804 +
4805 + $this->add_control(
4806 + 'date_bg_color',
4807 + [
4808 + 'label' => esc_html__('Background Color', 'king-addons'),
4809 + 'type' => Controls_Manager::COLOR,
4810 + 'selectors' => [
4811 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block > span' => 'background-color: {{VALUE}}',
4812 + ]
4813 + ]
4814 + );
4815 +
4816 + $this->add_control(
4817 + 'date_border_color',
4818 + [
4819 + 'label' => esc_html__('Border Color', 'king-addons'),
4820 + 'type' => Controls_Manager::COLOR,
4821 + 'default' => '#E8E8E8',
4822 + 'selectors' => [
4823 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block > span' => 'border-color: {{VALUE}}',
4824 + ]
4825 + ]
4826 + );
4827 +
4828 + $this->add_control(
4829 + 'date_extra_text_color',
4830 + [
4831 + 'label' => esc_html__('Extra Text Color', 'king-addons'),
4832 + 'type' => Controls_Manager::COLOR,
4833 + 'default' => '#9C9C9C',
4834 + 'selectors' => [
4835 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block span[class*="king-addons-grid-extra-text"]' => 'color: {{VALUE}}',
4836 + ],
4837 + ]
4838 + );
4839 +
4840 + $this->add_control(
4841 + 'date_extra_icon_color',
4842 + [
4843 + 'label' => esc_html__('Extra Icon Color', 'king-addons'),
4844 + 'type' => Controls_Manager::COLOR,
4845 + 'default' => '#9C9C9C',
4846 + 'selectors' => [
4847 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block [class*="king-addons-grid-extra-icon"] i' => 'color: {{VALUE}}',
4848 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block [class*="king-addons-grid-extra-icon"] svg' => 'fill: {{VALUE}}'
4849 + ],
4850 + 'separator' => 'after',
4851 + ]
4852 + );
4853 +
4854 + $this->add_group_control(
4855 + Group_Control_Typography::get_type(),
4856 + [
4857 + 'name' => 'date_typography',
4858 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-date, {{WRAPPER}} .king-addons-grid-item-date span'
4859 + ]
4860 + );
4861 +
4862 + $this->add_control(
4863 + 'date_border_type',
4864 + [
4865 + 'label' => esc_html__('Border Type', 'king-addons'),
4866 + 'type' => Controls_Manager::SELECT,
4867 + 'options' => [
4868 + 'none' => esc_html__('None', 'king-addons'),
4869 + 'solid' => esc_html__('Solid', 'king-addons'),
4870 + 'double' => esc_html__('Double', 'king-addons'),
4871 + 'dotted' => esc_html__('Dotted', 'king-addons'),
4872 + 'dashed' => esc_html__('Dashed', 'king-addons'),
4873 + 'groove' => esc_html__('Groove', 'king-addons'),
4874 + ],
4875 + 'default' => 'none',
4876 + 'selectors' => [
4877 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block > span' => 'border-style: {{VALUE}};',
4878 + ],
4879 + 'render_type' => 'template',
4880 + 'separator' => 'before',
4881 + ]
4882 + );
4883 +
4884 + $this->add_control(
4885 + 'date_border_width',
4886 + [
4887 + 'label' => esc_html__('Border Width', 'king-addons'),
4888 + 'type' => Controls_Manager::DIMENSIONS,
4889 + 'size_units' => ['px'],
4890 + 'default' => [
4891 + 'top' => 1,
4892 + 'right' => 1,
4893 + 'bottom' => 1,
4894 + 'left' => 1,
4895 + ],
4896 + 'selectors' => [
4897 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4898 + ],
4899 + 'render_type' => 'template',
4900 + 'condition' => [
4901 + 'date_border_type!' => 'none',
4902 + ],
4903 + ]
4904 + );
4905 +
4906 + $this->add_control(
4907 + 'date_text_spacing',
4908 + [
4909 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
4910 + 'type' => Controls_Manager::SLIDER,
4911 + 'size_units' => ['px'],
4912 + 'range' => [
4913 + 'px' => [
4914 + 'min' => 0,
4915 + 'max' => 25,
4916 + ],
4917 + ],
4918 + 'default' => [
4919 + 'unit' => 'px',
4920 + 'size' => 5,
4921 + ],
4922 + 'selectors' => [
4923 + '{{WRAPPER}} .king-addons-grid-item-date .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
4924 + '{{WRAPPER}} .king-addons-grid-item-date .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
4925 + ],
4926 + 'separator' => 'before',
4927 + ]
4928 + );
4929 +
4930 + $this->add_control(
4931 + 'date_icon_spacing',
4932 + [
4933 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
4934 + 'type' => Controls_Manager::SLIDER,
4935 + 'size_units' => ['px'],
4936 + 'range' => [
4937 + 'px' => [
4938 + 'min' => 0,
4939 + 'max' => 25,
4940 + ],
4941 + ],
4942 + 'default' => [
4943 + 'unit' => 'px',
4944 + 'size' => 5,
4945 + ],
4946 + 'selectors' => [
4947 + '{{WRAPPER}} .king-addons-grid-item-date .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
4948 + '{{WRAPPER}} .king-addons-grid-item-date .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
4949 + ],
4950 + ]
4951 + );
4952 +
4953 + $this->add_responsive_control(
4954 + 'date_padding',
4955 + [
4956 + 'label' => esc_html__('Padding', 'king-addons'),
4957 + 'type' => Controls_Manager::DIMENSIONS,
4958 + 'size_units' => ['px', '%'],
4959 + 'default' => [
4960 + 'top' => 0,
4961 + 'right' => 0,
4962 + 'bottom' => 0,
4963 + 'left' => 0,
4964 + ],
4965 + 'selectors' => [
4966 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4967 + ],
4968 + 'render_type' => 'template',
4969 + 'separator' => 'before',
4970 + ]
4971 + );
4972 +
4973 + $this->add_responsive_control(
4974 + 'date_margin',
4975 + [
4976 + 'label' => esc_html__('Margin', 'king-addons'),
4977 + 'type' => Controls_Manager::DIMENSIONS,
4978 + 'size_units' => ['px', '%'],
4979 + 'default' => [
4980 + 'top' => 0,
4981 + 'right' => 7,
4982 + 'bottom' => 0,
4983 + 'left' => 0,
4984 + ],
4985 + 'render_type' => 'template',
4986 + 'selectors' => [
4987 + '{{WRAPPER}} .king-addons-grid-item-date .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
4988 + ],
4989 + ]
4990 + );
4991 +
4992 + $this->end_controls_section();
4993 +
4994 +
4995 + $this->start_controls_section(
4996 + 'section_style_time',
4997 + [
4998 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Time', 'king-addons'),
4999 + 'tab' => Controls_Manager::TAB_STYLE,
5000 + 'show_label' => false,
5001 + ]
5002 + );
5003 +
5004 + $this->add_control(
5005 + 'time_color',
5006 + [
5007 + 'label' => esc_html__('Color', 'king-addons'),
5008 + 'type' => Controls_Manager::COLOR,
5009 + 'default' => '#9C9C9C',
5010 + 'selectors' => [
5011 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block' => 'color: {{VALUE}}',
5012 + ],
5013 + ]
5014 + );
5015 +
5016 + $this->add_control(
5017 + 'time_bg_color',
5018 + [
5019 + 'label' => esc_html__('Background Color', 'king-addons'),
5020 + 'type' => Controls_Manager::COLOR,
5021 + 'selectors' => [
5022 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block > span' => 'background-color: {{VALUE}}',
5023 + ]
5024 + ]
5025 + );
5026 +
5027 + $this->add_control(
5028 + 'time_border_color',
5029 + [
5030 + 'label' => esc_html__('Border Color', 'king-addons'),
5031 + 'type' => Controls_Manager::COLOR,
5032 + 'default' => '#E8E8E8',
5033 + 'selectors' => [
5034 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block > span' => 'border-color: {{VALUE}}',
5035 + ],
5036 + ]
5037 + );
5038 +
5039 + $this->add_control(
5040 + 'time_extra_text_color',
5041 + [
5042 + 'label' => esc_html__('Extra Text Color', 'king-addons'),
5043 + 'type' => Controls_Manager::COLOR,
5044 + 'default' => '#9C9C9C',
5045 + 'selectors' => [
5046 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block span[class*="king-addons-grid-extra-text"]' => 'color: {{VALUE}}',
5047 + ],
5048 + ]
5049 + );
5050 +
5051 + $this->add_control(
5052 + 'time_extra_icon_color',
5053 + [
5054 + 'label' => esc_html__('Extra Icon Color', 'king-addons'),
5055 + 'type' => Controls_Manager::COLOR,
5056 + 'default' => '#9C9C9C',
5057 + 'selectors' => [
5058 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block [class*="king-addons-grid-extra-icon"] i' => 'color: {{VALUE}}',
5059 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block [class*="king-addons-grid-extra-icon"] svg' => 'fill: {{VALUE}}'
5060 + ],
5061 + 'separator' => 'after',
5062 + ]
5063 + );
5064 +
5065 + $this->add_group_control(
5066 + Group_Control_Typography::get_type(),
5067 + [
5068 + 'name' => 'time_typography',
5069 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-time'
5070 + ]
5071 + );
5072 +
5073 + $this->add_control(
5074 + 'time_border_type',
5075 + [
5076 + 'label' => esc_html__('Border Type', 'king-addons'),
5077 + 'type' => Controls_Manager::SELECT,
5078 + 'options' => [
5079 + 'none' => esc_html__('None', 'king-addons'),
5080 + 'solid' => esc_html__('Solid', 'king-addons'),
5081 + 'double' => esc_html__('Double', 'king-addons'),
5082 + 'dotted' => esc_html__('Dotted', 'king-addons'),
5083 + 'dashed' => esc_html__('Dashed', 'king-addons'),
5084 + 'groove' => esc_html__('Groove', 'king-addons'),
5085 + ],
5086 + 'default' => 'none',
5087 + 'selectors' => [
5088 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block > span' => 'border-style: {{VALUE}};',
5089 + ],
5090 + 'render_type' => 'template',
5091 + 'separator' => 'before',
5092 + ]
5093 + );
5094 +
5095 + $this->add_control(
5096 + 'time_border_width',
5097 + [
5098 + 'label' => esc_html__('Border Width', 'king-addons'),
5099 + 'type' => Controls_Manager::DIMENSIONS,
5100 + 'size_units' => ['px'],
5101 + 'default' => [
5102 + 'top' => 1,
5103 + 'right' => 1,
5104 + 'bottom' => 1,
5105 + 'left' => 1,
5106 + ],
5107 + 'selectors' => [
5108 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5109 + ],
5110 + 'render_type' => 'template',
5111 + 'condition' => [
5112 + 'time_border_type!' => 'none',
5113 + ],
5114 + ]
5115 + );
5116 +
5117 + $this->add_control(
5118 + 'time_text_spacing',
5119 + [
5120 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
5121 + 'type' => Controls_Manager::SLIDER,
5122 + 'size_units' => ['px'],
5123 + 'range' => [
5124 + 'px' => [
5125 + 'min' => 0,
5126 + 'max' => 25,
5127 + ],
5128 + ],
5129 + 'default' => [
5130 + 'unit' => 'px',
5131 + 'size' => 5,
5132 + ],
5133 + 'selectors' => [
5134 + '{{WRAPPER}} .king-addons-grid-item-time .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
5135 + '{{WRAPPER}} .king-addons-grid-item-time .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
5136 + ],
5137 + 'separator' => 'before',
5138 + ]
5139 + );
5140 +
5141 + $this->add_control(
5142 + 'time_icon_spacing',
5143 + [
5144 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
5145 + 'type' => Controls_Manager::SLIDER,
5146 + 'size_units' => ['px'],
5147 + 'range' => [
5148 + 'px' => [
5149 + 'min' => 0,
5150 + 'max' => 25,
5151 + ],
5152 + ],
5153 + 'default' => [
5154 + 'unit' => 'px',
5155 + 'size' => 5,
5156 + ],
5157 + 'selectors' => [
5158 + '{{WRAPPER}} .king-addons-grid-item-time .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
5159 + '{{WRAPPER}} .king-addons-grid-item-time .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
5160 + ],
5161 + ]
5162 + );
5163 +
5164 + $this->add_responsive_control(
5165 + 'time_padding',
5166 + [
5167 + 'label' => esc_html__('Padding', 'king-addons'),
5168 + 'type' => Controls_Manager::DIMENSIONS,
5169 + 'size_units' => ['px', '%'],
5170 + 'default' => [
5171 + 'top' => 0,
5172 + 'right' => 0,
5173 + 'bottom' => 0,
5174 + 'left' => 0,
5175 + ],
5176 + 'selectors' => [
5177 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5178 + ],
5179 + 'render_type' => 'template',
5180 + 'separator' => 'before',
5181 + ]
5182 + );
5183 +
5184 + $this->add_responsive_control(
5185 + 'time_margin',
5186 + [
5187 + 'label' => esc_html__('Margin', 'king-addons'),
5188 + 'type' => Controls_Manager::DIMENSIONS,
5189 + 'size_units' => ['px', '%'],
5190 + 'default' => [
5191 + 'top' => 0,
5192 + 'right' => 0,
5193 + 'bottom' => 0,
5194 + 'left' => 0,
5195 + ],
5196 + 'selectors' => [
5197 + '{{WRAPPER}} .king-addons-grid-item-time .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5198 + ],
5199 + 'render_type' => 'template',
5200 + ]
5201 + );
5202 +
5203 + $this->end_controls_section();
5204 +
5205 +
5206 + $this->start_controls_section(
5207 + 'section_style_author',
5208 + [
5209 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Author', 'king-addons'),
5210 + 'tab' => Controls_Manager::TAB_STYLE,
5211 + 'show_label' => false,
5212 + ]
5213 + );
5214 +
5215 + $this->start_controls_tabs('tabs_grid_author_style');
5216 +
5217 + $this->start_controls_tab(
5218 + 'tab_grid_author_normal',
5219 + [
5220 + 'label' => esc_html__('Normal', 'king-addons'),
5221 + ]
5222 + );
5223 +
5224 + $this->add_control(
5225 + 'author_color',
5226 + [
5227 + 'label' => esc_html__('Color', 'king-addons'),
5228 + 'type' => Controls_Manager::COLOR,
5229 + 'default' => '#9C9C9C',
5230 + 'selectors' => [
5231 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'color: {{VALUE}}',
5232 + ],
5233 + ]
5234 + );
5235 +
5236 + $this->add_control(
5237 + 'author_bg_color',
5238 + [
5239 + 'label' => esc_html__('Background Color', 'king-addons'),
5240 + 'type' => Controls_Manager::COLOR,
5241 + 'selectors' => [
5242 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'background-color: {{VALUE}}',
5243 + ]
5244 + ]
5245 + );
5246 +
5247 + $this->add_control(
5248 + 'author_border_color',
5249 + [
5250 + 'label' => esc_html__('Border Color', 'king-addons'),
5251 + 'type' => Controls_Manager::COLOR,
5252 + 'default' => '#E8E8E8',
5253 + 'selectors' => [
5254 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'border-color: {{VALUE}}',
5255 + ],
5256 + ]
5257 + );
5258 +
5259 + $this->add_control(
5260 + 'author_extra_text_color',
5261 + [
5262 + 'label' => esc_html__('Extra Text Color', 'king-addons'),
5263 + 'type' => Controls_Manager::COLOR,
5264 + 'default' => '#9C9C9C',
5265 + 'selectors' => [
5266 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block span[class*="king-addons-grid-extra-text"]' => 'color: {{VALUE}}',
5267 + ],
5268 + 'separator' => 'after',
5269 + ]
5270 + );
5271 +
5272 + $this->end_controls_tab();
5273 +
5274 + $this->start_controls_tab(
5275 + 'tab_grid_author_hover',
5276 + [
5277 + 'label' => esc_html__('Hover', 'king-addons'),
5278 + ]
5279 + );
5280 +
5281 + $this->add_control(
5282 + 'author_color_hr',
5283 + [
5284 + 'label' => esc_html__('Color', 'king-addons'),
5285 + 'type' => Controls_Manager::COLOR,
5286 + 'default' => '#5B03FF',
5287 + 'selectors' => [
5288 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a:hover' => 'color: {{VALUE}}',
5289 + ],
5290 + ]
5291 + );
5292 +
5293 + $this->add_control(
5294 + 'author_bg_color_hr',
5295 + [
5296 + 'label' => esc_html__('Background Color', 'king-addons'),
5297 + 'type' => Controls_Manager::COLOR,
5298 + 'selectors' => [
5299 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a:hover' => 'background-color: {{VALUE}}',
5300 + ]
5301 + ]
5302 + );
5303 +
5304 + $this->add_control(
5305 + 'author_border_color_hr',
5306 + [
5307 + 'label' => esc_html__('Border Color', 'king-addons'),
5308 + 'type' => Controls_Manager::COLOR,
5309 + 'default' => '#E8E8E8',
5310 + 'selectors' => [
5311 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a:hover' => 'border-color: {{VALUE}}',
5312 + ],
5313 + 'separator' => 'after',
5314 + ]
5315 + );
5316 +
5317 + $this->end_controls_tab();
5318 +
5319 + $this->end_controls_tabs();
5320 +
5321 + $this->add_control(
5322 + 'author_transition_duration',
5323 + [
5324 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
5325 + 'type' => Controls_Manager::NUMBER,
5326 + 'default' => 0.1,
5327 + 'min' => 0,
5328 + 'max' => 5,
5329 + 'step' => 0.1,
5330 + 'selectors' => [
5331 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'transition-duration: {{VALUE}}s',
5332 + ],
5333 + 'separator' => 'after',
5334 + ]
5335 + );
5336 +
5337 + $this->add_group_control(
5338 + Group_Control_Typography::get_type(),
5339 + [
5340 + 'name' => 'author_typography',
5341 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-author, {{WRAPPER}} .king-addons-grid-item-author .inner-block a'
5342 + ]
5343 + );
5344 +
5345 + $this->add_control(
5346 + 'author_border_type',
5347 + [
5348 + 'label' => esc_html__('Border Type', 'king-addons'),
5349 + 'type' => Controls_Manager::SELECT,
5350 + 'options' => [
5351 + 'none' => esc_html__('None', 'king-addons'),
5352 + 'solid' => esc_html__('Solid', 'king-addons'),
5353 + 'double' => esc_html__('Double', 'king-addons'),
5354 + 'dotted' => esc_html__('Dotted', 'king-addons'),
5355 + 'dashed' => esc_html__('Dashed', 'king-addons'),
5356 + 'groove' => esc_html__('Groove', 'king-addons'),
5357 + ],
5358 + 'default' => 'none',
5359 + 'selectors' => [
5360 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'border-style: {{VALUE}};',
5361 + ],
5362 + 'render_type' => 'template',
5363 + 'separator' => 'before',
5364 + ]
5365 + );
5366 +
5367 + $this->add_control(
5368 + 'author_border_width',
5369 + [
5370 + 'label' => esc_html__('Border Width', 'king-addons'),
5371 + 'type' => Controls_Manager::DIMENSIONS,
5372 + 'size_units' => ['px'],
5373 + 'default' => [
5374 + 'top' => 1,
5375 + 'right' => 1,
5376 + 'bottom' => 1,
5377 + 'left' => 1,
5378 + ],
5379 + 'selectors' => [
5380 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5381 + ],
5382 + 'render_type' => 'template',
5383 + 'condition' => [
5384 + 'author_border_type!' => 'none',
5385 + ],
5386 + ]
5387 + );
5388 +
5389 + $this->add_control(
5390 + 'author_border_radius',
5391 + [
5392 + 'label' => esc_html__('Border Radius', 'king-addons'),
5393 + 'type' => Controls_Manager::DIMENSIONS,
5394 + 'size_units' => ['px'],
5395 + 'default' => [
5396 + 'top' => 0,
5397 + 'right' => 0,
5398 + 'bottom' => 0,
5399 + 'left' => 0,
5400 + ],
5401 + 'selectors' => [
5402 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5403 + ]
5404 + ]
5405 + );
5406 +
5407 + $this->add_control(
5408 + 'author_text_spacing',
5409 + [
5410 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
5411 + 'type' => Controls_Manager::SLIDER,
5412 + 'size_units' => ['px'],
5413 + 'range' => [
5414 + 'px' => [
5415 + 'min' => 0,
5416 + 'max' => 25,
5417 + ],
5418 + ],
5419 + 'default' => [
5420 + 'unit' => 'px',
5421 + 'size' => 5,
5422 + ],
5423 + 'selectors' => [
5424 + '{{WRAPPER}} .king-addons-grid-item-author .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
5425 + '{{WRAPPER}} .king-addons-grid-item-author .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
5426 + ],
5427 + 'separator' => 'before',
5428 + ]
5429 + );
5430 +
5431 + $this->add_control(
5432 + 'author_icon_spacing',
5433 + [
5434 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
5435 + 'type' => Controls_Manager::SLIDER,
5436 + 'size_units' => ['px'],
5437 + 'range' => [
5438 + 'px' => [
5439 + 'min' => 0,
5440 + 'max' => 25,
5441 + ],
5442 + ],
5443 + 'default' => [
5444 + 'unit' => 'px',
5445 + 'size' => 5,
5446 + ],
5447 + 'selectors' => [
5448 + '{{WRAPPER}} .king-addons-grid-item-author .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
5449 + '{{WRAPPER}} .king-addons-grid-item-author .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
5450 + ],
5451 + ]
5452 + );
5453 +
5454 + $this->add_control(
5455 + 'author_avatar_spacing',
5456 + [
5457 + 'label' => esc_html__('Avatar Spacing', 'king-addons'),
5458 + 'type' => Controls_Manager::SLIDER,
5459 + 'size_units' => ['px'],
5460 + 'range' => [
5461 + 'px' => [
5462 + 'min' => 0,
5463 + 'max' => 25,
5464 + ],
5465 + ],
5466 + 'default' => [
5467 + 'unit' => 'px',
5468 + 'size' => 5,
5469 + ],
5470 + 'selectors' => [
5471 + '{{WRAPPER}} .king-addons-grid-item-author img' => 'margin-right: {{SIZE}}{{UNIT}};',
5472 + ],
5473 + ]
5474 + );
5475 +
5476 + $this->add_responsive_control(
5477 + 'author_padding',
5478 + [
5479 + 'label' => esc_html__('Padding', 'king-addons'),
5480 + 'type' => Controls_Manager::DIMENSIONS,
5481 + 'size_units' => ['px', '%'],
5482 + 'default' => [
5483 + 'top' => 0,
5484 + 'right' => 0,
5485 + 'bottom' => 0,
5486 + 'left' => 0,
5487 + ],
5488 + 'selectors' => [
5489 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5490 + ],
5491 + 'render_type' => 'template',
5492 + 'separator' => 'before',
5493 + ]
5494 + );
5495 +
5496 + $this->add_responsive_control(
5497 + 'author_margin',
5498 + [
5499 + 'label' => esc_html__('Margin', 'king-addons'),
5500 + 'type' => Controls_Manager::DIMENSIONS,
5501 + 'size_units' => ['px', '%'],
5502 + 'default' => [
5503 + 'top' => 0,
5504 + 'right' => 0,
5505 + 'bottom' => 0,
5506 + 'left' => 0,
5507 + ],
5508 + 'render_type' => 'template',
5509 + 'selectors' => [
5510 + '{{WRAPPER}} .king-addons-grid-item-author .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5511 + ],
5512 + ]
5513 + );
5514 +
5515 + $this->end_controls_section();
5516 +
5517 +
5518 + $this->start_controls_section(
5519 + 'section_style_comments',
5520 + [
5521 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Comments', 'king-addons'),
5522 + 'tab' => Controls_Manager::TAB_STYLE,
5523 + 'show_label' => false,
5524 + ]
5525 + );
5526 +
5527 + $this->start_controls_tabs('tabs_grid_comments_style');
5528 +
5529 + $this->start_controls_tab(
5530 + 'tab_grid_comments_normal',
5531 + [
5532 + 'label' => esc_html__('Normal', 'king-addons'),
5533 + ]
5534 + );
5535 +
5536 + $this->add_control(
5537 + 'comments_color',
5538 + [
5539 + 'label' => esc_html__('Color', 'king-addons'),
5540 + 'type' => Controls_Manager::COLOR,
5541 + 'default' => '#9C9C9C',
5542 + 'selectors' => [
5543 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'color: {{VALUE}}',
5544 + ],
5545 + ]
5546 + );
5547 +
5548 + $this->add_control(
5549 + 'comments_bg_color',
5550 + [
5551 + 'label' => esc_html__('Background Color', 'king-addons'),
5552 + 'type' => Controls_Manager::COLOR,
5553 + 'selectors' => [
5554 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'background-color: {{VALUE}}',
5555 + ]
5556 + ]
5557 + );
5558 +
5559 + $this->add_control(
5560 + 'comments_border_color',
5561 + [
5562 + 'label' => esc_html__('Border Color', 'king-addons'),
5563 + 'type' => Controls_Manager::COLOR,
5564 + 'default' => '#E8E8E8',
5565 + 'selectors' => [
5566 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'border-color: {{VALUE}}',
5567 + ],
5568 + ]
5569 + );
5570 +
5571 + $this->add_control(
5572 + 'comments_extra_text_color',
5573 + [
5574 + 'label' => esc_html__('Extra Text Color', 'king-addons'),
5575 + 'type' => Controls_Manager::COLOR,
5576 + 'default' => '#9C9C9C',
5577 + 'selectors' => [
5578 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block span[class*="king-addons-grid-extra-text"]' => 'color: {{VALUE}}',
5579 + ],
5580 + 'separator' => 'after',
5581 + ]
5582 + );
5583 +
5584 + $this->end_controls_tab();
5585 +
5586 + $this->start_controls_tab(
5587 + 'tab_grid_comments_hover',
5588 + [
5589 + 'label' => esc_html__('Hover', 'king-addons'),
5590 + ]
5591 + );
5592 +
5593 + $this->add_control(
5594 + 'comments_color_hr',
5595 + [
5596 + 'label' => esc_html__('Color', 'king-addons'),
5597 + 'type' => Controls_Manager::COLOR,
5598 + 'default' => '#5B03FF',
5599 + 'selectors' => [
5600 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a:hover' => 'color: {{VALUE}}',
5601 + ],
5602 + ]
5603 + );
5604 +
5605 + $this->add_control(
5606 + 'comments_bg_color_hr',
5607 + [
5608 + 'label' => esc_html__('Background Color', 'king-addons'),
5609 + 'type' => Controls_Manager::COLOR,
5610 + 'selectors' => [
5611 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a:hover' => 'background-color: {{VALUE}}',
5612 + ]
5613 + ]
5614 + );
5615 +
5616 + $this->add_control(
5617 + 'comments_border_color_hr',
5618 + [
5619 + 'label' => esc_html__('Border Color', 'king-addons'),
5620 + 'type' => Controls_Manager::COLOR,
5621 + 'default' => '#E8E8E8',
5622 + 'selectors' => [
5623 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a:hover' => 'border-color: {{VALUE}}',
5624 + ],
5625 + 'separator' => 'after',
5626 + ]
5627 + );
5628 +
5629 + $this->end_controls_tab();
5630 +
5631 + $this->end_controls_tabs();
5632 +
5633 + $this->add_control(
5634 + 'comments_transition_duration',
5635 + [
5636 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
5637 + 'type' => Controls_Manager::NUMBER,
5638 + 'default' => 0.1,
5639 + 'min' => 0,
5640 + 'max' => 5,
5641 + 'step' => 0.1,
5642 + 'selectors' => [
5643 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'transition-duration: {{VALUE}}s',
5644 + ],
5645 + 'separator' => 'after',
5646 + ]
5647 + );
5648 +
5649 + $this->add_group_control(
5650 + Group_Control_Typography::get_type(),
5651 + [
5652 + 'name' => 'comments_typography',
5653 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-comments'
5654 + ]
5655 + );
5656 +
5657 + $this->add_control(
5658 + 'comments_border_type',
5659 + [
5660 + 'label' => esc_html__('Border Type', 'king-addons'),
5661 + 'type' => Controls_Manager::SELECT,
5662 + 'options' => [
5663 + 'none' => esc_html__('None', 'king-addons'),
5664 + 'solid' => esc_html__('Solid', 'king-addons'),
5665 + 'double' => esc_html__('Double', 'king-addons'),
5666 + 'dotted' => esc_html__('Dotted', 'king-addons'),
5667 + 'dashed' => esc_html__('Dashed', 'king-addons'),
5668 + 'groove' => esc_html__('Groove', 'king-addons'),
5669 + ],
5670 + 'default' => 'none',
5671 + 'selectors' => [
5672 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'border-style: {{VALUE}};',
5673 + ],
5674 + 'render_type' => 'template',
5675 + 'separator' => 'before',
5676 + ]
5677 + );
5678 +
5679 + $this->add_control(
5680 + 'comments_border_width',
5681 + [
5682 + 'label' => esc_html__('Border Width', 'king-addons'),
5683 + 'type' => Controls_Manager::DIMENSIONS,
5684 + 'size_units' => ['px'],
5685 + 'default' => [
5686 + 'top' => 1,
5687 + 'right' => 1,
5688 + 'bottom' => 1,
5689 + 'left' => 1,
5690 + ],
5691 + 'selectors' => [
5692 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5693 + ],
5694 + 'render_type' => 'template',
5695 + 'condition' => [
5696 + 'comments_border_type!' => 'none',
5697 + ],
5698 + ]
5699 + );
5700 +
5701 + $this->add_control(
5702 + 'comments_text_spacing',
5703 + [
5704 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
5705 + 'type' => Controls_Manager::SLIDER,
5706 + 'size_units' => ['px'],
5707 + 'range' => [
5708 + 'px' => [
5709 + 'min' => 0,
5710 + 'max' => 25,
5711 + ],
5712 + ],
5713 + 'default' => [
5714 + 'unit' => 'px',
5715 + 'size' => 5,
5716 + ],
5717 + 'selectors' => [
5718 + '{{WRAPPER}} .king-addons-grid-item-comments .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
5719 + '{{WRAPPER}} .king-addons-grid-item-comments .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
5720 + ],
5721 + 'separator' => 'before'
5722 + ]
5723 + );
5724 +
5725 + $this->add_control(
5726 + 'comments_icon_spacing',
5727 + [
5728 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
5729 + 'type' => Controls_Manager::SLIDER,
5730 + 'size_units' => ['px'],
5731 + 'range' => [
5732 + 'px' => [
5733 + 'min' => 0,
5734 + 'max' => 25,
5735 + ],
5736 + ],
5737 + 'default' => [
5738 + 'unit' => 'px',
5739 + 'size' => 5,
5740 + ],
5741 + 'selectors' => [
5742 + '{{WRAPPER}} .king-addons-grid-item-comments .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
5743 + '{{WRAPPER}} .king-addons-grid-item-comments .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
5744 + ],
5745 + ]
5746 + );
5747 +
5748 + $this->add_responsive_control(
5749 + 'comments_padding',
5750 + [
5751 + 'label' => esc_html__('Padding', 'king-addons'),
5752 + 'type' => Controls_Manager::DIMENSIONS,
5753 + 'size_units' => ['px', '%'],
5754 + 'default' => [
5755 + 'top' => 0,
5756 + 'right' => 0,
5757 + 'bottom' => 0,
5758 + 'left' => 0,
5759 + ],
5760 + 'selectors' => [
5761 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5762 + ],
5763 + 'render_type' => 'template',
5764 + 'separator' => 'before',
5765 + ]
5766 + );
5767 +
5768 + $this->add_responsive_control(
5769 + 'comments_margin',
5770 + [
5771 + 'label' => esc_html__('Margin', 'king-addons'),
5772 + 'type' => Controls_Manager::DIMENSIONS,
5773 + 'size_units' => ['px', '%'],
5774 + 'default' => [
5775 + 'top' => 0,
5776 + 'right' => 0,
5777 + 'bottom' => 0,
5778 + 'left' => 0,
5779 + ],
5780 + 'selectors' => [
5781 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5782 + ],
5783 + 'render_type' => 'template',
5784 + ]
5785 + );
5786 +
5787 + $this->add_control(
5788 + 'comments_radius',
5789 + [
5790 + 'label' => esc_html__('Border Radius', 'king-addons'),
5791 + 'type' => Controls_Manager::DIMENSIONS,
5792 + 'size_units' => ['px', '%'],
5793 + 'default' => [
5794 + 'top' => 2,
5795 + 'right' => 2,
5796 + 'bottom' => 2,
5797 + 'left' => 2,
5798 + ],
5799 + 'selectors' => [
5800 + '{{WRAPPER}} .king-addons-grid-item-comments .inner-block a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
5801 + ],
5802 + 'separator' => 'before',
5803 + ]
5804 + );
5805 +
5806 + $this->end_controls_section();
5807 +
5808 +
5809 + $this->start_controls_section(
5810 + 'section_style_read_more',
5811 + [
5812 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Read More', 'king-addons'),
5813 + 'tab' => Controls_Manager::TAB_STYLE,
5814 + 'show_label' => false,
5815 + ]
5816 + );
5817 +
5818 + $this->start_controls_tabs('tabs_grid_read_more_style');
5819 +
5820 + $this->start_controls_tab(
5821 + 'tab_grid_read_more_normal',
5822 + [
5823 + 'label' => esc_html__('Normal', 'king-addons'),
5824 + ]
5825 + );
5826 +
5827 + $this->add_group_control(
5828 + Group_Control_Background::get_type(),
5829 + [
5830 + 'name' => 'read_more_bg_color',
5831 + 'label' => esc_html__('Background', 'king-addons'),
5832 + 'types' => ['classic', 'gradient'],
5833 + 'fields_options' => [
5834 + 'color' => [
5835 + 'default' => '#434900',
5836 + ],
5837 + ],
5838 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a'
5839 + ]
5840 + );
5841 +
5842 + $this->add_control(
5843 + 'read_more_color',
5844 + [
5845 + 'label' => esc_html__('Color', 'king-addons'),
5846 + 'type' => Controls_Manager::COLOR,
5847 + 'default' => '#5B03FF',
5848 + 'selectors' => [
5849 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'color: {{VALUE}}',
5850 + ],
5851 + ]
5852 + );
5853 +
5854 + $this->add_control(
5855 + 'read_more_border_color',
5856 + [
5857 + 'label' => esc_html__('Border Color', 'king-addons'),
5858 + 'type' => Controls_Manager::COLOR,
5859 + 'default' => '#E8E8E8',
5860 + 'selectors' => [
5861 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'border-color: {{VALUE}}',
5862 + ],
5863 + ]
5864 + );
5865 +
5866 + $this->add_group_control(
5867 + Group_Control_Box_Shadow::get_type(),
5868 + [
5869 + 'name' => 'read_more_box_shadow',
5870 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a',
5871 + ]
5872 + );
5873 +
5874 + $this->end_controls_tab();
5875 +
5876 + $this->start_controls_tab(
5877 + 'tab_grid_read_more_hover',
5878 + [
5879 + 'label' => esc_html__('Hover', 'king-addons'),
5880 + ]
5881 + );
5882 +
5883 + $this->add_group_control(
5884 + Group_Control_Background::get_type(),
5885 + [
5886 + 'name' => 'read_more_bg_color_hr',
5887 + 'label' => esc_html__('Background', 'king-addons'),
5888 + 'types' => ['classic', 'gradient'],
5889 + 'fields_options' => [
5890 + 'color' => [
5891 + 'default' => '#434900',
5892 + ],
5893 + ],
5894 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a.king-addons-button-none:hover, {{WRAPPER}} .king-addons-grid-item-read-more .inner-block a:before, {{WRAPPER}} .king-addons-grid-item-read-more .inner-block a:after'
5895 + ]
5896 + );
5897 +
5898 + $this->add_control(
5899 + 'read_more_color_hr',
5900 + [
5901 + 'label' => esc_html__('Color', 'king-addons'),
5902 + 'type' => Controls_Manager::COLOR,
5903 + 'default' => '#4D02D8',
5904 + 'selectors' => [
5905 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a:hover' => 'color: {{VALUE}}',
5906 + ],
5907 + ]
5908 + );
5909 +
5910 + $this->add_control(
5911 + 'read_more_border_color_hr',
5912 + [
5913 + 'label' => esc_html__('Border Color', 'king-addons'),
5914 + 'type' => Controls_Manager::COLOR,
5915 + 'default' => '#E8E8E8',
5916 + 'selectors' => [
5917 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a:hover' => 'border-color: {{VALUE}}',
5918 + ]
5919 + ]
5920 + );
5921 +
5922 + $this->add_group_control(
5923 + Group_Control_Box_Shadow::get_type(),
5924 + [
5925 + 'name' => 'read_more_box_shadow_hr',
5926 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block :hover a',
5927 + ]
5928 + );
5929 +
5930 + $this->end_controls_tab();
5931 +
5932 + $this->end_controls_tabs();
5933 +
5934 + $this->add_control(
5935 + 'read_more_divider',
5936 + [
5937 + 'type' => Controls_Manager::DIVIDER,
5938 + 'style' => 'thick',
5939 + ]
5940 + );
5941 +
5942 + $this->add_control_read_more_animation();
5943 +
5944 + $this->add_control(
5945 + 'read_more_transition_duration',
5946 + [
5947 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
5948 + 'type' => Controls_Manager::NUMBER,
5949 + 'default' => 0.1,
5950 + 'min' => 0,
5951 + 'max' => 5,
5952 + 'step' => 0.1,
5953 + 'selectors' => [
5954 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'transition-duration: {{VALUE}}s',
5955 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a:before' => 'transition-duration: {{VALUE}}s',
5956 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a:after' => 'transition-duration: {{VALUE}}s',
5957 + ],
5958 + ]
5959 + );
5960 +
5961 + $this->add_control_read_more_animation_height();
5962 +
5963 + $this->add_control(
5964 + 'read_more_typo_divider',
5965 + [
5966 + 'type' => Controls_Manager::DIVIDER,
5967 + 'style' => 'thick',
5968 + ]
5969 + );
5970 +
5971 + $this->add_group_control(
5972 + Group_Control_Typography::get_type(),
5973 + [
5974 + 'name' => 'read_more_typography',
5975 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-read-more a'
5976 + ]
5977 + );
5978 +
5979 + $this->add_control(
5980 + 'read_more_border_type',
5981 + [
5982 + 'label' => esc_html__('Border Type', 'king-addons'),
5983 + 'type' => Controls_Manager::SELECT,
5984 + 'options' => [
5985 + 'none' => esc_html__('None', 'king-addons'),
5986 + 'solid' => esc_html__('Solid', 'king-addons'),
5987 + 'double' => esc_html__('Double', 'king-addons'),
5988 + 'dotted' => esc_html__('Dotted', 'king-addons'),
5989 + 'dashed' => esc_html__('Dashed', 'king-addons'),
5990 + 'groove' => esc_html__('Groove', 'king-addons'),
5991 + ],
5992 + 'default' => 'none',
5993 + 'selectors' => [
5994 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'border-style: {{VALUE}};',
5995 + ],
5996 + 'render_type' => 'template',
5997 + 'separator' => 'before',
5998 + ]
5999 + );
6000 +
6001 + $this->add_control(
6002 + 'read_more_border_width',
6003 + [
6004 + 'label' => esc_html__('Border Width', 'king-addons'),
6005 + 'type' => Controls_Manager::DIMENSIONS,
6006 + 'size_units' => ['px'],
6007 + 'default' => [
6008 + 'top' => 1,
6009 + 'right' => 1,
6010 + 'bottom' => 1,
6011 + 'left' => 1,
6012 + ],
6013 + 'selectors' => [
6014 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6015 + ],
6016 + 'render_type' => 'template',
6017 + 'condition' => [
6018 + 'read_more_border_type!' => 'none',
6019 + ],
6020 + ]
6021 + );
6022 +
6023 + $this->add_control(
6024 + 'read_more_icon_spacing',
6025 + [
6026 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
6027 + 'type' => Controls_Manager::SLIDER,
6028 + 'size_units' => ['px'],
6029 + 'range' => [
6030 + 'px' => [
6031 + 'min' => 0,
6032 + 'max' => 25,
6033 + ],
6034 + ],
6035 + 'default' => [
6036 + 'unit' => 'px',
6037 + 'size' => 5,
6038 + ],
6039 + 'selectors' => [
6040 + '{{WRAPPER}} .king-addons-grid-item-read-more .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
6041 + '{{WRAPPER}} .king-addons-grid-item-read-more .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
6042 + ],
6043 + 'separator' => 'before'
6044 + ]
6045 + );
6046 +
6047 + $this->add_responsive_control(
6048 + 'read_more_padding',
6049 + [
6050 + 'label' => esc_html__('Padding', 'king-addons'),
6051 + 'type' => Controls_Manager::DIMENSIONS,
6052 + 'size_units' => ['px', '%'],
6053 + 'default' => [
6054 + 'top' => 0,
6055 + 'right' => 0,
6056 + 'bottom' => 0,
6057 + 'left' => 0,
6058 + ],
6059 + 'selectors' => [
6060 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6061 + ],
6062 + 'render_type' => 'template',
6063 + 'separator' => 'before',
6064 + ]
6065 + );
6066 +
6067 + $this->add_responsive_control(
6068 + 'read_more_margin',
6069 + [
6070 + 'label' => esc_html__('Margin', 'king-addons'),
6071 + 'type' => Controls_Manager::DIMENSIONS,
6072 + 'size_units' => ['px', '%'],
6073 + 'default' => [
6074 + 'top' => 0,
6075 + 'right' => 0,
6076 + 'bottom' => 0,
6077 + 'left' => 0,
6078 + ],
6079 + 'selectors' => [
6080 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6081 + ],
6082 + 'render_type' => 'template',
6083 + ]
6084 + );
6085 +
6086 + $this->add_control(
6087 + 'read_more_radius',
6088 + [
6089 + 'label' => esc_html__('Border Radius', 'king-addons'),
6090 + 'type' => Controls_Manager::DIMENSIONS,
6091 + 'size_units' => ['px', '%'],
6092 + 'default' => [
6093 + 'top' => 0,
6094 + 'right' => 0,
6095 + 'bottom' => 0,
6096 + 'left' => 0,
6097 + ],
6098 + 'selectors' => [
6099 + '{{WRAPPER}} .king-addons-grid-item-read-more .inner-block a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6100 + ],
6101 + 'separator' => 'before',
6102 + ]
6103 + );
6104 +
6105 + $this->end_controls_section();
6106 +
6107 +
6108 + $this->add_section_style_likes();
6109 +
6110 +
6111 + $this->add_section_style_sharing();
6112 +
6113 + // TODO
6114 +// $this->add_section_style_lightbox();
6115 +
6116 + $this->start_controls_section(
6117 + 'section_style_filters',
6118 + [
6119 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Filters', 'king-addons'),
6120 + 'tab' => Controls_Manager::TAB_STYLE,
6121 + 'show_label' => false,
6122 + 'condition' => [
6123 + 'layout_select!' => 'slider',
6124 + 'layout_filters' => 'yes',
6125 + ],
6126 + ]
6127 + );
6128 +
6129 + $this->add_control(
6130 + 'active_styles_notice',
6131 + [
6132 + 'type' => Controls_Manager::RAW_HTML,
6133 + 'raw' => esc_html__('Apply active filter styles from the hover tab.', 'king-addons'),
6134 + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info'
6135 + ]
6136 + );
6137 +
6138 + $this->start_controls_tabs('tabs_grid_filters_style');
6139 +
6140 + $this->start_controls_tab(
6141 + 'tab_grid_filters_normal',
6142 + [
6143 + 'label' => esc_html__('Normal', 'king-addons'),
6144 + ]
6145 + );
6146 +
6147 + $this->add_control(
6148 + 'filters_color',
6149 + [
6150 + 'label' => esc_html__('Color', 'king-addons'),
6151 + 'type' => Controls_Manager::COLOR,
6152 + 'default' => '#7A7A7A',
6153 + 'selectors' => [
6154 + '{{WRAPPER}} .king-addons-grid-filters li' => 'color: {{VALUE}}',
6155 + '{{WRAPPER}} .king-addons-grid-filters li a' => 'color: {{VALUE}}',
6156 + ],
6157 + ]
6158 + );
6159 +
6160 + $this->add_control(
6161 + 'filters_bg_color',
6162 + [
6163 + 'label' => esc_html__('Background Color', 'king-addons'),
6164 + 'type' => Controls_Manager::COLOR,
6165 + 'selectors' => [
6166 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'background-color: {{VALUE}}',
6167 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'background-color: {{VALUE}}',
6168 + ]
6169 + ]
6170 + );
6171 +
6172 + $this->add_control(
6173 + 'filters_border_color',
6174 + [
6175 + 'label' => esc_html__('Border Color', 'king-addons'),
6176 + 'type' => Controls_Manager::COLOR,
6177 + 'default' => '#E8E8E8',
6178 + 'selectors' => [
6179 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'border-color: {{VALUE}}',
6180 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'border-color: {{VALUE}}',
6181 + ],
6182 + ]
6183 + );
6184 +
6185 + $this->add_group_control(
6186 + Group_Control_Box_Shadow::get_type(),
6187 + [
6188 + 'name' => 'filters_box_shadow',
6189 + 'selector' => '{{WRAPPER}} .king-addons-grid-filters li > a, {{WRAPPER}} .king-addons-grid-filters li > span',
6190 + ]
6191 + );
6192 +
6193 + $this->add_control(
6194 + 'filters_wrapper_color',
6195 + [
6196 + 'label' => esc_html__('Wrapper Color', 'king-addons'),
6197 + 'type' => Controls_Manager::COLOR,
6198 + 'selectors' => [
6199 + '{{WRAPPER}} .king-addons-grid-filters' => 'background-color: {{VALUE}}',
6200 + ],
6201 + 'separator' => 'after',
6202 + ]
6203 + );
6204 +
6205 + $this->end_controls_tab();
6206 +
6207 + $this->start_controls_tab(
6208 + 'tab_grid_filters_hover',
6209 + [
6210 + 'label' => esc_html__('Hover', 'king-addons'),
6211 + ]
6212 + );
6213 +
6214 + $this->add_control(
6215 + 'filters_color_hr',
6216 + [
6217 + 'label' => esc_html__('Color', 'king-addons'),
6218 + 'type' => Controls_Manager::COLOR,
6219 + 'default' => '#ffffff',
6220 + 'selectors' => [
6221 + '{{WRAPPER}} .king-addons-grid-filters li > a:hover' => 'color: {{VALUE}}',
6222 + '{{WRAPPER}} .king-addons-grid-filters li > span:hover' => 'color: {{VALUE}}',
6223 + '{{WRAPPER}} .king-addons-grid-filters li > .king-addons-active-filter' => 'color: {{VALUE}}',
6224 + ],
6225 + ]
6226 + );
6227 +
6228 + $this->add_control(
6229 + 'filters_bg_color_hr',
6230 + [
6231 + 'label' => esc_html__('Background Color', 'king-addons'),
6232 + 'type' => Controls_Manager::COLOR,
6233 + 'default' => '#5B03FF',
6234 + 'selectors' => [
6235 + '{{WRAPPER}} .king-addons-grid-filters li > a:hover' => 'background-color: {{VALUE}}',
6236 + '{{WRAPPER}} .king-addons-grid-filters li > span:hover' => 'background-color: {{VALUE}}',
6237 + '{{WRAPPER}} .king-addons-grid-filters li > .king-addons-active-filter' => 'background-color: {{VALUE}}',
6238 + ]
6239 + ]
6240 + );
6241 +
6242 + $this->add_control(
6243 + 'filters_border_color_hr',
6244 + [
6245 + 'label' => esc_html__('Border Color', 'king-addons'),
6246 + 'type' => Controls_Manager::COLOR,
6247 + 'default' => '#E8E8E8',
6248 + 'selectors' => [
6249 + '{{WRAPPER}} .king-addons-grid-filters li > a:hover' => 'border-color: {{VALUE}}',
6250 + '{{WRAPPER}} .king-addons-grid-filters li > span:hover' => 'border-color: {{VALUE}}',
6251 + '{{WRAPPER}} .king-addons-grid-filters li > .king-addons-active-filter' => 'border-color: {{VALUE}}',
6252 + ]
6253 + ]
6254 + );
6255 +
6256 + $this->add_control_filters_pointer_color_hr();
6257 +
6258 + $this->add_group_control(
6259 + Group_Control_Box_Shadow::get_type(),
6260 + [
6261 + 'name' => 'filters_box_shadow_hr',
6262 + 'selector' => '{{WRAPPER}} .king-addons-grid-filters li > a:hover, {{WRAPPER}} .king-addons-grid-filters li > span:hover',
6263 + 'separator' => 'after',
6264 + ]
6265 + );
6266 +
6267 + $this->end_controls_tab();
6268 +
6269 + $this->end_controls_tabs();
6270 +
6271 + $this->add_control_filters_pointer();
6272 +
6273 + $this->add_control_filters_pointer_height();
6274 +
6275 + $this->add_control_filters_pointer_animation();
6276 +
6277 + $this->add_control(
6278 + 'filters_transition_duration',
6279 + [
6280 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
6281 + 'type' => Controls_Manager::NUMBER,
6282 + 'default' => 0.1,
6283 + 'min' => 0,
6284 + 'max' => 5,
6285 + 'step' => 0.1,
6286 + 'selectors' => [
6287 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'transition-duration: {{VALUE}}s',
6288 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'transition-duration: {{VALUE}}s',
6289 + '{{WRAPPER}} .king-addons-grid-filters .king-addons-pointer-item:before' => 'transition-duration: {{VALUE}}s',
6290 + '{{WRAPPER}} .king-addons-grid-filters .king-addons-pointer-item:after' => 'transition-duration: {{VALUE}}s',
6291 + ],
6292 + 'separator' => 'after',
6293 + ]
6294 + );
6295 +
6296 + $this->add_group_control(
6297 + Group_Control_Typography::get_type(),
6298 + [
6299 + 'name' => 'filters_typography',
6300 + 'selector' => '{{WRAPPER}} .king-addons-grid-filters li'
6301 + ]
6302 + );
6303 +
6304 + $this->add_control(
6305 + 'filters_border_type',
6306 + [
6307 + 'label' => esc_html__('Border Type', 'king-addons'),
6308 + 'type' => Controls_Manager::SELECT,
6309 + 'options' => [
6310 + 'none' => esc_html__('None', 'king-addons'),
6311 + 'solid' => esc_html__('Solid', 'king-addons'),
6312 + 'double' => esc_html__('Double', 'king-addons'),
6313 + 'dotted' => esc_html__('Dotted', 'king-addons'),
6314 + 'dashed' => esc_html__('Dashed', 'king-addons'),
6315 + 'groove' => esc_html__('Groove', 'king-addons'),
6316 + ],
6317 + 'default' => 'none',
6318 + 'selectors' => [
6319 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'border-style: {{VALUE}};',
6320 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'border-style: {{VALUE}};',
6321 + ],
6322 + 'separator' => 'before',
6323 + ]
6324 + );
6325 +
6326 + $this->add_control(
6327 + 'filters_border_width',
6328 + [
6329 + 'label' => esc_html__('Border Width', 'king-addons'),
6330 + 'type' => Controls_Manager::DIMENSIONS,
6331 + 'size_units' => ['px'],
6332 + 'default' => [
6333 + 'top' => 1,
6334 + 'right' => 1,
6335 + 'bottom' => 1,
6336 + 'left' => 1,
6337 + ],
6338 + 'selectors' => [
6339 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6340 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6341 + ],
6342 + 'condition' => [
6343 + 'filters_border_type!' => 'none',
6344 + ],
6345 + ]
6346 + );
6347 +
6348 + $this->add_responsive_control(
6349 + 'filters_distance_from_grid',
6350 + [
6351 + 'label' => esc_html__('Distance From Grid', 'king-addons'),
6352 + 'type' => Controls_Manager::SLIDER,
6353 + 'size_units' => ['px'],
6354 + 'range' => [
6355 + 'px' => [
6356 + 'min' => 0,
6357 + 'max' => 100,
6358 + ],
6359 + ],
6360 + 'default' => [
6361 + 'unit' => 'px',
6362 + 'size' => 25,
6363 + ],
6364 + 'selectors' => [
6365 + '{{WRAPPER}} .king-addons-grid-filters' => 'margin-bottom: {{SIZE}}{{UNIT}};',
6366 + ],
6367 + 'separator' => 'before'
6368 + ]
6369 + );
6370 +
6371 + $this->add_control(
6372 + 'filters_icon_spacing',
6373 + [
6374 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
6375 + 'type' => Controls_Manager::SLIDER,
6376 + 'size_units' => ['px'],
6377 + 'range' => [
6378 + 'px' => [
6379 + 'min' => 0,
6380 + 'max' => 25,
6381 + ],
6382 + ],
6383 + 'default' => [
6384 + 'unit' => 'px',
6385 + 'size' => 0,
6386 + ],
6387 + 'selectors' => [
6388 + '{{WRAPPER}} .king-addons-grid-filters-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
6389 + '{{WRAPPER}} .king-addons-grid-filters-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
6390 + ],
6391 + ]
6392 + );
6393 +
6394 + $this->add_responsive_control(
6395 + 'filters_margin',
6396 + [
6397 + 'label' => esc_html__('Margin', 'king-addons'),
6398 + 'type' => Controls_Manager::DIMENSIONS,
6399 + 'size_units' => ['px'],
6400 + 'default' => [
6401 + 'top' => 0,
6402 + 'right' => 5,
6403 + 'bottom' => 0,
6404 + 'left' => 0,
6405 + ],
6406 + 'selectors' => [
6407 + '{{WRAPPER}} .king-addons-grid-filters li' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6408 + ],
6409 + ]
6410 + );
6411 +
6412 + $this->add_responsive_control(
6413 + 'filters_padding',
6414 + [
6415 + 'label' => esc_html__('Padding', 'king-addons'),
6416 + 'type' => Controls_Manager::DIMENSIONS,
6417 + 'size_units' => ['px',],
6418 + 'default' => [
6419 + 'top' => 3,
6420 + 'right' => 15,
6421 + 'bottom' => 3,
6422 + 'left' => 15,
6423 + ],
6424 + 'selectors' => [
6425 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6426 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6427 + ],
6428 + ]
6429 + );
6430 +
6431 + $this->add_responsive_control(
6432 + 'filters_wrapper_padding',
6433 + [
6434 + 'label' => esc_html__('Wrapper Padding', 'king-addons'),
6435 + 'type' => Controls_Manager::DIMENSIONS,
6436 + 'size_units' => ['px',],
6437 + 'default' => [
6438 + 'top' => 0,
6439 + 'right' => 0,
6440 + 'bottom' => 0,
6441 + 'left' => 0,
6442 + ],
6443 + 'selectors' => [
6444 + '{{WRAPPER}} .king-addons-grid-filters' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6445 + ],
6446 + ]
6447 + );
6448 +
6449 + $this->add_control(
6450 + 'filters_radius',
6451 + [
6452 + 'label' => esc_html__('Border Radius', 'king-addons'),
6453 + 'type' => Controls_Manager::DIMENSIONS,
6454 + 'size_units' => ['px', '%'],
6455 + 'default' => [
6456 + 'top' => 3,
6457 + 'right' => 3,
6458 + 'bottom' => 3,
6459 + 'left' => 3,
6460 + ],
6461 + 'selectors' => [
6462 + '{{WRAPPER}} .king-addons-grid-filters li > a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6463 + '{{WRAPPER}} .king-addons-grid-filters li > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6464 + ],
6465 + 'separator' => 'before',
6466 + ]
6467 + );
6468 +
6469 + $this->end_controls_section();
6470 +
6471 +
6472 + $this->start_controls_section(
6473 + 'section_style_pagination',
6474 + [
6475 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Pagination', 'king-addons'),
6476 + 'tab' => Controls_Manager::TAB_STYLE,
6477 + 'show_label' => false,
6478 + 'condition' => [
6479 + 'layout_select!' => 'slider',
6480 + ],
6481 + ]
6482 + );
6483 +
6484 + $this->start_controls_tabs('tabs_grid_pagination_style');
6485 +
6486 + $this->start_controls_tab(
6487 + 'tab_grid_pagination_normal',
6488 + [
6489 + 'label' => esc_html__('Normal', 'king-addons'),
6490 + ]
6491 + );
6492 +
6493 + $this->add_control(
6494 + 'pagination_color',
6495 + [
6496 + 'label' => esc_html__('Color', 'king-addons'),
6497 + 'type' => Controls_Manager::COLOR,
6498 + 'default' => '#ffffff',
6499 + 'selectors' => [
6500 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'color: {{VALUE}}',
6501 + '{{WRAPPER}} .king-addons-grid-pagination svg' => 'fill: {{VALUE}}',
6502 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'color: {{VALUE}}',
6503 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'color: {{VALUE}}',
6504 + ],
6505 + ]
6506 + );
6507 +
6508 + $this->add_control(
6509 + 'pagination_bg_color',
6510 + [
6511 + 'label' => esc_html__('Background Color', 'king-addons'),
6512 + 'type' => Controls_Manager::COLOR,
6513 + 'default' => '#5B03FF',
6514 + 'selectors' => [
6515 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'background-color: {{VALUE}}',
6516 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'background-color: {{VALUE}}',
6517 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'background-color: {{VALUE}}',
6518 + '{{WRAPPER}} .king-addons-pagination-finish' => 'color: {{VALUE}}',
6519 + ]
6520 + ]
6521 + );
6522 +
6523 + $this->add_control(
6524 + 'pagination_border_color',
6525 + [
6526 + 'label' => esc_html__('Border Color', 'king-addons'),
6527 + 'type' => Controls_Manager::COLOR,
6528 + 'default' => '#E8E8E8',
6529 + 'selectors' => [
6530 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'border-color: {{VALUE}}',
6531 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-color: {{VALUE}}',
6532 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'border-color: {{VALUE}}',
6533 + ],
6534 + ]
6535 + );
6536 +
6537 + $this->add_group_control(
6538 + Group_Control_Box_Shadow::get_type(),
6539 + [
6540 + 'name' => 'pagination_box_shadow',
6541 + 'selector' => '{{WRAPPER}} .king-addons-grid-pagination a, {{WRAPPER}} .king-addons-grid-pagination > div > span',
6542 + ]
6543 + );
6544 +
6545 + $this->add_control(
6546 + 'pagination_loader_color',
6547 + [
6548 + 'label' => esc_html__('Loader Color', 'king-addons'),
6549 + 'type' => Controls_Manager::COLOR,
6550 + 'default' => '#5B03FF',
6551 + 'selectors' => [
6552 + '{{WRAPPER}} .king-addons-double-bounce .king-addons-child' => 'background-color: {{VALUE}}',
6553 + '{{WRAPPER}} .king-addons-wave .king-addons-rect' => 'background-color: {{VALUE}}',
6554 + '{{WRAPPER}} .king-addons-spinner-pulse' => 'background-color: {{VALUE}}',
6555 + '{{WRAPPER}} .king-addons-chasing-dots .king-addons-child' => 'background-color: {{VALUE}}',
6556 + '{{WRAPPER}} .king-addons-three-bounce .king-addons-child' => 'background-color: {{VALUE}}',
6557 + '{{WRAPPER}} .king-addons-fading-circle .king-addons-circle:before' => 'background-color: {{VALUE}}',
6558 + '{{WRAPPER}} .king-addons-ring div' => 'border-color: {{VALUE}} transparent transparent transparent',
6559 + ],
6560 + 'condition' => [
6561 + 'pagination_type' => ['load-more', 'infinite-scroll']
6562 + ]
6563 + ]
6564 + );
6565 +
6566 + $this->add_control(
6567 + 'pagination_wrapper_color',
6568 + [
6569 + 'label' => esc_html__('Wrapper Color', 'king-addons'),
6570 + 'type' => Controls_Manager::COLOR,
6571 + 'selectors' => [
6572 + '{{WRAPPER}} .king-addons-grid-pagination' => 'background-color: {{VALUE}}',
6573 + ],
6574 + 'separator' => 'after',
6575 + ]
6576 + );
6577 +
6578 + $this->end_controls_tab();
6579 +
6580 + $this->start_controls_tab(
6581 + 'tab_grid_pagination_hover',
6582 + [
6583 + 'label' => esc_html__('Hover', 'king-addons'),
6584 + ]
6585 + );
6586 +
6587 + $this->add_control(
6588 + 'pagination_color_hr',
6589 + [
6590 + 'label' => esc_html__('Color', 'king-addons'),
6591 + 'type' => Controls_Manager::COLOR,
6592 + 'default' => '#ffffff',
6593 + 'selectors' => [
6594 + '{{WRAPPER}} .king-addons-grid-pagination a:hover' => 'color: {{VALUE}}',
6595 + '{{WRAPPER}} .king-addons-grid-pagination a:hover svg' => 'fill: {{VALUE}}',
6596 + '{{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover' => 'color: {{VALUE}}',
6597 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'color: {{VALUE}}',
6598 + ],
6599 + ]
6600 + );
6601 +
6602 + $this->add_control(
6603 + 'pagination_bg_color_hr',
6604 + [
6605 + 'label' => esc_html__('Background Color', 'king-addons'),
6606 + 'type' => Controls_Manager::COLOR,
6607 + 'default' => '#4D02D8',
6608 + 'selectors' => [
6609 + '{{WRAPPER}} .king-addons-grid-pagination a:hover' => 'background-color: {{VALUE}}',
6610 + '{{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover' => 'background-color: {{VALUE}}',
6611 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'background-color: {{VALUE}}',
6612 + ]
6613 + ]
6614 + );
6615 +
6616 + $this->add_control(
6617 + 'pagination_border_color_hr',
6618 + [
6619 + 'label' => esc_html__('Border Color', 'king-addons'),
6620 + 'type' => Controls_Manager::COLOR,
6621 + 'default' => '#E8E8E8',
6622 + 'selectors' => [
6623 + '{{WRAPPER}} .king-addons-grid-pagination a:hover' => 'border-color: {{VALUE}}',
6624 + '{{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover' => 'border-color: {{VALUE}}',
6625 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-color: {{VALUE}}',
6626 + ]
6627 + ]
6628 + );
6629 +
6630 + $this->add_group_control(
6631 + Group_Control_Box_Shadow::get_type(),
6632 + [
6633 + 'name' => 'pagination_box_shadow_hr',
6634 + 'selector' => '{{WRAPPER}} .king-addons-grid-pagination a:hover, {{WRAPPER}} .king-addons-grid-pagination > div > span:not(.king-addons-disabled-arrow):hover',
6635 + 'separator' => 'after',
6636 + ]
6637 + );
6638 +
6639 + $this->end_controls_tab();
6640 +
6641 + $this->end_controls_tabs();
6642 +
6643 + $this->add_control(
6644 + 'pagination_transition_duration',
6645 + [
6646 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
6647 + 'type' => Controls_Manager::NUMBER,
6648 + 'default' => 0.1,
6649 + 'min' => 0,
6650 + 'max' => 5,
6651 + 'step' => 0.1,
6652 + 'selectors' => [
6653 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'transition-duration: {{VALUE}}s',
6654 + '{{WRAPPER}} .king-addons-grid-pagination svg' => 'transition-duration: {{VALUE}}s',
6655 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'transition-duration: {{VALUE}}s',
6656 + ],
6657 + 'separator' => 'after',
6658 + ]
6659 + );
6660 +
6661 + $this->add_group_control(
6662 + Group_Control_Typography::get_type(),
6663 + [
6664 + 'name' => 'pagination_typography',
6665 + 'selector' => '{{WRAPPER}} .king-addons-grid-pagination, {{WRAPPER}} .king-addons-grid-pagination a'
6666 + ]
6667 + );
6668 +
6669 + $this->add_responsive_control(
6670 + 'pagination_icon_size',
6671 + [
6672 + 'label' => esc_html__('Icon Size', 'king-addons'),
6673 + 'type' => Controls_Manager::SLIDER,
6674 + 'size_units' => ['px'],
6675 + 'range' => [
6676 + 'px' => [
6677 + 'min' => 5,
6678 + 'max' => 30,
6679 + ],
6680 + ],
6681 + 'default' => [
6682 + 'unit' => 'px',
6683 + 'size' => 15,
6684 + ],
6685 + 'selectors' => [
6686 + '{{WRAPPER}} .king-addons-grid-pagination i' => 'font-size: {{SIZE}}{{UNIT}};',
6687 + '{{WRAPPER}} .king-addons-grid-pagination svg' => 'width: {{SIZE}}{{UNIT}};',
6688 + ],
6689 + ]
6690 + );
6691 +
6692 + $this->add_control(
6693 + 'pagination_border_type',
6694 + [
6695 + 'label' => esc_html__('Border Type', 'king-addons'),
6696 + 'type' => Controls_Manager::SELECT,
6697 + 'options' => [
6698 + 'none' => esc_html__('None', 'king-addons'),
6699 + 'solid' => esc_html__('Solid', 'king-addons'),
6700 + 'double' => esc_html__('Double', 'king-addons'),
6701 + 'dotted' => esc_html__('Dotted', 'king-addons'),
6702 + 'dashed' => esc_html__('Dashed', 'king-addons'),
6703 + 'groove' => esc_html__('Groove', 'king-addons'),
6704 + ],
6705 + 'default' => 'none',
6706 + 'selectors' => [
6707 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'border-style: {{VALUE}};',
6708 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-style: {{VALUE}};',
6709 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-style: {{VALUE}};',
6710 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'border-style: {{VALUE}}',
6711 + ],
6712 + 'separator' => 'before',
6713 + ]
6714 + );
6715 +
6716 + $this->add_control(
6717 + 'pagination_border_width',
6718 + [
6719 + 'label' => esc_html__('Border Width', 'king-addons'),
6720 + 'type' => Controls_Manager::DIMENSIONS,
6721 + 'size_units' => ['px'],
6722 + 'default' => [
6723 + 'top' => 1,
6724 + 'right' => 1,
6725 + 'bottom' => 1,
6726 + 'left' => 1,
6727 + ],
6728 + 'selectors' => [
6729 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6730 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6731 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6732 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6733 + ],
6734 + 'condition' => [
6735 + 'pagination_border_type!' => 'none',
6736 + ],
6737 + ]
6738 + );
6739 +
6740 + $this->add_responsive_control(
6741 + 'pagination_distance_from_grid',
6742 + [
6743 + 'label' => esc_html__('Distance From Grid', 'king-addons'),
6744 + 'type' => Controls_Manager::SLIDER,
6745 + 'size_units' => ['px'],
6746 + 'range' => [
6747 + 'px' => [
6748 + 'min' => 0,
6749 + 'max' => 100,
6750 + ],
6751 + ],
6752 + 'default' => [
6753 + 'unit' => 'px',
6754 + 'size' => 25,
6755 + ],
6756 + 'selectors' => [
6757 + '{{WRAPPER}} .king-addons-grid-pagination' => 'margin-top: {{SIZE}}{{UNIT}};',
6758 + ],
6759 + 'separator' => 'before'
6760 + ]
6761 + );
6762 +
6763 + $this->add_control(
6764 + 'pagination_gutter',
6765 + [
6766 + 'label' => esc_html__('Gutter', 'king-addons'),
6767 + 'type' => Controls_Manager::SLIDER,
6768 + 'size_units' => ['px'],
6769 + 'range' => [
6770 + 'px' => [
6771 + 'min' => 0,
6772 + 'max' => 25,
6773 + ],
6774 + ],
6775 + 'default' => [
6776 + 'unit' => 'px',
6777 + 'size' => 10,
6778 + ],
6779 + 'selectors' => [
6780 +
6781 + '{{WRAPPER}} .king-addons-grid-pagination a:not(:last-child)' => 'margin-right: {{SIZE}}{{UNIT}};',
6782 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'margin-right: {{SIZE}}{{UNIT}};',
6783 + '{{WRAPPER}} .king-addons-grid-pagination > div > a.king-addons-prev-page' => 'margin-right: {{SIZE}}{{UNIT}};',
6784 +
6785 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow:not(:last-child)' => 'margin-right: {{SIZE}}{{UNIT}};',
6786 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'margin-right: {{SIZE}}{{UNIT}};',
6787 + ],
6788 + ]
6789 + );
6790 +
6791 + $this->add_control(
6792 + 'pagination_icon_spacing',
6793 + [
6794 + 'label' => esc_html__('Icon Spacing', 'king-addons'),
6795 + 'type' => Controls_Manager::SLIDER,
6796 + 'size_units' => ['px'],
6797 + 'range' => [
6798 + 'px' => [
6799 + 'min' => 0,
6800 + 'max' => 25,
6801 + ],
6802 + ],
6803 + 'default' => [
6804 + 'unit' => 'px',
6805 + 'size' => 10,
6806 + ],
6807 + 'selectors' => [
6808 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-prev-post-link i' => 'padding-right: {{SIZE}}{{UNIT}};',
6809 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-next-post-link i' => 'padding-left: {{SIZE}}{{UNIT}};',
6810 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-first-page i' => 'padding-right: {{SIZE}}{{UNIT}};',
6811 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-prev-page i' => 'padding-right: {{SIZE}}{{UNIT}};',
6812 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-next-page i' => 'padding-left: {{SIZE}}{{UNIT}};',
6813 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-last-page i' => 'padding-left: {{SIZE}}{{UNIT}};',
6814 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-prev-post-link svg' => 'margin-right: {{SIZE}}{{UNIT}};',
6815 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-next-post-link svg' => 'margin-left: {{SIZE}}{{UNIT}};',
6816 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-first-page svg' => 'margin-right: {{SIZE}}{{UNIT}};',
6817 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-prev-page svg' => 'margin-right: {{SIZE}}{{UNIT}};',
6818 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-next-page svg' => 'margin-left: {{SIZE}}{{UNIT}};',
6819 + '{{WRAPPER}} .king-addons-grid-pagination .king-addons-last-page svg' => 'margin-left: {{SIZE}}{{UNIT}};',
6820 + ],
6821 + ]
6822 + );
6823 +
6824 + $this->add_responsive_control(
6825 + 'pagination_padding',
6826 + [
6827 + 'label' => esc_html__('Padding', 'king-addons'),
6828 + 'type' => Controls_Manager::DIMENSIONS,
6829 + 'size_units' => ['px'],
6830 + 'default' => [
6831 + 'top' => 8,
6832 + 'right' => 20,
6833 + 'bottom' => 8,
6834 + 'left' => 20,
6835 + ],
6836 + 'selectors' => [
6837 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6838 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6839 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-disabled-arrow' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6840 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6841 + ],
6842 + ]
6843 + );
6844 +
6845 + $this->add_responsive_control(
6846 + 'pagination_wrapper_padding',
6847 + [
6848 + 'label' => esc_html__('Wrapper Padding', 'king-addons'),
6849 + 'type' => Controls_Manager::DIMENSIONS,
6850 + 'size_units' => ['px'],
6851 + 'default' => [
6852 + 'top' => 0,
6853 + 'right' => 0,
6854 + 'bottom' => 0,
6855 + 'left' => 0,
6856 + ],
6857 + 'selectors' => [
6858 + '{{WRAPPER}} .king-addons-grid-pagination' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6859 + ],
6860 + ]
6861 + );
6862 +
6863 + $this->add_control(
6864 + 'pagination_radius',
6865 + [
6866 + 'label' => esc_html__('Border Radius', 'king-addons'),
6867 + 'type' => Controls_Manager::DIMENSIONS,
6868 + 'size_units' => ['px', '%'],
6869 + 'default' => [
6870 + 'top' => 3,
6871 + 'right' => 3,
6872 + 'bottom' => 3,
6873 + 'left' => 3,
6874 + ],
6875 + 'selectors' => [
6876 + '{{WRAPPER}} .king-addons-grid-pagination a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6877 + '{{WRAPPER}} .king-addons-grid-pagination > div > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6878 + '{{WRAPPER}} .king-addons-grid-pagination span.king-addons-grid-current-page' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
6879 + ],
6880 + 'separator' => 'before',
6881 + ]
6882 + );
6883 +
6884 + $this->end_controls_section();
6885 +
6886 +
6887 + $this->start_controls_section(
6888 + 'section_style_pwd_protected',
6889 + [
6890 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Password Protected', 'king-addons'),
6891 + 'tab' => Controls_Manager::TAB_STYLE,
6892 + 'show_label' => false,
6893 + ]
6894 + );
6895 +
6896 + $this->add_control(
6897 + 'pwd_protected_color',
6898 + [
6899 + 'label' => esc_html__('Color', 'king-addons'),
6900 + 'type' => Controls_Manager::COLOR,
6901 + 'default' => '#ffffff',
6902 + 'selectors' => [
6903 + '{{WRAPPER}} .king-addons-grid-item-protected' => 'color: {{VALUE}}',
6904 + ],
6905 + ]
6906 + );
6907 +
6908 + $this->add_control(
6909 + 'pwd_protected_bg_color',
6910 + [
6911 + 'label' => esc_html__('Background Color', 'king-addons'),
6912 + 'type' => Controls_Manager::COLOR,
6913 + 'default' => '#5B03FF',
6914 + 'selectors' => [
6915 + '{{WRAPPER}} .king-addons-grid-item-protected' => 'background-color: {{VALUE}}',
6916 + ]
6917 + ]
6918 + );
6919 +
6920 + $this->add_control(
6921 + 'pwd_protected_input_color',
6922 + [
6923 + 'label' => esc_html__('Input Background Color', 'king-addons'),
6924 + 'type' => Controls_Manager::COLOR,
6925 + 'default' => '#ffffff',
6926 + 'selectors' => [
6927 + '{{WRAPPER}} .king-addons-grid-item-protected input' => 'background-color: {{VALUE}}',
6928 + ]
6929 + ]
6930 + );
6931 +
6932 + $this->add_group_control(
6933 + Group_Control_Typography::get_type(),
6934 + [
6935 + 'name' => 'pwd_protected_typography',
6936 + 'selector' => '{{WRAPPER}} .king-addons-grid-item-protected p'
6937 + ]
6938 + );
6939 +
6940 + $this->end_controls_section();
6941 +
6942 +
6943 + $this->start_controls_section(
6944 + 'section_style_separator1',
6945 + [
6946 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Separator Style 1', 'king-addons'),
6947 + 'tab' => Controls_Manager::TAB_STYLE,
6948 + 'show_label' => false,
6949 + ]
6950 + );
6951 +
6952 + $this->add_control(
6953 + 'separator1_color',
6954 + [
6955 + 'label' => esc_html__('Color', 'king-addons'),
6956 + 'type' => Controls_Manager::COLOR,
6957 + 'default' => '#E8E8E8',
6958 + 'selectors' => [
6959 + '{{WRAPPER}} .king-addons-grid-sep-style-1 .inner-block > span' => 'border-bottom-color: {{VALUE}}',
6960 + ],
6961 + ]
6962 + );
6963 +
6964 + $this->add_control(
6965 + 'separator1_width',
6966 + [
6967 + 'label' => esc_html__('Width', 'king-addons'),
6968 + 'type' => Controls_Manager::SLIDER,
6969 + 'size_units' => ['px', '%'],
6970 + 'range' => [
6971 + 'px' => [
6972 + 'min' => 0,
6973 + 'max' => 300,
6974 + ],
6975 + '%' => [
6976 + 'min' => 0,
6977 + 'max' => 100,
6978 + ],
6979 + ],
6980 + 'default' => [
6981 + 'unit' => '%',
6982 + 'size' => 100,
6983 + ],
6984 + 'selectors' => [
6985 + '{{WRAPPER}} .king-addons-grid-sep-style-1:not(.king-addons-grid-item-display-inline) .inner-block > span' => 'width: {{SIZE}}{{UNIT}};',
6986 + '{{WRAPPER}} .king-addons-grid-sep-style-1.king-addons-grid-item-display-inline' => 'width: {{SIZE}}{{UNIT}};',
6987 + ],
6988 + 'render_type' => 'template',
6989 + 'separator' => 'before',
6990 + ]
6991 + );
6992 +
6993 + $this->add_control(
6994 + 'separator1_height',
6995 + [
6996 + 'label' => esc_html__('Height', 'king-addons'),
6997 + 'type' => Controls_Manager::SLIDER,
6998 + 'size_units' => ['px'],
6999 + 'range' => [
7000 + 'px' => [
7001 + 'min' => 1,
7002 + 'max' => 100,
7003 + ],
7004 + ],
7005 + 'default' => [
7006 + 'unit' => 'px',
7007 + 'size' => 2,
7008 + ],
7009 + 'render_type' => 'template',
7010 + 'selectors' => [
7011 + '{{WRAPPER}} .king-addons-grid-sep-style-1 .inner-block > span' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
7012 + ],
7013 + ]
7014 + );
7015 +
7016 + $this->add_control(
7017 + 'separator1_border_type',
7018 + [
7019 + 'label' => esc_html__('Type', 'king-addons'),
7020 + 'type' => Controls_Manager::SELECT,
7021 + 'options' => [
7022 + 'solid' => esc_html__('Solid', 'king-addons'),
7023 + 'double' => esc_html__('Double', 'king-addons'),
7024 + 'dotted' => esc_html__('Dotted', 'king-addons'),
7025 + 'dashed' => esc_html__('Dashed', 'king-addons'),
7026 + 'groove' => esc_html__('Groove', 'king-addons'),
7027 + ],
7028 + 'default' => 'solid',
7029 + 'selectors' => [
7030 + '{{WRAPPER}} .king-addons-grid-sep-style-1 .inner-block > span' => 'border-bottom-style: {{VALUE}};',
7031 + ],
7032 + 'separator' => 'before',
7033 + ]
7034 + );
7035 +
7036 + $this->add_responsive_control(
7037 + 'separator1_margin',
7038 + [
7039 + 'label' => esc_html__('Margin', 'king-addons'),
7040 + 'type' => Controls_Manager::DIMENSIONS,
7041 + 'size_units' => ['px', '%'],
7042 + 'default' => [
7043 + 'top' => 15,
7044 + 'right' => 0,
7045 + 'bottom' => 15,
7046 + 'left' => 0,
7047 + ],
7048 + 'render_type' => 'template',
7049 + 'selectors' => [
7050 + '{{WRAPPER}} .king-addons-grid-sep-style-1 .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7051 + ],
7052 + ]
7053 + );
7054 +
7055 + $this->add_control(
7056 + 'separator1_radius',
7057 + [
7058 + 'label' => esc_html__('Border Radius', 'king-addons'),
7059 + 'type' => Controls_Manager::DIMENSIONS,
7060 + 'size_units' => ['px', '%'],
7061 + 'default' => [
7062 + 'top' => 0,
7063 + 'right' => 0,
7064 + 'bottom' => 0,
7065 + 'left' => 0,
7066 + ],
7067 + 'selectors' => [
7068 + '{{WRAPPER}} .king-addons-grid-sep-style-1 .inner-block > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7069 + ],
7070 + 'separator' => 'before',
7071 + ]
7072 + );
7073 +
7074 + $this->end_controls_section();
7075 +
7076 +
7077 + $this->start_controls_section(
7078 + 'section_style_separator2',
7079 + [
7080 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Separator Style 2', 'king-addons'),
7081 + 'tab' => Controls_Manager::TAB_STYLE,
7082 + 'show_label' => false,
7083 + ]
7084 + );
7085 +
7086 + $this->add_control(
7087 + 'separator2_color',
7088 + [
7089 + 'label' => esc_html__('Color', 'king-addons'),
7090 + 'type' => Controls_Manager::COLOR,
7091 + 'default' => '#5B03FF',
7092 + 'selectors' => [
7093 + '{{WRAPPER}} .king-addons-grid-sep-style-2 .inner-block > span' => 'border-bottom-color: {{VALUE}}',
7094 + ],
7095 + ]
7096 + );
7097 +
7098 + $this->add_control(
7099 + 'separator2_width',
7100 + [
7101 + 'label' => esc_html__('Width', 'king-addons'),
7102 + 'type' => Controls_Manager::SLIDER,
7103 + 'size_units' => ['px', '%'],
7104 + 'range' => [
7105 + 'px' => [
7106 + 'min' => 0,
7107 + 'max' => 300,
7108 + ],
7109 + '%' => [
7110 + 'min' => 0,
7111 + 'max' => 100,
7112 + ],
7113 + ],
7114 + 'default' => [
7115 + 'unit' => '%',
7116 + 'size' => 20,
7117 + ],
7118 + 'selectors' => [
7119 + '{{WRAPPER}} .king-addons-grid-sep-style-2:not(.king-addons-grid-item-display-inline) .inner-block > span' => 'width: {{SIZE}}{{UNIT}};',
7120 + '{{WRAPPER}} .king-addons-grid-sep-style-2.king-addons-grid-item-display-inline' => 'width: {{SIZE}}{{UNIT}};',
7121 + ],
7122 + 'render_type' => 'template',
7123 + 'separator' => 'before',
7124 + ]
7125 + );
7126 +
7127 + $this->add_control(
7128 + 'separator2_height',
7129 + [
7130 + 'label' => esc_html__('Height', 'king-addons'),
7131 + 'type' => Controls_Manager::SLIDER,
7132 + 'size_units' => ['px'],
7133 + 'range' => [
7134 + 'px' => [
7135 + 'min' => 0,
7136 + 'max' => 100,
7137 + ],
7138 + ],
7139 + 'default' => [
7140 + 'unit' => 'px',
7141 + 'size' => 2,
7142 + ],
7143 + 'selectors' => [
7144 + '{{WRAPPER}} .king-addons-grid-sep-style-2 .inner-block > span' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
7145 + ],
7146 + 'render_type' => 'template',
7147 + ]
7148 + );
7149 +
7150 + $this->add_control(
7151 + 'separator2_border_type',
7152 + [
7153 + 'label' => esc_html__('Type', 'king-addons'),
7154 + 'type' => Controls_Manager::SELECT,
7155 + 'options' => [
7156 + 'solid' => esc_html__('Solid', 'king-addons'),
7157 + 'double' => esc_html__('Double', 'king-addons'),
7158 + 'dotted' => esc_html__('Dotted', 'king-addons'),
7159 + 'dashed' => esc_html__('Dashed', 'king-addons'),
7160 + 'groove' => esc_html__('Groove', 'king-addons'),
7161 + ],
7162 + 'default' => 'solid',
7163 + 'selectors' => [
7164 + '{{WRAPPER}} .king-addons-grid-sep-style-2 .inner-block > span' => 'border-bottom-style: {{VALUE}};',
7165 + ],
7166 + 'separator' => 'before',
7167 + ]
7168 + );
7169 +
7170 + $this->add_responsive_control(
7171 + 'separator2_margin',
7172 + [
7173 + 'label' => esc_html__('Margin', 'king-addons'),
7174 + 'type' => Controls_Manager::DIMENSIONS,
7175 + 'size_units' => ['px', '%'],
7176 + 'default' => [
7177 + 'top' => 15,
7178 + 'right' => 0,
7179 + 'bottom' => 15,
7180 + 'left' => 0,
7181 + ],
7182 + 'selectors' => [
7183 + '{{WRAPPER}} .king-addons-grid-sep-style-2 .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7184 + ],
7185 + 'render_type' => 'template',
7186 + ]
7187 + );
7188 +
7189 + $this->add_control(
7190 + 'separator2_radius',
7191 + [
7192 + 'label' => esc_html__('Border Radius', 'king-addons'),
7193 + 'type' => Controls_Manager::DIMENSIONS,
7194 + 'size_units' => ['px', '%'],
7195 + 'default' => [
7196 + 'top' => 0,
7197 + 'right' => 0,
7198 + 'bottom' => 0,
7199 + 'left' => 0,
7200 + ],
7201 + 'selectors' => [
7202 + '{{WRAPPER}} .king-addons-grid-sep-style-2 .inner-block > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7203 + ],
7204 + 'separator' => 'before',
7205 + ]
7206 + );
7207 +
7208 + $this->end_controls_section();
7209 +
7210 +
7211 + $this->start_controls_section(
7212 + 'section_style_tax1',
7213 + [
7214 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Taxonomy Style 1', 'king-addons'),
7215 + 'tab' => Controls_Manager::TAB_STYLE,
7216 + 'show_label' => false,
7217 + ]
7218 + );
7219 +
7220 + $this->start_controls_tabs('tabs_grid_tax1_style');
7221 +
7222 + $this->start_controls_tab(
7223 + 'tab_grid_tax1_normal',
7224 + [
7225 + 'label' => esc_html__('Normal', 'king-addons'),
7226 + ]
7227 + );
7228 +
7229 + $this->add_control(
7230 + 'tax1_color',
7231 + [
7232 + 'label' => esc_html__('Color', 'king-addons'),
7233 + 'type' => Controls_Manager::COLOR,
7234 + 'default' => '#9C9C9C',
7235 + 'selectors' => [
7236 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'color: {{VALUE}}',
7237 + ],
7238 + ]
7239 + );
7240 +
7241 + $this->add_control(
7242 + 'tax1_bg_color',
7243 + [
7244 + 'label' => esc_html__('Background Color', 'king-addons'),
7245 + 'type' => Controls_Manager::COLOR,
7246 + 'selectors' => [
7247 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'background-color: {{VALUE}}',
7248 + ]
7249 + ]
7250 + );
7251 +
7252 + $this->add_control(
7253 + 'tax1_border_color',
7254 + [
7255 + 'label' => esc_html__('Border Color', 'king-addons'),
7256 + 'type' => Controls_Manager::COLOR,
7257 + 'default' => '#E8E8E8',
7258 + 'selectors' => [
7259 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'border-color: {{VALUE}}',
7260 + ],
7261 + ]
7262 + );
7263 +
7264 + $this->add_control(
7265 + 'tax1_extra_text_color',
7266 + [
7267 + 'label' => esc_html__('Extra Text Color', 'king-addons'),
7268 + 'type' => Controls_Manager::COLOR,
7269 + 'default' => '#9C9C9C',
7270 + 'selectors' => [
7271 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block span[class*="king-addons-grid-extra-text"]' => 'color: {{VALUE}}',
7272 + ],
7273 + ]
7274 + );
7275 +
7276 + $this->add_control(
7277 + 'tax1_extra_icon_color',
7278 + [
7279 + 'label' => esc_html__('Extra Icon Color', 'king-addons'),
7280 + 'type' => Controls_Manager::COLOR,
7281 + 'default' => '#9C9C9C',
7282 + 'selectors' => [
7283 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block [class*="king-addons-grid-extra-icon"] i' => 'color: {{VALUE}}',
7284 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block [class*="king-addons-grid-extra-icon"] svg' => 'fill: {{VALUE}}'
7285 + ],
7286 + 'separator' => 'after',
7287 + ]
7288 + );
7289 +
7290 + $this->add_control_tax1_custom_colors($tax_meta_keys[1]);
7291 +
7292 + $this->end_controls_tab();
7293 +
7294 + $this->start_controls_tab(
7295 + 'tab_grid_tax1_hover',
7296 + [
7297 + 'label' => esc_html__('Hover', 'king-addons'),
7298 + ]
7299 + );
7300 +
7301 + $this->add_control(
7302 + 'tax1_color_hr',
7303 + [
7304 + 'label' => esc_html__('Color', 'king-addons'),
7305 + 'type' => Controls_Manager::COLOR,
7306 + 'default' => '#5B03FF',
7307 + 'selectors' => [
7308 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a:hover' => 'color: {{VALUE}}',
7309 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-pointer-item:before' => 'background-color: {{VALUE}}',
7310 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-pointer-item:after' => 'background-color: {{VALUE}}',
7311 + ],
7312 + ]
7313 + );
7314 +
7315 + $this->add_control(
7316 + 'tax1_bg_color_hr',
7317 + [
7318 + 'label' => esc_html__('Background Color', 'king-addons'),
7319 + 'type' => Controls_Manager::COLOR,
7320 + 'selectors' => [
7321 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a:hover' => 'background-color: {{VALUE}}',
7322 + ]
7323 + ]
7324 + );
7325 +
7326 + $this->add_control(
7327 + 'tax1_border_color_hr',
7328 + [
7329 + 'label' => esc_html__('Border Color', 'king-addons'),
7330 + 'type' => Controls_Manager::COLOR,
7331 + 'default' => '#E8E8E8',
7332 + 'selectors' => [
7333 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a:hover' => 'border-color: {{VALUE}}',
7334 + ],
7335 + ]
7336 + );
7337 +
7338 + $this->add_control_tax1_pointer_color_hr();
7339 +
7340 + $this->end_controls_tab();
7341 +
7342 + $this->end_controls_tabs();
7343 +
7344 + $this->add_control_tax1_pointer();
7345 +
7346 + $this->add_control_tax1_pointer_height();
7347 +
7348 + $this->add_control_tax1_pointer_animation();
7349 +
7350 + $this->add_control(
7351 + 'tax1_transition_duration',
7352 + [
7353 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
7354 + 'type' => Controls_Manager::NUMBER,
7355 + 'default' => 0.1,
7356 + 'min' => 0,
7357 + 'max' => 5,
7358 + 'step' => 0.1,
7359 + 'selectors' => [
7360 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'transition-duration: {{VALUE}}s',
7361 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-pointer-item:before' => 'transition-duration: {{VALUE}}s',
7362 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-pointer-item:after' => 'transition-duration: {{VALUE}}s',
7363 + ],
7364 + 'separator' => 'after',
7365 + ]
7366 + );
7367 +
7368 + $this->add_group_control(
7369 + Group_Control_Typography::get_type(),
7370 + [
7371 + 'name' => 'tax1_typography',
7372 + 'selector' => '{{WRAPPER}} .king-addons-grid-tax-style-1'
7373 + ]
7374 + );
7375 +
7376 + $this->add_control(
7377 + 'tax1_border_type',
7378 + [
7379 + 'label' => esc_html__('Border Type', 'king-addons'),
7380 + 'type' => Controls_Manager::SELECT,
7381 + 'options' => [
7382 + 'none' => esc_html__('None', 'king-addons'),
7383 + 'solid' => esc_html__('Solid', 'king-addons'),
7384 + 'double' => esc_html__('Double', 'king-addons'),
7385 + 'dotted' => esc_html__('Dotted', 'king-addons'),
7386 + 'dashed' => esc_html__('Dashed', 'king-addons'),
7387 + 'groove' => esc_html__('Groove', 'king-addons'),
7388 + ],
7389 + 'default' => 'none',
7390 + 'selectors' => [
7391 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'border-style: {{VALUE}};',
7392 + ],
7393 + 'render_type' => 'template',
7394 + 'separator' => 'before',
7395 + ]
7396 + );
7397 +
7398 + $this->add_control(
7399 + 'tax1_border_width',
7400 + [
7401 + 'label' => esc_html__('Border Width', 'king-addons'),
7402 + 'type' => Controls_Manager::DIMENSIONS,
7403 + 'size_units' => ['px'],
7404 + 'default' => [
7405 + 'top' => 1,
7406 + 'right' => 1,
7407 + 'bottom' => 1,
7408 + 'left' => 1,
7409 + ],
7410 + 'selectors' => [
7411 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7412 + ],
7413 + 'render_type' => 'template',
7414 + 'condition' => [
7415 + 'tax1_border_type!' => 'none',
7416 + ],
7417 + ]
7418 + );
7419 +
7420 + $this->add_control(
7421 + 'tax1_text_spacing',
7422 + [
7423 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
7424 + 'type' => Controls_Manager::SLIDER,
7425 + 'size_units' => ['px'],
7426 + 'range' => [
7427 + 'px' => [
7428 + 'min' => 0,
7429 + 'max' => 25,
7430 + ],
7431 + ],
7432 + 'default' => [
7433 + 'unit' => 'px',
7434 + 'size' => 5,
7435 + ],
7436 + 'selectors' => [
7437 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
7438 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
7439 + ],
7440 + 'render_type' => 'template',
7441 + 'separator' => 'before',
7442 + ]
7443 + );
7444 +
7445 + $this->add_control(
7446 + 'tax1_icon_spacing',
7447 + [
7448 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
7449 + 'type' => Controls_Manager::SLIDER,
7450 + 'size_units' => ['px'],
7451 + 'range' => [
7452 + 'px' => [
7453 + 'min' => 0,
7454 + 'max' => 25,
7455 + ],
7456 + ],
7457 + 'default' => [
7458 + 'unit' => 'px',
7459 + 'size' => 5,
7460 + ],
7461 + 'selectors' => [
7462 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
7463 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
7464 + ],
7465 + ]
7466 + );
7467 +
7468 + $this->add_control(
7469 + 'tax1_gutter',
7470 + [
7471 + 'label' => esc_html__('Gutter', 'king-addons'),
7472 + 'type' => Controls_Manager::SLIDER,
7473 + 'size_units' => ['px'],
7474 + 'range' => [
7475 + 'px' => [
7476 + 'min' => 0,
7477 + 'max' => 20,
7478 + ],
7479 + ],
7480 + 'default' => [
7481 + 'unit' => 'px',
7482 + 'size' => 3,
7483 + ],
7484 + 'selectors' => [
7485 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'margin-right: {{SIZE}}{{UNIT}};',
7486 + ],
7487 + 'render_type' => 'template',
7488 + 'separator' => 'before',
7489 + ]
7490 + );
7491 +
7492 + $this->add_responsive_control(
7493 + 'tax1_padding',
7494 + [
7495 + 'label' => esc_html__('Padding', 'king-addons'),
7496 + 'type' => Controls_Manager::DIMENSIONS,
7497 + 'size_units' => ['px', '%'],
7498 + 'default' => [
7499 + 'top' => 0,
7500 + 'right' => 0,
7501 + 'bottom' => 0,
7502 + 'left' => 0,
7503 + ],
7504 + 'selectors' => [
7505 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7506 + ],
7507 + 'render_type' => 'template',
7508 + ]
7509 + );
7510 +
7511 + $this->add_responsive_control(
7512 + 'tax1_margin',
7513 + [
7514 + 'label' => esc_html__('Margin', 'king-addons'),
7515 + 'type' => Controls_Manager::DIMENSIONS,
7516 + 'size_units' => ['px', '%'],
7517 + 'default' => [
7518 + 'top' => 0,
7519 + 'right' => 0,
7520 + 'bottom' => 0,
7521 + 'left' => 0,
7522 + ],
7523 + 'selectors' => [
7524 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7525 + ],
7526 + 'render_type' => 'template',
7527 + ]
7528 + );
7529 +
7530 + $this->add_control(
7531 + 'tax1_radius',
7532 + [
7533 + 'label' => esc_html__('Border Radius', 'king-addons'),
7534 + 'type' => Controls_Manager::DIMENSIONS,
7535 + 'size_units' => ['px', '%'],
7536 + 'default' => [
7537 + 'top' => 0,
7538 + 'right' => 0,
7539 + 'bottom' => 0,
7540 + 'left' => 0,
7541 + ],
7542 + 'selectors' => [
7543 + '{{WRAPPER}} .king-addons-grid-tax-style-1 .inner-block a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7544 + ],
7545 + 'separator' => 'before',
7546 + ]
7547 + );
7548 +
7549 + $this->end_controls_section();
7550 +
7551 +
7552 + $this->start_controls_section(
7553 + 'section_style_tax2',
7554 + [
7555 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Taxonomy Style 2', 'king-addons'),
7556 + 'tab' => Controls_Manager::TAB_STYLE,
7557 + 'show_label' => false,
7558 + ]
7559 + );
7560 +
7561 + $this->start_controls_tabs('tabs_grid_tax2_style');
7562 +
7563 + $this->start_controls_tab(
7564 + 'tab_grid_tax2_normal',
7565 + [
7566 + 'label' => esc_html__('Normal', 'king-addons'),
7567 + ]
7568 + );
7569 +
7570 + $this->add_control(
7571 + 'tax2_color',
7572 + [
7573 + 'label' => esc_html__('Color', 'king-addons'),
7574 + 'type' => Controls_Manager::COLOR,
7575 + 'default' => '#ffffff',
7576 + 'selectors' => [
7577 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'color: {{VALUE}}',
7578 + ],
7579 + ]
7580 + );
7581 +
7582 + $this->add_control(
7583 + 'tax2_bg_color',
7584 + [
7585 + 'label' => esc_html__('Background Color', 'king-addons'),
7586 + 'type' => Controls_Manager::COLOR,
7587 + 'default' => '#5B03FF',
7588 + 'selectors' => [
7589 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'background-color: {{VALUE}}',
7590 + ]
7591 + ]
7592 + );
7593 +
7594 + $this->add_control(
7595 + 'tax2_border_color',
7596 + [
7597 + 'label' => esc_html__('Border Color', 'king-addons'),
7598 + 'type' => Controls_Manager::COLOR,
7599 + 'default' => '#E8E8E8',
7600 + 'selectors' => [
7601 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'border-color: {{VALUE}}',
7602 + ],
7603 + ]
7604 + );
7605 +
7606 + $this->add_control(
7607 + 'tax2_extra_text_color',
7608 + [
7609 + 'label' => esc_html__('Extra Text Color', 'king-addons'),
7610 + 'type' => Controls_Manager::COLOR,
7611 + 'default' => '#9C9C9C',
7612 + 'selectors' => [
7613 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block span[class*="king-addons-grid-extra-text"]' => 'color: {{VALUE}}',
7614 + ],
7615 + ]
7616 + );
7617 +
7618 + $this->add_control(
7619 + 'tax2_extra_icon_color',
7620 + [
7621 + 'label' => esc_html__('Extra Icon Color', 'king-addons'),
7622 + 'type' => Controls_Manager::COLOR,
7623 + 'default' => '#9C9C9C',
7624 + 'selectors' => [
7625 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block [class*="king-addons-grid-extra-icon"] i' => 'color: {{VALUE}}',
7626 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block [class*="king-addons-grid-extra-icon"] svg' => 'fill: {{VALUE}}'
7627 + ],
7628 + 'separator' => 'after',
7629 + ]
7630 + );
7631 +
7632 + $this->end_controls_tab();
7633 +
7634 + $this->start_controls_tab(
7635 + 'tab_grid_tax2_hover',
7636 + [
7637 + 'label' => esc_html__('Hover', 'king-addons'),
7638 + ]
7639 + );
7640 +
7641 + $this->add_control(
7642 + 'tax2_color_hr',
7643 + [
7644 + 'label' => esc_html__('Color', 'king-addons'),
7645 + 'type' => Controls_Manager::COLOR,
7646 + 'default' => '#ffffff',
7647 + 'selectors' => [
7648 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a:hover' => 'color: {{VALUE}}',
7649 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-pointer-item:before' => 'background-color: {{VALUE}}',
7650 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-pointer-item:after' => 'background-color: {{VALUE}}',
7651 + ],
7652 + ]
7653 + );
7654 +
7655 + $this->add_control(
7656 + 'tax2_bg_color_hr',
7657 + [
7658 + 'label' => esc_html__('Background Color', 'king-addons'),
7659 + 'type' => Controls_Manager::COLOR,
7660 + 'default' => '#4D02D8',
7661 + 'selectors' => [
7662 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a:hover' => 'background-color: {{VALUE}}',
7663 + ]
7664 + ]
7665 + );
7666 +
7667 + $this->add_control(
7668 + 'tax2_border_color_hr',
7669 + [
7670 + 'label' => esc_html__('Border Color', 'king-addons'),
7671 + 'type' => Controls_Manager::COLOR,
7672 + 'default' => '#E8E8E8',
7673 + 'selectors' => [
7674 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a:hover' => 'border-color: {{VALUE}}',
7675 + ],
7676 + ]
7677 + );
7678 +
7679 + $this->add_control_tax2_pointer_color_hr();
7680 +
7681 + $this->end_controls_tab();
7682 +
7683 + $this->end_controls_tabs();
7684 +
7685 + $this->add_control_tax2_pointer();
7686 +
7687 + $this->add_control_tax2_pointer_height();
7688 +
7689 + $this->add_control_tax2_pointer_animation();
7690 +
7691 + $this->add_control(
7692 + 'tax2_transition_duration',
7693 + [
7694 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
7695 + 'type' => Controls_Manager::NUMBER,
7696 + 'default' => 0.1,
7697 + 'min' => 0,
7698 + 'max' => 5,
7699 + 'step' => 0.1,
7700 + 'selectors' => [
7701 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'transition-duration: {{VALUE}}s',
7702 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-pointer-item:before' => 'transition-duration: {{VALUE}}s',
7703 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-pointer-item:after' => 'transition-duration: {{VALUE}}s',
7704 + ],
7705 + 'separator' => 'after',
7706 + ]
7707 + );
7708 +
7709 + $this->add_group_control(
7710 + Group_Control_Typography::get_type(),
7711 + [
7712 + 'name' => 'tax2_typography',
7713 + 'selector' => '{{WRAPPER}} .king-addons-grid-tax-style-2'
7714 + ]
7715 + );
7716 +
7717 + $this->add_control(
7718 + 'tax2_border_type',
7719 + [
7720 + 'label' => esc_html__('Border Type', 'king-addons'),
7721 + 'type' => Controls_Manager::SELECT,
7722 + 'options' => [
7723 + 'none' => esc_html__('None', 'king-addons'),
7724 + 'solid' => esc_html__('Solid', 'king-addons'),
7725 + 'double' => esc_html__('Double', 'king-addons'),
7726 + 'dotted' => esc_html__('Dotted', 'king-addons'),
7727 + 'dashed' => esc_html__('Dashed', 'king-addons'),
7728 + 'groove' => esc_html__('Groove', 'king-addons'),
7729 + ],
7730 + 'default' => 'none',
7731 + 'selectors' => [
7732 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'border-style: {{VALUE}};',
7733 + ],
7734 + 'render_type' => 'template',
7735 + 'separator' => 'before',
7736 + ]
7737 + );
7738 +
7739 + $this->add_control(
7740 + 'tax2_border_width',
7741 + [
7742 + 'label' => esc_html__('Border Width', 'king-addons'),
7743 + 'type' => Controls_Manager::DIMENSIONS,
7744 + 'size_units' => ['px'],
7745 + 'default' => [
7746 + 'top' => 1,
7747 + 'right' => 1,
7748 + 'bottom' => 1,
7749 + 'left' => 1,
7750 + ],
7751 + 'selectors' => [
7752 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7753 + ],
7754 + 'render_type' => 'template',
7755 + 'condition' => [
7756 + 'tax2_border_type!' => 'none',
7757 + ],
7758 + ]
7759 + );
7760 +
7761 + $this->add_control(
7762 + 'tax2_text_spacing',
7763 + [
7764 + 'label' => esc_html__('Extra Text Spacing', 'king-addons'),
7765 + 'type' => Controls_Manager::SLIDER,
7766 + 'size_units' => ['px'],
7767 + 'range' => [
7768 + 'px' => [
7769 + 'min' => 0,
7770 + 'max' => 25,
7771 + ],
7772 + ],
7773 + 'default' => [
7774 + 'unit' => 'px',
7775 + 'size' => 5,
7776 + ],
7777 + 'selectors' => [
7778 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
7779 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
7780 + ],
7781 + 'separator' => 'before',
7782 + ]
7783 + );
7784 +
7785 + $this->add_control(
7786 + 'tax2_icon_spacing',
7787 + [
7788 + 'label' => esc_html__('Extra Icon Spacing', 'king-addons'),
7789 + 'type' => Controls_Manager::SLIDER,
7790 + 'size_units' => ['px'],
7791 + 'range' => [
7792 + 'px' => [
7793 + 'min' => 0,
7794 + 'max' => 25,
7795 + ],
7796 + ],
7797 + 'default' => [
7798 + 'unit' => 'px',
7799 + 'size' => 5,
7800 + ],
7801 + 'selectors' => [
7802 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
7803 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .king-addons-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
7804 + ],
7805 + ]
7806 + );
7807 +
7808 + $this->add_control(
7809 + 'tax2_gutter',
7810 + [
7811 + 'label' => esc_html__('Gutter', 'king-addons'),
7812 + 'type' => Controls_Manager::SLIDER,
7813 + 'size_units' => ['px'],
7814 + 'range' => [
7815 + 'px' => [
7816 + 'min' => 0,
7817 + 'max' => 20,
7818 + ],
7819 + ],
7820 + 'default' => [
7821 + 'unit' => 'px',
7822 + 'size' => 3,
7823 + ],
7824 + 'selectors' => [
7825 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'margin-right: {{SIZE}}{{UNIT}};',
7826 + ],
7827 + 'render_type' => 'template',
7828 + 'separator' => 'before',
7829 + ]
7830 + );
7831 +
7832 + $this->add_responsive_control(
7833 + 'tax2_padding',
7834 + [
7835 + 'label' => esc_html__('Padding', 'king-addons'),
7836 + 'type' => Controls_Manager::DIMENSIONS,
7837 + 'size_units' => ['px', '%'],
7838 + 'default' => [
7839 + 'top' => 0,
7840 + 'right' => 10,
7841 + 'bottom' => 0,
7842 + 'left' => 10,
7843 + ],
7844 + 'selectors' => [
7845 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7846 + ],
7847 + 'render_type' => 'template',
7848 + ]
7849 + );
7850 +
7851 + $this->add_responsive_control(
7852 + 'tax2_margin',
7853 + [
7854 + 'label' => esc_html__('Margin', 'king-addons'),
7855 + 'type' => Controls_Manager::DIMENSIONS,
7856 + 'size_units' => ['px', '%'],
7857 + 'default' => [
7858 + 'top' => 0,
7859 + 'right' => 0,
7860 + 'bottom' => 0,
7861 + 'left' => 0,
7862 + ],
7863 + 'selectors' => [
7864 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7865 + ],
7866 + 'render_type' => 'template',
7867 + ]
7868 + );
7869 +
7870 + $this->add_control(
7871 + 'tax2_radius',
7872 + [
7873 + 'label' => esc_html__('Border Radius', 'king-addons'),
7874 + 'type' => Controls_Manager::DIMENSIONS,
7875 + 'size_units' => ['px', '%'],
7876 + 'default' => [
7877 + 'top' => 3,
7878 + 'right' => 3,
7879 + 'bottom' => 3,
7880 + 'left' => 3,
7881 + ],
7882 + 'selectors' => [
7883 + '{{WRAPPER}} .king-addons-grid-tax-style-2 .inner-block a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
7884 + ],
7885 + 'separator' => 'before',
7886 + ]
7887 + );
7888 +
7889 + $this->end_controls_section();
7890 +
7891 +
7892 + $this->add_section_style_custom_field1();
7893 +
7894 +
7895 + $this->add_section_style_custom_field2();
7896 +
7897 +
7898 + $this->add_section_style_custom_field3();
7899 +
7900 +
7901 + $this->add_section_style_custom_field4();
7902 +
7903 +
7904 + $this->start_controls_section(
7905 + 'settings_section_style_grid_slider_nav',
7906 + [
7907 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Slider Navigation', 'king-addons'),
7908 + 'tab' => Controls_Manager::TAB_STYLE,
7909 + 'condition' => [
7910 + 'layout_select' => 'slider',
7911 + ],
7912 + ]
7913 + );
7914 +
7915 + $this->start_controls_tabs('tabs_grid_slider_nav_style');
7916 +
7917 + $this->start_controls_tab(
7918 + 'tab_grid_slider_nav_normal',
7919 + [
7920 + 'label' => esc_html__('Normal', 'king-addons'),
7921 + ]
7922 + );
7923 +
7924 + $this->add_control(
7925 + 'grid_slider_nav_color',
7926 + [
7927 + 'label' => esc_html__('Color', 'king-addons'),
7928 + 'type' => Controls_Manager::COLOR,
7929 + 'default' => '#5B03FF',
7930 + 'selectors' => [
7931 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'color: {{VALUE}};',
7932 + '{{WRAPPER}} .king-addons-grid-slider-arrow svg' => 'fill: {{VALUE}};',
7933 + ],
7934 + ]
7935 + );
7936 +
7937 + $this->add_control(
7938 + 'grid_slider_nav_bg_color',
7939 + [
7940 + 'label' => esc_html__('Background Color', 'king-addons'),
7941 + 'type' => Controls_Manager::COLOR,
7942 + 'selectors' => [
7943 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'background-color: {{VALUE}};',
7944 + ],
7945 + ]
7946 + );
7947 +
7948 + $this->add_control(
7949 + 'grid_slider_nav_border_color',
7950 + [
7951 + 'label' => esc_html__('Border Color', 'king-addons'),
7952 + 'type' => Controls_Manager::COLOR,
7953 + 'default' => 'rgba(255,255,255,0.8)',
7954 + 'selectors' => [
7955 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'border-color: {{VALUE}};',
7956 + ],
7957 + ]
7958 + );
7959 +
7960 + $this->end_controls_tab();
7961 +
7962 + $this->start_controls_tab(
7963 + 'tab_grid_slider_nav_hover',
7964 + [
7965 + 'label' => esc_html__('Hover', 'king-addons'),
7966 + ]
7967 + );
7968 +
7969 + $this->add_control(
7970 + 'grid_slider_nav_hover_color',
7971 + [
7972 + 'label' => esc_html__('Color', 'king-addons'),
7973 + 'type' => Controls_Manager::COLOR,
7974 + 'default' => '#4D02D8',
7975 + 'selectors' => [
7976 + '{{WRAPPER}} .king-addons-grid-slider-arrow:hover' => 'color: {{VALUE}};',
7977 + '{{WRAPPER}} .king-addons-grid-slider-arrow:hover svg' => 'fill: {{VALUE}};',
7978 + ],
7979 + ]
7980 + );
7981 +
7982 + $this->add_control(
7983 + 'grid_slider_nav_hover_bg_color',
7984 + [
7985 + 'label' => esc_html__('Background Color', 'king-addons'),
7986 + 'type' => Controls_Manager::COLOR,
7987 + 'selectors' => [
7988 + '{{WRAPPER}} .king-addons-grid-slider-arrow:hover' => 'background-color: {{VALUE}};',
7989 + ],
7990 + ]
7991 + );
7992 +
7993 + $this->add_control(
7994 + 'grid_slider_nav_hover_border_color',
7995 + [
7996 + 'label' => esc_html__('Border Color', 'king-addons'),
7997 + 'type' => Controls_Manager::COLOR,
7998 + 'selectors' => [
7999 + '{{WRAPPER}} .king-addons-grid-slider-arrow:hover' => 'border-color: {{VALUE}};',
8000 + ],
8001 + ]
8002 + );
8003 +
8004 + $this->end_controls_tab();
8005 +
8006 + $this->end_controls_tabs();
8007 +
8008 + $this->add_control(
8009 + 'grid_slider_nav_transition_duration',
8010 + [
8011 + 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
8012 + 'type' => Controls_Manager::NUMBER,
8013 + 'default' => 0.1,
8014 + 'min' => 0,
8015 + 'max' => 5,
8016 + 'step' => 0.1,
8017 + 'selectors' => [
8018 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'transition-duration: {{VALUE}}s',
8019 + '{{WRAPPER}} .king-addons-grid-slider-arrow svg' => 'transition-duration: {{VALUE}}s',
8020 + ],
8021 + 'separator' => 'before',
8022 + ]
8023 + );
8024 +
8025 + $this->add_responsive_control(
8026 + 'grid_slider_nav_font_size',
8027 + [
8028 + 'label' => esc_html__('Font Size', 'king-addons'),
8029 + 'type' => Controls_Manager::SLIDER,
8030 + 'size_units' => ['px',],
8031 + 'range' => [
8032 + 'px' => [
8033 + 'min' => 10,
8034 + 'max' => 200,
8035 + ],
8036 + ],
8037 + 'default' => [
8038 + 'unit' => 'px',
8039 + 'size' => 25,
8040 + ],
8041 + 'selectors' => [
8042 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'font-size: {{SIZE}}{{UNIT}};',
8043 + '{{WRAPPER}} .king-addons-grid-slider-arrow svg' => 'width: {{SIZE}}{{UNIT}};',
8044 + ],
8045 + 'separator' => 'before',
8046 + ]
8047 + );
8048 +
8049 + $this->add_responsive_control(
8050 + 'grid_slider_nav_size',
8051 + [
8052 + 'label' => esc_html__('Box Size', 'king-addons'),
8053 + 'type' => Controls_Manager::SLIDER,
8054 + 'size_units' => ['px',],
8055 + 'range' => [
8056 + 'px' => [
8057 + 'min' => 10,
8058 + 'max' => 200,
8059 + ],
8060 + ],
8061 + 'default' => [
8062 + 'unit' => 'px',
8063 + 'size' => 60,
8064 + ],
8065 + 'selectors' => [
8066 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
8067 + ],
8068 + 'separator' => 'after',
8069 + ]
8070 + );
8071 +
8072 + $this->add_control(
8073 + 'grid_slider_nav_border_type',
8074 + [
8075 + 'label' => esc_html__('Border Type', 'king-addons'),
8076 + 'type' => Controls_Manager::SELECT,
8077 + 'options' => [
8078 + 'none' => esc_html__('None', 'king-addons'),
8079 + 'solid' => esc_html__('Solid', 'king-addons'),
8080 + 'double' => esc_html__('Double', 'king-addons'),
8081 + 'dotted' => esc_html__('Dotted', 'king-addons'),
8082 + 'dashed' => esc_html__('Dashed', 'king-addons'),
8083 + 'groove' => esc_html__('Groove', 'king-addons'),
8084 + ],
8085 + 'default' => 'none',
8086 + 'selectors' => [
8087 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'border-style: {{VALUE}};',
8088 + ],
8089 + ]
8090 + );
8091 +
8092 + $this->add_control(
8093 + 'grid_slider_nav_border_width',
8094 + [
8095 + 'label' => esc_html__('Border Width', 'king-addons'),
8096 + 'type' => Controls_Manager::DIMENSIONS,
8097 + 'size_units' => ['px'],
8098 + 'default' => [
8099 + 'top' => 2,
8100 + 'right' => 2,
8101 + 'bottom' => 2,
8102 + 'left' => 2,
8103 + ],
8104 + 'selectors' => [
8105 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
8106 + ],
8107 + 'condition' => [
8108 + 'grid_slider_nav_border_type!' => 'none',
8109 + ],
8110 + ]
8111 + );
8112 +
8113 + $this->add_control(
8114 + 'grid_slider_nav_border_radius',
8115 + [
8116 + 'label' => esc_html__('Border Radius', 'king-addons'),
8117 + 'type' => Controls_Manager::DIMENSIONS,
8118 + 'size_units' => ['px', '%'],
8119 + 'selectors' => [
8120 + '{{WRAPPER}} .king-addons-grid-slider-arrow' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
8121 + ],
8122 + 'separator' => 'after',
8123 + ]
8124 + );
8125 +
8126 + $this->add_control_stack_grid_slider_nav_position();
8127 +
8128 + $this->end_controls_section();
8129 +
8130 +
8131 + $this->start_controls_section(
8132 + 'settings_section_style_grid_slider_dots',
8133 + [
8134 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Slider Pagination', 'king-addons'),
8135 + 'tab' => Controls_Manager::TAB_STYLE,
8136 + 'condition' => [
8137 + 'layout_select' => 'slider',
8138 + ],
8139 + ]
8140 + );
8141 +
8142 + $this->start_controls_tabs('tabs_grid_slider_dots');
8143 +
8144 + $this->start_controls_tab(
8145 + 'tab_grid_slider_dots_normal',
8146 + [
8147 + 'label' => esc_html__('Normal', 'king-addons'),
8148 + ]
8149 + );
8150 +
8151 + $this->add_control(
8152 + 'grid_slider_dots_bg_color',
8153 + [
8154 + 'label' => esc_html__('Background Color', 'king-addons'),
8155 + 'type' => Controls_Manager::COLOR,
8156 + 'default' => 'rgba(0,0,0,0.35)',
8157 + 'selectors' => [
8158 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'background-color: {{VALUE}};',
8159 + ],
8160 + ]
8161 + );
8162 +
8163 + $this->add_control(
8164 + 'grid_slider_dots_border_color',
8165 + [
8166 + 'label' => esc_html__('Border Color', 'king-addons'),
8167 + 'type' => Controls_Manager::COLOR,
8168 + 'selectors' => [
8169 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'border-color: {{VALUE}}',
8170 + ],
8171 + ]
8172 + );
8173 +
8174 + $this->end_controls_tab();
8175 +
8176 + $this->start_controls_tab(
8177 + 'tab_grid_slider_dots_active',
8178 + [
8179 + 'label' => esc_html__('Active', 'king-addons'),
8180 + ]
8181 + );
8182 +
8183 + $this->add_control(
8184 + 'grid_slider_dots_active_bg_color',
8185 + [
8186 + 'label' => esc_html__('Background Color', 'king-addons'),
8187 + 'type' => Controls_Manager::COLOR,
8188 + 'default' => '#5B03FF',
8189 + 'selectors' => [
8190 + '{{WRAPPER}} .king-addons-grid-slider-dots .slick-active .king-addons-grid-slider-dot' => 'background-color: {{VALUE}}',
8191 + ],
8192 + ]
8193 + );
8194 +
8195 + $this->add_control(
8196 + 'grid_slider_dots_active_border_color',
8197 + [
8198 + 'label' => esc_html__('Border Color', 'king-addons'),
8199 + 'type' => Controls_Manager::COLOR,
8200 + 'selectors' => [
8201 + '{{WRAPPER}} .king-addons-grid-slider-dots .slick-active .king-addons-grid-slider-dot' => 'border-color: {{VALUE}}',
8202 + ],
8203 + ]
8204 + );
8205 +
8206 + $this->end_controls_tab();
8207 +
8208 + $this->end_controls_tabs();
8209 +
8210 + $this->add_responsive_control(
8211 + 'grid_slider_dots_width',
8212 + [
8213 + 'label' => esc_html__('Box Width', 'king-addons'),
8214 + 'type' => Controls_Manager::SLIDER,
8215 + 'size_units' => ['px',],
8216 + 'range' => [
8217 + 'px' => [
8218 + 'min' => 1,
8219 + 'max' => 100,
8220 + ],
8221 + ],
8222 + 'default' => [
8223 + 'unit' => 'px',
8224 + 'size' => 8,
8225 + ],
8226 + 'selectors' => [
8227 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'width: {{SIZE}}{{UNIT}};',
8228 + ],
8229 + 'separator' => 'before',
8230 + 'render_type' => 'template'
8231 + ]
8232 + );
8233 +
8234 + $this->add_responsive_control(
8235 + 'grid_slider_dots_height',
8236 + [
8237 + 'label' => esc_html__('Box Height', 'king-addons'),
8238 + 'type' => Controls_Manager::SLIDER,
8239 + 'size_units' => ['px',],
8240 + 'range' => [
8241 + 'px' => [
8242 + 'min' => 1,
8243 + 'max' => 100,
8244 + ],
8245 + ],
8246 + 'default' => [
8247 + 'unit' => 'px',
8248 + 'size' => 8,
8249 + ],
8250 + 'selectors' => [
8251 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'height: {{SIZE}}{{UNIT}};',
8252 + ],
8253 + 'render_type' => 'template'
8254 + ]
8255 + );
8256 +
8257 + $this->add_control(
8258 + 'grid_slider_dots_border_type',
8259 + [
8260 + 'label' => esc_html__('Border Type', 'king-addons'),
8261 + 'type' => Controls_Manager::SELECT,
8262 + 'options' => [
8263 + 'none' => esc_html__('None', 'king-addons'),
8264 + 'solid' => esc_html__('Solid', 'king-addons'),
8265 + 'double' => esc_html__('Double', 'king-addons'),
8266 + 'dotted' => esc_html__('Dotted', 'king-addons'),
8267 + 'dashed' => esc_html__('Dashed', 'king-addons'),
8268 + 'groove' => esc_html__('Groove', 'king-addons'),
8269 + ],
8270 + 'default' => 'none',
8271 + 'selectors' => [
8272 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'border-style: {{VALUE}};',
8273 + ],
8274 + 'render_type' => 'template',
8275 + 'separator' => 'before',
8276 + ]
8277 + );
8278 +
8279 + $this->add_control(
8280 + 'grid_slider_dots_border_width',
8281 + [
8282 + 'label' => esc_html__('Border Width', 'king-addons'),
8283 + 'type' => Controls_Manager::DIMENSIONS,
8284 + 'size_units' => ['px'],
8285 + 'default' => [
8286 + 'top' => 1,
8287 + 'right' => 1,
8288 + 'bottom' => 1,
8289 + 'left' => 1,
8290 + ],
8291 + 'selectors' => [
8292 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
8293 + ],
8294 + 'render_type' => 'template',
8295 + 'condition' => [
8296 + 'grid_slider_dots_border_type!' => 'none',
8297 + ],
8298 + ]
8299 + );
8300 +
8301 + $this->add_control(
8302 + 'grid_slider_dots_border_radius',
8303 + [
8304 + 'label' => esc_html__('Border Radius', 'king-addons'),
8305 + 'type' => Controls_Manager::DIMENSIONS,
8306 + 'default' => [
8307 + 'top' => 50,
8308 + 'right' => 50,
8309 + 'bottom' => 50,
8310 + 'left' => 50,
8311 + 'unit' => '%',
8312 + ],
8313 + 'size_units' => ['px', '%'],
8314 + 'selectors' => [
8315 + '{{WRAPPER}} .king-addons-grid-slider-dot' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
8316 + ],
8317 + 'separator' => 'before',
8318 + ]
8319 + );
8320 +
8321 + $this->add_responsive_control(
8322 + 'grid_slider_dots_gutter',
8323 + [
8324 + 'type' => Controls_Manager::SLIDER,
8325 + 'label' => esc_html__('Gutter', 'king-addons'),
8326 + 'size_units' => ['px'],
8327 + 'range' => [
8328 + 'px' => [
8329 + 'min' => 0,
8330 + 'max' => 100,
8331 + ],
8332 + ],
8333 + 'default' => [
8334 + 'unit' => 'px',
8335 + 'size' => 7,
8336 + ],
8337 + 'selectors' => [
8338 + '{{WRAPPER}}.king-addons-grid-slider-dots-horizontal .king-addons-grid-slider-dot' => 'margin-right: {{SIZE}}{{UNIT}};',
8339 + '{{WRAPPER}}.king-addons-grid-slider-dots-vertical .king-addons-grid-slider-dot' => 'margin-bottom: {{SIZE}}{{UNIT}};',
8340 + ],
8341 + 'render_type' => 'template',
8342 + 'separator' => 'before',
8343 + ]
8344 + );
8345 +
8346 + $this->add_control_grid_slider_dots_hr();
8347 +
8348 + $this->add_responsive_control(
8349 + 'grid_slider_dots_vr',
8350 + [
8351 + 'type' => Controls_Manager::SLIDER,
8352 + 'label' => esc_html__('Vertical Position', 'king-addons'),
8353 + 'size_units' => ['%', 'px'],
8354 + 'range' => [
8355 + '%' => [
8356 + 'min' => -20,
8357 + 'max' => 120,
8358 + ],
8359 + 'px' => [
8360 + 'min' => -200,
8361 + 'max' => 2000,
8362 + ],
8363 + ],
8364 + 'default' => [
8365 + 'unit' => '%',
8366 + 'size' => 96,
8367 + ],
8368 + 'selectors' => [
8369 + '{{WRAPPER}} .king-addons-grid-slider-dots' => 'top: {{SIZE}}{{UNIT}};',
8370 + ],
8371 + ]
8372 + );
8373 +
8374 + $this->end_controls_section();
8375 +
8376 + }
8377 +
8378 + public function get_related_taxonomies()
8379 + {
8380 + $post_types = Core::getCustomTypes('post', false);
8381 + $relations = [];
8382 +
8383 + // Simply assign the array returned by get_object_taxonomies() to avoid extra loops
8384 + foreach ($post_types as $slug => $title) {
8385 + $relations[$slug] = get_object_taxonomies($slug);
8386 + }
8387 +
8388 + return json_encode($relations);
8389 + }
8390 +
8391 + public function get_max_num_pages()
8392 + {
8393 + $query = new WP_Query($this->get_main_query_args());
8394 + $max_num_pages = (int)ceil($query->max_num_pages);
8395 + wp_reset_postdata();
8396 + return $max_num_pages;
8397 + }
8398 +
8399 + public function get_main_query_args()
8400 + {
8401 + $settings = Core::displaySettings($this);
8402 +
8403 + // Detect paged
8404 + $paged = get_query_var('paged') ?: (get_query_var('page') ?: 1);
8405 +
8406 + // Build author string if needed
8407 + $author = !empty($settings['query_author']) ? implode(',', $settings['query_author']) : '';
8408 +
8409 + // Adjust posts_per_page for slider (premium check)
8410 + if (
8411 + 'slider' === $settings['layout_select'] &&
8412 + king_addons_freemius()->can_use_premium_code__premium_only()
8413 + ) {
8414 + $slidesToShow = $settings['query_slides_to_show'] ?: -1;
8415 + $settings['query_posts_per_page'] = min($slidesToShow, 4);
8416 + }
8417 +
8418 + // Slider forces paged to 1
8419 + if ('slider' === $settings['layout_select']) {
8420 + $paged = 1;
8421 + }
8422 +
8423 + // Ensure offset is set
8424 + $settings['query_offset'] = $settings['query_offset'] ?? 0;
8425 +
8426 + // Calculate offset
8427 + $postsPerPage = $settings['query_posts_per_page'] ?? 0;
8428 + if (empty($postsPerPage) && !(
8429 + 'slider' === $settings['layout_select'] &&
8430 + king_addons_freemius()->can_use_premium_code__premium_only()
8431 + )) {
8432 + $postsPerPage = 999;
8433 + }
8434 +
8435 + $offset = ($paged - 1) * (int)$postsPerPage + (int)$settings['query_offset'];
8436 +
8437 + // If premium not available, reset certain settings
8438 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
8439 + $settings['query_randomize'] = '';
8440 + $settings['order_posts'] = 'date';
8441 + }
8442 +
8443 + // Determine "orderby"
8444 + $query_order_by = !empty($settings['query_randomize'])
8445 + ? $settings['query_randomize']
8446 + : $settings['order_posts'];
8447 +
8448 + // Determine excluded posts array
8449 + $excludeKey = 'query_exclude_' . $settings['query_source'];
8450 + $post__not_in = !empty($settings[$excludeKey]) ? $settings[$excludeKey] : [];
8451 +
8452 + // Default query args
8453 + $args = [
8454 + 'post_type' => $settings['query_source'],
8455 + 'tax_query' => $this->get_tax_query_args(),
8456 + 'post__not_in' => $post__not_in,
8457 + 'posts_per_page' => $postsPerPage,
8458 + 'orderby' => $query_order_by,
8459 + 'author' => $author,
8460 + 'paged' => $paged,
8461 + 'offset' => $offset,
8462 + ];
8463 +
8464 + // Handle meta_value ordering
8465 + if ('meta_value' === $query_order_by) {
8466 + $args['meta_key'] = $settings['order_posts_by_acf'];
8467 + }
8468 +
8469 + // Handle scheduled/future posts
8470 + $args['post_status'] = (
8471 + 'yes' === $settings['display_scheduled_posts'] &&
8472 + king_addons_freemius()->can_use_premium_code__premium_only()
8473 + )
8474 + ? 'future'
8475 + : 'publish';
8476 +
8477 + // Exclude posts with no thumbnail if requested
8478 + if ('yes' === $settings['query_exclude_no_images']) {
8479 + $args['meta_key'] = '_thumbnail_id';
8480 + }
8481 +
8482 + // MANUAL selection overrides everything else
8483 + if ('manual' === $settings['query_selection']) {
8484 + $manualKey = 'query_manual_' . $settings['query_source'];
8485 + $post_ids = !empty($settings[$manualKey]) ? $settings[$manualKey] : [''];
8486 +
8487 + $args = [
8488 + 'post_type' => $settings['query_source'],
8489 + 'post__in' => $post_ids,
8490 + 'ignore_sticky_posts' => 1,
8491 + 'posts_per_page' => $postsPerPage,
8492 + 'orderby' => $query_order_by,
8493 + 'paged' => $paged,
8494 + ];
8495 + }
8496 +
8497 + // "CURRENT" uses global $wp_query
8498 + if ('current' === $settings['query_source']) {
8499 + global $wp_query;
8500 + $args = $wp_query->query_vars;
8501 + $args['orderby'] = $query_order_by;
8502 +
8503 + if (is_post_type_archive()) {
8504 + $args['posts_per_page'] = (int)get_option('king_addons_cpt_ppp_' . $args['post_type'], 10);
8505 + } else {
8506 + $args['posts_per_page'] = (int)get_option('posts_per_page');
8507 + }
8508 +
8509 + $args['offset'] = ($paged - 1) * $args['posts_per_page'] + (int)$settings['query_offset'];
8510 +
8511 + // Build a small tax_query if categories are passed in GET
8512 + $tax_query = [];
8513 + foreach (['category', 'king_addons_select_category'] as $catParam) {
8514 + if (!empty($_GET[$catParam]) && $_GET[$catParam] !== '0') {
8515 + $tax_query[] = [
8516 + 'taxonomy' => 'category',
8517 + 'field' => 'id',
8518 + 'terms' => sanitize_text_field($_GET[$catParam]),
8519 + ];
8520 + }
8521 + }
8522 + if (!empty($tax_query)) {
8523 + $args['tax_query'] = $tax_query;
8524 + }
8525 + }
8526 +
8527 + // "RELATED" posts
8528 + if ('related' === $settings['query_source']) {
8529 + $args = [
8530 + 'post_type' => get_post_type(get_the_ID()),
8531 + 'tax_query' => $this->get_tax_query_args(),
8532 + 'post__not_in' => [get_the_ID()],
8533 + 'ignore_sticky_posts' => 1,
8534 + 'posts_per_page' => $postsPerPage,
8535 + 'orderby' => $query_order_by,
8536 + 'offset' => $offset,
8537 + ];
8538 + }
8539 +
8540 + // Order direction (unless random)
8541 + if ('rand' !== $query_order_by) {
8542 + $args['order'] = $settings['order_direction'];
8543 + }
8544 +
8545 + return $args;
8546 + }
8547 +
8548 + public function get_tax_query_args()
8549 + {
8550 + $settings = Core::displaySettings($this);
8551 +
8552 + // "RELATED" means match the same terms as current post in a chosen taxonomy
8553 + if ('related' === $settings['query_source']) {
8554 + return [[
8555 + 'taxonomy' => $settings['query_tax_selection'],
8556 + 'field' => 'term_id',
8557 + 'terms' => wp_get_object_terms(
8558 + get_the_ID(),
8559 + $settings['query_tax_selection'],
8560 + ['fields' => 'ids']
8561 + ),
8562 + ]];
8563 + }
8564 +
8565 + // Otherwise, gather chosen taxonomies
8566 + $tax_query = [];
8567 + $taxonomies = get_object_taxonomies($settings['query_source']);
8568 +
8569 + foreach ($taxonomies as $tax) {
8570 + $fieldKey = 'query_taxonomy_' . $tax;
8571 + if (!empty($settings[$fieldKey])) {
8572 + $tax_query[] = [
8573 + 'taxonomy' => $tax,
8574 + 'field' => 'id',
8575 + 'terms' => $settings[$fieldKey],
8576 + ];
8577 + }
8578 + }
8579 + return $tax_query;
8580 + }
8581 +
8582 + public function get_animation_class($data, $object)
8583 + {
8584 + // Disable if mobile + disable-mobile setting
8585 + if (
8586 + 'overlay' !== $object &&
8587 + 'yes' === ($data[$object . '_animation_disable_mobile'] ?? '') &&
8588 + wp_is_mobile()
8589 + ) {
8590 + return '';
8591 + }
8592 +
8593 + $class = '';
8594 + $anim = $data[$object . '_animation'] ?? 'none';
8595 +
8596 + if ('none' !== $anim) {
8597 + $class .= ' king-addons-' . $object . '-' . $anim;
8598 + $class .= ' king-addons-anim-size-' . ($data[$object . '_animation_size'] ?? '');
8599 + $class .= ' king-addons-animation-timing-' . ($data[$object . '_animation_timing'] ?? '');
8600 + if ('yes' === ($data[$object . '_animation_tr'] ?? '')) {
8601 + $class .= ' king-addons-anim-transparency';
8602 + }
8603 + }
8604 + return $class;
8605 + }
8606 +
8607 + public function get_image_effect_class($settings)
8608 + {
8609 + // Restrict effects if premium not available
8610 + if (
8611 + !king_addons_freemius()->can_use_premium_code__premium_only() &&
8612 + in_array($settings['image_effects'], ['pro-zi', 'pro-zo', 'pro-go', 'pro-bo'])
8613 + ) {
8614 + $settings['image_effects'] = 'none';
8615 + }
8616 +
8617 + $class = '';
8618 + $effect = $settings['image_effects'] ?? 'none';
8619 +
8620 + if ('none' !== $effect) {
8621 + $class .= ' king-addons-' . $effect;
8622 + }
8623 +
8624 + // For 'slide' vs other effect directions
8625 + if ('slide' !== $effect) {
8626 + $class .= ' king-addons-effect-size-' . ($settings['image_effects_size'] ?? '');
8627 + } else {
8628 + $class .= ' king-addons-effect-dir-' . ($settings['image_effects_direction'] ?? '');
8629 + }
8630 +
8631 + return $class;
8632 + }
8633 +
8634 + public function render_password_protected_input()
8635 + {
8636 + if (!post_password_required()) {
8637 + return;
8638 + }
8639 +
8640 + add_filter('the_password_form', function () {
8641 + $output = '<form action="' . esc_url(home_url('wp-login.php?action=postpass')) . '" method="post">';
8642 + $output .= '<i class="fas fa-lock"></i>';
8643 + $output .= '<p>' . esc_html(get_the_title()) . '</p>';
8644 + $output .= '<input type="password" name="post_password" id="post-' . esc_attr(get_the_id()) . '" placeholder="' . esc_html__('Type and hit Enter...', 'king-addons') . '">';
8645 + $output .= '</form>';
8646 + return $output;
8647 + });
8648 +
8649 + echo '<div class="king-addons-grid-item-protected king-addons-cv-container">';
8650 + echo ' <div class="king-addons-cv-outer">';
8651 + echo ' <div class="king-addons-cv-inner">';
8652 + echo get_the_password_form();
8653 + echo ' </div>';
8654 + echo ' </div>';
8655 + echo '</div>';
8656 + }
8657 +
8658 + public function render_post_thumbnail($settings)
8659 + {
8660 + $id = get_post_thumbnail_id();
8661 + $src = Group_Control_Image_Size::get_attachment_image_src($id, 'layout_image_crop', $settings);
8662 +
8663 + // A post with no featured image would otherwise drop the whole media block,
8664 + // and the cards beside it in the row would no longer line up.
8665 + if (!$src) {
8666 + $src = Utils::get_placeholder_image_src();
8667 + }
8668 +
8669 + // Secondary image
8670 + $sec_meta = get_post_meta(get_the_ID(), 'king_addons_secondary_image_id', true);
8671 + $src2 = !empty($sec_meta)
8672 + ? Group_Control_Image_Size::get_attachment_image_src($sec_meta, 'layout_image_crop', $settings)
8673 + : '';
8674 +
8675 + // Determine alt
8676 + $alt = '' === wp_get_attachment_caption($id)
8677 + ? get_the_title()
8678 + : wp_get_attachment_caption($id);
8679 +
8680 + echo '<div class="king-addons-grid-image-wrap" data-src="' . esc_url($src) . '" data-img-on-hover="' . esc_attr($settings['secondary_img_on_hover']) . '" data-src-secondary="' . esc_url($src2) . '">';
8681 +
8682 + // Lazy loading vs normal
8683 + /** @noinspection PhpIfWithCommonPartsInspection */
8684 + if ('yes' === $settings['grid_lazy_loading']) {
8685 + echo '<img loading="lazy" src="'.esc_url($src).'"
8686 + alt="' . esc_attr($alt) . '" class="king-addons-hidden-image king-addons-animation-timing-' . esc_attr($settings['image_effects_animation_timing']) . '">';
8687 + if ('yes' === $settings['secondary_img_on_hover']) {
8688 + echo '<img src="' . esc_url($src2) . '" alt="' . esc_attr($alt) . '" class="king-addons-hidden-img king-addons-animation-timing-' . esc_attr($settings['image_effects_animation_timing']) . '">';
8689 + }
8690 + } else {
8691 + echo '<img src="' . esc_url($src) . '" alt="' . esc_attr($alt) . '" class="king-addons-animation-timing-' . esc_attr($settings['image_effects_animation_timing']) . '">';
8692 + if ('yes' === $settings['secondary_img_on_hover']) {
8693 + echo '<img src="' . esc_url($src2) . '" alt="' . esc_attr($alt) . '" class="king-addons-hidden-img king-addons-animation-timing-' . esc_attr($settings['image_effects_animation_timing']) . '">';
8694 + }
8695 + }
8696 + echo '</div>';
8697 + }
8698 +
8699 + public function render_media_overlay($settings)
8700 + {
8701 + echo '<div class="king-addons-grid-media-hover-bg ' . esc_attr($this->get_animation_class($settings, 'overlay')) . '" data-url="' . esc_url(get_the_permalink()) . '">';
8702 + if (king_addons_freemius()->can_use_premium_code__premium_only() && !empty($settings['overlay_image']['url'])) {
8703 + echo '<img src="' . esc_url($settings['overlay_image']['url']) . '" alt="' . esc_attr($settings['overlay_image']['alt']) . '">';
8704 + }
8705 + echo '</div>';
8706 + }
8707 +
8708 + public function render_post_title($settings, $class)
8709 + {
8710 + // Fallback pointer for non-premium
8711 + $title_pointer = king_addons_freemius()->can_use_premium_code__premium_only()
8712 + ? (Core::displaySettings($this)['title_pointer'] ?? 'none')
8713 + : 'none';
8714 + $title_pointer_animation = king_addons_freemius()->can_use_premium_code__premium_only()
8715 + ? (Core::displaySettings($this)['title_pointer_animation'] ?? 'fade')
8716 + : 'fade';
8717 +
8718 + $pointer_item_class = ($title_pointer !== 'none')
8719 + ? 'class="king-addons-pointer-item"'
8720 + : '';
8721 +
8722 + $new_tab = ('yes' === Core::displaySettings($this)['open_links_in_new_tab']) ? '_blank' : '_self';
8723 +
8724 + $class .= ' king-addons-pointer-' . $title_pointer;
8725 + $class .= ' king-addons-pointer-line-fx king-addons-pointer-fx-' . $title_pointer_animation;
8726 +
8727 + // Validate allowed HTML tags
8728 + $tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p'];
8729 + $element_title_tag = Core::validateHTMLTags($settings['element_title_tag'], 'h2', $tags_whitelist);
8730 +
8731 + echo '<' . esc_attr($element_title_tag) . ' class="' . esc_attr($class) . '">';
8732 + echo ' <div class="inner-block">';
8733 + echo ' <a target="' . esc_attr($new_tab) . '" ' . $pointer_item_class . ' href="' . esc_url(get_the_permalink()) . '">';
8734 + if ('word_count' === $settings['element_trim_text_by']) {
8735 + echo esc_html(wp_trim_words(get_the_title(), $settings['element_word_count']));
8736 + } else {
8737 + echo esc_html(mb_substr(html_entity_decode(get_the_title()), 0, $settings['element_letter_count'])) . '...';
8738 + }
8739 + echo ' </a>';
8740 + echo ' </div>';
8741 + echo '</' . esc_attr($element_title_tag) . '>';
8742 + }
8743 +
8744 + public function render_post_content($settings, $class)
8745 + {
8746 + if ('' === get_the_content()) {
8747 + return;
8748 + }
8749 + if ('yes' === $settings['element_dropcap']) {
8750 + $class .= ' king-addons-enable-dropcap';
8751 + }
8752 +
8753 + echo '<div class="' . esc_attr($class) . '">';
8754 + echo ' <div class="inner-block">';
8755 + echo wp_kses_post(apply_filters('the_content', get_the_content()));
8756 + echo ' </div>';
8757 + echo '</div>';
8758 + }
8759 +
8760 + public function render_post_excerpt($settings, $class)
8761 + {
8762 + if ('' === get_the_excerpt()) {
8763 + return;
8764 + }
8765 + if ('yes' === $settings['element_dropcap']) {
8766 + $class .= ' king-addons-enable-dropcap';
8767 + }
8768 +
8769 + echo '<div class="' . esc_attr($class) . '">';
8770 + echo ' <div class="inner-block">';
8771 + if ('word_count' === $settings['element_trim_text_by']) {
8772 + echo '<p>' . esc_html(wp_trim_words(get_the_excerpt(), $settings['element_word_count'])) . '</p>';
8773 + } else {
8774 + // slice letters
8775 + $excerptLetters = implode('', array_slice(str_split(get_the_excerpt()), 0, $settings['element_letter_count']));
8776 + echo '<p>' . esc_html($excerptLetters) . '...</p>';
8777 + }
8778 + echo ' </div>';
8779 + echo '</div>';
8780 + }
8781 +
8782 + public function render_post_date($settings, $class)
8783 + {
8784 + echo '<div class="' . esc_attr($class) . '">';
8785 + echo ' <div class="inner-block">';
8786 + echo ' <span>';
8787 +
8788 + if ('before' === $settings['element_extra_text_pos']) {
8789 + echo '<span class="king-addons-grid-extra-text-left">' . esc_html($settings['element_extra_text']) . '</span>';
8790 + }
8791 + if ('before' === $settings['element_extra_icon_pos']) {
8792 + ob_start();
8793 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8794 + $icon = ob_get_clean();
8795 + echo '<span class="king-addons-grid-extra-icon-left">' . $icon . '</span>';
8796 + }
8797 +
8798 + if ('yes' === $settings['show_last_update_date']) {
8799 + echo esc_html(get_the_modified_time(get_option('date_format')));
8800 + } else {
8801 + echo esc_html(apply_filters('the_date', get_the_date(), get_option('date_format'), '', ''));
8802 + }
8803 +
8804 + if ('after' === $settings['element_extra_icon_pos']) {
8805 + ob_start();
8806 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8807 + $icon = ob_get_clean();
8808 + echo '<span class="king-addons-grid-extra-icon-right">' . $icon . '</span>';
8809 + }
8810 + if ('after' === $settings['element_extra_text_pos']) {
8811 + echo '<span class="king-addons-grid-extra-text-right">' . esc_html($settings['element_extra_text']) . '</span>';
8812 + }
8813 +
8814 + echo ' </span>';
8815 + echo ' </div>';
8816 + echo '</div>';
8817 + }
8818 +
8819 + public function render_post_time($settings, $class)
8820 + {
8821 + echo '<div class="' . esc_attr($class) . '">';
8822 + echo ' <div class="inner-block">';
8823 + echo ' <span>';
8824 +
8825 + if ('before' === $settings['element_extra_text_pos']) {
8826 + echo '<span class="king-addons-grid-extra-text-left">' . esc_html($settings['element_extra_text']) . '</span>';
8827 + }
8828 + if ('before' === $settings['element_extra_icon_pos']) {
8829 + ob_start();
8830 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8831 + $icon = ob_get_clean();
8832 + echo '<span class="king-addons-grid-extra-icon-left">' . $icon . '</span>';
8833 + }
8834 +
8835 + echo esc_html(get_the_time());
8836 +
8837 + if ('after' === $settings['element_extra_icon_pos']) {
8838 + ob_start();
8839 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8840 + $icon = ob_get_clean();
8841 + echo '<span class="king-addons-grid-extra-icon-right">' . $icon . '</span>';
8842 + }
8843 + if ('after' === $settings['element_extra_text_pos']) {
8844 + echo '<span class="king-addons-grid-extra-text-right">' . esc_html($settings['element_extra_text']) . '</span>';
8845 + }
8846 +
8847 + echo ' </span>';
8848 + echo ' </div>';
8849 + echo '</div>';
8850 + }
8851 +
8852 + public function render_post_author($settings, $class)
8853 + {
8854 + $author_id = get_post_field('post_author');
8855 +
8856 + echo '<div class="' . esc_attr($class) . '">';
8857 + echo ' <div class="inner-block">';
8858 +
8859 + if ('before' === $settings['element_extra_text_pos']) {
8860 + echo '<span class="king-addons-grid-extra-text-left">' . esc_html($settings['element_extra_text']) . '</span>';
8861 + }
8862 +
8863 + echo '<a href="' . esc_url(get_author_posts_url($author_id)) . '">';
8864 +
8865 + if ('before' === $settings['element_extra_icon_pos']) {
8866 + ob_start();
8867 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8868 + $icon = ob_get_clean();
8869 + echo '<span class="king-addons-grid-extra-icon-left">' . $icon . '</span>';
8870 + }
8871 + if ('yes' === $settings['element_show_avatar']) {
8872 + echo get_avatar($author_id, $settings['element_avatar_size']);
8873 + }
8874 +
8875 + echo '<span>' . esc_html(get_the_author_meta('display_name', $author_id)) . '</span>';
8876 +
8877 + if ('after' === $settings['element_extra_icon_pos']) {
8878 + ob_start();
8879 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8880 + $icon = ob_get_clean();
8881 + echo '<span class="king-addons-grid-extra-icon-right">' . $icon . '</span>';
8882 + }
8883 +
8884 + echo '</a>';
8885 +
8886 + if ('after' === $settings['element_extra_text_pos']) {
8887 + echo '<span class="king-addons-grid-extra-text-right">' . esc_html($settings['element_extra_text']) . '</span>';
8888 + }
8889 +
8890 + echo ' </div>';
8891 + echo '</div>';
8892 + }
8893 +
8894 + public function render_post_comments($settings, $class)
8895 + {
8896 + if (!comments_open()) {
8897 + return;
8898 + }
8899 +
8900 + $count = get_comments_number();
8901 + if ($count == 1) {
8902 + $text = $count . ' ' . $settings['element_comments_text_2'];
8903 + } elseif ($count > 1) {
8904 + $text = $count . ' ' . $settings['element_comments_text_3'];
8905 + } else {
8906 + $text = $settings['element_comments_text_1'];
8907 + }
8908 +
8909 + echo '<div class="' . esc_attr($class) . '">';
8910 + echo ' <div class="inner-block">';
8911 +
8912 + if ('before' === $settings['element_extra_text_pos']) {
8913 + echo '<span class="king-addons-grid-extra-text-left">' . esc_html($settings['element_extra_text']) . '</span>';
8914 + }
8915 +
8916 + echo '<a href="' . esc_url(get_comments_link()) . '">';
8917 +
8918 + if ('before' === $settings['element_extra_icon_pos']) {
8919 + ob_start();
8920 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8921 + $icon = ob_get_clean();
8922 + echo '<span class="king-addons-grid-extra-icon-left">' . $icon . '</span>';
8923 + }
8924 +
8925 + echo '<span>' . esc_html($text) . '</span>';
8926 +
8927 + if ('after' === $settings['element_extra_icon_pos']) {
8928 + ob_start();
8929 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8930 + $icon = ob_get_clean();
8931 + echo '<span class="king-addons-grid-extra-icon-right">' . $icon . '</span>';
8932 + }
8933 +
8934 + echo '</a>';
8935 +
8936 + if ('after' === $settings['element_extra_text_pos']) {
8937 + echo '<span class="king-addons-grid-extra-text-right">' . esc_html($settings['element_extra_text']) . '</span>';
8938 + }
8939 +
8940 + echo ' </div>';
8941 + echo '</div>';
8942 + }
8943 +
8944 + public function render_post_read_more($settings, $class)
8945 + {
8946 + // Fallback animation for non-premium
8947 + $read_more_animation = king_addons_freemius()->can_use_premium_code__premium_only()
8948 + ? Core::displaySettings($this)['read_more_animation']
8949 + : 'king-addons-button-none';
8950 +
8951 + $new_tab = ('yes' === Core::displaySettings($this)['open_links_in_new_tab']) ? '_blank' : '_self';
8952 +
8953 + echo '<div class="' . esc_attr($class) . '">';
8954 + echo ' <div class="inner-block">';
8955 + echo ' <a target="' . esc_attr($new_tab) . '" href="' . esc_url(get_the_permalink()) . '" class="king-addons-button-effect ' . esc_attr($read_more_animation) . '">';
8956 +
8957 + if ('before' === $settings['element_extra_icon_pos']) {
8958 + ob_start();
8959 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8960 + $icon = ob_get_clean();
8961 + echo '<span class="king-addons-grid-extra-icon-left">' . $icon . '</span>';
8962 + }
8963 +
8964 + echo '<span>' . esc_html($settings['element_read_more_text']) . '</span>';
8965 +
8966 + if ('after' === $settings['element_extra_icon_pos']) {
8967 + ob_start();
8968 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
8969 + $icon = ob_get_clean();
8970 + echo '<span class="king-addons-grid-extra-icon-right">' . $icon . '</span>';
8971 + }
8972 +
8973 + echo ' </a>';
8974 + echo ' </div>';
8975 + echo '</div>';
8976 + }
8977 +
8978 + // Placeholder for premium-protected items
8979 + public function render_post_likes($settings, $class, $post_id)
8980 + {
8981 + }
8982 +
8983 + public function render_post_sharing_icons($settings, $class)
8984 + {
8985 + }
8986 +
8987 + public function render_post_custom_field($settings, $class, $post_id)
8988 + {
8989 + }
8990 +
8991 + public function render_post_lightbox($settings, $class, $post_id)
8992 + {
8993 + echo '<div class="' . esc_attr($class) . '">';
8994 + echo ' <div class="inner-block">';
8995 +
8996 + // Default to post thumbnail if set
8997 + $lightbox_source = get_the_post_thumbnail_url($post_id);
8998 +
8999 + // Handle Audio/Video meta
9000 + if ('audio' === get_post_format()) {
9001 + if ('meta' === $settings['element_lightbox_pfa_select']) {
9002 + $meta_value = get_post_meta($post_id, $settings['element_lightbox_pfa_meta'], true);
9003 + // Attempt to oEmbed
9004 + if (false === strpos($meta_value, '<iframe ')) {
9005 + add_filter('oembed_result', $posts_grid_filter = function ($html) {
9006 + preg_match('/<iframe.*src=\"(.*)\".*><\/iframe>/isU', $html, $matches);
9007 + return $matches[1] . '&auto_play=true';
9008 + }, 50, 3);
9009 + $track_url = wp_oembed_get($meta_value);
9010 + remove_filter('oembed_result', $posts_grid_filter, 50);
9011 + } else {
9012 + $track_url = Core::filterOembedResults($meta_value);
9013 + }
9014 + $lightbox_source = $track_url;
9015 + }
9016 + } elseif ('video' === get_post_format()) {
9017 + if ('meta' === $settings['element_lightbox_pfv_select']) {
9018 + $meta_value = get_post_meta($post_id, $settings['element_lightbox_pfv_meta'], true);
9019 + if (false === strpos($meta_value, '<iframe ')) {
9020 + $video = Embed::get_video_properties($meta_value);
9021 + } else {
9022 + $video = Embed::get_video_properties(Core::filterOembedResults($meta_value));
9023 + }
9024 +
9025 + if (isset($video['provider'], $video['video_id'])) {
9026 + if ('youtube' === $video['provider']) {
9027 + $lightbox_source = 'https://www.youtube.com/embed/' . $video['video_id'] . '?feature=oembed&autoplay=1&controls=1';
9028 + } elseif ('vimeo' === $video['provider']) {
9029 + $lightbox_source = 'https://player.vimeo.com/video/' . $video['video_id'] . '?autoplay=1#t=0';
9030 + }
9031 + }
9032 + }
9033 + }
9034 +
9035 + echo ' <span data-src="' . esc_url($lightbox_source) . '">';
9036 +
9037 + if ('before' === $settings['element_extra_text_pos']) {
9038 + echo '<span class="king-addons-grid-extra-text-left">' . esc_html($settings['element_extra_text']) . '</span>';
9039 + }
9040 +
9041 + echo ' <i class="' . esc_attr($settings['element_extra_icon']['value']) . '"></i>';
9042 +
9043 + if ('after' === $settings['element_extra_text_pos']) {
9044 + echo '<span class="king-addons-grid-extra-text-right">' . esc_html($settings['element_extra_text']) . '</span>';
9045 + }
9046 +
9047 + echo ' </span>';
9048 +
9049 + if ('yes' === $settings['element_lightbox_overlay']) {
9050 + echo '<div class="king-addons-grid-lightbox-overlay"></div>';
9051 + }
9052 +
9053 + echo ' </div>';
9054 + echo '</div>';
9055 + }
9056 +
9057 + public function render_post_element_separator($settings, $class)
9058 + {
9059 + echo '<div class="' . esc_attr($class . ' ' . $settings['element_separator_style']) . '">';
9060 + echo ' <div class="inner-block"><span></span></div>';
9061 + echo '</div>';
9062 + }
9063 +
9064 + public function render_post_taxonomies($settings, $class, $post_id)
9065 + {
9066 + $terms = wp_get_post_terms($post_id, $settings['element_select']);
9067 + if (empty($terms)) {
9068 + return;
9069 + }
9070 +
9071 + // Handle pointer classes (premium or fallback)
9072 + $tax1_pointer = king_addons_freemius()->can_use_premium_code__premium_only()
9073 + ? (Core::displaySettings($this)['tax1_pointer'] ?? 'none')
9074 + : 'none';
9075 + $tax1_pointer_animation = king_addons_freemius()->can_use_premium_code__premium_only()
9076 + ? (Core::displaySettings($this)['tax1_pointer_animation'] ?? 'fade')
9077 + : 'fade';
9078 + $tax2_pointer = king_addons_freemius()->can_use_premium_code__premium_only()
9079 + ? (Core::displaySettings($this)['tax2_pointer'] ?? 'none')
9080 + : 'none';
9081 + $tax2_pointer_animation = king_addons_freemius()->can_use_premium_code__premium_only()
9082 + ? (Core::displaySettings($this)['tax2_pointer_animation'] ?? 'fade')
9083 + : 'fade';
9084 +
9085 + // Decide which pointer to use
9086 + if ('king-addons-grid-tax-style-1' === $settings['element_tax_style']) {
9087 + $class .= ' king-addons-pointer-' . $tax1_pointer;
9088 + $class .= ' king-addons-pointer-line-fx king-addons-pointer-fx-' . $tax1_pointer_animation;
9089 + } else {
9090 + $class .= ' king-addons-pointer-' . $tax2_pointer;
9091 + $class .= ' king-addons-pointer-line-fx king-addons-pointer-fx-' . $tax2_pointer_animation;
9092 + }
9093 +
9094 + echo '<div class="' . esc_attr($class . ' ' . $settings['element_tax_style']) . '">';
9095 + echo ' <div class="inner-block">';
9096 +
9097 + if ('before' === $settings['element_extra_text_pos']) {
9098 + echo '<span class="king-addons-grid-extra-text-left">' . esc_html($settings['element_extra_text']) . '</span>';
9099 + }
9100 + if ('before' === $settings['element_extra_icon_pos']) {
9101 + ob_start();
9102 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
9103 + $icon = ob_get_clean();
9104 + echo '<span class="king-addons-grid-extra-icon-left">' . $icon . '</span>';
9105 + }
9106 +
9107 + $count = 0;
9108 + $sep = esc_html($settings['element_tax_sep'] ?? '');
9109 + $pointer = (($tax1_pointer !== 'none') || ($tax2_pointer !== 'none')) ? 'king-addons-pointer-item' : '';
9110 +
9111 + foreach ($terms as $term) {
9112 + // Possibly set custom colors (premium) for tax style 1
9113 + if (
9114 + 'yes' === (Core::displaySettings($this)['tax1_custom_color_switcher'] ?? '') &&
9115 + 'king-addons-grid-tax-style-1' === $settings['element_tax_style']
9116 + ) {
9117 + $cfc_text = get_term_meta($term->term_id, Core::displaySettings($this)['tax1_custom_color_field_text'], true);
9118 + $cfc_bg = get_term_meta($term->term_id, Core::displaySettings($this)['tax1_custom_color_field_bg'], true);
9119 + $color_css = "color:$cfc_text; background-color:$cfc_bg; border-color:$cfc_bg;";
9120 + $custom_selector = '.elementor-element' . $this->get_unique_selector() .
9121 + ' .king-addons-grid-tax-style-1 .inner-block a.king-addons-tax-id-' . esc_attr($term->term_id);
9122 + echo '<style>' . $custom_selector . '{' . $color_css . '}</style>';
9123 + }
9124 +
9125 + echo '<a class="' . $pointer . ' king-addons-tax-id-' . esc_attr($term->term_id) . '" href="' . esc_url(get_term_link($term->term_id)) . '">';
9126 + echo esc_html($term->name);
9127 + if (++$count !== count($terms)) {
9128 + echo '<span class="tax-sep">' . $sep . '</span>';
9129 + }
9130 + echo '</a>';
9131 + }
9132 +
9133 + if ('after' === $settings['element_extra_icon_pos']) {
9134 + ob_start();
9135 + Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
9136 + $icon = ob_get_clean();
9137 + echo '<span class="king-addons-grid-extra-icon-right">' . $icon . '</span>';
9138 + }
9139 + if ('after' === $settings['element_extra_text_pos']) {
9140 + echo '<span class="king-addons-grid-extra-text-right">' . esc_html($settings['element_extra_text']) . '</span>';
9141 + }
9142 +
9143 + echo ' </div>';
9144 + echo '</div>';
9145 + }
9146 +
9147 + public function get_elements($type, $settings, $class, $post_id)
9148 + {
9149 + // Fallback for certain pro elements
9150 + if (in_array($type, ['pro-lk', 'pro-shr', 'pro-cf'])) {
9151 + $type = 'title';
9152 + }
9153 +
9154 + switch ($type) {
9155 + case 'title':
9156 + $this->render_post_title($settings, $class);
9157 + break;
9158 + case 'content':
9159 + $this->render_post_content($settings, $class);
9160 + break;
9161 + case 'excerpt':
9162 + $this->render_post_excerpt($settings, $class);
9163 + break;
9164 + case 'date':
9165 + $this->render_post_date($settings, $class);
9166 + break;
9167 + case 'time':
9168 + $this->render_post_time($settings, $class);
9169 + break;
9170 + case 'author':
9171 + $this->render_post_author($settings, $class);
9172 + break;
9173 + case 'comments':
9174 + $this->render_post_comments($settings, $class);
9175 + break;
9176 + case 'read-more':
9177 + $this->render_post_read_more($settings, $class);
9178 + break;
9179 + case 'likes':
9180 + $this->render_post_likes($settings, $class, $post_id);
9181 + break;
9182 + case 'sharing':
9183 + $this->render_post_sharing_icons($settings, $class);
9184 + break;
9185 + case 'lightbox':
9186 + $this->render_post_lightbox($settings, $class, $post_id);
9187 + break;
9188 + case 'custom-field':
9189 + $this->render_post_custom_field($settings, $class, $post_id);
9190 + break;
9191 + case 'separator':
9192 + $this->render_post_element_separator($settings, $class);
9193 + break;
9194 + default:
9195 + $this->render_post_taxonomies($settings, $class, $post_id);
9196 + }
9197 + }
9198 +
9199 + public function get_elements_by_location($location, $settings, $post_id)
9200 + {
9201 + $locations = [];
9202 +
9203 + // Group elements by location; also group "over" by vertical alignment
9204 + foreach ($settings['grid_elements'] as $data) {
9205 + $place = $data['element_location'];
9206 + $alignV = $data['element_align_vr'];
9207 +
9208 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9209 + $alignV = 'middle';
9210 + }
9211 +
9212 + if (!isset($locations[$place])) {
9213 + $locations[$place] = [];
9214 + }
9215 +
9216 + if ('over' === $place) {
9217 + if (!isset($locations[$place][$alignV])) {
9218 + $locations[$place][$alignV] = [];
9219 + }
9220 + $locations[$place][$alignV][] = $data;
9221 + } else {
9222 + $locations[$place][] = $data;
9223 + }
9224 + }
9225 +
9226 + // Render each group of elements
9227 + if (!empty($locations[$location])) {
9228 + if ('over' === $location) {
9229 + foreach ($locations[$location] as $align => $elements) {
9230 + if ('middle' === $align) {
9231 + echo '<div class="king-addons-cv-container"><div class="king-addons-cv-outer"><div class="king-addons-cv-inner">';
9232 + }
9233 + echo '<div class="king-addons-grid-media-hover-' . esc_attr($align) . ' elementor-clearfix">';
9234 +
9235 + foreach ($elements as $data) {
9236 + $itemClass = 'king-addons-grid-item-' . $data['element_select']
9237 + . ' elementor-repeater-item-' . $data['_id']
9238 + . ' king-addons-grid-item-display-' . $data['element_display']
9239 + . ' king-addons-grid-item-align-' . $data['element_align_hr']
9240 + . $this->get_animation_class($data, 'element');
9241 + $this->get_elements($data['element_select'], $data, $itemClass, $post_id);
9242 + }
9243 + echo '</div>';
9244 +
9245 + if ('middle' === $align) {
9246 + echo '</div></div></div>';
9247 + }
9248 + }
9249 + } else {
9250 + echo '<div class="king-addons-grid-item-' . esc_attr($location) . '-content elementor-clearfix">';
9251 + foreach ($locations[$location] as $data) {
9252 + $itemClass = 'king-addons-grid-item-' . $data['element_select']
9253 + . ' elementor-repeater-item-' . $data['_id']
9254 + . ' king-addons-grid-item-display-' . $data['element_display']
9255 + . ' king-addons-grid-item-align-' . $data['element_align_hr'];
9256 + $this->get_elements($data['element_select'], $data, $itemClass, $post_id);
9257 + }
9258 + echo '</div>';
9259 + }
9260 + }
9261 + }
9262 +
9263 + public function render_grid_filters($settings)
9264 + {
9265 + $taxonomy = $settings['filters_select'] ?? '';
9266 +
9267 + // Ensure we have some taxonomy selected
9268 + if ('' === $taxonomy || !isset($settings['query_taxonomy_' . $taxonomy])) {
9269 + return;
9270 + }
9271 +
9272 + $custom_filters = $settings['query_taxonomy_' . $taxonomy];
9273 +
9274 + // Fall back for non-premium
9275 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9276 + $settings['filters_default_filter'] = '';
9277 + $settings['filters_icon_align'] = '';
9278 + $settings['filters_count'] = '';
9279 + $settings['filters_pointer'] = 'none';
9280 + $settings['filters_pointer_animation'] = 'none';
9281 + }
9282 +
9283 + $left_icon = ('left' === $settings['filters_icon_align'])
9284 + ? '<i class="' . esc_attr($settings['filters_icon']['value']) . ' king-addons-grid-filters-icon-left"></i>' : '';
9285 + $right_icon = ('right' === $settings['filters_icon_align'])
9286 + ? '<i class="' . esc_attr($settings['filters_icon']['value']) . ' king-addons-grid-filters-icon-right"></i>' : '';
9287 + $left_separator = ('left' === $settings['filters_separator_align'])
9288 + ? '<em class="king-addons-grid-filters-sep">' . esc_html($settings['filters_separator']) . '</em>' : '';
9289 + $right_separator = ('right' === $settings['filters_separator_align'])
9290 + ? '<em class="king-addons-grid-filters-sep">' . esc_html($settings['filters_separator']) . '</em>' : '';
9291 + $post_count = ('yes' === $settings['filters_count'])
9292 + ? '<sup data-brackets="' . esc_attr($settings['filters_count_brackets']) . '"></sup>'
9293 + : '';
9294 +
9295 + $pointer_class = ' king-addons-pointer-' . $settings['filters_pointer'];
9296 + $pointer_class .= ' king-addons-pointer-line-fx king-addons-pointer-fx-' . $settings['filters_pointer_animation'];
9297 + $pointer_item_class = ('none' !== $settings['filters_pointer']) ? 'king-addons-pointer-item' : '';
9298 +
9299 + echo '<ul class="king-addons-grid-filters elementor-clearfix king-addons-grid-filters-sep-' . esc_attr($settings['filters_separator_align']) . '">';
9300 +
9301 + // "Show All" button if needed
9302 + if ('yes' === $settings['filters_all'] && 'yes' !== $settings['filters_linkable']) {
9303 + echo '<li class="' . esc_attr($pointer_class) . '">';
9304 + echo ' <span data-filter="*" class="king-addons-grid-filters-item king-addons-active-filter ' . esc_attr($pointer_item_class) . '">';
9305 + echo $left_icon . esc_html($settings['filters_all_text']) . $right_icon . $post_count;
9306 + echo ' </span>' . $right_separator;
9307 + echo '</li>';
9308 + }
9309 +
9310 + $q = get_queried_object();
9311 + $categoryName = (is_category() && $q) ? strtolower($q->name) : 'no-category';
9312 + $parent_filters = [];
9313 +
9314 + // Dynamic
9315 + if ($settings['query_selection'] === 'dynamic' && !empty($custom_filters)) {
9316 + foreach ($custom_filters as $term_id) {
9317 + $filter = get_term_by('id', $term_id, $taxonomy);
9318 + $data_attr = ('post_tag' === $taxonomy) ? 'tag-' . $filter->slug : $taxonomy . '-' . $filter->slug;
9319 + $tax_data = ('post_tag' === $taxonomy) ? 'tag' : $taxonomy;
9320 + $active = (strpos($data_attr, $categoryName) !== false) ? 'king-addons-active-filter' : '';
9321 +
9322 + if (0 === $filter->parent) {
9323 + $children = get_term_children($filter->term_id, $taxonomy);
9324 + $data_role = !empty($children) ? ' data-role="parent"' : '';
9325 +
9326 + echo '<li' . $data_role . ' class="' . esc_attr($pointer_class) . '">';
9327 + if ('yes' !== $settings['filters_linkable']) {
9328 + echo $left_separator . '<span class="' . $pointer_item_class . '" data-ajax-filter=\'' . json_encode([$tax_data, $filter->slug]) . '\' data-filter=".' . esc_attr(urldecode($data_attr)) . '">';
9329 + echo $left_icon . esc_html($filter->name) . $right_icon . $post_count . '</span>' . $right_separator;
9330 + } else {
9331 + echo $left_separator . '<a class="' . $active . ' ' . $pointer_item_class . '" href="' . esc_url(get_term_link($filter->term_id, $taxonomy)) . '">';
9332 + echo $left_icon . esc_html($filter->name) . $right_icon . $post_count . '</a>' . $right_separator;
9333 + }
9334 + echo '</li>';
9335 + } else {
9336 + $parent_filters[] = $filter->parent;
9337 + }
9338 + }
9339 + } else {
9340 + // All terms from taxonomy
9341 + $all_filters = get_terms($taxonomy);
9342 + foreach ((array)$all_filters as $filter) {
9343 + $data_attr = ('post_tag' === $taxonomy) ? 'tag-' . $filter->slug : $taxonomy . '-' . $filter->slug;
9344 + $tax_data = ('post_tag' === $taxonomy) ? 'tag' : $taxonomy;
9345 + $active = (strpos($data_attr, $categoryName) !== false) ? 'king-addons-active-filter' : '';
9346 + $hidden = $this->get_hidden_filter_class($filter->slug, $settings);
9347 +
9348 + if (0 === $filter->parent) {
9349 + $children = get_term_children($filter->term_id, $taxonomy);
9350 + $data_role = !empty($children) ? ' data-role="parent"' : '';
9351 +
9352 + echo '<li' . $data_role . ' class="' . esc_attr($pointer_class . $hidden) . '">';
9353 + if ('yes' !== $settings['filters_linkable']) {
9354 + echo $left_separator . '<span class="' . $pointer_item_class . '" data-ajax-filter=\'' . json_encode([$tax_data, $filter->slug]) . '\' data-filter=".' . esc_attr(urldecode($data_attr)) . '">';
9355 + echo $left_icon . esc_html($filter->name) . $right_icon . $post_count . '</span>' . $right_separator;
9356 + } else {
9357 + echo $left_separator . '<a class="' . $active . ' ' . $pointer_item_class . '" href="' . esc_url(get_term_link($filter->term_id, $taxonomy)) . '" data-ajax-filter=\'' . json_encode([$tax_data, $filter->slug]) . '\' data-filter=".' . esc_attr(urldecode($data_attr)) . '">';
9358 + echo $left_icon . esc_html($filter->name) . $right_icon . $post_count . '</a>' . $right_separator;
9359 + }
9360 + echo '</li>';
9361 + } else {
9362 + $parent_filters[] = $filter->parent;
9363 + }
9364 + }
9365 + }
9366 +
9367 + // Child terms as sub-filters if not linkable
9368 + if ('yes' !== $settings['filters_linkable']) {
9369 + foreach (array_unique($parent_filters) as $parent_filter) {
9370 + $parent = get_term_by('id', $parent_filter, $taxonomy);
9371 + $children = get_term_children($parent_filter, $taxonomy);
9372 + $data_attr = ('post_tag' === $taxonomy) ? 'tag-' . $parent->slug : $taxonomy . '-' . $parent->slug;
9373 + $tax_data = ('post_tag' === $taxonomy) ? 'tag' : $taxonomy;
9374 +
9375 + echo '<ul data-parent=".' . esc_attr(urldecode($data_attr)) . '" class="king-addons-sub-filters">';
9376 + echo ' <li data-role="back" class="' . esc_attr($pointer_class) . '">';
9377 + echo ' <span class="king-addons-back-filter" data-ajax-filter=\'' . json_encode([$tax_data, $parent->slug]) . '\' data-filter=".' . esc_attr(urldecode($data_attr)) . '">';
9378 + echo ' <i class="fas fa-long-arrow-alt-left"></i>&nbsp;&nbsp;' . esc_html__('Back', 'king-addons');
9379 + echo ' </span>';
9380 + echo ' </li>';
9381 +
9382 + foreach ($children as $child) {
9383 + $sub_filter = get_term_by('id', $child, $taxonomy);
9384 + $child_attr = ('post_tag' === $taxonomy)
9385 + ? 'tag-' . $sub_filter->slug
9386 + : $taxonomy . '-' . $sub_filter->slug;
9387 +
9388 + echo '<li data-role="sub" class="' . esc_attr($pointer_class) . '">';
9389 + echo $left_separator . '<span class="' . $pointer_item_class . '" data-ajax-filter=\'' . json_encode([$tax_data, $sub_filter->slug]) . '\' data-filter=".' . esc_attr(urldecode($child_attr)) . '">';
9390 + echo $left_icon . esc_html($sub_filter->name) . $right_icon . $post_count;
9391 + echo '</span>' . $right_separator;
9392 + echo '</li>';
9393 + }
9394 + echo '</ul>';
9395 + }
9396 + }
9397 +
9398 + echo '</ul>';
9399 + }
9400 +
9401 + public function get_hidden_filter_class($slug, $settings)
9402 + {
9403 + // Query posts & see if the category is used
9404 + $posts = new WP_Query($this->get_main_query_args());
9405 + $visible_slugs = [];
9406 +
9407 + if ($posts->have_posts()) {
9408 + while ($posts->have_posts()) {
9409 + $posts->the_post();
9410 + $cats = get_the_category();
9411 + foreach ($cats as $c) {
9412 + $visible_slugs[] = $c->slug;
9413 + }
9414 + }
9415 + $visible_slugs = array_unique($visible_slugs);
9416 + wp_reset_postdata();
9417 + }
9418 +
9419 + return (!in_array($slug, $visible_slugs) && 'yes' === $settings['filters_hide_empty'])
9420 + ? ' king-addons-hidden-element'
9421 + : '';
9422 + }
9423 +
9424 + public function render_grid_pagination($settings)
9425 + {
9426 + // Bail if pagination off, or only one page, or in slider mode
9427 + if (
9428 + 'yes' !== $settings['layout_pagination'] ||
9429 + 1 === $this->get_max_num_pages() ||
9430 + 'slider' === $settings['layout_select']
9431 + ) {
9432 + return;
9433 + }
9434 +
9435 + global $paged;
9436 + $pages = $this->get_max_num_pages();
9437 +
9438 + $paged = get_query_var('paged') ?: (get_query_var('page') ?: 1);
9439 +
9440 + // Ensure no premium pagination type if not premium
9441 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9442 + if ('pro-is' === $settings['pagination_type']) {
9443 + $settings['pagination_type'] = 'default';
9444 + }
9445 + }
9446 +
9447 + echo '<div class="king-addons-grid-pagination elementor-clearfix king-addons-grid-pagination-' . esc_attr($settings['pagination_type']) . '">';
9448 +
9449 + // 1) Default older/newer
9450 + if ('default' === $settings['pagination_type']) {
9451 + if ($paged < $pages) {
9452 + echo '<a href="' . esc_url(get_pagenum_link($paged + 1)) . '" class="king-addons-prev-post-link">';
9453 + echo Core::getIcon($settings['pagination_on_icon'], 'left');
9454 + echo esc_html($settings['pagination_older_text']);
9455 + echo '</a>';
9456 + } elseif ('yes' === $settings['pagination_disabled_arrows']) {
9457 + echo '<span class="king-addons-prev-post-link king-addons-disabled-arrow">';
9458 + echo Core::getIcon($settings['pagination_on_icon'], 'left');
9459 + echo esc_html($settings['pagination_older_text']);
9460 + echo '</span>';
9461 + }
9462 +
9463 + if ($paged > 1) {
9464 + echo '<a href="' . esc_url(get_pagenum_link($paged - 1)) . '" class="king-addons-next-post-link">';
9465 + echo esc_html($settings['pagination_newer_text']);
9466 + echo Core::getIcon($settings['pagination_on_icon'], 'right');
9467 + echo '</a>';
9468 + } elseif ('yes' === $settings['pagination_disabled_arrows']) {
9469 + echo '<span class="king-addons-next-post-link king-addons-disabled-arrow">';
9470 + echo esc_html($settings['pagination_newer_text']);
9471 + echo Core::getIcon($settings['pagination_on_icon'], 'right');
9472 + echo '</span>';
9473 + }
9474 +
9475 + // 2) Numbered pagination
9476 + } elseif ('numbered' === $settings['pagination_type']) {
9477 + $range = $settings['pagination_range'];
9478 + $showitems = ($range * 2) + 1;
9479 +
9480 + if (1 !== $pages) {
9481 + // Prev / First arrows if needed
9482 + if ('yes' === $settings['pagination_prev_next'] || 'yes' === $settings['pagination_first_last']) {
9483 + echo '<div class="king-addons-grid-pagination-left-arrows">';
9484 + if ('yes' === $settings['pagination_first_last']) {
9485 + if ($paged >= 2) {
9486 + echo '<a href="' . esc_url(get_pagenum_link()) . '" class="king-addons-first-page">';
9487 + echo Core::getIcon($settings['pagination_fl_icon'], 'left');
9488 + echo '<span>' . esc_html($settings['pagination_first_text']) . '</span>';
9489 + echo '</a>';
9490 + } elseif ('yes' === $settings['pagination_disabled_arrows']) {
9491 + echo '<span class="king-addons-first-page king-addons-disabled-arrow">';
9492 + echo Core::getIcon($settings['pagination_fl_icon'], 'left');
9493 + echo '<span>' . esc_html($settings['pagination_first_text']) . '</span>';
9494 + echo '</span>';
9495 + }
9496 + }
9497 + if ('yes' === $settings['pagination_prev_next']) {
9498 + if ($paged > 1) {
9499 + echo '<a href="' . esc_url(get_pagenum_link($paged - 1)) . '" class="king-addons-prev-page">';
9500 + echo Core::getIcon($settings['pagination_pn_icon'], 'left');
9501 + echo '<span>' . esc_html($settings['pagination_prev_text']) . '</span>';
9502 + echo '</a>';
9503 + } elseif ('yes' === $settings['pagination_disabled_arrows']) {
9504 + echo '<span class="king-addons-prev-page king-addons-disabled-arrow">';
9505 + echo Core::getIcon($settings['pagination_pn_icon'], 'left');
9506 + echo '<span>' . esc_html($settings['pagination_prev_text']) . '</span>';
9507 + echo '</span>';
9508 + }
9509 + }
9510 + echo '</div>';
9511 + }
9512 +
9513 + // Loop through pages
9514 + for ($i = 1; $i <= $pages; $i++) {
9515 + if (1 !== $pages && (
9516 + !($i >= $paged + $range + 1 || $i <= $paged - $range - 1) ||
9517 + $pages <= $showitems
9518 + )) {
9519 + if ($paged === $i) {
9520 + echo '<span class="king-addons-grid-current-page">' . esc_html($i) . '</span>';
9521 + } else {
9522 + echo '<a href="' . esc_url(get_pagenum_link($i)) . '">' . esc_html($i) . '</a>';
9523 + }
9524 + }
9525 + }
9526 +
9527 + // Next / Last arrows if needed
9528 + if ('yes' === $settings['pagination_prev_next'] || 'yes' === $settings['pagination_first_last']) {
9529 + echo '<div class="king-addons-grid-pagination-right-arrows">';
9530 + if ('yes' === $settings['pagination_prev_next']) {
9531 + if ($paged < $pages) {
9532 + echo '<a href="' . esc_url(get_pagenum_link($paged + 1)) . '" class="king-addons-next-page">';
9533 + echo '<span>' . esc_html($settings['pagination_next_text']) . '</span>';
9534 + echo Core::getIcon($settings['pagination_pn_icon'], 'right');
9535 + echo '</a>';
9536 + } elseif ('yes' === $settings['pagination_disabled_arrows']) {
9537 + echo '<span class="king-addons-next-page king-addons-disabled-arrow">';
9538 + echo '<span>' . esc_html($settings['pagination_next_text']) . '</span>';
9539 + echo Core::getIcon($settings['pagination_pn_icon'], 'right');
9540 + echo '</span>';
9541 + }
9542 + }
9543 + if ('yes' === $settings['pagination_first_last']) {
9544 + if ($paged <= $pages - 1) {
9545 + echo '<a href="' . esc_url(get_pagenum_link($pages)) . '" class="king-addons-last-page">';
9546 + echo '<span>' . esc_html($settings['pagination_last_text']) . '</span>';
9547 + echo Core::getIcon($settings['pagination_fl_icon'], 'right');
9548 + echo '</a>';
9549 + } elseif ('yes' === $settings['pagination_disabled_arrows']) {
9550 + echo '<span class="king-addons-last-page king-addons-disabled-arrow">';
9551 + echo '<span>' . esc_html($settings['pagination_last_text']) . '</span>';
9552 + echo Core::getIcon($settings['pagination_fl_icon'], 'right');
9553 + echo '</span>';
9554 + }
9555 + }
9556 + echo '</div>';
9557 + }
9558 + }
9559 +
9560 + // 3) "Load More" infinite style
9561 + } else {
9562 + echo '<a href="' . esc_url(get_pagenum_link($paged + 1)) . '" class="king-addons-load-more-btn" data-e-disable-page-transition>';
9563 + echo esc_html($settings['pagination_load_more_text']);
9564 + echo '</a>';
9565 +
9566 + echo '<div class="king-addons-pagination-loading">';
9567 + switch ($settings['pagination_animation']) {
9568 + case 'loader-1':
9569 + echo '<div class="king-addons-double-bounce">';
9570 + echo ' <div class="king-addons-child king-addons-double-bounce1"></div>';
9571 + echo ' <div class="king-addons-child king-addons-double-bounce2"></div>';
9572 + echo '</div>';
9573 + break;
9574 + case 'loader-2':
9575 + echo '<div class="king-addons-wave">';
9576 + echo ' <div class="king-addons-rect king-addons-rect1"></div>';
9577 + echo ' <div class="king-addons-rect king-addons-rect2"></div>';
9578 + echo ' <div class="king-addons-rect king-addons-rect3"></div>';
9579 + echo ' <div class="king-addons-rect king-addons-rect4"></div>';
9580 + echo ' <div class="king-addons-rect king-addons-rect5"></div>';
9581 + echo '</div>';
9582 + break;
9583 + case 'loader-3':
9584 + echo '<div class="king-addons-spinner king-addons-spinner-pulse"></div>';
9585 + break;
9586 + case 'loader-4':
9587 + echo '<div class="king-addons-chasing-dots">';
9588 + echo ' <div class="king-addons-child king-addons-dot1"></div>';
9589 + echo ' <div class="king-addons-child king-addons-dot2"></div>';
9590 + echo '</div>';
9591 + break;
9592 + case 'loader-5':
9593 + echo '<div class="king-addons-three-bounce">';
9594 + echo ' <div class="king-addons-child king-addons-bounce1"></div>';
9595 + echo ' <div class="king-addons-child king-addons-bounce2"></div>';
9596 + echo ' <div class="king-addons-child king-addons-bounce3"></div>';
9597 + echo '</div>';
9598 + break;
9599 + case 'loader-6':
9600 + echo '<div class="king-addons-fading-circle">';
9601 + for ($i = 1; $i <= 12; $i++) {
9602 + echo '<div class="king-addons-circle king-addons-circle' . $i . '"></div>';
9603 + }
9604 + echo '</div>';
9605 + break;
9606 + default:
9607 + break;
9608 + }
9609 + echo '</div>';
9610 +
9611 + echo '<p class="king-addons-pagination-finish">' . esc_html($settings['pagination_finish_text']) . '</p>';
9612 + }
9613 +
9614 + echo '</div>';
9615 + }
9616 +
9617 + public function add_grid_settings($settings)
9618 + {
9619 + // Prevent undefined index notices for lightbox popup settings.
9620 + $settings = wp_parse_args(
9621 + $settings,
9622 + [
9623 + 'lightbox_popup_autoplay' => 'true',
9624 + 'lightbox_popup_pause' => 5,
9625 + 'lightbox_popup_progressbar' => 'true',
9626 + 'lightbox_popup_counter' => 'true',
9627 + 'lightbox_popup_arrows' => 'true',
9628 + 'lightbox_popup_captions' => 'true',
9629 + 'lightbox_popup_thumbnails' => '',
9630 + 'lightbox_popup_thumbnails_default' => '',
9631 + 'lightbox_popup_sharing' => '',
9632 + 'lightbox_popup_zoom' => 'true',
9633 + 'lightbox_popup_fullscreen' => 'true',
9634 + 'lightbox_popup_download' => 'true',
9635 + ]
9636 + );
9637 +
9638 + // If premium not available, fallback
9639 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9640 + if ('pro-ms' === $settings['layout_select']) {
9641 + $settings['layout_select'] = 'fitRows';
9642 + }
9643 + $settings['filters_deeplinking'] = '';
9644 + $settings['filters_count'] = '';
9645 + $settings['filters_default_filter'] = '';
9646 + if (in_array($settings['filters_animation'], ['pro-fd', 'pro-fs'])) {
9647 + $settings['filters_animation'] = 'zoom';
9648 + }
9649 + }
9650 +
9651 + // Only allow "stick_last_element_to_bottom" if layout_select == fitRows
9652 + $stick_last_element = ('fitRows' === $settings['layout_select'])
9653 + ? $settings['stick_last_element_to_bottom']
9654 + : 'no';
9655 +
9656 + // Prepare gutter sizes
9657 + $gutter_hr_widescreen = $settings['layout_gutter_hr_widescreen']['size'] ?? $settings['layout_gutter_hr']['size'];
9658 + $gutter_hr_desktop = $settings['layout_gutter_hr']['size'] ?? 0;
9659 + $gutter_hr_laptop = $settings['layout_gutter_hr_laptop']['size'] ?? $gutter_hr_desktop;
9660 + $gutter_hr_tablet_ex = $settings['layout_gutter_hr_tablet_extra']['size'] ?? $gutter_hr_laptop;
9661 + $gutter_hr_tablet = $settings['layout_gutter_hr_tablet']['size'] ?? $gutter_hr_tablet_ex;
9662 + $gutter_hr_mobile_ex = $settings['layout_gutter_hr_mobile_extra']['size'] ?? $gutter_hr_tablet;
9663 + $gutter_hr_mobile = $settings['layout_gutter_hr_mobile']['size'] ?? $gutter_hr_mobile_ex;
9664 + $gutter_vr_widescreen = $settings['layout_gutter_vr_widescreen']['size'] ?? $settings['layout_gutter_vr']['size'];
9665 + $gutter_vr_desktop = $settings['layout_gutter_vr']['size'] ?? 0;
9666 + $gutter_vr_laptop = $settings['layout_gutter_vr_laptop']['size'] ?? $gutter_vr_desktop;
9667 + $gutter_vr_tablet_ex = $settings['layout_gutter_vr_tablet_extra']['size'] ?? $gutter_vr_laptop;
9668 + $gutter_vr_tablet = $settings['layout_gutter_vr_tablet']['size'] ?? $gutter_vr_tablet_ex;
9669 + $gutter_vr_mobile_ex = $settings['layout_gutter_vr_mobile_extra']['size'] ?? $gutter_vr_tablet;
9670 + $gutter_vr_mobile = $settings['layout_gutter_vr_mobile']['size'] ?? $gutter_vr_mobile_ex;
9671 +
9672 + $layout_settings = [
9673 + 'layout' => $settings['layout_select'],
9674 + 'stick_last_element_to_bottom' => $stick_last_element,
9675 + 'columns_desktop' => $settings['layout_columns'],
9676 + 'gutter_hr' => $gutter_hr_desktop,
9677 + 'gutter_hr_mobile' => $gutter_hr_mobile,
9678 + 'gutter_hr_mobile_extra' => $gutter_hr_mobile_ex,
9679 + 'gutter_hr_tablet' => $gutter_hr_tablet,
9680 + 'gutter_hr_tablet_extra' => $gutter_hr_tablet_ex,
9681 + 'gutter_hr_laptop' => $gutter_hr_laptop,
9682 + 'gutter_hr_widescreen' => $gutter_hr_widescreen,
9683 + 'gutter_vr' => $gutter_vr_desktop,
9684 + 'gutter_vr_mobile' => $gutter_vr_mobile,
9685 + 'gutter_vr_mobile_extra' => $gutter_vr_mobile_ex,
9686 + 'gutter_vr_tablet' => $gutter_vr_tablet,
9687 + 'gutter_vr_tablet_extra' => $gutter_vr_tablet_ex,
9688 + 'gutter_vr_laptop' => $gutter_vr_laptop,
9689 + 'gutter_vr_widescreen' => $gutter_vr_widescreen,
9690 + 'animation' => $settings['layout_animation'],
9691 + 'animation_duration' => $settings['layout_animation_duration'],
9692 + 'animation_delay' => $settings['layout_animation_delay'],
9693 + 'deeplinking' => $settings['filters_deeplinking'],
9694 + 'filters_linkable' => $settings['filters_linkable'],
9695 + 'filters_default_filter' => $settings['filters_default_filter'],
9696 + 'filters_count' => $settings['filters_count'],
9697 + 'filters_hide_empty' => $settings['filters_hide_empty'],
9698 + 'filters_animation' => $settings['filters_animation'],
9699 + 'filters_animation_duration' => $settings['filters_animation_duration'],
9700 + 'filters_animation_delay' => $settings['filters_animation_delay'],
9701 + 'pagination_type' => $settings['pagination_type'],
9702 + 'pagination_max_pages' => $this->get_max_num_pages(),
9703 + ];
9704 +
9705 + if ('list' === $settings['layout_select']) {
9706 + $layout_settings['media_align'] = $settings['layout_list_align'];
9707 + $layout_settings['media_width'] = $settings['layout_list_media_width']['size'];
9708 + $layout_settings['media_distance'] = $settings['layout_list_media_distance']['size'];
9709 + }
9710 +
9711 + // Restrict pop-up if not premium
9712 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9713 + $settings['lightbox_popup_thumbnails'] = '';
9714 + $settings['lightbox_popup_thumbnails_default'] = '';
9715 + $settings['lightbox_popup_sharing'] = '';
9716 + }
9717 +
9718 + // Lightbox config
9719 + $layout_settings['lightbox'] = [
9720 + 'selector' => '.king-addons-grid-image-wrap',
9721 + 'iframeMaxWidth' => '60%',
9722 + 'hash' => false,
9723 + 'autoplay' => $settings['lightbox_popup_autoplay'],
9724 + 'pause' => $settings['lightbox_popup_pause'] * 1000,
9725 + 'progressBar' => $settings['lightbox_popup_progressbar'],
9726 + 'counter' => $settings['lightbox_popup_counter'],
9727 + 'controls' => $settings['lightbox_popup_arrows'],
9728 + 'getCaptionFromTitleOrAlt' => false,
9729 + 'thumbnail' => $settings['lightbox_popup_thumbnails'],
9730 + 'showThumbByDefault' => $settings['lightbox_popup_thumbnails_default'],
9731 + 'share' => $settings['lightbox_popup_sharing'],
9732 + 'zoom' => $settings['lightbox_popup_zoom'],
9733 + 'fullScreen' => $settings['lightbox_popup_fullscreen'],
9734 + 'download' => $settings['lightbox_popup_download'],
9735 + ];
9736 +
9737 + if ('yes' === ($settings['filters_experiment'] ?? '')) {
9738 + // Potentially store entire $settings if needed
9739 + $layout_settings['grid_settings'] = $settings;
9740 + }
9741 +
9742 + $this->add_render_attribute('grid-settings', [
9743 + 'data-settings' => wp_json_encode($layout_settings),
9744 + ]);
9745 + }
9746 +
9747 + public function add_slider_settings($settings)
9748 + {
9749 + // Prevent undefined index notices for lightbox popup settings.
9750 + $settings = wp_parse_args(
9751 + $settings,
9752 + [
9753 + 'lightbox_popup_autoplay' => 'true',
9754 + 'lightbox_popup_pause' => 5,
9755 + 'lightbox_popup_progressbar' => 'true',
9756 + 'lightbox_popup_counter' => 'true',
9757 + 'lightbox_popup_arrows' => 'true',
9758 + 'lightbox_popup_captions' => 'true',
9759 + 'lightbox_popup_thumbnails' => '',
9760 + 'lightbox_popup_thumbnails_default' => '',
9761 + 'lightbox_popup_sharing' => '',
9762 + 'lightbox_popup_zoom' => 'true',
9763 + 'lightbox_popup_fullscreen' => 'true',
9764 + 'lightbox_popup_download' => 'true',
9765 + ]
9766 + );
9767 +
9768 + $slider_is_rtl = is_rtl();
9769 + $slider_dir = $slider_is_rtl ? 'rtl' : 'ltr';
9770 +
9771 + // Fall back for non-premium
9772 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9773 + $settings['layout_slider_autoplay'] = '';
9774 + $settings['layout_slider_autoplay_duration'] = 0;
9775 + $settings['layout_slider_pause_on_hover'] = '';
9776 + }
9777 +
9778 + if (in_array($settings['layout_slider_amount'], ['pro-3', 'pro-4', 'pro-5', 'pro-6'])) {
9779 + $settings['layout_slider_amount'] = 1; // fallback
9780 + }
9781 +
9782 + $slider_options = [
9783 + 'rtl' => $slider_is_rtl,
9784 + 'infinite' => ('yes' === $settings['layout_slider_loop']),
9785 + 'speed' => absint($settings['layout_slider_effect_duration'] * 1000),
9786 + 'arrows' => true,
9787 + 'dots' => true,
9788 + 'autoplay' => ('yes' === $settings['layout_slider_autoplay']),
9789 + 'autoplaySpeed' => absint($settings['layout_slider_autoplay_duration'] * 1000),
9790 + 'pauseOnHover' => $settings['layout_slider_pause_on_hover'],
9791 + 'prevArrow' => '#king-addons-grid-slider-prev-' . $this->get_id(),
9792 + 'nextArrow' => '#king-addons-grid-slider-next-' . $this->get_id(),
9793 + 'sliderSlidesToScroll' => $settings['layout_slides_to_scroll'] ? absint($settings['layout_slides_to_scroll']) : 1,
9794 + ];
9795 +
9796 + // Restrict pop-up for non-premium
9797 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
9798 + $settings['lightbox_popup_thumbnails'] = '';
9799 + $settings['lightbox_popup_thumbnails_default'] = '';
9800 + $settings['lightbox_popup_sharing'] = '';
9801 + }
9802 +
9803 + // Lightbox config
9804 + $slider_options['lightbox'] = [
9805 + 'selector' => 'article:not(.slick-cloned) .king-addons-grid-image-wrap',
9806 + 'iframeMaxWidth' => '60%',
9807 + 'hash' => false,
9808 + 'autoplay' => $settings['lightbox_popup_autoplay'],
9809 + 'pause' => $settings['lightbox_popup_pause'] * 1000,
9810 + 'progressBar' => $settings['lightbox_popup_progressbar'],
9811 + 'counter' => $settings['lightbox_popup_counter'],
9812 + 'controls' => $settings['lightbox_popup_arrows'],
9813 + 'getCaptionFromTitleOrAlt' => false,
9814 + 'thumbnail' => $settings['lightbox_popup_thumbnails'],
9815 + 'showThumbByDefault' => $settings['lightbox_popup_thumbnails_default'],
9816 + 'share' => $settings['lightbox_popup_sharing'],
9817 + 'zoom' => $settings['lightbox_popup_zoom'],
9818 + 'fullScreen' => $settings['lightbox_popup_fullscreen'],
9819 + 'download' => $settings['lightbox_popup_download'],
9820 + ];
9821 +
9822 + // Enable fade effect for single-slide
9823 + if ($settings['layout_slider_amount'] === 1 && $settings['layout_slider_effect'] === 'fade') {
9824 + $slider_options['fade'] = true;
9825 + }
9826 +
9827 + $this->add_render_attribute('slider-settings', [
9828 + 'dir' => esc_attr($slider_dir),
9829 + 'data-slick' => wp_json_encode($slider_options),
9830 + ]);
9831 + }
9832 +
9833 + protected function render()
9834 + {
9835 + $settings = Core::displaySettings($this);
9836 + $posts = new WP_Query($this->get_main_query_args());
9837 +
9838 + if ($posts->have_posts()) {
9839 + // Render filters if not slider
9840 + if ('slider' !== $settings['layout_select']) {
9841 + $this->render_grid_filters($settings);
9842 + $this->add_grid_settings($settings);
9843 + $render_attribute = $this->get_render_attribute_string('grid-settings');
9844 + } else {
9845 + // If slider
9846 + $this->add_slider_settings($settings);
9847 + $render_attribute = $this->get_render_attribute_string('slider-settings');
9848 + }
9849 +
9850 + echo '<section class="king-addons-grid elementor-clearfix" ' . $render_attribute . '>';
9851 +
9852 + while ($posts->have_posts()) {
9853 + $posts->the_post();
9854 + $post_class = implode(' ', get_post_class('king-addons-grid-item elementor-clearfix', get_the_ID()));
9855 +
9856 + echo '<article class="' . esc_attr($post_class) . '">';
9857 + // Check password
9858 + $this->render_password_protected_input();
9859 +
9860 + echo '<div class="king-addons-grid-item-inner">';
9861 + // Location: ABOVE
9862 + $this->get_elements_by_location('above', $settings, get_the_ID());
9863 +
9864 + // If has featured image, render
9865 + if ('yes' !== $settings['hide_post_thumbnail']) {
9866 + echo '<div class="king-addons-grid-media-wrap' . esc_attr($this->get_image_effect_class($settings)) . '" data-overlay-link="' . esc_attr($settings['overlay_post_link']) . '">';
9867 + $this->render_post_thumbnail($settings);
9868 +
9869 + echo '<div class="king-addons-grid-media-hover king-addons-animation-wrap">';
9870 + $this->render_media_overlay($settings);
9871 + $this->get_elements_by_location('over', $settings, get_the_ID());
9872 + echo '</div>';
9873 +
9874 + echo '</div>';
9875 + }
9876 +
9877 + // Location: BELOW
9878 + $this->get_elements_by_location('below', $settings, get_the_ID());
9879 + echo '</div>';
9880 +
9881 + echo '</article>';
9882 + }
9883 + echo '</section>';
9884 +
9885 + // Reset
9886 + wp_reset_postdata();
9887 +
9888 + // If slider, render nav
9889 + if ('slider' === $settings['layout_select']) {
9890 + echo '<div class="king-addons-grid-slider-arrow-container">';
9891 + echo ' <div class="king-addons-grid-slider-prev-arrow king-addons-grid-slider-arrow" id="king-addons-grid-slider-prev-' . esc_attr($this->get_id()) . '">' . Core::getIcon($settings['layout_slider_nav_icon'], '') . '</div>';
9892 + echo ' <div class="king-addons-grid-slider-next-arrow king-addons-grid-slider-arrow" id="king-addons-grid-slider-next-' . esc_attr($this->get_id()) . '">' . Core::getIcon($settings['layout_slider_nav_icon'], '') . '</div>';
9893 + echo '</div>';
9894 +
9895 + echo '<div class="king-addons-grid-slider-dots"></div>';
9896 + }
9897 +
9898 + // Render pagination if needed
9899 + $this->render_grid_pagination($settings);
9900 + } else {
9901 + // If no posts found
9902 + if ('dynamic' === $settings['query_selection']) {
9903 + echo '<h2>' . esc_html($settings['query_not_found_text']) . '</h2>';
9904 + }
9905 + }
9906 + }
9907 +}