Files
aaPanel/BTPanel/static/vite/js/feature-FilePicker.js
T
2026-07-06 09:16:25 +08:00

41 lines
10 KiB
JavaScript

;(() => {
const hrefs = ["../css/feature-FilePicker.css?v=1782899742524"]
const stylesheetSelector = "link[rel=stylesheet]"
const loaded = new Set(Array.from(document.querySelectorAll(stylesheetSelector)).map(link => link.href))
const version = "1782899742524"
const findLoadedLink = href => Array.from(document.querySelectorAll(stylesheetSelector)).find(link => link.href === href)
const removeAfterLoad = (freshLink, staleLink) => {
const remove = () => staleLink.remove()
if (freshLink.sheet) {
requestAnimationFrame(remove)
return
}
freshLink.addEventListener("load", remove, { once: true })
}
for (const link of Array.from(document.querySelectorAll(stylesheetSelector))) {
const url = new URL(link.href, location.href)
if (url.origin !== location.origin || url.searchParams.get("v") === version) continue
url.searchParams.set("v", version)
if (loaded.has(url.href)) {
const freshLink = findLoadedLink(url.href)
if (freshLink && freshLink !== link) removeAfterLoad(freshLink, link)
continue
}
const freshLink = document.createElement("link")
freshLink.rel = "stylesheet"
freshLink.href = url.href
link.parentNode?.insertBefore(freshLink, link.nextSibling)
loaded.add(url.href)
removeAfterLoad(freshLink, link)
}
for (const href of hrefs) {
const url = new URL(href, import.meta.url).href
if (loaded.has(url)) continue
const link = document.createElement("link")
link.rel = "stylesheet"
link.href = url
document.head.appendChild(link)
loaded.add(url)
}
})();
import{r as e}from"./rolldown-runtime.js?v=1782899742524";import{Cn as t,Dn as n,En as r,Er as i,Fn as a,In as o,Rn as s,Sn as c,Yn as l,Zr as u,bn as d,cr as f,dn as p,f as m,ir as h,kn as g,mn as _,mr as v,nn as y,nr as b,qn as x,sr as S,un as C,xn as w,yn as T,yr as E}from"./vendor-utils.js?v=1782899742524";import{l as ee}from"./vendor-vue.js?v=1782899742524";import{G as D,J as O,K as k,b as A,bt as j,ht as M,xt as N}from"./vendor-naive.js?v=1782899742524";import{Uf as P,dp as F,jf as I}from"./app.js?v=1782899742524";import{Sf as L,_f as te,gf as R}from"./app-shared.js?v=1782899742524";y();var z={class:`path-dir`},B=[`onClick`],V={class:`path-dir`},H={class:`flex-1`},U=I(g({__name:`navigator`,props:{path:{default:``},pathModifiers:{}},emits:o([`change`,`refresh`],[`update:path`]),setup(e,{emit:r}){let a=r,{t:o}=ee(),c=b(e,`path`),g=h(`pathListRef`),y=E(``),D=E(0);m(g,([e])=>{e&&(D.value=e.contentRect.width)});let O=T(()=>c.value.split(`/`).filter(Boolean).map((e,t)=>({name:e,originalIndex:t}))),A=e=>`/${O.value.slice(0,Math.max(0,e)).map(e=>e.name).join(`/`)}`,P={rootItem:80,arrow:20,padding:12,maxText:150,char:8},F=T(()=>{if(!D.value||O.value.length===0)return O.value;let e=D.value-P.rootItem,t=[...O.value].reverse(),n=[];for(let r of t){let t=Math.min(r.name.length*P.char,P.maxText)+P.arrow+P.padding;if(e<t)break;n.unshift(r),e-=t}return n}),I=T(()=>F.value.length<O.value.length),L=T(()=>{let e=O.value.map(e=>({key:e.originalIndex,label:e.name,icon:()=>n(`i`,{class:`i-custom:file-dir text-16px`},null)}));return e.unshift({key:`/`,label:o(`FolderPicker.RootDir`),icon:()=>n(`i`,{class:`i-custom:file-dir text-16px`},null)}),e}),te=()=>{c.value=A(O.value.length-1),a(`change`,c.value)},R=(e,t)=>{typeof e==`number`?c.value=A(e+1):e===`/`&&(c.value=`/`),a(`change`,c.value),t?.stopPropagation()},U=e=>{R(e)},W=E(!0),G=h(`inputRef`),ne=async()=>{W.value=!1,y.value=c.value,await s(),G.value?.focus()},K=()=>{W.value=!0,y.value!==c.value&&(c.value=y.value,a(`change`,y.value))},q=()=>{G.value?.blur()},J=()=>{a(`refresh`)};return(e,r)=>{let a=M,s=k,c=N,m=j;return x(),w(m,null,{default:S(()=>[n(a,{class:`nav-btn`,onClick:te},{default:S(()=>[...r[3]||(r[3]=[d(`i`,{class:`i-common-back text-14px`},null,-1)])]),_:1}),f(d(`div`,{ref_key:`pathListRef`,ref:g,class:`path-list`,onClick:ne},[n(s,{trigger:`click`,placement:`bottom-start`,options:i(L),onSelect:U},{default:S(()=>[f(d(`div`,{class:`path-item`,onClick:r[0]||(r[0]=e=>e.stopPropagation())},[...r[4]||(r[4]=[d(`div`,{class:`path-dir`},[d(`i`,{class:`i-file-dir text-16px`})],-1),d(`div`,{class:`path-arrow reversal`},[d(`i`,{class:`i-common-arrow-right`})],-1)])],512),[[C,i(I)]])]),_:1},8,[`options`]),f(d(`div`,{class:`path-item`,onClick:r[1]||(r[1]=e=>R(`/`,e))},[d(`div`,z,u(i(o)(`FolderPicker.RootDir`)),1),r[5]||(r[5]=d(`div`,{class:`path-arrow`},[d(`i`,{class:`i-common-arrow-right`})],-1))],512),[[C,!i(I)]]),(x(!0),t(_,null,l(i(F),(e,n)=>(x(),t(`div`,{key:`${e.name}_${n}`,class:`path-item`,onClick:t=>R(e.originalIndex,t)},[d(`div`,V,u(e.name),1),r[6]||(r[6]=d(`div`,{class:`path-arrow`},[d(`i`,{class:`i-common-arrow-right`})],-1))],8,B))),128))],512),[[C,i(W)]]),f(d(`div`,H,[n(c,{ref_key:`inputRef`,ref:G,value:i(y),"onUpdate:value":r[2]||(r[2]=e=>v(y)?y.value=e:null),placeholder:i(o)(`FolderPicker.PathPlaceholder`),onBlur:K,onKeydown:p(q,[`enter`])},null,8,[`value`,`placeholder`])],512),[[C,!i(W)]]),n(a,{class:`nav-btn`,onClick:J},{default:S(()=>[...r[7]||(r[7]=[d(`i`,{class:`i-common-refresh text-14px`},null,-1)])]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-3fa6b1c3`]]);y();var W={class:`folder-picker`},G={class:`header`},ne={class:`header-content`},K={class:`navigator-wrapper`},q={class:`search-wrapper`},J={class:`toolbar`},re={class:`main-content`},ie={class:`sidebar`},ae={class:`dist-list`},oe=[`onClick`],se={class:`item-info`},ce={class:`name`},le={class:`size`},ue={class:`file-list-container`},de={class:`folder-picker-footer`},fe={class:`flex items-center gap-10px pl-96px`},pe={class:`w-240px`},me={class:`flex gap-10px`};function Y(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!a(e)}var X=g({__name:`index`,props:{path:{default:`/www/wwwroot`},checkedType:{default:()=>[`dir`]},callback:{}},emits:[`close`],setup(e,{emit:a}){let o=e,f=a,{t:m}=ee(),h=E(null),g=E(o.path),y=E(!1),b=E(null),C=E(``),w=E([]),k=E(``),j=E([]),I=E(null),z=E(``),B=E(null),V=e=>{I.value||(I.value=e,z.value=``,j.value.unshift({filename:`__creating__`,path:``,modify_time:0,permission:``,owner:``,type:e,isCreate:!0}),s(()=>{B.value?.focus()}))},H=()=>{I.value&&j.value.shift(),I.value=null,z.value=``},X=async()=>{if(z.value){y.value=!0;try{let e=g.value===`/`?`/`:`${g.value}/`;I.value===`file`?await te({path:e+z.value}):await R({path:e+z.value}),H(),Q()}finally{y.value=!1}}},Z=T(()=>{let e=C.value.split(`/`).filter(Boolean);return e.length>0?e[e.length-1]:``}),Q=async()=>{y.value=!0;try{let{message:e}=await L({path:g.value,disk:!0,search:k.value});if(F(e)){let t=e.PATH,n=[];e.DIR.forEach(e=>{n.push(he(e,`dir`,t))}),e.FILES.forEach(e=>{n.push(he(e,`file`,t))}),j.value=n,g.value=t,o.checkedType.includes(`dir`)?C.value=t:C.value=``,e.DISK&&(w.value=e.DISK),b.value=null,s(()=>{h.value?.scrollTo({top:0})})}}finally{y.value=!1}},he=(e,t,n)=>{let r=e.split(`;`),i=r[0],a=Number(r[2]),o=r[3],s=r[4];return{path:(n===`/`?`/`:`${n}/`)+i,filename:i,modify_time:a,permission:o,owner:s,type:t}},ge=()=>{k.value=``,Q()},_e=e=>{g.value=e,k.value=``,Q()},$=()=>{s(()=>{Q()})},ve=e=>{if(e.isCreate)return{};let t=o.checkedType.includes(e.type),n=o.checkedType.length===1&&o.checkedType[0]===`file`;return{class:[`cursor-pointer`,b.value===e.filename?`selected-row`:``],onClick:()=>{if(n&&e.type===`dir`){g.value=`${g.value}/${e.filename}`.replace(`//`,`/`),k.value=``,Q();return}if(t){if(b.value===e.filename){b.value=null,C.value=``;return}b.value=e.filename,C.value=e.path}},onDblclick:()=>{n&&e.type===`dir`||e.type===`dir`&&(g.value=`${g.value}/${e.filename}`.replace(`//`,`/`),k.value=``,Q())}}},ye=[{title:()=>m(`FolderPicker.Name`),key:`name`,colSpan:e=>e.isCreate?3:1,render(e){if(e.isCreate){let e,t;return n(`div`,{class:`flex items-center gap-16px`},[n(`div`,{class:`flex items-center gap-8px`},[n(`i`,{class:[`text-18px`,I.value===`dir`?`i-file-dir`:`i-file-file text-base`]},null),n(`div`,{class:`w-220px`},[n(N,{ref:B,value:z.value,onUpdateValue:e=>z.value=e,size:`small`,autofocus:!0,placeholder:m(`FolderPicker.NamePlaceholder`),onKeydown:e=>{e.key===`Enter`&&X()}},null)])]),n(`div`,{class:`flex items-center gap-8px`},[n(M,{size:`small`,type:`primary`,onClick:X},Y(e=m(`FolderPicker.Create`))?e:{default:()=>[e]}),n(M,{size:`small`,onClick:H},Y(t=m(`Public.Btn.Cancel`))?t:{default:()=>[t]})])])}return n(`div`,{class:`flex items-center gap-8px`},[n(`i`,{class:[`text-18px`,e.type===`dir`?`i-file-dir`:`i-file-file text-base`]},null),n(`div`,{class:`w-0 flex-1 leading-18px`},[n(O,null,{default:()=>[e.filename]})])])}},{title:()=>m(`FolderPicker.ModifyTime`),key:`modify_time`,width:180,render(e){return e.isCreate?null:P(e.modify_time)}},{title:()=>m(`FolderPicker.PermissionOwner`),key:`permission`,width:150,render(e){return e.isCreate?null:`${e.permission} / ${e.owner}`}}];Q();let be=()=>{let e=C.value,t=e.substring(e.lastIndexOf(`/`)+1),n=j.value.find(e=>e.filename===t);o.callback?.(e,n),xe()},xe=()=>{f(`close`)};return(e,a)=>{let o=A,s=D;return x(),t(`div`,W,[d(`div`,G,[d(`div`,ne,[d(`div`,K,[n(U,{path:i(g),"onUpdate:path":a[0]||(a[0]=e=>v(g)?g.value=e:null),onChange:ge,onRefresh:$},null,8,[`path`])]),d(`div`,q,[n(i(N),{value:i(k),"onUpdate:value":a[1]||(a[1]=e=>v(k)?k.value=e:null),clearable:``,placeholder:i(m)(`FolderPicker.SearchPlaceholder`),onKeydown:p($,[`enter`]),onClear:$},{suffix:S(()=>[d(`i`,{class:`i-common-search search-icon`,onClick:$})]),_:1},8,[`value`,`placeholder`])])]),d(`div`,J,[n(i(M),{size:`small`,onClick:a[2]||(a[2]=e=>V(`file`))},{default:S(()=>[r(u(i(m)(`FolderPicker.NewFile`)),1)]),_:1}),n(i(M),{size:`small`,onClick:a[3]||(a[3]=e=>V(`dir`))},{default:S(()=>[r(u(i(m)(`file.buttonGroup.createOptions.newDirectory`)),1)]),_:1})])]),d(`div`,re,[d(`div`,ie,[n(o,null,{default:S(()=>[d(`div`,ae,[(x(!0),t(_,null,l(i(w),e=>(x(),t(`div`,{key:e.path,class:`dist-item`,onClick:t=>_e(e.path)},[a[4]||(a[4]=d(`i`,{class:`disk-icon i-file-disk`},null,-1)),d(`div`,se,[d(`div`,ce,[n(i(O),null,{default:S(()=>[r(u(e.path),1)]),_:2},1024)]),d(`div`,le,` (`+u(e.size[0])+`) `,1)])],8,oe))),128))])]),_:1})]),d(`div`,ue,[n(s,{ref_key:`tableRef`,ref:h,"flex-height":``,columns:ye,data:i(j),class:`file-table`,"row-props":ve,bordered:!1,"virtual-scroll":!0,loading:i(y)},null,8,[`data`,`loading`])])]),d(`div`,de,[d(`div`,fe,[i(Z)?(x(),t(_,{key:0},[d(`span`,null,u(i(m)(`FolderPicker.CurrentSelection`)),1),d(`div`,pe,[n(i(N),{value:i(Z),readonly:``,size:`small`},null,8,[`value`])])],64)):c(``,!0)]),d(`div`,me,[n(i(M),{class:`cancel-btn`,size:`small`,onClick:xe},{default:S(()=>[r(u(i(m)(`Public.Btn.Cancel`)),1)]),_:1}),n(i(M),{type:`primary`,size:`small`,disabled:!i(C),onClick:be},{default:S(()=>[r(u(i(m)(`Public.Btn.Confirm`)),1)]),_:1},8,[`disabled`])])])])}}}),Z=e({default:()=>Q}),Q=I(X,[[`__scopeId`,`data-v-07327c2c`]]);export{U as n,Z as t};