`);function z(e){return e===`BACKEND_KIND_CLOUDFLARE`?`Cloudflare Realtime`:e===`BACKEND_KIND_SRS`?`SRS`:e}function ge(e){return e===`BACKEND_KIND_CLOUDFLARE`?C:O}var B=()=>{let t=le({from:`/publish`}),a=()=>t().room,[_,C]=c([]),[k,B]=c({BACKEND_KIND_CLOUDFLARE:!0,BACKEND_KIND_SRS:!0}),[V,H]=c(null),[U,W]=c(!1),[G,K]=c([]),[q,J]=c(``),[Y,_e]=c([]),[X,ve]=c(!0),Z,Q={};n(()=>{u.getConfig().then(e=>C(e.backends||[])).catch(()=>{});let e=re(a(),e=>K(e.targets||[])),t=oe(a(),e=>_e(t=>[...t,e].slice(-100)));b(()=>{e(),t()})});let ye=(e,t)=>{E(a(),e,t).catch(()=>{})},be=e=>B(t=>({...t,[e]:!t[e]})),xe=async()=>{if(!p.can(`room:publish`)){J(`当前角色无权发布(需要 room:publish)`);return}J(``),W(!0);try{if(!V()){let e=await navigator.mediaDevices.getUserMedia({video:!0,audio:!0});H(e),Z&&(Z.srcObject=e)}let e=V(),t=_().filter(e=>k()[e.kind]);for(let n of t){let t=await u.publish(a(),n.kind,``);n.kind===`BACKEND_KIND_SRS`?Q.srs=await ne({stream:t.stream,token:t.publish_token,local:e,iceServers:(t.ice_servers||[]).map(D)}):n.kind===`BACKEND_KIND_CLOUDFLARE`&&(Q.cloudflare=await se({sessionId:t.session_id,local:e,iceServers:(t.ice_servers||[]).map(D)}))}}catch(e){J(String(e?.message||e)),W(!1)}},$=async()=>{for(let e of Object.keys(Q)){try{Q[e].close()}catch{}delete Q[e]}for(let e of G())try{await u.stop(a(),e.backend)}catch{}V()&&(V().getTracks().forEach(e=>e.stop()),H(null)),K([]),W(!1)};return b($),(()=>{var t=N(),n=t.firstChild;return o(t,r(g,{get children(){var e=de(),t=e.firstChild,n=t.firstChild;n.firstChild;var i=t.nextSibling,s=i.firstChild;return o(n,a,null),o(i,r(y,{get active(){return U()}}),s),o(s,()=>U()?`推流中 / live`:`待机 / standby`),o(i,r(f,{get active(){return U()}}),null),e}}),n),o(t,r(i,{get when(){return!p.can(`room:publish`)},get children(){return r(S,{tone:`warning`,get children(){return[`当前角色(`,e(()=>p.role()),`)无权发布,仅 admin / publisher 可推流。可切换到「观看」进入房间发弹幕。`]}})}}),n),o(t,r(i,{get when(){return q()},get children(){return r(S,{tone:`error`,get children(){return q()}})}}),n),o(n,r(g,{delay:1,class:`min-w-0`,get children(){var t=pe(),n=t.firstChild,a=n.firstChild,s=a.firstChild,c=a.nextSibling,l=c.firstChild,u=n.nextSibling,d=u.firstChild,f=d.nextSibling,m=u.nextSibling;return o(t,r(ee,{}),n),o(a,r(w,{class:`size-4 text-acid-lime`}),s),o(l,(()=>{var t=e(()=>!!V());return()=>t()?`${V().getVideoTracks().length} 视频 · ${V().getAudioTracks().length} 音频`:`tracks · off`})()),o(c,r(x,{variant:`ghost`,size:`sm`,onClick:()=>ve(e=>!e),get children(){return X()?`隐藏弹幕`:`显示弹幕`}}),null),te(e=>Z=e,d),o(u,r(i,{get when(){return X()},get children(){return r(ce,{messages:Y})}}),f),o(f,r(v,{get variant(){return U()?`success`:`outline`},class:`bg-black/50 shadow-sm backdrop-blur-sm`,get children(){return[r(y,{get active(){return U()}}),e(()=>U()?`LIVE`:`STANDBY`)]}})),o(u,r(i,{get when(){return!V()},get children(){var e=fe(),t=e.firstChild;return o(t,r(w,{class:`size-5`})),e}}),null),o(m,r(x,{class:`h-10`,onClick:xe,get disabled(){return U()||!p.can(`room:publish`)},get children(){return[r(w,{class:`size-4`}),`开始推流`]}}),null),o(m,r(x,{variant:`danger`,class:`h-10`,onClick:$,get disabled(){return!U()},get children(){return[r(ue,{class:`size-4`}),`停止推流`]}}),null),t}}),null),o(n,r(g,{delay:2,class:`min-w-0 self-start`,get children(){var t=me(),n=t.firstChild,a=n.firstChild,s=a.firstChild,c=n.nextSibling;return o(a,r(O,{class:`size-4 text-acid-lime`}),s),o(n,r(v,{variant:`muted`,get children(){return[e(()=>_().length),` 路`]}}),null),o(c,r(i,{get when(){return _().length>0},get fallback(){return P()},get children(){return r(h,{get each(){return _()},children:e=>{let t=ge(e.kind);return(()=>{var n=F(),i=n.firstChild.firstChild,a=i.nextSibling,s=a.firstChild,c=s.firstChild;return o(i,r(t,{class:`size-4`})),o(a,r(m,{get label(){return e.name},get checked(){return!!k()[e.kind]},onChange:()=>be(e.kind),get disabled(){return U()}}),s),o(s,()=>z(e.kind),c),o(s,()=>e.primary?`主 SFU`:`对照后端`,null),o(n,r(v,{get variant(){return e.configured?`success`:`muted`},get children(){return e.configured?`在线`:`未配置`}}),null),l(()=>d(n,`flex items-center justify-between gap-3 border p-3 transition-colors ${e.configured?`border-line bg-background/50`:`border-line/60 bg-background/20 opacity-70`}`)),n})()}})}})),t}}),null),o(t,r(g,{delay:1,get children(){var e=j(),t=e.firstChild,n=t.firstChild;return o(t,r(T,{class:`size-4 text-acid-lime`}),n),o(e,r(i,{get when(){return G().length>0},get fallback(){return I()},get children(){var e=A();return o(e,r(h,{get each(){return G()},children:e=>(()=>{var t=he(),n=t.firstChild.nextSibling,a=n.firstChild;return o(a,()=>z(e.backend)),o(n,r(v,{variant:`success`,get children(){return[r(y,{active:!0}),`直播中`]}}),null),o(t,r(i,{get when(){return e.stream},get children(){var t=L(),n=t.firstChild,i=n.firstChild,a=n.nextSibling,c=a.firstChild;return o(n,r(T,{class:`size-3`}),i),o(a,r(T,{class:`size-3`}),c),l(t=>{var r=`/live/${e.stream}.m3u8`,i=`/live/${e.stream}.flv`;return r!==t.e&&s(n,`href`,t.e=r),i!==t.t&&s(a,`href`,t.t=i),t},{e:void 0,t:void 0}),t}}),null),o(t,r(i,{get when(){return e.session_id},get children(){var t=R();return t.firstChild,o(t,()=>e.session_id,null),t}}),null),t})()})),e}}),null),e}}),null),o(t,r(g,{delay:2,get children(){var e=M(),t=e.firstChild,n=t.firstChild,i=n.firstChild,a=t.nextSibling;return o(n,r(ie,{class:`size-4 text-acid-lime`}),i),o(t,r(v,{variant:`muted`,get children(){return Y().length}}),null),o(a,r(ae,{messages:Y,get canChat(){return p.can(`room:chat`)},onSend:ye})),e}}),null),t})()};export{B as Publish};