PageSourceSearch

https://www.frappe.com.ar/modules/iqitelementor/views/js/frontend.js

js frappe.com.ar collected 2026-10-04 14:14:58 UTC 33,423 bytes, 1,161 lines download raw bytes

1(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2var ElementsHandler;
3
4ElementsHandler = function( $ ) {
5	var registeredHandlers = {},
6		registeredGlobalHandlers = [];
7
8	var runGlobalHandlers = function( $scope ) {
9		$.each( registeredGlobalHandlers, function() {
10			this.call( $scope, $ );
11		} );
12	};
13
14	this.addHandler = function( widgetType, callback ) {
15		registeredHandlers[ widgetType ] = callback;
16	};
17
18	this.addGlobalHandler = function( callback ) {
19		registeredGlobalHandlers.push( callback );
20	};
21
22	this.runReadyTrigger = function( $scope ) {
23		var elementType = $scope.data( 'element_type' );
24
25		if ( ! elementType ) {
26			return;
27		}
28
29		runGlobalHandlers( $scope );
30
31		if ( ! registeredHandlers[ elementType ] ) {
32			return;
33		}
34
35		registeredHandlers[ elementType ].call( $scope, $ );
36	};
37};
38
39module.exports = ElementsHandler;
40
41},{}],2:[function(require,module,exports){
42/* global elementorFrontendConfig */
43( function( $ ) {
44	var ElementsHandler = require( 'elementor-frontend/elements-handler' ),
45	    Utils = require( 'elementor-frontend/utils' );
46
47	var ElementorFrontend = function() {
48		var self = this,
49			scopeWindow = window;
50
51		var elementsDefaultHandlers = {
52			accordion: require( 'elementor-frontend/handlers/accordion' ),
53			alert: require( 'elementor-frontend/handlers/alert' ),
54			counter: require( 'elementor-frontend/handlers/counter' ),
55			//'image-hotspots': require( 'elementor-frontend/handlers/image-hotspots' ),
56			'image-carousel': require( 'elementor-frontend/handlers/image-carousel' ),
57			instagram: require( 'elementor-frontend/handlers/instagram' ),
58			testimonial: require( 'elementor-frontend/handlers/testimonial' ),
59			progress: require( 'elementor-frontend/handlers/progress' ),
60			section: require( 'elementor-frontend/handlers/section' ),
61			tabs: require( 'elementor-frontend/handlers/tabs' ),
62			lottie: require( 'elementor-frontend/handlers/lottie' ),
63			'prestashop-widget-Blog': require( 'elementor-frontend/handlers/prestashop-blog' ),
64			'prestashop-widget-ProductsList': require( 'elementor-frontend/handlers/prestashop-productlist' ),
65			'prestashop-widget-ProductsListTabs': require( 'elementor-frontend/handlers/prestashop-productlisttabs' ),
66			'prestashop-widget-Brands': require( 'elementor-frontend/handlers/prestashop-brands' ),
67			'prestashop-widget-Search': require( 'elementor-frontend/handlers/prestashop-search' ),
68			'prestashop-widget-ContactForm': require( 'elementor-frontend/handlers/prestashop-contactform' ),
69			//'prestashop-widget-RevolutionSlider': require( 'elementor-frontend/handlers/prestashop-revolutionslider' ),
70			toggle: require( 'elementor-frontend/handlers/toggle' ),
71			video: require( 'elementor-frontend/handlers/video' )
72		};
73
74		var addGlobalHandlers = function() {
75			self.elementsHandler.addGlobalHandler( require( 'elementor-frontend/handlers/global' ) );
76		};
77
78		var addElementsHandlers = function() {
79			$.each( elementsDefaultHandlers, function( elementName ) {
80				self.elementsHandler.addHandler( elementName, this );
81			} );
82		};
83
84		var runElementsHandlers = function() {
85			$( '.elementor-element' ).each( function() {
86				self.elementsHandler.runReadyTrigger( $( this ) );
87			} );
88		};
89
90		this.config = elementorFrontendConfig;
91
92		this.getScopeWindow = function() {
93			return scopeWindow;
94		};
95
96		this.setScopeWindow = function( window ) {
97			scopeWindow = window;
98		};
99
100		this.isEditMode = function() {
101			return self.config.isEditMode;
102		};
103
104		this.elementsHandler = new ElementsHandler( $ );
105
106		this.utils = new Utils( $ );
107
108		this.init = function() {
109			addGlobalHandlers();
110
111			addElementsHandlers();
112
113
114			runElementsHandlers();
115		};
116
117		// Based on underscore function
118		this.throttle = function( func, wait ) {
119			var timeout,
120				context,
121				args,
122				result,
123				previous = 0;
124
125			var later = function() {
126				previous = Date.now();
127				timeout = null;
128				result = func.apply( context, args );
129
130				if ( ! timeout ) {
131					context = args = null;
132				}
133			};
134
135			return function() {
136				var now = Date.now(),
137					remaining = wait - ( now - previous );
138
139				context = this;
140				args = arguments;
141
142				if ( remaining <= 0 || remaining > wait ) {
143					if ( timeout ) {
144						clearTimeout( timeout );
145						timeout = null;
146					}
147
148					previous = now;
149					result = func.apply( context, args );
150
151					if ( ! timeout ) {
152						context = args = null;
153					}
154				} else if ( ! timeout ) {
155					timeout = setTimeout( later, remaining );
156				}
157
158				return result;
159			};
160		};
161	};
162
163	window.elementorFrontend = new ElementorFrontend();
164} )( jQuery );
165
166jQuery( function() {
167	if ( ! elementorFrontend.isEditMode() ) {
168		elementorFrontend.init();
169	}
170} );
171
172},{"elementor-frontend/elements-handler":1,"elementor-frontend/handlers/accordion":3,"elementor-frontend/handlers/alert":4,"elementor-frontend/handlers/counter"
172:5,"elementor-frontend/handlers/global":6,"elementor-frontend/handlers/image-carousel":7,"elementor-frontend/handlers/instagram":8,"elementor-frontend/handlers/lottie":9,"elementor-frontend/handlers/prestashop-blog":10,"elementor-frontend/handlers/prestashop-brands":11,"elementor-frontend/handlers/prestashop-contactform":12,"elementor-frontend/handlers/prestashop-productlist":13,"elementor-frontend/handlers/prestashop-productlisttabs":14,"elementor-frontend/handlers/prestashop-search":15,"elementor-frontend/handlers/progress":16,"elementor-frontend/handlers/section":17,"elementor-frontend/handlers/tabs":18,"elementor-frontend/handlers/testimonial":19,"elementor-frontend/handlers/toggle":20,"elementor-frontend/handlers/video":21,"elementor-frontend/utils":22}],3:[function(require,module,exports){
173var activateSection = function( sectionIndex, $accordionTitles ) {
174	var $activeTitle = $accordionTitles.filter( '.active' ),
175		$requestedTitle = $accordionTitles.filter( '[data-section="' + sectionIndex + '"]' ),
176		isRequestedActive = $requestedTitle.hasClass( 'active' );
177
178	$activeTitle
179		.removeClass( 'active' )
180		.next()
181		.slideUp();
182
183	if ( ! isRequestedActive ) {
184		$requestedTitle
185			.addClass( 'active' )
186			.next()
187			.slideDown();
188	}
189};
190
191module.exports = function( $ ) {
192	var $this = $( this ),
193		$accordionDiv = $this.find( '.elementor-accordion' ),
194		defaultActiveSection = $accordionDiv.data( 'active-section' ),
195		activeFirst =  $accordionDiv.data( 'active-first' ),
196		$accordionTitles = $this.find( '.elementor-accordion-title' );
197
198	if ( ! defaultActiveSection ) {
199		defaultActiveSection = 1;
200	}
201
202	if(activeFirst){
203		activateSection( defaultActiveSection, $accordionTitles );
204	}
205
206
207	$accordionTitles.on( 'click', function() {
208		activateSection( this.dataset.section, $accordionTitles );
209	} );
210};
211
212},{}],4:[function(require,module,exports){
213module.exports = function( $ ) {
214	$( this ).find( '.elementor-alert-dismiss' ).on( 'click', function() {
215		$( this ).parent().fadeOut();
216	} );
217};
218
219},{}],5:[function(require,module,exports){
220module.exports = function( $ ) {
221
222	var $number = $( this ).find(  '.elementor-counter-number' );
223
224	$number.waypoint( function() {
225		$number.numerator( {
226			duration: $number.data( 'duration' )
227		} );
228	}, { offset: '90%' } );
229};
230
231},{}],6:[function(require,module,exports){
232module.exports = function() {
233	if ( elementorFrontend.isEditMode() ) {
234		return;
235	}
236
237	var $element = this,
238		animation = $element.data( 'animation' );
239
240	if ( ! animation ) {
241		return;
242	}
243
244	$element.addClass( 'elementor-invisible' ).removeClass( animation );
245
246	$element.waypoint( function() {
247		$element.removeClass( 'elementor-invisible' ).addClass( animation );
248	}, { offset: '90%' } );
249
250};
251
252},{}],7:[function(require,module,exports){
253module.exports = function( $ ) {
254	var $carousel = $( this ).find( '.elementor-image-carousel' );
255	if ( ! $carousel.length ) {
256		return;
257	}
258	var savedOptions = $carousel.data( 'slider_options' ),
259		swiperOptions = {
260		touchEventsTarget: 'container',
261		loop: savedOptions.loop,
262		speed: savedOptions.speed,
263		watchOverflow: true,
264		watchSlidesProgress: true,
265		watchSlidesVisibility: true,
266		slidesPerView: savedOptions.slidesToShowMobile,
267		slidesPerGroup: savedOptions.slidesToShowMobile,
268		breakpoints: {
269			768: {
270				slidesPerView: savedOptions.slidesToShowTablet,
271				slidesPerGroup: savedOptions.slidesToShowTablet,
272			},
273			992: {
274				slidesPerView:  savedOptions.slidesToShow,
275				slidesPerGroup: savedOptions.slidesToShow,
276			}
277		}
278	};
279
280	if(savedOptions.autoplay){
281		swiperOptions.autoplay = {
282			delay: savedOptions.autoplaySpeed,
283			disableOnInteraction: savedOptions.disableOnInteraction,
284		};
285	}
286	if(savedOptions.lazy){
287		swiperOptions.lazy = {
288			loadPrevNext: true,
289		}
290	}
291	if(savedOptions.fade){
292		swiperOptions.effect = 'fade';
293		swiperOptions.fadeEffect = {
294			crossFade: true
295		};
296	}
297	if(savedOptions.dots){
298		swiperOptions.pagination = {
299			el: '.swiper-pagination',
300				clickable: true,
301		};
302	}
303	if(savedOptions.arrows){
304		swiperOptions.navigation = {
305			nextEl: '.swiper-button-next',
306			prevEl: '.swiper-button-prev',
307		};
308	}
309
310	var swiperInstance = new Swiper($carousel[0], swiperOptions);
311
312	if(savedOptions.autoplay && savedOptions.disableOnInteraction){
313		$carousel.mouseenter(function() {
314			swiperInstance.autoplay.stop();
315		});
316		$carousel.mouseleave(function() {
317			swiperInstance.autoplay.start();
318		});
319	}
320};
321
322},{}],8:[function(require,module,exports){
323module.exports = function( $ ) {
324
325    const $self = $( this );
326	const $instagramWrapper = $self.find( '.elementor-instagram' );
327    const $carousel = $self.find( '.elementor-instagram-carousel' );
328
329	if ( ! $instagramWrapper.length ) {
330		return;
331	}
332
333	const options = $instagramWrapper.data( 'options' );
334
335    const init = function() {
336        if(options.api_type == 'token'){
337            initTokenConnection();
338        } else{
339            initNoTokenConnection();
340        }
341    };
342
343    const initTokenConnection = function() {
344
345        if (elementorFrontendConfig.instagramToken == ''){
346            return;
347        }
348
349        let html = "<div class='swiper-slide il-item "+ options.class + "'><div class='il-item-inner'>";
350        html += '<a href="{{link}}" class="instagram-{{type}}" rel="noopener" target="_blank">';
351        html += '<img loading="lazy" src="{{image}}" alt="{{caption}}" class="il-photo__img" width="" height="" />';
352        html += '</a>';
353        html += "</div></div>";
354
355        const optionsPlugin = {
356            'target': $instagramWrapper[0],
357            'accessToken': elementorFrontendConfig.instagramToken,
358            'template': html,
359            /*
360             'transform': function(item) {
361                item.model.image  = item.link + 'media/?size=' + options.image_size_token;
362                return item;
363            },
364             */
365            'limit': parseInt(options.limit_token),
366            'after': function(){
367                if ( ! $carousel.length ) {
368                    return;
369                }
370                initSwiper();
371            }
372        };
373
374        const feed = new Instafeed(optionsPlugin);
375        feed.run();
376
377    };
378
379    const initNoTokenConnection = function() {
380
381        let limit = 12;
382        let username;
383        let tag;
384
385        if(options.feed_type == 'user'){
386            if (options.user == '' ) {
387                return;
388            }
389            limit = options.limit_user;
390            username = options.user;
391        } else{
392            if (options.tag == '' ) {
393                return;
394            }
395            limit = options.limit_tag;
396            tag = options.tag;
397        }
398
399        const optionsPlugin = {
400            'username': username,
401            'host': "https://www.instagram.com/",
402            'tag': tag,
403            'display_profile': false,
404            'display_biography': false,
405            'container': $instagramWrapper,
406            'cache_time': 380,
407            'image_class': options.class,
408            'styling': true,
409            'items': limit,
410            'image_size': options.image_size,
411            'callback': function(data){
412                if ( ! $carousel.length ) {
413                    return;
414                }
415                initSwiper();
416            }
417        };
418
419        $.instagramFeed(optionsPlugin);
420
421    };
422
423    const initSwiper = function() {
424        const savedOptions = $carousel.data( 'slider_options' ),
425            swiperOptions = {
426                touchEventsTarget: 'container',
427                loop: savedOptions.loop,
428                watchOverflow: true,
429                watchSlidesProgress: true,
430                watchSlidesVisibility: true,
431                slidesPerView: savedOptions.slidesToShowMobile,
432                slidesPerGroup: savedOptions.slidesToShowMobile,
433                breakpoints: {
434                    768: {
435                        slidesPerView: savedOptions.slidesToShowTablet,
436                        slidesPerGroup: savedOptions.slidesToShowTablet,
437                    },
438                    992: {
439                        slidesPerView:  savedOptions.slidesToShow,
440                        slidesPerGroup: savedOptions.slidesToShow,
441                    }
442                }
443            };
444
445        if(savedOptions.autoplay){
446            swiperOptions.autoplay = {
447                delay: savedOptions.autoplaySpeed,
448                disableOnInteraction: savedOptions.disableOnInteraction,
449            };
450        }
451        if(savedOptions.dots){
452            swiperOptions.pagination = {
453                el: '.swiper-pagination',
454                clickable: true,
455            };
456        }
457        if(savedOptions.arrows){
458            swiperOptions.navigation = {
459                nextEl: $self.find('.elementor-swiper-button-next').first()[0],
460                prevEl: $self.find('.elementor-swiper-button-prev').first()[0],
461            };
462        }
463
464        var swiperInstance = new Swiper($carousel[0], swiperOptions);
465
466        if(savedOptions.autoplay && savedOptions.disableOnInteraction){
467            $carousel.mouseenter(function() {
468                swiperInstance.autoplay.stop();
469            });
470            $carousel.mouseleave(function() {
471                swiperInstance.autoplay.start();
472            });
473        }
474    };
475
476    init();
477
478};
479
480},{}],9:[function(require,module,exports){
481module.exports = function( $ ) {
482
483    var $lottiePlayer = $( this ).find( '.lottie-animation' );
484    var offset =  $lottiePlayer.data('offset') / 100;
485    var container =  null;
486
487    if ($lottiePlayer.data('container') == 'body'){
488        container = 'body';
489    }
490
491    if (elementorFrontendConfig.isEditMode) {
492        if($lottiePlayer.data('play') == 'scroll'){
493            window.frames[0].frameElement.contentWindow.lottieInteractivyBackofficeRun(offset, $lottiePlayer[0], container);
494        }
495    } else{
496        if($lottiePlayer.data('play') == 'scroll'){
497        document.addEventListener("lottieLoaded", function(e) {
498            LottieInteractivity.create({
499                mode:'scroll',
500                player: $lottiePlayer[0],
501                container: container,
502                actions: [
503                    {
504                        visibility:[offset,1],
505                        type: 'seek',
506                        frames: [0, '100%']
507                    }
508                ]
509            });
510
511        });
512        }
513    }
514};
515
516
517
518
519},{}],10:[function(require,module,exports){
520module.exports = function( $ ) {
521    var $carousel = $( this ).find( '.elementor-blog-carousel' );
522    if ( ! $carousel.length ) {
523        return;
524    }
525
526    var savedOptions = $carousel.data('slider_options'),
527        swiperOptions = {
528            touchEventsTarget: 'container',
529            watchOverflow: true,
530            watchSlidesProgress: true,
531            watchSlidesVisibility: true,
532            lazy : {
533                loadPrevNext: true,
534                checkInView: true,
535            },
536            slidesPerView: savedOptions.slidesToShowMobile,
537            slidesPerGroup: savedOptions.slidesToShowMobile,
538            breakpoints: {
539                768: {
540                    slidesPerView: savedOptions.slidesToShowTablet,
541                    slidesPerGroup: savedOptions.slidesToShowTablet,
542                },
543                992: {
544                    slidesPerView:  savedOptions.slidesToShow,
545                    slidesPerGroup: savedOptions.slidesToShow,
546                }
547            }
548        };
549
550    if(savedOptions.autoplay){
551        swiperOptions.autoplay = {
552            delay: savedOptions.autoplaySpeed,
553            disableOnInteraction: savedOptions.disableOnInteraction,
554        };
555    }
556    if(savedOptions.dots){
557        swiperOptions.pagination = {
558            el: '.swiper-pagination',
559            clickable: true,
560        };
561    }
562    if(savedOptions.arrows){
563        swiperOptions.navigation = {
564            nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
565            prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
566        };
567    }
568
569    var swiperInstance = new Swiper($carousel[0], swiperOptions);
570
571    if(savedOptions.autoplay && savedOptions.disableOnInteraction){
572        $carousel.mouseenter(function() {
573            swiperInstance.autoplay.stop();
574        });
575        $carousel.mouseleave(function() {
576            swiperInstance.autoplay.start();
577        });
578    }
579};
580
581},{}],11:[function(require,module,exports){
582module.exports = function ($) {
583    var $carousel = $(this).find('.elementor-brands-carousel');
584    if (!$carousel.length) {
585        return;
586    }
587
588    var savedOptions = $carousel.data('slider_options'),
589        swiperOptions = {
590            touchEventsTarget: 'container',
591            watchOverflow: true,
592            watchSlidesProgress: true,
593            watchSlidesVisibility: true,
594            lazy : {
595                loadPrevNext: true,
596                checkInView: true,
597            },
598            slidesPerView: savedOptions.slidesToShowMobile,
599            slidesPerGroup: savedOptions.slidesToShowMobile,
600            slidesPerColumn: savedOptions.itemsPerColumn,
601
602            breakpoints: {
603                768: {
604                    slidesPerView: savedOptions.slidesToShowTablet,
605                    slidesPerGroup: savedOptions.slidesToShowTablet,
606                    slidesPerColumn: savedOptions.itemsPerColumn,
607                },
608                992: {
609                    slidesPerView:  savedOptions.slidesToShow,
610                    slidesPerGroup: savedOptions.slidesToShow,
611                    slidesPerColumn: savedOptions.itemsPerColumn,
612                }
613            }
614        };
615
616    if(savedOptions.autoplay){
617        swiperOptions.autoplay = {
618            delay: 4500
619        };
620    }
621    if(savedOptions.itemsPerColumn > 1){
622        swiperOptions.slidesPerColumnFill = 'row';
623    }
624    if(savedOptions.dots){
625        swiperOptions.pagination = {
626            el: '.swiper-pagination',
627            clickable: true,
628        };
629    }
630    if(savedOptions.arrows){
631        swiperOptions.navigation = {
632            nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
633            prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
634        };
635    }
636
637    var swiperInstance = new Swiper($carousel[0], swiperOptions);
638
639    if(savedOptions.autoplay && savedOptions.disableOnInteraction){
640        $carousel.mouseenter(function() {
641            swiperInstance.autoplay.stop();
642        });
643        $carousel.mouseleave(function() {
644            swiperInstance.autoplay.start();
645        });
646    }
647};
648
649},{}],12:[function(require,module,exports){
650module.exports = function ($) {
651    var $this = $(this);
652    var $contactFormWrapper = $this.find('.elementor-contactform-wrapper');
653
654    if (!$contactFormWrapper.length) {
655        return;
656    }
657    $contactFormWrapper.on("submit", ".js-lementor-contact-form", function (e) {
658        e.preventDefault();
659        var formData = new FormData($(this)[0]);
660        $.ajax({
661            url: $(this).attr('action'),
662            data: formData,
663            processData: false,
664            contentType: false,
665            type: 'POST',
666            success: function(resp){
667                $contactFormWrapper.find('.js-elementor-contact-norifcation-wrapper').replaceWith($(resp.preview).find('.js-elementor-contact-norifcation-wrapper'));
668            }
669        });
670    });
671};
672
673},{}],13:[function(require,module,exports){
674module.exports = function ($) {
675    var $carousel = $(this).find('.elementor-products-carousel');
676    if (elementorFrontendConfig.isEditMode) {
677        $(this).find('img[data-src]').each(function() {
678            $(this).attr('src', $(this).data('src'));
679        });
680    }
681    if (!$carousel.length) {
682        return;
683    }
684
685    var savedOptions = $carousel.data('slider_options'),
686        swiperOptions = {
687            touchEventsTarget: 'container',
688            watchOverflow: true,
689            watchSlidesProgress: true,
690            watchSlidesVisibility: true,
691            lazy : {
692                checkInView: true,
693                loadedClass: 'loaded'
694            },
695            slidesPerView: savedOptions.slidesToShowMobile,
696            slidesPerGroup: savedOptions.slidesToShowMobile,
697            slidesPerColumn: savedOptions.itemsPerColumn,
698            breakpoints: {
699                768: {
700                    slidesPerView: savedOptions.slidesTo
700ShowTablet,
701                    slidesPerGroup: savedOptions.slidesToShowTablet,
702                    slidesPerColumn: savedOptions.itemsPerColumn,
703                },
704                992: {
705                    slidesPerView:  savedOptions.slidesToShow,
706                    slidesPerGroup: savedOptions.slidesToShow,
707                    slidesPerColumn: savedOptions.itemsPerColumn,
708                }
709            }
710        };
711
712    if(savedOptions.autoplay){
713        swiperOptions.autoplay = {
714            delay: 4500,
715            disableOnInteraction: true,
716        };
717    }
718    if(savedOptions.itemsPerColumn > 1){
719        swiperOptions.slidesPerColumnFill = 'row';
720    }
721    if(savedOptions.dots){
722        swiperOptions.pagination = {
723            el: '.swiper-pagination',
724            clickable: true,
725        };
726    }
727    if(savedOptions.arrows){
728        swiperOptions.navigation = {
729            nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
730            prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
731        };
732    }
733
734    var swiperInstance = new Swiper($carousel[0], swiperOptions);
735
736
737
738};
739
740},{}],14:[function(require,module,exports){
741module.exports = function ($) {
742    var $carousels = $(this).find('.elementor-products-carousel');
743    if (elementorFrontendConfig.isEditMode) {
744        $(this).find('img[data-src]').each(function() {
745            $(this).attr('src', $(this).data('src'));
746        });
747    }
748    if (!$carousels.length) {
749        return;
750    }
751
752
753
754    $carousels.each(function() {
755        let $carousel = $(this);
756
757        var savedOptions = $carousel.data('slider_options'),
758            swiperOptions = {
759                touchEventsTarget: 'container',
760                watchOverflow: true,
761                watchSlidesProgress: true,
762                watchSlidesVisibility: true,
763                lazy : {
764                    checkInView: true,
765                    loadedClass: 'loaded'
766                },
767                slidesPerView: savedOptions.slidesToShowMobile,
768                slidesPerGroup: savedOptions.slidesToShowMobile,
769                slidesPerColumn: savedOptions.itemsPerColumn,
770                breakpoints: {
771                    768: {
772                        slidesPerView: savedOptions.slidesToShowTablet,
773                        slidesPerGroup: savedOptions.slidesToShowTablet,
774                        slidesPerColumn: savedOptions.itemsPerColumn,
775                    },
776                    992: {
777                        slidesPerView:  savedOptions.slidesToShow,
778                        slidesPerGroup: savedOptions.slidesToShow,
779                        slidesPerColumn: savedOptions.itemsPerColumn,
780                    }
781                }
782            };
783
784        if(savedOptions.autoplay){
785            swiperOptions.autoplay = {
786                delay: 4500,
787                disableOnInteraction: true,
788            };
789        }
790        if(savedOptions.itemsPerColumn > 1){
791            swiperOptions.slidesPerColumnFill = 'row';
792        }
793        if(savedOptions.dots){
794            swiperOptions.pagination = {
795                el: '.swiper-pagination',
796                clickable: true,
797            };
798        }
799        if(savedOptions.arrows){
800            swiperOptions.navigation = {
801                nextEl: $carousel.parent().find('.elementor-swiper-button-next').first()[0],
802                prevEl: $carousel.parent().find('.elementor-swiper-button-prev').first()[0],
803            };
804        }
805
806        var swiperInstance = new Swiper($carousel[0], swiperOptions);
807
808    });
809
810
811
812
813
814
815};
816
817},{}],15:[function(require,module,exports){
818module.exports = function( $ ) {
819    var $searchWidget = $( this ).find( '.search-widget-autocomplete' );
820    if ( ! $searchWidget.length ) {
821        return;
822    }
823
824    if (elementorFrontendConfig.isEditMode) {
825        return;
826    }
827    
828    let $searchBox = $searchWidget.find('input[type=text]');
829    let searchURL = $searchWidget.attr('data-search-controller-url');
830    var initAutocomplete = prestashop.blocksearch.initAutocomplete || function ($searchWidget, $searchBox, searchURL) {};
831
832    initAutocomplete($searchWidget, $searchBox, searchURL);
833
834};
835
836},{}],16:[function(require,module,exports){
837module.exports = function( $ ) {
838	var $progressbar = $( this ).find( '.elementor-progress-bar' );
839
840	$progressbar.waypoint( function() {
841		$progressbar.css( 'width', $progressbar.data( 'max' ) + '%' )
842	}, { offset: '90%' } );
843};
844
845},{}],17:[function(require,module,exports){
846var BackgroundVideo = function( $, $backgroundVideoContainer ) {
847	var player,
848		elements = {},
849		isYTVideo = false;
850
851	var calcVideosSize = function() {
852		var containerWidth = $backgroundVideoContainer.outerWidth(),
853			containerHeight = $backgroundVideoContainer.outerHeight(),
854			aspectRatioSetting = '16:9', //TEMP
855			aspectRatioArray = aspectRatioSetting.split( ':' ),
856			aspectRatio = aspectRatioArray[ 0 ] / aspectRatioArray[ 1 ],
857			ratioWidth = containerWidth / aspectRatio,
858			ratioHeight = containerHeight * aspectRatio,
859			isWidthFixed = containerWidth / containerHeight > aspectRatio;
860
861		return {
862			width: isWidthFixed ? containerWidth : ratioHeight,
863			height: isWidthFixed ? ratioWidth : containerHeight
864		};
865	};
866
867	var changeVideoSize = function() {
868		var $video = isYTVideo ? $( player.getIframe() ) : elements.$backgroundVideo,
869			size = calcVideosSize();
870
871		$video.width( size.width ).height( size.height );
872	};
873
874	var prepareYTVideo = function( YT, videoID ) {
875		player = new YT.Player( elements.$backgroundVideo[ 0 ], {
876			videoId: videoID,
877			events: {
878				onReady: function() {
879					player.mute();
880
881					changeVideoSize();
882
883					player.playVideo();
884				},
885				onStateChange: function( event ) {
886					if ( event.data === YT.PlayerState.ENDED ) {
887						player.seekTo( 0 );
888					}
889				}
890			},
891			playerVars: {
892				controls: 0,
893				mute: 1,
894				showinfo: 0
895			}
896		} );
897
898		$( elementorFrontend.getScopeWindow() ).on( 'resize', changeVideoSize );
899	};
900
901	var initElements = function() {
902		elements.$backgroundVideo = $backgroundVideoContainer.children( '.elementor-background-video' );
903	};
904
905	var run = function() {
906		var videoID = elements.$backgroundVideo.data( 'video-id' );
907
908		if ( videoID ) {
909			isYTVideo = true;
910
911			elementorFrontend.utils.onYoutubeApiReady( function( YT ) {
912				setTimeout( function() {
913					prepareYTVideo( YT, videoID );
914				}, 1 );
915			} );
916		} else {
917			elements.$backgroundVideo.one( 'canplay', changeVideoSize );
918		}
919	};
920
921	var init = function() {
922		initElements();
923		run();
924	};
925
926	init();
927};
928
929
930
931module.exports = function( $ ) {
932	//new StretchedSection( $, this );
933
934	var $backgroundVideoContainer = this.find( '.elementor-background-video-container' );
935
936	if ( $backgroundVideoContainer ) {
937		new BackgroundVideo( $, $backgroundVideoContainer );
938	}
939};
940
941},{}],18:[function(require,module,exports){
942module.exports = function( $ ) {
943	var $this = $( this ),
944		defaultActiveTab = $this.find( '.elementor-tabs' ).data( 'active-tab' ),
945		$tabsTitles = $this.find( '.elementor-tab-title' ),
946		$tabs = $this.find( '.elementor-tab-content' ),
947		$active,
948		$content;
949
950	if ( ! defaultActiveTab ) {
951		defaultActiveTab = 1;
952	}
953
954	var activateTab = function( tabIndex ) {
955		if ( $active ) {
956			$active.removeClass( 'active' );
957
958			$content.removeClass( 'active' );
959		}
960
961		$active = $tabsTitles.filter( '[data-tab="' + tabIndex + '"]' );
962		$active.addClass( 'active' );
963		$content = $tabs.filter( '[data-tab="' + tabIndex + '"]' );
964		$content.addClass( 'active' );
965	};
966
967	activateTab( defaultActiveTab );
968
969	$tabsTitles.on( 'click', function() {
970		activateTab( this.dataset.tab );
971	} );
972};
973
974},{}],19:[function(require,module,exports){
975module.exports = function( $ ) {
976	var $carousel = $( this ).find( '.elementor-testimonial-carousel' );
977	if ( ! $carousel.length ) {
978		return;
979	}
980	var savedOptions = $carousel.data( 'slider_options' ),
981		tabletSlides = 1 === savedOptions.slidesToShow ? 1 : 2,
982		swiperOptions = {
983			touchEventsTarget: 'container',
984			loop: savedOptions.loop,
985			speed: savedOptions.speed,
986			watchOverflow: true,
987			watchSlidesProgress: true,
988			watchSlidesVisibility: true,
989			slidesPerView: 1,
990			slidesPerGroup: 1,
991			breakpoints: {
992				768: {
993					slidesPerView: tabletSlides,
994					slidesPerGroup: tabletSlides,
995				},
996				992: {
997					slidesPerView:  savedOptions.slidesToShow,
998					slidesPerGroup: savedOptions.slidesToShow,
999				}
1000			}
1001		};
1002
1003	if(savedOptions.autoplay){
1004		swiperOptions.autoplay = {
1005			delay: savedOptions.autoplaySpeed,
1006			disableOnInteraction: savedOptions.disableOnInteraction,
1007		};
1008	}
1009	if(savedOptions.fade){
1010		swiperOptions.effect = 'fade';
1011		swiperOptions.fadeEffect = {
1012			crossFade: true
1013		};
1014	}
1015	if(savedOptions.dots){
1016		swiperOptions.pagination = {
1017			el: '.swiper-pagination',
1018			clickable: true,
1019		};
1020	}
1021	if(savedOptions.arrows){
1022		swiperOptions.navigation = {
1023			nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
1024			prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
1025		};
1026	}
1027
1028	var swiperInstance = new Swiper($carousel[0], swiperOptions);
1029
1030	if(savedOptions.autoplay && savedOptions.disableOnInteraction){
1031		$carousel.mouseenter(function() {
1032			swiperInstance.autoplay.stop();
1033		});
1034		$carousel.mouseleave(function() {
1035			swiperInstance.autoplay.start();
1036		});
1037	}
1038};
1039
1040},{}],20:[function(require,module,exports){
1041module.exports = function( $ ) {
1042	var $toggleTitles = $( this ).find( '.elementor-toggle-title' );
1043
1044	$toggleTitles.on( 'click', function() {
1045		var $active = $( this ),
1046			$content = $active.next();
1047
1048		if ( $active.hasClass( 'active' ) ) {
1049			$active.removeClass( 'active' );
1050			$content.slideUp();
1051		} else {
1052			$active.addClass( 'active' );
1053			$content.slideDown();
1054		}
1055	} );
1056};
1057
1058},{}],21:[function(require,module,exports){
1059module.exports = function( $ ) {
1060	var $this = $( this ),
1061		$imageOverlay = $this.find( '.elementor-custom-embed-image-overlay' ),
1062		$videoModalBtn = $this.find( '.elementor-video-open-modal' ).first(),
1063		$videoModal = $this.find( '.elementor-video-modal' ).first(),
1064		$video =  $this.find( '.elementor-video' ).first(),
1065		$videoFrame = $this.find( 'iframe' );
1066
1067
1068
1069	if ( $imageOverlay.length ) {
1070
1071		$imageOverlay.on( 'click', function() {
1072			$imageOverlay.remove();
1073
1074			if ( $video.length ) {
1075				$video[ 0 ].play();
1076
1077				return;
1078			}
1079
1080
1081			var newSourceUrl = $videoFrame[0].src;
1082			// Remove old autoplay if exists
1083			newSourceUrl = newSourceUrl.replace( 'autoplay=0', 'autoplay=1' );
1084			$videoFrame[0].src = newSourceUrl;
1085		} );
1086	}
1087
1088	if ( ! $videoModalBtn.length ) {
1089		return;
1090	}
1091
1092
1093	$videoModalBtn.on( 'click', function() {
1094
1095		if ( $video.length ) {
1096			$video[ 0 ].play();
1097
1098			return;
1099		}
1100
1101
1102		var newSourceUrl = $videoFrame[0].src;
1103		// Remove old autoplay if exists
1104		newSourceUrl = newSourceUrl.replace( 'autoplay=0', 'autoplay=1' );
1105		$videoFrame[0].src = newSourceUrl;
1106	} );
1107
1108
1109	$videoModal.on('hide.bs.modal', function () {
1110
1111		if ( $video.length ) {
1112			$video[ 0 ].pause();
1113
1114			return;
1115		}
1116
1117		var newSourceUrl = $videoFrame[0].src;
1118		// Remove old autoplay if exists
1119		newSourceUrl = newSourceUrl.replace( 'autoplay=1', 'autoplay=0' );
1120		$videoFrame[0].src = newSourceUrl;
1121	});
1122
1123
1124};
1125
1126},{}],22:[function(require,module,exports){
1127var Utils;
1128
1129Utils = function( $ ) {
1130	var self = this;
1131	var isYTInserted = false;
1132
1133	this.onYoutubeApiReady = function( callback ) {
1134
1135		if ( ! isYTInserted ) {
1136			insertYTApi();
1137		}
1138
1139		if ( window.YT && YT.loaded ) {
1140			callback( YT );
1141		} else {
1142			// If not ready check again by timeout..
1143			setTimeout( function() {
1144				self.onYoutubeApiReady( callback );
1145			}, 350 );
1146		}
1147	};
1148
1149
1150
1151	var insertYTApi = function() {
1152		isYTInserted = true;
1153
1154		$( 'script:first' ).before(  $( '<script>', { src: 'https://www.youtube.com/iframe_api' } ) );
1155	};
1156};
1157
1158module.exports = Utils;
1159
1160},{}]},{},[2])
1161//# sourceMappingURL=frontend.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.