"use strict"; window.Happy = window.Happy || {}; (function ($, Happy, w) { var $window = $(w); $(function () { function log(event, item, level) { $(document).on(event, item, level); } var e; e = $(".ha-menu-container"); $(e).each(function () { var button = $(this); if ("yes" != button.attr("ha-dom-added")) { if (0 === button.parents(".elementor-widget-ha-nav-menu").length) { button.parents(".ha-wid-con").addClass("ha_menu_responsive_tablet"); } button.attr("ha-dom-added", "yes"); } }); log("click", ".ha-dropdown-has > a", function (event) { if (!$(this).parents(".ha-navbar-nav, .ha-vertical-navbar-nav").hasClass("submenu-click-on-icon") || $(event.target).hasClass("ha-submenu-indicator-wrap")) { // console.log(event.target); event.preventDefault(); var $oElemDragged = $(this).parent().find(">.ha-dropdown, >.ha-megamenu-panel"); $oElemDragged.find(".ha-dropdown-open").removeClass("ha-dropdown-open"); if ($oElemDragged.hasClass("ha-dropdown-open")) { $oElemDragged.removeClass("ha-dropdown-open"); } else { $oElemDragged.addClass("ha-dropdown-open"); } } }); log("click", ".ha-menu-toggler", function (event) { event.preventDefault(); var el_form_group = $(this).parents(".ha-menu-container").parent(); if (el_form_group.length < 1) { el_form_group = $(this).parent(); } var $wrapElement = el_form_group.find(".ha-menu-offcanvas-elements"); if ($wrapElement.hasClass("active")) { $wrapElement.removeClass("active"); } else { $wrapElement.addClass("active"); } }); log("click", ".ha-navbar-nav li a", function (event) { if (!$(this).attr("href") && "ha-submenu-indicator-wrap" == event.target.className) { var thirdItem = $(this); var lnk = thirdItem.get(0); var oldUrl = lnk.href; var sepor = oldUrl.indexOf("#"); var s = thirdItem.parents(".ha-menu-container").hasClass("ha-nav-menu-one-page-yes"); // console.log(event.target.className); if (-1 !== sepor && oldUrl.length > 1 && s && lnk.pathname == window.location.pathname) { // console.log(event.target.className); event.preventDefault(); thirdItem.parents(".ha-wid-con").find(".ha-menu-close").trigger("click"); } } }); }); function debounce(func, wait, immediate) { var timeout; return function () { var context = this, args = arguments; var later = function later() { timeout = null; if (!immediate) func.apply(context, args); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; } $window.on("elementor/frontend/init", function () { if (typeof haDisplayCondition != 'undefined' && haDisplayCondition.status == 'true') { // Set user time in cookie var HappyLocalTimeZone = new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1]; var ha_secure = document.location.protocol === "https:" ? "secure" : ""; document.cookie = "HappyLocalTimeZone=" + HappyLocalTimeZone + ";SameSite=Strict;" + ha_secure; } var CountDown = function CountDown($scope) { var $item = $scope.find(".ha-countdown"); var $countdown_item = $item.find(".ha-countdown-item"); var $end_action = $item.data("end-action"); var $redirect_link = $item.data("redirect-link"); var $end_action_div = $item.find(".ha-countdown-end-action"); var $editor_mode_on = $scope.hasClass("elementor-element-edit-mode"); $item.countdown({ end: function end() { if (("message" === $end_action || "img" === $end_action) && $end_action_div !== undefined) { $countdown_item.css("display", "none"); $end_action_div.css("display", "block"); } else if ("url" === $end_action && $redirect_link !== undefined && $editor_mode_on !== true) { window.location.replace($redirect_link); } } }); }; var SliderBase = elementorModules.frontend.handlers.Base.extend({ onInit: function onInit() { elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); this.run(); }, getDefaultSettings: function getDefaultSettings() { return { selectors: { container: '.ha-slider-container' } }; }, getDefaultElements: function getDefaultElements() { var selectors = this.getSettings('selectors'); return { $container: this.$element.find(selectors.container) }; }, // onElementChange: function () { // haSwiper.destroy(true, true); // this.run(); // }, getReadySettings: function getReadySettings() { var $this = this; var slidesPerView = parseInt(this.getElementSettings('slides_per_view')) || 1; if (this.getElementSettings('thumbs_navigation') == 'yes') { var selectorThumbs = this.elements.$container.find('.ha-slider-gallery-thumbs'); var haGallaryThumbs = new HaSwiper(selectorThumbs[0], { spaceBetween: this.getElementSettings('space_between_thumbs'), // slidesPerView: this.getElementSettings('thumbs_per_view'), // loop: this.getElementSettings('infinity_loop'), freeMode: true, watchSlidesVisibility: true, watchSlidesProgress: true }); } var settings = { direction: this.getElementSettings('slider_direction'), slidesPerView: slidesPerView || 1, spaceBetween: parseInt(this.getElementSettings('space_between_slides')) || 0, loop: !!(this.getElementSettings('infinity_loop') || false), speed: parseInt(this.getElementSettings('effect_speed')), effect: this.getElementSettings('slider_type') == 'multiple' ? this.getElementSettings('effect_multiple') : this.getElementSettings('effect'), ha_animation: this.getElementSettings('slider_content_animation'), sliderType: this.getElementSettings('slider_type') }; if (this.getElementSettings('effect') == 'flip') { settings.flipEffect = { limitRotation: true, slideShadows: true }; } if (this.getElementSettings('effect') == 'cube') { settings.cubeEffect = { shadow: true, slideShadows: true, shadowOffset: 20, shadowScale: 0.94 }; } if (this.getElementSettings('effect_multiple') == 'coverflow') { settings.coverflowEffect = { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: true }; } if (this.getElementSettings('slider_type') == 'multiple') { var bpObj = { desktop: { slidesPerView: slidesPerView || 1, spaceBetween: parseInt(this.getElementSettings('space_between_slides')) || 0 } }; var breakpoints = elementorFrontend.config.responsive.breakpoints; $.each(breakpoints, function (idx, val) { if (val.is_enabled) { bpObj[idx] = { screenSize: val.value, slidesPerView: parseInt($this.getElementSettings('slides_per_view_' + idx)) || slidesPerView, spaceBetween: parseInt($this.getElementSettings('space_between_slides_' + idx)) || 0 }; } }); settings.customBreakpoints = bpObj; settings.customMultiple = true; } if (this.getElementSettings('autoplay') == 'yes') { settings.autoplay = { delay: this.getElementSettings('autoplay_speed'), disableOnInteraction: false, stopOnLastSlide: !(this.getElementSettings('infinity_loop') || false) }; } if (this.getElementSettings('arrow_navigation') == 'yes') { var selectorNext = this.elements.$container.find('.ha-slider-next'); var selectorPrev = this.elements.$container.find('.ha-slider-prev'); settings.navigation = { nextEl: selectorNext[0], prevEl: selectorPrev[0] }; } if (this.getElementSettings('pagination_type') == 'dots') { var selectorPagi = this.elements.$container.find('.ha-slider-pagination'); settings.pagination = { el: selectorPagi[0], clickable: true }; } if (this.getElementSettings('pagination_type') == 'progressbar') { var selectorPagi = this.elements.$container.find('.ha-slider-pagination'); settings.pagination = { el: selectorPagi[0], clickable: true, type: 'progressbar' }; } if (this.getElementSettings('pagination_type') == 'numbers') { var selectorPagi = this.elements.$container.find('.ha-slider-pagination'); settings.pagination = { el: selectorPagi[0], clickable: true, type: this.getElementSettings('number_pagination_type'), renderBullet: function renderBullet(index, className) { return '' + (index + 1) + ''; }, renderFraction: function renderFraction(currentClass, totalClass) { return '' + '/' + ''; } }; } if (this.getElementSettings('scroll_bar') == 'yes') { var selectorScroll = this.elements.$container.find('.ha-slider-scrollbar'); settings.scrollbar = { el: selectorScroll[0], hide: this.getElementSettings('scroll_bar_visibility') == 'true', draggable: true }; } if (this.getElementSettings('thumbs_navigation') == 'yes') { settings.thumbs = { swiper: haGallaryThumbs }; } return $.extend({}, settings); }, run: function run() { var elContainer = this.elements.$container; var slider = elContainer.find('.ha-slider-container'); var readySettings = this.getReadySettings(); var sliderObj = new HaSwiper(slider[0], readySettings); sliderObj.on('slideChange', function () { if (readySettings.ha_animation == 'none' || readySettings.sliderType == 'multiple') { return; } var aI = sliderObj.activeIndex; var elSlide = elContainer.find('.ha-slider-slide'); var elSlideContent = elContainer.find('.ha-slider-content'); var currentSlide = elSlideContent.eq(aI); currentSlide.hide(); if (currentSlide.length <= 0) { elSlide.eq(aI).find('.elementor-invisible').css('visibility', 'visible'); } setTimeout(function () { currentSlide.show(); }, readySettings.speed); }); } }); var CarouselBase = elementorModules.frontend.handlers.Base.extend({ onInit: function onInit() { elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments); this.run(); }, getDefaultSettings: function getDefaultSettings() { return { selectors: { container: ".ha-carousel-container" }, arrows: false, dots: false, checkVisible: false, infinite: true, slidesToShow: 3, rows: 0, prevArrow: '', nextArrow: '' }; }, getDefaultElements: function getDefaultElements() { var selectors = this.getSettings("selectors"); return { $container: this.findElement(selectors.container) }; }, onElementChange: function onElementChange() { this.elements.$container.slick("unslick"); this.run(); }, getReadySettings: function getReadySettings() { var settings = { infinite: !!this.getElementSettings("loop"), autoplay: !!this.getElementSettings("autoplay"), autoplaySpeed: this.getElementSettings("autoplay_speed"), speed: this.getElementSettings("animation_speed"), centerMode: !!this.getElementSettings("center"), vertical: !!this.getElementSettings("vertical"), slidesToScroll: 1 }; switch (this.getElementSettings("navigation")) { case "arrow": settings.arrows = true; break; case "dots": settings.dots = true; break; case "both": settings.arrows = true; settings.dots = true; break; } settings.slidesToShow = parseInt(this.getElementSettings('slides_to_show')) || 1; settings.responsive = [{ breakpoint: elementorFrontend.config.breakpoints.lg, settings: { slidesToShow: parseInt(this.getElementSettings("slides_to_show_tablet")) || settings.slidesToShow } }, { breakpoint: elementorFrontend.config.breakpoints.md, settings: { slidesToShow: parseInt(this.getElementSettings("slides_to_show_mobile")) || parseInt(this.getElementSettings("slides_to_show_tablet")) || settings.slidesToShow } }]; return $.extend({}, this.getSettings(), settings); }, run: function run() { this.elements.$container.slick(this.getReadySettings()); } }); // Source Code var SourceCode = function SourceCode($scope) { var $item = $scope.find('.ha-source-code'); var $lng_type = $item.data('lng-type'); var $after_copy_text = $item.data('after-copy'); var $code = $item.find('code.language-' + $lng_type); var $copy_btn = $scope.find('.ha-copy-code-button'); $copy_btn.on('click', function () { var $temp = $("