@brftech/filex-core 0.1.56 → 0.1.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +108 -108
- package/dist/{ArchiveViewer-CJdaw5x3.js → ArchiveViewer-CbUUEREI.js} +20 -20
- package/dist/ArchiveViewer-CbUUEREI.js.map +1 -0
- package/dist/{CsvViewer-QYx_tePQ.js → CsvViewer-72rDsQJX.js} +3 -3
- package/dist/CsvViewer-72rDsQJX.js.map +1 -0
- package/dist/{DrawioViewer-GWt0TyB7.js → DrawioViewer-DSyMwGvg.js} +7 -7
- package/dist/DrawioViewer-DSyMwGvg.js.map +1 -0
- package/dist/{EpubViewer-Je0ywklQ.js → EpubViewer-DvDa17d7.js} +3 -3
- package/dist/EpubViewer-DvDa17d7.js.map +1 -0
- package/dist/{IpynbViewer-TsB4gqP-.js → IpynbViewer-DibIkdsz.js} +3 -3
- package/dist/IpynbViewer-DibIkdsz.js.map +1 -0
- package/dist/{MermaidViewer-CXfeDS-7.js → MermaidViewer-BoFLtGvl.js} +3 -3
- package/dist/MermaidViewer-BoFLtGvl.js.map +1 -0
- package/dist/{PsdViewer-VtPpxKVe.js → PsdViewer-K2iZkwax.js} +3 -3
- package/dist/PsdViewer-K2iZkwax.js.map +1 -0
- package/dist/{TiffViewer-OINn9bbb.js → TiffViewer-JzDzbqpO.js} +3 -3
- package/dist/TiffViewer-JzDzbqpO.js.map +1 -0
- package/dist/{Viewer3D-xvvyiWHd.js → Viewer3D-WEMYCP8l.js} +7 -7
- package/dist/Viewer3D-WEMYCP8l.js.map +1 -0
- package/dist/filex-core.js +1 -1
- package/dist/filex-core.umd.cjs +4 -4
- package/dist/filex-core.umd.cjs.map +1 -1
- package/dist/{index-CmSYzt6L.js → index-B5YT-m5Q.js} +209 -209
- package/dist/index-B5YT-m5Q.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/useViewerFetch-czqbd2Lj.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Breadcrumb.vue +282 -282
- package/src/components/ContextMenu.vue +152 -152
- package/src/components/GridView.vue +166 -166
- package/src/components/ListView.vue +212 -212
- package/src/components/PendingOpsTray.vue +91 -91
- package/src/components/RecentlyOpened.vue +155 -155
- package/src/components/StarButton.vue +101 -101
- package/src/components/TagPicker.vue +184 -184
- package/src/components/Toolbar.vue +220 -220
- package/src/components/UploadProgress.vue +78 -78
- package/src/composables/useFileApi.ts +692 -692
- package/src/composables/useKeyboardShortcuts.ts +144 -144
- package/src/composables/useLocale.ts +60 -60
- package/src/composables/useMonacoLoader.ts +98 -98
- package/src/composables/usePendingOps.ts +200 -200
- package/src/composables/useSelection.ts +81 -81
- package/src/composables/useUploadChunked.ts +250 -250
- package/src/composables/useViewerFetch.ts +58 -58
- package/src/index.ts +80 -80
- package/src/locales/en.ts +122 -122
- package/src/locales/index.ts +12 -12
- package/src/locales/tr.ts +122 -122
- package/src/modals/DeleteConfirmModal.vue +32 -32
- package/src/modals/Modal.vue +104 -104
- package/src/modals/NewFolderModal.vue +64 -64
- package/src/modals/PermissionsModal.vue +815 -815
- package/src/modals/PreviewModal.vue +1070 -1070
- package/src/modals/RenameModal.vue +58 -58
- package/src/modals/ShareModal.vue +135 -135
- package/src/styles/base.css +1224 -1224
- package/src/styles/variables.css +90 -90
- package/src/types/FileNode.ts +136 -136
- package/src/types/index.ts +27 -27
- package/src/types/peers.d.ts +45 -45
- package/src/viewers/ArchiveViewer.vue +186 -186
- package/src/viewers/CsvViewer.vue +319 -319
- package/src/viewers/DrawioViewer.vue +243 -243
- package/src/viewers/EpubViewer.vue +307 -307
- package/src/viewers/IpynbViewer.vue +365 -365
- package/src/viewers/MermaidViewer.vue +259 -259
- package/src/viewers/PdfViewer.vue +562 -562
- package/src/viewers/PsdViewer.vue +264 -264
- package/src/viewers/TiffViewer.vue +273 -273
- package/src/viewers/Viewer3D.vue +120 -120
- package/dist/ArchiveViewer-CJdaw5x3.js.map +0 -1
- package/dist/CsvViewer-QYx_tePQ.js.map +0 -1
- package/dist/DrawioViewer-GWt0TyB7.js.map +0 -1
- package/dist/EpubViewer-Je0ywklQ.js.map +0 -1
- package/dist/IpynbViewer-TsB4gqP-.js.map +0 -1
- package/dist/MermaidViewer-CXfeDS-7.js.map +0 -1
- package/dist/PsdViewer-VtPpxKVe.js.map +0 -1
- package/dist/TiffViewer-OINn9bbb.js.map +0 -1
- package/dist/Viewer3D-xvvyiWHd.js.map +0 -1
- package/dist/index-CmSYzt6L.js.map +0 -1
package/dist/filex-core.umd.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
(function(zt,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(zt=typeof globalThis<"u"?globalThis:zt||self,l(zt.FilexCore={},zt.Vue))})(this,function(zt,l){"use strict";function Qs(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(n,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function To(e){return!!e&&e.enabled&&e.state==="ok"}function ec(e){const t=e.apiBase!=null?e.apiBase.replace(/\/+$/,""):null;function r(a,i){return a||(t===null?null:`${t}${i}`)}const n=e.endpoint??(t!==null?`${t}/api/files/manager`:null);if(!n)throw new Error("[@brftech/filex-core] config requires either `apiBase` or `endpoint`");return{manager:n,uploadInit:r(e.uploadInit,"/api/files/upload/init"),uploadFinalize:r(e.uploadFinalize,"/api/files/upload/finalize"),uploadAbort:r(e.uploadAbort,"/api/files/upload/abort"),shareCreate:r(e.shareCreate,"/api/files/share"),shareList:r(e.shareList,"/api/files/share"),shareDelete:r(e.shareDelete,"/api/files/share/{uuid}"),limits:r(e.limits,"/api/files/limits"),capabilities:r(e.capabilities,"/api/files/capabilities"),archiveList:r(e.archiveList,"/api/files/archive/list"),archiveExtract:r(e.archiveExtract,"/api/files/archive/extract"),archiveAdd:r(e.archiveAdd,"/api/files/archive/add"),copy:r(e.copy,"/api/files/copy"),moveAsync:r(e.moveAsync,"/api/files/move"),deleteAsync:r(e.deleteAsync,"/api/files/delete"),opsList:r(e.opsList,"/api/files/ops"),opsShow:r(e.opsShow,"/api/files/ops/{id}"),onlyOfficeConfig:r(e.onlyOfficeConfig,"/api/files/onlyoffice/config"),saveText:r(e.saveText,"/api/files/save-text"),restore:r(e.restore,"/api/files/restore"),trashList:r(e.trashList,"/api/files/manager/trash"),trashRestore:r(e.trashRestore,"/api/files/manager/restore")}}async function Kp(e){if(typeof e=="function"){const t=e();return t instanceof Promise?await t:t}return e}function Yp(e){return e?"kind"in e?e:e.type==="bearer"?{kind:"bearer",token:e.token}:e.type==="csrf"?{kind:"csrf",csrf:e.csrf}:{kind:"none"}:{kind:"none"}}function tc(e){const t=ec(e),r=Yp(e.auth);async function n(te={}){const se={Accept:"application/json",...te};if(r.kind==="bearer"){const ie=await Kp(r.token);ie&&(se.Authorization=`Bearer ${ie}`)}else if(r.kind==="csrf")se["X-CSRF-TOKEN"]=r.csrf,se["X-Requested-With"]="XMLHttpRequest";else if(r.kind==="basic"){const ie=btoa(`${r.user}:${r.pass}`);se.Authorization=`Basic ${ie}`}return se}function a(te={}){const se={Accept:"application/json",...te};if(r.kind==="bearer"&&typeof r.token=="string")se.Authorization=`Bearer ${r.token}`;else if(r.kind==="csrf")se["X-CSRF-TOKEN"]=r.csrf,se["X-Requested-With"]="XMLHttpRequest";else if(r.kind==="basic"){const ie=btoa(`${r.user}:${r.pass}`);se.Authorization=`Basic ${ie}`}return se}function i(){return r.kind==="csrf"?"include":"same-origin"}function o(te){const se=(e.locale??"tr")!=="en",_e={400:["Geçersiz istek","Bad request"],401:["Oturum gerekli, tekrar giriş yapın","Sign-in required"],403:["Bu işlem için yetkiniz yok","You are not allowed to do this"],404:["Bulunamadı","Not found"],409:["Zaten var / çakışma","Already exists / conflict"],413:["Dosya çok büyük","File too large"],415:["Bu dosya türü desteklenmiyor","Unsupported file type"],422:["Geçersiz veri","Invalid data"],429:["Çok fazla istek, biraz bekleyin","Too many requests"],500:["Sunucu hatası","Server error"],501:["Bu işlem desteklenmiyor","Not supported"],503:["Servis şu an kullanılamıyor","Service unavailable"]}[te];return _e?se?_e[0]:_e[1]:se?`Hata (${te})`:`Error (${te})`}async function s(te,se={}){const ie={...await n(),...se.headers??{}},_e=await fetch(te,{...se,headers:ie,credentials:i()});if(!_e.ok){const He=await _e.text().catch(()=>""),je=new Error(o(_e.status));throw je.status=_e.status,je.detail=He.slice(0,300),je}return _e.json()}function c(te=""){return t.manager.replace(/\/manager(\?.*)?$/,"/permissions")+te}async function u(te){return s(c()+"?path="+encodeURIComponent(te))}async function f(te){return s(c("/resolve")+"?email="+encodeURIComponent(te))}async function h(te){return s(c("/users")+"?q="+encodeURIComponent(te))}async function d(te){return s(c(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}async function p(te,se){return s(c("/"+te),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:se})})}async function w(te){return s(c("/"+te),{method:"DELETE"})}async function m(te){return s(c("/invite"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}async function _(te){return s(c("/share-mail"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}function y(te){const se=new URLSearchParams;for(const[ie,_e]of Object.entries(te))_e!=null&&se.set(ie,String(_e));return se.toString()}function g(te,se={}){const ie=t.manager.includes("?")?"&":"?";return`${t.manager}${ie}${y({q:te,action:te,...se})}`}async function b(te){return s(g("index",{path:te}))}async function v(te,se){return s(g("search",{path:te,filter:se}))}async function E(te){return s(g("subfolders",{path:te}))}async function C(te,se){return s(g("newfolder"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,name:se})})}async function A(te,se,ie){return s(g("rename"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,item:se,name:ie})})}async function k(te,se,ie){return s(g("move"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,item:ie,items:se.map(_e=>({path:_e}))})})}async function B(te,se){return s(g("delete"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,items:se.map(ie=>({path:ie}))})})}async function T(te,se){if(!t.copy)throw new Error("copy endpoint not configured");return s(t.copy,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te,target:se})})}async function F(te,se,ie){if(!t.moveAsync)throw new Error("moveAsync endpoint not configured");return s(t.moveAsync,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te,target:se,sourceDir:ie})})}async function V(te,se){if(!t.deleteAsync)throw new Error("deleteAsync endpoint not configured");return s(t.deleteAsync,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te,sourceDir:se})})}async function L(te){if(!t.restore)throw new Error("restore endpoint not configured");return s(t.restore,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te})})}async function H(te){if(!t.trashList)throw new Error("trashList endpoint not configured");const se=t.trashList,ie=se.includes("?")?"&":"?",_e=te?`${se}${ie}storage=${encodeURIComponent(te)}`:se;return s(_e)}async function X(te){const se=t.trashRestore;if(!se)throw new Error("trashRestore endpoint not configured");let ie=0;for(const _e of te)try{await s(se,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_id:_e})}),ie++}catch{}return{restored:ie}}async function W(te,se,ie){const _e=new FormData;_e.append("path",te);for(const je of se)_e.append("file[]",je,je.name);const He=await n();return new Promise((je,Ve)=>{const ge=new XMLHttpRequest;ge.open("POST",g("upload"));for(const[Ce,ve]of Object.entries(He))Ce!=="Content-Type"&&ge.setRequestHeader(Ce,ve);ge.withCredentials=i()==="include",ge.upload.onprogress=Ce=>{ie&&Ce.lengthComputable&&ie(Math.round(Ce.loaded/Ce.total*100))},ge.onload=()=>{if(ge.status>=200&&ge.status<300)try{je(JSON.parse(ge.responseText))}catch(Ce){Ve(Ce)}else Ve(new Error(`${ge.status} ${ge.statusText}: ${ge.responseText.slice(0,200)}`))},ge.onerror=()=>Ve(new Error("Network error")),ge.send(_e)})}function Z(te){return g("download",{path:te})}function Q(te){return g("preview",{path:te})}async function K(te){const se=await n(),ie=await fetch(Q(te),{headers:se,credentials:i()});if(!ie.ok){const Ve=await ie.text().catch(()=>"");throw new Error(`${ie.status} ${ie.statusText}${Ve?" — "+Ve.slice(0,200):""}`)}const _e=await ie.blob(),He=_e.type||ie.headers.get("content-type")||"";return{url:URL.createObjectURL(_e),blob:_e,mime:He}}async function ue(te){const se=await n(),ie=await fetch(Q(te),{headers:se,credentials:i()});if(!ie.ok){const _e=await ie.text().catch(()=>"");throw new Error(`${ie.status} ${ie.statusText}${_e?" — "+_e.slice(0,200):""}`)}return ie.arrayBuffer()}async function ne(){return t.limits?s(t.limits):{max_upload_mb:1024}}async function fe(){return t.capabilities?s(t.capabilities):{ffmpeg:!1,ghostscript:!1,libreoffice:!1,max_chunk_mb:5,upload_limit_mb:1024,onlyoffice_url:e.onlyOfficeBase??null,drawio_url:e.drawioBase??null,convert_url:e.convertBase??null}}async function re(te){if(!t.shareCreate)throw new Error("shareCreate endpoint not configured");return s(t.shareCreate,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}async function ye(te){if(!t.shareList)return{shares:[]};const se=t.shareList.includes("?")?"&":"?";return s(`${t.shareList}${se}path=${encodeURIComponent(te)}`)}async function he(te){if(!t.shareDelete)throw new Error("shareDelete endpoint not configured");const se=t.shareDelete.replace("{uuid}",encodeURIComponent(te));return s(se,{method:"DELETE"})}async function ke(te){if(!t.archiveList)throw new Error("archiveList endpoint not configured");return{entries:(await s(t.archiveList,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te})})).entries.map(ie=>({name:ie.name,size:ie.size,isDir:ie.is_dir,lastModified:ie.mtime}))}}async function Ee(te,se){if(!t.archiveExtract)throw new Error("archiveExtract endpoint not configured");return s(t.archiveExtract,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,members:se})})}async function me(te,se){if(!t.archiveAdd)throw new Error("archiveAdd endpoint not configured");return s(t.archiveAdd,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,files:se})})}return{index:b,search:v,subfolders:E,newFolder:C,rename:A,move:k,copy:T,moveAsync:F,deleteAsync:V,deleteItems:B,restore:L,listTrash:H,restoreIds:X,uploadMultipart:W,downloadUrl:Z,previewUrl:Q,fetchBlob:K,fetchArrayBuffer:ue,limits:ne,capabilities:fe,createShare:re,listShares:ye,revokeShare:he,archiveList:ke,archiveExtract:Ee,archiveAdd:me,listPermissions:u,resolveEmail:f,searchUsers:h,addPermission:d,updatePermission:p,deletePermission:w,invitePermission:m,shareMail:_,endpoints:t,authHeaders:n,authHeadersSync:a,credentialsMode:i,jsonFetch:s}}function rc(e,t){const r=e.chunkSize??5242880,n=Math.max(1,Math.min(8,e.parallelChunks??4));async function a(i){var d,p;const o=i.chunkSize??r,s=i.parallelChunks??n,c={id:crypto.randomUUID(),file:i.file,path:i.path,totalBytes:i.file.size,uploadedBytes:0,percent:0,status:"initializing",cancel:()=>{}};let u=!1;const f=[];c.cancel=()=>{u=!0;for(const w of f)w.abort()};function h(){var w;c.percent=c.totalBytes>0?Math.min(100,Math.round(c.uploadedBytes/c.totalBytes*100)):0,(w=i.onProgress)==null||w.call(i,c)}try{if(!t.endpoints.uploadInit)throw new Error("uploadInit not configured");const w=await t.jsonFetch(t.endpoints.uploadInit,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:i.path,filename:i.file.name,size:i.file.size,mime:i.file.type||"application/octet-stream"})});c.uploadId=w.uploadId,c.status="uploading",h();const m=w.chunkBytes??o,_=new Map,y=[];let g=0;async function b(B){const F=(B.partNumber-1)*(w.chunkBytes??o),V=Math.min(F+(w.chunkBytes??o),i.file.size),L=i.file.slice(F,V),H=new AbortController;f.push(H),await new Promise((X,W)=>{const Z=new XMLHttpRequest;Z.open("PUT",B.presignedUrl),Z.upload.onprogress=Q=>{if(Q.lengthComputable){const K=_.get(B.partNumber)??0,ue=Q.loaded-K;_.set(B.partNumber,Q.loaded),c.uploadedBytes+=ue,h()}},Z.onload=()=>{if(Z.status>=200&&Z.status<300){const Q=(Z.getResponseHeader("ETag")||Z.getResponseHeader("etag")||"").trim();if(!Q){W(new Error("Missing ETag on S3 response"));return}const K=V-F,ue=_.get(B.partNumber)??0;ue<K&&(c.uploadedBytes+=K-ue,_.set(B.partNumber,K)),y.push({partNumber:B.partNumber,etag:Q}),X()}else W(new Error(`S3 PUT ${B.partNumber} → ${Z.status}: ${Z.responseText.slice(0,200)}`))},Z.onerror=()=>W(new Error(`S3 PUT ${B.partNumber} network error`)),Z.onabort=()=>W(new DOMException("Aborted","AbortError")),H.signal.addEventListener("abort",()=>Z.abort()),Z.send(L)})}const v=2;async function E(B,T=0){try{await b(B)}catch(F){if(u)throw F;const V=F instanceof Error?F:new Error(String(F));if(V.name==="AbortError"||T>=v)throw V;const L=_.get(B.partNumber)??0;L>0&&(c.uploadedBytes=Math.max(0,c.uploadedBytes-L),_.delete(B.partNumber),h());const H=500*(T+1)+Math.floor(Math.random()*250);return await new Promise(X=>setTimeout(X,H)),E(B,T+1)}}async function C(){for(;!u&&g<w.parts.length;){const B=w.parts[g++];await E(B)}}const A=[];for(let B=0;B<s;B++)A.push(C());if(await Promise.all(A),u)throw new DOMException("Aborted by user","AbortError");if(!t.endpoints.uploadFinalize)throw new Error("uploadFinalize not configured");c.status="finalizing",y.sort((B,T)=>B.partNumber-T.partNumber);const k=await t.jsonFetch(t.endpoints.uploadFinalize,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uploadId:w.uploadId,parts:y})});return c.status="done",c.uploadedBytes=c.totalBytes,c.percent=100,h(),(d=i.onDone)==null||d.call(i,c,k),k}catch(w){const m=w instanceof Error?w:new Error(String(w));if(c.status=m.name==="AbortError"?"aborted":"error",c.error=m.message,h(),c.uploadId&&t.endpoints.uploadAbort&&c.status==="aborted")try{await t.jsonFetch(t.endpoints.uploadAbort,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uploadId:c.uploadId})})}catch{}throw(p=i.onError)==null||p.call(i,c,m),m}}return{uploadFile:a}}function nc(e){const t=l.ref(new Set),r=l.ref(null);function n(d,p={}){if(p.shift&&r.value){const w=e(),m=w.findIndex(v=>v.path===r.value),_=w.findIndex(v=>v.path===d);if(m===-1||_===-1){t.value=new Set([d]),r.value=d;return}const[y,g]=m<_?[m,_]:[_,m],b=new Set;for(let v=y;v<=g;v++)b.add(w[v].path);t.value=b;return}if(p.ctrl){const w=new Set(t.value);w.has(d)?w.delete(d):w.add(d),t.value=w,r.value=d;return}t.value=new Set([d]),r.value=d}function a(){t.value=new Set,r.value=null}function i(){t.value=new Set(e().map(d=>d.path))}function o(d){return t.value.has(d)}function s(d){const p=new Set(t.value);p.add(d),t.value=p}function c(d){const p=new Set(t.value);p.delete(d),t.value=p}const u=l.computed(()=>t.value.size),f=l.computed(()=>t.value.size===0),h=l.computed(()=>e().filter(p=>t.value.has(p.path)));return{selected:t,anchor:r,click:n,clear:a,selectAll:i,has:o,add:s,remove:c,size:u,isEmpty:f,nodes:h}}function ac(e,t){function r(n){var s;if(!e.value)return;const i=n.target;if(i&&(i.tagName==="INPUT"||i.tagName==="TEXTAREA"||i.isContentEditable)&&n.key!=="Escape")return;const o=n.ctrlKey||n.metaKey;switch(n.key){case"Delete":t.onDelete&&(n.preventDefault(),t.onDelete());break;case"Backspace":(s=t.hasSelection)!=null&&s.call(t)&&t.onDelete?(n.preventDefault(),t.onDelete()):t.onGoUp&&(n.preventDefault(),t.onGoUp());break;case"F2":t.onRename&&(n.preventDefault(),t.onRename());break;case"Enter":t.onOpen&&t.onOpen();break;case"Escape":t.onClose&&t.onClose();break;case"/":t.onFocusSearch&&!o&&(n.preventDefault(),t.onFocusSearch());break;case"a":case"A":o&&t.onSelectAll&&(n.preventDefault(),t.onSelectAll());break;case"x":case"X":o&&t.onCut&&(n.preventDefault(),t.onCut());break;case"c":case"C":o&&t.onCopy&&(n.preventDefault(),t.onCopy());break;case"v":case"V":o&&t.onPaste&&(n.preventDefault(),t.onPaste());break;case"d":case"D":o&&t.onDuplicate&&(n.preventDefault(),t.onDuplicate());break;case"k":case"K":o&&t.onPathJump&&(n.preventDefault(),t.onPathJump());break;case"ArrowUp":n.altKey&&t.onGoUp&&(n.preventDefault(),t.onGoUp());break}}l.onMounted(()=>window.addEventListener("keydown",r)),l.onBeforeUnmount(()=>window.removeEventListener("keydown",r))}const ic={"toolbar.new_folder":"Yeni Klasör","toolbar.upload":"Yükle","toolbar.search":"Ara","toolbar.search.placeholder":"Dosya adı…","toolbar.view.list":"Liste","toolbar.view.grid":"Izgara","toolbar.refresh":"Yenile","toolbar.go_up":"Üst Klasör","ctx.open":"Aç","ctx.preview":"Önizle","ctx.download":"İndir","ctx.convert":"Dönüştür","ctx.rename":"Yeniden Adlandır","ctx.delete":"Sil","ctx.delete_perm":"Kalıcı Olarak Sil","ctx.restore":"Geri Getir","ctx.share":"Paylaş","ctx.move":"Taşı","ctx.copy":"Kopyala","ctx.cut":"Kes","ctx.paste":"Yapıştır","ctx.info":"Bilgi","ctx.duplicate":"Kopyasını Oluştur","ctx.new_file":"Yeni Dosya","modal.delete.title":"Silinsin mi?","modal.delete.message":"{count} öğe çöpe atılacak.","modal.delete.confirm":"Çöpe At","modal.delete.cancel":"Vazgeç","modal.rename.title":"Yeniden Adlandır","modal.rename.save":"Kaydet","modal.rename.cancel":"Vazgeç","modal.newfolder.title":"Yeni Klasör","modal.newfolder.placeholder":"Klasör adı","modal.newfolder.create":"Oluştur","modal.newfolder.cancel":"Vazgeç","modal.share.title":"Paylaşım Linki","modal.share.pin":"PIN koruması","modal.share.expires":"Son kullanma","modal.share.max_downloads":"İndirme limiti","modal.share.create":"Paylaş","modal.share.cancel":"Vazgeç","modal.share.copy":"Kopyala","modal.share.url_copied":"Link kopyalandı","modal.share.pin_copied":"PIN kopyalandı","modal.share.cli_copied":"CLI komutu kopyalandı","upload.progress":"Yükleniyor","upload.done":"Tamamlandı","upload.error":"Hata","upload.aborted":"İptal edildi","upload.cancel":"İptal","empty.folder":"Bu klasör boş","empty.search":"Sonuç bulunamadı",loading:"Yükleniyor…","col.name":"Ad","col.size":"Boyut","col.modified":"Tarih","col.type":"Tür","unit.bytes":"B","unit.kb":"KB","unit.mb":"MB","unit.gb":"GB","unit.tb":"TB","breadcrumb.root":"Kök","breadcrumb.copy_path":"Yolu Kopyala","breadcrumb.go_to_path":"Yola Git","breadcrumb.path_placeholder":"fileman/foo/bar","ops.copy":"Kopyalanıyor","ops.move":"Taşınıyor","ops.delete":"Siliniyor","ops.queued":"sırada","ops.done":"tamamlandı","ops.error":"hata","node.trash":"Çöp Kutusu","viewer.open_in_new_tab":"Yeni Sekmede Aç","viewer.loading":"Yükleniyor…","viewer.failed_to_load":"Dosya yüklenemedi","viewer.peer_not_installed":"Bu dosya tipi için opsiyonel kütüphane kurulu değil. Peer dependency yükle veya İndir düğmesini kullan.","viewer.format_unsupported_3d":"Bu 3B format tarayıcı önizlemesinde desteklenmiyor (model-viewer yalnızca .glb / .gltf / .usdz okur). Lütfen indirip yerel bir araçta açın.","viewer.zoom_in":"Yakınlaştır","viewer.zoom_out":"Uzaklaştır","viewer.fit_width":"Sayfa genişliğine sığdır","viewer.next_page":"Sonraki sayfa","viewer.prev_page":"Önceki sayfa","viewer.page_n_of_m":"Sayfa {n} / {m}","viewer.tags":"Etiketler","viewer.layers":"Katmanlar","viewer.toc":"İçindekiler","viewer.font_smaller":"Yazıyı küçült","viewer.font_larger":"Yazıyı büyüt","viewer.search":"Ara","viewer.download":"İndir","viewer.save_annotations":"Açıklamaları kaydet","viewer.annotations_on":"Açıklamalar: açık","viewer.annotations_off":"Açıklamalar: kapalı","viewer.read_only":"Salt okunur","viewer.csv_first_row_header":"İlk satır başlık olsun","viewer.csv_filter":"Satır filtrele…","viewer.epub_prev":"Önceki","viewer.epub_next":"Sonraki","viewer.drawio.disabled":"diagrams.net editörü bu filex kurulumunda yapılandırılmamış — yönetici FILEX_DRAWIO_URL'yi ayarlamalı.","viewer.archive.entries":"{n} dosya","viewer.archive.empty":"Arşiv boş.","viewer.archive.error":"Arşiv okunamadı.","viewer.name":"Ad","viewer.size":"Boyut"},oc={"toolbar.new_folder":"New Folder","toolbar.upload":"Upload","toolbar.search":"Search","toolbar.search.placeholder":"File name…","toolbar.view.list":"List","toolbar.view.grid":"Grid","toolbar.refresh":"Refresh","toolbar.go_up":"Up one level","ctx.open":"Open","ctx.preview":"Preview","ctx.download":"Download","ctx.convert":"Convert","ctx.rename":"Rename","ctx.delete":"Delete","ctx.delete_perm":"Delete Permanently","ctx.restore":"Restore","ctx.share":"Share","ctx.move":"Move","ctx.copy":"Copy","ctx.cut":"Cut","ctx.paste":"Paste","ctx.info":"Info","ctx.duplicate":"Duplicate","ctx.new_file":"New File","modal.delete.title":"Delete?","modal.delete.message":"{count} item(s) will be moved to trash.","modal.delete.confirm":"Move to Trash","modal.delete.cancel":"Cancel","modal.rename.title":"Rename","modal.rename.save":"Save","modal.rename.cancel":"Cancel","modal.newfolder.title":"New Folder","modal.newfolder.placeholder":"Folder name","modal.newfolder.create":"Create","modal.newfolder.cancel":"Cancel","modal.share.title":"Share Link","modal.share.pin":"PIN protected","modal.share.expires":"Expires at","modal.share.max_downloads":"Download limit","modal.share.create":"Share","modal.share.cancel":"Cancel","modal.share.copy":"Copy","modal.share.url_copied":"Link copied","modal.share.pin_copied":"PIN copied","modal.share.cli_copied":"CLI command copied","upload.progress":"Uploading","upload.done":"Done","upload.error":"Error","upload.aborted":"Aborted","upload.cancel":"Cancel","empty.folder":"This folder is empty","empty.search":"No results",loading:"Loading…","col.name":"Name","col.size":"Size","col.modified":"Modified","col.type":"Type","unit.bytes":"B","unit.kb":"KB","unit.mb":"MB","unit.gb":"GB","unit.tb":"TB","breadcrumb.root":"Root","breadcrumb.copy_path":"Copy Path","breadcrumb.go_to_path":"Go To Path","breadcrumb.path_placeholder":"fileman/foo/bar","ops.copy":"Copying","ops.move":"Moving","ops.delete":"Deleting","ops.queued":"queued","ops.done":"done","ops.error":"error","node.trash":"Trash","viewer.open_in_new_tab":"Open in New Tab","viewer.loading":"Loading…","viewer.failed_to_load":"Failed to load file","viewer.peer_not_installed":"Optional viewer library is not installed. Install the peer dependency or use the download button.","viewer.format_unsupported_3d":"This 3D format is not supported in the browser preview (model-viewer only reads .glb / .gltf / .usdz). Please download and open with a local tool.","viewer.zoom_in":"Zoom in","viewer.zoom_out":"Zoom out","viewer.fit_width":"Fit width","viewer.next_page":"Next page","viewer.prev_page":"Previous page","viewer.page_n_of_m":"Page {n} of {m}","viewer.tags":"Tags","viewer.layers":"Layers","viewer.toc":"Contents","viewer.font_smaller":"Smaller text","viewer.font_larger":"Larger text","viewer.search":"Search","viewer.download":"Download","viewer.save_annotations":"Save annotations","viewer.annotations_on":"Annotations: on","viewer.annotations_off":"Annotations: off","viewer.read_only":"Read only","viewer.csv_first_row_header":"First row as header","viewer.csv_filter":"Filter rows…","viewer.epub_prev":"Previous","viewer.epub_next":"Next","viewer.drawio.disabled":"diagrams.net embed is not configured for this filex instance — operator must wire FILEX_DRAWIO_URL to enable the editor.","viewer.archive.entries":"{n} files","viewer.archive.empty":"Archive is empty.","viewer.archive.error":"Could not read archive contents.","viewer.name":"Name","viewer.size":"Size"},Mo={tr:ic,en:oc};function _r(e){const t=l.computed(()=>{const i=typeof e=="function"?e():e.value;return Mo[i]??Mo.tr});function r(i,o={}){const s=t.value[i]??i;return Object.entries(o).reduce((c,[u,f])=>c.replaceAll(`{${u}}`,String(f)),s)}function n(i){if(i==null||i<=0)return"—";const o=[[1024**4,"unit.tb"],[1024**3,"unit.gb"],[1024**2,"unit.mb"],[1024,"unit.kb"],[1,"unit.bytes"]];for(const[s,c]of o)if(i>=s){const u=i/s;return`${u>=100?Math.round(u):u.toFixed(u>=10?1:2)} ${r(c)}`}return`${i} ${r("unit.bytes")}`}function a(i){if(i.basename===".trash")return r("node.trash");const o=i.basename.match(/^\d{8}-\d{6}-[A-Za-z0-9]+__(.+)$/);return o?o[1]:i.basename}return{t:r,formatSize:n,nodeDisplayName:a}}const Jp=2e3,Qp=8e3;function lc(e){const t=(...s)=>{for(const c of s)if(typeof c=="number")return c;return 0},r=(...s)=>{for(const c of s)if(typeof c=="string"&&c!=="")return c;return null},n=String(e.status??"pending"),a=n==="ok"||n==="done"?"done":n==="failed"||n==="partial"||n==="error"?"error":n==="running"?"running":"pending",i=Array.isArray(e.sources)?e.sources:[],o=r(e.op_type,e.kind)??"delete";return{id:t(e.id),op_type:o==="copy"||o==="move"?o:"delete",status:a,progress_total:t(e.progress_total,e.total,i.length),progress_done:t(e.progress_done,e.done),target_path:r(e.target_path,e.dest),source_dir:r(e.source_dir),source_count:t(e.source_count,i.length),error_message:r(e.error_message,e.error),started_at:r(e.started_at),finished_at:r(e.finished_at),created_at:r(e.created_at)}}function sc(e,t,r={}){const n=l.ref([]),a=new Set,i=new Map;let o=!1;const s=l.computed(()=>n.value.some(w=>w.status==="pending"||w.status==="running"));let c;function u(){c||t.endpoints.opsList&&(c=setInterval(()=>{h()},Jp),h())}function f(){c&&(clearInterval(c),c=void 0)}async function h(){var w;if(t.endpoints.opsList)try{const _=((await t.jsonFetch(t.endpoints.opsList)).ops||[]).map(lc);for(const k of _)(k.status==="done"||k.status==="error")&&!a.has(k.id)&&(a.add(k.id),i.set(k.id,Date.now()),o&&((w=r.onSettled)==null||w.call(r,k)));const y=new Set(n.value.map(k=>k.id)),g=_.filter(k=>k.status==="pending"||k.status==="running"?!0:o?y.has(k.id):!1),b=new Set(g.map(k=>k.id)),v=n.value.filter(k=>!b.has(k.id)),E=[...g,...v];o=!0;const C=Date.now(),A=E.filter(k=>{if(k.status==="pending"||k.status==="running")return!0;const B=i.get(k.id);return B!==void 0&&C-B<Qp});n.value=A,!s.value&&A.length===0&&f()}catch(m){console.warn("[usePendingOps] poll failed:",m)}}function d(w){const m=lc(w);n.value.some(y=>y.id===m.id)||(n.value=[m,...n.value]),u()}function p(w){n.value=n.value.filter(m=>m.id!==w),i.delete(w)}return l.onBeforeUnmount(()=>{f()}),{ops:n,hasActive:s,register:d,dismiss:p,poll:h,startPolling:u,stopPolling:f}}let Zi=null,Ki=null,Yi=null,Ji=null;function li(){Zi||(Zi=import("monaco-editor").then(e=>(Yi=e.default??e,Yi)).catch(()=>(Yi=null,null))),Ki||(Ki=import("highlight.js").then(e=>(Ji=e.default??e,Ji)).catch(()=>(Ji=null,null)))}async function Qi(){return Zi||li(),Zi}async function e0(){return Ki||li(),Ki}function Io(){return Yi}function cc(){return Ji}function em(){return li(),{ensureMonaco:Qi,ensureHighlight:e0,getMonaco:Io,getHighlight:cc}}const tm={class:"fe-toolbar"},rm={class:"fe-toolbar__primary"},nm=["title","aria-label"],am=["title"],im={class:"fe-btn__label"},om=["disabled","title","onClick"],lm={class:"fe-icon"},sm={class:"fe-btn__label"},cm=["title"],um={class:"fe-btn__label"},fm={class:"fe-toolbar__search-group"},dm={class:"fe-search"},hm=["placeholder","value"],pm=["title"],mm=["title"],vm={class:"fe-toolbar__view",role:"tablist","aria-label":"View"},gm=["aria-selected","title"],ym=["aria-selected","title"],bm=l.defineComponent({__name:"Toolbar",props:{viewMode:{},searchQuery:{},trashActive:{type:Boolean},actions:{},selectionMode:{},pasteEnabled:{type:Boolean},convertEnabled:{type:Boolean},canGoUp:{type:Boolean},atVirtualRoot:{type:Boolean},canWrite:{type:Boolean},locale:{}},emits:["update:viewMode","update:searchQuery","new-folder","upload","refresh","go-up","action","open-recents"],setup(e,{expose:t,emit:r}){const n=e,a=r,{t:i}=_r(()=>n.locale),o=l.ref(null),s=l.ref(n.searchQuery);l.watch(()=>n.searchQuery,w=>{s.value=w});let c;function u(w){const m=w.target.value;s.value=m,c&&clearTimeout(c),c=setTimeout(()=>a("update:searchQuery",m),200)}function f(){var w,m;(w=o.value)==null||w.focus(),(m=o.value)==null||m.select()}t({focusSearch:f});const h=l.computed(()=>n.selectionMode??"none"),d=l.computed(()=>n.actions.filter(w=>!w.divider&&!w.hidden));function p(w){a("action",w)}return(w,m)=>(l.openBlock(),l.createElementBlock("div",tm,[l.createElementVNode("div",rm,[e.canGoUp?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--icon-only",title:l.unref(i)("toolbar.go_up"),"aria-label":l.unref(i)("toolbar.go_up"),onClick:m[0]||(m[0]=_=>a("go-up"))},[...m[7]||(m[7]=[l.createElementVNode("span",{class:"fe-icon"},"↑",-1)])],8,nm)):l.createCommentVNode("",!0),h.value==="none"&&!e.trashActive&&!e.atVirtualRoot&&e.canWrite!==!1?(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:"fe-btn fe-btn--primary",title:l.unref(i)("toolbar.new_folder"),onClick:m[1]||(m[1]=_=>a("new-folder"))},[m[8]||(m[8]=l.createElementVNode("span",{class:"fe-icon"},"📁",-1)),l.createElementVNode("span",im,l.toDisplayString(l.unref(i)("toolbar.new_folder")),1)],8,am)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(d.value,_=>(l.openBlock(),l.createElementBlock("button",{key:_.key,type:"button",class:l.normalizeClass(["fe-btn",{"fe-btn--danger":_.danger,"is-disabled":_.disabled}]),disabled:_.disabled,title:_.label,onClick:y=>p(_.key)},[l.createElementVNode("span",lm,l.toDisplayString(_.icon),1),l.createElementVNode("span",sm,l.toDisplayString(_.label),1)],10,om))),128)),e.pasteEnabled&&h.value==="none"&&!e.trashActive&&!e.atVirtualRoot&&e.canWrite!==!1?(l.openBlock(),l.createElementBlock("button",{key:2,type:"button",class:"fe-btn",title:l.unref(i)("ctx.paste"),onClick:m[2]||(m[2]=_=>p("paste"))},[m[9]||(m[9]=l.createElementVNode("span",{class:"fe-icon"},"📋",-1)),l.createElementVNode("span",um,l.toDisplayString(l.unref(i)("ctx.paste")),1)],8,cm)):l.createCommentVNode("",!0)]),m[14]||(m[14]=l.createElementVNode("div",{class:"fe-toolbar__spacer"},null,-1)),l.createElementVNode("div",fm,[l.createElementVNode("div",dm,[l.createElementVNode("input",{ref_key:"searchEl",ref:o,type:"search",class:"fe-search__input",placeholder:l.unref(i)("toolbar.search.placeholder"),value:s.value,"aria-label":"Search",onInput:u},null,40,hm)]),!e.atVirtualRoot&&e.canWrite!==!1?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--icon-only",title:l.unref(i)("toolbar.upload"),onClick:m[3]||(m[3]=_=>a("upload"))},[...m[10]||(m[10]=[l.createElementVNode("span",{class:"fe-icon"},"⬆",-1)])],8,pm)):l.createCommentVNode("",!0),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--icon-only",title:l.unref(i)("toolbar.refresh"),onClick:m[4]||(m[4]=_=>a("refresh"))},[...m[11]||(m[11]=[l.createElementVNode("span",{class:"fe-icon"},"↻",-1)])],8,mm)]),l.createElementVNode("div",vm,[l.createElementVNode("button",{type:"button",class:l.normalizeClass(["fe-btn fe-btn--icon-only",{"is-active":e.viewMode==="list"}]),role:"tab","aria-selected":e.viewMode==="list",title:l.unref(i)("toolbar.view.list"),onClick:m[5]||(m[5]=_=>a("update:viewMode","list"))},[...m[12]||(m[12]=[l.createElementVNode("span",{class:"fe-icon"},"☰",-1)])],10,gm),l.createElementVNode("button",{type:"button",class:l.normalizeClass(["fe-btn fe-btn--icon-only",{"is-active":e.viewMode==="grid"}]),role:"tab","aria-selected":e.viewMode==="grid",title:l.unref(i)("toolbar.view.grid"),onClick:m[6]||(m[6]=_=>a("update:viewMode","grid"))},[...m[13]||(m[13]=[l.createElementVNode("span",{class:"fe-icon"},"▦",-1)])],10,ym)])]))}}),wm=["onClick"],_m=l.defineComponent({__name:"TagPicker",props:{nodeId:{},apiBase:{},authHeaders:{type:Function},palette:{}},emits:["change","error"],setup(e,{emit:t}){const r=e,n=t,a=l.ref([]),i=l.ref(!1),o=l.ref(!1),s=l.ref(""),c=l.computed(()=>r.palette??["#ef4444","#f59e0b","#10b981","#3b82f6","#8b5cf6","#ec4899","#14b8a6","#f97316"]);function u(m){let _=0;for(let g=0;g<m.length;g++)_=_*31+m.charCodeAt(g)|0;const y=c.value;return y[Math.abs(_)%y.length]}async function f(m={}){return{...await(r.authHeaders??(()=>({})))(),...m}}async function h(){i.value=!0;try{const m=r.apiBase??"",_=await fetch(`${m}/api/files/manager/tags?node_id=${r.nodeId}`,{headers:await f(),credentials:"include"});if(_.ok){const y=await _.json();a.value=Array.isArray(y.tags)?y.tags:[]}}catch(m){n("error",m instanceof Error?m.message:String(m))}finally{i.value=!1}}async function d(m){const _=[...a.value];a.value=m;try{const y=r.apiBase??"",g=await fetch(`${y}/api/files/manager/tags`,{method:"POST",headers:await f({"Content-Type":"application/json"}),credentials:"include",body:JSON.stringify({node_id:r.nodeId,tags:m})});if(!g.ok)throw new Error(`tag save failed: ${g.status}`);n("change",m)}catch(y){a.value=_,n("error",y instanceof Error?y.message:String(y))}}function p(){const m=s.value.trim();if(!m||a.value.includes(m)){s.value="",o.value=!1;return}d([...a.value,m]),s.value="",o.value=!1}function w(m){d(a.value.filter(_=>_!==m))}return l.onMounted(h),l.watch(()=>r.nodeId,h),(m,_)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["filex-tag-picker",{"is-loading":i.value}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(a.value,y=>(l.openBlock(),l.createElementBlock("span",{key:y,class:"filex-tag",style:l.normalizeStyle({"--filex-tag-color":u(y)})},[l.createTextVNode(l.toDisplayString(y)+" ",1),l.createElementVNode("button",{class:"filex-tag-x",type:"button",onClick:g=>w(y),"aria-label":"Remove tag"},"×",8,wm)],4))),128)),o.value?(l.openBlock(),l.createElementBlock("form",{key:0,class:"filex-tag-add",onSubmit:l.withModifiers(p,["prevent"])},[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":_[0]||(_[0]=y=>s.value=y),autofocus:"",placeholder:"tag name",onBlur:p,onKeydown:_[1]||(_[1]=l.withKeys(y=>{o.value=!1,s.value=""},["escape"]))},null,544),[[l.vModelText,s.value]])],32)):(l.openBlock(),l.createElementBlock("button",{key:1,class:"filex-tag-add-btn",type:"button",onClick:_[2]||(_[2]=y=>o.value=!0)},"+ Add tag"))],2))}}),xr=(e,t)=>{const r=e.__vccOpts||e;for(const[n,a]of t)r[n]=a;return r},uc=xr(_m,[["__scopeId","data-v-629745b7"]]),xm={class:"filex-recent"},km=["disabled"],Sm={key:0},Em=["onClick"],Cm={class:"filex-recent-name"},Dm={class:"filex-recent-meta"},Am={key:1,class:"filex-recent-empty"},Bm={key:2,class:"filex-recent-empty"},fc=xr(l.defineComponent({__name:"RecentlyOpened",props:{apiBase:{},authHeaders:{type:Function},limit:{},refreshKey:{}},emits:["open","error"],setup(e,{emit:t}){const r=e,n=t,a=l.ref([]),i=l.ref(!1);async function o(){i.value=!0;try{const c=await(r.authHeaders??(()=>({})))(),u=r.apiBase??"",f=r.limit??20,h=await fetch(`${u}/api/files/manager/recent?limit=${f}`,{headers:c,credentials:"include"});if(h.ok){const d=await h.json();a.value=Array.isArray(d.entries)?d.entries:Array.isArray(d)?d:[]}}catch(c){n("error",c instanceof Error?c.message:String(c))}finally{i.value=!1}}function s(c){if(!c)return"";const u=new Date(c).getTime();if(Number.isNaN(u))return"";const f=Date.now()-u;return f<6e4?"just now":f<36e5?`${Math.floor(f/6e4)}m ago`:f<864e5?`${Math.floor(f/36e5)}h ago`:`${Math.floor(f/864e5)}d ago`}return l.onMounted(o),l.watch(()=>r.refreshKey,o),(c,u)=>(l.openBlock(),l.createElementBlock("div",xm,[l.createElementVNode("header",null,[u[0]||(u[0]=l.createElementVNode("h3",null,"Recently opened",-1)),l.createElementVNode("button",{class:"filex-recent-refresh",type:"button",onClick:o,disabled:i.value}," ↻ ",8,km)]),a.value.length?(l.openBlock(),l.createElementBlock("ul",Sm,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(a.value,f=>(l.openBlock(),l.createElementBlock("li",{key:f.id},[l.createElementVNode("button",{type:"button",onClick:h=>n("open",f),class:"filex-recent-item"},[l.createElementVNode("span",Cm,l.toDisplayString(f.name),1),l.createElementVNode("span",Dm,l.toDisplayString(s(f.last_opened)),1)],8,Em)]))),128))])):i.value?(l.openBlock(),l.createElementBlock("p",Bm,"Loading…")):(l.openBlock(),l.createElementBlock("p",Am,"Nothing here yet."))]))}}),[["__scopeId","data-v-be8c9080"]]),Tm={class:"fe-breadcrumb","aria-label":"Breadcrumb"},Mm=["aria-current","onClick","onContextmenu","onDrop"],Im={key:0,class:"fe-breadcrumb__sep","aria-hidden":"true"},zm=["title","aria-label"],Fm=["placeholder","onKeydown"],Nm=l.defineComponent({__name:"Breadcrumb",props:{dirname:{},adapter:{},rootLabel:{},locale:{},multiStorageRoot:{type:Boolean},rootPath:{}},emits:["navigate","copy-path","crumb-context","crumb-drop"],setup(e,{emit:t}){const r=e,n=l.computed(()=>{if(!r.rootPath)return"";const g=r.rootPath,b=g.indexOf("://");return(b>=0?g.slice(b+3):g).replace(/^\/+|\/+$/g,"")}),a=l.computed(()=>{const g=n.value;if(!g)return r.rootLabel||r.adapter;const b=g.split("/");return b[b.length-1]||r.rootLabel||r.adapter}),{t:i}=_r(()=>r.locale),o=t,s=l.computed(()=>{const g=`${r.adapter}://`,b=r.dirname.startsWith(g)?r.dirname.slice(g.length):r.dirname,v=b.split("/").filter(Boolean),E=[];if(r.rootPath){const A=n.value,k=b.replace(/^\/+|\/+$/g,""),B=A&&(k===A||k.startsWith(A+"/"))?k.slice(A.length).replace(/^\/+/,""):"";E.push({label:a.value,adapterPath:r.rootPath});let T=A;for(const F of B.split("/").filter(Boolean))T=T?`${T}/${F}`:F,E.push({label:F===".trash"?i("node.trash"):F,adapterPath:`${g}${T}`});return E}r.multiStorageRoot?(E.push({label:"/",adapterPath:""}),r.adapter&&E.push({label:r.rootLabel||r.adapter,adapterPath:g})):E.push({label:r.rootLabel||r.adapter,adapterPath:g});let C="";for(const A of v){C=C?`${C}/${A}`:A;const k=A===".trash"?i("node.trash"):A;E.push({label:k,adapterPath:`${g}${C}`})}return E});function c(g){o("navigate",g.adapterPath)}function u(g,b){g.preventDefault(),g.stopPropagation(),o("crumb-context",{x:g.clientX,y:g.clientY,adapterPath:b.adapterPath,label:b.label})}function f(g){var b;(b=g.dataTransfer)!=null&&b.types.includes("application/x-brf-files")&&(g.preventDefault(),g.stopPropagation(),g.dataTransfer&&(g.dataTransfer.dropEffect="move"))}function h(g,b){var v;(v=g.dataTransfer)!=null&&v.types.includes("application/x-brf-files")&&(g.preventDefault(),g.stopPropagation(),o("crumb-drop",b.adapterPath,g))}const d=l.ref(!1),p=l.ref(""),w=l.ref(null);function m(){const g=`${r.adapter}://`,b=r.dirname.startsWith(g)?r.dirname.slice(g.length):r.dirname;if(r.rootPath){const v=n.value,E=b.replace(/^\/+|\/+$/g,""),C=v&&(E===v||E.startsWith(v+"/"))?E.slice(v.length).replace(/^\/+/,""):"";p.value=C?`/${C}`:"/",d.value=!0,l.nextTick(()=>{var A,k;(A=w.value)==null||A.focus(),(k=w.value)==null||k.select()});return}if(r.multiStorageRoot)if(!r.adapter)p.value="/";else{const v=b.replace(/^\/+|\/+$/g,"");p.value=v?`/${r.adapter}/${v}`:`/${r.adapter}`}else p.value=b;d.value=!0,l.nextTick(()=>{var v,E;(v=w.value)==null||v.focus(),(E=w.value)==null||E.select()})}function _(){const g=p.value.trim();if(d.value=!1,r.rootPath){const v=g.replace(/^\/+|\/+$/g,""),E=n.value,C=v?E?`${E}/${v}`:v:E;o("navigate",C?`${r.adapter}://${C}`:`${r.adapter}://`);return}if(r.multiStorageRoot){const v=g.replace(/^\/+|\/+$/g,"");if(!v){o("navigate","");return}const E=v.indexOf("/"),C=E===-1?v:v.slice(0,E),A=E===-1?"":v.slice(E+1);o("navigate",A?`${C}://${A}`:`${C}://`);return}const b=g.replace(/^\/+|\/+$/g,"");b&&o("navigate",`${r.adapter}://${b}`)}function y(){d.value=!1}return(g,b)=>(l.openBlock(),l.createElementBlock("nav",Tm,[d.value?l.withDirectives((l.openBlock(),l.createElementBlock("input",{key:1,ref_key:"pathInput",ref:w,"onUpdate:modelValue":b[0]||(b[0]=v=>p.value=v),type:"text",class:"fe-breadcrumb__input",placeholder:l.unref(i)("breadcrumb.path_placeholder"),spellcheck:"false",autocomplete:"off",onKeydown:[l.withKeys(l.withModifiers(_,["prevent"]),["enter"]),l.withKeys(l.withModifiers(y,["prevent"]),["escape"])],onBlur:y},null,40,Fm)),[[l.vModelText,p.value]]):(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(s.value,(v,E)=>(l.openBlock(),l.createElementBlock("button",{key:v.adapterPath,class:l.normalizeClass(["fe-breadcrumb__crumb",{"is-last":E===s.value.length-1}]),type:"button","aria-current":E===s.value.length-1?"page":void 0,onClick:C=>c(v),onContextmenu:C=>u(C,v),onDragover:f,onDrop:C=>h(C,v)},[l.createElementVNode("span",null,l.toDisplayString(v.label),1),E<s.value.length-1?(l.openBlock(),l.createElementBlock("span",Im,"›")):l.createCommentVNode("",!0)],42,Mm))),128)),l.createElementVNode("button",{type:"button",class:"fe-breadcrumb__edit",title:l.unref(i)("breadcrumb.go_to_path"),"aria-label":l.unref(i)("breadcrumb.go_to_path"),onClick:m},"✏",8,zm)],64))]))}}),Om=["aria-pressed","title"],Lm={viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true"},Pm=["fill"],Rm={key:0,class:"filex-star-label"},dc=xr(l.defineComponent({__name:"StarButton",props:{starred:{type:Boolean},nodeId:{},apiBase:{},authHeaders:{type:Function},compact:{type:Boolean}},emits:["change","error"],setup(e,{emit:t}){const r=e,n=t,a=l.ref(r.starred);l.watch(()=>r.starred,o=>{a.value=o});async function i(){const o=!a.value;a.value=o;try{const s={"Content-Type":"application/json",...await(r.authHeaders??(()=>({})))()},c=r.apiBase??"",u=await fetch(`${c}/api/files/manager/star`,{method:"POST",headers:s,credentials:"include",body:JSON.stringify({node_id:r.nodeId,starred:o})});if(!u.ok)throw new Error(`star toggle failed: ${u.status}`);n("change",o)}catch(s){a.value=!o,n("error",s instanceof Error?s.message:String(s))}}return(o,s)=>(l.openBlock(),l.createElementBlock("button",{type:"button",class:l.normalizeClass(["filex-star-btn",{"is-starred":a.value,"is-compact":e.compact}]),"aria-pressed":a.value,title:a.value?"Unstar":"Star",onClick:l.withModifiers(i,["stop"])},[(l.openBlock(),l.createElementBlock("svg",Lm,[l.createElementVNode("path",{fill:a.value?"currentColor":"none",stroke:"currentColor","stroke-width":"2","stroke-linejoin":"round",d:"M12 2.5l3.09 6.26 6.91 1-5 4.87 1.18 6.87L12 18.27l-6.18 3.23L7 14.63 2 9.76l6.91-1z"},null,8,Pm)])),e.compact?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("span",Rm,l.toDisplayString(a.value?"Starred":"Star"),1))],10,Om))}}),[["__scopeId","data-v-bf2ee8db"]]),Vm={class:"fe-list__head",role:"row"},$m={class:"fe-list__col fe-list__col--name",role:"columnheader"},Um={class:"fe-list__col fe-list__col--size",role:"columnheader"},Hm={class:"fe-list__col fe-list__col--mod",role:"columnheader"},Gm={class:"fe-list__body",role:"rowgroup"},jm=["onClick","onDblclick","onContextmenu","onDragstart","onDragover","onDrop","onTouchstartPassive"],qm={class:"fe-list__col fe-list__col--name"},Wm={class:"fe-list__icon","aria-hidden":"true"},Xm={class:"fe-list__name-wrap"},Zm=["title"],Km=["title"],Ym={class:"fe-list__col fe-list__col--size"},Jm={class:"fe-list__col fe-list__col--mod"},Qm={key:0,class:"fe-list__empty"},e2=l.defineComponent({__name:"ListView",props:{files:{},selected:{},clipped:{},showParentPath:{type:Boolean},locale:{},loading:{type:Boolean},starredIds:{},apiBase:{},authHeaders:{type:Function}},emits:["click-row","dbl-row","context-row","item-drag-start","item-drop-into","star-change"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i,nodeDisplayName:o}=_r(()=>r.locale);function s(C){return r.selected.has(C.path)}function c(C,A){n("click-row",C,{ctrl:A.ctrlKey||A.metaKey,shift:A.shiftKey})}function u(C){n("dbl-row",C)}function f(C,A){A.preventDefault(),A.stopPropagation(),n("context-row",C,A)}function h(C,A){n("item-drag-start",C,A)}function d(C,A){var k;C.type==="dir"&&(k=A.dataTransfer)!=null&&k.types.includes("application/x-brf-files")&&(A.preventDefault(),A.stopPropagation(),A.dataTransfer&&(A.dataTransfer.dropEffect="move"))}function p(C,A){var k;C.type==="dir"&&(k=A.dataTransfer)!=null&&k.types.includes("application/x-brf-files")&&(A.preventDefault(),A.stopPropagation(),n("item-drop-into",C,A))}let w,m=null;function _(C,A){m=C,w&&clearTimeout(w),w=setTimeout(()=>{if(m){const k=A.touches[0];n("context-row",m,{clientX:k.clientX,clientY:k.clientY,preventDefault:()=>{}})}},500)}function y(){w&&clearTimeout(w),m=null}function g(C){if(C.mime_type==="inode/storage")return"💾";if(C.type==="dir")return"📁";const A=(C.extension||"").toLowerCase();return["jpg","jpeg","png","webp","gif","bmp","avif","heic","svg"].includes(A)?"🖼":["mp4","webm","mov","mkv","avi","ogv","m4v"].includes(A)?"🎞":["mp3","wav","flac","ogg","m4a","aac","opus"].includes(A)?"🎵":A==="pdf"?"📕":["doc","docx","odt","rtf"].includes(A)?"📄":["xls","xlsx","ods","csv"].includes(A)?"📊":["ppt","pptx","odp"].includes(A)?"📽":["zip","tar","gz","bz2","7z","rar"].includes(A)?"🗜":["txt","md","log","json","yml","yaml","xml"].includes(A)?"📝":"📎"}function b(C){return C?new Date(C*(C<1e12?1e3:1)).toLocaleString():"—"}function v(C){const A=C.replace(/^[a-z][a-z0-9+.-]*:\/\//i,""),k=A.lastIndexOf("/");return k===-1?"":A.slice(0,k)}const E=l.computed(()=>r.files);return(C,A)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["fe-list",{"is-loading":e.loading,"has-star-col":!!e.apiBase||e.apiBase===""}])},[l.createElementVNode("div",Vm,[A[1]||(A[1]=l.createElementVNode("div",{class:"fe-list__col fe-list__col--star",role:"columnheader","aria-label":"Star"},null,-1)),l.createElementVNode("div",$m,l.toDisplayString(l.unref(a)("col.name")),1),l.createElementVNode("div",Um,l.toDisplayString(l.unref(a)("col.size")),1),l.createElementVNode("div",Hm,l.toDisplayString(l.unref(a)("col.modified")),1)]),l.createElementVNode("div",Gm,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(E.value,k=>{var B,T;return l.openBlock(),l.createElementBlock("div",{key:k.path,class:l.normalizeClass(["fe-list__row",{"is-selected":s(k),"is-dir":k.type==="dir","is-trash":k.trashed,"is-clipped":(B=e.clipped)==null?void 0:B.has(k.path)}]),role:"row",tabindex:"0",draggable:"true",onClick:F=>c(k,F),onDblclick:F=>u(k),onContextmenu:F=>f(k,F),onDragstart:F=>h(k,F),onDragover:F=>d(k,F),onDrop:F=>p(k,F),onTouchstartPassive:F=>_(k,F),onTouchend:y,onTouchmove:y},[l.createElementVNode("div",{class:"fe-list__col fe-list__col--star",onClick:A[0]||(A[0]=l.withModifiers(()=>{},["stop"]))},[typeof k.id=="number"&&k.type==="file"?(l.openBlock(),l.createBlock(dc,{key:0,starred:!!((T=e.starredIds)!=null&&T.has(k.id)),"node-id":k.id,"api-base":e.apiBase,"auth-headers":e.authHeaders,compact:"",onChange:F=>n("star-change",k,F)},null,8,["starred","node-id","api-base","auth-headers","onChange"])):l.createCommentVNode("",!0)]),l.createElementVNode("div",qm,[l.createElementVNode("span",Wm,l.toDisplayString(g(k)),1),l.createElementVNode("div",Xm,[l.createElementVNode("span",{class:"fe-list__name",title:k.basename},l.toDisplayString(l.unref(o)(k)),9,Zm),e.showParentPath?(l.openBlock(),l.createElementBlock("span",{key:0,class:"fe-list__parent",title:v(k.path)},l.toDisplayString(v(k.path)||"—"),9,Km)):l.createCommentVNode("",!0)])]),l.createElementVNode("div",Ym,l.toDisplayString(k.type==="dir"?"—":l.unref(i)(k.size)),1),l.createElementVNode("div",Jm,l.toDisplayString(b(k.last_modified)),1)],42,jm)}),128)),!e.loading&&E.value.length===0?(l.openBlock(),l.createElementBlock("div",Qm,l.toDisplayString(l.unref(a)("empty.folder")),1)):l.createCommentVNode("",!0)])],2))}}),t2=["onClick","onDblclick","onContextmenu","onDragstart","onDragover","onDrop","onTouchstartPassive"],r2={class:"fe-grid__thumb"},n2=["src","alt"],a2={key:1,class:"fe-grid__icon"},i2=["title"],o2=["title"],l2={class:"fe-grid__meta"},s2={key:0,class:"fe-grid__empty"},c2=l.defineComponent({__name:"GridView",props:{files:{},selected:{},clipped:{},showParentPath:{type:Boolean},locale:{},loading:{type:Boolean}},emits:["click-card","dbl-card","context-card","item-drag-start","item-drop-into"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i,nodeDisplayName:o}=_r(()=>r.locale);function s(v){return r.selected.has(v.path)}function c(v,E){n("click-card",v,{ctrl:E.ctrlKey||E.metaKey,shift:E.shiftKey})}function u(v){n("dbl-card",v)}function f(v,E){E.preventDefault(),E.stopPropagation(),n("context-card",v,E)}function h(v,E){n("item-drag-start",v,E)}function d(v,E){var C;v.type==="dir"&&(C=E.dataTransfer)!=null&&C.types.includes("application/x-brf-files")&&(E.preventDefault(),E.stopPropagation(),E.dataTransfer&&(E.dataTransfer.dropEffect="move"))}function p(v,E){var C;v.type==="dir"&&(C=E.dataTransfer)!=null&&C.types.includes("application/x-brf-files")&&(E.preventDefault(),E.stopPropagation(),n("item-drop-into",v,E))}let w,m=null;function _(v,E){m=v,w&&clearTimeout(w),w=setTimeout(()=>{if(m){const C=E.touches[0];n("context-card",m,{clientX:C.clientX,clientY:C.clientY,preventDefault:()=>{}})}},500)}function y(){w&&clearTimeout(w),m=null}function g(v){const E=v.replace(/^[a-z][a-z0-9+.-]*:\/\//i,""),C=E.lastIndexOf("/");return C===-1?"":E.slice(0,C)}function b(v){if(v.mime_type==="inode/storage")return"💾";if(v.type==="dir")return"📁";const E=(v.extension||"").toLowerCase();return["jpg","jpeg","png","webp","gif","bmp","svg"].includes(E)?"🖼":["mp4","webm","mov","mkv"].includes(E)?"🎞":["mp3","wav","flac","ogg"].includes(E)?"🎵":E==="pdf"?"📕":["doc","docx","odt"].includes(E)?"📄":["xls","xlsx","csv"].includes(E)?"📊":["ppt","pptx"].includes(E)?"📽":["zip","tar","gz","7z"].includes(E)?"🗜":"📎"}return(v,E)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["fe-grid",{"is-loading":e.loading}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.files,C=>{var A;return l.openBlock(),l.createElementBlock("div",{key:C.path,class:l.normalizeClass(["fe-grid__card",{"is-selected":s(C),"is-dir":C.type==="dir","is-trash":C.trashed,"is-clipped":(A=e.clipped)==null?void 0:A.has(C.path)}]),tabindex:"0",draggable:"true",onClick:k=>c(C,k),onDblclick:k=>u(C),onContextmenu:k=>f(C,k),onDragstart:k=>h(C,k),onDragover:k=>d(C,k),onDrop:k=>p(C,k),onTouchstartPassive:k=>_(C,k),onTouchend:y,onTouchmove:y},[l.createElementVNode("div",r2,[C.thumb_url?(l.openBlock(),l.createElementBlock("img",{key:0,src:C.thumb_url,alt:C.basename,loading:"lazy",draggable:"false"},null,8,n2)):(l.openBlock(),l.createElementBlock("span",a2,l.toDisplayString(b(C)),1))]),l.createElementVNode("div",{class:"fe-grid__label",title:C.basename},l.toDisplayString(l.unref(o)(C)),9,i2),e.showParentPath?(l.openBlock(),l.createElementBlock("div",{key:0,class:"fe-grid__parent",title:g(C.path)},l.toDisplayString(g(C.path)||"—"),9,o2)):l.createCommentVNode("",!0),l.createElementVNode("div",l2,l.toDisplayString(C.type==="dir"?"—":l.unref(i)(C.size)),1)],42,t2)}),128)),!e.loading&&e.files.length===0?(l.openBlock(),l.createElementBlock("div",s2,l.toDisplayString(l.unref(a)("empty.folder")),1)):l.createCommentVNode("",!0)],2))}}),u2=["data-prefers-dark"],f2={key:0,class:"fe-ctx__sep"},d2=["disabled","onClick"],h2={key:0,class:"fe-ctx__icon","aria-hidden":"true"},p2={class:"fe-ctx__label"},m2=l.defineComponent({__name:"ContextMenu",props:{locale:{},actions:{},theme:{}},emits:["select"],setup(e,{expose:t,emit:r}){const n=e,a=r;_r(()=>n.locale);const i=l.ref(!1),o=l.ref(0),s=l.ref(0),c=l.ref([]),u=l.ref(null);async function f(v,E){i.value=!0,o.value=v.clientX,s.value=v.clientY,c.value=E,await l.nextTick(),h()}function h(){const v=u.value;if(!v||typeof window>"u")return;const E=v.getBoundingClientRect(),C=8,A=window.innerWidth,k=window.innerHeight;s.value+E.height>k-C&&(s.value=Math.max(C,k-E.height-C)),o.value+E.width>A-C&&(o.value=Math.max(C,A-E.width-C))}function d(){i.value=!1}function p(v){v.disabled||(a("select",v,c.value),d())}function w(v){v.key==="Escape"&&d()}const m=l.computed(()=>n.actions.filter(v=>!v.hidden)),_=l.ref(!1);let y;function g(v){_.value=!!(v&&"matches"in v&&v.matches)}l.onMounted(()=>{var v;typeof window>"u"||(y=window.matchMedia("(prefers-color-scheme: dark)"),g(y),(v=y.addEventListener)==null||v.call(y,"change",g))}),l.onBeforeUnmount(()=>{var v;(v=y==null?void 0:y.removeEventListener)==null||v.call(y,"change",g)});const b=l.computed(()=>`fe-ctx-backdrop--theme-${n.theme||"auto"}`);return t({show:f,hide:d}),(v,E)=>(l.openBlock(),l.createBlock(l.Teleport,{to:"body"},[l.createVNode(l.Transition,{name:"fe-ctx"},{default:l.withCtx(()=>[i.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["fe-ctx-backdrop",b.value]),"data-prefers-dark":_.value?"1":"0",onClick:d,onContextmenu:l.withModifiers(d,["prevent"]),onKeydown:w},[l.createElementVNode("div",{ref_key:"menuEl",ref:u,class:"fe-ctx",role:"menu",style:l.normalizeStyle({top:s.value+"px",left:o.value+"px"}),onClick:E[0]||(E[0]=l.withModifiers(()=>{},["stop"]))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(m.value,(C,A)=>(l.openBlock(),l.createElementBlock(l.Fragment,{key:C.key||A},[C.divider?(l.openBlock(),l.createElementBlock("div",f2)):(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:l.normalizeClass(["fe-ctx__item",{"is-danger":C.danger,"is-disabled":C.disabled}]),disabled:C.disabled,role:"menuitem",onClick:k=>p(C)},[C.icon?(l.openBlock(),l.createElementBlock("span",h2,l.toDisplayString(C.icon),1)):l.createCommentVNode("",!0),l.createElementVNode("span",p2,l.toDisplayString(C.label),1)],10,d2))],64))),128))],4)],42,u2)):l.createCommentVNode("",!0)]),_:1})]))}}),v2={key:0,class:"fe-upload"},g2={class:"fe-upload__header"},y2={class:"fe-upload__count"},b2={class:"fe-upload__list"},w2=["title"],_2=["aria-valuenow"],x2={class:"fe-upload__meta"},k2=["onClick"],S2=["onClick"],E2=l.defineComponent({__name:"UploadProgress",props:{jobs:{},locale:{}},emits:["cancel","dismiss"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i}=_r(()=>r.locale),o=l.computed(()=>r.jobs);function s(c){switch(c.status){case"done":return a("upload.done");case"error":return`${a("upload.error")}: ${c.error??""}`;case"aborted":return a("upload.aborted");default:return a("upload.progress")}}return(c,u)=>(l.openBlock(),l.createBlock(l.Transition,{name:"fe-upload-slide"},{default:l.withCtx(()=>[o.value.length>0?(l.openBlock(),l.createElementBlock("div",v2,[l.createElementVNode("div",g2,[l.createElementVNode("strong",null,l.toDisplayString(l.unref(a)("upload.progress")),1),l.createElementVNode("span",y2,l.toDisplayString(o.value.length),1)]),l.createElementVNode("ul",b2,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.value,f=>(l.openBlock(),l.createElementBlock("li",{key:f.id,class:l.normalizeClass(["fe-upload__item",`is-${f.status}`])},[l.createElementVNode("div",{class:"fe-upload__name",title:f.file.name},l.toDisplayString(f.file.name),9,w2),l.createElementVNode("div",{class:"fe-upload__bar","aria-valuenow":f.percent,role:"progressbar"},[l.createElementVNode("div",{class:"fe-upload__bar-fill",style:l.normalizeStyle({width:f.percent+"%"})},null,4)],8,_2),l.createElementVNode("div",x2,[l.createElementVNode("span",null,l.toDisplayString(s(f)),1),l.createElementVNode("span",null,l.toDisplayString(l.unref(i)(f.uploadedBytes))+" / "+l.toDisplayString(l.unref(i)(f.totalBytes)),1),f.status==="uploading"||f.status==="initializing"?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-upload__cancel",onClick:h=>n("cancel",f)},l.toDisplayString(l.unref(a)("upload.cancel")),9,k2)):(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:"fe-upload__cancel",onClick:h=>n("dismiss",f)},"×",8,S2))])],2))),128))])])):l.createCommentVNode("",!0)]),_:1}))}}),C2={class:"fe-ops__row"},D2=["title"],A2=["onClick"],B2={class:"fe-ops__bar"},T2={key:0,class:"fe-ops__error"},M2=l.defineComponent({__name:"PendingOpsTray",props:{ops:{},locale:{}},emits:["dismiss"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.computed(()=>[...r.ops].sort((u,f)=>f.id-u.id));function o(u){return u.status==="done"?100:u.progress_total<=0?0:Math.min(100,Math.round(u.progress_done/u.progress_total*100))}function s(u){return u.status==="done"?"is-done":u.status==="error"?"is-error":""}function c(u){const f=u.op_type==="copy"?a("ops.copy"):u.op_type==="move"?a("ops.move"):a("ops.delete");return u.status==="pending"?`${f} (${a("ops.queued")})`:u.status==="running"?`${f} ${u.progress_done}/${u.progress_total}`:u.status==="done"?`${f} ${a("ops.done")} (${u.progress_total})`:u.status==="error"?`${f} ${a("ops.error")}`:f}return(u,f)=>i.value.length>0?(l.openBlock(),l.createBlock(l.TransitionGroup,{key:0,name:"fe-ops-slide",tag:"div",class:"fe-ops",role:"status","aria-live":"polite"},{default:l.withCtx(()=>[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(i.value,h=>(l.openBlock(),l.createElementBlock("div",{key:h.id,class:l.normalizeClass(["fe-ops__item",s(h)])},[l.createElementVNode("div",C2,[l.createElementVNode("span",{class:"fe-ops__title",title:h.target_path||h.source_dir||""},l.toDisplayString(c(h)),9,D2),h.status==="done"||h.status==="error"?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-ops__dismiss","aria-label":"Dismiss",onClick:d=>n("dismiss",h.id)},"×",8,A2)):l.createCommentVNode("",!0)]),l.createElementVNode("div",B2,[l.createElementVNode("div",{class:"fe-ops__bar-fill",style:l.normalizeStyle({width:o(h)+"%"})},null,4)]),h.status==="error"&&h.error_message?(l.openBlock(),l.createElementBlock("div",T2,l.toDisplayString(h.error_message),1)):l.createCommentVNode("",!0)],2))),128))]),_:1})):l.createCommentVNode("",!0)}}),I2={key:0,class:"fe-modal__head"},z2={class:"fe-modal__title"},F2={class:"fe-modal__body"},N2={key:1,class:"fe-modal__actions"},si=l.defineComponent({__name:"Modal",props:{open:{type:Boolean},title:{},size:{},closeOnBackdrop:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,a=l.ref(null);l.watch(()=>r.open,s=>{s?(document.addEventListener("keydown",i),setTimeout(()=>{var u;const c=(u=a.value)==null?void 0:u.querySelector('input,select,textarea,button,[tabindex]:not([tabindex="-1"])');c==null||c.focus()},30)):document.removeEventListener("keydown",i)}),l.onBeforeUnmount(()=>document.removeEventListener("keydown",i));function i(s){s.key==="Escape"&&n("close")}function o(){r.closeOnBackdrop!==!1&&n("close")}return(s,c)=>(l.openBlock(),l.createBlock(l.Transition,{name:"fe-modal"},{default:l.withCtx(()=>[e.open?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["fe fe-modal__backdrop",[{"fe-modal__backdrop--chromeless":e.chromeless},e.theme==="light"?"fe--theme-light":"",e.theme==="dark"?"fe--theme-dark":""]]),role:"presentation",onClick:o},[l.createElementVNode("div",{ref_key:"cardEl",ref:a,class:l.normalizeClass(["fe-modal__card",[`fe-modal__card--${e.size||"md"}`,e.chromeless&&"fe-modal__card--chromeless"]]),role:"dialog","aria-modal":"true",onClick:c[1]||(c[1]=l.withModifiers(()=>{},["stop"]))},[e.title&&!e.chromeless?(l.openBlock(),l.createElementBlock("header",I2,[l.createElementVNode("h2",z2,l.toDisplayString(e.title),1),l.createElementVNode("button",{type:"button",class:"fe-modal__close","aria-label":"Close",onClick:c[0]||(c[0]=u=>n("close"))},"×")])):l.createCommentVNode("",!0),l.createElementVNode("div",F2,[l.renderSlot(s.$slots,"default")]),s.$slots.actions&&!e.chromeless?(l.openBlock(),l.createElementBlock("footer",N2,[l.renderSlot(s.$slots,"actions")])):l.createCommentVNode("",!0)],2)],2)):l.createCommentVNode("",!0)]),_:3}))}}),O2=["placeholder","onKeydown"],L2={key:0,class:"fe-form__error"},P2=l.defineComponent({__name:"NewFolderModal",props:{open:{type:Boolean},locale:{}},emits:["close","submit"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.ref(""),o=l.ref(null);l.watch(()=>r.open,c=>{c&&(i.value="",o.value=null)});function s(){const c=i.value.trim();if(!c){o.value=a("modal.newfolder.placeholder");return}if(/[\\/]/.test(c)||c==="."||c===".."){o.value="Geçersiz karakter";return}n("submit",c)}return(c,u)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.newfolder.title"),size:"sm",onClose:u[2]||(u[2]=f=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:u[1]||(u[1]=f=>n("close"))},l.toDisplayString(l.unref(a)("modal.newfolder.cancel")),1),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:s},l.toDisplayString(l.unref(a)("modal.newfolder.create")),1)]),default:l.withCtx(()=>[l.createElementVNode("form",{onSubmit:l.withModifiers(s,["prevent"])},[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=f=>i.value=f),type:"text",class:"fe-input",placeholder:l.unref(a)("modal.newfolder.placeholder"),autocomplete:"off",onKeydown:l.withKeys(l.withModifiers(s,["prevent"]),["enter"])},null,40,O2),[[l.vModelText,i.value]]),o.value?(l.openBlock(),l.createElementBlock("p",L2,l.toDisplayString(o.value),1)):l.createCommentVNode("",!0)],32)]),_:1},8,["open","title"]))}}),R2=["onKeydown"],V2=l.defineComponent({__name:"RenameModal",props:{open:{type:Boolean},locale:{},currentName:{}},emits:["close","submit"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.ref("");l.watch(()=>[r.open,r.currentName],([s,c])=>{s&&(i.value=c)});function o(){const s=i.value.trim();s&&(/[\\/]/.test(s)||s==="."||s===".."||n("submit",s))}return(s,c)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.rename.title"),size:"sm",onClose:c[2]||(c[2]=u=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:c[1]||(c[1]=u=>n("close"))},l.toDisplayString(l.unref(a)("modal.rename.cancel")),1),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:o},l.toDisplayString(l.unref(a)("modal.rename.save")),1)]),default:l.withCtx(()=>[l.createElementVNode("form",{onSubmit:l.withModifiers(o,["prevent"])},[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>i.value=u),type:"text",class:"fe-input",autocomplete:"off",onKeydown:l.withKeys(l.withModifiers(o,["prevent"]),["enter"])},null,40,R2),[[l.vModelText,i.value]])],32)]),_:1},8,["open","title"]))}}),$2=l.defineComponent({__name:"DeleteConfirmModal",props:{open:{type:Boolean},locale:{},count:{}},emits:["close","confirm"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale);return(i,o)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.delete.title"),size:"sm",onClose:o[2]||(o[2]=s=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:o[0]||(o[0]=s=>n("close"))},l.toDisplayString(l.unref(a)("modal.delete.cancel")),1),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--danger",onClick:o[1]||(o[1]=s=>n("confirm"))},l.toDisplayString(l.unref(a)("modal.delete.confirm")),1)]),default:l.withCtx(()=>[l.createElementVNode("p",null,l.toDisplayString(l.unref(a)("modal.delete.message",{count:e.count})),1)]),_:1},8,["open","title"]))}}),U2={class:"fe-form__row"},H2={class:"fe-form__row fe-form__row--stack"},G2={class:"fe-form__row fe-form__row--stack"},j2={key:1,class:"fe-share-result"},q2={class:"fe-share-result__row"},W2={class:"fe-share-result__copy"},X2=["value"],Z2={key:0,class:"fe-share-result__row"},K2={class:"fe-share-result__copy"},Y2=["value"],J2={class:"fe-share-result__row"},Q2={class:"fe-share-result__copy"},e4=["value"],t4=l.defineComponent({__name:"ShareModal",props:{open:{type:Boolean},locale:{},share:{}},emits:["close","submit","toast"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.ref(!1),o=l.ref(""),s=l.ref("");l.watch(()=>r.open,d=>{d&&(i.value=!1,o.value="",s.value="")});function c(){n("submit",{password:i.value,expires_at:o.value?new Date(o.value).toISOString():null,max_downloads:s.value?Number(s.value):null})}async function u(d,p){try{await navigator.clipboard.writeText(d),n("toast",p)}catch{}}function f(d){return`'${d.replace(/'/g,"'\\''")}'`}const h=l.computed(()=>{const d=r.share;if(!d)return"";let p=d.url;return d.password_pin&&(p+=(p.includes("?")?"&":"?")+"pin="+encodeURIComponent(d.password_pin)),`curl -fSL ${d.filename?`-o ${f(d.filename)} `:"-OJ "}${f(p)}`});return(d,p)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.share.title"),size:"md",onClose:p[7]||(p[7]=w=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[6]||(p[6]=w=>n("close"))},l.toDisplayString(e.share?"Kapat":l.unref(a)("modal.share.cancel")),1),e.share?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:c},l.toDisplayString(l.unref(a)("modal.share.create")),1))]),default:l.withCtx(()=>[e.share?(l.openBlock(),l.createElementBlock("div",j2,[l.createElementVNode("div",q2,[p[8]||(p[8]=l.createElementVNode("label",null,"Link",-1)),l.createElementVNode("div",W2,[l.createElementVNode("input",{value:e.share.url,readonly:"",class:"fe-input"},null,8,X2),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[3]||(p[3]=w=>u(e.share.url,l.unref(a)("modal.share.url_copied")))},l.toDisplayString(l.unref(a)("modal.share.copy")),1)])]),e.share.password_pin?(l.openBlock(),l.createElementBlock("div",Z2,[p[9]||(p[9]=l.createElementVNode("label",null,"PIN",-1)),l.createElementVNode("div",K2,[l.createElementVNode("input",{value:e.share.password_pin,readonly:"",class:"fe-input fe-input--mono"},null,8,Y2),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[4]||(p[4]=w=>u(e.share.password_pin,l.unref(a)("modal.share.pin_copied")))},l.toDisplayString(l.unref(a)("modal.share.copy")),1)])])):l.createCommentVNode("",!0),l.createElementVNode("div",J2,[p[10]||(p[10]=l.createElementVNode("label",null,"CLI",-1)),l.createElementVNode("div",Q2,[l.createElementVNode("input",{value:h.value,readonly:"",class:"fe-input fe-input--mono"},null,8,e4),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[5]||(p[5]=w=>u(h.value,l.unref(a)("modal.share.cli_copied")))},l.toDisplayString(l.unref(a)("modal.share.copy")),1)])])])):(l.openBlock(),l.createElementBlock("form",{key:0,class:"fe-form",onSubmit:l.withModifiers(c,["prevent"])},[l.createElementVNode("label",U2,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=w=>i.value=w),type:"checkbox"},null,512),[[l.vModelCheckbox,i.value]]),l.createElementVNode("span",null,l.toDisplayString(l.unref(a)("modal.share.pin")),1)]),l.createElementVNode("label",H2,[l.createElementVNode("span",null,l.toDisplayString(l.unref(a)("modal.share.expires")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[1]||(p[1]=w=>o.value=w),type:"datetime-local",class:"fe-input"},null,512),[[l.vModelText,o.value]])]),l.createElementVNode("label",G2,[l.createElementVNode("span",null,l.toDisplayString(l.unref(a)("modal.share.max_downloads")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[2]||(p[2]=w=>s.value=w),type:"number",min:"1",class:"fe-input"},null,512),[[l.vModelText,s.value]])])],32))]),_:1},8,["open","title"]))}}),r4={key:0,class:"fe-preview"},n4=["src","alt"],a4=["src"],i4=["src"],o4=["data"],l4={class:"fe-preview__fallback"},s4=["href"],c4={key:0,class:"fe-preview__fallback"},u4={key:1,class:"fe-preview__fallback"},f4=["href"],d4={key:2,class:"fe-preview__md-split"},h4={class:"fe-preview__md-split-bar"},p4={key:0,class:"fe-preview__md-split-error"},m4=["disabled"],v4={class:"fe-preview__md-split-body"},g4=["onKeydown"],y4=["innerHTML"],b4={key:3,class:"fe-preview__fallback"},w4=["href"],_4=["innerHTML"],x4={key:5,class:"fe-preview__pre"},k4={key:0,class:"fe-preview__fallback"},S4=["href"],E4={key:1,class:"fe-preview__fallback"},C4={key:0,class:"fe-preview__fallback"},D4={key:1,class:"fe-preview__fallback"},A4=["href"],B4={key:2,class:"fe-preview__fallback"},T4=["href"],M4={key:3,class:"fe-preview__code-wrap"},I4={class:"fe-preview__code-toolbar"},z4={class:"fe-preview__code-lang"},F4={key:0,class:"fe-preview__code-status"},N4={key:1,class:"fe-preview__code-status fe-preview__code-status--ok"},O4=["title"],L4={key:3,class:"fe-preview__code-status"},P4=["disabled"],R4={key:0,class:"fe-preview__pre fe-preview__code hljs"},V4=["innerHTML"],$4=["data-lang"],U4={key:0,class:"fe-preview__fallback"},H4=["href"],G4={key:8,class:"fe-preview__fallback"},j4=["href"],q4=["href"],zo=1e6,hc="fe-onlyoffice-api-js",pc=l.defineComponent({__name:"PreviewModal",props:{open:{type:Boolean},locale:{},file:{},previewUrl:{type:Function},downloadUrl:{type:Function},onlyOfficeBase:{},onlyOfficeConfigEndpoint:{},saveTextEndpoint:{},openMode:{},authHeaders:{type:Function},authCredentials:{},drawioUrl:{},pdfWorkerUrl:{},pdfSaveUrl:{},viewerBaseUrl:{},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale);function i(Ae){return((Ae==null?void 0:Ae.extension)||"").toLowerCase()}const o=["jpg","jpeg","png","webp","gif","bmp","avif","svg","heic"],s=["mp4","webm","mov","mkv","m4v","ogv"],c=["mp3","wav","ogg","flac","m4a","aac","opus"],u={md:"markdown",markdown:"markdown",txt:"plaintext",log:"plaintext",js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",vue:"xml",svelte:"xml",html:"xml",htm:"xml",xml:"xml",svg:"xml",css:"css",scss:"scss",sass:"scss",less:"less",json:"json",jsonc:"json",yml:"yaml",yaml:"yaml",php:"php",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",cpp:"cpp",c:"c",h:"cpp",hpp:"cpp",cs:"csharp",dart:"dart",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",sql:"sql",toml:"ini",ini:"ini",conf:"ini",env:"bash",cfg:"ini",dockerfile:"dockerfile",graphql:"graphql",gql:"graphql",diff:"diff",patch:"diff"},f=["txt","log"],h=["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf"],d={glb:()=>Promise.resolve().then(()=>wa),gltf:()=>Promise.resolve().then(()=>wa),obj:()=>Promise.resolve().then(()=>wa),stl:()=>Promise.resolve().then(()=>wa),fbx:()=>Promise.resolve().then(()=>wa),"3ds":()=>Promise.resolve().then(()=>wa),epub:()=>Promise.resolve().then(()=>f3),mmd:()=>Promise.resolve().then(()=>yc),mermaid:()=>Promise.resolve().then(()=>yc),drawio:()=>Promise.resolve().then(()=>bc),dio:()=>Promise.resolve().then(()=>bc),tif:()=>Promise.resolve().then(()=>wc),tiff:()=>Promise.resolve().then(()=>wc),psd:()=>Promise.resolve().then(()=>T3),ipynb:()=>Promise.resolve().then(()=>X3),csv:()=>Promise.resolve().then(()=>xc),tsv:()=>Promise.resolve().then(()=>xc),zip:()=>Promise.resolve().then(()=>vg)},p=l.computed(()=>{const Ae=i(r.file);if(!Ae)return"other";if(o.includes(Ae))return"image";if(s.includes(Ae))return"video";if(c.includes(Ae))return"audio";if(Ae==="pdf")return"pdf";const I=r.openMode!=="view";return Ae==="md"||Ae==="markdown"?"markdown":Ae in u?"code":Ae in d?"viewer":h.includes(Ae)?"office":f.includes(Ae)?I?"code":"text":"other"}),w=l.shallowRef(null),m=l.ref(null),_=l.ref(!1);async function y(Ae){w.value=null,m.value=null;const I=d[Ae];if(I)try{const J=await I();w.value=J.default??J}catch(J){m.value=J instanceof Error?J.message:"viewer load failed",Ae==="pdf"&&(_.value=!0)}}function g(){_.value=!0}const b=l.computed(()=>{var J;const Ae=i(r.file),I={url:B.value,ext:Ae,mime:(J=r.file)==null?void 0:J.mime_type,t:a,authHeaders:r.authHeaders,authCredentials:r.authCredentials};return r.file&&(I.filePath=F(r.file.path),(Ae==="zip"||Ae==="rar"||Ae==="7z"||Ae==="tar"||Ae==="gz"||Ae==="tgz")&&(I.filePath=r.file.path)),(Ae==="drawio"||Ae==="dio")&&(I.drawioUrl=r.drawioUrl??void 0,I.saveUrl=r.saveTextEndpoint??void 0,I.readOnly=r.openMode==="view"),Ae==="pdf"&&(I.pdfWorkerUrl=r.pdfWorkerUrl??void 0,I.pdfSaveUrl=r.pdfSaveUrl??void 0),I});function v(){C(r.openMode||"edit")}function E(){C("edit")}function C(Ae){if(!r.file)return;const I=i(r.file),J=r.viewerBaseUrl||"/files/edit",de=J.includes("?")?"&":"?",Se=`${J}${de}path=${encodeURIComponent(r.file.path)}&type=${encodeURIComponent(I)}&mode=${encodeURIComponent(Ae)}`;window.open(Se,"_blank","noopener")}const A=new Set(["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf","drawio","dio","mmd","mermaid","md","markdown","txt","log","json","jsonc","yaml","yml","xml","svg","html","htm","js","mjs","cjs","ts","tsx","jsx","vue","svelte","css","scss","sass","less","php","py","rb","go","rs","java","kt","swift","cpp","c","h","hpp","cs","dart","sh","bash","sql","toml","ini","conf","cfg","env","dockerfile","graphql","gql"]),k=l.computed(()=>!!r.file&&A.has(i(r.file))),B=l.computed(()=>r.file?r.previewUrl(r.file.path):""),T=l.computed(()=>r.file?r.downloadUrl(r.file.path):"");function F(Ae){const I=Ae.indexOf("://");return I===-1?Ae:Ae.slice(I+3)}const V=l.ref(!1),L=l.ref(null),H=l.ref(""),X=l.ref(!1),W=l.ref(!1),Z=l.ref(!1);let Q,K;function ue(){W.value=!0,Q&&clearTimeout(Q),Q=setTimeout(()=>{he(H.value)},250),K&&clearTimeout(K),K=setTimeout(()=>{ne()},1500)}async function ne(){if(!(!r.saveTextEndpoint||!r.file||Z.value)){Z.value=!0,L.value=null;try{const Ae={"Content-Type":"application/json",...await(r.authHeaders??(()=>({})))()},I=await fetch(r.saveTextEndpoint,{method:"POST",headers:Ae,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:F(r.file.path),content:H.value})});if(!I.ok)throw new Error(`save failed: ${I.status} ${await I.text()}`);W.value=!1}catch(Ae){L.value=Ae instanceof Error?Ae.message:String(Ae)}finally{Z.value=!1}}}async function fe(Ae){V.value=!0,L.value=null,H.value="",X.value=!1;try{const I={};r.authHeaders&&Object.assign(I,r.authHeaders());const J=await fetch(Ae,{credentials:r.authCredentials||"include",headers:I});if(!J.ok)throw new Error(`${J.status} ${J.statusText}`);if(Number(J.headers.get("content-length")||"0")>zo){X.value=!0;return}const Se=await J.text();Se.length>zo?(X.value=!0,H.value=Se.slice(0,zo)):H.value=Se}catch(I){L.value=I instanceof Error?I.message:String(I)}finally{V.value=!1}}const re=l.ref(""),ye=l.ref(null);async function he(Ae){try{const I=await import("markdown-it").catch(()=>null);if(!I){re.value="";return}const J=I.default??I,Se=new J({html:!0,linkify:!0,breaks:!0,typographer:!0}).render(Ae);re.value=ke(Se),await new Promise(P=>setTimeout(P,0)),await Ee()}catch(I){re.value="",L.value=I instanceof Error?I.message:String(I)}}function ke(Ae){return Ae.replace(/<\s*script\b[^<]*(?:(?!<\s*\/\s*script\s*>)<[^<]*)*<\s*\/\s*script\s*>/gi,"").replace(/<\s*iframe\b[\s\S]*?<\s*\/\s*iframe\s*>/gi,"").replace(/<\s*object\b[\s\S]*?<\s*\/\s*object\s*>/gi,"").replace(/<\s*embed\b[^>]*>/gi,"").replace(/\son\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/(href|src|action|formaction|xlink:href)\s*=\s*(?:"\s*javascript:[^"]*"|'\s*javascript:[^']*')/gi,'$1="#"')}async function Ee(){var Se,P,j;if(!ye.value)return;const Ae=ye.value,I=Array.from(Ae.querySelectorAll("pre > code"));if(I.length===0)return;let J,de;for(const M of I){const pe=M.className||"",le=/\blanguage-mermaid\b/.test(pe)||/\blanguage-mmd\b/.test(pe),S=/\blanguage-math\b/.test(pe)||/\blanguage-latex\b/.test(pe)||/\blanguage-tex\b/.test(pe);if(le){if(J===void 0)try{const ae=await import("mermaid");J=ae.default??ae,(Se=J.initialize)==null||Se.call(J,{startOnLoad:!1,securityLevel:"strict"})}catch{J=null}if(!J)continue;try{const ae=`filex-md-mermaid-${Math.random().toString(36).slice(2)}`,{svg:ce}=await J.render(ae,M.textContent||""),N=document.createElement("div");N.className="fe-preview__md-mermaid",N.innerHTML=ce,(P=M.parentElement)==null||P.replaceWith(N)}catch{}}else if(S){if(de===void 0)try{const ae=await Promise.resolve().then(()=>e8);de=ae.default??ae}catch{de=null}if(!de)continue;try{const ae=de.renderToString(M.textContent||"",{displayMode:!0,throwOnError:!1}),ce=document.createElement("div");ce.className="fe-preview__md-math",ce.innerHTML=ae,(j=M.parentElement)==null||j.replaceWith(ce)}catch{}}}}const me=l.ref("");async function te(Ae,I){try{const J=await e0();if(!J){me.value="";return}const de=J.default??J;if(de.getLanguage(I)){const Se=de.highlight(Ae,{language:I,ignoreIllegals:!0});me.value=Se.value}else{const Se=de.highlightAuto(Ae);me.value=Se.value}}catch(J){me.value="",L.value=J instanceof Error?J.message:String(J)}}const se=l.ref(null);let ie=null,_e;const He=l.ref(!1),je=l.ref(!1),Ve=l.ref(!1),ge=l.ref(null);function Ce(){if(ie){try{ie.dispose()}catch{}ie=null}He.value=!1,Ve.value=!1,ge.value=null}function ve(Ae){return{js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",json:"json",jsonc:"json",css:"css",scss:"scss",sass:"scss",less:"less",html:"html",htm:"html",vue:"html",svelte:"html",xml:"xml",svg:"xml",md:"markdown",markdown:"markdown",php:"php",py:"python",yml:"yaml",yaml:"yaml",go:"go",rs:"rust",sql:"sql",cpp:"cpp",c:"c",h:"cpp",hpp:"cpp",sh:"shell",bash:"shell",dockerfile:"dockerfile",toml:"ini",ini:"ini",conf:"ini",cfg:"ini"}[Ae]??"plaintext"}async function Oe(Ae,I){var de;const J=await Qi();if(!J||!se.value)return!1;try{Ce();const Se=!!r.saveTextEndpoint&&r.openMode!=="view",P=r.theme==="dark"?!0:r.theme==="light"?!1:(de=window.matchMedia)==null?void 0:de.call(window,"(prefers-color-scheme: dark)").matches;return ie=J.editor.create(se.value,{value:Ae,language:ve(I),readOnly:!Se,theme:P?"vs-dark":"vs",automaticLayout:!0,minimap:{enabled:!1},fontSize:13}),Se&&(ie.addCommand(J.KeyMod.CtrlCmd|J.KeyCode.KeyS,()=>void tt()),ie.onDidChangeModelContent(()=>{_e&&clearTimeout(_e),_e=setTimeout(()=>{tt()},1500)})),He.value=!0,!0}catch(Se){return L.value=`Monaco mount fail: ${Se.message}`,!1}}async function tt(){if(!(!r.saveTextEndpoint||!r.file)&&r.openMode!=="view"&&!je.value){je.value=!0,Ve.value=!1,ge.value=null;try{const Ae=ie?ie.getValue():"",I={"Content-Type":"application/json"};r.authHeaders&&Object.assign(I,r.authHeaders());const J=await fetch(r.saveTextEndpoint,{method:"POST",headers:I,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:F(r.file.path),content:Ae})});if(!J.ok){const de=await J.text().catch(()=>"");throw new Error(`${J.status} ${J.statusText}${de?" — "+de.slice(0,150):""}`)}Ve.value=!0,setTimeout(()=>{Ve.value=!1},2500)}catch(Ae){ge.value=Ae.message}finally{je.value=!1}}}async function at(Ae,I,J){if(H.value="",re.value="",me.value="",L.value=null,ut.value=null,w.value=null,m.value=null,_.value=!1,gt(),Ce(),!(!Ae||!I)){if(J==="viewer"){await y(i(r.file));return}if(J==="markdown"||J==="code"||J==="text"){if(await fe(I),X.value)return;if(J==="markdown"){await he(H.value);return}const de=u[i(r.file)]||"";Io()?(await new Promise(j=>setTimeout(j,0)),await Oe(H.value,i(r.file))||await te(H.value,de)):(J==="code"&&await te(H.value,de),Qi().then(async P=>{P&&r.open&&(await new Promise(j=>setTimeout(j,0)),await Oe(H.value,i(r.file)))}))}else J==="office"&&(await new Promise(de=>setTimeout(de,0)),await vt())}}l.watch(()=>[r.open,B.value,p.value,r.openMode],([Ae,I,J])=>{at(Ae,I,J)}),l.onMounted(()=>{l.nextTick(()=>{r.open&&at(r.open,B.value,p.value)})});const st=l.computed(()=>u[i(r.file)]||"plaintext"),It=l.ref(null),ut=l.ref(null);let ft=null;async function vt(){if(ut.value=null,!(!r.file||p.value!=="office")){if(!r.onlyOfficeConfigEndpoint){ut.value="OnlyOffice yapılandırması yok";return}if(It.value)try{const Ae={"Content-Type":"application/json"};r.authHeaders&&Object.assign(Ae,r.authHeaders());const I=await fetch(r.onlyOfficeConfigEndpoint,{method:"POST",headers:Ae,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:r.file.path,mode:r.openMode||"edit"})});if(!I.ok)throw new Error(`Config fetch ${I.status}: ${(await I.text()).slice(0,200)}`);const{config:J,documentServerUrl:de}=await I.json();await Ct(de),gt();const Se="fe-onlyoffice-mount";It.value.id=Se,J.events={onError:j=>{ut.value=pt(j)}};const P=window;if(!P.DocsAPI||!P.DocsAPI.DocEditor)throw new Error("DocsAPI not available after script load");ft=new P.DocsAPI.DocEditor(Se,J)}catch(Ae){ut.value=Ae instanceof Error?Ae.message:String(Ae)}}}function gt(){var Ae;try{(Ae=ft==null?void 0:ft.destroyEditor)==null||Ae.call(ft)}catch{}ft=null}l.onBeforeUnmount(()=>{gt(),Ce()});function pt(Ae){if(typeof Ae=="string")return Ae;const I=Ae;if(I!=null&&I.data&&typeof I.data=="object"){const J=I.data;if(typeof J.errorDescription=="string")return J.errorDescription;if(typeof J.message=="string")return J.message;if(J.errorCode!==void 0)return`OnlyOffice error ${J.errorCode}`}if(typeof(I==null?void 0:I.data)=="string")return I.data;if(typeof(I==null?void 0:I.errorDescription)=="string")return I.errorDescription;if(typeof(I==null?void 0:I.message)=="string")return I.message;try{return JSON.stringify(Ae)}catch{return"OnlyOffice error"}}function Ct(Ae){return new Promise((I,J)=>{var P;if((P=window.DocsAPI)!=null&&P.DocEditor){I();return}const de=document.getElementById(hc);if(de){de.addEventListener("load",()=>I()),de.addEventListener("error",()=>J(new Error("OnlyOffice api.js load failed")));return}const Se=document.createElement("script");Se.id=hc,Se.src=`${Ae.replace(/\/$/,"")}/web-apps/apps/api/documents/api.js`,Se.async=!0,Se.onload=()=>I(),Se.onerror=()=>J(new Error("OnlyOffice api.js load failed")),document.head.appendChild(Se)})}return(Ae,I)=>{var J;return l.openBlock(),l.createBlock(si,{open:e.open,size:"xl",title:((J=e.file)==null?void 0:J.basename)||"",chromeless:e.chromeless,theme:e.theme,onClose:I[2]||(I[2]=de=>n("close"))},{actions:l.withCtx(()=>[e.file&&e.openMode==="view"&&k.value?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:E},"✏ Düzenle")):l.createCommentVNode("",!0),e.file?(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:"fe-btn",onClick:v},"↗ "+l.toDisplayString(l.unref(a)("viewer.open_in_new_tab")),1)):l.createCommentVNode("",!0),e.file?(l.openBlock(),l.createElementBlock("a",{key:2,href:T.value,class:"fe-btn"},l.toDisplayString(l.unref(a)("viewer.download")),9,q4)):l.createCommentVNode("",!0),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:I[1]||(I[1]=de=>n("close"))},"Kapat")]),default:l.withCtx(()=>[e.file?(l.openBlock(),l.createElementBlock("div",r4,[p.value==="image"?(l.openBlock(),l.createElementBlock("img",{key:0,src:B.value,alt:e.file.basename,class:"fe-preview__image"},null,8,n4)):p.value==="video"?(l.openBlock(),l.createElementBlock("video",{key:1,src:B.value,controls:"",preload:"metadata",class:"fe-preview__video"},null,8,a4)):p.value==="audio"?(l.openBlock(),l.createElementBlock("audio",{key:2,src:B.value,controls:"",class:"fe-preview__audio"},null,8,i4)):p.value==="pdf"?(l.openBlock(),l.createElementBlock("object",{key:3,data:B.value,type:"application/pdf",class:"fe-preview__iframe"},[l.createElementVNode("div",l4,[I[3]||(I[3]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"📕",-1)),I[4]||(I[4]=l.createElementVNode("p",null,"Tarayıcı PDF'i inline açamadı.",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary",target:"_blank",rel:"noopener"},"PDF'i Yeni Sekmede Aç",8,s4)])],8,o4)):p.value==="markdown"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:4},[V.value?(l.openBlock(),l.createElementBlock("div",c4,l.toDisplayString(l.unref(a)("viewer.loading")),1)):X.value?(l.openBlock(),l.createElementBlock("div",u4,[I[5]||(I[5]=l.createTextVNode(" Dosya çok büyük (>1 MB). ",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn"},l.toDisplayString(l.unref(a)("viewer.download")),9,f4)])):e.openMode==="edit"&&e.saveTextEndpoint?(l.openBlock(),l.createElementBlock("div",d4,[l.createElementVNode("div",h4,[I[6]||(I[6]=l.createElementVNode("span",{class:"fe-preview__md-split-label"},"MARKDOWN",-1)),L.value?(l.openBlock(),l.createElementBlock("span",p4,l.toDisplayString(L.value),1)):l.createCommentVNode("",!0),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",disabled:!W.value||Z.value,onClick:ne},l.toDisplayString(Z.value?"Kaydediliyor…":W.value?"Kaydet (Ctrl+S)":"Kaydedildi"),9,m4)]),l.createElementVNode("div",v4,[l.withDirectives(l.createElementVNode("textarea",{class:"fe-preview__md-split-input","onUpdate:modelValue":I[0]||(I[0]=de=>H.value=de),onInput:ue,onKeydown:[l.withKeys(l.withModifiers(ne,["ctrl","prevent"]),["s"]),l.withKeys(l.withModifiers(ne,["meta","prevent"]),["s"])],spellcheck:"false",placeholder:"# Markdown buraya…"},null,40,g4),[[l.vModelText,H.value]]),l.createElementVNode("div",{ref_key:"markdownEl",ref:ye,class:"fe-preview__md-split-output fe-preview__md",innerHTML:re.value},null,8,y4)])])):L.value?(l.openBlock(),l.createElementBlock("div",b4,[l.createElementVNode("p",null,l.toDisplayString(L.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},l.toDisplayString(l.unref(a)("viewer.download")),9,w4)])):re.value?(l.openBlock(),l.createElementBlock("div",{key:4,ref_key:"markdownEl",ref:ye,class:"fe-preview__md",innerHTML:re.value},null,8,_4)):(l.openBlock(),l.createElementBlock("pre",x4,l.toDisplayString(H.value),1))],64)):p.value==="viewer"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:5},[m.value&&!_.value?(l.openBlock(),l.createElementBlock("div",k4,[I[7]||(I[7]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⚠️",-1)),l.createElementVNode("p",null,l.toDisplayString(m.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},l.toDisplayString(l.unref(a)("viewer.download")),9,S4)])):w.value?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(w.value),l.mergeProps({key:2},b.value,{class:"fe-preview__viewer",onFallback:g}),null,16)):(l.openBlock(),l.createElementBlock("div",E4,[I[8]||(I[8]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(l.unref(a)("viewer.loading")),1)]))],64)):p.value==="code"||p.value==="text"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:6},[V.value?(l.openBlock(),l.createElementBlock("div",C4,l.toDisplayString(l.unref(a)("viewer.loading")),1)):X.value?(l.openBlock(),l.createElementBlock("div",D4,[I[9]||(I[9]=l.createTextVNode(" Dosya çok büyük (>1 MB). ",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn"},l.toDisplayString(l.unref(a)("viewer.download")),9,A4)])):L.value?(l.openBlock(),l.createElementBlock("div",B4,[l.createElementVNode("p",null,l.toDisplayString(L.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},l.toDisplayString(l.unref(a)("viewer.download")),9,T4)])):(l.openBlock(),l.createElementBlock("div",M4,[l.createElementVNode("div",I4,[l.createElementVNode("span",z4,l.toDisplayString(st.value),1),!He.value&&me.value?(l.openBlock(),l.createElementBlock("span",F4,l.toDisplayString(e.saveTextEndpoint?"Editör yükleniyor…":"Salt okunur"),1)):l.createCommentVNode("",!0),Ve.value?(l.openBlock(),l.createElementBlock("span",N4,"✓ Kaydedildi")):l.createCommentVNode("",!0),ge.value?(l.openBlock(),l.createElementBlock("span",{key:2,class:"fe-preview__code-status fe-preview__code-status--err",title:ge.value},"✗ Hata",8,O4)):l.createCommentVNode("",!0),e.openMode==="view"?(l.openBlock(),l.createElementBlock("span",L4,"Salt okunur")):e.saveTextEndpoint&&He.value?(l.openBlock(),l.createElementBlock("button",{key:4,type:"button",class:"fe-btn fe-btn--primary",disabled:je.value,onClick:tt},l.toDisplayString(je.value?"Kaydediliyor…":"Kaydet (Ctrl+S)"),9,P4)):l.createCommentVNode("",!0)]),l.createElementVNode("div",{ref_key:"monacoEl",ref:se,class:l.normalizeClass(["fe-preview__code-editor",{"is-hidden":!He.value}])},null,2),!He.value&&me.value?(l.openBlock(),l.createElementBlock("pre",R4,[l.createElementVNode("code",{class:l.normalizeClass(`language-${st.value}`),innerHTML:me.value},null,10,V4)])):!He.value&&!me.value?(l.openBlock(),l.createElementBlock("pre",{key:1,class:"fe-preview__pre","data-lang":st.value},l.toDisplayString(H.value),9,$4)):l.createCommentVNode("",!0)]))],64)):p.value==="office"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:7},[ut.value?(l.openBlock(),l.createElementBlock("div",U4,[I[10]||(I[10]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"📄",-1)),l.createElementVNode("p",null,l.toDisplayString(ut.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},"İndir",8,H4)])):(l.openBlock(),l.createElementBlock("div",{key:1,ref_key:"officeEl",ref:It,class:"fe-preview__office"},null,512))],64)):(l.openBlock(),l.createElementBlock("div",G4,[I[11]||(I[11]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"📎",-1)),I[12]||(I[12]=l.createElementVNode("p",null,"Bu dosya tipi için önizleme henüz yok.",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},"İndir",8,j4)]))])):l.createCommentVNode("",!0)]),_:1},8,["open","title","chromeless","theme"])}}}),W4={class:"filex-cv"},X4={class:"filex-cv__head"},Z4={key:0,class:"filex-cv__msg"},K4={key:1,class:"filex-cv__msg filex-cv__ok"},Y4={class:"filex-cv__src"},J4=["placeholder"],Q4={class:"filex-cv__list"},ev=["onClick"],tv={key:0,class:"filex-cv__empty"},rv={key:0,class:"filex-cv__err"},nv={class:"filex-cv__foot"},av=["disabled"],iv=["src"],ov=xr(l.defineComponent({__name:"ConvertModal",props:{convertUrl:{},fileName:{},fetchBytes:{type:Function},upload:{type:Function},t:{type:Function}},emits:["close","done"],setup(e,{emit:t}){const r=e,n=t,a=l.ref(null),i=l.ref("loading"),o=l.ref(null),s=l.ref([]),c=l.ref(""),u=l.ref(null),f=l.computed(()=>(r.fileName.split(".").pop()||"").toLowerCase()),h=l.computed(()=>{const E=s.value.filter(C=>C.from);return E.find(C=>(C.ext||"").toLowerCase()===f.value)||E.find(C=>(C.format||"").toLowerCase()===f.value)||null}),d=l.computed(()=>{const E=c.value.trim().toLowerCase(),C=new Set,A=[];for(const k of s.value){if(!k.to)continue;const B=(k.ext||k.format||"").toLowerCase();!B||C.has(B)||(C.add(B),A.push(k))}return A.sort((k,B)=>(k.ext||k.format).localeCompare(B.ext||B.format)),E?A.filter(k=>(k.ext||"").toLowerCase().includes(E)||(k.format||"").toLowerCase().includes(E)||(k.name||"").toLowerCase().includes(E)||(k.mime||"").toLowerCase().includes(E)):A}),p=l.computed(()=>`${r.convertUrl.replace(/\/$/,"")}/?embed=1`);let w=0;const m=new Map;function _(E,C={},A=[]){const k=++w;return new Promise((B,T)=>{var F,V;m.set(k,{resolve:B,reject:T}),(V=(F=a.value)==null?void 0:F.contentWindow)==null||V.postMessage({target:"convert-embed",id:k,cmd:E,...C},"*",A),setTimeout(()=>{m.has(k)&&(m.delete(k),T(new Error("convert timeout")))},18e4)})}function y(E){const C=E.data;if(!C||C.source!=="convert-embed")return;if(C.event==="ready"){g();return}const A=m.get(C.id);A&&(m.delete(C.id),C.ok?A.resolve(C):A.reject(new Error(C.error||"convert error")))}async function g(){try{const E=await _("listFormats");s.value=E.formats||[],i.value="ready",h.value||(o.value=v("convert.unsupportedInput","Bu dosya tipi için kaynak format bulunamadı."))}catch(E){o.value=E.message,i.value="error"}}async function b(){if(!(!u.value||!h.value)){i.value="converting",o.value=null;try{const E=await r.fetchBytes(),C=await _("convert",{name:r.fileName,bytes:E,fromIndex:h.value.index,toIndex:u.value.index},[E]),A=r.fileName.replace(/\.[^.]+$/,""),k=C.ext||u.value.ext||u.value.format,B=`${A}.${k}`,T=new File([C.bytes],B,{type:u.value.mime||"application/octet-stream"});await r.upload(T),i.value="done",n("done",B)}catch(E){o.value=E.message,i.value="error"}}}function v(E,C){return r.t?r.t(E,C):C}return l.onMounted(()=>window.addEventListener("message",y)),l.onBeforeUnmount(()=>window.removeEventListener("message",y)),(E,C)=>(l.openBlock(),l.createElementBlock("div",{class:"filex-cv__bg",onClick:C[3]||(C[3]=l.withModifiers(A=>n("close"),["self"]))},[l.createElementVNode("div",W4,[l.createElementVNode("header",X4,[l.createElementVNode("h3",null,l.toDisplayString(v("convert.title","Dönüştür"))+" — "+l.toDisplayString(e.fileName),1),l.createElementVNode("button",{class:"filex-cv__x",onClick:C[0]||(C[0]=A=>n("close"))},"✕")]),i.value==="loading"?(l.openBlock(),l.createElementBlock("div",Z4,l.toDisplayString(v("convert.loading","Dönüştürücü yükleniyor…")),1)):i.value==="done"?(l.openBlock(),l.createElementBlock("div",K4,[l.createElementVNode("p",null,"✓ "+l.toDisplayString(v("convert.done","Dönüştürüldü ve klasöre yüklendi.")),1),l.createElementVNode("button",{class:"filex-cv__convert",onClick:C[1]||(C[1]=A=>n("close"))},l.toDisplayString(v("convert.close","Kapat")),1)])):(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createElementVNode("p",Y4,[l.createTextVNode(l.toDisplayString(v("convert.from","Kaynak"))+": ",1),l.createElementVNode("b",null,l.toDisplayString(f.value||"?"),1)]),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":C[2]||(C[2]=A=>c.value=A),class:"filex-cv__search",placeholder:v("convert.searchFmt","Hedef format ara (pdf, mp4, png…)")},null,8,J4),[[l.vModelText,c.value]]),l.createElementVNode("div",Q4,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(d.value,A=>{var k;return l.openBlock(),l.createElementBlock("button",{key:A.index,class:l.normalizeClass(["filex-cv__fmt",{"is-sel":((k=u.value)==null?void 0:k.index)===A.index}]),onClick:B=>u.value=A},[l.createElementVNode("b",null,l.toDisplayString((A.ext||A.format).toUpperCase()),1),l.createElementVNode("small",null,l.toDisplayString(A.name),1)],10,ev)}),128)),d.value.length===0?(l.openBlock(),l.createElementBlock("div",tv,l.toDisplayString(v("convert.noFmt","Eşleşen format yok.")),1)):l.createCommentVNode("",!0)]),o.value?(l.openBlock(),l.createElementBlock("div",rv,l.toDisplayString(o.value),1)):l.createCommentVNode("",!0),l.createElementVNode("footer",nv,[l.createElementVNode("button",{class:"filex-cv__convert",disabled:!u.value||!h.value||i.value==="converting",onClick:b},l.toDisplayString(i.value==="converting"?v("convert.converting","Dönüştürülüyor…"):v("convert.convert","Dönüştür")),9,av)])],64)),l.createElementVNode("iframe",{ref_key:"iframeRef",ref:a,src:p.value,class:"filex-cv__frame",title:"converter"},null,8,iv)])]))}}),[["__scopeId","data-v-4363f1ac"]]),lv={class:"fx-perm-modal"},sv={class:"fx-perm-head"},cv={class:"fx-perm-title"},uv={class:"fx-perm-ico","aria-hidden":"true"},fv={class:"fx-perm-titletext"},dv=["title"],hv={class:"fx-perm-subdim"},pv={class:"fx-perm-tabs"},mv={class:"fx-perm-body"},vv={key:0,class:"fx-perm-warn"},gv={key:1,class:"fx-perm-warn"},yv={key:2,class:"fx-perm-muted"},bv={class:"fx-perm-addcard"},wv={class:"fx-perm-add"},_v={class:"fx-perm-emailwrap"},xv=["placeholder"],kv={key:0,class:"fx-perm-suggest"},Sv=["onMousedown"],Ev={class:"fx-perm-suggest-av"},Cv={class:"fx-perm-suggest-txt"},Dv={class:"fx-perm-suggest-name"},Av={class:"fx-perm-suggest-meta"},Bv=["title"],Tv=["value"],Mv=["disabled"],Iv={key:0,class:"fx-perm-invite"},zv={class:"fx-perm-muted"},Fv={class:"fx-perm-invite-actions"},Nv={class:"fx-perm-invite-row"},Ov={value:"user"},Lv={value:"viewer"},Pv=["disabled"],Rv=["disabled"],Vv={key:1,class:"fx-perm-notice"},$v={key:2,class:"fx-perm-reveal"},Uv={class:"fx-perm-section"},Hv={key:0,class:"fx-perm-empty"},Gv={class:"fx-perm-av"},jv=["title"],qv=["value","onChange"],Wv=["value"],Xv=["disabled","title","onClick"],Zv={class:"fx-perm-av fx-perm-av--dim"},Kv=["title"],Yv={class:"fx-perm-badge"},Jv=["title"],Qv={class:"fx-perm-addcard"},e5={class:"fx-perm-share-opts"},t5={class:"fx-perm-check"},r5={class:"fx-perm-expiry"},n5={class:"fx-perm-muted"},a5=["value"],i5=["disabled"],o5={key:0,class:"fx-perm-warn"},l5={key:1,class:"fx-perm-result"},s5={class:"fx-perm-linkrow"},c5=["href"],u5={key:0,class:"fx-perm-pin"},f5={class:"fx-perm-mailrow"},d5=["placeholder"],h5=["disabled"],p5={key:1,class:"fx-perm-notice"},m5={key:2,class:"fx-perm-hint"},v5={class:"fx-perm-section"},g5={key:0,class:"fx-perm-empty"},y5=["title"],b5=["onClick"],w5=["disabled","title","onClick"],_5={key:2,class:"fx-perm-addcard"},x5={class:"fx-perm-muted fx-perm-dropintro"},k5={class:"fx-perm-share-opts"},S5={class:"fx-perm-check"},E5={class:"fx-perm-expiry"},C5={class:"fx-perm-muted"},D5=["value"],A5=["disabled"],B5={key:0,class:"fx-perm-adv"},T5={class:"fx-perm-adv-row"},M5={class:"fx-perm-muted"},I5={class:"fx-perm-adv-row"},z5={class:"fx-perm-muted"},F5={class:"fx-perm-adv-row"},N5={class:"fx-perm-muted"},O5=["placeholder"],L5={class:"fx-perm-check"},P5={key:1,class:"fx-perm-warn"},R5={key:2,class:"fx-perm-result"},V5={class:"fx-perm-linkrow"},$5=["href"],U5={key:0,class:"fx-perm-pin"},H5={class:"fx-perm-mailrow"},G5=["placeholder"],j5=["disabled"],q5={key:1,class:"fx-perm-notice"},W5=xr(l.defineComponent({__name:"PermissionsModal",props:{api:{},path:{},isDir:{type:Boolean},size:{},locale:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,a=l.computed(()=>(r.locale??"tr")!=="en");function i(P,j){return a.value?P:j}const o=l.computed(()=>{const P=/^([^:]+):\/\/(.*)$/.exec(r.path),j=P?P[1]:"",M=P?P[2]:r.path,pe=M.split("/").filter(Boolean);return{adapter:j,name:pe.length?pe[pe.length-1]:j,rel:M}}),s=l.ref("perms"),c=l.ref(!1),u=l.ref(!0),f=l.ref(""),h=l.ref([]),d=l.ref([]),p=l.ref(!0),w=l.ref(""),m=l.ref("viewer"),_=l.ref(!1),y=l.ref(""),g=l.ref(!1),b=l.ref("user"),v=l.ref(null),E=l.ref([]),C=l.ref(!1);let A;const k=[{v:"viewer",l:i("Görüntüleyen","Viewer"),d:i("görüntüle + indir","view + download")},{v:"editor",l:i("Düzenleyen","Editor"),d:i("oku + yaz + sil","read + write + delete")},{v:"owner",l:i("Sahip","Owner"),d:i("düzenle + izin yönet","edit + manage access")}];function B(P){var j;return((j=k.find(M=>M.v===P))==null?void 0:j.l)??P}const T=l.ref([]),F=l.ref(!1),V=l.ref(!1),L=l.ref(0),H=l.ref(null),X=l.ref(""),W=l.ref(""),Z=l.ref(""),Q=l.ref(!1),K=l.ref(""),ue=[{v:0,l:i("Süresiz","Never")},{v:1,l:i("1 gün","1 day")},{v:7,l:i("7 gün","7 days")},{v:30,l:i("30 gün","30 days")}],ne=l.ref(!1),fe=l.ref(0),re=l.ref(!1),ye=l.ref(""),he=l.ref(""),ke=l.ref(""),Ee=l.ref(!0),me=l.ref(!1),te=l.ref(""),se=l.ref(null),ie=l.ref(""),_e=l.ref(!1),He=l.ref("");function je(P){const j=new Set,M=[];for(const pe of P.split(/[,;\s]+/)){const le=pe.trim().toLowerCase();le&&le.includes("@")&&!j.has(le)&&(j.add(le),M.push(le))}return M}function Ve(P){var pe,le;const j=((pe=P.sent)==null?void 0:pe.length)??0,M=((le=P.failed)==null?void 0:le.length)??0;return M===0?i(`E-posta gönderildi ✓ (${j})`,`Email sent ✓ (${j})`):i(`${j} gönderildi, ${M} başarısız`,`${j} sent, ${M} failed`)}async function ge(){u.value=!0,f.value="";try{const P=await r.api.listPermissions(r.path);h.value=P.direct??[],d.value=P.inherited??[],p.value=P.storage_rbac,c.value=!0}catch(P){P.status===403?(c.value=!1,s.value="share"):f.value=P instanceof Error?P.message:String(P)}finally{u.value=!1}}async function Ce(){try{const P=await r.api.listShares(r.path);T.value=P.shares??[]}catch{T.value=[]}}l.onMounted(async()=>{await ge(),await Ce()}),l.onBeforeUnmount(()=>{A&&clearTimeout(A)});function ve(){g.value=!1,v.value=null,y.value="";const P=w.value.trim();if(A&&clearTimeout(A),P.length<1){E.value=[],C.value=!1;return}A=setTimeout(async()=>{try{const j=await r.api.searchUsers(P);E.value=j.users??[],C.value=E.value.length>0}catch{C.value=!1}},180)}async function Oe(P){C.value=!1,w.value=P.email;let j=m.value;P.role==="viewer"&&j!=="viewer"&&(j="viewer"),_.value=!0,y.value="";try{await r.api.addPermission({path:r.path,user_id:P.id,level:j,is_dir:!!r.isDir}),w.value="",E.value=[],await ge(),y.value=i("Yetki verildi.","Access granted.")}catch(M){y.value=M instanceof Error?M.message:String(M)}finally{_.value=!1}}async function tt(){const P=w.value.trim().toLowerCase();if(!P||!P.includes("@")){y.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}C.value=!1,_.value=!0,y.value="",v.value=null;try{const j=await r.api.resolveEmail(P);if(j.found&&j.user){let M=m.value;j.user.role==="viewer"&&M!=="viewer"&&(M="viewer"),await r.api.addPermission({path:r.path,user_id:j.user.id,level:M,is_dir:!!r.isDir}),w.value="",await ge(),y.value=i("Yetki verildi.","Access granted.")}else g.value=!0}catch(j){y.value=j instanceof Error?j.message:String(j)}finally{_.value=!1}}async function at(){_.value=!0,y.value="";try{const P=await r.api.invitePermission({path:r.path,email:w.value.trim().toLowerCase(),level:m.value,create_user:!0,role:b.value,is_dir:!!r.isDir,locale:r.locale??"tr"});v.value={tempPassword:P.temp_password},y.value=P.emailed?i("Kullanıcı açıldı, davet e-postası gönderildi.","User created, invite emailed."):i("Kullanıcı açıldı. Geçici parolayı iletin.","User created. Share the temp password."),g.value=!1,w.value="",await ge()}catch(P){y.value=P instanceof Error?P.message:String(P)}finally{_.value=!1}}function st(){Z.value=w.value.trim().toLowerCase(),g.value=!1,y.value="",s.value="share"}async function It(P,j){if(j!==P.level){_.value=!0;try{await r.api.updatePermission(P.id,j),await ge()}catch(M){y.value=M instanceof Error?M.message:String(M)}finally{_.value=!1}}}async function ut(P){_.value=!0;try{await r.api.deletePermission(P.id),await ge()}catch(j){y.value=j instanceof Error?j.message:String(j)}finally{_.value=!1}}function ft(P){return P.user_display_name||P.user_email||`#${P.user_id}`}function vt(P){return(P.user_display_name||P.user_email||"?").charAt(0).toUpperCase()}function gt(){return L.value?new Date(Date.now()+L.value*864e5).toISOString():null}async function pt(){F.value=!0,X.value="",H.value=null,K.value="";try{const P=await r.api.createShare({path:r.path,password:V.value,expires_at:gt()});H.value={url:P.share.url,pin:P.share.password_pin??null},await Ce()}catch(P){X.value=P instanceof Error?P.message:String(P)}finally{F.value=!1}}async function Ct(){var j;const P=je(Z.value);if(!P.length){K.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}if((j=H.value)!=null&&j.url){Q.value=!0,K.value="";try{const M=await r.api.shareMail({path:r.path,emails:P,url:H.value.url,pin:H.value.pin??void 0,expires_days:L.value||void 0,locale:r.locale??"tr",is_dir:!!r.isDir,size:r.size});K.value=Ve(M)}catch(M){const pe=M.detail??"";pe.includes("not_configured")?K.value=i("SMTP ayarlı/doğrulanmış değil — linki elle iletin.","SMTP not set up/verified — share the link manually."):pe.includes("send_failed")?K.value=i("Gönderilemedi (geçici hata) — tekrar deneyin.","Send failed (temporary) — please retry."):K.value=M instanceof Error?M.message:String(M)}finally{Q.value=!1}}}function Ae(){return fe.value?new Date(Date.now()+fe.value*864e5).toISOString():null}async function I(){me.value=!0,te.value="",se.value=null,He.value="";try{const P={ask_name:Ee.value};ye.value&&(P.max_files=Number(ye.value)),he.value&&(P.max_file_size_mb=Number(he.value));const j=ke.value.split(/[,\s]+/).map(pe=>pe.trim().replace(/^\./,"")).filter(Boolean);j.length&&(P.allowed_ext=j);const M=await r.api.createShare({path:r.path,kind:"drop",password:ne.value,expires_at:Ae(),drop_settings:P});se.value={url:M.share.url,pin:M.share.password_pin??null}}catch(P){te.value=P instanceof Error?P.message:String(P)}finally{me.value=!1}}async function J(){var j;const P=je(ie.value);if(!P.length){He.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}if((j=se.value)!=null&&j.url){_e.value=!0,He.value="";try{const M=await r.api.shareMail({path:r.path,emails:P,url:se.value.url,pin:se.value.pin??void 0,expires_days:fe.value||void 0,locale:r.locale??"tr",is_dir:!0,mode:"drop"});He.value=Ve(M)}catch(M){(M.detail??"").includes("not_configured")?He.value=i("SMTP ayarlı/doğrulanmış değil — linki elle iletin.","SMTP not set up/verified — share the link manually."):He.value=M instanceof Error?M.message:String(M)}finally{_e.value=!1}}}async function de(P){F.value=!0;try{await r.api.revokeShare(P.uuid),await Ce()}catch(j){X.value=j instanceof Error?j.message:String(j)}finally{F.value=!1}}function Se(P,j="url"){var M;(M=navigator.clipboard)==null||M.writeText(P),W.value=j,setTimeout(()=>{W.value===j&&(W.value="")},1400)}return(P,j)=>{var M,pe;return l.openBlock(),l.createElementBlock("div",{class:"fx-perm-overlay",onClick:j[22]||(j[22]=l.withModifiers(le=>n("close"),["self"]))},[l.createElementVNode("div",lv,[l.createElementVNode("header",sv,[l.createElementVNode("div",cv,[l.createElementVNode("span",uv,l.toDisplayString(e.isDir?"📁":"📄"),1),l.createElementVNode("div",fv,[l.createElementVNode("h3",null,l.toDisplayString(i("Paylaş / İzinler","Share / Permissions")),1),l.createElementVNode("span",{class:"fx-perm-sub",title:e.path},[l.createTextVNode(l.toDisplayString(o.value.name),1),l.createElementVNode("span",hv," · "+l.toDisplayString(o.value.adapter),1)],8,dv)])]),l.createElementVNode("button",{class:"fx-perm-x",onClick:j[0]||(j[0]=le=>n("close")),"aria-label":"close"},"✕")]),l.createElementVNode("div",pv,[c.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:l.normalizeClass(["fx-perm-tab",{"is-active":s.value==="perms"}]),onClick:j[1]||(j[1]=le=>s.value="perms")},l.toDisplayString(i("Kişiler","People")),3)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:l.normalizeClass(["fx-perm-tab",{"is-active":s.value==="share"}]),onClick:j[2]||(j[2]=le=>s.value="share")},l.toDisplayString(i("Bağlantı","Link")),3),e.isDir?(l.openBlock(),l.createElementBlock("button",{key:1,class:l.normalizeClass(["fx-perm-tab",{"is-active":s.value==="drop"}]),onClick:j[3]||(j[3]=le=>s.value="drop")},l.toDisplayString(i("Dosya İste","Request files")),3)):l.createCommentVNode("",!0)]),l.createElementVNode("div",mv,[s.value==="perms"&&c.value?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[p.value?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",vv,l.toDisplayString(i("Bu diskte RBAC kapalı — izinler yalnızca RBAC açık disklerde geçerli.","RBAC is off on this storage — grants only apply when RBAC is enabled.")),1)),f.value?(l.openBlock(),l.createElementBlock("div",gv,l.toDisplayString(f.value),1)):l.createCommentVNode("",!0),u.value?(l.openBlock(),l.createElementBlock("div",yv,l.toDisplayString(i("Yükleniyor…","Loading…")),1)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:3},[l.createElementVNode("div",bv,[l.createElementVNode("div",wv,[l.createElementVNode("div",_v,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[4]||(j[4]=le=>w.value=le),type:"email",class:"fx-perm-input",autocomplete:"off",placeholder:i("İsim veya e-posta","Name or email"),onInput:ve,onKeyup:l.withKeys(tt,["enter"]),onFocus:ve},null,40,xv),[[l.vModelText,w.value]]),C.value?(l.openBlock(),l.createElementBlock("ul",kv,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(E.value,le=>(l.openBlock(),l.createElementBlock("li",{key:le.id,onMousedown:l.withModifiers(S=>Oe(le),["prevent"])},[l.createElementVNode("span",Ev,l.toDisplayString((le.display_name||le.email).charAt(0).toUpperCase()),1),l.createElementVNode("span",Cv,[l.createElementVNode("span",Dv,l.toDisplayString(le.display_name||le.email),1),l.createElementVNode("span",Av,l.toDisplayString(le.email)+" · "+l.toDisplayString(le.role),1)])],40,Sv))),128))])):l.createCommentVNode("",!0)]),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[5]||(j[5]=le=>m.value=le),class:"fx-perm-sel",title:(M=k.find(le=>le.v===m.value))==null?void 0:M.d},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(k,le=>l.createElementVNode("option",{key:le.v,value:le.v},l.toDisplayString(le.l),9,Tv)),64))],8,Bv),[[l.vModelSelect,m.value]]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:_.value,onClick:tt},l.toDisplayString(i("Ekle","Add")),9,Mv)]),g.value?(l.openBlock(),l.createElementBlock("div",Iv,[l.createElementVNode("p",zv,l.toDisplayString(i("Bu e-postada hesap yok. Ne yapmak istersiniz?","No account for this email — what next?")),1),l.createElementVNode("div",Fv,[l.createElementVNode("div",Nv,[l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[6]||(j[6]=le=>b.value=le),class:"fx-perm-sel"},[l.createElementVNode("option",Ov,l.toDisplayString(i("Kullanıcı","User")),1),l.createElementVNode("option",Lv,l.toDisplayString(i("Görüntüleyen","Viewer")),1)],512),[[l.vModelSelect,b.value]]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:_.value,onClick:at},l.toDisplayString(i("Kullanıcı oluştur + yetki ver","Create user + grant")),9,Pv)]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--ghost",disabled:_.value,onClick:st},l.toDisplayString(i("Sadece paylaşım linki gönder →","Just send a share link →")),9,Rv)])])):l.createCommentVNode("",!0),y.value?(l.openBlock(),l.createElementBlock("div",Vv,l.toDisplayString(y.value),1)):l.createCommentVNode("",!0),(pe=v.value)!=null&&pe.tempPassword?(l.openBlock(),l.createElementBlock("div",$v,[l.createTextVNode(l.toDisplayString(i("Geçici parola:","Temp password:"))+" ",1),l.createElementVNode("code",null,l.toDisplayString(v.value.tempPassword),1)])):l.createCommentVNode("",!0)]),l.createElementVNode("div",Uv,[l.createElementVNode("h4",null,l.toDisplayString(i("Erişimi olanlar","People with access")),1),!h.value.length&&!d.value.length?(l.openBlock(),l.createElementBlock("div",Hv,l.toDisplayString(i("Henüz kimseyle paylaşılmadı.","Not shared with anyone yet.")),1)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(h.value,le=>(l.openBlock(),l.createElementBlock("div",{key:"d"+le.id,class:"fx-perm-person"},[l.createElementVNode("span",Gv,l.toDisplayString(vt(le)),1),l.createElementVNode("span",{class:"fx-perm-user",title:le.user_email},l.toDisplayString(ft(le)),9,jv),l.createElementVNode("select",{class:"fx-perm-sel fx-perm-sel--sm",value:le.level,onChange:S=>It(le,S.target.value)},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(k,S=>l.createElementVNode("option",{key:S.v,value:S.v},l.toDisplayString(S.l),9,Wv)),64))],40,qv),l.createElementVNode("button",{class:"fx-perm-del",disabled:_.value,title:i("Kaldır","Remove"),onClick:S=>ut(le)},"✕",8,Xv)]))),128)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(d.value,le=>(l.openBlock(),l.createElementBlock("div",{key:"i"+le.id,class:"fx-perm-person fx-perm-inh"},[l.createElementVNode("span",Zv,l.toDisplayString(vt(le)),1),l.createElementVNode("span",{class:"fx-perm-user",title:le.user_email},l.toDisplayString(ft(le)),9,Kv),l.createElementVNode("span",Yv,l.toDisplayString(B(le.level)),1),l.createElementVNode("span",{class:"fx-perm-from",title:i("Üst klasörden gelir","Inherited from")+": "+(le.path_prefix||"/")}," ↳ "+l.toDisplayString(le.path_prefix||"/"),9,Jv)]))),128))])],64))],64)):l.createCommentVNode("",!0),s.value==="share"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",Qv,[l.createElementVNode("div",e5,[l.createElementVNode("label",t5,[l.withDirectives(l.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j[7]||(j[7]=le=>V.value=le)},null,512),[[l.vModelCheckbox,V.value]]),l.createTextVNode(" "+l.toDisplayString(i("PIN ile koru","Protect with a PIN")),1)]),l.createElementVNode("label",r5,[l.createElementVNode("span",n5,l.toDisplayString(i("Süre","Expiry")),1),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[8]||(j[8]=le=>L.value=le),class:"fx-perm-sel fx-perm-sel--sm"},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(ue,le=>l.createElementVNode("option",{key:le.v,value:le.v},l.toDisplayString(le.l),9,a5)),64))],512),[[l.vModelSelect,L.value,void 0,{number:!0}]])]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:F.value,onClick:pt},l.toDisplayString(i("Bağlantı oluştur","Create link")),9,i5)]),X.value?(l.openBlock(),l.createElementBlock("div",o5,l.toDisplayString(X.value),1)):l.createCommentVNode("",!0),H.value?(l.openBlock(),l.createElementBlock("div",l5,[l.createElementVNode("div",s5,[l.createElementVNode("a",{href:H.value.url,target:"_blank",rel:"noopener",class:"fx-perm-link"},l.toDisplayString(H.value.url),9,c5),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[9]||(j[9]=le=>Se(H.value.url,"new"))},l.toDisplayString(W.value==="new"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)]),H.value.pin?(l.openBlock(),l.createElementBlock("div",u5,[l.createElementVNode("span",null,[j[23]||(j[23]=l.createTextVNode("PIN: ",-1)),l.createElementVNode("code",null,l.toDisplayString(H.value.pin),1)]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[10]||(j[10]=le=>Se(H.value.pin,"sharepin"))},l.toDisplayString(W.value==="sharepin"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)])):l.createCommentVNode("",!0),l.createElementVNode("div",f5,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[11]||(j[11]=le=>Z.value=le),type:"text",class:"fx-perm-input",autocomplete:"off",placeholder:i("e-posta(lar) — virgülle ayırın","email(s) — comma separated"),onKeyup:l.withKeys(Ct,["enter"])},null,40,d5),[[l.vModelText,Z.value]]),l.createElementVNode("button",{class:"fx-perm-btn",disabled:Q.value,onClick:Ct},l.toDisplayString(i("Gönder","Send")),9,h5)]),K.value?(l.openBlock(),l.createElementBlock("div",p5,l.toDisplayString(K.value),1)):l.createCommentVNode("",!0)])):Z.value?(l.openBlock(),l.createElementBlock("p",m5,[l.createTextVNode(l.toDisplayString(i("Aşağıdan bir bağlantı oluşturun, ardından","Create a link below, then it will be sent to"))+" ",1),l.createElementVNode("strong",null,l.toDisplayString(Z.value),1),l.createTextVNode(" "+l.toDisplayString(i("adresine gönderin.",".")),1)])):l.createCommentVNode("",!0)]),l.createElementVNode("div",v5,[l.createElementVNode("h4",null,l.toDisplayString(i("Mevcut bağlantılar","Existing links")),1),T.value.length?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",g5,l.toDisplayString(i("Yok","None")),1)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(T.value,le=>(l.openBlock(),l.createElementBlock("div",{key:le.uuid,class:"fx-perm-person"},[l.createElementVNode("span",{class:"fx-perm-user fx-perm-link",title:le.url},l.toDisplayString(le.url),9,y5),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:S=>Se(le.url,le.uuid)},l.toDisplayString(W.value===le.uuid?i("✓","✓"):i("Kopyala","Copy")),9,b5),l.createElementVNode("button",{class:"fx-perm-del",disabled:F.value,title:i("İptal","Revoke"),onClick:S=>de(le)},"✕",8,w5)]))),128))])],64)):l.createCommentVNode("",!0),s.value==="drop"?(l.openBlock(),l.createElementBlock("div",_5,[l.createElementVNode("p",x5,l.toDisplayString(i("Bu klasöre herkesin dosya YÜKLEYEBİLECEĞİ herkese açık bir bağlantı. Yükleyenler klasördeki mevcut dosyaları göremez.","A public link that lets anyone UPLOAD files into this folder. Uploaders never see the folder's existing files.")),1),l.createElementVNode("div",k5,[l.createElementVNode("label",S5,[l.withDirectives(l.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j[12]||(j[12]=le=>ne.value=le)},null,512),[[l.vModelCheckbox,ne.value]]),l.createTextVNode(" "+l.toDisplayString(i("PIN ile koru","Protect with a PIN")),1)]),l.createElementVNode("label",E5,[l.createElementVNode("span",C5,l.toDisplayString(i("Süre","Expiry")),1),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[13]||(j[13]=le=>fe.value=le),class:"fx-perm-sel fx-perm-sel--sm"},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(ue,le=>l.createElementVNode("option",{key:le.v,value:le.v},l.toDisplayString(le.l),9,D5)),64))],512),[[l.vModelSelect,fe.value,void 0,{number:!0}]])]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:me.value,onClick:I},l.toDisplayString(i("Bağlantı oluştur","Create link")),9,A5)]),l.createElementVNode("button",{type:"button",class:"fx-perm-btn fx-perm-btn--ghost fx-perm-advtoggle",onClick:j[14]||(j[14]=le=>re.value=!re.value)},l.toDisplayString(re.value?i("Gelişmiş ▲","Advanced ▲"):i("Gelişmiş ▼","Advanced ▼")),1),re.value?(l.openBlock(),l.createElementBlock("div",B5,[l.createElementVNode("label",T5,[l.createElementVNode("span",M5,l.toDisplayString(i("En fazla dosya","Max files")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[15]||(j[15]=le=>ye.value=le),type:"number",min:"1",class:"fx-perm-input fx-perm-input--sm",placeholder:"20"},null,512),[[l.vModelText,ye.value]])]),l.createElementVNode("label",I5,[l.createElementVNode("span",z5,l.toDisplayString(i("Dosya başı MB","MB / file")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[16]||(j[16]=le=>he.value=le),type:"number",min:"1",class:"fx-perm-input fx-perm-input--sm",placeholder:"500"},null,512),[[l.vModelText,he.value]])]),l.createElementVNode("label",F5,[l.createElementVNode("span",N5,l.toDisplayString(i("İzinli türler","Allowed types")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[17]||(j[17]=le=>ke.value=le),type:"text",class:"fx-perm-input fx-perm-input--sm",placeholder:i("hepsi (örn. pdf, jpg)","all (e.g. pdf, jpg)")},null,8,O5),[[l.vModelText,ke.value]])]),l.createElementVNode("label",L5,[l.withDirectives(l.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j[18]||(j[18]=le=>Ee.value=le)},null,512),[[l.vModelCheckbox,Ee.value]]),l.createTextVNode(" "+l.toDisplayString(i("Yükleyenin adını sor","Ask uploader name")),1)])])):l.createCommentVNode("",!0),te.value?(l.openBlock(),l.createElementBlock("div",P5,l.toDisplayString(te.value),1)):l.createCommentVNode("",!0),se.value?(l.openBlock(),l.createElementBlock("div",R5,[l.createElementVNode("div",V5,[l.createElementVNode("a",{href:se.value.url,target:"_blank",rel:"noopener",class:"fx-perm-link"},l.toDisplayString(se.value.url),9,$5),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[19]||(j[19]=le=>Se(se.value.url,"drop"))},l.toDisplayString(W.value==="drop"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)]),se.value.pin?(l.openBlock(),l.createElementBlock("div",U5,[l.createElementVNode("span",null,[j[24]||(j[24]=l.createTextVNode("PIN: ",-1)),l.createElementVNode("code",null,l.toDisplayString(se.value.pin),1)]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[20]||(j[20]=le=>Se(se.value.pin,"droppin"))},l.toDisplayString(W.value==="droppin"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)])):l.createCommentVNode("",!0),l.createElementVNode("div",H5,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[21]||(j[21]=le=>ie.value=le),type:"text",class:"fx-perm-input",autocomplete:"off",placeholder:i("e-posta(lar) — virgülle ayırın","email(s) — comma separated"),onKeyup:l.withKeys(J,["enter"])},null,40,G5),[[l.vModelText,ie.value]]),l.createElementVNode("button",{class:"fx-perm-btn",disabled:_e.value,onClick:J},l.toDisplayString(i("Gönder","Send")),9,j5)]),He.value?(l.openBlock(),l.createElementBlock("div",q5,l.toDisplayString(He.value),1)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])])])}}}),[["__scopeId","data-v-4c90f457"]]),X5={key:0,class:"fe__loading"},Z5={class:"fe__loading-text"},K5={key:0,class:"fe__dragover"},Y5={class:"fe-recents__header"},J5={class:"fe-modal__head"},Q5={class:"fe-modal__title"},e3={class:"fe-modal__body"},t3={key:0,class:"fe-toast"},mc="brf-file-explorer:view-mode",Fo="brf-file-explorer:path",ci="application/x-brf-files",r3=l.defineComponent({__name:"FileExplorer",props:{config:{}},emits:["share-created","file-opened","error","upload-progress","selection-change"],setup(e,{emit:t}){const r=e,n=t,a=tc(r.config),i=rc(r.config,a),o=sc(r.config,a,{onSettled:$=>{if($.status==="error")I($.error_message||"İşlem başarısız");else{const U=$.op_type==="copy"?"Kopyalandı":$.op_type==="move"?"Taşındı":"Silindi";I(`${U} (${$.progress_total})`)}M()}}),s=l.ref(!1),c=(r.config.rootPath||"").trim(),u=c.replace("://","/").replace(/^\/+|\/+$/g,""),f=u||r.config.initialPath||"",h=l.ref(f),d=l.ref(r.config.defaultAdapter||"brf"),p=l.ref(f),w=l.ref([]),m=l.ref(""),_=l.customRef(($,U)=>{let be=(()=>{try{const Te=localStorage.getItem(mc);if(Te==="list"||Te==="grid")return Te}catch{}return r.config.viewMode??"list"})();return{get(){return $(),be},set(Te){if(Te!==be){be=Te;try{localStorage.setItem(mc,Te)}catch{}U()}}}}),y=l.ref(""),g=l.ref(!1),b=l.ref(""),v=l.computed(()=>g.value),E=l.computed(()=>r.config.locale||"tr"),C=l.computed(()=>{const $=(h.value??"").replace(/^\/+|\/+$/g,"");return u&&$===u?!1:$.length>0}),A=l.computed(()=>J.value?!(h.value??"").replace(/^\/+|\/+$/g,""):!1);function k(){if(g.value){M(b.value);return}const $=(h.value??"").replace(/^\/+|\/+$/g,"");if(!$||$===u)return;const U=$.lastIndexOf("/");let be=U===-1?"":$.slice(0,U);u&&!(be===u||be.startsWith(u+"/"))&&(be=u),M(be)}const{t:B}=_r(E),T=nc(()=>w.value);l.watch(()=>[...T.selected.value],()=>{n("selection-change",T.nodes.value.map($=>({path:$.path,basename:$.basename,type:$.type})))});const F=l.ref({mode:null,items:[],sourcePath:null}),V=l.ref(null),L=l.ref(new Set),H=l.ref(!1),X=l.ref(!1),W=l.ref(null),Z=l.ref(0);async function Q(){try{const $=await oi(),U=r.config.apiBase??"",be=await fetch(`${U}/api/files/manager/star/list?limit=500`,{headers:$,credentials:"include"});if(!be.ok)return;const Te=await be.json(),ot=Array.isArray(Te)?Te:Array.isArray(Te==null?void 0:Te.entries)?Te.entries:Array.isArray(Te==null?void 0:Te.nodes)?Te.nodes:[];L.value=new Set(ot.map(Ze=>Ze.id).filter(Ze=>typeof Ze=="number"))}catch{}}function K($,U){if(typeof $.id!="number")return;const be=new Set(L.value);U?be.add($.id):be.delete($.id),L.value=be}async function ue($){if(typeof $.id=="number")try{const U=r.config.apiBase??"";await fetch(`${U}/api/files/manager/recent`,{method:"POST",headers:await oi({"Content-Type":"application/json"}),credentials:"include",body:JSON.stringify({node_id:$.id})}),Z.value+=1}catch{}}function ne($){typeof $.id=="number"&&(W.value=$,X.value=!0)}function fe($){const U={type:"file",path:$.path,basename:$.name,extension:($.name.split(".").pop()||"").toLowerCase(),id:$.id};H.value=!1,Ue(U)}const re=l.computed(()=>{var U,be,Te;if(r.config.onlyOfficeBase)return r.config.onlyOfficeBase;const $=(be=(U=V.value)==null?void 0:U.external)==null?void 0:be.onlyoffice;return $&&!To($)?null:((Te=V.value)==null?void 0:Te.onlyoffice_url)||null}),ye=l.computed(()=>re.value&&a.endpoints.onlyOfficeConfig||null),he=l.computed(()=>{var be,Te,ot;const $=r.config.drawioUrl||r.config.drawioBase;if($)return $;const U=(Te=(be=V.value)==null?void 0:be.external)==null?void 0:Te.drawio;return U&&!To(U)?null:((ot=V.value)==null?void 0:ot.drawio_url)||null}),ke=l.computed(()=>{var $;return r.config.convertBase||(($=V.value)==null?void 0:$.convert_url)||null}),Ee=l.ref([]),me=l.ref(null),te=l.ref(!1),se=l.ref(!1),ie=l.ref(!1),_e=l.ref(!1),He=l.ref(!1),je=l.ref(null),Ve=l.ref(null),ge=l.ref(null),Ce=l.ref(null),ve=l.ref("edit"),Oe=l.ref(!1),tt=l.ref(null),at=l.ref(!1),st=l.ref(null);function It($){return $===void 0||$==="editor"||$==="owner"}function ut($){var U;return $.length===1&&typeof((U=$[0])==null?void 0:U.perm)=="string"?$[0].perm:m.value}const ft=l.computed(()=>It(m.value)),vt=l.ref(null),gt=l.ref(null),pt=l.ref(null),Ct=l.ref(null);let Ae;function I($){Ct.value=$,Ae&&clearTimeout(Ae),Ae=setTimeout(()=>Ct.value=null,2500)}const J=l.computed(()=>r.config.multiStorageRoot===!0);function de($){const U=$.replace(/^\/+|\/+$/g,"");if(!U)return{adapter:"",rel:""};const be=U.indexOf("/");return be===-1?{adapter:U,rel:""}:{adapter:U.slice(0,be),rel:U.slice(be+1)}}function Se($){if($.includes("://"))return $;const{adapter:U,rel:be}=de($);return U?be?`${U}://${be}`:`${U}://`:""}function P($){const U=$.indexOf("://");if(U===-1)return $.replace(/^\/+|\/+$/g,"");const be=$.slice(0,U),Te=$.slice(U+3).replace(/^\/+|\/+$/g,"");return Te?`${be}/${Te}`:be}function j(){return(r.config.storages??[]).map(U=>({type:"dir",path:U.name,basename:U.label||U.name,extension:"",storage:U.name,visibility:"private",file_size:0,mime_type:"inode/storage",extra_metadata:{driver:U.driver,readOnly:U.readOnly}}))}async function M($){s.value=!0,g.value=!1;try{let U=$??h.value??"";if(u){const or=String(U).replace(/^\/+|\/+$/g,"");(!or||!(or===u||or.startsWith(u+"/")))&&(U=u)}if(J.value&&!Se(U)){h.value="",d.value="",p.value="",w.value=j();return}const be=J.value?Se(U):S(U),Te=y.value?await a.search(be,y.value):await a.index(be);d.value=Te.adapter,p.value=Te.dirname,m.value=Te.perm||"",w.value=(Te.files||[]).filter(or=>!(or.path.includes(".thumbs")||or.path.includes(".versions")||or.basename===".versions"||or.basename===".trash"||or.basename===".keepdir"));const ot=pe(Te.dirname),Ze=ot==="fileman"||ot==="",qt=ot.startsWith("fileman/.trash"),cr=r.config.trashVisible!==!1;!qt&&Ze&&cr&&w.value.unshift({type:"dir",path:`${Te.adapter}://fileman/.trash`,basename:".trash",extension:"",storage:Te.adapter,visibility:"private",file_size:0,mime_type:"inode/directory",extra_metadata:{}}),h.value=J.value?P(Te.dirname):pe(Te.dirname)}catch(U){const be=U instanceof Error?U.message:String(U);n("error",{message:be,context:{path:$}}),I(be)}finally{s.value=!1}}function pe($){const U=$.indexOf("://");return U===-1?$:$.slice(U+3)}async function le(){s.value=!0,b.value=d.value||"",g.value=!0,T.clear();try{const{entries:$}=await a.listTrash();w.value=$.map(U=>({type:"file",id:U.id,path:U.storage_name?`${U.storage_name}://${U.path}`:U.path,basename:U.name,extension:U.name.includes(".")&&U.name.split(".").pop()||"",storage:U.storage_name||"",visibility:"private",file_size:U.size,mime_type:U.mime||"",extra_metadata:{deleted_at:U.deleted_at,ttl_days:U.ttl_days??null}})),p.value=".trash",h.value=".trash"}catch($){const U=$ instanceof Error?$.message:String($);n("error",{message:U,context:{op:"trash-list"}}),I(U)}finally{s.value=!1}}function S($){if($&&$.includes("://"))return $;if(J.value){const U=Se($??"");return U||(d.value?`${d.value}://`:"")}return $?`${d.value}://${$.replace(/^\/+/,"")}`:`${d.value}://`}l.watch(()=>y.value,()=>void M());function ae(){return r.config.pathPersist??"hash"}function ce(){if(typeof window>"u")return"";const $=ae();if($==="none")return"";if($==="localStorage")try{return localStorage.getItem(Fo)||""}catch{return""}const U=window.location.hash||"";return U.startsWith("#")?decodeURIComponent(U.slice(1)).replace(/^\/+|\/+$/g,""):""}let N=!1;function Y($){if(typeof window>"u")return;const U=ae();if(U==="none")return;if(U==="localStorage"){try{$?localStorage.setItem(Fo,$):localStorage.removeItem(Fo)}catch{}return}const be=$?`#${$}`:"";window.location.hash!==be&&(N=!0,history.replaceState(null,"",be||window.location.pathname+window.location.search))}function oe(){if(ae()!=="hash")return;if(N){N=!1;return}const $=ce();$&&$!==h.value&&M($)}l.watch(h,$=>Y($)),l.onMounted(async()=>{var U;li();const $=ce();await M($||void 0),await l.nextTick(),(U=gt.value)==null||U.focus(),Q(),ae()==="hash"&&window.addEventListener("hashchange",oe),a.endpoints.opsList&&o.startPolling(),a.endpoints.capabilities&&a.capabilities().then(be=>{V.value=be}).catch(()=>{})}),ac(gt,{onDelete:()=>{T.isEmpty.value||(ie.value=!0)},onRename:()=>{T.nodes.value.length===1&&(je.value=T.nodes.value[0],se.value=!0)},onSelectAll:()=>T.selectAll(),onOpen:()=>{const $=T.nodes.value[0];$&&Ue($)},onClose:()=>{var $;te.value=!1,se.value=!1,ie.value=!1,_e.value=!1,He.value=!1,($=vt.value)==null||$.hide()},onFocusSearch:()=>{var $;return($=pt.value)==null?void 0:$.focusSearch()},onCut:()=>z9(),onCopy:()=>F9(),onPaste:()=>Vp(),onGoUp:()=>k(),hasSelection:()=>!T.isEmpty.value});const Qe=new Set(["docx","xlsx","pptx","doc","xls","ppt","odt","ods","odp"]);function Ue($){if($.basename===".trash"){le();return}if($.type==="dir"){const be=J.value?P($.path):pe($.path);M(be);return}const U=($.extension||"").toLowerCase();ve.value=It($.perm??m.value)?bt(U):"view",Ce.value=$,He.value=!0,n("file-opened",{path:$.path,basename:$.basename}),ue($)}const Xe=new Set([...Qe,"drawio","dio","pdf","epub","ipynb","tiff","tif","psd","mmd","mermaid","glb","gltf","obj","stl","fbx","3ds","zip","rar","7z","tar","gz","tgz","jpg","jpeg","png","webp","gif","bmp","avif","svg","heic","mp4","webm","mov","mkv","m4v","ogv","mp3","wav","ogg","flac","m4a","aac","opus"]);function bt($){return Xe.has($)?"view":"edit"}async function an($){const U=$??T.nodes.value;if(U.length!==0)try{if(g.value){const ot=U.map(qt=>qt.id).filter(qt=>typeof qt=="number"),{restored:Ze}=await a.restoreIds(ot);I(`${Ze} öğe geri getirildi`),T.clear(),await le();return}if(!a.endpoints.restore)return;const be=U.map(ot=>ot.path),{restored:Te}=await a.restore(be);I(`${Te} öğe geri getirildi`),T.clear(),await M()}catch(be){n("error",{message:be.message,context:{op:"restore"}})}}function Ot($){ve.value="view",Ce.value=$,He.value=!0,ue($)}function St($){if($.type==="dir"){const Ze=J.value?P($.path):pe($.path);M(Ze);return}if(!It($.perm??m.value)){Ot($);return}const U=($.extension||"").toLowerCase(),be=r.config.openPageBase;if(!be){Ue($);return}const Te=be.includes("?")?"&":"?",ot=`${be}${Te}path=${encodeURIComponent($.path)}&type=${encodeURIComponent(U)}&mode=edit`;window.open(ot,"_blank","noopener"),n("file-opened",{path:$.path,basename:$.basename}),ue($)}const Lt=l.ref("selection"),Jt=l.ref(""),hr=l.ref(""),ai=l.computed(()=>{const $=T.nodes.value;return $.length===0?"none":$.length===1?$[0].type==="dir"?"single-dir":"single-file":"multi"});async function ii($){const U=T.nodes.value;if($==="open"){U[0]&&Ue(U[0]);return}await Rp($,U)}async function Ht($,U){var be;Lt.value="selection",T.has($.path)||(T.click($.path),await l.nextTick()),(be=vt.value)==null||be.show({clientX:U.clientX,clientY:U.clientY},T.nodes.value)}function Er($){var U;$.preventDefault(),Lt.value="selection",T.clear(),(U=vt.value)==null||U.show({clientX:$.clientX,clientY:$.clientY},[])}function tr($){var U;Lt.value="breadcrumb",Jt.value=$.adapterPath,hr.value=$.label,(U=vt.value)==null||U.show({clientX:$.x,clientY:$.y},[])}const on=l.computed(()=>{if(Lt.value==="breadcrumb")return[{key:"open",label:B("ctx.open"),icon:"↗"},{key:"copy-path",label:B("breadcrumb.copy_path"),icon:"📋"}];const $=T.nodes.value,U=$.length>0,be=$.length===1;if(v.value)return U?[{key:"restore",label:B("ctx.restore"),icon:"↩"},{divider:!0,key:"sep1",label:""},{key:"delete",label:B("ctx.delete_perm"),icon:"🗑",danger:!0}]:[];const Te=(h.value??"").replace(/^\/+|\/+$/g,"");return J.value&&Te===""?U?be?[{key:"open",label:B("ctx.open"),icon:"↗"}]:[]:[]:U?Rr($):It(m.value)?[{key:"new-folder",label:B("toolbar.new_folder"),icon:"📁"},{key:"paste",label:B("ctx.paste"),icon:"📋",disabled:!F.value.mode}]:[]});function Rr($){var Xp,Zp;const U=$.length>0,be=$.length===1,Te=be&&((Xp=$[0])==null?void 0:Xp.type)==="file",ot=E.value==="en"?"Tags…":"Etiketler…",Ze=be&&typeof((Zp=$[0])==null?void 0:Zp.id)=="number",qt=E.value==="en"?"Copy node id":"Node id'yi kopyala",cr=ut($),or=It(cr),nw=E.value==="en"?"Share / Permissions":"Paylaş / İzinler";return[{key:"open",label:B("ctx.open"),icon:"↗",hidden:!be},{key:"preview",label:B("ctx.preview"),icon:"👁",hidden:!be,disabled:!Te},{key:"download",label:B("ctx.download"),icon:"⬇",hidden:!be,disabled:!Te},{key:"convert",label:B("ctx.convert"),icon:"🔄",hidden:!be||!ke.value||!or,disabled:!Te},{key:"access",label:nw,icon:"🔗",hidden:!be||!or},{key:"copy-id",label:qt,icon:"🆔",hidden:!Ze,disabled:!Ze},{divider:!0,key:"sep1",label:"",hidden:!or},{key:"rename",label:B("ctx.rename"),icon:"✎",hidden:!be||!or,disabled:!be},{key:"cut",label:B("ctx.cut"),icon:"✂",hidden:!U||!or,disabled:!U},{key:"copy",label:B("ctx.copy"),icon:"❐",hidden:!U,disabled:!U},{key:"paste",label:B("ctx.paste"),icon:"📋",hidden:!or,disabled:!F.value.mode},{divider:!0,key:"sep-meta",label:"",hidden:!Ze},{key:"tags",label:ot,icon:"🏷",hidden:!Ze,disabled:!Ze},{divider:!0,key:"sep2",label:"",hidden:!or},{key:"delete",label:B("ctx.delete"),icon:"🗑",danger:!0,hidden:!U||!or,disabled:!U}]}const Bo=l.computed(()=>{const $=T.nodes.value;if(v.value)return $.length===0?[]:[{key:"restore",label:B("ctx.restore"),icon:"↩"},{key:"delete",label:B("ctx.delete_perm"),icon:"🗑",danger:!0}];const U=(h.value??"").replace(/^\/+|\/+$/g,"");return J.value&&U===""?$.length===1?[{key:"open",label:B("ctx.open"),icon:"↗"}]:[]:$.length===0?[]:Rr($)});async function I9($,U){if(Lt.value==="breadcrumb"){$.key==="open"?M(pe(Jt.value)):$.key==="copy-path"&&await Wp(Jt.value);return}await Rp($.key,U)}async function Rp($,U){var be;switch($){case"open":U[0]&&St(U[0]);break;case"preview":U[0]&&Ot(U[0]);break;case"download":U[0]&&O9(U[0]);break;case"convert":U[0]&&$9(U[0]);break;case"share":U[0]&&V9(U[0]);break;case"access":U[0]&&(st.value=U[0],at.value=!0);break;case"copy-id":if(U[0]&&typeof U[0].id=="number"){const Te=U[0].id;(be=navigator.clipboard)==null||be.writeText(String(Te)).then(()=>I(E.value==="en"?`Node id ${Te} copied`:`Node id ${Te} kopyalandı`),()=>I(`#${Te}`))}break;case"tags":U[0]&&ne(U[0]);break;case"rename":U[0]&&(je.value=U[0],se.value=!0);break;case"cut":F.value={mode:"cut",items:U,sourcePath:h.value},I("Kes → Yapıştır hazır");break;case"copy":F.value={mode:"copy",items:U,sourcePath:h.value},I("Kopyala → Yapıştır hazır");break;case"paste":await Vp();break;case"delete":ie.value=!0;break;case"restore":U.length>0&&await an(U);break;case"new-folder":te.value=!0;break;case"duplicate":U[0]&&await N9(U[0]);break}}function z9(){T.isEmpty.value||(F.value={mode:"cut",items:T.nodes.value,sourcePath:h.value},I("Kesildi"))}function F9(){T.isEmpty.value||(F.value={mode:"copy",items:T.nodes.value,sourcePath:h.value},I("Kopyalandı"))}async function Vp(){const $=F.value;if(!(!$.mode||$.items.length===0))try{const U=$.items.map(ot=>ot.path),be=$.sourcePath||"";if($.mode==="cut"&&be===h.value){I("Aynı klasöre kesilemez");return}if($.mode==="cut"){const{op:ot}=await a.moveAsync(U,S(h.value),S(be)||void 0);o.register(ot),I("Taşıma kuyruğa alındı")}else{const{op:ot}=await a.copy(U,S(h.value));o.register(ot),I("Kopyalama kuyruğa alındı")}F.value={mode:null,items:[],sourcePath:null}}catch(U){n("error",{message:U.message,context:{op:"paste"}})}}async function N9($){try{const{op:U}=await a.copy([$.path],S(h.value));o.register(U)}catch(U){n("error",{message:U.message,context:{op:"duplicate"}})}}function O9($){const U=a.downloadUrl($.path);window.open(U,"_blank")}async function L9($){try{await a.newFolder(S(h.value),$),te.value=!1,await M()}catch(U){n("error",{message:U.message,context:{op:"newfolder"}})}}async function P9($){const U=je.value;if(U)try{await a.rename(S(h.value),U.path,$),se.value=!1,je.value=null,await M()}catch(be){n("error",{message:be.message,context:{op:"rename"}})}}async function R9(){if(g.value){ie.value=!1,I("Çöpteki öğeler saklama süresi sonunda otomatik silinir. Kalıcı silme yönetici panelinden yapılır.");return}const $=T.nodes.value.map(U=>U.path);if($.length===0){ie.value=!1;return}try{if(a.endpoints.deleteAsync){const{op:U}=await a.deleteAsync($,S(h.value));o.register(U),I("Silme kuyruğa alındı")}else await a.deleteItems(S(h.value),$),await M();ie.value=!1,T.clear()}catch(U){n("error",{message:U.message,context:{op:"delete"}})}}function V9($){Ve.value=$,ge.value=null,_e.value=!0}function $9($){tt.value=$,Oe.value=!0}function U9($){I(E.value==="en"?`Converted → ${$}`:`Dönüştürüldü → ${$}`),M()}async function H9($){const U=Ve.value;if(U)try{const{share:be}=await a.createShare({path:U.path,password:$.password,expires_at:$.expires_at,max_downloads:$.max_downloads});ge.value=be,n("share-created",{path:U.path,url:be.url,pin:be.password_pin??null})}catch(be){n("error",{message:be.message,context:{op:"share"}})}}function G9(){_e.value=!1,Ve.value=null,ge.value=null}function j9(){var $;if(!ft.value){I(E.value==="en"?"Read-only here":"Burada yazma yetkiniz yok");return}($=me.value)==null||$.click()}function q9($){const U=$.target,be=U.files?Array.from(U.files):[];U.value="",$p(be)}async function $p($){if($.length===0)return;const U=!!(a.endpoints.uploadInit&&a.endpoints.uploadFinalize);for(const be of $)U&&be.size>=10*1024*1024&&await X9(be)||await W9(be);await M()}async function W9($){const U=crypto.randomUUID(),be=S(h.value);Ee.value=[...Ee.value,{id:U,file:$,path:be,totalBytes:$.size,uploadedBytes:0,percent:0,status:"uploading",cancel(){}}];const Te=ot=>{const Ze=Ee.value.findIndex(cr=>cr.id===U);if(Ze===-1)return;const qt=[...Ee.value];qt[Ze]={...qt[Ze],...ot},Ee.value=qt};try{await a.uploadMultipart(be,[$],ot=>{Te({percent:ot,uploadedBytes:Math.round(ot/100*$.size)}),n("upload-progress",{uploadId:U,percent:ot,done:ot>=100})}),Te({percent:100,uploadedBytes:$.size,status:"done"}),n("upload-progress",{uploadId:U,percent:100,done:!0})}catch(ot){Te({status:"error"}),n("error",{message:ot.message,context:{op:"upload",file:$.name}})}}async function X9($){const U=crypto.randomUUID();let be=!1;try{return await i.uploadFile({path:S(h.value),file:$,onProgress:Te=>{if(be){const ot=Ee.value.findIndex(Ze=>Ze.id===U);if(ot!==-1){const Ze=[...Ee.value];Ze[ot]={...Te,id:U},Ee.value=Ze}}else{if(Te.status!=="uploading"&&Te.uploadedBytes<=0)return;Ee.value=[...Ee.value,{...Te,id:U}],be=!0}n("upload-progress",{uploadId:Te.uploadId??U,percent:Te.percent,done:Te.status==="done"})}}),!0}catch{return be&&(Ee.value=Ee.value.filter(Te=>Te.id!==U)),!1}}const ya=l.ref(0),ba=l.ref(!1);function Ys($){const U=$.dataTransfer;if(!U||U.types&&U.types.includes(ci))return!1;if(U.items&&U.items.length>0){let be=!1;for(const Te of Array.from(U.items))if(Te.kind==="file"){be=!0;break}return be}return U.types?U.types.includes("Files"):!1}function Z9($){Ys($)&&($.preventDefault(),ya.value++,ba.value=!0)}function K9(){ya.value=Math.max(0,ya.value-1),ya.value===0&&(ba.value=!1)}function Y9($){Ys($)&&$.preventDefault()}function J9($){var be,Te;if((be=$.dataTransfer)!=null&&be.types.includes(ci)){ya.value=0,ba.value=!1;return}if(!Ys($)){ya.value=0,ba.value=!1;return}if($.preventDefault(),ya.value=0,ba.value=!1,!ft.value){I(E.value==="en"?"Read-only here":"Burada yazma yetkiniz yok");return}const U=(Te=$.dataTransfer)!=null&&Te.files?Array.from($.dataTransfer.files):[];U.length!==0&&$p(U)}function Up($){var U;(U=$.dataTransfer)!=null&&U.types.includes("Files")&&$.preventDefault()}function Hp($){const U=gt.value,be=$.target;U&&be&&!U.contains(be)&&$.preventDefault()}l.onMounted(()=>{window.addEventListener("dragover",Up),window.addEventListener("drop",Hp)}),l.onBeforeUnmount(()=>{window.removeEventListener("dragover",Up),window.removeEventListener("drop",Hp),window.removeEventListener("hashchange",oe)});const Js=l.computed(()=>F.value.mode!=="cut"?new Set:new Set(F.value.items.map($=>$.path)));function Gp($,U){if(!U.dataTransfer)return;if($.basename===".trash"){U.preventDefault();return}T.has($.path)||T.click($.path);const be=T.nodes.value.filter(Te=>!Js.value.has(Te.path)).filter(Te=>Te.basename!==".trash").map(Te=>({path:Te.path,basename:Te.basename,type:Te.type}));U.dataTransfer.setData(ci,JSON.stringify(be)),U.dataTransfer.setData("text/plain",be.map(Te=>Te.path).join(`
|
|
2
|
-
`)),U.dataTransfer.effectAllowed="move"}async function jp($,U,be){try{if(a.endpoints.moveAsync){const{op:Te}=await a.moveAsync($,U,S(h.value));o.register(Te),I("Taşıma kuyruğa alındı")}else await a.move(S(h.value),$,U),await M();T.clear()}catch(Te){n("error",{message:Te.message,context:{op:be,targetDir:U}})}}async function qp($,U){var qt;if($.type!=="dir")return;const be=(qt=U.dataTransfer)==null?void 0:qt.getData(ci);if(!be)return;let Te=[];try{Te=JSON.parse(be)}catch{return}if(Te.length===0)return;const ot=$.path,Ze=Te.map(cr=>cr.path).filter(cr=>cr&&cr!==ot&&!ot.startsWith(cr+"/"));if(Ze.length===0){I("Aynı klasöre taşınamaz");return}await jp(Ze,ot,"move-dnd")}async function Q9($,U){var qt;const be=(qt=U.dataTransfer)==null?void 0:qt.getData(ci);if(!be)return;let Te=[];try{Te=JSON.parse(be)}catch{return}if(Te.length===0)return;const ot=$,Ze=Te.map(cr=>cr.path).filter(cr=>cr&&cr!==ot&&!ot.startsWith(cr+"/"));Ze.length!==0&&await jp(Ze,ot,"move-dnd-crumb")}function ew($){$.cancel()}function tw($){Ee.value=Ee.value.filter(U=>U.id!==$.id)}function rw($){if(J.value&&!$){M("");return}if(J.value){M(P($));return}M(pe($))}async function Wp($){try{await navigator.clipboard.writeText($),I(B("breadcrumb.copy_path"))}catch{}}function oi($={}){return a.authHeadersSync({...$})}return($,U)=>{var be,Te,ot;return l.openBlock(),l.createElementBlock("div",{ref_key:"rootEl",ref:gt,class:l.normalizeClass(["fe",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark","fe--is-dragover":ba.value}]),tabindex:"-1",onDragenter:Z9,onDragover:Y9,onDragleave:K9,onDrop:J9,onContextmenu:Er},[l.createVNode(bm,{ref_key:"toolbarRef",ref:pt,"view-mode":_.value,"search-query":y.value,"trash-active":v.value,actions:Bo.value,"selection-mode":ai.value,"paste-enabled":!!F.value.mode,"convert-enabled":!!ke.value,"can-go-up":C.value,"at-virtual-root":A.value,"can-write":ft.value,locale:E.value,"onUpdate:viewMode":U[0]||(U[0]=Ze=>_.value=Ze),"onUpdate:searchQuery":U[1]||(U[1]=Ze=>y.value=Ze),onNewFolder:U[2]||(U[2]=Ze=>te.value=!0),onUpload:j9,onRefresh:U[3]||(U[3]=()=>M()),onGoUp:k,onAction:ii,onOpenRecents:U[4]||(U[4]=Ze=>H.value=!0)},null,8,["view-mode","search-query","trash-active","actions","selection-mode","paste-enabled","convert-enabled","can-go-up","at-virtual-root","can-write","locale"]),l.createVNode(Nm,{dirname:p.value,adapter:d.value,"root-label":d.value,locale:E.value,"multi-storage-root":J.value,"root-path":l.unref(c),onNavigate:rw,onCopyPath:Wp,onCrumbContext:tr,onCrumbDrop:Q9},null,8,["dirname","adapter","root-label","locale","multi-storage-root","root-path"]),l.createElementVNode("div",{class:"fe__body",onClick:U[7]||(U[7]=l.withModifiers(Ze=>l.unref(T).clear(),["self"]))},[s.value&&w.value.length===0?(l.openBlock(),l.createElementBlock("div",X5,[U[23]||(U[23]=l.createElementVNode("span",{class:"fe__spinner","aria-hidden":"true"},null,-1)),l.createElementVNode("p",Z5,l.toDisplayString(l.unref(B)("loading")),1)])):_.value==="list"?(l.openBlock(),l.createBlock(e2,{key:1,files:w.value,selected:l.unref(T).selected.value,clipped:Js.value,"show-parent-path":!!y.value,locale:E.value,loading:s.value,"starred-ids":L.value,"api-base":r.config.apiBase??"","auth-headers":()=>oi(),onClickRow:U[5]||(U[5]=(Ze,qt)=>l.unref(T).click(Ze.path,qt)),onDblRow:Ue,onContextRow:Ht,onItemDragStart:Gp,onItemDropInto:qp,onStarChange:K},null,8,["files","selected","clipped","show-parent-path","locale","loading","starred-ids","api-base","auth-headers"])):(l.openBlock(),l.createBlock(c2,{key:2,files:w.value,selected:l.unref(T).selected.value,clipped:Js.value,"show-parent-path":!!y.value,locale:E.value,loading:s.value,onClickCard:U[6]||(U[6]=(Ze,qt)=>l.unref(T).click(Ze.path,qt)),onDblCard:Ue,onContextCard:Ht,onItemDragStart:Gp,onItemDropInto:qp},null,8,["files","selected","clipped","show-parent-path","locale","loading"]))]),ba.value?(l.openBlock(),l.createElementBlock("div",K5,[...U[24]||(U[24]=[l.createElementVNode("div",{class:"fe__dragover-card"},[l.createElementVNode("span",{class:"fe-icon"},"⬆"),l.createElementVNode("p",null,"Dosyaları buraya bırak")],-1)])])):l.createCommentVNode("",!0),l.createVNode(E2,{jobs:Ee.value,locale:E.value,onCancel:ew,onDismiss:tw},null,8,["jobs","locale"]),l.createVNode(M2,{ops:l.unref(o).ops.value,locale:E.value,onDismiss:U[8]||(U[8]=Ze=>l.unref(o).dismiss(Ze))},null,8,["ops","locale"]),l.createVNode(m2,{ref_key:"ctxRef",ref:vt,locale:E.value,theme:e.config.theme||"auto",actions:on.value,onSelect:I9},null,8,["locale","theme","actions"]),l.createVNode(P2,{open:te.value,locale:E.value,onClose:U[9]||(U[9]=Ze=>te.value=!1),onSubmit:L9},null,8,["open","locale"]),l.createVNode(V2,{open:se.value,locale:E.value,"current-name":((be=je.value)==null?void 0:be.basename)||"",onClose:U[10]||(U[10]=Ze=>se.value=!1),onSubmit:P9},null,8,["open","locale","current-name"]),l.createVNode($2,{open:ie.value,locale:E.value,count:l.unref(T).size.value,onClose:U[11]||(U[11]=Ze=>ie.value=!1),onConfirm:R9},null,8,["open","locale","count"]),l.createVNode(t4,{open:_e.value,locale:E.value,share:ge.value,onClose:G9,onSubmit:H9,onToast:I},null,8,["open","locale","share"]),l.createVNode(pc,{open:He.value,locale:E.value,file:Ce.value,theme:e.config.theme||"auto","preview-url":Ze=>l.unref(a).previewUrl(Ze),"download-url":Ze=>l.unref(a).downloadUrl(Ze),"only-office-base":re.value,"only-office-config-endpoint":ye.value,"save-text-endpoint":l.unref(a).endpoints.saveText||null,"open-mode":ve.value,"auth-headers":()=>oi({"Content-Type":"application/json"}),"auth-credentials":l.unref(a).credentialsMode(),"drawio-url":he.value,"pdf-worker-url":r.config.pdfWorkerUrl||null,"pdf-save-url":r.config.pdfSaveUrl||null,"viewer-base-url":r.config.viewerBaseUrl||null,onClose:U[12]||(U[12]=Ze=>He.value=!1)},null,8,["open","locale","file","theme","preview-url","download-url","only-office-base","only-office-config-endpoint","save-text-endpoint","open-mode","auth-headers","auth-credentials","drawio-url","pdf-worker-url","pdf-save-url","viewer-base-url"]),Oe.value&&tt.value&&ke.value?(l.openBlock(),l.createBlock(ov,{key:1,"convert-url":ke.value,"file-name":((Te=tt.value)==null?void 0:Te.basename)||((ot=tt.value)==null?void 0:ot.path)||"","fetch-bytes":()=>{var Ze;return l.unref(a).fetchArrayBuffer(((Ze=tt.value)==null?void 0:Ze.path)??"")},upload:Ze=>l.unref(a).uploadMultipart(S(h.value),[Ze]).then(()=>{}),onClose:U[13]||(U[13]=Ze=>Oe.value=!1),onDone:U9},null,8,["convert-url","file-name","fetch-bytes","upload"])):l.createCommentVNode("",!0),at.value&&st.value?(l.openBlock(),l.createBlock(W5,{key:2,api:l.unref(a),path:st.value.path,"is-dir":st.value.type==="dir",size:typeof st.value.size=="number"?st.value.size:void 0,locale:E.value==="en"?"en":"tr",onClose:U[14]||(U[14]=Ze=>at.value=!1)},null,8,["api","path","is-dir","size","locale"])):l.createCommentVNode("",!0),l.createVNode(l.Transition,{name:"fe-modal"},{default:l.withCtx(()=>[H.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["fe fe-modal__backdrop fe-recents__backdrop",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark"}]),onClick:U[18]||(U[18]=Ze=>H.value=!1)},[l.createElementVNode("div",{class:"fe-recents__panel",onClick:U[17]||(U[17]=l.withModifiers(()=>{},["stop"]))},[l.createElementVNode("div",Y5,[l.createElementVNode("strong",null,l.toDisplayString(E.value==="en"?"Recently opened":"Son açılanlar"),1),l.createElementVNode("button",{class:"fe-recents__close","aria-label":"Close",onClick:U[15]||(U[15]=Ze=>H.value=!1)},"×")]),l.createVNode(fc,{"api-base":r.config.apiBase??"","auth-headers":()=>oi(),limit:20,"refresh-key":Z.value,onOpen:fe,onError:U[16]||(U[16]=Ze=>n("error",{message:Ze,context:{op:"recents"}}))},null,8,["api-base","auth-headers","refresh-key"])])],2)):l.createCommentVNode("",!0)]),_:1}),l.createVNode(l.Transition,{name:"fe-modal"},{default:l.withCtx(()=>[X.value&&W.value&&typeof W.value.id=="number"?(l.openBlock(),l.createElementBlock("div",{key:0,class:"fe-modal__backdrop",onClick:U[22]||(U[22]=Ze=>X.value=!1)},[l.createElementVNode("div",{class:"fe-modal__card fe-modal__card--md",onClick:U[21]||(U[21]=l.withModifiers(()=>{},["stop"]))},[l.createElementVNode("header",J5,[l.createElementVNode("h2",Q5,l.toDisplayString(E.value==="en"?"Tags":"Etiketler")+" — "+l.toDisplayString(W.value.basename),1),l.createElementVNode("button",{class:"fe-modal__close","aria-label":"Close",onClick:U[19]||(U[19]=Ze=>X.value=!1)},"×")]),l.createElementVNode("div",e3,[l.createVNode(uc,{"node-id":W.value.id,"api-base":r.config.apiBase??"","auth-headers":()=>oi(),onError:U[20]||(U[20]=Ze=>n("error",{message:Ze,context:{op:"tags"}}))},null,8,["node-id","api-base","auth-headers"])])])])):l.createCommentVNode("",!0)]),_:1}),l.createElementVNode("input",{ref_key:"fileInputEl",ref:me,type:"file",multiple:"",class:"fe__file-input",onChange:q9},null,544),l.createVNode(l.Transition,{name:"fe-toast"},{default:l.withCtx(()=>[Ct.value?(l.openBlock(),l.createElementBlock("div",t3,l.toDisplayString(Ct.value),1)):l.createCommentVNode("",!0)]),_:1})],34)}}}),n3={class:"filex-viewer-3d"},a3={key:1,class:"filex-viewer-fallback"},i3={key:2,class:"filex-viewer-fallback"},wa=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"Viewer3D",props:{url:{},mime:{},ext:{},t:{type:Function}},setup(e){const t=e,r=new Set(["glb","gltf","usdz"]),n=l.computed(()=>r.has((t.ext||"").toLowerCase())),a=l.ref(null),i=l.ref(!1);async function o(){if(i.value=!1,a.value=null,!n.value){a.value=t.t?t.t("viewer.format_unsupported_3d"):`3D format ".${t.ext}" not supported in browser preview — please download.`;return}try{await import("@google/model-viewer"),i.value=!0}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"3D viewer requires `@google/model-viewer` — install or use download."}}return l.onMounted(o),l.watch(()=>t.url,()=>{o()}),(s,c)=>{const u=l.resolveComponent("model-viewer");return l.openBlock(),l.createElementBlock("div",n3,[i.value&&!a.value?(l.openBlock(),l.createBlock(u,{key:0,src:e.url,"auto-rotate":"","camera-controls":"","touch-action":"pan-y","shadow-intensity":"1",alt:e.ext+" model",style:{width:"100%",height:"100%","min-height":"480px",display:"block"}},null,8,["src","alt"])):a.value?(l.openBlock(),l.createElementBlock("div",a3,[c[0]||(c[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📦",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):(l.openBlock(),l.createElementBlock("div",i3,[c[1]||(c[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(e.t?e.t("viewer.loading"):"Loading…"),1)]))])}}}),[["__scopeId","data-v-78bcf18b"]])},Symbol.toStringTag,{value:"Module"})),o3={key:0,class:"filex-viewer-fallback"},l3={key:0,class:"filex-viewer-epub__nav"},s3=["disabled"],c3=["disabled"],u3={key:1,class:"filex-viewer-epub__loading"},f3=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"EpubViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref(null),i=l.ref([]);l.ref(!1);const o=l.ref(100),s=l.ref(!1),c=l.ref(!0);let u=null,f=null;async function h(){c.value=!0,s.value=!1,a.value=null;let _=null;try{_=await import("epubjs")}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"EPUB viewer requires `epubjs` — install or use download.",c.value=!1;return}try{const y=_.default??_;let g=t.url;if(t.authHeaders){const v=t.authHeaders(),E=await fetch(t.url,{headers:v,credentials:t.authCredentials||"same-origin"});if(!E.ok)throw new Error(`${E.status} ${E.statusText}`);g=await E.arrayBuffer()}if(u=y(g),!n.value)throw new Error("EPUB mount target missing");f=u.renderTo(n.value,{width:"100%",height:"100%",flow:"paginated",manager:"default"}),await f.display(),f.themes.fontSize(o.value+"%");const b=await u.loaded.navigation;i.value=(b==null?void 0:b.toc)??[],s.value=!0}catch(y){a.value=y instanceof Error?y.message:"EPUB load failed"}finally{c.value=!1}}function d(){var _;(_=f==null?void 0:f.next)==null||_.call(f)}function p(){var _;(_=f==null?void 0:f.prev)==null||_.call(f)}function w(_){_.key==="ArrowRight"||_.key==="PageDown"?d():(_.key==="ArrowLeft"||_.key==="PageUp")&&p()}l.onMounted(()=>{h(),window.addEventListener("keydown",w)}),l.onBeforeUnmount(()=>{var _,y;window.removeEventListener("keydown",w);try{(_=f==null?void 0:f.destroy)==null||_.call(f)}catch{}try{(y=u==null?void 0:u.destroy)==null||y.call(u)}catch{}f=null,u=null}),l.watch(()=>t.url,()=>{if(f)try{f.destroy()}catch{}if(u)try{u.destroy()}catch{}u=null,f=null,h()});function m(_,y){return t.t?t.t(_):y}return(_,y)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"root",ref:r,class:"filex-viewer-epub"},[a.value?(l.openBlock(),l.createElementBlock("div",o3,[y[0]||(y[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📖",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",{ref_key:"containerRef",ref:n,class:"filex-viewer-epub__rendition"},null,512),s.value?(l.openBlock(),l.createElementBlock("div",l3,[l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",onClick:p,disabled:!s.value},"‹",8,s3),l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",onClick:d,disabled:!s.value},"›",8,c3)])):l.createCommentVNode("",!0),c.value?(l.openBlock(),l.createElementBlock("div",u3,l.toDisplayString(m("viewer.loading","Loading…")),1)):l.createCommentVNode("",!0)],64))],512))}}),[["__scopeId","data-v-f9b72a2c"]])},Symbol.toStringTag,{value:"Module"}));async function vc(e){const t=await fetch(e.url,{headers:e.headers??{},credentials:e.credentials??"same-origin",signal:e.signal});if(!t.ok){const r=await t.text().catch(()=>"");throw new Error(`${t.status} ${t.statusText}${r?" — "+r.slice(0,200):""}`)}return t}async function gc(e){return(await vc(e)).arrayBuffer()}async function t0(e){return(await vc(e)).text()}const d3={class:"filex-viewer-mermaid"},h3={key:0,class:"filex-viewer-fallback"},p3={key:1,class:"filex-viewer-fallback"},yc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"MermaidViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref(!0),i=l.ref(1),o=l.ref(0),s=l.ref(0);let c=!1,u=null,f=0,h=null;async function d(){var b,v;if(h)return h;try{const E=await import("mermaid");return h=E.default??E,(v=h.initialize)==null||v.call(h,{startOnLoad:!1,securityLevel:"strict",theme:(b=window.matchMedia)!=null&&b.call(window,"(prefers-color-scheme: dark)").matches?"dark":"default"}),h}catch{return null}}async function p(){var C;a.value=!0,n.value=null;const b=++f,v=await d();if(b!==f)return;if(!v){n.value=t.t?t.t("viewer.peer_not_installed"):"Mermaid viewer requires `mermaid` — install or use download.",a.value=!1;return}let E;try{E=await t0({url:t.url,headers:((C=t.authHeaders)==null?void 0:C.call(t))??{},credentials:t.authCredentials})}catch(A){n.value=A instanceof Error?A.message:"fetch failed",a.value=!1;return}if(b===f)try{const A=`filex-mermaid-${Date.now()}`,{svg:k}=await v.render(A,E);if(b!==f)return;if(r.value){r.value.innerHTML=k;const B=r.value.querySelector("svg");B&&(B.style.maxWidth="100%",B.style.height="auto")}}catch(A){n.value=A instanceof Error?A.message:"render failed"}finally{a.value=!1}}function w(b){if(!b.ctrlKey&&!b.metaKey)return;b.preventDefault();const E=-b.deltaY>0?1.1:1/1.1;i.value=Math.max(.2,Math.min(8,i.value*E))}function m(b){var v,E;c=!0,u={x:b.clientX,y:b.clientY,tx:o.value,ty:s.value},(E=(v=b.target).setPointerCapture)==null||E.call(v,b.pointerId)}function _(b){!c||!u||(o.value=u.tx+(b.clientX-u.x),s.value=u.ty+(b.clientY-u.y))}function y(){c=!1,u=null}l.onMounted(p),l.onBeforeUnmount(()=>{f++});function g(b,v){return t.t?t.t(b):v}return(b,v)=>(l.openBlock(),l.createElementBlock("div",d3,[l.createElementVNode("div",{class:"filex-viewer-mermaid__pane",onWheel:w,onPointerdown:m,onPointermove:_,onPointerup:y,onPointercancel:y},[n.value?(l.openBlock(),l.createElementBlock("div",h3,[v[0]||(v[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):a.value?(l.openBlock(),l.createElementBlock("div",p3,[v[1]||(v[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(g("viewer.loading","Loading…")),1)])):l.createCommentVNode("",!0),l.withDirectives(l.createElementVNode("div",{ref_key:"surface",ref:r,class:"filex-viewer-mermaid__surface",style:l.normalizeStyle({transform:`translate(${o.value}px, ${s.value}px) scale(${i.value})`})},null,4),[[l.vShow,!a.value&&!n.value]])],32)]))}}),[["__scopeId","data-v-fe0bf99e"]])},Symbol.toStringTag,{value:"Module"})),m3={class:"filex-viewer-drawio"},v3={key:0,class:"filex-viewer-fallback"},g3=["src"],bc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"DrawioViewer",props:{url:{},filePath:{},ext:{},drawioUrl:{},saveUrl:{},readOnly:{type:Boolean},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref("loading"),i=l.ref(!!t.readOnly||!t.saveUrl),o=l.computed(()=>t.drawioUrl?t.drawioUrl.replace(/\/$/,""):null),s=l.computed(()=>{if(!o.value)return"";const m=new URLSearchParams({embed:"1",proto:"json",spin:"1",saveAndExit:"0",noSaveBtn:i.value?"1":"0",noExitBtn:"1",ui:"kennedy",modified:"unsavedChanges"});return`${o.value}/?${m.toString()}`});let c="";async function u(){var m;a.value="loading",n.value=null;try{c=await t0({url:t.url,headers:((m=t.authHeaders)==null?void 0:m.call(t))??{},credentials:t.authCredentials})}catch(_){n.value=_ instanceof Error?_.message:"fetch failed",a.value="error"}}function f(m){var _,y;(y=(_=r.value)==null?void 0:_.contentWindow)==null||y.postMessage(JSON.stringify(m),"*")}async function h(m){var _;if(t.saveUrl){a.value="saving";try{const y={"Content-Type":"application/json",...((_=t.authHeaders)==null?void 0:_.call(t))??{}},g=await fetch(t.saveUrl,{method:"POST",headers:y,credentials:t.authCredentials||"same-origin",body:JSON.stringify({path:t.filePath,content:m})});if(!g.ok)throw new Error(`${g.status} ${g.statusText}`);a.value="saved",setTimeout(()=>{a.value==="saved"&&(a.value="ready")},2500)}catch(y){n.value=y instanceof Error?y.message:"save failed",a.value="error"}}}function d(m){if(typeof m.data!="string"||m.data.length===0)return;const _=m.data[0];if(_!=="{"&&_!=="<")return;let y;try{y=JSON.parse(m.data)}catch{return}if(!(!y||typeof y!="object"))switch(y.event){case"init":f({action:"load",xml:c,autosave:0}),a.value="ready";break;case"save":typeof y.xml=="string"&&h(y.xml);break;case"export":break;case"autosave":typeof y.xml=="string"&&!i.value&&h(y.xml);break}}function p(){if(!o.value){n.value=w("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış."),a.value="error";return}n.value===w("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış.")&&(n.value=null,a.value="loading"),u()}l.onMounted(()=>{window.addEventListener("message",d),p()}),l.watch(()=>t.drawioUrl,p),l.onBeforeUnmount(()=>{window.removeEventListener("message",d)});function w(m,_){return t.t?t.t(m):_}return(m,_)=>(l.openBlock(),l.createElementBlock("div",m3,[n.value?(l.openBlock(),l.createElementBlock("div",v3,[_[0]||(_[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📐",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):(l.openBlock(),l.createElementBlock("iframe",{key:1,ref_key:"iframeRef",ref:r,src:s.value,class:"filex-viewer-drawio__frame",title:"diagrams.net editor"},null,8,g3))]))}}),[["__scopeId","data-v-2a88618e"]])},Symbol.toStringTag,{value:"Module"})),y3={class:"filex-viewer-tiff"},b3={class:"filex-viewer-tiff__pane"},w3={key:0,class:"filex-viewer-fallback"},_3={key:1,class:"filex-viewer-fallback"},x3={key:2,class:"filex-viewer-tiff__pager"},k3=["disabled"],S3={class:"filex-viewer-tiff__pages"},E3=["disabled"],wc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"TiffViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref(!0);l.ref(1);const i=l.ref(0),o=l.ref(0),s=l.ref({width:0,height:0});let c=null,u=null,f=0;async function h(){if(c)return c;try{const g=await Promise.resolve().then(()=>d8);return c=g.default??g,c}catch{return null}}async function d(){var v;a.value=!0,n.value=null,u=null,i.value=0,o.value=0;const g=++f,b=await h();if(g===f){if(!b){n.value=t.t?t.t("viewer.peer_not_installed"):"TIFF viewer requires `utif` — install or use download.",a.value=!1;return}try{const E=await gc({url:t.url,headers:((v=t.authHeaders)==null?void 0:v.call(t))??{},credentials:t.authCredentials});if(g!==f)return;if(u=b.decode(E),o.value=(u==null?void 0:u.length)??0,o.value===0)throw new Error("No pages decoded");p()}catch(E){n.value=E instanceof Error?E.message:"TIFF decode failed"}finally{a.value=!1}}}function p(){if(!c||!u||!r.value)return;const g=Math.max(0,Math.min(i.value,u.length-1)),b=u[g];try{c.decodeImage(void 0,b)}catch{}const v=c.toRGBA8(b),E=b.width,C=b.height;s.value={width:E,height:C};const A=r.value;A.width=E,A.height=C;const k=A.getContext("2d");if(!k)return;const B=k.createImageData(E,C);B.data.set(v),k.putImageData(B,0,0)}function w(){i.value<o.value-1&&(i.value++,p())}function m(){i.value>0&&(i.value--,p())}l.onMounted(d),l.onBeforeUnmount(()=>{f++,u=null}),l.watch(()=>t.url,d);const _=l.computed(()=>(t.t&&t.t("viewer.page_n_of_m")||"Page {n} of {m}").replace("{n}",String(i.value+1)).replace("{m}",String(o.value)));function y(g,b){return t.t?t.t(g):b}return(g,b)=>(l.openBlock(),l.createElementBlock("div",y3,[l.createElementVNode("div",b3,[n.value?(l.openBlock(),l.createElementBlock("div",w3,[b[0]||(b[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🖼️",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):a.value?(l.openBlock(),l.createElementBlock("div",_3,[b[1]||(b[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(y("viewer.loading","Loading…")),1)])):l.createCommentVNode("",!0),l.withDirectives(l.createElementVNode("canvas",{ref_key:"canvasEl",ref:r,style:{imageRendering:"pixelated"}},null,512),[[l.vShow,!a.value&&!n.value]]),!a.value&&!n.value&&o.value>1?(l.openBlock(),l.createElementBlock("div",x3,[l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:i.value===0,onClick:m},"‹",8,k3),l.createElementVNode("span",S3,l.toDisplayString(_.value),1),l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:i.value>=o.value-1,onClick:w},"›",8,E3)])):l.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-e6d0bdb2"]])},Symbol.toStringTag,{value:"Module"})),C3={class:"filex-viewer-psd"},D3={class:"filex-viewer-psd__pane"},A3={key:0,class:"filex-viewer-fallback"},B3={key:1,class:"filex-viewer-fallback"},T3=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"PsdViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref([]),a=l.ref(null),i=l.ref(!0);l.ref(!1);const o=l.ref({width:0,height:0});l.ref(1);let s=0,c=null;async function u(){if(c)return c;try{return c=await Promise.resolve().then(()=>T9),c}catch{return null}}function f(p,w){if(p&&Array.isArray(p.children))for(const m of p.children)w.push({index:w.length,name:m.name??"(unnamed)",hidden:!!m.hidden}),m.children&&f(m,w)}async function h(){var m;i.value=!0,a.value=null,n.value=[];const p=++s,w=await u();if(p===s){if(!w){a.value=t.t?t.t("viewer.peer_not_installed"):"PSD viewer requires `ag-psd` — install or use download.",i.value=!1;return}try{const _=await gc({url:t.url,headers:((m=t.authHeaders)==null?void 0:m.call(t))??{},credentials:t.authCredentials});if(p!==s)return;const y=w.readPsd(_,{skipLayerImageData:!1,skipCompositeImageData:!1,skipThumbnail:!0});o.value={width:y.width,height:y.height};const g=y.canvas;if(g&&r.value){const v=r.value;v.width=y.width,v.height=y.height;const E=v.getContext("2d");E==null||E.drawImage(g,0,0)}else throw new Error("PSD has no composite image (skipCompositeImageData?)");const b=[];f(y,b),n.value=b}catch(_){a.value=_ instanceof Error?_.message:"PSD decode failed"}finally{i.value=!1}}}l.onMounted(h),l.onBeforeUnmount(()=>{s++}),l.watch(()=>t.url,h);function d(p,w){return t.t?t.t(p):w}return(p,w)=>(l.openBlock(),l.createElementBlock("div",C3,[l.createElementVNode("div",D3,[a.value?(l.openBlock(),l.createElementBlock("div",A3,[w[0]||(w[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🎨",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):i.value?(l.openBlock(),l.createElementBlock("div",B3,[w[1]||(w[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(d("viewer.loading","Loading…")),1)])):l.createCommentVNode("",!0),l.withDirectives(l.createElementVNode("canvas",{ref_key:"canvasEl",ref:r},null,512),[[l.vShow,!i.value&&!a.value]])])]))}}),[["__scopeId","data-v-d23e4974"]])},Symbol.toStringTag,{value:"Module"})),M3={class:"filex-viewer-ipynb"},I3={class:"filex-viewer-ipynb__pane"},z3={key:0,class:"filex-viewer-fallback"},F3={key:1,class:"filex-viewer-fallback"},N3={key:2},O3=["data-type"],L3={class:"filex-viewer-ipynb__exec"},P3={class:"filex-viewer-ipynb__src hljs"},R3=["innerHTML"],V3={key:1},$3={key:0,class:"filex-viewer-ipynb__outputs"},U3=["src","alt"],H3=["innerHTML"],G3=["data-type"],j3=["innerHTML"],q3={key:1,class:"filex-viewer-ipynb__md-raw"},W3={key:2,class:"filex-viewer-ipynb__src"},X3=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"IpynbViewer",props:{url:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref([]),n=l.ref("python"),a=l.ref(null),i=l.ref(!0),o=l.ref(new Map),s=l.ref(new Map);let c=0,u=null,f=null;async function h(){if(f!==null)return f||null;try{const g=await import("markdown-it"),b=g.default??g;return f=new b({html:!1,linkify:!0,breaks:!0}),f}catch{return f=!1,null}}function d(g){return Array.isArray(g)?g.join(""):g??""}async function p(){var C,A,k,B;i.value=!0,a.value=null,r.value=[],o.value=new Map,s.value=new Map;const g=++c;let b;try{b=await t0({url:t.url,headers:((C=t.authHeaders)==null?void 0:C.call(t))??{},credentials:t.authCredentials})}catch(T){a.value=T instanceof Error?T.message:"fetch failed",i.value=!1;return}if(g!==c)return;let v;try{v=JSON.parse(b)}catch{a.value="Invalid notebook JSON",i.value=!1;return}if(r.value=Array.isArray(v.cells)?v.cells:[],n.value=((k=(A=v.metadata)==null?void 0:A.kernelspec)==null?void 0:k.language)||"python",u=await e0(),g!==c)return;if(u){const T=u.default??u,F=(B=T.getLanguage)!=null&&B.call(T,n.value)?n.value:null;r.value.forEach((V,L)=>{if(V.cell_type==="code"){const H=d(V.source);try{const X=F?T.highlight(H,{language:F,ignoreIllegals:!0}):T.highlightAuto(H);o.value.set(L,X.value)}catch{}}})}const E=await h();g===c&&(E&&r.value.forEach((T,F)=>{if(T.cell_type==="markdown")try{s.value.set(F,E.render(d(T.source)))}catch{}}),i.value=!1)}function w(g){var b;return g?g.output_type==="stream"?d(g.text):g.output_type==="error"?[g.ename,g.evalue,...g.traceback||[]].filter(Boolean).join(`
|
|
3
|
-
`):(g.output_type==="execute_result"||g.output_type==="display_data")&&(b=g.data)!=null&&b["text/plain"]?d(g.data["text/plain"]):null:null}function m(g){if(!(g!=null&&g.data))return null;if(g.data["image/png"])return`data:image/png;base64,${g.data["image/png"]}`;if(g.data["image/jpeg"])return`data:image/jpeg;base64,${g.data["image/jpeg"]}`;if(g.data["image/svg+xml"]){const b=d(g.data["image/svg+xml"]);return`data:image/svg+xml;utf8,${encodeURIComponent(b)}`}return null}function _(g){return g!=null&&g.data&&g.data["text/html"]?d(g.data["text/html"]).replace(/<script[\s\S]*?<\/script>/gi,""):null}l.onMounted(p),l.onBeforeUnmount(()=>{c++}),l.watch(()=>t.url,p),l.computed(()=>{const g=r.value.filter(v=>v.cell_type==="code").length,b=r.value.filter(v=>v.cell_type==="markdown").length;return{code:g,md:b,total:r.value.length}});function y(g,b){return t.t?t.t(g):b}return(g,b)=>(l.openBlock(),l.createElementBlock("div",M3,[l.createElementVNode("div",I3,[a.value?(l.openBlock(),l.createElementBlock("div",z3,[b[0]||(b[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📓",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):i.value?(l.openBlock(),l.createElementBlock("div",F3,[b[1]||(b[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(y("viewer.loading","Loading…")),1)])):(l.openBlock(),l.createElementBlock("div",N3,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,(v,E)=>(l.openBlock(),l.createElementBlock("div",{key:E,class:"filex-viewer-ipynb__cell","data-type":v.cell_type},[v.cell_type==="code"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("div",L3," In ["+l.toDisplayString(v.execution_count??" ")+"]: ",1),l.createElementVNode("pre",P3,[o.value.get(E)?(l.openBlock(),l.createElementBlock("code",{key:0,innerHTML:o.value.get(E)},null,8,R3)):(l.openBlock(),l.createElementBlock("code",V3,l.toDisplayString(d(v.source)),1))]),v.outputs&&v.outputs.length?(l.openBlock(),l.createElementBlock("div",$3,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(v.outputs,(C,A)=>(l.openBlock(),l.createElementBlock(l.Fragment,{key:A},[m(C)?(l.openBlock(),l.createElementBlock("img",{key:0,src:m(C)||"",class:"filex-viewer-ipynb__img",alt:`output ${A}`},null,8,U3)):_(C)?(l.openBlock(),l.createElementBlock("div",{key:1,class:"filex-viewer-ipynb__html",innerHTML:_(C)},null,8,H3)):w(C)?(l.openBlock(),l.createElementBlock("pre",{key:2,class:"filex-viewer-ipynb__out","data-type":C.output_type},l.toDisplayString(w(C)),9,G3)):l.createCommentVNode("",!0)],64))),128))])):l.createCommentVNode("",!0)],64)):v.cell_type==="markdown"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[s.value.get(E)?(l.openBlock(),l.createElementBlock("div",{key:0,class:"filex-viewer-ipynb__md",innerHTML:s.value.get(E)},null,8,j3)):(l.openBlock(),l.createElementBlock("pre",q3,l.toDisplayString(d(v.source)),1))],64)):(l.openBlock(),l.createElementBlock("pre",W3,l.toDisplayString(d(v.source)),1))],8,O3))),128))]))])]))}}),[["__scopeId","data-v-
|
|
4
|
-
`),C=(E.match(/\t/g)||[]).length,A=(E.match(/;/g)||[]).length,k=(E.match(/,/g)||[]).length;return C>k&&C>A?" ":A>k&&A>C?";":","}async function d(v,E){try{const C=await Promise.resolve().then(()=>M9);return(C.default??C).parse(v,{delimiter:E,skipEmptyLines:!0,header:!1}).data.slice(0,_c)}catch{return v.split(/\r?\n/).filter(C=>C.length>0).slice(0,_c).map(C=>C.split(E))}}async function p(){var A;a.value=!0,n.value=null,r.value=[],s.value=1;const v=++f;let E;try{E=await t0({url:t.url,headers:((A=t.authHeaders)==null?void 0:A.call(t))??{},credentials:t.authCredentials})}catch(k){n.value=k instanceof Error?k.message:"fetch failed",a.value=!1;return}if(v!==f)return;t.ext==="tsv"?c.value=" ":c.value=h(E.slice(0,4096));const C=u.value==="auto"?c.value:u.value;r.value=await d(E,C),a.value=!1}l.onMounted(p),l.watch(()=>t.url,p),l.watch(()=>u.value,()=>{r.value.length!==0&&p()});const w=l.computed(()=>!i.value||r.value.length===0?r.value.length===0?[]:r.value[0].map((v,E)=>`Col ${E+1}`):r.value[0]),m=l.computed(()=>i.value?r.value.slice(1):r.value),_=l.computed(()=>{const v=o.value.trim().toLowerCase();return v?m.value.filter(E=>E.some(C=>(C||"").toLowerCase().includes(v))):m.value}),y=l.computed(()=>Math.max(1,Math.ceil(_.value.length/No))),g=l.computed(()=>{const v=(s.value-1)*No;return _.value.slice(v,v+No)});l.watch(o,()=>{s.value=1});function b(v,E){return t.t?t.t(v):E}return(v,E)=>(l.openBlock(),l.createElementBlock("div",Z3,[l.createElementVNode("div",K3,[n.value?(l.openBlock(),l.createElementBlock("div",Y3,[E[2]||(E[2]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):a.value?(l.openBlock(),l.createElementBlock("div",J3,[E[3]||(E[3]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(b("viewer.loading","Loading…")),1)])):(l.openBlock(),l.createElementBlock("table",Q3,[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[E[4]||(E[4]=l.createElementVNode("th",{class:"filex-viewer-csv__rownum"},"#",-1)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(w.value,(C,A)=>(l.openBlock(),l.createElementBlock("th",{key:A},l.toDisplayString(C),1))),128))])]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(g.value,(C,A)=>(l.openBlock(),l.createElementBlock("tr",{key:A},[l.createElementVNode("td",eg,l.toDisplayString((s.value-1)*100+A+1),1),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(C,(k,B)=>(l.openBlock(),l.createElementBlock("td",{key:B},l.toDisplayString(k),1))),128))]))),128))])]))]),!a.value&&!n.value&&y.value>1?(l.openBlock(),l.createElementBlock("div",tg,[l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:s.value<=1,onClick:E[0]||(E[0]=C=>s.value--)},"‹",8,rg),l.createElementVNode("span",ng,l.toDisplayString(s.value)+" / "+l.toDisplayString(y.value)+" ("+l.toDisplayString(_.value.length)+" satır)",1),l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:s.value>=y.value,onClick:E[1]||(E[1]=C=>s.value++)},"›",8,ag)])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-fc457b26"]])},Symbol.toStringTag,{value:"Module"})),ig={class:"filex-viewer-archive"},og={key:0,class:"filex-viewer-fallback"},lg={key:1,class:"filex-viewer-fallback"},sg={key:2,class:"filex-viewer-fallback"},cg={key:3,class:"filex-viewer-archive__pane"},ug={class:"filex-viewer-archive__summary"},fg={class:"filex-viewer-archive__table"},dg={class:"filex-viewer-archive__size"},hg=["data-dir"],pg={class:"filex-viewer-archive__icon"},mg={class:"filex-viewer-archive__size"},vg=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"ArchiveViewer",props:{url:{},filePath:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref([]),n=l.ref(!0),a=l.ref(null);function i(f,h){return t.t?t.t(f):h}function o(f){return f<1024?`${f} B`:f<1024*1024?`${(f/1024).toFixed(1)} KB`:f<1024*1024*1024?`${(f/(1024*1024)).toFixed(1)} MB`:`${(f/(1024*1024*1024)).toFixed(2)} GB`}async function s(){if(n.value=!0,a.value=null,r.value=[],!t.filePath){a.value=i("viewer.archive.error","Could not read archive contents."),n.value=!1;return}try{const f=await fetch("/api/files/archive/list",{method:"POST",credentials:t.authCredentials||"include",headers:{"Content-Type":"application/json",...t.authHeaders?t.authHeaders():{}},body:JSON.stringify({path:t.filePath})});if(!f.ok)throw new Error(`${f.status} ${f.statusText}`);const h=await f.json();r.value=h.entries??[]}catch(f){a.value=f instanceof Error?f.message:i("viewer.archive.error","Could not read archive contents.")}finally{n.value=!1}}l.onMounted(s),l.watch(()=>t.filePath,s);const c=l.computed(()=>r.value.reduce((f,h)=>f+(h.size||0),0)),u=l.computed(()=>r.value.filter(f=>!f.is_dir).length);return(f,h)=>(l.openBlock(),l.createElementBlock("div",ig,[a.value?(l.openBlock(),l.createElementBlock("div",og,[h[0]||(h[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🗜️",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):n.value?(l.openBlock(),l.createElementBlock("div",lg,[h[1]||(h[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(i("viewer.loading","Loading…")),1)])):r.value.length===0?(l.openBlock(),l.createElementBlock("div",sg,[h[2]||(h[2]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🗜️",-1)),l.createElementVNode("p",null,l.toDisplayString(i("viewer.archive.empty","Archive is empty.")),1)])):(l.openBlock(),l.createElementBlock("div",cg,[l.createElementVNode("div",ug,l.toDisplayString(u.value)+" "+l.toDisplayString(i("viewer.archive.entries","{n} files").replace("{n}",String(u.value)))+" · "+l.toDisplayString(o(c.value)),1),l.createElementVNode("table",fg,[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[l.createElementVNode("th",null,l.toDisplayString(i("viewer.name","Name")),1),l.createElementVNode("th",dg,l.toDisplayString(i("viewer.size","Size")),1)])]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,(d,p)=>(l.openBlock(),l.createElementBlock("tr",{key:p,"data-dir":d.is_dir?"1":"0"},[l.createElementVNode("td",null,[l.createElementVNode("span",pg,l.toDisplayString(d.is_dir?"📁":"📄"),1),l.createTextVNode(" "+l.toDisplayString(d.name),1)]),l.createElementVNode("td",mg,l.toDisplayString(d.is_dir?"":o(d.size)),1)],8,hg))),128))])])]))]))}}),[["__scopeId","data-v-6b42eacd"]])},Symbol.toStringTag,{value:"Module"}));class Me extends Error{constructor(t,r){var n="KaTeX parse error: "+t,a,i,o=r&&r.loc;if(o&&o.start<=o.end){var s=o.lexer.input;a=o.start,i=o.end,a===s.length?n+=" at end of input: ":n+=" at position "+(a+1)+": ";var c=s.slice(a,i).replace(/[^]/g,"$&̲"),u;a>15?u="…"+s.slice(a-15,a):u=s.slice(0,a);var f;i+15<s.length?f=s.slice(i,i+15)+"…":f=s.slice(i),n+=u+c+f}super(n),this.name="ParseError",Object.setPrototypeOf(this,Me.prototype),this.position=a,a!=null&&i!=null&&(this.length=i-a),this.rawMessage=t}}var gg=/([A-Z])/g,Oo=e=>e.replace(gg,"-$1").toLowerCase(),yg={"&":"&",">":">","<":"<",'"':""","'":"'"},bg=/[&><"']/g,ur=e=>String(e).replace(bg,t=>yg[t]),r0=e=>e.type==="ordgroup"||e.type==="color"?e.body.length===1?r0(e.body[0]):e:e.type==="font"?r0(e.body):e,wg=new Set(["mathord","textord","atom"]),bn=e=>wg.has(r0(e).type),_g=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},n0={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function xg(e){if("default"in e)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class Lo{constructor(t){t===void 0&&(t={}),t=t||{};for(var r of Object.keys(n0)){var n=n0[r],a=t[r];this[r]=a!==void 0?n.processor?n.processor(a):a:xg(n)}}reportNonstrict(t,r,n){var a=this.strict;if(typeof a=="function"&&(a=a(t,r,n)),!(!a||a==="ignore")){if(a===!0||a==="error")throw new Me("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+t+"]"),n);a==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]"))}}useStrictBehavior(t,r,n){var a=this.strict;if(typeof a=="function")try{a=a(t,r,n)}catch{a="error"}return!a||a==="ignore"?!1:a===!0||a==="error"?!0:a==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]")),!1)}isTrusted(t){if("url"in t&&t.url&&!t.protocol){var r=_g(t.url);if(r==null)return!1;t.protocol=r}var n=typeof this.trust=="function"?this.trust(t):this.trust;return!!n}}class On{constructor(t,r,n){this.id=t,this.size=r,this.cramped=n}sup(){return ln[kg[this.id]]}sub(){return ln[Sg[this.id]]}fracNum(){return ln[Eg[this.id]]}fracDen(){return ln[Cg[this.id]]}cramp(){return ln[Dg[this.id]]}text(){return ln[Ag[this.id]]}isTight(){return this.size>=2}}var Po=0,a0=1,_a=2,wn=3,ui=4,Vr=5,xa=6,pr=7,ln=[new On(Po,0,!1),new On(a0,0,!0),new On(_a,1,!1),new On(wn,1,!0),new On(ui,2,!1),new On(Vr,2,!0),new On(xa,3,!1),new On(pr,3,!0)],kg=[ui,Vr,ui,Vr,xa,pr,xa,pr],Sg=[Vr,Vr,Vr,Vr,pr,pr,pr,pr],Eg=[_a,wn,ui,Vr,xa,pr,xa,pr],Cg=[wn,wn,Vr,Vr,pr,pr,pr,pr],Dg=[a0,a0,wn,wn,Vr,Vr,pr,pr],Ag=[Po,a0,_a,wn,_a,wn,_a,wn],lt={DISPLAY:ln[Po],TEXT:ln[_a],SCRIPT:ln[ui],SCRIPTSCRIPT:ln[xa]},Ro=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function Bg(e){for(var t=0;t<Ro.length;t++)for(var r=Ro[t],n=0;n<r.blocks.length;n++){var a=r.blocks[n];if(e>=a[0]&&e<=a[1])return r.name}return null}var i0=[];Ro.forEach(e=>e.blocks.forEach(t=>i0.push(...t)));function kc(e){for(var t=0;t<i0.length;t+=2)if(e>=i0[t]&&e<=i0[t+1])return!0;return!1}var Qt=e=>e+" "+e,ka=80,Tg=function(t,r){return"M95,"+(622+t+r)+`
|
|
1
|
+
(function(zt,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(zt=typeof globalThis<"u"?globalThis:zt||self,l(zt.FilexCore={},zt.Vue))})(this,function(zt,l){"use strict";function Qs(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(n,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function To(e){return!!e&&e.enabled&&e.state==="ok"}function ec(e){const t=e.apiBase!=null?e.apiBase.replace(/\/+$/,""):null;function r(a,i){return a||(t===null?null:`${t}${i}`)}const n=e.endpoint??(t!==null?`${t}/api/files/manager`:null);if(!n)throw new Error("[@brftech/filex-core] config requires either `apiBase` or `endpoint`");return{manager:n,uploadInit:r(e.uploadInit,"/api/files/upload/init"),uploadFinalize:r(e.uploadFinalize,"/api/files/upload/finalize"),uploadAbort:r(e.uploadAbort,"/api/files/upload/abort"),shareCreate:r(e.shareCreate,"/api/files/share"),shareList:r(e.shareList,"/api/files/share"),shareDelete:r(e.shareDelete,"/api/files/share/{uuid}"),limits:r(e.limits,"/api/files/limits"),capabilities:r(e.capabilities,"/api/files/capabilities"),archiveList:r(e.archiveList,"/api/files/archive/list"),archiveExtract:r(e.archiveExtract,"/api/files/archive/extract"),archiveAdd:r(e.archiveAdd,"/api/files/archive/add"),copy:r(e.copy,"/api/files/copy"),moveAsync:r(e.moveAsync,"/api/files/move"),deleteAsync:r(e.deleteAsync,"/api/files/delete"),opsList:r(e.opsList,"/api/files/ops"),opsShow:r(e.opsShow,"/api/files/ops/{id}"),onlyOfficeConfig:r(e.onlyOfficeConfig,"/api/files/onlyoffice/config"),saveText:r(e.saveText,"/api/files/save-text"),restore:r(e.restore,"/api/files/restore"),trashList:r(e.trashList,"/api/files/manager/trash"),trashRestore:r(e.trashRestore,"/api/files/manager/restore")}}async function Kp(e){if(typeof e=="function"){const t=e();return t instanceof Promise?await t:t}return e}function Yp(e){return e?"kind"in e?e:e.type==="bearer"?{kind:"bearer",token:e.token}:e.type==="csrf"?{kind:"csrf",csrf:e.csrf}:{kind:"none"}:{kind:"none"}}function tc(e){const t=ec(e),r=Yp(e.auth);async function n(te={}){const se={Accept:"application/json",...te};if(r.kind==="bearer"){const ie=await Kp(r.token);ie&&(se.Authorization=`Bearer ${ie}`)}else if(r.kind==="csrf")se["X-CSRF-TOKEN"]=r.csrf,se["X-Requested-With"]="XMLHttpRequest";else if(r.kind==="basic"){const ie=btoa(`${r.user}:${r.pass}`);se.Authorization=`Basic ${ie}`}return se}function a(te={}){const se={Accept:"application/json",...te};if(r.kind==="bearer"&&typeof r.token=="string")se.Authorization=`Bearer ${r.token}`;else if(r.kind==="csrf")se["X-CSRF-TOKEN"]=r.csrf,se["X-Requested-With"]="XMLHttpRequest";else if(r.kind==="basic"){const ie=btoa(`${r.user}:${r.pass}`);se.Authorization=`Basic ${ie}`}return se}function i(){return r.kind==="csrf"?"include":"same-origin"}function o(te){const se=(e.locale??"tr")!=="en",_e={400:["Geçersiz istek","Bad request"],401:["Oturum gerekli, tekrar giriş yapın","Sign-in required"],403:["Bu işlem için yetkiniz yok","You are not allowed to do this"],404:["Bulunamadı","Not found"],409:["Zaten var / çakışma","Already exists / conflict"],413:["Dosya çok büyük","File too large"],415:["Bu dosya türü desteklenmiyor","Unsupported file type"],422:["Geçersiz veri","Invalid data"],429:["Çok fazla istek, biraz bekleyin","Too many requests"],500:["Sunucu hatası","Server error"],501:["Bu işlem desteklenmiyor","Not supported"],503:["Servis şu an kullanılamıyor","Service unavailable"]}[te];return _e?se?_e[0]:_e[1]:se?`Hata (${te})`:`Error (${te})`}async function s(te,se={}){const ie={...await n(),...se.headers??{}},_e=await fetch(te,{...se,headers:ie,credentials:i()});if(!_e.ok){const He=await _e.text().catch(()=>""),je=new Error(o(_e.status));throw je.status=_e.status,je.detail=He.slice(0,300),je}return _e.json()}function c(te=""){return t.manager.replace(/\/manager(\?.*)?$/,"/permissions")+te}async function u(te){return s(c()+"?path="+encodeURIComponent(te))}async function f(te){return s(c("/resolve")+"?email="+encodeURIComponent(te))}async function h(te){return s(c("/users")+"?q="+encodeURIComponent(te))}async function d(te){return s(c(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}async function p(te,se){return s(c("/"+te),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:se})})}async function w(te){return s(c("/"+te),{method:"DELETE"})}async function m(te){return s(c("/invite"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}async function _(te){return s(c("/share-mail"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}function y(te){const se=new URLSearchParams;for(const[ie,_e]of Object.entries(te))_e!=null&&se.set(ie,String(_e));return se.toString()}function g(te,se={}){const ie=t.manager.includes("?")?"&":"?";return`${t.manager}${ie}${y({q:te,action:te,...se})}`}async function b(te){return s(g("index",{path:te}))}async function v(te,se){return s(g("search",{path:te,filter:se}))}async function E(te){return s(g("subfolders",{path:te}))}async function C(te,se){return s(g("newfolder"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,name:se})})}async function A(te,se,ie){return s(g("rename"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,item:se,name:ie})})}async function k(te,se,ie){return s(g("move"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,item:ie,items:se.map(_e=>({path:_e}))})})}async function B(te,se){return s(g("delete"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,items:se.map(ie=>({path:ie}))})})}async function T(te,se){if(!t.copy)throw new Error("copy endpoint not configured");return s(t.copy,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te,target:se})})}async function F(te,se,ie){if(!t.moveAsync)throw new Error("moveAsync endpoint not configured");return s(t.moveAsync,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te,target:se,sourceDir:ie})})}async function V(te,se){if(!t.deleteAsync)throw new Error("deleteAsync endpoint not configured");return s(t.deleteAsync,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te,sourceDir:se})})}async function L(te){if(!t.restore)throw new Error("restore endpoint not configured");return s(t.restore,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:te})})}async function H(te){if(!t.trashList)throw new Error("trashList endpoint not configured");const se=t.trashList,ie=se.includes("?")?"&":"?",_e=te?`${se}${ie}storage=${encodeURIComponent(te)}`:se;return s(_e)}async function X(te){const se=t.trashRestore;if(!se)throw new Error("trashRestore endpoint not configured");let ie=0;for(const _e of te)try{await s(se,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_id:_e})}),ie++}catch{}return{restored:ie}}async function W(te,se,ie){const _e=new FormData;_e.append("path",te);for(const je of se)_e.append("file[]",je,je.name);const He=await n();return new Promise((je,Ve)=>{const ge=new XMLHttpRequest;ge.open("POST",g("upload"));for(const[Ce,ve]of Object.entries(He))Ce!=="Content-Type"&&ge.setRequestHeader(Ce,ve);ge.withCredentials=i()==="include",ge.upload.onprogress=Ce=>{ie&&Ce.lengthComputable&&ie(Math.round(Ce.loaded/Ce.total*100))},ge.onload=()=>{if(ge.status>=200&&ge.status<300)try{je(JSON.parse(ge.responseText))}catch(Ce){Ve(Ce)}else Ve(new Error(`${ge.status} ${ge.statusText}: ${ge.responseText.slice(0,200)}`))},ge.onerror=()=>Ve(new Error("Network error")),ge.send(_e)})}function Z(te){return g("download",{path:te})}function Q(te){return g("preview",{path:te})}async function K(te){const se=await n(),ie=await fetch(Q(te),{headers:se,credentials:i()});if(!ie.ok){const Ve=await ie.text().catch(()=>"");throw new Error(`${ie.status} ${ie.statusText}${Ve?" — "+Ve.slice(0,200):""}`)}const _e=await ie.blob(),He=_e.type||ie.headers.get("content-type")||"";return{url:URL.createObjectURL(_e),blob:_e,mime:He}}async function ue(te){const se=await n(),ie=await fetch(Q(te),{headers:se,credentials:i()});if(!ie.ok){const _e=await ie.text().catch(()=>"");throw new Error(`${ie.status} ${ie.statusText}${_e?" — "+_e.slice(0,200):""}`)}return ie.arrayBuffer()}async function ne(){return t.limits?s(t.limits):{max_upload_mb:1024}}async function fe(){return t.capabilities?s(t.capabilities):{ffmpeg:!1,ghostscript:!1,libreoffice:!1,max_chunk_mb:5,upload_limit_mb:1024,onlyoffice_url:e.onlyOfficeBase??null,drawio_url:e.drawioBase??null,convert_url:e.convertBase??null}}async function re(te){if(!t.shareCreate)throw new Error("shareCreate endpoint not configured");return s(t.shareCreate,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(te)})}async function ye(te){if(!t.shareList)return{shares:[]};const se=t.shareList.includes("?")?"&":"?";return s(`${t.shareList}${se}path=${encodeURIComponent(te)}`)}async function he(te){if(!t.shareDelete)throw new Error("shareDelete endpoint not configured");const se=t.shareDelete.replace("{uuid}",encodeURIComponent(te));return s(se,{method:"DELETE"})}async function ke(te){if(!t.archiveList)throw new Error("archiveList endpoint not configured");return{entries:(await s(t.archiveList,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te})})).entries.map(ie=>({name:ie.name,size:ie.size,isDir:ie.is_dir,lastModified:ie.mtime}))}}async function Ee(te,se){if(!t.archiveExtract)throw new Error("archiveExtract endpoint not configured");return s(t.archiveExtract,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,members:se})})}async function me(te,se){if(!t.archiveAdd)throw new Error("archiveAdd endpoint not configured");return s(t.archiveAdd,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:te,files:se})})}return{index:b,search:v,subfolders:E,newFolder:C,rename:A,move:k,copy:T,moveAsync:F,deleteAsync:V,deleteItems:B,restore:L,listTrash:H,restoreIds:X,uploadMultipart:W,downloadUrl:Z,previewUrl:Q,fetchBlob:K,fetchArrayBuffer:ue,limits:ne,capabilities:fe,createShare:re,listShares:ye,revokeShare:he,archiveList:ke,archiveExtract:Ee,archiveAdd:me,listPermissions:u,resolveEmail:f,searchUsers:h,addPermission:d,updatePermission:p,deletePermission:w,invitePermission:m,shareMail:_,endpoints:t,authHeaders:n,authHeadersSync:a,credentialsMode:i,jsonFetch:s}}function rc(e,t){const r=e.chunkSize??5242880,n=Math.max(1,Math.min(8,e.parallelChunks??4));async function a(i){var d,p;const o=i.chunkSize??r,s=i.parallelChunks??n,c={id:crypto.randomUUID(),file:i.file,path:i.path,totalBytes:i.file.size,uploadedBytes:0,percent:0,status:"initializing",cancel:()=>{}};let u=!1;const f=[];c.cancel=()=>{u=!0;for(const w of f)w.abort()};function h(){var w;c.percent=c.totalBytes>0?Math.min(100,Math.round(c.uploadedBytes/c.totalBytes*100)):0,(w=i.onProgress)==null||w.call(i,c)}try{if(!t.endpoints.uploadInit)throw new Error("uploadInit not configured");const w=await t.jsonFetch(t.endpoints.uploadInit,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:i.path,filename:i.file.name,size:i.file.size,mime:i.file.type||"application/octet-stream"})});c.uploadId=w.uploadId,c.status="uploading",h();const m=w.chunkBytes??o,_=new Map,y=[];let g=0;async function b(B){const F=(B.partNumber-1)*(w.chunkBytes??o),V=Math.min(F+(w.chunkBytes??o),i.file.size),L=i.file.slice(F,V),H=new AbortController;f.push(H),await new Promise((X,W)=>{const Z=new XMLHttpRequest;Z.open("PUT",B.presignedUrl),Z.upload.onprogress=Q=>{if(Q.lengthComputable){const K=_.get(B.partNumber)??0,ue=Q.loaded-K;_.set(B.partNumber,Q.loaded),c.uploadedBytes+=ue,h()}},Z.onload=()=>{if(Z.status>=200&&Z.status<300){const Q=(Z.getResponseHeader("ETag")||Z.getResponseHeader("etag")||"").trim();if(!Q){W(new Error("Missing ETag on S3 response"));return}const K=V-F,ue=_.get(B.partNumber)??0;ue<K&&(c.uploadedBytes+=K-ue,_.set(B.partNumber,K)),y.push({partNumber:B.partNumber,etag:Q}),X()}else W(new Error(`S3 PUT ${B.partNumber} → ${Z.status}: ${Z.responseText.slice(0,200)}`))},Z.onerror=()=>W(new Error(`S3 PUT ${B.partNumber} network error`)),Z.onabort=()=>W(new DOMException("Aborted","AbortError")),H.signal.addEventListener("abort",()=>Z.abort()),Z.send(L)})}const v=2;async function E(B,T=0){try{await b(B)}catch(F){if(u)throw F;const V=F instanceof Error?F:new Error(String(F));if(V.name==="AbortError"||T>=v)throw V;const L=_.get(B.partNumber)??0;L>0&&(c.uploadedBytes=Math.max(0,c.uploadedBytes-L),_.delete(B.partNumber),h());const H=500*(T+1)+Math.floor(Math.random()*250);return await new Promise(X=>setTimeout(X,H)),E(B,T+1)}}async function C(){for(;!u&&g<w.parts.length;){const B=w.parts[g++];await E(B)}}const A=[];for(let B=0;B<s;B++)A.push(C());if(await Promise.all(A),u)throw new DOMException("Aborted by user","AbortError");if(!t.endpoints.uploadFinalize)throw new Error("uploadFinalize not configured");c.status="finalizing",y.sort((B,T)=>B.partNumber-T.partNumber);const k=await t.jsonFetch(t.endpoints.uploadFinalize,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uploadId:w.uploadId,parts:y})});return c.status="done",c.uploadedBytes=c.totalBytes,c.percent=100,h(),(d=i.onDone)==null||d.call(i,c,k),k}catch(w){const m=w instanceof Error?w:new Error(String(w));if(c.status=m.name==="AbortError"?"aborted":"error",c.error=m.message,h(),c.uploadId&&t.endpoints.uploadAbort&&c.status==="aborted")try{await t.jsonFetch(t.endpoints.uploadAbort,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uploadId:c.uploadId})})}catch{}throw(p=i.onError)==null||p.call(i,c,m),m}}return{uploadFile:a}}function nc(e){const t=l.ref(new Set),r=l.ref(null);function n(d,p={}){if(p.shift&&r.value){const w=e(),m=w.findIndex(v=>v.path===r.value),_=w.findIndex(v=>v.path===d);if(m===-1||_===-1){t.value=new Set([d]),r.value=d;return}const[y,g]=m<_?[m,_]:[_,m],b=new Set;for(let v=y;v<=g;v++)b.add(w[v].path);t.value=b;return}if(p.ctrl){const w=new Set(t.value);w.has(d)?w.delete(d):w.add(d),t.value=w,r.value=d;return}t.value=new Set([d]),r.value=d}function a(){t.value=new Set,r.value=null}function i(){t.value=new Set(e().map(d=>d.path))}function o(d){return t.value.has(d)}function s(d){const p=new Set(t.value);p.add(d),t.value=p}function c(d){const p=new Set(t.value);p.delete(d),t.value=p}const u=l.computed(()=>t.value.size),f=l.computed(()=>t.value.size===0),h=l.computed(()=>e().filter(p=>t.value.has(p.path)));return{selected:t,anchor:r,click:n,clear:a,selectAll:i,has:o,add:s,remove:c,size:u,isEmpty:f,nodes:h}}function ac(e,t){function r(n){var s;if(!e.value)return;const i=n.target;if(i&&(i.tagName==="INPUT"||i.tagName==="TEXTAREA"||i.isContentEditable)&&n.key!=="Escape")return;const o=n.ctrlKey||n.metaKey;switch(n.key){case"Delete":t.onDelete&&(n.preventDefault(),t.onDelete());break;case"Backspace":(s=t.hasSelection)!=null&&s.call(t)&&t.onDelete?(n.preventDefault(),t.onDelete()):t.onGoUp&&(n.preventDefault(),t.onGoUp());break;case"F2":t.onRename&&(n.preventDefault(),t.onRename());break;case"Enter":t.onOpen&&t.onOpen();break;case"Escape":t.onClose&&t.onClose();break;case"/":t.onFocusSearch&&!o&&(n.preventDefault(),t.onFocusSearch());break;case"a":case"A":o&&t.onSelectAll&&(n.preventDefault(),t.onSelectAll());break;case"x":case"X":o&&t.onCut&&(n.preventDefault(),t.onCut());break;case"c":case"C":o&&t.onCopy&&(n.preventDefault(),t.onCopy());break;case"v":case"V":o&&t.onPaste&&(n.preventDefault(),t.onPaste());break;case"d":case"D":o&&t.onDuplicate&&(n.preventDefault(),t.onDuplicate());break;case"k":case"K":o&&t.onPathJump&&(n.preventDefault(),t.onPathJump());break;case"ArrowUp":n.altKey&&t.onGoUp&&(n.preventDefault(),t.onGoUp());break}}l.onMounted(()=>window.addEventListener("keydown",r)),l.onBeforeUnmount(()=>window.removeEventListener("keydown",r))}const ic={"toolbar.new_folder":"Yeni Klasör","toolbar.upload":"Yükle","toolbar.search":"Ara","toolbar.search.placeholder":"Dosya adı…","toolbar.view.list":"Liste","toolbar.view.grid":"Izgara","toolbar.refresh":"Yenile","toolbar.go_up":"Üst Klasör","ctx.open":"Aç","ctx.preview":"Önizle","ctx.download":"İndir","ctx.convert":"Dönüştür","ctx.rename":"Yeniden Adlandır","ctx.delete":"Sil","ctx.delete_perm":"Kalıcı Olarak Sil","ctx.restore":"Geri Getir","ctx.share":"Paylaş","ctx.move":"Taşı","ctx.copy":"Kopyala","ctx.cut":"Kes","ctx.paste":"Yapıştır","ctx.info":"Bilgi","ctx.duplicate":"Kopyasını Oluştur","ctx.new_file":"Yeni Dosya","modal.delete.title":"Silinsin mi?","modal.delete.message":"{count} öğe çöpe atılacak.","modal.delete.confirm":"Çöpe At","modal.delete.cancel":"Vazgeç","modal.rename.title":"Yeniden Adlandır","modal.rename.save":"Kaydet","modal.rename.cancel":"Vazgeç","modal.newfolder.title":"Yeni Klasör","modal.newfolder.placeholder":"Klasör adı","modal.newfolder.create":"Oluştur","modal.newfolder.cancel":"Vazgeç","modal.share.title":"Paylaşım Linki","modal.share.pin":"PIN koruması","modal.share.expires":"Son kullanma","modal.share.max_downloads":"İndirme limiti","modal.share.create":"Paylaş","modal.share.cancel":"Vazgeç","modal.share.copy":"Kopyala","modal.share.url_copied":"Link kopyalandı","modal.share.pin_copied":"PIN kopyalandı","modal.share.cli_copied":"CLI komutu kopyalandı","upload.progress":"Yükleniyor","upload.done":"Tamamlandı","upload.error":"Hata","upload.aborted":"İptal edildi","upload.cancel":"İptal","empty.folder":"Bu klasör boş","empty.search":"Sonuç bulunamadı",loading:"Yükleniyor…","col.name":"Ad","col.size":"Boyut","col.modified":"Tarih","col.type":"Tür","unit.bytes":"B","unit.kb":"KB","unit.mb":"MB","unit.gb":"GB","unit.tb":"TB","breadcrumb.root":"Kök","breadcrumb.copy_path":"Yolu Kopyala","breadcrumb.go_to_path":"Yola Git","breadcrumb.path_placeholder":"fileman/foo/bar","ops.copy":"Kopyalanıyor","ops.move":"Taşınıyor","ops.delete":"Siliniyor","ops.queued":"sırada","ops.done":"tamamlandı","ops.error":"hata","node.trash":"Çöp Kutusu","viewer.open_in_new_tab":"Yeni Sekmede Aç","viewer.loading":"Yükleniyor…","viewer.failed_to_load":"Dosya yüklenemedi","viewer.peer_not_installed":"Bu dosya tipi için opsiyonel kütüphane kurulu değil. Peer dependency yükle veya İndir düğmesini kullan.","viewer.format_unsupported_3d":"Bu 3B format tarayıcı önizlemesinde desteklenmiyor (model-viewer yalnızca .glb / .gltf / .usdz okur). Lütfen indirip yerel bir araçta açın.","viewer.zoom_in":"Yakınlaştır","viewer.zoom_out":"Uzaklaştır","viewer.fit_width":"Sayfa genişliğine sığdır","viewer.next_page":"Sonraki sayfa","viewer.prev_page":"Önceki sayfa","viewer.page_n_of_m":"Sayfa {n} / {m}","viewer.tags":"Etiketler","viewer.layers":"Katmanlar","viewer.toc":"İçindekiler","viewer.font_smaller":"Yazıyı küçült","viewer.font_larger":"Yazıyı büyüt","viewer.search":"Ara","viewer.download":"İndir","viewer.save_annotations":"Açıklamaları kaydet","viewer.annotations_on":"Açıklamalar: açık","viewer.annotations_off":"Açıklamalar: kapalı","viewer.read_only":"Salt okunur","viewer.csv_first_row_header":"İlk satır başlık olsun","viewer.csv_filter":"Satır filtrele…","viewer.epub_prev":"Önceki","viewer.epub_next":"Sonraki","viewer.drawio.disabled":"diagrams.net editörü bu filex kurulumunda yapılandırılmamış — yönetici FILEX_DRAWIO_URL'yi ayarlamalı.","viewer.archive.entries":"{n} dosya","viewer.archive.empty":"Arşiv boş.","viewer.archive.error":"Arşiv okunamadı.","viewer.name":"Ad","viewer.size":"Boyut"},oc={"toolbar.new_folder":"New Folder","toolbar.upload":"Upload","toolbar.search":"Search","toolbar.search.placeholder":"File name…","toolbar.view.list":"List","toolbar.view.grid":"Grid","toolbar.refresh":"Refresh","toolbar.go_up":"Up one level","ctx.open":"Open","ctx.preview":"Preview","ctx.download":"Download","ctx.convert":"Convert","ctx.rename":"Rename","ctx.delete":"Delete","ctx.delete_perm":"Delete Permanently","ctx.restore":"Restore","ctx.share":"Share","ctx.move":"Move","ctx.copy":"Copy","ctx.cut":"Cut","ctx.paste":"Paste","ctx.info":"Info","ctx.duplicate":"Duplicate","ctx.new_file":"New File","modal.delete.title":"Delete?","modal.delete.message":"{count} item(s) will be moved to trash.","modal.delete.confirm":"Move to Trash","modal.delete.cancel":"Cancel","modal.rename.title":"Rename","modal.rename.save":"Save","modal.rename.cancel":"Cancel","modal.newfolder.title":"New Folder","modal.newfolder.placeholder":"Folder name","modal.newfolder.create":"Create","modal.newfolder.cancel":"Cancel","modal.share.title":"Share Link","modal.share.pin":"PIN protected","modal.share.expires":"Expires at","modal.share.max_downloads":"Download limit","modal.share.create":"Share","modal.share.cancel":"Cancel","modal.share.copy":"Copy","modal.share.url_copied":"Link copied","modal.share.pin_copied":"PIN copied","modal.share.cli_copied":"CLI command copied","upload.progress":"Uploading","upload.done":"Done","upload.error":"Error","upload.aborted":"Aborted","upload.cancel":"Cancel","empty.folder":"This folder is empty","empty.search":"No results",loading:"Loading…","col.name":"Name","col.size":"Size","col.modified":"Modified","col.type":"Type","unit.bytes":"B","unit.kb":"KB","unit.mb":"MB","unit.gb":"GB","unit.tb":"TB","breadcrumb.root":"Root","breadcrumb.copy_path":"Copy Path","breadcrumb.go_to_path":"Go To Path","breadcrumb.path_placeholder":"fileman/foo/bar","ops.copy":"Copying","ops.move":"Moving","ops.delete":"Deleting","ops.queued":"queued","ops.done":"done","ops.error":"error","node.trash":"Trash","viewer.open_in_new_tab":"Open in New Tab","viewer.loading":"Loading…","viewer.failed_to_load":"Failed to load file","viewer.peer_not_installed":"Optional viewer library is not installed. Install the peer dependency or use the download button.","viewer.format_unsupported_3d":"This 3D format is not supported in the browser preview (model-viewer only reads .glb / .gltf / .usdz). Please download and open with a local tool.","viewer.zoom_in":"Zoom in","viewer.zoom_out":"Zoom out","viewer.fit_width":"Fit width","viewer.next_page":"Next page","viewer.prev_page":"Previous page","viewer.page_n_of_m":"Page {n} of {m}","viewer.tags":"Tags","viewer.layers":"Layers","viewer.toc":"Contents","viewer.font_smaller":"Smaller text","viewer.font_larger":"Larger text","viewer.search":"Search","viewer.download":"Download","viewer.save_annotations":"Save annotations","viewer.annotations_on":"Annotations: on","viewer.annotations_off":"Annotations: off","viewer.read_only":"Read only","viewer.csv_first_row_header":"First row as header","viewer.csv_filter":"Filter rows…","viewer.epub_prev":"Previous","viewer.epub_next":"Next","viewer.drawio.disabled":"diagrams.net embed is not configured for this filex instance — operator must wire FILEX_DRAWIO_URL to enable the editor.","viewer.archive.entries":"{n} files","viewer.archive.empty":"Archive is empty.","viewer.archive.error":"Could not read archive contents.","viewer.name":"Name","viewer.size":"Size"},Mo={tr:ic,en:oc};function _r(e){const t=l.computed(()=>{const i=typeof e=="function"?e():e.value;return Mo[i]??Mo.tr});function r(i,o={}){const s=t.value[i]??i;return Object.entries(o).reduce((c,[u,f])=>c.replaceAll(`{${u}}`,String(f)),s)}function n(i){if(i==null||i<=0)return"—";const o=[[1024**4,"unit.tb"],[1024**3,"unit.gb"],[1024**2,"unit.mb"],[1024,"unit.kb"],[1,"unit.bytes"]];for(const[s,c]of o)if(i>=s){const u=i/s;return`${u>=100?Math.round(u):u.toFixed(u>=10?1:2)} ${r(c)}`}return`${i} ${r("unit.bytes")}`}function a(i){if(i.basename===".trash")return r("node.trash");const o=i.basename.match(/^\d{8}-\d{6}-[A-Za-z0-9]+__(.+)$/);return o?o[1]:i.basename}return{t:r,formatSize:n,nodeDisplayName:a}}const Jp=2e3,Qp=8e3;function lc(e){const t=(...s)=>{for(const c of s)if(typeof c=="number")return c;return 0},r=(...s)=>{for(const c of s)if(typeof c=="string"&&c!=="")return c;return null},n=String(e.status??"pending"),a=n==="ok"||n==="done"?"done":n==="failed"||n==="partial"||n==="error"?"error":n==="running"?"running":"pending",i=Array.isArray(e.sources)?e.sources:[],o=r(e.op_type,e.kind)??"delete";return{id:t(e.id),op_type:o==="copy"||o==="move"?o:"delete",status:a,progress_total:t(e.progress_total,e.total,i.length),progress_done:t(e.progress_done,e.done),target_path:r(e.target_path,e.dest),source_dir:r(e.source_dir),source_count:t(e.source_count,i.length),error_message:r(e.error_message,e.error),started_at:r(e.started_at),finished_at:r(e.finished_at),created_at:r(e.created_at)}}function sc(e,t,r={}){const n=l.ref([]),a=new Set,i=new Map;let o=!1;const s=l.computed(()=>n.value.some(w=>w.status==="pending"||w.status==="running"));let c;function u(){c||t.endpoints.opsList&&(c=setInterval(()=>{h()},Jp),h())}function f(){c&&(clearInterval(c),c=void 0)}async function h(){var w;if(t.endpoints.opsList)try{const _=((await t.jsonFetch(t.endpoints.opsList)).ops||[]).map(lc);for(const k of _)(k.status==="done"||k.status==="error")&&!a.has(k.id)&&(a.add(k.id),i.set(k.id,Date.now()),o&&((w=r.onSettled)==null||w.call(r,k)));const y=new Set(n.value.map(k=>k.id)),g=_.filter(k=>k.status==="pending"||k.status==="running"?!0:o?y.has(k.id):!1),b=new Set(g.map(k=>k.id)),v=n.value.filter(k=>!b.has(k.id)),E=[...g,...v];o=!0;const C=Date.now(),A=E.filter(k=>{if(k.status==="pending"||k.status==="running")return!0;const B=i.get(k.id);return B!==void 0&&C-B<Qp});n.value=A,!s.value&&A.length===0&&f()}catch(m){console.warn("[usePendingOps] poll failed:",m)}}function d(w){const m=lc(w);n.value.some(y=>y.id===m.id)||(n.value=[m,...n.value]),u()}function p(w){n.value=n.value.filter(m=>m.id!==w),i.delete(w)}return l.onBeforeUnmount(()=>{f()}),{ops:n,hasActive:s,register:d,dismiss:p,poll:h,startPolling:u,stopPolling:f}}let Zi=null,Ki=null,Yi=null,Ji=null;function li(){Zi||(Zi=import("monaco-editor").then(e=>(Yi=e.default??e,Yi)).catch(()=>(Yi=null,null))),Ki||(Ki=import("highlight.js").then(e=>(Ji=e.default??e,Ji)).catch(()=>(Ji=null,null)))}async function Qi(){return Zi||li(),Zi}async function e0(){return Ki||li(),Ki}function Io(){return Yi}function cc(){return Ji}function em(){return li(),{ensureMonaco:Qi,ensureHighlight:e0,getMonaco:Io,getHighlight:cc}}const tm={class:"fe-toolbar"},rm={class:"fe-toolbar__primary"},nm=["title","aria-label"],am=["title"],im={class:"fe-btn__label"},om=["disabled","title","onClick"],lm={class:"fe-icon"},sm={class:"fe-btn__label"},cm=["title"],um={class:"fe-btn__label"},fm={class:"fe-toolbar__search-group"},dm={class:"fe-search"},hm=["placeholder","value"],pm=["title"],mm=["title"],vm={class:"fe-toolbar__view",role:"tablist","aria-label":"View"},gm=["aria-selected","title"],ym=["aria-selected","title"],bm=l.defineComponent({__name:"Toolbar",props:{viewMode:{},searchQuery:{},trashActive:{type:Boolean},actions:{},selectionMode:{},pasteEnabled:{type:Boolean},convertEnabled:{type:Boolean},canGoUp:{type:Boolean},atVirtualRoot:{type:Boolean},canWrite:{type:Boolean},locale:{}},emits:["update:viewMode","update:searchQuery","new-folder","upload","refresh","go-up","action","open-recents"],setup(e,{expose:t,emit:r}){const n=e,a=r,{t:i}=_r(()=>n.locale),o=l.ref(null),s=l.ref(n.searchQuery);l.watch(()=>n.searchQuery,w=>{s.value=w});let c;function u(w){const m=w.target.value;s.value=m,c&&clearTimeout(c),c=setTimeout(()=>a("update:searchQuery",m),200)}function f(){var w,m;(w=o.value)==null||w.focus(),(m=o.value)==null||m.select()}t({focusSearch:f});const h=l.computed(()=>n.selectionMode??"none"),d=l.computed(()=>n.actions.filter(w=>!w.divider&&!w.hidden));function p(w){a("action",w)}return(w,m)=>(l.openBlock(),l.createElementBlock("div",tm,[l.createElementVNode("div",rm,[e.canGoUp?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--icon-only",title:l.unref(i)("toolbar.go_up"),"aria-label":l.unref(i)("toolbar.go_up"),onClick:m[0]||(m[0]=_=>a("go-up"))},[...m[7]||(m[7]=[l.createElementVNode("span",{class:"fe-icon"},"↑",-1)])],8,nm)):l.createCommentVNode("",!0),h.value==="none"&&!e.trashActive&&!e.atVirtualRoot&&e.canWrite!==!1?(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:"fe-btn fe-btn--primary",title:l.unref(i)("toolbar.new_folder"),onClick:m[1]||(m[1]=_=>a("new-folder"))},[m[8]||(m[8]=l.createElementVNode("span",{class:"fe-icon"},"📁",-1)),l.createElementVNode("span",im,l.toDisplayString(l.unref(i)("toolbar.new_folder")),1)],8,am)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(d.value,_=>(l.openBlock(),l.createElementBlock("button",{key:_.key,type:"button",class:l.normalizeClass(["fe-btn",{"fe-btn--danger":_.danger,"is-disabled":_.disabled}]),disabled:_.disabled,title:_.label,onClick:y=>p(_.key)},[l.createElementVNode("span",lm,l.toDisplayString(_.icon),1),l.createElementVNode("span",sm,l.toDisplayString(_.label),1)],10,om))),128)),e.pasteEnabled&&h.value==="none"&&!e.trashActive&&!e.atVirtualRoot&&e.canWrite!==!1?(l.openBlock(),l.createElementBlock("button",{key:2,type:"button",class:"fe-btn",title:l.unref(i)("ctx.paste"),onClick:m[2]||(m[2]=_=>p("paste"))},[m[9]||(m[9]=l.createElementVNode("span",{class:"fe-icon"},"📋",-1)),l.createElementVNode("span",um,l.toDisplayString(l.unref(i)("ctx.paste")),1)],8,cm)):l.createCommentVNode("",!0)]),m[14]||(m[14]=l.createElementVNode("div",{class:"fe-toolbar__spacer"},null,-1)),l.createElementVNode("div",fm,[l.createElementVNode("div",dm,[l.createElementVNode("input",{ref_key:"searchEl",ref:o,type:"search",class:"fe-search__input",placeholder:l.unref(i)("toolbar.search.placeholder"),value:s.value,"aria-label":"Search",onInput:u},null,40,hm)]),!e.atVirtualRoot&&e.canWrite!==!1?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--icon-only",title:l.unref(i)("toolbar.upload"),onClick:m[3]||(m[3]=_=>a("upload"))},[...m[10]||(m[10]=[l.createElementVNode("span",{class:"fe-icon"},"⬆",-1)])],8,pm)):l.createCommentVNode("",!0),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--icon-only",title:l.unref(i)("toolbar.refresh"),onClick:m[4]||(m[4]=_=>a("refresh"))},[...m[11]||(m[11]=[l.createElementVNode("span",{class:"fe-icon"},"↻",-1)])],8,mm)]),l.createElementVNode("div",vm,[l.createElementVNode("button",{type:"button",class:l.normalizeClass(["fe-btn fe-btn--icon-only",{"is-active":e.viewMode==="list"}]),role:"tab","aria-selected":e.viewMode==="list",title:l.unref(i)("toolbar.view.list"),onClick:m[5]||(m[5]=_=>a("update:viewMode","list"))},[...m[12]||(m[12]=[l.createElementVNode("span",{class:"fe-icon"},"☰",-1)])],10,gm),l.createElementVNode("button",{type:"button",class:l.normalizeClass(["fe-btn fe-btn--icon-only",{"is-active":e.viewMode==="grid"}]),role:"tab","aria-selected":e.viewMode==="grid",title:l.unref(i)("toolbar.view.grid"),onClick:m[6]||(m[6]=_=>a("update:viewMode","grid"))},[...m[13]||(m[13]=[l.createElementVNode("span",{class:"fe-icon"},"▦",-1)])],10,ym)])]))}}),wm=["onClick"],_m=l.defineComponent({__name:"TagPicker",props:{nodeId:{},apiBase:{},authHeaders:{type:Function},palette:{}},emits:["change","error"],setup(e,{emit:t}){const r=e,n=t,a=l.ref([]),i=l.ref(!1),o=l.ref(!1),s=l.ref(""),c=l.computed(()=>r.palette??["#ef4444","#f59e0b","#10b981","#3b82f6","#8b5cf6","#ec4899","#14b8a6","#f97316"]);function u(m){let _=0;for(let g=0;g<m.length;g++)_=_*31+m.charCodeAt(g)|0;const y=c.value;return y[Math.abs(_)%y.length]}async function f(m={}){return{...await(r.authHeaders??(()=>({})))(),...m}}async function h(){i.value=!0;try{const m=r.apiBase??"",_=await fetch(`${m}/api/files/manager/tags?node_id=${r.nodeId}`,{headers:await f(),credentials:"include"});if(_.ok){const y=await _.json();a.value=Array.isArray(y.tags)?y.tags:[]}}catch(m){n("error",m instanceof Error?m.message:String(m))}finally{i.value=!1}}async function d(m){const _=[...a.value];a.value=m;try{const y=r.apiBase??"",g=await fetch(`${y}/api/files/manager/tags`,{method:"POST",headers:await f({"Content-Type":"application/json"}),credentials:"include",body:JSON.stringify({node_id:r.nodeId,tags:m})});if(!g.ok)throw new Error(`tag save failed: ${g.status}`);n("change",m)}catch(y){a.value=_,n("error",y instanceof Error?y.message:String(y))}}function p(){const m=s.value.trim();if(!m||a.value.includes(m)){s.value="",o.value=!1;return}d([...a.value,m]),s.value="",o.value=!1}function w(m){d(a.value.filter(_=>_!==m))}return l.onMounted(h),l.watch(()=>r.nodeId,h),(m,_)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["filex-tag-picker",{"is-loading":i.value}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(a.value,y=>(l.openBlock(),l.createElementBlock("span",{key:y,class:"filex-tag",style:l.normalizeStyle({"--filex-tag-color":u(y)})},[l.createTextVNode(l.toDisplayString(y)+" ",1),l.createElementVNode("button",{class:"filex-tag-x",type:"button",onClick:g=>w(y),"aria-label":"Remove tag"},"×",8,wm)],4))),128)),o.value?(l.openBlock(),l.createElementBlock("form",{key:0,class:"filex-tag-add",onSubmit:l.withModifiers(p,["prevent"])},[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":_[0]||(_[0]=y=>s.value=y),autofocus:"",placeholder:"tag name",onBlur:p,onKeydown:_[1]||(_[1]=l.withKeys(y=>{o.value=!1,s.value=""},["escape"]))},null,544),[[l.vModelText,s.value]])],32)):(l.openBlock(),l.createElementBlock("button",{key:1,class:"filex-tag-add-btn",type:"button",onClick:_[2]||(_[2]=y=>o.value=!0)},"+ Add tag"))],2))}}),xr=(e,t)=>{const r=e.__vccOpts||e;for(const[n,a]of t)r[n]=a;return r},uc=xr(_m,[["__scopeId","data-v-7040583c"]]),xm={class:"filex-recent"},km=["disabled"],Sm={key:0},Em=["onClick"],Cm={class:"filex-recent-name"},Dm={class:"filex-recent-meta"},Am={key:1,class:"filex-recent-empty"},Bm={key:2,class:"filex-recent-empty"},fc=xr(l.defineComponent({__name:"RecentlyOpened",props:{apiBase:{},authHeaders:{type:Function},limit:{},refreshKey:{}},emits:["open","error"],setup(e,{emit:t}){const r=e,n=t,a=l.ref([]),i=l.ref(!1);async function o(){i.value=!0;try{const c=await(r.authHeaders??(()=>({})))(),u=r.apiBase??"",f=r.limit??20,h=await fetch(`${u}/api/files/manager/recent?limit=${f}`,{headers:c,credentials:"include"});if(h.ok){const d=await h.json();a.value=Array.isArray(d.entries)?d.entries:Array.isArray(d)?d:[]}}catch(c){n("error",c instanceof Error?c.message:String(c))}finally{i.value=!1}}function s(c){if(!c)return"";const u=new Date(c).getTime();if(Number.isNaN(u))return"";const f=Date.now()-u;return f<6e4?"just now":f<36e5?`${Math.floor(f/6e4)}m ago`:f<864e5?`${Math.floor(f/36e5)}h ago`:`${Math.floor(f/864e5)}d ago`}return l.onMounted(o),l.watch(()=>r.refreshKey,o),(c,u)=>(l.openBlock(),l.createElementBlock("div",xm,[l.createElementVNode("header",null,[u[0]||(u[0]=l.createElementVNode("h3",null,"Recently opened",-1)),l.createElementVNode("button",{class:"filex-recent-refresh",type:"button",onClick:o,disabled:i.value}," ↻ ",8,km)]),a.value.length?(l.openBlock(),l.createElementBlock("ul",Sm,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(a.value,f=>(l.openBlock(),l.createElementBlock("li",{key:f.id},[l.createElementVNode("button",{type:"button",onClick:h=>n("open",f),class:"filex-recent-item"},[l.createElementVNode("span",Cm,l.toDisplayString(f.name),1),l.createElementVNode("span",Dm,l.toDisplayString(s(f.last_opened)),1)],8,Em)]))),128))])):i.value?(l.openBlock(),l.createElementBlock("p",Bm,"Loading…")):(l.openBlock(),l.createElementBlock("p",Am,"Nothing here yet."))]))}}),[["__scopeId","data-v-559f2c71"]]),Tm={class:"fe-breadcrumb","aria-label":"Breadcrumb"},Mm=["aria-current","onClick","onContextmenu","onDrop"],Im={key:0,class:"fe-breadcrumb__sep","aria-hidden":"true"},zm=["title","aria-label"],Fm=["placeholder","onKeydown"],Nm=l.defineComponent({__name:"Breadcrumb",props:{dirname:{},adapter:{},rootLabel:{},locale:{},multiStorageRoot:{type:Boolean},rootPath:{}},emits:["navigate","copy-path","crumb-context","crumb-drop"],setup(e,{emit:t}){const r=e,n=l.computed(()=>{if(!r.rootPath)return"";const g=r.rootPath,b=g.indexOf("://");return(b>=0?g.slice(b+3):g).replace(/^\/+|\/+$/g,"")}),a=l.computed(()=>{const g=n.value;if(!g)return r.rootLabel||r.adapter;const b=g.split("/");return b[b.length-1]||r.rootLabel||r.adapter}),{t:i}=_r(()=>r.locale),o=t,s=l.computed(()=>{const g=`${r.adapter}://`,b=r.dirname.startsWith(g)?r.dirname.slice(g.length):r.dirname,v=b.split("/").filter(Boolean),E=[];if(r.rootPath){const A=n.value,k=b.replace(/^\/+|\/+$/g,""),B=A&&(k===A||k.startsWith(A+"/"))?k.slice(A.length).replace(/^\/+/,""):"";E.push({label:a.value,adapterPath:r.rootPath});let T=A;for(const F of B.split("/").filter(Boolean))T=T?`${T}/${F}`:F,E.push({label:F===".trash"?i("node.trash"):F,adapterPath:`${g}${T}`});return E}r.multiStorageRoot?(E.push({label:"/",adapterPath:""}),r.adapter&&E.push({label:r.rootLabel||r.adapter,adapterPath:g})):E.push({label:r.rootLabel||r.adapter,adapterPath:g});let C="";for(const A of v){C=C?`${C}/${A}`:A;const k=A===".trash"?i("node.trash"):A;E.push({label:k,adapterPath:`${g}${C}`})}return E});function c(g){o("navigate",g.adapterPath)}function u(g,b){g.preventDefault(),g.stopPropagation(),o("crumb-context",{x:g.clientX,y:g.clientY,adapterPath:b.adapterPath,label:b.label})}function f(g){var b;(b=g.dataTransfer)!=null&&b.types.includes("application/x-brf-files")&&(g.preventDefault(),g.stopPropagation(),g.dataTransfer&&(g.dataTransfer.dropEffect="move"))}function h(g,b){var v;(v=g.dataTransfer)!=null&&v.types.includes("application/x-brf-files")&&(g.preventDefault(),g.stopPropagation(),o("crumb-drop",b.adapterPath,g))}const d=l.ref(!1),p=l.ref(""),w=l.ref(null);function m(){const g=`${r.adapter}://`,b=r.dirname.startsWith(g)?r.dirname.slice(g.length):r.dirname;if(r.rootPath){const v=n.value,E=b.replace(/^\/+|\/+$/g,""),C=v&&(E===v||E.startsWith(v+"/"))?E.slice(v.length).replace(/^\/+/,""):"";p.value=C?`/${C}`:"/",d.value=!0,l.nextTick(()=>{var A,k;(A=w.value)==null||A.focus(),(k=w.value)==null||k.select()});return}if(r.multiStorageRoot)if(!r.adapter)p.value="/";else{const v=b.replace(/^\/+|\/+$/g,"");p.value=v?`/${r.adapter}/${v}`:`/${r.adapter}`}else p.value=b;d.value=!0,l.nextTick(()=>{var v,E;(v=w.value)==null||v.focus(),(E=w.value)==null||E.select()})}function _(){const g=p.value.trim();if(d.value=!1,r.rootPath){const v=g.replace(/^\/+|\/+$/g,""),E=n.value,C=v?E?`${E}/${v}`:v:E;o("navigate",C?`${r.adapter}://${C}`:`${r.adapter}://`);return}if(r.multiStorageRoot){const v=g.replace(/^\/+|\/+$/g,"");if(!v){o("navigate","");return}const E=v.indexOf("/"),C=E===-1?v:v.slice(0,E),A=E===-1?"":v.slice(E+1);o("navigate",A?`${C}://${A}`:`${C}://`);return}const b=g.replace(/^\/+|\/+$/g,"");b&&o("navigate",`${r.adapter}://${b}`)}function y(){d.value=!1}return(g,b)=>(l.openBlock(),l.createElementBlock("nav",Tm,[d.value?l.withDirectives((l.openBlock(),l.createElementBlock("input",{key:1,ref_key:"pathInput",ref:w,"onUpdate:modelValue":b[0]||(b[0]=v=>p.value=v),type:"text",class:"fe-breadcrumb__input",placeholder:l.unref(i)("breadcrumb.path_placeholder"),spellcheck:"false",autocomplete:"off",onKeydown:[l.withKeys(l.withModifiers(_,["prevent"]),["enter"]),l.withKeys(l.withModifiers(y,["prevent"]),["escape"])],onBlur:y},null,40,Fm)),[[l.vModelText,p.value]]):(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(s.value,(v,E)=>(l.openBlock(),l.createElementBlock("button",{key:v.adapterPath,class:l.normalizeClass(["fe-breadcrumb__crumb",{"is-last":E===s.value.length-1}]),type:"button","aria-current":E===s.value.length-1?"page":void 0,onClick:C=>c(v),onContextmenu:C=>u(C,v),onDragover:f,onDrop:C=>h(C,v)},[l.createElementVNode("span",null,l.toDisplayString(v.label),1),E<s.value.length-1?(l.openBlock(),l.createElementBlock("span",Im,"›")):l.createCommentVNode("",!0)],42,Mm))),128)),l.createElementVNode("button",{type:"button",class:"fe-breadcrumb__edit",title:l.unref(i)("breadcrumb.go_to_path"),"aria-label":l.unref(i)("breadcrumb.go_to_path"),onClick:m},"✏",8,zm)],64))]))}}),Om=["aria-pressed","title"],Lm={viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true"},Pm=["fill"],Rm={key:0,class:"filex-star-label"},dc=xr(l.defineComponent({__name:"StarButton",props:{starred:{type:Boolean},nodeId:{},apiBase:{},authHeaders:{type:Function},compact:{type:Boolean}},emits:["change","error"],setup(e,{emit:t}){const r=e,n=t,a=l.ref(r.starred);l.watch(()=>r.starred,o=>{a.value=o});async function i(){const o=!a.value;a.value=o;try{const s={"Content-Type":"application/json",...await(r.authHeaders??(()=>({})))()},c=r.apiBase??"",u=await fetch(`${c}/api/files/manager/star`,{method:"POST",headers:s,credentials:"include",body:JSON.stringify({node_id:r.nodeId,starred:o})});if(!u.ok)throw new Error(`star toggle failed: ${u.status}`);n("change",o)}catch(s){a.value=!o,n("error",s instanceof Error?s.message:String(s))}}return(o,s)=>(l.openBlock(),l.createElementBlock("button",{type:"button",class:l.normalizeClass(["filex-star-btn",{"is-starred":a.value,"is-compact":e.compact}]),"aria-pressed":a.value,title:a.value?"Unstar":"Star",onClick:l.withModifiers(i,["stop"])},[(l.openBlock(),l.createElementBlock("svg",Lm,[l.createElementVNode("path",{fill:a.value?"currentColor":"none",stroke:"currentColor","stroke-width":"2","stroke-linejoin":"round",d:"M12 2.5l3.09 6.26 6.91 1-5 4.87 1.18 6.87L12 18.27l-6.18 3.23L7 14.63 2 9.76l6.91-1z"},null,8,Pm)])),e.compact?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("span",Rm,l.toDisplayString(a.value?"Starred":"Star"),1))],10,Om))}}),[["__scopeId","data-v-12a2f9c5"]]),Vm={class:"fe-list__head",role:"row"},$m={class:"fe-list__col fe-list__col--name",role:"columnheader"},Um={class:"fe-list__col fe-list__col--size",role:"columnheader"},Hm={class:"fe-list__col fe-list__col--mod",role:"columnheader"},Gm={class:"fe-list__body",role:"rowgroup"},jm=["onClick","onDblclick","onContextmenu","onDragstart","onDragover","onDrop","onTouchstartPassive"],qm={class:"fe-list__col fe-list__col--name"},Wm={class:"fe-list__icon","aria-hidden":"true"},Xm={class:"fe-list__name-wrap"},Zm=["title"],Km=["title"],Ym={class:"fe-list__col fe-list__col--size"},Jm={class:"fe-list__col fe-list__col--mod"},Qm={key:0,class:"fe-list__empty"},e2=l.defineComponent({__name:"ListView",props:{files:{},selected:{},clipped:{},showParentPath:{type:Boolean},locale:{},loading:{type:Boolean},starredIds:{},apiBase:{},authHeaders:{type:Function}},emits:["click-row","dbl-row","context-row","item-drag-start","item-drop-into","star-change"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i,nodeDisplayName:o}=_r(()=>r.locale);function s(C){return r.selected.has(C.path)}function c(C,A){n("click-row",C,{ctrl:A.ctrlKey||A.metaKey,shift:A.shiftKey})}function u(C){n("dbl-row",C)}function f(C,A){A.preventDefault(),A.stopPropagation(),n("context-row",C,A)}function h(C,A){n("item-drag-start",C,A)}function d(C,A){var k;C.type==="dir"&&(k=A.dataTransfer)!=null&&k.types.includes("application/x-brf-files")&&(A.preventDefault(),A.stopPropagation(),A.dataTransfer&&(A.dataTransfer.dropEffect="move"))}function p(C,A){var k;C.type==="dir"&&(k=A.dataTransfer)!=null&&k.types.includes("application/x-brf-files")&&(A.preventDefault(),A.stopPropagation(),n("item-drop-into",C,A))}let w,m=null;function _(C,A){m=C,w&&clearTimeout(w),w=setTimeout(()=>{if(m){const k=A.touches[0];n("context-row",m,{clientX:k.clientX,clientY:k.clientY,preventDefault:()=>{}})}},500)}function y(){w&&clearTimeout(w),m=null}function g(C){if(C.mime_type==="inode/storage")return"💾";if(C.type==="dir")return"📁";const A=(C.extension||"").toLowerCase();return["jpg","jpeg","png","webp","gif","bmp","avif","heic","svg"].includes(A)?"🖼":["mp4","webm","mov","mkv","avi","ogv","m4v"].includes(A)?"🎞":["mp3","wav","flac","ogg","m4a","aac","opus"].includes(A)?"🎵":A==="pdf"?"📕":["doc","docx","odt","rtf"].includes(A)?"📄":["xls","xlsx","ods","csv"].includes(A)?"📊":["ppt","pptx","odp"].includes(A)?"📽":["zip","tar","gz","bz2","7z","rar"].includes(A)?"🗜":["txt","md","log","json","yml","yaml","xml"].includes(A)?"📝":"📎"}function b(C){return C?new Date(C*(C<1e12?1e3:1)).toLocaleString():"—"}function v(C){const A=C.replace(/^[a-z][a-z0-9+.-]*:\/\//i,""),k=A.lastIndexOf("/");return k===-1?"":A.slice(0,k)}const E=l.computed(()=>r.files);return(C,A)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["fe-list",{"is-loading":e.loading,"has-star-col":!!e.apiBase||e.apiBase===""}])},[l.createElementVNode("div",Vm,[A[1]||(A[1]=l.createElementVNode("div",{class:"fe-list__col fe-list__col--star",role:"columnheader","aria-label":"Star"},null,-1)),l.createElementVNode("div",$m,l.toDisplayString(l.unref(a)("col.name")),1),l.createElementVNode("div",Um,l.toDisplayString(l.unref(a)("col.size")),1),l.createElementVNode("div",Hm,l.toDisplayString(l.unref(a)("col.modified")),1)]),l.createElementVNode("div",Gm,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(E.value,k=>{var B,T;return l.openBlock(),l.createElementBlock("div",{key:k.path,class:l.normalizeClass(["fe-list__row",{"is-selected":s(k),"is-dir":k.type==="dir","is-trash":k.trashed,"is-clipped":(B=e.clipped)==null?void 0:B.has(k.path)}]),role:"row",tabindex:"0",draggable:"true",onClick:F=>c(k,F),onDblclick:F=>u(k),onContextmenu:F=>f(k,F),onDragstart:F=>h(k,F),onDragover:F=>d(k,F),onDrop:F=>p(k,F),onTouchstartPassive:F=>_(k,F),onTouchend:y,onTouchmove:y},[l.createElementVNode("div",{class:"fe-list__col fe-list__col--star",onClick:A[0]||(A[0]=l.withModifiers(()=>{},["stop"]))},[typeof k.id=="number"&&k.type==="file"?(l.openBlock(),l.createBlock(dc,{key:0,starred:!!((T=e.starredIds)!=null&&T.has(k.id)),"node-id":k.id,"api-base":e.apiBase,"auth-headers":e.authHeaders,compact:"",onChange:F=>n("star-change",k,F)},null,8,["starred","node-id","api-base","auth-headers","onChange"])):l.createCommentVNode("",!0)]),l.createElementVNode("div",qm,[l.createElementVNode("span",Wm,l.toDisplayString(g(k)),1),l.createElementVNode("div",Xm,[l.createElementVNode("span",{class:"fe-list__name",title:k.basename},l.toDisplayString(l.unref(o)(k)),9,Zm),e.showParentPath?(l.openBlock(),l.createElementBlock("span",{key:0,class:"fe-list__parent",title:v(k.path)},l.toDisplayString(v(k.path)||"—"),9,Km)):l.createCommentVNode("",!0)])]),l.createElementVNode("div",Ym,l.toDisplayString(l.unref(i)(k.size)),1),l.createElementVNode("div",Jm,l.toDisplayString(b(k.last_modified)),1)],42,jm)}),128)),!e.loading&&E.value.length===0?(l.openBlock(),l.createElementBlock("div",Qm,l.toDisplayString(l.unref(a)("empty.folder")),1)):l.createCommentVNode("",!0)])],2))}}),t2=["onClick","onDblclick","onContextmenu","onDragstart","onDragover","onDrop","onTouchstartPassive"],r2={class:"fe-grid__thumb"},n2=["src","alt"],a2={key:1,class:"fe-grid__icon"},i2=["title"],o2=["title"],l2={class:"fe-grid__meta"},s2={key:0,class:"fe-grid__empty"},c2=l.defineComponent({__name:"GridView",props:{files:{},selected:{},clipped:{},showParentPath:{type:Boolean},locale:{},loading:{type:Boolean}},emits:["click-card","dbl-card","context-card","item-drag-start","item-drop-into"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i,nodeDisplayName:o}=_r(()=>r.locale);function s(v){return r.selected.has(v.path)}function c(v,E){n("click-card",v,{ctrl:E.ctrlKey||E.metaKey,shift:E.shiftKey})}function u(v){n("dbl-card",v)}function f(v,E){E.preventDefault(),E.stopPropagation(),n("context-card",v,E)}function h(v,E){n("item-drag-start",v,E)}function d(v,E){var C;v.type==="dir"&&(C=E.dataTransfer)!=null&&C.types.includes("application/x-brf-files")&&(E.preventDefault(),E.stopPropagation(),E.dataTransfer&&(E.dataTransfer.dropEffect="move"))}function p(v,E){var C;v.type==="dir"&&(C=E.dataTransfer)!=null&&C.types.includes("application/x-brf-files")&&(E.preventDefault(),E.stopPropagation(),n("item-drop-into",v,E))}let w,m=null;function _(v,E){m=v,w&&clearTimeout(w),w=setTimeout(()=>{if(m){const C=E.touches[0];n("context-card",m,{clientX:C.clientX,clientY:C.clientY,preventDefault:()=>{}})}},500)}function y(){w&&clearTimeout(w),m=null}function g(v){const E=v.replace(/^[a-z][a-z0-9+.-]*:\/\//i,""),C=E.lastIndexOf("/");return C===-1?"":E.slice(0,C)}function b(v){if(v.mime_type==="inode/storage")return"💾";if(v.type==="dir")return"📁";const E=(v.extension||"").toLowerCase();return["jpg","jpeg","png","webp","gif","bmp","svg"].includes(E)?"🖼":["mp4","webm","mov","mkv"].includes(E)?"🎞":["mp3","wav","flac","ogg"].includes(E)?"🎵":E==="pdf"?"📕":["doc","docx","odt"].includes(E)?"📄":["xls","xlsx","csv"].includes(E)?"📊":["ppt","pptx"].includes(E)?"📽":["zip","tar","gz","7z"].includes(E)?"🗜":"📎"}return(v,E)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["fe-grid",{"is-loading":e.loading}])},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.files,C=>{var A;return l.openBlock(),l.createElementBlock("div",{key:C.path,class:l.normalizeClass(["fe-grid__card",{"is-selected":s(C),"is-dir":C.type==="dir","is-trash":C.trashed,"is-clipped":(A=e.clipped)==null?void 0:A.has(C.path)}]),tabindex:"0",draggable:"true",onClick:k=>c(C,k),onDblclick:k=>u(C),onContextmenu:k=>f(C,k),onDragstart:k=>h(C,k),onDragover:k=>d(C,k),onDrop:k=>p(C,k),onTouchstartPassive:k=>_(C,k),onTouchend:y,onTouchmove:y},[l.createElementVNode("div",r2,[C.thumb_url?(l.openBlock(),l.createElementBlock("img",{key:0,src:C.thumb_url,alt:C.basename,loading:"lazy",draggable:"false"},null,8,n2)):(l.openBlock(),l.createElementBlock("span",a2,l.toDisplayString(b(C)),1))]),l.createElementVNode("div",{class:"fe-grid__label",title:C.basename},l.toDisplayString(l.unref(o)(C)),9,i2),e.showParentPath?(l.openBlock(),l.createElementBlock("div",{key:0,class:"fe-grid__parent",title:g(C.path)},l.toDisplayString(g(C.path)||"—"),9,o2)):l.createCommentVNode("",!0),l.createElementVNode("div",l2,l.toDisplayString(l.unref(i)(C.size)),1)],42,t2)}),128)),!e.loading&&e.files.length===0?(l.openBlock(),l.createElementBlock("div",s2,l.toDisplayString(l.unref(a)("empty.folder")),1)):l.createCommentVNode("",!0)],2))}}),u2=["data-prefers-dark"],f2={key:0,class:"fe-ctx__sep"},d2=["disabled","onClick"],h2={key:0,class:"fe-ctx__icon","aria-hidden":"true"},p2={class:"fe-ctx__label"},m2=l.defineComponent({__name:"ContextMenu",props:{locale:{},actions:{},theme:{}},emits:["select"],setup(e,{expose:t,emit:r}){const n=e,a=r;_r(()=>n.locale);const i=l.ref(!1),o=l.ref(0),s=l.ref(0),c=l.ref([]),u=l.ref(null);async function f(v,E){i.value=!0,o.value=v.clientX,s.value=v.clientY,c.value=E,await l.nextTick(),h()}function h(){const v=u.value;if(!v||typeof window>"u")return;const E=v.getBoundingClientRect(),C=8,A=window.innerWidth,k=window.innerHeight;s.value+E.height>k-C&&(s.value=Math.max(C,k-E.height-C)),o.value+E.width>A-C&&(o.value=Math.max(C,A-E.width-C))}function d(){i.value=!1}function p(v){v.disabled||(a("select",v,c.value),d())}function w(v){v.key==="Escape"&&d()}const m=l.computed(()=>n.actions.filter(v=>!v.hidden)),_=l.ref(!1);let y;function g(v){_.value=!!(v&&"matches"in v&&v.matches)}l.onMounted(()=>{var v;typeof window>"u"||(y=window.matchMedia("(prefers-color-scheme: dark)"),g(y),(v=y.addEventListener)==null||v.call(y,"change",g))}),l.onBeforeUnmount(()=>{var v;(v=y==null?void 0:y.removeEventListener)==null||v.call(y,"change",g)});const b=l.computed(()=>`fe-ctx-backdrop--theme-${n.theme||"auto"}`);return t({show:f,hide:d}),(v,E)=>(l.openBlock(),l.createBlock(l.Teleport,{to:"body"},[l.createVNode(l.Transition,{name:"fe-ctx"},{default:l.withCtx(()=>[i.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["fe-ctx-backdrop",b.value]),"data-prefers-dark":_.value?"1":"0",onClick:d,onContextmenu:l.withModifiers(d,["prevent"]),onKeydown:w},[l.createElementVNode("div",{ref_key:"menuEl",ref:u,class:"fe-ctx",role:"menu",style:l.normalizeStyle({top:s.value+"px",left:o.value+"px"}),onClick:E[0]||(E[0]=l.withModifiers(()=>{},["stop"]))},[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(m.value,(C,A)=>(l.openBlock(),l.createElementBlock(l.Fragment,{key:C.key||A},[C.divider?(l.openBlock(),l.createElementBlock("div",f2)):(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:l.normalizeClass(["fe-ctx__item",{"is-danger":C.danger,"is-disabled":C.disabled}]),disabled:C.disabled,role:"menuitem",onClick:k=>p(C)},[C.icon?(l.openBlock(),l.createElementBlock("span",h2,l.toDisplayString(C.icon),1)):l.createCommentVNode("",!0),l.createElementVNode("span",p2,l.toDisplayString(C.label),1)],10,d2))],64))),128))],4)],42,u2)):l.createCommentVNode("",!0)]),_:1})]))}}),v2={key:0,class:"fe-upload"},g2={class:"fe-upload__header"},y2={class:"fe-upload__count"},b2={class:"fe-upload__list"},w2=["title"],_2=["aria-valuenow"],x2={class:"fe-upload__meta"},k2=["onClick"],S2=["onClick"],E2=l.defineComponent({__name:"UploadProgress",props:{jobs:{},locale:{}},emits:["cancel","dismiss"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i}=_r(()=>r.locale),o=l.computed(()=>r.jobs);function s(c){switch(c.status){case"done":return a("upload.done");case"error":return`${a("upload.error")}: ${c.error??""}`;case"aborted":return a("upload.aborted");default:return a("upload.progress")}}return(c,u)=>(l.openBlock(),l.createBlock(l.Transition,{name:"fe-upload-slide"},{default:l.withCtx(()=>[o.value.length>0?(l.openBlock(),l.createElementBlock("div",v2,[l.createElementVNode("div",g2,[l.createElementVNode("strong",null,l.toDisplayString(l.unref(a)("upload.progress")),1),l.createElementVNode("span",y2,l.toDisplayString(o.value.length),1)]),l.createElementVNode("ul",b2,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(o.value,f=>(l.openBlock(),l.createElementBlock("li",{key:f.id,class:l.normalizeClass(["fe-upload__item",`is-${f.status}`])},[l.createElementVNode("div",{class:"fe-upload__name",title:f.file.name},l.toDisplayString(f.file.name),9,w2),l.createElementVNode("div",{class:"fe-upload__bar","aria-valuenow":f.percent,role:"progressbar"},[l.createElementVNode("div",{class:"fe-upload__bar-fill",style:l.normalizeStyle({width:f.percent+"%"})},null,4)],8,_2),l.createElementVNode("div",x2,[l.createElementVNode("span",null,l.toDisplayString(s(f)),1),l.createElementVNode("span",null,l.toDisplayString(l.unref(i)(f.uploadedBytes))+" / "+l.toDisplayString(l.unref(i)(f.totalBytes)),1),f.status==="uploading"||f.status==="initializing"?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-upload__cancel",onClick:h=>n("cancel",f)},l.toDisplayString(l.unref(a)("upload.cancel")),9,k2)):(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:"fe-upload__cancel",onClick:h=>n("dismiss",f)},"×",8,S2))])],2))),128))])])):l.createCommentVNode("",!0)]),_:1}))}}),C2={class:"fe-ops__row"},D2=["title"],A2=["onClick"],B2={class:"fe-ops__bar"},T2={key:0,class:"fe-ops__error"},M2=l.defineComponent({__name:"PendingOpsTray",props:{ops:{},locale:{}},emits:["dismiss"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.computed(()=>[...r.ops].sort((u,f)=>f.id-u.id));function o(u){return u.status==="done"?100:u.progress_total<=0?0:Math.min(100,Math.round(u.progress_done/u.progress_total*100))}function s(u){return u.status==="done"?"is-done":u.status==="error"?"is-error":""}function c(u){const f=u.op_type==="copy"?a("ops.copy"):u.op_type==="move"?a("ops.move"):a("ops.delete");return u.status==="pending"?`${f} (${a("ops.queued")})`:u.status==="running"?`${f} ${u.progress_done}/${u.progress_total}`:u.status==="done"?`${f} ${a("ops.done")} (${u.progress_total})`:u.status==="error"?`${f} ${a("ops.error")}`:f}return(u,f)=>i.value.length>0?(l.openBlock(),l.createBlock(l.TransitionGroup,{key:0,name:"fe-ops-slide",tag:"div",class:"fe-ops",role:"status","aria-live":"polite"},{default:l.withCtx(()=>[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(i.value,h=>(l.openBlock(),l.createElementBlock("div",{key:h.id,class:l.normalizeClass(["fe-ops__item",s(h)])},[l.createElementVNode("div",C2,[l.createElementVNode("span",{class:"fe-ops__title",title:h.target_path||h.source_dir||""},l.toDisplayString(c(h)),9,D2),h.status==="done"||h.status==="error"?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-ops__dismiss","aria-label":"Dismiss",onClick:d=>n("dismiss",h.id)},"×",8,A2)):l.createCommentVNode("",!0)]),l.createElementVNode("div",B2,[l.createElementVNode("div",{class:"fe-ops__bar-fill",style:l.normalizeStyle({width:o(h)+"%"})},null,4)]),h.status==="error"&&h.error_message?(l.openBlock(),l.createElementBlock("div",T2,l.toDisplayString(h.error_message),1)):l.createCommentVNode("",!0)],2))),128))]),_:1})):l.createCommentVNode("",!0)}}),I2={key:0,class:"fe-modal__head"},z2={class:"fe-modal__title"},F2={class:"fe-modal__body"},N2={key:1,class:"fe-modal__actions"},si=l.defineComponent({__name:"Modal",props:{open:{type:Boolean},title:{},size:{},closeOnBackdrop:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,a=l.ref(null);l.watch(()=>r.open,s=>{s?(document.addEventListener("keydown",i),setTimeout(()=>{var u;const c=(u=a.value)==null?void 0:u.querySelector('input,select,textarea,button,[tabindex]:not([tabindex="-1"])');c==null||c.focus()},30)):document.removeEventListener("keydown",i)}),l.onBeforeUnmount(()=>document.removeEventListener("keydown",i));function i(s){s.key==="Escape"&&n("close")}function o(){r.closeOnBackdrop!==!1&&n("close")}return(s,c)=>(l.openBlock(),l.createBlock(l.Transition,{name:"fe-modal"},{default:l.withCtx(()=>[e.open?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["fe fe-modal__backdrop",[{"fe-modal__backdrop--chromeless":e.chromeless},e.theme==="light"?"fe--theme-light":"",e.theme==="dark"?"fe--theme-dark":""]]),role:"presentation",onClick:o},[l.createElementVNode("div",{ref_key:"cardEl",ref:a,class:l.normalizeClass(["fe-modal__card",[`fe-modal__card--${e.size||"md"}`,e.chromeless&&"fe-modal__card--chromeless"]]),role:"dialog","aria-modal":"true",onClick:c[1]||(c[1]=l.withModifiers(()=>{},["stop"]))},[e.title&&!e.chromeless?(l.openBlock(),l.createElementBlock("header",I2,[l.createElementVNode("h2",z2,l.toDisplayString(e.title),1),l.createElementVNode("button",{type:"button",class:"fe-modal__close","aria-label":"Close",onClick:c[0]||(c[0]=u=>n("close"))},"×")])):l.createCommentVNode("",!0),l.createElementVNode("div",F2,[l.renderSlot(s.$slots,"default")]),s.$slots.actions&&!e.chromeless?(l.openBlock(),l.createElementBlock("footer",N2,[l.renderSlot(s.$slots,"actions")])):l.createCommentVNode("",!0)],2)],2)):l.createCommentVNode("",!0)]),_:3}))}}),O2=["placeholder","onKeydown"],L2={key:0,class:"fe-form__error"},P2=l.defineComponent({__name:"NewFolderModal",props:{open:{type:Boolean},locale:{}},emits:["close","submit"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.ref(""),o=l.ref(null);l.watch(()=>r.open,c=>{c&&(i.value="",o.value=null)});function s(){const c=i.value.trim();if(!c){o.value=a("modal.newfolder.placeholder");return}if(/[\\/]/.test(c)||c==="."||c===".."){o.value="Geçersiz karakter";return}n("submit",c)}return(c,u)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.newfolder.title"),size:"sm",onClose:u[2]||(u[2]=f=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:u[1]||(u[1]=f=>n("close"))},l.toDisplayString(l.unref(a)("modal.newfolder.cancel")),1),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:s},l.toDisplayString(l.unref(a)("modal.newfolder.create")),1)]),default:l.withCtx(()=>[l.createElementVNode("form",{onSubmit:l.withModifiers(s,["prevent"])},[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=f=>i.value=f),type:"text",class:"fe-input",placeholder:l.unref(a)("modal.newfolder.placeholder"),autocomplete:"off",onKeydown:l.withKeys(l.withModifiers(s,["prevent"]),["enter"])},null,40,O2),[[l.vModelText,i.value]]),o.value?(l.openBlock(),l.createElementBlock("p",L2,l.toDisplayString(o.value),1)):l.createCommentVNode("",!0)],32)]),_:1},8,["open","title"]))}}),R2=["onKeydown"],V2=l.defineComponent({__name:"RenameModal",props:{open:{type:Boolean},locale:{},currentName:{}},emits:["close","submit"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.ref("");l.watch(()=>[r.open,r.currentName],([s,c])=>{s&&(i.value=c)});function o(){const s=i.value.trim();s&&(/[\\/]/.test(s)||s==="."||s===".."||n("submit",s))}return(s,c)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.rename.title"),size:"sm",onClose:c[2]||(c[2]=u=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:c[1]||(c[1]=u=>n("close"))},l.toDisplayString(l.unref(a)("modal.rename.cancel")),1),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:o},l.toDisplayString(l.unref(a)("modal.rename.save")),1)]),default:l.withCtx(()=>[l.createElementVNode("form",{onSubmit:l.withModifiers(o,["prevent"])},[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>i.value=u),type:"text",class:"fe-input",autocomplete:"off",onKeydown:l.withKeys(l.withModifiers(o,["prevent"]),["enter"])},null,40,R2),[[l.vModelText,i.value]])],32)]),_:1},8,["open","title"]))}}),$2=l.defineComponent({__name:"DeleteConfirmModal",props:{open:{type:Boolean},locale:{},count:{}},emits:["close","confirm"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale);return(i,o)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.delete.title"),size:"sm",onClose:o[2]||(o[2]=s=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:o[0]||(o[0]=s=>n("close"))},l.toDisplayString(l.unref(a)("modal.delete.cancel")),1),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--danger",onClick:o[1]||(o[1]=s=>n("confirm"))},l.toDisplayString(l.unref(a)("modal.delete.confirm")),1)]),default:l.withCtx(()=>[l.createElementVNode("p",null,l.toDisplayString(l.unref(a)("modal.delete.message",{count:e.count})),1)]),_:1},8,["open","title"]))}}),U2={class:"fe-form__row"},H2={class:"fe-form__row fe-form__row--stack"},G2={class:"fe-form__row fe-form__row--stack"},j2={key:1,class:"fe-share-result"},q2={class:"fe-share-result__row"},W2={class:"fe-share-result__copy"},X2=["value"],Z2={key:0,class:"fe-share-result__row"},K2={class:"fe-share-result__copy"},Y2=["value"],J2={class:"fe-share-result__row"},Q2={class:"fe-share-result__copy"},e4=["value"],t4=l.defineComponent({__name:"ShareModal",props:{open:{type:Boolean},locale:{},share:{}},emits:["close","submit","toast"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale),i=l.ref(!1),o=l.ref(""),s=l.ref("");l.watch(()=>r.open,d=>{d&&(i.value=!1,o.value="",s.value="")});function c(){n("submit",{password:i.value,expires_at:o.value?new Date(o.value).toISOString():null,max_downloads:s.value?Number(s.value):null})}async function u(d,p){try{await navigator.clipboard.writeText(d),n("toast",p)}catch{}}function f(d){return`'${d.replace(/'/g,"'\\''")}'`}const h=l.computed(()=>{const d=r.share;if(!d)return"";let p=d.url;return d.password_pin&&(p+=(p.includes("?")?"&":"?")+"pin="+encodeURIComponent(d.password_pin)),`curl -fSL ${d.filename?`-o ${f(d.filename)} `:"-OJ "}${f(p)}`});return(d,p)=>(l.openBlock(),l.createBlock(si,{open:e.open,title:l.unref(a)("modal.share.title"),size:"md",onClose:p[7]||(p[7]=w=>n("close"))},{actions:l.withCtx(()=>[l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[6]||(p[6]=w=>n("close"))},l.toDisplayString(e.share?"Kapat":l.unref(a)("modal.share.cancel")),1),e.share?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:c},l.toDisplayString(l.unref(a)("modal.share.create")),1))]),default:l.withCtx(()=>[e.share?(l.openBlock(),l.createElementBlock("div",j2,[l.createElementVNode("div",q2,[p[8]||(p[8]=l.createElementVNode("label",null,"Link",-1)),l.createElementVNode("div",W2,[l.createElementVNode("input",{value:e.share.url,readonly:"",class:"fe-input"},null,8,X2),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[3]||(p[3]=w=>u(e.share.url,l.unref(a)("modal.share.url_copied")))},l.toDisplayString(l.unref(a)("modal.share.copy")),1)])]),e.share.password_pin?(l.openBlock(),l.createElementBlock("div",Z2,[p[9]||(p[9]=l.createElementVNode("label",null,"PIN",-1)),l.createElementVNode("div",K2,[l.createElementVNode("input",{value:e.share.password_pin,readonly:"",class:"fe-input fe-input--mono"},null,8,Y2),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[4]||(p[4]=w=>u(e.share.password_pin,l.unref(a)("modal.share.pin_copied")))},l.toDisplayString(l.unref(a)("modal.share.copy")),1)])])):l.createCommentVNode("",!0),l.createElementVNode("div",J2,[p[10]||(p[10]=l.createElementVNode("label",null,"CLI",-1)),l.createElementVNode("div",Q2,[l.createElementVNode("input",{value:h.value,readonly:"",class:"fe-input fe-input--mono"},null,8,e4),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:p[5]||(p[5]=w=>u(h.value,l.unref(a)("modal.share.cli_copied")))},l.toDisplayString(l.unref(a)("modal.share.copy")),1)])])])):(l.openBlock(),l.createElementBlock("form",{key:0,class:"fe-form",onSubmit:l.withModifiers(c,["prevent"])},[l.createElementVNode("label",U2,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=w=>i.value=w),type:"checkbox"},null,512),[[l.vModelCheckbox,i.value]]),l.createElementVNode("span",null,l.toDisplayString(l.unref(a)("modal.share.pin")),1)]),l.createElementVNode("label",H2,[l.createElementVNode("span",null,l.toDisplayString(l.unref(a)("modal.share.expires")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[1]||(p[1]=w=>o.value=w),type:"datetime-local",class:"fe-input"},null,512),[[l.vModelText,o.value]])]),l.createElementVNode("label",G2,[l.createElementVNode("span",null,l.toDisplayString(l.unref(a)("modal.share.max_downloads")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":p[2]||(p[2]=w=>s.value=w),type:"number",min:"1",class:"fe-input"},null,512),[[l.vModelText,s.value]])])],32))]),_:1},8,["open","title"]))}}),r4={key:0,class:"fe-preview"},n4=["src","alt"],a4=["src"],i4=["src"],o4=["data"],l4={class:"fe-preview__fallback"},s4=["href"],c4={key:0,class:"fe-preview__fallback"},u4={key:1,class:"fe-preview__fallback"},f4=["href"],d4={key:2,class:"fe-preview__md-split"},h4={class:"fe-preview__md-split-bar"},p4={key:0,class:"fe-preview__md-split-error"},m4=["disabled"],v4={class:"fe-preview__md-split-body"},g4=["onKeydown"],y4=["innerHTML"],b4={key:3,class:"fe-preview__fallback"},w4=["href"],_4=["innerHTML"],x4={key:5,class:"fe-preview__pre"},k4={key:0,class:"fe-preview__fallback"},S4=["href"],E4={key:1,class:"fe-preview__fallback"},C4={key:0,class:"fe-preview__fallback"},D4={key:1,class:"fe-preview__fallback"},A4=["href"],B4={key:2,class:"fe-preview__fallback"},T4=["href"],M4={key:3,class:"fe-preview__code-wrap"},I4={class:"fe-preview__code-toolbar"},z4={class:"fe-preview__code-lang"},F4={key:0,class:"fe-preview__code-status"},N4={key:1,class:"fe-preview__code-status fe-preview__code-status--ok"},O4=["title"],L4={key:3,class:"fe-preview__code-status"},P4=["disabled"],R4={key:0,class:"fe-preview__pre fe-preview__code hljs"},V4=["innerHTML"],$4=["data-lang"],U4={key:0,class:"fe-preview__fallback"},H4=["href"],G4={key:8,class:"fe-preview__fallback"},j4=["href"],q4=["href"],zo=1e6,hc="fe-onlyoffice-api-js",pc=l.defineComponent({__name:"PreviewModal",props:{open:{type:Boolean},locale:{},file:{},previewUrl:{type:Function},downloadUrl:{type:Function},onlyOfficeBase:{},onlyOfficeConfigEndpoint:{},saveTextEndpoint:{},openMode:{},authHeaders:{type:Function},authCredentials:{},drawioUrl:{},pdfWorkerUrl:{},pdfSaveUrl:{},viewerBaseUrl:{},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,{t:a}=_r(()=>r.locale);function i(Ae){return((Ae==null?void 0:Ae.extension)||"").toLowerCase()}const o=["jpg","jpeg","png","webp","gif","bmp","avif","svg","heic"],s=["mp4","webm","mov","mkv","m4v","ogv"],c=["mp3","wav","ogg","flac","m4a","aac","opus"],u={md:"markdown",markdown:"markdown",txt:"plaintext",log:"plaintext",js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",vue:"xml",svelte:"xml",html:"xml",htm:"xml",xml:"xml",svg:"xml",css:"css",scss:"scss",sass:"scss",less:"less",json:"json",jsonc:"json",yml:"yaml",yaml:"yaml",php:"php",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",cpp:"cpp",c:"c",h:"cpp",hpp:"cpp",cs:"csharp",dart:"dart",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",sql:"sql",toml:"ini",ini:"ini",conf:"ini",env:"bash",cfg:"ini",dockerfile:"dockerfile",graphql:"graphql",gql:"graphql",diff:"diff",patch:"diff"},f=["txt","log"],h=["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf"],d={glb:()=>Promise.resolve().then(()=>wa),gltf:()=>Promise.resolve().then(()=>wa),obj:()=>Promise.resolve().then(()=>wa),stl:()=>Promise.resolve().then(()=>wa),fbx:()=>Promise.resolve().then(()=>wa),"3ds":()=>Promise.resolve().then(()=>wa),epub:()=>Promise.resolve().then(()=>f3),mmd:()=>Promise.resolve().then(()=>yc),mermaid:()=>Promise.resolve().then(()=>yc),drawio:()=>Promise.resolve().then(()=>bc),dio:()=>Promise.resolve().then(()=>bc),tif:()=>Promise.resolve().then(()=>wc),tiff:()=>Promise.resolve().then(()=>wc),psd:()=>Promise.resolve().then(()=>T3),ipynb:()=>Promise.resolve().then(()=>X3),csv:()=>Promise.resolve().then(()=>xc),tsv:()=>Promise.resolve().then(()=>xc),zip:()=>Promise.resolve().then(()=>vg)},p=l.computed(()=>{const Ae=i(r.file);if(!Ae)return"other";if(o.includes(Ae))return"image";if(s.includes(Ae))return"video";if(c.includes(Ae))return"audio";if(Ae==="pdf")return"pdf";const I=r.openMode!=="view";return Ae==="md"||Ae==="markdown"?"markdown":Ae in u?"code":Ae in d?"viewer":h.includes(Ae)?"office":f.includes(Ae)?I?"code":"text":"other"}),w=l.shallowRef(null),m=l.ref(null),_=l.ref(!1);async function y(Ae){w.value=null,m.value=null;const I=d[Ae];if(I)try{const J=await I();w.value=J.default??J}catch(J){m.value=J instanceof Error?J.message:"viewer load failed",Ae==="pdf"&&(_.value=!0)}}function g(){_.value=!0}const b=l.computed(()=>{var J;const Ae=i(r.file),I={url:B.value,ext:Ae,mime:(J=r.file)==null?void 0:J.mime_type,t:a,authHeaders:r.authHeaders,authCredentials:r.authCredentials};return r.file&&(I.filePath=F(r.file.path),(Ae==="zip"||Ae==="rar"||Ae==="7z"||Ae==="tar"||Ae==="gz"||Ae==="tgz")&&(I.filePath=r.file.path)),(Ae==="drawio"||Ae==="dio")&&(I.drawioUrl=r.drawioUrl??void 0,I.saveUrl=r.saveTextEndpoint??void 0,I.readOnly=r.openMode==="view"),Ae==="pdf"&&(I.pdfWorkerUrl=r.pdfWorkerUrl??void 0,I.pdfSaveUrl=r.pdfSaveUrl??void 0),I});function v(){C(r.openMode||"edit")}function E(){C("edit")}function C(Ae){if(!r.file)return;const I=i(r.file),J=r.viewerBaseUrl||"/files/edit",de=J.includes("?")?"&":"?",Se=`${J}${de}path=${encodeURIComponent(r.file.path)}&type=${encodeURIComponent(I)}&mode=${encodeURIComponent(Ae)}`;window.open(Se,"_blank","noopener")}const A=new Set(["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf","drawio","dio","mmd","mermaid","md","markdown","txt","log","json","jsonc","yaml","yml","xml","svg","html","htm","js","mjs","cjs","ts","tsx","jsx","vue","svelte","css","scss","sass","less","php","py","rb","go","rs","java","kt","swift","cpp","c","h","hpp","cs","dart","sh","bash","sql","toml","ini","conf","cfg","env","dockerfile","graphql","gql"]),k=l.computed(()=>!!r.file&&A.has(i(r.file))),B=l.computed(()=>r.file?r.previewUrl(r.file.path):""),T=l.computed(()=>r.file?r.downloadUrl(r.file.path):"");function F(Ae){const I=Ae.indexOf("://");return I===-1?Ae:Ae.slice(I+3)}const V=l.ref(!1),L=l.ref(null),H=l.ref(""),X=l.ref(!1),W=l.ref(!1),Z=l.ref(!1);let Q,K;function ue(){W.value=!0,Q&&clearTimeout(Q),Q=setTimeout(()=>{he(H.value)},250),K&&clearTimeout(K),K=setTimeout(()=>{ne()},1500)}async function ne(){if(!(!r.saveTextEndpoint||!r.file||Z.value)){Z.value=!0,L.value=null;try{const Ae={"Content-Type":"application/json",...await(r.authHeaders??(()=>({})))()},I=await fetch(r.saveTextEndpoint,{method:"POST",headers:Ae,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:F(r.file.path),content:H.value})});if(!I.ok)throw new Error(`save failed: ${I.status} ${await I.text()}`);W.value=!1}catch(Ae){L.value=Ae instanceof Error?Ae.message:String(Ae)}finally{Z.value=!1}}}async function fe(Ae){V.value=!0,L.value=null,H.value="",X.value=!1;try{const I={};r.authHeaders&&Object.assign(I,r.authHeaders());const J=await fetch(Ae,{credentials:r.authCredentials||"include",headers:I});if(!J.ok)throw new Error(`${J.status} ${J.statusText}`);if(Number(J.headers.get("content-length")||"0")>zo){X.value=!0;return}const Se=await J.text();Se.length>zo?(X.value=!0,H.value=Se.slice(0,zo)):H.value=Se}catch(I){L.value=I instanceof Error?I.message:String(I)}finally{V.value=!1}}const re=l.ref(""),ye=l.ref(null);async function he(Ae){try{const I=await import("markdown-it").catch(()=>null);if(!I){re.value="";return}const J=I.default??I,Se=new J({html:!0,linkify:!0,breaks:!0,typographer:!0}).render(Ae);re.value=ke(Se),await new Promise(P=>setTimeout(P,0)),await Ee()}catch(I){re.value="",L.value=I instanceof Error?I.message:String(I)}}function ke(Ae){return Ae.replace(/<\s*script\b[^<]*(?:(?!<\s*\/\s*script\s*>)<[^<]*)*<\s*\/\s*script\s*>/gi,"").replace(/<\s*iframe\b[\s\S]*?<\s*\/\s*iframe\s*>/gi,"").replace(/<\s*object\b[\s\S]*?<\s*\/\s*object\s*>/gi,"").replace(/<\s*embed\b[^>]*>/gi,"").replace(/\son\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/(href|src|action|formaction|xlink:href)\s*=\s*(?:"\s*javascript:[^"]*"|'\s*javascript:[^']*')/gi,'$1="#"')}async function Ee(){var Se,P,j;if(!ye.value)return;const Ae=ye.value,I=Array.from(Ae.querySelectorAll("pre > code"));if(I.length===0)return;let J,de;for(const M of I){const pe=M.className||"",le=/\blanguage-mermaid\b/.test(pe)||/\blanguage-mmd\b/.test(pe),S=/\blanguage-math\b/.test(pe)||/\blanguage-latex\b/.test(pe)||/\blanguage-tex\b/.test(pe);if(le){if(J===void 0)try{const ae=await import("mermaid");J=ae.default??ae,(Se=J.initialize)==null||Se.call(J,{startOnLoad:!1,securityLevel:"strict"})}catch{J=null}if(!J)continue;try{const ae=`filex-md-mermaid-${Math.random().toString(36).slice(2)}`,{svg:ce}=await J.render(ae,M.textContent||""),N=document.createElement("div");N.className="fe-preview__md-mermaid",N.innerHTML=ce,(P=M.parentElement)==null||P.replaceWith(N)}catch{}}else if(S){if(de===void 0)try{const ae=await Promise.resolve().then(()=>e8);de=ae.default??ae}catch{de=null}if(!de)continue;try{const ae=de.renderToString(M.textContent||"",{displayMode:!0,throwOnError:!1}),ce=document.createElement("div");ce.className="fe-preview__md-math",ce.innerHTML=ae,(j=M.parentElement)==null||j.replaceWith(ce)}catch{}}}}const me=l.ref("");async function te(Ae,I){try{const J=await e0();if(!J){me.value="";return}const de=J.default??J;if(de.getLanguage(I)){const Se=de.highlight(Ae,{language:I,ignoreIllegals:!0});me.value=Se.value}else{const Se=de.highlightAuto(Ae);me.value=Se.value}}catch(J){me.value="",L.value=J instanceof Error?J.message:String(J)}}const se=l.ref(null);let ie=null,_e;const He=l.ref(!1),je=l.ref(!1),Ve=l.ref(!1),ge=l.ref(null);function Ce(){if(ie){try{ie.dispose()}catch{}ie=null}He.value=!1,Ve.value=!1,ge.value=null}function ve(Ae){return{js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",json:"json",jsonc:"json",css:"css",scss:"scss",sass:"scss",less:"less",html:"html",htm:"html",vue:"html",svelte:"html",xml:"xml",svg:"xml",md:"markdown",markdown:"markdown",php:"php",py:"python",yml:"yaml",yaml:"yaml",go:"go",rs:"rust",sql:"sql",cpp:"cpp",c:"c",h:"cpp",hpp:"cpp",sh:"shell",bash:"shell",dockerfile:"dockerfile",toml:"ini",ini:"ini",conf:"ini",cfg:"ini"}[Ae]??"plaintext"}async function Oe(Ae,I){var de;const J=await Qi();if(!J||!se.value)return!1;try{Ce();const Se=!!r.saveTextEndpoint&&r.openMode!=="view",P=r.theme==="dark"?!0:r.theme==="light"?!1:(de=window.matchMedia)==null?void 0:de.call(window,"(prefers-color-scheme: dark)").matches;return ie=J.editor.create(se.value,{value:Ae,language:ve(I),readOnly:!Se,theme:P?"vs-dark":"vs",automaticLayout:!0,minimap:{enabled:!1},fontSize:13}),Se&&(ie.addCommand(J.KeyMod.CtrlCmd|J.KeyCode.KeyS,()=>void tt()),ie.onDidChangeModelContent(()=>{_e&&clearTimeout(_e),_e=setTimeout(()=>{tt()},1500)})),He.value=!0,!0}catch(Se){return L.value=`Monaco mount fail: ${Se.message}`,!1}}async function tt(){if(!(!r.saveTextEndpoint||!r.file)&&r.openMode!=="view"&&!je.value){je.value=!0,Ve.value=!1,ge.value=null;try{const Ae=ie?ie.getValue():"",I={"Content-Type":"application/json"};r.authHeaders&&Object.assign(I,r.authHeaders());const J=await fetch(r.saveTextEndpoint,{method:"POST",headers:I,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:F(r.file.path),content:Ae})});if(!J.ok){const de=await J.text().catch(()=>"");throw new Error(`${J.status} ${J.statusText}${de?" — "+de.slice(0,150):""}`)}Ve.value=!0,setTimeout(()=>{Ve.value=!1},2500)}catch(Ae){ge.value=Ae.message}finally{je.value=!1}}}async function at(Ae,I,J){if(H.value="",re.value="",me.value="",L.value=null,ut.value=null,w.value=null,m.value=null,_.value=!1,gt(),Ce(),!(!Ae||!I)){if(J==="viewer"){await y(i(r.file));return}if(J==="markdown"||J==="code"||J==="text"){if(await fe(I),X.value)return;if(J==="markdown"){await he(H.value);return}const de=u[i(r.file)]||"";Io()?(await new Promise(j=>setTimeout(j,0)),await Oe(H.value,i(r.file))||await te(H.value,de)):(J==="code"&&await te(H.value,de),Qi().then(async P=>{P&&r.open&&(await new Promise(j=>setTimeout(j,0)),await Oe(H.value,i(r.file)))}))}else J==="office"&&(await new Promise(de=>setTimeout(de,0)),await vt())}}l.watch(()=>[r.open,B.value,p.value,r.openMode],([Ae,I,J])=>{at(Ae,I,J)}),l.onMounted(()=>{l.nextTick(()=>{r.open&&at(r.open,B.value,p.value)})});const st=l.computed(()=>u[i(r.file)]||"plaintext"),It=l.ref(null),ut=l.ref(null);let ft=null;async function vt(){if(ut.value=null,!(!r.file||p.value!=="office")){if(!r.onlyOfficeConfigEndpoint){ut.value="OnlyOffice yapılandırması yok";return}if(It.value)try{const Ae={"Content-Type":"application/json"};r.authHeaders&&Object.assign(Ae,r.authHeaders());const I=await fetch(r.onlyOfficeConfigEndpoint,{method:"POST",headers:Ae,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:r.file.path,mode:r.openMode||"edit"})});if(!I.ok)throw new Error(`Config fetch ${I.status}: ${(await I.text()).slice(0,200)}`);const{config:J,documentServerUrl:de}=await I.json();await Ct(de),gt();const Se="fe-onlyoffice-mount";It.value.id=Se,J.events={onError:j=>{ut.value=pt(j)}};const P=window;if(!P.DocsAPI||!P.DocsAPI.DocEditor)throw new Error("DocsAPI not available after script load");ft=new P.DocsAPI.DocEditor(Se,J)}catch(Ae){ut.value=Ae instanceof Error?Ae.message:String(Ae)}}}function gt(){var Ae;try{(Ae=ft==null?void 0:ft.destroyEditor)==null||Ae.call(ft)}catch{}ft=null}l.onBeforeUnmount(()=>{gt(),Ce()});function pt(Ae){if(typeof Ae=="string")return Ae;const I=Ae;if(I!=null&&I.data&&typeof I.data=="object"){const J=I.data;if(typeof J.errorDescription=="string")return J.errorDescription;if(typeof J.message=="string")return J.message;if(J.errorCode!==void 0)return`OnlyOffice error ${J.errorCode}`}if(typeof(I==null?void 0:I.data)=="string")return I.data;if(typeof(I==null?void 0:I.errorDescription)=="string")return I.errorDescription;if(typeof(I==null?void 0:I.message)=="string")return I.message;try{return JSON.stringify(Ae)}catch{return"OnlyOffice error"}}function Ct(Ae){return new Promise((I,J)=>{var P;if((P=window.DocsAPI)!=null&&P.DocEditor){I();return}const de=document.getElementById(hc);if(de){de.addEventListener("load",()=>I()),de.addEventListener("error",()=>J(new Error("OnlyOffice api.js load failed")));return}const Se=document.createElement("script");Se.id=hc,Se.src=`${Ae.replace(/\/$/,"")}/web-apps/apps/api/documents/api.js`,Se.async=!0,Se.onload=()=>I(),Se.onerror=()=>J(new Error("OnlyOffice api.js load failed")),document.head.appendChild(Se)})}return(Ae,I)=>{var J;return l.openBlock(),l.createBlock(si,{open:e.open,size:"xl",title:((J=e.file)==null?void 0:J.basename)||"",chromeless:e.chromeless,theme:e.theme,onClose:I[2]||(I[2]=de=>n("close"))},{actions:l.withCtx(()=>[e.file&&e.openMode==="view"&&k.value?(l.openBlock(),l.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:E},"✏ Düzenle")):l.createCommentVNode("",!0),e.file?(l.openBlock(),l.createElementBlock("button",{key:1,type:"button",class:"fe-btn",onClick:v},"↗ "+l.toDisplayString(l.unref(a)("viewer.open_in_new_tab")),1)):l.createCommentVNode("",!0),e.file?(l.openBlock(),l.createElementBlock("a",{key:2,href:T.value,class:"fe-btn"},l.toDisplayString(l.unref(a)("viewer.download")),9,q4)):l.createCommentVNode("",!0),l.createElementVNode("button",{type:"button",class:"fe-btn",onClick:I[1]||(I[1]=de=>n("close"))},"Kapat")]),default:l.withCtx(()=>[e.file?(l.openBlock(),l.createElementBlock("div",r4,[p.value==="image"?(l.openBlock(),l.createElementBlock("img",{key:0,src:B.value,alt:e.file.basename,class:"fe-preview__image"},null,8,n4)):p.value==="video"?(l.openBlock(),l.createElementBlock("video",{key:1,src:B.value,controls:"",preload:"metadata",class:"fe-preview__video"},null,8,a4)):p.value==="audio"?(l.openBlock(),l.createElementBlock("audio",{key:2,src:B.value,controls:"",class:"fe-preview__audio"},null,8,i4)):p.value==="pdf"?(l.openBlock(),l.createElementBlock("object",{key:3,data:B.value,type:"application/pdf",class:"fe-preview__iframe"},[l.createElementVNode("div",l4,[I[3]||(I[3]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"📕",-1)),I[4]||(I[4]=l.createElementVNode("p",null,"Tarayıcı PDF'i inline açamadı.",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary",target:"_blank",rel:"noopener"},"PDF'i Yeni Sekmede Aç",8,s4)])],8,o4)):p.value==="markdown"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:4},[V.value?(l.openBlock(),l.createElementBlock("div",c4,l.toDisplayString(l.unref(a)("viewer.loading")),1)):X.value?(l.openBlock(),l.createElementBlock("div",u4,[I[5]||(I[5]=l.createTextVNode(" Dosya çok büyük (>1 MB). ",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn"},l.toDisplayString(l.unref(a)("viewer.download")),9,f4)])):e.openMode==="edit"&&e.saveTextEndpoint?(l.openBlock(),l.createElementBlock("div",d4,[l.createElementVNode("div",h4,[I[6]||(I[6]=l.createElementVNode("span",{class:"fe-preview__md-split-label"},"MARKDOWN",-1)),L.value?(l.openBlock(),l.createElementBlock("span",p4,l.toDisplayString(L.value),1)):l.createCommentVNode("",!0),l.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",disabled:!W.value||Z.value,onClick:ne},l.toDisplayString(Z.value?"Kaydediliyor…":W.value?"Kaydet (Ctrl+S)":"Kaydedildi"),9,m4)]),l.createElementVNode("div",v4,[l.withDirectives(l.createElementVNode("textarea",{class:"fe-preview__md-split-input","onUpdate:modelValue":I[0]||(I[0]=de=>H.value=de),onInput:ue,onKeydown:[l.withKeys(l.withModifiers(ne,["ctrl","prevent"]),["s"]),l.withKeys(l.withModifiers(ne,["meta","prevent"]),["s"])],spellcheck:"false",placeholder:"# Markdown buraya…"},null,40,g4),[[l.vModelText,H.value]]),l.createElementVNode("div",{ref_key:"markdownEl",ref:ye,class:"fe-preview__md-split-output fe-preview__md",innerHTML:re.value},null,8,y4)])])):L.value?(l.openBlock(),l.createElementBlock("div",b4,[l.createElementVNode("p",null,l.toDisplayString(L.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},l.toDisplayString(l.unref(a)("viewer.download")),9,w4)])):re.value?(l.openBlock(),l.createElementBlock("div",{key:4,ref_key:"markdownEl",ref:ye,class:"fe-preview__md",innerHTML:re.value},null,8,_4)):(l.openBlock(),l.createElementBlock("pre",x4,l.toDisplayString(H.value),1))],64)):p.value==="viewer"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:5},[m.value&&!_.value?(l.openBlock(),l.createElementBlock("div",k4,[I[7]||(I[7]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⚠️",-1)),l.createElementVNode("p",null,l.toDisplayString(m.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},l.toDisplayString(l.unref(a)("viewer.download")),9,S4)])):w.value?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(w.value),l.mergeProps({key:2},b.value,{class:"fe-preview__viewer",onFallback:g}),null,16)):(l.openBlock(),l.createElementBlock("div",E4,[I[8]||(I[8]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(l.unref(a)("viewer.loading")),1)]))],64)):p.value==="code"||p.value==="text"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:6},[V.value?(l.openBlock(),l.createElementBlock("div",C4,l.toDisplayString(l.unref(a)("viewer.loading")),1)):X.value?(l.openBlock(),l.createElementBlock("div",D4,[I[9]||(I[9]=l.createTextVNode(" Dosya çok büyük (>1 MB). ",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn"},l.toDisplayString(l.unref(a)("viewer.download")),9,A4)])):L.value?(l.openBlock(),l.createElementBlock("div",B4,[l.createElementVNode("p",null,l.toDisplayString(L.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},l.toDisplayString(l.unref(a)("viewer.download")),9,T4)])):(l.openBlock(),l.createElementBlock("div",M4,[l.createElementVNode("div",I4,[l.createElementVNode("span",z4,l.toDisplayString(st.value),1),!He.value&&me.value?(l.openBlock(),l.createElementBlock("span",F4,l.toDisplayString(e.saveTextEndpoint?"Editör yükleniyor…":"Salt okunur"),1)):l.createCommentVNode("",!0),Ve.value?(l.openBlock(),l.createElementBlock("span",N4,"✓ Kaydedildi")):l.createCommentVNode("",!0),ge.value?(l.openBlock(),l.createElementBlock("span",{key:2,class:"fe-preview__code-status fe-preview__code-status--err",title:ge.value},"✗ Hata",8,O4)):l.createCommentVNode("",!0),e.openMode==="view"?(l.openBlock(),l.createElementBlock("span",L4,"Salt okunur")):e.saveTextEndpoint&&He.value?(l.openBlock(),l.createElementBlock("button",{key:4,type:"button",class:"fe-btn fe-btn--primary",disabled:je.value,onClick:tt},l.toDisplayString(je.value?"Kaydediliyor…":"Kaydet (Ctrl+S)"),9,P4)):l.createCommentVNode("",!0)]),l.createElementVNode("div",{ref_key:"monacoEl",ref:se,class:l.normalizeClass(["fe-preview__code-editor",{"is-hidden":!He.value}])},null,2),!He.value&&me.value?(l.openBlock(),l.createElementBlock("pre",R4,[l.createElementVNode("code",{class:l.normalizeClass(`language-${st.value}`),innerHTML:me.value},null,10,V4)])):!He.value&&!me.value?(l.openBlock(),l.createElementBlock("pre",{key:1,class:"fe-preview__pre","data-lang":st.value},l.toDisplayString(H.value),9,$4)):l.createCommentVNode("",!0)]))],64)):p.value==="office"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:7},[ut.value?(l.openBlock(),l.createElementBlock("div",U4,[I[10]||(I[10]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"📄",-1)),l.createElementVNode("p",null,l.toDisplayString(ut.value),1),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},"İndir",8,H4)])):(l.openBlock(),l.createElementBlock("div",{key:1,ref_key:"officeEl",ref:It,class:"fe-preview__office"},null,512))],64)):(l.openBlock(),l.createElementBlock("div",G4,[I[11]||(I[11]=l.createElementVNode("span",{class:"fe-preview__fallback-icon"},"📎",-1)),I[12]||(I[12]=l.createElementVNode("p",null,"Bu dosya tipi için önizleme henüz yok.",-1)),l.createElementVNode("a",{href:T.value,class:"fe-btn fe-btn--primary"},"İndir",8,j4)]))])):l.createCommentVNode("",!0)]),_:1},8,["open","title","chromeless","theme"])}}}),W4={class:"filex-cv"},X4={class:"filex-cv__head"},Z4={key:0,class:"filex-cv__msg"},K4={key:1,class:"filex-cv__msg filex-cv__ok"},Y4={class:"filex-cv__src"},J4=["placeholder"],Q4={class:"filex-cv__list"},ev=["onClick"],tv={key:0,class:"filex-cv__empty"},rv={key:0,class:"filex-cv__err"},nv={class:"filex-cv__foot"},av=["disabled"],iv=["src"],ov=xr(l.defineComponent({__name:"ConvertModal",props:{convertUrl:{},fileName:{},fetchBytes:{type:Function},upload:{type:Function},t:{type:Function}},emits:["close","done"],setup(e,{emit:t}){const r=e,n=t,a=l.ref(null),i=l.ref("loading"),o=l.ref(null),s=l.ref([]),c=l.ref(""),u=l.ref(null),f=l.computed(()=>(r.fileName.split(".").pop()||"").toLowerCase()),h=l.computed(()=>{const E=s.value.filter(C=>C.from);return E.find(C=>(C.ext||"").toLowerCase()===f.value)||E.find(C=>(C.format||"").toLowerCase()===f.value)||null}),d=l.computed(()=>{const E=c.value.trim().toLowerCase(),C=new Set,A=[];for(const k of s.value){if(!k.to)continue;const B=(k.ext||k.format||"").toLowerCase();!B||C.has(B)||(C.add(B),A.push(k))}return A.sort((k,B)=>(k.ext||k.format).localeCompare(B.ext||B.format)),E?A.filter(k=>(k.ext||"").toLowerCase().includes(E)||(k.format||"").toLowerCase().includes(E)||(k.name||"").toLowerCase().includes(E)||(k.mime||"").toLowerCase().includes(E)):A}),p=l.computed(()=>`${r.convertUrl.replace(/\/$/,"")}/?embed=1`);let w=0;const m=new Map;function _(E,C={},A=[]){const k=++w;return new Promise((B,T)=>{var F,V;m.set(k,{resolve:B,reject:T}),(V=(F=a.value)==null?void 0:F.contentWindow)==null||V.postMessage({target:"convert-embed",id:k,cmd:E,...C},"*",A),setTimeout(()=>{m.has(k)&&(m.delete(k),T(new Error("convert timeout")))},18e4)})}function y(E){const C=E.data;if(!C||C.source!=="convert-embed")return;if(C.event==="ready"){g();return}const A=m.get(C.id);A&&(m.delete(C.id),C.ok?A.resolve(C):A.reject(new Error(C.error||"convert error")))}async function g(){try{const E=await _("listFormats");s.value=E.formats||[],i.value="ready",h.value||(o.value=v("convert.unsupportedInput","Bu dosya tipi için kaynak format bulunamadı."))}catch(E){o.value=E.message,i.value="error"}}async function b(){if(!(!u.value||!h.value)){i.value="converting",o.value=null;try{const E=await r.fetchBytes(),C=await _("convert",{name:r.fileName,bytes:E,fromIndex:h.value.index,toIndex:u.value.index},[E]),A=r.fileName.replace(/\.[^.]+$/,""),k=C.ext||u.value.ext||u.value.format,B=`${A}.${k}`,T=new File([C.bytes],B,{type:u.value.mime||"application/octet-stream"});await r.upload(T),i.value="done",n("done",B)}catch(E){o.value=E.message,i.value="error"}}}function v(E,C){return r.t?r.t(E,C):C}return l.onMounted(()=>window.addEventListener("message",y)),l.onBeforeUnmount(()=>window.removeEventListener("message",y)),(E,C)=>(l.openBlock(),l.createElementBlock("div",{class:"filex-cv__bg",onClick:C[3]||(C[3]=l.withModifiers(A=>n("close"),["self"]))},[l.createElementVNode("div",W4,[l.createElementVNode("header",X4,[l.createElementVNode("h3",null,l.toDisplayString(v("convert.title","Dönüştür"))+" — "+l.toDisplayString(e.fileName),1),l.createElementVNode("button",{class:"filex-cv__x",onClick:C[0]||(C[0]=A=>n("close"))},"✕")]),i.value==="loading"?(l.openBlock(),l.createElementBlock("div",Z4,l.toDisplayString(v("convert.loading","Dönüştürücü yükleniyor…")),1)):i.value==="done"?(l.openBlock(),l.createElementBlock("div",K4,[l.createElementVNode("p",null,"✓ "+l.toDisplayString(v("convert.done","Dönüştürüldü ve klasöre yüklendi.")),1),l.createElementVNode("button",{class:"filex-cv__convert",onClick:C[1]||(C[1]=A=>n("close"))},l.toDisplayString(v("convert.close","Kapat")),1)])):(l.openBlock(),l.createElementBlock(l.Fragment,{key:2},[l.createElementVNode("p",Y4,[l.createTextVNode(l.toDisplayString(v("convert.from","Kaynak"))+": ",1),l.createElementVNode("b",null,l.toDisplayString(f.value||"?"),1)]),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":C[2]||(C[2]=A=>c.value=A),class:"filex-cv__search",placeholder:v("convert.searchFmt","Hedef format ara (pdf, mp4, png…)")},null,8,J4),[[l.vModelText,c.value]]),l.createElementVNode("div",Q4,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(d.value,A=>{var k;return l.openBlock(),l.createElementBlock("button",{key:A.index,class:l.normalizeClass(["filex-cv__fmt",{"is-sel":((k=u.value)==null?void 0:k.index)===A.index}]),onClick:B=>u.value=A},[l.createElementVNode("b",null,l.toDisplayString((A.ext||A.format).toUpperCase()),1),l.createElementVNode("small",null,l.toDisplayString(A.name),1)],10,ev)}),128)),d.value.length===0?(l.openBlock(),l.createElementBlock("div",tv,l.toDisplayString(v("convert.noFmt","Eşleşen format yok.")),1)):l.createCommentVNode("",!0)]),o.value?(l.openBlock(),l.createElementBlock("div",rv,l.toDisplayString(o.value),1)):l.createCommentVNode("",!0),l.createElementVNode("footer",nv,[l.createElementVNode("button",{class:"filex-cv__convert",disabled:!u.value||!h.value||i.value==="converting",onClick:b},l.toDisplayString(i.value==="converting"?v("convert.converting","Dönüştürülüyor…"):v("convert.convert","Dönüştür")),9,av)])],64)),l.createElementVNode("iframe",{ref_key:"iframeRef",ref:a,src:p.value,class:"filex-cv__frame",title:"converter"},null,8,iv)])]))}}),[["__scopeId","data-v-4363f1ac"]]),lv={class:"fx-perm-modal"},sv={class:"fx-perm-head"},cv={class:"fx-perm-title"},uv={class:"fx-perm-ico","aria-hidden":"true"},fv={class:"fx-perm-titletext"},dv=["title"],hv={class:"fx-perm-subdim"},pv={class:"fx-perm-tabs"},mv={class:"fx-perm-body"},vv={key:0,class:"fx-perm-warn"},gv={key:1,class:"fx-perm-warn"},yv={key:2,class:"fx-perm-muted"},bv={class:"fx-perm-addcard"},wv={class:"fx-perm-add"},_v={class:"fx-perm-emailwrap"},xv=["placeholder"],kv={key:0,class:"fx-perm-suggest"},Sv=["onMousedown"],Ev={class:"fx-perm-suggest-av"},Cv={class:"fx-perm-suggest-txt"},Dv={class:"fx-perm-suggest-name"},Av={class:"fx-perm-suggest-meta"},Bv=["title"],Tv=["value"],Mv=["disabled"],Iv={key:0,class:"fx-perm-invite"},zv={class:"fx-perm-muted"},Fv={class:"fx-perm-invite-actions"},Nv={class:"fx-perm-invite-row"},Ov={value:"user"},Lv={value:"viewer"},Pv=["disabled"],Rv=["disabled"],Vv={key:1,class:"fx-perm-notice"},$v={key:2,class:"fx-perm-reveal"},Uv={class:"fx-perm-section"},Hv={key:0,class:"fx-perm-empty"},Gv={class:"fx-perm-av"},jv=["title"],qv=["value","onChange"],Wv=["value"],Xv=["disabled","title","onClick"],Zv={class:"fx-perm-av fx-perm-av--dim"},Kv=["title"],Yv={class:"fx-perm-badge"},Jv=["title"],Qv={class:"fx-perm-addcard"},e5={class:"fx-perm-share-opts"},t5={class:"fx-perm-check"},r5={class:"fx-perm-expiry"},n5={class:"fx-perm-muted"},a5=["value"],i5=["disabled"],o5={key:0,class:"fx-perm-warn"},l5={key:1,class:"fx-perm-result"},s5={class:"fx-perm-linkrow"},c5=["href"],u5={key:0,class:"fx-perm-pin"},f5={class:"fx-perm-mailrow"},d5=["placeholder"],h5=["disabled"],p5={key:1,class:"fx-perm-notice"},m5={key:2,class:"fx-perm-hint"},v5={class:"fx-perm-section"},g5={key:0,class:"fx-perm-empty"},y5=["title"],b5=["onClick"],w5=["disabled","title","onClick"],_5={key:2,class:"fx-perm-addcard"},x5={class:"fx-perm-muted fx-perm-dropintro"},k5={class:"fx-perm-share-opts"},S5={class:"fx-perm-check"},E5={class:"fx-perm-expiry"},C5={class:"fx-perm-muted"},D5=["value"],A5=["disabled"],B5={key:0,class:"fx-perm-adv"},T5={class:"fx-perm-adv-row"},M5={class:"fx-perm-muted"},I5={class:"fx-perm-adv-row"},z5={class:"fx-perm-muted"},F5={class:"fx-perm-adv-row"},N5={class:"fx-perm-muted"},O5=["placeholder"],L5={class:"fx-perm-check"},P5={key:1,class:"fx-perm-warn"},R5={key:2,class:"fx-perm-result"},V5={class:"fx-perm-linkrow"},$5=["href"],U5={key:0,class:"fx-perm-pin"},H5={class:"fx-perm-mailrow"},G5=["placeholder"],j5=["disabled"],q5={key:1,class:"fx-perm-notice"},W5=xr(l.defineComponent({__name:"PermissionsModal",props:{api:{},path:{},isDir:{type:Boolean},size:{},locale:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,a=l.computed(()=>(r.locale??"tr")!=="en");function i(P,j){return a.value?P:j}const o=l.computed(()=>{const P=/^([^:]+):\/\/(.*)$/.exec(r.path),j=P?P[1]:"",M=P?P[2]:r.path,pe=M.split("/").filter(Boolean);return{adapter:j,name:pe.length?pe[pe.length-1]:j,rel:M}}),s=l.ref("perms"),c=l.ref(!1),u=l.ref(!0),f=l.ref(""),h=l.ref([]),d=l.ref([]),p=l.ref(!0),w=l.ref(""),m=l.ref("viewer"),_=l.ref(!1),y=l.ref(""),g=l.ref(!1),b=l.ref("user"),v=l.ref(null),E=l.ref([]),C=l.ref(!1);let A;const k=[{v:"viewer",l:i("Görüntüleyen","Viewer"),d:i("görüntüle + indir","view + download")},{v:"editor",l:i("Düzenleyen","Editor"),d:i("oku + yaz + sil","read + write + delete")},{v:"owner",l:i("Sahip","Owner"),d:i("düzenle + izin yönet","edit + manage access")}];function B(P){var j;return((j=k.find(M=>M.v===P))==null?void 0:j.l)??P}const T=l.ref([]),F=l.ref(!1),V=l.ref(!1),L=l.ref(0),H=l.ref(null),X=l.ref(""),W=l.ref(""),Z=l.ref(""),Q=l.ref(!1),K=l.ref(""),ue=[{v:0,l:i("Süresiz","Never")},{v:1,l:i("1 gün","1 day")},{v:7,l:i("7 gün","7 days")},{v:30,l:i("30 gün","30 days")}],ne=l.ref(!1),fe=l.ref(0),re=l.ref(!1),ye=l.ref(""),he=l.ref(""),ke=l.ref(""),Ee=l.ref(!0),me=l.ref(!1),te=l.ref(""),se=l.ref(null),ie=l.ref(""),_e=l.ref(!1),He=l.ref("");function je(P){const j=new Set,M=[];for(const pe of P.split(/[,;\s]+/)){const le=pe.trim().toLowerCase();le&&le.includes("@")&&!j.has(le)&&(j.add(le),M.push(le))}return M}function Ve(P){var pe,le;const j=((pe=P.sent)==null?void 0:pe.length)??0,M=((le=P.failed)==null?void 0:le.length)??0;return M===0?i(`E-posta gönderildi ✓ (${j})`,`Email sent ✓ (${j})`):i(`${j} gönderildi, ${M} başarısız`,`${j} sent, ${M} failed`)}async function ge(){u.value=!0,f.value="";try{const P=await r.api.listPermissions(r.path);h.value=P.direct??[],d.value=P.inherited??[],p.value=P.storage_rbac,c.value=!0}catch(P){P.status===403?(c.value=!1,s.value="share"):f.value=P instanceof Error?P.message:String(P)}finally{u.value=!1}}async function Ce(){try{const P=await r.api.listShares(r.path);T.value=P.shares??[]}catch{T.value=[]}}l.onMounted(async()=>{await ge(),await Ce()}),l.onBeforeUnmount(()=>{A&&clearTimeout(A)});function ve(){g.value=!1,v.value=null,y.value="";const P=w.value.trim();if(A&&clearTimeout(A),P.length<1){E.value=[],C.value=!1;return}A=setTimeout(async()=>{try{const j=await r.api.searchUsers(P);E.value=j.users??[],C.value=E.value.length>0}catch{C.value=!1}},180)}async function Oe(P){C.value=!1,w.value=P.email;let j=m.value;P.role==="viewer"&&j!=="viewer"&&(j="viewer"),_.value=!0,y.value="";try{await r.api.addPermission({path:r.path,user_id:P.id,level:j,is_dir:!!r.isDir}),w.value="",E.value=[],await ge(),y.value=i("Yetki verildi.","Access granted.")}catch(M){y.value=M instanceof Error?M.message:String(M)}finally{_.value=!1}}async function tt(){const P=w.value.trim().toLowerCase();if(!P||!P.includes("@")){y.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}C.value=!1,_.value=!0,y.value="",v.value=null;try{const j=await r.api.resolveEmail(P);if(j.found&&j.user){let M=m.value;j.user.role==="viewer"&&M!=="viewer"&&(M="viewer"),await r.api.addPermission({path:r.path,user_id:j.user.id,level:M,is_dir:!!r.isDir}),w.value="",await ge(),y.value=i("Yetki verildi.","Access granted.")}else g.value=!0}catch(j){y.value=j instanceof Error?j.message:String(j)}finally{_.value=!1}}async function at(){_.value=!0,y.value="";try{const P=await r.api.invitePermission({path:r.path,email:w.value.trim().toLowerCase(),level:m.value,create_user:!0,role:b.value,is_dir:!!r.isDir,locale:r.locale??"tr"});v.value={tempPassword:P.temp_password},y.value=P.emailed?i("Kullanıcı açıldı, davet e-postası gönderildi.","User created, invite emailed."):i("Kullanıcı açıldı. Geçici parolayı iletin.","User created. Share the temp password."),g.value=!1,w.value="",await ge()}catch(P){y.value=P instanceof Error?P.message:String(P)}finally{_.value=!1}}function st(){Z.value=w.value.trim().toLowerCase(),g.value=!1,y.value="",s.value="share"}async function It(P,j){if(j!==P.level){_.value=!0;try{await r.api.updatePermission(P.id,j),await ge()}catch(M){y.value=M instanceof Error?M.message:String(M)}finally{_.value=!1}}}async function ut(P){_.value=!0;try{await r.api.deletePermission(P.id),await ge()}catch(j){y.value=j instanceof Error?j.message:String(j)}finally{_.value=!1}}function ft(P){return P.user_display_name||P.user_email||`#${P.user_id}`}function vt(P){return(P.user_display_name||P.user_email||"?").charAt(0).toUpperCase()}function gt(){return L.value?new Date(Date.now()+L.value*864e5).toISOString():null}async function pt(){F.value=!0,X.value="",H.value=null,K.value="";try{const P=await r.api.createShare({path:r.path,password:V.value,expires_at:gt()});H.value={url:P.share.url,pin:P.share.password_pin??null},await Ce()}catch(P){X.value=P instanceof Error?P.message:String(P)}finally{F.value=!1}}async function Ct(){var j;const P=je(Z.value);if(!P.length){K.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}if((j=H.value)!=null&&j.url){Q.value=!0,K.value="";try{const M=await r.api.shareMail({path:r.path,emails:P,url:H.value.url,pin:H.value.pin??void 0,expires_days:L.value||void 0,locale:r.locale??"tr",is_dir:!!r.isDir,size:r.size});K.value=Ve(M)}catch(M){const pe=M.detail??"";pe.includes("not_configured")?K.value=i("SMTP ayarlı/doğrulanmış değil — linki elle iletin.","SMTP not set up/verified — share the link manually."):pe.includes("send_failed")?K.value=i("Gönderilemedi (geçici hata) — tekrar deneyin.","Send failed (temporary) — please retry."):K.value=M instanceof Error?M.message:String(M)}finally{Q.value=!1}}}function Ae(){return fe.value?new Date(Date.now()+fe.value*864e5).toISOString():null}async function I(){me.value=!0,te.value="",se.value=null,He.value="";try{const P={ask_name:Ee.value};ye.value&&(P.max_files=Number(ye.value)),he.value&&(P.max_file_size_mb=Number(he.value));const j=ke.value.split(/[,\s]+/).map(pe=>pe.trim().replace(/^\./,"")).filter(Boolean);j.length&&(P.allowed_ext=j);const M=await r.api.createShare({path:r.path,kind:"drop",password:ne.value,expires_at:Ae(),drop_settings:P});se.value={url:M.share.url,pin:M.share.password_pin??null}}catch(P){te.value=P instanceof Error?P.message:String(P)}finally{me.value=!1}}async function J(){var j;const P=je(ie.value);if(!P.length){He.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}if((j=se.value)!=null&&j.url){_e.value=!0,He.value="";try{const M=await r.api.shareMail({path:r.path,emails:P,url:se.value.url,pin:se.value.pin??void 0,expires_days:fe.value||void 0,locale:r.locale??"tr",is_dir:!0,mode:"drop"});He.value=Ve(M)}catch(M){(M.detail??"").includes("not_configured")?He.value=i("SMTP ayarlı/doğrulanmış değil — linki elle iletin.","SMTP not set up/verified — share the link manually."):He.value=M instanceof Error?M.message:String(M)}finally{_e.value=!1}}}async function de(P){F.value=!0;try{await r.api.revokeShare(P.uuid),await Ce()}catch(j){X.value=j instanceof Error?j.message:String(j)}finally{F.value=!1}}function Se(P,j="url"){var M;(M=navigator.clipboard)==null||M.writeText(P),W.value=j,setTimeout(()=>{W.value===j&&(W.value="")},1400)}return(P,j)=>{var M,pe;return l.openBlock(),l.createElementBlock("div",{class:"fx-perm-overlay",onClick:j[22]||(j[22]=l.withModifiers(le=>n("close"),["self"]))},[l.createElementVNode("div",lv,[l.createElementVNode("header",sv,[l.createElementVNode("div",cv,[l.createElementVNode("span",uv,l.toDisplayString(e.isDir?"📁":"📄"),1),l.createElementVNode("div",fv,[l.createElementVNode("h3",null,l.toDisplayString(i("Paylaş / İzinler","Share / Permissions")),1),l.createElementVNode("span",{class:"fx-perm-sub",title:e.path},[l.createTextVNode(l.toDisplayString(o.value.name),1),l.createElementVNode("span",hv," · "+l.toDisplayString(o.value.adapter),1)],8,dv)])]),l.createElementVNode("button",{class:"fx-perm-x",onClick:j[0]||(j[0]=le=>n("close")),"aria-label":"close"},"✕")]),l.createElementVNode("div",pv,[c.value?(l.openBlock(),l.createElementBlock("button",{key:0,class:l.normalizeClass(["fx-perm-tab",{"is-active":s.value==="perms"}]),onClick:j[1]||(j[1]=le=>s.value="perms")},l.toDisplayString(i("Kişiler","People")),3)):l.createCommentVNode("",!0),l.createElementVNode("button",{class:l.normalizeClass(["fx-perm-tab",{"is-active":s.value==="share"}]),onClick:j[2]||(j[2]=le=>s.value="share")},l.toDisplayString(i("Bağlantı","Link")),3),e.isDir?(l.openBlock(),l.createElementBlock("button",{key:1,class:l.normalizeClass(["fx-perm-tab",{"is-active":s.value==="drop"}]),onClick:j[3]||(j[3]=le=>s.value="drop")},l.toDisplayString(i("Dosya İste","Request files")),3)):l.createCommentVNode("",!0)]),l.createElementVNode("div",mv,[s.value==="perms"&&c.value?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[p.value?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",vv,l.toDisplayString(i("Bu diskte RBAC kapalı — izinler yalnızca RBAC açık disklerde geçerli.","RBAC is off on this storage — grants only apply when RBAC is enabled.")),1)),f.value?(l.openBlock(),l.createElementBlock("div",gv,l.toDisplayString(f.value),1)):l.createCommentVNode("",!0),u.value?(l.openBlock(),l.createElementBlock("div",yv,l.toDisplayString(i("Yükleniyor…","Loading…")),1)):(l.openBlock(),l.createElementBlock(l.Fragment,{key:3},[l.createElementVNode("div",bv,[l.createElementVNode("div",wv,[l.createElementVNode("div",_v,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[4]||(j[4]=le=>w.value=le),type:"email",class:"fx-perm-input",autocomplete:"off",placeholder:i("İsim veya e-posta","Name or email"),onInput:ve,onKeyup:l.withKeys(tt,["enter"]),onFocus:ve},null,40,xv),[[l.vModelText,w.value]]),C.value?(l.openBlock(),l.createElementBlock("ul",kv,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(E.value,le=>(l.openBlock(),l.createElementBlock("li",{key:le.id,onMousedown:l.withModifiers(S=>Oe(le),["prevent"])},[l.createElementVNode("span",Ev,l.toDisplayString((le.display_name||le.email).charAt(0).toUpperCase()),1),l.createElementVNode("span",Cv,[l.createElementVNode("span",Dv,l.toDisplayString(le.display_name||le.email),1),l.createElementVNode("span",Av,l.toDisplayString(le.email)+" · "+l.toDisplayString(le.role),1)])],40,Sv))),128))])):l.createCommentVNode("",!0)]),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[5]||(j[5]=le=>m.value=le),class:"fx-perm-sel",title:(M=k.find(le=>le.v===m.value))==null?void 0:M.d},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(k,le=>l.createElementVNode("option",{key:le.v,value:le.v},l.toDisplayString(le.l),9,Tv)),64))],8,Bv),[[l.vModelSelect,m.value]]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:_.value,onClick:tt},l.toDisplayString(i("Ekle","Add")),9,Mv)]),g.value?(l.openBlock(),l.createElementBlock("div",Iv,[l.createElementVNode("p",zv,l.toDisplayString(i("Bu e-postada hesap yok. Ne yapmak istersiniz?","No account for this email — what next?")),1),l.createElementVNode("div",Fv,[l.createElementVNode("div",Nv,[l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[6]||(j[6]=le=>b.value=le),class:"fx-perm-sel"},[l.createElementVNode("option",Ov,l.toDisplayString(i("Kullanıcı","User")),1),l.createElementVNode("option",Lv,l.toDisplayString(i("Görüntüleyen","Viewer")),1)],512),[[l.vModelSelect,b.value]]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:_.value,onClick:at},l.toDisplayString(i("Kullanıcı oluştur + yetki ver","Create user + grant")),9,Pv)]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--ghost",disabled:_.value,onClick:st},l.toDisplayString(i("Sadece paylaşım linki gönder →","Just send a share link →")),9,Rv)])])):l.createCommentVNode("",!0),y.value?(l.openBlock(),l.createElementBlock("div",Vv,l.toDisplayString(y.value),1)):l.createCommentVNode("",!0),(pe=v.value)!=null&&pe.tempPassword?(l.openBlock(),l.createElementBlock("div",$v,[l.createTextVNode(l.toDisplayString(i("Geçici parola:","Temp password:"))+" ",1),l.createElementVNode("code",null,l.toDisplayString(v.value.tempPassword),1)])):l.createCommentVNode("",!0)]),l.createElementVNode("div",Uv,[l.createElementVNode("h4",null,l.toDisplayString(i("Erişimi olanlar","People with access")),1),!h.value.length&&!d.value.length?(l.openBlock(),l.createElementBlock("div",Hv,l.toDisplayString(i("Henüz kimseyle paylaşılmadı.","Not shared with anyone yet.")),1)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(h.value,le=>(l.openBlock(),l.createElementBlock("div",{key:"d"+le.id,class:"fx-perm-person"},[l.createElementVNode("span",Gv,l.toDisplayString(vt(le)),1),l.createElementVNode("span",{class:"fx-perm-user",title:le.user_email},l.toDisplayString(ft(le)),9,jv),l.createElementVNode("select",{class:"fx-perm-sel fx-perm-sel--sm",value:le.level,onChange:S=>It(le,S.target.value)},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(k,S=>l.createElementVNode("option",{key:S.v,value:S.v},l.toDisplayString(S.l),9,Wv)),64))],40,qv),l.createElementVNode("button",{class:"fx-perm-del",disabled:_.value,title:i("Kaldır","Remove"),onClick:S=>ut(le)},"✕",8,Xv)]))),128)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(d.value,le=>(l.openBlock(),l.createElementBlock("div",{key:"i"+le.id,class:"fx-perm-person fx-perm-inh"},[l.createElementVNode("span",Zv,l.toDisplayString(vt(le)),1),l.createElementVNode("span",{class:"fx-perm-user",title:le.user_email},l.toDisplayString(ft(le)),9,Kv),l.createElementVNode("span",Yv,l.toDisplayString(B(le.level)),1),l.createElementVNode("span",{class:"fx-perm-from",title:i("Üst klasörden gelir","Inherited from")+": "+(le.path_prefix||"/")}," ↳ "+l.toDisplayString(le.path_prefix||"/"),9,Jv)]))),128))])],64))],64)):l.createCommentVNode("",!0),s.value==="share"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",Qv,[l.createElementVNode("div",e5,[l.createElementVNode("label",t5,[l.withDirectives(l.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j[7]||(j[7]=le=>V.value=le)},null,512),[[l.vModelCheckbox,V.value]]),l.createTextVNode(" "+l.toDisplayString(i("PIN ile koru","Protect with a PIN")),1)]),l.createElementVNode("label",r5,[l.createElementVNode("span",n5,l.toDisplayString(i("Süre","Expiry")),1),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[8]||(j[8]=le=>L.value=le),class:"fx-perm-sel fx-perm-sel--sm"},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(ue,le=>l.createElementVNode("option",{key:le.v,value:le.v},l.toDisplayString(le.l),9,a5)),64))],512),[[l.vModelSelect,L.value,void 0,{number:!0}]])]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:F.value,onClick:pt},l.toDisplayString(i("Bağlantı oluştur","Create link")),9,i5)]),X.value?(l.openBlock(),l.createElementBlock("div",o5,l.toDisplayString(X.value),1)):l.createCommentVNode("",!0),H.value?(l.openBlock(),l.createElementBlock("div",l5,[l.createElementVNode("div",s5,[l.createElementVNode("a",{href:H.value.url,target:"_blank",rel:"noopener",class:"fx-perm-link"},l.toDisplayString(H.value.url),9,c5),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[9]||(j[9]=le=>Se(H.value.url,"new"))},l.toDisplayString(W.value==="new"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)]),H.value.pin?(l.openBlock(),l.createElementBlock("div",u5,[l.createElementVNode("span",null,[j[23]||(j[23]=l.createTextVNode("PIN: ",-1)),l.createElementVNode("code",null,l.toDisplayString(H.value.pin),1)]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[10]||(j[10]=le=>Se(H.value.pin,"sharepin"))},l.toDisplayString(W.value==="sharepin"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)])):l.createCommentVNode("",!0),l.createElementVNode("div",f5,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[11]||(j[11]=le=>Z.value=le),type:"text",class:"fx-perm-input",autocomplete:"off",placeholder:i("e-posta(lar) — virgülle ayırın","email(s) — comma separated"),onKeyup:l.withKeys(Ct,["enter"])},null,40,d5),[[l.vModelText,Z.value]]),l.createElementVNode("button",{class:"fx-perm-btn",disabled:Q.value,onClick:Ct},l.toDisplayString(i("Gönder","Send")),9,h5)]),K.value?(l.openBlock(),l.createElementBlock("div",p5,l.toDisplayString(K.value),1)):l.createCommentVNode("",!0)])):Z.value?(l.openBlock(),l.createElementBlock("p",m5,[l.createTextVNode(l.toDisplayString(i("Aşağıdan bir bağlantı oluşturun, ardından","Create a link below, then it will be sent to"))+" ",1),l.createElementVNode("strong",null,l.toDisplayString(Z.value),1),l.createTextVNode(" "+l.toDisplayString(i("adresine gönderin.",".")),1)])):l.createCommentVNode("",!0)]),l.createElementVNode("div",v5,[l.createElementVNode("h4",null,l.toDisplayString(i("Mevcut bağlantılar","Existing links")),1),T.value.length?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",g5,l.toDisplayString(i("Yok","None")),1)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(T.value,le=>(l.openBlock(),l.createElementBlock("div",{key:le.uuid,class:"fx-perm-person"},[l.createElementVNode("span",{class:"fx-perm-user fx-perm-link",title:le.url},l.toDisplayString(le.url),9,y5),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:S=>Se(le.url,le.uuid)},l.toDisplayString(W.value===le.uuid?i("✓","✓"):i("Kopyala","Copy")),9,b5),l.createElementVNode("button",{class:"fx-perm-del",disabled:F.value,title:i("İptal","Revoke"),onClick:S=>de(le)},"✕",8,w5)]))),128))])],64)):l.createCommentVNode("",!0),s.value==="drop"?(l.openBlock(),l.createElementBlock("div",_5,[l.createElementVNode("p",x5,l.toDisplayString(i("Bu klasöre herkesin dosya YÜKLEYEBİLECEĞİ herkese açık bir bağlantı. Yükleyenler klasördeki mevcut dosyaları göremez.","A public link that lets anyone UPLOAD files into this folder. Uploaders never see the folder's existing files.")),1),l.createElementVNode("div",k5,[l.createElementVNode("label",S5,[l.withDirectives(l.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j[12]||(j[12]=le=>ne.value=le)},null,512),[[l.vModelCheckbox,ne.value]]),l.createTextVNode(" "+l.toDisplayString(i("PIN ile koru","Protect with a PIN")),1)]),l.createElementVNode("label",E5,[l.createElementVNode("span",C5,l.toDisplayString(i("Süre","Expiry")),1),l.withDirectives(l.createElementVNode("select",{"onUpdate:modelValue":j[13]||(j[13]=le=>fe.value=le),class:"fx-perm-sel fx-perm-sel--sm"},[(l.openBlock(),l.createElementBlock(l.Fragment,null,l.renderList(ue,le=>l.createElementVNode("option",{key:le.v,value:le.v},l.toDisplayString(le.l),9,D5)),64))],512),[[l.vModelSelect,fe.value,void 0,{number:!0}]])]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:me.value,onClick:I},l.toDisplayString(i("Bağlantı oluştur","Create link")),9,A5)]),l.createElementVNode("button",{type:"button",class:"fx-perm-btn fx-perm-btn--ghost fx-perm-advtoggle",onClick:j[14]||(j[14]=le=>re.value=!re.value)},l.toDisplayString(re.value?i("Gelişmiş ▲","Advanced ▲"):i("Gelişmiş ▼","Advanced ▼")),1),re.value?(l.openBlock(),l.createElementBlock("div",B5,[l.createElementVNode("label",T5,[l.createElementVNode("span",M5,l.toDisplayString(i("En fazla dosya","Max files")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[15]||(j[15]=le=>ye.value=le),type:"number",min:"1",class:"fx-perm-input fx-perm-input--sm",placeholder:"20"},null,512),[[l.vModelText,ye.value]])]),l.createElementVNode("label",I5,[l.createElementVNode("span",z5,l.toDisplayString(i("Dosya başı MB","MB / file")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[16]||(j[16]=le=>he.value=le),type:"number",min:"1",class:"fx-perm-input fx-perm-input--sm",placeholder:"500"},null,512),[[l.vModelText,he.value]])]),l.createElementVNode("label",F5,[l.createElementVNode("span",N5,l.toDisplayString(i("İzinli türler","Allowed types")),1),l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[17]||(j[17]=le=>ke.value=le),type:"text",class:"fx-perm-input fx-perm-input--sm",placeholder:i("hepsi (örn. pdf, jpg)","all (e.g. pdf, jpg)")},null,8,O5),[[l.vModelText,ke.value]])]),l.createElementVNode("label",L5,[l.withDirectives(l.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":j[18]||(j[18]=le=>Ee.value=le)},null,512),[[l.vModelCheckbox,Ee.value]]),l.createTextVNode(" "+l.toDisplayString(i("Yükleyenin adını sor","Ask uploader name")),1)])])):l.createCommentVNode("",!0),te.value?(l.openBlock(),l.createElementBlock("div",P5,l.toDisplayString(te.value),1)):l.createCommentVNode("",!0),se.value?(l.openBlock(),l.createElementBlock("div",R5,[l.createElementVNode("div",V5,[l.createElementVNode("a",{href:se.value.url,target:"_blank",rel:"noopener",class:"fx-perm-link"},l.toDisplayString(se.value.url),9,$5),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[19]||(j[19]=le=>Se(se.value.url,"drop"))},l.toDisplayString(W.value==="drop"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)]),se.value.pin?(l.openBlock(),l.createElementBlock("div",U5,[l.createElementVNode("span",null,[j[24]||(j[24]=l.createTextVNode("PIN: ",-1)),l.createElementVNode("code",null,l.toDisplayString(se.value.pin),1)]),l.createElementVNode("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:j[20]||(j[20]=le=>Se(se.value.pin,"droppin"))},l.toDisplayString(W.value==="droppin"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)])):l.createCommentVNode("",!0),l.createElementVNode("div",H5,[l.withDirectives(l.createElementVNode("input",{"onUpdate:modelValue":j[21]||(j[21]=le=>ie.value=le),type:"text",class:"fx-perm-input",autocomplete:"off",placeholder:i("e-posta(lar) — virgülle ayırın","email(s) — comma separated"),onKeyup:l.withKeys(J,["enter"])},null,40,G5),[[l.vModelText,ie.value]]),l.createElementVNode("button",{class:"fx-perm-btn",disabled:_e.value,onClick:J},l.toDisplayString(i("Gönder","Send")),9,j5)]),He.value?(l.openBlock(),l.createElementBlock("div",q5,l.toDisplayString(He.value),1)):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])):l.createCommentVNode("",!0)])])])}}}),[["__scopeId","data-v-cc43fc18"]]),X5={key:0,class:"fe__loading"},Z5={class:"fe__loading-text"},K5={key:0,class:"fe__dragover"},Y5={class:"fe-recents__header"},J5={class:"fe-modal__head"},Q5={class:"fe-modal__title"},e3={class:"fe-modal__body"},t3={key:0,class:"fe-toast"},mc="brf-file-explorer:view-mode",Fo="brf-file-explorer:path",ci="application/x-brf-files",r3=l.defineComponent({__name:"FileExplorer",props:{config:{}},emits:["share-created","file-opened","error","upload-progress","selection-change"],setup(e,{emit:t}){const r=e,n=t,a=tc(r.config),i=rc(r.config,a),o=sc(r.config,a,{onSettled:$=>{if($.status==="error")I($.error_message||"İşlem başarısız");else{const U=$.op_type==="copy"?"Kopyalandı":$.op_type==="move"?"Taşındı":"Silindi";I(`${U} (${$.progress_total})`)}M()}}),s=l.ref(!1),c=(r.config.rootPath||"").trim(),u=c.replace("://","/").replace(/^\/+|\/+$/g,""),f=u||r.config.initialPath||"",h=l.ref(f),d=l.ref(r.config.defaultAdapter||"brf"),p=l.ref(f),w=l.ref([]),m=l.ref(""),_=l.customRef(($,U)=>{let be=(()=>{try{const Te=localStorage.getItem(mc);if(Te==="list"||Te==="grid")return Te}catch{}return r.config.viewMode??"list"})();return{get(){return $(),be},set(Te){if(Te!==be){be=Te;try{localStorage.setItem(mc,Te)}catch{}U()}}}}),y=l.ref(""),g=l.ref(!1),b=l.ref(""),v=l.computed(()=>g.value),E=l.computed(()=>r.config.locale||"tr"),C=l.computed(()=>{const $=(h.value??"").replace(/^\/+|\/+$/g,"");return u&&$===u?!1:$.length>0}),A=l.computed(()=>J.value?!(h.value??"").replace(/^\/+|\/+$/g,""):!1);function k(){if(g.value){M(b.value);return}const $=(h.value??"").replace(/^\/+|\/+$/g,"");if(!$||$===u)return;const U=$.lastIndexOf("/");let be=U===-1?"":$.slice(0,U);u&&!(be===u||be.startsWith(u+"/"))&&(be=u),M(be)}const{t:B}=_r(E),T=nc(()=>w.value);l.watch(()=>[...T.selected.value],()=>{n("selection-change",T.nodes.value.map($=>({path:$.path,basename:$.basename,type:$.type})))});const F=l.ref({mode:null,items:[],sourcePath:null}),V=l.ref(null),L=l.ref(new Set),H=l.ref(!1),X=l.ref(!1),W=l.ref(null),Z=l.ref(0);async function Q(){try{const $=await oi(),U=r.config.apiBase??"",be=await fetch(`${U}/api/files/manager/star/list?limit=500`,{headers:$,credentials:"include"});if(!be.ok)return;const Te=await be.json(),ot=Array.isArray(Te)?Te:Array.isArray(Te==null?void 0:Te.entries)?Te.entries:Array.isArray(Te==null?void 0:Te.nodes)?Te.nodes:[];L.value=new Set(ot.map(Ze=>Ze.id).filter(Ze=>typeof Ze=="number"))}catch{}}function K($,U){if(typeof $.id!="number")return;const be=new Set(L.value);U?be.add($.id):be.delete($.id),L.value=be}async function ue($){if(typeof $.id=="number")try{const U=r.config.apiBase??"";await fetch(`${U}/api/files/manager/recent`,{method:"POST",headers:await oi({"Content-Type":"application/json"}),credentials:"include",body:JSON.stringify({node_id:$.id})}),Z.value+=1}catch{}}function ne($){typeof $.id=="number"&&(W.value=$,X.value=!0)}function fe($){const U={type:"file",path:$.path,basename:$.name,extension:($.name.split(".").pop()||"").toLowerCase(),id:$.id};H.value=!1,Ue(U)}const re=l.computed(()=>{var U,be,Te;if(r.config.onlyOfficeBase)return r.config.onlyOfficeBase;const $=(be=(U=V.value)==null?void 0:U.external)==null?void 0:be.onlyoffice;return $&&!To($)?null:((Te=V.value)==null?void 0:Te.onlyoffice_url)||null}),ye=l.computed(()=>re.value&&a.endpoints.onlyOfficeConfig||null),he=l.computed(()=>{var be,Te,ot;const $=r.config.drawioUrl||r.config.drawioBase;if($)return $;const U=(Te=(be=V.value)==null?void 0:be.external)==null?void 0:Te.drawio;return U&&!To(U)?null:((ot=V.value)==null?void 0:ot.drawio_url)||null}),ke=l.computed(()=>{var $;return r.config.convertBase||(($=V.value)==null?void 0:$.convert_url)||null}),Ee=l.ref([]),me=l.ref(null),te=l.ref(!1),se=l.ref(!1),ie=l.ref(!1),_e=l.ref(!1),He=l.ref(!1),je=l.ref(null),Ve=l.ref(null),ge=l.ref(null),Ce=l.ref(null),ve=l.ref("edit"),Oe=l.ref(!1),tt=l.ref(null),at=l.ref(!1),st=l.ref(null);function It($){return $===void 0||$==="editor"||$==="owner"}function ut($){var U;return $.length===1&&typeof((U=$[0])==null?void 0:U.perm)=="string"?$[0].perm:m.value}const ft=l.computed(()=>It(m.value)),vt=l.ref(null),gt=l.ref(null),pt=l.ref(null),Ct=l.ref(null);let Ae;function I($){Ct.value=$,Ae&&clearTimeout(Ae),Ae=setTimeout(()=>Ct.value=null,2500)}const J=l.computed(()=>r.config.multiStorageRoot===!0);function de($){const U=$.replace(/^\/+|\/+$/g,"");if(!U)return{adapter:"",rel:""};const be=U.indexOf("/");return be===-1?{adapter:U,rel:""}:{adapter:U.slice(0,be),rel:U.slice(be+1)}}function Se($){if($.includes("://"))return $;const{adapter:U,rel:be}=de($);return U?be?`${U}://${be}`:`${U}://`:""}function P($){const U=$.indexOf("://");if(U===-1)return $.replace(/^\/+|\/+$/g,"");const be=$.slice(0,U),Te=$.slice(U+3).replace(/^\/+|\/+$/g,"");return Te?`${be}/${Te}`:be}function j(){return(r.config.storages??[]).map(U=>({type:"dir",path:U.name,basename:U.label||U.name,extension:"",storage:U.name,visibility:"private",file_size:0,mime_type:"inode/storage",extra_metadata:{driver:U.driver,readOnly:U.readOnly}}))}async function M($){s.value=!0,g.value=!1;try{let U=$??h.value??"";if(u){const or=String(U).replace(/^\/+|\/+$/g,"");(!or||!(or===u||or.startsWith(u+"/")))&&(U=u)}if(J.value&&!Se(U)){h.value="",d.value="",p.value="",w.value=j();return}const be=J.value?Se(U):S(U),Te=y.value?await a.search(be,y.value):await a.index(be);d.value=Te.adapter,p.value=Te.dirname,m.value=Te.perm||"",w.value=(Te.files||[]).filter(or=>!(or.path.includes(".thumbs")||or.path.includes(".versions")||or.basename===".versions"||or.basename===".trash"||or.basename===".keepdir"));const ot=pe(Te.dirname),Ze=ot==="fileman"||ot==="",qt=ot.startsWith("fileman/.trash"),cr=r.config.trashVisible!==!1;!qt&&Ze&&cr&&w.value.unshift({type:"dir",path:`${Te.adapter}://fileman/.trash`,basename:".trash",extension:"",storage:Te.adapter,visibility:"private",file_size:0,mime_type:"inode/directory",extra_metadata:{}}),h.value=J.value?P(Te.dirname):pe(Te.dirname)}catch(U){const be=U instanceof Error?U.message:String(U);n("error",{message:be,context:{path:$}}),I(be)}finally{s.value=!1}}function pe($){const U=$.indexOf("://");return U===-1?$:$.slice(U+3)}async function le(){s.value=!0,b.value=d.value||"",g.value=!0,T.clear();try{const{entries:$}=await a.listTrash();w.value=$.map(U=>({type:"file",id:U.id,path:U.storage_name?`${U.storage_name}://${U.path}`:U.path,basename:U.name,extension:U.name.includes(".")&&U.name.split(".").pop()||"",storage:U.storage_name||"",visibility:"private",file_size:U.size,mime_type:U.mime||"",extra_metadata:{deleted_at:U.deleted_at,ttl_days:U.ttl_days??null}})),p.value=".trash",h.value=".trash"}catch($){const U=$ instanceof Error?$.message:String($);n("error",{message:U,context:{op:"trash-list"}}),I(U)}finally{s.value=!1}}function S($){if($&&$.includes("://"))return $;if(J.value){const U=Se($??"");return U||(d.value?`${d.value}://`:"")}return $?`${d.value}://${$.replace(/^\/+/,"")}`:`${d.value}://`}l.watch(()=>y.value,()=>void M());function ae(){return r.config.pathPersist??"hash"}function ce(){if(typeof window>"u")return"";const $=ae();if($==="none")return"";if($==="localStorage")try{return localStorage.getItem(Fo)||""}catch{return""}const U=window.location.hash||"";return U.startsWith("#")?decodeURIComponent(U.slice(1)).replace(/^\/+|\/+$/g,""):""}let N=!1;function Y($){if(typeof window>"u")return;const U=ae();if(U==="none")return;if(U==="localStorage"){try{$?localStorage.setItem(Fo,$):localStorage.removeItem(Fo)}catch{}return}const be=$?`#${$}`:"";window.location.hash!==be&&(N=!0,history.replaceState(null,"",be||window.location.pathname+window.location.search))}function oe(){if(ae()!=="hash")return;if(N){N=!1;return}const $=ce();$&&$!==h.value&&M($)}l.watch(h,$=>Y($)),l.onMounted(async()=>{var U;li();const $=ce();await M($||void 0),await l.nextTick(),(U=gt.value)==null||U.focus(),Q(),ae()==="hash"&&window.addEventListener("hashchange",oe),a.endpoints.opsList&&o.startPolling(),a.endpoints.capabilities&&a.capabilities().then(be=>{V.value=be}).catch(()=>{})}),ac(gt,{onDelete:()=>{T.isEmpty.value||(ie.value=!0)},onRename:()=>{T.nodes.value.length===1&&(je.value=T.nodes.value[0],se.value=!0)},onSelectAll:()=>T.selectAll(),onOpen:()=>{const $=T.nodes.value[0];$&&Ue($)},onClose:()=>{var $;te.value=!1,se.value=!1,ie.value=!1,_e.value=!1,He.value=!1,($=vt.value)==null||$.hide()},onFocusSearch:()=>{var $;return($=pt.value)==null?void 0:$.focusSearch()},onCut:()=>z9(),onCopy:()=>F9(),onPaste:()=>Vp(),onGoUp:()=>k(),hasSelection:()=>!T.isEmpty.value});const Qe=new Set(["docx","xlsx","pptx","doc","xls","ppt","odt","ods","odp"]);function Ue($){if($.basename===".trash"){le();return}if($.type==="dir"){const be=J.value?P($.path):pe($.path);M(be);return}const U=($.extension||"").toLowerCase();ve.value=It($.perm??m.value)?bt(U):"view",Ce.value=$,He.value=!0,n("file-opened",{path:$.path,basename:$.basename}),ue($)}const Xe=new Set([...Qe,"drawio","dio","pdf","epub","ipynb","tiff","tif","psd","mmd","mermaid","glb","gltf","obj","stl","fbx","3ds","zip","rar","7z","tar","gz","tgz","jpg","jpeg","png","webp","gif","bmp","avif","svg","heic","mp4","webm","mov","mkv","m4v","ogv","mp3","wav","ogg","flac","m4a","aac","opus"]);function bt($){return Xe.has($)?"view":"edit"}async function an($){const U=$??T.nodes.value;if(U.length!==0)try{if(g.value){const ot=U.map(qt=>qt.id).filter(qt=>typeof qt=="number"),{restored:Ze}=await a.restoreIds(ot);I(`${Ze} öğe geri getirildi`),T.clear(),await le();return}if(!a.endpoints.restore)return;const be=U.map(ot=>ot.path),{restored:Te}=await a.restore(be);I(`${Te} öğe geri getirildi`),T.clear(),await M()}catch(be){n("error",{message:be.message,context:{op:"restore"}})}}function Ot($){ve.value="view",Ce.value=$,He.value=!0,ue($)}function St($){if($.type==="dir"){const Ze=J.value?P($.path):pe($.path);M(Ze);return}if(!It($.perm??m.value)){Ot($);return}const U=($.extension||"").toLowerCase(),be=r.config.openPageBase;if(!be){Ue($);return}const Te=be.includes("?")?"&":"?",ot=`${be}${Te}path=${encodeURIComponent($.path)}&type=${encodeURIComponent(U)}&mode=edit`;window.open(ot,"_blank","noopener"),n("file-opened",{path:$.path,basename:$.basename}),ue($)}const Lt=l.ref("selection"),Jt=l.ref(""),hr=l.ref(""),ai=l.computed(()=>{const $=T.nodes.value;return $.length===0?"none":$.length===1?$[0].type==="dir"?"single-dir":"single-file":"multi"});async function ii($){const U=T.nodes.value;if($==="open"){U[0]&&Ue(U[0]);return}await Rp($,U)}async function Ht($,U){var be;Lt.value="selection",T.has($.path)||(T.click($.path),await l.nextTick()),(be=vt.value)==null||be.show({clientX:U.clientX,clientY:U.clientY},T.nodes.value)}function Er($){var U;$.preventDefault(),Lt.value="selection",T.clear(),(U=vt.value)==null||U.show({clientX:$.clientX,clientY:$.clientY},[])}function tr($){var U;Lt.value="breadcrumb",Jt.value=$.adapterPath,hr.value=$.label,(U=vt.value)==null||U.show({clientX:$.x,clientY:$.y},[])}const on=l.computed(()=>{if(Lt.value==="breadcrumb")return[{key:"open",label:B("ctx.open"),icon:"↗"},{key:"copy-path",label:B("breadcrumb.copy_path"),icon:"📋"}];const $=T.nodes.value,U=$.length>0,be=$.length===1;if(v.value)return U?[{key:"restore",label:B("ctx.restore"),icon:"↩"},{divider:!0,key:"sep1",label:""},{key:"delete",label:B("ctx.delete_perm"),icon:"🗑",danger:!0}]:[];const Te=(h.value??"").replace(/^\/+|\/+$/g,"");return J.value&&Te===""?U?be?[{key:"open",label:B("ctx.open"),icon:"↗"}]:[]:[]:U?Rr($):It(m.value)?[{key:"new-folder",label:B("toolbar.new_folder"),icon:"📁"},{key:"paste",label:B("ctx.paste"),icon:"📋",disabled:!F.value.mode}]:[]});function Rr($){var Xp,Zp;const U=$.length>0,be=$.length===1,Te=be&&((Xp=$[0])==null?void 0:Xp.type)==="file",ot=E.value==="en"?"Tags…":"Etiketler…",Ze=be&&typeof((Zp=$[0])==null?void 0:Zp.id)=="number",qt=E.value==="en"?"Copy node id":"Node id'yi kopyala",cr=ut($),or=It(cr),nw=E.value==="en"?"Share / Permissions":"Paylaş / İzinler";return[{key:"open",label:B("ctx.open"),icon:"↗",hidden:!be},{key:"preview",label:B("ctx.preview"),icon:"👁",hidden:!be,disabled:!Te},{key:"download",label:B("ctx.download"),icon:"⬇",hidden:!be,disabled:!Te},{key:"convert",label:B("ctx.convert"),icon:"🔄",hidden:!be||!ke.value||!or,disabled:!Te},{key:"access",label:nw,icon:"🔗",hidden:!be||!or},{key:"copy-id",label:qt,icon:"🆔",hidden:!Ze,disabled:!Ze},{divider:!0,key:"sep1",label:"",hidden:!or},{key:"rename",label:B("ctx.rename"),icon:"✎",hidden:!be||!or,disabled:!be},{key:"cut",label:B("ctx.cut"),icon:"✂",hidden:!U||!or,disabled:!U},{key:"copy",label:B("ctx.copy"),icon:"❐",hidden:!U,disabled:!U},{key:"paste",label:B("ctx.paste"),icon:"📋",hidden:!or,disabled:!F.value.mode},{divider:!0,key:"sep-meta",label:"",hidden:!Ze},{key:"tags",label:ot,icon:"🏷",hidden:!Ze,disabled:!Ze},{divider:!0,key:"sep2",label:"",hidden:!or},{key:"delete",label:B("ctx.delete"),icon:"🗑",danger:!0,hidden:!U||!or,disabled:!U}]}const Bo=l.computed(()=>{const $=T.nodes.value;if(v.value)return $.length===0?[]:[{key:"restore",label:B("ctx.restore"),icon:"↩"},{key:"delete",label:B("ctx.delete_perm"),icon:"🗑",danger:!0}];const U=(h.value??"").replace(/^\/+|\/+$/g,"");return J.value&&U===""?$.length===1?[{key:"open",label:B("ctx.open"),icon:"↗"}]:[]:$.length===0?[]:Rr($)});async function I9($,U){if(Lt.value==="breadcrumb"){$.key==="open"?M(pe(Jt.value)):$.key==="copy-path"&&await Wp(Jt.value);return}await Rp($.key,U)}async function Rp($,U){var be;switch($){case"open":U[0]&&St(U[0]);break;case"preview":U[0]&&Ot(U[0]);break;case"download":U[0]&&O9(U[0]);break;case"convert":U[0]&&$9(U[0]);break;case"share":U[0]&&V9(U[0]);break;case"access":U[0]&&(st.value=U[0],at.value=!0);break;case"copy-id":if(U[0]&&typeof U[0].id=="number"){const Te=U[0].id;(be=navigator.clipboard)==null||be.writeText(String(Te)).then(()=>I(E.value==="en"?`Node id ${Te} copied`:`Node id ${Te} kopyalandı`),()=>I(`#${Te}`))}break;case"tags":U[0]&&ne(U[0]);break;case"rename":U[0]&&(je.value=U[0],se.value=!0);break;case"cut":F.value={mode:"cut",items:U,sourcePath:h.value},I("Kes → Yapıştır hazır");break;case"copy":F.value={mode:"copy",items:U,sourcePath:h.value},I("Kopyala → Yapıştır hazır");break;case"paste":await Vp();break;case"delete":ie.value=!0;break;case"restore":U.length>0&&await an(U);break;case"new-folder":te.value=!0;break;case"duplicate":U[0]&&await N9(U[0]);break}}function z9(){T.isEmpty.value||(F.value={mode:"cut",items:T.nodes.value,sourcePath:h.value},I("Kesildi"))}function F9(){T.isEmpty.value||(F.value={mode:"copy",items:T.nodes.value,sourcePath:h.value},I("Kopyalandı"))}async function Vp(){const $=F.value;if(!(!$.mode||$.items.length===0))try{const U=$.items.map(ot=>ot.path),be=$.sourcePath||"";if($.mode==="cut"&&be===h.value){I("Aynı klasöre kesilemez");return}if($.mode==="cut"){const{op:ot}=await a.moveAsync(U,S(h.value),S(be)||void 0);o.register(ot),I("Taşıma kuyruğa alındı")}else{const{op:ot}=await a.copy(U,S(h.value));o.register(ot),I("Kopyalama kuyruğa alındı")}F.value={mode:null,items:[],sourcePath:null}}catch(U){n("error",{message:U.message,context:{op:"paste"}})}}async function N9($){try{const{op:U}=await a.copy([$.path],S(h.value));o.register(U)}catch(U){n("error",{message:U.message,context:{op:"duplicate"}})}}function O9($){const U=a.downloadUrl($.path);window.open(U,"_blank")}async function L9($){try{await a.newFolder(S(h.value),$),te.value=!1,await M()}catch(U){n("error",{message:U.message,context:{op:"newfolder"}})}}async function P9($){const U=je.value;if(U)try{await a.rename(S(h.value),U.path,$),se.value=!1,je.value=null,await M()}catch(be){n("error",{message:be.message,context:{op:"rename"}})}}async function R9(){if(g.value){ie.value=!1,I("Çöpteki öğeler saklama süresi sonunda otomatik silinir. Kalıcı silme yönetici panelinden yapılır.");return}const $=T.nodes.value.map(U=>U.path);if($.length===0){ie.value=!1;return}try{if(a.endpoints.deleteAsync){const{op:U}=await a.deleteAsync($,S(h.value));o.register(U),I("Silme kuyruğa alındı")}else await a.deleteItems(S(h.value),$),await M();ie.value=!1,T.clear()}catch(U){n("error",{message:U.message,context:{op:"delete"}})}}function V9($){Ve.value=$,ge.value=null,_e.value=!0}function $9($){tt.value=$,Oe.value=!0}function U9($){I(E.value==="en"?`Converted → ${$}`:`Dönüştürüldü → ${$}`),M()}async function H9($){const U=Ve.value;if(U)try{const{share:be}=await a.createShare({path:U.path,password:$.password,expires_at:$.expires_at,max_downloads:$.max_downloads});ge.value=be,n("share-created",{path:U.path,url:be.url,pin:be.password_pin??null})}catch(be){n("error",{message:be.message,context:{op:"share"}})}}function G9(){_e.value=!1,Ve.value=null,ge.value=null}function j9(){var $;if(!ft.value){I(E.value==="en"?"Read-only here":"Burada yazma yetkiniz yok");return}($=me.value)==null||$.click()}function q9($){const U=$.target,be=U.files?Array.from(U.files):[];U.value="",$p(be)}async function $p($){if($.length===0)return;const U=!!(a.endpoints.uploadInit&&a.endpoints.uploadFinalize);for(const be of $)U&&be.size>=10*1024*1024&&await X9(be)||await W9(be);await M()}async function W9($){const U=crypto.randomUUID(),be=S(h.value);Ee.value=[...Ee.value,{id:U,file:$,path:be,totalBytes:$.size,uploadedBytes:0,percent:0,status:"uploading",cancel(){}}];const Te=ot=>{const Ze=Ee.value.findIndex(cr=>cr.id===U);if(Ze===-1)return;const qt=[...Ee.value];qt[Ze]={...qt[Ze],...ot},Ee.value=qt};try{await a.uploadMultipart(be,[$],ot=>{Te({percent:ot,uploadedBytes:Math.round(ot/100*$.size)}),n("upload-progress",{uploadId:U,percent:ot,done:ot>=100})}),Te({percent:100,uploadedBytes:$.size,status:"done"}),n("upload-progress",{uploadId:U,percent:100,done:!0})}catch(ot){Te({status:"error"}),n("error",{message:ot.message,context:{op:"upload",file:$.name}})}}async function X9($){const U=crypto.randomUUID();let be=!1;try{return await i.uploadFile({path:S(h.value),file:$,onProgress:Te=>{if(be){const ot=Ee.value.findIndex(Ze=>Ze.id===U);if(ot!==-1){const Ze=[...Ee.value];Ze[ot]={...Te,id:U},Ee.value=Ze}}else{if(Te.status!=="uploading"&&Te.uploadedBytes<=0)return;Ee.value=[...Ee.value,{...Te,id:U}],be=!0}n("upload-progress",{uploadId:Te.uploadId??U,percent:Te.percent,done:Te.status==="done"})}}),!0}catch{return be&&(Ee.value=Ee.value.filter(Te=>Te.id!==U)),!1}}const ya=l.ref(0),ba=l.ref(!1);function Ys($){const U=$.dataTransfer;if(!U||U.types&&U.types.includes(ci))return!1;if(U.items&&U.items.length>0){let be=!1;for(const Te of Array.from(U.items))if(Te.kind==="file"){be=!0;break}return be}return U.types?U.types.includes("Files"):!1}function Z9($){Ys($)&&($.preventDefault(),ya.value++,ba.value=!0)}function K9(){ya.value=Math.max(0,ya.value-1),ya.value===0&&(ba.value=!1)}function Y9($){Ys($)&&$.preventDefault()}function J9($){var be,Te;if((be=$.dataTransfer)!=null&&be.types.includes(ci)){ya.value=0,ba.value=!1;return}if(!Ys($)){ya.value=0,ba.value=!1;return}if($.preventDefault(),ya.value=0,ba.value=!1,!ft.value){I(E.value==="en"?"Read-only here":"Burada yazma yetkiniz yok");return}const U=(Te=$.dataTransfer)!=null&&Te.files?Array.from($.dataTransfer.files):[];U.length!==0&&$p(U)}function Up($){var U;(U=$.dataTransfer)!=null&&U.types.includes("Files")&&$.preventDefault()}function Hp($){const U=gt.value,be=$.target;U&&be&&!U.contains(be)&&$.preventDefault()}l.onMounted(()=>{window.addEventListener("dragover",Up),window.addEventListener("drop",Hp)}),l.onBeforeUnmount(()=>{window.removeEventListener("dragover",Up),window.removeEventListener("drop",Hp),window.removeEventListener("hashchange",oe)});const Js=l.computed(()=>F.value.mode!=="cut"?new Set:new Set(F.value.items.map($=>$.path)));function Gp($,U){if(!U.dataTransfer)return;if($.basename===".trash"){U.preventDefault();return}T.has($.path)||T.click($.path);const be=T.nodes.value.filter(Te=>!Js.value.has(Te.path)).filter(Te=>Te.basename!==".trash").map(Te=>({path:Te.path,basename:Te.basename,type:Te.type}));U.dataTransfer.setData(ci,JSON.stringify(be)),U.dataTransfer.setData("text/plain",be.map(Te=>Te.path).join(`
|
|
2
|
+
`)),U.dataTransfer.effectAllowed="move"}async function jp($,U,be){try{if(a.endpoints.moveAsync){const{op:Te}=await a.moveAsync($,U,S(h.value));o.register(Te),I("Taşıma kuyruğa alındı")}else await a.move(S(h.value),$,U),await M();T.clear()}catch(Te){n("error",{message:Te.message,context:{op:be,targetDir:U}})}}async function qp($,U){var qt;if($.type!=="dir")return;const be=(qt=U.dataTransfer)==null?void 0:qt.getData(ci);if(!be)return;let Te=[];try{Te=JSON.parse(be)}catch{return}if(Te.length===0)return;const ot=$.path,Ze=Te.map(cr=>cr.path).filter(cr=>cr&&cr!==ot&&!ot.startsWith(cr+"/"));if(Ze.length===0){I("Aynı klasöre taşınamaz");return}await jp(Ze,ot,"move-dnd")}async function Q9($,U){var qt;const be=(qt=U.dataTransfer)==null?void 0:qt.getData(ci);if(!be)return;let Te=[];try{Te=JSON.parse(be)}catch{return}if(Te.length===0)return;const ot=$,Ze=Te.map(cr=>cr.path).filter(cr=>cr&&cr!==ot&&!ot.startsWith(cr+"/"));Ze.length!==0&&await jp(Ze,ot,"move-dnd-crumb")}function ew($){$.cancel()}function tw($){Ee.value=Ee.value.filter(U=>U.id!==$.id)}function rw($){if(J.value&&!$){M("");return}if(J.value){M(P($));return}M(pe($))}async function Wp($){try{await navigator.clipboard.writeText($),I(B("breadcrumb.copy_path"))}catch{}}function oi($={}){return a.authHeadersSync({...$})}return($,U)=>{var be,Te,ot;return l.openBlock(),l.createElementBlock("div",{ref_key:"rootEl",ref:gt,class:l.normalizeClass(["fe",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark","fe--is-dragover":ba.value}]),tabindex:"-1",onDragenter:Z9,onDragover:Y9,onDragleave:K9,onDrop:J9,onContextmenu:Er},[l.createVNode(bm,{ref_key:"toolbarRef",ref:pt,"view-mode":_.value,"search-query":y.value,"trash-active":v.value,actions:Bo.value,"selection-mode":ai.value,"paste-enabled":!!F.value.mode,"convert-enabled":!!ke.value,"can-go-up":C.value,"at-virtual-root":A.value,"can-write":ft.value,locale:E.value,"onUpdate:viewMode":U[0]||(U[0]=Ze=>_.value=Ze),"onUpdate:searchQuery":U[1]||(U[1]=Ze=>y.value=Ze),onNewFolder:U[2]||(U[2]=Ze=>te.value=!0),onUpload:j9,onRefresh:U[3]||(U[3]=()=>M()),onGoUp:k,onAction:ii,onOpenRecents:U[4]||(U[4]=Ze=>H.value=!0)},null,8,["view-mode","search-query","trash-active","actions","selection-mode","paste-enabled","convert-enabled","can-go-up","at-virtual-root","can-write","locale"]),l.createVNode(Nm,{dirname:p.value,adapter:d.value,"root-label":d.value,locale:E.value,"multi-storage-root":J.value,"root-path":l.unref(c),onNavigate:rw,onCopyPath:Wp,onCrumbContext:tr,onCrumbDrop:Q9},null,8,["dirname","adapter","root-label","locale","multi-storage-root","root-path"]),l.createElementVNode("div",{class:"fe__body",onClick:U[7]||(U[7]=l.withModifiers(Ze=>l.unref(T).clear(),["self"]))},[s.value&&w.value.length===0?(l.openBlock(),l.createElementBlock("div",X5,[U[23]||(U[23]=l.createElementVNode("span",{class:"fe__spinner","aria-hidden":"true"},null,-1)),l.createElementVNode("p",Z5,l.toDisplayString(l.unref(B)("loading")),1)])):_.value==="list"?(l.openBlock(),l.createBlock(e2,{key:1,files:w.value,selected:l.unref(T).selected.value,clipped:Js.value,"show-parent-path":!!y.value,locale:E.value,loading:s.value,"starred-ids":L.value,"api-base":r.config.apiBase??"","auth-headers":()=>oi(),onClickRow:U[5]||(U[5]=(Ze,qt)=>l.unref(T).click(Ze.path,qt)),onDblRow:Ue,onContextRow:Ht,onItemDragStart:Gp,onItemDropInto:qp,onStarChange:K},null,8,["files","selected","clipped","show-parent-path","locale","loading","starred-ids","api-base","auth-headers"])):(l.openBlock(),l.createBlock(c2,{key:2,files:w.value,selected:l.unref(T).selected.value,clipped:Js.value,"show-parent-path":!!y.value,locale:E.value,loading:s.value,onClickCard:U[6]||(U[6]=(Ze,qt)=>l.unref(T).click(Ze.path,qt)),onDblCard:Ue,onContextCard:Ht,onItemDragStart:Gp,onItemDropInto:qp},null,8,["files","selected","clipped","show-parent-path","locale","loading"]))]),ba.value?(l.openBlock(),l.createElementBlock("div",K5,[...U[24]||(U[24]=[l.createElementVNode("div",{class:"fe__dragover-card"},[l.createElementVNode("span",{class:"fe-icon"},"⬆"),l.createElementVNode("p",null,"Dosyaları buraya bırak")],-1)])])):l.createCommentVNode("",!0),l.createVNode(E2,{jobs:Ee.value,locale:E.value,onCancel:ew,onDismiss:tw},null,8,["jobs","locale"]),l.createVNode(M2,{ops:l.unref(o).ops.value,locale:E.value,onDismiss:U[8]||(U[8]=Ze=>l.unref(o).dismiss(Ze))},null,8,["ops","locale"]),l.createVNode(m2,{ref_key:"ctxRef",ref:vt,locale:E.value,theme:e.config.theme||"auto",actions:on.value,onSelect:I9},null,8,["locale","theme","actions"]),l.createVNode(P2,{open:te.value,locale:E.value,onClose:U[9]||(U[9]=Ze=>te.value=!1),onSubmit:L9},null,8,["open","locale"]),l.createVNode(V2,{open:se.value,locale:E.value,"current-name":((be=je.value)==null?void 0:be.basename)||"",onClose:U[10]||(U[10]=Ze=>se.value=!1),onSubmit:P9},null,8,["open","locale","current-name"]),l.createVNode($2,{open:ie.value,locale:E.value,count:l.unref(T).size.value,onClose:U[11]||(U[11]=Ze=>ie.value=!1),onConfirm:R9},null,8,["open","locale","count"]),l.createVNode(t4,{open:_e.value,locale:E.value,share:ge.value,onClose:G9,onSubmit:H9,onToast:I},null,8,["open","locale","share"]),l.createVNode(pc,{open:He.value,locale:E.value,file:Ce.value,theme:e.config.theme||"auto","preview-url":Ze=>l.unref(a).previewUrl(Ze),"download-url":Ze=>l.unref(a).downloadUrl(Ze),"only-office-base":re.value,"only-office-config-endpoint":ye.value,"save-text-endpoint":l.unref(a).endpoints.saveText||null,"open-mode":ve.value,"auth-headers":()=>oi({"Content-Type":"application/json"}),"auth-credentials":l.unref(a).credentialsMode(),"drawio-url":he.value,"pdf-worker-url":r.config.pdfWorkerUrl||null,"pdf-save-url":r.config.pdfSaveUrl||null,"viewer-base-url":r.config.viewerBaseUrl||null,onClose:U[12]||(U[12]=Ze=>He.value=!1)},null,8,["open","locale","file","theme","preview-url","download-url","only-office-base","only-office-config-endpoint","save-text-endpoint","open-mode","auth-headers","auth-credentials","drawio-url","pdf-worker-url","pdf-save-url","viewer-base-url"]),Oe.value&&tt.value&&ke.value?(l.openBlock(),l.createBlock(ov,{key:1,"convert-url":ke.value,"file-name":((Te=tt.value)==null?void 0:Te.basename)||((ot=tt.value)==null?void 0:ot.path)||"","fetch-bytes":()=>{var Ze;return l.unref(a).fetchArrayBuffer(((Ze=tt.value)==null?void 0:Ze.path)??"")},upload:Ze=>l.unref(a).uploadMultipart(S(h.value),[Ze]).then(()=>{}),onClose:U[13]||(U[13]=Ze=>Oe.value=!1),onDone:U9},null,8,["convert-url","file-name","fetch-bytes","upload"])):l.createCommentVNode("",!0),at.value&&st.value?(l.openBlock(),l.createBlock(W5,{key:2,api:l.unref(a),path:st.value.path,"is-dir":st.value.type==="dir",size:typeof st.value.size=="number"?st.value.size:void 0,locale:E.value==="en"?"en":"tr",onClose:U[14]||(U[14]=Ze=>at.value=!1)},null,8,["api","path","is-dir","size","locale"])):l.createCommentVNode("",!0),l.createVNode(l.Transition,{name:"fe-modal"},{default:l.withCtx(()=>[H.value?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["fe fe-modal__backdrop fe-recents__backdrop",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark"}]),onClick:U[18]||(U[18]=Ze=>H.value=!1)},[l.createElementVNode("div",{class:"fe-recents__panel",onClick:U[17]||(U[17]=l.withModifiers(()=>{},["stop"]))},[l.createElementVNode("div",Y5,[l.createElementVNode("strong",null,l.toDisplayString(E.value==="en"?"Recently opened":"Son açılanlar"),1),l.createElementVNode("button",{class:"fe-recents__close","aria-label":"Close",onClick:U[15]||(U[15]=Ze=>H.value=!1)},"×")]),l.createVNode(fc,{"api-base":r.config.apiBase??"","auth-headers":()=>oi(),limit:20,"refresh-key":Z.value,onOpen:fe,onError:U[16]||(U[16]=Ze=>n("error",{message:Ze,context:{op:"recents"}}))},null,8,["api-base","auth-headers","refresh-key"])])],2)):l.createCommentVNode("",!0)]),_:1}),l.createVNode(l.Transition,{name:"fe-modal"},{default:l.withCtx(()=>[X.value&&W.value&&typeof W.value.id=="number"?(l.openBlock(),l.createElementBlock("div",{key:0,class:"fe-modal__backdrop",onClick:U[22]||(U[22]=Ze=>X.value=!1)},[l.createElementVNode("div",{class:"fe-modal__card fe-modal__card--md",onClick:U[21]||(U[21]=l.withModifiers(()=>{},["stop"]))},[l.createElementVNode("header",J5,[l.createElementVNode("h2",Q5,l.toDisplayString(E.value==="en"?"Tags":"Etiketler")+" — "+l.toDisplayString(W.value.basename),1),l.createElementVNode("button",{class:"fe-modal__close","aria-label":"Close",onClick:U[19]||(U[19]=Ze=>X.value=!1)},"×")]),l.createElementVNode("div",e3,[l.createVNode(uc,{"node-id":W.value.id,"api-base":r.config.apiBase??"","auth-headers":()=>oi(),onError:U[20]||(U[20]=Ze=>n("error",{message:Ze,context:{op:"tags"}}))},null,8,["node-id","api-base","auth-headers"])])])])):l.createCommentVNode("",!0)]),_:1}),l.createElementVNode("input",{ref_key:"fileInputEl",ref:me,type:"file",multiple:"",class:"fe__file-input",onChange:q9},null,544),l.createVNode(l.Transition,{name:"fe-toast"},{default:l.withCtx(()=>[Ct.value?(l.openBlock(),l.createElementBlock("div",t3,l.toDisplayString(Ct.value),1)):l.createCommentVNode("",!0)]),_:1})],34)}}}),n3={class:"filex-viewer-3d"},a3={key:1,class:"filex-viewer-fallback"},i3={key:2,class:"filex-viewer-fallback"},wa=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"Viewer3D",props:{url:{},mime:{},ext:{},t:{type:Function}},setup(e){const t=e,r=new Set(["glb","gltf","usdz"]),n=l.computed(()=>r.has((t.ext||"").toLowerCase())),a=l.ref(null),i=l.ref(!1);async function o(){if(i.value=!1,a.value=null,!n.value){a.value=t.t?t.t("viewer.format_unsupported_3d"):`3D format ".${t.ext}" not supported in browser preview — please download.`;return}try{await import("@google/model-viewer"),i.value=!0}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"3D viewer requires `@google/model-viewer` — install or use download."}}return l.onMounted(o),l.watch(()=>t.url,()=>{o()}),(s,c)=>{const u=l.resolveComponent("model-viewer");return l.openBlock(),l.createElementBlock("div",n3,[i.value&&!a.value?(l.openBlock(),l.createBlock(u,{key:0,src:e.url,"auto-rotate":"","camera-controls":"","touch-action":"pan-y","shadow-intensity":"1",alt:e.ext+" model",style:{width:"100%",height:"100%","min-height":"480px",display:"block"}},null,8,["src","alt"])):a.value?(l.openBlock(),l.createElementBlock("div",a3,[c[0]||(c[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📦",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):(l.openBlock(),l.createElementBlock("div",i3,[c[1]||(c[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(e.t?e.t("viewer.loading"):"Loading…"),1)]))])}}}),[["__scopeId","data-v-f9492fd4"]])},Symbol.toStringTag,{value:"Module"})),o3={key:0,class:"filex-viewer-fallback"},l3={key:0,class:"filex-viewer-epub__nav"},s3=["disabled"],c3=["disabled"],u3={key:1,class:"filex-viewer-epub__loading"},f3=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"EpubViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref(null),i=l.ref([]);l.ref(!1);const o=l.ref(100),s=l.ref(!1),c=l.ref(!0);let u=null,f=null;async function h(){c.value=!0,s.value=!1,a.value=null;let _=null;try{_=await import("epubjs")}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"EPUB viewer requires `epubjs` — install or use download.",c.value=!1;return}try{const y=_.default??_;let g=t.url;if(t.authHeaders){const v=t.authHeaders(),E=await fetch(t.url,{headers:v,credentials:t.authCredentials||"same-origin"});if(!E.ok)throw new Error(`${E.status} ${E.statusText}`);g=await E.arrayBuffer()}if(u=y(g),!n.value)throw new Error("EPUB mount target missing");f=u.renderTo(n.value,{width:"100%",height:"100%",flow:"paginated",manager:"default"}),await f.display(),f.themes.fontSize(o.value+"%");const b=await u.loaded.navigation;i.value=(b==null?void 0:b.toc)??[],s.value=!0}catch(y){a.value=y instanceof Error?y.message:"EPUB load failed"}finally{c.value=!1}}function d(){var _;(_=f==null?void 0:f.next)==null||_.call(f)}function p(){var _;(_=f==null?void 0:f.prev)==null||_.call(f)}function w(_){_.key==="ArrowRight"||_.key==="PageDown"?d():(_.key==="ArrowLeft"||_.key==="PageUp")&&p()}l.onMounted(()=>{h(),window.addEventListener("keydown",w)}),l.onBeforeUnmount(()=>{var _,y;window.removeEventListener("keydown",w);try{(_=f==null?void 0:f.destroy)==null||_.call(f)}catch{}try{(y=u==null?void 0:u.destroy)==null||y.call(u)}catch{}f=null,u=null}),l.watch(()=>t.url,()=>{if(f)try{f.destroy()}catch{}if(u)try{u.destroy()}catch{}u=null,f=null,h()});function m(_,y){return t.t?t.t(_):y}return(_,y)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"root",ref:r,class:"filex-viewer-epub"},[a.value?(l.openBlock(),l.createElementBlock("div",o3,[y[0]||(y[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📖",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createElementVNode("div",{ref_key:"containerRef",ref:n,class:"filex-viewer-epub__rendition"},null,512),s.value?(l.openBlock(),l.createElementBlock("div",l3,[l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",onClick:p,disabled:!s.value},"‹",8,s3),l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",onClick:d,disabled:!s.value},"›",8,c3)])):l.createCommentVNode("",!0),c.value?(l.openBlock(),l.createElementBlock("div",u3,l.toDisplayString(m("viewer.loading","Loading…")),1)):l.createCommentVNode("",!0)],64))],512))}}),[["__scopeId","data-v-12eb7133"]])},Symbol.toStringTag,{value:"Module"}));async function vc(e){const t=await fetch(e.url,{headers:e.headers??{},credentials:e.credentials??"same-origin",signal:e.signal});if(!t.ok){const r=await t.text().catch(()=>"");throw new Error(`${t.status} ${t.statusText}${r?" — "+r.slice(0,200):""}`)}return t}async function gc(e){return(await vc(e)).arrayBuffer()}async function t0(e){return(await vc(e)).text()}const d3={class:"filex-viewer-mermaid"},h3={key:0,class:"filex-viewer-fallback"},p3={key:1,class:"filex-viewer-fallback"},yc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"MermaidViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref(!0),i=l.ref(1),o=l.ref(0),s=l.ref(0);let c=!1,u=null,f=0,h=null;async function d(){var b,v;if(h)return h;try{const E=await import("mermaid");return h=E.default??E,(v=h.initialize)==null||v.call(h,{startOnLoad:!1,securityLevel:"strict",theme:(b=window.matchMedia)!=null&&b.call(window,"(prefers-color-scheme: dark)").matches?"dark":"default"}),h}catch{return null}}async function p(){var C;a.value=!0,n.value=null;const b=++f,v=await d();if(b!==f)return;if(!v){n.value=t.t?t.t("viewer.peer_not_installed"):"Mermaid viewer requires `mermaid` — install or use download.",a.value=!1;return}let E;try{E=await t0({url:t.url,headers:((C=t.authHeaders)==null?void 0:C.call(t))??{},credentials:t.authCredentials})}catch(A){n.value=A instanceof Error?A.message:"fetch failed",a.value=!1;return}if(b===f)try{const A=`filex-mermaid-${Date.now()}`,{svg:k}=await v.render(A,E);if(b!==f)return;if(r.value){r.value.innerHTML=k;const B=r.value.querySelector("svg");B&&(B.style.maxWidth="100%",B.style.height="auto")}}catch(A){n.value=A instanceof Error?A.message:"render failed"}finally{a.value=!1}}function w(b){if(!b.ctrlKey&&!b.metaKey)return;b.preventDefault();const E=-b.deltaY>0?1.1:1/1.1;i.value=Math.max(.2,Math.min(8,i.value*E))}function m(b){var v,E;c=!0,u={x:b.clientX,y:b.clientY,tx:o.value,ty:s.value},(E=(v=b.target).setPointerCapture)==null||E.call(v,b.pointerId)}function _(b){!c||!u||(o.value=u.tx+(b.clientX-u.x),s.value=u.ty+(b.clientY-u.y))}function y(){c=!1,u=null}l.onMounted(p),l.onBeforeUnmount(()=>{f++});function g(b,v){return t.t?t.t(b):v}return(b,v)=>(l.openBlock(),l.createElementBlock("div",d3,[l.createElementVNode("div",{class:"filex-viewer-mermaid__pane",onWheel:w,onPointerdown:m,onPointermove:_,onPointerup:y,onPointercancel:y},[n.value?(l.openBlock(),l.createElementBlock("div",h3,[v[0]||(v[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):a.value?(l.openBlock(),l.createElementBlock("div",p3,[v[1]||(v[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(g("viewer.loading","Loading…")),1)])):l.createCommentVNode("",!0),l.withDirectives(l.createElementVNode("div",{ref_key:"surface",ref:r,class:"filex-viewer-mermaid__surface",style:l.normalizeStyle({transform:`translate(${o.value}px, ${s.value}px) scale(${i.value})`})},null,4),[[l.vShow,!a.value&&!n.value]])],32)]))}}),[["__scopeId","data-v-939eea2b"]])},Symbol.toStringTag,{value:"Module"})),m3={class:"filex-viewer-drawio"},v3={key:0,class:"filex-viewer-fallback"},g3=["src"],bc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"DrawioViewer",props:{url:{},filePath:{},ext:{},drawioUrl:{},saveUrl:{},readOnly:{type:Boolean},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref("loading"),i=l.ref(!!t.readOnly||!t.saveUrl),o=l.computed(()=>t.drawioUrl?t.drawioUrl.replace(/\/$/,""):null),s=l.computed(()=>{if(!o.value)return"";const m=new URLSearchParams({embed:"1",proto:"json",spin:"1",saveAndExit:"0",noSaveBtn:i.value?"1":"0",noExitBtn:"1",ui:"kennedy",modified:"unsavedChanges"});return`${o.value}/?${m.toString()}`});let c="";async function u(){var m;a.value="loading",n.value=null;try{c=await t0({url:t.url,headers:((m=t.authHeaders)==null?void 0:m.call(t))??{},credentials:t.authCredentials})}catch(_){n.value=_ instanceof Error?_.message:"fetch failed",a.value="error"}}function f(m){var _,y;(y=(_=r.value)==null?void 0:_.contentWindow)==null||y.postMessage(JSON.stringify(m),"*")}async function h(m){var _;if(t.saveUrl){a.value="saving";try{const y={"Content-Type":"application/json",...((_=t.authHeaders)==null?void 0:_.call(t))??{}},g=await fetch(t.saveUrl,{method:"POST",headers:y,credentials:t.authCredentials||"same-origin",body:JSON.stringify({path:t.filePath,content:m})});if(!g.ok)throw new Error(`${g.status} ${g.statusText}`);a.value="saved",setTimeout(()=>{a.value==="saved"&&(a.value="ready")},2500)}catch(y){n.value=y instanceof Error?y.message:"save failed",a.value="error"}}}function d(m){if(typeof m.data!="string"||m.data.length===0)return;const _=m.data[0];if(_!=="{"&&_!=="<")return;let y;try{y=JSON.parse(m.data)}catch{return}if(!(!y||typeof y!="object"))switch(y.event){case"init":f({action:"load",xml:c,autosave:0}),a.value="ready";break;case"save":typeof y.xml=="string"&&h(y.xml);break;case"export":break;case"autosave":typeof y.xml=="string"&&!i.value&&h(y.xml);break}}function p(){if(!o.value){n.value=w("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış."),a.value="error";return}n.value===w("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış.")&&(n.value=null,a.value="loading"),u()}l.onMounted(()=>{window.addEventListener("message",d),p()}),l.watch(()=>t.drawioUrl,p),l.onBeforeUnmount(()=>{window.removeEventListener("message",d)});function w(m,_){return t.t?t.t(m):_}return(m,_)=>(l.openBlock(),l.createElementBlock("div",m3,[n.value?(l.openBlock(),l.createElementBlock("div",v3,[_[0]||(_[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📐",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):(l.openBlock(),l.createElementBlock("iframe",{key:1,ref_key:"iframeRef",ref:r,src:s.value,class:"filex-viewer-drawio__frame",title:"diagrams.net editor"},null,8,g3))]))}}),[["__scopeId","data-v-2e4b5f3b"]])},Symbol.toStringTag,{value:"Module"})),y3={class:"filex-viewer-tiff"},b3={class:"filex-viewer-tiff__pane"},w3={key:0,class:"filex-viewer-fallback"},_3={key:1,class:"filex-viewer-fallback"},x3={key:2,class:"filex-viewer-tiff__pager"},k3=["disabled"],S3={class:"filex-viewer-tiff__pages"},E3=["disabled"],wc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"TiffViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref(null),a=l.ref(!0);l.ref(1);const i=l.ref(0),o=l.ref(0),s=l.ref({width:0,height:0});let c=null,u=null,f=0;async function h(){if(c)return c;try{const g=await Promise.resolve().then(()=>d8);return c=g.default??g,c}catch{return null}}async function d(){var v;a.value=!0,n.value=null,u=null,i.value=0,o.value=0;const g=++f,b=await h();if(g===f){if(!b){n.value=t.t?t.t("viewer.peer_not_installed"):"TIFF viewer requires `utif` — install or use download.",a.value=!1;return}try{const E=await gc({url:t.url,headers:((v=t.authHeaders)==null?void 0:v.call(t))??{},credentials:t.authCredentials});if(g!==f)return;if(u=b.decode(E),o.value=(u==null?void 0:u.length)??0,o.value===0)throw new Error("No pages decoded");p()}catch(E){n.value=E instanceof Error?E.message:"TIFF decode failed"}finally{a.value=!1}}}function p(){if(!c||!u||!r.value)return;const g=Math.max(0,Math.min(i.value,u.length-1)),b=u[g];try{c.decodeImage(void 0,b)}catch{}const v=c.toRGBA8(b),E=b.width,C=b.height;s.value={width:E,height:C};const A=r.value;A.width=E,A.height=C;const k=A.getContext("2d");if(!k)return;const B=k.createImageData(E,C);B.data.set(v),k.putImageData(B,0,0)}function w(){i.value<o.value-1&&(i.value++,p())}function m(){i.value>0&&(i.value--,p())}l.onMounted(d),l.onBeforeUnmount(()=>{f++,u=null}),l.watch(()=>t.url,d);const _=l.computed(()=>(t.t&&t.t("viewer.page_n_of_m")||"Page {n} of {m}").replace("{n}",String(i.value+1)).replace("{m}",String(o.value)));function y(g,b){return t.t?t.t(g):b}return(g,b)=>(l.openBlock(),l.createElementBlock("div",y3,[l.createElementVNode("div",b3,[n.value?(l.openBlock(),l.createElementBlock("div",w3,[b[0]||(b[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🖼️",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):a.value?(l.openBlock(),l.createElementBlock("div",_3,[b[1]||(b[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(y("viewer.loading","Loading…")),1)])):l.createCommentVNode("",!0),l.withDirectives(l.createElementVNode("canvas",{ref_key:"canvasEl",ref:r,style:{imageRendering:"pixelated"}},null,512),[[l.vShow,!a.value&&!n.value]]),!a.value&&!n.value&&o.value>1?(l.openBlock(),l.createElementBlock("div",x3,[l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:i.value===0,onClick:m},"‹",8,k3),l.createElementVNode("span",S3,l.toDisplayString(_.value),1),l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:i.value>=o.value-1,onClick:w},"›",8,E3)])):l.createCommentVNode("",!0)])]))}}),[["__scopeId","data-v-c6b84f5d"]])},Symbol.toStringTag,{value:"Module"})),C3={class:"filex-viewer-psd"},D3={class:"filex-viewer-psd__pane"},A3={key:0,class:"filex-viewer-fallback"},B3={key:1,class:"filex-viewer-fallback"},T3=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"PsdViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref(null),n=l.ref([]),a=l.ref(null),i=l.ref(!0);l.ref(!1);const o=l.ref({width:0,height:0});l.ref(1);let s=0,c=null;async function u(){if(c)return c;try{return c=await Promise.resolve().then(()=>T9),c}catch{return null}}function f(p,w){if(p&&Array.isArray(p.children))for(const m of p.children)w.push({index:w.length,name:m.name??"(unnamed)",hidden:!!m.hidden}),m.children&&f(m,w)}async function h(){var m;i.value=!0,a.value=null,n.value=[];const p=++s,w=await u();if(p===s){if(!w){a.value=t.t?t.t("viewer.peer_not_installed"):"PSD viewer requires `ag-psd` — install or use download.",i.value=!1;return}try{const _=await gc({url:t.url,headers:((m=t.authHeaders)==null?void 0:m.call(t))??{},credentials:t.authCredentials});if(p!==s)return;const y=w.readPsd(_,{skipLayerImageData:!1,skipCompositeImageData:!1,skipThumbnail:!0});o.value={width:y.width,height:y.height};const g=y.canvas;if(g&&r.value){const v=r.value;v.width=y.width,v.height=y.height;const E=v.getContext("2d");E==null||E.drawImage(g,0,0)}else throw new Error("PSD has no composite image (skipCompositeImageData?)");const b=[];f(y,b),n.value=b}catch(_){a.value=_ instanceof Error?_.message:"PSD decode failed"}finally{i.value=!1}}}l.onMounted(h),l.onBeforeUnmount(()=>{s++}),l.watch(()=>t.url,h);function d(p,w){return t.t?t.t(p):w}return(p,w)=>(l.openBlock(),l.createElementBlock("div",C3,[l.createElementVNode("div",D3,[a.value?(l.openBlock(),l.createElementBlock("div",A3,[w[0]||(w[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🎨",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):i.value?(l.openBlock(),l.createElementBlock("div",B3,[w[1]||(w[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(d("viewer.loading","Loading…")),1)])):l.createCommentVNode("",!0),l.withDirectives(l.createElementVNode("canvas",{ref_key:"canvasEl",ref:r},null,512),[[l.vShow,!i.value&&!a.value]])])]))}}),[["__scopeId","data-v-001123c3"]])},Symbol.toStringTag,{value:"Module"})),M3={class:"filex-viewer-ipynb"},I3={class:"filex-viewer-ipynb__pane"},z3={key:0,class:"filex-viewer-fallback"},F3={key:1,class:"filex-viewer-fallback"},N3={key:2},O3=["data-type"],L3={class:"filex-viewer-ipynb__exec"},P3={class:"filex-viewer-ipynb__src hljs"},R3=["innerHTML"],V3={key:1},$3={key:0,class:"filex-viewer-ipynb__outputs"},U3=["src","alt"],H3=["innerHTML"],G3=["data-type"],j3=["innerHTML"],q3={key:1,class:"filex-viewer-ipynb__md-raw"},W3={key:2,class:"filex-viewer-ipynb__src"},X3=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"IpynbViewer",props:{url:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref([]),n=l.ref("python"),a=l.ref(null),i=l.ref(!0),o=l.ref(new Map),s=l.ref(new Map);let c=0,u=null,f=null;async function h(){if(f!==null)return f||null;try{const g=await import("markdown-it"),b=g.default??g;return f=new b({html:!1,linkify:!0,breaks:!0}),f}catch{return f=!1,null}}function d(g){return Array.isArray(g)?g.join(""):g??""}async function p(){var C,A,k,B;i.value=!0,a.value=null,r.value=[],o.value=new Map,s.value=new Map;const g=++c;let b;try{b=await t0({url:t.url,headers:((C=t.authHeaders)==null?void 0:C.call(t))??{},credentials:t.authCredentials})}catch(T){a.value=T instanceof Error?T.message:"fetch failed",i.value=!1;return}if(g!==c)return;let v;try{v=JSON.parse(b)}catch{a.value="Invalid notebook JSON",i.value=!1;return}if(r.value=Array.isArray(v.cells)?v.cells:[],n.value=((k=(A=v.metadata)==null?void 0:A.kernelspec)==null?void 0:k.language)||"python",u=await e0(),g!==c)return;if(u){const T=u.default??u,F=(B=T.getLanguage)!=null&&B.call(T,n.value)?n.value:null;r.value.forEach((V,L)=>{if(V.cell_type==="code"){const H=d(V.source);try{const X=F?T.highlight(H,{language:F,ignoreIllegals:!0}):T.highlightAuto(H);o.value.set(L,X.value)}catch{}}})}const E=await h();g===c&&(E&&r.value.forEach((T,F)=>{if(T.cell_type==="markdown")try{s.value.set(F,E.render(d(T.source)))}catch{}}),i.value=!1)}function w(g){var b;return g?g.output_type==="stream"?d(g.text):g.output_type==="error"?[g.ename,g.evalue,...g.traceback||[]].filter(Boolean).join(`
|
|
3
|
+
`):(g.output_type==="execute_result"||g.output_type==="display_data")&&(b=g.data)!=null&&b["text/plain"]?d(g.data["text/plain"]):null:null}function m(g){if(!(g!=null&&g.data))return null;if(g.data["image/png"])return`data:image/png;base64,${g.data["image/png"]}`;if(g.data["image/jpeg"])return`data:image/jpeg;base64,${g.data["image/jpeg"]}`;if(g.data["image/svg+xml"]){const b=d(g.data["image/svg+xml"]);return`data:image/svg+xml;utf8,${encodeURIComponent(b)}`}return null}function _(g){return g!=null&&g.data&&g.data["text/html"]?d(g.data["text/html"]).replace(/<script[\s\S]*?<\/script>/gi,""):null}l.onMounted(p),l.onBeforeUnmount(()=>{c++}),l.watch(()=>t.url,p),l.computed(()=>{const g=r.value.filter(v=>v.cell_type==="code").length,b=r.value.filter(v=>v.cell_type==="markdown").length;return{code:g,md:b,total:r.value.length}});function y(g,b){return t.t?t.t(g):b}return(g,b)=>(l.openBlock(),l.createElementBlock("div",M3,[l.createElementVNode("div",I3,[a.value?(l.openBlock(),l.createElementBlock("div",z3,[b[0]||(b[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📓",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):i.value?(l.openBlock(),l.createElementBlock("div",F3,[b[1]||(b[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(y("viewer.loading","Loading…")),1)])):(l.openBlock(),l.createElementBlock("div",N3,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,(v,E)=>(l.openBlock(),l.createElementBlock("div",{key:E,class:"filex-viewer-ipynb__cell","data-type":v.cell_type},[v.cell_type==="code"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:0},[l.createElementVNode("div",L3," In ["+l.toDisplayString(v.execution_count??" ")+"]: ",1),l.createElementVNode("pre",P3,[o.value.get(E)?(l.openBlock(),l.createElementBlock("code",{key:0,innerHTML:o.value.get(E)},null,8,R3)):(l.openBlock(),l.createElementBlock("code",V3,l.toDisplayString(d(v.source)),1))]),v.outputs&&v.outputs.length?(l.openBlock(),l.createElementBlock("div",$3,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(v.outputs,(C,A)=>(l.openBlock(),l.createElementBlock(l.Fragment,{key:A},[m(C)?(l.openBlock(),l.createElementBlock("img",{key:0,src:m(C)||"",class:"filex-viewer-ipynb__img",alt:`output ${A}`},null,8,U3)):_(C)?(l.openBlock(),l.createElementBlock("div",{key:1,class:"filex-viewer-ipynb__html",innerHTML:_(C)},null,8,H3)):w(C)?(l.openBlock(),l.createElementBlock("pre",{key:2,class:"filex-viewer-ipynb__out","data-type":C.output_type},l.toDisplayString(w(C)),9,G3)):l.createCommentVNode("",!0)],64))),128))])):l.createCommentVNode("",!0)],64)):v.cell_type==="markdown"?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[s.value.get(E)?(l.openBlock(),l.createElementBlock("div",{key:0,class:"filex-viewer-ipynb__md",innerHTML:s.value.get(E)},null,8,j3)):(l.openBlock(),l.createElementBlock("pre",q3,l.toDisplayString(d(v.source)),1))],64)):(l.openBlock(),l.createElementBlock("pre",W3,l.toDisplayString(d(v.source)),1))],8,O3))),128))]))])]))}}),[["__scopeId","data-v-eece712d"]])},Symbol.toStringTag,{value:"Module"})),Z3={class:"filex-viewer-csv"},K3={class:"filex-viewer-csv__pane"},Y3={key:0,class:"filex-viewer-fallback"},J3={key:1,class:"filex-viewer-fallback"},Q3={key:2,class:"filex-viewer-csv__table"},eg={class:"filex-viewer-csv__rownum"},tg={key:0,class:"filex-viewer-csv__pager"},rg=["disabled"],ng={class:"filex-viewer-csv__pageno"},ag=["disabled"],No=100,_c=1e3,xc=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"CsvViewer",props:{url:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref([]),n=l.ref(null),a=l.ref(!0),i=l.ref(!0),o=l.ref(""),s=l.ref(1),c=l.ref(","),u=l.ref("auto");let f=0;function h(v){const E=v.split(/\r?\n/).slice(0,5).join(`
|
|
4
|
+
`),C=(E.match(/\t/g)||[]).length,A=(E.match(/;/g)||[]).length,k=(E.match(/,/g)||[]).length;return C>k&&C>A?" ":A>k&&A>C?";":","}async function d(v,E){try{const C=await Promise.resolve().then(()=>M9);return(C.default??C).parse(v,{delimiter:E,skipEmptyLines:!0,header:!1}).data.slice(0,_c)}catch{return v.split(/\r?\n/).filter(C=>C.length>0).slice(0,_c).map(C=>C.split(E))}}async function p(){var A;a.value=!0,n.value=null,r.value=[],s.value=1;const v=++f;let E;try{E=await t0({url:t.url,headers:((A=t.authHeaders)==null?void 0:A.call(t))??{},credentials:t.authCredentials})}catch(k){n.value=k instanceof Error?k.message:"fetch failed",a.value=!1;return}if(v!==f)return;t.ext==="tsv"?c.value=" ":c.value=h(E.slice(0,4096));const C=u.value==="auto"?c.value:u.value;r.value=await d(E,C),a.value=!1}l.onMounted(p),l.watch(()=>t.url,p),l.watch(()=>u.value,()=>{r.value.length!==0&&p()});const w=l.computed(()=>!i.value||r.value.length===0?r.value.length===0?[]:r.value[0].map((v,E)=>`Col ${E+1}`):r.value[0]),m=l.computed(()=>i.value?r.value.slice(1):r.value),_=l.computed(()=>{const v=o.value.trim().toLowerCase();return v?m.value.filter(E=>E.some(C=>(C||"").toLowerCase().includes(v))):m.value}),y=l.computed(()=>Math.max(1,Math.ceil(_.value.length/No))),g=l.computed(()=>{const v=(s.value-1)*No;return _.value.slice(v,v+No)});l.watch(o,()=>{s.value=1});function b(v,E){return t.t?t.t(v):E}return(v,E)=>(l.openBlock(),l.createElementBlock("div",Z3,[l.createElementVNode("div",K3,[n.value?(l.openBlock(),l.createElementBlock("div",Y3,[E[2]||(E[2]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),l.createElementVNode("p",null,l.toDisplayString(n.value),1)])):a.value?(l.openBlock(),l.createElementBlock("div",J3,[E[3]||(E[3]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(b("viewer.loading","Loading…")),1)])):(l.openBlock(),l.createElementBlock("table",Q3,[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[E[4]||(E[4]=l.createElementVNode("th",{class:"filex-viewer-csv__rownum"},"#",-1)),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(w.value,(C,A)=>(l.openBlock(),l.createElementBlock("th",{key:A},l.toDisplayString(C),1))),128))])]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(g.value,(C,A)=>(l.openBlock(),l.createElementBlock("tr",{key:A},[l.createElementVNode("td",eg,l.toDisplayString((s.value-1)*100+A+1),1),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(C,(k,B)=>(l.openBlock(),l.createElementBlock("td",{key:B},l.toDisplayString(k),1))),128))]))),128))])]))]),!a.value&&!n.value&&y.value>1?(l.openBlock(),l.createElementBlock("div",tg,[l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:s.value<=1,onClick:E[0]||(E[0]=C=>s.value--)},"‹",8,rg),l.createElementVNode("span",ng,l.toDisplayString(s.value)+" / "+l.toDisplayString(y.value)+" ("+l.toDisplayString(_.value.length)+" satır)",1),l.createElementVNode("button",{type:"button",class:"filex-viewer-btn",disabled:s.value>=y.value,onClick:E[1]||(E[1]=C=>s.value++)},"›",8,ag)])):l.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-db55a104"]])},Symbol.toStringTag,{value:"Module"})),ig={class:"filex-viewer-archive"},og={key:0,class:"filex-viewer-fallback"},lg={key:1,class:"filex-viewer-fallback"},sg={key:2,class:"filex-viewer-fallback"},cg={key:3,class:"filex-viewer-archive__pane"},ug={class:"filex-viewer-archive__summary"},fg={class:"filex-viewer-archive__table"},dg={class:"filex-viewer-archive__size"},hg=["data-dir"],pg={class:"filex-viewer-archive__icon"},mg={class:"filex-viewer-archive__size"},vg=Object.freeze(Object.defineProperty({__proto__:null,default:xr(l.defineComponent({__name:"ArchiveViewer",props:{url:{},filePath:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=l.ref([]),n=l.ref(!0),a=l.ref(null);function i(f,h){return t.t?t.t(f):h}function o(f){return f<1024?`${f} B`:f<1024*1024?`${(f/1024).toFixed(1)} KB`:f<1024*1024*1024?`${(f/(1024*1024)).toFixed(1)} MB`:`${(f/(1024*1024*1024)).toFixed(2)} GB`}async function s(){if(n.value=!0,a.value=null,r.value=[],!t.filePath){a.value=i("viewer.archive.error","Could not read archive contents."),n.value=!1;return}try{const f=await fetch("/api/files/archive/list",{method:"POST",credentials:t.authCredentials||"include",headers:{"Content-Type":"application/json",...t.authHeaders?t.authHeaders():{}},body:JSON.stringify({path:t.filePath})});if(!f.ok)throw new Error(`${f.status} ${f.statusText}`);const h=await f.json();r.value=h.entries??[]}catch(f){a.value=f instanceof Error?f.message:i("viewer.archive.error","Could not read archive contents.")}finally{n.value=!1}}l.onMounted(s),l.watch(()=>t.filePath,s);const c=l.computed(()=>r.value.reduce((f,h)=>f+(h.size||0),0)),u=l.computed(()=>r.value.filter(f=>!f.is_dir).length);return(f,h)=>(l.openBlock(),l.createElementBlock("div",ig,[a.value?(l.openBlock(),l.createElementBlock("div",og,[h[0]||(h[0]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🗜️",-1)),l.createElementVNode("p",null,l.toDisplayString(a.value),1)])):n.value?(l.openBlock(),l.createElementBlock("div",lg,[h[1]||(h[1]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),l.createElementVNode("p",null,l.toDisplayString(i("viewer.loading","Loading…")),1)])):r.value.length===0?(l.openBlock(),l.createElementBlock("div",sg,[h[2]||(h[2]=l.createElementVNode("span",{class:"filex-viewer-fallback__icon"},"🗜️",-1)),l.createElementVNode("p",null,l.toDisplayString(i("viewer.archive.empty","Archive is empty.")),1)])):(l.openBlock(),l.createElementBlock("div",cg,[l.createElementVNode("div",ug,l.toDisplayString(u.value)+" "+l.toDisplayString(i("viewer.archive.entries","{n} files").replace("{n}",String(u.value)))+" · "+l.toDisplayString(o(c.value)),1),l.createElementVNode("table",fg,[l.createElementVNode("thead",null,[l.createElementVNode("tr",null,[l.createElementVNode("th",null,l.toDisplayString(i("viewer.name","Name")),1),l.createElementVNode("th",dg,l.toDisplayString(i("viewer.size","Size")),1)])]),l.createElementVNode("tbody",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,(d,p)=>(l.openBlock(),l.createElementBlock("tr",{key:p,"data-dir":d.is_dir?"1":"0"},[l.createElementVNode("td",null,[l.createElementVNode("span",pg,l.toDisplayString(d.is_dir?"📁":"📄"),1),l.createTextVNode(" "+l.toDisplayString(d.name),1)]),l.createElementVNode("td",mg,l.toDisplayString(d.is_dir?"":o(d.size)),1)],8,hg))),128))])])]))]))}}),[["__scopeId","data-v-93df7b13"]])},Symbol.toStringTag,{value:"Module"}));class Me extends Error{constructor(t,r){var n="KaTeX parse error: "+t,a,i,o=r&&r.loc;if(o&&o.start<=o.end){var s=o.lexer.input;a=o.start,i=o.end,a===s.length?n+=" at end of input: ":n+=" at position "+(a+1)+": ";var c=s.slice(a,i).replace(/[^]/g,"$&̲"),u;a>15?u="…"+s.slice(a-15,a):u=s.slice(0,a);var f;i+15<s.length?f=s.slice(i,i+15)+"…":f=s.slice(i),n+=u+c+f}super(n),this.name="ParseError",Object.setPrototypeOf(this,Me.prototype),this.position=a,a!=null&&i!=null&&(this.length=i-a),this.rawMessage=t}}var gg=/([A-Z])/g,Oo=e=>e.replace(gg,"-$1").toLowerCase(),yg={"&":"&",">":">","<":"<",'"':""","'":"'"},bg=/[&><"']/g,ur=e=>String(e).replace(bg,t=>yg[t]),r0=e=>e.type==="ordgroup"||e.type==="color"?e.body.length===1?r0(e.body[0]):e:e.type==="font"?r0(e.body):e,wg=new Set(["mathord","textord","atom"]),bn=e=>wg.has(r0(e).type),_g=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},n0={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function xg(e){if("default"in e)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class Lo{constructor(t){t===void 0&&(t={}),t=t||{};for(var r of Object.keys(n0)){var n=n0[r],a=t[r];this[r]=a!==void 0?n.processor?n.processor(a):a:xg(n)}}reportNonstrict(t,r,n){var a=this.strict;if(typeof a=="function"&&(a=a(t,r,n)),!(!a||a==="ignore")){if(a===!0||a==="error")throw new Me("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+t+"]"),n);a==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]"))}}useStrictBehavior(t,r,n){var a=this.strict;if(typeof a=="function")try{a=a(t,r,n)}catch{a="error"}return!a||a==="ignore"?!1:a===!0||a==="error"?!0:a==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]")),!1)}isTrusted(t){if("url"in t&&t.url&&!t.protocol){var r=_g(t.url);if(r==null)return!1;t.protocol=r}var n=typeof this.trust=="function"?this.trust(t):this.trust;return!!n}}class On{constructor(t,r,n){this.id=t,this.size=r,this.cramped=n}sup(){return ln[kg[this.id]]}sub(){return ln[Sg[this.id]]}fracNum(){return ln[Eg[this.id]]}fracDen(){return ln[Cg[this.id]]}cramp(){return ln[Dg[this.id]]}text(){return ln[Ag[this.id]]}isTight(){return this.size>=2}}var Po=0,a0=1,_a=2,wn=3,ui=4,Vr=5,xa=6,pr=7,ln=[new On(Po,0,!1),new On(a0,0,!0),new On(_a,1,!1),new On(wn,1,!0),new On(ui,2,!1),new On(Vr,2,!0),new On(xa,3,!1),new On(pr,3,!0)],kg=[ui,Vr,ui,Vr,xa,pr,xa,pr],Sg=[Vr,Vr,Vr,Vr,pr,pr,pr,pr],Eg=[_a,wn,ui,Vr,xa,pr,xa,pr],Cg=[wn,wn,Vr,Vr,pr,pr,pr,pr],Dg=[a0,a0,wn,wn,Vr,Vr,pr,pr],Ag=[Po,a0,_a,wn,_a,wn,_a,wn],lt={DISPLAY:ln[Po],TEXT:ln[_a],SCRIPT:ln[ui],SCRIPTSCRIPT:ln[xa]},Ro=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function Bg(e){for(var t=0;t<Ro.length;t++)for(var r=Ro[t],n=0;n<r.blocks.length;n++){var a=r.blocks[n];if(e>=a[0]&&e<=a[1])return r.name}return null}var i0=[];Ro.forEach(e=>e.blocks.forEach(t=>i0.push(...t)));function kc(e){for(var t=0;t<i0.length;t+=2)if(e>=i0[t]&&e<=i0[t+1])return!0;return!1}var Qt=e=>e+" "+e,ka=80,Tg=function(t,r){return"M95,"+(622+t+r)+`
|
|
5
5
|
c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14
|
|
6
6
|
c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54
|
|
7
7
|
c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10
|