File: /home/paksjuts/apkhoop.com/wp-content/plugins/hello-plus/assets/js/ehp-header-fe.js
"use strict";(self.webpackChunkhello_plus=self.webpackChunkhello_plus||[]).push([[802],{7682:function(e,t,s){s.r(t),s.d(t,{default:function(){return n}});class n extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{main:".ehp-header",navigationToggle:".ehp-header__button-toggle",dropdownToggle:".ehp-header__dropdown-toggle",navigation:".ehp-header__navigation",dropdown:".ehp-header__dropdown",wpAdminBar:"#wpadminbar",menuCartItems:".ehp-header__menu-cart-items",menuCartButton:".ehp-header__menu-cart-button",menuCartClose:".ehp-header__menu-cart-close",floatingBars:".e-floating-bars.has-vertical-position-top"},constants:{mobilePortrait:767,tabletPortrait:1024,mobile:"mobile",tablet:"tablet",desktop:"desktop",dataScrollBehavior:"data-scroll-behavior",dataBehaviorFloat:"data-behavior-float",scrollUp:"scroll-up",always:"always",none:"none",no:"no",submenuCloseDelay:500}}}getDefaultElements(){const e=this.getSettings("selectors");return{main:this.$element[0].querySelector(e.main),navigationToggle:this.$element[0].querySelector(e.navigationToggle),dropdownToggle:this.$element[0].querySelectorAll(e.dropdownToggle),navigation:this.$element[0].querySelector(e.navigation),dropdown:this.$element[0].querySelector(e.dropdown),wpAdminBar:document.querySelector(e.wpAdminBar),menuCartItems:this.$element[0].querySelectorAll(e.menuCartItems),menuCartButton:this.$element[0].querySelectorAll(e.menuCartButton),menuCartClose:this.$element[0].querySelectorAll(e.menuCartClose),floatingBars:document.querySelector(e.floatingBars)}}bindEvents(){this.elements.navigationToggle&&this.elements.navigationToggle.addEventListener("click",()=>this.toggleNavigation()),this.elements.dropdownToggle.length>0&&this.elements.dropdownToggle.forEach(e=>{const t=e.closest(".menu-item-has-children");t&&(t.addEventListener("mouseenter",e=>{this.isResponsiveBreakpoint()||this.openSubMenuOnHover(e)}),t.addEventListener("mouseleave",e=>{this.isResponsiveBreakpoint()||this.closeSubMenuOnHover(e)}),t.addEventListener("mousemove",e=>{this.isResponsiveBreakpoint()||this.trackMousePosition(e)}),e.addEventListener("click",e=>{this.isResponsiveBreakpoint()&&(e.preventDefault(),this.toggleSubMenu(e))}),e.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.toggleSubMenu(e))}))}),this.elements.main&&(this.elements.main.addEventListener("click",e=>this.handleCartButtonClicks(e)),window.addEventListener("resize",()=>this.onResize()),window.addEventListener("scroll",()=>this.onScroll()),document.addEventListener("click",e=>this.handleDocumentClick(e)),document.addEventListener("keydown",e=>this.handleKeydown(e)))}handleCartButtonClicks(e){const t=e.target,s=e=>t.classList.contains(e)||t.closest(`.${e}`);s("ehp-header__menu-cart-button")?this.toggleMenuCart(e):s("ehp-header__menu-cart-close")?this.handleMenuCartCloseClick(e):s("ehp-header__menu-cart-items")||this.closeOpenMenuCart()}onInit(...e){super.onInit(...e),this.initDefaultState(),this.scrollTimeout=null,this.originalBodyOverflow=document.body.style.overflow,this.submenuCloseTimeouts=new Map,this.mousePositions=new Map,this.hasFirstScrollOccurred=document.body.classList.contains("ehp-body-after-scroll"),this.userHasInteracted=!1,this.setupUserInteractionListeners(),this.checkInitialScrollPosition()}initDefaultState(){this.lastScrollY=window.scrollY;const{none:e,no:t,always:s,scrollUp:n}=this.getSettings("constants");this.handleAriaAttributesMenu(),this.handleAriaAttributesDropdown(),this.handleOffsetTop(),e===this.getDataScrollBehavior()&&t===this.getBehaviorFloat()&&this.setupInnerContainer(),n!==this.getDataScrollBehavior()&&s!==this.getDataScrollBehavior()||this.applyBodyPadding(),this.elements.menuCartItems&&this.handleInertMenuCart()}getBehaviorFloat(){const{dataBehaviorFloat:e}=this.getSettings("constants");return this.elements.main.getAttribute(e)}getDataScrollBehavior(){const{dataScrollBehavior:e}=this.getSettings("constants");return this.elements.main.getAttribute(e)}setupInnerContainer(){this.elements.main.closest(".e-con-inner")?.classList.add("e-con-inner--ehp-header"),this.elements.main.closest(".e-con")?.classList.add("e-con--ehp-header")}onResize(){this.handleAriaAttributesMenu(),this.handleOffsetTop()}onScroll(){!this.hasFirstScrollOccurred&&this.userHasInteracted&&this.handleFirstScroll();const{scrollUp:e,always:t,none:s}=this.getSettings("constants");this.scrollTimeout&&cancelAnimationFrame(this.scrollTimeout),e!==this.getDataScrollBehavior()&&t!==this.getDataScrollBehavior()||this.handleScrollDown(this.getDataScrollBehavior()),this.elements.floatingBars&&s===this.getDataScrollBehavior()&&this.elements.main.classList.contains("has-behavior-float")&&this.setFloatingBarsHeight(),this.scrollTimeout=requestAnimationFrame(()=>{this.onScrollEnd()})}onScrollEnd(){this.elements.floatingBars&&this.setFloatingBarsHeight()}handleOffsetTop(){const e=this.elements.wpAdminBar?.offsetHeight||0,t=this.elements.floatingBars;if(this.elements.main.style.setProperty("--header-wp-admin-bar-height",`${e}px`),this.elements.floatingBars){const e=this.elements.floatingBars?.offsetHeight||0;this.elements.main.style.setProperty("--header-floating-bars-height",`${e}px`),this.mutationObserver&&this.mutationObserver.disconnect();const s=new MutationObserver(()=>{const e=t.offsetHeight;this.elements.main.style.setProperty("--header-floating-bars-height",`${e}px`),this.applyBodyPadding()});this.mutationObserver=s,s.observe(t,{attributes:!0,childList:!0})}}applyBodyPadding(){const e=this.elements.main.offsetHeight,t=this.elements.floatingBars;if(t){const{none:s}=this.getSettings("constants");if(s!==this.getDataScrollBehavior())if(t.classList.contains("is-sticky")||t.classList.contains("is-hidden")){if(t.classList.contains("is-sticky")){const s=t?.offsetHeight||0;document.documentElement.style.setProperty("--ehp-body-padding-top",`${e+s}px`)}}else t.style.marginBottom=`${e}px`,document.documentElement.style.setProperty("--ehp-body-padding-top","0px")}else document.documentElement.style.setProperty("--ehp-body-padding-top",`${e}px`)}setupUserInteractionListeners(){const e=["mousedown","touchstart","keydown","wheel"],t=()=>{this.userHasInteracted=!0,e.forEach(e=>{document.removeEventListener(e,t,{passive:!0})})};e.forEach(e=>{document.addEventListener(e,t,{passive:!0})})}checkInitialScrollPosition(){const e=()=>{!this.hasFirstScrollOccurred&&window.scrollY>0&&this.handleFirstScroll()};"complete"!==document.readyState?window.addEventListener("load",e):e()}handleFirstScroll(){document.body.classList.contains("ehp-body-after-scroll")||(document.body.classList.add("ehp-body-after-scroll"),this.hasFirstScrollOccurred=!0)}handleAriaAttributesDropdown(){const e=this.getSettings("selectors");this.elements.dropdownToggle.forEach(t=>{const s=t.closest(".menu-item-has-children"),n=s?s.querySelector(e.dropdown):null;n&&n.setAttribute("aria-hidden","true")})}handleInertMenuCart(){this.elements.menuCartItems.forEach(e=>{e.setAttribute("inert","")})}handleAriaAttributesMenu(){this.isResponsiveBreakpoint()&&(this.elements.navigationToggle.setAttribute("aria-expanded","false"),this.elements.navigation.setAttribute("aria-hidden","true"))}handleDocumentClick(e){const t=e.target,s=t.closest(".ehp-header__menu-cart-button"),n=t.closest(".ehp-header__menu-cart-items");s||n||this.closeOpenMenuCart()}handleKeydown(e){"Escape"===e.key&&this.closeOpenMenuCart()}openSubMenuOnHover(e){const t=this.getSettings("selectors"),s=e.currentTarget,n=s.querySelector(t.dropdown),i=s.querySelector(t.dropdownToggle);n&&i&&(this.submenuCloseTimeouts.has(n)&&(clearTimeout(this.submenuCloseTimeouts.get(n)),this.submenuCloseTimeouts.delete(n)),this.closeAllOtherSubMenus(i),this.openSubMenu(i,n),n.addEventListener("mouseenter",()=>{this.submenuCloseTimeouts.has(n)&&(clearTimeout(this.submenuCloseTimeouts.get(n)),this.submenuCloseTimeouts.delete(n))}),n.addEventListener("mouseleave",()=>{this.closeSubMenu(i,n)}))}trackMousePosition(e){const t=e.currentTarget,s=Date.now(),n=e.clientY;if(!this.mousePositions.has(t))return void this.mousePositions.set(t,{y:n,time:s});const i=this.mousePositions.get(t);this.mousePositions.set(t,{y:n,time:s,lastY:i.y,lastTime:i.time})}isMouseMovingDown(e){const t=this.mousePositions.get(e);if(!t||!t.lastY)return!1;const s=t.time-t.lastTime,n=t.y-t.lastY;return s>0&&n>0}closeSubMenuOnHover(e){const t=this.getSettings("selectors"),s=e.currentTarget,n=s.querySelector(t.dropdown),i=s.querySelector(t.dropdownToggle);if(!n||!i)return;this.submenuCloseTimeouts.has(n)&&clearTimeout(this.submenuCloseTimeouts.get(n));const o=this.getSettings("constants"),r=this.isMouseMovingDown(s)?o.submenuCloseDelay:0;this.submenuCloseTimeouts.set(n,setTimeout(()=>{n.matches(":hover")||n.querySelector(":hover")||this.closeSubMenu(i,n),this.submenuCloseTimeouts.delete(n)},r)),this.mousePositions.delete(s)}toggleSubMenu(e){e.preventDefault();const t=this.getSettings("selectors"),s=e.target.closest(t.dropdownToggle);if(!s)return;const n=s.closest(".menu-item-has-children"),i=n?n.querySelector(t.dropdown):null;i&&("true"===i.getAttribute("aria-hidden")?(this.closeAllOtherSubMenus(s),this.openSubMenu(s,i)):this.closeSubMenu(s,i))}closeAllOtherSubMenus(e){const t=this.getSettings("selectors");Array.from(this.elements.dropdownToggle).forEach(s=>{if(s!==e&&"true"===s.getAttribute("aria-expanded")){const e=s.closest(".menu-item-has-children"),n=e?e.querySelector(t.dropdown):null;n&&this.closeSubMenu(s,n)}})}openSubMenu(e,t){e.setAttribute("aria-expanded","true"),t.setAttribute("aria-hidden","false")}closeSubMenu(e,t){e.setAttribute("aria-expanded","false"),t.setAttribute("aria-hidden","true")}handleScrollDown(e){const t=window.scrollY,s=this.elements.main.offsetHeight,n=this.elements.wpAdminBar?.offsetHeight||0,i=getComputedStyle(this.elements.main).getPropertyValue("--header-float-offset"),o=s+n+(parseInt(i,10)||0);if(t<=0)return this.elements.main.classList.remove("scroll-down"),void this.elements.main.style.removeProperty("--header-scroll-down");if(t>this.lastScrollY){this.elements.main.classList.add("scroll-down");const{scrollUp:t}=this.getSettings("constants");t===e&&this.elements.main.style.setProperty("--header-scroll-down",`${o}px`)}else this.elements.main.classList.remove("scroll-down"),this.elements.main.style.removeProperty("--header-scroll-down");this.elements.floatingBars&&requestAnimationFrame(()=>{this.setFloatingBarsHeight()}),this.lastScrollY=t}setFloatingBarsHeight(){const e=this.elements.floatingBars.getBoundingClientRect(),t=Math.max(0,Math.min(e.height,e.bottom));this.elements.main.style.setProperty("--header-floating-bars-height",`${t}px`)}isResponsiveBreakpoint(){const e=this.elements.main.getAttribute("data-responsive-breakpoint");if(!e)return!1;const{mobilePortrait:t,tabletPortrait:s}=this.getSettings("constants"),n="tablet-portrait"===e?s:t;return window.innerWidth<=n}toggleNavigation(){"true"===this.elements.navigation.getAttribute("aria-hidden")?(this.elements.navigation.setAttribute("aria-hidden","false"),this.elements.navigationToggle.setAttribute("aria-expanded","true")):(this.elements.navigation.setAttribute("aria-hidden","true"),this.elements.navigationToggle.setAttribute("aria-expanded","false"))}toggleMenuCart(e){e.preventDefault();const t=e.target.nextElementSibling;t.hasAttribute("inert")?this.openMenuCart(t):this.closeMenuCart(t),this.isResponsiveBreakpoint()&&"false"===this.elements.navigation.getAttribute("aria-hidden")&&this.toggleNavigation()}closeOpenMenuCart(){const e=this.elements.main.querySelector(".ehp-header__menu-cart-items:not([inert])");e&&this.closeMenuCart(e)}handleMenuCartCloseClick(e){e.preventDefault(),this.closeOpenMenuCart()}openMenuCart(e){e.removeAttribute("inert");const t=e.querySelector(".ehp-header__menu-cart-list");t&&this.isResponsiveBreakpoint()&&this.checkCartMenuItemsOverflow(t)&&(this.originalBodyOverflow!==document.body.style.overflow&&(this.originalBodyOverflow=document.body.style.overflow),document.body.style.overflow="hidden")}checkCartMenuItemsOverflow(e){return e.scrollHeight>e.clientHeight}closeMenuCart(e){e.setAttribute("inert",""),this.isResponsiveBreakpoint()&&(document.body.style.overflow=this.originalBodyOverflow)}}}}]);