Files
Nexus/web/app/assets/FilesPage-DCugAeem.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
32 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-Dr24K1hg.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/editor.api2-MWf-eAi-.js","assets/editor-DX2BVZF3.css","assets/index-DViYxL_s.js","assets/index-a2GrHFWd.css","assets/workers-DLQCZ--h.js","assets/monaco.contribution-CX8vUCe2.js","assets/VChip-DpNKzOIE.js","assets/VChip-DNKJRTa0.css","assets/VDialog-C74LOhuD.js","assets/VDialog-DP-kc9Gx.css","assets/VSpacer-Cvmt0wiL.js","assets/VSpacer-DfbUir7X.css","assets/VTabs-UIp-W9nw.js","assets/VTabs-DjRHpLZ2.css","assets/useSnackbar-D7YOfKok.js","assets/remotePath-Dnz5p3-E.js","assets/FileEditorWorkbench-BItHkG53.css","assets/FileDirectoryTree-DPFgngR1.js","assets/fileBrowse-DPJUbvU6.js","assets/FileDirectoryTree-UFeCjR0s.css"])))=>i.map(i=>d[i]);
import{t as e}from"./VDataTable-B571HXv4.js";import{$n as t,$t as n,A as r,Ar as i,B as a,Cr as o,Ct as s,Er as c,F as l,Gn as u,Hn as ee,Jn as d,Kn as f,L as p,Lt as m,M as h,N as g,Nn as te,Nt as ne,Or as _,P as v,Qn as y,Qt as re,Rt as ie,St as b,T as ae,Tt as oe,Un as x,V as S,Wn as C,Y as se,Yn as ce,Zn as w,an as T,ar as le,br as E,bt as ue,cn as D,er as de,gr as O,ir as fe,j as pe,jt as me,k,kr as he,ln as A,lr as j,mr as ge,on as _e,ot as ve,q as ye,qn as M,rr as be,sr as xe,st as Se,t as N,v as Ce,wt as P,xt as F,yt as I,zt as we}from"./index-DViYxL_s.js";import{t as Te}from"./fileBrowse-DPJUbvU6.js";import{a as Ee,i as L,n as De,o as Oe,r as R,t as ke}from"./remotePath-Dnz5p3-E.js";import{a as Ae}from"./VSelectionControl-Ch8cxNI8.js";import{n as z,t as je}from"./VRow-JVI5_6P2.js";import{t as B}from"./VSpacer-Cvmt0wiL.js";import{t as V}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Me}from"./useSnackbar-D7YOfKok.js";import{t as Ne}from"./VChip-DpNKzOIE.js";import{t as H}from"./VDialog-C74LOhuD.js";import{t as Pe}from"./VSelect-Bhxz1UE6.js";import{t as Fe}from"./useServerList-DYPkWw9w.js";import{a as Ie}from"./validation-Yxuom3Du.js";import{t as Le}from"./VFileInput-ZjuKFxu7.js";function Re(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||e.isContentEditable}function ze(e,t){function n(n){if(!Re(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}n.key===`Delete`&&t.value.length>0&&(n.preventDefault(),e.deleteSelection()),(n.ctrlKey||n.metaKey)&&n.key.toLowerCase()===`a`&&(n.preventDefault(),e.selectAll())}}xe(()=>window.addEventListener(`keydown`,n)),le(()=>window.removeEventListener(`keydown`,n))}var U={directory:0,symlink:1,file:2};function Be(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{let i=U[e.type]??9,a=U[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 Ve=[{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 He(e,t){if(!t)return!0;let n=e.toLowerCase();return t.split(`,`).some(e=>n.endsWith(`.${e.trim()}`))}function Ue(e){let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)||t.endsWith(`.zip`)}function We(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 Ge=300*1024,Ke=40,qe=4,W=new Map;function G(e,t){return`${e}:${L(t)}`}function Je(e){let t=L(e),n=t.lastIndexOf(`/`);return n<=0?`/`:t.slice(0,n)||`/`}function Ye(){W.clear()}function Xe(e,t){let n=L(t);for(let t of[...W.keys()]){if(!t.startsWith(`${e}:`)){W.delete(t);continue}Je(t.slice(`${e}:`.length))!==n&&W.delete(t)}}function Ze(e,t){W.delete(G(e,t))}function Qe(e){if(e.type!==`file`)return!1;let t=e.size??0;return t>0&&t<=307200}function $e(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 tt(e,t,n=Ge){let r=G(e,t),i=W.get(r);if(i!==void 0)return i;let a=et(await m.post(`/sync/read-file`,{server_id:e,path:L(t),max_size:n}));return W.set(r,a),a}function nt(e,t,n){let r=n.filter(Qe).sort((e,t)=>(e.size??0)-(t.size??0)).slice(0,Ke);if(!r.length)return;let i=0,a=async()=>{for(;i<r.length;){let n=r[i++],a=R(t,n.name),o=G(e,a);if(!W.has(o))try{await tt(e,a)}catch{}}},o=Math.min(qe,r.length);Promise.all(Array.from({length:o},()=>a()))}var K=A({divider:[Number,String],...D()},`VBreadcrumbsDivider`),rt=T()({name:`VBreadcrumbsDivider`,props:K(),setup(e,{slots:t}){return n(()=>f(`li`,{"aria-hidden":`true`,class:_([`v-breadcrumbs-divider`,e.class]),style:he(e.style)},[t?.default?.()??e.divider])),{}}}),q=A({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...D(),...te(s(),[`width`,`maxWidth`]),...a(),...me({tag:`li`})},`VBreadcrumbsItem`),it=T()({name:`VBreadcrumbsItem`,props:q(),setup(e,{slots:t,attrs:r}){let i=S(e,r),a=u(()=>e.active||i.isActive?.value),{dimensionStyles:o}=P(e),{textColorClasses:s,textColorStyles:c}=b(()=>a.value?e.activeColor:e.color);return n(()=>y(e.tag,{class:_([`v-breadcrumbs-item`,{"v-breadcrumbs-item--active":a.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:a.value&&e.activeClass},s.value,e.class]),style:he([c.value,o.value,e.style]),"aria-current":a.value?`page`:void 0},{default:()=>[i.isLink.value?f(`a`,be({class:`v-breadcrumbs-item--link`,onClick:i.navigate.value},i.linkProps),[t.default?.()??e.title]):t.default?.()??e.title]})),{}}}),J=A({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:re,items:{type:Array,default:()=>[]},...D(),...ve(),...I(),...me({tag:`ul`})},`VBreadcrumbs`),at=T()({name:`VBreadcrumbs`,props:J(),setup(e,{slots:t}){let{backgroundColorClasses:r,backgroundColorStyles:i}=F(()=>e.bgColor),{densityClasses:a}=Se(e),{roundedClasses:s}=ue(e);_e({VBreadcrumbsDivider:{divider:o(()=>e.divider)},VBreadcrumbsItem:{activeClass:o(()=>e.activeClass),activeColor:o(()=>e.activeColor),color:o(()=>e.color),disabled:o(()=>e.disabled)}});let c=u(()=>e.items.map(e=>typeof e==`string`?{item:{title:e},raw:e}:{item:e,raw:e}));return n(()=>{let n=!!(t.prepend||e.icon);return y(e.tag,{class:_([`v-breadcrumbs`,r.value,a.value,s.value,e.class]),style:he([i.value,e.style])},{default:()=>[n&&f(`li`,{key:`prepend`,class:`v-breadcrumbs__prepend`},[t.prepend?y(oe,{key:`prepend-defaults`,disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},t.prepend):y(se,{key:`prepend-icon`,start:!0,icon:e.icon},null)]),c.value.map(({item:e,raw:n},r,i)=>f(C,null,[t.item?.({item:e,index:r})??y(it,be({key:r,disabled:r>=i.length-1},typeof e==`string`?{title:e}:e),{default:t.title?()=>t.title?.({item:e,index:r}):void 0}),r<i.length-1&&y(rt,null,{default:t.divider?()=>t.divider?.({item:n,index:r}):void 0})])),t.default?.()]})}),{}}}),ot={class:`text-caption text-medium-emphasis mb-2 d-flex flex-wrap align-center ga-2`},st={class:`text-body-2 mr-4`},ct={class:`d-flex align-center ga-2 min-w-0`},lt={class:`min-w-0`},ut={key:0,class:`text-caption text-medium-emphasis text-truncate`},dt={class:`text-medium-emphasis`},ft={class:`text-medium-emphasis`},pt={class:`d-flex ga-1`},mt={class:`text-center text-medium-emphasis py-8`},ht={class:`text-body-2 mb-3`},gt={class:`text-body-2 mb-2 text-truncate`},_t={class:`text-truncate`},vt={key:1,class:`files-preview-body text-body-2`},yt=V(de({__name:`FilesPage`,setup(n){let a=t(()=>ne(()=>import(`./FileEditorWorkbench-Dr24K1hg.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]))),o=t(()=>ne(()=>import(`./FileDirectoryTree-DPFgngR1.js`),__vite__mapDeps([19,1,4,5,12,13,20,17,21]))),s=Me(),{servers:te,loadServers:re}=Fe(),b=ie(),oe=we(),S=E(null),C=E(ke),T=E([]),le=E(!1),ue=E(``),D=E(``),de=E(``),me=E(`name`),he=[{title:`名称`,value:`name`},{title:`大小`,value:`size`},{title:`修改时间`,value:`modified`}],A=E(!1),_e=E(!1),ve=E(``),be=E(``),Se=E(!1),P=E(!1),F=E(!1),I=E(``),V=E(!1),Re=E(!1),U=E(``),Ke=E(`tar.gz`),qe=E([]),W=E(!1),G=E(``),Je=E(`.`),et=E(!1),K=E([]),rt=E(!1),q=E(``),J=E(!1),yt=E(null),bt=E(!1),xt=E(``),St=E(null),Ct=E(!1),wt=E(``),Tt=E(null),Et=E(!1),Dt=E(0),Ot=E(0),Y=E(null),X=E([]),kt=u(()=>X.value.length),At=E(null),jt=E(!1),Mt=[{title:`名称`,key:`name`},{title:`大小`,key:`size`,width:120},{title:`修改时间`,key:`modified`,width:180},{title:`权限`,key:`permissions`,width:100},{title:`操作`,key:`actions`,width:200,align:`end`}],Nt=u(()=>De(C.value)),Pt=u(()=>Ee(C.value)!==null),Ft=u(()=>{let e=Be(T.value,me.value,`asc`),t=de.value;t&&(e=e.filter(e=>He(e.name,t)));let n=D.value.trim().toLowerCase();return n&&(e=e.filter(e=>e.name.toLowerCase().includes(n))),e});function It(e){return Ue(e)}let Lt=u(()=>{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(Qe).length,i=[`${e} 个目录`,`${t} 个文件`];return n&&i.push(`${n} 个链接`),r&&i.push(`${r} 个 ≤300KB 可预加载`),`${i.join(``)} · ${C.value}`}),Rt=u(()=>S.value?D.value.trim()?`无匹配文件`:`暂无文件`:`请先选择服务器`);function zt(e){return e.type===`directory`?`mdi-folder`:e.type===`symlink`?`mdi-link-variant`:`mdi-file-outline`}function Bt(e){return e.type===`directory`?`amber`:e.type===`symlink`?`teal`:`blue`}function Z(e){return e.type===`file`}function Vt(){let e={...b.query};S.value?(e.server_id=String(S.value),e.path=C.value===`/www/wwwroot`?void 0:C.value):(delete e.server_id,delete e.path),oe.replace({query:e})}function Ht(e){if(e.type===`directory`){Ut(R(C.value,e.name));return}if(e.type===`symlink`){let t=e.link_target?.trim();t?.startsWith(`/`)?Ut(t):s(t?`符号链接 → ${t}`:`相对符号链接(请在终端中打开)`,`info`)}}function Ut(e){if(!S.value){s(`请先选择服务器`,`warning`);return}C.value=L(e),X.value=[],Q()}function Wt(){if(!S.value){s(`请先选择服务器`,`warning`);return}C.value=L(C.value),Q()}function Gt(){let e=Ee(C.value);e!=null&&Ut(e)}function Kt(e){let t=Nt.value[e];t&&!t.disabled&&Ut(t.path)}function qt(){S.value&&oe.push({path:`/terminal`,query:{server_id:String(S.value),path:C.value||`/`}})}async function Q(){if(!S.value)return;le.value=!0;let e=L(C.value);C.value=e;try{let{items:t,error:n}=Te(await m.post(`/sync/browse`,{server_id:S.value,path:e}));ue.value=n||``,n&&s(n,`warning`),T.value=t,S.value&&t.length&&(Xe(S.value,e),nt(S.value,e,t))}catch{T.value=[],s(`浏览目录失败`,`error`)}finally{le.value=!1,Vt()}}function Jt(){Ye(),C.value=ke,D.value=``,X.value=[],Q()}function Yt(e){S.value&&e&&Ze(S.value,e),Q()}function Xt(e,t){return $e(e.size)?(s(`文件超过 300KB${bn(e.size)}),无法${t},请下载或使用终端`,`warning`),!0):!1}function Zt(e,{item:t}){(t.type===`directory`||t.type===`symlink`)&&Ht(t)}function Qt(e,{item:t}){Z(t)&&mn(t)}async function $t(e){if(A.value=!1,!S.value){s(`请先选择服务器`,`warning`);return}let t=e.dataTransfer?.files;t?.length&&(K.value=Array.from(t),await yn())}function en(e,{item:t}){e.preventDefault(),Y.value=t,Dt.value=e.clientX,Ot.value=e.clientY,Et.value=!0}function $(e){if(Et.value=!1,!Y.value)return;let t=Y.value;switch(e){case`open`:Ht(t);break;case`edit`:mn(t);break;case`preview`:pn(t);break;case`download`:hn(t);break;case`copyPath`:tn(t);break;case`terminal`:qt();break;case`compress`:nn([t]);break;case`decompress`:rn(t);break;case`rename`:cn(t);break;case`chmod`:un(t);break;case`delete`:gn(t);break}}async function tn(e){let t=R(C.value,e.name);try{await navigator.clipboard.writeText(t),s(`路径已复制`)}catch{s(`复制失败`,`error`)}}function nn(e){if(!S.value)return;let t=e?.length?e:X.value.length?X.value:[];if(!t.length){s(`请选择要压缩的文件或目录`,`warning`);return}qe.value=t.map(e=>R(C.value,e.name));let n=t.length===1?t[0].name.replace(/\.[^.]+$/,``):`archive`;U.value=R(C.value,`${n}.tar.gz`),Ke.value=`tar.gz`,Re.value=!0}function rn(e){if(S.value){if(!Ue(e.name)){s(`仅支持 .tar.gz / .tgz / .zip`,`warning`);return}G.value=R(C.value,e.name),Je.value=C.value,W.value=!0}}async function an(){if(!(!S.value||!qe.value.length||!U.value)){J.value=!0;try{let e=U.value;Ke.value===`zip`&&!e.endsWith(`.zip`)&&(e=e.replace(/\.tar\.gz$/i,`.zip`),e.endsWith(`.zip`)||(e+=`.zip`)),await m.post(`/sync/compress`,{server_id:S.value,paths:qe.value,dest:e,format:Ke.value}),Re.value=!1,X.value=[],Q(),s(`压缩完成`)}catch(e){s(e instanceof Error?e.message:`压缩失败`,`error`)}finally{J.value=!1}}}async function on(){if(!(!S.value||!G.value)){J.value=!0;try{await m.post(`/sync/decompress`,{server_id:S.value,path:G.value,dest:Je.value||`.`}),W.value=!1,Q(),s(`解压完成`)}catch(e){s(e instanceof Error?e.message:`解压失败`,`error`)}finally{J.value=!1}}}async function sn(){if(!S.value||!I.value)return;let e=Oe(I.value);if(e!==!0){s(e,`warning`);return}let t=I.value,n=R(C.value,t);J.value=!0;try{await m.post(`/sync/write-file`,{server_id:S.value,path:n,content:``}),F.value=!1,I.value=``,Ze(S.value,n),await Q(),s(`文件已创建`),jt.value=!0,await fe(),At.value?.openFile({path:n,name:t,content:``})}catch(e){s(e instanceof Error?e.message:`创建失败`,`error`)}finally{J.value=!1}}function cn(e){St.value=e,xt.value=e.name,bt.value=!0}async function ln(){if(!(!S.value||!St.value||!xt.value))try{await m.post(`/sync/file-ops`,{server_id:S.value,operation:`rename`,path:R(C.value,St.value.name),new_path:R(C.value,xt.value)}),bt.value=!1,Q(),s(`重命名成功`)}catch(e){s(e instanceof Error?e.message:`重命名失败`,`error`)}}function un(e){Tt.value=e,wt.value=``,Ct.value=!0}async function dn(){if(!(!S.value||!Tt.value||!wt.value))try{await m.post(`/sync/chmod`,{server_id:S.value,path:R(C.value,Tt.value.name),mode:wt.value}),Ct.value=!1,Q(),s(`权限已修改`)}catch(e){s(e instanceof Error?e.message:`修改权限失败`,`error`)}}async function fn(){if(!S.value||!X.value.length||!confirm(`确定删除 ${X.value.length} 个文件?`))return;let e=0,t=0;for(let n of X.value)try{await m.post(`/sync/file-ops`,{server_id:S.value,operation:`delete`,path:R(C.value,n.name)}),e++}catch{t++}X.value=[],Q(),t===0?s(`已删除 ${e} 项`):s(`删除完成:成功 ${e},失败 ${t}`,t>0?`warning`:`success`)}async function pn(e){if(!S.value||Xt(e,`查看`))return;let t=R(C.value,e.name);ve.value=e.name,be.value=``,Se.value=!0,_e.value=!0;try{be.value=await tt(S.value,t,307200)||`(空文件)`}catch(e){let t=e instanceof Error?e.message:`读取失败`;be.value=t,s(t,`error`)}finally{Se.value=!1}}async function mn(e){if(S.value&&!Xt(e,`编辑`)){J.value=!0;try{let t=R(C.value,e.name),n=await tt(S.value,t,Ge);jt.value=!0,await fe(),At.value?.openFile({path:t,name:e.name,content:n})}catch(e){s(e instanceof Error?e.message:`读取失败`,`error`)}finally{J.value=!1}}}async function hn(e){if(S.value)try{let t=R(C.value,e.name),{blob:n,filename:r}=await m.download(`/sync/download`,{server_id:S.value,path:t});We(n,r),s(`已下载 ${r}`)}catch(e){s(e instanceof Error?e.message:`下载失败`,`error`)}}async function gn(e){yt.value=e,et.value=!0}async function _n(){if(!(!S.value||!yt.value)){J.value=!0;try{await m.post(`/sync/file-ops`,{server_id:S.value,operation:`delete`,path:R(C.value,yt.value.name)}),et.value=!1,Q(),s(`已删除`)}catch(e){s(e.message||`删除失败`,`error`)}finally{J.value=!1}}}async function vn(){if(!S.value||!q.value)return;let e=Oe(q.value);if(e!==!0){s(e,`warning`);return}J.value=!0;try{await m.post(`/sync/file-ops`,{server_id:S.value,operation:`mkdir`,path:R(C.value,q.value)}),V.value=!1,q.value=``,Q(),s(`目录已创建`)}catch(e){s(e.message||`创建失败`,`error`)}finally{J.value=!1}}async function yn(){if(!(!S.value||!K.value.length)){rt.value=!0;try{let e=new FormData;for(let t of K.value)e.append(`files`,t);e.append(`server_id`,String(S.value)),e.append(`remote_path`,C.value),await m.upload(`/sync/upload`,e),P.value=!1,K.value=[],Q(),s(`上传成功`)}catch(e){s(e.message||`上传失败`,`error`)}finally{rt.value=!1}}}function bn(e){return e?e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/1024/1024).toFixed(1)+` MB`:`—`}return xe(async()=>{await re();let e=b.query.server_id,t=b.query.path;e&&(S.value=Number(e),typeof t==`string`&&t&&(C.value=L(t)),Q())}),ge(()=>b.query.server_id,e=>{if(e&&Number(e)!==S.value){S.value=Number(e);let t=b.query.path;C.value=typeof t==`string`&&t?L(t):ke,Q()}}),ze({refresh:Wt,goUp:Gt,renameSelection:()=>{X.value.length===1&&cn(X.value[0])},deleteSelection:()=>{X.value.length>0&&fn()},selectAll:()=>{X.value=[...Ft.value]}},X),(t,n)=>(j(),M(Ae,{fluid:``,class:`pa-6`},{default:O(()=>[y(h,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:O(()=>[y(je,{align:`center`,dense:``},{default:O(()=>[y(z,{cols:`12`,sm:`4`},{default:O(()=>[y(Pe,{modelValue:S.value,"onUpdate:modelValue":[n[0]||=e=>S.value=e,Jt],items:c(te),"item-title":`name`,"item-value":`id`,label:`选择服务器`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-server`},null,8,[`modelValue`,`items`])]),_:1}),y(z,{cols:`12`,sm:`4`},{default:O(()=>[y(N,{modelValue:C.value,"onUpdate:modelValue":n[1]||=e=>C.value=e,label:`路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,"append-inner-icon":`mdi-arrow-right`,"onClick:appendInner":Wt,onKeydown:ee(Wt,[`enter`])},null,8,[`modelValue`])]),_:1}),y(z,{cols:`12`,sm:`3`},{default:O(()=>[y(N,{modelValue:D.value,"onUpdate:modelValue":n[2]||=e=>D.value=e,label:`筛选文件名`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-magnify`,clearable:``,"hide-details":``},null,8,[`modelValue`])]),_:1}),y(z,{cols:`12`,sm:`3`},{default:O(()=>[y(Pe,{modelValue:de.value,"onUpdate:modelValue":n[3]||=e=>de.value=e,items:c(Ve),"item-title":`title`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),y(z,{cols:`12`,sm:`2`},{default:O(()=>[y(Pe,{modelValue:me.value,"onUpdate:modelValue":n[4]||=e=>me.value=e,items:he,"item-title":`title`,"item-value":`value`,label:`排序`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),y(z,{cols:`12`,class:`d-flex ga-2 flex-wrap justify-end`},{default:O(()=>[y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-upload`,onClick:n[5]||=e=>P.value=!0},{default:O(()=>[...n[55]||=[w(`上传`,-1)]]),_:1}),y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-file-plus`,disabled:!S.value,onClick:n[6]||=e=>F.value=!0},{default:O(()=>[...n[56]||=[w(`新建文件`,-1)]]),_:1},8,[`disabled`]),y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-plus`,onClick:n[7]||=e=>V.value=!0},{default:O(()=>[...n[57]||=[w(`新建目录`,-1)]]),_:1}),y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-zip-box`,disabled:!S.value||!kt.value,onClick:n[8]||=e=>nn()},{default:O(()=>[...n[58]||=[w(` 压缩 `,-1)]]),_:1},8,[`disabled`]),y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-arrow-up`,disabled:!Pt.value,onClick:Gt},{default:O(()=>[...n[59]||=[w(` 上级 `,-1)]]),_:1},8,[`disabled`]),y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-refresh`,onClick:Wt},{default:O(()=>[...n[60]||=[w(`刷新`,-1)]]),_:1}),y(p,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-console`,disabled:!S.value,onClick:qt},{default:O(()=>[...n[61]||=[w(` 终端 `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1}),f(`div`,ot,[f(`span`,null,i(Lt.value),1),ue.value?(j(),M(Ne,{key:0,size:`x-small`,color:`warning`,variant:`tonal`},{default:O(()=>[w(i(ue.value),1)]),_:1})):d(``,!0)]),y(at,{items:Nt.value,class:`pa-0 mb-2`},{item:O(({item:e,index:t})=>[y(it,{disabled:e.disabled,class:_({"text-primary":!e.disabled,"cursor-pointer":!e.disabled}),onClick:e=>Kt(t)},{default:O(()=>[w(i(e.title),1)]),_:2},1032,[`disabled`,`class`,`onClick`])]),divider:O(()=>[...n[62]||=[w(`/`,-1)]]),_:1},8,[`items`]),kt.value>0?(j(),M(h,{key:0,class:`mb-4`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:O(()=>[y(g,{class:`d-flex align-center py-2`},{default:O(()=>[f(`span`,st,`已选择 `+i(kt.value)+` 个文件`,1),y(B),y(p,{size:`small`,variant:`text`,color:`error`,onClick:fn},{default:O(()=>[...n[63]||=[w(`批量删除`,-1)]]),_:1}),y(p,{size:`small`,variant:`text`,onClick:n[9]||=e=>X.value=[]},{default:O(()=>[...n[64]||=[w(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):d(``,!0),y(je,{class:`files-main-row`,dense:``},{default:O(()=>[y(z,{cols:`12`,md:`3`,class:`d-none d-md-block`},{default:O(()=>[y(c(o),{"server-id":S.value,"current-path":C.value,onNavigate:Ut},null,8,[`server-id`,`current-path`])]),_:1}),y(z,{cols:`12`,md:`9`},{default:O(()=>[y(h,{elevation:`0`,border:``,rounded:`lg`,class:_({"files-drop-active":A.value,"files-browser--split":jt.value}),onDragenter:n[11]||=x(e=>A.value=!0,[`prevent`]),onDragover:n[12]||=x(e=>A.value=!0,[`prevent`]),onDragleave:n[13]||=x(e=>A.value=!1,[`prevent`]),onDrop:x($t,[`prevent`])},{default:O(()=>[y(e,{modelValue:X.value,"onUpdate:modelValue":n[10]||=e=>X.value=e,items:Ft.value,headers:Mt,loading:le.value,"show-select":``,"return-object":``,hover:``,density:`comfortable`,"item-value":`name`,"onClick:row":Zt,"onDblclick:row":Qt,"onContextmenu:row":en},{"item.name":O(({item:e})=>[f(`div`,ct,[y(se,{color:Bt(e),size:`20`},{default:O(()=>[w(i(zt(e)),1)]),_:2},1032,[`color`]),f(`div`,lt,[f(`span`,{class:_({"font-weight-medium":e.type===`directory`})},i(e.name),3),e.type===`symlink`&&e.link_target?(j(),ce(`div`,ut,` → `+i(e.link_target),1)):d(``,!0)])])]),"item.size":O(({item:e})=>[f(`span`,dt,i(e.type===`directory`?`—`:bn(e.size)),1)]),"item.modified":O(({item:e})=>[f(`span`,ft,i(e.modified||`—`),1)]),"item.actions":O(({item:e})=>[f(`div`,pt,[Z(e)?(j(),M(p,{key:0,variant:`text`,size:`x-small`,density:`compact`,color:`primary`,onClick:x(t=>mn(e),[`stop`])},{default:O(()=>[...n[65]||=[w(`编辑`,-1)]]),_:1},8,[`onClick`])):d(``,!0),Z(e)?(j(),M(p,{key:1,variant:`text`,size:`x-small`,density:`compact`,onClick:x(t=>pn(e),[`stop`])},{default:O(()=>[...n[66]||=[w(`查看`,-1)]]),_:1},8,[`onClick`])):d(``,!0),Z(e)?(j(),M(p,{key:2,variant:`text`,size:`x-small`,density:`compact`,onClick:x(t=>hn(e),[`stop`])},{default:O(()=>[...n[67]||=[w(`下载`,-1)]]),_:1},8,[`onClick`])):d(``,!0),y(p,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:x(t=>gn(e),[`stop`])},{default:O(()=>[...n[68]||=[w(`删除`,-1)]]),_:1},8,[`onClick`])])]),"no-data":O(()=>[f(`div`,mt,[y(se,{size:`40`,class:`mb-2`},{default:O(()=>[...n[69]||=[w(`mdi-folder-open-outline`,-1)]]),_:1}),f(`div`,null,i(Rt.value),1),n[70]||=f(`div`,{class:`text-caption mt-2`},` 单击目录进入 · 双击 ≤300KB 文件编辑 · 拖拽上传 · F5 刷新 · F2 重命名 · Del 删除 `,-1)])]),_:1},8,[`modelValue`,`items`,`loading`])]),_:1},8,[`class`])]),_:1})]),_:1}),y(H,{modelValue:P.value,"onUpdate:modelValue":n[16]||=e=>P.value=e,"max-width":`500`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[71]||=[w(`上传文件`,-1)]]),_:1}),y(g,null,{default:O(()=>[y(Le,{modelValue:K.value,"onUpdate:modelValue":n[14]||=e=>K.value=e,label:`选择文件`,variant:`outlined`,multiple:``,"show-size":``},null,8,[`modelValue`])]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[15]||=e=>P.value=!1},{default:O(()=>[...n[72]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,onClick:yn,loading:rt.value},{default:O(()=>[...n[73]||=[w(`上传`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:F.value,"onUpdate:modelValue":n[19]||=e=>F.value=e,"max-width":`400`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[74]||=[w(`新建文件`,-1)]]),_:1}),y(g,null,{default:O(()=>[y(N,{modelValue:I.value,"onUpdate:modelValue":n[17]||=e=>I.value=e,label:`文件名`,variant:`outlined`,density:`compact`,rules:[c(Oe)],placeholder:`example.conf`,autofocus:``,onKeydown:ee(sn,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[18]||=e=>F.value=!1},{default:O(()=>[...n[75]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,loading:J.value,onClick:sn},{default:O(()=>[...n[76]||=[w(`创建`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:V.value,"onUpdate:modelValue":n[22]||=e=>V.value=e,"max-width":`400`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[77]||=[w(`新建目录`,-1)]]),_:1}),y(g,null,{default:O(()=>[y(N,{modelValue:q.value,"onUpdate:modelValue":n[20]||=e=>q.value=e,label:`目录名`,variant:`outlined`,density:`compact`,rules:[c(Oe)],onKeydown:ee(vn,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[21]||=e=>V.value=!1},{default:O(()=>[...n[78]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,onClick:vn},{default:O(()=>[...n[79]||=[w(`创建`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:et.value,"onUpdate:modelValue":n[24]||=e=>et.value=e,"max-width":`400`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[80]||=[w(`确认删除`,-1)]]),_:1}),y(g,null,{default:O(()=>[n[81]||=w(`确定要删除 `,-1),f(`strong`,null,i(yt.value?.name),1),n[82]||=w(` 吗?`,-1)]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[23]||=e=>et.value=!1},{default:O(()=>[...n[83]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`error`,variant:`flat`,onClick:_n},{default:O(()=>[...n[84]||=[w(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:bt.value,"onUpdate:modelValue":n[27]||=e=>bt.value=e,"max-width":`400`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[85]||=[w(`重命名`,-1)]]),_:1}),y(g,null,{default:O(()=>[y(N,{modelValue:xt.value,"onUpdate:modelValue":n[25]||=e=>xt.value=e,label:`新名称`,variant:`outlined`,density:`compact`,rules:[c(Ie)(`名称`)],autofocus:``,onKeydown:ee(ln,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[26]||=e=>bt.value=!1},{default:O(()=>[...n[86]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,onClick:ln},{default:O(()=>[...n[87]||=[w(`确定`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:Ct.value,"onUpdate:modelValue":n[30]||=e=>Ct.value=e,"max-width":`400`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[88]||=[w(`修改权限`,-1)]]),_:1}),y(g,null,{default:O(()=>[y(N,{modelValue:wt.value,"onUpdate:modelValue":n[28]||=e=>wt.value=e,label:`权限 (如 755, 644)`,variant:`outlined`,density:`compact`,rules:[c(Ie)(`权限`),e=>/^[0-7]{3,4}$/.test(e)||`格式: 3-4位八进制数`],autofocus:``,onKeydown:ee(dn,[`enter`])},null,8,[`modelValue`,`rules`])]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[29]||=e=>Ct.value=!1},{default:O(()=>[...n[89]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,onClick:dn},{default:O(()=>[...n[90]||=[w(`确定`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:Re.value,"onUpdate:modelValue":n[34]||=e=>Re.value=e,"max-width":`440`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[91]||=[w(`压缩`,-1)]]),_:1}),y(g,null,{default:O(()=>[f(`p`,ht,`将压缩 `+i(qe.value.length)+` 项到当前目录`,1),y(N,{modelValue:U.value,"onUpdate:modelValue":n[31]||=e=>U.value=e,label:`压缩包路径`,variant:`outlined`,density:`compact`},null,8,[`modelValue`]),y(Pe,{modelValue:Ke.value,"onUpdate:modelValue":n[32]||=e=>Ke.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}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[33]||=e=>Re.value=!1},{default:O(()=>[...n[92]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,loading:J.value,onClick:an},{default:O(()=>[...n[93]||=[w(`压缩`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(H,{modelValue:W.value,"onUpdate:modelValue":n[37]||=e=>W.value=e,"max-width":`440`},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,null,{default:O(()=>[...n[94]||=[w(`解压`,-1)]]),_:1}),y(g,null,{default:O(()=>[f(`p`,gt,i(G.value),1),y(N,{modelValue:Je.value,"onUpdate:modelValue":n[35]||=e=>Je.value=e,label:`解压到目录`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[36]||=e=>W.value=!1},{default:O(()=>[...n[95]||=[w(`取消`,-1)]]),_:1}),y(p,{color:`primary`,variant:`flat`,loading:J.value,onClick:on},{default:O(()=>[...n[96]||=[w(`解压`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(Ce,{modelValue:Et.value,"onUpdate:modelValue":n[49]||=e=>Et.value=e,target:[Dt.value,Ot.value],location:`bottom start`},{default:O(()=>[y(ae,{density:`compact`,nav:``},{default:O(()=>[Y.value&&Y.value.type===`directory`?(j(),M(k,{key:0,"prepend-icon":`mdi-folder-open`,onClick:n[38]||=e=>$(`open`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[97]||=[w(`打开`,-1)]]),_:1})]),_:1})):d(``,!0),Y.value&&Z(Y.value)?(j(),M(k,{key:1,"prepend-icon":`mdi-pencil`,onClick:n[39]||=e=>$(`edit`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[98]||=[w(`编辑`,-1)]]),_:1})]),_:1})):d(``,!0),Y.value&&Z(Y.value)?(j(),M(k,{key:2,"prepend-icon":`mdi-eye`,onClick:n[40]||=e=>$(`preview`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[99]||=[w(`查看`,-1)]]),_:1})]),_:1})):d(``,!0),Y.value&&Z(Y.value)?(j(),M(k,{key:3,"prepend-icon":`mdi-download`,onClick:n[41]||=e=>$(`download`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[100]||=[w(`下载`,-1)]]),_:1})]),_:1})):d(``,!0),y(k,{"prepend-icon":`mdi-content-copy`,onClick:n[42]||=e=>$(`copyPath`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[101]||=[w(`复制路径`,-1)]]),_:1})]),_:1}),y(k,{"prepend-icon":`mdi-console`,onClick:n[43]||=e=>$(`terminal`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[102]||=[w(`终端`,-1)]]),_:1})]),_:1}),y(pe),Y.value&&(Z(Y.value)||Y.value.type===`directory`)?(j(),M(k,{key:4,"prepend-icon":`mdi-zip-box`,onClick:n[44]||=e=>$(`compress`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[103]||=[w(`压缩`,-1)]]),_:1})]),_:1})):d(``,!0),Y.value&&It(Y.value.name)?(j(),M(k,{key:5,"prepend-icon":`mdi-package-up`,onClick:n[45]||=e=>$(`decompress`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[104]||=[w(`解压`,-1)]]),_:1})]),_:1})):d(``,!0),y(pe),y(k,{"prepend-icon":`mdi-file-rename-box`,onClick:n[46]||=e=>$(`rename`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[105]||=[w(`重命名`,-1)]]),_:1})]),_:1}),y(k,{"prepend-icon":`mdi-lock`,onClick:n[47]||=e=>$(`chmod`)},{default:O(()=>[y(r,null,{default:O(()=>[...n[106]||=[w(`修改权限`,-1)]]),_:1})]),_:1}),y(pe),y(k,{"prepend-icon":`mdi-delete`,onClick:n[48]||=e=>$(`delete`)},{default:O(()=>[y(r,{class:`text-error`},{default:O(()=>[...n[107]||=[w(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`target`]),y(H,{modelValue:_e.value,"onUpdate:modelValue":n[52]||=e=>_e.value=e,"max-width":`900`,scrollable:``},{default:O(()=>[y(h,{border:``},{default:O(()=>[y(v,{class:`d-flex align-center`},{default:O(()=>[f(`span`,_t,i(ve.value),1),y(B),y(p,{icon:`mdi-close`,variant:`text`,onClick:n[50]||=e=>_e.value=!1})]),_:1}),y(pe),y(g,{style:{"max-height":`70vh`}},{default:O(()=>[Se.value?(j(),M(ye,{key:0,indeterminate:``,class:`mb-2`})):(j(),ce(`pre`,vt,i(be.value),1))]),_:1}),y(l,null,{default:O(()=>[y(B),y(p,{variant:`text`,onClick:n[51]||=e=>_e.value=!1},{default:O(()=>[...n[108]||=[w(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),y(c(a),{ref_key:`editorWorkbench`,ref:At,"server-id":S.value??0,onSaved:n[53]||=e=>Yt(e),onClosed:n[54]||=e=>jt.value=!1},null,8,[`server-id`])]),_:1}))}}),[[`__scopeId`,`data-v-1eed4640`]]);export{yt as default};