PageSourceSearch

https://www.pandin.com.br/wp-content/plugins/addon-elements-for-el…/build/index.js?ver=1.14.5

js pandin.com.br collected 2026-09-24 13:45:00 UTC 229,765 bytes, 5,438 lines download raw bytes

1/******/ (() => { // webpackBootstrap
2/******/ 	var __webpack_modules__ = ({
3
4/***/ 734
5() {
6
7(function ($) {
8	const EAEAddToCalender = function ($scope) {
9		const eId = $scope.attr('data-id');
10		const element = document.querySelector('.elementor-element-' + eId);
11        var isLottiePanle = element.querySelector('.eae-lottie-animation');
12
13		if (isLottiePanle != null) {
14			let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
15			let eae_animation = lottie.loadAnimation({
16				container: isLottiePanle,
17				path: lottie_data.url,
18				renderer: "svg",
19				loop: lottie_data.loop,
20			});
21
22			if (lottie_data.reverse == true) {
23				eae_animation.setDirection(-1);
24			}
25		}
26	}
27	
28
29	$(window).on('elementor/frontend/init', function () {
30		elementorFrontend.hooks.addAction(
31			"frontend/element_ready/eae-add-to-calendar.default",
32			EAEAddToCalender
33		);
34	});
35})(jQuery);
36
37/***/ },
38
39/***/ 211
40() {
41
42(function ($) {
43	const EAEAdvanceHeading = function ($scope) {
44		const eId = $scope.attr('data-id');
45		const element = document.querySelector('.elementor-element-' + eId);
46        var uniLottie = element.querySelector('.eae-ah-icon.eae-lottie-animation');
47        var titleLottie = element.querySelector('.eae-ah-title-icon.eae-lottie-animation');
48        var separatorLottie =  element.querySelector('.eae-sep-icon.eae-lottie-animation');
49
50
51		if (uniLottie != null) {
52			let lottie_data = JSON.parse(uniLottie.getAttribute('data-lottie-settings'));
53			let eae_animation = lottie.loadAnimation({
54				container: uniLottie,
55				path: lottie_data.url,
56				renderer: "svg",
57				loop: lottie_data.loop,
58			});
59
60			if (lottie_data.reverse == true) {
61				eae_animation.setDirection(-1);
62			}
63		}
64		if (titleLottie != null) {
65			let lottie_data = JSON.parse(titleLottie.getAttribute('data-lottie-settings'));
66			let eae_animation = lottie.loadAnimation({
67				container: titleLottie,
68				path: lottie_data.url,
69				renderer: "svg",
70				loop: lottie_data.loop,
71			});
72
73			if (lottie_data.reverse == true) {
74				eae_animation.setDirection(-1);
75			}
76		}
77		if (separatorLottie != null) {
78			let lottie_data = JSON.parse(separatorLottie.getAttribute('data-lottie-settings'));
79			let eae_animation = lottie.loadAnimation({
80				container: separatorLottie,
81				path: lottie_data.url,
82				renderer: "svg",
83				loop: lottie_data.loop,
84			});
85
86			if (lottie_data.reverse == true) {
87				eae_animation.setDirection(-1);
88			}
89		}
90	}
91
92	$(window).on('elementor/frontend/init', function () {
93		elementorFrontend.hooks.addAction(
94			"frontend/element_ready/eae-advanced-heading.default",
95			EAEAdvanceHeading
96		);
97	});
98})(jQuery);
99
100/***/ },
101
102/***/ 327
103() {
104
105(function ($) {
106    
107    const EAEAdvancedList = function ($scope){
108        const eId = $scope.attr('data-id');
109        const element = document.querySelector('.elementor-element-' + eId);
110        const wrapper =element.querySelector('.eae-list-wrapper');
111        
112        let flexList = wrapper.querySelectorAll('.eae-list-item');
113        
114        flexList.forEach(flexList => {
115
116            isLottiePanle = flexList.querySelector('.eae-lottie');
117		    if (isLottiePanle != null) {
118                let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
119                let eae_animation = lottie.loadAnimation({
120                    container: isLottiePanle,
121                    path: lottie_data.url,
122                    renderer: "svg",
123                    loop: lottie_data.loop,
124                });
125
126                if (lottie_data.reverse == true) {
127                    eae_animation.setDirection(-1);
128                }
129            }
130        });
131    }
132
133    
134    
135    $(window).on('elementor/frontend/init', function () {
136        elementorFrontend.hooks.addAction(
137            "frontend/element_ready/eae-advanced-list.default",
138            EAEAdvancedList
139        );
140    });
141})(jQuery);
142
143/***/ },
144
145/***/ 259
146() {
147
148(function ($) {
149	const EAEAdvancedPriceTable = function ($scope){
150		const eId = $scope.attr('data-id');
151		const element = document.querySelector('.elementor-element-' + eId);
152		const wrapper = element.querySelector('.eae-price-table');
153		
154		window.addEventListener("resize", function(){
155			let resizeValue = wrapper.getAttribute('data-stacked');
156			let widnowWidth = this.window.innerWidth;
157			if(widnowWidth <= resizeValue ){
158				wrapper.classList.add('enable-stacked');
159			}else{
160				wrapper.classList.remove('enable-stacked');
161			}
162		});
163
164		get_switch_raido_button($scope);
165 
166		get_switch_buttons($scope);
167		
168		let lottie_data = wrapper.querySelectorAll('.eae-price-table-wrapper');
169		get_lottie(lottie_data,'.eae-apt-icon.eae-lottie');
170
171		const features = wrapper.querySelectorAll('.eae-apt-features-container');
172        // get_lottie(features);
173		const features_data = wrapper.querySelectorAll('.eae-apt-features-list-item')
174
175		
176		get_lottie(features_data,'.eae-apt-feature-icon.eae-lottie');
177	}
178
179	function get_switch_raido_button($scope){
180		let wrapper = $scope.find('.eae-price-table');
181		let toggle_switch = wrapper.find(".eae-apt-switch-label");
182
183		let label_tab_1 = wrapper.find(".eae-apt-content-switch-button-text.eae-label-tab-1");
184		let label_tab_2 = wrapper.find(".eae-apt-content-switch-button-text.eae-label-tab-2");
185
186		let container_tab_1 = wrapper.find(".eae-apt-tab-1.eae-apt-tab-content-section"); 
187		let container_tab_2 = wrapper.find(".eae-apt-tab-2.eae-apt-tab-content-section"); 
188		
189		toggle_switch.on('click',function(e){
190			var check = toggle_switch.find(".eae-pt-content-toggle-switch");
191			if(check.is(":checked")){
192				label_tab_2.addClass("active-button");
193				container_tab_2.addClass("active");
194				label_tab_1.removeClass("active-button");
195				container_tab_1.removeClass("active");
196			}else{
197				label_tab_1.addClass("active-button");
198				container_tab_1.addClass("active");
199				label_tab_2.removeClass("active-button");
200				container_tab_2.removeClass("active");
201			}
202		});
203	}
204
205	function get_switch_buttons($scope){
206		var $wrapper = $scope.find(".eae-price-table");
207    	var wid = $scope.data("id");
208      	var buttons = $wrapper.find(".eae-apt-content-switch-button");
209
210       buttons.each(function (index, button) {
211			$(this).on("click", function (e) {
212				e.preventDefault();
213				let active_tab = button.getAttribute('data-active-tab');
214				// let container = $wrapper.find(".eae-apt-tab");
215				buttons.removeClass("active-button");
216				$(this).addClass("active-button");
217				let current_content_section = $wrapper.find(
218						".eae-apt-" + active_tab);
219				var content_sections =$wrapper.find(".eae-apt-tab-content-section");
220				content_sections.removeClass("active");
221				current_content_section.addClass("active");	  
222			});
223      	});
224	}
225
226	function get_lottie(flexList,cssClass){
227		flexList.forEach(flexList => {
228			isLottiePanle = flexList.querySelector(cssClass);
229		    if (isLottiePanle != null) {
230                let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
231                let eae_animation = lottie.loadAnimation({
232                    container: isLottiePanle,
233                    path: lottie_data.url,
234                    renderer: "svg",
235                    loop: lottie_data.loop,
236                });
237
238                if (lottie_data.reverse == true) {
239                    eae_animation.setDirection(-1);
240                }
241            }
242        });
243	} 
244
245    $(window).on('elementor/frontend/init', function () {
246		elementorFrontend.hooks.addAction(
247			"frontend/element_ready/eae-advanced-price-table.default",
248			EAEAdvancedPriceTable
249		);
250	});
251})(jQuery);
252
253/***/ },
254
255/***/ 948
256() {
257
258(function ($){
259    $(window).on('elementor/frontend/init', function () {
260        var ModuleHandler = elementorModules.frontend.handlers.Base,
261        AudioPlayerHandler;
262           
263        AudioPlayerHandler = ModuleHandler.extend({
264            getDefaultSettings: function getDefaultSettings() {
265                return {
266                    settings: this.getElementSettings(),
267                };
268            },
269            getDefaultElements: function getDefaultElements() {
270				
271                const eId = this.$element.data('id'); 
272                const element = document.querySelector('.elementor-element-' + eId);
273                const wrapper = element.querySelector('.eae-audio-player-wrapper');
274                let playerOut = false;
275                return{
276                    eid: eId,
277                    element: element,
278                    wrapper: wrapper, 
279                }
280			},
281            onInit: function onInit(){
282                const { settings } = this.getDefaultSettings();
283                const { wrapper } = this.getDefaultElements();
284
285                const audioPlayer = wrapper.querySelector('.eae-audio-player');
286                const playPauseBtn = wrapper.querySelector('.eae-play-pause-btn');
287                const prevBtn = wrapper.querySelector('.eae-prevBtn');
288                const nextBtn = wrapper.querySelector('.eae-nextBtn');
289                const progress = wrapper.querySelector('.eae-progress');
290                const handle = wrapper.querySelector('.eae-handle');
291                const progressWrapper = wrapper.querySelector('.eae-progress-bar');
292                const playlistIcon = wrapper.querySelector('.eae-playlistIcon');
293                const playListOpenIcon = wrapper.querySelector('.eae-list-open-icon');
294                const volumeControl = wrapper.querySelector('.eae-volume-input');
295                const volumeInputWrapper = wrapper.querySelector('.eae-volume');
296                const volumeWrapper = wrapper.querySelector('.eae-volume-control');
297                const playlist = wrapper.querySelector('.eae-playlist');
298                const songTitle = wrapper.querySelector('.eae-audioTitle');
299                const songAuthor = wrapper.querySelector('.eae-audioAuthor');
300                const songImage = wrapper.querySelectorAll('.eae-album-cover');
301                const currentTimeDisplay = wrapper.querySelector('.eae-current-time');
302                const durationDisplay = wrapper.querySelector('.eae-duration');
303                const repeatBtn = wrapper.querySelector('.eae-repeatBtn');
304                const shuffleBtn = wrapper.querySelector('.eae-shuffleBtn');
305                const closeButton = wrapper.querySelector('.eae-player-sticky-close');
306                const playerLayout3 = wrapper.querySelector('.eae-player');
307                const playListItem = wrapper.querySelectorAll('.eae-playlist-item');
308                const volumeIcon = wrapper.querySelector(".eae-volume-control i");
309                const songData = playlist.getAttribute('data-audio');
310                let elementPagePosition = wrapper.getBoundingClientRect().top + window.scrollY;
311
312             
313                
314                // State management
315                let isPlaying = false;
316                let currentSongIndex = 0;
317                let isDragging = false;
318                let repeatMode = 'none'; // 'none', 'all', 'one'
319                let isShuffled = false;
320                
321                const eaeSongs = JSON.parse(songData).map((item, index) => ({
322                    index: index,
323                    audio_title: item.audio_title || 'Unknown Track',
324                    audio_author: item.audio_author || 'Unknown Artist',
325                    file: item.file || '', // Using file directly from songData
326                    duration: item.duration || 0,
327                })).filter(song => song.file); // Ensures only valid file entries remain
328             
329
330                const getAudioDuration = async (url) => {
331                    return new Promise((resolve, reject) => {
332                        const audio = new Audio(url);
333                        audio.addEventListener("loadedmetadata", () => {
334                            resolve(audio.duration);
335                        });
336                        audio.addEventListener("error", () => {
337                            reject(new Error(`Failed to load audio file: ${url}`));
338                        });
339                    });
340                };
341                
342                const totalDurations = async () => {
343                    try {
344                        const durations = await Promise.all(
345                            eaeSongs.map(async (song, index) => ({
346                                index: index,
347                                duration: await getAudioDuration(song.file)
348                            }))
349                        );
350                        return durations;
351                    } catch (error) {
352                        console.error("Error calculating total durations:", error);
353                        return [];
354                    }
355                };
356                
357                totalDurations().then(durations => {
358                    if (durations.length) {
359                        for (let i = 0; i < durations.length; i++) {
360                            if (playListItem[i]) { 
361                                playListItem[i].querySelector('.eae-list-duration').textContent = formatTime(durations[i].duration);
362                            }
363                        }
364                    }
365                });
366
367
368                wrapper.querySelector('.eae-volume-input')?.addEventListener("input", function() {
369                    var value = (this.value-this.min)/(this.max-this.min)*100
370                    if (settings.slider_color) {
371                        this.style.background = `linear-gradient(to right, ${settings.slider_color} 0%, ${settings.slider_color} ${value}%, ${settings.range_color ? settings.range_color : 'white'} ${value}%, ${settings.range_color ? settings.range_color : 'white'} 100%)`;
372                    } else {
373                        this.style.background = `linear-gradient(to right, #666666 0%, #666666 ${value}%, #fff ${value}%, white 100%)`;
374                    }
375                });
376
377               
378                // Utility functions
379                function updatePlayState(playing) {
380                    if (!playPauseBtn) return;
381                    isPlaying = playing;
382                    playPauseBtn.classList.replace(playing ? 'fa-play' : 'fa-pause', playing ? 'fa-pause' : 'fa-play');
383                }
384               
385
386                function displayVolumeControl(e) {
387
388                    const volumeInput = volumeWrapper.querySelector(".eae-volume-input");
389                    
390
391                    if (volumeWrapper && settings.eae_audio_player_layout != 'layout-3') {
392                        volumeInputWrapper.style.display = volumeInputWrapper.style.display === 'flex' ? 'none' : 'flex';
393                    }
394                 
395                    if (volumeWrapper && settings.eae_audio_player_layout == 'layout-3' && e.target.matches("i")) {
396                        if (volumeIcon.classList.contains("fa-volume-mute")) {
397                            volumeIcon.classList.remove("fa-volume-mute");
398                            volumeIcon.classList.add("fa-volume-up");
399                            audioPlayer.muted = false;
400                        } else {
401                            volumeIcon.classList.remove("fa-volume-up", "fa-volume-down");
402                            volumeIcon.classList.add("fa-volume-mute");
403                            audioPlayer.muted = true;
404                        }
405                    }
406
407
408                    if (volumeInput && volumeIcon) {
409                        volumeInput.addEventListener("input", function () {
410                            if (this.value == 0) {
411                                volumeIcon.classList.remove("fa-volume-up", "fa-volume-down");
412                                volumeIcon.classList.add("fa-volume-mute");
413                            } else if (this.value > 0 && this.value < 0.5) {
414                                volumeIcon.classList.remove("fa-volume-up", "fa-volume-mute");
415                                volumeIcon.classList.add("fa-volume-down");
416                            } else {
417                                volumeIcon.classList.remove("fa-volume-down", "fa-volume-mute");
418                                volumeIcon.classList.add("fa-volume-up");
419                            }
420                        });
421                    }
422                }
423                
424                let currentLoadAbortController = null;
425
426                function loadSong(index) {
427                    return new Promise((resolve, reject) => {
428                       
429                        if (!audioPlayer || !eaeSongs.length || index < 0 || index >= eaeSongs.length) {
430                            reject(new Error('Invalid song index'));
431                            return;
432                        }
433
434                        // Abort any previous load
435                        if (currentLoadAbortController) {
436                            currentLoadAbortController.abort();
437                        }
438                        currentLoadAbortController = new AbortController();
439
440                        // Pause and reset current audio
441                        audioPlayer.pause();
442                        audioPlayer.currentTime = 0;
443                      
444                        const song = eaeSongs[index];
445                        currentSongIndex = index;
446
447                        // Update UI elements
448                        if (songTitle) songTitle.textContent = song.audio_title;
449                        if (songAuthor) songAuthor.textContent = song.audio_author;
450                        if(settings.show_repeater_image === 'yes'){
451                            songImage.forEach((img) => {
452                                if(img.getAttribute('data-index') == index){
453                                    img.style.display = 'block';
454                                }else{
455                                    img.style.display = 'none';
456                                }
457                            });
458                        }
459                        highlightActiveSong(index);
460
461                        // Set new audio source
462                        audioPlayer.src = song.file;
463
464                        // Wait for the new audio to load
465                        const onCanPlay = () => {
466                            resolve();
467                            currentLoadAbortController = null;
468                        };
469                        const onError = (error) => {
470                            reject(error);
471                            currentLoadAbortController = null;
472                        };
473
474                        audioPlayer.addEventListener(
475                            'canplaythrough',
476                            onCanPlay,
477                            { signal: currentLoadAbortController.signal, once: true }
478                        );
479                        audioPlayer.addEventListener(
480                            'error',
481                            () => onError(audioPlayer.error),
482                            { signal: currentLoadAbortController.signal, once: true }
483                        );
484
485                        audioPlayer.load(); // Initiate load
486                    });
487                }
488
489                
490                function highlightActiveSong(index) {
491                    if (!playlist) return;
492                    playlist.querySelectorAll('.eae-playlist-item').forEach((item, i) => {
493                        item.classList.toggle('active', i === index);
494                    });
495                }
496                
497                function handleProgressUpdate() {
498                    if (audioPlayer && audioPlayer.duration) {
499                        const progressPercent = (audioPlayer.currentTime / audioPlayer.duration) * 100;
500                        if (progress) progress.style.width = `${progressPercent}%`;
501                        if (handle) handle.style.left = `${progressPercent - 1 }% `;
502                    }
503                }
504                
505                function seekAudio(e) {
506                    if (!progressWrapper || !audioPlayer) return;
507                    const rect = progressWrapper.getBoundingClientRect();
508                    const offsetX = e.clientX - rect.left;
509                    const newTime = (offsetX / rect.width) * audioPlayer.duration;
510                    if (!isNaN(newTime)) {
511                        audioPlayer.currentTime = newTime;
512                    }
513                }
514
515                function checkBeforePlay(){
516                    document.querySelectorAll('.eae-player-out-viewport').forEach(container => {
517                        const wrapperId = wrapper.getAttribute("eae-audio-data-id");
518                        const parentContainer = container.parentElement?.parentElement;
519
520                        if (wrapperId != parentContainer.getAttribute("data-id")) {
521                            container.style.visibility='hidden';
522                        }
523                        
524                    });
525                    document.querySelectorAll('audio').forEach(player => {
526                        if (player !== audioPlayer) {
527                            player.pause();
528                        }
529                        if(player.currentTime > 0){
530                            updatePlay()
531                        }
532                    });
533                }
534
535                function updatePlay() {
536                    document.querySelectorAll('.eae-play-pause-btn').forEach(playPauseBtn => {
537                        playPauseBtn.classList.replace('fa-pause','fa-play')
538                       
539                    });
540                }
541                
542                // Event Handlers
543                function handlePlayPause() {
544                    checkBeforePlay();
545                
546                    if (!audioPlayer.src || audioPlayer.currentTime === 0) {
547                        loadSong(currentSongIndex).then(() => {
548                            audioPlayer.play().catch(error => console.error('Audio playback failed:', error));
549                            updatePlayState(true);
550                        }).catch(error => console.error('Error loading song:', error));
551                    } else {
552                        // Toggle play/pause on existing source
553                        if (isPlaying) {
554                            audioPlayer.pause();
555                        } else {
556                            audioPlayer.play().catch(error => console.error('Audio playback failed:', error));
557                        }
558                       
559                        updatePlayState(!isPlaying);
560                    }
561                }
562                
563              
564                
565                async function handlePrev() {
566                    if (!eaeSongs.length) return;
567                    const newIndex = (currentSongIndex - 1 + eaeSongs.length) % eaeSongs.length;
568                    try {
569                        await loadSong(newIndex);
570                        await audioPlayer.play();
571                        updatePlayState(true);
572                    } catch (error) {
573                        console.error('Failed to play previous song:', error);
574                        updatePlayState(false);
575                    }
576                }
577                
578                
579                function handleVolumeChange(e) {
580                    if (audioPlayer) {
581                        audioPlayer.volume = parseFloat(e.target.value);
582                    }
583                }
584
585                function toggleRepeatMode() {
586                    const modes = ['none', 'all'];
587                    repeatMode = modes[(modes.indexOf(repeatMode) + 1) % modes.length];
588                    updateRepeatButtonUI();
589                }
590                
591                function toggleShuffle() {
592                    isShuffled = !isShuffled;
593                    updateShuffleButtonUI();
594                }
595
596                function updateRepeatButtonUI() {
597                    if (!repeatBtn) return;
598                    if (isShuffled) return;
599                    repeatBtn.classList.remove('eae-repeat-active');
600                    switch (repeatMode) {
601                        case 'all':
602                            repeatBtn.classList.add('eae-repeat-active');
603                            break;
604                        default:
605                            repeatBtn.classList.add('');
606                    }
607                }
608                
609                function updateShuffleButtonUI() {
610                    if (!shuffleBtn) return;
611                    shuffleBtn.classList.toggle('active', isShuffled);
612                    repeatBtn.classList.remove('eae-repeat-active');
613                }
614                
615                // Modified handleNext function
616                async function handleNext() {
617                    if (!eaeSongs.length) return;
618                    let newIndex;
619                    try {
620                        await loadSong(newIndex);
621                        await audioPlayer.play();
622                        updatePlayState(true);
623                    } catch (error) {
624                        console.error('Failed to play next song:', error);
625                        updatePlayState(false);
626                    }
627                }
628                async function handleNext() {
629                    if (!eaeSongs.length) return;
630                    
631                     if (isShuffled) {
632                        if (eaeSongs.length === 1) {
633                            newIndex = 0;
634                        } else {
635                            do {
636                                newIndex = Math.floor(Math.random() * eaeSongs.length);
637                            } while (newIndex === currentSongIndex);
638                        }
639                    }else{
640                        if (repeatMode == 'none') {
641                            newIndex = (currentSongIndex + 1) % eaeSongs.length;
642                        }else{
643                            newIndex = currentSongIndex ;
644                        }
645                    } 
646                    try {
647                        await loadSong(newIndex);
648                        await audioPlayer.play();
649                        updatePlayState(true);
650                    } catch (error) {
651                        console.error('Failed to play next song:', error);
652                        updatePlayState(false);
653                    }
654                }
655                
656                // Drag Handling
657                function startDragging(e) {
658                    isDragging = true;
659                    seekAudio(e);
660                }
661                
662                function stopDragging() {
663                    isDragging = false;
664                }
665
666                function updateCurrentTime() {
667
668                    if (currentTimeDisplay || durationDisplay) {
669                        const currentTime = audioPlayer.currentTime;
670                        const totalDuration = audioPlayer.duration;
671                      
672                        if (!isNaN(currentTime) && currentTimeDisplay) {
673                          currentTimeDisplay.textContent = formatTime(currentTime);
674                        }
675                        
676                        if ((!isNaN(totalDuration) && totalDuration > 0 && durationDisplay)) {
677                          durationDisplay.textContent = formatTime(totalDuration);
678                        }
679                        
680                        if (!isNaN(currentTime) && !isNaN(totalDuration) && totalDuration > 0) {
681                          const progressPercent = (currentTime / totalDuration) * 100;
682                          progress.style.width = `${progressPercent}%`;
683                          handle.style.left = `${progressPercent - 1}%`;
684                        }
685                      }
686                }
687                
688                function updateDuration() {
689                    if (durationDisplay) {
690                      durationDisplay.textContent = formatTime(audioPlayer.duration);
691                    }
692                }
693                function formatTime(seconds) {
694                    const minutes = Math.floor(seconds / 60);
695                    const remainingSeconds = Math.floor(seconds % 60);
696                    return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;
697                }
698                function closePlayer() {  
699                    wrapper.style.visibility = 'hidden';
700                    if(!audioPlayer.paused){
701                        updatePlayState(!isPlaying);
702                    }
703                    audioPlayer.pause();
704                }
705
706                const resizeObserver = new ResizeObserver((entries) => {
707                    for (let entry of entries) {
708                        if (entry.contentRect.width < 600) {
709                            wrapper.classList.add('eae-player-compact');
710                        } else {
711                            wrapper.classList.remove('eae-player-compact');
712                            wrapper.style.flexDirection = ''; 
713                        }
714                    }
715                });
716                // Event Listeners
717                playPauseBtn?.addEventListener('click', handlePlayPause);
718                nextBtn?.addEventListener('click', handleNext);
719                prevBtn?.addEventListener('click', handlePrev);
720                volumeControl?.addEventListener('input', handleVolumeChange);
721                closeButton?.addEventListener('click', closePlayer);
722                progressWrapper?.addEventListener('click', seekAudio);
723                volumeWrapper?.addEventListener('click', displayVolumeControl);
724                handle?.addEventListener('mousedown', startDragging);
725                audioPlayer?.addEventListener('timeupdate', updateCurrentTime);
726                audioPlayer?.addEventListener('durationchange', updateDuration);
727                repeatBtn?.addEventListener('click', toggleRepeatMode);
728                shuffleBtn?.addEventListener('click', toggleShuffle);
729                audioPlayer?.addEventListener('timeupdate', handleProgressUpdate);
730                audioPlayer?.addEventListener('ended', handleNext);
731                resizeObserver.observe(wrapper);
732                
733                wrapper.addEventListener('mousemove', (e) => {
734                    if (isDragging) seekAudio(e);
735                });
736                
737                wrapper.addEventListener('mouseup', stopDragging);
738
739                if(settings.always_on_list == 'yes' && ( settings.eae_audio_player_layout == 'layout-1' || settings.eae_audio_player_layout == 'layout-4')){
740                    playlistIcon.style.display ='none';
741                    playlist.style.display = 'flex';
742                }
743
744                if(settings.eae_audio_player_layout == 'layout-3'){
745                    let sidebarWidth = playlist.offsetWidth;
746                    playlist.style.left = `-${sidebarWidth + 10}px`;
747                }
748
749                playListOpenIcon?.addEventListener('click', () => {
750                    let sidebarWidth = playlist.offsetWidth;
751                    playlist.classList.remove('eae-active');
752                    playlist.style.left = "0";
753                    playlist.style.left = `-${sidebarWidth}px`;
754                    setTimeout(() => {
755                        playlistIcon.style.display = 'block';
756                    }, 300);
757                });
758                playlistIcon?.addEventListener('click', () => {
759                    if (playlist) {
760                        playlist.classList.toggle('eae-active');
761                        const isActive = playlist.classList.contains('eae-active');
762                        if (settings.eae_audio_player_layout === 'layout-3') {
763                            let sidebarWidth = playlist.offsetWidth;
764                            if (!playlist.classList.contains('eae-active')) {
765                                playlist.style.left = `-${sidebarWidth}px`;
766                            } else {
767                                playlistIcon.style.display = 'none';
768                                playlist.style.left = "0";
769                            }
770                        }else{
771                            playlist.style.display = playlist.style.display === 'flex' ? 'none' : 'flex';
772                            playlistIcon.classList.replace(isActive ? 'eicon-menu-bar' : 'eicon-editor-close', isActive ? 'eicon-editor-close' : 'eicon-menu-bar');
773                        }
774                    }
775                });
776                
777                
778                
779                playlist?.addEventListener('click', (e) => {
780                    const item = e.target.closest('.eae-playlist-item');
781                    if (item && playlist) {
782                        const items = Array.from(playlist.querySelectorAll("li")); // Select only <li> elements
783                        const index = items.indexOf(item);
784                        loadSong(index);
785                        audioPlayer?.play();
786                        updatePlayState(true);
787                    }
788                });
789                
790                
791                // Initialize player
792                if (eaeSongs.length > 0) {
793                    loadSong(0);
794                    if (audioPlayer && volumeControl) {
795                        audioPlayer.volume = parseFloat(volumeControl.value);
796                    } else if (audioPlayer) {
797                        audioPlayer.volume = 1; // Default volume
798                    }
799                }
800
801                if(settings.enable_sticky === 'yes'){
802
803                    if (closeButton) {
804                        closeButton.style.display = 'none';
805                    }
806                    if((elementorFrontend.isEditMode() && settings.preview_sticky 
806== 'yes') || !elementorFrontend.isEditMode()){
807                        makeStickyVideo(wrapper);
808                        document.addEventListener('scroll', () => {
809                            if (window.requestAnimationFrame) {
810                            window.requestAnimationFrame(() => {
811                                makeStickyVideo(wrapper);
812                            });
813                            } else {
814                                makeStickyVideo(wrapper);
815                            }
816                        });
817                    }
818                }
819               
820                function makeStickyVideo(ele){
821                   
822                    let currentScrollPosition = window.scrollY;
823                 
824                    if(window.scrollY - 200 >= elementPagePosition){
825                        if(!elementorFrontend.isEditMode()){
826                            if( audioPlayer.paused) return;
827                        }
828                       
829                        if (closeButton) {
830                            closeButton.style.display = 'block';
831                        }
832                        isDragEnabled = true;
833                    
834                        wrapper.classList.add('eae-player-out-viewport');
835
836                        if(wrapper.classList.contains('eae-player-compact') && wrapper.classList.contains('eae-layout-4')) {
837                            playerLayout3.style.flexDirection = '';
838                        }
839                    }else{
840                        if (closeButton) {
841                            closeButton.style.display = 'none';
842                        }
843                        wrapper.style.visibility = 'visible';
844                        wrapper.classList.remove('eae-player-out-viewport');
845                        wrapper.offsetHeight;
846                    }
847                    
848                    lastScrollTop = currentScrollPosition <= 0 ? 0 : currentScrollPosition;
849                }
850            },
851        });
852       
853        
854        elementorFrontend.hooks.addAction('frontend/element_ready/eae-audio-player.default', function ($scope){
855            elementorFrontend.elementsHandler.addHandler(AudioPlayerHandler, {
856				$element: $scope
857			});
858        });
859    });
860
861})(jQuery);
862
863/***/ },
864
865/***/ 305
866(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
867
868"use strict";
869/* harmony export */ __webpack_require__.d(__webpack_exports__, {
870/* harmony export */   Y: () => (/* binding */ SwiperBase)
871/* harmony export */ });
872/* unused harmony export isEditMode */
873
874
875const isEditMode = () => {
876    return false;
877}
878
879class SwiperBase{
880
881    constructor(data, wid, scope = null) {
882
883        let swiper = [];
884        let swiperContainer = '.elementor-element-' + wid + ' .eae-swiper-container';
885		let active_breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
886		var wclass = '.elementor-element-' + wid;
887        if (scope !== null) {
888            wid = scope.data('id');
889            const slideId = scope.find('.eae-swiper-container').data('eae-slider-id');
890            swiperContainer = '.elementor-element-' + wid + ' .eae-swiper-container[data-eae-slider-id="' + slideId + '"]';
891			wclass = '.elementor-element-' + wid + ' .eae-slider-id-' + slideId;
892        }
893
894        if (typeof data === "undefined") {
895            return false;
896        }
897
898		swiper = {
899			direction: data.direction,
900			speed: data.speed,
901			autoHeight: data.autoHeight,
902			autoplay: data.autoplay,
903			grid: data.grid,
904			effect: data.effect,
905			loop: data.loop,
906			zoom: data.zoom,
907			wrapperClass: 'eae-swiper-wrapper',
908			slideClass: 'eae-swiper-slide',
909			observer: true,
910			observeParents: true,
911		}
912
913		if(data.hasOwnProperty('pause_on_interaction')){
914			swiper['autoplay']['disableOnInteraction'] = true;
915			swiper['autoplay']['pauseOnMouseEnter'] = true;	
916		}
917		
918		const res_props = {
919			'slidesPerView' : 'slidesPerView',
920			'slidesPerGroup' : 'slidesPerGroup',
921			'spaceBetween' : 'spaceBetween'
922		}
923		// Minimum Screen Set
924		if(active_breakpoints.hasOwnProperty('mobile')){
925			for (const key in res_props) {
926				if (data.hasOwnProperty(key)) {
927					swiper[key] = data[key].mobile;       
928				}
929			}
930		}
931
932		if (data.loop && data.hasOwnProperty('slidersPerView')) {
933			if (document.querySelectorAll(wclass + ' .eae-swiper-slide').length < data.slidesPerView.tablet) {
934				swiper['loop'] = false;
935			}
936		}
937
938		const arr = {};
939
940		// Responsive BreakPoints Sets
941		if(data.hasOwnProperty('breakpoints_value')){
942			Object.keys(data.breakpoints_value).map(key => {
943				
944				const value = parseInt(data.breakpoints_value[key]); 
945				if(key === 'desktop'){
946					key = 'default';
947				}
948				const spaceBetween = parseInt(data.spaceBetween[key]);
949				const slidesPerView = parseInt(data.slidesPerView[key]);
950				const slidesPerGroup = parseInt(data.slidesPerGroup[key]);
951				arr[value - 1] = {
952					spaceBetween,
953					slidesPerView,
954					slidesPerGroup
955				};
956			});
957		}
958
959		// BreakPoints
960		const bp = eae.breakpoints;
961
962		swiper['breakpoints'] = arr;
963		swiper['keyboard'] = (data.keyboard === 'yes') ? { enabled: true, onlyInViewport: true } : false;
964		if (data.navigation === 'yes') {
965			swiper['navigation'] = {
966				nextEl: wclass + ' .eae-swiper-button-next',
967				prevEl: wclass + ' .eae-swiper-button-prev',
968			}
969		}
970
971		if (data.ptype !== '') {
972			swiper['pagination'] = {
973				el: wclass + ' .eae-swiper-pagination',
974				type: data.ptype,
975				clickable: data.clickable
976			}
977		}
978		if (data.scrollbar == 'yes') {
979
980			swiper['scrollbar'] = {
981				el: wclass + ' .eae-swiper-scrollbar',
982				hide: true
983			};
984		}
985		
986		
987			swiper['on'] = {
988				resize: function () {
989					if(data.autoplay != false){
990						this.autoplay.start();
991					}
992				},
993			};
994		
995		
996		
997		//swiper['init'] = false;
998		const asyncSwiper = elementorFrontend.utils.swiper;
999		new asyncSwiper(jQuery(swiperContainer), swiper).then((newSwiperInstance) => {
1000			const mswiper = newSwiperInstance;
1001			const pause_on_hover = data.pause_on_hover;
1002			if(data.loop == 'yes'){
1003				this.after_swiper_load_func(mswiper , wid);
1004			}
1005			if (pause_on_hover == 'yes') {
1006				
1007					this.pause_on_hover_func(mswiper, pause_on_hover, wid , data);
1008			}
1009		});
1010	
1011        jQuery('.elementor-element-' + wid + ' .ae-swiper-container').css('visibility', 'visible');
1012        
1013    }
1014
1015
1016    pause_on_hover_func(mswiper, pause_on_hover, wid , data = '') {
1017        jQuery('.elementor-element-' + wid + ' .eae-swiper-container').hover(function () {
1018            mswiper.autoplay.stop();
1019        }, function () {
1020			if(!data.hasOwnProperty('pause_on_interaction') && data.pause_on_interaction != 'yes'){
1021				mswiper.autoplay.start();
1022			}
1023        });
1024    }
1025	after_swiper_load_func(mswiper , wid = '') {		
1026        if (mswiper.length > 0) {
1027            mswiper.forEach(function (slider) {
1028                // slider.on('slideChangeTransitionStart', function () {
1029                //  slider.$wrapperEl.find('.swiper-slide-duplicate').each(function (element) {
1030                //      let videoWrapper = element.querySelector('.eae-vg-element');
1031                //      videoWrapper.addEventListener('click', function(e){
1032                //          videoWrapper.classList.remove('eae-vg-image-overlay');
1033                //          let video_type = videoWrapper.getAttribute('data-video-url');
1034                //          let url = videoWrapper.getAttribute('data-video-url');
1035                //          videoWrapper.innerHTML = '';
1036                //          var iframe = document.createElement('iframe');
1037                //          iframe.classList.add('eae-vg-video-iframe');
1038                //          iframe.setAttribute('src', url);
1039                //          iframe.setAttribute('frameborder', '0');
1040                //          iframe.setAttribute('allowfullscreen', '1');
1041                //          iframe.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');
1042                //          videoWrapper.append(iframe);
1043                //      });
1044                //      // get settings
1045                //      // elementorFrontend.elementsHandler.runReadyTrigger(jQuery(this));
1046                //  });
1047                // });
1048                // slider.init();
1049            });
1050        } else {
1051            mswiper.on('slideChangeTransitionStart', function () {
1052                mswiper.$wrapperEl.find('.swiper-slide-duplicate').each(function (element) {
1053                    const parentDiv = element.closest('.eae-vg-video-container');
1054					
1055                    if(parentDiv !== null){
1056                        let videoWrapper = element.querySelector('.eae-vg-element');	
1057                        videoWrapper.addEventListener('click', function(e){
1058							let element = videoWrapper
1059                            element.classList.remove('eae-vg-image-overlay');
1060							let video_type = element.getAttribute('data-video-url');
1061							let video_t = element.getAttribute('data-video-type');
1062							if(video_t != 'hosted'){
1063								let url = element.getAttribute('data-video-url');
1064								element.innerHTML = '';
1065								var iframe = document.createElement('iframe');
1066								iframe.classList.add('eae-vg-video-iframe');
1067								iframe.setAttribute('src', url);
1068								iframe.setAttribute('frameborder', '0');
1069								iframe.setAttribute('allowfullscreen', '1');
1070								iframe.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');
1071								element.append(iframe);
1072							}else{
1073								if(element.querySelector('.eae-hosted-video') == null){
1074								let videoHtml = element.getAttribute('data-hosted-html');
1075									element.innerHTML = '';
1076									let hostedVideoHtml = JSON.parse(videoHtml);
1077									element.innerHTML += hostedVideoHtml;
1078									let hostedVideo = element.querySelector('video');
1079									hostedVideo.setAttribute('autoplay', 'autoplay');
1080									if(element.hasAttribute('data-video-downaload')){
1081										hostedVideo.setAttribute('controlslist', 'nodownload');
1082									}
1083									if(element.hasAttribute('data-controls')){
1084										hostedVideo.setAttribute('controls', '');
1085									}   
1086								}    
1087							}
1088                        });
1089                    }
1090					
1091
1092
1093					// woo products quick view
1094					const popTriggerButtons = element.querySelectorAll(".open-popup-link");
1095					popTriggerButtons.forEach(wrapper => jQuery(wrapper).eaePopup({
1096                        type:'inline',
1097                        midClick: true, // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.
1098                        mainClass:"eae-wp-modal-box eae-wp-"+wid,
1099                        callbacks:{
1100                            open: function(){
1101                                jQuery(window).trigger("resize"); 
1102                            },
1103                            
1104                          }
1105                    }));
1106
1107					// Testimonial Slider 
1108						
1109                    const testimonialSlider = element.closest('.eae-testimonial-wrapper');
1110					if(testimonialSlider !== null){
1111						const breakpoints = parseInt(testimonialSlider.getAttribute('data-stacked'));
1112						const imgElements = testimonialSlider.querySelectorAll('.eae-additional-image.eae-preset-2');
1113
1114						if(testimonialSlider !== null){
1115							window.addEventListener("resize", function(){
1116								const currentWindowWidth = this.window.innerWidth;
1117								if(currentWindowWidth <= breakpoints) {
1118									imgElements.forEach(img => {
1119										img.style.display = 'none';
1120									});
1121								}
1122								else {
1123									imgElements.forEach(img => {
1124										img.style.display = 'flex';
1125									});
1126								}
1127							})
1128						}
1129					}
1130					
1131                
1132					mswiper.init();
1133				});					
1134            });
1135            mswiper.init();
1136        }
1137    }
1138}
1139
1140
1141/***/ },
1142
1143/***/ 147
1144() {
1145
1146(function ($) {
1147    $(window).on('elementor/frontend/init', function () {
1148        var ModuleHandler = elementorModules.frontend.handlers.Base,
1149        BlobShapeHandler;
1150
1151        BlobShapeHandler = ModuleHandler.extend({
1152            getDefaultSettings: function getDefaultSettings() {
1153                    return {
1154                        settings: this.getElementSettings(),
1155                    };
1156                },
1157                getDefaultElements: function getDefaultElements(){
1158                    const wId = this.$element.data('id');
1159                    const scope = this.$element;
1160                    const element = document.querySelector('.elementor-element-' + wId);
1161                    const wrapper = element.querySelector('.eae-blob-shape-wrapper');
1162                    const { settings } = this.getSettings();
1163
1164                    let blobSize;
1165                    if(settings.blob_size.unit == '%'){
1166                        let wrapperWidth = wrapper.offsetWidth
1167                      
1168                        if (settings.blob_size.size == 100) {
1169                            blobSize = wrapperWidth;
1170                        } else {
1171                            blobSize = wrapperWidth * parseFloat(`0.${settings.blob_size.size}`); 
1172                        }
1173                    }else{
1174                        blobSize = settings.blob_size.size
1175                    }
1176
1177                    return {
1178                        eid: wId,
1179                        element: element,
1180                        wrapper: wrapper,
1181                        scope: scope,
1182                        blobSize: blobSize.toFixed(2),
1183                    }
1184                },
1185                onInit: function onInit(){
1186
1187                    const { settings } = this.getSettings();
1188                    const { generator } = this.getSvgPath();
1189
1190                    const { wrapper , scope , blobSize} = this.getDefaultElements();
1191                                
1192                    const blobSvgPath = wrapper.querySelector('#eae-blob-svg-path');
1193
1194                   
1195
1196                    const blobConfig = {
1197                        seed: 0.5,
1198                        edges:settings.blob_randomness.size < 3 ? 3 : settings.blob_randomness.size,  
1199                        growth: settings.blob_nodes.size,
1200                        size: blobSize
1201                    };
1202
1203                    function generateNewPath() {
1204                        blobConfig.seed = Math.random();
1205                        return generator(blobConfig).path;
1206                    }
1207
1208                    blobSvgPath.setAttribute('d', generateNewPath());
1209
1210                    const animeSettings = {   
1211                        targets: blobSvgPath,  
1212                        direction: 'alternate',
1213                        easing: 'easeInOutSine',  
1214                        duration: settings.animation_delay * 1000, 
1215                        loop: true,
1216                        d: [
1217                            { value:  generator().path },
1218                            { value: generator().path },
1219                        ],
1220                    };
1221                    if(settings.enable_animation == 'yes'){
1222                        anime(animeSettings);
1223                    }
1224
1225                    var isLottiePanle = wrapper.querySelector('.eae-lottie-animation');
1226
1227                    if (isLottiePanle != null) {
1228                        let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
1229                        let eae_animation = lottie.loadAnimation({
1230                            container: isLottiePanle,
1231                            path: lottie_data.url,
1232                            renderer: "svg",
1233                            loop: lottie_data.loop,
1234                        });
1235            
1236                        if (lottie_data.reverse == true) {
1237                            eae_animation.setDirection(-1);
1238                        }
1239                    }
1240                },
1241                getSvgPath: function getSvgPath(){
1242                    const { settings }
1242 = this.getSettings();
1243                   const { wrapper , scope , blobSize} = this.getDefaultElements();
1244                    const blobSvg = wrapper.querySelector('.eae-blob-svg');
1245
1246                    if(settings.blob_size.unit == '%'){
1247                        blobSvg.setAttribute('width', blobSize);
1248                        blobSvg.setAttribute('height', blobSize);
1249                        blobSvg.setAttribute('viewBox', `0 0 ${blobSize} ${blobSize}`);
1250                    }
1251                   
1252                    const generator = ({ size = blobSize, growth = settings.blob_nodes.size, edges = settings.blob_randomness.size < 3 ? 3 : settings.blob_randomness.size, seed = null } = {}) => {
1253                        const { destPoints, seedValue } = _createPoints(size, growth, edges, seed);
1254                        const path = _createSvgPath(destPoints);
1255                        return { path, seedValue };
1256                    };
1257
1258                    const _toRad = (deg) => deg * (Math.PI / 180.0);
1259
1260                    const _divide = (count) => {
1261                        const deg = 360 / count;
1262                        return Array(count).fill("a").map((_, i) => i * deg);
1263                    };
1264
1265                    const _randomDoubleGenerator = (s) => {
1266                        const mask = 0xffffffff;
1267                        let m_w = (123456789 + s) & mask;
1268                        let m_z = (987654321 - s) & mask;
1269
1270                        return function () {
1271                            m_z = (36969 * (m_z & 65535) + (m_z >>> 16)) & mask;
1272                            m_w = (18000 * (m_w & 65535) + (m_w >>> 16)) & mask;
1273
1274                            let result = ((m_z << 16) + (m_w & 65535)) >>> 0;
1275                            result /= 4294967296;
1276                            return result;
1277                        };
1278                    };
1279
1280                    const _magicPoint = (value, min, max) => {
1281                        let radius = min + value * (max - min);
1282                        radius = Math.min(max, Math.max(min, radius));
1283                        return radius;
1284                    };
1285
1286                    const _point = (origin, radius, degree) => {
1287                        const x = origin + radius * Math.cos(_toRad(degree));
1288                        const y = origin + radius * Math.sin(_toRad(degree));
1289                        return [Math.round(x), Math.round(y)];
1290                    };
1291
1292                    const _createPoints = (size, minGrowth, edgesCount, seed) => {
1293                        const outerRad = size / 2;
1294                        const innerRad = minGrowth * (outerRad / 10);
1295                        const center = size / 2;
1296
1297                        const slices = _divide(edgesCount);
1298                        const maxRandomValue = 99999;  // Keep randomness controlled
1299                        const id = Math.floor(Math.random() * maxRandomValue);
1300                        const seedValue = seed || id;
1301                        const randVal = _randomDoubleGenerator(seedValue);
1302                        const destPoints = [];
1303
1304                        slices.forEach((degree) => {
1305                            const O = _magicPoint(randVal(), innerRad, outerRad);
1306                            const end = _point(center, O, degree);
1307                            destPoints.push(end);
1308                        });
1309                        return { destPoints, seedValue };
1310                    };
1311
1312                    const _createSvgPath = (points) => {
1313                        let svgPath = "";
1314                        let mid = [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];
1315                        svgPath += "M" + mid[0] + "," + mid[1];
1316
1317                        for (let i = 0; i < points.length; i++) {
1318                            const p1 = points[(i + 1) % points.length];
1319                            const p2 = points[(i + 2) % points.length];
1320                            mid = [(p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2];
1321                            svgPath += "Q" + p1[0] + "," + p1[1] + "," + mid[0] + "," + mid[1];
1322                        }
1323                        svgPath += "Z";
1324                        return svgPath;
1325                    };
1326
1327                    return {
1328                        generator: generator,
1329                    }
1330                },
1331            });
1332            elementorFrontend.hooks.addAction('frontend/element_ready/eae-blob-shape.default', function ($scope) {	
1333                elementorFrontend.elementsHandler.addHandler(BlobShapeHandler, {
1334                    $element: $scope
1335                  });
1336            });
1337        });   
1338})(jQuery);
1339
1340/***/ },
1341
1342/***/ 340
1343() {
1344
1345(function ($) {
1346	const EAEBusinessHours = function ($scope) {
1347        const businessHours = document.querySelectorAll(".wta-eae-business-heading-wrapper");
1348        const eId = $scope.attr('data-id');
1349        const element = document.querySelector('.elementor-element-' + eId);
1350        const wrapper = element.querySelector('.wts-eae-business-days');    
1351        let titleIcon = element.querySelector('.eae-tile-icon.eae-lottie-animation');
1352        let LottieData = wrapper.querySelectorAll('.eae-business-weekdays-wrapper');
1353        
1354        LottieData.forEach(data => {
1355            isLottiePanle = data.querySelector('.eae-lottie');
1356            if (isLottiePanle != null) {
1357                let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
1358                let eae_animation = lottie.loadAnimation({
1359                    container: isLottiePanle,
1360                    path: lottie_data.url,
1361                    renderer: "svg",
1362                    loop: lottie_data.loop,
1363                });
1364
1365                if (lottie_data.reverse == true) {
1366                    eae_animation.setDirection(-1);
1367                }
1368            }
1369        })
1370
1371        if (titleIcon != null) {
1372			let lottie_data = JSON.parse(titleIcon.getAttribute('data-lottie-settings'));
1373			let eae_animation = lottie.loadAnimation({
1374				container: titleIcon,
1375				path: lottie_data.url,
1376				renderer: "svg",
1377				loop: lottie_data.loop,
1378			});
1379
1380			if (lottie_data.reverse == true) {
1381				eae_animation.setDirection(-1);
1382			}
1383		}
1384
1385
1386        businessHours.forEach(data => {
1387           
1388        const eId = $scope.attr('data-id');
1389        const element = document.querySelector('.elementor-element-' + eId);
1390       
1391       
1392        
1393    
1394       
1395        
1396        const timezone = data.getAttribute('data-timezone');
1397        let timeFormat = data.getAttribute('data-format');
1398        timeFormat = timeFormat == "true" ? true : false;
1399        let settings = JSON.parse(data.getAttribute('data-settings'));
1400
1401		const options = {
1402            hour : "numeric",
1403            minute : "numeric",
1404            second: "numeric",
1405            hour12: timeFormat, 
1406        }
1407		if(settings.businessIndicator == 'yes')
1408        {
1409            calcTime(timezone);
1410            setInterval(calcTime, 1000,timezone); // Repeat myFunction every 1 mintb b bb
1411            get_Time_Left();
1412            setInterval(get_Time_Left,1000);
1413        }
1414
1415		function calcTime(timezone){
1416			
1417            const date = new Date();
1418            let offset;
1419            let regexp = /^(\+|\-)\d{1,2}:\d{2}$/;
1420            if(regexp.test(timezone)){
1421                const [hours,mints] = timezone.split(":").map(Number);
1422                offset = ((hours * 60) + mints)*60;
1423            }
1424            else{
1425                const tz= Intl.DateTimeFormat(undefined,{timeZone : timezone}).resolvedOptions().timeZone;
1426                if(tz === timezone){ 
1427                    let dt = new Date();
1428                    dt = dt.toLocaleString("en-US",{timeZone: timezone});
1429                    date.setTime(Date.parse(dt));
1430                    var datedisplay = date;
1431                    glbCurrenttime = date.getTime();
1432                    const biTimehtml = data.querySelector('.eae-indicator-time');
1433                    biTimehtml.innerHTML= datedisplay.toLocaleString('en-US',options);
1434                }
1435            }
1436            if(offset >= 0 || offset <= 0){
1437                const utcTime = date.getTime() + (date.getTimezoneOffset() * 60000);
1438                date.setTime(utcTime + (offset * 1000));
1439                var datedisplay = date;
1440                let dateMatch = new Date();
1441                const matchTime = dateMatch.getTime() + (offset * 1000);
1442                dateMatch.setTime(matchTime);
1443                // glbCurrenttime = Math.floor(dateMatch.getTime()/1000);
1444                glbCurrenttime = Math.ceil(dateMatch.getTime()/1000);
1445            }
1446            
1447            const biTimehtml = data.querySelector('.eae-indicator-time');
1448           
1449            if(biTimehtml != undefined){
1450
1451                biTimehtml.innerHTML = datedisplay.toLocaleString('en-US',options);
1452            }
1453        } 
1454		function get_Time_Left(){
1455            openWrn = data.querySelector('.eae-bh-bi-open-wmsg');
1456            closeWrn = data.querySelector('.eae-bh-bi-close-wmsg');
1457            //get current day wrapper
1458            const cday_wrap = data.querySelector('.currentday');
1459            
1460            if(cday_wrap != undefined)
1461            {
1462                    //getting all slots in current day wrap
1463                const slots = cday_wrap.querySelectorAll('.bultr-bh-label-wrap');
1464            
1465                //LABEL checking if current time is btw slot if true then open else close
1466                const slot = Object.values(slots);
1467                for (const ele of slot) {
1468					
1469                    const Opentime  = parseInt(ele.getAttribute('data-open'));
1470                    const Closetime = parseInt(ele.getAttribute('data-close'));
1471                    if(settings.indctLabel == 'yes'){
1472                        incicatorLabel = data.querySelector('.bultr-labelss');
1473                        if(incicatorLabel){
1474							
1475                            if(glbCurrenttime > Opentime && glbCurrenttime < Closetime){
1476
1477                                incicatorLabel.innerHTML = settings.openLableTxt;
1478                                incicatorLabel.classList.add('bultr-lbl-open');
1479                                incicatorLabel.classList.remove('bultr-lbl-close'); 
1480                                break;
1481                            }
1482                            else{
1483                                incicatorLabel.innerHTML = settings.closeLabelTxt;
1484                                incicatorLabel.classList.add('bultr-lbl-close');
1485                                incicatorLabel.classList.remove('bultr-lbl-open');
1486
1487                            }
1488                        }
1489                    }
1490                }
1491                //WARNING MASSAGE
1492                
1493                for(const ele of slot){
1494                   
1495                    const Opentime  = parseInt(ele.getAttribute('data-open'));
1496                    const Closetime = parseInt(ele.getAttribute('data-close'));
1497                    openWrn = data.querySelector('.eae-bh-bi-open-wmsg');
1498                    closeWrn = data.querySelector('.eae-bh-bi-close-wmsg');
1499                    
1500                    
1501                    //opening warning
1502                
1503                    if(Opentime > glbCurrenttime){
1504        
1505                        openmints = Math.ceil((Opentime - glbCurrenttime)/60);
1506                        
1507                        // openmintsss = Math.floor((Opentime - glbCurrenttime)/60);
1508                        if(openmints <= parseInt(settings.openMints)){
1509                            
1510                            if(settings.openWrnMsg == 'yes'){
1511                                if(openWrn){
1512                                    openWrn.innerHTML = settings.openWrnMsgTxt + " " + openmints + " Minutes";
1513                                }
1514                                else{
1515                                        openWrn = document.createElement('div');
1516                                        openWrn.setAttribute('class', 'bultr-bh-bi-open-wmsg');
1517                                        // incicatorLeft.appendChild(openWrn);
1518                                        openWrn.innerHTML = settings.openWrnMsgTxt + " " + openmints + " Minutes";
1519                                }
1520                            }        
1521                        }
1522                    break;
1523                    }
1524                    else{
1525                        if(openWrn){
1526                            openWrn.innerHTML = "";
1527                        }
1528                    }
1529                    //closing warning
1530                    if(glbCurrenttime < Closetime || glbCurrenttime > Opentime){
1531                        
1532                        closemints = Math.ceil((Closetime - glbCurrenttime)/60);
1533                        //  closemintsss = Math.floor((Closetime - glbCurrenttime)/60);
1534                        if(closemints <= parseInt(settings.closeMints)){
1535                            if(closemints > 0){
1536                                if(settings.closeWrnMsg == 'yes'){
1537                                    if(closeWrn){
1538                                        closeWrn.innerHTML = settings.closeWrnMsgText + " " + closemints + " Minutes";
1539                                        
1540                                    }
1541                                    else{
1542                                        closeWrn = document.createElement('div');
1543                                        closeWrn.setAttribute('class', 'bultr-bh-bi-close-wmsg');
1544                                        // incicatorLeft.appendChild(closeWrn);
1545                                        closeWrn.innerHTML = settings.closeWrnMsgText + " " + closemints + " Minutes";
1546                                    }
1547                                    closeWrn.innerHTML = settings.closeWrnMsgText + " " + closemints + " Minutes";
1548                                } 
1549                            }
1550                            else{
1551                                if(closeWrn){
1552                                    closeWrn.innerHTML = "";
1553                                }
1554                            } 
1555                        }
1556                    }
1557                }
1558            }   
1559        }   
1560    })
1561}
1562
1563    $(window).on('elementor/frontend/init', function () {
1564		elementorFrontend.hooks.addAction(
1565			"frontend/element_ready/eae-business-hours.default",
1566			EAEBusinessHours
1567		);
1568	});
1569
1570})(jQuery);
1571
1572/***/ },
1573
1574/***/ 107
1575() {
1576
1577(function ($) {
1578	const EAECallToAction = function ($scope) {
1579		const eId = $scope.attr('data-id');
1580		const element = document.querySelector('.elementor-element-' + eId);
1581		
1582        let isLottiePanle = element.querySelector('.eae-cta-icon.eae-lottie');
1583
1584		if (isLottiePanle != null) {
1585			let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
1586			let eae_animation = lottie.loadAnimation({
1587				container: isLottiePanle,
1588				path: lottie_data.url,
1589				renderer: "svg",
1590				loop: lottie_data.loop,
1591			});
1592
1593			if (lottie_data.reverse == true) {
1594				eae_animation.setDirection(-1);
1595			}
1596		}
1597
1598		const buttonContainer = element.querySelector('.eae-cta-button');
1599
1600		let buttonsLottiePanel = buttonContainer.querySelectorAll('.eae-lottie');
1601		if (buttonsLottiePanel != null) {
1602			buttonsLottiePanel.forEach(function(element){
1603				let lottie_data = JSON.parse(element.getAttribute('data-lottie-settings'));
1604				let eae_animation = lottie.loadAnimation({
1605					container: element,
1606					path: lottie_data.url,
1607					renderer: "svg",
1608					loop: lottie_data.loop,
1609				});
1610
1611				if (lottie_data.reverse == true) {
1612					eae_animation.setDirection(-1);
1613				}
1614			});
1615		}
1616	}
1617	
1618
1619	$(window).on('elementor/frontend/init', function () {
1620		elementorFrontend.hooks.addAction(
1621			"frontend/element_ready/eae-call-to-action.default",
1622			EAECallToAction
1623		);
1624	});
1625})(jQuery);
1626
1627/***/ },
1628
1629/***/ 45
1630() {
1631
1632(function ($){
1633    $(window).on('elementor/frontend/init', function () {
1634        var ModuleHandler = elementorModules.frontend.handlers.Base,
1635            CircularProgressHandler;
1636           
1637        CircularProgressHandler = ModuleHandler.extend({
1638            getDefaultElements: function getDefaultElements() {
1639				
1640                const eId = this.$element.data('id'); 
1641                const element = document.querySelector('.elementor-element-' + eId);
1642                const wrapper = element.querySelector('.eae-cp-wrapper');
1643                const data = JSON.parse(wrapper.getAttribute('data-settings'));
1644                return{
1645                    eid: eId,
1646                    element: element,
1647                    wrapper: wrapper, 
1648                    data: data,
1649                }
1650			},
1651            onInit: function onInit(){
1652                const that = this;
1653                const { wrapper,data} = this.getDefaultElements();
1654                //Lottie 
1655                that.getLottie(wrapper);
1656                
1657                that.contentBoxSize();
1658                if(data != null){
1659                    const element = wrapper.querySelector('.eae-cp-canvas-wrapper');
1660                    const observerOptions = {
1661                        root: null, // Observe relative to the viewport
1662                        rootMargin: '0px 0px -30% 0px', // Margin around the root
1663                      };
1664                
1665                      const observerCallback = (entries, observer) => {
1666                        entries.forEach(entry => {
1667                            if (entry.isIntersecting) {
1668                                const wrapper = entry.target;
1669                                if(!wrapper.classList.contains("trigger")){
1670                                    wrapper.classList.add('trigger');
1671                                    that.getTrack(wrapper,data);
1672                                }
1673                            }
1674                        });
1675                      };
1676                      const observer = new IntersectionObserver(observerCallback, observerOptions);
1677                      observer.observe(element);
1678                }
1679            },
1680            onElementChange: function onElementChange(propertyName) {
1681				if (propertyName === 'cp_track_width' || propertyName === 'cp_track_width') {
1682					this.contentBoxSize();
1683				}
1684			},
1685			getTrack: function getTrack(wrapper, data) {
1686				
1687                const settings = this.getElementSettings();
1688
1689                const can = wrapper.querySelector('.eae-cp-canvas');
1690                const circleSize = can.width/2; 
1691
1692                const progressWidth = (can.width * (data.progress_width/100))/2;
1693                const trackWidth = (can.width * (data.track_width/100))/2;
1694
1695                const valueContainer = wrapper.querySelector('.eae-cp-procent');
1696				
1697                const canvas = can.getContext('2d');
1698                const startAngle = data.start_angle;
1699
1700                const value = data.value // value
1701                const layoutType = data.layout_type; 
1702                const circle =  (layoutType == 'full-circle') ? 360 : 180;
1703                
1704                const posX = can.width / 2;
1705                let posY = 0;
1706                let percent = 0;
1707
1708                const maxValue = (settings.cp_value_type == 'percentage') ? '100' : settings.cp_max_value; 
1709
1710
1711                const fps = (data.animation_duration/( (value/maxValue) * circle));
1712                
1713                // let oneProcent = (value/maxValue)*100;
1714                
1715
1716                let result = 0;
1717                let pointResult = 0
1718                let gradientColorAg = 0;
1719
1720                let circleRadius = 0;
1721                if(progressWidth >= trackWidth){
1722                    circleRadius = (circleSize) - (progressWidth/2);
1723                }else{
1724                    circleRadius = (circleSize) - (trackWidth/2);
1725                }
1726
1727                if(layoutType == 'full-circle'){
1728                    pointResult =  (value/maxValue) * 360; //value
1729                    result = value;
1730                    posY = can.height / 2;
1731					if (data.track_layout == 'butt') {
1732						if (data.animation_direction == 'reverse') {
1733							gradientColorAg = (Math.PI / 180) * (360 - (startAngle + 90));
1734						} else {
1735							gradientColorAg = (Math.PI / 180) * ((360 - (90 - startAngle)));
1736						}
1737                    }else{
1738                        if(data.animation_direction == 'reverse') {
1739							gradientColorAg = (Math.PI / 180) * ((360 - (startAngle + 90) + (data.progress_width/2)));
1740                        }else{
1741                            gradientColorAg = (Math.PI/180)  * (((360 - (90 - startAngle)) - (data.progress_width/2)) );
1742                        }
1743                    }
1744                
1745                }else{
1746                    pointResult =  (value/maxValue) * 180;
1747                    posY = can.height;
1748                    result = value; //value
1749                }
1750                
1751                canvas.lineCap = data.track_layout;
1752                
1753                let deegres = 0;
1754                let progressColor = '';
1755                
1756                    
1757                if(data.progress_color_type == 'gradient'){
1758                    const gradient = canvas.createConicGradient(gradientColorAg, posX, posY);
1759                    const gradientColor = data.progress_gradient_color;
1760                    let offset = 0;
1761                    let color = '';
1762                    
1763                    gradientColor.forEach(function (info){
1764                        if(info.cp_progress_gradient_color !== ''){
1765                            if(layoutType == 'full-circle'){
1766                                offset = (1 * info.cp_progress_color_stop.size)/100;
1767                                if(data.animation_direction == 'reverse'){
1768                                    offset = 1 - offset;
1769                                }
1770                                
1771                            }else{
1772								if(data.animation_direction == 'reverse') {
1773                                    offset = 1 - ((0.5 * info.cp_progress_color_stop.size)/100);
1774                                }else{
1775                                    offset = ((0.5 * info.cp_progress_color_stop.size)/100)+ 0.5;
1776                                }
1777                            }
1778                            
1779                            color = info.cp_progress_gradient_color;
1780                            gradient.addColorStop(offset, color);
1781                        }
1782                    });
1783                    progressColor = gradient;
1784                }else{
1785                    progressColor = data.progress_color;
1786                }
1787
1788                
1789                
1790                let count = 0; 
1791                if(valueContainer !== null || data.hide_value == 'yes' && value != '' ){
1792
1793                    let acrInterval = setInterval (function() {
1794                        
1795                        if(layoutType == 'full-circle'){
1796                            // Full circle    
1797                            if(settings.cp_value_type == 'percentage'){
1798                                deegres +=1;
1799                                percent = (deegres/360)*100;
1800
1801                            }else{
1802                                deegres += 1;
1803                                percent = maxValue * (deegres/360);
1804                                // deegres += 0.1;
1805                                // percent = maxValue * ((deegres/360)*100)/100;
1806                                
1807                            }
1808                            count = deegres;
1809                            trackStartA = (Math.PI/180) * 270;
1810                            trackEndA =  (Math.PI/180) * (270 + 360);
1811
1812                            if(data.animation_direction == 'reverse'){
1813                                progStartA = (Math.PI/180)  * (360 - (startAngle + 90) - deegres);
1814                                progEndA  = (Math.PI/180) * ((360 - (startAngle + 90)));
1815                            }else{
1816                                progStartA = (Math.PI/180)  * (360 - (90 - startAngle));
1817                                progEndA = (Math.PI/180) * ((360 - (90 - startAngle)) + deegres);
1818                            }
1819
1820                            if(data.hide_value !== 'yes'){
1821                                valueContainer.innerHTML = parseInt(percent);
1822                            }
1823                        }else if(layoutType == 'half-circle'){
1824                            // Half circle
1825                            if(settings.cp_value_type == 'percentage'){
1826                                if(value != 0){
1827                                    deegres += 1;
1828                                }
1829                                percent = (deegres/180)*100;
1830                            }else{
1831                                if(value != 0){
1832                                    deegres += 1;
1833                                }
1834                                // percent = deegres;
1835                                // deegres += 0.1;
1836                                percent = maxValue * ((deegres/180)*100)/100;
1837                                
1838                            }
1839                            count = deegres;
1840                            // 180 to 360;
1841                            trackStartA = Math.PI * 1;
1842                            trackEndA =  Math.PI * 0;
1843                            if(data.animation_direction == 'reverse'){
1844                                progEndA = (Math.PI/180)  * (360 + (360));
1845                                progStartA= (Math.PI/180) * (360 + (360 - deegres));
1846                            }else{
1847                                progStartA = (Math.PI/180)  * (360 + (180));
1848                                progEndA = (Math.PI/180) * (180 + deegres);
1849                            }
1850                            
1851                            if(data.hide_value !== 'yes'){
1852                                valueContainer.innerHTML = parseInt(percent);
1853                            }
1854                        }
1855
1856                        canvas.clearRect( 0, 0, can.width, can.height );
1857
1858                        if(data.track_width !== '' && data.track_width !== 0){
1859                            canvas.beginPath();
1860                            canvas.arc( posX, posY, circleRadius, trackStartA , trackEndA ); // track
1861                            canvas.strokeStyle = data.track_color;
1862                            canvas.lineWidth = trackWidth;
1863                            canvas.stroke();
1864                        }
1865                        
1866                        if(maxValue != '' && value != 0 && data.progress_width !== '' && data.progress_width !== 0){
1867                            canvas.beginPath();
1868                            canvas.strokeStyle = progressColor;
1869                            canvas.lineWidth = progressWidth;
1870                            canvas.arc( posX, posY, circleRadius , progStartA, progEndA ); // progress
1871                        }
1872            
1873                        canvas.stroke();
1874            
1875                        if(layoutType == 'full-circle'){
1876                            // Full circle
1877                            // if(deegres >= result){
1878                            while(count < (deegres + 0.99)){
1879                                if( count.toFixed(2) == pointResult){
1880                                    clearInterval(acrInterval);
1881                                    if(valueContainer !== null){
1882                                        valueContainer.innerHTML = value;
1883                                    }
1884                                }
1885                                count += 0.01;
1886                            }
1887                            if( percent >= result){
1888                                clearInterval(acrInterval);
1889                                if(valueContainer !== null){
1890                                    valueContainer.innerHTML = value;
1891                                }
1892                            }
1893                        }else{
1894                            // Half circle
1895                            while(count < (deegres + 0.99)){
1896                                if( count.toFixed(2) == pointResult){
1897                                    clearInterval(acrInterval);
1898                                    if(valueContainer !== null){
1899                                        valueContainer.innerHTML = value;
1900                                    }
1901                                }
1902                                count += 0.01;
1903                            }
1904                            if(  percent >= result || result == 1){
1905                                clearInterval(acrInterval);
1906                                if(valueContainer !== null){
1907                                    valueContainer.innerHTML = value;
1908                                }
1909                            }
1910                        }
1911
1912                        if(value == 0 || value == ''){
1913                            clearInterval(acrInterval);
1914                        }
1915            
1916                    },fps);
1917                }
1918            },
1919            getLottie: function getLottie(wrapper){
1920                isLottiePanel = wrapper.querySelector('.eae-lottie');
1921                if (isLottiePanel != null) {
1922                    let lottie_data = JSON.parse(isLottiePanel.getAttribute('data-lottie-settings'));
1923                    let eae_animation = lottie.loadAnimation({
1924                        container: isLottiePanel,
1925                        path: lottie_data.url,
1926                        renderer: "svg",
1927                        loop: lottie_data.loop,
1928                    });
1929
1930                    if (lottie_data.reverse == true) {
1931                        eae_animation.setDirection(-1);
1932                    }
1933                }
1934            },
1935            contentBoxSize: function contentBoxSize(){
1936                let settings = this.getElementSettings();
1937                let circleSize = settings.cp_content_box_size;
1938                let track = settings.cp_track_width;
1939                let progress = settings.cp_progress_width;
1940
1941                const { wrapper, data } = this.getDefaultElements();
1942                
1943                let container = wrapper.querySelector('.eae-cp-text-contain');
1944				if (container != null) {
1945					let trackWidth = 0;
1946					if (track.size >= progress.size) {
1947						if (track.size !== '') {
1948							trackWidth = track.size;
1949						}
1950					} else {
1951						if (progress.size !== '') {
1952							trackWidth = progress.size;
1953						}
1954					}
1955
1956					let widthdeduct = trackWidth;
1957					let heightdeduct = trackWidth;
1958					container.style.width = 'calc(' + circleSize.size + '%' + ' - ' + widthdeduct + '%)';
1959					container.style.height = 'calc(' + circleSize.size + '%' + ' - ' + heightdeduct + '%)';
1960					
1961					if (data.layout_type == 'half-circle') {
1962						borderRadius = container.offsetHeight + 'px ' + container.offsetHeight + 'px  0 0';
1963						container.style.borderRadius = borderRadius;
1964					}
1965                }
1966            }
1967        });
1968        
1969        elementorFrontend.hooks.addAction('frontend/element_ready/eae-circular-progress.default', function ($scope){
1970            elementorFrontend.elementsHandler.addHandler(CircularProgressHandler, {
1971				$element: $scope
1972			});
1973        });
1974    });
1975
1976})(jQuery);
1977
1978/***/ },
1979
1980/***/ 234
1981() {
1982
1983
1984
1985/***/ },
1986
1987/***/ 289
1988() {
1989
1990"use strict";
1991
1992(function ($) {
1993	const EAEDevices = function ($scope) {
1994        const eId = $scope.attr('data-id');
1995		const element = document.querySelector('.elementor-element-' + eId);
1996        const wrapper = element.querySelector('.eae-device-video-outer-wrapper'); 
1997        const oriWrapper = element.querySelector('.orientation i');  
1998        const deviceWrapper=element.querySelector('.eae-wrapper');  
1999            
2000        var imageCheckElement = element.querySelector('.device-content');
2001        if(imageCheckElement.hasAttribute("data-settings")){
2002            var imageElement = $scope.find(".device-content");
2003            var imageVertical = imageElement.find(".device-img-content");
2004            var imagedataElement = imageElement.data("settings");
2005            var image = imageElement.find("img");
2006            var imageDirection = imagedataElement["direction"];
2007            var imageReverse = imagedataElement["reverse"];
2008            var transformOffset = null;
2009
2010            // const wrapperForCheck = $scope.find(".eae-device-wrapper");
2011            let wrapperForCheck = element.querySelector('.eae-device-wrapper');  
2012    
2013            function startTransform() {
2014                image.css("transform", (imageDirection === "vertical" ? "translateY" : "translateX") + "( -" +
2015                transformOffset + "px)");
2016            }
2017            function endTransform() {
2018                image.css("transform", (imageDirection === "vertical" ? "translateY" : "translateX") + "(0px)");
2019            }
2020    
2021            function setTransform() {
2022
2023                if(wrapperForCheck.classList.contains("device-iphone11")){
2024                    if (imageDirection === "vertical") {
2025                        transformOffset = image.height() - imageElement.height();
2026                    } else {
2027                        transformOffset = image.width() - 2.5 * imageElement.width();
2028                    }
2029                }else{
2030                    if (imageDirection === "vertical") {
2031                        transformOffset = image.height() - imageElement.height();
2032                    } else {
2033                        transformOffset = image.width() - 2 * imageElement.width();
2034                    }  
2035                }
2036            }
2037            if (imagedataElement["trigger"] === "scroll") {
2038                imageElement.addClass("eae-container-scroll");
2039                if (imageDirection === "vertical") {
2040                    imageVertical.addClass("scroll-vertical");
2041                }
2042            }
2043            else {
2044                if (imageReverse === "yes") {
2045                    imageElement.imagesLoaded(function () {
2046                        imageElement.addClass("eae_scroll");
2047                        setTransform();
2048                        startTransform();
2049                    });
2050                }
2051                if (imageDirection === "vertical") {
2052                    imageVertical.removeClass("eae-image-scroll-ver");
2053                }
2054              
2055                imageElement.mouseenter(function () {
2056                    setTransform();
2057                    imageReverse === "yes" ? endTransform() : startTransform();
2058                });
2059                imageElement.mouseleave(function () {
2060 
2061                    imageReverse === "yes" ? startTransform() : endTransform();
2062                });
2063            }
2064        }
2065        
2066        let lottieWrapper  =  element.querySelectorAll('.device-img-content');
2067        lottieWrapper.forEach(data => {
2068            let isLottiePanle = data.querySelector('.eae-lottie');
2069            if (isLottiePanle != null) {
2070                let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
2071                let eae_animation = lottie.loadAnimation({
2072                    container: isLottiePanle,
2073                    path: lottie_data.url,
2074                    renderer: "svg",
2075                    loop: lottie_data.loop,
2076                });
2077                if (lottie_data.reverse == true) {
2078                    eae_animation.setDirection(-1);
2079                }
2080            }
2081        })
2082
2083        if(oriWrapper != undefined || oriWrapper != null){
2084            oriWrapper.addEventListener('click', function(e){ 
2085                    oriFunction(oriWrapper,deviceWrapper); 
2086            })
2087            function oriFunction(ele,deviceWrapper){
2088            ele.classList.toggle("rotate");
2089            deviceWrapper.classList.toggle("landscape");
2090            }
2091        }
2092        
2093        if(wrapper != null){
2094            let videoType = wrapper.getAttribute('data-video-type');
2095            let is_autoplay = wrapper.getAttribute('data-autoplay');
2096
2097            wrapper.addEventListener('click', function(e){
2098               
2099                if(!elementorFrontend.isEditMode()){
2100                    labnolIframe(this);
2101                }    
2102            })
2103            
2104            if(is_autoplay == '1'){
2105                if(!elementorFrontend.isEditMode()){
2106                    const observerOptions = {
2107                        root: null, // Observe relative to the viewport
2108                        rootMargin: '0px 0px -300px 0px', // Margin around the root
2109                      };
2110                
2111                      const observerCallback = (entries, observer) => {
2112                        entries.forEach(entry => {
2113                            if (entry.isIntersecting) {
2114                                const element = entry.target;
2115                            labnolIframe(element, 'autoplay');
2116                            }
2117                        });
2118                      };
2119                      const observer = new IntersectionObserver(observerCallback, observerOptions);
2120                      observer.observe(wrapper);
2121                }    
2122            }
2123        }
2124
2125        function labnolIframe(ele, demo = 'null') {
2126            let videoType = ele.getAttribute('data-video-type');
2127            let videoPlayerEle = ele.querySelector('.eae-device-video-play');        
2128            let src = '';
2129            let videoHtml = '';
2130            let textIconWrapper = element.querySelector('.device-text'); 
2131            textIconWrapper.style.visibility =  "hidden";
2132
2133            if(videoType != 'hosted'){
2134                src = videoPlayerEle.getAttribute('data-src');
2135            }
2136
2137            if(videoType == 'hosted'){
2138                videoHtml = ele.getAttribute('data-hosted-html');
2139            }
2140
2141            if(videoType != 'hosted'){
2142                var iframe = document.createElement('iframe');
2143                    // iframe add class custom
2144                    iframe.classList.add('eae-video-iframe');
2145                    iframe.setAttribute('src', src);
2146                    iframe.setAttribute('frameborder', '0');
2147                    iframe.setAttribute('allowfullscreen', '1');
2148                    iframe.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');
2149                    videoPlayerEle.innerHTML = '';
2150                    if(!ele.classList.contains('.eae-sticky-apply') && ele.querySelector('.eae-video-display-details') != null){
2151                        ele.querySelector('.eae-video-display-details').style.display = 'none';
2152                    }
2153                    videoPlayerEle.append(iframe);
2154            }else{
2155                if(videoType == 'hosted'){
2156                    if(videoPlayerEle.querySelector('.eae-hosted-video') == null){
2157
2158                     
2159
2160                        videoPlayerEle.innerHTML = '';
2161                        let hostedVideoHtml = JSON.parse(videoHtml);
2162                        videoPlayerEle.innerHTML += hostedVideoHtml;
2163                        let hostedVideo = videoPlayerEle.querySelector('video');
2164                        hostedVideo.setAttribute('autoplay', 'autoplay');
2165
2166                        //hostedVideoIframe.style.margin = '0px';
2167                        videoPlayerEle.querySelector('video').style.width = '100%';
2168                        videoPlayerEle.querySelector('video').style.height = '100%';
2169                    }
2170                 
2171                }
2172            }
2173
2174        }
2175	}
2176	
2177
2178	$(window).on('elementor/frontend/init', function () {
2179		elementorFrontend.hooks.addAction(
2180			"frontend/element_ready/eae-devices.default",
2181			EAEDevices
2182		);
2183	});
2184})(jQuery);
2185
2186/***/ },
2187
2188/***/ 482
2189() {
2190
2191(function ($) {
2192	const EAEFAQ = function ($scope) {
2193		const eId = $scope.attr('data-id');
2194		const element = document.querySelector('.elementor-element-' + eId);
2195		let settings = $scope.find('.eae-faq-wrapper').data('settings');
2196		let faq_layout = settings.faq_layout;
2197		if (faq_layout === 'accordion') {
2198			let faq_trigger_action = settings.faq_trigger_action;
2199			let faq_accordion_transition_speed = settings.faq_accordion_transition_speed;
2200			let faq_accordion_toggle = settings.faq_accordion_toggle;
2201			let eae_faq_answer = $scope.find('.eae-faq-item-wrapper > .eae-faq-answer');
2202			$scope.find('.eae-faq-question').on(`${faq_trigger_action}`,
2203				function (e) {
2204					e.preventDefault();
2205					$this = $(this);
2206					if (faq_accordion_toggle === 'yes') {
2207						if ($this.hasClass('eae-faq-active')) {
2208							$this.removeClass('eae-faq-active');
2209							$this.attr('aria-expanded', 'false');
2210						}
2211						else {
2212							$this.addClass('eae-faq-active');
2213							$this.attr('aria-expanded', 'true');
2214						}
2215						$this.next('.eae-faq-answer').slideToggle(faq_accordion_transition_speed, 'swing');
2216					} else {
2217						if ($this.hasClass('eae-faq-active')) {
2218							if (faq_trigger_action === 'click') {
2219								return false;
2220							}
2221							$this.removeClass('eae-faq-active');
2222							$this.next('.eae-faq-answer').slideUp(faq_accordion_transition_speed, 'swing',
2223								function () {
2224									$(this).prev().removeClass('eae-faq-active');
2225									$this.attr('aria-expanded', 'false');
2226								});
2227						} else {
2228							if (eae_faq_answer.hasClass('eae-faq-active')) {
2229								eae_faq_answer.removeClass('eae-faq-active');
2230							}
2231							eae_faq_answer.slideUp(faq_accordion_transition_speed, 'swing', function () {
2232								$(this).prev().removeClass('eae-faq-active');
2233							});
2234
2235							$this.addClass('eae-faq-active');
2236							$this.next('.eae-faq-answer').slideDown(faq_accordion_transition_speed, 'swing', function () {
2237								$(this).prev().addClass('eae-faq-active');
2238								$this.attr('aria-expanded', 'true');
2239							});
2240						}
2241						return false;
2242					}
2243				}
2244			);
2245		}
2246
2247		//Lottie Animation
2248		const wrapper = element.querySelector('.eae-faq-wrapper');
2249		let faqs = wrapper.querySelectorAll('.eae-faq-item-wrapper');
2250        faqs.forEach(faq => {
2251            let eaeLottie = faq.querySelector('.eae-lottie');
2252		    if (eaeLottie != null) {
2253                let lottie_data = JSON.parse(eaeLottie.getAttribute('data-lottie-settings'));
2254                let eae_animation = lottie.loadAnimation({
2255                    container: eaeLottie,
2256                    path: lottie_data.url,
2257                    renderer: "svg",
2258                    loop: lottie_data.loop,
2259                });
2260
2261                if (lottie_data.reverse == true) {
2262                    eae_animation.setDirection(-1);
2263                }
2264            }
2265        });
2266	}
2267
2268	$(window).on('elementor/frontend/init', function () {
2269		elementorFrontend.hooks.addAction(
2270			"frontend/element_ready/eae-faq.default",
2271			EAEFAQ
2272		);
2273	});
2274})(jQuery);
2275
2276/***/ },
2277
2278/***/ 867
2279() {
2280
2281(function ($) {
2282	const EAEFloatingElement = function ($scope) {
2283        
2284        const eId = $scope.attr('data-id');
2285		const element = document.querySelector('.elementor-element-' + eId);
2286		const wrapper = element.querySelector('.wta-eae-floating-image-wrapper');  
2287		let LottieData = wrapper.querySelectorAll('.wts-eae-image.lottie-animation'); 
2288        let animationWrapper =  wrapper.querySelectorAll('.wts-eae-image'); 
2289
2290        animationWrapper.forEach((items)=>{
2291
2292            let animationData = items.getAttribute('data-settings');
2293            let Data = JSON.parse(animationData);
2294            
2295            let from = '';
2296            let to = '';
2297            // let data_scale_x = Data.scaleX
2298            // let data_scale_y = Data.scaleZ
2299            if(Data.hasOwnProperty('isRotate') && Data.isRotate == 'yes'){
2300                let data_rotate_x = Data.rotateX
2301                let data_rotate_y = Data.rotateY
2302                let data_rotate_z = Data.rotateZ
2303                from = 'rotateX(' + Data.rotateX.from + 'deg)' + ' rotateY(' + Data.rotateY.from + 'deg)' + ' rotateZ(' + Data.rotateZ.from + 'deg)'
2304                to = 'rotateX(' + Data.rotateX.to + 'deg)' + ' rotateY(' + Data.rotateY.to + 'deg)' + ' rotateZ(' + Data.rotateZ.to + 'deg)'
2305            }
2306            if(Data.hasOwnProperty('isTranslate') && Data.isTranslate == 'yes'){
2307                let dataX=Data.translateX;
2308                let dataY=Data.translateY;
2309                from = from + 'translateX(' + dataX.from + 'px)' + ' translateY(' + dataY.from  + 'px)'
2310                to = to + 'translateX(' + dataX.to + 'px)' + ' translateY(' + dataY.to  + 'px)'
2311            }
2312
2313            if(Data.hasOwnProperty('isScale') && Data.isScale == 'yes'){
2314                let data_scale_x = Data.scaleX
2315                let data_scale_y = Data.scaleZ
2316                from = from + ' scaleX(' + data_scale_x.from + ')'   + ' scaleY(' + data_scale_y.from + ')'
2317                to = to + 'scaleX(' + data_scale_x.to + ')'   + ' scaleY(' + data_scale_y.to + ')'
2318            }
2319          
2320            let animationName = 'crazy'+ Math.random().toString(36).substring(2,7);
2321
2322            jQuery.keyframe.define({
2323                name:animationName ,
2324                from: { 'transform': from}, 
2325                to:  { 'transform': to } , 
2326            });
2327
2328
2329            $(items).playKeyframe({
2330                name:animationName , 
2331                duration: Data.Duration+'ms',
2332                timingFunction: 'linear',
2333                delay: (Data.Delay=='' ? 0 : Data.Delay)+'ms',
2334                iterationCount:'infinite',
2335                direction: Data.animationDirection, 
2336                fillMode: 'forwards', 
2337                complete: function(){} 
2338            });
2339       
2340        });
2341
2342
2343		LottieData.forEach(data => {
2344            isLottiePanle = data.querySelector('.eae-lottie');
2345            if (isLottiePanle != null) {
2346                let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
2347                let eae_animation = lottie.loadAnimation({
2348                    container: isLottiePanle,
2349                    path: lottie_data.url,
2350                    renderer: "svg",
2351                    loop: lottie_data.loop,
2352                });
2353
2354                if (lottie_data.reverse == true) {
2355                    eae_animation.setDirection(-1);
2356                }
2357            }
2358        })
2359    }
2360	
2361	$(window).on('elementor/frontend/init', function () {
2362		elementorFrontend.hooks.addAction(
2363			"frontend/element_ready/eae-floating-element.default",
2364			EAEFloatingElement
2365		);
2366	});
2367})(jQuery);
2368
2369/***/ },
2370
2371/***/ 836
2372() {
2373
2374( function ($){
2375
2376    $(window).on('elementor/frontend/init', function(){
2377        var ModuleHandler = elementorModules.frontend.handlers.Base,
2378            FormActions;
2379		//console.log(elementor);
2380        FormActions = ModuleHandler.extend({
2381            getDefaultSettings: function getDefaultSettings(){
2382                return {
2383                    settings: this.getElementSettings(),
2384                }
2385            },
2386            getDefaultElements: function getDefaultElements(){
2387                const eId = this.$element.data('id');
2388				const scope = this.$element;
2389				const element = document.querySelector('.elementor-element-' + eId);
2390				let form = null;
2391				if (element !== null) {
2392					form = element.querySelector('.elementor-form');
2393				}
2394                return {
2395                    eid: eId,
2396                    scope: scope,
2397					element: element,
2398					form: form,
2399                }
2400            },
2401			onInit: function onInit() {
2402				const that = this;
2403                const { eid , scope , element, form } = this.getDefaultElements();
2404				const { settings } = this.getDefaultSettings();
2405
2406				//on load eae_dynamic_upload
2407				if (form !== null) {
2408					const eaeUploads = form.querySelectorAll('.elementor-field-type-eae_dynamic_upload .eae-uploads');
2409					if (eaeUploads != null) {
2410						eaeUploads.forEach(function (eaeUpload) {
2411							const eaeUploadItem = eaeUpload.querySelectorAll('.eae-upload-item');
2412							const close = eaeUpload.querySelectorAll('.eae-upload-close');
2413							if (eaeUploadItem.length > 0) {
2414								eaeUploadItem.forEach(function (item) {
2415									const close = item.querySelector('.eae-upload-close');
2416									close.addEventListener('click', function () {
2417										const eaeUploadId = item.getAttribute('data-upload-id');
2418										const eaeUploadField = item.getAttribute('data-upload-field');
2419										let uploadValue = form.querySelector('input[name="' + eaeUploadField + '"]').value.split(',');
2420										uploadValue = uploadValue.filter(item => item !== eaeUploadId).join(',');
2421										form.querySelector('input[name="' + eaeUploadField + '"]').value = uploadValue;
2422										item.remove();
2423									
2424									});
2425								});
2426							}
2427						});
2428					}
2429
2430					let hidden_post_id = document.querySelector('.eae-hidden-post-id');
2431					if (hidden_post_id != null) {
2432						if (form.querySelector('.eae-hidden-post-id') != null) {
2433							form.querySelector('.eae-hidden-post-id').remove();
2434						}
2435						const hidden_post_id_el = hidden_post_id.cloneNode(true);
2436						form.appendChild(hidden_post_id_el);
2437					}
2438				}
2439
2440				//on load eae_wysiwyg
2441				if (form !== null) {
2442					const eae_wysiwyg = form.querySelectorAll('.elementor-field-type-eae_wysiwyg .elementor-field-wysiwyg');
2443					if (eae_wysiwyg != null) {
2444						eae_wysiwyg.forEach(function (wysiwyg) {
2445							let data_required = wysiwyg.dataset.required;
2446							let required = false;
2447							if (data_required == 'yes') {
2448								required = true;
2449							}
2450							wp.editor.remove('form-field-' + wysiwyg.getAttribute('data-custom_id'));
2451							wp.editor.initialize('form-field-' + wysiwyg.getAttribute('data-custom_id'), {
2452								tinymce: {
2453									toolbar1: 'fontsizeselect,backcolor,bold,italic,underline,bullist,numlist,blockquote,alignleft,aligncenter,alignright,alignjustify,link,wp_more,fullscreen,wp_adv',
2454									toolbar2: 'strikethrough,hr,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help'
2455								},
2456								quicktags: false,
2457								mediaButtons: false,
2458								required: required
2459							});
2460						});
2461					}
2462				}
2463
2464				if (elementorFrontend.isEditMode()) {
2465				
2466					elementor.hooks.addFilter('elementor_pro/forms/content_template/field/eae_dynamic_upload', function (inputField, item, settings) {
2467					
2468						let allow_multiple_upload = '';
2469						let name = 'form_fields[' + item.custom_id + ']';
2470						if ( item.dynamic_allow_multiple_upload ) {
2471							allow_multiple_upload = 'multiple';
2472							name = 'form_fields[' + item.custom_id + '][]';
2473						}
2474
2475						if ( ! item.dynamic_file_sizes ) {
2476							data_maxsize = item.dynamic_file_sizes;  //MB
2477							data_maxsize_message = 'This file exceeds the maximum allowed size.';
2478						}
2479						
2480						inputField = '<input class="elementor-field elementor-size-sm elementor-upload-field" type="file" name="' + name + '" id="form-field-' + item.custom_id + '" ' + allow_multiple_upload + ' />';
2481						inputField += '<div class="eae-uploads elementor-repeater-item-' + item._id + '">';
2482						inputField += '<div class="eae-upload-item" data-upload-id="1" data-upload-field="' + name + '">';
2483						inputField += '<span class="eae-upload-close">';
2484						inputField += '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"></path></svg>';
2485						inputField += '</span>';
2486						inputField += '<img src="' + eae.plugin_url + 'assets/img/default.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" />';
2487						inputField += '</div>';
2488						inputField += '</div>';
2489						return inputField;
2490					});
2491				
2492					elementor.hooks.addFilter('elementor_pro/forms/content_template/field/eae_wysiwyg',
2493						function (inputField, item, settings) {
2494							let itemValue = '';
2495							const required = item.required ? 'required' : '';
2496							const rows = item.wysiwyg_rows;
2497							const placeholder = '';
2498							let script = '';
2499								
2500							inputField = '';
2501							inputField += '<div style="width:100%">';
2502							inputField += '<textarea class="elementor-field-wysiwyg elementor-field" row="' + rows + '" placeholder="' + placeholder + '" name="form_fields[' + item.custom_id + ']" id="form-field-' + item.custom_id + '" ' + required + '>' + itemValue + '</textarea>';
2503							script = "<script>" +
2504								"wp.editor.remove('form-field-" + item.custom_id + "'); " +
2505								"wp.editor.initialize('form-field-" + item.custom_id + "', { " +
2506								"tinymce: { " +
2507										"toolbar1: 'fontsizeselect,backcolor,bold,italic,underline,bullist,numlist,blockquote,alignleft,aligncenter,alignright,alignjustify,link,wp_more,fullscreen,wp_adv'," +
2508										"toolbar2: 'strikethrough,hr,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help'" +
2509								"}," +
2510								"quicktags: false, mediaButtons: false, required: true" +
2511								"}); </script>";
2512							inputField += script;
2513							inputField += '</div>';
2514							return inputField;
2515						}, 10, 3
2516					);
2517				}
2518            },
2519        });
2520        elementorFrontend.hooks.addAction('frontend/element_ready/form.default', function ($scope) {
2521            elementorFrontend.elementsHandler.addHandler(FormActions, {
2522				$element: $scope
2523			});
2524        });
2525    });
2526})(jQuery);
2527
2528/***/ },
2529
2530/***/ 839
2531(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
2532
2533"use strict";
2534/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
2535
2536( function ($){
2537
2538    $(window).on('elementor/frontend/init', function(){
2539        var ModuleHandler = elementorModules.frontend.handlers.Base,
2540            GoogleReviews;
2541        
2542        GoogleReviews = ModuleHandler.extend({
2543            getDefaultSettings: function getDefaultSettings(){
2544                return {
2545                    settings: this.getElementSettings(),
2546                }
2547            },
2548            getDefaultElements: function getDefaultElements(){
2549                const eId = this.$element.data('id');
2550                const scope = this.$element;
2551                const element = document.querySelector('.elementor-element-' + eId);
2552                const wrapper = element.querySelector('.eae-rw-container');
2553
2554                return {
2555                    eid: eId,
2556                    scope: scope,
2557                    element: element,
2558                    wrapper: wrapper,
2559                }
2560            },
2561            onInit: function onInit(){
2562                const that = this;
2563                const { eid , scope , element , wrapper }
2563 = this.getDefaultElements();
2564                const { settings } = this.getDefaultSettings();
2565                
2566                if(wrapper != null){
2567                    if(wrapper.classList.contains('eae-rw-swiper')){
2568                        const outer_wrapper = scope.find('.eae-swiper-outer-wrapper');
2569                        const swiper_settings = outer_wrapper.data('swiper-settings');
2570                        new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, eid, scope);
2571                    }
2572    
2573                    that.getLottie(wrapper);
2574                }
2575            },
2576            getLottie: function getLottie(wrapper){
2577                const isLottiePanel = wrapper.querySelectorAll('.eae-lottie');
2578                if (isLottiePanel != null) {
2579                    isLottiePanel.forEach(function (element) {
2580                        let lottie_data = JSON.parse(element.getAttribute('data-lottie-settings'));
2581                        let eae_animation = lottie.loadAnimation({
2582                            container: element,
2583                            path: lottie_data.url,
2584                            renderer: "svg",
2585                            loop: lottie_data.loop,
2586                        });
2587
2588                        if (lottie_data.reverse == true) {
2589                            eae_animation.setDirection(-1);
2590                        }
2591                    });
2592                }
2593            },
2594        });
2595        elementorFrontend.hooks.addAction('frontend/element_ready/eae-google-reviews.default', function ($scope) {
2596            elementorFrontend.elementsHandler.addHandler(GoogleReviews, {
2597				$element: $scope
2598			});
2599        });
2600    });
2601})(jQuery);
2602
2603/***/ },
2604
2605/***/ 404
2606() {
2607
2608(function ($) {
2609	const EAEImageAccordion = function ($scope) {
2610		const eId = $scope.attr('data-id');
2611		const element = document.querySelector('.elementor-element-' + eId);
2612		const wrapper = element.querySelector('.eae-img-acc-wrapper');
2613		const panels = wrapper.getAttribute('data-items');
2614		wrapper.style.setProperty('--eae-panels', Number(panels) - 1);
2615		const action = wrapper.getAttribute('data-action');
2616	// let lottie_data = $(this).data("lottie-settings");
2617
2618    
2619	let flexSlides = wrapper.querySelectorAll('.eae-img-panel');
2620	flexSlides.forEach(flexSlide => {
2621		if (action == 'hover') {
2622			flexSlide.addEventListener('mousemove', function (e) {
2623				if (this.classList.contains('active')) {
2624					return;
2625				} else {
2626					removeActiveClass(wrapper);
2627					flexSlide.classList.add('active');
2628				}
2629				checkAnyActiveSlide(wrapper);
2630			})
2631			flexSlide.addEventListener('mouseleave', function (e) {
2632				flexSlide.classList.remove('active');
2633				checkAnyActiveSlide(wrapper);
2634			})
2635		} else {
2636			flexSlide.addEventListener('click', function (e) {
2637				if (this.classList.contains('active')) {
2638					return;
2639				} else {
2640					removeActiveClass(wrapper);
2641					flexSlide.classList.add('active');
2642				}
2643			})
2644		}
2645
2646		isLottiePanle = flexSlide.querySelector('.eae-lottie');
2647		if (isLottiePanle != null) {
2648			let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
2649			
2650			let eae_animation = lottie.loadAnimation({
2651				container: isLottiePanle,
2652				path: lottie_data.url,
2653				renderer: "svg",
2654				loop: lottie_data.loop,
2655			});
2656
2657			if (lottie_data.reverse == true) {
2658				eae_animation.setDirection(-1);
2659			}
2660		}
2661	});
2662
2663		window.addEventListener("resize", function(){
2664			let resizeValue = wrapper.getAttribute('data-stacked');
2665			let widnowWidth = this.window.innerWidth;
2666			if(widnowWidth <= resizeValue ){
2667				wrapper.classList.add('enable-stacked');
2668			}else{
2669				wrapper.classList.remove('enable-stacked');
2670			}
2671		});
2672	}
2673	function removeActiveClass(imageAccordion){
2674		let flexSlides = imageAccordion.querySelectorAll('.eae-img-panel');
2675		flexSlides.forEach(flexSlide => {
2676			flexSlide.classList.remove('active');
2677		})
2678	}
2679
2680
2681	function checkAnyActiveSlide(imageAccordion){
2682		let defaultActivePanel = imageAccordion.getAttribute('data-defult-panel');
2683		let flexSlidesActive = imageAccordion.querySelectorAll('.eae-img-panel.active');
2684		
2685		if(flexSlidesActive.length > 0){
2686			return
2687		}else{
2688			let flexSlides = imageAccordion.querySelectorAll('.eae-img-panel');
2689			flexSlides[defaultActivePanel -1].classList.add('active');
2690		}
2691	}
2692
2693	$(window).on('elementor/frontend/init', function () {
2694		elementorFrontend.hooks.addAction(
2695			"frontend/element_ready/eae-image-accordion.default",
2696			EAEImageAccordion
2697		);
2698	});
2699})(jQuery);
2700
2701/***/ },
2702
2703/***/ 361
2704() {
2705
2706
2707(function ($){
2708
2709    $(window).on('elementor/frontend/init', function () {
2710        var ModuleHandler = elementorModules.frontend.handlers.Base,
2711            ImageHotspotHandler;
2712        ImageHotspotHandler = ModuleHandler.extend({
2713            getDefaultElements: function getDefaultElements() {
2714				
2715                const eId = this.$element.data('id'); 
2716                const element = document.querySelector('.elementor-element-' + eId);
2717                const wrapper = element.querySelector('.eae-ih-wrapper');
2718                return{
2719                    eid: eId,
2720                    element: element,
2721                    wrapper: wrapper,
2722                    settings: this.getElementSettings(),
2723                }
2724			},
2725            onInit: function onInit(){
2726                const { wrapper , settings} = this.getDefaultElements();
2727                const markers = wrapper.querySelectorAll('.eae-ih-marker');
2728                const tooltips = wrapper.querySelectorAll('.eae-ih-tooltip');
2729                const animation = settings.tooltip_animation_type;
2730                const preview = wrapper.querySelectorAll(".eae-ih-tooltip-show");  
2731                const rep_preview = wrapper.querySelectorAll(".eae-ih-rep-tooltip-show");
2732
2733                this.getLottie();
2734                const tippyInstance = [];
2735                
2736                markers.forEach(function (marker, index){
2737                    const tooltipContent = tooltips[index].innerHTML;
2738                    // if(preview.length > 0){
2739                    //     control_settings['trigger'] = 'manual'; 
2740                    //    }
2741                    //    if(rep_preview.length > 0){
2742                    //     control_settings['trigger'] = 'manual';    
2743                    // }
2744
2745                    tippyInstance[index] = tippy(marker, {
2746                        content: tooltipContent,
2747                        appendTo: 'parent',
2748                        placement: 'auto',  
2749                        allowHTML: true,
2750                        hideOnClick: false,
2751                        arrow: true, 
2752                        trigger: settings.trigger,
2753                        maxWidth: 'none',
2754                        onCreate: function(instance){                           
2755                            instance.popper.classList.add('eae-ih-add-tooltip');
2756                            instance.popper.childNodes.forEach(function(childNode) {
2757                                if (childNode.classList) {
2758                                  childNode.classList.add('animated');
2759                                  childNode.classList.add('eae-ih-tooltip-animtion');
2760                                  childNode.classList.add(animation);
2761                                }
2762                              });
2763                            // Previous Button
2764                            const prevButton = instance.popper.querySelector('.eae-ih-tooltip-prev');
2765                            if(prevButton != null){
2766                                prevButton.addEventListener('click', function(){
2767                                    const tooltipId = this.getAttribute('data-tooltip-id');
2768                                    const tippyIndex = tooltipId - 1;
2769                                    tippyInstance[tippyIndex].hide();
2770                                    tippyInstance[tippyIndex - 1].show();
2771                                });
2772                            }
2773
2774                            // Next Button
2775                            const nextButton = instance.popper.querySelector('.eae-ih-tooltip-next');
2776                            if(nextButton != null){
2777                                nextButton.addEventListener('click', function(){
2778                                    const tooltipId = this.getAttribute('data-tooltip-id');
2779                                    const tippyIndex = tooltipId - 1;
2780                                    tippyInstance[tippyIndex].hide();
2781                                    tippyInstance[tippyIndex + 1].show();
2782                                });
2783                            }
2784                
2785                            //End Tour Button
2786                            const endButton = instance.popper.querySelector('.eae-ih-end-tour-btn');
2787                            if(endButton != null){
2788                                endButton.addEventListener('click', function(){
2789                                    const tooltipId = this.getAttribute('data-tooltip-id');
2790                                    const tippyIndex = tooltipId - 1;
2791                                    tippyInstance[tippyIndex].hide();
2792                                    if (preview.length > 0 && elementorFrontend.isEditMode()) {
2793                                        tippyInstance[0].show();
2794                                    }
2795                                    if (marker.classList.contains("eae-ih-rep-tooltip-show")) {
2796                                    tippyInstance[index].show();
2797                                    }
2798                                });
2799                            }
2800                
2801                            //Close Icon
2802                            const closeButton = instance.popper.querySelector('.eae-ih-tooltip-close-icon');
2803                            if(closeButton != null){
2804                                closeButton.addEventListener('click', function(){
2805                                    const tooltipId = this.getAttribute('data-tooltip-id');
2806                                    const tippyIndex = tooltipId - 1;
2807                                    tippyInstance[tippyIndex].hide();
2808                                    //preview tooltip
2809                                    if (preview.length > 0 && elementorFrontend.isEditMode()) {
2810                                        tippyInstance[0].show();
2811                                      }
2812                                      if (marker.classList.contains("eae-ih-rep-tooltip-show")) {
2813                                        tippyInstance[index].show();
2814                                      }
2815                                });
2816                            }
2817                            
2818                            if(index == 0){
2819                                if(prevButton != null){
2820                                    prevButton.style.display = 'none';
2821                                }
2822                            }
2823            
2824                            if(index == markers.length - 1){
2825                                if(nextButton != null){
2826                                    nextButton.style.display = 'none';
2827                                }
2828                            }
2829                        },
2830                        // onShow: function(instance){
2831                            // let tippyPosition = instance.reference.getBoundingClientRect();
2832                            // let marker = instance.popper;
2833                            // console.log('marker',marker);
2834                            // console.log('tippyPosition',tippyPosition);
2835
2836                            // marker.style.top = tippyPosition.y + 'px !important';
2837                            // marker.style.left = tippyPosition.x + 'px !important';
2838                            // console.log(instance.popper);
2839                            // setTimeout(function(){
2840                            //     instance.popperInstance.update(
2840);
2841                            // },0);
2842                            // instance.popperInstance.update();
2843                            // window.dispatchEvent(new Event('scroll'));
2844                        // },
2845                    });
2846
2847                    marker.addEventListener('click', function () {
2848                        tippyInstance.forEach((instance, i) => {
2849                            if (preview.length > 0 || rep_preview.length > 0) {
2850                                const tippy_index = this.getAttribute('data-marker') - 1;
2851                                if(marker.classList.contains('eae-ih-tooltip-show')){
2852                                    if (tippyInstance[tippy_index]) {
2853                                        tippyInstance[tippy_index].show();
2854                                    }
2855                                }else if(marker.classList.contains('eae-ih-rep-tooltip-show')){
2856                                    if (tippyInstance[tippy_index]) {
2857                                        tippyInstance[tippy_index].show();
2858                                    }
2859                                }else{
2860                                    if (tippyInstance[tippy_index]) {
2861                                        tippyInstance[tippy_index].hide();
2862                                    }
2863                                }
2864                            }
2865                            
2866                            //if (rep_preview.length > 0) { 
2867                            //     const tippy_index = this.getAttribute('data-marker') - 1;
2868                            //     if(marker.classList.contains('eae-ih-rep-tooltip-show')){
2869                            //         if (tippyInstance[tippy_index]) {
2870                            //             tippyInstance[tippy_index].show();
2871                            //         }
2872                            //     }else if(marker.classList.contains('eae-ih-tooltip-show')){
2873                            //         if (tippyInstance[tippy_index]) {
2874                            //             tippyInstance[tippy_index].show();
2875                            //         }
2876                            //     }else{
2877                            //         if (tippyInstance[tippy_index]) {
2878                            //             tippyInstance[tippy_index].hide();
2879                            //         }
2880                            //     }
2881                            //}
2882
2883                            if(preview.length == 0 && rep_preview.length == 0){
2884                                if (i !== index) {
2885                                    instance.hide();
2886                                }
2887                            }
2888
2889                            if(!elementorFrontend.isEditMode()){       
2890                                if (i !== index) {
2891                                    instance.hide();
2892                                }
2893                            }
2894
2895                        });
2896                    });
2897
2898                });
2899
2900                if (preview.length > 0) {
2901                    tippyInstance[0].show();
2902                }
2903
2904                //tooltip repeat preview
2905                if (rep_preview.length > 0) {
2906                    rep_preview.forEach((marker_id) => {
2907                        const tippy_index = marker_id.getAttribute('data-marker') - 1;
2908                        if (tippyInstance[tippy_index]) {
2909                            tippyInstance[tippy_index].show();
2910                        }
2911                    });
2912                }
2913
2914            },
2915            getLottie: function getLottie(){
2916                const { wrapper } = this.getDefaultElements();
2917                const markers = wrapper.querySelectorAll('.eae-lottie');
2918                markers.forEach(function (element){
2919                    if(element != null){
2920                        let lottie_data = JSON.parse(element.getAttribute('data-lottie-settings'));
2921                        let eae_animation = lottie.loadAnimation({
2922                            container: element,
2923                            appendTo: 'parent',
2924                            path: lottie_data.url,
2925                            renderer: "svg",
2926                            loop: lottie_data.loop,
2927                        });
2928
2929                        if (lottie_data.reverse == true) {
2930                            eae_animation.setDirection(-1);
2931                        }
2932                    }
2933                });
2934            }
2935        });
2936        
2937        elementorFrontend.hooks.addAction('frontend/element_ready/eae-image-hotspot.default', function ($scope){
2938            elementorFrontend.elementsHandler.addHandler(ImageHotspotHandler, {
2939                $element: $scope
2940            });
2941        });
2942    });
2943
2944})(jQuery);
2945
2946/***/ },
2947
2948/***/ 537
2949() {
2950
2951(function ($) {
2952	const EAEImageScroll = function ($scope) {
2953
2954        var imageElement = $scope.find(".wts-eae-image-scroll");
2955        var imageOverlay = imageElement.find(".image-scroll-wrapper::before");
2956        var imageVertical = imageElement.find(".image-scroll-wrapper");
2957        var imagedataElement = imageElement.data("settings");
2958        var image = imageElement.find("img");
2959        var imageDirection = imagedataElement["direction"];
2960        var imageReverse = imagedataElement["reverse"];
2961        var transformOffset = null;
2962
2963        
2964        const eId = $scope.attr('data-id');
2965		const element = document.querySelector('.elementor-element-' + eId);
2966        var isLottiePanle = element.querySelector('.eae-lottie-animation');
2967
2968        if (isLottiePanle != null) {
2969			let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
2970			let eae_animation = lottie.loadAnimation({
2971				container: isLottiePanle,
2972				path: lottie_data.url,
2973				renderer: "svg",
2974				loop: lottie_data.loop,
2975			});
2976
2977			if (lottie_data.reverse == true) {
2978				eae_animation.setDirection(-1);
2979			}
2980		}
2981
2982        function startTransform() {
2983            image.css("transform", (imageDirection === "vertical" ? "translateY" : "translateX") + "( -" +
2984                transformOffset + "px)");
2985        }
2986        function endTransform() {
2987            image.css("transform", (imageDirection === "vertical" ? "translateY" : "translateX") + "(0px)");
2988        }
2989
2990        function setTransform() {
2991            if (imageDirection === "vertical") {
2992                transformOffset = image.height() - imageElement.height();
2993            } else {
2994                transformOffset = image.width() - imageElement.width();
2995            }
2996        }
2997        if (imagedataElement["trigger"] === "scroll") {
2998            imageElement.addClass("eae-container-scroll");
2999            if (imageDirection === "vertical") {
3000                imageVertical.addClass("eae-image-scroll-ver");
3001            } else {
3002                
3003            }
3004        }
3005        else {
3006            if (imageReverse === "yes") {
3007                imageElement.imagesLoaded(function () {
3008                    imageElement.addClass("eae_scroll");
3009                    setTransform();
3010                    startTransform();
3011                });
3012            }
3013            if (imageDirection === "vertical") {
3014                imageVertical.removeClass("eae-image-scroll-ver");
3015            }
3016          
3017            imageElement.mouseenter(function () {
3018                setTransform();
3019                imageReverse === "yes" ? endTransform() : startTransform();
3020            });
3021            imageElement.mouseleave(function () {
3022                imageReverse === "yes" ? startTransform() : endTransform();
3023            });
3024        }
3025    };
3026	
3027
3028	$(window).on('elementor/frontend/init', function () {
3029		elementorFrontend.hooks.addAction(
3030			"frontend/element_ready/eae-image-scroll.default",
3031			EAEImageScroll
3032		);
3033	});
3034})(jQuery);
3035
3036/***/ },
3037
3038/***/ 210
3039() {
3040
3041(function ($) {
3042	const EAEImageStack = function ($scope) {        
3043        const eId = $scope.attr('data-id');
3044		const element = document.querySelector('.elementor-element-' + eId);
3045		const wrapper = element.querySelector('.eae-image-stack');  
3046		let LottieData = wrapper.querySelectorAll('.img-stack-item.eae-is-ct-lottie-animation'); 
3047
3048            LottieData.forEach(data => {
3049                isLottiePanle = data.querySelector('.eae-lottie');
3050                if (isLottiePanle != null) {
3051                    let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
3052                    let eae_animation = lottie.loadAnimation({
3053                        container: isLottiePanle,
3054                        path: lottie_data.url,
3055                        renderer: "svg",
3056                        loop: lottie_data.loop,
3057                    });
3058
3059                    if (lottie_data.reverse == true) {
3060                        eae_animation.setDirection(-1);
3061                    }
3062                }
3063            })
3064        }
3065
3066    $(window).on('elementor/frontend/init', function () {
3067        elementorFrontend.hooks.addAction(
3068            "frontend/element_ready/eae-image-stack.default",
3069            EAEImageStack
3070        );
3071    });
3072})(jQuery);
3073
3074/***/ },
3075
3076/***/ 898
3077() {
3078
3079(function ($){
3080    
3081    $(window).on('elementor/frontend/init', function () {
3082        var ModuleHandler = elementorModules.frontend.handlers.Base,
3083			InfoGroupHandler;
3084
3085        InfoGroupHandler = ModuleHandler.extend({
3086            getDefaultSettings: function getDefaultSettings() {
3087                return {
3088                    settings: this.getElementSettings(),
3089                };
3090            },
3091            getDefaultElements: function getDefaultElements() {
3092				
3093                const eId = this.$element.data('id'); 
3094                const element = document.querySelector('.elementor-element-' + eId);
3095                const wrapper = element.querySelector('.eae-ig-wrapper');
3096                
3097                return{
3098                    eid: eId,
3099                    element: element,
3100                    wrapper: wrapper,
3101                }
3102			},
3103            onInit: function onInit(){
3104                const { element , wrapper }
3104 = this.getDefaultElements();
3105                const { settings } = this.getDefaultSettings();
3106                
3107                isLottiePanel = wrapper.querySelectorAll('.eae-ig-lottie');
3108                if (isLottiePanel != null) {
3109                    isLottiePanel.forEach(element => {
3110                        let lottie_data = JSON.parse(element.getAttribute('data-lottie-settings'));
3111                        let eae_animation = lottie.loadAnimation({
3112                            container: element,
3113                            path: lottie_data.url,
3114                            renderer: "svg",
3115                            loop: lottie_data.loop,
3116                        });
3117                        if (lottie_data.reverse == true) {
3118                            eae_animation.setDirection(-1);
3119                        }
3120                    });
3121                }
3122
3123                let clickedButton = '';
3124                let activeElement = '';
3125
3126                const items = element.querySelectorAll('.eae-ig-item-wrapper');
3127
3128                items.forEach(item => {
3129                    if(item.classList.contains('eae-ig-active-item')){
3130                        wrapper.classList.add('eae-ig-active');
3131                        if(item.classList.contains('slide')){
3132                            this.infoSlideDown(item);
3133                        }else{
3134                            this.infoFadeIn(item);
3135                        }
3136                        clickedButton = item;
3137                        activeElement = item;
3138                    }
3139                });
3140 
3141                const closeBtu = element.querySelectorAll('.eae-ig-close-button');
3142                closeBtu.forEach(element => {
3143                    element.addEventListener('click',() => {
3144                        items.forEach(item => {
3145                            if(item.classList.contains('eae-ig-active-item')){
3146                                this.cloAnimation(item,settings.description_animtion_type);
3147                                item.classList.remove('eae-ig-active-item');
3148                                wrapper.classList.remove('eae-ig-active');
3149                                clickedButton = '';
3150                                activeElement = '';
3151                            }
3152                        });
3153                    });
3154                });
3155
3156                if(settings.description_trigger_on == 'button'){
3157                    const Button = element.querySelectorAll('.eae-ig-link');
3158                    Button.forEach(element => {
3159                        element.addEventListener('click',() => {
3160                            items.forEach(item => {
3161                                if(item.classList.contains('eae-ig-active-item')){
3162                                    this.cloAnimation(item,settings.description_animtion_type);
3163                                    item.classList.remove('eae-ig-active-item');
3164                                    wrapper.classList.remove('eae-ig-active');
3165                                }
3166                            });
3167                            if(clickedButton !== element){
3168                                let parentEle = element.parentElement;
3169                                let parEle = parentEle.parentElement;
3170                                parEle.classList.add('eae-ig-active-item');
3171                                wrapper.classList.add('eae-ig-active');
3172                                this.opAnimation(parEle,settings.description_animtion_type);
3173                                clickedButton = element;
3174                                activeElement = '';
3175                            }else{
3176                                clickedButton = '';
3177                            };
3178                        });
3179                    });
3180                }else{
3181                    items.forEach(item => {
3182                        item.addEventListener('click', () => {
3183                            items.forEach(item => {
3184                                if(item.classList.contains('eae-ig-active-item')){
3185                                    item.classList.remove('eae-ig-active-item');
3186                                    wrapper.classList.remove('eae-ig-active');
3187                                    
3188                                    this.cloAnimation(item,settings.description_animtion_type);
3189                                }
3190                            });
3191                            if(activeElement != item){
3192                                item.classList.add('eae-ig-active-item');
3193                                wrapper.classList.add('eae-ig-active');
3194                                
3195                                this.opAnimation(item,settings.description_animtion_type);
3196                                activeElement = item;
3197                            }else{
3198                                activeElement = '';
3199                            }
3200                            clickedButton = '';
3201                        });
3202                    });
3203                }
3204
3205            },
3206            opAnimation: function opAnimationActive(element,animationType){
3207                if(animationType == 'slide'){
3208                    setTimeout(this.infoSlideDown,400,element);
3209                }else{
3210                    setTimeout(this.infoFadeIn,400,element);
3211                }
3212            },
3213            cloAnimation: function cloAnimation(element, animationType){
3214                if(animationType == 'slide'){
3215                    this.infoSlideUp(element);
3216                }else{
3217                    this.infoFadeOut(element);
3218                }
3219            },
3220            infoSlideUp: function infoSlideUp(element){
3221                let container = element.nextSibling.nextElementSibling;
3222                jQuery(container).slideUp();
3223            },
3224            infoSlideDown: function infoSlideDown(element){
3225                let container = element.nextSibling.nextElementSibling;
3226                jQuery(container).slideDown();
3227            },
3228            infoFadeIn: function infoFadeIn(element){
3229                let container = element.nextSibling.nextElementSibling;
3230                jQuery(container).fadeIn();
3231            },
3232            infoFadeOut: function infoFadeOut(element){
3233                let container = element.nextSibling.nextElementSibling;
3234                jQuery(container).fadeOut();
3235            }
3236        });
3237        elementorFrontend.hooks.addAction('frontend/element_ready/eae-info-group.default', function ($scope) {
3238		
3239			elementorFrontend.elementsHandler.addHandler(InfoGroupHandler, {
3240				$element: $scope
3241			  });
3242		});
3243    });
3244})(jQuery);
3245
3246/***/ },
3247
3248/***/ 862
3249(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
3250
3251"use strict";
3252/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
3253
3254(function ($) {
3255	
3256	$(window).on('elementor/frontend/init', function () {
3257		var ModuleHandler = elementorModules.frontend.handlers.Base,
3258			InstaFeedHandler;
3259		
3260		InstaFeedHandler = ModuleHandler.extend({
3261			// check if is in edit mode 
3262			
3263			getDefaultSettings: function getDefaultSettings() {
3264				
3265				return {
3266					selectors: {
3267						container: '.eae-post-collection',
3268						item: '.eae-insta-post',
3269						grid_gap: '.grid-gap',
3270						swiper_wrapper: '.eae-swiper-outer-wrapper',
3271					},
3272					settings: this.getElementSettings(),
3273				};
3274			},
3275			getDefaultElements: function getDefaultElements() {
3276				
3277				const selectors = this.getSettings( 'selectors' );
3278				
3279				return {
3280					container: this.$element.find( selectors.container ),
3281					items: this.$element.find( selectors.item ),
3282					grid_gap: this.$element.find(selectors.grid_gap),
3283					swiper_wrapper: this.$element.find(selectors.swiper_wrapper),
3284				};
3285			},
3286			onInit: function onInit() {
3287				
3288				const { container } = this.getDefaultElements();
3289				const { settings } = this.getSettings();
3290				const that = this;
3291
3292				if (settings.insta_feed_layout == 'masonry') {
3293					container.imagesLoaded().done(function () {
3294						that.runMasonry();
3295					});
3296				}
3297				
3298				window.addEventListener('resize', this.runMasonry.bind(this));
3299
3300				this.runSwiper();
3301				this.runLightbox();
3302
3303			},
3304			onElementChange: function onElementChange(propertyName) {
3305				//alert(propertyName);
3306				if (propertyName === 'insta_feed_row_gap') {
3307					this.runMasonry();
3308				}
3309			},
3310
3311			runMasonry: function runMasonry() {
3312				const { settings } = this.getSettings();
3313
3314				if(settings.insta_feed_layout != 'masonry') return;
3315
3316				const { container, items, grid_gap } = this.getDefaultElements();
3317				
3318				var heights = [],
3319				distanceFromTop = 0,
3320				columnsCount = 3,
3321				verticalSpaceBetween = 10;
3322
3323				distanceFromTop = container.position().top;
3324				columnsCount = container.css('grid-template-columns').split(' ').length;
3325				verticalSpaceBetween = grid_gap.width();
3326				distanceFromTop += parseInt(container.css('margin-top'), 10);
3327				
3328				items.each(function (index) {
3329					var row = Math.floor(index / columnsCount),
3330						$item = jQuery(this),
3331						itemHeight = $item[0].getBoundingClientRect().height + verticalSpaceBetween;
3332					if (row) {
3333						
3334						var itemPosition = $item.position(),
3335							indexAtRow = index % columnsCount,
3336							pullHeight = itemPosition.top - distanceFromTop - heights[indexAtRow];
3337						
3338						//pullHeight -= parseInt($item.css('margin-top'), 10);
3339						
3340						pullHeight *= -1;
3341						$item.css('margin-top', pullHeight + 'px');
3342						heights[indexAtRow] += itemHeight;
3343					} else {
3344						heights.push(itemHeight);
3345						$item.css('margin-top', 0);
3346					}
3347					$item.css('visibility', 'visible');
3348					
3349				});
3350				
3351			},
3352			runSwiper: function runSwiper() {
3353				const { settings } = this.getSettings();
3354				if (settings.insta_feed_layout != 'carousel') return;
3355
3356				const widget_id = this.$element.data('id');
3357				const { swiper_wrapper }
3357 = this.getDefaultElements();
3358				const swiper_settings = swiper_wrapper.data('swiper-settings');
3359				new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, widget_id);
3360
3361			},
3362			runLightbox: function runLightbox() {
3363				const { container } = this.getDefaultElements();
3364				if (!container.hasClass('lightbox')) return;
3365
3366				var options = {
3367					selector: '.eae-insta-post-link'
3368				};
3369
3370				const widget_id = this.$element.data('id');
3371				var collection = document.getElementById('insta-grid-' + widget_id);
3372				var lgSettings = JSON.parse(container.attr('data-lg-settings'));
3373				options = { ...options, ...lgSettings };
3374
3375				var plugins = {
3376					plugins: [
3377						lgVideo,
3378						lgShare,
3379						lgZoom,
3380						lgHash,
3381						lgRotate,
3382						lgFullscreen,
3383						lgThumbnail
3384					],
3385				};
3386
3387				options = { ...options, ...plugins };
3388				lightGallery(collection, options);
3389			}
3390		});
3391
3392		elementorFrontend.hooks.addAction('frontend/element_ready/eae-instagram-feed.default', function ($scope) {
3393		
3394			elementorFrontend.elementsHandler.addHandler(InstaFeedHandler, {
3395				$element: $scope
3396			  });
3397		});
3398	});
3399
3400	
3401})(jQuery);
3402
3403/***/ },
3404
3405/***/ 994
3406() {
3407
3408(function ($){
3409
3410    $(window).on('elementor/frontend/init', function () {
3411        var ModuleHandler = elementorModules.frontend.handlers.Base,
3412			TableOfContentHandler;
3413
3414        TableOfContentHandler = ModuleHandler.extend({
3415            getDefaultSettings: function getDefaultSettings() {
3416                return {
3417                    settings: this.getElementSettings(),
3418                };
3419            },
3420            getDefaultElements: function getDefaultElements(){
3421                
3422                const eId = this.$element.data('id');
3423                const element = document.querySelector('.elementor-element-' + eId);
3424                const wrapper = element.querySelector('.eae-toc-wrapper');
3425                return {
3426                    eid: eId,
3427                    element: element,
3428                    wrapper: wrapper,
3429                }
3430            },
3431            onInit: function onInit(){
3432                const { settings } = this.getDefaultSettings();
3433                const { wrapper } = this.getDefaultElements();
3434                const that = this;
3435                const headingTag = settings.anchors_by_tags.join(',');
3436                
3437                this.getLottie();
3438                let container = '';
3439                if(settings.included_container != undefined && settings.included_container != ''){
3440                    container = document.querySelector(settings.included_container);
3441                }else{
3442                    container = document.querySelector(".elementor");
3443                }
3444                
3445                let headings = [];
3446                let headingData = [];
3447                if(headingTag != ''){
3448                    const heading = container.querySelectorAll(headingTag);
3449                    let flag = 0;
3450                    heading.forEach( function (element, index) {
3451                        if(element.classList.contains('eae-toc-heading')){
3452                            flag++;
3453                        }
3454                        if(flag == 0){
3455                            headings[index] = element;
3456                        }else{
3457                            flag = 0;
3458                        }
3459                    });
3460
3461                    headings = this.excludeHeadings(headings);
3462                    
3463                    this.addAnchors(headings);
3464
3465                    headings.forEach(function(element,index){
3466                        headingData.push({
3467                            tag: element.nodeName.slice(1),
3468                            text: element.textContent,
3469                            class: element.className,
3470                        });
3471                    });
3472
3473                    if(settings.hierarchical_view == 'yes'){
3474                        headingData = this.addLevel(headingData);
3475                    }else{
3476                        headingData.forEach(function(heading){
3477                            heading.level = 0;
3478                        });
3479                    }
3480                    
3481                    let htmlTag = this.getHeadings(0,headingData,0);
3482
3483
3484                    if(htmlTag.html != ''){
3485                        wrapper.querySelector(".eae-toc-headings-wrapper").innerHTML = htmlTag.html;
3486                    }
3487
3488                    if(settings.collapse_box == 'yes'){
3489                        this.minimizeBox(wrapper);
3490                    }
3491
3492                    if(settings.toc_sticky == 'yes'){
3493                        this.stickyToc();
3494                    }
3495    
3496                    if(settings.follow_heading == 'yes'){
3497                        let tag = wrapper.querySelectorAll('.eae-toc-heading-anchor-wrapper');
3498                        let headingAnchor = [];
3499                        let offset = '';
3500                        if(settings.follow_heading_offset.size != ''){
3501                            offset = settings.follow_heading_offset.size + settings.follow_heading_offset.unit;
3502                        }else{
3503                            offset = '50%'
3504                        }
3505                        
3506                        if(tag != ''){
3507                            tag.forEach(function(element,index){
3508                                headingAnchor[index] = document.querySelector('#eae-toc-heading-anchor-' + index);
3509                            });
3510                            headingAnchor.forEach(function(element,index){
3511                                if(element != null){
3512                                    that.followHeading(element,index,tag,offset);
3513                                }
3514                            });
3515                        }
3516                    }
3517                }
3518                this.getScrollEffect(); 
3519            },
3520            getScrollEffect: function getScrollEffect(){
3521                let html = document.querySelector('html');
3522                if(!html.classList.contains('eae-toc-scroll')){
3523                    html.classList.add('eae-toc-scroll');
3524                }
3525            },
3526            getLottie: function getLottie(){
3527                const { wrapper } = this.getDefaultElements();
3528                isLottiePanel = wrapper.querySelector('.eae-lottie');
3529                if (isLottiePanel != null) {
3530                    let lottie_data = JSON.parse(isLottiePanel.getAttribute('data-lottie-settings'));
3531                    let eae_animation = lottie.loadAnimation({
3532                        container: isLottiePanel,
3533                        path: lottie_data.url,
3534                        renderer: "svg",
3535                        loop: lottie_data.loop,
3536                    });
3537
3538                    if (lottie_data.reverse == true) {
3539                        eae_animation.setDirection(-1);
3540                    }
3541                }
3542            },
3543            addAnchors: function addAnchors(element){
3544                let flag = 0;
3545                element.forEach(function (element,index){
3546                    newNode = "<span id='eae-toc-heading-anchor-"+ flag +"'></span>";
3547                    element.insertAdjacentHTML("beforebegin",newNode);
3548                    flag++;
3549                });
3550            },
3551            addLevel: function addLevel(data){
3552                const { settings } = this.getDefaultSettings();
3553                data.forEach(function (element , index){
3554                    element.level = 0;    
3555                    for( var i = index - 1; i >= 0; i-- ){
3556                        let currentItem = data[i];
3557                        if(currentItem.tag <= element.tag){
3558                            element.level = currentItem.level;
3559                            if(currentItem.tag < element.tag){
3560                                element.level++;
3561                            }
3562                            break;
3563                        }
3564                    }
3565                });
3566                return data;
3567            },
3568            excludeHeadings: function excludeHeadings(headingData){
3569                const { settings } = this.getDefaultSettings();
3570
3571                if(settings.anchors_by_selector !== '' && settings.anchors_by_selector !== undefined){
3572
3573                    let excludedClassName = settings.anchors_by_selector.split(',');
3574                
3575                    headingData = headingData.filter((element) => {
3576                        flag = 0;
3577                        for(i=0; i < excludedClassName.length; i++){
3578                            if(element.class != excludedClassName[i] && element.closest(excludedClassName[i]) == null){
3579                                flag++;
3580                            }else{
3581                                flag = 0;
3582                                break;
3583                            }
3584                        }
3585                        if(flag!=0){
3586                            item = element;
3587                        }else{
3588                            item ="";
3589                        }
3590                        return item;
3591                    });
3592                    return headingData;
3593                }
3594                return headingData;
3595            },
3596            getHeadings: function getHeadings(level,headingData,listItemIn){
3597                const { settings } = this.getDefaultSettings();
3598                let html = "";
3599                let headingsLinkDiv = '<div class="eae-toc-heading-anchor-wrapper">';
3600                let headingDivClo = '</div>';
3601                if(headingData.length != 0){
3602                    html = "<ul>"
3603                    for(var i = listItemIn; i < headingData.length; i++){
3604                        if (level > headingData[i].level ) {
3605                            break;
3606                        }
3607                        if(level === headingData[i].level) {
3608                            let headingsLink = "<a class='eae-toc-heading-anchor eae-toc-heading-anchor-"+ i +"' href='#eae-toc-heading-anchor-"+ i +"'>" + headingData[i].text + "</a></div>";
3609                            if(settings.marker_type == 'bullets'){
3610                                headingsLink = headingsLinkDiv + '<i class="'+ settings.icon.value +'"></i>' + headingsLink + headingDivClo;
3611                            }else{
3612                                headingsLink = headingsLinkDiv + headingsLink + headingDivClo;
3613                            }
3614                            
3615                            html += "<li>" + headingsLink;
3616                            listItemIn++;
3617                            nextItem = headingData[listItemIn];
3618                            
3619                            if(nextItem != undefined){
3620                                if(level < nextItem.level ){
3621                                    let data = this.getHeadings(nextItem.level,headingData,listItemIn);
3622                                    html += data.html;
3623                                    listItemIn = data.listItemIn;
3624                                }
3625                            }
3626                            html += "</li>";
3627                        }
3628                    }
3629                    html += "</ul>";
3630                }else{
3631                    html = 'No headings were found on this page.';
3632                }
3633                
3634                return { 
3635                    html: html,
3636                    listItemIn: listItemIn,
3637                };
3638            },
3639            minimizeBox: function minimizeBox(wrapper){
3640                const { settings } = this.getDefaultSettings();
3641                let element = wrapper.querySelector('.eae-toc-heading-container');
3642                let headingsCon = wrapper.querySelector('.eae-toc-headings-wrapper');
3643                
3644                if(1440 == settings.toc_collapse_devices && screen.width == 1440){
3645                    element.classList.add('eae-toc-active');
3646                }
3647
3648                window.addEventListener("resize", function(){
3649                    let resizeValue = settings.toc_collapse_devices;
3650                    let windowWidth = this.window.innerWidth;
3651                    
3652                    if(windowWidth < resizeValue ){
3653                        jQuery(headingsCon).slideUp();
3654                        element.classList.remove('eae-toc-active');
3655                    }else{
3656                        jQuery(headingsCon).slideDown();
3657                        element.classList.add('eae-toc-active');
3658                    }
3659                });
3660                
3661                if(element.classList.contains('eae-toc-active')){
3662                    jQuery(headingsCon).slideDown();
3663                }
3664
3665                element.addEventListener('click',(e) => {
3666                    if(element.classList.contains('eae-toc-active')){
3667                        jQuery(headingsCon).slideUp();
3668                        element.classList.remove('eae-toc-active');
3669                    }else{
3670                        jQuery(headingsCon).slideDown();
3671                        element.classList.add('eae-toc-active');
3672                    }
3673                    if(headingsCon.classList.contains('eae-toc-hide')){
3674                        headingsCon.classList.remove('eae-toc-hide');
3675                    }
3676                });
3677            },
3678            stickyToc: function stickyToc(){
3679                const { settings } = this.getDefaultSettings();
3680                const { wrapper }
3680 = this.getDefaultElements();
3681                const { element } = this.getDefaultElements();
3682                const tocHeader = wrapper.querySelector('.eae-toc-heading-container');
3683                const that = this;
3684                let flag = 0;
3685                let parentWayP = '';
3686                let offset = this.offsetCal();
3687                if(settings.toc_sticky == 'yes'){
3688                    this.stickyDevices();
3689                    const waypoint = new Waypoint({
3690                        element: wrapper,
3691                        handler: function (direction) {
3692                            if(wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3693                                if(direction == 'down'){
3694                                    if(!wrapper.classList.contains('eae-toc-sticky')){
3695                                        wrapper.classList.add('eae-toc-sticky');
3696                                    }
3697                                }else{
3698                                    if(wrapper.classList.contains('eae-toc-sticky')){
3699                                        wrapper.classList.remove('eae-toc-sticky');
3700                                    }
3701                                }
3702                            }
3703                        },
3704                        offset: '1%',
3705                    });
3706                    if(settings.toc_stay_in_column == 'yes'){
3707                        const parentWaypoint = new Waypoint({
3708                            element: element.parentElement,
3709                            handler: function (direction,poi) {
3710                                if(wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3711                                    if(direction == 'down'){
3712                                        if(wrapper.classList.contains('eae-toc-sticky')){
3713                                            wrapper.classList.remove('eae-toc-sticky');
3714                                        }
3715                                        if(!element.classList.contains('eae-toc-fix')){
3716                                            element.classList.add('eae-toc-fix');
3717                                        }
3718                                    }else if(direction == 'up'){
3719                                        if(element.classList.contains('eae-toc-fix')){
3720                                            element.classList.remove('eae-toc-fix');
3721                                        }
3722                                        if(!wrapper.classList.contains('eae-toc-sticky')){
3723                                            wrapper.classList.add('eae-toc-sticky');
3724                                        }
3725                                    }
3726                                }
3727                                if(settings.collapse_box == 'yes'){
3728                                    if(flag == 0){
3729                                        parentWaypoint.destroy();
3730                                        that.addParentWaypoint();
3731                                        flag++;
3732                                    }
3733                                }
3734                            },
3735                            offset: '-' + offset + 'px',
3736                        });
3737
3738                        if(tocHeader.classList.contains('eae-toc-active')){
3739                            if(settings.collapse_box == 'yes'){
3740                                if(flag == 0){
3741                                    parentWaypoint.destroy();
3742                                    setTimeout(that.addParentWaypoint,400);
3743                                    flag++;
3744                                }
3745                            }
3746                        }
3747                    }else{
3748                        if(settings.collapse_box != 'yes'){
3749                            wrapper.parentElement.style.height = wrapper.clientHeight+'px';
3750                        }
3751                    }           
3752                }
3753            },
3754            addParentWaypoint: function addParentWaypoint(){
3755                
3756                const { settings } = this.getDefaultSettings();
3757                const { wrapper }
3757 = this.getDefaultElements();
3758                const { element } = this.getDefaultElements();
3759                const that = this;
3760                let flag = 0;
3761                let offset = this.offsetCal();
3762                const parentWaypoint = new Waypoint({
3763                    element: element.parentElement,
3764                    handler: function (direction) {
3765                        if(wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3766                            if(direction == 'down'){
3767                                if(wrapper.classList.contains('eae-toc-sticky')){
3768                                    wrapper.classList.remove('eae-toc-sticky');
3769                                }
3770                                if(!element.classList.contains('eae-toc-fix')){
3771                                    element.classList.add('eae-toc-fix');
3772                                }
3773                            }else if(direction == 'up'){
3774                                if(element.classList.contains('eae-toc-fix')){
3775                                    element.classList.remove('eae-toc-fix');
3776                                }
3777                                if(!wrapper.classList.contains('eae-toc-sticky')){
3778                                    wrapper.classList.add('eae-toc-sticky');
3779                                }
3780                            }
3781                            if(settings.collapse_box == 'yes'){
3782                                if(flag == 0){
3783                                    parentWaypoint.destroy();
3784                                    that.addParentWaypoint();
3785                                    flag++;
3786                                }
3787                            }
3788                        }
3789                    },
3790                    offset: '-' + offset + 'px',
3791                });
3792                return parentWaypoint;
3793            },
3794            offsetCal: function offsetCal(){
3795                const { settings } = this.getDefaultSettings();
3796                const { wrapper } = this.getDefaultElements();
3797                const { element } = this.getDefaultElements();
3798                
3799                let offset = element.parentElement.clientHeight - wrapper.clientHeight;
3800                
3801                if(settings.vertical_alignment == 'top'){
3802                    if(settings.top_spacing.size != '' ){
3803                        offset = offset - settings.top_spacing.size;
3804                    } 
3805                }else if(settings.vertical_alignment == 'bottom'){
3806                    if(settings.bottom_spacing.size !== '' ){
3807                        offset = offset - ((screen.height - wrapper.clientHeight) - settings.bottom_spacing.size);
3808                    }
3809                }
3810                return offset;
3811            },
3812            stickyDevices: function stickyDevices(){
3813                const { wrapper } = this.getDefaultElements();
3814                const { settings } = this.getDefaultSettings();
3815
3816                const stickyDevices = settings.toc_sticky_devices;
3817
3818                if(wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3819                    wrapper.classList.remove('eae-toc-sticky-type-on-place');
3820                }
3821                
3822                if(wrapper.classList.contains('eae-toc-sticky')){
3823                    wrapper.classList.remove('eae-toc-sticky');
3824                }
3825                
3826                
3827                stickyDevices.forEach(function (deviceName){
3828                    
3829                    if(deviceName == elementorFrontend.getCurrentDeviceMode()){   
3830                        
3831                        if(!wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3832                            wrapper.classList.add('eae-toc-sticky-type-on-place');
3833                        }
3834                    }
3835                });
3836                
3837                window.addEventListener("resize", function(){
3838        
3839                    let device = elementorFrontend.getCurrentDeviceMode();
3840                    
3841                    if(wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3842                        wrapper.classList.remove('eae-toc-sticky-type-on-place');
3843                    }
3844                
3845                    if(wrapper.classList.contains('eae-toc-sticky')){
3846                        wrapper.classList.remove('eae-toc-sticky');
3847                    }
3848
3849                    stickyDevices.forEach(function (deviceName){
3850                        if(deviceName == device)
3851                        {
3852                            if(!wrapper.classList.contains('eae-toc-sticky-type-on-place')){
3853                                wrapper.classList.add('eae-toc-sticky-type-on-place');
3854                            }
3855                        }
3856                    });
3857                });
3858            },
3859            followHeading: function followHeading(element,index,tag,offset){
3860                let anchor = '';
3861                var waypoints = new Waypoint({
3862                    element: document.getElementById(element.id),
3863                    handler: function(direction) {
3864                        tag.forEach(function (tagElement,index){
3865                            anchor = tagElement.querySelector('.eae-toc-heading-anchor');
3866                            if(anchor.classList.contains(element.id)){
3867                                if(!tagElement.classList.contains('eae-toc-active-heading')){
3868                                    tagElement.classList.add('eae-toc-active-heading');
3869                                }
3870                            }else{
3871                                if(tagElement.classList.contains('eae-toc-active-heading')){
3872                                    tagElement.classList.remove('eae-toc-active-heading');
3873                                }
3874                            }
3875                        });
3876                    },
3877                    offset: offset
3878                });
3879            }
3880        });
3881        elementorFrontend.hooks.addAction('frontend/element_ready/eae-table-of-content.default', function ($scope) {
3882            elementorFrontend.elementsHandler.addHandler(TableOfContentHandler, {
3883				$element: $scope
3884			});
3885        });
3886    });
3887
3888})(jQuery);
3889
3890/***/ },
3891
3892/***/ 784
3893(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
3894
3895"use strict";
3896/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
3897
3898(function ($) {
3899
3900    const EAETeamMember = function($scope){
3901
3902        if($scope.find('.eae-tm-swiper-container').hasClass('eae-swiper')) {
3903            const wid = $scope.data('id');
3904            const outer_wrapper = $scope.find('.eae-tm-swiper-container');
3905			const swiper_settings = outer_wrapper.data('swiper-settings');
3906            new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y( swiper_settings, wid, $scope );
3907
3908        }
3909    }
3910    $(window).on('elementor/frontend/init', function () {
3911        elementorFrontend.hooks.addAction(
3912            "frontend/element_ready/eae-team-member.default",
3913            EAETeamMember
3914        );
3915    });  
3916
3917})(jQuery);
3918
3919/***/ },
3920
3921/***/ 793
3922(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
3923
3924"use strict";
3925/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
3926
3927(function ($) {
3928    $(window).on('elementor/frontend/init', function () {
3929        var ModuleHandler = elementorModules.frontend.handlers.Base,
3930        TestimonialHandler;
3931
3932                TestimonialHandler = ModuleHandler.extend({
3933                getDefaultSettings: function getDefaultSettings() {
3934                    return {
3935                        settings: this.getElementSettings(),
3936                    };
3937                },
3938                getDefaultElements: function getDefaultElements(){
3939                    
3940                    const wId = this.$element.data('id');
3941                    const scope = this.$element;
3942                    const element = document.querySelector('.elementor-element-' + wId);
3943                    const wrapper = element.querySelector('.eae-testimonial-wrapper');
3944                    return {
3945                        eid: wId,
3946                        element: element,
3947                        wrapper: wrapper,
3948                        scope: scope,
3949                    }
3950                },
3951                onInit: function onInit(){
3952                    const { settings } = this.getDefaultSettings();
3953                    const { wrapper , scope} = this.getDefaultElements();
3954                    let { element } = this.getDefaultElements();
3955                    const { eid } = this.getDefaultElements();
3956                    const imgElements = wrapper.querySelectorAll('.eae-additional-image.eae-preset-2');
3957                    const contentElements = wrapper.querySelectorAll('.eae-ts-content-section');
3958                    const breakpoints = parseInt(wrapper.getAttribute('data-stacked'));
3959                
3960                    if(wrapper.classList.contains('eae-testimonial-slider')){
3961                        const outer_wrapper = scope.find('.eae-swiper-outer-wrapper');
3962                        const swiper_settings = outer_wrapper.data('swiper-settings');
3963                        new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, eid, scope);
3964                    }  
3965                    window.addEventListener("resize", function(){
3966                        const currentWindowWidth = this.window.innerWidth;
3967                        if(currentWindowWidth <= breakpoints) {
3968                            imgElements.forEach(img => {
3969                                img.style.display = 'none';
3970                            });
3971                        }
3972                        else {
3973                            imgElements.forEach(img => {
3974                                img.style.display = 'flex';
3975                            });
3976                        }
3977                    })
3978                },
3979            });
3980            elementorFrontend.hooks.addAction('frontend/element_ready/eae-testimonial.default', function ($scope) {	
3981                elementorFrontend.elementsHandler.addHandler(TestimonialHandler, {
3982                    $element: $scope
3983                  });
3984            });
3985
3986        });   
3987})(jQuery);
3988
3989/***/ },
3990
3991/***/ 501
3992() {
3993
3994(function ($) {
3995	const EAETextSlider = function ($scope) {
3996        const eId = $scope.attr('data-id');
3997		const element = document.querySelector('.elementor-element-' + eId);
3998        const wrappers = element.querySelectorAll('.eae-text-scroll-wrapper');
3999        
4000
4001        wrappers.forEach(wrapper => {
4002
4003            const slides = [...wrapper.querySelectorAll('.eae-text-slide')];
4004       
4005            const settingsData = JSON.parse(wrapper.getAttribute("data-settings"));
4006            let wrapperHeight = 0; 
4007    
4008            slides.forEach((slide, index) => {
4009            
4010                slide.innerHTML =  '&nbsp;'.repeat(settingsData.Gap.size) + slide.innerHTML + '&nbsp;'.repeat(settingsData.Gap.size);
4011
4012                wrapperHeight += slide.offsetHeight;
4013                console.log(wrapperHeight);
4014              
4015                wrapper.style.height = wrapperHeight + (settingsData.rowGap.size * index) + 'px';
4016                
4017                let speed = parseFloat(slide.getAttribute("data-speed"));
4018                let direction = parseInt(slide.getAttribute("data-direction"), 10);
4019                const wrapperWidth = wrapper.clientWidth; // Get the width of the wrapper
4020
4021               
4022                if (index > 0) {
4023                    slide.style.top = ((wrapperHeight - slide.offsetHeight) + (settingsData.rowGap.size * index)) + 'px';
4024                }
4025
4026                let slideWidth = slide.clientWidth; 
4027                slide.i = 0; 
4028                slide.step = speed * direction * 0.1; 
4029                slide.width = slide.clientWidth + 1; 
4030                renderLottie(wrapper);
4031                
4032                if (wrapperWidth > slideWidth) {
4033                    let requiredWidth = Math.ceil(wrapperWidth / slideWidth) + 1;
4034                    let repeatedContent = Array(requiredWidth).fill(`${slide.innerHTML}`).join('');
4035                    slide.innerHTML = repeatedContent;
4036                    slideWidth = slide.clientWidth; 
4037                } else {
4038                    let repeatedContent = Array(2).fill(`${slide.innerHTML}`).join('');
4039                    slide.innerHTML = repeatedContent;
4040                }
4041
4042                //renderLottie(slide);
4043                
4044            
4045                if (settingsData.pauseOnHover === 'yes') {
4046                    slide.addEventListener('mouseenter', () => (slide.step = 0), false);
4047                    slide.addEventListener('mouseleave', () => (slide.step = speed * direction * 0.1), false);
4048                }
4049                
4050            });
4051
4052            
4053            requestAnimationFrame(() => move(slides));
4054
4055            function move(slides) {
4056                slides.forEach(slide => {
4057                    
4058                    slide.style.transform = `translateX(${-slide.i}px)`;
4059                    slide.i += slide.step; // Update the position index
4060
4061                    
4062                    if (slide.i >= slide.width) {
4063                        slide.i = 0;
4064                    } else if (slide.i < 0) {
4065                        slide.i = slide.width;
4066                    }
4067                });
4068                requestAnimationFrame(() => move(slides));
4069            }
4070
4071            function renderLottie(wrapper){
4072                isLottiePanels = wrapper.querySelectorAll('.eae-lottie');
4073                if (isLottiePanels != null) {
4074                    isLottiePanels.forEach(isLottiePanel=>{
4075                       // console.log('lottie', isLottiePanel);
4076                        let lottie_data = JSON.parse(isLottiePanel.getAttribute('data-lottie-settings'));
4077                        let eae_animation = lottie.loadAnimation({
4078                            container: isLottiePanel,
4079                            path: lottie_data.url,
4080                            renderer: "svg",
4081                            loop: lottie_data.loop,
4082                        });
4083                       console.log({eae_animation});
4084                        if (lottie_data.reverse == true) {
4085                            eae_animation.setDirection(-1);
4086                        }
4087                    })
4088                }
4089            }
4090
4091            
4092          
4093		   
4094        });
4095
4096
4097	}
4098	
4099
4100	$(window).on('elementor/frontend/init', function () {
4101		elementorFrontend.hooks.addAction(
4102			"frontend/element_ready/eae-text-scroll.default",
4103			EAETextSlider
4104		);
4105	});
4106})(jQuery);
4107
4108/***/ },
4109
4110/***/ 393
4111() {
4112
4113(function ($) {
4114    let lastScrollTop = 0;
4115    let elementPagePosition = 0;
4116	const EAEVideoBox = function ($scope) {
4117		const eId = $scope.attr('data-id');
4118		const element = document.querySelector('.elementor-element-' + eId);
4119        const wrapper = element.querySelector('.eae-video-outer-wrapper'); 
4120        elementPagePosition = wrapper.getBoundingClientRect().top + window.scrollY;
4121        let lastScrollTop = 0;     
4122        // check is it elementor editor
4123
4124        if(wrapper != null){
4125            
4126            let videoType = wrapper.getAttribute('data-video-type');
4127            let stickyVideo = '';
4128            let is_autoplay = '';
4129            let is_lightbox = '';
4130            if (wrapper.hasAttribute("data-video-sticky")) {
4131                stickyVideo = wrapper.getAttribute('data-video-sticky');
4132            }
4133            if (wrapper.hasAttribute("data-autoplay")) {
4134                is_autoplay = wrapper.getAttribute('data-autoplay');
4135            }
4136            if (wrapper.hasAttribute("data-lightbox")) {
4137                is_lightbox = wrapper.getAttribute('data-lightbox');
4138            }
4139            var isLottiePanle = element.querySelector('.eae-lottie-animation');
4140            if(stickyVideo == 'yes'){
4141                let previewSticky =   wrapper.getAttribute('data-preview-sticky');
4142                if((elementorFrontend.isEditMode() && previewSticky == 'yes') || !elementorFrontend.isEditMode()){
4143                    makeStickyVideo(wrapper);
4144                    document.addEventListener('scroll', () => {
4145                        if (window.requestAnimationFrame) {
4146                          window.requestAnimationFrame(() => {
4147                            makeStickyVideo(wrapper);
4148                          });
4149                        } else {
4150                            makeStickyVideo(wrapper);
4151                        }
4152                    });
4153    
4154                    const closeButton = wrapper.querySelector('.eae-video-sticky-close');
4155                    if(closeButton != null){
4156                        closeButton.addEventListener('click', function(e){
4157                                e.stopPropagation();
4158                                wrapper.classList.remove('eae-sticky-apply');
4159                                wrapper.classList.add('eae-sticky-hide');
4160                        }); 
4161                    }
4162                }                     
4163            }
4164            
4165            if (isLottiePanle != null) {
4166                let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
4167                let eae_animation = lottie.loadAnimation({
4168                    container: isLottiePanle,
4169                    path: lottie_data.url,
4170                    renderer: "svg",
4171                    loop: lottie_data.loop,
4172                });
4173    
4174                if (lottie_data.reverse == true) {
4175                    eae_animation.setDirection(-1);
4176                }
4177            }
4178            
4179    
4180            if(is_lightbox != 'yes'){
4181                // if(videoType != 'hosted'){
4182                wrapper.addEventListener('click', function(e){   
4183                    if(!elementorFrontend.isEditMode()){
4184                        labnolIframe(this);
4185                    }    
4186                })	
4187                // }
4188            }
4189            
4190            if(is_autoplay == '1'){
4191                if(!elementorFrontend.isEditMode()){
4192                    var eae_video_waypoint = new Waypoint({
4193                        element: wrapper,
4194                        handler : function ( direction ) {
4195                            if(direction == 'down'){
4196                                labnolIframe(wrapper);
4197                            }
4198                        },
4199                        offset : 'bottom-in-view'
4200                    });
4201                }    
4202            }
4203    
4204            if(is_lightbox == 'yes'){
4205                let galleryId = wrapper.querySelector('.eae-video-wrappper').getAttribute('data-gallery-id');
4206                if(galleryId == null || galleryId == ''){
4207                    galleryId = '1';
4208                }
4209                let plugins = [
4210                    lgVideo,
4211                    lgHash,
4212                    // lgAutoplay
4213                ]
4214                if(wrapper.querySelector('.eae-video-wrappper').getAttribute('data-share') == 'yes'){
4215                    plugins.push(lgShare);
4216                }
4217                if(wrapper.querySelector('.eae-video-wrappper').getAttribute('data-fullscreen') == 'yes'){
4218                    plugins.push(lgFullscreen);
4219                }
4220                //add youtube video params to lightbox
4221                // if(wrapper.querySelector('.eae-video-wrappper').getAttribute('data-video-type') == 'youtube'){
4222                //     plugins.push(lgYoutube);
4223                // }
4224                
4225                let videoObject = {
4226                    'selector': '.eae-video-play',
4227                    'download': false,
4228                    'counter' : false,
4229                    'galleryId' : galleryId,
4230                    'autoplayFirstVideo' : true,
4231                    plugins: plugins,
4232                    videojs: true,
4233                    videojsOptions: {
4234                        muted: true,
4235                    },
4236                }
4237                let youtubeParams = {};
4238                if(videoType != 'hosted'){
4239                    videoObject[`${videoType}PlayerParams`] = JSON.parse(wrapper.querySelector('.eae-video-wrappper').getAttribute('data-params'));    
4240                }else{
4241                    videoObject['videojsOptions'] = JSON.parse(wrapper.querySelector('.eae-video-wrappper').getAttribute('data-params'))
4242                }
4243                if(!elementorFrontend.isEditMode()){
4244                    lightGallery(wrapper,videoObject);
4245                }
4246                // videoObject = { ...videoObject, ...youtubeParams };
4247                
4248            }
4249        }
4250
4251       
4252	}
4253
4254    function makeStickyVideo(ele){
4255        let elementCurrentPositin = ele.getBoundingClientRect().top;
4256        let currentScrollPosition = window.scrollY;
4257        if(window.scrollY + 150 >= elementPagePosition){
4258            ele.classList.remove('eae-sticky-hide');
4259            ele.classList.add('eae-sticky-apply');
4260            if(ele.querySelector('.eae-video-display-details') != null){
4261                ele.querySelector('.eae-video-display-details').style.display = 'block';
4262            }
4263        }else{
4264            ele.classList.remove('eae-sticky-apply');
4265            ele.classList.add('eae-sticky-hide');
4266            if(ele.querySelector('.eae-video-display-details') != null){
4267                ele.querySelector('.eae-video-display-details').style.display = 'none';
4268            }
4269        }
4270        
4271        lastScrollTop = currentScrollPosition <= 0 ? 0 : currentScrollPosition;
4272    }
4273
4274    function labnolIframe(ele) {
4275        let videoType = ele.getAttribute('data-video-type');
4276        let videoPlayerEle = ele.querySelector('.eae-video-play');        
4277        let src = '';
4278        let videoHtml = '';
4279        //let thumImage = videoPlayerEle.querySelector('img , video');
4280        if(videoType != 'hosted'){
4281            src = videoPlayerEle.getAttribute('data-src');
4282        }
4283        if(videoType == 'hosted'){
4284            videoHtml = ele.getAttribute('data-hosted-html');
4285        }
4286        
4287        let isIframe = ele.querySelector('iframe');
4288        if(videoType != 'hosted'){
4289            var iframe = document.createElement('iframe');
4290                // iframe add class custom
4291                iframe.classList.add('eae-video-iframe');
4292                iframe.setAttribute('src', src);
4293                iframe.setAttribute('frameborder', '0');
4294                iframe.setAttribute('allowfullscreen', '1');
4295                iframe.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');
4296                videoPlayerEle.innerHTML = '';
4297                if(!ele.classList.contains('.eae-sticky-apply') && ele.querySelector('.eae-video-display-detail
4297s') != null){
4298                    ele.querySelector('.eae-video-display-details').style.display = 'none';
4299                }
4300                videoPlayerEle.append(iframe);
4301        }else{
4302            if(videoType == 'hosted'){
4303                if(videoPlayerEle.querySelector('.eae-hosted-video') == null){
4304                    videoPlayerEle.innerHTML = '';
4305                    let hostedVideoHtml = JSON.parse(videoHtml);
4306                    videoPlayerEle.innerHTML += hostedVideoHtml;
4307                    let hostedVideo = videoPlayerEle.querySelector('video');
4308                    hostedVideo.setAttribute('autoplay', 'autoplay');
4309                    if(videoPlayerEle.hasAttribute('data-video-downaload')){
4310                        hostedVideo.setAttribute('controlslist', 'nodownload');
4311                    }
4312                    if(videoPlayerEle.hasAttribute('data-controls')){
4313                        hostedVideo.setAttribute('controls', '');
4314                    }
4315                    //hostedVideoIframe.style.margin = '0px';
4316                    videoPlayerEle.querySelector('video').style.width = '100%';
4317                    videoPlayerEle.querySelector('video').style.height = '100%';
4318                }
4319                // else{
4320                //     //if video is play do pause and vice versa
4321                //     let hostedVideo = videoPlayerEle.querySelector('video');
4322                //     if(hostedVideo.paused){
4323                //         hostedVideo.play();
4324                //     }else{
4325                //         hostedVideo.pause();
4326                //     }
4327                // }
4328            }
4329        }
4330            
4331    }
4332
4333	$(window).on('elementor/frontend/init', function () {
4334		elementorFrontend.hooks.addAction(
4335			"frontend/element_ready/eae-video-box.default",
4336			EAEVideoBox
4337		);
4338	});
4339})(jQuery);
4340
4341/***/ },
4342
4343/***/ 322
4344(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
4345
4346"use strict";
4347/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
4348
4349(function ($) {
4350
4351    const EAEVideoGallery = function($scope){
4352        const eId = $scope.attr('data-id');
4353        const element_container = document.querySelector('.elementor-element-' + eId);
4354        const element = element_container.querySelector(".eae-vg-video-container");
4355        if(element !==  null){
4356            const wrapper = element.querySelectorAll('.eae-vg-element-wrapper');    
4357        
4358            //thumb   
4359            const video_types = element.querySelectorAll(".eae-vg-element-wrapper");
4360
4361            if(!elementorFrontend.isEditMode() && !element.classList.contains('lightbox')){
4362                get_video(element);
4363            }
4364
4365            //lottie
4366            get_lottie(wrapper);
4367
4368            //Filter
4369            if($scope.find('.eae-vg-wrapper').hasClass('eae-vg-filter')){
4370                const filterButtonContainer = element_container.querySelector('.eae-vg-filter-button-container');
4371                const tabContaners = filterButtonContainer.querySelectorAll('.eae-vg-filter-tab');
4372                if(tabContaners.length > 1){
4373                    const filterButton = filterButtonContainer.querySelectorAll('.eae-filter-button');
4374                    const fileterElement = element.querySelectorAll('.eae-vg-element-wrapper');
4375                    const filterHiddenButton = filterButtonContainer.querySelector('.eae-vg-dropdown-tab');
4376                    let activeButton = filterButtonContainer.querySelector('.eae-vg-active-button');
4377                    const filterHiddenButtons = filterHiddenButton.querySelectorAll('.eae-vg-filters-item');
4378
4379
4380                    filterHiddenButtons.forEach(function(button){
4381                        let hiddenButton = button.querySelector('.eae-filter-button');
4382                        if(activeButton.getAttribute('data-filter') == hiddenButton.getAttribute('data-filter')){
4383                            hiddenButton.classList.add('eae-vg-active-button');
4384                        }
4385                    });
4386                    filterButton.forEach(function(element,index){
4387                        if(element.classList.contains('eae-vg-active-button')){
4388                            fileterElement.forEach(function(element_class){
4389                                if(element.getAttribute('data-filter') == 'all'){
4390                                    element_class.classList.add('eae-vg-active');
4391                                }else{
4392                                    if(element_class.classList.contains(element.getAttribute('data-filter'))){
4393                                        element_class.classList.add('eae-vg-active');
4394                                        
4395                                    }else{
4396                                        element_class.classList.add("eae-vg-filter-hidden");
4397                                    }
4398                                }
4399                            });
4400                        }
4401                        
4402                        element.addEventListener('click', function(e){
4403                            fileterElement.forEach(function(element){
4404                                if(element.classList.contains('eae-vg-filter-hidden')){
4405                                    element.classList.remove('eae-vg-filter-hidden');
4406                                }
4407                                if(element.classList.contains('eae-vg-active')){
4408                                    element.classList.remove("eae-vg-active");
4409                                }
4410                            });
4411                            fileterElement.forEach(function(element_class){
4412                                if(element.getAttribute('data-filter') == 'all'){
4413                                    if(!element_class.classList.contains('eae-vg-active')){
4414                                        element_class.classList.add('transit-in');
4415                                        setTimeout(showImage,500,element_class);
4416                                    }
4417                                }else{
4418                                    if(element_class.classList.contains('eae-vg-active')){
4419                                        element_class.classList.remove("eae-vg-active");
4420                                    }
4421                                    if(element_class.classList.contains(element.getAttribute('data-filter'))){
4422                                        element_class.classList.add('transit-in');
4423                                        setTimeout(showImage,500,element_class);
4424                                        // showImage(element_class);
4425                                    }
4426                                    hideElement(element.getAttribute('data-filter'),fileterElement);
4427                                }
4428                            });
4429                            
4430                            filterButton.forEach(function(element){
4431                                if(element.classList.contains('eae-vg-
4431active-button')){
4432                                    element.classList.remove('eae-vg-active-button');
4433                                }
4434                            });
4435                            element.classList.add('eae-vg-active-button');
4436                            const filterHiddenButtons = filterHiddenButton.querySelectorAll('.eae-vg-filters-item');
4437                            filterHiddenButtons.forEach(function(button){
4438                                let hiddenButton = button.querySelector('.eae-filter-button');
4439                                if(element.getAttribute('data-filter') == hiddenButton.getAttribute('data-filter')){
4440                                    hiddenButton.classList.add('eae-vg-active-button');
4441                                }
4442                            });
4443                            getDropdownButtonName($scope);
4444                        });
4445                        
4446                    });
4447
4448                    const resizeElement = element_container.querySelector('.eae-vg-wrapper');
4449                    const resizeElementData = resizeElement.querySelectorAll('.eae-vg-filter-tab');
4450                    let dropdown = '';
4451                    window.addEventListener("resize", function(){
4452                        let resizeValue = resizeElement.getAttribute('data-stacked');
4453                        let widnowWidth = this.window.innerWidth;
4454                        if(widnowWidth <= resizeValue ){
4455                            resizeElementData.forEach(function(element){
4456                                let data = [];
4457                                if(element.classList.contains('eae-vg-dropdown-tab')){
4458                                    element.classList.add('enable-vg-dropdown-layout');
4459                                    element.classList.remove('disable-vg-dropdown-layout');
4460                                }else{
4461                                    element.classList.add('disable-vg-dropdown-layout');
4462                                }
4463                            });
4464                        }else{
4465                            resizeElementData.forEach(function(element){
4466                                if(element.classList.contains('eae-vg-dropdown-tab')){
4467                                    element.classList.add('disable-vg-dropdown-layout');
4468                                    element.classList.remove('enable-vg-dropdown-layout');
4469                                }else{
4470                                    element.classList.remove('disable-vg-dropdown-layout');
4471                                    let filterButtonContainer = element.querySelector('.eae-vg-collapse');
4472                                    if(filterButtonContainer != null){
4473                                        let filterButtons = filterButtonContainer.querySelectorAll('.eae-vg-filters-item');
4474                                        filterButtons.forEach(function(element){
4475                                            let button = element.querySelector('.eae-vg-active-button');
4476                                            if(button != null){
4477                                                let termTilte = button.textContent;
4478                                                filterButtonContainer.querySelector('.eae-vg-dropdown-filter-text').textContent = termTilte; 
4479                                                if(!filterButtonContainer.classList.contains('eae-vg-active-button')){
4480                                                    filterButtonContainer.classList.add('eae-vg-active-button');
4481                                                }
4482                                            }
4483                                        });
4484                                    }
4485                                }
4486                            });
4487                        }
4488
4489                        const wraopper = resizeElement.querySelector('.eae-vg-dropdown-tab');
4490                        let dropdownActiveButton = wraopper.querySelector('.eae-vg-filter-dropdown');
4491                        isListItemActive = wraopper.querySelectorAll('.eae-vg-filters-item');
4492                        isListItemActive.forEach(function(element){
4493                            let data = element.querySelector('.eae-vg-active-button');
4494                            if(data != null){
4495                                let termTilte = data.textContent;
4496                                dropdown.querySelector('.eae-vg-dropdown-filter-text').textContent = termTilte; 
4497                                dropdownActiveButton.classList.add('eae-vg-
4497active-button');
4498                            }
4499                        });
4500                    });  
4501                    resizeElementData.forEach(function(element){
4502                        if(element.classList.contains('eae-vg-dropdown-tab')){
4503                            dropdown = element.querySelector('.eae-vg-filter-dropdown');
4504                        }
4505                    });
4506                    dropdown.classList.remove('eae-vg-visible');
4507                    let collapseableList     = dropdown.querySelector('.eae-vg-collaps-item-list');
4508                    let isListItemActive = collapseableList.querySelectorAll('.eae-vg-filters-item');
4509                    const handleClick = (e) => {
4510                        e.stopPropagation();
4511                        e.preventDefault();
4512                        dropdown.classList.toggle('eae-vg-visible');
4513                        isListItemActive.forEach(function(element){
4514                            let data = '';
4515                            data = element.querySelector('.eae-vg-active-button');
4516                            if(data != null){
4517                                let termTilte = data.textContent;
4518                                dropdown.querySelector('.eae-vg-dropdown-filter-text').textContent = termTilte;
4519                                setActiveHiddenButton(data,resizeElementData);
4520                                dropdown.classList.add('eae-vg-active-button');
4521                            }
4522                        });
4523                    }
4524                    
4525                    dropdown.removeEventListener('click', handleClick);
4526                    dropdown.addEventListener('click', handleClick);
4527                }
4528            }
4529
4530            if (!elementorFrontend.isEditMode() && element.classList.contains('lightbox')) {
4531                var options = {
4532                    selector: '.eae-vg-element'
4533                };
4534                var lgSettings = JSON.parse(element.getAttribute('data-lg-settings'));
4535                options = { ...options, ...lgSettings };
4536                var plugins = {
4537                    plugins: [
4538                        lgVideo,
4539                        lgShare,
4540                        lgHash,
4541                        lgFullscreen,
4542                        lgThumbnail
4543                    ],
4544                };
4545
4546
4547                options = { ...options, ...plugins };
4548
4549                lightGallery(element, options);
4550            }
4551
4552
4553            // DropDown 
4554            if($scope.find('.eae-vg-wrapper').hasClass('eae-vg-filter')){
4555                let dropdown = '';
4556                let data = {};
4557                dropdown = element_container.querySelector('.eae-vg-collapse');
4558                data.dropDown = dropdown;
4559                dropdownFilter(data);
4560            }
4561
4562            // Swiper
4563            if($scope.find('.eae-vg-wrapper').hasClass('eae-swiper-outer-wrapper')){
4564                const wid = $scope.data('id');
4565                const outer_wrapper = $scope.find('.eae-swiper-outer-wrapper');
4566                const swiper_settings = outer_wrapper.data('swiper-settings');
4567                new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, wid);
4568            }
4569        }
4570
4571    }
4572
4573    function hideImage(element){
4574        element.classList.add('eae-vg-filter-hidden');
4575        element.classList.remove('transit-out');
4576        if(element.classList.contains('eae-vg-active')){
4577            element.classList.remove('eae-vg-active');
4578        }
4579    }
4580
4581    function showImage(element){
4582        element.classList.add('eae-vg-active');
4583        element.classList.remove('transit-in');
4584        if(element.classList.contains('eae-vg-filter-hidden')){
4585            element.classList.remove('eae-vg-filter-hidden');
4586        }
4587    }
4588
4589    function getDropdownButtonName($scope){
4590        const eId = $scope.attr('data-id');
4591        const element_container = document.querySelector('.elementor-element-' + eId);
4592        const element = element_container.querySelector(".eae-vg-filter-button-container");
4593        const wrapper = element.querySelector('.eae-vg-filter-tab');   
4594        const dropDownContainer = wrapper.querySelector('.eae-vg-filter-dropdown');
4595        let dropDownElement = '';
4596        if(dropDownContainer != null){
4597            dropDownElement = dropDownContainer.querySelector('.eae-vg-active-button');
4598        }
4599        if(dropDownElement == null){
4600            let dropDownButtonText = dropDownContainer.getAttribute('data-button-text');
4601            dropDownContainer.querySelector('.eae-vg-dropdown-filter-text').textContent = dropDownButtonText;
4602            if(dropDownContainer.classList.contains('eae-vg-active-button')){
4603                dropDownContainer.classList.remove('eae-vg-active-button');
4604            }
4605        }
4606    }
4607
4608    function get_lottie(wrapper){
4609        wrapper.forEach(function(element , index){
4610            const wrapper = element.querySelector('.eae-vg-element');
4611            if(wrapper !== null){
4612                let isLottiePanle = wrapper.querySelector('.eae-lottie');
4613                if (isLottiePanle != null) {
4614                    let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
4615                    let eae_animation = lottie.loadAnimation({
4616                        container: isLottiePanle,
4617                        path: lottie_data.url,
4618                        renderer: "svg",
4619                        loop: lottie_data.loop,
4620                    });
4621
4622                    if (lottie_data.reverse == true) {
4623                        eae_animation.setDirection(-1);
4624                    }
4625                }
4626            }
4627        });
4628    }
4629
4630    function setActiveHiddenButton(data,resizeElementData){
4631        resizeElementData.forEach(function(elementData){
4632            if(elementData.classList.contains('disable-vg-dropdown-layout')){
4633                let hiddenButton = elementData.querySelectorAll('.eae-filter-button');
4634                hiddenButton.forEach(function(elementData){
4635                    if(data.getAttribute('data-filter') == elementData.getAttribute('data-filter')){
4636                        elementData.classList.add('eae-vg-active-button');
4637                    } 
4638                });
4639            }
4640        });
4641    }
4642
4643    function dropdownFilter(options = {}){
4644        let dropDown = options.dropDown;  
4645        if(dropDown != null){
4646            
4647            dropDown.classList.remove('eae-vg-visible');
4648            let flag = 0;
4649            let collapseableList     = dropDown.querySelector('.eae-vg-collaps-item-list');
4650            let isListItemActive = collapseableList.querySelectorAll('.eae-vg-filters-item');
4651            const handleClick = (e) => {
4652                e.stopPropagation();
4653                e.preventDefault();
4654                dropDown.classList.toggle('eae-vg-visible');
4655                isListItemActive.forEach(function(element){
4656                    let data = '';
4657                    data = element.querySelector('.eae-vg-active-button');
4658                    if(data != null){
4659                        let termTilte = data.textContent;
4660                        dropDown.querySelector('.eae-vg-dropdown-filter-text').textContent = termTilte;
4661                        dropDown.classList.add('eae-vg-active-button');
4662                    }
4663                
4664                });
4665            }
4666            dropDown.removeEventListener('click', handleClick);
4667            dropDown.addEventListener('click', handleClick);  
4668        }
4669    }
4670
4671    // function get_droupDown(element){
4672    //     const dropDownButton = element.querySelector('.eae-vg-filter-dropdown-button');
4673    //     let dropDownElement = element.querySelector('.eae-vg-collaps-item-list');
4674    //     dropDownElement.classList.remove('eae-vg-visible');
4675    //     dropDownButton.addEventListener('click',function(e){
4676    //         dropDownElement.classList.add('eae-vg-visible');
4677    //     });  
4678    // }
4679
4680    function get_video(element){
4681        // console.log(element);
4682        // return;
4683        const wrapper = element.querySelectorAll('.eae-vg-element');    
4684        wrapper.forEach(function(element , index){
4685            element.addEventListener('click', function(e){
4686                element.classList.remove('eae-vg-image-overlay');
4687                let video_type = element.getAttribute('data-video-url');
4688                let video_t = element.getAttribute('data-video-type');
4689                if(video_t != 'hosted'){
4690                    let url = element.getAttribute('data-video-url');
4691                    element.innerHTML = '';
4692                    var iframe = document.createElement('iframe');
4693                    iframe.classList.add('eae-vg-video-iframe');
4694                    iframe.setAttribute('src', url);
4695                    iframe.setAttribute('frameborder', '0');
4696                    iframe.setAttribute('allowfullscreen', '1');
4697                    iframe.setAttribute('allow', 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture');
4698                    element.append(iframe);
4699                }else{
4700                    if(element.querySelector('.eae-hosted-video') == null){
4701                       let videoHtml = element.getAttribute('data-hosted-html');
4702                        element.innerHTML = '';
4703                        let hostedVideoHtml = JSON.parse(videoHtml);
4704                        element.innerHTML += hostedVideoHtml;
4705                        let hostedVideo = element.querySelector('video');
4706                        hostedVideo.setAttribute('autoplay', 'autoplay');
4707                        if(element.hasAttribute('data-video-downaload')){
4708                            hostedVideo.setAttribute('controlslist', 'nodownload');
4709                        }
4710                        if(element.hasAttribute('data-controls')){
4711                            hostedVideo.setAttribute('controls', '');
4712                        }   
4713                    }    
4714                }
4715            });
4716        });
4717    }
4718
4719    function hideElement(elementAtt,fileterElement){
4720        fileterElement.forEach(function(element_class){
4721            if(!element_class.classList.contains(elementAtt)){
4722                element_class.classList.add("transit-out");
4723                // setTimeout(hideImage,400,element_class);
4724                hideImage(element_class);
4725            }
4726        });
4727
4728    }
4729
4730    $(window).on('elementor/frontend/init', function() {
4731        elementorFrontend.hooks.addAction(
4732            "frontend/element_ready/eae-video-gallery.default",
4733            EAEVideoGallery
4734        );
4735    });
4736})(jQuery);
4737
4738/***/ },
4739
4740/***/ 82
4741(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
4742
4743"use strict";
4744/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
4745
4746(function ($) {
4747    $(window).on('elementor/frontend/init', function () {
4748        var ModuleHandler = elementorModules.frontend.handlers.Base,
4749            WooProductsHandler;
4750
4751            WooProductsHandler = ModuleHandler.extend({
4752                getDefaultSettings: function getDefaultSettings() {
4753                    return {
4754                        settings: this.getElementSettings(),
4755                    };
4756                },
4757                getDefaultElements: function getDefaultElements(){
4758                    
4759                    const wId = this.$element.data('id');
4760                    const scope = this.$element;
4761                    const element = document.querySelector('.elementor-element-' + wId);
4762                    const wrapper = element.querySelector('.eae-woo-cat-wrapper');
4763                    return {
4764                        eid: wId,
4765                        element: element,
4766                        wrapper: wrapper,
4767                        scope: scope,
4768                    }
4769                },
4770                onInit: function onInit(){
4771                    const { settings } = this.getDefaultSettings();
4772                    const { wrapper , scope} = this.getDefaultElements();
4773                    let { element } = this.getDefaultElements();
4774                    const { eid } = this.getDefaultElements();
4775                    let LottieWrapper = wrapper.querySelectorAll('.eae-category-card');
4776
4777                    if(wrapper.classList.contains('eae-wp-slider')){
4778                        const outer_wrapper = scope.find('.eae-swiper-outer-wrapper');
4779                        const swiper_settings = outer_wrapper.data('swiper-settings');
4780                        new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, eid, scope);
4781                    }  
4782                    
4783                    window.addEventListener("resize", function(){
4784                        let resizeValue = wrapper.getAttribute('data-stacked');
4785                        let width = this.window.innerWidth;
4786                        if(width <= resizeValue ){
4787                            wrapper.classList.add('enable-stacked');
4788                        }else{
4789                            wrapper.classList.remove('enable-stacked');
4790                        }
4791                    });
4792
4793                    LottieWrapper.forEach(data => {
4794                        let isLottiePanle = data.querySelector('.eae-lottie');
4795                        if (isLottiePanle != null) {
4796                            let lottie_data = JSON.parse(isLottiePanle.getAttribute('data-lottie-settings'));
4797                            let eae_animation = lottie.loadAnimation({
4798                                container: isLottiePanle,
4799                                path: lottie_data.url,
4800                                renderer: "svg",
4801                                loop: lottie_data.loop,
4802                            });
4803            
4804                            if (lottie_data.reverse == true) {
4805                                eae_animation.setDirection(-1);
4806                            }
4807                        }
4808                    })
4809
4810                },
4811                onElementChange: function onElementChange(propertyName) {                  
4812                        
4813                },
4814
4815            });
4816            elementorFrontend.hooks.addAction('frontend/element_ready/eae-woo-category.default', function ($scope) {	
4817                elementorFrontend.elementsHandler.addHandler(WooProductsHandler, {
4818                    $element: $scope
4819                  });
4820            });
4821
4822        });   
4823})(jQuery);
4824
4825/***/ },
4826
4827/***/ 870
4828(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
4829
4830"use strict";
4831/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
4832
4833(function ($) {
4834    $(window).on('elementor/frontend/init', function () {
4835        var ModuleHandler = elementorModules.frontend.handlers.Base,
4836            WooProductsHandler;
4837
4838            WooProductsHandler = ModuleHandler.extend({
4839                getDefaultSettings: function getDefaultSettings() {
4840                    return {
4841                        settings: this.getElementSettings(),
4842                    };
4843                },
4844                getDefaultElements: function getDefaultElements(){
4845                    
4846                    const wId = this.$element.data('id');
4847                    const scope = this.$element;
4848                    const element = document.querySelector('.elementor-element-' + wId);
4849                    const wrapper = element.querySelector('.eae-woo-products');
4850                    return {
4851                        eid: wId,
4852                        element: element,
4853                        wrapper: wrapper,
4854                        scope: scope,
4855                    }
4856                },
4857                onInit: function onInit(){
4858                    const { settings } = this.getDefaultSettings();
4859                    const { wrapper , scope} = this.getDefaultElements();
4860                    let { element } = this.getDefaultElements();
4861                    const { eid } = this.getDefaultElements();
4862                    const popWrapper = wrapper.querySelectorAll(".open-popup-link");
4863                    
4864                    popWrapper.forEach(wrapper => $(wrapper).eaePopup({
4865                        type:'inline',
4866                        midClick: true, // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.
4867                        mainClass:"eae-wp-modal-box eae-wp-"+eid,
4868                        callbacks:{
4869                            open: function(){
4870                                jQuery(window).trigger("resize"); 
4871                            },
4872                            
4873                          }
4874                    }));
4875          
4876                    if(wrapper.classList.contains('eae-wp-slider')){
4877                        const outer_wrapper = scope.find('.eae-swiper-outer-wrapper');
4878                        const swiper_settings = outer_wrapper.data('swiper-settings');
4879                        new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, eid, scope);
4880                    }  
4881
4882                    let buyNowBtn = wrapper.querySelectorAll('.eae-wp-buy-now');
4883                    buyNowBtn.forEach(function(btn){
4884                        btn.addEventListener('click',function(e){
4885                            e.preventDefault();
4886                            var productId = btn.getAttribute('data-product-id');
4887                            var quantity = btn.getAttribute('data-quantity');
4888                            const checkout=eae.checkout_url;
4889                            const params = new URLSearchParams();
4890                        
4891                            //pass parameters to php
4892                            params.append('action', 'eae_add_to_cart' );
4893                            params.append('product_id', productId );
4894                            params.append('quantity', quantity );
4895                            params.append('eae_nonce', eae.nonce );
4896                            // send ajax request to php
4897                            fetch(eae.ajaxurl, {
4898                                method: 'post',
4899                                credentials: 'same-origin',
4900                                body : params,
4901                            })
4902                            .then((response) => {
4903                                response.json();
4904                            })
4905                            .then((data) => {
4906                                window.location.href = checkout;
4907                            })
4908                            .catch((error) => {
4909                                console.error('Error:', error);
4910                            });
4911                        });
4912                    });
4913                    
4914                },
4915                onElementChange: function onElementChange(propertyName) {                  
4916                        
4917                },
4918
4919            });
4920            elementorFrontend.hooks.addAction('frontend/element_ready/eae-woo-products.default', function ($scope) {	
4921                elementorFrontend.elementsHandler.addHandler(WooProductsHandler, {
4922                    $element: $scope
4923                  });
4924            });
4925
4926        });   
4927})(jQuery);
4928
4929/***/ },
4930
4931/***/ 607
4932(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
4933
4934"use strict";
4935/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(305);
4936
4937( function ($){
4938
4939    $(window).on('elementor/frontend/init', function(){
4940        var ModuleHandler = elementorModules.frontend.handlers.Base,
4941            YouTubeFeeds;
4942        YouTubeFeeds = ModuleHandler.extend({
4943            getDefaultSettings: function getDefaultSettings(){
4944                return {
4945                    settings: this.getElementSettings(),
4946                }
4947            },
4948            getDefaultElements: function getDefaultElements(){
4949                const eId = this.$element.data('id');
4950                // Use native DOM element for scope
4951                const scope = this.$element;
4952                const element = document.querySelector('.elementor-element-' + eId);
4953                const wrapper = element.querySelector('.eae-youtube-feeds');
4954
4955                return {
4956                    eid: eId,
4957                    scope: scope,
4958                    element: element,
4959                    wrapper: wrapper,
4960                }
4961            },
4962            onInit: function onInit(){
4963                const that = this;
4964                const { eid , scope , element , wrapper } = this.getDefaultElements();
4965                const { settings } = this.getDefaultSettings();
4966                if(wrapper != null){
4967                    // Carousel init
4968                    if(wrapper.classList.contains('eae-youtube-carousel')){
4969                        
4970                        const outer_wrapper = scope.find('.eae-swiper-outer-wrapper');
4971                        const swiper_settings = outer_wrapper.data('swiper-settings');
4972                        
4973                        if(swiper_settings) {
4974                            new _base__WEBPACK_IMPORTED_MODULE_0__/* .SwiperBase */ .Y(swiper_settings, eid, scope);
4975                        }
4976                    }
4977                    // Video playback
4978                    that.initVideoPlayback(wrapper, scope, settings);
4979                    // AJAX loading for Load More & Pagination
4980
4981                    if(settings.eae_request_mode === 'live'){
4982                        that.initAjaxLoading(wrapper, scope, settings);
4983                    }else if(settings.eae_request_mode === 'cache'){
4984                        that.initCacheLoading(wrapper, scope, settings);
4985                    }
4986                }
4987            },
4988            initAjaxLoading: function(wrapper, scope, settings){
4989                // Button selectors
4990                const that = this;
4991                wrapper.addEventListener('click', function(e){
4992                    e.preventDefault();
4993                    const btn = e.target.closest('.eae-youtube-load-more-btn, .eae-youtube-next-btn, .eae-youtube-prev-btn');
4994                    if (!btn || !wrapper.contains(btn)) {
4995                        return;
4996                    }
4997
4998                    if(btn.disabled) return;
4999
5000                    btn.disabled = true;
5001                    
5002                    wrapper.classList.add('eae-youtube-loading');
5003
5004                    const cssClass = (settings.eae_youtube_layout === 'playlist') ? '.eae-youtube-playlist-items' : '.eae-youtube-videos-wrapper';
5005
5006                    const videosWrapper = wrapper.querySelector(cssClass);
5007
5008
5009                    // let pageToken = '';
5010                    const pageToken = btn.classList.contains('eae-youtube-prev-btn')
5011                        ? btn.dataset.prevPageToken || ''
5012                        : btn.dataset.nextPageToken || '';
5013
5014                    const ajaxData = new FormData();
5015                    ajaxData.append('action', 'eae_youtube_ajax_videos');
5016                    ajaxData.append('settings', JSON.stringify(settings));
5017                    ajaxData.append('next_page_token', pageToken);
5018                    ajaxData.append('eae_nonce', eae.nonce);
5019                    
5020                    fetch(eae.ajaxurl, {
5021                        method: 'POST',
5022                        body: ajaxData
5023                    })
5024                    .then(response => response.json())
5025                    .then(response => {
5026                        
5027                        btn.disabled = false;
5028                        
5029                        if(response.success && response.data.html){
5030                            videosWrapper.style.opacity = '0.5';
5031                            setTimeout(function(){
5032                                if(btn.classList.contains('eae-youtube-load-more-btn') ){
5033                                    videosWrapper.insertAdjacentHTML('beforeend', response.data.html);
5034                                } else {
5035                                    videosWrapper.innerHTML = response.data.html;
5036                                }
5037
5038                                videosWrapper.style.opacity = '1';
5039                                
5040                                that.initVideoPlayback(wrapper, scope, settings);
5041
5042                                if(btn.classList.contains('eae-youtube-load-more-btn')){
5043                                    that.updateBtn(btn, response.data.next_page_token, 'next-page-token');
5044
5045                                    const counter = wrapper.querySelector('.eae-youtube-count');
5046                                    if(counter){
5047                                        const countValue = wrapper.querySelectorAll('.eae-youtube-item').length;
5048                                        counter.innerHTML = ( settings.eae_youtube_counter_type == 'range' ) ? '1 - ' + countValue : countValue;
5049                                    }
5050
5051                                    const footer = wrapper.querySelector('.eae-youtube-playlist-footer');
5052                                    if(footer && response.data.next_page_token == ''){
5053                                        footer.style.display = 'none';
5054                                    }
5055                                }
5056
5057                                wrapper.classList.remove('eae-youtube-loading');
5058
5059                            }, 200);
5060
5061                            if (btn.classList.contains('eae-youtube-next-btn')){
5062                                that.updateBtn(btn, response.data.next_page_token, 'next-page-token');
5063
5064                                const prevBtn = wrapper.querySelector('.eae-youtube-prev-btn');
5065                                if(prevBtn){
5066                                    that.updateBtn(prevBtn, response.data.prev_page_token, 'prev-page-token');
5067                                    if (settings.eae_request_mode === 'cache') {
5068                                        that.prevNextBtnCounterCalc(wrapper, btn);
5069                                        that.updatePrevNextCount(wrapper);
5070                                    }
5071                                }   
5072                            }
5073
5074                            if (btn.classList.contains('eae-youtube-prev-btn')){
5075                                that.updateBtn(btn, response.data.prev_page_token, 'prev-page-token');
5076
5077                                const nextBtn = wrapper.querySelector('.eae-youtube-next-btn');
5078                                if(nextBtn){
5079                                    that.updateBtn(nextBtn, response.data.next_page_token, 'next-page-token');
5080                                    if (settings.eae_request_mode === 'cache') {
5081                                        that.prevNextBtnCounterCalc(wrapper, btn);
5082                                        that.updatePrevNextCount(wrapper);
5083                                    }
5084                                }
5085                            }
5086                        }
5087                    })
5088                    .catch((err) => {
5089                        console.error('YouTube Feeds AJAX failed:', err);
5090                    })
5091                    .finally(() => {
5092                        btn.disabled = false;
5093                        wrapper.classList.remove('eae-youtube-loading');
5094                        if (videosWrapper) {
5095                            videosWrapper.style.opacity = '1';
5096                        }
5097                    });
5098                });
5099            },
5100            getCount: function getCount(element){
5101                return parseInt(element.getAttribute('data-count')) || 0;
5102            },
5103            updateBtn: function updateBtn(btn, token, tokenKey){
5104                if (!btn) return;
5105
5106                btn.style.display = token ? 'flex' : 'none';
5107                btn.setAttribute('data-' + tokenKey, token);
5108            },
5109            initCacheLoading: function(wrapper, scope, settings){
5110                const that = this;
5111
5112                wrapper.addEventListener('click', function(e){
5113                    const target = e.target;
5114                    const count = parseInt(settings.eae_video_count) || 6;
5115                    const videos = wrapper.querySelectorAll('.eae-youtube-item');
5116
5117                    if(target.classList.contains('eae-youtube-load-more-btn') ){
5118                        
5119                        wrapper.classList.add('eae-youtube-loading');
5120
5121                        let shownCount = that.getCount(target) + count;
5122
5123                        setTimeout(() => {
5124                            videos.forEach((video, index) => video.style.display = index < shownCount ? 'flex' : 'none');
5125                            wrapper.classList.remove('eae-youtube-loading');
5126                            
5127                            target.setAttribute('data-count', shownCount);
5128                            if (shownCount >= videos.length){ 
5129                                target.style.display = 'none';
5130                                
5131                                const footer = wrapper.querySelector('.eae-youtube-playlist-footer');
5132                                if(footer){
5133                                    footer.style.display = 'none';
5134                                }
5135                            }
5136                        }, 500);
5137
5138                        const counter = wrapper.querySelector('.eae-youtube-count');
5139                        if(counter){
5140                            const countValue = (shownCount >= settings.eae_cache_limit) ? settings.eae_cache_limit : shownCount;
5141                            counter.innerHTML = ( settings.eae_youtube_counter_type == 'range' ) ? '1 - ' + countValue : countValue;
5142                        }
5143                    }
5144
5145                    if(target.classList.contains('eae-youtube-next-btn') || target.classList.contains('eae-youtube-prev-btn')){
5146                        const prevBtn = wrapper.querySelector('.eae-youtube-prev-btn');
5147                        const nextBtn = wrapper.querySelector('.eae-youtube-next-btn');
5148
5149                        wrapper.classList.add('eae-youtube-loading');
5150                        
5151                        that.prevNextBtnCounterCalc(wrapper,target);
5152
5153                        setTimeout(() => {
5154                            const start = parseInt(prevBtn.getAttribute('data-count')) || 0;
5155                            const end = parseInt(nextBtn.getAttribute('data-count')) || videos.length;
5156                            videos.forEach((v, i) => v.style.display = (i >= start && i < end) ? 'flex' : 'none');
5157                            wrapper.classList.remove('eae-youtube-loading');
5158                            
5159                            that.updatePrevNextCount(wrapper);
5160
5161                        }, 500);
5162                    }
5163                });
5164            },
5165            prevNextBtnCounterCalc: function prevNextBtnCounterCalc(wrapper,btn){
5166                const that = this;
5167                const { settings } = this.getDefaultSettings();
5168                const count = parseInt(settings.eae_video_count) || 6;
5169                let current = that.getCount(btn);
5170                
5171                const prevBtn = wrapper.querySelector('.eae-youtube-prev-btn');
5172                const nextBtn = wrapper.querySelector('.eae-youtube-next-btn');
5173
5174                if (btn.classList.contains('eae-youtube-next-btn')) {
5175
5176                    current += count;
5177                    
5178                    if (current >= settings.eae_cache_limit) btn.style.display = 'none';
5179                    if (current > count) prevBtn.style.display = 'flex';
5180                    
5181                    prevBtn.setAttribute('data-count', current - count);
5182
5183                } else if (current > 0) {
5184                    current -= count;
5185                    
5186                    if (current < count) btn.style.display = 'none';
5187                    if (current < settings.eae_cache_limit) nextBtn.style.display = 'flex';
5188
5189                    nextBtn.setAttribute('data-count', current + count);
5190                }
5191
5192                btn.setAttribute('data-count', current);
5193            },
5194            updatePrevNextCount: function updatePrevNextCount(wrapper){
5195                const { settings } = this.getDefaultSettings();
5196                if(settings.eae_youtube_counter_type == 'range'){
5197                    const prevBtn = wrapper.querySelector('.eae-youtube-prev-btn');
5198                    const nextBtn = wrapper.querySelector('.eae-youtube-next-btn');
5199
5200                    const start = parseInt(prevBtn.getAttribute('data-count')) || 0;
5201                    const end = parseInt(nextBtn.getAttribute('data-count')) || settings.eae_video_count;
5202
5203                    const counter = wrapper.querySelector('.eae-youtube-count');
5204                    if(counter){
5205                        const countStart = (start == 0) ? 1 : start;
5206                        counter.innerHTML =  countStart + ' - ' + end;
5207                    }
5208                }
5209            },
5210            initVideoPlayback: function initVideoPlayback(wrapper, scope, settings){
5211                const that = this;
5212
5213                if (settings.eae_youtube_playback_mode === 'lightbox' && settings.eae_youtube_layout !== 'playlist') {
5214                    that.runLightbox();
5215                    return;
5216                }
5217
5218                // const cssClass = settings.eae_youtube_layout === 'playlist' ? '.eae-youtube-item' : '.eae-youtube-thumbnail';
5219                let cssClass;
5220
5221                if (settings.eae_youtube_layout === 'playlist') {
5222                    cssClass = '.eae-youtube-item';
5223                } else {
5224                    if (settings.content_skin === 'card') {
5225                        cssClass = '.eae-youtube-content';
5226                    } else {
5227                        cssClass = '.eae-youtube-thumbnail';
5228                    }
5229                }
5230
5231                const elements = wrapper.querySelectorAll(cssClass);
5232
5233                // Handle thumbnail clicks
5234                elements.forEach(function(element) {
5235                    element.addEventListener('click', function(e) {
5236                        e.preventDefault();
5237
5238                        const embedUrl = element.dataset.embedUrl;
5239
5240                        if(settings.eae_youtube_layout !== 'playlist'){
5241                            if (settings.eae_youtube_playback_mode === 'inline') {
5242                                const item = element.closest('.eae-youtube-item');
5243                                that.playInline(item, embedUrl, wrapper);
5244                            }
5245                        }else{
5246                            elements.forEach(function(el){
5247                                el.classList.contains('eae-youtube-playing')? el.classList.remove('eae-youtube-playing') : '';
5248                            });
5249
5250                            that.playInPlayer(wrapper, embedUrl);
5251                            element.classList.add('eae-youtube-playing');
5252                        }
5253                    });
5254                });
5255
5256                if (settings.eae_youtube_layout === 'playlist') {
5257                    const player = wrapper.querySelector('.eae-youtube-playlist-player');
5258                    if (player) {
5259                        player.addEventListener('click', function() {
5260                            const videos = wrapper.querySelectorAll('.eae-youtube-item');
5261                            if (videos.length) videos[0].click();
5262                        });
5263                    }
5264                }
5265            },
5266            runLightbox: function runLightbox() {
5267				const { wrapper, scope } = this.getDefaultElements();
5268                let container = scope.find('.eae-youtube-lightbox');
5269				if (!container.hasClass('lightbox')) return;
5270
5271				var options = {
5272					selector: '.eae-youtube-item'
5273				};
5274
5275                const raw = container.attr('data-lg-settings') || '{}';
5276                let lgSettings = {};
5277                
5278                try { 
5279                    lgSettings = JSON.parse(raw); 
5280                } catch(e) { 
5281                    lgSettings = {}; 
5282                }
5283
5284                options = { ...options, ...lgSettings };
5285
5286                const pluginList = [
5287                    typeof lgVideo!=='undefined' ? lgVideo : null,
5288                    typeof lgShare!=='undefined' ? lgShare : null,
5289                    typeof lgZoom!=='undefined' ? lgZoom : null,
5290                    typeof lgHash!=='undefined' ? lgHash : null,
5291                    typeof lgRotate!=='undefined' ? lgRotate : null,
5292                    typeof lgFullscreen!=='undefined' ? lgFullscreen : null,
5293                    typeof lgThumbnail!=='undefined' ? lgThumbnail : null].filter(Boolean);
5294
5295                options = { ...options, plugins: pluginList };
5296                if (typeof lightGallery === 'function') {
5297                    lightGallery(wrapper, options);
5298                }
5299			},
5300            playInPlayer: function playInPlayer(wrapper, embedUrl) {
5301                const player = wrapper.querySelector('.eae-youtube-playlist-player');
5302                if (player) {
5303                    const iframe = document.createElement('iframe');
5304                    iframe.src = embedUrl;
5305                    iframe.setAttribute('frameborder', '0');
5306                    iframe.setAttribute('allowfullscreen', '');
5307                    iframe.setAttribute('allow', 'autoplay; encrypted-media');
5308                    player.innerHTML = '';
5309                    player.appendChild(iframe);
5310                    player.classList.add('playing');
5311                }
5312            },
5313            playInline: function playInline(item, embedUrl, wrapper){
5314                wrapper.querySelectorAll('.eae-youtube-item.playing').forEach(function(item) {
5315                    item.classList.remove('playing');
5316                    const inlinePlayer = item.querySelector('.eae-youtube-inline-player');
5317                    if (inlinePlayer) {
5318                        inlinePlayer.innerHTML = '';
5319                    }
5320                });
5321
5322                const inlinePlayer = item.querySelector('.eae-youtube-inline-player');
5323
5324                if (!inlinePlayer) {
5325                    const newPlayerDiv = document.createElement('div');
5326                    newPlayerDiv.className = 'eae-youtube-inline-player';
5327                    const contentElement = item.querySelector('.eae-youtube-content');
5328                    contentElement.parentNode.insertBefore(newPlayerDiv, contentElement);
5329                }
5330
5331                const iframe = document.createElement('iframe');
5332                iframe.src = embedUrl;
5333                iframe.setAttribute('frameborder', '0');
5334                iframe.setAttribute('allowfullscreen', '');
5335                iframe.setAttribute('allow', 'autoplay; encrypted-media');
5336                iframe.setAttribute('title', 'YouTube video player');
5337
5338                const playerElement = item.querySelector('.eae-youtube-inline-player');
5339                if (playerElement) {
5340                    playerElement.appendChild(iframe);
5341                }
5342                item.classList.add('playing');
5343            },
5344        });
5345        elementorFrontend.hooks.addAction('frontend/element_ready/eae-youtube-feeds.default', function ($scope) {
5346            elementorFrontend.elementsHandler.addHandler(YouTubeFeeds, {
5347				$element: $scope
5348			});
5349        });
5350    });
5351})(jQuery);
5352
5353
5354/***/ }
5355
5356/******/ 	});
5357/************************************************************************/
5358/******/ 	// The module cache
5359/******/ 	var __webpack_module_cache__ = {};
5360/******/ 	
5361/******/ 	// The require function
5362/******/ 	function __webpack_require__(moduleId) {
5363/******/ 		// Check if module is in cache
5364/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
5365/******/ 		if (cachedModule !== undefined) {
5366/******/ 			return cachedModule.exports;
5367/******/ 		}
5368/******/ 		// Create a new module (and put it into the cache)
5369/******/ 		var module = __webpack_module_cache__[moduleId] = {
5370/******/ 			// no module.id needed
5371/******/ 			// no module.loaded needed
5372/******/ 			exports: {}
5373/******/ 		};
5374/******/ 	
5375/******/ 		// Execute the module function
5376/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
5377/******/ 	
5378/******/ 		// Return the exports of the module
5379/******/ 		return module.exports;
5380/******/ 	}
5381/******/ 	
5382/************************************************************************/
5383/******/ 	/* webpack/runtime/define property getters */
5384/******/ 	(() => {
5385/******/ 		// define getter functions for harmony exports
5386/******/ 		__webpack_require__.d = (exports, definition) => {
5387/******/ 			for(var key in definition) {
5388/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
5389/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
5390/******/ 				}
5391/******/ 			}
5392/******/ 		};
5393/******/ 	})();
5394/******/ 	
5395/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
5396/******/ 	(() => {
5397/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
5398/******/ 	})();
5399/******/ 	
5400/************************************************************************/
5401/******/ 	
5402/******/ 	// startup
5403/******/ 	// Load entry module and return exports
5404/******/ 	// This entry module is referenced by other modules so it can't be inlined
5405/******/ 	__webpack_require__(305);
5406/******/ 	__webpack_require__(734);
5407/******/ 	__webpack_require__(211);
5408/******/ 	__webpack_require__(327);
5409/******/ 	__webpack_require__(259);
5410/******/ 	__webpack_require__(948);
5411/******/ 	__webpack_require__(147);
5412/******/ 	__webpack_require__(340);
5413/******/ 	__webpack_require__(107);
5414/******/ 	__webpack_require__(45);
5415/******/ 	__webpack_require__(234);
5416/******/ 	__webpack_require__(289);
5417/******/ 	__webpack_require__(482);
5418/******/ 	__webpack_require__(867);
5419/******/ 	__webpack_require__(836);
5420/******/ 	__webpack_require__(839);
5421/******/ 	__webpack_require__(404);
5422/******/ 	__webpack_require__(361);
5423/******/ 	__webpack_require__(537);
5424/******/ 	__webpack_require__(210);
5425/******/ 	__webpack_require__(898);
5426/******/ 	__webpack_require__(862);
5427/******/ 	__webpack_require__(994);
5428/******/ 	__webpack_require__(784);
5429/******/ 	__webpack_require__(793);
5430/******/ 	__webpack_require__(501);
5431/******/ 	__webpack_require__(393);
5432/******/ 	__webpack_require__(322);
5433/******/ 	__webpack_require__(82);
5434/******/ 	__webpack_require__(870);
5435/******/ 	var __webpack_exports__ = __webpack_require__(607);
5436/******/ 	
5437/******/ })()
5438;

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.