PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.21
Shortcodes and extra features for Phlox theme v2.17.21
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elementor / widgets / custom-list.php
auxin-elements / includes / elementor / widgets Last commit date
theme-elements 6 months ago accordion.php 6 months ago audio.php 6 months ago before-after.php 6 months ago button.php 6 months ago carousel-navigation.php 6 months ago circle-chart.php 6 months ago contact-box.php 6 months ago contact-form.php 6 months ago custom-list.php 6 months ago divider.php 6 months ago gallery.php 6 months ago gmap.php 3 days ago heading-modern.php 5 months ago icon.php 6 months ago image.php 6 months ago mailchimp.php 6 months ago modern-button.php 6 months ago products-grid.php 6 months ago quote.php 6 months ago recent-comments.php 6 months ago recent-posts-grid-carousel.php 1 month ago recent-posts-land-style.php 6 months ago recent-posts-masonry.php 6 months ago recent-posts-tiles-carousel.php 6 months ago recent-posts-tiles.php 6 months ago recent-posts-timeline.php 6 months ago recent-products.php 6 months ago responsive-table.php 6 months ago search.php 6 months ago staff.php 6 months ago svg.php 6 months ago tabs.php 6 months ago testimonial.php 6 months ago text.php 6 months ago touch-slider.php 6 months ago video.php 6 months ago
custom-list.php
1161 lines
1 <?php
2 namespace Auxin\Plugin\CoreElements\Elementor\Elements;
3
4 use Elementor\Plugin;
5 use Elementor\Widget_Base;
6 use Elementor\Controls_Manager;
7 use Elementor\Group_Control_Typography;
8 use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
9 use Elementor\Group_Control_Border;
10 use Elementor\Group_Control_Box_Shadow;
11 use Elementor\Group_Control_Background;
12 use Elementor\Repeater;
13
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit; // Exit if accessed directly.
17 }
18
19 /**
20 * Elementor 'Custom List' widget.
21 *
22 * Elementor widget that displays an 'Custom List' with lightbox.
23 *
24 * @since 1.0.0
25 */
26 class CustomList extends Widget_Base {
27
28 /**
29 * Get widget name.
30 *
31 * Retrieve 'Custom List' widget name.
32 *
33 * @since 1.0.0
34 * @access public
35 *
36 * @return string Widget name.
37 */
38 public function get_name() {
39 return 'aux_icon_list';
40 }
41
42 /**
43 * Get widget title.
44 *
45 * Retrieve 'Custom List' widget title.
46 *
47 * @since 1.0.0
48 * @access public
49 *
50 * @return string Widget title.
51 */
52 public function get_title() {
53 return __('Flexible List', 'auxin-elements' );
54 }
55
56 public function has_widget_inner_wrapper(): bool {
57 return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
58 }
59
60
61 /**
62 * Get widget icon.
63 *
64 * Retrieve 'Custom List' widget icon.
65 *
66 * @since 1.0.0
67 * @access public
68 *
69 * @return string Widget icon.
70 */
71 public function get_icon() {
72 return 'eicon-bullet-list auxin-badge';
73 }
74
75 /**
76 * Get widget categories.
77 *
78 * Retrieve 'Custom List' widget icon.
79 *
80 * @since 1.0.0
81 * @access public
82 *
83 * @return string Widget icon.
84 */
85 public function get_categories() {
86 return array( 'auxin-core' );
87 }
88
89 /**
90 * Register 'Custom List' widget controls.
91 *
92 * Adds different input fields to allow the user to change and customize the widget settings.
93 *
94 * @since 1.0.0
95 * @access protected
96 */
97 protected function register_controls() {
98
99 /*-----------------------------------------------------------------------------------*/
100 /* Content TAB
101 /*-----------------------------------------------------------------------------------*/
102
103 $this->start_controls_section(
104 'list_items_section',
105 array(
106 'label' => __('Content', 'auxin-elements' ),
107 )
108 );
109
110 $repeater = new Repeater();
111
112 $repeater->add_control(
113 'text_primary',
114 array(
115 'label' => __( 'Text', 'auxin-elements' ),
116 'type' => Controls_Manager::TEXT,
117 'default' => 'List Item',
118 'label_block' => true
119 )
120 );
121
122 $repeater->add_control(
123 'aux_custom_list_icon',
124 array(
125 'label' => __( 'Icon', 'auxin-elements' ),
126 'type' => Controls_Manager::ICONS
127 )
128 );
129
130 $repeater->add_control(
131 'text_secondary',
132 array(
133 'label' => __( 'Secondary Text', 'auxin-elements' ),
134 'type' => Controls_Manager::TEXT,
135 'default' => '',
136 'label_block' => true
137 )
138 );
139
140 $repeater->add_control(
141 'link',
142 array(
143 'label' => __('Link','auxin-elements' ),
144 'type' => Controls_Manager::URL,
145 'placeholder' => '',
146 'show_external' => true,
147 'label_block' => true,
148 'dynamic' => [
149 'active' => true
150 ]
151 )
152 );
153
154 $repeater->add_control(
155 'display_advanced',
156 array(
157 'label' => __( 'Customize this item', 'auxin-elements' ),
158 'type' => Controls_Manager::SWITCHER,
159 'label_on' => __( 'On', 'auxin-elements' ),
160 'label_off' => __( 'Off', 'auxin-elements' ),
161 'return_value' => 'yes',
162 'default' => 'no'
163 )
164 );
165
166 $repeater->add_responsive_control(
167 'icon_custom_style_heading',
168 array(
169 'label' => __( 'Icon Styles:', 'auxin-elements' ),
170 'type' => Controls_Manager::HEADING,
171 'condition' => array(
172 'display_advanced' => 'yes'
173 ),
174 'separator' => 'before'
175 )
176 );
177
178 $repeater->add_responsive_control(
179 'icon_color',
180 array(
181 'label' => __( 'Color', 'auxin-elements' ),
182 'type' => Controls_Manager::COLOR,
183 'selectors' => array(
184 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-icon' => 'color: {{VALUE}};',
185 ),
186 'condition' => array(
187 'display_advanced' => 'yes'
188 )
189 )
190 );
191
192 $repeater->add_responsive_control(
193 'icon_background_color',
194 array(
195 'label' => __( 'Background Color', 'auxin-elements' ),
196 'type' => Controls_Manager::COLOR,
197 'selectors' => array(
198 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-icon' => 'background-color: {{VALUE}};',
199 ),
200 'condition' => array(
201 'display_advanced' => 'yes'
202 )
203 )
204 );
205
206 $repeater->add_responsive_control(
207 'icon_item_margin',
208 array(
209 'label' => __( 'Margin', 'auxin-elements' ),
210 'type' => Controls_Manager::DIMENSIONS,
211 'size_units' => array( 'px', 'em' ),
212 'selectors' => array(
213 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
214 ),
215 'condition' => array(
216 'display_advanced' => 'yes'
217 ),
218 'separator'=> 'after'
219 )
220 );
221
222 $repeater->add_responsive_control(
223 'text_custom_style_heading',
224 array(
225 'label' => __( 'Text Styles:', 'auxin-elements' ),
226 'type' => Controls_Manager::HEADING,
227 'condition' => array(
228 'display_advanced' => 'yes'
229 ),
230 'separator' => 'before'
231 )
232 );
233
234 $repeater->add_responsive_control(
235 'text_primary_color',
236 array(
237 'label' => __( 'Color', 'auxin-elements' ),
238 'type' => Controls_Manager::COLOR,
239 'selectors' => array(
240 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-text' => 'color: {{VALUE}};',
241 ),
242 'condition' => array(
243 'display_advanced' => 'yes'
244 )
245 )
246 );
247
248 $repeater->add_group_control(
249 Group_Control_Typography::get_type(),
250 array(
251 'name' => 'text_primary_typography',
252 'global' => [
253 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
254 ],
255 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-text',
256 'condition'=> array(
257 'display_advanced' => 'yes'
258 )
259 )
260 );
261
262 $repeater->add_responsive_control(
263 'text_primary_margin',
264 array(
265 'label' => __( 'Margin', 'auxin-elements' ),
266 'type' => Controls_Manager::DIMENSIONS,
267 'size_units' => array( 'px', 'em' ),
268 'selectors' => array(
269 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-text' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
270 ),
271 'condition' => array(
272 'display_advanced' => 'yes'
273 )
274 )
275 );
276
277 $repeater->add_control(
278 'text_tag',
279 array(
280 'label' => __( 'Text HTML Tag', 'auxin-elements' ),
281 'type' => Controls_Manager::SELECT,
282 'options' => array(
283 'span' => 'span',
284 'p' => 'p',
285 'h1' => 'H1',
286 'h2' => 'H2',
287 'h3' => 'H3',
288 'h4' => 'H4',
289 'h5' => 'H5',
290 'h6' => 'H6'
291 ),
292 'default' => 'span',
293 'condition' => array(
294 'display_advanced' => 'yes'
295 ),
296 'separator' => 'after'
297 )
298 );
299
300 $repeater->add_responsive_control(
301 'text_secondary_color',
302 array(
303 'label' => __( 'Secondary Text Color', 'auxin-elements' ),
304 'type' => Controls_Manager::COLOR,
305 'selectors' => array(
306 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-text2' => 'color: {{VALUE}};',
307 ),
308 'condition' => array(
309 'display_advanced' => 'yes',
310 'text_secondary!' => ''
311 )
312 )
313 );
314
315 $repeater->add_group_control(
316 Group_Control_Typography::get_type(),
317 array(
318 'name' => 'text_secondary_typography',
319 'global' => [
320 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
321 ],
322 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-text2',
323 'condition'=> array(
324 'display_advanced' => 'yes',
325 'text_secondary!' => ''
326 )
327 )
328 );
329
330 $repeater->add_responsive_control(
331 'text_secondary_margin',
332 array(
333 'label' => __( 'Secondary Text Margin', 'auxin-elements' ),
334 'type' => Controls_Manager::DIMENSIONS,
335 'size_units' => array( 'px', 'em' ),
336 'selectors' => array(
337 '{{WRAPPER}} {{CURRENT_ITEM}} .aux-icon-list-text2' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
338 ),
339 'condition' => array(
340 'display_advanced' => 'yes',
341 'text_secondary!' => ''
342 ),
343 'separator'=> 'after'
344 )
345 );
346
347 $this->add_control(
348 'list',
349 array(
350 'label' => __( 'List Items', 'auxin-elements' ),
351 'type' => Controls_Manager::REPEATER,
352 'default' => array(
353 array(
354 'text_primary' => 'List Item #1',
355 'icon' => 'check-1'
356 ),
357 array(
358 'text_primary' => 'List Item #2',
359 'icon' => 'check-1'
360 ),
361 array(
362 'text_primary' => 'List Item #3',
363 'icon' => 'check-1'
364 )
365 ),
366 'fields' => $repeater->get_controls(),
367 'title_field' => '{{{ text_primary }}}'
368 )
369 );
370
371 $this->end_controls_section();
372
373 /*-----------------------------------------------------------------------------------*/
374 /* Style TAB
375 /*-----------------------------------------------------------------------------------*/
376
377 /* List Section
378 /*-------------------------------------*/
379
380 $this->start_controls_section(
381 'list_layout_section',
382 array(
383 'label' => __( 'Layout', 'auxin-elements' ),
384 'tab' => Controls_Manager::TAB_LAYOUT
385 )
386 );
387
388 $this->add_control(
389 'direction',
390 array(
391 'label' => __( 'Direction', 'auxin-elements' ),
392 'type' => Controls_Manager::SELECT,
393 'options' => array(
394 'default' => __( 'Default' , 'auxin-elements' ),
395 'vertical' => __( 'Vertical' , 'auxin-elements' ),
396 'horizontal' => __( 'Horizontal', 'auxin-elements' )
397 ),
398 'default' => 'default'
399 )
400 );
401
402 $this->add_responsive_control(
403 'list_height',
404 array(
405 'label' => __( 'Height', 'auxin-elements' ),
406 'type' => Controls_Manager::SLIDER,
407 'size_units' => array( 'px', 'em' ),
408 'range' => array(
409 'px' => array(
410 'max' => 1000
411 ),
412 'em' => array(
413 'max' => 30
414 )
415 ),
416 'selectors' => array(
417 '{{WRAPPER}} .aux-icon-list-items' => 'max-height: {{SIZE}}{{UNIT}};',
418 ),
419 'condition' => array(
420 'direction' => 'vertical'
421 )
422 )
423 );
424
425 $this->add_responsive_control(
426 'list_width',
427 array(
428 'label' => __( 'Width', 'auxin-elements' ),
429 'type' => Controls_Manager::SLIDER,
430 'size_units' => array( 'px', 'em', '%' ),
431 'range' => array(
432 'px' => array(
433 'max' => 1000
434 ),
435 'em' => array(
436 'max' => 30
437 ),
438 '%' => array(
439 'max' => 100
440 )
441 ),
442 'selectors' => array(
443 '{{WRAPPER}} .aux-icon-list-item' => 'min-width: {{SIZE}}{{UNIT}};',
444 ),
445 'condition' => array(
446 'direction' => 'horizontal'
447 )
448 )
449 );
450
451 $this->add_responsive_control(
452 'list_column_gutter',
453 array(
454 'label' => __( 'Space Between Columns', 'auxin-elements' ),
455 'type' => Controls_Manager::SLIDER,
456 'size_units' => array( 'px', 'em' ),
457 'range' => array(
458 'px' => array(
459 'max' => 100
460 ),
461 'em' => array(
462 'max' => 10
463 )
464 ),
465 'selectors' => array(
466 '{{WRAPPER}} .aux-icon-list-item' => 'margin-right: {{SIZE}}{{UNIT}};',
467 '{{WRAPPER}} .aux-direction-horizontal .aux-icon-list-item:after' => 'right: calc(-{{SIZE}}{{UNIT}}/2);',
468 ),
469 'condition' => array(
470 'direction!' => 'default'
471 )
472 )
473 );
474
475 $this->add_responsive_control(
476 'align',
477 array(
478 'label' => __('Horizontal Align','auxin-elements'),
479 'type' => Controls_Manager::CHOOSE,
480 'options' => array(
481 'flex-start' => array(
482 'title' => __( 'Left', 'auxin-elements' ),
483 'icon' => 'eicon-text-align-left',
484 ),
485 'center' => array(
486 'title' => __( 'Center', 'auxin-elements' ),
487 'icon' => 'eicon-text-align-center',
488 ),
489 'flex-end' => array(
490 'title' => __( 'Right', 'auxin-elements' ),
491 'icon' => 'eicon-text-align-right',
492 ),
493 ),
494 'default' => 'center',
495 'toggle' => true,
496 'selectors_dictionary' => [
497 'flex-start' => 'flex-start; text-align:left;',
498 'center' => 'center; text-align:center;',
499 'flex-end' => 'flex-end;text-align:right;'
500 ],
501 'selectors' => array(
502 '{{WRAPPER}} .aux-icon-list-item, {{WRAPPER}} .aux-icon-list-items' => 'justify-content: {{VALUE}}',
503 )
504 )
505 );
506
507 $this->add_responsive_control(
508 'align_vertical',
509 array(
510 'label' => __('Vertical Align','auxin-elements'),
511 'type' => Controls_Manager::CHOOSE,
512 'options' => array(
513 'flex-start' => array(
514 'title' => __( 'Left', 'auxin-elements' ),
515 'icon' => 'eicon-v-align-top',
516 ),
517 'center' => array(
518 'title' => __( 'Center', 'auxin-elements' ),
519 'icon' => 'eicon-v-align-middle',
520 ),
521 'flex-end' => array(
522 'title' => __( 'Right', 'auxin-elements' ),
523 'icon' => 'eicon-v-align-bottom',
524 )
525 ),
526 'default' => '',
527 'toggle' => true,
528 'selectors' => array(
529 '{{WRAPPER}} .aux-direction-horizontal' => 'align-items: {{VALUE}}',
530 '{{WRAPPER}} .aux-icon-list-item' => 'align-items: {{VALUE}}'
531 )
532 )
533 );
534
535
536 $this->end_controls_section();
537
538 /*-----------------------------------------------------------------------------------*/
539 /* Style TAB
540 /*-----------------------------------------------------------------------------------*/
541
542 /* List Section
543 /*-------------------------------------*/
544
545 $this->start_controls_section(
546 'list_style_section',
547 array(
548 'label' => __( 'List', 'auxin-elements' ),
549 'tab' => Controls_Manager::TAB_STYLE
550 )
551 );
552
553 $this->add_responsive_control(
554 'list_items_space',
555 array(
556 'label' => __( 'Space Between Rows', 'auxin-elements' ),
557 'type' => Controls_Manager::SLIDER,
558 'size_units' => array( 'px', 'em' ),
559 'range' => array(
560 'px' => array(
561 'max' => 25
562 )
563 ),
564 'selectors' => array(
565 '{{WRAPPER}} .aux-icon-list-item:not(:last-child)' => 'padding-bottom: {{SIZE}}{{UNIT}};',
566 '{{WRAPPER}} .aux-icon-list-item:not(:first-child)' => 'margin-top: {{SIZE}}{{UNIT}};'
567 )
568 )
569 );
570
571 $this->add_control(
572 'connector',
573 array(
574 'label' => __( 'Display Connector', 'auxin-elements' ),
575 'type' => Controls_Manager::SWITCHER,
576 'label_on' => __( 'On', 'auxin-elements' ),
577 'label_off' => __( 'Off', 'auxin-elements' ),
578 'return_value' => 'yes',
579 'default' => 'yes',
580 'separator' => 'before'
581 )
582 );
583
584 $this->add_control(
585 'connector_style',
586 array(
587 'label' => __( 'Style', 'auxin-elements' ),
588 'type' => Controls_Manager::SELECT,
589 'options' => array(
590 'solid' => __( 'Solid', 'auxin-elements' ),
591 'double' => __( 'Double', 'auxin-elements' ),
592 'dotted' => __( 'Dotted', 'auxin-elements' ),
593 'dashed' => __( 'Dashed', 'auxin-elements' ),
594 ),
595 'default' => 'dashed',
596 'selectors' => array(
597 '{{WRAPPER}} .aux-icon-list-item .aux-list-connector' => 'border-bottom-style: {{VALUE}};',
598 ),
599 'condition' => array(
600 'connector' => 'yes'
601 )
602 )
603 );
604
605 $this->add_responsive_control(
606 'connector_weight',
607 array(
608 'label' => __( 'Weight', 'auxin-elements' ),
609 'type' => Controls_Manager::SLIDER,
610 'range' => array(
611 'px' => array(
612 'max' => 10
613 )
614 ),
615 'selectors' => array(
616 '{{WRAPPER}} .aux-icon-list-item .aux-list-connector' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
617 ),
618 'condition' => array(
619 'connector' => 'yes'
620 )
621 )
622 );
623
624 $this->add_responsive_control(
625 'connector_margin_left',
626 array(
627 'label' => __( 'Left Space', 'auxin-elements' ),
628 'type' => Controls_Manager::SLIDER,
629 'range' => array(
630 'px' => array(
631 'max' => 20
632 )
633 ),
634 'selectors' => array(
635 '{{WRAPPER}} .aux-icon-list-item .aux-list-connector' => 'margin-left: {{SIZE}}{{UNIT}};',
636 ),
637 'condition' => array(
638 'connector' => 'yes'
639 )
640 )
641 );
642
643 $this->add_responsive_control(
644 'connector_color',
645 array(
646 'label' => __( 'Color', 'auxin-elements' ),
647 'type' => Controls_Manager::COLOR,
648 'selectors' => array(
649 '{{WRAPPER}} .aux-icon-list-item .aux-list-connector' => 'border-bottom-color: {{VALUE}};'
650 ),
651 'condition' => array(
652 'connector' => 'yes'
653 )
654 )
655 );
656
657 $this->add_control(
658 'divider',
659 array(
660 'label' => __( 'Display Divider', 'auxin-elements' ),
661 'type' => Controls_Manager::SWITCHER,
662 'label_on' => __( 'On', 'auxin-elements' ),
663 'label_off' => __( 'Off', 'auxin-elements' ),
664 'return_value' => 'yes',
665 'default' => 'no',
666 'separator' => 'before'
667 )
668 );
669
670 $this->add_control(
671 'divider_style',
672 array(
673 'label' => __( 'Style', 'auxin-elements' ),
674 'type' => Controls_Manager::SELECT,
675 'options' => array(
676 'solid' => __( 'Solid', 'auxin-elements' ),
677 'double' => __( 'Double', 'auxin-elements' ),
678 'dotted' => __( 'Dotted', 'auxin-elements' ),
679 'dashed' => __( 'Dashed', 'auxin-elements' ),
680 ),
681 'default' => 'solid',
682 'selectors' => array(
683 '{{WRAPPER}} .aux-direction-vertical .aux-icon-list-item:not(:last-child):after' => 'border-bottom-style: {{VALUE}};',
684 '{{WRAPPER}} .aux-direction-horizontal .aux-icon-list-item:after' => 'border-right-style: {{VALUE}};'
685 ),
686 'condition' => array(
687 'divider' => 'yes'
688 )
689 )
690 );
691
692 $this->add_responsive_control(
693 'divider_weight',
694 array(
695 'label' => __( 'Weight', 'auxin-elements' ),
696 'type' => Controls_Manager::SLIDER,
697 'size_units' => array( 'px' ),
698 'range' => array(
699 'px' => array(
700 'max' => 10
701 )
702 ),
703 'selectors' => array(
704 '{{WRAPPER}} .aux-direction-vertical .aux-icon-list-item:not(:last-child):after' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
705 '{{WRAPPER}} .aux-direction-horizontal .aux-icon-list-item:after' => 'border-right-width: {{SIZE}}{{UNIT}};'
706 ),
707 'condition' => array(
708 'divider' => 'yes'
709 )
710 )
711 );
712
713 $this->add_responsive_control(
714 'divider_width',
715 array(
716 'label' => __( 'Width', 'auxin-elements' ),
717 'type' => Controls_Manager::SLIDER,
718 'size_units' => array( 'px', '%' ),
719 'range' => array(
720 'px' => array(
721 'min' => 1,
722 'max' => 1200
723 ),
724 '%' => array(
725 'min' => 1,
726 'max' => 100
727 )
728 ),
729 'selectors' => array(
730 '{{WRAPPER}} .aux-direction-vertical .aux-icon-list-item:after' => 'width: {{SIZE}}{{UNIT}};'
731 ),
732 'condition' => array(
733 'divider' => 'yes',
734 'direction!' => 'horizontal'
735 )
736 )
737 );
738
739 $this->add_responsive_control(
740 'divider_color',
741 array(
742 'label' => __( 'Color', 'auxin-elements' ),
743 'type' => Controls_Manager::COLOR,
744 'selectors' => array(
745 '{{WRAPPER}} .aux-icon-list-divider .aux-icon-list-item:not(:last-child):after' => 'border-bottom-color: {{VALUE}};'
746 ),
747 'selectors' => array(
748 '{{WRAPPER}} .aux-direction-vertical .aux-icon-list-item:not(:last-child):after' => 'border-bottom-color: {{VALUE}};',
749 '{{WRAPPER}} .aux-direction-horizontal .aux-icon-list-item:after' => 'border-right-color: {{VALUE}};'
750 ),
751 'condition' => array(
752 'divider' => 'yes'
753 )
754 )
755 );
756
757 $this->end_controls_section();
758
759
760 /* Text Style Section
761 /*-------------------------------------*/
762
763 $this->start_controls_section(
764 'text_style_section',
765 array(
766 'label' => __( 'Text', 'auxin-elements' ),
767 'tab' => Controls_Manager::TAB_STYLE
768 )
769 );
770
771 $this->add_control(
772 'text_style_heading',
773 array(
774 'label' => __( 'Text', 'auxin-elements' ),
775 'type' => Controls_Manager::HEADING,
776 'separator' => 'before'
777 )
778 );
779
780 $this->add_responsive_control(
781 'text1_color',
782 array(
783 'label' => __( 'Color', 'auxin-elements' ),
784 'type' => Controls_Manager::COLOR,
785 'selectors' => array(
786 '{{WRAPPER}} .aux-icon-list-text' => 'color: {{VALUE}};'
787 )
788 )
789 );
790
791 $this->add_responsive_control(
792 'text1_hover_color',
793 array(
794 'label' => __( 'Hover Color', 'auxin-elements' ),
795 'type' => Controls_Manager::COLOR,
796 'selectors' => array(
797 '{{WRAPPER}} .aux-icon-list-item:hover .aux-icon-list-text' => 'color: {{VALUE}};',
798 )
799 )
800 );
801
802 $this->add_group_control(
803 Group_Control_Typography::get_type(),
804 array(
805 'name' => 'text1_typography',
806 'global' => [
807 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
808 ],
809 'selector' => '{{WRAPPER}} .aux-icon-list-text'
810 )
811 );
812
813 $this->add_responsive_control(
814 'text1_margin',
815 array(
816 'label' => __( 'Text Margin', 'auxin-elements' ),
817 'type' => Controls_Manager::DIMENSIONS,
818 'size_units' => array( 'px', 'em' ),
819 'allowed_dimensions' => 'all',
820 'selectors' => array(
821 '{{WRAPPER}} .aux-icon-list-text' => 'margin:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
822 )
823 )
824 );
825
826 /* Text2 Style Section
827 /*-------------------------------------*/
828
829 $this->add_control(
830 'text2_style_heading',
831 array(
832 'label' => __( 'Secondary Text', 'auxin-elements' ),
833 'type' => Controls_Manager::HEADING,
834 'separator' => 'before',
835 )
836 );
837
838 $this->add_responsive_control(
839 'text2_color',
840 array(
841 'label' => __( 'Color', 'auxin-elements' ),
842 'type' => Controls_Manager::COLOR,
843 'selectors' => array(
844 '{{WRAPPER}} .aux-icon-list-text2' => 'color: {{VALUE}};'
845 )
846 )
847 );
848
849 $this->add_responsive_control(
850 'text2_hover_color',
851 array(
852 'label' => __( 'Hover Color', 'auxin-elements' ),
853 'type' => Controls_Manager::COLOR,
854 'selectors' => array(
855 '{{WRAPPER}} .aux-icon-list-item:hover .aux-icon-list-text2' => 'color: {{VALUE}};',
856 )
857 )
858 );
859
860 $this->add_group_control(
861 Group_Control_Typography::get_type(),
862 array(
863 'name' => 'text2_typography',
864 'global' => [
865 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
866 ],
867 'selector' => '{{WRAPPER}} .aux-icon-list-text2'
868 )
869 );
870
871 $this->add_responsive_control(
872 'text2_margin',
873 array(
874 'label' => __( 'Text Margin', 'auxin-elements' ),
875 'type' => Controls_Manager::DIMENSIONS,
876 'size_units' => array( 'px', 'em' ),
877 'allowed_dimensions' => 'all',
878 'selectors' => array(
879 '{{WRAPPER}} .aux-icon-list-text2' => 'margin:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
880 )
881 )
882 );
883
884 $this->end_controls_section();
885
886 /* Icon Style Section
887 /*-------------------------------------*/
888
889 $this->start_controls_section(
890 'icon_style_section',
891 array(
892 'label' => __( 'Icon', 'auxin-elements' ),
893 'tab' => Controls_Manager::TAB_STYLE
894 )
895 );
896
897 $this->start_controls_tabs( 'icon_style_tabs' );
898
899 $this->start_controls_tab(
900 'icon_style_normal',
901 array(
902 'label' => __( 'Normal' , 'auxin-elements' )
903 )
904 );
905
906 $this->add_responsive_control(
907 'icon_color',
908 array(
909 'label' => __( 'Color', 'auxin-elements' ),
910 'type' => Controls_Manager::COLOR,
911 'default' => '#24af29',
912 'selectors' => array(
913 '{{WRAPPER}} .aux-icon-list-icon' => 'color: {{VALUE}};',
914 '{{WRAPPER}} .aux-icon-list-icon path' => 'fill: {{VALUE}};'
915 )
916 )
917 );
918
919 $this->add_group_control(
920 Group_Control_Background::get_type(),
921 array(
922 'name' => 'icon_background',
923 'selector' => '{{WRAPPER}} .aux-icon-list-item'
924 )
925 );
926
927 $this->end_controls_tab();
928
929 $this->start_controls_tab(
930 'icon_style_hover',
931 array(
932 'label' => __( 'Hover' , 'auxin-elements' )
933 )
934 );
935
936 $this->add_responsive_control(
937 'icon_hover_color',
938 array(
939 'label' => __( 'Color', 'auxin-elements' ),
940 'type' => Controls_Manager::COLOR,
941 'selectors' => array(
942 '{{WRAPPER}} .aux-icon-list-item:hover .aux-icon-list-icon' => 'color: {{VALUE}};',
943 '{{WRAPPER}} .aux-icon-list-item:hover .aux-icon-list-icon path' => 'fill: {{VALUE}};'
944 )
945 )
946 );
947
948 $this->add_group_control(
949 Group_Control_Background::get_type(),
950 array(
951 'name' => 'icon_background_hover',
952 'selector' => '{{WRAPPER}} .aux-icon-list-item:hover'
953 )
954 );
955
956 $this->end_controls_tab();
957
958 $this->end_controls_tabs();
959
960
961 $this->add_responsive_control(
962 'icon_size',
963 array(
964 'label' => __( 'Size', 'auxin-elements' ),
965 'type' => Controls_Manager::SLIDER,
966 'size_units' => array( 'px', 'em' ),
967 'range' => array(
968 'px' => array(
969 'max' => 100
970 ),
971 'em' => array(
972 'max' => 10
973 )
974 ),
975 'selectors' => array(
976 '{{WRAPPER}} .aux-icon-list-icon' => 'font-size: {{SIZE}}{{UNIT}};',
977 '{{WRAPPER}} svg' => 'height: {{SIZE}}{{UNIT}};width: auto;',
978 ),
979 'separator' => 'before'
980 )
981 );
982
983 $this->add_responsive_control(
984 'icon_margin',
985 array(
986 'label' => __( 'Margin', 'auxin-elements' ),
987 'type' => Controls_Manager::DIMENSIONS,
988 'size_units' => array( 'px', 'em' ),
989 'allowed_dimensions' => 'all',
990 'selectors' => array(
991 '{{WRAPPER}} .aux-icon-list-icon' => 'margin:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
992 )
993 )
994 );
995
996 $this->add_responsive_control(
997 'icon_padding',
998 array(
999 'label' => __( 'Padding', 'auxin-elements' ),
1000 'type' => Controls_Manager::DIMENSIONS,
1001 'size_units' => array( 'px', 'em' ),
1002 'allowed_dimensions' => 'all',
1003 'selectors' => array(
1004 '{{WRAPPER}} .aux-icon-list-icon' => 'padding:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; line-height:0;'
1005 )
1006 )
1007 );
1008
1009 $this->end_controls_section();
1010
1011 /* List Item Style Section
1012 /*-------------------------------------*/
1013
1014 $this->start_controls_section(
1015 'list_item_style_section',
1016 array(
1017 'label' => __( 'List Item', 'auxin-elements' ),
1018 'tab' => Controls_Manager::TAB_STYLE
1019 )
1020 );
1021
1022 $this->add_responsive_control(
1023 'list_padding',
1024 array(
1025 'label' => __( 'Padding', 'auxin-elements' ),
1026 'type' => Controls_Manager::DIMENSIONS,
1027 'size_units' => array( 'px', 'em', '%' ),
1028 'separator' => 'before',
1029 'selectors' => array(
1030 '{{WRAPPER}} .aux-icon-list-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1031 )
1032 )
1033 );
1034
1035 $this->add_responsive_control(
1036 'list_margin',
1037 array(
1038 'label' => __( 'Margin', 'auxin-elements' ),
1039 'type' => Controls_Manager::DIMENSIONS,
1040 'size_units' => array( 'px', 'em' ),
1041 'allowed_dimensions' => 'all',
1042 'selectors' => array(
1043 '{{WRAPPER}} .aux-icon-list-item' => 'margin:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1044 ),
1045 'separator' => 'after'
1046 )
1047 );
1048
1049 $this->start_controls_tabs( 'list_colors' );
1050
1051 $this->start_controls_tab(
1052 'list_status_normal',
1053 array(
1054 'label' => __( 'Normal' , 'auxin-elements' )
1055 )
1056 );
1057
1058 $this->add_group_control(
1059 Group_Control_Box_Shadow::get_type(),
1060 array(
1061 'name' => 'list_boxshadow_normal',
1062 'label' => __( 'Box Shadow Normal', 'auxin-elements' ),
1063 'selector' => '{{WRAPPER}} .aux-icon-list-item',
1064 'separator' => 'none'
1065 )
1066 );
1067
1068 $this->add_group_control(
1069 Group_Control_Border::get_type(),
1070 array(
1071 'name' => 'list_border_normal',
1072 'selector' => '{{WRAPPER}} .aux-icon-list-item',
1073 'separator' => 'none'
1074 )
1075 );
1076
1077 $this->add_group_control(
1078 Group_Control_Background::get_type(),
1079 array(
1080 'name' => 'list_background_normal',
1081 'selector' => '{{WRAPPER}} .aux-icon-list-item',
1082 'separator' => 'none'
1083 )
1084 );
1085
1086 $this->end_controls_tab();
1087
1088 $this->start_controls_tab(
1089 'list_status_hover',
1090 array(
1091 'label' => __( 'Hover' , 'auxin-elements' )
1092 )
1093 );
1094
1095 $this->add_group_control(
1096 Group_Control_Box_Shadow::get_type(),
1097 array(
1098 'name' => 'list_boxshadow_hover',
1099 'label' => __( 'Box Shadow Hover', 'auxin-elements' ),
1100 'selector' => '{{WRAPPER}} .aux-icon-list-item:hover',
1101 'separator' => 'none'
1102 )
1103 );
1104
1105 $this->add_group_control(
1106 Group_Control_Border::get_type(),
1107 array(
1108 'name' => 'list_border_hover',
1109 'selector' => '{{WRAPPER}} .aux-icon-list-item:hover',
1110 'separator' => 'none'
1111 )
1112 );
1113
1114 $this->add_group_control(
1115 Group_Control_Background::get_type(),
1116 array(
1117 'name' => 'list_background_hover',
1118 'selector' => '{{WRAPPER}} .aux-icon-list-item:hover',
1119 'separator' => 'none'
1120 )
1121 );
1122
1123 $this->end_controls_tab();
1124
1125 $this->end_controls_tabs();
1126
1127 $this->end_controls_section();
1128 }
1129
1130 /**
1131 * Render 'Custom List' widget output on the frontend.
1132 *
1133 * Written in PHP and used to generate the final HTML.
1134 *
1135 * @since 1.0.0
1136 * @access protected
1137 */
1138 protected function render() {
1139
1140 $settings = $this->get_settings_for_display();
1141
1142 foreach ( $settings['list'] as $key => $list_item ) {
1143
1144 $settings['list'][$key]['icon'] = ! empty( $list_item['aux_custom_list_icon']['value'] ) ? $list_item['aux_custom_list_icon'] : ( ! empty( $list_item['icon'] ) ? $list_item['icon'] : '' ) ;
1145
1146 }
1147
1148 $args = array(
1149 'list' => $settings['list'], // repeater items
1150 'direction' => $settings['direction'],
1151 'connector' => $settings['connector'], // A line that connects primary and secondary text
1152 'divider' => $settings['divider'], // A line between list items
1153 'item_class_prefix' => '' // Default class prefix for each repeater item
1154 );
1155
1156 // pass the args through the corresponding shortcode callback
1157 echo auxin_widget_list_callback( $args );
1158 }
1159
1160 }
1161