import{d7 as A,d8 as U,cJ as O,db as p,dq as j,cO as f,jj as N,jk as _}from"./BC4hLSsA.js";import{c as E,b as $,d as F,L as z,e as D}from"./BfdTBfgC.js";import{u as C}from"./CEx-2nn-.js";const L=E(),G=A("gameUpdates",()=>{const{currentAzuroChain:e}=C(),t=$(),{send:r}=t,{isSocketReady:l,lastReceivedData:u}=U(t),b=O({}),a=F(s=>{if(!l.value)return;const o=[];Object.keys(s).forEach(i=>{typeof b.value[i]>"u"&&(o.push(i),b.value[i]=0),b.value[i]+=s[i]}),o.length&&r(JSON.stringify({event:"SubscribeGames",data:{gameIds:Object.keys(s),environment:e.value.chain.environment}}))},s=>{if(!l.value)return;const o=[];Object.keys(s).forEach(i=>{b.value[i]&&(b.value[i]+=s[i],b.value[i]===0&&(delete b.value[i],o.push(i)))}),o.length&&l.value&&r(JSON.stringify({event:"UnsubscribeGames",data:{newUnsubscribers:o,environment:e.value.chain.environment}}))}),v=s=>{a("subscribe",s)},S=s=>{a("unsubscribe",s)};p(l,s=>{s||(b.value={})},{flush:"sync",immediate:!0});const n=s=>{const{event:o,data:i}=JSON.parse(s);if(o!=="GameUpdated")return;const{id:c}=i;L.dispatch(c,i)};return p(u,s=>{n(s)}),{isSocketReady:l,subscribeToUpdates:v,unsubscribeToUpdates:S}}),q=({gameId:e,initialState:t})=>{const r=G(),{subscribeToUpdates:l,unsubscribeToUpdates:u}=r,{isSocketReady:b}=U(r),h=t===j.Finished,d=O(t);return p([b,()=>e,()=>h],([a,v,S],n,s)=>{!a||S||(l([v]),s(()=>{u([v])}))},{immediate:!0}),p(()=>e,(a,v,S)=>{const n=L.subscribe(e,s=>{const{state:o}=s;d.value=o});S(()=>{n()})},{immediate:!0}),{data:d}},w=E();var m=(e=>(e.InProgress="In progress",e.NotStarted="Not started yet",e.Finished="Finished",e.PreFinished="PreFinished",e.CoverageLost="Coverage lost",e.Suspended="Suspended",e))(m||{});const J=A("liveStatisticsSocket",()=>{const{currentAzuroChain:e}=C(),t=f(()=>l.value=="OPEN"),r=f(()=>`${e.value.chain.socket}/statistics/games`),{status:l,data:u,send:b,open:h,close:d}=N(r,{immediate:!0,autoConnect:!0,autoClose:!0,heartbeat:!1,autoReconnect:{retries:10,delay:500,onFailed:()=>{console.error("Azuro live statistics websocket connection failed after 10 retries")}},onConnected:()=>{console.log("Azuro live statistics websocket connected")},onDisconnected(a,v){console.log("Azuro live statistics websocket disconnected",v)},onError(a,v){console.log("Azuro live statistics websocket error",v)},onMessage(a,v){console.log("Azuro live statistics websocket message received",v)}});return{isSocketReady:t,lastReceivedData:u,send:b,open:h,close:d}}),H=A("liveStatisticsUpdate",()=>{C();const e=J(),{send:t}=e,{isSocketReady:r,lastReceivedData:l}=U(e),u=O({}),d=F(n=>{r.value&&(Object.keys(n).forEach(s=>{typeof u.value[s]>"u"&&(u.value[s]=0),u.value[s]+=n[s]}),t(JSON.stringify({action:"subscribe",gameIds:Object.keys(n)})))},n=>{if(!r.value)return;const s=[];Object.keys(n).forEach(o=>{u.value[o]&&(u.value[o]+=n[o],u.value[o]===0&&(delete u.value[o],s.push(o)))}),s.length&&r.value&&t(JSON.stringify({action:"unsubscribe",gameIds:s}))}),a=n=>{d("subscribe",n)},v=n=>{d("unsubscribe",n)};p(r,n=>{n||(u.value={})},{flush:"sync",immediate:!0});const S=n=>{JSON.parse(n.toString()).forEach(s=>{const{id:o,fixture:i,live:c}=s;let k={status:(i==null?void 0:i.status)||null,scoreBoard:(c==null?void 0:c.scoreBoard)||null,stats:(c==null?void 0:c.stats)||null,virtualCourtId:(i==null?void 0:i.virtualCourtId)||null,timeline:(c==null?void 0:c.timeline)||null,jerseyColors:(c==null?void 0:c.jerseyColors)||null,clock:(c==null?void 0:c.clock)||null};w.dispatch(o,k)})};return p(l,n=>{S(n)}),{isSocketReady:r,subscribeToUpdates:a,unsubscribeToUpdates:v}}),Q=({gameId:e,sportId:t,gameState:r,enabled:l})=>{const u=H(),{subscribeToUpdates:b,unsubscribeToUpdates:h}=u,{isSocketReady:d}=U(u),a=O(void 0),v=f(()=>_(e.value)),S=f(()=>z.includes(+t.value)),n=f(()=>D.includes(+v.value)),s=f(()=>r.value===j.Live),o=f(()=>!(l!=null&&l.value)||!e.value||!t.value||!S.value||!n.value||!s.value),i=f(()=>S.value&&s.value&&n.value),c=f(()=>!o.value&&!a.value&&a.value!==null);return p(e,(k,y)=>{k!==y&&(a.value=void 0)},{immediate:!0,flush:"sync"}),p([d,e,o],([k,y,R],g,T)=>{!k||R||(b([y]),T(()=>{h([y])}))},{immediate:!0}),p([e,o],([k,y],R,g)=>{const T=w.subscribe(k,P=>{P.stats===null?a.value=null:a.value=P});g(()=>{T()})},{immediate:!0}),{data:a,isFetching:c,isAvailable:i}},K={[m.NotStarted]:"Starts soon",[m.InProgress]:"In progress",[m.PreFinished]:"Ends soon",[m.Finished]:"Finished",[m.CoverageLost]:"In progress",[m.Suspended]:"Suspended"},X=(e,t)=>{if(+e==33)return t.goals;if(+e==31)return t.total;if(+e==45||+e==26)return t.sets},Y=(e,t)=>{if(+e==33){const r=t.state;return`${r=="H1"?"1st Half":r=="H2"?"2nd Half":""} ${t.time}'`}if(+e==31)return`${t.state} ${t.time}'`;if(+e==45)return`Set ${Object.keys(t.sets).length.toString()} (${t.points.g} - ${t.points.h})`;if(+e==26)return`Set ${Object.keys(t.sets).length.toString()}`};export{Q as a,Y as b,X as g,K as l,q as u};