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 = ' '.repeat(settingsData.Gap.size) + slide.innerHTML + ' '.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.