yo-moss-ai 0.0.37 → 0.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/runtime-manifest.json +1 -1
- package/dist/assets/{AppCredits-DljMSYmh.js → AppCredits-cV9khBSC.js} +1 -1
- package/dist/assets/{AppLayout-DiWEYRti.js → AppLayout-Dlztl-Rp.js} +1 -1
- package/dist/assets/Camera-DrT-c03p.js +1 -0
- package/dist/assets/{FindMoss-8z3VYlpj.css → FindMoss-C34s2ATr.css} +1 -1
- package/dist/assets/FindMoss-DNRc18Un.js +1 -0
- package/dist/assets/{Flash-k-kQ44fT.js → Flash-C2I_k6ua.js} +1 -1
- package/dist/assets/{Gamepad-BiOJu3r6.js → Gamepad-COFDbNC2.js} +1 -1
- package/dist/assets/{Hardware-C4c5gu13.js → Hardware-BZ1NgtO7.js} +1 -1
- package/dist/assets/{Hotkeys-CgiWKJ5Q.js → Hotkeys-Y3sQJHWU.js} +1 -1
- package/dist/assets/{McpHub-B4gErJam.js → McpHub-CPAYJ3Dy.js} +1 -1
- package/dist/assets/{MiHome-B3mE_sxP.js → MiHome-DFiaGJrw.js} +1 -1
- package/dist/assets/{PhBell.vue-CpBxADpx.js → PhBell.vue-CTc18bBH.js} +1 -1
- package/dist/assets/{PhKeyboard.vue-Bhn7nywT.js → PhKeyboard.vue-CH1rRfnX.js} +1 -1
- package/dist/assets/{PhLightbulb.vue-8FDM6yNM.js → PhLightbulb.vue-DKm3O2_g.js} +1 -1
- package/dist/assets/{PhLightning.vue-CSfF2k73.js → PhLightning.vue-8KTznipy.js} +1 -1
- package/dist/assets/{PhPlugs.vue-1_OD3dAV.js → PhPlugs.vue-Dqy5L0KC.js} +1 -1
- package/dist/assets/{PhPlus.vue-GCLId0hZ.js → PhPlus.vue-DNOmeEir.js} +1 -1
- package/dist/assets/{PhSpeakerHigh.vue-BOlRlm3F.js → PhSpeakerHigh.vue--Ok2VlQq.js} +1 -1
- package/dist/assets/{PhTelevisionSimple.vue-BtqkuNc8.js → PhTelevisionSimple.vue-Cj_jHeEo.js} +1 -1
- package/dist/assets/{Remotes-CyLUjpBI.js → Remotes-BC_94mt4.js} +1 -1
- package/dist/assets/{Terminal-Dlvi8fJS.js → Terminal-B7yPurz3.js} +3 -3
- package/dist/assets/{Yunxiangji-LB7PMv4p.js → Yunxiangji-C-7ECXSJ.js} +1 -1
- package/dist/assets/{index-8ELWKDB7.js → index-CMMVyrw-.js} +2 -2
- package/dist/assets/{usePtzControl-BneBJTmy.js → usePtzControl-B37Lef3z.js} +1 -1
- package/dist/index.html +1 -1
- package/dist-server/board-presets.mjs +1 -1
- package/dist-server/camera-discover.mjs +1 -0
- package/dist-server/camera.mjs +1 -1
- package/dist-server/dev-ui.mjs +1 -1
- package/dist-server/device-chat-sync.mjs +1 -1
- package/dist-server/device-config-view.mjs +1 -1
- package/dist-server/device-focus.mjs +1 -1
- package/dist-server/device-http.mjs +1 -1
- package/dist-server/device-identity.mjs +1 -1
- package/dist-server/device-presence.mjs +1 -1
- package/dist-server/device-probe.mjs +1 -1
- package/dist-server/device-registry.mjs +1 -1
- package/dist-server/device-routes.mjs +1 -1
- package/dist-server/device-runtime.mjs +1 -1
- package/dist-server/device-session.mjs +1 -1
- package/dist-server/ffmpeg.mjs +1 -1
- package/dist-server/gimbal-control.mjs +1 -1
- package/dist-server/home-path.mjs +1 -1
- package/dist-server/http-header.mjs +1 -1
- package/dist-server/index.mjs +1 -1
- package/dist-server/ir-import-validate.mjs +1 -1
- package/dist-server/known-scan-device.mjs +1 -1
- package/dist-server/lan-discover.mjs +1 -1
- package/dist-server/listen-port.mjs +1 -1
- package/dist-server/mcp/backoff.mjs +1 -1
- package/dist-server/mcp/bridge-manager.mjs +1 -1
- package/dist-server/mcp/builtin-tools.mjs +1 -1
- package/dist-server/mcp/dedupe-servers.mjs +1 -1
- package/dist-server/mcp/doctor.mjs +1 -1
- package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
- package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
- package/dist-server/mcp/hotkey-driver.mjs +1 -1
- package/dist-server/mcp/hotkey-handlers.mjs +1 -1
- package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
- package/dist-server/mcp/hotkey-store.mjs +1 -1
- package/dist-server/mcp/http-client.mjs +1 -1
- package/dist-server/mcp/http-pipe.mjs +1 -1
- package/dist-server/mcp/local-probe.mjs +1 -1
- package/dist-server/mcp/marketplace.mjs +1 -1
- package/dist-server/mcp/onvif-handlers.mjs +1 -1
- package/dist-server/mcp/parse-server-json.mjs +1 -1
- package/dist-server/mcp/paths.mjs +1 -1
- package/dist-server/mcp/routes.mjs +1 -1
- package/dist-server/mcp/schema.mjs +1 -1
- package/dist-server/mcp/settings.mjs +1 -1
- package/dist-server/mcp/shell-approval.mjs +1 -1
- package/dist-server/mcp/shell-policy.mjs +1 -1
- package/dist-server/mcp/shell-trash.mjs +1 -1
- package/dist-server/mcp/stdio-pipe.mjs +1 -1
- package/dist-server/mcp/store.mjs +1 -1
- package/dist-server/mcp/task-notify.mjs +1 -1
- package/dist-server/mcp/ws-connect.mjs +1 -1
- package/dist-server/mcp/yunxiangji.mjs +1 -1
- package/dist-server/media-cache.mjs +1 -1
- package/dist-server/mihome/cloud.mjs +1 -1
- package/dist-server/mihome/devices.mjs +1 -1
- package/dist-server/mihome/local.mjs +1 -1
- package/dist-server/mihome/mcp-desc.mjs +1 -1
- package/dist-server/mihome/queue.mjs +1 -1
- package/dist-server/mihome/rc4.mjs +1 -1
- package/dist-server/mihome/routes.mjs +1 -1
- package/dist-server/mihome/service.mjs +1 -1
- package/dist-server/mihome/sign.mjs +1 -1
- package/dist-server/mihome/spec.mjs +1 -1
- package/dist-server/mihome/store.mjs +1 -1
- package/dist-server/onboard-preview.mjs +1 -1
- package/dist-server/onvif-ws-discover.mjs +1 -0
- package/dist-server/spa-fallback.mjs +1 -1
- package/dist-server/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/Camera-TWIG805X.js +0 -1
- package/dist/assets/FindMoss-BXRUwkZ0.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as o,o as p,m as r,A as c,b as s,t as a,g as t}from"./index-
|
|
1
|
+
import{d as o,o as p,m as r,A as c,b as s,t as a,g as t}from"./index-CMMVyrw-.js";import{_ as n}from"./_plugin-vue_export-helper-DlAUqK2U.js";const _=2026,i="YOKOCHEN YIMENG",C=`Copyright © ${_} ${i}. All rights reserved.`,d=["8144064","3715287"],l=`QQ:${d.join(" QQ:")}`,m={class:"app-credits-copy"},O={class:"app-credits-qq"},f=o({__name:"AppCredits",props:{variant:{default:"page"}},setup(e){return(A,I)=>(p(),r("p",{class:c(["app-credits",e.variant])},[s("span",m,a(t(C)),1),s("span",O,a(t(l)),1)],2))}}),E=n(f,[["__scopeId","data-v-f2e65ba2"]]);export{E as A,C,l as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as b,u as l0,a as Y,c as L,w as A,r as _,o as l,b as a,e as $,f as S,g as n,t as M,h as I,i as t0,E as G,j as z,k as P,l as a0,m as t,n as x,p as k,q as B,s as r,v as d,x as s0,y as o0,z as r0,A as C,F as R,B as n0,C as U,D as J,G as i0,H as K,K as u0}from"./index-8ELWKDB7.js";import{A as d0}from"./AppCredits-DljMSYmh.js";import{_ as e0}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{I as h0}from"./PhBell.vue-CpBxADpx.js";import{H as v0,I as c0}from"./PhPlugs.vue-1_OD3dAV.js";import{G as p0}from"./PhKeyboard.vue-Bhn7nywT.js";import{F as H0}from"./PhTelevisionSimple.vue-BtqkuNc8.js";import"./esp-flasher-CeAm6Ct9.js";const V0={class:"device-switcher-toolbar"},g0=b({__name:"DeviceSwitcherDialog",props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:["update:modelValue"],setup(f){const e=l0(f,"modelValue"),i=Y(),p=a0(),g=I(""),H=I(!1),s=I("");function v(V){return t0(V)}function m(V){return i.activeDeviceId===V.id&&i.mossOnline}function y({row:V}){const h=[];return i.activeDeviceId===V.id&&h.push("is-active"),V.online||h.push("is-offline"),h.join(" ")}async function c(){H.value=!0;try{await i.refresh()}catch{}finally{H.value=!1}}async function w(){H.value=!0;try{await i.refresh()}finally{H.value=!1}}function O(){e.value=!1,p.push({path:"/device",query:P()})}async function q(V){try{const{value:h}=await G.prompt("给这台 MOSS 起个名字。","改名",{confirmButtonText:"保存",cancelButtonText:"取消",customClass:"moss-message-box moss-message-box-narrow",inputValue:V.displayName||"",inputPlaceholder:"例如 客厅的 MOSS",inputPattern:/\S+/,inputErrorMessage:"请填写名称"});await i.renameDevice(V.id,h.trim()),z.success("已改名")}catch(h){if(h==="cancel")return;z.error(h instanceof Error?h.message:"改名失败")}}async function D(V){const h=V.displayName||V.hostname||"MOSS";try{await G.confirm(`确定将「${h}」从列表中移除?之后若要再用,可重新添加。`,"移除设备",{type:"warning",confirmButtonText:"移除",cancelButtonText:"取消",confirmButtonClass:"el-button--danger"})}catch(Z){return void 0}s.value=V.id;try{await i.removeDevice(V.id),z.success("已移除"),i.devices.length||(e.value=!1,p.push("/device"))}catch(Z){z.error(Z instanceof Error?Z.message:"移除失败")}finally{s.value=""}}async function N(V){if(!V.online){z.warning("这台 MOSS 目前离线");return}if(m(V)){e.value=!1;return}g.value=V.id;try{await i.activateDevice(V.id),e.value=!1;const h=i.homePath();p.currentRoute.value.path!==h?p.push({path:h,query:P(V.id)}):p.replace({path:h,query:P(V.id)}),z.success(`已切换到 ${V.displayName||V.hostname||"MOSS"}`)}catch(h){z.error(h instanceof Error?h.message:"无法切换设备")}finally{g.value=""}}return(V,h)=>{const Z=_("el-button"),o=_("el-table-column"),j=_("el-tag"),F=_("el-table"),E=_("el-empty"),T=_("el-dialog");return l(),L(T,{modelValue:e.value,"onUpdate:modelValue":h[0]||(h[0]=u=>e.value=u),class:"moss-dialog device-switcher-dialog",title:"切换设备",width:"640px","align-center":"","destroy-on-close":"",onOpen:c},{default:A(()=>[h[5]||(h[5]=a("p",{class:"device-switcher-hint"}," 每个浏览器标签盯一台。再开一个标签,在这里选另一台即可同时看。 ",-1)),a("div",V0,[$(Z,{loading:H.value,onClick:w},{default:A(()=>[...h[1]||(h[1]=[S("刷新列表",-1)])]),_:1},8,["loading"]),$(Z,{type:"primary",plain:"",onClick:O},{default:A(()=>[...h[2]||(h[2]=[S("添加设备",-1)])]),_:1})]),n(i).devices.length?(l(),L(F,{key:0,data:n(i).devices,"row-key":"id","row-class-name":y,class:"device-switcher-table","max-height":"360"},{default:A(()=>[$(o,{label:"名称","min-width":"140"},{default:A(({row:u})=>[a("strong",null,M(u.displayName||u.hostname||"未命名"),1)]),_:1}),$(o,{label:"类型","min-width":"120"},{default:A(({row:u})=>[a("div",null,M(u.boardLabel||v(u.board)),1)]),_:1}),$(o,{label:"状态",width:"72",align:"center"},{default:A(({row:u})=>[$(j,{type:u.online?"success":"info",size:"small"},{default:A(()=>[S(M(u.online?"在线":"离线"),1)]),_:2},1032,["type"])]),_:1}),$(o,{label:"操作",width:"220",align:"right"},{default:A(({row:u})=>[$(Z,{size:"small",link:"",onClick:W=>q(u)},{default:A(()=>[...h[3]||(h[3]=[S("改名",-1)])]),_:1},8,["onClick"]),$(Z,{size:"small",link:"",type:"danger",loading:s.value===u.id,onClick:W=>D(u)},{default:A(()=>[...h[4]||(h[4]=[S(" 移除 ",-1)])]),_:1},8,["loading","onClick"]),$(Z,{type:"primary",size:"small",disabled:!u.online,loading:g.value===u.id,onClick:W=>N(u)},{default:A(()=>[S(M(m(u)?"当前":"切换"),1)]),_:2},1032,["disabled","loading","onClick"])]),_:1})]),_:1},8,["data"])):(l(),L(E,{key:1,description:"还没有设备。请添加一台,或等已绑定的 MOSS 上线。"}))]),_:1},8,["modelValue"])}}}),m0=e0(g0,[["__scopeId","data-v-eeb08584"]]),$0="/assets/logo-550w-purple-C42Lszoj.png",y0=["width","height","fill","transform"],Z0={key:0},f0=a("path",{d:"M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z"},null,-1),A0=[f0],M0={key:1},w0=a("path",{d:"M208,96l-80,80L48,96Z",opacity:"0.2"},null,-1),k0=a("path",{d:"M215.39,92.94A8,8,0,0,0,208,88H48a8,8,0,0,0-5.66,13.66l80,80a8,8,0,0,0,11.32,0l80-80A8,8,0,0,0,215.39,92.94ZM128,164.69,67.31,104H188.69Z"},null,-1),b0=[w0,k0],_0={key:2},S0=a("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,48,88H208a8,8,0,0,1,5.66,13.66Z"},null,-1),C0=[S0],z0={key:3},x0=a("path",{d:"M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z"},null,-1),B0=[x0],N0={key:4},L0=a("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"},null,-1),q0=[L0],D0={key:5},P0=a("path",{d:"M210.83,98.83l-80,80a4,4,0,0,1-5.66,0l-80-80a4,4,0,0,1,5.66-5.66L128,170.34l77.17-77.17a4,4,0,1,1,5.66,5.66Z"},null,-1),O0=[P0],E0={name:"PhCaretDown"},I0=b({...E0,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",Z0,A0)):s.value==="duotone"?(l(),t("g",M0,b0)):s.value==="fill"?(l(),t("g",_0,C0)):s.value==="light"?(l(),t("g",z0,B0)):s.value==="regular"?(l(),t("g",N0,q0)):s.value==="thin"?(l(),t("g",D0,O0)):k("",!0)],16,y0))}}),j0=["width","height","fill","transform"],F0={key:0},T0=a("path",{d:"M148,96V48a12,12,0,0,1,24,0V84h36a12,12,0,0,1,0,24H160A12,12,0,0,1,148,96ZM96,148H48a12,12,0,0,0,0,24H84v36a12,12,0,0,0,24,0V160A12,12,0,0,0,96,148Zm112,0H160a12,12,0,0,0-12,12v48a12,12,0,0,0,24,0V172h36a12,12,0,0,0,0-24ZM96,36A12,12,0,0,0,84,48V84H48a12,12,0,0,0,0,24H96a12,12,0,0,0,12-12V48A12,12,0,0,0,96,36Z"},null,-1),W0=[T0],G0={key:1},R0=a("path",{d:"M208,64V192a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V64A16,16,0,0,1,64,48H192A16,16,0,0,1,208,64Z",opacity:"0.2"},null,-1),U0=a("path",{d:"M152,96V48a8,8,0,0,1,16,0V88h40a8,8,0,0,1,0,16H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0,0,16H88v40a8,8,0,0,0,16,0V160A8,8,0,0,0,96,152Zm112,0H160a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V168h40a8,8,0,0,0,0-16ZM96,40a8,8,0,0,0-8,8V88H48a8,8,0,0,0,0,16H96a8,8,0,0,0,8-8V48A8,8,0,0,0,96,40Z"},null,-1),J0=[R0,U0],K0={key:2},Q0=a("path",{d:"M152,96V48a8,8,0,0,1,13.66-5.66l48,48A8,8,0,0,1,208,104H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0-5.66,13.66l48,48A8,8,0,0,0,104,208V160A8,8,0,0,0,96,152ZM99.06,40.61a8,8,0,0,0-8.72,1.73l-48,48A8,8,0,0,0,48,104H96a8,8,0,0,0,8-8V48A8,8,0,0,0,99.06,40.61ZM208,152H160a8,8,0,0,0-8,8v48a8,8,0,0,0,13.66,5.66l48-48A8,8,0,0,0,208,152Z"},null,-1),X0=[Q0],Y0={key:3},a1=a("path",{d:"M154,96V48a6,6,0,0,1,12,0V90h42a6,6,0,0,1,0,12H160A6,6,0,0,1,154,96ZM96,154H48a6,6,0,0,0,0,12H90v42a6,6,0,0,0,12,0V160A6,6,0,0,0,96,154Zm112,0H160a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V166h42a6,6,0,0,0,0-12ZM96,42a6,6,0,0,0-6,6V90H48a6,6,0,0,0,0,12H96a6,6,0,0,0,6-6V48A6,6,0,0,0,96,42Z"},null,-1),e1=[a1],l1={key:4},t1=a("path",{d:"M152,96V48a8,8,0,0,1,16,0V88h40a8,8,0,0,1,0,16H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0,0,16H88v40a8,8,0,0,0,16,0V160A8,8,0,0,0,96,152Zm112,0H160a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V168h40a8,8,0,0,0,0-16ZM96,40a8,8,0,0,0-8,8V88H48a8,8,0,0,0,0,16H96a8,8,0,0,0,8-8V48A8,8,0,0,0,96,40Z"},null,-1),s1=[t1],o1={key:5},r1=a("path",{d:"M156,96V48a4,4,0,0,1,8,0V92h44a4,4,0,0,1,0,8H160A4,4,0,0,1,156,96ZM96,156H48a4,4,0,0,0,0,8H92v44a4,4,0,0,0,8,0V160A4,4,0,0,0,96,156Zm112,0H160a4,4,0,0,0-4,4v48a4,4,0,0,0,8,0V164h44a4,4,0,0,0,0-8ZM96,44a4,4,0,0,0-4,4V92H48a4,4,0,0,0,0,8H96a4,4,0,0,0,4-4V48A4,4,0,0,0,96,44Z"},null,-1),n1=[r1],i1={name:"PhCornersIn"},u1=b({...i1,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",F0,W0)):s.value==="duotone"?(l(),t("g",G0,J0)):s.value==="fill"?(l(),t("g",K0,X0)):s.value==="light"?(l(),t("g",Y0,e1)):s.value==="regular"?(l(),t("g",l1,s1)):s.value==="thin"?(l(),t("g",o1,n1)):k("",!0)],16,j0))}}),d1=["width","height","fill","transform"],h1={key:0},v1=a("path",{d:"M220,48V88a12,12,0,0,1-24,0V60H168a12,12,0,0,1,0-24h40A12,12,0,0,1,220,48ZM88,196H60V168a12,12,0,0,0-24,0v40a12,12,0,0,0,12,12H88a12,12,0,0,0,0-24Zm120-40a12,12,0,0,0-12,12v28H168a12,12,0,0,0,0,24h40a12,12,0,0,0,12-12V168A12,12,0,0,0,208,156ZM88,36H48A12,12,0,0,0,36,48V88a12,12,0,0,0,24,0V60H88a12,12,0,0,0,0-24Z"},null,-1),c1=[v1],p1={key:1},H1=a("path",{d:"M208,48V208H48V48Z",opacity:"0.2"},null,-1),V1=a("path",{d:"M216,48V88a8,8,0,0,1-16,0V56H168a8,8,0,0,1,0-16h40A8,8,0,0,1,216,48ZM88,200H56V168a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H88a8,8,0,0,0,0-16Zm120-40a8,8,0,0,0-8,8v32H168a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V168A8,8,0,0,0,208,160ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,16,0V56H88a8,8,0,0,0,0-16Z"},null,-1),g1=[H1,V1],m1={key:2},$1=a("path",{d:"M93.66,202.34A8,8,0,0,1,88,216H48a8,8,0,0,1-8-8V168a8,8,0,0,1,13.66-5.66ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,13.66,5.66l40-40A8,8,0,0,0,88,40ZM211.06,160.61a8,8,0,0,0-8.72,1.73l-40,40A8,8,0,0,0,168,216h40a8,8,0,0,0,8-8V168A8,8,0,0,0,211.06,160.61ZM208,40H168a8,8,0,0,0-5.66,13.66l40,40A8,8,0,0,0,216,88V48A8,8,0,0,0,208,40Z"},null,-1),y1=[$1],Z1={key:3},f1=a("path",{d:"M214,48V88a6,6,0,0,1-12,0V54H168a6,6,0,0,1,0-12h40A6,6,0,0,1,214,48ZM88,202H54V168a6,6,0,0,0-12,0v40a6,6,0,0,0,6,6H88a6,6,0,0,0,0-12Zm120-40a6,6,0,0,0-6,6v34H168a6,6,0,0,0,0,12h40a6,6,0,0,0,6-6V168A6,6,0,0,0,208,162ZM88,42H48a6,6,0,0,0-6,6V88a6,6,0,0,0,12,0V54H88a6,6,0,0,0,0-12Z"},null,-1),A1=[f1],M1={key:4},w1=a("path",{d:"M216,48V88a8,8,0,0,1-16,0V56H168a8,8,0,0,1,0-16h40A8,8,0,0,1,216,48ZM88,200H56V168a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H88a8,8,0,0,0,0-16Zm120-40a8,8,0,0,0-8,8v32H168a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V168A8,8,0,0,0,208,160ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,16,0V56H88a8,8,0,0,0,0-16Z"},null,-1),k1=[w1],b1={key:5},_1=a("path",{d:"M212,48V88a4,4,0,0,1-8,0V52H168a4,4,0,0,1,0-8h40A4,4,0,0,1,212,48ZM88,204H52V168a4,4,0,0,0-8,0v40a4,4,0,0,0,4,4H88a4,4,0,0,0,0-8Zm120-40a4,4,0,0,0-4,4v36H168a4,4,0,0,0,0,8h40a4,4,0,0,0,4-4V168A4,4,0,0,0,208,164ZM88,44H48a4,4,0,0,0-4,4V88a4,4,0,0,0,8,0V52H88a4,4,0,0,0,0-8Z"},null,-1),S1=[_1],C1={name:"PhCornersOut"},z1=b({...C1,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",h1,c1)):s.value==="duotone"?(l(),t("g",p1,g1)):s.value==="fill"?(l(),t("g",m1,y1)):s.value==="light"?(l(),t("g",Z1,A1)):s.value==="regular"?(l(),t("g",M1,k1)):s.value==="thin"?(l(),t("g",b1,S1)):k("",!0)],16,d1))}}),x1=["width","height","fill","transform"],B1={key:0},N1=a("path",{d:"M156,88H100a12,12,0,0,0-12,12v56a12,12,0,0,0,12,12h56a12,12,0,0,0,12-12V100A12,12,0,0,0,156,88Zm-12,56H112V112h32Zm88-4H220V116h12a12,12,0,0,0,0-24H220V56a20,20,0,0,0-20-20H164V24a12,12,0,0,0-24,0V36H116V24a12,12,0,0,0-24,0V36H56A20,20,0,0,0,36,56V92H24a12,12,0,0,0,0,24H36v24H24a12,12,0,0,0,0,24H36v36a20,20,0,0,0,20,20H92v12a12,12,0,0,0,24,0V220h24v12a12,12,0,0,0,24,0V220h36a20,20,0,0,0,20-20V164h12a12,12,0,0,0,0-24Zm-36,56H60V60H196Z"},null,-1),L1=[N1],q1={key:1},D1=a("path",{d:"M200,48H56a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V56A8,8,0,0,0,200,48ZM152,152H104V104h48Z",opacity:"0.2"},null,-1),P1=a("path",{d:"M152,96H104a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V104A8,8,0,0,0,152,96Zm-8,48H112V112h32Zm88,0H216V112h16a8,8,0,0,0,0-16H216V56a16,16,0,0,0-16-16H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H56A16,16,0,0,0,40,56V96H24a8,8,0,0,0,0,16H40v32H24a8,8,0,0,0,0,16H40v40a16,16,0,0,0,16,16H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h40a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-32,56H56V56H200v95.87s0,.09,0,.13,0,.09,0,.13V200Z"},null,-1),O1=[D1,P1],E1={key:2},I1=a("path",{d:"M104,104h48v48H104Zm136,48a8,8,0,0,1-8,8H216v40a16,16,0,0,1-16,16H160v16a8,8,0,0,1-16,0V216H112v16a8,8,0,0,1-16,0V216H56a16,16,0,0,1-16-16V160H24a8,8,0,0,1,0-16H40V112H24a8,8,0,0,1,0-16H40V56A16,16,0,0,1,56,40H96V24a8,8,0,0,1,16,0V40h32V24a8,8,0,0,1,16,0V40h40a16,16,0,0,1,16,16V96h16a8,8,0,0,1,0,16H216v32h16A8,8,0,0,1,240,152ZM168,96a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v64a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8Z"},null,-1),j1=[I1],F1={key:3},T1=a("path",{d:"M152,98H104a6,6,0,0,0-6,6v48a6,6,0,0,0,6,6h48a6,6,0,0,0,6-6V104A6,6,0,0,0,152,98Zm-6,48H110V110h36Zm86,0H214V110h18a6,6,0,0,0,0-12H214V56a14,14,0,0,0-14-14H158V24a6,6,0,0,0-12,0V42H110V24a6,6,0,0,0-12,0V42H56A14,14,0,0,0,42,56V98H24a6,6,0,0,0,0,12H42v36H24a6,6,0,0,0,0,12H42v42a14,14,0,0,0,14,14H98v18a6,6,0,0,0,12,0V214h36v18a6,6,0,0,0,12,0V214h42a14,14,0,0,0,14-14V158h18a6,6,0,0,0,0-12Zm-30,54a2,2,0,0,1-2,2H56a2,2,0,0,1-2-2V56a2,2,0,0,1,2-2H200a2,2,0,0,1,2,2Z"},null,-1),W1=[T1],G1={key:4},R1=a("path",{d:"M152,96H104a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V104A8,8,0,0,0,152,96Zm-8,48H112V112h32Zm88,0H216V112h16a8,8,0,0,0,0-16H216V56a16,16,0,0,0-16-16H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H56A16,16,0,0,0,40,56V96H24a8,8,0,0,0,0,16H40v32H24a8,8,0,0,0,0,16H40v40a16,16,0,0,0,16,16H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h40a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-32,56H56V56H200v95.87s0,.09,0,.13,0,.09,0,.13V200Z"},null,-1),U1=[R1],J1={key:5},K1=a("path",{d:"M152,100H104a4,4,0,0,0-4,4v48a4,4,0,0,0,4,4h48a4,4,0,0,0,4-4V104A4,4,0,0,0,152,100Zm-4,48H108V108h40Zm84,0H212V108h20a4,4,0,0,0,0-8H212V56a12,12,0,0,0-12-12H156V24a4,4,0,0,0-8,0V44H108V24a4,4,0,0,0-8,0V44H56A12,12,0,0,0,44,56v44H24a4,4,0,0,0,0,8H44v40H24a4,4,0,0,0,0,8H44v44a12,12,0,0,0,12,12h44v20a4,4,0,0,0,8,0V212h40v20a4,4,0,0,0,8,0V212h44a12,12,0,0,0,12-12V156h20a4,4,0,0,0,0-8Zm-28,52a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V56a4,4,0,0,1,4-4H200a4,4,0,0,1,4,4Z"},null,-1),Q1=[K1],X1={name:"PhCpu"},Y1=b({...X1,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",B1,L1)):s.value==="duotone"?(l(),t("g",q1,O1)):s.value==="fill"?(l(),t("g",E1,j1)):s.value==="light"?(l(),t("g",F1,W1)):s.value==="regular"?(l(),t("g",G1,U1)):s.value==="thin"?(l(),t("g",J1,Q1)):k("",!0)],16,x1))}}),a8=["width","height","fill","transform"],e8={key:0},l8=a("path",{d:"M209.88,69.83A115.19,115.19,0,0,0,128,36h-.41C63.85,36.22,12,88.76,12,153.13V176a20,20,0,0,0,20,20H224a20,20,0,0,0,20-20V152A115.25,115.25,0,0,0,209.88,69.83ZM220,172H127.32l46.44-65A12,12,0,1,0,154.24,93L97.82,172H36V153.13c0-1.72,0-3.43.14-5.13H56a12,12,0,0,0,0-24H40.62c10.91-33.39,40-58.52,75.38-63.21V80a12,12,0,0,0,24,0V60.8A92,92,0,0,1,215.66,124H200a12,12,0,0,0,0,24h19.9c.06,1.33.1,2.66.1,4Z"},null,-1),t8=[l8],s8={key:1},o8=a("path",{d:"M232,152v24a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V153.13C24,95.65,70.15,48.2,127.63,48A104,104,0,0,1,232,152Z",opacity:"0.2"},null,-1),r8=a("path",{d:"M207.06,72.67A111.24,111.24,0,0,0,128,40h-.4C66.07,40.21,16,91,16,153.13V176a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V152A111.25,111.25,0,0,0,207.06,72.67ZM224,176H119.71l54.76-75.3a8,8,0,0,0-12.94-9.42L99.92,176H32V153.13c0-3.08.15-6.12.43-9.13H56a8,8,0,0,0,0-16H35.27c10.32-38.86,44-68.24,84.73-71.66V80a8,8,0,0,0,16,0V56.33A96.14,96.14,0,0,1,221,128H200a8,8,0,0,0,0,16h23.67c.21,2.65.33,5.31.33,8Z"},null,-1),n8=[o8,r8],i8={key:2},u8=a("path",{d:"M240,152v24a16,16,0,0,1-16,16H115.93a4,4,0,0,1-3.24-6.35L174.27,101a8.21,8.21,0,0,0-1.37-11.3,8,8,0,0,0-11.37,1.61l-72,99.06A4,4,0,0,1,86.25,192H32a16,16,0,0,1-16-16V153.13c0-1.79,0-3.57.13-5.33a4,4,0,0,1,4-3.8H48a8,8,0,0,0,8-8.53A8.17,8.17,0,0,0,47.73,128H23.92a4,4,0,0,1-3.87-5c12-43.84,49.66-77.13,95.52-82.28a4,4,0,0,1,4.43,4V72a8,8,0,0,0,8.53,8A8.17,8.17,0,0,0,136,71.73V44.67a4,4,0,0,1,4.43-4A112.18,112.18,0,0,1,236.23,123a4,4,0,0,1-3.88,5H208.27a8.17,8.17,0,0,0-8.25,7.47,8,8,0,0,0,8,8.53h27.92a4,4,0,0,1,4,3.86C240,149.23,240,150.61,240,152Z"},null,-1),d8=[u8],h8={key:3},v8=a("path",{d:"M205.65,74.08A109.26,109.26,0,0,0,128,42h-.39C67.17,42.21,18,92.06,18,153.13V176a14,14,0,0,0,14,14H224a14,14,0,0,0,14-14V152A109.3,109.3,0,0,0,205.65,74.08ZM226,176a2,2,0,0,1-2,2H115.78l57.07-78.47a6,6,0,0,0-9.7-7.06L100.94,178H32a2,2,0,0,1-2-2V153.13A102.36,102.36,0,0,1,30.62,142H56a6,6,0,0,0,0-12H32.71C42.6,88.4,78.53,56.86,122,54.19V80a6,6,0,0,0,12,0V54.19A98.05,98.05,0,0,1,223.53,130H200a6,6,0,0,0,0,12h25.5c.33,3.3.5,6.64.5,10Z"},null,-1),c8=[v8],p8={key:4},H8=a("path",{d:"M207.06,72.67A111.24,111.24,0,0,0,128,40h-.4C66.07,40.21,16,91,16,153.13V176a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V152A111.25,111.25,0,0,0,207.06,72.67ZM224,176H119.71l54.76-75.3a8,8,0,0,0-12.94-9.42L99.92,176H32V153.13c0-3.08.15-6.12.43-9.13H56a8,8,0,0,0,0-16H35.27c10.32-38.86,44-68.24,84.73-71.66V80a8,8,0,0,0,16,0V56.33A96.14,96.14,0,0,1,221,128H200a8,8,0,0,0,0,16h23.67c.21,2.65.33,5.31.33,8Z"},null,-1),V8=[H8],g8={key:5},m8=a("path",{d:"M204.23,75.5A107.37,107.37,0,0,0,127.62,44C68.28,44.21,20,93.16,20,153.13V176a12,12,0,0,0,12,12H224a12,12,0,0,0,12-12V152A107.25,107.25,0,0,0,204.23,75.5ZM228,176a4,4,0,0,1-4,4H111.85l59.38-81.65a4,4,0,1,0-6.46-4.7L102,180H32a4,4,0,0,1-4-4V153.13A103.42,103.42,0,0,1,28.84,140H56a4,4,0,0,0,0-8H30.21C39.59,87.66,77.84,53.93,124,52.09V80a4,4,0,0,0,8,0V52.08A100.08,100.08,0,0,1,226,132H200a4,4,0,0,0,0,8h27.29a101.6,101.6,0,0,1,.71,12Z"},null,-1),$8=[m8],y8={name:"PhGauge"},Z8=b({...y8,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",e8,t8)):s.value==="duotone"?(l(),t("g",s8,n8)):s.value==="fill"?(l(),t("g",i8,d8)):s.value==="light"?(l(),t("g",h8,c8)):s.value==="regular"?(l(),t("g",p8,V8)):s.value==="thin"?(l(),t("g",g8,$8)):k("",!0)],16,a8))}}),f8=["width","height","fill","transform"],A8={key:0},M8=a("path",{d:"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z"},null,-1),w8=[M8],k8={key:1},b8=a("path",{d:"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z",opacity:"0.2"},null,-1),_8=a("path",{d:"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z"},null,-1),S8=[b8,_8],C8={key:2},z8=a("path",{d:"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z"},null,-1),x8=[z8],B8={key:3},N8=a("path",{d:"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z"},null,-1),L8=[N8],q8={key:4},D8=a("path",{d:"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z"},null,-1),P8=[D8],O8={key:5},E8=a("path",{d:"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z"},null,-1),I8=[E8],j8={name:"PhHouse"},F8=b({...j8,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",A8,w8)):s.value==="duotone"?(l(),t("g",k8,S8)):s.value==="fill"?(l(),t("g",C8,x8)):s.value==="light"?(l(),t("g",B8,L8)):s.value==="regular"?(l(),t("g",q8,P8)):s.value==="thin"?(l(),t("g",O8,I8)):k("",!0)],16,f8))}}),T8=["width","height","fill","transform"],W8={key:0},G8=a("path",{d:"M208,144H140V98.32a44,44,0,1,0-24,0V144H48a20,20,0,0,0-20,20v44a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V164A20,20,0,0,0,208,144ZM108,56a20,20,0,1,1,20,20A20,20,0,0,1,108,56Zm96,148H52V168H204ZM172,104h32a12,12,0,0,1,0,24H172a12,12,0,0,1,0-24Z"},null,-1),R8=[G8],U8={key:1},J8=a("path",{d:"M216,160v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V160a8,8,0,0,1,8-8H208A8,8,0,0,1,216,160ZM128,88A32,32,0,1,0,96,56,32,32,0,0,0,128,88Z",opacity:"0.2"},null,-1),K8=a("path",{d:"M208,144H136V95.19a40,40,0,1,0-16,0V144H48a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V160A16,16,0,0,0,208,144ZM104,56a24,24,0,1,1,24,24A24,24,0,0,1,104,56ZM208,208H48V160H208v48Zm-40-96h32a8,8,0,0,1,0,16H168a8,8,0,0,1,0-16Z"},null,-1),Q8=[J8,K8],X8={key:2},Y8=a("path",{d:"M224,160v48a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V160a16,16,0,0,1,16-16h72V95.19a40,40,0,1,1,16,0V144h72A16,16,0,0,1,224,160Zm-64-40a8,8,0,0,0,8,8h32a8,8,0,0,0,0-16H168A8,8,0,0,0,160,120Z"},null,-1),a2=[Y8],e2={key:3},l2=a("path",{d:"M208,146H134V93.52a38,38,0,1,0-12,0V146H48a14,14,0,0,0-14,14v48a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V160A14,14,0,0,0,208,146ZM102,56a26,26,0,1,1,26,26A26,26,0,0,1,102,56ZM210,208a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V160a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Zm-42-94h32a6,6,0,0,1,0,12H168a6,6,0,0,1,0-12Z"},null,-1),t2=[l2],s2={key:4},o2=a("path",{d:"M208,144H136V95.19a40,40,0,1,0-16,0V144H48a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V160A16,16,0,0,0,208,144ZM104,56a24,24,0,1,1,24,24A24,24,0,0,1,104,56ZM208,208H48V160H208v48Zm-40-96h32a8,8,0,0,1,0,16H168a8,8,0,0,1,0-16Z"},null,-1),r2=[o2],n2={key:5},i2=a("path",{d:"M208,148H132V91.77a36,36,0,1,0-8,0V148H48a12,12,0,0,0-12,12v48a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V160A12,12,0,0,0,208,148ZM100,56a28,28,0,1,1,28,28A28,28,0,0,1,100,56ZM212,208a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V160a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Zm-48-88a4,4,0,0,1,4-4h32a4,4,0,0,1,0,8H168A4,4,0,0,1,164,120Z"},null,-1),u2=[i2],d2={name:"PhJoystick"},h2=b({...d2,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",W8,R8)):s.value==="duotone"?(l(),t("g",U8,Q8)):s.value==="fill"?(l(),t("g",X8,a2)):s.value==="light"?(l(),t("g",e2,t2)):s.value==="regular"?(l(),t("g",s2,r2)):s.value==="thin"?(l(),t("g",n2,u2)):k("",!0)],16,T8))}}),v2=["width","height","fill","transform"],c2={key:0},p2=a("path",{d:"M208,76H180V56A52,52,0,0,0,76,56V76H48A20,20,0,0,0,28,96V208a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V96A20,20,0,0,0,208,76ZM100,56a28,28,0,0,1,56,0V76H100ZM204,204H52V100H204Z"},null,-1),H2=[p2],V2={key:1},g2=a("path",{d:"M216,96V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H208A8,8,0,0,1,216,96Z",opacity:"0.2"},null,-1),m2=a("path",{d:"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Z"},null,-1),$2=[g2,m2],y2={key:2},Z2=a("path",{d:"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96Z"},null,-1),f2=[Z2],A2={key:3},M2=a("path",{d:"M208,82H174V56a46,46,0,0,0-92,0V82H48A14,14,0,0,0,34,96V208a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V96A14,14,0,0,0,208,82ZM94,56a34,34,0,0,1,68,0V82H94ZM210,208a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V96a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Z"},null,-1),w2=[M2],k2={key:4},b2=a("path",{d:"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Z"},null,-1),_2=[b2],S2={key:5},C2=a("path",{d:"M208,84H172V56a44,44,0,0,0-88,0V84H48A12,12,0,0,0,36,96V208a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V96A12,12,0,0,0,208,84ZM92,56a36,36,0,0,1,72,0V84H92ZM212,208a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V96a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Z"},null,-1),z2=[C2],x2={name:"PhLockSimple"},Q=b({...x2,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",c2,H2)):s.value==="duotone"?(l(),t("g",V2,$2)):s.value==="fill"?(l(),t("g",y2,f2)):s.value==="light"?(l(),t("g",A2,w2)):s.value==="regular"?(l(),t("g",k2,_2)):s.value==="thin"?(l(),t("g",S2,z2)):k("",!0)],16,v2))}}),B2=["width","height","fill","transform"],N2={key:0},L2=a("path",{d:"M40,92H70.06a36,36,0,0,0,67.88,0H216a12,12,0,0,0,0-24H137.94a36,36,0,0,0-67.88,0H40a12,12,0,0,0,0,24Zm64-24A12,12,0,1,1,92,80,12,12,0,0,1,104,68Zm112,96H201.94a36,36,0,0,0-67.88,0H40a12,12,0,0,0,0,24h94.06a36,36,0,0,0,67.88,0H216a12,12,0,0,0,0-24Zm-48,24a12,12,0,1,1,12-12A12,12,0,0,1,168,188Z"},null,-1),q2=[L2],D2={key:1},P2=a("path",{d:"M128,80a24,24,0,1,1-24-24A24,24,0,0,1,128,80Zm40,72a24,24,0,1,0,24,24A24,24,0,0,0,168,152Z",opacity:"0.2"},null,-1),O2=a("path",{d:"M40,88H73a32,32,0,0,0,62,0h81a8,8,0,0,0,0-16H135a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16Zm64-24A16,16,0,1,1,88,80,16,16,0,0,1,104,64ZM216,168H199a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16h97a32,32,0,0,0,62,0h17a8,8,0,0,0,0-16Zm-48,24a16,16,0,1,1,16-16A16,16,0,0,1,168,192Z"},null,-1),E2=[P2,O2],I2={key:2},j2=a("path",{d:"M32,80a8,8,0,0,1,8-8H77.17a28,28,0,0,1,53.66,0H216a8,8,0,0,1,0,16H130.83a28,28,0,0,1-53.66,0H40A8,8,0,0,1,32,80Zm184,88H194.83a28,28,0,0,0-53.66,0H40a8,8,0,0,0,0,16H141.17a28,28,0,0,0,53.66,0H216a8,8,0,0,0,0-16Z"},null,-1),F2=[j2],T2={key:3},W2=a("path",{d:"M40,86H74.6a30,30,0,0,0,58.8,0H216a6,6,0,0,0,0-12H133.4a30,30,0,0,0-58.8,0H40a6,6,0,0,0,0,12Zm64-24A18,18,0,1,1,86,80,18,18,0,0,1,104,62ZM216,170H197.4a30,30,0,0,0-58.8,0H40a6,6,0,0,0,0,12h98.6a30,30,0,0,0,58.8,0H216a6,6,0,0,0,0-12Zm-48,24a18,18,0,1,1,18-18A18,18,0,0,1,168,194Z"},null,-1),G2=[W2],R2={key:4},U2=a("path",{d:"M40,88H73a32,32,0,0,0,62,0h81a8,8,0,0,0,0-16H135a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16Zm64-24A16,16,0,1,1,88,80,16,16,0,0,1,104,64ZM216,168H199a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16h97a32,32,0,0,0,62,0h17a8,8,0,0,0,0-16Zm-48,24a16,16,0,1,1,16-16A16,16,0,0,1,168,192Z"},null,-1),J2=[U2],K2={key:5},Q2=a("path",{d:"M40,84H76.29a28,28,0,0,0,55.42,0H216a4,4,0,0,0,0-8H131.71a28,28,0,0,0-55.42,0H40a4,4,0,0,0,0,8Zm64-24A20,20,0,1,1,84,80,20,20,0,0,1,104,60ZM216,172H195.71a28,28,0,0,0-55.42,0H40a4,4,0,0,0,0,8H140.29a28,28,0,0,0,55.42,0H216a4,4,0,0,0,0-8Zm-48,24a20,20,0,1,1,20-20A20,20,0,0,1,168,196Z"},null,-1),X2=[Q2],Y2={name:"PhSlidersHorizontal"},X=b({...Y2,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",N2,q2)):s.value==="duotone"?(l(),t("g",D2,E2)):s.value==="fill"?(l(),t("g",I2,F2)):s.value==="light"?(l(),t("g",T2,G2)):s.value==="regular"?(l(),t("g",R2,J2)):s.value==="thin"?(l(),t("g",K2,X2)):k("",!0)],16,B2))}}),aa={class:"app-shell moss-admin"},ea={class:"sidebar"},la={class:"brand"},ta=["src"],sa={class:"nav-icon"},oa={key:0,class:"nav-lock","aria-hidden":"true"},ra={class:"nav"},na=["onClick"],ia={class:"nav-icon"},ua={class:"nav-label"},da={key:0,class:"nav-lock","aria-hidden":"true"},ha={class:"nav-icon"},va={class:"sidebar-status-text"},ca={class:"sidebar-status-label"},pa={class:"sidebar-status-meta"},Ha={class:"page-header"},Va={class:"page-heading"},ga={class:"page-heading-copy"},ma={class:"page-sub"},$a={class:"page-heading-actions"},ya=["title"],Za={class:"device-chip-name"},fa=["title"],Aa={class:"page-credits"},Ma={key:0,class:"shell-approval"},wa={class:"shell-approval-meta"},ka={class:"shell-approval-tag"},ba={class:"shell-approval-reason"},_a={class:"shell-approval-cmd"},Sa={key:0,class:"shell-approval-cwd"},Ca=b({__name:"AppLayout",setup(f){const e=Y(),i=i0(),p=a0(),{isFullscreen:g}=s0(),H=I(!1),s={remote:H0,camera:c0,mcp:v0,hotkeys:p0,hardware:X,gamepad:h2,yunxiangji:h0,mihome:F8};function v(Z){return s[Z]||X}const m=r(()=>[{path:"/hardware",label:"硬件配置",requiresMoss:!0,icon:"hardware"},{path:"/remotes",label:"红外配置",requiresMoss:!0,icon:"remote",hide:!e.hasIr},{path:"/camera",label:"视觉中枢",requiresMoss:!0,icon:"camera"},{path:"/gamepad",label:"手柄控制",requiresMoss:!0,icon:"gamepad"},{path:"/hotkeys",label:"快捷键",requiresMoss:!0,icon:"hotkeys"},{path:"/yunxiangji",label:"云享记",requiresMoss:!0,icon:"yunxiangji"},{path:"/mcp",label:"MCP工具",requiresMoss:!0,icon:"mcp"},{path:"/mihome",label:"米家设备",requiresMoss:!0,icon:"mihome"}].filter(o=>!o.hide)),y=r(()=>String(i.meta.title||"MOSS 配置")),c=r(()=>String(i.meta.subtitle||"")),w=r(()=>i.meta.layoutFit===!0);function O(Z){return i.path===Z.path}function q(Z){return Z.requiresMoss&&!e.mossOnline}const D=r(()=>!e.mossOnline);function N(){H.value=!0}function V(Z){if(q(Z)){z.warning("MOSS 设备离线,请先确认设备在线后再进入配置页面"),N();return}p.push({path:Z.path,query:P()})}function h(){if(D.value){z.warning("MOSS 设备离线,请先确认设备在线后再进入控制中枢"),N();return}p.push({path:"/terminal",query:P()})}return o0(()=>e.deviceSwitcherTick,()=>{N()}),r0(async()=>{e.hydrated||await e.refresh(),e.listenEvents(),e.mossOnline||e.probeMoss().catch(()=>{}),!e.activeDeviceId&&i.path!=="/device"&&i.path!=="/flash"&&N()}),(Z,o)=>{const j=_("router-view"),F=_("el-alert"),E=_("el-button"),T=_("el-dialog");return l(),t(R,null,[a("div",aa,[a("aside",ea,[a("div",la,[a("img",{class:"brand-logo",src:n($0),alt:"550W"},null,8,ta),o[6]||(o[6]=a("div",{class:"tagline"},"550W 超级量子计算机指令终端",-1))]),a("button",{class:C(["nav-hub",{locked:D.value}]),type:"button",onClick:h},[a("span",sa,[$(n(Z8),{size:18,weight:"regular"})]),o[7]||(o[7]=a("span",{class:"nav-hub-copy"},[a("strong",null,"控制中枢"),a("small",null,"运行监视与操控")],-1)),D.value?(l(),t("span",oa,[$(n(Q),{size:16,weight:"regular"})])):k("",!0)],2),a("nav",ra,[o[9]||(o[9]=a("div",{class:"nav-kicker"},"配置",-1)),(l(!0),t(R,null,n0(m.value,u=>(l(),t("button",{key:u.path,class:C(["nav-item",{active:O(u),locked:q(u)}]),type:"button",onClick:W=>V(u)},[a("span",ia,[(l(),L(K(v(u.icon)),{size:18,weight:"regular"}))]),a("span",ua,M(u.label),1),q(u)?(l(),t("span",da,[$(n(Q),{size:16,weight:"regular"})])):k("",!0)],10,na))),128)),o[10]||(o[10]=a("div",{class:"nav-kicker"},"维护",-1)),a("button",{class:C(["nav-item quiet",{active:O("/flash")}]),type:"button",onClick:o[0]||(o[0]=u=>n(p).push("/flash"))},[a("span",ha,[$(n(Y1),{size:18,weight:"regular"})]),o[8]||(o[8]=a("span",{class:"nav-label"},"烧录固件",-1))],2)]),a("button",{class:"sidebar-status",type:"button",onClick:N},[a("span",{class:C(["dot",n(e).statusTone])},null,2),a("div",va,[a("div",ca,M(n(e).deviceName||"未选择设备"),1),a("div",pa,M(n(e).productLabel)+" · "+M(n(e).mossOnline?"在线":"离线"),1)]),o[11]||(o[11]=a("span",{class:"sidebar-status-action"},"切换设备",-1))])]),a("main",{class:C(["main",{"main--compact":w.value}])},[a("header",Ha,[a("div",Va,[a("div",ga,[a("h1",null,M(y.value),1),a("p",ma,M(c.value||" "),1)]),a("div",$a,[a("button",{type:"button",class:"device-chip",title:`切换设备:${n(e).deviceName||"未选择设备"}`,onClick:N},[a("span",{class:C(["dot",n(e).statusTone])},null,2),a("span",Za,M(n(e).deviceName||"未选择设备"),1),a("span",{class:C(["device-chip-state",n(e).statusTone])},M(n(e).mossOnline?"在线":n(e).statusLabel),3),$(n(I0),{size:14,weight:"bold"})],8,ya),a("button",{type:"button",class:C(["fs-btn",{on:n(g)}]),title:n(g)?`退出全屏 (${n(J)})`:`全屏显示 (${n(J)})`,onClick:o[1]||(o[1]=(...u)=>n(U)&&n(U)(...u))},[n(g)?(l(),L(n(u1),{key:0,size:16,weight:"bold"})):(l(),L(n(z1),{key:1,size:16,weight:"bold"}))],10,fa)])])]),a("div",{class:C(["page-body",{"page-body--fit":w.value}])},[$(j,null,{default:A(({Component:u})=>[(l(),L(u0,{include:"MiHome"},[(l(),L(K(u)))],1024))]),_:1})],2),a("footer",Aa,[$(d0)])],2)]),$(m0,{modelValue:H.value,"onUpdate:modelValue":o[2]||(o[2]=u=>H.value=u)},null,8,["modelValue"]),$(T,{modelValue:n(e).shellApprovalVisible,"onUpdate:modelValue":o[5]||(o[5]=u=>n(e).shellApprovalVisible=u),class:"moss-dialog",title:"高危命令需您授权",width:"520px","align-center":"","close-on-click-modal":!1,"close-on-press-escape":!1,"show-close":!1},{footer:A(()=>[$(E,{onClick:o[3]||(o[3]=u=>n(e).decideShellApproval(!1))},{default:A(()=>[...o[15]||(o[15]=[S("拒绝",-1)])]),_:1}),$(E,{type:"primary",onClick:o[4]||(o[4]=u=>n(e).decideShellApproval(!0))},{default:A(()=>[...o[16]||(o[16]=[S("允许执行",-1)])]),_:1})]),default:A(()=>[n(e).shellApprovalCurrent?(l(),t("div",Ma,[$(F,{type:"warning","show-icon":"",closable:!1,class:"shell-approval-alert"},{default:A(()=>[...o[12]||(o[12]=[S(" 智能体请求执行以下高危命令。需您在本机确认后,MOSS 才会继续执行。 ",-1)])]),_:1}),a("div",wa,[a("span",ka,M(n(e).shellApprovalCategoryLabel),1),a("span",ba,M(n(e).shellApprovalCurrent.reason),1)]),a("pre",_a,M(n(e).shellApprovalCurrent.command),1),n(e).shellApprovalCurrent.cwd?(l(),t("p",Sa,[o[13]||(o[13]=S(" 工作目录:",-1)),a("code",null,M(n(e).shellApprovalCurrent.cwd),1)])):k("",!0),o[14]||(o[14]=a("p",{class:"shell-approval-hint"},"5 分钟内未确认将自动取消。",-1))])):k("",!0)]),_:1},8,["modelValue"])],64)}}}),Oa=e0(Ca,[["__scopeId","data-v-a9b40ffc"]]);export{Oa as default};
|
|
1
|
+
import{d as b,u as l0,a as Y,c as L,w as A,r as _,o as l,b as a,e as $,f as S,g as n,t as M,h as I,i as t0,E as G,j as z,k as P,l as a0,m as t,n as x,p as k,q as B,s as r,v as d,x as s0,y as o0,z as r0,A as C,F as R,B as n0,C as U,D as J,G as i0,H as K,K as u0}from"./index-CMMVyrw-.js";import{A as d0}from"./AppCredits-cV9khBSC.js";import{_ as e0}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{I as h0}from"./PhBell.vue-CTc18bBH.js";import{H as v0,I as c0}from"./PhPlugs.vue-Dqy5L0KC.js";import{G as p0}from"./PhKeyboard.vue-CH1rRfnX.js";import{F as H0}from"./PhTelevisionSimple.vue-Cj_jHeEo.js";import"./esp-flasher-CeAm6Ct9.js";const V0={class:"device-switcher-toolbar"},g0=b({__name:"DeviceSwitcherDialog",props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:["update:modelValue"],setup(f){const e=l0(f,"modelValue"),i=Y(),p=a0(),g=I(""),H=I(!1),s=I("");function v(V){return t0(V)}function m(V){return i.activeDeviceId===V.id&&i.mossOnline}function y({row:V}){const h=[];return i.activeDeviceId===V.id&&h.push("is-active"),V.online||h.push("is-offline"),h.join(" ")}async function c(){H.value=!0;try{await i.refresh()}catch{}finally{H.value=!1}}async function w(){H.value=!0;try{await i.refresh()}finally{H.value=!1}}function O(){e.value=!1,p.push({path:"/device",query:P()})}async function q(V){try{const{value:h}=await G.prompt("给这台 MOSS 起个名字。","改名",{confirmButtonText:"保存",cancelButtonText:"取消",customClass:"moss-message-box moss-message-box-narrow",inputValue:V.displayName||"",inputPlaceholder:"例如 客厅的 MOSS",inputPattern:/\S+/,inputErrorMessage:"请填写名称"});await i.renameDevice(V.id,h.trim()),z.success("已改名")}catch(h){if(h==="cancel")return;z.error(h instanceof Error?h.message:"改名失败")}}async function D(V){const h=V.displayName||V.hostname||"MOSS";try{await G.confirm(`确定将「${h}」从列表中移除?之后若要再用,可重新添加。`,"移除设备",{type:"warning",confirmButtonText:"移除",cancelButtonText:"取消",confirmButtonClass:"el-button--danger"})}catch(Z){return void 0}s.value=V.id;try{await i.removeDevice(V.id),z.success("已移除"),i.devices.length||(e.value=!1,p.push("/device"))}catch(Z){z.error(Z instanceof Error?Z.message:"移除失败")}finally{s.value=""}}async function N(V){if(!V.online){z.warning("这台 MOSS 目前离线");return}if(m(V)){e.value=!1;return}g.value=V.id;try{await i.activateDevice(V.id),e.value=!1;const h=i.homePath();p.currentRoute.value.path!==h?p.push({path:h,query:P(V.id)}):p.replace({path:h,query:P(V.id)}),z.success(`已切换到 ${V.displayName||V.hostname||"MOSS"}`)}catch(h){z.error(h instanceof Error?h.message:"无法切换设备")}finally{g.value=""}}return(V,h)=>{const Z=_("el-button"),o=_("el-table-column"),j=_("el-tag"),F=_("el-table"),E=_("el-empty"),T=_("el-dialog");return l(),L(T,{modelValue:e.value,"onUpdate:modelValue":h[0]||(h[0]=u=>e.value=u),class:"moss-dialog device-switcher-dialog",title:"切换设备",width:"640px","align-center":"","destroy-on-close":"",onOpen:c},{default:A(()=>[h[5]||(h[5]=a("p",{class:"device-switcher-hint"}," 每个浏览器标签盯一台。再开一个标签,在这里选另一台即可同时看。 ",-1)),a("div",V0,[$(Z,{loading:H.value,onClick:w},{default:A(()=>[...h[1]||(h[1]=[S("刷新列表",-1)])]),_:1},8,["loading"]),$(Z,{type:"primary",plain:"",onClick:O},{default:A(()=>[...h[2]||(h[2]=[S("添加设备",-1)])]),_:1})]),n(i).devices.length?(l(),L(F,{key:0,data:n(i).devices,"row-key":"id","row-class-name":y,class:"device-switcher-table","max-height":"360"},{default:A(()=>[$(o,{label:"名称","min-width":"140"},{default:A(({row:u})=>[a("strong",null,M(u.displayName||u.hostname||"未命名"),1)]),_:1}),$(o,{label:"类型","min-width":"120"},{default:A(({row:u})=>[a("div",null,M(u.boardLabel||v(u.board)),1)]),_:1}),$(o,{label:"状态",width:"72",align:"center"},{default:A(({row:u})=>[$(j,{type:u.online?"success":"info",size:"small"},{default:A(()=>[S(M(u.online?"在线":"离线"),1)]),_:2},1032,["type"])]),_:1}),$(o,{label:"操作",width:"220",align:"right"},{default:A(({row:u})=>[$(Z,{size:"small",link:"",onClick:W=>q(u)},{default:A(()=>[...h[3]||(h[3]=[S("改名",-1)])]),_:1},8,["onClick"]),$(Z,{size:"small",link:"",type:"danger",loading:s.value===u.id,onClick:W=>D(u)},{default:A(()=>[...h[4]||(h[4]=[S(" 移除 ",-1)])]),_:1},8,["loading","onClick"]),$(Z,{type:"primary",size:"small",disabled:!u.online,loading:g.value===u.id,onClick:W=>N(u)},{default:A(()=>[S(M(m(u)?"当前":"切换"),1)]),_:2},1032,["disabled","loading","onClick"])]),_:1})]),_:1},8,["data"])):(l(),L(E,{key:1,description:"还没有设备。请添加一台,或等已绑定的 MOSS 上线。"}))]),_:1},8,["modelValue"])}}}),m0=e0(g0,[["__scopeId","data-v-eeb08584"]]),$0="/assets/logo-550w-purple-C42Lszoj.png",y0=["width","height","fill","transform"],Z0={key:0},f0=a("path",{d:"M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z"},null,-1),A0=[f0],M0={key:1},w0=a("path",{d:"M208,96l-80,80L48,96Z",opacity:"0.2"},null,-1),k0=a("path",{d:"M215.39,92.94A8,8,0,0,0,208,88H48a8,8,0,0,0-5.66,13.66l80,80a8,8,0,0,0,11.32,0l80-80A8,8,0,0,0,215.39,92.94ZM128,164.69,67.31,104H188.69Z"},null,-1),b0=[w0,k0],_0={key:2},S0=a("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,48,88H208a8,8,0,0,1,5.66,13.66Z"},null,-1),C0=[S0],z0={key:3},x0=a("path",{d:"M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z"},null,-1),B0=[x0],N0={key:4},L0=a("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"},null,-1),q0=[L0],D0={key:5},P0=a("path",{d:"M210.83,98.83l-80,80a4,4,0,0,1-5.66,0l-80-80a4,4,0,0,1,5.66-5.66L128,170.34l77.17-77.17a4,4,0,1,1,5.66,5.66Z"},null,-1),O0=[P0],E0={name:"PhCaretDown"},I0=b({...E0,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",Z0,A0)):s.value==="duotone"?(l(),t("g",M0,b0)):s.value==="fill"?(l(),t("g",_0,C0)):s.value==="light"?(l(),t("g",z0,B0)):s.value==="regular"?(l(),t("g",N0,q0)):s.value==="thin"?(l(),t("g",D0,O0)):k("",!0)],16,y0))}}),j0=["width","height","fill","transform"],F0={key:0},T0=a("path",{d:"M148,96V48a12,12,0,0,1,24,0V84h36a12,12,0,0,1,0,24H160A12,12,0,0,1,148,96ZM96,148H48a12,12,0,0,0,0,24H84v36a12,12,0,0,0,24,0V160A12,12,0,0,0,96,148Zm112,0H160a12,12,0,0,0-12,12v48a12,12,0,0,0,24,0V172h36a12,12,0,0,0,0-24ZM96,36A12,12,0,0,0,84,48V84H48a12,12,0,0,0,0,24H96a12,12,0,0,0,12-12V48A12,12,0,0,0,96,36Z"},null,-1),W0=[T0],G0={key:1},R0=a("path",{d:"M208,64V192a16,16,0,0,1-16,16H64a16,16,0,0,1-16-16V64A16,16,0,0,1,64,48H192A16,16,0,0,1,208,64Z",opacity:"0.2"},null,-1),U0=a("path",{d:"M152,96V48a8,8,0,0,1,16,0V88h40a8,8,0,0,1,0,16H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0,0,16H88v40a8,8,0,0,0,16,0V160A8,8,0,0,0,96,152Zm112,0H160a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V168h40a8,8,0,0,0,0-16ZM96,40a8,8,0,0,0-8,8V88H48a8,8,0,0,0,0,16H96a8,8,0,0,0,8-8V48A8,8,0,0,0,96,40Z"},null,-1),J0=[R0,U0],K0={key:2},Q0=a("path",{d:"M152,96V48a8,8,0,0,1,13.66-5.66l48,48A8,8,0,0,1,208,104H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0-5.66,13.66l48,48A8,8,0,0,0,104,208V160A8,8,0,0,0,96,152ZM99.06,40.61a8,8,0,0,0-8.72,1.73l-48,48A8,8,0,0,0,48,104H96a8,8,0,0,0,8-8V48A8,8,0,0,0,99.06,40.61ZM208,152H160a8,8,0,0,0-8,8v48a8,8,0,0,0,13.66,5.66l48-48A8,8,0,0,0,208,152Z"},null,-1),X0=[Q0],Y0={key:3},a1=a("path",{d:"M154,96V48a6,6,0,0,1,12,0V90h42a6,6,0,0,1,0,12H160A6,6,0,0,1,154,96ZM96,154H48a6,6,0,0,0,0,12H90v42a6,6,0,0,0,12,0V160A6,6,0,0,0,96,154Zm112,0H160a6,6,0,0,0-6,6v48a6,6,0,0,0,12,0V166h42a6,6,0,0,0,0-12ZM96,42a6,6,0,0,0-6,6V90H48a6,6,0,0,0,0,12H96a6,6,0,0,0,6-6V48A6,6,0,0,0,96,42Z"},null,-1),e1=[a1],l1={key:4},t1=a("path",{d:"M152,96V48a8,8,0,0,1,16,0V88h40a8,8,0,0,1,0,16H160A8,8,0,0,1,152,96ZM96,152H48a8,8,0,0,0,0,16H88v40a8,8,0,0,0,16,0V160A8,8,0,0,0,96,152Zm112,0H160a8,8,0,0,0-8,8v48a8,8,0,0,0,16,0V168h40a8,8,0,0,0,0-16ZM96,40a8,8,0,0,0-8,8V88H48a8,8,0,0,0,0,16H96a8,8,0,0,0,8-8V48A8,8,0,0,0,96,40Z"},null,-1),s1=[t1],o1={key:5},r1=a("path",{d:"M156,96V48a4,4,0,0,1,8,0V92h44a4,4,0,0,1,0,8H160A4,4,0,0,1,156,96ZM96,156H48a4,4,0,0,0,0,8H92v44a4,4,0,0,0,8,0V160A4,4,0,0,0,96,156Zm112,0H160a4,4,0,0,0-4,4v48a4,4,0,0,0,8,0V164h44a4,4,0,0,0,0-8ZM96,44a4,4,0,0,0-4,4V92H48a4,4,0,0,0,0,8H96a4,4,0,0,0,4-4V48A4,4,0,0,0,96,44Z"},null,-1),n1=[r1],i1={name:"PhCornersIn"},u1=b({...i1,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",F0,W0)):s.value==="duotone"?(l(),t("g",G0,J0)):s.value==="fill"?(l(),t("g",K0,X0)):s.value==="light"?(l(),t("g",Y0,e1)):s.value==="regular"?(l(),t("g",l1,s1)):s.value==="thin"?(l(),t("g",o1,n1)):k("",!0)],16,j0))}}),d1=["width","height","fill","transform"],h1={key:0},v1=a("path",{d:"M220,48V88a12,12,0,0,1-24,0V60H168a12,12,0,0,1,0-24h40A12,12,0,0,1,220,48ZM88,196H60V168a12,12,0,0,0-24,0v40a12,12,0,0,0,12,12H88a12,12,0,0,0,0-24Zm120-40a12,12,0,0,0-12,12v28H168a12,12,0,0,0,0,24h40a12,12,0,0,0,12-12V168A12,12,0,0,0,208,156ZM88,36H48A12,12,0,0,0,36,48V88a12,12,0,0,0,24,0V60H88a12,12,0,0,0,0-24Z"},null,-1),c1=[v1],p1={key:1},H1=a("path",{d:"M208,48V208H48V48Z",opacity:"0.2"},null,-1),V1=a("path",{d:"M216,48V88a8,8,0,0,1-16,0V56H168a8,8,0,0,1,0-16h40A8,8,0,0,1,216,48ZM88,200H56V168a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H88a8,8,0,0,0,0-16Zm120-40a8,8,0,0,0-8,8v32H168a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V168A8,8,0,0,0,208,160ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,16,0V56H88a8,8,0,0,0,0-16Z"},null,-1),g1=[H1,V1],m1={key:2},$1=a("path",{d:"M93.66,202.34A8,8,0,0,1,88,216H48a8,8,0,0,1-8-8V168a8,8,0,0,1,13.66-5.66ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,13.66,5.66l40-40A8,8,0,0,0,88,40ZM211.06,160.61a8,8,0,0,0-8.72,1.73l-40,40A8,8,0,0,0,168,216h40a8,8,0,0,0,8-8V168A8,8,0,0,0,211.06,160.61ZM208,40H168a8,8,0,0,0-5.66,13.66l40,40A8,8,0,0,0,216,88V48A8,8,0,0,0,208,40Z"},null,-1),y1=[$1],Z1={key:3},f1=a("path",{d:"M214,48V88a6,6,0,0,1-12,0V54H168a6,6,0,0,1,0-12h40A6,6,0,0,1,214,48ZM88,202H54V168a6,6,0,0,0-12,0v40a6,6,0,0,0,6,6H88a6,6,0,0,0,0-12Zm120-40a6,6,0,0,0-6,6v34H168a6,6,0,0,0,0,12h40a6,6,0,0,0,6-6V168A6,6,0,0,0,208,162ZM88,42H48a6,6,0,0,0-6,6V88a6,6,0,0,0,12,0V54H88a6,6,0,0,0,0-12Z"},null,-1),A1=[f1],M1={key:4},w1=a("path",{d:"M216,48V88a8,8,0,0,1-16,0V56H168a8,8,0,0,1,0-16h40A8,8,0,0,1,216,48ZM88,200H56V168a8,8,0,0,0-16,0v40a8,8,0,0,0,8,8H88a8,8,0,0,0,0-16Zm120-40a8,8,0,0,0-8,8v32H168a8,8,0,0,0,0,16h40a8,8,0,0,0,8-8V168A8,8,0,0,0,208,160ZM88,40H48a8,8,0,0,0-8,8V88a8,8,0,0,0,16,0V56H88a8,8,0,0,0,0-16Z"},null,-1),k1=[w1],b1={key:5},_1=a("path",{d:"M212,48V88a4,4,0,0,1-8,0V52H168a4,4,0,0,1,0-8h40A4,4,0,0,1,212,48ZM88,204H52V168a4,4,0,0,0-8,0v40a4,4,0,0,0,4,4H88a4,4,0,0,0,0-8Zm120-40a4,4,0,0,0-4,4v36H168a4,4,0,0,0,0,8h40a4,4,0,0,0,4-4V168A4,4,0,0,0,208,164ZM88,44H48a4,4,0,0,0-4,4V88a4,4,0,0,0,8,0V52H88a4,4,0,0,0,0-8Z"},null,-1),S1=[_1],C1={name:"PhCornersOut"},z1=b({...C1,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",h1,c1)):s.value==="duotone"?(l(),t("g",p1,g1)):s.value==="fill"?(l(),t("g",m1,y1)):s.value==="light"?(l(),t("g",Z1,A1)):s.value==="regular"?(l(),t("g",M1,k1)):s.value==="thin"?(l(),t("g",b1,S1)):k("",!0)],16,d1))}}),x1=["width","height","fill","transform"],B1={key:0},N1=a("path",{d:"M156,88H100a12,12,0,0,0-12,12v56a12,12,0,0,0,12,12h56a12,12,0,0,0,12-12V100A12,12,0,0,0,156,88Zm-12,56H112V112h32Zm88-4H220V116h12a12,12,0,0,0,0-24H220V56a20,20,0,0,0-20-20H164V24a12,12,0,0,0-24,0V36H116V24a12,12,0,0,0-24,0V36H56A20,20,0,0,0,36,56V92H24a12,12,0,0,0,0,24H36v24H24a12,12,0,0,0,0,24H36v36a20,20,0,0,0,20,20H92v12a12,12,0,0,0,24,0V220h24v12a12,12,0,0,0,24,0V220h36a20,20,0,0,0,20-20V164h12a12,12,0,0,0,0-24Zm-36,56H60V60H196Z"},null,-1),L1=[N1],q1={key:1},D1=a("path",{d:"M200,48H56a8,8,0,0,0-8,8V200a8,8,0,0,0,8,8H200a8,8,0,0,0,8-8V56A8,8,0,0,0,200,48ZM152,152H104V104h48Z",opacity:"0.2"},null,-1),P1=a("path",{d:"M152,96H104a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V104A8,8,0,0,0,152,96Zm-8,48H112V112h32Zm88,0H216V112h16a8,8,0,0,0,0-16H216V56a16,16,0,0,0-16-16H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H56A16,16,0,0,0,40,56V96H24a8,8,0,0,0,0,16H40v32H24a8,8,0,0,0,0,16H40v40a16,16,0,0,0,16,16H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h40a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-32,56H56V56H200v95.87s0,.09,0,.13,0,.09,0,.13V200Z"},null,-1),O1=[D1,P1],E1={key:2},I1=a("path",{d:"M104,104h48v48H104Zm136,48a8,8,0,0,1-8,8H216v40a16,16,0,0,1-16,16H160v16a8,8,0,0,1-16,0V216H112v16a8,8,0,0,1-16,0V216H56a16,16,0,0,1-16-16V160H24a8,8,0,0,1,0-16H40V112H24a8,8,0,0,1,0-16H40V56A16,16,0,0,1,56,40H96V24a8,8,0,0,1,16,0V40h32V24a8,8,0,0,1,16,0V40h40a16,16,0,0,1,16,16V96h16a8,8,0,0,1,0,16H216v32h16A8,8,0,0,1,240,152ZM168,96a8,8,0,0,0-8-8H96a8,8,0,0,0-8,8v64a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8Z"},null,-1),j1=[I1],F1={key:3},T1=a("path",{d:"M152,98H104a6,6,0,0,0-6,6v48a6,6,0,0,0,6,6h48a6,6,0,0,0,6-6V104A6,6,0,0,0,152,98Zm-6,48H110V110h36Zm86,0H214V110h18a6,6,0,0,0,0-12H214V56a14,14,0,0,0-14-14H158V24a6,6,0,0,0-12,0V42H110V24a6,6,0,0,0-12,0V42H56A14,14,0,0,0,42,56V98H24a6,6,0,0,0,0,12H42v36H24a6,6,0,0,0,0,12H42v42a14,14,0,0,0,14,14H98v18a6,6,0,0,0,12,0V214h36v18a6,6,0,0,0,12,0V214h42a14,14,0,0,0,14-14V158h18a6,6,0,0,0,0-12Zm-30,54a2,2,0,0,1-2,2H56a2,2,0,0,1-2-2V56a2,2,0,0,1,2-2H200a2,2,0,0,1,2,2Z"},null,-1),W1=[T1],G1={key:4},R1=a("path",{d:"M152,96H104a8,8,0,0,0-8,8v48a8,8,0,0,0,8,8h48a8,8,0,0,0,8-8V104A8,8,0,0,0,152,96Zm-8,48H112V112h32Zm88,0H216V112h16a8,8,0,0,0,0-16H216V56a16,16,0,0,0-16-16H160V24a8,8,0,0,0-16,0V40H112V24a8,8,0,0,0-16,0V40H56A16,16,0,0,0,40,56V96H24a8,8,0,0,0,0,16H40v32H24a8,8,0,0,0,0,16H40v40a16,16,0,0,0,16,16H96v16a8,8,0,0,0,16,0V216h32v16a8,8,0,0,0,16,0V216h40a16,16,0,0,0,16-16V160h16a8,8,0,0,0,0-16Zm-32,56H56V56H200v95.87s0,.09,0,.13,0,.09,0,.13V200Z"},null,-1),U1=[R1],J1={key:5},K1=a("path",{d:"M152,100H104a4,4,0,0,0-4,4v48a4,4,0,0,0,4,4h48a4,4,0,0,0,4-4V104A4,4,0,0,0,152,100Zm-4,48H108V108h40Zm84,0H212V108h20a4,4,0,0,0,0-8H212V56a12,12,0,0,0-12-12H156V24a4,4,0,0,0-8,0V44H108V24a4,4,0,0,0-8,0V44H56A12,12,0,0,0,44,56v44H24a4,4,0,0,0,0,8H44v40H24a4,4,0,0,0,0,8H44v44a12,12,0,0,0,12,12h44v20a4,4,0,0,0,8,0V212h40v20a4,4,0,0,0,8,0V212h44a12,12,0,0,0,12-12V156h20a4,4,0,0,0,0-8Zm-28,52a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V56a4,4,0,0,1,4-4H200a4,4,0,0,1,4,4Z"},null,-1),Q1=[K1],X1={name:"PhCpu"},Y1=b({...X1,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",B1,L1)):s.value==="duotone"?(l(),t("g",q1,O1)):s.value==="fill"?(l(),t("g",E1,j1)):s.value==="light"?(l(),t("g",F1,W1)):s.value==="regular"?(l(),t("g",G1,U1)):s.value==="thin"?(l(),t("g",J1,Q1)):k("",!0)],16,x1))}}),a8=["width","height","fill","transform"],e8={key:0},l8=a("path",{d:"M209.88,69.83A115.19,115.19,0,0,0,128,36h-.41C63.85,36.22,12,88.76,12,153.13V176a20,20,0,0,0,20,20H224a20,20,0,0,0,20-20V152A115.25,115.25,0,0,0,209.88,69.83ZM220,172H127.32l46.44-65A12,12,0,1,0,154.24,93L97.82,172H36V153.13c0-1.72,0-3.43.14-5.13H56a12,12,0,0,0,0-24H40.62c10.91-33.39,40-58.52,75.38-63.21V80a12,12,0,0,0,24,0V60.8A92,92,0,0,1,215.66,124H200a12,12,0,0,0,0,24h19.9c.06,1.33.1,2.66.1,4Z"},null,-1),t8=[l8],s8={key:1},o8=a("path",{d:"M232,152v24a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V153.13C24,95.65,70.15,48.2,127.63,48A104,104,0,0,1,232,152Z",opacity:"0.2"},null,-1),r8=a("path",{d:"M207.06,72.67A111.24,111.24,0,0,0,128,40h-.4C66.07,40.21,16,91,16,153.13V176a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V152A111.25,111.25,0,0,0,207.06,72.67ZM224,176H119.71l54.76-75.3a8,8,0,0,0-12.94-9.42L99.92,176H32V153.13c0-3.08.15-6.12.43-9.13H56a8,8,0,0,0,0-16H35.27c10.32-38.86,44-68.24,84.73-71.66V80a8,8,0,0,0,16,0V56.33A96.14,96.14,0,0,1,221,128H200a8,8,0,0,0,0,16h23.67c.21,2.65.33,5.31.33,8Z"},null,-1),n8=[o8,r8],i8={key:2},u8=a("path",{d:"M240,152v24a16,16,0,0,1-16,16H115.93a4,4,0,0,1-3.24-6.35L174.27,101a8.21,8.21,0,0,0-1.37-11.3,8,8,0,0,0-11.37,1.61l-72,99.06A4,4,0,0,1,86.25,192H32a16,16,0,0,1-16-16V153.13c0-1.79,0-3.57.13-5.33a4,4,0,0,1,4-3.8H48a8,8,0,0,0,8-8.53A8.17,8.17,0,0,0,47.73,128H23.92a4,4,0,0,1-3.87-5c12-43.84,49.66-77.13,95.52-82.28a4,4,0,0,1,4.43,4V72a8,8,0,0,0,8.53,8A8.17,8.17,0,0,0,136,71.73V44.67a4,4,0,0,1,4.43-4A112.18,112.18,0,0,1,236.23,123a4,4,0,0,1-3.88,5H208.27a8.17,8.17,0,0,0-8.25,7.47,8,8,0,0,0,8,8.53h27.92a4,4,0,0,1,4,3.86C240,149.23,240,150.61,240,152Z"},null,-1),d8=[u8],h8={key:3},v8=a("path",{d:"M205.65,74.08A109.26,109.26,0,0,0,128,42h-.39C67.17,42.21,18,92.06,18,153.13V176a14,14,0,0,0,14,14H224a14,14,0,0,0,14-14V152A109.3,109.3,0,0,0,205.65,74.08ZM226,176a2,2,0,0,1-2,2H115.78l57.07-78.47a6,6,0,0,0-9.7-7.06L100.94,178H32a2,2,0,0,1-2-2V153.13A102.36,102.36,0,0,1,30.62,142H56a6,6,0,0,0,0-12H32.71C42.6,88.4,78.53,56.86,122,54.19V80a6,6,0,0,0,12,0V54.19A98.05,98.05,0,0,1,223.53,130H200a6,6,0,0,0,0,12h25.5c.33,3.3.5,6.64.5,10Z"},null,-1),c8=[v8],p8={key:4},H8=a("path",{d:"M207.06,72.67A111.24,111.24,0,0,0,128,40h-.4C66.07,40.21,16,91,16,153.13V176a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V152A111.25,111.25,0,0,0,207.06,72.67ZM224,176H119.71l54.76-75.3a8,8,0,0,0-12.94-9.42L99.92,176H32V153.13c0-3.08.15-6.12.43-9.13H56a8,8,0,0,0,0-16H35.27c10.32-38.86,44-68.24,84.73-71.66V80a8,8,0,0,0,16,0V56.33A96.14,96.14,0,0,1,221,128H200a8,8,0,0,0,0,16h23.67c.21,2.65.33,5.31.33,8Z"},null,-1),V8=[H8],g8={key:5},m8=a("path",{d:"M204.23,75.5A107.37,107.37,0,0,0,127.62,44C68.28,44.21,20,93.16,20,153.13V176a12,12,0,0,0,12,12H224a12,12,0,0,0,12-12V152A107.25,107.25,0,0,0,204.23,75.5ZM228,176a4,4,0,0,1-4,4H111.85l59.38-81.65a4,4,0,1,0-6.46-4.7L102,180H32a4,4,0,0,1-4-4V153.13A103.42,103.42,0,0,1,28.84,140H56a4,4,0,0,0,0-8H30.21C39.59,87.66,77.84,53.93,124,52.09V80a4,4,0,0,0,8,0V52.08A100.08,100.08,0,0,1,226,132H200a4,4,0,0,0,0,8h27.29a101.6,101.6,0,0,1,.71,12Z"},null,-1),$8=[m8],y8={name:"PhGauge"},Z8=b({...y8,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",e8,t8)):s.value==="duotone"?(l(),t("g",s8,n8)):s.value==="fill"?(l(),t("g",i8,d8)):s.value==="light"?(l(),t("g",h8,c8)):s.value==="regular"?(l(),t("g",p8,V8)):s.value==="thin"?(l(),t("g",g8,$8)):k("",!0)],16,a8))}}),f8=["width","height","fill","transform"],A8={key:0},M8=a("path",{d:"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z"},null,-1),w8=[M8],k8={key:1},b8=a("path",{d:"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z",opacity:"0.2"},null,-1),_8=a("path",{d:"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z"},null,-1),S8=[b8,_8],C8={key:2},z8=a("path",{d:"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z"},null,-1),x8=[z8],B8={key:3},N8=a("path",{d:"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z"},null,-1),L8=[N8],q8={key:4},D8=a("path",{d:"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z"},null,-1),P8=[D8],O8={key:5},E8=a("path",{d:"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z"},null,-1),I8=[E8],j8={name:"PhHouse"},F8=b({...j8,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",A8,w8)):s.value==="duotone"?(l(),t("g",k8,S8)):s.value==="fill"?(l(),t("g",C8,x8)):s.value==="light"?(l(),t("g",B8,L8)):s.value==="regular"?(l(),t("g",q8,P8)):s.value==="thin"?(l(),t("g",O8,I8)):k("",!0)],16,f8))}}),T8=["width","height","fill","transform"],W8={key:0},G8=a("path",{d:"M208,144H140V98.32a44,44,0,1,0-24,0V144H48a20,20,0,0,0-20,20v44a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V164A20,20,0,0,0,208,144ZM108,56a20,20,0,1,1,20,20A20,20,0,0,1,108,56Zm96,148H52V168H204ZM172,104h32a12,12,0,0,1,0,24H172a12,12,0,0,1,0-24Z"},null,-1),R8=[G8],U8={key:1},J8=a("path",{d:"M216,160v48a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V160a8,8,0,0,1,8-8H208A8,8,0,0,1,216,160ZM128,88A32,32,0,1,0,96,56,32,32,0,0,0,128,88Z",opacity:"0.2"},null,-1),K8=a("path",{d:"M208,144H136V95.19a40,40,0,1,0-16,0V144H48a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V160A16,16,0,0,0,208,144ZM104,56a24,24,0,1,1,24,24A24,24,0,0,1,104,56ZM208,208H48V160H208v48Zm-40-96h32a8,8,0,0,1,0,16H168a8,8,0,0,1,0-16Z"},null,-1),Q8=[J8,K8],X8={key:2},Y8=a("path",{d:"M224,160v48a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V160a16,16,0,0,1,16-16h72V95.19a40,40,0,1,1,16,0V144h72A16,16,0,0,1,224,160Zm-64-40a8,8,0,0,0,8,8h32a8,8,0,0,0,0-16H168A8,8,0,0,0,160,120Z"},null,-1),a2=[Y8],e2={key:3},l2=a("path",{d:"M208,146H134V93.52a38,38,0,1,0-12,0V146H48a14,14,0,0,0-14,14v48a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V160A14,14,0,0,0,208,146ZM102,56a26,26,0,1,1,26,26A26,26,0,0,1,102,56ZM210,208a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V160a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Zm-42-94h32a6,6,0,0,1,0,12H168a6,6,0,0,1,0-12Z"},null,-1),t2=[l2],s2={key:4},o2=a("path",{d:"M208,144H136V95.19a40,40,0,1,0-16,0V144H48a16,16,0,0,0-16,16v48a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V160A16,16,0,0,0,208,144ZM104,56a24,24,0,1,1,24,24A24,24,0,0,1,104,56ZM208,208H48V160H208v48Zm-40-96h32a8,8,0,0,1,0,16H168a8,8,0,0,1,0-16Z"},null,-1),r2=[o2],n2={key:5},i2=a("path",{d:"M208,148H132V91.77a36,36,0,1,0-8,0V148H48a12,12,0,0,0-12,12v48a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V160A12,12,0,0,0,208,148ZM100,56a28,28,0,1,1,28,28A28,28,0,0,1,100,56ZM212,208a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V160a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Zm-48-88a4,4,0,0,1,4-4h32a4,4,0,0,1,0,8H168A4,4,0,0,1,164,120Z"},null,-1),u2=[i2],d2={name:"PhJoystick"},h2=b({...d2,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",W8,R8)):s.value==="duotone"?(l(),t("g",U8,Q8)):s.value==="fill"?(l(),t("g",X8,a2)):s.value==="light"?(l(),t("g",e2,t2)):s.value==="regular"?(l(),t("g",s2,r2)):s.value==="thin"?(l(),t("g",n2,u2)):k("",!0)],16,T8))}}),v2=["width","height","fill","transform"],c2={key:0},p2=a("path",{d:"M208,76H180V56A52,52,0,0,0,76,56V76H48A20,20,0,0,0,28,96V208a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V96A20,20,0,0,0,208,76ZM100,56a28,28,0,0,1,56,0V76H100ZM204,204H52V100H204Z"},null,-1),H2=[p2],V2={key:1},g2=a("path",{d:"M216,96V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H208A8,8,0,0,1,216,96Z",opacity:"0.2"},null,-1),m2=a("path",{d:"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Z"},null,-1),$2=[g2,m2],y2={key:2},Z2=a("path",{d:"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96Z"},null,-1),f2=[Z2],A2={key:3},M2=a("path",{d:"M208,82H174V56a46,46,0,0,0-92,0V82H48A14,14,0,0,0,34,96V208a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V96A14,14,0,0,0,208,82ZM94,56a34,34,0,0,1,68,0V82H94ZM210,208a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V96a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Z"},null,-1),w2=[M2],k2={key:4},b2=a("path",{d:"M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Z"},null,-1),_2=[b2],S2={key:5},C2=a("path",{d:"M208,84H172V56a44,44,0,0,0-88,0V84H48A12,12,0,0,0,36,96V208a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V96A12,12,0,0,0,208,84ZM92,56a36,36,0,0,1,72,0V84H92ZM212,208a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V96a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Z"},null,-1),z2=[C2],x2={name:"PhLockSimple"},Q=b({...x2,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",c2,H2)):s.value==="duotone"?(l(),t("g",V2,$2)):s.value==="fill"?(l(),t("g",y2,f2)):s.value==="light"?(l(),t("g",A2,w2)):s.value==="regular"?(l(),t("g",k2,_2)):s.value==="thin"?(l(),t("g",S2,z2)):k("",!0)],16,v2))}}),B2=["width","height","fill","transform"],N2={key:0},L2=a("path",{d:"M40,92H70.06a36,36,0,0,0,67.88,0H216a12,12,0,0,0,0-24H137.94a36,36,0,0,0-67.88,0H40a12,12,0,0,0,0,24Zm64-24A12,12,0,1,1,92,80,12,12,0,0,1,104,68Zm112,96H201.94a36,36,0,0,0-67.88,0H40a12,12,0,0,0,0,24h94.06a36,36,0,0,0,67.88,0H216a12,12,0,0,0,0-24Zm-48,24a12,12,0,1,1,12-12A12,12,0,0,1,168,188Z"},null,-1),q2=[L2],D2={key:1},P2=a("path",{d:"M128,80a24,24,0,1,1-24-24A24,24,0,0,1,128,80Zm40,72a24,24,0,1,0,24,24A24,24,0,0,0,168,152Z",opacity:"0.2"},null,-1),O2=a("path",{d:"M40,88H73a32,32,0,0,0,62,0h81a8,8,0,0,0,0-16H135a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16Zm64-24A16,16,0,1,1,88,80,16,16,0,0,1,104,64ZM216,168H199a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16h97a32,32,0,0,0,62,0h17a8,8,0,0,0,0-16Zm-48,24a16,16,0,1,1,16-16A16,16,0,0,1,168,192Z"},null,-1),E2=[P2,O2],I2={key:2},j2=a("path",{d:"M32,80a8,8,0,0,1,8-8H77.17a28,28,0,0,1,53.66,0H216a8,8,0,0,1,0,16H130.83a28,28,0,0,1-53.66,0H40A8,8,0,0,1,32,80Zm184,88H194.83a28,28,0,0,0-53.66,0H40a8,8,0,0,0,0,16H141.17a28,28,0,0,0,53.66,0H216a8,8,0,0,0,0-16Z"},null,-1),F2=[j2],T2={key:3},W2=a("path",{d:"M40,86H74.6a30,30,0,0,0,58.8,0H216a6,6,0,0,0,0-12H133.4a30,30,0,0,0-58.8,0H40a6,6,0,0,0,0,12Zm64-24A18,18,0,1,1,86,80,18,18,0,0,1,104,62ZM216,170H197.4a30,30,0,0,0-58.8,0H40a6,6,0,0,0,0,12h98.6a30,30,0,0,0,58.8,0H216a6,6,0,0,0,0-12Zm-48,24a18,18,0,1,1,18-18A18,18,0,0,1,168,194Z"},null,-1),G2=[W2],R2={key:4},U2=a("path",{d:"M40,88H73a32,32,0,0,0,62,0h81a8,8,0,0,0,0-16H135a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16Zm64-24A16,16,0,1,1,88,80,16,16,0,0,1,104,64ZM216,168H199a32,32,0,0,0-62,0H40a8,8,0,0,0,0,16h97a32,32,0,0,0,62,0h17a8,8,0,0,0,0-16Zm-48,24a16,16,0,1,1,16-16A16,16,0,0,1,168,192Z"},null,-1),J2=[U2],K2={key:5},Q2=a("path",{d:"M40,84H76.29a28,28,0,0,0,55.42,0H216a4,4,0,0,0,0-8H131.71a28,28,0,0,0-55.42,0H40a4,4,0,0,0,0,8Zm64-24A20,20,0,1,1,84,80,20,20,0,0,1,104,60ZM216,172H195.71a28,28,0,0,0-55.42,0H40a4,4,0,0,0,0,8H140.29a28,28,0,0,0,55.42,0H216a4,4,0,0,0,0-8Zm-48,24a20,20,0,1,1,20-20A20,20,0,0,1,168,196Z"},null,-1),X2=[Q2],Y2={name:"PhSlidersHorizontal"},X=b({...Y2,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(f){const e=f,i=d("weight","regular"),p=d("size","1em"),g=d("color","currentColor"),H=d("mirrored",!1),s=r(()=>e.weight??i),v=r(()=>e.size??p),m=r(()=>e.color??g),y=r(()=>e.mirrored!==void 0?e.mirrored?"scale(-1, 1)":void 0:H?"scale(-1, 1)":void 0);return(c,w)=>(l(),t("svg",B({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:v.value,height:v.value,fill:m.value,transform:y.value},c.$attrs),[x(c.$slots,"default"),s.value==="bold"?(l(),t("g",N2,q2)):s.value==="duotone"?(l(),t("g",D2,E2)):s.value==="fill"?(l(),t("g",I2,F2)):s.value==="light"?(l(),t("g",T2,G2)):s.value==="regular"?(l(),t("g",R2,J2)):s.value==="thin"?(l(),t("g",K2,X2)):k("",!0)],16,B2))}}),aa={class:"app-shell moss-admin"},ea={class:"sidebar"},la={class:"brand"},ta=["src"],sa={class:"nav-icon"},oa={key:0,class:"nav-lock","aria-hidden":"true"},ra={class:"nav"},na=["onClick"],ia={class:"nav-icon"},ua={class:"nav-label"},da={key:0,class:"nav-lock","aria-hidden":"true"},ha={class:"nav-icon"},va={class:"sidebar-status-text"},ca={class:"sidebar-status-label"},pa={class:"sidebar-status-meta"},Ha={class:"page-header"},Va={class:"page-heading"},ga={class:"page-heading-copy"},ma={class:"page-sub"},$a={class:"page-heading-actions"},ya=["title"],Za={class:"device-chip-name"},fa=["title"],Aa={class:"page-credits"},Ma={key:0,class:"shell-approval"},wa={class:"shell-approval-meta"},ka={class:"shell-approval-tag"},ba={class:"shell-approval-reason"},_a={class:"shell-approval-cmd"},Sa={key:0,class:"shell-approval-cwd"},Ca=b({__name:"AppLayout",setup(f){const e=Y(),i=i0(),p=a0(),{isFullscreen:g}=s0(),H=I(!1),s={remote:H0,camera:c0,mcp:v0,hotkeys:p0,hardware:X,gamepad:h2,yunxiangji:h0,mihome:F8};function v(Z){return s[Z]||X}const m=r(()=>[{path:"/hardware",label:"硬件配置",requiresMoss:!0,icon:"hardware"},{path:"/remotes",label:"红外配置",requiresMoss:!0,icon:"remote",hide:!e.hasIr},{path:"/camera",label:"视觉中枢",requiresMoss:!0,icon:"camera"},{path:"/gamepad",label:"手柄控制",requiresMoss:!0,icon:"gamepad"},{path:"/hotkeys",label:"快捷键",requiresMoss:!0,icon:"hotkeys"},{path:"/yunxiangji",label:"云享记",requiresMoss:!0,icon:"yunxiangji"},{path:"/mcp",label:"MCP工具",requiresMoss:!0,icon:"mcp"},{path:"/mihome",label:"米家设备",requiresMoss:!0,icon:"mihome"}].filter(o=>!o.hide)),y=r(()=>String(i.meta.title||"MOSS 配置")),c=r(()=>String(i.meta.subtitle||"")),w=r(()=>i.meta.layoutFit===!0);function O(Z){return i.path===Z.path}function q(Z){return Z.requiresMoss&&!e.mossOnline}const D=r(()=>!e.mossOnline);function N(){H.value=!0}function V(Z){if(q(Z)){z.warning("MOSS 设备离线,请先确认设备在线后再进入配置页面"),N();return}p.push({path:Z.path,query:P()})}function h(){if(D.value){z.warning("MOSS 设备离线,请先确认设备在线后再进入控制中枢"),N();return}p.push({path:"/terminal",query:P()})}return o0(()=>e.deviceSwitcherTick,()=>{N()}),r0(async()=>{e.hydrated||await e.refresh(),e.listenEvents(),e.mossOnline||e.probeMoss().catch(()=>{}),!e.activeDeviceId&&i.path!=="/device"&&i.path!=="/flash"&&N()}),(Z,o)=>{const j=_("router-view"),F=_("el-alert"),E=_("el-button"),T=_("el-dialog");return l(),t(R,null,[a("div",aa,[a("aside",ea,[a("div",la,[a("img",{class:"brand-logo",src:n($0),alt:"550W"},null,8,ta),o[6]||(o[6]=a("div",{class:"tagline"},"550W 超级量子计算机指令终端",-1))]),a("button",{class:C(["nav-hub",{locked:D.value}]),type:"button",onClick:h},[a("span",sa,[$(n(Z8),{size:18,weight:"regular"})]),o[7]||(o[7]=a("span",{class:"nav-hub-copy"},[a("strong",null,"控制中枢"),a("small",null,"运行监视与操控")],-1)),D.value?(l(),t("span",oa,[$(n(Q),{size:16,weight:"regular"})])):k("",!0)],2),a("nav",ra,[o[9]||(o[9]=a("div",{class:"nav-kicker"},"配置",-1)),(l(!0),t(R,null,n0(m.value,u=>(l(),t("button",{key:u.path,class:C(["nav-item",{active:O(u),locked:q(u)}]),type:"button",onClick:W=>V(u)},[a("span",ia,[(l(),L(K(v(u.icon)),{size:18,weight:"regular"}))]),a("span",ua,M(u.label),1),q(u)?(l(),t("span",da,[$(n(Q),{size:16,weight:"regular"})])):k("",!0)],10,na))),128)),o[10]||(o[10]=a("div",{class:"nav-kicker"},"维护",-1)),a("button",{class:C(["nav-item quiet",{active:O("/flash")}]),type:"button",onClick:o[0]||(o[0]=u=>n(p).push("/flash"))},[a("span",ha,[$(n(Y1),{size:18,weight:"regular"})]),o[8]||(o[8]=a("span",{class:"nav-label"},"烧录固件",-1))],2)]),a("button",{class:"sidebar-status",type:"button",onClick:N},[a("span",{class:C(["dot",n(e).statusTone])},null,2),a("div",va,[a("div",ca,M(n(e).deviceName||"未选择设备"),1),a("div",pa,M(n(e).productLabel)+" · "+M(n(e).mossOnline?"在线":"离线"),1)]),o[11]||(o[11]=a("span",{class:"sidebar-status-action"},"切换设备",-1))])]),a("main",{class:C(["main",{"main--compact":w.value}])},[a("header",Ha,[a("div",Va,[a("div",ga,[a("h1",null,M(y.value),1),a("p",ma,M(c.value||" "),1)]),a("div",$a,[a("button",{type:"button",class:"device-chip",title:`切换设备:${n(e).deviceName||"未选择设备"}`,onClick:N},[a("span",{class:C(["dot",n(e).statusTone])},null,2),a("span",Za,M(n(e).deviceName||"未选择设备"),1),a("span",{class:C(["device-chip-state",n(e).statusTone])},M(n(e).mossOnline?"在线":n(e).statusLabel),3),$(n(I0),{size:14,weight:"bold"})],8,ya),a("button",{type:"button",class:C(["fs-btn",{on:n(g)}]),title:n(g)?`退出全屏 (${n(J)})`:`全屏显示 (${n(J)})`,onClick:o[1]||(o[1]=(...u)=>n(U)&&n(U)(...u))},[n(g)?(l(),L(n(u1),{key:0,size:16,weight:"bold"})):(l(),L(n(z1),{key:1,size:16,weight:"bold"}))],10,fa)])])]),a("div",{class:C(["page-body",{"page-body--fit":w.value}])},[$(j,null,{default:A(({Component:u})=>[(l(),L(u0,{include:"MiHome"},[(l(),L(K(u)))],1024))]),_:1})],2),a("footer",Aa,[$(d0)])],2)]),$(m0,{modelValue:H.value,"onUpdate:modelValue":o[2]||(o[2]=u=>H.value=u)},null,8,["modelValue"]),$(T,{modelValue:n(e).shellApprovalVisible,"onUpdate:modelValue":o[5]||(o[5]=u=>n(e).shellApprovalVisible=u),class:"moss-dialog",title:"高危命令需您授权",width:"520px","align-center":"","close-on-click-modal":!1,"close-on-press-escape":!1,"show-close":!1},{footer:A(()=>[$(E,{onClick:o[3]||(o[3]=u=>n(e).decideShellApproval(!1))},{default:A(()=>[...o[15]||(o[15]=[S("拒绝",-1)])]),_:1}),$(E,{type:"primary",onClick:o[4]||(o[4]=u=>n(e).decideShellApproval(!0))},{default:A(()=>[...o[16]||(o[16]=[S("允许执行",-1)])]),_:1})]),default:A(()=>[n(e).shellApprovalCurrent?(l(),t("div",Ma,[$(F,{type:"warning","show-icon":"",closable:!1,class:"shell-approval-alert"},{default:A(()=>[...o[12]||(o[12]=[S(" 智能体请求执行以下高危命令。需您在本机确认后,MOSS 才会继续执行。 ",-1)])]),_:1}),a("div",wa,[a("span",ka,M(n(e).shellApprovalCategoryLabel),1),a("span",ba,M(n(e).shellApprovalCurrent.reason),1)]),a("pre",_a,M(n(e).shellApprovalCurrent.command),1),n(e).shellApprovalCurrent.cwd?(l(),t("p",Sa,[o[13]||(o[13]=S(" 工作目录:",-1)),a("code",null,M(n(e).shellApprovalCurrent.cwd),1)])):k("",!0),o[14]||(o[14]=a("p",{class:"shell-approval-hint"},"5 分钟内未确认将自动取消。",-1))])):k("",!0)]),_:1},8,["modelValue"])],64)}}}),Oa=e0(Ca,[["__scopeId","data-v-a9b40ffc"]]);export{Oa as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as xe,a as je,z as Fe,I as Ae,m as d,b as s,e as r,w as f,F as Ne,B as Re,p as S,t as C,c as Ue,O as Ie,R as We,q as Q,S as X,g as U,h as o,s as F,L as I,r as z,T as Ke,o as i,f as W,A as qe,j as D}from"./index-CMMVyrw-.js";import{u as Ge,m as Y}from"./usePtzControl-B37Lef3z.js";import"./esp-flasher-CeAm6Ct9.js";const Je={class:"camera-layout"},Qe={class:"panel camera-side"},Xe={class:"panel-bd camera-side-bd"},Ye={class:"camera-side-main"},Ze={key:0,class:"hint"},He={key:1,class:"hint"},ea={class:"actions"},aa={key:2,class:"device-list"},ta=["onClick"],na={class:"hint",style:{margin:"4px 0 0"}},la={key:0},sa={key:3,class:"hint"},oa={key:4,class:"hint danger"},ua={key:5,class:"hint success"},ra={class:"actions camera-side-actions"},ia={class:"panel camera-preview"},ca={class:"panel-bd camera-preview-bd"},da={class:"camera-stage"},va=["src"],pa={key:1,class:"camera-placeholder"},fa={class:"ptz-pad"},ma=["disabled"],ha=["disabled"],ya=["disabled"],_a=["disabled"],ga=["disabled"],wa={key:0,class:"hint"},ba={key:1,class:"hint"},Ba=xe({__name:"Camera",setup(ka){const Z=o(!1),ce=o(!1),K=o(!1),q=o(!1),u=o(!1),de=je(),H=F(()=>de.hasOnboardCamera),ee=F(()=>de.hasGimbal),v=o(""),y=o(""),T=o(!1),A=o(!1),w=o([]),ae=o(""),m=o(""),L=o(""),c=o(""),te=o(""),V=o(null),M=o(!1),n=o({hostname:"",port:80,username:"admin",password:"",path:"/onvif/device_service"}),P=F(()=>ee.value||M.value),ge=F(()=>u.value||A.value||!!n.value.hostname.trim()||!!n.value.password||n.value.username.trim()&&n.value.username.trim()!=="admin"),we=o(!0),B=Ge(P,we),be=F(()=>!c.value||c.value==="mpegts"&&(!T.value||!!y.value)||c.value==="mjpeg"&&!m.value),ke=F(()=>u.value?y.value||"正在读取画面…":H.value?"板载画面暂不支持":"连接后在这里显示画面");let $=null,p=!1,_=0,O=0,ne=!1,x=0,G=0,le=0,se=0,b=0,j=!1;function N(){var e;x=Date.now(),G=((e=V.value)==null?void 0:e.currentTime)||G}function oe(){window.clearTimeout(se),se=0}function ue(){window.clearInterval(le),le=0}function Se(){ue(),N(),le=window.setInterval(()=>{if(!p||document.hidden||c.value!=="mpegts"||!x)return;const e=V.value;if(!e)return;if(e.paused){const a=e.play();a&&typeof a.catch=="function"&&a.catch(()=>{})}const t=e.currentTime||0;if(t>G+.04){G=t,x=Date.now();return}Date.now()-x>8e3&&(console.warn("[mpegts] stall, reconnect"),ye())},1e3)}function Ce(){var t;const e=V.value;return(t=e==null?void 0:e.buffered)!=null&&t.length?e.buffered.end(e.buffered.length-1)-e.currentTime:0}function Te(){if(c.value!=="mjpeg"||!m.value)return;const e=m.value.replace(/([?&])t=\d+/,`$1t=${Date.now()}`);m.value=e.includes("t=")?e:`${m.value}${m.value.includes("?")?"&":"?"}t=${Date.now()}`}function Ve(e){!p||!u.value||c.value!=="mpegts"||(console.warn("[mpegts]",e),window.clearTimeout(_),_=0,O=0,j=!1,g(),R(ne))}function re(){if(!p)return;if(document.hidden){b=Date.now(),c.value==="mpegts"&&(j=!0,g());return}const e=b?Date.now()-b:0;if(b=0,Te(),c.value!=="mpegts")return;if(j||e>400||Ce()>.7){Ve("tab visible, resync live");return}const t=V.value;if(t!=null&&t.paused){const a=t.play();a&&typeof a.catch=="function"&&a.catch(()=>{})}N()}function ve(e){e.persisted&&re()}function pe(){!p||c.value!=="mpegts"||(b=b||Date.now(),j=!0,g())}function fe(){return window.location.origin}function me(e){return`${e.hostname}:${e.port}${e.path}`}function he(e){ae.value=me(e),n.value.hostname=e.hostname,n.value.port=e.port,n.value.path=e.path||"/onvif/device_service"}async function Be(){Z.value=!0,v.value="";try{const e=await I("/api/camera/discover",{method:"POST",body:JSON.stringify({fresh:!0}),timeoutMs:25e3});w.value=e.devices||[],ce.value=!0,w.value.length===1&&he(w.value[0]),D[w.value.length?"success":"warning"](w.value.length?`找到 ${w.value.length} 路视频源`:"没有扫到设备")}catch(e){v.value=e instanceof Error?e.message:"扫描失败",D.error(v.value)}finally{Z.value=!1}}async function Ee(){ae.value="",A.value=!1,n.value={hostname:"",port:80,username:"admin",password:"",path:"/onvif/device_service"}}async function ze(){if(!q.value){q.value=!0,v.value="";try{ie(),B.release(),await I("/api/camera/clear",{method:"POST"}),u.value=!1,M.value=!1,L.value="",y.value="",Ee(),D.success("已清除摄像头信息")}catch(e){v.value=e instanceof Error?e.message:"清除失败",D.error(v.value)}finally{q.value=!1}}}async function De(){var e,t;try{const a=await I("/api/camera/status");if(A.value=!!((e=a.saved)!=null&&e.password_set),(t=a.saved)!=null&&t.hostname){const h=!!a.connected;n.value.hostname=h&&a.hostname||a.saved.hostname,n.value.port=Number(h&&a.port||a.saved.port||80),n.value.path=h&&a.path||a.saved.path||"/onvif/device_service",n.value.username=h&&a.username||a.saved.username||"admin"}u.value=!!a.connected,M.value=!!a.ptz||!!a.gimbalAvailable,te.value=a.encoding||"",a.info&&(L.value=[a.info.manufacturer,a.info.model].filter(Boolean).join(" ")),a.connected&&_e(a)}catch{}}function Le(e){u.value=!0,M.value=!!e.ptz||!!e.gimbalAvailable,te.value=e.encoding||"",L.value=e.info?[e.info.manufacturer,e.info.model].filter(Boolean).join(" "):"",A.value=!0,_e(e)}async function Me(){if(!n.value.hostname.trim()||n.value.hostname.trim()==="onboard"){D.warning(H.value?"板载画面暂不支持,请填写 Onvif 地址":"请填写摄像头地址");return}if(!K.value){K.value=!0,v.value="";try{const e=await I("/api/camera/connect",{method:"POST",body:JSON.stringify(n.value),timeoutMs:75e3});Le(e),v.value="",D.success(e.ptz?"已连接,可用方向键转云台":"已连接。这台设备没有云台")}catch(e){v.value=e instanceof Error?e.message:"连接失败",D.error(v.value)}finally{K.value=!1}}}async function Pe(){ie(),B.release();try{await I("/api/camera/disconnect",{method:"POST"})}catch{}u.value=!1,M.value=!1,L.value="",y.value=""}function R(e){ne=e,c.value="mpegts",Ke(()=>{if(!p)return;if(!V.value){y.value="画面组件未就绪";return}if(!Y.isSupported()){y.value="当前浏览器不支持直播预览";return}g(),T.value=!1;const t=e?"&codec=h264":"",a=Y.createPlayer({type:"mpegts",isLive:!0,cors:!0,url:`${fe()}/api/camera/stream?t=${Date.now()}${t}`,hasAudio:!1,hasVideo:!0},{enableWorker:!1,enableStashBuffer:!1,liveBufferLatencyChasing:!0,liveBufferLatencyChasingOnPaused:!0,liveBufferLatencyMaxLatency:.5,liveBufferLatencyMinRemain:.12,liveSync:!0,liveSyncMaxLatency:.6,liveSyncTargetLatency:.2,liveSyncPlaybackRate:1.6,autoCleanupSourceBuffer:!0,autoCleanupMaxBackwardDuration:3,autoCleanupMinBackwardDuration:1});$=a,N(),a.attachMediaElement(V.value),a.load(),(()=>{const k=a.play();k&&typeof k.catch=="function"&&k.catch(()=>{})})();const E=()=>{$!==a||!p||T.value||(oe(),O=0,y.value="",T.value=!0,N(),Se())};oe(),se=window.setTimeout(()=>{if(!($!==a||!p)){if(!e&&!T.value){console.warn("[mpegts] no media in time, transcode"),g(),R(!0);return}E()}},e?6e3:8e3),a.on(Y.Events.MEDIA_INFO,E),a.on(Y.Events.ERROR,(k,J)=>{if(!($!==a||!p)){if(console.warn("[mpegts]",k,J),!e&&/hevc|h265|codec/i.test(`${k} ${J}`)){g(),R(!0);return}Date.now()-x<4e3&&x||ye()}})})}function ye(){if(!p||!u.value||_)return;N(),g();const e=Math.min(200*2**O,1600);O+=1,y.value=O>1?"画面中断,正在重连…":"正在同步画面…",_=window.setTimeout(()=>{_=0,!(!p||!u.value)&&R(ne)},e)}function g(){oe();const e=$;if($=null,!!e){try{e.pause()}catch{}try{e.unload()}catch{}try{e.detachMediaElement()}catch{}try{e.destroy()}catch{}}}function _e(e){window.clearTimeout(_),_=0,j=!1,b=0,ue(),g(),p=!0,O=0,y.value="",T.value=!1;const t=e.playMode||(e.liveDirect?"mjpeg":"mpegts");if(t==="mpegts"){const a=/hevc|h265/.test(e.encoding||te.value);R(a);return}c.value=t==="snapshot"?"mjpeg":t,m.value=e.liveDirect||`${fe()}/api/camera/stream?t=${Date.now()}`}function ie(){p=!1,window.clearTimeout(_),_=0,j=!1,b=0,ue(),g(),m.value="",c.value="",T.value=!1}return Fe(()=>{De(),document.addEventListener("visibilitychange",re),document.addEventListener("freeze",pe),window.addEventListener("pageshow",ve)}),Ae(()=>{document.removeEventListener("visibilitychange",re),document.removeEventListener("freeze",pe),window.removeEventListener("pageshow",ve),ie()}),(e,t)=>{const a=z("el-button"),h=z("el-input"),E=z("el-form-item"),k=z("el-input-number"),J=z("el-collapse-item"),$e=z("el-collapse"),Oe=z("el-form");return i(),d("div",Je,[s("section",Qe,[t[10]||(t[10]=s("div",{class:"panel-hd"},"视觉源",-1)),s("div",Xe,[s("div",Ye,[H.value?(i(),d("p",Ze,"板载画面暂不支持。云台方向键仍可用。")):(i(),d("p",He,"扫描或填写 Onvif 地址后连接。画面在右侧预览。")),s("div",ea,[r(a,{type:"primary",loading:Z.value,onClick:Be},{default:f(()=>[...t[6]||(t[6]=[W("扫描局域网",-1)])]),_:1},8,["loading"]),r(a,{disabled:!ge.value,loading:q.value,onClick:ze},{default:f(()=>[...t[7]||(t[7]=[W("清除已填信息",-1)])]),_:1},8,["disabled","loading"])]),w.value.length?(i(),d("div",aa,[(i(!0),d(Ne,null,Re(w.value,l=>(i(),d("div",{key:l.hostname+":"+l.port+l.path,class:qe(["device-item",{active:ae.value===me(l)}]),onClick:Sa=>he(l)},[s("strong",null,C(l.name||l.hostname),1),s("div",na,[W(C(l.hostname)+":"+C(l.port)+" ",1),l.hardware?(i(),d("span",la," · "+C(l.hardware),1)):S("",!0)])],10,ta))),128))])):ce.value?(i(),d("p",sa,"这一轮没有扫到 Onvif 设备,可以在下面手动填写 IP。")):S("",!0),r(Oe,{"label-position":"top",class:"config-form",style:{"margin-top":"12px"}},{default:f(()=>[r(E,{label:"地址"},{default:f(()=>[r(h,{modelValue:n.value.hostname,"onUpdate:modelValue":t[0]||(t[0]=l=>n.value.hostname=l),placeholder:"例如 192.168.1.64"},null,8,["modelValue"])]),_:1}),r(E,{label:"端口"},{default:f(()=>[r(k,{modelValue:n.value.port,"onUpdate:modelValue":t[1]||(t[1]=l=>n.value.port=l),min:1,max:65535},null,8,["modelValue"]),t[8]||(t[8]=s("div",{class:"hint"},"常见是 80。海康有时是 80 或 8000。",-1))]),_:1}),r(E,{label:"账号"},{default:f(()=>[r(h,{modelValue:n.value.username,"onUpdate:modelValue":t[2]||(t[2]=l=>n.value.username=l),placeholder:"常见是 admin"},null,8,["modelValue"])]),_:1}),r(E,{label:"密码"},{default:f(()=>[r(h,{modelValue:n.value.password,"onUpdate:modelValue":t[3]||(t[3]=l=>n.value.password=l),type:"password","show-password":"",placeholder:A.value?"已保存,不改可留空":""},null,8,["modelValue","placeholder"])]),_:1}),r($e,{class:"soft-collapse"},{default:f(()=>[r(J,{title:"高级:Onvif 路径"},{default:f(()=>[r(h,{modelValue:n.value.path,"onUpdate:modelValue":t[4]||(t[4]=l=>n.value.path=l),placeholder:"/onvif/device_service"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),v.value?(i(),d("p",oa,C(v.value),1)):S("",!0),u.value&&L.value?(i(),d("p",ua,C(L.value),1)):S("",!0)]),s("div",ra,[u.value?(i(),Ue(a,{key:0,onClick:Pe},{default:f(()=>[...t[9]||(t[9]=[W("断开",-1)])]),_:1})):S("",!0),r(a,{type:"primary",loading:K.value,onClick:Me},{default:f(()=>[W(C(u.value?"重新连接":"连接摄像头"),1)]),_:1},8,["loading"])])])]),s("section",ia,[t[11]||(t[11]=s("div",{class:"panel-hd"},"画面与云台",-1)),s("div",ca,[s("div",da,[Ie(s("video",{ref_key:"videoEl",ref:V,class:"camera-frame",muted:"",autoplay:"",playsinline:""},null,512),[[We,u.value&&c.value==="mpegts"]]),u.value&&c.value==="mjpeg"&&m.value?(i(),d("img",{key:0,class:"camera-frame",src:m.value,alt:"摄像头画面"},null,8,va)):S("",!0),!u.value||be.value?(i(),d("div",pa,C(ke.value),1)):S("",!0),s("div",fa,[s("button",Q({class:"ptz-btn",type:"button",disabled:!P.value},X(U(B).pointerBind("up"),!0)),"上",16,ma),s("button",Q({class:"ptz-btn",type:"button",disabled:!P.value},X(U(B).pointerBind("left"),!0)),"左",16,ha),s("button",{class:"ptz-btn stop",type:"button",disabled:!P.value,onClick:t[5]||(t[5]=l=>U(B).send("stop"))},"停",8,ya),s("button",Q({class:"ptz-btn",type:"button",disabled:!P.value},X(U(B).pointerBind("right"),!0)),"右",16,_a),s("button",Q({class:"ptz-btn",type:"button",disabled:!P.value},X(U(B).pointerBind("down"),!0)),"下",16,ga)])]),ee.value&&!u.value?(i(),d("p",wa,"板载云台由步进电机驱动,语音/人脸跟踪时会互让。")):u.value&&!M.value&&!ee.value?(i(),d("p",ba,"已连上,但没有云台。画面仍可看。")):S("",!0)])])])}}});export{Ba as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.moss-wire[data-v-08430a60]{--bg: #070b10;--line: #5b4cdb;--muted: rgb(244 245 250 / .48);--text: #f4f5fa;--ok: #c8c4f5;position:relative;width:100%;height:100%;min-height:240px;overflow:hidden;background:#02050a;touch-action:none;cursor:grab;font-family:DIN Alternate,Arial Narrow,PingFang SC,Noto Sans SC,sans-serif}.moss-wire[data-v-08430a60]:active{cursor:grabbing}.moss-gl[data-v-08430a60]{position:absolute;top:0;right:0;bottom:52px;left:0}.moss-gl[data-v-08430a60] canvas{display:block;width:100%;height:100%}.hud[data-v-08430a60]{position:absolute;top:0;right:0;bottom:52px;left:0;pointer-events:none;z-index:2;color:var(--text)}.hud-corner[data-v-08430a60]{position:absolute;width:22px;height:22px;border:1.5px solid rgb(91 76 219 / .9)}.hud-corner.tl[data-v-08430a60]{top:10px;left:10px;border-right:0;border-bottom:0}.hud-corner.tr[data-v-08430a60]{top:10px;right:10px;border-left:0;border-bottom:0}.hud-corner.bl[data-v-08430a60]{bottom:10px;left:10px;border-right:0;border-top:0}.hud-corner.br[data-v-08430a60]{bottom:10px;right:10px;border-left:0;border-top:0}.hud-grid[data-v-08430a60]{position:absolute;top:16px;right:16px;bottom:16px;left:16px;background-image:linear-gradient(rgb(91 76 219 / .22) 1px,transparent 1px),linear-gradient(90deg,rgb(91 76 219 / .22) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,#000 18%,transparent 78%);mask-image:radial-gradient(ellipse at center,#000 18%,transparent 78%)}.crt[data-v-08430a60]{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,transparent 0 3px,rgb(0 0 0 / .08) 3px 4px);opacity:.18}.heading[data-v-08430a60]{position:absolute;right:8%;top:16%;text-align:right;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.heading small[data-v-08430a60]{display:block;letter-spacing:.22em;font-size:10px;color:var(--muted)}.heading b[data-v-08430a60]{display:block;margin-top:4px;letter-spacing:.16em;font-size:13px}.scene-tag[data-v-08430a60]{position:absolute;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);border-left:2px solid var(--line);padding:4px 0 4px 10px;background:linear-gradient(90deg,rgb(91 76 219 / .18),transparent)}.scene-tag small[data-v-08430a60],.scene-tag em[data-v-08430a60]{display:block;letter-spacing:.18em;font-size:9px;color:var(--muted);font-style:normal}.scene-tag b[data-v-08430a60]{display:block;margin:2px 0 3px;letter-spacing:.14em;font-size:13px;color:var(--text)}.tag-a[data-v-08430a60]{left:7%;top:20%}.tag-b[data-v-08430a60]{left:7%;bottom:14%}.propel-strip[data-v-08430a60]{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#5b4cdb8c;pointer-events:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.propel-strip div[data-v-08430a60]{background:#0c141c;padding:8px 10px}.propel-strip span[data-v-08430a60]{display:block;color:var(--muted);font-size:10px;letter-spacing:.16em}.propel-strip b[data-v-08430a60]{display:block;margin-top:3px;color:var(--text);font-size:13px;letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.propel-strip b.ok[data-v-08430a60]{color:var(--ok)}.propel-strip b.bad[data-v-08430a60]{color:#c81e1e}.device-page[data-v-
|
|
1
|
+
.moss-wire[data-v-08430a60]{--bg: #070b10;--line: #5b4cdb;--muted: rgb(244 245 250 / .48);--text: #f4f5fa;--ok: #c8c4f5;position:relative;width:100%;height:100%;min-height:240px;overflow:hidden;background:#02050a;touch-action:none;cursor:grab;font-family:DIN Alternate,Arial Narrow,PingFang SC,Noto Sans SC,sans-serif}.moss-wire[data-v-08430a60]:active{cursor:grabbing}.moss-gl[data-v-08430a60]{position:absolute;top:0;right:0;bottom:52px;left:0}.moss-gl[data-v-08430a60] canvas{display:block;width:100%;height:100%}.hud[data-v-08430a60]{position:absolute;top:0;right:0;bottom:52px;left:0;pointer-events:none;z-index:2;color:var(--text)}.hud-corner[data-v-08430a60]{position:absolute;width:22px;height:22px;border:1.5px solid rgb(91 76 219 / .9)}.hud-corner.tl[data-v-08430a60]{top:10px;left:10px;border-right:0;border-bottom:0}.hud-corner.tr[data-v-08430a60]{top:10px;right:10px;border-left:0;border-bottom:0}.hud-corner.bl[data-v-08430a60]{bottom:10px;left:10px;border-right:0;border-top:0}.hud-corner.br[data-v-08430a60]{bottom:10px;right:10px;border-left:0;border-top:0}.hud-grid[data-v-08430a60]{position:absolute;top:16px;right:16px;bottom:16px;left:16px;background-image:linear-gradient(rgb(91 76 219 / .22) 1px,transparent 1px),linear-gradient(90deg,rgb(91 76 219 / .22) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,#000 18%,transparent 78%);mask-image:radial-gradient(ellipse at center,#000 18%,transparent 78%)}.crt[data-v-08430a60]{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,transparent 0 3px,rgb(0 0 0 / .08) 3px 4px);opacity:.18}.heading[data-v-08430a60]{position:absolute;right:8%;top:16%;text-align:right;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.heading small[data-v-08430a60]{display:block;letter-spacing:.22em;font-size:10px;color:var(--muted)}.heading b[data-v-08430a60]{display:block;margin-top:4px;letter-spacing:.16em;font-size:13px}.scene-tag[data-v-08430a60]{position:absolute;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text);border-left:2px solid var(--line);padding:4px 0 4px 10px;background:linear-gradient(90deg,rgb(91 76 219 / .18),transparent)}.scene-tag small[data-v-08430a60],.scene-tag em[data-v-08430a60]{display:block;letter-spacing:.18em;font-size:9px;color:var(--muted);font-style:normal}.scene-tag b[data-v-08430a60]{display:block;margin:2px 0 3px;letter-spacing:.14em;font-size:13px;color:var(--text)}.tag-a[data-v-08430a60]{left:7%;top:20%}.tag-b[data-v-08430a60]{left:7%;bottom:14%}.propel-strip[data-v-08430a60]{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#5b4cdb8c;pointer-events:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.propel-strip div[data-v-08430a60]{background:#0c141c;padding:8px 10px}.propel-strip span[data-v-08430a60]{display:block;color:var(--muted);font-size:10px;letter-spacing:.16em}.propel-strip b[data-v-08430a60]{display:block;margin-top:3px;color:var(--text);font-size:13px;letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.propel-strip b.ok[data-v-08430a60]{color:var(--ok)}.propel-strip b.bad[data-v-08430a60]{color:#c81e1e}.device-page[data-v-220e494d]{flex:1;min-height:0;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:16px}.device-body[data-v-220e494d]{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr) minmax(280px,.9fr);gap:14px;min-height:0;align-items:stretch}.body-card[data-v-220e494d]{display:flex;flex-direction:column;min-height:0;height:100%;width:100%}.body-card[data-v-220e494d] .panel-hd{flex-shrink:0}.body-bd[data-v-220e494d]{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.scan-bar[data-v-220e494d]{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center}.scan-results[data-v-220e494d]{display:flex;flex-direction:column;gap:8px;min-height:0}.scan-results-hd[data-v-220e494d]{font-size:12px;color:var(--muted)}.scan-list[data-v-220e494d]{flex:none;margin:0;gap:8px;max-height:min(420px,48vh);overflow:auto;grid-auto-rows:min-content;align-content:start}.scan-device[data-v-220e494d]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}.scan-device[data-v-220e494d] .el-button{flex-shrink:0}.scan-device-copy[data-v-220e494d]{min-width:0}.scan-device-copy strong[data-v-220e494d]{display:block;font-size:14px}.scan-device-copy .hint[data-v-220e494d]{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-device.connected[data-v-220e494d]{border-color:#b3e19d;background:#f0f9eb}.actions.foot[data-v-220e494d]{margin-top:auto;padding-top:8px}.moss-stage-card[data-v-220e494d]{height:100%;align-self:stretch}.scan-device.listed[data-v-220e494d]{cursor:default;background:#fff;border-color:#ebeef5}.scan-device.listed.active[data-v-220e494d]{border-color:#dcdfe6;background:#fafafa}.moss-stage-bd[data-v-220e494d]{flex:1;min-height:0;padding:0!important;display:flex;overflow:hidden}.moss-stage-bd[data-v-220e494d] .moss-wire{flex:1;min-height:0;border-radius:0 0 var(--radius) var(--radius)}@media(max-width:1100px){.device-body[data-v-220e494d]{grid-template-columns:1fr 1fr}.moss-stage-card[data-v-220e494d]{grid-column:1 / -1;min-height:360px}}@media(max-width:980px){.device-page[data-v-220e494d]{height:auto;min-height:100%;grid-template-rows:none}.device-body[data-v-220e494d]{grid-template-columns:1fr}.body-card[data-v-220e494d]{height:auto}.moss-stage-card[data-v-220e494d]{min-height:320px}}@media(max-width:640px){.scan-bar[data-v-220e494d]{grid-template-columns:1fr}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as Te,a as Ae,z as De,I as $e,o as g,m as M,b as s,J as Re,t as x,g as ae,A as Ye,h as w,s as V,L as ve,j as W,e as K,w as q,p as F,f as G,F as Xe,B as Ge,c as pe,l as Ve,r as me,M as Le,i as ke,N as He,E as Je,k as Ie}from"./index-CMMVyrw-.js";import{S as Ze,C as Ke,P as qe,W as je,a as Qe,O as et,G as re,M as fe,b as tt,V as ce,c as he,d as ge,L as st,E as at,e as nt,B as ot,f as it,D as lt,A as rt,N as ct,g as dt,F as ut}from"./engine-3d-DoxdUZhy.js";import{_ as Be}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./esp-flasher-CeAm6Ct9.js";const vt={class:"moss-wire"},pt={class:"hud","aria-hidden":"true"},mt={class:"scene-tag tag-b"},ft={class:"propel-strip"},ht="/stl/moss.stl",gt=9344678,_t=.98,yt=.985,bt=1.035,wt=.215,Mt=.7,St=0,Et=.226,xt=.245,Ot=.08,Ct=.26,Lt=.0164,kt=.375,It=.372,Pt=16722468,_e=.0022,Pe=14,Ue=.88,Ut=-.9,Nt=.14,Tt=Te({__name:"MossWireframe",setup($){const _=-Math.PI/6,y=Math.PI/6,Y=-Math.PI/2,C=Math.PI/2,P=w(null),S=Ae(),u=w(0),U=w(Pe),L=V(()=>S.deviceName||"UNNAMED"),k=V(()=>H(u.value)),T=V(()=>H(U.value));let R=()=>{};function H(a){return`${a>0?"+":""}${a}°`}function B(a,n){const r=a.getAttribute("position");let v=0,h=0,d=0,l=0;for(let p=0;p<r.count;p++){const A=r.getX(p),o=r.getY(p),e=r.getZ(p);n(A,o,e)&&(v+=A,h+=o,d+=e,l+=1)}return l?new ce(v/l,h/l,d/l):(a.computeBoundingBox(),a.boundingBox.getCenter(new ce))}function J(){const a=new re,n=(d,l)=>new it({color:d,transparent:l<1,opacity:l,depthWrite:!1,blending:l<1?rt:ct,side:lt}),r=new he(new ge(.04,32),n(13114910,.16)),v=new he(new ge(.02,28),n(16726578,.42)),h=new he(new ge(.0075,24),n(Pt,1));return a.add(r,v,h),{group:a,glow:v}}function X(a){const n=new dt;return n.setAttribute("position",new ut(a,3)),n.computeVertexNormals(),n}function j(a){const n=a.getAttribute("position"),r=[],v=[],h=[];for(let d=0;d<n.count;d+=3){const l=[n.getX(d),n.getX(d+1),n.getX(d+2)],p=[n.getY(d),n.getY(d+1),n.getY(d+2)],A=Math.min(...p),o=Math.max(...p),e=Math.max(...l),c=A>_t?r:o>Mt||e>=wt&&o>St?v:h;for(let i=0;i<3;i++)c.push(n.getX(d+i),n.getY(d+i),n.getZ(d+i))}return{base:X(r),arm:X(v),frame:X(h)}}function Q(a){return new st(new at(a,28),new nt({color:gt}))}return De(()=>{const a=P.value;if(!a)return;const n=new Ze;n.background=new Ke(132362);const r=new qe(32,1,.1,4e3);r.up.set(0,1,0),r.position.set(0,0,2.6);const v=new je({antialias:!0,alpha:!1});v.setPixelRatio(Math.min(window.devicePixelRatio||1,2)),v.outputColorSpace=Qe,a.appendChild(v.domElement);const h=new et(r,v.domElement);h.enableDamping=!1,h.enablePan=!1,h.enableRotate=!1,h.enableZoom=!1,h.autoRotate=!1;const d=new re,l=new re,p=new re;p.rotation.x=fe.degToRad(Pe),l.add(p),d.add(l),n.add(d);const A=[];let o=0,e=!1,c=!1,i=0,N=0,m=1,D=2.6,ne=2.6,be=.8,we=6,de=null;const ze=performance.now();function We(t){return Math.min(C,Math.max(Y,t))}function ue(t){const f=fe.degToRad(r.fov),E=2*t*Math.tan(f/2),b=-Ue*E/2;r.up.set(0,1,0),r.position.set(0,b,t),r.near=Math.max(t*.02,.01),r.far=t*40,r.updateProjectionMatrix(),h.target.set(0,b,0),r.lookAt(0,b,0)}function Fe(t){const f=new ot().setFromObject(t),E=f.getSize(new ce),b=f.getCenter(new ce);t.position.x-=b.x,t.position.z-=b.z,t.position.y-=f.max.y;const O=Math.max(E.y,.01),I=Math.max(E.x,E.z,.01),ie=fe.degToRad(r.fov),ee=Math.tan(ie/2),le=O/((Ue-Ut)*ee),Z=I/(1.8*ee*Math.max(r.aspect,.2)),z=Math.max(le,Z);be=z*.45,we=z*3.2,D=z,ne=z,ue(D)}function Me(){const t=a.clientWidth||1,f=a.clientHeight||1;r.aspect=t/f,r.updateProjectionMatrix(),v.setSize(t,f,!1),ue(D)}const Se=t=>{c=!0,i=t.clientX,N=t.clientY,a.setPointerCapture(t.pointerId)},Ee=t=>{c&&(l.rotation.y+=(t.clientX-i)*.008,p.rotation.x=We(p.rotation.x+(t.clientY-N)*.008),i=t.clientX,N=t.clientY)},oe=t=>{c=!1,a.hasPointerCapture(t.pointerId)&&a.releasePointerCapture(t.pointerId)},xe=t=>{t.preventDefault();const f=Math.exp(t.deltaY*.0016);ne=Math.min(we,Math.max(be,ne*f))};a.addEventListener("pointerdown",Se),a.addEventListener("pointermove",Ee),a.addEventListener("pointerup",oe),a.addEventListener("pointercancel",oe),a.addEventListener("wheel",xe,{passive:!1});const Oe=new ResizeObserver(Me);Oe.observe(a),Me(),new tt().loadAsync(ht).then(t=>{if(e){t.dispose();return}const{base:f,arm:E,frame:b}=j(t),O=B(t,(z,te)=>te>=yt&&te<=bt),I=B(t,(z,te)=>z>=Et&&z<=xt&&te>=Ot&&te<=Ct);t.dispose(),f.translate(-O.x,-O.y,-O.z),E.translate(-O.x,-O.y,-O.z),b.translate(-I.x,-I.y,-I.z),p.position.copy(I).sub(O);const ie=Q(f),ee=Q(E),le=Q(b);f.dispose(),E.dispose(),b.dispose(),d.add(ie),l.add(ee),p.add(le);const Z=J();Z.group.position.set(Lt-I.x,kt-I.y,It-I.z),p.add(Z.group),de=Z.glow.material,A.push(ie,ee,le,Z.group),Fe(d)});const Ce=()=>{o=window.requestAnimationFrame(Ce),c||(l.rotation.y>y?(l.rotation.y-=_e,l.rotation.y<=y&&(l.rotation.y=y,m=-1)):l.rotation.y<_?(l.rotation.y+=_e,l.rotation.y>=_&&(l.rotation.y=_,m=1)):(l.rotation.y+=_e*m,l.rotation.y>=y?(l.rotation.y=y,m=-1):l.rotation.y<=_&&(l.rotation.y=_,m=1)));const t=Math.round(l.rotation.y*180/Math.PI);t!==u.value&&(u.value=t);const f=Math.round(p.rotation.x*180/Math.PI);if(f!==U.value&&(U.value=f),D+=(ne-D)*Nt,ue(D),de){const E=(performance.now()-ze)/1e3;de.opacity=.28+Math.sin(E*2.2)*.1}v.render(n,r)};Ce(),R=()=>{e=!0,window.cancelAnimationFrame(o),Oe.disconnect(),a.removeEventListener("pointerdown",Se),a.removeEventListener("pointermove",Ee),a.removeEventListener("pointerup",oe),a.removeEventListener("pointercancel",oe),a.removeEventListener("wheel",xe),h.dispose(),A.forEach(t=>{t.traverse(f=>{var O;const E=f;(O=E.geometry)==null||O.dispose();const b=E.material;Array.isArray(b)?b.forEach(I=>I.dispose()):b==null||b.dispose()})}),v.dispose(),v.domElement.remove()}}),$e(()=>{R()}),(a,n)=>(g(),M("div",vt,[s("div",{ref_key:"host",ref:P,class:"moss-gl"},null,512),s("div",pt,[n[1]||(n[1]=Re('<i class="hud-corner tl" data-v-08430a60></i><i class="hud-corner tr" data-v-08430a60></i><i class="hud-corner bl" data-v-08430a60></i><i class="hud-corner br" data-v-08430a60></i><div class="hud-grid" data-v-08430a60></div><div class="crt" data-v-08430a60></div><div class="scene-tag tag-a" data-v-08430a60><small data-v-08430a60>NEAR UNIT</small><b data-v-08430a60>MOSS</b><em data-v-08430a60>550W CORE · GROUND</em></div><div class="heading" data-v-08430a60><small data-v-08430a60>HEADING</small><b data-v-08430a60>UEG · 550W</b></div>',8)),s("div",mt,[n[0]||(n[0]=s("small",null,"LINK",-1)),s("b",null,x(ae(S).mossOnline?"ONLINE":"LOST"),1),s("em",null,x(L.value),1)])]),s("div",ft,[s("div",null,[n[2]||(n[2]=s("span",null,"YAW",-1)),s("b",null,x(k.value),1)]),s("div",null,[n[3]||(n[3]=s("span",null,"PITCH",-1)),s("b",null,x(T.value),1)]),s("div",null,[n[4]||(n[4]=s("span",null,"LINK",-1)),s("b",{class:Ye(ae(S).mossOnline?"ok":"bad")},x(ae(S).mossOnline?"ONLINE":"LOST"),3)])])]))}}),At=Be(Tt,[["__scopeId","data-v-08430a60"]]);function ye($){const _=String($||"").toLowerCase().replace(/[^0-9a-f]/g,"");return _.length!==12?"":_.match(/.{2}/g).join(":")}function Ne($){return String($||"").trim().replace(/\/$/,"")}function se($=[],_={}){const y=Ne(_.baseUrl),Y=ye(_.mac);return($||[]).some(C=>{const P=ye(C.mac)||ye(C.id);if(Y&&P)return Y===P;if(y&&C.baseUrl&&Ne(C.baseUrl)===y)return!0;const S=String(_.hostname||"").trim().toLowerCase(),u=String(C.hostname||"").trim().toLowerCase();return!!(S&&u&&S===u)})}const Dt={class:"device-page uxp-page-stack"},Yt={class:"status-strip is-offline"},Bt={class:"status-actions"},zt={class:"device-body"},Wt={class:"panel body-card"},Ft={class:"panel-bd body-bd"},$t={class:"scan-bar"},Rt={key:0,class:"hint danger"},Xt={key:1,class:"scan-results"},Gt={class:"scan-results-hd"},Vt={key:0},Ht={class:"device-list scan-list"},Jt=["onClick"],Zt={class:"scan-device-copy"},Kt={class:"hint"},qt={key:2,class:"hint"},jt={key:3,class:"hint"},Qt={key:4,class:"hint danger"},es={key:5,class:"hint success"},ts={key:6,class:"actions foot"},ss={class:"panel body-card"},as={class:"panel-bd body-bd"},ns={key:1,class:"hint"},os={key:2,class:"hint"},is={key:3,class:"hint danger"},ls={class:"actions foot"},rs={class:"panel body-card moss-stage-card"},cs={class:"panel-bd moss-stage-bd"},ds=Te({__name:"FindMoss",setup($){const _=Ve(),y=Ae(),Y=w(!1),C=w(!1),P=w(0),S=w([]),u=w(""),U=w(""),L=w(""),k=w(!1),T=w(!1),R=w(""),H=w(!1),B=w(""),J=w(""),X=V(()=>({baseUrl:l(u.value||U.value),name:""})),j=V(()=>!!X.value.baseUrl&&se(y.devices,X.value)),Q=V(()=>!!X.value.baseUrl&&!j.value),a=V(()=>k.value&&!j.value);De(()=>{h().catch(()=>{})});function n(o){const e=ke(o.board)!=="MOSS"?ke(o.board):o.product||"MOSS",c=o.mac||o.baseUrl;return`${e} · ${c}`}function r(o){return se(y.devices,o)}function v(o){u.value!==o.baseUrl&&(u.value=o.baseUrl,k.value=!1,R.value="")}async function h(){Y.value=!0,L.value="";try{const e=(await ve("/api/discover",{method:"POST",timeoutMs:22e3})).devices||[];S.value=e,P.value=e.filter(i=>se(y.devices,i)).length,C.value=!0,u.value&&!S.value.some(i=>i.baseUrl===u.value)&&(u.value="",k.value=!1);const c=S.value.filter(i=>!se(y.devices,i));!u.value&&c.length===1&&(u.value=c[0].baseUrl)}catch(o){L.value=o instanceof Error?o.message:"寻找失败",W.error(L.value)}finally{Y.value=!1}}async function d(o){v(o),await p()}function l(o){const e=o.trim();return e?e.startsWith("http")?e.replace(/\/$/,""):e.includes(":")?`http://${e}`:`http://${e}:5500`:""}async function p(){var e,c;const o=l(u.value||U.value);if(!o){L.value="请先选择或填写 MOSS 地址",W.warning("请先选择或填写 MOSS 地址");return}if(se(y.devices,{baseUrl:o})){W.warning("这台已在设备列表中,请返回选择");return}if(!T.value){T.value=!0,L.value="";try{const i=await ve("/api/device/select",{method:"POST",body:JSON.stringify({baseUrl:o})});k.value=!0,R.value=(e=i.health)!=null&&e.display_name||(c=i.health)!=null&&c.hostname?`:${i.health.display_name||i.health.hostname}`:"",W.success("已连上这台 MOSS,请命名并加入列表")}catch(i){k.value=!1,R.value="",L.value=i instanceof Error?i.message:"连接失败。请确认电脑和 MOSS 在同一 Wi-Fi。",W.error(L.value)}finally{T.value=!1}}}async function A(){var o,e,c;H.value=!0,B.value="",J.value="正在登记设备…";try{const i=await ve("/api/bind/lan",{method:"POST",body:JSON.stringify({baseUrl:l(u.value||U.value)}),timeoutMs:15e3});if((o=i.device)!=null&&o.id){He(i.device.id);try{const{value:N}=await Je.prompt("给这台 MOSS 起个名字,方便以后辨认。","命名设备",{confirmButtonText:"保存",cancelButtonText:"稍后再说",customClass:"moss-message-box moss-message-box-narrow",inputPlaceholder:"例如 客厅的 MOSS",inputPattern:/\S+/,inputErrorMessage:"请填写名称"});await y.renameDevice(i.device.id,N.trim())}catch(N){if(N!=="cancel")throw N}}if(await y.refresh().catch(()=>{}),i.mossOnline){W.success("已加入列表,请选择后进入"),_.push({path:"/devices",query:Ie((e=i.device)==null?void 0:e.id)});return}W.warning("已加入。若列表里还是离线,稍等几秒再刷新。"),_.push({path:"/devices",query:Ie((c=i.device)==null?void 0:c.id)})}catch(i){B.value=i instanceof Error?i.message:"加入失败。请先扫描并连接局域网里的 MOSS。",J.value="",W.error(B.value)}finally{H.value=!1}}return(o,e)=>{const c=me("el-button"),i=me("el-input"),N=me("el-alert");return g(),M("div",Dt,[s("section",Yt,[e[4]||(e[4]=s("div",{class:"status-copy"},[s("div",{class:"status-title-row"},[s("strong",{class:"status-title"},"添加一台局域网 MOSS")]),s("p",{class:"status-meta"},"电脑和设备连同一 Wi-Fi。扫到它、连上,再起个名字加入列表。")],-1)),s("div",Bt,[K(c,{onClick:e[0]||(e[0]=m=>ae(_).push("/devices"))},{default:q(()=>[...e[3]||(e[3]=[G("返回设备列表",-1)])]),_:1})])]),s("div",zt,[s("section",Wt,[e[9]||(e[9]=s("div",{class:"panel-hd"},"1. 扫描并连接",-1)),s("div",Ft,[e[8]||(e[8]=s("p",{class:"hint"},"局域网里在线的 MOSS 都会列出来。已加入列表的仍可看见,但不能再添加一次。",-1)),s("div",$t,[K(c,{type:"primary",loading:Y.value,onClick:h},{default:q(()=>[...e[5]||(e[5]=[G("扫描局域网",-1)])]),_:1},8,["loading"]),K(i,{modelValue:U.value,"onUpdate:modelValue":e[1]||(e[1]=m=>U.value=m),placeholder:"或填写新设备 IP,例如 192.168.1.32"},null,8,["modelValue"])]),j.value?(g(),M("p",Rt,"这个地址已在设备列表中,请返回列表选择。")):F("",!0),S.value.length?(g(),M("div",Xt,[s("div",Gt,[G(" 找到 "+x(S.value.length)+" 台 ",1),P.value?(g(),M("span",Vt,",其中 "+x(P.value)+" 台已在列表",1)):F("",!0)]),s("div",Ht,[(g(!0),M(Xe,null,Ge(S.value,m=>(g(),M("div",{key:m.baseUrl,class:Ye(["device-item scan-device",{active:u.value===m.baseUrl,connected:k.value&&u.value===m.baseUrl,listed:r(m)}]),onClick:D=>v(m)},[s("div",Zt,[s("strong",null,x(m.name),1),s("div",Kt,x(n(m)),1)]),r(m)?(g(),pe(c,{key:0,size:"small",onClick:e[2]||(e[2]=Le(D=>ae(_).push("/devices"),["stop"]))},{default:q(()=>[...e[6]||(e[6]=[G(" 已在列表 ",-1)])]),_:1})):(g(),pe(c,{key:1,type:"primary",size:"small",loading:T.value&&u.value===m.baseUrl,disabled:T.value,onClick:Le(D=>d(m),["stop"])},{default:q(()=>[G(x(k.value&&u.value===m.baseUrl?"已连接":"连接"),1)]),_:2},1032,["loading","disabled","onClick"]))],10,Jt))),128))])])):C.value&&P.value?(g(),M("p",qt,"扫到的都已在列表里,请返回选择,或填一台新设备的 IP。")):C.value?(g(),M("p",jt,"这一轮没扫到。确认设备和电脑同一网段,或直接填 IP。")):F("",!0),L.value?(g(),M("p",Qt,x(L.value),1)):F("",!0),k.value?(g(),M("p",es,"已连上局域网"+x(R.value)+",请在右侧命名并加入列表。",1)):F("",!0),U.value.trim()?(g(),M("div",ts,[K(c,{type:"primary",loading:T.value,disabled:!Q.value||T.value,onClick:p},{default:q(()=>[...e[7]||(e[7]=[G(" 连接填写的地址 ",-1)])]),_:1},8,["loading","disabled"])])):F("",!0)])]),s("section",ss,[e[11]||(e[11]=s("div",{class:"panel-hd"},"2. 命名并加入",-1)),s("div",as,[k.value?(g(),M("p",ns,"写入后会请你给这台起个名字,然后回到设备列表。")):(g(),pe(N,{key:0,type:"info",closable:!1,"show-icon":"",title:"先在左侧连上要添加的那台,再命名加入。"})),J.value?(g(),M("p",os,x(J.value),1)):F("",!0),B.value?(g(),M("p",is,x(B.value),1)):F("",!0),s("div",ls,[K(c,{type:"primary",loading:H.value,disabled:!a.value,onClick:A},{default:q(()=>[...e[10]||(e[10]=[G(" 加入列表 ",-1)])]),_:1},8,["loading","disabled"])])])]),s("section",rs,[e[12]||(e[12]=s("div",{class:"panel-hd"},"MOSS",-1)),s("div",cs,[K(At)])])])])}}}),fs=Be(ds,[["__scopeId","data-v-220e494d"]]);export{fs as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{z as ke,I as be,h as v,s as O,d as _e,y as Ee,m as P,b as n,g as t,c as M,p as R,F as Ce,B as Se,t as L,e as z,w as $,f as E,A as le,r as X,o as h,j as V,E as Be,
|
|
1
|
+
import{z as ke,I as be,h as v,s as O,d as _e,y as Ee,m as P,b as n,g as t,c as M,p as R,F as Ce,B as Se,t as L,e as z,w as $,f as E,A as le,r as X,o as h,j as V,E as Be,T as Fe}from"./index-CMMVyrw-.js";import{U as Pe,T as se,E as $e,C as ne}from"./esp-flasher-CeAm6Ct9.js";import{_ as xe}from"./_plugin-vue_export-helper-DlAUqK2U.js";const Te={1027:"FTDI",1659:"Prolific",4292:"Silicon Labs CP210x",6790:"WCH CH340/CH9102",12346:"Espressif USB"},De=921600,Me=115200,oe=0,Le=16*1024*1024;function K(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(2)} MB`}function j(o){return typeof o=="number"?o.toString(16).toUpperCase().padStart(4,"0"):""}function re(o,e){const i=o.getInfo(),d=i.usbVendorId,f=i.usbProductId,w=d&&Te[d]||"USB 串口";return d&&f?`${w}(${j(d)}:${j(f)})`:`${w} ${e+1}`}function Ne(o){const e=ne.algo.MD5.create(),i=64*1024;for(let d=0;d<o.length;d+=i){const f=o.subarray(d,Math.min(d+i,o.length)),w=[];for(let k=0;k<f.length;k+=4)w.push((f[k]??0)<<24|(f[k+1]??0)<<16|(f[k+2]??0)<<8|(f[k+3]??0));e.update(ne.lib.WordArray.create(w,f.length))}return e.finalize().toString()}function N(o,e){if(o instanceof DOMException&&o.name==="NotFoundError")return"已取消选择串口";if(o instanceof DOMException&&o.name==="SecurityError")return"当前页面不是安全上下文,无法使用串口。请用 localhost 或 HTTPS,并用 Chrome / Edge。";const i=o instanceof Error?o.message:"";return i.includes("doesn't fit in the available flash")?"固件超过 16MB,当前页按 N16R8 容量检查。请用从 0x0 合并的镜像。":i||e}function Ie(){const o=v(!1),e=v([]),i=v(""),d=v(""),f=v(""),w=v(""),k=v(""),F=v(null),l=v(0),g=v([]),u=v(""),D=v(!1),C=v(!1),I=v(!1),H=v(!1),x=v(!1),S=v(!1),r=v("");let y=null,b=null,_=null,U=!0;const ie=O(()=>(u.value?[...g.value,u.value]:g.value).join(`
|
|
2
2
|
`)||"等待操作…"),J=O(()=>D.value||C.value||I.value||H.value||x.value),ee=O(()=>e.value.find(a=>a.key===i.value)||null),ue=O(()=>{var a;return S.value&&!J.value&&!!((a=F.value)!=null&&a.length)}),ce=O(()=>F.value?K(F.value.length):""),ve={clean(){g.value=[],u.value=""},writeLine(a){g.value.push(u.value+a),u.value="",ae()},write(a){u.value+=a}};function ae(){g.value.length>400&&(g.value=g.value.slice(-300))}function c(a){u.value&&(g.value.push(u.value),u.value=""),g.value.push(a),ae()}function T(){return typeof navigator<"u"?navigator.serial:void 0}function de(a){var s,m;e.value=a.map((p,B)=>{const te=p.getInfo();return{key:`${j(te.usbVendorId)||"port"}-${j(te.usbProductId)||B}-${B}`,port:p,label:re(p,B)}}),i.value&&!e.value.some(p=>p.key===i.value)?(i.value=((s=e.value[0])==null?void 0:s.key)||"",_=((m=e.value[0])==null?void 0:m.port)||null):!i.value&&e.value.length&&(i.value=e.value[0].key,_=e.value[0].port)}async function W(){const a=T();if(a)try{de(await a.getPorts()),S.value&&!D.value&&_&&!e.value.some(s=>s.port===_)&&(c("USB 已拔出"),S.value=!1,d.value="",f.value="",w.value="",await A())}catch(s){r.value=N(s,"读取串口失败")}}function Y(a){var s;i.value=a,_=((s=e.value.find(m=>m.key===a))==null?void 0:s.port)||null}async function Z(){var s;const a=T();if(!a){r.value="当前浏览器不支持串口,请用 Chrome 或 Edge浏览器";return}r.value="";try{const m=await a.requestPort();await W();const p=e.value.find(B=>B.port===m);if(p)Y(p.key);else{const B={key:`picked-${Date.now()}`,port:m,label:re(m,e.value.length)};e.value=[...e.value,B],Y(B.key)}c(`已选择:${((s=ee.value)==null?void 0:s.label)||"USB 设备"}`)}catch(m){const p=N(m,"选择串口失败");p!=="已取消选择串口"&&(r.value=p)}}async function fe(){if(J.value)return;if(x.value&&await Q(),!T()){r.value="当前浏览器不支持串口,请用 Chrome 或 Edge浏览器";return}D.value=!0,r.value="";try{if(!_&&(await Z(),!_))return;y=new se(_,!1),b=new $e({transport:y,baudrate:De,terminal:ve,debugLogging:!1}),d.value=await b.main();try{f.value=await b.chip.getChipDescription(b)}catch{f.value=d.value}try{w.value=await b.chip.readMac(b)}catch{w.value=""}S.value=!0,c(`已识别:${f.value||d.value}`)}catch(s){S.value=!1,r.value=N(s,"没连上。请按住 BOOT 再点一下复位,然后重试。"),c(`连接失败:${r.value}`),await A()}finally{D.value=!1}}async function A(){try{await(y==null?void 0:y.disconnect())}catch{}y=null,b=null}async function G(){x.value&&await Q(),U=!0,await A(),S.value=!1,d.value="",f.value="",w.value="",l.value=0,c("已断开")}async function pe(){const a=F.value;if(!b||!S.value||C.value||!(a!=null&&a.length)){a!=null&&a.length||(r.value="请先选择固件文件");return}C.value=!0,r.value="",l.value=0;try{if(c(`开始烧录 ${k.value}(${K(a.length)},地址 0x0,保留镜像 Flash 头)`),await b.writeFlash({fileArray:[{data:a,address:oe}],flashMode:"keep",flashFreq:"keep",flashSize:"keep",eraseAll:!1,compress:!0,reportProgress:(s,m,p)=>{l.value=p?Math.round(m/p*100):0},calculateMD5Hash:Ne}),!y)throw new Error("串口已断开");await new Pe(y).reset(),l.value=100,c("烧录完成,已复位。请断开串口后再看运行日志。"),await G()}catch(s){r.value=N(s,"烧录失败"),c(`烧录失败:${r.value}`)}finally{C.value=!1}}async function he(){if(!(!b||!S.value||I.value)){I.value=!0,r.value="";try{c("正在清空芯片…"),await b.eraseFlash(),c("芯片已清空")}catch(a){r.value=N(a,"清空失败"),c(`清空失败:${r.value}`)}finally{I.value=!1}}}async function ge(){if(!(!y||H.value)){H.value=!0;try{await y.setDTR(!1),await new Promise(a=>setTimeout(a,100)),await y.setDTR(!0),c("已重启设备")}catch(a){r.value=N(a,"重启失败")}finally{H.value=!1}}}async function ye(){if(!x.value&&(r.value="",S.value&&(await G(),await new Promise(a=>setTimeout(a,400))),!(!_&&(await Z(),!_))))try{y=new se(_,!1),await y.connect(Me),x.value=!0,U=!1,c("已打开运行日志");const a=new TextDecoder;let s="";await y.rawRead(m=>{s+=a.decode(m,{stream:!0}),s=s.replace(/\r/g,"");const p=s.split(`
|
|
3
3
|
`);s=p.pop()||"";for(const B of p)c(B)},()=>U),s&&c(s)}catch(a){r.value=N(a,"打开运行日志失败"),c(`运行日志失败:${r.value}`),await A()}finally{x.value=!1,U=!0}}async function Q(){U=!0,x.value=!1,await A(),c("已关闭运行日志")}async function me(a){if(!a)return;const s=new Uint8Array(await a.arrayBuffer());if(s.length+oe>Le){r.value=`固件 ${K(s.length)} 超过 N16R8 的 16MB Flash,请用对应板型的合并包。`,c(r.value);return}k.value=a.name,F.value=s,l.value=0,r.value="",c(`已选择固件 ${a.name}(${K(s.length)})`)}function we(){k.value="",F.value=null,l.value=0}function q(){W()}return ke(()=>{var a,s;if(o.value=!!T(),!o.value){r.value="当前浏览器不支持串口,请用 Chrome 或 Edge浏览器";return}W(),(a=T())==null||a.addEventListener("connect",q),(s=T())==null||s.addEventListener("disconnect",q)}),be(()=>{var a,s;(a=T())==null||a.removeEventListener("connect",q),(s=T())==null||s.removeEventListener("disconnect",q),U=!0,A()}),{serialSupported:o,ports:e,selectedKey:i,selectedPortItem:ee,chipName:d,chipDesc:f,chipMac:w,firmwareName:k,firmwareSize:ce,firmwareProgress:l,logs:g,consoleText:ie,connecting:D,flashing:C,erasing:I,resetting:H,monitoring:x,connected:S,busy:J,canFlash:ue,lastError:r,selectPort:Y,requestPort:Z,connect:fe,disconnect:G,flash:pe,eraseFlash:he,resetDevice:ge,startMonitor:ye,stopMonitor:Q,pickFirmware:me,clearFirmware:we}}const Ue={class:"flash-page"},Ae={class:"flash-steps"},He={class:"panel flash-card"},Oe={class:"panel-bd flash-card-bd"},Re={class:"flash-card-main"},Ve={key:1,class:"device-list"},qe=["onClick"],ze={key:2,class:"hint"},Ke={key:3,class:"kv-grid"},je={class:"kv"},Je={class:"kv-v success"},We={class:"kv"},Ye={class:"kv-v"},Ze={key:4,class:"hint danger"},Ge={class:"actions"},Qe={class:"panel flash-card"},Xe={class:"panel-bd flash-card-bd"},ea={class:"flash-card-main"},aa=["disabled"],ta={key:0},la={key:1},sa={class:"actions"},na={class:"panel flash-console"},oa={class:"panel-hd panel-hd-row"},ra={class:"flash-hd-actions"},ia={class:"panel-bd flash-console-bd"},ua=_e({__name:"Flash",setup(o){const e=Ie(),i=v(null);async function d(F){var g;const l=F.target;await e.pickFirmware((g=l.files)==null?void 0:g[0]),l.value=""}async function f(){await e.connect(),e.connected.value?V.success(`已连上 ${e.chipDesc.value||e.chipName.value}`):e.lastError.value&&V.error(e.lastError.value)}async function w(){await e.flash(),!e.lastError.value&&e.firmwareProgress.value>=100?V.success("烧录完成,设备已重启"):e.lastError.value&&V.error(e.lastError.value)}async function k(){try{await Be.confirm("会把芯片里的程序全部清掉,确定吗?","清空芯片",{type:"warning",confirmButtonText:"清空",cancelButtonText:"取消"})}catch{return}await e.eraseFlash(),e.lastError.value||V.success("芯片已清空")}return Ee(()=>e.consoleText.value,async()=>{await Fe(),i.value&&(i.value.scrollTop=i.value.scrollHeight)}),(F,l)=>{const g=X("el-alert"),u=X("el-button"),D=X("el-progress");return h(),P("div",Ue,[n("div",Ae,[n("section",He,[l[7]||(l[7]=n("div",{class:"panel-hd"},"1. 连接设备",-1)),n("div",Oe,[n("div",Re,[t(e).serialSupported.value?R("",!0):(h(),M(g,{key:0,title:"请用 Chrome 或 Edge浏览器 打开本页。Safari、Firefox 选不了 USB 串口。",type:"error","show-icon":"",closable:!1})),l[2]||(l[2]=n("p",{class:"hint"},"用 USB 线把 MOSS 接到电脑,点「选择设备」。弹窗里选那一个串口即可。",-1)),l[3]||(l[3]=n("p",{class:"hint"},"连不上时:按住板上的 BOOT 不放,再按一下复位,然后松开 BOOT,重新连接。",-1)),t(e).ports.value.length?(h(),P("div",Ve,[(h(!0),P(Ce,null,Se(t(e).ports.value,C=>(h(),P("div",{key:C.key,class:le(["device-item",{active:t(e).selectedKey.value===C.key}]),onClick:I=>t(e).selectPort(C.key)},[n("strong",null,L(C.label),1)],10,qe))),128))])):(h(),P("p",ze,"还没选过设备。")),t(e).connected.value?(h(),P("div",Ke,[n("div",je,[l[0]||(l[0]=n("div",{class:"kv-k"},"芯片",-1)),n("div",Je,L(t(e).chipDesc.value||t(e).chipName.value),1)]),n("div",We,[l[1]||(l[1]=n("div",{class:"kv-k"},"编号",-1)),n("div",Ye,[n("code",null,L(t(e).chipMac.value||"-"),1)])])])):R("",!0),t(e).lastError.value?(h(),P("p",Ze,L(t(e).lastError.value),1)):R("",!0)]),n("div",Ge,[z(u,{disabled:t(e).busy.value,onClick:t(e).requestPort},{default:$(()=>[...l[4]||(l[4]=[E("选择设备",-1)])]),_:1},8,["disabled","onClick"]),t(e).connected.value?(h(),M(u,{key:1,type:"warning",disabled:t(e).busy.value,onClick:t(e).disconnect},{default:$(()=>[...l[6]||(l[6]=[E("断开",-1)])]),_:1},8,["disabled","onClick"])):(h(),M(u,{key:0,type:"primary",loading:t(e).connecting.value,disabled:t(e).busy.value,onClick:f},{default:$(()=>[...l[5]||(l[5]=[E(" 连接 ",-1)])]),_:1},8,["loading","disabled"]))])])]),n("section",Qe,[l[12]||(l[12]=n("div",{class:"panel-hd"},"2. 选择固件",-1)),n("div",Xe,[n("div",ea,[l[8]||(l[8]=n("p",{class:"hint"},[E("选一份从 0x0 合并好的 "),n("code",null,".bin"),E(" 即可,不限板型。本页按 ESP32 整片烧,镜像头保持不动。换过分区表时先清空芯片。不要选只有 app、没有 bootloader 的单文件。")],-1)),n("label",{class:le(["file-pick",{ready:t(e).firmwareName.value,disabled:t(e).flashing.value}])},[n("input",{type:"file",accept:".bin",disabled:t(e).flashing.value,onChange:d},null,40,aa),t(e).firmwareName.value?(h(),P("span",ta,L(t(e).firmwareName.value)+" · "+L(t(e).firmwareSize.value),1)):(h(),P("span",la,"点击选择固件文件"))],2),t(e).flashing.value||t(e).firmwareProgress.value>0?(h(),M(D,{key:0,percentage:t(e).firmwareProgress.value,status:t(e).firmwareProgress.value>=100&&!t(e).flashing.value?"success":void 0},null,8,["percentage","status"])):R("",!0)]),n("div",sa,[z(u,{type:"primary",loading:t(e).flashing.value,disabled:!t(e).canFlash.value,onClick:w},{default:$(()=>[...l[9]||(l[9]=[E(" 开始烧录 ",-1)])]),_:1},8,["loading","disabled"]),z(u,{type:"danger",plain:"",loading:t(e).erasing.value,disabled:!t(e).connected.value||t(e).busy.value,onClick:k},{default:$(()=>[...l[10]||(l[10]=[E(" 清空芯片 ",-1)])]),_:1},8,["loading","disabled"]),t(e).firmwareName.value?(h(),M(u,{key:0,disabled:t(e).flashing.value,onClick:t(e).clearFirmware},{default:$(()=>[...l[11]||(l[11]=[E(" 换一份 ",-1)])]),_:1},8,["disabled","onClick"])):R("",!0)])])])]),n("section",na,[n("div",oa,[l[16]||(l[16]=n("span",null,"日志",-1)),n("div",ra,[t(e).monitoring.value?(h(),M(u,{key:1,type:"warning",onClick:t(e).stopMonitor},{default:$(()=>[...l[14]||(l[14]=[E("停止",-1)])]),_:1},8,["onClick"])):(h(),M(u,{key:0,disabled:t(e).flashing.value||t(e).connecting.value,onClick:t(e).startMonitor},{default:$(()=>[...l[13]||(l[13]=[E(" 查看运行日志 ",-1)])]),_:1},8,["disabled","onClick"])),z(u,{disabled:!t(e).connected.value&&!t(e).monitoring.value||t(e).flashing.value,loading:t(e).resetting.value,onClick:t(e).resetDevice},{default:$(()=>[...l[15]||(l[15]=[E(" 重启设备 ",-1)])]),_:1},8,["disabled","loading","onClick"])])]),n("div",ia,[l[17]||(l[17]=n("p",{class:"hint"},"烧录过程会显示在这里。烧完后可点「查看运行日志」,看设备有没有正常启动。",-1)),n("pre",{ref_key:"logEl",ref:i,class:"flash-log"},L(t(e).consoleText.value),513)])])])}}}),fa=xe(ua,[["__scopeId","data-v-a36e9b9c"]]);export{fa as default};
|