sd-webui-infinite-image-bro.../vue/dist/assets/index-dc3e0a9f.js

4 lines
32 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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