import{Ar as e,Er as t,L as n,Lt as r,Nr as i,Or as a,Tr as o,Yr as s,_ as c,_i as l,ai as u,g as d,h as f,in as p,jr as m,qr as h,ri as g,u as _,ui as v,v as y,wt as b,xi as x,xr as S}from"./index-a0fi5f-0.js";import{t as C}from"./useSnackbar-u_XK4ZNm.js";import{i as w,n as T,o as E,t as D}from"./VCard-BwwttBcf.js";import{t as O}from"./VTextField-GUQr1tUN.js";import{t as k}from"./apiError-BUh3zCmq.js";import{t as A}from"./VDialog-BFQGuuXw.js";function j(e={}){let t=C(),n=v(!1),i=v(!1),a=v({domain:``,port:22,name:``}),o=v(!1),s=v([]),c=v(``);function l(){a.value={domain:``,port:22,name:``},n.value=!0}function u(e,t){s.value=e,c.value=t||``,o.value=!0}function d(e){e.onboarding_job_id&&(r(e.onboarding_job_id,e.onboarding_label||`新服务器初始化`,1,`onboard`,`0/1`,`running`),b(`新服务器初始化已在后台执行(sudo + 路径探测)`))}async function f(){let r=a.value.domain.trim();if(!r){t(`请填写 IP 或域名`,`error`);return}i.value=!0;try{let i={domain:r,port:a.value.port||22},o=a.value.name.trim();o&&(i.name=o);let s=await p.post(`/servers/add-by-ip`,i);s.success&&s.server?(n.value=!1,d(s),t(`添加成功:${s.matched_preset} (${s.matched_username})`),await e.onSuccess?.(s)):(n.value=!1,u(s.errors||[],s.message),await e.onPendingFailure?.())}catch(e){t(k(e,`添加失败`),`error`)}finally{i.value=!1}}return{showQuickAdd:n,quickAddLoading:i,quickAddForm:a,showPollFailure:o,pollFailureErrors:s,pollFailureMessage:c,openQuickAdd:l,submitQuickAdd:f,showFailureDialog:u}}var M={key:1,class:`text-medium-emphasis`},N=i({__name:`ServerQuickAddDialogs`,props:{onSuccess:{type:Function},onPendingFailure:{type:Function}},setup(r,{expose:i}){let p=r,{showQuickAdd:v,quickAddLoading:b,quickAddForm:C,showPollFailure:k,pollFailureErrors:N,pollFailureMessage:P,openQuickAdd:F,submitQuickAdd:I,showFailureDialog:L}=j({onSuccess:e=>p.onSuccess?.(e),onPendingFailure:()=>p.onPendingFailure?.()});return i({open:F,showFailure:L}),(r,i)=>(h(),a(S,null,[m(A,{modelValue:l(v),"onUpdate:modelValue":i[4]||=e=>u(v)?v.value=e:null,"max-width":`480`,persistent:``},{default:g(()=>[m(D,{border:``},{default:g(()=>[m(w,null,{default:g(()=>[...i[7]||=[e(`快速添加服务器(仅 IP)`,-1)]]),_:1}),m(T,null,{default:g(()=>[i[8]||=o(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` 将按顺序轮询凭据管理中的全部密码预设与 SSH 密钥预设尝试登录,首个成功即加入服务器列表。 `,-1),m(O,{modelValue:l(C).domain,"onUpdate:modelValue":i[0]||=e=>l(C).domain=e,label:`IP 或域名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`192.168.1.10`,rules:[e=>!!e?.trim()||`必填`]},null,8,[`modelValue`,`rules`]),m(O,{modelValue:l(C).port,"onUpdate:modelValue":i[1]||=e=>l(C).port=e,modelModifiers:{number:!0},label:`SSH 端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),m(O,{modelValue:l(C).name,"onUpdate:modelValue":i[2]||=e=>l(C).name=e,label:`显示名称(可选)`,variant:`outlined`,density:`compact`,hint:`留空则使用 IP`,"persistent-hint":``},null,8,[`modelValue`])]),_:1}),m(E,null,{default:g(()=>[m(y),m(n,{variant:`text`,disabled:l(b),onClick:i[3]||=e=>v.value=!1},{default:g(()=>[...i[9]||=[e(`取消`,-1)]]),_:1},8,[`disabled`]),m(n,{color:`primary`,variant:`flat`,loading:l(b),onClick:l(I)},{default:g(()=>[...i[10]||=[e(`开始轮询`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),m(A,{modelValue:l(k),"onUpdate:modelValue":i[6]||=e=>u(k)?k.value=e:null,"max-width":`560`},{default:g(()=>[m(D,{border:``},{default:g(()=>[m(w,{class:`text-error`},{default:g(()=>[...i[11]||=[e(`SSH 连接失败`,-1)]]),_:1}),m(T,null,{default:g(()=>[i[12]||=o(`p`,{class:`text-body-2 mb-3`},`已尝试全部凭据预设,均未登录成功。该服务器已加入「连接失败列表」,可稍后重试。`,-1),l(N).length?(h(),t(_,{key:0,density:`compact`,class:`bg-grey-lighten-4 rounded`},{default:g(()=>[(h(!0),a(S,null,s(l(N),(n,r)=>(h(),t(f,{key:r},{default:g(()=>[m(d,{class:`text-body-2`},{default:g(()=>[e(` [`+x(n.preset_type===`password`?`密码`:n.preset_type===`system`?`系统`:`密钥`)+`] `+x(n.preset_name)+` (`+x(n.username)+`) `,1)]),_:2},1024),m(c,{class:`text-error`},{default:g(()=>[e(x(n.error),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(h(),a(`p`,M,x(l(P)),1))]),_:1}),m(E,null,{default:g(()=>[m(y),m(n,{color:`primary`,variant:`flat`,onClick:i[5]||=e=>k.value=!1},{default:g(()=>[...i[13]||=[e(`知道了`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}});export{N as t};