import{E as e,G as t,L as n,N as r,O as i,S as a,U as o,V as s,b as c,j as l,m as u,r as d,x as f,z as p}from"./ui-BEZm0Fjb.js";var m=[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z`,key:`1tzo1f`}]],h=e=>n(u,t(e,{iconNode:m,name:`file-play`})),g=[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]],_=e=>n(u,t(e,{iconNode:g,name:`message-square`})),v=[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]],y=e=>n(u,t(e,{iconNode:v,name:`send`})),b=i(`
`),x=i(``),S=i(`

还没有弹幕

danmaku channel idle`),C=i(`

`),w=i(`
`),T=i(`

`),E=i(`

登录后可在房间内发送弹幕`);function D(t){let[r,i]=o([]),c=0,u=0,d=``,f=[6,18,30,42,54,66,78];p(()=>{let e=t.messages(),n=e[e.length-1];if(!n||n.id===d)return;d=n.id;let r=f[u%f.length];u++;let a=7+Math.random()*4,o={key:++c,text:n.message,color:n.color||`#f1f5f9`,top:r,dur:a};i(e=>{let t=[...e,o];return t.length>50?t.slice(t.length-50):t})});let m=e=>i(t=>t.filter(t=>t.key!==e));return(()=>{var t=b();return a(t,n(l,{get each(){return r()},children:t=>(()=>{var n=x();return n.addEventListener(`animationend`,()=>m(t.key)),a(n,()=>t.text),s(r=>{var i=`${t.top}%`,a=t.color,o=`${t.dur}s`;return i!==r.e&&e(n,`top`,r.e=i),a!==r.t&&e(n,`color`,r.t=a),o!==r.a&&e(n,`animation-duration`,r.a=o),r},{e:void 0,t:void 0,a:void 0}),n})()})),t})()}function O(e){return Number.isFinite(e)?new Date(e).toLocaleTimeString(`zh-CN`,{hour:`2-digit`,minute:`2-digit`}):`--:--`}function k(e){return e===`admin`?`border-acid-magenta/40 bg-acid-magenta/10 text-acid-magenta`:e===`publisher`?`border-warning/40 bg-warning/10 text-warning`:`border-acid-cyan/40 bg-acid-cyan/10 text-acid-cyan`}function A(e){let[t,i]=o(``),u=()=>{let n=t().trim();n&&(e.onSend(n),i(``))};return(()=>{var o=w(),f=o.firstChild;return a(f,n(r,{get when(){return e.messages().length>0},get children(){return n(l,{get each(){return e.messages()},children:e=>(()=>{var t=T(),n=t.firstChild,r=n.nextSibling.firstChild,i=r.firstChild,o=i.nextSibling,l=o.nextSibling,u=r.nextSibling;return a(n,()=>(e.user[0]??`?`).toUpperCase()),a(i,()=>e.user),a(o,()=>String(e.role)),a(l,()=>O(e.ts)),a(u,()=>e.message),s(()=>c(n,`mt-0.5 flex size-6 shrink-0 items-center justify-center border font-mono text-[10px] font-bold ${k(String(e.role))}`)),t})()})}}),null),a(f,n(r,{get when(){return e.messages().length===0},get children(){var e=S(),t=e.firstChild;return a(e,n(_,{class:`size-5 text-muted-foreground/50`}),t),e}}),null),a(o,n(r,{get when(){return e.canChat},get fallback(){return E()},get children(){var e=C(),r=e.firstChild;return r.$$keydown=e=>{e.key===`Enter`&&u()},r.$$input=e=>i(e.currentTarget.value),a(e,n(d,{onClick:u,size:`icon`,"aria-label":`发送弹幕`,class:`shrink-0`,get children(){return n(y,{class:`size-4`})}}),null),s(()=>r.value=t()),e}}),null),o})()}f([`input`,`keydown`]);function j(e,t){let n=new EventSource(`/api/room/${encodeURIComponent(e)}/events`,{withCredentials:!0});return n.addEventListener(`room`,e=>{try{t(JSON.parse(e.data))}catch{}}),()=>n.close()}function M(e,t){let n=new EventSource(`/api/room/${encodeURIComponent(e)}/chat`,{withCredentials:!0});return n.addEventListener(`chat`,e=>{try{t(JSON.parse(e.data))}catch{}}),()=>n.close()}async function N(e,t,n){await fetch(`/api/room/${encodeURIComponent(e)}/chat`,{method:`POST`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:t,color:n})})}function P(e){return{urls:e.urls,username:e.username,credential:e.credential}}async function F(e){let t=new RTCPeerConnection({iceServers:e.iceServers||[]});e.local.getTracks().forEach(n=>t.addTrack(n,e.local));let n=await t.createOffer();await t.setLocalDescription(n);let r=await(await fetch(`/rtc/v1/whip/?app=live&stream=${encodeURIComponent(e.stream)}&token=${encodeURIComponent(e.token)}`,{method:`POST`,headers:{"Content-Type":`application/sdp`},credentials:`same-origin`,body:n.sdp??``})).text();return await t.setRemoteDescription({type:`answer`,sdp:r}),t}async function I(e){let t=new RTCPeerConnection({iceServers:e.iceServers||[]});t.addTransceiver(`video`,{direction:`recvonly`}),t.addTransceiver(`audio`,{direction:`recvonly`});let n=await t.createOffer();await t.setLocalDescription(n);let r=await(await fetch(`/rtc/v1/whep/?app=live&stream=${encodeURIComponent(e.stream)}`,{method:`POST`,headers:{"Content-Type":`application/sdp`},credentials:`same-origin`,body:n.sdp??``})).text();return await t.setRemoteDescription({type:`answer`,sdp:r}),t}async function L(e){let t=new RTCPeerConnection({iceServers:e.iceServers||[]});e.local.getTracks().forEach(n=>t.addTrack(n,e.local));let n=await t.createOffer();await t.setLocalDescription(n);let r=await(await fetch(`/api/cf/sessions/${e.sessionId}/tracks/new`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`same-origin`,body:JSON.stringify({sessionDescription:{type:`offer`,sdp:n.sdp},tracks:[{location:`local`}]})})).json();return await t.setRemoteDescription({type:r.sessionDescription.type,sdp:r.sessionDescription.sdp}),t}async function R(e){let t=new RTCPeerConnection({iceServers:e.iceServers||[]});t.addTransceiver(`video`,{direction:`recvonly`}),t.addTransceiver(`audio`,{direction:`recvonly`});let n=await t.createOffer();await t.setLocalDescription(n);let r=await(await fetch(`/api/cf/sessions/${e.viewerSessionId}/tracks/new`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`same-origin`,body:JSON.stringify({sessionDescription:{type:`offer`,sdp:n.sdp},tracks:[{location:`remote`,sessionId:e.publisherSessionId}]})})).json();return await t.setRemoteDescription({type:r.sessionDescription.type,sdp:r.sessionDescription.sdp}),t}export{F as a,j as c,_ as d,h as f,I as i,A as l,R as n,N as o,P as r,M as s,L as t,D as u};