Files
Nexus/web/app/assets/FilesPage-CjAp61DN.js
T
Your Name 51948469c2 build(frontend): track Vite output in Git for Gitea deploy
- Stop ignoring web/app/index.html and web/app/assets/
- Bundle index-DBKIQT7H.js from current vite build (~101MB assets)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 00:52:44 +08:00

2 lines
44 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FileEditorWorkbench-CQiSFZ37.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/editor.api2-CLbMfXfG.js","assets/editor-DX2BVZF3.css","assets/index-CLP_8MkA.js","assets/index-DaxX5I1U.css","assets/workers-DM14Vrt9.js","assets/monaco.contribution-DVWnYi2S.js","assets/VSelect-K7zT5_Sc.js","assets/VChip-ZBy9KJMb.js","assets/VChip-DNKJRTa0.css","assets/VSelectionControl-DxdrCoof.js","assets/VSelectionControl-CH0_Bcm2.css","assets/VSelect-ALpjlDrA.css","assets/VDialog-Bgu3g9fi.js","assets/VDialog-DP-kc9Gx.css","assets/VSpacer-TWbwUGqH.js","assets/VSpacer-DfbUir7X.css","assets/VTabs-DKuqyvZU.js","assets/VTabs-DjRHpLZ2.css","assets/useSnackbar-D7YOfKok.js","assets/remotePath-BY9H9-d2.js","assets/FileEditorWorkbench-Dy_4PwXT.css"])))=>i.map(i=>d[i]);
import{t as e}from"./VDataTable-W40xVt2R.js";import{$n as t,$t as n,A as r,Ar as i,B as a,Ct as o,Dr as s,F as c,Hn as l,Jn as u,Kn as d,L as f,Lt as p,M as m,Mn as h,N as g,Nn as ee,Nt as te,P as _,Qn as v,Qt as ne,Rt as re,S as ie,St as ae,T as oe,Tt as se,Un as y,V as ce,Wn as le,Xn as ue,Xt as de,Y as fe,Yn as b,_r as x,an as S,ar as pe,b as me,bt as C,cn as w,cr as he,er as ge,fr as T,hr as _e,ir as ve,j as ye,jr as E,jt as be,k as D,kr as xe,ln as O,mr as Se,on as Ce,or as we,ot as Te,q as Ee,qn as k,st as De,t as A,tr as j,ur as M,v as Oe,wr as N,wt as P,x as ke,xr as F,xt as Ae,y as je,yt as Me,zt as Ne}from"./index-CLP_8MkA.js";import{t as Pe}from"./fileBrowse-D87Kx7nu.js";import{a as Fe,i as I,n as Ie,o as Le,r as L,t as Re}from"./remotePath-BY9H9-d2.js";import{a as ze}from"./VSelectionControl-DxdrCoof.js";import{n as Be,t as Ve}from"./VRow-CafAcyFd.js";import{t as R}from"./VSpacer-TWbwUGqH.js";import{t as He}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ue}from"./useSnackbar-D7YOfKok.js";import{t as We}from"./VChip-ZBy9KJMb.js";import{t as z}from"./VDialog-Bgu3g9fi.js";import{t as Ge}from"./VSelect-K7zT5_Sc.js";import{t as Ke}from"./VCheckbox-D8aV8YQU.js";import{t as qe}from"./useServerList-FfZA-6CT.js";import{a as Je}from"./validation-Yxuom3Du.js";import{t as Ye}from"./VAlert-CmluNEmL.js";import{t as Xe}from"./VFileInput-BILxQDE5.js";function Ze(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||e.isContentEditable}function Qe(e,t){function n(n){if(!Ze(n.target)){if(n.key===`F5`){n.preventDefault(),e.refresh();return}if(n.key===`Backspace`){n.preventDefault(),e.goUp();return}if(n.key===`F2`&&t.value.length===1){n.preventDefault(),e.renameSelection();return}if(n.key===`Delete`&&t.value.length>0&&(n.preventDefault(),e.deleteSelection()),(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()===`a`){n.preventDefault(),e.selectAll();return}if((n.ctrlKey||n.metaKey)&&n.key.toLowerCase()===`c`){n.preventDefault(),e.copySelection();return}if((n.ctrlKey||n.metaKey)&&n.key.toLowerCase()===`x`){n.preventDefault(),e.cutSelection();return}(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()===`v`&&(n.preventDefault(),e.pasteClipboard())}}he(()=>window.addEventListener(`keydown`,n)),we(()=>window.removeEventListener(`keydown`,n))}var B=F(null);function $e(){let e=d(()=>B.value!==null),t=d(()=>B.value?`${B.value.mode===`cut`?`已剪切`:`已复制`} ${B.value.paths.length} 项`:``);function n(e,t,n){if(!n.length)return!1;let r=[...new Set(n.map(e=>I(e)))];return B.value={mode:e,serverId:t,paths:r,label:r.map(e=>e.split(`/`).pop()||e).join(`, `)},!0}function r(){B.value=null}function i(e){return!!(B.value&&e&&B.value.serverId===e)}function a(e,t){let n=I(t);for(let t of e){let e=I(t);if(n===e)return`「${e.split(`/`).pop()||e}」与目标路径相同,无需粘贴`;if(n.startsWith(`${e}/`))return`不能粘贴到源目录「${e}」的内部`}return null}async function o(e){let t=B.value;if(!t)throw Error(`剪贴板为空`);let n=I(e),i=a(t.paths,n);if(i)throw Error(i);let o=t.mode===`cut`?`move`:`copy`;await p.post(`/sync/file-clipboard`,{server_id:t.serverId,mode:o,sources:t.paths,dest_dir:n}),t.mode===`cut`&&r()}return{clipboard:B,hasClipboard:e,clipboardSummary:t,setFromSelection:n,clear:r,canPasteOnServer:i,validatePasteTarget:a,pasteToDirectory:o}}var V={directory:0,symlink:1,file:2};function et(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{let i=V[e.type]??9,a=V[n.type]??9;if(i!==a)return i-a;let o=0;return o=t===`name`?e.name.localeCompare(n.name):t===`size`?(e.size??0)-(n.size??0):(e.modified??``).localeCompare(n.modified??``),o*r})}var tt=[{title:`全部`,value:``},{title:`.conf / .ini`,value:`conf,ini`},{title:`.log`,value:`log`},{title:`.sh`,value:`sh`},{title:`.py`,value:`py`},{title:`.json`,value:`json`},{title:`.yml / .yaml`,value:`yml,yaml`},{title:`.txt`,value:`txt`},{title:`.php`,value:`php`},{title:`.js / .ts`,value:`js,ts`}];function nt(e,t){if(!t)return!0;let n=e.toLowerCase();return t.split(`,`).some(e=>n.endsWith(`.${e.trim()}`))}function rt(e){let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)||t.endsWith(`.zip`)}function it(e){if(e.type===`symlink`)return`—`;let t=(e.owner??``).trim(),n=(e.group??``).trim();return t?!n||n===t?t:`${t}:${n}`:`—`}function at(e){if(e===`root`)return`warning`}function ot(e){let t=[];e.permissions&&t.push(e.permissions),e.mode_octal&&t.push(e.mode_octal);let n=(e.owner??``).trim(),r=(e.group??``).trim();return n&&t.push(r&&r!==n?`${n}:${r}`:n),t.join(` · `)||`—`}var H=[{label:`文件 644`,mode:`644`,for:`file`},{label:`目录 755`,mode:`755`,for:`directory`},{label:`私密 600`,mode:`600`,for:`file`},{label:`协作 775`,mode:`775`,for:`directory`},{label:`可执行 755`,mode:`755`,for:`file`}],st=`docs/deploy/nexus-files-sudoers.example`;function ct(e){let t=e.toLowerCase();return t.includes(`permission denied`)||t.includes(`operation not permitted`)||t.includes(`无法访问`)||t.includes(`无权限`)||t.includes(`无写入权限`)||t.includes(`读取失败`)||t.includes(`chmod 失败`)}function lt(e,t){if(!t||t===`root`||e.type!==`file`)return!1;let n=e.permissions??``;if(n.length<10)return!1;let r=(e.owner??``).trim(),i=(e.group??``).trim(),a=n.slice(1,4),o=n.slice(4,7),s=n.slice(7,10);return r===t?!a.includes(`r`):(i&&i===t||!s.includes(`r`))&&!o.includes(`r`)}function ut(e){let t=[];e.lastReadDeniedPath&&t.push(`无法读取「${e.lastReadDeniedPath}」:当前 SSH 用户可能无读权限。`);let n=e.unreadableCount??0;return n>0&&e.sshUser&&t.push(`当前目录约 ${n} 个文件对 SSH 用户「${e.sshUser}」可能不可读(根据 ls 权限推断)。`),!e.isRootSsh&&!e.canSudo?t.push(`写权限、chmod、读取 root 属主文件等可能失败。请在目标机配置免密 sudo,或改用 root SSH。`):!e.isRootSsh&&e.canSudo&&t.push(`部分操作将自动尝试 sudo -n(需白名单含 chmod/chown/cat 等)。`),t.length?{type:!e.isRootSsh&&!e.canSudo?`error`:`warning`,text:`${t.join(` `)} 示例:${st}`}:null}var dt={key:0,class:`text-body-2 mb-3 text-medium-emphasis`},ft={key:1,class:`text-caption mb-4`},pt={class:`d-flex flex-wrap ga-2 mb-4`},mt={class:`d-flex align-center flex-wrap ga-2 mb-2`},U={class:`text-body-2`},ht={key:0,class:`text-caption mt-1`},gt={class:`text-caption text-medium-emphasis mb-0`},_t=j({__name:`FilePermissionDialog`,props:{modelValue:{type:Boolean},file:{},serverId:{},loading:{type:Boolean}},emits:[`update:modelValue`,`apply`],setup(e,{emit:n}){let r=e,i=n,a=F(``),o=F(``),s=F(``),h=F(null),ee=F(!1),te=F(!1),ne=d(()=>r.file?.type===`directory`),re=d(()=>h.value?.docs_path??`docs/deploy/nexus-files-sudoers.example`),ie=d(()=>r.file?.name??``),ae=d(()=>r.file?ot(r.file):``),oe=d(()=>{let e=r.file?.type===`directory`?`directory`:`file`;return H.filter(t=>t.for===e||t.for===`file`)}),se=d(()=>h.value?h.value.is_root||h.value.can_sudo_nopasswd&&h.value.whitelist_ok?`success`:h.value.can_sudo_nopasswd?`warning`:`error`:`info`);_e(()=>[r.modelValue,r.file],([e,t])=>{!e||!t||(a.value=t.mode_octal||``,o.value=t.owner||``,s.value=t.group&&t.group!==t.owner?t.group:``,te.value=!1,h.value=null,r.serverId&&ce())});function y(e){return e===`off`?`关闭提权`:e===`always_sudo`?`始终 sudo`:`自动 sudo`}async function ce(){if(r.serverId){ee.value=!0;try{h.value=await p.get(`/servers/${r.serverId}/files-capability`)}catch(e){h.value={ssh_user:``,is_root:!1,files_elevation:`auto_sudo`,can_sudo_nopasswd:!1,whitelist_ok:!1,message:e instanceof Error?e.message:`检测失败`,docs_path:`docs/deploy/nexus-files-sudoers.example`}}finally{ee.value=!1}}}function de(e){return t=>!!String(t||``).trim()||`${e}不能为空`}function fe(e){return/^[0-7]{3,4}$/.test(String(e||``).trim())||`格式: 34 位八进制`}let S=/^[a-zA-Z0-9_.-]+$/;function pe(e){let t=String(e||``).trim();return t?S.test(t)||`仅允许字母、数字、._-`:!0}function me(e){let t=String(e||``).trim();return t?o.value.trim()?S.test(t)||`仅允许字母、数字、._-`:`请先填写属主`:!0}function C(e){a.value=e}function w(){let e=a.value.trim();if(!/^[0-7]{3,4}$/.test(e))return;let t=o.value.trim(),n=s.value.trim(),c=ne.value&&te.value;if(c){let t=r.file?.name??`该目录`;if(!window.confirm(`确认对目录「${t}」及其全部子项递归应用权限 ${e}?此操作影响范围大且不可自动撤销。`))return}i(`apply`,{mode:e,owner:t||void 0,group:n||void 0,recursive:c||void 0})}return(n,r)=>(M(),u(z,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":r[5]||=e=>i(`update:modelValue`,e)},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...r[6]||=[v(`修改权限`,-1)]]),_:1}),t(g,null,{default:x(()=>[ie.value?(M(),ue(`p`,dt,E(ie.value),1)):b(``,!0),ae.value?(M(),ue(`p`,ft,` 当前:`+E(ae.value),1)):b(``,!0),k(`div`,pt,[(M(!0),ue(le,null,T(oe.value,e=>(M(),u(We,{key:e.mode+e.label,size:`small`,variant:`tonal`,color:`primary`,onClick:t=>C(e.mode)},{default:x(()=>[v(E(e.label),1)]),_:2},1032,[`onClick`]))),128))]),t(A,{modelValue:a.value,"onUpdate:modelValue":r[0]||=e=>a.value=e,label:`八进制权限`,variant:`outlined`,density:`compact`,placeholder:`644 / 755`,rules:[de(`权限`),fe],class:`mb-2`,onKeydown:l(w,[`enter`])},null,8,[`modelValue`,`rules`]),t(A,{modelValue:o.value,"onUpdate:modelValue":r[1]||=e=>o.value=e,label:`属主(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[pe],class:`mb-2`},null,8,[`modelValue`,`rules`]),t(A,{modelValue:s.value,"onUpdate:modelValue":r[2]||=e=>s.value=e,label:`属组(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[me],class:`mb-2`},null,8,[`modelValue`,`rules`]),ne.value?(M(),u(Ke,{key:2,modelValue:te.value,"onUpdate:modelValue":r[3]||=e=>te.value=e,label:`同时修改子项(递归 chmod/chown`,density:`compact`,"hide-details":``,color:`warning`,class:`mb-2`},null,8,[`modelValue`])):b(``,!0),t(ye,{class:`my-4`}),k(`div`,mt,[r[8]||=k(`span`,{class:`text-caption text-medium-emphasis`},`提权能力`,-1),t(f,{size:`small`,variant:`tonal`,loading:ee.value,disabled:!e.serverId,onClick:ce},{default:x(()=>[...r[7]||=[v(` 检测提权能力 `,-1)]]),_:1},8,[`loading`,`disabled`])]),h.value?(M(),u(Ye,{key:3,type:se.value,variant:`tonal`,density:`compact`,class:`mb-2`},{default:x(()=>[k(`div`,U,E(h.value.message),1),h.value.ssh_user?(M(),ue(`div`,ht,` SSH 用户:`+E(h.value.ssh_user)+` · 策略:`+E(y(h.value.files_elevation)),1)):b(``,!0)]),_:1},8,[`type`])):b(``,!0),k(`p`,gt,[r[9]||=v(` 非 root 用户写/chmod 失败时将按服务器策略尝试 `,-1),r[10]||=k(`code`,null,`sudo -n`,-1),r[11]||=v(`。 示例配置见仓库 `,-1),k(`code`,null,E(re.value),1),r[12]||=v(`(由运维审阅后安装到目标机)。 `,-1)])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:r[4]||=e=>i(`update:modelValue`,!1)},{default:x(()=>[...r[13]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,loading:e.loading,onClick:w},{default:x(()=>[...r[14]||=[v(`应用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}});function vt(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}var yt=300*1024,bt=40,W=4,G=new Map;function K(e,t){return`${e}:${I(t)}`}function q(e){let t=I(e),n=t.lastIndexOf(`/`);return n<=0?`/`:t.slice(0,n)||`/`}function xt(){G.clear()}function St(e,t){let n=I(t);for(let t of[...G.keys()]){if(!t.startsWith(`${e}:`)){G.delete(t);continue}q(t.slice(`${e}:`.length))!==n&&G.delete(t)}}function Ct(e,t){G.delete(K(e,t))}function wt(e){if(e.type!==`file`)return!1;let t=e.size??0;return t>0&&t<=307200}function Tt(e){return e!=null&&e>0&&e>307200}function Et(e){return typeof e==`string`?e:e.content??JSON.stringify(e,null,2)}async function Dt(e,t,n=yt){let r=K(e,t),i=G.get(r);if(i!==void 0)return i;let a=Et(await p.post(`/sync/read-file`,{server_id:e,path:I(t),max_size:n}));return G.set(r,a),a}function Ot(e,t,n){let r=n.filter(wt).sort((e,t)=>(e.size??0)-(t.size??0)).slice(0,bt);if(!r.length)return;let i=0,a=async()=>{for(;i<r.length;){let n=r[i++],a=L(t,n.name),o=K(e,a);if(!G.has(o))try{await Dt(e,a)}catch{}}},o=Math.min(W,r.length);Promise.all(Array.from({length:o},()=>a()))}var kt=O({divider:[Number,String],...w()},`VBreadcrumbsDivider`),J=S()({name:`VBreadcrumbsDivider`,props:kt(),setup(e,{slots:t}){return n(()=>k(`li`,{"aria-hidden":`true`,class:xe([`v-breadcrumbs-divider`,e.class]),style:i(e.style)},[t?.default?.()??e.divider])),{}}}),At=O({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...w(),...ee(o(),[`width`,`maxWidth`]),...a(),...be({tag:`li`})},`VBreadcrumbsItem`),jt=S()({name:`VBreadcrumbsItem`,props:At(),setup(e,{slots:r,attrs:a}){let o=ce(e,a),s=d(()=>e.active||o.isActive?.value),{dimensionStyles:c}=P(e),{textColorClasses:l,textColorStyles:u}=ae(()=>s.value?e.activeColor:e.color);return n(()=>t(e.tag,{class:xe([`v-breadcrumbs-item`,{"v-breadcrumbs-item--active":s.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:s.value&&e.activeClass},l.value,e.class]),style:i([u.value,c.value,e.style]),"aria-current":s.value?`page`:void 0},{default:()=>[o.isLink.value?k(`a`,ve({class:`v-breadcrumbs-item--link`,onClick:o.navigate.value},o.linkProps),[r.default?.()??e.title]):r.default?.()??e.title]})),{}}}),Mt=O({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:ne,items:{type:Array,default:()=>[]},...w(),...Te(),...Me(),...be({tag:`ul`})},`VBreadcrumbs`),Nt=S()({name:`VBreadcrumbs`,props:Mt(),setup(e,{slots:r}){let{backgroundColorClasses:a,backgroundColorStyles:o}=Ae(()=>e.bgColor),{densityClasses:s}=De(e),{roundedClasses:c}=C(e);Ce({VBreadcrumbsDivider:{divider:N(()=>e.divider)},VBreadcrumbsItem:{activeClass:N(()=>e.activeClass),activeColor:N(()=>e.activeColor),color:N(()=>e.color),disabled:N(()=>e.disabled)}});let l=d(()=>e.items.map(e=>typeof e==`string`?{item:{title:e},raw:e}:{item:e,raw:e}));return n(()=>{let n=!!(r.prepend||e.icon);return t(e.tag,{class:xe([`v-breadcrumbs`,a.value,s.value,c.value,e.class]),style:i([o.value,e.style])},{default:()=>[n&&k(`li`,{key:`prepend`,class:`v-breadcrumbs__prepend`},[r.prepend?t(se,{key:`prepend-defaults`,disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},r.prepend):t(fe,{key:`prepend-icon`,start:!0,icon:e.icon},null)]),l.value.map(({item:e,raw:n},i,a)=>k(le,null,[r.item?.({item:e,index:i})??t(jt,ve({key:i,disabled:i>=a.length-1},typeof e==`string`?{title:e}:e),{default:r.title?()=>r.title?.({item:e,index:i}):void 0}),i<a.length-1&&t(J,null,{default:r.divider?()=>r.divider?.({item:n,index:i}):void 0})])),r.default?.()]})}),{}}}),Pt=O({id:String,interactive:Boolean,text:String,...h(ke({closeOnBack:!1,location:`end`,locationStrategy:`connected`,eager:!0,minWidth:0,offset:10,openOnClick:!1,openOnHover:!0,origin:`auto`,scrim:!1,scrollStrategy:`reposition`,transition:null}),[`absolute`,`retainFocus`,`captureFocus`,`disableInitialFocus`])},`VTooltip`),Ft=S()({name:`VTooltip`,props:Pt(),emits:{"update:modelValue":e=>!0},setup(e,{slots:r}){let i=de(e,`modelValue`),{scopeId:a}=ie(),o=Se(),s=N(()=>e.id||`v-tooltip-${o}`),c=F(),l=d(()=>e.location.split(` `).length>1?e.location:e.location+` center`),u=d(()=>e.origin===`auto`||e.origin===`overlap`||e.origin.split(` `).length>1||e.location.split(` `).length>1?e.origin:e.origin+` center`),f=N(()=>e.transition==null?i.value?`scale-transition`:`fade-transition`:e.transition),p=d(()=>ve({"aria-describedby":s.value},e.activatorProps));return n(()=>{let n=me.filterProps(e);return t(me,ve({ref:c,class:[`v-tooltip`,{"v-tooltip--interactive":e.interactive},e.class],style:e.style,id:s.value},n,{modelValue:i.value,"onUpdate:modelValue":e=>i.value=e,transition:f.value,absolute:!0,location:l.value,origin:u.value,role:`tooltip`,activatorProps:p.value,_disableGlobalStack:!0},a),{activator:r.activator,default:(...t)=>r.default?.(...t)??e.text})}),je({},c)}}),It={class:`text-caption text-medium-emphasis mb-2 d-flex flex-wrap align-center ga-2`},Lt={class:`text-body-2 mr-4`},Rt={class:`d-flex align-center ga-2 min-w-0`},zt={class:`min-w-0`},Bt={key:0,class:`text-caption text-medium-emphasis text-truncate`},Vt={class:`text-medium-emphasis`},Ht={class:`text-medium-emphasis`},Ut={class:`d-flex ga-1`},Wt={class:`text-center text-medium-emphasis py-8`},Gt={class:`text-body-2 mb-3`},Kt={class:`text-body-2 mb-2 text-truncate`},qt={class:`text-truncate`},Jt={key:1,class:`files-preview-body text-body-2`},Yt=He(j({__name:`FilesPage`,setup(n){let i=ge(()=>te(()=>import(`./FileEditorWorkbench-CQiSFZ37.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]))),a=Ue(),{servers:o,loadServers:h}=qe(),{hasClipboard:ee,clipboardSummary:ne,setFromSelection:ie,canPasteOnServer:ae,pasteToDirectory:se}=$e(),ce=d(()=>ae(C.value));function le(e){if(e)return I(e);let t=X.value.filter(e=>e.type===`directory`);return t.length===1&&X.value.length===1?L(w.value,t[0].name):I(w.value)}let de=d(()=>{let e=le();return e===I(w.value)?`当前目录`:e}),S=re(),me=Ne(),C=F(null),w=F(Re),T=F([]),be=F(!1),O=F(``),Se=F(``),Ce=F(``),we=F(`name`),Te=[{title:`名称`,value:`name`},{title:`大小`,value:`size`},{title:`修改时间`,value:`modified`}],De=F(!1),j=F(null),N=F(null),P=F(!1),ke=d(()=>j.value?.ssh_user??null),Ae=d(()=>{let e=ke.value;return e?T.value.filter(t=>lt(t,e)).length:0}),je=d(()=>{if(P.value||!C.value)return null;let e=j.value;return ut({sshUser:e?.ssh_user,canSudo:e?.can_sudo_nopasswd??!1,isRootSsh:e?.is_root??!1,lastReadDeniedPath:N.value,unreadableCount:Ae.value})}),Me=F(!1),He=F(``),Ke=F(``),Ze=F(!1),B=F(!1),V=F(!1),H=F(``),st=F(!1),dt=F(!1),ft=F(``),pt=F(`tar.gz`),mt=F([]),U=F(!1),ht=F(``),gt=F(`.`),bt=F(!1),W=F([]),G=F(!1),K=F(``),q=F(!1),Et=F(null),kt=F(!1),J=F(``),At=F(null),Mt=F(!1),Pt=F(!1),Yt=F(null),Xt=F(!1),Zt=F(0),Qt=F(0),Y=F(null),X=F([]),$t=d(()=>X.value.length),en=F(null),tn=[{title:`名称`,key:`name`},{title:`归属`,key:`owner`,width:110,sortable:!1},{title:`大小`,key:`size`,width:120},{title:`修改时间`,key:`modified`,width:180},{title:`操作`,key:`actions`,width:200,align:`end`}],nn=d(()=>Ie(w.value)),rn=d(()=>Fe(w.value)!==null),an=d(()=>{let e=et(T.value,we.value,`asc`),t=Ce.value;t&&(e=e.filter(e=>nt(e.name,t)));let n=Se.value.trim().toLowerCase();return n&&(e=e.filter(e=>e.name.toLowerCase().includes(n))),e});function on(e){return rt(e)}let sn=d(()=>{let e=T.value.filter(e=>e.type===`directory`).length,t=T.value.filter(e=>e.type===`file`).length,n=T.value.filter(e=>e.type===`symlink`).length,r=T.value.filter(wt).length,i=[`${e} 个目录`,`${t} 个文件`];return n&&i.push(`${n} 个链接`),r&&i.push(`${r} 个 ≤300KB 可预加载`),`${i.join(``)} · ${w.value}`}),cn=d(()=>C.value?Se.value.trim()?`无匹配文件`:`暂无文件`:`请先选择服务器`);function ln(e){return e.type===`directory`?`mdi-folder`:e.type===`symlink`?`mdi-link-variant`:`mdi-file-outline`}function un(e){return e.type===`directory`?`amber`:e.type===`symlink`?`teal`:`blue`}function Z(e){return e.type===`file`}function dn(){let e={...S.query};C.value?(e.server_id=String(C.value),e.path=w.value===`/www/wwwroot`?void 0:w.value):(delete e.server_id,delete e.path),me.replace({query:e})}function fn(e){if(e.type===`directory`){pn(L(w.value,e.name));return}if(e.type===`symlink`){let t=e.link_target?.trim();t?.startsWith(`/`)?pn(t):a(t?`符号链接 → ${t}`:`相对符号链接(请在终端中打开)`,`info`)}}function pn(e){if(!C.value){a(`请先选择服务器`,`warning`);return}w.value=I(e),X.value=[],Q()}function mn(){if(!C.value){a(`请先选择服务器`,`warning`);return}w.value=I(w.value),Q()}function hn(){let e=Fe(w.value);e!=null&&pn(e)}function gn(e){let t=nn.value[e];t&&!t.disabled&&pn(t.path)}function _n(){C.value&&me.push({path:`/terminal`,query:{server_id:String(C.value),path:w.value||`/`}})}async function Q(){if(!C.value)return;be.value=!0;let e=I(w.value);w.value=e;try{let{items:t,error:n}=Pe(await p.post(`/sync/browse`,{server_id:C.value,path:e}));O.value=n||``,n&&a(n,`warning`),T.value=t,C.value&&t.length&&(St(C.value,e),Ot(C.value,e,t))}catch{T.value=[],a(`浏览目录失败`,`error`)}finally{be.value=!1,dn()}}async function vn(){if(!C.value){j.value=null;return}try{j.value=await p.get(`/servers/${C.value}/files-capability`)}catch{j.value=null}}function yn(){xt(),w.value=Re,Se.value=``,X.value=[],N.value=null,P.value=!1,vn(),Q()}function bn(e){C.value&&e&&Ct(C.value,e),Q()}function xn(e,t){return Tt(e.size)?(a(`文件超过 300KB${Jn(e.size)}),无法${t},请下载或使用终端`,`warning`),!0):!1}function Sn(e,{item:t}){(t.type===`directory`||t.type===`symlink`)&&fn(t)}function Cn(e,{item:t}){Z(t)&&Hn(t)}async function wn(e){if(De.value=!1,!C.value){a(`请先选择服务器`,`warning`);return}let t=e.dataTransfer?.files;t?.length&&(W.value=Array.from(t),await qn())}function Tn(e,{item:t}){e.preventDefault(),Y.value=t,Zt.value=e.clientX,Qt.value=e.clientY,Xt.value=!0}function En(e){return(e?.length?e:X.value).map(e=>L(w.value,e.name))}function Dn(e){if(!C.value)return;let t=En(e);if(!t.length){a(`请先选择文件或目录`,`warning`);return}ie(`copy`,C.value,t)&&a(`已复制 ${t.length} 项`)}function On(e){if(!C.value)return;let t=En(e);if(!t.length){a(`请先选择文件或目录`,`warning`);return}ie(`cut`,C.value,t)&&a(`已剪切 ${t.length} 项`)}async function kn(e){if(!C.value){a(`请先选择服务器`,`warning`);return}if(!ae(C.value)){a(`剪贴板为空或服务器不一致`,`warning`);return}let t=le(e);q.value=!0;try{await se(t),X.value=[],xt(),await Q(),a(`已粘贴到 ${t}`)}catch(e){a(e instanceof Error?e.message:`粘贴失败`,`error`)}finally{q.value=!1}}function $(e){if(Xt.value=!1,!Y.value)return;let t=Y.value;switch(e){case`open`:fn(t);break;case`copy`:Dn([t]);break;case`cut`:On([t]);break;case`paste`:kn();break;case`pasteInto`:t.type===`directory`&&kn(L(w.value,t.name));break;case`edit`:Hn(t);break;case`preview`:Vn(t);break;case`download`:Un(t);break;case`copyPath`:An(t);break;case`terminal`:_n();break;case`compress`:jn([t]);break;case`decompress`:Mn(t);break;case`rename`:In(t);break;case`chmod`:Rn(t);break;case`delete`:Wn(t);break}}async function An(e){let t=L(w.value,e.name);try{await navigator.clipboard.writeText(t),a(`路径已复制`)}catch{a(`复制失败`,`error`)}}function jn(e){if(!C.value)return;let t=e?.length?e:X.value.length?X.value:[];if(!t.length){a(`请选择要压缩的文件或目录`,`warning`);return}mt.value=t.map(e=>L(w.value,e.name));let n=t.length===1?t[0].name.replace(/\.[^.]+$/,``):`archive`;ft.value=L(w.value,`${n}.tar.gz`),pt.value=`tar.gz`,dt.value=!0}function Mn(e){if(C.value){if(!rt(e.name)){a(`仅支持 .tar.gz / .tgz / .zip`,`warning`);return}ht.value=L(w.value,e.name),gt.value=w.value,U.value=!0}}async function Nn(){if(!(!C.value||!mt.value.length||!ft.value)){q.value=!0;try{let e=ft.value;pt.value===`zip`&&!e.endsWith(`.zip`)&&(e=e.replace(/\.tar\.gz$/i,`.zip`),e.endsWith(`.zip`)||(e+=`.zip`)),await p.post(`/sync/compress`,{server_id:C.value,paths:mt.value,dest:e,format:pt.value}),dt.value=!1,X.value=[],Q(),a(`压缩完成`)}catch(e){a(e instanceof Error?e.message:`压缩失败`,`error`)}finally{q.value=!1}}}async function Pn(){if(!(!C.value||!ht.value)){q.value=!0;try{await p.post(`/sync/decompress`,{server_id:C.value,path:ht.value,dest:gt.value||`.`}),U.value=!1,Q(),a(`解压完成`)}catch(e){a(e instanceof Error?e.message:`解压失败`,`error`)}finally{q.value=!1}}}async function Fn(){if(!C.value||!H.value)return;let e=Le(H.value);if(e!==!0){a(e,`warning`);return}let t=H.value,n=L(w.value,t);q.value=!0;try{await p.post(`/sync/write-file`,{server_id:C.value,path:n,content:``}),V.value=!1,H.value=``,Ct(C.value,n),await Q(),a(`文件已创建`),await pe(),en.value?.openFile({path:n,name:t,content:``})}catch(e){a(e instanceof Error?e.message:`创建失败`,`error`)}finally{q.value=!1}}function In(e){At.value=e,J.value=e.name,kt.value=!0}async function Ln(){if(!(!C.value||!At.value||!J.value))try{await p.post(`/sync/file-ops`,{server_id:C.value,operation:`rename`,path:L(w.value,At.value.name),new_path:L(w.value,J.value)}),kt.value=!1,Q(),a(`重命名成功`)}catch(e){a(e instanceof Error?e.message:`重命名失败`,`error`)}}function Rn(e){Yt.value=e,Mt.value=!0}async function zn(e){if(!(!C.value||!Yt.value)){Pt.value=!0;try{await p.post(`/sync/chmod`,{server_id:C.value,path:L(w.value,Yt.value.name),mode:e.mode,owner:e.owner,group:e.group,recursive:e.recursive??!1}),Mt.value=!1,Q(),a(`权限已修改`)}catch(e){a(e instanceof Error?e.message:`修改权限失败`,`error`)}finally{Pt.value=!1}}}async function Bn(){if(!C.value||!X.value.length||!confirm(`确定删除 ${X.value.length} 个文件?`))return;let e=0,t=0;for(let n of X.value)try{await p.post(`/sync/file-ops`,{server_id:C.value,operation:`delete`,path:L(w.value,n.name)}),e++}catch{t++}X.value=[],Q(),t===0?a(`已删除 ${e} 项`):a(`删除完成:成功 ${e},失败 ${t}`,t>0?`warning`:`success`)}async function Vn(e){if(!C.value||xn(e,`查看`))return;let t=L(w.value,e.name);He.value=e.name,Ke.value=``,Ze.value=!0,Me.value=!0;try{Ke.value=await Dt(C.value,t,307200)||`(空文件)`}catch(t){let n=t instanceof Error?t.message:`读取失败`;Ke.value=n,ct(n)&&(N.value=e.name,P.value=!1),a(n,`error`)}finally{Ze.value=!1}}async function Hn(e){if(C.value&&!xn(e,`编辑`)){q.value=!0;try{let t=L(w.value,e.name),n=await Dt(C.value,t,yt);await pe(),en.value?.openFile({path:t,name:e.name,content:n})}catch(t){let n=t instanceof Error?t.message:`读取失败`;ct(n)&&(N.value=e.name,P.value=!1),a(n,`error`)}finally{q.value=!1}}}async function Un(e){if(C.value)try{let t=L(w.value,e.name),{blob:n,filename:r}=await p.download(`/sync/download`,{server_id:C.value,path:t});vt(n,r),a(`已下载 ${r}`)}catch(e){a(e instanceof Error?e.message:`下载失败`,`error`)}}async function Wn(e){Et.value=e,bt.value=!0}async function Gn(){if(!(!C.value||!Et.value)){q.value=!0;try{await p.post(`/sync/file-ops`,{server_id:C.value,operation:`delete`,path:L(w.value,Et.value.name)}),bt.value=!1,Q(),a(`已删除`)}catch(e){a(e.message||`删除失败`,`error`)}finally{q.value=!1}}}async function Kn(){if(!C.value||!K.value)return;let e=Le(K.value);if(e!==!0){a(e,`warning`);return}q.value=!0;try{await p.post(`/sync/file-ops`,{server_id:C.value,operation:`mkdir`,path:L(w.value,K.value)}),st.value=!1,K.value=``,Q(),a(`目录已创建`)}catch(e){a(e.message||`创建失败`,`error`)}finally{q.value=!1}}async function qn(){if(!(!C.value||!W.value.length)){G.value=!0;try{let e=new FormData;for(let t of W.value)e.append(`files`,t);e.append(`server_id`,String(C.value)),e.append(`remote_path`,w.value),await p.upload(`/sync/upload`,e),B.value=!1,W.value=[],Q(),a(`上传成功`)}catch(e){a(e.message||`上传失败`,`error`)}finally{G.value=!1}}}function Jn(e){return e?e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/1024/1024).toFixed(1)+` MB`:`—`}return he(async()=>{await h();let e=S.query.server_id,t=S.query.path;e&&(C.value=Number(e),typeof t==`string`&&t&&(w.value=I(t)),await vn(),Q())}),_e(()=>S.query.server_id,e=>{if(e&&Number(e)!==C.value){C.value=Number(e);let t=S.query.path;w.value=typeof t==`string`&&t?I(t):Re,N.value=null,P.value=!1,vn(),Q()}}),Qe({refresh:mn,goUp:hn,renameSelection:()=>{X.value.length===1&&In(X.value[0])},deleteSelection:()=>{X.value.length>0&&Bn()},selectAll:()=>{X.value=[...an.value]},copySelection:()=>Dn(),cutSelection:()=>On(),pasteClipboard:()=>{kn()}},X),(n,a)=>(M(),u(ze,{fluid:``,class:`pa-6`},{default:x(()=>[t(m,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:x(()=>[t(Ve,{align:`center`,dense:``},{default:x(()=>[t(Be,{cols:`12`,sm:`4`},{default:x(()=>[t(Ge,{modelValue:C.value,"onUpdate:modelValue":[a[0]||=e=>C.value=e,yn],items:s(o),"item-title":`name`,"item-value":`id`,label:`选择服务器`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-server`},null,8,[`modelValue`,`items`])]),_:1}),t(Be,{cols:`12`,sm:`4`},{default:x(()=>[t(A,{modelValue:w.value,"onUpdate:modelValue":a[1]||=e=>w.value=e,label:`路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,"append-inner-icon":`mdi-arrow-right`,"onClick:appendInner":mn,onKeydown:l(mn,[`enter`])},null,8,[`modelValue`])]),_:1}),t(Be,{cols:`12`,sm:`3`},{default:x(()=>[t(A,{modelValue:Se.value,"onUpdate:modelValue":a[2]||=e=>Se.value=e,label:`筛选文件名`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-magnify`,clearable:``,"hide-details":``},null,8,[`modelValue`])]),_:1}),t(Be,{cols:`12`,sm:`3`},{default:x(()=>[t(Ge,{modelValue:Ce.value,"onUpdate:modelValue":a[3]||=e=>Ce.value=e,items:s(tt),"item-title":`title`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),t(Be,{cols:`12`,sm:`2`},{default:x(()=>[t(Ge,{modelValue:we.value,"onUpdate:modelValue":a[4]||=e=>we.value=e,items:Te,"item-title":`title`,"item-value":`value`,label:`排序`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),t(Be,{cols:`12`,class:`d-flex ga-2 flex-wrap justify-end`},{default:x(()=>[t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-upload`,onClick:a[5]||=e=>B.value=!0},{default:x(()=>[...a[59]||=[v(`上传`,-1)]]),_:1}),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-file-plus`,disabled:!C.value,onClick:a[6]||=e=>V.value=!0},{default:x(()=>[...a[60]||=[v(`新建文件`,-1)]]),_:1},8,[`disabled`]),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-plus`,onClick:a[7]||=e=>st.value=!0},{default:x(()=>[...a[61]||=[v(`新建目录`,-1)]]),_:1}),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-zip-box`,disabled:!C.value||!$t.value,onClick:a[8]||=e=>jn()},{default:x(()=>[...a[62]||=[v(` 压缩 `,-1)]]),_:1},8,[`disabled`]),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-paste`,disabled:!ce.value,onClick:a[9]||=()=>kn()},{default:x(()=>[...a[63]||=[v(` 粘贴 `,-1)]]),_:1},8,[`disabled`]),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-arrow-up`,disabled:!rn.value,onClick:hn},{default:x(()=>[...a[64]||=[v(` 上级 `,-1)]]),_:1},8,[`disabled`]),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-refresh`,onClick:mn},{default:x(()=>[...a[65]||=[v(`刷新`,-1)]]),_:1}),t(f,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-console`,disabled:!C.value,onClick:_n},{default:x(()=>[...a[66]||=[v(` 终端 `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1}),je.value?(M(),u(Ye,{key:0,type:je.value.type,variant:`tonal`,closable:``,prominent:``,density:`comfortable`,class:`mb-4`,icon:`mdi-shield-lock-outline`,"onClick:close":a[10]||=e=>P.value=!0},{default:x(()=>[v(E(je.value.text),1)]),_:1},8,[`type`])):b(``,!0),k(`div`,It,[k(`span`,null,E(sn.value),1),O.value?(M(),u(We,{key:0,size:`x-small`,color:`warning`,variant:`tonal`},{default:x(()=>[v(E(O.value),1)]),_:1})):b(``,!0),s(ee)?(M(),u(We,{key:1,size:`x-small`,color:`info`,variant:`tonal`,class:`cursor-pointer`,onClick:a[11]||=()=>kn()},{default:x(()=>[v(E(s(ne))+` → `+E(de.value)+` · Ctrl+V 粘贴 `,1)]),_:1})):b(``,!0)]),t(Nt,{items:nn.value,class:`pa-0 mb-2`},{item:x(({item:e,index:n})=>[t(jt,{disabled:e.disabled,class:xe({"text-primary":!e.disabled,"cursor-pointer":!e.disabled}),onClick:e=>gn(n)},{default:x(()=>[v(E(e.title),1)]),_:2},1032,[`disabled`,`class`,`onClick`])]),divider:x(()=>[...a[67]||=[v(`/`,-1)]]),_:1},8,[`items`]),$t.value>0?(M(),u(m,{key:1,class:`mb-4`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:x(()=>[t(g,{class:`d-flex align-center py-2`},{default:x(()=>[k(`span`,Lt,`已选择 `+E($t.value)+` 个文件`,1),t(R),t(f,{size:`small`,variant:`text`,color:`error`,onClick:Bn},{default:x(()=>[...a[68]||=[v(`批量删除`,-1)]]),_:1}),t(f,{size:`small`,variant:`text`,onClick:a[12]||=e=>X.value=[]},{default:x(()=>[...a[69]||=[v(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):b(``,!0),t(m,{elevation:`0`,border:``,rounded:`lg`,class:xe({"files-drop-active":De.value}),onDragenter:a[14]||=y(e=>De.value=!0,[`prevent`]),onDragover:a[15]||=y(e=>De.value=!0,[`prevent`]),onDragleave:a[16]||=y(e=>De.value=!1,[`prevent`]),onDrop:y(wn,[`prevent`])},{default:x(()=>[t(e,{modelValue:X.value,"onUpdate:modelValue":a[13]||=e=>X.value=e,items:an.value,headers:tn,loading:be.value,"show-select":``,"return-object":``,hover:``,density:`comfortable`,"item-value":`name`,"onClick:row":Sn,"onDblclick:row":Cn,"onContextmenu:row":Tn},{"item.name":x(({item:e})=>[k(`div`,Rt,[t(fe,{color:un(e),size:`20`},{default:x(()=>[v(E(ln(e)),1)]),_:2},1032,[`color`]),s(lt)(e,ke.value)?(M(),u(fe,{key:0,size:`18`,color:`warning`,title:`当前 SSH 用户可能无法读取`},{default:x(()=>[...a[70]||=[v(` mdi-shield-lock `,-1)]]),_:1})):b(``,!0),k(`div`,zt,[k(`span`,{class:xe({"font-weight-medium":e.type===`directory`})},E(e.name),3),e.type===`symlink`&&e.link_target?(M(),ue(`div`,Bt,` → `+E(e.link_target),1)):b(``,!0)])])]),"item.owner":x(({item:e})=>[t(Ft,{text:s(ot)(e),location:`top`},{activator:x(({props:n})=>[t(We,ve(n,{size:`small`,variant:`tonal`,color:s(at)(e.owner||``),class:`text-none`}),{default:x(()=>[v(E(s(it)(e)),1)]),_:2},1040,[`color`])]),_:2},1032,[`text`])]),"item.size":x(({item:e})=>[k(`span`,Vt,E(e.type===`directory`?`—`:Jn(e.size)),1)]),"item.modified":x(({item:e})=>[k(`span`,Ht,E(e.modified||`—`),1)]),"item.actions":x(({item:e})=>[k(`div`,Ut,[Z(e)?(M(),u(f,{key:0,variant:`text`,size:`x-small`,density:`compact`,color:`primary`,onClick:y(t=>Hn(e),[`stop`])},{default:x(()=>[...a[71]||=[v(`编辑`,-1)]]),_:1},8,[`onClick`])):b(``,!0),Z(e)?(M(),u(f,{key:1,variant:`text`,size:`x-small`,density:`compact`,onClick:y(t=>Vn(e),[`stop`])},{default:x(()=>[...a[72]||=[v(`查看`,-1)]]),_:1},8,[`onClick`])):b(``,!0),Z(e)?(M(),u(f,{key:2,variant:`text`,size:`x-small`,density:`compact`,onClick:y(t=>Un(e),[`stop`])},{default:x(()=>[...a[73]||=[v(`下载`,-1)]]),_:1},8,[`onClick`])):b(``,!0),t(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:y(t=>Wn(e),[`stop`])},{default:x(()=>[...a[74]||=[v(`删除`,-1)]]),_:1},8,[`onClick`])])]),"no-data":x(()=>[k(`div`,Wt,[t(fe,{size:`40`,class:`mb-2`},{default:x(()=>[...a[75]||=[v(`mdi-folder-open-outline`,-1)]]),_:1}),k(`div`,null,E(cn.value),1),a[76]||=k(`div`,{class:`text-caption mt-2`},` 单击进入目录 · 编辑文件将打开浮动编辑器(含目录树)· 复制/剪切后可在其他目录或选中文件夹粘贴 `,-1)])]),_:1},8,[`modelValue`,`items`,`loading`])]),_:1},8,[`class`]),t(z,{modelValue:B.value,"onUpdate:modelValue":a[19]||=e=>B.value=e,"max-width":`500`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[77]||=[v(`上传文件`,-1)]]),_:1}),t(g,null,{default:x(()=>[t(Xe,{modelValue:W.value,"onUpdate:modelValue":a[17]||=e=>W.value=e,label:`选择文件`,variant:`outlined`,multiple:``,"show-size":``},null,8,[`modelValue`])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[18]||=e=>B.value=!1},{default:x(()=>[...a[78]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,onClick:qn,loading:G.value},{default:x(()=>[...a[79]||=[v(`上传`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(z,{modelValue:V.value,"onUpdate:modelValue":a[22]||=e=>V.value=e,"max-width":`400`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[80]||=[v(`新建文件`,-1)]]),_:1}),t(g,null,{default:x(()=>[t(A,{modelValue:H.value,"onUpdate:modelValue":a[20]||=e=>H.value=e,label:`文件名`,variant:`outlined`,density:`compact`,rules:[s(Le)],placeholder:`example.conf`,autofocus:``,onKeydown:l(Fn,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[21]||=e=>V.value=!1},{default:x(()=>[...a[81]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,loading:q.value,onClick:Fn},{default:x(()=>[...a[82]||=[v(`创建`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(z,{modelValue:st.value,"onUpdate:modelValue":a[25]||=e=>st.value=e,"max-width":`400`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[83]||=[v(`新建目录`,-1)]]),_:1}),t(g,null,{default:x(()=>[t(A,{modelValue:K.value,"onUpdate:modelValue":a[23]||=e=>K.value=e,label:`目录名`,variant:`outlined`,density:`compact`,rules:[s(Le)],onKeydown:l(Kn,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[24]||=e=>st.value=!1},{default:x(()=>[...a[84]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,onClick:Kn},{default:x(()=>[...a[85]||=[v(`创建`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(z,{modelValue:bt.value,"onUpdate:modelValue":a[27]||=e=>bt.value=e,"max-width":`400`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[86]||=[v(`确认删除`,-1)]]),_:1}),t(g,null,{default:x(()=>[a[87]||=v(`确定要删除 `,-1),k(`strong`,null,E(Et.value?.name),1),a[88]||=v(` 吗?`,-1)]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[26]||=e=>bt.value=!1},{default:x(()=>[...a[89]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`error`,variant:`flat`,onClick:Gn},{default:x(()=>[...a[90]||=[v(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(z,{modelValue:kt.value,"onUpdate:modelValue":a[30]||=e=>kt.value=e,"max-width":`400`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[91]||=[v(`重命名`,-1)]]),_:1}),t(g,null,{default:x(()=>[t(A,{modelValue:J.value,"onUpdate:modelValue":a[28]||=e=>J.value=e,label:`新名称`,variant:`outlined`,density:`compact`,rules:[s(Je)(`名称`)],autofocus:``,onKeydown:l(Ln,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[29]||=e=>kt.value=!1},{default:x(()=>[...a[92]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,onClick:Ln},{default:x(()=>[...a[93]||=[v(`确定`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(_t,{modelValue:Mt.value,"onUpdate:modelValue":a[31]||=e=>Mt.value=e,file:Yt.value,"server-id":C.value,loading:Pt.value,onApply:zn},null,8,[`modelValue`,`file`,`server-id`,`loading`]),t(z,{modelValue:dt.value,"onUpdate:modelValue":a[35]||=e=>dt.value=e,"max-width":`440`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[94]||=[v(`压缩`,-1)]]),_:1}),t(g,null,{default:x(()=>[k(`p`,Gt,`将压缩 `+E(mt.value.length)+` 项到当前目录`,1),t(A,{modelValue:ft.value,"onUpdate:modelValue":a[32]||=e=>ft.value=e,label:`压缩包路径`,variant:`outlined`,density:`compact`},null,8,[`modelValue`]),t(Ge,{modelValue:pt.value,"onUpdate:modelValue":a[33]||=e=>pt.value=e,items:[{title:`tar.gz`,value:`tar.gz`},{title:`zip`,value:`zip`}],"item-title":`title`,"item-value":`value`,label:`格式`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[34]||=e=>dt.value=!1},{default:x(()=>[...a[95]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,loading:q.value,onClick:Nn},{default:x(()=>[...a[96]||=[v(`压缩`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(z,{modelValue:U.value,"onUpdate:modelValue":a[38]||=e=>U.value=e,"max-width":`440`},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,null,{default:x(()=>[...a[97]||=[v(`解压`,-1)]]),_:1}),t(g,null,{default:x(()=>[k(`p`,Kt,E(ht.value),1),t(A,{modelValue:gt.value,"onUpdate:modelValue":a[36]||=e=>gt.value=e,label:`解压到目录`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[37]||=e=>U.value=!1},{default:x(()=>[...a[98]||=[v(`取消`,-1)]]),_:1}),t(f,{color:`primary`,variant:`flat`,loading:q.value,onClick:Pn},{default:x(()=>[...a[99]||=[v(`解压`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(Oe,{modelValue:Xt.value,"onUpdate:modelValue":a[54]||=e=>Xt.value=e,target:[Zt.value,Qt.value],location:`bottom start`},{default:x(()=>[t(oe,{density:`compact`,nav:``},{default:x(()=>[Y.value&&Y.value.type===`directory`?(M(),u(D,{key:0,"prepend-icon":`mdi-folder-open`,onClick:a[39]||=e=>$(`open`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[100]||=[v(`打开`,-1)]]),_:1})]),_:1})):b(``,!0),Y.value&&Z(Y.value)?(M(),u(D,{key:1,"prepend-icon":`mdi-pencil`,onClick:a[40]||=e=>$(`edit`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[101]||=[v(`编辑`,-1)]]),_:1})]),_:1})):b(``,!0),Y.value&&Z(Y.value)?(M(),u(D,{key:2,"prepend-icon":`mdi-eye`,onClick:a[41]||=e=>$(`preview`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[102]||=[v(`查看`,-1)]]),_:1})]),_:1})):b(``,!0),Y.value&&Z(Y.value)?(M(),u(D,{key:3,"prepend-icon":`mdi-download`,onClick:a[42]||=e=>$(`download`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[103]||=[v(`下载`,-1)]]),_:1})]),_:1})):b(``,!0),Y.value?(M(),u(D,{key:4,"prepend-icon":`mdi-content-copy`,onClick:a[43]||=e=>$(`copy`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[104]||=[v(`复制 (Ctrl+C)`,-1)]]),_:1})]),_:1})):b(``,!0),Y.value?(M(),u(D,{key:5,"prepend-icon":`mdi-content-cut`,onClick:a[44]||=e=>$(`cut`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[105]||=[v(`剪切 (Ctrl+X)`,-1)]]),_:1})]),_:1})):b(``,!0),t(D,{"prepend-icon":`mdi-content-paste`,disabled:!ce.value,onClick:a[45]||=e=>$(`paste`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[106]||=[v(`粘贴到当前目录 (Ctrl+V)`,-1)]]),_:1})]),_:1},8,[`disabled`]),Y.value?.type===`directory`&&ce.value?(M(),u(D,{key:6,"prepend-icon":`mdi-folder-arrow-down`,onClick:a[46]||=e=>$(`pasteInto`)},{default:x(()=>[t(r,null,{default:x(()=>[v(`粘贴到「`+E(Y.value.name)+`」`,1)]),_:1})]),_:1})):b(``,!0),t(D,{"prepend-icon":`mdi-link-variant`,onClick:a[47]||=e=>$(`copyPath`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[107]||=[v(`复制路径`,-1)]]),_:1})]),_:1}),t(D,{"prepend-icon":`mdi-console`,onClick:a[48]||=e=>$(`terminal`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[108]||=[v(`终端`,-1)]]),_:1})]),_:1}),t(ye),Y.value&&(Z(Y.value)||Y.value.type===`directory`)?(M(),u(D,{key:7,"prepend-icon":`mdi-zip-box`,onClick:a[49]||=e=>$(`compress`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[109]||=[v(`压缩`,-1)]]),_:1})]),_:1})):b(``,!0),Y.value&&on(Y.value.name)?(M(),u(D,{key:8,"prepend-icon":`mdi-package-up`,onClick:a[50]||=e=>$(`decompress`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[110]||=[v(`解压`,-1)]]),_:1})]),_:1})):b(``,!0),t(ye),t(D,{"prepend-icon":`mdi-file-rename-box`,onClick:a[51]||=e=>$(`rename`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[111]||=[v(`重命名`,-1)]]),_:1})]),_:1}),t(D,{"prepend-icon":`mdi-lock`,onClick:a[52]||=e=>$(`chmod`)},{default:x(()=>[t(r,null,{default:x(()=>[...a[112]||=[v(`修改权限`,-1)]]),_:1})]),_:1}),t(ye),t(D,{"prepend-icon":`mdi-delete`,onClick:a[53]||=e=>$(`delete`)},{default:x(()=>[t(r,{class:`text-error`},{default:x(()=>[...a[113]||=[v(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`target`]),t(z,{modelValue:Me.value,"onUpdate:modelValue":a[57]||=e=>Me.value=e,"max-width":`900`,scrollable:``},{default:x(()=>[t(m,{border:``},{default:x(()=>[t(_,{class:`d-flex align-center`},{default:x(()=>[k(`span`,qt,E(He.value),1),t(R),t(f,{icon:`mdi-close`,variant:`text`,onClick:a[55]||=e=>Me.value=!1})]),_:1}),t(ye),t(g,{style:{"max-height":`70vh`}},{default:x(()=>[Ze.value?(M(),u(Ee,{key:0,indeterminate:``,class:`mb-2`})):(M(),ue(`pre`,Jt,E(Ke.value),1))]),_:1}),t(c,null,{default:x(()=>[t(R),t(f,{variant:`text`,onClick:a[56]||=e=>Me.value=!1},{default:x(()=>[...a[114]||=[v(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(s(i),{ref_key:`editorWorkbench`,ref:en,"server-id":C.value??0,"current-path":w.value,onSaved:a[58]||=e=>bn(e),onPathChange:pn,onPasteTarget:kn},null,8,[`server-id`,`current-path`])]),_:1}))}}),[[`__scopeId`,`data-v-0a6ae05c`]]);export{Yt as default};