import{i as Le,f as st,r as x,w as nt,N as we,A as Kt,j as e,B as h,L as he,W as Xt,o as Zt,H as Qt,C as es,R as ys,p as ks,v as ts,$ as ss,E as Qe,S as gt,G as gs,M as vs,z as bt,Q as yt,V as it,m as ns,bd as js,T as Ot,au as Ns,X as os,a3 as vt,k as Ds}from"./index-HuRw9UhJ.js";import{C as F,a as Y,b as ie,c as pe}from"./card-B2Wqa0sK.js";import{I as b}from"./input-C9Xfv8um.js";import{L as P}from"./label-DvRDtaMA.js";import{B as te}from"./badge-CeS-g-Od.js";import{k as ee}from"./index-GZwpRmKU.js";import{u as Ce}from"./use-toast-B25j_Fg3.js";import{S as fe,f as Fe,e as fs,b as Ss,s as pt,Y as It,P as Es,a as ws}from"./PodFileBrowser-DmjH49sm.js";import{T as Be,a as Oe,b as ge,c as K,d as Ie,e as X}from"./table-Du1vU-OM.js";import{P as ce}from"./plus-BVwIGPvl.js";import{H as Cs}from"./history-CLAzTAyT.js";import{M as jt}from"./minus-BLAorVC4.js";import{F as Nt}from"./file-text-BqORyhNh.js";import{H as as}from"./hard-drive-laLCm9TI.js";import{E as kt}from"./external-link-JBfQbjOd.js";import{T as et}from"./textarea-Bzol9o6k.js";import{S as $e,a as _e,b as tt,c as Ge,d as ye}from"./select-KDzbUQs3.js";import{S as Dt}from"./switch--ZaqVsRJ.js";import{T as be}from"./trash-2-Cf9-88KL.js";import{Z as cs}from"./zap-CS68N0Jd.js";import{F as Ps}from"./folder-open-BKJ-_5eY.js";import{R as rs}from"./rotate-cw-Dt34Qj6N.js";import{P as ls}from"./play-BXdOitsb.js";import{S as ot}from"./save-PutEGGnz.js";import{D as As}from"./disc-DI2GsPrr.js";import{a as Vs,F as mt}from"./folder-CyecCkCR.js";import{R as at}from"./refresh-cw-CSycAyA2.js";import{C as Ws}from"./circle-x-BVvXVx7p.js";import{A as Ts}from"./arrow-left-J2A6V6Vq.js";import{P as Ht}from"./pause-R-v_3hMV.js";import"./copy-Ci4WwJkK.js";import"./sparkles-DEwze8TU.js";import"./xterm-DSqgeKvr.js";import"./box-DPoVh2_c.js";import"./minimize-2-UErWMOt6.js";import"./upload-oCjAhX91.js";import"./download-CjFatm64.js";import"./index-DwvHXNyF.js";import"./chevron-up-GXrRy2ul.js";const Rs=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Bs=Le("hash",Rs);const Os=[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}]],Is=Le("heart",Os);const Hs=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],zs=Le("image",Hs);const Ms=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],$s=Le("key-round",Ms);const _s=[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]],zt=Le("tags",_s);function ds(t){const s=t.conditions||t.pod_conditions||[],o=n=>s.find(r=>(r.type||r.Type)===n),a=n=>n?.lastTransitionTime||n?.LastTransitionTime||n?.last_transition_time;return{scheduled:a(o("PodScheduled")||{}),initialized:a(o("Initialized")||{}),containersReady:a(o("ContainersReady")||{}),ready:a(o("Ready")||{}),startTime:t.start_time||t.startTime}}function Gs(t){const{clusterCode:s,namespace:o,deployment:a,pods:n,revisions:r,onRefresh:d}=t,{toast:m}=Ce(),V=st(),[i,N]=x.useState("pods"),[D,B]=x.useState(null),[g,E]=x.useState(null),[f,w]=x.useState(a?.replicas||0),[z,O]=x.useState(!1),[ne,U]=x.useState([]),[I,L]=x.useState([]),[q,M]=x.useState([]),[Q,oe]=x.useState(""),[c,u]=x.useState([]),[j,R]=x.useState([]),p=a?.ready_replicas??a?.readyReplicas??0,C=a?.replicas??0,H=p===C&&C>0;x.useEffect(()=>{i==="services"&&(oe("services"),Promise.all([ee.getNamespaceServices(s,o).catch(()=>[]),ee.getNamespaceIngresses(s,o).catch(()=>[])]).then(([y,_])=>{const G=W=>Array.isArray(W)?W:W?.list||W?.items||W?.data||[],$=G(y),ue=G(_),Z=a?.spec?.selector?.matchLabels||a?.spec?.template?.metadata?.labels||{},me=$.filter(W=>{const ae=W.spec?.selector||W.selector||{};return Object.keys(ae).length===0?!1:Object.entries(ae).every(([ve,je])=>Z[ve]===je)}).map(W=>({name:W.name||W.metadata?.name,type:W.spec?.type||W.type||"ClusterIP",clusterIP:W.spec?.clusterIP||W.cluster_ip||"",ports:(W.spec?.ports||W.ports||[]).map(ae=>`${ae.port}${ae.targetPort?":"+ae.targetPort:""}/${ae.protocol||"TCP"}`),selector:W.spec?.selector||W.selector||{},age:W.age||""})),Se=new Set(me.map(W=>W.name)),re=ue.filter(W=>(W.spec?.rules||W.rules||[]).some(ve=>(ve.http?.paths||ve.paths||[]).some(je=>{const v=je.backend?.service?.name||je.backendService||"";return Se.has(v)}))).map(W=>({name:W.name||W.metadata?.name,className:W.spec?.ingressClassName||W.ingressClass||"-",hosts:(W.spec?.rules||W.rules||[]).map(ae=>ae.host).filter(Boolean),rules:W.spec?.rules||W.rules||[],age:W.age||""}));U(me),L(re)}).catch(()=>{}).finally(()=>oe("")))},[i,s,o,a]),x.useEffect(()=>{i==="events"&&(oe("events"),ee.getEvents(s,o,void 0).then(y=>{const G=(Array.isArray(y)?y:y?.list||y?.items||y?.data||[]).filter($=>{const Z=($.involvedObject||$.involved_object||{}).name||"";return Z===a?.name||Z.startsWith(a?.name+"-")}).map($=>({type:$.type||"Normal",reason:$.reason||"",message:$.message||"",source:$.source?.component||$.sourceComponent||"-",firstTimestamp:$.firstTimestamp||$.first_timestamp||"",lastTimestamp:$.lastTimestamp||$.last_timestamp||"",count:$.count||1}));M(G)}).catch(()=>{}).finally(()=>oe("")))},[i,s,o,a?.name]),x.useEffect(()=>{i==="scale"&&(oe("scale"),Promise.all([ee.getHPAs(s,o).catch(()=>[]),Promise.resolve([])]).then(([y])=>{const G=(ue=>Array.isArray(ue)?ue:ue?.list||ue?.items||ue?.data||[])(y),$=a?.name||"";u(G.filter(ue=>(ue.scaleTargetRef?.name||ue.targetRef?.name||"")===$)),R([])}).catch(()=>{}).finally(()=>oe("")))},[i,s,o,a?.name]);const J=async y=>{const _=y.revision??y.revision_number??y.number;if(await V({title:"回滚版本",description:`确认回滚到修订版本 #${_}?`,confirmText:"回滚",variant:"destructive"})){E(_);try{await ee.rollbackDeployment(s,o,a.name,Number(_)),m({title:"回滚已下发",description:`正在回滚到 #${_}`}),d()}catch($){m({title:"回滚失败",description:$?.message||String($),variant:"destructive"})}finally{E(null)}}},l=async()=>{O(!0);try{await ee.scaleDeployment(s,o,a.name,f),m({title:"伸缩已提交",description:`副本数 → ${f}`}),d()}catch(y){m({title:"伸缩失败",description:y?.message||String(y),variant:"destructive"})}finally{O(!1)}},k=[{key:"pods",label:"容器组",icon:nt,count:n.length},{key:"services",label:"访问方式",icon:we,count:ne.length},{key:"events",label:"事件",icon:Kt,count:q.length},{key:"scale",label:"容器伸缩",icon:ce},{key:"history",label:"历史版本",icon:Cs,count:r.length}];return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:233:5",className:"space-y-4",children:[e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentView.tsx:235:7",className:"dg-card",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentView.tsx:236:9",className:"p-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:237:11",className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-3 text-sm",children:[e.jsx(Re,{"code-path":"src/components/kubernetes/DeploymentView.tsx:238:13",label:"状态",value:e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:239:15",style:{background:`${H?fe.green:fe.orange}22`,color:H?fe.green:fe.orange,border:`1px solid ${H?fe.green:fe.orange}44`},children:H?"Running":"Updating"})}),e.jsx(Re,{"code-path":"src/components/kubernetes/DeploymentView.tsx:243:13",label:"副本",value:e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:243:41",className:"font-mono",children:[p,"/",C]})}),e.jsx(Re,{"code-path":"src/components/kubernetes/DeploymentView.tsx:244:13",label:"策略",value:a?.strategy||"RollingUpdate"}),n[0]&&e.jsxs(e.Fragment,{children:[e.jsx(Re,{"code-path":"src/components/kubernetes/DeploymentView.tsx:247:17",label:"所在节点",value:e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentView.tsx:248:19",className:"text-[var(--dg-blue)] hover:underline",onClick:()=>window.open(`/kubernetes/${s}/nodes/${n[0].node_name||n[0].node}`,"_blank"),children:n[0].node_name||n[0].node||"-"})}),e.jsx(Re,{"code-path":"src/components/kubernetes/DeploymentView.tsx:252:17",label:"容器组 IP",value:e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:252:49",className:"font-mono",children:n[0].ip||n[0].pod_ip||"-"})})]}),e.jsx(Re,{"code-path":"src/components/kubernetes/DeploymentView.tsx:255:13",label:"创建时间",value:Fe(a?.created_at||a?.creationTimestamp)})]}),n[0]&&e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:259:13",className:"mt-3 pt-3 border-t border-[var(--dg-border)]",children:e.jsx(is,{"code-path":"src/components/kubernetes/DeploymentView.tsx:260:15",pod:n[0]})})]})}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:267:7",className:"flex items-center gap-0.5 border-b border-[var(--dg-border)] overflow-x-auto",children:[k.map(y=>e.jsxs("button",{"code-path":"src/components/kubernetes/DeploymentView.tsx:269:11",className:`flex items-center gap-1.5 px-4 py-2.5 text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${i===y.key?"border-[var(--dg-blue)] text-[var(--dg-blue)]":"border-transparent text-[var(--dg-text-muted)] hover:text-[var(--dg-text-secondary)]"}`,onClick:()=>N(y.key),children:[e.jsx(y.icon,{"code-path":"src/components/kubernetes/DeploymentView.tsx:278:13",className:"h-4 w-4"}),y.label,y.key==="pods"&&e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:280:34",className:"ml-1 text-[10px] px-1.5 py-0 bg-[var(--dg-bg-tertiary)] text-[var(--dg-text-muted)]",children:y.count})]},y.key)),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:284:9",className:"ml-auto flex items-center gap-1 pr-2 shrink-0",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:285:11",variant:"ghost",size:"icon",className:"h-7 w-7 text-[var(--dg-text-muted)] hover:text-[var(--dg-text-primary)]",disabled:z||f<=0,onClick:()=>w(y=>Math.max(0,y-1)),children:e.jsx(jt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:288:13",className:"h-4 w-4"})}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentView.tsx:290:11",type:"number",min:0,value:f,onChange:y=>w(Math.max(0,Number(y.target.value))),className:"w-16 h-7 text-center text-sm font-bold bg-slate-800 border-slate-700 text-slate-200"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:295:11",variant:"ghost",size:"icon",className:"h-7 w-7 text-[var(--dg-text-muted)] hover:text-[var(--dg-text-primary)]",disabled:z,onClick:()=>w(y=>y+1),children:e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentView.tsx:298:13",className:"h-4 w-4"})}),f!==C&&e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:301:13",size:"sm",className:"h-7 text-xs bg-[var(--dg-blue)] hover:bg-[var(--dg-blue-hover)]",disabled:z,onClick:l,children:z?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentView.tsx:303:31",className:"h-3 w-3 animate-spin"}):"应用"})]})]}),i==="pods"&&e.jsx(Ls,{"code-path":"src/components/kubernetes/DeploymentView.tsx:310:26",...t,expandedPod:D,setExpandedPod:B}),i==="services"&&e.jsx(Fs,{"code-path":"src/components/kubernetes/DeploymentView.tsx:311:30",services:ne,ingresses:I,loading:Q,namespace:o}),i==="events"&&e.jsx(Ys,{"code-path":"src/components/kubernetes/DeploymentView.tsx:312:28",events:q,loading:Q}),i==="scale"&&e.jsx(Js,{"code-path":"src/components/kubernetes/DeploymentView.tsx:314:9",hpas:c,cronHpas:j,loading:Q,replicas:C}),i==="history"&&e.jsx(qs,{"code-path":"src/components/kubernetes/DeploymentView.tsx:321:29",revisions:r,rollbackLoading:g,onRollback:J})]})}function Re({label:t,value:s}){return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:329:5",children:[e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentView.tsx:330:7",className:"text-xs text-[var(--dg-text-muted)] mb-1",children:t}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:331:7",className:"text-sm text-[var(--dg-text-primary)]",children:s})]})}function is({pod:t}){const s=ds(t),o=[{label:"已调度",ts:s.scheduled,color:fe.blue},{label:"已初始化",ts:s.initialized,color:fe.orange},{label:"容器已就绪",ts:s.containersReady,color:fe.green},{label:"容器组已就绪",ts:s.ready,color:fe.green}];return e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:346:5",className:"flex items-center gap-2 overflow-x-auto",children:o.map((a,n)=>{const r=o[n-1],d=fs(r?.ts,a.ts);return e.jsxs(x.Fragment,{"code-path":"src/components/kubernetes/DeploymentView.tsx:351:11",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:352:13",className:"flex flex-col items-center min-w-[80px]",children:[e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:353:15",className:"h-2 w-2 rounded-full",style:{background:a.ts?a.color:"#334155"}}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:354:15",className:"text-[10px] mt-1 font-medium",style:{color:a.ts?a.color:"#475569"},children:a.label}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:355:15",className:"text-[9px] text-[var(--dg-text-muted)]",children:a.ts?Fe(a.ts):"-"})]}),n{const V=ds(m),i=r===m.name,N=m.node_name||m.node;return e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentView.tsx:382:11",className:"dg-card",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentView.tsx:383:13",className:"p-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:385:15",className:"flex items-center gap-3",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:386:17",variant:"ghost",size:"icon",className:"h-6 w-6 text-[var(--dg-text-muted)]",onClick:()=>d(i?null:m.name),children:i?e.jsx(Xt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:387:31",className:"h-4 w-4"}):e.jsx(Zt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:387:69",className:"h-4 w-4"})}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:389:17",className:"font-mono text-sm text-[var(--dg-text-primary)]",children:m.name}),e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:390:17",style:{background:`${pt(m.status)}22`,color:pt(m.status),border:`1px solid ${pt(m.status)}44`},children:m.status||"Unknown"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:393:17",className:"text-xs text-[var(--dg-text-muted)]",children:e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentView.tsx:394:19",className:"text-[var(--dg-blue)] hover:underline mr-2",onClick:()=>window.open(`/kubernetes/${t}/nodes/${N}`,"_blank"),children:N||"-"})}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:398:17",className:"text-xs font-mono text-[var(--dg-text-muted)]",children:m.ip||m.pod_ip||"-"}),e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:399:17",className:"text-xs text-[var(--dg-text-muted)]",children:["重启 ",m.restart_count||0," 次"]}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:400:17",className:"text-xs text-[var(--dg-text-muted)]",children:Fe(V.startTime||m.created_at)}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:401:17",className:"flex-1"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:402:17",variant:"ghost",size:"sm",className:"h-7 text-xs text-[var(--dg-blue)]",onClick:()=>o(m),children:[e.jsx(Nt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:403:19",className:"h-3.5 w-3.5 mr-1"}),"日志"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:405:17",variant:"ghost",size:"sm",className:"h-7 text-xs text-emerald-400",onClick:()=>a(m),children:[e.jsx(Qt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:406:19",className:"h-3.5 w-3.5 mr-1"}),"终端"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:408:17",variant:"ghost",size:"sm",className:"h-7 text-xs text-amber-400",onClick:()=>n(m),children:[e.jsx(as,{"code-path":"src/components/kubernetes/DeploymentView.tsx:409:19",className:"h-3.5 w-3.5 mr-1"}),"文件"]})]}),i&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:414:17",className:"mt-3 pt-3 border-t border-[var(--dg-border)]",children:[e.jsx(is,{"code-path":"src/components/kubernetes/DeploymentView.tsx:415:19",pod:m}),m.containers&&m.containers.length>0&&e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:418:21",className:"mt-3 grid grid-cols-1 md:grid-cols-2 gap-2",children:m.containers.map((D,B)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:420:25",className:"p-2 rounded bg-[var(--dg-bg-tertiary)] text-xs",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:421:27",className:"flex items-center justify-between",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:422:29",className:"font-medium text-[var(--dg-text-primary)]",children:D.name}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:423:29",className:D.ready?"text-emerald-400":"text-[var(--dg-text-muted)]",children:D.ready?"Ready":"Pending"})]}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:425:27",className:"text-[var(--dg-text-muted)] mt-1",children:D.image}),D.resources&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:427:29",className:"mt-1 flex gap-3",children:[e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:428:31",children:["CPU: ",D.resources?.requests?.cpu||"0","/",D.resources?.limits?.cpu||"-"," m"]}),e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:429:31",children:["内存: ",D.resources?.requests?.memory||"0","/",D.resources?.limits?.memory||"-"]})]})]},B))})]})]})},m.name)})})}function Fs({services:t,ingresses:s,loading:o}){return o==="services"?e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:449:12",className:"flex items-center justify-center py-12",children:e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentView.tsx:449:68",className:"h-6 w-6 animate-spin text-[var(--dg-text-muted)]"})}):e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:452:5",className:"space-y-6",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:454:7",children:[e.jsxs("h3",{"code-path":"src/components/kubernetes/DeploymentView.tsx:455:9",className:"text-sm font-semibold text-[var(--dg-text-primary)] mb-3 flex items-center gap-2",children:[e.jsx(we,{"code-path":"src/components/kubernetes/DeploymentView.tsx:456:11",className:"h-4 w-4 text-[var(--dg-blue)]"}),"关联 Service"]}),t.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentView.tsx:459:11",className:"text-sm text-[var(--dg-text-muted)] py-4",children:"暂无匹配的 Service(Deployment 选择器未关联任何 Service)"}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:461:11",className:"overflow-x-auto",children:e.jsxs(Be,{"code-path":"src/components/kubernetes/DeploymentView.tsx:462:13",children:[e.jsx(Oe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:463:15",children:e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:464:17",className:"border-[var(--dg-border)]",children:[e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:465:19",className:"text-[var(--dg-text-muted)]",children:"名称"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:466:19",className:"text-[var(--dg-text-muted)]",children:"类型"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:467:19",className:"text-[var(--dg-text-muted)]",children:"ClusterIP"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:468:19",className:"text-[var(--dg-text-muted)]",children:"端口"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:469:19",className:"text-[var(--dg-text-muted)]",children:"Selector"})]})}),e.jsx(Ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:472:15",children:t.map(a=>e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:474:19",className:"border-[var(--dg-border)]",children:[e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:475:21",className:"font-medium text-[var(--dg-text-primary)]",children:a.name}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:476:21",children:e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:476:32",variant:"outline",className:"text-xs",children:a.type})}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:477:21",className:"font-mono text-sm text-[var(--dg-text-muted)]",children:a.clusterIP}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:478:21",className:"text-sm text-[var(--dg-text-muted)]",children:a.ports.join(", ")}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:479:21",className:"text-xs text-[var(--dg-text-muted)]",children:Object.entries(a.selector).map(([n,r])=>e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentView.tsx:481:25",className:"mr-1 bg-[var(--dg-bg-tertiary)] px-1 rounded",children:[n,"=",r]},n))})]},a.name))})]})})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:493:7",children:[e.jsxs("h3",{"code-path":"src/components/kubernetes/DeploymentView.tsx:494:9",className:"text-sm font-semibold text-[var(--dg-text-primary)] mb-3 flex items-center gap-2",children:[e.jsx(kt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:495:11",className:"h-4 w-4 text-[var(--dg-purple)]"}),"关联 Ingress"]}),s.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentView.tsx:498:11",className:"text-sm text-[var(--dg-text-muted)] py-4",children:"暂无匹配的 Ingress"}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:500:11",className:"overflow-x-auto",children:e.jsxs(Be,{"code-path":"src/components/kubernetes/DeploymentView.tsx:501:13",children:[e.jsx(Oe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:502:15",children:e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:503:17",className:"border-[var(--dg-border)]",children:[e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:504:19",className:"text-[var(--dg-text-muted)]",children:"名称"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:505:19",className:"text-[var(--dg-text-muted)]",children:"Class"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:506:19",className:"text-[var(--dg-text-muted)]",children:"Host"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:507:19",className:"text-[var(--dg-text-muted)]",children:"路径"})]})}),e.jsx(Ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:510:15",children:s.map(a=>e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:512:19",className:"border-[var(--dg-border)]",children:[e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:513:21",className:"font-medium text-[var(--dg-text-primary)]",children:a.name}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:514:21",className:"text-sm text-[var(--dg-text-muted)]",children:a.className}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:515:21",className:"text-sm text-[var(--dg-text-muted)]",children:a.hosts.join(", ")}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:516:21",className:"text-xs text-[var(--dg-text-muted)]",children:a.rules.flatMap(n=>(n.http?.paths||n.paths||[]).map(r=>r.path||"/")).join(", ")})]},a.name))})]})})]})]})}function Ys({events:t,loading:s}){return s==="events"?e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:533:12",className:"flex items-center justify-center py-12",children:e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentView.tsx:533:68",className:"h-6 w-6 animate-spin text-[var(--dg-text-muted)]"})}):t.length===0?e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:536:12",className:"text-center text-[var(--dg-text-muted)] py-12",children:"暂无事件"}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:539:5",className:"overflow-x-auto",children:e.jsxs(Be,{"code-path":"src/components/kubernetes/DeploymentView.tsx:540:7",children:[e.jsx(Oe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:541:9",children:e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:542:11",className:"border-[var(--dg-border)]",children:[e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:543:13",className:"text-[var(--dg-text-muted)] w-16",children:"类型"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:544:13",className:"text-[var(--dg-text-muted)] w-24",children:"原因"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:545:13",className:"text-[var(--dg-text-muted)]",children:"消息"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:546:13",className:"text-[var(--dg-text-muted)] w-20",children:"来源"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:547:13",className:"text-[var(--dg-text-muted)] w-10",children:"次数"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:548:13",className:"text-[var(--dg-text-muted)] w-40",children:"最后时间"})]})}),e.jsx(Ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:551:9",children:t.map((o,a)=>e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:553:13",className:"border-[var(--dg-border)]",children:[e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:554:15",children:e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:555:17",variant:"outline",className:o.type==="Warning"?"text-[var(--dg-yellow)] border-[var(--dg-yellow)]/30":"text-[var(--dg-text-muted)] border-[var(--dg-border)]",children:o.type})}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:559:15",className:"text-sm text-[var(--dg-text-secondary)]",children:o.reason}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:560:15",className:"text-sm text-[var(--dg-text-primary)] max-w-md truncate",title:o.message,children:o.message}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:561:15",className:"text-xs text-[var(--dg-text-muted)]",children:o.source}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:562:15",className:"text-sm text-[var(--dg-text-muted)]",children:o.count}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:563:15",className:"text-xs text-[var(--dg-text-muted)]",children:Fe(o.lastTimestamp)})]},a))})]})})}function Js({hpas:t,cronHpas:s,loading:o,replicas:a}){return o==="scale"?e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:575:12",className:"flex items-center justify-center py-12",children:e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentView.tsx:575:68",className:"h-6 w-6 animate-spin text-[var(--dg-text-muted)]"})}):e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:579:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:581:7",className:"flex items-center gap-2 px-2",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:582:9",className:"text-sm text-[var(--dg-text-muted)]",children:"当前副本:"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:583:9",className:"text-sm font-bold text-[var(--dg-text-primary)]",children:a}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentView.tsx:584:9",className:"text-xs text-[var(--dg-text-muted)]",children:"(可通过 Tab 栏右侧 +/- 手动调整)"})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentView.tsx:588:7",className:"dg-card",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:589:9",className:"pb-2",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:589:38",className:"text-sm flex items-center gap-2",children:[e.jsx(Kt,{"code-path":"src/components/kubernetes/DeploymentView.tsx:589:93",className:"h-4 w-4 text-[var(--dg-orange)]"}),"HPA — 水平自动伸缩"]})}),e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentView.tsx:590:9",children:t.length===0?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:592:13",className:"text-sm text-[var(--dg-text-muted)] py-4",children:["未关联 HPA — ",e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:593:25",variant:"link",className:"h-auto p-0 text-[var(--dg-blue)] text-sm",children:"创建 HPA"})]}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:596:13",className:"overflow-x-auto",children:e.jsxs(Be,{"code-path":"src/components/kubernetes/DeploymentView.tsx:597:15",children:[e.jsx(Oe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:598:17",children:e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:599:19",className:"border-[var(--dg-border)]",children:[e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:600:21",className:"text-[var(--dg-text-muted)]",children:"名称"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:601:21",className:"text-[var(--dg-text-muted)]",children:"最小/最大"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:602:21",className:"text-[var(--dg-text-muted)]",children:"指标"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:603:21",className:"text-[var(--dg-text-muted)]",children:"当前负载"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:604:21",className:"text-[var(--dg-text-muted)]",children:"状态"})]})}),e.jsx(Ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:607:17",children:t.map((n,r)=>{const d=n.spec?.minReplicas??n.minReplicas??1,m=n.spec?.maxReplicas??n.maxReplicas??10,V=n.spec?.metrics||n.metrics||[],i=n.status?.currentReplicas??n.currentReplicas??0,B=(n.status?.conditions||n.conditions||[]).find(g=>g.type==="AbleToScale")?.status==="True";return e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:617:23",className:"border-[var(--dg-border)]",children:[e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:618:25",className:"font-medium text-[var(--dg-text-primary)]",children:n.name||n.metadata?.name}),e.jsxs(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:619:25",className:"text-sm text-[var(--dg-text-secondary)] font-mono",children:[d," → ",m]}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:620:25",className:"text-xs text-[var(--dg-text-muted)]",children:V.map((g,E)=>{const f=g.resource||g.object?.metric?.name||"",w=g.resource?.target?.averageUtilization||g.resource?.target?.averageValue||g.resource?.target?.type||"-";return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:624:36",children:[f?.name||f,": ",w,g.resource?.target?.averageUtilization?"%":""]},E)})}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:627:25",className:"text-sm font-mono text-[var(--dg-text-secondary)]",children:i}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:628:25",children:e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:629:27",className:B?"bg-[var(--dg-green)]/20 text-[var(--dg-green)]":"bg-[var(--dg-red)]/20 text-[var(--dg-red)]",children:B?"正常":"异常"})})]},n.name||r)})})]})})})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentView.tsx:644:7",className:"dg-card",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:645:9",className:"pb-2",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:645:38",className:"text-sm flex items-center gap-2",children:[e.jsx(es,{"code-path":"src/components/kubernetes/DeploymentView.tsx:645:93",className:"h-4 w-4 text-[var(--dg-blue)]"}),"CronHPA — 定时伸缩"]})}),e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentView.tsx:646:9",children:s.length===0?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:648:13",className:"text-sm text-[var(--dg-text-muted)] py-4",children:["未关联 CronHPA — ",e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:649:29",variant:"link",className:"h-auto p-0 text-[var(--dg-blue)] text-sm",children:"创建 CronHPA"})]}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:652:13",className:"overflow-x-auto",children:e.jsxs(Be,{"code-path":"src/components/kubernetes/DeploymentView.tsx:653:15",children:[e.jsx(Oe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:654:17",children:e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:655:19",className:"border-[var(--dg-border)]",children:[e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:656:21",className:"text-[var(--dg-text-muted)]",children:"名称"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:657:21",className:"text-[var(--dg-text-muted)]",children:"目标副本"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:658:21",className:"text-[var(--dg-text-muted)]",children:"调度规则"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:659:21",className:"text-[var(--dg-text-muted)]",children:"时区"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:660:21",className:"text-[var(--dg-text-muted)]",children:"状态"})]})}),e.jsx(Ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:663:17",children:s.map((n,r)=>{const d=n.spec?.jobs||n.jobs||[],m=n.spec?.timezone||"UTC";return e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:668:23",className:"border-[var(--dg-border)]",children:[e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:669:25",className:"font-medium text-[var(--dg-text-primary)]",children:n.name||n.metadata?.name}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:670:25",className:"text-sm text-[var(--dg-text-secondary)]",children:d.map(V=>V.targetSize||V.targetReplicas||"?").join(", ")}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:673:25",className:"text-xs font-mono text-[var(--dg-text-muted)]",children:d.map(V=>V.schedule||"?").join(", ")}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:674:25",className:"text-xs text-[var(--dg-text-muted)]",children:m}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:675:25",children:e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:676:27",className:"bg-[var(--dg-green)]/20 text-[var(--dg-green)]",children:"已启用"})})]},n.name||r)})})]})})})]})]})}function qs({revisions:t,rollbackLoading:s,onRollback:o}){return t.length===0?e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:694:12",className:"text-center text-[var(--dg-text-muted)] py-12",children:"暂无历史版本"}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentView.tsx:697:5",className:"overflow-x-auto",children:e.jsxs(Be,{"code-path":"src/components/kubernetes/DeploymentView.tsx:698:7",children:[e.jsx(Oe,{"code-path":"src/components/kubernetes/DeploymentView.tsx:699:9",children:e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:700:11",className:"border-[var(--dg-border)]",children:[e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:701:13",className:"text-[var(--dg-text-muted)] w-24",children:"Revision"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:702:13",className:"text-[var(--dg-text-muted)]",children:"镜像"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:703:13",className:"text-[var(--dg-text-muted)] w-24",children:"状态"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:704:13",className:"text-[var(--dg-text-muted)] w-40",children:"更新时间"}),e.jsx(K,{"code-path":"src/components/kubernetes/DeploymentView.tsx:705:13",className:"text-[var(--dg-text-muted)] w-24",children:"操作"})]})}),e.jsx(Ie,{"code-path":"src/components/kubernetes/DeploymentView.tsx:708:9",children:t.map((a,n)=>{const r=a.revision??a.revision_number??a.number??n+1,d=n===0;return e.jsxs(ge,{"code-path":"src/components/kubernetes/DeploymentView.tsx:713:15",className:"border-[var(--dg-border)]",children:[e.jsxs(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:714:17",className:"font-mono text-[var(--dg-text-primary)]",children:["#",r]}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:715:17",className:"text-xs font-mono text-[var(--dg-text-muted)] max-w-[300px] truncate",children:a.image||a.images?.[0]||"-"}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:716:17",children:d?e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:718:23",className:"bg-[var(--dg-green)]/20 text-[var(--dg-green)] border-[var(--dg-green)]/30",children:"当前"}):e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentView.tsx:719:23",variant:"outline",className:"text-[var(--dg-text-muted)]",children:"历史"})}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:721:17",className:"text-xs text-[var(--dg-text-muted)]",children:Fe(a.created_at||a.time)}),e.jsx(X,{"code-path":"src/components/kubernetes/DeploymentView.tsx:722:17",children:e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentView.tsx:723:19",variant:"ghost",size:"sm",className:"h-7 text-amber-400",disabled:d||s!==null,onClick:()=>o(a),children:[s===r?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentView.tsx:724:53",className:"h-3 w-3 animate-spin mr-1"}):e.jsx(ys,{"code-path":"src/components/kubernetes/DeploymentView.tsx:724:105",className:"h-3 w-3 mr-1"}),"回滚"]})})]},r)})})]})})}function Mt(t){const s=n=>{if(!n)return null;let r="none";return n.httpGet?r="httpGet":n.tcpSocket?r="tcpSocket":n.exec&&(r="exec"),{type:r,httpPath:n.httpGet?.path||"",httpPort:n.httpGet?.port??"",httpHost:n.httpGet?.host||"",tcpPort:n.tcpSocket?.port??"",execCommand:Array.isArray(n.exec?.command)?n.exec.command.join(` `):n.exec?.command||"",initialDelaySeconds:n.initialDelaySeconds,periodSeconds:n.periodSeconds,timeoutSeconds:n.timeoutSeconds,successThreshold:n.successThreshold,failureThreshold:n.failureThreshold}},o=n=>{if(!n)return{type:"none"};let r="none";return n.exec?r="exec":n.httpGet?r="httpGet":n.tcpSocket&&(r="tcpSocket"),{type:r,execCommand:Array.isArray(n.exec?.command)?n.exec.command.join(` `):"",httpPath:n.httpGet?.path||"",httpPort:n.httpGet?.port??"",tcpPort:n.tcpSocket?.port??""}},a=t.securityContext;return{name:t.name||"",image:t.image||"",imagePullPolicy:t.imagePullPolicy||"",command:Array.isArray(t.command)?t.command:[],args:Array.isArray(t.args)?t.args:[],workingDir:t.workingDir||"",env:(Array.isArray(t.env)?t.env:[]).map(n=>({name:n.name||"",value:n.value??""})),ports:(Array.isArray(t.ports)?t.ports:[]).map(n=>({name:n.name||"",containerPort:n.containerPort??"",protocol:n.protocol||"TCP"})),resources:{requests:t.resources?.requests||{},limits:t.resources?.limits||{}},livenessProbe:s(t.livenessProbe),readinessProbe:s(t.readinessProbe),startupProbe:s(t.startupProbe),lifecycle:t.lifecycle?{postStart:t.lifecycle.postStart?o(t.lifecycle.postStart):void 0,preStop:t.lifecycle.preStop?o(t.lifecycle.preStop):void 0}:null,securityContext:a?{runAsUser:a.runAsUser,runAsGroup:a.runAsGroup,runAsNonRoot:a.runAsNonRoot,privileged:a.privileged,readOnlyRootFilesystem:a.readOnlyRootFilesystem,allowPrivilegeEscalation:a.allowPrivilegeEscalation,capabilitiesAdd:a.capabilities?.add||[],capabilitiesDrop:a.capabilities?.drop||[]}:null,volumeMounts:(Array.isArray(t.volumeMounts)?t.volumeMounts:[]).map(n=>({name:n.name||"",mountPath:n.mountPath||"",subPath:n.subPath||"",readOnly:n.readOnly||!1}))}}function $t(t=""){return{name:t,image:"",imagePullPolicy:"IfNotPresent",command:[],args:[],workingDir:"",env:[],ports:[],resources:{},livenessProbe:null,readinessProbe:null,startupProbe:null,lifecycle:null,securityContext:null,volumeMounts:[]}}function xt(t){if(!t||t.type==="none"||!t.type)return;const s={};if(t.type==="httpGet")s.httpGet={},t.httpPath&&(s.httpGet.path=t.httpPath),t.httpPort!==""&&t.httpPort!=null&&(s.httpGet.port=typeof t.httpPort=="number"?t.httpPort:Number(t.httpPort)),t.httpHost&&(s.httpGet.host=t.httpHost);else if(t.type==="tcpSocket")s.tcpSocket={},t.tcpPort!==""&&t.tcpPort!=null&&(s.tcpSocket.port=typeof t.tcpPort=="number"?t.tcpPort:Number(t.tcpPort));else if(t.type==="exec"){const o=(t.execCommand||"").split(` `).map(a=>a.trim()).filter(Boolean);o.length&&(s.exec={command:o})}return t.initialDelaySeconds!=null&&(s.initialDelaySeconds=t.initialDelaySeconds),t.periodSeconds!=null&&(s.periodSeconds=t.periodSeconds),t.timeoutSeconds!=null&&(s.timeoutSeconds=t.timeoutSeconds),t.successThreshold!=null&&(s.successThreshold=t.successThreshold),t.failureThreshold!=null&&(s.failureThreshold=t.failureThreshold),Object.keys(s).length>0?s:void 0}function _t(t){if(!(!t||t.type==="none"||!t.type)){if(t.type==="exec"){const s=(t.execCommand||"").split(` `).map(o=>o.trim()).filter(Boolean);return s.length?{exec:{command:s}}:void 0}if(t.type==="httpGet"){const s={httpGet:{}};return t.httpPath&&(s.httpGet.path=t.httpPath),t.httpPort!==""&&t.httpPort!=null&&(s.httpGet.port=Number(t.httpPort)),s}if(t.type==="tcpSocket"){const s={tcpSocket:{}};return t.tcpPort!==""&&t.tcpPort!=null&&(s.tcpSocket.port=Number(t.tcpPort)),s}}}function Gt(t){const s={name:t.name};t.image&&(s.image=t.image),t.imagePullPolicy&&(s.imagePullPolicy=t.imagePullPolicy),t.workingDir&&(s.workingDir=t.workingDir),t.command.length>0&&(s.command=t.command),t.args.length>0&&(s.args=t.args),t.env.length>0&&(s.env=t.env.filter(i=>i.name.trim()).map(i=>{const N={name:i.name};return i.value!=null&&(N.value=i.value),N})),t.ports.length>0&&(s.ports=t.ports.filter(i=>i.containerPort!=="").map(i=>{const N={containerPort:typeof i.containerPort=="number"?i.containerPort:Number(i.containerPort)};return i.name&&(N.name=i.name),i.protocol&&(N.protocol=i.protocol),N}));const o=t.resources.requests,a=t.resources.limits,n=o&&Object.values(o).some(i=>i&&i.trim()),r=a&&Object.values(a).some(i=>i&&i.trim());(n||r)&&(s.resources={},n&&(s.resources.requests={},o.cpu?.trim()&&(s.resources.requests.cpu=o.cpu),o.memory?.trim()&&(s.resources.requests.memory=o.memory)),r&&(s.resources.limits={},a.cpu?.trim()&&(s.resources.limits.cpu=a.cpu),a.memory?.trim()&&(s.resources.limits.memory=a.memory)));const d=xt(t.livenessProbe);d&&(s.livenessProbe=d);const m=xt(t.readinessProbe);m&&(s.readinessProbe=m);const V=xt(t.startupProbe);if(V&&(s.startupProbe=V),t.lifecycle){const i={},N=_t(t.lifecycle.postStart);N&&(i.postStart=N);const D=_t(t.lifecycle.preStop);D&&(i.preStop=D),Object.keys(i).length>0&&(s.lifecycle=i)}if(t.securityContext){const i=t.securityContext,N={};i.runAsUser!==""&&i.runAsUser!=null&&(N.runAsUser=Number(i.runAsUser)),i.runAsGroup!==""&&i.runAsGroup!=null&&(N.runAsGroup=Number(i.runAsGroup)),i.runAsNonRoot!=null&&(N.runAsNonRoot=i.runAsNonRoot),i.privileged!=null&&(N.privileged=i.privileged),i.readOnlyRootFilesystem!=null&&(N.readOnlyRootFilesystem=i.readOnlyRootFilesystem),i.allowPrivilegeEscalation!=null&&(N.allowPrivilegeEscalation=i.allowPrivilegeEscalation);const D=(i.capabilitiesAdd||[]).filter(Boolean),B=(i.capabilitiesDrop||[]).filter(Boolean);(D.length||B.length)&&(N.capabilities={},D.length&&(N.capabilities.add=D),B.length&&(N.capabilities.drop=B)),Object.keys(N).length>0&&(s.securityContext=N)}return t.volumeMounts.length>0&&(s.volumeMounts=t.volumeMounts.filter(i=>i.name.trim()&&i.mountPath.trim()).map(i=>{const N={name:i.name,mountPath:i.mountPath};return i.subPath&&(N.subPath=i.subPath),i.readOnly&&(N.readOnly=!0),N})),s}function Lt(t){return t.join(` `)}function Ft(t){return t.split(` `).map(s=>s.trim()).filter(Boolean)}function Us({container:t,onUpdate:s}){const o=t,a="flex items-center gap-1.5 text-xs font-semibold text-slate-300 mb-2";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:36:7",className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:37:9",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:38:11",className:"text-slate-400 text-xs",children:"容器名称"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:39:11",value:o.name,onChange:n=>s({name:n.target.value}),placeholder:"my-app",className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:43:9",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:44:11",className:"text-slate-400 text-xs",children:"容器镜像"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:45:11",value:o.image,onChange:n=>s({image:n.target.value}),placeholder:"nginx:1.25",className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:49:9",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:50:11",className:"text-slate-400 text-xs",children:"镜像拉取策略"}),e.jsxs($e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:51:11",value:o.imagePullPolicy||"__none",onValueChange:n=>s({imagePullPolicy:n==="__none"?"":n}),children:[e.jsx(_e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:52:13",className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 text-xs h-8",children:e.jsx(tt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:53:15"})}),e.jsxs(Ge,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:55:13",className:"bg-slate-900 border-slate-700",children:[e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:56:15",value:"__none",className:"text-slate-400",children:"不设置(默认 IfNotPresent)"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:57:15",value:"Always",className:"text-slate-200",children:"Always"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:58:15",value:"IfNotPresent",className:"text-slate-200",children:"IfNotPresent"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:59:15",value:"Never",className:"text-slate-200",children:"Never"})]})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:63:9",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:64:11",className:"text-slate-400 text-xs",children:"工作目录 (workingDir)"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:65:11",value:o.workingDir||"",onChange:n=>s({workingDir:n.target.value}),placeholder:"/app",className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:72:7",className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:73:9",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:74:11",className:"text-slate-400 text-xs",children:"启动命令 (command) — 每行一个"}),e.jsx(et,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:75:11",value:Lt(o.command),placeholder:`/bin/sh -c`,onChange:n=>s({command:Ft(n.target.value)}),className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs min-h-[60px]"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:79:9",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:80:11",className:"text-slate-400 text-xs",children:"启动参数 (args) — 每行一个"}),e.jsx(et,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:81:11",value:Lt(o.args),placeholder:`--config=/etc/app.yaml --debug`,onChange:n=>s({args:Ft(n.target.value)}),className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs min-h-[60px]"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:88:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:89:9",className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:90:11",className:a,children:[e.jsx(Qt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:90:39",className:"h-3.5 w-3.5 text-cyan-400"})," 环境变量"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:91:11",size:"sm",variant:"outline",className:"h-6 border-slate-700 text-slate-300 text-[11px]",onClick:()=>s({env:[...o.env,{name:"",value:""}]}),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:93:13",className:"h-3 w-3 mr-1"}),"新增"]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:96:9",className:"space-y-1.5",children:[o.env.map((n,r)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:98:13",className:"grid grid-cols-[1fr_1.4fr_auto] gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:99:15",value:n.name,placeholder:"KEY",onChange:d=>{const m=[...o.env];m[r]={...n,name:d.target.value},s({env:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:102:15",value:n.value||"",placeholder:"value",onChange:d=>{const m=[...o.env];m[r]={...n,value:d.target.value},s({env:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:105:15",variant:"ghost",size:"icon",className:"h-8 w-8 text-red-400",onClick:()=>s({env:o.env.filter((d,m)=>m!==r)}),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:107:17",className:"h-3.5 w-3.5"})})]},r)),o.env.length===0&&e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:111:34",className:"text-[11px] text-slate-600",children:"无环境变量"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:116:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:117:9",className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:118:11",className:a,children:[e.jsx(we,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:118:39",className:"h-3.5 w-3.5 text-indigo-400"})," 端口"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:119:11",size:"sm",variant:"outline",className:"h-6 border-slate-700 text-slate-300 text-[11px]",onClick:()=>s({ports:[...o.ports,{name:"",containerPort:"",protocol:"TCP"}]}),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:121:13",className:"h-3 w-3 mr-1"}),"新增"]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:124:9",className:"space-y-1.5",children:[o.ports.map((n,r)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:126:13",className:"grid grid-cols-[1fr_1fr_100px_auto] gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:127:15",value:n.name||"",placeholder:"http",onChange:d=>{const m=[...o.ports];m[r]={...n,name:d.target.value},s({ports:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:130:15",type:"number",value:n.containerPort,placeholder:"8080",onChange:d=>{const m=[...o.ports];m[r]={...n,containerPort:d.target.value},s({ports:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsxs($e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:133:15",value:n.protocol||"TCP",onValueChange:d=>{const m=[...o.ports];m[r]={...n,protocol:d},s({ports:m})},children:[e.jsx(_e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:134:17",className:"bg-slate-800 border-slate-700 text-slate-200 text-xs h-8",children:e.jsx(tt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:135:19"})}),e.jsxs(Ge,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:137:17",className:"bg-slate-900 border-slate-700",children:[e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:138:19",value:"TCP",className:"text-slate-200",children:"TCP"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:139:19",value:"UDP",className:"text-slate-200",children:"UDP"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:140:19",value:"SCTP",className:"text-slate-200",children:"SCTP"})]})]}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:143:15",variant:"ghost",size:"icon",className:"h-8 w-8 text-red-400",onClick:()=>s({ports:o.ports.filter((d,m)=>m!==r)}),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:145:17",className:"h-3.5 w-3.5"})})]},r)),o.ports.length===0&&e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:149:36",className:"text-[11px] text-slate-600",children:"无端口暴露"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:154:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:155:9",className:a,children:[e.jsx(ks,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:155:37",className:"h-3.5 w-3.5 text-amber-400"})," 资源 (requests / limits)"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:156:9",className:"grid grid-cols-2 md:grid-cols-4 gap-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:157:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:158:13",className:"text-[11px] text-slate-500",children:"CPU 请求"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:159:13",value:o.resources.requests?.cpu||"",placeholder:"100m",onChange:n=>s({resources:{...o.resources,requests:{...o.resources.requests,cpu:n.target.value}}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:163:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:164:13",className:"text-[11px] text-slate-500",children:"CPU 上限"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:165:13",value:o.resources.limits?.cpu||"",placeholder:"500m",onChange:n=>s({resources:{...o.resources,limits:{...o.resources.limits,cpu:n.target.value}}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:169:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:170:13",className:"text-[11px] text-slate-500",children:"内存请求"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:171:13",value:o.resources.requests?.memory||"",placeholder:"128Mi",onChange:n=>s({resources:{...o.resources,requests:{...o.resources.requests,memory:n.target.value}}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:175:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:176:13",className:"text-[11px] text-slate-500",children:"内存上限"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:177:13",value:o.resources.limits?.memory||"",placeholder:"512Mi",onChange:n=>s({resources:{...o.resources,limits:{...o.resources.limits,memory:n.target.value}}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:185:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:186:9",className:a,children:[e.jsx(Is,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:186:37",className:"h-3.5 w-3.5 text-rose-400"})," 健康检查 (Probes)"]}),e.jsx("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:187:9",className:"space-y-2",children:["livenessProbe","readinessProbe","startupProbe"].map(n=>e.jsx(Ks,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:189:13",label:{livenessProbe:"存活探针 (liveness)",readinessProbe:"就绪探针 (readiness)",startupProbe:"启动探针 (startup)"}[n],probe:o[n],onChange:r=>s({[n]:r})},n))})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:199:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:200:9",className:a,children:[e.jsx(cs,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:200:37",className:"h-3.5 w-3.5 text-yellow-400"})," 生命周期回调 (Lifecycle)"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:201:9",className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsx(Yt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:202:11",label:"启动后 (postStart)",handler:o.lifecycle?.postStart,onChange:n=>s({lifecycle:{...o.lifecycle,postStart:n}})}),e.jsx(Yt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:204:11",label:"终止前 (preStop)",handler:o.lifecycle?.preStop,onChange:n=>s({lifecycle:{...o.lifecycle,preStop:n}})})]}),!o.lifecycle&&e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:208:11",size:"sm",variant:"outline",className:"h-6 border-slate-700 text-slate-300 text-[11px] mt-1",onClick:()=>s({lifecycle:{postStart:{type:"none"},preStop:{type:"none"}}}),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:210:13",className:"h-3 w-3 mr-1"}),"启用生命周期回调"]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:216:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:217:9",className:a,children:[e.jsx(ts,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:217:37",className:"h-3.5 w-3.5 text-emerald-400"})," 安全上下文 (SecurityContext)"]}),o.securityContext?e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:219:11",className:"space-y-2 border border-slate-800 rounded-md p-3 bg-slate-950/30",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:220:13",className:"grid grid-cols-2 md:grid-cols-3 gap-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:221:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:222:17",className:"text-[11px] text-slate-500",children:"runAsUser"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:223:17",type:"number",value:o.securityContext.runAsUser??"",placeholder:"1000",onChange:n=>s({securityContext:{...o.securityContext,runAsUser:n.target.value===""?void 0:Number(n.target.value)}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:227:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:228:17",className:"text-[11px] text-slate-500",children:"runAsGroup"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:229:17",type:"number",value:o.securityContext.runAsGroup??"",placeholder:"1000",onChange:n=>s({securityContext:{...o.securityContext,runAsGroup:n.target.value===""?void 0:Number(n.target.value)}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:233:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:234:17",className:"text-[11px] text-slate-500",children:"Capabilities Add (逗号分隔)"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:235:17",value:(o.securityContext.capabilitiesAdd||[]).join(","),placeholder:"NET_ADMIN",onChange:n=>s({securityContext:{...o.securityContext,capabilitiesAdd:n.target.value.split(",").map(r=>r.trim()).filter(Boolean)}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:239:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:240:17",className:"text-[11px] text-slate-500",children:"Capabilities Drop (逗号分隔)"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:241:17",value:(o.securityContext.capabilitiesDrop||[]).join(","),placeholder:"ALL",onChange:n=>s({securityContext:{...o.securityContext,capabilitiesDrop:n.target.value.split(",").map(r=>r.trim()).filter(Boolean)}}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:246:13",className:"flex items-center gap-4 flex-wrap",children:[e.jsx(Xe,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:247:15",label:"runAsNonRoot",value:!!o.securityContext.runAsNonRoot,onChange:n=>s({securityContext:{...o.securityContext,runAsNonRoot:n}})}),e.jsx(Xe,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:249:15",label:"privileged",value:!!o.securityContext.privileged,onChange:n=>s({securityContext:{...o.securityContext,privileged:n}})}),e.jsx(Xe,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:251:15",label:"readOnlyRootFilesystem",value:!!o.securityContext.readOnlyRootFilesystem,onChange:n=>s({securityContext:{...o.securityContext,readOnlyRootFilesystem:n}})}),e.jsx(Xe,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:253:15",label:"allowPrivilegeEscalation",value:o.securityContext.allowPrivilegeEscalation??!1,onChange:n=>s({securityContext:{...o.securityContext,allowPrivilegeEscalation:n}})})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:256:13",size:"sm",variant:"ghost",className:"h-6 text-red-400 text-[11px]",onClick:()=>s({securityContext:null}),children:[e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:258:15",className:"h-3 w-3 mr-1"}),"移除安全上下文"]})]}):e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:262:11",size:"sm",variant:"outline",className:"h-6 border-slate-700 text-slate-300 text-[11px]",onClick:()=>s({securityContext:{runAsNonRoot:!1,privileged:!1}}),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:264:13",className:"h-3 w-3 mr-1"}),"启用安全上下文"]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:270:7",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:271:9",className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:272:11",className:a,children:[e.jsx(Ps,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:272:39",className:"h-3.5 w-3.5 text-teal-400"})," 卷挂载 (VolumeMounts)"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:273:11",size:"sm",variant:"outline",className:"h-6 border-slate-700 text-slate-300 text-[11px]",onClick:()=>s({volumeMounts:[...o.volumeMounts,{name:"",mountPath:"",subPath:"",readOnly:!1}]}),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:275:13",className:"h-3 w-3 mr-1"}),"新增"]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:278:9",className:"space-y-1.5",children:[o.volumeMounts.map((n,r)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:280:13",className:"grid grid-cols-[1fr_1fr_1fr_60px_auto] gap-2 items-center",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:281:15",value:n.name,placeholder:"volume 名称",onChange:d=>{const m=[...o.volumeMounts];m[r]={...n,name:d.target.value},s({volumeMounts:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:284:15",value:n.mountPath,placeholder:"/data",onChange:d=>{const m=[...o.volumeMounts];m[r]={...n,mountPath:d.target.value},s({volumeMounts:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:287:15",value:n.subPath||"",placeholder:"subPath (可选)",onChange:d=>{const m=[...o.volumeMounts];m[r]={...n,subPath:d.target.value},s({volumeMounts:m})},className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsxs("label",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:290:15",className:"flex items-center gap-1 text-[10px] text-slate-500 cursor-pointer",children:[e.jsx(Dt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:291:17",checked:!!n.readOnly,onCheckedChange:d=>{const m=[...o.volumeMounts];m[r]={...n,readOnly:d},s({volumeMounts:m})}}),"RO"]}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:295:15",variant:"ghost",size:"icon",className:"h-8 w-8 text-red-400",onClick:()=>s({volumeMounts:o.volumeMounts.filter((d,m)=>m!==r)}),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:297:17",className:"h-3.5 w-3.5"})})]},r)),o.volumeMounts.length===0&&e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:301:43",className:"text-[11px] text-slate-600",children:"无卷挂载"})]})]})]})}function Ks({label:t,probe:s,onChange:o}){const a=!!s,n=s||{type:"httpGet"},r=d=>o({...n,...d});return e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:315:5",className:"border border-slate-800 rounded-md p-2.5 bg-slate-950/30",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:316:7",className:"flex items-center justify-between mb-2",children:[e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:317:9",className:"text-xs text-slate-300 font-medium",children:t}),e.jsx(Dt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:318:9",checked:a,onCheckedChange:d=>o(d?{type:"httpGet",httpPath:"/",httpPort:8080,initialDelaySeconds:10,periodSeconds:10}:null)})]}),a&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:323:11",className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:324:13",className:"text-[10px] text-slate-500 w-8",children:"类型"}),e.jsxs($e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:325:13",value:n.type||"httpGet",onValueChange:d=>r({type:d}),children:[e.jsx(_e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:326:15",className:"bg-slate-800 border-slate-700 text-slate-200 text-xs h-7 flex-1",children:e.jsx(tt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:327:17"})}),e.jsxs(Ge,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:329:15",className:"bg-slate-900 border-slate-700",children:[e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:330:17",value:"httpGet",className:"text-slate-200",children:"HTTP GET"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:331:17",value:"tcpSocket",className:"text-slate-200",children:"TCP Socket"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:332:17",value:"exec",className:"text-slate-200",children:"Exec 命令"})]})]})]}),n.type==="httpGet"&&e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:337:13",className:"grid grid-cols-3 gap-2 mb-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:338:15",value:n.httpPath||"",placeholder:"/healthz",onChange:d=>r({httpPath:d.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:341:15",type:"number",value:n.httpPort??"",placeholder:"8080",onChange:d=>r({httpPort:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:344:15",value:n.httpHost||"",placeholder:"host (可选)",onChange:d=>r({httpHost:d.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]}),n.type==="tcpSocket"&&e.jsx("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:350:13",className:"mb-2",children:e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:351:15",type:"number",value:n.tcpPort??"",placeholder:"端口",onChange:d=>r({tcpPort:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})}),n.type==="exec"&&e.jsx("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:357:13",className:"mb-2",children:e.jsx(et,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:358:15",value:n.execCommand||"",placeholder:"每行一个命令片段,如:\\ncat\\n/tmp/healthy",onChange:d=>r({execCommand:d.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs min-h-[50px]"})}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:363:11",className:"grid grid-cols-5 gap-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:364:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:365:15",className:"text-[10px] text-slate-500",children:"延迟(s)"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:366:15",type:"number",value:n.initialDelaySeconds??"",placeholder:"10",onChange:d=>r({initialDelaySeconds:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:370:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:371:15",className:"text-[10px] text-slate-500",children:"间隔(s)"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:372:15",type:"number",value:n.periodSeconds??"",placeholder:"10",onChange:d=>r({periodSeconds:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:376:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:377:15",className:"text-[10px] text-slate-500",children:"超时(s)"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:378:15",type:"number",value:n.timeoutSeconds??"",placeholder:"1",onChange:d=>r({timeoutSeconds:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:382:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:383:15",className:"text-[10px] text-slate-500",children:"成功"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:384:15",type:"number",value:n.successThreshold??"",placeholder:"1",onChange:d=>r({successThreshold:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:388:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:389:15",className:"text-[10px] text-slate-500",children:"失败"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:390:15",type:"number",value:n.failureThreshold??"",placeholder:"3",onChange:d=>r({failureThreshold:d.target.value===""?void 0:Number(d.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]})]})]})]})}function Yt({label:t,handler:s,onChange:o}){const a=s||{type:"none"},n=!a.type||a.type==="none"?"__none":a.type;return e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:406:5",className:"border border-slate-800 rounded-md p-2.5 bg-slate-950/30",children:[e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:407:7",className:"text-xs text-slate-300 font-medium block mb-2",children:t}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:408:7",className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:409:9",className:"text-[10px] text-slate-500 w-8",children:"类型"}),e.jsxs($e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:410:9",value:n,onValueChange:r=>o({...a,type:r==="__none"?"none":r}),children:[e.jsx(_e,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:411:11",className:"bg-slate-800 border-slate-700 text-slate-200 text-xs h-7 flex-1",children:e.jsx(tt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:412:13"})}),e.jsxs(Ge,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:414:11",className:"bg-slate-900 border-slate-700",children:[e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:415:13",value:"__none",className:"text-slate-400",children:"不设置"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:416:13",value:"exec",className:"text-slate-200",children:"Exec 命令"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:417:13",value:"httpGet",className:"text-slate-200",children:"HTTP GET"}),e.jsx(ye,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:418:13",value:"tcpSocket",className:"text-slate-200",children:"TCP Socket"})]})]})]}),a.type==="exec"&&e.jsx(et,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:423:9",value:a.execCommand||"",placeholder:"每行一个命令片段",onChange:r=>o({...a,execCommand:r.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs min-h-[50px]"}),a.type==="httpGet"&&e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:428:9",className:"grid grid-cols-2 gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:429:11",value:a.httpPath||"",placeholder:"/shutdown",onChange:r=>o({...a,httpPath:r.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:432:11",type:"number",value:a.httpPort??"",placeholder:"8080",onChange:r=>o({...a,httpPort:r.target.value===""?void 0:Number(r.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]}),a.type==="tcpSocket"&&e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:438:9",type:"number",value:a.tcpPort??"",placeholder:"端口",onChange:r=>o({...a,tcpPort:r.target.value===""?void 0:Number(r.target.value)}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-7"})]})}function Xe({label:t,value:s,onChange:o}){return e.jsxs("label",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:448:5",className:"flex items-center gap-1.5 cursor-pointer",children:[e.jsx(Dt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:449:7",checked:s,onCheckedChange:o}),e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit/ContainerEditor.tsx:450:7",className:"text-[11px] text-slate-400 font-mono",children:t})]})}function Jt({title:t,description:s,icon:o,containers:a,accentColor:n,onAdd:r,onRemove:d,onUpdate:m,onDuplicate:V}){const i=st(),[N,D]=x.useState(new Set([0])),B=f=>{D(w=>{const z=new Set(w);return z.has(f)?z.delete(f):z.add(f),z})},g=n==="blue"?"border-blue-500/30":"border-purple-500/30",E=n==="blue"?"bg-blue-500/5":"bg-purple-500/5";return e.jsxs(F,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:37:5",className:"bg-slate-900 border-slate-800",children:[e.jsxs(ie,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:38:7",className:"pb-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:39:9",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:40:11",className:"flex items-center gap-2",children:[o,e.jsx(pe,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:42:13",className:"text-sm text-slate-200",children:t}),e.jsx(te,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:43:13",variant:"outline",className:"border-slate-700 text-slate-400 text-[10px]",children:a.length})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:45:11",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:r,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:46:13",className:"h-3 w-3 mr-1"}),"新增容器"]})]}),e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:49:9",className:"text-[11px] text-slate-600",children:s})]}),e.jsxs(Y,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:51:7",className:"pt-0 space-y-3",children:[a.length===0&&e.jsx("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:53:11",className:"text-center py-6 text-slate-600 text-xs",children:"暂无容器,点击「新增容器」添加"}),a.map((f,w)=>{const z=N.has(w)||a.length===1;return e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:58:13",className:`rounded-lg border ${g} overflow-hidden`,children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:60:15",className:`flex items-center justify-between px-3 py-2 ${E} cursor-pointer`,onClick:()=>B(w),children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:61:17",className:"flex items-center gap-2",children:[z?e.jsx(Xt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:62:29",className:"h-4 w-4 text-slate-500"}):e.jsx(Zt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:62:82",className:"h-4 w-4 text-slate-500"}),e.jsx(nt,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:63:19",className:`h-4 w-4 ${n==="blue"?"text-blue-400":"text-purple-400"}`}),e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:64:19",className:"text-sm font-mono text-slate-200 font-semibold",children:f.name||"(未命名)"}),f.image&&e.jsx("code",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:65:31",className:"text-[10px] text-slate-500 font-mono truncate max-w-[300px]",children:f.image})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:67:17",className:"flex items-center gap-1",onClick:O=>O.stopPropagation(),children:[V&&e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:69:21",variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-500 hover:text-slate-300",title:"复制",onClick:()=>V(w),children:e.jsx(rs,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:71:23",className:"h-3.5 w-3.5"})}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:74:19",variant:"ghost",size:"icon",className:"h-7 w-7 text-red-400 hover:text-red-300",title:"删除",onClick:async()=>{await i({title:"删除容器",description:`确认删除容器「${f.name}」?`,confirmText:"删除",variant:"destructive"})&&d(w)},children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:84:21",className:"h-3.5 w-3.5"})})]})]}),z&&e.jsx("div",{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:90:17",className:"p-3 space-y-4 bg-slate-950/30",children:e.jsx(Us,{"code-path":"src/components/kubernetes/deployment-edit/ContainerGroupSection.tsx:91:19",container:f,onUpdate:O=>m(w,O)})})]},w)})]})]})}function Xs({clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}){const{toast:d}=Ce(),[m,V]=x.useState(!1),[i,N]=x.useState(!a),[D,B]=x.useState(a||{}),[g,E]=x.useState([]),[f,w]=x.useState([]),[z,O]=x.useState([]);x.useEffect(()=>{if(!a){N(!1);return}B(a);const c=a?.spec?.template?.spec||{};E((Array.isArray(c.containers)?c.containers:[]).map(Mt)),w((Array.isArray(c.initContainers)?c.initContainers:[]).map(Mt)),O((Array.isArray(c.imagePullSecrets)?c.imagePullSecrets:[]).map(u=>u.name||"")),N(!1)},[a]);const ne=(c,u)=>{E(j=>j.map((R,p)=>p===c?{...R,...u}:R))},U=()=>{E(c=>[...c,$t(`container-${c.length+1}`)])},I=c=>{E(u=>u.filter((j,R)=>R!==c))},L=c=>{E(u=>{const j=JSON.parse(JSON.stringify(u[c]));j.name=`${j.name}-copy`;const R=[...u];return R.splice(c+1,0,j),R})},q=(c,u)=>{w(j=>j.map((R,p)=>p===c?{...R,...u}:R))},M=()=>{w(c=>[...c,$t(`init-${c.length+1}`)])},Q=c=>{w(u=>u.filter((j,R)=>R!==c))},oe=async()=>{for(const c of[...f,...g]){if(!c.name.trim()){d({title:"保存失败",description:"容器名称不能为空",variant:"destructive"});return}if(!c.image.trim()){d({title:"保存失败",description:`容器 ${c.name} 的镜像不能为空`,variant:"destructive"});return}}V(!0);try{const c=JSON.parse(JSON.stringify(D));c.spec=c.spec||{},c.spec.template=c.spec.template||{},c.spec.template.spec=c.spec.template.spec||{},c.spec.template.spec.containers=g.map(Gt),c.spec.template.spec.initContainers=f.length>0?f.map(Gt):void 0,c.spec.template.spec.imagePullSecrets=z.filter(j=>j.trim()).length>0?z.filter(j=>j.trim()).map(j=>({name:j})):void 0;const u=JSON.stringify(c,null,2);await ee.updateResourceYaml(t,s,"deployments",o,u),d({title:"容器配置已保存",description:`${o} 更新已提交`}),n()}catch(c){d({title:"保存失败",description:c?.message||String(c),variant:"destructive"})}finally{V(!1)}};return i?e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:113:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:114:9",className:"p-12 text-center",children:[e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:115:11",className:"h-6 w-6 animate-spin mx-auto text-slate-500"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:116:11",className:"text-slate-500 mt-3 text-sm",children:"加载中..."})]})}):a?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:132:5",className:"space-y-4",children:[e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:134:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:135:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:136:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx($s,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:137:13",className:"h-4 w-4 text-amber-400"}),"镜像拉取凭证 (imagePullSecrets)",e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:139:13",variant:"outline",className:"border-slate-700 text-slate-500 text-[10px]",children:"Pod 级别"})]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:142:9",className:"pt-0 space-y-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:143:11",className:"flex items-center gap-2 flex-wrap",children:[z.map((c,u)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:145:15",className:"flex items-center gap-1 bg-slate-800 rounded px-2 py-1",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:146:17",className:"text-xs text-slate-300 font-mono",children:c}),e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:147:17",onClick:()=>O(j=>j.filter((R,p)=>p!==u)),className:"text-red-400 hover:text-red-300 ml-1",children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:148:68",className:"h-3 w-3"})})]},u)),z.length===0&&e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:151:47",className:"text-[11px] text-slate-600",children:"无"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:153:11",className:"flex gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:154:13",placeholder:"输入 Secret 名称后回车",className:"bg-slate-800 border-slate-700 text-slate-200 text-xs h-8",onKeyDown:c=>{if(c.key==="Enter"){const u=c.target.value.trim();u&&(O(j=>[...j,u]),c.target.value="")}}}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:161:13",size:"sm",variant:"outline",className:"h-8 border-slate-700 text-slate-300 text-xs",onClick:()=>O(c=>[...c,""]),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:163:15",className:"h-3 w-3 mr-1"}),"新增"]})]})]})]}),e.jsx(Jt,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:170:7",title:"初始化容器",description:"在主容器启动前按顺序执行的容器,用于初始化环境",icon:e.jsx(ls,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:173:15",className:"h-4 w-4 text-purple-400"}),containers:f,accentColor:"purple",onAdd:M,onRemove:Q,onUpdate:q}),e.jsx(Jt,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:182:7",title:"工作容器",description:"Deployment 运行的主容器,定义应用进程及其运行时配置",icon:e.jsx(nt,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:185:15",className:"h-4 w-4 text-blue-400"}),containers:g,accentColor:"blue",onAdd:U,onRemove:I,onUpdate:ne,onDuplicate:L}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:195:7",className:"sticky bottom-0 bg-slate-950/80 backdrop-blur border-t border-slate-800 p-3 flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:196:9",className:"text-[11px] text-slate-500",children:["共 ",e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:197:13",className:"text-slate-300 font-semibold",children:f.length})," 个初始化容器 +",e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:198:11",className:"text-slate-300 font-semibold ml-1",children:g.length})," 个工作容器"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:200:9",className:"flex gap-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:201:11",variant:"outline",className:"border-slate-700 text-slate-400",onClick:r,children:"取消"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:202:11",className:"bg-blue-600 hover:bg-blue-700",disabled:m,onClick:oe,children:[m?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:203:23",className:"h-4 w-4 animate-spin mr-1"}):e.jsx(ot,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:203:75",className:"h-4 w-4 mr-1"}),"保存"]})]})]})]}):e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:123:7",className:"bg-slate-900 border-slate-800",children:e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditContainers.tsx:124:9",className:"p-8 text-center text-slate-500",children:"未获取到 manifest 数据,请使用 YAML 编辑模式直接修改。"})})}function ht(t){return!t||typeof t!="object"?[]:Object.entries(t).map(([s,o])=>({key:s,value:String(o)}))}function ut(t){const s={};for(const{key:o,value:a}of t){const n=o.trim();n&&(s[n]=a)}return s}function Zs({clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}){const{toast:d}=Ce(),[m,V]=x.useState(!1),[i,N]=x.useState(!a),[D,B]=x.useState(a||{}),[g,E]=x.useState(1),[f,w]=x.useState([]),[z,O]=x.useState([]),[ne,U]=x.useState([]);x.useEffect(()=>{const p=a;if(!p){N(!1);return}B(p),E(p?.spec?.replicas??1),w(ht(p?.metadata?.labels)),O(ht(p?.metadata?.annotations)),U(ht(p?.spec?.selector?.matchLabels)),N(!1)},[a]);const I=(p,C)=>{w(H=>H.map((J,l)=>l===p?{...J,...C}:J))},L=()=>w(p=>[...p,{key:"",value:""}]),q=p=>w(C=>C.filter((H,J)=>J!==p)),M=(p,C)=>{O(H=>H.map((J,l)=>l===p?{...J,...C}:J))},Q=()=>O(p=>[...p,{key:"",value:""}]),oe=p=>O(C=>C.filter((H,J)=>J!==p)),c=(p,C)=>{U(H=>H.map((J,l)=>l===p?{...J,...C}:J))},u=()=>U(p=>[...p,{key:"",value:""}]),j=p=>U(C=>C.filter((H,J)=>J!==p)),R=async()=>{V(!0);try{const p=JSON.parse(JSON.stringify(D));p.spec=p.spec||{},p.spec.replicas=g;const C=ut(f);p.metadata=p.metadata||{},p.metadata.labels=Object.keys(C).length>0?C:void 0;const H=ut(z);p.metadata.annotations=Object.keys(H).length>0?H:void 0;const J=ut(ne);Object.keys(J).length>0&&(p.spec.selector=p.spec.selector||{},p.spec.selector.matchLabels=J,p.spec.template=p.spec.template||{},p.spec.template.metadata=p.spec.template.metadata||{},p.spec.template.metadata.labels={...p.spec.template.metadata.labels,...J});const l=JSON.stringify(p,null,2);await ee.updateResourceYaml(t,s,"deployments",o,l),d({title:"基本信息已保存",description:`${o} 更新已提交`}),n()}catch(p){d({title:"保存失败",description:p?.message||String(p),variant:"destructive"})}finally{V(!1)}};return i?e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:123:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:124:9",className:"p-12 text-center",children:[e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:125:11",className:"h-6 w-6 animate-spin mx-auto text-slate-500"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:126:11",className:"text-slate-500 mt-3 text-sm",children:"加载中..."})]})}):a?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:143:5",className:"space-y-4",children:[e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:145:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:146:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:147:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(Bs,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:148:13",className:"h-4 w-4 text-blue-400"}),"副本数 (Replicas)"]})}),e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:152:9",className:"pt-0",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:153:11",className:"flex items-center gap-3",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:154:13",type:"number",min:0,value:g,onChange:p=>E(Math.max(0,Number(p.target.value)||0)),className:"w-32 bg-slate-800 border-slate-700 text-slate-200"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:161:13",className:"text-xs text-slate-500",children:"期望运行的 Pod 实例数量"})]})})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:167:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:168:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:169:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(ss,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:170:13",className:"h-4 w-4 text-slate-500"}),"基本标识(只读)"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:174:9",className:"pt-0 grid grid-cols-2 gap-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:175:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:176:13",className:"text-slate-400 text-xs",children:"名称 (name)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:177:13",value:o,readOnly:!0,className:"mt-1 bg-slate-950 border-slate-800 text-slate-500 font-mono text-sm cursor-not-allowed"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:180:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:181:13",className:"text-slate-400 text-xs",children:"命名空间 (namespace)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:182:13",value:s,readOnly:!0,className:"mt-1 bg-slate-950 border-slate-800 text-slate-500 font-mono text-sm cursor-not-allowed"})]})]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:189:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:190:9",className:"pb-3",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:191:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:192:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(zt,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:193:15",className:"h-4 w-4 text-emerald-400"}),"标签 (Labels)",e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:195:15",variant:"outline",className:"border-slate-700 text-slate-500 text-[10px]",children:f.length})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:197:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:L,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:198:15",className:"h-3 w-3 mr-1"}),"新增"]})]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:202:9",className:"pt-0 space-y-1.5",children:[f.length===0&&e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:203:35",className:"text-[11px] text-slate-600",children:"无标签"}),f.map((p,C)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:205:13",className:"grid grid-cols-[1fr_1.4fr_auto] gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:206:15",value:p.key,placeholder:"app",onChange:H=>I(C,{key:H.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:209:15",value:p.value,placeholder:"nginx",onChange:H=>I(C,{value:H.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:212:15",variant:"ghost",size:"icon",className:"h-8 w-8 text-red-400 hover:text-red-300",onClick:()=>q(C),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:213:48",className:"h-3.5 w-3.5"})})]},C))]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:220:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:221:9",className:"pb-3",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:222:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:223:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(zt,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:224:15",className:"h-4 w-4 text-amber-400"}),"选择器 (Selector)",e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:226:15",variant:"outline",className:"border-amber-700/50 text-amber-500 text-[10px]",children:"⚠️ 需与模板标签一致"})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:228:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:u,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:229:15",className:"h-3 w-3 mr-1"}),"新增"]})]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:233:9",className:"pt-0 space-y-1.5",children:[e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:234:11",className:"text-[11px] text-amber-500/70 mb-1",children:"Selector 决定哪些 Pod 归属此 Deployment。修改时必须确保与 Pod Template Labels 匹配,否则 Deployment 将无法管理 Pod。"}),ne.length===0&&e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:235:43",className:"text-[11px] text-slate-600",children:"无选择器"}),ne.map((p,C)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:237:13",className:"grid grid-cols-[1fr_1.4fr_auto] gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:238:15",value:p.key,placeholder:"app",onChange:H=>c(C,{key:H.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:241:15",value:p.value,placeholder:"nginx",onChange:H=>c(C,{value:H.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:244:15",variant:"ghost",size:"icon",className:"h-8 w-8 text-red-400 hover:text-red-300",onClick:()=>j(C),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:245:51",className:"h-3.5 w-3.5"})})]},C))]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:252:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:253:9",className:"pb-3",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:254:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:255:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(Nt,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:256:15",className:"h-4 w-4 text-purple-400"}),"注解 (Annotations)",e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:258:15",variant:"outline",className:"border-slate-700 text-slate-500 text-[10px]",children:z.length})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:260:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:Q,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:261:15",className:"h-3 w-3 mr-1"}),"新增"]})]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:265:9",className:"pt-0 space-y-1.5",children:[z.length===0&&e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:266:40",className:"text-[11px] text-slate-600",children:"无注解"}),z.map((p,C)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:268:13",className:"grid grid-cols-[1fr_1.4fr_auto] gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:269:15",value:p.key,placeholder:"deployment.kubernetes.io/revision",onChange:H=>M(C,{key:H.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:272:15",value:p.value,placeholder:"1",onChange:H=>M(C,{value:H.target.value}),className:"bg-slate-800 border-slate-700 text-slate-200 font-mono text-xs h-8"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:275:15",variant:"ghost",size:"icon",className:"h-8 w-8 text-red-400 hover:text-red-300",onClick:()=>oe(C),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:276:53",className:"h-3.5 w-3.5"})})]},C))]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:283:7",className:"sticky bottom-0 bg-slate-950/80 backdrop-blur border-t border-slate-800 p-3 flex items-center justify-between",children:[e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:284:9",className:"text-[11px] text-slate-500",children:["保存将通过 ",e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:285:17",className:"text-slate-400",children:"PUT application/yaml"})," 提交(自动剥离 status/managedFields 等只读字段)"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:287:9",className:"flex gap-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:288:11",variant:"outline",className:"border-slate-700 text-slate-400",onClick:r,children:"取消"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:289:11",className:"bg-blue-600 hover:bg-blue-700",disabled:m,onClick:R,children:[m?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:290:23",className:"h-4 w-4 animate-spin mr-1"}):e.jsx(ot,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:290:75",className:"h-4 w-4 mr-1"}),"保存"]})]})]})]}):e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:134:7",className:"bg-slate-900 border-slate-800",children:e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditBasic.tsx:135:9",className:"p-8 text-center text-slate-500",children:"未获取到 manifest 数据,请使用 YAML 编辑模式直接修改。"})})}const qt=[{key:"persistentVolumeClaim",label:"存储卷声明",icon:Qe,color:"text-emerald-400",desc:"PVC"},{key:"emptyDir",label:"临时目录",icon:As,color:"text-slate-400",desc:"EmptyDir"},{key:"hostPath",label:"HostPath",icon:as,color:"text-amber-400",desc:"主机路径"},{key:"nfs",label:"NFS",icon:gt,color:"text-purple-400",desc:"网络存储"},{key:"configMap",label:"配置字典",icon:Vs,color:"text-blue-400",desc:"ConfigMap"},{key:"secret",label:"密文",icon:ss,color:"text-rose-400",desc:"Secret"}];function Qs(t){if(!t||typeof t!="object")return{name:"",type:"emptyDir"};const s=t.name||"";return t.emptyDir?{name:s,type:"emptyDir",medium:t.emptyDir.medium||"",sizeLimit:t.emptyDir.sizeLimit||""}:t.hostPath?{name:s,type:"hostPath",path:t.hostPath.path||"",pathType:t.hostPath.type||"Directory"}:t.configMap?{name:s,type:"configMap",configMapName:t.configMap.name||"",cmItems:t.configMap.items?JSON.stringify(t.configMap.items):""}:t.secret?{name:s,type:"secret",secretName:t.secret.secretName||"",secItems:t.secret.items?JSON.stringify(t.secret.items):""}:t.persistentVolumeClaim?{name:s,type:"persistentVolumeClaim",pvcName:t.persistentVolumeClaim.claimName||"",pvcReadOnly:!!t.persistentVolumeClaim.readOnly}:t.nfs?{name:s,type:"nfs",nfsServer:t.nfs.server||"",nfsPath:t.nfs.path||"",nfsReadOnly:!!t.nfs.readOnly}:{name:s,type:"emptyDir"}}function en(t){const s={name:t.name.trim()};if(!s.name)return null;switch(t.type){case"emptyDir":{const o={};t.medium&&(o.medium=t.medium),t.sizeLimit&&(o.sizeLimit=t.sizeLimit),s.emptyDir=o;break}case"hostPath":s.hostPath={path:t.path||"",type:t.pathType||"Directory"};break;case"configMap":{if(s.configMap={name:t.configMapName||""},t.cmItems)try{s.configMap.items=JSON.parse(t.cmItems)}catch{}break}case"secret":{if(s.secret={secretName:t.secretName||""},t.secItems)try{s.secret.items=JSON.parse(t.secItems)}catch{}break}case"persistentVolumeClaim":s.persistentVolumeClaim={claimName:t.pvcName||"",...t.pvcReadOnly?{readOnly:!0}:{}};break;case"nfs":s.nfs={server:t.nfsServer||"",path:t.nfsPath||"",...t.nfsReadOnly?{readOnly:!0}:{}};break}return s}function tn({clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}){const{toast:d}=Ce(),[m,V]=x.useState(!1),[i,N]=x.useState(!a),[D,B]=x.useState(a||{}),[g,E]=x.useState([]),[f,w]=x.useState([]),[z,O]=x.useState([]);x.useEffect(()=>{const c=a;if(!c){N(!1);return}B(c);const u=c?.spec?.template?.spec||{},j=Array.isArray(u.volumes)?u.volumes:[];E(j.map(Qs));const R=[...u.containers||[],...u.initContainers||[]],p=R.map(H=>H.name||"(unnamed)");O(p);const C=[];for(const H of R){const J=H.name||"(unnamed)",l=Array.isArray(H.volumeMounts)?H.volumeMounts:[];for(const k of l)C.push({containerName:J,volumeName:k.name||"",mountPath:k.mountPath||"",subPath:k.subPath||"",readOnly:!!k.readOnly})}w(C),N(!1)},[a]);const ne=()=>E(c=>[...c,{name:"",type:"emptyDir"}]),U=c=>{const u=g[c]?.name;E(j=>j.filter((R,p)=>p!==c)),u&&w(j=>j.filter(R=>R.volumeName!==u))},I=(c,u)=>E(j=>j.map((R,p)=>p===c?{...R,...u}:R)),L=()=>w(c=>[...c,{containerName:z[0]||"",volumeName:"",mountPath:"",subPath:"",readOnly:!1}]),q=c=>w(u=>u.filter((j,R)=>R!==c)),M=(c,u)=>w(j=>j.map((R,p)=>p===c?{...R,...u}:R)),Q=async()=>{V(!0);try{const c=JSON.parse(JSON.stringify(D));c.spec=c.spec||{},c.spec.template=c.spec.template||{},c.spec.template.spec=c.spec.template.spec||{};const u=c.spec.template.spec,j=g.map(en).filter(Boolean);j.length>0?u.volumes=j:delete u.volumes;const R=[...u.containers||[],...u.initContainers||[]];for(const C of R){const H=C.name||"(unnamed)",J=f.filter(l=>l.containerName===H&&l.volumeName&&l.mountPath).map(l=>{const k={name:l.volumeName,mountPath:l.mountPath,readOnly:l.readOnly};return l.subPath&&(k.subPath=l.subPath),k});J.length>0?C.volumeMounts=J:delete C.volumeMounts}u.containers=R.filter(C=>!(u.initContainers||[]).includes(C)),u.initContainers=u.initContainers||[];const p=JSON.stringify(c,null,2);await ee.updateResourceYaml(t,s,"deployments",o,p),d({title:"存储配置已保存",description:`${o} 更新已提交`}),n()}catch(c){d({title:"保存失败",description:c?.message||String(c),variant:"destructive"})}finally{V(!1)}};if(i)return e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:193:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:194:9",className:"p-12 text-center",children:[e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:195:11",className:"h-6 w-6 animate-spin mx-auto text-slate-500"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:196:11",className:"text-slate-500 mt-3 text-sm",children:"加载中..."})]})});if(!a)return e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:204:7",className:"bg-slate-900 border-slate-800",children:e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:205:9",className:"p-8 text-center text-slate-500",children:"未获取到 manifest 数据,请使用 YAML 编辑模式直接修改。"})});const oe=g.map(c=>c.name).filter(Boolean);return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:215:5",className:"space-y-4",children:[e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:217:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:218:9",className:"pb-3",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:219:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:220:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(Qe,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:221:15",className:"h-4 w-4 text-emerald-400"}),"定义数据卷",e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:222:15",variant:"outline",className:"border-slate-700 text-slate-400",children:g.length})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:224:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:ne,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:225:15",className:"h-3 w-3 mr-1"}),"添加数据卷"]})]})}),e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:229:9",className:"pt-0 space-y-3",children:g.length===0?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:231:13",className:"text-center py-8 text-slate-500 text-sm border border-dashed border-slate-800 rounded-lg",children:[e.jsx(Qe,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:232:15",className:"h-8 w-8 mx-auto mb-2 text-slate-700"}),"未配置数据卷"]}):g.map((c,u)=>{const j=qt.find(p=>p.key===c.type),R=j?.icon||mt;return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:239:15",className:"bg-slate-950/50 border border-slate-800 rounded-lg p-3 space-y-2.5",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:241:17",className:"flex items-center gap-2",children:[e.jsx(R,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:242:19",className:`h-4 w-4 ${j?.color||"text-slate-400"}`}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:243:19",className:"text-[10px] text-slate-500 w-16 shrink-0",children:"数据卷名称"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:244:19",value:c.name,onChange:p=>I(u,{name:p.target.value}),placeholder:"volume-name",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsxs($e,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:247:19",value:c.type,onValueChange:p=>I(u,{type:p}),children:[e.jsx(_e,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:248:21",className:"h-7 w-[120px] bg-slate-800 border-slate-700 text-xs text-slate-300",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:249:23",className:"flex items-center gap-1.5",children:[e.jsx(R,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:250:25",className:"h-3 w-3"}),j?.label||c.type]})}),e.jsx(Ge,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:253:21",children:qt.map(p=>{const C=p.icon;return e.jsx(ye,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:257:27",value:p.key,children:e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:258:29",className:"flex items-center gap-1.5 text-xs",children:[e.jsx(C,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:259:31",className:"h-3 w-3"}),p.label]})},p.key)})})]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:266:19",size:"icon",variant:"ghost",className:"h-7 w-7 text-red-400",onClick:()=>U(u),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:267:21",className:"h-3.5 w-3.5"})})]}),c.type==="persistentVolumeClaim"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:273:19",className:"flex items-center gap-2 pl-[88px]",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:274:21",value:c.pvcName||"",onChange:p=>I(u,{pvcName:p.target.value}),placeholder:"PVC 名称",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:276:21",className:"flex items-center gap-1.5 text-xs text-slate-400 cursor-pointer whitespace-nowrap",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:277:23",type:"checkbox",checked:!!c.pvcReadOnly,onChange:p=>I(u,{pvcReadOnly:p.target.checked}),className:"accent-blue-500"}),"只读"]})]}),c.type==="emptyDir"&&e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:285:19",className:"flex items-center gap-2 pl-[88px]",children:e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:286:21",value:c.sizeLimit||"",onChange:p=>I(u,{sizeLimit:p.target.value}),placeholder:"sizeLimit (如 512Mi, 可为空)",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})}),c.type==="hostPath"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:293:19",className:"flex items-center gap-2 pl-[88px]",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:294:21",value:c.path||"",onChange:p=>I(u,{path:p.target.value}),placeholder:"主机路径 /data/app",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:297:21",value:c.pathType||"Directory",onChange:p=>I(u,{pathType:p.target.value}),className:"h-7 w-28 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5",children:[e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:299:23",value:"Directory",children:"Directory"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:300:23",value:"File",children:"File"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:301:23",value:"",children:"(默认)"})]})]}),c.type==="nfs"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:307:19",className:"flex items-center gap-2 pl-[88px]",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:308:21",value:c.nfsServer||"",onChange:p=>I(u,{nfsServer:p.target.value}),placeholder:"NFS Server IP",className:"h-7 w-40 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:311:21",className:"text-slate-600 text-xs",children:":"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:312:21",value:c.nfsPath||"",onChange:p=>I(u,{nfsPath:p.target.value}),placeholder:"/export/path",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:315:21",className:"flex items-center gap-1.5 text-xs text-slate-400 cursor-pointer whitespace-nowrap",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:316:23",type:"checkbox",checked:!!c.nfsReadOnly,onChange:p=>I(u,{nfsReadOnly:p.target.checked}),className:"accent-blue-500"}),"只读"]})]}),c.type==="configMap"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:324:19",className:"flex items-center gap-2 pl-[88px]",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:325:21",className:"text-[10px] text-slate-500 whitespace-nowrap",children:"ConfigMap"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:326:21",value:c.configMapName||"",onChange:p=>I(u,{configMapName:p.target.value}),placeholder:"ConfigMap 名称",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:329:21",value:c.cmItems||"",onChange:p=>I(u,{cmItems:p.target.value}),placeholder:"KeyToPath (可为空)",className:"h-7 w-40 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]}),c.type==="secret"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:336:19",className:"flex items-center gap-2 pl-[88px]",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:337:21",className:"text-[10px] text-slate-500 whitespace-nowrap",children:"密文"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:338:21",value:c.secretName||"",onChange:p=>I(u,{secretName:p.target.value}),placeholder:"Secret 名称",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:341:21",value:c.secItems||"",onChange:p=>I(u,{secItems:p.target.value}),placeholder:"KeyToPath (可为空)",className:"h-7 w-40 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]})]},u)})})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:353:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:354:9",className:"pb-3",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:355:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:356:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(mt,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:357:15",className:"h-4 w-4 text-blue-400"}),"将数据卷挂载到容器",e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:358:15",variant:"outline",className:"border-slate-700 text-slate-400",children:f.length})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:360:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:L,disabled:oe.length===0||z.length===0,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:362:15",className:"h-3 w-3 mr-1"}),"添加挂载"]})]})}),e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:366:9",className:"pt-0 space-y-2",children:f.length===0?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:368:13",className:"text-center py-8 text-slate-500 text-sm border border-dashed border-slate-800 rounded-lg",children:[e.jsx(mt,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:369:15",className:"h-8 w-8 mx-auto mb-2 text-slate-700"}),oe.length===0?"请先定义数据卷":"未配置挂载点"]}):f.map((c,u)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:373:13",className:"flex items-center gap-2 bg-slate-950/50 border border-slate-800 rounded-lg p-2.5",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:375:15",className:"text-[10px] text-slate-500 whitespace-nowrap",children:"容器:"}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:376:15",value:c.containerName,onChange:j=>M(u,{containerName:j.target.value}),className:"h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5 min-w-[120px]",children:[z.length===0&&e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:378:45",value:"",children:"(无容器)"}),z.map(j=>e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:379:39",value:j,children:j},j))]}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:382:15",value:c.volumeName,onChange:j=>M(u,{volumeName:j.target.value}),className:"h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5 min-w-[100px]",children:[e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:384:17",value:"",children:"选择数据卷"}),oe.map(j=>e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:385:40",value:j,children:j},j))]}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:388:15",value:c.mountPath,onChange:j=>M(u,{mountPath:j.target.value}),placeholder:"挂载路径 /app/data",className:"h-7 flex-1 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:392:15",className:"flex items-center gap-1 bg-slate-800 rounded-lg p-0.5 border border-slate-700",children:[e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:393:17",onClick:()=>M(u,{readOnly:!1}),className:`px-2 py-0.5 rounded text-[10px] font-medium transition-all ${c.readOnly?"text-slate-500":"bg-blue-500/20 text-blue-300"}`,children:"读写"}),e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:397:17",onClick:()=>M(u,{readOnly:!0}),className:`px-2 py-0.5 rounded text-[10px] font-medium transition-all ${c.readOnly?"bg-amber-500/20 text-amber-300":"text-slate-500"}`,children:"只读"})]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:402:15",size:"icon",variant:"ghost",className:"h-7 w-7 text-red-400",onClick:()=>q(u),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:403:17",className:"h-3.5 w-3.5"})})]},u))})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:411:7",className:"flex justify-end gap-2 pt-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:412:9",variant:"outline",className:"border-slate-700 text-slate-400",onClick:r,children:"取消"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:413:9",className:"bg-blue-600 hover:bg-blue-700",disabled:m,onClick:Q,children:[m?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:414:21",className:"h-4 w-4 animate-spin mr-1"}):e.jsx(ot,{"code-path":"src/components/kubernetes/DeploymentEditStorage.tsx:414:73",className:"h-4 w-4 mr-1"}),"保存"]})]})]})}const sn=[{key:"nodeName",label:"节点名称"},{key:"nodeSelector",label:"标签选择器"},{key:"nodeAffinity",label:"节点亲和性"}];function nn({scheduleMode:t,onScheduleModeChange:s,nodeName:o,onNodeNameChange:a,availableNodes:n,nodesLoading:r,labelSelectorKv:d,onAddLabelSelector:m,onRemoveLabelSelector:V,onUpdateLabelSelector:i,nodeLabels:N}){return e.jsxs(F,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:54:5",className:"bg-slate-900 border-slate-800",children:[e.jsxs(ie,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:55:7",className:"pb-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:56:9",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:57:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(gt,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:58:13",className:"h-4 w-4 text-emerald-400"}),"调度 (Scheduling)"]}),e.jsx("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:60:11",className:"flex items-center gap-1 bg-slate-800 rounded-lg p-0.5 border border-slate-700",children:sn.map(D=>e.jsx("button",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:62:15",onClick:()=>s(D.key),className:`px-2.5 py-1 rounded text-[10px] font-medium transition-all ${t===D.key?"bg-emerald-500/20 text-emerald-300 shadow-sm":"text-slate-400 hover:text-slate-300"}`,children:D.label},D.key))})]}),e.jsxs("p",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:76:9",className:"text-xs text-slate-500 mt-1",children:[t==="nodeName"&&"Pod 将直接调度到指定节点",t==="nodeSelector"&&"Pod 将调度到匹配标签的节点",t==="nodeAffinity"&&"通过亲和性规则控制 Pod 调度到指定节点"]})]}),e.jsxs(Y,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:82:7",className:"pt-0",children:[t==="nodeName"&&e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:84:11",className:"space-y-2",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:85:13",className:"text-slate-400 text-xs",children:"请选择节点"}),r?e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:87:15",className:"flex items-center gap-1 text-slate-500 text-xs",children:[e.jsx(he,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:88:17",className:"h-3 w-3 animate-spin"}),"加载节点列表..."]}):e.jsxs("select",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:91:15",value:o,onChange:D=>a(D.target.value),className:"h-8 w-full bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-2",children:[e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:96:17",value:"",children:"(不指定)"}),n.map(D=>e.jsxs("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:98:19",value:D.name,children:[D.name," ",D.ip?`(${D.ip})`:""]},D.name))]}),o&&e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:105:15",className:"text-[10px] text-slate-500",children:["已选择: ",e.jsx("code",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:106:22",className:"bg-slate-800 px-1 py-0.5 rounded text-emerald-400",children:o})]})]}),t==="nodeSelector"&&e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:113:11",className:"space-y-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:114:13",className:"flex items-center justify-between",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:115:15",className:"text-slate-400 text-xs",children:"请选择标签"}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:116:15",size:"sm",variant:"ghost",className:"h-6 text-xs text-slate-400",onClick:m,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:117:17",className:"h-3 w-3 mr-1"}),"添加"]})]}),d.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:121:15",className:"text-xs text-slate-600 italic",children:"未配置标签选择器"}):d.map((D,B)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:124:17",className:"flex items-center gap-2",children:[e.jsxs("select",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:125:19",value:D.key,onChange:g=>i(B,{key:g.target.value,value:""}),className:"flex-1 h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5",children:[e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:130:21",value:"",children:"选择标签"}),Object.entries(N).map(([g,E])=>e.jsxs("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:132:23",value:g,children:[g," (",E.length,")"]},g))]}),e.jsxs("select",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:135:19",value:D.value,onChange:g=>i(B,{value:g.target.value}),className:"flex-1 h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5",disabled:!D.key,children:[e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:141:21",value:"",children:"选择值"}),(N[D.key]||[]).map(g=>e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:143:23",value:g,children:g},g))]}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:146:19",size:"icon",variant:"ghost",className:"h-6 w-6 text-red-400",onClick:()=>V(B),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:152:21",className:"h-3 w-3"})})]},B))]}),t==="nodeAffinity"&&e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:161:11",className:"space-y-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:162:13",className:"flex items-center justify-between",children:[e.jsxs(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:163:15",className:"text-slate-400 text-xs",children:["请选择标签 ",e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:164:23",className:"text-slate-600",children:"(生成 requiredDuringScheduling 规则)"})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:166:15",size:"sm",variant:"ghost",className:"h-6 text-xs text-slate-400",onClick:m,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:167:17",className:"h-3 w-3 mr-1"}),"添加"]})]}),d.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:171:15",className:"text-xs text-slate-600 italic",children:"未配置亲和性规则"}):d.map((D,B)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:174:17",className:"flex items-center gap-2",children:[e.jsxs("select",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:175:19",value:D.key,onChange:g=>i(B,{key:g.target.value,value:""}),className:"flex-1 h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5",children:[e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:180:21",value:"",children:"选择标签"}),Object.entries(N).map(([g,E])=>e.jsxs("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:182:23",value:g,children:[g," (",E.length,")"]},g))]}),e.jsxs("select",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:185:19",value:D.value,onChange:g=>i(B,{value:g.target.value}),className:"flex-1 h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5",disabled:!D.key,children:[e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:191:21",value:"",children:"选择值"}),(N[D.key]||[]).map(g=>e.jsx("option",{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:193:23",value:g,children:g},g))]}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:196:19",size:"icon",variant:"ghost",className:"h-6 w-6 text-red-400",onClick:()=>V(B),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit-advanced/SchedulingSection.tsx:202:21",className:"h-3 w-3"})})]},B))]})]})]})}function on({dnsNameservers:t,onDnsNameserversChange:s,dnsSearches:o,onDnsSearchesChange:a,dnsOptions:n,onDnsOptionsChange:r,hostAliases:d,onHostAliasesChange:m}){const V=()=>r([...n,{name:"",value:""}]),i=(E,f)=>r(n.map((w,z)=>z===E?{...w,...f}:w)),N=E=>r(n.filter((f,w)=>w!==E)),D=()=>m([...d,{ip:"",hostnames:""}]),B=(E,f)=>m(d.map((w,z)=>z===E?{...w,...f}:w)),g=E=>m(d.filter((f,w)=>w!==E));return e.jsxs(e.Fragment,{children:[e.jsxs(F,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:53:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:54:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:55:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(gs,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:56:13",className:"h-4 w-4 text-indigo-400"}),"DNS 配置 (dnsConfig)"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:59:9",className:"pt-0 space-y-3",children:[e.jsxs("p",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:60:11",className:"text-[11px] text-slate-500",children:["提示:dnsConfig 通常与 ",e.jsx("code",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:61:30",className:"text-slate-400",children:"dnsPolicy: None"})," 搭配使用。每行一个值。"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:63:11",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:64:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:65:15",className:"text-slate-500 text-xs",children:"nameservers(每行一个 IP)"}),e.jsx("textarea",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:66:15",value:t,onChange:E=>s(E.target.value),placeholder:`8.8.8.8 114.114.114.114`,rows:3,className:"w-full mt-1 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 font-mono p-2 resize-y"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:74:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:75:15",className:"text-slate-500 text-xs",children:"searches(搜索域,每行一个)"}),e.jsx("textarea",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:76:15",value:o,onChange:E=>a(E.target.value),placeholder:`svc.cluster.local cluster.local`,rows:3,className:"w-full mt-1 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 font-mono p-2 resize-y"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:85:11",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:86:13",className:"flex items-center justify-between mb-1",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:87:15",className:"text-slate-400 text-xs",children:"options(DNS 选项)"}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:88:15",size:"sm",variant:"ghost",className:"h-6 text-xs text-slate-400",onClick:V,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:89:17",className:"h-3 w-3 mr-1"}),"添加"]})]}),n.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:93:15",className:"text-xs text-slate-600 italic",children:"未配置"}):n.map((E,f)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:96:17",className:"flex items-center gap-2 mb-1.5",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:97:19",value:E.name,onChange:w=>i(f,{name:w.target.value}),placeholder:"ndots",className:"flex-1 h-7 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:103:19",className:"text-slate-600",children:":"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:104:19",value:E.value,onChange:w=>i(f,{value:w.target.value}),placeholder:"5(可留空)",className:"flex-1 h-7 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:110:19",size:"icon",variant:"ghost",className:"h-6 w-6 text-red-400",onClick:()=>N(f),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:111:21",className:"h-3 w-3"})})]},f))]})]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:120:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:121:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:122:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(vs,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:123:13",className:"h-4 w-4 text-amber-400"}),"主机别名 (hostAliases)"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:126:9",className:"pt-0 space-y-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:127:11",className:"flex items-center justify-between mb-1",children:[e.jsx(P,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:128:13",className:"text-slate-400 text-xs",children:"IP → 主机名映射(注入 Pod 的 /etc/hosts)"}),e.jsxs(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:129:13",size:"sm",variant:"ghost",className:"h-6 text-xs text-slate-400",onClick:D,children:[e.jsx(ce,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:130:15",className:"h-3 w-3 mr-1"}),"添加"]})]}),d.length===0?e.jsx("p",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:134:13",className:"text-xs text-slate-600 italic",children:"未配置"}):d.map((E,f)=>e.jsxs("div",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:137:15",className:"flex items-center gap-2",children:[e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:138:17",value:E.ip,onChange:w=>B(f,{ip:w.target.value}),placeholder:"10.10.10.72",className:"w-40 h-7 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx("span",{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:144:17",className:"text-slate-600",children:"→"}),e.jsx(b,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:145:17",value:E.hostnames,onChange:w=>B(f,{hostnames:w.target.value}),placeholder:"gitlab.local, registry.local",className:"flex-1 h-7 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx(h,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:151:17",size:"icon",variant:"ghost",className:"h-6 w-6 text-red-400",onClick:()=>g(f),children:e.jsx(be,{"code-path":"src/components/kubernetes/deployment-edit-advanced/DnsHostSection.tsx:152:19",className:"h-3 w-3"})})]},f))]})]})]})}function an({clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}){const{toast:d}=Ce(),[m,V]=x.useState(!1),[i,N]=x.useState(!a),[D,B]=x.useState(a||{}),[g,E]=x.useState("RollingUpdate"),[f,w]=x.useState("25%"),[z,O]=x.useState("25%"),[ne,U]=x.useState("10"),[I,L]=x.useState("600"),[q,M]=x.useState("nodeSelector"),[Q,oe]=x.useState(""),[c,u]=x.useState([]),[j,R]=x.useState(!1),[p,C]=x.useState([]),[H,J]=x.useState({}),[l,k]=x.useState([]),[y,_]=x.useState("ClusterFirst"),[G,$]=x.useState("Always"),[ue,Z]=x.useState("default-scheduler"),[me,Se]=x.useState("30"),[re,W]=x.useState(""),[ae,ve]=x.useState(""),[je,v]=x.useState(""),[de,Pe]=x.useState(""),[Ne,Te]=x.useState(!1),[ct,Ye]=x.useState(!1),[rt,Je]=x.useState(!1),[Ee,ft]=x.useState(!1),[St,Et]=x.useState(!1),[wt,Ct]=x.useState([]),[Pt,At]=x.useState(""),[Vt,Wt]=x.useState(""),[Tt,Rt]=x.useState([]);x.useEffect(()=>{const S=a;if(!S){N(!1);return}B(S);const A=S?.spec||{},se=A?.template?.spec||{},ke=A.strategy||{};E(ke.type||"RollingUpdate");const Ae=ke.rollingUpdate||{};w(String(Ae.maxSurge??"25%")),O(String(Ae.maxUnavailable??"25%")),U(A.revisionHistoryLimit!=null?String(A.revisionHistoryLimit):"10"),L(A.progressDeadlineSeconds!=null?String(A.progressDeadlineSeconds):"600");const Ve=se.nodeSelector||{},He=Object.entries(Ve).map(([le,ze])=>({key:le,value:String(ze)}));C(He),oe(se.nodeName||""),se.nodeName?M("nodeName"):se.affinity?.nodeAffinity?M("nodeAffinity"):He.length>0&&M("nodeSelector"),t&&(R(!0),ee.getClusterNodes(t).then(le=>{const Bt=(Array.isArray(le)?le:le?.items||le?.list||[]).map(Ue=>{const We=Ue.metadata||{},Ke=Ue.status||{},us=(Array.isArray(Ke.addresses)?Ke.addresses:[]).find(bs=>bs.type==="InternalIP")?.address||"";return{name:We.name||"",ip:us,labels:We.labels||{}}});u(Bt);const Me={};for(const Ue of Bt)for(const[We,Ke]of Object.entries(Ue.labels)){const dt=String(Ke);Me[We]||(Me[We]=[]),Me[We].includes(dt)||Me[We].push(dt)}J(Me)}).catch(()=>{}).finally(()=>R(!1)));const qe=Array.isArray(se.tolerations)?se.tolerations:[];k(qe.map(le=>({key:le.key||"",operator:le.operator||"Equal",value:le.value||"",effect:le.effect||"",tolerationSeconds:le.tolerationSeconds!=null?String(le.tolerationSeconds):""}))),_(se.dnsPolicy||"ClusterFirst"),$(se.restartPolicy||"Always"),Z(se.schedulerName||"default-scheduler"),Se(se.terminationGracePeriodSeconds!=null?String(se.terminationGracePeriodSeconds):"30"),W(se.serviceAccountName||"");const De=se.securityContext||{};ve(De.fsGroup!=null?String(De.fsGroup):""),v(De.runAsUser!=null?String(De.runAsUser):""),Pe(De.runAsGroup!=null?String(De.runAsGroup):""),Te(!!De.runAsNonRoot),Ye(!!se.hostNetwork),Je(!!se.hostIPC),ft(!!se.hostPID),Et(!!se.shareProcessNamespace);const lt=Array.isArray(se.hostAliases)?se.hostAliases:[];Ct(lt.map(le=>({ip:le.ip||"",hostnames:Array.isArray(le.hostnames)?le.hostnames.join(", "):""})));const T=se.dnsConfig||{};At(Array.isArray(T.nameservers)?T.nameservers.join(` `):""),Wt(Array.isArray(T.searches)?T.searches.join(` `):"");const xe=Array.isArray(T.options)?T.options:[];Rt(xe.map(le=>({name:le.name||"",value:le.value||""}))),N(!1)},[a]);const ps=()=>C(S=>[...S,{key:"",value:""}]),ms=S=>C(A=>A.filter((se,ke)=>ke!==S)),xs=(S,A)=>C(se=>se.map((ke,Ae)=>Ae===S?{...ke,...A}:ke)),hs=async()=>{V(!0);try{const S=JSON.parse(JSON.stringify(D));S.spec=S.spec||{},S.spec.template=S.spec.template||{},S.spec.template.spec=S.spec.template.spec||{};const A=S.spec.template.spec;if(S.spec.strategy={type:g},g==="RollingUpdate"&&(S.spec.strategy.rollingUpdate={maxSurge:f,maxUnavailable:z}),ne&&(S.spec.revisionHistoryLimit=Number(ne)),I&&(S.spec.progressDeadlineSeconds=Number(I)),q==="nodeName"&&Q.trim())A.nodeName=Q.trim(),delete A.nodeSelector,A.affinity&&delete A.affinity.nodeAffinity;else if(q==="nodeSelector"){const T={};for(const{key:xe,value:le}of p){const ze=xe.trim();ze&&(T[ze]=le)}Object.keys(T).length>0?A.nodeSelector=T:delete A.nodeSelector,A.nodeName&&delete A.nodeName,A.affinity&&delete A.affinity.nodeAffinity}else if(q==="nodeAffinity"){const T=p.filter(xe=>xe.key.trim()).map(xe=>({key:xe.key.trim(),operator:"In",values:[xe.value]}));T.length>0?(A.affinity=A.affinity||{},A.affinity.nodeAffinity={requiredDuringSchedulingIgnoredDuringExecution:{nodeSelectorTerms:[{matchExpressions:T}]}}):A.affinity&&delete A.affinity.nodeAffinity,delete A.nodeSelector,A.nodeName&&delete A.nodeName}const se=l.filter(T=>T.key||T.operator==="Exists").map(T=>{const xe={};return T.key&&(xe.key=T.key),T.operator&&(xe.operator=T.operator),T.value&&T.operator!=="Exists"&&(xe.value=T.value),T.effect&&(xe.effect=T.effect),T.tolerationSeconds&&T.effect==="NoExecute"&&(xe.tolerationSeconds=Number(T.tolerationSeconds)),xe});se.length>0?A.tolerations=se:delete A.tolerations,y&&(A.dnsPolicy=y),G&&(A.restartPolicy=G),ue&&(A.schedulerName=ue),me&&(A.terminationGracePeriodSeconds=Number(me)),re&&(A.serviceAccountName=re);const ke={};ae&&(ke.fsGroup=Number(ae)),je&&(ke.runAsUser=Number(je)),de&&(ke.runAsGroup=Number(de)),Ne&&(ke.runAsNonRoot=!0),Object.keys(ke).length>0?A.securityContext=ke:delete A.securityContext,ct?A.hostNetwork=!0:delete A.hostNetwork,rt?A.hostIPC=!0:delete A.hostIPC,Ee?A.hostPID=!0:delete A.hostPID,St?A.shareProcessNamespace=!0:delete A.shareProcessNamespace;const Ae=wt.filter(T=>T.ip.trim()).map(T=>({ip:T.ip.trim(),hostnames:T.hostnames.split(/[,\s]+/).map(xe=>xe.trim()).filter(Boolean)})).filter(T=>T.hostnames.length>0);Ae.length>0?A.hostAliases=Ae:delete A.hostAliases;const Ve={},He=Pt.split(` `).map(T=>T.trim()).filter(Boolean);He.length>0&&(Ve.nameservers=He);const qe=Vt.split(` `).map(T=>T.trim()).filter(Boolean);qe.length>0&&(Ve.searches=qe);const De=Tt.filter(T=>T.name.trim()).map(T=>{const xe={name:T.name.trim()};return T.value.trim()&&(xe.value=T.value.trim()),xe});De.length>0&&(Ve.options=De),Object.keys(Ve).length>0?A.dnsConfig=Ve:delete A.dnsConfig;const lt=JSON.stringify(S,null,2);await ee.updateResourceYaml(t,s,"deployments",o,lt),d({title:"高级设置已保存",description:`${o} 更新已提交`}),n()}catch(S){d({title:"保存失败",description:S?.message||String(S),variant:"destructive"})}finally{V(!1)}};return i?e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:322:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:323:9",className:"p-12 text-center",children:[e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:324:11",className:"h-6 w-6 animate-spin mx-auto text-slate-500"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:325:11",className:"text-slate-500 mt-3 text-sm",children:"加载中..."})]})}):a?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:342:5",className:"space-y-4",children:[e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:344:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:345:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:346:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(at,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:347:13",className:"h-4 w-4 text-blue-400"}),"更新策略 (Strategy)"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:350:9",className:"pt-0 space-y-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:351:11",className:"flex items-center gap-4",children:[e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:352:13",className:"flex items-center gap-1.5 text-xs text-slate-300 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:353:15",type:"radio",checked:g==="RollingUpdate",onChange:()=>E("RollingUpdate"),className:"accent-blue-500"}),"RollingUpdate(滚动更新)"]}),e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:357:13",className:"flex items-center gap-1.5 text-xs text-slate-300 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:358:15",type:"radio",checked:g==="Recreate",onChange:()=>E("Recreate"),className:"accent-blue-500"}),"Recreate(重建)"]})]}),g==="RollingUpdate"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:364:13",className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:365:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:366:17",className:"text-slate-500 text-xs",children:"maxSurge(整数或百分比,超出期望副本数)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:367:17",value:f,onChange:S=>w(S.target.value),placeholder:"25%",className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:370:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:371:17",className:"text-slate-500 text-xs",children:"maxUnavailable(整数或百分比,不可用上限)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:372:17",value:z,onChange:S=>O(S.target.value),placeholder:"25%",className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]})]})]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:381:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:382:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:383:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(es,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:384:13",className:"h-4 w-4 text-amber-400"}),"历史版本 & 进度"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:387:9",className:"pt-0 grid grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:388:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:389:13",className:"text-slate-500 text-xs",children:"revisionHistoryLimit(保留 RS 历史)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:390:13",type:"number",value:ne,onChange:S=>U(S.target.value),className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:393:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:394:13",className:"text-slate-500 text-xs",children:"progressDeadlineSeconds(升级超时秒数)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:395:13",type:"number",value:I,onChange:S=>L(S.target.value),className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]})]})]}),e.jsx(nn,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:401:7",scheduleMode:q,onScheduleModeChange:M,nodeName:Q,onNodeNameChange:oe,availableNodes:c,nodesLoading:j,labelSelectorKv:p,onAddLabelSelector:ps,onRemoveLabelSelector:ms,onUpdateLabelSelector:xs,nodeLabels:H}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:416:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:417:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:418:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(bt,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:419:13",className:"h-4 w-4 text-slate-400"}),"Pod 级别"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:422:9",className:"pt-0 grid grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:423:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:424:13",className:"text-slate-500 text-xs",children:"dnsPolicy"}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:425:13",value:y,onChange:S=>_(S.target.value),className:"h-8 mt-1 w-full bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-2",children:[e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:427:15",value:"ClusterFirst",children:"ClusterFirst"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:428:15",value:"ClusterFirstWithHostNet",children:"ClusterFirstWithHostNet"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:429:15",value:"Default",children:"Default"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:430:15",value:"None",children:"None"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:433:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:434:13",className:"text-slate-500 text-xs",children:"restartPolicy"}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:435:13",value:G,onChange:S=>$(S.target.value),className:"h-8 mt-1 w-full bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-2",children:[e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:437:15",value:"Always",children:"Always"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:438:15",value:"OnFailure",children:"OnFailure"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:439:15",value:"Never",children:"Never"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:442:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:443:13",className:"text-slate-500 text-xs",children:"schedulerName"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:444:13",value:ue,onChange:S=>Z(S.target.value),className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:447:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:448:13",className:"text-slate-500 text-xs",children:"terminationGracePeriodSeconds"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:449:13",type:"number",value:me,onChange:S=>Se(S.target.value),className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:452:11",className:"col-span-2",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:453:13",className:"text-slate-500 text-xs",children:"serviceAccountName"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:454:13",value:re,onChange:S=>W(S.target.value),placeholder:"default",className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]})]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:461:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:462:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:463:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(ts,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:464:13",className:"h-4 w-4 text-rose-400"}),"Pod 安全上下文 (securityContext)"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:467:9",className:"pt-0 grid grid-cols-2 gap-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:468:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:469:13",className:"text-slate-500 text-xs",children:"fsGroup"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:470:13",type:"number",value:ae,onChange:S=>ve(S.target.value),placeholder:"1000",className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:473:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:474:13",className:"text-slate-500 text-xs",children:"runAsUser"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:475:13",type:"number",value:je,onChange:S=>v(S.target.value),placeholder:"1000",className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:478:11",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:479:13",className:"text-slate-500 text-xs",children:"runAsGroup"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:480:13",type:"number",value:de,onChange:S=>Pe(S.target.value),placeholder:"1000",className:"h-8 mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:483:11",className:"flex items-end pb-1",children:e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:484:13",className:"flex items-center gap-2 text-xs text-slate-400 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:485:15",type:"checkbox",checked:Ne,onChange:S=>Te(S.target.checked),className:"accent-blue-500"}),"runAsNonRoot"]})})]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:494:7",className:"bg-slate-900 border-slate-800",children:[e.jsx(ie,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:495:9",className:"pb-3",children:e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:496:11",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(we,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:497:13",className:"h-4 w-4 text-cyan-400"}),"主机设置 (Host Namespace)"]})}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:500:9",className:"pt-0 grid grid-cols-2 gap-3",children:[e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:501:11",className:"flex items-center gap-2 text-xs text-slate-300 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:502:13",type:"checkbox",checked:ct,onChange:S=>Ye(S.target.checked),className:"accent-blue-500"}),"hostNetwork(共享主机网络命名空间)"]}),e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:506:11",className:"flex items-center gap-2 text-xs text-slate-300 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:507:13",type:"checkbox",checked:rt,onChange:S=>Je(S.target.checked),className:"accent-blue-500"}),"hostIPC(共享主机 IPC 命名空间)"]}),e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:511:11",className:"flex items-center gap-2 text-xs text-slate-300 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:512:13",type:"checkbox",checked:Ee,onChange:S=>ft(S.target.checked),className:"accent-blue-500"}),"hostPID(共享主机 PID 命名空间)"]}),e.jsxs("label",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:516:11",className:"flex items-center gap-2 text-xs text-slate-300 cursor-pointer",children:[e.jsx("input",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:517:13",type:"checkbox",checked:St,onChange:S=>Et(S.target.checked),className:"accent-blue-500"}),"shareProcessNamespace(共享进程命名空间)"]})]})]}),e.jsx(on,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:524:7",dnsNameservers:Pt,onDnsNameserversChange:At,dnsSearches:Vt,onDnsSearchesChange:Wt,dnsOptions:Tt,onDnsOptionsChange:Rt,hostAliases:wt,onHostAliasesChange:Ct}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:536:7",className:"flex justify-end gap-2 pt-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:537:9",variant:"outline",className:"border-slate-700 text-slate-400",onClick:r,children:"取消"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:538:9",className:"bg-blue-600 hover:bg-blue-700",disabled:m,onClick:hs,children:[m?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:539:21",className:"h-4 w-4 animate-spin mr-1"}):e.jsx(ot,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:539:73",className:"h-4 w-4 mr-1"}),"保存"]})]})]}):e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:333:7",className:"bg-slate-900 border-slate-800",children:e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditAdvanced.tsx:334:9",className:"p-8 text-center text-slate-500",children:"未获取到 manifest 数据,请使用 YAML 编辑模式直接修改。"})})}const cn=[{label:"HTTP",protocol:"TCP",port:8080,targetPort:8080,name:"http"},{label:"WebSocket",protocol:"TCP",port:8001,targetPort:8002,name:"ws"},{label:"gRPC",protocol:"TCP",port:8002,targetPort:8002,name:"grpc"}],Ut=t=>Array.isArray(t)?t:t?.list||t?.items||t?.data||[];function rn({clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}){const{toast:d}=Ce(),m=st(),[V,i]=x.useState(!0),[N,D]=x.useState([]),[B,g]=x.useState([]),[E,f]=x.useState({}),[w,z]=x.useState(null),[O,ne]=x.useState(null),[U,I]=x.useState({name:"",type:"ClusterIP",ports:[{name:"http",port:"8080",targetPort:"8080",protocol:"TCP",nodePort:""}]}),[L,q]=x.useState({name:"",className:"nginx",host:"",path:"/",pathType:"Prefix",svcPort:"80"}),M=l=>{I(k=>({...k,ports:[...k.ports,l?{name:l.name,port:String(l.port),targetPort:String(l.targetPort),protocol:l.protocol,nodePort:""}:{name:"",port:"",targetPort:"",protocol:"TCP",nodePort:""}]}))},Q=(l,k,y)=>{I(_=>({..._,ports:_.ports.map((G,$)=>$===l?{...G,[k]:y}:G)}))},oe=l=>{U.ports.length<=1||I(k=>({...k,ports:k.ports.filter((y,_)=>_!==l)}))},c=x.useCallback(async()=>{i(!0);try{const l=a?.spec?.selector?.matchLabels||a?.selector||{};f(l);const[k,y]=await Promise.all([ee.getNamespaceServices(t,s).catch(()=>[]),ee.getNamespaceIngresses(t,s).catch(()=>[])]),_=Ut(k),G=Ut(y),$=_.map(Z=>{const me=Z.spec||{},Se=Array.isArray(me.ports)?me.ports.map(re=>({port:re.port,targetPort:re.targetPort,protocol:re.protocol||"TCP",nodePort:re.nodePort,name:re.name})):Array.isArray(Z.portList)?Z.portList.map(re=>({port:re.port,targetPort:re.targetPort,protocol:re.protocol||"TCP",nodePort:re.nodePort,name:re.name})):[];return{name:Z.name||Z.metadata?.name||"",type:me.type||Z.type||"ClusterIP",clusterIP:me.clusterIP||Z.cluster_ip||"",externalIP:Array.isArray(me.externalIPs)?me.externalIPs.join(","):"",ports:Se,selector:me.selector||Z.selector||{},age:Z.age||Z.created_at||"",raw:Z}}),ue=G.map(Z=>{const me=Z.spec||{},re=(Array.isArray(me.rules)?me.rules:Array.isArray(Z.rules)?Z.rules:[]).map(W=>({host:W.host||"",paths:(W.http?.paths||W.paths||[]).map(ae=>({path:ae.path||"/",backend:{service:ae.backend?.service?.name||ae.backendService||"",port:ae.backend?.service?.port?.number||ae.backend?.service?.port?.name||ae.backendPort||""}}))}));return{name:Z.name||Z.metadata?.name||"",className:me.ingressClassName||Z.ingressClass||"",hosts:re.map(W=>W.host).filter(Boolean),rules:re,raw:Z}});D($),g(ue)}catch(l){console.error("M9 load error:",l)}finally{i(!1)}},[t,s,a]);x.useEffect(()=>{c()},[c]);const u=l=>Object.keys(l).length===0?!1:Object.entries(l).every(([k,y])=>E[k]===y),j=N.filter(l=>u(l.selector)),R=new Set(j.map(l=>l.name)),p=B.filter(l=>l.rules.some(k=>k.paths.some(y=>R.has(y.backend.service)))),C=async()=>{const l=U.name.trim()||`${o}-svc`,k=U.ports.map(G=>{const $={name:G.name||"http",port:Number(G.port)||80,targetPort:/^\d+$/.test(String(G.targetPort))?Number(G.targetPort):G.targetPort,protocol:G.protocol||"TCP"};return U.type==="NodePort"&&G.nodePort&&($.nodePort=Number(G.nodePort)),$}),y={apiVersion:"v1",kind:"Service",metadata:{name:l,namespace:s,labels:{app:o}},spec:{type:U.type,selector:E,ports:k}},_=JSON.stringify(y,null,2);try{await ee.updateResourceYaml(t,s,"services",l,_),d({title:"Service 已创建",description:l}),ne(null),c()}catch(G){d({title:"创建失败",description:G?.message||String(G),variant:"destructive"})}},H=async()=>{const l=L.name.trim()||`${o}-ingress`,k=j[0]?.name||`${o}-svc`,y=Number(L.svcPort)||80,_={apiVersion:"networking.k8s.io/v1",kind:"Ingress",metadata:{name:l,namespace:s,labels:{app:o}},spec:{ingressClassName:L.className||void 0,rules:[{host:L.host||void 0,http:{paths:[{path:L.path||"/",pathType:L.pathType||"Prefix",backend:{service:{name:k,port:{number:y}}}}]}}]}};L.className||delete _.spec.ingressClassName;const G=JSON.stringify(_,null,2);try{await ee.updateResourceYaml(t,s,"ingresses",l,G),d({title:"Ingress 已创建",description:l}),ne(null),c()}catch($){d({title:"创建失败",description:$?.message||String($),variant:"destructive"})}},J=async(l,k)=>{if(await m({title:"删除资源",description:`确认删除 ${l==="service"?"Service":"Ingress"} 「${k}」?此操作不可撤销。`,confirmText:"删除",variant:"destructive"}))try{const _=l==="service"?"services":"ingresses";await ee.deleteResourceYaml(t,s,_,k),d({title:"已删除",description:`${l==="service"?"Service":"Ingress"} ${k} 已删除`}),c()}catch(_){d({title:"删除失败",description:_?.message||String(_),variant:"destructive"})}};return V?e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:289:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:290:9",className:"p-12 text-center",children:[e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:291:11",className:"h-6 w-6 animate-spin mx-auto text-slate-500"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:292:11",className:"text-slate-500 mt-3 text-sm",children:"加载中..."})]})}):e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:299:5",className:"space-y-4",children:[e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:301:7",className:"bg-slate-900/50 border-slate-800",children:e.jsx(Y,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:302:9",className:"p-3",children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:303:11",className:"flex items-center gap-2 text-xs text-slate-400",children:[e.jsx(we,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:304:13",className:"h-3.5 w-3.5 text-blue-400"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:305:13",children:"选择器:"}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:306:13",className:"flex flex-wrap gap-1",children:[Object.entries(E).map(([l,k])=>e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:308:17",className:"bg-slate-800 px-1.5 py-0.5 rounded text-slate-300 text-[11px]",children:[l,"=",k]},l)),Object.keys(E).length===0&&e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:311:17",className:"text-slate-600 italic",children:"(无 selector)"})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:314:13",size:"sm",variant:"ghost",className:"h-6 ml-auto text-xs text-slate-400",onClick:c,children:[e.jsx(at,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:315:15",className:"h-3 w-3 mr-1"}),"刷新"]})]})})}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:322:7",className:"bg-slate-900 border-slate-800",children:[e.jsxs(ie,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:323:9",className:"pb-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:324:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:325:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(we,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:326:15",className:"h-4 w-4 text-blue-400"}),"Services",e.jsxs(te,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:328:15",variant:"outline",className:"border-slate-700 text-slate-400",children:[j.length," 个关联"]})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:330:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:()=>{I({name:`${o}-svc`,type:"ClusterIP",ports:[{name:"http",port:"8080",targetPort:"8080",protocol:"TCP",nodePort:""}]}),ne("service")},children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:335:15",className:"h-3 w-3 mr-1"}),"创建 Service"]})]}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:338:11",className:"text-xs text-slate-500 mt-1",children:"仅显示 selector 匹配此 Deployment 的关联 Service"})]}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:340:9",className:"pt-0",children:[j.length===0&&O!=="service"?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:342:13",className:"text-center py-6 text-slate-500 text-sm border border-dashed border-slate-800 rounded-lg",children:[e.jsx(we,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:343:15",className:"h-8 w-8 mx-auto mb-2 text-slate-700"}),"当前命名空间暂无关联 Service"]}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:347:13",className:"space-y-2",children:j.map(l=>{const k=u(l.selector);return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:351:19",className:`rounded-lg border p-3 ${k?"border-blue-700/50 bg-blue-950/20":"border-slate-800 bg-slate-950/30"}`,children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:352:21",className:"flex items-center gap-2 flex-wrap",children:[k?e.jsx(yt,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:353:34",className:"h-4 w-4 text-blue-400"}):e.jsx(we,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:353:86",className:"h-4 w-4 text-slate-500"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:354:23",className:"text-sm font-semibold text-slate-200",children:l.name}),e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:355:23",variant:"outline",className:"border-slate-700 text-slate-400 text-[10px]",children:l.type}),k&&e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:356:35",className:"bg-blue-500/20 text-blue-300 border-blue-500/30 text-[10px]",children:"关联"}),e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:357:23",className:"text-[11px] text-slate-500 ml-auto",children:l.clusterIP}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:358:23",size:"sm",variant:"ghost",className:"h-6 text-xs text-slate-400",onClick:()=>z({kind:"service",name:l.name}),children:[e.jsx(kt,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:360:25",className:"h-3 w-3 mr-1"}),"YAML"]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:362:23",size:"sm",variant:"ghost",className:"h-6 w-6 p-0 text-red-400 hover:text-red-300",title:"删除 Service",onClick:()=>J("service",l.name),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:364:25",className:"h-3 w-3"})})]}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:368:21",className:"mt-2 flex flex-wrap gap-1.5 text-[11px]",children:l.ports.map((y,_)=>e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:370:25",className:"bg-slate-800/60 px-1.5 py-0.5 rounded text-slate-300",children:[y.name&&e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:371:38",className:"text-slate-500",children:[y.name,": "]}),y.port,"→",y.targetPort,y.nodePort?`/NodePort:${y.nodePort}`:"","/",y.protocol]},_))}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:377:21",className:"mt-1 flex flex-wrap gap-1 text-[10px]",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:378:23",className:"text-slate-600",children:"selector:"}),Object.entries(l.selector).map(([y,_])=>e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:380:25",className:"text-slate-500",children:[y,"=",_]},y))]})]},l.name)})}),O==="service"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:391:13",className:"mt-3 border border-blue-800/50 rounded-lg p-3 bg-blue-950/20 space-y-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:392:15",className:"text-xs font-semibold text-blue-300 flex items-center gap-1.5",children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:393:17",className:"h-3 w-3"}),"创建新 Service"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:397:15",className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:398:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:399:19",className:"text-slate-500 text-[11px]",children:"名称"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:400:19",value:U.name,onChange:l=>I(k=>({...k,name:l.target.value})),placeholder:`${o}-svc`,className:"h-7 mt-0.5 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:404:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:405:19",className:"text-slate-500 text-[11px]",children:"类型"}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:406:19",value:U.type,onChange:l=>I(k=>({...k,type:l.target.value})),className:"h-7 mt-0.5 w-full bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-2",children:[e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:408:21",value:"ClusterIP",children:"ClusterIP"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:409:21",value:"NodePort",children:"NodePort"})]})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:415:15",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:416:17",className:"text-slate-500 text-[11px] mb-1 block",children:"快速添加常用端口"}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:417:17",className:"flex gap-1.5",children:cn.map(l=>e.jsxs("button",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:419:21",onClick:()=>M(l),className:`flex items-center gap-1 px-2 py-1 rounded text-[10px] font-medium bg-slate-800 border border-slate-700 text-slate-300 hover:border-blue-500/50 hover:text-blue-300 transition-colors`,children:[e.jsx(cs,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:422:23",className:"h-2.5 w-2.5"}),l.label,e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:424:23",className:"text-slate-500 text-[9px]",children:[l.protocol," ",l.port,":",l.targetPort]})]},l.name))})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:431:15",className:"space-y-2",children:[e.jsxs(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:432:17",className:"text-slate-500 text-[11px]",children:["端口配置 ",e.jsxs("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:433:24",className:"text-slate-600",children:["(",U.ports.length," 个端口)"]})]}),U.ports.map((l,k)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:436:19",className:"flex items-center gap-1.5 p-2 rounded bg-slate-800/50 border border-slate-700/50",children:[e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:438:21",value:l.name,onChange:y=>Q(k,"name",y.target.value),placeholder:"http",className:"h-7 w-[72px] bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsxs("select",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:442:21",value:l.protocol,onChange:y=>Q(k,"protocol",y.target.value),className:"h-7 bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-1.5 w-16",children:[e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:444:23",value:"TCP",children:"TCP"}),e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:445:23",value:"UDP",children:"UDP"})]}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:448:21",value:l.port,onChange:y=>Q(k,"port",y.target.value),type:"number",placeholder:"port",className:"h-7 w-[72px] bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:451:21",className:"text-slate-600 text-[10px]",children:"→"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:452:21",value:l.targetPort,onChange:y=>Q(k,"targetPort",y.target.value),type:"number",placeholder:"targetPort",className:"h-7 w-[72px] bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),U.type==="NodePort"&&e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:457:23",value:l.nodePort,onChange:y=>Q(k,"nodePort",y.target.value),type:"number",placeholder:"30000-32767",className:"h-7 w-[80px] bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:462:21",size:"icon",variant:"ghost",className:"h-6 w-6 text-slate-500 hover:text-red-400",onClick:()=>oe(k),disabled:U.ports.length<=1,children:e.jsx(jt,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:464:23",className:"h-3 w-3"})})]},k)),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:469:17",size:"sm",variant:"outline",className:"h-7 w-full border-dashed border-slate-700 text-slate-400 text-xs",onClick:()=>M(),children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:471:19",className:"h-3 w-3 mr-1"}),"添加自定义端口"]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:476:15",className:"text-[10px] text-slate-500 border-t border-slate-700/50 pt-2",children:[e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:477:17",className:"text-slate-600",children:"selector (自动检测): "}),Object.keys(E).length>0?Object.entries(E).map(([l,k])=>e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:480:21",className:"bg-slate-800 px-1 py-0.5 rounded text-slate-400 ml-1",children:[l,"=",k]},l)):e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:483:19",className:"text-slate-600 italic",children:"未检测到"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:487:15",className:"flex justify-end gap-2 pt-1",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:488:17",size:"sm",variant:"ghost",className:"h-7 text-xs text-slate-400",onClick:()=>ne(null),children:"取消"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:489:17",size:"sm",className:"h-7 bg-blue-600 hover:bg-blue-700 text-xs",onClick:C,children:"创建"})]})]})]})]}),e.jsxs(F,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:497:7",className:"bg-slate-900 border-slate-800",children:[e.jsxs(ie,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:498:9",className:"pb-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:499:11",className:"flex items-center justify-between",children:[e.jsxs(pe,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:500:13",className:"text-sm text-slate-200 flex items-center gap-2",children:[e.jsx(it,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:501:15",className:"h-4 w-4 text-purple-400"}),"Ingresses (应用路由)",e.jsxs(te,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:503:15",variant:"outline",className:"border-slate-700 text-slate-400",children:[p.length,"/",B.length]})]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:505:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:()=>{q(l=>({...l,name:`${o}-ingress`,svcPort:String(j[0]?.ports[0]?.port||80)})),ne("ingress")},children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:510:15",className:"h-3 w-3 mr-1"}),"创建 Ingress"]})]}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:513:11",className:"text-xs text-slate-500 mt-1",children:"backend 指向关联 Service 的 Ingress 自动高亮"})]}),e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:515:9",className:"pt-0",children:[B.length===0?e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:517:13",className:"text-center py-6 text-slate-500 text-sm border border-dashed border-slate-800 rounded-lg",children:[e.jsx(it,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:518:15",className:"h-8 w-8 mx-auto mb-2 text-slate-700"}),"当前命名空间暂无 Ingress"]}):e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:522:13",className:"space-y-2",children:B.map(l=>{const k=p.includes(l);return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:526:19",className:`rounded-lg border p-3 ${k?"border-purple-700/50 bg-purple-950/20":"border-slate-800 bg-slate-950/30"}`,children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:527:21",className:"flex items-center gap-2 flex-wrap",children:[k?e.jsx(yt,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:528:34",className:"h-4 w-4 text-purple-400"}):e.jsx(it,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:528:88",className:"h-4 w-4 text-slate-500"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:529:23",className:"text-sm font-semibold text-slate-200",children:l.name}),e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:530:23",variant:"outline",className:"border-slate-700 text-slate-400 text-[10px]",children:l.className}),k&&e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:531:35",className:"bg-purple-500/20 text-purple-300 border-purple-500/30 text-[10px]",children:"关联"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:532:23",size:"sm",variant:"ghost",className:"h-6 text-xs text-slate-400 ml-auto",onClick:()=>z({kind:"ingress",name:l.name}),children:[e.jsx(kt,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:534:25",className:"h-3 w-3 mr-1"}),"YAML"]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:536:23",size:"sm",variant:"ghost",className:"h-6 w-6 p-0 text-red-400 hover:text-red-300",title:"删除 Ingress",onClick:()=>J("ingress",l.name),children:e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:538:25",className:"h-3 w-3"})})]}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:542:21",className:"mt-2 space-y-1 text-[11px]",children:l.rules.map((y,_)=>e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:544:25",className:"flex items-start gap-1.5",children:[e.jsx(gt,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:545:27",className:"h-3 w-3 text-slate-500 mt-0.5"}),e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:546:27",className:"text-slate-300",children:y.host||"*"}),y.paths.map((G,$)=>e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:548:29",className:"bg-slate-800/60 px-1.5 py-0.5 rounded text-slate-400",children:[G.path," → ",G.backend?.service,":",G.backend?.port]},$))]},_))})]},l.name)})}),O==="ingress"&&e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:563:13",className:"mt-3 border border-purple-800/50 rounded-lg p-3 bg-purple-950/20 space-y-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:564:15",className:"text-xs font-semibold text-purple-300 flex items-center gap-1.5",children:[e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:565:17",className:"h-3 w-3"}),"创建新 Ingress"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:567:15",className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:568:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:569:19",className:"text-slate-500 text-[11px]",children:"名称"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:570:19",value:L.name,onChange:l=>q(k=>({...k,name:l.target.value})),placeholder:`${o}-ingress`,className:"h-7 mt-0.5 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:574:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:575:19",className:"text-slate-500 text-[11px]",children:"ingressClassName"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:576:19",value:L.className,onChange:l=>q(k=>({...k,className:l.target.value})),placeholder:"nginx",className:"h-7 mt-0.5 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:580:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:581:19",className:"text-slate-500 text-[11px]",children:"host (域名)"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:582:19",value:L.host,onChange:l=>q(k=>({...k,host:l.target.value})),placeholder:"app.example.com",className:"h-7 mt-0.5 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:586:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:587:19",className:"text-slate-500 text-[11px]",children:"path"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:588:19",value:L.path,onChange:l=>q(k=>({...k,path:l.target.value})),placeholder:"/",className:"h-7 mt-0.5 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:592:17",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:593:19",className:"text-slate-500 text-[11px]",children:"Service 端口"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:594:19",type:"number",value:L.svcPort,onChange:l=>q(k=>({...k,svcPort:l.target.value})),className:"h-7 mt-0.5 bg-slate-800 border-slate-700 text-slate-300 text-xs font-mono"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:598:15",className:"flex justify-end gap-2 pt-1",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:599:17",size:"sm",variant:"ghost",className:"h-7 text-xs text-slate-400",onClick:()=>ne(null),children:"取消"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:600:17",size:"sm",className:"h-7 bg-purple-600 hover:bg-purple-700 text-xs",onClick:H,children:"创建"})]})]})]})]}),w&&e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:609:9",className:"hidden"}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:613:7",className:"flex justify-end gap-2 pt-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:614:9",size:"sm",variant:"ghost",className:"h-7 text-xs text-slate-400",onClick:r,children:"完成"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentEditService.tsx:615:9",size:"sm",className:"h-7 bg-slate-600 text-xs",onClick:n,children:"保存并关闭"})]})]})}function ln({clusterCode:t,namespace:s,deploymentName:o,mode:a,onBack:n,onModeChange:r}){const d=ns(),{toast:m}=Ce(),V=st(),[i,N]=x.useState(null),[D,B]=x.useState(null),[g,E]=x.useState([]),[f,w]=x.useState([]),[z,O]=x.useState([]),[ne,U]=x.useState(!0),[I,L]=x.useState(""),[q,M]=x.useState(null),[Q,oe]=x.useState(""),[c,u]=x.useState(0),[j,R]=x.useState(null),[p,C]=x.useState(null),H=i?.cluster_id||i?.clusterId||t,J=v=>Array.isArray(v)?v:v?.list||v?.items||v?.data||[],l=x.useCallback(async()=>{U(!0);try{const[v,de,Pe,Ne]=await Promise.all([ee.getDeployment(t,s,o).catch(()=>null),ee.getNamespacePods(t,s).catch(()=>[]),ee.getReplicaSets(t,s).catch(()=>[]),ee.getDeploymentRevisions(t,s,o).catch(()=>[])]),Te=v||(Array.isArray(v)?v[0]:null);N(Te),u(Te?.replicas||0),oe(Te?.image||"");const Ye=J(de).filter(Ee=>Ee.namespace===s&&(Ee.name||"").startsWith(o));E(Ye);const Je=J(Pe).filter(Ee=>Ee.namespace===s&&(Ee.owner_deployment===o||(Ee.name||"").startsWith(o)));w(Je),O(J(Ne))}catch(v){console.error("加载详情失败:",v)}finally{U(!1)}},[t,s,o]),k=x.useCallback(async()=>{try{const v=await ee.getResourceYaml(t,s,"deployments",o);let de=null;try{de=JSON.parse(v)}catch{try{de=(await js(()=>import("./js-yaml-37NdyH6G.js"),[],import.meta.url)).load(v)}catch{de=null}}B(de||i)}catch(v){console.warn("加载 manifest 失败(编辑功能降级):",v),B(i)}},[t,s,o,i]);x.useEffect(()=>{l()},[l]),x.useEffect(()=>{a==="edit"&&!D&&k()},[a,D,k]);const y=async()=>{L("scale");try{await ee.scaleDeployment(t,s,o,c),m({title:"伸缩成功",description:`副本数已设置为 ${c}`}),M(null),l()}catch(v){m({title:"操作失败",description:v?.message||String(v),variant:"destructive"})}finally{L("")}},_=async()=>{if(await V({title:"滚动重启",description:`确认滚动重启 Deployment "${o}"?`,confirmText:"重启"})){L("restart");try{await ee.restartDeployment(t,s,o),m({title:"重启指令已下发",description:"Deployment 正在滚动重启"}),setTimeout(l,1500)}catch(de){m({title:"重启失败",description:de?.message||String(de),variant:"destructive"})}finally{L("")}}},G=async()=>{const v=!!i?.paused,de=v?"恢复":"暂停";if(await V({title:`${de}滚动更新`,description:`确认${de} Deployment "${o}" 的滚动更新?`,confirmText:de})){L(v?"resume":"pause");try{v?await ee.resumeDeployment(t,s,o):await ee.pauseDeployment(t,s,o),m({title:`${de}成功`,description:`Deployment 滚动更新已${de}`}),setTimeout(l,1e3)}catch(Ne){m({title:`${de}失败`,description:Ne?.message||String(Ne),variant:"destructive"})}finally{L("")}}},$=()=>{M({kind:"cicd"})},ue=async()=>{if(Q.trim()){L("image");try{await ee.updateDeploymentImage(t,s,o,Q),m({title:"镜像更新成功",description:`正在滚动更新为 ${Q}`}),M(null),l()}catch(v){m({title:"更新失败",description:v?.message||String(v),variant:"destructive"})}finally{L("")}}},Z=async()=>{L("delete");try{const v=vt.getState().token||"",Pe=`/api/v1/kubernetes/${t}/namespace/${s}/deployments/${o}`,Ne=await fetch(Pe,{method:"DELETE",headers:{Authorization:`Bearer ${v}`}});if(!Ne.ok)throw new Error(`HTTP ${Ne.status}`);m({title:"删除成功",description:`${o} 已删除`}),M(null),setTimeout(()=>d(`/kubernetes/${t}/namespace/${s}/deployments`),800)}catch(v){m({title:"删除失败",description:v?.message||String(v),variant:"destructive"})}finally{L("")}},me=v=>M({kind:"podLogs",pod:v.name}),Se=v=>M({kind:"podYaml",pod:v.name}),re=v=>{R(v.name)},W=v=>{C(v.name)};if(ne)return e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:272:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:273:9",className:"p-12 text-center",children:[e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:274:11",className:"h-6 w-6 animate-spin mx-auto text-slate-500"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:275:11",className:"text-slate-500 mt-3",children:"加载中..."})]})});if(!i)return e.jsx(F,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:283:7",className:"bg-slate-900 border-slate-800",children:e.jsxs(Y,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:284:9",className:"p-12 text-center",children:[e.jsx(Ws,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:285:11",className:"h-8 w-8 mx-auto text-red-400"}),e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:286:11",className:"text-slate-400 mt-3",children:["未找到 Deployment: ",o]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:287:11",variant:"outline",className:"mt-4",onClick:n,children:"返回"})]})});const ae=i.ready_replicas||i.readyReplicas||0,ve=i.replicas||0,je=ae===ve&&ve>0;return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:299:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:301:7",className:"flex items-center justify-between gap-2 flex-wrap",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:302:9",className:"flex items-center gap-3 min-w-0",children:[e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:303:11",variant:"ghost",size:"sm",className:"text-slate-400",onClick:n,children:[e.jsx(Ts,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:304:13",className:"h-4 w-4 mr-1"}),"返回"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:306:11",className:"min-w-0",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:307:13",className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h1",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:308:15",className:"text-xl font-bold text-slate-100 truncate",children:o}),e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:309:15",variant:"outline",className:"border-slate-700 text-slate-400",children:s}),e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:310:15",variant:"outline",className:"border-slate-700 text-slate-400",children:"Deployment"}),e.jsxs(te,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:311:15",className:je?"bg-emerald-500/20 text-emerald-400 border-emerald-500/30":"bg-amber-500/20 text-amber-400 border-amber-500/30",children:[je?e.jsx(yt,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:316:30",className:"h-3 w-3 mr-1"}):e.jsx(Ot,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:316:73",className:"h-3 w-3 mr-1"}),ae,"/",ve]}),i?.paused&&e.jsxs(te,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:320:17",className:"bg-orange-500/20 text-orange-400 border-orange-500/30",children:[e.jsx(Ht,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:321:19",className:"h-3 w-3 mr-1"}),"已暂停更新"]})]}),e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:325:13",className:"text-xs text-slate-500 mt-0.5 truncate",children:["镜像: ",e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:326:19",className:"text-slate-400",children:i.image||"-"})]})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:331:9",className:"flex items-center gap-2",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:333:11",className:"inline-flex rounded-md border border-slate-700 overflow-hidden",children:[e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:334:13",className:`px-3 py-1.5 text-xs font-medium transition-colors ${a==="view"?"bg-slate-700 text-slate-100":"bg-transparent text-slate-400 hover:text-slate-200"}`,onClick:()=>r("view"),children:"查看"}),e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:340:13",className:`px-3 py-1.5 text-xs font-medium transition-colors ${a==="edit"?"bg-blue-600 text-white":"bg-transparent text-slate-400 hover:text-slate-200"}`,onClick:()=>r("edit"),children:"编辑"}),e.jsx("button",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:346:13",className:`px-3 py-1.5 text-xs font-medium transition-colors ${a==="yaml"?"bg-emerald-600 text-white":"bg-transparent text-slate-400 hover:text-slate-200"}`,onClick:()=>r("yaml"),children:"YAML"})]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:354:11",variant:"outline",size:"sm",className:"border-slate-700 text-slate-400",onClick:l,title:"刷新",children:e.jsx(at,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:355:13",className:"h-4 w-4"})}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:359:11",className:"flex items-center gap-1.5",children:[e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:360:13",variant:"outline",size:"sm",className:"border-slate-700 text-slate-300",onClick:()=>M({kind:"image"}),children:[e.jsx(zs,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:361:15",className:"h-3.5 w-3.5 mr-1"}),"调整镜像"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:363:13",variant:"outline",size:"sm",className:"border-slate-700 text-slate-300",onClick:_,children:[e.jsx(rs,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:364:15",className:"h-3.5 w-3.5 mr-1"}),"重启"]}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:366:13",variant:"outline",size:"sm",className:"border-slate-700 text-slate-300",disabled:!!I,onClick:G,children:i?.paused?e.jsxs(e.Fragment,{children:[e.jsx(ls,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:373:21",className:"h-3.5 w-3.5 mr-1 text-green-400"}),"恢复"]}):e.jsxs(e.Fragment,{children:[e.jsx(Ht,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:374:21",className:"h-3.5 w-3.5 mr-1 text-orange-400"}),"暂停"]})}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:377:13",variant:"outline",size:"sm",className:"border-slate-700 text-slate-300",onClick:$,children:[e.jsx(Ns,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:378:15",className:"h-3.5 w-3.5 mr-1 text-purple-400"}),"CI/CD"]}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:380:13",variant:"outline",size:"sm",className:"border-slate-700 text-red-400 hover:bg-red-500/10",onClick:()=>M({kind:"delete"}),children:[e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:381:15",className:"h-3.5 w-3.5 mr-1"}),"删除"]})]})]})]}),a==="view"?e.jsx(Gs,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:389:9",clusterCode:t,namespace:s,deployment:i,pods:g,replicaSets:f,revisions:z,onRefresh:l,onShowPodLogs:me,onShowPodTerminal:re,onShowPodYaml:Se,onShowPodFileBrowser:W}):a==="yaml"?e.jsx(It,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:404:9",clusterCode:t,namespace:s,resource:"deployments",name:o,cleanBeforeEdit:!0,inline:!0,onSaved:l,onClose:()=>r("view")}):e.jsx(dn,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:416:9",clusterCode:t,namespace:s,deploymentName:o,manifest:D,onSaved:()=>{k(),l(),r("view")},onCancel:()=>r("view")}),q?.kind==="yaml"&&e.jsx(It,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:428:9",clusterCode:t,namespace:s,resource:"deployments",name:o,cleanBeforeEdit:!0,onClose:()=>M(null),onSaved:l}),q?.kind==="image"&&e.jsx(Ze,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:441:9",title:"调整镜像版本",onClose:()=>M(null),children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:442:11",className:"space-y-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:443:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:444:15",className:"text-slate-400 text-sm",children:"当前镜像"}),e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:445:15",className:"text-xs text-slate-500 font-mono mt-1 bg-slate-800 rounded px-3 py-2",children:i.image||"-"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:447:13",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:448:15",className:"text-slate-400 text-sm",children:"新镜像地址"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:449:15",value:Q,onChange:v=>oe(v.target.value),placeholder:"harbor.example.com/app:v2.0",className:"mt-1 bg-slate-800 border-slate-700 text-slate-200 text-sm font-mono"})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:453:13",className:"flex justify-end gap-2 pt-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:454:15",variant:"outline",className:"border-slate-700 text-slate-400",onClick:()=>M(null),children:"取消"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:455:15",className:"bg-blue-600 hover:bg-blue-700",disabled:I==="image"||!Q.trim(),onClick:ue,children:I==="image"?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:456:46",className:"h-4 w-4 animate-spin"}):"更新镜像"})]})]})}),q?.kind==="scale"&&e.jsx(Ze,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:465:9",title:"伸缩 (Scale)",onClose:()=>M(null),children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:466:11",className:"space-y-3",children:[e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:467:13",className:"text-xs text-slate-500",children:["当前副本: ",i.replicas||0]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:468:13",className:"flex items-center justify-center gap-3 py-3",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:469:15",variant:"outline",size:"icon",className:"border-slate-700 text-slate-300",disabled:I==="scale"||c<=0,onClick:()=>u(v=>Math.max(0,v-1)),children:e.jsx(jt,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:472:17",className:"h-4 w-4"})}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:474:15",type:"number",min:0,value:c,onChange:v=>u(Math.max(0,Number(v.target.value))),className:"w-24 text-center text-lg font-bold bg-slate-800 border-slate-700 text-slate-200"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:477:15",variant:"outline",size:"icon",className:"border-slate-700 text-slate-300",disabled:I==="scale",onClick:()=>u(v=>v+1),children:e.jsx(ce,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:480:17",className:"h-4 w-4"})})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:483:13",className:"flex justify-end gap-2 pt-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:484:15",variant:"outline",className:"border-slate-700 text-slate-400",onClick:()=>M(null),children:"取消"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:485:15",className:"bg-blue-600 hover:bg-blue-700",disabled:I==="scale",onClick:y,children:I==="scale"?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:486:46",className:"h-4 w-4 animate-spin"}):"确认"})]})]})}),q?.kind==="delete"&&e.jsx(Ze,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:495:9",title:"删除 Deployment",onClose:()=>M(null),children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:496:11",className:"space-y-3",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:497:13",className:"flex items-center gap-2 text-red-400",children:[e.jsx(Ot,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:498:15",className:"h-5 w-5"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:499:15",className:"font-semibold",children:"此操作不可撤销"})]}),e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:501:13",className:"text-sm text-slate-400",children:["确认删除 Deployment ",e.jsxs("code",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:502:31",className:"text-slate-200 font-mono",children:[s,"/",o]}),"? 其管理的所有 Pod 将被一并回收。"]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:505:13",className:"flex justify-end gap-2 pt-2",children:[e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:506:15",variant:"outline",className:"border-slate-700 text-slate-400",onClick:()=>M(null),children:"取消"}),e.jsxs(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:507:15",variant:"destructive",disabled:I==="delete",onClick:Z,children:[I==="delete"?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:508:47",className:"h-4 w-4 animate-spin mr-1"}):e.jsx(be,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:508:99",className:"h-4 w-4 mr-1"}),"确认删除"]})]})]})}),q?.kind==="cicd"&&e.jsx(Ze,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:518:9",title:"CI/CD Webhook",onClose:()=>M(null),children:e.jsx(pn,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:519:11",clusterCode:t,namespace:s,deploymentName:o})}),q?.kind==="podLogs"&&e.jsx(mn,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:525:9",clusterCode:t,namespace:s,podName:q.pod,containers:(g.find(v=>v.name===q.pod)?.containers||[]).map(v=>v.name).filter(Boolean),onClose:()=>M(null)}),e.jsx(Es,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:535:7",open:!!j,onOpenChange:v=>{v||R(null)},clusterId:H,namespace:s,podName:j||"",containers:(g.find(v=>v.name===j)?.containers||[]).map(v=>v.name).filter(Boolean)}),e.jsx(ws,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:544:7",open:!!p,onOpenChange:v=>{v||C(null)},clusterCode:t,namespace:s,podName:p||"",containers:(g.find(v=>v.name===p)?.containers||[]).map(v=>v.name).filter(Boolean)})]})}function dn({clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}){const[d,m]=x.useState("basic"),V=[{key:"basic",label:"基本信息",icon:bt,available:!0},{key:"containers",label:"容器信息",icon:nt,available:!0},{key:"storage",label:"存储挂载",icon:Qe,available:!0},{key:"advanced",label:"高级设置",icon:bt,available:!0},{key:"service",label:"服务/应用路由",icon:we,available:!0}];return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:577:5",className:"space-y-4",children:[e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:579:7",className:"flex items-center gap-1 border-b border-slate-800 pb-px overflow-x-auto",children:V.map(i=>{const N=d===i.key,D=i.icon;return e.jsxs("button",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:584:13",disabled:!i.available,onClick:()=>i.available&&m(i.key),className:`flex items-center gap-1.5 px-3 py-2 text-xs font-medium border-b-2 transition-colors whitespace-nowrap ${N?"border-blue-500 text-blue-400":i.available?"border-transparent text-slate-400 hover:text-slate-200":"border-transparent text-slate-600 cursor-not-allowed"}`,children:[e.jsx(D,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:596:15",className:"h-3.5 w-3.5"}),i.label,i.badge&&e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:599:17",className:`text-[9px] px-1 py-0.5 rounded ${N?"bg-blue-500/20 text-blue-300":"bg-slate-800 text-slate-600"}`,children:i.badge})]},i.key)})}),d==="basic"?e.jsx(Zs,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:610:9",clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}):d==="containers"?e.jsx(Xs,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:620:9",clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}):d==="storage"?e.jsx(tn,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:630:9",clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}):d==="advanced"?e.jsx(an,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:640:9",clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}):d==="service"?e.jsx(rn,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:650:9",clusterCode:t,namespace:s,deploymentName:o,manifest:a,onSaved:n,onCancel:r}):null]})}function pn({clusterCode:t,namespace:s,deploymentName:o}){const{toast:a}=Ce(),n=vt(V=>V.token)||localStorage.getItem("token")||"",r=`${window.location.origin}/api/v1/clusters/${t}/namespaces/${s}/deployments/${o}/update-image`,d=`curl -X POST '${r}' \\ -H 'Authorization: Bearer ${n?n.substring(0,16)+"...":"YOUR_TOKEN"}' \\ -H 'Content-Type: application/json' \\ -d '{"image": "harbor.example.com/app:v1.0", "container": "your-container-name"}'`,m=V=>{navigator.clipboard.writeText(V).then(()=>a({title:"已复制"})).catch(()=>{})};return e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:678:5",className:"space-y-4",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:679:7",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:680:9",className:"text-slate-400 text-sm",children:"Webhook URL"}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:681:9",className:"flex items-center gap-2 mt-1",children:[e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:682:11",className:"flex-1 text-xs text-slate-300 bg-slate-800 rounded px-3 py-2 break-all font-mono",children:r}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:683:11",variant:"outline",size:"sm",className:"border-slate-700 text-slate-400 shrink-0",onClick:()=>m(r),children:"复制"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:686:7",children:[e.jsx(P,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:687:9",className:"text-slate-400 text-sm",children:"curl 示例"}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:688:9",className:"relative mt-1",children:[e.jsx("pre",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:689:11",className:"text-xs text-slate-300 bg-slate-800 rounded p-3 overflow-x-auto font-mono whitespace-pre-wrap",children:d}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:690:11",variant:"outline",size:"sm",className:"absolute top-2 right-2 border-slate-700 text-slate-400",onClick:()=>m(d),children:"复制"})]})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:693:7",className:"text-xs text-slate-500 space-y-1",children:[e.jsx("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:694:9",children:"• 使用 Bearer Token 认证(JWT 登录令牌)"}),e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:695:9",children:["• ",e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:695:14",className:"text-slate-400",children:"image"})," 必填,指定新镜像地址"]}),e.jsxs("p",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:696:9",children:["• ",e.jsx("code",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:696:14",className:"text-slate-400",children:"container"})," 可选,不填则更新第一个容器"]})]})]})}function Ze({title:t,children:s,onClose:o}){return e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:705:5",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:o,children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:706:7",className:"bg-slate-900 border border-slate-700 rounded-xl p-6 w-[460px] max-w-[90vw] shadow-2xl",onClick:a=>a.stopPropagation(),children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:707:9",className:"flex items-center justify-between mb-4",children:[e.jsx("h2",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:708:11",className:"text-base font-bold text-slate-100",children:t}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:709:11",variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-400",onClick:o,children:e.jsx(os,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:709:100",className:"h-4 w-4"})})]}),s]})})}function mn({clusterCode:t,namespace:s,podName:o,containers:a,onClose:n}){const{toast:r}=Ce(),[d,m]=x.useState(""),[V,i]=x.useState(200),[N,D]=x.useState(a[0]||""),[B,g]=x.useState(!1),[E,f]=x.useState(!1),w=async()=>{g(!0);try{const O=await ee.getPodLogs(t,s,o,V,N||void 0);m(O?.data?.logs||O?.logs||O||"无日志")}catch{m("获取日志失败")}finally{g(!1)}};x.useEffect(()=>{w()},[N,V]);const z=async()=>{f(!0);const O=vt.getState().token||"",ne="",U=N?`&container=${encodeURIComponent(N)}`:"",I=`${ne}/api/v1/kubernetes/${t}/namespace/${s}/pods/${o}/logs?tail=${V}&stream=true${U}`;try{const q=(await fetch(I,{headers:{Authorization:`Bearer ${O}`}})).body?.getReader();if(!q)return;const M=new TextDecoder;let Q="";for(;;){const{done:oe,value:c}=await q.read();if(oe)break;Q+=M.decode(c,{stream:!0}),m(Q)}}catch{r({title:"流式日志连接中断",variant:"destructive"})}finally{f(!1)}};return e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:764:5",className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:n,children:e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:765:7",className:"bg-slate-900 border border-slate-700 rounded-xl w-[90vw] max-w-4xl max-h-[80vh] flex flex-col",onClick:O=>O.stopPropagation(),children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:766:9",className:"flex items-center justify-between p-3 border-b border-slate-700",children:[e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:767:11",className:"flex items-center gap-2",children:[e.jsx(Nt,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:768:13",className:"h-4 w-4 text-blue-400"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:769:13",className:"text-sm font-semibold text-slate-200",children:o}),N&&e.jsx(te,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:770:27",variant:"outline",className:"border-slate-700 text-slate-400 text-[10px]",children:N})]}),e.jsxs("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:772:11",className:"flex items-center gap-2",children:[a.length>0&&e.jsx("select",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:774:15",value:N,onChange:O=>D(O.target.value),className:"bg-slate-800 border border-slate-700 rounded text-xs text-slate-300 px-2 py-1",children:a.map(O=>e.jsx("option",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:776:38",value:O,children:O},O))}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:779:13",className:"text-[11px] text-slate-500",children:"最近"}),e.jsx(b,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:780:13",type:"number",value:V,onChange:O=>i(Number(O.target.value)||200),className:"w-16 h-7 bg-slate-800 border-slate-700 text-slate-200 text-xs"}),e.jsx("span",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:782:13",className:"text-[11px] text-slate-500",children:"行"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:783:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-slate-300 text-xs",onClick:w,disabled:B,children:B?e.jsx(he,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:784:26",className:"h-3 w-3 animate-spin"}):e.jsx(at,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:784:73",className:"h-3 w-3"})}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:786:13",size:"sm",variant:"outline",className:"h-7 border-slate-700 text-emerald-400 text-xs",onClick:z,disabled:E,children:E?"流中...":"实时流"}),e.jsx(h,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:789:13",variant:"ghost",size:"icon",className:"h-7 w-7 text-slate-400",onClick:n,children:e.jsx(os,{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:789:102",className:"h-4 w-4"})})]})]}),e.jsx("div",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:792:9",className:"flex-1 overflow-auto p-3",children:e.jsx("pre",{"code-path":"src/components/kubernetes/DeploymentWorkload.tsx:793:11",className:"bg-slate-950 rounded p-3 text-xs text-slate-300 font-mono whitespace-pre-wrap max-h-[60vh] overflow-auto",children:d||"无日志内容"})})]})})}function Zn(){const t=Ds(),s=ns(),o=t.clusterCode||"",a=t.namespace||"",n=t.name||"",r=t.mode==="edit"||t.mode==="yaml"?t.mode:"view",d=m=>{m!==r&&s(`/kubernetes/${o}/namespace/${a}/workload/${m}/Deployment/${n}`,{replace:!0})};return e.jsx(ln,{"code-path":"src/components/kubernetes/DeploymentDetailPage.tsx:38:5",clusterCode:o,namespace:a,deploymentName:n,mode:r,onBack:()=>s(-1),onModeChange:d})}export{Zn as default};