import{u as me,_ as de,a as pe}from"./DqdD2kfR.js";import{_ as fe,a as ve}from"./BxO-uVgJ.js";import{u as ye,_ as xe,a as ge}from"./BHNEEQEo.js";import{_ as be,a as Se,b as $e}from"./AHhOCY3a.js";import{_ as he}from"./C_7IPuV1.js";import{_ as ke}from"./CIUPrxAv.js";import{_ as we}from"./shyZvLsy.js";import{_ as Ce}from"./DJuKGROM.js";import{_ as Ee}from"./B-j5SdOF.js";import{a as Fe,_ as Le}from"./BWFx8sgc.js";import{a as Me,u as Ve,_ as Ie}from"./DzwJEKLp.js";import{_ as Be}from"./BKMaTO3Z.js";import{_ as De}from"./CNlSxae1.js";import{g as W,o as i,c,w as p,a as Te,t as N,i as $,O as Re,V as Ae,E as O,b as Ne,k as Oe,h as je,Q as j,q as He,R as We,d as I,u as e,S as H,T as Ue,U as ze,j as g,Z as qe,$ as Je,a0 as Qe,a1 as Ze,m as Ge}from"./F4mCmN5V.js";import{_ as Ke}from"./X9EAFXiM.js";import{a as U,h as T,u as Pe}from"./aNasIbik.js";import{u as Xe}from"./CQX2x_cu.js";import"./B3UrLtWp.js";import"./CklmMKNQ.js";import"./BJhyvbvB.js";import"./CmZsJ-RK.js";import"./BXGtoald.js";import"./DBS8gsng.js";const Ye={class:"text-balance text-center"},et=W({__name:"Error",props:{message:{}},emits:["retry"],setup(_,{emit:n}){const l=n;return(o,r)=>{const y=Me,b=De;return i(),c(b,{class:"z-20 bg-twc-blue"},{article:p(()=>[Te("p",Ye,N(_.message||o.$t("errors.failedToLoad")),1),$(y,{onClick:r[0]||(r[0]=h=>l("retry"))},{default:p(()=>[Re(N(o.$t("actions.retry")),1)]),_:1})]),_:1})}}}),tt=Object.assign(et,{__name:"Error"});function nt(){const _=U();let n=null,l=null;function o(a){n=new T.Howl({src:[a],loop:!0,volume:1,html5:!0})}function r(a){n?.unload(),n=new T.Howl({src:[a],loop:!0,volume:1,html5:!0})}function y(){_.enabled.value&&(n?.playing()||n?.play())}function b(){n?.pause()}function h(){n?.stop(),n?.volume(1)}function k(a=3e3){n&&n.fade(n.volume(),0,a)}function S(a){if(!_.enabled.value||!n)return;if(n.playing()){n.seek(a);return}const x=n.play();n.once("play",()=>{n?.seek(a,x)})}function C(a){_.enabled.value&&(l?.stop(),l=new T.Howl({src:[a],volume:1}),l.play())}function E(){l?.stop()}function u(){n?.stop(),l?.stop()}return{init:o,reinitMusic:r,playMusic:y,pauseMusic:b,stopMusic:h,fadeOutMusic:k,seekMusic:S,playVoiceover:C,stopVoiceover:E,cleanup:u}}function ot(_){const n=O(0),l=O(0);let o=null;function r(){o?.kill(),o=Ae.timeline({paused:!0,onComplete:_.onComplete});for(const[u,a]of _.screens.value.entries()){const x=a.duration/1e3;o.addLabel(`screen-${u}`),o.to(l,{value:100,duration:x,ease:"none",onStart:()=>{n.value=u,_.onScreenStart?.(a,u)},onComplete:()=>{l.value=0}})}if(_.onFadeStart){const u=_.fadeDuration,a=o.duration(),x=Math.max(0,a-u);o.call(()=>_.onFadeStart?.(),[],x)}}function y(){o?.play()}function b(){o?.pause()}function h(){o?.pause(),o?.seek(0,!0),n.value=0,l.value=0}function k(){o?.restart()}function S(u,a=!1){o?.seek(u,a)}function C(){return o?.time()??0}function E(){o?.kill()}return{currentIndex:n,progress:l,build:r,play:y,pause:b,stop:h,restart:k,seek:S,time:C,kill:E}}const at=Ne("/sound/music/neon-office-glide.mp3");function st(){return at}const rt={key:0,class:"relative h-full w-full"},Mt=W({__name:"index",async setup(_){let n,l;const o=Oe("settings",()=>!1),r=Pe(),{getElapsedSeconds:y}=Ve(),b=U(),{isReady:h}=Xe(),{current:k,forecast:S,observations:C,almanac:E,alerts:u,locationName:a,geocode:x,status:F,refresh:R}=([n,l]=je(()=>ye()),n=await n,l(),n),z=Ge(()=>S.value?.narratives.length??0),{screens:f,broadcastDuration:B,alertDuration:L,getScreenIndexAtTime:q}=me(z,u),m=nt();let M=null;const s=ot({screens:f,onComplete:D,onScreenStart:(t,d)=>{console.log("[onScreenStart]",{screen:t.type,index:d,timelineTime:s.time().toFixed(1),broadcastElapsed:r.getElapsed().toFixed(1)}),t.type!=="alert"&&(m.stopVoiceover(),m.playMusic()),t.voiceover&&m.playVoiceover(t.voiceover)},onFadeStart:()=>{m.fadeOutMusic(3e3)},fadeDuration:3});function V(t){if(r.isLive.value)return;console.log("[Broadcast] Starting",t?`at ${t.toFixed(1)}s (join-late)`:"from beginning"),r.start(),m.reinitMusic(st());const d=(B.value-(t??0))*1e3;M=setTimeout(D,d),typeof t=="number"&&t>0?(r.adjustStartTime(t),s.currentIndex.value=q(t),s.seek(t,!0),s.play(),t>=L.value&&m.seekMusic(t-L.value)):s.restart()}j(()=>b.enabled.value,t=>{if(r.isLive.value)if(t){const d=f.value[s.currentIndex.value];if(d?.type==="alert"&&d.voiceover)m.playVoiceover(d.voiceover);else{const w=s.time();m.seekMusic(w-L.value)}}else m.pauseMusic(),m.stopVoiceover()});function D(){r.isLive.value&&(console.log("[Broadcast] Stopping",{elapsed:`${r.getElapsed().toFixed(1)}s`,timeline:`${s.time().toFixed(1)}s`}),M&&(clearTimeout(M),M=null),r.stop(),s.stop(),m.stopMusic(),m.stopVoiceover(),R())}function A(){if(document.visibilityState!=="visible")return;const t=B.value;if(r.isLive.value){const w=r.getElapsed();console.log("[Visibility] Tab visible, broadcast live",{broadcastElapsed:`${w.toFixed(1)}s`,timelineTime:`${s.time().toFixed(1)}s`,duration:`${t.toFixed(1)}s`}),w>=t&&(console.log("[Visibility] Broadcast ended while tab was hidden"),D());return}const d=y();console.log("[Visibility] Tab visible, no broadcast",{scheduleElapsed:`${d.toFixed(1)}s`,duration:`${t.toFixed(1)}s`,willJoin:d{console.log("[Status]",t),t==="success"&&!r.isLive.value&&s.build()}),He(()=>{s.build();const t=y();t{document.removeEventListener("visibilitychange",A),r.stop(),s.kill(),m.cleanup()}),(t,d)=>{const w=pe,J=de,Q=ve,Z=ge,G=$e,K=he,P=ke,X=we,Y=Ce,ee=Ee,te=fe,ne=xe,oe=be,ae=Se,se=Fe,re=Le,ie=Ie,ce=Be,le=tt,ue=Ke;return i(),I(H,null,[$(re,null,{alert:p(()=>[e(f)[e(s).currentIndex.value]?.type==="alert"&&e(u)?.[0]?(i(),c(J,{key:0},{default:p(()=>[$(w,{alert:e(u)[0],duration:e(f)[e(s).currentIndex.value]?.duration},null,8,["alert","duration"])]),_:1})):g("",!0)]),header:p(()=>[e(f)[e(s).currentIndex.value]?.type!=="alert"?(i(),c(Z,{key:0,title:e(F)==="success"?e(f)[e(s).currentIndex.value]?.title??"":t.$t("states.loading")},qe({_:2},[e(f)[e(s).currentIndex.value]?.type==="radar"?{name:"info",fn:p(()=>[$(Q)]),key:"0"}:void 0]),1032,["title"])):g("",!0)]),article:p(()=>[e(f)[e(s).currentIndex.value]?.type!=="alert"?(i(),c(ne,{key:0},{default:p(()=>[e(F)==="success"?(i(),I("div",rt,[(i(!0),I(H,null,Ue(e(f),(v,_e)=>(i(),I("div",{key:`${v.type}-${v.index??0}`,class:ze(["absolute inset-0",{invisible:e(s).currentIndex.value!==_e}])},[v.type==="current"?(i(),c(G,{key:0,conditions:e(k),"location-name":e(a)},null,8,["conditions","location-name"])):v.type==="observations"?(i(),c(K,{key:1,stations:e(C).stations},null,8,["stations"])):v.type==="almanac"?(i(),c(P,{key:2,almanac:e(E)},null,8,["almanac"])):v.type==="local"?(i(),c(X,{key:3,narrative:e(S).narratives[v.index]},null,8,["narrative"])):v.type==="extended"?(i(),c(Y,{key:4,days:e(S).days},null,8,["days"])):v.type==="regional"?(i(),c(ee,{key:5,geocode:e(x)},null,8,["geocode"])):v.type==="radar"?(i(),c(te,{key:6,geocode:e(x)},null,8,["geocode"])):g("",!0)],2))),128))])):g("",!0)]),_:1})):g("",!0)]),footer:p(()=>[$(se,null,{default:p(()=>[e(u)?.length&&e(f)[e(s).currentIndex.value]?.type!=="alert"?(i(),c(oe,{key:0,alerts:e(u),"alert-duration":e(L)},null,8,["alerts","alert-duration"])):(i(),c(ae,{key:1,conditions:e(k),"location-name":e(a)},null,8,["conditions","location-name"]))]),_:1})]),_:1}),Je($(ie,{"location-name":e(a)??"",onComplete:V,onSkip:V},null,8,["location-name"]),[[Qe,!e(r).isLive.value]]),e(o)?(i(),c(ce,{key:0})):g("",!0),e(F)==="error"?(i(),c(le,{key:1,message:t.$t("errors.failedToLoad"),onRetry:e(R)},null,8,["message","onRetry"])):g("",!0),$(Ze,{name:"fade",mode:"out-in"},{default:p(()=>[e(h)?g("",!0):(i(),c(ue,{key:"loading"}))]),_:1})],64)}}});export{Mt as default};