Premium Addons for Elementor - Version 3.7.9

Version Description

  • Tweak: Added style options for Container in Banner widget.
  • Tweak: Changed Border Radius option from SLIDER to DIMENSIONS in Countdown widget.
  • Tweak: Added Remote Video URL option to Media Grid and Video Box widget.
  • Tweak: Added First Category Label option for Filter Tabs in Blog widget.
  • Fixed: Image overlay does not appear with Self Hosted videos in Video Box widget.
  • Fixed: Contact Form 7 widget wraps all inputs in the page.
  • Fixed: Single quote not rendered in Fancy Text widget.
  • Fixed: Default border applied on navigation arrows in Carousel widget.
  • Fixed: Navigation Arrows hidden by default in some themes in Carousel widget.
Download this release

Release Info

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

Code changes from version 3.7.8 to 3.7.9

admin/assets/css/notice.css CHANGED
@@ -21,6 +21,35 @@
21
.error.pa-black-notice .pa-img-wrap {
22
min-height: auto;
23
}
24
.error.pa-notice-wrap .pa-text-wrap {
25
padding-top: 0.3em;
26
}
@@ -46,14 +75,16 @@
46
}
47
.error .pa-text-wrap a {
48
margin: 0;
49
- /* padding: 0;*/
50
}
51
- .error .pa-text-wrap a:focus {
52
- box-shadow: none;
53
- }
54
- .pa-notice-close {
55
flex-basis: 56%;
56
}
57
.pa-notice-close span {
58
float: right;
59
text-decoration: none;
21
.error.pa-black-notice .pa-img-wrap {
22
min-height: auto;
23
}
24
+ .error .pa-text-wrap {
25
+ display: -ms-flexbox;
26
+ display: -webkit-flex;
27
+ display: -moz-flex;
28
+ display: -ms-flex;
29
+ display: flex;
30
+ align-items: center;
31
+ padding:10px 10px 10px 0;
32
+ }
33
+ .error .pa-text-wrap .pa-notice-logo {
34
+ width: 40px;
35
+ margin-right: 0.8em;
36
+ }
37
+ .error .pa-text-wrap .pa-notice-cta {
38
+ -webkit-box-flex: 2;
39
+ -webkit-flex-grow: 2;
40
+ -ms-flex-positive: 2;
41
+ flex-grow: 2;
42
+ }
43
+ .error .pa-text-wrap .pa-notice-close {
44
+ text-decoration: none;
45
+ margin-left: 1em;
46
+ float: right;
47
+ }
48
+ .error .pa-text-wrap a:focus {
49
+ box-shadow: none;
50
+ outline: none;
51
+
52
+ }
53
.error.pa-notice-wrap .pa-text-wrap {
54
padding-top: 0.3em;
55
}
75
}
76
.error .pa-text-wrap a {
77
margin: 0;
78
}
79
+ .pa-notice-wrap .pa-notice-close {
80
+ -webkit-flex-basis: 56%;
81
+ -ms-flex-preferred-size: 56%;
82
flex-basis: 56%;
83
}
84
+ .pa-notice-close a:focus {
85
+ outline: none;
86
+ box-shadow: none;
87
+ }
88
.pa-notice-close span {
89
float: right;
90
text-decoration: none;
admin/includes/admin-notices.php CHANGED
@@ -36,9 +36,11 @@ class Admin_Notices {
36
*/
37
public function init() {
38
39
- $this->handle_review_notice();
40
41
- $this->handle_color_trans_notice();
42
43
}
44
@@ -49,15 +51,17 @@ class Admin_Notices {
49
50
$this->required_plugins_check();
51
52
- $cache_key = 'premium_notice_' . PREMIUM_ADDONS_VERSION;
53
54
- $response = get_transient( $cache_key );
55
-
56
- if ( false == $response ) {
57
- $this->get_review_notice();
58
- }
59
-
60
- $this->get_color_trans_notice();
61
62
}
63
@@ -133,6 +137,29 @@ class Admin_Notices {
133
}
134
135
136
/**
137
* Required plugin check
138
*
@@ -146,7 +173,7 @@ class Admin_Notices {
146
147
$elementor_path = sprintf( '%1$s/%1$s.php', self::$elementor );
148
149
- if( ! defined('ELEMENTOR_VERSION' ) ) {
150
151
if ( ! self::is_plugin_installed( $elementor_path ) ) {
152
@@ -295,7 +322,7 @@ class Admin_Notices {
295
} else if ( '1' !== $color_trans_notice ) {
296
$optout_url = wp_nonce_url( add_query_arg( 'color_trans', 'opt_out' ), 'opt_out' );
297
298
- $message = sprintf( __('<p class="pa-text-wrap" style="display: flex; align-items: center; padding:10px 10px 10px 0;"><img src="%s" style="margin-right: 0.8em; width: 40px;"><strong><span>Premium Color Transition&nbsp</strong> widget is now available in Premium Addons Pro.&nbsp</span><a href="%s" target="_blank" style="flex-grow: 2;"> Check it out now.</a>', 'premium-addons-for-elementor' ), PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png', $notice_url );
299
300
$message .= sprintf( __('<a href="%s" style="text-decoration: none; margin-left: 1em; float:right; "><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
301
@@ -304,6 +331,42 @@ class Admin_Notices {
304
}
305
306
}
307
308
309
/**
36
*/
37
public function init() {
38
39
+ // $this->handle_review_notice();
40
+ //
41
+ // $this->handle_color_trans_notice();
42
43
+ $this->handle_det_notice();
44
45
}
46
51
52
$this->required_plugins_check();
53
54
+ // $cache_key = 'premium_notice_' . PREMIUM_ADDONS_VERSION;
55
+ //
56
+ // $response = get_transient( $cache_key );
57
+ //
58
+ // if ( false == $response ) {
59
+ // $this->get_review_notice();
60
+ // }
61
+ //
62
+ // $this->get_color_trans_notice();
63
64
+ $this->get_det_notice();
65
66
}
67
137
}
138
139
140
+ /**
141
+ * Checks if Disable Elementor Translation message is dismissed.
142
+ *
143
+ * @since 3.7.9
144
+ * @access public
145
+ *
146
+ * @return void
147
+ */
148
+ public function handle_det_notice() {
149
+ if ( ! isset( $_GET['det'] ) ) {
150
+ return;
151
+ }
152
+
153
+ if ( 'opt_out' === $_GET['det'] ) {
154
+ check_admin_referer( 'opt_out' );
155
+
156
+ update_option( 'det_notice', '1' );
157
+ }
158
+
159
+ wp_redirect( remove_query_arg( 'det' ) );
160
+ exit;
161
+ }
162
+
163
/**
164
* Required plugin check
165
*
173
174
$elementor_path = sprintf( '%1$s/%1$s.php', self::$elementor );
175
176
+ if( ! defined( 'ELEMENTOR_VERSION' ) ) {
177
178
if ( ! self::is_plugin_installed( $elementor_path ) ) {
179
322
} else if ( '1' !== $color_trans_notice ) {
323
$optout_url = wp_nonce_url( add_query_arg( 'color_trans', 'opt_out' ), 'opt_out' );
324
325
+ $message = sprintf( __('<p class="pa-text-wrap"><img src="%s" style="margin-right: 0.8em; width: 40px;"><strong><span>Premium Color Transition&nbsp</strong> widget is now available in Premium Addons Pro.&nbsp</span><a href="%s" target="_blank" style="flex-grow: 2;"> Check it out now.</a>', 'premium-addons-for-elementor' ), PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png', $notice_url );
326
327
$message .= sprintf( __('<a href="%s" style="text-decoration: none; margin-left: 1em; float:right; "><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
328
331
}
332
333
}
334
+
335
+ /**
336
+ *
337
+ * Shows an admin notice for Disable Elementor Translation.
338
+ *
339
+ * @since 3.7.9
340
+ * @access public
341
+ *
342
+ * @return void
343
+ */
344
+ public function get_det_notice() {
345
+
346
+ $det_notice = get_option( 'det_notice' );
347
+
348
+ if( ! current_user_can( 'install_plugins' ) || '1' === $det_notice || defined( 'DET_VERSION' ) )
349
+ return;
350
+
351
+ $det_slug = 'disable-elementor-editor-translation';
352
+
353
+ $install_url = wp_nonce_url( self_admin_url( sprintf( 'update.php?action=install-plugin&plugin=%s', $det_slug ) ), sprintf( 'install-plugin_%s', $det_slug ) );
354
+
355
+ $optout_url = wp_nonce_url( add_query_arg( 'det', 'opt_out' ), 'opt_out' );
356
+
357
+ $message = '<p class="pa-text-wrap">';
358
+
359
+ $message .= sprintf( '<img class="pa-notice-logo" src="%s">', PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png' );
360
+
361
+ $message .= sprintf( '<strong>%s</strong>' , __( 'Now, you can disable Elementor editor & Premium Addons translation with this handy plugin.&nbsp;', 'premium-addons-for-elementor' ) );
362
+
363
+ $message .= sprintf( '<a class="pa-notice-cta" href="%s" target="_blank">%s</a>', $install_url , __( 'Click Here to Install', 'premium-addons-for-elementor' ) );
364
+
365
+ $message .= sprintf( __('<a class="pa-notice-close" href="%s"><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
366
+
367
+ $this->render_admin_notices( $message );
368
+
369
+ }
370
371
372
/**
admin/includes/version-control.php CHANGED
@@ -46,7 +46,7 @@ class Version_Control {
46
$js_info = array(
47
'ajaxurl' => admin_url( 'admin-ajax.php' ),
48
'nonce' => wp_create_nonce( 'pa-version-control' ),
49
- );
50
51
wp_localize_script( 'pa-admin-js', 'settings', $js_info );
52
@@ -92,7 +92,7 @@ class Version_Control {
92
<tr class="pa-roll-row">
93
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
94
<td>
95
- <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.7.7', 'premium-addons-for-elementor') ); ?></div>
96
<p class="pa-roll-desc">
97
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
98
</p>
46
$js_info = array(
47
'ajaxurl' => admin_url( 'admin-ajax.php' ),
48
'nonce' => wp_create_nonce( 'pa-version-control' ),
49
+ );
50
51
wp_localize_script( 'pa-admin-js', 'settings', $js_info );
52
92
<tr class="pa-roll-row">
93
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
94
<td>
95
+ <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.7.8', 'premium-addons-for-elementor') ); ?></div>
96
<p class="pa-roll-desc">
97
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
98
</p>
assets/frontend/css/premium-addons.css CHANGED
@@ -7,6 +7,9 @@
7
}
8
/**************** Premium Banner ****************/
9
/************************************************/
10
.premium-banner-ib, .premium-banner-ib img {
11
display: block;
12
position: relative;
@@ -30,7 +33,7 @@
30
background: #3085a3;
31
text-align: center;
32
/* cursor: pointer;
33
- */
34
-webkit-box-sizing: border-box;
35
-moz-box-sizing: border-box;
36
box-sizing: border-box;
@@ -322,7 +325,7 @@
322
-webkit-transform: translate3d(0, 0, 0);
323
transform: translate3d(0, 0, 0);
324
}
325
- */
326
.premium-banner-animation4:hover .premium-banner-ib-desc::after, .premium-banner-animation4.active .premium-banner-ib-desc::after, .premium-banner-animation4:hover .premium-banner-ib-desc::before, .premium-banner-animation4.active .premium-banner-ib-desc::before {
327
opacity: 1;
328
-webkit-transform: scale(1);
@@ -703,6 +706,10 @@
703
/**************** Premium Carousel **************/
704
/************************************************/
705
.premium-carousel-wrapper a.carousel-arrow, .premium-carousel-wrapper a.ver-carousel-arrow, .premium-fb-rev-container a.carousel-arrow, .premium-fb-rev-container a.ver-carousel-arrow, .premium-blog-wrap a.carousel-arrow, .premium-blog-wrap a.ver-carousel-arrow {
706
display: flex;
707
align-items: center;
708
justify-content: center;
@@ -718,7 +725,11 @@
718
-o-transition: all 0.3s ease-in-out;
719
transition: all 0.3s ease-in-out;
720
-webkit-appearance: inherit;
721
box-shadow: none;
722
}
723
.ver-carousel-arrow.carousel-next i{
724
margin-bottom: -3px;
@@ -1068,7 +1079,7 @@
1068
padding: 0;
1069
line-height: 1.42857143;
1070
/* clear: none;
1071
- */
1072
padding: 0;
1073
margin: 0;
1074
}
@@ -1129,7 +1140,7 @@
1129
/*.premium-modal-box-close-button-container {
1130
float: right;
1131
}
1132
- */
1133
.premium-modal-box-modal-close {
1134
position: relative;
1135
z-index: 99;
@@ -1144,9 +1155,9 @@
1144
/* prevent Scroll on body */
1145
.premium-modal-open {
1146
/* overflow: hidden;
1147
- */
1148
/* height: 100vh;
1149
- */
1150
}
1151
@media (min-width:768px) {
1152
.premium-modal-box-modal-dialog {
@@ -1158,7 +1169,7 @@
1158
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
1159
box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
1160
}
1161
- */
1162
}
1163
@media (max-width:767px) {
1164
.premium-modal-box-modal-dialog {
@@ -2108,13 +2119,13 @@
2108
font-size: 18px;
2109
margin: 0 5px;
2110
}
2111
- .elementor-widget-premium-addon-person .elementor-widget-container {
2112
- display: -ms-flexbox;
2113
- display: -webkit-flex;
2114
- display: -moz-flex;
2115
- display: -ms-flex;
2116
- display: flex;
2117
- justify-content: center;
2118
}
2119
/**************** Premium Dual Header ******************/
2120
/*******************************************************/
@@ -3059,8 +3070,7 @@
3059
-o-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
3060
transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
3061
}
3062
- .pa-gallery-img:hover .pa-gallery-magnific-image span, .pa-gallery-img:hover .pa-gallery-img-link span,
3063
- .premium-gallery-icon-show a.pa-gallery-video-icon span {
3064
opacity: 1;
3065
}
3066
.premium-img-gallery-filter .premium-gallery-cats-container, .premium-blog-filter .premium-blog-cats-container {
@@ -3211,7 +3221,7 @@
3211
}
3212
.premium-img-gallery .premium-gallery-item-hidden {
3213
/* display: none;
3214
- */
3215
visibility: hidden;
3216
width: 0 !important;
3217
height: 0 !important;
@@ -3264,15 +3274,12 @@
3264
width: 20px;
3265
height: 20px;
3266
}
3267
- /**
3268
- * Video
3269
- */
3270
- .pa-gallery-img .pa-gallery-lightbox-wrap {
3271
- display: inline-block;
3272
}
3273
- .premium-img-gallery-no-lightbox .premium-gallery-video-item .pa-gallery-img,
3274
- .pa-gallery-img .pa-gallery-video-icon {
3275
- cursor: pointer;
3276
}
3277
.pa-gallery-img-container iframe, .pa-gallery-img-container video {
3278
position: absolute;
@@ -3311,7 +3318,7 @@
3311
.premium-vscroll-inner {
3312
position: relative;
3313
/* overflow: hidden;
3314
- */
3315
min-height: 100%;
3316
}
3317
.premium-vscroll-inner .premium-vscroll-dots {
@@ -3510,32 +3517,8 @@
3510
.premium-vscroll-nav-menu .premium-vscroll-nav-item .premium-vscroll-nav-link:focus, .multiscroll-nav li a:focus{
3511
outline:none
3512
}
3513
- /* * Scroller */
3514
- #scroller {
3515
- /* position: absolute;
3516
- */
3517
- /* z-index: 1;
3518
- -webkit-tap-highlight-color: rgba(0,0,0,0);
3519
- width: 100%;
3520
- -webkit-transform: translateZ(0);
3521
- -moz-transform: translateZ(0);
3522
- -ms-transform: translateZ(0);
3523
- -o-transform: translateZ(0);
3524
- transform: translateZ(0);
3525
- -webkit-touch-callout: none;
3526
- -webkit-user-select: none;
3527
- -moz-user-select: none;
3528
- -ms-user-select: none;
3529
- user-select: none;
3530
- -webkit-text-size-adjust: none;
3531
- -moz-text-size-adjust: none;
3532
- -ms-text-size-adjust: none;
3533
- -o-text-size-adjust: none;
3534
- text-size-adjust: none;
3535
- */
3536
- }
3537
- .premium-vscroll-temp .slimScrollBar {
3538
- visibility: hidden;
3539
}
3540
/************ Premium Image Scroll ***************/
3541
/*************************************************/
@@ -3596,6 +3579,10 @@
3596
-webkit-transform: translate(-50%, -50%);
3597
-ms-transform: translate(-50%, -50%);
3598
transform: translate(-50%, -50%);
3599
}
3600
.premium-image-scroll-container img {
3601
-webkit-transition: transform 3s ease-in-out;
@@ -3666,3 +3653,4 @@
3666
transform:translateX(5px);
3667
}
3668
}
7
}
8
/**************** Premium Banner ****************/
9
/************************************************/
10
+ .premium-banner {
11
+ overflow: hidden;
12
+ }
13
.premium-banner-ib, .premium-banner-ib img {
14
display: block;
15
position: relative;
33
background: #3085a3;
34
text-align: center;
35
/* cursor: pointer;
36
+ */
37
-webkit-box-sizing: border-box;
38
-moz-box-sizing: border-box;
39
box-sizing: border-box;
325
-webkit-transform: translate3d(0, 0, 0);
326
transform: translate3d(0, 0, 0);
327
}
328
+ */
329
.premium-banner-animation4:hover .premium-banner-ib-desc::after, .premium-banner-animation4.active .premium-banner-ib-desc::after, .premium-banner-animation4:hover .premium-banner-ib-desc::before, .premium-banner-animation4.active .premium-banner-ib-desc::before {
330
opacity: 1;
331
-webkit-transform: scale(1);
706
/**************** Premium Carousel **************/
707
/************************************************/
708
.premium-carousel-wrapper a.carousel-arrow, .premium-carousel-wrapper a.ver-carousel-arrow, .premium-fb-rev-container a.carousel-arrow, .premium-fb-rev-container a.ver-carousel-arrow, .premium-blog-wrap a.carousel-arrow, .premium-blog-wrap a.ver-carousel-arrow {
709
+ display: -ms-flexbox;
710
+ display: -webkit-flex;
711
+ display: -moz-flex;
712
+ display: -ms-flex;
713
display: flex;
714
align-items: center;
715
justify-content: center;
725
-o-transition: all 0.3s ease-in-out;
726
transition: all 0.3s ease-in-out;
727
-webkit-appearance: inherit;
728
+ border: none;
729
box-shadow: none;
730
+ }
731
+ div[class^="premium-"] .slick-arrow i {
732
+ display: block;
733
}
734
.ver-carousel-arrow.carousel-next i{
735
margin-bottom: -3px;
1079
padding: 0;
1080
line-height: 1.42857143;
1081
/* clear: none;
1082
+ */
1083
padding: 0;
1084
margin: 0;
1085
}
1140
/*.premium-modal-box-close-button-container {
1141
float: right;
1142
}
1143
+ */
1144
.premium-modal-box-modal-close {
1145
position: relative;
1146
z-index: 99;
1155
/* prevent Scroll on body */
1156
.premium-modal-open {
1157
/* overflow: hidden;
1158
+ */
1159
/* height: 100vh;
1160
+ */
1161
}
1162
@media (min-width:768px) {
1163
.premium-modal-box-modal-dialog {
1169
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
1170
box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
1171
}
1172
+ */
1173
}
1174
@media (max-width:767px) {
1175
.premium-modal-box-modal-dialog {
2119
font-size: 18px;
2120
margin: 0 5px;
2121
}
2122
+ .elementor-widget-premium-addon-person .elementor-widget-container {
2123
+ display: -ms-flexbox;
2124
+ display: -webkit-flex;
2125
+ display: -moz-flex;
2126
+ display: -ms-flex;
2127
+ display: flex;
2128
+ justify-content: center;
2129
}
2130
/**************** Premium Dual Header ******************/
2131
/*******************************************************/
3070
-o-transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
3071
transition: all 0.3s ease-in-out, opacity 0.5s ease-in-out 0.6s;
3072
}
3073
+ .pa-gallery-img:hover .pa-gallery-magnific-image span, .pa-gallery-img:hover .pa-gallery-img-link span, .premium-gallery-icon-show a.pa-gallery-video-icon span {
3074
opacity: 1;
3075
}
3076
.premium-img-gallery-filter .premium-gallery-cats-container, .premium-blog-filter .premium-blog-cats-container {
3221
}
3222
.premium-img-gallery .premium-gallery-item-hidden {
3223
/* display: none;
3224
+ */
3225
visibility: hidden;
3226
width: 0 !important;
3227
height: 0 !important;
3274
width: 20px;
3275
height: 20px;
3276
}
3277
+ /** * Video */
3278
+ .pa-gallery-img .pa-gallery-lightbox-wrap {
3279
+ display: inline-block;
3280
}
3281
+ .premium-img-gallery-no-lightbox .premium-gallery-video-item .pa-gallery-img, .pa-gallery-img .pa-gallery-video-icon {
3282
+ cursor: pointer;
3283
}
3284
.pa-gallery-img-container iframe, .pa-gallery-img-container video {
3285
position: absolute;
3318
.premium-vscroll-inner {
3319
position: relative;
3320
/* overflow: hidden;
3321
+ */
3322
min-height: 100%;
3323
}
3324
.premium-vscroll-inner .premium-vscroll-dots {
3517
.premium-vscroll-nav-menu .premium-vscroll-nav-item .premium-vscroll-nav-link:focus, .multiscroll-nav li a:focus{
3518
outline:none
3519
}
3520
+ .premium-vscroll-temp .slimScrollBar {
3521
+ visibility: hidden;
3522
}
3523
/************ Premium Image Scroll ***************/
3524
/*************************************************/
3579
-webkit-transform: translate(-50%, -50%);
3580
-ms-transform: translate(-50%, -50%);
3581
transform: translate(-50%, -50%);
3582
+ }
3583
+ .premium-container-scroll-instant .premium-image-scroll-image {
3584
+ -webkit-transition: all 0s ease-in-out !important;
3585
+ transition: all 0s ease-in-out !important;
3586
}
3587
.premium-image-scroll-container img {
3588
-webkit-transition: transform 3s ease-in-out;
3653
transform:translateX(5px);
3654
}
3655
}
3656
+
assets/frontend/js/premium-addons.js CHANGED
@@ -1,9 +1,9 @@
1
- (function ($) {
2
/****** Premium Progress Bar Handler ******/
3
- var PremiumProgressBarWidgetHandler = function ($scope, $) {
4
var progressbarElement = $scope
5
.find(".premium-progressbar-progress-bar")
6
- .each(function () {
7
var settings = $(this).data("settings"),
8
length = settings["progress_length"],
9
speed = settings["speed"];
@@ -13,10 +13,10 @@
13
};
14
15
/****** Premium Progress Bar Scroll Handler *****/
16
- var PremiumProgressBarScrollWidgetHandler = function ($scope, $) {
17
elementorFrontend.waypoint(
18
$scope,
19
- function () {
20
PremiumProgressBarWidgetHandler($(this), $);
21
},
22
{
@@ -27,7 +27,7 @@
27
};
28
29
/****** Premium Video Box Handler ******/
30
- var PremiumVideoBoxWidgetHandler = function ($scope, $) {
31
var videoBoxElement = $scope.find(".premium-video-box-container"),
32
videoContainer = videoBoxElement.find(
33
".premium-video-box-video-container"
@@ -36,7 +36,7 @@
36
video,
37
vidSrc,
38
checkRel;
39
- videoBoxElement.on("click", function () {
40
if ("self" === type) {
41
video = videoContainer.find("video");
42
vidSrc = video.attr("src");
@@ -64,35 +64,35 @@
64
};
65
66
/****** Premium Grid Handler ******/
67
- var PremiumGridWidgetHandler = function ($scope, $) {
68
- var galleryElement = $scope.find(".premium-gallery-container"),
69
- gridSettings = galleryElement.data("settings"),
70
- layout = gridSettings["img_size"],
71
- deviceType = $("body").data("elementor-device-mode"),
72
- loadMore = gridSettings["load_more"],
73
- columnWidth = null,
74
- filter = null,
75
isFilterClicked = false,
76
- minimum = gridSettings["minimum"],
77
- imageToShow = gridSettings["click_images"],
78
- counter = minimum,
79
- ltrMode = gridSettings["ltr_mode"],
80
- shuffle = gridSettings["shuffle"];
81
82
- if ( layout === "metro" ) {
83
var suffix = "";
84
85
- if ( "tablet" === deviceType ) {
86
suffix = "_tablet";
87
} else if ("mobile" === deviceType) {
88
suffix = "_mobile";
89
}
90
var gridWidth = galleryElement.width(),
91
cellSize = Math.floor(gridWidth / 12);
92
-
93
galleryElement
94
.find(".premium-gallery-item")
95
- .each(function (index, item) {
96
var cells = $(item).data("metro")["cells" + suffix],
97
vCells = $(item).data("metro")["vcells" + suffix];
98
if ("" == cells || undefined == cells) {
@@ -112,137 +112,139 @@
112
}
113
114
galleryElement
115
- .imagesLoaded(function () { })
116
- .done(function () {
117
galleryElement.isotope({
118
- itemSelector: ".premium-gallery-item",
119
- percentPosition: true,
120
- animationOptions: {
121
- duration: 750,
122
- easing: "linear"
123
},
124
- filter: gridSettings["active_cat"],
125
- layoutMode: layout,
126
- originLeft: ltrMode,
127
- masonry: {
128
columnWidth: columnWidth
129
},
130
- sortBy: gridSettings["sort_by"]
131
});
132
});
133
134
- if ( loadMore ) {
135
-
136
galleryElement
137
.parent()
138
.find(".premium-gallery-load-more div")
139
.addClass("premium-gallery-item-hidden");
140
-
141
- if ( galleryElement.find(".premium-gallery-item").length > minimum ) {
142
galleryElement
143
.parent()
144
.find(".premium-gallery-load-more")
145
.removeClass("premium-gallery-item-hidden");
146
galleryElement
147
- .find(".premium-gallery-item:gt(" + ( minimum - 1 ) + ")")
148
.addClass("premium-gallery-item-hidden");
149
150
- function appendItems( imagesToShow ) {
151
152
- var instance = galleryElement.data('isotope');
153
-
154
- galleryElement.find(".premium-gallery-item-hidden").removeClass("premium-gallery-item-hidden");
155
-
156
- galleryElement.parent().find(".premium-gallery-load-more").removeClass("premium-gallery-item-hidden");
157
-
158
- var itemsToHide = instance.filteredItems.slice( imagesToShow, instance.filteredItems.length ).map(function( item ) {
159
- return item.element;
160
- });
161
-
162
- $( itemsToHide ).addClass("premium-gallery-item-hidden");
163
-
164
galleryElement.isotope("layout");
165
-
166
- if( 0 == itemsToHide ) {
167
-
168
galleryElement
169
.parent()
170
.find(".premium-gallery-load-more")
171
- .addClass(
172
- "premium-gallery-item-hidden"
173
- );
174
-
175
}
176
-
177
}
178
179
- galleryElement.parent().on("click", ".premium-gallery-load-more-btn", function () {
180
-
181
- if ( isFilterClicked ) {
182
- counter = minimum;
183
- isFilterClicked = false;
184
- } else {
185
- counter = counter;
186
- }
187
-
188
- counter = counter + imageToShow;
189
-
190
- $.ajax({
191
- url: appendItems( counter ),
192
- beforeSend: function () {
193
- galleryElement
194
- .parent()
195
- .find(".premium-gallery-load-more div")
196
- .removeClass("premium-gallery-item-hidden");
197
- },
198
- success: function () {
199
- galleryElement
200
- .parent()
201
- .find(".premium-gallery-load-more div")
202
- .addClass("premium-gallery-item-hidden");
203
}
204
});
205
- });
206
}
207
}
208
-
209
- if( 'yes' !== gridSettings['light_box'] ) {
210
-
211
- galleryElement.find(".premium-gallery-video-wrap").each(function (index, item) {
212
-
213
- var type = $(item).data("type");
214
-
215
- $(item).closest(".premium-gallery-item").on('click', function(){
216
-
217
- var $this = $(this);
218
-
219
- $this.find(".pa-gallery-img").css("background", "#000");
220
-
221
- $this.find("img, .pa-gallery-icons-caption-container, .pa-gallery-icons-wrapper, .premium-gallery-caption").css("visibility", "hidden");
222
223
224
- if( "hosted" !== type ) {
225
-
226
- var $iframe = $(item).find("iframe"),
227
- src = $iframe.attr("src");
228
-
229
- src = src.replace("&mute", "&autoplay=1&mute" );
230
- $iframe.attr("src", src);
231
- $iframe.css("visibility", "visible");
232
233
- } else {
234
- var $video = $(item).find("video");
235
- $video.get(0).play();
236
- $video.css("visibility", "visible");
237
- }
238
239
});
240
-
241
- });
242
}
243
-
244
245
- $scope.find(".premium-gallery-cats-container li a").click(function (e) {
246
e.preventDefault();
247
248
isFilterClicked = true;
@@ -257,19 +259,17 @@
257
filter = $(this).attr("data-filter");
258
259
galleryElement.isotope({ filter: filter });
260
-
261
- if ( shuffle ) {
262
- galleryElement.isotope( 'shuffle' );
263
}
264
-
265
- if ( loadMore )
266
- appendItems( minimum );
267
268
return false;
269
});
270
271
-
272
- if( 'default' === gridSettings['lightbox_type'] ) {
273
$scope
274
.find(".premium-img-gallery a[data-rel^='prettyPhoto']")
275
.prettyPhoto({
@@ -283,14 +283,14 @@
283
default_width: 900,
284
default_height: 506,
285
social_tools: ""
286
- });
287
}
288
};
289
290
/****** Premium Counter Handler ******/
291
- var PremiumCounterHandler = function ($scope, $) {
292
var counterElement = $scope.find(".premium-counter");
293
- elementorFrontend.waypoint(counterElement, function () {
294
var counterSettings = counterElement.data(),
295
incrementElement = counterElement.find(".premium-counter-init"),
296
iconElement = counterElement.find(".icon");
@@ -302,7 +302,7 @@
302
};
303
304
/****** Premium Fancy Text Handler ******/
305
- var PremiumFancyTextHandler = function ($scope, $) {
306
var fancyTextElement = $scope.find(".premium-fancy-text-wrapper");
307
var fancyTextSettings = fancyTextElement.data("settings");
308
function escapeHtml(unsafe) {
@@ -315,7 +315,7 @@
315
}
316
if (fancyTextSettings["effect"] === "typing") {
317
var fancyStrings = [];
318
- fancyTextSettings["strings"].forEach(function (item) {
319
fancyStrings.push(escapeHtml(item));
320
});
321
fancyTextElement.find(".premium-fancy-text").typed({
@@ -340,10 +340,10 @@
340
};
341
342
/****** Premium Countdown Handler ******/
343
- var PremiumCountDownHandler = function ($scope, $) {
344
var countDownElement = $scope
345
.find(".premium-countdown")
346
- .each(function () {
347
var countDownSettings = $(this).data("settings");
348
349
var label1 = countDownSettings["label1"],
@@ -360,10 +360,10 @@
360
until: new Date(countDownSettings["until"]),
361
format: countDownSettings["format"],
362
padZeroes: true,
363
- onExpiry: function () {
364
$(this).html(countDownSettings["text"]);
365
},
366
- serverSync: function () {
367
return new Date(
368
countDownSettings["serverSync"]
369
);
@@ -379,7 +379,7 @@
379
format: countDownSettings["format"],
380
padZeroes: true,
381
expiryUrl: countDownSettings["text"],
382
- serverSync: function () {
383
return new Date(
384
countDownSettings["serverSync"]
385
);
@@ -415,228 +415,229 @@
415
};
416
417
/****** Premium Carousel Handler ******/
418
- var PremiumCarouselHandler = function ($scope, $) {
419
-
420
- var carouselElement = $scope.find(".premium-carousel-wrapper"),
421
- carouselSettings = $( carouselElement ).data("settings"),
422
- isEdit = elementorFrontend.isEditMode();
423
-
424
- function slideToShow( slick ) {
425
426
- var slidesToShow = slick.options.slidesToShow,
427
- windowWidth = $( window ).width();
428
429
- if ( windowWidth > carouselSettings["tabletBreak"] ) {
430
- slidesToShow = carouselSettings["slidesDesk"];
431
- }
432
-
433
- if ( windowWidth <= carouselSettings["tabletBreak"] ) {
434
- slidesToShow = carouselSettings["slidesTab"];
435
- }
436
437
- if ( windowWidth <= carouselSettings["mobileBreak"] ) {
438
- slidesToShow = carouselSettings["slidesMob"];
439
- }
440
441
- return slidesToShow;
442
}
443
444
- if ( isEdit ) {
445
- carouselElement.find(".item-wrapper").each(function ( index, slide ) {
446
-
447
- var templateID = $(slide).data("template");
448
449
- if (undefined !== templateID) {
450
- $.ajax({
451
- type: "GET",
452
- url: PremiumSettings.ajaxurl,
453
- dataType: "html",
454
- data: {
455
- action:
456
- "get_elementor_template_content",
457
- templateID: templateID
458
- }
459
- }).success(function (response) {
460
- var data = JSON.parse(response).data;
461
462
- if (undefined !== data.template_content) {
463
- $(slide).html(data.template_content);
464
465
- carouselElement.find(".premium-carousel-inner").slick("refresh");
466
- }
467
- });
468
- }
469
- });
470
471
- }
472
473
- carouselElement.on("init", function (event) {
474
- event.preventDefault();
475
476
- $(this).find("item-wrapper.slick-active").each(function () {
477
- var $this = $( this );
478
$this.addClass($this.data("animation"));
479
});
480
481
- $(".slick-track").addClass("translate");
482
- });
483
484
- carouselElement.find(".premium-carousel-inner").slick({
485
- vertical: carouselSettings["vertical"],
486
- slidesToScroll: carouselSettings["slidesToScroll"],
487
- slidesToShow: carouselSettings["slidesToShow"],
488
- responsive: [
489
- {
490
- breakpoint: carouselSettings["tabletBreak"],
491
- settings: {
492
- slidesToShow: carouselSettings["slidesTab"],
493
- slidesToScroll: carouselSettings["slidesTab"]
494
- }
495
- },
496
- {
497
- breakpoint: carouselSettings["mobileBreak"],
498
- settings: {
499
- slidesToShow: carouselSettings["slidesMob"],
500
- slidesToScroll: carouselSettings["slidesMob"]
501
- }
502
}
503
- ],
504
- useTransform: true,
505
- fade: carouselSettings["fade"],
506
- infinite: carouselSettings["infinite"],
507
- speed: carouselSettings["speed"],
508
- autoplay: carouselSettings["autoplay"],
509
- autoplaySpeed: carouselSettings["autoplaySpeed"],
510
- draggable: carouselSettings["draggable"],
511
- touchMove: carouselSettings["touchMove"],
512
- rtl: carouselSettings["rtl"],
513
- adaptiveHeight: carouselSettings["adaptiveHeight"],
514
- pauseOnHover: carouselSettings["pauseOnHover"],
515
- centerMode: carouselSettings["centerMode"],
516
- centerPadding: carouselSettings["centerPadding"],
517
- arrows: carouselSettings["arrows"],
518
- nextArrow: carouselSettings["nextArrow"],
519
- prevArrow: carouselSettings["prevArrow"],
520
- dots: carouselSettings["dots"],
521
- customPaging: function () {
522
- return (
523
- '<i class="' +
524
- carouselSettings["customPaging"] +
525
- '"></i>'
526
- );
527
}
528
- });
529
530
- carouselElement.on("afterChange", function ( event, slick, currentSlide ) {
531
-
532
- var slidesScrolled = slick.options.slidesToScroll,
533
- slidesToShow = slideToShow( slick ),
534
- centerMode = slick.options.centerMode,
535
- slideToAnimate = currentSlide + slidesToShow - 1;
536
-
537
- if (slidesScrolled === 1) {
538
- if ( ! centerMode === true ) {
539
- var $inViewPort = $(this).find( "[data-slick-index='" + slideToAnimate + "']" );
540
-
541
- if ( "null" != carouselSettings["animation"] ) {
542
- $inViewPort.find( "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button").addClass(carouselSettings["animation"]).removeClass("premium-carousel-content-hidden");
543
- }
544
}
545
- } else {
546
- for (
547
- var i = slidesScrolled + currentSlide;
548
- i >= 0;
549
- i--
550
- ) {
551
- $inViewPort = $(this).find(
552
- "[data-slick-index='" + i + "']"
553
- );
554
- if ( "null" != carouselSettings["animation"] ) {
555
- $inViewPort
556
- .find(
557
- "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
558
- )
559
- .addClass(carouselSettings["animation"])
560
- .removeClass(
561
- "premium-carousel-content-hidden"
562
- );
563
- }
564
}
565
}
566
- });
567
568
- carouselElement.on("beforeChange", function ( event, slick, currentSlide ) {
569
- var $inViewPort = $(this).find( "[data-slick-index='" + currentSlide + "']" );
570
-
571
if ("null" != carouselSettings["animation"]) {
572
$inViewPort
573
.siblings()
574
- .find(
575
- "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
576
- )
577
.removeClass(carouselSettings["animation"])
578
.addClass("premium-carousel-content-hidden");
579
}
580
});
581
-
582
- if ( carouselSettings["vertical"] ) {
583
584
var maxHeight = -1;
585
586
- carouselElement.find(".slick-slide").each(function () {
587
-
588
- if ( $( this ).height() > maxHeight ) {
589
-
590
- maxHeight = $( this ).height();
591
-
592
}
593
});
594
595
- carouselElement.find(".slick-slide").each(function () {
596
- if ( $( this ).height() < maxHeight ) {
597
- $(this).css( "margin", Math.ceil(( maxHeight - $( this ).height() ) / 2 ) + "px 0" );
598
}
599
});
600
}
601
-
602
var marginFix = {
603
- element: $( "a.ver-carousel-arrow" ),
604
- getWidth: function () {
605
- var width = this.element.outerWidth();
606
-
607
- return width / 2;
608
},
609
- setWidth: function ( type ) {
610
-
611
type = type || "vertical";
612
-
613
- if ( type == "vertical" ) {
614
-
615
- this.element.css( "margin-left", "-" + this.getWidth() + "px" );
616
-
617
} else {
618
-
619
- this.element.css( "margin-top", "-" + this.getWidth() + "px" );
620
-
621
}
622
}
623
};
624
-
625
marginFix.setWidth();
626
- marginFix.element = $( "a.carousel-arrow" );
627
- marginFix.setWidth( "horizontal" );
628
};
629
630
/****** Premium Banner Handler ******/
631
- var PremiumBannerHandler = function ($scope, $) {
632
var bannerElement = $scope.find(".premium-banner");
633
bannerElement.find(".premium-banner-ib").hover(
634
- function () {
635
$(this)
636
.find(".premium-banner-ib-img")
637
.addClass("active");
638
},
639
- function () {
640
$(this)
641
.find(".premium-banner-ib-img")
642
.removeClass("active");
@@ -645,14 +646,14 @@
645
};
646
647
/****** Premium Modal Box Handler ******/
648
- var PremiumModalBoxHandler = function ($scope, $) {
649
var modalBoxElement = $scope.find(".premium-modal-box-container"),
650
modalBoxSettings = modalBoxElement.data("settings");
651
652
if (modalBoxElement.length > 0) {
653
if (modalBoxSettings["trigger"] === "pageload") {
654
- $(document).ready(function ($) {
655
- setTimeout(function () {
656
modalBoxElement
657
.find(".premium-modal-box-modal")
658
.modal();
@@ -663,13 +664,13 @@
663
};
664
665
/****** Premium Blog Handler ******/
666
- var PremiumBlogHandler = function ($scope, $) {
667
var blogElement = $scope.find(".premium-blog-wrap"),
668
- colsNumber = blogElement.data("col"),
669
- carousel = blogElement.data("carousel"),
670
- grid = blogElement.data("grid");
671
-
672
- $scope.find(".premium-blog-cats-container li a").click(function (e) {
673
e.preventDefault();
674
675
$scope
@@ -679,16 +680,16 @@
679
$(this).addClass("active");
680
681
var selector = $(this).attr("data-filter");
682
-
683
blogElement.isotope({ filter: selector });
684
685
return false;
686
});
687
-
688
- var masonryBlog = blogElement.hasClass( "premium-blog-masonry" );
689
690
- if ( masonryBlog && ! carousel ) {
691
- blogElement.imagesLoaded( function () {
692
blogElement.isotope({
693
itemSelector: ".premium-blog-post-outer-container",
694
percentPosition: true,
@@ -701,28 +702,29 @@
701
});
702
}
703
704
- if ( carousel && grid ) {
705
-
706
- var autoPlay = blogElement.data("play"),
707
- speed = blogElement.data("speed"),
708
- fade = blogElement.data("fade"),
709
- arrows = blogElement.data("arrows"),
710
- dots = blogElement.data("dots"),
711
- prevArrow = null,
712
- nextArrow = null;
713
-
714
- if ( arrows ) {
715
- prevArrow = '<a type="button" data-role="none" class="carousel-arrow carousel-prev" aria-label="Next" role="button" style=""><i class="fas fa-angle-left" aria-hidden="true"></i></a>',
716
- nextArrow = '<a type="button" data-role="none" class="carousel-arrow carousel-next" aria-label="Next" role="button" style=""><i class="fas fa-angle-right" aria-hidden="true"></i></a>';
717
} else {
718
- prevArrow = prevArrow = '';
719
}
720
-
721
- $( blogElement ).slick({
722
- infinite: true,
723
- slidesToShow: colsNumber,
724
slidesToScroll: colsNumber,
725
- responsive: [
726
{
727
breakpoint: 769,
728
settings: {
@@ -738,24 +740,22 @@
738
}
739
}
740
],
741
- autoplay: autoPlay,
742
- autoplaySpeed: speed,
743
- nextArrow: nextArrow,
744
- prevArrow: prevArrow,
745
- fade: fade,
746
- draggable: true,
747
- dots: dots,
748
- customPaging: function () {
749
- return (
750
- '<i class="fas fa-circle"></i>'
751
- );
752
}
753
});
754
}
755
};
756
757
/****** Premium Image Scroll ******/
758
- var PremiumImageScrollHandler = function ($scope, $) {
759
var scrollElement = $scope.find(".premium-image-scroll-container"),
760
scrollOverlay = scrollElement.find(".premium-image-scroll-overlay"),
761
scrollVertical = scrollElement.find(
@@ -771,9 +771,9 @@
771
imageScroll.css(
772
"transform",
773
(direction === "vertical" ? "translateY" : "translateX") +
774
- "( -" +
775
- transformOffset +
776
- "px)"
777
);
778
}
779
@@ -781,7 +781,7 @@
781
imageScroll.css(
782
"transform",
783
(direction === "vertical" ? "translateY" : "translateX") +
784
- "(0px)"
785
);
786
}
787
@@ -798,7 +798,7 @@
798
if (direction === "vertical") {
799
scrollVertical.addClass("premium-image-scroll-ver");
800
} else {
801
- scrollElement.imagesLoaded(function () {
802
scrollOverlay.css({
803
width: imageScroll.width(),
804
height: imageScroll.height()
@@ -807,7 +807,7 @@
807
}
808
} else {
809
if (reverse === "yes") {
810
- scrollElement.imagesLoaded(function () {
811
scrollElement.addClass("premium-container-scroll-instant");
812
setTransform();
813
startTransform();
@@ -816,20 +816,35 @@
816
if (direction === "vertical") {
817
scrollVertical.removeClass("premium-image-scroll-ver");
818
}
819
- scrollElement.mouseenter(function () {
820
scrollElement.removeClass("premium-container-scroll-instant");
821
setTransform();
822
reverse === "yes" ? endTransform() : startTransform();
823
});
824
825
- scrollElement.mouseleave(function () {
826
reverse === "yes" ? startTransform() : endTransform();
827
});
828
}
829
};
830
831
//Elementor JS Hooks
832
- $(window).on("elementor/frontend/init", function () {
833
elementorFrontend.hooks.addAction(
834
"frontend/element_ready/premium-addon-video-box.default",
835
PremiumVideoBoxWidgetHandler
@@ -870,6 +885,11 @@
870
"frontend/element_ready/premium-image-scroll.default",
871
PremiumImageScrollHandler
872
);
873
if (elementorFrontend.isEditMode()) {
874
elementorFrontend.hooks.addAction(
875
"frontend/element_ready/premium-addon-progressbar.default",
1
+ (function($) {
2
/****** Premium Progress Bar Handler ******/
3
+ var PremiumProgressBarWidgetHandler = function($scope, $) {
4
var progressbarElement = $scope
5
.find(".premium-progressbar-progress-bar")
6
+ .each(function() {
7
var settings = $(this).data("settings"),
8
length = settings["progress_length"],
9
speed = settings["speed"];
13
};
14
15
/****** Premium Progress Bar Scroll Handler *****/
16
+ var PremiumProgressBarScrollWidgetHandler = function($scope, $) {
17
elementorFrontend.waypoint(
18
$scope,
19
+ function() {
20
PremiumProgressBarWidgetHandler($(this), $);
21
},
22
{
27
};
28
29
/****** Premium Video Box Handler ******/
30
+ var PremiumVideoBoxWidgetHandler = function($scope, $) {
31
var videoBoxElement = $scope.find(".premium-video-box-container"),
32
videoContainer = videoBoxElement.find(
33
".premium-video-box-video-container"
36
video,
37
vidSrc,
38
checkRel;
39
+ videoBoxElement.on("click", function() {
40
if ("self" === type) {
41
video = videoContainer.find("video");
42
vidSrc = video.attr("src");
64
};
65
66
/****** Premium Grid Handler ******/
67
+ var PremiumGridWidgetHandler = function($scope, $) {
68
+ var galleryElement = $scope.find(".premium-gallery-container"),
69
+ gridSettings = galleryElement.data("settings"),
70
+ layout = gridSettings["img_size"],
71
+ deviceType = $("body").data("elementor-device-mode"),
72
+ loadMore = gridSettings["load_more"],
73
+ columnWidth = null,
74
+ filter = null,
75
isFilterClicked = false,
76
+ minimum = gridSettings["minimum"],
77
+ imageToShow = gridSettings["click_images"],
78
+ counter = minimum,
79
+ ltrMode = gridSettings["ltr_mode"],
80
+ shuffle = gridSettings["shuffle"];
81
82
+ if (layout === "metro") {
83
var suffix = "";
84
85
+ if ("tablet" === deviceType) {
86
suffix = "_tablet";
87
} else if ("mobile" === deviceType) {
88
suffix = "_mobile";
89
}
90
var gridWidth = galleryElement.width(),
91
cellSize = Math.floor(gridWidth / 12);
92
+
93
galleryElement
94
.find(".premium-gallery-item")
95
+ .each(function(index, item) {
96
var cells = $(item).data("metro")["cells" + suffix],
97
vCells = $(item).data("metro")["vcells" + suffix];
98
if ("" == cells || undefined == cells) {
112
}
113
114
galleryElement
115
+ .imagesLoaded(function() {})
116
+ .done(function() {
117
galleryElement.isotope({
118
+ itemSelector: ".premium-gallery-item",
119
+ percentPosition: true,
120
+ animationOptions: {
121
+ duration: 750,
122
+ easing: "linear"
123
},
124
+ filter: gridSettings["active_cat"],
125
+ layoutMode: layout,
126
+ originLeft: ltrMode,
127
+ masonry: {
128
columnWidth: columnWidth
129
},
130
+ sortBy: gridSettings["sort_by"]
131
});
132
});
133
134
+ if (loadMore) {
135
galleryElement
136
.parent()
137
.find(".premium-gallery-load-more div")
138
.addClass("premium-gallery-item-hidden");
139
+
140
+ if (galleryElement.find(".premium-gallery-item").length > minimum) {
141
galleryElement
142
.parent()
143
.find(".premium-gallery-load-more")
144
.removeClass("premium-gallery-item-hidden");
145
galleryElement
146
+ .find(".premium-gallery-item:gt(" + (minimum - 1) + ")")
147
.addClass("premium-gallery-item-hidden");
148
149
+ function appendItems(imagesToShow) {
150
+ var instance = galleryElement.data("isotope");
151
+
152
+ galleryElement
153
+ .find(".premium-gallery-item-hidden")
154
+ .removeClass("premium-gallery-item-hidden");
155
+
156
+ galleryElement
157
+ .parent()
158
+ .find(".premium-gallery-load-more")
159
+ .removeClass("premium-gallery-item-hidden");
160
+
161
+ var itemsToHide = instance.filteredItems
162
+ .slice(imagesToShow, instance.filteredItems.length)
163
+ .map(function(item) {
164
+ return item.element;
165
+ });
166
+
167
+ $(itemsToHide).addClass("premium-gallery-item-hidden");
168
169
galleryElement.isotope("layout");
170
+
171
+ if (0 == itemsToHide) {
172
galleryElement
173
.parent()
174
.find(".premium-gallery-load-more")
175
+ .addClass("premium-gallery-item-hidden");
176
}
177
}
178
179
+ galleryElement
180
+ .parent()
181
+ .on("click", ".premium-gallery-load-more-btn", function() {
182
+ if (isFilterClicked) {
183
+ counter = minimum;
184
+ isFilterClicked = false;
185
+ } else {
186
+ counter = counter;
187
}
188
+
189
+ counter = counter + imageToShow;
190
+
191
+ $.ajax({
192
+ url: appendItems(counter),
193
+ beforeSend: function() {
194
+ galleryElement
195
+ .parent()
196
+ .find(".premium-gallery-load-more div")
197
+ .removeClass("premium-gallery-item-hidden");
198
+ },
199
+ success: function() {
200
+ galleryElement
201
+ .parent()
202
+ .find(".premium-gallery-load-more div")
203
+ .addClass("premium-gallery-item-hidden");
204
+ }
205
+ });
206
});
207
}
208
}
209
210
+ if ("yes" !== gridSettings["light_box"]) {
211
+ galleryElement
212
+ .find(".premium-gallery-video-wrap")
213
+ .each(function(index, item) {
214
+ var type = $(item).data("type");
215
216
+ $(item)
217
+ .closest(".premium-gallery-item")
218
+ .on("click", function() {
219
+ var $this = $(this);
220
221
+ $this
222
+ .find(".pa-gallery-img")
223
+ .css("background", "#000");
224
225
+ $this
226
+ .find(
227
+ "img, .pa-gallery-icons-caption-container, .pa-gallery-icons-wrapper, .premium-gallery-caption"
228
+ )
229
+ .css("visibility", "hidden");
230
+
231
+ if ("hosted" !== type) {
232
+ var $iframe = $(item).find("iframe"),
233
+ src = $iframe.attr("src");
234
+
235
+ src = src.replace("&mute", "&autoplay=1&mute");
236
+ $iframe.attr("src", src);
237
+ $iframe.css("visibility", "visible");
238
+ } else {
239
+ var $video = $(item).find("video");
240
+ $video.get(0).play();
241
+ $video.css("visibility", "visible");
242
+ }
243
+ });
244
});
245
}
246
247
+ $scope.find(".premium-gallery-cats-container li a").click(function(e) {
248
e.preventDefault();
249
250
isFilterClicked = true;
259
filter = $(this).attr("data-filter");
260
261
galleryElement.isotope({ filter: filter });
262
+
263
+ if (shuffle) {
264
+ galleryElement.isotope("shuffle");
265
}
266
+
267
+ if (loadMore) appendItems(minimum);
268
269
return false;
270
});
271
272
+ if ("default" === gridSettings["lightbox_type"]) {
273
$scope
274
.find(".premium-img-gallery a[data-rel^='prettyPhoto']")
275
.prettyPhoto({
283
default_width: 900,
284
default_height: 506,
285
social_tools: ""
286
+ });
287
}
288
};
289
290
/****** Premium Counter Handler ******/
291
+ var PremiumCounterHandler = function($scope, $) {
292
var counterElement = $scope.find(".premium-counter");
293
+ elementorFrontend.waypoint(counterElement, function() {
294
var counterSettings = counterElement.data(),
295
incrementElement = counterElement.find(".premium-counter-init"),
296
iconElement = counterElement.find(".icon");
302
};
303
304
/****** Premium Fancy Text Handler ******/
305
+ var PremiumFancyTextHandler = function($scope, $) {
306
var fancyTextElement = $scope.find(".premium-fancy-text-wrapper");
307
var fancyTextSettings = fancyTextElement.data("settings");
308
function escapeHtml(unsafe) {
315
}
316
if (fancyTextSettings["effect"] === "typing") {
317
var fancyStrings = [];
318
+ fancyTextSettings["strings"].forEach(function(item) {
319
fancyStrings.push(escapeHtml(item));
320
});
321
fancyTextElement.find(".premium-fancy-text").typed({
340
};
341
342
/****** Premium Countdown Handler ******/
343
+ var PremiumCountDownHandler = function($scope, $) {
344
var countDownElement = $scope
345
.find(".premium-countdown")
346
+ .each(function() {
347
var countDownSettings = $(this).data("settings");
348
349
var label1 = countDownSettings["label1"],
360
until: new Date(countDownSettings["until"]),
361
format: countDownSettings["format"],
362
padZeroes: true,
363
+ onExpiry: function() {
364
$(this).html(countDownSettings["text"]);
365
},
366
+ serverSync: function() {
367
return new Date(
368
countDownSettings["serverSync"]
369
);
379
format: countDownSettings["format"],
380
padZeroes: true,
381
expiryUrl: countDownSettings["text"],
382
+ serverSync: function() {
383
return new Date(
384
countDownSettings["serverSync"]
385
);
415
};
416
417
/****** Premium Carousel Handler ******/
418
+ var PremiumCarouselHandler = function($scope, $) {
419
+ var carouselElement = $scope.find(".premium-carousel-wrapper"),
420
+ carouselSettings = $(carouselElement).data("settings"),
421
+ isEdit = elementorFrontend.isEditMode();
422
423
+ function slideToShow(slick) {
424
+ var slidesToShow = slick.options.slidesToShow,
425
+ windowWidth = $(window).width();
426
427
+ if (windowWidth > carouselSettings["tabletBreak"]) {
428
+ slidesToShow = carouselSettings["slidesDesk"];
429
+ }
430
431
+ if (windowWidth <= carouselSettings["tabletBreak"]) {
432
+ slidesToShow = carouselSettings["slidesTab"];
433
+ }
434
435
+ if (windowWidth <= carouselSettings["mobileBreak"]) {
436
+ slidesToShow = carouselSettings["slidesMob"];
437
}
438
439
+ return slidesToShow;
440
+ }
441
442
+ if (isEdit) {
443
+ carouselElement.find(".item-wrapper").each(function(index, slide) {
444
+ var templateID = $(slide).data("template");
445
446
+ if (undefined !== templateID) {
447
+ $.ajax({
448
+ type: "GET",
449
+ url: PremiumSettings.ajaxurl,
450
+ dataType: "html",
451
+ data: {
452
+ action: "get_elementor_template_content",
453
+ templateID: templateID
454
+ }
455
+ }).success(function(response) {
456
+ var data = JSON.parse(response).data;
457
458
+ if (undefined !== data.template_content) {
459
+ $(slide).html(data.template_content);
460
461
+ carouselElement
462
+ .find(".premium-carousel-inner")
463
+ .slick("refresh");
464
+ }
465
+ });
466
+ }
467
+ });
468
+ }
469
470
+ carouselElement.on("init", function(event) {
471
+ event.preventDefault();
472
473
+ $(this)
474
+ .find("item-wrapper.slick-active")
475
+ .each(function() {
476
+ var $this = $(this);
477
$this.addClass($this.data("animation"));
478
});
479
480
+ $(".slick-track").addClass("translate");
481
+ });
482
483
+ carouselElement.find(".premium-carousel-inner").slick({
484
+ vertical: carouselSettings["vertical"],
485
+ slidesToScroll: carouselSettings["slidesToScroll"],
486
+ slidesToShow: carouselSettings["slidesToShow"],
487
+ responsive: [
488
+ {
489
+ breakpoint: carouselSettings["tabletBreak"],
490
+ settings: {
491
+ slidesToShow: carouselSettings["slidesTab"],
492
+ slidesToScroll: carouselSettings["slidesTab"]
493
+ }
494
+ },
495
+ {
496
+ breakpoint: carouselSettings["mobileBreak"],
497
+ settings: {
498
+ slidesToShow: carouselSettings["slidesMob"],
499
+ slidesToScroll: carouselSettings["slidesMob"]
500
}
501
}
502
+ ],
503
+ useTransform: true,
504
+ fade: carouselSettings["fade"],
505
+ infinite: carouselSettings["infinite"],
506
+ speed: carouselSettings["speed"],
507
+ autoplay: carouselSettings["autoplay"],
508
+ autoplaySpeed: carouselSettings["autoplaySpeed"],
509
+ draggable: carouselSettings["draggable"],
510
+ touchMove: carouselSettings["touchMove"],
511
+ rtl: carouselSettings["rtl"],
512
+ adaptiveHeight: carouselSettings["adaptiveHeight"],
513
+ pauseOnHover: carouselSettings["pauseOnHover"],
514
+ centerMode: carouselSettings["centerMode"],
515
+ centerPadding: carouselSettings["centerPadding"],
516
+ arrows: carouselSettings["arrows"],
517
+ nextArrow: carouselSettings["nextArrow"],
518
+ prevArrow: carouselSettings["prevArrow"],
519
+ dots: carouselSettings["dots"],
520
+ customPaging: function() {
521
+ return (
522
+ '<i class="' + carouselSettings["customPaging"] + '"></i>'
523
+ );
524
+ }
525
+ });
526
527
+ carouselElement.on("afterChange", function(event, slick, currentSlide) {
528
+ var slidesScrolled = slick.options.slidesToScroll,
529
+ slidesToShow = slideToShow(slick),
530
+ centerMode = slick.options.centerMode,
531
+ slideToAnimate = currentSlide + slidesToShow - 1;
532
+
533
+ if (slidesScrolled === 1) {
534
+ if (!centerMode === true) {
535
+ var $inViewPort = $(this).find(
536
+ "[data-slick-index='" + slideToAnimate + "']"
537
+ );
538
+
539
+ if ("null" != carouselSettings["animation"]) {
540
+ $inViewPort
541
+ .find(
542
+ "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
543
+ )
544
+ .addClass(carouselSettings["animation"])
545
+ .removeClass("premium-carousel-content-hidden");
546
}
547
+ }
548
+ } else {
549
+ for (var i = slidesScrolled + currentSlide; i >= 0; i--) {
550
+ $inViewPort = $(this).find(
551
+ "[data-slick-index='" + i + "']"
552
+ );
553
+ if ("null" != carouselSettings["animation"]) {
554
+ $inViewPort
555
+ .find(
556
+ "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
557
+ )
558
+ .addClass(carouselSettings["animation"])
559
+ .removeClass("premium-carousel-content-hidden");
560
}
561
}
562
+ }
563
+ });
564
+
565
+ carouselElement.on("beforeChange", function(
566
+ event,
567
+ slick,
568
+ currentSlide
569
+ ) {
570
+ var $inViewPort = $(this).find(
571
+ "[data-slick-index='" + currentSlide + "']"
572
+ );
573
574
if ("null" != carouselSettings["animation"]) {
575
$inViewPort
576
.siblings()
577
+ .find("p, h1, h2, h3, h4, h5, h6, span, a, img, i, button")
578
.removeClass(carouselSettings["animation"])
579
.addClass("premium-carousel-content-hidden");
580
}
581
});
582
583
+ if (carouselSettings["vertical"]) {
584
var maxHeight = -1;
585
586
+ carouselElement.find(".slick-slide").each(function() {
587
+ if ($(this).height() > maxHeight) {
588
+ maxHeight = $(this).height();
589
}
590
});
591
592
+ carouselElement.find(".slick-slide").each(function() {
593
+ if ($(this).height() < maxHeight) {
594
+ $(this).css(
595
+ "margin",
596
+ Math.ceil((maxHeight - $(this).height()) / 2) + "px 0"
597
+ );
598
}
599
});
600
}
601
+
602
var marginFix = {
603
+ element: $("a.ver-carousel-arrow"),
604
+ getWidth: function() {
605
+ var width = this.element.outerWidth();
606
+
607
+ return width / 2;
608
},
609
+ setWidth: function(type) {
610
type = type || "vertical";
611
+
612
+ if (type == "vertical") {
613
+ this.element.css(
614
+ "margin-left",
615
+ "-" + this.getWidth() + "px"
616
+ );
617
} else {
618
+ this.element.css(
619
+ "margin-top",
620
+ "-" + this.getWidth() + "px"
621
+ );
622
}
623
}
624
};
625
+
626
marginFix.setWidth();
627
+ marginFix.element = $("a.carousel-arrow");
628
+ marginFix.setWidth("horizontal");
629
};
630
631
/****** Premium Banner Handler ******/
632
+ var PremiumBannerHandler = function($scope, $) {
633
var bannerElement = $scope.find(".premium-banner");
634
bannerElement.find(".premium-banner-ib").hover(
635
+ function() {
636
$(this)
637
.find(".premium-banner-ib-img")
638
.addClass("active");
639
},
640
+ function() {
641
$(this)
642
.find(".premium-banner-ib-img")
643
.removeClass("active");
646
};
647
648
/****** Premium Modal Box Handler ******/
649
+ var PremiumModalBoxHandler = function($scope, $) {
650
var modalBoxElement = $scope.find(".premium-modal-box-container"),
651
modalBoxSettings = modalBoxElement.data("settings");
652
653
if (modalBoxElement.length > 0) {
654
if (modalBoxSettings["trigger"] === "pageload") {
655
+ $(document).ready(function($) {
656
+ setTimeout(function() {
657
modalBoxElement
658
.find(".premium-modal-box-modal")
659
.modal();
664
};
665
666
/****** Premium Blog Handler ******/
667
+ var PremiumBlogHandler = function($scope, $) {
668
var blogElement = $scope.find(".premium-blog-wrap"),
669
+ colsNumber = blogElement.data("col"),
670
+ carousel = blogElement.data("carousel"),
671
+ grid = blogElement.data("grid");
672
+
673
+ $scope.find(".premium-blog-cats-container li a").click(function(e) {
674
e.preventDefault();
675
676
$scope
680
$(this).addClass("active");
681
682
var selector = $(this).attr("data-filter");
683
+
684
blogElement.isotope({ filter: selector });
685
686
return false;
687
});
688
689
+ var masonryBlog = blogElement.hasClass("premium-blog-masonry");
690
+
691
+ if (masonryBlog && !carousel) {
692
+ blogElement.imagesLoaded(function() {
693
blogElement.isotope({
694
itemSelector: ".premium-blog-post-outer-container",
695
percentPosition: true,
702
});
703
}
704
705
+ if (carousel && grid) {
706
+ var autoPlay = blogElement.data("play"),
707
+ speed = blogElement.data("speed"),
708
+ fade = blogElement.data("fade"),
709
+ arrows = blogElement.data("arrows"),
710
+ dots = blogElement.data("dots"),
711
+ prevArrow = null,
712
+ nextArrow = null;
713
+
714
+ if (arrows) {
715
+ (prevArrow =
716
+ '<a type="button" data-role="none" class="carousel-arrow carousel-prev" aria-label="Next" role="button" style=""><i class="fas fa-angle-left" aria-hidden="true"></i></a>'),
717
+ (nextArrow =
718
+ '<a type="button" data-role="none" class="carousel-arrow carousel-next" aria-label="Next" role="button" style=""><i class="fas fa-angle-right" aria-hidden="true"></i></a>');
719
} else {
720
+ prevArrow = prevArrow = "";
721
}
722
+
723
+ $(blogElement).slick({
724
+ infinite: true,
725
+ slidesToShow: colsNumber,
726
slidesToScroll: colsNumber,
727
+ responsive: [
728
{
729
breakpoint: 769,
730
settings: {
740
}
741
}
742
],
743
+ autoplay: autoPlay,
744
+ autoplaySpeed: speed,
745
+ nextArrow: nextArrow,
746
+ prevArrow: prevArrow,
747
+ fade: fade,
748
+ draggable: true,
749
+ dots: dots,
750
+ customPaging: function() {
751
+ return '<i class="fas fa-circle"></i>';
752
}
753
});
754
}
755
};
756
757
/****** Premium Image Scroll ******/
758
+ var PremiumImageScrollHandler = function($scope, $) {
759
var scrollElement = $scope.find(".premium-image-scroll-container"),
760
scrollOverlay = scrollElement.find(".premium-image-scroll-overlay"),
761
scrollVertical = scrollElement.find(
771
imageScroll.css(
772
"transform",
773
(direction === "vertical" ? "translateY" : "translateX") +
774
+ "( -" +
775
+ transformOffset +
776
+ "px)"
777
);
778
}
779
781
imageScroll.css(
782
"transform",
783
(direction === "vertical" ? "translateY" : "translateX") +
784
+ "(0px)"
785
);
786
}
787
798
if (direction === "vertical") {
799
scrollVertical.addClass("premium-image-scroll-ver");
800
} else {
801
+ scrollElement.imagesLoaded(function() {
802
scrollOverlay.css({
803
width: imageScroll.width(),
804
height: imageScroll.height()
807
}
808
} else {
809
if (reverse === "yes") {
810
+ scrollElement.imagesLoaded(function() {
811
scrollElement.addClass("premium-container-scroll-instant");
812
setTransform();
813
startTransform();
816
if (direction === "vertical") {
817
scrollVertical.removeClass("premium-image-scroll-ver");
818
}
819
+ scrollElement.mouseenter(function() {
820
scrollElement.removeClass("premium-container-scroll-instant");
821
setTransform();
822
reverse === "yes" ? endTransform() : startTransform();
823
});
824
825
+ scrollElement.mouseleave(function() {
826
reverse === "yes" ? startTransform() : endTransform();
827
});
828
}
829
};
830
831
+ var PremiumContactFormHandler = function($scope, $) {
832
+ var contactForm = $scope.find(".premium-cf7-container");
833
+
834
+ var input = contactForm.find(
835
+ 'input[type="text"], input[type="email"], textarea, input[type="password"], input[type="date"], input[type="number"], input[type="tel"], input[type="file"], input[type="url"]'
836
+ );
837
+ input.wrap("<span class='wpcf7-span'>");
838
+
839
+ input.on("focus blur", function() {
840
+ $(this)
841
+ .closest(".wpcf7-span")
842
+ .toggleClass("is-focused");
843
+ });
844
+ };
845
+
846
//Elementor JS Hooks
847
+ $(window).on("elementor/frontend/init", function() {
848
elementorFrontend.hooks.addAction(
849
"frontend/element_ready/premium-addon-video-box.default",
850
PremiumVideoBoxWidgetHandler
885
"frontend/element_ready/premium-image-scroll.default",
886
PremiumImageScrollHandler
887
);
888
+ elementorFrontend.hooks.addAction(
889
+ "frontend/element_ready/premium-contact-form.default",
890
+ PremiumContactFormHandler
891
+ );
892
+
893
if (elementorFrontend.isEditMode()) {
894
elementorFrontend.hooks.addAction(
895
"frontend/element_ready/premium-addon-progressbar.default",
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.7.8
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.7.8');
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.7.7');
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.7.9
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.7.9');
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.7.8');
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.2.2
7
Requires PHP: 5.4
8
- Stable Tag: 3.7.8
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -56,7 +56,7 @@ Each widget and addon has been tested on different screen sizes, mobile devices,
56
57
### Section Addons & Widgets
58
* [**Vertical Scroll Widget**](https://premiumaddons.com/vertical-scroll-widget-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(FREE)*: Create beautiful vertical scroll pages with advanced responsive control options using Premium Vertical Scroll Widget for Elementor Page Builder.
59
- * [**Color Transition Widget**](https://premiumaddons.com/elementor-color-transition-widget/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: Create fancy, colorful, and eye-catching webpages using background Color Transition Widget for Elementor. It allows you to have a seamless transition between sections background colors.
60
* [**Multi-Scroll Widget**](https://premiumaddons.com/multi-scroll-widget-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: The only Elementor widget available that allows you to create attractive multi-scroll effect. It can be used to create full landing pages or use it inside any page.
61
* [**Parallax Section Addon**](https://premiumaddons.com/parallax-section-addon-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: The only Elementor Parallax Section Addon with freehand design experience and many styles to choose from.
62
* [**Particles Section Addon**](https://premiumaddons.com/particles-section-addon-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: Create eye-catching particles background using Elementor and Premium Addons with many customization options.
@@ -175,6 +175,18 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
175
176
== Changelog ==
177
178
= 3.7.8 =
179
180
- Tweak: Added `Image Size` option in Image Scroll widget.
5
Requires at Least: 4.5
6
Tested Up To: 5.2.2
7
Requires PHP: 5.4
8
+ Stable Tag: 3.7.9
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
56
57
### Section Addons & Widgets
58
* [**Vertical Scroll Widget**](https://premiumaddons.com/vertical-scroll-widget-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(FREE)*: Create beautiful vertical scroll pages with advanced responsive control options using Premium Vertical Scroll Widget for Elementor Page Builder.
59
+ * [**Background Transition Widget**](https://premiumaddons.com/elementor-background-transition-widget/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: Create fancy, colorful, and eye-catching webpages using background Color Transition Widget for Elementor. It allows you to have a seamless transition between sections background colors.
60
* [**Multi-Scroll Widget**](https://premiumaddons.com/multi-scroll-widget-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: The only Elementor widget available that allows you to create attractive multi-scroll effect. It can be used to create full landing pages or use it inside any page.
61
* [**Parallax Section Addon**](https://premiumaddons.com/parallax-section-addon-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: The only Elementor Parallax Section Addon with freehand design experience and many styles to choose from.
62
* [**Particles Section Addon**](https://premiumaddons.com/particles-section-addon-for-elementor-page-builder/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) *(PRO)*: Create eye-catching particles background using Elementor and Premium Addons with many customization options.
175
176
== Changelog ==
177
178
+ = 3.7.9 =
179
+
180
+ - Tweak: Added style options for Container in Banner widget.
181
+ - Tweak: Changed `Border Radius` option from `SLIDER` to `DIMENSIONS` in Countdown widget.
182
+ - Tweak: Added `Remote Video URL` option to Media Grid and Video Box widget.
183
+ - Tweak: Added `First Category Label` option for Filter Tabs in Blog widget.
184
+ - Fixed: Image overlay does not appear with Self Hosted videos in Video Box widget.
185
+ - Fixed: `Contact Form 7` widget wraps all inputs in the page.
186
+ - Fixed: Single quote not rendered in Fancy Text widget.
187
+ - Fixed: Default border applied on navigation arrows in Carousel widget.
188
+ - Fixed: Navigation Arrows hidden by default in some themes in Carousel widget.
189
+
190
= 3.7.8 =
191
192
- Tweak: Added `Image Size` option in Image Scroll widget.
widgets/premium-banner.php CHANGED
@@ -13,6 +13,7 @@ use Elementor\Scheme_Typography;
13
use Elementor\Group_Control_Border;
14
use Elementor\Group_Control_Typography;
15
use Elementor\Group_Control_Css_Filter;
16
use Elementor\Group_Control_Text_Shadow;
17
18
if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
@@ -781,6 +782,42 @@ class Premium_Banner extends Widget_Base {
781
);
782
783
$this->end_controls_section();
784
785
}
786
13
use Elementor\Group_Control_Border;
14
use Elementor\Group_Control_Typography;
15
use Elementor\Group_Control_Css_Filter;
16
+ use Elementor\Group_Control_Box_Shadow;
17
use Elementor\Group_Control_Text_Shadow;
18
19
if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
782
);
783
784
$this->end_controls_section();
785
+
786
+ $this->start_controls_section('premium_banner_container_style',
787
+ [
788
+ 'label' => __( 'Container', 'premium-addons-for-elementor' ),
789
+ 'tab' => Controls_Manager::TAB_STYLE
790
+ ]
791
+ );
792
+
793
+ $this->add_group_control(
794
+ Group_Control_Border::get_type(),
795
+ [
796
+ 'name' => 'premium_banner_border',
797
+ 'selector' => '{{WRAPPER}} .premium-banner'
798
+ ]
799
+ );
800
+
801
+ $this->add_control('premium_banner_border_radius',
802
+ [
803
+ 'label' => __('Border Radius', 'premium-addons-for-elementor'),
804
+ 'type' => Controls_Manager::DIMENSIONS,
805
+ 'size_units' => ['px', '%' ,'em'],
806
+ 'selectors' => [
807
+ '{{WRAPPER}} .premium-banner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
808
+ ]
809
+ ]
810
+ );
811
+
812
+ $this->add_group_control(
813
+ Group_Control_Box_Shadow::get_type(),
814
+ [
815
+ 'name' => 'premium_banner_shadow',
816
+ 'selector' => '{{WRAPPER}} .premium-banner',
817
+ ]
818
+ );
819
+
820
+ $this->end_controls_section();
821
822
}
823
widgets/premium-blog.php CHANGED
@@ -480,6 +480,18 @@ class Premium_Blog extends Widget_Base {
480
]
481
);
482
483
$this->add_responsive_control('premium_blog_filter_align',
484
[
485
'label' => __( 'Alignment', 'premium-addons-for-elementor' ),
@@ -1856,7 +1868,7 @@ class Premium_Blog extends Widget_Base {
1856
<ul class="premium-blog-cats-container">
1857
<li>
1858
<a href="javascript:;" class="category active" data-filter="*">
1859
- <span><?php echo __('All', 'premium-addons-for-elementor'); ?></span>
1860
</a>
1861
</li>
1862
<?php foreach( $settings['premium_blog_categories'] as $index => $id ) {
480
]
481
);
482
483
+ $this->add_control('premium_blog_cat_tabs_label',
484
+ [
485
+ 'label' => __( 'First Category Label', 'premium-addons-for-elementor' ),
486
+ 'type' => Controls_Manager::TEXT,
487
+ 'default' => __('All', 'premium-addons-for-elementor'),
488
+ 'condition' => [
489
+ 'premium_blog_cat_tabs' => 'yes',
490
+ 'premium_blog_carousel!' => 'yes'
491
+ ]
492
+ ]
493
+ );
494
+
495
$this->add_responsive_control('premium_blog_filter_align',
496
[
497
'label' => __( 'Alignment', 'premium-addons-for-elementor' ),
1868
<ul class="premium-blog-cats-container">
1869
<li>
1870
<a href="javascript:;" class="category active" data-filter="*">
1871
+ <span><?php echo esc_html ( $settings['premium_blog_cat_tabs_label'] ); ?></span>
1872
</a>
1873
</li>
1874
<?php foreach( $settings['premium_blog_categories'] as $index => $id ) {
widgets/premium-contactform.php CHANGED
@@ -18,12 +18,6 @@ class Premium_Contactform extends Widget_Base {
18
public function get_name() {
19
return 'premium-contact-form';
20
}
21
-
22
- public function get_style_depends() {
23
- return [
24
- 'premium-addons'
25
- ];
26
- }
27
28
public function get_title() {
29
return sprintf( '%1$s %2$s', Helper_Functions::get_prefix(), __('Contact Form7', 'premium-addons-for-elementor') );
@@ -31,16 +25,28 @@ class Premium_Contactform extends Widget_Base {
31
32
public function get_icon() {
33
return 'pa-contact-form';
34
- }
35
- public function get_categories() {
36
return array( 'premium-elements' );
37
}
38
39
- // Adding the controls fields for the premium contact form
40
// This will controls the animation, colors and background, dimensions etc
41
- protected function _register_controls() {
42
43
-
44
$this->start_controls_section(
45
'premium_section_wpcf7_form',
46
[
@@ -94,7 +100,7 @@ class Premium_Contactform extends Widget_Base {
94
'unit' => '%'
95
],
96
'selectors' => [
97
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text' => 'width: {{SIZE}}{{UNIT}};',
98
],
99
]
100
);
@@ -120,7 +126,7 @@ class Premium_Contactform extends Widget_Base {
120
'unit' => '%'
121
],
122
'selectors' => [
123
- '{{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'width: {{SIZE}}{{UNIT}};',
124
],
125
]
126
);
@@ -148,7 +154,7 @@ class Premium_Contactform extends Widget_Base {
148
],
149
],
150
'selectors' => [
151
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text' => 'height: {{SIZE}}{{UNIT}};',
152
],
153
]
154
);
@@ -170,7 +176,7 @@ class Premium_Contactform extends Widget_Base {
170
],
171
],
172
'selectors' => [
173
- '{{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'height: {{SIZE}}{{UNIT}};',
174
],
175
]
176
);
@@ -200,7 +206,7 @@ class Premium_Contactform extends Widget_Base {
200
],
201
],
202
'selectors' => [
203
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'width: {{SIZE}}{{UNIT}};',
204
],
205
]
206
);
@@ -223,7 +229,7 @@ class Premium_Contactform extends Widget_Base {
223
],
224
],
225
'selectors' => [
226
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'height: {{SIZE}}{{UNIT}};',
227
],
228
]
229
);
@@ -243,7 +249,7 @@ class Premium_Contactform extends Widget_Base {
243
'label' => __( 'Input Field Background', 'premium-addons-for-elementor' ),
244
'type' => Controls_Manager::COLOR,
245
'selectors' => [
246
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'background: {{VALUE}};',
247
],
248
]
249
);
@@ -255,7 +261,7 @@ class Premium_Contactform extends Widget_Base {
255
'type' => Controls_Manager::DIMENSIONS,
256
'size_units' => [ 'px', 'em', '%' ],
257
'selectors' => [
258
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
259
],
260
]
261
);
@@ -264,7 +270,7 @@ class Premium_Contactform extends Widget_Base {
264
Group_Control_Border::get_type(),
265
[
266
'name' => 'premium_elements_input_border',
267
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea',
268
]
269
);
270
@@ -275,7 +281,7 @@ class Premium_Contactform extends Widget_Base {
275
'type' => Controls_Manager::DIMENSIONS,
276
'size_units' => [ 'px' ],
277
'selectors' => [
278
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
279
],
280
]
281
);
@@ -287,7 +293,7 @@ class Premium_Contactform extends Widget_Base {
287
'type' => Controls_Manager::DIMENSIONS,
288
'size_units' => [ 'px', 'em', '%' ],
289
'selectors' => [
290
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
291
],
292
]
293
);
@@ -298,7 +304,7 @@ class Premium_Contactform extends Widget_Base {
298
'label' => __( 'Focus Border Color', 'premium-addons-for-elementor' ),
299
'type' => Controls_Manager::COLOR,
300
'selectors' => [
301
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text:focus, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea:focus' => 'border-color: {{VALUE}};',
302
],
303
]
304
);
@@ -334,7 +340,7 @@ class Premium_Contactform extends Widget_Base {
334
Group_Control_Box_Shadow::get_type(),
335
[
336
'name' => 'input_button_shadow',
337
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea',
338
]
339
);
340
@@ -369,7 +375,7 @@ class Premium_Contactform extends Widget_Base {
369
'value' => Scheme_Color::COLOR_1,
370
],
371
'selectors' => [
372
- '{{WRAPPER}} .premium-elements-contact-form-container, {{WRAPPER}} .premium-elements-contact-form-container label' => 'color: {{VALUE}};',
373
],
374
]
375
);
@@ -379,7 +385,7 @@ class Premium_Contactform extends Widget_Base {
379
[
380
'name' => 'premium_elements_contact_form_default_typography',
381
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
382
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container',
383
]
384
);
385
@@ -402,7 +408,7 @@ class Premium_Contactform extends Widget_Base {
402
'value' => Scheme_Color::COLOR_1,
403
],
404
'selectors' => [
405
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'color: {{VALUE}};',
406
],
407
]
408
);
@@ -412,7 +418,7 @@ class Premium_Contactform extends Widget_Base {
412
[
413
'name' => 'premium_elements_contact_form_field_typography',
414
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
415
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea',
416
]
417
);
418
@@ -423,9 +429,9 @@ class Premium_Contactform extends Widget_Base {
423
'label' => __( 'Placeholder Color', 'premium-addons-for-elementor' ),
424
'type' => Controls_Manager::COLOR,
425
'selectors' => [
426
- '{{WRAPPER}} .premium-elements-contact-form-container ::-webkit-input-placeholder' => 'color: {{VALUE}};',
427
- '{{WRAPPER}} .premium-elements-contact-form-container ::-moz-placeholder' => 'color: {{VALUE}};',
428
- '{{WRAPPER}} .premium-elements-contact-form-container ::-ms-input-placeholder' => 'color: {{VALUE}};',
429
],
430
]
431
);
@@ -446,7 +452,7 @@ class Premium_Contactform extends Widget_Base {
446
[
447
'name' => 'section_title_premium_btn_typography',
448
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
449
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit',
450
]
451
);
452
@@ -457,7 +463,7 @@ class Premium_Contactform extends Widget_Base {
457
'type' => Controls_Manager::DIMENSIONS,
458
'size_units' => [ 'px', 'em', '%' ],
459
'selectors' => [
460
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
461
],
462
]
463
);
@@ -474,7 +480,7 @@ class Premium_Contactform extends Widget_Base {
474
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
475
'type' => Controls_Manager::COLOR,
476
'selectors' => [
477
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'color: {{VALUE}};',
478
],
479
]
480
);
@@ -491,7 +497,7 @@ class Premium_Contactform extends Widget_Base {
491
'value' => Scheme_Color::COLOR_1,
492
],
493
'selectors' => [
494
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'background-color: {{VALUE}};',
495
],
496
]
497
);
@@ -500,7 +506,7 @@ class Premium_Contactform extends Widget_Base {
500
Group_Control_Border::get_type(),
501
[
502
'name' => 'premium_elements_btn_border',
503
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit',
504
]
505
);
506
@@ -515,7 +521,7 @@ class Premium_Contactform extends Widget_Base {
515
],
516
],
517
'selectors' => [
518
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'border-radius: {{SIZE}}px;',
519
],
520
]
521
);
@@ -532,7 +538,7 @@ class Premium_Contactform extends Widget_Base {
532
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
533
'type' => Controls_Manager::COLOR,
534
'selectors' => [
535
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit:hover' => 'color: {{VALUE}};',
536
],
537
]
538
);
@@ -543,7 +549,7 @@ class Premium_Contactform extends Widget_Base {
543
'label' => __( 'Background Color', 'premium-addons-for-elementor' ),
544
'type' => Controls_Manager::COLOR,
545
'selectors' => [
546
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit:hover' => 'background-color: {{VALUE}};',
547
],
548
]
549
);
@@ -554,7 +560,7 @@ class Premium_Contactform extends Widget_Base {
554
'label' => __( 'Border Color', 'premium-addons-for-elementor' ),
555
'type' => Controls_Manager::COLOR,
556
'selectors' => [
557
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit:hover' => 'border-color: {{VALUE}};',
558
],
559
]
560
);
@@ -568,7 +574,7 @@ class Premium_Contactform extends Widget_Base {
568
Group_Control_Box_Shadow::get_type(),
569
[
570
'name' => 'button_box_shadow',
571
- 'selector' => '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit',
572
]
573
);
574
@@ -602,29 +608,27 @@ class Premium_Contactform extends Widget_Base {
602
603
return $result;
604
}
605
- protected function render() {
606
607
$settings = $this->get_settings();
608
609
610
- if ( ! empty( $settings['premium_wpcf7_form'] ) ) {?>
611
-
612
- <div class="premium-elements-contact-form-container <?php echo $settings['premium_elements_input_focus_border_animation'] ?> ">
613
-
614
<?php echo do_shortcode( '[contact-form-7 id="' . $settings['premium_wpcf7_form'] . '" ]' );?>
615
</div>
616
- <script>
617
- jQuery(function($){
618
- var linput = jQuery( 'body input[type="text"], body input[type="email"], body textarea , body input[type="password"], body input[type="date"], body input[type="number"], body input[type="tel"], body input[type="file"], body input[type="url"]');
619
- linput.wrap("<span class='wpcf7-span'>")
620
-
621
- var linput = jQuery( 'body input[type="text"], body input[type="email"], body textarea , body input[type="password"], body input[type="date"], body input[type="number"], body input[type="tel"], body input[type="file"], body input[type="url"]');
622
- linput.on("focus blur", function(){
623
- $(this).closest(".wpcf7-span").toggleClass("is-focused");
624
- });
625
- });
626
- </script>
627
- <?php
628
}
629
630
}
18
public function get_name() {
19
return 'premium-contact-form';
20
}
21
22
public function get_title() {
23
return sprintf( '%1$s %2$s', Helper_Functions::get_prefix(), __('Contact Form7', 'premium-addons-for-elementor') );
25
26
public function get_icon() {
27
return 'pa-contact-form';
28
+ }
29
+
30
+ public function get_categories() {
31
return array( 'premium-elements' );
32
}
33
34
+ public function get_style_depends() {
35
+ return [
36
+ 'premium-addons'
37
+ ];
38
+ }
39
+
40
+ public function get_script_depends() {
41
+ return [
42
+ 'premium-addons-js'
43
+ ];
44
+ }
45
+
46
+ // Adding the controls fields for the premium contact form
47
// This will controls the animation, colors and background, dimensions etc
48
+ protected function _register_controls() {
49
50
$this->start_controls_section(
51
'premium_section_wpcf7_form',
52
[
100
'unit' => '%'
101
],
102
'selectors' => [
103
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text' => 'width: {{SIZE}}{{UNIT}};',
104
],
105
]
106
);
126
'unit' => '%'
127
],
128
'selectors' => [
129
+ '{{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'width: {{SIZE}}{{UNIT}};',
130
],
131
]
132
);
154
],
155
],
156
'selectors' => [
157
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text' => 'height: {{SIZE}}{{UNIT}};',
158
],
159
]
160
);
176
],
177
],
178
'selectors' => [
179
+ '{{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'height: {{SIZE}}{{UNIT}};',
180
],
181
]
182
);
206
],
207
],
208
'selectors' => [
209
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit' => 'width: {{SIZE}}{{UNIT}};',
210
],
211
]
212
);
229
],
230
],
231
'selectors' => [
232
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit' => 'height: {{SIZE}}{{UNIT}};',
233
],
234
]
235
);
249
'label' => __( 'Input Field Background', 'premium-addons-for-elementor' ),
250
'type' => Controls_Manager::COLOR,
251
'selectors' => [
252
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'background: {{VALUE}};',
253
],
254
]
255
);
261
'type' => Controls_Manager::DIMENSIONS,
262
'size_units' => [ 'px', 'em', '%' ],
263
'selectors' => [
264
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
265
],
266
]
267
);
270
Group_Control_Border::get_type(),
271
[
272
'name' => 'premium_elements_input_border',
273
+ 'selector' => '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea',
274
]
275
);
276
281
'type' => Controls_Manager::DIMENSIONS,
282
'size_units' => [ 'px' ],
283
'selectors' => [
284
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
285
],
286
]
287
);
293
'type' => Controls_Manager::DIMENSIONS,
294
'size_units' => [ 'px', 'em', '%' ],
295
'selectors' => [
296
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
297
],
298
]
299
);
304
'label' => __( 'Focus Border Color', 'premium-addons-for-elementor' ),
305
'type' => Controls_Manager::COLOR,
306
'selectors' => [
307
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text:focus, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea:focus' => 'border-color: {{VALUE}};',
308
],
309
]
310
);
340
Group_Control_Box_Shadow::get_type(),
341
[
342
'name' => 'input_button_shadow',
343
+ 'selector' => '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea',
344
]
345
);
346
375
'value' => Scheme_Color::COLOR_1,
376
],
377
'selectors' => [
378
+ '{{WRAPPER}} .premium-cf7-container, {{WRAPPER}} .premium-cf7-container label' => 'color: {{VALUE}};',
379
],
380
]
381
);
385
[
386
'name' => 'premium_elements_contact_form_default_typography',
387
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
388
+ 'selector' => '{{WRAPPER}} .premium-cf7-container',
389
]
390
);
391
408
'value' => Scheme_Color::COLOR_1,
409
],
410
'selectors' => [
411
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea' => 'color: {{VALUE}};',
412
],
413
]
414
);
418
[
419
'name' => 'premium_elements_contact_form_field_typography',
420
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
421
+ 'selector' => '{{WRAPPER}} .premium-cf7-container input.wpcf7-text, {{WRAPPER}} .premium-cf7-container textarea.wpcf7-textarea',
422
]
423
);
424
429
'label' => __( 'Placeholder Color', 'premium-addons-for-elementor' ),
430
'type' => Controls_Manager::COLOR,
431
'selectors' => [
432
+ '{{WRAPPER}} .premium-cf7-container ::-webkit-input-placeholder' => 'color: {{VALUE}};',
433
+ '{{WRAPPER}} .premium-cf7-container ::-moz-placeholder' => 'color: {{VALUE}};',
434
+ '{{WRAPPER}} .premium-cf7-container ::-ms-input-placeholder' => 'color: {{VALUE}};',
435
],
436
]
437
);
452
[
453
'name' => 'section_title_premium_btn_typography',
454
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
455
+ 'selector' => '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit',
456
]
457
);
458
463
'type' => Controls_Manager::DIMENSIONS,
464
'size_units' => [ 'px', 'em', '%' ],
465
'selectors' => [
466
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
467
],
468
]
469
);
480
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
481
'type' => Controls_Manager::COLOR,
482
'selectors' => [
483
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit' => 'color: {{VALUE}};',
484
],
485
]
486
);
497
'value' => Scheme_Color::COLOR_1,
498
],
499
'selectors' => [
500
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit' => 'background-color: {{VALUE}};',
501
],
502
]
503
);
506
Group_Control_Border::get_type(),
507
[
508
'name' => 'premium_elements_btn_border',
509
+ 'selector' => '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit',
510
]
511
);
512
521
],
522
],
523
'selectors' => [
524
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit' => 'border-radius: {{SIZE}}px;',
525
],
526
]
527
);
538
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
539
'type' => Controls_Manager::COLOR,
540
'selectors' => [
541
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit:hover' => 'color: {{VALUE}};',
542
],
543
]
544
);
549
'label' => __( 'Background Color', 'premium-addons-for-elementor' ),
550
'type' => Controls_Manager::COLOR,
551
'selectors' => [
552
+ '{{WRAPPER}} .premium-cf7-container input.wpcf7-submit:hover' => 'background-color: {{VALUE}};',
553
],
554
]
555
);
560