"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 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"); } }); $(".ha-dropdown-has > a").on("click", function (event) { if (!$(this).parents(".ha-navbar-nav, .ha-vertical-navbar-nav").hasClass("submenu-click-on-icon") || $(event.target).hasClass("ha-submenu-indicator-wrap")) { 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"); } } }); // $(".ha-menu-toggler").on("click", 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"); // } // }); $(".ha-navbar-nav li a").on("click", 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"); if (-1 !== sepor && oldUrl.length > 1 && s && lnk.pathname == window.location.pathname) { 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; } else { var now = new Date(); now.setTime(now.getTime() - 1000 * 3600); document.cookie = "HappyLocalTimeZone=;expires=" + now.toUTCString() + ";"; } 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) }; }, 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"), freeMode: true, watchSlidesVisibility: true, watchSlidesProgress: true }); } // TODO: Need to fix that in future. Currently, Disabled var tempEffect = this.getElementSettings("effect"); if (tempEffect == 'cube') { tempEffect = false; } 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") : tempEffect, ha_animation: this.getElementSettings("slider_content_animation"), sliderType: this.getElementSettings("slider_type") }; if (this.getElementSettings("effect") == "flip") { settings.flipEffect = { limitRotation: true, slideShadows: true }; } // TODO: Need to fix that in future. Currently, Disabled // 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); if (readySettings.customMultiple) { $(window).on('resize', function () { var mode = $('body').attr('data-elementor-device-mode'); sliderObj.params.slidesPerView = readySettings.customBreakpoints[mode].slidesPerView; sliderObj.params.spaceBetween = readySettings.customBreakpoints[mode].spaceBetween; sliderObj.update(); }).resize(); } sliderObj.on("slideChange", function () { if (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) {} setTimeout(function () { currentSlide.show(); }, readySettings.speed); elSlide.eq(aI).find(".elementor-invisible, .animated").each(function (e, t) { var i = $(this).data("settings"); if (i && (i._animation || i.animation)) { var n = i._animation_delay ? i._animation_delay : 0, a = i._animation || i.animation; $(this).removeClass("elementor-invisible"); $(this).addClass(a + " animated"); } }); }); sliderObj.on("transitionEnd", function () { var aI = sliderObj.activeIndex; var elSlide = elContainer.find(".ha-slider-slide"); var elSlideContent = elContainer.find(".ha-slider-content"); var currentSlide = elSlideContent.eq(aI); setTimeout(function () { elSlide.eq(aI).find(".animated").each(function (e, t) { var i = $(this).data("settings"); if (i && (i._animation || i.animation)) { var n = i._animation_delay ? i._animation_delay : 0, a = i._animation || i.animation; $(this).removeClass(a); } }); }, 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 = $("