PageSourceSearch

https://www.farmagranada.com/modules/iqitelementor/views/js/frontend.js

js farmagranada.com collected 2026-09-26 14:21:02 UTC 34,933 bytes, 1,234 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        initTokenConnection();
337    };
338
339    const initTokenConnection = function() {
340
341        if (elementorFrontendConfig.instagramToken == ''){
342            return;
343        }
344
345        var tagsToReplace = {
346            '&': '&amp;',
347            '<': '&lt;',
348            '"': '&quot;',
349            '': '&quot;',
350            '>': '&gt;'
351        };
352
353        function replaceTag(tag) {
354            return tagsToReplace[tag] || tag;
355        }
356
357        function safe_tags_replace(str) {
358            return str.replace(/[&<>"']/g, replaceTag);
359        }
360
361
362        let html = "<div class='swiper-slide il-item "+ options.class + "'><div class='il-item-inner'>";
363        html += '<a href="{{link}}" class="instagram-{{type}}" rel="noopener" target="_blank" title="{{caption}}">';
364        html += '<img loading="lazy" src="{{image}}" alt="{{caption}}" class="il-photo__img" width="" height="" />';
365        html += '</a>';
366        html += "</div></div>";
367
368        const optionsPlugin = {
369            'target': $instagramWrapper[0],
370            'accessToken': elementorFrontendConfig.instagramToken,
371            'template': html,
372            /*
373             'transform': function(item) {
374                item.model.image  = item.link + 'media/?size=' + options.image_size_token;
375                return item;
376            },
377             */
378            'limit': parseInt(options.limit_token),
379            'success': function(response) {
380                response.data.forEach(function(i){
381                    var cleanCaption = safe_tags_replace(i.caption);
382                    i.caption = cleanCaption
383                });
384            },
385            'after': function(){
386                if ( ! $carousel.length ) {
387                    return;
388                }
389                initSwiper();
390            }
391        };
392
393        const feed = new Instafeed(optionsPlugin);
394        feed.run();
395
396    };
397
398    const initSwiper = function() {
399        const savedOptions = $carousel.data( 'slider_options' ),
400            swiperOptions = {
401                touchEventsTarget: 'container',
402                loop: savedOptions.loop,
403                watchOverflow: true,
404                watchSlidesProgress: true,
405                watchSlidesVisibility: true,
406                slidesPerView: savedOptions.slidesToShowMobile,
407                slidesPerGroup: savedOptions.slidesToShowMobile,
408                breakpoints: {
409                    768: {
410                        slidesPerView: savedOptions.slidesToShowTablet,
411                        slidesPerGroup: savedOptions.slidesToShowTablet,
412                    },
413                    992: {
414                        slidesPerView:  savedOptions.slidesToShow,
415                        slidesPerGroup: savedOptions.slidesToShow,
416                    }
417                }
418            };
419
420        if(savedOptions.autoplay){
421            swiperOptions.autoplay = {
422                delay: savedOptions.autoplaySpeed,
423                disableOnInteraction: savedOptions.disableOnInteraction,
424            };
425        }
426        if(savedOptions.dots){
427            swiperOptions.pagination = {
428                el: '.swiper-pagination',
429                clickable: true,
430            };
431        }
432        if(savedOptions.arrows){
433            swiperOptions.navigation = {
434                nextEl: $self.find('.elementor-swiper-button-next').first()[0],
435                prevEl: $self.find('.elementor-swiper-button-prev').first()[0],
436            };
437        }
438
439        var swiperInstance = new Swiper($carousel[0], swiperOptions);
440
441        if(savedOptions.autoplay && savedOptions.disableOnInteraction){
442            $carousel.mouseenter(function() {
443                swiperInstance.autoplay.stop();
444            });
445            $carousel.mouseleave(function() {
446                swiperInstance.autoplay.start();
447            });
448        }
449    };
450
451    init();
452
453};
454
455},{}],9:[function(require,module,exports){
456module.exports = function( $ ) {
457
458    var $lottiePlayer = $( this ).find( '.lottie-animation' );
459    var offset =  $lottiePlayer.data('offset') / 100;
460    var container =  null;
461
462    if ($lottiePlayer.data('container') == 'body'){
463        container = 'body';
464    }
465
466    if (elementorFrontendConfig.isEditMode) {
467        if($lottiePlayer.data('play') == 'scroll'){
468            window.frames[0].frameElement.contentWindow.lottieInteractivyBackofficeRun(offset, $lottiePlayer[0], container);
469        }
470    } else{
471        if($lottiePlayer.data('play') == 'scroll'){
472        document.addEventListener("lottieLoaded", function(e) {
473
474            LottieInteractivity.create({
475                mode:'scroll',
476                player: $lottiePlayer[0],
477                container: container,
478                actions: [
479                    {
480                        visibility:[offset,1],
481                        type: 'seek',
482                        frames: [0, '100%']
483                    }
484                ]
485            });
486
487        });
488        }
489    }
490};
491
492
493
494
495},{}],10:[function(require,module,exports){
496module.exports = function( $ ) {
497    var $carousel = $( this ).find( '.elementor-blog-carousel' );
498    if ( ! $carousel.length ) {
499        return;
500    }
501
502    var savedOptions = $carousel.data('slider_options'),
503        swiperOptions = {
504            touchEventsTarget: 'container',
505            watchOverflow: true,
506            watchSlidesProgress: true,
507            watchSlidesVisibility: true,
508            lazy : {
509                loadPrevNext: true,
510                checkInView: true,
511            },
512            slidesPerView: savedOptions.slidesToShowMobile,
513            slidesPerGroup: savedOptions.slidesToShowMobile,
514            breakpoints: {
515                768: {
516                    slidesPerView: savedOptions.slidesToShowTablet,
517                    slidesPerGroup: savedOptions.slidesToShowTablet,
518                },
519                992: {
520                    slidesPerView:  savedOptions.slidesToShow,
521                    slidesPerGroup: savedOptions.slidesToShow,
522                }
523            }
524        };
525
526    if(savedOptions.autoplay){
527        swiperOptions.autoplay = {
528            delay: savedOptions.autoplaySpeed,
529            disableOnInteraction: savedOptions.disableOnInteraction,
530        };
531    }
532    if(savedOptions.dots){
533        swiperOptions.pagination = {
534            el: '.swiper-pagination',
535            clickable: true,
536        };
537    }
538    if(savedOptions.arrows){
539        swiperOptions.navigation = {
540            nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
541            prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
542        };
543    }
544
545    var swiperInstance = new Swiper($carousel[0], swiperOptions);
546
547    if(savedOptions.autoplay && savedOptions.disableOnInteraction){
548        $carousel.mouseenter(function() {
549            swiperInstance.autoplay.stop();
550        });
551        $carousel.mouseleave(function() {
552            swiperInstance.autoplay.start();
553        });
554    }
555};
556
557},{}],11:[function(require,module,exports){
558module.exports = function ($) {
559    var $carousel = $(this).find('.elementor-brands-carousel');
560    if (!$carousel.length) {
561        return;
562    }
563
564    var savedOptions = $carousel.data('slider_options'),
565        swiperOptions = {
566            touchEventsTarget: 'container',
567            watchOverflow: true,
568            watchSlidesProgress: true,
569            watchSlidesVisibility: true,
570            lazy : {
571                loadPrevNext: true,
572                checkInView: true,
573            },
574            slidesPerView: savedOptions.slidesToShowMobile,
575            slidesPerGroup: savedOptions.slidesToShowMobile,
576            slidesPerColumn: savedOptions.itemsPerColumn,
577
578            breakpoints: {
579                768: {
580                    slidesPerView: savedOptions.slidesToShowTablet,
581                    slidesPerGroup: savedOptions.slidesToShowTablet,
582                    slidesPerColumn: savedOptions.itemsPerColumn,
583                },
584                992: {
585                    slidesPerView:  savedOptions.slidesToShow,
586                    slidesPerGroup: savedOptions.slidesToShow,
587                    slidesPerColumn: savedOptions.itemsPerColumn,
588                }
589            }
590        };
591
592    if(savedOptions.autoplay){
593        swiperOptions.autoplay = {
594            delay: 4500
595        };
596    }
597    if(savedOptions.itemsPerColumn > 1){
598        swiperOptions.slidesPerColumnFill = 'row';
599    }
600    if(savedOptions.dots){
601        swiperOptions.pagination = {
602            el: '.swiper-pagination',
603            clickable: true,
604        };
605    }
606    if(savedOptions.arrows){
607        swiperOptions.navigation = {
608            nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
609            prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
610        };
611    }
612
613    var swiperInstance = new Swiper($carousel[0], swiperOptions);
614
615    if(savedOptions.autoplay && savedOptions.disableOnInteraction){
616        $carousel.mouseenter(function() {
617            swiperInstance.autoplay.stop();
618        });
619        $carousel.mouseleave(function() {
620            swiperInstance.autoplay.start();
621        });
622    }
623};
624
625},{}],12:[function(require,module,exports){
626module.exports = function ($) {
627    var $this = $(this);
628    var $contactFormWrapper = $this.find('.elementor-contactform-wrapper');
629
630    if (!$contactFormWrapper.length) {
631        return;
632    }
633
634    $.ajax({
635        url: elementorFrontendConfig.ajax_csfr_token_url,
636        processData: false,
637        contentType: false,
638        type: 'POST',
639        success: function(resp){
640            $contactFormWrapper.find('.js-csfr-token').replaceWith($(resp.preview));
641        }
642    });
643
644    $contactFormWrapper.on("submit", ".js-elementor-contact-form", function (e) {
645        e.preventDefault();
646        var formData = new FormData($(this)[0]);
647        $.ajax({
648            url: $(this).attr('action'),
649            data: formData,
650            processData: false,
651            contentType: false,
652            type: 'POST',
653            success: function(resp){
654                $contactFormWrapper.find('.js-elementor-contact-norifcation-wrapper').replaceWith($(resp.preview).find('.js-elementor-contact-norifcation-wrapper'));
655            }
656        });
657    });
658};
659
660},{}],13:[function(require,module,exports){
661module.exports = function ($) {
662    var $carousel = $(this).find('.elementor-products-carousel');
663    if (elementorFrontendConfig.isEditMode) {
664        $(this).find('img[data-src]').each(function() {
665            $(this).attr('src', $(this).data('src'));
666        });
667    }
668    if (!$carousel.length) {
669        return;
670    }
671
672    var savedOptions = $carousel.data('slider_options'),
673        swiperOptions = {
674            touchEventsTarget: 'container',
675            watchOverflow: true,
676            watchSlidesProgress: true,
677            watchSlidesVisibility: true,
678            lazy : {
679                checkInView: true,
680                loadedClass: 'loaded'
681            },
682            slidesPerView: savedOptions.slidesToShowMobile,
683            slidesPerGroup: savedOptions.slidesToShowMobile,
684            slidesPerColumn: savedOptions.itemsPerColumn,
685            breakpoints: {
686                768: {
687                    slidesPerView: savedOptions.slidesToShowTablet,
688                    slidesPerGroup: savedOptions.slidesToShowTablet,
689                    slidesPerColumn: savedOptions.itemsPerColumn,
690                },
691                992: {
692                    slidesPerView:  savedOptions.slidesToShow,
693                    slidesPerGroup: savedOptions.slidesToShow,
694                    slidesPerColumn: savedOptions.itemsPer
694Column,
695                }
696            }
697        };
698
699    if(savedOptions.autoplay){
700        swiperOptions.autoplay = {
701            delay: 4500,
702            disableOnInteraction: true,
703        };
704    }
705    if(savedOptions.itemsPerColumn > 1){
706        swiperOptions.slidesPerColumnFill = 'row';
707    }
708    if(savedOptions.dots){
709        swiperOptions.pagination = {
710            el: '.swiper-pagination',
711            clickable: true,
712        };
713    }
714    if(savedOptions.arrows){
715        swiperOptions.navigation = {
716            nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
717            prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
718        };
719    }
720
721    var swiperInstance = new Swiper($carousel[0], swiperOptions);
722
723    if(savedOptions.autoplay){
724        $carousel.mouseenter(function() {
725            swiperInstance.autoplay.stop();
726        });
727        $carousel.mouseleave(function() {
728            swiperInstance.autoplay.start();
729        });
730    }
731
732};
733
734},{}],14:[function(require,module,exports){
735module.exports = function ($) {
736    var $carousels = $(this).find('.elementor-products-carousel');
737    if (elementorFrontendConfig.isEditMode) {
738        $(this).find('img[data-src]').each(function() {
739            $(this).attr('src', $(this).data('src'));
740        });
741    }
742    if (!$carousels.length) {
743        return;
744    }
745
746
747
748    $carousels.each(function() {
749        let $carousel = $(this);
750
751        var savedOptions = $carousel.data('slider_options'),
752            swiperOptions = {
753                touchEventsTarget: 'container',
754                watchOverflow: true,
755                watchSlidesProgress: true,
756                watchSlidesVisibility: true,
757                lazy : {
758                    checkInView: true,
759                    loadedClass: 'loaded'
760                },
761                slidesPerView: savedOptions.slidesToShowMobile,
762                slidesPerGroup: savedOptions.slidesToShowMobile,
763                slidesPerColumn: savedOptions.itemsPerColumn,
764                breakpoints: {
765                    768: {
766                        slidesPerView: savedOptions.slidesToShowTablet,
767                        slidesPerGroup: savedOptions.slidesToShowTablet,
768                        slidesPerColumn: savedOptions.itemsPerColumn,
769                    },
770                    992: {
771                        slidesPerView:  savedOptions.slidesToShow,
772                        slidesPerGroup: savedOptions.slidesToShow,
773                        slidesPerColumn: savedOptions.itemsPerColumn,
774                    }
775                }
776            };
777
778        if(savedOptions.autoplay){
779            swiperOptions.autoplay = {
780                delay: 4500,
781                disableOnInteraction: true,
782            };
783        }
784        if(savedOptions.itemsPerColumn > 1){
785            swiperOptions.slidesPerColumnFill = 'row';
786        }
787        if(savedOptions.dots){
788            swiperOptions.pagination = {
789                el: '.swiper-pagination',
790                clickable: true,
791            };
792        }
793        if(savedOptions.arrows){
794            swiperOptions.navigation = {
795                nextEl: $carousel.parent().find('.elementor-swiper-button-next').first()[0],
796                prevEl: $carousel.parent().find('.elementor-swiper-button-prev').first()[0],
797            };
798        }
799
800        var swiperInstance = new Swiper($carousel[0], swiperOptions);
801
802        if(savedOptions.autoplay){
803            $carousel.mouseenter(function() {
804                swiperInstance.autoplay.stop();
805            });
806            $carousel.mouseleave(function() {
807                swiperInstance.autoplay.start();
808            });
809        }
810
811    });
812
813
814
815
816
817
818};
819
820},{}],15:[function(require,module,exports){
821module.exports = function( $ ) {
822    var $searchWidget = $( this ).find( '.search-widget-autocomplete' );
823    if ( ! $searchWidget.length ) {
824        return;
825    }
826
827    if (elementorFrontendConfig.isEditMode) {
828        return;
829    }
830    
831    let $searchBox = $searchWidget.find('input[type=text]');
832    let searchURL = $searchWidget.attr('data-search-controller-url');
833    var initAutocomplete = prestashop.blocksearch.initAutocomplete || function ($searchWidget, $searchBox, searchURL) {};
834
835    initAutocomplete($searchWidget, $searchBox, searchURL);
836
837};
838
839},{}],16:[function(require,module,exports){
840module.exports = function( $ ) {
841	var $progressbar = $( this ).find( '.elementor-progress-bar' );
842
843	$progressbar.waypoint( function() {
844		$progressbar.css( 'width', $progressbar.data( 'max' ) + '%' )
845	}, { offset: '90%' } );
846};
847
848},{}],17:[function(require,module,exports){
849var BackgroundVideo = function ($, $backgroundVideoContainer) {
850	var player,
851		elements = {},
852		isYTVideo = false;
853
854	var calcVideosSize = function () {
855		var containerWidth = $backgroundVideoContainer.outerWidth(),
856			containerHeight = $backgroundVideoContainer.outerHeight(),
857			aspectRatioSetting = '16:9', //TEMP
858			aspectRatioArray = aspectRatioSetting.split(':'),
859			aspectRatio = aspectRatioArray[0] / aspectRatioArray[1],
860			ratioWidth = containerWidth / aspectRatio,
861			ratioHeight = containerHeight * aspectRatio,
862			isWidthFixed = containerWidth / containerHeight > aspectRatio;
863
864		return {
865			width: isWidthFixed ? containerWidth : ratioHeight,
866			height: isWidthFixed ? ratioWidth : containerHeight
867		};
868	};
869
870	var changeVideoSize = function () {
871		var $video = isYTVideo ? $(player.getIframe()) : elements.$backgroundVideo,
872			size = calcVideosSize();
873
874		$video.width(size.width).height(size.height);
875	};
876
877	var prepareYTVideo = function (YT, videoID) {
878		player = new YT.Player(elements.$backgroundVideo[0], {
879			videoId: videoID,
880			events: {
881				onReady: function () {
882					player.mute();
883
884					changeVideoSize();
885
886					player.playVideo();
887				},
888				onStateChange: function (event) {
889					if (event.data === YT.PlayerState.ENDED) {
890						player.seekTo(0);
891					}
892				}
893			},
894			playerVars: {
895				controls: 0,
896				autoplay: 1,
897				mute: 1,
898				showinfo: 0
899			}
900		});
901
902		$(elementorFrontend.getScopeWindow()).on('resize', changeVideoSize);
903	};
904
905	var initElements = function () {
906		elements.$backgroundVideo = $backgroundVideoContainer.children('.elementor-background-video');
907	};
908
909	var run = function () {
910		var videoID = elements.$backgroundVideo.data('video-id');
911
912		if (videoID) {
913			isYTVideo = true;
914
915			elementorFrontend.utils.onYoutubeApiReady(function (YT) {
916				setTimeout(function () {
917					prepareYTVideo(YT, videoID);
918				}, 1);
919			});
920		} else {
921			elements.$backgroundVideo.one('canplay', changeVideoSize);
922		}
923	};
924
925	var init = function () {
926		initElements();
927		run();
928	};
929
930	init();
931};
932
933
934
935
936
937var SliderSection = function ($, $sliderSectionContainer) {
938
939	var run = function () {
940
941
942		var savedOptions = $sliderSectionContainer.data('slider_options'),
943			swiperOptions = {
944				touchEventsTarget: 'container',
945				speed: 500,
946				slidesPerView: 1,
947				slidesPerGroup: 1,
948			};
949
950		if (savedOptions.autoplay) {
951			swiperOptions.autoplay = {
952				delay: savedOptions.autoplaySpeed,
953				disableOnInteraction: savedOptions.disableOnInteraction,
954			};
955		}
956
957		if (savedOptions.fade) {
958			swiperOptions.effect = 'fade';
959			swiperOptions.fadeEffect = {
960				crossFade: true
961			};
962		}
963		if (savedOptions.dots) {
964			swiperOptions.pagination = {
965				el: '.swiper-pagination',
966				clickable: true,
967			};
968		}
969		if (savedOptions.arrows) {
970			swiperOptions.navigation = {
971				nextEl: '.swiper-button-next',
972				prevEl: '.swiper-button-prev',
973			};
974		}
975
976		var swiperInstance = new Swiper($sliderSectionContainer[0], swiperOptions);
977
978		if (savedOptions.autoplay && savedOptions.disableOnInteraction) {
979			$sliderSectionContainer.mouseenter(function () {
980				swiperInstance.autoplay.stop();
981			});
982			$sliderSectionContainer.mouseleave(function () {
983				swiperInstance.autoplay.start();
984			});
985		}
986
987	};
988
989	var init = function () {
990		run();
991	};
992
993	init();
994};
995
996
997module.exports = function ($) {
998	//new StretchedSection( $, this );
999
1000	var $backgroundVideoContainer = this.find('.elementor-background-video-container');
1001
1002	if ($backgroundVideoContainer) {
1003		new BackgroundVideo($, $backgroundVideoContainer);
1004	}
1005
1006
1007	var $sliderSectionContainer = this.find('.elementor-swiper-section');
1008
1009	if ($sliderSectionContainer.length) {
1010		new SliderSection($, $sliderSectionContainer);
1011	}
1012};
1013
1014},{}],18:[function(require,module,exports){
1015module.exports = function( $ ) {
1016	var $this = $( this ),
1017		defaultActiveTab = $this.find( '.elementor-tabs' ).data( 'active-tab' ),
1018		$tabsTitles = $this.find( '.elementor-tab-title' ),
1019		$tabs = $this.find( '.elementor-tab-content' ),
1020		$active,
1021		$content;
1022
1023	if ( ! defaultActiveTab ) {
1024		defaultActiveTab = 1;
1025	}
1026
1027	var activateTab = function( tabIndex ) {
1028		if ( $active ) {
1029			$active.removeClass( 'active' );
1030
1031			$content.removeClass( 'active' );
1032		}
1033
1034		$active = $tabsTitles.filter( '[data-tab="' + tabIndex + '"]' );
1035		$active.addClass( 'active' );
1036		$content = $tabs.filter( '[data-tab="' + tabIndex + '"]' );
1037		$content.addClass( 'active' );
1038	};
1039
1040	activateTab( defaultActiveTab );
1041
1042	$tabsTitles.on( 'click', function() {
1043		activateTab( this.dataset.tab );
1044	} );
1045};
1046
1047},{}],19:[function(require,module,exports){
1048module.exports = function( $ ) {
1049	var $carousel = $( this ).find( '.elementor-testimonial-carousel' );
1050	if ( ! $carousel.length ) {
1051		return;
1052	}
1053	var savedOptions = $carousel.data( 'slider_options' ),
1054		tabletSlides = 1 === savedOptions.slidesToShow ? 1 : 2,
1055		swiperOptions = {
1056			touchEventsTarget: 'container',
1057			loop: savedOptions.loop,
1058			speed: savedOptions.speed,
1059			watchOverflow: true,
1060			watchSlidesProgress: true,
1061			watchSlidesVisibility: true,
1062			slidesPerView: 1,
1063			slidesPerGroup: 1,
1064			breakpoints: {
1065				768: {
1066					slidesPerView: tabletSlides,
1067					slidesPerGroup: tabletSlides,
1068				},
1069				992: {
1070					slidesPerView:  savedOptions.slidesToShow,
1071					slidesPerGroup: savedOptions.slidesToShow,
1072				}
1073			}
1074		};
1075
1076	if(savedOptions.autoplay){
1077		swiperOptions.autoplay = {
1078			delay: savedOptions.autoplaySpeed,
1079			disableOnInteraction: savedOptions.disableOnInteraction,
1080		};
1081	}
1082	if(savedOptions.fade){
1083		swiperOptions.effect = 'fade';
1084		swiperOptions.fadeEffect = {
1085			crossFade: true
1086		};
1087	}
1088	if(savedOptions.dots){
1089		swiperOptions.pagination = {
1090			el: '.swiper-pagination',
1091			clickable: true,
1092		};
1093	}
1094	if(savedOptions.arrows){
1095		swiperOptions.navigation = {
1096			nextEl: $( this ).find('.elementor-swiper-button-next').first()[0],
1097			prevEl: $( this ).find('.elementor-swiper-button-prev').first()[0],
1098		};
1099	}
1100
1101	var swiperInstance = new Swiper($carousel[0], swiperOptions);
1102
1103	if(savedOptions.autoplay && savedOptions.disableOnInteraction){
1104		$carousel.mouseenter(function() {
1105			swiperInstance.autoplay.stop();
1106		});
1107		$carousel.mouseleave(function() {
1108			swiperInstance.autoplay.start();
1109		});
1110	}
1111};
1112
1113},{}],20:[function(require,module,exports){
1114module.exports = function( $ ) {
1115	var $toggleTitles = $( this ).find( '.elementor-toggle-title' );
1116
1117	$toggleTitles.on( 'click', function() {
1118		var $active = $( this ),
1119			$content = $active.next();
1120
1121		if ( $active.hasClass( 'active' ) ) {
1122			$active.removeClass( 'active' );
1123			$content.slideUp();
1124		} else {
1125			$active.addClass( 'active' );
1126			$content.slideDown();
1127		}
1128	} );
1129};
1130
1131},{}],21:[function(require,module,exports){
1132module.exports = function( $ ) {
1133	var $this = $( this ),
1134		$imageOverlay = $this.find( '.elementor-custom-embed-image-overlay' ),
1135		$videoModalBtn = $this.find( '.elementor-video-open-modal' ).first(),
1136		$videoModal = $this.find( '.elementor-video-modal' ).first(),
1137		$video =  $this.find( '.elementor-video' ).first(),
1138		$videoFrame = $this.find( 'iframe' );
1139
1140
1141
1142	if ( $imageOverlay.length ) {
1143
1144		$imageOverlay.on( 'click', function() {
1145			$imageOverlay.remove();
1146
1147			if ( $video.length ) {
1148				$video[ 0 ].play();
1149
1150				return;
1151			}
1152
1153
1154			var newSourceUrl = $videoFrame[0].src;
1155			// Remove old autoplay if exists
1156			newSourceUrl = newSourceUrl.replace( 'autoplay=0', 'autoplay=1' );
1157			$videoFrame[0].src = newSourceUrl;
1158		} );
1159	}
1160
1161	if ( ! $videoModalBtn.length ) {
1162		return;
1163	}
1164
1165
1166	$videoModalBtn.on( 'click', function() {
1167
1168		if ( $video.length ) {
1169			$video[ 0 ].play();
1170
1171			return;
1172		}
1173
1174
1175		var newSourceUrl = $videoFrame[0].src;
1176		// Remove old autoplay if exists
1177		newSourceUrl = newSourceUrl.replace( 'autoplay=0', 'autoplay=1' );
1178		$videoFrame[0].src = newSourceUrl;
1179	} );
1180
1181
1182	$videoModal.on('hide.bs.modal', function () {
1183
1184		if ( $video.length ) {
1185			$video[ 0 ].pause();
1186
1187			return;
1188		}
1189
1190		var newSourceUrl = $videoFrame[0].src;
1191		// Remove old autoplay if exists
1192		newSourceUrl = newSourceUrl.replace( 'autoplay=1', 'autoplay=0' );
1193		$videoFrame[0].src = newSourceUrl;
1194	});
1195
1196
1197};
1198
1199},{}],22:[function(require,module,exports){
1200var Utils;
1201
1202Utils = function( $ ) {
1203	var self = this;
1204	var isYTInserted = false;
1205
1206	this.onYoutubeApiReady = function( callback ) {
1207
1208		if ( ! isYTInserted ) {
1209			insertYTApi();
1210		}
1211
1212		if ( window.YT && YT.loaded ) {
1213			callback( YT );
1214		} else {
1215			// If not ready check again by timeout..
1216			setTimeout( function() {
1217				self.onYoutubeApiReady( callback );
1218			}, 350 );
1219		}
1220	};
1221
1222
1223
1224	var insertYTApi = function() {
1225		isYTInserted = true;
1226
1227		$( 'script:first' ).before(  $( '<script>', { src: 'https://www.youtube.com/iframe_api' } ) );
1228	};
1229};
1230
1231module.exports = Utils;
1232
1233},{}]},{},[2])
1234//# 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.