Premium Addons for Elementor - Version 3.6.7

Version Description

  • Tweak: Font Awesome 5 compatibility for all widgets.
  • Tweak: Added Navigation Dots option for carousel in Blog widget.
  • Tweak: Added Text/Background Hover Color option for filter tabs in Grid widget.
  • Tweak: Added Shuffle Images on Page Load option to Grid widget.
  • Fixed: Description container rendered even when description text is empty.
  • Tweak: Show overflow content then scroll in Vertical Scroll widget.
  • Fixed: Vertical Scroll issue on Mac OS.
Download this release

Release Info

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

Code changes from version 3.6.6 to 3.6.7

admin/includes/version-control.php CHANGED
@@ -91,7 +91,7 @@ class Version_Control {
91
<tr class="pa-roll-row">
92
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
<td>
94
- <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.6.5', 'premium-addons-for-elementor') ); ?></div>
95
<p class="pa-roll-desc">
96
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
</p>
91
<tr class="pa-roll-row">
92
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
<td>
94
+ <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.6.6', 'premium-addons-for-elementor') ); ?></div>
95
<p class="pa-roll-desc">
96
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
</p>
assets/frontend/css/premium-addons.css CHANGED
@@ -891,7 +891,8 @@ a.circle-border {
891
a.square-border {
892
border: solid black;
893
}
894
- .premium-carousel-wrapper ul.slick-dots {
895
list-style: none;
896
text-align: center;
897
margin: 0;
@@ -2090,6 +2091,12 @@ button.premium-modal-box-modal-close {
2090
font-size: 20px;
2091
}
2092
/*
2093
* Even Layout
2094
*/
2095
.premium-blog-even .premium-blog-post-container {
@@ -3219,6 +3226,18 @@ button.premium-modal-box-modal-close {
3219
border-radius: 75px;
3220
margin: 15px 5px 20px;
3221
padding: 7px 20px;
3222
}
3223
.pa-gallery-img {
3224
position: relative;
891
a.square-border {
892
border: solid black;
893
}
894
+ .premium-carousel-wrapper ul.slick-dots,
895
+ .premium-blog-wrap ul.slick-dots {
896
list-style: none;
897
text-align: center;
898
margin: 0;
2091
font-size: 20px;
2092
}
2093
/*
2094
+ * Carousel
2095
+ */
2096
+ .premium-blog-wrap ul.slick-dots {
2097
+ width: 100%;
2098
+ }
2099
+ /*
2100
* Even Layout
2101
*/
2102
.premium-blog-even .premium-blog-post-container {
3226
border-radius: 75px;
3227
margin: 15px 5px 20px;
3228
padding: 7px 20px;
3229
+ -webkit-transition: all 0.3s ease-in-out;
3230
+ -moz-transition: all 0.3s ease-in-out;
3231
+ -ms-transition: all 0.3s ease-in-out;
3232
+ -o-transition: all 0.3s ease-in-out;
3233
+ transition: all 0.3s ease-in-out;
3234
+ }
3235
+ .premium-img-gallery-filter .premium-gallery-cats-container li a.category span {
3236
+ -webkit-transition: all 0.3s ease-in-out;
3237
+ -moz-transition: all 0.3s ease-in-out;
3238
+ -ms-transition: all 0.3s ease-in-out;
3239
+ -o-transition: all 0.3s ease-in-out;
3240
+ transition: all 0.3s ease-in-out;
3241
}
3242
.pa-gallery-img {
3243
position: relative;
assets/frontend/js/lib/scrollify.js DELETED
@@ -1,868 +0,0 @@
1
- /*!
2
- * jQuery Scrollify
3
- * Version 1.0.20
4
- *
5
- * Requires:
6
- * - jQuery 1.7 or higher
7
- *
8
- * https://github.com/lukehaas/Scrollify
9
- *
10
- * Copyright 2016, Luke Haas
11
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
12
- * this software and associated documentation files (the "Software"), to deal in
13
- * the Software without restriction, including without limitation the rights to
14
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
15
- * the Software, and to permit persons to whom the Software is furnished to do so,
16
- * subject to the following conditions:
17
- *
18
- * The above copyright notice and this permission notice shall be included in all
19
- * copies or substantial portions of the Software.
20
- *
21
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
23
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
24
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
25
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
26
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
-
28
-
29
-
30
- if touchScroll is false - update index
31
-
32
- */
33
- (function (global,factory) {
34
- "use strict";
35
- if (typeof define === 'function' && define.amd) {
36
- // AMD. Register as an anonymous module.
37
- define(['jquery'], function($) {
38
- return factory($, global, global.document);
39
- });
40
- } else if (typeof module === 'object' && module.exports) {
41
- // Node/CommonJS
42
- module.exports = factory(require('jquery'), global, global.document);
43
- } else {
44
- // Browser globals
45
- factory(jQuery, global, global.document);
46
- }
47
- }(typeof window !== 'undefined' ? window : this, function ($, window, document, undefined) {
48
- "use strict";
49
- var heights = [],
50
- names = [],
51
- elements = [],
52
- overflow = [],
53
- index = 0,
54
- currentIndex = 0,
55
- interstitialIndex = 1,
56
- hasLocation = false,
57
- timeoutId,
58
- timeoutId2,
59
- $window = $(window),
60
- portHeight,
61
- top = $window.scrollTop(),
62
- scrollable = false,
63
- locked = false,
64
- scrolled = false,
65
- manualScroll,
66
- swipeScroll,
67
- util,
68
- disabled = false,
69
- scrollSamples = [],
70
- scrollTime = new Date().getTime(),
71
- currentScrollID = null,
72
- firstLoad = true,
73
- initialised = false,
74
- destination = 0,
75
- wheelEvent = 'onwheel' in document ? 'wheel' : document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll',
76
- settings = {
77
- //section should be an identifier that is the same for each section
78
- section: ".section",
79
- sectionName: "section-name",
80
- interstitialSection: "",
81
- easing: "easeOutExpo",
82
- scrollSpeed: 1100,
83
- offset: 0,
84
- scrollbars: true,
85
- templates: false,
86
- target:"html,body",
87
- standardScrollElements: false,
88
- setHeights: true,
89
- overflowScroll:true,
90
- updateHash: true,
91
- touchScroll:true,
92
- before:function() {},
93
- after:function() {},
94
- afterResize:function() {},
95
- afterRender:function() {}
96
- };
97
- function getportHeight() {
98
- return ($window.height() + settings.offset);
99
- }
100
- function animateScroll(index,instant,callbacks,toTop) {
101
- if(currentIndex===index) {
102
- callbacks = false;
103
- }
104
- if(disabled===true) {
105
- return true;
106
- }
107
- if(names[index]) {
108
- scrollable = false;
109
- if(firstLoad===true) {
110
- firstLoad = false;
111
- settings.afterRender();
112
- }
113
- if(callbacks) {
114
- if( typeof settings.before == 'function' && settings.before(index,elements) === false ){
115
- return true;
116
- }
117
- }
118
- interstitialIndex = 1;
119
- destination = (!index) ? 0 : heights[index];
120
- if(firstLoad===false && currentIndex>index && toTop===false) {
121
- //We're going backwards
122
- if(overflow[index]) {
123
- portHeight = getportHeight();
124
-
125
- interstitialIndex = parseInt(elements[index].outerHeight()/portHeight);
126
-
127
- destination = parseInt(heights[index])+(elements[index].outerHeight()-portHeight);
128
- }
129
- }
130
-
131
-
132
- if(settings.updateHash && settings.sectionName && !(firstLoad===true && index===0)) {
133
- if(history.pushState) {
134
- try {
135
- history.replaceState(null, null, names[index]);
136
- } catch (e) {
137
- if(window.console) {
138
- console.warn("Scrollify warning: Page must be hosted to manipulate the hash value.");
139
- }
140
- }
141
-
142
- } else {
143
- window.location.hash = names[index];
144
- }
145
- }
146
-
147
- currentIndex = index;
148
- if(instant) {
149
- $(settings.target).stop().scrollTop(destination);
150
- if(callbacks) {
151
- settings.after(index,elements);
152
- }
153
- } else {
154
- locked = true;
155
- if( $().velocity ) {
156
- $(settings.target).stop().velocity('scroll', {
157
- duration: settings.scrollSpeed,
158
- easing: settings.easing,
159
- offset: destination,
160
- mobileHA: false
161
- });
162
- } else {
163
- $(settings.target).stop().animate({
164
- scrollTop: destination
165
- }, settings.scrollSpeed,settings.easing);
166
- }
167
-
168
- if(window.location.hash.length && settings.sectionName && window.console) {
169
- try {
170
- if($(window.location.hash).length) {
171
- console.warn("Scrollify warning: ID matches hash value - this will cause the page to anchor.");
172
- }
173
- } catch (e) {}
174
- }
175
- $(settings.target).promise().done(function(){
176
- locked = false;
177
- firstLoad = false;
178
- if(callbacks) {
179
- settings.after(index,elements);
180
- }
181
- });
182
- }
183
-
184
- }
185
- }
186
-
187
- function isAccelerating(samples) {
188
- function average(num) {
189
- var sum = 0;
190
-
191
- var lastElements = samples.slice(Math.max(samples.length - num, 1));
192
-
193
- for(var i = 0; i < lastElements.length; i++){
194
- sum += lastElements[i];
195
- }
196
-
197
- return Math.ceil(sum/num);
198
- }
199
-
200
- var avEnd = average(10);
201
- var avMiddle = average(70);
202
-
203
- if(avEnd >= avMiddle) {
204
- return true;
205
- } else {
206
- return false;
207
- }
208
- }
209
- var scrollify = function(options) {
210
- initialised = true;
211
- $.easing['easeOutExpo'] = function(x, t, b, c, d) {
212
- return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
213
- };
214
-
215
- manualScroll = {
216
- handleMousedown:function() {
217
- if(disabled===true) {
218
- return true;
219
- }
220
- scrollable = false;
221
- scrolled = false;
222
- },
223
- handleMouseup:function() {
224
- if(disabled===true) {
225
- return true;
226
- }
227
- scrollable = true;
228
- if(scrolled) {
229
- //instant,callbacks
230
- manualScroll.calculateNearest(false,true);
231
- }
232
- },
233
- handleScroll:function() {
234
- if(disabled===true) {
235
- return true;
236
- }
237
- if(timeoutId){
238
- clearTimeout(timeoutId);
239
- }
240
-
241
- timeoutId = setTimeout(function(){
242
- scrolled = true;
243
- if(scrollable===false) {
244
- return false;
245
- }
246
- scrollable = false;
247
- //instant,callbacks
248
- manualScroll.calculateNearest(false,true);
249
- }, 200);
250
- },
251
- calculateNearest:function(instant,callbacks) {
252
- top = $window.scrollTop();
253
- var i =1,
254
- max = heights.length,
255
- closest = 0,
256
- prev = Math.abs(heights[0] - top),
257
- diff;
258
- for(;i<max;i++) {
259
- diff = Math.abs(heights[i] - top);
260
-
261
- if(diff < prev) {
262
- prev = diff;
263
- closest = i;
264
- }
265
- }
266
- if((atBottom() && closest>index) || atTop()) {
267
- index = closest;
268
- //index, instant, callbacks, toTop
269
- animateScroll(closest,instant,callbacks,false);
270
- }
271
- },
272
- wheelHandler:function( e ) {
273
-
274
- var sectionSelector = settings.templates ? ".premium-vscroll-temp" : ".elementor-top-section",
275
- $section = $( e.target ).closest( sectionSelector ),
276
- sectionID = $section.attr("id");
277
-
278
- currentScrollID = sectionID;
279
-
280
- if(disabled===true) {
281
- return true;
282
- } else if(settings.standardScrollElements) {
283
- if($(e.target).is(settings.standardScrollElements) || $(e.target).closest(settings.standardScrollElements).length) {
284
- return true;
285
- }
286
- }
287
- if(!overflow[index]) {
288
- e.preventDefault();
289
- }
290
- var currentScrollTime = new Date().getTime();
291
-
292
-
293
- e = e || window.event;
294
- var value;
295
- if (e.originalEvent) {
296
- value = e.originalEvent.wheelDelta || -e.originalEvent.deltaY || -e.originalEvent.detail;
297
- } else {
298
- value = e.wheelDelta || -e.deltaY || -e.detail;
299
- }
300
- var delta = Math.max(-1, Math.min(1, value));
301
-
302
- //delta = delta || -e.originalEvent.detail / 3 || e.originalEvent.wheelDelta / 120;
303
-
304
- if(scrollSamples.length > 149){
305
- scrollSamples.shift();
306
- }
307
- //scrollSamples.push(Math.abs(delta*10));
308
- scrollSamples.push(Math.abs(value));
309
-
310
- if((currentScrollTime-scrollTime) > 200){
311
- scrollSamples = [];
312
- }
313
- scrollTime = currentScrollTime;
314
-
315
-
316
- if(locked) {
317
- return false;
318
- }
319
- if(delta<0) {
320
- if(index<heights.length-1) {
321
- if(atBottom()) {
322
- if(isAccelerating(scrollSamples)) {
323
- e.preventDefault();
324
- index++;
325
- locked = true;
326
- //index, instant, callbacks, toTop
327
- animateScroll(index,false,true, false);
328
- } else {
329
- return false;
330
- }
331
- }
332
- }
333
- } else if(delta>0) {
334
- if(index>0) {
335
- if(atTop()) {
336
- if(isAccelerating(scrollSamples)) {
337
- e.preventDefault();
338
- index--;
339
- locked = true;
340
- //index, instant, callbacks, toTop
341
- animateScroll(index,false,true, false);
342
- } else {
343
- return false
344
- }
345
- }
346
- }
347
- }
348
-
349
- },
350
- keyHandler:function(e) {
351
- if(disabled===true || document.activeElement.readOnly===false) {
352
- return true;
353
- } else if(settings.standardScrollElements) {
354
- if($(e.target).is(settings.standardScrollElements) || $(e.target).closest(settings.standardScrollElements).length) {
355
- return true;
356
- }
357
- }
358
- if(locked===true) {
359
- return false;
360
- }
361
- if(e.keyCode==38 || e.keyCode==33) {
362
- if(index>0) {
363
- if(atTop()) {
364
- e.preventDefault();
365
- index--;
366
- //index, instant, callbacks, toTop
367
- animateScroll(index,false,true,false);
368
- }
369
- }
370
- } else if(e.keyCode==40 || e.keyCode==34) {
371
- if(index<heights.length-1) {
372
- if(atBottom()) {
373
- e.preventDefault();
374
- index++;
375
- //index, instant, callbacks, toTop
376
- animateScroll(index,false,true,false);
377
- }
378
- }
379
- }
380
- },
381
- init:function() {
382
- if(settings.scrollbars) {
383
- $window.on('mousedown', manualScroll.handleMousedown);
384
- $window.on('mouseup', manualScroll.handleMouseup);
385
- $window.on('scroll', manualScroll.handleScroll);
386
- } else {
387
- $("body").css({"overflow":"hidden"});
388
- }
389
- window.addEventListener(wheelEvent, manualScroll.wheelHandler, { passive: false });
390
- //$(document).bind(wheelEvent,manualScroll.wheelHandler);
391
- $window.on('keydown', manualScroll.keyHandler);
392
- }
393
- };
394
-
395
- swipeScroll = {
396
- touches : {
397
- "touchstart": {"y":-1,"x":-1},
398
- "touchmove" : {"y":-1,"x":-1},
399
- "touchend" : false,
400
- "direction" : "undetermined"
401
- },
402
- options:{
403
- "distance" : 30,
404
- "timeGap" : 800,
405
- "timeStamp" : new Date().getTime()
406
- },
407
- touchHandler: function(event) {
408
- if(disabled===true) {
409
- return true;
410
- } else if(settings.standardScrollElements) {
411
- if($(event.target).is(settings.standardScrollElements) || $(event.target).closest(settings.standardScrollElements).length) {
412
- return true;
413
- }
414
- }
415
- var touch;
416
- if (typeof event !== 'undefined'){
417
- if (typeof event.touches !== 'undefined') {
418
- touch = event.touches[0];
419
- switch (event.type) {
420
- case 'touchstart':
421
- swipeScroll.touches.touchstart.y = touch.pageY;
422
- swipeScroll.touches.touchmove.y = -1;
423
-
424
- swipeScroll.touches.touchstart.x = touch.pageX;
425
- swipeScroll.touches.touchmove.x = -1;
426
-
427
- swipeScroll.options.timeStamp = new Date().getTime();
428
- swipeScroll.touches.touchend = false;
429
- case 'touchmove':
430
- swipeScroll.touches.touchmove.y = touch.pageY;
431
- swipeScroll.touches.touchmove.x = touch.pageX;
432
- if(swipeScroll.touches.touchstart.y!==swipeScroll.touches.touchmove.y && (Math.abs(swipeScroll.touches.touchstart.y-swipeScroll.touches.touchmove.y)>Math.abs(swipeScroll.touches.touchstart.x-swipeScroll.touches.touchmove.x))) {
433
- //if(!overflow[index]) {
434
- event.preventDefault();
435
- //}
436
- swipeScroll.touches.direction = "y";
437
- if((swipeScroll.options.timeStamp+swipeScroll.options.timeGap)<(new Date().getTime()) && swipeScroll.touches.touchend == false) {
438
-
439
- swipeScroll.touches.touchend = true;
440
- if (swipeScroll.touches.touchstart.y > -1) {
441
-
442
- if(Math.abs(swipeScroll.touches.touchmove.y-swipeScroll.touches.touchstart.y)>swipeScroll.options.distance) {
443
- if(swipeScroll.touches.touchstart.y < swipeScroll.touches.touchmove.y) {
444
-
445
- swipeScroll.up();
446
-
447
- } else {
448
- swipeScroll.down();
449
-
450
- }
451
- }
452
- }
453
- }
454
- }
455
- break;
456
- case 'touchend':
457
- if(swipeScroll.touches[event.type]===false) {
458
- swipeScroll.touches[event.type] = true;
459
- if (swipeScroll.touches.touchstart.y > -1 && swipeScroll.touches.touchmove.y > -1 && swipeScroll.touches.direction==="y") {
460
-
461
- if(Math.abs(swipeScroll.touches.touchmove.y-swipeScroll.touches.touchstart.y)>swipeScroll.options.distance) {
462
- if(swipeScroll.touches.touchstart.y < swipeScroll.touches.touchmove.y) {
463
- swipeScroll.up();
464
-
465
- } else {
466
- swipeScroll.down();
467
-
468
- }
469
- }
470
- swipeScroll.touches.touchstart.y = -1;
471
- swipeScroll.touches.touchstart.x = -1;
472
- swipeScroll.touches.direction = "undetermined";
473
- }
474
- }
475
- default:
476
- break;
477
- }
478
- }
479
- }
480
- },
481
- down: function() {
482
-
483
- if(index<heights.length) {
484
-
485
- if(atBottom() && index<heights.length-1) {
486
-
487
- index++;
488
- //index, instant, callbacks, toTop
489
- animateScroll(index,false,true,false);
490
- } else {
491
- portHeight = getportHeight();
492
- if(Math.floor(elements[index].height()/portHeight)>interstitialIndex) {
493
-
494
- interstitialScroll(parseInt(heights[index])+(portHeight*interstitialIndex));
495
- interstitialIndex += 1;
496
-
497
- } else {
498
- interstitialScroll(parseInt(heights[index])+(elements[index].outerHeight()-portHeight));
499
- }
500
-
501
- }
502
- }
503
- },
504
- up: function() {
505
- if(index>=0) {
506
- if(atTop() && index>0) {
507
-
508
- index--;
509
- //index, instant, callbacks, toTop
510
- animateScroll(index,false,true,false);
511
- } else {
512
-
513
- if(interstitialIndex>2) {
514
- portHeight = getportHeight();
515
-
516
- interstitialIndex -= 1;
517
- interstitialScroll(parseInt(heights[index])+(portHeight*interstitialIndex));
518
-
519
- } else {
520
-
521
- interstitialIndex = 1;
522
- interstitialScroll(parseInt(heights[index]));
523
- }
524
- }
525
-
526
- }
527
- },
528
- init: function() {
529
- if (document.addEventListener && settings.touchScroll) {
530
- var eventListenerOptions = {
531
- passive: false
532
- };
533
- document.addEventListener('touchstart', swipeScroll.touchHandler, eventListenerOptions);
534
- document.addEventListener('touchmove', swipeScroll.touchHandler, eventListenerOptions);
535
- document.addEventListener('touchend', swipeScroll.touchHandler, eventListenerOptions);
536
- }
537
- }
538
- };
539
-
540
-
541
- util = {
542
- refresh:function(withCallback,scroll) {
543
- clearTimeout(timeoutId2);
544
- timeoutId2 = setTimeout(function() {
545
- //retain position
546
- sizePanels(true);
547
- //scroll, firstLoad
548
- calculatePositions(scroll,false);
549
- if(withCallback) {
550
- settings.afterResize();
551
- }
552
- },400);
553
- },
554
- handleUpdate:function() {
555
- //callbacks, scroll
556
- //changed from false,true to false,false
557
- util.refresh(false,false);
558
- },
559
- handleResize:function() {
560
- //callbacks, scroll
561
- util.refresh(true,false);
562
- },
563
- handleOrientation:function() {
564
- //callbacks, scroll
565
- util.refresh(true,true);
566
- }
567
- };
568
- settings = $.extend(settings, options);
569
-
570
- //retain position
571
- sizePanels(false);
572
-
573
- calculatePositions(false,true);
574
-
575
- if(true===hasLocation) {
576
- //index, instant, callbacks, toTop
577
- animateScroll(index,false,true,true);
578
- } else {
579
- setTimeout(function() {
580
- //instant,callbacks
581
- manualScroll.calculateNearest(true,false);
582
- },200);
583
- }
584
- if(heights.length) {
585
- manualScroll.init();
586
- swipeScroll.init();
587
-
588
- $window.on("resize",util.handleResize);
589
- if (document.addEventListener) {
590
- window.addEventListener("orientationchange", util.handleOrientation, false);
591
- }
592
- }
593
- function interstitialScroll(pos) {
594
- if( $().velocity ) {
595
- $(settings.target).stop().velocity('scroll', {
596
- duration: settings.scrollSpeed,
597
- easing: settings.easing,
598
- offset: pos,
599
- mobileHA: false
600
- });
601
- } else {
602
- $(settings.target).stop().animate({
603
- scrollTop: pos
604
- }, settings.scrollSpeed,settings.easing);
605
- }
606
- }
607
-
608
- function sizePanels(keepPosition) {
609
- if(keepPosition) {
610
- top = $window.scrollTop();
611
- }
612
-
613
- var selector = settings.section;
614
- overflow = [];
615
- if(settings.interstitialSection.length) {
616
- selector += "," + settings.interstitialSection;
617
- }
618
- if(settings.scrollbars===false) {
619
- settings.overflowScroll = false;
620
- }
621
- portHeight = getportHeight();
622
- $(selector).each(function(i) {
623
- var $this = $(this);
624
-
625
- if(settings.setHeights) {
626
- if($this.is(settings.interstitialSection)) {
627
- overflow[i] = false;
628
- } else {
629
- if(($this.css("height","auto").outerHeight()<portHeight) || $this.css("overflow")==="hidden") {
630
- $this.css({"height":portHeight});
631
-
632
- overflow[i] = false;
633
- } else {
634
-
635
- $this.css({"height":$this.outerHeight()});
636
-
637
- if(settings.overflowScroll) {
638
- overflow[i] = true;
639
- } else {
640
- overflow[i] = false;
641
- }
642
- }
643
-
644
- }
645
-
646
- } else {
647
-
648
- if(($this.outerHeight()<portHeight) || (settings.overflowScroll===false)) {
649
- overflow[i] = false;
650
- } else {
651
- overflow[i] = true;
652
- }
653
- }
654
- });
655
- if(keepPosition) {
656
- $window.scrollTop(top);
657
- }
658
- }
659
- function calculatePositions(scroll,firstLoad) {
660
- var selector = settings.section;
661
- if(settings.interstitialSection.length) {
662
- selector += "," + settings.interstitialSection;
663
- }
664
- heights = [];
665
- names = [];
666
- elements = [];
667
- $(selector).each(function(i){
668
- var $this = $(this);
669
- if(i>0) {
670
- heights[i] = parseInt($this.offset().top) + settings.offset;
671
- } else {
672
- heights[i] = parseInt($this.offset().top);
673
- }
674
- if(settings.sectionName && $this.data(settings.sectionName)) {
675
- names[i] = "#" + $this.data(settings.sectionName).toString().replace(/ /g,"-");
676
- } else {
677
- if($this.is(settings.interstitialSection)===false) {
678
- names[i] = "#" + (i + 1);
679
- } else {
680
- names[i] = "#";
681
- if(i===$(selector).length-1 && i>1) {
682
- heights[i] = heights[i-1] + (parseInt($($(selector)[i-1]).outerHeight()) - parseInt($(window).height())) + parseInt($this.outerHeight());
683
- }
684
- }
685
- }
686
- elements[i] = $this;
687
- try {
688
- if($(names[i]).length && window.console) {
689
- console.warn("Scrollify warning: Section names can't match IDs - this will cause the browser to anchor.");
690
- }
691
- } catch (e) {}
692
-
693
- if(window.location.hash===names[i]) {
694
- index = i;
695
- hasLocation = true;
696
- }
697
-
698
- });
699
-
700
- if(true===scroll) {
701
- //index, instant, callbacks, toTop
702
- animateScroll(index,false,false,false);
703
- }
704
- }
705
-
706
- function atTop() {
707
- if(!overflow[index]) {
708
- return true;
709
- }
710
- top = $window.scrollTop();
711
- if(top>parseInt(heights[index])) {
712
- return false;
713
- } else {
714
- return true;
715
- }
716
- }
717
- function atBottom() {
718
- if(!overflow[index]) {
719
- return true;
720
- }
721
- top = $window.scrollTop();
722
- portHeight = getportHeight();
723
-
724
- if(top<parseInt(heights[index])+(elements[index].outerHeight()-portHeight)-28) {
725
-
726
- return false;
727
-
728
- } else {
729
- return true;
730
- }
731
- }
732
- }
733
-
734
- function move(panel,instant) {
735
- var z = names.length;
736
- for(;z>=0;z--) {
737
- if(typeof panel === 'string') {
738
- if (names[z]===panel) {
739
- index = z;
740
- //index, instant, callbacks, toTop
741
- animateScroll(z,instant,true,true);
742
- }
743
- } else {
744
- if(z===panel) {
745
- index = z;
746
- //index, instant, callbacks, toTop
747
- animateScroll(z,instant,true,true);
748
- }
749
- }
750
- }
751
- }
752
- scrollify.move = function(panel) {
753
- if(panel===undefined) {
754
- return false;
755
- }
756
- if(panel.originalEvent) {
757
- panel = $(this).attr("href");
758
- }
759
- move(panel,false);
760
- };
761
- scrollify.instantMove = function(panel) {
762
- if(panel===undefined) {
763
- return false;
764
- }
765
- move(panel,true);
766
- };
767
- scrollify.next = function() {
768
- if(index<names.length) {
769
- index += 1;
770
- //index, instant, callbacks, toTop
771
- animateScroll(index,false,true,true);
772
- }
773
- };
774
- scrollify.previous = function() {
775
- if(index>0) {
776
- index -= 1;
777
- //index, instant, callbacks, toTop
778
- animateScroll(index,false,true,true);
779
- }
780
- };
781
- scrollify.instantNext = function() {
782
- if(index<names.length) {
783
- index += 1;
784
- //index, instant, callbacks, toTop
785
- animateScroll(index,true,true,true);
786
- }
787
- };
788
- scrollify.instantPrevious = function() {
789
- if(index>0) {
790
- index -= 1;
791
- //index, instant, callbacks, toTop
792
- animateScroll(index,true,true,true);
793
- }
794
- };
795
- scrollify.destroy = function() {
796
- if(!initialised) {
797
- return false;
798
- }
799
- if(settings.setHeights) {
800
- $(settings.section).each(function() {
801
- $(this).css("height","auto");
802
- });
803
- }
804
- $window.off("resize",util.handleResize);
805
- if(settings.scrollbars) {
806
- $window.off('mousedown', manualScroll.handleMousedown);
807
- $window.off('mouseup', manualScroll.handleMouseup);
808
- $window.off('scroll', manualScroll.handleScroll);
809
- }
810
- // $window.off(wheelEvent,manualScroll.wheelHandler);
811
- window.removeEventListener(wheelEvent,manualScroll.wheelHandler);
812
- $window.off('keydown', manualScroll.keyHandler);
813
-
814
- if (document.addEventListener && settings.touchScroll) {
815
- document.removeEventListener('touchstart', swipeScroll.touchHandler, false);
816
- document.removeEventListener('touchmove', swipeScroll.touchHandler, false);
817
- document.removeEventListener('touchend', swipeScroll.touchHandler, false);
818
- }
819
- heights = [];
820
- names = [];
821
- elements = [];
822
- overflow = [];
823
- };
824
- scrollify.update = function() {
825
- if(!initialised) {
826
- return false;
827
- }
828
- util.handleUpdate();
829
- };
830
- scrollify.current = function() {
831
- return elements[index];
832
- };
833
- scrollify.currentIndex = function() {
834
- return index;
835
- };
836
- scrollify.disable = function() {
837
- disabled = true;
838
- };
839
- scrollify.enable = function() {
840
- disabled = false;
841
- if (initialised) {
842
- //instant,callbacks
843
- manualScroll.calculateNearest(false,false);
844
- }
845
- };
846
- scrollify.currentScroll = function() {
847
- return currentScrollID;
848
- };
849
- scrollify.isScrollable = function() {
850
- return scrollable;
851
- };
852
- scrollify.isDisabled = function() {
853
- return disabled;
854
- };
855
- scrollify.setOptions = function(updatedOptions) {
856
- if(!initialised) {
857
- return false;
858
- }
859
- if(typeof updatedOptions === "object") {
860
- settings = $.extend(settings, updatedOptions);
861
- util.handleUpdate();
862
- } else if(window.console) {
863
- console.warn("Scrollify warning: setOptions expects an object.");
864
- }
865
- };
866
- $.scrollify = scrollify;
867
- return scrollify;
868
- }));
assets/frontend/js/premium-addons.js CHANGED
@@ -126,7 +126,8 @@
126
originLeft: ltrMode,
127
masonry: {
128
columnWidth: columnWidth
129
- }
130
});
131
});
132
@@ -482,7 +483,7 @@
482
nextArrow: carouselSettings["nextArrow"],
483
prevArrow: carouselSettings["prevArrow"],
484
dots: carouselSettings["dots"],
485
- customPaging: function ( slider, i ) {
486
return (
487
'<i class="' +
488
carouselSettings["customPaging"] +
@@ -629,16 +630,9 @@
629
/****** Premium Blog Handler ******/
630
var PremiumBlogHandler = function ($scope, $) {
631
var blogElement = $scope.find(".premium-blog-wrap"),
632
- colsNumber = blogElement.data("col"),
633
- carousel = blogElement.data("carousel"),
634
- autoPlay = blogElement.data("play"),
635
- speed = blogElement.data("speed"),
636
- fade = blogElement.data("fade"),
637
- prevArrow =
638
- '<a type="button" data-role="none" class="carousel-arrow carousel-prev" aria-label="Next" role="button" style=""><i class="fa fa-angle-left" aria-hidden="true"></i></a>',
639
- nextArrow =
640
- '<a type="button" data-role="none" class="carousel-arrow carousel-next" aria-label="Next" role="button" style=""><i class="fa fa-angle-right" aria-hidden="true"></i></a>';
641
-
642
$scope.find(".premium-blog-cats-container li a").click(function (e) {
643
e.preventDefault();
644
@@ -672,11 +666,27 @@
672
}
673
674
if ( carousel && ! masonryBlog ) {
675
- $(blogElement).slick({
676
- infinite: true,
677
- slidesToShow: colsNumber,
678
slidesToScroll: colsNumber,
679
- responsive: [
680
{
681
breakpoint: 769,
682
settings: {
@@ -692,12 +702,18 @@
692
}
693
}
694
],
695
- autoplay: autoPlay,
696
- autoplaySpeed: speed,
697
- nextArrow: nextArrow,
698
- prevArrow: prevArrow,
699
- fade: fade,
700
- draggable: true
701
});
702
}
703
};
126
originLeft: ltrMode,
127
masonry: {
128
columnWidth: columnWidth
129
+ },
130
+ sortBy: gridSettings["sort_by"]
131
});
132
});
133
483
nextArrow: carouselSettings["nextArrow"],
484
prevArrow: carouselSettings["prevArrow"],
485
dots: carouselSettings["dots"],
486
+ customPaging: function () {
487
return (
488
'<i class="' +
489
carouselSettings["customPaging"] +
630
/****** Premium Blog Handler ******/
631
var PremiumBlogHandler = function ($scope, $) {
632
var blogElement = $scope.find(".premium-blog-wrap"),
633
+ colsNumber = blogElement.data("col"),
634
+ carousel = blogElement.data("carousel");
635
+
636
$scope.find(".premium-blog-cats-container li a").click(function (e) {
637
e.preventDefault();
638
666
}
667
668
if ( carousel && ! masonryBlog ) {
669
+
670
+ var autoPlay = blogElement.data("play"),
671
+ speed = blogElement.data("speed"),
672
+ fade = blogElement.data("fade"),
673
+ arrows = blogElement.data("arrows"),
674
+ dots = blogElement.data("dots"),
675
+ prevArrow = null,
676
+ nextArrow = null;
677
+
678
+ if ( arrows ) {
679
+ 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>',
680
+ 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>';
681
+ } else {
682
+ prevArrow = prevArrow = '';
683
+ }
684
+
685
+ $( blogElement ).slick({
686
+ infinite: true,
687
+ slidesToShow: colsNumber,
688
slidesToScroll: colsNumber,
689
+ responsive: [
690
{
691
breakpoint: 769,
692
settings: {
702
}
703
}
704
],
705
+ autoplay: autoPlay,
706
+ autoplaySpeed: speed,
707
+ nextArrow: nextArrow,
708
+ prevArrow: prevArrow,
709
+ fade: fade,
710
+ draggable: true,
711
+ dots: dots,
712
+ customPaging: function () {
713
+ return (
714
+ '<i class="fas fa-circle"></i>'
715
+ );
716
+ }
717
});
718
}
719
};
assets/frontend/js/premium-vscroll.js CHANGED
@@ -28,15 +28,9 @@
28
},
29
settings = $.extend({}, defaultSettings, settings),
30
sections = {},
31
- timeStamp = 0,
32
currentSection = null,
33
- platform = navigator.platform,
34
isScrolling = false,
35
- sectionChanged = false,
36
- inScope = true;
37
-
38
-
39
- var interstitialIndex = 1;
40
41
var touchStartY = 0,
42
touchEndY = 0;
@@ -142,7 +136,7 @@
142
143
elementorFrontend.waypoint(
144
$section,
145
- function( direction ) {
146
147
var $this = $( this ),
148
sectionId = $this.attr( "id" );
@@ -254,8 +248,7 @@
254
255
self.onTouchMove = function( e ) {
256
257
-
258
- if ( inScope ) {
259
self.preventDefault( e );
260
}
261
@@ -271,14 +264,12 @@
271
var $target = $( e.target ),
272
sectionSelector = checkTemps ? ".premium-vscroll-temp" : ".elementor-top-section",
273
$section = $target.closest( sectionSelector ),
274
- $vTarget = self.visible( $instance, true, false ),
275
sectionId = $section.attr( "id" ),
276
newSectionId = false,
277
prevSectionId = false,
278
nextSectionId = false,
279
direction = false,
280
- windowScrollTop = $window.scrollTop(),
281
- dotIndex = $( ".premium-vscroll-dot-item.active" ).index();
282
283
$( ".premium-vscroll-tooltip" ).hide();
284
@@ -320,7 +311,7 @@
320
321
if ( "down" === direction ) {
322
323
- if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 || ! self.atBottom( sectionId ) ) {
324
newSectionId = sectionId;
325
} else {
326
newSectionId = nextSectionId;
@@ -330,14 +321,16 @@
330
331
if ( newSectionId ) {
332
333
- inScope = true;
334
-
335
$( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
336
-
337
- self.scrolling( newSectionId );
338
339
} else {
340
- inScope = false;
341
342
var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
343
@@ -557,7 +550,6 @@
557
558
self.onKeyUp = function(event, direction) {
559
var direction = direction || "up",
560
- sectionId,
561
nextItem = $(
562
".premium-vscroll-dot-item[data-menuanchor=" +
563
currentSection +
@@ -616,32 +608,33 @@
616
617
self.onWheel = function(event) {
618
619
- if (isScrolling) {
620
event.preventDefault();
621
return false;
622
}
623
-
624
- var $target = $(event.target),
625
- sectionSelector = checkTemps
626
- ? ".premium-vscroll-temp"
627
- : ".elementor-top-section",
628
- $section = $target.closest(sectionSelector),
629
- $vTarget = self.visible($instance, true, false),
630
- sectionId = $section.attr("id"),
631
- newSectionId = false,
632
- prevSectionId = false,
633
- nextSectionId = false,
634
- delta = getDirection(event),
635
- direction = 0 > delta ? "down" : "up",
636
windowScrollTop = $window.scrollTop(),
637
- dotIndex = $(".premium-vscroll-dot-item.active").index();
638
- if ("mobile" === deviceType || "tablet" === deviceType) {
639
$(".premium-vscroll-tooltip").hide();
640
- if (dotIndex === $itemsList.length - 1 && !$vTarget) {
641
$(
642
".premium-vscroll-dots, .premium-vscroll-nav-menu"
643
).addClass("premium-vscroll-dots-hide");
644
- } else if (dotIndex === 0 && !$vTarget) {
645
if (
646
$instance.offset().top - $(document).scrollTop() >
647
200
@@ -657,21 +650,21 @@
657
}
658
}
659
660
- if (beforeCheck()) {
661
sectionId = getFirstSection(sections);
662
}
663
664
- if (afterCheck()) {
665
sectionId = getLastSection(sections);
666
}
667
- if (sectionId && sections.hasOwnProperty(sectionId)) {
668
prevSectionId = self.checkPrevSection(sections, sectionId);
669
nextSectionId = self.checkNextSection(sections, sectionId);
670
if ("up" === direction) {
671
- if (
672
- !nextSectionId &&
673
- sections[sectionId].offset < windowScrollTop
674
- ) {
675
newSectionId = sectionId;
676
} else {
677
newSectionId = prevSectionId;
@@ -679,32 +672,23 @@
679
}
680
681
if ("down" === direction) {
682
- if (
683
- !prevSectionId &&
684
- sections[sectionId].offset > windowScrollTop + 5
685
- ) {
686
newSectionId = sectionId;
687
} else {
688
newSectionId = nextSectionId;
689
}
690
}
691
692
- if (newSectionId) {
693
- $(
694
- ".premium-vscroll-dots, .premium-vscroll-nav-menu"
695
- ).removeClass("premium-vscroll-dots-hide");
696
event.preventDefault();
697
-
698
- if (
699
- event.timeStamp - timeStamp > 10 &&
700
- "MacIntel" == platform
701
- ) {
702
- timeStamp = event.timeStamp;
703
-
704
- return false;
705
- }
706
-
707
- self.onAnchorChange(newSectionId);
708
} else {
709
var $lastselector = checkTemps
710
? $instance
28
},
29
settings = $.extend({}, defaultSettings, settings),
30
sections = {},
31
currentSection = null,
32
isScrolling = false,
33
+ sectionChanged = false;
34
35
var touchStartY = 0,
36
touchEndY = 0;
136
137
elementorFrontend.waypoint(
138
$section,
139
+ function() {
140
141
var $this = $( this ),
142
sectionId = $this.attr( "id" );
248
249
self.onTouchMove = function( e ) {
250
251
+ if ( ! settings.showOverflow ) {
252
self.preventDefault( e );
253
}
254
264
var $target = $( e.target ),
265
sectionSelector = checkTemps ? ".premium-vscroll-temp" : ".elementor-top-section",
266
$section = $target.closest( sectionSelector ),
267
sectionId = $section.attr( "id" ),
268
newSectionId = false,
269
prevSectionId = false,
270
nextSectionId = false,
271
direction = false,
272
+ windowScrollTop = $window.scrollTop();
273
274
$( ".premium-vscroll-tooltip" ).hide();
275
311
312
if ( "down" === direction ) {
313
314
+ if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 ) {
315
newSectionId = sectionId;
316
} else {
317
newSectionId = nextSectionId;
321
322
if ( newSectionId ) {
323
324
$( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
325
+
326
+ if ( settings.showOverflow ) {
327
+ if ( ! self.atBottom( sectionId ) )
328
+ return;
329
+ }
330
+
331
+ self.onAnchorChange( newSectionId );
332
333
} else {
334
335
var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
336
550
551
self.onKeyUp = function(event, direction) {
552
var direction = direction || "up",
553
nextItem = $(
554
".premium-vscroll-dot-item[data-menuanchor=" +
555
currentSection +
608
609
self.onWheel = function(event) {
610
611
+ if ( isScrolling ) {
612
event.preventDefault();
613
return false;
614
}
615
+
616
+ var $target = $( event.target ),
617
+ sectionSelector = checkTemps ? ".premium-vscroll-temp" : ".elementor-top-section",
618
+ $section = $target.closest( sectionSelector ),
619
+ $vTarget = self.visible($instance, true, false),
620
+ sectionId = $section.attr("id"),
621
+ newSectionId = false,
622
+ prevSectionId = false,
623
+ nextSectionId = false,
624
+ delta = getDirection( event ),
625
+ direction = 0 > delta ? "down" : "up",
626
windowScrollTop = $window.scrollTop(),
627
+ dotIndex = $(".premium-vscroll-dot-item.active").index();
628
+
629
+ if ( isTouch ) {
630
+
631
$(".premium-vscroll-tooltip").hide();
632
+
633
+ if ( dotIndex === $itemsList.length - 1 && ! $vTarget ) {
634
$(
635
".premium-vscroll-dots, .premium-vscroll-nav-menu"
636
).addClass("premium-vscroll-dots-hide");
637
+ } else if ( dotIndex === 0 && ! $vTarget ) {
638
if (
639
$instance.offset().top - $(document).scrollTop() >
640
200
650
}
651
}
652
653
+ if ( beforeCheck() ) {
654
sectionId = getFirstSection(sections);
655
}
656
657
+ if ( afterCheck() ) {
658
sectionId = getLastSection(sections);
659
}
660
+
661
+ if ( sectionId && sections.hasOwnProperty( sectionId )) {
662
+
663
prevSectionId = self.checkPrevSection(sections, sectionId);
664
nextSectionId = self.checkNextSection(sections, sectionId);
665
+
666
if ("up" === direction) {
667
+ if ( ! nextSectionId && sections[sectionId].offset < windowScrollTop ) {
668
newSectionId = sectionId;
669
} else {
670
newSectionId = prevSectionId;
672
}
673
674
if ("down" === direction) {
675
+ if ( ! prevSectionId && sections[sectionId].offset > windowScrollTop + 5 ) {
676
newSectionId = sectionId;
677
} else {
678
newSectionId = nextSectionId;
679
}
680
}
681
682
+ if ( newSectionId ) {
683
+
684
+ if ( ! self.atBottom( sectionId ) )
685
+ return;
686
+
687
+ $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass("premium-vscroll-dots-hide");
688
+
689
event.preventDefault();
690
+
691
+ self.onAnchorChange( newSectionId );
692
} else {
693
var $lastselector = checkTemps
694
? $instance
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.6.6
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.6.6');
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.6.5');
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.6.7
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.6.7');
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.6.6');
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.6.6
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -174,6 +174,16 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
174
175
== Changelog ==
176
177
= 3.6.6 =
178
179
- Fixed: `Notice: Undefined variable: col_number in /premium-blog.php on line 1752'
5
Requires at Least: 4.5
6
Tested Up To: 5.2.2
7
Requires PHP: 5.4
8
+ Stable Tag: 3.6.7
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
174
175
== Changelog ==
176
177
+ = 3.6.7 =
178
+
179
+ - Tweak: Font Awesome 5 compatibility for all widgets.
180
+ - Tweak: Added `Navigation Dots` option for carousel in Blog widget.
181
+ - Tweak: Added `Text/Background Hover Color` option for filter tabs in Grid widget.
182
+ - Tweak: Added `Shuffle Images on Page Load` option to Grid widget.
183
+ - Fixed: Description container rendered even when description text is empty.
184
+ - Tweak: Show overflow content then scroll in Vertical Scroll widget.
185
+ - Fixed: Vertical Scroll issue on Mac OS.
186
+
187
= 3.6.6 =
188
189
- Fixed: `Notice: Undefined variable: col_number in /premium-blog.php on line 1752'
widgets/premium-blog.php CHANGED
@@ -693,6 +693,27 @@ class Premium_Blog extends Widget_Base {
693
]
694
);
695
696
$this->add_responsive_control('premium_blog_carousel_arrows_pos',
697
[
698
'label' => __('Arrows Position', 'premium-addons-for-elementor'),
@@ -709,7 +730,8 @@ class Premium_Blog extends Widget_Base {
709
],
710
],
711
'condition' => [
712
- 'premium_blog_carousel' => 'yes'
713
],
714
'selectors' => [
715
'{{WRAPPER}} .premium-blog-wrap a.carousel-arrow.carousel-next' => 'right: {{SIZE}}{{UNIT}};',
@@ -1240,12 +1262,54 @@ class Premium_Blog extends Widget_Base {
1240
1241
$this->end_controls_section();
1242
1243
- $this->start_controls_section('carousel_style',
1244
[
1245
- 'label' => __('Carousel', 'premium-addons-for-elementor'),
1246
'tab' => Controls_Manager::TAB_STYLE,
1247
'condition' => [
1248
- 'premium_blog_carousel' => 'yes'
1249
]
1250
]
1251
);
@@ -1745,9 +1809,6 @@ class Premium_Blog extends Widget_Base {
1745
$posts_number = intval ( 100 / substr( $settings['premium_blog_columns_number'], 0, strpos( $settings['premium_blog_columns_number'], '%') ) );
1746
1747
$carousel = 'yes' == $settings['premium_blog_carousel'] ? true : false;
1748
- $play = 'yes' == $settings['premium_blog_carousel_play'] ? true : false;
1749
- $fade = 'yes' == $settings['premium_blog_carousel_fade'] ? 'true' : 'false';
1750
- $speed = ! empty( $settings['premium_blog_carousel_autoplay_speed'] ) ? $settings['premium_blog_carousel_autoplay_speed'] : 5000;
1751
1752
$this->add_render_attribute('blog', 'class', [
1753
'premium-blog-wrap',
@@ -1756,16 +1817,29 @@ class Premium_Blog extends Widget_Base {
1756
]
1757
);
1758
1759
- $this->add_render_attribute('blog', 'data-carousel', $carousel );
1760
-
1761
- $this->add_render_attribute('blog', 'data-fade', $fade );
1762
-
1763
- $this->add_render_attribute('blog', 'data-play', $play );
1764
-
1765
- $this->add_render_attribute('blog', 'data-speed', $speed );
1766
1767
- $this->add_render_attribute('blog', 'data-col', $posts_number );
1768
1769
1770
?>
1771
<div class="premium-blog">
693
]
694
);
695
696
+ $this->add_control('premium_blog_carousel_dots',
697
+ [
698
+ 'label' => __('Navigation Dots', 'premium-addons-for-elementor'),
699
+ 'type' => Controls_Manager::SWITCHER,
700
+ 'condition' => [
701
+ 'premium_blog_carousel' => 'yes'
702
+ ]
703
+ ]
704
+ );
705
+
706
+ $this->add_control('premium_blog_carousel_arrows',
707
+ [
708
+ 'label' => __('Navigation Arrows', 'premium-addons-for-elementor'),
709
+ 'type' => Controls_Manager::SWITCHER,
710
+ 'default' => 'yes',
711
+ 'condition' => [
712
+ 'premium_blog_carousel' => 'yes'
713
+ ]
714
+ ]
715
+ );
716
+
717
$this->add_responsive_control('premium_blog_carousel_arrows_pos',
718
[
719
'label' => __('Arrows Position', 'premium-addons-for-elementor'),
730
],
731
],
732
'condition' => [
733
+ 'premium_blog_carousel' => 'yes',
734
+ 'premium_blog_carousel_arrows' => 'yes'
735
],
736
'selectors' => [
737
'{{WRAPPER}} .premium-blog-wrap a.carousel-arrow.carousel-next' => 'right: {{SIZE}}{{UNIT}};',
1262
1263
$this->end_controls_section();
1264
1265
+ $this->start_controls_section('carousel_dots_style',
1266
[
1267
+ 'label' => __('Carousel Dots', 'premium-addons-for-elementor'),
1268
'tab' => Controls_Manager::TAB_STYLE,
1269
'condition' => [
1270
+ 'premium_blog_carousel' => 'yes',
1271
+ 'premium_blog_carousel_dots' => 'yes'
1272
+ ]
1273
+ ]
1274
+ );
1275
+
1276
+ $this->add_control('carousel_dot_navigation_color',
1277
+ [
1278
+ 'label' => __( 'Color', 'premium-addons-for-elementor' ),
1279
+ 'type' => Controls_Manager::COLOR,
1280
+ 'scheme' => [
1281
+ 'type' => Scheme_Color::get_type(),
1282
+ 'value' => Scheme_Color::COLOR_2,
1283
+ ],
1284
+ 'selectors' => [
1285
+ '{{WRAPPER}} ul.slick-dots li' => 'color: {{VALUE}}'
1286
+ ]
1287
+ ]
1288
+ );
1289
+
1290
+ $this->add_control('carousel_dot_navigation_active_color',
1291
+ [
1292
+ 'label' => __( 'Active Color', 'premium-addons-for-elementor' ),
1293
+ 'type' => Controls_Manager::COLOR,
1294
+ 'scheme' => [
1295
+ 'type' => Scheme_Color::get_type(),
1296
+ 'value' => Scheme_Color::COLOR_1,
1297
+ ],
1298
+ 'selectors' => [
1299
+ '{{WRAPPER}} ul.slick-dots li.slick-active' => 'color: {{VALUE}}'
1300
+ ]
1301
+ ]
1302
+ );
1303
+
1304
+ $this->end_controls_section();
1305
+
1306
+ $this->start_controls_section('carousel_arrows_style',
1307
+ [
1308
+ 'label' => __('Carousel Arrows', 'premium-addons-for-elementor'),
1309
+ 'tab' => Controls_Manager::TAB_STYLE,
1310
+ 'condition' => [
1311
+ 'premium_blog_carousel' => 'yes',
1312
+ 'premium_blog_carousel_arrows' => 'yes'
1313
]
1314
]
1315
);
1809
$posts_number = intval ( 100 / substr( $settings['premium_blog_columns_number'], 0, strpos( $settings['premium_blog_columns_number'], '%') ) );
1810
1811
$carousel = 'yes' == $settings['premium_blog_carousel'] ? true : false;
1812
1813
$this->add_render_attribute('blog', 'class', [
1814
'premium-blog-wrap',
1817
]
1818
);
1819
1820
+ if ( $carousel ) {
1821
+
1822
+ $play = 'yes' == $settings['premium_blog_carousel_play'] ? true : false;
1823
+ $fade = 'yes' == $settings['premium_blog_carousel_fade'] ? 'true' : 'false';
1824
+ $arrows = 'yes' == $settings['premium_blog_carousel_arrows'] ? 'true' : 'false';
1825
+ $speed = ! empty( $settings['premium_blog_carousel_autoplay_speed'] ) ? $settings['premium_blog_carousel_autoplay_speed'] : 5000;
1826
+ $dots = 'yes' == $settings['premium_blog_carousel_dots'] ? 'true' : 'false';
1827
1828
+ $this->add_render_attribute('blog', 'data-carousel', $carousel );
1829
1830
+ $this->add_render_attribute('blog', 'data-fade', $fade );
1831
+
1832
+ $this->add_render_attribute('blog', 'data-play', $play );
1833
+
1834
+ $this->add_render_attribute('blog', 'data-speed', $speed );
1835
+
1836
+ $this->add_render_attribute('blog', 'data-col', $posts_number );
1837
+
1838
+ $this->add_render_attribute('blog', 'data-arrows', $arrows );
1839
+
1840
+ $this->add_render_attribute('blog', 'data-dots', $dots );
1841
+
1842
+ }
1843
1844
?>
1845
<div class="premium-blog">
widgets/premium-button.php CHANGED
@@ -4,6 +4,7 @@ namespace PremiumAddons\Widgets;
4
5
use PremiumAddons\Helper_Functions;
6
use PremiumAddons\Includes;
7
use Elementor\Widget_Base;
8
use Elementor\Controls_Manager;
9
use Elementor\Scheme_Color;
@@ -216,30 +217,38 @@ class Premium_Button extends Widget_Base {
216
]
217
);
218
219
- $this->add_control('premium_button_icon_selection',
220
- [
221
- 'label' => __('Icon', 'premium-addons-for-elementor'),
222
- 'type' => Controls_Manager::ICON,
223
- 'default' => 'fa fa-bars',
224
- 'condition' => [
225
- 'premium_button_icon_switcher' => 'yes',
226
- 'premium_button_hover_effect!' => 'style4'
227
- ],
228
- 'label_block' => true,
229
- ]
230
- );
231
232
- $this->add_control('premium_button_style4_icon_selection',
233
- [
234
- 'label' => __('Icon', 'premium-addons-for-elementor'),
235
- 'type' => Controls_Manager::ICON,
236
- 'default' => 'fa fa-bars',
237
- 'condition' => [
238
- 'premium_button_hover_effect' => 'style4'
239
- ],
240
- 'label_block' => true,
241
- ]
242
- );
243
244
$this->add_control('premium_button_icon_position',
245
[
@@ -770,7 +779,15 @@ class Premium_Button extends Widget_Base {
770
771
$this->end_controls_section();
772
}
773
-
774
protected function render() {
775
776
$settings = $this->get_settings_for_display();
@@ -789,7 +806,13 @@ class Premium_Button extends Widget_Base {
789
790
$button_event = $settings['premium_button_event_function'];
791
792
- $button_icon = $settings['premium_button_icon_selection'];
793
794
if ( $settings['premium_button_hover_effect'] == 'none' ) {
795
$style_dir = 'premium-button-none';
@@ -801,15 +824,71 @@ class Premium_Button extends Widget_Base {
801
$style_dir = 'premium-button-style3-' . $settings['premium_button_icon_position'];
802
} elseif ( $settings['premium_button_hover_effect'] == 'style4' ) {
803
$style_dir = 'premium-button-style4-' . $settings['premium_button_style4_dir'];
804
- $slide_icon = $settings['premium_button_style4_icon_selection'];
805
} elseif ( $settings['premium_button_hover_effect'] == 'style5' ) {
806
$style_dir = 'premium-button-style5-' . $settings['premium_button_style5_dir'];
807
}
808
- ?>
809
810
<div class="premium-button-container">
811
- <a class="premium-button <?php echo esc_attr($button_size); ?> <?php echo esc_attr($style_dir);?>" <?php if(!empty($button_url)) : ?>href="<?php echo esc_url($button_url); ?>"<?php endif;?><?php if(!empty($settings['premium_button_link']['is_external'])) : ?>target="_blank"<?php endif; ?><?php if(!empty($settings['premium_button_link']['nofollow'])) : ?>rel="nofollow"<?php endif; ?><?php if(!empty($settings['premium_button_event_function']) && $settings['premium_button_event_switcher']) : ?> onclick="<?php echo $button_event; ?>"<?php endif ?>><div class="premium-button-text-icon-wrapper"><?php if($settings['premium_button_icon_switcher'] && $settings['premium_button_icon_position'] == 'before'&& $settings['premium_button_hover_effect'] != 'style4' &&!empty($settings['premium_button_icon_selection'])) : ?><i class="fa <?php echo esc_attr($button_icon); ?>"></i><?php endif; ?><span <?php echo $this->get_render_attribute_string( 'premium_button_text' ); ?>><?php echo $button_text; ?></span><?php if($settings['premium_button_icon_switcher'] && $settings['premium_button_icon_position'] == 'after' && $settings['premium_button_hover_effect'] != 'style4' &&!empty($settings['premium_button_icon_selection'])) : ?><i class="fa <?php echo esc_attr($button_icon); ?>"></i><?php endif; ?></div>
812
- <?php if($settings['premium_button_hover_effect'] == 'style4') : ?><div class="premium-button-style4-icon-wrapper <?php echo esc_attr($settings['premium_button_style4_dir']); ?>"><i class="fa <?php echo esc_attr($slide_icon); ?>"></i></div><?php endif; ?></a>
813
</div>
814
815
<?php
@@ -846,26 +925,45 @@ class Premium_Button extends Widget_Base {
846
} else if ( 'style4' == settings.premium_button_hover_effect ) {
847
styleDir = 'premium-button-style4-' + settings.premium_button_style4_dir;
848
slideIcon = settings.premium_button_style4_icon_selection;
849
} else if ( 'style5' == settings.premium_button_hover_effect ){
850
styleDir = 'premium-button-style5-' + settings.premium_button_style5_dir;
851
}
852
853
#>
854
855
<div class="premium-button-container">
856
- <a class="premium-button {{ buttonSize }} {{ styleDir }}" href="{{ buttonUrl }}" onclick="{{ buttonEvent }}">
857
<div class="premium-button-text-icon-wrapper">
858
- <# if( settings.premium_button_icon_switcher && 'before' == settings.premium_button_icon_position && 'style4' != settings.premium_button_hover_effect && '' != settings.premium_button_icon_selection ) { #>
859
- <i class="fa {{ buttonIcon }}"></i>
860
- <# } #>
861
<span {{{ view.getRenderAttributeString('premium_button_text') }}}>{{{ buttonText }}}</span>
862
- <# if( settings.premium_button_icon_switcher && 'after' == settings.premium_button_icon_position && 'style4' != settings.premium_button_hover_effect && '' != settings.premium_button_icon_selection ) { #>
863
- <i class="fa {{ buttonIcon }}"></i>
864
- <# } #>
865
</div>
866
<# if( 'style4' == settings.premium_button_hover_effect ) { #>
867
<div class="premium-button-style4-icon-wrapper {{ settings.premium_button_style4_dir }}">
868
- <i class="fa {{ slideIcon }}"></i>
869
</div>
870
<# } #>
871
</a>
4
5
use PremiumAddons\Helper_Functions;
6
use PremiumAddons\Includes;
7
+ use Elementor\Icons_Manager;
8
use Elementor\Widget_Base;
9
use Elementor\Controls_Manager;
10
use Elementor\Scheme_Color;
217
]
218
);
219
220
+ $this->add_control('premium_button_icon_selection_updated',
221
+ [
222
+ 'label' => __('Icon', 'premium-addons-for-elementor'),
223
+ 'type' => Controls_Manager::ICONS,
224
+ 'fa4compatibility' => 'premium_button_icon_selection',
225
+ 'default' => [
226
+ 'value' => 'fas fa-bars',
227
+ 'library' => 'fa-solid',
228
+ ],
229
+ 'condition' => [
230
+ 'premium_button_icon_switcher' => 'yes',
231
+ 'premium_button_hover_effect!' => 'style4'
232
+ ],
233
+ 'label_block' => true,
234
+ ]
235
+ );
236
237
+ $this->add_control('premium_button_style4_icon_selection_updated',
238
+ [
239
+ 'label' => __('Icon', 'premium-addons-for-elementor'),
240
+ 'type' => Controls_Manager::ICONS,
241
+ 'fa4compatibility' => 'premium_button_style4_icon_selection',
242
+ 'default' => [
243
+ 'value' => 'fas fa-bars',
244
+ 'library' => 'fa-solid',
245
+ ],
246
+ 'condition' => [
247
+ 'premium_button_hover_effect' => 'style4'
248
+ ],
249
+ 'label_block' => true,
250
+ ]
251
+ );
252
253
$this->add_control('premium_button_icon_position',
254
[
779
780
$this->end_controls_section();
781
}
782
+
783
+ /**
784
+ * Render Grid output on the frontend.
785
+ *
786
+ * Written in PHP and used to generate the final HTML.
787
+ *
788
+ * @since 1.0.0
789
+ * @access protected
790
+ */
791
protected function render() {
792
793
$settings = $this->get_settings_for_display();
806
807
$button_event = $settings['premium_button_event_function'];
808
809
+ if ( ! empty ( $settings['premium_button_icon_selection'] ) ) {
810
+ $this->add_render_attribute( 'icon', 'class', $settings['premium_button_icon_selection'] );
811
+ $this->add_render_attribute( 'icon', 'aria-hidden', 'true' );
812
+ }
813
+
814
+ $migrated = isset( $settings['__fa4_migrated']['premium_button_icon_selection_updated'] );
815
+ $is_new = empty( $settings['premium_button_icon_selection'] ) && Icons_Manager::is_migration_allowed();
816
817
if ( $settings['premium_button_hover_effect'] == 'none' ) {
818
$style_dir = 'premium-button-none';
824
$style_dir = 'premium-button-style3-' . $settings['premium_button_icon_position'];
825
} elseif ( $settings['premium_button_hover_effect'] == 'style4' ) {
826
$style_dir = 'premium-button-style4-' . $settings['premium_button_style4_dir'];
827
+
828
+ if ( ! empty ( $settings['premium_button_style4_icon_selection'] ) ) {
829
+ $this->add_render_attribute( 'slide_icon', 'class', $settings['premium_button_style4_icon_selection'] );
830
+ $this->add_render_attribute( 'slide_icon', 'aria-hidden', 'true' );
831
+ }
832
+
833
+ $slide_migrated = isset( $settings['__fa4_migrated']['premium_button_style4_icon_selection_updated'] );
834
+ $slide_is_new = empty( $settings['premium_button_style4_icon_selection'] ) && Icons_Manager::is_migration_allowed();
835
+
836
} elseif ( $settings['premium_button_hover_effect'] == 'style5' ) {
837
$style_dir = 'premium-button-style5-' . $settings['premium_button_style5_dir'];
838
}
839
+
840
+ $this->add_render_attribute( 'button', 'class', array(
841
+ 'premium-button',
842
+ $button_size,
843
+ $style_dir
844
+ ));
845
+
846
+ if( ! empty( $button_url ) ) {
847
+
848
+ $this->add_render_attribute( 'button', 'href', $button_url );
849
+
850
+ if( ! empty( $settings['premium_button_link']['is_external'] ) )
851
+ $this->add_render_attribute( 'button', 'target', '_blank' );
852
+
853
+ if( ! empty( $settings['premium_button_link']['nofollow'] ) )
854
+ $this->add_render_attribute( 'button', 'rel', 'nofollow' );
855
+ }
856
+
857
+ if( 'yes' === $settings['premium_button_event_switcher'] && ! empty( $button_event ) ) {
858
+ $this->add_render_attribute( 'button', 'onclick', $button_event );
859
+ }
860
+
861
+ ?>
862
863
<div class="premium-button-container">
864
+ <a <?php echo $this->get_render_attribute_string( 'button' ); ?>>
865
+ <div class="premium-button-text-icon-wrapper">
866
+ <?php if( 'yes' === $settings['premium_button_icon_switcher'] && $settings['premium_button_icon_position'] === 'before' && $settings['premium_button_hover_effect'] !== 'style4' ) :
867
+ if ( $is_new || $migrated ) :
868
+ Icons_Manager::render_icon( $settings['premium_button_icon_selection_updated'], [ 'aria-hidden' => 'true' ] );
869
+ else: ?>
870
+ <i <?php echo $this->get_render_attribute_string( 'icon' ); ?>></i>
871
+ <?php endif;
872
+ endif; ?>
873
+ <span <?php echo $this->get_render_attribute_string( 'premium_button_text' ); ?>><?php echo $button_text; ?></span>
874
+ <?php if( 'yes' === $settings['premium_button_icon_switcher'] && $settings['premium_button_icon_position'] === 'after' && $settings['premium_button_hover_effect'] !== 'style4' ) :
875
+ if ( $is_new || $migrated ) :
876
+ Icons_Manager::render_icon( $settings['premium_button_icon_selection_updated'], [ 'aria-hidden' => 'true' ] );
877
+ else: ?>
878
+ <i <?php echo $this->get_render_attribute_string( 'icon' ); ?>></i>
879
+ <?php endif;
880
+ endif; ?>
881
+ </div>
882
+ <?php if( $settings['premium_button_hover_effect'] === 'style4' ) : ?>
883
+ <div class="premium-button-style4-icon-wrapper <?php echo esc_attr( $settings['premium_button_style4_dir'] ); ?>">
884
+ <?php if ( $slide_is_new || $slide_migrated ) :
885
+ Icons_Manager::render_icon( $settings['premium_button_style4_icon_selection_updated'], [ 'aria-hidden' => 'true' ] );
886
+ else: ?>
887
+ <i <?php echo $this->get_render_attribute_string( 'slide_icon' ); ?>></i>
888
+ <?php endif; ?>
889
+ </div>
890
+ <?php endif; ?>
891
+ </a>
892
</div>
893
894
<?php
925
} else if ( 'style4' == settings.premium_button_hover_effect ) {
926
styleDir = 'premium-button-style4-' + settings.premium_button_style4_dir;
927
slideIcon = settings.premium_button_style4_icon_selection;
928
+
929
+ var slideIconHTML = elementor.helpers.renderIcon( view, settings.premium_button_style4_icon_selection_updated, { 'aria-hidden': true }, 'i' , 'object' ),
930
+ slideMigrated = elementor.helpers.isIconMigrated( settings, 'premium_button_style4_icon_selection_updated' );
931
+
932
} else if ( 'style5' == settings.premium_button_hover_effect ){
933
styleDir = 'premium-button-style5-' + settings.premium_button_style5_dir;
934
}
935
936
+ var iconHTML = elementor.helpers.renderIcon( view, settings.premium_button_icon_selection_updated, { 'aria-hidden': true }, 'i' , 'object' ),
937
+ migrated = elementor.helpers.isIconMigrated( settings, 'premium_button_icon_selection_updated' );
938
+
939
#>
940
941
<div class="premium-button-container">
942
+ <a class="premium-button {{ buttonSize }} {{ styleDir }}" href="{{ buttonUrl }}" onclick="{{ buttonEvent }}">
943
<div class="premium-button-text-icon-wrapper">
944
+ <# if( 'yes' === settings.premium_button_icon_switcher && 'before' == settings.premium_button_icon_position && 'style4' != settings.premium_button_hover_effect ) {
945
+ if ( iconHTML && iconHTML.rendered && ( ! buttonIcon || migrated ) ) { #>
946
+ {{{ iconHTML.value }}}
947
+ <# } else { #>
948
+ <i class="{{ buttonIcon }}" aria-hidden="true"></i>
949
+ <# }
950
+ } #>
951
<span {{{ view.getRenderAttributeString('premium_button_text') }}}>{{{ buttonText }}}</span>
952
+ <# if( 'yes' === settings.premium_button_icon_switcher && 'after' == settings.premium_button_icon_position && 'style4' != settings.premium_button_hover_effect ) {
953
+ if ( iconHTML && iconHTML.rendered && ( ! buttonIcon || migrated ) ) { #>
954
+ {{{ iconHTML.value }}}
955
+ <# } else { #>
956
+ <i class="{{ buttonIcon }}" aria-hidden="true"></i>
957
+ <# }
958
+ } #>
959
</div>
960
<# if( 'style4' == settings.premium_button_hover_effect ) { #>
961
<div class="premium-button-style4-icon-wrapper {{ settings.premium_button_style4_dir }}">
962
+ <# if ( slideIconHTML && slideIconHTML.rendered && ( ! slideIcon || slideMigrated ) ) { #>
963
+ {{{ slideIconHTML.value }}}
964
+ <# } else { #>
965
+ <i class="{{ slideIcon }}" aria-hidden="true"></i>
966
+ <# } #>
967
</div>
968
<# } #>
969
</a>
widgets/premium-carousel.php CHANGED
@@ -438,56 +438,57 @@ class Premium_Carousel extends Widget_Base {
438
'type' => Controls_Manager::CHOOSE,
439
'options' => [
440
'right_arrow_bold' => [
441
- 'icon' => 'fa fa-arrow-right',
442
],
443
'right_arrow_long' => [
444
- 'icon' => 'fa fa-long-arrow-right',
445
],
446
'right_arrow_long_circle' => [
447
- 'icon' => 'fa fa-arrow-circle-right',
448
],
449
'right_arrow_angle' => [
450
- 'icon' => 'fa fa-angle-right',
451
],
452
'right_arrow_chevron' => [
453
- 'icon' => 'fa fa-chevron-right',
454
]
455
],
456
'default' => 'right_arrow_angle',
457
'condition' => [
458
'premium_carousel_navigation_show' => 'yes',
459
'premium_carousel_slider_type!' => 'vertical'
460
- ]
461
]
462
);
463
464
- // If the carousel type vertical
465
$this->add_control('premium_carousel_arrow_icon_next_ver',
466
[
467
'label' => __( 'Bottom Icon', 'premium-addons-for-elementor' ),
468
'type' => Controls_Manager::CHOOSE,
469
'options' => [
470
'right_arrow_bold' => [
471
- 'icon' => 'fa fa-arrow-down',
472
],
473
'right_arrow_long' => [
474
- 'icon' => 'fa fa-long-arrow-down',
475
],
476
'right_arrow_long_circle' => [
477
- 'icon' => 'fa fa-arrow-circle-down',
478
],
479
'right_arrow_angle' => [
480
- 'icon' => 'fa fa-angle-down',
481
],
482
'right_arrow_chevron' => [
483
- 'icon' => 'fa fa-chevron-down',
484
]
485
],
486
'default' => 'right_arrow_angle',
487
'condition' => [
488
'premium_carousel_navigation_show' => 'yes',
489
'premium_carousel_slider_type' => 'vertical',
490
- ]
491
]
492
);
493
@@ -497,26 +498,27 @@ class Premium_Carousel extends Widget_Base {
497
'type' => Controls_Manager::CHOOSE,
498
'options' => [
499
'left_arrow_bold' => [
500
- 'icon' => 'fa fa-arrow-up',
501
],
502
'left_arrow_long' => [
503
- 'icon' => 'fa fa-long-arrow-up',
504
],
505
'left_arrow_long_circle' => [
506
- 'icon' => 'fa fa-arrow-circle-up',
507
],
508
'left_arrow_angle' => [
509
- 'icon' => 'fa fa-angle-up',
510
],
511
'left_arrow_chevron' => [
512
- 'icon' => 'fa fa-chevron-up',
513
]
514
],
515
'default' => 'left_arrow_angle',
516
'condition' => [
517
'premium_carousel_navigation_show' => 'yes',
518
'premium_carousel_slider_type' => 'vertical',
519
- ]
520
]
521
);
522
@@ -526,26 +528,27 @@ class Premium_Carousel extends Widget_Base {
526
'type' => Controls_Manager::CHOOSE,
527
'options' => [
528
'left_arrow_bold' => [
529
- 'icon' => 'fa fa-arrow-left',
530
],
531
'left_arrow_long' => [
532
- 'icon' => 'fa fa-long-arrow-left',
533
],
534
'left_arrow_long_circle' => [
535
- 'icon' => 'fa fa-arrow-circle-left',
536
],
537
'left_arrow_angle' => [
538
- 'icon' => 'fa fa-angle-left',
539
],
540
'left_arrow_chevron' => [
541
- 'icon' => 'fa fa-chevron-left',
542
]
543
],
544
'default' => 'left_arrow_angle',
545
'condition' => [
546
'premium_carousel_navigation_show' => 'yes',
547
'premium_carousel_slider_type!' => 'vertical',
548
- ]
549
]
550
);
551
@@ -704,25 +707,23 @@ class Premium_Carousel extends Widget_Base {
704
'type' => Controls_Manager::CHOOSE,
705
'options' => [
706
'square_white' => [
707
- 'icon' => 'fa fa-square-o',
708
],
709
'square_black' => [
710
- 'icon' => 'fa fa-square',
711
],
712
'circle_white' => [
713
- 'icon' => 'fa fa-circle',
714
],
715
'circle_thin' => [
716
- 'icon' => 'fa fa-circle-thin',
717
- ],
718
- 'circle_thin_bold' => [
719
- 'icon' => 'fa fa-circle-o',
720
]
721
],
722
'default' => 'circle_white',
723
'condition' => [
724
'premium_carousel_dot_navigation_show' => 'yes'
725
- ]
726
]
727
);
728
@@ -891,70 +892,70 @@ class Premium_Carousel extends Widget_Base {
891
if( $settings['premium_carousel_slider_type'] == 'vertical' ) {
892
$icon_next = $settings['premium_carousel_arrow_icon_next_ver'];
893
if( $icon_next == 'right_arrow_bold' ) {
894
- $icon_next_class = 'fa fa-arrow-down';
895
}
896
if( $icon_next == 'right_arrow_long' ) {
897
- $icon_next_class = 'fa fa-long-arrow-down';
898
}
899
if( $icon_next == 'right_arrow_long_circle' ) {
900
- $icon_next_class = 'fa fa-arrow-circle-down';
901
}
902
if( $icon_next == 'right_arrow_angle' ) {
903
- $icon_next_class = 'fa fa-angle-down';
904
}
905
if( $icon_next == 'right_arrow_chevron' ) {
906
- $icon_next_class = 'fa fa-chevron-down';
907
}
908
$icon_prev = $settings['premium_carousel_arrow_icon_prev_ver'];
909
910
if( $icon_prev == 'left_arrow_bold' ) {
911
- $icon_prev_class = 'fa fa-arrow-up';
912
}
913
if( $icon_prev == 'left_arrow_long' ) {
914
- $icon_prev_class = 'fa fa-long-arrow-up';
915
}
916
if( $icon_prev == 'left_arrow_long_circle' ) {
917
- $icon_prev_class = 'fa fa-arrow-circle-up';
918
}
919
if( $icon_prev == 'left_arrow_angle' ) {
920
- $icon_prev_class = 'fa fa-angle-up';
921
}
922
if( $icon_prev == 'left_arrow_chevron' ) {
923
- $icon_prev_class = 'fa fa-chevron-up';
924
}
925
} else {
926
$icon_next = $settings['premium_carousel_arrow_icon_next'];
927
if( $icon_next == 'right_arrow_bold' ) {
928
- $icon_next_class = 'fa fa-arrow-right';
929
}
930
if( $icon_next == 'right_arrow_long' ) {
931
- $icon_next_class = 'fa fa-long-arrow-right';
932
}
933
if( $icon_next == 'right_arrow_long_circle' ) {
934
- $icon_next_class = 'fa fa-arrow-circle-right';
935
}
936
if( $icon_next == 'right_arrow_angle' ) {
937
- $icon_next_class = 'fa fa-angle-right';
938
}
939
if( $icon_next == 'right_arrow_chevron' ) {
940
- $icon_next_class = 'fa fa-chevron-right';
941
}
942
$icon_prev = $settings['premium_carousel_arrow_icon_prev'];
943
944
if( $icon_prev == 'left_arrow_bold' ) {
945
- $icon_prev_class = 'fa fa-arrow-left';
946
}
947
if( $icon_prev == 'left_arrow_long' ) {
948
- $icon_prev_class = 'fa fa-long-arrow-left';
949
}
950
if( $icon_prev == 'left_arrow_long_circle' ) {
951
- $icon_prev_class = 'fa fa-arrow-circle-left';
952
}
953
if( $icon_prev == 'left_arrow_angle' ) {
954
- $icon_prev_class = 'fa fa-angle-left';
955
}
956
if( $icon_prev == 'left_arrow_chevron' ) {
957
- $icon_prev_class = 'fa fa-chevron-left';
958
}
959
}
960
@@ -972,19 +973,16 @@ class Premium_Carousel extends Widget_Base {
972
if( $settings['premium_carousel_dot_navigation_show'] == 'yes' ){
973
$dots = true;
974
if( $settings['premium_carousel_dot_icon'] == 'square_white' ) {
975
- $dot_icon = 'fa fa-square-o';
976
}
977
if( $settings['premium_carousel_dot_icon'] == 'square_black' ) {
978
- $dot_icon = 'fa fa-square';
979
}
980
if( $settings['premium_carousel_dot_icon'] == 'circle_white' ) {
981
- $dot_icon = 'fa fa-circle';
982
}
983
if( $settings['premium_carousel_dot_icon'] == 'circle_thin' ) {
984
- $dot_icon = 'fa fa-circle-thin';
985
- }
986
- if( $settings['premium_carousel_dot_icon'] == 'circle_thin_bold' ) {
987
- $dot_icon = 'fa fa-circle-o';
988
}
989
$customPaging = $dot_icon;
990
} else {
@@ -1164,74 +1162,74 @@ class Premium_Carousel extends Widget_Base {
1164
var iconNext = settings.premium_carousel_arrow_icon_next_ver;
1165
1166
if( iconNext === 'right_arrow_bold' ) {
1167
- iconNextClass = 'fa fa-arrow-down';
1168
}
1169
if( iconNext === 'right_arrow_long' ) {
1170
- iconNextClass = 'fa fa-long-arrow-down';
1171
}
1172
if( iconNext === 'right_arrow_long_circle' ) {
1173
- iconNextClass = 'fa fa-arrow-circle-down';
1174
}
1175
if( iconNext === 'right_arrow_angle' ) {
1176
- iconNextClass = 'fa fa-angle-down';
1177
}
1178
if( iconNext === 'right_arrow_chevron' ) {
1179
- iconNextClass = 'fa fa-chevron-down';
1180
}
1181
1182
var iconPrev = settings.premium_carousel_arrow_icon_prev_ver;
1183
1184
if( iconPrev === 'left_arrow_bold' ) {
1185
- iconPrevClass = 'fa fa-arrow-up';
1186
}
1187
if( iconPrev === 'left_arrow_long' ) {
1188
- iconPrevClass = 'fa fa-long-arrow-up';
1189
}
1190
if( iconPrev === 'left_arrow_long_circle' ) {
1191
- iconPrevClass = 'fa fa-arrow-circle-up';
1192
}
1193
if( iconPrev === 'left_arrow_angle' ) {
1194
- iconPrevClass = 'fa fa-angle-up';
1195
}
1196
if( iconPrev === 'left_arrow_chevron' ) {
1197
- iconPrevClass = 'fa fa-chevron-up';
1198
}
1199
1200
} else {
1201
var iconNext = settings.premium_carousel_arrow_icon_next;
1202
1203
if( iconNext === 'right_arrow_bold' ) {
1204
- iconNextClass = 'fa fa-arrow-right';
1205
}
1206
if( iconNext === 'right_arrow_long' ) {
1207
- iconNextClass = 'fa fa-long-arrow-right';
1208
}
1209
if( iconNext === 'right_arrow_long_circle' ) {
1210
- iconNextClass = 'fa fa-arrow-circle-right';
1211
}
1212
if( iconNext === 'right_arrow_angle' ) {
1213
- iconNextClass = 'fa fa-angle-right';
1214
}
1215
if( iconNext === 'right_arrow_chevron' ) {
1216
- iconNextClass = 'fa fa-chevron-right';
1217
}
1218
1219
var iconPrev = settings.premium_carousel_arrow_icon_prev;
1220
1221
if( iconPrev === 'left_arrow_bold' ) {
1222
- iconPrevClass = 'fa fa-arrow-left';
1223
}
1224
if( iconPrev === 'left_arrow_long' ) {
1225
- iconPrevClass = 'fa fa-long-arrow-left';
1226
}
1227
if( iconPrev === 'left_arrow_long_circle' ) {
1228
- iconPrevClass = 'fa fa-arrow-circle-left';
1229
}
1230
if( iconPrev === 'left_arrow_angle' ) {
1231
- iconPrevClass = 'fa fa-angle-left';
1232
}
1233
if( iconPrev === 'left_arrow_chevron' ) {
1234
- iconPrevClass = 'fa fa-chevron-left';
1235
}
1236
}
1237
@@ -1254,19 +1252,16 @@ class Premium_Carousel extends Widget_Base {
1254
var dots = true;
1255
1256
if( 'square_white' === settings.premium_carousel_dot_icon ) {
1257
- dotIcon = 'fa fa-square-o';
1258
}
1259
if( 'square_black' === settings.premium_carousel_dot_icon ) {
1260
- dotIcon = 'fa fa-square';
1261
}
1262
if( 'circle_white' === settings.premium_carousel_dot_icon ) {
1263
- dotIcon = 'fa fa-circle';
1264
}
1265
if( 'circle_thin' === settings.premium_carousel_dot_icon ) {
1266
- dotIcon = 'fa fa-circle-thin';
1267
- }
1268
- if( 'circle_thin_bold' === settings.premium_carousel_dot_icon ) {
1269
- dotIcon = 'fa fa-circle-o';
1270
}
1271
var customPaging = dotIcon;
1272
438
'type' => Controls_Manager::CHOOSE,
439
'options' => [
440
'right_arrow_bold' => [
441
+ 'icon' => 'fas fa-arrow-right',
442
],
443
'right_arrow_long' => [
444
+ 'icon' => 'fas fa-long-arrow-alt-right',
445
],
446
'right_arrow_long_circle' => [
447
+ 'icon' => 'fas fa-arrow-circle-right',
448
],
449
'right_arrow_angle' => [
450
+ 'icon' => 'fas fa-angle-right',
451
],
452
'right_arrow_chevron' => [
453
+ 'icon' => 'fas fa-chevron-right',
454
]
455
],
456
'default' => 'right_arrow_angle',
457
'condition' => [
458
'premium_carousel_navigation_show' => 'yes',
459
'premium_carousel_slider_type!' => 'vertical'
460
+ ],
461
+ 'toggle' => false
462
]
463
);
464
465
$this->add_control('premium_carousel_arrow_icon_next_ver',
466
[
467
'label' => __( 'Bottom Icon', 'premium-addons-for-elementor' ),
468
'type' => Controls_Manager::CHOOSE,
469
'options' => [
470
'right_arrow_bold' => [
471
+ 'icon' => 'fas fa-arrow-down',
472
],
473
'right_arrow_long' => [
474
+ 'icon' => 'fas fa-long-arrow-alt-down',
475
],
476
'right_arrow_long_circle' => [
477
+ 'icon' => 'fas fa-arrow-circle-down',
478
],
479
'right_arrow_angle' => [
480
+ 'icon' => 'fas fa-angle-down',
481
],
482
'right_arrow_chevron' => [
483
+ 'icon' => 'fas fa-chevron-down',
484
]
485
],
486
'default' => 'right_arrow_angle',
487
'condition' => [
488
'premium_carousel_navigation_show' => 'yes',
489
'premium_carousel_slider_type' => 'vertical',
490
+ ],
491
+ 'toggle' => false
492
]
493
);
494
498
'type' => Controls_Manager::CHOOSE,
499
'options' => [
500
'left_arrow_bold' => [
501
+ 'icon' => 'fas fa-arrow-up',
502
],
503