@brftech/filex-core 0.34.0 β†’ 0.34.2

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.
@@ -29,7 +29,7 @@
29
29
  `)},{kind:"note",text:n("conn.guide.nfs.mac.resvport")}]},{id:"windows",name:"Windows (Client for NFS)",platform:"windows",blocks:[{kind:"steps",steps:[n("conn.guide.nfs.win.s1"),n("conn.guide.nfs.win.s2"),n("conn.guide.nfs.win.s3")]},{kind:"code",caption:n("conn.guide.nfs.win.cmdCaption"),code:`mount -o anon nolock ${a}:${o} Z:`},{kind:"warn",text:n("conn.guide.nfs.win.port")}]},{id:"synology",name:n("conn.guide.nfs.nas.tab"),platform:"any",blocks:[{kind:"steps",steps:[n("conn.guide.nfs.nas.s1",{host:a,port:String(r)}),n("conn.guide.nfs.nas.s2"),n("conn.guide.nfs.nas.s3")]}]}],d=[{kind:"warn",text:n("conn.guide.nfs.note.unencrypted")},{kind:"warn",text:n("conn.guide.nfs.note.pathIsSecret")},{kind:"note",text:n("conn.guide.nfs.note.noPortmapper")},{kind:"note",text:n("conn.guide.nfs.note.uid")},{kind:"note",text:n("conn.guide.nfs.note.trash")},{kind:"note",text:n("conn.guide.nfs.note.revoke")}];return e.nfsEnabled===!1&&d.unshift({kind:"warn",text:n("conn.guide.nfs.note.disabled")}),{id:"nfs",name:"NFS",summary:n("conn.guide.nfs.summary"),facts:l,clients:c,notes:d}},e0={webdav:bm,s3:vm,sftp:km,ftps:_m,nfs:wm,mount:(e,n)=>{const a=e.origin.replace(/\/+$/,""),r=e.storage||e.storages[0]||"main",o=[{label:n("conn.guide.mount.fact.url"),value:a,hint:n("conn.guide.mount.fact.urlHint")},{label:n("conn.guide.mount.fact.token"),value:n("conn.guide.mount.fact.tokenPlaceholder"),hint:n("conn.guide.mount.fact.tokenHint"),placeholderOnly:!0},{label:n("conn.guide.mount.fact.remote"),value:`${r}://`,hint:n("conn.guide.mount.fact.remoteHint")}],i=[{id:"linux",name:"Linux",platform:"linux",blocks:[{kind:"code",caption:n("conn.guide.mount.linux.mountCaption"),code:[`export FILEX_URL=${a}`,"export FILEX_TOKEN=<token>","","mkdir -p ~/filex","filex mount ~/filex","","# one storage only, or a subfolder of it:",`filex mount --remote '${r}://' ~/filex`,`filex mount --remote '${r}://projects/acme' --read-only ~/acme`].join(`
30
30
  `)},{kind:"code",caption:n("conn.guide.mount.linux.umountCaption"),code:"fusermount -u ~/filex"},{kind:"warn",text:n("conn.guide.mount.linux.umountWarn")},{kind:"code",caption:n("conn.guide.mount.linux.systemdCaption"),code:["# ~/.config/systemd/user/filex-mount.service","[Unit]","Description=filex mount","After=network-online.target","","[Service]",`Environment=FILEX_URL=${a}`,"Environment=FILEX_TOKEN=<token>","ExecStart=%h/.local/bin/filex mount %h/filex","ExecStop=/bin/fusermount -u %h/filex","Restart=on-failure","","[Install]","WantedBy=default.target"].join(`
31
31
  `)}]},{id:"windows",name:"Windows",platform:"windows",blocks:[{kind:"note",text:n("conn.guide.mount.win.winfsp")},{kind:"code",caption:n("conn.guide.mount.win.mountCaption"),code:[`$env:FILEX_URL = "${a}"`,'$env:FILEX_TOKEN = "<token>"',"","filex mount Z:"].join(`
32
- `)},{kind:"warn",text:n("conn.guide.mount.win.freeLetter")},{kind:"note",text:n("conn.guide.mount.win.stop")}]},{id:"macos",name:"macOS",platform:"macos",blocks:[{kind:"warn",text:n("conn.guide.mount.mac.unsupported")},{kind:"note",text:n("conn.guide.mount.mac.alternatives")}]}],s=[{kind:"note",text:n("conn.guide.mount.note.notASync")},{kind:"note",text:n("conn.guide.mount.note.reachable")},{kind:"note",text:n("conn.guide.mount.note.wholeFileWrites")},{kind:"note",text:n("conn.guide.mount.note.trash")},{kind:"note",text:n("conn.guide.mount.note.revoke")}];return{id:"mount",name:"filex mount",summary:n("conn.guide.mount.summary"),facts:o,clients:i,notes:s}}},p7={webdav:"WebDAV",s3:"S3",sftp:"SFTP",ftps:"FTPS",nfs:"NFS",mount:"filex mount"};function h7(e){return p7[e]||e.toUpperCase()}function Em(){return Object.keys(e0)}function Sm(e,n,a){const r=e0[e];return r?r(n,a):null}const m7={class:"fe-cfield"},g7={key:0,class:"fe-cfield__empty"},y7={key:0,class:"fe-cfield__check"},b7=["checked","disabled","onChange"],v7=["for"],k7={key:0,class:"fe-cfield__req","aria-hidden":"true"},_7=["id","value","disabled","onChange"],w7=["value"],E7=["id","value","placeholder","disabled","onInput"],S7={key:4,class:"fe-cfield__secret"},x7=["id","type","value","placeholder","disabled","onInput"],C7=["title","aria-label","onClick"],N7=["id","type","value","placeholder","min","max","disabled","onInput"],B7={key:6,class:"fe-cfield__help"},T7={key:7,class:"fe-cfield__error"},D7={key:1,class:"fe-cfield__adv"},A7={key:0,class:"fe-cfield__advbody"},M7={key:0,class:"fe-cfield__check"},O7=["checked","disabled","onChange"],I7=["for"],R7=["id","type","value","placeholder","disabled","onInput"],z7={key:2,class:"fe-cfield__help"},xm=t.defineComponent({__name:"StorageFields",props:{fields:{},modelValue:{},locale:{},invalid:{},disabled:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=t.ref(!1),s=t.ref({}),l=t.computed(()=>a.fields.filter(b=>!b.advanced)),c=t.computed(()=>a.fields.filter(b=>b.advanced));function d(b){const S=o(b.i18n_key);return S===b.i18n_key?b.label:S}function u(b){if(!b.help_i18n_key)return b.help??"";const S=o(b.help_i18n_key);return S===b.help_i18n_key?b.help??"":S}function p(b){if(!b.i18n_key)return b.label;const S=o(b.i18n_key);return S===b.i18n_key?b.label:S}function f(b,S){r("update:modelValue",{...a.modelValue,[b]:S})}function h(b){var N,T;const S=(N=a.modelValue)==null?void 0:N[b.key];if(S!=null)return S;for(const E of b.aliases??[]){const w=(T=a.modelValue)==null?void 0:T[E];if(w!=null)return w}return b.default??void 0}function _(b){const S=h(b);return S==null?"":String(S)}function m(b){const S=h(b);return S===""||S===void 0||S===null?"":String(S)}function k(b){return h(b)===!0}function g(b){return(a.invalid??[]).includes(b.key)}function v(b){return b.type==="int"?"number":b.type==="password"&&!s.value[b.key]?"password":"text"}function y(b){s.value={...s.value,[b]:!s.value[b]}}return(b,S)=>(t.openBlock(),t.createElementBlock("div",m7,[e.fields.length?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("p",g7,t.toDisplayString(t.unref(o)("conn.form.noFields")),1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,N=>(t.openBlock(),t.createElementBlock("div",{key:N.key,class:t.normalizeClass(["fe-cfield__row",{"is-invalid":g(N)}])},[N.type==="bool"?(t.openBlock(),t.createElementBlock("label",y7,[t.createElementVNode("input",{type:"checkbox",checked:k(N),disabled:e.disabled,onChange:T=>f(N.key,T.target.checked)},null,40,b7),t.createElementVNode("span",null,t.toDisplayString(d(N)),1)])):(t.openBlock(),t.createElementBlock("label",{key:1,class:"fe-cfield__label",for:`fe-cf-${N.key}`},[t.createTextVNode(t.toDisplayString(d(N)),1),N.required?(t.openBlock(),t.createElementBlock("span",k7,"*")):t.createCommentVNode("",!0)],8,v7)),N.type==="select"?(t.openBlock(),t.createElementBlock("select",{key:2,id:`fe-cf-${N.key}`,class:"fe-cfield__input",value:_(N),disabled:e.disabled,onChange:T=>f(N.key,T.target.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(N.options??[],T=>(t.openBlock(),t.createElementBlock("option",{key:T.value,value:T.value},t.toDisplayString(p(T)),9,w7))),128))],40,_7)):N.multiline?(t.openBlock(),t.createElementBlock("textarea",{key:3,id:`fe-cf-${N.key}`,class:t.normalizeClass(["fe-cfield__input fe-cfield__input--area",{"fe-cfield__input--mono":N.monospace}]),rows:"4",value:_(N),placeholder:N.placeholder,disabled:e.disabled,onInput:T=>f(N.key,T.target.value)},null,42,E7)):N.type==="password"?(t.openBlock(),t.createElementBlock("div",S7,[t.createElementVNode("input",{id:`fe-cf-${N.key}`,class:"fe-cfield__input fe-cfield__input--mono",type:v(N),autocomplete:"new-password",spellcheck:"false",value:_(N),placeholder:N.placeholder,disabled:e.disabled,onInput:T=>f(N.key,T.target.value)},null,40,x7),t.createElementVNode("button",{type:"button",class:"fe-cfield__eye",title:s.value[N.key]?t.unref(o)("conn.form.hide"):t.unref(o)("conn.form.reveal"),"aria-label":s.value[N.key]?t.unref(o)("conn.form.hide"):t.unref(o)("conn.form.reveal"),onClick:T=>y(N.key)},t.toDisplayString(s.value[N.key]?"πŸ™ˆ":"πŸ‘"),9,C7)])):N.type!=="bool"?(t.openBlock(),t.createElementBlock("input",{key:5,id:`fe-cf-${N.key}`,class:t.normalizeClass(["fe-cfield__input",{"fe-cfield__input--mono":N.monospace}]),type:v(N),value:N.type==="int"?m(N):_(N),placeholder:N.placeholder,min:N.min,max:N.max,disabled:e.disabled,onInput:T=>f(N.key,N.type==="int"?T.target.value===""?null:Number(T.target.value):T.target.value)},null,42,N7)):t.createCommentVNode("",!0),u(N)?(t.openBlock(),t.createElementBlock("p",B7,t.toDisplayString(u(N)),1)):t.createCommentVNode("",!0),g(N)?(t.openBlock(),t.createElementBlock("p",T7,t.toDisplayString(t.unref(o)("conn.form.required")),1)):t.createCommentVNode("",!0)],2))),128)),c.value.length?(t.openBlock(),t.createElementBlock("div",D7,[t.createElementVNode("button",{type:"button",class:"fe-cfield__advtoggle",onClick:S[0]||(S[0]=N=>i.value=!i.value)},t.toDisplayString(i.value?"β–Ύ":"β–Έ")+" "+t.toDisplayString(t.unref(o)("conn.form.advanced")),1),i.value?(t.openBlock(),t.createElementBlock("div",A7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value,N=>(t.openBlock(),t.createElementBlock("div",{key:N.key,class:"fe-cfield__row"},[N.type==="bool"?(t.openBlock(),t.createElementBlock("label",M7,[t.createElementVNode("input",{type:"checkbox",checked:k(N),disabled:e.disabled,onChange:T=>f(N.key,T.target.checked)},null,40,O7),t.createElementVNode("span",null,t.toDisplayString(d(N)),1)])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("label",{class:"fe-cfield__label",for:`fe-cfa-${N.key}`},t.toDisplayString(d(N)),9,I7),t.createElementVNode("input",{id:`fe-cfa-${N.key}`,class:t.normalizeClass(["fe-cfield__input",{"fe-cfield__input--mono":N.monospace}]),type:v(N),value:N.type==="int"?m(N):_(N),placeholder:N.placeholder,disabled:e.disabled,onInput:T=>f(N.key,N.type==="int"?T.target.value===""?null:Number(T.target.value):T.target.value)},null,42,R7)],64)),u(N)?(t.openBlock(),t.createElementBlock("p",z7,t.toDisplayString(u(N)),1)):t.createCommentVNode("",!0)]))),128))])):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)]))}}),L7={class:"fe-guide"},F7={class:"fe-guide__summary"},$7={class:"fe-guide__facts","data-testid":"guide-facts"},P7={class:"fe-guide__factlabel"},V7={class:"fe-guide__factvalue"},U7=["data-testid","onClick"],H7={key:0,class:"fe-guide__facthint"},K7={class:"fe-guide__tabs",role:"tablist"},G7=["aria-selected","data-testid","onClick"],q7={key:0,class:"fe-guide__body",role:"tabpanel"},W7={key:0,class:"fe-guide__steps"},j7={key:1,class:"fe-guide__codewrap"},Y7={class:"fe-guide__codehead"},X7={class:"fe-guide__caption"},Z7=["data-testid","onClick"],J7={class:"fe-guide__code"},Q7={key:2,class:"fe-guide__warn"},eS={key:3,class:"fe-guide__note"},tS={key:4,class:"fe-guide__text"},nS={key:1,class:"fe-guide__notes"},aS={class:"fe-guide__notestitle"},Cm=t.defineComponent({__name:"ConnectionGuideView",props:{guide:{},locale:{}},setup(e){var u;const n=e,{t:a}=Dt(()=>n.locale),r=t.ref(((u=n.guide.clients[0])==null?void 0:u.id)??""),o=t.ref(null);let i=null;const s=t.computed(()=>n.guide.clients.find(p=>p.id===r.value)??n.guide.clients[0]);async function l(p,f){let h=!1;try{await navigator.clipboard.writeText(p),h=!0}catch{try{const _=document.createElement("textarea");_.value=p,_.setAttribute("readonly",""),_.style.position="fixed",_.style.opacity="0",document.body.appendChild(_),_.select(),h=document.execCommand("copy"),document.body.removeChild(_)}catch{h=!1}}o.value=h?f:null,i&&clearTimeout(i),i=setTimeout(()=>{o.value=null},1600)}function c(p,f){return`${p}-${f}`}function d(p){return p.kind==="code"}return(p,f)=>(t.openBlock(),t.createElementBlock("div",L7,[t.createElementVNode("p",F7,t.toDisplayString(e.guide.summary),1),t.createElementVNode("section",$7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.guide.facts,(h,_)=>(t.openBlock(),t.createElementBlock("div",{key:h.label,class:"fe-guide__fact"},[t.createElementVNode("span",P7,t.toDisplayString(h.label),1),t.createElementVNode("span",V7,[t.createElementVNode("code",{class:t.normalizeClass({"fe-guide__ph":h.placeholderOnly})},t.toDisplayString(h.value),3),h.placeholderOnly?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-guide__copy","data-testid":`copy-fact-${_}`,onClick:m=>l(h.value,c("fact",_))},t.toDisplayString(o.value===c("fact",_)?t.unref(a)("conn.guide.copied"):t.unref(a)("conn.guide.copy")),9,U7))]),h.hint?(t.openBlock(),t.createElementBlock("span",H7,t.toDisplayString(h.hint),1)):t.createCommentVNode("",!0)]))),128))]),t.createElementVNode("nav",K7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.guide.clients,h=>(t.openBlock(),t.createElementBlock("button",{key:h.id,type:"button",role:"tab",class:t.normalizeClass(["fe-guide__tab",{"is-active":s.value&&h.id===s.value.id}]),"aria-selected":s.value&&h.id===s.value.id,"data-testid":`guide-tab-${h.id}`,onClick:_=>r.value=h.id},t.toDisplayString(h.name),11,G7))),128))]),s.value?(t.openBlock(),t.createElementBlock("div",q7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value.blocks,(h,_)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:_},[h.kind==="steps"?(t.openBlock(),t.createElementBlock("ol",W7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.steps??[],(m,k)=>(t.openBlock(),t.createElementBlock("li",{key:k},t.toDisplayString(m),1))),128))])):d(h)?(t.openBlock(),t.createElementBlock("div",j7,[t.createElementVNode("div",Y7,[t.createElementVNode("span",X7,t.toDisplayString(h.caption),1),t.createElementVNode("button",{type:"button",class:"fe-guide__copy","data-testid":`copy-code-${_}`,onClick:m=>l(h.code??"",c(s.value.id,_))},t.toDisplayString(o.value===c(s.value.id,_)?t.unref(a)("conn.guide.copied"):t.unref(a)("conn.guide.copy")),9,Z7)]),t.createElementVNode("pre",J7,[t.createElementVNode("code",null,t.toDisplayString(h.code),1)])])):h.kind==="warn"?(t.openBlock(),t.createElementBlock("p",Q7,t.toDisplayString(h.text),1)):h.kind==="note"?(t.openBlock(),t.createElementBlock("p",eS,t.toDisplayString(h.text),1)):(t.openBlock(),t.createElementBlock("p",tS,t.toDisplayString(h.text),1))],64))),128))])):t.createCommentVNode("",!0),e.guide.notes.length?(t.openBlock(),t.createElementBlock("section",nS,[t.createElementVNode("h4",aS,t.toDisplayString(t.unref(a)("conn.guide.goodToKnow")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.guide.notes,(h,_)=>(t.openBlock(),t.createElementBlock("p",{key:_,class:t.normalizeClass(h.kind==="warn"?"fe-guide__warn":"fe-guide__note")},t.toDisplayString(h.text),3))),128))])):t.createCommentVNode("",!0)]))}});function Nm(e){const n=ao(e),a=ro(e),r=y=>`${a}${y}`,o=t.shallowRef([]),i=t.ref(null),s=t.ref(!1),l=t.ref(!1),c=t.ref(null),d=t.ref(null),u=t.ref(null);function p(y){const b=y;if(b!=null&&b.detail)try{const S=JSON.parse(b.detail);if(S!=null&&S.error)return S.error}catch{}return(b==null?void 0:b.message)||String(y)}function f(y){return y==null?void 0:y.status}async function h(){s.value=!0,c.value=null;try{const y=await n.jsonFetch(r("/api/auth/s3-keys"));o.value=Array.isArray(y==null?void 0:y.keys)?y.keys:[],i.value={endpoint:(y==null?void 0:y.endpoint)??"",enabled:(y==null?void 0:y.enabled)!==!1,path_style:(y==null?void 0:y.path_style)!==!1},d.value=!0}catch(y){o.value=[];const b=f(y);b===401||b===403?d.value=!1:(d.value=!1,c.value=p(y))}finally{s.value=!1,l.value=!0}}async function _(y){c.value=null;try{const b=await n.jsonFetch(r("/api/auth/s3-keys"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)});return u.value=b,b!=null&&b.endpoint&&(i.value={endpoint:b.endpoint,enabled:b.enabled!==!1,path_style:b.path_style!==!1}),await h(),b}catch(b){return c.value=p(b),null}}async function m(y,b){c.value=null;try{await n.jsonFetch(r(`/api/auth/s3-keys/${y}/state`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:b})}),await h()}catch(S){c.value=p(S)}}async function k(y){var b,S;c.value=null;try{await n.jsonFetch(r(`/api/auth/s3-keys/${y}`),{method:"DELETE"}),((S=(b=u.value)==null?void 0:b.key)==null?void 0:S.id)===y&&(u.value=null),await h()}catch(N){c.value=p(N)}}function g(){u.value=null}const v=t.computed(()=>{var b;if((b=u.value)!=null&&b.key)return u.value.key;const y=o.value.filter(S=>!S.disabled_at);return y.length?y.reduce((S,N)=>S.created_at>=N.created_at?S:N):null});return{keys:o,connection:i,loading:s,loaded:l,error:c,canMint:d,revealed:u,guideKey:v,load:h,create:_,setDisabled:m,remove:k,dismissSecret:g}}const rS={class:"fe-s3keys","data-testid":"s3-keys"},oS={class:"fe-s3keys__head"},iS={class:"fe-s3keys__title"},lS={class:"fe-s3keys__lead"},sS={key:0,class:"fe-s3keys__warn"},cS={key:1,class:"fe-s3keys__muted"},dS={key:2,class:"fe-s3keys__warn"},uS={key:3,class:"fe-s3keys__form"},fS=["placeholder"],pS={value:""},hS=["value"],mS=["placeholder","disabled"],gS=["disabled"],yS={key:4,class:"fe-s3keys__hint"},bS={key:5,class:"fe-s3keys__secret","data-testid":"s3-key-secret"},vS={class:"fe-s3keys__once"},kS={class:"fe-s3keys__pair"},_S={class:"fe-s3keys__k"},wS={class:"fe-s3keys__pair"},ES={class:"fe-s3keys__k"},SS={key:6,class:"fe-s3keys__muted"},xS={key:7,class:"fe-s3keys__table"},CS={class:"fe-s3keys__actions"},NS=["disabled","onClick"],BS=["disabled","onClick"],TS={key:8,class:"fe-s3keys__muted"},Bm=t.defineComponent({__name:"S3KeysPanel",props:{config:{},storages:{}},emits:["active"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{keys:s,connection:l,loading:c,error:d,canMint:u,revealed:p,guideKey:f,load:h,create:_,setDisabled:m,remove:k,dismissSecret:g}=Nm(a.config),v=t.ref(""),y=t.ref(""),b=t.ref(""),S=t.ref(!1),N=t.ref(null),T=t.ref(null);let E=null;function w(){var P,q,F,U,z;const R=l.value;R&&r("active",{accessKeyID:((P=f.value)==null?void 0:P.access_key_id)??"",secret:((F=(q=p.value)==null?void 0:q.key)==null?void 0:F.id)===((U=f.value)==null?void 0:U.id)?(z=p.value)==null?void 0:z.secret:void 0,endpoint:R.endpoint,pathStyle:R.path_style})}t.onMounted(async()=>{await h(),w()});async function C(){S.value=!0;try{await _({label:v.value.trim()||i("conn.s3keys.defaultLabel"),bucket:y.value.trim()||void 0,prefix:b.value.trim()||void 0}),v.value="",w()}finally{S.value=!1}}async function M(R){S.value=!0;try{await m(R.id,!R.disabled_at),w()}finally{S.value=!1}}async function L(R){if(N.value!==R.id){N.value=R.id;return}N.value=null,S.value=!0;try{await k(R.id),w()}finally{S.value=!1}}async function I(R,P){let q=!1;try{await navigator.clipboard.writeText(R),q=!0}catch{try{const F=document.createElement("textarea");F.value=R,F.setAttribute("readonly",""),F.style.position="fixed",F.style.opacity="0",document.body.appendChild(F),F.select(),q=document.execCommand("copy"),document.body.removeChild(F)}catch{q=!1}}q&&(T.value=P,E&&clearTimeout(E),E=setTimeout(()=>T.value=null,1600))}function V(R){if(!R)return"";const P=new Date(R);return Number.isNaN(P.getTime())?"":P.toLocaleDateString()}function $(R){return R.bucket?R.prefix?`${R.bucket}/${R.prefix}`:R.bucket:i("conn.s3keys.scopeAll")}return(R,P)=>(t.openBlock(),t.createElementBlock("section",rS,[t.createElementVNode("header",oS,[t.createElementVNode("h4",iS,t.toDisplayString(t.unref(i)("conn.s3keys.title")),1),t.createElementVNode("p",lS,t.toDisplayString(t.unref(i)("conn.s3keys.lead")),1)]),t.unref(l)&&!t.unref(l).enabled?(t.openBlock(),t.createElementBlock("p",sS,t.toDisplayString(t.unref(i)("conn.s3keys.disabled")),1)):t.createCommentVNode("",!0),t.unref(u)===!1?(t.openBlock(),t.createElementBlock("p",cS,t.toDisplayString(t.unref(i)("conn.s3keys.cannotMint")),1)):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",dS,t.toDisplayString(t.unref(d)),1)):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("div",uS,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":P[0]||(P[0]=q=>v.value=q),class:"fe-cfield__input",placeholder:t.unref(i)("conn.s3keys.label"),"data-testid":"s3-key-label"},null,8,fS),[[t.vModelText,v.value]]),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":P[1]||(P[1]=q=>y.value=q),class:"fe-cfield__input","data-testid":"s3-key-bucket"},[t.createElementVNode("option",pS,t.toDisplayString(t.unref(i)("conn.s3keys.everyBucket")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.storages,q=>(t.openBlock(),t.createElementBlock("option",{key:q,value:q},t.toDisplayString(q),9,hS))),128))],512),[[t.vModelSelect,y.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":P[2]||(P[2]=q=>b.value=q),class:"fe-cfield__input",placeholder:t.unref(i)("conn.s3keys.prefix"),disabled:!y.value,"data-testid":"s3-key-prefix"},null,8,mS),[[t.vModelText,b.value]]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:S.value,"data-testid":"s3-key-mint",onClick:C},t.toDisplayString(t.unref(i)("conn.s3keys.mint")),9,gS)])):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("p",yS,t.toDisplayString(t.unref(i)("conn.s3keys.inheritNote")),1)):t.createCommentVNode("",!0),t.unref(p)?(t.openBlock(),t.createElementBlock("div",bS,[t.createElementVNode("p",vS,t.toDisplayString(t.unref(i)("conn.s3keys.once")),1),t.createElementVNode("div",kS,[t.createElementVNode("span",_S,t.toDisplayString(t.unref(i)("conn.s3keys.accessKeyID")),1),t.createElementVNode("code",null,t.toDisplayString(t.unref(p).key.access_key_id),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:P[3]||(P[3]=q=>I(t.unref(p).key.access_key_id,"akid"))},t.toDisplayString(T.value==="akid"?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("div",wS,[t.createElementVNode("span",ES,t.toDisplayString(t.unref(i)("conn.s3keys.secret")),1),t.createElementVNode("code",null,t.toDisplayString(t.unref(p).secret),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:P[4]||(P[4]=q=>I(t.unref(p).secret,"secret"))},t.toDisplayString(T.value==="secret"?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("button",{class:"fe-s3keys__dismiss",onClick:P[5]||(P[5]=(...q)=>t.unref(g)&&t.unref(g)(...q))},t.toDisplayString(t.unref(i)("conn.s3keys.dismiss")),1)])):t.createCommentVNode("",!0),t.unref(c)?(t.openBlock(),t.createElementBlock("p",SS,"…")):t.unref(s).length?(t.openBlock(),t.createElementBlock("table",xS,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.label")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.key")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.scope")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.lastUsed")),1),P[6]||(P[6]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(s),q=>(t.openBlock(),t.createElementBlock("tr",{key:q.id,class:t.normalizeClass({"is-off":!!q.disabled_at})},[t.createElementVNode("td",null,t.toDisplayString(q.label||t.unref(i)("conn.s3keys.noLabel")),1),t.createElementVNode("td",null,[t.createElementVNode("code",null,t.toDisplayString(q.access_key_id),1)]),t.createElementVNode("td",null,t.toDisplayString($(q)),1),t.createElementVNode("td",null,t.toDisplayString(q.last_used_at?V(q.last_used_at):t.unref(i)("conn.s3keys.neverUsed")),1),t.createElementVNode("td",CS,[t.createElementVNode("button",{class:"fe-s3keys__link",disabled:S.value,onClick:F=>M(q)},t.toDisplayString(q.disabled_at?t.unref(i)("conn.s3keys.enable"):t.unref(i)("conn.s3keys.disable")),9,NS),t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:S.value,onClick:F=>L(q)},t.toDisplayString(N.value===q.id?t.unref(i)("conn.s3keys.confirm"):t.unref(i)("conn.s3keys.revoke")),9,BS)])],2))),128))])])):t.unref(u)?(t.openBlock(),t.createElementBlock("p",TS,t.toDisplayString(t.unref(i)("conn.s3keys.empty")),1)):t.createCommentVNode("",!0)]))}});function Tm(e){const n=ao(e),a=ro(e),r=g=>`${a}${g}`,o=t.shallowRef([]),i=t.ref(null),s=t.ref(!1),l=t.ref(!1),c=t.ref(null),d=t.ref(null);function u(g){const v=g;if(v!=null&&v.detail)try{const y=JSON.parse(v.detail);if(y!=null&&y.error)return y.error}catch{}return(v==null?void 0:v.message)||String(g)}function p(g){return g==null?void 0:g.status}async function f(){s.value=!0,c.value=null;try{const g=await n.jsonFetch(r("/api/auth/ssh-keys"));o.value=Array.isArray(g==null?void 0:g.keys)?g.keys:[],i.value={enabled:(g==null?void 0:g.enabled)!==!1,host:(g==null?void 0:g.host)??"",port:(g==null?void 0:g.port)??2022,login:(g==null?void 0:g.login)??"",ftps:g==null?void 0:g.ftps},d.value=!0}catch(g){o.value=[],d.value=!1,p(g)!==401&&p(g)!==403&&(c.value=u(g))}finally{s.value=!1,l.value=!0}}async function h(g,v){c.value=null;try{return await n.jsonFetch(r("/api/auth/ssh-keys"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:g,name:v})}),await f(),!0}catch(y){return c.value=u(y),!1}}async function _(g,v){c.value=null;try{await n.jsonFetch(r(`/api/auth/ssh-keys/${g}/state`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:v})}),await f()}catch(y){c.value=u(y)}}async function m(g){c.value=null;try{await n.jsonFetch(r(`/api/auth/ssh-keys/${g}`),{method:"DELETE"}),await f()}catch(v){c.value=u(v)}}const k=t.computed(()=>o.value.some(g=>!g.disabled_at));return{keys:o,connection:i,loading:s,loaded:l,error:c,canAdd:d,hasUsableKey:k,load:f,add:h,setDisabled:_,remove:m}}const DS={key:0,class:"fe-s3keys","data-testid":"ssh-keys"},AS={class:"fe-s3keys__head"},MS={class:"fe-s3keys__title"},OS={class:"fe-s3keys__lead"},IS={key:0,class:"fe-s3keys__warn"},RS={key:1,class:"fe-s3keys__muted"},zS={key:2,class:"fe-s3keys__warn"},LS={key:3,class:"fe-sshkeys__form"},FS=["placeholder"],$S={class:"fe-sshkeys__row"},PS=["placeholder"],VS=["disabled"],US={class:"fe-s3keys__hint"},HS={key:4,class:"fe-s3keys__muted"},KS={key:5,class:"fe-s3keys__table"},GS={class:"fe-s3keys__actions"},qS=["disabled","onClick"],WS=["disabled","onClick"],jS={key:6,class:"fe-s3keys__muted"},Dm=t.defineComponent({__name:"SSHKeysPanel",props:{config:{},keysVisible:{type:Boolean}},emits:["active"],setup(e,{emit:n}){const a=e,r=t.computed(()=>a.keysVisible!==!1),o=n,i=t.computed(()=>$n(a.config.locale)),{t:s}=Dt(i),{keys:l,connection:c,loading:d,error:u,canAdd:p,hasUsableKey:f,load:h,add:_,setDisabled:m,remove:k}=Tm(a.config),g=t.ref(""),v=t.ref(""),y=t.ref(!1),b=t.ref(null);function S(){const M=c.value;M&&o("active",{host:M.host,port:M.port,login:M.login,enabled:M.enabled,hasKey:f.value,ftps:M.ftps})}t.onMounted(async()=>{await h(),S()});async function N(){if(g.value.trim()){y.value=!0;try{await _(g.value.trim(),v.value.trim()||void 0)&&(g.value="",v.value=""),S()}finally{y.value=!1}}}async function T(M){y.value=!0;try{await m(M.id,!M.disabled_at),S()}finally{y.value=!1}}async function E(M){if(b.value!==M.id){b.value=M.id;return}b.value=null,y.value=!0;try{await k(M.id),S()}finally{y.value=!1}}function w(M){if(!M)return"";const L=new Date(M);return Number.isNaN(L.getTime())?"":L.toLocaleDateString()}function C(M){return"SHA256:"+M.fingerprint}return(M,L)=>r.value?(t.openBlock(),t.createElementBlock("section",DS,[t.createElementVNode("header",AS,[t.createElementVNode("h4",MS,t.toDisplayString(t.unref(s)("conn.sshkeys.title")),1),t.createElementVNode("p",OS,t.toDisplayString(t.unref(s)("conn.sshkeys.lead")),1)]),t.unref(c)&&!t.unref(c).enabled?(t.openBlock(),t.createElementBlock("p",IS,t.toDisplayString(t.unref(s)("conn.sshkeys.disabled")),1)):t.createCommentVNode("",!0),t.unref(p)===!1?(t.openBlock(),t.createElementBlock("p",RS,t.toDisplayString(t.unref(s)("conn.sshkeys.cannotAdd")),1)):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("p",zS,t.toDisplayString(t.unref(u)),1)):t.createCommentVNode("",!0),t.unref(p)?(t.openBlock(),t.createElementBlock("div",LS,[t.withDirectives(t.createElementVNode("textarea",{"onUpdate:modelValue":L[0]||(L[0]=I=>g.value=I),class:"fe-cfield__input fe-sshkeys__paste",rows:"2",spellcheck:"false",placeholder:t.unref(s)("conn.sshkeys.paste"),"data-testid":"ssh-key-input"},null,8,FS),[[t.vModelText,g.value]]),t.createElementVNode("div",$S,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":L[1]||(L[1]=I=>v.value=I),class:"fe-cfield__input",placeholder:t.unref(s)("conn.sshkeys.name"),"data-testid":"ssh-key-name"},null,8,PS),[[t.vModelText,v.value]]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:y.value,"data-testid":"ssh-key-add",onClick:N},t.toDisplayString(t.unref(s)("conn.sshkeys.add")),9,VS)]),t.createElementVNode("p",US,t.toDisplayString(t.unref(s)("conn.sshkeys.noCopyId")),1)])):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",HS,"…")):t.unref(l).length?(t.openBlock(),t.createElementBlock("table",KS,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(s)("conn.sshkeys.col.name")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(s)("conn.sshkeys.col.fingerprint")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(s)("conn.sshkeys.col.lastUsed")),1),L[2]||(L[2]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l),I=>(t.openBlock(),t.createElementBlock("tr",{key:I.id,class:t.normalizeClass({"is-off":!!I.disabled_at})},[t.createElementVNode("td",null,t.toDisplayString(I.name||t.unref(s)("conn.sshkeys.noName")),1),t.createElementVNode("td",null,[t.createElementVNode("code",null,t.toDisplayString(C(I)),1)]),t.createElementVNode("td",null,t.toDisplayString(I.last_used_at?w(I.last_used_at):t.unref(s)("conn.sshkeys.neverUsed")),1),t.createElementVNode("td",GS,[t.createElementVNode("button",{class:"fe-s3keys__link",disabled:y.value,onClick:V=>T(I)},t.toDisplayString(I.disabled_at?t.unref(s)("conn.sshkeys.enable"):t.unref(s)("conn.sshkeys.disable")),9,qS),t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:y.value,onClick:V=>E(I)},t.toDisplayString(b.value===I.id?t.unref(s)("conn.sshkeys.confirm"):t.unref(s)("conn.sshkeys.remove")),9,WS)])],2))),128))])])):t.unref(p)?(t.openBlock(),t.createElementBlock("p",jS,t.toDisplayString(t.unref(s)("conn.sshkeys.empty")),1)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)}});function Am(e){const n=ao(e),a=ro(e),r=y=>`${a}${y}`,o=t.shallowRef([]),i=t.ref(null),s=t.ref(!1),l=t.ref(!1),c=t.ref(null),d=t.ref(null),u=t.ref(null);function p(y){const b=y;if(b!=null&&b.detail)try{const S=JSON.parse(b.detail);if(S!=null&&S.error)return S.error}catch{}return(b==null?void 0:b.message)||String(y)}function f(y){return y==null?void 0:y.status}async function h(){s.value=!0,c.value=null;try{const y=await n.jsonFetch(r("/api/auth/nfs-exports"));o.value=Array.isArray(y==null?void 0:y.exports)?y.exports:[],i.value={enabled:(y==null?void 0:y.enabled)!==!1,host:(y==null?void 0:y.host)??"",port:(y==null?void 0:y.port)??2049},d.value=!0}catch(y){o.value=[],d.value=!1,f(y)!==401&&f(y)!==403&&(c.value=p(y))}finally{s.value=!1,l.value=!0}}async function _(y){c.value=null;try{const b=await n.jsonFetch(r("/api/auth/nfs-exports"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)});return u.value=b,b!=null&&b.host&&(i.value={enabled:b.enabled!==!1,host:b.host,port:b.port}),await h(),b}catch(b){return c.value=p(b),null}}async function m(y,b){c.value=null;try{await n.jsonFetch(r(`/api/auth/nfs-exports/${y}/state`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:b})}),await h()}catch(S){c.value=p(S)}}async function k(y){var b,S;c.value=null;try{await n.jsonFetch(r(`/api/auth/nfs-exports/${y}`),{method:"DELETE"}),((S=(b=u.value)==null?void 0:b.export)==null?void 0:S.id)===y&&(u.value=null),await h()}catch(N){c.value=p(N)}}function g(){u.value=null}const v=t.computed(()=>{var b;if((b=u.value)!=null&&b.export)return u.value.export;const y=o.value.filter(S=>!S.disabled_at);return y.length?y.reduce((S,N)=>S.created_at>=N.created_at?S:N):null});return{exports:o,connection:i,loading:s,loaded:l,error:c,canMint:d,revealed:u,guideExport:v,load:h,create:_,setDisabled:m,remove:k,dismissPath:g}}const YS={class:"fe-s3keys","data-testid":"nfs-exports"},XS={class:"fe-s3keys__head"},ZS={class:"fe-s3keys__title"},JS={class:"fe-s3keys__lead"},QS={class:"fe-s3keys__warn"},ex={key:0,class:"fe-s3keys__warn"},tx={key:1,class:"fe-s3keys__muted"},nx={key:2,class:"fe-s3keys__warn"},ax={key:3,class:"fe-s3keys__form fe-nfs__form"},rx=["placeholder"],ox={value:""},ix=["value"],lx=["placeholder","disabled"],sx=["placeholder"],cx={class:"fe-nfs__ro"},dx=["disabled"],ux={key:4,class:"fe-s3keys__hint"},fx={key:5,class:"fe-s3keys__secret","data-testid":"nfs-path"},px={class:"fe-s3keys__once"},hx={class:"fe-s3keys__pair"},mx={key:6,class:"fe-s3keys__muted"},gx={key:7,class:"fe-s3keys__table"},yx={class:"fe-s3keys__actions"},bx=["disabled","onClick"],vx=["disabled","onClick"],kx={key:8,class:"fe-s3keys__muted"},Mm=t.defineComponent({__name:"NFSExportsPanel",props:{config:{},storages:{}},emits:["active"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{exports:s,connection:l,loading:c,error:d,canMint:u,revealed:p,guideExport:f,load:h,create:_,setDisabled:m,remove:k,dismissPath:g}=Am(a.config),v=t.ref(""),y=t.ref(""),b=t.ref(""),S=t.ref(!0),N=t.ref(""),T=t.ref(!1),E=t.ref(null),w=t.ref(!1);let C=null;function M(){var U,z;const F=l.value;F&&r("active",{host:F.host,port:F.port,enabled:F.enabled,path:(U=p.value)==null?void 0:U.path,readOnly:((z=f.value)==null?void 0:z.read_only)??S.value})}t.onMounted(async()=>{await h(),M()});async function L(){T.value=!0;try{await _({label:v.value.trim()||i("conn.nfs.defaultLabel"),storage:y.value.trim()||void 0,prefix:b.value.trim()||void 0,read_only:S.value,allow_cidrs:N.value.trim()||void 0}),v.value="",M()}finally{T.value=!1}}async function I(F){T.value=!0;try{await m(F.id,!F.disabled_at),M()}finally{T.value=!1}}async function V(F){if(E.value!==F.id){E.value=F.id;return}E.value=null,T.value=!0;try{await k(F.id),M()}finally{T.value=!1}}const $=t.computed(()=>{var Y,Q,oe;const F=l.value,U=(Y=p.value)==null?void 0:Y.path;if(!F||!U)return"";const z=(oe=(Q=p.value)==null?void 0:Q.export)!=null&&oe.read_only?",ro":"";return`sudo mount -t nfs -o nfsvers=3,tcp,port=${F.port},mountport=${F.port},nolock${z} ${F.host}:${U} /mnt/filex`});async function R(){const F=$.value;if(!F)return;let U=!1;try{await navigator.clipboard.writeText(F),U=!0}catch{try{const z=document.createElement("textarea");z.value=F,z.setAttribute("readonly",""),z.style.position="fixed",z.style.opacity="0",document.body.appendChild(z),z.select(),U=document.execCommand("copy"),document.body.removeChild(z)}catch{U=!1}}U&&(w.value=!0,C&&clearTimeout(C),C=setTimeout(()=>w.value=!1,1600))}function P(F){if(!F)return"";const U=new Date(F);return Number.isNaN(U.getTime())?"":U.toLocaleDateString()}function q(F){return F.storage_name?F.prefix?`${F.storage_name}/${F.prefix}`:F.storage_name:i("conn.nfs.scopeAll")}return(F,U)=>(t.openBlock(),t.createElementBlock("section",YS,[t.createElementVNode("header",XS,[t.createElementVNode("h4",ZS,t.toDisplayString(t.unref(i)("conn.nfs.title")),1),t.createElementVNode("p",JS,t.toDisplayString(t.unref(i)("conn.nfs.lead")),1)]),t.createElementVNode("p",QS,t.toDisplayString(t.unref(i)("conn.nfs.pathIsSecret")),1),t.unref(l)&&!t.unref(l).enabled?(t.openBlock(),t.createElementBlock("p",ex,t.toDisplayString(t.unref(i)("conn.nfs.disabled")),1)):t.createCommentVNode("",!0),t.unref(u)===!1?(t.openBlock(),t.createElementBlock("p",tx,t.toDisplayString(t.unref(i)("conn.nfs.cannotMint")),1)):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",nx,t.toDisplayString(t.unref(d)),1)):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("div",ax,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":U[0]||(U[0]=z=>v.value=z),class:"fe-cfield__input",placeholder:t.unref(i)("conn.nfs.label"),"data-testid":"nfs-label"},null,8,rx),[[t.vModelText,v.value]]),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":U[1]||(U[1]=z=>y.value=z),class:"fe-cfield__input","data-testid":"nfs-storage"},[t.createElementVNode("option",ox,t.toDisplayString(t.unref(i)("conn.nfs.everyStorage")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.storages,z=>(t.openBlock(),t.createElementBlock("option",{key:z,value:z},t.toDisplayString(z),9,ix))),128))],512),[[t.vModelSelect,y.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":U[2]||(U[2]=z=>b.value=z),class:"fe-cfield__input",placeholder:t.unref(i)("conn.nfs.prefix"),disabled:!y.value,"data-testid":"nfs-prefix"},null,8,lx),[[t.vModelText,b.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":U[3]||(U[3]=z=>N.value=z),class:"fe-cfield__input",placeholder:t.unref(i)("conn.nfs.allowCidrs"),"data-testid":"nfs-cidrs"},null,8,sx),[[t.vModelText,N.value]]),t.createElementVNode("label",cx,[t.withDirectives(t.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":U[4]||(U[4]=z=>S.value=z),"data-testid":"nfs-readonly"},null,512),[[t.vModelCheckbox,S.value]]),t.createTextVNode(" "+t.toDisplayString(t.unref(i)("conn.nfs.readOnly")),1)]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:T.value,"data-testid":"nfs-mint",onClick:L},t.toDisplayString(t.unref(i)("conn.nfs.mint")),9,dx)])):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("p",ux,t.toDisplayString(t.unref(i)("conn.nfs.readOnlyHint")),1)):t.createCommentVNode("",!0),t.unref(p)?(t.openBlock(),t.createElementBlock("div",fx,[t.createElementVNode("p",px,t.toDisplayString(t.unref(i)("conn.nfs.once")),1),t.createElementVNode("div",hx,[t.createElementVNode("code",null,t.toDisplayString($.value),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:R},t.toDisplayString(w.value?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("button",{class:"fe-s3keys__dismiss",onClick:U[5]||(U[5]=(...z)=>t.unref(g)&&t.unref(g)(...z))},t.toDisplayString(t.unref(i)("conn.nfs.dismiss")),1)])):t.createCommentVNode("",!0),t.unref(c)?(t.openBlock(),t.createElementBlock("p",mx,"…")):t.unref(s).length?(t.openBlock(),t.createElementBlock("table",gx,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.label")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.scope")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.mode")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.lastUsed")),1),U[6]||(U[6]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(s),z=>(t.openBlock(),t.createElementBlock("tr",{key:z.id,class:t.normalizeClass({"is-off":!!z.disabled_at})},[t.createElementVNode("td",null,t.toDisplayString(z.label||t.unref(i)("conn.nfs.noLabel")),1),t.createElementVNode("td",null,t.toDisplayString(q(z)),1),t.createElementVNode("td",null,t.toDisplayString(z.read_only?t.unref(i)("conn.nfs.modeRead"):t.unref(i)("conn.nfs.modeWrite")),1),t.createElementVNode("td",null,t.toDisplayString(z.last_used_at?P(z.last_used_at):t.unref(i)("conn.nfs.neverUsed")),1),t.createElementVNode("td",yx,[t.createElementVNode("button",{class:"fe-s3keys__link",disabled:T.value,onClick:Y=>I(z)},t.toDisplayString(z.disabled_at?t.unref(i)("conn.nfs.enable"):t.unref(i)("conn.nfs.disable")),9,bx),t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:T.value,onClick:Y=>V(z)},t.toDisplayString(E.value===z.id?t.unref(i)("conn.nfs.confirm"):t.unref(i)("conn.nfs.revoke")),9,vx)])],2))),128))])])):t.unref(u)?(t.openBlock(),t.createElementBlock("p",kx,t.toDisplayString(t.unref(i)("conn.nfs.empty")),1)):t.createCommentVNode("",!0)]))}});function Om(e){const n=ao(e),a=ro(e),r=k=>`${a}${k}`,o=t.shallowRef([]),i=t.ref(!1),s=t.ref(!1),l=t.ref(null),c=t.ref(null),d=t.ref(null);function u(k){const g=k;if(g!=null&&g.detail)try{const v=JSON.parse(g.detail);if(v!=null&&v.error)return v.error}catch{}return(g==null?void 0:g.message)||String(k)}function p(k){return k==null?void 0:k.status}async function f(){i.value=!0,l.value=null;try{const k=await n.jsonFetch(r("/api/tokens"));o.value=Array.isArray(k==null?void 0:k.tokens)?k.tokens:[],c.value=!0}catch(k){o.value=[];const g=p(k);c.value=!1,g!==401&&g!==403&&(l.value=u(k))}finally{i.value=!1,s.value=!0}}async function h(k){l.value=null;try{const g=await n.jsonFetch(r("/api/tokens"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});return d.value=g,await f(),g}catch(g){return l.value=u(g),null}}async function _(k){var g,v;l.value=null;try{await n.jsonFetch(r(`/api/tokens/${k}`),{method:"DELETE"}),((v=(g=d.value)==null?void 0:g.row)==null?void 0:v.id)===k&&(d.value=null),await f()}catch(y){l.value=u(y)}}function m(){d.value=null}return{tokens:o,loading:i,loaded:s,error:l,canMint:c,revealed:d,load:f,create:h,remove:_,dismiss:m}}const _x={class:"fe-s3keys","data-testid":"api-tokens"},wx={class:"fe-s3keys__head"},Ex={class:"fe-s3keys__title"},Sx={class:"fe-s3keys__lead"},xx={key:0,class:"fe-s3keys__muted"},Cx={key:1,class:"fe-s3keys__warn"},Nx={key:2,class:"fe-s3keys__form"},Bx=["placeholder"],Tx=["disabled"],Dx={key:3,class:"fe-tokform","data-testid":"token-form-full"},Ax=["placeholder"],Mx={class:"fe-tokform__scopes"},Ox={class:"fe-tokform__legend"},Ix=["onUpdate:modelValue","data-testid"],Rx={class:"fe-tokform__field"},zx={class:"fe-tokform__label"},Lx=["placeholder"],Fx={class:"fe-tokform__row"},$x={class:"fe-tokform__field fe-tokform__field--narrow"},Px={class:"fe-tokform__label"},Vx=["placeholder"],Ux=["disabled"],Hx={class:"fe-s3keys__hint"},Kx={key:4,class:"fe-s3keys__secret","data-testid":"token-secret"},Gx={class:"fe-s3keys__once"},qx={class:"fe-s3keys__pair"},Wx={key:5,class:"fe-s3keys__muted"},jx={key:6,class:"fe-s3keys__table"},Yx={class:"fe-s3keys__actions"},Xx=["disabled","onClick"],Zx={key:7,class:"fe-s3keys__muted"},Jx={key:8,class:"fe-s3keys__hint"},t0=t.defineComponent({__name:"TokensPanel",props:{config:{},full:{type:Boolean},protocol:{}},emits:["active"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{tokens:s,loading:l,error:c,canMint:d,revealed:u,load:p,create:f,remove:h,dismiss:_}=Om(a.config),m=t.ref(""),k=t.ref(!1),g=t.ref(!1),v=t.ref(null),y=["read","write","delete","mcp"],b=t.ref({read:!0,write:!1,delete:!1,mcp:!1}),S=t.ref(""),N=t.ref(null);function T(){const $=y.filter(P=>b.value[P]),R=S.value.trim();return R&&$.push("root:"+R),$.join(",")}t.onMounted(async()=>{await p(),r("active",{hasToken:s.value.length>0})});function E(){const $=(a.protocol||"").toUpperCase();return $?`${$} β€” ${w()}`:w()}function w(){try{return new URL(a.config.apiBase||window.location.origin).host}catch{return"filex"}}async function C(){if(!k.value){k.value=!0,g.value=!1;try{if(a.full){const $=T()||"read";await f({label:m.value.trim()||E(),scopes:$,expires_in_days:N.value&&N.value>0?N.value:void 0}),await p(),r("active",{hasToken:s.value.length>0}),m.value="",S.value="";return}await f({label:m.value.trim()||E(),scopes:"read,write,delete"}),await p(),r("active",{hasToken:s.value.length>0}),m.value=""}finally{k.value=!1}}}async function M($){if(v.value!==$.id){v.value=$.id;return}v.value=null,k.value=!0;try{await h($.id),r("active",{hasToken:s.value.length>0})}finally{k.value=!1}}async function L(){var $;if(($=u.value)!=null&&$.token)try{await navigator.clipboard.writeText(u.value.token),g.value=!0,window.setTimeout(()=>g.value=!1,1600)}catch{}}function I($){if(!$)return"";const R=new Date($);return Number.isNaN(R.getTime())?"":R.toLocaleDateString()}function V($){return $.last_used_at?I($.last_used_at):i("conn.tokens.neverUsed")}return($,R)=>(t.openBlock(),t.createElementBlock("section",_x,[t.createElementVNode("header",wx,[t.createElementVNode("h4",Ex,t.toDisplayString(t.unref(i)("conn.tokens.title")),1),t.createElementVNode("p",Sx,t.toDisplayString(t.unref(i)("conn.tokens.lead")),1)]),t.unref(d)===!1?(t.openBlock(),t.createElementBlock("p",xx,t.toDisplayString(t.unref(i)("conn.tokens.cannotMint")),1)):t.createCommentVNode("",!0),t.unref(c)?(t.openBlock(),t.createElementBlock("p",Cx,t.toDisplayString(t.unref(c)),1)):t.createCommentVNode("",!0),t.unref(d)&&!e.full?(t.openBlock(),t.createElementBlock("div",Nx,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[0]||(R[0]=P=>m.value=P),class:"fe-cfield__input",placeholder:E(),"data-testid":"token-label"},null,8,Bx),[[t.vModelText,m.value]]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:k.value,"data-testid":"token-mint",onClick:C},t.toDisplayString(t.unref(i)("conn.tokens.mint")),9,Tx)])):t.unref(d)?(t.openBlock(),t.createElementBlock("div",Dx,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[1]||(R[1]=P=>m.value=P),class:"fe-cfield__input",placeholder:E(),"data-testid":"token-label"},null,8,Ax),[[t.vModelText,m.value]]),t.createElementVNode("fieldset",Mx,[t.createElementVNode("legend",Ox,t.toDisplayString(t.unref(i)("conn.tokens.scopes")),1),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(y,P=>t.createElementVNode("label",{key:P,class:"fe-tokform__scope"},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":q=>b.value[P]=q,type:"checkbox","data-testid":`token-scope-${P}`},null,8,Ix),[[t.vModelCheckbox,b.value[P]]]),t.createElementVNode("span",null,t.toDisplayString(P),1)])),64))]),t.createElementVNode("label",Rx,[t.createElementVNode("span",zx,t.toDisplayString(t.unref(i)("conn.tokens.root")),1),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[2]||(R[2]=P=>S.value=P),class:"fe-cfield__input",placeholder:t.unref(i)("conn.tokens.rootPlaceholder"),"data-testid":"token-root"},null,8,Lx),[[t.vModelText,S.value]])]),t.createElementVNode("div",Fx,[t.createElementVNode("label",$x,[t.createElementVNode("span",Px,t.toDisplayString(t.unref(i)("conn.tokens.expiry")),1),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[3]||(R[3]=P=>N.value=P),type:"number",min:"0",class:"fe-cfield__input",placeholder:t.unref(i)("conn.tokens.expiryNever"),"data-testid":"token-expiry"},null,8,Vx),[[t.vModelText,N.value,void 0,{number:!0}]])]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:k.value,"data-testid":"token-mint",onClick:C},t.toDisplayString(t.unref(i)("conn.tokens.mint")),9,Ux)]),t.createElementVNode("p",Hx,t.toDisplayString(t.unref(i)("conn.tokens.capNote")),1)])):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("div",Kx,[t.createElementVNode("p",Gx,t.toDisplayString(t.unref(i)("conn.tokens.once")),1),t.createElementVNode("div",qx,[t.createElementVNode("code",null,t.toDisplayString(t.unref(u).token),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:L},t.toDisplayString(g.value?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("button",{class:"fe-s3keys__dismiss",onClick:R[4]||(R[4]=(...P)=>t.unref(_)&&t.unref(_)(...P))},t.toDisplayString(t.unref(i)("conn.tokens.dismiss")),1)])):t.createCommentVNode("",!0),t.unref(l)?(t.openBlock(),t.createElementBlock("p",Wx,"…")):t.unref(s).length?(t.openBlock(),t.createElementBlock("table",jx,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.tokens.col.label")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.tokens.col.scopes")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.tokens.col.used")),1),R[5]||(R[5]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(s),P=>(t.openBlock(),t.createElementBlock("tr",{key:P.id},[t.createElementVNode("td",null,t.toDisplayString(P.label||"β€”"),1),t.createElementVNode("td",null,[t.createElementVNode("code",null,t.toDisplayString(P.scopes),1)]),t.createElementVNode("td",null,t.toDisplayString(V(P)),1),t.createElementVNode("td",Yx,[t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:k.value,onClick:q=>M(P)},t.toDisplayString(v.value===P.id?t.unref(i)("conn.tokens.confirm"):t.unref(i)("conn.tokens.revoke")),9,Xx)])]))),128))])])):t.unref(d)?(t.openBlock(),t.createElementBlock("p",Zx,t.toDisplayString(t.unref(i)("conn.tokens.empty")),1)):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",Jx,t.toDisplayString(t.unref(i)("conn.tokens.revokeHint")),1)):t.createCommentVNode("",!0)]))}}),Qx={class:"fe-conn__head"},e9={class:"fe-conn__title"},t9={class:"fe-conn__sub"},n9=["aria-label"],a9={class:"fe-conn__tabs",role:"tablist"},r9=["aria-selected"],o9=["aria-selected"],i9={key:0,class:"fe-conn__body",role:"tabpanel"},l9={key:0,class:"fe-conn__muted"},s9={key:0,class:"fe-conn__card fe-conn__card--notice","data-testid":"no-admin"},c9={class:"fe-conn__muted"},d9={class:"fe-conn__muted"},u9={key:1,class:"fe-conn__list"},f9={class:"fe-conn__rowmain"},p9={class:"fe-conn__name"},h9={class:"fe-conn__muted"},m9={key:0,class:"fe-conn__error"},g9={key:1,class:"fe-conn__card fe-conn__form","data-testid":"storage-form"},y9={class:"fe-conn__formtitle"},b9={class:"fe-cfield__row"},v9={class:"fe-cfield__label",for:"fe-conn-name"},k9=["placeholder"],_9={class:"fe-cfield__help"},w9={class:"fe-cfield__row"},E9={class:"fe-cfield__label",for:"fe-conn-driver"},S9=["value","disabled"],x9=["value"],C9={key:0,class:"fe-cfield__help"},N9={class:"fe-cfield__check"},B9={class:"fe-cfield__check"},T9={key:0,class:"fe-conn__error","data-testid":"form-error"},D9={class:"fe-conn__actions"},A9=["disabled"],M9=["disabled"],O9={key:2},I9={class:"fe-conn__listhead"},R9={class:"fe-conn__muted"},z9={key:0,class:"fe-conn__empty"},L9={class:"fe-conn__list","data-testid":"storage-list"},F9={class:"fe-conn__rowmain"},$9={class:"fe-conn__rowtext"},P9={class:"fe-conn__name"},V9={class:"fe-conn__badge"},U9={key:0,class:"fe-conn__badge fe-conn__badge--warn"},H9={key:1,class:"fe-conn__badge"},K9={key:2,class:"fe-conn__muted fe-conn__summary"},G9={class:"fe-conn__rowbtns"},q9=["data-testid","onClick"],W9=["onClick"],j9={key:1,class:"fe-conn__body",role:"tabpanel"},Y9={class:"fe-conn__guidebar"},X9={key:0,class:"fe-conn__pick"},Z9={class:"fe-cfield__label"},J9=["value"],Q9={class:"fe-conn__pick"},eC={class:"fe-cfield__label"},tC={value:""},nC=["value"],Im=t.defineComponent({__name:"ConnectionsPanel",props:{config:{},initialTab:{},closable:{type:Boolean}},emits:["changed","close","error"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{drivers:s,storages:l,visible:c,me:d,loading:u,loaded:p,error:f,canManage:h,denial:_,load:m,createStorage:k,updateStorage:g,deleteStorage:v,testStorage:y,descriptor:b,fields:S,defaults:N,missingRequired:T}=ym(a.config),E=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):void 0,w=t.ref(!!(E!=null&&E.matches));function C(me){w.value=me.matches}const M=t.computed(()=>{const me=a.config.theme??"auto";return me==="light"||me==="dark"?me:w.value?"dark":"light"}),L=t.ref(a.initialTab??"storages"),I=t.ref({kind:"none"}),V=t.ref(""),$=t.ref(""),R=t.ref(!1),P=t.ref(!0),q=t.ref({}),F=t.ref([]),U=t.ref(!1),z=t.ref(!1),Y=t.ref(null),Q=t.ref(null),oe=t.ref(null),he=t.ref(null),Be=t.computed(()=>s.value.map(me=>{const Ee=i(me.i18n_key);return{value:me.driver,label:Ee===me.i18n_key?me.label:Ee}})),_e=t.computed(()=>S($.value));function J(){var Ee;const me=((Ee=s.value[0])==null?void 0:Ee.driver)??"";$.value=me,V.value="",R.value=!1,P.value=!0,q.value=N(me),F.value=[],Y.value=null,oe.value=null,I.value={kind:"new"}}function te(me){$.value=me.driver,V.value=me.name,R.value=!!me.read_only,P.value=me.enabled!==!1,q.value={...me.config??{}},F.value=[],Y.value=null,oe.value=null,I.value={kind:"edit",row:me}}function Ne(){I.value={kind:"none"},Y.value=null,oe.value=null}function Ae(me){$.value=me,q.value=N(me),F.value=[],Y.value=null}function Le(){const me=T($.value,q.value).map(Ee=>Ee.key);return F.value=me,V.value.trim()?me.length?oe.value=i("conn.form.fillRequired"):oe.value=null:oe.value=i("conn.form.nameRequired"),!oe.value}async function nt(){z.value=!0,Y.value=null;try{Y.value=await y({driver:$.value,config:q.value})}finally{z.value=!1}}async function et(){if(Le()){U.value=!0,oe.value=null;try{const me={name:V.value.trim(),driver:$.value,config:q.value,read_only:R.value,enabled:P.value};I.value.kind==="edit"?await g(I.value.row.id,me):await k(me),Ne(),r("changed")}catch(me){const Ee=me??{};let ce="";try{ce=Ee.detail?JSON.parse(Ee.detail).error??"":""}catch{ce=Ee.detail??""}oe.value=ce||Ee.message||String(me),r("error",{message:oe.value})}finally{U.value=!1}}}async function Ve(me){if(he.value!==me.id){he.value=me.id;return}he.value=null;try{await v(me.id),r("changed")}catch(Ee){r("error",{message:Ee.message})}}function $e(me){const Ee=b(me.driver),ce=me.config??{},ze=[],Ke=Ee==null?void 0:Ee.fields.find(le=>le.root),at=(le,de=[])=>{for(const ke of[le,...de]){const re=ce[ke];if(typeof re=="string"&&re.trim())return re}return""},rt=at("endpoint")||at("url")||at("host");rt&&ze.push(rt);const W=at("bucket");if(W&&ze.push(W),Ke){const le=at(Ke.key,Ke.aliases??[]);le&&ze.push(le)}return ze.join(" Β· ")}const Oe=Em(),ee=t.ref(Oe[0]??"webdav"),ye=t.ref(""),xe=t.computed(()=>gm(a.config)),Pe=t.ref(null),it=t.ref(null),Ce=t.computed(()=>{var me,Ee,ce,ze,Ke,at,rt,W,le,de,ke,re,ge,H,Ie,dt,A,we,Se,G,se,ve,st,ue,fe,Ge,Nt;return Sm(ee.value,{origin:xe.value,user:((me=d.value)==null?void 0:me.email)??"",storages:c.value,storage:ye.value||void 0,s3Endpoint:(Ee=Pe.value)==null?void 0:Ee.endpoint,s3PathStyle:(ce=Pe.value)==null?void 0:ce.pathStyle,s3AccessKeyID:((ze=Pe.value)==null?void 0:ze.accessKeyID)||void 0,s3Secret:(Ke=Pe.value)==null?void 0:Ke.secret,sftpHost:((at=it.value)==null?void 0:at.host)||void 0,sftpPort:(rt=it.value)==null?void 0:rt.port,sftpEnabled:(W=it.value)==null?void 0:W.enabled,sftpLogin:((le=it.value)==null?void 0:le.login)||void 0,sftpHasKey:(de=it.value)==null?void 0:de.hasKey,ftpsHost:((re=(ke=it.value)==null?void 0:ke.ftps)==null?void 0:re.host)||void 0,ftpsPort:(H=(ge=it.value)==null?void 0:ge.ftps)==null?void 0:H.port,ftpsEnabled:(dt=(Ie=it.value)==null?void 0:Ie.ftps)==null?void 0:dt.enabled,ftpsPasvMin:(we=(A=it.value)==null?void 0:A.ftps)==null?void 0:we.pasv_min,ftpsPasvMax:(G=(Se=it.value)==null?void 0:Se.ftps)==null?void 0:G.pasv_max,ftpsSelfSigned:(ve=(se=it.value)==null?void 0:se.ftps)==null?void 0:ve.self_signed,nfsHost:((st=Q.value)==null?void 0:st.host)||void 0,nfsPort:(ue=Q.value)==null?void 0:ue.port,nfsEnabled:(fe=Q.value)==null?void 0:fe.enabled,nfsPath:(Ge=Q.value)==null?void 0:Ge.path,nfsReadOnly:(Nt=Q.value)==null?void 0:Nt.readOnly},i)});return t.watch(()=>c.value,me=>{!ye.value&&me.length===1&&(ye.value=me[0])}),t.onMounted(()=>{var me;(me=E==null?void 0:E.addEventListener)==null||me.call(E,"change",C),m()}),t.onBeforeUnmount(()=>{var me;return(me=E==null?void 0:E.removeEventListener)==null?void 0:me.call(E,"change",C)}),t.watch(()=>[a.config.apiBase,a.config.endpoint],()=>{Ne(),m()}),(me,Ee)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["fe-conn",{"fe--theme-dark":M.value==="dark","fe--theme-light":M.value==="light"}]),"data-testid":"connections-panel"},[t.createElementVNode("header",Qx,[t.createElementVNode("div",null,[t.createElementVNode("h2",e9,t.toDisplayString(t.unref(i)("conn.title")),1),t.createElementVNode("p",t9,t.toDisplayString(t.unref(i)("conn.subtitle",{host:t.unref(oo)(xe.value)})),1)]),e.closable?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-conn__btn","data-testid":"connections-close","aria-label":t.unref(i)("conn.close"),onClick:Ee[0]||(Ee[0]=ce=>r("close"))}," βœ• ",8,n9)):t.createCommentVNode("",!0)]),t.createElementVNode("nav",a9,[t.createElementVNode("button",{type:"button",role:"tab",class:t.normalizeClass(["fe-conn__tab",{"is-active":L.value==="storages"}]),"aria-selected":L.value==="storages","data-testid":"tab-storages",onClick:Ee[1]||(Ee[1]=ce=>L.value="storages")},t.toDisplayString(t.unref(i)("conn.tab.storages")),11,r9),t.createElementVNode("button",{type:"button",role:"tab",class:t.normalizeClass(["fe-conn__tab",{"is-active":L.value==="connect"}]),"aria-selected":L.value==="connect","data-testid":"tab-connect",onClick:Ee[2]||(Ee[2]=ce=>L.value="connect")},t.toDisplayString(t.unref(i)("conn.tab.connect")),11,o9)]),L.value==="storages"?(t.openBlock(),t.createElementBlock("section",i9,[t.unref(u)&&!t.unref(p)?(t.openBlock(),t.createElementBlock("p",l9,t.toDisplayString(t.unref(i)("conn.loading")),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.unref(h)===!1?(t.openBlock(),t.createElementBlock("div",s9,[t.createElementVNode("strong",null,t.toDisplayString(t.unref(i)("conn.denied.title")),1),t.createElementVNode("p",c9,t.toDisplayString(t.unref(_)==="anonymous"?t.unref(i)("conn.denied.anonymous"):t.unref(_)==="unreachable"?t.unref(i)("conn.denied.unreachable",{error:t.unref(f)??""}):t.unref(i)("conn.denied.none")),1),t.createElementVNode("p",d9,t.toDisplayString(t.unref(i)("conn.denied.guideHint")),1),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--primary",onClick:Ee[3]||(Ee[3]=ce=>L.value="connect")},t.toDisplayString(t.unref(i)("conn.denied.guideCta")),1)])):t.createCommentVNode("",!0),t.unref(h)===!1&&t.unref(c).length?(t.openBlock(),t.createElementBlock("div",u9,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(c),ce=>(t.openBlock(),t.createElementBlock("div",{key:ce,class:"fe-conn__card"},[t.createElementVNode("div",f9,[t.createElementVNode("strong",p9,t.toDisplayString(ce),1),t.createElementVNode("span",h9,t.toDisplayString(t.unref(i)("conn.visibleOnly")),1)])]))),128))])):t.createCommentVNode("",!0),t.unref(h)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.unref(f)?(t.openBlock(),t.createElementBlock("p",m9,t.toDisplayString(t.unref(f)),1)):t.createCommentVNode("",!0),I.value.kind!=="none"?(t.openBlock(),t.createElementBlock("div",g9,[t.createElementVNode("h3",y9,t.toDisplayString(I.value.kind==="edit"?t.unref(i)("conn.form.editTitle",{name:V.value}):t.unref(i)("conn.form.newTitle")),1),t.createElementVNode("div",b9,[t.createElementVNode("label",v9,[t.createTextVNode(t.toDisplayString(t.unref(i)("conn.form.name")),1),Ee[14]||(Ee[14]=t.createElementVNode("span",{class:"fe-cfield__req"},"*",-1))]),t.withDirectives(t.createElementVNode("input",{id:"fe-conn-name","onUpdate:modelValue":Ee[4]||(Ee[4]=ce=>V.value=ce),class:"fe-cfield__input","data-testid":"storage-name",placeholder:t.unref(i)("conn.form.namePlaceholder")},null,8,k9),[[t.vModelText,V.value]]),t.createElementVNode("p",_9,t.toDisplayString(t.unref(i)("conn.form.nameHelp")),1)]),t.createElementVNode("div",w9,[t.createElementVNode("label",E9,t.toDisplayString(t.unref(i)("conn.form.driver")),1),t.createElementVNode("select",{id:"fe-conn-driver",class:"fe-cfield__input","data-testid":"storage-driver",value:$.value,disabled:I.value.kind==="edit",onChange:Ee[5]||(Ee[5]=ce=>Ae(ce.target.value))},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Be.value,ce=>(t.openBlock(),t.createElementBlock("option",{key:ce.value,value:ce.value},t.toDisplayString(ce.label),9,x9))),128))],40,S9),I.value.kind==="edit"?(t.openBlock(),t.createElementBlock("p",C9,t.toDisplayString(t.unref(i)("conn.form.driverLocked")),1)):t.createCommentVNode("",!0)]),t.createVNode(xm,{modelValue:q.value,"onUpdate:modelValue":Ee[6]||(Ee[6]=ce=>q.value=ce),fields:_e.value,locale:o.value,invalid:F.value},null,8,["modelValue","fields","locale","invalid"]),t.createElementVNode("label",N9,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":Ee[7]||(Ee[7]=ce=>R.value=ce),type:"checkbox","data-testid":"storage-readonly"},null,512),[[t.vModelCheckbox,R.value]]),t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("conn.form.readOnly")),1)]),t.createElementVNode("label",B9,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":Ee[8]||(Ee[8]=ce=>P.value=ce),type:"checkbox"},null,512),[[t.vModelCheckbox,P.value]]),t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("conn.form.enabled")),1)]),oe.value?(t.openBlock(),t.createElementBlock("p",T9,t.toDisplayString(oe.value),1)):t.createCommentVNode("",!0),Y.value?(t.openBlock(),t.createElementBlock("p",{key:1,class:t.normalizeClass(["fe-conn__testresult",Y.value.ok?"is-ok":"is-bad"]),"data-testid":"test-result"},t.toDisplayString(Y.value.ok?t.unref(i)("conn.form.testOk",{count:Y.value.object_count??0}):t.unref(i)("conn.form.testFail",{error:Y.value.error??""})),3)):t.createCommentVNode("",!0),t.createElementVNode("div",D9,[t.createElementVNode("button",{type:"button",class:"fe-conn__btn","data-testid":"storage-test",disabled:z.value,onClick:nt},t.toDisplayString(z.value?t.unref(i)("conn.form.testing"):t.unref(i)("conn.form.test")),9,A9),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--primary","data-testid":"storage-save",disabled:U.value,onClick:et},t.toDisplayString(U.value?t.unref(i)("conn.form.saving"):t.unref(i)("conn.form.save")),9,M9),t.createElementVNode("button",{type:"button",class:"fe-conn__btn",onClick:Ne},t.toDisplayString(t.unref(i)("conn.form.cancel")),1)])])):(t.openBlock(),t.createElementBlock("div",O9,[t.createElementVNode("div",I9,[t.createElementVNode("span",R9,t.toDisplayString(t.unref(i)("conn.list.count",{n:t.unref(l).length})),1),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--primary","data-testid":"storage-add",onClick:J}," + "+t.toDisplayString(t.unref(i)("conn.list.add")),1)]),t.unref(l).length?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("p",z9,t.toDisplayString(t.unref(i)("conn.list.empty")),1)),t.createElementVNode("div",L9,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l),ce=>(t.openBlock(),t.createElementBlock("div",{key:ce.id,class:"fe-conn__card"},[t.createElementVNode("div",F9,[t.createElementVNode("div",$9,[t.createElementVNode("strong",P9,t.toDisplayString(ce.name),1),t.createElementVNode("span",V9,t.toDisplayString(ce.driver),1),ce.read_only?(t.openBlock(),t.createElementBlock("span",U9,t.toDisplayString(t.unref(i)("conn.list.readOnly")),1)):t.createCommentVNode("",!0),ce.enabled===!1?(t.openBlock(),t.createElementBlock("span",H9,t.toDisplayString(t.unref(i)("conn.list.disabled")),1)):t.createCommentVNode("",!0),$e(ce)?(t.openBlock(),t.createElementBlock("div",K9,t.toDisplayString($e(ce)),1)):t.createCommentVNode("",!0)]),t.createElementVNode("div",G9,[t.createElementVNode("button",{type:"button",class:"fe-conn__btn","data-testid":`storage-edit-${ce.name}`,onClick:ze=>te(ce)},t.toDisplayString(t.unref(i)("conn.list.edit")),9,q9),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--danger",onClick:ze=>Ve(ce)},t.toDisplayString(he.value===ce.id?t.unref(i)("conn.list.confirm"):t.unref(i)("conn.list.remove")),9,W9)])])]))),128))])]))],64)):t.createCommentVNode("",!0)],64))])):(t.openBlock(),t.createElementBlock("section",j9,[t.createElementVNode("div",Y9,[t.unref(Oe).length>1?(t.openBlock(),t.createElementBlock("label",X9,[t.createElementVNode("span",Z9,t.toDisplayString(t.unref(i)("conn.guide.protocol")),1),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":Ee[9]||(Ee[9]=ce=>ee.value=ce),class:"fe-cfield__input","data-testid":"guide-protocol"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Oe),ce=>(t.openBlock(),t.createElementBlock("option",{key:ce,value:ce},t.toDisplayString(t.unref(h7)(ce)),9,J9))),128))],512),[[t.vModelSelect,ee.value]])])):t.createCommentVNode("",!0),t.createElementVNode("label",Q9,[t.createElementVNode("span",eC,t.toDisplayString(t.unref(i)("conn.guide.storage")),1),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":Ee[10]||(Ee[10]=ce=>ye.value=ce),class:"fe-cfield__input","data-testid":"guide-storage"},[t.createElementVNode("option",tC,t.toDisplayString(t.unref(i)("conn.guide.allStorages")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(c),ce=>(t.openBlock(),t.createElementBlock("option",{key:ce,value:ce},t.toDisplayString(ce),9,nC))),128))],512),[[t.vModelSelect,ye.value]])])]),ee.value==="s3"?(t.openBlock(),t.createBlock(Bm,{key:0,config:e.config,storages:t.unref(c),onActive:Ee[11]||(Ee[11]=ce=>Pe.value=ce)},null,8,["config","storages"])):t.createCommentVNode("",!0),ee.value==="sftp"||ee.value==="ftps"?(t.openBlock(),t.createBlock(Dm,{key:1,config:e.config,"keys-visible":ee.value==="sftp",onActive:Ee[12]||(Ee[12]=ce=>it.value=ce)},null,8,["config","keys-visible"])):t.createCommentVNode("",!0),ee.value==="nfs"?(t.openBlock(),t.createBlock(Mm,{key:2,config:e.config,storages:t.unref(c),onActive:Ee[13]||(Ee[13]=ce=>Q.value=ce)},null,8,["config","storages"])):t.createCommentVNode("",!0),ee.value==="ftps"||ee.value==="webdav"||ee.value==="mount"?(t.openBlock(),t.createBlock(t0,{key:3,config:e.config,protocol:ee.value},null,8,["config","protocol"])):t.createCommentVNode("",!0),Ce.value?(t.openBlock(),t.createBlock(Cm,{key:4,guide:Ce.value,locale:o.value},null,8,["guide","locale"])):t.createCommentVNode("",!0)]))],2))}}),aC=["aria-label"],rC={class:"fe-cmdp__inputwrap"},oC=["placeholder"],iC=["aria-selected","onMouseenter","onClick"],lC={class:"fe-cmdp__icon","aria-hidden":"true"},sC={class:"fe-cmdp__label"},cC={class:"fe-cmdp__group"},dC=["aria-selected","onMouseenter","onClick"],uC={class:"fe-cmdp__icon","aria-hidden":"true"},fC={class:"fe-cmdp__label"},pC={class:"fe-cmdp__group"},hC={key:0,class:"fe-cmdp__loading"},mC=["aria-selected","onMouseenter","onClick"],gC={class:"fe-cmdp__icon","aria-hidden":"true"},yC={class:"fe-cmdp__hitbody"},bC={class:"fe-cmdp__hitline"},vC={class:"fe-cmdp__label"},kC={key:0,class:"fe-cmdp__badge"},_C=["title"],wC={key:1,class:"fe-cmdp__snippet"},EC={key:0,class:"fe-cmdp__mark"},SC={class:"fe-cmdp__group"},xC=["aria-selected","onMouseenter","onClick","onKeydown"],CC={class:"fe-cmdp__icon","aria-hidden":"true"},NC={class:"fe-cmdp__label"},BC=["title","aria-label","onClick"],TC={class:"fe-cmdp__group"},DC=["aria-selected","onMouseenter","onClick"],AC={class:"fe-cmdp__icon","aria-hidden":"true"},MC={class:"fe-cmdp__label"},OC={key:4,class:"fe-cmdp__empty"},IC={class:"fe-cmdp__hint"},RC=3,zC=8,LC=250,Rm="filex.saved-searches",zm=10,FC=t.defineComponent({__name:"CommandPalette",props:{open:{type:Boolean},locale:{},files:{},viewMode:{},canWrite:{type:Boolean},canGoUp:{type:Boolean},globalSearch:{type:Function},splitEnabled:{type:Boolean},initialQuery:{}},emits:["close","open-node","navigate","new-folder","upload","toggle-view","open-trash","refresh","go-up","open-hit","open-theme","open-shortcut-settings","start-tour","tab-new","split-toggle"],setup(e,{emit:n}){const a=e,r=n,{t:o,nodeDisplayName:i}=Dt(()=>a.locale),s=t.ref(""),l=t.ref(0),c=t.ref(null),d=t.ref(null);function u(F,U){if(!U)return 0;const z=F.toLocaleLowerCase(),Y=U.toLocaleLowerCase(),Q=z.indexOf(Y);if(Q===-1)return-1;let oe=100-Math.min(Q,50);return Q===0&&(oe+=40),oe-=Math.min(z.length,40)/4,oe}const p=t.computed(()=>{const F=s.value.trim();if(!F.includes("/"))return[];const U=F.replace(/^\/+|\/+$/g,"");return U?[{kind:"goto",id:`goto:${U}`,label:`${o("palette.goto")}: ${U}`,icon:"➜",path:U}]:[]}),f=t.computed(()=>{const F=s.value.trim(),U=a.files.map(z=>({f:z,name:i(z),s:u(i(z),F)})).filter(z=>z.s>=0);return F&&U.sort((z,Y)=>Y.s-z.s),U.slice(0,8).map(z=>({kind:"file",id:`file:${z.f.path}`,label:z.name,icon:z.f.type==="dir"?"πŸ“":"πŸ“„",node:z.f}))}),h=t.computed(()=>{const F=s.value.trim();return[{command:"new-folder",label:o("toolbar.new_folder"),icon:"πŸ“",enabled:a.canWrite!==!1},{command:"upload",label:o("toolbar.upload"),icon:"⬆",enabled:a.canWrite!==!1},{command:"toggle-view",label:o("cmd.view_toggle"),icon:a.viewMode==="list"?"β–¦":a.viewMode==="grid"?"β–£":"☰",enabled:!0},{command:"open-trash",label:o("cmd.trash"),icon:"πŸ—‘",enabled:!0},{command:"refresh",label:o("toolbar.refresh"),icon:"⟳",enabled:!0},{command:"go-up",label:o("toolbar.go_up"),icon:"↑",enabled:a.canGoUp!==!1},{command:"open-theme",label:o("theme.menu"),icon:"🎨",enabled:!0},{command:"open-shortcut-settings",label:o("shortcuts.settings.menu"),icon:"⌨",enabled:!0},{command:"start-tour",label:o("tour.restart"),icon:"πŸŽ“",enabled:!0},{command:"tab-new",label:o("cmd.tab_new"),icon:"⧉",enabled:!0},{command:"split-toggle",label:o("cmd.split_toggle"),icon:"β—«",enabled:a.splitEnabled!==!1}].filter(z=>z.enabled&&u(z.label,F)>=0).map(z=>({kind:"command",id:`cmd:${z.command}`,label:z.label,icon:z.icon,command:z.command}))}),_=t.ref([]),m=t.ref(!1);let k,g=0;function v(F){k&&clearTimeout(k);const U=a.globalSearch;if(!U||F.length<RC){_.value=[],m.value=!1;return}m.value=!0,k=setTimeout(async()=>{const z=++g;try{const Y=await U(F);if(z!==g)return;_.value=Array.isArray(Y)?Y.slice(0,zC):[]}catch{z===g&&(_.value=[])}finally{z===g&&(m.value=!1)}},LC)}function y(F){const U=String(F.path??"").replace(/^\/+|\/+$/g,""),z=U.lastIndexOf("/"),Y=z===-1?"":U.slice(0,z),Q=typeof F.storage=="string"&&F.storage||typeof F.storage_name=="string"&&F.storage_name||"";return Q&&Y?`${Q}/${Y}`:Q||Y||"/"}const b=t.computed(()=>_.value.map(F=>({kind:"hit",id:`hit:${F.storage_id??""}:${F.path??""}:${F.id??""}`,label:String(F.name??F.path??""),icon:F.type==="dir"?"πŸ“":"πŸ“„",hit:F,crumb:y(F),inContent:jd(F.matched),snippet:typeof F.snippet=="string"?F.snippet:""}))),S=t.ref([]);function N(){try{const F=localStorage.getItem(Rm);if(!F)return[];const U=JSON.parse(F);return Array.isArray(U)?U.filter(z=>typeof z=="string"&&z.trim()!=="").slice(0,zm):[]}catch{return[]}}function T(F){S.value=F.slice(0,zm);try{localStorage.setItem(Rm,JSON.stringify(S.value))}catch{}}function E(F){const U=F.trim();if(!U)return;const z=S.value.filter(Y=>Y!==U);z.unshift(U),T(z)}function w(F){T(S.value.filter(U=>U!==F)),l.value>=M.value.length&&(l.value=Math.max(0,M.value.length-1))}const C=t.computed(()=>{const F=s.value.trim(),U=[];F&&!S.value.includes(F)&&U.push({kind:"save",id:`save:${F}`,label:`${o("palette.save")}: ${F}`,icon:"πŸ’Ύ",query:F});const z=S.value.map(Y=>({s:Y,sc:u(Y,F)})).filter(Y=>Y.sc>=0||!F);for(const Y of z)U.push({kind:"saved",id:`saved:${Y.s}`,label:Y.s,icon:"πŸ”–",query:Y.s});return U}),M=t.computed(()=>[...p.value,...f.value,...b.value,...C.value,...h.value]),L=t.computed(()=>p.value.length),I=t.computed(()=>L.value+f.value.length),V=t.computed(()=>I.value+b.value.length),$=t.computed(()=>V.value+C.value.length);t.watch(s,F=>{l.value=0,v(F.trim())});function R(F){const U=M.value.length;U&&(l.value=(l.value+F+U)%U,t.nextTick(()=>{var z,Y;(Y=(z=d.value)==null?void 0:z.querySelector(".is-active"))==null||Y.scrollIntoView({block:"nearest"})}))}function P(F){const U=F??M.value[l.value];if(U){if(U.kind==="saved"){s.value=U.query,t.nextTick(()=>{var z;return(z=c.value)==null?void 0:z.focus()});return}if(U.kind==="save"){E(U.query),t.nextTick(()=>{var z;return(z=c.value)==null?void 0:z.focus()});return}if(r("close"),U.kind==="hit"){r("open-hit",U.hit);return}if(U.kind==="file")r("open-node",U.node);else if(U.kind==="goto")r("navigate",U.path);else switch(U.command){case"new-folder":r("new-folder");break;case"upload":r("upload");break;case"toggle-view":r("toggle-view");break;case"open-trash":r("open-trash");break;case"refresh":r("refresh");break;case"go-up":r("go-up");break;case"open-theme":r("open-theme");break;case"open-shortcut-settings":r("open-shortcut-settings");break;case"start-tour":r("start-tour");break;case"tab-new":r("tab-new");break;case"split-toggle":r("split-toggle");break}}}function q(F){if(a.open)switch(F.key){case"ArrowDown":F.preventDefault(),F.stopPropagation(),R(1);break;case"ArrowUp":F.preventDefault(),F.stopPropagation(),R(-1);break;case"Enter":F.preventDefault(),F.stopPropagation(),P();break;case"Escape":F.preventDefault(),F.stopPropagation(),r("close");break}}return t.watch(()=>a.open,F=>{F?(s.value=a.initialQuery??"",l.value=0,_.value=[],m.value=!1,S.value=N(),document.addEventListener("keydown",q,!0),t.nextTick(()=>{var U,z;(U=c.value)==null||U.focus(),(z=c.value)==null||z.select()})):(k&&clearTimeout(k),document.removeEventListener("keydown",q,!0))}),t.onBeforeUnmount(()=>{k&&clearTimeout(k),document.removeEventListener("keydown",q,!0)}),(F,U)=>(t.openBlock(),t.createBlock(t.Transition,{name:"fe-modal"},{default:t.withCtx(()=>[e.open?(t.openBlock(),t.createElementBlock("div",{key:0,class:"fe-modal__backdrop fe-cmdp__backdrop",role:"presentation",onClick:U[2]||(U[2]=z=>r("close"))},[t.createElementVNode("div",{class:"fe-cmdp",role:"dialog","aria-modal":"true","aria-label":t.unref(o)("palette.placeholder"),onClick:U[1]||(U[1]=t.withModifiers(()=>{},["stop"]))},[t.createElementVNode("div",rC,[U[3]||(U[3]=t.createElementVNode("svg",{class:"fe-cmdp__glyph",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","aria-hidden":"true"},[t.createElementVNode("circle",{cx:"7",cy:"7",r:"4.5"}),t.createElementVNode("path",{d:"m10.5 10.5 3.5 3.5"})],-1)),t.withDirectives(t.createElementVNode("input",{ref_key:"inputEl",ref:c,"onUpdate:modelValue":U[0]||(U[0]=z=>s.value=z),type:"text",class:"fe-cmdp__input",placeholder:t.unref(o)("palette.placeholder"),autocomplete:"off",spellcheck:"false"},null,8,oC),[[t.vModelText,s.value]])]),t.createElementVNode("div",{ref_key:"listEl",ref:d,class:"fe-cmdp__list",role:"listbox"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item",{"is-active":Y===l.value}]),role:"option","aria-selected":Y===l.value,onMouseenter:Q=>l.value=Y,onClick:Q=>P(z)},[t.createElementVNode("span",lC,t.toDisplayString(z.icon),1),t.createElementVNode("span",sC,t.toDisplayString(z.label),1)],42,iC))),128)),f.value.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createElementVNode("div",cC,t.toDisplayString(t.unref(o)("palette.files")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item",{"is-active":L.value+Y===l.value}]),role:"option","aria-selected":L.value+Y===l.value,onMouseenter:Q=>l.value=L.value+Y,onClick:Q=>P(z)},[t.createElementVNode("span",uC,t.toDisplayString(z.icon),1),t.createElementVNode("span",fC,t.toDisplayString(z.label),1)],42,dC))),128))],64)):t.createCommentVNode("",!0),b.value.length||m.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("div",pC,t.toDisplayString(t.unref(o)("palette.everywhere")),1),m.value&&!b.value.length?(t.openBlock(),t.createElementBlock("div",hC,t.toDisplayString(t.unref(o)("palette.searching")),1)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(b.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item fe-cmdp__item--hit",{"is-active":I.value+Y===l.value}]),role:"option","aria-selected":I.value+Y===l.value,onMouseenter:Q=>l.value=I.value+Y,onClick:Q=>P(z)},[t.createElementVNode("span",gC,t.toDisplayString(z.icon),1),t.createElementVNode("span",yC,[t.createElementVNode("span",bC,[t.createElementVNode("span",vC,t.toDisplayString(z.label),1),z.inContent?(t.openBlock(),t.createElementBlock("span",kC,t.toDisplayString(t.unref(o)("search.in_content")),1)):t.createCommentVNode("",!0)]),z.crumb?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-cmdp__crumb",title:z.crumb},t.toDisplayString(z.crumb),9,_C)):t.createCommentVNode("",!0),z.snippet?(t.openBlock(),t.createElementBlock("span",wC,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(ji)(z.snippet),(Q,oe)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:oe},[Q.match?(t.openBlock(),t.createElementBlock("mark",EC,t.toDisplayString(Q.text),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(Q.text),1)],64))],64))),128))])):t.createCommentVNode("",!0)])],42,mC))),128))],64)):t.createCommentVNode("",!0),C.value.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createElementVNode("div",SC,t.toDisplayString(t.unref(o)("palette.saved")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C.value,(z,Y)=>(t.openBlock(),t.createElementBlock("div",{key:z.id,class:t.normalizeClass(["fe-cmdp__item fe-cmdp__item--saved",{"is-active":V.value+Y===l.value}]),role:"option","aria-selected":V.value+Y===l.value,tabindex:"-1",onMouseenter:Q=>l.value=V.value+Y,onClick:Q=>P(z),onKeydown:t.withKeys(t.withModifiers(Q=>P(z),["prevent"]),["enter"])},[t.createElementVNode("span",CC,t.toDisplayString(z.icon),1),t.createElementVNode("span",NC,t.toDisplayString(z.label),1),z.kind==="saved"?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-cmdp__del",title:t.unref(o)("palette.saved.delete"),"aria-label":t.unref(o)("palette.saved.delete"),onClick:t.withModifiers(Q=>w(z.query),["stop"])},"πŸ—‘",8,BC)):t.createCommentVNode("",!0)],42,xC))),128))],64)):t.createCommentVNode("",!0),h.value.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[t.createElementVNode("div",TC,t.toDisplayString(t.unref(o)("palette.commands")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item",{"is-active":$.value+Y===l.value}]),role:"option","aria-selected":$.value+Y===l.value,onMouseenter:Q=>l.value=$.value+Y,onClick:Q=>P(z)},[t.createElementVNode("span",AC,t.toDisplayString(z.icon),1),t.createElementVNode("span",MC,t.toDisplayString(z.label),1)],42,DC))),128))],64)):t.createCommentVNode("",!0),M.value.length===0&&!m.value?(t.openBlock(),t.createElementBlock("div",OC,t.toDisplayString(t.unref(o)("palette.empty")),1)):t.createCommentVNode("",!0)],512),t.createElementVNode("div",IC,t.toDisplayString(t.unref(o)("palette.hint")),1)],8,aC)])):t.createCommentVNode("",!0)]),_:1}))}}),$C=["aria-labelledby","aria-label"],PC={key:0,class:"fe-modal__head"},VC={class:"fe-modal__body"},UC={key:1,class:"fe-modal__actions"},Lm='input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),a[href],[tabindex]:not([tabindex="-1"])',va=t.defineComponent({__name:"Modal",props:{open:{type:Boolean},title:{},size:{},closeOnBackdrop:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,o=t.ref(null);let i=0;const s=`fe-modal-title-${++i}-${Math.random().toString(36).slice(2,7)}`;let l=null;t.watch(()=>a.open,u=>{var p;u?(l=document.activeElement??null,document.addEventListener("keydown",c),setTimeout(()=>{var h;const f=(h=o.value)==null?void 0:h.querySelector(Lm);f==null||f.focus()},30)):(document.removeEventListener("keydown",c),(p=l==null?void 0:l.focus)==null||p.call(l),l=null)}),t.onBeforeUnmount(()=>document.removeEventListener("keydown",c));function c(u){if(u.key==="Escape"){r("close");return}if(u.key==="Tab"&&o.value){const p=Array.from(o.value.querySelectorAll(Lm)).filter(m=>m.offsetParent!==null||m===document.activeElement);if(p.length===0)return;const f=p[0],h=p[p.length-1],_=document.activeElement;u.shiftKey&&(_===f||!o.value.contains(_))?(u.preventDefault(),h.focus()):!u.shiftKey&&(_===h||!o.value.contains(_))&&(u.preventDefault(),f.focus())}}function d(){a.closeOnBackdrop!==!1&&r("close")}return(u,p)=>(t.openBlock(),t.createBlock(t.Transition,{name:"fe-modal"},{default:t.withCtx(()=>[e.open?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.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:d},[t.createElementVNode("div",{ref_key:"cardEl",ref:o,class:t.normalizeClass(["fe-modal__card",[`fe-modal__card--${e.size||"md"}`,e.chromeless&&"fe-modal__card--chromeless"]]),role:"dialog","aria-modal":"true","aria-labelledby":e.title&&!e.chromeless?s:void 0,"aria-label":(!e.title||e.chromeless)&&e.title||void 0,onClick:p[1]||(p[1]=t.withModifiers(()=>{},["stop"]))},[e.title&&!e.chromeless?(t.openBlock(),t.createElementBlock("header",PC,[t.createElementVNode("h2",{id:s,class:"fe-modal__title"},t.toDisplayString(e.title),1),t.createElementVNode("button",{type:"button",class:"fe-modal__close","aria-label":"Close",onClick:p[0]||(p[0]=f=>r("close"))},"Γ—")])):t.createCommentVNode("",!0),t.createElementVNode("div",VC,[t.renderSlot(u.$slots,"default")]),u.$slots.actions&&!e.chromeless?(t.openBlock(),t.createElementBlock("footer",UC,[t.renderSlot(u.$slots,"actions")])):t.createCommentVNode("",!0)],10,$C)],2)):t.createCommentVNode("",!0)]),_:3}))}}),HC={class:"fe-shortcuts"},KC={class:"fe-shortcuts__heading"},GC={class:"fe-shortcuts__table"},qC={class:"fe-shortcuts__keys"},WC={key:0,class:"fe-shortcuts__unbound"},jC={class:"fe-kbd"},YC={key:0,class:"fe-shortcuts__or","aria-hidden":"true"},XC={class:"fe-shortcuts__desc"},ZC=["title"],JC=t.defineComponent({__name:"ShortcutsHelp",props:{open:{type:Boolean},locale:{}},emits:["close","customize"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=Bd(),s=t.computed(()=>{const l=[],c=new Map;for(const d of i.value)c.has(d.groupKey)||(c.set(d.groupKey,[]),l.push(d.groupKey)),c.get(d.groupKey).push(d);return l.map(d=>({key:d,items:c.get(d)}))});return(l,c)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("shortcuts.title"),size:"md",onClose:c[2]||(c[2]=d=>r("close"))},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:c[0]||(c[0]=d=>r("customize"))}," ⌨ "+t.toDisplayString(t.unref(o)("shortcuts.customize")),1),t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:c[1]||(c[1]=d=>r("close"))},t.toDisplayString(t.unref(o)("viewer.close")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",HC,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,d=>(t.openBlock(),t.createElementBlock("section",{key:d.key,class:"fe-shortcuts__group"},[t.createElementVNode("h3",KC,t.toDisplayString(t.unref(o)(d.key)),1),t.createElementVNode("div",GC,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.items,u=>(t.openBlock(),t.createElementBlock("div",{key:u.id,class:"fe-shortcuts__row"},[t.createElementVNode("span",qC,[u.keys.length===0?(t.openBlock(),t.createElementBlock("span",WC,t.toDisplayString(t.unref(o)("shortcuts.settings.unbound")),1)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(u.keys,(p,f)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:p},[t.createElementVNode("kbd",jC,t.toDisplayString(p),1),f<u.keys.length-1?(t.openBlock(),t.createElementBlock("span",YC,"/")):t.createCommentVNode("",!0)],64))),128))]),t.createElementVNode("span",XC,[t.createTextVNode(t.toDisplayString(t.unref(o)(u.labelKey))+" ",1),u.overridden?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-shortcuts__custom",title:t.unref(o)("shortcuts.settings.customized")},"●",8,ZC)):t.createCommentVNode("",!0)])]))),128))])]))),128))])]),_:1},8,["open","title"]))}}),Yi="filex.theme",ka="default",ps=[{id:ka,nameKey:"theme.name.default",light:{"--fe-bg":"#ffffff","--fe-bg-elev":"#f7f8fa","--fe-bg-hover":"#edf0f5","--fe-bg-selected":"#dfe8ff","--fe-border":"#e2e6ed","--fe-border-strong":"#c7ced9","--fe-text":"#1a1e27","--fe-text-muted":"#5a6475","--fe-text-on-primary":"#ffffff","--fe-primary":"#3b82f6","--fe-primary-hover":"#2563eb","--fe-danger":"#dc2626","--fe-danger-hover":"#b91c1c"},dark:{"--fe-bg":"#0f1419","--fe-bg-elev":"#161c25","--fe-bg-hover":"#1f2733","--fe-bg-selected":"#23324a","--fe-border":"#2a323e","--fe-border-strong":"#3a4453","--fe-text":"#e5e9f0","--fe-text-muted":"#8b95a7","--fe-text-on-primary":"#ffffff","--fe-primary":"#60a5fa","--fe-primary-hover":"#3b82f6","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"night",nameKey:"theme.name.night",light:{"--fe-bg":"#f6f8fd","--fe-bg-elev":"#edf1fa","--fe-bg-hover":"#e2e9f7","--fe-bg-selected":"#d2ddf4","--fe-border":"#d6deee","--fe-border-strong":"#aebfda","--fe-text":"#151f38","--fe-text-muted":"#49587a","--fe-text-on-primary":"#ffffff","--fe-primary":"#2c4a9e","--fe-primary-hover":"#213a80","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#0a1024","--fe-bg-elev":"#111a35","--fe-bg-hover":"#1a2547","--fe-bg-selected":"#243665","--fe-border":"#26335a","--fe-border-strong":"#3c4e84","--fe-text":"#dfe6f7","--fe-text-muted":"#96a5cc","--fe-text-on-primary":"#050b26","--fe-primary":"#6d8dfc","--fe-primary-hover":"#5273f2","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"forest",nameKey:"theme.name.forest",light:{"--fe-bg":"#f5faf5","--fe-bg-elev":"#eaf3eb","--fe-bg-hover":"#dcecdf","--fe-bg-selected":"#c8e2ce","--fe-border":"#d2e2d4","--fe-border-strong":"#a2c3a8","--fe-text":"#182b1d","--fe-text-muted":"#42604a","--fe-text-on-primary":"#ffffff","--fe-primary":"#2b7a41","--fe-primary-hover":"#226334","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#0d1611","--fe-bg-elev":"#132019","--fe-bg-hover":"#1b2d23","--fe-bg-selected":"#264532","--fe-border":"#28402f","--fe-border-strong":"#3e5f49","--fe-text":"#dcebe0","--fe-text-muted":"#93b09b","--fe-text-on-primary":"#04180b","--fe-primary":"#54c17a","--fe-primary-hover":"#3fae66","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"amber",nameKey:"theme.name.amber",light:{"--fe-bg":"#fdf9f0","--fe-bg-elev":"#f7efdd","--fe-bg-hover":"#f0e3c8","--fe-bg-selected":"#ead6ab","--fe-border":"#e6dabf","--fe-border-strong":"#c6b184","--fe-text":"#33270f","--fe-text-muted":"#655631","--fe-text-on-primary":"#ffffff","--fe-primary":"#9a4b00","--fe-primary-hover":"#7c3c00","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#191307","--fe-bg-elev":"#231a0c","--fe-bg-hover":"#2f2312","--fe-bg-selected":"#44331b","--fe-border":"#3b2e17","--fe-border-strong":"#5b4a29","--fe-text":"#f2e7d4","--fe-text-muted":"#bda887","--fe-text-on-primary":"#2a1c02","--fe-primary":"#f5a524","--fe-primary-hover":"#ffb84d","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"lilac",nameKey:"theme.name.lilac",light:{"--fe-bg":"#faf7fd","--fe-bg-elev":"#f2ecfa","--fe-bg-hover":"#e8ddf5","--fe-bg-selected":"#dccaf0","--fe-border":"#e1d6ee","--fe-border-strong":"#bda6d9","--fe-text":"#241a33","--fe-text-muted":"#584871","--fe-text-on-primary":"#ffffff","--fe-primary":"#7231e0","--fe-primary-hover":"#5f21c4","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#130f1c","--fe-bg-elev":"#1b1527","--fe-bg-hover":"#261d37","--fe-bg-selected":"#37294f","--fe-border":"#302546","--fe-border-strong":"#4b3a6d","--fe-text":"#e9e2f5","--fe-text-muted":"#a999c5","--fe-text-on-primary":"#180d33","--fe-primary":"#b197fa","--fe-primary-hover":"#9c7cf4","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"contrast",nameKey:"theme.name.contrast",light:{"--fe-bg":"#ffffff","--fe-bg-elev":"#f2f2f2","--fe-bg-hover":"#e0e0e0","--fe-bg-selected":"#c9dcff","--fe-border":"#5c5c5c","--fe-border-strong":"#000000","--fe-text":"#000000","--fe-text-muted":"#3d3d3d","--fe-text-on-primary":"#ffffff","--fe-primary":"#003d99","--fe-primary-hover":"#002a6b","--fe-danger":"#a80000","--fe-danger-hover":"#7d0000","--fe-shadow":"0 0 0 1px #000000, 0 10px 32px rgba(0, 0, 0, 0.25)","--fe-shadow-sm":"0 0 0 1px #000000"},dark:{"--fe-bg":"#000000","--fe-bg-elev":"#0d0d0d","--fe-bg-hover":"#212121","--fe-bg-selected":"#003d80","--fe-border":"#8f8f8f","--fe-border-strong":"#ffffff","--fe-text":"#ffffff","--fe-text-muted":"#d6d6d6","--fe-text-on-primary":"#001430","--fe-primary":"#7ab8ff","--fe-primary-hover":"#9ccaff","--fe-danger":"#ff7575","--fe-danger-hover":"#ff9999","--fe-shadow":"0 0 0 1px #ffffff, 0 12px 32px rgba(0, 0, 0, 0.65)","--fe-shadow-sm":"0 0 0 1px #ffffff"}},{id:"gray",nameKey:"theme.name.gray",light:{"--fe-bg":"#f7f7f8","--fe-bg-elev":"#efeff1","--fe-bg-hover":"#e4e4e7","--fe-bg-selected":"#d6d7db","--fe-border":"#dfdfe2","--fe-border-strong":"#b9b9c0","--fe-text":"#26272b","--fe-text-muted":"#585a63","--fe-text-on-primary":"#ffffff","--fe-primary":"#4b4b54","--fe-primary-hover":"#38383f","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#131316","--fe-bg-elev":"#1b1b1f","--fe-bg-hover":"#26262b","--fe-bg-selected":"#35353c","--fe-border":"#2d2d33","--fe-border-strong":"#4a4a52","--fe-text":"#e6e6e9","--fe-text-muted":"#a4a4ad","--fe-text-on-primary":"#17171b","--fe-primary":"#b0b0ba","--fe-primary-hover":"#c4c4cd","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"terminal",nameKey:"theme.name.terminal",light:{"--fe-bg":"#f3f9f4","--fe-bg-elev":"#e5f2e8","--fe-bg-hover":"#d5ead9","--fe-bg-selected":"#bce3c6","--fe-border":"#cbe2d1","--fe-border-strong":"#94c2a0","--fe-text":"#0c2913","--fe-text-muted":"#31573c","--fe-text-on-primary":"#ffffff","--fe-primary":"#116b33","--fe-primary-hover":"#0c5427","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f","--fe-font":'ui-monospace, "SF Mono", Consolas, Menlo, monospace'},dark:{"--fe-bg":"#050d07","--fe-bg-elev":"#0a1710","--fe-bg-hover":"#112418","--fe-bg-selected":"#1a3a26","--fe-border":"#1c3a2a","--fe-border-strong":"#316144","--fe-text":"#4fdd8b","--fe-text-muted":"#38a668","--fe-text-on-primary":"#03180a","--fe-primary":"#25c95e","--fe-primary-hover":"#4fdd8b","--fe-danger":"#ff6b62","--fe-danger-hover":"#ff8d86","--fe-font":'ui-monospace, "SF Mono", Consolas, Menlo, monospace'}}];function $o(e){return ps.find(n=>n.id===e)}const QC=Array.from(new Set(ps.flatMap(e=>[...Object.keys(e.light),...Object.keys(e.dark)])));function eN(){try{const e=localStorage.getItem(Yi);return e&&$o(e)?e:ka}catch{return ka}}const n0=t.ref(typeof window>"u"?ka:eN());function Fm(e){const n=$o(e)?e:ka;n0.value=n;try{n===ka?localStorage.removeItem(Yi):localStorage.setItem(Yi,n)}catch{}}function $m(){return{themeId:n0,setTheme:Fm}}const hs="filex.thememode",a0=["host","auto","light","dark"];function tN(){try{const e=localStorage.getItem(hs);return e&&a0.includes(e)?e:"host"}catch{return"host"}}const r0=t.ref(typeof window>"u"?"host":tN());function nN(e){const n=a0.includes(e)?e:"host";r0.value=n;try{n==="host"?localStorage.removeItem(hs):localStorage.setItem(hs,n)}catch{}}function aN(){return{themeMode:r0,setThemeMode:nN}}if(typeof window<"u")try{window.addEventListener("storage",e=>{if(e.key!==hs)return;const n=e.newValue;r0.value=n&&a0.includes(n)?n:"host"})}catch{}if(typeof window<"u")try{window.addEventListener("storage",e=>{e.key===Yi&&(n0.value=e.newValue&&$o(e.newValue)?e.newValue:ka)})}catch{}function Pm(e,n,a){for(const i of QC)e.style.removeProperty(i);if(n===ka)return;const r=$o(n);if(!r)return;const o=a?r.dark:r.light;for(const[i,s]of Object.entries(o))e.style.setProperty(i,s)}const Vm="data-filex-theme";function Um(e){return Object.entries(e).map(([n,a])=>`${n}:${a};`).join("")}function Hm(e){const n=Um(e.light),a=Um(e.dark),r=[".fe--theme-dark",":root[data-theme='dark'] .fe",".fe.fe--theme-dark",":root.dark",".dark",":root.dark .fe",".dark .fe",".fe-ctx-backdrop--theme-dark",".fe-ctx-backdrop--theme-auto[data-prefers-dark='1']"].join(","),o=[".fe:not(.fe--theme-light)",".fe-ctx-backdrop--theme-auto:not(.fe-ctx-backdrop--theme-light)"].join(",");return`/* filex theme: ${e.id} */:root,.fe{${n}}${r}{${a}}@media (prefers-color-scheme: dark){${o}{${a}}}`}function Km(e){if(typeof document>"u")return;let n=document.head.querySelector(`style[${Vm}]`);const a=e===ka?void 0:$o(e);if(!a){n&&(n.textContent="");return}n?n!==document.head.lastElementChild&&document.head.appendChild(n):(n=document.createElement("style"),n.setAttribute(Vm,""),document.head.appendChild(n));const r=Hm(a);n.textContent!==r&&(n.textContent=r)}const rN=["aria-label"],oN={class:"fe-thememode__label"},iN={class:"fe-thememode__seg"},lN=["aria-pressed","onClick"],sN={class:"fe-ficon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},cN={key:1,d:"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"},dN={class:"fe-themes__hint"},uN=["aria-label"],fN=["aria-selected","onClick"],pN={class:"fe-themecard__name"},hN=["title"],mN=["disabled"],Gm=t.defineComponent({__name:"ThemeGallery",props:{open:{type:Boolean},locale:{},theme:{},dark:{type:Boolean},current:{},mode:{},hostMode:{}},emits:["close","select","mode"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=[{id:"light",labelKey:"theme.mode.light"},{id:"dark",labelKey:"theme.mode.dark"},{id:"auto",labelKey:"theme.mode.auto"}],s=t.computed(()=>a.mode==="host"?a.hostMode:a.mode);function l(d){return a.dark?d.dark:d.light}const c=ka;return(d,u)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("theme.title"),size:"lg",theme:e.theme,onClose:u[2]||(u[2]=p=>r("close"))},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn",disabled:e.current===t.unref(c),onClick:u[0]||(u[0]=p=>r("select",t.unref(c)))},t.toDisplayString(t.unref(o)("theme.reset")),9,mN),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:u[1]||(u[1]=p=>r("close"))},t.toDisplayString(t.unref(o)("theme.close")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",{class:"fe-thememode",role:"group","aria-label":t.unref(o)("theme.mode.label")},[t.createElementVNode("span",oN,t.toDisplayString(t.unref(o)("theme.mode.label")),1),t.createElementVNode("div",iN,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,p=>t.createElementVNode("button",{key:p.id,type:"button",class:t.normalizeClass(["fe-thememode__opt",{"is-active":s.value===p.id}]),"aria-pressed":s.value===p.id,onClick:f=>r("mode",p.id)},[(t.openBlock(),t.createElementBlock("svg",sN,[p.id==="light"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[u[3]||(u[3]=t.createElementVNode("circle",{cx:"12",cy:"12",r:"4"},null,-1)),u[4]||(u[4]=t.createElementVNode("path",{d:"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"},null,-1))],64)):p.id==="dark"?(t.openBlock(),t.createElementBlock("path",cN)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[u[5]||(u[5]=t.createElementVNode("circle",{cx:"12",cy:"12",r:"9"},null,-1)),u[6]||(u[6]=t.createElementVNode("path",{d:"M12 3a9 9 0 0 1 0 18z",fill:"currentColor",stroke:"none"},null,-1))],64))])),t.createElementVNode("span",null,t.toDisplayString(t.unref(o)(p.labelKey)),1)],10,lN)),64))])],8,rN),t.createElementVNode("p",dN,t.toDisplayString(t.unref(o)("theme.hint")),1),t.createElementVNode("div",{class:"fe-themes",role:"listbox","aria-label":t.unref(o)("theme.title")},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(ps),p=>(t.openBlock(),t.createElementBlock("button",{key:p.id,type:"button",class:t.normalizeClass(["fe-themecard",{"is-selected":p.id===e.current}]),role:"option","aria-selected":p.id===e.current,style:t.normalizeStyle(l(p)),onClick:f=>r("select",p.id)},[u[7]||(u[7]=t.createElementVNode("span",{class:"fe-themecard__preview","aria-hidden":"true"},[t.createElementVNode("span",{class:"fe-themecard__topbar"},[t.createElementVNode("span",{class:"fe-themecard__chip fe-themecard__chip--primary"}),t.createElementVNode("span",{class:"fe-themecard__chip"}),t.createElementVNode("span",{class:"fe-themecard__chip fe-themecard__chip--ghost"})]),t.createElementVNode("span",{class:"fe-themecard__row"},[t.createElementVNode("span",{class:"fe-themecard__dot"}),t.createElementVNode("span",{class:"fe-themecard__line",style:{width:"62%"}})]),t.createElementVNode("span",{class:"fe-themecard__row fe-themecard__row--selected"},[t.createElementVNode("span",{class:"fe-themecard__dot fe-themecard__dot--primary"}),t.createElementVNode("span",{class:"fe-themecard__line",style:{width:"44%"}})]),t.createElementVNode("span",{class:"fe-themecard__row"},[t.createElementVNode("span",{class:"fe-themecard__dot fe-themecard__dot--muted"}),t.createElementVNode("span",{class:"fe-themecard__line fe-themecard__line--muted",style:{width:"74%"}})])],-1)),t.createElementVNode("span",pN,[t.createTextVNode(t.toDisplayString(t.unref(o)(p.nameKey))+" ",1),p.id===e.current?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-themecard__check",title:t.unref(o)("theme.selected")},"βœ“",8,hN)):t.createCommentVNode("",!0)])],14,fN))),128))],8,uN)]),_:1},8,["open","title","theme"]))}}),gN={class:"fe-shortset"},yN={class:"fe-shortset__topbar"},bN={class:"fe-shortset__hint"},vN=["disabled"],kN={class:"fe-shortcuts__heading"},_N={class:"fe-shortset__row"},wN={class:"fe-shortset__label"},EN=["title"],SN={class:"fe-shortset__keys"},xN={key:0,class:"fe-shortset__capture",role:"status"},CN={key:0,class:"fe-shortcuts__unbound"},NN={class:"fe-kbd"},BN={key:0,class:"fe-shortcuts__or","aria-hidden":"true"},TN={class:"fe-shortset__actions"},DN=["onClick"],AN=["title","aria-label","onClick"],MN={key:1,class:"fe-shortset__fixed"},ON={key:0,class:"fe-shortset__conflict",role:"alert"},IN={class:"fe-shortset__conflict-msg"},RN={class:"fe-kbd"},zN={class:"fe-shortset__conflict-actions"},qm=t.defineComponent({__name:"ShortcutSettings",props:{open:{type:Boolean},locale:{},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=Bd(),s=t.computed(()=>{const b=[],S=new Map;for(const N of i.value)S.has(N.groupKey)||(S.set(N.groupKey,[]),b.push(N.groupKey)),S.get(N.groupKey).push(N);return b.map(N=>({key:N,items:S.get(N)}))}),l=t.computed(()=>i.value.some(b=>b.overridden)),c=t.ref(null),d=t.ref(null);function u(b){const S=Er.find(N=>N.id===b);return S?o(S.labelKey):b}function p(b){d.value=null,c.value=b}function f(){c.value=null}function h(b,S){if(c.value=null,S===Ui(b))return;const N=bh(S,b);if(N){d.value={id:b,combo:S,conflictId:N.id,fixed:N.fixed};return}Zl(b,S)}function _(){const b=d.value;!b||b.fixed||(Zl(b.conflictId,""),Zl(b.id,b.combo),d.value=null)}function m(){d.value=null}function k(b){d.value=null,gh(b)}function g(){d.value=null,c.value=null,yh()}function v(b){if(c.value){if(b.preventDefault(),b.stopPropagation(),b.key==="Escape"){f();return}const S=Nd(b);if(!S)return;h(c.value,S);return}b.key==="Escape"||b.key==="Tab"||b.stopPropagation()}t.watch(()=>a.open,b=>{b?window.addEventListener("keydown",v,!0):(window.removeEventListener("keydown",v,!0),c.value=null,d.value=null)}),t.onBeforeUnmount(()=>window.removeEventListener("keydown",v,!0));function y(){if(c.value){f();return}r("close")}return(b,S)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("shortcuts.settings.title"),size:"lg",theme:e.theme,onClose:y},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:y},t.toDisplayString(t.unref(o)("viewer.close")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",gN,[t.createElementVNode("div",yN,[t.createElementVNode("p",bN,t.toDisplayString(t.unref(o)("shortcuts.settings.hint")),1),t.createElementVNode("button",{type:"button",class:"fe-btn fe-shortset__reset-all",disabled:!l.value,onClick:g}," β†Ί "+t.toDisplayString(t.unref(o)("shortcuts.settings.reset_all")),9,vN)]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,N=>(t.openBlock(),t.createElementBlock("section",{key:N.key,class:"fe-shortset__group"},[t.createElementVNode("h3",kN,t.toDisplayString(t.unref(o)(N.key)),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(N.items,T=>{var E;return t.openBlock(),t.createElementBlock("div",{key:T.id,class:t.normalizeClass(["fe-shortset__item",{"is-capturing":c.value===T.id,"is-conflict":((E=d.value)==null?void 0:E.id)===T.id}])},[t.createElementVNode("div",_N,[t.createElementVNode("span",wN,[t.createTextVNode(t.toDisplayString(t.unref(o)(T.labelKey))+" ",1),T.overridden?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-shortcuts__custom",title:t.unref(o)("shortcuts.settings.customized")},"●",8,EN)):t.createCommentVNode("",!0)]),t.createElementVNode("span",SN,[c.value===T.id?(t.openBlock(),t.createElementBlock("span",xN,t.toDisplayString(t.unref(o)("shortcuts.settings.capture")),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[T.keys.length===0?(t.openBlock(),t.createElementBlock("span",CN,t.toDisplayString(t.unref(o)("shortcuts.settings.unbound")),1)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(T.keys,(w,C)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:w},[t.createElementVNode("kbd",NN,t.toDisplayString(w),1),C<T.keys.length-1?(t.openBlock(),t.createElementBlock("span",BN,"/")):t.createCommentVNode("",!0)],64))),128))],64))]),t.createElementVNode("span",TN,[T.customizable?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[c.value!==T.id?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-shortset__btn",onClick:w=>p(T.id)},t.toDisplayString(t.unref(o)("shortcuts.settings.change")),9,DN)):(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:"fe-btn fe-shortset__btn",onClick:f},t.toDisplayString(t.unref(o)("shortcuts.settings.conflict_cancel")),1)),T.overridden?(t.openBlock(),t.createElementBlock("button",{key:2,type:"button",class:"fe-btn fe-btn--icon-only fe-shortset__btn",title:t.unref(o)("shortcuts.settings.reset"),"aria-label":t.unref(o)("shortcuts.settings.reset"),onClick:w=>k(T.id)}," β†Ί ",8,AN)):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createElementBlock("span",MN,t.toDisplayString(t.unref(o)("shortcuts.settings.fixed")),1))])]),d.value&&d.value.id===T.id?(t.openBlock(),t.createElementBlock("div",ON,[t.createElementVNode("span",IN,[t.createElementVNode("kbd",RN,t.toDisplayString(d.value.combo),1),t.createTextVNode(" "+t.toDisplayString(d.value.fixed?t.unref(o)("shortcuts.settings.conflict_fixed",{name:u(d.value.conflictId)}):t.unref(o)("shortcuts.settings.conflict",{name:u(d.value.conflictId)})),1)]),t.createElementVNode("span",zN,[d.value.fixed?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--danger fe-shortset__btn",onClick:_},t.toDisplayString(t.unref(o)("shortcuts.settings.conflict_take")),1)),t.createElementVNode("button",{type:"button",class:"fe-btn fe-shortset__btn",onClick:m},t.toDisplayString(t.unref(o)("shortcuts.settings.conflict_cancel")),1)])])):t.createCommentVNode("",!0)],2)}),128))]))),128))])]),_:1},8,["open","title","theme"]))}}),LN={key:0,class:"fe-preview"},FN=["src","alt"],$N=["src"],PN=["src"],VN=["data"],UN={class:"fe-preview__fallback"},HN=["href"],KN={key:0,class:"fe-preview__fallback"},GN={key:1,class:"fe-preview__fallback"},qN=["href"],WN={key:2,class:"fe-preview__md-split"},jN={class:"fe-preview__md-split-bar"},YN={key:0,class:"fe-preview__md-split-error"},XN=["disabled"],ZN={class:"fe-preview__md-split-body"},JN=["onKeydown"],QN={key:0,class:"fe-preview__md-split-output fe-preview__md"},eB=["innerHTML"],tB={key:3,class:"fe-preview__fallback"},nB=["href"],aB=["innerHTML"],rB={key:5,class:"fe-preview__pre"},oB={key:0,class:"fe-preview__fallback"},iB=["href"],lB={key:1,class:"fe-preview__fallback"},sB={key:0,class:"fe-preview__fallback"},cB={key:1,class:"fe-preview__fallback"},dB=["href"],uB={key:2,class:"fe-preview__fallback"},fB=["href"],pB={key:3,class:"fe-preview__code-wrap"},hB={class:"fe-preview__code-toolbar"},mB={class:"fe-preview__code-lang"},gB={key:0,class:"fe-preview__code-status"},yB={key:1,class:"fe-preview__code-status fe-preview__code-status--ok"},bB=["title"],vB={key:3,class:"fe-preview__code-status"},kB=["disabled"],_B={key:0,class:"fe-preview__pre fe-preview__code hljs"},wB=["innerHTML"],EB=["data-lang"],SB={key:0,class:"fe-preview__fallback"},xB=["href"],CB={key:8,class:"fe-preview__fallback"},NB=["href"],BB=["href"],o0=1e6,Wm="fe-onlyoffice-api-js",i0=t.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:{},newTabEnabled:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale);function i(le){return((le==null?void 0:le.extension)||"").toLowerCase()}const s=["jpg","jpeg","png","webp","gif","bmp","avif","svg","heic"],l=["mp4","webm","mov","mkv","m4v","ogv"],c=["mp3","wav","ogg","flac","m4a","aac","opus"],d={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"},u=["txt","log"],p=["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf"],f={glb:()=>Promise.resolve().then(()=>Ho),gltf:()=>Promise.resolve().then(()=>Ho),obj:()=>Promise.resolve().then(()=>Ho),stl:()=>Promise.resolve().then(()=>Ho),fbx:()=>Promise.resolve().then(()=>Ho),"3ds":()=>Promise.resolve().then(()=>Ho),epub:()=>Promise.resolve().then(()=>wz),mmd:()=>Promise.resolve().then(()=>_g),mermaid:()=>Promise.resolve().then(()=>_g),drawio:()=>Promise.resolve().then(()=>wg),dio:()=>Promise.resolve().then(()=>wg),tif:()=>Promise.resolve().then(()=>Eg),tiff:()=>Promise.resolve().then(()=>Eg),psd:()=>Promise.resolve().then(()=>Vz),ipynb:()=>Promise.resolve().then(()=>oL),csv:()=>Promise.resolve().then(()=>xg),tsv:()=>Promise.resolve().then(()=>xg),zip:()=>Promise.resolve().then(()=>NL)},h=t.computed(()=>{const le=i(a.file);if(!le)return"other";if(s.includes(le))return"image";if(l.includes(le))return"video";if(c.includes(le))return"audio";if(le==="pdf")return"pdf";const de=a.openMode!=="view";return le==="md"||le==="markdown"?"markdown":le in d?"code":le in f?"viewer":p.includes(le)?"office":u.includes(le)?de?"code":"text":"other"}),_=t.shallowRef(null),m=t.ref(null),k=t.ref(!1);async function g(le){_.value=null,m.value=null;const de=f[le];if(de)try{const ke=await de();_.value=ke.default??ke}catch(ke){m.value=ke instanceof Error?ke.message:"viewer load failed",le==="pdf"&&(k.value=!0)}}function v(){k.value=!0}const y=t.computed(()=>{var ke;const le=i(a.file),de={url:w.value,ext:le,mime:(ke=a.file)==null?void 0:ke.mime_type,t:o,authHeaders:a.authHeaders,authCredentials:a.authCredentials};return a.file&&(de.filePath=M(a.file.path),(le==="zip"||le==="rar"||le==="7z"||le==="tar"||le==="gz"||le==="tgz")&&(de.filePath=a.file.path)),(le==="drawio"||le==="dio")&&(de.drawioUrl=a.drawioUrl??void 0,de.saveUrl=a.saveTextEndpoint??void 0,de.readOnly=a.openMode==="view"),le==="pdf"&&(de.pdfWorkerUrl=a.pdfWorkerUrl??void 0,de.pdfSaveUrl=a.pdfSaveUrl??void 0),de});function b(){N(a.openMode||"edit")}function S(){N("edit")}function N(le){if(!a.file)return;const de=i(a.file),ke=a.viewerBaseUrl||"/files/edit",re=ke.includes("?")?"&":"?",ge=`${ke}${re}path=${encodeURIComponent(a.file.path)}&type=${encodeURIComponent(de)}&mode=${encodeURIComponent(le)}`;window.open(ge,"_blank","noopener")}const T=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"]),E=t.computed(()=>!!a.file&&T.has(i(a.file))),w=t.computed(()=>a.file?a.previewUrl(a.file.path):""),C=t.computed(()=>a.file?a.downloadUrl(a.file.path):"");function M(le){const de=le.indexOf("://");return de===-1?le:le.slice(de+3)}const L=t.ref(!1),I=t.ref(null),V=t.ref(""),$=t.ref(!1),R=t.ref(!1),P=t.ref(!1);let q,F;function U(){R.value=!0,q&&clearTimeout(q),q=setTimeout(()=>{Be(V.value)},250),F&&clearTimeout(F),F=setTimeout(()=>{z()},1500)}async function z(){if(!(!a.saveTextEndpoint||!a.file||P.value)){P.value=!0,I.value=null;try{const le={"Content-Type":"application/json",...await(a.authHeaders??(()=>({})))()},de=await fetch(a.saveTextEndpoint,{method:"POST",headers:le,credentials:a.authCredentials||"same-origin",body:JSON.stringify({path:M(a.file.path),content:V.value})});if(!de.ok)throw new Error(`save failed: ${de.status} ${await de.text()}`);R.value=!1}catch(le){I.value=le instanceof Error?le.message:String(le)}finally{P.value=!1}}}async function Y(le){L.value=!0,I.value=null,V.value="",$.value=!1;try{const de={};a.authHeaders&&Object.assign(de,await a.authHeaders());const ke=await fetch(le,{credentials:a.authCredentials||"same-origin",headers:de});if(!ke.ok)throw new Error(`${ke.status} ${ke.statusText}`);if(Number(ke.headers.get("content-length")||"0")>o0){$.value=!0;return}const ge=await ke.text();ge.length>o0?($.value=!0,V.value=ge.slice(0,o0)):V.value=ge}catch(de){I.value=de instanceof Error?de.message:String(de)}finally{L.value=!1}}const Q=t.ref(""),oe=t.ref(null),he=t.ref(!1);async function Be(le){try{const de=await import("markdown-it").catch(()=>null);if(!de){Q.value="",he.value=!0;return}he.value=!1;const ke=de.default??de,ge=new ke({html:!0,linkify:!0,breaks:!0,typographer:!0}).render(le);Q.value=_e(ge),await new Promise(H=>setTimeout(H,0)),await J()}catch(de){Q.value="",I.value=de instanceof Error?de.message:String(de)}}function _e(le){return le.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 J(){var ge,H,Ie;if(!oe.value)return;const le=oe.value,de=Array.from(le.querySelectorAll("pre > code"));if(de.length===0)return;let ke,re;for(const dt of de){const A=dt.className||"",we=/\blanguage-mermaid\b/.test(A)||/\blanguage-mmd\b/.test(A),Se=/\blanguage-math\b/.test(A)||/\blanguage-latex\b/.test(A)||/\blanguage-tex\b/.test(A);if(we){if(ke===void 0)try{const G=await import("mermaid");ke=G.default??G,(ge=ke.initialize)==null||ge.call(ke,{startOnLoad:!1,securityLevel:"strict"})}catch{ke=null}if(!ke)continue;try{const G=`filex-md-mermaid-${Math.random().toString(36).slice(2)}`,{svg:se}=await ke.render(G,dt.textContent||""),ve=document.createElement("div");ve.className="fe-preview__md-mermaid",ve.innerHTML=se,(H=dt.parentElement)==null||H.replaceWith(ve)}catch{}}else if(Se){if(re===void 0)try{const G=await Promise.resolve().then(()=>u$);re=G.default??G}catch{re=null}if(!re)continue;try{const G=re.renderToString(dt.textContent||"",{displayMode:!0,throwOnError:!1}),se=document.createElement("div");se.className="fe-preview__md-math",se.innerHTML=G,(Ie=dt.parentElement)==null||Ie.replaceWith(se)}catch{}}}}const te=t.ref("");async function Ne(le,de){try{const ke=await as();if(!ke){te.value="";return}const re=ke.default??ke;if(re.getLanguage(de)){const ge=re.highlight(le,{language:de,ignoreIllegals:!0});te.value=ge.value}else{const ge=re.highlightAuto(le);te.value=ge.value}}catch(ke){te.value="",I.value=ke instanceof Error?ke.message:String(ke)}}const Ae=t.ref(null);let Le=null,nt;const et=t.ref(!1),Ve=t.ref(!1),$e=t.ref(!1),Oe=t.ref(!1),ee=t.ref(null);function ye(){if(Le){try{Le.dispose()}catch{}Le=null}et.value=!1,Oe.value=!1,ee.value=null}function xe(le){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"}[le]??"plaintext"}async function Pe(le,de){var re;const ke=await ns();if(ke||(Ve.value=!0),!ke||!Ae.value)return!1;try{ye();const ge=!!a.saveTextEndpoint&&a.openMode!=="view",H=a.theme==="dark"?!0:a.theme==="light"?!1:(re=window.matchMedia)==null?void 0:re.call(window,"(prefers-color-scheme: dark)").matches;return Le=ke.editor.create(Ae.value,{value:le,language:xe(de),readOnly:!ge,theme:H?"vs-dark":"vs",automaticLayout:!0,minimap:{enabled:!1},fontSize:13}),ge&&(Le.addCommand(ke.KeyMod.CtrlCmd|ke.KeyCode.KeyS,()=>void it()),Le.onDidChangeModelContent(()=>{nt&&clearTimeout(nt),nt=setTimeout(()=>{it()},1500)})),et.value=!0,!0}catch(ge){return I.value=`Monaco mount fail: ${ge.message}`,!1}}async function it(){if(!(!a.saveTextEndpoint||!a.file)&&a.openMode!=="view"&&!$e.value){$e.value=!0,Oe.value=!1,ee.value=null;try{const le=Le?Le.getValue():"",de={"Content-Type":"application/json"};a.authHeaders&&Object.assign(de,await a.authHeaders());const ke=await fetch(a.saveTextEndpoint,{method:"POST",headers:de,credentials:a.authCredentials||"same-origin",body:JSON.stringify({path:M(a.file.path),content:le})});if(!ke.ok){const re=await ke.text().catch(()=>"");throw new Error(`${ke.status} ${ke.statusText}${re?" β€” "+re.slice(0,150):""}`)}Oe.value=!0,setTimeout(()=>{Oe.value=!1},2500)}catch(le){ee.value=le.message}finally{$e.value=!1}}}async function Ce(le,de,ke){if(V.value="",Q.value="",te.value="",I.value=null,ce.value=null,_.value=null,m.value=null,k.value=!1,at(),ye(),!(!le||!de)){if(ke==="viewer"){await g(i(a.file));return}if(ke==="markdown"||ke==="code"||ke==="text"){if(await Y(de),$.value)return;if(ke==="markdown"){await Be(V.value);return}const re=d[i(a.file)]||"";Dd()?(await new Promise(Ie=>setTimeout(Ie,0)),await Pe(V.value,i(a.file))||await Ne(V.value,re)):(ke==="code"&&await Ne(V.value,re),ns().then(async H=>{if(!H){Ve.value=!0;return}a.open&&(await new Promise(Ie=>setTimeout(Ie,0)),await Pe(V.value,i(a.file)))}))}else ke==="office"&&(await new Promise(re=>setTimeout(re,0)),await Ke())}}t.watch(()=>[a.open,w.value,h.value,a.openMode],([le,de,ke])=>{Ce(le,de,ke)}),t.onMounted(()=>{t.nextTick(()=>{a.open&&Ce(a.open,w.value,h.value)})});const me=t.computed(()=>d[i(a.file)]||"plaintext"),Ee=t.ref(null),ce=t.ref(null);let ze=null;async function Ke(){if(ce.value=null,!(!a.file||h.value!=="office")){if(!a.onlyOfficeConfigEndpoint){ce.value=o("viewer.office_unconfigured");return}if(Ee.value)try{const le={"Content-Type":"application/json"};a.authHeaders&&Object.assign(le,await a.authHeaders());const de=await fetch(a.onlyOfficeConfigEndpoint,{method:"POST",headers:le,credentials:a.authCredentials||"same-origin",body:JSON.stringify({path:a.file.path,mode:a.openMode||"edit"})});if(!de.ok)throw new Error(`Config fetch ${de.status}: ${(await de.text()).slice(0,200)}`);const{config:ke,documentServerUrl:re}=await de.json();await W(re),at();const ge="fe-onlyoffice-mount";Ee.value.id=ge,ke.events={onError:Ie=>{ce.value=rt(Ie)}};const H=window;if(!H.DocsAPI||!H.DocsAPI.DocEditor)throw new Error("DocsAPI not available after script load");ze=new H.DocsAPI.DocEditor(ge,ke)}catch(le){ce.value=le instanceof Error?le.message:String(le)}}}function at(){var le;try{(le=ze==null?void 0:ze.destroyEditor)==null||le.call(ze)}catch{}ze=null}t.onBeforeUnmount(()=>{at(),ye()});function rt(le){if(typeof le=="string")return le;const de=le;if(de!=null&&de.data&&typeof de.data=="object"){const ke=de.data;if(typeof ke.errorDescription=="string")return ke.errorDescription;if(typeof ke.message=="string")return ke.message;if(ke.errorCode!==void 0)return`OnlyOffice error ${ke.errorCode}`}if(typeof(de==null?void 0:de.data)=="string")return de.data;if(typeof(de==null?void 0:de.errorDescription)=="string")return de.errorDescription;if(typeof(de==null?void 0:de.message)=="string")return de.message;try{return JSON.stringify(le)}catch{return"OnlyOffice error"}}function W(le){return new Promise((de,ke)=>{var H;if((H=window.DocsAPI)!=null&&H.DocEditor){de();return}const re=document.getElementById(Wm);if(re){re.addEventListener("load",()=>de()),re.addEventListener("error",()=>ke(new Error("OnlyOffice api.js load failed")));return}const ge=document.createElement("script");ge.id=Wm,ge.src=`${le.replace(/\/$/,"")}/web-apps/apps/api/documents/api.js`,ge.async=!0,ge.onload=()=>de(),ge.onerror=()=>ke(new Error("OnlyOffice api.js load failed")),document.head.appendChild(ge)})}return(le,de)=>{var ke;return t.openBlock(),t.createBlock(va,{open:e.open,size:"xl",title:((ke=e.file)==null?void 0:ke.basename)||"",chromeless:e.chromeless,theme:e.theme,onClose:de[2]||(de[2]=re=>r("close"))},{actions:t.withCtx(()=>[e.file&&e.openMode==="view"&&E.value&&e.newTabEnabled!==!1?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:S},"✏ "+t.toDisplayString(t.unref(o)("viewer.edit")),1)):t.createCommentVNode("",!0),e.file&&e.newTabEnabled!==!1?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:"fe-btn",onClick:b},"β†— "+t.toDisplayString(t.unref(o)("viewer.open_in_new_tab")),1)):t.createCommentVNode("",!0),e.file?(t.openBlock(),t.createElementBlock("a",{key:2,href:C.value,class:"fe-btn"},t.toDisplayString(t.unref(o)("viewer.download")),9,BB)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:de[1]||(de[1]=re=>r("close"))},t.toDisplayString(t.unref(o)("viewer.close")),1)]),default:t.withCtx(()=>[e.file?(t.openBlock(),t.createElementBlock("div",LN,[h.value==="image"?(t.openBlock(),t.createElementBlock("img",{key:0,src:w.value,alt:e.file.basename,class:"fe-preview__image"},null,8,FN)):h.value==="video"?(t.openBlock(),t.createElementBlock("video",{key:1,src:w.value,controls:"",preload:"metadata",class:"fe-preview__video"},null,8,$N)):h.value==="audio"?(t.openBlock(),t.createElementBlock("audio",{key:2,src:w.value,controls:"",class:"fe-preview__audio"},null,8,PN)):h.value==="pdf"?(t.openBlock(),t.createElementBlock("object",{key:3,data:w.value,type:"application/pdf",class:"fe-preview__iframe"},[t.createElementVNode("div",UN,[de[3]||(de[3]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"πŸ“•",-1)),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("viewer.pdf_inline_failed")),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary",target:"_blank",rel:"noopener"},t.toDisplayString(t.unref(o)("viewer.open_in_new_tab")),9,HN)])],8,VN)):h.value==="markdown"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:4},[L.value?(t.openBlock(),t.createElementBlock("div",KN,t.toDisplayString(t.unref(o)("viewer.loading")),1)):$.value?(t.openBlock(),t.createElementBlock("div",GN,[t.createTextVNode(t.toDisplayString(t.unref(o)("viewer.too_large"))+" ",1),t.createElementVNode("a",{href:C.value,class:"fe-btn"},t.toDisplayString(t.unref(o)("viewer.download")),9,qN)])):e.openMode==="edit"&&e.saveTextEndpoint?(t.openBlock(),t.createElementBlock("div",WN,[t.createElementVNode("div",jN,[de[4]||(de[4]=t.createElementVNode("span",{class:"fe-preview__md-split-label"},"MARKDOWN",-1)),I.value?(t.openBlock(),t.createElementBlock("span",YN,t.toDisplayString(I.value),1)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",disabled:!R.value||P.value,onClick:z},t.toDisplayString(P.value?t.unref(o)("viewer.saving"):R.value?t.unref(o)("viewer.save"):t.unref(o)("viewer.saved")),9,XN)]),t.createElementVNode("div",ZN,[t.withDirectives(t.createElementVNode("textarea",{class:"fe-preview__md-split-input","onUpdate:modelValue":de[0]||(de[0]=re=>V.value=re),onInput:U,onKeydown:[t.withKeys(t.withModifiers(z,["ctrl","prevent"]),["s"]),t.withKeys(t.withModifiers(z,["meta","prevent"]),["s"])],spellcheck:"false",placeholder:"# Markdown buraya…"},null,40,JN),[[t.vModelText,V.value]]),he.value?(t.openBlock(),t.createElementBlock("div",QN,t.toDisplayString(t.unref(o)("viewer.peer_not_installed")),1)):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"markdownEl",ref:oe,class:"fe-preview__md-split-output fe-preview__md",innerHTML:Q.value},null,8,eB))])])):I.value?(t.openBlock(),t.createElementBlock("div",tB,[t.createElementVNode("p",null,t.toDisplayString(I.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,nB)])):Q.value?(t.openBlock(),t.createElementBlock("div",{key:4,ref_key:"markdownEl",ref:oe,class:"fe-preview__md",innerHTML:Q.value},null,8,aB)):(t.openBlock(),t.createElementBlock("pre",rB,t.toDisplayString(V.value),1))],64)):h.value==="viewer"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:5},[m.value&&!k.value?(t.openBlock(),t.createElementBlock("div",oB,[de[5]||(de[5]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⚠️",-1)),t.createElementVNode("p",null,t.toDisplayString(m.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,iB)])):_.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(_.value),t.mergeProps({key:2},y.value,{class:"fe-preview__viewer",onFallback:v}),null,16)):(t.openBlock(),t.createElementBlock("div",lB,[de[6]||(de[6]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⏳",-1)),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("viewer.loading")),1)]))],64)):h.value==="code"||h.value==="text"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:6},[L.value?(t.openBlock(),t.createElementBlock("div",sB,t.toDisplayString(t.unref(o)("viewer.loading")),1)):$.value?(t.openBlock(),t.createElementBlock("div",cB,[t.createTextVNode(t.toDisplayString(t.unref(o)("viewer.too_large"))+" ",1),t.createElementVNode("a",{href:C.value,class:"fe-btn"},t.toDisplayString(t.unref(o)("viewer.download")),9,dB)])):I.value?(t.openBlock(),t.createElementBlock("div",uB,[t.createElementVNode("p",null,t.toDisplayString(I.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,fB)])):(t.openBlock(),t.createElementBlock("div",pB,[t.createElementVNode("div",hB,[t.createElementVNode("span",mB,t.toDisplayString(me.value),1),!et.value&&te.value?(t.openBlock(),t.createElementBlock("span",gB,t.toDisplayString(e.saveTextEndpoint&&!Ve.value?t.unref(o)("viewer.editor_loading"):t.unref(o)("viewer.read_only")),1)):t.createCommentVNode("",!0),Oe.value?(t.openBlock(),t.createElementBlock("span",yB,"βœ“ "+t.toDisplayString(t.unref(o)("viewer.saved")),1)):t.createCommentVNode("",!0),ee.value?(t.openBlock(),t.createElementBlock("span",{key:2,class:"fe-preview__code-status fe-preview__code-status--err",title:ee.value},"βœ— "+t.toDisplayString(t.unref(o)("viewer.save_error")),9,bB)):t.createCommentVNode("",!0),e.openMode==="view"?(t.openBlock(),t.createElementBlock("span",vB,t.toDisplayString(t.unref(o)("viewer.read_only")),1)):e.saveTextEndpoint&&et.value?(t.openBlock(),t.createElementBlock("button",{key:4,type:"button",class:"fe-btn fe-btn--primary",disabled:$e.value,onClick:it},t.toDisplayString($e.value?t.unref(o)("viewer.saving"):t.unref(o)("viewer.save")),9,kB)):t.createCommentVNode("",!0)]),t.createElementVNode("div",{ref_key:"monacoEl",ref:Ae,class:t.normalizeClass(["fe-preview__code-editor",{"is-hidden":!et.value}])},null,2),!et.value&&te.value?(t.openBlock(),t.createElementBlock("pre",_B,[t.createElementVNode("code",{class:t.normalizeClass(`language-${me.value}`),innerHTML:te.value},null,10,wB)])):!et.value&&!te.value?(t.openBlock(),t.createElementBlock("pre",{key:1,class:"fe-preview__pre","data-lang":me.value},t.toDisplayString(V.value),9,EB)):t.createCommentVNode("",!0)]))],64)):h.value==="office"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:7},[ce.value?(t.openBlock(),t.createElementBlock("div",SB,[de[7]||(de[7]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"πŸ“„",-1)),t.createElementVNode("p",null,t.toDisplayString(ce.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,xB)])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"officeEl",ref:Ee,class:"fe-preview__office"},null,512))],64)):(t.openBlock(),t.createElementBlock("div",CB,[de[8]||(de[8]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"πŸ“Ž",-1)),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("viewer.no_preview")),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,NB)]))])):t.createCommentVNode("",!0)]),_:1},8,["open","title","chromeless","theme"])}}}),jm=t.defineComponent({__name:"QuickLook",props:{open:{type:Boolean},locale:{},file:{},previewUrl:{type:Function},downloadUrl:{type:Function},onlyOfficeBase:{},onlyOfficeConfigEndpoint:{},authHeaders:{type:Function},authCredentials:{},drawioUrl:{},pdfWorkerUrl:{},viewerBaseUrl:{},theme:{}},emits:["close","nav","open-full"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale);function i(l){const c=l;return!!(c&&(c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.tagName==="SELECT"||c.isContentEditable))}function s(l){if(a.open&&!(l.ctrlKey||l.metaKey||l.altKey)&&!i(l.target))switch(l.key){case" ":l.preventDefault(),l.stopPropagation(),r("close");break;case"ArrowRight":case"ArrowDown":l.preventDefault(),l.stopPropagation(),r("nav",1);break;case"ArrowLeft":case"ArrowUp":l.preventDefault(),l.stopPropagation(),r("nav",-1);break;case"Enter":l.preventDefault(),l.stopPropagation(),r("open-full");break}}return t.watch(()=>a.open,l=>{l?window.addEventListener("keydown",s,!0):window.removeEventListener("keydown",s,!0)},{immediate:!0}),t.onBeforeUnmount(()=>window.removeEventListener("keydown",s,!0)),(l,c)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(i0,{class:"fe-quicklook",open:e.open,locale:e.locale,file:e.file,theme:e.theme,"preview-url":e.previewUrl,"download-url":e.downloadUrl,"only-office-base":e.onlyOfficeBase,"only-office-config-endpoint":e.onlyOfficeConfigEndpoint,"open-mode":"view","auth-headers":e.authHeaders,"auth-credentials":e.authCredentials,"drawio-url":e.drawioUrl,"pdf-worker-url":e.pdfWorkerUrl,"viewer-base-url":e.viewerBaseUrl,onClose:c[0]||(c[0]=d=>r("close"))},null,8,["open","locale","file","theme","preview-url","download-url","only-office-base","only-office-config-endpoint","auth-headers","auth-credentials","drawio-url","pdf-worker-url","viewer-base-url"]),t.createVNode(t.Transition,{name:"fe-toast"},{default:t.withCtx(()=>[e.open?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["fe fe-ql-hint",{"fe--theme-light":e.theme==="light","fe--theme-dark":e.theme==="dark"}]),"aria-hidden":"true"},[c[1]||(c[1]=t.createElementVNode("kbd",{class:"fe-kbd"},"Space",-1)),t.createTextVNode(" "+t.toDisplayString(t.unref(o)("quicklook.hint_close"))+" ",1),c[2]||(c[2]=t.createElementVNode("span",{class:"fe-ql-hint__sep"},"Β·",-1)),c[3]||(c[3]=t.createElementVNode("kbd",{class:"fe-kbd"},"↑",-1)),c[4]||(c[4]=t.createElementVNode("kbd",{class:"fe-kbd"},"↓",-1)),t.createTextVNode(" "+t.toDisplayString(t.unref(o)("quicklook.hint_nav"))+" ",1),c[5]||(c[5]=t.createElementVNode("span",{class:"fe-ql-hint__sep"},"Β·",-1)),c[6]||(c[6]=t.createElementVNode("kbd",{class:"fe-kbd"},"Enter",-1)),t.createTextVNode(" "+t.toDisplayString(t.unref(o)("quicklook.hint_open")),1)],2)):t.createCommentVNode("",!0)]),_:1})],64))}}),TB=["aria-label"],DB={class:"fe-opc__head"},AB=["aria-label"],MB={class:"fe-opc__body"},OB={key:0,class:"fe-opc__section","aria-live":"polite"},IB={class:"fe-opc__section-title"},RB={class:"fe-opc__list"},zB={class:"fe-opc__kicon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},LB=["d"],FB={class:"fe-opc__mid"},$B=["title"],PB={class:"fe-opc__sub"},VB={class:"fe-opc__kind"},UB={class:"fe-opc__state"},HB=["aria-valuenow"],KB={key:0,class:"fe-opc__spin","aria-hidden":"true"},GB={class:"fe-opc__acts"},qB=["onClick"],WB=["onClick"],jB=["aria-label","onClick"],YB={key:1,class:"fe-opc__section"},XB={class:"fe-opc__section-title"},ZB={class:"fe-opc__list fe-opc__list--history"},JB={class:"fe-opc__kicon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},QB=["d"],eT={class:"fe-opc__mid"},tT=["title"],nT={key:0,class:"fe-opc__sub fe-opc__sub--err"},aT={key:2,class:"fe-opc__empty"},rT=["aria-expanded","aria-label"],oT=["stroke-dashoffset"],iT={class:"fe-opc__count"},lT={key:0,class:"fe-opc__pct"},l0=8.5,Ym=t.defineComponent({__name:"OperationsCenter",props:{center:{},locale:{},narrow:{type:Boolean}},setup(e){const n=e,{t:a,formatSize:r}=Dt(()=>n.locale),o=t.ref(!1),i=t.ref(null),s=t.computed(()=>n.center.active.value),l=t.computed(()=>n.center.history.value),c=t.computed(()=>n.center.hasError.value),d=t.computed(()=>n.center.overallPercent.value),u=t.computed(()=>n.center.runningCount.value),p=t.computed(()=>s.value.length>0||o.value&&l.value.length>0);t.watch(p,E=>{E||(o.value=!1)});const f=2*Math.PI*l0,h=t.computed(()=>{const E=d.value;return E===null?f*.72:f*(1-Math.min(100,Math.max(0,E))/100)}),_=t.computed(()=>d.value===null&&u.value>0),m=t.computed(()=>u.value===0||d.value===null?"":a("opc.percent",{n:d.value})),k=t.computed(()=>a("opc.aria_badge",{n:s.value.length})),g={upload:"M12 16V5M7 9.5 12 5l5 4.5M5 19h14",copy:"M9 9h11v11H9zM5 15V4h11",move:"M4 12h13M12 6l6 6-6 6",delete:"M5 7h14M9 7V5h6v2M8 7l1 13h6l1-13",convert:"M20 8A8 8 0 0 0 6 6L4 8M4 16a8 8 0 0 0 14 2l2-2M20 3v5h-5M4 21v-5h5",archive:"M4 8V5h16v3zM5 8h14v12H5zM10 12h4"};function v(E){return a(`opc.kind.${E.kind}`)}function y(E){return E.name||v(E)}function b(E){return E.status==="running"?E.queued?a("opc.queued"):E.totalBytes&&E.totalBytes>0?`${r(E.uploadedBytes??0)} / ${r(E.totalBytes)}`:E.totalCount&&E.totalCount>0?`${E.doneCount??0}/${E.totalCount}`:a("opc.status.running"):E.status==="done"?a("opc.status.done"):E.status==="aborted"?a("opc.status.aborted"):E.error||a("opc.status.error")}function S(E){return a(`opc.status.${E.status==="running"?"running":E.status}`)}function N(E){if(!o.value)return;const w=i.value;w&&E.target instanceof Node&&!w.contains(E.target)&&(o.value=!1)}function T(E){o.value&&E.key==="Escape"&&(o.value=!1)}return t.onMounted(()=>{document.addEventListener("mousedown",N),document.addEventListener("keydown",T)}),t.onBeforeUnmount(()=>{document.removeEventListener("mousedown",N),document.removeEventListener("keydown",T)}),(E,w)=>p.value?(t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"rootEl",ref:i,class:t.normalizeClass(["fe-opc",{"fe-opc--narrow":e.narrow,"fe-opc--open":o.value}])},[t.createVNode(t.Transition,{name:"fe-opc-pop"},{default:t.withCtx(()=>[o.value?(t.openBlock(),t.createElementBlock("section",{key:0,class:"fe-opc__panel",role:"dialog","aria-label":t.unref(a)("opc.title")},[t.createElementVNode("header",DB,[t.createElementVNode("strong",null,t.toDisplayString(t.unref(a)("opc.title")),1),t.createElementVNode("button",{type:"button",class:"fe-opc__x","aria-label":t.unref(a)("opc.close"),onClick:w[0]||(w[0]=C=>o.value=!1)},"Γ—",8,AB)]),t.createElementVNode("div",MB,[s.value.length>0?(t.openBlock(),t.createElementBlock("div",OB,[t.createElementVNode("h3",IB,t.toDisplayString(t.unref(a)("opc.active")),1),t.createElementVNode("ul",RB,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,C=>(t.openBlock(),t.createElementBlock("li",{key:C.key,class:t.normalizeClass(["fe-opc__item",`is-${C.status}`])},[(t.openBlock(),t.createElementBlock("svg",zB,[t.createElementVNode("path",{d:g[C.kind]},null,8,LB)])),t.createElementVNode("div",FB,[t.createElementVNode("div",{class:"fe-opc__name",title:y(C)},t.toDisplayString(y(C)),9,$B),t.createElementVNode("div",PB,[t.createElementVNode("span",VB,t.toDisplayString(v(C)),1),w[3]||(w[3]=t.createElementVNode("span",{class:"fe-opc__dot","aria-hidden":"true"},"Β·",-1)),t.createElementVNode("span",UB,t.toDisplayString(b(C)),1)]),C.status==="running"&&C.percent!==null?(t.openBlock(),t.createElementBlock("div",{key:0,class:"fe-opc__bar",role:"progressbar","aria-valuenow":C.percent,"aria-valuemin":"0","aria-valuemax":"100"},[t.createElementVNode("div",{class:"fe-opc__bar-fill",style:t.normalizeStyle({width:C.percent+"%"})},null,4)],8,HB)):t.createCommentVNode("",!0)]),C.status==="running"&&C.percent===null&&!C.queued?(t.openBlock(),t.createElementBlock("span",KB)):t.createCommentVNode("",!0),t.createElementVNode("div",GB,[C.status==="running"&&C.cancellable?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-opc__act",onClick:M=>e.center.cancel(C.key)},t.toDisplayString(t.unref(a)("opc.cancel")),9,qB)):t.createCommentVNode("",!0),C.status==="error"&&C.retryable?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:"fe-opc__act fe-opc__act--retry",onClick:M=>e.center.retry(C.key)},t.toDisplayString(t.unref(a)("opc.retry")),9,WB)):t.createCommentVNode("",!0),C.status!=="running"?(t.openBlock(),t.createElementBlock("button",{key:2,type:"button",class:"fe-opc__x","aria-label":t.unref(a)("opc.dismiss"),onClick:M=>e.center.dismiss(C.key)},"Γ—",8,jB)):t.createCommentVNode("",!0)])],2))),128))])])):t.createCommentVNode("",!0),l.value.length>0?(t.openBlock(),t.createElementBlock("div",YB,[t.createElementVNode("h3",XB,[t.createTextVNode(t.toDisplayString(t.unref(a)("opc.history"))+" ",1),t.createElementVNode("button",{type:"button",class:"fe-opc__act",onClick:w[1]||(w[1]=C=>e.center.clearHistory())},t.toDisplayString(t.unref(a)("opc.clear")),1)]),t.createElementVNode("ul",ZB,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,C=>(t.openBlock(),t.createElementBlock("li",{key:"h-"+C.key,class:t.normalizeClass(["fe-opc__item fe-opc__item--history",`is-${C.status}`])},[(t.openBlock(),t.createElementBlock("svg",JB,[t.createElementVNode("path",{d:g[C.kind]},null,8,QB)])),t.createElementVNode("div",eT,[t.createElementVNode("div",{class:"fe-opc__name",title:y(C)},t.toDisplayString(y(C)),9,tT),C.status==="error"&&C.error?(t.openBlock(),t.createElementBlock("div",nT,t.toDisplayString(C.error),1)):t.createCommentVNode("",!0)]),t.createElementVNode("span",{class:t.normalizeClass(["fe-opc__chip",`is-${C.status}`])},t.toDisplayString(S(C)),3)],2))),128))])])):t.createCommentVNode("",!0),s.value.length===0&&l.value.length===0?(t.openBlock(),t.createElementBlock("p",aT,t.toDisplayString(t.unref(a)("opc.empty")),1)):t.createCommentVNode("",!0)])],8,TB)):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["fe-opc__badge",{"is-error":c.value}]),"aria-expanded":o.value,"aria-label":k.value,onClick:w[2]||(w[2]=C=>o.value=!o.value)},[(t.openBlock(),t.createElementBlock("svg",{class:t.normalizeClass(["fe-opc__ring",{"fe-opc__ring--spin":_.value}]),viewBox:"0 0 22 22","aria-hidden":"true",focusable:"false"},[t.createElementVNode("circle",{class:"fe-opc__ring-track",cx:"11",cy:"11",r:l0,fill:"none","stroke-width":"2.5"}),t.createElementVNode("circle",{class:"fe-opc__ring-fill",cx:"11",cy:"11",r:l0,fill:"none","stroke-width":"2.5","stroke-linecap":"round","stroke-dasharray":f,"stroke-dashoffset":h.value,transform:"rotate(-90 11 11)"},null,8,oT)],2)),t.createElementVNode("span",iT,t.toDisplayString(s.value.length),1),m.value?(t.openBlock(),t.createElementBlock("span",lT,t.toDisplayString(m.value),1)):t.createCommentVNode("",!0)],10,rT)],2)):t.createCommentVNode("",!0)}}),sT=4e3,Xm=50;function cT(e,n,a){const r=n.status!=="running";return{key:e,kind:n.kind,name:n.name,percent:n.percent,status:n.status,error:n.error??null,queued:n.queued??!1,doneCount:n.doneCount??null,totalCount:n.totalCount??null,uploadedBytes:n.uploadedBytes??null,totalBytes:n.totalBytes??null,cancellable:n.cancellable??!1,retryable:n.retryable??!1,startedAt:(a==null?void 0:a.startedAt)??Date.now(),settledAt:(a==null?void 0:a.settledAt)??(r?Date.now():null)}}function Zm(){const e=t.ref([]),n=t.ref([]),a=new Map,r=new Set,o=new Map;function i(g){const v=o.get(g);v!==void 0&&(clearTimeout(v),o.delete(g))}function s(g,v={}){i(g);const y=e.value.findIndex(S=>S.key===g);if(y===-1)return;const[b]=e.value.splice(y,1);e.value=[...e.value],r.add(g),v.toHistory!==!1&&(n.value=[{...b,settledAt:b.settledAt??Date.now()},...n.value].slice(0,Xm))}function l(g){o.has(g)||o.set(g,setTimeout(()=>{var y;o.delete(g);const v=a.get(g);s(g),(y=v==null?void 0:v.dismiss)==null||y.call(v)},sT))}function c(g,v){const y=`${g}:`,b=new Set;let S=[...e.value],N=!1;for(const T of v){const E=`${g}:${T.input.id}`;if(b.add(E),T.actions&&a.set(E,T.actions),r.has(E))continue;const w=S.findIndex(M=>M.key===E),C=cT(E,T.input,w===-1?void 0:S[w]);w===-1?(S=[C,...S],N=!0):JSON.stringify(S[w])!==JSON.stringify(C)&&(S[w]=C,N=!0),(C.status==="done"||C.status==="aborted")&&l(E)}for(const T of[...S])!T.key.startsWith(y)||b.has(T.key)||T.status!=="error"&&(i(T.key),S=S.filter(E=>E.key!==T.key),N=!0,T.status!=="running"&&(r.add(T.key),n.value=[{...T,settledAt:T.settledAt??Date.now()},...n.value].slice(0,Xm)));for(const T of[...r])T.startsWith(y)&&!b.has(T)&&r.delete(T);for(const T of[...a.keys()])T.startsWith(y)&&!b.has(T)&&!e.value.some(E=>E.key===T)&&(S.some(E=>E.key===T)||a.delete(T));N&&(e.value=S)}function d(g){var v,y;(y=(v=a.get(g))==null?void 0:v.cancel)==null||y.call(v)}function u(g){var y,b;const v=a.get(g);s(g),(y=v==null?void 0:v.dismiss)==null||y.call(v),(b=v==null?void 0:v.retry)==null||b.call(v)}function p(g){var y;const v=a.get(g);s(g),(y=v==null?void 0:v.dismiss)==null||y.call(v)}function f(){n.value=[]}const h=t.computed(()=>e.value.filter(g=>g.status==="running").length),_=t.computed(()=>e.value.filter(g=>g.status==="error").length),m=t.computed(()=>_.value>0),k=t.computed(()=>{const g=e.value.filter(b=>b.status==="running");let v=0,y=0;for(const b of g){let S=null;b.totalBytes&&b.totalBytes>0?S=Math.min(1,(b.uploadedBytes??0)/b.totalBytes):b.totalCount&&b.totalCount>0?S=Math.min(1,(b.doneCount??0)/b.totalCount):b.percent!==null&&(S=Math.min(1,b.percent/100)),S!==null&&(v+=S,y+=1)}return y===0?null:Math.round(v/y*100)});return t.getCurrentScope()&&t.onScopeDispose(()=>{for(const g of o.values())clearTimeout(g);o.clear()}),{active:e,history:n,runningCount:h,errorCount:_,hasError:m,overallPercent:k,sync:c,cancel:d,retry:u,dismiss:p,clearHistory:f}}const dT=["data-prefers-dark","aria-label"],uT={key:1,class:"fe-tour__dim","aria-hidden":"true"},fT={class:"fe-tour__progress","aria-hidden":"true"},pT={class:"fe-tour__title"},hT={class:"fe-tour__desc"},mT={class:"fe-tour__dots","aria-hidden":"true"},gT={class:"fe-tour__actions"},Po=6,Jm=12,yT=t.defineComponent({__name:"OnboardingTour",props:{open:{type:Boolean},locale:{},root:{},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale);function i(w,C){const M=w.querySelectorAll("button[title]");for(const L of Array.from(M))if(L.getAttribute("title")===C)return L;return null}const s=[{id:"nav",titleKey:"tour.step.nav.title",descKey:"tour.step.nav.desc",target:w=>w.querySelector(".fe-breadcrumb")},{id:"upload",titleKey:"tour.step.upload.title",descKey:"tour.step.upload.desc",target:w=>i(w,o("toolbar.upload"))||w.querySelector(".fe-fab")},{id:"search",titleKey:"tour.step.search.title",descKey:"tour.step.search.desc",target:w=>w.querySelector(".fe-search__input")||w.querySelector(".fe-toolbar__search-toggle")},{id:"view",titleKey:"tour.step.view.title",descKey:"tour.step.view.desc",target:w=>w.querySelector(".fe-toolbar__view")},{id:"share",titleKey:"tour.step.share.title",descKey:"tour.step.share.desc",target:w=>w.querySelector(".fe__body")},{id:"help",titleKey:"tour.step.help.title",descKey:"tour.step.help.desc",target:()=>null}],l=t.ref([]),c=t.ref(0),d=t.computed(()=>l.value[c.value]??null),u=t.computed(()=>l.value.length);function p(){const w=a.root;l.value=s.filter(C=>{if(C.id==="help")return!0;if(!w)return!1;const M=C.target(w);if(!M)return!1;const L=M.getBoundingClientRect();return L.width>0&&L.height>0})}const f=t.ref(null),h=t.ref({}),_=t.ref(null);async function m(){var F;const w=d.value,C=a.root;if(!w)return;const M=C?w.target(C):null;if(!M){f.value=null,h.value={};return}const L=M.getBoundingClientRect();if(L.width<=0&&L.height<=0){f.value=null,h.value={};return}f.value={top:L.top-Po,left:L.left-Po,width:L.width+Po*2,height:L.height+Po*2},await t.nextTick();const I=window.innerWidth,V=window.innerHeight,$=Math.min(340,I-24),R=((F=_.value)==null?void 0:F.offsetHeight)??160;let P=L.bottom+Po+Jm;P+R>V-12&&(P=Math.max(12,L.top-Po-Jm-R));let q=L.left+L.width/2-$/2;q=Math.min(Math.max(12,q),I-$-12),h.value={top:`${Math.round(P)}px`,left:`${Math.round(q)}px`,width:`${$}px`}}function k(){a.open&&m()}function g(){if(c.value>=u.value-1){r("close");return}c.value+=1}function v(){c.value>0&&(c.value-=1)}function y(){r("close")}function b(w){a.open&&(w.key==="Escape"?(w.stopPropagation(),y()):w.key==="ArrowRight"||w.key==="Enter"?(w.preventDefault(),g()):w.key==="ArrowLeft"&&(w.preventDefault(),v()))}t.watch(()=>a.open,async w=>{var C;w&&(c.value=0,p(),await t.nextTick(),await m(),(C=_.value)==null||C.focus())}),t.watch(c,async()=>{var w;await m(),(w=_.value)==null||w.focus()}),t.onMounted(()=>{window.addEventListener("resize",k),window.addEventListener("scroll",k,!0)}),t.onBeforeUnmount(()=>{window.removeEventListener("resize",k),window.removeEventListener("scroll",k,!0)});const S=t.ref(!1);let N;function T(w){S.value=!!(w&&"matches"in w&&w.matches)}t.onMounted(()=>{var w;typeof window>"u"||(N=window.matchMedia("(prefers-color-scheme: dark)"),T(N),(w=N.addEventListener)==null||w.call(N,"change",T))}),t.onBeforeUnmount(()=>{var w;(w=N==null?void 0:N.removeEventListener)==null||w.call(N,"change",T)});const E=t.computed(()=>`fe-ctx-backdrop--theme-${a.theme||"auto"}`);return(w,C)=>(t.openBlock(),t.createBlock(t.Teleport,{to:"body"},[t.createVNode(t.Transition,{name:"fe-tour"},{default:t.withCtx(()=>[e.open&&d.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["fe-tour",E.value]),"data-prefers-dark":S.value?"1":"0",role:"dialog","aria-modal":"true","aria-label":t.unref(o)("tour.aria"),onKeydown:b},[f.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"fe-tour__spot",style:t.normalizeStyle({top:f.value.top+"px",left:f.value.left+"px",width:f.value.width+"px",height:f.value.height+"px"}),"aria-hidden":"true"},null,4)):(t.openBlock(),t.createElementBlock("div",uT)),t.createElementVNode("div",{ref_key:"cardEl",ref:_,class:t.normalizeClass(["fe-tour__card",{"fe-tour__card--center":!f.value}]),style:t.normalizeStyle(f.value?h.value:{}),tabindex:"-1"},[t.createElementVNode("p",fT,t.toDisplayString(t.unref(o)("tour.progress",{n:c.value+1,m:u.value})),1),t.createElementVNode("h3",pT,t.toDisplayString(t.unref(o)(d.value.titleKey)),1),t.createElementVNode("p",hT,t.toDisplayString(t.unref(o)(d.value.descKey)),1),t.createElementVNode("div",mT,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,(M,L)=>(t.openBlock(),t.createElementBlock("span",{key:M.id,class:t.normalizeClass(["fe-tour__dot",{"is-active":L===c.value}])},null,2))),128))]),t.createElementVNode("div",gT,[t.createElementVNode("button",{type:"button",class:"fe-btn fe-tour__skip",onClick:y},t.toDisplayString(t.unref(o)("tour.skip")),1),C[0]||(C[0]=t.createElementVNode("span",{class:"fe-tour__actions-spacer"},null,-1)),c.value>0?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn",onClick:v},t.toDisplayString(t.unref(o)("tour.back")),1)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:g},t.toDisplayString(c.value>=u.value-1?t.unref(o)("tour.done"):t.unref(o)("tour.next")),1)])],6)],42,dT)):t.createCommentVNode("",!0)]),_:1})]))}}),bT=["aria-label"],vT={class:"fe-tabs__scroll"},kT=["aria-selected","title","onClick","onKeydown","onAuxclick","onDragstart","onDragover","onDragleave","onDrop"],_T={key:0,class:"fe-tabs__splitdot","aria-hidden":"true"},wT={class:"fe-tabs__label"},ET=["aria-label","title","onClick"],ST=["aria-label","title"],xT=["aria-label","title","aria-pressed"],Qm=t.defineComponent({__name:"TabBar",props:{tabs:{},activeId:{},locale:{},splitEnabled:{type:Boolean},splitActive:{type:Boolean}},emits:["select","close","new","reorder","toggle-split"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=t.ref(null),s=t.ref(null);function l(_,m){var k;i.value=_,m.dataTransfer&&(m.dataTransfer.effectAllowed="move",m.dataTransfer.setData("text/plain",((k=a.tabs[_])==null?void 0:k.id)??""))}function c(_,m){i.value!==null&&(m.preventDefault(),m.stopPropagation(),m.dataTransfer&&(m.dataTransfer.dropEffect="move"),s.value=_)}function d(_){s.value===_&&(s.value=null)}function u(_,m){i.value!==null&&(m.preventDefault(),m.stopPropagation(),i.value!==_&&r("reorder",i.value,_),i.value=null,s.value=null)}function p(){i.value=null,s.value=null}function f(_){_.button===1&&_.preventDefault()}function h(_,m){m.button===1&&(m.preventDefault(),m.stopPropagation(),r("close",_))}return(_,m)=>(t.openBlock(),t.createElementBlock("div",{class:"fe-tabs",role:"tablist","aria-label":t.unref(o)("tabs.strip")},[t.createElementVNode("div",vT,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.tabs,(k,g)=>(t.openBlock(),t.createElementBlock("div",{key:k.id,class:t.normalizeClass(["fe-tabs__tab",{"is-active":k.id===e.activeId,"is-dragover":s.value===g&&i.value!==null&&i.value!==g}]),role:"tab","aria-selected":k.id===e.activeId?"true":"false",tabindex:"0",draggable:"true",title:k.label,onClick:v=>r("select",k.id),onKeydown:t.withKeys(t.withModifiers(v=>r("select",k.id),["prevent"]),["enter"]),onMousedown:m[0]||(m[0]=v=>f(v)),onAuxclick:v=>h(k.id,v),onDragstart:v=>l(g,v),onDragover:v=>c(g,v),onDragleave:v=>d(g),onDrop:v=>u(g,v),onDragend:p},[k.split?(t.openBlock(),t.createElementBlock("span",_T)):t.createCommentVNode("",!0),t.createElementVNode("span",wT,t.toDisplayString(k.label),1),t.createElementVNode("button",{type:"button",class:"fe-tabs__close","aria-label":t.unref(o)("tabs.close"),title:t.unref(o)("tabs.close"),onClick:t.withModifiers(v=>r("close",k.id),["stop"])},"Γ—",8,ET)],42,kT))),128))]),t.createElementVNode("button",{type:"button",class:"fe-tabs__new","aria-label":t.unref(o)("tabs.new"),title:t.unref(o)("tabs.new"),onClick:m[1]||(m[1]=k=>r("new"))},"+",8,ST),e.splitEnabled!==!1?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["fe-tabs__split",{"is-active":e.splitActive}]),"aria-label":e.splitActive?t.unref(o)("tabs.split_off"):t.unref(o)("tabs.split"),title:e.splitActive?t.unref(o)("tabs.split_off"):t.unref(o)("tabs.split"),"aria-pressed":e.splitActive?"true":"false",onClick:m[2]||(m[2]=k=>r("toggle-split"))},[...m[3]||(m[3]=[t.createElementVNode("svg",{class:"fe-ficon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},[t.createElementVNode("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),t.createElementVNode("path",{d:"M12 4v16"})],-1)])],10,xT)):t.createCommentVNode("",!0)],8,bT))}}),CT=["aria-label"],NT={class:"fe-split__crumbs"},BT=["title"],TT=["title","onClick"],DT=["aria-label","title"],AT={key:0,class:"fe-split__state",role:"status"},MT={key:1,class:"fe-split__state"},OT={key:2,class:"fe-split__state"},IT="application/x-brf-files",RT="application/x-brf-files-src",e1=t.defineComponent({__name:"SecondaryPane",props:{api:{},initialPath:{},locale:{},qualify:{type:Function},toUser:{type:Function},clamp:{type:Function},rootLabel:{},floor:{},multiRoot:{type:Boolean},virtualRows:{type:Function},active:{type:Boolean},viewMode:{},thumbSrc:{type:Function},keepBadgeFor:{type:Function},trashVisible:{type:Boolean},navOffersTrash:{type:Boolean}},emits:["navigate","activate","close","open-tab","transfer","context","open-trash"],setup(e,{expose:n,emit:a}){const r=e,o=a,{t:i}=Dt(()=>r.locale),s=t.ref(""),l=t.ref([]),c=t.ref(!1),d=t.ref(""),u=t.ref(new Set);function p(U){return U.mime_type==="inode/storage"}const f=t.computed(()=>!!r.multiRoot&&!(s.value??"").replace(/^\/+|\/+$/g,""));async function h(U){const z=r.clamp(U??s.value??"");c.value=!0,d.value="";try{if(r.multiRoot&&!z){l.value=r.virtualRows?r.virtualRows():[],s.value="",u.value=new Set,o("navigate","");return}const Y=await r.api.index(r.qualify(z));l.value=am(Y.files),rm(l.value,Y.adapter,Y.dirname,r.trashVisible!==!1,{navOffersTrash:r.navOffersTrash})&&om(l.value,Y.adapter,r.api),s.value=r.toUser(Y.dirname),u.value=new Set,o("navigate",s.value)}catch(Y){d.value=Y instanceof Error?Y.message:String(Y)}finally{c.value=!1}}h(r.initialPath??"");const _=t.computed(()=>{const U=(s.value||"").replace(/^\/+|\/+$/g,""),z=U?U.split("/"):[],Y=(r.floor||"").replace(/^\/+|\/+$/g,""),Q=[];let oe="";for(const he of z)oe=oe?`${oe}/${he}`:he,!(Y&&!(oe===Y||oe.startsWith(Y+"/")))&&Q.push({label:he,target:oe,last:!1});return Q.length>0&&(Q[Q.length-1].last=!0),Q}),m=t.computed(()=>!r.floor);function k(U){o("activate"),h(U)}function g(U,z){o("activate");const Y=z.ctrl||z.shift,Q=new Set(Y?u.value:[]);Y&&Q.has(U.path)?Q.delete(U.path):Q.add(U.path),u.value=Q}function v(U,z){z.preventDefault(),z.stopPropagation(),o("activate"),u.value.has(U.path)||(u.value=new Set([U.path])),o("context",U,z)}function y(U){U.preventDefault(),U.stopPropagation(),o("activate"),u.value=new Set,o("context",null,U)}function b(U,z){E.value=!1,!(U.type!=="dir"||p(U))&&w(z)&&C(z,U.path)}function S(U){if(U.type==="dir"){if(U.basename===".trash"){o("activate"),o("open-trash");return}h(p(U)?U.path:r.toUser(U.path))}}function N(){u.value=new Set}function T(U,z){if(!z.dataTransfer)return;if(p(U)||f.value||U.basename===".trash"){z.preventDefault();return}u.value.has(U.path)||(u.value=new Set([U.path]));const Y=l.value.filter(Q=>u.value.has(Q.path)&&!p(Q)).map(Q=>({path:Q.path,basename:Q.basename,type:Q.type}));if(Y.length===0){z.preventDefault();return}z.dataTransfer.setData(IT,JSON.stringify(Y)),z.dataTransfer.setData(RT,r.qualify(s.value)),z.dataTransfer.setData("text/plain",Y.map(Q=>Q.path).join(`
32
+ `)},{kind:"warn",text:n("conn.guide.mount.win.freeLetter")},{kind:"note",text:n("conn.guide.mount.win.stop")}]},{id:"macos",name:"macOS",platform:"macos",blocks:[{kind:"warn",text:n("conn.guide.mount.mac.unsupported")},{kind:"note",text:n("conn.guide.mount.mac.alternatives")}]}],s=[{kind:"note",text:n("conn.guide.mount.note.notASync")},{kind:"note",text:n("conn.guide.mount.note.reachable")},{kind:"note",text:n("conn.guide.mount.note.wholeFileWrites")},{kind:"note",text:n("conn.guide.mount.note.trash")},{kind:"note",text:n("conn.guide.mount.note.revoke")}];return{id:"mount",name:"filex mount",summary:n("conn.guide.mount.summary"),facts:o,clients:i,notes:s}}},p7={webdav:"WebDAV",s3:"S3",sftp:"SFTP",ftps:"FTPS",nfs:"NFS",mount:"filex mount"};function h7(e){return p7[e]||e.toUpperCase()}function Em(){return Object.keys(e0)}function Sm(e,n,a){const r=e0[e];return r?r(n,a):null}const m7={class:"fe-cfield"},g7={key:0,class:"fe-cfield__empty"},y7={key:0,class:"fe-cfield__check"},b7=["checked","disabled","onChange"],v7=["for"],k7={key:0,class:"fe-cfield__req","aria-hidden":"true"},_7=["id","value","disabled","onChange"],w7=["value"],E7=["id","value","placeholder","disabled","onInput"],S7={key:4,class:"fe-cfield__secret"},x7=["id","type","value","placeholder","disabled","onInput"],C7=["title","aria-label","onClick"],N7=["id","type","value","placeholder","min","max","disabled","onInput"],B7={key:6,class:"fe-cfield__help"},T7={key:7,class:"fe-cfield__error"},D7={key:1,class:"fe-cfield__adv"},A7={key:0,class:"fe-cfield__advbody"},M7={key:0,class:"fe-cfield__check"},O7=["checked","disabled","onChange"],I7=["for"],R7=["id","type","value","placeholder","disabled","onInput"],z7={key:2,class:"fe-cfield__help"},xm=t.defineComponent({__name:"StorageFields",props:{fields:{},modelValue:{},locale:{},invalid:{},disabled:{type:Boolean}},emits:["update:modelValue"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=t.ref(!1),s=t.ref({}),l=t.computed(()=>a.fields.filter(b=>!b.advanced)),c=t.computed(()=>a.fields.filter(b=>b.advanced));function d(b){const S=o(b.i18n_key);return S===b.i18n_key?b.label:S}function u(b){if(!b.help_i18n_key)return b.help??"";const S=o(b.help_i18n_key);return S===b.help_i18n_key?b.help??"":S}function p(b){if(!b.i18n_key)return b.label;const S=o(b.i18n_key);return S===b.i18n_key?b.label:S}function f(b,S){r("update:modelValue",{...a.modelValue,[b]:S})}function h(b){var N,T;const S=(N=a.modelValue)==null?void 0:N[b.key];if(S!=null)return S;for(const E of b.aliases??[]){const w=(T=a.modelValue)==null?void 0:T[E];if(w!=null)return w}return b.default??void 0}function _(b){const S=h(b);return S==null?"":String(S)}function m(b){const S=h(b);return S===""||S===void 0||S===null?"":String(S)}function k(b){return h(b)===!0}function g(b){return(a.invalid??[]).includes(b.key)}function v(b){return b.type==="int"?"number":b.type==="password"&&!s.value[b.key]?"password":"text"}function y(b){s.value={...s.value,[b]:!s.value[b]}}return(b,S)=>(t.openBlock(),t.createElementBlock("div",m7,[e.fields.length?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("p",g7,t.toDisplayString(t.unref(o)("conn.form.noFields")),1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,N=>(t.openBlock(),t.createElementBlock("div",{key:N.key,class:t.normalizeClass(["fe-cfield__row",{"is-invalid":g(N)}])},[N.type==="bool"?(t.openBlock(),t.createElementBlock("label",y7,[t.createElementVNode("input",{type:"checkbox",checked:k(N),disabled:e.disabled,onChange:T=>f(N.key,T.target.checked)},null,40,b7),t.createElementVNode("span",null,t.toDisplayString(d(N)),1)])):(t.openBlock(),t.createElementBlock("label",{key:1,class:"fe-cfield__label",for:`fe-cf-${N.key}`},[t.createTextVNode(t.toDisplayString(d(N)),1),N.required?(t.openBlock(),t.createElementBlock("span",k7,"*")):t.createCommentVNode("",!0)],8,v7)),N.type==="select"?(t.openBlock(),t.createElementBlock("select",{key:2,id:`fe-cf-${N.key}`,class:"fe-cfield__input",value:_(N),disabled:e.disabled,onChange:T=>f(N.key,T.target.value)},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(N.options??[],T=>(t.openBlock(),t.createElementBlock("option",{key:T.value,value:T.value},t.toDisplayString(p(T)),9,w7))),128))],40,_7)):N.multiline?(t.openBlock(),t.createElementBlock("textarea",{key:3,id:`fe-cf-${N.key}`,class:t.normalizeClass(["fe-cfield__input fe-cfield__input--area",{"fe-cfield__input--mono":N.monospace}]),rows:"4",value:_(N),placeholder:N.placeholder,disabled:e.disabled,onInput:T=>f(N.key,T.target.value)},null,42,E7)):N.type==="password"?(t.openBlock(),t.createElementBlock("div",S7,[t.createElementVNode("input",{id:`fe-cf-${N.key}`,class:"fe-cfield__input fe-cfield__input--mono",type:v(N),autocomplete:"new-password",spellcheck:"false",value:_(N),placeholder:N.placeholder,disabled:e.disabled,onInput:T=>f(N.key,T.target.value)},null,40,x7),t.createElementVNode("button",{type:"button",class:"fe-cfield__eye",title:s.value[N.key]?t.unref(o)("conn.form.hide"):t.unref(o)("conn.form.reveal"),"aria-label":s.value[N.key]?t.unref(o)("conn.form.hide"):t.unref(o)("conn.form.reveal"),onClick:T=>y(N.key)},t.toDisplayString(s.value[N.key]?"πŸ™ˆ":"πŸ‘"),9,C7)])):N.type!=="bool"?(t.openBlock(),t.createElementBlock("input",{key:5,id:`fe-cf-${N.key}`,class:t.normalizeClass(["fe-cfield__input",{"fe-cfield__input--mono":N.monospace}]),type:v(N),value:N.type==="int"?m(N):_(N),placeholder:N.placeholder,min:N.min,max:N.max,disabled:e.disabled,onInput:T=>f(N.key,N.type==="int"?T.target.value===""?null:Number(T.target.value):T.target.value)},null,42,N7)):t.createCommentVNode("",!0),u(N)?(t.openBlock(),t.createElementBlock("p",B7,t.toDisplayString(u(N)),1)):t.createCommentVNode("",!0),g(N)?(t.openBlock(),t.createElementBlock("p",T7,t.toDisplayString(t.unref(o)("conn.form.required")),1)):t.createCommentVNode("",!0)],2))),128)),c.value.length?(t.openBlock(),t.createElementBlock("div",D7,[t.createElementVNode("button",{type:"button",class:"fe-cfield__advtoggle",onClick:S[0]||(S[0]=N=>i.value=!i.value)},t.toDisplayString(i.value?"β–Ύ":"β–Έ")+" "+t.toDisplayString(t.unref(o)("conn.form.advanced")),1),i.value?(t.openBlock(),t.createElementBlock("div",A7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(c.value,N=>(t.openBlock(),t.createElementBlock("div",{key:N.key,class:"fe-cfield__row"},[N.type==="bool"?(t.openBlock(),t.createElementBlock("label",M7,[t.createElementVNode("input",{type:"checkbox",checked:k(N),disabled:e.disabled,onChange:T=>f(N.key,T.target.checked)},null,40,O7),t.createElementVNode("span",null,t.toDisplayString(d(N)),1)])):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("label",{class:"fe-cfield__label",for:`fe-cfa-${N.key}`},t.toDisplayString(d(N)),9,I7),t.createElementVNode("input",{id:`fe-cfa-${N.key}`,class:t.normalizeClass(["fe-cfield__input",{"fe-cfield__input--mono":N.monospace}]),type:v(N),value:N.type==="int"?m(N):_(N),placeholder:N.placeholder,disabled:e.disabled,onInput:T=>f(N.key,N.type==="int"?T.target.value===""?null:Number(T.target.value):T.target.value)},null,42,R7)],64)),u(N)?(t.openBlock(),t.createElementBlock("p",z7,t.toDisplayString(u(N)),1)):t.createCommentVNode("",!0)]))),128))])):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)]))}}),L7={class:"fe-guide"},F7={class:"fe-guide__summary"},$7={class:"fe-guide__facts","data-testid":"guide-facts"},P7={class:"fe-guide__factlabel"},V7={class:"fe-guide__factvalue"},U7=["data-testid","onClick"],H7={key:0,class:"fe-guide__facthint"},K7={class:"fe-guide__tabs",role:"tablist"},G7=["aria-selected","data-testid","onClick"],q7={key:0,class:"fe-guide__body",role:"tabpanel"},W7={key:0,class:"fe-guide__steps"},j7={key:1,class:"fe-guide__codewrap"},Y7={class:"fe-guide__codehead"},X7={class:"fe-guide__caption"},Z7=["data-testid","onClick"],J7={class:"fe-guide__code"},Q7={key:2,class:"fe-guide__warn"},eS={key:3,class:"fe-guide__note"},tS={key:4,class:"fe-guide__text"},nS={key:1,class:"fe-guide__notes"},aS={class:"fe-guide__notestitle"},Cm=t.defineComponent({__name:"ConnectionGuideView",props:{guide:{},locale:{}},setup(e){var u;const n=e,{t:a}=Dt(()=>n.locale),r=t.ref(((u=n.guide.clients[0])==null?void 0:u.id)??""),o=t.ref(null);let i=null;const s=t.computed(()=>n.guide.clients.find(p=>p.id===r.value)??n.guide.clients[0]);async function l(p,f){let h=!1;try{await navigator.clipboard.writeText(p),h=!0}catch{try{const _=document.createElement("textarea");_.value=p,_.setAttribute("readonly",""),_.style.position="fixed",_.style.opacity="0",document.body.appendChild(_),_.select(),h=document.execCommand("copy"),document.body.removeChild(_)}catch{h=!1}}o.value=h?f:null,i&&clearTimeout(i),i=setTimeout(()=>{o.value=null},1600)}function c(p,f){return`${p}-${f}`}function d(p){return p.kind==="code"}return(p,f)=>(t.openBlock(),t.createElementBlock("div",L7,[t.createElementVNode("p",F7,t.toDisplayString(e.guide.summary),1),t.createElementVNode("section",$7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.guide.facts,(h,_)=>(t.openBlock(),t.createElementBlock("div",{key:h.label,class:"fe-guide__fact"},[t.createElementVNode("span",P7,t.toDisplayString(h.label),1),t.createElementVNode("span",V7,[t.createElementVNode("code",{class:t.normalizeClass({"fe-guide__ph":h.placeholderOnly})},t.toDisplayString(h.value),3),h.placeholderOnly?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-guide__copy","data-testid":`copy-fact-${_}`,onClick:m=>l(h.value,c("fact",_))},t.toDisplayString(o.value===c("fact",_)?t.unref(a)("conn.guide.copied"):t.unref(a)("conn.guide.copy")),9,U7))]),h.hint?(t.openBlock(),t.createElementBlock("span",H7,t.toDisplayString(h.hint),1)):t.createCommentVNode("",!0)]))),128))]),t.createElementVNode("nav",K7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.guide.clients,h=>(t.openBlock(),t.createElementBlock("button",{key:h.id,type:"button",role:"tab",class:t.normalizeClass(["fe-guide__tab",{"is-active":s.value&&h.id===s.value.id}]),"aria-selected":s.value&&h.id===s.value.id,"data-testid":`guide-tab-${h.id}`,onClick:_=>r.value=h.id},t.toDisplayString(h.name),11,G7))),128))]),s.value?(t.openBlock(),t.createElementBlock("div",q7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value.blocks,(h,_)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:_},[h.kind==="steps"?(t.openBlock(),t.createElementBlock("ol",W7,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.steps??[],(m,k)=>(t.openBlock(),t.createElementBlock("li",{key:k},t.toDisplayString(m),1))),128))])):d(h)?(t.openBlock(),t.createElementBlock("div",j7,[t.createElementVNode("div",Y7,[t.createElementVNode("span",X7,t.toDisplayString(h.caption),1),t.createElementVNode("button",{type:"button",class:"fe-guide__copy","data-testid":`copy-code-${_}`,onClick:m=>l(h.code??"",c(s.value.id,_))},t.toDisplayString(o.value===c(s.value.id,_)?t.unref(a)("conn.guide.copied"):t.unref(a)("conn.guide.copy")),9,Z7)]),t.createElementVNode("pre",J7,[t.createElementVNode("code",null,t.toDisplayString(h.code),1)])])):h.kind==="warn"?(t.openBlock(),t.createElementBlock("p",Q7,t.toDisplayString(h.text),1)):h.kind==="note"?(t.openBlock(),t.createElementBlock("p",eS,t.toDisplayString(h.text),1)):(t.openBlock(),t.createElementBlock("p",tS,t.toDisplayString(h.text),1))],64))),128))])):t.createCommentVNode("",!0),e.guide.notes.length?(t.openBlock(),t.createElementBlock("section",nS,[t.createElementVNode("h4",aS,t.toDisplayString(t.unref(a)("conn.guide.goodToKnow")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.guide.notes,(h,_)=>(t.openBlock(),t.createElementBlock("p",{key:_,class:t.normalizeClass(h.kind==="warn"?"fe-guide__warn":"fe-guide__note")},t.toDisplayString(h.text),3))),128))])):t.createCommentVNode("",!0)]))}});function Nm(e){const n=ao(e),a=ro(e),r=y=>`${a}${y}`,o=t.shallowRef([]),i=t.ref(null),s=t.ref(!1),l=t.ref(!1),c=t.ref(null),d=t.ref(null),u=t.ref(null);function p(y){const b=y;if(b!=null&&b.detail)try{const S=JSON.parse(b.detail);if(S!=null&&S.error)return S.error}catch{}return(b==null?void 0:b.message)||String(y)}function f(y){return y==null?void 0:y.status}async function h(){s.value=!0,c.value=null;try{const y=await n.jsonFetch(r("/api/auth/s3-keys"));o.value=Array.isArray(y==null?void 0:y.keys)?y.keys:[],i.value={endpoint:(y==null?void 0:y.endpoint)??"",enabled:(y==null?void 0:y.enabled)!==!1,path_style:(y==null?void 0:y.path_style)!==!1},d.value=!0}catch(y){o.value=[];const b=f(y);b===401||b===403?d.value=!1:(d.value=!1,c.value=p(y))}finally{s.value=!1,l.value=!0}}async function _(y){c.value=null;try{const b=await n.jsonFetch(r("/api/auth/s3-keys"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)});return u.value=b,b!=null&&b.endpoint&&(i.value={endpoint:b.endpoint,enabled:b.enabled!==!1,path_style:b.path_style!==!1}),await h(),b}catch(b){return c.value=p(b),null}}async function m(y,b){c.value=null;try{await n.jsonFetch(r(`/api/auth/s3-keys/${y}/state`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:b})}),await h()}catch(S){c.value=p(S)}}async function k(y){var b,S;c.value=null;try{await n.jsonFetch(r(`/api/auth/s3-keys/${y}`),{method:"DELETE"}),((S=(b=u.value)==null?void 0:b.key)==null?void 0:S.id)===y&&(u.value=null),await h()}catch(N){c.value=p(N)}}function g(){u.value=null}const v=t.computed(()=>{var b;if((b=u.value)!=null&&b.key)return u.value.key;const y=o.value.filter(S=>!S.disabled_at);return y.length?y.reduce((S,N)=>S.created_at>=N.created_at?S:N):null});return{keys:o,connection:i,loading:s,loaded:l,error:c,canMint:d,revealed:u,guideKey:v,load:h,create:_,setDisabled:m,remove:k,dismissSecret:g}}const rS={class:"fe-s3keys","data-testid":"s3-keys"},oS={class:"fe-s3keys__head"},iS={class:"fe-s3keys__title"},lS={class:"fe-s3keys__lead"},sS={key:0,class:"fe-s3keys__warn"},cS={key:1,class:"fe-s3keys__muted"},dS={key:2,class:"fe-s3keys__warn"},uS={key:3,class:"fe-s3keys__form"},fS=["placeholder"],pS={value:""},hS=["value"],mS=["placeholder","disabled"],gS=["disabled"],yS={key:4,class:"fe-s3keys__hint"},bS={key:5,class:"fe-s3keys__secret","data-testid":"s3-key-secret"},vS={class:"fe-s3keys__once"},kS={class:"fe-s3keys__pair"},_S={class:"fe-s3keys__k"},wS={class:"fe-s3keys__pair"},ES={class:"fe-s3keys__k"},SS={key:6,class:"fe-s3keys__muted"},xS={key:7,class:"fe-s3keys__table"},CS={class:"fe-s3keys__actions"},NS=["disabled","onClick"],BS=["disabled","onClick"],TS={key:8,class:"fe-s3keys__muted"},Bm=t.defineComponent({__name:"S3KeysPanel",props:{config:{},storages:{}},emits:["active"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{keys:s,connection:l,loading:c,error:d,canMint:u,revealed:p,guideKey:f,load:h,create:_,setDisabled:m,remove:k,dismissSecret:g}=Nm(a.config),v=t.ref(""),y=t.ref(""),b=t.ref(""),S=t.ref(!1),N=t.ref(null),T=t.ref(null);let E=null;function w(){var P,q,F,U,z;const R=l.value;R&&r("active",{accessKeyID:((P=f.value)==null?void 0:P.access_key_id)??"",secret:((F=(q=p.value)==null?void 0:q.key)==null?void 0:F.id)===((U=f.value)==null?void 0:U.id)?(z=p.value)==null?void 0:z.secret:void 0,endpoint:R.endpoint,pathStyle:R.path_style})}t.onMounted(async()=>{await h(),w()});async function C(){S.value=!0;try{await _({label:v.value.trim()||i("conn.s3keys.defaultLabel"),bucket:y.value.trim()||void 0,prefix:b.value.trim()||void 0}),v.value="",w()}finally{S.value=!1}}async function M(R){S.value=!0;try{await m(R.id,!R.disabled_at),w()}finally{S.value=!1}}async function L(R){if(N.value!==R.id){N.value=R.id;return}N.value=null,S.value=!0;try{await k(R.id),w()}finally{S.value=!1}}async function I(R,P){let q=!1;try{await navigator.clipboard.writeText(R),q=!0}catch{try{const F=document.createElement("textarea");F.value=R,F.setAttribute("readonly",""),F.style.position="fixed",F.style.opacity="0",document.body.appendChild(F),F.select(),q=document.execCommand("copy"),document.body.removeChild(F)}catch{q=!1}}q&&(T.value=P,E&&clearTimeout(E),E=setTimeout(()=>T.value=null,1600))}function V(R){if(!R)return"";const P=new Date(R);return Number.isNaN(P.getTime())?"":P.toLocaleDateString()}function $(R){return R.bucket?R.prefix?`${R.bucket}/${R.prefix}`:R.bucket:i("conn.s3keys.scopeAll")}return(R,P)=>(t.openBlock(),t.createElementBlock("section",rS,[t.createElementVNode("header",oS,[t.createElementVNode("h4",iS,t.toDisplayString(t.unref(i)("conn.s3keys.title")),1),t.createElementVNode("p",lS,t.toDisplayString(t.unref(i)("conn.s3keys.lead")),1)]),t.unref(l)&&!t.unref(l).enabled?(t.openBlock(),t.createElementBlock("p",sS,t.toDisplayString(t.unref(i)("conn.s3keys.disabled")),1)):t.createCommentVNode("",!0),t.unref(u)===!1?(t.openBlock(),t.createElementBlock("p",cS,t.toDisplayString(t.unref(i)("conn.s3keys.cannotMint")),1)):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",dS,t.toDisplayString(t.unref(d)),1)):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("div",uS,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":P[0]||(P[0]=q=>v.value=q),class:"fe-cfield__input",placeholder:t.unref(i)("conn.s3keys.label"),"data-testid":"s3-key-label"},null,8,fS),[[t.vModelText,v.value]]),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":P[1]||(P[1]=q=>y.value=q),class:"fe-cfield__input","data-testid":"s3-key-bucket"},[t.createElementVNode("option",pS,t.toDisplayString(t.unref(i)("conn.s3keys.everyBucket")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.storages,q=>(t.openBlock(),t.createElementBlock("option",{key:q,value:q},t.toDisplayString(q),9,hS))),128))],512),[[t.vModelSelect,y.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":P[2]||(P[2]=q=>b.value=q),class:"fe-cfield__input",placeholder:t.unref(i)("conn.s3keys.prefix"),disabled:!y.value,"data-testid":"s3-key-prefix"},null,8,mS),[[t.vModelText,b.value]]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:S.value,"data-testid":"s3-key-mint",onClick:C},t.toDisplayString(t.unref(i)("conn.s3keys.mint")),9,gS)])):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("p",yS,t.toDisplayString(t.unref(i)("conn.s3keys.inheritNote")),1)):t.createCommentVNode("",!0),t.unref(p)?(t.openBlock(),t.createElementBlock("div",bS,[t.createElementVNode("p",vS,t.toDisplayString(t.unref(i)("conn.s3keys.once")),1),t.createElementVNode("div",kS,[t.createElementVNode("span",_S,t.toDisplayString(t.unref(i)("conn.s3keys.accessKeyID")),1),t.createElementVNode("code",null,t.toDisplayString(t.unref(p).key.access_key_id),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:P[3]||(P[3]=q=>I(t.unref(p).key.access_key_id,"akid"))},t.toDisplayString(T.value==="akid"?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("div",wS,[t.createElementVNode("span",ES,t.toDisplayString(t.unref(i)("conn.s3keys.secret")),1),t.createElementVNode("code",null,t.toDisplayString(t.unref(p).secret),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:P[4]||(P[4]=q=>I(t.unref(p).secret,"secret"))},t.toDisplayString(T.value==="secret"?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("button",{class:"fe-s3keys__dismiss",onClick:P[5]||(P[5]=(...q)=>t.unref(g)&&t.unref(g)(...q))},t.toDisplayString(t.unref(i)("conn.s3keys.dismiss")),1)])):t.createCommentVNode("",!0),t.unref(c)?(t.openBlock(),t.createElementBlock("p",SS,"…")):t.unref(s).length?(t.openBlock(),t.createElementBlock("table",xS,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.label")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.key")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.scope")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.s3keys.col.lastUsed")),1),P[6]||(P[6]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(s),q=>(t.openBlock(),t.createElementBlock("tr",{key:q.id,class:t.normalizeClass({"is-off":!!q.disabled_at})},[t.createElementVNode("td",null,t.toDisplayString(q.label||t.unref(i)("conn.s3keys.noLabel")),1),t.createElementVNode("td",null,[t.createElementVNode("code",null,t.toDisplayString(q.access_key_id),1)]),t.createElementVNode("td",null,t.toDisplayString($(q)),1),t.createElementVNode("td",null,t.toDisplayString(q.last_used_at?V(q.last_used_at):t.unref(i)("conn.s3keys.neverUsed")),1),t.createElementVNode("td",CS,[t.createElementVNode("button",{class:"fe-s3keys__link",disabled:S.value,onClick:F=>M(q)},t.toDisplayString(q.disabled_at?t.unref(i)("conn.s3keys.enable"):t.unref(i)("conn.s3keys.disable")),9,NS),t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:S.value,onClick:F=>L(q)},t.toDisplayString(N.value===q.id?t.unref(i)("conn.s3keys.confirm"):t.unref(i)("conn.s3keys.revoke")),9,BS)])],2))),128))])])):t.unref(u)?(t.openBlock(),t.createElementBlock("p",TS,t.toDisplayString(t.unref(i)("conn.s3keys.empty")),1)):t.createCommentVNode("",!0)]))}});function Tm(e){const n=ao(e),a=ro(e),r=g=>`${a}${g}`,o=t.shallowRef([]),i=t.ref(null),s=t.ref(!1),l=t.ref(!1),c=t.ref(null),d=t.ref(null);function u(g){const v=g;if(v!=null&&v.detail)try{const y=JSON.parse(v.detail);if(y!=null&&y.error)return y.error}catch{}return(v==null?void 0:v.message)||String(g)}function p(g){return g==null?void 0:g.status}async function f(){s.value=!0,c.value=null;try{const g=await n.jsonFetch(r("/api/auth/ssh-keys"));o.value=Array.isArray(g==null?void 0:g.keys)?g.keys:[],i.value={enabled:(g==null?void 0:g.enabled)!==!1,host:(g==null?void 0:g.host)??"",port:(g==null?void 0:g.port)??2022,login:(g==null?void 0:g.login)??"",ftps:g==null?void 0:g.ftps},d.value=!0}catch(g){o.value=[],d.value=!1,p(g)!==401&&p(g)!==403&&(c.value=u(g))}finally{s.value=!1,l.value=!0}}async function h(g,v){c.value=null;try{return await n.jsonFetch(r("/api/auth/ssh-keys"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:g,name:v})}),await f(),!0}catch(y){return c.value=u(y),!1}}async function _(g,v){c.value=null;try{await n.jsonFetch(r(`/api/auth/ssh-keys/${g}/state`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:v})}),await f()}catch(y){c.value=u(y)}}async function m(g){c.value=null;try{await n.jsonFetch(r(`/api/auth/ssh-keys/${g}`),{method:"DELETE"}),await f()}catch(v){c.value=u(v)}}const k=t.computed(()=>o.value.some(g=>!g.disabled_at));return{keys:o,connection:i,loading:s,loaded:l,error:c,canAdd:d,hasUsableKey:k,load:f,add:h,setDisabled:_,remove:m}}const DS={key:0,class:"fe-s3keys","data-testid":"ssh-keys"},AS={class:"fe-s3keys__head"},MS={class:"fe-s3keys__title"},OS={class:"fe-s3keys__lead"},IS={key:0,class:"fe-s3keys__warn"},RS={key:1,class:"fe-s3keys__muted"},zS={key:2,class:"fe-s3keys__warn"},LS={key:3,class:"fe-sshkeys__form"},FS=["placeholder"],$S={class:"fe-sshkeys__row"},PS=["placeholder"],VS=["disabled"],US={class:"fe-s3keys__hint"},HS={key:4,class:"fe-s3keys__muted"},KS={key:5,class:"fe-s3keys__table"},GS={class:"fe-s3keys__actions"},qS=["disabled","onClick"],WS=["disabled","onClick"],jS={key:6,class:"fe-s3keys__muted"},Dm=t.defineComponent({__name:"SSHKeysPanel",props:{config:{},keysVisible:{type:Boolean}},emits:["active"],setup(e,{emit:n}){const a=e,r=t.computed(()=>a.keysVisible!==!1),o=n,i=t.computed(()=>$n(a.config.locale)),{t:s}=Dt(i),{keys:l,connection:c,loading:d,error:u,canAdd:p,hasUsableKey:f,load:h,add:_,setDisabled:m,remove:k}=Tm(a.config),g=t.ref(""),v=t.ref(""),y=t.ref(!1),b=t.ref(null);function S(){const M=c.value;M&&o("active",{host:M.host,port:M.port,login:M.login,enabled:M.enabled,hasKey:f.value,ftps:M.ftps})}t.onMounted(async()=>{await h(),S()});async function N(){if(g.value.trim()){y.value=!0;try{await _(g.value.trim(),v.value.trim()||void 0)&&(g.value="",v.value=""),S()}finally{y.value=!1}}}async function T(M){y.value=!0;try{await m(M.id,!M.disabled_at),S()}finally{y.value=!1}}async function E(M){if(b.value!==M.id){b.value=M.id;return}b.value=null,y.value=!0;try{await k(M.id),S()}finally{y.value=!1}}function w(M){if(!M)return"";const L=new Date(M);return Number.isNaN(L.getTime())?"":L.toLocaleDateString()}function C(M){return"SHA256:"+M.fingerprint}return(M,L)=>r.value?(t.openBlock(),t.createElementBlock("section",DS,[t.createElementVNode("header",AS,[t.createElementVNode("h4",MS,t.toDisplayString(t.unref(s)("conn.sshkeys.title")),1),t.createElementVNode("p",OS,t.toDisplayString(t.unref(s)("conn.sshkeys.lead")),1)]),t.unref(c)&&!t.unref(c).enabled?(t.openBlock(),t.createElementBlock("p",IS,t.toDisplayString(t.unref(s)("conn.sshkeys.disabled")),1)):t.createCommentVNode("",!0),t.unref(p)===!1?(t.openBlock(),t.createElementBlock("p",RS,t.toDisplayString(t.unref(s)("conn.sshkeys.cannotAdd")),1)):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("p",zS,t.toDisplayString(t.unref(u)),1)):t.createCommentVNode("",!0),t.unref(p)?(t.openBlock(),t.createElementBlock("div",LS,[t.withDirectives(t.createElementVNode("textarea",{"onUpdate:modelValue":L[0]||(L[0]=I=>g.value=I),class:"fe-cfield__input fe-sshkeys__paste",rows:"2",spellcheck:"false",placeholder:t.unref(s)("conn.sshkeys.paste"),"data-testid":"ssh-key-input"},null,8,FS),[[t.vModelText,g.value]]),t.createElementVNode("div",$S,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":L[1]||(L[1]=I=>v.value=I),class:"fe-cfield__input",placeholder:t.unref(s)("conn.sshkeys.name"),"data-testid":"ssh-key-name"},null,8,PS),[[t.vModelText,v.value]]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:y.value,"data-testid":"ssh-key-add",onClick:N},t.toDisplayString(t.unref(s)("conn.sshkeys.add")),9,VS)]),t.createElementVNode("p",US,t.toDisplayString(t.unref(s)("conn.sshkeys.noCopyId")),1)])):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",HS,"…")):t.unref(l).length?(t.openBlock(),t.createElementBlock("table",KS,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(s)("conn.sshkeys.col.name")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(s)("conn.sshkeys.col.fingerprint")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(s)("conn.sshkeys.col.lastUsed")),1),L[2]||(L[2]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l),I=>(t.openBlock(),t.createElementBlock("tr",{key:I.id,class:t.normalizeClass({"is-off":!!I.disabled_at})},[t.createElementVNode("td",null,t.toDisplayString(I.name||t.unref(s)("conn.sshkeys.noName")),1),t.createElementVNode("td",null,[t.createElementVNode("code",null,t.toDisplayString(C(I)),1)]),t.createElementVNode("td",null,t.toDisplayString(I.last_used_at?w(I.last_used_at):t.unref(s)("conn.sshkeys.neverUsed")),1),t.createElementVNode("td",GS,[t.createElementVNode("button",{class:"fe-s3keys__link",disabled:y.value,onClick:V=>T(I)},t.toDisplayString(I.disabled_at?t.unref(s)("conn.sshkeys.enable"):t.unref(s)("conn.sshkeys.disable")),9,qS),t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:y.value,onClick:V=>E(I)},t.toDisplayString(b.value===I.id?t.unref(s)("conn.sshkeys.confirm"):t.unref(s)("conn.sshkeys.remove")),9,WS)])],2))),128))])])):t.unref(p)?(t.openBlock(),t.createElementBlock("p",jS,t.toDisplayString(t.unref(s)("conn.sshkeys.empty")),1)):t.createCommentVNode("",!0)])):t.createCommentVNode("",!0)}});function Am(e){const n=ao(e),a=ro(e),r=y=>`${a}${y}`,o=t.shallowRef([]),i=t.ref(null),s=t.ref(!1),l=t.ref(!1),c=t.ref(null),d=t.ref(null),u=t.ref(null);function p(y){const b=y;if(b!=null&&b.detail)try{const S=JSON.parse(b.detail);if(S!=null&&S.error)return S.error}catch{}return(b==null?void 0:b.message)||String(y)}function f(y){return y==null?void 0:y.status}async function h(){s.value=!0,c.value=null;try{const y=await n.jsonFetch(r("/api/auth/nfs-exports"));o.value=Array.isArray(y==null?void 0:y.exports)?y.exports:[],i.value={enabled:(y==null?void 0:y.enabled)!==!1,host:(y==null?void 0:y.host)??"",port:(y==null?void 0:y.port)??2049},d.value=!0}catch(y){o.value=[],d.value=!1,f(y)!==401&&f(y)!==403&&(c.value=p(y))}finally{s.value=!1,l.value=!0}}async function _(y){c.value=null;try{const b=await n.jsonFetch(r("/api/auth/nfs-exports"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)});return u.value=b,b!=null&&b.host&&(i.value={enabled:b.enabled!==!1,host:b.host,port:b.port}),await h(),b}catch(b){return c.value=p(b),null}}async function m(y,b){c.value=null;try{await n.jsonFetch(r(`/api/auth/nfs-exports/${y}/state`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:b})}),await h()}catch(S){c.value=p(S)}}async function k(y){var b,S;c.value=null;try{await n.jsonFetch(r(`/api/auth/nfs-exports/${y}`),{method:"DELETE"}),((S=(b=u.value)==null?void 0:b.export)==null?void 0:S.id)===y&&(u.value=null),await h()}catch(N){c.value=p(N)}}function g(){u.value=null}const v=t.computed(()=>{var b;if((b=u.value)!=null&&b.export)return u.value.export;const y=o.value.filter(S=>!S.disabled_at);return y.length?y.reduce((S,N)=>S.created_at>=N.created_at?S:N):null});return{exports:o,connection:i,loading:s,loaded:l,error:c,canMint:d,revealed:u,guideExport:v,load:h,create:_,setDisabled:m,remove:k,dismissPath:g}}const YS={class:"fe-s3keys","data-testid":"nfs-exports"},XS={class:"fe-s3keys__head"},ZS={class:"fe-s3keys__title"},JS={class:"fe-s3keys__lead"},QS={class:"fe-s3keys__warn"},ex={key:0,class:"fe-s3keys__warn"},tx={key:1,class:"fe-s3keys__muted"},nx={key:2,class:"fe-s3keys__warn"},ax={key:3,class:"fe-s3keys__form fe-nfs__form"},rx=["placeholder"],ox={value:""},ix=["value"],lx=["placeholder","disabled"],sx=["placeholder"],cx={class:"fe-nfs__ro"},dx=["disabled"],ux={key:4,class:"fe-s3keys__hint"},fx={key:5,class:"fe-s3keys__secret","data-testid":"nfs-path"},px={class:"fe-s3keys__once"},hx={class:"fe-s3keys__pair"},mx={key:6,class:"fe-s3keys__muted"},gx={key:7,class:"fe-s3keys__table"},yx={class:"fe-s3keys__actions"},bx=["disabled","onClick"],vx=["disabled","onClick"],kx={key:8,class:"fe-s3keys__muted"},Mm=t.defineComponent({__name:"NFSExportsPanel",props:{config:{},storages:{}},emits:["active"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{exports:s,connection:l,loading:c,error:d,canMint:u,revealed:p,guideExport:f,load:h,create:_,setDisabled:m,remove:k,dismissPath:g}=Am(a.config),v=t.ref(""),y=t.ref(""),b=t.ref(""),S=t.ref(!0),N=t.ref(""),T=t.ref(!1),E=t.ref(null),w=t.ref(!1);let C=null;function M(){var U,z;const F=l.value;F&&r("active",{host:F.host,port:F.port,enabled:F.enabled,path:(U=p.value)==null?void 0:U.path,readOnly:((z=f.value)==null?void 0:z.read_only)??S.value})}t.onMounted(async()=>{await h(),M()});async function L(){T.value=!0;try{await _({label:v.value.trim()||i("conn.nfs.defaultLabel"),storage:y.value.trim()||void 0,prefix:b.value.trim()||void 0,read_only:S.value,allow_cidrs:N.value.trim()||void 0}),v.value="",M()}finally{T.value=!1}}async function I(F){T.value=!0;try{await m(F.id,!F.disabled_at),M()}finally{T.value=!1}}async function V(F){if(E.value!==F.id){E.value=F.id;return}E.value=null,T.value=!0;try{await k(F.id),M()}finally{T.value=!1}}const $=t.computed(()=>{var Y,Q,oe;const F=l.value,U=(Y=p.value)==null?void 0:Y.path;if(!F||!U)return"";const z=(oe=(Q=p.value)==null?void 0:Q.export)!=null&&oe.read_only?",ro":"";return`sudo mount -t nfs -o nfsvers=3,tcp,port=${F.port},mountport=${F.port},nolock${z} ${F.host}:${U} /mnt/filex`});async function R(){const F=$.value;if(!F)return;let U=!1;try{await navigator.clipboard.writeText(F),U=!0}catch{try{const z=document.createElement("textarea");z.value=F,z.setAttribute("readonly",""),z.style.position="fixed",z.style.opacity="0",document.body.appendChild(z),z.select(),U=document.execCommand("copy"),document.body.removeChild(z)}catch{U=!1}}U&&(w.value=!0,C&&clearTimeout(C),C=setTimeout(()=>w.value=!1,1600))}function P(F){if(!F)return"";const U=new Date(F);return Number.isNaN(U.getTime())?"":U.toLocaleDateString()}function q(F){return F.storage_name?F.prefix?`${F.storage_name}/${F.prefix}`:F.storage_name:i("conn.nfs.scopeAll")}return(F,U)=>(t.openBlock(),t.createElementBlock("section",YS,[t.createElementVNode("header",XS,[t.createElementVNode("h4",ZS,t.toDisplayString(t.unref(i)("conn.nfs.title")),1),t.createElementVNode("p",JS,t.toDisplayString(t.unref(i)("conn.nfs.lead")),1)]),t.createElementVNode("p",QS,t.toDisplayString(t.unref(i)("conn.nfs.pathIsSecret")),1),t.unref(l)&&!t.unref(l).enabled?(t.openBlock(),t.createElementBlock("p",ex,t.toDisplayString(t.unref(i)("conn.nfs.disabled")),1)):t.createCommentVNode("",!0),t.unref(u)===!1?(t.openBlock(),t.createElementBlock("p",tx,t.toDisplayString(t.unref(i)("conn.nfs.cannotMint")),1)):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",nx,t.toDisplayString(t.unref(d)),1)):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("div",ax,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":U[0]||(U[0]=z=>v.value=z),class:"fe-cfield__input",placeholder:t.unref(i)("conn.nfs.label"),"data-testid":"nfs-label"},null,8,rx),[[t.vModelText,v.value]]),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":U[1]||(U[1]=z=>y.value=z),class:"fe-cfield__input","data-testid":"nfs-storage"},[t.createElementVNode("option",ox,t.toDisplayString(t.unref(i)("conn.nfs.everyStorage")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.storages,z=>(t.openBlock(),t.createElementBlock("option",{key:z,value:z},t.toDisplayString(z),9,ix))),128))],512),[[t.vModelSelect,y.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":U[2]||(U[2]=z=>b.value=z),class:"fe-cfield__input",placeholder:t.unref(i)("conn.nfs.prefix"),disabled:!y.value,"data-testid":"nfs-prefix"},null,8,lx),[[t.vModelText,b.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":U[3]||(U[3]=z=>N.value=z),class:"fe-cfield__input",placeholder:t.unref(i)("conn.nfs.allowCidrs"),"data-testid":"nfs-cidrs"},null,8,sx),[[t.vModelText,N.value]]),t.createElementVNode("label",cx,[t.withDirectives(t.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":U[4]||(U[4]=z=>S.value=z),"data-testid":"nfs-readonly"},null,512),[[t.vModelCheckbox,S.value]]),t.createTextVNode(" "+t.toDisplayString(t.unref(i)("conn.nfs.readOnly")),1)]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:T.value,"data-testid":"nfs-mint",onClick:L},t.toDisplayString(t.unref(i)("conn.nfs.mint")),9,dx)])):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("p",ux,t.toDisplayString(t.unref(i)("conn.nfs.readOnlyHint")),1)):t.createCommentVNode("",!0),t.unref(p)?(t.openBlock(),t.createElementBlock("div",fx,[t.createElementVNode("p",px,t.toDisplayString(t.unref(i)("conn.nfs.once")),1),t.createElementVNode("div",hx,[t.createElementVNode("code",null,t.toDisplayString($.value),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:R},t.toDisplayString(w.value?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("button",{class:"fe-s3keys__dismiss",onClick:U[5]||(U[5]=(...z)=>t.unref(g)&&t.unref(g)(...z))},t.toDisplayString(t.unref(i)("conn.nfs.dismiss")),1)])):t.createCommentVNode("",!0),t.unref(c)?(t.openBlock(),t.createElementBlock("p",mx,"…")):t.unref(s).length?(t.openBlock(),t.createElementBlock("table",gx,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.label")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.scope")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.mode")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.nfs.col.lastUsed")),1),U[6]||(U[6]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(s),z=>(t.openBlock(),t.createElementBlock("tr",{key:z.id,class:t.normalizeClass({"is-off":!!z.disabled_at})},[t.createElementVNode("td",null,t.toDisplayString(z.label||t.unref(i)("conn.nfs.noLabel")),1),t.createElementVNode("td",null,t.toDisplayString(q(z)),1),t.createElementVNode("td",null,t.toDisplayString(z.read_only?t.unref(i)("conn.nfs.modeRead"):t.unref(i)("conn.nfs.modeWrite")),1),t.createElementVNode("td",null,t.toDisplayString(z.last_used_at?P(z.last_used_at):t.unref(i)("conn.nfs.neverUsed")),1),t.createElementVNode("td",yx,[t.createElementVNode("button",{class:"fe-s3keys__link",disabled:T.value,onClick:Y=>I(z)},t.toDisplayString(z.disabled_at?t.unref(i)("conn.nfs.enable"):t.unref(i)("conn.nfs.disable")),9,bx),t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:T.value,onClick:Y=>V(z)},t.toDisplayString(E.value===z.id?t.unref(i)("conn.nfs.confirm"):t.unref(i)("conn.nfs.revoke")),9,vx)])],2))),128))])])):t.unref(u)?(t.openBlock(),t.createElementBlock("p",kx,t.toDisplayString(t.unref(i)("conn.nfs.empty")),1)):t.createCommentVNode("",!0)]))}});function Om(e){const n=ao(e),a=ro(e),r=k=>`${a}${k}`,o=t.shallowRef([]),i=t.ref(!1),s=t.ref(!1),l=t.ref(null),c=t.ref(null),d=t.ref(null);function u(k){const g=k;if(g!=null&&g.detail)try{const v=JSON.parse(g.detail);if(v!=null&&v.error)return v.error}catch{}return(g==null?void 0:g.message)||String(k)}function p(k){return k==null?void 0:k.status}async function f(){i.value=!0,l.value=null;try{const k=await n.jsonFetch(r("/api/tokens"));o.value=Array.isArray(k==null?void 0:k.tokens)?k.tokens:[],c.value=!0}catch(k){o.value=[];const g=p(k);c.value=!1,g!==401&&g!==403&&(l.value=u(k))}finally{i.value=!1,s.value=!0}}async function h(k){l.value=null;try{const g=await n.jsonFetch(r("/api/tokens"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});return d.value=g,await f(),g}catch(g){return l.value=u(g),null}}async function _(k){var g,v;l.value=null;try{await n.jsonFetch(r(`/api/tokens/${k}`),{method:"DELETE"}),((v=(g=d.value)==null?void 0:g.row)==null?void 0:v.id)===k&&(d.value=null),await f()}catch(y){l.value=u(y)}}function m(){d.value=null}return{tokens:o,loading:i,loaded:s,error:l,canMint:c,revealed:d,load:f,create:h,remove:_,dismiss:m}}const _x={class:"fe-s3keys","data-testid":"api-tokens"},wx={class:"fe-s3keys__head"},Ex={class:"fe-s3keys__title"},Sx={class:"fe-s3keys__lead"},xx={key:0,class:"fe-s3keys__muted"},Cx={key:1,class:"fe-s3keys__warn"},Nx={key:2,class:"fe-s3keys__form"},Bx=["placeholder"],Tx=["disabled"],Dx={key:3,class:"fe-tokform","data-testid":"token-form-full"},Ax=["placeholder"],Mx={class:"fe-tokform__scopes"},Ox={class:"fe-tokform__legend"},Ix=["onUpdate:modelValue","data-testid"],Rx={class:"fe-tokform__field"},zx={class:"fe-tokform__label"},Lx=["placeholder"],Fx={class:"fe-tokform__row"},$x={class:"fe-tokform__field fe-tokform__field--narrow"},Px={class:"fe-tokform__label"},Vx=["placeholder"],Ux=["disabled"],Hx={class:"fe-s3keys__hint"},Kx={key:4,class:"fe-s3keys__secret","data-testid":"token-secret"},Gx={class:"fe-s3keys__once"},qx={class:"fe-s3keys__pair"},Wx={key:5,class:"fe-s3keys__muted"},jx={key:6,class:"fe-s3keys__table"},Yx={class:"fe-s3keys__actions"},Xx=["disabled","onClick"],Zx={key:7,class:"fe-s3keys__muted"},Jx={key:8,class:"fe-s3keys__hint"},t0=t.defineComponent({__name:"TokensPanel",props:{config:{},full:{type:Boolean},protocol:{}},emits:["active"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{tokens:s,loading:l,error:c,canMint:d,revealed:u,load:p,create:f,remove:h,dismiss:_}=Om(a.config),m=t.ref(""),k=t.ref(!1),g=t.ref(!1),v=t.ref(null),y=["read","write","delete","mcp"],b=t.ref({read:!0,write:!1,delete:!1,mcp:!1}),S=t.ref(""),N=t.ref(null);function T(){const $=y.filter(P=>b.value[P]),R=S.value.trim();return R&&$.push("root:"+R),$.join(",")}t.onMounted(async()=>{await p(),r("active",{hasToken:s.value.length>0})});function E(){const $=(a.protocol||"").toUpperCase();return $?`${$} β€” ${w()}`:w()}function w(){try{return new URL(a.config.apiBase||window.location.origin).host}catch{return"filex"}}async function C(){if(!k.value){k.value=!0,g.value=!1;try{if(a.full){const $=T()||"read";await f({label:m.value.trim()||E(),scopes:$,expires_in_days:N.value&&N.value>0?N.value:void 0}),await p(),r("active",{hasToken:s.value.length>0}),m.value="",S.value="";return}await f({label:m.value.trim()||E(),scopes:"read,write,delete"}),await p(),r("active",{hasToken:s.value.length>0}),m.value=""}finally{k.value=!1}}}async function M($){if(v.value!==$.id){v.value=$.id;return}v.value=null,k.value=!0;try{await h($.id),r("active",{hasToken:s.value.length>0})}finally{k.value=!1}}async function L(){var $;if(($=u.value)!=null&&$.token)try{await navigator.clipboard.writeText(u.value.token),g.value=!0,window.setTimeout(()=>g.value=!1,1600)}catch{}}function I($){if(!$)return"";const R=new Date($);return Number.isNaN(R.getTime())?"":R.toLocaleDateString()}function V($){return $.last_used_at?I($.last_used_at):i("conn.tokens.neverUsed")}return($,R)=>(t.openBlock(),t.createElementBlock("section",_x,[t.createElementVNode("header",wx,[t.createElementVNode("h4",Ex,t.toDisplayString(t.unref(i)("conn.tokens.title")),1),t.createElementVNode("p",Sx,t.toDisplayString(t.unref(i)("conn.tokens.lead")),1)]),t.unref(d)===!1?(t.openBlock(),t.createElementBlock("p",xx,t.toDisplayString(t.unref(i)("conn.tokens.cannotMint")),1)):t.createCommentVNode("",!0),t.unref(c)?(t.openBlock(),t.createElementBlock("p",Cx,t.toDisplayString(t.unref(c)),1)):t.createCommentVNode("",!0),t.unref(d)&&!e.full?(t.openBlock(),t.createElementBlock("div",Nx,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[0]||(R[0]=P=>m.value=P),class:"fe-cfield__input",placeholder:E(),"data-testid":"token-label"},null,8,Bx),[[t.vModelText,m.value]]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:k.value,"data-testid":"token-mint",onClick:C},t.toDisplayString(t.unref(i)("conn.tokens.mint")),9,Tx)])):t.unref(d)?(t.openBlock(),t.createElementBlock("div",Dx,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[1]||(R[1]=P=>m.value=P),class:"fe-cfield__input",placeholder:E(),"data-testid":"token-label"},null,8,Ax),[[t.vModelText,m.value]]),t.createElementVNode("fieldset",Mx,[t.createElementVNode("legend",Ox,t.toDisplayString(t.unref(i)("conn.tokens.scopes")),1),(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(y,P=>t.createElementVNode("label",{key:P,class:"fe-tokform__scope"},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":q=>b.value[P]=q,type:"checkbox","data-testid":`token-scope-${P}`},null,8,Ix),[[t.vModelCheckbox,b.value[P]]]),t.createElementVNode("span",null,t.toDisplayString(P),1)])),64))]),t.createElementVNode("label",Rx,[t.createElementVNode("span",zx,t.toDisplayString(t.unref(i)("conn.tokens.root")),1),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[2]||(R[2]=P=>S.value=P),class:"fe-cfield__input",placeholder:t.unref(i)("conn.tokens.rootPlaceholder"),"data-testid":"token-root"},null,8,Lx),[[t.vModelText,S.value]])]),t.createElementVNode("div",Fx,[t.createElementVNode("label",$x,[t.createElementVNode("span",Px,t.toDisplayString(t.unref(i)("conn.tokens.expiry")),1),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":R[3]||(R[3]=P=>N.value=P),type:"number",min:"0",class:"fe-cfield__input",placeholder:t.unref(i)("conn.tokens.expiryNever"),"data-testid":"token-expiry"},null,8,Vx),[[t.vModelText,N.value,void 0,{number:!0}]])]),t.createElementVNode("button",{class:"fe-s3keys__btn",disabled:k.value,"data-testid":"token-mint",onClick:C},t.toDisplayString(t.unref(i)("conn.tokens.mint")),9,Ux)]),t.createElementVNode("p",Hx,t.toDisplayString(t.unref(i)("conn.tokens.capNote")),1)])):t.createCommentVNode("",!0),t.unref(u)?(t.openBlock(),t.createElementBlock("div",Kx,[t.createElementVNode("p",Gx,t.toDisplayString(t.unref(i)("conn.tokens.once")),1),t.createElementVNode("div",qx,[t.createElementVNode("code",null,t.toDisplayString(t.unref(u).token),1),t.createElementVNode("button",{class:"fe-s3keys__copy",onClick:L},t.toDisplayString(g.value?t.unref(i)("conn.guide.copied"):t.unref(i)("conn.guide.copy")),1)]),t.createElementVNode("button",{class:"fe-s3keys__dismiss",onClick:R[4]||(R[4]=(...P)=>t.unref(_)&&t.unref(_)(...P))},t.toDisplayString(t.unref(i)("conn.tokens.dismiss")),1)])):t.createCommentVNode("",!0),t.unref(l)?(t.openBlock(),t.createElementBlock("p",Wx,"…")):t.unref(s).length?(t.openBlock(),t.createElementBlock("table",jx,[t.createElementVNode("thead",null,[t.createElementVNode("tr",null,[t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.tokens.col.label")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.tokens.col.scopes")),1),t.createElementVNode("th",null,t.toDisplayString(t.unref(i)("conn.tokens.col.used")),1),R[5]||(R[5]=t.createElementVNode("th",null,null,-1))])]),t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(s),P=>(t.openBlock(),t.createElementBlock("tr",{key:P.id},[t.createElementVNode("td",null,t.toDisplayString(P.label||"β€”"),1),t.createElementVNode("td",null,[t.createElementVNode("code",null,t.toDisplayString(P.scopes),1)]),t.createElementVNode("td",null,t.toDisplayString(V(P)),1),t.createElementVNode("td",Yx,[t.createElementVNode("button",{class:"fe-s3keys__link is-danger",disabled:k.value,onClick:q=>M(P)},t.toDisplayString(v.value===P.id?t.unref(i)("conn.tokens.confirm"):t.unref(i)("conn.tokens.revoke")),9,Xx)])]))),128))])])):t.unref(d)?(t.openBlock(),t.createElementBlock("p",Zx,t.toDisplayString(t.unref(i)("conn.tokens.empty")),1)):t.createCommentVNode("",!0),t.unref(d)?(t.openBlock(),t.createElementBlock("p",Jx,t.toDisplayString(t.unref(i)("conn.tokens.revokeHint")),1)):t.createCommentVNode("",!0)]))}}),Qx={class:"fe-conn__head"},e9={class:"fe-conn__title"},t9={class:"fe-conn__sub"},n9=["aria-label"],a9={class:"fe-conn__tabs",role:"tablist"},r9=["aria-selected"],o9=["aria-selected"],i9={key:0,class:"fe-conn__body",role:"tabpanel"},l9={key:0,class:"fe-conn__muted"},s9={key:0,class:"fe-conn__card fe-conn__card--notice","data-testid":"no-admin"},c9={class:"fe-conn__muted"},d9={class:"fe-conn__muted"},u9={key:1,class:"fe-conn__list"},f9={class:"fe-conn__rowmain"},p9={class:"fe-conn__name"},h9={class:"fe-conn__muted"},m9={key:0,class:"fe-conn__error"},g9={key:1,class:"fe-conn__card fe-conn__form","data-testid":"storage-form"},y9={class:"fe-conn__formtitle"},b9={class:"fe-cfield__row"},v9={class:"fe-cfield__label",for:"fe-conn-name"},k9=["placeholder"],_9={class:"fe-cfield__help"},w9={class:"fe-cfield__row"},E9={class:"fe-cfield__label",for:"fe-conn-driver"},S9=["value","disabled"],x9=["value"],C9={key:0,class:"fe-cfield__help"},N9={class:"fe-cfield__check"},B9={class:"fe-cfield__check"},T9={key:0,class:"fe-conn__error","data-testid":"form-error"},D9={class:"fe-conn__actions"},A9=["disabled"],M9=["disabled"],O9={key:2},I9={class:"fe-conn__listhead"},R9={class:"fe-conn__muted"},z9={key:0,class:"fe-conn__empty"},L9={class:"fe-conn__list","data-testid":"storage-list"},F9={class:"fe-conn__rowmain"},$9={class:"fe-conn__rowtext"},P9={class:"fe-conn__name"},V9={class:"fe-conn__badge"},U9={key:0,class:"fe-conn__badge fe-conn__badge--warn"},H9={key:1,class:"fe-conn__badge"},K9={key:2,class:"fe-conn__muted fe-conn__summary"},G9={class:"fe-conn__rowbtns"},q9=["data-testid","onClick"],W9=["onClick"],j9={key:1,class:"fe-conn__body",role:"tabpanel"},Y9={class:"fe-conn__guidebar"},X9={key:0,class:"fe-conn__pick"},Z9={class:"fe-cfield__label"},J9=["value"],Q9={class:"fe-conn__pick"},eC={class:"fe-cfield__label"},tC={value:""},nC=["value"],Im=t.defineComponent({__name:"ConnectionsPanel",props:{config:{},initialTab:{},closable:{type:Boolean}},emits:["changed","close","error"],setup(e,{emit:n}){const a=e,r=n,o=t.computed(()=>$n(a.config.locale)),{t:i}=Dt(o),{drivers:s,storages:l,visible:c,me:d,loading:u,loaded:p,error:f,canManage:h,denial:_,load:m,createStorage:k,updateStorage:g,deleteStorage:v,testStorage:y,descriptor:b,fields:S,defaults:N,missingRequired:T}=ym(a.config),E=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):void 0,w=t.ref(!!(E!=null&&E.matches));function C(me){w.value=me.matches}const M=t.computed(()=>{const me=a.config.theme??"auto";return me==="light"||me==="dark"?me:w.value?"dark":"light"}),L=t.ref(a.initialTab??"storages"),I=t.ref({kind:"none"}),V=t.ref(""),$=t.ref(""),R=t.ref(!1),P=t.ref(!0),q=t.ref({}),F=t.ref([]),U=t.ref(!1),z=t.ref(!1),Y=t.ref(null),Q=t.ref(null),oe=t.ref(null),he=t.ref(null),Be=t.computed(()=>s.value.map(me=>{const Ee=i(me.i18n_key);return{value:me.driver,label:Ee===me.i18n_key?me.label:Ee}})),_e=t.computed(()=>S($.value));function J(){var Ee;const me=((Ee=s.value[0])==null?void 0:Ee.driver)??"";$.value=me,V.value="",R.value=!1,P.value=!0,q.value=N(me),F.value=[],Y.value=null,oe.value=null,I.value={kind:"new"}}function te(me){$.value=me.driver,V.value=me.name,R.value=!!me.read_only,P.value=me.enabled!==!1,q.value={...me.config??{}},F.value=[],Y.value=null,oe.value=null,I.value={kind:"edit",row:me}}function Ne(){I.value={kind:"none"},Y.value=null,oe.value=null}function Ae(me){$.value=me,q.value=N(me),F.value=[],Y.value=null}function Le(){const me=T($.value,q.value).map(Ee=>Ee.key);return F.value=me,V.value.trim()?me.length?oe.value=i("conn.form.fillRequired"):oe.value=null:oe.value=i("conn.form.nameRequired"),!oe.value}async function nt(){z.value=!0,Y.value=null;try{Y.value=await y({driver:$.value,config:q.value})}finally{z.value=!1}}async function et(){if(Le()){U.value=!0,oe.value=null;try{const me={name:V.value.trim(),driver:$.value,config:q.value,read_only:R.value,enabled:P.value};I.value.kind==="edit"?await g(I.value.row.id,me):await k(me),Ne(),r("changed")}catch(me){const Ee=me??{};let ce="";try{ce=Ee.detail?JSON.parse(Ee.detail).error??"":""}catch{ce=Ee.detail??""}oe.value=ce||Ee.message||String(me),r("error",{message:oe.value})}finally{U.value=!1}}}async function Ve(me){if(he.value!==me.id){he.value=me.id;return}he.value=null;try{await v(me.id),r("changed")}catch(Ee){r("error",{message:Ee.message})}}function $e(me){const Ee=b(me.driver),ce=me.config??{},ze=[],Ke=Ee==null?void 0:Ee.fields.find(le=>le.root),at=(le,de=[])=>{for(const ke of[le,...de]){const re=ce[ke];if(typeof re=="string"&&re.trim())return re}return""},rt=at("endpoint")||at("url")||at("host");rt&&ze.push(rt);const W=at("bucket");if(W&&ze.push(W),Ke){const le=at(Ke.key,Ke.aliases??[]);le&&ze.push(le)}return ze.join(" Β· ")}const Oe=Em(),ee=t.ref(Oe[0]??"webdav"),ye=t.ref(""),xe=t.computed(()=>gm(a.config)),Pe=t.ref(null),it=t.ref(null),Ce=t.computed(()=>{var me,Ee,ce,ze,Ke,at,rt,W,le,de,ke,re,ge,H,Ie,dt,A,we,Se,G,se,ve,st,ue,fe,Ge,Nt;return Sm(ee.value,{origin:xe.value,user:((me=d.value)==null?void 0:me.email)??"",storages:c.value,storage:ye.value||void 0,s3Endpoint:(Ee=Pe.value)==null?void 0:Ee.endpoint,s3PathStyle:(ce=Pe.value)==null?void 0:ce.pathStyle,s3AccessKeyID:((ze=Pe.value)==null?void 0:ze.accessKeyID)||void 0,s3Secret:(Ke=Pe.value)==null?void 0:Ke.secret,sftpHost:((at=it.value)==null?void 0:at.host)||void 0,sftpPort:(rt=it.value)==null?void 0:rt.port,sftpEnabled:(W=it.value)==null?void 0:W.enabled,sftpLogin:((le=it.value)==null?void 0:le.login)||void 0,sftpHasKey:(de=it.value)==null?void 0:de.hasKey,ftpsHost:((re=(ke=it.value)==null?void 0:ke.ftps)==null?void 0:re.host)||void 0,ftpsPort:(H=(ge=it.value)==null?void 0:ge.ftps)==null?void 0:H.port,ftpsEnabled:(dt=(Ie=it.value)==null?void 0:Ie.ftps)==null?void 0:dt.enabled,ftpsPasvMin:(we=(A=it.value)==null?void 0:A.ftps)==null?void 0:we.pasv_min,ftpsPasvMax:(G=(Se=it.value)==null?void 0:Se.ftps)==null?void 0:G.pasv_max,ftpsSelfSigned:(ve=(se=it.value)==null?void 0:se.ftps)==null?void 0:ve.self_signed,nfsHost:((st=Q.value)==null?void 0:st.host)||void 0,nfsPort:(ue=Q.value)==null?void 0:ue.port,nfsEnabled:(fe=Q.value)==null?void 0:fe.enabled,nfsPath:(Ge=Q.value)==null?void 0:Ge.path,nfsReadOnly:(Nt=Q.value)==null?void 0:Nt.readOnly},i)});return t.watch(()=>c.value,me=>{!ye.value&&me.length===1&&(ye.value=me[0])}),t.onMounted(()=>{var me;(me=E==null?void 0:E.addEventListener)==null||me.call(E,"change",C),m()}),t.onBeforeUnmount(()=>{var me;return(me=E==null?void 0:E.removeEventListener)==null?void 0:me.call(E,"change",C)}),t.watch(()=>[a.config.apiBase,a.config.endpoint],()=>{Ne(),m()}),(me,Ee)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["fe-conn",{"fe--theme-dark":M.value==="dark","fe--theme-light":M.value==="light"}]),"data-testid":"connections-panel"},[t.createElementVNode("header",Qx,[t.createElementVNode("div",null,[t.createElementVNode("h2",e9,t.toDisplayString(t.unref(i)("conn.title")),1),t.createElementVNode("p",t9,t.toDisplayString(t.unref(i)("conn.subtitle",{host:t.unref(oo)(xe.value)})),1)]),e.closable?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-conn__btn","data-testid":"connections-close","aria-label":t.unref(i)("conn.close"),onClick:Ee[0]||(Ee[0]=ce=>r("close"))}," βœ• ",8,n9)):t.createCommentVNode("",!0)]),t.createElementVNode("nav",a9,[t.createElementVNode("button",{type:"button",role:"tab",class:t.normalizeClass(["fe-conn__tab",{"is-active":L.value==="storages"}]),"aria-selected":L.value==="storages","data-testid":"tab-storages",onClick:Ee[1]||(Ee[1]=ce=>L.value="storages")},t.toDisplayString(t.unref(i)("conn.tab.storages")),11,r9),t.createElementVNode("button",{type:"button",role:"tab",class:t.normalizeClass(["fe-conn__tab",{"is-active":L.value==="connect"}]),"aria-selected":L.value==="connect","data-testid":"tab-connect",onClick:Ee[2]||(Ee[2]=ce=>L.value="connect")},t.toDisplayString(t.unref(i)("conn.tab.connect")),11,o9)]),L.value==="storages"?(t.openBlock(),t.createElementBlock("section",i9,[t.unref(u)&&!t.unref(p)?(t.openBlock(),t.createElementBlock("p",l9,t.toDisplayString(t.unref(i)("conn.loading")),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.unref(h)===!1?(t.openBlock(),t.createElementBlock("div",s9,[t.createElementVNode("strong",null,t.toDisplayString(t.unref(i)("conn.denied.title")),1),t.createElementVNode("p",c9,t.toDisplayString(t.unref(_)==="anonymous"?t.unref(i)("conn.denied.anonymous"):t.unref(_)==="unreachable"?t.unref(i)("conn.denied.unreachable",{error:t.unref(f)??""}):t.unref(i)("conn.denied.none")),1),t.createElementVNode("p",d9,t.toDisplayString(t.unref(i)("conn.denied.guideHint")),1),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--primary",onClick:Ee[3]||(Ee[3]=ce=>L.value="connect")},t.toDisplayString(t.unref(i)("conn.denied.guideCta")),1)])):t.createCommentVNode("",!0),t.unref(h)===!1&&t.unref(c).length?(t.openBlock(),t.createElementBlock("div",u9,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(c),ce=>(t.openBlock(),t.createElementBlock("div",{key:ce,class:"fe-conn__card"},[t.createElementVNode("div",f9,[t.createElementVNode("strong",p9,t.toDisplayString(ce),1),t.createElementVNode("span",h9,t.toDisplayString(t.unref(i)("conn.visibleOnly")),1)])]))),128))])):t.createCommentVNode("",!0),t.unref(h)?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.unref(f)?(t.openBlock(),t.createElementBlock("p",m9,t.toDisplayString(t.unref(f)),1)):t.createCommentVNode("",!0),I.value.kind!=="none"?(t.openBlock(),t.createElementBlock("div",g9,[t.createElementVNode("h3",y9,t.toDisplayString(I.value.kind==="edit"?t.unref(i)("conn.form.editTitle",{name:V.value}):t.unref(i)("conn.form.newTitle")),1),t.createElementVNode("div",b9,[t.createElementVNode("label",v9,[t.createTextVNode(t.toDisplayString(t.unref(i)("conn.form.name")),1),Ee[14]||(Ee[14]=t.createElementVNode("span",{class:"fe-cfield__req"},"*",-1))]),t.withDirectives(t.createElementVNode("input",{id:"fe-conn-name","onUpdate:modelValue":Ee[4]||(Ee[4]=ce=>V.value=ce),class:"fe-cfield__input","data-testid":"storage-name",placeholder:t.unref(i)("conn.form.namePlaceholder")},null,8,k9),[[t.vModelText,V.value]]),t.createElementVNode("p",_9,t.toDisplayString(t.unref(i)("conn.form.nameHelp")),1)]),t.createElementVNode("div",w9,[t.createElementVNode("label",E9,t.toDisplayString(t.unref(i)("conn.form.driver")),1),t.createElementVNode("select",{id:"fe-conn-driver",class:"fe-cfield__input","data-testid":"storage-driver",value:$.value,disabled:I.value.kind==="edit",onChange:Ee[5]||(Ee[5]=ce=>Ae(ce.target.value))},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Be.value,ce=>(t.openBlock(),t.createElementBlock("option",{key:ce.value,value:ce.value},t.toDisplayString(ce.label),9,x9))),128))],40,S9),I.value.kind==="edit"?(t.openBlock(),t.createElementBlock("p",C9,t.toDisplayString(t.unref(i)("conn.form.driverLocked")),1)):t.createCommentVNode("",!0)]),t.createVNode(xm,{modelValue:q.value,"onUpdate:modelValue":Ee[6]||(Ee[6]=ce=>q.value=ce),fields:_e.value,locale:o.value,invalid:F.value},null,8,["modelValue","fields","locale","invalid"]),t.createElementVNode("label",N9,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":Ee[7]||(Ee[7]=ce=>R.value=ce),type:"checkbox","data-testid":"storage-readonly"},null,512),[[t.vModelCheckbox,R.value]]),t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("conn.form.readOnly")),1)]),t.createElementVNode("label",B9,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":Ee[8]||(Ee[8]=ce=>P.value=ce),type:"checkbox"},null,512),[[t.vModelCheckbox,P.value]]),t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("conn.form.enabled")),1)]),oe.value?(t.openBlock(),t.createElementBlock("p",T9,t.toDisplayString(oe.value),1)):t.createCommentVNode("",!0),Y.value?(t.openBlock(),t.createElementBlock("p",{key:1,class:t.normalizeClass(["fe-conn__testresult",Y.value.ok?"is-ok":"is-bad"]),"data-testid":"test-result"},t.toDisplayString(Y.value.ok?t.unref(i)("conn.form.testOk",{count:Y.value.object_count??0}):t.unref(i)("conn.form.testFail",{error:Y.value.error??""})),3)):t.createCommentVNode("",!0),t.createElementVNode("div",D9,[t.createElementVNode("button",{type:"button",class:"fe-conn__btn","data-testid":"storage-test",disabled:z.value,onClick:nt},t.toDisplayString(z.value?t.unref(i)("conn.form.testing"):t.unref(i)("conn.form.test")),9,A9),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--primary","data-testid":"storage-save",disabled:U.value,onClick:et},t.toDisplayString(U.value?t.unref(i)("conn.form.saving"):t.unref(i)("conn.form.save")),9,M9),t.createElementVNode("button",{type:"button",class:"fe-conn__btn",onClick:Ne},t.toDisplayString(t.unref(i)("conn.form.cancel")),1)])])):(t.openBlock(),t.createElementBlock("div",O9,[t.createElementVNode("div",I9,[t.createElementVNode("span",R9,t.toDisplayString(t.unref(i)("conn.list.count",{n:t.unref(l).length})),1),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--primary","data-testid":"storage-add",onClick:J}," + "+t.toDisplayString(t.unref(i)("conn.list.add")),1)]),t.unref(l).length?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("p",z9,t.toDisplayString(t.unref(i)("conn.list.empty")),1)),t.createElementVNode("div",L9,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(l),ce=>(t.openBlock(),t.createElementBlock("div",{key:ce.id,class:"fe-conn__card"},[t.createElementVNode("div",F9,[t.createElementVNode("div",$9,[t.createElementVNode("strong",P9,t.toDisplayString(ce.name),1),t.createElementVNode("span",V9,t.toDisplayString(ce.driver),1),ce.read_only?(t.openBlock(),t.createElementBlock("span",U9,t.toDisplayString(t.unref(i)("conn.list.readOnly")),1)):t.createCommentVNode("",!0),ce.enabled===!1?(t.openBlock(),t.createElementBlock("span",H9,t.toDisplayString(t.unref(i)("conn.list.disabled")),1)):t.createCommentVNode("",!0),$e(ce)?(t.openBlock(),t.createElementBlock("div",K9,t.toDisplayString($e(ce)),1)):t.createCommentVNode("",!0)]),t.createElementVNode("div",G9,[t.createElementVNode("button",{type:"button",class:"fe-conn__btn","data-testid":`storage-edit-${ce.name}`,onClick:ze=>te(ce)},t.toDisplayString(t.unref(i)("conn.list.edit")),9,q9),t.createElementVNode("button",{type:"button",class:"fe-conn__btn fe-conn__btn--danger",onClick:ze=>Ve(ce)},t.toDisplayString(he.value===ce.id?t.unref(i)("conn.list.confirm"):t.unref(i)("conn.list.remove")),9,W9)])])]))),128))])]))],64)):t.createCommentVNode("",!0)],64))])):(t.openBlock(),t.createElementBlock("section",j9,[t.createElementVNode("div",Y9,[t.unref(Oe).length>1?(t.openBlock(),t.createElementBlock("label",X9,[t.createElementVNode("span",Z9,t.toDisplayString(t.unref(i)("conn.guide.protocol")),1),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":Ee[9]||(Ee[9]=ce=>ee.value=ce),class:"fe-cfield__input","data-testid":"guide-protocol"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(Oe),ce=>(t.openBlock(),t.createElementBlock("option",{key:ce,value:ce},t.toDisplayString(t.unref(h7)(ce)),9,J9))),128))],512),[[t.vModelSelect,ee.value]])])):t.createCommentVNode("",!0),t.createElementVNode("label",Q9,[t.createElementVNode("span",eC,t.toDisplayString(t.unref(i)("conn.guide.storage")),1),t.withDirectives(t.createElementVNode("select",{"onUpdate:modelValue":Ee[10]||(Ee[10]=ce=>ye.value=ce),class:"fe-cfield__input","data-testid":"guide-storage"},[t.createElementVNode("option",tC,t.toDisplayString(t.unref(i)("conn.guide.allStorages")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(c),ce=>(t.openBlock(),t.createElementBlock("option",{key:ce,value:ce},t.toDisplayString(ce),9,nC))),128))],512),[[t.vModelSelect,ye.value]])])]),ee.value==="s3"?(t.openBlock(),t.createBlock(Bm,{key:0,config:e.config,storages:t.unref(c),onActive:Ee[11]||(Ee[11]=ce=>Pe.value=ce)},null,8,["config","storages"])):t.createCommentVNode("",!0),ee.value==="sftp"||ee.value==="ftps"?(t.openBlock(),t.createBlock(Dm,{key:1,config:e.config,"keys-visible":ee.value==="sftp",onActive:Ee[12]||(Ee[12]=ce=>it.value=ce)},null,8,["config","keys-visible"])):t.createCommentVNode("",!0),ee.value==="nfs"?(t.openBlock(),t.createBlock(Mm,{key:2,config:e.config,storages:t.unref(c),onActive:Ee[13]||(Ee[13]=ce=>Q.value=ce)},null,8,["config","storages"])):t.createCommentVNode("",!0),ee.value==="ftps"||ee.value==="webdav"||ee.value==="mount"?(t.openBlock(),t.createBlock(t0,{key:3,config:e.config,protocol:ee.value},null,8,["config","protocol"])):t.createCommentVNode("",!0),Ce.value?(t.openBlock(),t.createBlock(Cm,{key:4,guide:Ce.value,locale:o.value},null,8,["guide","locale"])):t.createCommentVNode("",!0)]))],2))}}),aC=["aria-label"],rC={class:"fe-cmdp__inputwrap"},oC=["placeholder"],iC=["aria-selected","onMouseenter","onClick"],lC={class:"fe-cmdp__icon","aria-hidden":"true"},sC={class:"fe-cmdp__label"},cC={class:"fe-cmdp__group"},dC=["aria-selected","onMouseenter","onClick"],uC={class:"fe-cmdp__icon","aria-hidden":"true"},fC={class:"fe-cmdp__label"},pC={class:"fe-cmdp__group"},hC={key:0,class:"fe-cmdp__loading"},mC=["aria-selected","onMouseenter","onClick"],gC={class:"fe-cmdp__icon","aria-hidden":"true"},yC={class:"fe-cmdp__hitbody"},bC={class:"fe-cmdp__hitline"},vC={class:"fe-cmdp__label"},kC={key:0,class:"fe-cmdp__badge"},_C=["title"],wC={key:1,class:"fe-cmdp__snippet"},EC={key:0,class:"fe-cmdp__mark"},SC={class:"fe-cmdp__group"},xC=["aria-selected","onMouseenter","onClick","onKeydown"],CC={class:"fe-cmdp__icon","aria-hidden":"true"},NC={class:"fe-cmdp__label"},BC=["title","aria-label","onClick"],TC={class:"fe-cmdp__group"},DC=["aria-selected","onMouseenter","onClick"],AC={class:"fe-cmdp__icon","aria-hidden":"true"},MC={class:"fe-cmdp__label"},OC={key:4,class:"fe-cmdp__empty"},IC={class:"fe-cmdp__hint"},RC=3,zC=8,LC=250,Rm="filex.saved-searches",zm=10,FC=t.defineComponent({__name:"CommandPalette",props:{open:{type:Boolean},locale:{},files:{},viewMode:{},canWrite:{type:Boolean},canGoUp:{type:Boolean},globalSearch:{type:Function},splitEnabled:{type:Boolean},initialQuery:{}},emits:["close","open-node","navigate","new-folder","upload","toggle-view","open-trash","refresh","go-up","open-hit","open-theme","open-shortcut-settings","start-tour","tab-new","split-toggle"],setup(e,{emit:n}){const a=e,r=n,{t:o,nodeDisplayName:i}=Dt(()=>a.locale),s=t.ref(""),l=t.ref(0),c=t.ref(null),d=t.ref(null);function u(F,U){if(!U)return 0;const z=F.toLocaleLowerCase(),Y=U.toLocaleLowerCase(),Q=z.indexOf(Y);if(Q===-1)return-1;let oe=100-Math.min(Q,50);return Q===0&&(oe+=40),oe-=Math.min(z.length,40)/4,oe}const p=t.computed(()=>{const F=s.value.trim();if(!F.includes("/"))return[];const U=F.replace(/^\/+|\/+$/g,"");return U?[{kind:"goto",id:`goto:${U}`,label:`${o("palette.goto")}: ${U}`,icon:"➜",path:U}]:[]}),f=t.computed(()=>{const F=s.value.trim(),U=a.files.map(z=>({f:z,name:i(z),s:u(i(z),F)})).filter(z=>z.s>=0);return F&&U.sort((z,Y)=>Y.s-z.s),U.slice(0,8).map(z=>({kind:"file",id:`file:${z.f.path}`,label:z.name,icon:z.f.type==="dir"?"πŸ“":"πŸ“„",node:z.f}))}),h=t.computed(()=>{const F=s.value.trim();return[{command:"new-folder",label:o("toolbar.new_folder"),icon:"πŸ“",enabled:a.canWrite!==!1},{command:"upload",label:o("toolbar.upload"),icon:"⬆",enabled:a.canWrite!==!1},{command:"toggle-view",label:o("cmd.view_toggle"),icon:a.viewMode==="list"?"β–¦":a.viewMode==="grid"?"β–£":"☰",enabled:!0},{command:"open-trash",label:o("cmd.trash"),icon:"πŸ—‘",enabled:!0},{command:"refresh",label:o("toolbar.refresh"),icon:"⟳",enabled:!0},{command:"go-up",label:o("toolbar.go_up"),icon:"↑",enabled:a.canGoUp!==!1},{command:"open-theme",label:o("theme.menu"),icon:"🎨",enabled:!0},{command:"open-shortcut-settings",label:o("shortcuts.settings.menu"),icon:"⌨",enabled:!0},{command:"start-tour",label:o("tour.restart"),icon:"πŸŽ“",enabled:!0},{command:"tab-new",label:o("cmd.tab_new"),icon:"⧉",enabled:!0},{command:"split-toggle",label:o("cmd.split_toggle"),icon:"β—«",enabled:a.splitEnabled!==!1}].filter(z=>z.enabled&&u(z.label,F)>=0).map(z=>({kind:"command",id:`cmd:${z.command}`,label:z.label,icon:z.icon,command:z.command}))}),_=t.ref([]),m=t.ref(!1);let k,g=0;function v(F){k&&clearTimeout(k);const U=a.globalSearch;if(!U||F.length<RC){_.value=[],m.value=!1;return}m.value=!0,k=setTimeout(async()=>{const z=++g;try{const Y=await U(F);if(z!==g)return;_.value=Array.isArray(Y)?Y.slice(0,zC):[]}catch{z===g&&(_.value=[])}finally{z===g&&(m.value=!1)}},LC)}function y(F){const U=String(F.path??"").replace(/^\/+|\/+$/g,""),z=U.lastIndexOf("/"),Y=z===-1?"":U.slice(0,z),Q=typeof F.storage=="string"&&F.storage||typeof F.storage_name=="string"&&F.storage_name||"";return Q&&Y?`${Q}/${Y}`:Q||Y||"/"}const b=t.computed(()=>_.value.map(F=>({kind:"hit",id:`hit:${F.storage_id??""}:${F.path??""}:${F.id??""}`,label:String(F.name??F.path??""),icon:F.type==="dir"?"πŸ“":"πŸ“„",hit:F,crumb:y(F),inContent:jd(F.matched),snippet:typeof F.snippet=="string"?F.snippet:""}))),S=t.ref([]);function N(){try{const F=localStorage.getItem(Rm);if(!F)return[];const U=JSON.parse(F);return Array.isArray(U)?U.filter(z=>typeof z=="string"&&z.trim()!=="").slice(0,zm):[]}catch{return[]}}function T(F){S.value=F.slice(0,zm);try{localStorage.setItem(Rm,JSON.stringify(S.value))}catch{}}function E(F){const U=F.trim();if(!U)return;const z=S.value.filter(Y=>Y!==U);z.unshift(U),T(z)}function w(F){T(S.value.filter(U=>U!==F)),l.value>=M.value.length&&(l.value=Math.max(0,M.value.length-1))}const C=t.computed(()=>{const F=s.value.trim(),U=[];F&&!S.value.includes(F)&&U.push({kind:"save",id:`save:${F}`,label:`${o("palette.save")}: ${F}`,icon:"πŸ’Ύ",query:F});const z=S.value.map(Y=>({s:Y,sc:u(Y,F)})).filter(Y=>Y.sc>=0||!F);for(const Y of z)U.push({kind:"saved",id:`saved:${Y.s}`,label:Y.s,icon:"πŸ”–",query:Y.s});return U}),M=t.computed(()=>[...p.value,...f.value,...b.value,...C.value,...h.value]),L=t.computed(()=>p.value.length),I=t.computed(()=>L.value+f.value.length),V=t.computed(()=>I.value+b.value.length),$=t.computed(()=>V.value+C.value.length);t.watch(s,F=>{l.value=0,v(F.trim())});function R(F){const U=M.value.length;U&&(l.value=(l.value+F+U)%U,t.nextTick(()=>{var z,Y;(Y=(z=d.value)==null?void 0:z.querySelector(".is-active"))==null||Y.scrollIntoView({block:"nearest"})}))}function P(F){const U=F??M.value[l.value];if(U){if(U.kind==="saved"){s.value=U.query,t.nextTick(()=>{var z;return(z=c.value)==null?void 0:z.focus()});return}if(U.kind==="save"){E(U.query),t.nextTick(()=>{var z;return(z=c.value)==null?void 0:z.focus()});return}if(r("close"),U.kind==="hit"){r("open-hit",U.hit);return}if(U.kind==="file")r("open-node",U.node);else if(U.kind==="goto")r("navigate",U.path);else switch(U.command){case"new-folder":r("new-folder");break;case"upload":r("upload");break;case"toggle-view":r("toggle-view");break;case"open-trash":r("open-trash");break;case"refresh":r("refresh");break;case"go-up":r("go-up");break;case"open-theme":r("open-theme");break;case"open-shortcut-settings":r("open-shortcut-settings");break;case"start-tour":r("start-tour");break;case"tab-new":r("tab-new");break;case"split-toggle":r("split-toggle");break}}}function q(F){if(a.open)switch(F.key){case"ArrowDown":F.preventDefault(),F.stopPropagation(),R(1);break;case"ArrowUp":F.preventDefault(),F.stopPropagation(),R(-1);break;case"Enter":F.preventDefault(),F.stopPropagation(),P();break;case"Escape":F.preventDefault(),F.stopPropagation(),r("close");break}}return t.watch(()=>a.open,F=>{F?(s.value=a.initialQuery??"",l.value=0,_.value=[],m.value=!1,S.value=N(),document.addEventListener("keydown",q,!0),t.nextTick(()=>{var U,z;(U=c.value)==null||U.focus(),(z=c.value)==null||z.select()})):(k&&clearTimeout(k),document.removeEventListener("keydown",q,!0))}),t.onBeforeUnmount(()=>{k&&clearTimeout(k),document.removeEventListener("keydown",q,!0)}),(F,U)=>(t.openBlock(),t.createBlock(t.Transition,{name:"fe-modal"},{default:t.withCtx(()=>[e.open?(t.openBlock(),t.createElementBlock("div",{key:0,class:"fe-modal__backdrop fe-cmdp__backdrop",role:"presentation",onClick:U[2]||(U[2]=z=>r("close"))},[t.createElementVNode("div",{class:"fe-cmdp",role:"dialog","aria-modal":"true","aria-label":t.unref(o)("palette.placeholder"),onClick:U[1]||(U[1]=t.withModifiers(()=>{},["stop"]))},[t.createElementVNode("div",rC,[U[3]||(U[3]=t.createElementVNode("svg",{class:"fe-cmdp__glyph",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","aria-hidden":"true"},[t.createElementVNode("circle",{cx:"7",cy:"7",r:"4.5"}),t.createElementVNode("path",{d:"m10.5 10.5 3.5 3.5"})],-1)),t.withDirectives(t.createElementVNode("input",{ref_key:"inputEl",ref:c,"onUpdate:modelValue":U[0]||(U[0]=z=>s.value=z),type:"text",class:"fe-cmdp__input",placeholder:t.unref(o)("palette.placeholder"),autocomplete:"off",spellcheck:"false"},null,8,oC),[[t.vModelText,s.value]])]),t.createElementVNode("div",{ref_key:"listEl",ref:d,class:"fe-cmdp__list",role:"listbox"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(p.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item",{"is-active":Y===l.value}]),role:"option","aria-selected":Y===l.value,onMouseenter:Q=>l.value=Y,onClick:Q=>P(z)},[t.createElementVNode("span",lC,t.toDisplayString(z.icon),1),t.createElementVNode("span",sC,t.toDisplayString(z.label),1)],42,iC))),128)),f.value.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createElementVNode("div",cC,t.toDisplayString(t.unref(o)("palette.files")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item",{"is-active":L.value+Y===l.value}]),role:"option","aria-selected":L.value+Y===l.value,onMouseenter:Q=>l.value=L.value+Y,onClick:Q=>P(z)},[t.createElementVNode("span",uC,t.toDisplayString(z.icon),1),t.createElementVNode("span",fC,t.toDisplayString(z.label),1)],42,dC))),128))],64)):t.createCommentVNode("",!0),b.value.length||m.value?(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("div",pC,t.toDisplayString(t.unref(o)("palette.everywhere")),1),m.value&&!b.value.length?(t.openBlock(),t.createElementBlock("div",hC,t.toDisplayString(t.unref(o)("palette.searching")),1)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(b.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item fe-cmdp__item--hit",{"is-active":I.value+Y===l.value}]),role:"option","aria-selected":I.value+Y===l.value,onMouseenter:Q=>l.value=I.value+Y,onClick:Q=>P(z)},[t.createElementVNode("span",gC,t.toDisplayString(z.icon),1),t.createElementVNode("span",yC,[t.createElementVNode("span",bC,[t.createElementVNode("span",vC,t.toDisplayString(z.label),1),z.inContent?(t.openBlock(),t.createElementBlock("span",kC,t.toDisplayString(t.unref(o)("search.in_content")),1)):t.createCommentVNode("",!0)]),z.crumb?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-cmdp__crumb",title:z.crumb},t.toDisplayString(z.crumb),9,_C)):t.createCommentVNode("",!0),z.snippet?(t.openBlock(),t.createElementBlock("span",wC,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(ji)(z.snippet),(Q,oe)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:oe},[Q.match?(t.openBlock(),t.createElementBlock("mark",EC,t.toDisplayString(Q.text),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(Q.text),1)],64))],64))),128))])):t.createCommentVNode("",!0)])],42,mC))),128))],64)):t.createCommentVNode("",!0),C.value.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createElementVNode("div",SC,t.toDisplayString(t.unref(o)("palette.saved")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(C.value,(z,Y)=>(t.openBlock(),t.createElementBlock("div",{key:z.id,class:t.normalizeClass(["fe-cmdp__item fe-cmdp__item--saved",{"is-active":V.value+Y===l.value}]),role:"option","aria-selected":V.value+Y===l.value,tabindex:"-1",onMouseenter:Q=>l.value=V.value+Y,onClick:Q=>P(z),onKeydown:t.withKeys(t.withModifiers(Q=>P(z),["prevent"]),["enter"])},[t.createElementVNode("span",CC,t.toDisplayString(z.icon),1),t.createElementVNode("span",NC,t.toDisplayString(z.label),1),z.kind==="saved"?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-cmdp__del",title:t.unref(o)("palette.saved.delete"),"aria-label":t.unref(o)("palette.saved.delete"),onClick:t.withModifiers(Q=>w(z.query),["stop"])},"πŸ—‘",8,BC)):t.createCommentVNode("",!0)],42,xC))),128))],64)):t.createCommentVNode("",!0),h.value.length?(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[t.createElementVNode("div",TC,t.toDisplayString(t.unref(o)("palette.commands")),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(h.value,(z,Y)=>(t.openBlock(),t.createElementBlock("button",{key:z.id,type:"button",class:t.normalizeClass(["fe-cmdp__item",{"is-active":$.value+Y===l.value}]),role:"option","aria-selected":$.value+Y===l.value,onMouseenter:Q=>l.value=$.value+Y,onClick:Q=>P(z)},[t.createElementVNode("span",AC,t.toDisplayString(z.icon),1),t.createElementVNode("span",MC,t.toDisplayString(z.label),1)],42,DC))),128))],64)):t.createCommentVNode("",!0),M.value.length===0&&!m.value?(t.openBlock(),t.createElementBlock("div",OC,t.toDisplayString(t.unref(o)("palette.empty")),1)):t.createCommentVNode("",!0)],512),t.createElementVNode("div",IC,t.toDisplayString(t.unref(o)("palette.hint")),1)],8,aC)])):t.createCommentVNode("",!0)]),_:1}))}}),$C=["aria-labelledby","aria-label"],PC={key:0,class:"fe-modal__head"},VC={class:"fe-modal__body"},UC={key:1,class:"fe-modal__actions"},Lm='input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),a[href],[tabindex]:not([tabindex="-1"])',va=t.defineComponent({__name:"Modal",props:{open:{type:Boolean},title:{},size:{},closeOnBackdrop:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,o=t.ref(null);let i=0;const s=`fe-modal-title-${++i}-${Math.random().toString(36).slice(2,7)}`;let l=null;t.watch(()=>a.open,u=>{var p;u?(l=document.activeElement??null,document.addEventListener("keydown",c),setTimeout(()=>{var h;const f=(h=o.value)==null?void 0:h.querySelector(Lm);f==null||f.focus()},30)):(document.removeEventListener("keydown",c),(p=l==null?void 0:l.focus)==null||p.call(l),l=null)}),t.onBeforeUnmount(()=>document.removeEventListener("keydown",c));function c(u){if(u.key==="Escape"){r("close");return}if(u.key==="Tab"&&o.value){const p=Array.from(o.value.querySelectorAll(Lm)).filter(m=>m.offsetParent!==null||m===document.activeElement);if(p.length===0)return;const f=p[0],h=p[p.length-1],_=document.activeElement;u.shiftKey&&(_===f||!o.value.contains(_))?(u.preventDefault(),h.focus()):!u.shiftKey&&(_===h||!o.value.contains(_))&&(u.preventDefault(),f.focus())}}function d(){a.closeOnBackdrop!==!1&&r("close")}return(u,p)=>(t.openBlock(),t.createBlock(t.Transition,{name:"fe-modal"},{default:t.withCtx(()=>[e.open?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.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:d},[t.createElementVNode("div",{ref_key:"cardEl",ref:o,class:t.normalizeClass(["fe-modal__card",[`fe-modal__card--${e.size||"md"}`,e.chromeless&&"fe-modal__card--chromeless"]]),role:"dialog","aria-modal":"true","aria-labelledby":e.title&&!e.chromeless?s:void 0,"aria-label":(!e.title||e.chromeless)&&e.title||void 0,onClick:p[1]||(p[1]=t.withModifiers(()=>{},["stop"]))},[e.title&&!e.chromeless?(t.openBlock(),t.createElementBlock("header",PC,[t.createElementVNode("h2",{id:s,class:"fe-modal__title"},t.toDisplayString(e.title),1),t.createElementVNode("button",{type:"button",class:"fe-modal__close","aria-label":"Close",onClick:p[0]||(p[0]=f=>r("close"))},"Γ—")])):t.createCommentVNode("",!0),t.createElementVNode("div",VC,[t.renderSlot(u.$slots,"default")]),u.$slots.actions&&!e.chromeless?(t.openBlock(),t.createElementBlock("footer",UC,[t.renderSlot(u.$slots,"actions")])):t.createCommentVNode("",!0)],10,$C)],2)):t.createCommentVNode("",!0)]),_:3}))}}),HC={class:"fe-shortcuts"},KC={class:"fe-shortcuts__heading"},GC={class:"fe-shortcuts__table"},qC={class:"fe-shortcuts__keys"},WC={key:0,class:"fe-shortcuts__unbound"},jC={class:"fe-kbd"},YC={key:0,class:"fe-shortcuts__or","aria-hidden":"true"},XC={class:"fe-shortcuts__desc"},ZC=["title"],JC=t.defineComponent({__name:"ShortcutsHelp",props:{open:{type:Boolean},locale:{}},emits:["close","customize"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=Bd(),s=t.computed(()=>{const l=[],c=new Map;for(const d of i.value)c.has(d.groupKey)||(c.set(d.groupKey,[]),l.push(d.groupKey)),c.get(d.groupKey).push(d);return l.map(d=>({key:d,items:c.get(d)}))});return(l,c)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("shortcuts.title"),size:"md",onClose:c[2]||(c[2]=d=>r("close"))},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:c[0]||(c[0]=d=>r("customize"))}," ⌨ "+t.toDisplayString(t.unref(o)("shortcuts.customize")),1),t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:c[1]||(c[1]=d=>r("close"))},t.toDisplayString(t.unref(o)("viewer.close")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",HC,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,d=>(t.openBlock(),t.createElementBlock("section",{key:d.key,class:"fe-shortcuts__group"},[t.createElementVNode("h3",KC,t.toDisplayString(t.unref(o)(d.key)),1),t.createElementVNode("div",GC,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.items,u=>(t.openBlock(),t.createElementBlock("div",{key:u.id,class:"fe-shortcuts__row"},[t.createElementVNode("span",qC,[u.keys.length===0?(t.openBlock(),t.createElementBlock("span",WC,t.toDisplayString(t.unref(o)("shortcuts.settings.unbound")),1)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(u.keys,(p,f)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:p},[t.createElementVNode("kbd",jC,t.toDisplayString(p),1),f<u.keys.length-1?(t.openBlock(),t.createElementBlock("span",YC,"/")):t.createCommentVNode("",!0)],64))),128))]),t.createElementVNode("span",XC,[t.createTextVNode(t.toDisplayString(t.unref(o)(u.labelKey))+" ",1),u.overridden?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-shortcuts__custom",title:t.unref(o)("shortcuts.settings.customized")},"●",8,ZC)):t.createCommentVNode("",!0)])]))),128))])]))),128))])]),_:1},8,["open","title"]))}}),Yi="filex.theme",ka="default",ps=[{id:ka,nameKey:"theme.name.default",light:{"--fe-bg":"#ffffff","--fe-bg-elev":"#f7f8fa","--fe-bg-hover":"#edf0f5","--fe-bg-selected":"#dfe8ff","--fe-border":"#e2e6ed","--fe-border-strong":"#c7ced9","--fe-text":"#1a1e27","--fe-text-muted":"#5a6475","--fe-text-on-primary":"#ffffff","--fe-primary":"#3b82f6","--fe-primary-hover":"#2563eb","--fe-danger":"#dc2626","--fe-danger-hover":"#b91c1c"},dark:{"--fe-bg":"#0f1419","--fe-bg-elev":"#161c25","--fe-bg-hover":"#1f2733","--fe-bg-selected":"#23324a","--fe-border":"#2a323e","--fe-border-strong":"#3a4453","--fe-text":"#e5e9f0","--fe-text-muted":"#8b95a7","--fe-text-on-primary":"#ffffff","--fe-primary":"#60a5fa","--fe-primary-hover":"#3b82f6","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"night",nameKey:"theme.name.night",light:{"--fe-bg":"#f6f8fd","--fe-bg-elev":"#edf1fa","--fe-bg-hover":"#e2e9f7","--fe-bg-selected":"#d2ddf4","--fe-border":"#d6deee","--fe-border-strong":"#aebfda","--fe-text":"#151f38","--fe-text-muted":"#49587a","--fe-text-on-primary":"#ffffff","--fe-primary":"#2c4a9e","--fe-primary-hover":"#213a80","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#0a1024","--fe-bg-elev":"#111a35","--fe-bg-hover":"#1a2547","--fe-bg-selected":"#243665","--fe-border":"#26335a","--fe-border-strong":"#3c4e84","--fe-text":"#dfe6f7","--fe-text-muted":"#96a5cc","--fe-text-on-primary":"#050b26","--fe-primary":"#6d8dfc","--fe-primary-hover":"#5273f2","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"forest",nameKey:"theme.name.forest",light:{"--fe-bg":"#f5faf5","--fe-bg-elev":"#eaf3eb","--fe-bg-hover":"#dcecdf","--fe-bg-selected":"#c8e2ce","--fe-border":"#d2e2d4","--fe-border-strong":"#a2c3a8","--fe-text":"#182b1d","--fe-text-muted":"#42604a","--fe-text-on-primary":"#ffffff","--fe-primary":"#2b7a41","--fe-primary-hover":"#226334","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#0d1611","--fe-bg-elev":"#132019","--fe-bg-hover":"#1b2d23","--fe-bg-selected":"#264532","--fe-border":"#28402f","--fe-border-strong":"#3e5f49","--fe-text":"#dcebe0","--fe-text-muted":"#93b09b","--fe-text-on-primary":"#04180b","--fe-primary":"#54c17a","--fe-primary-hover":"#3fae66","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"amber",nameKey:"theme.name.amber",light:{"--fe-bg":"#fdf9f0","--fe-bg-elev":"#f7efdd","--fe-bg-hover":"#f0e3c8","--fe-bg-selected":"#ead6ab","--fe-border":"#e6dabf","--fe-border-strong":"#c6b184","--fe-text":"#33270f","--fe-text-muted":"#655631","--fe-text-on-primary":"#ffffff","--fe-primary":"#9a4b00","--fe-primary-hover":"#7c3c00","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#191307","--fe-bg-elev":"#231a0c","--fe-bg-hover":"#2f2312","--fe-bg-selected":"#44331b","--fe-border":"#3b2e17","--fe-border-strong":"#5b4a29","--fe-text":"#f2e7d4","--fe-text-muted":"#bda887","--fe-text-on-primary":"#2a1c02","--fe-primary":"#f5a524","--fe-primary-hover":"#ffb84d","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"lilac",nameKey:"theme.name.lilac",light:{"--fe-bg":"#faf7fd","--fe-bg-elev":"#f2ecfa","--fe-bg-hover":"#e8ddf5","--fe-bg-selected":"#dccaf0","--fe-border":"#e1d6ee","--fe-border-strong":"#bda6d9","--fe-text":"#241a33","--fe-text-muted":"#584871","--fe-text-on-primary":"#ffffff","--fe-primary":"#7231e0","--fe-primary-hover":"#5f21c4","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#130f1c","--fe-bg-elev":"#1b1527","--fe-bg-hover":"#261d37","--fe-bg-selected":"#37294f","--fe-border":"#302546","--fe-border-strong":"#4b3a6d","--fe-text":"#e9e2f5","--fe-text-muted":"#a999c5","--fe-text-on-primary":"#180d33","--fe-primary":"#b197fa","--fe-primary-hover":"#9c7cf4","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"contrast",nameKey:"theme.name.contrast",light:{"--fe-bg":"#ffffff","--fe-bg-elev":"#f2f2f2","--fe-bg-hover":"#e0e0e0","--fe-bg-selected":"#c9dcff","--fe-border":"#5c5c5c","--fe-border-strong":"#000000","--fe-text":"#000000","--fe-text-muted":"#3d3d3d","--fe-text-on-primary":"#ffffff","--fe-primary":"#003d99","--fe-primary-hover":"#002a6b","--fe-danger":"#a80000","--fe-danger-hover":"#7d0000","--fe-shadow":"0 0 0 1px #000000, 0 10px 32px rgba(0, 0, 0, 0.25)","--fe-shadow-sm":"0 0 0 1px #000000"},dark:{"--fe-bg":"#000000","--fe-bg-elev":"#0d0d0d","--fe-bg-hover":"#212121","--fe-bg-selected":"#003d80","--fe-border":"#8f8f8f","--fe-border-strong":"#ffffff","--fe-text":"#ffffff","--fe-text-muted":"#d6d6d6","--fe-text-on-primary":"#001430","--fe-primary":"#7ab8ff","--fe-primary-hover":"#9ccaff","--fe-danger":"#ff7575","--fe-danger-hover":"#ff9999","--fe-shadow":"0 0 0 1px #ffffff, 0 12px 32px rgba(0, 0, 0, 0.65)","--fe-shadow-sm":"0 0 0 1px #ffffff"}},{id:"gray",nameKey:"theme.name.gray",light:{"--fe-bg":"#f7f7f8","--fe-bg-elev":"#efeff1","--fe-bg-hover":"#e4e4e7","--fe-bg-selected":"#d6d7db","--fe-border":"#dfdfe2","--fe-border-strong":"#b9b9c0","--fe-text":"#26272b","--fe-text-muted":"#585a63","--fe-text-on-primary":"#ffffff","--fe-primary":"#4b4b54","--fe-primary-hover":"#38383f","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f"},dark:{"--fe-bg":"#131316","--fe-bg-elev":"#1b1b1f","--fe-bg-hover":"#26262b","--fe-bg-selected":"#35353c","--fe-border":"#2d2d33","--fe-border-strong":"#4a4a52","--fe-text":"#e6e6e9","--fe-text-muted":"#a4a4ad","--fe-text-on-primary":"#17171b","--fe-primary":"#b0b0ba","--fe-primary-hover":"#c4c4cd","--fe-danger":"#f87171","--fe-danger-hover":"#ef4444"}},{id:"terminal",nameKey:"theme.name.terminal",light:{"--fe-bg":"#f3f9f4","--fe-bg-elev":"#e5f2e8","--fe-bg-hover":"#d5ead9","--fe-bg-selected":"#bce3c6","--fe-border":"#cbe2d1","--fe-border-strong":"#94c2a0","--fe-text":"#0c2913","--fe-text-muted":"#31573c","--fe-text-on-primary":"#ffffff","--fe-primary":"#116b33","--fe-primary-hover":"#0c5427","--fe-danger":"#c62828","--fe-danger-hover":"#a51f1f","--fe-font":'ui-monospace, "SF Mono", Consolas, Menlo, monospace'},dark:{"--fe-bg":"#050d07","--fe-bg-elev":"#0a1710","--fe-bg-hover":"#112418","--fe-bg-selected":"#1a3a26","--fe-border":"#1c3a2a","--fe-border-strong":"#316144","--fe-text":"#4fdd8b","--fe-text-muted":"#38a668","--fe-text-on-primary":"#03180a","--fe-primary":"#25c95e","--fe-primary-hover":"#4fdd8b","--fe-danger":"#ff6b62","--fe-danger-hover":"#ff8d86","--fe-font":'ui-monospace, "SF Mono", Consolas, Menlo, monospace'}}];function $o(e){return ps.find(n=>n.id===e)}const QC=Array.from(new Set(ps.flatMap(e=>[...Object.keys(e.light),...Object.keys(e.dark)])));function eN(){try{const e=localStorage.getItem(Yi);return e&&$o(e)?e:ka}catch{return ka}}const n0=t.ref(typeof window>"u"?ka:eN());function Fm(e){const n=$o(e)?e:ka;n0.value=n;try{n===ka?localStorage.removeItem(Yi):localStorage.setItem(Yi,n)}catch{}}function $m(){return{themeId:n0,setTheme:Fm}}const hs="filex.thememode",a0=["host","auto","light","dark"];function tN(){try{const e=localStorage.getItem(hs);return e&&a0.includes(e)?e:"host"}catch{return"host"}}const r0=t.ref(typeof window>"u"?"host":tN());function nN(e){const n=a0.includes(e)?e:"host";r0.value=n;try{n==="host"?localStorage.removeItem(hs):localStorage.setItem(hs,n)}catch{}}function aN(){return{themeMode:r0,setThemeMode:nN}}if(typeof window<"u")try{window.addEventListener("storage",e=>{if(e.key!==hs)return;const n=e.newValue;r0.value=n&&a0.includes(n)?n:"host"})}catch{}if(typeof window<"u")try{window.addEventListener("storage",e=>{e.key===Yi&&(n0.value=e.newValue&&$o(e.newValue)?e.newValue:ka)})}catch{}function Pm(e,n,a){for(const i of QC)e.style.removeProperty(i);if(n===ka)return;const r=$o(n);if(!r)return;const o=a?r.dark:r.light;for(const[i,s]of Object.entries(o))e.style.setProperty(i,s)}const Vm="data-filex-theme";function Um(e){return Object.entries(e).map(([n,a])=>`${n}:${a};`).join("")}function Hm(e){const n=Um(e.light),a=Um(e.dark),r=[".fe--theme-dark",":root[data-theme='dark'] .fe",".fe.fe--theme-dark",":root.dark",".dark",":root.dark .fe",".dark .fe",".fe-ctx-backdrop--theme-dark",".fe-ctx-backdrop--theme-auto[data-prefers-dark='1']"].join(","),o=[".fe:not(.fe--theme-light)",".fe-ctx-backdrop--theme-auto:not(.fe-ctx-backdrop--theme-light)"].join(",");return`/* filex theme: ${e.id} */:root,.fe{${n}}${r}{${a}}@media (prefers-color-scheme: dark){${o}{${a}}}`}function Km(e){if(typeof document>"u")return;let n=document.head.querySelector(`style[${Vm}]`);const a=e===ka?void 0:$o(e);if(!a){n&&(n.textContent="");return}n?n!==document.head.lastElementChild&&document.head.appendChild(n):(n=document.createElement("style"),n.setAttribute(Vm,""),document.head.appendChild(n));const r=Hm(a);n.textContent!==r&&(n.textContent=r)}const rN=["aria-label"],oN={class:"fe-thememode__label"},iN={class:"fe-thememode__seg"},lN=["aria-pressed","onClick"],sN={class:"fe-ficon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},cN={key:1,d:"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"},dN={class:"fe-themes__hint"},uN=["aria-label"],fN=["aria-selected","onClick"],pN={class:"fe-themecard__name"},hN=["title"],mN=["disabled"],Gm=t.defineComponent({__name:"ThemeGallery",props:{open:{type:Boolean},locale:{},theme:{},dark:{type:Boolean},current:{},mode:{},hostMode:{}},emits:["close","select","mode"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=[{id:"light",labelKey:"theme.mode.light"},{id:"dark",labelKey:"theme.mode.dark"},{id:"auto",labelKey:"theme.mode.auto"}],s=t.computed(()=>a.mode==="host"?a.hostMode:a.mode);function l(d){return a.dark?d.dark:d.light}const c=ka;return(d,u)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("theme.title"),size:"lg",theme:e.theme,onClose:u[2]||(u[2]=p=>r("close"))},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn",disabled:e.current===t.unref(c),onClick:u[0]||(u[0]=p=>r("select",t.unref(c)))},t.toDisplayString(t.unref(o)("theme.reset")),9,mN),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:u[1]||(u[1]=p=>r("close"))},t.toDisplayString(t.unref(o)("theme.close")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",{class:"fe-thememode",role:"group","aria-label":t.unref(o)("theme.mode.label")},[t.createElementVNode("span",oN,t.toDisplayString(t.unref(o)("theme.mode.label")),1),t.createElementVNode("div",iN,[(t.openBlock(),t.createElementBlock(t.Fragment,null,t.renderList(i,p=>t.createElementVNode("button",{key:p.id,type:"button",class:t.normalizeClass(["fe-thememode__opt",{"is-active":s.value===p.id}]),"aria-pressed":s.value===p.id,onClick:f=>r("mode",p.id)},[(t.openBlock(),t.createElementBlock("svg",sN,[p.id==="light"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[u[3]||(u[3]=t.createElementVNode("circle",{cx:"12",cy:"12",r:"4"},null,-1)),u[4]||(u[4]=t.createElementVNode("path",{d:"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"},null,-1))],64)):p.id==="dark"?(t.openBlock(),t.createElementBlock("path",cN)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[u[5]||(u[5]=t.createElementVNode("circle",{cx:"12",cy:"12",r:"9"},null,-1)),u[6]||(u[6]=t.createElementVNode("path",{d:"M12 3a9 9 0 0 1 0 18z",fill:"currentColor",stroke:"none"},null,-1))],64))])),t.createElementVNode("span",null,t.toDisplayString(t.unref(o)(p.labelKey)),1)],10,lN)),64))])],8,rN),t.createElementVNode("p",dN,t.toDisplayString(t.unref(o)("theme.hint")),1),t.createElementVNode("div",{class:"fe-themes",role:"listbox","aria-label":t.unref(o)("theme.title")},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(ps),p=>(t.openBlock(),t.createElementBlock("button",{key:p.id,type:"button",class:t.normalizeClass(["fe-themecard",{"is-selected":p.id===e.current}]),role:"option","aria-selected":p.id===e.current,style:t.normalizeStyle(l(p)),onClick:f=>r("select",p.id)},[u[7]||(u[7]=t.createElementVNode("span",{class:"fe-themecard__preview","aria-hidden":"true"},[t.createElementVNode("span",{class:"fe-themecard__topbar"},[t.createElementVNode("span",{class:"fe-themecard__chip fe-themecard__chip--primary"}),t.createElementVNode("span",{class:"fe-themecard__chip"}),t.createElementVNode("span",{class:"fe-themecard__chip fe-themecard__chip--ghost"})]),t.createElementVNode("span",{class:"fe-themecard__row"},[t.createElementVNode("span",{class:"fe-themecard__dot"}),t.createElementVNode("span",{class:"fe-themecard__line",style:{width:"62%"}})]),t.createElementVNode("span",{class:"fe-themecard__row fe-themecard__row--selected"},[t.createElementVNode("span",{class:"fe-themecard__dot fe-themecard__dot--primary"}),t.createElementVNode("span",{class:"fe-themecard__line",style:{width:"44%"}})]),t.createElementVNode("span",{class:"fe-themecard__row"},[t.createElementVNode("span",{class:"fe-themecard__dot fe-themecard__dot--muted"}),t.createElementVNode("span",{class:"fe-themecard__line fe-themecard__line--muted",style:{width:"74%"}})])],-1)),t.createElementVNode("span",pN,[t.createTextVNode(t.toDisplayString(t.unref(o)(p.nameKey))+" ",1),p.id===e.current?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-themecard__check",title:t.unref(o)("theme.selected")},"βœ“",8,hN)):t.createCommentVNode("",!0)])],14,fN))),128))],8,uN)]),_:1},8,["open","title","theme"]))}}),gN={class:"fe-shortset"},yN={class:"fe-shortset__topbar"},bN={class:"fe-shortset__hint"},vN=["disabled"],kN={class:"fe-shortcuts__heading"},_N={class:"fe-shortset__row"},wN={class:"fe-shortset__label"},EN=["title"],SN={class:"fe-shortset__keys"},xN={key:0,class:"fe-shortset__capture",role:"status"},CN={key:0,class:"fe-shortcuts__unbound"},NN={class:"fe-kbd"},BN={key:0,class:"fe-shortcuts__or","aria-hidden":"true"},TN={class:"fe-shortset__actions"},DN=["onClick"],AN=["title","aria-label","onClick"],MN={key:1,class:"fe-shortset__fixed"},ON={key:0,class:"fe-shortset__conflict",role:"alert"},IN={class:"fe-shortset__conflict-msg"},RN={class:"fe-kbd"},zN={class:"fe-shortset__conflict-actions"},qm=t.defineComponent({__name:"ShortcutSettings",props:{open:{type:Boolean},locale:{},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=Bd(),s=t.computed(()=>{const b=[],S=new Map;for(const N of i.value)S.has(N.groupKey)||(S.set(N.groupKey,[]),b.push(N.groupKey)),S.get(N.groupKey).push(N);return b.map(N=>({key:N,items:S.get(N)}))}),l=t.computed(()=>i.value.some(b=>b.overridden)),c=t.ref(null),d=t.ref(null);function u(b){const S=Er.find(N=>N.id===b);return S?o(S.labelKey):b}function p(b){d.value=null,c.value=b}function f(){c.value=null}function h(b,S){if(c.value=null,S===Ui(b))return;const N=bh(S,b);if(N){d.value={id:b,combo:S,conflictId:N.id,fixed:N.fixed};return}Zl(b,S)}function _(){const b=d.value;!b||b.fixed||(Zl(b.conflictId,""),Zl(b.id,b.combo),d.value=null)}function m(){d.value=null}function k(b){d.value=null,gh(b)}function g(){d.value=null,c.value=null,yh()}function v(b){if(c.value){if(b.preventDefault(),b.stopPropagation(),b.key==="Escape"){f();return}const S=Nd(b);if(!S)return;h(c.value,S);return}b.key==="Escape"||b.key==="Tab"||b.stopPropagation()}t.watch(()=>a.open,b=>{b?window.addEventListener("keydown",v,!0):(window.removeEventListener("keydown",v,!0),c.value=null,d.value=null)}),t.onBeforeUnmount(()=>window.removeEventListener("keydown",v,!0));function y(){if(c.value){f();return}r("close")}return(b,S)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("shortcuts.settings.title"),size:"lg",theme:e.theme,onClose:y},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:y},t.toDisplayString(t.unref(o)("viewer.close")),1)]),default:t.withCtx(()=>[t.createElementVNode("div",gN,[t.createElementVNode("div",yN,[t.createElementVNode("p",bN,t.toDisplayString(t.unref(o)("shortcuts.settings.hint")),1),t.createElementVNode("button",{type:"button",class:"fe-btn fe-shortset__reset-all",disabled:!l.value,onClick:g}," β†Ί "+t.toDisplayString(t.unref(o)("shortcuts.settings.reset_all")),9,vN)]),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,N=>(t.openBlock(),t.createElementBlock("section",{key:N.key,class:"fe-shortset__group"},[t.createElementVNode("h3",kN,t.toDisplayString(t.unref(o)(N.key)),1),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(N.items,T=>{var E;return t.openBlock(),t.createElementBlock("div",{key:T.id,class:t.normalizeClass(["fe-shortset__item",{"is-capturing":c.value===T.id,"is-conflict":((E=d.value)==null?void 0:E.id)===T.id}])},[t.createElementVNode("div",_N,[t.createElementVNode("span",wN,[t.createTextVNode(t.toDisplayString(t.unref(o)(T.labelKey))+" ",1),T.overridden?(t.openBlock(),t.createElementBlock("span",{key:0,class:"fe-shortcuts__custom",title:t.unref(o)("shortcuts.settings.customized")},"●",8,EN)):t.createCommentVNode("",!0)]),t.createElementVNode("span",SN,[c.value===T.id?(t.openBlock(),t.createElementBlock("span",xN,t.toDisplayString(t.unref(o)("shortcuts.settings.capture")),1)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[T.keys.length===0?(t.openBlock(),t.createElementBlock("span",CN,t.toDisplayString(t.unref(o)("shortcuts.settings.unbound")),1)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(T.keys,(w,C)=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:w},[t.createElementVNode("kbd",NN,t.toDisplayString(w),1),C<T.keys.length-1?(t.openBlock(),t.createElementBlock("span",BN,"/")):t.createCommentVNode("",!0)],64))),128))],64))]),t.createElementVNode("span",TN,[T.customizable?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[c.value!==T.id?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-shortset__btn",onClick:w=>p(T.id)},t.toDisplayString(t.unref(o)("shortcuts.settings.change")),9,DN)):(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:"fe-btn fe-shortset__btn",onClick:f},t.toDisplayString(t.unref(o)("shortcuts.settings.conflict_cancel")),1)),T.overridden?(t.openBlock(),t.createElementBlock("button",{key:2,type:"button",class:"fe-btn fe-btn--icon-only fe-shortset__btn",title:t.unref(o)("shortcuts.settings.reset"),"aria-label":t.unref(o)("shortcuts.settings.reset"),onClick:w=>k(T.id)}," β†Ί ",8,AN)):t.createCommentVNode("",!0)],64)):(t.openBlock(),t.createElementBlock("span",MN,t.toDisplayString(t.unref(o)("shortcuts.settings.fixed")),1))])]),d.value&&d.value.id===T.id?(t.openBlock(),t.createElementBlock("div",ON,[t.createElementVNode("span",IN,[t.createElementVNode("kbd",RN,t.toDisplayString(d.value.combo),1),t.createTextVNode(" "+t.toDisplayString(d.value.fixed?t.unref(o)("shortcuts.settings.conflict_fixed",{name:u(d.value.conflictId)}):t.unref(o)("shortcuts.settings.conflict",{name:u(d.value.conflictId)})),1)]),t.createElementVNode("span",zN,[d.value.fixed?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--danger fe-shortset__btn",onClick:_},t.toDisplayString(t.unref(o)("shortcuts.settings.conflict_take")),1)),t.createElementVNode("button",{type:"button",class:"fe-btn fe-shortset__btn",onClick:m},t.toDisplayString(t.unref(o)("shortcuts.settings.conflict_cancel")),1)])])):t.createCommentVNode("",!0)],2)}),128))]))),128))])]),_:1},8,["open","title","theme"]))}}),LN={key:0,class:"fe-preview"},FN=["src","alt"],$N=["src"],PN=["src"],VN=["data"],UN={class:"fe-preview__fallback"},HN=["href"],KN={key:0,class:"fe-preview__fallback"},GN={key:1,class:"fe-preview__fallback"},qN=["href"],WN={key:2,class:"fe-preview__md-split"},jN={class:"fe-preview__md-split-bar"},YN={key:0,class:"fe-preview__md-split-error"},XN=["disabled"],ZN={class:"fe-preview__md-split-body"},JN=["onKeydown"],QN={key:0,class:"fe-preview__md-split-output fe-preview__md"},eB=["innerHTML"],tB={key:3,class:"fe-preview__fallback"},nB=["href"],aB=["innerHTML"],rB={key:5,class:"fe-preview__pre"},oB={key:0,class:"fe-preview__fallback"},iB=["href"],lB={key:1,class:"fe-preview__fallback"},sB={key:0,class:"fe-preview__fallback"},cB={key:1,class:"fe-preview__fallback"},dB=["href"],uB={key:2,class:"fe-preview__fallback"},fB=["href"],pB={key:3,class:"fe-preview__code-wrap"},hB={class:"fe-preview__code-toolbar"},mB={class:"fe-preview__code-lang"},gB={key:0,class:"fe-preview__code-status"},yB={key:1,class:"fe-preview__code-status fe-preview__code-status--ok"},bB=["title"],vB={key:3,class:"fe-preview__code-status"},kB=["disabled"],_B={key:0,class:"fe-preview__pre fe-preview__code hljs"},wB=["innerHTML"],EB=["data-lang"],SB={key:0,class:"fe-preview__fallback","data-testid":"office-fallback"},xB=["href"],CB={key:8,class:"fe-preview__fallback"},NB=["href"],BB=["href"],o0=1e6,Wm="fe-onlyoffice-api-js",i0=t.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:{},newTabEnabled:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale);function i(le){return((le==null?void 0:le.extension)||"").toLowerCase()}const s=["jpg","jpeg","png","webp","gif","bmp","avif","svg","heic"],l=["mp4","webm","mov","mkv","m4v","ogv"],c=["mp3","wav","ogg","flac","m4a","aac","opus"],d={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"},u=["txt","log"],p=["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf"],f={glb:()=>Promise.resolve().then(()=>Ho),gltf:()=>Promise.resolve().then(()=>Ho),obj:()=>Promise.resolve().then(()=>Ho),stl:()=>Promise.resolve().then(()=>Ho),fbx:()=>Promise.resolve().then(()=>Ho),"3ds":()=>Promise.resolve().then(()=>Ho),epub:()=>Promise.resolve().then(()=>wz),mmd:()=>Promise.resolve().then(()=>_g),mermaid:()=>Promise.resolve().then(()=>_g),drawio:()=>Promise.resolve().then(()=>wg),dio:()=>Promise.resolve().then(()=>wg),tif:()=>Promise.resolve().then(()=>Eg),tiff:()=>Promise.resolve().then(()=>Eg),psd:()=>Promise.resolve().then(()=>Vz),ipynb:()=>Promise.resolve().then(()=>oL),csv:()=>Promise.resolve().then(()=>xg),tsv:()=>Promise.resolve().then(()=>xg),zip:()=>Promise.resolve().then(()=>NL)},h=t.computed(()=>{const le=i(a.file);if(!le)return"other";if(s.includes(le))return"image";if(l.includes(le))return"video";if(c.includes(le))return"audio";if(le==="pdf")return"pdf";const de=a.openMode!=="view";return le==="md"||le==="markdown"?"markdown":le in d?"code":le in f?"viewer":p.includes(le)?"office":u.includes(le)?de?"code":"text":"other"}),_=t.shallowRef(null),m=t.ref(null),k=t.ref(!1);async function g(le){_.value=null,m.value=null;const de=f[le];if(de)try{const ke=await de();_.value=ke.default??ke}catch(ke){m.value=ke instanceof Error?ke.message:"viewer load failed",le==="pdf"&&(k.value=!0)}}function v(){k.value=!0}const y=t.computed(()=>{var ke;const le=i(a.file),de={url:w.value,ext:le,mime:(ke=a.file)==null?void 0:ke.mime_type,t:o,authHeaders:a.authHeaders,authCredentials:a.authCredentials};return a.file&&(de.filePath=M(a.file.path),(le==="zip"||le==="rar"||le==="7z"||le==="tar"||le==="gz"||le==="tgz")&&(de.filePath=a.file.path)),(le==="drawio"||le==="dio")&&(de.drawioUrl=a.drawioUrl??void 0,de.saveUrl=a.saveTextEndpoint??void 0,de.readOnly=a.openMode==="view"),le==="pdf"&&(de.pdfWorkerUrl=a.pdfWorkerUrl??void 0,de.pdfSaveUrl=a.pdfSaveUrl??void 0),de});function b(){N(a.openMode||"edit")}function S(){N("edit")}function N(le){if(!a.file)return;const de=i(a.file),ke=a.viewerBaseUrl||"/files/edit",re=ke.includes("?")?"&":"?",ge=`${ke}${re}path=${encodeURIComponent(a.file.path)}&type=${encodeURIComponent(de)}&mode=${encodeURIComponent(le)}`;window.open(ge,"_blank","noopener")}const T=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"]),E=t.computed(()=>!!a.file&&T.has(i(a.file))),w=t.computed(()=>a.file?a.previewUrl(a.file.path):""),C=t.computed(()=>a.file?a.downloadUrl(a.file.path):"");function M(le){const de=le.indexOf("://");return de===-1?le:le.slice(de+3)}const L=t.ref(!1),I=t.ref(null),V=t.ref(""),$=t.ref(!1),R=t.ref(!1),P=t.ref(!1);let q,F;function U(){R.value=!0,q&&clearTimeout(q),q=setTimeout(()=>{Be(V.value)},250),F&&clearTimeout(F),F=setTimeout(()=>{z()},1500)}async function z(){if(!(!a.saveTextEndpoint||!a.file||P.value)){P.value=!0,I.value=null;try{const le={"Content-Type":"application/json",...await(a.authHeaders??(()=>({})))()},de=await fetch(a.saveTextEndpoint,{method:"POST",headers:le,credentials:a.authCredentials||"same-origin",body:JSON.stringify({path:M(a.file.path),content:V.value})});if(!de.ok)throw new Error(`save failed: ${de.status} ${await de.text()}`);R.value=!1}catch(le){I.value=le instanceof Error?le.message:String(le)}finally{P.value=!1}}}async function Y(le){L.value=!0,I.value=null,V.value="",$.value=!1;try{const de={};a.authHeaders&&Object.assign(de,await a.authHeaders());const ke=await fetch(le,{credentials:a.authCredentials||"same-origin",headers:de});if(!ke.ok)throw new Error(`${ke.status} ${ke.statusText}`);if(Number(ke.headers.get("content-length")||"0")>o0){$.value=!0;return}const ge=await ke.text();ge.length>o0?($.value=!0,V.value=ge.slice(0,o0)):V.value=ge}catch(de){I.value=de instanceof Error?de.message:String(de)}finally{L.value=!1}}const Q=t.ref(""),oe=t.ref(null),he=t.ref(!1);async function Be(le){try{const de=await import("markdown-it").catch(()=>null);if(!de){Q.value="",he.value=!0;return}he.value=!1;const ke=de.default??de,ge=new ke({html:!0,linkify:!0,breaks:!0,typographer:!0}).render(le);Q.value=_e(ge),await new Promise(H=>setTimeout(H,0)),await J()}catch(de){Q.value="",I.value=de instanceof Error?de.message:String(de)}}function _e(le){return le.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 J(){var ge,H,Ie;if(!oe.value)return;const le=oe.value,de=Array.from(le.querySelectorAll("pre > code"));if(de.length===0)return;let ke,re;for(const dt of de){const A=dt.className||"",we=/\blanguage-mermaid\b/.test(A)||/\blanguage-mmd\b/.test(A),Se=/\blanguage-math\b/.test(A)||/\blanguage-latex\b/.test(A)||/\blanguage-tex\b/.test(A);if(we){if(ke===void 0)try{const G=await import("mermaid");ke=G.default??G,(ge=ke.initialize)==null||ge.call(ke,{startOnLoad:!1,securityLevel:"strict"})}catch{ke=null}if(!ke)continue;try{const G=`filex-md-mermaid-${Math.random().toString(36).slice(2)}`,{svg:se}=await ke.render(G,dt.textContent||""),ve=document.createElement("div");ve.className="fe-preview__md-mermaid",ve.innerHTML=se,(H=dt.parentElement)==null||H.replaceWith(ve)}catch{}}else if(Se){if(re===void 0)try{const G=await Promise.resolve().then(()=>u$);re=G.default??G}catch{re=null}if(!re)continue;try{const G=re.renderToString(dt.textContent||"",{displayMode:!0,throwOnError:!1}),se=document.createElement("div");se.className="fe-preview__md-math",se.innerHTML=G,(Ie=dt.parentElement)==null||Ie.replaceWith(se)}catch{}}}}const te=t.ref("");async function Ne(le,de){try{const ke=await as();if(!ke){te.value="";return}const re=ke.default??ke;if(re.getLanguage(de)){const ge=re.highlight(le,{language:de,ignoreIllegals:!0});te.value=ge.value}else{const ge=re.highlightAuto(le);te.value=ge.value}}catch(ke){te.value="",I.value=ke instanceof Error?ke.message:String(ke)}}const Ae=t.ref(null);let Le=null,nt;const et=t.ref(!1),Ve=t.ref(!1),$e=t.ref(!1),Oe=t.ref(!1),ee=t.ref(null);function ye(){if(Le){try{Le.dispose()}catch{}Le=null}et.value=!1,Oe.value=!1,ee.value=null}function xe(le){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"}[le]??"plaintext"}async function Pe(le,de){var re;const ke=await ns();if(ke||(Ve.value=!0),!ke||!Ae.value)return!1;try{ye();const ge=!!a.saveTextEndpoint&&a.openMode!=="view",H=a.theme==="dark"?!0:a.theme==="light"?!1:(re=window.matchMedia)==null?void 0:re.call(window,"(prefers-color-scheme: dark)").matches;return Le=ke.editor.create(Ae.value,{value:le,language:xe(de),readOnly:!ge,theme:H?"vs-dark":"vs",automaticLayout:!0,minimap:{enabled:!1},fontSize:13}),ge&&(Le.addCommand(ke.KeyMod.CtrlCmd|ke.KeyCode.KeyS,()=>void it()),Le.onDidChangeModelContent(()=>{nt&&clearTimeout(nt),nt=setTimeout(()=>{it()},1500)})),et.value=!0,!0}catch(ge){return I.value=`Monaco mount fail: ${ge.message}`,!1}}async function it(){if(!(!a.saveTextEndpoint||!a.file)&&a.openMode!=="view"&&!$e.value){$e.value=!0,Oe.value=!1,ee.value=null;try{const le=Le?Le.getValue():"",de={"Content-Type":"application/json"};a.authHeaders&&Object.assign(de,await a.authHeaders());const ke=await fetch(a.saveTextEndpoint,{method:"POST",headers:de,credentials:a.authCredentials||"same-origin",body:JSON.stringify({path:M(a.file.path),content:le})});if(!ke.ok){const re=await ke.text().catch(()=>"");throw new Error(`${ke.status} ${ke.statusText}${re?" β€” "+re.slice(0,150):""}`)}Oe.value=!0,setTimeout(()=>{Oe.value=!1},2500)}catch(le){ee.value=le.message}finally{$e.value=!1}}}async function Ce(le,de,ke){if(V.value="",Q.value="",te.value="",I.value=null,ce.value=null,_.value=null,m.value=null,k.value=!1,at(),ye(),!(!le||!de)){if(ke==="viewer"){await g(i(a.file));return}if(ke==="markdown"||ke==="code"||ke==="text"){if(await Y(de),$.value)return;if(ke==="markdown"){await Be(V.value);return}const re=d[i(a.file)]||"";Dd()?(await new Promise(Ie=>setTimeout(Ie,0)),await Pe(V.value,i(a.file))||await Ne(V.value,re)):(ke==="code"&&await Ne(V.value,re),ns().then(async H=>{if(!H){Ve.value=!0;return}a.open&&(await new Promise(Ie=>setTimeout(Ie,0)),await Pe(V.value,i(a.file)))}))}else ke==="office"&&(await new Promise(re=>setTimeout(re,0)),await Ke())}}t.watch(()=>[a.open,w.value,h.value,a.openMode],([le,de,ke])=>{Ce(le,de,ke)}),t.onMounted(()=>{t.nextTick(()=>{a.open&&Ce(a.open,w.value,h.value)})});const me=t.computed(()=>d[i(a.file)]||"plaintext"),Ee=t.ref(null),ce=t.ref(null);let ze=null;async function Ke(){if(ce.value=null,!(!a.file||h.value!=="office")){if(!a.onlyOfficeConfigEndpoint){ce.value=o("viewer.office_unconfigured");return}if(Ee.value)try{const le={"Content-Type":"application/json"};a.authHeaders&&Object.assign(le,await a.authHeaders());const de=await fetch(a.onlyOfficeConfigEndpoint,{method:"POST",headers:le,credentials:a.authCredentials||"same-origin",body:JSON.stringify({path:a.file.path,mode:a.openMode||"edit"})});if(!de.ok)throw new Error(`Config fetch ${de.status}: ${(await de.text()).slice(0,200)}`);const{config:ke,documentServerUrl:re}=await de.json();await W(re),at();const ge="fe-onlyoffice-mount";Ee.value.id=ge,ke.events={onError:Ie=>{ce.value=rt(Ie)}};const H=window;if(!H.DocsAPI||!H.DocsAPI.DocEditor)throw new Error("DocsAPI not available after script load");ze=new H.DocsAPI.DocEditor(ge,ke)}catch(le){ce.value=le instanceof Error?le.message:String(le)}}}function at(){var le;try{(le=ze==null?void 0:ze.destroyEditor)==null||le.call(ze)}catch{}ze=null}t.onBeforeUnmount(()=>{at(),ye()});function rt(le){if(typeof le=="string")return le;const de=le;if(de!=null&&de.data&&typeof de.data=="object"){const ke=de.data;if(typeof ke.errorDescription=="string")return ke.errorDescription;if(typeof ke.message=="string")return ke.message;if(ke.errorCode!==void 0)return`OnlyOffice error ${ke.errorCode}`}if(typeof(de==null?void 0:de.data)=="string")return de.data;if(typeof(de==null?void 0:de.errorDescription)=="string")return de.errorDescription;if(typeof(de==null?void 0:de.message)=="string")return de.message;try{return JSON.stringify(le)}catch{return"OnlyOffice error"}}function W(le){return new Promise((de,ke)=>{var H;if((H=window.DocsAPI)!=null&&H.DocEditor){de();return}const re=document.getElementById(Wm);if(re){re.addEventListener("load",()=>de()),re.addEventListener("error",()=>ke(new Error("OnlyOffice api.js load failed")));return}const ge=document.createElement("script");ge.id=Wm,ge.src=`${le.replace(/\/$/,"")}/web-apps/apps/api/documents/api.js`,ge.async=!0,ge.onload=()=>de(),ge.onerror=()=>ke(new Error("OnlyOffice api.js load failed")),document.head.appendChild(ge)})}return(le,de)=>{var ke;return t.openBlock(),t.createBlock(va,{open:e.open,size:"xl",title:((ke=e.file)==null?void 0:ke.basename)||"",chromeless:e.chromeless,theme:e.theme,onClose:de[2]||(de[2]=re=>r("close"))},{actions:t.withCtx(()=>[e.file&&e.openMode==="view"&&E.value&&e.newTabEnabled!==!1?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:S},"✏ "+t.toDisplayString(t.unref(o)("viewer.edit")),1)):t.createCommentVNode("",!0),e.file&&e.newTabEnabled!==!1?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:"fe-btn",onClick:b},"β†— "+t.toDisplayString(t.unref(o)("viewer.open_in_new_tab")),1)):t.createCommentVNode("",!0),e.file?(t.openBlock(),t.createElementBlock("a",{key:2,href:C.value,class:"fe-btn"},t.toDisplayString(t.unref(o)("viewer.download")),9,BB)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:de[1]||(de[1]=re=>r("close"))},t.toDisplayString(t.unref(o)("viewer.close")),1)]),default:t.withCtx(()=>[e.file?(t.openBlock(),t.createElementBlock("div",LN,[h.value==="image"?(t.openBlock(),t.createElementBlock("img",{key:0,src:w.value,alt:e.file.basename,class:"fe-preview__image"},null,8,FN)):h.value==="video"?(t.openBlock(),t.createElementBlock("video",{key:1,src:w.value,controls:"",preload:"metadata",class:"fe-preview__video"},null,8,$N)):h.value==="audio"?(t.openBlock(),t.createElementBlock("audio",{key:2,src:w.value,controls:"",class:"fe-preview__audio"},null,8,PN)):h.value==="pdf"?(t.openBlock(),t.createElementBlock("object",{key:3,data:w.value,type:"application/pdf",class:"fe-preview__iframe"},[t.createElementVNode("div",UN,[de[3]||(de[3]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"πŸ“•",-1)),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("viewer.pdf_inline_failed")),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary",target:"_blank",rel:"noopener"},t.toDisplayString(t.unref(o)("viewer.open_in_new_tab")),9,HN)])],8,VN)):h.value==="markdown"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:4},[L.value?(t.openBlock(),t.createElementBlock("div",KN,t.toDisplayString(t.unref(o)("viewer.loading")),1)):$.value?(t.openBlock(),t.createElementBlock("div",GN,[t.createTextVNode(t.toDisplayString(t.unref(o)("viewer.too_large"))+" ",1),t.createElementVNode("a",{href:C.value,class:"fe-btn"},t.toDisplayString(t.unref(o)("viewer.download")),9,qN)])):e.openMode==="edit"&&e.saveTextEndpoint?(t.openBlock(),t.createElementBlock("div",WN,[t.createElementVNode("div",jN,[de[4]||(de[4]=t.createElementVNode("span",{class:"fe-preview__md-split-label"},"MARKDOWN",-1)),I.value?(t.openBlock(),t.createElementBlock("span",YN,t.toDisplayString(I.value),1)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",disabled:!R.value||P.value,onClick:z},t.toDisplayString(P.value?t.unref(o)("viewer.saving"):R.value?t.unref(o)("viewer.save"):t.unref(o)("viewer.saved")),9,XN)]),t.createElementVNode("div",ZN,[t.withDirectives(t.createElementVNode("textarea",{class:"fe-preview__md-split-input","onUpdate:modelValue":de[0]||(de[0]=re=>V.value=re),onInput:U,onKeydown:[t.withKeys(t.withModifiers(z,["ctrl","prevent"]),["s"]),t.withKeys(t.withModifiers(z,["meta","prevent"]),["s"])],spellcheck:"false",placeholder:"# Markdown buraya…"},null,40,JN),[[t.vModelText,V.value]]),he.value?(t.openBlock(),t.createElementBlock("div",QN,t.toDisplayString(t.unref(o)("viewer.peer_not_installed")),1)):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"markdownEl",ref:oe,class:"fe-preview__md-split-output fe-preview__md",innerHTML:Q.value},null,8,eB))])])):I.value?(t.openBlock(),t.createElementBlock("div",tB,[t.createElementVNode("p",null,t.toDisplayString(I.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,nB)])):Q.value?(t.openBlock(),t.createElementBlock("div",{key:4,ref_key:"markdownEl",ref:oe,class:"fe-preview__md",innerHTML:Q.value},null,8,aB)):(t.openBlock(),t.createElementBlock("pre",rB,t.toDisplayString(V.value),1))],64)):h.value==="viewer"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:5},[m.value&&!k.value?(t.openBlock(),t.createElementBlock("div",oB,[de[5]||(de[5]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⚠️",-1)),t.createElementVNode("p",null,t.toDisplayString(m.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,iB)])):_.value?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(_.value),t.mergeProps({key:2},y.value,{class:"fe-preview__viewer",onFallback:v}),null,16)):(t.openBlock(),t.createElementBlock("div",lB,[de[6]||(de[6]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"⏳",-1)),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("viewer.loading")),1)]))],64)):h.value==="code"||h.value==="text"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:6},[L.value?(t.openBlock(),t.createElementBlock("div",sB,t.toDisplayString(t.unref(o)("viewer.loading")),1)):$.value?(t.openBlock(),t.createElementBlock("div",cB,[t.createTextVNode(t.toDisplayString(t.unref(o)("viewer.too_large"))+" ",1),t.createElementVNode("a",{href:C.value,class:"fe-btn"},t.toDisplayString(t.unref(o)("viewer.download")),9,dB)])):I.value?(t.openBlock(),t.createElementBlock("div",uB,[t.createElementVNode("p",null,t.toDisplayString(I.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,fB)])):(t.openBlock(),t.createElementBlock("div",pB,[t.createElementVNode("div",hB,[t.createElementVNode("span",mB,t.toDisplayString(me.value),1),!et.value&&te.value?(t.openBlock(),t.createElementBlock("span",gB,t.toDisplayString(e.saveTextEndpoint&&!Ve.value?t.unref(o)("viewer.editor_loading"):t.unref(o)("viewer.read_only")),1)):t.createCommentVNode("",!0),Oe.value?(t.openBlock(),t.createElementBlock("span",yB,"βœ“ "+t.toDisplayString(t.unref(o)("viewer.saved")),1)):t.createCommentVNode("",!0),ee.value?(t.openBlock(),t.createElementBlock("span",{key:2,class:"fe-preview__code-status fe-preview__code-status--err",title:ee.value},"βœ— "+t.toDisplayString(t.unref(o)("viewer.save_error")),9,bB)):t.createCommentVNode("",!0),e.openMode==="view"?(t.openBlock(),t.createElementBlock("span",vB,t.toDisplayString(t.unref(o)("viewer.read_only")),1)):e.saveTextEndpoint&&et.value?(t.openBlock(),t.createElementBlock("button",{key:4,type:"button",class:"fe-btn fe-btn--primary",disabled:$e.value,onClick:it},t.toDisplayString($e.value?t.unref(o)("viewer.saving"):t.unref(o)("viewer.save")),9,kB)):t.createCommentVNode("",!0)]),t.createElementVNode("div",{ref_key:"monacoEl",ref:Ae,class:t.normalizeClass(["fe-preview__code-editor",{"is-hidden":!et.value}])},null,2),!et.value&&te.value?(t.openBlock(),t.createElementBlock("pre",_B,[t.createElementVNode("code",{class:t.normalizeClass(`language-${me.value}`),innerHTML:te.value},null,10,wB)])):!et.value&&!te.value?(t.openBlock(),t.createElementBlock("pre",{key:1,class:"fe-preview__pre","data-lang":me.value},t.toDisplayString(V.value),9,EB)):t.createCommentVNode("",!0)]))],64)):h.value==="office"?(t.openBlock(),t.createElementBlock(t.Fragment,{key:7},[ce.value?(t.openBlock(),t.createElementBlock("div",SB,[de[7]||(de[7]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"πŸ“„",-1)),t.createElementVNode("p",null,t.toDisplayString(ce.value),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,xB)])):(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"officeEl",ref:Ee,class:"fe-preview__office"},null,512))],64)):(t.openBlock(),t.createElementBlock("div",CB,[de[8]||(de[8]=t.createElementVNode("span",{class:"fe-preview__fallback-icon"},"πŸ“Ž",-1)),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("viewer.no_preview")),1),t.createElementVNode("a",{href:C.value,class:"fe-btn fe-btn--primary"},t.toDisplayString(t.unref(o)("viewer.download")),9,NB)]))])):t.createCommentVNode("",!0)]),_:1},8,["open","title","chromeless","theme"])}}}),jm=t.defineComponent({__name:"QuickLook",props:{open:{type:Boolean},locale:{},file:{},previewUrl:{type:Function},downloadUrl:{type:Function},onlyOfficeBase:{},onlyOfficeConfigEndpoint:{},authHeaders:{type:Function},authCredentials:{},drawioUrl:{},pdfWorkerUrl:{},viewerBaseUrl:{},theme:{}},emits:["close","nav","open-full"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale);function i(l){const c=l;return!!(c&&(c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.tagName==="SELECT"||c.isContentEditable))}function s(l){if(a.open&&!(l.ctrlKey||l.metaKey||l.altKey)&&!i(l.target))switch(l.key){case" ":l.preventDefault(),l.stopPropagation(),r("close");break;case"ArrowRight":case"ArrowDown":l.preventDefault(),l.stopPropagation(),r("nav",1);break;case"ArrowLeft":case"ArrowUp":l.preventDefault(),l.stopPropagation(),r("nav",-1);break;case"Enter":l.preventDefault(),l.stopPropagation(),r("open-full");break}}return t.watch(()=>a.open,l=>{l?window.addEventListener("keydown",s,!0):window.removeEventListener("keydown",s,!0)},{immediate:!0}),t.onBeforeUnmount(()=>window.removeEventListener("keydown",s,!0)),(l,c)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(i0,{class:"fe-quicklook",open:e.open,locale:e.locale,file:e.file,theme:e.theme,"preview-url":e.previewUrl,"download-url":e.downloadUrl,"only-office-base":e.onlyOfficeBase,"only-office-config-endpoint":e.onlyOfficeConfigEndpoint,"open-mode":"view","auth-headers":e.authHeaders,"auth-credentials":e.authCredentials,"drawio-url":e.drawioUrl,"pdf-worker-url":e.pdfWorkerUrl,"viewer-base-url":e.viewerBaseUrl,onClose:c[0]||(c[0]=d=>r("close"))},null,8,["open","locale","file","theme","preview-url","download-url","only-office-base","only-office-config-endpoint","auth-headers","auth-credentials","drawio-url","pdf-worker-url","viewer-base-url"]),t.createVNode(t.Transition,{name:"fe-toast"},{default:t.withCtx(()=>[e.open?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["fe fe-ql-hint",{"fe--theme-light":e.theme==="light","fe--theme-dark":e.theme==="dark"}]),"aria-hidden":"true"},[c[1]||(c[1]=t.createElementVNode("kbd",{class:"fe-kbd"},"Space",-1)),t.createTextVNode(" "+t.toDisplayString(t.unref(o)("quicklook.hint_close"))+" ",1),c[2]||(c[2]=t.createElementVNode("span",{class:"fe-ql-hint__sep"},"Β·",-1)),c[3]||(c[3]=t.createElementVNode("kbd",{class:"fe-kbd"},"↑",-1)),c[4]||(c[4]=t.createElementVNode("kbd",{class:"fe-kbd"},"↓",-1)),t.createTextVNode(" "+t.toDisplayString(t.unref(o)("quicklook.hint_nav"))+" ",1),c[5]||(c[5]=t.createElementVNode("span",{class:"fe-ql-hint__sep"},"Β·",-1)),c[6]||(c[6]=t.createElementVNode("kbd",{class:"fe-kbd"},"Enter",-1)),t.createTextVNode(" "+t.toDisplayString(t.unref(o)("quicklook.hint_open")),1)],2)):t.createCommentVNode("",!0)]),_:1})],64))}}),TB=["aria-label"],DB={class:"fe-opc__head"},AB=["aria-label"],MB={class:"fe-opc__body"},OB={key:0,class:"fe-opc__section","aria-live":"polite"},IB={class:"fe-opc__section-title"},RB={class:"fe-opc__list"},zB={class:"fe-opc__kicon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},LB=["d"],FB={class:"fe-opc__mid"},$B=["title"],PB={class:"fe-opc__sub"},VB={class:"fe-opc__kind"},UB={class:"fe-opc__state"},HB=["aria-valuenow"],KB={key:0,class:"fe-opc__spin","aria-hidden":"true"},GB={class:"fe-opc__acts"},qB=["onClick"],WB=["onClick"],jB=["aria-label","onClick"],YB={key:1,class:"fe-opc__section"},XB={class:"fe-opc__section-title"},ZB={class:"fe-opc__list fe-opc__list--history"},JB={class:"fe-opc__kicon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},QB=["d"],eT={class:"fe-opc__mid"},tT=["title"],nT={key:0,class:"fe-opc__sub fe-opc__sub--err"},aT={key:2,class:"fe-opc__empty"},rT=["aria-expanded","aria-label"],oT=["stroke-dashoffset"],iT={class:"fe-opc__count"},lT={key:0,class:"fe-opc__pct"},l0=8.5,Ym=t.defineComponent({__name:"OperationsCenter",props:{center:{},locale:{},narrow:{type:Boolean}},setup(e){const n=e,{t:a,formatSize:r}=Dt(()=>n.locale),o=t.ref(!1),i=t.ref(null),s=t.computed(()=>n.center.active.value),l=t.computed(()=>n.center.history.value),c=t.computed(()=>n.center.hasError.value),d=t.computed(()=>n.center.overallPercent.value),u=t.computed(()=>n.center.runningCount.value),p=t.computed(()=>s.value.length>0||o.value&&l.value.length>0);t.watch(p,E=>{E||(o.value=!1)});const f=2*Math.PI*l0,h=t.computed(()=>{const E=d.value;return E===null?f*.72:f*(1-Math.min(100,Math.max(0,E))/100)}),_=t.computed(()=>d.value===null&&u.value>0),m=t.computed(()=>u.value===0||d.value===null?"":a("opc.percent",{n:d.value})),k=t.computed(()=>a("opc.aria_badge",{n:s.value.length})),g={upload:"M12 16V5M7 9.5 12 5l5 4.5M5 19h14",copy:"M9 9h11v11H9zM5 15V4h11",move:"M4 12h13M12 6l6 6-6 6",delete:"M5 7h14M9 7V5h6v2M8 7l1 13h6l1-13",convert:"M20 8A8 8 0 0 0 6 6L4 8M4 16a8 8 0 0 0 14 2l2-2M20 3v5h-5M4 21v-5h5",archive:"M4 8V5h16v3zM5 8h14v12H5zM10 12h4"};function v(E){return a(`opc.kind.${E.kind}`)}function y(E){return E.name||v(E)}function b(E){return E.status==="running"?E.queued?a("opc.queued"):E.totalBytes&&E.totalBytes>0?`${r(E.uploadedBytes??0)} / ${r(E.totalBytes)}`:E.totalCount&&E.totalCount>0?`${E.doneCount??0}/${E.totalCount}`:a("opc.status.running"):E.status==="done"?a("opc.status.done"):E.status==="aborted"?a("opc.status.aborted"):E.error||a("opc.status.error")}function S(E){return a(`opc.status.${E.status==="running"?"running":E.status}`)}function N(E){if(!o.value)return;const w=i.value;w&&E.target instanceof Node&&!w.contains(E.target)&&(o.value=!1)}function T(E){o.value&&E.key==="Escape"&&(o.value=!1)}return t.onMounted(()=>{document.addEventListener("mousedown",N),document.addEventListener("keydown",T)}),t.onBeforeUnmount(()=>{document.removeEventListener("mousedown",N),document.removeEventListener("keydown",T)}),(E,w)=>p.value?(t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"rootEl",ref:i,class:t.normalizeClass(["fe-opc",{"fe-opc--narrow":e.narrow,"fe-opc--open":o.value}])},[t.createVNode(t.Transition,{name:"fe-opc-pop"},{default:t.withCtx(()=>[o.value?(t.openBlock(),t.createElementBlock("section",{key:0,class:"fe-opc__panel",role:"dialog","aria-label":t.unref(a)("opc.title")},[t.createElementVNode("header",DB,[t.createElementVNode("strong",null,t.toDisplayString(t.unref(a)("opc.title")),1),t.createElementVNode("button",{type:"button",class:"fe-opc__x","aria-label":t.unref(a)("opc.close"),onClick:w[0]||(w[0]=C=>o.value=!1)},"Γ—",8,AB)]),t.createElementVNode("div",MB,[s.value.length>0?(t.openBlock(),t.createElementBlock("div",OB,[t.createElementVNode("h3",IB,t.toDisplayString(t.unref(a)("opc.active")),1),t.createElementVNode("ul",RB,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,C=>(t.openBlock(),t.createElementBlock("li",{key:C.key,class:t.normalizeClass(["fe-opc__item",`is-${C.status}`])},[(t.openBlock(),t.createElementBlock("svg",zB,[t.createElementVNode("path",{d:g[C.kind]},null,8,LB)])),t.createElementVNode("div",FB,[t.createElementVNode("div",{class:"fe-opc__name",title:y(C)},t.toDisplayString(y(C)),9,$B),t.createElementVNode("div",PB,[t.createElementVNode("span",VB,t.toDisplayString(v(C)),1),w[3]||(w[3]=t.createElementVNode("span",{class:"fe-opc__dot","aria-hidden":"true"},"Β·",-1)),t.createElementVNode("span",UB,t.toDisplayString(b(C)),1)]),C.status==="running"&&C.percent!==null?(t.openBlock(),t.createElementBlock("div",{key:0,class:"fe-opc__bar",role:"progressbar","aria-valuenow":C.percent,"aria-valuemin":"0","aria-valuemax":"100"},[t.createElementVNode("div",{class:"fe-opc__bar-fill",style:t.normalizeStyle({width:C.percent+"%"})},null,4)],8,HB)):t.createCommentVNode("",!0)]),C.status==="running"&&C.percent===null&&!C.queued?(t.openBlock(),t.createElementBlock("span",KB)):t.createCommentVNode("",!0),t.createElementVNode("div",GB,[C.status==="running"&&C.cancellable?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-opc__act",onClick:M=>e.center.cancel(C.key)},t.toDisplayString(t.unref(a)("opc.cancel")),9,qB)):t.createCommentVNode("",!0),C.status==="error"&&C.retryable?(t.openBlock(),t.createElementBlock("button",{key:1,type:"button",class:"fe-opc__act fe-opc__act--retry",onClick:M=>e.center.retry(C.key)},t.toDisplayString(t.unref(a)("opc.retry")),9,WB)):t.createCommentVNode("",!0),C.status!=="running"?(t.openBlock(),t.createElementBlock("button",{key:2,type:"button",class:"fe-opc__x","aria-label":t.unref(a)("opc.dismiss"),onClick:M=>e.center.dismiss(C.key)},"Γ—",8,jB)):t.createCommentVNode("",!0)])],2))),128))])])):t.createCommentVNode("",!0),l.value.length>0?(t.openBlock(),t.createElementBlock("div",YB,[t.createElementVNode("h3",XB,[t.createTextVNode(t.toDisplayString(t.unref(a)("opc.history"))+" ",1),t.createElementVNode("button",{type:"button",class:"fe-opc__act",onClick:w[1]||(w[1]=C=>e.center.clearHistory())},t.toDisplayString(t.unref(a)("opc.clear")),1)]),t.createElementVNode("ul",ZB,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,C=>(t.openBlock(),t.createElementBlock("li",{key:"h-"+C.key,class:t.normalizeClass(["fe-opc__item fe-opc__item--history",`is-${C.status}`])},[(t.openBlock(),t.createElementBlock("svg",JB,[t.createElementVNode("path",{d:g[C.kind]},null,8,QB)])),t.createElementVNode("div",eT,[t.createElementVNode("div",{class:"fe-opc__name",title:y(C)},t.toDisplayString(y(C)),9,tT),C.status==="error"&&C.error?(t.openBlock(),t.createElementBlock("div",nT,t.toDisplayString(C.error),1)):t.createCommentVNode("",!0)]),t.createElementVNode("span",{class:t.normalizeClass(["fe-opc__chip",`is-${C.status}`])},t.toDisplayString(S(C)),3)],2))),128))])])):t.createCommentVNode("",!0),s.value.length===0&&l.value.length===0?(t.openBlock(),t.createElementBlock("p",aT,t.toDisplayString(t.unref(a)("opc.empty")),1)):t.createCommentVNode("",!0)])],8,TB)):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["fe-opc__badge",{"is-error":c.value}]),"aria-expanded":o.value,"aria-label":k.value,onClick:w[2]||(w[2]=C=>o.value=!o.value)},[(t.openBlock(),t.createElementBlock("svg",{class:t.normalizeClass(["fe-opc__ring",{"fe-opc__ring--spin":_.value}]),viewBox:"0 0 22 22","aria-hidden":"true",focusable:"false"},[t.createElementVNode("circle",{class:"fe-opc__ring-track",cx:"11",cy:"11",r:l0,fill:"none","stroke-width":"2.5"}),t.createElementVNode("circle",{class:"fe-opc__ring-fill",cx:"11",cy:"11",r:l0,fill:"none","stroke-width":"2.5","stroke-linecap":"round","stroke-dasharray":f,"stroke-dashoffset":h.value,transform:"rotate(-90 11 11)"},null,8,oT)],2)),t.createElementVNode("span",iT,t.toDisplayString(s.value.length),1),m.value?(t.openBlock(),t.createElementBlock("span",lT,t.toDisplayString(m.value),1)):t.createCommentVNode("",!0)],10,rT)],2)):t.createCommentVNode("",!0)}}),sT=4e3,Xm=50;function cT(e,n,a){const r=n.status!=="running";return{key:e,kind:n.kind,name:n.name,percent:n.percent,status:n.status,error:n.error??null,queued:n.queued??!1,doneCount:n.doneCount??null,totalCount:n.totalCount??null,uploadedBytes:n.uploadedBytes??null,totalBytes:n.totalBytes??null,cancellable:n.cancellable??!1,retryable:n.retryable??!1,startedAt:(a==null?void 0:a.startedAt)??Date.now(),settledAt:(a==null?void 0:a.settledAt)??(r?Date.now():null)}}function Zm(){const e=t.ref([]),n=t.ref([]),a=new Map,r=new Set,o=new Map;function i(g){const v=o.get(g);v!==void 0&&(clearTimeout(v),o.delete(g))}function s(g,v={}){i(g);const y=e.value.findIndex(S=>S.key===g);if(y===-1)return;const[b]=e.value.splice(y,1);e.value=[...e.value],r.add(g),v.toHistory!==!1&&(n.value=[{...b,settledAt:b.settledAt??Date.now()},...n.value].slice(0,Xm))}function l(g){o.has(g)||o.set(g,setTimeout(()=>{var y;o.delete(g);const v=a.get(g);s(g),(y=v==null?void 0:v.dismiss)==null||y.call(v)},sT))}function c(g,v){const y=`${g}:`,b=new Set;let S=[...e.value],N=!1;for(const T of v){const E=`${g}:${T.input.id}`;if(b.add(E),T.actions&&a.set(E,T.actions),r.has(E))continue;const w=S.findIndex(M=>M.key===E),C=cT(E,T.input,w===-1?void 0:S[w]);w===-1?(S=[C,...S],N=!0):JSON.stringify(S[w])!==JSON.stringify(C)&&(S[w]=C,N=!0),(C.status==="done"||C.status==="aborted")&&l(E)}for(const T of[...S])!T.key.startsWith(y)||b.has(T.key)||T.status!=="error"&&(i(T.key),S=S.filter(E=>E.key!==T.key),N=!0,T.status!=="running"&&(r.add(T.key),n.value=[{...T,settledAt:T.settledAt??Date.now()},...n.value].slice(0,Xm)));for(const T of[...r])T.startsWith(y)&&!b.has(T)&&r.delete(T);for(const T of[...a.keys()])T.startsWith(y)&&!b.has(T)&&!e.value.some(E=>E.key===T)&&(S.some(E=>E.key===T)||a.delete(T));N&&(e.value=S)}function d(g){var v,y;(y=(v=a.get(g))==null?void 0:v.cancel)==null||y.call(v)}function u(g){var y,b;const v=a.get(g);s(g),(y=v==null?void 0:v.dismiss)==null||y.call(v),(b=v==null?void 0:v.retry)==null||b.call(v)}function p(g){var y;const v=a.get(g);s(g),(y=v==null?void 0:v.dismiss)==null||y.call(v)}function f(){n.value=[]}const h=t.computed(()=>e.value.filter(g=>g.status==="running").length),_=t.computed(()=>e.value.filter(g=>g.status==="error").length),m=t.computed(()=>_.value>0),k=t.computed(()=>{const g=e.value.filter(b=>b.status==="running");let v=0,y=0;for(const b of g){let S=null;b.totalBytes&&b.totalBytes>0?S=Math.min(1,(b.uploadedBytes??0)/b.totalBytes):b.totalCount&&b.totalCount>0?S=Math.min(1,(b.doneCount??0)/b.totalCount):b.percent!==null&&(S=Math.min(1,b.percent/100)),S!==null&&(v+=S,y+=1)}return y===0?null:Math.round(v/y*100)});return t.getCurrentScope()&&t.onScopeDispose(()=>{for(const g of o.values())clearTimeout(g);o.clear()}),{active:e,history:n,runningCount:h,errorCount:_,hasError:m,overallPercent:k,sync:c,cancel:d,retry:u,dismiss:p,clearHistory:f}}const dT=["data-prefers-dark","aria-label"],uT={key:1,class:"fe-tour__dim","aria-hidden":"true"},fT={class:"fe-tour__progress","aria-hidden":"true"},pT={class:"fe-tour__title"},hT={class:"fe-tour__desc"},mT={class:"fe-tour__dots","aria-hidden":"true"},gT={class:"fe-tour__actions"},Po=6,Jm=12,yT=t.defineComponent({__name:"OnboardingTour",props:{open:{type:Boolean},locale:{},root:{},theme:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale);function i(w,C){const M=w.querySelectorAll("button[title]");for(const L of Array.from(M))if(L.getAttribute("title")===C)return L;return null}const s=[{id:"nav",titleKey:"tour.step.nav.title",descKey:"tour.step.nav.desc",target:w=>w.querySelector(".fe-breadcrumb")},{id:"upload",titleKey:"tour.step.upload.title",descKey:"tour.step.upload.desc",target:w=>i(w,o("toolbar.upload"))||w.querySelector(".fe-fab")},{id:"search",titleKey:"tour.step.search.title",descKey:"tour.step.search.desc",target:w=>w.querySelector(".fe-search__input")||w.querySelector(".fe-toolbar__search-toggle")},{id:"view",titleKey:"tour.step.view.title",descKey:"tour.step.view.desc",target:w=>w.querySelector(".fe-toolbar__view")},{id:"share",titleKey:"tour.step.share.title",descKey:"tour.step.share.desc",target:w=>w.querySelector(".fe__body")},{id:"help",titleKey:"tour.step.help.title",descKey:"tour.step.help.desc",target:()=>null}],l=t.ref([]),c=t.ref(0),d=t.computed(()=>l.value[c.value]??null),u=t.computed(()=>l.value.length);function p(){const w=a.root;l.value=s.filter(C=>{if(C.id==="help")return!0;if(!w)return!1;const M=C.target(w);if(!M)return!1;const L=M.getBoundingClientRect();return L.width>0&&L.height>0})}const f=t.ref(null),h=t.ref({}),_=t.ref(null);async function m(){var F;const w=d.value,C=a.root;if(!w)return;const M=C?w.target(C):null;if(!M){f.value=null,h.value={};return}const L=M.getBoundingClientRect();if(L.width<=0&&L.height<=0){f.value=null,h.value={};return}f.value={top:L.top-Po,left:L.left-Po,width:L.width+Po*2,height:L.height+Po*2},await t.nextTick();const I=window.innerWidth,V=window.innerHeight,$=Math.min(340,I-24),R=((F=_.value)==null?void 0:F.offsetHeight)??160;let P=L.bottom+Po+Jm;P+R>V-12&&(P=Math.max(12,L.top-Po-Jm-R));let q=L.left+L.width/2-$/2;q=Math.min(Math.max(12,q),I-$-12),h.value={top:`${Math.round(P)}px`,left:`${Math.round(q)}px`,width:`${$}px`}}function k(){a.open&&m()}function g(){if(c.value>=u.value-1){r("close");return}c.value+=1}function v(){c.value>0&&(c.value-=1)}function y(){r("close")}function b(w){a.open&&(w.key==="Escape"?(w.stopPropagation(),y()):w.key==="ArrowRight"||w.key==="Enter"?(w.preventDefault(),g()):w.key==="ArrowLeft"&&(w.preventDefault(),v()))}t.watch(()=>a.open,async w=>{var C;w&&(c.value=0,p(),await t.nextTick(),await m(),(C=_.value)==null||C.focus())}),t.watch(c,async()=>{var w;await m(),(w=_.value)==null||w.focus()}),t.onMounted(()=>{window.addEventListener("resize",k),window.addEventListener("scroll",k,!0)}),t.onBeforeUnmount(()=>{window.removeEventListener("resize",k),window.removeEventListener("scroll",k,!0)});const S=t.ref(!1);let N;function T(w){S.value=!!(w&&"matches"in w&&w.matches)}t.onMounted(()=>{var w;typeof window>"u"||(N=window.matchMedia("(prefers-color-scheme: dark)"),T(N),(w=N.addEventListener)==null||w.call(N,"change",T))}),t.onBeforeUnmount(()=>{var w;(w=N==null?void 0:N.removeEventListener)==null||w.call(N,"change",T)});const E=t.computed(()=>`fe-ctx-backdrop--theme-${a.theme||"auto"}`);return(w,C)=>(t.openBlock(),t.createBlock(t.Teleport,{to:"body"},[t.createVNode(t.Transition,{name:"fe-tour"},{default:t.withCtx(()=>[e.open&&d.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(["fe-tour",E.value]),"data-prefers-dark":S.value?"1":"0",role:"dialog","aria-modal":"true","aria-label":t.unref(o)("tour.aria"),onKeydown:b},[f.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"fe-tour__spot",style:t.normalizeStyle({top:f.value.top+"px",left:f.value.left+"px",width:f.value.width+"px",height:f.value.height+"px"}),"aria-hidden":"true"},null,4)):(t.openBlock(),t.createElementBlock("div",uT)),t.createElementVNode("div",{ref_key:"cardEl",ref:_,class:t.normalizeClass(["fe-tour__card",{"fe-tour__card--center":!f.value}]),style:t.normalizeStyle(f.value?h.value:{}),tabindex:"-1"},[t.createElementVNode("p",fT,t.toDisplayString(t.unref(o)("tour.progress",{n:c.value+1,m:u.value})),1),t.createElementVNode("h3",pT,t.toDisplayString(t.unref(o)(d.value.titleKey)),1),t.createElementVNode("p",hT,t.toDisplayString(t.unref(o)(d.value.descKey)),1),t.createElementVNode("div",mT,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,(M,L)=>(t.openBlock(),t.createElementBlock("span",{key:M.id,class:t.normalizeClass(["fe-tour__dot",{"is-active":L===c.value}])},null,2))),128))]),t.createElementVNode("div",gT,[t.createElementVNode("button",{type:"button",class:"fe-btn fe-tour__skip",onClick:y},t.toDisplayString(t.unref(o)("tour.skip")),1),C[0]||(C[0]=t.createElementVNode("span",{class:"fe-tour__actions-spacer"},null,-1)),c.value>0?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:"fe-btn",onClick:v},t.toDisplayString(t.unref(o)("tour.back")),1)):t.createCommentVNode("",!0),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:g},t.toDisplayString(c.value>=u.value-1?t.unref(o)("tour.done"):t.unref(o)("tour.next")),1)])],6)],42,dT)):t.createCommentVNode("",!0)]),_:1})]))}}),bT=["aria-label"],vT={class:"fe-tabs__scroll"},kT=["aria-selected","title","onClick","onKeydown","onAuxclick","onDragstart","onDragover","onDragleave","onDrop"],_T={key:0,class:"fe-tabs__splitdot","aria-hidden":"true"},wT={class:"fe-tabs__label"},ET=["aria-label","title","onClick"],ST=["aria-label","title"],xT=["aria-label","title","aria-pressed"],Qm=t.defineComponent({__name:"TabBar",props:{tabs:{},activeId:{},locale:{},splitEnabled:{type:Boolean},splitActive:{type:Boolean}},emits:["select","close","new","reorder","toggle-split"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=t.ref(null),s=t.ref(null);function l(_,m){var k;i.value=_,m.dataTransfer&&(m.dataTransfer.effectAllowed="move",m.dataTransfer.setData("text/plain",((k=a.tabs[_])==null?void 0:k.id)??""))}function c(_,m){i.value!==null&&(m.preventDefault(),m.stopPropagation(),m.dataTransfer&&(m.dataTransfer.dropEffect="move"),s.value=_)}function d(_){s.value===_&&(s.value=null)}function u(_,m){i.value!==null&&(m.preventDefault(),m.stopPropagation(),i.value!==_&&r("reorder",i.value,_),i.value=null,s.value=null)}function p(){i.value=null,s.value=null}function f(_){_.button===1&&_.preventDefault()}function h(_,m){m.button===1&&(m.preventDefault(),m.stopPropagation(),r("close",_))}return(_,m)=>(t.openBlock(),t.createElementBlock("div",{class:"fe-tabs",role:"tablist","aria-label":t.unref(o)("tabs.strip")},[t.createElementVNode("div",vT,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.tabs,(k,g)=>(t.openBlock(),t.createElementBlock("div",{key:k.id,class:t.normalizeClass(["fe-tabs__tab",{"is-active":k.id===e.activeId,"is-dragover":s.value===g&&i.value!==null&&i.value!==g}]),role:"tab","aria-selected":k.id===e.activeId?"true":"false",tabindex:"0",draggable:"true",title:k.label,onClick:v=>r("select",k.id),onKeydown:t.withKeys(t.withModifiers(v=>r("select",k.id),["prevent"]),["enter"]),onMousedown:m[0]||(m[0]=v=>f(v)),onAuxclick:v=>h(k.id,v),onDragstart:v=>l(g,v),onDragover:v=>c(g,v),onDragleave:v=>d(g),onDrop:v=>u(g,v),onDragend:p},[k.split?(t.openBlock(),t.createElementBlock("span",_T)):t.createCommentVNode("",!0),t.createElementVNode("span",wT,t.toDisplayString(k.label),1),t.createElementVNode("button",{type:"button",class:"fe-tabs__close","aria-label":t.unref(o)("tabs.close"),title:t.unref(o)("tabs.close"),onClick:t.withModifiers(v=>r("close",k.id),["stop"])},"Γ—",8,ET)],42,kT))),128))]),t.createElementVNode("button",{type:"button",class:"fe-tabs__new","aria-label":t.unref(o)("tabs.new"),title:t.unref(o)("tabs.new"),onClick:m[1]||(m[1]=k=>r("new"))},"+",8,ST),e.splitEnabled!==!1?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["fe-tabs__split",{"is-active":e.splitActive}]),"aria-label":e.splitActive?t.unref(o)("tabs.split_off"):t.unref(o)("tabs.split"),title:e.splitActive?t.unref(o)("tabs.split_off"):t.unref(o)("tabs.split"),"aria-pressed":e.splitActive?"true":"false",onClick:m[2]||(m[2]=k=>r("toggle-split"))},[...m[3]||(m[3]=[t.createElementVNode("svg",{class:"fe-ficon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",focusable:"false"},[t.createElementVNode("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2"}),t.createElementVNode("path",{d:"M12 4v16"})],-1)])],10,xT)):t.createCommentVNode("",!0)],8,bT))}}),CT=["aria-label"],NT={class:"fe-split__crumbs"},BT=["title"],TT=["title","onClick"],DT=["aria-label","title"],AT={key:0,class:"fe-split__state",role:"status"},MT={key:1,class:"fe-split__state"},OT={key:2,class:"fe-split__state"},IT="application/x-brf-files",RT="application/x-brf-files-src",e1=t.defineComponent({__name:"SecondaryPane",props:{api:{},initialPath:{},locale:{},qualify:{type:Function},toUser:{type:Function},clamp:{type:Function},rootLabel:{},floor:{},multiRoot:{type:Boolean},virtualRows:{type:Function},active:{type:Boolean},viewMode:{},thumbSrc:{type:Function},keepBadgeFor:{type:Function},trashVisible:{type:Boolean},navOffersTrash:{type:Boolean}},emits:["navigate","activate","close","open-tab","transfer","context","open-trash"],setup(e,{expose:n,emit:a}){const r=e,o=a,{t:i}=Dt(()=>r.locale),s=t.ref(""),l=t.ref([]),c=t.ref(!1),d=t.ref(""),u=t.ref(new Set);function p(U){return U.mime_type==="inode/storage"}const f=t.computed(()=>!!r.multiRoot&&!(s.value??"").replace(/^\/+|\/+$/g,""));async function h(U){const z=r.clamp(U??s.value??"");c.value=!0,d.value="";try{if(r.multiRoot&&!z){l.value=r.virtualRows?r.virtualRows():[],s.value="",u.value=new Set,o("navigate","");return}const Y=await r.api.index(r.qualify(z));l.value=am(Y.files),rm(l.value,Y.adapter,Y.dirname,r.trashVisible!==!1,{navOffersTrash:r.navOffersTrash})&&om(l.value,Y.adapter,r.api),s.value=r.toUser(Y.dirname),u.value=new Set,o("navigate",s.value)}catch(Y){d.value=Y instanceof Error?Y.message:String(Y)}finally{c.value=!1}}h(r.initialPath??"");const _=t.computed(()=>{const U=(s.value||"").replace(/^\/+|\/+$/g,""),z=U?U.split("/"):[],Y=(r.floor||"").replace(/^\/+|\/+$/g,""),Q=[];let oe="";for(const he of z)oe=oe?`${oe}/${he}`:he,!(Y&&!(oe===Y||oe.startsWith(Y+"/")))&&Q.push({label:he,target:oe,last:!1});return Q.length>0&&(Q[Q.length-1].last=!0),Q}),m=t.computed(()=>!r.floor);function k(U){o("activate"),h(U)}function g(U,z){o("activate");const Y=z.ctrl||z.shift,Q=new Set(Y?u.value:[]);Y&&Q.has(U.path)?Q.delete(U.path):Q.add(U.path),u.value=Q}function v(U,z){z.preventDefault(),z.stopPropagation(),o("activate"),u.value.has(U.path)||(u.value=new Set([U.path])),o("context",U,z)}function y(U){U.preventDefault(),U.stopPropagation(),o("activate"),u.value=new Set,o("context",null,U)}function b(U,z){E.value=!1,!(U.type!=="dir"||p(U))&&w(z)&&C(z,U.path)}function S(U){if(U.type==="dir"){if(U.basename===".trash"){o("activate"),o("open-trash");return}h(p(U)?U.path:r.toUser(U.path))}}function N(){u.value=new Set}function T(U,z){if(!z.dataTransfer)return;if(p(U)||f.value||U.basename===".trash"){z.preventDefault();return}u.value.has(U.path)||(u.value=new Set([U.path]));const Y=l.value.filter(Q=>u.value.has(Q.path)&&!p(Q)).map(Q=>({path:Q.path,basename:Q.basename,type:Q.type}));if(Y.length===0){z.preventDefault();return}z.dataTransfer.setData(IT,JSON.stringify(Y)),z.dataTransfer.setData(RT,r.qualify(s.value)),z.dataTransfer.setData("text/plain",Y.map(Q=>Q.path).join(`
33
33
  `)),z.dataTransfer.effectAllowed="move"}const E=t.ref(!1);function w(U){return la(U)}function C(U,z){const Y=os(U);if(!Y||!z)return;const Q=Ad(U),oe=Y.map(he=>he.path).filter(he=>he&&he!==z&&!z.startsWith(he+"/"));oe.length!==0&&(U.preventDefault(),U.stopPropagation(),o("transfer",{sources:oe,targetWire:z,originWire:Q}))}function M(U){!w(U)||f.value||(U.preventDefault(),U.stopPropagation(),U.dataTransfer&&(U.dataTransfer.dropEffect="move"),E.value=!0)}function L(){E.value=!1}function I(U){E.value=!1,!(!w(U)||f.value)&&C(U,r.qualify(s.value))}function V(){const U=(s.value??"").replace(/^\/+|\/+$/g,""),z=(r.floor||"").replace(/^\/+|\/+$/g,"");if(!U||U===z)return;const Y=U.lastIndexOf("/");h(Y===-1?"":U.slice(0,Y))}function $(){u.value=new Set(l.value.filter(U=>!p(U)).map(U=>U.path))}function R(){return l.value.filter(U=>u.value.has(U.path))}function P(){const U=R()[0];U&&U.type==="dir"&&S(U)}function q(){return h()}function F(){return s.value}return n({reload:q,goUp:V,selectAll:$,openSelected:P,selectedNodes:R,getPath:F}),(U,z)=>(t.openBlock(),t.createElementBlock("section",{class:t.normalizeClass(["fe-split",{"fe-pane--focus":e.active}]),role:"region","aria-label":t.unref(i)("split.pane"),onPointerdown:z[3]||(z[3]=Y=>o("activate"))},[t.createElementVNode("header",NT,[m.value?(t.openBlock(),t.createElementBlock("button",{key:0,type:"button",class:t.normalizeClass(["fe-split__crumb",{"is-last":_.value.length===0}]),title:e.rootLabel,onClick:z[0]||(z[0]=Y=>k(""))},t.toDisplayString(e.rootLabel),11,BT)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(_.value,Y=>(t.openBlock(),t.createElementBlock(t.Fragment,{key:Y.target},[z[4]||(z[4]=t.createElementVNode("span",{class:"fe-split__sep","aria-hidden":"true"},"β€Ί",-1)),t.createElementVNode("button",{type:"button",class:t.normalizeClass(["fe-split__crumb",{"is-last":Y.last}]),title:Y.label,onClick:Q=>k(Y.target)},t.toDisplayString(Y.label),11,TT)],64))),128)),z[5]||(z[5]=t.createElementVNode("span",{class:"fe-split__spacer"},null,-1)),t.createElementVNode("button",{type:"button",class:"fe-split__closebtn","aria-label":t.unref(i)("split.close"),title:t.unref(i)("split.close"),onClick:z[1]||(z[1]=Y=>o("close"))},"Γ—",8,DT)]),t.createElementVNode("div",{class:t.normalizeClass(["fe-split__body",{"is-dropover":E.value}]),onClick:t.withModifiers(N,["self"]),onContextmenu:y,onDragover:M,onDragleave:L,onDrop:I},[c.value&&l.value.length===0?(t.openBlock(),t.createElementBlock("div",AT,t.toDisplayString(t.unref(i)("loading")),1)):d.value?(t.openBlock(),t.createElementBlock("div",MT,[t.createElementVNode("span",null,t.toDisplayString(t.unref(i)("split.error")),1),t.createElementVNode("button",{type:"button",class:"fe-btn",onClick:z[2]||(z[2]=()=>h())},t.toDisplayString(t.unref(i)("split.retry")),1)])):l.value.length===0?(t.openBlock(),t.createElementBlock("div",OT,t.toDisplayString(t.unref(i)("empty.folder")),1)):(e.viewMode??"list")==="list"?(t.openBlock(),t.createBlock(pm,{key:3,files:l.value,selected:u.value,locale:e.locale,loading:c.value,"keep-badge-for":e.keepBadgeFor,onClickRow:g,onDblRow:S,onContextRow:v,onItemDragStart:T,onItemDropInto:b},null,8,["files","selected","locale","loading","keep-badge-for"])):e.viewMode==="grid"?(t.openBlock(),t.createBlock(hm,{key:4,files:l.value,selected:u.value,locale:e.locale,loading:c.value,"thumb-src":e.thumbSrc,"keep-badge-for":e.keepBadgeFor,onClickCard:g,onDblCard:S,onContextCard:v,onItemDragStart:T,onItemDropInto:b},null,8,["files","selected","locale","loading","thumb-src","keep-badge-for"])):(t.openBlock(),t.createBlock(mm,{key:5,files:l.value,selected:u.value,locale:e.locale,loading:c.value,"thumb-src":e.thumbSrc,onClickCard:g,onDblCard:S,onContextCard:v,onItemDragStart:T,onItemDropInto:b},null,8,["files","selected","locale","loading","thumb-src"]))],34)],42,CT))}});function s0(){try{return crypto.randomUUID()}catch{return`t${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}}function t1(e){const n=t.ref([]),a=t.ref(""),r=t.computed(()=>n.value.find(k=>k.id===a.value)??null),o=t.computed(()=>n.value.findIndex(k=>k.id===a.value)),i=t.computed(()=>n.value.length>1);function s(){if(!e.storageKey)return!1;try{const k=localStorage.getItem(e.storageKey);if(!k)return!1;const g=JSON.parse(k);if(!g||!Array.isArray(g.tabs)||g.tabs.length===0)return!1;const v=[];for(const y of g.tabs){if(!y||typeof y.path!="string")continue;const b=typeof y.viewMode=="string"&&y.viewMode?y.viewMode:"list",S=y.split,N=S&&typeof S=="object"&&typeof S.path=="string"?{path:S.path,viewMode:typeof S.viewMode=="string"&&S.viewMode?S.viewMode:void 0}:null;v.push({id:typeof y.id=="string"&&y.id?y.id:s0(),path:y.path,viewMode:b,split:N})}return v.length===0?!1:(n.value=v,a.value=v.some(y=>y.id===g.active)?String(g.active):v[0].id,!0)}catch{return!1}}function l(){if(e.storageKey)try{localStorage.setItem(e.storageKey,JSON.stringify({v:1,active:a.value,tabs:n.value}))}catch{}}t.watch([n,a],l,{deep:!0});function c(k,g){if(n.value.length>0)return;const v={id:s0(),path:k,viewMode:g,split:null};n.value=[v],a.value=v.id}function d(k){const g=r.value;g&&(k.path!==void 0&&(g.path=k.path),k.viewMode!==void 0&&(g.viewMode=k.viewMode))}function u(k,g){const v={id:s0(),path:k,viewMode:g.viewMode,split:g.split??null},y=o.value;return n.value.splice(y===-1?n.value.length:y+1,0,v),g.background||(a.value=v.id),v}function p(k){if(n.value.length<=1)return null;const g=n.value.findIndex(b=>b.id===k);if(g===-1)return null;const v=n.value[g].id===a.value;if(n.value.splice(g,1),!v)return null;const y=n.value[Math.min(g,n.value.length-1)];return a.value=y.id,y}function f(k){const g=n.value.find(v=>v.id===k);return!g||g.id===a.value?null:(a.value=g.id,g)}function h(k){if(n.value.length<2)return null;const g=o.value===-1?0:o.value,v=n.value[(g+k+n.value.length)%n.value.length];return f(v.id)}function _(k,g){if(k===g||k<0||g<0||k>=n.value.length||g>=n.value.length)return;const v=[...n.value],[y]=v.splice(k,1);v.splice(g,0,y),n.value=v}function m(k){const g=r.value;g&&(g.split=k)}return{tabs:n,activeId:a,activeTab:r,activeIndex:o,hasMultiple:i,restore:s,seed:c,syncActive:d,openTab:u,closeTab:p,activate:f,step:h,move:_,setSplit:m}}const zT=["placeholder","disabled"],LT=["placeholder","disabled"],FT=["placeholder","disabled","onKeydown"],$T={class:"fe-e2e-warn",role:"alert"},PT={key:0,class:"fe-e2e-rk__escrow",role:"note"},VT={class:"fe-e2e-ack"},UT=["disabled"],HT={key:1,class:"fe-form__error"},KT=["disabled"],GT=["disabled"],n1=t.defineComponent({__name:"EncryptedFolderModal",props:{open:{type:Boolean},locale:{},busy:{type:Boolean},escrowKid:{}},emits:["close","submit"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=t.ref(""),s=t.ref(""),l=t.ref(""),c=t.ref(!1),d=t.ref(null);t.watch(()=>a.open,p=>{p&&(i.value="",s.value="",l.value="",c.value=!1,d.value=null)});function u(){if(a.busy)return;const p=i.value.trim();if(!p){d.value=o("modal.newfolder.placeholder");return}if(/[\\/]/.test(p)||p==="."||p===".."||p.startsWith(".filex")){d.value=o("e2e.create.bad_name");return}if(s.value.length<Ih){d.value=o("e2e.create.pw_short");return}if(s.value!==l.value){d.value=o("e2e.create.pw_mismatch");return}if(!c.value){d.value=o("e2e.create.ack_required");return}d.value=null,r("submit",{name:p,password:s.value})}return(p,f)=>(t.openBlock(),t.createBlock(va,{open:e.open,title:t.unref(o)("e2e.create.title"),size:"sm",onClose:f[5]||(f[5]=h=>r("close"))},{actions:t.withCtx(()=>[t.createElementVNode("button",{type:"button",class:"fe-btn",disabled:e.busy,onClick:f[4]||(f[4]=h=>r("close"))},t.toDisplayString(t.unref(o)("modal.newfolder.cancel")),9,KT),t.createElementVNode("button",{type:"button",class:"fe-btn fe-btn--primary",disabled:e.busy,onClick:u},t.toDisplayString(e.busy?t.unref(o)("e2e.create.busy"):t.unref(o)("e2e.create.create")),9,GT)]),default:t.withCtx(()=>[t.createElementVNode("form",{class:"fe-e2e-form",onSubmit:t.withModifiers(u,["prevent"])},[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=h=>i.value=h),type:"text",class:"fe-input",placeholder:t.unref(o)("modal.newfolder.placeholder"),autocomplete:"off",disabled:e.busy},null,8,zT),[[t.vModelText,i.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":f[1]||(f[1]=h=>s.value=h),type:"password",class:"fe-input",placeholder:t.unref(o)("e2e.create.pw_placeholder"),autocomplete:"new-password",disabled:e.busy},null,8,LT),[[t.vModelText,s.value]]),t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":f[2]||(f[2]=h=>l.value=h),type:"password",class:"fe-input",placeholder:t.unref(o)("e2e.create.pw2_placeholder"),autocomplete:"new-password",disabled:e.busy,onKeydown:t.withKeys(t.withModifiers(u,["prevent"]),["enter"])},null,40,FT),[[t.vModelText,l.value]]),t.createElementVNode("div",$T,[t.createElementVNode("strong",null,t.toDisplayString(t.unref(o)("e2e.create.warn_title")),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("e2e.create.warn_body")),1)]),e.escrowKid?(t.openBlock(),t.createElementBlock("div",PT,[t.createElementVNode("strong",null,t.toDisplayString(t.unref(o)("e2e.create.escrow_title")),1),t.createElementVNode("p",null,t.toDisplayString(t.unref(o)("e2e.create.escrow_body")),1)])):t.createCommentVNode("",!0),t.createElementVNode("label",VT,[t.withDirectives(t.createElementVNode("input",{"onUpdate:modelValue":f[3]||(f[3]=h=>c.value=h),type:"checkbox",disabled:e.busy},null,8,UT),[[t.vModelCheckbox,c.value]]),t.createElementVNode("span",null,t.toDisplayString(t.unref(o)("e2e.create.ack")),1)]),d.value?(t.openBlock(),t.createElementBlock("p",HT,t.toDisplayString(d.value),1)):t.createCommentVNode("",!0)],32)]),_:1},8,["open","title"]))}}),qT={class:"fe-e2e-rk"},WT={class:"fe-e2e-rk__lead"},jT={class:"fe-e2e-rk__key","aria-label":"recovery key"},YT={class:"fe-e2e-rk__actions"},XT={class:"fe-e2e-warn",role:"alert"},ZT={key:0,class:"fe-e2e-rk__escrow",role:"note"},JT={class:"fe-e2e-rk__kid"},QT={class:"fe-e2e-ack"},eD=["disabled"],a1=t.defineComponent({__name:"RecoveryKeyModal",props:{open:{type:Boolean},locale:{},recoveryKey:{},folderName:{},escrowKid:{},variant:{}},emits:["close"],setup(e,{emit:n}){const a=e,r=n,{t:o}=Dt(()=>a.locale),i=t.ref(!1),s=t.ref(!1);t.watch(()=>a.open,p=>{p&&(i.value=!1,s.value=!1)});const l=t.computed(()=>a.variant==="upgraded"?o("e2e.recovery.title_upgraded"):o("e2e.recovery.title"));async function c(){try{await navigator.clipboard.writeText(a.recoveryKey),s.value=!0,window.setTimeout(()=>s.value=!1,2e3)}catch{s.value=!1}}function d(){const p=a.folderName||"folder",f=`filex recovery key
34
34
  folder: ${p}
35
35