"use strict";(self.webpackChunkhello_plus=self.webpackChunkhello_plus||[]).push([[976],{4478:function(t,e,n){n.r(e),n.d(e,{default:function(){return s}});class s extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{main:".ehp-zigzag",itemWrapper:".ehp-zigzag__item-wrapper"},constants:{entranceAnimation:"zigzag_animation",entranceAnimationAlternate:"zigzag_animation_alternate",hasEntranceAnimation:"has-entrance-animation",hasAlternateAnimation:"has-alternate-animation",none:"none",visible:"visible",hidden:"hidden"}}}getDefaultElements(){const t=this.getSettings("selectors");return{main:this.$element[0].querySelector(t.main),itemWrappers:this.$element[0].querySelectorAll(t.itemWrapper)}}bindEvents(){this.elements.itemWrappers.length>0&&this.elements.itemWrappers.forEach(t=>{t.addEventListener("animationend",this.removeAnimationClasses.bind(this))})}getResponsiveSetting(t){const e=elementorFrontend.getCurrentDeviceMode();return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(),t,"",e)}initEntranceAnimation(){const{entranceAnimation:t,entranceAnimationAlternate:e,none:n,visible:s,hidden:i}=this.getSettings("constants"),a=this.getResponsiveSetting(t);if(!a||n===a)return;const r=this.getResponsiveSetting(e),o=new IntersectionObserver(t=>{[...t].sort((t,e)=>t.target.dataset.index-e.target.dataset.index).forEach((t,e)=>{t.isIntersecting&&!t.target.classList.contains(s)&&setTimeout(()=>{t.target.classList.remove(i);const e=parseInt(t.target.dataset.index,10),n=this.hasAlternateAnimation(e)?r:a;t.target.classList.add(n)},200*e)})},{root:null,rootMargin:"0px",threshold:.5});this.elements.itemWrappers.forEach((t,e)=>{t.dataset.index=e,o.observe(t)})}removeAnimationClasses(t){const{entranceAnimation:e,entranceAnimationAlternate:n,visible:s,hidden:i}=this.getSettings("constants"),a=t.target,r=this.getResponsiveSetting(e),o=this.getResponsiveSetting(n),l=parseInt(a.dataset.index,10),m=this.hasAlternateAnimation(l)?o:r;a.classList.remove(m),a.classList.remove(i),a.classList.add(s)}hasAlternateAnimation(t){const{hasAlternateAnimation:e}=this.getSettings("constants"),n=0==(t+1)%2;return this.elements.main.classList.contains(e)&&n}onInit(...t){const{hasEntranceAnimation:e}=this.getSettings("constants");super.onInit(...t),this.elements.main&&this.elements.main.classList.contains(e)&&this.initEntranceAnimation()}}}}]);