mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
7 lines (6 loc) • 24.1 kB
JavaScript
import{ag as Ta,a7 as L,am as P,ae as f,aI as $,b5 as e,a8 as N,aY as O,aO as r,ab as y,bB as o,n as Ia,aj as n,bi as Sa,aT as m,a9 as ae,aN as Fa,bz as Ra,aM as Pa,aa as v,a$ as i,u as x,ac as _,i as ve,aX as Se,aK as Fe,ai as g,T as Va,C as me,b3 as k,bE as A,a_ as Ea,G as ge,H as be,J as _e,K as he,a3 as ja,aZ as Aa}from"./index-BAS7XAoe.js";import{u as Na}from"./useLibrary-lubOK0Bg.js";import{_ as Oa}from"./PathTreeSelect.vue_vue_type_script_setup_true_lang-B36Zi8Tg.js";import{_ as Xa}from"./Textarea.vue_vue_type_script_setup_true_lang-DsmTjQmg.js";import{a as Ya,b as Ha,c as Re,_ as Ka}from"./DropdownMenuTrigger.vue_vue_type_script_setup_true_lang-lUdqzzfB.js";import{l as qe,w as Ge,E as ye,f as Pe,n as Ve,g as Ze,k as Je,Z as qa,D as Ga,_ as Qe,v as Za,T as Ja}from"./index-CsJj9qiO.js";import"./PopoverTrigger.vue_vue_type_script_setup_true_lang-DS2w7cXI.js";/**
* @license @lucide/vue v1.17.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const Qa=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Wa=Ta("chevron-right",Qa),et={upload:(b,l)=>L.post("/files/upload",l,{headers:{"Content-Type":"multipart/form-data"}}),uploadProgress:(b,l,u)=>L.post("/files/upload",l,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:w=>{w.total&&u(Math.round(w.loaded*100/w.total))}})},We={start:b=>L.post("/download/start",b),progress:b=>L.get(`/download/progress/${b}`)},te={list(b){return L.get("/fs/list",{params:b})},move(b){return L.post("/fs/move",b)},remove(b){return L.post("/fs/remove",b)},sync(b){return L.post("/fs/sync",{libraryId:b})},download(b){return L.post("/fs/download",b,{responseType:"blob"})}},at=P({__name:"Breadcrumb",props:{class:{}},setup(b){const l=b;return(u,w)=>(r(),f("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",class:$(e(N)("",l.class))},[O(u.$slots,"default")],2))}}),ea=P({__name:"BreadcrumbItem",props:{class:{}},setup(b){const l=b;return(u,w)=>(r(),f("li",{"data-slot":"breadcrumb-item",class:$(e(N)("gap-1 inline-flex items-center",l.class))},[O(u.$slots,"default")],2))}}),aa=P({__name:"BreadcrumbLink",props:{asChild:{type:Boolean},as:{default:"a"},class:{}},setup(b){const l=b;return(u,w)=>(r(),y(e(Ia),{"data-slot":"breadcrumb-link",as:u.as,"as-child":u.asChild,class:$(e(N)("hover:text-foreground transition-colors",l.class))},{default:o(()=>[O(u.$slots,"default")]),_:3},8,["as","as-child","class"]))}}),tt=P({__name:"BreadcrumbList",props:{class:{}},setup(b){const l=b;return(u,w)=>(r(),f("ol",{"data-slot":"breadcrumb-list",class:$(e(N)("text-muted-foreground gap-1.5 text-xs/relaxed flex flex-wrap items-center wrap-break-word",l.class))},[O(u.$slots,"default")],2))}}),lt=P({__name:"BreadcrumbPage",props:{class:{}},setup(b){const l=b;return(u,w)=>(r(),f("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",class:$(e(N)("text-foreground font-normal",l.class))},[O(u.$slots,"default")],2))}}),st=P({__name:"BreadcrumbSeparator",props:{class:{}},setup(b){const l=b;return(u,w)=>(r(),f("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",class:$(e(N)("[&>svg]:size-3.5",l.class))},[O(u.$slots,"default",{},()=>[n(e(Wa),{class:"cn-rtl-flip"})])],2))}}),nt={class:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"},ot={class:"text-2xl font-bold tracking-normal"},rt={class:"mt-1 text-sm text-muted-foreground"},it={class:"flex gap-2"},ut={key:0,class:"mr-1 size-3 animate-spin rounded-full border-2 border-current border-t-transparent"},dt={key:0,class:"mr-1 size-3 animate-spin rounded-full border-2 border-current border-t-transparent"},ct=["onClick"],ft={key:0,class:"flex items-center gap-2 text-sm text-muted-foreground"},pt={key:0},vt={key:0,class:"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6"},mt=["data-path","onClick","onDblclick","onContextmenu"],gt=["onClick"],bt=["title"],_t={class:"text-xs text-muted-foreground"},ht={key:1,class:"flex flex-col items-center justify-center py-20 text-muted-foreground"},yt={key:2,class:"flex justify-center py-8"},xt={key:3,class:"flex justify-center"},kt={class:"text-sm text-muted-foreground"},wt={key:0,class:"mr-1 size-3 animate-spin rounded-full border-2 border-current border-t-transparent"},Mt={class:"text-sm text-muted-foreground"},zt={key:0,class:"mr-1 size-3 animate-spin rounded-full border-2 border-current border-t-transparent"},Ct={class:"mt-3 text-sm text-muted-foreground"},$t={class:"mt-1 text-xs text-muted-foreground"},Dt={class:"mt-3 inline-block cursor-pointer"},Ut={key:0,class:"max-h-48 space-y-2 overflow-y-auto"},Lt={class:"flex-1 truncate text-sm"},Bt={class:"shrink-0 text-xs text-muted-foreground"},Tt={key:0,class:"mr-1 size-3 animate-spin rounded-full border-2 border-current border-t-transparent"},It={key:1,class:"h-2 rounded-full bg-secondary"},St={key:0,class:"font-medium text-foreground"},Ft={class:"space-y-3 py-2"},Rt={key:0,class:"space-y-2"},Pt={class:"flex flex-wrap gap-x-4 gap-y-1 text-xs text-muted-foreground"},Vt={class:"text-green-600"},Et={key:0,class:"text-yellow-600"},jt={key:1,class:"text-destructive"},At={key:1,class:"text-xs text-muted-foreground"},Nt={key:0,class:"mr-1 size-3 animate-spin rounded-full border-2 border-current border-t-transparent"},ta=50,Zt=P({__name:"index",setup(b){const{t:l}=Sa(),{selectedId:u,selectedLibrary:w}=Na(),D=m([]),xe=m(0),V=m(!1),E=m(""),j=m(0),p=m(new Set),S=m(null),ke=m({x:0,y:0}),we=m(!1),Me=m(null),X=m(!1),B=m({left:0,top:0,width:0,height:0});let le=0,se=0,Ee=new Set,T=0,ze=null;const Y=m(!1),Ce=m(""),H=m(""),ne=m(!1),K=m(!1),$e=m([]),oe=m(!1),q=m(!1),z=m([]),F=m(!1),G=m(0),re=m(!1),Z=m(!1),ie=m(!1),ue=m(!1),J=m(""),I=m(!1),M=m(null);let de=null;function la(){if(!u.value){k.error(l("fileManager.download.noLibrary"));return}J.value="",M.value=null,ue.value=!0}async function sa(){var a,d,t,c;const s=J.value.split(/\r?\n/).map(h=>h.trim()).filter(h=>/^https?:\/\//i.test(h));if(s.length===0){k.error(l("fileManager.download.empty"));return}I.value=!0,M.value=null;try{const U=(d=(a=(await We.start({libraryId:u.value,urls:s})).data)==null?void 0:a.data)==null?void 0:d.batchId;if(!U)throw new Error("no batchId");na(U)}catch(h){k.error(((c=(t=h.response)==null?void 0:t.data)==null?void 0:c.message)||h.message||l("common.failed")),I.value=!1}}function na(s){De(),de=setInterval(async()=>{var a;try{const t=(a=(await We.progress(s)).data)==null?void 0:a.data;if(!t)return;if(M.value=t,t.done){De(),I.value=!1;const c=`${l("fileManager.download.completed")}: ${t.completed}/${t.total}`+(t.failed?`, ${l("fileManager.download.failed")} ${t.failed}`:"")+(t.skipped?`, ${l("fileManager.download.skipped")} ${t.skipped}`:"");k.success(c),await C()}}catch{}},1500)}function De(){de&&(clearInterval(de),de=null)}const oa=ae(()=>{const s=M.value;return!s||!s.total?0:Math.round((s.completed+s.failed+s.skipped)/s.total*100)}),ra=ae(()=>u.value&&z.value.length>0);function ia(s){var a;re.value=!1,(a=s.dataTransfer)!=null&&a.files&&z.value.push(...Array.from(s.dataTransfer.files))}function ua(s){const a=s.target;a.files&&z.value.push(...Array.from(a.files))}function da(s){z.value.splice(s,1)}function ca(){z.value=[],G.value=0,F.value=!1,q.value=!0}async function fa(){if(!(!u.value||!z.value.length)){F.value=!0,G.value=0;try{for(const s of z.value){const a=new FormData;a.append("files",s),a.append("libraryId",u.value),a.append("payload",JSON.stringify({data:{tags:[],folder_id:null}})),await et.uploadProgress(u.value,a,d=>{G.value=d})}k.success(l("fileUpload.uploadSuccess")),z.value=[],q.value=!1,C()}catch{k.error(l("fileUpload.uploadFailed"))}finally{F.value=!1}}}const je=ae(()=>E.value?E.value.split(/[/\\]/).filter(Boolean):[]),pa=ae(()=>j.value+ta<xe.value),Ae=ae(()=>D.value.length>0&&D.value.every(s=>p.value.has(s.path)));function va(s){if(s===0)return"-";const a=["B","KB","MB","GB"];let d=0,t=s;for(;t>=1024&&d<a.length-1;)t/=1024,d++;return`${t.toFixed(d===0?0:1)} ${a[d]}`}function ma(s){var d;if(s.isDir)return"text-blue-500";const a=(d=s.extension)==null?void 0:d.toLowerCase();return[".jpg",".jpeg",".png",".gif",".webp",".bmp",".svg"].includes(a||"")?"text-green-500":[".mp4",".avi",".mkv",".mov",".wmv"].includes(a||"")?"text-purple-500":[".mp3",".wav",".flac",".aac",".ogg"].includes(a||"")?"text-orange-500":"text-muted-foreground"}async function C(s=!1){var a,d;if(u.value){V.value=!0;try{const c=(await te.list({libraryId:u.value,path:E.value||void 0,offset:s?j.value:0,limit:ta})).data;s?D.value.push(...c.items):D.value=c.items,xe.value=c.total,j.value=s?j.value+c.items.length:c.items.length}catch(t){k.error(((d=(a=t.response)==null?void 0:a.data)==null?void 0:d.error)||l("fileManager.loadFailed"))}finally{V.value=!1}}}function Q(s){E.value=s,j.value=0,p.value.clear(),C()}function ga(s){const a=E.value.split(/[/\\]/).filter(Boolean);Q(a.slice(0,s+1).join("/"))}function ba(s){s.isDir&&Q(s.path)}function Ne(s){p.value.has(s.path)?p.value.delete(s.path):p.value.add(s.path)}function _a(){Ae.value?p.value.clear():D.value.forEach(s=>p.value.add(s.path))}function ha(s,a){s.preventDefault(),S.value=a,ke.value={x:s.clientX,y:s.clientY},we.value=!0,setTimeout(()=>{document.addEventListener("click",W,{once:!0})},0)}function W(){we.value=!1,S.value=null}function Ue(s){Ce.value=s,H.value="",Y.value=!0,W()}function Le(s){$e.value=s,K.value=!0,W()}async function ya(s){var a,d;if(!(!s||!u.value)){ne.value=!0;try{await te.move({libraryId:u.value,source:Ce.value,destination:s}),k.success(l("fileManager.moveSuccess")),Y.value=!1,C()}catch(t){k.error(((d=(a=t.response)==null?void 0:a.data)==null?void 0:d.error)||l("fileManager.moveFailed"))}finally{ne.value=!1}}}async function xa(){var s,a;if(u.value){oe.value=!0;try{await te.remove({libraryId:u.value,paths:$e.value}),k.success(l("fileManager.deleteSuccess")),K.value=!1,p.value.clear(),C()}catch(d){k.error(((a=(s=d.response)==null?void 0:s.data)==null?void 0:a.error)||l("fileManager.deleteFailed"))}finally{oe.value=!1}}}function ka(){p.value.size===1&&Ue([...p.value][0])}function wa(){p.value.size>0&&Le([...p.value])}async function Ma(){var s,a,d;if(!(!u.value||p.value.size===0)){ie.value=!0;try{const t=await te.download({libraryId:u.value,paths:[...p.value]}),c=((s=t.headers)==null?void 0:s["content-disposition"])||"";let h="";const U=c.match(/filename\*=UTF-8''([^;]+)/i);if(U&&(h=decodeURIComponent(U[1])),!h){const fe=c.match(/filename="?([^";]+)"?/i);fe&&(h=fe[1])}h||(h=p.value.size===1?[...p.value][0].split(/[/\\]/).pop()||"download":"download.zip");const ce=new Blob([t.data]),ee=URL.createObjectURL(ce),R=document.createElement("a");R.href=ee,R.download=h,document.body.appendChild(R),R.click(),document.body.removeChild(R),URL.revokeObjectURL(ee)}catch(t){k.error(((d=(a=t.response)==null?void 0:a.data)==null?void 0:d.error)||t.message||l("common.failed"))}finally{ie.value=!1}}}async function za(){var s,a;if(u.value){Z.value=!0;try{const d=await te.sync(u.value),{added:t,removed:c,scanned:h}=d.data.data;k.success(l("fileManager.syncResult",{scanned:h,added:t,removed:c})),C()}catch(d){k.error(((a=(s=d.response)==null?void 0:s.data)==null?void 0:a.error)||l("fileManager.syncFailed"))}finally{Z.value=!1}}}function Ca(){C(!0)}function $a(s){if(s.button!==0||s.target.closest("[data-selectable-item]"))return;const a=Me.value;if(!a)return;const d=a.getBoundingClientRect();le=s.clientX-d.left+a.scrollLeft,se=s.clientY-d.top+a.scrollTop,Ee=new Set(p.value),X.value=!0,B.value={left:le,top:se,width:0,height:0},document.addEventListener("mousemove",Be),document.addEventListener("mouseup",Te)}function Be(s){X.value&&(ze=s,!T&&(T=requestAnimationFrame(Da)))}function Da(){T=0;const s=ze;if(!s||!X.value)return;const a=Me.value;if(!a)return;const d=a.getBoundingClientRect(),t=s.clientX-d.left+a.scrollLeft,c=s.clientY-d.top+a.scrollTop,h=Math.min(le,t),U=Math.min(se,c),ce=Math.abs(t-le),ee=Math.abs(c-se);B.value={left:h,top:U,width:ce,height:ee};const R=a.scrollLeft,fe=a.scrollTop,Oe=a.querySelectorAll("[data-selectable-item]"),Xe=new Set(Ee);for(let Ie=0;Ie<Oe.length;Ie++){const Ye=Oe[Ie],pe=Ye.getBoundingClientRect(),He=pe.left-d.left+R,Ke=pe.top-d.top+fe,La=He+pe.width,Ba=Ke+pe.height;h<La&&h+ce>He&&U<Ba&&U+ee>Ke&&Xe.add(Ye.dataset.path)}p.value=Xe}function Te(){X.value=!1,T&&(cancelAnimationFrame(T),T=0),ze=null,document.removeEventListener("mousemove",Be),document.removeEventListener("mouseup",Te)}function Ua(s){s.target.closest("[data-selectable-item]")||p.value.clear()}return Fa(()=>{T&&cancelAnimationFrame(T),document.removeEventListener("mousemove",Be),document.removeEventListener("mouseup",Te),De()}),Ra(u,()=>{E.value="",j.value=0,p.value.clear(),u.value&&C()}),Pa(()=>{u.value&&C()}),(s,a)=>{const d=Aa("DialogDescription");return r(),f("div",{class:"space-y-4",onClick:W},[v("div",nt,[v("div",null,[v("h1",ot,i(e(l)("fileManager.title")),1),v("p",rt,i(e(l)("fileManager.subtitle")),1)]),v("div",it,[p.value.size===0?(r(),y(e(x),{key:0,variant:"outline",size:"sm",disabled:!e(u),onClick:ca},{default:o(()=>[n(e(Ze),{class:"mr-1 size-4"}),g(" "+i(e(l)("nav.fileUpload")),1)]),_:1},8,["disabled"])):_("",!0),p.value.size>0?(r(),y(e(x),{key:1,variant:"outline",size:"sm",disabled:p.value.size!==1,onClick:ka},{default:o(()=>[n(e(Pe),{class:"mr-1 size-4"}),g(" "+i(e(l)("fileManager.move")),1)]),_:1},8,["disabled"])):_("",!0),p.value.size>0?(r(),y(e(x),{key:2,variant:"outline",size:"sm",disabled:ie.value,onClick:Ma},{default:o(()=>[ie.value?(r(),f("span",ut)):(r(),y(e(Je),{key:1,class:"mr-1 size-4"})),g(" "+i(e(l)("fileManager.downloadBatch")),1)]),_:1},8,["disabled"])):_("",!0),p.value.size>0?(r(),y(e(x),{key:3,variant:"destructive",size:"sm",onClick:wa},{default:o(()=>[n(e(Ve),{class:"mr-1 size-4"}),g(" "+i(e(l)("fileManager.delete")),1)]),_:1})):_("",!0),p.value.size===0?(r(),y(e(x),{key:4,variant:"outline",size:"sm",disabled:!e(u),onClick:la},{default:o(()=>[n(e(Je),{class:"mr-1 size-4"}),g(" "+i(e(l)("fileManager.download.urlButton")),1)]),_:1},8,["disabled"])):_("",!0),p.value.size===0?(r(),y(e(x),{key:5,variant:"outline",size:"sm",disabled:!e(u)||V.value,onClick:a[0]||(a[0]=t=>C())},{default:o(()=>[g(i(e(l)("common.refresh")),1)]),_:1},8,["disabled"])):_("",!0),p.value.size===0?(r(),y(e(x),{key:6,variant:"outline",size:"sm",disabled:!e(u)||Z.value,onClick:za},{default:o(()=>[Z.value?(r(),f("span",dt)):(r(),y(e(qa),{key:1,class:"mr-1 size-4"})),g(" "+i(Z.value?e(l)("fileManager.syncing"):e(l)("fileManager.sync")),1)]),_:1},8,["disabled"])):_("",!0)])]),n(e(at),null,{default:o(()=>[n(e(tt),null,{default:o(()=>[n(e(ea),null,{default:o(()=>[n(e(aa),{"as-child":""},{default:o(()=>{var t;return[v("button",{class:"inline-flex items-center gap-1",onClick:a[1]||(a[1]=c=>Q(""))},[n(e(Ga),{class:"size-4"}),g(" "+i(((t=e(w))==null?void 0:t.name)||"Root"),1)])]}),_:1})]),_:1}),(r(!0),f(ve,null,Se(je.value,(t,c)=>(r(),f(ve,{key:c},[n(e(st)),n(e(ea),null,{default:o(()=>[c<je.value.length-1?(r(),y(e(aa),{key:0,"as-child":""},{default:o(()=>[v("button",{onClick:h=>ga(c)},i(t),9,ct)]),_:2},1024)):(r(),y(e(lt),{key:1},{default:o(()=>[g(i(t),1)]),_:2},1024))]),_:2},1024)],64))),128))]),_:1})]),_:1}),D.value.length?(r(),f("div",ft,[v("button",{class:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 hover:bg-accent",onClick:_a},[Ae.value?(r(),y(e(qe),{key:0,class:"size-4 text-primary"})):(r(),y(e(Ge),{key:1,class:"size-4"}))]),p.value.size?(r(),f("span",pt,i(e(l)("fileManager.selected",{n:p.value.size})),1)):_("",!0),v("span",null,i(e(l)("common.total",{n:xe.value})),1)])):_("",!0),v("div",{ref_key:"gridRef",ref:Me,class:"h-[calc(100vh-16rem)] overflow-y-auto relative select-none",onMousedown:$a,onDblclick:Ua},[D.value.length?(r(),f("div",vt,[(r(!0),f(ve,null,Se(D.value,t=>(r(),f("div",{key:t.path,"data-selectable-item":"","data-path":t.path,class:$(["group relative flex cursor-pointer flex-col items-center rounded-lg border p-3 transition-colors hover:bg-accent/50",{"border-primary bg-primary/5":p.value.has(t.path)}]),onClick:A(c=>Ne(t),["exact"]),onDblclick:c=>ba(t),onContextmenu:c=>ha(c,t)},[v("div",{class:"absolute right-1.5 top-1.5 z-10",onClick:A(c=>Ne(t),["stop"])},[v("div",{class:$(["rounded-full p-0.5 opacity-0 transition-opacity group-hover:opacity-100",{"!opacity-100":p.value.has(t.path)}])},[p.value.has(t.path)?(r(),y(e(qe),{key:0,class:"size-4 text-primary"})):(r(),y(e(Ge),{key:1,class:"size-4 text-muted-foreground"}))],2)],8,gt),(r(),y(Ea(t.isDir?e(ye):e(Qe)),{class:$(["size-10 mb-2",ma(t)])},null,8,["class"])),v("span",{class:"w-full truncate text-center text-sm",title:t.name},i(t.name),9,bt),v("span",_t,i(t.isDir?e(l)("fileManager.folder"):va(t.size)),1),n(e(Ka),null,{default:o(()=>[n(e(Ya),{"as-child":""},{default:o(()=>[v("button",{class:"absolute left-2 bottom-2 rounded p-1 opacity-0 hover:bg-accent group-hover:opacity-100",onClick:a[2]||(a[2]=A(()=>{},["stop"]))},[n(e(Za),{class:"size-4"})])]),_:1}),n(e(Ha),{align:"end"},{default:o(()=>[t.isDir?(r(),y(e(Re),{key:0,onClick:c=>Q(t.path)},{default:o(()=>[n(e(ye),{class:"mr-2 size-4"}),g(" "+i(e(l)("fileManager.open")),1)]),_:2},1032,["onClick"])):_("",!0),n(e(Re),{onClick:c=>Ue(t.path)},{default:o(()=>[n(e(Pe),{class:"mr-2 size-4"}),g(" "+i(e(l)("fileManager.move")),1)]),_:2},1032,["onClick"]),n(e(Re),{class:"text-destructive",onClick:c=>Le([t.path])},{default:o(()=>[n(e(Ve),{class:"mr-2 size-4"}),g(" "+i(e(l)("fileManager.delete")),1)]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024)],42,mt))),128))])):_("",!0),!D.value.length&&!V.value?(r(),f("div",ht,[n(e(ye),{class:"size-12 mb-3 opacity-50"}),v("p",null,i(e(l)("fileManager.empty")),1)])):_("",!0),V.value?(r(),f("div",yt,a[19]||(a[19]=[v("span",{class:"size-5 animate-spin rounded-full border-2 border-current border-t-transparent"},null,-1)]))):_("",!0),pa.value&&!V.value?(r(),f("div",xt,[n(e(x),{variant:"outline",onClick:Ca},{default:o(()=>[g(i(e(l)("fileManager.loadMore")),1)]),_:1})])):_("",!0),X.value&&(B.value.width>2||B.value.height>2)?(r(),f("div",{key:4,class:"absolute pointer-events-none border-2 border-primary/60 bg-primary/10 rounded-sm z-20",style:Fe({left:B.value.left+"px",top:B.value.top+"px",width:B.value.width+"px",height:B.value.height+"px"})},null,4)):_("",!0)],544),(r(),y(Va,{to:"body"},[we.value&&S.value?(r(),f("div",{key:0,class:"fixed z-50 min-w-[160px] rounded-md border bg-popover p-1 shadow-md",style:Fe({left:ke.value.x+"px",top:ke.value.y+"px"})},[S.value.isDir?(r(),f("button",{key:0,class:"flex w-full items-center gap-2 rounded-sm px-3 py-1.5 text-sm hover:bg-accent",onClick:a[3]||(a[3]=t=>{Q(S.value.path),W()})},[n(e(ye),{class:"size-4"}),g(" "+i(e(l)("fileManager.open")),1)])):_("",!0),v("button",{class:"flex w-full items-center gap-2 rounded-sm px-3 py-1.5 text-sm hover:bg-accent",onClick:a[4]||(a[4]=t=>Ue(S.value.path))},[n(e(Pe),{class:"size-4"}),g(" "+i(e(l)("fileManager.move")),1)]),v("button",{class:"flex w-full items-center gap-2 rounded-sm px-3 py-1.5 text-sm text-destructive hover:bg-accent",onClick:a[5]||(a[5]=t=>Le([S.value.path]))},[n(e(Ve),{class:"size-4"}),g(" "+i(e(l)("fileManager.delete")),1)])],4)):_("",!0)])),n(e(me),{open:Y.value,"onUpdate:open":a[9]||(a[9]=t=>Y.value=t)},{default:o(()=>[n(e(ge),{class:"sm:max-w-md"},{default:o(()=>[n(e(be),null,{default:o(()=>[n(e(_e),null,{default:o(()=>[g(i(e(l)("fileManager.moveTitle")),1)]),_:1})]),_:1}),v("p",kt,i(e(l)("fileManager.moveDesc",{name:Ce.value.split(/[/\\]/).pop()})),1),n(Oa,{modelValue:H.value,"onUpdate:modelValue":a[6]||(a[6]=t=>H.value=t),placeholder:e(l)("fileManager.selectTarget")},null,8,["modelValue","placeholder"]),n(e(he),null,{default:o(()=>[n(e(x),{variant:"outline",onClick:a[7]||(a[7]=t=>Y.value=!1)},{default:o(()=>[g(i(e(l)("common.cancel")),1)]),_:1}),n(e(x),{disabled:!H.value||ne.value,onClick:a[8]||(a[8]=t=>ya(H.value))},{default:o(()=>[ne.value?(r(),f("span",wt)):_("",!0),g(" "+i(e(l)("fileManager.move")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"]),n(e(me),{open:K.value,"onUpdate:open":a[11]||(a[11]=t=>K.value=t)},{default:o(()=>[n(e(ge),{class:"sm:max-w-sm"},{default:o(()=>[n(e(be),null,{default:o(()=>[n(e(_e),null,{default:o(()=>[g(i(e(l)("fileManager.deleteTitle")),1)]),_:1})]),_:1}),v("p",Mt,i(e(l)("fileManager.deleteConfirm",{n:$e.value.length})),1),n(e(he),null,{default:o(()=>[n(e(x),{variant:"outline",onClick:a[10]||(a[10]=t=>K.value=!1)},{default:o(()=>[g(i(e(l)("common.cancel")),1)]),_:1}),n(e(x),{variant:"destructive",disabled:oe.value,onClick:xa},{default:o(()=>[oe.value?(r(),f("span",zt)):_("",!0),g(" "+i(e(l)("common.delete")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"]),n(e(me),{open:q.value,"onUpdate:open":a[15]||(a[15]=t=>q.value=t)},{default:o(()=>[n(e(ge),{class:"sm:max-w-lg"},{default:o(()=>[n(e(be),null,{default:o(()=>[n(e(_e),null,{default:o(()=>[g(i(e(l)("fileUpload.title")),1)]),_:1})]),_:1}),v("div",{class:$(["rounded-lg border-2 border-dashed p-8 text-center transition-colors",{"border-primary bg-primary/5":re.value}]),onDragover:a[12]||(a[12]=A(t=>re.value=!0,["prevent"])),onDragleave:a[13]||(a[13]=A(t=>re.value=!1,["prevent"])),onDrop:A(ia,["prevent"])},[n(e(Ze),{class:"mx-auto size-10 text-muted-foreground"}),v("p",Ct,i(e(l)("fileUpload.dragHere")),1),v("p",$t,i(e(l)("fileUpload.or")),1),v("label",Dt,[v("input",{type:"file",multiple:"",class:"hidden",onChange:ua},null,32),n(e(x),{variant:"outline",size:"sm",as:"span"},{default:o(()=>[g(i(e(l)("fileUpload.browse")),1)]),_:1})])],34),z.value.length?(r(),f("div",Ut,[(r(!0),f(ve,null,Se(z.value,(t,c)=>(r(),f("div",{key:c,class:"flex items-center gap-3 rounded-md border p-2"},[n(e(Qe),{class:"size-4 shrink-0 text-muted-foreground"}),v("span",Lt,i(t.name),1),v("span",Bt,i((t.size/1024).toFixed(1))+" KB",1),n(e(x),{variant:"ghost",size:"icon",class:"size-6",onClick:h=>da(c)},{default:o(()=>[n(e(Ja),{class:"size-3"})]),_:2},1032,["onClick"])]))),128))])):_("",!0),n(e(he),null,{default:o(()=>[n(e(x),{variant:"outline",onClick:a[14]||(a[14]=t=>q.value=!1)},{default:o(()=>[g(i(e(l)("common.cancel")),1)]),_:1}),n(e(x),{disabled:!ra.value||F.value,onClick:fa},{default:o(()=>[F.value?(r(),f("span",Tt)):_("",!0),g(" "+i(F.value?`${e(l)("fileUpload.uploading")} ${G.value}%`:e(l)("fileUpload.startUpload")),1)]),_:1},8,["disabled"])]),_:1}),F.value?(r(),f("div",It,[v("div",{class:"h-full rounded-full bg-primary transition-all",style:Fe({width:`${G.value}%`})},null,4)])):_("",!0)]),_:1})]),_:1},8,["open"]),n(e(me),{open:ue.value,"onUpdate:open":a[18]||(a[18]=t=>ue.value=t)},{default:o(()=>[n(e(ge),{class:"sm:max-w-[600px]"},{default:o(()=>[n(e(be),null,{default:o(()=>[n(e(_e),null,{default:o(()=>[g(i(e(l)("fileManager.download.urlButton")),1)]),_:1}),n(d,null,{default:o(()=>[g(i(e(l)("fileManager.download.subtitle"))+" ",1),e(w)?(r(),f("span",St,i(e(w).name),1)):_("",!0)]),_:1})]),_:1}),v("div",Ft,[n(e(Xa),{modelValue:J.value,"onUpdate:modelValue":a[16]||(a[16]=t=>J.value=t),placeholder:e(l)("fileManager.download.placeholder"),rows:"8",class:"font-mono text-xs",disabled:I.value},null,8,["modelValue","placeholder","disabled"]),M.value?(r(),f("div",Rt,[n(e(ja),{"model-value":oa.value},null,8,["model-value"]),v("div",Pt,[v("span",null,i(e(l)("fileManager.download.total",{n:M.value.total})),1),v("span",Vt,i(e(l)("fileManager.download.completed",{n:M.value.completed})),1),M.value.skipped?(r(),f("span",Et,i(e(l)("fileManager.download.skipped",{n:M.value.skipped})),1)):_("",!0),M.value.failed?(r(),f("span",jt,i(e(l)("fileManager.download.failed",{n:M.value.failed})),1)):_("",!0)])])):(r(),f("p",At,i(e(l)("fileManager.download.cookieHint")),1))]),n(e(he),null,{default:o(()=>[n(e(x),{variant:"outline",disabled:I.value,onClick:a[17]||(a[17]=t=>ue.value=!1)},{default:o(()=>{var t;return[g(i((t=M.value)!=null&&t.done?e(l)("common.confirm"):e(l)("common.cancel")),1)]}),_:1},8,["disabled"]),n(e(x),{disabled:I.value||!J.value.trim(),onClick:sa},{default:o(()=>[I.value?(r(),f("span",Nt)):_("",!0),g(" "+i(I.value?e(l)("common.loading"):e(l)("fileManager.download.start")),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])])}}});export{Zt as default};