4 lines
33 KiB
JavaScript
4 lines
33 KiB
JavaScript
var nt=Object.defineProperty;var st=(r,a,e)=>a in r?nt(r,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[a]=e;var fe=(r,a,e)=>(st(r,typeof a!="symbol"?a+"":a,e),e);import{dy as be,cm as Ie,cl as ot,ba as je,ax as Pe,Z as De,cP as rt,bT as lt,c as G,A as it,dz as ct,$ as N,cJ as ut,bw as Ne,dA as dt,dB as ie,dC as ze,bs as ft,dg as Be,dD as pt,ao as vt,v as le,aD as ve,bl as ne,ap as te,at as ht,dE as xe,af as X,dF as mt,dG as He,ay as Ge,ag as K,ae as A,c6 as qe,c5 as gt,Y as Q,dH as ee,a0 as yt,aH as wt,aI as kt,E as he,dI as Ce,aw as se,dJ as bt,U as re,cU as Te,dl as q,dK as It,dL as xt,aK as St,dM as Re,cH as $e,c3 as Ke,dN as Qe,W as Se,d6 as _t,dO as Je,dP as Ee,s as Ft,dm as Ae,dp as Le,dQ as Pt,dR as Ct,O as ae,cT as Tt,dS as Et,cX as Mt,dT as Dt,m as We,L as At,cS as Ue,dU as Lt,dV as Ot,dW as Nt,dX as Rt,cn as $t,dY as Wt,dZ as Ut,d_ as Vt,d$ as jt,e0 as zt,cR as Bt,r as Ht,c0 as Gt,ar as qt,e1 as Xe,e2 as Kt}from"./index-c18d3071.js";import{_ as Qt,C as Jt,g as Xt}from"./shortcut-6b6e6109.js";import{i as Yt}from"./_isIterateeCall-253dc00c.js";function Zt(r){return r&&r.length?r[0]:void 0}var ea=Math.ceil,ta=Math.max;function aa(r,a,e,t){for(var i=-1,s=ta(ea((a-r)/(e||1)),0),F=Array(s);s--;)F[t?s:++i]=r,r+=e;return F}function na(r){return function(a,e,t){return t&&typeof t!="number"&&Yt(a,e,t)&&(e=t=void 0),a=be(a),e===void 0?(e=a,a=0):e=be(e),t=t===void 0?a<e?1:-1:be(t),aa(a,e,t,r)}}var sa=na();const Ye=sa;class we{static run(a){const e=Object.assign({immediately:!0,id:-1,isFinished:!1,errorHandleMethod:"ignore"},a);let t,i;const s=new Promise((v,x)=>{i=v,t=x}),F=()=>{e.isFinished=!0,clearTimeout(e.id)},L=()=>Ie(this,void 0,void 0,function*(){try{e.res=yield e.action(),e.validator&&e.validator(e.res)&&(i(e.res),F())}catch(v){we.silent||console.error(v),e.errorHandleMethod==="stop"&&(F(),t(v))}}),P=()=>{e.isFinished||(e.id=setTimeout(()=>Ie(this,void 0,void 0,function*(){yield L(),P()}),e.pollInterval))};return setTimeout(()=>Ie(this,void 0,void 0,function*(){e.immediately&&(yield L()),P()}),0),ot({task:e,clearTask:F,completedTask:s})}}we.silent=!1;const de=(...r)=>{document.addEventListener(...r),je(()=>document.removeEventListener(...r))},pe=new WeakMap;function oa(r,a){return{useHookShareState:t=>{const i=lt();Pe(i),pe.has(i)||(pe.set(i,De(r(i,t??(a==null?void 0:a())))),je(()=>{pe.delete(i)}));const s=pe.get(i);return Pe(s),{state:s,toRefs(){return rt(s)}}}}}var ra={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"database",theme:"outlined"};const la=ra;function Ve(r){for(var a=1;a<arguments.length;a++){var e=arguments[a]!=null?Object(arguments[a]):{},t=Object.keys(e);typeof Object.getOwnPropertySymbols=="function"&&(t=t.concat(Object.getOwnPropertySymbols(e).filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable}))),t.forEach(function(i){ia(r,i,e[i])})}return r}function ia(r,a,e){return a in r?Object.defineProperty(r,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[a]=e,r}var Oe=function(a,e){var t=Ve({},a,e.attrs);return G(it,Ve({},t,{icon:la}),null)};Oe.displayName="DatabaseOutlined";Oe.inheritAttrs=!1;const ca=Oe,ua=ct("useBatchDownloadStore",()=>{const r=N([]);return{selectdFiles:r,addFiles:e=>{r.value=ut([...r.value,...e])}}});class me{constructor(a,e=dt.CREATED_TIME_DESC){fe(this,"root");fe(this,"execQueue",[]);fe(this,"walkerInitPromsie");this.entryPath=a,this.sortMethod=e,this.root={children:[],info:{name:this.entryPath,size:"-",bytes:0,created_time:"",is_under_scanned_path:!0,date:"",type:"dir",fullpath:this.entryPath}},this.walkerInitPromsie=new Promise(t=>{Ne([this.entryPath]).then(async i=>{this.root.info=i[this.entryPath],await this.fetchChildren(this.root),t()})})}reset(){return this.root.children=[],this.fetchChildren(this.root)}get images(){const a=e=>e.children.map(t=>{if(t.info.type==="dir")return a(t);if(Be(t.info.name))return t.info}).filter(t=>t).flat(1);return a(this.root)}get isCompleted(){return this.execQueue.length===0}async fetchChildren(a){const{files:e}=await ie(a.info.fullpath);return a.children=ze(e,this.sortMethod).map(t=>({info:t,children:[]})),this.execQueue.shift(),this.execQueue.unshift(...a.children.filter(t=>t.info.type==="dir").map(t=>({fn:()=>this.fetchChildren(t),...t}))),a}async next(){await this.walkerInitPromsie;const a=Zt(this.execQueue);if(!a)return null;const e=await a.fn();return this.execQueue=this.execQueue.slice(),this.root={...this.root},e}async isExpired(){const a=[this.root.info],e=i=>{for(const s of i.children)s.info.type==="dir"&&(a.push(s.info),e(s))};e(this.root);const t=await Ne(a.map(i=>i.fullpath));for(const i of a)if(!ft(i,t[i.fullpath]))return!0;return!1}async seamlessRefresh(a,e=N(!1)){const t=performance.now(),i=new me(this.entryPath,this.sortMethod);for(await i.walkerInitPromsie;!i.isCompleted&&i.images.length<a;){if(e.value)throw new Error("canceled");await i.next()}const s=performance.now();return console.log("seamlessRefresh currPos:",a,"Time taken:",(s-t).toFixed(0),"ms"),i}}var Ze={exports:{}};/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|
||
* @license MIT */(function(r,a){(function(e,t){r.exports=t})(pt,function(){var e={};e.version="0.3.5";var t=e.settings={minimum:.08,easing:"linear",positionUsing:"",speed:200,trickle:!0,trickleSpeed:200,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};e.configure=function(n){var l,o;for(l in n)o=n[l],o!==void 0&&n.hasOwnProperty(l)&&(t[l]=o);return this},e.status=null,e.set=function(n){var l=e.isStarted();n=i(n,t.minimum,1),e.status=n===1?null:n;var o=e.render(!l),c=o.querySelector(t.barSelector),p=t.speed,y=t.easing;return o.offsetWidth,L(function(d){t.positionUsing===""&&(t.positionUsing=e.getPositioningCSS()),P(c,F(n,p,y)),n===1?(P(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout(function(){P(o,{transition:"all "+p+"ms linear",opacity:0}),setTimeout(function(){e.remove(),d()},p)},p)):setTimeout(d,p)}),this},e.isStarted=function(){return typeof e.status=="number"},e.start=function(){e.status||e.set(0);var n=function(){setTimeout(function(){e.status&&(e.trickle(),n())},t.trickleSpeed)};return t.trickle&&n(),this},e.done=function(n){return!n&&!e.status?this:e.inc(.3+.5*Math.random()).set(1)},e.inc=function(n){var l=e.status;return l?l>1?void 0:(typeof n!="number"&&(l>=0&&l<.2?n=.1:l>=.2&&l<.5?n=.04:l>=.5&&l<.8?n=.02:l>=.8&&l<.99?n=.005:n=0),l=i(l+n,0,.994),e.set(l)):e.start()},e.trickle=function(){return e.inc()},function(){var n=0,l=0;e.promise=function(o){return!o||o.state()==="resolved"?this:(l===0&&e.start(),n++,l++,o.always(function(){l--,l===0?(n=0,e.done()):e.set((n-l)/n)}),this)}}(),e.getElement=function(){var n=e.getParent();if(n){var l=Array.prototype.slice.call(n.querySelectorAll(".nprogress")).filter(function(o){return o.parentElement===n});if(l.length>0)return l[0]}return null},e.getParent=function(){if(t.parent instanceof HTMLElement)return t.parent;if(typeof t.parent=="string")return document.querySelector(t.parent)},e.render=function(n){if(e.isRendered())return e.getElement();x(document.documentElement,"nprogress-busy");var l=document.createElement("div");l.id="nprogress",l.className="nprogress",l.innerHTML=t.template;var o=l.querySelector(t.barSelector),c=n?"-100":s(e.status||0),p=e.getParent(),y;return P(o,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),t.showSpinner||(y=l.querySelector(t.spinnerSelector),y&&S(y)),p!=document.body&&x(p,"nprogress-custom-parent"),p.appendChild(l),l},e.remove=function(){e.status=null,E(document.documentElement,"nprogress-busy"),E(e.getParent(),"nprogress-custom-parent");var n=e.getElement();n&&S(n)},e.isRendered=function(){return!!e.getElement()},e.getPositioningCSS=function(){var n=document.body.style,l="WebkitTransform"in n?"Webkit":"MozTransform"in n?"Moz":"msTransform"in n?"ms":"OTransform"in n?"O":"";return l+"Perspective"in n?"translate3d":l+"Transform"in n?"translate":"margin"};function i(n,l,o){return n<l?l:n>o?o:n}function s(n){return(-1+n)*100}function F(n,l,o){var c;return t.positionUsing==="translate3d"?c={transform:"translate3d("+s(n)+"%,0,0)"}:t.positionUsing==="translate"?c={transform:"translate("+s(n)+"%,0)"}:c={"margin-left":s(n)+"%"},c.transition="all "+l+"ms "+o,c}var L=function(){var n=[];function l(){var o=n.shift();o&&o(l)}return function(o){n.push(o),n.length==1&&l()}}(),P=function(){var n=["Webkit","O","Moz","ms"],l={};function o(d){return d.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(u,g){return g.toUpperCase()})}function c(d){var u=document.body.style;if(d in u)return d;for(var g=n.length,M=d.charAt(0).toUpperCase()+d.slice(1),O;g--;)if(O=n[g]+M,O in u)return O;return d}function p(d){return d=o(d),l[d]||(l[d]=c(d))}function y(d,u,g){u=p(u),d.style[u]=g}return function(d,u){var g=arguments,M,O;if(g.length==2)for(M in u)O=u[M],O!==void 0&&u.hasOwnProperty(M)&&y(d,M,O);else y(d,g[1],g[2])}}();function v(n,l){var o=typeof n=="string"?n:w(n);return o.indexOf(" "+l+" ")>=0}function x(n,l){var o=w(n),c=o+l;v(o,l)||(n.className=c.substring(1))}function E(n,l){var o=w(n),c;v(n,l)&&(c=o.replace(" "+l+" "," "),n.className=c.substring(1,c.length-1))}function w(n){return(" "+(n&&n.className||"")+" ").replace(/\s+/gi," ")}function S(n){n&&n.parentNode&&n.parentNode.removeChild(n)}return e})})(Ze);var da=Ze.exports;const fa=vt(da);function pa(){const r=N(),{scroller:a,stackViewEl:e,stack:t,currPage:i,currLocation:s,useEventListen:F,eventEmitter:L,getPane:P,props:v,deletedFiles:x,walker:E,sortedFiles:w,previewing:S}=J().toRefs();le(()=>t.value.length,ve((f,I)=>{var z,U;if(f===I)return;if(f>I){(z=a.value)==null||z.scrollToItem(0);return}const C=((U=ne(t.value))==null?void 0:U.scrollIndex)??0;te(0).then(()=>{var B;return(B=a.value)==null?void 0:B.scrollToItem(C)})},300)),ht(async()=>{var f;if(!t.value.length)if(v.value.mode==="scanned-fixed"||v.value.mode==="walk")t.value=[{files:[],curr:v.value.path??""}];else{const I=await ie("/");t.value.push({files:I.files,curr:"/"})}r.value=new fa,r.value.configure({parent:e.value}),v.value.path&&v.value.path!=="/"?await y(v.value.path):(f=k.conf)!=null&&f.home&&y(k.conf.home)}),le(s,ve(f=>{const I=P.value();if(!I)return;I.path=f;const C=xe(f).pop()??"",U=(()=>{const B={walk:"Walk","scanned-fixed":"Fixed",scanned:null}[v.value.mode??"scanned"],H=oe=>B?`${B}: ${oe}`:oe,Y=k.getShortPath(f);return H(Y.length>24&&C?C:Y)})();I.name=X("div",{style:"display:flex;align-items:center"},[X(ca),X("span",{class:"line-clamp-1",style:"max-width: 256px"},U)]),I.nameFallbackStr=U,k.recent=k.recent.filter(B=>B.key!==I.key),k.recent.unshift({path:f,key:I.key,mode:v.value.mode}),k.recent.length>20&&(k.recent=k.recent.slice(0,20))},300));const n=()=>he(s.value),l=async f=>{var I,C;if(f.type==="dir")try{(I=r.value)==null||I.start();const{files:z}=await ie(f.fullpath);v.value.mode=="scanned-fixed"?t.value=[{files:z,curr:f.fullpath}]:t.value.push({files:z,curr:f.name})}finally{(C=r.value)==null||C.done()}},o=f=>{if(v.value.mode!="walk")for(;f<t.value.length-1;)t.value.pop()},c=()=>{y(Ce(s.value))},p=(f,I)=>(Pe(k.conf,"global.conf load failed"),k.conf.is_win?f.toLowerCase()==I.toLowerCase():f==I),y=async f=>{v.value.mode==="walk"?P.value().path=f:v.value.mode==="scanned-fixed"?await l({fullpath:f,name:f,type:"dir"}):await d(f),te(500).then(()=>L.value.emit("viewableAreaFilesChange"))},d=async f=>{var C,z;const I=t.value.slice();try{mt(f)||(f=He(((C=k.conf)==null?void 0:C.sd_cwd)??"/",f));const U=xe(f),B=t.value.map(H=>H.curr);for(B.shift();B[0]&&U[0]&&p(B[0],U[0]);)B.shift(),U.shift();for(let H=0;H<B.length;H++)t.value.pop();if(!U.length)return u();for(const H of U){const Y=(z=i.value)==null?void 0:z.files.find(oe=>p(oe.name,H));if(!Y)throw console.error({frags:U,frag:H,stack:Ge(t.value)}),new Error(`${H} not found`);await l(Y)}}catch(U){throw K.error(A("moveFailedCheckPath")+(U instanceof Error?U.message:"")),console.error(f,xe(f),i.value),t.value=I,U}},u=qe(async()=>{var f,I,C;try{if((f=r.value)==null||f.start(),E.value)await E.value.reset(),L.value.emit("loadNextDir");else{const{files:z}=await ie(s.value);ne(t.value).files=z}x.value.clear(),(I=a.value)==null||I.scrollToItem(0),K.success(A("refreshCompleted"))}finally{(C=r.value)==null||C.done()}}),g=async(f=!1)=>{var I,C,z;if(!(f===!0&&S.value)){if(v.value.mode==="walk"&&E.value){const U=((I=a.value)==null?void 0:I.$_endIndex)??64;if(k.autoRefreshWalkMode&&U<k.autoRefreshWalkModePosLimit&&await E.value.isExpired()){const B=N(!1),H=()=>{B.value=!0,k.autoRefreshWalkMode=!1,Y(),K.success(A("walkModeAutoRefreshDisabled"))},Y=K.loading(X("span",{},[A("autoUpdate"),X("span",{onClick:H,style:{paddingLeft:"16px",cursor:"pointer",color:"var(--primary-color)"}},A("disable"))]),0);try{const oe=new Promise(tt=>{E.value.seamlessRefresh(U,B).then(at=>{B.value||(E.value=at,L.value.emit("loadNextDir"),tt())})});await Promise.all([oe,te(1500)])}finally{Y()}}return}try{if(!k.autoRefreshNormalFixedMode)return;(C=r.value)==null||C.start();const{files:U}=await ie(s.value);ne(t.value).files.map(H=>H.date).join()!==U.map(H=>H.date).join()&&(ne(t.value).files=U,K.success(A("autoUpdate")))}finally{(z=r.value)==null||z.done()}}};gt("returnToIIB",g),F.value("refresh",u),F.value("navigateUp",c);const M=f=>{y(f)},O=Q(()=>k.quickMovePaths.map(f=>({...f,path:ee(f.dir)}))),V=Q(()=>{const f=ee(s.value);return O.value.find(C=>C.path===f)}),h=async()=>{const f=k.tabList[v.value.tabIdx],I={type:"empty",name:A("emptyStartPage"),key:Date.now()+se(),popAddPathModal:{path:s.value,type:"scanned-fixed"}};f.panes.push(I),f.key=I.key},b=N(!1),T=N(s.value),D=()=>{b.value=!0,T.value=s.value},R=async()=>{await y(T.value),b.value=!1};de("click",f=>{var I,C,z;(z=(C=(I=f.target)==null?void 0:I.className)==null?void 0:C.includes)!=null&&z.call(C,"ant-input")||(b.value=!1)});const j=()=>{const f=parent.location,I=f.href.substring(0,f.href.length-f.search.length),C=new URLSearchParams(f.search);C.set("action","open"),C.set("path",s.value),C.set("mode",v.value.mode??"scanned");const z=`${I}?${C.toString()}`;he(z,A("copyLocationUrlSuccessMsg"))},m=(f="tag-search")=>{const I=k.tabList[v.value.tabIdx],C={type:f,key:se(),searchScope:s.value,name:A(f==="tag-search"?"imgSearch":"fuzzy-search")};I.panes.push(C),I.key=C.key},_=()=>L.value.emit("selectAll"),W=async()=>{await bt(s.value),await u()},$=()=>{const f=s.value;ge.set(f,t.value);const I=k.tabList[v.value.tabIdx],C={type:"local",key:se(),path:f,name:A("local"),stackKey:f,mode:"walk"};I.panes.push(C),I.key=C.key},ke=Q(()=>!E.value&&w.value.some(f=>f.type==="dir"));return{locInputValue:T,isLocationEditing:b,onLocEditEnter:R,onEditBtnClick:D,addToSearchScanPathAndQuickMove:h,searchPathInfo:V,refresh:u,copyLocation:n,back:o,openNext:l,currPage:i,currLocation:s,stack:t,scroller:a,share:j,selectAll:_,quickMoveTo:M,onCreateFloderBtnClick:W,onWalkBtnClick:$,showWalkButton:ke,searchInCurrentDir:m,backToLastUseTo:c,...va(()=>g(!0))}}const va=r=>{const a=N([]),e=Q(()=>a.value.length>0);yt(()=>{a.value.forEach(s=>s())});const t=wt(kt+"poll-interval",3);return{onPollRefreshClick:()=>{if(a.value.length){a.value.forEach(s=>s()),a.value=[];return}re.confirm({title:A("pollRefresh"),width:640,content:()=>X("div",{},[X("p",{class:"uni-desc primary-bg"},A("pollRefreshTip")),X("div",{style:{display:"flex",alignItems:"center",gap:"4px"}},[X("span",{},A("pollInterval")+"(s): "),X(Qt,{min:1,max:60*10,modelValue:t.value,"onUpdate:modelValue":s=>{t.value=s}})])]),onOk:()=>{const{clearTask:s}=we.run({pollInterval:t.value*1e3,action:r});a.value.push(s)}})},polling:e}};function ha(r){const{previewIdx:a,eventEmitter:e,canLoadNext:t,previewing:i,sortedFiles:s,scroller:F,props:L}=J().toRefs(),{state:P}=J();let v=null;const x=(o,c)=>{var p;i.value=o,v!=null&&!o&&c&&((p=F.value)==null||p.scrollToItem(v),v=null)},E=o=>{const c=F.value;!c||o<0||(o>=c.$_startIndex&&o<=c.$_endIndex?console.log("scrollToIndex already in view",o,"s",c):c.scrollToItem(o))},w=o=>{if(!o)return;const c=s.value.findIndex(p=>p.fullpath===o);console.log("idx",{idx:c,files:s}),c>=0&&E(c)},S=()=>{if(!l("next")){if(r!=null&&r.loadNext)return r.loadNext();L.value.mode==="walk"&&t.value&&(K.info(A("loadingNextFolder")),e.value.emit("loadNextDir",!0))}};de("keydown",o=>{var c;if(i.value){let p=a.value;if(["ArrowDown","ArrowRight"].includes(o.key))for(p++;s.value[p]&&!q(s.value[p].name);)p++;else if(["ArrowUp","ArrowLeft"].includes(o.key))for(p--;s.value[p]&&!q(s.value[p].name);)p--;if(q((c=s.value[p])==null?void 0:c.name)??""){a.value=p;const y=F.value;y&&!(p>=y.$_startIndex&&p<=y.$_endIndex)&&(v=p)}S()}});const n=o=>{var p;let c=a.value;if(o==="next")for(c++;s.value[c]&&!q(s.value[c].name);)c++;else if(o==="prev")for(c--;s.value[c]&&!q(s.value[c].name);)c--;if(q((p=s.value[c])==null?void 0:p.name)??""){a.value=c;const y=F.value;y&&!(c>=y.$_startIndex&&c<=y.$_endIndex)&&(v=c)}S()},l=o=>{var p;let c=a.value;if(o==="next")for(c++;s.value[c]&&!q(s.value[c].name);)c++;else if(o==="prev")for(c--;s.value[c]&&!q(s.value[c].name);)c--;return q((p=s.value[c])==null?void 0:p.name)};return ye("removeFiles",async()=>{i.value&&!P.sortedFiles[a.value]&&Te()}),{previewIdx:a,onPreviewVisibleChange:x,previewing:i,previewImgMove:n,canPreview:l,scrollToIndex:E,scrollToFileId:w}}function ma({fetchNext:r}={}){const{scroller:a,sortedFiles:e,sortMethod:t,currLocation:i,currPage:s,stackViewEl:F,canLoadNext:L,previewIdx:P,props:v,walker:x,getViewableAreaFiles:E}=J().toRefs(),{state:w}=J(),S=N(!1),n=N(k.defaultGridCellWidth),l=Q(()=>n.value+16),o=44,{width:c}=It(F),p=Q(()=>~~(c.value/l.value)),y=De(new Map),d=Q(()=>{const h=l.value;return{first:h+(n.value<=160?0:o),second:h}}),u=N(!1),g=async()=>{var h;if(!(u.value||v.value.mode!=="walk"||!L.value))try{u.value=!0,await((h=x.value)==null?void 0:h.next())}finally{u.value=!1}},M=async(h=!1)=>{const b=a.value,T=()=>h?P.value:(b==null?void 0:b.$_endIndex)??0,D=()=>{const R=e.value.length,j=50;return R?r?T()>R-j:T()>R-j&&L.value:!0};for(;D();){await te(30);const R=await(r??g)();if(typeof R=="boolean"&&!R)return}};w.useEventListen("loadNextDir",qe(async(h=!1)=>{await M(h),v.value.mode==="walk"&&O()})),w.useEventListen("viewableAreaFilesChange",()=>{const h=E.value(),b=h.filter(D=>D.is_under_scanned_path&&Be(D.name)).map(D=>D.fullpath);ue.fetchImageTags(b);const T=h.filter(D=>D.is_under_scanned_path&&D.type==="dir"&&!y.has(D.fullpath)).map(D=>D.fullpath);T.length&&xt(T).then(D=>{for(const R in D)if(Object.prototype.hasOwnProperty.call(D,R)){const j=D[R];y.set(R,j)}})}),w.useEventListen("refresh",async()=>{w.eventEmitter.emit("viewableAreaFilesChange")});const O=ve(()=>w.eventEmitter.emit("viewableAreaFilesChange"),300);le(i,O);const V=ve(async()=>{const h=a.value;h&&s.value&&(s.value.scrollIndex=h.$_startIndex),await M(),O()},150);return{gridItems:p,sortedFiles:e,sortMethodConv:St,moreActionsDropdownShow:S,gridSize:l,sortMethod:t,onScroll:V,loadNextDir:g,loadNextDirLoading:u,canLoadNext:L,itemSize:d,cellWidth:n,dirCoverCache:y}}function _e(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!_t(r)}function ga(){const{currLocation:r,sortedFiles:a,currPage:e,multiSelectedIdxs:t,eventEmitter:i,walker:s}=J().toRefs(),F=()=>{t.value=[]};de("click",()=>{k.keepMultiSelect||F()}),de("blur",()=>{k.keepMultiSelect||F()}),le(e,F);const L=(w,S)=>{const n=Ge(a.value[S]);Me.fileDragging=!0,console.log("onFileDragStart set drag file ",w,S,n);const l=[n];let o=n.type==="dir";if(t.value.includes(S)){const p=t.value.map(y=>a.value[y]);l.push(...p),o=p.some(y=>y.type==="dir")}const c={includeDir:o,loc:r.value||"search-result",path:Re(l,"fullpath").map(p=>p.fullpath),nodes:Re(l,"fullpath"),__id:"FileTransferData"};w.dataTransfer.setData("text/plain",JSON.stringify(c))},P=()=>{Me.fileDragging=!1},v=async w=>{if(s.value)return;const S=$e(w);if(!S)return;const n=r.value;S.loc!==n&&E(S,n)},x=async(w,S)=>{if(s.value||S.type!=="dir")return!1;const n=$e(w);if(!n)return!1;const l=ee(n.loc),o=ee(r.value||"");if(l!==o)return!1;const c=ee(S.fullpath),p=n.path.map(ee).filter(y=>y!==c&&!c.startsWith(y+"/"));return p.length?(w.preventDefault(),E({...n,path:p},c),!0):!1},E=(w,S)=>{const n=Ke(),l=async()=>n.pushAction(async()=>{await Je(w.path,S),i.value.emit("refresh"),re.destroyAll()}),o=()=>n.pushAction(async()=>{await Ee(w.path,S),Z.emit("removeFiles",{paths:w.path,loc:w.loc}),i.value.emit("refresh"),re.destroyAll()});re.confirm({title:A("confirm")+"?",width:"60vw",content:()=>{let c,p,y;return G("div",null,[G("div",null,[`${A("moveSelectedFilesTo")} ${S}`,G("ol",{style:{maxHeight:"50vh",overflow:"auto"}},[w.path.map(d=>G("li",null,[d.split(/[/\\]/).pop()]))])]),G(Qe,null,null),G("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end"},class:"actions"},[G(Se,{onClick:re.destroyAll},_e(c=A("cancel"))?c:{default:()=>[c]}),G(Se,{type:"primary",loading:!n.isIdle,onClick:l},_e(p=A("copy"))?p:{default:()=>[p]}),G(Se,{type:"primary",loading:!n.isIdle,onClick:o},_e(y=A("move"))?y:{default:()=>[y]})])])},maskClosable:!0,wrapClassName:"hidden-antd-btns-modal"})};return{onFileDragStart:L,onDrop:v,multiSelectedIdxs:t,onFileDragEnd:P,onFileDropToFolder:x}}const ya=r=>{const a=Ae(r.name),e=Le(r.name);let t,i;return a?(t=Pt(r),i="video"):e?(t=Ct(r),i="audio"):(t=ae(r),i="image"),{id:r.fullpath,url:t,type:i,originalFile:r,name:r.name,fullpath:r.fullpath}},wa=r=>r.filter(a=>a.type==="file"&&(q(a.name)||Ae(a.name)||Le(a.name))).map(ya),ka=(r,a=0)=>{a=Math.min(a,r.length-1),a=Math.max(a,0);const e=Ft(),t=wa(r);if(t.length===0){console.warn("没有找到可以显示的媒体文件");return}let i=0;if(a<r.length){const s=r[a];i=t.findIndex(F=>F.id===s.fullpath),i===-1&&(i=0)}e.openTiktokView(t,i)};function ba({openNext:r}){const a=N(!1),e=N(""),{sortedFiles:t,previewIdx:i,multiSelectedIdxs:s,stack:F,currLocation:L,spinning:P,previewing:v,scroller:x,stackViewEl:E,eventEmitter:w,props:S,deletedFiles:n}=J().toRefs(),l=ee;ye("removeFiles",({paths:d,loc:u})=>{l(u)!==l(L.value)||!ne(F.value)||(d.forEach(M=>n.value.add(M)),d.filter(q).forEach(M=>n.value.add(M.replace(/\.\w+$/,".txt"))))}),ye("addFiles",({files:d,loc:u})=>{if(l(u)!==l(L.value))return;const g=ne(F.value);g&&g.files.unshift(...d)});const o=Ke(),c=async(d,u,g)=>{i.value=g,k.fullscreenPreviewInitialUrl=ae(u);const M=s.value.indexOf(g);if(d.shiftKey){if(M!==-1)s.value.splice(M,1);else{s.value.push(g),s.value.sort((h,b)=>h-b);const O=s.value[0],V=s.value[s.value.length-1];s.value=Ye(O,V+1)}d.stopPropagation()}else d.ctrlKey||d.metaKey?(M!==-1?s.value.splice(M,1):s.value.push(g),d.stopPropagation()):await r(u)},p=async(d,u,g)=>{var D,R,j;const M=ae(u),O=L.value,V={IIB_container_id:parent.IIB_container_id},h=()=>{let m=[];return s.value.includes(g)?m=s.value.map(_=>t.value[_]):m.push(u),m},b=async m=>{if(!P.value)try{P.value=!0,await Wt(u.fullpath),ce.postMessage({...V,event:"click_hidden_button",btnEleId:"iib_hidden_img_update_trigger"}),await Ut(),ce.postMessage({...V,event:"click_hidden_button",btnEleId:`iib_hidden_tab_${m}`})}catch(_){console.error(_),K.error("发送图像失败,请携带console的错误消息找开发者")}finally{P.value=!1}},T=`${d.key}`;if(T.startsWith("toggle-tag-")){const m=+T.split("toggle-tag-")[1],{is_remove:_}=await Et({tag_id:m,img_path:u.fullpath}),W=(R=(D=k.conf)==null?void 0:D.all_custom_tags.find($=>$.id===m))==null?void 0:R.name;await ue.refreshTags([u.fullpath]),K.success(A(_?"removedTagFromImage":"addedTagToImage",{tag:W}));return}else if(T==="add-custom-tag")Mt();else if(T.startsWith("batch-add-tag-")||T.startsWith("batch-remove-tag-")){const m=+T.split("-tag-")[1],_=T.includes("add")?"add":"remove",W=h().map($=>$.fullpath);await Dt({tag_id:m,img_paths:W,action:_}),await ue.refreshTags(W),K.success(A(_==="add"?"addCompleted":"removeCompleted"));return}else if(T.startsWith("copy-to-")){const m=T.split("copy-to-")[1],_=h(),W=_.map($=>$.fullpath);await Je(W,m,!0),Z.emit("addFiles",{files:_,loc:m}),K.success(A("copySuccess"));return}else if(T.startsWith("move-to-")){const m=T.split("move-to-")[1],_=h(),W=_.map($=>$.fullpath);await Ee(W,m,!0),Z.emit("removeFiles",{paths:W,loc:L.value}),Z.emit("addFiles",{files:_,loc:m}),K.success(A("moveSuccess"));return}switch(d.key){case"previewInNewWindow":return window.open(M);case"copyFilePath":return he(u.fullpath);case"saveSelectedAsJson":return $t(h());case"openWithDefaultApp":return Rt(u.fullpath);case"download":{const m=h();Nt(m.map(_=>ae(_,!0)));break}case"copyPreviewUrl":return he(parent.document.location.origin+M);case"rename":{let m=await Ot(u.fullpath);m=ee(m);const _=ue.tagMap;_.set(m,_.get(u.fullpath)??[]),_.delete(u.fullpath),u.fullpath=m,u.name=m.split(/[\\/]/).pop()??"";return}case"send2txt2img":return b("txt2img");case"send2img2img":return b("img2img");case"send2inpaint":return b("inpaint");case"send2extras":return b("extras");case"send2savedDir":{const m=k.quickMovePaths.find($=>$.key==="outdir_save");if(!m)return K.error(A("unknownSavedDir"));const _=Lt(m.dir,(j=k.conf)==null?void 0:j.sd_cwd),W=h();await Ee(W.map($=>$.fullpath),_,!0),Z.emit("removeFiles",{paths:W.map($=>$.fullpath),loc:L.value}),Z.emit("addFiles",{files:W,loc:_});break}case"send2controlnet-img2img":case"send2controlnet-txt2img":{const m=d.key.split("-")[1];ce.postMessage({...V,event:"send_to_control_net",type:m,url:ae(u)});break}case"send2outpaint":{e.value=await o.pushAction(()=>Ue(u.fullpath)).res;const[m,_]=(e.value||"").split(`
|
||
`);ce.postMessage({...V,event:"send_to_outpaint",url:ae(u),prompt:m,negPrompt:_.slice(17)});break}case"openWithWalkMode":{ge.set(O,F.value);const m=k.tabList[S.value.tabIdx],_={type:"local",key:se(),path:u.fullpath,name:A("local"),stackKey:O,mode:"walk"};m.panes.push(_),m.key=_.key;break}case"openFileLocationInNewTab":case"openInNewTab":{const m=k.tabList[S.value.tabIdx],_={type:"local",key:se(),path:d.key==="openInNewTab"?u.fullpath:Ce(u.fullpath),name:A("local"),mode:"scanned-fixed"};m.panes.push(_),m.key=_.key;break}case"openOnTheRight":{ge.set(O,F.value);let m=k.tabList[S.value.tabIdx+1];m||(m={panes:[],key:"",id:se()},k.tabList[S.value.tabIdx+1]=m);const _=u.type==="dir"?u.fullpath:Ce(u.fullpath),W={type:"local",key:se(),path:_,name:A("local"),stackKey:O,mode:S.value.mode??"scanned"};m.panes.push(W),m.key=W.key;break}case"send2BatchDownload":{et.addFiles(h());break}case"viewGenInfo":{a.value=!0,e.value=await o.pushAction(()=>Ue(u.fullpath)).res;break}case"tiktokView":{ka(t.value,g);break}case"openWithLocalFileBrowser":{await At(u.fullpath);break}case"deleteFiles":{const m=h(),_=async()=>{const W=m.map($=>$.fullpath);if(await Vt(W),K.success(A("deleteSuccess")),v.value){const $=ae(u)===k.fullscreenPreviewInitialUrl,ke=i.value===t.value.length-1;if(($||ke)&&(Te(),await te(100),$&&t.value.length>1)){const f=i.value;te(0).then(()=>jt(f,E.value))}}Z.emit("removeFiles",{paths:W,loc:L.value})};if(m.length===1&&k.ignoredConfirmActions.deleteOneOnly)return _();await new Promise(W=>{re.confirm({title:A("confirmDelete"),maskClosable:!0,width:"60vw",content:()=>G("div",null,[G("ol",{style:{maxHeight:"50vh",overflow:"auto"}},[m.map($=>G("li",null,[$.fullpath.split(/[/\\]/).pop()]))]),G(Qe,null,null),G(Jt,{checked:k.ignoredConfirmActions.deleteOneOnly,"onUpdate:checked":$=>k.ignoredConfirmActions.deleteOneOnly=$},{default:()=>[A("deleteOneOnlySkipConfirm"),We(" ("),A("resetOnGlobalSettingsPage"),We(")")]})]),async onOk(){await _(),W()}})});break}}return{}},{isOutside:y}=Tt(E);return de("keydown",d=>{var M,O,V;const u=h=>{var D;const b=h;if(!b)return!1;const T=(D=b.tagName)==null?void 0:D.toLowerCase();return T==="input"||T==="textarea"||b.isContentEditable},g=Xt(d);if(v.value){g==="Esc"&&Te();const h=(M=Object.entries(k.shortcut).find(b=>b[1]===g&&b[1]))==null?void 0:M[0];if(h){d.stopPropagation(),d.preventDefault();const b=i.value,T=t.value[b];switch(h){case"delete":return p({key:"deleteFiles"},T,b);case"download":return p({key:"download"},T,b);default:{const D=(O=/^toggle_tag_(.*)$/.exec(h))==null?void 0:O[1],R=(V=k.conf)==null?void 0:V.all_custom_tags.find(j=>j.name===D);if(R)return p({key:`toggle-tag-${R.id}`},T,b);if(h.startsWith("copy_to_")){const j=h.split("copy_to_")[1];return p({key:`copy-to-${j}`},T,b)}if(h.startsWith("move_to_")){const j=h.split("move_to_")[1];return p({key:`move-to-${j}`},T,b)}}}}}else if(!y.value&&!u(d.target)){if(!d.altKey&&!d.ctrlKey&&!d.metaKey){const h=x.value,b=t.value.length,T=Math.max(b-1,0),D=R=>{if(!h||b===0)return;const j=Math.min(Math.max(R,0),T);h.scrollToItem(j)};switch(d.key){case"PageUp":{d.preventDefault(),d.stopPropagation();const R=h?Math.max(h.$_endIndex-h.$_startIndex,1):1,j=(h==null?void 0:h.$_startIndex)??0;return D(j-R)}case"PageDown":{d.preventDefault(),d.stopPropagation();const R=h?Math.max(h.$_endIndex-h.$_startIndex,1):1,j=(h==null?void 0:h.$_startIndex)??0;return D(j+R)}case"Home":return d.preventDefault(),d.stopPropagation(),D(0);case"End":return d.preventDefault(),d.stopPropagation(),D(T);case"Backspace":return d.preventDefault(),d.stopPropagation(),w.value.emit("navigateUp")}}["Ctrl + KeyA","Cmd + KeyA"].includes(g)&&(d.preventDefault(),d.stopPropagation(),w.value.emit("selectAll"))}}),{onFileItemClick:c,onContextMenuClick:p,showGenInfo:a,imageGenInfo:e,q:o}}const Fe=new Map,Ia=()=>{const{useEventListen:r,sortedFiles:a,getViewableAreaFiles:e}=J().toRefs(),t=N(k.defaultChangeIndchecked),i=N(k.defaultSeedChangeChecked),s=async()=>{if(await te(100),!t.value)return;const P=e.value().filter(x=>q(x.fullpath)&&!x.gen_info_obj);if(!P.length)return;const v=await zt(P.map(x=>x.fullpath).filter(x=>!Fe.has(x)));P.forEach(x=>{const E=v[x.fullpath]||Fe.get(x.fullpath)||"";Fe.set(x.fullpath,E),x.gen_info_obj=Bt(E),x.gen_info_raw=E})};r.value("viewableAreaFilesChange",s);const F=P=>{const v=a.value;return[P,i.value,v[P-1],v[P],v[P+1]]};function L(P,v,x,E){const w={diff:{},empty:!0,ownFile:"",otherFile:""};if(v+x<0||v+x>=a.value.length||a.value[v]==null||!("gen_info_obj"in a.value[v])||!("gen_info_obj"in a.value[v+x]))return w;const S=P,n=a.value[v+x].gen_info_obj;if(n==null)return w;const l=["hashes","resources"];w.diff={},w.ownFile=E.name,w.otherFile=a.value[v+x].name,w.empty=!1,i.value||l.push("seed");for(const o in S)if(!l.includes(o)){if(!(o in n)){w.diff[o]="+";continue}if(S[o]!=n[o])if(o.includes("rompt")&&S[o]!=""&&n[o]!=""){const c=S[o].split(","),p=n[o].split(",");let y=0;for(const d in c)c[d]!=p[d]&&y++;w.diff[o]=y}else w.diff[o]=[S[o],n[o]]}return w}return{getGenDiff:L,changeIndchecked:t,seedChangeChecked:i,getRawGenParams:()=>s(),getGenDiffWatchDep:F}},ge=new Map,k=Ht(),et=ua(),ue=Gt(),Me=qt(),ce=new BroadcastChannel("iib-image-transfer-bus"),{eventEmitter:Z,useEventListen:ye}=Xe(),{useHookShareState:J}=oa((r,{images:a})=>{const e=N({tabIdx:-1,paneIdx:-1}),t=Q(()=>ne(i.value)),i=N([]),s=Q(()=>{var u;return i.value.map(g=>g.curr).slice((u=k.conf)!=null&&u.is_win&&e.value.mode!=="scanned-fixed"?1:0)}),F=Q(()=>He(...s.value)),L=Q(()=>{var u,g;return e.value.mode==="scanned-fixed"?((g=(u=i.value)==null?void 0:u[0])==null?void 0:g.curr)??"":e.value.mode==="walk"?e.value.path??"":i.value.length===1?"/":F.value}),P=N(k.defaultSortingMethod),v=N(e.value.mode=="walk"?new me(e.value.path,P.value):void 0);le([()=>e.value.mode,()=>e.value.path,P],async([u,g,M])=>{var O;u==="walk"?(v.value=new me(g,M),i.value=[{files:[],curr:g}],await te(),await((O=v.value)==null?void 0:O.reset()),y.eventEmitter.emit("loadNextDir")):v.value=void 0});const x=De(new Set);le(t,()=>x.clear());const E=Q(()=>{var O;if(a.value)return a.value;if(v.value)return v.value.images.filter(V=>!x.has(V.fullpath));if(!t.value)return[];const u=((O=t.value)==null?void 0:O.files)??[],g=P.value;return ze((V=>{const h=k.fileTypeFilter;return h.includes("all")||h.length===0?V:V.filter(b=>!!(b.type==="dir"||h.includes("image")&&q(b.name)||h.includes("video")&&Ae(b.name)||h.includes("audio")&&Le(b.name)))})(u),g).filter(V=>!x.has(V.fullpath))}),w=N([]),S=N(-1),n=Q(()=>v.value?!v.value.isCompleted:!1),l=N(!1),o=N(!1),c=N(),p=()=>{var u,g,M;return(M=(g=(u=k.tabList)==null?void 0:u[e.value.tabIdx])==null?void 0:g.panes)==null?void 0:M[e.value.paneIdx]},y=Xe();y.useEventListen("selectAll",()=>{console.log(`select all 0 -> ${E.value.length}`),w.value=Ye(0,E.value.length)});const d=()=>{const u=c.value;if(u){const g=Math.max(u.$_startIndex-10,0);return E.value.slice(g,u.$_endIndex+10)}return[]};return{previewing:o,spinning:l,canLoadNext:n,multiSelectedIdxs:w,previewIdx:S,basePath:s,currLocation:L,currPage:t,stack:i,sortMethod:P,sortedFiles:E,scroller:c,stackViewEl:N(),props:e,getPane:p,walker:v,deletedFiles:x,getViewableAreaFiles:d,...y}},()=>({images:N()}));function xa(){const{eventEmitter:r,multiSelectedIdxs:a,sortedFiles:e}=J().toRefs();return{onSelectAll:()=>r.value.emit("selectAll"),onReverseSelect:()=>{a.value=e.value.map((F,L)=>L).filter(F=>!a.value.includes(F))},onClearAllSelected:()=>{a.value=[]}}}const Sa=()=>{const{stackViewEl:r}=J().toRefs(),a=N(-1);return Kt(r,e=>{var i;let t=e.target;for(;t.parentElement;)if(t=t.parentElement,t.tagName.toLowerCase()==="li"&&t.classList.contains("file-item-trigger")){const s=(i=t.dataset)==null?void 0:i.idx;s&&Number.isSafeInteger(+s)&&(a.value=+s);return}}),{showMenuIdx:a}},Ta=Object.freeze(Object.defineProperty({__proto__:null,batchDownload:et,events:Z,global:k,imgTransferBus:ce,sli:Me,stackCache:ge,tagStore:ue,useEventListen:ye,useFileItemActions:ba,useFileTransfer:ga,useFilesDisplay:ma,useGenInfoDiff:Ia,useHookShareState:J,useKeepMultiSelect:xa,useLocation:pa,useMobileOptimization:Sa,usePreview:ha},Symbol.toStringTag,{value:"Module"}));export{pa as a,ma as b,ga as c,ba as d,ha as e,Sa as f,xa as g,Ia as h,ye as i,ua as j,de as k,Ta as l,ka as o,ge as s,J as u};
|