import{r as T,i as c,t as m}from"../chunks/BR4fxmeU.min.js";import{n as u}from"../chunks/BKQw7CDm.min.js";async function o(t){return new Promise(e=>setTimeout(e,t))}const f="";var y=Object.defineProperty,E=Object.getOwnPropertyDescriptor,d=(t,e,i,r)=>{for(var s=r>1?void 0:r?E(e,i):e,n=t.length-1,h;n>=0;n--)(h=t[n])&&(s=(r?h(e,i,s):h(s))||s);return r&&s&&y(e,i,s),s};class g{constructor(e){this.playPromise=null,this.pausePressed=!1,this.videoLoaded=!1,this.isSrcAttrUpdated=!1,this.el=e}getDuration(){return this.el.duration}setCurrentTime(e){this.el.currentTime=e}addEventListener(e,i,r){this.el.addEventListener(e,i,r)}play(){if(this.playPromise){this.pausePressed=!1;return}this.updateSrcAttr(),this.playPromise=this.el.play(),this.playPromise.then(()=>{this.playPromise=null,this.pausePressed&&this.pause()}).catch(e=>{console.error("video play failed:",e),this.playPromise=null})}pause(e){if(this.playPromise){this.pausePressed=!0;return}this.pausePressed=!1,this.el.pause(),e?.reset&&(this.el.currentTime=0)}updateSrcAttr(){if(this.isSrcAttrUpdated)return;const e=this.el.firstElementChild;if(e&&e.tagName==="SOURCE"){const i=e.getAttribute("data-src");i&&(e.src=i)}this.isSrcAttrUpdated=!0}loadMetadata(){return this.videoLoaded?Promise.resolve():new Promise(e=>{this.el.addEventListener("loadedmetadata",()=>{this.videoLoaded=!0,this.el.currentTime=.1,e()},{once:!0}),this.updateSrcAttr(),this.el.load()})}}let a=class extends c{constructor(){super(...arguments),this.titleEl=null,this.titleTypeTextEl=null,this.titleTypeHtml="",this.titleTypeText="",this.titleTimeoutRefs=[],this.searchTermEl=null,this.searchTermText="",this.searchTermTimeoutRefs=[],this.videoEls=[],this.startDelay=1e3,this.transitionDelay=500,this.defaultVideoLength=4333,this.isPaused=!1,this.animating=!1,this.typingSpeed=100,this.slideIndex=-1}connectedCallback(){super.connectedCallback(),this.titleEl=this.querySelector("[data-title]"),this.titleEl&&(this.titleTypeTextEl=this.titleEl.querySelector("span"),this.titleTypeHtml=this.titleTypeTextEl.innerHTML,this.titleTypeText=this.titleTypeTextEl.innerText,this.titleTypeTextEl.innerHTML=""),this.searchTermEl=this.querySelector("[data-search-term]"),this.searchTermEl&&(this.searchTermText=this.searchTermEl.innerText,this.searchTermEl.innerHTML=""),this.videoEls=Array.from(this.querySelectorAll("[data-video]")).map(t=>new g(t))}resetSlide(){this.stopTyping(this.titleTimeoutRefs),this.stopTyping(this.searchTermTimeoutRefs),this.titleTypeTextEl&&(this.titleTypeTextEl.innerHTML=""),this.searchTermEl&&(this.searchTermEl.innerHTML=""),this.videoEls&&this.videoEls.forEach(t=>{t.pause({reset:!0})})}animateSlide(t){if(!(this.slideIndex!==t||this.animating)){if(this.isPaused){this.pauseSlide();return}this.animating=!0,this.resetSlide(),this.stopTyping(this.titleTimeoutRefs),this.stopTyping(this.searchTermTimeoutRefs),o(this.startDelay).then(()=>{this.isPaused||this.animateTypingWithHtml(this.titleTypeTextEl,this.titleTypeHtml,this.titleTimeoutRefs).then(()=>{o(this.transitionDelay).then(()=>{this.isPaused||this.animateTyping(this.searchTermEl,this.searchTermText,this.searchTermTimeoutRefs).then(()=>{o(0).then(()=>{this.isPaused||this.videoEls?.forEach(e=>{e.addEventListener("ended",()=>{this.handleAnimationEnded()}),e.loadMetadata().then(()=>{e.addEventListener("ended",()=>this.handleAnimationEnded(),{once:!0}),e.play()})})})})})})})}}playVideo(t){const e=t.firstElementChild;if(e&&e.tagName==="SOURCE"){const i=e.getAttribute("data-src");i&&(e.src=i)}t.play()}handleAnimationEnded(t=!1){this.animating=!1,t||this.dispatchEvent(new CustomEvent("animation-ended",{detail:{slideIndex:this.slideIndex},bubbles:!0,composed:!0}))}pauseSlide(){this.isPaused=!0,this.videoEls&&this.videoEls.forEach(t=>{const e=t.getDuration()*.6;t.pause(),t.setCurrentTime(e)}),this.titleTypeTextEl.innerHTML=this.titleTypeHtml,this.searchTermEl.innerHTML=this.searchTermText}haltAndResetSlide(){this.resetSlide(),this.handleAnimationEnded(!0)}resumeSlide(){this.isPaused=!1,this.resetSlide()}animateTyping(t,e,i){if(t)return t.innerHTML="",new Promise(r=>{[...e].forEach((s,n)=>{i[n]=setTimeout(()=>{this.isPaused?(this.stopTyping(i),r()):(t.innerHTML+=s,n===[...e].length-1&&r())},this.typingSpeed*n)})})}animateTypingWithHtml(t,e,i){if(t)return t.innerHTML="",new Promise(r=>{const s=[],n=document.createElement("div");n.innerHTML=e,n.childNodes.forEach(h=>{h.nodeType===Node.TEXT_NODE?(h.textContent||"").split("").forEach(p=>{s.push(p)}):s.push(h.outerHTML)}),[...s].forEach((h,l)=>{i[l]=setTimeout(()=>{this.isPaused?(this.stopTyping(i),r()):(t.innerHTML+=h,l===[...s].length-1&&r())},this.typingSpeed*l)})})}stopTyping(t){t&&t.forEach(e=>{clearTimeout(e)})}getAnimationDuration(){if(this.videoEls.length===0)return 0;let t=0;return t+=this.startDelay,t+=this.transitionDelay,t+=this.typingSpeed*this.titleTypeText.length,t+=this.typingSpeed*this.searchTermText.length,t+=this.videoEls[0]?.getDuration()*1e3||this.defaultVideoLength,t}createRenderRoot(){return this}};a.styles=T(f);d([u({type:Number})],a.prototype,"typingSpeed",2);d([u({type:Number})],a.prototype,"slideIndex",2);a=d([m("photos-search-carousel-slide")],a);