PageSourceSearch

https://donate.bdrcs.org/wp-content/cache/speedycache/donate.bdrcs…/d7212a8cce4e20f2-happy-addons-pro.js

js bdrcs.org collected 2026-10-02 07:58:52 UTC 178,632 bytes, 5,449 lines download raw bytes

1"use strict";
2function _typeof(o){ "@babel/helpers - typeof"; return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator ? function (o){ return typeof o; }:function (o){ return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype ? "symbol":typeof o; }, _typeof(o); }
3window.Happy=window.Happy||{};
4(function ($, Happy, w){
5var $window=$(w);
6$(function (){
7var $container=$('.ha-fsb-container');
8if($container.length > 0){
9if(window.history&&window.history.pushState){
10ha_manage_fsb();
11}
12;
13$(document.body).on("added_to_cart", function (event, fragments, cart_hash, $button){
14ha_manage_fsb();
15});
16$(document.body).on("removed_from_cart", function (event, fragments, cart_hash, $button){
17ha_manage_fsb();
18});
19}
20function ha_manage_fsb(){
21$.ajax({
22url: HappyProLocalize.ajax_url,
23type: "POST",
24data: {
25action: "ha_get_cart_subtotal_action",
26security: HappyProLocalize.nonce
27},
28success: function success(response){
29var $data=JSON.parse(response);
30var $subTotalAmount=$data.subTotalAmount;
31if($data.status=='true'&&$subTotalAmount >=0){
32var $container=$('.ha-fsb-container');
33var $elem=$container.find('.ha-fsb-size');
34var $settings=$container.data('fsb_settings');
35if($settings!=undefined){
36var $aimationSpeed=$settings.hasOwnProperty('ha_fsb_animation_speed') ? $settings.ha_fsb_animation_speed:15;
37var $progressType=$settings.hasOwnProperty('progress_type') ? $settings.progress_type:'percent';
38var $currencySymbol=$settings.hasOwnProperty('currencySymbol')&&$progressType=='percent' ? '%':$settings.currencySymbol;
39var $targetAmount=$settings.hasOwnProperty('target_amount') ? $settings.target_amount:0;
40var $totalPercent=0;
41if(parseFloat($subTotalAmount) >=parseFloat($targetAmount)){
42$totalPercent=100;
43}else{
44if(parseFloat($targetAmount)==0){
45$totalPercent=0;
46}else{
47$totalPercent=parseFloat($subTotalAmount) * 100 / parseFloat($targetAmount);
48}}
49$totalPercent=parseFloat(Math.round($totalPercent)) >=100 ? 100:parseFloat(Math.round($totalPercent));
50var $progressText=$progressType=='percent' ? $totalPercent:$subTotalAmount;
51var defaultWidth=$(window).width() <=768 ? 12:5;
52if($totalPercent > 0){
53$elem.text($progressText + $currencySymbol);
54$elem.css({
55'width': $totalPercent + "%",
56'transition': 'width ' + $aimationSpeed + 'ms ease-in-out'
57});
58}
59fsbMessageControl($totalPercent);
60if($progressText <=0){
61$elem.css('width', +defaultWidth + "%");
62$elem.text('0' + $currencySymbol);
63}}
64}},
65error: function error(_error){}});
66}
67;
68function fsbMessageControl(){
69var totalPercent=arguments.length > 0&&arguments[0]!==undefined ? arguments[0]:null;
70var fsbContainer=$('.ha-fsb-container');
71var settings=fsbContainer.data('fsb_settings');
72if(fsbContainer&&settings){
73if(totalPercent >=100){
74$('.ha-fsb-inner-content').html(settings.fsb_success_message);
75}else{
76$('.ha-fsb-inner-content').html(settings.announcement);
77}}
78}
79;
80function log(event, item, level){
81$(document).on(event, item, level);
82}
83var e;
84e=$(".ha-menu-container");
85$(e).each(function (){
86var button=$(this);
87if("yes"!=button.attr("ha-dom-added")){
88if(0===button.parents(".elementor-widget-ha-nav-menu").length){
89button.parents(".ha-wid-con").addClass("ha_menu_responsive_tablet");
90}
91button.attr("ha-dom-added", "yes");
92}});
93/*
94$(".ha-dropdown-has > a").on("click", function(event){
95if(!$(this).parents(".ha-navbar-nav, .ha-vertical-navbar-nav").hasClass("submenu-click-on-icon")||$(event.target).hasClass("ha-submenu-indicator-wrap")){
96event.preventDefault();
97var $oElemDragged=$(this).parent().find(">.ha-dropdown, >.ha-megamenu-panel");
98$oElemDragged.find(".ha-dropdown-open").removeClass("ha-dropdown-open");
99if($oElemDragged.hasClass("ha-dropdown-open")){
100$oElemDragged.removeClass("ha-dropdown-open");
101}else{
102$oElemDragged.addClass("ha-dropdown-open");
103}}
104});*/
105$(".ha-dropdown-has > a").on("click", function (event){
106var dropdownHref=$(this).attr("href");
107if(dropdownHref==="#"||typeof dropdownHref==="undefined"){
108event.preventDefault();
109var $oElemDragged=$(this).parent().find(">.ha-dropdown, >.ha-megamenu-panel");
110$oElemDragged.find(".ha-dropdown-open").removeClass("ha-dropdown-open");
111if($oElemDragged.hasClass("ha-dropdown-open")){
112$oElemDragged.removeClass("ha-dropdown-open");
113}else{
114$oElemDragged.addClass("ha-dropdown-open");
115}}else{
116if(!$(this).parents(".ha-navbar-nav, .ha-vertical-navbar-nav").hasClass("submenu-click-on-icon")||$(event.target).hasClass("ha-submenu-indicator-wrap")){
117event.preventDefault();
118var $oElemDragged=$(this).parent().find(">.ha-dropdown, >.ha-megamenu-panel");
119$oElemDragged.find(".ha-dropdown-open").removeClass("ha-dropdown-open");
120if($oElemDragged.hasClass("ha-dropdown-open")){
121$oElemDragged.removeClass("ha-dropdown-open");
122}else{
123$oElemDragged.addClass("ha-dropdown-open");
124}}
125}});
126$(".ha-navbar-nav li a").on("click", function (event){
127if(!$(this).attr("href")&&"ha-submenu-indicator-wrap"==event.target.className){
128var thirdItem=$(this);
129var lnk=thirdItem.get(0);
130var oldUrl=lnk.href;
131var sepor=oldUrl.indexOf("#");
132var s=thirdItem.parents(".ha-menu-container").hasClass("ha-nav-menu-one-page-yes");
133if(-1!==sepor&&oldUrl.length > 1&&s && lnk.pathname==window.location.pathname){
134event.preventDefault();
135thirdItem.parents(".ha-wid-con").find(".ha-menu-close").trigger("click");
136}}
137});
138});
139function debounce(func, wait, immediate){
140var timeout;
141return function (){
142var context=this,
143args=arguments;
144var later=function later(){
145timeout=null;
146if(!immediate) func.apply(context, args);
147};
148var callNow=immediate&&!timeout;
149clearTimeout(timeout);
150timeout=setTimeout(later, wait);
151if(callNow) func.apply(context, args);
152};}
153$window.on("elementor/frontend/init", function (){
154if(typeof haDisplayCondition!="undefined"&&haDisplayCondition.status=="true"){
155var HappyLocalTimeZone=new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1];
156var ha_secure=document.location.protocol==="https:" ? "secure":"";
157document.cookie="HappyLocalTimeZone=" + HappyLocalTimeZone + ";SameSite=Strict;" + ha_secure;
158}else{
159var now=new Date();
160now.setTime(now.getTime() - 1000 * 3600);
161document.cookie="HappyLocalTimeZone=;expires=" + now.toUTCString() + ";";
162}
163if(typeof haDisplayConditionInitialLoad!="undefined"&&haDisplayConditionInitialLoad.status==true){
164if(typeof haDisplayConditionInitialLoad.date!="undefined"&&haDisplayConditionInitialLoad.date!=""){
165var ha_secure=document.location.protocol==="https:" ? "secure":"";
166document.cookie=haDisplayConditionInitialLoad.name_1 + "=" + haDisplayConditionInitialLoad.value_1 + ";expires=" + haDisplayConditionInitialLoad.date + ";" + ha_secure;
167document.cookie=haDisplayConditionInitialLoad.name + "=" + haDisplayConditionInitialLoad.value + ";expires=" + haDisplayConditionInitialLoad.date + ";" + ha_secure;
168}else{
169var ha_secure=document.location.protocol==="https:" ? "secure":"";
170document.cookie=haDisplayConditionInitialLoad.name_1 + "=" + haDisplayConditionInitialLoad.value_1 + ";" + ha_secure;
171document.cookie=haDisplayConditionInitialLoad.name + "=" + haDisplayConditionInitialLoad.value + ";" + ha_secure;
172}}
173var CountDown=function CountDown($scope){
174var $item=$scope.find(".ha-countdown");
175var $countdown_item=$item.find(".ha-countdown-item");
176var $end_action=$item.data("end-action");
177var $redirect_link=$item.data("redirect-link");
178var $end_action_div=$item.find(".ha-countdown-end-action");
179var $editor_mode_on=$scope.hasClass("elementor-element-edit-mode");
180$item.countdown({
181end: function end(){
182if(("message"===$end_action||"img"===$end_action)&&$end_action_div!==undefined){
183$countdown_item.css("display", "none");
184$end_action_div.css("display", "block");
185}else if("url"===$end_action&&$redirect_link!==undefined&&$editor_mode_on!==true){
186window.location.replace($redirect_link);
187}}
188});
189};
190var SliderBase=elementorModules.frontend.handlers.Base.extend({
191onInit: function onInit(){
192elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
193this.run();
194},
195getDefaultSettings: function getDefaultSettings(){
196return {
197selectors: {
198container: ".ha-slider-container"
199}};},
200getDefaultElements: function getDefaultElements(){
201var selectors=this.getSettings("selectors");
202return {
203$container: this.$element.find(selectors.container)
204};},
205getReadySettings: function getReadySettings(){
206var $this=this;
207var slidesPerView=parseInt(this.getElementSettings("slides_per_view"))||1;
208if(this.getElementSettings("thumbs_navigation")=="yes"){
209var selectorThumbs=this.elements.$container.find(".ha-slider-gallery-thumbs");
210var haGallaryThumbs=new HaSwiper(selectorThumbs[0], {
211spaceBetween: this.getElementSettings("space_between_thumbs"),
212freeMode: true,
213watchSlidesVisibility: true,
214watchSlidesProgress: true
215});
216}
217var tempEffect=this.getElementSettings("effect");
218if(tempEffect=='cube'){
219tempEffect=false;
220}
221var settings={
222direction: this.getElementSettings("slider_direction"),
223slidesPerView: slidesPerView||1,
224spaceBetween: parseInt(this.getElementSettings("space_between_slides"))||0,
225loop: !!(this.getElementSettings("infinity_loop")||false),
226speed: parseInt(this.getElementSettings("effect_speed")),
227effect: this.getElementSettings("slider_type")=="multiple" ? this.getElementSettings("effect_multiple"):tempEffect,
228ha_animation: this.getElementSettings("slider_content_animation"),
229sliderType: this.getElementSettings("slider_type")
230};
231if(this.getElementSettings("effect")=="flip"){
232settings.flipEffect={
233limitRotation: true,
234slideShadows: true
235};}
236if(this.getElementSettings("effect_multiple")=="coverflow"){
237settings.coverflowEffect={
238rotate: 50,
239stretch: 0,
240depth: 100,
241modifier: 1,
242slideShadows: true
243};}
244if(this.getElementSettings("slider_type")=="multiple"){
245var bpObj={
246desktop: {
247slidesPerView: slidesPerView||1,
248spaceBetween: parseInt(this.getElementSettings("space_between_slides"))||0
249}};
250var breakpoints=elementorFrontend.config.responsive.breakpoints;
251$.each(breakpoints, function (idx, val){
252if(val.is_enabled){
253bpObj[idx]={
254screenSize: val.value,
255slidesPerView: parseInt($this.getElementSettings("slides_per_view_" + idx))||slidesPerView,
256spaceBetween: parseInt($this.getElementSettings("space_between_slides_" + idx))||0
257};}});
258settings.customBreakpoints=bpObj;
259settings.customMultiple=true;
260}
261if(this.getElementSettings("autoplay")=="yes"){
262settings.autoplay={
263delay: this.getElementSettings("autoplay_speed"),
264disableOnInteraction: false,
265stopOnLastSlide: !(this.getElementSettings("infinity_loop")||false)
266};}
267if(this.getElementSettings("arrow_navigation")=="yes"){
268var selectorNext=this.elements.$container.find(".ha-slider-next");
269var selectorPrev=this.elements.$container.find(".ha-slider-prev");
270settings.navigation={
271nextEl: selectorNext[0],
272prevEl: selectorPrev[0]
273};}
274if(this.getElementSettings("pagination_type")=="dots"){
275var selectorPagi=this.elements.$container.find(".ha-slider-pagination");
276settings.pagination={
277el: selectorPagi[0],
278clickable: true
279};}
280if(this.getElementSettings("pagination_type")=="progressbar"){
281var selectorPagi=this.elements.$container.find(".ha-slider-pagination");
282settings.pagination={
283el: selectorPagi[0],
284clickable: true,
285type: "progressbar"
286};}
287if(this.getElementSettings("pagination_type")=="numbers"){
288var selectorPagi=this.elements.$container.find(".ha-slider-pagination");
289settings.pagination={
290el: selectorPagi[0],
291clickable: true,
292type: this.getElementSettings("number_pagination_type"),
293renderBullet: function renderBullet(index, className){
294return '<span class="' + className + '">' + (index + 1) + "</span>";
295},
296renderFraction: function renderFraction(currentClass, totalClass){
297return '<span class="' + currentClass + '"></span>' + "<span>/</span>" + '<span class="' + totalClass + '"></span>';
298}};}
299if(this.getElementSettings("scroll_bar")=="yes"){
300var selectorScroll=this.elements.$container.find(".ha-slider-scrollbar");
301settings.scrollbar={
302el: selectorScroll[0],
303hide: this.getElementSettings("scroll_bar_visibility")=="true",
304draggable: true
305};}
306if(this.getElementSettings("thumbs_navigation")=="yes"){
307settings.thumbs={
308swiper: haGallaryThumbs
309};}
310return $.extend({}, settings);
311},
312run: function run(){
313var elContainer=this.elements.$container;
314var slider=elContainer.find(".ha-slider-container");
315var readySettings=this.getReadySettings();
316var sliderObj=new HaSwiper(slider[0], readySettings);
317if(readySettings.customMultiple){
318$(window).on('resize', function (){
319var mode=$('body').attr('data-elementor-device-mode');
320sliderObj.params.slidesPerView=readySettings.customBreakpoints[mode].slidesPerView;
321sliderObj.params.spaceBetween=readySettings.customBreakpoints[mode].spaceBetween;
322sliderObj.update();
323}).resize();
324}
325sliderObj.on("slideChange", function (){
326if(readySettings.sliderType=="multiple"){
327return;
328}
329var aI=sliderObj.activeIndex;
330var elSlide=elContainer.find(".ha-slider-slide");
331var elSlideContent=elContainer.find(".ha-slider-content");
332var currentSlide=elSlideContent.eq(aI);
333currentSlide.hide();
334if(currentSlide.length <=0){}
335setTimeout(function (){
336currentSlide.show();
337}, readySettings.speed);
338elSlide.eq(aI).find(".elementor-invisible, .animated").each(function (e, t){
339var i=$(this).data("settings");
340if(i&&(i._animation||i.animation)){
341var n=i._animation_delay ? i._animation_delay:0,
342a=i._animation||i.animation;
343$(this).removeClass("elementor-invisible");
344$(this).addClass(a + " animated");
345}});
346});
347sliderObj.on("transitionEnd", function (){
348var aI=sliderObj.activeIndex;
349var elSlide=elContainer.find(".ha-slider-slide");
350var elSlideContent=elContainer.find(".ha-slider-content");
351var currentSlide=elSlideContent.eq(aI);
352setTimeout(function (){
353elSlide.eq(aI).find(".animated").each(function (e, t){
354var i=$(this).data("settings");
355if(i&&(i._animation||i.animation)){
356var n=i._animation_delay ? i._animation_delay:0,
357a=i._animation||i.animation;
358$(this).removeClass(a);
359}});
360}, readySettings.speed);
361});
362}});
363var CarouselBase=elementorModules.frontend.handlers.Base.extend({
364onInit: function onInit(){
365elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
366this.run();
367},
368getDefaultSettings: function getDefaultSettings(){
369return {
370selectors: {
371container: ".ha-carousel-container"
372},
373arrows: false,
374dots: false,
375checkVisible: false,
376infinite: true,
377slidesToShow: 3,
378rows: 0,
379prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',
380nextArrow: '<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>'
381};},
382getDefaultElements: function getDefaultElements(){
383var selectors=this.getSettings("selectors");
384return {
385$container: this.findElement(selectors.container)
386};},
387onElementChange: function onElementChange(){
388this.elements.$container.slick("unslick");
389this.run();
390},
391getReadySettings: function getReadySettings(){
392var $rtl=$('html[dir="rtl"]').length==1||$('body').hasClass('rtl');
393if('yes'==this.getElementSettings('vertical')){
394$rtl=false;
395}
396var settings={
397infinite: !!this.getElementSettings("loop"),
398autoplay: !!this.getElementSettings("autoplay"),
399autoplaySpeed: this.getElementSettings("autoplay_speed"),
400speed: this.getElementSettings("animation_speed"),
401centerMode: !!this.getElementSettings("center"),
402vertical: !!this.getElementSettings("vertical"),
403rtl: $rtl
404};
405switch (this.getElementSettings("navigation")){
406case "arrow":
407settings.arrows=true;
408break;
409case "dots":
410settings.dots=true;
411break;
412case "both":
413settings.arrows=true;
414settings.dots=true;
415break;
416}
417var slides_to_scroll = !!this.getElementSettings('slides_to_scroll');
418settings.slidesToShow=parseInt(this.getElementSettings("slides_to_show"))||1;
419settings.slidesToScroll=slides_to_scroll ? parseInt(this.getElementSettings('slides_to_show'))||1:1;
420settings.responsive=[{
421breakpoint: elementorFrontend.config.breakpoints.lg,
422settings: {
423slidesToShow: parseInt(this.getElementSettings("slides_to_show_tablet"))||settings.slidesToShow,
424slidesToScroll: slides_to_scroll ? parseInt(this.getElementSettings('slides_to_show_tablet'))||settings.slidesToShow:1
425}}, {
426breakpoint: elementorFrontend.config.breakpoints.md,
427settings: {
428slidesToShow: parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||settings.slidesToShow,
429slidesToScroll: slides_to_scroll ? parseInt(this.getElementSettings('slides_to_show_mobile'))||parseInt(this.getElementSettings('slides_to_show_tablet'))||settings.slidesToShow:1
430}}];
431return $.extend({}, this.getSettings(), settings);
432},
433run: function run(){
434this.elements.$container.slick(this.getReadySettings());
435}});
436var SourceCode=function SourceCode($scope){
437var $item=$scope.find('.ha-source-code');
438var $lng_type=$item.data('lng-type');
439var $after_copy_text=$item.data('after-copy');
440var $code=$item.find('code.language-' + $lng_type);
441var $copy_btn=$scope.find('.ha-copy-code-button');
442$copy_btn.on('click', function (){
443var $temp=$("<textarea>");
444$(this).append($temp);
445$temp.val($code.text()).select();
446document.execCommand ("copy");
447$temp.remove();
448if($after_copy_text.length){
449$(this).text($after_copy_text);
450}});
451if($lng_type!==undefined&&$code!==undefined){
452Prism.highlightElement($code.get(0));
453}};
454var AnimatedText=function AnimatedText($scope){
455var $item=$scope.find(".cd-headline"),
456$animationDelay=$item.data("animation-delay");
457happyAnimatedText({
458selector: $item,
459animationDelay: $animationDelay
460});
461};
462var InstagramFeed=function InstagramFeed($scope){
463var button=$scope.find(".ha-insta-load-more");
464var instagram_wrap=$scope.find(".ha-insta-default");
465button.on("click", function (e){
466e.preventDefault();
467var $self=$(this),
468query_settings=$self.data("settings"),
469total=$self.data("total"),
470items=$scope.find(".ha-insta-item").length;
471$.ajax({
472url: HappyProLocalize.ajax_url,
473type: "POST",
474data: {
475action: "ha_instagram_feed_action",
476security: HappyProLocalize.nonce,
477query_settings: query_settings,
478loaded_item: items
479},
480success: function success(response){
481if(total > items){
482$(response).appendTo(instagram_wrap);
483}else{
484$self.text("All Loaded").addClass("loaded");
485setTimeout(function (){
486$self.css({
487display: "none"
488});
489}, 800);
490}},
491error: function error(_error2){}});
492});
493};
494var ScrollingImage=elementorModules.frontend.handlers.Base.extend({
495onInit: function onInit(){
496elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
497this.wrapper=this.$element.find(".ha-scrolling-image-wrapper");
498this.run();
499},
500onElementChange: function onElementChange(){
501this.run();
502},
503run: function run(){
504var container_height=this.wrapper.innerHeight(),
505container_width=this.wrapper.innerWidth(),
506image_align=this.wrapper.data("align"),
507scroll_direction=this.wrapper.data("scroll-direction"),
508items=this.wrapper.find(".ha-scrolling-image-container"),
509single_image_box=items.find(".ha-scrolling-image-item"),
510scroll="scroll" + image_align + scroll_direction + parseInt(container_height) + parseInt(container_width),
511duration=this.wrapper.data("duration"),
512direction="normal",
513horizontal_align_width=10,
514vertical_align_height=10;
515var start={
516transform: "translateY(" + container_height + "px)"
517},
518end={
519transform: "translateY(-101%)"
520};
521if("bottom"===scroll_direction||"right"===scroll_direction){
522direction="reverse";
523}
524if("ha-horizontal"===image_align){
525start={
526transform: "translateX(" + container_width + "px)"
527};
528end={
529transform: "translateX(-101%)"
530};
531single_image_box.each(function (){
532horizontal_align_width +=$(this).outerWidth(true);
533});
534items.css({
535width: horizontal_align_width,
536display: "flex"
537});
538items.find("img").css({
539"max-width": "100%"
540});
541single_image_box.css({
542display: "inline-flex"
543});
544}
545if("ha-vertical"===image_align){
546single_image_box.each(function (){
547vertical_align_height +=$(this).outerHeight(true);
548});
549}
550$.keyframe.define([{
551name: scroll,
552"0%": start,
553"100%": end
554}]);
555items.playKeyframe({
556name: scroll,
557duration: duration.toString() + "ms",
558timingFunction: "linear",
559delay: "0s",
560iterationCount: "infinite",
561direction: direction,
562fillMode: "none",
563complete: function complete(){}});
564if(this.$element.hasClass("ha-scrolling-image-hover-pause--yes")){
565items.find(".ha-scrolling-image-item").on('mouseover mouseleave', function (e){
566var $this=$(this);
567if(e.type==='mouseover'){
568items.pauseKeyframe();
569}else if(e.type==='mouseleave'){
570items.resumeKeyframe();
571}});
572}}
573});
574var PricingTableToolTip=function PricingTableToolTip($scope){
575var tooltip_area=$scope.find(".ha-pricing-table-feature-tooltip");
576tooltip_area.on({
577mouseenter: function mouseenter(e){
578var $this=$(this),
579direction=$this[0].getBoundingClientRect(),
580tooltip=$this.find(".ha-pricing-table-feature-tooltip-text"),
581tooltipW=tooltip.outerWidth(true),
582tooltipH=tooltip.outerHeight(true),
583W_width=$(window).width(),
584W_height=$(window).height();
585tooltip.css({
586left: "0",
587right: "auto",
588top: "calc(100% + 1px)",
589bottom: "auto"
590});
591if(W_width - direction.left < tooltipW&&direction.right < tooltipW){
592tooltip.css({
593left: "calc(50% - (" + tooltipW + "px/2))"
594});
595}else if(W_width - direction.left < tooltipW){
596tooltip.css({
597left: "auto",
598right: "0"
599});
600}
601if(W_height - direction.bottom < tooltipH){
602tooltip.css({
603top: "auto",
604bottom: "calc(100% + 1px)"
605});
606}}
607});
608};
609var TabHandlerBase=elementorModules.frontend.handlers.Base.extend({
610$activeContent: null,
611getDefaultSettings: function getDefaultSettings(){
612return {
613selectors: {
614tabTitle: ".ha-tab__title",
615tabContent: ".ha-tab__content"
616},
617classes: {
618active: "ha-tab--active"
619},
620showTabFn: "show",
621hideTabFn: "hide",
622toggleSelf: false,
623hidePrevious: true,
624autoExpand: true
625};},
626getDefaultElements: function getDefaultElements(){
627var selectors=this.getSettings("selectors");
628return {
629$tabTitles: this.findElement(selectors.tabTitle),
630$tabContents: this.findElement(selectors.tabContent)
631};},
632activateDefaultTab: function activateDefaultTab(){
633var settings=this.getSettings();
634if(!settings.autoExpand||"editor"===settings.autoExpand&&!this.isEdit){
635return;
636}
637var defaultActiveTab=this.getEditSettings("activeItemIndex")||1,
638originalToggleMethods={
639showTabFn: settings.showTabFn,
640hideTabFn: settings.hideTabFn
641};
642this.setSettings({
643showTabFn: "show",
644hideTabFn: "hide"
645});
646this.changeActiveTab(defaultActiveTab);
647this.setSettings(originalToggleMethods);
648},
649deactivateActiveTab: function deactivateActiveTab(tabIndex){
650var settings=this.getSettings(),
651activeClass=settings.classes.active,
652activeFilter=tabIndex ? '[data-tab="' + tabIndex + '"]':"." + activeClass,
653$activeTitle=this.elements.$tabTitles.filter(activeFilter),
654$activeContent=this.elements.$tabContents.filter(activeFilter);
655$activeTitle.add($activeContent).removeClass(activeClass);
656$activeContent[settings.hideTabFn]();
657},
658activateTab: function activateTab(tabIndex){
659var settings=this.getSettings(),
660activeClass=settings.classes.active,
661$requestedTitle=this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'),
662$requestedContent=this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]');
663$requestedTitle.add($requestedContent).addClass(activeClass);
664$requestedContent[settings.showTabFn]();
665},
666isActiveTab: function isActiveTab(tabIndex){
667return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings("classes.active"));
668},
669bindEvents: function bindEvents(){
670var _this=this;
671this.elements.$tabTitles.on({
672keydown: function keydown(event){
673if("Enter"===event.key){
674if('A'==event.currentTarget.tagName&&event.currentTarget.classList.contains('ha-tab__title')){
675return;
676}
677event.preventDefault();
678_this.changeActiveTab(event.currentTarget.getAttribute("data-tab"));
679}},
680click: function click(event){
681if('A'==event.currentTarget.tagName&&event.currentTarget.classList.contains('ha-tab__title')){
682return;
683}
684event.preventDefault();
685_this.changeActiveTab(event.currentTarget.getAttribute("data-tab"));
686if(/iPhone/i.test(navigator.userAgent)){
687$("body,html,document").scrollTop($(this).offset().top);
688}}
689});
690this.smoothScrollTabs();
691},
692onInit: function onInit(){
693elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
694this.activateDefaultTab();
695this.smoothScrollTabs();
696},
697onEditSettingsChange: function onEditSettingsChange(propertyName){
698if("activeItemIndex"===propertyName){
699this.activateDefaultTab();
700}},
701changeActiveTab: function changeActiveTab(tabIndex){
702var isActiveTab=this.isActiveTab(tabIndex),
703settings=this.getSettings();
704if((settings.toggleSelf||!isActiveTab)&&settings.hidePrevious){
705this.deactivateActiveTab();
706}
707if(!settings.hidePrevious&&isActiveTab){
708this.deactivateActiveTab(tabIndex);
709}
710if(!isActiveTab){
711this.activateTab(tabIndex);
712}
713$(document).trigger("ha_TabHandlerBase_changed");
714$(window).trigger("resize");
715},
716smoothScrollTabs: function smoothScrollTabs(){
717var that=this;
718var tabTitles=this.$element.find('.ha-tabs__nav .ha-tab__title');
719$(window).on("resize", function (){
720if(window.innerWidth <=768){
721tabTitles.each(function (){
722$(this).on('click', function (){
723var container=that.$element.find('.ha-tabs__nav')[0];
724if(container){
725var containerRect=container.getBoundingClientRect();
726var itemRect=this.getBoundingClientRect();
727var scrollPosition=container.scrollLeft + (itemRect.left - containerRect.left) - containerRect.width / 2 + itemRect.width / 2;
728container.scrollTo({
729left: scrollPosition,
730behavior: 'smooth'
731});
732}});
733});
734}}).trigger("resize");
735}});
736var TimeLine=function TimeLine($scope){
737var T_ID=$scope.data("id");
738var timeline=$scope.find(".ha-timeline-wrap");
739var dataScroll=timeline.data("scroll");
740var timeline_block=timeline.find(".ha-timeline-block");
741var event="scroll.timelineScroll" + T_ID + " resize.timelineScroll" + T_ID;
742function scroll_tree(){
743timeline_block.each(function (){
744var block_height=$(this).outerHeight(true);
745var $offsetTop=$(this).offset().top;
746var window_middle_p=$window.scrollTop() + $window.height() / 2;
747if($offsetTop < window_middle_p){
748$(this).addClass("ha-timeline-scroll-tree");
749}else{
750$(this).removeClass("ha-timeline-scroll-tree");
751}
752var scroll_tree_wrap=$(this).find(".ha-timeline-tree-inner");
753var scroll_height=$window.scrollTop() - scroll_tree_wrap.offset().top + $window.outerHeight() / 2;
754if($offsetTop < window_middle_p&&timeline_block.hasClass("ha-timeline-scroll-tree")){
755if(block_height > scroll_height){
756scroll_tree_wrap.css({
757height: scroll_height * 1.5 + "px"
758});
759}else{
760scroll_tree_wrap.css({
761height: block_height * 1.2 + "px"
762});
763}}else{
764scroll_tree_wrap.css("height", "0px");
765}});
766}
767if("yes"===dataScroll){
768scroll_tree();
769$window.on(event, scroll_tree);
770}else{
771$window.off(event);
772}};
773var HotSpots=elementorModules.frontend.handlers.Base.extend({
774onInit: function onInit(){
775elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
776this.init();
777},
778bindEvents: function bindEvents(){
779if(!this.isEdit){
780this.elements.$items.on("click.spotClick", function (e){
781e.preventDefault();
782});
783}},
784getDefaultSettings: function getDefaultSettings(){
785return {
786selectors: {
787item: ".ha-hotspots__item"
788}};},
789getDefaultElements: function getDefaultElements(){
790return {
791$items: this.findElement(this.getSettings("selectors.item"))
792};},
793onElementChange: function onElementChange(changedProp){
794if(!this.hasTipso()){
795return;
796}
797if(changedProp.indexOf("tooltip_")===0){
798this.elements.$items.tipso("destroy");
799this.init();
800}},
801hasTipso: function hasTipso(){
802return $.fn["tipso"];
803},
804init: function init(){
805var position=this.getElementSettings("tooltip_position"),
806width=this.getElementSettings("tooltip_width"),
807background=this.getElementSettings("tooltip_bg_color"),
808color=this.getElementSettings("tooltip_color"),
809speed=this.getElementSettings("tooltip_speed"),
810delay=this.getElementSettings("tooltip_delay"),
811hideDelay=this.getElementSettings("tooltip_hide_delay"),
812hideArrow=this.getElementSettings("tooltip_hide_arrow"),
813hover=this.getElementSettings("tooltip_hover"),
814elementId=this.getID();
815if(!this.hasTipso()){
816return;
817}
818this.elements.$items.each(function (index, item){
819var $item=$(item),
820target=$item.data("target"),
821settings=$item.data("settings"),
822classes=["ha-hotspots--" + elementId, "elementor-repeater-item-" + target];
823$item.tipso({
824color: color,
825width: width.size||200,
826position: settings.position||position,
827speed: speed,
828delay: delay,
829showArrow: !hideArrow,
830tooltipHover: !!hover,
831hideDelay: hideDelay,
832background: background,
833useTitle: false,
834content: $("#ha-" + target).html(),
835onBeforeShow: function onBeforeShow($e, e, tooltip){
836$(document).find('.elementor-repeater-item-' + target).remove();
837tooltip.tipso_bubble.addClass(classes.join(" "));
838}});
839});
840}});
841var LineChart=function LineChart($scope){
842haObserveTarget($scope[0], function (){
843var $container=$scope.find(".ha-line-chart-container"),
844$chart_canvas=$scope.find("#ha-line-chart"),
845settings=$container.data("settings");
846if($container.length){
847var chart=new Chart($chart_canvas, settings);
848}});
849};
850var RadarChart=function RadarChart($scope){
851haObserveTarget($scope[0], function (){
852var $container=$scope.find(".ha-radar-chart-container"),
853$chart_canvas=$scope.find("#ha-radar-chart"),
854settings=$container.data("settings");
855if($container.length){
856var chart=new Chart($chart_canvas, settings);
857}});
858};
859var PolarChart=function PolarChart($scope){
860haObserveTarget($scope[0], function (){
861var $container=$scope.find(".ha-polar-chart-container"),
862$chart_canvas=$scope.find("#ha-polar-chart"),
863settings=$container.data("settings");
864if($container.length){
865var chart=new Chart($chart_canvas, settings);
866}});
867};
868var PieChart=function PieChart($scope){
869haObserveTarget($scope[0], function (){
870var $container=$scope.find(".ha-pie-chart-container"),
871$chart_canvas=$scope.find("#ha-pie-chart"),
872settings=$container.data("settings");
873if($container.length){
874var chart=new Chart($chart_canvas, settings);
875}});
876};
877var StickyVideoArray=[];
878var StickyVideo=function StickyVideo($scope){
879var $id="#ha-sticky-video-player-" + $scope.data("id"),
880$wrap=$scope.find(".ha-sticky-video-wrap"),
881$settting=$wrap.data("ha-player"),
882$box=$wrap.find(".ha-sticky-video-box"),
883$overlay_box=$wrap.find(".ha-sticky-video-overlay"),
884$overlay_play=$overlay_box.find(".ha-sticky-video-overlay-icon"),
885$sticky_close=$wrap.find(".ha-sticky-video-close i"),
886$all_box=$(".ha-sticky-video-box"),
887event="scroll.haStickyVideo" + $scope.data("id"),
888set;
889var playerAbc=new Plyr($id);
890var StickyVideoObject={
891player: playerAbc,
892event: event,
893player_box: $box
894};
895StickyVideoArray.push(StickyVideoObject);
896playerAbc.on("ready", function (e){
897var $box_plyr=$box.find('.plyr.plyr--video');
898if(true==$settting.autoplay){
899$box_plyr.trigger("click");
900}});
901if(0!==$overlay_box.length){
902var $el=0!==$overlay_play.length ? $overlay_play:$overlay_box;
903$el.on("click", function (){
904playerAbc.play();
905});
906}
907$sticky_close.on("click", function (){
908$box.removeClass("sticky");
909$box.addClass("sticky-close");
910playerAbc.pause();
911});
912playerAbc.on("play", function (e){
913$overlay_box.css("display", "none");
914if($box.hasClass("sticky-close")){
915$box.removeClass("sticky-close");
916}
917StickyVideoArray.forEach(function (item, index){
918if(item.player!==playerAbc){
919item.player.pause();
920}
921if(item.event!==event){
922$window.off(item.event);
923}
924if(item.player_box!==$box){
925item.player_box.removeClass("sticky");
926}});
927if(true===$settting.sticky){
928$window.on(event, function (){
929var height=$box.outerHeight(true);
930var $offsetTop=$wrap.offset().top;
931var videoBoxTopPoint=$window.scrollTop();
932var videoBoxMiddlePoint=$offsetTop + height / 2;
933if(!$box.hasClass("sticky-close")){
934if(videoBoxMiddlePoint < videoBoxTopPoint){
935$box.addClass("sticky");
936}else{
937$box.removeClass("sticky");
938}}
939});
940}else{
941$window.off(event);
942}});
943playerAbc.on("pause", function (e){
944$window.off(event);
945});
946$window.on("load resize", debounce(function (){
947var height=$box.find(".plyr").height();
948$wrap.css("min-height", height + "px");
949}, 100));
950};
951var FacebookFeed=function FacebookFeed($scope){
952var button=$scope.find(".ha-facebook-load-more");
953var facebook_wrap=$scope.find(".ha-facebook-items");
954button.on("click", function (e){
955e.preventDefault();
956var $self=$(this),
957query_settings=$self.data("settings"),
958total=$self.data("total"),
959items=$scope.find(".ha-facebook-item").length;
960$.ajax({
961url: HappyProLocalize.ajax_url,
962type: "POST",
963data: {
964action: "ha_facebook_feed_action",
965security: HappyProLocalize.nonce,
966query_settings: query_settings,
967loaded_item: items
968},
969success: function success(response){
970if(total > items){
971$(response).appendTo(facebook_wrap);
972}else{
973$self.text("All Loaded").addClass("loaded");
974setTimeout(function (){
975$self.css({
976display: "none"
977});
978}, 800);
979}},
980error: function error(_error3){}});
981});
982};
983var SmartPostList=function SmartPostList($scope){
984var filterWrap=$scope.find(".ha-spl-filter"),
985customSelect=$scope.find(".ha-spl-custom-select"),
986gridWrap=$scope.find(".ha-spl-grid-area"),
987mainWrapper=$scope.find(".ha-spl-wrapper"),
988querySettings=mainWrapper.data("settings"),
989dataOffset=mainWrapper.attr("data-offset"),
990nav=$scope.find(".ha-spl-pagination button"),
991navPrev=$scope.find(".ha-spl-pagination button.prev"),
992navNext=$scope.find(".ha-spl-pagination button.next"),
993filter=$scope.find("ul.ha-spl-filter-list li span"),
994event;
995customSelect.niceSelect();
996var select=$scope.find(".ha-spl-custom-select li");
997function afterClick(e){
998e.preventDefault();
999var $self=$(this),
1000dataFilter=filterWrap.attr("data-active"),
1001dataTotalOffset=mainWrapper.attr("data-total-offset"),
1002offset="",
1003termId="";
1004if(e.target.classList.contains("prev")||e.target.classList.contains("fa-angle-left")){
1005if(0==parseInt(dataTotalOffset)){
1006navPrev.attr("disabled", true);
1007return;
1008}
1009offset=0!==parseInt(dataTotalOffset) ? parseInt(dataTotalOffset) - parseInt(dataOffset):"0";
1010if(undefined!==dataFilter){
1011termId=dataFilter;
1012}}else if(e.target.classList.contains("next")||e.target.classList.contains("fa-angle-right")){
1013offset=parseInt(dataTotalOffset) + parseInt(dataOffset);
1014if(undefined!==dataFilter){
1015termId=dataFilter;
1016}}
1017if(e.target.hasAttribute("data-value")){
1018termId=e.target.dataset["value"];
1019filterWrap[0].setAttribute("data-active", termId);
1020if("SPAN"===e.target.tagName){
1021filter.removeClass("ha-active");
1022e.target.classList.toggle("ha-active");
1023}
1024offset=0;
1025navPrev.attr("disabled", true);
1026navNext.removeAttr("disabled");
1027}
1028$.ajax({
1029url: HappyProLocalize.ajax_url,
1030type: "POST",
1031data: {
1032action: "ha_smart_post_list_action",
1033security: HappyProLocalize.nonce,
1034querySettings: querySettings,
1035offset: offset,
1036termId: termId
1037},
1038success: function success(response){
1039if($(response).length > 0){
1040gridWrap.css("height", gridWrap.outerHeight(true) + "px");
1041gridWrap.html("");
1042$(response).appendTo(gridWrap);
1043gridWrap.css("height", "");
1044mainWrapper[0].attributes["data-total-offset"].value=offset;
1045if(e.target.classList.contains("prev")||e.target.classList.contains("fa-angle-left")){
1046navNext.removeAttr("disabled");
1047}
1048if(e.target.classList.contains("next")||e.target.classList.contains("fa-angle-right")){
1049navPrev.removeAttr("disabled");
1050}}else{
1051if(e.target.classList.contains("next")||e.target.classList.contains("fa-angle-right")){
1052navNext.attr("disabled", true);
1053}}
1054},
1055error: function error(_error4){}});
1056}
1057nav.on("click", afterClick);
1058filter.on("click", afterClick);
1059select.on("click", afterClick);
1060};
1061var postGridSkins=["classic", "hawai", "standard", "monastic", "stylica", "outbox", "crossroad"];
1062var PostGrid=function PostGrid($scope){
1063var wrapper=$scope.find(".ha-pg-wrapper"),
1064gridWrap=wrapper.find(".ha-pg-grid-wrap"),
1065button=wrapper.find("button.ha-pg-loadmore");
1066button.on("click", function (e){
1067e.preventDefault();
1068var $self=$(this),
1069querySettings=$self.data("settings"),
1070items=wrapper.find(".ha-pg-item").length;
1071$self.attr("disabled", true);
1072$.ajax({
1073url: HappyProLocalize.ajax_url,
1074type: "POST",
1075data: {
1076action: "hapro_post_grid_action",
1077security: HappyProLocalize.nonce,
1078querySettings: querySettings,
1079loadedItem: items
1080},
1081beforeSend: function beforeSend(){
1082$self.find(".eicon-loading").css({
1083display: "inline-block"
1084});
1085},
1086success: function success(response){
1087if(response){
1088$(response).each(function (){
1089var $self=$(this);
1090if($self.hasClass("ha-pg-item")){
1091$self.addClass("ha-pg-item-loaded").appendTo(gridWrap);
1092}else{
1093$self.appendTo(gridWrap);
1094}});
1095}else{
1096$self.text("All Loaded").addClass("loaded");
1097setTimeout(function (){
1098$self.css({
1099display: "none"
1100});
1101}, 800);
1102}
1103$self.find(".eicon-loading").css({
1104display: "none"
1105});
1106$self.removeAttr("disabled");
1107},
1108error: function error(_error5){}});
1109});
1110};
1111var LoopGrid=function LoopGrid($scope){
1112var wrapper=$scope.find(".ha-hlg-wrapper"),
1113gridWrap=wrapper.find(".ha-hlg-grid-wrap"),
1114button=wrapper.find("button.ha-hlg-loadmore"),
1115createTemplate=$scope.find('.hlg-create-template');
1116button.on("click", function (e){
1117e.preventDefault();
1118var $self=$(this),
1119querySettings=$self.data("settings"),
1120items=wrapper.find(".ha-hlg-grid-item").length;
1121$self.attr("disabled", true);
1122$.ajax({
1123url: HappyProLocalize.ajax_url,
1124type: "POST",
1125data: {
1126action: "hapro_loop_grid_action",
1127security: HappyProLocalize.nonce,
1128querySettings: querySettings,
1129loadedItem: items
1130},
1131beforeSend: function beforeSend(){
1132$self.find(".eicon-loading").css({
1133display: "inline-block"
1134});
1135},
1136success: function success(response){
1137if(response){
1138$(response).each(function (){
1139var $self=$(this);
1140if($self.hasClass("ha-hlg-grid-item")){
1141$self.addClass("ha-hlg-grid-item-loaded").appendTo(gridWrap);
1142}else{
1143$self.appendTo(gridWrap);
1144}});
1145}else{
1146$self.text("All Loaded").addClass("loaded");
1147setTimeout(function (){
1148$self.css({
1149display: "none"
1150});
1151}, 800);
1152}
1153$self.find(".eicon-loading").css({
1154display: "none"
1155});
1156$self.removeAttr("disabled");
1157},
1158error: function error(_error6){}});
1159});
1160if(createTemplate.length > 0){
1161createTemplate.on("click", function (e){
1162e.preventDefault();
1163window.open($(this).attr('href'), '_blank').focus();
1164});
1165}};
1166var DataTable=function DataTable($scope){
1167var dataTable=$scope.find(".ha-advanced-table");
1168var widgetWrapper=$scope.find(".elementor-widget-container");
1169var row_td=$scope.find(".ha-advanced-table__body-row-cell");
1170var search=dataTable.data("search")==true ? true:false;
1171var paging=dataTable.data("paging")==true ? true:false;
1172var scrollX=dataTable.data("scroll-x")==undefined ? false:true;
1173if(window.innerWidth <=767){
1174var scrollX=true;
1175}
1176if(0==widgetWrapper.length){
1177widgetWrapper=$scope;
1178}
1179$(dataTable).DataTable({
1180searching: search,
1181paging: paging,
1182orderCellsTop: true,
1183scrollX: scrollX,
1184aaSorting: []
1185});
1186var column_th=$scope.find(".ha-advanced-table__head-column-cell");
1187column_th.each(function (index, v){
1188$(column_th[index]).css("width", "");
1189});
1190if(dataTable.data("export-table")==true){
1191widgetWrapper.prepend('<div class="ha-advanced-table-btn-wrap"><button class="ha-advanced-table-btn">' + dataTable.data("export-table-text") + "</button></div>");
1192var dataTableBtn=$scope.find(".ha-advanced-table-btn");
1193dataTableBtn.on("click", function (){
1194var oldDownloadNode=document.querySelector(".ha-advanced-data-table-export");
1195if(oldDownloadNode){
1196oldDownloadNode.parentNode.removeChild(oldDownloadNode);
1197}
1198var csv=[];
1199dataTable.find("tr").each(function (index, tr){
1200var data=[];
1201$(tr).find("th").each(function (index, th){
1202data.push(th.textContent);
1203});
1204$(tr).find("td").each(function (index, td){
1205data.push(td.textContent);
1206});
1207csv.push(data.join(","));
1208});
1209var csvFile=new Blob([csv.join("\n")], {
1210type: "text/csv"
1211});
1212var downloadNode=document.createElement("a");
1213var url=URL.createObjectURL(csvFile);
1214var date=new Date();
1215var options={
1216day: "2-digit",
1217month: "short",
1218year: "numeric",
1219hour: "numeric",
1220minute: "numeric",
1221second: "numeric"
1222};
1223var formatedDate=date.toLocaleDateString("en-BD", options);
1224var dateString=JSON.stringify(formatedDate.replace(/[ , :]/g, "-"));
1225downloadNode.download="advanced-data-table-" + dateString + "~" + dataTable.data("widget-id") + ".csv";
1226downloadNode.setAttribute("href", url);
1227downloadNode.classList.add("ha-advanced-data-table-export");
1228downloadNode.style.visibility="hidden";
1229document.body.appendChild(downloadNode);
1230downloadNode.click();
1231});
1232}
1233$(window).trigger('resize');
1234};
1235var ModalPopup=function ModalPopup($scope){
1236var boxWrapper=$scope.find(".ha-modal-popup-box-wrapper");
1237var triggerType=boxWrapper.data("trigger-type");
1238var trigger=$scope.find(".ha-modal-popup-trigger");
1239var overlayClose=$scope.find(".ha-modal-popup-overlay");
1240var iconClose=$scope.find(".ha-modal-popup-content-close");
1241var modal=$scope.find(".ha-modal-popup-content-wrapper");
1242var modalAnimation=modal.data("animation");
1243var modalDelay=modal.data("display-delay");
1244if("pageload"==triggerType){
1245if(!modal.hasClass("ha-modal-show")){
1246setTimeout(function (){
1247modal.addClass("ha-modal-show");
1248modal.find(".ha-modal-animation").addClass(modalAnimation);
1249}, parseInt(modalDelay));
1250}}else{
1251trigger.on("click", function (e){
1252e.preventDefault();
1253var wrapper=$(this).closest(".ha-modal-popup-box-wrapper"),
1254modal=wrapper.find(".ha-modal-popup-content-wrapper"),
1255modalAnimation=modal.data("animation"),
1256modalContent=modal.find(".ha-modal-animation");
1257if(!modal.hasClass("ha-modal-show")){
1258modal.addClass("ha-modal-show");
1259modalContent.addClass(modalAnimation);
1260}});
1261}
1262overlayClose.on("click", close_modal);
1263iconClose.on("click", close_modal);
1264function close_modal(el){
1265var wrap=$(this).closest(".ha-modal-popup-content-wrapper"),
1266modalAnimation=wrap.data("animation");
1267if(wrap!=null&&wrap.hasClass("ha-modal-show")){
1268var doSetTimeout=function doSetTimeout(target, source){
1269setTimeout(function (){
1270target.attr("src", source);
1271}, 500);
1272};
1273var nVideo=wrap.find("iframe, video");
1274$.each(nVideo, function (idx, val){
1275var videoSrc=$(this).attr("src");
1276$(this).attr("src", "https://happyaddons.com/marvin/index.html");
1277doSetTimeout($(this), videoSrc);
1278});
1279wrap.removeClass("ha-modal-show");
1280wrap.find("." + modalAnimation).removeClass(modalAnimation);
1281}}
1282};
1283var miniCart=function miniCart($scope){
1284$scope.find(".ha-mini-cart-inner").on("click mouseenter mouseleave", function (e){
1285var cart_btn=$(this),
1286on_click=cart_btn.hasClass("ha-mini-cart-on-click"),
1287on_hover=cart_btn.hasClass("ha-mini-cart-on-hover"),
1288popup=cart_btn.find(".ha-mini-cart-popup");
1289if(popup.length==0){
1290return;
1291}
1292if("click"===e.type&&on_click){
1293popup.fadeToggle();
1294}
1295if("mouseenter"===e.type&&on_hover){
1296popup.fadeIn();
1297}
1298if("mouseleave"===e.type&&on_hover){
1299popup.fadeOut();
1300}});
1301if($scope.find(".ha-mini-cart-popup").length > 0&&$scope.find(".ha-mini-cart-on-click").length > 0){
1302$("body").on("click", function (e){
1303if($(e.target).hasClass("ha-mini-cart-popup")||$(e.target).parents().hasClass("ha-mini-cart-popup")||$(e.target).hasClass("ha-mini-cart-button")||$(e.target).parents().hasClass("ha-mini-cart-button")){
1304return;
1305}else{
1306$scope.find(".ha-mini-cart-popup").removeAttr("style");
1307}});
1308}};
1309var ImageScroller=elementorModules.frontend.handlers.Base.extend({
1310onInit: function onInit(){
1311elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
1312this.wrapper=this.$element.find(".ha-image-scroller-wrapper");
1313this.run();
1314},
1315onElementChange: function onElementChange(){
1316this.run();
1317},
1318run: function run(){
1319var triggerType=this.wrapper.data("trigger-type");
1320if("hover"!==triggerType){
1321return;
1322}
1323var figure=this.wrapper.find(".ha-image-scroller-container");
1324var scrollType=this.wrapper.data("scroll-type");
1325var scrollDirection=this.wrapper.data("scroll-direction");
1326var imageScroll=figure.find("img");
1327var transformY=imageScroll.height() - figure.height();
1328var transformX=imageScroll.width() - figure.width();
1329if(scrollType==="vertical"&&transformY > 0){
1330if("top"===scrollDirection){
1331mouseEvent("translateY", transformY);
1332}else{
1333imageScroll.css("transform", "translateY" + "(-" + transformY + "px)");
1334mouseEventRevers("translateY", transformY);
1335}}
1336if(scrollType==="horizontal"&&transformX > 0){
1337if("left"===scrollDirection){
1338mouseEvent("translateX", transformX);
1339}else{
1340imageScroll.css("transform", "translateX" + "(-" + transformX + "px)");
1341mouseEventRevers("translateX", transformX);
1342}}
1343function mouseEvent(cssProperty, value){
1344figure.on("mouseenter", function (){
1345imageScroll.css("transform", cssProperty + "(-" + value + "px)");
1346});
1347figure.on("mouseleave", function (){
1348imageScroll.css("transform", cssProperty + "(0px)");
1349});
1350}
1351function mouseEventRevers(cssProperty, value){
1352figure.on("mouseenter", function (){
1353imageScroll.css("transform", cssProperty + "(0px)");
1354});
1355figure.on("mouseleave", function (){
1356imageScroll.css("transform", cssProperty + "(-" + value + "px)");
1357});
1358}}
1359});
1360var NavMenu=function _init($scope){
1361$scope.find(".ha-menu-toggler").on("click", function (event){
1362event.preventDefault();
1363var el_form_group=$(this).parents(".ha-menu-container").parent();
1364if(el_form_group.length < 1){
1365el_form_group=$(this).parent();
1366}
1367var $wrapElement=el_form_group.find(".ha-menu-offcanvas-elements");
1368if($wrapElement.hasClass("active")){
1369$wrapElement.removeClass("active");
1370}else{
1371$wrapElement.addClass("active");
1372}});
1373if($scope.find(".ha-menu-container").length > 0){
1374var additionalDigits=$scope.find(".ha-wid-con").data("responsive-breakpoint");
1375var sidebar_mousemove=$scope.find(".ha-megamenu-has");
1376var tabPadding=$scope.find(".ha-menu-container").outerHeight();
1377$(document).ready(function (){
1378$scope.find(".ha-megamenu-panel").css({
1379visibility: "visible"
1380});
1381});
1382$(window).on("resize", function (){
1383$scope.find(".ha-megamenu-panel").css({
1384top: tabPadding
1385});
1386}).trigger("resize");
1387sidebar_mousemove.on("mouseenter", function (){
1388var q=$(this).data("vertical-menu");
1389var jqel=$(this).children(".ha-megamenu-panel");
1390if($(this).hasClass("ha-dropdown-menu-full_width")&&$(this).hasClass("top_position")){
1391var ffleft=Math.floor($(this).position().left - $(this).offset().left);
1392var $sharepreview=$(this);
1393$sharepreview.find(".ha-megamenu-panel").css("width", $(window).width());
1394$(window).on("resize", function (){
1395$sharepreview.find(".ha-megamenu-panel").css({
1396left: ffleft + "px"
1397});
1398}).trigger("resize");
1399}
1400if(!$(this).hasClass("ha-dropdown-menu-full_width")&&$(this).hasClass("top_position")){
1401$(this).on({
1402mouseenter: function setup(){
1403if(0===$(".default_menu_position").length){
1404$(this).parents(".elementor-section-wrap").addClass("default_menu_position");
1405}},
1406mouseleave: function setup(){
1407if(0!==$(".default_menu_position").length){
1408$(this).parents(".elementor-section-wrap").removeClass("default_menu_position");
1409}}
1410});
1411}
1412if(q&&q!==undefined){
1413if("string"==typeof q){
1414if(/^[0-9]/.test(q)){
1415$(window).on("resize", function (){
1416jqel.css({
1417width: q
1418});
1419if(!($(document).width() > Number(additionalDigits))){
1420jqel.removeAttr("style");
1421}}).trigger("resize");
1422}else{
1423$(window).on("resize", function (){
1424jqel.css({
1425width: q + "px"
1426});
1427if(!($(document).width() > Number(additionalDigits))){
1428jqel.removeAttr("style");
1429}}).trigger("resize");
1430}}else{
1431jqel.css({
1432width: q + "px"
1433});
1434}}else{
1435$(window).on("resize", function (){
1436jqel.css({
1437width: q + "px"
1438});
1439if(!($(document).width() > Number(additionalDigits))){
1440jqel.removeAttr("style");
1441}}).trigger("resize");
1442}});
1443sidebar_mousemove.trigger("mouseenter");
1444}};
1445elementorFrontend.hooks.addAction("frontend/element_ready/ha-countdown.default", CountDown);
1446elementorFrontend.hooks.addAction("frontend/element_ready/ha-team-carousel.default", function ($scope){
1447elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1448$element: $scope,
1449selectors: {
1450container: ".ha-team-carousel-wrap"
1451},
1452prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
1453nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
1454});
1455});
1456elementorFrontend.hooks.addAction("frontend/element_ready/ha-source-code.default", SourceCode);
1457elementorFrontend.hooks.addAction("frontend/element_ready/ha-animated-text.default", AnimatedText);
1458elementorFrontend.hooks.addAction("frontend/element_ready/ha-logo-carousel.default", function ($scope){
1459elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1460$element: $scope,
1461selectors: {
1462container: ".ha-logo-carousel-wrap"
1463}});
1464});
1465elementorFrontend.hooks.addAction("frontend/element_ready/ha-testimonial-carousel.default", function ($scope){
1466elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1467$element: $scope,
1468selectors: {
1469container: ".ha-testimonial-carousel__wrap"
1470}});
1471});
1472elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-tabs.default", function ($scope){
1473elementorFrontend.elementsHandler.addHandler(TabHandlerBase, {
1474$element: $scope
1475});
1476});
1477elementorFrontend.hooks.addAction("frontend/element_ready/ha-instagram-feed.default", InstagramFeed);
1478elementorFrontend.hooks.addAction("frontend/element_ready/ha-scrolling-image.default", function ($scope){
1479elementorFrontend.elementsHandler.addHandler(ScrollingImage, {
1480$element: $scope
1481});
1482});
1483elementorFrontend.hooks.addAction("frontend/element_ready/ha-pricing-table.default", PricingTableToolTip);
1484elementorFrontend.hooks.addAction("frontend/element_ready/ha-accordion.default", function ($scope){
1485elementorFrontend.elementsHandler.addHandler(TabHandlerBase, {
1486$element: $scope,
1487selectors: {
1488tabTitle: ".ha-accordion__item-title",
1489tabContent: ".ha-accordion__item-content"
1490},
1491classes: {
1492active: "ha-accordion__item--active"
1493},
1494showTabFn: "slideDown",
1495hideTabFn: "slideUp"
1496});
1497});
1498elementorFrontend.hooks.addAction("frontend/element_ready/ha-toggle.default", function ($scope){
1499elementorFrontend.elementsHandler.addHandler(TabHandlerBase, {
1500$element: $scope,
1501selectors: {
1502tabTitle: ".ha-toggle__item-title",
1503tabContent: ".ha-toggle__item-content"
1504},
1505classes: {
1506active: "ha-toggle__item--active"
1507},
1508hidePrevious: false,
1509autoExpand: "editor",
1510showTabFn: "slideDown",
1511hideTabFn: "slideUp"
1512});
1513});
1514elementorFrontend.hooks.addAction("frontend/element_ready/ha-timeline.default", TimeLine);
1515elementorFrontend.hooks.addAction("frontend/element_ready/ha-hotspots.default", function ($scope){
1516elementorFrontend.elementsHandler.addHandler(HotSpots, {
1517$element: $scope
1518});
1519});
1520elementorFrontend.hooks.addAction("frontend/element_ready/ha-line-chart.default", LineChart);
1521elementorFrontend.hooks.addAction("frontend/element_ready/ha-pie-chart.default", PieChart);
1522elementorFrontend.hooks.addAction("frontend/element_ready/ha-polar-chart.default", PolarChart);
1523elementorFrontend.hooks.addAction("frontend/element_ready/ha-radar-chart.default", RadarChart);
1524elementorFrontend.hooks.addAction("frontend/element_ready/ha-facebook-feed.default", FacebookFeed);
1525elementorFrontend.hooks.addAction("frontend/element_ready/ha-smart-post-list.default", SmartPostList);
1526elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-data-table.default", DataTable);
1527elementorFrontend.hooks.addAction("frontend/element_ready/ha-twitter-carousel.default", function ($scope){
1528elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1529$element: $scope,
1530selectors: {
1531container: ".ha-tweet-carousel-items"
1532}});
1533});
1534elementorFrontend.hooks.addAction("frontend/element_ready/ha-post-carousel.default", function ($scope){
1535elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1536$element: $scope,
1537selectors: {
1538container: ".ha-posts-carousel-wrapper"
1539},
1540prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
1541nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
1542});
1543});
1544function initEddCarousel($scope){
1545elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1546$element: $scope,
1547selectors: {
1548container: ".ha-edd-product-carousel-wrapper"
1549},
1550prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
1551nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
1552});
1553}
1554function eddCarouselHandlerCallback($scope){
1555initEddCarousel($scope);
1556initProductQuickView($scope);
1557}
1558elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-product-carousel.default", eddCarouselHandlerCallback);
1559function initProductCarousel($scope){
1560elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1561$element: $scope,
1562selectors: {
1563container: ".ha-product-carousel-wrapper"
1564},
1565prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
1566nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
1567});
1568}
1569function productCarouselHandlerCallback($scope){
1570initProductCarousel($scope);
1571initProductQuickView($scope);
1572if($scope.find(".ha-product-carousel-wrapper").hasClass("ha-layout-modern")){
1573$scope.find(".ha-product-carousel-add-to-cart a").html('<i class="fas fa-shopping-cart"></i>');
1574}}
1575elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-carousel.classic", productCarouselHandlerCallback);
1576elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-carousel.modern", productCarouselHandlerCallback);
1577elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-carousel-new.default", productCarouselHandlerCallback);
1578var productCategoryCarouselSkins=["classic", "minimal"];
1579function initProductCategoryCarousel($scope){
1580elementorFrontend.elementsHandler.addHandler(CarouselBase, {
1581$element: $scope,
1582selectors: {
1583container: ".ha-product-cat-carousel"
1584},
1585prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
1586nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
1587});
1588}
1589productCategoryCarouselSkins.forEach(function (index){
1590elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-category-carousel." + index, initProductCategoryCarousel);
1591});
1592elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-category-carousel-new.default", initProductCategoryCarousel);
1593elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-category-carousel.default", initProductCategoryCarousel);
1594postGridSkins.forEach(function (index){
1595elementorFrontend.hooks.addAction("frontend/element_ready/ha-post-grid." + index, PostGrid);
1596});
1597elementorFrontend.hooks.addAction("frontend/element_ready/ha-post-grid-new.default", PostGrid);
1598elementorFrontend.hooks.addAction("frontend/element_ready/ha-happy-loop-grid.default", LoopGrid);
1599elementorFrontend.hooks.addAction("frontend/element_ready/ha-sticky-video.default", StickyVideo);
1600elementorFrontend.hooks.addAction("frontend/element_ready/ha-modal-popup.default", ModalPopup);
1601function initProductQuickView($scope){
1602var $button=$scope.find(".ha-pqv-btn");
1603if(!$.fn["magnificPopup"]){
1604return;
1605}
1606$button.magnificPopup({
1607type: "ajax",
1608ajax: {
1609settings: {
1610cache: true,
1611dataType: "html"
1612},
1613cursor: "mfp-ajax-cur",
1614tError: "The product could not be loaded."
1615},
1616callbacks: {
1617ajaxContentAdded: function ajaxContentAdded(){
1618$(this.content).addClass(this.currItem.el.data("modal-class"));
1619}}
1620});
1621}
1622var initOnePageNav=elementorModules.frontend.handlers.Base.extend({
1623onInit: function onInit(){
1624elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
1625this.run();
1626},
1627onElementChange: function onElementChange(e){
1628if(e=='scroll_wheel'||e=='touch_swipe'||e=='scroll_keys'){
1629this.run();
1630}},
1631getReadySettings: function getReadySettings(){
1632var settings={
1633design: this.getElementSettings('select_design'),
1634speed: this.getElementSettings('scrolling_speed')||700,
1635offset: this.getElementSettings('row_to_offset')||0,
1636threshold: this.getEditSettings('section_threshold')||0.50,
1637scrollWheel: this.getElementSettings('scroll_wheel')=='yes',
1638touchSwipe: this.getElementSettings('touch_swipe')=='yes',
1639scrollKeys: this.getElementSettings('scroll_keys')=='yes'
1640};
1641return $.extend({}
1641, this.getSettings(), settings);
1642},
1643scroll: function scroll(id, speed, offset){
1644$('html, body').animate({
1645scrollTop: $('#' + id).offset().top - offset
1646}, speed);
1647},
1648run: function run(){
1649var $this=this;
1650var settings=this.getReadySettings();
1651var track=false;
1652var $navWrapper=settings.design=='ha-opn-design-default' ? this.$element.find(".ha-opn-dotted-item"):this.$element.find(".ha_opn__item");
1653$navWrapper.on('click', function (e){
1654e.preventDefault();
1655var targetId=$(this).find('a').data("section-id");
1656if($('#' + targetId).length > 0){
1657track=false;
1658$this.scroll(targetId, settings.speed, settings.offset);
1659$navWrapper.removeClass('ha_opn__item--current');
1660$(this).addClass('ha_opn__item--current');
1661}});
1662var sections=[];
1663var navItems={};
1664if($navWrapper.length > 0){
1665$.each($navWrapper, function (index, nav){
1666var targetId=$(this).find('a').data('section-id');
1667var targetSection=$('#' + targetId);
1668sections.push(targetSection[0]);
1669navItems[targetId]=$(this)[0];
1670});
1671}
1672var observerOptions={
1673root: null,
1674rootMargin: "0px 0px -100px 0px",
1675threshold: settings.threshold
1676};
1677var currentEvent;
1678var observer=new IntersectionObserver(function (entries){
1679entries.forEach(function (entry){
1680if(entry.isIntersecting){
1681var navItem=navItems[entry.target.id];
1682navItem.classList.add('ha_opn__item--current');
1683Object.values(navItems).forEach(function (item){
1684if(item!=navItem){
1685item.classList.remove('ha_opn__item--current');
1686}});
1687if(typeof elementor==='undefined'){
1688if(currentEvent=='load'&&track){
1689track=false;
1690$this.scroll(entry.target.id, settings.speed, settings.offset);
1691}
1692if(settings.scrollWheel&&currentEvent=='scroll'&&track){
1693track=false;
1694$this.scroll(entry.target.id, settings.speed, settings.offset);
1695}
1696if(settings.scrollKeys&&currentEvent=='keys'&&track){
1697track=false;
1698$this.scroll(entry.target.id, settings.speed, settings.offset);
1699}
1700if(settings.touchSwipe&&currentEvent=='touch'&&track){
1701track=false;
1702$this.scroll(entry.target.id, settings.speed, settings.offset);
1703}}
1704}});
1705}, observerOptions);
1706$(window).on('load', function (){
1707track=true;
1708if(sections.length > 0){
1709sections.forEach(function (sec){
1710if(!(sec==undefined)){
1711currentEvent='load';
1712observer.observe(sec);
1713}});
1714}});
1715$(window).on('mousewheel DOMMouseScroll', debounce(function (e){
1716track=true;
1717if(sections.length > 0){
1718sections.forEach(function (sec){
1719if(!(sec==undefined)){
1720currentEvent='scroll';
1721observer.observe(sec);
1722}});
1723}}, 200));
1724if(typeof elementor==='undefined'){
1725if(settings.scrollKeys){
1726$(window).on('keydown', debounce(function (evt){
1727track=true;
1728var code=parseInt(evt.keyCode);
1729if(sections.length > 0){
1730sections.forEach(function (sec){
1731if(!(sec==undefined)){
1732currentEvent='keys';
1733observer.observe(sec);
1734}});
1735}}, 200));
1736}
1737if(settings.touchSwipe){
1738$(window).on('touchmove', debounce(function (evt){
1739track=true;
1740if(sections.length > 0){
1741sections.forEach(function (sec){
1742if(!(sec==undefined)){
1743currentEvent='touch';
1744observer.observe(sec);
1745}});
1746}}, 200));
1747}}
1748}});
1749elementorFrontend.hooks.addAction("frontend/element_ready/ha-one-page-nav.default", function ($scope){
1750elementorFrontend.elementsHandler.addHandler(initOnePageNav, {
1751$element: $scope
1752});
1753});
1754elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-slider.default", function ($scope){
1755elementorFrontend.elementsHandler.addHandler(SliderBase, {
1756$element: $scope,
1757selectors: {
1758container: ".ha-slider-widget-wrapper"
1759}});
1760});
1761elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-grid.classic", initProductQuickView);
1762elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-grid.hover", initProductQuickView);
1763elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-grid-new.default", initProductQuickView);
1764elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product.classic", initProductQuickView);
1765elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product.standard", initProductQuickView);
1766elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product.landscape", initProductQuickView);
1767elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product-new.default", initProductQuickView);
1768elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-single-product.default", initProductQuickView);
1769elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-product-grid.default", initProductQuickView);
1770$(document.body).on("added_to_cart", function (event, fragment, hash, $addToCart){
1771if($addToCart!=undefined&&$addToCart.length > 0){
1772$addToCart.parent(".ha-product-grid__btns").removeClass("ha-is--adding").addClass("ha-is--added");
1773}});
1774elementorFrontend.hooks.addAction("frontend/element_ready/ha-mini-cart.default", miniCart);
1775elementorFrontend.hooks.addAction("frontend/element_ready/ha-image-scroller.default", function ($scope){
1776elementorFrontend.elementsHandler.addHandler(ImageScroller, {
1777$element: $scope
1778});
1779});
1780elementorFrontend.hooks.addAction("frontend/element_ready/ha-nav-menu.default", NavMenu);
1781var $trigger;
1782var OffCanvas=function OffCanvas($scope){
1783this.node=$scope;
1784this.wrap=$scope.find(".ha-offcanvas-content-wrap");
1785this.cart_wrap=$scope.find(".ha-offcanvas-cart-container");
1786this.content=$scope.find(".ha-offcanvas-content");
1787this.button=$scope.find(".ha-offcanvas-toggle");
1788this.settings=this.wrap.data("settings");
1789this.toggle_source=this.settings.toggle_source;
1790this.id=this.settings.content_id;
1791this.toggle_id=this.settings.toggle_id;
1792this.toggle_class=this.settings.toggle_class;
1793this.transition=this.settings.transition;
1794this.esc_close=this.settings.esc_close;
1795this.body_click_close=this.settings.body_click_close;
1796this.links_click_close=this.settings.links_click_close;
1797this.direction=this.settings.direction;
1798this.buttons_position=this.settings.buttons_position;
1799this.duration=500;
1800this.destroy();
1801this.init();
1802};
1803OffCanvas.prototype={
1804id: "",
1805node: "",
1806wrap: "",
1807content: "",
1808button: "",
1809settings: {},
1810transition: "",
1811duration: 400,
1812initialized: false,
1813animations: ["slide", "slide-along", "reveal", "push"],
1814init: function init(){
1815if(!this.wrap.length){
1816return;
1817}
1818$("html").addClass("ha-offcanvas-content-widget");
1819if($(".ha-offcanvas-container").length===0){
1820var faProJs=$("#font-awesome-pro-js").length > 0 ? $("#font-awesome-pro-js").attr("src"):false;
1821if(faProJs){
1822$("#font-awesome-pro-js").remove();
1823}
1824$("body").wrapInner('<div class="ha-offcanvas-container" />');
1825this.content.insertBefore(".ha-offcanvas-container");
1826if(faProJs){
1827$("body").append('<script type="text/javascript" id="font-awesome-pro-js" src="' + faProJs + '"></script>');
1828}}
1829if(this.wrap.find(".ha-offcanvas-content").length > 0){
1830if($(".ha-offcanvas-container > .ha-offcanvas-content-" + this.id).length > 0){
1831$(".ha-offcanvas-container > .ha-offcanvas-content-" + this.id).remove();
1832}
1833if($("body > .ha-offcanvas-content-" + this.id).length > 0){
1834$("body > .ha-offcanvas-content-" + this.id).remove();
1835}
1836$("body").prepend(this.wrap.find(".ha-offcanvas-content"));
1837}
1838this.bindEvents();
1839},
1840destroy: function destroy(){
1841this.close();
1842this.animations.forEach(function (animation){
1843if($("html").hasClass("ha-offcanvas-content-" + animation)){
1844$("html").removeClass("ha-offcanvas-content-" + animation);
1845}});
1846if($("body > .ha-offcanvas-content-" + this.id).length > 0){
1847}},
1848setTrigger: function setTrigger(){
1849var $trigger=false;
1850if(this.toggle_source=="element-id"&&this.toggle_id!=""){
1851$trigger=$("#" + this.toggle_id);
1852}else if(this.toggle_source=="element-class"&&this.toggle_class!=""){
1853$trigger=$("." + this.toggle_class);
1854}else{
1855$trigger=this.node.find(".ha-offcanvas-toggle");
1856}
1857return $trigger;
1858},
1859bindEvents: function bindEvents(){
1860$trigger=this.setTrigger();
1861if($trigger){
1862$trigger.on("click", $.proxy(this.toggleContent, this));
1863}
1864$("body").delegate(".ha-offcanvas-content .ha-offcanvas-close", "click", $.proxy(this.close, this));
1865if(this.links_click_close==="yes"){
1866$("body").delegate(".ha-offcanvas-content .ha-offcanvas-body a", "click", $.proxy(this.close, this));
1867}
1868if(this.esc_close==="yes"){
1869this.closeESC();
1870}
1871if(this.body_click_close==="yes"){
1872this.closeClick();
1873}
1874$(window).resize($.proxy(this._resize, this));
1875},
1876toggleContent: function toggleContent(e){
1877e.preventDefault();
1878if(!$("html").hasClass("ha-offcanvas-content-open")){
1879this.show();
1880}else{
1881this.close();
1882}
1883this._resize();
1884},
1885show: function show(){
1886$(".ha-offcanvas-content-" + this.id).addClass("ha-offcanvas-content-visible");
1887$("html").addClass("ha-offcanvas-content-" + this.transition);
1888$("html").addClass("ha-offcanvas-content-" + this.direction);
1889$("html").addClass("ha-offcanvas-content-open");
1890$("html").addClass("ha-offcanvas-content-" + this.id + "-open");
1891$("html").addClass("ha-offcanvas-content-reset");
1892this.button.addClass("ha-is-active");
1893this._resize();
1894},
1895close: function close(){
1896$("html").removeClass("ha-offcanvas-content-open");
1897$("html").removeClass("ha-offcanvas-content-" + this.id + "-open");
1898setTimeout($.proxy(function (){
1899$("html").removeClass("ha-offcanvas-content-reset");
1900$("html").removeClass("ha-offcanvas-content-" + this.transition);
1901$("html").removeClass("ha-offcanvas-content-" + this.direction);
1902$(".ha-offcanvas-content-" + this.id).removeClass("ha-offcanvas-content-visible");
1903}, this), 500);
1904this.button.removeClass("ha-is-active");
1905},
1906closeESC: function closeESC(){
1907var self=this;
1908if(""===self.settings.esc_close){
1909return;
1910}
1911$(document).on("keydown", function (e){
1912if(e.keyCode===27){
1913self.close();
1914}});
1915},
1916closeClick: function closeClick(){
1917var self=this;
1918if(this.toggle_source=="element-id"&&this.toggle_id!=""){
1919$trigger="#" + this.toggle_id;
1920}else if(this.toggle_source=="element-class"&&this.toggle_class!=""){
1921$trigger="." + this.toggle_class;
1922}else{
1923$trigger=".ha-offcanvas-toggle";
1924}
1925$(document).on("click", function (e){
1926if($(e.target).is(".ha-offcanvas-content")||$(e.target).parents(".ha-offcanvas-content").length > 0||$(e.target).is(".ha-offcanvas-toggle")||$(e.target).parents(".ha-offcanvas-toggle").length > 0||$(e.target).is($trigger)||$(e.target).parents($trigger).length > 0||!$(e.target).is(".ha-offcanvas-container")){
1927return;
1928}else{
1929self.close();
1930}});
1931},
1932_resize: function _resize(){
1933if(!this.cart_wrap.length){
1934return;
1935}
1936var off_canvas=$(".ha-offcanvas-content-" + this.id);
1937if(off_canvas&&off_canvas.length > 0){
1938if(this.buttons_position==="bottom"){
1939var winHeight=window.innerHeight;
1940var offset=0;
1941if($("body").hasClass("admin-bar")){
1942offset=32;
1943}
1944winHeight=winHeight - offset;
1945off_canvas.find(".ha-offcanvas-inner").css({
1946height: winHeight + "px",
1947top: offset
1948});
1949headerHeight=off_canvas.find(".ha-offcanvas-cart-header").outerHeight(true);
1950wrapHeight=off_canvas.find(".ha-offcanvas-wrap").outerHeight();
1951cartTotalHeight=off_canvas.find(".woocommerce-mini-cart__total").outerHeight();
1952cartButtonsHeight=off_canvas.find(".woocommerce-mini-cart__buttons").outerHeight();
1953cartMessageHeight=off_canvas.find(".ha-woo-menu-cart-message").outerHeight();
1954itemsHeight=winHeight - (headerHeight + cartTotalHeight + cartButtonsHeight + cartMessageHeight);
1955finalItemsHeight=itemsHeight - (winHeight - wrapHeight);
1956finalItemsHeight +="px";
1957}else{
1958finalItemsHeight="auto";
1959}
1960var style='<style id="ha-woo-style-' + this.id + '">';
1961style +="#" + off_canvas.attr("id") + " .woocommerce-mini-cart.cart_list {";
1962style +="height: " + finalItemsHeight;
1963style +="}";
1964style +="</style>";
1965if($("#ha-woopack-style-" + this.id).length > 0){
1966$("#ha-woopack-style-" + this.id).remove();
1967}
1968$("head").append(style);
1969}}
1970};
1971var initOffCanvas=function initOffCanvas($scope, $){
1972var content_wrap=$scope.find(".ha-offcanvas-content-wrap");
1973if($(content_wrap).length > 0){
1974new OffCanvas($scope);
1975}};
1976elementorFrontend.hooks.addAction("frontend/element_ready/ha-off-canvas.default", initOffCanvas);
1977var Unfold=elementorModules.frontend.handlers.Base.extend({
1978onInit: function onInit(){
1979elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
1980this.run();
1981},
1982onElementChange: function onElementChange(e){
1983if(e=="unfold_text"||e=="unfold_icon"||e=="fold_text"||e=="fold_icon"||e=="fold_height"||e=="transition_duration"||e=="trigger"){
1984this.run();
1985if(e=="fold_height"){
1986this.$element.find(".ha-unfold-data").css("height", this.getCollapseHeight() + "px");
1987}}
1988},
1989getReadySettings: function getReadySettings(){
1990var settings={
1991collapse_height: this.getElementSettings("fold_height")||50,
1992collapse_height_tablet: this.getElementSettings("fold_height_tablet")||this.getElementSettings("fold_height")||50,
1993collapse_height_mobile: this.getElementSettings("fold_height_mobile")||this.getElementSettings("fold_height_tablet")||this.getElementSettings("fold_height")||50,
1994trigger: this.getElementSettings("trigger"),
1995transition_duration: this.getElementSettings("transition_duration")||500,
1996collapse_text: this.getElementSettings("unfold_text"),
1997collapse_icon: this.getElementSettings("unfold_icon"),
1998expand_text: this.getElementSettings("fold_text"),
1999expand_icon: this.getElementSettings("fold_icon")
2000};
2001return $.extend({}, settings);
2002},
2003getCollapseHeight: function getCollapseHeight(){
2004var body=this.$element.parents("body");
2005var unfoldSettings=this.getReadySettings();
2006var collapse_height=50;
2007if(body.attr("data-elementor-device-mode")=="desktop"){
2008collapse_height=unfoldSettings.collapse_height;
2009}
2010if(body.attr("data-elementor-device-mode")=="tablet"){
2011collapse_height=unfoldSettings.collapse_height_tablet;
2012}
2013if(body.attr("data-elementor-device-mode")=="mobile"){
2014collapse_height=unfoldSettings.collapse_height_mobile;
2015}
2016return collapse_height;
2017},
2018fold: function fold(unfoldData, button, collapse_height, unfoldRender){
2019var unfoldSettings=this.getReadySettings();
2020var html=unfoldSettings.collapse_icon ? unfoldSettings.collapse_icon.value ? '<i aria-hidden="true" class="' + unfoldSettings.collapse_icon.value + '"></i>':"":"";
2021html +=unfoldSettings.collapse_text ? "<span>" + unfoldSettings.collapse_text + "</span>":"";
2022unfoldData.css({
2023"transition-duration": unfoldSettings.transition_duration + "ms",
2024"height": unfoldRender.outerHeight(true) + 'px'
2025});
2026unfoldData.animate({
2027height: collapse_height
2028}, 0);
2029var timeOut=setTimeout(function (){
2030button.html(html);
2031clearTimeout(timeOut);
2032}, unfoldSettings.transition_duration);
2033unfoldData.removeClass("folded");
2034},
2035unfold: function unfold(unfoldData, unfoldRender, button){
2036var unfoldSettings=this.getReadySettings();
2037var html=unfoldSettings.expand_icon ? unfoldSettings.expand_icon.value ? '<i aria-hidden="true" class="' + unfoldSettings.expand_icon.value + '"></i>':"":"";
2038html +=unfoldSettings.expand_text ? "<span>" + unfoldSettings.expand_text + "</span>":"";
2039unfoldData.css("transition-duration", unfoldSettings.transition_duration + "ms");
2040unfoldData.animate({
2041height: unfoldRender.outerHeight(true)
2042}, 0);
2043var timeOut=setTimeout(function (){
2044unfoldData.css("height", 'auto');
2045button.html(html);
2046clearTimeout(timeOut);
2047}, unfoldSettings.transition_duration);
2048unfoldData.addClass("folded");
2049},
2050run: function run(){
2051var $this=this;
2052var button=this.$element.find(".ha-unfold-btn"),
2053unfoldData=this.$element.find(".ha-unfold-data"),
2054unfoldRender=this.$element.find(".ha-unfold-data-render");
2055var unfoldSettings=this.getReadySettings();
2056var collapse_height=$this.getCollapseHeight();
2057unfoldData.css("height", collapse_height + "px");
2058if(unfoldSettings.trigger=="click"){
2059button.on("click", function (){
2060collapse_height=$this.getCollapseHeight();
2061if(unfoldData.hasClass("folded")){
2062$this.fold(unfoldData, button, collapse_height, unfoldRender);
2063}else{
2064$this.unfold(unfoldData, unfoldRender, button);
2065}});
2066}else if(unfoldSettings.trigger=="hover"){
2067unfoldData.on("mouseenter", function (){
2068$this.unfold(unfoldData, unfoldRender, button);
2069});
2070unfoldData.on("mouseleave", function (){
2071collapse_height=$this.getCollapseHeight();
2072$this.fold(unfoldData, button, collapse_height, unfoldRender);
2073});
2074}}
2075});
2076var Maps=elementorModules.frontend.handlers.Base.extend({
2077onInit: function onInit(){
2078elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
2079this.runMap();
2080},
2081defaultStyle: function defaultStyle(){
2082var defaultStyles={
2083standard: "",
2084silver: [{
2085elementType: "geometry",
2086stylers: [{
2087color: "#f5f5f5"
2088}]
2089}, {
2090elementType: "labels.icon",
2091stylers: [{
2092visibility: "off"
2093}]
2094}, {
2095elementType: "labels.text.fill",
2096stylers: [{
2097color: "#616161"
2098}]
2099}, {
2100elementType: "labels.text.stroke",
2101stylers: [{
2102color: "#f5f5f5"
2103}]
2104}, {
2105featureType: "administrative.land_parcel",
2106elementType: "labels.text.fill",
2107stylers: [{
2108color: "#bdbdbd"
2109}]
2110}, {
2111featureType: "poi",
2112elementType: "geometry",
2113stylers: [{
2114color: "#eeeeee"
2115}]
2116}, {
2117featureType: "poi",
2118elementType: "labels.text.fill",
2119stylers: [{
2120color: "#757575"
2121}]
2122}, {
2123featureType: "poi.park",
2124elementType: "geometry",
2125stylers: [{
2126color: "#e5e5e5"
2127}]
2128}, {
2129featureType: "poi.park",
2130elementType: "labels.text.fill",
2131stylers: [{
2132color: "#9e9e9e"
2133}]
2134}, {
2135featureType: "road",
2136elementType: "geometry",
2137stylers: [{
2138color: "#ffffff"
2139}]
2140}, {
2141featureType: "road.arterial",
2142elementType: "labels.text.fill",
2143stylers: [{
2144color: "#757575"
2145}]
2146}, {
2147featureType: "road.highway",
2148elementType: "geometry",
2149stylers: [{
2150color: "#dadada"
2151}]
2152}, {
2153featureType: "road.highway",
2154elementType: "labels.text.fill",
2155stylers: [{
2156color: "#616161"
2157}]
2158}, {
2159featureType: "road.local",
2160elementType: "labels.text.fill",
2161stylers: [{
2162color: "#9e9e9e"
2163}]
2164}, {
2165featureType: "transit.line",
2166elementType: "geometry",
2167stylers: [{
2168color: "#e5e5e5"
2169}]
2170}, {
2171featureType: "transit.station",
2172elementType: "geometry",
2173stylers: [{
2174color: "#eeeeee"
2175}]
2176}, {
2177featureType: "water",
2178elementType: "geometry",
2179stylers: [{
2180color: "#c9c9c9"
2181}]
2182}, {
2183featureType: "water",
2184elementType: "labels.text.fill",
2185stylers: [{
2186color: "#9e9e9e"
2187}]
2188}],
2189retro: [{
2190elementType: "geometry",
2191stylers: [{
2192color: "#ebe3cd"
2193}]
2194}, {
2195elementType: "labels.text.fill",
2196stylers: [{
2197color: "#523735"
2198}]
2199}, {
2200elementType: "labels.text.stroke",
2201stylers: [{
2202color: "#f5f1e6"
2203}]
2204}, {
2205featureType: "administrative",
2206elementType: "geometry.stroke",
2207stylers: [{
2208color: "#c9b2a6"
2209}]
2210}, {
2211featureType: "administrative.land_parcel",
2212elementType: "geometry.stroke",
2213stylers: [{
2214color: "#dcd2be"
2215}]
2216}, {
2217featureType: "administrative.land_parcel",
2218elementType: "labels.text.fill",
2219stylers: [{
2220color: "#ae9e90"
2221}]
2222}, {
2223featureType: "landscape.natural",
2224elementType: "geometry",
2225stylers: [{
2226color: "#dfd2ae"
2227}]
2228}, {
2229featureType: "poi",
2230elementType: "geometry",
2231stylers: [{
2232color: "#dfd2ae"
2233}]
2234}, {
2235featureType: "poi",
2236elementType: "labels.text.fill",
2237stylers: [{
2238color: "#93817c"
2239}]
2240}, {
2241featureType: "poi.park",
2242elementType: "geometry.fill",
2243stylers: [{
2244color: "#a5b076"
2245}]
2246}, {
2247featureType: "poi.park",
2248elementType: "labels.text.fill",
2249stylers: [{
2250color: "#447530"
2251}]
2252}, {
2253featureType: "road",
2254elementType: "geometry",
2255stylers: [{
2256color: "#f5f1e6"
2257}]
2258}, {
2259featureType: "road.arterial",
2260elementType: "geometry",
2261stylers: [{
2262color: "#fdfcf8"
2263}]
2264}, {
2265featureType: "road.highway",
2266elementType: "geometry",
2267stylers: [{
2268color: "#f8c967"
2269}]
2270}, {
2271featureType: "road.highway",
2272elementType: "geometry.stroke",
2273stylers: [{
2274color: "#e9bc62"
2275}]
2276}, {
2277featureType: "road.highway.controlled_access",
2278elementType: "geometry",
2279stylers: [{
2280color: "#e98d58"
2281}]
2282}, {
2283featureType: "road.highway.controlled_access",
2284elementType: "geometry.stroke",
2285stylers: [{
2286color: "#db8555"
2287}]
2288}, {
2289featureType: "road.local",
2290elementType: "labels.text.fill",
2291stylers: [{
2292color: "#806b63"
2293}]
2294}, {
2295featureType: "transit.line",
2296elementType: "geometry",
2297stylers: [{
2298color: "#dfd2ae"
2299}]
2300}, {
2301featureType: "transit.line",
2302elementType: "labels.text.fill",
2303stylers: [{
2304color: "#8f7d77"
2305}]
2306}, {
2307featureType: "transit.line",
2308elementType: "labels.text.stroke",
2309stylers: [{
2310color: "#ebe3cd"
2311}]
2312}, {
2313featureType: "transit.station",
2314elementType: "geometry",
2315stylers: [{
2316color: "#dfd2ae"
2317}]
2318}, {
2319featureType: "water",
2320elementType: "geometry.fill",
2321stylers: [{
2322color: "#b9d3c2"
2323}]
2324}, {
2325featureType: "water",
2326elementType: "labels.text.fill",
2327stylers: [{
2328color: "#92998d"
2329}]
2330}],
2331dark: [{
2332elementType: "geometry",
2333stylers: [{
2334color: "#212121"
2335}]
2336}, {
2337elementType: "labels.icon",
2338stylers: [{
2339visibility: "off"
2340}]
2341}, {
2342elementType: "labels.text.fill",
2343stylers: [{
2344color: "#757575"
2345}]
2346}, {
2347elementType: "labels.text.stroke",
2348stylers: [{
2349color: "#212121"
2350}]
2351}, {
2352featureType: "administrative",
2353elementType: "geometry",
2354stylers: [{
2355color: "#757575"
2356}]
2357}, {
2358featureType: "administrative.country",
2359elementType: "labels.text.fill",
2360stylers: [{
2361color: "#9e9e9e"
2362}]
2363}, {
2364featureType: "administrative.land_parcel",
2365stylers: [{
2366visibility: "off"
2367}]
2368}, {
2369featureType: "administrative.locality",
2370elementType: "labels.text.fill",
2371stylers: [{
2372color: "#bdbdbd"
2373}]
2374}, {
2375featureType: "poi",
2376elementType: "labels.text.fill",
2377stylers: [{
2378color: "#757575"
2379}]
2380}, {
2381featureType: "poi.park",
2382elementType: "geometry",
2383stylers: [{
2384color: "#181818"
2385}]
2386}, {
2387featureType: "poi.park",
2388elementType: "labels.text.fill",
2389stylers: [{
2390color: "#616161"
2391}]
2392}, {
2393featureType: "poi.park",
2394elementType: "labels.text.stroke",
2395stylers: [{
2396color: "#1b1b1b"
2397}]
2398}, {
2399featureType: "road",
2400elementType: "geometry.fill",
2401stylers: [{
2402color: "#2c2c2c"
2403}]
2404}, {
2405featureType: "road",
2406elementType: "labels.text.fill",
2407stylers: [{
2408color: "#8a8a8a"
2409}]
2410}, {
2411featureType: "road.arterial",
2412elementType: "geometry",
2413stylers: [{
2414color: "#373737"
2415}]
2416}, {
2417featureType: "road.highway",
2418elementType: "geometry",
2419stylers: [{
2420color: "#3c3c3c"
2421}]
2422}, {
2423featureType: "road.highway.controlled_access",
2424elementType: "geometry",
2425stylers: [{
2426color: "#4e4e4e"
2427}]
2428}, {
2429featureType: "road.local",
2430elementType: "labels.text.fill",
2431stylers: [{
2432color: "#616161"
2433}]
2434}, {
2435featureType: "transit",
2436elementType: "labels.text.fill",
2437stylers: [{
2438color: "#757575"
2439}]
2440}, {
2441featureType: "water",
2442elementType: "geometry",
2443stylers: [{
2444color: "#000000"
2445}]
2446}, {
2447featureType: "water",
2448elementType: "labels.text.fill",
2449stylers: [{
2450color: "#3d3d3d"
2451}]
2452}],
2453night: [{
2454elementType: "geometry",
2455stylers: [{
2456color: "#242f3e"
2457}]
2458}, {
2459elementType: "labels.text.fill",
2460stylers: [{
2461color: "#746855"
2462}]
2463}, {
2464elementType: "labels.text.stroke",
2465stylers: [{
2466color: "#242f3e"
2467}]
2468}, {
2469featureType: "administrative.locality",
2470elementType: "labels.text.fill",
2471stylers: [{
2472color: "#d59563"
2473}]
2474}, {
2475featureType: "poi",
2476elementType: "labels.text.fill",
2477stylers: [{
2478color: "#d59563"
2479}]
2480}, {
2481featureType: "poi.park",
2482elementType: "geometry",
2483stylers: [{
2484color: "#263c3f"
2485}]
2486}, {
2487featureType: "poi.park",
2488elementType: "labels.text.fill",
2489stylers: [{
2490color: "#6b9a76"
2491}]
2492}, {
2493featureType: "road",
2494elementType: "geometry",
2495stylers: [{
2496color: "#38414e"
2497}]
2498}, {
2499featureType: "road",
2500elementType: "geometry.stroke",
2501stylers: [{
2502color: "#212a37"
2503}]
2504}, {
2505featureType: "road",
2506elementType: "labels.text.fill",
2507stylers: [{
2508color: "#9ca5b3"
2509}]
2510}, {
2511featureType: "road.highway",
2512elementType: "geometry",
2513stylers: [{
2514color: "#746855"
2515}]
2516}, {
2517featureType: "road.highway",
2518elementType: "geometry.stroke",
2519stylers: [{
2520color: "#1f2835"
2521}]
2522}, {
2523featureType: "road.highway",
2524elementType: "labels.text.fill",
2525stylers: [{
2526color: "#f3d19c"
2527}]
2528}, {
2529featureType: "transit",
2530elementType: "geometry",
2531stylers: [{
2532color: "#2f3948"
2533}]
2534}, {
2535featureType: "transit.station",
2536elementType: "labels.text.fill",
2537stylers: [{
2538color: "#d59563"
2539}]
2540}, {
2541featureType: "water",
2542elementType: "geometry",
2543stylers: [{
2544color: "#17263c"
2545}]
2546}, {
2547featureType: "water",
2548elementType: "labels.text.fill",
2549stylers: [{
2550color: "#515c6d"
2551}]
2552}, {
2553featureType: "water",
2554elementType: "labels.text.stroke",
2555stylers: [{
2556color: "#17263c"
2557}]
2558}],
2559aubergine: [{
2560elementType: "geometry",
2561stylers: [{
2562color: "#1d2c4d"
2563}]
2564}, {
2565elementType: "labels.text.fill",
2566stylers: [{
2567color: "#8ec3b9"
2568}]
2569}, {
2570elementType: "labels.text.stroke",
2571stylers: [{
2572color: "#1a3646"
2573}]
2574}, {
2575featureType: "administrative.country",
2576elementType: "geometry.stroke",
2577stylers: [{
2578color: "#4b6878"
2579}]
2580}, {
2581featureType: "administrative.land_parcel",
2582elementType: "labels.text.fill",
2583stylers: [{
2584color: "#64779e"
2585}]
2586}, {
2587featureType: "administrative.province",
2588elementType: "geometry.stroke",
2589stylers: [{
2590color: "#4b6878"
2591}]
2592}, {
2593featureType: "landscape.man_made",
2594elementType: "geometry.stroke",
2595stylers: [{
2596color: "#334e87"
2597}]
2598}, {
2599featureType: "landscape.natural",
2600elementType: "geometry",
2601stylers: [{
2602color: "#023e58"
2603}]
2604}, {
2605featureType: "poi",
2606elementType: "geometry",
2607stylers: [{
2608color: "#283d6a"
2609}]
2610}, {
2611featureType: "poi",
2612elementType: "labels.text.fill",
2613stylers: [{
2614color: "#6f9ba5"
2615}]
2616}, {
2617featureType: "poi",
2618elementType: "labels.text.stroke",
2619stylers: [{
2620color: "#1d2c4d"
2621}]
2622}, {
2623featureType: "poi.park",
2624elementType: "geometry.fill",
2625stylers: [{
2626color: "#023e58"
2627}]
2628}, {
2629featureType: "poi.park",
2630elementType: "labels.text.fill",
2631stylers: [{
2632color: "#3C7680"
2633}]
2634}, {
2635featureType: "road",
2636elementType: "geometry",
2637stylers: [{
2638color: "#304a7d"
2639}]
2640}, {
2641featureType: "road",
2642elementType: "labels.text.fill",
2643stylers: [{
2644color: "#98a5be"
2645}]
2646}, {
2647featureType: "road",
2648elementType: "labels.text.stroke",
2649stylers: [{
2650color: "#1d2c4d"
2651}]
2652}, {
2653featureType: "road.highway",
2654elementType: "geometry",
2655stylers: [{
2656color: "#2c6675"
2657}]
2658}, {
2659featureType: "road.highway",
2660elementType: "geometry.stroke",
2661stylers: [{
2662color: "#255763"
2663}]
2664}, {
2665featureType: "road.highway",
2666elementType: "labels.text.fill",
2667stylers: [{
2668color: "#b0d5ce"
2669}]
2670}, {
2671featureType: "road.highway",
2672elementType: "labels.text.stroke",
2673stylers: [{
2674color: "#023e58"
2675}]
2676}, {
2677featureType: "transit",
2678elementType: "labels.text.fill",
2679stylers: [{
2680color: "#98a5be"
2681}]
2682}, {
2683featureType: "transit",
2684elementType: "labels.text.stroke",
2685stylers: [{
2686color: "#1d2c4d"
2687}]
2688}, {
2689featureType: "transit.line",
2690elementType: "geometry.fill",
2691stylers: [{
2692color: "#283d6a"
2693}]
2694}, {
2695featureType: "transit.station",
2696elementType: "geometry",
2697stylers: [{
2698color: "#3a4762"
2699}]
2700}, {
2701featureType: "water",
2702elementType: "geometry",
2703stylers: [{
2704color: "#0e1626"
2705}]
2706}, {
2707featureType: "water",
2708elementType: "labels.text.fill",
2709stylers: [{
2710color: "#4e6d70"
2711}]
2712}]
2713};
2714return defaultStyles;
2715},
2716settings: function settings(wrapper){
2717var item=document.querySelector(wrapper);
2718var settings={
2719latitude: parseFloat(item.dataset.latitude),
2720longitude: parseFloat(item.dataset.longitude),
2721mapType: item.dataset.mapType,
2722markers: item.dataset.markers,
2723polylines: item.dataset.polylines,
2724mapZoom: parseInt(item.dataset.mapZoom),
2725mapZoomMobile: parseInt(item.dataset.mapZoomMobile),
2726mapZoomTablet: parseInt(item.dataset.mapZoomTablet),
2727scrollWheelZoom: item.dataset.scrollWheelZoom,
2728zoomControl: item.dataset.zoomControl,
2729fullscreenControl: item.dataset.fullScreen,
2730mapDraggable: item.dataset.disableMapDrag,
2731showLegend: item.dataset.showLegend,
2732showRoute: item.dataset.showRoute,
2733googleMapType: item.dataset.googleMapType,
2734mapTypeControl: item.dataset.mapTypeControl,
2735streetViewControl: item.dataset.streetView,
2736infoOpen: item.dataset.infoOpen,
2737infoOpenHover: item.dataset.infoOpenHover,
2738mapStyle: item.dataset.mapStyle,
2739customMapStyles: item.dataset.customMapStyle,
2740defaultStyle: this.defaultStyle(),
2741strokeColor: item.dataset.strokeColor,
2742strokeOpacity: item.dataset.strokeOpacity,
2743strokeWeight: item.dataset.strokeWeight,
2744strokeFill: item.dataset.strokeFill,
2745strokeFillOpacity: item.dataset.strokeFillOpacity,
2746originLat: item.dataset.originLat,
2747originLng: item.dataset.originLng,
2748destLat: item.dataset.destLat,
2749destLng: item.dataset.destLng,
2750travelMode: item.dataset.travelMode
2751};
2752return settings;
2753},
2754isValidJsonString: function isValidJsonString(jsonString){
2755try {
2756JSON.parse(jsonString);
2757} catch (e){
2758return false;
2759}
2760return true;
2761},
2762mapInit: function mapInit(wrapper){
2763var settings=this.settings(wrapper);
2764var markersOptionsArray=JSON.parse(settings.markers);
2765var map;
2766var directionsService=new google.maps.DirectionsService();
2767var directionsRenderer=new google.maps.DirectionsRenderer();
2768var finalZoomLevel=settings.mapZoom;
2769window.addEventListener("resize", function (){
2770if(elementorFrontend.getCurrentDeviceMode()=="mobile"){
2771finalZoomLevel=settings.mapZoomMobile;
2772}else if(elementorFrontend.getCurrentDeviceMode()=="tablet"){
2773finalZoomLevel=settings.mapZoomTablet;
2774}else{
2775finalZoomLevel=settings.mapZoom;
2776}});
2777map=new google.maps.Map(document.querySelector(".ha-adv-google-map__wrapper" + wrapper), {
2778center: {
2779lat: settings.latitude==="" ? -34.391:settings.latitude,
2780lng: settings.longitude==="" ? 150.644:settings.longitude
2781},
2782zoom: finalZoomLevel,
2783mapTypeId: settings.mapType,
2784zoomControl: settings.zoomControl==="yes",
2785mapTypeControl: settings.mapTypeControl==="yes",
2786fullscreenControl: settings.fullscreenControl==="yes",
2787streetViewControl: settings.streetViewControl==="yes",
2788gestureHandling: settings.scrollWheelZoom==="yes" ? "greedy":"cooperative",
2789draggable: settings.mapDraggable!=="yes",
2790styles: settings.mapStyle!=="custom" ? settings.defaultStyle[settings.mapStyle]:!this.isValidJsonString(settings.customMapStyles) ? "":JSON.parse(settings.customMapStyles)
2791});
2792if(settings.mapDraggable==="yes"){
2793map.setOptions({
2794draggableCursor: "default"
2795});
2796}
2797markersOptionsArray.forEach(function (option){
2798var marker=new google.maps.Marker({
2799icon: option.pin_icon.url==="" ? "":{
2800url: option.pin_icon.url,
2801scaledSize: new google.maps.Size(option.rectangular_image==="yes" ? +option.rectangular_pin_size_width.size:+option.square_pin_size.size, option.rectangular_image==="yes" ? +option.rectangular_pin_size_height.size:+option.square_pin_size.size)
2802},
2803map: map,
2804position: {
2805lat: +option.pin_latitude,
2806lng: +option.pin_longitude
2807}});
2808var infoWindow=new google.maps.InfoWindow({
2809content: '<div class="ha-adv-google-map__marker-wrapper">' + '<div class="ha-adv-google-map__marker-title-wrapper">' + '<div class="ha-adv-google-map__marker-title" style="display: inline-block">' + option.pin_item_title + "</div>" + "</div>" + '<div class="ha-adv-google-map__marker-description-wrapper">' + '<div class="ha-adv-google-map__marker-description">' + option.pin_item_description + "</div>" + "</div>" + "</div>"
2810});
2811if(settings.infoOpen==="yes"){
2812infoWindow.open(map, marker);
2813}
2814if(settings.infoOpenHover==="yes"){
2815marker.addListener("mouseover", function (e){
2816infoWindow.open(map, marker);
2817});
2818marker.addListener("mouseout", function (e){
2819var timeOut=setTimeout(function (){
2820infoWindow.close();
2821clearTimeout(timeOut);
2822}, 1000);
2823});
2824}else{
2825marker.addListener("click", function (){
2826infoWindow.open(map, marker);
2827});
2828}});
2829if(settings.showLegend==="yes"){
2830var legend=document.querySelector(wrapper).nextElementSibling;
2831map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(legend);
2832}
2833if(settings.googleMapType=="polyline"){
2834var polylines_data=JSON.parse(settings.polylines);
2835var polylines_arr=[];
2836polylines_data.forEach(function (polyline){
2837polylines_arr.push({
2838lat: parseFloat(polyline.ha_gmap_polyline_lat),
2839lng: parseFloat(polyline.ha_gmap_polyline_lng)
2840});
2841});
2842var polyLinePath=JSON.parse(JSON.stringify(polylines_arr));
2843var polyPath=new google.maps.Polyline({
2844path: polyLinePath,
2845strokeColor: settings.strokeColor,
2846strokeOpacity: settings.strokeOpacity,
2847strokeWeight: settings.strokeWeight
2848});
2849polyPath.setMap(map);
2850}
2851if(settings.googleMapType=="polygon"){
2852var polylines_data=JSON.parse(settings.polylines);
2853var polylines_arr=[];
2854polylines_data.forEach(function (polyline){
2855polylines_arr.push({
2856lat: parseFloat(polyline.ha_gmap_polyline_lat),
2857lng: parseFloat(polyline.ha_gmap_polyline_lng)
2858});
2859});
2860var polyLinePath=JSON.parse(JSON.stringify(polylines_arr));
2861var polygon=new google.maps.Polygon({
2862path: polyLinePath,
2863strokeColor: settings.strokeColor,
2864strokeOpacity: settings.strokeOpacity,
2865strokeWeight: settings.strokeWeight,
2866fillColor: settings.strokeFill,
2867fillOpacity: settings.strokeFillOpacity
2868});
2869polygon.setMap(map);
2870}
2871if(settings.googleMapType=="routes"){
2872this.routeDraw(directionsService, directionsRenderer, settings);
2873directionsRenderer.setMap(map);
2874}
2875google.maps.event.addDomListener(window, "resize", function (){
2876var center=map.getCenter();
2877google.maps.event.trigger(map, "resize");
2878map.setCenter(center);
2879map.setZoom(finalZoomLevel);
2880});
2881},
2882routeDraw: function routeDraw(directionsService, directionsRenderer, settings){
2883var start=settings.originLat + "," + settings.originLng;
2884var end=settings.destLat + "," + settings.destLng;
2885directionsService.route({
2886origin: {
2887query: start
2888},
2889destination: {
2890query: end
2891},
2892travelMode: settings.travelMode.toUpperCase()
2893}, function (response, status){
2894if(status==="OK"){
2895directionsRenderer.setDirections(response);
2896}else{}});
2897},
2898runMap: function runMap(){
2899var gmaper=document.querySelectorAll(".ha-adv-google-map__wrapper");
2900for (var i=0; i < gmaper.length; i++){
2901gmaper[i].classList.add("ha-adv-google-map__wrapper--item" + i);
2902this.mapInit(".ha-adv-google-map__wrapper--item" + i);
2903}}
2904});
2905elementorFrontend.hooks.addAction("frontend/element_ready/ha-google-map.default", function ($scope){
2906elementorFrontend.elementsHandler.addHandler(Maps, {
2907$element: $scope,
2908selectors: {
2909container: ".ha-adv-google-map__wrapper"
2910}});
2911});
2912elementorFrontend.hooks.addAction("frontend/element_ready/ha-unfold.default", function ($scope){
2913elementorFrontend.elementsHandler.addHandler(Unfold, {
2914$element: $scope
2915});
2916});
2917var EddCart=function EddCart($scope){
2918var optionEL=$scope.find('.ha-edd-table-wrap');
2919var settings=optionEL.data('options');
2920var removeEl=$scope.find('.edd-remove-from-cart');
2921if(settings.cart_btn_type=='icon'){
2922removeEl.html("<i class=\"".concat(settings.icon.value, "\"></i>"));
2923}else{
2924removeEl.text(settings.btn_text);
2925}};
2926elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-cart.default', EddCart);
2927var EddCheckout=function EddCheckout($scope){
2928var optionEL=$scope.find('.ha-edd-table-wrap');
2929var settings=optionEL.data('options');
2930var removeEl=$scope.find('.edd_cart_remove_item_btn');
2931if(settings.cart_btn_type=='icon'){
2932removeEl.html("<i class=\"".concat(settings.icon.value, "\"></i>"));
2933}else{
2934removeEl.text(settings.btn_text);
2935}};
2936elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-checkout.default', EddCheckout);
2937var EddAjaxBtn=function EddAjaxBtn($scope){
2938var btn=$scope.find(".ha_edd_ajax_btn");
2939btn.on('click', function (event){
2940event.preventDefault();
2941var $self=$(this),
2942download_id=$self.data('download-id'),
2943nonce=$self.data('nonce');
2944$.ajax({
2945url: HappyProLocalize.ajax_url,
2946type: "POST",
2947data: {
2948action: "ha_edd_ajax_add_to_cart_link",
2949security: HappyProLocalize.nonce,
2950download_id: download_id
2951},
2952success: function success(response){
2953if(response.success==true){
2954$self.html("<i class=\"fas fa-cart-plus\"></i>");
2955}}
2956});
2957});
2958};
2959elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-product-grid.default', EddAjaxBtn);
2960elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-product-carou
2960sel.default', EddAjaxBtn);
2961elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-single-product.default', EddAjaxBtn);
2962var Image_Swap=function Image_Swap($scope){
2963var element=$scope.find('.ha-image-swap-wrapper');
2964var trigger_type=element.data('trigger');
2965var status;
2966if(trigger_type==='click'){
2967element.on('click', element, function (){
2968var self=$(this);
2969var click=self.attr('data-click');
2970if('inactive'==click){
2971status='active';
2972}else{
2973status='inactive';
2974}
2975self.attr('data-click', status);
2976var first_img=self.find('.img_swap_first');
2977var second_img=self.find('.img_swap_second');
2978});
2979}
2980var elm=$scope.find('.ha-image-swap-ctn');
2981var elm_img=$scope.find('.ha-image-swap-item');
2982var trigger=elm.data('trigger');
2983if(elm.length > 0){
2984$('.ha-image-swap-ctn').on('click', '.ha-image-swap-item', function (e){
2985var elem=$(this);
2986var parent=elem.parent('.ha-image-swap-insider');
2987var firstChild=parent.children('.ha-image-swap-item:first-of-type');
2988var secondChild=parent.children('.ha-image-swap-item:nth-of-type(2)');
2989if(!elem.is(':first-child')){
2990parent.addClass('changed');
2991setTimeout(function (){
2992firstChild.remove();
2993parent.append(firstChild);
2994parent.removeClass('changed');
2995}, 400);
2996}});
2997}};
2998var FlipBox=function FlipBox($scope){
2999var ha_flip_box_back=sessionStorage.getItem('haFlipBoxBack');
3000if(elementorFrontend.isEditMode()&&ha_flip_box_back&&'yes'==ha_flip_box_back){
3001$scope.find('.ha-flip-box-inner').addClass('flip-styling flip');
3002}
3003var element=$scope.find('.ha-flip-box-inner');
3004element.on('mouseenter mouseleave touchstart', function (e){
3005if(elementorFrontend.isEditMode()&&$(this).hasClass('flip-styling')){
3006return;
3007}
3008if(('mouseenter'==e.type||'touchstart'==e.type)&&!$(this).hasClass('flip')){
3009$(this).addClass('flip');
3010}else if(('mouseleave'==e.type||'touchstart'==e.type)&&$(this).hasClass('flip')){
3011$(this).removeClass('flip');
3012}else if('touchstart'==e.type&&$(this).hasClass('flip')){
3013$(this).removeClass('flip');
3014}});
3015};
3016elementorFrontend.hooks.addAction('frontend/element_ready/ha-image-swap.default', Image_Swap);
3017var FreeShippingBar=function FreeShippingBar($scope){
3018var $fsbContainer=$scope.find('.ha-fsb-container');
3019if($fsbContainer){
3020var $settings=$fsbContainer.data('fsb_settings');
3021if($settings!=undefined){
3022var $aimationSpeed=$settings.hasOwnProperty('ha_fsb_animation_speed') ? $settings.ha_fsb_animation_speed:15;
3023var $achivePercent=$settings.hasOwnProperty('achive_percent') ? $settings.achive_percent:0;
3024var $progressType=$settings.hasOwnProperty('progress_type') ? $settings.progress_type:'percent';
3025var $currencySymbol=$settings.hasOwnProperty('currencySymbol')&&$progressType=='percent' ? '%':$settings.currencySymbol;
3026var $cartTotal=$settings.hasOwnProperty('cart_total') ? $settings.cart_total:0;
3027var $totalPercent=parseFloat(Math.round($achivePercent)) >=100 ? 100:parseFloat(Math.round($achivePercent));
3028var $progressText=$progressType=='percent' ? $totalPercent:$cartTotal;
3029var $elem=$fsbContainer.find('.ha-fsb-size');
3030$elem.text($progressText + $currencySymbol);
3031var defaultWidth=$(window).width() <=768 ? 12:5;
3032$totalPercent > 0 ? $elem.css({
3033'width': $totalPercent + "%",
3034'transition': 'width ' + $aimationSpeed + 'ms ease-in-out'
3035}):$elem.css('width', +defaultWidth + "%");
3036}}
3037};
3038elementorFrontend.hooks.addAction('frontend/element_ready/ha-shipping-bar.default', FreeShippingBar);
3039$('.fsb-close-icon').on('click', function (){
3040document.cookie="ha_close_fsb=yes;path=/";
3041$('.ha-fsb-container').hide();
3042});
3043elementorFrontend.hooks.addAction('frontend/element_ready/ha-flip-box.default', FlipBox);
3044var HaRemoteCarousel=function HaRemoteCarousel($scope){
3045var $rcContainer=$scope.find('.ha-remote-carousel-container');
3046if($rcContainer){
3047var $rcBtn=$($rcContainer).find('.ha-custom-nav-remote-carousel');
3048if($rcBtn){
3049var $prevSliderIndex=0;
3050var $slides_to_show=0;
3051var $ha_show_thumbnail=$($rcBtn).parent().data('show_thumbnail');
3052var $ha_rc_unique_id=$($rcBtn).parent().data('ha_rc_id');
3053var $haRcSelector=$ha_rc_unique_id ? $('[data-ha_rcc_uid="' + $ha_rc_unique_id + '"]'):'';
3054if($ha_show_thumbnail&&$ha_show_thumbnail=='yes'){
3055$haRcSelector.on('init', function (event, slick, currentSlide){
3056var $dataSettingsSelector=$haRcSelector.parent().parent();
3057var $dataSettings=$dataSettingsSelector.data('settings');
3058$slides_to_show=typeof $dataSettings==="undefined" ? $slides_to_show:$dataSettings.slides_to_show;
3059$prevSliderIndex=(currentSlide ? currentSlide:0) - 1;
3060var $nextIndex=parseInt($slides_to_show) + parseInt($prevSliderIndex) + 1;
3061var $nextItem=$haRcSelector.find('[data-slick-index="' + $nextIndex + '"]');
3062var $nextImg=$nextItem.find('img').attr('src');
3063var $prevItem=$haRcSelector.find('[data-slick-index="' + $prevSliderIndex + '"]');
3064var $prevImg=$prevItem.find('img').attr('src');
3065var $nextBtn=$rcContainer.find('.ha-remote-carousel-btn-next');
3066var $prevBtn=$rcContainer.find('.ha-remote-carousel-btn-prev');
3067$nextBtn.css({
3068'background-image': 'url(' + $nextImg + ')',
3069'background-position': 'center'
3070});
3071$prevBtn.css({
3072'background-image': 'url(' + $prevImg + ')',
3073'background-position': 'center'
3074});
3075});
3076$haRcSelector.trigger('init');
3077$($rcBtn).on("click", function (e){
3078e.preventDefault();
3079$haRcSelector.on('afterChange', function (event, slick, currentSlideIndex){
3080var $dataSettingsSelector=$haRcSelector.parent().parent();
3081var $dataSettings=$dataSettingsSelector.data('settings');
3082var $slides_to_show=$dataSettings ? $dataSettings.slides_to_show:currentSlideIndex;
3083$prevSliderIndex=parseInt(currentSlideIndex - 1);
3084var $nextIndex=parseInt($slides_to_show) + parseInt($prevSliderIndex) + 1;
3085var $nextItem=$haRcSelector.find('[data-slick-index="' + $nextIndex + '"]');
3086var $nextImg=$nextItem.find('img').attr('src');
3087var $prevItem=$haRcSelector.find('[data-slick-index="' + $prevSliderIndex + '"]');
3088var $prevImg=$prevItem.find('img').attr('src');
3089var $nextBtn=$rcContainer.find('.ha-remote-carousel-btn-next');
3090var $prevBtn=$rcContainer.find('.ha-remote-carousel-btn-prev');
3091if($nextBtn){
3092$nextBtn.css({
3093'background-image': 'url(' + $nextImg + ')',
3094'background-position': 'center'
3095});
3096}
3097if($prevBtn){
3098$prevBtn.css({
3099'background-image': 'url(' + $prevImg + ')',
3100'background-position': 'center'
3101});
3102}});
3103if($(this).data("ha_rc_nav")=='ha_rc_next_btn'){
3104$haRcSelector.slick("slickNext");
3105}else if($(this).data("ha_rc_nav")=='ha_rc_prev_btn'){
3106$haRcSelector.slick("slickPrev");
3107}});
3108}else{
3109$($rcBtn).on("click", function (e){
3110e.preventDefault();
3111if($(this).data("ha_rc_nav")=='ha_rc_next_btn'){
3112$haRcSelector.slick("slickNext");
3113}else if($(this).data("ha_rc_nav")=='ha_rc_prev_btn'){
3114$haRcSelector.slick("slickPrev");
3115}});
3116}}
3117}};
3118elementorFrontend.hooks.addAction('frontend/element_ready/ha-remote-carousel.default', HaRemoteCarousel);
3119var HaTOC=elementorModules.frontend.handlers.Base.extend({
3120getDefaultSettings: function getDefaultSettings(){
3121var elementSettings=this.getElementSettings(),
3122listWrapperTag="numbers"===elementSettings.marker_view ? "ol":"ul";
3123return {
3124selectors: {
3125widgetContainer: ".ha-toc-wrapper",
3126container: '.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"])',
3127expandButton: ".ha-toc__header",
3128collapseButton: ".ha-toc__header",
3129body: ".ha-toc__body",
3130headerTitle: ".ha-toc__header-title",
3131scrollTop: ".ha-toc__scroll-to-top--container"
3132},
3133classes: {
3134anchor: "ha-toc-menu-anchor",
3135listWrapper: "ha-toc__list-wrapper",
3136listItem: "ha-toc__list-item",
3137listTextWrapper: "ha-toc__list-item-text-wrapper",
3138firstLevelListItem: "ha-toc__top-level",
3139listItemText: "ha-toc__list-item-text",
3140activeItem: "ha-toc-item-active",
3141headingAnchor: "ha-toc__heading-anchor",
3142collapsed: "ha-toc--collapsed"
3143},
3144listWrapperTag: listWrapperTag
3145};},
3146getDefaultElements: function getDefaultElements(){
3147var settings=this.getSettings(),
3148elementSettings=this.getElementSettings();
3149return {
3150$pageContainer: jQuery(elementSettings.container||settings.selectors.container),
3151$widgetContainer: this.$element.find(settings.selectors.widgetContainer),
3152$expandButton: this.$element.find(settings.selectors.expandButton),
3153$collapseButton: this.$element.find(settings.selectors.collapseButton),
3154$tocBody: this.$element.find(settings.selectors.body),
3155$listItems: this.$element.find("." + settings.classes.listItem),
3156$scrollTop: this.$element.find(settings.selectors.scrollTop)
3157};},
3158bindEvents: function bindEvents(){
3159var $self=this;
3160var elementSettings=this.getElementSettings();
3161if(elementSettings.minimize_box){
3162this.elements.$expandButton.on("click", function (){
3163if(!$($self.$element).hasClass($self.getSettings("classes.collapsed"))){
3164return $self.collapseBox();
3165}else{
3166return $self.expandBox();
3167}});
3168}
3169if(elementSettings.collapse_subitems){
3170this.elements.$listItems.hover(function (event){
3171return jQuery(event.target).slideToggle();
3172});
3173}
3174if(elementSettings.sticky_toc_toggle){
3175elementorFrontend.elements.$window.on("resize", this.handleStickyToc);
3176}
3177if(elementSettings.scroll_to_top_toggle){
3178this.elements.$scrollTop.on("click", function (){
3179$self.scrollToTop();
3180});
3181}},
3182getHeadings: function getHeadings(){
3183var elementSettings=this.getElementSettings(),
3184tags=elementSettings.headings_by_tags.join(","),
3185selectors=this.getSettings("selectors"),
3186excludedSelectors=elementSettings.exclude_headings_by_selector;
3187return this.elements.$pageContainer.find(tags).not(selectors.headerTitle).filter(function (index, heading){
3188return !jQuery(heading).closest(excludedSelectors).length;
3189});
3190},
3191addAnchorsBeforeHeadings: function addAnchorsBeforeHeadings(){
3192var $this=this;
3193var classes=this.getSettings("classes");
3194this.elements.$headings.before(function (index){
3195var anchorLink=$this.getHeadingAnchorLink(index, classes);
3196return '<span id="' + anchorLink + '" class="' + classes.anchor + ' "></span>';
3197});
3198},
3199activateItem: function activateItem($listItem){
3200var classes=this.getSettings("classes");
3201this.deactivateActiveItem($listItem);
3202$listItem.addClass(classes.activeItem);
3203this.$activeItem=$listItem;
3204if(!this.getElementSettings("sticky_toc_toggle")){
3205return;
3206}
3207if(!this.getElementSettings("collapse_subitems")){
3208return;
3209}
3210var $activeList=void 0;
3211if($listItem.hasClass(classes.firstLevelListItem)){
3212$activeList=$listItem.parent().next();
3213}else{
3214$activeList=$listItem.parents("." + classes.listWrapper).eq(-2);
3215}
3216if(!$activeList.length){
3217delete this.$activeList;
3218return;
3219}
3220this.$activeList=$activeList;
3221this.$activeList.stop().slideDown();
3222},
3223deactivateActiveItem: function deactivateActiveItem($activeToBe){
3224if(!this.$activeItem||this.$activeItem.is($activeToBe)){
3225return;
3226}
3227var _getSettings=this.getSettings(),
3228classes=_getSettings.classes;
3229this.$activeItem.removeClass(classes.activeItem);
3230if(this.$activeList&&(!$activeToBe||!this.$activeList[0].contains($activeToBe[0]))){
3231this.$activeList.slideUp();
3232}},
3233followAnchor: function followAnchor($element, index){
3234var $self=this;
3235var anchorSelector=$element[0].hash;
3236var $anchor=void 0;
3237try {
3238$anchor=jQuery(decodeURIComponent(anchorSelector));
3239} catch (e){
3240return;
3241}
3242if(0===index){
3243haObserveTarget($anchor[0], function (direction){
3244if($self.itemClicked){
3245return;
3246}
3247if("down"===direction){
3248$self.activateItem($element);
3249}else{
3250$self.deactivateActiveItem();
3251}});
3252}
3253haObserveTarget($anchor[0], function (direction){
3254if($self.itemClicked){
3255return;
3256}
3257if("down"===direction){
3258$self.activateItem($self.$listItemTexts.eq(index + 1));
3259}else{
3260$self.activateItem($element);
3261}});
3262},
3263followAnchors: function followAnchors(){
3264var $self=this;
3265this.$listItemTexts.each(function (index, element){
3266return $self.followAnchor(jQuery(element), index);
3267});
3268},
3269setOffset: function setOffset($listItem){
3270var $this=this;
3271var settings=this.getSettings();
3272var list=this.$element.find("." + settings.classes.listItem);
3273var offset=this.getCurrentDeviceSetting("scroll_offset");
3274list.each(function (){
3275$('a', this).on('click', function (e){
3276e.preventDefault();
3277var hash=this.hash;
3278$('html, body').animate({
3279scrollTop: $(hash).offset().top - parseInt(offset.size)
3280}, 800);
3281});
3282});
3283},
3284populateTOC: function populateTOC(){
3285var $self=this;
3286this.listItemPointer=0;
3287var elementSettings=this.getElementSettings();
3288if(elementSettings.custom_style=='yes'){
3289this.elements.$widgetContainer.html(this.createSideDot());
3290}else{
3291if(elementSettings.hierarchical_view){
3292this.createNestedList();
3293}else{
3294this.createFlatList();
3295}}
3296this.$listItemTexts=this.$element.find(".ha-toc__list-item-text");
3297this.$listItemTexts.on("click", this.onListItemClick.bind(this));
3298if(!elementorFrontend.isEditMode()){
3299this.followAnchors();
3300}
3301$(window).on('scroll', function (){
3302if("window_top"===elementSettings.scroll_to_top_option){
3303if($(window).scrollTop() > 0){
3304$self.elements.$scrollTop.show();
3305}else{
3306$self.elements.$scrollTop.hide();
3307}}else{
3308var $id=$self.getID().parents('.elementor-element');
3309if($id.offset().top >=$(window).scrollTop()){
3310$self.elements.$scrollTop.hide();
3311}else{
3312$self.elements.$scrollTop.show();
3313}}
3314});
3315},
3316createNestedList: function createNestedList(){
3317var $self=this;
3318this.headingsData.forEach(function (heading, index){
3319heading.level=0;
3320for (var i=index - 1; i >=0; i--){
3321var currentOrderedItem=$self.headingsData[i];
3322if(currentOrderedItem.tag <=heading.tag){
3323heading.level=currentOrderedItem.level;
3324if(currentOrderedItem.tag < heading.tag){
3325heading.level++;
3326}
3327break;
3328}}
3329});
3330this.elements.$tocBody.html(this.getNestedLevel(0));
3331},
3332createFlatList: function createFlatList(){
3333this.elements.$tocBody.html(this.getNestedLevel());
3334},
3335createSideDot: function createSideDot(level){
3336var settings=this.getSettings(),
3337elementSettings=this.getElementSettings(),
3338icon=this.getElementSettings("icon"),
3339htmlul='';
3340if(elementSettings.custom_style=='yes'){
3341htmlul +="<div class=\"".concat(elementSettings.custom_style_list, "\">\n                    <div class=\"hm-toc \">\n                    <ul class=\"hm-toc-items\" style=\"list-style: none;\">\n                        <li>");
3342if(elementSettings.custom_style_list=='hm-toc-slide-style'){
3343htmlul +="<".concat(elementSettings.html_tag, " class=\"hm-toc-title\"><span>").concat(elementSettings.widget_title, "<span></").concat(elementSettings.html_tag, ">");
3344}else{
3345htmlul +="<".concat(elementSettings.html_tag, " class=\"hm-toc-title\">").concat(elementSettings.widget_title, "</").concat(elementSettings.html_tag, ">");
3346}
3347htmlul +="<".concat(settings.listWrapperTag, " class=\"hm-toc-items-inner\">");
3348for (var i=0; i < this.headingsData.length; i++){
3349var list='';
3350var currentItemDot=this.headingsData[i];
3351if(level > currentItemDot.level){
3352break;
3353}
3354var listItemTextClasses=settings.classes.listItemText;
3355if(0===currentItemDot.level){
3356listItemTextClasses +=" " + settings.classes.firstLevelListItem;
3357}
3358if(level===currentItemDot.level){
3359list +="<li class=\"hm-toc-entry ".concat(settings.classes.listItem, "\">");
3360if('bullets'===elementSettings.marker_view&&icon&&elementSettings.custom_style_list=='hm-toc-slide-style'){
3361list +="<i class=\"".concat(icon.value, "\"></i>");
3362}
3363list +="<a href=\"#".concat(currentItemDot.anchorLink, "\" class=\"").concat(listItemTextClasses, "\"><span>").concat(currentItemDot.text, "</span></a>");
3364list +="</li>";
3365}
3366htmlul +=list;
3367}
3368htmlul +="</".concat(settings.listWrapperTag, ">");
3369htmlul +="</li>\n                    </ul>";
3370}
3371return htmlul;
3372},
3373getNestedLevel: function getNestedLevel(level){
3374var settings=this.getSettings(),
3375elementSettings=this.getElementSettings(),
3376icon=this.getElementSettings("icon");
3377var html='';
3378html +="<" + settings.listWrapperTag + ' class="' + settings.classes.listWrapper + '">';
3379while (this.listItemPointer < this.headingsData.length){
3380var currentItem=this.headingsData[this.listItemPointer];
3381var listItemTextClasses=settings.classes.listItemText;
3382if(0===currentItem.level){
3383listItemTextClasses +=" " + settings.classes.firstLevelListItem;
3384}
3385if(level > currentItem.level){
3386break;
3387}
3388if(level===currentItem.level){
3389html +='<li class="' + settings.classes.listItem + " " + "level-" + level + '">';
3390html +='<div class="' + settings.classes.listTextWrapper + '">';
3391var liContent='<a href="#' + currentItem.anchorLink + '" class="' + listItemTextClasses + '">' + currentItem.text + "</a>";
3392if("bullets"===elementSettings.marker_view&&icon){
3393liContent='<i class="' + icon.value + '"></i>' + liContent;
3394}
3395html +=liContent;
3396html +="</div>";
3397this.listItemPointer++;
3398var nextItem=this.headingsData[this.listItemPointer];
3399if(nextItem&&level < nextItem.level){
3400html +=this.getNestedLevel(nextItem.level);
3401}
3402html +="</li>";
3403}}
3404html +="</" + settings.listWrapperTag + ">";
3405return html;
3406},
3407handleNoHeadingsFound: function handleNoHeadingsFound(){
3408var _messages='No headings were found on this page.';
3409if(elementorFrontend.isEditMode()){
3410return this.elements.$tocBody.html(_messages);
3411}},
3412collapseOnInit: function collapseOnInit(){
3413var $self=this;
3414var minimizedOn=this.getElementSettings("minimized_on"),
3415currentDeviceMode=elementorFrontend.getCurrentDeviceMode();
3416if(""!==minimizedOn&&"array"!==typeof minimizedOn){
3417minimizedOn=[minimizedOn];
3418}
3419if(0!==minimizedOn.length&&"object"===_typeof(minimizedOn)){
3420minimizedOn.forEach(function (value){
3421if("desktop"===value[0]&&"desktop"==currentDeviceMode&&$(window).width() < elementorFrontend.config.breakpoints.xxl||"tablet"===value[0]&&"tablet"===currentDeviceMode&&$(window).width() < elementorFrontend.config.breakpoints.lg||"mobile"===value[0]&&"mobile"===currentDeviceMode&&$(window).width() < elementorFrontend.config.breakpoints.md){
3422$self.collapseBox();
3423}});
3424}},
3425getHeadingAnchorLink: function getHeadingAnchorLink(index, classes){
3426var headingID=this.elements.$headings[index].id,
3427wrapperID=this.elements.$headings[index].closest('.elementor-widget').id;
3428var anchorLink='';
3429if(headingID){
3430anchorLink=headingID;
3431}else if(wrapperID){
3432anchorLink=wrapperID;
3433}
3434if(headingID||wrapperID){
3435jQuery(this.elements.$headings[index]).data('hasOwnID', true);
3436}else{
3437anchorLink="".concat(classes.headingAnchor, "-").concat(index);
3438}
3439return anchorLink;
3440},
3441setHeadingsData: function setHeadingsData(){
3442var $this=this;
3443this.headingsData=[];
3444var classes=this.getSettings("classes");
3445this.elements.$headings.each(function (index, element){
3446var anchorLink=$this.getHeadingAnchorLink(index, classes);
3447$this.headingsData.push({
3448tag: +element.nodeName.slice(1),
3449text: element.textContent,
3450anchorLink: anchorLink
3451});
3452});
3453},
3454run: function run(){
3455var elementSettings=this.getElementSettings();
3456this.elements.$headings=this.getHeadings();
3457if(!this.elements.$headings.length){
3458return this.handleNoHeadingsFound();
3459}
3460this.setHeadingsData();
3461if(!elementorFrontend.isEditMode()){
3462this.addAnchorsBeforeHeadings();
3463}
3464this.populateTOC();
3465if(elementSettings.minimize_box){
3466this.collapseOnInit();
3467}
3468if(elementSettings.sticky_toc_toggle){
3469this.handleStickyToc();
3470}
3471if(""!==elementSettings.scroll_offset.size){
3472this.setOffset();
3473}},
3474expandBox: function expandBox(){
3475var boxHeight=this.getCurrentDeviceSetting("min_height");
3476this.$element.removeClass(this.getSettings("classes.collapsed"));
3477this.elements.$tocBody.slideDown();
3478this.elements.$widgetContainer.css("min-height", boxHeight.size + boxHeight.unit);
3479},
3480collapseBox: function collapseBox(){
3481this.$element.addClass(this.getSettings("classes.collapsed"));
3482this.elements.$tocBody.slideUp();
3483this.elements.$widgetContainer.css("min-height", "0px");
3484},
3485onInit: function onInit(){
3486var $self=this;
3487this.initElements();
3488this.bindEvents();
3489jQuery(document).ready(function (){
3490$self.run();
3491});
3492},
3493onListItemClick: function onListItemClick(event){
3494var $self=this;
3495this.itemClicked=true;
3496setTimeout(function (){
3497return $self.itemClicked=false;
3498}, 2000);
3499var $clickedItem=jQuery(event.target),
3500$list=$clickedItem.parent().next(),
3501collapseNestedList=this.getElementSettings("collapse_subitems");
3502if("SPAN"==$clickedItem[0].tagName&&'yes'==this.getElementSettings("custom_style")){
3503$clickedItem=jQuery(event.currentTarget);
3504}
3505var listIsActive=void 0;
3506if(collapseNestedList&&$clickedItem.hasClass(this.getSettings("classes.firstLevelListItem"))){
3507if($list.is(":visible")){
3508listIsActive=true;
3509}}
3510this.activateItem($clickedItem);
3511if(collapseNestedList&&listIsActive){
3512$list.slideUp();
3513}},
3514handleStickyToc: function handleStickyToc(){
3515var elementSettings=this.getElementSettings();
3516var currentDeviceMode=elementorFrontend.getCurrentDeviceMode();
3517var $devices=elementSettings.sticky_toc_disable_on;
3518var target=this.getID();
3519var type=elementSettings.sticky_toc_type;
3520if("in-place"===type){
3521var parentWidth=target.parent().parent().outerWidth();
3522target.css("width", parentWidth);
3523}else if("custom-position"===type){
3524var parentWidth=target.parent().parent().outerWidth();
3525target.css("width", parentWidth);
3526}
3527if(-1==$.inArray(currentDeviceMode, $devices)){
3528target.removeClass('floating-toc');
3529$(window).off('scroll', this.stickyScroll);
3530return;
3531}
3532$(window).on('scroll', $.proxy(this.stickyScroll, this));
3533},
3534stickyScroll: function stickyScroll(){
3535var target=this.getID();
3536var elementSettings=this.getElementSettings();
3537var item=document.querySelector(".ha-table-of-contents");
3538var bound, tocHeight;
3539bound=item.getBoundingClientRect();
3540tocHeight=target.outerHeight();
3541if(target.hasClass("floating-toc")){
3542target.parent().parent().css("height", tocHeight);
3543}else{
3544target.parent().parent().css("height", '');
3545}
3546if(bound.y + bound.height / 2 < 0){
3547if(target.hasClass('floating-toc')){
3548return;
3549}
3550target.addClass("floating-toc");
3551}else{
3552if(!target.hasClass('floating-toc')){
3553return;
3554}
3555target.removeClass("floating-toc");
3556}},
3557scrollToTop: function scrollToTop(){
3558var $self=this;
3559var scrollTo=this.getElementSettings("scroll_to_top_option");
3560if("window_top"===scrollTo){
3561$("html, body").animate({
3562scrollTop: 0
3563}, 250);
3564}else{
3565var $id=this.getID().parents('.ha-table-of-contents');
3566$("html, body").animate({
3567scrollTop: $($id).offset().top - 60
3568}, 1000);
3569}},
3570getID: function getID(){
3571return $("#ha-toc-" + this.$element[0].attributes["data-id"].nodeValue);
3572}});
3573elementorFrontend.hooks.addAction("frontend/element_ready/ha-table-of-contents.default", function ($scope){
3574elementorFrontend.elementsHandler.addHandler(HaTOC, {
3575$element: $scope
3576});
3577});
3578var HaCreativeSlider=function HaCreativeSlider($scope){
3579var $rcContainer=$scope.find('.ha-creative-slider-container');
3580if($rcContainer){
3581var $haCsWidth=$(window).width();
3582var $haCsNextSelector=parseInt($haCsWidth) <=767 ? $rcContainer.find('.ha_cs_mobile_next'):$rcContainer.find('.ha_cc_next_wrapper');
3583var $haCsPrevSelector=parseInt($haCsWidth) <=767 ? $rcContainer.find('.ha_cs_mobile_prev'):$rcContainer.find('.ha_cc_prev_wrapper');
3584var csTextItemDelay=parseInt($haCsWidth) <=767 ? 40:30;
3585var csImageItemDelay=40;
3586var csPrevItemsOwl=$rcContainer.find('.ha_cc_prev_items');
3587var csTextItemsOwl=$rcContainer.find('.ha_cc_text_items');
3588var csImageItemsOwl=$rcContainer.find('.ha_cc_inner_image_items');
3589var csNextItemsOwl=$rcContainer.find('.ha_cc_next_items');
3590var csPrevNavOptions={
3591loop: true,
3592dots: false,
3593nav: false,
3594items: 1,
3595autoplay: false,
3596smartSpeed: 500,
3597touchDrag: false,
3598mouseDrag: false,
3599rewind: true,
3600startPosition: -1
3601};
3602var csNextNavOptions={
3603loop: true,
3604dots: false,
3605nav: false,
3606items: 1,
3607autoplay: false,
3608smartSpeed: 500,
3609touchDrag: false,
3610mouseDrag: false,
3611rewind: true,
3612startPosition: 1
3613};
3614var csGeneralOptions={
3615loop: true,
3616dots: false,
3617nav: false,
3618items: 1,
3619autoplay: false,
3620smartSpeed: 1000,
3621touchDrag: false,
3622mouseDrag: false,
3623singleItem: true,
3624animateOut: 'fadeOutRight',
3625animateIn: 'fadeInLeft',
3626rewind: true
3627};}
3628csPrevItemsOwl.owlCarousel(csPrevNavOptions);
3629csNextItemsOwl.owlCarousel(csNextNavOptions);
3630csTextItemsOwl.owlCarousel(csGeneralOptions);
3631csImageItemsOwl.owlCarousel(csGeneralOptions);
3632window.parent.addEventListener('message', function (e){
3633if('ha_cs_reinit'==e.data){
3634csTextItemsOwl.owlCarousel('refresh');
3635csImageItemsOwl.owlCarousel('refresh');
3636}});
3637$($haCsPrevSelector).click(function (e){
3638e.preventDefault();
3639csPrevItemsOwl.trigger('prev.owl.carousel');
3640csNextItemsOwl.trigger('prev.owl.carousel');
3641setTimeout(function (){
3642csTextItemsOwl.trigger('prev.owl.carousel');
3643}, csTextItemDelay);
3644setTimeout(function (){
3645csImageItemsOwl.trigger('prev.owl.carousel');
3646}, csTextItemDelay + csImageItemDelay);
3647});
3648$($haCsNextSelector).click(function (e){
3649e.preventDefault();
3650csPrevItemsOwl.trigger('next.owl.carousel');
3651csNextItemsOwl.trigger('next.owl.carousel');
3652setTimeout(function (){
3653csTextItemsOwl.trigger('next.owl.carousel');
3654}, csTextItemDelay);
3655setTimeout(function (){
3656csImageItemsOwl.trigger('next.owl.carousel');
3657}, csTextItemDelay + csImageItemDelay);
3658});
3659};
3660elementorFrontend.hooks.addAction('frontend/element_ready/ha-creative-slider.default', HaCreativeSlider);
3661var AdvancedComparisonTable=function AdvancedComparisonTable($scope){
3662var nav=$scope.find('ul.ha-adct-table-responsive-nav');
3663var rows=$scope.find(".ha-adct-row, .ha-adct-child-row");
3664var collapse=$scope.find(".ha-adct-collapse-icon-wrap");
3665var pos=2;
3666nav.on("click", "li", function (){
3667var pos=$(this).index() + 2;
3668rows.find(".ha-adct-column:not(:eq(0))").hide();
3669$scope.find(".ha-adct-column:nth-child(" + pos + ")").css("display", "flex");
3670nav.find("li").removeClass("active");
3671$(this).addClass("active");
3672});
3673collapse.on("click", function (){
3674var row_wrap=$(this).closest('.ha-adct-row-wrap');
3675$(this).toggleClass('open');
3676row_wrap.find('.ha-adct-child-row-wrap').slideToggle("slow");
3677});
3678var mode=$('body').attr('data-elementor-device-mode');
3679var w_width=$(window).outerWidth(true);
3680function hideAndShowColumn(mode){
3681if('tablet'==mode||'mobile_extra'==mode||'mobile'==mode){
3682rows.find(".ha-adct-column:not(:eq(0))").hide();
3683$scope.find(".ha-adct-column:nth-child(" + pos + ")").css("display", "flex");
3684}else{
3685rows.find(".ha-adct-column").removeAttr("style");
3686}}
3687;
3688hideAndShowColumn(mode);
3689$(window).on('resize', function (e){
3690var mode=$('body').attr('data-elementor-device-mode');
3691var w_resize_width=$(window).outerWidth(true);
3692if(w_width!=w_resize_width){
3693w_width=w_resize_width;
3694hideAndShowColumn(mode);
3695}});
3696};
3697elementorFrontend.hooks.addAction('frontend/element_ready/ha-advanced-comparison-table.default', AdvancedComparisonTable);
3698var TitleTips=function TitleTips($scope){
3699var element=$scope.find('.ha-flip-box-inner');
3700var items=$scope.find('.ha-title-tips-hover li > a');
3701var rect=$scope.find('.ha-title-tips-hover')[0].getBoundingClientRect();
3702if($scope.find('.ha-title-tips-hover').hasClass('swap')){
3703var wrapper=$scope.find('.ha-title-tips-hover');
3704var anchor_item=$scope.find('.ha-title-tips-hover-item.have-image');
3705var figure=$scope.find('figure');
3706var Work={
3707_register: {
3708hover: {
3709active: !1,
3710currentX: 0,
3711currentY: 0,
3712targetX: 0,
3713targetY: 0
3714}},
3715_init: function _init(){
3716this._base(), this._events();
3717},
3718_base: function _base(){
3719figure.find('img').each(function (){
3720var item=$(this);
3721item.attr("height_ratio", item.height());
3722});
3723requestAnimationFrame(function (){
3724Work._interaction.hover.move_image();
3725});
3726},
3727_events: function _events(){
3728anchor_item.on("mouseenter", "a", function (){
3729Work._interaction.hover.image($(this));
3730});
3731anchor_item.on("mouseleave", "a", function (){
3732Work._interaction.hover.leave();
3733});
3734anchor_item.on("mousemove", "a", function (e){
3735Work._interaction.hover.move(e);
3736});
3737},
3738_functions: {
3739round: function round(e, t){
3740var t=void 0===t ? 100:Math.pow(10, t);
3741return Math.round(e * t) / t;
3742}},
3743_interaction: {
3744hover: {
3745image: function image(e){
3746e.parents("li").addClass("active").removeClass("not-selected").siblings().removeClass("active").addClass("not-selected");
3747if(!Work._register.hover.visible&&(Work._register.hover.currentX||Work._register.hover.currentY)){
3748Work._register.hover.visible = !0;
3749figure.addClass("visible");
3750}
3751var $img=figure.find('img[data-filter-id="' + e.attr("data-filter-id") + '"]');
3752$img.addClass("active").siblings(".active").removeClass("active").addClass("was-active");
3753figure.get()[0].style.setProperty("--height_ratio", $img.attr("height_ratio") + 'px');
3754clearTimeout(figure.prop("leave"));
3755clearTimeout(figure.prop("animate"));
3756figure.addClass("animate").prop("animate", setTimeout(function (){
3757figure.removeClass("animate").find("img.was-active").removeClass("was-active");
3758}, 400));
3759},
3760leave: function leave(){
3761anchor_item.removeClass("active not-selected");
3762clearTimeout(figure.prop("leave"));
3763clearTimeout(figure.prop("active"));
3764figure.prop("leave", setTimeout(function (){
3765Work._register.hover.visible=false;
3766figure.removeClass("visible");
3767}, 1));
3768figure.prop("active", setTimeout(function (){
3769Work._register.hover.active = !1;
3770}, 2e3));
3771},
3772move: function move(e){
3773var currentReact=e.currentTarget.getBoundingClientRect();
3774var currentWrapperReact=wrapper.get()[0].getBoundingClientRect();
3775var targetMiddle=currentReact.top + currentReact.height / 2;
3776Work._register.hover.active||(Work._register.hover.active = !0, requestAnimationFrame(function (){
3777Work._interaction.hover.move_image();
3778}), clearTimeout(figure.prop("active")), figure.prop("active", setTimeout(function (){
3779Work._register.hover.active = !1;
3780}, 2e3)));
3781var s=0;
3782var targetItem=anchor_item.find('a').offset().left - 40;
3783if($scope.hasClass('ha_title_tips_img_pos--left')){
3784Work._register.hover.targetX=-(figure.width() + 10);
3785}else{
3786Work._register.hover.targetX=currentReact.width + 10;
3787}
3788Work._register.hover.targetY=e.pageY - (currentWrapperReact.top + window.scrollY);
3789if(!Work._register.hover.visible&&(Work._register.hover.currentX||Work._register.hover.currentY)){
3790Work._register.hover.visible=true;
3791figure.addClass("visible");
3792}},
3793move_image: function move_image(){
3794if(figure.length){
3795Work._register.hover.currentX +=(Work._register.hover.targetX - Work._register.hover.currentX) * 0.09;
3796Work._register.hover.currentY +=(Work._register.hover.targetY - Work._register.hover.currentY) * 0.09;
3797figure.get()[0].style.transform=" translate3d(\n\t\t\t\t\t\t\t\t\t\t".concat(Work._functions.round(Work._register.hover.currentX), "px,\n\t\t\t\t\t\t\t\t\t\t").concat(Work._functions.round(Work._register.hover.currentY), "px, 0px\n\t\t\t\t\t\t\t\t\t)");
3798if(Work._register.hover.active){
3799requestAnimationFrame(function (){
3800Work._interaction.hover.move_image();
3801});
3802}}
3803}}
3804}};
3805Work._init();
3806}};
3807elementorFrontend.hooks.addAction('frontend/element_ready/ha-title-tips.default', TitleTips);
3808var LoopTabBase=elementorModules.frontend.handlers.Base.extend({
3809onInit: function onInit(){
3810var _this2=this;
3811elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
3812this.wrapper=this.$element.find('.ha-loop-tab-wrapper');
3813this._pillAnim=null;
3814this._animating=false;
3815this._uid='ha_loop_tab_' + this.getUniqueHandlerID();
3816this._initialized=false;
3817this._wasVisible=false;
3818this._observer=null;
3819this._self=this;
3820this.run();
3821$(document).on('ha_TabHandlerBase_changed.' + this._uid, function (){
3822setTimeout(function (){
3823_this2._initialized=false;
3824if(_this2.$element.hasClass('ha-loop-tab-loaded')){
3825return;
3826}
3827_this2.run();
3828}, 200);
3829});
3830this._startVisibilityObserver();
3831},
3832getUniqueHandlerID: function getUniqueHandlerID(){
3833return 'ha_loop_tab_' + this.$element.data('id') + '_' + Math.random().toString(36).substr(2, 9);
3834},
3835onDestroy: function onDestroy(){
3836$(document).off('.' + this._uid);
3837if(this._resizeHandler){
3838window.removeEventListener('resize', this._resizeHandler);
3839this._resizeHandler=null;
3840}
3841if(this._pillAnim){
3842this._pillAnim.cancel();
3843this._pillAnim=null;
3844}
3845if(this._observer){
3846this._observer.disconnect();
3847this._observer=null;
3848}},
3849onElementChange: debounce(function (changedProp){
3850var $keys=['tab_action', 'tab_transition_delay', 'tab_nav_item_width', 'tab_nav_item_height', 'tab_nav_item_border_radius', 'tab_nav_item_stroke_width'];
3851if($keys.indexOf(changedProp)!==-1){
3852this._initialized=false;
3853this.run();
3854}}, 300),
3855_startVisibilityObserver: function _startVisibilityObserver(){
3856var _this3=this;
3857if(this._observer){
3858this._observer.disconnect();
3859}
3860var el=this.$element[0];
3861var isVisible=function isVisible(){
3862return !!(el.offsetWidth||el.offsetHeight||el.getClientRects().length);
3863};
3864this._wasVisible=isVisible();
3865this._observer=new MutationObserver(function (){
3866var nowVisible=isVisible();
3867if(nowVisible&&!_this3._wasVisible){
3868_this3._wasVisible=true;
3869_this3._initialized=false;
3870if(_this3._pillAnim){
3871_this3._pillAnim.cancel();
3872_this3._pillAnim=null;
3873_this3._animating=false;
3874}
3875setTimeout(function (){
3876_this3.run();
3877}, 100);
3878}else if(!nowVisible){
3879_this3._wasVisible=false;
3880}});
3881var ancestor=el.parentElement;
3882while (ancestor&&ancestor!==document.body){
3883this._observer.observe(ancestor, {
3884attributes: true,
3885attributeFilter: ['class', 'style', 'hidden']
3886});
3887ancestor=ancestor.parentElement;
3888}},
3889getReadySettings: function getReadySettings(){
3890var settings={};
3891var tab_action=this.getElementSettings('tab_action');
3892if(tab_action) settings.tab_action=tab_action;
3893var tab_transition_delay=this.getElementSettings('tab_transition_delay');
3894if(tab_transition_delay) settings.tab_transition_delay=tab_transition_delay;
3895var item_width=elementorFrontend.getCurrentDeviceMode()==='mobile' ? this.getElementSettings('tab_nav_item_width_mobile'):this.getElementSettings('tab_nav_item_width');
3896if(item_width) settings.item_width=item_width['size'];
3897var item_height=this.getElementSettings('tab_nav_item_height');
3898if(item_height) settings.item_height=item_height['size'];
3899var stroke_ry=elementorFrontend.getCurrentDeviceMode()==='mobile' ? this.getElementSettings('tab_nav_item_border_radius_mobile'):this.getElementSettings('tab_nav_item_border_radius');
3900if(stroke_ry) settings.stroke_ry=stroke_ry['size'];
3901var stroke_width=this.getElementSettings('tab_nav_item_stroke_width');
3902if(stroke_width) settings.stroke_width=stroke_width['size'];
3903return $.extend({}
3903, this.getSettings(), settings);
3904},
3905run: function run(){
3906var _this4=this;
3907if(this.$element.hasClass('ha-loop-tab-loaded')&&this._initialized){
3908console.log('Loop Tab already initialized, skipping run.');
3909return;
3910}
3911this._initialized=true;
3912this.$element.addClass('ha-loop-tab-loaded');
3913console.log('run.');
3914if(this._pillAnim){
3915this._pillAnim.cancel();
3916this._pillAnim=null;
3917}
3918this._animating=false;
3919if(this._resizeHandler){
3920window.removeEventListener('resize', this._resizeHandler);
3921this._resizeHandler=null;
3922}
3923this.wrapper.find('.tab-border').each(function (){
3924this.style.visibility='hidden';
3925this.style.strokeDasharray='';
3926this.style.strokeDashoffset='';
3927});
3928var settings=this.getReadySettings();
3929var currentIndex=0;
3930var isHovered=false;
3931var nextIndex=1;
3932var animationInProgress=false;
3933var pillBorderAnim=undefined;
3934var hoverMode=settings.tab_action==='on_hover';
3935var $wrapper=this.wrapper;
3936var tabs=$wrapper.find('.ha-loop-tab-nav-item');
3937var contents=$wrapper.find('.ha-loop-tab_content');
3938var animationTime=settings.tab_transition_delay||8000;
3939var itemWidth=settings.item_width||280;
3940var itemHeight=settings.item_height&&settings.item_height >=45 ? settings.item_height:settings.item_height ? 45:65;
3941var maxRY=parseFloat(itemHeight / 2);
3942var strokeRY=settings.stroke_ry >=maxRY ? maxRY:settings.stroke_ry;
3943var strokeWidth=settings.stroke_width||2;
3944var parentElement=this.$element.closest('.e-parent');
3945var syncAnimRefs=function syncAnimRefs(anim, inProgress){
3946pillBorderAnim=anim;
3947animationInProgress=inProgress;
3948_this4._pillAnim=anim;
3949_this4._animating=inProgress;
3950};
3951if(parentElement.length > 0){
3952parentElement.css({
3953position: 'relative',
3954overflow: 'inherit'
3955});
3956parentElement.find('.ha-loop-tab-bgcontainer').remove();
3957tabs.each(function (idx, tab){
3958var bgColor=$(tab).attr('container-bgcolors');
3959var parsedColor='';
3960try {
3961parsedColor=JSON.parse(bgColor);
3962} catch (e){}
3963parentElement.append("<div class=\"ha-loop-tab-bgcontainer ha-loop-tab-bgcontainer-".concat(idx, "\" style=\"background:").concat(parsedColor, ";\"></div>"));
3964});
3965parentElement.find('.ha-loop-tab-bgcontainer-0').addClass('ha-loop-tab-active-bg');
3966}
3967var handleSweepTouchEvents=function handleSweepTouchEvents(){
3968var startX=0;
3969var currentX=0;
3970var isSwiping=false;
3971var contentsWrapper=$wrapper.find('.ha-loop-tab-contents')[0];
3972if(contentsWrapper){
3973contentsWrapper.addEventListener('touchstart', function (e){
3974if(!e.touches||e.touches.length!==1) return;
3975startX=e.touches[0].clientX;
3976currentX=startX;
3977isSwiping=true;
3978}, {
3979passive: true
3980});
3981contentsWrapper.addEventListener('touchmove', function (e){
3982if(!isSwiping) return;
3983currentX=e.touches[0].clientX;
3984}, {
3985passive: true
3986});
3987contentsWrapper.addEventListener('touchend', function (){
3988if(!isSwiping) return;
3989isSwiping=false;
3990var deltaX=startX - currentX;
3991var threshold=60;
3992if(deltaX > threshold){
3993$(tabs[(currentIndex + 1) % tabs.length]).trigger('click');
3994}
3995if(deltaX < -threshold){
3996$(tabs[(currentIndex - 1 + tabs.length) % tabs.length]).trigger('click');
3997}});
3998}};
3999this._resizeHandler=function (){
4000hoverMode=window.innerWidth <=767 ? false:settings.tab_action==='on_hover';
4001};
4002window.addEventListener('resize', this._resizeHandler);
4003if(window.innerWidth <=767){
4004hoverMode=false;
4005handleSweepTouchEvents();
4006}else{
4007hoverMode=settings.tab_action==='on_hover';
4008}
4009var handleAnimationEnd=function handleAnimationEnd(targetIndex){
4010return function (){
4011if(!animationInProgress) return;
4012syncAnimRefs(null, false);
4013var previousTab=$(tabs[currentIndex]);
4014var prevBorder=previousTab.find('.tab-border')[0];
4015if(prevBorder){
4016previousTab.find('.tab-border').css({
4017visibility: 'hidden',
4018strokeDashoffset: prevBorder.getTotalLength ? prevBorder.getTotalLength():0
4019});
4020}
4021activateTab(targetIndex);
4022$(tabs[targetIndex]).find('.tab-border').css({
4023visibility: 'hidden'
4024});
4025smoothScrollTabs(tabs[targetIndex]);
4026parentElement.find('.ha-loop-tab-bgcontainer').removeClass('ha-loop-tab-active-bg');
4027parentElement.find(".ha-loop-tab-bgcontainer-".concat(targetIndex)).addClass('ha-loop-tab-active-bg');
4028requestAnimationFrame(function (){
4029startSvgAnimation((targetIndex + 1) % tabs.length);
4030});
4031};};
4032var startSvgAnimation=function startSvgAnimation(index){
4033var _svgElement$viewBox;
4034if(hoverMode||animationInProgress) return;
4035tabs.removeClass('filling');
4036var $nextTab=$(tabs[index]);
4037var svgElement=$nextTab.find('.tab-svg')[0];
4038if(!svgElement) return;
4039if(window.innerWidth <=767){
4040svgElement.setAttribute('width', itemWidth);
4041svgElement.setAttribute('height', 55);
4042svgElement.setAttribute('viewBox', "0 0 ".concat(itemWidth, " 55"));
4043svgElement.style.width=itemWidth + 'px';
4044svgElement.style.height=55 + 'px';
4045}else{
4046svgElement.setAttribute('width', itemWidth);
4047svgElement.setAttribute('height', itemHeight + 2);
4048svgElement.setAttribute('viewBox', "0 0 ".concat(itemWidth, " ").concat(itemHeight));
4049svgElement.style.height=itemHeight + 2 + 'px';
4050}
4051var borderElement=$nextTab.find('.tab-border')[0];
4052if(!borderElement) return;
4053$nextTab.find('.tab-border').css('visibility', 'visible');
4054var bboxWidth=borderElement.getBBox().width||((_svgElement$viewBox=svgElement.viewBox)===null||_svgElement$viewBox===void 0||(_svgElement$viewBox=_svgElement$viewBox.baseVal)===null||_svgElement$viewBox===void 0 ? void 0:_svgElement$viewBox.width)||itemWidth;
4055if(bboxWidth!==0){
4056if(window.innerWidth <=767){
4057strokeWidth=2;
4058borderElement.style.width=itemWidth - 3 + 'px';
4059borderElement.style.height=52 + 'px';
4060borderElement.style.x=1;
4061borderElement.style.y=1;
4062borderElement.setAttribute('x', 1);
4063borderElement.setAttribute('y', 1);
4064borderElement.setAttribute('rx', strokeRY);
4065borderElement.setAttribute('ry', strokeRY);
4066borderElement.style.rx=strokeRY;
4067borderElement.style.ry=strokeRY;
4068}else{
4069if(strokeWidth > 4){
4070borderElement.setAttribute('x', 3);
4071borderElement.setAttribute('y', 3);
4072}else if(strokeWidth > 2){
4073borderElement.setAttribute('x', 2);
4074borderElement.setAttribute('y', 2);
4075}else{
4076borderElement.setAttribute('x', 1);
4077borderElement.setAttribute('y', 1);
4078}
4079borderElement.setAttribute('rx', strokeRY);
4080borderElement.setAttribute('ry', strokeRY);
4081borderElement.style.rx=strokeRY;
4082borderElement.style.ry=strokeRY;
4083if(strokeWidth > 4){
4084borderElement.style.width=itemWidth - strokeWidth + 'px';
4085borderElement.style.height=itemHeight - strokeWidth + 'px';
4086borderElement.style.x=3;
4087borderElement.style.y=3;
4088}else if(strokeWidth > 2){
4089borderElement.style.width=itemWidth - 1 - strokeWidth + 'px';
4090borderElement.style.height=itemHeight - 2 + 'px';
4091borderElement.style.x=2;
4092}else{
4093borderElement.style.width=itemWidth - 2 + 'px';
4094borderElement.style.height=itemHeight - 2 + 'px';
4095borderElement.style.x=1;
4096borderElement.style.y=1;
4097}}
4098var length;
4099try {
4100length=borderElement.getTotalLength() + 5;
4101if(length <=5){
4102var _w=parseFloat(borderElement.style.width)||itemWidth - 2;
4103var h=parseFloat(borderElement.style.height)||itemHeight - 2;
4104length=2 * (_w + h) + 5;
4105}} catch (e){
4106var _w2=parseFloat(borderElement.style.width)||itemWidth - 2;
4107var _h=parseFloat(borderElement.style.height)||itemHeight - 2;
4108length=2 * (_w2 + _h) + 5;
4109}
4110borderElement.style.strokeDasharray=length.toString();
4111borderElement.style.strokeDashoffset=length.toString();
4112var anim=borderElement.animate([{
4113strokeDashoffset: length,
4114strokeWidth: strokeWidth
4115}, {
4116strokeDashoffset: 0,
4117strokeWidth: strokeWidth,
4118offset: 0.98,
4119easing: 'cubic-bezier(0.11, 0, 0.5, 0)'
4120}, {
4121strokeDashoffset: 0,
4122strokeWidth: strokeWidth,
4123easing: 'ease-out'
4124}], {
4125duration: animationTime,
4126delay: 0,
4127fill: 'forwards'
4128});
4129syncAnimRefs(anim, true);
4130}
4131if(!pillBorderAnim) return;
4132pillBorderAnim.onfinish=handleAnimationEnd(index);
4133$nextTab.addClass('filling');
4134nextIndex=index;
4135};
4136var activateTab=function activateTab(index){
4137currentIndex=index;
4138tabs.removeClass('active');
4139contents.removeClass('active');
4140$(tabs[index]).addClass('active');
4141$(contents[index]).addClass('active');
4142};
4143tabs.off('mouseenter mouseleave').hover(function (){
4144if(window.innerWidth <=767) return;
4145if(hoverMode){
4146var index=$(this).index();
4147activateTab(index);
4148parentElement.find('.ha-loop-tab-bgcontainer').removeClass('ha-loop-tab-active-bg');
4149parentElement.find(".ha-loop-tab-bgcontainer-".concat(index)).addClass('ha-loop-tab-active-bg');
4150return;
4151}
4152isHovered=true;
4153var $thisTab=$(this);
4154if($thisTab.hasClass('filling')&&animationInProgress&&pillBorderAnim){
4155pillBorderAnim.pause();
4156}}, function (){
4157if(window.innerWidth <=767) return;
4158if(hoverMode) return;
4159isHovered=false;
4160var $thisTab=$(this);
4161if($thisTab.hasClass('filling')&&animationInProgress&&pillBorderAnim){
4162pillBorderAnim.play();
4163}});
4164tabs.off('click').on('click', function (e){
4165var clickedTab=$(e.currentTarget);
4166var clickedIndex=clickedTab.index();
4167if(clickedIndex===currentIndex) return;
4168if(animationInProgress&&pillBorderAnim){
4169pillBorderAnim.cancel();
4170syncAnimRefs(null, false);
4171}
4172tabs.find('.tab-border').css({
4173visibility: 'hidden',
4174strokeDashoffset: function strokeDashoffset(){
4175try {
4176return this.getTotalLength();
4177} catch (e){
4178return 0;
4179}}
4180});
4181activateTab(clickedIndex);
4182parentElement.find('.ha-loop-tab-bgcontainer').removeClass('ha-loop-tab-active-bg');
4183parentElement.find(".ha-loop-tab-bgcontainer-".concat(clickedIndex)).addClass('ha-loop-tab-active-bg');
4184setTimeout(function (){
4185startSvgAnimation((clickedIndex + 1) % tabs.length);
4186}, 200);
4187smoothScrollTabs(e.currentTarget);
4188});
4189tabs.dblclick(function (){
4190if(window.innerWidth > 767) return;
4191if(animationInProgress&&pillBorderAnim){
4192pillBorderAnim.cancel();
4193syncAnimRefs(null, false);
4194}});
4195var smoothScrollTabs=function smoothScrollTabs(clickedTab){
4196if(window.innerWidth > 767) return;
4197var container=$wrapper.find('.ha-loop-tab-nav')[0];
4198if(!container) return;
4199var containerRect=container.getBoundingClientRect();
4200var itemRect=clickedTab.getBoundingClientRect();
4201var scrollPosition=container.scrollLeft + (itemRect.left - containerRect.left) - containerRect.width / 3 + itemRect.width / 3;
4202container.scrollTo({
4203left: scrollPosition,
4204behavior: 'smooth'
4205});
4206};
4207activateTab(0);
4208startSvgAnimation(1);
4209}});
4210elementorFrontend.hooks.addAction("frontend/element_ready/ha-loop-tab.default", function ($scope){
4211elementorFrontend.elementsHandler.addHandler(LoopTabBase, {
4212$element: $scope
4213});
4214});
4215var MultiScroll=function MultiScroll($scope){
4216var wrap=$scope.find(".ha-multi-scroll-wrap");
4217var wrap_inner=$scope.find(".ha-multi-scroll-inner");
4218var multi_id=$scope.data("id");
4219var multiscroll=$scope.find(".ha-multi-scroll-inner-" + multi_id);
4220var is_editor=$scope.hasClass("elementor-element-edit-mode");
4221var options=wrap.data("settings");
4222var device_mode=$("body").attr("data-elementor-device-mode");
4223var $left_sections=$scope.find('.ms-left .ms-section');
4224var $right_sections=$scope.find('.ms-right .ms-section');
4225if(is_editor){
4226$(document).find('#multiscroll-nav').remove();
4227try {
4228$.fn.multiscroll.destroy();
4229} catch (err){
4230console.log(err);
4231}}
4232var $settings={
4233loopBottom: options.loopBottom,
4234loopTop: options.loopTop,
4235anchors: options.anchors,
4236navigation: options.dots,
4237navigationTooltips: options.dotsTooltips,
4238navigationPosition: options.dotsPosition + ' ' + options.dotsVertical,
4239normalScrollElements: null,
4240menu: options.menu,
4241leftWidth: options.leftWidth,
4242rightWidth: options.rightWidth,
4243navigationInject: wrap_inner,
4244paddingTop: 0,
4245paddingBottom: 0
4246};
4247multiscroll.multiscroll($settings);
4248function check_device(device_mode){
4249if(device_mode.includes("tablet")||device_mode.includes("mobile")){
4250$.fn.multiscroll.destroy();
4251$('html, body').css({
4252'overflow': 'visible',
4253'height': 'auto'
4254});
4255}else{
4256$.fn.multiscroll.build();
4257$('html, body').css({
4258'overflow': 'hidden',
4259'height': '100%'
4260});
4261}}
4262check_device(device_mode);
4263if(is_editor&&options.menu){
4264$(options.menu).on('click', 'a', function (e){
4265e.preventDefault();
4266var target=$(this).parent().attr('data-menuanchor');
4267$.fn.multiscroll.moveTo(target);
4268});
4269}
4270$(window).on("resize", function (){
4271var device_mode=$("body").attr("data-elementor-device-mode");
4272check_device(device_mode);
4273});
4274};
4275elementorFrontend.hooks.addAction("frontend/element_ready/ha-multi-scroll.default", MultiScroll);
4276var ScrollSequence=function ScrollSequence($scope){
4277var get_ID=sessionStorage.getItem('haScrollSequenceChangeApply');
4278if(get_ID&&get_ID==$scope.data('id')){
4279$scope.trigger("click");
4280$("body,html,document").scrollTop($scope.offset().top);
4281sessionStorage.removeItem('haScrollSequenceChangeApply');
4282}
4283var element=$scope.find('.ha-scroll-sequence-wrap');
4284if(!element.length) return;
4285var settings=element.data('settings'),
4286canvas_wrap=element.find('.ha-scroll-sequence-canvas-wrap'),
4287is_editor=$scope.hasClass("elementor-element-edit-mode"),
4288apply_to=settings.apply_to,
4289target_wrap='.ha-scroll-sequence-canvas--' + settings.widget_id + ' .ha-scroll-sequence-canvas-wrap-inner',
4290image_links=[],
4291folder_path='',
4292name_prefix='',
4293number_format=1,
4294image_type='jpg',
4295total_image=0,
4296parent_wrapper,
4297contid,
4298containerSS;
4299if("gallery"==settings.image_source){
4300image_links=settings.images;
4301}else if("server"==settings.image_source){
4302folder_path=settings.images, name_prefix=settings.name_prefix, number_format=settings.number_format, image_type=sett
4302ings.image_type, total_image=settings.total_image, image_links=createImageLink(folder_path, name_prefix, number_format, image_type, total_image);
4303}
4304canvas_wrap.remove();
4305if('body'==apply_to){
4306parent_wrapper=$(document).find('body');
4307containerSS="body";
4308}else if('container'==apply_to){
4309parent_wrapper=$scope.closest('.e-con');
4310contid=parent_wrapper.data('id');
4311containerSS=".elementor-element-" + contid;
4312}else if('section'==apply_to){
4313parent_wrapper=$scope.closest('.elementor-section');
4314contid=parent_wrapper.data('id');
4315containerSS=".elementor-element-" + contid;
4316}else if('column'==apply_to){
4317parent_wrapper=$scope.closest('.elementor-column');
4318if(parent_wrapper){
4319contid=parent_wrapper.data('id');
4320containerSS=".elementor-element-" + contid;
4321}}
4322if(is_editor){
4323try {
4324parent_wrapper.find('.ha-scroll-sequence-canvas-wrap').remove();
4325} catch (err){
4326console.log(err);
4327}}
4328parent_wrapper.prepend(canvas_wrap);
4329$(target_wrap).HappySequencer({
4330links: image_links,
4331count: total_image
4332}, function (){
4333});
4334function createImageLink(folder_path, name_prefix, number_format, image_type, total_image){
4335var imgGallery=[];
4336if(!isNaN(number_format)&&folder_path!==''&&total_image&&['jpg', 'png', 'webp'].includes(image_type)){
4337for (var i=1; i <=total_image; i++){
4338var paddedNumber=i.toString().padStart(number_format, '0');
4339var imgUrl="".concat(folder_path, "/").concat(name_prefix).concat(paddedNumber, ".").concat(image_type);
4340imgGallery.push(imgUrl);
4341}}
4342return imgGallery;
4343}};
4344elementorFrontend.hooks.addAction('frontend/element_ready/ha-scroll-sequence.default', ScrollSequence);
4345var ScrollTabs=function ScrollTabs($scope){
4346content_1();
4347function content_1(){
4348var contentwrap=arguments.length > 0&&arguments[0]!==undefined ? arguments[0]:'.ha-scroll-tab-content-wrapper';
4349var navItems=arguments.length > 1&&arguments[1]!==undefined ? arguments[1]:'.ha-scroll-tab-nav-item';
4350var $contentWrapper=$scope.find('.ha-scroll-tab-content-wrapper');
4351var totalInnerSection=$contentWrapper.find('.ha-scroll-tab-content-section').length;
4352var $navItems=$scope.find('.ha-scroll-tab-nav-item');
4353var sectionHeight=$contentWrapper.height();
4354var isScrolling=false;
4355var isAnimating=false;
4356var animDuration=10;
4357var debounceTime=200;
4358$navItems.on('click', debounce(function (){
4359var sectionIndex=parseInt($(this).data('section'));
4360scrollToSection(sectionIndex);
4361}, debounceTime));
4362function scrollToSection(sectionIndex){
4363isScrolling=true;
4364isAnimating=true;
4365var targetScroll=sectionIndex * sectionHeight;
4366$contentWrapper.animate({
4367scrollTop: targetScroll
4368}, animDuration, function (){
4369isScrolling=false;
4370isAnimating=false;
4371updateActiveStates(sectionIndex);
4372});
4373}
4374function getCurrentSection(deltaY, target){
4375var sectionIndex=null;
4376if(deltaY < 0){
4377if(target.hasClass('ha-scroll-tab-content-section')){
4378sectionIndex=parseInt(target.data('section'));
4379}else if(target.closest('.ha-scroll-tab-content-section').length > 0){
4380sectionIndex=parseInt(target.closest('.ha-scroll-tab-content-section').data('section'));
4381}}else if(deltaY > 0){
4382if(target.hasClass('ha-scroll-tab-content-section')){
4383sectionIndex=parseInt(target.data('section'));
4384}else if(target.closest('.ha-scroll-tab-content-section').length > 0){
4385sectionIndex=parseInt(target.closest('.ha-scroll-tab-content-section').data('section'));
4386}}
4387return sectionIndex;
4388}
4389function updateActiveStates(activeIndex){
4390if(!isAnimating){
4391$navItems.removeClass('active');
4392$navItems.filter("[data-section=\"".concat(activeIndex, "\"]")).addClass('active');
4393}}
4394$contentWrapper.on('scroll', debounce(function (){
4395if(isScrolling||isAnimating) return;
4396var scrollTop=$(this).scrollTop();
4397var currentSection=Math.round(scrollTop / sectionHeight);
4398if(false==isAnimating){
4399isAnimating=true;
4400var targetScroll=currentSection * sectionHeight;
4401$contentWrapper.animate({
4402scrollTop: targetScroll
4403}, animDuration, function (){
4404isAnimating=false;
4405updateActiveStates(currentSection);
4406});
4407}
4408if(false==isAnimating){
4409updateActiveStates(currentSection);
4410}}, debounceTime));
4411$contentWrapper.on('wheel', debounce(function (e){
4412var scrollTop=$(this).scrollTop();
4413var currentSection=Math.round(scrollTop / sectionHeight);
4414var delta=e.originalEvent.deltaY;
4415var maxScroll=$contentWrapper[0].scrollHeight - $contentWrapper.height();
4416var present=getCurrentSection(delta, $(e.target));
4417if(scrollTop <=0&&delta < 0){
4418return;
4419}
4420if(scrollTop >=maxScroll&&delta > 0){
4421return;
4422}
4423e.preventDefault();
4424var targetSection=currentSection;
4425if(e.originalEvent.deltaY < 0){
4426targetSection=0==present ? 0:present - 1;
4427}else if(e.originalEvent.deltaY > 0){
4428targetSection=totalInnerSection - 0==present ? present:present + 1;
4429}
4430if(targetSection!==currentSection&&false==isAnimating){
4431scrollToSection(targetSection);
4432}}, debounceTime));
4433$(document).on('wheel', debounce(function (e){
4434var $target=$(e.target);
4435if($target.closest('.ha-scroll-tab-content-wrapper').length > 0){
4436return;
4437}}, debounceTime));
4438}};
4439elementorFrontend.hooks.addAction('frontend/element_ready/ha-scroll-tabs.default', ScrollTabs);
4440var advancedPricingTable=function advancedPricingTable($scope){
4441var currentIndex=0;
4442var table=$scope.find('.ha-adv-pricing-table-wrap');
4443var data=table.data('price-settings');
4444var tiers=data;
4445function advancePrice(priceContainer, items){
4446contentManage(priceContainer, items, 0);
4447priceContainer.find('.ha-adv-pricing-table-slider-dot').on('click', function (){
4448var index=priceContainer.find('.ha-adv-pricing-table-slider-dot').index(this);
4449contentManage(priceContainer, items, index);
4450var sliderContainer=priceContainer.find('.ha-adv-pricing-table-slider-container.style-1');
4451if(0 < sliderContainer.length){
4452sliderControl(sliderContainer, items, index);
4453}});
4454var $style_1=priceContainer.find('.ha-adv-pricing-table-slider-container.style-1');
4455if(0 < $style_1.length){
4456$style_1.find('input[type="range"]').on('input', function (e){
4457var value=parseInt($(this).val());
4458contentManage(priceContainer, items, value);
4459sliderControl($style_1, items, value);
4460});
4461}
4462var $style_2=priceContainer.find('.ha-adv-pricing-table-slider-container.style-2 input[type="range"]');
4463if(0 < $style_2.length){
4464$style_2.rangeslider({
4465polyfill: false,
4466onInit: function onInit(){
4467var range='';
4468var $ruler=$('<div class="rangeslider__ruler" />');
4469var step=1;
4470var i=this.min;
4471while (i <=this.max){
4472range +=i + ' ';
4473i=i + step;
4474}
4475$ruler[0].innerHTML=range;
4476this.$range.prepend($ruler);
4477},
4478onSlide: function onSlide(position, value){
4479contentManage(priceContainer, items, value);
4480}});
4481}
4482var $style_3=priceContainer.find('.ha-adv-pricing-table-slider-container.style-3');
4483if(0 < $style_3.length){
4484$style_3.find('input[type="range"]').on('input', function (e){
4485var value=parseInt($(this).val());
4486contentManage(priceContainer, items, value);
4487simpleSliderControl($style_3, items, value);
4488});
4489}
4490var $style_4=priceContainer.find('.ha-adv-pricing-table-slider-container.style-4');
4491if(0 < $style_4.length){
4492$style_4.find('input[type="range"]').on('input', function (e){
4493var value=parseInt($(this).val());
4494contentManage(priceContainer, items, value);
4495simpleSliderControl($style_4, items, value);
4496});
4497}
4498var $style_5=priceContainer.find('.ha-adv-pricing-table-slider-container.style-5');
4499if(0 < $style_5.length){
4500$style_5.find('input[type="range"]').on('input', function (e){
4501var value=parseInt($(this).val());
4502contentManage(priceContainer, items, value);
4503simpleSliderControl($style_5, items, value);
4504});
4505}}
4506function contentManage(priceContainer, items, index){
4507var tier=items[index];
4508priceContainer.find('[data-plan-name]').text(tier.plan_name);
4509var priceDisplay=priceContainer.find('.ha-adv-pricing-table-price-display');
4510priceDisplay.find('[data-currency]').text(tier.symbol);
4511var price=priceDisplay.find('.ha-adv-pricing-table-current-price');
4512price.find('[data-price]').text(tier.price);
4513if(index > currentIndex){
4514priceDisplay.css('animation', "haAdvPricingTableLetterroll cubic-bezier(0.4, 0, 0.2, 1) 0.5s");
4515currentIndex=index;
4516}
4517if(index < currentIndex){
4518priceDisplay.css('animation', 'haAdvPricingTableBackroll cubic-bezier(0.4, 0, 0.2, 1) 0.5s');
4519currentIndex=index;
4520}
4521var t=setTimeout(function (){
4522priceDisplay.removeAttr('style');
4523clearTimeout(t);
4524}, 500);
4525priceContainer.find('[data-price-period]').text(tier.period);
4526if(tier.plan_related_text){
4527var plan_related="<span>".concat(tier.plan_related_text, "</span>");
4528if(tier.plan_related_icon){
4529plan_related="<i class=\"".concat(tier.plan_related_icon, "\"></i>") + plan_related;
4530}
4531priceContainer.find('[data-savings]').html(plan_related);
4532priceContainer.find('[data-savings]').css('display', '');
4533}else{
4534priceContainer.find('[data-savings]').css('display', 'none');
4535}
4536priceContainer.find('[data-cta-button]').text(tier.button_text);
4537priceContainer.find('[data-cta-button]').attr(tier.button_attr);
4538var originalPriceEl=priceContainer.find('.ha-adv-pricing-table-original-price');
4539if(tier.original_price){
4540originalPriceEl.css('display', '');
4541originalPriceEl.find('[data-original-price]').text("".concat(tier.original_price));
4542}else{
4543originalPriceEl.css('display', 'none');
4544}
4545var featuresEle=priceContainer.find('[data-features]');
4546var features_list='';
4547tier.features_desc.forEach(function (element){
4548features_list +="<li>";
4549if(element.icon){
4550features_list +="<i class=\"".concat(element.icon, "\"></i>");
4551}
4552if(element.feature&&!element.tooltip){
4553features_list +="<div class=\"ha-adv-pricing-table-feature-text\">".concat(element.feature, "</div>");
4554}
4555if(element.tooltip){
4556features_list +="<div class=\"ha-adv-pricing-table-feature-text ha-adv-pricing-table-feature-tooltip\">".concat(element.feature, "<span class=\"ha-adv-pricing-table-feature-tooltip-text\">").concat(element.tooltip, "</span></div>");
4557}
4558features_list +="</li>";
4559});
4560featuresEle.html("<ul>".concat(features_list, "</ul>"));
4561}
4562function sliderControl(sliderContainer, items, index){
4563var sliderTrack=sliderContainer.find('.ha-adv-pricing-table-slider-track');
4564var sliderThumb=sliderContainer.find('.ha-adv-pricing-table-slider-thumb');
4565var sliderDots=sliderContainer.find('.ha-adv-pricing-table-slider-dots-container');
4566var trackWidth=sliderTrack.outerWidth();
4567var thumbWidth=sliderThumb.outerWidth();
4568var percentage=index / (items.length - 1) * 100;
4569var position=percentage / 100 * (trackWidth - thumbWidth);
4570var withoutPointertrackWidth=trackWidth - 24;
4571var width=withoutPointertrackWidth / (items.length - 1) * index;
4572if(100==percentage){
4573sliderThumb.css('width', "calc(".concat(width, "px + 24px"));
4574}else if(0==percentage){
4575sliderThumb.css('width', "calc(24px)");
4576}else{
4577sliderThumb.css('width', "calc(".concat(width, "px + 24px"));
4578}
4579sliderDots.find('.ha-adv-pricing-table-slider-dot').each(function (i){
4580$(this).toggleClass('active', i===index);
4581});
4582}
4583function simpleSliderControl(sliderContainer, items, index){
4584var rangeWrap=sliderContainer.find('.ha-adv-pricing-table-slider-range-wrap');
4585var sliderThumb=sliderContainer.find('.ha-adv-pricing-table-slider-range-thumb');
4586var dotsContainer=sliderContainer.find('.ha-adv-pricing-table-slider-dots-container');
4587var rangerThumb=20;
4588if(sliderContainer.hasClass('style-4')){
4589rangerThumb=24;
4590}
4591var rangeWrapWidth=rangeWrap.outerWidth();
4592var thumbWidth=sliderThumb.outerWidth();
4593var percentage=index / (items.length - 1) * 100;
4594var withoutPointertrackWidth=rangeWrapWidth - rangerThumb;
4595var width=withoutPointertrackWidth / (items.length - 1) * index;
4596if(100==percentage){
4597sliderThumb.css('width', "calc(".concat(width, "px + ").concat(rangerThumb, "px"));
4598}else if(0==percentage){
4599sliderThumb.css('width', "calc(".concat(rangerThumb, "px)"));
4600}else{
4601sliderThumb.css('width', "calc(".concat(width, "px + ").concat(rangerThumb, "px"));
4602}
4603dotsContainer.find('div').each(function (i){
4604$(this).toggleClass('active', i===index);
4605});
4606}
4607advancePrice(table, tiers);
4608};
4609elementorFrontend.hooks.addAction('frontend/element_ready/ha-advanced-pricing-table.default', advancedPricingTable);
4610var SuperButton=function SuperButton($scope){
4611if(elementorFrontend.isEditMode()){
4612return;
4613}
4614var $btn_wrap=$scope.find('.ha-super-btn-stl-10');
4615if($btn_wrap.length > 0){
4616var $btn=$btn_wrap.find('button');
4617$btn.on('click', function (e){
4618e.preventDefault();
4619$btn_wrap.toggleClass("open");
4620});
4621$(document).on('click', function (e){
4622if(e.target.closest(".ha-super-btn-stl-10")){
4623return;
4624}
4625if($btn_wrap.hasClass("open")){
4626$btn_wrap.removeClass("open");
4627}});
4628$(window).on('scroll', function (){
4629if($btn_wrap.hasClass("open")){
4630$btn_wrap.removeClass("open");
4631}});
4632}};
4633elementorFrontend.hooks.addAction('frontend/element_ready/ha-super-button.default', SuperButton);
4634var AdvancedSearchWidget=function AdvancedSearchWidget($scope){
4635var $wrap=$scope.find(".ha-advanced-search-advanced-search-wrap");
4636if(!$wrap.length) return;
4637var widgetId=$wrap.attr("id")||"ha-advanced-search-advanced-search-" + Math.random().toString(16).slice(2);
4638if(!$wrap.attr("id")){
4639$wrap.attr("id", widgetId);
4640}
4641var ns=".haAdvSearch." + widgetId;
4642if($wrap.data("haAdvSearchInit")) return;
4643$wrap.data("haAdvSearchInit", true);
4644var $searchBox=$scope.find(".ha_advanced_search_search_box");
4645var $input=$scope.find(".ha_advanced_search_search_input");
4646var $button=$scope.find(".ha_advanced_search_search_button");
4647var $clearButton=$scope.find(".ha_advanced_search_clear_button");
4648var $clearButtonL4=$scope.find(".ha_advanced_search_clear_button_l4");
4649var $resultsContainer=$scope.find(".ha_advanced_search_results_container");
4650var $resultsList=$scope.find(".ha_advanced_search_results_list");
4651var $resultsFooter=$scope.find(".ha_advanced_search_results_footer");
4652var $layout3Root=$scope.closest(".ha-advanced-search-search-layout-layout-3");
4653if(!$layout3Root.length&&$scope.hasClass("ha-advanced-search-search-layout-layout-3")){
4654$layout3Root=$scope;
4655}
4656var isLayout3=$layout3Root.length > 0||$scope.find(".ha_advanced_search_layout3_shell").length > 0;
4657var $layout4Root=$scope.closest(".ha-advanced-search-search-layout-layout-4");
4658if(!$layout4Root.length&&$scope.hasClass("ha-advanced-search-search-layout-layout-4")){
4659$layout4Root=$scope;
4660}
4661var isLayout4 = !isLayout3&&($layout4Root.length > 0||$scope.find(".ha_advanced_search_layout4_shell").length > 0);
4662var isLayout2 = !isLayout3&&!isLayout4&&$scope.find(".ha_advanced_search_results-container").length > 0;
4663var $searchTermDisplay=$scope.find('[id^="ha-advanced-search-search-term-display-"]');
4664var $categorySelect=$scope.find(".ha_advanced_search_category_select");
4665var $tagSelect=$scope.find(".ha_advanced_search_tag_select");
4666var $popularKeywords=$scope.find(".ha-advanced-search-keyword, .ha_advanced_search_layout3_popular_item");
4667var $layout3Shell=$scope.find(".ha_advanced_search_layout3_shell");
4668var $layout3Trigger=$scope.find(".ha_advanced_search_search-trigger");
4669var $layout3InitialInput=$scope.find(".ha_advanced_search_search-input-initial");
4670var $layout3Close=$scope.find(".ha_advanced_search_search-close");
4671var $layout3Curtain=$scope.find(".ha_advanced_search_curtain");
4672var $layout3ResultsBlock=$scope.find(".ha_advanced_search_layout3_results_block");
4673var $layout3PopularBlock=$scope.find(".ha_advanced_search_layout3_popular_search");
4674var layout3ClosedAt=0;
4675var $layout4Shell=$scope.find(".ha_advanced_search_layout4_shell");
4676var $layout4Trigger=$layout4Shell.find(".ha_advanced_search_search-trigger");
4677var $layout4InitialInput=$layout4Shell.find(".ha_advanced_search_search-input-initial");
4678var $layout4Panel=$layout4Shell.find(".ha_advanced_search_search-panel");
4679var $layout4Close=$layout4Shell.find(".ha_advanced_search_search-close");
4680var $layout4InputHolder=$layout4Shell.find(".ha_advanced_search_search-input-holder");
4681var $layout4ResultCount=$layout4Shell.find('[id^="ha-advanced-search-result-count-"]');
4682var $dateSelect=$scope.find(".ha_advanced_search_date_select");
4683var $dateRangeWrap=$scope.find(".ha_advanced_search_date_range");
4684var $dateFrom=$scope.find(".ha_advanced_search_date_from");
4685var $dateTo=$scope.find(".ha_advanced_search_date_to");
4686var $dateIcons=$scope.find(".ha_advanced_search_date_icon");
4687var dateMode="all";
4688var dateFromVal="";
4689var dateToVal="";
4690var layout3SuppressCloseUntil=0;
4691function suppressLayout3Close(ms){
4692layout3SuppressCloseUntil=Date.now() + (ms||800);
4693}
4694function isLayout3CloseSuppressed(){
4695return Date.now() < layout3SuppressCloseUntil;
4696}
4697$(document).off(ns);
4698$scope.off(ns);
4699$resultsContainer.off(ns);
4700$input.off(ns);
4701$button.off(ns);
4702$clearButton.off(ns);
4703$clearButtonL4.off(ns);
4704$categorySelect.off(ns);
4705$tagSelect.off(ns);
4706$popularKeywords.off(ns);
4707$searchBox.off(ns);
4708$dateSelect.off(ns);
4709$dateFrom.off(ns);
4710$dateTo.off(ns);
4711$dateRangeWrap.off(ns);
4712$dateIcons.off(ns);
4713var searchTerm="";
4714var currentPage=1;
4715var totalPages=1;
4716var searchTimeout=null;
4717var isLoadingAll=false;
4718var selectedCategory="";
4719var selectedTag="";
4720var selectedPageId="";
4721var lastTrackedTerm="";
4722var lastTrackedAt=0;
4723var justCleared=false;
4724var justClearedTimer=null;
4725var settings={
4726postTypes: JSON.parse($wrap.attr("data-post-types")||'["post","page"]'),
4727initialResultsCount: parseInt($wrap.attr("data-initial-results-count"), 10)||5,
4728showContentImage: $wrap.attr("data-show-content-image")==="true",
4729notFoundText: $wrap.attr("data-not-found-text")||"No results found",
4730loadMoreText: $wrap.attr("data-load-more-text")||"Load More"
4731};
4732var pageHasTags=$wrap.attr("data-page-has-tags")==="true";
4733var showDateFilter=$wrap.attr("data-show-date-filter")==="true";
4734function showResults(){
4735if($dateRangeWrap.length) $dateRangeWrap.hide();
4736$resultsContainer.addClass("ha_advanced_search_visible");
4737}
4738function hideResults(){
4739$resultsContainer.removeClass("ha_advanced_search_visible");
4740}
4741function showLayout3Popular(){
4742if(!isLayout3) return;
4743if(!$layout3PopularBlock.length) return;
4744$resultsContainer.addClass("ha_advanced_search_visible");
4745$layout3PopularBlock.show();
4746$layout3ResultsBlock.hide();
4747$resultsFooter.hide();
4748}
4749function showLayout3ResultsPanel(){
4750if(!isLayout3) return;
4751if(!$layout3ResultsBlock.length) return;
4752$resultsContainer.addClass("ha_advanced_search_visible");
4753$layout3PopularBlock.hide();
4754$layout3ResultsBlock.show();
4755$resultsFooter.show();
4756}
4757function openLayout3Search(){
4758if(!isLayout3||!$layout3Shell.length) return;
4759var $container=$layout3Shell.find('.ha_advanced_search_search-container');
4760var rect=$layout3Shell.get(0).getBoundingClientRect();
4761var offsetTop=rect.top;
4762$container.css({
4763position: 'fixed',
4764top: offsetTop + 'px',
4765width: '100vw',
4766left: '0',
4767'z-index': '9999'
4768});
4769document.body.style.overflow='hidden';
4770$layout3Root.addClass("ha_advanced_search_search-active");
4771$scope.addClass("ha_advanced_search_search-active");
4772if(document.activeElement!==$input.get(0)){
4773setTimeout(function (){
4774var _$input$get;
4775(_$input$get=$input.get(0))===null||_$input$get===void 0||_$input$get.focus();
4776searchTerm=($input.val()||"").trim();
4777if(searchTimeout) clearTimeout(searchTimeout);
4778searchTimeout=setTimeout(function (){
4779if(searchTerm.length >=2) performSearch();else resetResultsUI();
4780}, 300);
4781}, 120);
4782}else{
4783searchTerm=($input.val()||"").trim();
4784if(searchTimeout) clearTimeout(searchTimeout);
4785searchTimeout=setTimeout(function (){
4786if(searchTerm.length >=2) performSearch();else resetResultsUI();
4787}, 300);
4788}}
4789function closeLayout3Search(){
4790if(!isLayout3||!$layout3Shell.length) return;
4791document.body.style.overflow='visible';
4792$layout3Root.removeClass("ha_advanced_search_search-active");
4793$scope.removeClass("ha_advanced_search_search-active");
4794}
4795function openLayout4Search(){
4796if(!isLayout4||!$layout4Panel.length) return;
4797$layout4Panel.addClass("opened");
4798$layout4Root.addClass("ha_advanced_search_search-active");
4799$scope.addClass("ha_advanced_search_search-active");
4800setTimeout(function (){
4801$input.trigger("focus");
4802}, 80);
4803}
4804function closeLayout4Search(){
4805if(!isLayout4||!$layout4Panel.length) return;
4806$layout4Panel.removeClass("opened");
4807$layout4Root.removeClass("ha_advanced_search_search-active");
4808$scope.removeClass("ha_advanced_search_search-active");
4809$layout4InputHolder.removeClass("has-value");
4810$input.val("");
4811resetResultsUI();
4812}
4813function updateLayout4ResultCount(count){
4814if(!isLayout4||!$layout4ResultCount.length) return;
4815var safeCount=parseInt(count, 10);
4816if(isNaN(safeCount)||safeCount < 0) safeCount=0;
4817$layout4ResultCount.text(String(safeCount));
4818}
4819function showDateRange(){
4820hideResults();
4821$dateRangeWrap.show();
4822}
4823function hideDateRange(){
4824$dateRangeWrap.hide();
4825}
4826function updateViewAllVisibility(){
4827var $viewAll=$scope.find(".ha_advanced_search_results_footer");
4828if(!$viewAll.length) return;
4829var shouldShow=totalPages > 1&&currentPage < totalPages&&!isLoadingAll;
4830if(shouldShow) $viewAll.show();else $viewAll.hide();
4831}
4832function clearResultsList(){
4833if(isLayout2){
4834$resultsContainer.find(".ha_advanced_search_result-item, .ha_advanced_search_result_item, .ha_advanced_search_no_results").remove();
4835}else{
4836$resultsList.empty();
4837}}
4838function resetResultsUI(){
4839hideResults();
4840clearResultsList();
4841totalPages=1;
4842currentPage=1;
4843isLoadingAll=false;
4844updateLayout4ResultCount(0);
4845updateViewAllVisibility();
4846if(isLayout3&&($layout3Root.hasClass("ha_advanced_search_search-active")||$scope.hasClass("ha_advanced_search_search-active"))){
4847showLayout3Popular();
4848}}
4849function toggleLayout3ResultsHeading(showHeading){
4850if(!isLayout3) return;
4851var $heading=$resultsContainer.find(".ha_advanced_search_search-results > h3").first();
4852if(!$heading.length) return;
4853if(showHeading) $heading.show();else $heading.hide();
4854}
4855function searchIfReady(){
4856if(searchTerm&&searchTerm.length >=2){
4857resetResultsUI();
4858performSearch();
4859}else{
4860resetResultsUI();
4861}}
4862function trackKeyword(keyword){
4863keyword=(keyword||"").trim();
4864if(!keyword) return;
4865if(keyword.length < 2) return;
4866var now=Date.now();
4867if(keyword===lastTrackedTerm&&now - lastTrackedAt < 15000) return;
4868lastTrackedTerm=keyword;
4869lastTrackedAt=now;
4870$.ajax({
4871url: HappyProLocalize.ajax_url,
4872type: "POST",
4873dataType: "json",
4874data: {
4875action: "ha_advanced_search_track_keyword",
4876nonce: HappyProLocalize.nonce,
4877keyword: keyword
4878}});
4879}
4880function buildAjaxData(page){
4881var data={
4882action: "ha_advanced_search",
4883nonce: HappyProLocalize.nonce,
4884search_term: searchTerm,
4885post_types: settings.postTypes,
4886page: page,
4887initial_results_count: settings.initialResultsCount,
4888show_content_image: settings.showContentImage,
4889date_mode: dateMode
4890};
4891if(dateMode==="custom"){
4892data.date_from=dateFromVal;
4893data.date_to=dateToVal;
4894}
4895if(selectedPageId){
4896data.page_id=selectedPageId;
4897return data;
4898}
4899if(selectedCategory) data.category=selectedCategory;
4900if(selectedTag) data.tag=selectedTag;
4901return data;
4902}
4903function fetchResults(page){
4904return $.ajax({
4905url: HappyProLocalize.ajax_url,
4906type: "POST",
4907dataType: "json",
4908data: buildAjaxData(page)
4909});
4910}
4911function renderResultItem(result){
4912var isMedia=result.post_type&&String(result.post_type).toLowerCase()==="media"||result.mime_type||result.media_url;
4913var displayTitle=isMedia ? result.media_name||result.media_url||result.title:result.title;
4914var linkUrl=isMedia&&result.media_url ? result.media_url:result.permalink;
4915var itemHtml="";
4916if(isLayout2){
4917var excerptText = !isMedia&&result.excerpt ? result.excerpt:"";
4918var iconHtml=result.image ? "<img src=\"".concat(result.image, "\" alt=\"").concat(displayTitle, "\" style=\"width: 100%; height: 100%; object-fit: cover; border-radius: 0.5rem;\" />"):"<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"></circle><polyline points=\"21 15 16 10 5 21\"></polyline></svg>";
4919itemHtml="\n\t\t\t\t<div class=\"ha_advanced_search_result_item ha_advanced_search_result-item\" data-url=\"".concat(linkUrl, "\" data-target=\"").concat(isMedia ? "_blank":"_self", "\">\n\t\t\t\t\t<div class=\"ha_advanced_search_result-img\">").concat(iconHtml, "</div>\n\t\t\t\t\t<div class=\"ha_advanced_search_result-info\">\n\t\t\t\t\t\t<h3>").concat(displayTitle, "</h3>\n\t\t\t\t\t\t").concat(excerptText ? "<p>".concat(excerptText, "</p>"):"", "\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t");
4920}else if(isLayout3){
4921itemHtml="\n\t\t\t\t<a href=\"".concat(linkUrl, "\" class=\"ha_advanced_search_result_item ha_advanced_search_result-item\" ").concat(isMedia ? 'target="_blank"':"", ">\n\t\t\t\t\t<h3 class=\"ha_advanced_search_result-title\">").concat(displayTitle, "</h3>\n\t\t\t\t</a>\n\t\t\t");
4922}else if(isLayout4){
4923var imageHtml=result.image ? "<img src=\"".concat(result.image, "\" alt=\"").concat(displayTitle, "\" />"):"<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"></circle><polyline points=\"21 15 16 10 5 21\"></polyline></svg>";
4924itemHtml="\n\t\t\t\t<a href=\"".concat(linkUrl, "\" class=\"ha_advanced_search_search-panel-item ha_advanced_search_result_item\" ").concat(isMedia ? 'target="_blank"':"", ">\n\t\t\t\t\t<div class=\"ha_advanced_search_image-box\">").concat(imageHtml, "</div>\n\t\t\t\t\t<div class=\"ha_advanced_search_text-holder\">\n\t\t\t\t\t\t<strong class=\"ha_advanced_search_result-title\">").concat(displayTitle, "</strong>\n\t\t\t\t\t\t<span class=\"ha_advanced_search_result-subtitle\">").concat(isMedia ? "Media File":result.post_type||"", "</span>\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t");
4925}else{
4926itemHtml="\n\t\t\t\t<a href=\"".concat(linkUrl, "\" class=\"ha_advanced_search_result_item\" ").concat(isMedia ? 'target="_blank"':"", ">\n\t\t\t\t\t").concat(result.image ? "<div class=\"ha_advanced_search_result_icon_wrapper\"><img src=\"".concat(result.image, "\" alt=\"").concat(displayTitle, "\" style=\"width: 100%; height: 100%; object-fit: cover; border-radius: 0.5rem;\" /></div>"):"<div class=\"ha_advanced_search_result_icon_wrapper\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"></circle><polyline points=\"21 15 16 10 5 21\"></polyline></svg></div>", "\n\t\t\t\t\t<div class=\"ha_advanced_search_result_content\">\n\t\t\t\t\t\t<div class=\"ha_advanced_search_result_name\" title=\"").concat(displayTitle, "\">").concat(displayTitle, "</div>\n\t\t\t\t\t\t<div class=\"ha_advanced_search_result_category\">").concat(isMedia ? "Media File":result.post_type||"", "</div>\n\t\t\t\t\t\t").concat(!isMedia&&result.excerpt ? "<div class=\"ha_advanced_search_result_excerpt\">".concat(result.excerpt, "</div>"):"", "\n\t\t\t\t\t</div>\n\t\t\t\t</a>\n\t\t\t");
4927}
4928$resultsList.append(itemHtml);
4929}
4930function onSearchSuccess(response){
4931if(!response||!response.success) return;
4932var results=response.data&&response.data.results ? response.data.results:[];
4933var pages=response.data&&typeof response.data.pages!=="undefined" ? response.data.pages:1;
4934totalPages=parseInt(pages, 10)||1;
4935currentPage=1;
4936isLoadingAll=false;
4937clearResultsList();
4938if(results.length > 0){
4939results.forEach(function (result){
4940renderResultItem(result);
4941});
4942updateLayout4ResultCount(response.data.found);
4943showLayout3ResultsPanel();
4944toggleLayout3ResultsHeading(true);
4945if(isLayout2&&$resultsFooter.length){
4946$resultsFooter.appendTo($resultsContainer);
4947}
4948showResults();
4949var $viewAllLink=$scope.find(".ha_advanced_search_view_all_link");
4950if($viewAllLink.length){
4951var searchUrl=new URL(window.location.href);
4952searchUrl.searchParams.set("s", searchTerm);
4953if(selectedPageId){
4954searchUrl.searchParams.set("page_id", selectedPageId);
4955searchUrl.searchParams["delete"]("category");
4956searchUrl.searchParams["delete"]("tag");
4957}else{
4958if(selectedCategory) searchUrl.searchParams.set("category", selectedCategory);else searchUrl.searchParams["delete"]("category");
4959if(selectedTag) searchUrl.searchParams.set("tag", selectedTag);else searchUrl.searchParams["delete"]("tag");
4960searchUrl.searchParams["delete"]("page_id");
4961}
4962searchUrl.searchParams.set("date_mode", dateMode);
4963if(dateMode==="custom"){
4964if(dateFromVal) searchUrl.searchParams.set("date_from", dateFromVal);else searchUrl.searchParams["delete"]("date_from");
4965if(dateToVal) searchUrl.searchParams.set("date_to", dateToVal);else searchUrl.searchParams["delete"]("date_to");
4966}else{
4967searchUrl.searchParams["delete"]("date_from");
4968searchUrl.searchParams["delete"]("date_to");
4969}
4970$viewAllLink.attr("href", searchUrl.toString());
4971}
4972updateViewAllVisibility();
4973}else{
4974if(isLayout2){
4975$resultsFooter.before("<div class=\"ha_advanced_search_no_results\">".concat(settings.notFoundText, "</div>"));
4976}else{
4977$resultsList.html("<div class=\"ha_advanced_search_no_results\">".concat(settings.notFoundText, "</div>"));
4978}
4979showLayout3ResultsPanel();
4980toggleLayout3ResultsHeading(false);
4981updateLayout4ResultCount(0);
4982showResults();
4983totalPages=1;
4984updateViewAllVisibility();
4985}}
4986function onSearchError(xhr, status, error){
4987console.error("Search error:", error);
4988$resultsList.html("<div class=\"ha_advanced_search_no_results\">".concat(HappyProLocalize.strings&&HappyProLocalize.strings.no_results ? HappyProLocalize.strings.no_results:"No results found", "</div>"));
4989showLayout3ResultsPanel();
4990toggleLayout3ResultsHeading(false);
4991updateLayout4ResultCount(0);
4992totalPages=1;
4993updateViewAllVisibility();
4994}
4995function onSearchComplete(){
4996$button.prop("disabled", false);
4997if(document.activeElement!==$input.get(0)&&$input.is(":visible")){
4998setTimeout(function (){
4999var _$input$get2;
5000(_$input$get2=$input.get(0))===null||_$input$get2===void 0||_$input$get2.focus();
5001var val=$input.val();
5002if($input.get(0).setSelectionRange){
5003$input.get(0).setSelectionRange(val.length, val.length);
5004}}, 50);
5005}}
5006function performSearch(){
5007if(!searchTerm) return;
5008$button.prop("disabled", true);
5009$searchTermDisplay.text(searchTerm);
5010currentPage=1;
5011isLoadingAll=false;
5012fetchResults(currentPage).done(onSearchSuccess).fail(onSearchError).always(onSearchComplete);
5013trackKeyword(searchTerm);
5014}
5015function loadAllPages($link){
5016if(!searchTerm){
5017searchTerm=($input.val()||"").trim();
5018}
5019if(!searchTerm&&$link&&$link.length){
5020try {
5021var linkUrl=new URL($link.attr("href"), window.location.href);
5022searchTerm=(linkUrl.searchParams.get("s")||"").trim();
5023} catch (err){}}
5024if(!searchTerm) return;
5025if(totalPages <=1) return;
5026if(isLoadingAll) return;
5027isLoadingAll=true;
5028if($link&&$link.length){
5029$link.addClass("ha_advanced_search_is_loading").attr("aria-disabled", "true");
5030}
5031var _loadNext=function loadNext(){
5032var nextPage=currentPage + 1;
5033if(nextPage > totalPages){
5034isLoadingAll=false;
5035if($link&&$link.length){
5036$link.removeClass("ha_advanced_search_is_loading").removeAttr("aria-disabled");
5037}
5038updateViewAllVisibility();
5039return;
5040}
5041fetchResults(nextPage).done(function (response){
5042if(response&&response.success&&response.data&&Array.isArray(response.data.results)){
5043response.data.results.forEach(function (result){
5044renderResultItem(result);
5045});
5046if(isLayout4){
5047updateLayout4ResultCount($resultsList.find(".ha_advanced_search_result_item").length);
5048}
5049if(typeof response.data.pages!=="undefined"){
5050totalPages=parseInt(response.data.pages, 10)||totalPages;
5051}}
5052}).always(function (){
5053currentPage=nextPage;
5054_loadNext();
5055});
5056};
5057_loadNext();
5058}
5059function setJustCleared(){
5060justCleared=true;
5061if(justClearedTimer) clearTimeout(justClearedTimer);
5062justClearedTimer=setTimeout(function (){
5063justCleared=false;
5064}, 300);
5065}
5066$input.on("input" + ns, function (e){
5067searchTerm=$(e.currentTarget).val().trim();
5068if(searchTerm.length > 0){
5069if(isLayout4){
5070$clearButtonL4.addClass("ha_advanced_search_visible is-visible").css("display", "flex");
5071$('.ha_advanced_search_layout4_hidden_search_button').hide();
5072}else{
5073$clearButton.show();
5074}}else{
5075if(isLayout4){
5076$clearButtonL4.removeClass("ha_advanced_search_visible is-visible").hide();
5077$('.ha_advanced_search_layout4_hidden_search_button').show();
5078updateLayout4ResultCount(0);
5079}else{
5080$clearButton.hide();
5081}}
5082if(searchTimeout) clearTimeout(searchTimeout);
5083if(isLayout4){
5084$layout4InputHolder.toggleClass("has-value", searchTerm.length > 0);
5085}
5086searchTimeout=setTimeout(function (){
5087if(searchTerm.length >=2) performSearch();else resetResultsUI();
5088}, 300);
5089});
5090$input.on("keypress" + ns, function (e){
5091if(e.which===13){
5092e.preventDefault();
5093if(!isLayout3&&!isLayout4){
5094$scope.find(".ha_advanced_search_search_button").first().trigger("click");
5095return;
5096}
5097performSearch();
5098}});
5099if(isLayout3){
5100$layout3Trigger.on("click" + ns, function (e){
5101if(Date.now() - layout3ClosedAt < 250) return;
5102e.preventDefault();
5103e.stopPropagation();
5104openLayout3Search();
5105console.log("trigger 3 clicked");
5106});
5107$layout3InitialInput.on("focus" + ns + " click" + ns, function (e){
5108if(Date.now() - layout3ClosedAt < 250) return;
5109e.preventDefault();
5110e.stopPropagation();
5111openLayout3Search();
5112});
5113$layout3Close.on("click" + ns, function (e){
5114e.preventDefault();
5115e.stopPropagation();
5116layout3ClosedAt=Date.now();
5117closeLayout3Search();
5118hideResults();
5119if(document.activeElement) $(document.activeElement).trigger("blur");
5120});
5121$layout3Curtain.on("click" + ns, function (){
5122layout3ClosedAt=Date.now();
5123closeLayout3Search();
5124hideResults();
5125});
5126$input.on("focus" + ns, function (){
5127if(Date.now() - layout3ClosedAt < 250) return;
5128openLayout3Search();
5129});
5130if(!searchTerm||searchTerm.length < 2){
5131showLayout3Popular();
5132}
5133$(document).on("keydown" + ns, function (e){
5134if(e.key==="Escape"||e.keyCode===27){
5135layout3ClosedAt=Date.now();
5136closeLayout3Search();
5137hideResults();
5138hideDateRange();
5139}});
5140$categorySelect.off("pointerdown" + ns + " mousedown" + ns + " touchstart" + ns + " focus" + ns + " click" + ns).on("pointerdown" + ns + " mousedown" + ns + " touchstart" + ns + " focus" + ns + " click" + ns, function (e){
5141suppressLayout3Close(1200);
5142e.stopPropagation();
5143});
5144$categorySelect.off("blur" + ns).on("blur" + ns, function (){
5145suppressLayout3Close(250);
5146});
5147$scope.find(".ha_advanced_search_search-category-container").off("pointerdown" + ns + " mousedown" + ns + " click" + ns).on("pointerdown" + ns + " mousedown" + ns + " click" + ns, function (e){
5148suppressLayout3Close(1200);
5149e.stopPropagation();
5150});
5151}
5152if(isLayout4){
5153$layout4Trigger.on("click" + ns, function (e){
5154e.preventDefault();
5155e.stopPropagation();
5156openLayout4Search();
5157});
5158$layout4InitialInput.on("focus" + ns + " click" + ns, function (e){
5159e.preventDefault();
5160e.stopPropagation();
5161openLayout4Search();
5162});
5163$layout4Close.on("click" + ns, function (e){
5164e.preventDefault();
5165e.stopPropagation();
5166closeLayout4Search();
5167hideResults();
5168});
5169$(document).on("keydown" + ns, function (e){
5170if(e.key==="Escape"||e.keyCode===27){
5171closeLayout4Search();
5172hideResults();
5173}});
5174}
5175var clearEvt=window.PointerEvent ? "pointerdown":"mousedown touchstart";
5176var clearEvtNs=clearEvt.split(" ").map(function (ev){
5177return ev + ns;
5178}).join(" ");
5179function handleClearButton($btn){
5180var isLayout4=arguments.length > 1&&arguments[1]!==undefined ? arguments[1]:false;
5181$btn.off(clearEvtNs).on(clearEvtNs, function (e){
5182e.preventDefault();
5183e.stopPropagation();
5184e.stopImmediatePropagation();
5185setJustCleared();
5186$input.val("");
5187searchTerm="";
5188currentPage=1;
5189totalPages=1;
5190isLoadingAll=false;
5191selectedCategory="";
5192selectedTag="";
5193selectedPageId="";
5194if($categorySelect.length) $categorySelect.val("all");
5195if($tagSelect&&$tagSelect.length) $tagSelect.val("all");
5196dateMode="all";
5197dateFromVal="";
5198dateToVal="";
5199if($dateSelect.length) $dateSelect.val("all");
5200hideDateRange();
5201if($dateFrom.length) $dateFrom.val("");
5202if($dateTo.length) $dateTo.val("");
5203resetResultsUI();
5204if(isLayout4){
5205$btn.removeClass("ha_advanced_search_visible is-visible").hide();
5206updateLayout4ResultCount(0);
5207}else{
5208$btn.hide();
5209}});
5210}
5211handleClearButton($clearButton, false);
5212handleClearButton($clearButtonL4, true);
5213$categorySelect.on("change" + ns, function (e){
5214var val=$(e.currentTarget).val()||"all";
5215selectedCategory="";
5216selectedPageId="";
5217if(val==="all"){
5218}else if(val.indexOf("cat:")===0){
5219selectedCategory=val.replace("cat:", "");
5220}else if(val.indexOf("page:")===0){
5221selectedPageId=val.replace("page:", "");
5222if(!pageHasTags){
5223selectedTag="";
5224if($tagSelect.length) $tagSelect.val("all");
5225}}
5226searchIfReady();
5227});
5228$tagSelect.on("change" + ns, function (){
5229var val=$(this).val()||"all";
5230selectedTag=val!=="all" ? val:"";
5231searchIfReady();
5232});
5233$popularKeywords.on("click" + ns, function (e){
5234e.preventDefault();
5235var keyword=$(e.currentTarget).attr("data-keyword")||$(e.currentTarget).text().trim();
5236if(!keyword) return;
5237$input.val(keyword);
5238searchTerm=keyword;
5239$clearButton.show();
5240searchIfReady();
5241});
5242$input.on("focusin" + ns, function (){
5243if(isLayout3) return;
5244if(justCleared) return;
5245if($dateRangeWrap.length&&$dateRangeWrap.is(":visible")) return;
5246if(searchTerm&&searchTerm.length >=2&&$resultsList.children().length > 0){
5247showResults();
5248}});
5249$scope.on("click" + ns, ".ha_advanced_search_view_all_link", function (e){
5250if(e.ctrlKey||e.metaKey||e.shiftKey||e.altKey) return;
5251e.preventDefault();
5252console.log("View all clicked - loading all pages");
5253loadAllPages($(this));
5254});
5255if(isLayout2){
5256$resultsContainer.on("click" + ns, ".ha_advanced_search_result-item", function (){
5257var url=$(this).attr("data-url");
5258var target=$(this).attr("data-target")||"_self";
5259if(!url) return;
5260if(target==="_blank") window.open(url, "_blank");else window.location.href=url;
5261});
5262}
5263function isCustomDateReady(){
5264return dateMode!=="custom"||dateFromVal&&dateToVal;
5265}
5266if(showDateFilter){
5267$dateSelect.off("change" + ns).on("change" + ns, function (){
5268dateMode=$(this).val()||"all";
5269hideResults();
5270if(dateMode==="custom"){
5271dateFromVal="";
5272dateToVal="";
5273if($dateFrom.length) $dateFrom.val("");
5274if($dateTo.length) $dateTo.val("");
5275showDateRange();
5276return;
5277}
5278hideDateRange();
5279dateFromVal="";
5280dateToVal="";
5281if($dateFrom.length) $dateFrom.val("");
5282if($dateTo.length) $dateTo.val("");
5283searchIfReady();
5284});
5285$dateFrom.off("change" + ns).on("change" + ns, function (){
5286dateFromVal=$(this).val()||"";
5287if(dateMode==="custom"){
5288hideResults();
5289if(isCustomDateReady()){
5290hideDateRange();
5291searchIfReady();
5292}
5293return;
5294}
5295searchIfReady();
5296});
5297$dateTo.off("change" + ns).on("change" + ns, function (){
5298dateToVal=$(this).val()||"";
5299if(dateMode==="custom"){
5300hideResults();
5301if(isCustomDateReady()){
5302hideDateRange();
5303searchIfReady();
5304}
5305return;
5306}
5307searchIfReady();
5308});
5309$dateSelect.off("click" + ns + " focus" + ns).on("click" + ns + " focus" + ns, function (e){
5310e.stopPropagation();
5311var v=$(this).val()||"all";
5312if(v==="custom") showDateRange();
5313});
5314$dateRangeWrap.on("click" + ns, function (e){
5315e.stopPropagation();
5316});
5317$dateSelect.on("click" + ns, function (e){
5318e.stopPropagation();
5319});
5320}
5321$(document).off("pointerdown" + ns + ".dateRange").on("pointerdown" + ns + ".dateRange", function (e){
5322var $t=$(e.target);
5323var insideDateUi=$t.closest("#" + widgetId).length&&($t.closest($dateRangeWrap).length||$t.closest($dateSelect).length||$t.closest(".ha_advanced_search_date_input_wrap").length||$t.closest(".ha_advanced_search_date_icon").length||$t.is(".ha_advanced_search_date_from, .ha_advanced_search_date_to"));
5324var insideWidget=$t.closest("#" + widgetId).length;
5325if(insideWidget&&!insideDateUi&&$dateRangeWrap.is(":visible")){
5326hideDateRange();
5327}});
5328$(document).on("click" + ns, function (e){
5329var $t=$(e.target);
5330if(isLayout3){
5331if($t.closest("#" + widgetId + " .ha_advanced_search_search-container").length||$t.closest("#" + widgetId + " .ha_advanced_search_results_container").length||$t.closest("#" + widgetId + " .ha_advanced_search_results_footer").length||$t.closest("#" + widgetId + " .ha_advanced_search_search-category-container").length||$t.is(".ha_advanced_search_category_select, .ha_advanced_search_search-category-select")||$categorySelect.length&&document.activeElement===$categorySelect[0]){
5332return;
5333}
5334if(!$t.closest("#" + widgetId).length){
5335layout3ClosedAt=Date.now();
5336closeLayout3Search();
5337hideResults();
5338hideDateRange();
5339}
5340return;
5341}
5342if(!$t.closest("#" + widgetId).length){
5343if(isLayout4){
5344closeLayout4Search();
5345}
5346hideResults();
5347hideDateRange();
5348}});
5349$dateFrom.on("pointerdown" + ns, function (){
5350if(this.showPicker){
5351try {
5352this.showPicker();
5353} catch (e){}}
5354});
5355$dateTo.on("pointerdown" + ns, function (){
5356if(this.showPicker){
5357try {
5358this.showPicker();
5359} catch (e){}}
5360});
5361$dateIcons.on("pointerdown" + ns, function (e){
5362e.preventDefault();
5363e.stopPropagation();
5364var $inp=$(this).siblings("input")[0];
5365if(!$inp) return;
5366$inp.focus();
5367if($inp.showPicker){
5368try {
5369$inp.showPicker();
5370} catch (err){}}else{
5371$inp.click();
5372}});
5373$(document).off("click" + ns, "#" + widgetId + " .ha_advanced_search_search_button").on("click" + ns, "#" + widgetId + " .ha_advanced_search_search_button", function (e){
5374e.preventDefault();
5375var $widget=$(this).closest(".ha-advanced-search-advanced-search-wrap");
5376var s=($widget.find(".ha_advanced_search_search_input").val()||"").trim();
5377var emptySearchText=$widget.data("empty-search-text")||"Please enter a search term";
5378if(!s){
5379$widget.find(".ha_advanced_search_search_input").focus().addClass("ha_advanced_search_input_error");
5380showButtonTooltip($widget.find(".ha_advanced_search_search_button"), emptySearchText);
5381return;
5382}
5383var rawCategory=$widget.find(".ha_advanced_search_category_select").val()||"all";
5384var pageId="";
5385if(rawCategory.indexOf("page:")===0){
5386pageId=rawCategory.replace("page:", "");
5387}
5388var date_mode=$widget.find(".ha_advanced_search_date_select").val()||"all";
5389var date_from="";
5390var date_to="";
5391if(date_mode==="custom"){
5392date_from=$widget.find(".ha_advanced_search_date_from").val()||"";
5393date_to=$widget.find(".ha_advanced_search_date_to").val()||"";
5394}
5395var post_types=$widget.data("post-types")||["post", "page"];
5396if(!Array.isArray(post_types)){
5397try {
5398post_types=JSON.parse(post_types);
5399} catch (err){
5400post_types=["post", "page"];
5401}}
5402var initialResultsCount=parseInt($widget.data("initial-results-count"), 10)||6;
5403var params=[];
5404params.push("s=" + encodeURIComponent(s));
5405params.push("advs=" + encodeURIComponent(s));
5406params.push("post_type=" + post_types.map(function (pt){
5407return encodeURIComponent(pt);
5408}).join(","));
5409params.push("initial_results_count=" + encodeURIComponent(initialResultsCount));
5410params.push("per_page=" + encodeURIComponent(initialResultsCount));
5411if(rawCategory&&rawCategory!=="all"){
5412params.push("category=" + encodeURIComponent(rawCategory));
5413}
5414if(pageId){
5415params.push("page_id=" + encodeURIComponent(pageId));
5416}
5417if(date_mode){
5418params.push("date_mode=" + encodeURIComponent(date_mode));
5419}
5420if(date_from){
5421params.push("date_from=" + encodeURIComponent(date_from));
5422}
5423if(date_to){
5424params.push("date_to=" + encodeURIComponent(date_to));
5425}
5426var siteBase="/";
5427if(typeof HappyProLocalize!=="undefined"&&HappyProLocalize.ajax_url){
5428siteBase=HappyProLocalize.ajax_url.replace(/\/wp-admin\/admin-ajax\.php.*$/, "/");
5429}
5430var url=siteBase + "?" + params.join("&");
5431window.open(url, "_blank");
5432});
5433function showButtonTooltip($button, text){
5434$button.find(".ha_advanced_search_btn_tooltip").remove();
5435var tooltip=$('<span class="ha_advanced_search_btn_tooltip">
5435' + text + "</span>");
5436$button.append(tooltip);
5437setTimeout(function (){
5438tooltip.addClass("ha_advanced_search_show_tooltip");
5439}, 10);
5440setTimeout(function (){
5441tooltip.removeClass("ha_advanced_search_show_tooltip");
5442setTimeout(function (){
5443tooltip.remove();
5444}, 200);
5445}, 2500);
5446}};
5447elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-search.default", AdvancedSearchWidget);
5448});
5449})(jQuery, Happy, window);

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.