");function me(n){let e;const[s,r]=ue({x:0,y:0}),t=a=>{const{clientX:l,clientY:o}=a;r({x:l,y:o})};return D(()=>{e=new AbortController;const a=e.signal;window.addEventListener("mousemove",t,{passive:!0,signal:a})}),F(()=>{e?.abort()}),(()=>{var a=fe(),l=a.firstChild;return P(l,()=>n.cursorText()),V(o=>{var h=!!n.active(),c=`translate3d(${s().x}px, ${s().y}px, 0)`;return h!==o.e&&a.classList.toggle("active",o.e=h),c!==o.t&&ge(a,"transform",o.t=c),o},{e:void 0,t:void 0}),a})()}function xe(){let n=[],e=[],s,r,t;const a=O(),[l,{incThreshold:o,decThreshold:h}]=te(),[c]=N(),p=f=>{n.forEach((x,d)=>{x.innerText=f[d]})},i=(f,x)=>{e.forEach((d,u)=>{u<4?d.innerText=f[u]:d.innerText=x[u-4]})};return D(()=>{const f=document.getElementsByClassName("threshold")[0],x=document.getElementsByClassName("index").item(0);n=Array.from(f.getElementsByClassName("num")),e=Array.from(x.getElementsByClassName("num")),s=f.getElementsByClassName("dec").item(0),r=f.getElementsByClassName("inc").item(0),t=new AbortController;const d=t.signal;s.addEventListener("click",h,{signal:d}),r.addEventListener("click",o,{signal:d})}),S(()=>{n.length===0||e.length===0||(i($(c.index()+1),$(a().length)),p($(l().threshold)))}),F(()=>{t?.abort()}),null}function R(n){return n.map(e=>e.i)}function ae(n,e){return R(n).slice(-e).slice(0,-1)}function X(n){return R(n).slice(-1)[0]}function U(n,e){return ne(n.slice(-1)[0].i,e)}function W(n,e){return z(n.slice(-1)[0].i,e)}function b(n,e){return e.map(s=>n[s])}function oe(n){n.forEach(e=>{e.src!==e.dataset.hiUrl&&(e.src=e.dataset.hiUrl,e.height=parseInt(e.dataset.hiImgH),e.width=parseInt(e.dataset.hiImgW))})}function ie(n){n.forEach(e=>{e.src!==e.dataset.loUrl&&(e.src=e.dataset.loUrl,e.height=parseInt(e.dataset.loImgH),e.width=parseInt(e.dataset.loImgW))})}function pe(n,e,s={attributes:!0}){new MutationObserver((r,t)=>{for(const a of r)if(e(a)){t.disconnect();break}}).observe(n,s)}function le(n){const{gsap:e,img:s,mounted:r,setIsLoading:t}=n;if(!r)return;if(s.complete){e.set(s,{opacity:1}).then(()=>{t(!1)}).catch(o=>{console.log(o)});return}t(!0);const a=new AbortController,l=a.signal;s.addEventListener("load",()=>{e.to(s,{opacity:1,ease:"power3.out",duration:.5}).then(()=>{t(!1)}).catch(o=>{console.log(o)}).finally(()=>{a.abort()})},{once:!0,passive:!0,signal:l}),s.addEventListener("error",()=>{e.set(s,{opacity:1}).then(()=>{t(!1)}).catch(o=>{console.log(o)}).finally(()=>{a.abort()})},{once:!0,passive:!0,signal:l})}function we(n){const{gsap:e,imgs:s,cordHist:r,trailLength:t,length:a,isOpen:l,navVector:o,mounted:h,setIsLoading:c}=n;if(!h||s.length===0)return;const p=R(r);if(p.length===0)return;const i=b(s,p);if(e.set(i,{x:u=>r[u].x-window.innerWidth/2,y:u=>r[u].y-window.innerHeight/2,opacity:u=>Math.max((u+1+t<=r.length?0:1)-(l?1:0),0),zIndex:u=>u,scale:.6}),!l){ie(i);return}const f=b(s,[X(r)])[0],x=[],d=[];switch(o){case"prev":x.push(U(r,a)),d.push(W(r,a));break;case"next":x.push(W(r,a)),d.push(U(r,a));break}oe(b(s,x)),e.set(b(s,d),{opacity:0}),e.set(f,{x:0,y:0,scale:1}),le({gsap:e,img:f,mounted:h,setIsLoading:c})}async function ye(n){const{gsap:e,imgs:s,cordHist:r,trailLength:t,length:a,mounted:l,setIsLoading:o,setIsAnimating:h}=n;if(!l)throw new Error("not mounted");h(!0);const c=X(r),p=s[c];oe(b(s,[c,U(r,a),W(r,a)])),le({gsap:e,img:p,mounted:l,setIsLoading:o});const i=e.timeline(),f=b(s,ae(r,t));i.to(f,{y:"+=20",ease:"power3.in",stagger:.075,duration:.3,delay:.1,opacity:0}),i.to(p,{x:0,y:0,ease:"power3.inOut",duration:.7,delay:.3}),i.to(p,{delay:.1,scale:1,ease:"power3.inOut"}),await i.then(()=>{h(!1)})}async function Ie(n){const{gsap:e,imgs:s,cordHist:r,trailLength:t,mounted:a,setIsAnimating:l}=n;if(!a)throw new Error("not mounted");l(!0);const o=X(r),h=ae(r,t);ie(b(s,[...h,o]));const c=e.timeline(),p=b(s,[o])[0],i=b(s,h);c.to(p,{scale:.6,duration:.6,ease:"power3.inOut"}),c.to(p,{delay:.3,duration:.7,ease:"power3.inOut",x:r.slice(-1)[0].x-window.innerWidth/2,y:r.slice(-1)[0].y-window.innerHeight/2}),c.to(i,{y:"-=20",ease:"power3.out",stagger:-.1,duration:.3,opacity:1}),await c.then(()=>{l(!1)})}var Ee=H("
"),Le=H("
![]()
");function be(){let n,e;const s=O(),[r]=te(),[t,{setIndex:a,setCordHist:l,setIsOpen:o,setIsAnimating:h,setIsLoading:c,setNavVector:p}]=N(),i=Array(s().length);let f={x:0,y:0},x,d=!1,u=!1;const k=async()=>{if(e!==void 0)return await e;e=ve().then(w=>{n=w,d=!0}).catch(w=>{e=void 0,console.log(w)}),await e},m=w=>{if(t.isOpen()||t.isAnimating()||!d||!u)return;const v=s().length;if(v<=0)return;const E={x:w.clientX,y:w.clientY};if(Math.hypot(E.x-f.x,E.y-f.y)>r().threshold){const C=z(t.index(),v);f=E,a(C),l(g=>[...g,{i:C,...E}].slice(-v))}},I=async()=>{d||await k(),!(t.isAnimating()||!d)&&(t.index()<0||t.cordHist().length===0||o(!0))},A=()=>{we({gsap:n,imgs:i,cordHist:t.cordHist(),trailLength:r().trailLength,length:s().length,isOpen:t.isOpen(),navVector:t.navVector(),mounted:u,setIsLoading:c})},ce=async()=>{if(!u||!d)throw new Error("not mounted or gsap not loaded");await ye({gsap:n,imgs:i,cordHist:t.cordHist(),trailLength:r().trailLength,length:s().length,mounted:u,setIsLoading:c,setIsAnimating:h})},de=async()=>{if(!u||!d)throw new Error("not mounted or gsap not loaded");p("none"),await Ie({gsap:n,imgs:i,cordHist:t.cordHist(),trailLength:r().trailLength,mounted:u,setIsAnimating:h})};return D(()=>{i.forEach((v,E)=>{E<5&&(v.src=v.dataset.loUrl),pe(v,y=>t.isOpen()||t.isAnimating()||y.attributeName!=="style"||parseFloat(v.style.opacity)!==1?!1:(E+5
{k()},{passive:!0,once:!0}),window.addEventListener("pointerdown",()=>{k()},{passive:!0,once:!0}),window.addEventListener("click",()=>{k()},{passive:!0,once:!0}),x=new AbortController;const w=x.signal;window.addEventListener("mousemove",m,{passive:!0,signal:w}),u=!0}),S(B(()=>t.cordHist(),()=>{A()},{defer:!0})),S(B(t.isOpen,async w=>{if(!t.isAnimating())if(w){if(t.index()<0||t.cordHist().length===0){o(!1);return}await ce().catch(()=>{o(!1),h(!1),c(!1)}).then(()=>{x?.abort()})}else await de().catch(()=>{}).then(()=>{x=new AbortController;const v=x.signal;window.addEventListener("mousemove",m,{passive:!0,signal:v}),c(!1)})},{defer:!0})),(()=>{var w=Ee();return w.$$keydown=I,w.$$click=I,P(w,T(se,{get each(){return s().images},children:(v,E)=>(()=>{var y=Le(),C=i[E()];return typeof C=="function"?he(C,y):i[E()]=y,V(g=>{var G=v.loImgH,Y=v.loImgW,_=v.hiUrl,q=v.hiImgH,K=v.hiImgW,J=v.loUrl,Q=v.loImgH,Z=v.loImgW,j=v.alt;return G!==g.e&&L(y,"height",g.e=G),Y!==g.t&&L(y,"width",g.t=Y),_!==g.a&&L(y,"data-hi-url",g.a=_),q!==g.o&&L(y,"data-hi-img-h",g.o=q),K!==g.i&&L(y,"data-hi-img-w",g.i=K),J!==g.n&&L(y,"data-lo-url",g.n=J),Q!==g.s&&L(y,"data-lo-img-h",g.s=Q),Z!==g.h&&L(y,"data-lo-img-w",g.h=Z),j!==g.r&&L(y,"alt",g.r=j),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),y})()})),w})()}re(["click","keydown"]);var Te=H(""),ke=H("
");function Ae(n){let e;const s=[n.prevText,n.closeText,n.nextText],r=O(),[t,{incIndex:a,decIndex:l,setCordHist:o,setHoverText:h,setIsOpen:c,setNavVector:p}]=N(),i=M(()=>t.isOpen()&&!t.isAnimating()),f=()=>{p("prev"),o(m=>m.map(I=>({...I,i:ne(I.i,r().length)}))),l()},x=()=>{c(!1)},d=()=>{p("next"),o(m=>m.map(I=>({...I,i:z(I.i,r().length)}))),a()},u=m=>{!t.isOpen()||t.isAnimating()||(m===s[0]?f():m===s[1]?x():d())},k=m=>{!t.isOpen()||t.isAnimating()||(m.key==="ArrowLeft"?f():m.key==="Escape"?x():m.key==="ArrowRight"&&d())};return S(B(t.isOpen,m=>{if(e?.abort(),m){e=new AbortController;const I=e.signal;window.addEventListener("keydown",k,{passive:!0,signal:I})}})),F(()=>{e?.abort()}),(()=>{var m=Te();return P(m,T(se,{each:s,children:I=>(()=>{var A=ke();return A.$$mouseover=()=>h(I),A.addEventListener("focus",()=>h(I)),A.$$click=()=>{u(I)},A})()})),V(()=>m.classList.toggle("active",!!i())),m})()}re(["click","mouseover"]);function He(n){const e=O(),[s]=N(),r=M(()=>s.isOpen()&&!s.isAnimating()),t=M(()=>s.isLoading()?n.loadingText:s.hoverText());return[T(xe,{}),T(ee,{get when(){return e().length>0},get children(){return[T(be,{}),T(ee,{get when(){return s.isOpen()},get children(){return[T(me,{cursorText:t,active:r}),T(Ae,{get prevText(){return n.prevText},get closeText(){return n.closeText},get nextText(){return n.nextText}})]}})]}})]}export{He as default};