import{n as s,a$ as He,aC as N,bq as Z,bO as ye,a5 as A,bn as Me,ba as Q,aQ as j,aB as we,c as T,Y as Ie,d as V,Q as ge,b6 as ne,ap as Ke,h as Ce,bg as Qe,Z as I,a1 as Y,T as t,$ as F,a0 as h,bP as Be,b8 as it,bQ as ut,bR as ct,a7 as u,a6 as g,aH as me,a8 as se,aI as dt,b4 as te,bv as mt,bc as ae,by as pt,bz as ht,bA as ft,at as Je,bS as he,a9 as ie,bT as vt,bB as Se,bU as Fe,bm as le,bt as $e,bV as X,aK as Xe,bW as Ze,bX as _e,bY as xe,bi as pe,N as et,o as tt,C as gt,a2 as st,a3 as _t,bs as Ee,f as ve,bZ as yt,bF as ot,bh as xt,b_ as bt,aG as wt,b0 as kt,bp as Pt,b$ as oe,S as Ct,b1 as St}from"./index-1f7267da.js";import{c as E,d as W,a as $t,b as Tt}from"./vue-flow-background-b9813da8.js";import{c as be,d as J}from"./dayjs-919e6097.js";import{_ as at}from"./index.vue_vue_type_script_setup_true_lang-84fbf4a5.js";import{g as Lt,a as It}from"./logrotate-070a7f86.js";import{S as Rt}from"./state-ca41bb28.js";import{s as Ot}from"./schema-26eace7b.js";import{s as zt}from"./tree-title-48a26c34.js";import{g as Dt}from"./utils-893e2387.js";import{M as Mt}from"./index-a6fa52b3.js";import{u as Re}from"./system-adae9d6c.js";import{g as Bt,a as jt}from"./schema-28bded7e.js";import{d as Ht,u as Ft}from"./pullOnStart-72682b8f.js";import{V as At}from"./jb4-a2294d1a.js";import{u as Ut}from"./useAddPushForm-d66514a5.js";import{d as Vt,g as nt,a as Te}from"./mp4-934a0f15.js";import{D as Et}from"./DownloadOutlined-bfbd907a.js";import{V as Yt}from"./VideoPlayer-b516d09e.js";import{a as Nt}from"./useHeaderSetting-f37d30e5.js";import"./stream-type-63b6e1e6.js";import"./canvas-b3f2b616.js";import"./index-5292cc0d.js";var qt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.3 506.3L781.7 405.6a7.23 7.23 0 00-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 00-11.3 0L405.6 242.3a7.23 7.23 0 005.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 00.1-11.4z"}}]},name:"drag",theme:"outlined"};const Wt=qt;function Ye(n){for(var e=1;eRt({state:r.state})},{title:e("routes.home.订阅数"),dataIndex:"subscribers",width:"70px"}];return n.length?s(Z,{dataSource:n,columns:i,size:"small",pagination:!1,bordered:!0,scroll:{y:200}},null):s(ye,null,null)}function as(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!we(n)}const ns=/^(tcp|udp|quic|http)/;function rs({pluginList:n}){const{t:e}=N(),i=[{title:e("routes.home.名称"),dataIndex:"name",width:"120px"},{title:e("routes.home.端口"),dataIndex:"port",width:"120px",customRender:({record:r})=>{const c=[];if(r.description)for(const p in r.description)ns.test(p)&&c.push(s(Me,{color:"blue"},{default:()=>[p,A(": "),r.description[p]]}));return c}},{title:e("routes.home.操作"),dataIndex:"action",width:"60px",align:"center",customRender:({record:r})=>{let c;return s(j,{type:"link",onClick:()=>{Q.confirm({title:e("routes.home.确定重启",{name:r.name}),content:e("routes.home.开发中")})}},as(c=e("routes.home.重启"))?c:{default:()=>[c]})}}];return n.length?s(Z,{dataSource:n,columns:i,size:"small",pagination:!1,bordered:!0,scroll:{y:200}},null):s(ye,null,null)}function ls({aliasList:n}){const{t:e}=N(),i=[{title:e("routes.home.别名流"),dataIndex:"streamPath"},{title:e("routes.home.别名名称"),dataIndex:"alias"},{title:e("routes.home.自动删除"),dataIndex:"autoRemove"},{title:e("routes.home.状态"),dataIndex:"status",customRender:({record:r})=>Ot[r.status]}];return n.length?s(Z,{dataSource:n,columns:i,size:"small",pagination:!1,bordered:!0,scroll:{y:200}},null):s(ye,null,null)}function rt(n){return n.children&&n.children.length>0?n.children=n.children.map(rt):delete n.children,n}function is(n){const e=[];function i(r){r.forEach(c=>{c.children&&c.children.length>0&&(e.push(String(c.id)),i(c.children))})}return i(n),e}function us({taskList:n}){const{t:e}=N(),i=[{title:e("routes.home.任务所有者"),dataIndex:"owner"},{title:e("routes.home.状态"),dataIndex:"state",width:100,customRender:({record:p})=>zt[p.state]},{title:e("routes.home.任务启动时间"),dataIndex:"startTime",width:100,customRender:({record:p})=>s(at,{value:p.startTime},null)}],r=T([]);Ie(()=>{const p=is(n);r.value=p});const c=(p,R)=>{const S=String(R.id);if(p)r.value.includes(S)||r.value.push(S);else{const z=r.value.indexOf(S);z>-1&&r.value.splice(z,1)}};return n.length?s(Z,{dataSource:n,columns:i,size:"small",pagination:!1,bordered:!0,expandedRowKeys:r.value,onExpand:c,childrenColumnName:"children",indentSize:20,rowKey:p=>String(p.id),scroll:{y:200}},null):s(ye,null,null)}function cs(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!we(n)}function ds({logList:n}){const{t:e}=N();function i(c){Lt(c).then(p=>{Q.info({title:e("routes.home.查看日志"),width:"1024px",okText:e("routes.home.关闭"),content:s("pre",{class:"w-100% h-600px overflow-auto"},[p])})})}const r=[{title:e("routes.home.文件名"),dataIndex:"name"},{title:e("routes.home.文件大小"),dataIndex:"size",width:100,customRender:({record:c})=>Dt(c.size)},{title:e("routes.home.操作"),dataIndex:"action",width:70,customRender:({record:c})=>{let p;return s(j,{type:"link",onClick:()=>i(c.name)},cs(p=e("routes.home.查看"))?p:{default:()=>[p]})}}];return n.length?s(Z,{columns:r,dataSource:n,size:"small",pagination:!1,bordered:!0,scroll:{y:200}},null):s(ye,null,null)}function ms({transformList:n}){const{t:e}=N(),i=[{title:e("routes.home.转换插件"),dataIndex:"pluginName"},{title:e("routes.home.别名流"),dataIndex:"streamPath"},{title:e("routes.home.转换目标"),dataIndex:"target"},{title:e("routes.home.转换配置"),dataIndex:"config"}];return n.length?s(Z,{dataSource:n,columns:i,size:"small",pagination:!1,bordered:!0,scroll:{y:200}},null):s(ye,null,null)}const ps={style:{position:"relative"}},hs={class:"version-tag"},fs={class:"flex-center"},vs={class:"overview-content"},gs={class:"info-grid"},_s={class:"info-card"},ys={class:"info-header"},xs={class:"info-title"},bs={class:"info-body"},ws={class:"info-item"},ks={class:"label"},Ps={class:"info-item"},Cs={class:"label"},Ss={class:"value-tag processing"},$s={class:"info-item"},Ts={class:"label"},Ls={class:"value-tag processing"},Is={class:"detail-row"},Rs={class:"detail-item"},Os={class:"detail-label"},zs={class:"value-tag default"},Ds={class:"detail-item"},Ms={class:"detail-label"},Bs={class:"value-tag default"},js={class:"info-card"},Hs={class:"info-header"},Fs={class:"info-title"},As={class:"info-body"},Us={class:"resource-section"},Vs={class:"resource-title"},Es={class:"resource-details"},Ys={class:"resource-item"},Ns={class:"resource-label"},qs={class:"value-tag default"},Ws={class:"resource-item"},Gs={class:"resource-label"},Ks={class:"value-tag success"},Qs={class:"resource-section"},Js={class:"resource-title"},Xs={class:"resource-details"},Zs={class:"resource-item"},eo={class:"resource-label"},to={class:"value-tag default"},so={class:"resource-item"},oo={class:"resource-label"},ao={class:"value-tag success"},no={class:"info-card"},ro={class:"info-header"},lo={class:"info-title"},io={class:"info-body"},uo={class:"resource-section"},co={class:"resource-title"},mo={class:"network-stats-compact"},po={class:"network-item-compact"},ho={class:"network-label-compact"},fo={class:"value-tag error"},vo={class:"network-item-compact"},go={class:"network-label-compact"},_o={class:"value-tag success"},yo={class:"flex-center gap-2px"},xo={class:"flex-center gap-2px"},bo={class:"flex-center gap-2px"},wo={class:"flex-center gap-2px"},ko={class:"flex-center gap-2px"},Po={class:"flex-center gap-2px"},Co={key:1},So=V({name:"Instance"}),$o=V({...So,props:{data:{}},setup(n){const{t:e}=N(),i=Re(),{summary:r,online:c,sysInfo:p}=ge(i),R=T([]),S=T([]),z=T([]),d=T([]),D=T([]),L=i.pluginActive("LogRotate");function f(){Be().then(O=>{R.value=O})}function P(){it().then(O=>{S.value=O})}function k(){ut().then(O=>{D.value=O})}function m(){ct().then(O=>{z.value=[O].map(rt)})}function w(){It().then(O=>{d.value=O})}const C={3:{...ne(f),active(){c.value?(f(),this.resume()):this.pause()}},4:{...ne(k),active(){c.value?(k(),this.resume()):this.pause()}},5:{...ne(P),active(){c.value?(P(),this.resume()):this.pause()}},6:{...ne(m),active(){c.value?(m(),this.resume()):this.pause()}},7:{...ne(w),active(){L.value&&c.value?(w(),this.resume()):this.pause()}}},o=Ke(),a=n,l=T(),v=T(),$=T(0),M=T(0),H=T("1");Ce(H,(O,U)=>{C[U]?.pause(),C[O]?.active()}),Ce(c,O=>{if(O)C[H.value]?.active();else for(const U in C)C[U]?.pause()}),Ie(()=>{(!L.value||!c.value)&&C[7]?.pause()});function B(){Q.confirm({title:e("routes.home.热重启"),content:e("routes.home.确定要热重启吗"),okText:e("routes.home.确定"),cancelText:e("routes.home.取消"),onOk:()=>mt()})}const q=i.registerSummaryCallback(O=>{l.value?.handleUpdate(O?.memory?.usage||0),v.value?.handleUpdate(O?.cpuUsage||0),$.value=O?.netWork?.reduce((U,K)=>U+Number(K.sentSpeed||0),0)||0,M.value=O?.netWork?.reduce((U,K)=>U+Number(K.receiveSpeed||0),0)||0});Qe(()=>{q();for(const O in C)C[O]?.pause()});function G(){L.value?a.data.onShowLogTrail():ae.error(e("routes.home.需要启用Logrotate插件"))}async function ee(){try{let U=await pt();Q.confirm({title:e("routes.home.编辑配置文件"),width:800,style:{top:"20px"},content:()=>s("div",{style:"height: 600px"},[s(Mt,{value:U,onChange:K=>U=K,language:"yaml",options:{minimap:{enabled:!1},lineNumbers:"on",automaticLayout:!0}},null)]),onOk:async()=>{try{ht.parse(U),await ft(U),ae.success(e("routes.home.保存成功"))}catch(K){return Promise.reject(e("routes.home.配置文件格式错误")+":"+K.message)}}})}catch(O){ae.error(e("routes.home.获取配置文件失败")+":"+O.message)}}function fe(){a.data.onShowDebugChart()}function ue(O){return O>=1024?`${(O/1024).toFixed(1)}GB`:`${O}MB`}function ce(O){return O>=1024?`${(O/1024).toFixed(1)}TB`:`${O}GB`}function de(O){return O>=1024*1024*1024?`${(O/(1024*1024*1024)).toFixed(1)}GB/s`:O>=1024*1024?`${(O/(1024*1024)).toFixed(1)}MB/s`:O>=1024?`${(O/1024).toFixed(1)}KB/s`:`${O}B/s`}return(O,U)=>(I(),Y("div",ps,[s(t(W),{type:"target",position:t(E).Top,id:"upstream"},null,8,["position"]),s(t(W),{type:"source",position:t(E).Bottom,id:"downstream"},null,8,["position"]),s(t(W),{type:"target",position:t(E).Left,id:"target-pull",style:{top:"20%",bottom:"auto"}},null,8,["position"]),s(t(W),{type:"target",position:t(E).Left,id:"target-push",style:{top:"50%",bottom:"auto"}},null,8,["position"]),s(t(W),{type:"target",position:t(E).Left,id:"target-read",style:{top:"80%",bottom:"auto"}},null,8,["position"]),s(t(W),{type:"source",position:t(E).Right,id:"source-push",style:{top:"20%",bottom:"auto"}},null,8,["position"]),s(t(W),{type:"source",position:t(E).Right,id:"source-play",style:{top:"50%",bottom:"auto"}},null,8,["position"]),s(t(W),{type:"source",position:t(E).Right,id:"source-read",style:{top:"80%",bottom:"auto"}},null,8,["position"]),t(i).online?(I(),F(t(te),{key:0,size:"small",class:"w-500px drop-shadow-xl","body-style":{paddingBottom:0,paddingTop:0}},{title:h(()=>[U[2]||(U[2]=u("span",null,"SagooMedia ",-1)),u("span",hs,g(t(p).version),1),u("span",null,g(t(p).localIP),1)]),extra:h(()=>[s(t(j),{type:"link",onClick:U[0]||(U[0]=K=>t(o)("Overview"))},{default:h(()=>[A(g(t(e)("routes.home.查看详情")),1)]),_:1})]),actions:h(()=>[s(t(j),{type:"link",onClick:fe,size:"small"},{default:h(()=>[A(g(t(e)("routes.home.性能观测")),1)]),_:1}),s(t(j),{type:"link",onClick:ee,size:"small"},{default:h(()=>[A(g(t(e)("routes.home.配置")),1)]),_:1}),s(t(j),{type:"link",onClick:G,size:"small"},{default:h(()=>[A(g(t(e)("routes.home.日志跟踪")),1)]),_:1}),s(t(j),{type:"link",onClick:B,size:"small"},{default:h(()=>[A(g(t(e)("routes.home.热重启")),1)]),_:1})]),default:h(()=>[s(t(dt),{activeKey:H.value,"onUpdate:activeKey":U[1]||(U[1]=K=>H.value=K),size:"small",animated:"","tab-bar-gutter":10,"tab-bar-style":{marginBottom:"2px"}},{default:h(()=>[s(t(me),{key:"1"},{tab:h(()=>[u("div",fs,[s(t(se),{icon:"dashicons:dashboard",width:"20",height:"20"}),u("span",null,g(t(e)("routes.home.概览")),1)])]),default:h(()=>[u("div",vs,[u("div",gs,[u("div",_s,[u("div",ys,[s(t(se),{icon:"material-symbols:schedule",class:"info-icon"}),u("span",xs,g(t(e)("routes.home.系统信息")),1)]),u("div",bs,[u("div",ws,[u("span",ks,g(t(e)("routes.home.启动时间"))+":",1),s(t(at),{value:t(p).startTime,class:"text-primary font-medium"},null,8,["value"])]),u("div",Ps,[u("span",Cs,g(t(e)("routes.home.Go版本"))+":",1),u("span",Ss,g(t(p).goVersion),1)]),u("div",$s,[u("span",Ts,g(t(e)("routes.home.系统"))+":",1),u("span",Ls,g(t(p).os),1)]),u("div",Is,[u("span",Rs,[u("span",Os,g(t(e)("routes.home.CPU"))+":",1),u("span",zs,g(t(p).cpus)+g(t(e)("routes.home.核")),1)]),u("span",Ds,[u("span",Ms,g(t(e)("routes.home.架构"))+":",1),u("span",Bs,g(t(p).arch),1)])])])]),u("div",js,[u("div",Hs,[s(t(se),{icon:"material-symbols:storage",class:"info-icon"}),u("span",Fs,g(t(e)("routes.home.存储内存")),1)]),u("div",As,[u("div",Us,[u("div",Vs,g(t(e)("routes.home.磁盘"))+" "+g(t(r).hardDisk?.usage.toFixed(1)||0)+"% ",1),u("div",Es,[u("span",Ys,[u("span",Ns,g(t(e)("routes.home.总计"))+":",1),u("span",qs,g(ce(t(r).hardDisk?.total||0)),1)]),u("span",Ws,[u("span",Gs,g(t(e)("routes.home.可用"))+":",1),u("span",Ks,g(ce(t(r).hardDisk?.free||0)),1)])])]),u("div",Qs,[u("div",Js,g(t(e)("routes.home.内存"))+" "+g(t(r).memory?.usage.toFixed(1)||0)+"% ",1),u("div",Xs,[u("span",Zs,[u("span",eo,g(t(e)("routes.home.总计"))+":",1),u("span",to,g(ue(t(r).memory?.total||0)),1)]),u("span",so,[u("span",oo,g(t(e)("routes.home.可用"))+":",1),u("span",ao,g(ue(t(r).memory?.free||0)),1)])])])])]),u("div",no,[u("div",ro,[s(t(se),{icon:"material-symbols:network-wifi",class:"info-icon"}),u("span",lo,g(t(e)("routes.home.网络性能")),1)]),u("div",io,[u("div",uo,[u("div",co," CPU "+g(t(r).cpuUsage?.toFixed(1)||0)+"% ",1),u("div",mo,[u("div",po,[u("span",ho,g(t(e)("routes.home.上传"))+":",1),u("span",fo,g(de($.value)),1)]),u("div",vo,[u("span",go,g(t(e)("routes.home.下载"))+":",1),u("span",_o,g(de(M.value)),1)])])])])])])])]),_:1}),s(t(me),{key:"2"},{tab:h(()=>[u("div",yo,[s(t(se),{icon:"mingcute:plugin-line",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.插件")),1)])]),default:h(()=>[s(t(rs),{pluginList:t(p).plugins},null,8,["pluginList"])]),_:1}),s(t(me),{key:"3"},{tab:h(()=>[u("div",xo,[s(t(se),{icon:"ri:live-line",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.流")),1)])]),default:h(()=>[s(t(os),{streamList:R.value},null,8,["streamList"])]),_:1}),s(t(me),{key:"4"},{tab:h(()=>[u("div",bo,[s(t(se),{icon:"carbon:transform-binary",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.转换")),1)])]),default:h(()=>[s(t(ms),{transformList:D.value},null,8,["transformList"])]),_:1}),s(t(me),{key:"5"},{tab:h(()=>[u("div",wo,[s(t(se),{icon:"oui:token-alias",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.别名")),1)])]),default:h(()=>[s(t(ls),{aliasList:S.value},null,8,["aliasList"])]),_:1}),s(t(me),{key:"6"},{tab:h(()=>[u("div",ko,[s(t(se),{icon:"iconoir:task-list",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.任务")),1)])]),default:h(()=>[s(t(us),{taskList:z.value},null,8,["taskList"])]),_:1}),s(t(me),{key:"7"},{tab:h(()=>[u("div",Po,[s(t(se),{icon:"ix:log",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.日志")),1)])]),default:h(()=>[t(L)?(I(),F(t(ds),{key:0,logList:d.value},null,8,["logList"])):(I(),Y("div",Co,g(t(e)("routes.home.需要启用Logrotate插件")),1))]),_:1})]),_:1},8,["activeKey"])]),_:1})):(I(),F(t(te),{key:1},{default:h(()=>[s(t(se),{icon:"mingcute:plugin-line",width:"24",height:"24"}),u("span",null,g(t(e)("routes.home.SagooMedia离线")),1)]),_:1}))]))}});const To=Je($o,[["__scopeId","data-v-082cf195"]]),Lo={key:1,class:"text-12px"},Io=V({name:"Device"}),Ro=V({...Io,setup(n){const{t:e}=N(),{pause:i,resume:r}=ne(R),c=T([]),p=T([{title:e("routes.home.名称"),dataIndex:"name"},{title:e("routes.home.状态"),dataIndex:"status",customRender:({record:S})=>Ht(S.status)}]);function R(){return Bt().then(S=>{c.value=S}).catch(S=>{console.error(`stream-proxy-getList-error: ${S}`)})}return R(),(S,z)=>(I(),F(t(te),{size:"small",class:"w-250px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.远端服务器或设备")),1),c.value.length?(I(),F(t(he),{key:0,title:t(e)("routes.home.帮助"),content:t(e)("routes.home.设备节点用于配置拉流代理")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])):ie("",!0)]),extra:h(()=>[s(t(j),{type:"link",onClick:z[0]||(z[0]=d=>t(Ft)({updateList:R,pause:t(i),resume:t(r)}))},{default:h(()=>[A(g(t(e)("routes.home.添加")),1)]),_:1})]),default:h(()=>[s(t(W),{type:"source",position:t(E).Right},null,8,["position"]),c.value.length?(I(),F(t(Z),{key:0,"data-source":c.value,columns:p.value,size:"small",pagination:!1,bordered:""},null,8,["data-source","columns"])):(I(),Y("span",Lo,g(t(e)("routes.home.拉流代理功能说明")),1))]),_:1}))}});var je={},Oo={get exports(){return je},set exports(n){je=n}};function zo(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Le={},Do={get exports(){return Le},set exports(n){Le=n}},We;function Mo(){return We||(We=1,function(n,e){(function(i,r){n.exports=r()})(be,function(){var i=i||function(r,c){var p;if(typeof window<"u"&&window.crypto&&(p=window.crypto),typeof self<"u"&&self.crypto&&(p=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(p=globalThis.crypto),!p&&typeof window<"u"&&window.msCrypto&&(p=window.msCrypto),!p&&typeof be<"u"&&be.crypto&&(p=be.crypto),!p&&typeof zo=="function")try{p=vt}catch{}var R=function(){if(p){if(typeof p.getRandomValues=="function")try{return p.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof p.randomBytes=="function")try{return p.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},S=Object.create||function(){function o(){}return function(a){var l;return o.prototype=a,l=new o,o.prototype=null,l}}(),z={},d=z.lib={},D=d.Base=function(){return{extend:function(o){var a=S(this);return o&&a.mixIn(o),(!a.hasOwnProperty("init")||this.init===a.init)&&(a.init=function(){a.$super.init.apply(this,arguments)}),a.init.prototype=a,a.$super=this,a},create:function(){var o=this.extend();return o.init.apply(o,arguments),o},init:function(){},mixIn:function(o){for(var a in o)o.hasOwnProperty(a)&&(this[a]=o[a]);o.hasOwnProperty("toString")&&(this.toString=o.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),L=d.WordArray=D.extend({init:function(o,a){o=this.words=o||[],a!=c?this.sigBytes=a:this.sigBytes=o.length*4},toString:function(o){return(o||P).stringify(this)},concat:function(o){var a=this.words,l=o.words,v=this.sigBytes,$=o.sigBytes;if(this.clamp(),v%4)for(var M=0;M<$;M++){var H=l[M>>>2]>>>24-M%4*8&255;a[v+M>>>2]|=H<<24-(v+M)%4*8}else for(var B=0;B<$;B+=4)a[v+B>>>2]=l[B>>>2];return this.sigBytes+=$,this},clamp:function(){var o=this.words,a=this.sigBytes;o[a>>>2]&=4294967295<<32-a%4*8,o.length=r.ceil(a/4)},clone:function(){var o=D.clone.call(this);return o.words=this.words.slice(0),o},random:function(o){for(var a=[],l=0;l>>2]>>>24-$%4*8&255;v.push((M>>>4).toString(16)),v.push((M&15).toString(16))}return v.join("")},parse:function(o){for(var a=o.length,l=[],v=0;v>>3]|=parseInt(o.substr(v,2),16)<<24-v%8*4;return new L.init(l,a/2)}},k=f.Latin1={stringify:function(o){for(var a=o.words,l=o.sigBytes,v=[],$=0;$>>2]>>>24-$%4*8&255;v.push(String.fromCharCode(M))}return v.join("")},parse:function(o){for(var a=o.length,l=[],v=0;v>>2]|=(o.charCodeAt(v)&255)<<24-v%4*8;return new L.init(l,a)}},m=f.Utf8={stringify:function(o){try{return decodeURIComponent(escape(k.stringify(o)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(o){return k.parse(unescape(encodeURIComponent(o)))}},w=d.BufferedBlockAlgorithm=D.extend({reset:function(){this._data=new L.init,this._nDataBytes=0},_append:function(o){typeof o=="string"&&(o=m.parse(o)),this._data.concat(o),this._nDataBytes+=o.sigBytes},_process:function(o){var a,l=this._data,v=l.words,$=l.sigBytes,M=this.blockSize,H=M*4,B=$/H;o?B=r.ceil(B):B=r.max((B|0)-this._minBufferSize,0);var q=B*M,G=r.min(q*4,$);if(q){for(var ee=0;ee>>24)&16711935|(a<<24|a>>>8)&4278255360}var l=this._hash.words,v=m[w+0],$=m[w+1],M=m[w+2],H=m[w+3],B=m[w+4],q=m[w+5],G=m[w+6],ee=m[w+7],fe=m[w+8],ue=m[w+9],ce=m[w+10],de=m[w+11],O=m[w+12],U=m[w+13],K=m[w+14],ke=m[w+15],_=l[0],y=l[1],x=l[2],b=l[3];_=L(_,y,x,b,v,7,d[0]),b=L(b,_,y,x,$,12,d[1]),x=L(x,b,_,y,M,17,d[2]),y=L(y,x,b,_,H,22,d[3]),_=L(_,y,x,b,B,7,d[4]),b=L(b,_,y,x,q,12,d[5]),x=L(x,b,_,y,G,17,d[6]),y=L(y,x,b,_,ee,22,d[7]),_=L(_,y,x,b,fe,7,d[8]),b=L(b,_,y,x,ue,12,d[9]),x=L(x,b,_,y,ce,17,d[10]),y=L(y,x,b,_,de,22,d[11]),_=L(_,y,x,b,O,7,d[12]),b=L(b,_,y,x,U,12,d[13]),x=L(x,b,_,y,K,17,d[14]),y=L(y,x,b,_,ke,22,d[15]),_=f(_,y,x,b,$,5,d[16]),b=f(b,_,y,x,G,9,d[17]),x=f(x,b,_,y,de,14,d[18]),y=f(y,x,b,_,v,20,d[19]),_=f(_,y,x,b,q,5,d[20]),b=f(b,_,y,x,ce,9,d[21]),x=f(x,b,_,y,ke,14,d[22]),y=f(y,x,b,_,B,20,d[23]),_=f(_,y,x,b,ue,5,d[24]),b=f(b,_,y,x,K,9,d[25]),x=f(x,b,_,y,H,14,d[26]),y=f(y,x,b,_,fe,20,d[27]),_=f(_,y,x,b,U,5,d[28]),b=f(b,_,y,x,M,9,d[29]),x=f(x,b,_,y,ee,14,d[30]),y=f(y,x,b,_,O,20,d[31]),_=P(_,y,x,b,q,4,d[32]),b=P(b,_,y,x,fe,11,d[33]),x=P(x,b,_,y,de,16,d[34]),y=P(y,x,b,_,K,23,d[35]),_=P(_,y,x,b,$,4,d[36]),b=P(b,_,y,x,B,11,d[37]),x=P(x,b,_,y,ee,16,d[38]),y=P(y,x,b,_,ce,23,d[39]),_=P(_,y,x,b,U,4,d[40]),b=P(b,_,y,x,v,11,d[41]),x=P(x,b,_,y,H,16,d[42]),y=P(y,x,b,_,G,23,d[43]),_=P(_,y,x,b,ue,4,d[44]),b=P(b,_,y,x,O,11,d[45]),x=P(x,b,_,y,ke,16,d[46]),y=P(y,x,b,_,M,23,d[47]),_=k(_,y,x,b,v,6,d[48]),b=k(b,_,y,x,ee,10,d[49]),x=k(x,b,_,y,K,15,d[50]),y=k(y,x,b,_,q,21,d[51]),_=k(_,y,x,b,O,6,d[52]),b=k(b,_,y,x,H,10,d[53]),x=k(x,b,_,y,ce,15,d[54]),y=k(y,x,b,_,$,21,d[55]),_=k(_,y,x,b,fe,6,d[56]),b=k(b,_,y,x,ke,10,d[57]),x=k(x,b,_,y,G,15,d[58]),y=k(y,x,b,_,U,21,d[59]),_=k(_,y,x,b,B,6,d[60]),b=k(b,_,y,x,de,10,d[61]),x=k(x,b,_,y,M,15,d[62]),y=k(y,x,b,_,ue,21,d[63]),l[0]=l[0]+_|0,l[1]=l[1]+y|0,l[2]=l[2]+x|0,l[3]=l[3]+b|0},_doFinalize:function(){var m=this._data,w=m.words,C=this._nDataBytes*8,o=m.sigBytes*8;w[o>>>5]|=128<<24-o%32;var a=r.floor(C/4294967296),l=C;w[(o+64>>>9<<4)+15]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,w[(o+64>>>9<<4)+14]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360,m.sigBytes=(w.length+1)*4,this._process();for(var v=this._hash,$=v.words,M=0;M<4;M++){var H=$[M];$[M]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360}return v},clone:function(){var m=S.clone.call(this);return m._hash=this._hash.clone(),m}});function L(m,w,C,o,a,l,v){var $=m+(w&C|~w&o)+a+v;return($<>>32-l)+w}function f(m,w,C,o,a,l,v){var $=m+(w&o|C&~o)+a+v;return($<>>32-l)+w}function P(m,w,C,o,a,l,v){var $=m+(w^C^o)+a+v;return($<>>32-l)+w}function k(m,w,C,o,a,l,v){var $=m+(C^(w|~o))+a+v;return($<>>32-l)+w}c.MD5=S._createHelper(D),c.HmacMD5=S._createHmacHelper(D)}(Math),i.MD5})})(Oo);const lt=je;class Bo{canvas;ctx;videoTrack;mediaStream;isPlaying=!1;animationId;frameCount=0;hue=0;constructor(){this.canvas=document.createElement("canvas"),this.canvas.width=640,this.canvas.height=360,this.ctx=this.canvas.getContext("2d")}render=()=>{if(!this.ctx||!this.isPlaying)return;const{width:e,height:i}=this.canvas;this.frameCount++,this.hue=(this.hue+1)%360;const r=this.ctx.createLinearGradient(0,0,e,i);r.addColorStop(0,`hsl(${this.hue}, 70%, 50%)`),r.addColorStop(1,`hsl(${(this.hue+60)%360}, 70%, 50%)`),this.ctx.fillStyle=r,this.ctx.fillRect(0,0,e,i);const c=Date.now()/1e3,p=e/2+Math.sin(c*2)*150,R=i/2+Math.cos(c*1.5)*80;this.ctx.beginPath(),this.ctx.arc(p,R,40,0,Math.PI*2),this.ctx.fillStyle="white",this.ctx.fill(),this.ctx.fillStyle="white",this.ctx.font="bold 24px Arial",this.ctx.textAlign="center",this.ctx.fillText("Canvas Test Track",e/2,40),this.ctx.font="18px Arial",this.ctx.fillText(`Frame: ${this.frameCount}`,e/2,i-60),this.ctx.fillText(`Time: ${new Date().toLocaleTimeString()}`,e/2,i-30),this.animationId=requestAnimationFrame(this.render)};async play(){this.isPlaying||(this.isPlaying=!0,this.frameCount=0,this.render(),this.mediaStream=this.canvas.captureStream(30),this.videoTrack=this.mediaStream.getVideoTracks()[0])}stop(){this.isPlaying=!1,this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=void 0),this.videoTrack&&(this.videoTrack.stop(),this.videoTrack=void 0),this.mediaStream=void 0}getVideoTrack(){return this.videoTrack}}const Pe=new Bo,jo=["srcObject"],Ho={key:1,class:"text-12px"},Fo={class:"flex flex-col gap-8px pl-10px pr-10px"},Ao={class:"flex items-center justify-between"},Uo={class:"flex items-center justify-between"};function ze(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!we(n)}const Vo=V({name:"Pusher"}),Eo=V({...Vo,props:{data:{}},setup(n){const{t:e}=N(),i=T(!1),r=T(!1),c=Re(),p=T(""),R=T("live/test"),S=T(!1),z=n,{plugins:d,sysInfo:D}=ge(c),L=c.pluginActive("WebRTC");async function f(){try{return(await navigator.mediaDevices.enumerateDevices()).filter(l=>l.kind==="videoinput").map(l=>({label:l.label||`Camera ${l.deviceId.slice(0,10)}...`,value:l.deviceId,key:l.deviceId}))}catch(a){return console.error(e("routes.home.获取摄像头列表失败"),a),ae.error(e("routes.home.获取摄像头列表失败")),[]}}let P;const k=T(null);async function m(a){r.value=!0;const l=k.value=a,v=new RTCPeerConnection;P=()=>{v.close(),l?.getTracks().forEach(B=>{B.stop()}),S.value&&Pe.stop(),k.value=null},v.oniceconnectionstatechange=()=>{xe.info({message:"oniceconnectionstatechange",description:JSON.stringify(v.iceConnectionState)})},v.onicecandidate=B=>{xe.info({message:"onicecandidate",description:JSON.stringify(B.candidate)})},l.getTracks().forEach(B=>{v.addTrack(B,l)});const $=await v.createOffer();await v.setLocalDescription($),xe.info({message:"createOffer",description:()=>s("div",{class:"h-200px overflow-auto"},[$.sdp])});const M=await fetch(`${pe("webrtc","/push")}/${R.value}`,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:$.sdp}),H=await M.text();if(M.status>=300)throw`${M.status} ${M.statusText}: ${H}`;xe.success({message:"推流成功",description:H||""}),await v.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:H}))}Ie(()=>{i.value?L.value?S.value?C():o():(ae.error(e("routes.home.请先启用WebRTC插件")),i.value=!1):P?.(),z.data.onPush(i.value)});async function w(){const a=T({useLocalIP:"localhost",secretKey:"",expireTime:J().add(1,"hour")});Q.info({title:e("routes.home.推流地址"),width:800,content:()=>{let l,v,$;const M=B=>{if(!a.value.secretKey||!a.value.expireTime)return"";const q=Math.floor(a.value.expireTime.unix()).toString(16),G=lt(a.value.secretKey+R.value+q).toString();return(B.includes("?")?"&":"?")+`secret=${G}&expire=${q}`},H=[];for(const B of d.value){const q=B.pushAddr;if(q)for(const G of q){const ee=G.replace("{hostName}",a.value.useLocalIP).replace("{streamPath}",R.value);H.push({protocol:G.startsWith("http")?B.name.toLocaleLowerCase():G.split(":")[0],path:ee+M(ee)})}}return H.length?[s($e,{value:a.value.useLocalIP,onChange:B=>a.value.useLocalIP=B.target.value},{default:()=>[s(le,{value:"localhost"},ze(l=e("routes.home.使用localhost"))?l:{default:()=>[l]}),s(le,{value:D.value.publicIP},ze(v=e("routes.home.使用公网IP"))?v:{default:()=>[v]}),s(le,{value:D.value.localIP},ze($=e("routes.home.使用内网IP"))?$:{default:()=>[$]})]}),s(X,{layout:"inline"},{default:()=>[s(X.Item,null,{default:()=>[s("span",null,[e("routes.home.秘钥"),s(Xe,{title:e("routes.home.需要匹配配置文件中publish下的key配置")},{default:()=>[s(re,{style:"margin-left: 4px"},null)]})]),s(Se,{type:"text",placeholder:e("routes.home.请输入秘钥"),class:"w-250px",style:"margin-bottom: 10px",value:a.value.secretKey,onChange:B=>a.value.secretKey=B.target.value},null)]}),s(X.Item,{label:e("routes.home.过期时间")},{default:()=>[s(Ze,{placeholder:e("routes.home.选择过期时间"),showTime:!0,class:"w-250px",style:"margin-bottom: 10px",value:a.value.expireTime,onChange:B=>a.value.expireTime=B},null)]})]}),s(Z,{dataSource:H,columns:[{title:e("routes.home.协议"),dataIndex:"protocol"},{title:e("routes.home.推流地址"),dataIndex:"path"}],pagination:!1,size:"small"},null)]:s("span",null,[e("routes.home.请先启用一些插件")])}})}async function C(){try{await Pe.play();const a=Pe.mediaStream;if(!a)throw new Error("Canvas stream not available");return m(a).then(()=>{z.data.onPush(i.value),r.value=!1}).catch(l=>{Q.error({title:e("routes.home.推流失败"),content:l}),i.value=!1,r.value=!1,Pe.stop()})}catch(a){Q.error({title:e("routes.home.推流失败"),content:a instanceof Error?a.message:String(a)}),i.value=!1,r.value=!1}}function o(){navigator.mediaDevices.getUserMedia({video:!0}).then(async a=>{a.getTracks().forEach(v=>{v.stop()});const l=await f();p.value||(p.value=l[0]?.value||""),p.value&&(a=await navigator.mediaDevices.getUserMedia({video:{deviceId:p.value}})),Q.confirm({title:e("routes.home.选择摄像头"),content:()=>s("div",null,[s(_e,{value:p.value,onChange:async v=>{a.getTracks().forEach($=>{$.stop()}),a=await navigator.mediaDevices.getUserMedia({video:{deviceId:v}}),p.value=v},options:l,class:"w-250px"},null),s("video",{autoplay:!0,muted:!0,srcObject:a,width:"240",height:"180"},null)]),onCancel:()=>{a.getTracks().forEach(v=>{v.stop()})},onOk:()=>m(a).then(()=>{z.data.onPush(i.value),r.value=!1}).catch(v=>{Q.error({title:e("routes.home.推流失败"),content:v}),i.value=!1,r.value=!1})})})}return(a,l)=>(I(),F(t(te),{size:"small",class:"w-250px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.推流器")),1),k.value?(I(),F(t(he),{key:0,title:t(e)("routes.home.帮助"),content:t(e)("routes.home.推流器帮助")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])):ie("",!0)]),extra:h(()=>[s(t(j),{type:"link",onClick:w},{default:h(()=>[A(g(t(e)("routes.home.推流地址")),1)]),_:1})]),actions:h(()=>[u("div",Fo,[u("div",Ao,[u("div",null,g(t(e)("routes.home.流标识")),1),s(t(Se),{type:"text",class:"w-120px",value:R.value,"onUpdate:value":l[0]||(l[0]=v=>R.value=v),size:"small"},null,8,["value"]),s(t(Fe),{checked:i.value,"onUpdate:checked":l[1]||(l[1]=v=>i.value=v),loading:r.value,size:"small"},null,8,["checked","loading"])]),u("div",Uo,[l[6]||(l[6]=u("div",null,"推流源",-1)),s(t($e),{value:S.value,"onUpdate:value":l[2]||(l[2]=v=>S.value=v),size:"small"},{default:h(()=>[s(t(le),{value:!1},{default:h(()=>l[4]||(l[4]=[A("摄像头")])),_:1}),s(t(le),{value:!0},{default:h(()=>l[5]||(l[5]=[A("Canvas")])),_:1})]),_:1},8,["value"])])])]),default:h(()=>[s(t(W),{type:"source",position:t(E).Right},null,8,["position"]),k.value?(I(),Y("video",{key:0,id:"video",width:"224",height:"168",style:{"border-radius":"6px","object-fit":"cover"},autoplay:"",muted:"",srcObject:k.value},null,8,jo)):(I(),Y("span",Ho,[A(g(t(e)("routes.home.推流器说明"))+" ",1),l[3]||(l[3]=u("br",null,null,-1)),A(" "+g(t(e)("routes.home.推流器说明2")),1)]))]),_:1}))}}),Yo=["src"],No=V({__name:"debug-chart",props:{data:{}},setup(n){const{t:e}=N(),i=pe("debug","/charts"),r=n,c=()=>{r.data.onClose()};return(p,R)=>(I(),F(t(te),{size:"small",title:t(e)("routes.home.性能观测标题"),class:"w-800px h-600px drop-shadow-xl relative","body-style":{top:"40px",bottom:0,position:"absolute",left:0,right:0,padding:0}},{extra:h(()=>[s(t(j),{type:"link",onClick:c},{default:h(()=>[s(t(et),{class:"ml-1 text-gray-400"})]),_:1})]),default:h(()=>[u("iframe",{src:t(i),class:"w-full h-full",style:{border:"none"}},null,8,Yo)]),_:1},8,["title"]))}}),qo={class:"flex items-center"},Wo={class:"mr-2 ml-2 w-50px"},Go={class:"flex items-center justify-end pr-5"},Ko={class:"mr-2 ml-2 w-100px"},Qo=V({__name:"log-trail",props:{data:{}},setup(n){const{t:e}=N(),i=T(null),r=T(!0),c=T(""),p=T(null);tt(()=>{i.value=new EventSource(pe("logrotate")+"/trail"),i.value.onmessage=d=>{S.value.push(d.data),r.value&>(()=>{p.value?.scrollTo({top:p.value?.scrollHeight,behavior:"smooth"})})}}),Qe(()=>{i.value?.close()});const R=n,S=T([]),z=()=>{R.data.onClose()};return(d,D)=>(I(),F(t(te),{size:"small",title:t(e)("routes.home.日志标题"),class:"w-700px drop-shadow-2xl"},{extra:h(()=>[s(t(j),{type:"link",onClick:z},{default:h(()=>[s(t(et),{class:"ml-1 text-gray-400"})]),_:1})]),actions:h(()=>[u("div",qo,[u("div",Wo,g(t(e)("routes.home.过滤")),1),s(t(Se),{value:c.value,"onUpdate:value":D[0]||(D[0]=L=>c.value=L),size:"small"},null,8,["value"])]),u("div",Go,[u("div",Ko,g(t(e)("routes.home.自动滚动")),1),s(t(Fe),{checked:r.value,"onUpdate:checked":D[1]||(D[1]=L=>r.value=L),size:"small"},null,8,["checked"])])]),default:h(()=>[u("div",{class:"h-400px w-full overflow-auto",ref_key:"logContainer",ref:p},[(I(!0),Y(st,null,_t(c.value?S.value.filter(L=>L.includes(c.value)):S.value,(L,f)=>(I(),Y("div",{key:f},g(L),1))),128))],512)]),_:1},8,["title"]))}}),Jo={class:"flex flex-col gap-2"},Xo={key:0,class:"flex items-center gap-2 mb-2"},Zo={key:2,class:"text-12px"},ea={class:"flex items-center justify-between pl-10px pr-10px"};function De(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!we(n)}const ta=V({name:"Pusher"}),sa=V({...ta,props:{data:{}},setup(n){const{t:e}=N(),i=T("ws-flv"),r=T("live/test"),c=T(""),p=T(!1),R=T(!1),S=T([]),z=n;Be().then(f=>{S.value=[{title:"live/test",value:"live/test"}].concat(f.filter(P=>P.path!=="live/test").map(P=>({title:P.path,value:P.path})))});function d(f){R.value=!1,typeof f=="string"&&(xe.error({message:e("routes.home.播放结束"),description:f}),p.value=!1)}function D(f){Be().then(P=>{S.value=[{title:f,value:f}].concat(P.map(k=>({title:k.path,value:k.path})))})}Ie(()=>{z.data.onPlay(p.value),p.value?(R.value=!0,c.value=r.value):c.value=""});async function L(){const f=T({useLocalIP:"localhost",secretKey:"",expireTime:J().add(1,"hour")});Q.info({title:e("routes.home.播放地址"),width:800,content:()=>{let P,k,m;const w=o=>{if(!f.value.secretKey||!f.value.expireTime)return"";const a=Math.floor(f.value.expireTime.unix()).toString(16),l=lt(f.value.secretKey+r.value+a).toString();return(o.includes("?")?"&":"?")+`secret=${l}&expire=${a}`},C=[];for(const o of z.data.plugins){const a=o.playAddr;if(a)for(const l of a){const v=l.replace("{hostName}",f.value.useLocalIP).replace("{streamPath}",r.value);C.push({protocol:l.startsWith("http")?o.name.toLocaleLowerCase():l.split(":")[0],path:v+w(v)})}}return C.length?[s($e,{value:f.value.useLocalIP,onChange:o=>f.value.useLocalIP=o.target.value},{default:()=>[s(le,{value:"localhost"},De(P=e("routes.home.使用localhost"))?P:{default:()=>[P]}),s(le,{value:z.data.sysInfo.publicIP},De(k=e("routes.home.使用公网IP"))?k:{default:()=>[k]}),s(le,{value:z.data.sysInfo.localIP},De(m=e("routes.home.使用内网IP"))?m:{default:()=>[m]})]}),s(X,{layout:"inline"},{default:()=>[s(X.Item,null,{default:()=>[s("span",null,[e("routes.home.秘钥"),s(Xe,{title:e("routes.home.需要匹配配置文件中subscribe下的key配置")},{default:()=>[s(re,{style:"margin-left: 4px"},null)]})]),s(Se,{type:"text",placeholder:e("routes.home.请输入秘钥"),class:"w-250px",style:"margin-bottom: 10px",value:f.value.secretKey,onChange:o=>f.value.secretKey=o.target.value},null)]}),s(X.Item,{label:e("routes.home.过期时间")},{default:()=>[s(Ze,{placeholder:e("routes.home.选择过期时间"),showTime:!0,class:"w-250px",style:"margin-bottom: 10px",value:f.value.expireTime,onChange:o=>f.value.expireTime=o},null)]})]}),s(Z,{dataSource:C,columns:[{title:e("routes.home.协议"),dataIndex:"protocol"},{title:e("routes.home.播放地址"),dataIndex:"path"}],pagination:!1,size:"small"},null)]:s("span",null,[e("routes.home.请先启用一些插件")])}})}return(f,P)=>(I(),F(t(te),{size:"small",class:"w-250px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.播放器")),1),p.value?(I(),F(t(he),{key:0,title:t(e)("routes.home.帮助"),content:t(e)("routes.home.播放器帮助")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])):ie("",!0)]),extra:h(()=>[s(t(j),{type:"link",onClick:L},{default:h(()=>[A(g(t(e)("routes.home.播放地址")),1)]),_:1})]),actions:h(()=>[u("div",ea,[u("div",null,g(t(e)("routes.home.流标识")),1),s(t(_e),{class:"w-120px",showSearch:"",value:r.value,"onUpdate:value":P[1]||(P[1]=k=>r.value=k),options:S.value,onSearch:D,size:"small"},null,8,["value","options"]),s(t(Fe),{checked:p.value,"onUpdate:checked":P[2]||(P[2]=k=>p.value=k),loading:R.value,size:"small"},null,8,["checked","loading"])])]),default:h(()=>[s(t(W),{type:"source",position:t(E).Left},null,8,["position"]),u("div",Jo,[p.value?(I(),Y("div",Xo,[s(t($e),{value:i.value,"onUpdate:value":P[0]||(P[0]=k=>i.value=k),size:"small"},{default:h(()=>[s(t(Ee),{value:"ws-flv"},{default:h(()=>P[3]||(P[3]=[A("WS-FLV")])),_:1}),s(t(Ee),{value:"webrtc"},{default:h(()=>P[4]||(P[4]=[A("WebRTC")])),_:1})]),_:1},8,["value"])])):ie("",!0),p.value?(I(),F(At,{key:1,streamPath:c.value,format:i.value,onPlay:d,class:"flex-1 m-r-10px w-224px h-168px"},null,8,["streamPath","format"])):(I(),Y("span",Zo,[A(g(t(e)("routes.home.播放器说明"))+" ",1),P[5]||(P[5]=u("br",null,null,-1)),A(" "+g(t(e)("routes.home.播放器说明2")),1)]))])]),_:1}))}}),oa={key:1,class:"text-12px"},aa=V({name:"Remote"}),na=V({...aa,setup(n){const{t:e}=N(),{pause:i,resume:r}=ne(R),c=T([]),p=T([{title:e("routes.home.名称"),dataIndex:"name"},{title:e("routes.home.状态"),dataIndex:"status",customRender:({record:S})=>S.status?e("routes.home.在线"):e("routes.home.离线")}]);function R(){return jt().then(S=>{c.value=S}).catch(S=>{console.error(`stream-proxy-getList-error: ${S}`)})}return R(),(S,z)=>(I(),F(t(te),{size:"small",class:"w-250px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.远端服务器或CDN")),1),c.value.length?(I(),F(t(he),{key:0,title:t(e)("routes.home.帮助"),content:t(e)("routes.home.可以将流转推到远端服务器")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])):ie("",!0)]),extra:h(()=>[s(t(j),{type:"link",onClick:z[0]||(z[0]=d=>t(Ut)({updateList:R,pause:t(i),resume:t(r)}))},{default:h(()=>[A(g(t(e)("routes.home.添加")),1)]),_:1})]),default:h(()=>[s(t(W),{type:"target",position:t(E).Left},null,8,["position"]),c.value.length?(I(),F(t(Z),{key:0,"data-source":c.value,columns:p.value,size:"small",pagination:!1,bordered:""},null,8,["data-source","columns"])):(I(),Y("span",oa,g(t(e)("routes.home.转推功能说明")),1))]),_:1}))}}),ra={key:1},la={key:1,class:"text-12px"},ia=V({name:"ReadRecord"}),ua=V({...ia,props:{data:{}},setup(n){const{t:e}=N(),i=n,r=T([]),c=ve(()=>i.data.plugins.some(m=>m.name==="MP4"||m.name==="FLV"));function p(m){const w=new Date(m.startTime),o=new Date(m.endTime).getTime()-w.getTime(),a=o/(36e5*24)>>0,l=(o/36e5>>0)%24,v=(o/6e4>>0)%60,$=(o/1e3>>0)%60;return`${a?`${a}d`:""}${l?`${l}h`:""}${v}'${$}"`}const R=T([{title:e("routes.home.录像路径"),dataIndex:"filePath",customRender:({text:m,record:w})=>s("div",{class:"flex items-center justify-between"},[s("span",{class:"flex-1"},[m]),s("div",{class:"flex gap-2"},[s(Et,{class:"cursor-pointer text-blue-500 hover:text-blue-600",onClick:()=>{k(`${pe(w.type.toLowerCase(),"/download")}/${w.streamPath}?id=${w.id}`,`${w.streamPath}-${w.id}.${w.type.toLowerCase()}`)}},null),s(yt,{class:"cursor-pointer text-red-500 hover:text-red-600",onClick:()=>{Q.confirm({title:e("routes.home.确认删除"),content:e("routes.home.确定要删除这条录像记录吗"),onOk:()=>Vt({type:w.type.toLowerCase(),id:w.id}).then(()=>{const C=r.value.find(o=>o.streamPath===w.streamPath);C&&loadDetailRecords(C,pagination.value)})})}},null)])])},{title:e("routes.home.录像开始时间"),dataIndex:"startTime",customRender:({text:m})=>J(m).format("YYYY-MM-DD HH:mm:ss")},{title:e("routes.home.录像结束时间"),dataIndex:"endTime",customRender:({text:m})=>J(m).format("YYYY-MM-DD HH:mm:ss")},{title:e("routes.home.录像时长"),customRender:({record:m})=>p(m)}]),S=T([{title:e("routes.home.录像流路径"),dataIndex:"streamPath",customRender:({text:m,record:w})=>{const C=T([]),o=T({current:1,pageSize:10,total:0,onChange:(l,v)=>{o.value.current=l,o.value.pageSize=v,a(w,o.value)},showTotal:l=>e("routes.home.共条",{total:l})});function a(l,v){return nt({streamPath:l.streamPath,type:l.type.toLowerCase(),pageNum:v.current,pageSize:v.pageSize}).then($=>{C.value=Array.isArray($)?$:$.list||[],o.value.total=Array.isArray($)?$.length:$.total||0})}return s("div",{class:"cursor-pointer",onClick:()=>{a(w,o.value),Q.info({title:e("routes.home.录像文件列表",{streamPath:w.streamPath}),content:()=>s(Z,{dataSource:C.value,columns:R.value,pagination:o.value,size:"small",bordered:!0},null),width:1e3})}},[m,s(ss,{style:{marginLeft:"8px",cursor:"pointer"}},null)])}},{title:e("routes.home.录像时长"),customRender:({record:m})=>p(m)},{title:e("routes.home.录像类型"),dataIndex:"type"}]),{pause:z,resume:d}=ne(f),D=T([]),L=[0,0];function f(){return Promise.all([Te("mp4").catch(m=>(console.error(`mp4-record-catalog-error: ${m}`),[])),Te("flv").catch(m=>(console.error(`flv-record-catalog-error: ${m}`),[]))]).then(([m,w])=>{const C=[...m.map(o=>({...o,type:"MP4"})),...w.map(o=>({...o,type:"FLV"}))];r.value=C,D.value=[...new Set(C.map(o=>o.streamPath))],C.length>0&&(L[0]=Math.min(...C.map(o=>new Date(o.startTime).getTime())),L[1]=Math.max(...C.map(o=>new Date(o.endTime).getTime())))})}const P=()=>{const m=T(D.value[0]),w=T("MP4"),C=T([J(L[0]),J(L[1])]);Q.confirm({title:e("routes.home.录像下载标题"),width:500,content:()=>s("div",null,[s(X,{layout:"vertical"},{default:()=>[s(X.Item,{label:e("routes.home.录像流路径"),required:!0},{default:()=>[s(_e,{value:m.value,onChange:o=>m.value=o,options:D.value.map(o=>({label:o,value:o}))},null)]}),s(X.Item,{label:e("routes.home.录像类型"),required:!0},{default:()=>[s(_e,{value:w.value,onChange:o=>w.value=o,options:[{label:"MP4",value:"MP4"},{label:"FLV",value:"FLV"}]},null)]}),s(X.Item,{label:e("routes.home.录像时间范围"),required:!0},{default:()=>[s(ot,{disabledDate:o=>{const a=r.value.find(l=>l.streamPath===m.value&&l.type===w.value);return o&&(oJ(a?.endTime))},value:C.value,onChange:o=>C.value=o,showTime:!0,format:"YYYY-MM-DD HH:mm:ss"},null)]})]})]),onOk:()=>{if(!m.value||!C.value[0]||!C.value[1])return Promise.reject(e("routes.home.请填写完整信息"));const o=`${J(C.value[0]).valueOf()}-${J(C.value[1]).valueOf()}`;return k(`${pe(w.value.toLowerCase(),"/download")}/${m.value}?range=${o}`,`${m.value}-${C.value[0].format("YYYYMMDDHHmmss")}-${C.value[1].format("YYYYMMDDHHmmss")}.${w.value.toLowerCase()}`),Promise.resolve()}})};function k(m,w){const C=document.createElement("a");C.href=m,C.target="_blank",C.download=w,document.body.appendChild(C),C.click(),document.body.removeChild(C)}return Ce(c,m=>{m?(f(),d()):(z(),r.value=[],D.value=[],L[0]=0,L[1]=0)},{immediate:!0}),(m,w)=>(I(),F(t(te),{size:"small",class:"w-250px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.录像读取")),1),r.value.length?(I(),F(t(he),{key:0,title:t(e)("routes.home.帮助"),content:t(e)("routes.home.录像读取帮助")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])):ie("",!0)]),extra:h(()=>[c.value?(I(),F(t(j),{key:0,type:"link",onClick:P},{default:h(()=>[A(g(t(e)("routes.home.录像下载")),1)]),_:1})):(I(),Y("span",ra,g(t(e)("routes.home.请先启用MP4或FLV插件")),1))]),default:h(()=>[s(t(W),{type:"source",position:t(E).Right},null,8,["position"]),r.value.length?(I(),F(t(Z),{key:0,"data-source":r.value,columns:S.value,size:"small",pagination:!1,bordered:"",scroll:{x:"max-content"},class:"record-table"},null,8,["data-source","columns"])):(I(),Y("span",la,g(t(e)("routes.home.录像读取功能说明")),1))]),_:1}))}});const ca=Je(ua,[["__scopeId","data-v-1bf0d5af"]]),da={key:1},ma={key:1,class:"text-12px"},pa=V({name:"PlayRecord"}),ha=V({...pa,props:{data:{}},setup(n){const{t:e}=N(),i=T(null),r=T([]),c=T(),p=T([]),R=T("mp4"),S=n,z=ve(()=>S.data.plugins.some(D=>D.name==="MP4"||D.name==="FLV")),d=async()=>{if(p.value.length){p.value=[];return}const[D,L]=await Promise.all([Te("mp4").catch(()=>[]),Te("flv").catch(()=>[])]),f=[...D.map(k=>({...k,type:"mp4"})),...L.map(k=>({...k,type:"flv"}))];if(f.length===0){Q.warning({title:e("routes.home.提示"),content:e("routes.home.没有可用的录像记录")});return}r.value=[...new Set(f.map(k=>k.streamPath))].map(k=>({label:k,value:k})),c.value=r.value[0].value,R.value=f.find(k=>k.streamPath===c.value)?.type||"mp4";let P=T([J(f[0].startTime),J(f[0].endTime)]);Q.confirm({title:e("routes.home.播放录像"),width:500,content:()=>s("div",null,[s(X,{layout:"vertical"},{default:()=>[s(X.Item,{label:e("routes.home.录像流路径"),required:!0},{default:()=>[s(_e,{value:c.value,onChange:k=>{c.value=k,R.value=f.find(m=>m.streamPath===k)?.type||"mp4"},placeholder:e("routes.home.请选择流路径"),options:r.value},null)]}),s(X.Item,{label:e("routes.home.录像类型"),required:!0},{default:()=>[s(_e,{value:R.value,onChange:k=>R.value=k,options:[{label:"MP4",value:"mp4"},{label:"FLV",value:"flv"}]},null)]}),s(X.Item,{label:e("routes.home.播放时间范围"),required:!0},{default:()=>[s(ot,{value:P.value,disabledDate:k=>{const m=f.find(w=>w.streamPath===c.value&&w.type===R.value);return k&&(kJ(m?.endTime))},onChange:k=>P.value=k,showTime:!0,format:"YYYY-MM-DD HH:mm:ss"},null)]})]})]),onOk:async()=>{if(!P.value?.[0]||!P.value?.[1])return Promise.reject(e("routes.home.请选择时间范围"));p.value=await nt({streamPath:c.value,type:R.value,range:`${P.value[0].unix()}-${P.value[1].unix()}`})}})};return(D,L)=>(I(),F(t(te),{size:"small",class:"w-250px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.录像播放")),1),i.value?(I(),F(t(he),{key:0,title:t(e)("routes.home.帮助"),content:t(e)("routes.home.录像播放帮助")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])):ie("",!0)]),extra:h(()=>[z.value?(I(),F(t(j),{key:0,type:"link",onClick:d},{default:h(()=>[A(g(p.value.length?t(e)("routes.home.停止"):t(e)("routes.home.播放")),1)]),_:1})):(I(),Y("span",da,g(t(e)("routes.home.请先启用MP4或FLV插件")),1))]),default:h(()=>[s(t(W),{type:"target",position:t(E).Left},null,8,["position"]),p.value.length?(I(),F(Yt,{key:0,src:`${t(pe)("hls","/vod")}/fmp4.m3u8?start=${new Date(p.value[0].startTime).getTime()}&streamPath=${c.value}`},null,8,["src"])):(I(),Y("span",ma,g(t(e)("routes.home.录像播放功能说明")),1))]),_:1}))}}),fa={key:0,class:"p-8px"},va={key:1,class:"text-12px"},ga=V({name:"Upstream"}),_a=V({...ga,setup(n){const{t:e}=N(),i=Re(),{nodeHistory:r}=ge(i),c=[{title:"M7S ID",dataIndex:"m7sId",key:"m7sId"},{title:"IP",dataIndex:"ip",key:"ip"}];return(p,R)=>(I(),F(t(te),{size:"small",class:"w-500px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.上级节点")),1)]),extra:h(()=>[s(t(j),{disabled:!t(r).length,type:"link",size:"small",onClick:t(i).removeLastNode},{default:h(()=>[A(g(t(e)("routes.home.返回上一级")),1)]),_:1},8,["disabled","onClick"])]),default:h(()=>[s(t(W),{type:"source",position:t(E).Bottom},null,8,["position"]),t(r).length?(I(),Y("div",fa,[s(t(Z),{columns:c,"data-source":t(r),size:"small",pagination:!1},null,8,["data-source"])])):(I(),Y("span",va,g(t(e)("routes.home.点击右上角按钮可以返回上级节点")),1))]),_:1}))}}),Oe=xt({requestOptions:{apiUrl:()=>pe("cascadeserver")}});function ya(){return Oe.get({url:"/list"})}function xa(n){return Oe.post({url:"/create",data:n})}function ba(n){return Oe.post({url:`/delete/${n.id}`})}function wa(n){return Oe.post({url:"/update",data:n})}const ka={key:0},Pa={key:0,class:"p-8px"},Ca={key:1,class:"text-12px"},Sa={key:1,class:"p-16px text-center text-gray-500"};function Ge(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!we(n)}const $a=V({name:"Downstream"}),Ta=V({...$a,props:{data:{default:()=>({active:!1})}},setup(n){const{t:e}=N(),i=n,r=T([]);T(!1),T();const c=()=>({type:"object",properties:{name:{type:"string",title:e("routes.home.节点名称"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:e("routes.home.请输入节点名称")},"x-validator":[{required:!0,message:e("routes.home.请输入节点名称")},{max:50,message:e("routes.home.节点名称不能超过50个字符")}]},secret:{type:"string",title:e("routes.home.密钥"),"x-decorator":"FormItem","x-component":"Password","x-component-props":{placeholder:e("routes.home.请输入密钥")},"x-validator":[{message:e("routes.home.请输入密钥")}]}}}),p=async f=>{try{await ba(f),ae.success(e("routes.home.删除成功")),d()}catch(P){ae.error(e("routes.home.删除失败")+":"+P.message)}},R=Ke(),S=[{title:e("routes.home.名称"),dataIndex:"name",key:"name",customRender:({record:f})=>f.online?s(j,{type:"link",size:"small",onClick:()=>{R({name:"Home"})}},{default:()=>[f.name]}):f.name},{title:"IP",dataIndex:"ip",key:"ip"},{title:e("routes.home.状态"),key:"status",width:100,customRender:({record:f})=>f.online?e("routes.home.已连接"):e("routes.home.未连接")},{title:e("routes.home.操作"),key:"action",width:100,customRender:({record:f})=>{let P,k;return s(wt,null,{default:()=>[s(j,{type:"link",size:"small",onClick:()=>z(f)},Ge(P=e("routes.home.修改"))?P:{default:()=>[P]}),s(bt,{title:e("routes.home.确定要删除该节点吗"),onConfirm:()=>p(f)},{default:()=>[s(j,{type:"link",size:"small",danger:!0},Ge(k=e("routes.home.删除"))?k:{default:()=>[k]})]})]})}}],z=f=>{const P=!!f,k=f||{id:Date.now(),name:"",ip:"",secret:"",online:!1},{FormilyForm:m,form:w,submit:C}=kt({schema:c(),formProps:{initialValues:k}});Pt({content:()=>s(m,null,null),modalConfig:{title:e(P?"routes.home.修改下级节点":"routes.home.添加下级节点"),maskClosable:!1,width:500,onOk:async()=>{try{const o=await C();if(o){const a={...k,...o};return a.online?Promise.reject(e("routes.home.请先断开当前连接")):(P?(await wa(a),ae.success(e("routes.home.修改成功"))):(await xa(a),ae.success(e("routes.home.添加成功"))),d(),Promise.resolve(!0))}return Promise.reject(!1)}catch(o){return o===!1?Promise.reject(!1):(ae.error(e(P?"routes.home.修改":"routes.home.添加")+"失败:"+o.message),Promise.reject(o))}},onClose:()=>{w.reset()}}})};async function d(){if(i.data.active)try{r.value=await ya()}catch(f){ae.error(e("routes.home.获取下级节点列表失败")+":"+f.message)}}const{pause:D,resume:L}=ne(d);return D(),Ce(()=>i.data.active,f=>{f?(d(),L()):(r.value=[],D())}),tt(()=>{i.data.active&&(d(),L())}),(f,P)=>(I(),F(t(te),{size:"small",class:"w-500px drop-shadow-xl"},{title:h(()=>[u("span",null,g(t(e)("routes.home.下级节点")),1),s(t(he),{title:t(e)("routes.home.帮助"),content:t(e)("routes.home.下级节点功能说明")},{default:h(()=>[s(t(j),{type:"link",size:"small"},{default:h(()=>[s(t(re),{class:"ml-1 text-gray-400"})]),_:1})]),_:1},8,["title","content"])]),extra:h(()=>[s(t(j),{type:"link",size:"small",onClick:P[0]||(P[0]=k=>z()),disabled:!i.data.active},{default:h(()=>[A(g(t(e)("routes.home.添加节点")),1)]),_:1},8,["disabled"])]),default:h(()=>[s(t(W),{type:"target",position:t(E).Top},null,8,["position"]),i.data.active?(I(),Y("div",ka,[r.value.length?(I(),Y("div",Pa,[s(t(Z),{columns:S,"data-source":r.value,size:"small",pagination:!1},null,8,["data-source"])])):(I(),Y("span",Ca,g(t(e)("routes.home.下级节点功能说明")),1))])):(I(),Y("div",Sa,g(t(e)("routes.home.服务器需要启用CascadeServer插件")),1))]),_:1}))}}),La={class:"text-text flex items-center gap-2"},Ia=V({__name:"flow",setup(n){const{t:e}=N(),i={instance:oe(To),pullProxy:oe(Ro),pusher:oe(Eo),debugChart:oe(No),logTrail:oe(Qo),preview:oe(sa),pushProxy:oe(na),readRecord:oe(ca),playRecord:oe(ha),upstream:oe(_a),downstream:oe(Ta)},r=T(!1),c=T(!1),p=T(!1),R=T(!1),S=Re(),{online:z}=ge(S),d=ve(()=>({id:"center",type:"instance",data:{onShowDebugChart:()=>{p.value=!0},onShowLogTrail:()=>{R.value=!0}},position:{x:400,y:300}})),D=ve(()=>z.value?[...p.value?[{id:"debugChart",position:{x:100,y:100},data:{onClose:()=>{p.value=!1}},type:"debugChart",zIndex:1e3}]:[],...R.value?[{id:"logTrail",position:{x:100,y:300},type:"logTrail",data:{onClose:()=>{R.value=!1}},zIndex:1001}]:[],{id:"pullProxy",position:{x:50,y:100},targetPosition:E.Right,data:{plugins:S.plugins},type:"pullProxy"},{id:"pushProxy",position:{x:1e3,y:100},data:{plugins:S.plugins},sourcePosition:E.Left,type:"pushProxy"},{id:"pusher",position:{x:50,y:350},data:{plugins:S.plugins,onPush:f=>{r.value=f}},targetPosition:E.Right,type:"pusher"},{id:"player",position:{x:1e3,y:350},data:{plugins:S.plugins,sysInfo:S.sysInfo,onPlay:f=>{c.value=f}},sourcePosition:E.Left,type:"preview"},{id:"upstream",type:"upstream",position:{x:400,y:100},data:{plugins:S.plugins}},{id:"downstream",type:"downstream",position:{x:400,y:700},data:{plugins:S.plugins,active:S.plugins.some(f=>f.name==="CascadeServer")||!1}},d.value,{id:"readRecord",type:"readRecord",data:{plugins:S.plugins},position:{x:50,y:700},targetPosition:E.Right},{id:"playRecord",type:"playRecord",data:{plugins:S.plugins},position:{x:1e3,y:700},sourcePosition:E.Left}]:[d.value]),L=ve(()=>z.value?[{id:"e1->center",source:"pullProxy",target:"center",targetHandle:"target-pull",animated:!0},{id:"epusher->center",source:"pusher",target:"center",targetHandle:"target-push",animated:!0,style:r.value?{stroke:"#000",border:"2px",filter:"drop-shadow(0 0 2px cyan)"}:void 0},{id:"center->pushProxy",source:"center",target:"pushProxy",sourceHandle:"source-push",animated:!0},{id:"center->player",source:"center",target:"player",sourceHandle:"source-play",animated:!0,style:c.value?{stroke:"#000",border:"2px",filter:"drop-shadow(0 0 2px cyan)"}:void 0},{id:"e2->center",source:"upstream",target:"center",targetHandle:"upstream"},{id:"e3->center",source:"center",target:"downstream",sourceHandle:"downstream"},{id:"readRecord->center",source:"readRecord",target:"center",targetHandle:"target-read",animated:!0},{id:"center->playRecord",source:"center",target:"playRecord",sourceHandle:"source-read",animated:!0}]:[]);return(f,P)=>(I(),Y(st,null,[u("h2",La,[u("span",null,[A(g(t(e)("routes.home.Monibuca超级面板"))+" ",1),s(t(Me),{color:"green",class:"text-10px v-text-bottom"},{default:h(()=>P[0]||(P[0]=[A("For m7s Pro V5")])),_:1})]),s(t(Me),{color:"blue",class:"text-12px font-normal"},{default:h(()=>[s(t(Kt),{class:"mr-1"}),A(" "+g(t(e)("routes.home.面板拖拽提示")),1)]),_:1})]),s(t(Tt),{style:{position:"unset"},nodes:D.value,"node-types":i,edges:L.value,"zoom-on-scroll":!1,"pan-on-drag":!0,"zoom-on-double-click":!1,"nodes-connectable":!1,"select-nodes-on-drag":!1,"connect-on-click":!1,"elements-selectable":!1},{default:h(()=>[s(t($t))]),_:1},8,["nodes","edges"])],64))}});const Ra={class:"h-100vh w-100vw p-10px",style:{background:"var(--layout-background)"}},Oa={class:"h-full w-full flex min-w-1200px"},za=V({name:"Instance"}),sn=V({...za,setup(n){const{t:e}=N();Nt(),ge(Ct());const i=St();return ge(i),ve(()=>[{title:"Monibuca",description:e("routes.home.开源Go语言流媒体服务器框架"),url:"https://monibuca.com",svg:"logo",size:40},{title:"Jessibuca",description:e("routes.home.纯H5音视频流播放器"),url:"https://jessibuca.com",svg:"jb",size:40},{title:"Rebebuca",description:e("routes.home.Rust桌面端FFMPEG管理器"),url:"https://rebebuca.com",svg:"rb",size:34}]),(r,c)=>(I(),Y("div",Ra,[u("div",Oa,[ie("",!0),s(t(te),{class:"flex-1 rounded-r-lg",bodyStyle:{height:"100%"}},{default:h(()=>[s(Ia)]),_:1})])]))}});export{sn as default}; //# sourceMappingURL=index-a1f4d80a.js.map