Premium Addons for Elementor - Version 3.9.1

Version Description

  • Tweak: Premium Carousel widget now fully compatible with Entrance Animations for the inner elements.
  • Tweak: Added Entrance Animation option to navigation dots in Vertical Scroll widget.
  • Tweak: Added Icons Size option for lightbox, icons and videos icon in Media Grid widget.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 3.9.1
Comparing to
See all releases

Code changes from version 3.9.0 to 3.9.1

admin/assets/css/notice.css CHANGED
@@ -85,4 +85,39 @@
85
}
86
.error.pa-notice-wrap .pa-text-wrap a:not(:first-of-type) {
87
margin-left: 0.3em;
88
}
85
}
86
.error.pa-notice-wrap .pa-text-wrap a:not(:first-of-type) {
87
margin-left: 0.3em;
88
+ }
89
+ /*
90
+ * Black Friday Notice
91
+ */
92
+ .error.pa-bf-notice-wrap {
93
+ position: relative;
94
+ border: none;
95
+ padding: 0;
96
+ }
97
+ .pa-bf-notice-img {
98
+ position: relative;
99
+ }
100
+ .pa-bf-notice-wrap img {
101
+ width: 100%;
102
+ height: 100%;
103
+ display: block;
104
+ }
105
+ .pa-bf-notice-img .pa-bf-notice-cta {
106
+ position: absolute;
107
+ top: 0;
108
+ left: 0;
109
+ width: 100%;
110
+ height: 100%;
111
+ }
112
+ .pa-bf-notice-wrap .pa-notice-close {
113
+ position: absolute;
114
+ z-index: 99;
115
+ color: #fff;
116
+ top: 1em;
117
+ right: 0.8em;
118
+ }
119
+ .pa-bf-notice-wrap .pa-notice-close:focus {
120
+ outline: none;
121
+ border: none;
122
+ box-shadow: none;
123
}
admin/images/premium-addons-black-friday.png ADDED
Binary file
admin/includes/admin-notices.php CHANGED
@@ -29,7 +29,6 @@ class Admin_Notices {
29
30
add_action( 'wp_ajax_pa_dismiss_admin_notice', array( $this, 'dismiss_admin_notice' ) );
31
32
-
33
}
34
35
/**
@@ -318,34 +317,29 @@ class Admin_Notices {
318
319
$license_status = get_option( 'papro_license_status' );
320
321
- if( $is_papro_installed && 'valid' === $license_status )
322
return;
323
324
- $theme = Helper_Functions::get_installed_theme();
325
-
326
- $link = sprintf( 'https://premiumaddons.com/black-friday?utm_source=black-friday-2019-notification&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme );
327
-
328
- $bf_notice = get_option( 'papro_bf_notice' );
329
-
330
- if ( '1' === $bf_notice ) {
331
- return;
332
- } else if ( '1' !== $bf_notice ) {
333
- $optout_url = wp_nonce_url( add_query_arg( 'papro_bf', 'opt_out' ), 'opt_out' );
334
-
335
- $message = '<p class="pa-text-wrap">';
336
-
337
- $message .= sprintf( '<img class="pa-notice-logo" src="%s">', PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png' );
338
339
- $message .= sprintf( '<strong>%s</strong><span>%s</span>' , __( '2019 Black Friday Sale!.&nbsp;', 'premium-addons-for-elementor' ), __('Early Exclusive Access to Our Secret Deal.&nbsp;', 'premium-addons-for-elementor') );
340
341
- $message .= sprintf( '<a class="pa-notice-cta" href="%s" target="_blank">%s</a>', $link , __( 'Check it Out', 'premium-addons-for-elementor' ) );
342
343
- $message .= sprintf( __('<a class="pa-notice-close" href="%s"><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
344
345
- $this->render_admin_notices( $message );
346
347
- }
348
-
349
}
350
351
/**
@@ -404,9 +398,9 @@ class Admin_Notices {
404
*
405
* @return void
406
*/
407
- private function render_admin_notices( $message ) {
408
?>
409
- <div class="error pa-new-feature-notice">
410
<?php echo $message; ?>
411
</div>
412
<?php
29
30
add_action( 'wp_ajax_pa_dismiss_admin_notice', array( $this, 'dismiss_admin_notice' ) );
31
32
}
33
34
/**
317
318
$license_status = get_option( 'papro_license_status' );
319
320
+ $bf_notice = get_option( 'papro_bf_notice' );
321
+
322
+ if( ( $is_papro_installed && 'valid' === $license_status ) || '1' === $bf_notice )
323
return;
324
325
+ $theme = Helper_Functions::get_installed_theme();
326
327
+ $link = sprintf( 'https://premiumaddons.com/black-friday?utm_source=black-friday-2019-notification&utm_medium=wp-dash&utm_campaign=get-pro&utm_term=%s', $theme );
328
329
+ $optout_url = wp_nonce_url( add_query_arg( 'papro_bf', 'opt_out' ), 'opt_out' );
330
331
+ $message = '<div class="pa-bf-notice-img">';
332
333
+ $message .= sprintf( '<img src="%s">', PREMIUM_ADDONS_URL .'admin/images/premium-addons-black-friday.png' );
334
335
+ $message .= sprintf( '<a class="pa-bf-notice-cta" href="%s" target="_blank"></a>', $link );
336
+
337
+ $message .= '</div>';
338
+
339
+ $message .= sprintf( __('<a class="pa-notice-close" href="%s"><span class="dashicons dashicons-dismiss"></span></a>', 'premium-addons-for-elementor'), $optout_url );
340
+
341
+ $this->render_admin_notices( $message, 'pa-bf-notice-wrap' );
342
+
343
}
344
345
/**
398
*
399
* @return void
400
*/
401
+ private function render_admin_notices( $message, $class ) {
402
?>
403
+ <div class="error pa-new-feature-notice <?php echo $class; ?>">
404
<?php echo $message; ?>
405
</div>
406
<?php
assets/frontend/js/premium-addons.js CHANGED
@@ -470,9 +470,12 @@
470
});
471
}
472
473
- carouselElement.on("init", function(event) {
474
event.preventDefault();
475
-
476
$(this)
477
.find("item-wrapper.slick-active")
478
.each(function() {
@@ -526,34 +529,67 @@
526
);
527
}
528
});
529
530
- carouselElement.on("afterChange", function(event, slick, currentSlide) {
531
var slidesScrolled = slick.options.slidesToScroll,
532
slidesToShow = slideToShow(slick),
533
centerMode = slick.options.centerMode,
534
slideToAnimate = currentSlide + slidesToShow - 1;
535
536
if (slidesScrolled === 1) {
537
- if (!centerMode === true) {
538
var $inViewPort = $(this).find(
539
"[data-slick-index='" + slideToAnimate + "']"
540
);
541
-
542
if ("null" != carouselSettings["animation"]) {
543
- $inViewPort
544
- .find(
545
- "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
546
- )
547
.addClass(carouselSettings["animation"])
548
.removeClass("premium-carousel-content-hidden");
549
}
550
}
551
} else {
552
for (var i = slidesScrolled + currentSlide; i >= 0; i--) {
553
- $inViewPort = $(this).find(
554
- "[data-slick-index='" + i + "']"
555
- );
556
- if ("null" != carouselSettings["animation"]) {
557
$inViewPort
558
.find(
559
"p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
470
});
471
}
472
473
+ carouselElement.on("init", function( event ) {
474
event.preventDefault();
475
+
476
+ // restartAnimations();
477
+
478
+
479
$(this)
480
.find("item-wrapper.slick-active")
481
.each(function() {
529
);
530
}
531
});
532
+
533
+ function restartAnimations() {
534
+
535
+ var $slides = carouselElement.find( ".premium-carousel-template" );
536
+
537
+ $slides.find( ".animated" ).each( function( index, elem ) {
538
+ var settings = $( elem ).data( "settings" ),
539
+ animation = settings._animation || settings.animation;
540
541
+ $( elem ).removeClass( "animated " + animation ).addClass( "elementor-invisible" );
542
+ });
543
+ };
544
+
545
+ function triggerAnimation() {
546
+
547
+ carouselElement.find( ".slick-active .elementor-invisible" ).each(function( index, elem ) {
548
+
549
+ var settings = $( elem ).data( "settings" );
550
+
551
+ if ( ! settings._animation && ! settings.animation )
552
+ return;
553
+
554
+ var delay = settings._animation_delay ? settings._animation_delay : 0,
555
+ animation = settings._animation || settings.animation;
556
+
557
+ setTimeout(function() {
558
+ $( elem ).removeClass( "elementor-invisible" ).addClass( animation + ' animated' );
559
+ }, delay );
560
+
561
+ });
562
+
563
+ }
564
+
565
+ carouselElement.on("afterChange", function( event, slick, currentSlide ) {
566
var slidesScrolled = slick.options.slidesToScroll,
567
slidesToShow = slideToShow(slick),
568
centerMode = slick.options.centerMode,
569
slideToAnimate = currentSlide + slidesToShow - 1;
570
571
+
572
+ restartAnimations();
573
+
574
+ triggerAnimation();
575
+
576
if (slidesScrolled === 1) {
577
+ if (! centerMode === true) {
578
var $inViewPort = $(this).find(
579
"[data-slick-index='" + slideToAnimate + "']"
580
);
581
+
582
if ("null" != carouselSettings["animation"]) {
583
+ $inViewPort.find( "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button" )
584
.addClass(carouselSettings["animation"])
585
.removeClass("premium-carousel-content-hidden");
586
}
587
}
588
} else {
589
for (var i = slidesScrolled + currentSlide; i >= 0; i--) {
590
+ $inViewPort = $(this).find( "[data-slick-index='" + i + "']" );
591
+
592
+ if ("null" != carouselSettings["animation"] ) {
593
$inViewPort
594
.find(
595
"p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
assets/frontend/js/premium-vscroll.js CHANGED
@@ -91,6 +91,11 @@
91
92
self.fullSectionHandler();
93
}
94
95
};
96
91
92
self.fullSectionHandler();
93
}
94
+
95
+ if( settings.animation ) {
96
+ $instance.find( ".premium-vscroll-dots" ).removeClass( "elementor-invisible" ).addClass( "animated " + settings.animation + " animated-" + settings.duration );
97
+ }
98
+
99
100
};
101
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
Plugin Name: Premium Addons for Elementor
4
Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
Plugin URI: https://premiumaddons.com
6
- Version: 3.9.0
7
Author: Leap13
8
Author URI: https://leap13.com/
9
Text Domain: premium-addons-for-elementor
@@ -14,12 +14,12 @@ License: GNU General Public License v3.0
14
if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
16
// Define Constants
17
- define('PREMIUM_ADDONS_VERSION', '3.9.0');
18
define('PREMIUM_ADDONS_URL', plugins_url( '/', __FILE__ ) );
19
define('PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
20
define('PREMIUM_ADDONS_FILE', __FILE__);
21
define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
22
- define('PREMIUM_ADDONS_STABLE_VERSION', '3.8.9');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
3
Plugin Name: Premium Addons for Elementor
4
Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
Plugin URI: https://premiumaddons.com
6
+ Version: 3.9.1
7
Author: Leap13
8
Author URI: https://leap13.com/
9
Text Domain: premium-addons-for-elementor
14
if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
16
// Define Constants
17
+ define('PREMIUM_ADDONS_VERSION', '3.9.1');
18
define('PREMIUM_ADDONS_URL', plugins_url( '/', __FILE__ ) );
19
define('PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
20
define('PREMIUM_ADDONS_FILE', __FILE__);
21
define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
22
+ define('PREMIUM_ADDONS_STABLE_VERSION', '3.9.0');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate Link: https://premiumaddons.com/?utm_source=wp-repo&utm_medium=link&utm_c
5
Requires at Least: 4.5
6
Tested Up To: 5.3
7
Requires PHP: 5.4
8
- Stable Tag: 3.9.0
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -175,6 +175,12 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
175
176
== Changelog ==
177
178
= 3.9.0 =
179
180
- Tweak: Added `Box Shadow` option for digits in Countdown widget.
5
Requires at Least: 4.5
6
Tested Up To: 5.3
7
Requires PHP: 5.4
8
+ Stable Tag: 3.9.1
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
175
176
== Changelog ==
177
178
+ = 3.9.1 =
179
+
180
+ - Tweak: Premium Carousel widget now fully compatible with `Entrance Animations` for the inner elements.
181
+ - Tweak: Added `Entrance Animation` option to navigation dots in Vertical Scroll widget.
182
+ - Tweak: Added `Icons Size` option for lightbox, icons and videos icon in Media Grid widget.
183
+
184
= 3.9.0 =
185
186
- Tweak: Added `Box Shadow` option for digits in Countdown widget.
widgets/premium-carousel.php CHANGED
@@ -1073,7 +1073,7 @@ class Premium_Carousel extends Widget_Base {
1073
<?php
1074
foreach( $templates as $template_title ) :
1075
?>
1076
- <div class="item-wrapper">
1077
<?php echo $this->getTemplateInstance()->get_template_content( $template_title ); ?>
1078
</div>
1079
<?php endforeach; ?>
1073
<?php
1074
foreach( $templates as $template_title ) :
1075
?>
1076
+ <div class="premium-carousel-template item-wrapper">
1077
<?php echo $this->getTemplateInstance()->get_template_content( $template_title ); ?>
1078
</div>
1079
<?php endforeach; ?>
widgets/premium-grid.php CHANGED
@@ -687,17 +687,6 @@ class Premium_Grid extends Widget_Base {
687
]
688
);
689
690
- $this->add_control('premium_gallery_links_icon',
691
- [
692
- 'label' => __( 'Links Icon', 'premium-addons-for-elementor' ),
693
- 'type' => Controls_Manager::ICONS,
694
- 'default' => [
695
- 'library' => 'fa-solid',
696
- 'value' => 'fas fa-link',
697
- ]
698
- ]
699
- );
700
-
701
$this->add_control('premium_gallery_img_style',
702
[
703
'label' => __('Skin', 'premium-addons-for-elementor'),
@@ -728,46 +717,58 @@ class Premium_Grid extends Widget_Base {
728
);
729
730
$this->add_responsive_control('premium_gallery_style1_border_border',
731
- [
732
- 'label' => __('Height', 'premium-addons-for-elementor'),
733
- 'type' => Controls_Manager::SLIDER,
734
- 'range' => [
735
- 'px' => [
736
- 'min' => 0,
737
- 'max' => 700,
738
- ]
739
- ],
740
- 'label_block' => true,
741
- 'selectors' => [
742
- '{{WRAPPER}} .pa-gallery-img.style1 .premium-gallery-caption' => 'bottom: {{SIZE}}px;',
743
- ],
744
- 'condition' => [
745
- 'premium_gallery_img_style' => 'style1'
746
- ]
747
]
748
- );
749
750
$this->add_control('premium_gallery_img_effect',
751
- [
752
- 'label' => __('Hover Effect', 'premium-addons-for-elementor'),
753
- 'type' => Controls_Manager::SELECT,
754
- 'description' => __('Choose a hover effect for the image','premium-addons-for-elementor'),
755
- 'options' => [
756
- 'none' => __('None', 'premium-addons-for-elementor'),
757
- 'zoomin' => __('Zoom In', 'premium-addons-for-elementor'),
758
- 'zoomout' => __('Zoom Out', 'premium-addons-for-elementor'),
759
- 'scale' => __('Scale', 'premium-addons-for-elementor'),
760
- 'gray' => __('Grayscale', 'premium-addons-for-elementor'),
761
- 'blur' => __('Blur', 'premium-addons-for-elementor'),
762
- 'bright' => __('Bright', 'premium-addons-for-elementor'),
763
- 'sepia' => __('Sepia', 'premium-addons-for-elementor'),
764
- 'trans' => __('Translate', 'premium-addons-for-elementor'),
765
- ],
766
- 'default' => 'zoomin',
767
- 'label_block' => true
768
- ]
769
- );
770
771
$this->add_control('premium_gallery_videos_heading',
772
[
773
'label' => __( 'Videos', 'premium-addons-for-elementor' ),
@@ -791,7 +792,7 @@ class Premium_Grid extends Widget_Base {
791
792
$this->add_control('premium_gallery_videos_icon',
793
[
794
- 'label' => __( 'Lightbox Icon', 'premium-addons-for-elementor' ),
795
'type' => Controls_Manager::ICONS,
796
'default' => [
797
'library' => 'fa-solid',
@@ -1273,25 +1274,44 @@ class Premium_Grid extends Widget_Base {
1273
]);
1274
1275
$this->add_responsive_control('premium_gallery_style1_icons_position',
1276
- [
1277
- 'label' => __('Position', 'premium-addons-for-elementor'),
1278
- 'type' => Controls_Manager::SLIDER,
1279
- 'size_units' => ['px', '%', 'em'],
1280
- 'range' => [
1281
- 'px' => [
1282
- 'min' => 0,
1283
- 'max' => 300,
1284
- ]
1285
- ],
1286
- 'label_block' => true,
1287
- 'selectors' => [
1288
- '{{WRAPPER}} .pa-gallery-img.style1 .pa-gallery-icons-inner-container,{{WRAPPER}} .pa-gallery-img.default .pa-gallery-icons-inner-container' => 'top: {{SIZE}}{{UNIT}};',
1289
- ],
1290
- 'condition' => [
1291
- 'premium_gallery_img_style!' => 'style2'
1292
- ]
1293
]
1294
- );
1295
1296
$this->start_controls_tabs('premium_gallery_icons_style_tabs');
1297
687
]
688
);
689
690
$this->add_control('premium_gallery_img_style',
691
[
692
'label' => __('Skin', 'premium-addons-for-elementor'),
717
);
718
719
$this->add_responsive_control('premium_gallery_style1_border_border',
720
+ [
721
+ 'label' => __('Height', 'premium-addons-for-elementor'),
722
+ 'type' => Controls_Manager::SLIDER,
723
+ 'range' => [
724
+ 'px' => [
725
+ 'min' => 0,
726
+ 'max' => 700,
727
]
728
+ ],
729
+ 'label_block' => true,
730
+ 'selectors' => [
731
+ '{{WRAPPER}} .pa-gallery-img.style1 .premium-gallery-caption' => 'bottom: {{SIZE}}px;',
732
+ ],
733
+ 'condition' => [
734
+ 'premium_gallery_img_style' => 'style1'
735
+ ]
736
+ ]
737
+ );
738
739
$this->add_control('premium_gallery_img_effect',
740
+ [
741
+ 'label' => __('Hover Effect', 'premium-addons-for-elementor'),
742
+ 'type' => Controls_Manager::SELECT,
743
+ 'description' => __('Choose a hover effect for the image','premium-addons-for-elementor'),
744
+ 'options' => [
745
+ 'none' => __('None', 'premium-addons-for-elementor'),
746
+ 'zoomin' => __('Zoom In', 'premium-addons-for-elementor'),
747
+ 'zoomout' => __('Zoom Out', 'premium-addons-for-elementor'),
748
+ 'scale' => __('Scale', 'premium-addons-for-elementor'),
749
+ 'gray' => __('Grayscale', 'premium-addons-for-elementor'),
750
+ 'blur' => __('Blur', 'premium-addons-for-elementor'),
751
+ 'bright' => __('Bright', 'premium-addons-for-elementor'),
752
+ 'sepia' => __('Sepia', 'premium-addons-for-elementor'),
753
+ 'trans' => __('Translate', 'premium-addons-for-elementor'),
754
+ ],
755
+ 'default' => 'zoomin',
756
+ 'label_block' => true,
757
+ 'separator' => 'after'
758
+ ]
759
+ );
760
761
+ $this->add_control('premium_gallery_links_icon',
762
+ [
763
+ 'label' => __( 'Links Icon', 'premium-addons-for-elementor' ),
764
+ 'type' => Controls_Manager::ICONS,
765
+ 'default' => [
766
+ 'library' => 'fa-solid',
767
+ 'value' => 'fas fa-link',
768
+ ]
769
+ ]
770
+ );
771
+
772
$this->add_control('premium_gallery_videos_heading',
773
[
774
'label' => __( 'Videos', 'premium-addons-for-elementor' ),
792
793
$this->add_control('premium_gallery_videos_icon',
794
[
795
+ 'label' => __( 'Videos Play Icon', 'premium-addons-for-elementor' ),
796
'type' => Controls_Manager::ICONS,
797
'default' => [
798
'library' => 'fa-solid',
1274
]);
1275
1276
$this->add_responsive_control('premium_gallery_style1_icons_position',
1277
+ [
1278
+ 'label' => __('Position', 'premium-addons-for-elementor'),
1279
+ 'type' => Controls_Manager::SLIDER,
1280
+ 'size_units' => ['px', '%', 'em'],
1281
+ 'range' => [
1282
+ 'px' => [
1283
+ 'min' => 0,
1284
+ 'max' => 300,
1285
]
1286
+ ],
1287
+ 'label_block' => true,
1288
+ 'selectors' => [
1289
+ '{{WRAPPER}} .pa-gallery-img.style1 .pa-gallery-icons-inner-container,{{WRAPPER}} .pa-gallery-img.default .pa-gallery-icons-inner-container' => 'top: {{SIZE}}{{UNIT}};',
1290
+ ],
1291
+ 'condition' => [
1292
+ 'premium_gallery_img_style!' => 'style2'
1293
+ ]
1294
+ ]
1295
+ );
1296
+
1297
+ $this->add_responsive_control('premium_gallery_icons_size',
1298
+ [
1299
+ 'label' => __('Size', 'premium-addons-for-elementor'),
1300
+ 'type' => Controls_Manager::SLIDER,
1301
+ 'size_units' => ['px', 'em'],
1302
+ 'range' => [
1303
+ 'px' => [
1304
+ 'min' => 1,
1305
+ 'max' => 50,
1306
+ ]
1307
+ ],
1308
+ 'label_block' => true,
1309
+ 'selectors' => [
1310
+ '{{WRAPPER}} .pa-gallery-icons-inner-container i, {{WRAPPER}} .pa-gallery-icons-caption-cell i' => 'font-size: {{SIZE}}{{UNIT}}',
1311
+ '{{WRAPPER}} .pa-gallery-icons-inner-container svg, {{WRAPPER}} .pa-gallery-icons-caption-cell svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}'
1312
+ ],
1313
+ ]
1314
+ );
1315
1316
$this->start_controls_tabs('premium_gallery_icons_style_tabs');
1317
widgets/premium-vscroll.php CHANGED
@@ -131,41 +131,6 @@ class Premium_Vscroll extends Widget_Base {
131
]
132
);
133
134
- $this->add_control('dots_tooltips_switcher',
135
- [
136
- 'label' => __('Dots Tooltips', 'premium-addons-for-elementor'),
137
- 'type' => Controls_Manager::SWITCHER,
138
- 'default' => 'yes'
139
- ]
140
- );
141
-
142
- $this->add_control('dots_shape',
143
- [
144
- 'label' => __('Shape', 'premium-addons-for-elementor'),
145
- 'type' => Controls_Manager::SELECT,
146
- 'options' => [
147
- 'circ' => __('Circles', 'premium-addons-for-elementor'),
148
- 'lines' => __('Lines', 'premium-addons-for-elementor')
149
- ],
150
- 'default' => 'circ',
151
- 'condition' => [
152
- 'dots_tooltips_switcher' => 'yes'
153
- ]
154
- ]
155
- );
156
-
157
- $this->add_control('dots_tooltips',
158
- [
159
- 'label' => __('Dots Tooltips Text', 'premium-addons-for-elementor'),
160
- 'type' => Controls_Manager::TEXT,
161
- 'dynamic' => [ 'active' => true ],
162
- 'description' => __('Add text for each navigation dot separated by \',\'','premium-addons-for-elementor'),
163
- 'condition' => [
164
- 'dots_tooltips_switcher' => 'yes'
165
- ]
166
- ]
167
- );
168
-
169
$this->end_controls_section();
170
171
$this->start_controls_section('nav_menu',
@@ -271,7 +236,8 @@ class Premium_Vscroll extends Widget_Base {
271
'left' => __('Left', 'premium-addons-for-elementor'),
272
'right' => __('Right', 'premium-addons-for-elementor'),
273
],
274
- 'default' => 'right'
275
]
276
);
277
@@ -284,10 +250,71 @@ class Premium_Vscroll extends Widget_Base {
284
'middle'=> __('Middle', 'premium-addons-for-elementor'),
285
'bottom'=> __('Bottom', 'premium-addons-for-elementor'),
286
],
287
- 'default' => 'middle'
288
]
289
);
290
291
$this->end_controls_section();
292
293
$this->start_controls_section('advanced_settings',
@@ -331,16 +358,6 @@ class Premium_Vscroll extends Widget_Base {
331
]
332
);
333
334
- // $this->add_control('overflow_touch',
335
- // [
336
- // 'label' => __('Show overflow content', 'premium-addons-for-elementor'),
337
- // 'type' => Controls_Manager::SWITCHER,
338
- // 'condition' => [
339
- // 'full_section_touch' => 'yes'
340
- // ]
341
- // ]
342
- // );
343
-
344
$this->end_controls_section();
345
346
$this->start_controls_section('navigation_style',
@@ -779,6 +796,10 @@ class Premium_Vscroll extends Widget_Base {
779
)
780
);
781
782
$this->add_render_attribute( 'vertical_scroll_dots_list', 'class', array( 'premium-vscroll-dots-list' ) );
783
784
$this->add_render_attribute( 'vertical_scroll_menu', 'id', 'premium-vscroll-nav-menu-' . $id );
@@ -798,8 +819,9 @@ class Premium_Vscroll extends Widget_Base {
798
'dotsVPos' => $settings['navigation_dots_v_pos'],
799
'fullSection' => 'yes' == $settings['full_section'] ? true : false,
800
'fullTouch' => 'yes' == $settings['full_section_touch'] ? true : false,
801
- // 'showOverflow' => 'yes' == $settings['overflow_touch'] ? true : false,
802
- 'addToHistory' => 'yes' == $settings['save_state'] ? true : false
803
];
804
805
$templates = 'templates' === $settings['content_type'] ? $settings['section_repeater'] : $settings['id_repeater'];
131
]
132
);
133
134
$this->end_controls_section();
135
136
$this->start_controls_section('nav_menu',
236
'left' => __('Left', 'premium-addons-for-elementor'),
237
'right' => __('Right', 'premium-addons-for-elementor'),
238
],
239
+ 'default' => 'right',
240
+ 'separator' => 'before'
241
]
242
);
243
250
'middle'=> __('Middle', 'premium-addons-for-elementor'),
251
'bottom'=> __('Bottom', 'premium-addons-for-elementor'),
252
],
253
+ 'default' => 'middle',
254
+ ]
255
+ );
256
+
257
+ $this->add_control('dots_tooltips_switcher',
258
+ [
259
+ 'label' => __('Dots Tooltips', 'premium-addons-for-elementor'),
260
+ 'type' => Controls_Manager::SWITCHER,
261
+ 'default' => 'yes',
262
+
263
+ ]
264
+ );
265
+
266
+ $this->add_control('dots_shape',
267
+ [
268
+ 'label' => __('Shape', 'premium-addons-for-elementor'),
269
+ 'type' => Controls_Manager::SELECT,
270
+ 'options' => [
271
+ 'circ' => __('Circles', 'premium-addons-for-elementor'),
272
+ 'lines' => __('Lines', 'premium-addons-for-elementor')
273
+ ],
274
+ 'default' => 'circ',
275
+ 'condition' => [
276
+ 'dots_tooltips_switcher' => 'yes'
277
+ ]
278
]
279
);
280
281
+ $this->add_control('dots_tooltips',
282
+ [
283
+ 'label' => __('Dots Tooltips Text', 'premium-addons-for-elementor'),
284
+ 'type' => Controls_Manager::TEXT,
285
+ 'dynamic' => [ 'active' => true ],
286
+ 'description' => __('Add text for each navigation dot separated by \',\'','premium-addons-for-elementor'),
287
+ 'condition' => [
288
+ 'dots_tooltips_switcher' => 'yes'
289
+ ]
290
+ ]
291
+ );
292
+
293
+ $this->add_control( 'dots_animation',
294
+ [
295
+ 'label' => __( 'Entrance Animation', 'premium-addons-for-elementor' ),
296
+ 'type' => Controls_Manager::ANIMATION,
297
+ 'frontend_available' => true,
298
+ 'render_type' => 'template'
299
+ ]
300
+ );
301
+
302
+ $this->add_control( 'dots_animation_duration',
303
+ [
304
+ 'label' => __( 'Animation Duration', 'premium-addons-for-elementor' ),
305
+ 'type' => Controls_Manager::SELECT,
306
+ 'default' => '',
307
+ 'options' => [
308
+ 'slow' => __( 'Slow', 'premium-addons-for-elementor' ),
309
+ '' => __( 'Normal', 'premium-addons-for-elementor' ),
310
+ 'fast' => __( 'Fast', 'premium-addons-for-elementor' ),
311
+ ],
312
+ 'condition' => [
313
+ 'dots_animation!' => '',
314
+ ],
315
+ ]
316
+ );
317
+
318
$this->end_controls_section();
319
320
$this->start_controls_section('advanced_settings',
358
]
359
);
360
361
$this->end_controls_section();
362
363
$this->start_controls_section('navigation_style',
796
)
797
);
798
799
+ if( '' !== $settings['dots_animation'] ) {
800
+ $this->add_render_attribute( 'vertical_scroll_dots', 'class', 'elementor-invisible' );
801
+ }
802
+
803
$this->add_render_attribute( 'vertical_scroll_dots_list', 'class', array( 'premium-vscroll-dots-list' ) );
804
805
$this->add_render_attribute( 'vertical_scroll_menu', 'id', 'premium-vscroll-nav-menu-' . $id );
819
'dotsVPos' => $settings['navigation_dots_v_pos'],
820
'fullSection' => 'yes' == $settings['full_section'] ? true : false,
821
'fullTouch' => 'yes' == $settings['full_section_touch'] ? true : false,
822
+ 'addToHistory' => 'yes' == $settings['save_state'] ? true : false,
823
+ 'animation' => $settings['dots_animation'],
824
+ 'duration' => $settings['dots_animation_duration'],
825
];
826
827
$templates = 'templates' === $settings['content_type'] ? $settings['section_repeater'] : $settings['id_repeater'];