Infinite Image Browsing
-
+
diff --git a/scripts/iib/api.py b/scripts/iib/api.py
index 7b0600e..8698630 100644
--- a/scripts/iib/api.py
+++ b/scripts/iib/api.py
@@ -46,6 +46,7 @@ from scripts.iib.db.datamodel import (
ImageTag,
ExtraPath,
FileInfoDict,
+ Cursor
)
from scripts.iib.db.update_image_data import update_image_data, rebuild_image_index
from scripts.iib.logger import logger
@@ -597,22 +598,51 @@ def infinite_image_browsing_api(app: FastAPI, **kwargs):
finally:
DataBase._initing = False
+ class SearchBySubstrReq(BaseModel):
+ surstr: str
+ cursor: str
+ regexp: str
+ folder_paths: List[str] = None
+ size: Optional[int] = 200
+
+ @app.post(db_pre + "/search_by_substr", dependencies=[Depends(verify_secret)])
+ async def search_by_substr(req: SearchBySubstrReq):
+ conn = DataBase.get_conn()
+ folder_paths=normalize_paths(req.folder_paths, os.getcwd())
+ if(not folder_paths and req.folder_paths):
+ return { "files": [], "cursor": Cursor(has_next=False) }
+ imgs, next_cursor = DbImg.find_by_substring(
+ conn=conn,
+ substring=req.surstr,
+ cursor=req.cursor,
+ limit=req.size,
+ regexp=req.regexp,
+ folder_paths=folder_paths
+ )
+ return {
+ "files": filter_allowed_files([x.to_file_info() for x in imgs]),
+ "cursor": next_cursor
+ }
+
class MatchImagesByTagsReq(BaseModel):
and_tags: List[int]
or_tags: List[int]
not_tags: List[int]
cursor: str
- folder_paths: List[str] = None,
+ folder_paths: List[str] = None
size: Optional[int] = 200
@app.post(db_pre + "/match_images_by_tags", dependencies=[Depends(verify_secret)])
async def match_image_by_tags(req: MatchImagesByTagsReq):
conn = DataBase.get_conn()
+ folder_paths=normalize_paths(req.folder_paths, os.getcwd())
+ if(not folder_paths and req.folder_paths):
+ return { "files": [], "cursor": Cursor(has_next=False) }
imgs, next_cursor = ImageTag.get_images_by_tags(
conn=conn,
tag_dict={"and": req.and_tags, "or": req.or_tags, "not": req.not_tags},
cursor=req.cursor,
- folder_paths=normalize_paths(req.folder_paths, os.getcwd()),
+ folder_paths=folder_paths,
limit=req.size
)
return {
@@ -767,20 +797,7 @@ def infinite_image_browsing_api(app: FastAPI, **kwargs):
conn = DataBase.get_conn()
ImageTag.remove(conn, image_id=req.img_id, tag_id=req.tag_id)
- @app.get(db_pre + "/search_by_substr", dependencies=[Depends(verify_secret)])
- async def search_by_substr(substr: str = '', cursor: str = '', size = 200, regexp: str = ''):
- conn = DataBase.get_conn()
- imgs, next_cursor = DbImg.find_by_substring(
- conn=conn,
- substring=substr,
- cursor=cursor,
- limit=size,
- regexp=regexp
- )
- return {
- "files": filter_allowed_files([x.to_file_info() for x in imgs]),
- "cursor": next_cursor
- }
+
class ExtraPathModel(BaseModel):
diff --git a/scripts/iib/db/datamodel.py b/scripts/iib/db/datamodel.py
index f335df1..2fa2f95 100644
--- a/scripts/iib/db/datamodel.py
+++ b/scripts/iib/db/datamodel.py
@@ -201,33 +201,35 @@ class Image:
@classmethod
def find_by_substring(
- cls, conn: Connection, substring: str, limit: int = 500, cursor="", regexp=""
+ cls, conn: Connection, substring: str, limit: int = 500, cursor="", regexp="",
+ folder_paths: List[str] = []
) -> tuple[List["Image"], Cursor]:
api_cur = Cursor()
with closing(conn.cursor()) as cur:
+ params = []
+ where_clauses = []
if regexp:
- if cursor:
- sql = f"SELECT * FROM image WHERE (exif REGEXP ?) and (date < ?) ORDER BY date DESC LIMIT ?"
- cur.execute(sql, (regexp, cursor, limit))
- else:
- sql = "SELECT * FROM image WHERE (exif REGEXP ?) ORDER BY date DESC LIMIT ?"
- cur.execute(
- sql,
- (
- regexp,
- limit,
- ),
- )
+ where_clauses.append("(exif REGEXP ?)")
+ params.append(regexp)
else:
- if cursor:
- sql = f"SELECT * FROM image WHERE (path LIKE ? OR exif LIKE ?) AND (date < ?) ORDER BY date DESC LIMIT ?"
- cur.execute(
- sql, (f"%{substring}%", f"%{substring}%", cursor, limit)
- )
- else:
- sql = "SELECT * FROM image WHERE path LIKE ? OR exif LIKE ? ORDER BY date DESC LIMIT ?"
- cur.execute(sql, (f"%{substring}%", f"%{substring}%", limit))
-
+ where_clauses.append("(path LIKE ? OR exif LIKE ?)")
+ params.extend((f"%{substring}%", f"%{substring}%"))
+ if cursor:
+ where_clauses.append("(date < ?)")
+ params.append(cursor)
+ if folder_paths:
+ folder_clauses = []
+ for folder_path in folder_paths:
+ folder_clauses.append("(image.path LIKE ?)")
+ params.append(os.path.join(folder_path, "%"))
+ where_clauses.append("(" + " OR ".join(folder_clauses) + ")")
+ sql = "SELECT * FROM image"
+ if where_clauses:
+ sql += " WHERE "
+ sql += " AND ".join(where_clauses)
+ sql += " ORDER BY date DESC LIMIT ? "
+ params.append(limit)
+ cur.execute(sql, params)
rows = cur.fetchall()
api_cur.has_next = len(rows) >= limit
diff --git a/vue/dist/assets/FileItem-ba4545b5.js b/vue/dist/assets/FileItem-3525329e.js
similarity index 84%
rename from vue/dist/assets/FileItem-ba4545b5.js
rename to vue/dist/assets/FileItem-3525329e.js
index ade8950..ef77ae1 100644
--- a/vue/dist/assets/FileItem-ba4545b5.js
+++ b/vue/dist/assets/FileItem-3525329e.js
@@ -1,4 +1,4 @@
-var cn=Object.defineProperty;var un=(e,n,t)=>n in e?cn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var Qe=(e,n,t)=>(un(e,typeof n!="symbol"?n+"":n,t),t);import{P as Me,c6 as dn,a as ie,d as ge,bq as Bt,u as Ne,c as A,c0 as Ft,_ as fn,V as ve,a0 as ke,ao as U,bL as ct,a3 as ut,bo as vn,h as re,c7 as pn,b as hn,ay as mn,c8 as gn,a2 as dt,bK as yn,c9 as bn,ca as wn,$ as V,b0 as An,z as ee,aA as kn,a1 as Sn,ag as se,cb as Cn,aR as In,cc as En,cd as _n,aM as Nt,ar as $e,bn as Ze,ce as On,cf as Pn,cg as xn,ch as Tn,ci as zt,cj as ft,ck as Mn,cl as $n,cm as Qt,cn as Dt,k as Xe,an as Bn,co as Lt,al as te,ai as j,cp as et,l as me,aC as Be,aw as Fn,aj as De,cq as Nn,cr as jt,cs as vt,as as Rt,bQ as pt,bP as zn,ct as _e,cu as Qn,aD as Dn,cv as X,bO as Ht,cw as Ln,cx as jn,t as Ve,am as ht,aq as de,cy as mt,c4 as Rn,R as be,L as ce,x as D,J as Hn,b_ as gt,cz as Vn,cA as Un,bZ as Wn,cB as Jn,cC as Kn,at as qn,au as Gn,ax as Vt,o as O,m as H,cD as Yn,cE as Zn,cF as Xn,cG as ei,cH as ti,a5 as ni,y as R,cI as Ce,C as Z,n as B,A as ue,cJ as yt,bG as ii,cK as ai,B as ri,N as fe,v as L,r as J,W as Ut,cL as li,c1 as si,M as Wt,cM as oi,cN as ci,p as ae,ae as ui,cO as di,cP as fi,X as vi}from"./index-dda7184d.js";import{t as Le,a as we,l as pe,b as pi,M as Jt,C as hi,m as Kt,g as mi,c as gi,d as yi,e as bi}from"./functionalCallableComp-9395a4a4.js";import{h as wi,r as Ai,a as ki,t as Si,i as Ci}from"./db-3650b2a5.js";var qt=function(){return{arrow:{type:[Boolean,Object],default:void 0},trigger:{type:[Array,String]},overlay:Me.any,visible:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},align:{type:Object},getPopupContainer:Function,prefixCls:String,transitionName:String,placement:String,overlayClassName:String,overlayStyle:{type:Object,default:void 0},forceRender:{type:Boolean,default:void 0},mouseEnterDelay:Number,mouseLeaveDelay:Number,openClassName:String,minOverlayWidthMatchTrigger:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:void 0},onVisibleChange:{type:Function},"onUpdate:visible":{type:Function}}},je=dn(),Ii=function(){return ie(ie({},qt()),{},{type:je.type,size:String,htmlType:je.htmlType,href:String,disabled:{type:Boolean,default:void 0},prefixCls:String,icon:Me.any,title:String,loading:je.loading,onClick:{type:Function}})},Ei=["type","disabled","loading","htmlType","class","overlay","trigger","align","visible","onVisibleChange","placement","href","title","icon","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide","onClick","onUpdate:visible"],_i=ve.Group;const Fe=ge({compatConfig:{MODE:3},name:"ADropdownButton",inheritAttrs:!1,__ANT_BUTTON:!0,props:Bt(Ii(),{trigger:"hover",placement:"bottomRight",type:"default"}),slots:["icon","leftButton","rightButton","overlay"],setup:function(n,t){var i=t.slots,a=t.attrs,r=t.emit,v=function(k){r("update:visible",k),r("visibleChange",k)},c=Ne("dropdown-button",n),h=c.prefixCls,y=c.direction,d=c.getPopupContainer;return function(){var m,k,p=ie(ie({},n),a),l=p.type,s=l===void 0?"default":l,o=p.disabled,f=p.loading,w=p.htmlType,b=p.class,u=b===void 0?"":b,C=p.overlay,_=C===void 0?(m=i.overlay)===null||m===void 0?void 0:m.call(i):C,I=p.trigger,E=p.align,P=p.visible;p.onVisibleChange;var S=p.placement,$=S===void 0?y.value==="rtl"?"bottomLeft":"bottomRight":S,N=p.href,Q=p.title,G=p.icon,M=G===void 0?((k=i.icon)===null||k===void 0?void 0:k.call(i))||A(Ft,null,null):G,x=p.mouseEnterDelay,W=p.mouseLeaveDelay,g=p.overlayClassName,T=p.overlayStyle,z=p.destroyPopupOnHide,Y=p.onClick;p["onUpdate:visible"];var K=fn(p,Ei),ne={align:E,disabled:o,trigger:o?[]:I,placement:$,getPopupContainer:d.value,onVisibleChange:v,mouseEnterDelay:x,mouseLeaveDelay:W,visible:P,overlayClassName:g,overlayStyle:T,destroyPopupOnHide:z},q=A(ve,{type:s,disabled:o,loading:f,onClick:Y,htmlType:w,href:N,title:Q},{default:i.default}),oe=A(ve,{type:s,icon:M},null);return A(_i,ie(ie({},K),{},{class:ke(h.value,u)}),{default:function(){return[i.leftButton?i.leftButton({button:q}):q,A(he,ne,{default:function(){return[i.rightButton?i.rightButton({button:oe}):oe]},overlay:function(){return _}})]}})}}});var Gt=ge({compatConfig:{MODE:3},name:"ADropdown",inheritAttrs:!1,props:Bt(qt(),{mouseEnterDelay:.15,mouseLeaveDelay:.1,placement:"bottomLeft",trigger:"hover"}),slots:["overlay"],setup:function(n,t){var i=t.slots,a=t.attrs,r=t.emit,v=Ne("dropdown",n),c=v.prefixCls,h=v.rootPrefixCls,y=v.direction,d=v.getPopupContainer,m=U(function(){var s=n.placement,o=s===void 0?"":s,f=n.transitionName;return f!==void 0?f:o.indexOf("top")>=0?"".concat(h.value,"-slide-down"):"".concat(h.value,"-slide-up")}),k=function(){var o,f,w,b=n.overlay||((o=i.overlay)===null||o===void 0?void 0:o.call(i)),u=Array.isArray(b)?b[0]:b;if(!u)return null;var C=u.props||{};ct(!C.mode||C.mode==="vertical","Dropdown",'mode="'.concat(C.mode,`" is not supported for Dropdown's Menu.`));var _=C.selectable,I=_===void 0?!1:_,E=C.expandIcon,P=E===void 0?(f=u.children)===null||f===void 0||(w=f.expandIcon)===null||w===void 0?void 0:w.call(f):E,S=typeof P<"u"&&dt(P)?P:A("span",{class:"".concat(c.value,"-menu-submenu-arrow")},[A(yn,{class:"".concat(c.value,"-menu-submenu-arrow-icon")},null)]),$=dt(u)?ut(u,{mode:"vertical",selectable:I,expandIcon:function(){return S}}):u;return $},p=U(function(){var s=n.placement;if(!s)return y.value==="rtl"?"bottomRight":"bottomLeft";if(s.includes("Center")){var o=s.slice(0,s.indexOf("Center"));return ct(!s.includes("Center"),"Dropdown","You are using '".concat(s,"' placement in Dropdown, which is deprecated. Try to use '").concat(o,"' instead.")),o}return s}),l=function(o){r("update:visible",o),r("visibleChange",o)};return function(){var s,o,f=n.arrow,w=n.trigger,b=n.disabled,u=n.overlayClassName,C=(s=i.default)===null||s===void 0?void 0:s.call(i)[0],_=ut(C,vn({class:ke(C==null||(o=C.props)===null||o===void 0?void 0:o.class,re({},"".concat(c.value,"-rtl"),y.value==="rtl"),"".concat(c.value,"-trigger"))},b?{disabled:b}:{})),I=ke(u,re({},"".concat(c.value,"-rtl"),y.value==="rtl")),E=b?[]:w,P;E&&E.indexOf("contextmenu")!==-1&&(P=!0);var S=pn({arrowPointAtCenter:hn(f)==="object"&&f.pointAtCenter,autoAdjustOverflow:!0}),$=mn(ie(ie(ie({},n),a),{},{builtinPlacements:S,overlayClassName:I,arrow:f,alignPoint:P,prefixCls:c.value,getPopupContainer:d.value,transitionName:m.value,trigger:E,onVisibleChange:l,placement:p.value}),["overlay","onUpdate:visible"]);return A(gn,$,{default:function(){return[_]},overlay:k})}}});Gt.Button=Fe;const he=Gt;var Oi=function(){return{prefixCls:String,checked:{type:Boolean,default:void 0},onChange:{type:Function},onClick:{type:Function},"onUpdate:checked":Function}},Pi=ge({compatConfig:{MODE:3},name:"ACheckableTag",props:Oi(),setup:function(n,t){var i=t.slots,a=t.emit,r=Ne("tag",n),v=r.prefixCls,c=function(d){var m=n.checked;a("update:checked",!m),a("change",!m),a("click",d)},h=U(function(){var y;return ke(v.value,(y={},re(y,"".concat(v.value,"-checkable"),!0),re(y,"".concat(v.value,"-checkable-checked"),n.checked),y))});return function(){var y;return A("span",{class:h.value,onClick:c},[(y=i.default)===null||y===void 0?void 0:y.call(i)])}}});const Ue=Pi;var xi=new RegExp("^(".concat(bn.join("|"),")(-inverse)?$")),Ti=new RegExp("^(".concat(wn.join("|"),")$")),Mi=function(){return{prefixCls:String,color:{type:String},closable:{type:Boolean,default:!1},closeIcon:Me.any,visible:{type:Boolean,default:void 0},onClose:{type:Function},"onUpdate:visible":Function,icon:Me.any}},Ae=ge({compatConfig:{MODE:3},name:"ATag",props:Mi(),slots:["closeIcon","icon"],setup:function(n,t){var i=t.slots,a=t.emit,r=t.attrs,v=Ne("tag",n),c=v.prefixCls,h=v.direction,y=V(!0);An(function(){n.visible!==void 0&&(y.value=n.visible)});var d=function(l){l.stopPropagation(),a("update:visible",!1),a("close",l),!l.defaultPrevented&&n.visible===void 0&&(y.value=!1)},m=U(function(){var p=n.color;return p?xi.test(p)||Ti.test(p):!1}),k=U(function(){var p;return ke(c.value,(p={},re(p,"".concat(c.value,"-").concat(n.color),m.value),re(p,"".concat(c.value,"-has-color"),n.color&&!m.value),re(p,"".concat(c.value,"-hidden"),!y.value),re(p,"".concat(c.value,"-rtl"),h.value==="rtl"),p))});return function(){var p,l,s,o=n.icon,f=o===void 0?(p=i.icon)===null||p===void 0?void 0:p.call(i):o,w=n.color,b=n.closeIcon,u=b===void 0?(l=i.closeIcon)===null||l===void 0?void 0:l.call(i):b,C=n.closable,_=C===void 0?!1:C,I=function(){return _?u?A("span",{class:"".concat(c.value,"-close-icon"),onClick:d},[u]):A(Sn,{class:"".concat(c.value,"-close-icon"),onClick:d},null):null},E={backgroundColor:w&&!m.value?w:void 0},P=f||null,S=(s=i.default)===null||s===void 0?void 0:s.call(i),$=P?A(ee,null,[P,A("span",null,[S])]):S,N="onClick"in r,Q=A("span",{class:k.value,style:E},[$,I()]);return N?A(kn,null,{default:function(){return[Q]}}):Q}}});Ae.CheckableTag=Ue;Ae.install=function(e){return e.component(Ae.name,Ae),e.component(Ue.name,Ue),e};const $i=Ae;he.Button=Fe;he.install=function(e){return e.component(he.name,he),e.component(Fe.name,Fe),e};var Bi={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z"}}]},name:"star",theme:"filled"};const Fi=Bi;function bt(e){for(var n=1;n{document.addEventListener(...e),Nt(()=>document.removeEventListener(...e))},Zi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==",Ie=new WeakMap;function Xi(e,n){return{useHookShareState:i=>{const a=Pn();$e(a),Ie.has(a)||(Ie.set(a,Ze(e(a,i??(n==null?void 0:n())))),Nt(()=>{Ie.delete(a)}));const r=Ie.get(a);return $e(r),{state:r,toRefs(){return On(r)}}}}}var ea={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 ta=ea;function kt(e){for(var n=1;n
'};t.configure=function(l){var s,o;for(s in l)o=l[s],o!==void 0&&l.hasOwnProperty(s)&&(i[s]=o);return this},t.status=null,t.set=function(l){var s=t.isStarted();l=a(l,i.minimum,1),t.status=l===1?null:l;var o=t.render(!s),f=o.querySelector(i.barSelector),w=i.speed,b=i.easing;return o.offsetWidth,c(function(u){i.positionUsing===""&&(i.positionUsing=t.getPositioningCSS()),h(f,v(l,w,b)),l===1?(h(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout(function(){h(o,{transition:"all "+w+"ms linear",opacity:0}),setTimeout(function(){t.remove(),u()},w)},w)):setTimeout(u,w)}),this},t.isStarted=function(){return typeof t.status=="number"},t.start=function(){t.status||t.set(0);var l=function(){setTimeout(function(){t.status&&(t.trickle(),l())},i.trickleSpeed)};return i.trickle&&l(),this},t.done=function(l){return!l&&!t.status?this:t.inc(.3+.5*Math.random()).set(1)},t.inc=function(l){var s=t.status;return s?s>1?void 0:(typeof l!="number"&&(s>=0&&s<.2?l=.1:s>=.2&&s<.5?l=.04:s>=.5&&s<.8?l=.02:s>=.8&&s<.99?l=.005:l=0),s=a(s+l,0,.994),t.set(s)):t.start()},t.trickle=function(){return t.inc()},function(){var l=0,s=0;t.promise=function(o){return!o||o.state()==="resolved"?this:(s===0&&t.start(),l++,s++,o.always(function(){s--,s===0?(l=0,t.done()):t.set((l-s)/l)}),this)}}(),t.getElement=function(){var l=t.getParent();if(l){var s=Array.prototype.slice.call(l.querySelectorAll(".nprogress")).filter(function(o){return o.parentElement===l});if(s.length>0)return s[0]}return null},t.getParent=function(){if(i.parent instanceof HTMLElement)return i.parent;if(typeof i.parent=="string")return document.querySelector(i.parent)},t.render=function(l){if(t.isRendered())return t.getElement();d(document.documentElement,"nprogress-busy");var s=document.createElement("div");s.id="nprogress",s.className="nprogress",s.innerHTML=i.template;var o=s.querySelector(i.barSelector),f=l?"-100":r(t.status||0),w=t.getParent(),b;return h(o,{transition:"all 0 linear",transform:"translate3d("+f+"%,0,0)"}),i.showSpinner||(b=s.querySelector(i.spinnerSelector),b&&p(b)),w!=document.body&&d(w,"nprogress-custom-parent"),w.appendChild(s),s},t.remove=function(){t.status=null,m(document.documentElement,"nprogress-busy"),m(t.getParent(),"nprogress-custom-parent");var l=t.getElement();l&&p(l)},t.isRendered=function(){return!!t.getElement()},t.getPositioningCSS=function(){var l=document.body.style,s="WebkitTransform"in l?"Webkit":"MozTransform"in l?"Moz":"msTransform"in l?"ms":"OTransform"in l?"O":"";return s+"Perspective"in l?"translate3d":s+"Transform"in l?"translate":"margin"};function a(l,s,o){return lo?o:l}function r(l){return(-1+l)*100}function v(l,s,o){var f;return i.positionUsing==="translate3d"?f={transform:"translate3d("+r(l)+"%,0,0)"}:i.positionUsing==="translate"?f={transform:"translate("+r(l)+"%,0)"}:f={"margin-left":r(l)+"%"},f.transition="all "+s+"ms "+o,f}var c=function(){var l=[];function s(){var o=l.shift();o&&o(s)}return function(o){l.push(o),l.length==1&&s()}}(),h=function(){var l=["Webkit","O","Moz","ms"],s={};function o(u){return u.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(C,_){return _.toUpperCase()})}function f(u){var C=document.body.style;if(u in C)return u;for(var _=l.length,I=u.charAt(0).toUpperCase()+u.slice(1),E;_--;)if(E=l[_]+I,E in C)return E;return u}function w(u){return u=o(u),s[u]||(s[u]=f(u))}function b(u,C,_){C=w(C),u.style[C]=_}return function(u,C){var _=arguments,I,E;if(_.length==2)for(I in C)E=C[I],E!==void 0&&C.hasOwnProperty(I)&&b(u,I,E);else b(u,_[1],_[2])}}();function y(l,s){var o=typeof l=="string"?l:k(l);return o.indexOf(" "+s+" ")>=0}function d(l,s){var o=k(l),f=o+s;y(o,s)||(l.className=f.substring(1))}function m(l,s){var o=k(l),f;y(l,s)&&(f=o.replace(" "+s+" "," "),l.className=f.substring(1,f.length-1))}function k(l){return(" "+(l&&l.className||"")+" ").replace(/\s+/gi," ")}function p(l){l&&l.parentNode&&l.parentNode.removeChild(l)}return t})})(en);var ba=en.exports;const wa=Tn(ba);function Aa(){const e=[];for(let a=0;a<72;a++){const v=`hsl(${a*7.2}, 90%, 35%)`;e.push(v)}return e}const _t=Aa(),tn=zt("useTagStore",()=>{const e=Ze(new Map),n=async r=>{if(r=r.filter(v=>!e.has(v)),!!r.length)try{r.forEach(c=>e.set(c,[]));const v=await wi(r);for(const c in v)e.set(c,v[c])}catch{r.forEach(v=>e.delete(v))}},t=new Map;return{tagMap:e,getColor:r=>{let v=t.get(r);if(!v){const c=ft.hash.sha256.hash(r),h=parseInt(ft.codec.hex.fromBits(c),16)%_t.length;v=_t[h],t.set(r,v)}return v},fetchImageTags:n,refreshTags:async r=>{r.forEach(v=>e.delete(v)),await n(r)}}}),ka=zt("useBatchDownloadStore",()=>{const e=V([]);return{selectdFiles:e,addFiles:t=>{e.value=Mn([...e.value,...t])}}});class Ot{constructor(n,t=$n.CREATED_TIME_DESC){Qe(this,"root");Qe(this,"execQueue",[]);this.sortMethod=t,this.root={children:[],info:{name:n,size:"-",bytes:0,created_time:"",is_under_scanned_path:!0,date:"",type:"dir",fullpath:n}},this.fetchChildren(this.root)}reset(){return this.root.children=[],this.fetchChildren(this.root)}get images(){const n=t=>t.children.map(i=>{if(i.info.type==="dir")return n(i);if(Dt(i.info.name))return i.info}).filter(i=>i).flat(1);return n(this.root)}get isCompleted(){return this.execQueue.length===0}async fetchChildren(n){const{files:t}=await we(n.info.fullpath);return n.children=Qt(t,this.sortMethod).map(i=>({info:i,children:[]})),this.execQueue.shift(),this.execQueue.unshift(...n.children.filter(i=>i.info.type==="dir").map(i=>({fn:()=>this.fetchChildren(i),...i}))),n}async next(){const n=Wi(this.execQueue);if(!n)return null;const t=await n.fn();return this.execQueue=this.execQueue.slice(),this.root={...this.root},t}}function Re(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Wn(e)}const Oe=new Map,F=Xe(),Sa=ka(),We=tn(),Pt=Bn(),Ee=new BroadcastChannel("iib-image-transfer-bus"),{eventEmitter:Pe,useEventListen:Je}=Lt(),{useHookShareState:le}=Xi((e,{images:n})=>{const t=V({tabIdx:-1,paneIdx:-1}),i=U(()=>pe(a.value)),a=V([]),r=U(()=>{var w;return a.value.map(b=>b.curr).slice((w=F.conf)!=null&&w.is_win?1:0)}),v=U(()=>jt(...r.value)),c=V(F.defaultSortingMethod),h=V(t.value.walkModePath?new Ot(t.value.walkModePath,c.value):void 0);me([()=>t.value.walkModePath,c],()=>{h.value=t.value.walkModePath?new Ot(t.value.walkModePath,c.value):void 0});const y=Ze(new Set);me(i,()=>y.clear());const d=U(()=>{var C;if(n.value)return n.value;if(h.value)return h.value.images.filter(_=>!y.has(_.fullpath));if(!i.value)return[];const w=((C=i.value)==null?void 0:C.files)??[],b=c.value;return Qt((_=>F.onlyFoldersAndImages?_.filter(I=>I.type==="dir"||Dt(I.name)):_)(w),b).filter(_=>!y.has(_.fullpath))}),m=V([]),k=V(-1),p=U(()=>h.value?!h.value.isCompleted:!1),l=V(!1),s=V(!1),o=()=>{var w,b,u;return(u=(b=(w=F.tabList)==null?void 0:w[t.value.tabIdx])==null?void 0:b.panes)==null?void 0:u[t.value.paneIdx]},f=Lt();return f.useEventListen("selectAll",()=>{console.log(`select all 0 -> ${d.value.length}`),m.value=Zt(0,d.value.length)}),{previewing:s,spinning:l,canLoadNext:p,multiSelectedIdxs:m,previewIdx:k,basePath:r,currLocation:v,currPage:i,stack:a,sortMethod:c,sortedFiles:d,scroller:V(),stackViewEl:V(),props:t,getPane:o,walker:h,deletedFiles:y,...f}},()=>({images:V()}));function dr(){const{previewIdx:e,eventEmitter:n,canLoadNext:t,previewing:i,sortedFiles:a,scroller:r,props:v}=le().toRefs(),{state:c}=le();let h=null;const y=(p,l)=>{var s;i.value=p,h!=null&&!p&&l&&((s=r.value)==null||s.scrollToItem(h),h=null)},d=()=>{v.value.walkModePath&&!k("next")&&t&&(te.info(j("loadingNextFolder")),n.value.emit("loadNextDir",!0))};Se("keydown",p=>{var l;if(i.value){let s=e.value;if(["ArrowDown","ArrowRight"].includes(p.key))for(s++;a.value[s]&&!X(a.value[s].name);)s++;else if(["ArrowUp","ArrowLeft"].includes(p.key))for(s--;a.value[s]&&!X(a.value[s].name);)s--;if(X((l=a.value[s])==null?void 0:l.name)??""){e.value=s;const o=r.value;o&&!(s>=o.$_startIndex&&s<=o.$_endIndex)&&(h=s)}d()}});const m=p=>{var s;let l=e.value;if(p==="next")for(l++;a.value[l]&&!X(a.value[l].name);)l++;else if(p==="prev")for(l--;a.value[l]&&!X(a.value[l].name);)l--;if(X((s=a.value[l])==null?void 0:s.name)??""){e.value=l;const o=r.value;o&&!(l>=o.$_startIndex&&l<=o.$_endIndex)&&(h=l)}d()},k=p=>{var s;let l=e.value;if(p==="next")for(l++;a.value[l]&&!X(a.value[l].name);)l++;else if(p==="prev")for(l--;a.value[l]&&!X(a.value[l].name);)l--;return X((s=a.value[l])==null?void 0:s.name)??""};return Je("removeFiles",async()=>{var p;i.value&&!c.sortedFiles[e.value]&&(te.info(j("manualExitFullScreen"),5),await et(500),(p=document.querySelector(".ant-image-preview-operations-operation .anticon-close"))==null||p.click(),e.value=-1)}),{previewIdx:e,onPreviewVisibleChange:y,previewing:i,previewImgMove:m,canPreview:k}}function fr(){const e=V(),{scroller:n,stackViewEl:t,stack:i,currPage:a,currLocation:r,useEventListen:v,eventEmitter:c,getPane:h,props:y,deletedFiles:d,walker:m,sortedFiles:k}=le().toRefs();me(()=>i.value.length,Be((g,T)=>{var z;g!==T&&((z=n.value)==null||z.scrollToItem(0))},300));const p=async g=>{var T;await w(g),y.value.walkModePath&&(await et(),await((T=m.value)==null?void 0:T.reset()),c.value.emit("loadNextDir"))};Fn(async()=>{var g;if(!i.value.length){const T=await we("/");i.value.push({files:T.files,curr:"/"})}e.value=new wa,e.value.configure({parent:t.value}),y.value.path&&y.value.path!=="/"?await p(y.value.walkModePath??y.value.path):(g=F.conf)!=null&&g.home&&w(F.conf.home)}),me(r,Be(g=>{const T=h.value();if(!T)return;T.path=g;const z=T.path.split("/").pop(),K=(()=>{var ne;if(!y.value.walkModePath){const q=_e(g);for(const[oe,ye]of Object.entries(F.pathAliasMap))if(q.startsWith(ye))return q.replace(ye,oe);return z}return"Walk: "+(((ne=F.quickMovePaths.find(q=>q.dir===T.walkModePath))==null?void 0:ne.zh)??z)})();T.name=De("div",{style:"display:flex;align-items:center"},[De(ia),De("span",{class:"line-clamp-1",style:"max-width: 256px"},K)]),T.nameFallbackStr=K,F.recent=F.recent.filter(ne=>ne.key!==T.key),F.recent.unshift({path:g,key:T.key}),F.recent.length>20&&(F.recent=F.recent.slice(0,20))},300));const l=()=>Ve(r.value),s=async g=>{var T,z;if(g.type==="dir")try{(T=e.value)==null||T.start();const{files:Y}=await we(g.fullpath);i.value.push({files:Y,curr:g.name})}finally{(z=e.value)==null||z.done()}},o=g=>{for(;g($e(F.conf,"global.conf load failed"),F.conf.is_win?g.toLowerCase()==T.toLowerCase():g==T),w=async g=>{var z,Y;const T=i.value.slice();try{Nn(g)||(g=jt(((z=F.conf)==null?void 0:z.sd_cwd)??"/",g));const K=vt(g),ne=i.value.map(q=>q.curr);for(ne.shift();ne[0]&&K[0]&&f(ne[0],K[0]);)ne.shift(),K.shift();for(let q=0;qf(ye.name,q));if(!oe)throw console.error({frags:K,frag:q,stack:Rt(i.value)}),new Error(`${q} not found`);await s(oe)}}catch(K){throw te.error(j("moveFailedCheckPath")+(K instanceof Error?K.message:"")),console.error(g,vt(g),a.value),i.value=T,K}},b=pt(async()=>{var g,T,z;try{if((g=e.value)==null||g.start(),m.value)await m.value.reset(),c.value.emit("loadNextDir");else{const{files:Y}=await we(i.value.length===1?"/":r.value);pe(i.value).files=Y}d.value.clear(),(T=n.value)==null||T.scrollToItem(0),te.success(j("refreshCompleted"))}finally{(z=e.value)==null||z.done()}});zn("returnToIIB",pt(async()=>{var g,T;if(!y.value.walkModePath)try{(g=e.value)==null||g.start();const{files:z}=await we(i.value.length===1?"/":r.value);pe(i.value).files.map(K=>K.date).join()!==z.map(K=>K.date).join()&&(pe(i.value).files=z,te.success(j("autoUpdate")))}finally{(T=e.value)==null||T.done()}})),v.value("refresh",b);const u=g=>{y.value.walkModePath&&(h.value().walkModePath=g),p(g)},C=U(()=>F.quickMovePaths.map(g=>({...g,path:_e(g.dir)}))),_=U(()=>{const g=_e(r.value);return C.value.find(z=>z.path===g)}),I=async()=>{const g=_.value;if(g){if(!g.can_delete)return;await Ai({path:r.value,type:"scanned"}),te.success(j("removeCompleted"))}else await ki({path:r.value,type:"scanned"}),te.success(j("addCompleted"));ht.emit("searchIndexExpired"),ht.emit("updateGlobalSetting")},E=V(!1),P=V(r.value),S=()=>{E.value=!0,P.value=r.value},$=async()=>{await w(P.value),E.value=!1};Se("click",g=>{var T,z,Y;(Y=(z=(T=g.target)==null?void 0:T.className)==null?void 0:z.includes)!=null&&Y.call(z,"ant-input")||(E.value=!1)});const N=()=>{const g=parent.location,T=g.href.substring(0,g.href.length-g.search.length),z=new URLSearchParams(g.search);z.set("action","open"),m.value&&z.set("walk","1"),z.set("path",r.value);const Y=`${T}?${z.toString()}`;Ve(Y,j("copyLocationUrlSuccessMsg"))},Q=()=>{const g=F.tabList[y.value.tabIdx],T={type:"tag-search",key:de(),searchScope:r.value,name:j("imgSearch")};g.panes.push(T),g.key=T.key},G=()=>c.value.emit("selectAll"),M=async()=>{await pi(r.value),await b()},x=()=>{const g=r.value;Oe.set(g,i.value);const T=F.tabList[y.value.tabIdx],z={type:"local",key:de(),path:g,name:j("local"),stackKey:g,walkModePath:g};T.panes.push(z),T.key=z.key},W=U(()=>!m.value&&k.value.some(g=>g.type==="dir"));return{locInputValue:P,isLocationEditing:E,onLocEditEnter:$,onEditBtnClick:S,addToSearchScanPathAndQuickMove:I,searchPathInfo:_,refresh:b,copyLocation:l,back:o,openNext:s,currPage:a,currLocation:r,to:w,stack:i,scroller:n,share:N,selectAll:G,quickMoveTo:u,onCreateFloderBtnClick:M,onWalkBtnClick:x,showWalkButton:W,searchInCurrentDir:Q}}function vr({fetchNext:e}={}){const{scroller:n,sortedFiles:t,sortMethod:i,currLocation:a,stackViewEl:r,canLoadNext:v,previewIdx:c,props:h,walker:y}=le().toRefs(),{state:d}=le(),m=V(!1),k=V(F.defaultGridCellWidth),p=U(()=>k.value+16),l=44,{width:s}=Qn(r),o=U(()=>~~(s.value/p.value)),f=U(()=>{const I=p.value;return{first:I+(k.value<=160?0:l),second:I}}),w=V(!1),b=async()=>{var I;if(!(w.value||!h.value.walkModePath||!v.value))try{w.value=!0,await((I=y.value)==null?void 0:I.next())}finally{w.value=!1}},u=async(I=!1)=>{const E=n.value,P=()=>I?c.value:(E==null?void 0:E.$_endIndex)??0,S=()=>{const $=t.value.length,N=50;return $?e?P()>$-N:P()>$-N&&v.value:!0};for(;S();){await et(30);const $=await(e??b)();if(typeof $=="boolean"&&!$)return}};d.useEventListen("loadNextDir",u);const C=()=>{const I=n.value;if(I){const E=t.value.slice(Math.max(I.$_startIndex-10,0),I.$_endIndex+10).filter(P=>P.is_under_scanned_path&&X(P.name)).map(P=>P.fullpath);We.fetchImageTags(E)}};me(a,Be(C,150));const _=Be(async()=>{await u(),C()},150);return{gridItems:o,sortedFiles:t,sortMethodConv:Dn,moreActionsDropdownShow:m,gridSize:p,sortMethod:i,onScroll:_,loadNextDir:b,loadNextDirLoading:w,canLoadNext:v,itemSize:f,cellWidth:k}}function pr(){const{currLocation:e,sortedFiles:n,currPage:t,multiSelectedIdxs:i,eventEmitter:a,walker:r}=le().toRefs(),v=()=>{i.value=[]};return Se("click",v),Se("blur",v),me(t,v),{onFileDragStart:(d,m)=>{const k=Rt(n.value[m]);Pt.fileDragging=!0,console.log("onFileDragStart set drag file ",d,m,k);const p=[k];let l=k.type==="dir";if(i.value.includes(m)){const o=i.value.map(f=>n.value[f]);p.push(...o),l=o.some(f=>f.type==="dir")}const s={includeDir:l,loc:e.value||"search-result",path:mt(p,"fullpath").map(o=>o.fullpath),nodes:mt(p,"fullpath"),__id:"FileTransferData"};d.dataTransfer.setData("text/plain",JSON.stringify(s))},onDrop:async d=>{if(r.value)return;const m=Rn(d);if(!m)return;const k=e.value;if(m.loc===k)return;const p=Ht(),l=async()=>p.pushAction(async()=>{await gi(m.path,k),a.value.emit("refresh"),be.destroyAll()}),s=()=>p.pushAction(async()=>{await Kt(m.path,k),Pe.emit("removeFiles",{paths:m.path,loc:m.loc}),a.value.emit("refresh"),be.destroyAll()});be.confirm({title:j("confirm")+"?",width:"60vw",content:()=>{let o,f,w;return A("div",null,[A("div",null,[`${j("moveSelectedFilesTo")} ${k}`,A("ol",{style:{maxHeight:"50vh",overflow:"auto"}},[m.path.map(b=>A("li",null,[b.split(/[/\\]/).pop()]))])]),A(Jt,null,null),A("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end"},class:"actions"},[A(ve,{onClick:be.destroyAll},Re(o=j("cancel"))?o:{default:()=>[o]}),A(ve,{type:"primary",loading:!p.isIdle,onClick:l},Re(f=j("copy"))?f:{default:()=>[f]}),A(ve,{type:"primary",loading:!p.isIdle,onClick:s},Re(w=j("move"))?w:{default:()=>[w]})])])},maskClosable:!0,wrapClassName:"hidden-antd-btns-modal"})},multiSelectedIdxs:i,onFileDragEnd:()=>{Pt.fileDragging=!1}}}function hr({openNext:e}){const n=V(!1),t=V(""),{sortedFiles:i,previewIdx:a,multiSelectedIdxs:r,stack:v,currLocation:c,spinning:h,previewing:y,stackViewEl:d,eventEmitter:m,props:k,deletedFiles:p}=le().toRefs(),l=_e;Je("removeFiles",({paths:b,loc:u})=>{l(u)!==l(c.value)||!pe(v.value)||(b.forEach(_=>p.value.add(_)),b.filter(X).forEach(_=>p.value.add(_.replace(/\.\w+$/,".txt"))))}),Je("addFiles",({files:b,loc:u})=>{if(l(u)!==l(c.value))return;const C=pe(v.value);C&&C.files.unshift(...b)});const s=Ht(),o=async(b,u,C)=>{a.value=C,F.fullscreenPreviewInitialUrl=ce(u);const _=r.value.indexOf(C);if(b.shiftKey){if(_!==-1)r.value.splice(_,1);else{r.value.push(C),r.value.sort((P,S)=>P-S);const I=r.value[0],E=r.value[r.value.length-1];r.value=Zt(I,E+1)}b.stopPropagation()}else b.ctrlKey||b.metaKey?(_!==-1?r.value.splice(_,1):r.value.push(C),b.stopPropagation()):await e(u)},f=async(b,u,C)=>{var N,Q,G;const _=ce(u),I=c.value,E={IIB_container_id:parent.IIB_container_id},P=()=>{let M=[];return r.value.includes(C)?M=r.value.map(x=>i.value[x]):M.push(u),M},S=async M=>{if(!h.value)try{h.value=!0,await Jn(u.fullpath),Ee.postMessage({...E,event:"click_hidden_button",btnEleId:"iib_hidden_img_update_trigger"}),await Kn(),Ee.postMessage({...E,event:"click_hidden_button",btnEleId:`iib_hidden_tab_${M}`})}catch(x){console.error(x),te.error("发送图像失败,请携带console的错误消息找开发者")}finally{h.value=!1}},$=`${b.key}`;if($.startsWith("toggle-tag-")){const M=+$.split("toggle-tag-")[1],{is_remove:x}=await Si({tag_id:M,img_path:u.fullpath}),W=(Q=(N=F.conf)==null?void 0:N.all_custom_tags.find(g=>g.id===M))==null?void 0:Q.name;await We.refreshTags([u.fullpath]),te.success(j(x?"removedTagFromImage":"addedTagToImage",{tag:W}));return}else if($.startsWith("batch-add-tag-")||$.startsWith("batch-remove-tag-")){const M=+$.split("-tag-")[1],x=$.includes("add")?"add":"remove",W=P().map(g=>g.fullpath);await Ci({tag_id:M,img_paths:W,action:x}),await We.refreshTags(W),te.success(j(x==="add"?"addCompleted":"removeCompleted"));return}switch(b.key){case"previewInNewWindow":return window.open(_);case"download":{const M=P();Un(M.map(x=>ce(x,!0)));break}case"copyPreviewUrl":return Ve(parent.document.location.origin+_);case"send2txt2img":return S("txt2img");case"send2img2img":return S("img2img");case"send2inpaint":return S("inpaint");case"send2extras":return S("extras");case"send2savedDir":{const M=F.quickMovePaths.find(g=>g.key==="outdir_save");if(!M)return te.error(j("unknownSavedDir"));const x=Vn(M.dir,(G=F.conf)==null?void 0:G.sd_cwd),W=P();await Kt(W.map(g=>g.fullpath),x,!0),Pe.emit("removeFiles",{paths:W.map(g=>g.fullpath),loc:c.value}),Pe.emit("addFiles",{files:W,loc:x});break}case"send2controlnet-img2img":case"send2controlnet-txt2img":{const M=b.key.split("-")[1];Ee.postMessage({...E,event:"send_to_control_net",type:M,url:ce(u)});break}case"send2outpaint":{t.value=await s.pushAction(()=>gt(u.fullpath)).res;const[M,x]=(t.value||"").split(`
-`);Ee.postMessage({...E,event:"send_to_outpaint",url:ce(u),prompt:M,negPrompt:x.slice(17)});break}case"openWithWalkMode":{Oe.set(I,v.value);const M=F.tabList[k.value.tabIdx],x={type:"local",key:de(),path:u.fullpath,name:j("local"),stackKey:I,walkModePath:u.fullpath};M.panes.push(x),M.key=x.key;break}case"openInNewTab":{Oe.set(I,v.value);const M=F.tabList[k.value.tabIdx],x={type:"local",key:de(),path:u.fullpath,name:j("local"),stackKey:I};M.panes.push(x),M.key=x.key;break}case"openOnTheRight":{Oe.set(I,v.value);let M=F.tabList[k.value.tabIdx+1];M||(M={panes:[],key:"",id:de()},F.tabList[k.value.tabIdx+1]=M);const x={type:"local",key:de(),path:u.fullpath,name:j("local"),stackKey:I};M.panes.push(x),M.key=x.key;break}case"send2BatchDownload":{Sa.addFiles(P());break}case"viewGenInfo":{n.value=!0,t.value=await s.pushAction(()=>gt(u.fullpath)).res;break}case"openWithLocalFileBrowser":{await Hn(u.fullpath);break}case"deleteFiles":{const M=P(),x=async()=>{const W=M.map(g=>g.fullpath);await yi(W),te.success(j("deleteSuccess")),Pe.emit("removeFiles",{paths:W,loc:c.value})};if(M.length===1&&F.ignoredConfirmActions.deleteOneOnly)return x();await new Promise(W=>{be.confirm({title:j("confirmDelete"),maskClosable:!0,width:"60vw",content:()=>A("div",null,[A("ol",{style:{maxHeight:"50vh",overflow:"auto"}},[M.map(g=>A("li",null,[g.fullpath.split(/[/\\]/).pop()]))]),A(Jt,null,null),A(hi,{checked:F.ignoredConfirmActions.deleteOneOnly,"onUpdate:checked":g=>F.ignoredConfirmActions.deleteOneOnly=g},{default:()=>[j("deleteOneOnlySkipConfirm"),D(" ("),j("resetOnGlobalSettingsPage"),D(")")]})]),async onOk(){await x(),W()}})});break}}return{}},{isOutside:w}=Ln(d);return Se("keydown",b=>{var C,_,I;const u=mi(b);if(y.value){const E=(C=Object.entries(F.shortcut).find(P=>P[1]===u&&P[1]))==null?void 0:C[0];if(E){b.stopPropagation(),b.preventDefault();const P=a.value,S=i.value[P];switch(E){case"delete":return ce(S)===F.fullscreenPreviewInitialUrl?te.warn(j("fullscreenRestriction")):f({key:"deleteFiles"},S,P);case"download":return f({key:"download"},S,P);default:{const $=(_=/^toggle_tag_(.*)$/.exec(E))==null?void 0:_[1],N=(I=F.conf)==null?void 0:I.all_custom_tags.find(Q=>Q.name===$);return N?f({key:`toggle-tag-${N.id}`},S,P):void 0}}}}else!w.value&&["Ctrl + KeyA","Cmd + KeyA"].includes(u)&&(b.preventDefault(),b.stopPropagation(),m.value.emit("selectAll"))}),{onFileItemClick:o,onContextMenuClick:f,showGenInfo:n,imageGenInfo:t,q:s}}const mr=()=>{const{stackViewEl:e}=le().toRefs(),n=V(-1);return jn(e,t=>{var a;let i=t.target;for(;i.parentElement;)if(i=i.parentElement,i.tagName.toLowerCase()==="li"&&i.classList.contains("file-item-trigger")){const r=(a=i.dataset)==null?void 0:a.idx;r&&Number.isSafeInteger(+r)&&(n.value=+r);return}}),{showMenuIdx:n}};function Ca(){var e=window.navigator.userAgent,n=e.indexOf("MSIE ");if(n>0)return parseInt(e.substring(n+5,e.indexOf(".",n)),10);var t=e.indexOf("Trident/");if(t>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}let xe;function Ke(){Ke.init||(Ke.init=!0,xe=Ca()!==-1)}var ze={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){Ke(),Vt(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",xe&&this.$el.appendChild(e),e.data="about:blank",xe||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!xe&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const Ia=Yn();qn("data-v-b329ee4c");const Ea={class:"resize-observer",tabindex:"-1"};Gn();const _a=Ia((e,n,t,i,a,r)=>(O(),H("div",Ea)));ze.render=_a;ze.__scopeId="data-v-b329ee4c";ze.__file="src/components/ResizeObserver.vue";function Te(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Te=function(n){return typeof n}:Te=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Te(e)}function Oa(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function xt(e,n){for(var t=0;te.length)&&(n=e.length);for(var t=0,i=new Array(n);t2&&arguments[2]!==void 0?arguments[2]:{},i,a,r,v=function(h){for(var y=arguments.length,d=new Array(y>1?y-1:0),m=1;m1){var y=c.find(function(m){return m.isIntersecting});y&&(h=y)}if(a.callback){var d=h.isIntersecting&&h.intersectionRatio>=a.threshold;if(d===a.oldResult)return;a.oldResult=d,a.callback(d,h)}},this.options.intersection),Vt(function(){a.observer&&a.observer.observe(a.el)})}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&typeof this.options.intersection.threshold=="number"?this.options.intersection.threshold:0}}]),e}();function an(e,n,t){var i=n.value;if(i)if(typeof IntersectionObserver>"u")console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var a=new Na(e,i,t);e._vue_visibilityState=a}}function za(e,n,t){var i=n.value,a=n.oldValue;if(!nn(i,a)){var r=e._vue_visibilityState;if(!i){rn(e);return}r?r.createObserver(i,t):an(e,{value:i},t)}}function rn(e){var n=e._vue_visibilityState;n&&(n.destroyObserver(),delete e._vue_visibilityState)}var Qa={beforeMount:an,updated:za,unmounted:rn},Da={itemsLimit:1e3},La=/(auto|scroll)/;function ln(e,n){return e.parentNode===null?n:ln(e.parentNode,n.concat([e]))}var He=function(n,t){return getComputedStyle(n,null).getPropertyValue(t)},ja=function(n){return He(n,"overflow")+He(n,"overflow-y")+He(n,"overflow-x")},Ra=function(n){return La.test(ja(n))};function Mt(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var n=ln(e.parentNode,[]),t=0;t{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0})},activated(){const e=this.$_lastUpdateScrollPosition;typeof e=="number"&&this.$nextTick(()=>{this.scrollToPosition(e)})},beforeUnmount(){this.removeListeners()},methods:{addView(e,n,t,i,a){const r=Zn({id:Wa++,index:n,used:!0,key:i,type:a}),v=Xn({item:t,position:0,nr:r});return e.push(v),v},unuseView(e,n=!1){const t=this.$_unusedViews,i=e.nr.type;let a=t.get(i);a||(a=[],t.set(i,a)),a.push(e),n||(e.nr.used=!1,e.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(e){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const n=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;const{continuous:t}=this.updateVisibleItems(!1,!0);t||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))});n(),this.updateInterval&&(this.$_updateTimeout=setTimeout(()=>{this.$_updateTimeout=0,this.$_scrollDirty&&n()},this.updateInterval))}},handleVisibilityChange(e,n){this.ready&&(e||n.boundingClientRect.width!==0||n.boundingClientRect.height!==0?(this.$emit("visible"),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit("hidden"))},updateVisibleItems(e,n=!1){const t=this.itemSize,i=this.gridItems||1,a=this.itemSecondarySize||t,r=this.$_computedMinItemSize,v=this.typeField,c=this.simpleArray?null:this.keyField,h=this.items,y=h.length,d=this.sizes,m=this.$_views,k=this.$_unusedViews,p=this.pool,l=this.itemIndexByKey;let s,o,f,w,b;if(!y)s=o=w=b=f=0;else if(this.$_prerender)s=w=0,o=b=Math.min(this.prerender,h.length),f=null;else{const S=this.getScroll();if(n){let Q=S.start-this.$_lastUpdateScrollPosition;if(Q<0&&(Q=-Q),t===null&&QS.start&&(M=x),x=~~((G+M)/2);while(x!==W);for(x<0&&(x=0),s=x,f=d[y-1].accumulator,o=x;oy&&(o=y)),w=s;wy&&(o=y),w<0&&(w=0),b>y&&(b=y),f=Math.ceil(y/i)*t}}o-s>Da.itemsLimit&&this.itemsLimitError(),this.totalSize=f;let u;const C=s<=this.$_endIndex&&o>=this.$_startIndex;if(C)for(let S=0,$=p.length;S<$;S++)u=p[S],u.nr.used&&(e&&(u.nr.index=l[u.item[c]]),(u.nr.index==null||u.nr.index=o)&&this.unuseView(u));const _=C?null:new Map;let I,E,P;for(let S=s;S=N.length)&&(u=this.addView(p,S,I,$,E),this.unuseView(u,!0),N=k.get(E)),u=N[P],_.set(E,P+1)),m.delete(u.nr.key),u.nr.used=!0,u.nr.index=S,u.nr.key=$,u.nr.type=E,m.set($,u),Q=!0;else if(!u.nr.used&&(u.nr.used=!0,u.nr.index=S,Q=!0,N)){const G=N.indexOf(u);G!==-1&&N.splice(G,1)}u.item=I,Q&&(S===h.length-1&&this.$emit("scroll-end"),S===0&&this.$emit("scroll-start")),t===null?(u.position=d[S-1].accumulator,u.offset=0):(u.position=Math.floor(S/i)*t,u.offset=S%i*a)}return this.$_startIndex=s,this.$_endIndex=o,this.emitUpdate&&this.$emit("update",s,o,w,b),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:C}},getListenerTarget(){let e=Mt(this.$el);return window.document&&(e===window.document.documentElement||e===window.document.body)&&(e=window),e},getScroll(){const{$el:e,direction:n}=this,t=n==="vertical";let i;if(this.pageMode){const a=e.getBoundingClientRect(),r=t?a.height:a.width;let v=-(t?a.top:a.left),c=t?window.innerHeight:window.innerWidth;v<0&&(c+=v,v=0),v+c>r&&(c=r-v),i={start:v,end:v+c}}else t?i={start:e.scrollTop,end:e.scrollTop+e.clientHeight}:i={start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return i},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,Ye?{passive:!0}:!1),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(e){let n;const t=this.gridItems||1;this.itemSize===null?n=e>0?this.sizes[e-1].accumulator:0:n=Math.floor(e/t)*this.itemSize,this.scrollToPosition(n)},scrollToPosition(e){const n=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let t,i,a;if(this.pageMode){const r=Mt(this.$el),v=r.tagName==="HTML"?0:r[n.scroll],c=r.getBoundingClientRect(),y=this.$el.getBoundingClientRect()[n.start]-c[n.start];t=r,i=n.scroll,a=e+v+y}else t=this.$el,i=n.scroll,a=e;t[i]=a},itemsLimitError(){throw setTimeout(()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")}),new Error("Rendered items limit reached")},sortViews(){this.pool.sort((e,n)=>e.nr.index-n.nr.index)}}};const Ja={key:0,ref:"before",class:"vue-recycle-scroller__slot"},Ka={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function qa(e,n,t,i,a,r){const v=ei("ResizeObserver"),c=ti("observe-visibility");return ni((O(),R("div",{class:fe(["vue-recycle-scroller",{ready:a.ready,"page-mode":t.pageMode,[`direction-${e.direction}`]:!0}]),onScrollPassive:n[0]||(n[0]=(...h)=>r.handleScroll&&r.handleScroll(...h))},[e.$slots.before?(O(),R("div",Ja,[Ce(e.$slots,"before")],512)):Z("v-if",!0),(O(),H(yt(t.listTag),{ref:"wrapper",style:ri({[e.direction==="vertical"?"minHeight":"minWidth"]:a.totalSize+"px"}),class:fe(["vue-recycle-scroller__item-wrapper",t.listClass])},{default:B(()=>[(O(!0),R(ee,null,ue(a.pool,h=>(O(),H(yt(t.itemTag),ii({key:h.nr.id,style:a.ready?{transform:`translate${e.direction==="vertical"?"Y":"X"}(${h.position}px) translate${e.direction==="vertical"?"X":"Y"}(${h.offset}px)`,width:t.gridItems?`${e.direction==="vertical"&&t.itemSecondarySize||t.itemSize}px`:void 0,height:t.gridItems?`${e.direction==="horizontal"&&t.itemSecondarySize||t.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[t.itemClass,{hover:!t.skipHover&&a.hoverKey===h.nr.key}]]},ai(t.skipHover?{}:{mouseenter:()=>{a.hoverKey=h.nr.key},mouseleave:()=>{a.hoverKey=null}})),{default:B(()=>[Ce(e.$slots,"default",{item:h.item,index:h.nr.index,active:h.nr.used})]),_:2},1040,["style","class"]))),128)),Ce(e.$slots,"empty")]),_:3},8,["style","class"])),e.$slots.after?(O(),R("div",Ka,[Ce(e.$slots,"after")],512)):Z("v-if",!0),A(v,{onNotify:r.handleResize},null,8,["onNotify"])],34)),[[c,r.handleVisibilityChange]])}sn.render=qa;sn.__file="src/components/RecycleScroller.vue";const $t=ge({__name:"ContextMenu",props:{file:{},idx:{},selectedTag:{},disableDelete:{type:Boolean},isSelectedMutilFiles:{type:Boolean}},emits:["contextMenuClick"],setup(e,{emit:n}){const t=e,i=Xe(),a=U(()=>{var r;return(((r=i.conf)==null?void 0:r.all_custom_tags)??[]).reduce((v,c)=>[...v,{...c,selected:!!t.selectedTag.find(h=>h.id===c.id)}],[])});return(r,v)=>{const c=Ut,h=li,y=si,d=Wt;return O(),H(d,{onClick:v[0]||(v[0]=m=>n("contextMenuClick",m,r.file,r.idx))},{default:B(()=>{var m;return[A(c,{key:"deleteFiles",disabled:r.disableDelete},{default:B(()=>[D(L(r.$t("deleteSelected")),1)]),_:1},8,["disabled"]),r.file.type==="dir"?(O(),R(ee,{key:0},[A(c,{key:"openInNewTab"},{default:B(()=>[D(L(r.$t("openInNewTab")),1)]),_:1}),A(c,{key:"openOnTheRight"},{default:B(()=>[D(L(r.$t("openOnTheRight")),1)]),_:1}),A(c,{key:"openWithWalkMode"},{default:B(()=>[D(L(r.$t("openWithWalkMode")),1)]),_:1})],64)):Z("",!0),r.file.type==="file"?(O(),R(ee,{key:1},[J(X)(r.file.name)?(O(),R(ee,{key:0},[A(c,{key:"viewGenInfo"},{default:B(()=>[D(L(r.$t("viewGenerationInfo")),1)]),_:1}),A(h),((m=J(i).conf)==null?void 0:m.launch_mode)!=="server"?(O(),R(ee,{key:0},[A(c,{key:"send2txt2img"},{default:B(()=>[D(L(r.$t("sendToTxt2img")),1)]),_:1}),A(c,{key:"send2img2img"},{default:B(()=>[D(L(r.$t("sendToImg2img")),1)]),_:1}),A(c,{key:"send2inpaint"},{default:B(()=>[D(L(r.$t("sendToInpaint")),1)]),_:1}),A(c,{key:"send2extras"},{default:B(()=>[D(L(r.$t("sendToExtraFeatures")),1)]),_:1}),A(y,{key:"sendToThirdPartyExtension",title:r.$t("sendToThirdPartyExtension")},{default:B(()=>[A(c,{key:"send2controlnet-txt2img"},{default:B(()=>[D("ControlNet - "+L(r.$t("t2i")),1)]),_:1}),A(c,{key:"send2controlnet-img2img"},{default:B(()=>[D("ControlNet - "+L(r.$t("i2i")),1)]),_:1}),A(c,{key:"send2outpaint"},{default:B(()=>[D("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):Z("",!0),A(c,{key:"send2BatchDownload"},{default:B(()=>[D(L(r.$t("sendToBatchDownload")),1)]),_:1}),A(c,{key:"send2savedDir"},{default:B(()=>[D(L(r.$t("send2savedDir")),1)]),_:1}),A(h),r.isSelectedMutilFiles?(O(),R(ee,{key:1},[A(y,{key:"batch-add-tag",title:r.$t("batchAddTag")},{default:B(()=>[(O(!0),R(ee,null,ue(a.value,k=>(O(),H(c,{key:`batch-add-tag-${k.id}`},{default:B(()=>[D(L(k.name),1)]),_:2},1024))),128))]),_:1},8,["title"]),A(y,{key:"batch-remove-tag",title:r.$t("batchRemoveTag")},{default:B(()=>[(O(!0),R(ee,null,ue(a.value,k=>(O(),H(c,{key:`batch-remove-tag-${k.id}`},{default:B(()=>[D(L(k.name),1)]),_:2},1024))),128))]),_:1},8,["title"])],64)):(O(),H(y,{key:"toggle-tag",title:r.$t("toggleTag")},{default:B(()=>[(O(!0),R(ee,null,ue(a.value,k=>(O(),H(c,{key:`toggle-tag-${k.id}`},{default:B(()=>[D(L(k.name)+" ",1),k.selected?(O(),H(J(Yt),{key:0})):(O(),H(J(Xt),{key:1}))]),_:2},1024))),128))]),_:1},8,["title"])),A(c,{key:"openWithLocalFileBrowser"},{default:B(()=>[D(L(r.$t("openWithLocalFileBrowser")),1)]),_:1})],64)):Z("",!0),A(c,{key:"previewInNewWindow"},{default:B(()=>[D(L(r.$t("previewInNewWindow")),1)]),_:1}),A(c,{key:"download"},{default:B(()=>[D(L(r.$t("download")),1)]),_:1}),A(c,{key:"copyPreviewUrl"},{default:B(()=>[D(L(r.$t("copySourceFilePreviewLink")),1)]),_:1})],64)):Z("",!0)]}),_:1})}}}),Ga=["data-idx"],Ya={key:1,class:"more"},Za={class:"float-btn-wrap"},Xa={key:0,class:"tags-container"},er={class:"play-icon"},tr={key:0,class:"tags-container"},nr={key:4,class:"preview-icon-wrap"},ir={key:5,class:"profile"},ar={class:"name line-clamp-1"},rr={class:"basic-info"},lr=ge({__name:"FileItem",props:{file:{},idx:{},selected:{type:Boolean,default:!1},showMenuIdx:{},cellWidth:{},fullScreenPreviewImageUrl:{},enableRightClickMenu:{type:Boolean,default:!0},enableCloseIcon:{type:Boolean,default:!1},isSelectedMutilFiles:{type:Boolean}},emits:["update:showMenuIdx","fileItemClick","dragstart","dragend","previewVisibleChange","contextMenuClick","close-icon-click"],setup(e,{emit:n}){const t=e;oi(d=>({"6b5a16d0":d.$props.cellWidth+"px"}));const i=Xe(),a=tn(),r=U(()=>a.tagMap.get(t.file.fullpath)??[]),v=U(()=>{const d=i.gridThumbnailResolution;return i.enableThumbnail?ci(t.file,[d,d].join("x")):ce(t.file)}),c=U(()=>{var d;return(((d=i.conf)==null?void 0:d.all_custom_tags)??[]).reduce((m,k)=>[...m,{...k,selected:!!r.value.find(p=>p.id===k.id)}],[])}),h=U(()=>c.value.find(d=>d.type==="custom"&&d.name==="like")),y=()=>{$e(h.value),n("contextMenuClick",{key:`toggle-tag-${h.value.id}`},t.file,t.idx)};return(d,m)=>{const k=he,p=Ut,l=Wt,s=fi,o=$i;return O(),H(k,{trigger:["contextmenu"],visible:J(i).longPressOpenContextMenu?typeof d.idx=="number"&&d.showMenuIdx===d.idx:void 0,"onUpdate:visible":m[8]||(m[8]=f=>typeof d.idx=="number"&&n("update:showMenuIdx",f?d.idx:-1))},{overlay:B(()=>[d.enableRightClickMenu?(O(),H($t,{key:0,file:d.file,idx:d.idx,"selected-tag":r.value,onContextMenuClick:m[7]||(m[7]=(f,w,b)=>n("contextMenuClick",f,w,b)),"is-selected-mutil-files":d.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])):Z("",!0)]),default:B(()=>[(O(),R("li",{class:fe(["file file-item-trigger grid",{clickable:d.file.type==="dir",selected:d.selected}]),"data-idx":d.idx,key:d.file.name,draggable:"true",onDragstart:m[4]||(m[4]=f=>n("dragstart",f,d.idx)),onDragend:m[5]||(m[5]=f=>n("dragend",f,d.idx)),onClickCapture:m[6]||(m[6]=f=>n("fileItemClick",f,d.file,d.idx))},[ae("div",null,[d.enableCloseIcon?(O(),R("div",{key:0,class:"close-icon",onClick:m[0]||(m[0]=f=>n("close-icon-click"))},[A(J(ui))])):Z("",!0),d.enableRightClickMenu?(O(),R("div",Ya,[A(k,null,{overlay:B(()=>[A($t,{file:d.file,idx:d.idx,"selected-tag":r.value,onContextMenuClick:m[1]||(m[1]=(f,w,b)=>n("contextMenuClick",f,w,b)),"is-selected-mutil-files":d.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])]),default:B(()=>[ae("div",Za,[A(J(Ft))])]),_:1}),d.file.type==="file"?(O(),H(k,{key:0},{overlay:B(()=>[c.value.length>1?(O(),H(l,{key:0,onClick:m[2]||(m[2]=f=>n("contextMenuClick",f,d.file,d.idx))},{default:B(()=>[(O(!0),R(ee,null,ue(c.value,f=>(O(),H(p,{key:`toggle-tag-${f.id}`},{default:B(()=>[D(L(f.name)+" ",1),f.selected?(O(),H(J(Yt),{key:0})):(O(),H(J(Xt),{key:1}))]),_:2},1024))),128))]),_:1})):Z("",!0)]),default:B(()=>{var f,w;return[ae("div",{class:fe(["float-btn-wrap",{"like-selected":(f=h.value)==null?void 0:f.selected}]),onClick:y},[(w=h.value)!=null&&w.selected?(O(),H(J(sa),{key:0})):(O(),H(J(da),{key:1}))],2)]}),_:1})):Z("",!0)])):Z("",!0),J(X)(d.file.name)?(O(),R("div",{key:d.file.fullpath,class:fe(`idx-${d.idx} item-content`)},[A(s,{src:v.value,fallback:J(Zi),preview:{src:d.fullScreenPreviewImageUrl,onVisibleChange:(f,w)=>n("previewVisibleChange",f,w)}},null,8,["src","fallback","preview"]),r.value&&d.cellWidth>128?(O(),R("div",Xa,[(O(!0),R(ee,null,ue(r.value,f=>(O(),H(o,{key:f.id,color:J(a).getColor(f.name)},{default:B(()=>[D(L(f.name),1)]),_:2},1032,["color"]))),128))])):Z("",!0)],2)):J(di)(d.file.name)?(O(),R("div",{key:3,class:fe(`idx-${d.idx} item-content video`),onClick:m[3]||(m[3]=f=>J(bi)(d.file))},[ae("div",er,[A(J(ha))]),r.value&&d.cellWidth>128?(O(),R("div",tr,[(O(!0),R(ee,null,ue(r.value,f=>(O(),H(o,{key:f.id,color:J(a).getColor(f.name)},{default:B(()=>[D(L(f.name),1)]),_:2},1032,["color"]))),128))])):Z("",!0)],2)):(O(),R("div",nr,[d.file.type==="file"?(O(),H(J(Li),{key:0,class:"icon center"})):(O(),H(J(Vi),{key:1,class:"icon center"}))])),d.cellWidth>128?(O(),R("div",ir,[ae("div",ar,L(d.file.name),1),ae("div",rr,[ae("div",null,L(d.file.size),1),ae("div",null,L(d.file.date),1)])])):Z("",!0)])],42,Ga))]),_:1},8,["visible"])}}});const gr=vi(lr,[["__scopeId","data-v-8b135d68"]]);export{he as D,gr as F,$t as _,fr as a,vr as b,pr as c,hr as d,dr as e,mr as f,sn as g,Je as h,tn as i,Se as j,ka as k,Oe as s,le as u};
+var cn=Object.defineProperty;var un=(e,n,t)=>n in e?cn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var Qe=(e,n,t)=>(un(e,typeof n!="symbol"?n+"":n,t),t);import{P as Me,c6 as dn,a as ie,d as ge,bq as Bt,u as Ne,c as A,c0 as Ft,_ as fn,V as ve,a0 as ke,ao as U,bL as ct,a3 as ut,bo as vn,h as re,c7 as pn,b as hn,ay as mn,c8 as gn,a2 as dt,bK as yn,c9 as bn,ca as wn,$ as V,b0 as An,z as ee,aA as kn,a1 as Sn,ag as se,cb as Cn,aR as In,cc as En,cd as _n,aM as Nt,ar as $e,bn as Ze,ce as On,cf as Pn,cg as xn,ch as Tn,ci as zt,cj as ft,ck as Mn,cl as $n,cm as Qt,cn as Dt,k as Xe,an as Bn,co as Lt,al as te,ai as j,cp as et,l as me,aC as Be,aw as Fn,aj as De,cq as Nn,cr as jt,cs as vt,as as Rt,bQ as pt,bP as zn,ct as _e,cu as Qn,aD as Dn,cv as X,bO as Ht,cw as Ln,cx as jn,t as Ve,am as ht,aq as de,cy as mt,c4 as Rn,R as be,L as ce,x as D,J as Hn,b_ as gt,cz as Vn,cA as Un,bZ as Wn,cB as Jn,cC as Kn,at as qn,au as Gn,ax as Vt,o as O,m as H,cD as Yn,cE as Zn,cF as Xn,cG as ei,cH as ti,a5 as ni,y as R,cI as Ce,C as Z,n as B,A as ue,cJ as yt,bG as ii,cK as ai,B as ri,N as fe,v as L,r as J,W as Ut,cL as li,c1 as si,M as Wt,cM as oi,cN as ci,p as ae,ae as ui,cO as di,cP as fi,X as vi}from"./index-7014c21f.js";import{t as Le,a as we,l as pe,b as pi,M as Jt,C as hi,m as Kt,g as mi,c as gi,d as yi,e as bi}from"./functionalCallableComp-c44a8b16.js";import{h as wi,r as Ai,a as ki,t as Si,i as Ci}from"./db-a31c442b.js";var qt=function(){return{arrow:{type:[Boolean,Object],default:void 0},trigger:{type:[Array,String]},overlay:Me.any,visible:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},align:{type:Object},getPopupContainer:Function,prefixCls:String,transitionName:String,placement:String,overlayClassName:String,overlayStyle:{type:Object,default:void 0},forceRender:{type:Boolean,default:void 0},mouseEnterDelay:Number,mouseLeaveDelay:Number,openClassName:String,minOverlayWidthMatchTrigger:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:void 0},onVisibleChange:{type:Function},"onUpdate:visible":{type:Function}}},je=dn(),Ii=function(){return ie(ie({},qt()),{},{type:je.type,size:String,htmlType:je.htmlType,href:String,disabled:{type:Boolean,default:void 0},prefixCls:String,icon:Me.any,title:String,loading:je.loading,onClick:{type:Function}})},Ei=["type","disabled","loading","htmlType","class","overlay","trigger","align","visible","onVisibleChange","placement","href","title","icon","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide","onClick","onUpdate:visible"],_i=ve.Group;const Fe=ge({compatConfig:{MODE:3},name:"ADropdownButton",inheritAttrs:!1,__ANT_BUTTON:!0,props:Bt(Ii(),{trigger:"hover",placement:"bottomRight",type:"default"}),slots:["icon","leftButton","rightButton","overlay"],setup:function(n,t){var i=t.slots,a=t.attrs,r=t.emit,v=function(k){r("update:visible",k),r("visibleChange",k)},c=Ne("dropdown-button",n),h=c.prefixCls,y=c.direction,d=c.getPopupContainer;return function(){var m,k,p=ie(ie({},n),a),l=p.type,s=l===void 0?"default":l,o=p.disabled,f=p.loading,w=p.htmlType,b=p.class,u=b===void 0?"":b,C=p.overlay,_=C===void 0?(m=i.overlay)===null||m===void 0?void 0:m.call(i):C,I=p.trigger,E=p.align,P=p.visible;p.onVisibleChange;var S=p.placement,$=S===void 0?y.value==="rtl"?"bottomLeft":"bottomRight":S,z=p.href,Q=p.title,G=p.icon,M=G===void 0?((k=i.icon)===null||k===void 0?void 0:k.call(i))||A(Ft,null,null):G,x=p.mouseEnterDelay,W=p.mouseLeaveDelay,g=p.overlayClassName,T=p.overlayStyle,F=p.destroyPopupOnHide,Y=p.onClick;p["onUpdate:visible"];var K=fn(p,Ei),ne={align:E,disabled:o,trigger:o?[]:I,placement:$,getPopupContainer:d.value,onVisibleChange:v,mouseEnterDelay:x,mouseLeaveDelay:W,visible:P,overlayClassName:g,overlayStyle:T,destroyPopupOnHide:F},q=A(ve,{type:s,disabled:o,loading:f,onClick:Y,htmlType:w,href:z,title:Q},{default:i.default}),oe=A(ve,{type:s,icon:M},null);return A(_i,ie(ie({},K),{},{class:ke(h.value,u)}),{default:function(){return[i.leftButton?i.leftButton({button:q}):q,A(he,ne,{default:function(){return[i.rightButton?i.rightButton({button:oe}):oe]},overlay:function(){return _}})]}})}}});var Gt=ge({compatConfig:{MODE:3},name:"ADropdown",inheritAttrs:!1,props:Bt(qt(),{mouseEnterDelay:.15,mouseLeaveDelay:.1,placement:"bottomLeft",trigger:"hover"}),slots:["overlay"],setup:function(n,t){var i=t.slots,a=t.attrs,r=t.emit,v=Ne("dropdown",n),c=v.prefixCls,h=v.rootPrefixCls,y=v.direction,d=v.getPopupContainer,m=U(function(){var s=n.placement,o=s===void 0?"":s,f=n.transitionName;return f!==void 0?f:o.indexOf("top")>=0?"".concat(h.value,"-slide-down"):"".concat(h.value,"-slide-up")}),k=function(){var o,f,w,b=n.overlay||((o=i.overlay)===null||o===void 0?void 0:o.call(i)),u=Array.isArray(b)?b[0]:b;if(!u)return null;var C=u.props||{};ct(!C.mode||C.mode==="vertical","Dropdown",'mode="'.concat(C.mode,`" is not supported for Dropdown's Menu.`));var _=C.selectable,I=_===void 0?!1:_,E=C.expandIcon,P=E===void 0?(f=u.children)===null||f===void 0||(w=f.expandIcon)===null||w===void 0?void 0:w.call(f):E,S=typeof P<"u"&&dt(P)?P:A("span",{class:"".concat(c.value,"-menu-submenu-arrow")},[A(yn,{class:"".concat(c.value,"-menu-submenu-arrow-icon")},null)]),$=dt(u)?ut(u,{mode:"vertical",selectable:I,expandIcon:function(){return S}}):u;return $},p=U(function(){var s=n.placement;if(!s)return y.value==="rtl"?"bottomRight":"bottomLeft";if(s.includes("Center")){var o=s.slice(0,s.indexOf("Center"));return ct(!s.includes("Center"),"Dropdown","You are using '".concat(s,"' placement in Dropdown, which is deprecated. Try to use '").concat(o,"' instead.")),o}return s}),l=function(o){r("update:visible",o),r("visibleChange",o)};return function(){var s,o,f=n.arrow,w=n.trigger,b=n.disabled,u=n.overlayClassName,C=(s=i.default)===null||s===void 0?void 0:s.call(i)[0],_=ut(C,vn({class:ke(C==null||(o=C.props)===null||o===void 0?void 0:o.class,re({},"".concat(c.value,"-rtl"),y.value==="rtl"),"".concat(c.value,"-trigger"))},b?{disabled:b}:{})),I=ke(u,re({},"".concat(c.value,"-rtl"),y.value==="rtl")),E=b?[]:w,P;E&&E.indexOf("contextmenu")!==-1&&(P=!0);var S=pn({arrowPointAtCenter:hn(f)==="object"&&f.pointAtCenter,autoAdjustOverflow:!0}),$=mn(ie(ie(ie({},n),a),{},{builtinPlacements:S,overlayClassName:I,arrow:f,alignPoint:P,prefixCls:c.value,getPopupContainer:d.value,transitionName:m.value,trigger:E,onVisibleChange:l,placement:p.value}),["overlay","onUpdate:visible"]);return A(gn,$,{default:function(){return[_]},overlay:k})}}});Gt.Button=Fe;const he=Gt;var Oi=function(){return{prefixCls:String,checked:{type:Boolean,default:void 0},onChange:{type:Function},onClick:{type:Function},"onUpdate:checked":Function}},Pi=ge({compatConfig:{MODE:3},name:"ACheckableTag",props:Oi(),setup:function(n,t){var i=t.slots,a=t.emit,r=Ne("tag",n),v=r.prefixCls,c=function(d){var m=n.checked;a("update:checked",!m),a("change",!m),a("click",d)},h=U(function(){var y;return ke(v.value,(y={},re(y,"".concat(v.value,"-checkable"),!0),re(y,"".concat(v.value,"-checkable-checked"),n.checked),y))});return function(){var y;return A("span",{class:h.value,onClick:c},[(y=i.default)===null||y===void 0?void 0:y.call(i)])}}});const Ue=Pi;var xi=new RegExp("^(".concat(bn.join("|"),")(-inverse)?$")),Ti=new RegExp("^(".concat(wn.join("|"),")$")),Mi=function(){return{prefixCls:String,color:{type:String},closable:{type:Boolean,default:!1},closeIcon:Me.any,visible:{type:Boolean,default:void 0},onClose:{type:Function},"onUpdate:visible":Function,icon:Me.any}},Ae=ge({compatConfig:{MODE:3},name:"ATag",props:Mi(),slots:["closeIcon","icon"],setup:function(n,t){var i=t.slots,a=t.emit,r=t.attrs,v=Ne("tag",n),c=v.prefixCls,h=v.direction,y=V(!0);An(function(){n.visible!==void 0&&(y.value=n.visible)});var d=function(l){l.stopPropagation(),a("update:visible",!1),a("close",l),!l.defaultPrevented&&n.visible===void 0&&(y.value=!1)},m=U(function(){var p=n.color;return p?xi.test(p)||Ti.test(p):!1}),k=U(function(){var p;return ke(c.value,(p={},re(p,"".concat(c.value,"-").concat(n.color),m.value),re(p,"".concat(c.value,"-has-color"),n.color&&!m.value),re(p,"".concat(c.value,"-hidden"),!y.value),re(p,"".concat(c.value,"-rtl"),h.value==="rtl"),p))});return function(){var p,l,s,o=n.icon,f=o===void 0?(p=i.icon)===null||p===void 0?void 0:p.call(i):o,w=n.color,b=n.closeIcon,u=b===void 0?(l=i.closeIcon)===null||l===void 0?void 0:l.call(i):b,C=n.closable,_=C===void 0?!1:C,I=function(){return _?u?A("span",{class:"".concat(c.value,"-close-icon"),onClick:d},[u]):A(Sn,{class:"".concat(c.value,"-close-icon"),onClick:d},null):null},E={backgroundColor:w&&!m.value?w:void 0},P=f||null,S=(s=i.default)===null||s===void 0?void 0:s.call(i),$=P?A(ee,null,[P,A("span",null,[S])]):S,z="onClick"in r,Q=A("span",{class:k.value,style:E},[$,I()]);return z?A(kn,null,{default:function(){return[Q]}}):Q}}});Ae.CheckableTag=Ue;Ae.install=function(e){return e.component(Ae.name,Ae),e.component(Ue.name,Ue),e};const $i=Ae;he.Button=Fe;he.install=function(e){return e.component(he.name,he),e.component(Fe.name,Fe),e};var Bi={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z"}}]},name:"star",theme:"filled"};const Fi=Bi;function bt(e){for(var n=1;n{document.addEventListener(...e),Nt(()=>document.removeEventListener(...e))},Zi="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==",Ie=new WeakMap;function Xi(e,n){return{useHookShareState:i=>{const a=Pn();$e(a),Ie.has(a)||(Ie.set(a,Ze(e(a,i??(n==null?void 0:n())))),Nt(()=>{Ie.delete(a)}));const r=Ie.get(a);return $e(r),{state:r,toRefs(){return On(r)}}}}}var ea={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 ta=ea;function kt(e){for(var n=1;n
'};t.configure=function(l){var s,o;for(s in l)o=l[s],o!==void 0&&l.hasOwnProperty(s)&&(i[s]=o);return this},t.status=null,t.set=function(l){var s=t.isStarted();l=a(l,i.minimum,1),t.status=l===1?null:l;var o=t.render(!s),f=o.querySelector(i.barSelector),w=i.speed,b=i.easing;return o.offsetWidth,c(function(u){i.positionUsing===""&&(i.positionUsing=t.getPositioningCSS()),h(f,v(l,w,b)),l===1?(h(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout(function(){h(o,{transition:"all "+w+"ms linear",opacity:0}),setTimeout(function(){t.remove(),u()},w)},w)):setTimeout(u,w)}),this},t.isStarted=function(){return typeof t.status=="number"},t.start=function(){t.status||t.set(0);var l=function(){setTimeout(function(){t.status&&(t.trickle(),l())},i.trickleSpeed)};return i.trickle&&l(),this},t.done=function(l){return!l&&!t.status?this:t.inc(.3+.5*Math.random()).set(1)},t.inc=function(l){var s=t.status;return s?s>1?void 0:(typeof l!="number"&&(s>=0&&s<.2?l=.1:s>=.2&&s<.5?l=.04:s>=.5&&s<.8?l=.02:s>=.8&&s<.99?l=.005:l=0),s=a(s+l,0,.994),t.set(s)):t.start()},t.trickle=function(){return t.inc()},function(){var l=0,s=0;t.promise=function(o){return!o||o.state()==="resolved"?this:(s===0&&t.start(),l++,s++,o.always(function(){s--,s===0?(l=0,t.done()):t.set((l-s)/l)}),this)}}(),t.getElement=function(){var l=t.getParent();if(l){var s=Array.prototype.slice.call(l.querySelectorAll(".nprogress")).filter(function(o){return o.parentElement===l});if(s.length>0)return s[0]}return null},t.getParent=function(){if(i.parent instanceof HTMLElement)return i.parent;if(typeof i.parent=="string")return document.querySelector(i.parent)},t.render=function(l){if(t.isRendered())return t.getElement();d(document.documentElement,"nprogress-busy");var s=document.createElement("div");s.id="nprogress",s.className="nprogress",s.innerHTML=i.template;var o=s.querySelector(i.barSelector),f=l?"-100":r(t.status||0),w=t.getParent(),b;return h(o,{transition:"all 0 linear",transform:"translate3d("+f+"%,0,0)"}),i.showSpinner||(b=s.querySelector(i.spinnerSelector),b&&p(b)),w!=document.body&&d(w,"nprogress-custom-parent"),w.appendChild(s),s},t.remove=function(){t.status=null,m(document.documentElement,"nprogress-busy"),m(t.getParent(),"nprogress-custom-parent");var l=t.getElement();l&&p(l)},t.isRendered=function(){return!!t.getElement()},t.getPositioningCSS=function(){var l=document.body.style,s="WebkitTransform"in l?"Webkit":"MozTransform"in l?"Moz":"msTransform"in l?"ms":"OTransform"in l?"O":"";return s+"Perspective"in l?"translate3d":s+"Transform"in l?"translate":"margin"};function a(l,s,o){return lo?o:l}function r(l){return(-1+l)*100}function v(l,s,o){var f;return i.positionUsing==="translate3d"?f={transform:"translate3d("+r(l)+"%,0,0)"}:i.positionUsing==="translate"?f={transform:"translate("+r(l)+"%,0)"}:f={"margin-left":r(l)+"%"},f.transition="all "+s+"ms "+o,f}var c=function(){var l=[];function s(){var o=l.shift();o&&o(s)}return function(o){l.push(o),l.length==1&&s()}}(),h=function(){var l=["Webkit","O","Moz","ms"],s={};function o(u){return u.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(C,_){return _.toUpperCase()})}function f(u){var C=document.body.style;if(u in C)return u;for(var _=l.length,I=u.charAt(0).toUpperCase()+u.slice(1),E;_--;)if(E=l[_]+I,E in C)return E;return u}function w(u){return u=o(u),s[u]||(s[u]=f(u))}function b(u,C,_){C=w(C),u.style[C]=_}return function(u,C){var _=arguments,I,E;if(_.length==2)for(I in C)E=C[I],E!==void 0&&C.hasOwnProperty(I)&&b(u,I,E);else b(u,_[1],_[2])}}();function y(l,s){var o=typeof l=="string"?l:k(l);return o.indexOf(" "+s+" ")>=0}function d(l,s){var o=k(l),f=o+s;y(o,s)||(l.className=f.substring(1))}function m(l,s){var o=k(l),f;y(l,s)&&(f=o.replace(" "+s+" "," "),l.className=f.substring(1,f.length-1))}function k(l){return(" "+(l&&l.className||"")+" ").replace(/\s+/gi," ")}function p(l){l&&l.parentNode&&l.parentNode.removeChild(l)}return t})})(en);var ba=en.exports;const wa=Tn(ba);function Aa(){const e=[];for(let a=0;a<72;a++){const v=`hsl(${a*7.2}, 90%, 35%)`;e.push(v)}return e}const _t=Aa(),tn=zt("useTagStore",()=>{const e=Ze(new Map),n=async r=>{if(r=r.filter(v=>!e.has(v)),!!r.length)try{r.forEach(c=>e.set(c,[]));const v=await wi(r);for(const c in v)e.set(c,v[c])}catch{r.forEach(v=>e.delete(v))}},t=new Map;return{tagMap:e,getColor:r=>{let v=t.get(r);if(!v){const c=ft.hash.sha256.hash(r),h=parseInt(ft.codec.hex.fromBits(c),16)%_t.length;v=_t[h],t.set(r,v)}return v},fetchImageTags:n,refreshTags:async r=>{r.forEach(v=>e.delete(v)),await n(r)}}}),ka=zt("useBatchDownloadStore",()=>{const e=V([]);return{selectdFiles:e,addFiles:t=>{e.value=Mn([...e.value,...t])}}});class Ot{constructor(n,t=$n.CREATED_TIME_DESC){Qe(this,"root");Qe(this,"execQueue",[]);this.sortMethod=t,this.root={children:[],info:{name:n,size:"-",bytes:0,created_time:"",is_under_scanned_path:!0,date:"",type:"dir",fullpath:n}},this.fetchChildren(this.root)}reset(){return this.root.children=[],this.fetchChildren(this.root)}get images(){const n=t=>t.children.map(i=>{if(i.info.type==="dir")return n(i);if(Dt(i.info.name))return i.info}).filter(i=>i).flat(1);return n(this.root)}get isCompleted(){return this.execQueue.length===0}async fetchChildren(n){const{files:t}=await we(n.info.fullpath);return n.children=Qt(t,this.sortMethod).map(i=>({info:i,children:[]})),this.execQueue.shift(),this.execQueue.unshift(...n.children.filter(i=>i.info.type==="dir").map(i=>({fn:()=>this.fetchChildren(i),...i}))),n}async next(){const n=Wi(this.execQueue);if(!n)return null;const t=await n.fn();return this.execQueue=this.execQueue.slice(),this.root={...this.root},t}}function Re(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!Wn(e)}const Oe=new Map,N=Xe(),Sa=ka(),We=tn(),Pt=Bn(),Ee=new BroadcastChannel("iib-image-transfer-bus"),{eventEmitter:Pe,useEventListen:Je}=Lt(),{useHookShareState:le}=Xi((e,{images:n})=>{const t=V({tabIdx:-1,paneIdx:-1}),i=U(()=>pe(a.value)),a=V([]),r=U(()=>{var w;return a.value.map(b=>b.curr).slice((w=N.conf)!=null&&w.is_win?1:0)}),v=U(()=>jt(...r.value)),c=V(N.defaultSortingMethod),h=V(t.value.walkModePath?new Ot(t.value.walkModePath,c.value):void 0);me([()=>t.value.walkModePath,c],()=>{h.value=t.value.walkModePath?new Ot(t.value.walkModePath,c.value):void 0});const y=Ze(new Set);me(i,()=>y.clear());const d=U(()=>{var C;if(n.value)return n.value;if(h.value)return h.value.images.filter(_=>!y.has(_.fullpath));if(!i.value)return[];const w=((C=i.value)==null?void 0:C.files)??[],b=c.value;return Qt((_=>N.onlyFoldersAndImages?_.filter(I=>I.type==="dir"||Dt(I.name)):_)(w),b).filter(_=>!y.has(_.fullpath))}),m=V([]),k=V(-1),p=U(()=>h.value?!h.value.isCompleted:!1),l=V(!1),s=V(!1),o=()=>{var w,b,u;return(u=(b=(w=N.tabList)==null?void 0:w[t.value.tabIdx])==null?void 0:b.panes)==null?void 0:u[t.value.paneIdx]},f=Lt();return f.useEventListen("selectAll",()=>{console.log(`select all 0 -> ${d.value.length}`),m.value=Zt(0,d.value.length)}),{previewing:s,spinning:l,canLoadNext:p,multiSelectedIdxs:m,previewIdx:k,basePath:r,currLocation:v,currPage:i,stack:a,sortMethod:c,sortedFiles:d,scroller:V(),stackViewEl:V(),props:t,getPane:o,walker:h,deletedFiles:y,...f}},()=>({images:V()}));function dr(){const{previewIdx:e,eventEmitter:n,canLoadNext:t,previewing:i,sortedFiles:a,scroller:r,props:v}=le().toRefs(),{state:c}=le();let h=null;const y=(p,l)=>{var s;i.value=p,h!=null&&!p&&l&&((s=r.value)==null||s.scrollToItem(h),h=null)},d=()=>{v.value.walkModePath&&!k("next")&&t&&(te.info(j("loadingNextFolder")),n.value.emit("loadNextDir",!0))};Se("keydown",p=>{var l;if(i.value){let s=e.value;if(["ArrowDown","ArrowRight"].includes(p.key))for(s++;a.value[s]&&!X(a.value[s].name);)s++;else if(["ArrowUp","ArrowLeft"].includes(p.key))for(s--;a.value[s]&&!X(a.value[s].name);)s--;if(X((l=a.value[s])==null?void 0:l.name)??""){e.value=s;const o=r.value;o&&!(s>=o.$_startIndex&&s<=o.$_endIndex)&&(h=s)}d()}});const m=p=>{var s;let l=e.value;if(p==="next")for(l++;a.value[l]&&!X(a.value[l].name);)l++;else if(p==="prev")for(l--;a.value[l]&&!X(a.value[l].name);)l--;if(X((s=a.value[l])==null?void 0:s.name)??""){e.value=l;const o=r.value;o&&!(l>=o.$_startIndex&&l<=o.$_endIndex)&&(h=l)}d()},k=p=>{var s;let l=e.value;if(p==="next")for(l++;a.value[l]&&!X(a.value[l].name);)l++;else if(p==="prev")for(l--;a.value[l]&&!X(a.value[l].name);)l--;return X((s=a.value[l])==null?void 0:s.name)??""};return Je("removeFiles",async()=>{var p;i.value&&!c.sortedFiles[e.value]&&(te.info(j("manualExitFullScreen"),5),await et(500),(p=document.querySelector(".ant-image-preview-operations-operation .anticon-close"))==null||p.click(),e.value=-1)}),{previewIdx:e,onPreviewVisibleChange:y,previewing:i,previewImgMove:m,canPreview:k}}function fr(){const e=V(),{scroller:n,stackViewEl:t,stack:i,currPage:a,currLocation:r,useEventListen:v,eventEmitter:c,getPane:h,props:y,deletedFiles:d,walker:m,sortedFiles:k}=le().toRefs();me(()=>i.value.length,Be((g,T)=>{var F;g!==T&&((F=n.value)==null||F.scrollToItem(0))},300));const p=async g=>{var T;await w(g),y.value.walkModePath&&(await et(),await((T=m.value)==null?void 0:T.reset()),c.value.emit("loadNextDir"))};Fn(async()=>{var g;if(!i.value.length){const T=await we("/");i.value.push({files:T.files,curr:"/"})}e.value=new wa,e.value.configure({parent:t.value}),y.value.path&&y.value.path!=="/"?await p(y.value.walkModePath??y.value.path):(g=N.conf)!=null&&g.home&&w(N.conf.home)}),me(r,Be(g=>{const T=h.value();if(!T)return;T.path=g;const F=T.path.split("/").pop(),K=(()=>{var ne;if(!y.value.walkModePath){const q=_e(g);for(const[oe,ye]of Object.entries(N.pathAliasMap))if(q.startsWith(ye))return q.replace(ye,oe);return F}return"Walk: "+(((ne=N.quickMovePaths.find(q=>q.dir===T.walkModePath))==null?void 0:ne.zh)??F)})();T.name=De("div",{style:"display:flex;align-items:center"},[De(ia),De("span",{class:"line-clamp-1",style:"max-width: 256px"},K)]),T.nameFallbackStr=K,N.recent=N.recent.filter(ne=>ne.key!==T.key),N.recent.unshift({path:g,key:T.key}),N.recent.length>20&&(N.recent=N.recent.slice(0,20))},300));const l=()=>Ve(r.value),s=async g=>{var T,F;if(g.type==="dir")try{(T=e.value)==null||T.start();const{files:Y}=await we(g.fullpath);i.value.push({files:Y,curr:g.name})}finally{(F=e.value)==null||F.done()}},o=g=>{for(;g($e(N.conf,"global.conf load failed"),N.conf.is_win?g.toLowerCase()==T.toLowerCase():g==T),w=async g=>{var F,Y;const T=i.value.slice();try{Nn(g)||(g=jt(((F=N.conf)==null?void 0:F.sd_cwd)??"/",g));const K=vt(g),ne=i.value.map(q=>q.curr);for(ne.shift();ne[0]&&K[0]&&f(ne[0],K[0]);)ne.shift(),K.shift();for(let q=0;qf(ye.name,q));if(!oe)throw console.error({frags:K,frag:q,stack:Rt(i.value)}),new Error(`${q} not found`);await s(oe)}}catch(K){throw te.error(j("moveFailedCheckPath")+(K instanceof Error?K.message:"")),console.error(g,vt(g),a.value),i.value=T,K}},b=pt(async()=>{var g,T,F;try{if((g=e.value)==null||g.start(),m.value)await m.value.reset(),c.value.emit("loadNextDir");else{const{files:Y}=await we(i.value.length===1?"/":r.value);pe(i.value).files=Y}d.value.clear(),(T=n.value)==null||T.scrollToItem(0),te.success(j("refreshCompleted"))}finally{(F=e.value)==null||F.done()}});zn("returnToIIB",pt(async()=>{var g,T;if(!y.value.walkModePath)try{(g=e.value)==null||g.start();const{files:F}=await we(i.value.length===1?"/":r.value);pe(i.value).files.map(K=>K.date).join()!==F.map(K=>K.date).join()&&(pe(i.value).files=F,te.success(j("autoUpdate")))}finally{(T=e.value)==null||T.done()}})),v.value("refresh",b);const u=g=>{y.value.walkModePath&&(h.value().walkModePath=g),p(g)},C=U(()=>N.quickMovePaths.map(g=>({...g,path:_e(g.dir)}))),_=U(()=>{const g=_e(r.value);return C.value.find(F=>F.path===g)}),I=async()=>{const g=_.value;if(g){if(!g.can_delete)return;await Ai({path:r.value,type:"scanned"}),te.success(j("removeCompleted"))}else await ki({path:r.value,type:"scanned"}),te.success(j("addCompleted"));ht.emit("searchIndexExpired"),ht.emit("updateGlobalSetting")},E=V(!1),P=V(r.value),S=()=>{E.value=!0,P.value=r.value},$=async()=>{await w(P.value),E.value=!1};Se("click",g=>{var T,F,Y;(Y=(F=(T=g.target)==null?void 0:T.className)==null?void 0:F.includes)!=null&&Y.call(F,"ant-input")||(E.value=!1)});const z=()=>{const g=parent.location,T=g.href.substring(0,g.href.length-g.search.length),F=new URLSearchParams(g.search);F.set("action","open"),m.value&&F.set("walk","1"),F.set("path",r.value);const Y=`${T}?${F.toString()}`;Ve(Y,j("copyLocationUrlSuccessMsg"))},Q=(g="tag-search")=>{const T=N.tabList[y.value.tabIdx],F={type:g,key:de(),searchScope:r.value,name:j(g==="tag-search"?"imgSearch":"fuzzy-search")};T.panes.push(F),T.key=F.key},G=()=>c.value.emit("selectAll"),M=async()=>{await pi(r.value),await b()},x=()=>{const g=r.value;Oe.set(g,i.value);const T=N.tabList[y.value.tabIdx],F={type:"local",key:de(),path:g,name:j("local"),stackKey:g,walkModePath:g};T.panes.push(F),T.key=F.key},W=U(()=>!m.value&&k.value.some(g=>g.type==="dir"));return{locInputValue:P,isLocationEditing:E,onLocEditEnter:$,onEditBtnClick:S,addToSearchScanPathAndQuickMove:I,searchPathInfo:_,refresh:b,copyLocation:l,back:o,openNext:s,currPage:a,currLocation:r,to:w,stack:i,scroller:n,share:z,selectAll:G,quickMoveTo:u,onCreateFloderBtnClick:M,onWalkBtnClick:x,showWalkButton:W,searchInCurrentDir:Q}}function vr({fetchNext:e}={}){const{scroller:n,sortedFiles:t,sortMethod:i,currLocation:a,stackViewEl:r,canLoadNext:v,previewIdx:c,props:h,walker:y}=le().toRefs(),{state:d}=le(),m=V(!1),k=V(N.defaultGridCellWidth),p=U(()=>k.value+16),l=44,{width:s}=Qn(r),o=U(()=>~~(s.value/p.value)),f=U(()=>{const I=p.value;return{first:I+(k.value<=160?0:l),second:I}}),w=V(!1),b=async()=>{var I;if(!(w.value||!h.value.walkModePath||!v.value))try{w.value=!0,await((I=y.value)==null?void 0:I.next())}finally{w.value=!1}},u=async(I=!1)=>{const E=n.value,P=()=>I?c.value:(E==null?void 0:E.$_endIndex)??0,S=()=>{const $=t.value.length,z=50;return $?e?P()>$-z:P()>$-z&&v.value:!0};for(;S();){await et(30);const $=await(e??b)();if(typeof $=="boolean"&&!$)return}};d.useEventListen("loadNextDir",u);const C=()=>{const I=n.value;if(I){const E=t.value.slice(Math.max(I.$_startIndex-10,0),I.$_endIndex+10).filter(P=>P.is_under_scanned_path&&X(P.name)).map(P=>P.fullpath);We.fetchImageTags(E)}};me(a,Be(C,150));const _=Be(async()=>{await u(),C()},150);return{gridItems:o,sortedFiles:t,sortMethodConv:Dn,moreActionsDropdownShow:m,gridSize:p,sortMethod:i,onScroll:_,loadNextDir:b,loadNextDirLoading:w,canLoadNext:v,itemSize:f,cellWidth:k}}function pr(){const{currLocation:e,sortedFiles:n,currPage:t,multiSelectedIdxs:i,eventEmitter:a,walker:r}=le().toRefs(),v=()=>{i.value=[]};return Se("click",v),Se("blur",v),me(t,v),{onFileDragStart:(d,m)=>{const k=Rt(n.value[m]);Pt.fileDragging=!0,console.log("onFileDragStart set drag file ",d,m,k);const p=[k];let l=k.type==="dir";if(i.value.includes(m)){const o=i.value.map(f=>n.value[f]);p.push(...o),l=o.some(f=>f.type==="dir")}const s={includeDir:l,loc:e.value||"search-result",path:mt(p,"fullpath").map(o=>o.fullpath),nodes:mt(p,"fullpath"),__id:"FileTransferData"};d.dataTransfer.setData("text/plain",JSON.stringify(s))},onDrop:async d=>{if(r.value)return;const m=Rn(d);if(!m)return;const k=e.value;if(m.loc===k)return;const p=Ht(),l=async()=>p.pushAction(async()=>{await gi(m.path,k),a.value.emit("refresh"),be.destroyAll()}),s=()=>p.pushAction(async()=>{await Kt(m.path,k),Pe.emit("removeFiles",{paths:m.path,loc:m.loc}),a.value.emit("refresh"),be.destroyAll()});be.confirm({title:j("confirm")+"?",width:"60vw",content:()=>{let o,f,w;return A("div",null,[A("div",null,[`${j("moveSelectedFilesTo")} ${k}`,A("ol",{style:{maxHeight:"50vh",overflow:"auto"}},[m.path.map(b=>A("li",null,[b.split(/[/\\]/).pop()]))])]),A(Jt,null,null),A("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end"},class:"actions"},[A(ve,{onClick:be.destroyAll},Re(o=j("cancel"))?o:{default:()=>[o]}),A(ve,{type:"primary",loading:!p.isIdle,onClick:l},Re(f=j("copy"))?f:{default:()=>[f]}),A(ve,{type:"primary",loading:!p.isIdle,onClick:s},Re(w=j("move"))?w:{default:()=>[w]})])])},maskClosable:!0,wrapClassName:"hidden-antd-btns-modal"})},multiSelectedIdxs:i,onFileDragEnd:()=>{Pt.fileDragging=!1}}}function hr({openNext:e}){const n=V(!1),t=V(""),{sortedFiles:i,previewIdx:a,multiSelectedIdxs:r,stack:v,currLocation:c,spinning:h,previewing:y,stackViewEl:d,eventEmitter:m,props:k,deletedFiles:p}=le().toRefs(),l=_e;Je("removeFiles",({paths:b,loc:u})=>{l(u)!==l(c.value)||!pe(v.value)||(b.forEach(_=>p.value.add(_)),b.filter(X).forEach(_=>p.value.add(_.replace(/\.\w+$/,".txt"))))}),Je("addFiles",({files:b,loc:u})=>{if(l(u)!==l(c.value))return;const C=pe(v.value);C&&C.files.unshift(...b)});const s=Ht(),o=async(b,u,C)=>{a.value=C,N.fullscreenPreviewInitialUrl=ce(u);const _=r.value.indexOf(C);if(b.shiftKey){if(_!==-1)r.value.splice(_,1);else{r.value.push(C),r.value.sort((P,S)=>P-S);const I=r.value[0],E=r.value[r.value.length-1];r.value=Zt(I,E+1)}b.stopPropagation()}else b.ctrlKey||b.metaKey?(_!==-1?r.value.splice(_,1):r.value.push(C),b.stopPropagation()):await e(u)},f=async(b,u,C)=>{var z,Q,G;const _=ce(u),I=c.value,E={IIB_container_id:parent.IIB_container_id},P=()=>{let M=[];return r.value.includes(C)?M=r.value.map(x=>i.value[x]):M.push(u),M},S=async M=>{if(!h.value)try{h.value=!0,await Jn(u.fullpath),Ee.postMessage({...E,event:"click_hidden_button",btnEleId:"iib_hidden_img_update_trigger"}),await Kn(),Ee.postMessage({...E,event:"click_hidden_button",btnEleId:`iib_hidden_tab_${M}`})}catch(x){console.error(x),te.error("发送图像失败,请携带console的错误消息找开发者")}finally{h.value=!1}},$=`${b.key}`;if($.startsWith("toggle-tag-")){const M=+$.split("toggle-tag-")[1],{is_remove:x}=await Si({tag_id:M,img_path:u.fullpath}),W=(Q=(z=N.conf)==null?void 0:z.all_custom_tags.find(g=>g.id===M))==null?void 0:Q.name;await We.refreshTags([u.fullpath]),te.success(j(x?"removedTagFromImage":"addedTagToImage",{tag:W}));return}else if($.startsWith("batch-add-tag-")||$.startsWith("batch-remove-tag-")){const M=+$.split("-tag-")[1],x=$.includes("add")?"add":"remove",W=P().map(g=>g.fullpath);await Ci({tag_id:M,img_paths:W,action:x}),await We.refreshTags(W),te.success(j(x==="add"?"addCompleted":"removeCompleted"));return}switch(b.key){case"previewInNewWindow":return window.open(_);case"download":{const M=P();Un(M.map(x=>ce(x,!0)));break}case"copyPreviewUrl":return Ve(parent.document.location.origin+_);case"send2txt2img":return S("txt2img");case"send2img2img":return S("img2img");case"send2inpaint":return S("inpaint");case"send2extras":return S("extras");case"send2savedDir":{const M=N.quickMovePaths.find(g=>g.key==="outdir_save");if(!M)return te.error(j("unknownSavedDir"));const x=Vn(M.dir,(G=N.conf)==null?void 0:G.sd_cwd),W=P();await Kt(W.map(g=>g.fullpath),x,!0),Pe.emit("removeFiles",{paths:W.map(g=>g.fullpath),loc:c.value}),Pe.emit("addFiles",{files:W,loc:x});break}case"send2controlnet-img2img":case"send2controlnet-txt2img":{const M=b.key.split("-")[1];Ee.postMessage({...E,event:"send_to_control_net",type:M,url:ce(u)});break}case"send2outpaint":{t.value=await s.pushAction(()=>gt(u.fullpath)).res;const[M,x]=(t.value||"").split(`
+`);Ee.postMessage({...E,event:"send_to_outpaint",url:ce(u),prompt:M,negPrompt:x.slice(17)});break}case"openWithWalkMode":{Oe.set(I,v.value);const M=N.tabList[k.value.tabIdx],x={type:"local",key:de(),path:u.fullpath,name:j("local"),stackKey:I,walkModePath:u.fullpath};M.panes.push(x),M.key=x.key;break}case"openInNewTab":{Oe.set(I,v.value);const M=N.tabList[k.value.tabIdx],x={type:"local",key:de(),path:u.fullpath,name:j("local"),stackKey:I};M.panes.push(x),M.key=x.key;break}case"openOnTheRight":{Oe.set(I,v.value);let M=N.tabList[k.value.tabIdx+1];M||(M={panes:[],key:"",id:de()},N.tabList[k.value.tabIdx+1]=M);const x={type:"local",key:de(),path:u.fullpath,name:j("local"),stackKey:I};M.panes.push(x),M.key=x.key;break}case"send2BatchDownload":{Sa.addFiles(P());break}case"viewGenInfo":{n.value=!0,t.value=await s.pushAction(()=>gt(u.fullpath)).res;break}case"openWithLocalFileBrowser":{await Hn(u.fullpath);break}case"deleteFiles":{const M=P(),x=async()=>{const W=M.map(g=>g.fullpath);await yi(W),te.success(j("deleteSuccess")),Pe.emit("removeFiles",{paths:W,loc:c.value})};if(M.length===1&&N.ignoredConfirmActions.deleteOneOnly)return x();await new Promise(W=>{be.confirm({title:j("confirmDelete"),maskClosable:!0,width:"60vw",content:()=>A("div",null,[A("ol",{style:{maxHeight:"50vh",overflow:"auto"}},[M.map(g=>A("li",null,[g.fullpath.split(/[/\\]/).pop()]))]),A(Jt,null,null),A(hi,{checked:N.ignoredConfirmActions.deleteOneOnly,"onUpdate:checked":g=>N.ignoredConfirmActions.deleteOneOnly=g},{default:()=>[j("deleteOneOnlySkipConfirm"),D(" ("),j("resetOnGlobalSettingsPage"),D(")")]})]),async onOk(){await x(),W()}})});break}}return{}},{isOutside:w}=Ln(d);return Se("keydown",b=>{var C,_,I;const u=mi(b);if(y.value){const E=(C=Object.entries(N.shortcut).find(P=>P[1]===u&&P[1]))==null?void 0:C[0];if(E){b.stopPropagation(),b.preventDefault();const P=a.value,S=i.value[P];switch(E){case"delete":return ce(S)===N.fullscreenPreviewInitialUrl?te.warn(j("fullscreenRestriction")):f({key:"deleteFiles"},S,P);case"download":return f({key:"download"},S,P);default:{const $=(_=/^toggle_tag_(.*)$/.exec(E))==null?void 0:_[1],z=(I=N.conf)==null?void 0:I.all_custom_tags.find(Q=>Q.name===$);return z?f({key:`toggle-tag-${z.id}`},S,P):void 0}}}}else!w.value&&["Ctrl + KeyA","Cmd + KeyA"].includes(u)&&(b.preventDefault(),b.stopPropagation(),m.value.emit("selectAll"))}),{onFileItemClick:o,onContextMenuClick:f,showGenInfo:n,imageGenInfo:t,q:s}}const mr=()=>{const{stackViewEl:e}=le().toRefs(),n=V(-1);return jn(e,t=>{var a;let i=t.target;for(;i.parentElement;)if(i=i.parentElement,i.tagName.toLowerCase()==="li"&&i.classList.contains("file-item-trigger")){const r=(a=i.dataset)==null?void 0:a.idx;r&&Number.isSafeInteger(+r)&&(n.value=+r);return}}),{showMenuIdx:n}};function Ca(){var e=window.navigator.userAgent,n=e.indexOf("MSIE ");if(n>0)return parseInt(e.substring(n+5,e.indexOf(".",n)),10);var t=e.indexOf("Trident/");if(t>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}let xe;function Ke(){Ke.init||(Ke.init=!0,xe=Ca()!==-1)}var ze={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){Ke(),Vt(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",xe&&this.$el.appendChild(e),e.data="about:blank",xe||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!xe&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const Ia=Yn();qn("data-v-b329ee4c");const Ea={class:"resize-observer",tabindex:"-1"};Gn();const _a=Ia((e,n,t,i,a,r)=>(O(),H("div",Ea)));ze.render=_a;ze.__scopeId="data-v-b329ee4c";ze.__file="src/components/ResizeObserver.vue";function Te(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Te=function(n){return typeof n}:Te=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Te(e)}function Oa(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function xt(e,n){for(var t=0;te.length)&&(n=e.length);for(var t=0,i=new Array(n);t2&&arguments[2]!==void 0?arguments[2]:{},i,a,r,v=function(h){for(var y=arguments.length,d=new Array(y>1?y-1:0),m=1;m1){var y=c.find(function(m){return m.isIntersecting});y&&(h=y)}if(a.callback){var d=h.isIntersecting&&h.intersectionRatio>=a.threshold;if(d===a.oldResult)return;a.oldResult=d,a.callback(d,h)}},this.options.intersection),Vt(function(){a.observer&&a.observer.observe(a.el)})}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&typeof this.options.intersection.threshold=="number"?this.options.intersection.threshold:0}}]),e}();function an(e,n,t){var i=n.value;if(i)if(typeof IntersectionObserver>"u")console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var a=new Na(e,i,t);e._vue_visibilityState=a}}function za(e,n,t){var i=n.value,a=n.oldValue;if(!nn(i,a)){var r=e._vue_visibilityState;if(!i){rn(e);return}r?r.createObserver(i,t):an(e,{value:i},t)}}function rn(e){var n=e._vue_visibilityState;n&&(n.destroyObserver(),delete e._vue_visibilityState)}var Qa={beforeMount:an,updated:za,unmounted:rn},Da={itemsLimit:1e3},La=/(auto|scroll)/;function ln(e,n){return e.parentNode===null?n:ln(e.parentNode,n.concat([e]))}var He=function(n,t){return getComputedStyle(n,null).getPropertyValue(t)},ja=function(n){return He(n,"overflow")+He(n,"overflow-y")+He(n,"overflow-x")},Ra=function(n){return La.test(ja(n))};function Mt(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var n=ln(e.parentNode,[]),t=0;t{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0})},activated(){const e=this.$_lastUpdateScrollPosition;typeof e=="number"&&this.$nextTick(()=>{this.scrollToPosition(e)})},beforeUnmount(){this.removeListeners()},methods:{addView(e,n,t,i,a){const r=Zn({id:Wa++,index:n,used:!0,key:i,type:a}),v=Xn({item:t,position:0,nr:r});return e.push(v),v},unuseView(e,n=!1){const t=this.$_unusedViews,i=e.nr.type;let a=t.get(i);a||(a=[],t.set(i,a)),a.push(e),n||(e.nr.used=!1,e.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(e){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const n=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;const{continuous:t}=this.updateVisibleItems(!1,!0);t||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))});n(),this.updateInterval&&(this.$_updateTimeout=setTimeout(()=>{this.$_updateTimeout=0,this.$_scrollDirty&&n()},this.updateInterval))}},handleVisibilityChange(e,n){this.ready&&(e||n.boundingClientRect.width!==0||n.boundingClientRect.height!==0?(this.$emit("visible"),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit("hidden"))},updateVisibleItems(e,n=!1){const t=this.itemSize,i=this.gridItems||1,a=this.itemSecondarySize||t,r=this.$_computedMinItemSize,v=this.typeField,c=this.simpleArray?null:this.keyField,h=this.items,y=h.length,d=this.sizes,m=this.$_views,k=this.$_unusedViews,p=this.pool,l=this.itemIndexByKey;let s,o,f,w,b;if(!y)s=o=w=b=f=0;else if(this.$_prerender)s=w=0,o=b=Math.min(this.prerender,h.length),f=null;else{const S=this.getScroll();if(n){let Q=S.start-this.$_lastUpdateScrollPosition;if(Q<0&&(Q=-Q),t===null&&QS.start&&(M=x),x=~~((G+M)/2);while(x!==W);for(x<0&&(x=0),s=x,f=d[y-1].accumulator,o=x;oy&&(o=y)),w=s;wy&&(o=y),w<0&&(w=0),b>y&&(b=y),f=Math.ceil(y/i)*t}}o-s>Da.itemsLimit&&this.itemsLimitError(),this.totalSize=f;let u;const C=s<=this.$_endIndex&&o>=this.$_startIndex;if(C)for(let S=0,$=p.length;S<$;S++)u=p[S],u.nr.used&&(e&&(u.nr.index=l[u.item[c]]),(u.nr.index==null||u.nr.index=o)&&this.unuseView(u));const _=C?null:new Map;let I,E,P;for(let S=s;S=z.length)&&(u=this.addView(p,S,I,$,E),this.unuseView(u,!0),z=k.get(E)),u=z[P],_.set(E,P+1)),m.delete(u.nr.key),u.nr.used=!0,u.nr.index=S,u.nr.key=$,u.nr.type=E,m.set($,u),Q=!0;else if(!u.nr.used&&(u.nr.used=!0,u.nr.index=S,Q=!0,z)){const G=z.indexOf(u);G!==-1&&z.splice(G,1)}u.item=I,Q&&(S===h.length-1&&this.$emit("scroll-end"),S===0&&this.$emit("scroll-start")),t===null?(u.position=d[S-1].accumulator,u.offset=0):(u.position=Math.floor(S/i)*t,u.offset=S%i*a)}return this.$_startIndex=s,this.$_endIndex=o,this.emitUpdate&&this.$emit("update",s,o,w,b),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:C}},getListenerTarget(){let e=Mt(this.$el);return window.document&&(e===window.document.documentElement||e===window.document.body)&&(e=window),e},getScroll(){const{$el:e,direction:n}=this,t=n==="vertical";let i;if(this.pageMode){const a=e.getBoundingClientRect(),r=t?a.height:a.width;let v=-(t?a.top:a.left),c=t?window.innerHeight:window.innerWidth;v<0&&(c+=v,v=0),v+c>r&&(c=r-v),i={start:v,end:v+c}}else t?i={start:e.scrollTop,end:e.scrollTop+e.clientHeight}:i={start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return i},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,Ye?{passive:!0}:!1),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(e){let n;const t=this.gridItems||1;this.itemSize===null?n=e>0?this.sizes[e-1].accumulator:0:n=Math.floor(e/t)*this.itemSize,this.scrollToPosition(n)},scrollToPosition(e){const n=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let t,i,a;if(this.pageMode){const r=Mt(this.$el),v=r.tagName==="HTML"?0:r[n.scroll],c=r.getBoundingClientRect(),y=this.$el.getBoundingClientRect()[n.start]-c[n.start];t=r,i=n.scroll,a=e+v+y}else t=this.$el,i=n.scroll,a=e;t[i]=a},itemsLimitError(){throw setTimeout(()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")}),new Error("Rendered items limit reached")},sortViews(){this.pool.sort((e,n)=>e.nr.index-n.nr.index)}}};const Ja={key:0,ref:"before",class:"vue-recycle-scroller__slot"},Ka={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function qa(e,n,t,i,a,r){const v=ei("ResizeObserver"),c=ti("observe-visibility");return ni((O(),R("div",{class:fe(["vue-recycle-scroller",{ready:a.ready,"page-mode":t.pageMode,[`direction-${e.direction}`]:!0}]),onScrollPassive:n[0]||(n[0]=(...h)=>r.handleScroll&&r.handleScroll(...h))},[e.$slots.before?(O(),R("div",Ja,[Ce(e.$slots,"before")],512)):Z("v-if",!0),(O(),H(yt(t.listTag),{ref:"wrapper",style:ri({[e.direction==="vertical"?"minHeight":"minWidth"]:a.totalSize+"px"}),class:fe(["vue-recycle-scroller__item-wrapper",t.listClass])},{default:B(()=>[(O(!0),R(ee,null,ue(a.pool,h=>(O(),H(yt(t.itemTag),ii({key:h.nr.id,style:a.ready?{transform:`translate${e.direction==="vertical"?"Y":"X"}(${h.position}px) translate${e.direction==="vertical"?"X":"Y"}(${h.offset}px)`,width:t.gridItems?`${e.direction==="vertical"&&t.itemSecondarySize||t.itemSize}px`:void 0,height:t.gridItems?`${e.direction==="horizontal"&&t.itemSecondarySize||t.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[t.itemClass,{hover:!t.skipHover&&a.hoverKey===h.nr.key}]]},ai(t.skipHover?{}:{mouseenter:()=>{a.hoverKey=h.nr.key},mouseleave:()=>{a.hoverKey=null}})),{default:B(()=>[Ce(e.$slots,"default",{item:h.item,index:h.nr.index,active:h.nr.used})]),_:2},1040,["style","class"]))),128)),Ce(e.$slots,"empty")]),_:3},8,["style","class"])),e.$slots.after?(O(),R("div",Ka,[Ce(e.$slots,"after")],512)):Z("v-if",!0),A(v,{onNotify:r.handleResize},null,8,["onNotify"])],34)),[[c,r.handleVisibilityChange]])}sn.render=qa;sn.__file="src/components/RecycleScroller.vue";const $t=ge({__name:"ContextMenu",props:{file:{},idx:{},selectedTag:{},disableDelete:{type:Boolean},isSelectedMutilFiles:{type:Boolean}},emits:["contextMenuClick"],setup(e,{emit:n}){const t=e,i=Xe(),a=U(()=>{var r;return(((r=i.conf)==null?void 0:r.all_custom_tags)??[]).reduce((v,c)=>[...v,{...c,selected:!!t.selectedTag.find(h=>h.id===c.id)}],[])});return(r,v)=>{const c=Ut,h=li,y=si,d=Wt;return O(),H(d,{onClick:v[0]||(v[0]=m=>n("contextMenuClick",m,r.file,r.idx))},{default:B(()=>{var m;return[A(c,{key:"deleteFiles",disabled:r.disableDelete},{default:B(()=>[D(L(r.$t("deleteSelected")),1)]),_:1},8,["disabled"]),r.file.type==="dir"?(O(),R(ee,{key:0},[A(c,{key:"openInNewTab"},{default:B(()=>[D(L(r.$t("openInNewTab")),1)]),_:1}),A(c,{key:"openOnTheRight"},{default:B(()=>[D(L(r.$t("openOnTheRight")),1)]),_:1}),A(c,{key:"openWithWalkMode"},{default:B(()=>[D(L(r.$t("openWithWalkMode")),1)]),_:1})],64)):Z("",!0),r.file.type==="file"?(O(),R(ee,{key:1},[J(X)(r.file.name)?(O(),R(ee,{key:0},[A(c,{key:"viewGenInfo"},{default:B(()=>[D(L(r.$t("viewGenerationInfo")),1)]),_:1}),A(h),((m=J(i).conf)==null?void 0:m.launch_mode)!=="server"?(O(),R(ee,{key:0},[A(c,{key:"send2txt2img"},{default:B(()=>[D(L(r.$t("sendToTxt2img")),1)]),_:1}),A(c,{key:"send2img2img"},{default:B(()=>[D(L(r.$t("sendToImg2img")),1)]),_:1}),A(c,{key:"send2inpaint"},{default:B(()=>[D(L(r.$t("sendToInpaint")),1)]),_:1}),A(c,{key:"send2extras"},{default:B(()=>[D(L(r.$t("sendToExtraFeatures")),1)]),_:1}),A(y,{key:"sendToThirdPartyExtension",title:r.$t("sendToThirdPartyExtension")},{default:B(()=>[A(c,{key:"send2controlnet-txt2img"},{default:B(()=>[D("ControlNet - "+L(r.$t("t2i")),1)]),_:1}),A(c,{key:"send2controlnet-img2img"},{default:B(()=>[D("ControlNet - "+L(r.$t("i2i")),1)]),_:1}),A(c,{key:"send2outpaint"},{default:B(()=>[D("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):Z("",!0),A(c,{key:"send2BatchDownload"},{default:B(()=>[D(L(r.$t("sendToBatchDownload")),1)]),_:1}),A(c,{key:"send2savedDir"},{default:B(()=>[D(L(r.$t("send2savedDir")),1)]),_:1}),A(h),r.isSelectedMutilFiles?(O(),R(ee,{key:1},[A(y,{key:"batch-add-tag",title:r.$t("batchAddTag")},{default:B(()=>[(O(!0),R(ee,null,ue(a.value,k=>(O(),H(c,{key:`batch-add-tag-${k.id}`},{default:B(()=>[D(L(k.name),1)]),_:2},1024))),128))]),_:1},8,["title"]),A(y,{key:"batch-remove-tag",title:r.$t("batchRemoveTag")},{default:B(()=>[(O(!0),R(ee,null,ue(a.value,k=>(O(),H(c,{key:`batch-remove-tag-${k.id}`},{default:B(()=>[D(L(k.name),1)]),_:2},1024))),128))]),_:1},8,["title"])],64)):(O(),H(y,{key:"toggle-tag",title:r.$t("toggleTag")},{default:B(()=>[(O(!0),R(ee,null,ue(a.value,k=>(O(),H(c,{key:`toggle-tag-${k.id}`},{default:B(()=>[D(L(k.name)+" ",1),k.selected?(O(),H(J(Yt),{key:0})):(O(),H(J(Xt),{key:1}))]),_:2},1024))),128))]),_:1},8,["title"])),A(c,{key:"openWithLocalFileBrowser"},{default:B(()=>[D(L(r.$t("openWithLocalFileBrowser")),1)]),_:1})],64)):Z("",!0),A(c,{key:"previewInNewWindow"},{default:B(()=>[D(L(r.$t("previewInNewWindow")),1)]),_:1}),A(c,{key:"download"},{default:B(()=>[D(L(r.$t("download")),1)]),_:1}),A(c,{key:"copyPreviewUrl"},{default:B(()=>[D(L(r.$t("copySourceFilePreviewLink")),1)]),_:1})],64)):Z("",!0)]}),_:1})}}}),Ga=["data-idx"],Ya={key:1,class:"more"},Za={class:"float-btn-wrap"},Xa={key:0,class:"tags-container"},er={class:"play-icon"},tr={key:0,class:"tags-container"},nr={key:4,class:"preview-icon-wrap"},ir={key:5,class:"profile"},ar={class:"name line-clamp-1"},rr={class:"basic-info"},lr=ge({__name:"FileItem",props:{file:{},idx:{},selected:{type:Boolean,default:!1},showMenuIdx:{},cellWidth:{},fullScreenPreviewImageUrl:{},enableRightClickMenu:{type:Boolean,default:!0},enableCloseIcon:{type:Boolean,default:!1},isSelectedMutilFiles:{type:Boolean}},emits:["update:showMenuIdx","fileItemClick","dragstart","dragend","previewVisibleChange","contextMenuClick","close-icon-click"],setup(e,{emit:n}){const t=e;oi(d=>({"6b5a16d0":d.$props.cellWidth+"px"}));const i=Xe(),a=tn(),r=U(()=>a.tagMap.get(t.file.fullpath)??[]),v=U(()=>{const d=i.gridThumbnailResolution;return i.enableThumbnail?ci(t.file,[d,d].join("x")):ce(t.file)}),c=U(()=>{var d;return(((d=i.conf)==null?void 0:d.all_custom_tags)??[]).reduce((m,k)=>[...m,{...k,selected:!!r.value.find(p=>p.id===k.id)}],[])}),h=U(()=>c.value.find(d=>d.type==="custom"&&d.name==="like")),y=()=>{$e(h.value),n("contextMenuClick",{key:`toggle-tag-${h.value.id}`},t.file,t.idx)};return(d,m)=>{const k=he,p=Ut,l=Wt,s=fi,o=$i;return O(),H(k,{trigger:["contextmenu"],visible:J(i).longPressOpenContextMenu?typeof d.idx=="number"&&d.showMenuIdx===d.idx:void 0,"onUpdate:visible":m[8]||(m[8]=f=>typeof d.idx=="number"&&n("update:showMenuIdx",f?d.idx:-1))},{overlay:B(()=>[d.enableRightClickMenu?(O(),H($t,{key:0,file:d.file,idx:d.idx,"selected-tag":r.value,onContextMenuClick:m[7]||(m[7]=(f,w,b)=>n("contextMenuClick",f,w,b)),"is-selected-mutil-files":d.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])):Z("",!0)]),default:B(()=>[(O(),R("li",{class:fe(["file file-item-trigger grid",{clickable:d.file.type==="dir",selected:d.selected}]),"data-idx":d.idx,key:d.file.name,draggable:"true",onDragstart:m[4]||(m[4]=f=>n("dragstart",f,d.idx)),onDragend:m[5]||(m[5]=f=>n("dragend",f,d.idx)),onClickCapture:m[6]||(m[6]=f=>n("fileItemClick",f,d.file,d.idx))},[ae("div",null,[d.enableCloseIcon?(O(),R("div",{key:0,class:"close-icon",onClick:m[0]||(m[0]=f=>n("close-icon-click"))},[A(J(ui))])):Z("",!0),d.enableRightClickMenu?(O(),R("div",Ya,[A(k,null,{overlay:B(()=>[A($t,{file:d.file,idx:d.idx,"selected-tag":r.value,onContextMenuClick:m[1]||(m[1]=(f,w,b)=>n("contextMenuClick",f,w,b)),"is-selected-mutil-files":d.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])]),default:B(()=>[ae("div",Za,[A(J(Ft))])]),_:1}),d.file.type==="file"?(O(),H(k,{key:0},{overlay:B(()=>[c.value.length>1?(O(),H(l,{key:0,onClick:m[2]||(m[2]=f=>n("contextMenuClick",f,d.file,d.idx))},{default:B(()=>[(O(!0),R(ee,null,ue(c.value,f=>(O(),H(p,{key:`toggle-tag-${f.id}`},{default:B(()=>[D(L(f.name)+" ",1),f.selected?(O(),H(J(Yt),{key:0})):(O(),H(J(Xt),{key:1}))]),_:2},1024))),128))]),_:1})):Z("",!0)]),default:B(()=>{var f,w;return[ae("div",{class:fe(["float-btn-wrap",{"like-selected":(f=h.value)==null?void 0:f.selected}]),onClick:y},[(w=h.value)!=null&&w.selected?(O(),H(J(sa),{key:0})):(O(),H(J(da),{key:1}))],2)]}),_:1})):Z("",!0)])):Z("",!0),J(X)(d.file.name)?(O(),R("div",{key:d.file.fullpath,class:fe(`idx-${d.idx} item-content`)},[A(s,{src:v.value,fallback:J(Zi),preview:{src:d.fullScreenPreviewImageUrl,onVisibleChange:(f,w)=>n("previewVisibleChange",f,w)}},null,8,["src","fallback","preview"]),r.value&&d.cellWidth>128?(O(),R("div",Xa,[(O(!0),R(ee,null,ue(r.value,f=>(O(),H(o,{key:f.id,color:J(a).getColor(f.name)},{default:B(()=>[D(L(f.name),1)]),_:2},1032,["color"]))),128))])):Z("",!0)],2)):J(di)(d.file.name)?(O(),R("div",{key:3,class:fe(`idx-${d.idx} item-content video`),onClick:m[3]||(m[3]=f=>J(bi)(d.file))},[ae("div",er,[A(J(ha))]),r.value&&d.cellWidth>128?(O(),R("div",tr,[(O(!0),R(ee,null,ue(r.value,f=>(O(),H(o,{key:f.id,color:J(a).getColor(f.name)},{default:B(()=>[D(L(f.name),1)]),_:2},1032,["color"]))),128))])):Z("",!0)],2)):(O(),R("div",nr,[d.file.type==="file"?(O(),H(J(Li),{key:0,class:"icon center"})):(O(),H(J(Vi),{key:1,class:"icon center"}))])),d.cellWidth>128?(O(),R("div",ir,[ae("div",ar,L(d.file.name),1),ae("div",rr,[ae("div",null,L(d.file.size),1),ae("div",null,L(d.file.date),1)])])):Z("",!0)])],42,Ga))]),_:1},8,["visible"])}}});const gr=vi(lr,[["__scopeId","data-v-8b135d68"]]);export{he as D,gr as F,$t as _,fr as a,vr as b,pr as c,hr as d,dr as e,mr as f,sn as g,Je as h,tn as i,Se as j,ka as k,Oe as s,le as u};
diff --git a/vue/dist/assets/ImgSliPagePane-6f84a5cb.js b/vue/dist/assets/ImgSliPagePane-3cc5b3aa.js
similarity index 74%
rename from vue/dist/assets/ImgSliPagePane-6f84a5cb.js
rename to vue/dist/assets/ImgSliPagePane-3cc5b3aa.js
index 681e6ec..1aeb086 100644
--- a/vue/dist/assets/ImgSliPagePane-6f84a5cb.js
+++ b/vue/dist/assets/ImgSliPagePane-3cc5b3aa.js
@@ -1 +1 @@
-import{d as t,o as a,m as r,c2 as n}from"./index-dda7184d.js";const p=t({__name:"ImgSliPagePane",props:{paneIdx:{},tabIdx:{},left:{},right:{}},setup(o){return(e,s)=>(a(),r(n,{left:e.left,right:e.right},null,8,["left","right"]))}});export{p as default};
+import{d as t,o as a,m as r,c2 as n}from"./index-7014c21f.js";const p=t({__name:"ImgSliPagePane",props:{paneIdx:{},tabIdx:{},left:{},right:{}},setup(o){return(e,s)=>(a(),r(n,{left:e.left,right:e.right},null,8,["left","right"]))}});export{p as default};
diff --git a/vue/dist/assets/MatchedImageGrid-42327ca8.js b/vue/dist/assets/MatchedImageGrid-6bb169b9.js
similarity index 89%
rename from vue/dist/assets/MatchedImageGrid-42327ca8.js
rename to vue/dist/assets/MatchedImageGrid-6bb169b9.js
index 0fe13db..349aced 100644
--- a/vue/dist/assets/MatchedImageGrid-42327ca8.js
+++ b/vue/dist/assets/MatchedImageGrid-6bb169b9.js
@@ -1 +1 @@
-import{d as j,l as H,ax as J,o as r,y as p,c as n,n as o,r as e,s as V,p as c,t as K,v as m,x as $,m as D,L as Y,C as f,N as F,Q as Z,R as ee,V as te,X as se}from"./index-dda7184d.js";import{L as ie,R as le,f as ne,S as oe}from"./fullScreenContextMenu-217e4fe7.js";import{g as ae,F as re}from"./FileItem-ba4545b5.js";import{g as de}from"./db-3650b2a5.js";import{c as ce,u as me}from"./hook-12226230.js";import{o as ue}from"./functionalCallableComp-9395a4a4.js";const ge={class:"hint"},pe={key:1},fe={class:"no-res-hint"},ve={class:"hint"},Ie={key:2,class:"preview-switch"},ke=j({__name:"MatchedImageGrid",props:{tabIdx:{},paneIdx:{},selectedTagIds:{},id:{}},setup(z){const v=z,u=ce(s=>de(v.selectedTagIds,s)),{queue:B,images:l,onContextMenuClickU:I,stackViewEl:R,previewIdx:a,previewing:k,onPreviewVisibleChange:N,previewImgMove:w,canPreview:C,itemSize:_,gridItems:G,showGenInfo:d,imageGenInfo:h,q:A,multiSelectedIdxs:x,onFileItemClick:E,scroller:y,showMenuIdx:g,onFileDragStart:P,onFileDragEnd:U,cellWidth:L,onScroll:b}=me(u);return H(()=>v.selectedTagIds,async()=>{var s;await u.reset(),await J(),(s=y.value)==null||s.scrollToItem(0),b()},{immediate:!0}),(s,t)=>{const O=Z,q=ee,Q=te,W=oe;return r(),p("div",{class:"container",ref_key:"stackViewEl",ref:R},[n(W,{size:"large",spinning:!e(B).isIdle},{default:o(()=>{var M,S;return[n(q,{visible:e(d),"onUpdate:visible":t[1]||(t[1]=i=>V(d)?d.value=i:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=i=>d.value=!1)},{cancelText:o(()=>[]),default:o(()=>[n(O,{active:"",loading:!e(A).isIdle},{default:o(()=>[c("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=i=>e(K)(e(h)))},[c("div",ge,m(s.$t("doubleClickToCopy")),1),$(" "+m(e(h)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),(M=e(l))!=null&&M.length?(r(),D(e(ae),{key:0,ref_key:"scroller",ref:y,class:"file-list",items:e(l),"item-size":e(_).first,"key-field":"fullpath","item-secondary-size":e(_).second,gridItems:e(G),onScroll:e(b)},{default:o(({item:i,index:T})=>[n(re,{idx:T,file:i,"cell-width":e(L),"show-menu-idx":e(g),"onUpdate:showMenuIdx":t[3]||(t[3]=X=>V(g)?g.value=X:null),onDragstart:e(P),onDragend:e(U),onFileItemClick:e(E),"full-screen-preview-image-url":e(l)[e(a)]?e(Y)(e(l)[e(a)]):"",selected:e(x).includes(T),onContextMenuClick:e(I),onPreviewVisibleChange:e(N),"is-selected-mutil-files":e(x).length>1},null,8,["idx","file","cell-width","show-menu-idx","onDragstart","onDragend","onFileItemClick","full-screen-preview-image-url","selected","onContextMenuClick","onPreviewVisibleChange","is-selected-mutil-files"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):e(u).load&&s.selectedTagIds.and_tags.length===1&&!((S=s.selectedTagIds.folder_paths_str)!=null&&S.trim())?(r(),p("div",pe,[c("div",fe,[c("p",ve,m(s.$t("tagSearchNoResultsMessage")),1),n(Q,{onClick:t[4]||(t[4]=i=>e(ue)()),type:"primary"},{default:o(()=>[$(m(s.$t("rebuildImageIndex")),1)]),_:1})])])):f("",!0),e(k)?(r(),p("div",Ie,[n(e(ie),{onClick:t[5]||(t[5]=i=>e(w)("prev")),class:F({disable:!e(C)("prev")})},null,8,["class"]),n(e(le),{onClick:t[6]||(t[6]=i=>e(w)("next")),class:F({disable:!e(C)("next")})},null,8,["class"])])):f("",!0)]}),_:1},8,["spinning"]),e(k)&&e(l)&&e(l)[e(a)]?(r(),D(ne,{key:0,file:e(l)[e(a)],idx:e(a),onContextMenuClick:e(I)},null,8,["file","idx","onContextMenuClick"])):f("",!0)],512)}}});const be=se(ke,[["__scopeId","data-v-c4827cd4"]]);export{be as default};
+import{d as j,l as H,ax as J,o as r,y as p,c as n,n as o,r as e,s as V,p as c,t as K,v as m,x as $,m as D,L as Y,C as f,N as F,Q as Z,R as ee,V as te,X as se}from"./index-7014c21f.js";import{L as ie,R as le,f as ne,S as oe}from"./fullScreenContextMenu-98230b57.js";import{g as ae,F as re}from"./FileItem-3525329e.js";import{g as de}from"./db-a31c442b.js";import{c as ce,u as me}from"./hook-d5d8b6fe.js";import{o as ue}from"./functionalCallableComp-c44a8b16.js";const ge={class:"hint"},pe={key:1},fe={class:"no-res-hint"},ve={class:"hint"},Ie={key:2,class:"preview-switch"},ke=j({__name:"MatchedImageGrid",props:{tabIdx:{},paneIdx:{},selectedTagIds:{},id:{}},setup(z){const v=z,u=ce(s=>de(v.selectedTagIds,s)),{queue:B,images:l,onContextMenuClickU:I,stackViewEl:R,previewIdx:a,previewing:k,onPreviewVisibleChange:N,previewImgMove:w,canPreview:C,itemSize:_,gridItems:G,showGenInfo:d,imageGenInfo:h,q:A,multiSelectedIdxs:x,onFileItemClick:E,scroller:y,showMenuIdx:g,onFileDragStart:P,onFileDragEnd:U,cellWidth:L,onScroll:b}=me(u);return H(()=>v.selectedTagIds,async()=>{var s;await u.reset(),await J(),(s=y.value)==null||s.scrollToItem(0),b()},{immediate:!0}),(s,t)=>{const O=Z,q=ee,Q=te,W=oe;return r(),p("div",{class:"container",ref_key:"stackViewEl",ref:R},[n(W,{size:"large",spinning:!e(B).isIdle},{default:o(()=>{var M,S;return[n(q,{visible:e(d),"onUpdate:visible":t[1]||(t[1]=i=>V(d)?d.value=i:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=i=>d.value=!1)},{cancelText:o(()=>[]),default:o(()=>[n(O,{active:"",loading:!e(A).isIdle},{default:o(()=>[c("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=i=>e(K)(e(h)))},[c("div",ge,m(s.$t("doubleClickToCopy")),1),$(" "+m(e(h)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),(M=e(l))!=null&&M.length?(r(),D(e(ae),{key:0,ref_key:"scroller",ref:y,class:"file-list",items:e(l),"item-size":e(_).first,"key-field":"fullpath","item-secondary-size":e(_).second,gridItems:e(G),onScroll:e(b)},{default:o(({item:i,index:T})=>[n(re,{idx:T,file:i,"cell-width":e(L),"show-menu-idx":e(g),"onUpdate:showMenuIdx":t[3]||(t[3]=X=>V(g)?g.value=X:null),onDragstart:e(P),onDragend:e(U),onFileItemClick:e(E),"full-screen-preview-image-url":e(l)[e(a)]?e(Y)(e(l)[e(a)]):"",selected:e(x).includes(T),onContextMenuClick:e(I),onPreviewVisibleChange:e(N),"is-selected-mutil-files":e(x).length>1},null,8,["idx","file","cell-width","show-menu-idx","onDragstart","onDragend","onFileItemClick","full-screen-preview-image-url","selected","onContextMenuClick","onPreviewVisibleChange","is-selected-mutil-files"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):e(u).load&&s.selectedTagIds.and_tags.length===1&&!((S=s.selectedTagIds.folder_paths_str)!=null&&S.trim())?(r(),p("div",pe,[c("div",fe,[c("p",ve,m(s.$t("tagSearchNoResultsMessage")),1),n(Q,{onClick:t[4]||(t[4]=i=>e(ue)()),type:"primary"},{default:o(()=>[$(m(s.$t("rebuildImageIndex")),1)]),_:1})])])):f("",!0),e(k)?(r(),p("div",Ie,[n(e(ie),{onClick:t[5]||(t[5]=i=>e(w)("prev")),class:F({disable:!e(C)("prev")})},null,8,["class"]),n(e(le),{onClick:t[6]||(t[6]=i=>e(w)("next")),class:F({disable:!e(C)("next")})},null,8,["class"])])):f("",!0)]}),_:1},8,["spinning"]),e(k)&&e(l)&&e(l)[e(a)]?(r(),D(ne,{key:0,file:e(l)[e(a)],idx:e(a),onContextMenuClick:e(I)},null,8,["file","idx","onContextMenuClick"])):f("",!0)],512)}}});const be=se(ke,[["__scopeId","data-v-c4827cd4"]]);export{be as default};
diff --git a/vue/dist/assets/SubstrSearch-350fa211.js b/vue/dist/assets/SubstrSearch-350fa211.js
deleted file mode 100644
index 8bf5aed..0000000
--- a/vue/dist/assets/SubstrSearch-350fa211.js
+++ /dev/null
@@ -1 +0,0 @@
-import{d as te,$ as x,aw as le,bQ as ne,bP as A,o as a,y as b,q as T,c as o,r as e,bU as ie,p as v,N as y,m as g,n as r,x as I,v as f,C as w,s as K,t as ae,L as oe,ax as re,al as de,ai as ue,U as ce,V as pe,Q as me,R as ve,X as ge}from"./index-dda7184d.js";import{L as fe,R as we,f as ke,S as xe}from"./fullScreenContextMenu-217e4fe7.js";/* empty css */import{g as be,F as ye}from"./FileItem-ba4545b5.js";import{b as N,c as Ie,f as P,u as Ce}from"./db-3650b2a5.js";import{c as he,u as _e}from"./hook-12226230.js";import"./functionalCallableComp-9395a4a4.js";const Se="/infinite_image_browsing/fe-static/assets/regex-a447f877.svg",Me=["src"],$e={class:"hint"},ze={key:1,class:"preview-switch"},De=te({__name:"SubstrSearch",setup(Be){const p=x(!1),u=x(""),C=he(l=>p.value?P("",l,u.value):P(u.value,l)),{queue:d,images:i,onContextMenuClickU:h,stackViewEl:q,previewIdx:c,previewing:_,onPreviewVisibleChange:L,previewImgMove:S,canPreview:M,itemSize:$,gridItems:G,showGenInfo:m,imageGenInfo:z,q:O,multiSelectedIdxs:D,onFileItemClick:Q,scroller:B,showMenuIdx:k,onFileDragStart:H,onFileDragEnd:W,cellWidth:X,onScroll:U}=_e(C),t=x();le(async()=>{t.value=await N(),t.value.img_count&&t.value.expired&&V()});const V=ne(()=>d.pushAction(async()=>(await Ce(),t.value=await N(),t.value)).res),E=async()=>{await C.reset({refetch:!0}),await re(),U(),B.value.scrollToItem(0),i.value.length||de.info(ue("fuzzy-search-noResults"))};A("returnToIIB",async()=>{const l=await d.pushAction(Ie).res;t.value.expired=l.expired}),A("searchIndexExpired",()=>t.value&&(t.value.expired=!0));const j=()=>{p.value=!p.value};return(l,s)=>{const J=ce,F=pe,Y=me,Z=ve,ee=xe;return a(),b("div",{class:"container",ref_key:"stackViewEl",ref:q},[t.value?(a(),b("div",{key:0,class:"search-bar",onKeydown:s[2]||(s[2]=T(()=>{},["stop"]))},[o(J,{value:u.value,"onUpdate:value":s[0]||(s[0]=n=>u.value=n),placeholder:l.$t("fuzzy-search-placeholder")+" "+l.$t("regexSearchEnabledHint"),disabled:!e(d).isIdle,onKeydown:ie(E,["enter"]),"allow-clear":""},null,8,["value","placeholder","disabled","onKeydown"]),v("div",{class:y(["regex-icon",{selected:p.value}]),onKeydown:s[1]||(s[1]=T(()=>{},["stop"])),onClick:j,title:"Use Regular Expression"},[v("img",{src:e(Se)},null,8,Me)],34),t.value.expired||!t.value.img_count?(a(),g(F,{key:0,onClick:e(V),loading:!e(d).isIdle,type:"primary"},{default:r(()=>[I(f(t.value.img_count===0?l.$t("generateIndexHint"):l.$t("UpdateIndex")),1)]),_:1},8,["onClick","loading"])):(a(),g(F,{key:1,type:"primary",onClick:E,loading:!e(d).isIdle,disabled:!u.value},{default:r(()=>[I(f(l.$t("search")),1)]),_:1},8,["loading","disabled"]))],32)):w("",!0),o(ee,{size:"large",spinning:!e(d).isIdle},{default:r(()=>[o(Z,{visible:e(m),"onUpdate:visible":s[4]||(s[4]=n=>K(m)?m.value=n:null),width:"70vw","mask-closable":"",onOk:s[5]||(s[5]=n=>m.value=!1)},{cancelText:r(()=>[]),default:r(()=>[o(Y,{active:"",loading:!e(O).isIdle},{default:r(()=>[v("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:s[3]||(s[3]=n=>e(ae)(e(z)))},[v("div",$e,f(l.$t("doubleClickToCopy")),1),I(" "+f(e(z)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),e(i)?(a(),g(e(be),{key:0,ref_key:"scroller",ref:B,class:"file-list",items:e(i),"item-size":e($).first,"key-field":"fullpath","item-secondary-size":e($).second,gridItems:e(G),onScroll:e(U)},{default:r(({item:n,index:R})=>[o(ye,{idx:R,file:n,"show-menu-idx":e(k),"onUpdate:showMenuIdx":s[6]||(s[6]=se=>K(k)?k.value=se:null),onFileItemClick:e(Q),"full-screen-preview-image-url":e(i)[e(c)]?e(oe)(e(i)[e(c)]):"","cell-width":e(X),selected:e(D).includes(R),onContextMenuClick:e(h),onDragstart:e(H),onDragend:e(W),"is-selected-mutil-files":e(D).length>1,onPreviewVisibleChange:e(L)},null,8,["idx","file","show-menu-idx","onFileItemClick","full-screen-preview-image-url","cell-width","selected","onContextMenuClick","onDragstart","onDragend","is-selected-mutil-files","onPreviewVisibleChange"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):w("",!0),e(_)?(a(),b("div",ze,[o(e(fe),{onClick:s[7]||(s[7]=n=>e(S)("prev")),class:y({disable:!e(M)("prev")})},null,8,["class"]),o(e(we),{onClick:s[8]||(s[8]=n=>e(S)("next")),class:y({disable:!e(M)("next")})},null,8,["class"])])):w("",!0)]),_:1},8,["spinning"]),e(_)&&e(i)&&e(i)[e(c)]?(a(),g(ke,{key:1,file:e(i)[e(c)],idx:e(c),onContextMenuClick:e(h)},null,8,["file","idx","onContextMenuClick"])):w("",!0)],512)}}});const Ke=ge(De,[["__scopeId","data-v-bbf17c78"]]);export{Ke as default};
diff --git a/vue/dist/assets/SubstrSearch-86e8fce9.css b/vue/dist/assets/SubstrSearch-86e8fce9.css
new file mode 100644
index 0000000..f5d5b7b
--- /dev/null
+++ b/vue/dist/assets/SubstrSearch-86e8fce9.css
@@ -0,0 +1 @@
+.regex-icon[data-v-7afef8c2]{user-select:none;padding:4px;margin:0 4px;cursor:pointer;border:1px solid var(--zp-border);border-radius:4px}.regex-icon img[data-v-7afef8c2]{height:1.5em}.regex-icon[data-v-7afef8c2]:hover{background:var(--zp-border)}.regex-icon.selected[data-v-7afef8c2]{background:var(--primary-color-1);border:1px solid var(--primary-color)}.search-bar[data-v-7afef8c2]{padding:8px 8px 0;display:flex}.search-bar.last[data-v-7afef8c2]{padding-bottom:8px}.search-bar .form-name[data-v-7afef8c2]{flex-shrink:0;padding:4px 8px}.preview-switch[data-v-7afef8c2]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-7afef8c2]{color:#fff;margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-7afef8c2]{opacity:0;pointer-events:none;cursor:none}.container[data-v-7afef8c2]{background:var(--zp-secondary-background)}.container .file-list[data-v-7afef8c2]{list-style:none;padding:8px;height:100%;overflow:auto;height:var(--pane-max-height);width:100%}
diff --git a/vue/dist/assets/SubstrSearch-94ab7a47.css b/vue/dist/assets/SubstrSearch-94ab7a47.css
deleted file mode 100644
index 512f23d..0000000
--- a/vue/dist/assets/SubstrSearch-94ab7a47.css
+++ /dev/null
@@ -1 +0,0 @@
-.regex-icon[data-v-bbf17c78]{user-select:none;padding:4px;margin:0 4px;cursor:pointer;border:1px solid var(--zp-border);border-radius:4px}.regex-icon img[data-v-bbf17c78]{height:1.5em}.regex-icon[data-v-bbf17c78]:hover{background:var(--zp-border)}.regex-icon.selected[data-v-bbf17c78]{background:var(--primary-color-1);border:1px solid var(--primary-color)}.search-bar[data-v-bbf17c78]{padding:8px;display:flex}.preview-switch[data-v-bbf17c78]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-bbf17c78]{color:#fff;margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-bbf17c78]{opacity:0;pointer-events:none;cursor:none}.container[data-v-bbf17c78]{background:var(--zp-secondary-background)}.container .file-list[data-v-bbf17c78]{list-style:none;padding:8px;height:100%;overflow:auto;height:var(--pane-max-height);width:100%}
diff --git a/vue/dist/assets/SubstrSearch-b3affade.js b/vue/dist/assets/SubstrSearch-b3affade.js
new file mode 100644
index 0000000..3d7c3ad
--- /dev/null
+++ b/vue/dist/assets/SubstrSearch-b3affade.js
@@ -0,0 +1 @@
+import{d as ne,$ as x,aw as ie,bQ as oe,ax as re,al as ue,ai as de,bP as K,o,y as C,q as N,c as i,r as e,bU as ce,p as d,N as _,m as k,n as r,x as S,v as f,C as h,s as P,t as pe,L as ve,U as me,V as fe,bS as ge,Q as we,R as xe,X as ke}from"./index-7014c21f.js";import{L as he,R as Ie,f as ye,S as be}from"./fullScreenContextMenu-98230b57.js";/* empty css */import{g as Ce,F as _e}from"./FileItem-3525329e.js";import{b as L,c as Se,f as $e,u as Me}from"./db-a31c442b.js";import{c as ze,u as De}from"./hook-d5d8b6fe.js";import"./functionalCallableComp-c44a8b16.js";const Ue="/infinite_image_browsing/fe-static/assets/regex-a447f877.svg",Be=["src"],Fe={class:"search-bar last"},Re={class:"form-name"},Ve={class:"hint"},Ee={key:1,class:"preview-switch"},Ae=ne({__name:"SubstrSearch",props:{tabIdx:{},paneIdx:{},searchScope:{}},setup(G){const $=G,c=x(!1),p=x(""),g=x($.searchScope??""),I=ze(t=>{const s={cursor:t,regexp:c.value?p.value:"",surstr:c.value?"":p.value,folder_paths:(g.value??"").split(/,|\n/).map(m=>m.trim()).filter(m=>m)};return $e(s)}),{queue:u,images:n,onContextMenuClickU:M,stackViewEl:O,previewIdx:v,previewing:z,onPreviewVisibleChange:Q,previewImgMove:D,canPreview:U,itemSize:B,gridItems:H,showGenInfo:w,imageGenInfo:F,q:W,multiSelectedIdxs:R,onFileItemClick:X,scroller:V,showMenuIdx:y,onFileDragStart:j,onFileDragEnd:J,cellWidth:Y,onScroll:E}=De(I),a=x();ie(async()=>{a.value=await L(),a.value.img_count&&a.value.expired&&await A(),$.searchScope&&await b()});const A=oe(()=>u.pushAction(async()=>(await Me(),a.value=await L(),a.value)).res),b=async()=>{await I.reset({refetch:!0}),await re(),E(),V.value.scrollToItem(0),n.value.length||ue.info(de("fuzzy-search-noResults"))};K("returnToIIB",async()=>{const t=await u.pushAction(Se).res;a.value.expired=t.expired}),K("searchIndexExpired",()=>a.value&&(a.value.expired=!0));const Z=()=>{c.value=!c.value};return(t,s)=>{const m=me,T=fe,ee=ge,se=we,ae=xe,te=be;return o(),C("div",{class:"container",ref_key:"stackViewEl",ref:O},[a.value?(o(),C("div",{key:0,class:"search-bar",onKeydown:s[2]||(s[2]=N(()=>{},["stop"]))},[i(m,{value:p.value,"onUpdate:value":s[0]||(s[0]=l=>p.value=l),placeholder:t.$t("fuzzy-search-placeholder")+" "+t.$t("regexSearchEnabledHint"),disabled:!e(u).isIdle,onKeydown:ce(b,["enter"]),"allow-clear":""},null,8,["value","placeholder","disabled","onKeydown"]),d("div",{class:_(["regex-icon",{selected:c.value}]),onKeydown:s[1]||(s[1]=N(()=>{},["stop"])),onClick:Z,title:"Use Regular Expression"},[d("img",{src:e(Ue)},null,8,Be)],34),a.value.expired||!a.value.img_count?(o(),k(T,{key:0,onClick:e(A),loading:!e(u).isIdle,type:"primary"},{default:r(()=>[S(f(a.value.img_count===0?t.$t("generateIndexHint"):t.$t("UpdateIndex")),1)]),_:1},8,["onClick","loading"])):(o(),k(T,{key:1,type:"primary",onClick:b,loading:!e(u).isIdle||e(I).loading,disabled:!p.value&&!g.value},{default:r(()=>[S(f(t.$t("search")),1)]),_:1},8,["loading","disabled"]))],32)):h("",!0),d("div",Fe,[d("div",Re,f(t.$t("searchScope")),1),i(ee,{"auto-size":{maxRows:8},value:g.value,"onUpdate:value":s[3]||(s[3]=l=>g.value=l),placeholder:t.$t("specifiedSearchFolder")},null,8,["value","placeholder"])]),i(te,{size:"large",spinning:!e(u).isIdle},{default:r(()=>[i(ae,{visible:e(w),"onUpdate:visible":s[5]||(s[5]=l=>P(w)?w.value=l:null),width:"70vw","mask-closable":"",onOk:s[6]||(s[6]=l=>w.value=!1)},{cancelText:r(()=>[]),default:r(()=>[i(se,{active:"",loading:!e(W).isIdle},{default:r(()=>[d("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:s[4]||(s[4]=l=>e(pe)(e(F)))},[d("div",Ve,f(t.$t("doubleClickToCopy")),1),S(" "+f(e(F)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),e(n)?(o(),k(e(Ce),{key:0,ref_key:"scroller",ref:V,class:"file-list",items:e(n),"item-size":e(B).first,"key-field":"fullpath","item-secondary-size":e(B).second,gridItems:e(H),onScroll:e(E)},{default:r(({item:l,index:q})=>[i(_e,{idx:q,file:l,"show-menu-idx":e(y),"onUpdate:showMenuIdx":s[7]||(s[7]=le=>P(y)?y.value=le:null),onFileItemClick:e(X),"full-screen-preview-image-url":e(n)[e(v)]?e(ve)(e(n)[e(v)]):"","cell-width":e(Y),selected:e(R).includes(q),onContextMenuClick:e(M),onDragstart:e(j),onDragend:e(J),"is-selected-mutil-files":e(R).length>1,onPreviewVisibleChange:e(Q)},null,8,["idx","file","show-menu-idx","onFileItemClick","full-screen-preview-image-url","cell-width","selected","onContextMenuClick","onDragstart","onDragend","is-selected-mutil-files","onPreviewVisibleChange"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):h("",!0),e(z)?(o(),C("div",Ee,[i(e(he),{onClick:s[8]||(s[8]=l=>e(D)("prev")),class:_({disable:!e(U)("prev")})},null,8,["class"]),i(e(Ie),{onClick:s[9]||(s[9]=l=>e(D)("next")),class:_({disable:!e(U)("next")})},null,8,["class"])])):h("",!0)]),_:1},8,["spinning"]),e(z)&&e(n)&&e(n)[e(v)]?(o(),k(ye,{key:1,file:e(n)[e(v)],idx:e(v),onContextMenuClick:e(M)},null,8,["file","idx","onContextMenuClick"])):h("",!0)],512)}}});const Oe=ke(Ae,[["__scopeId","data-v-7afef8c2"]]);export{Oe as default};
diff --git a/vue/dist/assets/TagSearch-dcb097a6.css b/vue/dist/assets/TagSearch-8cc2caef.css
similarity index 79%
rename from vue/dist/assets/TagSearch-dcb097a6.css
rename to vue/dist/assets/TagSearch-8cc2caef.css
index 9628100..547c351 100644
--- a/vue/dist/assets/TagSearch-dcb097a6.css
+++ b/vue/dist/assets/TagSearch-8cc2caef.css
@@ -1 +1 @@
-.ant-collapse{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;display:flex;flex-wrap:nowrap;align-items:flex-start;padding:12px 16px;color:#000000d9;line-height:1.5715;cursor:pointer;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-content{color:#000000d9;background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:12px;padding-bottom:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:#00000040;cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-right:0;margin-left:12px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-right:auto;margin-left:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}[data-v-3675d17e] .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:0}.container[data-v-3675d17e]{height:var(--pane-max-height);overflow:auto;display:flex;flex-direction:column;align-items:stretch}.container .generate-idx-hint[data-v-3675d17e]{margin:64px;padding:64px;font-size:2em;text-align:center;background-color:var(--zp-secondary-background);white-space:pre-line;line-height:2.5em;border-radius:16px}.container .remove[data-v-3675d17e]{padding:4px;position:cursor;border-radius:2px}.container .remove[data-v-3675d17e]:hover{background-color:var(--zp-secondary-background)}.container .select[data-v-3675d17e]{padding:8px}.container .search-bar[data-v-3675d17e]{padding:8px;display:flex}.container .search-bar .form-name[data-v-3675d17e]{flex-shrink:0;padding:4px 8px;width:128px}.container .list-container[data-v-3675d17e]{background-color:var(--zp-secondary-background);overflow:scroll}.container .cat-name[data-v-3675d17e]{user-select:none;position:sticky;top:0;padding:4px 16px;background:var(--zp-primary-background);margin:4px;transition:all .3s ease;border-left:4px solid var(--primary-color);cursor:pointer}.container .cat-name[data-v-3675d17e]:hover{border-radius:4px;background-color:var(--zp-secondary-background)}.container .cat-name .arrow[data-v-3675d17e]{color:var(--primary-color);transition:all .3s ease;margin-right:16px}.container .cat-name .arrow.down[data-v-3675d17e]{transform:rotate(90deg)}.container .tag-list[data-v-3675d17e]{list-style:none;margin:16px;border-radius:16px;background:var(--zp-primary-background);padding:8px}.container .tag-list .tag[data-v-3675d17e]{border:2px solid var(--zp-secondary);color:var(--zp-primary);border-radius:999px;padding:4px 16px;margin:4px;display:inline-block;cursor:pointer;max-width:256px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container .tag-list .tag.selected[data-v-3675d17e]{color:var(--primary-color);border:2px solid var(--primary-color)}
+.ant-collapse{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;display:flex;flex-wrap:nowrap;align-items:flex-start;padding:12px 16px;color:#000000d9;line-height:1.5715;cursor:pointer;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-content{color:#000000d9;background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:12px;padding-bottom:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:#00000040;cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-right:0;margin-left:12px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-right:auto;margin-left:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}[data-v-5d427604] .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:0}.container[data-v-5d427604]{height:var(--pane-max-height);overflow:auto;display:flex;flex-direction:column;align-items:stretch}.container .generate-idx-hint[data-v-5d427604]{margin:64px;padding:64px;font-size:2em;text-align:center;background-color:var(--zp-secondary-background);white-space:pre-line;line-height:2.5em;border-radius:16px}.container .remove[data-v-5d427604]{padding:4px;position:cursor;border-radius:2px}.container .remove[data-v-5d427604]:hover{background-color:var(--zp-secondary-background)}.container .select[data-v-5d427604]{padding:8px}.container .search-bar[data-v-5d427604]{padding:8px;display:flex}.container .search-bar .form-name[data-v-5d427604]{flex-shrink:0;padding:4px 8px;width:128px}.container .list-container[data-v-5d427604]{background-color:var(--zp-secondary-background);overflow:scroll}.container .cat-name[data-v-5d427604]{user-select:none;position:sticky;top:0;padding:4px 16px;background:var(--zp-primary-background);margin:4px;transition:all .3s ease;border-left:4px solid var(--primary-color);cursor:pointer}.container .cat-name[data-v-5d427604]:hover{border-radius:4px;background-color:var(--zp-secondary-background)}.container .cat-name .arrow[data-v-5d427604]{color:var(--primary-color);transition:all .3s ease;margin-right:16px}.container .cat-name .arrow.down[data-v-5d427604]{transform:rotate(90deg)}.container .tag-list[data-v-5d427604]{list-style:none;margin:16px;border-radius:16px;background:var(--zp-primary-background);padding:8px}.container .tag-list .tag[data-v-5d427604]{border:2px solid var(--zp-secondary);color:var(--zp-primary);border-radius:999px;padding:4px 16px;margin:4px;display:inline-block;cursor:pointer;max-width:256px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container .tag-list .tag.selected[data-v-5d427604]{color:var(--primary-color);border:2px solid var(--primary-color)}
diff --git a/vue/dist/assets/TagSearch-c6cdb952.js b/vue/dist/assets/TagSearch-fbeafa41.js
similarity index 85%
rename from vue/dist/assets/TagSearch-c6cdb952.js
rename to vue/dist/assets/TagSearch-fbeafa41.js
index f783295..f37e29c 100644
--- a/vue/dist/assets/TagSearch-c6cdb952.js
+++ b/vue/dist/assets/TagSearch-fbeafa41.js
@@ -1 +1 @@
-import{P as F,Z as _e,d as ae,bq as he,aY as be,$ as U,bH as Ce,l as xe,u as ge,ao as J,a0 as Z,h as x,c as p,a as W,bI as Ae,b as Ie,f as we,bJ as ke,a3 as se,bK as Pe,a2 as $e,i as Oe,b0 as Se,bL as Be,a5 as Te,a6 as Ke,a7 as Ee,ag as Ne,aT as Re,aR as Me,bM as De,aS as je,bN as Fe,k as Ue,bO as Ve,aq as Le,aw as qe,bP as oe,bQ as ze,o as C,y as T,C as z,z as Y,p as S,v as B,r as K,S as te,m as Q,n as q,x as G,A as ie,N as re,bR as Ge,q as ce,a1 as He,ap as Qe,al as de,ai as ne,R as Je,V as ue,bS as We,U as Xe,bT as Ye,X as Ze}from"./index-dda7184d.js";/* empty css *//* empty css */import{b as ve,c as ea,d as aa,e as ta,u as na}from"./db-3650b2a5.js";var la=function(){return{prefixCls:String,activeKey:{type:[Array,Number,String]},defaultActiveKey:{type:[Array,Number,String]},accordion:{type:Boolean,default:void 0},destroyInactivePanel:{type:Boolean,default:void 0},bordered:{type:Boolean,default:void 0},expandIcon:Function,openAnimation:F.object,expandIconPosition:F.oneOf(_e("left","right")),collapsible:{type:String},ghost:{type:Boolean,default:void 0},onChange:Function,"onUpdate:activeKey":Function}},me=function(){return{openAnimation:F.object,prefixCls:String,header:F.any,headerClass:String,showArrow:{type:Boolean,default:void 0},isActive:{type:Boolean,default:void 0},destroyInactivePanel:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},accordion:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},expandIcon:Function,extra:F.any,panelKey:F.oneOfType([F.string,F.number]),collapsible:{type:String},role:String,onItemClick:{type:Function}}};function pe(l){var e=l;if(!Array.isArray(e)){var t=Ie(e);e=t==="number"||t==="string"?[e]:[]}return e.map(function(s){return String(s)})}const X=ae({compatConfig:{MODE:3},name:"ACollapse",inheritAttrs:!1,props:he(la(),{accordion:!1,destroyInactivePanel:!1,bordered:!0,openAnimation:be("ant-motion-collapse",!1),expandIconPosition:"left"}),slots:["expandIcon"],setup:function(e,t){var s=t.attrs,c=t.slots,n=t.emit,o=U(pe(Ce([e.activeKey,e.defaultActiveKey])));xe(function(){return e.activeKey},function(){o.value=pe(e.activeKey)},{deep:!0});var f=ge("collapse",e),h=f.prefixCls,$=f.direction,E=J(function(){var d=e.expandIconPosition;return d!==void 0?d:$.value==="rtl"?"right":"left"}),g=function(r){var u=e.expandIcon,m=u===void 0?c.expandIcon:u,y=m?m(r):p(Pe,{rotate:r.isActive?90:void 0},null);return p("div",null,[$e(Array.isArray(m)?y[0]:y)?se(y,{class:"".concat(h.value,"-arrow")},!1):y])},N=function(r){e.activeKey===void 0&&(o.value=r);var u=e.accordion?r[0]:r;n("update:activeKey",u),n("change",u)},k=function(r){var u=o.value;if(e.accordion)u=u[0]===r?[]:[r];else{u=Oe(u);var m=u.indexOf(r),y=m>-1;y?u.splice(m,1):u.push(r)}N(u)},D=function(r,u){var m,y,M;if(!ke(r)){var a=o.value,i=e.accordion,b=e.destroyInactivePanel,P=e.collapsible,O=e.openAnimation,A=String((m=r.key)!==null&&m!==void 0?m:u),w=r.props||{},I=w.header,H=I===void 0?(y=r.children)===null||y===void 0||(M=y.header)===null||M===void 0?void 0:M.call(y):I,v=w.headerClass,j=w.collapsible,_=w.disabled,V=!1;i?V=a[0]===A:V=a.indexOf(A)>-1;var L=j??P;(_||_==="")&&(L="disabled");var ye={key:A,panelKey:A,header:H,headerClass:v,isActive:V,prefixCls:h.value,destroyInactivePanel:b,openAnimation:O,accordion:i,onItemClick:L==="disabled"?null:k,expandIcon:g,collapsible:L};return se(r,ye)}},R=function(){var r;return we((r=c.default)===null||r===void 0?void 0:r.call(c)).map(D)};return function(){var d,r=e.accordion,u=e.bordered,m=e.ghost,y=Z((d={},x(d,h.value,!0),x(d,"".concat(h.value,"-borderless"),!u),x(d,"".concat(h.value,"-icon-position-").concat(E.value),!0),x(d,"".concat(h.value,"-rtl"),$.value==="rtl"),x(d,"".concat(h.value,"-ghost"),!!m),x(d,s.class,!!s.class),d));return p("div",W(W({class:y},Ae(s)),{},{style:s.style,role:r?"tablist":null}),[R()])}}}),sa=ae({compatConfig:{MODE:3},name:"PanelContent",props:me(),setup:function(e,t){var s=t.slots,c=U(!1);return Se(function(){(e.isActive||e.forceRender)&&(c.value=!0)}),function(){var n,o;if(!c.value)return null;var f=e.prefixCls,h=e.isActive,$=e.role;return p("div",{ref:U,class:Z("".concat(f,"-content"),(n={},x(n,"".concat(f,"-content-active"),h),x(n,"".concat(f,"-content-inactive"),!h),n)),role:$},[p("div",{class:"".concat(f,"-content-box")},[(o=s.default)===null||o===void 0?void 0:o.call(s)])])}}}),ee=ae({compatConfig:{MODE:3},name:"ACollapsePanel",inheritAttrs:!1,props:he(me(),{showArrow:!0,isActive:!1,onItemClick:function(){},headerClass:"",forceRender:!1}),slots:["expandIcon","extra","header"],setup:function(e,t){var s=t.slots,c=t.emit,n=t.attrs;Be(e.disabled===void 0,"Collapse.Panel",'`disabled` is deprecated. Please use `collapsible="disabled"` instead.');var o=ge("collapse",e),f=o.prefixCls,h=function(){c("itemClick",e.panelKey)},$=function(g){(g.key==="Enter"||g.keyCode===13||g.which===13)&&h()};return function(){var E,g,N,k,D=e.header,R=D===void 0?(E=s.header)===null||E===void 0?void 0:E.call(s):D,d=e.headerClass,r=e.isActive,u=e.showArrow,m=e.destroyInactivePanel,y=e.accordion,M=e.forceRender,a=e.openAnimation,i=e.expandIcon,b=i===void 0?s.expandIcon:i,P=e.extra,O=P===void 0?(g=s.extra)===null||g===void 0?void 0:g.call(s):P,A=e.collapsible,w=A==="disabled",I=f.value,H=Z("".concat(I,"-header"),(N={},x(N,d,d),x(N,"".concat(I,"-header-collapsible-only"),A==="header"),N)),v=Z((k={},x(k,"".concat(I,"-item"),!0),x(k,"".concat(I,"-item-active"),r),x(k,"".concat(I,"-item-disabled"),w),x(k,"".concat(I,"-no-arrow"),!u),x(k,"".concat(n.class),!!n.class),k)),j=p("i",{class:"arrow"},null);u&&typeof b=="function"&&(j=b(e));var _=Te(p(sa,{prefixCls:I,isActive:r,forceRender:M,role:y?"tabpanel":null},{default:s.default}),[[Ke,r]]),V=W({appear:!1,css:!1},a);return p("div",W(W({},n),{},{class:v}),[p("div",{class:H,onClick:function(){return A!=="header"&&h()},role:y?"tab":"button",tabindex:w?-1:0,"aria-expanded":r,onKeypress:$},[u&&j,A==="header"?p("span",{onClick:h,class:"".concat(I,"-header-text")},[R]):R,O&&p("div",{class:"".concat(I,"-extra")},[O])]),p(Ee,V,{default:function(){return[!m||r?_:null]}})])}}});X.Panel=ee;X.install=function(l){return l.component(X.name,X),l.component(ee.name,ee),l};var oa={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z"}}]},name:"arrow-right",theme:"outlined"};const ia=oa;function fe(l){for(var e=1;e!s.isIdle),n=U(),o=U({and_tags:[],or_tags:[],not_tags:[],folder_paths_str:e.searchScope}),f=J(()=>n.value?n.value.tags.slice().sort((a,i)=>i.count-a.count):[]),h=["custom","Model","lora","lyco","pos","size","Postprocess upscaler","Postprocess upscale by","Sampler"].reduce((a,i,b)=>(a[i]=b,a),{}),$=J(()=>Object.entries(Aa(f.value,a=>a.type)).sort((a,i)=>h[a[0]]-h[i[0]])),E=Le(),g=U($.value.map(a=>a[0]));qe(async()=>{n.value=await ve(),g.value=$.value.map(a=>a[0]),n.value.img_count&&n.value.expired&&await N(),e.searchScope&&k()}),oe("searchIndexExpired",()=>n.value&&(n.value.expired=!0));const N=ze(()=>s.pushAction(async()=>(await na(),n.value=await ve(),g.value=$.value.map(a=>a[0]),n.value)).res),k=()=>{t.openTagSearchMatchedImageGridInRight(e.tabIdx,E,o.value)};oe("returnToIIB",async()=>{const a=await s.pushAction(ea).res;n.value.expired=a.expired});const D=(a,i=!1)=>(i?`[${a.type}] `:"")+(a.display_name?`${a.display_name} : ${a.name}`:a.name),R=U(!1),d=U(""),r=async()=>{var i,b,P;if(!d.value){R.value=!1;return}const a=await s.pushAction(()=>aa({tag_name:d.value})).res;a.type!=="custom"&&de.error(ne("existInOtherType")),(i=n.value)!=null&&i.tags.find(O=>O.id===a.id)?de.error(ne("alreadyExists")):((b=n.value)==null||b.tags.push(a),(P=t.conf)==null||P.all_custom_tags.push(a)),d.value="",R.value=!1},u=a=>{Je.confirm({title:ne("confirmDelete"),async onOk(){var b,P,O,A;await ta({tag_id:a});const i=((b=n.value)==null?void 0:b.tags.findIndex(w=>w.id===a))??-1;(P=n.value)==null||P.tags.splice(i,1),(A=t.conf)==null||A.all_custom_tags.splice((O=t.conf)==null?void 0:O.all_custom_tags.findIndex(w=>w.id===a),1)}})},m=J(()=>new Set([o.value.and_tags,o.value.or_tags,o.value.not_tags].flat())),y=a=>{m.value.has(a.id)?(o.value.and_tags=o.value.and_tags.filter(i=>i!==a.id),o.value.or_tags=o.value.or_tags.filter(i=>i!==a.id),o.value.not_tags=o.value.not_tags.filter(i=>i!==a.id)):o.value.and_tags.push(a.id)},M={value:a=>a.id,text:D,optionText:a=>D(a,!0)};return(a,i)=>{const b=ue,P=We,O=Xe,A=ue,w=Ye,I=ee,H=X;return C(),T("div",Ia,[z("",!0),n.value?(C(),T(Y,{key:1},[S("div",null,[S("div",wa,[S("div",ka,B(a.$t("exactMatch")),1),p(K(te),{conv:M,mode:"multiple",style:{width:"100%"},options:f.value,value:o.value.and_tags,"onUpdate:value":i[0]||(i[0]=v=>o.value.and_tags=v),disabled:!f.value.length,placeholder:a.$t("selectExactMatchTag")},null,8,["options","value","disabled","placeholder"]),n.value.expired||!n.value.img_count?(C(),Q(b,{key:0,onClick:K(N),loading:!K(s).isIdle,type:"primary"},{default:q(()=>[G(B(n.value.img_count===0?a.$t("generateIndexHint"):a.$t("UpdateIndex")),1)]),_:1},8,["onClick","loading"])):(C(),Q(b,{key:1,type:"primary",onClick:k,loading:!K(s).isIdle},{default:q(()=>[G(B(a.$t("search")),1)]),_:1},8,["loading"]))]),S("div",Pa,[S("div",$a,B(a.$t("anyMatch")),1),p(K(te),{conv:M,mode:"multiple",style:{width:"100%"},options:f.value,value:o.value.or_tags,"onUpdate:value":i[1]||(i[1]=v=>o.value.or_tags=v),disabled:!f.value.length,placeholder:a.$t("selectAnyMatchTag")},null,8,["options","value","disabled","placeholder"])]),S("div",Oa,[S("div",Sa,B(a.$t("exclude")),1),p(K(te),{conv:M,mode:"multiple",style:{width:"100%"},options:f.value,value:o.value.not_tags,"onUpdate:value":i[2]||(i[2]=v=>o.value.not_tags=v),disabled:!f.value.length,placeholder:a.$t("selectExcludeTag")},null,8,["options","value","disabled","placeholder"])]),S("div",Ba,[S("div",Ta,B(a.$t("searchScope")),1),p(P,{"auto-size":"",value:o.value.folder_paths_str,"onUpdate:value":i[3]||(i[3]=v=>o.value.folder_paths_str=v),placeholder:a.$t("specifiedSearchFolder")},null,8,["value","placeholder"])])]),f.value.filter(v=>v.type!=="custom").length?z("",!0):(C(),T("p",Ka,B(a.$t("needGenerateIdx")),1)),S("div",Ea,[(C(!0),T(Y,null,ie($.value,([v,j])=>(C(),T("ul",{class:"tag-list",key:v},[S("h3",{class:"cat-name",onClick:_=>g.value.includes(v)?g.value.splice(g.value.indexOf(v),1):g.value.push(v)},[p(K(ca),{class:re(["arrow",{down:g.value.includes(v)}])},null,8,["class"]),G(" "+B(a.$t(v)),1)],8,Na),p(H,{ghost:"",activeKey:g.value,"onUpdate:activeKey":i[6]||(i[6]=_=>g.value=_)},{expandIcon:q(()=>[]),default:q(()=>[(C(),Q(I,{key:v},{default:q(()=>[(C(!0),T(Y,null,ie(j,(_,V)=>(C(),T("li",{key:_.id,class:re(["tag",{selected:m.value.has(_.id)}]),onClick:L=>y(_)},[m.value.has(_.id)?(C(),Q(K(Ge),{key:0})):z("",!0),G(" "+B(D(_))+" ",1),v==="custom"&&V!==0?(C(),T("span",{key:1,class:"remove",onClickCapture:ce(L=>u(_.id),["stop"])},[p(K(He))],40,Ma)):z("",!0)],10,Ra))),128)),v==="custom"?(C(),T("li",{key:0,class:"tag",onClick:i[5]||(i[5]=_=>R.value=!0)},[R.value?(C(),Q(w,{key:0,compact:""},{default:q(()=>[p(O,{value:d.value,"onUpdate:value":i[4]||(i[4]=_=>d.value=_),style:{width:"128px"},loading:c.value,"allow-clear":"",size:"small"},null,8,["value","loading"]),p(A,{size:"small",type:"primary",onClickCapture:ce(r,["stop"]),loading:c.value},{default:q(()=>[G(B(d.value?a.$t("submit"):a.$t("cancel")),1)]),_:1},8,["onClickCapture","loading"])]),_:1})):(C(),T(Y,{key:1},[p(K(Qe)),G(" "+B(a.$t("add")),1)],64))])):z("",!0)]),_:2},1024))]),_:2},1032,["activeKey"])]))),128))])],64)):z("",!0)])}}});const La=Ze(Da,[["__scopeId","data-v-3675d17e"]]);export{La as default};
+import{P as F,Z as _e,d as ae,bq as he,aY as be,$ as U,bH as Ce,l as xe,u as ge,ao as J,a0 as Z,h as x,c as p,a as W,bI as Ae,b as Ie,f as we,bJ as ke,a3 as se,bK as Pe,a2 as $e,i as Oe,b0 as Se,bL as Be,a5 as Te,a6 as Ke,a7 as Ee,ag as Ne,aT as Re,aR as Me,bM as De,aS as je,bN as Fe,k as Ue,bO as Ve,aq as Le,aw as qe,bP as oe,bQ as ze,o as C,y as T,C as z,z as Y,p as S,v as B,r as K,S as te,m as Q,n as q,x as G,A as ie,N as re,bR as Ge,q as ce,a1 as He,ap as Qe,al as de,ai as ne,R as Je,V as ue,bS as We,U as Xe,bT as Ye,X as Ze}from"./index-7014c21f.js";/* empty css *//* empty css */import{b as ve,c as ea,d as aa,e as ta,u as na}from"./db-a31c442b.js";var la=function(){return{prefixCls:String,activeKey:{type:[Array,Number,String]},defaultActiveKey:{type:[Array,Number,String]},accordion:{type:Boolean,default:void 0},destroyInactivePanel:{type:Boolean,default:void 0},bordered:{type:Boolean,default:void 0},expandIcon:Function,openAnimation:F.object,expandIconPosition:F.oneOf(_e("left","right")),collapsible:{type:String},ghost:{type:Boolean,default:void 0},onChange:Function,"onUpdate:activeKey":Function}},me=function(){return{openAnimation:F.object,prefixCls:String,header:F.any,headerClass:String,showArrow:{type:Boolean,default:void 0},isActive:{type:Boolean,default:void 0},destroyInactivePanel:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},accordion:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},expandIcon:Function,extra:F.any,panelKey:F.oneOfType([F.string,F.number]),collapsible:{type:String},role:String,onItemClick:{type:Function}}};function pe(l){var e=l;if(!Array.isArray(e)){var t=Ie(e);e=t==="number"||t==="string"?[e]:[]}return e.map(function(s){return String(s)})}const X=ae({compatConfig:{MODE:3},name:"ACollapse",inheritAttrs:!1,props:he(la(),{accordion:!1,destroyInactivePanel:!1,bordered:!0,openAnimation:be("ant-motion-collapse",!1),expandIconPosition:"left"}),slots:["expandIcon"],setup:function(e,t){var s=t.attrs,c=t.slots,n=t.emit,o=U(pe(Ce([e.activeKey,e.defaultActiveKey])));xe(function(){return e.activeKey},function(){o.value=pe(e.activeKey)},{deep:!0});var f=ge("collapse",e),h=f.prefixCls,$=f.direction,E=J(function(){var d=e.expandIconPosition;return d!==void 0?d:$.value==="rtl"?"right":"left"}),g=function(r){var u=e.expandIcon,m=u===void 0?c.expandIcon:u,y=m?m(r):p(Pe,{rotate:r.isActive?90:void 0},null);return p("div",null,[$e(Array.isArray(m)?y[0]:y)?se(y,{class:"".concat(h.value,"-arrow")},!1):y])},N=function(r){e.activeKey===void 0&&(o.value=r);var u=e.accordion?r[0]:r;n("update:activeKey",u),n("change",u)},k=function(r){var u=o.value;if(e.accordion)u=u[0]===r?[]:[r];else{u=Oe(u);var m=u.indexOf(r),y=m>-1;y?u.splice(m,1):u.push(r)}N(u)},D=function(r,u){var m,y,M;if(!ke(r)){var a=o.value,i=e.accordion,b=e.destroyInactivePanel,P=e.collapsible,O=e.openAnimation,A=String((m=r.key)!==null&&m!==void 0?m:u),w=r.props||{},I=w.header,H=I===void 0?(y=r.children)===null||y===void 0||(M=y.header)===null||M===void 0?void 0:M.call(y):I,v=w.headerClass,j=w.collapsible,_=w.disabled,V=!1;i?V=a[0]===A:V=a.indexOf(A)>-1;var L=j??P;(_||_==="")&&(L="disabled");var ye={key:A,panelKey:A,header:H,headerClass:v,isActive:V,prefixCls:h.value,destroyInactivePanel:b,openAnimation:O,accordion:i,onItemClick:L==="disabled"?null:k,expandIcon:g,collapsible:L};return se(r,ye)}},R=function(){var r;return we((r=c.default)===null||r===void 0?void 0:r.call(c)).map(D)};return function(){var d,r=e.accordion,u=e.bordered,m=e.ghost,y=Z((d={},x(d,h.value,!0),x(d,"".concat(h.value,"-borderless"),!u),x(d,"".concat(h.value,"-icon-position-").concat(E.value),!0),x(d,"".concat(h.value,"-rtl"),$.value==="rtl"),x(d,"".concat(h.value,"-ghost"),!!m),x(d,s.class,!!s.class),d));return p("div",W(W({class:y},Ae(s)),{},{style:s.style,role:r?"tablist":null}),[R()])}}}),sa=ae({compatConfig:{MODE:3},name:"PanelContent",props:me(),setup:function(e,t){var s=t.slots,c=U(!1);return Se(function(){(e.isActive||e.forceRender)&&(c.value=!0)}),function(){var n,o;if(!c.value)return null;var f=e.prefixCls,h=e.isActive,$=e.role;return p("div",{ref:U,class:Z("".concat(f,"-content"),(n={},x(n,"".concat(f,"-content-active"),h),x(n,"".concat(f,"-content-inactive"),!h),n)),role:$},[p("div",{class:"".concat(f,"-content-box")},[(o=s.default)===null||o===void 0?void 0:o.call(s)])])}}}),ee=ae({compatConfig:{MODE:3},name:"ACollapsePanel",inheritAttrs:!1,props:he(me(),{showArrow:!0,isActive:!1,onItemClick:function(){},headerClass:"",forceRender:!1}),slots:["expandIcon","extra","header"],setup:function(e,t){var s=t.slots,c=t.emit,n=t.attrs;Be(e.disabled===void 0,"Collapse.Panel",'`disabled` is deprecated. Please use `collapsible="disabled"` instead.');var o=ge("collapse",e),f=o.prefixCls,h=function(){c("itemClick",e.panelKey)},$=function(g){(g.key==="Enter"||g.keyCode===13||g.which===13)&&h()};return function(){var E,g,N,k,D=e.header,R=D===void 0?(E=s.header)===null||E===void 0?void 0:E.call(s):D,d=e.headerClass,r=e.isActive,u=e.showArrow,m=e.destroyInactivePanel,y=e.accordion,M=e.forceRender,a=e.openAnimation,i=e.expandIcon,b=i===void 0?s.expandIcon:i,P=e.extra,O=P===void 0?(g=s.extra)===null||g===void 0?void 0:g.call(s):P,A=e.collapsible,w=A==="disabled",I=f.value,H=Z("".concat(I,"-header"),(N={},x(N,d,d),x(N,"".concat(I,"-header-collapsible-only"),A==="header"),N)),v=Z((k={},x(k,"".concat(I,"-item"),!0),x(k,"".concat(I,"-item-active"),r),x(k,"".concat(I,"-item-disabled"),w),x(k,"".concat(I,"-no-arrow"),!u),x(k,"".concat(n.class),!!n.class),k)),j=p("i",{class:"arrow"},null);u&&typeof b=="function"&&(j=b(e));var _=Te(p(sa,{prefixCls:I,isActive:r,forceRender:M,role:y?"tabpanel":null},{default:s.default}),[[Ke,r]]),V=W({appear:!1,css:!1},a);return p("div",W(W({},n),{},{class:v}),[p("div",{class:H,onClick:function(){return A!=="header"&&h()},role:y?"tab":"button",tabindex:w?-1:0,"aria-expanded":r,onKeypress:$},[u&&j,A==="header"?p("span",{onClick:h,class:"".concat(I,"-header-text")},[R]):R,O&&p("div",{class:"".concat(I,"-extra")},[O])]),p(Ee,V,{default:function(){return[!m||r?_:null]}})])}}});X.Panel=ee;X.install=function(l){return l.component(X.name,X),l.component(ee.name,ee),l};var oa={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z"}}]},name:"arrow-right",theme:"outlined"};const ia=oa;function fe(l){for(var e=1;e!s.isIdle),n=U(),o=U({and_tags:[],or_tags:[],not_tags:[],folder_paths_str:e.searchScope}),f=J(()=>n.value?n.value.tags.slice().sort((a,i)=>i.count-a.count):[]),h=["custom","Model","lora","lyco","pos","size","Postprocess upscaler","Postprocess upscale by","Sampler"].reduce((a,i,b)=>(a[i]=b,a),{}),$=J(()=>Object.entries(Aa(f.value,a=>a.type)).sort((a,i)=>h[a[0]]-h[i[0]])),E=Le(),g=U($.value.map(a=>a[0]));qe(async()=>{n.value=await ve(),g.value=$.value.map(a=>a[0]),n.value.img_count&&n.value.expired&&await N(),e.searchScope&&k()}),oe("searchIndexExpired",()=>n.value&&(n.value.expired=!0));const N=ze(()=>s.pushAction(async()=>(await na(),n.value=await ve(),g.value=$.value.map(a=>a[0]),n.value)).res),k=()=>{t.openTagSearchMatchedImageGridInRight(e.tabIdx,E,o.value)};oe("returnToIIB",async()=>{const a=await s.pushAction(ea).res;n.value.expired=a.expired});const D=(a,i=!1)=>(i?`[${a.type}] `:"")+(a.display_name?`${a.display_name} : ${a.name}`:a.name),R=U(!1),d=U(""),r=async()=>{var i,b,P;if(!d.value){R.value=!1;return}const a=await s.pushAction(()=>aa({tag_name:d.value})).res;a.type!=="custom"&&de.error(ne("existInOtherType")),(i=n.value)!=null&&i.tags.find(O=>O.id===a.id)?de.error(ne("alreadyExists")):((b=n.value)==null||b.tags.push(a),(P=t.conf)==null||P.all_custom_tags.push(a)),d.value="",R.value=!1},u=a=>{Je.confirm({title:ne("confirmDelete"),async onOk(){var b,P,O,A;await ta({tag_id:a});const i=((b=n.value)==null?void 0:b.tags.findIndex(w=>w.id===a))??-1;(P=n.value)==null||P.tags.splice(i,1),(A=t.conf)==null||A.all_custom_tags.splice((O=t.conf)==null?void 0:O.all_custom_tags.findIndex(w=>w.id===a),1)}})},m=J(()=>new Set([o.value.and_tags,o.value.or_tags,o.value.not_tags].flat())),y=a=>{m.value.has(a.id)?(o.value.and_tags=o.value.and_tags.filter(i=>i!==a.id),o.value.or_tags=o.value.or_tags.filter(i=>i!==a.id),o.value.not_tags=o.value.not_tags.filter(i=>i!==a.id)):o.value.and_tags.push(a.id)},M={value:a=>a.id,text:D,optionText:a=>D(a,!0)};return(a,i)=>{const b=ue,P=We,O=Xe,A=ue,w=Ye,I=ee,H=X;return C(),T("div",Ia,[z("",!0),n.value?(C(),T(Y,{key:1},[S("div",null,[S("div",wa,[S("div",ka,B(a.$t("exactMatch")),1),p(K(te),{conv:M,mode:"multiple",style:{width:"100%"},options:f.value,value:o.value.and_tags,"onUpdate:value":i[0]||(i[0]=v=>o.value.and_tags=v),disabled:!f.value.length,placeholder:a.$t("selectExactMatchTag")},null,8,["options","value","disabled","placeholder"]),n.value.expired||!n.value.img_count?(C(),Q(b,{key:0,onClick:K(N),loading:!K(s).isIdle,type:"primary"},{default:q(()=>[G(B(n.value.img_count===0?a.$t("generateIndexHint"):a.$t("UpdateIndex")),1)]),_:1},8,["onClick","loading"])):(C(),Q(b,{key:1,type:"primary",onClick:k,loading:!K(s).isIdle},{default:q(()=>[G(B(a.$t("search")),1)]),_:1},8,["loading"]))]),S("div",Pa,[S("div",$a,B(a.$t("anyMatch")),1),p(K(te),{conv:M,mode:"multiple",style:{width:"100%"},options:f.value,value:o.value.or_tags,"onUpdate:value":i[1]||(i[1]=v=>o.value.or_tags=v),disabled:!f.value.length,placeholder:a.$t("selectAnyMatchTag")},null,8,["options","value","disabled","placeholder"])]),S("div",Oa,[S("div",Sa,B(a.$t("exclude")),1),p(K(te),{conv:M,mode:"multiple",style:{width:"100%"},options:f.value,value:o.value.not_tags,"onUpdate:value":i[2]||(i[2]=v=>o.value.not_tags=v),disabled:!f.value.length,placeholder:a.$t("selectExcludeTag")},null,8,["options","value","disabled","placeholder"])]),S("div",Ba,[S("div",Ta,B(a.$t("searchScope")),1),p(P,{"auto-size":{maxRows:8},value:o.value.folder_paths_str,"onUpdate:value":i[3]||(i[3]=v=>o.value.folder_paths_str=v),placeholder:a.$t("specifiedSearchFolder")},null,8,["value","placeholder"])])]),f.value.filter(v=>v.type!=="custom").length?z("",!0):(C(),T("p",Ka,B(a.$t("needGenerateIdx")),1)),S("div",Ea,[(C(!0),T(Y,null,ie($.value,([v,j])=>(C(),T("ul",{class:"tag-list",key:v},[S("h3",{class:"cat-name",onClick:_=>g.value.includes(v)?g.value.splice(g.value.indexOf(v),1):g.value.push(v)},[p(K(ca),{class:re(["arrow",{down:g.value.includes(v)}])},null,8,["class"]),G(" "+B(a.$t(v)),1)],8,Na),p(H,{ghost:"",activeKey:g.value,"onUpdate:activeKey":i[6]||(i[6]=_=>g.value=_)},{expandIcon:q(()=>[]),default:q(()=>[(C(),Q(I,{key:v},{default:q(()=>[(C(!0),T(Y,null,ie(j,(_,V)=>(C(),T("li",{key:_.id,class:re(["tag",{selected:m.value.has(_.id)}]),onClick:L=>y(_)},[m.value.has(_.id)?(C(),Q(K(Ge),{key:0})):z("",!0),G(" "+B(D(_))+" ",1),v==="custom"&&V!==0?(C(),T("span",{key:1,class:"remove",onClickCapture:ce(L=>u(_.id),["stop"])},[p(K(He))],40,Ma)):z("",!0)],10,Ra))),128)),v==="custom"?(C(),T("li",{key:0,class:"tag",onClick:i[5]||(i[5]=_=>R.value=!0)},[R.value?(C(),Q(w,{key:0,compact:""},{default:q(()=>[p(O,{value:d.value,"onUpdate:value":i[4]||(i[4]=_=>d.value=_),style:{width:"128px"},loading:c.value,"allow-clear":"",size:"small"},null,8,["value","loading"]),p(A,{size:"small",type:"primary",onClickCapture:ce(r,["stop"]),loading:c.value},{default:q(()=>[G(B(d.value?a.$t("submit"):a.$t("cancel")),1)]),_:1},8,["onClickCapture","loading"])]),_:1})):(C(),T(Y,{key:1},[p(K(Qe)),G(" "+B(a.$t("add")),1)],64))])):z("",!0)]),_:2},1024))]),_:2},1032,["activeKey"])]))),128))])],64)):z("",!0)])}}});const La=Ze(Da,[["__scopeId","data-v-5d427604"]]);export{La as default};
diff --git a/vue/dist/assets/batchDownload-8ece346d.js b/vue/dist/assets/batchDownload-c553290f.js
similarity index 90%
rename from vue/dist/assets/batchDownload-8ece346d.js
rename to vue/dist/assets/batchDownload-c553290f.js
index 48f8833..954bccf 100644
--- a/vue/dist/assets/batchDownload-8ece346d.js
+++ b/vue/dist/assets/batchDownload-c553290f.js
@@ -1 +1 @@
-import{d as v,c3 as C,bO as I,o as i,y as _,p as f,c,n as r,x as h,v as d,r as e,m as F,L as x,c4 as z,c5 as B,V as $,X as R}from"./index-dda7184d.js";import{u as S,b as V,k as E,F as A,g as L}from"./FileItem-ba4545b5.js";import"./functionalCallableComp-9395a4a4.js";import"./db-3650b2a5.js";const T={class:"actions-panel actions"},N={key:0,class:"file-list"},U={class:"hint"},H=v({__name:"batchDownload",props:{tabIdx:{},paneIdx:{},id:{}},setup(O){const{stackViewEl:w}=S().toRefs(),{itemSize:p,gridItems:k,cellWidth:b}=V(),l=E(),{selectdFiles:n}=C(l),u=I(),y=async t=>{const s=z(t);s&&l.addFiles(s.nodes)},D=async()=>{u.pushAction(async()=>{const t=await B.value.post("/zip",{paths:n.value.map(o=>o.fullpath)},{responseType:"blob"}),s=window.URL.createObjectURL(new Blob([t.data])),a=document.createElement("a");a.href=s,a.setAttribute("download",`iib_${new Date().toLocaleString()}.zip`),document.body.appendChild(a),a.click()})},g=t=>{n.value.splice(t,1)};return(t,s)=>{const a=$;return i(),_("div",{class:"container",ref_key:"stackViewEl",ref:w,onDrop:y},[f("div",T,[c(a,{onClick:s[0]||(s[0]=o=>e(l).selectdFiles=[])},{default:r(()=>[h(d(t.$t("clear")),1)]),_:1}),c(a,{onClick:D,type:"primary",loading:!e(u).isIdle},{default:r(()=>[h(d(t.$t("zipDownload")),1)]),_:1},8,["loading"])]),e(n).length?(i(),F(e(L),{key:1,ref:"scroller",class:"file-list",items:e(n).slice(),"item-size":e(p).first,"key-field":"fullpath","item-secondary-size":e(p).second,gridItems:e(k)},{default:r(({item:o,index:m})=>[c(A,{idx:m,file:o,"cell-width":e(b),"enable-close-icon":"",onCloseIconClick:j=>g(m),"full-screen-preview-image-url":e(x)(o),"enable-right-click-menu":!1},null,8,["idx","file","cell-width","onCloseIconClick","full-screen-preview-image-url"])]),_:1},8,["items","item-size","item-secondary-size","gridItems"])):(i(),_("div",N,[f("p",U,d(t.$t("batchDownloaDDragAndDropHint")),1)]))],544)}}});const G=R(H,[["__scopeId","data-v-aab31da2"]]);export{G as default};
+import{d as v,c3 as C,bO as I,o as i,y as _,p as f,c,n as r,x as h,v as d,r as e,m as F,L as x,c4 as z,c5 as B,V as $,X as R}from"./index-7014c21f.js";import{u as S,b as V,k as E,F as A,g as L}from"./FileItem-3525329e.js";import"./functionalCallableComp-c44a8b16.js";import"./db-a31c442b.js";const T={class:"actions-panel actions"},N={key:0,class:"file-list"},U={class:"hint"},H=v({__name:"batchDownload",props:{tabIdx:{},paneIdx:{},id:{}},setup(O){const{stackViewEl:w}=S().toRefs(),{itemSize:p,gridItems:k,cellWidth:b}=V(),l=E(),{selectdFiles:n}=C(l),u=I(),y=async t=>{const s=z(t);s&&l.addFiles(s.nodes)},D=async()=>{u.pushAction(async()=>{const t=await B.value.post("/zip",{paths:n.value.map(o=>o.fullpath)},{responseType:"blob"}),s=window.URL.createObjectURL(new Blob([t.data])),a=document.createElement("a");a.href=s,a.setAttribute("download",`iib_${new Date().toLocaleString()}.zip`),document.body.appendChild(a),a.click()})},g=t=>{n.value.splice(t,1)};return(t,s)=>{const a=$;return i(),_("div",{class:"container",ref_key:"stackViewEl",ref:w,onDrop:y},[f("div",T,[c(a,{onClick:s[0]||(s[0]=o=>e(l).selectdFiles=[])},{default:r(()=>[h(d(t.$t("clear")),1)]),_:1}),c(a,{onClick:D,type:"primary",loading:!e(u).isIdle},{default:r(()=>[h(d(t.$t("zipDownload")),1)]),_:1},8,["loading"])]),e(n).length?(i(),F(e(L),{key:1,ref:"scroller",class:"file-list",items:e(n).slice(),"item-size":e(p).first,"key-field":"fullpath","item-secondary-size":e(p).second,gridItems:e(k)},{default:r(({item:o,index:m})=>[c(A,{idx:m,file:o,"cell-width":e(b),"enable-close-icon":"",onCloseIconClick:j=>g(m),"full-screen-preview-image-url":e(x)(o),"enable-right-click-menu":!1},null,8,["idx","file","cell-width","onCloseIconClick","full-screen-preview-image-url"])]),_:1},8,["items","item-size","item-secondary-size","gridItems"])):(i(),_("div",N,[f("p",U,d(t.$t("batchDownloaDDragAndDropHint")),1)]))],544)}}});const G=R(H,[["__scopeId","data-v-aab31da2"]]);export{G as default};
diff --git a/vue/dist/assets/db-3650b2a5.js b/vue/dist/assets/db-3650b2a5.js
deleted file mode 100644
index b0492a8..0000000
--- a/vue/dist/assets/db-3650b2a5.js
+++ /dev/null
@@ -1 +0,0 @@
-import{c5 as t}from"./index-dda7184d.js";const c=async()=>(await t.value.get("/db/basic_info")).data,d=async()=>(await t.value.get("/db/expired_dirs")).data,p=async()=>{await t.value.post("/db/update_image_data",{},{timeout:1/0})},g=async(a,s)=>(await t.value.post("/db/match_images_by_tags",{...a,folder_paths:(a.folder_paths_str??"").split(/,|\n/).map(e=>e.trim()).filter(e=>e),cursor:s})).data,u=async a=>(await t.value.post("/db/add_custom_tag",a)).data,i=async a=>(await t.value.post("/db/toggle_custom_tag_to_img",a)).data,m=async a=>{await t.value.post("/db/remove_custom_tag",a)},_=async(a,s,r)=>(await t.value.get("/db/search_by_substr",{params:{substr:a,cursor:s,regexp:r}})).data,o="/db/extra_paths",b=async a=>{await t.value.post(o,a)},l=async a=>{await t.value.delete(o,{data:a})},y=async a=>(await t.value.post("/db/get_image_tags",{paths:a})).data,v=()=>t.value.post("/db/rebuild_index"),h=a=>t.value.post("/db/batch_update_image_tag",a);export{b as a,c as b,d as c,u as d,m as e,_ as f,g,y as h,h as i,v as j,l as r,i as t,p as u};
diff --git a/vue/dist/assets/db-a31c442b.js b/vue/dist/assets/db-a31c442b.js
new file mode 100644
index 0000000..055322a
--- /dev/null
+++ b/vue/dist/assets/db-a31c442b.js
@@ -0,0 +1 @@
+import{c5 as t}from"./index-7014c21f.js";const c=async()=>(await t.value.get("/db/basic_info")).data,d=async()=>(await t.value.get("/db/expired_dirs")).data,p=async()=>{await t.value.post("/db/update_image_data",{},{timeout:1/0})},u=async(a,s)=>(await t.value.post("/db/match_images_by_tags",{...a,folder_paths:(a.folder_paths_str??"").split(/,|\n/).map(e=>e.trim()).filter(e=>e),cursor:s})).data,g=async a=>(await t.value.post("/db/add_custom_tag",a)).data,i=async a=>(await t.value.post("/db/toggle_custom_tag_to_img",a)).data,_=async a=>{await t.value.post("/db/remove_custom_tag",a)},m=async a=>(await t.value.post("/db/search_by_substr",a)).data,r="/db/extra_paths",b=async a=>{await t.value.post(r,a)},l=async a=>{await t.value.delete(r,{data:a})},y=async a=>(await t.value.post("/db/get_image_tags",{paths:a})).data,v=()=>t.value.post("/db/rebuild_index"),h=a=>t.value.post("/db/batch_update_image_tag",a);export{b as a,c as b,d as c,g as d,_ as e,m as f,u as g,y as h,h as i,v as j,l as r,i as t,p as u};
diff --git a/vue/dist/assets/emptyStartup-63002399.js b/vue/dist/assets/emptyStartup-720d5aa9.js
similarity index 98%
rename from vue/dist/assets/emptyStartup-63002399.js
rename to vue/dist/assets/emptyStartup-720d5aa9.js
index 9c2ebe2..62ad8da 100644
--- a/vue/dist/assets/emptyStartup-63002399.js
+++ b/vue/dist/assets/emptyStartup-720d5aa9.js
@@ -1 +1 @@
-import{Y as ge,Z as _e,d as ue,u as be,$ as M,g as N,a0 as ye,h as x,c as m,a1 as ke,a2 as we,a3 as Ce,a4 as Oe,a5 as xe,a6 as $e,a as te,a7 as Ie,P as I,a8 as Se,a9 as Pe,aa as ze,ab as Ae,ac as Ee,ad as Me,ae as De,af as Te,ag as de,ah as Fe,R as Q,ai as f,aj as Le,U as Ne,ak as He,al as X,am as V,k as je,an as Be,ao as ne,o as p,y as h,p as n,v as i,r as c,C as b,m as H,n as S,q as w,ap as ae,x as E,z as j,A as B,aq as se,ar as Ve,as as Re,V as qe,at as Ge,au as Ue,X as We}from"./index-dda7184d.js";import{a as Qe,r as Xe}from"./db-3650b2a5.js";var Ye={success:Se,info:Pe,error:ze,warning:Ae},Ze={success:Ee,info:Me,error:De,warning:Te},Je=_e("success","info","warning","error"),Ke=function(){return{type:I.oneOf(Je),closable:{type:Boolean,default:void 0},closeText:I.any,message:I.any,description:I.any,afterClose:Function,showIcon:{type:Boolean,default:void 0},prefixCls:String,banner:{type:Boolean,default:void 0},icon:I.any,closeIcon:I.any,onClose:Function}},et=ue({compatConfig:{MODE:3},name:"AAlert",inheritAttrs:!1,props:Ke(),setup:function(t,e){var l=e.slots,r=e.emit,_=e.attrs,P=e.expose,D=be("alert",t),q=D.prefixCls,G=D.direction,C=M(!1),a=M(!1),u=M(),$=function(d){d.preventDefault();var s=u.value;s.style.height="".concat(s.offsetHeight,"px"),s.style.height="".concat(s.offsetHeight,"px"),C.value=!0,r("close",d)},g=function(){var d;C.value=!1,a.value=!0,(d=t.afterClose)===null||d===void 0||d.call(t)};P({animationEnd:g});var O=M({});return function(){var y,d,s=t.banner,k=t.closeIcon,J=k===void 0?(y=l.closeIcon)===null||y===void 0?void 0:y.call(l):k,U=t.closable,z=t.type,A=t.showIcon,W=N(l,t,"closeText"),T=N(l,t,"description"),K=N(l,t,"message"),F=N(l,t,"icon");A=s&&A===void 0?!0:A,z=s&&z===void 0?"warning":z||"info";var pe=(T?Ze:Ye)[z]||null;W&&(U=!0);var v=q.value,me=ye(v,(d={},x(d,"".concat(v,"-").concat(z),!0),x(d,"".concat(v,"-closing"),C.value),x(d,"".concat(v,"-with-description"),!!T),x(d,"".concat(v,"-no-icon"),!A),x(d,"".concat(v,"-banner"),!!s),x(d,"".concat(v,"-closable"),U),x(d,"".concat(v,"-rtl"),G.value==="rtl"),d)),ve=U?m("button",{type:"button",onClick:$,class:"".concat(v,"-close-icon"),tabindex:0},[W?m("span",{class:"".concat(v,"-close-text")},[W]):J===void 0?m(ke,null,null):J]):null,he=F&&(we(F)?Ce(F,{class:"".concat(v,"-icon")}):m("span",{class:"".concat(v,"-icon")},[F]))||m(pe,{class:"".concat(v,"-icon")},null),fe=Oe("".concat(v,"-motion"),{appear:!1,css:!0,onAfterLeave:g,onBeforeLeave:function(L){L.style.maxHeight="".concat(L.offsetHeight,"px")},onLeave:function(L){L.style.maxHeight="0px"}});return a.value?null:m(Ie,fe,{default:function(){return[xe(m("div",te(te({role:"alert"},_),{},{style:[_.style,O.value],class:[_.class,me],"data-show":!C.value,ref:u}),[A?he:null,m("div",{class:"".concat(v,"-content")},[K?m("div",{class:"".concat(v,"-message")},[K]):null,T?m("div",{class:"".concat(v,"-description")},[T]):null]),ve]),[[$e,!C.value]])]}})}}});const tt=ge(et);var nt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 00-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"file-done",theme:"outlined"};const at=nt;function oe(o){for(var t=1;t{let t;if({}.TAURI_ARCH){const e=await Fe({directory:!0});if(typeof e=="string")t=e;else return}else t=await new Promise(e=>{const l=M("");Q.confirm({title:f("inputTargetFolderPath"),content:()=>Le(Ne,{value:l.value,"onUpdate:value":r=>l.value=r}),async onOk(){const r=l.value;(await He([r]))[r]?e(l.value):X.error(f("pathDoesNotExist"))}})});Q.confirm({content:f("confirmToAddToExtraPath"),async onOk(){await Qe({type:o,path:t}),X.success(f("addCompleted")),V.emit("searchIndexExpired"),V.emit("updateGlobalSetting")}})},re=(o,t)=>{Q.confirm({content:f("confirmDelete"),closable:!0,async onOk(){await Xe({type:t,path:o}),X.success(f("removeCompleted")),V.emit("searchIndexExpired"),V.emit("updateGlobalSetting")}})},R=o=>(Ge("data-v-b64a1c39"),o=o(),Ue(),o),rt={class:"container"},ut={class:"header"},dt={key:0,style:{"margin-left":"16px","font-size":"1.5em"}},pt=R(()=>n("div",{"flex-placeholder":""},null,-1)),mt=R(()=>n("a",{href:"https://github.com/zanllp/sd-webui-infinite-image-browsing",target:"_blank",class:"last-record"},"Github",-1)),vt={href:"https://github.com/zanllp/sd-webui-infinite-image-browsing/blob/main/.env.example",target:"_blank",class:"last-record"},ht={href:"https://github.com/zanllp/sd-webui-infinite-image-browsing/wiki/Change-log",target:"_blank",class:"last-record"},ft={href:"https://github.com/zanllp/sd-webui-infinite-image-browsing/issues/90",target:"_blank",class:"last-record"},gt={class:"access-mode-message"},_t=R(()=>n("div",{"flex-placeholder":""},null,-1)),bt={class:"access-mode-message"},yt=R(()=>n("div",{"flex-placeholder":""},null,-1)),kt={class:"content"},wt={class:"feature-item"},Ct={class:"text line-clamp-1"},Ot=["onClick"],xt={class:"text line-clamp-2"},$t={key:0,class:"feature-item"},It={class:"text line-clamp-1"},St=["onClick"],Pt={class:"text line-clamp-2"},zt={class:"feature-item"},At=["onClick"],Et={class:"text line-clamp-1"},Mt={class:"text line-clamp-1"},Dt={class:"text line-clamp-1"},Tt={class:"text line-clamp-1"},Ft={key:1,class:"feature-item recent"},Lt={class:"title"},Nt=["onClick"],Ht={class:"text line-clamp-1"},jt=ue({__name:"emptyStartup",props:{tabIdx:{},paneIdx:{}},setup(o){const t=o,e=je(),l=Be(),r={local:f("local"),"tag-search":f("imgSearch"),"fuzzy-search":f("fuzzy-search"),"global-setting":f("globalSettings"),"batch-download":f("batchDownload")+" / "+f("archive")},_=(a,u,$=!1)=>{let g;switch(a){case"tag-search-matched-image-grid":case"img-sli":return;case"global-setting":case"tag-search":case"batch-download":case"fuzzy-search":case"empty":g={type:a,name:r[a],key:Date.now()+se()};break;case"local":g={type:a,name:r[a],key:Date.now()+se(),path:u,walkModePath:$?u:void 0}}const O=e.tabList[t.tabIdx];O.panes.splice(t.paneIdx,1,g),O.key=g.key},P=ne(()=>{var a;return(a=e.tabListHistoryRecord)==null?void 0:a[1]}),D=ne(()=>e.quickMovePaths.filter(({key:a,type:u})=>a==="outdir_txt2img_samples"||a==="outdir_img2img_samples"||a==="outdir_txt2img_grids"||a==="outdir_img2img_grids"||u==="walk")),q=window.parent!==window,G=()=>window.parent.open("/infinite_image_browsing"+(window.parent.location.href.includes("theme=dark")?"?__theme=dark":"")),C=()=>{Ve(P.value),e.tabList=Re(P.value.tabs)};return(a,u)=>{var O,y,d;const $=tt,g=qe;return p(),h("div",rt,[n("div",ut,[n("h1",null,i(a.$t("welcome")),1),(O=c(e).conf)!=null&&O.enable_access_control&&c(e).dontShowAgain?(p(),h("div",dt,[m(c(ie),{title:"Access Control mode",style:{"vertical-align":"text-bottom"}})])):b("",!0),pt,mt,n("a",vt,i(a.$t("privacyAndSecurity")),1),n("a",ht,i(a.$t("changlog")),1),n("a",ft,i(a.$t("faq")),1)]),(y=c(e).conf)!=null&&y.enable_access_control&&!c(e).dontShowAgain?(p(),H($,{key:0,"show-icon":""},{message:S(()=>[n("div",gt,[n("div",null,i(a.$t("accessControlModeTips")),1),_t,n("a",{onClick:u[0]||(u[0]=w(s=>c(e).dontShowAgain=!0,["prevent"]))},i(a.$t("dontShowAgain")),1)])]),icon:S(()=>[m(c(ie))]),_:1})):b("",!0),c(e).dontShowAgainNewImgOpts?b("",!0):(p(),H($,{key:1,"show-icon":""},{message:S(()=>[n("div",bt,[n("div",null,i(a.$t("majorUpdateCustomCellSizeTips")),1),yt,n("a",{onClick:u[1]||(u[1]=w(s=>c(e).dontShowAgainNewImgOpts=!0,["prevent"]))},i(a.$t("dontShowAgain")),1)])]),_:1})),n("div",kt,[n("div",wt,[n("h2",null,i(a.$t("walkMode")),1),n("ul",null,[n("li",{onClick:u[2]||(u[2]=s=>c(ce)("walk")),class:"item",style:{"text-align":""}},[n("span",Ct,[m(c(ae)),E(" "+i(a.$t("add")),1)])]),(p(!0),h(j,null,B(D.value,s=>(p(),h("li",{key:s.key,class:"item rem",onClick:w(k=>_("local",s.dir,!0),["prevent"])},[n("span",xt,i(s.zh),1),s.can_delete?(p(),H(g,{key:0,type:"link",onClick:w(k=>c(re)(s.dir,"walk"),["stop"])},{default:S(()=>[E(i(a.$t("remove")),1)]),_:2},1032,["onClick"])):b("",!0)],8,Ot))),128))])]),c(e).quickMovePaths.length?(p(),h("div",$t,[n("h2",null,i(a.$t("launchFromQuickMove")),1),n("ul",null,[n("li",{onClick:u[3]||(u[3]=s=>c(ce)("scanned")),class:"item",style:{"text-align":""}},[n("span",It,[m(c(ae)),E(" "+i(a.$t("add")),1)])]),(p(!0),h(j,null,B(c(e).quickMovePaths.filter(s=>s.type!=="walk"),s=>(p(),h("li",{key:s.key,class:"item rem",onClick:w(k=>_("local",s.dir),["prevent"])},[n("span",Pt,i(s.zh),1),s.can_delete&&s.type=="scanned"?(p(),H(g,{key:0,type:"link",onClick:w(k=>c(re)(s.dir,"scanned"),["stop"])},{default:S(()=>[E(i(a.$t("remove")),1)]),_:2},1032,["onClick"])):b("",!0)],8,St))),128))])])):b("",!0),n("div",zt,[n("h2",null,i(a.$t("launch")),1),n("ul",null,[(p(!0),h(j,null,B(Object.keys(r),s=>(p(),h("li",{key:s,class:"item",onClick:w(k=>_(s),["prevent"])},[n("span",Et,i(r[s]),1)],8,At))),128)),n("li",{class:"item",onClick:u[4]||(u[4]=s=>c(l).opened=!0)},[n("span",Mt,i(a.$t("imgCompare")),1)]),q?(p(),h("li",{key:0,class:"item",onClick:G},[n("span",Dt,i(a.$t("openInNewWindow")),1)])):b("",!0),(d=P.value)!=null&&d.tabs.length?(p(),h("li",{key:1,class:"item",onClick:C},[n("span",Tt,i(a.$t("restoreLastRecord")),1)])):b("",!0)])]),c(e).recent.length?(p(),h("div",Ft,[n("div",Lt,[n("h2",null,i(a.$t("recent")),1),m(g,{onClick:u[5]||(u[5]=s=>c(e).recent=[]),type:"link"},{default:S(()=>[E(i(a.$t("clear")),1)]),_:1})]),n("ul",null,[(p(!0),h(j,null,B(c(e).recent,s=>(p(),h("li",{key:s.key,class:"item",onClick:w(k=>_("local",s.path),["prevent"])},[m(c(ot),{class:"icon"}),n("span",Ht,i(s.path),1)],8,Nt))),128))])])):b("",!0)])])}}});const Rt=We(jt,[["__scopeId","data-v-b64a1c39"]]);export{Rt as default};
+import{Y as ge,Z as _e,d as ue,u as be,$ as M,g as N,a0 as ye,h as x,c as m,a1 as ke,a2 as we,a3 as Ce,a4 as Oe,a5 as xe,a6 as $e,a as te,a7 as Ie,P as I,a8 as Se,a9 as Pe,aa as ze,ab as Ae,ac as Ee,ad as Me,ae as De,af as Te,ag as de,ah as Fe,R as Q,ai as f,aj as Le,U as Ne,ak as He,al as X,am as V,k as je,an as Be,ao as ne,o as p,y as h,p as n,v as i,r as c,C as b,m as H,n as S,q as w,ap as ae,x as E,z as j,A as B,aq as se,ar as Ve,as as Re,V as qe,at as Ge,au as Ue,X as We}from"./index-7014c21f.js";import{a as Qe,r as Xe}from"./db-a31c442b.js";var Ye={success:Se,info:Pe,error:ze,warning:Ae},Ze={success:Ee,info:Me,error:De,warning:Te},Je=_e("success","info","warning","error"),Ke=function(){return{type:I.oneOf(Je),closable:{type:Boolean,default:void 0},closeText:I.any,message:I.any,description:I.any,afterClose:Function,showIcon:{type:Boolean,default:void 0},prefixCls:String,banner:{type:Boolean,default:void 0},icon:I.any,closeIcon:I.any,onClose:Function}},et=ue({compatConfig:{MODE:3},name:"AAlert",inheritAttrs:!1,props:Ke(),setup:function(t,e){var l=e.slots,r=e.emit,_=e.attrs,P=e.expose,D=be("alert",t),q=D.prefixCls,G=D.direction,C=M(!1),a=M(!1),u=M(),$=function(d){d.preventDefault();var s=u.value;s.style.height="".concat(s.offsetHeight,"px"),s.style.height="".concat(s.offsetHeight,"px"),C.value=!0,r("close",d)},g=function(){var d;C.value=!1,a.value=!0,(d=t.afterClose)===null||d===void 0||d.call(t)};P({animationEnd:g});var O=M({});return function(){var y,d,s=t.banner,k=t.closeIcon,J=k===void 0?(y=l.closeIcon)===null||y===void 0?void 0:y.call(l):k,U=t.closable,z=t.type,A=t.showIcon,W=N(l,t,"closeText"),T=N(l,t,"description"),K=N(l,t,"message"),F=N(l,t,"icon");A=s&&A===void 0?!0:A,z=s&&z===void 0?"warning":z||"info";var pe=(T?Ze:Ye)[z]||null;W&&(U=!0);var v=q.value,me=ye(v,(d={},x(d,"".concat(v,"-").concat(z),!0),x(d,"".concat(v,"-closing"),C.value),x(d,"".concat(v,"-with-description"),!!T),x(d,"".concat(v,"-no-icon"),!A),x(d,"".concat(v,"-banner"),!!s),x(d,"".concat(v,"-closable"),U),x(d,"".concat(v,"-rtl"),G.value==="rtl"),d)),ve=U?m("button",{type:"button",onClick:$,class:"".concat(v,"-close-icon"),tabindex:0},[W?m("span",{class:"".concat(v,"-close-text")},[W]):J===void 0?m(ke,null,null):J]):null,he=F&&(we(F)?Ce(F,{class:"".concat(v,"-icon")}):m("span",{class:"".concat(v,"-icon")},[F]))||m(pe,{class:"".concat(v,"-icon")},null),fe=Oe("".concat(v,"-motion"),{appear:!1,css:!0,onAfterLeave:g,onBeforeLeave:function(L){L.style.maxHeight="".concat(L.offsetHeight,"px")},onLeave:function(L){L.style.maxHeight="0px"}});return a.value?null:m(Ie,fe,{default:function(){return[xe(m("div",te(te({role:"alert"},_),{},{style:[_.style,O.value],class:[_.class,me],"data-show":!C.value,ref:u}),[A?he:null,m("div",{class:"".concat(v,"-content")},[K?m("div",{class:"".concat(v,"-message")},[K]):null,T?m("div",{class:"".concat(v,"-description")},[T]):null]),ve]),[[$e,!C.value]])]}})}}});const tt=ge(et);var nt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 00-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"file-done",theme:"outlined"};const at=nt;function oe(o){for(var t=1;t{let t;if({}.TAURI_ARCH){const e=await Fe({directory:!0});if(typeof e=="string")t=e;else return}else t=await new Promise(e=>{const l=M("");Q.confirm({title:f("inputTargetFolderPath"),content:()=>Le(Ne,{value:l.value,"onUpdate:value":r=>l.value=r}),async onOk(){const r=l.value;(await He([r]))[r]?e(l.value):X.error(f("pathDoesNotExist"))}})});Q.confirm({content:f("confirmToAddToExtraPath"),async onOk(){await Qe({type:o,path:t}),X.success(f("addCompleted")),V.emit("searchIndexExpired"),V.emit("updateGlobalSetting")}})},re=(o,t)=>{Q.confirm({content:f("confirmDelete"),closable:!0,async onOk(){await Xe({type:t,path:o}),X.success(f("removeCompleted")),V.emit("searchIndexExpired"),V.emit("updateGlobalSetting")}})},R=o=>(Ge("data-v-b64a1c39"),o=o(),Ue(),o),rt={class:"container"},ut={class:"header"},dt={key:0,style:{"margin-left":"16px","font-size":"1.5em"}},pt=R(()=>n("div",{"flex-placeholder":""},null,-1)),mt=R(()=>n("a",{href:"https://github.com/zanllp/sd-webui-infinite-image-browsing",target:"_blank",class:"last-record"},"Github",-1)),vt={href:"https://github.com/zanllp/sd-webui-infinite-image-browsing/blob/main/.env.example",target:"_blank",class:"last-record"},ht={href:"https://github.com/zanllp/sd-webui-infinite-image-browsing/wiki/Change-log",target:"_blank",class:"last-record"},ft={href:"https://github.com/zanllp/sd-webui-infinite-image-browsing/issues/90",target:"_blank",class:"last-record"},gt={class:"access-mode-message"},_t=R(()=>n("div",{"flex-placeholder":""},null,-1)),bt={class:"access-mode-message"},yt=R(()=>n("div",{"flex-placeholder":""},null,-1)),kt={class:"content"},wt={class:"feature-item"},Ct={class:"text line-clamp-1"},Ot=["onClick"],xt={class:"text line-clamp-2"},$t={key:0,class:"feature-item"},It={class:"text line-clamp-1"},St=["onClick"],Pt={class:"text line-clamp-2"},zt={class:"feature-item"},At=["onClick"],Et={class:"text line-clamp-1"},Mt={class:"text line-clamp-1"},Dt={class:"text line-clamp-1"},Tt={class:"text line-clamp-1"},Ft={key:1,class:"feature-item recent"},Lt={class:"title"},Nt=["onClick"],Ht={class:"text line-clamp-1"},jt=ue({__name:"emptyStartup",props:{tabIdx:{},paneIdx:{}},setup(o){const t=o,e=je(),l=Be(),r={local:f("local"),"tag-search":f("imgSearch"),"fuzzy-search":f("fuzzy-search"),"global-setting":f("globalSettings"),"batch-download":f("batchDownload")+" / "+f("archive")},_=(a,u,$=!1)=>{let g;switch(a){case"tag-search-matched-image-grid":case"img-sli":return;case"global-setting":case"tag-search":case"batch-download":case"fuzzy-search":case"empty":g={type:a,name:r[a],key:Date.now()+se()};break;case"local":g={type:a,name:r[a],key:Date.now()+se(),path:u,walkModePath:$?u:void 0}}const O=e.tabList[t.tabIdx];O.panes.splice(t.paneIdx,1,g),O.key=g.key},P=ne(()=>{var a;return(a=e.tabListHistoryRecord)==null?void 0:a[1]}),D=ne(()=>e.quickMovePaths.filter(({key:a,type:u})=>a==="outdir_txt2img_samples"||a==="outdir_img2img_samples"||a==="outdir_txt2img_grids"||a==="outdir_img2img_grids"||u==="walk")),q=window.parent!==window,G=()=>window.parent.open("/infinite_image_browsing"+(window.parent.location.href.includes("theme=dark")?"?__theme=dark":"")),C=()=>{Ve(P.value),e.tabList=Re(P.value.tabs)};return(a,u)=>{var O,y,d;const $=tt,g=qe;return p(),h("div",rt,[n("div",ut,[n("h1",null,i(a.$t("welcome")),1),(O=c(e).conf)!=null&&O.enable_access_control&&c(e).dontShowAgain?(p(),h("div",dt,[m(c(ie),{title:"Access Control mode",style:{"vertical-align":"text-bottom"}})])):b("",!0),pt,mt,n("a",vt,i(a.$t("privacyAndSecurity")),1),n("a",ht,i(a.$t("changlog")),1),n("a",ft,i(a.$t("faq")),1)]),(y=c(e).conf)!=null&&y.enable_access_control&&!c(e).dontShowAgain?(p(),H($,{key:0,"show-icon":""},{message:S(()=>[n("div",gt,[n("div",null,i(a.$t("accessControlModeTips")),1),_t,n("a",{onClick:u[0]||(u[0]=w(s=>c(e).dontShowAgain=!0,["prevent"]))},i(a.$t("dontShowAgain")),1)])]),icon:S(()=>[m(c(ie))]),_:1})):b("",!0),c(e).dontShowAgainNewImgOpts?b("",!0):(p(),H($,{key:1,"show-icon":""},{message:S(()=>[n("div",bt,[n("div",null,i(a.$t("majorUpdateCustomCellSizeTips")),1),yt,n("a",{onClick:u[1]||(u[1]=w(s=>c(e).dontShowAgainNewImgOpts=!0,["prevent"]))},i(a.$t("dontShowAgain")),1)])]),_:1})),n("div",kt,[n("div",wt,[n("h2",null,i(a.$t("walkMode")),1),n("ul",null,[n("li",{onClick:u[2]||(u[2]=s=>c(ce)("walk")),class:"item",style:{"text-align":""}},[n("span",Ct,[m(c(ae)),E(" "+i(a.$t("add")),1)])]),(p(!0),h(j,null,B(D.value,s=>(p(),h("li",{key:s.key,class:"item rem",onClick:w(k=>_("local",s.dir,!0),["prevent"])},[n("span",xt,i(s.zh),1),s.can_delete?(p(),H(g,{key:0,type:"link",onClick:w(k=>c(re)(s.dir,"walk"),["stop"])},{default:S(()=>[E(i(a.$t("remove")),1)]),_:2},1032,["onClick"])):b("",!0)],8,Ot))),128))])]),c(e).quickMovePaths.length?(p(),h("div",$t,[n("h2",null,i(a.$t("launchFromQuickMove")),1),n("ul",null,[n("li",{onClick:u[3]||(u[3]=s=>c(ce)("scanned")),class:"item",style:{"text-align":""}},[n("span",It,[m(c(ae)),E(" "+i(a.$t("add")),1)])]),(p(!0),h(j,null,B(c(e).quickMovePaths.filter(s=>s.type!=="walk"),s=>(p(),h("li",{key:s.key,class:"item rem",onClick:w(k=>_("local",s.dir),["prevent"])},[n("span",Pt,i(s.zh),1),s.can_delete&&s.type=="scanned"?(p(),H(g,{key:0,type:"link",onClick:w(k=>c(re)(s.dir,"scanned"),["stop"])},{default:S(()=>[E(i(a.$t("remove")),1)]),_:2},1032,["onClick"])):b("",!0)],8,St))),128))])])):b("",!0),n("div",zt,[n("h2",null,i(a.$t("launch")),1),n("ul",null,[(p(!0),h(j,null,B(Object.keys(r),s=>(p(),h("li",{key:s,class:"item",onClick:w(k=>_(s),["prevent"])},[n("span",Et,i(r[s]),1)],8,At))),128)),n("li",{class:"item",onClick:u[4]||(u[4]=s=>c(l).opened=!0)},[n("span",Mt,i(a.$t("imgCompare")),1)]),q?(p(),h("li",{key:0,class:"item",onClick:G},[n("span",Dt,i(a.$t("openInNewWindow")),1)])):b("",!0),(d=P.value)!=null&&d.tabs.length?(p(),h("li",{key:1,class:"item",onClick:C},[n("span",Tt,i(a.$t("restoreLastRecord")),1)])):b("",!0)])]),c(e).recent.length?(p(),h("div",Ft,[n("div",Lt,[n("h2",null,i(a.$t("recent")),1),m(g,{onClick:u[5]||(u[5]=s=>c(e).recent=[]),type:"link"},{default:S(()=>[E(i(a.$t("clear")),1)]),_:1})]),n("ul",null,[(p(!0),h(j,null,B(c(e).recent,s=>(p(),h("li",{key:s.key,class:"item",onClick:w(k=>_("local",s.path),["prevent"])},[m(c(ot),{class:"icon"}),n("span",Ht,i(s.path),1)],8,Nt))),128))])])):b("",!0)])])}}});const Rt=We(jt,[["__scopeId","data-v-b64a1c39"]]);export{Rt as default};
diff --git a/vue/dist/assets/fullScreenContextMenu-217e4fe7.js b/vue/dist/assets/fullScreenContextMenu-98230b57.js
similarity index 99%
rename from vue/dist/assets/fullScreenContextMenu-217e4fe7.js
rename to vue/dist/assets/fullScreenContextMenu-98230b57.js
index 850a00b..2bcda96 100644
--- a/vue/dist/assets/fullScreenContextMenu-217e4fe7.js
+++ b/vue/dist/assets/fullScreenContextMenu-98230b57.js
@@ -1,2 +1,2 @@
-import{d as fe,bq as he,aI as ye,bX as be,ax as we,aC as X,bY as Oe,bZ as K,e as R,c as o,_ as _e,h as M,a as ee,bz as Ee,P as te,ag as A,aw as Le,aM as $e,l as ve,k as Se,$ as j,ao as U,bO as Pe,b_ as xe,b$ as Ce,ai as D,o as p,y,p as N,r as s,m as I,n as f,L as ne,c0 as Me,C as k,z as W,x as h,v,t as ie,A as V,N as ae,B as ke,q as ze,V as re,W as De,c1 as Ne,M as Ae,X as je}from"./index-dda7184d.js";import{i as Te,j as Ie,_ as We,D as Be}from"./FileItem-ba4545b5.js";import"./functionalCallableComp-9395a4a4.js";var Fe=["class","style"],Ue=function(){return{prefixCls:String,spinning:{type:Boolean,default:void 0},size:String,wrapperClassName:String,tip:te.any,delay:Number,indicator:te.any}},B=null;function Ve(e,t){return!!e&&!!t&&!isNaN(Number(t))}function kt(e){var t=e.indicator;B=typeof t=="function"?t:function(){return o(t,null,null)}}const zt=fe({compatConfig:{MODE:3},name:"ASpin",inheritAttrs:!1,props:he(Ue(),{size:"default",spinning:!0,wrapperClassName:""}),setup:function(){return{originalUpdateSpinning:null,configProvider:ye("configProvider",be)}},data:function(){var t=this.spinning,a=this.delay,n=Ve(t,a);return{sSpinning:t&&!n}},created:function(){this.originalUpdateSpinning=this.updateSpinning,this.debouncifyUpdateSpinning(this.$props)},mounted:function(){this.updateSpinning()},updated:function(){var t=this;we(function(){t.debouncifyUpdateSpinning(),t.updateSpinning()})},beforeUnmount:function(){this.cancelExistingSpin()},methods:{debouncifyUpdateSpinning:function(t){var a=t||this.$props,n=a.delay;n&&(this.cancelExistingSpin(),this.updateSpinning=X(this.originalUpdateSpinning,n))},updateSpinning:function(){var t=this.spinning,a=this.sSpinning;a!==t&&(this.sSpinning=t)},cancelExistingSpin:function(){var t=this.updateSpinning;t&&t.cancel&&t.cancel()},renderIndicator:function(t){var a="".concat(t,"-dot"),n=Oe(this,"indicator");return n===null?null:(Array.isArray(n)&&(n=n.length===1?n[0]:n),K(n)?R(n,{class:a}):B&&K(B())?R(B(),{class:a}):o("span",{class:"".concat(a," ").concat(t,"-dot-spin")},[o("i",{class:"".concat(t,"-dot-item")},null),o("i",{class:"".concat(t,"-dot-item")},null),o("i",{class:"".concat(t,"-dot-item")},null),o("i",{class:"".concat(t,"-dot-item")},null)]))}},render:function(){var t,a,n,l=this.$props,L=l.size,z=l.prefixCls,P=l.tip,x=P===void 0?(t=(a=this.$slots).tip)===null||t===void 0?void 0:t.call(a):P,b=l.wrapperClassName,$=this.$attrs,C=$.class,O=$.style,_=_e($,Fe),u=this.configProvider,E=u.getPrefixCls,S=u.direction,m=E("spin",z),i=this.sSpinning,r=(n={},M(n,m,!0),M(n,"".concat(m,"-sm"),L==="small"),M(n,"".concat(m,"-lg"),L==="large"),M(n,"".concat(m,"-spinning"),i),M(n,"".concat(m,"-show-text"),!!x),M(n,"".concat(m,"-rtl"),S==="rtl"),M(n,C,!!C),n),c=o("div",ee(ee({},_),{},{style:O,class:r}),[this.renderIndicator(m),x?o("div",{class:"".concat(m,"-text")},[x]):null]),w=Ee(this);if(w&&w.length){var g,F=(g={},M(g,"".concat(m,"-container"),!0),M(g,"".concat(m,"-blur"),i),g);return o("div",{class:["".concat(m,"-nested-loading"),b]},[i&&o("div",{key:"loading"},[c]),o("div",{class:F,key:"container"},[w])])}return c}});var Xe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z"}}]},name:"arrows-alt",theme:"outlined"};const He=Xe;function le(e){for(var t=1;t{i.stopPropagation(),i.preventDefault(),!(!e.value||!t.value)&&(l=i instanceof MouseEvent?i.clientX:i.touches[0].clientX,L=i instanceof MouseEvent?i.clientY:i.touches[0].clientY,z=e.value.offsetWidth,P=e.value.offsetHeight,t.value.offsetLeft,t.value.offsetTop,document.documentElement.addEventListener("mousemove",O),document.documentElement.addEventListener("touchmove",O),document.documentElement.addEventListener("mouseup",_),document.documentElement.addEventListener("touchend",_))},O=i=>{if(!e.value||!t.value)return;let r=z+((i instanceof MouseEvent?i.clientX:i.touches[0].clientX)-l),c=P+((i instanceof MouseEvent?i.clientY:i.touches[0].clientY)-L);e.value.offsetLeft+r>window.innerWidth&&(r=window.innerWidth-e.value.offsetLeft),e.value.offsetTop+c>window.innerHeight&&(c=window.innerHeight-e.value.offsetTop),e.value.style.width=`${r}px`,e.value.style.height=`${c}px`,n!=null&&n.onResize&&n.onResize(r,c)},_=()=>{document.documentElement.removeEventListener("mousemove",O),document.documentElement.removeEventListener("touchmove",O),document.documentElement.removeEventListener("mouseup",_),document.documentElement.removeEventListener("touchend",_)},u=i=>{i.stopPropagation(),i.preventDefault(),!(!e.value||!a.value)&&($=!0,x=e.value.offsetLeft,b=e.value.offsetTop,l=i instanceof MouseEvent?i.clientX:i.touches[0].clientX,L=i instanceof MouseEvent?i.clientY:i.touches[0].clientY,document.documentElement.addEventListener("mousemove",E),document.documentElement.addEventListener("touchmove",E),document.documentElement.addEventListener("mouseup",S),document.documentElement.addEventListener("touchend",S))},E=i=>{if(!e.value||!a.value||!$)return;const r=x+((i instanceof MouseEvent?i.clientX:i.touches[0].clientX)-l),c=b+((i instanceof MouseEvent?i.clientY:i.touches[0].clientY)-L);r<0?e.value.style.left="0px":r+e.value.offsetWidth>window.innerWidth?e.value.style.left=`${window.innerWidth-e.value.offsetWidth}px`:e.value.style.left=`${r}px`,c<0?e.value.style.top="0px":c+e.value.offsetHeight>window.innerHeight?e.value.style.top=`${window.innerHeight-e.value.offsetHeight}px`:e.value.style.top=`${c}px`,n!=null&&n.onDrag&&n.onDrag(r,c)},S=()=>{$=!1,document.documentElement.removeEventListener("mousemove",E),document.documentElement.removeEventListener("touchmove",E),document.documentElement.removeEventListener("mouseup",S),document.documentElement.removeEventListener("touchend",S)},m=()=>{if(!e.value||!t.value)return;let i=e.value.offsetLeft,r=e.value.offsetTop,c=e.value.offsetWidth,w=e.value.offsetHeight;i+c>window.innerWidth&&(i=window.innerWidth-c,i<0&&(i=0,c=window.innerWidth)),r+w>window.innerHeight&&(r=window.innerHeight-w,r<0&&(r=0,w=window.innerHeight)),e.value.style.left=`${i}px`,e.value.style.top=`${r}px`,e.value.style.width=`${c}px`,e.value.style.height=`${w}px`};return Le(()=>{!e.value||!n||(typeof n.width=="number"&&(e.value.style.width=`${n.width}px`),typeof n.height=="number"&&(e.value.style.height=`${n.height}px`),typeof n.left=="number"&&(e.value.style.left=`${n.left}px`),typeof n.top=="number"&&(e.value.style.top=`${n.top}px`),m(),window.addEventListener("resize",m))}),$e(()=>{document.documentElement.removeEventListener("mousemove",O),document.documentElement.removeEventListener("touchmove",O),document.documentElement.removeEventListener("mouseup",_),document.documentElement.removeEventListener("touchend",_),document.documentElement.removeEventListener("mousemove",E),document.documentElement.removeEventListener("touchmove",E),document.documentElement.removeEventListener("mouseup",S),document.documentElement.removeEventListener("touchend",S),window.removeEventListener("resize",m)}),ve(()=>[e.value,t.value,a.value],([i,r,c])=>{i&&r&&(r.addEventListener("mousedown",C),r.addEventListener("touchstart",C)),i&&c&&(c.addEventListener("mousedown",u),c.addEventListener("touchstart",u))}),{handleResizeMouseDown:C,handleDragMouseDown:u}}const vt={class:"container"},pt={class:"action-bar"},mt=["title"],gt=["title"],ht={key:0,class:"icon",style:{cursor:"pointer"}},yt={key:0,"flex-placeholder":""},bt={key:1,class:"action-bar"},wt={key:0,class:"gen-info"},Ot={class:"info-tags"},_t={class:"name"},Et={class:"value"},Lt={key:0,class:"tags-container"},$t=["onClick"],St=["title"],Pt=fe({__name:"fullScreenContextMenu",props:{file:{},idx:{}},emits:["contextMenuClick"],setup(e,{emit:t}){const a=e,n=Se(),l=Te(),L=j(),z=U(()=>l.tagMap.get(a.file.fullpath)??[]),P=j(""),x=Pe(),b=j(""),$=U(()=>b.value.split(`
+import{d as fe,bq as he,aI as ye,bX as be,ax as we,aC as X,bY as Oe,bZ as K,e as R,c as o,_ as _e,h as M,a as ee,bz as Ee,P as te,ag as A,aw as Le,aM as $e,l as ve,k as Se,$ as j,ao as U,bO as Pe,b_ as xe,b$ as Ce,ai as D,o as p,y,p as N,r as s,m as I,n as f,L as ne,c0 as Me,C as k,z as W,x as h,v,t as ie,A as V,N as ae,B as ke,q as ze,V as re,W as De,c1 as Ne,M as Ae,X as je}from"./index-7014c21f.js";import{i as Te,j as Ie,_ as We,D as Be}from"./FileItem-3525329e.js";import"./functionalCallableComp-c44a8b16.js";var Fe=["class","style"],Ue=function(){return{prefixCls:String,spinning:{type:Boolean,default:void 0},size:String,wrapperClassName:String,tip:te.any,delay:Number,indicator:te.any}},B=null;function Ve(e,t){return!!e&&!!t&&!isNaN(Number(t))}function kt(e){var t=e.indicator;B=typeof t=="function"?t:function(){return o(t,null,null)}}const zt=fe({compatConfig:{MODE:3},name:"ASpin",inheritAttrs:!1,props:he(Ue(),{size:"default",spinning:!0,wrapperClassName:""}),setup:function(){return{originalUpdateSpinning:null,configProvider:ye("configProvider",be)}},data:function(){var t=this.spinning,a=this.delay,n=Ve(t,a);return{sSpinning:t&&!n}},created:function(){this.originalUpdateSpinning=this.updateSpinning,this.debouncifyUpdateSpinning(this.$props)},mounted:function(){this.updateSpinning()},updated:function(){var t=this;we(function(){t.debouncifyUpdateSpinning(),t.updateSpinning()})},beforeUnmount:function(){this.cancelExistingSpin()},methods:{debouncifyUpdateSpinning:function(t){var a=t||this.$props,n=a.delay;n&&(this.cancelExistingSpin(),this.updateSpinning=X(this.originalUpdateSpinning,n))},updateSpinning:function(){var t=this.spinning,a=this.sSpinning;a!==t&&(this.sSpinning=t)},cancelExistingSpin:function(){var t=this.updateSpinning;t&&t.cancel&&t.cancel()},renderIndicator:function(t){var a="".concat(t,"-dot"),n=Oe(this,"indicator");return n===null?null:(Array.isArray(n)&&(n=n.length===1?n[0]:n),K(n)?R(n,{class:a}):B&&K(B())?R(B(),{class:a}):o("span",{class:"".concat(a," ").concat(t,"-dot-spin")},[o("i",{class:"".concat(t,"-dot-item")},null),o("i",{class:"".concat(t,"-dot-item")},null),o("i",{class:"".concat(t,"-dot-item")},null),o("i",{class:"".concat(t,"-dot-item")},null)]))}},render:function(){var t,a,n,l=this.$props,L=l.size,z=l.prefixCls,P=l.tip,x=P===void 0?(t=(a=this.$slots).tip)===null||t===void 0?void 0:t.call(a):P,b=l.wrapperClassName,$=this.$attrs,C=$.class,O=$.style,_=_e($,Fe),u=this.configProvider,E=u.getPrefixCls,S=u.direction,m=E("spin",z),i=this.sSpinning,r=(n={},M(n,m,!0),M(n,"".concat(m,"-sm"),L==="small"),M(n,"".concat(m,"-lg"),L==="large"),M(n,"".concat(m,"-spinning"),i),M(n,"".concat(m,"-show-text"),!!x),M(n,"".concat(m,"-rtl"),S==="rtl"),M(n,C,!!C),n),c=o("div",ee(ee({},_),{},{style:O,class:r}),[this.renderIndicator(m),x?o("div",{class:"".concat(m,"-text")},[x]):null]),w=Ee(this);if(w&&w.length){var g,F=(g={},M(g,"".concat(m,"-container"),!0),M(g,"".concat(m,"-blur"),i),g);return o("div",{class:["".concat(m,"-nested-loading"),b]},[i&&o("div",{key:"loading"},[c]),o("div",{class:F,key:"container"},[w])])}return c}});var Xe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z"}}]},name:"arrows-alt",theme:"outlined"};const He=Xe;function le(e){for(var t=1;t{i.stopPropagation(),i.preventDefault(),!(!e.value||!t.value)&&(l=i instanceof MouseEvent?i.clientX:i.touches[0].clientX,L=i instanceof MouseEvent?i.clientY:i.touches[0].clientY,z=e.value.offsetWidth,P=e.value.offsetHeight,t.value.offsetLeft,t.value.offsetTop,document.documentElement.addEventListener("mousemove",O),document.documentElement.addEventListener("touchmove",O),document.documentElement.addEventListener("mouseup",_),document.documentElement.addEventListener("touchend",_))},O=i=>{if(!e.value||!t.value)return;let r=z+((i instanceof MouseEvent?i.clientX:i.touches[0].clientX)-l),c=P+((i instanceof MouseEvent?i.clientY:i.touches[0].clientY)-L);e.value.offsetLeft+r>window.innerWidth&&(r=window.innerWidth-e.value.offsetLeft),e.value.offsetTop+c>window.innerHeight&&(c=window.innerHeight-e.value.offsetTop),e.value.style.width=`${r}px`,e.value.style.height=`${c}px`,n!=null&&n.onResize&&n.onResize(r,c)},_=()=>{document.documentElement.removeEventListener("mousemove",O),document.documentElement.removeEventListener("touchmove",O),document.documentElement.removeEventListener("mouseup",_),document.documentElement.removeEventListener("touchend",_)},u=i=>{i.stopPropagation(),i.preventDefault(),!(!e.value||!a.value)&&($=!0,x=e.value.offsetLeft,b=e.value.offsetTop,l=i instanceof MouseEvent?i.clientX:i.touches[0].clientX,L=i instanceof MouseEvent?i.clientY:i.touches[0].clientY,document.documentElement.addEventListener("mousemove",E),document.documentElement.addEventListener("touchmove",E),document.documentElement.addEventListener("mouseup",S),document.documentElement.addEventListener("touchend",S))},E=i=>{if(!e.value||!a.value||!$)return;const r=x+((i instanceof MouseEvent?i.clientX:i.touches[0].clientX)-l),c=b+((i instanceof MouseEvent?i.clientY:i.touches[0].clientY)-L);r<0?e.value.style.left="0px":r+e.value.offsetWidth>window.innerWidth?e.value.style.left=`${window.innerWidth-e.value.offsetWidth}px`:e.value.style.left=`${r}px`,c<0?e.value.style.top="0px":c+e.value.offsetHeight>window.innerHeight?e.value.style.top=`${window.innerHeight-e.value.offsetHeight}px`:e.value.style.top=`${c}px`,n!=null&&n.onDrag&&n.onDrag(r,c)},S=()=>{$=!1,document.documentElement.removeEventListener("mousemove",E),document.documentElement.removeEventListener("touchmove",E),document.documentElement.removeEventListener("mouseup",S),document.documentElement.removeEventListener("touchend",S)},m=()=>{if(!e.value||!t.value)return;let i=e.value.offsetLeft,r=e.value.offsetTop,c=e.value.offsetWidth,w=e.value.offsetHeight;i+c>window.innerWidth&&(i=window.innerWidth-c,i<0&&(i=0,c=window.innerWidth)),r+w>window.innerHeight&&(r=window.innerHeight-w,r<0&&(r=0,w=window.innerHeight)),e.value.style.left=`${i}px`,e.value.style.top=`${r}px`,e.value.style.width=`${c}px`,e.value.style.height=`${w}px`};return Le(()=>{!e.value||!n||(typeof n.width=="number"&&(e.value.style.width=`${n.width}px`),typeof n.height=="number"&&(e.value.style.height=`${n.height}px`),typeof n.left=="number"&&(e.value.style.left=`${n.left}px`),typeof n.top=="number"&&(e.value.style.top=`${n.top}px`),m(),window.addEventListener("resize",m))}),$e(()=>{document.documentElement.removeEventListener("mousemove",O),document.documentElement.removeEventListener("touchmove",O),document.documentElement.removeEventListener("mouseup",_),document.documentElement.removeEventListener("touchend",_),document.documentElement.removeEventListener("mousemove",E),document.documentElement.removeEventListener("touchmove",E),document.documentElement.removeEventListener("mouseup",S),document.documentElement.removeEventListener("touchend",S),window.removeEventListener("resize",m)}),ve(()=>[e.value,t.value,a.value],([i,r,c])=>{i&&r&&(r.addEventListener("mousedown",C),r.addEventListener("touchstart",C)),i&&c&&(c.addEventListener("mousedown",u),c.addEventListener("touchstart",u))}),{handleResizeMouseDown:C,handleDragMouseDown:u}}const vt={class:"container"},pt={class:"action-bar"},mt=["title"],gt=["title"],ht={key:0,class:"icon",style:{cursor:"pointer"}},yt={key:0,"flex-placeholder":""},bt={key:1,class:"action-bar"},wt={key:0,class:"gen-info"},Ot={class:"info-tags"},_t={class:"name"},Et={class:"value"},Lt={key:0,class:"tags-container"},$t=["onClick"],St=["title"],Pt=fe({__name:"fullScreenContextMenu",props:{file:{},idx:{}},emits:["contextMenuClick"],setup(e,{emit:t}){const a=e,n=Se(),l=Te(),L=j(),z=U(()=>l.tagMap.get(a.file.fullpath)??[]),P=j(""),x=Pe(),b=j(""),$=U(()=>b.value.split(`
`));ve(()=>{var i;return(i=a==null?void 0:a.file)==null?void 0:i.fullpath},async i=>{i&&(x.tasks.forEach(r=>r.cancel()),x.pushAction(()=>xe(i)).res.then(r=>{b.value=r}))},{immediate:!0});const C=j(),O=j(),_={left:100,top:100,width:512,height:384,expanded:!0},u=Ce("fullScreenContextMenu.vue-drag",_);u.value&&(u.value.left<0||u.value.top<0)&&(u.value={..._}),ft(L,C,O,{...u.value,onDrag:X(function(i,r){u.value={...u.value,left:i,top:r}},300),onResize:X(function(i,r){u.value={...u.value,width:i,height:r}},300)});function E(i){return i.parentNode}Ie("load",i=>{const r=i.target;r.className==="ant-image-preview-img"&&(P.value=`${r.naturalWidth} x ${r.naturalHeight}`)},{capture:!0});const S=U(()=>{const i=[{name:D("fileName"),val:a.file.name},{name:D("fileSize"),val:a.file.size}];return P.value&&i.push({name:D("resolution"),val:P.value}),i}),m=()=>{const i="Negative prompt:",r=b.value.includes(i)?b.value.split(i)[0]:$.value[0]??"";ie(r.trim())};return(i,r)=>{var J;const c=Be,w=re,g=De,F=Ne,pe=Ae,me=re;return p(),y("div",{ref_key:"el",ref:L,class:ae(["full-screen-menu",{"unset-size":!s(u).expanded}]),onWheelCapture:r[5]||(r[5]=ze(()=>{},["stop"]))},[N("div",vt,[N("div",pt,[N("div",{ref_key:"dragHandle",ref:O,class:"icon",style:{cursor:"grab"},title:s(D)("dragToMovePanel")},[o(s(Je))],8,mt),N("div",{class:"icon",style:{cursor:"pointer"},onClick:r[0]||(r[0]=d=>s(u).expanded=!s(u).expanded),title:s(D)("clickToToggleMaximizeMinimize")},[s(u).expanded?(p(),I(s(tt),{key:0})):(p(),I(s(rt),{key:1}))],8,gt),o(c,{"get-popup-container":E},{overlay:f(()=>[o(We,{file:i.file,idx:i.idx,"selected-tag":z.value,"disable-delete":s(ne)(i.file)===s(n).fullscreenPreviewInitialUrl,onContextMenuClick:r[1]||(r[1]=(d,T,ge)=>t("contextMenuClick",d,T,ge))},null,8,["file","idx","selected-tag","disable-delete"])]),default:f(()=>[s(u).expanded?k("",!0):(p(),y("div",ht,[o(s(Me))]))]),_:1}),s(u).expanded?(p(),y("div",yt)):k("",!0),s(u).expanded?(p(),y("div",bt,[o(c,{trigger:["hover"],"get-popup-container":E},{overlay:f(()=>[o(pe,{onClick:r[2]||(r[2]=d=>t("contextMenuClick",d,i.file,i.idx))},{default:f(()=>{var d;return[((d=s(n).conf)==null?void 0:d.launch_mode)!=="server"?(p(),y(W,{key:0},[o(g,{key:"send2txt2img"},{default:f(()=>[h(v(i.$t("sendToTxt2img")),1)]),_:1}),o(g,{key:"send2img2img"},{default:f(()=>[h(v(i.$t("sendToImg2img")),1)]),_:1}),o(g,{key:"send2inpaint"},{default:f(()=>[h(v(i.$t("sendToInpaint")),1)]),_:1}),o(g,{key:"send2extras"},{default:f(()=>[h(v(i.$t("sendToExtraFeatures")),1)]),_:1}),o(F,{key:"sendToThirdPartyExtension",title:i.$t("sendToThirdPartyExtension")},{default:f(()=>[o(g,{key:"send2controlnet-txt2img"},{default:f(()=>[h("ControlNet - "+v(i.$t("t2i")),1)]),_:1}),o(g,{key:"send2controlnet-img2img"},{default:f(()=>[h("ControlNet - "+v(i.$t("i2i")),1)]),_:1}),o(g,{key:"send2outpaint"},{default:f(()=>[h("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):k("",!0),o(g,{key:"send2BatchDownload"},{default:f(()=>[h(v(i.$t("sendToBatchDownload")),1)]),_:1}),o(g,{key:"send2savedDir"},{default:f(()=>[h(v(i.$t("send2savedDir")),1)]),_:1}),o(g,{key:"deleteFiles",disabled:s(ne)(i.file)===s(n).fullscreenPreviewInitialUrl},{default:f(()=>[h(v(i.$t("deleteSelected")),1)]),_:1},8,["disabled"]),o(g,{key:"previewInNewWindow"},{default:f(()=>[h(v(i.$t("previewInNewWindow")),1)]),_:1}),o(g,{key:"copyPreviewUrl"},{default:f(()=>[h(v(i.$t("copySourceFilePreviewLink")),1)]),_:1})]}),_:1})]),default:f(()=>[o(w,null,{default:f(()=>[h(v(s(D)("openContextMenu")),1)]),_:1})]),_:1}),o(me,{onClick:r[3]||(r[3]=d=>t("contextMenuClick",{key:"download"},a.file,a.idx))},{default:f(()=>[h(v(i.$t("download")),1)]),_:1}),b.value?(p(),I(w,{key:0,onClick:r[4]||(r[4]=d=>s(ie)(b.value))},{default:f(()=>[h(v(i.$t("copyPrompt")),1)]),_:1})):k("",!0),b.value?(p(),I(w,{key:1,onClick:m},{default:f(()=>[h(v(i.$t("copyPositivePrompt")),1)]),_:1})):k("",!0)])):k("",!0)]),s(u).expanded?(p(),y("div",wt,[N("div",Ot,[(p(!0),y(W,null,V(S.value,d=>(p(),y("span",{class:"info-tag",key:d.name},[N("span",_t,v(d.name),1),N("span",Et,v(d.val),1)]))),128))]),(J=s(n).conf)!=null&&J.all_custom_tags?(p(),y("div",Lt,[(p(!0),y(W,null,V(s(n).conf.all_custom_tags,d=>(p(),y("div",{class:ae(["tag",{selected:z.value.some(T=>T.id===d.id)}]),onClick:T=>t("contextMenuClick",{key:`toggle-tag-${d.id}`},i.file,i.idx),key:d.id,style:ke({"--tag-color":s(l).getColor(d.name)})},v(d.name),15,$t))),128))])):k("",!0),(p(!0),y(W,null,V($.value,d=>(p(),y("p",{key:d,class:"gen-info-frag"},v(d),1))),128))])):k("",!0)]),s(u).expanded?(p(),y("div",{key:0,class:"mouse-sensor",ref_key:"resizeHandle",ref:C,title:s(D)("dragToResizePanel")},[o(s(qe))],8,St)):k("",!0)],34)}}});const At=je(Pt,[["__scopeId","data-v-f11ac69d"]]);export{Dt as L,Nt as R,zt as S,At as f,kt as s};
diff --git a/vue/dist/assets/functionalCallableComp-9395a4a4.js b/vue/dist/assets/functionalCallableComp-c44a8b16.js
similarity index 98%
rename from vue/dist/assets/functionalCallableComp-9395a4a4.js
rename to vue/dist/assets/functionalCallableComp-c44a8b16.js
index 9eda5b0..9090361 100644
--- a/vue/dist/assets/functionalCallableComp-9395a4a4.js
+++ b/vue/dist/assets/functionalCallableComp-c44a8b16.js
@@ -1,2 +1,2 @@
-import{cQ as re,cR as le,d as L,bq as oe,$ as O,l as q,_ as H,a as v,a0 as z,h as M,c as f,P as ee,j as ne,u as ae,aI as ue,b0 as ie,aM as ce,aw as se,w as de,f as fe,ao as U,aK as ve,i as he,ag as pe,c5 as K,R as X,cS as me,L as Y,V as be,cA as ge,ai as G,am as ye,al as xe,U as ke,cr as Ce,x as we}from"./index-dda7184d.js";import{j as Se}from"./db-3650b2a5.js";function Ie(n,e){var a=typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(!a){if(Array.isArray(n)||(a=re(n))||e&&n&&typeof n.length=="number"){a&&(n=a);var r=0,i=function(){};return{s:i,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(s){throw s},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
+import{cQ as re,cR as le,d as L,bq as oe,$ as O,l as q,_ as H,a as v,a0 as z,h as M,c as f,P as ee,j as ne,u as ae,aI as ue,b0 as ie,aM as ce,aw as se,w as de,f as fe,ao as U,aK as ve,i as he,ag as pe,c5 as K,R as X,cS as me,L as Y,V as be,cA as ge,ai as G,am as ye,al as xe,U as ke,cr as Ce,x as we}from"./index-7014c21f.js";import{j as Se}from"./db-a31c442b.js";function Ie(n,e){var a=typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(!a){if(Array.isArray(n)||(a=re(n))||e&&n&&typeof n.length=="number"){a&&(n=a);var r=0,i=function(){};return{s:i,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(s){throw s},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var C=!0,b=!1,g;return{s:function(){a=a.call(n)},n:function(){var s=a.next();return C=s.done,s},e:function(s){b=!0,g=s},f:function(){try{!C&&a.return!=null&&a.return()}finally{if(b)throw g}}}}var J=1/0,Oe=17976931348623157e292;function Ue(n){if(!n)return n===0?n:0;if(n=le(n),n===J||n===-J){var e=n<0?-1:1;return e*Oe}return n===n?n:0}var Pe=["prefixCls","name","id","type","disabled","readonly","tabindex","autofocus","value","required"],Me={prefixCls:String,name:String,id:String,type:String,defaultChecked:{type:[Boolean,Number],default:void 0},checked:{type:[Boolean,Number],default:void 0},disabled:Boolean,tabindex:{type:[Number,String]},readonly:Boolean,autofocus:Boolean,value:ee.any,required:Boolean};const _e=L({compatConfig:{MODE:3},name:"Checkbox",inheritAttrs:!1,props:oe(Me,{prefixCls:"rc-checkbox",type:"checkbox",defaultChecked:!1}),emits:["click","change"],setup:function(e,a){var r=a.attrs,i=a.emit,C=a.expose,b=O(e.checked===void 0?e.defaultChecked:e.checked),g=O();q(function(){return e.checked},function(){b.value=e.checked}),C({focus:function(){var l;(l=g.value)===null||l===void 0||l.focus()},blur:function(){var l;(l=g.value)===null||l===void 0||l.blur()}});var d=O(),s=function(l){if(!e.disabled){e.checked===void 0&&(b.value=l.target.checked),l.shiftKey=d.value;var w={target:v(v({},e),{},{checked:l.target.checked}),stopPropagation:function(){l.stopPropagation()},preventDefault:function(){l.preventDefault()},nativeEvent:l};e.checked!==void 0&&(g.value.checked=!!e.checked),i("change",w),d.value=!1}},y=function(l){i("click",l),d.value=l.shiftKey};return function(){var o,l=e.prefixCls,w=e.name,S=e.id,F=e.type,_=e.disabled,k=e.readonly,t=e.tabindex,u=e.autofocus,h=e.value,p=e.required,m=H(e,Pe),c=r.class,I=r.onFocus,B=r.onBlur,A=r.onKeydown,V=r.onKeypress,E=r.onKeyup,D=v(v({},m),r),x=Object.keys(D).reduce(function(j,P){return(P.substr(0,5)==="aria-"||P.substr(0,5)==="data-"||P==="role")&&(j[P]=D[P]),j},{}),R=z(l,c,(o={},M(o,"".concat(l,"-checked"),b.value),M(o,"".concat(l,"-disabled"),_),o)),T=v(v({name:w,id:S,type:F,readonly:k,disabled:_,tabindex:t,class:"".concat(l,"-input"),checked:!!b.value,autofocus:u,value:h},x),{},{onChange:s,onClick:y,onFocus:I,onBlur:B,onKeydown:A,onKeypress:V,onKeyup:E,required:p});return f("span",{class:R},[f("input",v({ref:g},T),null),f("span",{class:"".concat(l,"-inner")},null)])}}});function qe(n){var e=n==null?0:n.length;return e?n[e-1]:void 0}var Ve=function(){return{name:String,prefixCls:String,options:{type:Array,default:function(){return[]}},disabled:Boolean,id:String}},Be=function(){return v(v({},Ve()),{},{defaultValue:{type:Array},value:{type:Array},onChange:{type:Function},"onUpdate:value":{type:Function}})},Fe=function(){return{prefixCls:String,defaultChecked:{type:Boolean,default:void 0},checked:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},isGroup:{type:Boolean,default:void 0},value:ee.any,name:String,id:String,indeterminate:{type:Boolean,default:void 0},type:{type:String,default:"checkbox"},autofocus:{type:Boolean,default:void 0},onChange:Function,"onUpdate:checked":Function,onClick:Function,skipGroup:{type:Boolean,default:!1}}},Ae=function(){return v(v({},Fe()),{},{indeterminate:{type:Boolean,default:!1}})},te=Symbol("CheckboxGroupContext"),je=["indeterminate","skipGroup","id"],Ne=["onMouseenter","onMouseleave","onInput","class","style"];const N=L({compatConfig:{MODE:3},name:"ACheckbox",inheritAttrs:!1,__ANT_CHECKBOX:!0,props:Ae(),setup:function(e,a){var r=a.emit,i=a.attrs,C=a.slots,b=a.expose,g=ne(),d=ae("checkbox",e),s=d.prefixCls,y=d.direction,o=ue(te,void 0),l=Symbol("checkboxUniId");ie(function(){!e.skipGroup&&o&&o.registerValue(l,e.value)}),ce(function(){o&&o.cancelValue(l)}),se(function(){de(e.checked!==void 0||o||e.value===void 0,"Checkbox","`value` is not validate prop, do you mean `checked`?")});var w=function(t){var u=t.target.checked;r("update:checked",u),r("change",t)},S=O(),F=function(){var t;(t=S.value)===null||t===void 0||t.focus()},_=function(){var t;(t=S.value)===null||t===void 0||t.blur()};return b({focus:F,blur:_}),function(){var k,t,u=fe((k=C.default)===null||k===void 0?void 0:k.call(C)),h=e.indeterminate,p=e.skipGroup,m=e.id,c=m===void 0?g.id.value:m,I=H(e,je),B=i.onMouseenter,A=i.onMouseleave;i.onInput;var V=i.class,E=i.style,D=H(i,Ne),x=v(v({},I),{},{id:c,prefixCls:s.value},D);o&&!p?(x.onChange=function(){for(var j=arguments.length,P=new Array(j),$=0;$0&&(p=o.value.map(function(c){var I;return f(N,{prefixCls:d.value,key:c.value.toString(),disabled:"disabled"in c?c.disabled:e.disabled,indeterminate:c.indeterminate,value:c.value,checked:y.value.indexOf(c.value)!==-1,onChange:c.onChange,class:"".concat(m,"-item")},{default:function(){return[c.label===void 0?(I=r.label)===null||I===void 0?void 0:I.call(r,c):c.label]}})})),f("div",{class:[m,M({},"".concat(m,"-rtl"),s.value==="rtl")],id:h},[p||((t=r.default)===null||t===void 0?void 0:t.call(r))])}}});N.Group=W;N.install=function(n){return n.component(N.name,N),n.component(W.name,W),n};var Ge={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"};const Ke=Ge;function Z(n){for(var e=1;e(await K.value.get("/files",{params:{folder_path:n}})).data,ze=async n=>(await K.value.post("/delete_files",{file_paths:n})).data,We=async(n,e,a)=>(await K.value.post("/move_files",{file_paths:n,dest:e,create_dest_folder:a})).data,Le=async(n,e,a)=>(await K.value.post("/copy_files",{file_paths:n,dest:e,create_dest_folder:a})).data,Ee=async n=>{await K.value.post("/mkdirs",{dest_folder:n})},Xe=n=>{const e=[];return n.shiftKey&&e.push("Shift"),n.ctrlKey&&e.push("Ctrl"),n.metaKey&&e.push("Cmd"),(n.code.startsWith("Key")||n.code.startsWith("Digit"))&&e.push(n.code),e.join(" + ")},Qe=n=>{const e=O("");return new Promise(a=>{X.confirm({title:G("inputFolderName"),content:()=>f(ke,{value:e.value,"onUpdate:value":r=>e.value=r},null),async onOk(){if(!e.value)return;const r=Ce(n,e.value);await Ee(r),a()}})})},Ye=()=>f("p",{style:{background:"var(--zp-secondary-background)",padding:"8px",borderLeft:"4px solid var(--primary-color)"}},[we("Tips: "),G("multiSelectTips")]),Je=n=>{X.confirm({width:"80vw",title:n.name,icon:null,content:()=>f("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"}},[f("video",{style:{maxHeight:me?"80vh":"60vh"},src:Y(n),controls:!0,autoplay:!0},null),f("div",{class:"actions",style:{marginTop:"16px"}},[f(be,{onClick:()=>ge([Y(n,!0)])},{icon:f($e,null,null),default:G("download")})])]),maskClosable:!0,wrapClassName:"hidden-antd-btns-modal"})},Ze=()=>{X.confirm({title:G("confirmRebuildImageIndex"),onOk:async()=>{await Se(),ye.emit("searchIndexExpired"),xe.success(G("rebuildComplete"))}})};export{N as C,Ye as M,He as a,Qe as b,Le as c,ze as d,Je as e,Xe as g,qe as l,We as m,Ze as o,Ue as t};
diff --git a/vue/dist/assets/globalSetting-2a2b6046.js b/vue/dist/assets/globalSetting-b3d8f019.js
similarity index 97%
rename from vue/dist/assets/globalSetting-2a2b6046.js
rename to vue/dist/assets/globalSetting-b3d8f019.js
index 6af8e10..fca9ec7 100644
--- a/vue/dist/assets/globalSetting-2a2b6046.js
+++ b/vue/dist/assets/globalSetting-b3d8f019.js
@@ -1 +1 @@
-import{Y as le,Z as ae,d as R,j as oe,av as ue,w as E,$ as K,ao as z,l as Y,u as de,aw as ie,ax as se,h as I,c as l,a as D,ay as ce,az as re,g as G,aA as he,P as c,aB as W,k as Z,aC as fe,o as w,y as x,n as i,r as e,ai as _,m as B,C as M,p as v,z as U,v as g,x as T,S as j,aD as me,I as ve,A as H,q as O,E as ge,aE as pe,aF as _e,aG as be,aH as Ce,V as L,U as ke,X as we}from"./index-dda7184d.js";import{N as q,_ as J,F as ye}from"./numInput-398b2a8c.js";import{o as Se,g as $e,C as Ie}from"./functionalCallableComp-9395a4a4.js";/* empty css *//* empty css */import"./db-3650b2a5.js";var Te=ae("small","default"),xe=function(){return{id:String,prefixCls:String,size:c.oneOf(Te),disabled:{type:Boolean,default:void 0},checkedChildren:c.any,unCheckedChildren:c.any,tabindex:c.oneOfType([c.string,c.number]),autofocus:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},checked:c.oneOfType([c.string,c.number,c.looseBool]),checkedValue:c.oneOfType([c.string,c.number,c.looseBool]).def(!0),unCheckedValue:c.oneOfType([c.string,c.number,c.looseBool]).def(!1),onChange:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onMouseup:{type:Function},"onUpdate:checked":{type:Function},onBlur:Function,onFocus:Function}},Fe=R({compatConfig:{MODE:3},name:"ASwitch",__ANT_SWITCH:!0,inheritAttrs:!1,props:xe(),slots:["checkedChildren","unCheckedChildren"],setup:function(n,d){var p=d.attrs,S=d.slots,r=d.expose,h=d.emit,a=oe();ue(function(){E(!("defaultChecked"in p),"Switch","'defaultChecked' is deprecated, please use 'v-model:checked'"),E(!("value"in p),"Switch","`value` is not validate prop, do you mean `checked`?")});var t=K(n.checked!==void 0?n.checked:p.defaultChecked),b=z(function(){return t.value===n.checkedValue});Y(function(){return n.checked},function(){t.value=n.checked});var f=de("switch",n),m=f.prefixCls,$=f.direction,N=f.size,C=K(),F=function(){var u;(u=C.value)===null||u===void 0||u.focus()},V=function(){var u;(u=C.value)===null||u===void 0||u.blur()};r({focus:F,blur:V}),ie(function(){se(function(){n.autofocus&&!n.disabled&&C.value.focus()})});var o=function(u,y){n.disabled||(h("update:checked",u),h("change",u,y),a.onFieldChange())},k=function(u){h("blur",u)},P=function(u){F();var y=b.value?n.unCheckedValue:n.checkedValue;o(y,u),h("click",y,u)},ee=function(u){u.keyCode===W.LEFT?o(n.unCheckedValue,u):u.keyCode===W.RIGHT&&o(n.checkedValue,u),h("keydown",u)},ne=function(u){var y;(y=C.value)===null||y===void 0||y.blur(),h("mouseup",u)},te=z(function(){var s;return s={},I(s,"".concat(m.value,"-small"),N.value==="small"),I(s,"".concat(m.value,"-loading"),n.loading),I(s,"".concat(m.value,"-checked"),b.value),I(s,"".concat(m.value,"-disabled"),n.disabled),I(s,m.value,!0),I(s,"".concat(m.value,"-rtl"),$.value==="rtl"),s});return function(){var s;return l(he,{insertExtraNode:!0},{default:function(){return[l("button",D(D(D({},ce(n,["prefixCls","checkedChildren","unCheckedChildren","checked","autofocus","checkedValue","unCheckedValue","id","onChange","onUpdate:checked"])),p),{},{id:(s=n.id)!==null&&s!==void 0?s:a.id.value,onKeydown:ee,onClick:P,onBlur:k,onMouseup:ne,type:"button",role:"switch","aria-checked":t.value,disabled:n.disabled||n.loading,class:[p.class,te.value],ref:C}),[l("div",{class:"".concat(m.value,"-handle")},[n.loading?l(re,{class:"".concat(m.value,"-loading-icon")},null):null]),l("span",{class:"".concat(m.value,"-inner")},[b.value?G(S,n,"checkedChildren"):G(S,n,"unCheckedChildren")])])]}})}}});const Q=le(Fe);const X="/infinite_image_browsing/fe-static/assets/sample-55dcafc6.webp",Ve=["width","height","src"],Be=R({__name:"ImageSetting",setup(A){function n(S,r){return new Promise(h=>{const a=new Image;a.onload=()=>{const t=document.createElement("canvas");t.width=a.width*r,t.height=a.height*r,t.getContext("2d").drawImage(a,0,0,t.width,t.height),h(t.toDataURL())},a.src=S})}const d=Z(),p=K("");return Y(()=>[d.enableThumbnail,d.gridThumbnailResolution],fe(async()=>{d.enableThumbnail&&(p.value=await n(X,d.gridThumbnailResolution/1024))},300),{immediate:!0,deep:!0}),(S,r)=>{const h=J,a=Q;return w(),x(U,null,[l(h,{label:e(_)("defaultGridCellWidth")},{default:i(()=>[l(q,{min:64,max:1024,step:32,modelValue:e(d).defaultGridCellWidth,"onUpdate:modelValue":r[0]||(r[0]=t=>e(d).defaultGridCellWidth=t)},null,8,["modelValue"])]),_:1},8,["label"]),l(h,{label:e(_)("useThumbnailPreview")},{default:i(()=>[l(a,{checked:e(d).enableThumbnail,"onUpdate:checked":r[1]||(r[1]=t=>e(d).enableThumbnail=t)},null,8,["checked"])]),_:1},8,["label"]),e(d).enableThumbnail?(w(),B(h,{key:0,label:e(_)("thumbnailResolution")},{default:i(()=>[l(q,{modelValue:e(d).gridThumbnailResolution,"onUpdate:modelValue":r[2]||(r[2]=t=>e(d).gridThumbnailResolution=t),min:256,max:1024,step:64},null,8,["modelValue"])]),_:1},8,["label"])):M("",!0),l(h,{label:e(_)("livePreview")},{default:i(()=>[v("div",null,[v("img",{width:e(d).defaultGridCellWidth,height:e(d).defaultGridCellWidth,src:e(d).enableThumbnail?p.value:e(X)},null,8,Ve)])]),_:1},8,["label"])],64)}}}),Me={class:"panel"},Ue={style:{"margin-top":"0"}},Ke={class:"lang-select-wrap"},Ae={class:"col"},Ne={class:"col"},Pe={class:"col"},De={class:"col"},Oe=R({__name:"globalSetting",setup(A){const n=Z(),d=K(!1),p=async()=>{window.location.reload()},S=[{value:"en",text:"English"},{value:"zhHans",text:"简体中文"},{value:"zhHant",text:"繁體中文"},{value:"de",text:"Deutsch"}],r=(a,t)=>{const b=$e(a);b&&(n.shortcut[t]=b)},h=async()=>{await pe("shutdown_api_server_command"),await _e.removeFile(be),await Ce()};return(a,t)=>{const b=L,f=J,m=Q,$=L,N=Ie,C=ke,F=ye;return w(),x("div",Me,[M("",!0),l(F,null,{default:i(()=>{var V;return[v("h2",Ue,g(e(_)("ImageBrowsingSettings")),1),l(Be),v("h2",null,g(e(_)("imgSearch")),1),l(f,{label:a.$t("rebuildImageIndex")},{default:i(()=>[l(b,{onClick:e(Se)},{default:i(()=>[T(g(a.$t("start")),1)]),_:1},8,["onClick"])]),_:1},8,["label"]),v("h2",null,g(e(_)("other")),1),l(f,{label:a.$t("onlyFoldersAndImages")},{default:i(()=>[l(m,{checked:e(n).onlyFoldersAndImages,"onUpdate:checked":t[0]||(t[0]=o=>e(n).onlyFoldersAndImages=o)},null,8,["checked"])]),_:1},8,["label"]),l(f,{label:a.$t("defaultSortingMethod")},{default:i(()=>[l(e(j),{value:e(n).defaultSortingMethod,"onUpdate:value":t[1]||(t[1]=o=>e(n).defaultSortingMethod=o),conv:e(me),options:e(ve)},null,8,["value","conv","options"])]),_:1},8,["label"]),l(f,{label:a.$t("longPressOpenContextMenu")},{default:i(()=>[l(m,{checked:e(n).longPressOpenContextMenu,"onUpdate:checked":t[2]||(t[2]=o=>e(n).longPressOpenContextMenu=o)},null,8,["checked"])]),_:1},8,["label"]),l(f,{label:a.$t("lang")},{default:i(()=>[v("div",Ke,[l(e(j),{options:S,value:e(n).lang,"onUpdate:value":t[3]||(t[3]=o=>e(n).lang=o),onChange:t[4]||(t[4]=o=>d.value=!0)},null,8,["value"])]),d.value?(w(),B($,{key:0,type:"primary",onClick:p,ghost:""},{default:i(()=>[T(g(e(_)("langChangeReload")),1)]),_:1})):M("",!0)]),_:1},8,["label"]),(w(!0),x(U,null,H(e(n).ignoredConfirmActions,(o,k)=>(w(),B(f,{label:a.$t(k+"SkipConfirm"),key:k},{default:i(()=>[l(N,{checked:e(n).ignoredConfirmActions[k],"onUpdate:checked":P=>e(n).ignoredConfirmActions[k]=P},null,8,["checked","onUpdate:checked"])]),_:2},1032,["label"]))),128)),v("h2",null,g(e(_)("shortcutKey")),1),l(f,{label:a.$t("download")},{default:i(()=>[v("div",Ae,[l(C,{value:e(n).shortcut.download,onKeydown:t[5]||(t[5]=O(o=>r(o,"download"),["stop","prevent"])),placeholder:a.$t("shortcutKeyDescription")},null,8,["value","placeholder"]),l($,{onClick:t[6]||(t[6]=o=>e(n).shortcut.download=""),class:"clear-btn"},{default:i(()=>[T(g(a.$t("clear")),1)]),_:1})])]),_:1},8,["label"]),l(f,{label:a.$t("deleteSelected")},{default:i(()=>[v("div",Ne,[l(C,{value:e(n).shortcut.delete,onKeydown:t[7]||(t[7]=O(o=>r(o,"delete"),["stop","prevent"])),placeholder:a.$t("shortcutKeyDescription")},null,8,["value","placeholder"]),l($,{onClick:t[8]||(t[8]=o=>e(n).shortcut.delete=""),class:"clear-btn"},{default:i(()=>[T(g(a.$t("clear")),1)]),_:1})])]),_:1},8,["label"]),(w(!0),x(U,null,H(((V=e(n).conf)==null?void 0:V.all_custom_tags)??[],o=>(w(),B(f,{label:a.$t("toggleTagSelection",{tag:o.name}),key:o.id},{default:i(()=>[v("div",Pe,[l(C,{value:e(n).shortcut[`toggle_tag_${o.name}`],onKeydown:O(k=>r(k,`toggle_tag_${o.name}`),["stop","prevent"]),placeholder:a.$t("shortcutKeyDescription")},null,8,["value","onKeydown","placeholder"]),l($,{onClick:k=>e(n).shortcut[`toggle_tag_${o.name}`]="",class:"clear-btn"},{default:i(()=>[T(g(a.$t("clear")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["label"]))),128)),e(ge)?(w(),x(U,{key:0},[v("h2",null,g(e(_)("clientSpecificSettings")),1),l(f,null,{default:i(()=>[v("div",De,[l($,{onClick:h,class:"clear-btn"},{default:i(()=>[T(g(a.$t("initiateSoftwareStartupConfig")),1)]),_:1})])]),_:1})],64)):M("",!0)]}),_:1})])}}});const He=we(Oe,[["__scopeId","data-v-e5d3d829"]]);export{He as default};
+import{Y as le,Z as ae,d as R,j as oe,av as ue,w as E,$ as K,ao as z,l as Y,u as de,aw as ie,ax as se,h as I,c as l,a as D,ay as ce,az as re,g as G,aA as he,P as c,aB as W,k as Z,aC as fe,o as w,y as x,n as i,r as e,ai as _,m as B,C as M,p as v,z as U,v as g,x as T,S as j,aD as me,I as ve,A as H,q as O,E as ge,aE as pe,aF as _e,aG as be,aH as Ce,V as L,U as ke,X as we}from"./index-7014c21f.js";import{N as q,_ as J,F as ye}from"./numInput-b034b38d.js";import{o as Se,g as $e,C as Ie}from"./functionalCallableComp-c44a8b16.js";/* empty css *//* empty css */import"./db-a31c442b.js";var Te=ae("small","default"),xe=function(){return{id:String,prefixCls:String,size:c.oneOf(Te),disabled:{type:Boolean,default:void 0},checkedChildren:c.any,unCheckedChildren:c.any,tabindex:c.oneOfType([c.string,c.number]),autofocus:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},checked:c.oneOfType([c.string,c.number,c.looseBool]),checkedValue:c.oneOfType([c.string,c.number,c.looseBool]).def(!0),unCheckedValue:c.oneOfType([c.string,c.number,c.looseBool]).def(!1),onChange:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onMouseup:{type:Function},"onUpdate:checked":{type:Function},onBlur:Function,onFocus:Function}},Fe=R({compatConfig:{MODE:3},name:"ASwitch",__ANT_SWITCH:!0,inheritAttrs:!1,props:xe(),slots:["checkedChildren","unCheckedChildren"],setup:function(n,d){var p=d.attrs,S=d.slots,r=d.expose,h=d.emit,a=oe();ue(function(){E(!("defaultChecked"in p),"Switch","'defaultChecked' is deprecated, please use 'v-model:checked'"),E(!("value"in p),"Switch","`value` is not validate prop, do you mean `checked`?")});var t=K(n.checked!==void 0?n.checked:p.defaultChecked),b=z(function(){return t.value===n.checkedValue});Y(function(){return n.checked},function(){t.value=n.checked});var f=de("switch",n),m=f.prefixCls,$=f.direction,N=f.size,C=K(),F=function(){var u;(u=C.value)===null||u===void 0||u.focus()},V=function(){var u;(u=C.value)===null||u===void 0||u.blur()};r({focus:F,blur:V}),ie(function(){se(function(){n.autofocus&&!n.disabled&&C.value.focus()})});var o=function(u,y){n.disabled||(h("update:checked",u),h("change",u,y),a.onFieldChange())},k=function(u){h("blur",u)},P=function(u){F();var y=b.value?n.unCheckedValue:n.checkedValue;o(y,u),h("click",y,u)},ee=function(u){u.keyCode===W.LEFT?o(n.unCheckedValue,u):u.keyCode===W.RIGHT&&o(n.checkedValue,u),h("keydown",u)},ne=function(u){var y;(y=C.value)===null||y===void 0||y.blur(),h("mouseup",u)},te=z(function(){var s;return s={},I(s,"".concat(m.value,"-small"),N.value==="small"),I(s,"".concat(m.value,"-loading"),n.loading),I(s,"".concat(m.value,"-checked"),b.value),I(s,"".concat(m.value,"-disabled"),n.disabled),I(s,m.value,!0),I(s,"".concat(m.value,"-rtl"),$.value==="rtl"),s});return function(){var s;return l(he,{insertExtraNode:!0},{default:function(){return[l("button",D(D(D({},ce(n,["prefixCls","checkedChildren","unCheckedChildren","checked","autofocus","checkedValue","unCheckedValue","id","onChange","onUpdate:checked"])),p),{},{id:(s=n.id)!==null&&s!==void 0?s:a.id.value,onKeydown:ee,onClick:P,onBlur:k,onMouseup:ne,type:"button",role:"switch","aria-checked":t.value,disabled:n.disabled||n.loading,class:[p.class,te.value],ref:C}),[l("div",{class:"".concat(m.value,"-handle")},[n.loading?l(re,{class:"".concat(m.value,"-loading-icon")},null):null]),l("span",{class:"".concat(m.value,"-inner")},[b.value?G(S,n,"checkedChildren"):G(S,n,"unCheckedChildren")])])]}})}}});const Q=le(Fe);const X="/infinite_image_browsing/fe-static/assets/sample-55dcafc6.webp",Ve=["width","height","src"],Be=R({__name:"ImageSetting",setup(A){function n(S,r){return new Promise(h=>{const a=new Image;a.onload=()=>{const t=document.createElement("canvas");t.width=a.width*r,t.height=a.height*r,t.getContext("2d").drawImage(a,0,0,t.width,t.height),h(t.toDataURL())},a.src=S})}const d=Z(),p=K("");return Y(()=>[d.enableThumbnail,d.gridThumbnailResolution],fe(async()=>{d.enableThumbnail&&(p.value=await n(X,d.gridThumbnailResolution/1024))},300),{immediate:!0,deep:!0}),(S,r)=>{const h=J,a=Q;return w(),x(U,null,[l(h,{label:e(_)("defaultGridCellWidth")},{default:i(()=>[l(q,{min:64,max:1024,step:32,modelValue:e(d).defaultGridCellWidth,"onUpdate:modelValue":r[0]||(r[0]=t=>e(d).defaultGridCellWidth=t)},null,8,["modelValue"])]),_:1},8,["label"]),l(h,{label:e(_)("useThumbnailPreview")},{default:i(()=>[l(a,{checked:e(d).enableThumbnail,"onUpdate:checked":r[1]||(r[1]=t=>e(d).enableThumbnail=t)},null,8,["checked"])]),_:1},8,["label"]),e(d).enableThumbnail?(w(),B(h,{key:0,label:e(_)("thumbnailResolution")},{default:i(()=>[l(q,{modelValue:e(d).gridThumbnailResolution,"onUpdate:modelValue":r[2]||(r[2]=t=>e(d).gridThumbnailResolution=t),min:256,max:1024,step:64},null,8,["modelValue"])]),_:1},8,["label"])):M("",!0),l(h,{label:e(_)("livePreview")},{default:i(()=>[v("div",null,[v("img",{width:e(d).defaultGridCellWidth,height:e(d).defaultGridCellWidth,src:e(d).enableThumbnail?p.value:e(X)},null,8,Ve)])]),_:1},8,["label"])],64)}}}),Me={class:"panel"},Ue={style:{"margin-top":"0"}},Ke={class:"lang-select-wrap"},Ae={class:"col"},Ne={class:"col"},Pe={class:"col"},De={class:"col"},Oe=R({__name:"globalSetting",setup(A){const n=Z(),d=K(!1),p=async()=>{window.location.reload()},S=[{value:"en",text:"English"},{value:"zhHans",text:"简体中文"},{value:"zhHant",text:"繁體中文"},{value:"de",text:"Deutsch"}],r=(a,t)=>{const b=$e(a);b&&(n.shortcut[t]=b)},h=async()=>{await pe("shutdown_api_server_command"),await _e.removeFile(be),await Ce()};return(a,t)=>{const b=L,f=J,m=Q,$=L,N=Ie,C=ke,F=ye;return w(),x("div",Me,[M("",!0),l(F,null,{default:i(()=>{var V;return[v("h2",Ue,g(e(_)("ImageBrowsingSettings")),1),l(Be),v("h2",null,g(e(_)("imgSearch")),1),l(f,{label:a.$t("rebuildImageIndex")},{default:i(()=>[l(b,{onClick:e(Se)},{default:i(()=>[T(g(a.$t("start")),1)]),_:1},8,["onClick"])]),_:1},8,["label"]),v("h2",null,g(e(_)("other")),1),l(f,{label:a.$t("onlyFoldersAndImages")},{default:i(()=>[l(m,{checked:e(n).onlyFoldersAndImages,"onUpdate:checked":t[0]||(t[0]=o=>e(n).onlyFoldersAndImages=o)},null,8,["checked"])]),_:1},8,["label"]),l(f,{label:a.$t("defaultSortingMethod")},{default:i(()=>[l(e(j),{value:e(n).defaultSortingMethod,"onUpdate:value":t[1]||(t[1]=o=>e(n).defaultSortingMethod=o),conv:e(me),options:e(ve)},null,8,["value","conv","options"])]),_:1},8,["label"]),l(f,{label:a.$t("longPressOpenContextMenu")},{default:i(()=>[l(m,{checked:e(n).longPressOpenContextMenu,"onUpdate:checked":t[2]||(t[2]=o=>e(n).longPressOpenContextMenu=o)},null,8,["checked"])]),_:1},8,["label"]),l(f,{label:a.$t("lang")},{default:i(()=>[v("div",Ke,[l(e(j),{options:S,value:e(n).lang,"onUpdate:value":t[3]||(t[3]=o=>e(n).lang=o),onChange:t[4]||(t[4]=o=>d.value=!0)},null,8,["value"])]),d.value?(w(),B($,{key:0,type:"primary",onClick:p,ghost:""},{default:i(()=>[T(g(e(_)("langChangeReload")),1)]),_:1})):M("",!0)]),_:1},8,["label"]),(w(!0),x(U,null,H(e(n).ignoredConfirmActions,(o,k)=>(w(),B(f,{label:a.$t(k+"SkipConfirm"),key:k},{default:i(()=>[l(N,{checked:e(n).ignoredConfirmActions[k],"onUpdate:checked":P=>e(n).ignoredConfirmActions[k]=P},null,8,["checked","onUpdate:checked"])]),_:2},1032,["label"]))),128)),v("h2",null,g(e(_)("shortcutKey")),1),l(f,{label:a.$t("download")},{default:i(()=>[v("div",Ae,[l(C,{value:e(n).shortcut.download,onKeydown:t[5]||(t[5]=O(o=>r(o,"download"),["stop","prevent"])),placeholder:a.$t("shortcutKeyDescription")},null,8,["value","placeholder"]),l($,{onClick:t[6]||(t[6]=o=>e(n).shortcut.download=""),class:"clear-btn"},{default:i(()=>[T(g(a.$t("clear")),1)]),_:1})])]),_:1},8,["label"]),l(f,{label:a.$t("deleteSelected")},{default:i(()=>[v("div",Ne,[l(C,{value:e(n).shortcut.delete,onKeydown:t[7]||(t[7]=O(o=>r(o,"delete"),["stop","prevent"])),placeholder:a.$t("shortcutKeyDescription")},null,8,["value","placeholder"]),l($,{onClick:t[8]||(t[8]=o=>e(n).shortcut.delete=""),class:"clear-btn"},{default:i(()=>[T(g(a.$t("clear")),1)]),_:1})])]),_:1},8,["label"]),(w(!0),x(U,null,H(((V=e(n).conf)==null?void 0:V.all_custom_tags)??[],o=>(w(),B(f,{label:a.$t("toggleTagSelection",{tag:o.name}),key:o.id},{default:i(()=>[v("div",Pe,[l(C,{value:e(n).shortcut[`toggle_tag_${o.name}`],onKeydown:O(k=>r(k,`toggle_tag_${o.name}`),["stop","prevent"]),placeholder:a.$t("shortcutKeyDescription")},null,8,["value","onKeydown","placeholder"]),l($,{onClick:k=>e(n).shortcut[`toggle_tag_${o.name}`]="",class:"clear-btn"},{default:i(()=>[T(g(a.$t("clear")),1)]),_:2},1032,["onClick"])])]),_:2},1032,["label"]))),128)),e(ge)?(w(),x(U,{key:0},[v("h2",null,g(e(_)("clientSpecificSettings")),1),l(f,null,{default:i(()=>[v("div",De,[l($,{onClick:h,class:"clear-btn"},{default:i(()=>[T(g(a.$t("initiateSoftwareStartupConfig")),1)]),_:1})])]),_:1})],64)):M("",!0)]}),_:1})])}}});const He=we(Oe,[["__scopeId","data-v-e5d3d829"]]);export{He as default};
diff --git a/vue/dist/assets/hook-12226230.js b/vue/dist/assets/hook-d5d8b6fe.js
similarity index 95%
rename from vue/dist/assets/hook-12226230.js
rename to vue/dist/assets/hook-d5d8b6fe.js
index 724931f..06d3c6b 100644
--- a/vue/dist/assets/hook-12226230.js
+++ b/vue/dist/assets/hook-d5d8b6fe.js
@@ -1 +1 @@
-import{bn as A,$ as g,bV as q,bW as x,ar as k,ao as D,bO as z,bd as G}from"./index-dda7184d.js";import{u as N,b as O,f as Q,c as W,d as j,e as H,h as L}from"./FileItem-ba4545b5.js";let T=0;const U=()=>++T,V=(r,l,{dataUpdateStrategy:c="replace"}={})=>{const s=A([""]),u=g(!1),t=g(),a=g(!1);let f=g(-1);const v=new Set,b=e=>{var n;c==="replace"?t.value=e:c==="merge"&&(k((Array.isArray(t.value)||typeof t.value>"u")&&Array.isArray(e),"数据更新策略为合并时仅可用于值为数组的情况"),t.value=[...(n=t==null?void 0:t.value)!==null&&n!==void 0?n:[],...e])},d=e=>x(void 0,void 0,void 0,function*(){if(a.value||u.value&&typeof e>"u")return!1;a.value=!0;const n=U();f.value=n;try{let o;if(typeof e=="number"){if(o=s[e],typeof o!="string")return!1}else o=s[s.length-1];const p=yield r(o);if(v.has(n))return v.delete(n),!1;b(l(p));const i=p.cursor;if((e===s.length-1||typeof e!="number")&&(u.value=!i.has_next,i.has_next)){const I=i.next_cursor||i.next;k(typeof I=="string"),s.push(I)}}finally{f.value===n&&(a.value=!1)}return!0}),h=()=>{v.add(f.value),a.value=!1},w=(e=!1)=>x(void 0,void 0,void 0,function*(){const{refetch:n,force:o}=typeof e=="object"?e:{refetch:e};o&&h(),k(!a.value),s.splice(0,s.length,""),a.value=!1,t.value=void 0,u.value=!1,n&&(yield d())}),m=()=>({next:()=>x(void 0,void 0,void 0,function*(){if(a.value)throw new Error("不允许同时迭代");return{done:!(yield d()),value:t.value}})});return q({abort:h,load:u,next:d,res:t,loading:a,cursorStack:s,reset:w,[Symbol.asyncIterator]:m,iter:{[Symbol.asyncIterator]:m}})},J=r=>A(V(r,l=>l.files,{dataUpdateStrategy:"merge"})),K=r=>{const l=A(new Set),c=D(()=>(r.res??[]).filter(y=>!l.has(y.fullpath))),s=z(),{stackViewEl:u,multiSelectedIdxs:t,stack:a,scroller:f}=N({images:c}).toRefs(),{itemSize:v,gridItems:b,cellWidth:d,onScroll:h}=O({fetchNext:()=>r.next()}),{showMenuIdx:w}=Q(),{onFileDragStart:m,onFileDragEnd:e}=W(),{showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I}=j({openNext:G}),{previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M}=H(),P=async(y,S,R)=>{a.value=[{curr:"",files:c.value}],await i(y,S,R)};return L("removeFiles",async({paths:y})=>{y.forEach(S=>l.add(S))}),{images:c,scroller:f,queue:s,iter:r,onContextMenuClickU:P,stackViewEl:u,previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M,itemSize:v,gridItems:b,showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I,showMenuIdx:w,multiSelectedIdxs:t,onFileDragStart:m,onFileDragEnd:e,cellWidth:d,onScroll:h}};export{J as c,K as u};
+import{bn as A,$ as g,bV as q,bW as x,ar as k,ao as D,bO as z,bd as G}from"./index-7014c21f.js";import{u as N,b as O,f as Q,c as W,d as j,e as H,h as L}from"./FileItem-3525329e.js";let T=0;const U=()=>++T,V=(r,l,{dataUpdateStrategy:c="replace"}={})=>{const s=A([""]),u=g(!1),t=g(),a=g(!1);let f=g(-1);const v=new Set,b=e=>{var n;c==="replace"?t.value=e:c==="merge"&&(k((Array.isArray(t.value)||typeof t.value>"u")&&Array.isArray(e),"数据更新策略为合并时仅可用于值为数组的情况"),t.value=[...(n=t==null?void 0:t.value)!==null&&n!==void 0?n:[],...e])},d=e=>x(void 0,void 0,void 0,function*(){if(a.value||u.value&&typeof e>"u")return!1;a.value=!0;const n=U();f.value=n;try{let o;if(typeof e=="number"){if(o=s[e],typeof o!="string")return!1}else o=s[s.length-1];const p=yield r(o);if(v.has(n))return v.delete(n),!1;b(l(p));const i=p.cursor;if((e===s.length-1||typeof e!="number")&&(u.value=!i.has_next,i.has_next)){const I=i.next_cursor||i.next;k(typeof I=="string"),s.push(I)}}finally{f.value===n&&(a.value=!1)}return!0}),h=()=>{v.add(f.value),a.value=!1},w=(e=!1)=>x(void 0,void 0,void 0,function*(){const{refetch:n,force:o}=typeof e=="object"?e:{refetch:e};o&&h(),k(!a.value),s.splice(0,s.length,""),a.value=!1,t.value=void 0,u.value=!1,n&&(yield d())}),m=()=>({next:()=>x(void 0,void 0,void 0,function*(){if(a.value)throw new Error("不允许同时迭代");return{done:!(yield d()),value:t.value}})});return q({abort:h,load:u,next:d,res:t,loading:a,cursorStack:s,reset:w,[Symbol.asyncIterator]:m,iter:{[Symbol.asyncIterator]:m}})},J=r=>A(V(r,l=>l.files,{dataUpdateStrategy:"merge"})),K=r=>{const l=A(new Set),c=D(()=>(r.res??[]).filter(y=>!l.has(y.fullpath))),s=z(),{stackViewEl:u,multiSelectedIdxs:t,stack:a,scroller:f}=N({images:c}).toRefs(),{itemSize:v,gridItems:b,cellWidth:d,onScroll:h}=O({fetchNext:()=>r.next()}),{showMenuIdx:w}=Q(),{onFileDragStart:m,onFileDragEnd:e}=W(),{showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I}=j({openNext:G}),{previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M}=H(),P=async(y,S,R)=>{a.value=[{curr:"",files:c.value}],await i(y,S,R)};return L("removeFiles",async({paths:y})=>{y.forEach(S=>l.add(S))}),{images:c,scroller:f,queue:s,iter:r,onContextMenuClickU:P,stackViewEl:u,previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M,itemSize:v,gridItems:b,showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I,showMenuIdx:w,multiSelectedIdxs:t,onFileDragStart:m,onFileDragEnd:e,cellWidth:d,onScroll:h}};export{J as c,K as u};
diff --git a/vue/dist/assets/index-dda7184d.js b/vue/dist/assets/index-7014c21f.js
similarity index 99%
rename from vue/dist/assets/index-dda7184d.js
rename to vue/dist/assets/index-7014c21f.js
index c6f14ef..c04068f 100644
--- a/vue/dist/assets/index-dda7184d.js
+++ b/vue/dist/assets/index-7014c21f.js
@@ -190,4 +190,4 @@ Note that this is not an issue if running this frontend on a browser instead of
* pinia v2.1.3
* (c) 2023 Eduardo San Martin Morote
* @license MIT
- */let I_;const su=t=>I_=t,A_=Symbol();function yf(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var ro;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(ro||(ro={}));function ez(){const t=Ef(!0),e=t.run(()=>W({}));let n=[],r=[];const a=Cs({install(i){su(a),a._a=i,i.provide(A_,a),i.config.globalProperties.$pinia=a,r.forEach(o=>n.push(o)),r=[]},use(i){return!this._a&&!Zj?r.push(i):n.push(i),this},_p:n,_a:null,_e:t,_s:new Map,state:e});return a}const M_=()=>{};function xy(t,e,n,r=M_){t.push(e);const a=()=>{const i=t.indexOf(e);i>-1&&(t.splice(i,1),r())};return!n&&Of()&&qy(a),a}function Da(t,...e){t.slice().forEach(n=>{n(...e)})}const tz=t=>t();function bf(t,e){t instanceof Map&&e instanceof Map&&e.forEach((n,r)=>t.set(r,n)),t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const n in e){if(!e.hasOwnProperty(n))continue;const r=e[n],a=t[n];yf(a)&&yf(r)&&t.hasOwnProperty(n)&&!tt(r)&&!wr(r)?t[n]=bf(a,r):t[n]=r}return t}const nz=Symbol();function rz(t){return!yf(t)||!t.hasOwnProperty(nz)}const{assign:Rr}=Object;function az(t){return!!(tt(t)&&t.effect)}function iz(t,e,n,r){const{state:a,actions:i,getters:o}=e,l=n.state.value[t];let s;function u(){l||(n.state.value[t]=a?a():{});const f=sb(n.state.value[t]);return Rr(f,i,Object.keys(o||{}).reduce((v,p)=>(v[p]=Cs(K(()=>{su(n);const g=n._s.get(t);return o[p].call(g,g)})),v),{}))}return s=k_(t,u,e,n,r,!0),s}function k_(t,e,n={},r,a,i){let o;const l=Rr({actions:{}},n),s={deep:!0};let u,f,v=[],p=[],g;const c=r.state.value[t];!i&&!c&&(r.state.value[t]={}),W({});let d;function m(I){let P;u=f=!1,typeof I=="function"?(I(r.state.value[t]),P={type:ro.patchFunction,storeId:t,events:g}):(bf(r.state.value[t],I),P={type:ro.patchObject,payload:I,storeId:t,events:g});const k=d=Symbol();Ke().then(()=>{d===k&&(u=!0)}),f=!0,Da(v,P,r.state.value[t])}const h=i?function(){const{state:P}=n,k=P?P():{};this.$patch(L=>{Rr(L,k)})}:M_;function y(){o.stop(),v=[],p=[],r._s.delete(t)}function b(I,P){return function(){su(r);const k=Array.from(arguments),L=[],F=[];function j(M){L.push(M)}function z(M){F.push(M)}Da(p,{args:k,name:I,store:C,after:j,onError:z});let $;try{$=P.apply(this&&this.$id===t?this:C,k)}catch(M){throw Da(F,M),M}return $ instanceof Promise?$.then(M=>(Da(L,M),M)).catch(M=>(Da(F,M),Promise.reject(M))):(Da(L,$),$)}}const w={_p:r,$id:t,$onAction:xy.bind(null,p),$patch:m,$reset:h,$subscribe(I,P={}){const k=xy(v,I,P.detached,()=>L()),L=o.run(()=>pe(()=>r.state.value[t],F=>{(P.flush==="sync"?f:u)&&I({storeId:t,type:ro.direct,events:g},F)},Rr({},s,P)));return k},$dispose:y},C=rt(w);r._s.set(t,C);const _=r._a&&r._a.runWithContext||tz,E=r._e.run(()=>(o=Ef(),_(()=>o.run(e))));for(const I in E){const P=E[I];if(tt(P)&&!az(P)||wr(P))i||(c&&rz(P)&&(tt(P)?P.value=c[I]:bf(P,c[I])),r.state.value[t][I]=P);else if(typeof P=="function"){const k=b(I,P);E[I]=k,l.actions[I]=P}}return Rr(C,E),Rr(Me(C),E),Object.defineProperty(C,"$state",{get:()=>r.state.value[t],set:I=>{m(P=>{Rr(P,I)})}}),r._p.forEach(I=>{Rr(C,o.run(()=>I({store:C,app:r._a,pinia:r,options:l})))}),c&&i&&n.hydrate&&n.hydrate(C.$state,c),u=!0,f=!0,C}function N_(t,e,n){let r,a;const i=typeof e=="function";typeof t=="string"?(r=t,a=i?n:e):(a=t,r=t.id);function o(l,s){const u=Ix();return l=l||(u?Xe(A_,null):null),l&&su(l),l=I_,l._s.has(r)||(i?k_(r,e,a,l):iz(r,a,l)),l._s.get(r)}return o.$id=r,o}function oz(t){{t=Me(t);const e={};for(const n in t){const r=t[n];(tt(r)||wr(r))&&(e[n]=Kt(t,n))}return e}}const lz=t=>Yc({...t,name:typeof t.name=="string"?t.name:t.nameFallbackStr??""}),sz=t=>({...t,panes:t.panes.map(lz)}),Wo=N_("useGlobalStore",()=>{const t=W(),e=W([]),n=W(!0),r=W(512),a=W(Av.CREATED_TIME_DESC),i=W(256),o=()=>({type:"empty",name:ke("emptyStartPage"),key:br()}),l=W([]);Re(()=>{const b=o();l.value.push({panes:[b],key:b.key,id:br()})});const s=W(),u=W(new Array),f=Date.now(),v=W(),p=()=>{var w;const b=Me(l.value).map(sz);((w=v.value)==null?void 0:w[0].time)!==f?v.value=[{tabs:b,time:f},...v.value??[]]:v.value[0].tabs=b,v.value=v.value.slice(0,2)},g=async(b,w,C)=>{let _=l.value.map(I=>I.panes).flat().find(I=>I.type==="tag-search-matched-image-grid"&&I.id===w);if(_){_.selectedTagIds=Yc(C);return}else _={type:"tag-search-matched-image-grid",id:w,selectedTagIds:Yc(C),key:br(),name:ke("searchResults")};const E=l.value[b+1];E?(E.key=_.key,E.panes.push(_)):l.value.push({panes:[_],key:_.key,id:br()})},c=W(X1());pe(c,b=>wv.global.locale.value=b);const d=W(!1),m=W({delete:"",download:""}),h=K(()=>{const b=["outdir_extras_samples","outdir_save","outdir_txt2img_samples","outdir_img2img_samples","outdir_img2img_grids","outdir_txt2img_grids"],w=e.value.filter(C=>b.includes(C.key)).map(C=>[C.zh,C.dir]);return Object.fromEntries(w)}),y=rt({deleteOneOnly:!1});return{defaultSortingMethod:a,defaultGridCellWidth:i,pathAliasMap:h,createEmptyPane:o,lang:c,tabList:l,conf:t,quickMovePaths:e,enableThumbnail:n,dragingTab:s,saveRecord:p,recent:u,tabListHistoryRecord:v,gridThumbnailResolution:r,longPressOpenContextMenu:d,openTagSearchMatchedImageGridInRight:g,onlyFoldersAndImages:W(!0),fullscreenPreviewInitialUrl:W(""),shortcut:m,dontShowAgain:W(!1),dontShowAgainNewImgOpts:W(!1),ignoredConfirmActions:y}},{persist:{paths:["dontShowAgainNewImgOpts","defaultSortingMethod","defaultGridCellWidth","dontShowAgain","lang","enableThumbnail","tabListHistoryRecord","recent","gridThumbnailResolution","longPressOpenContextMenu","onlyFoldersAndImages","shortcut","ignoredConfirmActions"]}}),ao=encodeURIComponent,vs=(t,e=!1)=>`${Iv.value}/file?path=${ao(t.fullpath)}&t=${ao(t.date)}${e?`&disposition=${ao(t.name)}`:""}`,Py=(t,e="512x512")=>`${Iv.value}/image-thumbnail?path=${ao(t.fullpath)}&size=${e}&t=${ao(t.date)}`,uz=t=>typeof t=="object"&&t.__id==="FileTransferData",cz=t=>{var n;const e=JSON.parse(((n=t.dataTransfer)==null?void 0:n.getData("text"))??"{}");return uz(e)?e:null},W9=t=>Z1(t,"fullpath");function $_(t){var r;if(typeof t!="string")return!1;const e=[".jpg",".jpeg",".png",".gif",".bmp",".webp"],n=(r=t.split(".").pop())==null?void 0:r.toLowerCase();return n!==void 0&&e.includes(`.${n}`)}function fz(t){var r;if(typeof t!="string")return!1;const e=[".mp4",".avi",".mov",".mkv"],n=(r=t.split(".").pop())==null?void 0:r.toLowerCase();return n!==void 0&&e.includes(`.${n}`)}const V9=t=>$_(t)||fz(t);function H9(t){const e=document.createElement("a");e.style.display="none",document.body.appendChild(e),t.forEach(n=>{e.href=n,e.download="",e.click()}),document.body.removeChild(e)}function R_(){try{return parent.window.gradioApp()}catch{}const t=parent.document.getElementsByTagName("gradio-app"),e=t.length==0?null:t[0].shadowRoot;return e||document}const dz=()=>{const t=R_().querySelectorAll("#tabs > .tabitem[id^=tab_]");return Array.from(t).findIndex(e=>e.id.includes("infinite-image-browsing"))},vz=()=>{try{R_().querySelector("#tabs").querySelectorAll("button")[dz()].click()}catch(t){console.error(t)}},pz=async(t,e=100,n=1e3)=>new Promise(r=>{const a=(i=0)=>{const o=t();o!=null||i>n/e?r(o):setTimeout(()=>a(++i),e)};a()}),hz=(t,...e)=>e.reduce((n,r)=>(n[r]=t==null?void 0:t[r],n),{}),mz=()=>rt(new Io(-1,0,-1,"throw")),U9=async(t,e)=>{try{if(navigator.clipboard)await navigator.clipboard.writeText(t);else{const n=document.createElement("input");n.value=t,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}ba.success(e??ke("copied"))}catch{ba.error("copy failed. maybe it's non-secure environment")}},{useEventListen:Ey,eventEmitter:L_}=Q1();function K9(t){let e=null,n=!1;return async function(...r){if(n)return e;n=!0;try{return e=t.apply(this,r),await e}finally{n=!1}}}function gz(t){const e=parent.location.href,n=new URLSearchParams(parent.location.search);t.forEach(a=>{n.delete(a)});const r=`${e.split("?")[0]}${n.size?"?":""}${n.toString()}`;return parent.history.pushState(null,"",r),r}const yz=t=>new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=a=>n(a),r.src=t}),bz=t=>{try{return JSON.parse(t)}catch{return null}};function wz(t){return/^(?:\/|[a-z]:)/i.test(di(t))}function di(t){if(!t)return"";t=t.replace(/\\/g,"/"),t=t.replace(/\/+/g,"/");const e=t.split("/"),n=[];for(let i=0;i{const n=wz(t)?t:di(Cz(e,t));return di(n)},G9=t=>{t=di(t);const e=t.split("/").filter(n=>n);return e[0].endsWith(":")&&(e[0]=e[0]+"/"),e},Oy=async({global_setting:t,sd_cwd:e,home:n,extra_paths:r,cwd:a})=>{const o={...hz(t,"outdir_grids","outdir_extras_samples","outdir_img2img_grids","outdir_img2img_samples","outdir_grids","outdir_extras_samples","outdir_samples","outdir_txt2img_grids","outdir_txt2img_samples","outdir_save"),cwd:e,home:n,desktop:`${n}/Desktop`};Object.keys(o).forEach(p=>{const g=p;if(o[g])try{o[g]=_z(o[g],e)}catch(c){console.error(c)}});const l=await Xj(Object.values(o).filter(p=>p)),s={outdir_txt2img_samples:ke("t2i"),outdir_img2img_samples:ke("i2i"),outdir_save:ke("saveButtonSavesTo"),outdir_extras_samples:ke("extra"),outdir_grids:ke("gridImage"),outdir_img2img_grids:ke("i2i-grid"),outdir_samples:ke("image"),outdir_txt2img_grids:ke("t2i-grid"),cwd:ke("workingFolder"),home:"home",desktop:ke("desktop")},u={home:n,[ke("desktop")]:o.desktop,[ke("workingFolder")]:a,[ke("t2i")]:o.outdir_txt2img_samples,[ke("i2i")]:o.outdir_img2img_samples},f=p=>{p=di(p);const g=[];for(const[c,d]of Object.entries(u))c&&d&&g.push(p.replace(d,"$"+c));return g.sort((c,d)=>c.length-d.length)[0]},v=Object.keys(s).filter(p=>l[o[p]]).map(p=>{const g=p;return{key:g,zh:s[g],dir:o[g],can_delete:!1,type:"preset"}}).concat(r.map(p=>({key:p.path,zh:f(p.path),dir:p.path,can_delete:!0,type:p.type})));return Z1(v,p=>p.key+p.type)};const D_={name:"splitpanes",emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click"],props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce((t,e)=>(t[e.id]=e)&&t,{})}},methods:{updatePaneComponents(){this.panes.forEach(t=>{t.update&&t.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[t.id].size}%`})})},bindEvents(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown(t,e){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=e},onMouseMove(t){this.touch.mouseDown&&(t.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(t)),this.$emit("resize",this.panes.map(e=>({min:e.min,max:e.max,size:e.size}))))},onMouseUp(){this.touch.dragging&&this.$emit("resized",this.panes.map(t=>({min:t.min,max:t.max,size:t.size}))),this.touch.mouseDown=!1,setTimeout(()=>{this.touch.dragging=!1,this.unbindEvents()},100)},onSplitterClick(t,e){"ontouchstart"in window&&(t.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===e?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(t,e),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=e,this.splitterTaps.timeoutId=setTimeout(()=>{this.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[e])},onSplitterDblClick(t,e){let n=0;this.panes=this.panes.map((r,a)=>(r.size=a===e?r.max:r.min,a!==e&&(n+=r.min),r)),this.panes[e].size-=n,this.$emit("pane-maximize",this.panes[e]),this.$emit("resized",this.panes.map(r=>({min:r.min,max:r.max,size:r.size})))},onPaneClick(t,e){this.$emit("pane-click",this.indexedPanes[e])},getCurrentMouseDrag(t){const e=this.container.getBoundingClientRect(),{clientX:n,clientY:r}="ontouchstart"in window&&t.touches?t.touches[0]:t;return{x:n-e.left,y:r-e.top}},getCurrentDragPercentage(t){t=t[this.horizontal?"y":"x"];const e=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(t=e-t),t*100/e},calculatePanesSize(t){const e=this.touch.activeSplitter;let n={prevPanesSize:this.sumPrevPanesSize(e),nextPanesSize:this.sumNextPanesSize(e),prevReachedMinPanes:0,nextReachedMinPanes:0};const r=0+(this.pushOtherPanes?0:n.prevPanesSize),a=100-(this.pushOtherPanes?0:n.nextPanesSize),i=Math.max(Math.min(this.getCurrentDragPercentage(t),a),r);let o=[e,e+1],l=this.panes[o[0]]||null,s=this.panes[o[1]]||null;const u=l.max<100&&i>=l.max+n.prevPanesSize,f=s.max<100&&i<=100-(s.max+this.sumNextPanesSize(e+1));if(u||f){u?(l.size=l.max,s.size=Math.max(100-l.max-n.prevPanesSize-n.nextPanesSize,0)):(l.size=Math.max(100-s.max-n.prevPanesSize-this.sumNextPanesSize(e+1),0),s.size=s.max);return}if(this.pushOtherPanes){const v=this.doPushOtherPanes(n,i);if(!v)return;({sums:n,panesToResize:o}=v),l=this.panes[o[0]]||null,s=this.panes[o[1]]||null}l!==null&&(l.size=Math.min(Math.max(i-n.prevPanesSize-n.prevReachedMinPanes,l.min),l.max)),s!==null&&(s.size=Math.min(Math.max(100-i-n.nextPanesSize-n.nextReachedMinPanes,s.min),s.max))},doPushOtherPanes(t,e){const n=this.touch.activeSplitter,r=[n,n+1];return e{i>r[0]&&i<=n&&(a.size=a.min,t.prevReachedMinPanes+=a.min)}),t.prevPanesSize=this.sumPrevPanesSize(r[0]),r[0]===void 0)?(t.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach((a,i)=>{i>0&&i<=n&&(a.size=a.min,t.prevReachedMinPanes+=a.min)}),this.panes[r[1]].size=100-t.prevReachedMinPanes-this.panes[0].min-t.prevPanesSize-t.nextPanesSize,null):e>100-t.nextPanesSize-this.panes[r[1]].min&&(r[1]=this.findNextExpandedPane(n).index,t.nextReachedMinPanes=0,r[1]>n+1&&this.panes.forEach((a,i)=>{i>n&&i{i=n+1&&(a.size=a.min,t.nextReachedMinPanes+=a.min)}),this.panes[r[0]].size=100-t.prevPanesSize-t.nextReachedMinPanes-this.panes[this.panesCount-1].min-t.nextPanesSize,null):{sums:t,panesToResize:r}},sumPrevPanesSize(t){return this.panes.reduce((e,n,r)=>e+(re+(r>t+1?n.size:0),0)},findPrevExpandedPane(t){return[...this.panes].reverse().find(e=>e.indexe.min)||{}},findNextExpandedPane(t){return this.panes.find(e=>e.index>t+1&&e.size>e.min)||{}},checkSplitpanesNodes(){Array.from(this.container.children).forEach(t=>{const e=t.classList.contains("splitpanes__pane"),n=t.classList.contains("splitpanes__splitter");!e&&!n&&(t.parentNode.removeChild(t),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))})},addSplitter(t,e,n=!1){const r=t-1,a=document.createElement("div");a.classList.add("splitpanes__splitter"),n||(a.onmousedown=i=>this.onMouseDown(i,r),typeof window<"u"&&"ontouchstart"in window&&(a.ontouchstart=i=>this.onMouseDown(i,r)),a.onclick=i=>this.onSplitterClick(i,r+1)),this.dblClickSplitter&&(a.ondblclick=i=>this.onSplitterDblClick(i,r+1)),e.parentNode.insertBefore(a,e)},removeSplitter(t){t.onmousedown=void 0,t.onclick=void 0,t.ondblclick=void 0,t.parentNode.removeChild(t)},redoSplitters(){const t=Array.from(this.container.children);t.forEach(n=>{n.className.includes("splitpanes__splitter")&&this.removeSplitter(n)});let e=0;t.forEach(n=>{n.className.includes("splitpanes__pane")&&(!e&&this.firstSplitter?this.addSplitter(e,n,!0):e&&this.addSplitter(e,n),e++)})},requestUpdate({target:t,...e}){const n=this.indexedPanes[t._.uid];Object.entries(e).forEach(([r,a])=>n[r]=a)},onPaneAdd(t){let e=-1;Array.from(t.$el.parentNode.children).some(a=>(a.className.includes("splitpanes__pane")&&e++,a===t.$el));const n=parseFloat(t.minSize),r=parseFloat(t.maxSize);this.panes.splice(e,0,{id:t._.uid,index:e,min:isNaN(n)?0:n,max:isNaN(r)?100:r,size:t.size===null?null:parseFloat(t.size),givenSize:t.size,update:t.update}),this.panes.forEach((a,i)=>a.index=i),this.ready&&this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[e]}),this.$emit("pane-add",{index:e,panes:this.panes.map(a=>({min:a.min,max:a.max,size:a.size}))})})},onPaneRemove(t){const e=this.panes.findIndex(r=>r.id===t._.uid),n=this.panes.splice(e,1)[0];this.panes.forEach((r,a)=>r.index=a),this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:{...n,index:e}}),this.$emit("pane-remove",{removed:n,panes:this.panes.map(r=>({min:r.min,max:r.max,size:r.size}))})})},resetPaneSizes(t={}){!t.addedPane&&!t.removedPane?this.initialPanesSizing():this.panes.some(e=>e.givenSize!==null||e.min||e.max<100)?this.equalizeAfterAddOrRemove(t):this.equalize(),this.ready&&this.$emit("resized",this.panes.map(e=>({min:e.min,max:e.max,size:e.size})))},equalize(){const t=100/this.panesCount;let e=0;const n=[],r=[];this.panes.forEach(a=>{a.size=Math.max(Math.min(t,a.max),a.min),e-=a.size,a.size>=a.max&&n.push(a.id),a.size<=a.min&&r.push(a.id)}),e>.1&&this.readjustSizes(e,n,r)},initialPanesSizing(){let t=100;const e=[],n=[];let r=0;this.panes.forEach(i=>{t-=i.size,i.size!==null&&r++,i.size>=i.max&&e.push(i.id),i.size<=i.min&&n.push(i.id)});let a=100;t>.1&&(this.panes.forEach(i=>{i.size===null&&(i.size=Math.max(Math.min(t/(this.panesCount-r),i.max),i.min)),a-=i.size}),a>.1&&this.readjustSizes(t,e,n))},equalizeAfterAddOrRemove({addedPane:t,removedPane:e}={}){let n=100/this.panesCount,r=0;const a=[],i=[];t&&t.givenSize!==null&&(n=(100-t.givenSize)/(this.panesCount-1)),this.panes.forEach(o=>{r-=o.size,o.size>=o.max&&a.push(o.id),o.size<=o.min&&i.push(o.id)}),!(Math.abs(r)<.1)&&(this.panes.forEach(o=>{t&&t.givenSize!==null&&t.id===o.id||(o.size=Math.max(Math.min(n,o.max),o.min)),r-=o.size,o.size>=o.max&&a.push(o.id),o.size<=o.min&&i.push(o.id)}),r>.1&&this.readjustSizes(r,a,i))},readjustSizes(t,e,n){let r;t>0?r=t/(this.panesCount-e.length):r=t/(this.panesCount-n.length),this.panes.forEach((a,i)=>{if(t>0&&!e.includes(a.id)){const o=Math.max(Math.min(a.size+r,a.max),a.min),l=o-a.size;t-=l,a.size=o}else if(!n.includes(a.id)){const o=Math.max(Math.min(a.size+r,a.max),a.min),l=o-a.size;t-=l,a.size=o}a.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[a.id].size}%`})}),Math.abs(t)>.1&&this.$nextTick(()=>{this.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(t){[...this.container.querySelectorAll(".splitpanes__splitter")].forEach((e,n)=>{e.ondblclick=t?r=>this.onSplitterDblClick(r,n):void 0})}},beforeUnmount(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render(){return Kr("div",{ref:"container",class:["splitpanes",`splitpanes--${this.horizontal?"horizontal":"vertical"}`,{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default())}},Sz=(t,e)=>{const n=t.__vccOpts||t;for(const[r,a]of e)n[r]=a;return n},xz={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeUnmount(){this.onPaneRemove(this)},methods:{update(t){this.style=t}},computed:{sizeNumber(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(t){this.requestUpdate({target:this,size:t})},minSizeNumber(t){this.requestUpdate({target:this,min:t})},maxSizeNumber(t){this.requestUpdate({target:this,max:t})}}};function Pz(t,e,n,r,a,i){return Ye(),an("div",{class:"splitpanes__pane",onClick:e[0]||(e[0]=o=>i.onPaneClick(o,t._.uid)),style:vi(t.style)},[Wl(t.$slots,"default")],4)}const wf=Sz(xz,[["render",Pz]]);function Mv(t){return Of()?(qy(t),!0):!1}function kv(t){return typeof t=="function"?t():xe(t)}const F_=typeof window<"u",Nv=()=>{};function Ez(t,e){function n(...r){return new Promise((a,i)=>{Promise.resolve(t(()=>e.apply(this,r),{fn:e,thisArg:this,args:r})).then(a).catch(i)})}return n}const B_=t=>t();function Oz(t=B_){const e=W(!0);function n(){e.value=!1}function r(){e.value=!0}const a=(...i)=>{e.value&&t(...i)};return{isActive:ws(e),pause:n,resume:r,eventFilter:a}}function Tz(...t){if(t.length!==1)return Kt(...t);const e=t[0];return typeof e=="function"?ws(VS(()=>({get:e,set:Nv}))):W(e)}function Iz(t,e=!0){bt()?Re(t):e?t():Ke(t)}var Ty=Object.getOwnPropertySymbols,Az=Object.prototype.hasOwnProperty,Mz=Object.prototype.propertyIsEnumerable,kz=(t,e)=>{var n={};for(var r in t)Az.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Ty)for(var r of Ty(t))e.indexOf(r)<0&&Mz.call(t,r)&&(n[r]=t[r]);return n};function Nz(t,e,n={}){const r=n,{eventFilter:a=B_}=r,i=kz(r,["eventFilter"]);return pe(t,Ez(a,e),i)}var $z=Object.defineProperty,Rz=Object.defineProperties,Lz=Object.getOwnPropertyDescriptors,ps=Object.getOwnPropertySymbols,j_=Object.prototype.hasOwnProperty,z_=Object.prototype.propertyIsEnumerable,Iy=(t,e,n)=>e in t?$z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Dz=(t,e)=>{for(var n in e||(e={}))j_.call(e,n)&&Iy(t,n,e[n]);if(ps)for(var n of ps(e))z_.call(e,n)&&Iy(t,n,e[n]);return t},Fz=(t,e)=>Rz(t,Lz(e)),Bz=(t,e)=>{var n={};for(var r in t)j_.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&ps)for(var r of ps(t))e.indexOf(r)<0&&z_.call(t,r)&&(n[r]=t[r]);return n};function jz(t,e,n={}){const r=n,{eventFilter:a}=r,i=Bz(r,["eventFilter"]),{eventFilter:o,pause:l,resume:s,isActive:u}=Oz(a);return{stop:Nz(t,e,Fz(Dz({},i),{eventFilter:o})),pause:l,resume:s,isActive:u}}function zz(t,e,n){let r;tt(n)?r={evaluating:n}:r=n||{};const{lazy:a=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Nv}=r,s=W(!a),u=o?$n(e):W(e);let f=0;return st(async v=>{if(!s.value)return;f++;const p=f;let g=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const c=await t(d=>{v(()=>{i&&(i.value=!1),g||d()})});p===f&&(u.value=c)}catch(c){l(c)}finally{i&&p===f&&(i.value=!1),g=!0}}),a?K(()=>(s.value=!0,u.value)):u}function Hr(t){var e;const n=kv(t);return(e=n==null?void 0:n.$el)!=null?e:n}const Sr=F_?window:void 0,Wz=F_?window.document:void 0;function Pn(...t){let e,n,r,a;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,a]=t,e=Sr):[e,n,r,a]=t,!e)return Nv;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(f=>f()),i.length=0},l=(f,v,p,g)=>(f.addEventListener(v,p,g),()=>f.removeEventListener(v,p,g)),s=pe(()=>[Hr(e),kv(a)],([f,v])=>{o(),f&&i.push(...n.flatMap(p=>r.map(g=>l(f,p,g,v))))},{immediate:!0,flush:"post"}),u=()=>{s(),o()};return Mv(u),u}const Vz=500;function q9(t,e,n){var r,a;const i=K(()=>Hr(t));let o;function l(){o&&(clearTimeout(o),o=void 0)}function s(f){var v,p,g,c;(v=n==null?void 0:n.modifiers)!=null&&v.self&&f.target!==i.value||(l(),(p=n==null?void 0:n.modifiers)!=null&&p.prevent&&f.preventDefault(),(g=n==null?void 0:n.modifiers)!=null&&g.stop&&f.stopPropagation(),o=setTimeout(()=>e(f),(c=n==null?void 0:n.delay)!=null?c:Vz))}const u={capture:(r=n==null?void 0:n.modifiers)==null?void 0:r.capture,once:(a=n==null?void 0:n.modifiers)==null?void 0:a.once};Pn(i,"pointerdown",s,u),Pn(i,"pointerup",l,u),Pn(i,"pointerleave",l,u)}function Hz(){const t=W(!1);return bt()&&Re(()=>{t.value=!0}),t}function W_(t){const e=Hz();return K(()=>(e.value,!!t()))}function Uz(t,e={}){const{window:n=Sr}=e,r=W_(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let a;const i=W(!1),o=()=>{a&&("removeEventListener"in a?a.removeEventListener("change",l):a.removeListener(l))},l=()=>{r.value&&(o(),a=n.matchMedia(Tz(t).value),i.value=!!(a!=null&&a.matches),a&&("addEventListener"in a?a.addEventListener("change",l):a.addListener(l)))};return st(l),Mv(()=>o()),i}const wl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Cl="__vueuse_ssr_handlers__",Kz=Gz();function Gz(){return Cl in wl||(wl[Cl]=wl[Cl]||{}),wl[Cl]}function qz(t,e){return Kz[t]||e}function Yz(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}var Xz=Object.defineProperty,Ay=Object.getOwnPropertySymbols,Jz=Object.prototype.hasOwnProperty,Qz=Object.prototype.propertyIsEnumerable,My=(t,e,n)=>e in t?Xz(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ky=(t,e)=>{for(var n in e||(e={}))Jz.call(e,n)&&My(t,n,e[n]);if(Ay)for(var n of Ay(e))Qz.call(e,n)&&My(t,n,e[n]);return t};const Zz={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},Ny="vueuse-storage";function e7(t,e,n,r={}){var a;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:s=!0,mergeDefaults:u=!1,shallow:f,window:v=Sr,eventFilter:p,onError:g=I=>{console.error(I)}}=r,c=(f?$n:W)(e);if(!n)try{n=qz("getDefaultStorage",()=>{var I;return(I=Sr)==null?void 0:I.localStorage})()}catch(I){g(I)}if(!n)return c;const d=kv(e),m=Yz(d),h=(a=r.serializer)!=null?a:Zz[m],{pause:y,resume:b}=jz(c,()=>w(c.value),{flush:i,deep:o,eventFilter:p});return v&&l&&(Pn(v,"storage",E),Pn(v,Ny,_)),E(),c;function w(I){try{if(I==null)n.removeItem(t);else{const P=h.write(I),k=n.getItem(t);k!==P&&(n.setItem(t,P),v&&v.dispatchEvent(new CustomEvent(Ny,{detail:{key:t,oldValue:k,newValue:P,storageArea:n}})))}}catch(P){g(P)}}function C(I){const P=I?I.newValue:n.getItem(t);if(P==null)return s&&d!==null&&n.setItem(t,h.write(d)),d;if(!I&&u){const k=h.read(P);return typeof u=="function"?u(k,d):m==="object"&&!Array.isArray(k)?ky(ky({},d),k):k}else return typeof P!="string"?P:h.read(P)}function _(I){E(I.detail)}function E(I){if(!(I&&I.storageArea!==n)){if(I&&I.key==null){c.value=d;return}if(!(I&&I.key!==t)){y();try{c.value=C(I)}catch(P){g(P)}finally{I?Ke(b):b()}}}}}function t7(t){return Uz("(prefers-color-scheme: dark)",t)}function n7({document:t=Wz}={}){if(!t)return W("visible");const e=W(t.visibilityState);return Pn(t,"visibilitychange",()=>{e.value=t.visibilityState}),e}var $y=Object.getOwnPropertySymbols,r7=Object.prototype.hasOwnProperty,a7=Object.prototype.propertyIsEnumerable,i7=(t,e)=>{var n={};for(var r in t)r7.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&$y)for(var r of $y(t))e.indexOf(r)<0&&a7.call(t,r)&&(n[r]=t[r]);return n};function o7(t,e,n={}){const r=n,{window:a=Sr}=r,i=i7(r,["window"]);let o;const l=W_(()=>a&&"ResizeObserver"in a),s=()=>{o&&(o.disconnect(),o=void 0)},u=K(()=>Array.isArray(t)?t.map(p=>Hr(p)):[Hr(t)]),f=pe(u,p=>{if(s(),l.value&&a){o=new ResizeObserver(e);for(const g of p)g&&o.observe(g,i)}},{immediate:!0,flush:"post",deep:!0}),v=()=>{s(),f()};return Mv(v),{isSupported:l,stop:v}}function l7(t,e={width:0,height:0},n={}){const{window:r=Sr,box:a="content-box"}=n,i=K(()=>{var s,u;return(u=(s=Hr(t))==null?void 0:s.namespaceURI)==null?void 0:u.includes("svg")}),o=W(e.width),l=W(e.height);return o7(t,([s])=>{const u=a==="border-box"?s.borderBoxSize:a==="content-box"?s.contentBoxSize:s.devicePixelContentBoxSize;if(r&&i.value){const f=Hr(t);if(f){const v=r.getComputedStyle(f);o.value=parseFloat(v.width),l.value=parseFloat(v.height)}}else if(u){const f=Array.isArray(u)?u:[u];o.value=f.reduce((v,{inlineSize:p})=>v+p,0),l.value=f.reduce((v,{blockSize:p})=>v+p,0)}else o.value=s.contentRect.width,l.value=s.contentRect.height},n),pe(()=>Hr(t),s=>{o.value=s?e.width:0,l.value=s?e.height:0}),{width:o,height:l}}function Y9(t,e,n={}){const{window:r=Sr}=n;return e7(t,e,r==null?void 0:r.localStorage,n)}const s7={page:t=>[t.pageX,t.pageY],client:t=>[t.clientX,t.clientY],screen:t=>[t.screenX,t.screenY],movement:t=>t instanceof Touch?null:[t.movementX,t.movementY]};function u7(t={}){const{type:e="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:a={x:0,y:0},window:i=Sr,target:o=i,eventFilter:l}=t,s=W(a.x),u=W(a.y),f=W(null),v=typeof e=="function"?e:s7[e],p=h=>{const y=v(h);y&&([s.value,u.value]=y,f.value="mouse")},g=h=>{if(h.touches.length>0){const y=v(h.touches[0]);y&&([s.value,u.value]=y,f.value="touch")}},c=()=>{s.value=a.x,u.value=a.y},d=l?h=>l(()=>p(h),{}):h=>p(h),m=l?h=>l(()=>g(h),{}):h=>g(h);return o&&(Pn(o,"mousemove",d,{passive:!0}),Pn(o,"dragover",d,{passive:!0}),n&&e!=="movement"&&(Pn(o,"touchstart",m,{passive:!0}),Pn(o,"touchmove",m,{passive:!0}),r&&Pn(o,"touchend",c,{passive:!0}))),{x:s,y:u,sourceType:f}}function Ry(t,e={}){const{handleOutside:n=!0,window:r=Sr}=e,{x:a,y:i,sourceType:o}=u7(e),l=W(t??(r==null?void 0:r.document.body)),s=W(0),u=W(0),f=W(0),v=W(0),p=W(0),g=W(0),c=W(!0);let d=()=>{};return r&&(d=pe([l,a,i],()=>{const m=Hr(l);if(!m)return;const{left:h,top:y,width:b,height:w}=m.getBoundingClientRect();f.value=h+r.pageXOffset,v.value=y+r.pageYOffset,p.value=w,g.value=b;const C=a.value-f.value,_=i.value-v.value;c.value=b===0||w===0||C<0||_<0||C>b||_>w,(n||!c.value)&&(s.value=C,u.value=_)},{immediate:!0}),Pn(document,"mouseleave",()=>{c.value=!0})),{x:a,y:i,sourceType:o,elementX:s,elementY:u,elementPositionX:f,elementPositionY:v,elementHeight:p,elementWidth:g,isOutside:c,stop:d}}const c7={style:{position:"relative"}},f7=fe({__name:"edgeTrigger",props:{tabIdx:{}},setup(t){const e=t,n=Wo(),r=W(),a=W(),{isOutside:i}=Ry(a),{isOutside:o}=Ry(r),l=K(()=>!i.value&&!!n.dragingTab),s=K(()=>!o.value&&!!n.dragingTab&&!l.value),u=(f,v)=>{var g,c,d,m;const p=bz(((g=f.dataTransfer)==null?void 0:g.getData("text"))??"{}");if(p&&(console.log("on-drop",v,p),(p==null?void 0:p.from)==="tab-drag")){if(f.stopPropagation(),n.dragingTab=void 0,v==="insert"&&p.tabIdx===e.tabIdx)return;const h=n.tabList,y=h[p.tabIdx].panes[p.paneIdx];h[p.tabIdx].panes.splice(p.paneIdx,1),v==="add-right"?(h[e.tabIdx].key=((c=h[e.tabIdx].panes[p.paneIdx-1])==null?void 0:c.key)??h[e.tabIdx].panes[0].key,h.splice(e.tabIdx+1,0,{panes:[y],key:y.key,id:br()})):(h[p.tabIdx].key=((d=h[p.tabIdx].panes[p.paneIdx-1])==null?void 0:d.key)??((m=h[p.tabIdx].panes[0])==null?void 0:m.key),h[e.tabIdx].panes.push(y),h[e.tabIdx].key=y.key),h[p.tabIdx].panes.length===0&&h.splice(p.tabIdx,1)}};return(f,v)=>(Ye(),an("div",{class:wa(["wrap",{accept:s.value}]),ref_key:"trigger",ref:r,onDragover:v[2]||(v[2]=Ln(()=>{},["prevent"])),onDrop:v[3]||(v[3]=Ln(p=>u(p,"insert"),["prevent"]))},[xn("div",{class:wa(["trigger",{accept:l.value}]),ref_key:"edgeTrigger",ref:a,onDragover:v[0]||(v[0]=Ln(()=>{},["prevent"])),onDrop:v[1]||(v[1]=Ln(p=>u(p,"add-right"),["prevent"]))},null,34),xn("div",c7,[Wl(f.$slots,"default",{},void 0,!0)])],34))}});const uu=(t,e)=>{const n=t.__vccOpts||t;for(const[r,a]of e)n[r]=a;return n},d7=uu(f7,[["__scopeId","data-v-1f3b5d72"]]);const V_=N_("useImgSliStore",()=>{const t=W(!1),e=W(!1),n=W(!1),r=W(),a=W(),i=Wo(),o=K(()=>{var s;const l=i.tabList;for(const u of l)if(((s=u.panes.find(f=>f.key===u.key))==null?void 0:s.type)==="img-sli")return!0;return!1});return{drawerVisible:e,fileDragging:t,left:r,right:a,imgSliActived:o,opened:n}}),v7=t=>(hb("data-v-279a61df"),t=t(),mb(),t),p7={key:0,class:"dragging-port-wrap"},h7={class:"content"},m7={key:0,class:"img-wrap"},g7={key:1},y7=v7(()=>xn("div",{style:{padding:"16px"}},null,-1)),b7={key:0,class:"img-wrap"},w7={key:1},C7={key:0,class:"tips",style:{"max-width":"30vw"}},_7={class:"actions"},S7=fe({__name:"DraggingPort",setup(t){const e=V_(),n=Wo(),{left:r,right:a}=oz(e),i=async(s,u)=>{const f=cz(s);if(f){const v=f.nodes[0];if(!$_(v.name))return;e[u]=v}},o=()=>{e.left=void 0,e.right=void 0,e.opened=!1},l=()=>{t_(r.value&&a.value);const s={type:"img-sli",left:r.value,right:a.value,name:`${ke("imgCompare")} ( ${r.value.name} vs ${a.value.name})`,key:br()};n.tabList[0].panes.push(s),n.tabList[0].key=s.key};return(s,u)=>{const f=C4,v=Tn;return Ye(),Xt(lr,null,{default:_t(()=>[(xe(e).fileDragging||xe(r)||xe(a)||xe(e).opened)&&!xe(e).imgSliActived?(Ye(),an("div",p7,[xn("h2",null,qn(s.$t("imgCompare")),1),xn("div",h7,[xn("div",{class:"left port",onDragover:u[1]||(u[1]=Ln(()=>{},["prevent"])),onDrop:u[2]||(u[2]=Ln(p=>i(p,"left"),["prevent"]))},[xe(r)?(Ye(),an("div",m7,[x(f,{src:xe(Py)(xe(r)),preview:{src:xe(vs)(xe(r))}},null,8,["src","preview"]),x(xe(Jl),{class:"close",onClick:u[0]||(u[0]=p=>r.value=void 0)})])):(Ye(),an("div",g7,qn(s.$t("dragImageHere")),1))],32),y7,xn("div",{class:"right port",onDragover:u[4]||(u[4]=Ln(()=>{},["prevent"])),onDrop:u[5]||(u[5]=Ln(p=>i(p,"right"),["prevent"]))},[xe(a)?(Ye(),an("div",b7,[x(f,{src:xe(Py)(xe(a)),preview:{src:xe(vs)(xe(a))}},null,8,["src","preview"]),x(xe(Jl),{class:"close",onClick:u[3]||(u[3]=p=>a.value=void 0)})])):(Ye(),an("div",w7,qn(s.$t("dragImageHere")),1))],32)]),xe(e).opened?(Ye(),an("p",C7," Tips: "+qn(s.$t("imageCompareTips")),1)):pa("",!0),xn("div",_7,[xe(r)&&xe(a)?(Ye(),Xt(v,{key:0,type:"primary",onClick:u[6]||(u[6]=p=>xe(e).drawerVisible=!0)},{default:_t(()=>[Fn(qn(s.$t("confirm")),1)]),_:1})):pa("",!0),xe(r)&&xe(a)?(Ye(),Xt(v,{key:1,type:"primary",onClick:l},{default:_t(()=>[Fn(qn(s.$t("confirm"))+"("+qn(s.$t("openInNewTab"))+")",1)]),_:1})):pa("",!0),x(v,{style:{"margin-left":"16px"},onClick:o},{default:_t(()=>[Fn(qn(s.$t("close")),1)]),_:1})])])):pa("",!0)]),_:1})}}});const x7=uu(S7,[["__scopeId","data-v-279a61df"]]),P7={class:"container"},E7=["src"],O7=fe({__name:"ImgSliSide",props:{side:{},containerWidth:{},img:{},maxEdge:{},percent:{}},setup(t){const e=t,n=K(()=>{let r="";const i=e.containerWidth;return e.side==="left"?r=`calc(50% - ${(e.percent-50)/100*i}px)`:r=`calc(-50% - ${(e.percent-50)/100*i+4}px)`,`${e.maxEdge==="width"?"width:100%":"height:100%"};transform: translate(${r}, -50%)`});return(r,a)=>(Ye(),an("div",P7,[xn("img",{class:wa(["img",[r.side]]),style:vi(n.value),src:xe(vs)(r.img),onDragstart:a[0]||(a[0]=Ln(()=>{},["prevent","stop"]))},null,46,E7)]))}});const Ly=uu(O7,[["__scopeId","data-v-65d66859"]]),T7=fe({__name:"ImgSliComparePane",props:{left:{},right:{}},setup(t,{expose:e}){const n=t,r=W(50),a=([{size:u}])=>{r.value=u},i=W(),{width:o}=l7(i);e({requestFullScreen:()=>{var u;(u=i.value)==null||u.requestFullscreen()}});const s=zz(async()=>{if(!n.left)return"width";const u=await yz(vs(n.left)),f=u.width/u.height,v=document.body.clientWidth/document.body.clientHeight;return f>v?"width":"height"});return(u,f)=>(Ye(),an("div",{ref_key:"wrapperEl",ref:i,style:{height:"100%"}},[x(xe(D_),{class:"default-theme",onResize:a},{default:_t(()=>[u.left?(Ye(),Xt(xe(wf),{key:0},{default:_t(()=>[x(Ly,{side:"left","max-edge":xe(s),"container-width":xe(o),percent:r.value,img:u.left},null,8,["max-edge","container-width","percent","img"])]),_:1})):pa("",!0),u.right?(Ye(),Xt(xe(wf),{key:1},{default:_t(()=>[x(Ly,{"max-edge":xe(s),percent:r.value,img:u.right,side:"right","container-width":xe(o)},null,8,["max-edge","percent","img","container-width"])]),_:1})):pa("",!0)]),_:1})],512))}});const I7={class:"actions"},A7=fe({__name:"ImgSliDrawer",setup(t){const e=V_(),n=W();return(r,a)=>{const i=Tn,o=pF;return Ye(),an(De,null,[x(o,{width:"100vw",visible:xe(e).drawerVisible,"onUpdate:visible":a[2]||(a[2]=l=>xe(e).drawerVisible=l),"destroy-on-close":"",class:"img-sli","close-icon":null},{footer:_t(()=>[xn("div",I7,[x(i,{onClick:a[0]||(a[0]=l=>xe(e).drawerVisible=!1)},{default:_t(()=>[Fn(qn(r.$t("close")),1)]),_:1}),x(i,{onClick:a[1]||(a[1]=l=>{var s;return(s=n.value)==null?void 0:s.requestFullScreen()})},{default:_t(()=>[Fn(qn(r.$t("fullscreenview")),1)]),_:1})])]),default:_t(()=>[xe(e).left&&xe(e).right?(Ye(),Xt(T7,{key:0,ref_key:"splitpane",ref:n,left:xe(e).left,right:xe(e).right},null,8,["left","right"])):pa("",!0)]),_:1},8,["visible"]),x(x7)],64)}}});const M7=fe({__name:"SplitViewTab",setup(t){const e=Wo(),n={local:Ir(()=>mr(()=>import("./stackView-e0419fd8.js"),["assets/stackView-e0419fd8.js","assets/fullScreenContextMenu-217e4fe7.js","assets/FileItem-ba4545b5.js","assets/functionalCallableComp-9395a4a4.js","assets/db-3650b2a5.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/fullScreenContextMenu-5ccd83b3.css","assets/numInput-398b2a8c.js","assets/numInput-a08c6857.css","assets/stackView-88b6d60c.css","assets/index-f4bbe4b8.css","assets/index-d55a76b1.css"])),empty:Ir(()=>mr(()=>import("./emptyStartup-63002399.js"),["assets/emptyStartup-63002399.js","assets/db-3650b2a5.js","assets/emptyStartup-f9353e31.css"])),"global-setting":Ir(()=>mr(()=>import("./globalSetting-2a2b6046.js"),["assets/globalSetting-2a2b6046.js","assets/numInput-398b2a8c.js","assets/functionalCallableComp-9395a4a4.js","assets/db-3650b2a5.js","assets/functionalCallableComp-9fed83c2.css","assets/numInput-a08c6857.css","assets/globalSetting-b8163f11.css","assets/index-f4bbe4b8.css","assets/index-d55a76b1.css"])),"tag-search-matched-image-grid":Ir(()=>mr(()=>import("./MatchedImageGrid-42327ca8.js"),["assets/MatchedImageGrid-42327ca8.js","assets/fullScreenContextMenu-217e4fe7.js","assets/FileItem-ba4545b5.js","assets/functionalCallableComp-9395a4a4.js","assets/db-3650b2a5.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/fullScreenContextMenu-5ccd83b3.css","assets/hook-12226230.js","assets/MatchedImageGrid-337d7e1f.css"])),"tag-search":Ir(()=>mr(()=>import("./TagSearch-c6cdb952.js"),["assets/TagSearch-c6cdb952.js","assets/db-3650b2a5.js","assets/TagSearch-dcb097a6.css","assets/index-f4bbe4b8.css","assets/index-d55a76b1.css"])),"fuzzy-search":Ir(()=>mr(()=>import("./SubstrSearch-350fa211.js"),["assets/SubstrSearch-350fa211.js","assets/fullScreenContextMenu-217e4fe7.js","assets/FileItem-ba4545b5.js","assets/functionalCallableComp-9395a4a4.js","assets/db-3650b2a5.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/fullScreenContextMenu-5ccd83b3.css","assets/hook-12226230.js","assets/SubstrSearch-94ab7a47.css","assets/index-f4bbe4b8.css"])),"img-sli":Ir(()=>mr(()=>import("./ImgSliPagePane-6f84a5cb.js"),[])),"batch-download":Ir(()=>mr(()=>import("./batchDownload-8ece346d.js"),["assets/batchDownload-8ece346d.js","assets/FileItem-ba4545b5.js","assets/functionalCallableComp-9395a4a4.js","assets/db-3650b2a5.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/batchDownload-08be3fc5.css"]))},r=(o,l,s)=>{var f,v;const u=e.tabList[o];if(s==="add"){const p={type:"empty",key:br(),name:ke("emptyStartPage")};u.panes.push(p),u.key=p.key}else{const p=u.panes.findIndex(g=>g.key===l);if(u.key===l&&(u.key=((f=u.panes[p-1])==null?void 0:f.key)??((v=u.panes[1])==null?void 0:v.key)),u.panes.splice(p,1),u.panes.length===0&&e.tabList.splice(o,1),e.tabList.length===0){const g=e.createEmptyPane();e.tabList.push({panes:[g],key:g.key,id:br()})}}},a=W();pe(()=>e.tabList,async()=>{var o;await Ke(),e.saveRecord(),Array.from(((o=a.value)==null?void 0:o.querySelectorAll(".splitpanes__pane"))??[]).forEach((l,s)=>{Array.from(l.querySelectorAll(".ant-tabs-tab")??[]).forEach((u,f)=>{const v=u;v.setAttribute("draggable","true"),v.setAttribute("tabIdx",s.toString()),v.setAttribute("paneIdx",f.toString()),v.ondragend=()=>{e.dragingTab=void 0},v.ondragstart=p=>{e.dragingTab={tabIdx:s,paneIdx:f},p.dataTransfer.setData("text/plain",JSON.stringify({tabIdx:s,paneIdx:f,from:"tab-drag"}))}})})},{immediate:!0,deep:!0});const i=qc(()=>L_.emit("returnToIIB"),100);return Iz(async()=>{const o=window.parent;if(!await pz(()=>o==null?void 0:o.onUiTabChange,200,3e4)){console.log("watch tab change failed");return}o.onUiTabChange(()=>{const l=o.get_uiCurrentTabContent();l!=null&&l.id.includes("infinite-image-browsing")&&i()})}),pe(n7(),o=>o&&i()),(o,l)=>{const s=ls,u=Qi;return Ye(),an("div",{ref_key:"container",ref:a},[x(xe(D_),{class:"default-theme"},{default:_t(()=>[(Ye(!0),an(De,null,Xv(xe(e).tabList,(f,v)=>(Ye(),Xt(xe(wf),{key:f.id},{default:_t(()=>[x(d7,{tabIdx:v},{default:_t(()=>[x(u,{type:"editable-card",activeKey:f.key,"onUpdate:activeKey":p=>f.key=p,onEdit:(p,g)=>r(v,p,g)},{default:_t(()=>[(Ye(!0),an(De,null,Xv(f.panes,(p,g)=>(Ye(),Xt(s,{key:p.key,tab:p.name,class:"pane"},{default:_t(()=>[(Ye(),Xt(bx(n[p.type]),Gf({tabIdx:v,paneIdx:g},p),null,16,["tabIdx","paneIdx"]))]),_:2},1032,["tab"]))),128))]),_:2},1032,["activeKey","onUpdate:activeKey","onEdit"])]),_:2},1032,["tabIdx"])]),_:2},1024))),128))]),_:1}),x(A7)],512)}}});const k7=uu(M7,[["__scopeId","data-v-c479b9de"]]),N7=async t=>{var r;const e=(r=t.conf)==null?void 0:r.global_setting,n=new URLSearchParams(parent.location.search);switch(n.get("action")){case"open":{let a=n.get("path");if(!a||!e)return;const i={extra:e.outdir_extras_samples,save:e.outdir_save,txt2img:e.outdir_txt2img_samples,img2img:e.outdir_img2img_samples};i[a]&&(a=i[a]);const o=t.tabList[0],l={type:"local",path:a,key:br(),name:"",walkModePath:n.get("walk")?a:void 0};o.panes.unshift(l),o.key=l.key,vz(),gz(["action","path","walk"]);break}}};function Dy(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!nr(t)}const H_="app.conf.json",io=W(),U_=()=>Ao.writeFile(H_,JSON.stringify(Me(io.value),null,4)),$7=fe({setup(){const t=async()=>{const e=await x_({directory:!0});if(typeof e=="string"){if(!await Ao.exists(`${e}/config.json`))return ba.error(ke("tauriLaunchConfMessages.configNotFound"));if(!await Ao.exists(`${e}/extensions/sd-webui-infinite-image-browsing`))return ba.error(ke("tauriLaunchConfMessages.folderNotFound"));io.value.sdwebui_dir=e,ba.info(ke("tauriLaunchConfMessages.configCompletedMessage")),await U_(),await lu("shutdown_api_server_command"),await ou(1500),await C_()}};return()=>{let e,n;return x("div",{style:{padding:"32px 0"}},[x("div",{style:{padding:"16px 0"}},[x("h2",null,[ke("tauriLaunchConf.readSdWebuiConfigTitle")]),x("p",null,[ke("tauriLaunchConf.readSdWebuiConfigDescription")]),x(Tn,{onClick:t,type:"primary"},Dy(e=ke("tauriLaunchConf.selectSdWebuiFolder"))?e:{default:()=>[e]})]),x("div",{style:{padding:"16px 0"}},[x("h2",null,[ke("tauriLaunchConf.skipThisConfigTitle")]),x("p",null,[ke("tauriLaunchConf.skipThisConfigDescription")]),x(Tn,{type:"primary",onClick:Bt.destroyAll},Dy(n=ke("tauriLaunchConf.skipButton"))?n:{default:()=>[n]})])])}}}),R7=async()=>{try{io.value=JSON.parse(await Ao.readTextFile(H_))}catch{}io.value||(io.value={sdwebui_dir:""},await U_(),Bt.info({title:ke("tauriLaunchConfMessages.firstTimeUserTitle"),content:x($7,null,null),width:"80vw",okText:ke("tauriLaunchConf.skipButton"),okButtonProps:{onClick:Bt.destroyAll}}))},L7=!!{}.TAURI_ARCH,X9=window===parent,D7=fe({__name:"App",setup(t){const e=Wo(),n=mz();return Ey("updateGlobalSetting",async()=>{await Kj(),console.log(ds.value);const r=await Yj();e.conf=r;const a=await Oy(r);e.quickMovePaths=a.filter(i=>{var o,l;return(l=(o=i==null?void 0:i.dir)==null?void 0:o.trim)==null?void 0:l.call(o)}),N7(e)}),Ey("returnToIIB",async()=>{const r=e.conf;if(!r)return;const a=r.global_setting;if(!a.outdir_txt2img_samples&&!a.outdir_img2img_samples)return;const i=new Set(e.quickMovePaths.map(l=>l.key));if(i.has("outdir_txt2img_samples")&&i.has("outdir_img2img_samples"))return;const o=await Oy(r);e.quickMovePaths=o.filter(l=>{var s,u;return(u=(s=l==null?void 0:l.dir)==null?void 0:s.trim)==null?void 0:u.call(s)})}),Re(async()=>{L7&&R7(),L_.emit("updateGlobalSetting")}),(r,a)=>{const i=rn;return Ye(),Xt(i,{loading:!xe(n).isIdle},{default:_t(()=>[x(k7)]),_:1},8,["loading"])}}});function F7(t){return typeof t=="object"&&t!==null}function Fy(t,e){return t=F7(t)?t:Object.create(null),new Proxy(t,{get(n,r,a){return r==="key"?Reflect.get(n,r,a):Reflect.get(n,r,a)||Reflect.get(e,r,a)}})}function B7(t,e){return e.reduce((n,r)=>n==null?void 0:n[r],t)}function j7(t,e,n){return e.slice(0,-1).reduce((r,a)=>/^(__proto__)$/.test(a)?{}:r[a]=r[a]||{},t)[e[e.length-1]]=n,t}function z7(t,e){return e.reduce((n,r)=>{const a=r.split(".");return j7(n,a,B7(t,a))},{})}function By(t,{storage:e,serializer:n,key:r,debug:a}){try{const i=e==null?void 0:e.getItem(r);i&&t.$patch(n==null?void 0:n.deserialize(i))}catch(i){a&&console.error(i)}}function jy(t,{storage:e,serializer:n,key:r,paths:a,debug:i}){try{const o=Array.isArray(a)?z7(t,a):t;e.setItem(r,n.serialize(o))}catch(o){i&&console.error(o)}}function W7(t={}){return e=>{const{auto:n=!1}=t,{options:{persist:r=n},store:a}=e;if(!r)return;const i=(Array.isArray(r)?r.map(o=>Fy(o,t)):[Fy(r,t)]).map(({storage:o=localStorage,beforeRestore:l=null,afterRestore:s=null,serializer:u={serialize:JSON.stringify,deserialize:JSON.parse},key:f=a.$id,paths:v=null,debug:p=!1})=>{var g;return{storage:o,beforeRestore:l,afterRestore:s,serializer:u,key:((g=t.key)!=null?g:c=>c)(f),paths:v,debug:p}});a.$persist=()=>{i.forEach(o=>{jy(a.$state,o)})},a.$hydrate=({runHooks:o=!0}={})=>{i.forEach(l=>{const{beforeRestore:s,afterRestore:u}=l;o&&(s==null||s(e)),By(a,l),o&&(u==null||u(e))})},i.forEach(o=>{const{beforeRestore:l,afterRestore:s}=o;l==null||l(e),By(a,o),s==null||s(e),a.$subscribe((u,f)=>{jy(f,o)},{detached:!0})})}}var V7=W7();const K_=ez();K_.use(V7);kP(D7).use(K_).use(wv).mount("#zanllp_dev_gradio_fe");const H7=t7(),U7=()=>{try{return parent.location.search.includes("theme=dark")}catch{}return!1};pe([H7,U7],async([t,e])=>{await ou();const n=document.getElementsByTagName("html")[0];if(t||e){document.body.classList.add("dark");const r=document.createElement("style"),{default:a}=await mr(()=>import("./antd.dark-35e9b327.js"),[]);r.innerHTML=a,r.setAttribute("antd-dark",""),n.appendChild(r)}else document.body.classList.remove("dark"),Array.from(n.querySelectorAll("style[antd-dark]")).forEach(r=>r.remove())},{immediate:!0});export{W as $,Xv as A,vi as B,pa as C,EN as D,L7 as E,r9 as F,K7 as G,Vx as H,B9 as I,F9 as J,G7 as K,vs as L,Vr as M,wa as N,as as O,J as P,rn as Q,Bt as R,n_ as S,YN as T,At as U,Tn as V,Po as W,uu as X,No as Y,gi as Z,ut as _,T as a,$n as a$,ge as a0,Ci as a1,ar as a2,yt as a3,Ns as a4,or as a5,Is as a6,lr as a7,wT as a8,xT as a9,r$ as aA,Ce as aB,qc as aC,j9 as aD,Uj as aE,Ao as aF,H_ as aG,C_ as aH,Xe as aI,o9 as aJ,ct as aK,rm as aL,Qe as aM,a9 as aN,yI as aO,NT as aP,nh as aQ,Iw as aR,qD as aS,Ds as aT,b$ as aU,Zf as aV,_e as aW,ho as aX,j$ as aY,hO as aZ,SP as a_,id as aa,vT as ab,Y0 as ac,X0 as ad,Jl as ae,vd as af,lt as ag,x_ as ah,ke as ai,Kr as aj,Xj as ak,ba as al,L_ as am,V_ as an,K as ao,QR as ap,br as aq,t_ as ar,Yc as as,hb as at,mb as au,Bf as av,Re as aw,Ke as ax,xt as ay,Yl as az,ze as b,Y9 as b$,st as b0,dO as b1,n9 as b2,mi as b3,Me as b4,U$ as b5,Id as b6,_o as b7,ww as b8,x$ as b9,Fa as bA,e9 as bB,GN as bC,fx as bD,X7 as bE,Y7 as bF,Gf as bG,Hc as bH,Z7 as bI,u0 as bJ,tC as bK,On as bL,Wn as bM,CC as bN,mz as bO,Ey as bP,K9 as bQ,AN as bR,IF as bS,gF as bT,Q7 as bU,hf as bV,SB as bW,gI as bX,s0 as bY,nr as bZ,D9 as b_,S$ as ba,HR as bb,RR as bc,xC as bd,rr as be,Kd as bf,Us as bg,Do as bh,AE as bi,UR as bj,Ks as bk,SL as bl,kl as bm,rt as bn,Nt as bo,z2 as bp,Jt as bq,t9 as br,Qw as bs,Zw as bt,Fw as bu,Le as bv,Gt as bw,Sn as bx,Aw as by,$E as bz,x as c,eC as c0,Eo as c1,T7 as c2,oz as c3,cz as c4,Si as c5,i$ as c6,UN as c7,ZN as c8,zN as c9,H9 as cA,R9 as cB,L9 as cC,ex as cD,Cs as cE,BS as cF,Sb as cG,wx as cH,Wl as cI,bx as cJ,q7 as cK,Gc as cL,J7 as cM,Py as cN,fz as cO,C4 as cP,Xf as cQ,Tm as cR,X9 as cS,i9 as ca,zn as cb,Od as cc,_d as cd,sb as ce,bt as cf,$T as cg,sd as ch,N_ as ci,gy as cj,W9 as ck,Av as cl,z9 as cm,V9 as cn,Q1 as co,ou as cp,wz as cq,Cz as cr,G9 as cs,di as ct,l7 as cu,$_ as cv,Ry as cw,q9 as cx,Z1 as cy,_z as cz,fe as d,jn as e,pn as f,Wr as g,te as h,He as i,Bd as j,Wo as k,pe as l,Xt as m,_t as n,Ye as o,xn as p,Ln as q,xe as r,tt as s,U9 as t,Ze as u,qn as v,ks as w,Fn as x,an as y,De as z};
+ */let I_;const su=t=>I_=t,A_=Symbol();function yf(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var ro;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(ro||(ro={}));function ez(){const t=Ef(!0),e=t.run(()=>W({}));let n=[],r=[];const a=Cs({install(i){su(a),a._a=i,i.provide(A_,a),i.config.globalProperties.$pinia=a,r.forEach(o=>n.push(o)),r=[]},use(i){return!this._a&&!Zj?r.push(i):n.push(i),this},_p:n,_a:null,_e:t,_s:new Map,state:e});return a}const M_=()=>{};function xy(t,e,n,r=M_){t.push(e);const a=()=>{const i=t.indexOf(e);i>-1&&(t.splice(i,1),r())};return!n&&Of()&&qy(a),a}function Da(t,...e){t.slice().forEach(n=>{n(...e)})}const tz=t=>t();function bf(t,e){t instanceof Map&&e instanceof Map&&e.forEach((n,r)=>t.set(r,n)),t instanceof Set&&e instanceof Set&&e.forEach(t.add,t);for(const n in e){if(!e.hasOwnProperty(n))continue;const r=e[n],a=t[n];yf(a)&&yf(r)&&t.hasOwnProperty(n)&&!tt(r)&&!wr(r)?t[n]=bf(a,r):t[n]=r}return t}const nz=Symbol();function rz(t){return!yf(t)||!t.hasOwnProperty(nz)}const{assign:Rr}=Object;function az(t){return!!(tt(t)&&t.effect)}function iz(t,e,n,r){const{state:a,actions:i,getters:o}=e,l=n.state.value[t];let s;function u(){l||(n.state.value[t]=a?a():{});const f=sb(n.state.value[t]);return Rr(f,i,Object.keys(o||{}).reduce((v,p)=>(v[p]=Cs(K(()=>{su(n);const g=n._s.get(t);return o[p].call(g,g)})),v),{}))}return s=k_(t,u,e,n,r,!0),s}function k_(t,e,n={},r,a,i){let o;const l=Rr({actions:{}},n),s={deep:!0};let u,f,v=[],p=[],g;const c=r.state.value[t];!i&&!c&&(r.state.value[t]={}),W({});let d;function m(I){let P;u=f=!1,typeof I=="function"?(I(r.state.value[t]),P={type:ro.patchFunction,storeId:t,events:g}):(bf(r.state.value[t],I),P={type:ro.patchObject,payload:I,storeId:t,events:g});const k=d=Symbol();Ke().then(()=>{d===k&&(u=!0)}),f=!0,Da(v,P,r.state.value[t])}const h=i?function(){const{state:P}=n,k=P?P():{};this.$patch(L=>{Rr(L,k)})}:M_;function y(){o.stop(),v=[],p=[],r._s.delete(t)}function b(I,P){return function(){su(r);const k=Array.from(arguments),L=[],F=[];function j(M){L.push(M)}function z(M){F.push(M)}Da(p,{args:k,name:I,store:C,after:j,onError:z});let $;try{$=P.apply(this&&this.$id===t?this:C,k)}catch(M){throw Da(F,M),M}return $ instanceof Promise?$.then(M=>(Da(L,M),M)).catch(M=>(Da(F,M),Promise.reject(M))):(Da(L,$),$)}}const w={_p:r,$id:t,$onAction:xy.bind(null,p),$patch:m,$reset:h,$subscribe(I,P={}){const k=xy(v,I,P.detached,()=>L()),L=o.run(()=>pe(()=>r.state.value[t],F=>{(P.flush==="sync"?f:u)&&I({storeId:t,type:ro.direct,events:g},F)},Rr({},s,P)));return k},$dispose:y},C=rt(w);r._s.set(t,C);const _=r._a&&r._a.runWithContext||tz,E=r._e.run(()=>(o=Ef(),_(()=>o.run(e))));for(const I in E){const P=E[I];if(tt(P)&&!az(P)||wr(P))i||(c&&rz(P)&&(tt(P)?P.value=c[I]:bf(P,c[I])),r.state.value[t][I]=P);else if(typeof P=="function"){const k=b(I,P);E[I]=k,l.actions[I]=P}}return Rr(C,E),Rr(Me(C),E),Object.defineProperty(C,"$state",{get:()=>r.state.value[t],set:I=>{m(P=>{Rr(P,I)})}}),r._p.forEach(I=>{Rr(C,o.run(()=>I({store:C,app:r._a,pinia:r,options:l})))}),c&&i&&n.hydrate&&n.hydrate(C.$state,c),u=!0,f=!0,C}function N_(t,e,n){let r,a;const i=typeof e=="function";typeof t=="string"?(r=t,a=i?n:e):(a=t,r=t.id);function o(l,s){const u=Ix();return l=l||(u?Xe(A_,null):null),l&&su(l),l=I_,l._s.has(r)||(i?k_(r,e,a,l):iz(r,a,l)),l._s.get(r)}return o.$id=r,o}function oz(t){{t=Me(t);const e={};for(const n in t){const r=t[n];(tt(r)||wr(r))&&(e[n]=Kt(t,n))}return e}}const lz=t=>Yc({...t,name:typeof t.name=="string"?t.name:t.nameFallbackStr??""}),sz=t=>({...t,panes:t.panes.map(lz)}),Wo=N_("useGlobalStore",()=>{const t=W(),e=W([]),n=W(!0),r=W(512),a=W(Av.CREATED_TIME_DESC),i=W(256),o=()=>({type:"empty",name:ke("emptyStartPage"),key:br()}),l=W([]);Re(()=>{const b=o();l.value.push({panes:[b],key:b.key,id:br()})});const s=W(),u=W(new Array),f=Date.now(),v=W(),p=()=>{var w;const b=Me(l.value).map(sz);((w=v.value)==null?void 0:w[0].time)!==f?v.value=[{tabs:b,time:f},...v.value??[]]:v.value[0].tabs=b,v.value=v.value.slice(0,2)},g=async(b,w,C)=>{let _=l.value.map(I=>I.panes).flat().find(I=>I.type==="tag-search-matched-image-grid"&&I.id===w);if(_){_.selectedTagIds=Yc(C);return}else _={type:"tag-search-matched-image-grid",id:w,selectedTagIds:Yc(C),key:br(),name:ke("searchResults")};const E=l.value[b+1];E?(E.key=_.key,E.panes.push(_)):l.value.push({panes:[_],key:_.key,id:br()})},c=W(X1());pe(c,b=>wv.global.locale.value=b);const d=W(!1),m=W({delete:"",download:""}),h=K(()=>{const b=["outdir_extras_samples","outdir_save","outdir_txt2img_samples","outdir_img2img_samples","outdir_img2img_grids","outdir_txt2img_grids"],w=e.value.filter(C=>b.includes(C.key)).map(C=>[C.zh,C.dir]);return Object.fromEntries(w)}),y=rt({deleteOneOnly:!1});return{defaultSortingMethod:a,defaultGridCellWidth:i,pathAliasMap:h,createEmptyPane:o,lang:c,tabList:l,conf:t,quickMovePaths:e,enableThumbnail:n,dragingTab:s,saveRecord:p,recent:u,tabListHistoryRecord:v,gridThumbnailResolution:r,longPressOpenContextMenu:d,openTagSearchMatchedImageGridInRight:g,onlyFoldersAndImages:W(!0),fullscreenPreviewInitialUrl:W(""),shortcut:m,dontShowAgain:W(!1),dontShowAgainNewImgOpts:W(!1),ignoredConfirmActions:y}},{persist:{paths:["dontShowAgainNewImgOpts","defaultSortingMethod","defaultGridCellWidth","dontShowAgain","lang","enableThumbnail","tabListHistoryRecord","recent","gridThumbnailResolution","longPressOpenContextMenu","onlyFoldersAndImages","shortcut","ignoredConfirmActions"]}}),ao=encodeURIComponent,vs=(t,e=!1)=>`${Iv.value}/file?path=${ao(t.fullpath)}&t=${ao(t.date)}${e?`&disposition=${ao(t.name)}`:""}`,Py=(t,e="512x512")=>`${Iv.value}/image-thumbnail?path=${ao(t.fullpath)}&size=${e}&t=${ao(t.date)}`,uz=t=>typeof t=="object"&&t.__id==="FileTransferData",cz=t=>{var n;const e=JSON.parse(((n=t.dataTransfer)==null?void 0:n.getData("text"))??"{}");return uz(e)?e:null},W9=t=>Z1(t,"fullpath");function $_(t){var r;if(typeof t!="string")return!1;const e=[".jpg",".jpeg",".png",".gif",".bmp",".webp"],n=(r=t.split(".").pop())==null?void 0:r.toLowerCase();return n!==void 0&&e.includes(`.${n}`)}function fz(t){var r;if(typeof t!="string")return!1;const e=[".mp4",".avi",".mov",".mkv"],n=(r=t.split(".").pop())==null?void 0:r.toLowerCase();return n!==void 0&&e.includes(`.${n}`)}const V9=t=>$_(t)||fz(t);function H9(t){const e=document.createElement("a");e.style.display="none",document.body.appendChild(e),t.forEach(n=>{e.href=n,e.download="",e.click()}),document.body.removeChild(e)}function R_(){try{return parent.window.gradioApp()}catch{}const t=parent.document.getElementsByTagName("gradio-app"),e=t.length==0?null:t[0].shadowRoot;return e||document}const dz=()=>{const t=R_().querySelectorAll("#tabs > .tabitem[id^=tab_]");return Array.from(t).findIndex(e=>e.id.includes("infinite-image-browsing"))},vz=()=>{try{R_().querySelector("#tabs").querySelectorAll("button")[dz()].click()}catch(t){console.error(t)}},pz=async(t,e=100,n=1e3)=>new Promise(r=>{const a=(i=0)=>{const o=t();o!=null||i>n/e?r(o):setTimeout(()=>a(++i),e)};a()}),hz=(t,...e)=>e.reduce((n,r)=>(n[r]=t==null?void 0:t[r],n),{}),mz=()=>rt(new Io(-1,0,-1,"throw")),U9=async(t,e)=>{try{if(navigator.clipboard)await navigator.clipboard.writeText(t);else{const n=document.createElement("input");n.value=t,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}ba.success(e??ke("copied"))}catch{ba.error("copy failed. maybe it's non-secure environment")}},{useEventListen:Ey,eventEmitter:L_}=Q1();function K9(t){let e=null,n=!1;return async function(...r){if(n)return e;n=!0;try{return e=t.apply(this,r),await e}finally{n=!1}}}function gz(t){const e=parent.location.href,n=new URLSearchParams(parent.location.search);t.forEach(a=>{n.delete(a)});const r=`${e.split("?")[0]}${n.size?"?":""}${n.toString()}`;return parent.history.pushState(null,"",r),r}const yz=t=>new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=a=>n(a),r.src=t}),bz=t=>{try{return JSON.parse(t)}catch{return null}};function wz(t){return/^(?:\/|[a-z]:)/i.test(di(t))}function di(t){if(!t)return"";t=t.replace(/\\/g,"/"),t=t.replace(/\/+/g,"/");const e=t.split("/"),n=[];for(let i=0;i{const n=wz(t)?t:di(Cz(e,t));return di(n)},G9=t=>{t=di(t);const e=t.split("/").filter(n=>n);return e[0].endsWith(":")&&(e[0]=e[0]+"/"),e},Oy=async({global_setting:t,sd_cwd:e,home:n,extra_paths:r,cwd:a})=>{const o={...hz(t,"outdir_grids","outdir_extras_samples","outdir_img2img_grids","outdir_img2img_samples","outdir_grids","outdir_extras_samples","outdir_samples","outdir_txt2img_grids","outdir_txt2img_samples","outdir_save"),cwd:e,home:n,desktop:`${n}/Desktop`};Object.keys(o).forEach(p=>{const g=p;if(o[g])try{o[g]=_z(o[g],e)}catch(c){console.error(c)}});const l=await Xj(Object.values(o).filter(p=>p)),s={outdir_txt2img_samples:ke("t2i"),outdir_img2img_samples:ke("i2i"),outdir_save:ke("saveButtonSavesTo"),outdir_extras_samples:ke("extra"),outdir_grids:ke("gridImage"),outdir_img2img_grids:ke("i2i-grid"),outdir_samples:ke("image"),outdir_txt2img_grids:ke("t2i-grid"),cwd:ke("workingFolder"),home:"home",desktop:ke("desktop")},u={home:n,[ke("desktop")]:o.desktop,[ke("workingFolder")]:a,[ke("t2i")]:o.outdir_txt2img_samples,[ke("i2i")]:o.outdir_img2img_samples},f=p=>{p=di(p);const g=[];for(const[c,d]of Object.entries(u))c&&d&&g.push(p.replace(d,"$"+c));return g.sort((c,d)=>c.length-d.length)[0]},v=Object.keys(s).filter(p=>l[o[p]]).map(p=>{const g=p;return{key:g,zh:s[g],dir:o[g],can_delete:!1,type:"preset"}}).concat(r.map(p=>({key:p.path,zh:f(p.path),dir:p.path,can_delete:!0,type:p.type})));return Z1(v,p=>p.key+p.type)};const D_={name:"splitpanes",emits:["ready","resize","resized","pane-click","pane-maximize","pane-add","pane-remove","splitter-click"],props:{horizontal:{type:Boolean},pushOtherPanes:{type:Boolean,default:!0},dblClickSplitter:{type:Boolean,default:!0},rtl:{type:Boolean,default:!1},firstSplitter:{type:Boolean}},provide(){return{requestUpdate:this.requestUpdate,onPaneAdd:this.onPaneAdd,onPaneRemove:this.onPaneRemove,onPaneClick:this.onPaneClick}},data:()=>({container:null,ready:!1,panes:[],touch:{mouseDown:!1,dragging:!1,activeSplitter:null},splitterTaps:{splitter:null,timeoutId:null}}),computed:{panesCount(){return this.panes.length},indexedPanes(){return this.panes.reduce((t,e)=>(t[e.id]=e)&&t,{})}},methods:{updatePaneComponents(){this.panes.forEach(t=>{t.update&&t.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[t.id].size}%`})})},bindEvents(){document.addEventListener("mousemove",this.onMouseMove,{passive:!1}),document.addEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.addEventListener("touchmove",this.onMouseMove,{passive:!1}),document.addEventListener("touchend",this.onMouseUp))},unbindEvents(){document.removeEventListener("mousemove",this.onMouseMove,{passive:!1}),document.removeEventListener("mouseup",this.onMouseUp),"ontouchstart"in window&&(document.removeEventListener("touchmove",this.onMouseMove,{passive:!1}),document.removeEventListener("touchend",this.onMouseUp))},onMouseDown(t,e){this.bindEvents(),this.touch.mouseDown=!0,this.touch.activeSplitter=e},onMouseMove(t){this.touch.mouseDown&&(t.preventDefault(),this.touch.dragging=!0,this.calculatePanesSize(this.getCurrentMouseDrag(t)),this.$emit("resize",this.panes.map(e=>({min:e.min,max:e.max,size:e.size}))))},onMouseUp(){this.touch.dragging&&this.$emit("resized",this.panes.map(t=>({min:t.min,max:t.max,size:t.size}))),this.touch.mouseDown=!1,setTimeout(()=>{this.touch.dragging=!1,this.unbindEvents()},100)},onSplitterClick(t,e){"ontouchstart"in window&&(t.preventDefault(),this.dblClickSplitter&&(this.splitterTaps.splitter===e?(clearTimeout(this.splitterTaps.timeoutId),this.splitterTaps.timeoutId=null,this.onSplitterDblClick(t,e),this.splitterTaps.splitter=null):(this.splitterTaps.splitter=e,this.splitterTaps.timeoutId=setTimeout(()=>{this.splitterTaps.splitter=null},500)))),this.touch.dragging||this.$emit("splitter-click",this.panes[e])},onSplitterDblClick(t,e){let n=0;this.panes=this.panes.map((r,a)=>(r.size=a===e?r.max:r.min,a!==e&&(n+=r.min),r)),this.panes[e].size-=n,this.$emit("pane-maximize",this.panes[e]),this.$emit("resized",this.panes.map(r=>({min:r.min,max:r.max,size:r.size})))},onPaneClick(t,e){this.$emit("pane-click",this.indexedPanes[e])},getCurrentMouseDrag(t){const e=this.container.getBoundingClientRect(),{clientX:n,clientY:r}="ontouchstart"in window&&t.touches?t.touches[0]:t;return{x:n-e.left,y:r-e.top}},getCurrentDragPercentage(t){t=t[this.horizontal?"y":"x"];const e=this.container[this.horizontal?"clientHeight":"clientWidth"];return this.rtl&&!this.horizontal&&(t=e-t),t*100/e},calculatePanesSize(t){const e=this.touch.activeSplitter;let n={prevPanesSize:this.sumPrevPanesSize(e),nextPanesSize:this.sumNextPanesSize(e),prevReachedMinPanes:0,nextReachedMinPanes:0};const r=0+(this.pushOtherPanes?0:n.prevPanesSize),a=100-(this.pushOtherPanes?0:n.nextPanesSize),i=Math.max(Math.min(this.getCurrentDragPercentage(t),a),r);let o=[e,e+1],l=this.panes[o[0]]||null,s=this.panes[o[1]]||null;const u=l.max<100&&i>=l.max+n.prevPanesSize,f=s.max<100&&i<=100-(s.max+this.sumNextPanesSize(e+1));if(u||f){u?(l.size=l.max,s.size=Math.max(100-l.max-n.prevPanesSize-n.nextPanesSize,0)):(l.size=Math.max(100-s.max-n.prevPanesSize-this.sumNextPanesSize(e+1),0),s.size=s.max);return}if(this.pushOtherPanes){const v=this.doPushOtherPanes(n,i);if(!v)return;({sums:n,panesToResize:o}=v),l=this.panes[o[0]]||null,s=this.panes[o[1]]||null}l!==null&&(l.size=Math.min(Math.max(i-n.prevPanesSize-n.prevReachedMinPanes,l.min),l.max)),s!==null&&(s.size=Math.min(Math.max(100-i-n.nextPanesSize-n.nextReachedMinPanes,s.min),s.max))},doPushOtherPanes(t,e){const n=this.touch.activeSplitter,r=[n,n+1];return e{i>r[0]&&i<=n&&(a.size=a.min,t.prevReachedMinPanes+=a.min)}),t.prevPanesSize=this.sumPrevPanesSize(r[0]),r[0]===void 0)?(t.prevReachedMinPanes=0,this.panes[0].size=this.panes[0].min,this.panes.forEach((a,i)=>{i>0&&i<=n&&(a.size=a.min,t.prevReachedMinPanes+=a.min)}),this.panes[r[1]].size=100-t.prevReachedMinPanes-this.panes[0].min-t.prevPanesSize-t.nextPanesSize,null):e>100-t.nextPanesSize-this.panes[r[1]].min&&(r[1]=this.findNextExpandedPane(n).index,t.nextReachedMinPanes=0,r[1]>n+1&&this.panes.forEach((a,i)=>{i>n&&i{i=n+1&&(a.size=a.min,t.nextReachedMinPanes+=a.min)}),this.panes[r[0]].size=100-t.prevPanesSize-t.nextReachedMinPanes-this.panes[this.panesCount-1].min-t.nextPanesSize,null):{sums:t,panesToResize:r}},sumPrevPanesSize(t){return this.panes.reduce((e,n,r)=>e+(re+(r>t+1?n.size:0),0)},findPrevExpandedPane(t){return[...this.panes].reverse().find(e=>e.indexe.min)||{}},findNextExpandedPane(t){return this.panes.find(e=>e.index>t+1&&e.size>e.min)||{}},checkSplitpanesNodes(){Array.from(this.container.children).forEach(t=>{const e=t.classList.contains("splitpanes__pane"),n=t.classList.contains("splitpanes__splitter");!e&&!n&&(t.parentNode.removeChild(t),console.warn("Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed."))})},addSplitter(t,e,n=!1){const r=t-1,a=document.createElement("div");a.classList.add("splitpanes__splitter"),n||(a.onmousedown=i=>this.onMouseDown(i,r),typeof window<"u"&&"ontouchstart"in window&&(a.ontouchstart=i=>this.onMouseDown(i,r)),a.onclick=i=>this.onSplitterClick(i,r+1)),this.dblClickSplitter&&(a.ondblclick=i=>this.onSplitterDblClick(i,r+1)),e.parentNode.insertBefore(a,e)},removeSplitter(t){t.onmousedown=void 0,t.onclick=void 0,t.ondblclick=void 0,t.parentNode.removeChild(t)},redoSplitters(){const t=Array.from(this.container.children);t.forEach(n=>{n.className.includes("splitpanes__splitter")&&this.removeSplitter(n)});let e=0;t.forEach(n=>{n.className.includes("splitpanes__pane")&&(!e&&this.firstSplitter?this.addSplitter(e,n,!0):e&&this.addSplitter(e,n),e++)})},requestUpdate({target:t,...e}){const n=this.indexedPanes[t._.uid];Object.entries(e).forEach(([r,a])=>n[r]=a)},onPaneAdd(t){let e=-1;Array.from(t.$el.parentNode.children).some(a=>(a.className.includes("splitpanes__pane")&&e++,a===t.$el));const n=parseFloat(t.minSize),r=parseFloat(t.maxSize);this.panes.splice(e,0,{id:t._.uid,index:e,min:isNaN(n)?0:n,max:isNaN(r)?100:r,size:t.size===null?null:parseFloat(t.size),givenSize:t.size,update:t.update}),this.panes.forEach((a,i)=>a.index=i),this.ready&&this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({addedPane:this.panes[e]}),this.$emit("pane-add",{index:e,panes:this.panes.map(a=>({min:a.min,max:a.max,size:a.size}))})})},onPaneRemove(t){const e=this.panes.findIndex(r=>r.id===t._.uid),n=this.panes.splice(e,1)[0];this.panes.forEach((r,a)=>r.index=a),this.$nextTick(()=>{this.redoSplitters(),this.resetPaneSizes({removedPane:{...n,index:e}}),this.$emit("pane-remove",{removed:n,panes:this.panes.map(r=>({min:r.min,max:r.max,size:r.size}))})})},resetPaneSizes(t={}){!t.addedPane&&!t.removedPane?this.initialPanesSizing():this.panes.some(e=>e.givenSize!==null||e.min||e.max<100)?this.equalizeAfterAddOrRemove(t):this.equalize(),this.ready&&this.$emit("resized",this.panes.map(e=>({min:e.min,max:e.max,size:e.size})))},equalize(){const t=100/this.panesCount;let e=0;const n=[],r=[];this.panes.forEach(a=>{a.size=Math.max(Math.min(t,a.max),a.min),e-=a.size,a.size>=a.max&&n.push(a.id),a.size<=a.min&&r.push(a.id)}),e>.1&&this.readjustSizes(e,n,r)},initialPanesSizing(){let t=100;const e=[],n=[];let r=0;this.panes.forEach(i=>{t-=i.size,i.size!==null&&r++,i.size>=i.max&&e.push(i.id),i.size<=i.min&&n.push(i.id)});let a=100;t>.1&&(this.panes.forEach(i=>{i.size===null&&(i.size=Math.max(Math.min(t/(this.panesCount-r),i.max),i.min)),a-=i.size}),a>.1&&this.readjustSizes(t,e,n))},equalizeAfterAddOrRemove({addedPane:t,removedPane:e}={}){let n=100/this.panesCount,r=0;const a=[],i=[];t&&t.givenSize!==null&&(n=(100-t.givenSize)/(this.panesCount-1)),this.panes.forEach(o=>{r-=o.size,o.size>=o.max&&a.push(o.id),o.size<=o.min&&i.push(o.id)}),!(Math.abs(r)<.1)&&(this.panes.forEach(o=>{t&&t.givenSize!==null&&t.id===o.id||(o.size=Math.max(Math.min(n,o.max),o.min)),r-=o.size,o.size>=o.max&&a.push(o.id),o.size<=o.min&&i.push(o.id)}),r>.1&&this.readjustSizes(r,a,i))},readjustSizes(t,e,n){let r;t>0?r=t/(this.panesCount-e.length):r=t/(this.panesCount-n.length),this.panes.forEach((a,i)=>{if(t>0&&!e.includes(a.id)){const o=Math.max(Math.min(a.size+r,a.max),a.min),l=o-a.size;t-=l,a.size=o}else if(!n.includes(a.id)){const o=Math.max(Math.min(a.size+r,a.max),a.min),l=o-a.size;t-=l,a.size=o}a.update({[this.horizontal?"height":"width"]:`${this.indexedPanes[a.id].size}%`})}),Math.abs(t)>.1&&this.$nextTick(()=>{this.ready&&console.warn("Splitpanes: Could not resize panes correctly due to their constraints.")})}},watch:{panes:{deep:!0,immediate:!1,handler(){this.updatePaneComponents()}},horizontal(){this.updatePaneComponents()},firstSplitter(){this.redoSplitters()},dblClickSplitter(t){[...this.container.querySelectorAll(".splitpanes__splitter")].forEach((e,n)=>{e.ondblclick=t?r=>this.onSplitterDblClick(r,n):void 0})}},beforeUnmount(){this.ready=!1},mounted(){this.container=this.$refs.container,this.checkSplitpanesNodes(),this.redoSplitters(),this.resetPaneSizes(),this.$emit("ready"),this.ready=!0},render(){return Kr("div",{ref:"container",class:["splitpanes",`splitpanes--${this.horizontal?"horizontal":"vertical"}`,{"splitpanes--dragging":this.touch.dragging}]},this.$slots.default())}},Sz=(t,e)=>{const n=t.__vccOpts||t;for(const[r,a]of e)n[r]=a;return n},xz={name:"pane",inject:["requestUpdate","onPaneAdd","onPaneRemove","onPaneClick"],props:{size:{type:[Number,String],default:null},minSize:{type:[Number,String],default:0},maxSize:{type:[Number,String],default:100}},data:()=>({style:{}}),mounted(){this.onPaneAdd(this)},beforeUnmount(){this.onPaneRemove(this)},methods:{update(t){this.style=t}},computed:{sizeNumber(){return this.size||this.size===0?parseFloat(this.size):null},minSizeNumber(){return parseFloat(this.minSize)},maxSizeNumber(){return parseFloat(this.maxSize)}},watch:{sizeNumber(t){this.requestUpdate({target:this,size:t})},minSizeNumber(t){this.requestUpdate({target:this,min:t})},maxSizeNumber(t){this.requestUpdate({target:this,max:t})}}};function Pz(t,e,n,r,a,i){return Ye(),an("div",{class:"splitpanes__pane",onClick:e[0]||(e[0]=o=>i.onPaneClick(o,t._.uid)),style:vi(t.style)},[Wl(t.$slots,"default")],4)}const wf=Sz(xz,[["render",Pz]]);function Mv(t){return Of()?(qy(t),!0):!1}function kv(t){return typeof t=="function"?t():xe(t)}const F_=typeof window<"u",Nv=()=>{};function Ez(t,e){function n(...r){return new Promise((a,i)=>{Promise.resolve(t(()=>e.apply(this,r),{fn:e,thisArg:this,args:r})).then(a).catch(i)})}return n}const B_=t=>t();function Oz(t=B_){const e=W(!0);function n(){e.value=!1}function r(){e.value=!0}const a=(...i)=>{e.value&&t(...i)};return{isActive:ws(e),pause:n,resume:r,eventFilter:a}}function Tz(...t){if(t.length!==1)return Kt(...t);const e=t[0];return typeof e=="function"?ws(VS(()=>({get:e,set:Nv}))):W(e)}function Iz(t,e=!0){bt()?Re(t):e?t():Ke(t)}var Ty=Object.getOwnPropertySymbols,Az=Object.prototype.hasOwnProperty,Mz=Object.prototype.propertyIsEnumerable,kz=(t,e)=>{var n={};for(var r in t)Az.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&Ty)for(var r of Ty(t))e.indexOf(r)<0&&Mz.call(t,r)&&(n[r]=t[r]);return n};function Nz(t,e,n={}){const r=n,{eventFilter:a=B_}=r,i=kz(r,["eventFilter"]);return pe(t,Ez(a,e),i)}var $z=Object.defineProperty,Rz=Object.defineProperties,Lz=Object.getOwnPropertyDescriptors,ps=Object.getOwnPropertySymbols,j_=Object.prototype.hasOwnProperty,z_=Object.prototype.propertyIsEnumerable,Iy=(t,e,n)=>e in t?$z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Dz=(t,e)=>{for(var n in e||(e={}))j_.call(e,n)&&Iy(t,n,e[n]);if(ps)for(var n of ps(e))z_.call(e,n)&&Iy(t,n,e[n]);return t},Fz=(t,e)=>Rz(t,Lz(e)),Bz=(t,e)=>{var n={};for(var r in t)j_.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&ps)for(var r of ps(t))e.indexOf(r)<0&&z_.call(t,r)&&(n[r]=t[r]);return n};function jz(t,e,n={}){const r=n,{eventFilter:a}=r,i=Bz(r,["eventFilter"]),{eventFilter:o,pause:l,resume:s,isActive:u}=Oz(a);return{stop:Nz(t,e,Fz(Dz({},i),{eventFilter:o})),pause:l,resume:s,isActive:u}}function zz(t,e,n){let r;tt(n)?r={evaluating:n}:r=n||{};const{lazy:a=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Nv}=r,s=W(!a),u=o?$n(e):W(e);let f=0;return st(async v=>{if(!s.value)return;f++;const p=f;let g=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const c=await t(d=>{v(()=>{i&&(i.value=!1),g||d()})});p===f&&(u.value=c)}catch(c){l(c)}finally{i&&p===f&&(i.value=!1),g=!0}}),a?K(()=>(s.value=!0,u.value)):u}function Hr(t){var e;const n=kv(t);return(e=n==null?void 0:n.$el)!=null?e:n}const Sr=F_?window:void 0,Wz=F_?window.document:void 0;function Pn(...t){let e,n,r,a;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,a]=t,e=Sr):[e,n,r,a]=t,!e)return Nv;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(f=>f()),i.length=0},l=(f,v,p,g)=>(f.addEventListener(v,p,g),()=>f.removeEventListener(v,p,g)),s=pe(()=>[Hr(e),kv(a)],([f,v])=>{o(),f&&i.push(...n.flatMap(p=>r.map(g=>l(f,p,g,v))))},{immediate:!0,flush:"post"}),u=()=>{s(),o()};return Mv(u),u}const Vz=500;function q9(t,e,n){var r,a;const i=K(()=>Hr(t));let o;function l(){o&&(clearTimeout(o),o=void 0)}function s(f){var v,p,g,c;(v=n==null?void 0:n.modifiers)!=null&&v.self&&f.target!==i.value||(l(),(p=n==null?void 0:n.modifiers)!=null&&p.prevent&&f.preventDefault(),(g=n==null?void 0:n.modifiers)!=null&&g.stop&&f.stopPropagation(),o=setTimeout(()=>e(f),(c=n==null?void 0:n.delay)!=null?c:Vz))}const u={capture:(r=n==null?void 0:n.modifiers)==null?void 0:r.capture,once:(a=n==null?void 0:n.modifiers)==null?void 0:a.once};Pn(i,"pointerdown",s,u),Pn(i,"pointerup",l,u),Pn(i,"pointerleave",l,u)}function Hz(){const t=W(!1);return bt()&&Re(()=>{t.value=!0}),t}function W_(t){const e=Hz();return K(()=>(e.value,!!t()))}function Uz(t,e={}){const{window:n=Sr}=e,r=W_(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let a;const i=W(!1),o=()=>{a&&("removeEventListener"in a?a.removeEventListener("change",l):a.removeListener(l))},l=()=>{r.value&&(o(),a=n.matchMedia(Tz(t).value),i.value=!!(a!=null&&a.matches),a&&("addEventListener"in a?a.addEventListener("change",l):a.addListener(l)))};return st(l),Mv(()=>o()),i}const wl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Cl="__vueuse_ssr_handlers__",Kz=Gz();function Gz(){return Cl in wl||(wl[Cl]=wl[Cl]||{}),wl[Cl]}function qz(t,e){return Kz[t]||e}function Yz(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}var Xz=Object.defineProperty,Ay=Object.getOwnPropertySymbols,Jz=Object.prototype.hasOwnProperty,Qz=Object.prototype.propertyIsEnumerable,My=(t,e,n)=>e in t?Xz(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,ky=(t,e)=>{for(var n in e||(e={}))Jz.call(e,n)&&My(t,n,e[n]);if(Ay)for(var n of Ay(e))Qz.call(e,n)&&My(t,n,e[n]);return t};const Zz={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},Ny="vueuse-storage";function e7(t,e,n,r={}){var a;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:s=!0,mergeDefaults:u=!1,shallow:f,window:v=Sr,eventFilter:p,onError:g=I=>{console.error(I)}}=r,c=(f?$n:W)(e);if(!n)try{n=qz("getDefaultStorage",()=>{var I;return(I=Sr)==null?void 0:I.localStorage})()}catch(I){g(I)}if(!n)return c;const d=kv(e),m=Yz(d),h=(a=r.serializer)!=null?a:Zz[m],{pause:y,resume:b}=jz(c,()=>w(c.value),{flush:i,deep:o,eventFilter:p});return v&&l&&(Pn(v,"storage",E),Pn(v,Ny,_)),E(),c;function w(I){try{if(I==null)n.removeItem(t);else{const P=h.write(I),k=n.getItem(t);k!==P&&(n.setItem(t,P),v&&v.dispatchEvent(new CustomEvent(Ny,{detail:{key:t,oldValue:k,newValue:P,storageArea:n}})))}}catch(P){g(P)}}function C(I){const P=I?I.newValue:n.getItem(t);if(P==null)return s&&d!==null&&n.setItem(t,h.write(d)),d;if(!I&&u){const k=h.read(P);return typeof u=="function"?u(k,d):m==="object"&&!Array.isArray(k)?ky(ky({},d),k):k}else return typeof P!="string"?P:h.read(P)}function _(I){E(I.detail)}function E(I){if(!(I&&I.storageArea!==n)){if(I&&I.key==null){c.value=d;return}if(!(I&&I.key!==t)){y();try{c.value=C(I)}catch(P){g(P)}finally{I?Ke(b):b()}}}}}function t7(t){return Uz("(prefers-color-scheme: dark)",t)}function n7({document:t=Wz}={}){if(!t)return W("visible");const e=W(t.visibilityState);return Pn(t,"visibilitychange",()=>{e.value=t.visibilityState}),e}var $y=Object.getOwnPropertySymbols,r7=Object.prototype.hasOwnProperty,a7=Object.prototype.propertyIsEnumerable,i7=(t,e)=>{var n={};for(var r in t)r7.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&$y)for(var r of $y(t))e.indexOf(r)<0&&a7.call(t,r)&&(n[r]=t[r]);return n};function o7(t,e,n={}){const r=n,{window:a=Sr}=r,i=i7(r,["window"]);let o;const l=W_(()=>a&&"ResizeObserver"in a),s=()=>{o&&(o.disconnect(),o=void 0)},u=K(()=>Array.isArray(t)?t.map(p=>Hr(p)):[Hr(t)]),f=pe(u,p=>{if(s(),l.value&&a){o=new ResizeObserver(e);for(const g of p)g&&o.observe(g,i)}},{immediate:!0,flush:"post",deep:!0}),v=()=>{s(),f()};return Mv(v),{isSupported:l,stop:v}}function l7(t,e={width:0,height:0},n={}){const{window:r=Sr,box:a="content-box"}=n,i=K(()=>{var s,u;return(u=(s=Hr(t))==null?void 0:s.namespaceURI)==null?void 0:u.includes("svg")}),o=W(e.width),l=W(e.height);return o7(t,([s])=>{const u=a==="border-box"?s.borderBoxSize:a==="content-box"?s.contentBoxSize:s.devicePixelContentBoxSize;if(r&&i.value){const f=Hr(t);if(f){const v=r.getComputedStyle(f);o.value=parseFloat(v.width),l.value=parseFloat(v.height)}}else if(u){const f=Array.isArray(u)?u:[u];o.value=f.reduce((v,{inlineSize:p})=>v+p,0),l.value=f.reduce((v,{blockSize:p})=>v+p,0)}else o.value=s.contentRect.width,l.value=s.contentRect.height},n),pe(()=>Hr(t),s=>{o.value=s?e.width:0,l.value=s?e.height:0}),{width:o,height:l}}function Y9(t,e,n={}){const{window:r=Sr}=n;return e7(t,e,r==null?void 0:r.localStorage,n)}const s7={page:t=>[t.pageX,t.pageY],client:t=>[t.clientX,t.clientY],screen:t=>[t.screenX,t.screenY],movement:t=>t instanceof Touch?null:[t.movementX,t.movementY]};function u7(t={}){const{type:e="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:a={x:0,y:0},window:i=Sr,target:o=i,eventFilter:l}=t,s=W(a.x),u=W(a.y),f=W(null),v=typeof e=="function"?e:s7[e],p=h=>{const y=v(h);y&&([s.value,u.value]=y,f.value="mouse")},g=h=>{if(h.touches.length>0){const y=v(h.touches[0]);y&&([s.value,u.value]=y,f.value="touch")}},c=()=>{s.value=a.x,u.value=a.y},d=l?h=>l(()=>p(h),{}):h=>p(h),m=l?h=>l(()=>g(h),{}):h=>g(h);return o&&(Pn(o,"mousemove",d,{passive:!0}),Pn(o,"dragover",d,{passive:!0}),n&&e!=="movement"&&(Pn(o,"touchstart",m,{passive:!0}),Pn(o,"touchmove",m,{passive:!0}),r&&Pn(o,"touchend",c,{passive:!0}))),{x:s,y:u,sourceType:f}}function Ry(t,e={}){const{handleOutside:n=!0,window:r=Sr}=e,{x:a,y:i,sourceType:o}=u7(e),l=W(t??(r==null?void 0:r.document.body)),s=W(0),u=W(0),f=W(0),v=W(0),p=W(0),g=W(0),c=W(!0);let d=()=>{};return r&&(d=pe([l,a,i],()=>{const m=Hr(l);if(!m)return;const{left:h,top:y,width:b,height:w}=m.getBoundingClientRect();f.value=h+r.pageXOffset,v.value=y+r.pageYOffset,p.value=w,g.value=b;const C=a.value-f.value,_=i.value-v.value;c.value=b===0||w===0||C<0||_<0||C>b||_>w,(n||!c.value)&&(s.value=C,u.value=_)},{immediate:!0}),Pn(document,"mouseleave",()=>{c.value=!0})),{x:a,y:i,sourceType:o,elementX:s,elementY:u,elementPositionX:f,elementPositionY:v,elementHeight:p,elementWidth:g,isOutside:c,stop:d}}const c7={style:{position:"relative"}},f7=fe({__name:"edgeTrigger",props:{tabIdx:{}},setup(t){const e=t,n=Wo(),r=W(),a=W(),{isOutside:i}=Ry(a),{isOutside:o}=Ry(r),l=K(()=>!i.value&&!!n.dragingTab),s=K(()=>!o.value&&!!n.dragingTab&&!l.value),u=(f,v)=>{var g,c,d,m;const p=bz(((g=f.dataTransfer)==null?void 0:g.getData("text"))??"{}");if(p&&(console.log("on-drop",v,p),(p==null?void 0:p.from)==="tab-drag")){if(f.stopPropagation(),n.dragingTab=void 0,v==="insert"&&p.tabIdx===e.tabIdx)return;const h=n.tabList,y=h[p.tabIdx].panes[p.paneIdx];h[p.tabIdx].panes.splice(p.paneIdx,1),v==="add-right"?(h[e.tabIdx].key=((c=h[e.tabIdx].panes[p.paneIdx-1])==null?void 0:c.key)??h[e.tabIdx].panes[0].key,h.splice(e.tabIdx+1,0,{panes:[y],key:y.key,id:br()})):(h[p.tabIdx].key=((d=h[p.tabIdx].panes[p.paneIdx-1])==null?void 0:d.key)??((m=h[p.tabIdx].panes[0])==null?void 0:m.key),h[e.tabIdx].panes.push(y),h[e.tabIdx].key=y.key),h[p.tabIdx].panes.length===0&&h.splice(p.tabIdx,1)}};return(f,v)=>(Ye(),an("div",{class:wa(["wrap",{accept:s.value}]),ref_key:"trigger",ref:r,onDragover:v[2]||(v[2]=Ln(()=>{},["prevent"])),onDrop:v[3]||(v[3]=Ln(p=>u(p,"insert"),["prevent"]))},[xn("div",{class:wa(["trigger",{accept:l.value}]),ref_key:"edgeTrigger",ref:a,onDragover:v[0]||(v[0]=Ln(()=>{},["prevent"])),onDrop:v[1]||(v[1]=Ln(p=>u(p,"add-right"),["prevent"]))},null,34),xn("div",c7,[Wl(f.$slots,"default",{},void 0,!0)])],34))}});const uu=(t,e)=>{const n=t.__vccOpts||t;for(const[r,a]of e)n[r]=a;return n},d7=uu(f7,[["__scopeId","data-v-1f3b5d72"]]);const V_=N_("useImgSliStore",()=>{const t=W(!1),e=W(!1),n=W(!1),r=W(),a=W(),i=Wo(),o=K(()=>{var s;const l=i.tabList;for(const u of l)if(((s=u.panes.find(f=>f.key===u.key))==null?void 0:s.type)==="img-sli")return!0;return!1});return{drawerVisible:e,fileDragging:t,left:r,right:a,imgSliActived:o,opened:n}}),v7=t=>(hb("data-v-279a61df"),t=t(),mb(),t),p7={key:0,class:"dragging-port-wrap"},h7={class:"content"},m7={key:0,class:"img-wrap"},g7={key:1},y7=v7(()=>xn("div",{style:{padding:"16px"}},null,-1)),b7={key:0,class:"img-wrap"},w7={key:1},C7={key:0,class:"tips",style:{"max-width":"30vw"}},_7={class:"actions"},S7=fe({__name:"DraggingPort",setup(t){const e=V_(),n=Wo(),{left:r,right:a}=oz(e),i=async(s,u)=>{const f=cz(s);if(f){const v=f.nodes[0];if(!$_(v.name))return;e[u]=v}},o=()=>{e.left=void 0,e.right=void 0,e.opened=!1},l=()=>{t_(r.value&&a.value);const s={type:"img-sli",left:r.value,right:a.value,name:`${ke("imgCompare")} ( ${r.value.name} vs ${a.value.name})`,key:br()};n.tabList[0].panes.push(s),n.tabList[0].key=s.key};return(s,u)=>{const f=C4,v=Tn;return Ye(),Xt(lr,null,{default:_t(()=>[(xe(e).fileDragging||xe(r)||xe(a)||xe(e).opened)&&!xe(e).imgSliActived?(Ye(),an("div",p7,[xn("h2",null,qn(s.$t("imgCompare")),1),xn("div",h7,[xn("div",{class:"left port",onDragover:u[1]||(u[1]=Ln(()=>{},["prevent"])),onDrop:u[2]||(u[2]=Ln(p=>i(p,"left"),["prevent"]))},[xe(r)?(Ye(),an("div",m7,[x(f,{src:xe(Py)(xe(r)),preview:{src:xe(vs)(xe(r))}},null,8,["src","preview"]),x(xe(Jl),{class:"close",onClick:u[0]||(u[0]=p=>r.value=void 0)})])):(Ye(),an("div",g7,qn(s.$t("dragImageHere")),1))],32),y7,xn("div",{class:"right port",onDragover:u[4]||(u[4]=Ln(()=>{},["prevent"])),onDrop:u[5]||(u[5]=Ln(p=>i(p,"right"),["prevent"]))},[xe(a)?(Ye(),an("div",b7,[x(f,{src:xe(Py)(xe(a)),preview:{src:xe(vs)(xe(a))}},null,8,["src","preview"]),x(xe(Jl),{class:"close",onClick:u[3]||(u[3]=p=>a.value=void 0)})])):(Ye(),an("div",w7,qn(s.$t("dragImageHere")),1))],32)]),xe(e).opened?(Ye(),an("p",C7," Tips: "+qn(s.$t("imageCompareTips")),1)):pa("",!0),xn("div",_7,[xe(r)&&xe(a)?(Ye(),Xt(v,{key:0,type:"primary",onClick:u[6]||(u[6]=p=>xe(e).drawerVisible=!0)},{default:_t(()=>[Fn(qn(s.$t("confirm")),1)]),_:1})):pa("",!0),xe(r)&&xe(a)?(Ye(),Xt(v,{key:1,type:"primary",onClick:l},{default:_t(()=>[Fn(qn(s.$t("confirm"))+"("+qn(s.$t("openInNewTab"))+")",1)]),_:1})):pa("",!0),x(v,{style:{"margin-left":"16px"},onClick:o},{default:_t(()=>[Fn(qn(s.$t("close")),1)]),_:1})])])):pa("",!0)]),_:1})}}});const x7=uu(S7,[["__scopeId","data-v-279a61df"]]),P7={class:"container"},E7=["src"],O7=fe({__name:"ImgSliSide",props:{side:{},containerWidth:{},img:{},maxEdge:{},percent:{}},setup(t){const e=t,n=K(()=>{let r="";const i=e.containerWidth;return e.side==="left"?r=`calc(50% - ${(e.percent-50)/100*i}px)`:r=`calc(-50% - ${(e.percent-50)/100*i+4}px)`,`${e.maxEdge==="width"?"width:100%":"height:100%"};transform: translate(${r}, -50%)`});return(r,a)=>(Ye(),an("div",P7,[xn("img",{class:wa(["img",[r.side]]),style:vi(n.value),src:xe(vs)(r.img),onDragstart:a[0]||(a[0]=Ln(()=>{},["prevent","stop"]))},null,46,E7)]))}});const Ly=uu(O7,[["__scopeId","data-v-65d66859"]]),T7=fe({__name:"ImgSliComparePane",props:{left:{},right:{}},setup(t,{expose:e}){const n=t,r=W(50),a=([{size:u}])=>{r.value=u},i=W(),{width:o}=l7(i);e({requestFullScreen:()=>{var u;(u=i.value)==null||u.requestFullscreen()}});const s=zz(async()=>{if(!n.left)return"width";const u=await yz(vs(n.left)),f=u.width/u.height,v=document.body.clientWidth/document.body.clientHeight;return f>v?"width":"height"});return(u,f)=>(Ye(),an("div",{ref_key:"wrapperEl",ref:i,style:{height:"100%"}},[x(xe(D_),{class:"default-theme",onResize:a},{default:_t(()=>[u.left?(Ye(),Xt(xe(wf),{key:0},{default:_t(()=>[x(Ly,{side:"left","max-edge":xe(s),"container-width":xe(o),percent:r.value,img:u.left},null,8,["max-edge","container-width","percent","img"])]),_:1})):pa("",!0),u.right?(Ye(),Xt(xe(wf),{key:1},{default:_t(()=>[x(Ly,{"max-edge":xe(s),percent:r.value,img:u.right,side:"right","container-width":xe(o)},null,8,["max-edge","percent","img","container-width"])]),_:1})):pa("",!0)]),_:1})],512))}});const I7={class:"actions"},A7=fe({__name:"ImgSliDrawer",setup(t){const e=V_(),n=W();return(r,a)=>{const i=Tn,o=pF;return Ye(),an(De,null,[x(o,{width:"100vw",visible:xe(e).drawerVisible,"onUpdate:visible":a[2]||(a[2]=l=>xe(e).drawerVisible=l),"destroy-on-close":"",class:"img-sli","close-icon":null},{footer:_t(()=>[xn("div",I7,[x(i,{onClick:a[0]||(a[0]=l=>xe(e).drawerVisible=!1)},{default:_t(()=>[Fn(qn(r.$t("close")),1)]),_:1}),x(i,{onClick:a[1]||(a[1]=l=>{var s;return(s=n.value)==null?void 0:s.requestFullScreen()})},{default:_t(()=>[Fn(qn(r.$t("fullscreenview")),1)]),_:1})])]),default:_t(()=>[xe(e).left&&xe(e).right?(Ye(),Xt(T7,{key:0,ref_key:"splitpane",ref:n,left:xe(e).left,right:xe(e).right},null,8,["left","right"])):pa("",!0)]),_:1},8,["visible"]),x(x7)],64)}}});const M7=fe({__name:"SplitViewTab",setup(t){const e=Wo(),n={local:Ir(()=>mr(()=>import("./stackView-2a3ebe89.js"),["assets/stackView-2a3ebe89.js","assets/fullScreenContextMenu-98230b57.js","assets/FileItem-3525329e.js","assets/functionalCallableComp-c44a8b16.js","assets/db-a31c442b.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/fullScreenContextMenu-5ccd83b3.css","assets/numInput-b034b38d.js","assets/numInput-a08c6857.css","assets/stackView-86f1252a.css","assets/index-f4bbe4b8.css","assets/index-d55a76b1.css"])),empty:Ir(()=>mr(()=>import("./emptyStartup-720d5aa9.js"),["assets/emptyStartup-720d5aa9.js","assets/db-a31c442b.js","assets/emptyStartup-f9353e31.css"])),"global-setting":Ir(()=>mr(()=>import("./globalSetting-b3d8f019.js"),["assets/globalSetting-b3d8f019.js","assets/numInput-b034b38d.js","assets/functionalCallableComp-c44a8b16.js","assets/db-a31c442b.js","assets/functionalCallableComp-9fed83c2.css","assets/numInput-a08c6857.css","assets/globalSetting-b8163f11.css","assets/index-f4bbe4b8.css","assets/index-d55a76b1.css"])),"tag-search-matched-image-grid":Ir(()=>mr(()=>import("./MatchedImageGrid-6bb169b9.js"),["assets/MatchedImageGrid-6bb169b9.js","assets/fullScreenContextMenu-98230b57.js","assets/FileItem-3525329e.js","assets/functionalCallableComp-c44a8b16.js","assets/db-a31c442b.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/fullScreenContextMenu-5ccd83b3.css","assets/hook-d5d8b6fe.js","assets/MatchedImageGrid-337d7e1f.css"])),"tag-search":Ir(()=>mr(()=>import("./TagSearch-fbeafa41.js"),["assets/TagSearch-fbeafa41.js","assets/db-a31c442b.js","assets/TagSearch-8cc2caef.css","assets/index-f4bbe4b8.css","assets/index-d55a76b1.css"])),"fuzzy-search":Ir(()=>mr(()=>import("./SubstrSearch-b3affade.js"),["assets/SubstrSearch-b3affade.js","assets/fullScreenContextMenu-98230b57.js","assets/FileItem-3525329e.js","assets/functionalCallableComp-c44a8b16.js","assets/db-a31c442b.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/fullScreenContextMenu-5ccd83b3.css","assets/hook-d5d8b6fe.js","assets/SubstrSearch-86e8fce9.css","assets/index-f4bbe4b8.css"])),"img-sli":Ir(()=>mr(()=>import("./ImgSliPagePane-3cc5b3aa.js"),[])),"batch-download":Ir(()=>mr(()=>import("./batchDownload-c553290f.js"),["assets/batchDownload-c553290f.js","assets/FileItem-3525329e.js","assets/functionalCallableComp-c44a8b16.js","assets/db-a31c442b.js","assets/functionalCallableComp-9fed83c2.css","assets/FileItem-cd5f5c5d.css","assets/batchDownload-08be3fc5.css"]))},r=(o,l,s)=>{var f,v;const u=e.tabList[o];if(s==="add"){const p={type:"empty",key:br(),name:ke("emptyStartPage")};u.panes.push(p),u.key=p.key}else{const p=u.panes.findIndex(g=>g.key===l);if(u.key===l&&(u.key=((f=u.panes[p-1])==null?void 0:f.key)??((v=u.panes[1])==null?void 0:v.key)),u.panes.splice(p,1),u.panes.length===0&&e.tabList.splice(o,1),e.tabList.length===0){const g=e.createEmptyPane();e.tabList.push({panes:[g],key:g.key,id:br()})}}},a=W();pe(()=>e.tabList,async()=>{var o;await Ke(),e.saveRecord(),Array.from(((o=a.value)==null?void 0:o.querySelectorAll(".splitpanes__pane"))??[]).forEach((l,s)=>{Array.from(l.querySelectorAll(".ant-tabs-tab")??[]).forEach((u,f)=>{const v=u;v.setAttribute("draggable","true"),v.setAttribute("tabIdx",s.toString()),v.setAttribute("paneIdx",f.toString()),v.ondragend=()=>{e.dragingTab=void 0},v.ondragstart=p=>{e.dragingTab={tabIdx:s,paneIdx:f},p.dataTransfer.setData("text/plain",JSON.stringify({tabIdx:s,paneIdx:f,from:"tab-drag"}))}})})},{immediate:!0,deep:!0});const i=qc(()=>L_.emit("returnToIIB"),100);return Iz(async()=>{const o=window.parent;if(!await pz(()=>o==null?void 0:o.onUiTabChange,200,3e4)){console.log("watch tab change failed");return}o.onUiTabChange(()=>{const l=o.get_uiCurrentTabContent();l!=null&&l.id.includes("infinite-image-browsing")&&i()})}),pe(n7(),o=>o&&i()),(o,l)=>{const s=ls,u=Qi;return Ye(),an("div",{ref_key:"container",ref:a},[x(xe(D_),{class:"default-theme"},{default:_t(()=>[(Ye(!0),an(De,null,Xv(xe(e).tabList,(f,v)=>(Ye(),Xt(xe(wf),{key:f.id},{default:_t(()=>[x(d7,{tabIdx:v},{default:_t(()=>[x(u,{type:"editable-card",activeKey:f.key,"onUpdate:activeKey":p=>f.key=p,onEdit:(p,g)=>r(v,p,g)},{default:_t(()=>[(Ye(!0),an(De,null,Xv(f.panes,(p,g)=>(Ye(),Xt(s,{key:p.key,tab:p.name,class:"pane"},{default:_t(()=>[(Ye(),Xt(bx(n[p.type]),Gf({tabIdx:v,paneIdx:g},p),null,16,["tabIdx","paneIdx"]))]),_:2},1032,["tab"]))),128))]),_:2},1032,["activeKey","onUpdate:activeKey","onEdit"])]),_:2},1032,["tabIdx"])]),_:2},1024))),128))]),_:1}),x(A7)],512)}}});const k7=uu(M7,[["__scopeId","data-v-c479b9de"]]),N7=async t=>{var r;const e=(r=t.conf)==null?void 0:r.global_setting,n=new URLSearchParams(parent.location.search);switch(n.get("action")){case"open":{let a=n.get("path");if(!a||!e)return;const i={extra:e.outdir_extras_samples,save:e.outdir_save,txt2img:e.outdir_txt2img_samples,img2img:e.outdir_img2img_samples};i[a]&&(a=i[a]);const o=t.tabList[0],l={type:"local",path:a,key:br(),name:"",walkModePath:n.get("walk")?a:void 0};o.panes.unshift(l),o.key=l.key,vz(),gz(["action","path","walk"]);break}}};function Dy(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!nr(t)}const H_="app.conf.json",io=W(),U_=()=>Ao.writeFile(H_,JSON.stringify(Me(io.value),null,4)),$7=fe({setup(){const t=async()=>{const e=await x_({directory:!0});if(typeof e=="string"){if(!await Ao.exists(`${e}/config.json`))return ba.error(ke("tauriLaunchConfMessages.configNotFound"));if(!await Ao.exists(`${e}/extensions/sd-webui-infinite-image-browsing`))return ba.error(ke("tauriLaunchConfMessages.folderNotFound"));io.value.sdwebui_dir=e,ba.info(ke("tauriLaunchConfMessages.configCompletedMessage")),await U_(),await lu("shutdown_api_server_command"),await ou(1500),await C_()}};return()=>{let e,n;return x("div",{style:{padding:"32px 0"}},[x("div",{style:{padding:"16px 0"}},[x("h2",null,[ke("tauriLaunchConf.readSdWebuiConfigTitle")]),x("p",null,[ke("tauriLaunchConf.readSdWebuiConfigDescription")]),x(Tn,{onClick:t,type:"primary"},Dy(e=ke("tauriLaunchConf.selectSdWebuiFolder"))?e:{default:()=>[e]})]),x("div",{style:{padding:"16px 0"}},[x("h2",null,[ke("tauriLaunchConf.skipThisConfigTitle")]),x("p",null,[ke("tauriLaunchConf.skipThisConfigDescription")]),x(Tn,{type:"primary",onClick:Bt.destroyAll},Dy(n=ke("tauriLaunchConf.skipButton"))?n:{default:()=>[n]})])])}}}),R7=async()=>{try{io.value=JSON.parse(await Ao.readTextFile(H_))}catch{}io.value||(io.value={sdwebui_dir:""},await U_(),Bt.info({title:ke("tauriLaunchConfMessages.firstTimeUserTitle"),content:x($7,null,null),width:"80vw",okText:ke("tauriLaunchConf.skipButton"),okButtonProps:{onClick:Bt.destroyAll}}))},L7=!!{}.TAURI_ARCH,X9=window===parent,D7=fe({__name:"App",setup(t){const e=Wo(),n=mz();return Ey("updateGlobalSetting",async()=>{await Kj(),console.log(ds.value);const r=await Yj();e.conf=r;const a=await Oy(r);e.quickMovePaths=a.filter(i=>{var o,l;return(l=(o=i==null?void 0:i.dir)==null?void 0:o.trim)==null?void 0:l.call(o)}),N7(e)}),Ey("returnToIIB",async()=>{const r=e.conf;if(!r)return;const a=r.global_setting;if(!a.outdir_txt2img_samples&&!a.outdir_img2img_samples)return;const i=new Set(e.quickMovePaths.map(l=>l.key));if(i.has("outdir_txt2img_samples")&&i.has("outdir_img2img_samples"))return;const o=await Oy(r);e.quickMovePaths=o.filter(l=>{var s,u;return(u=(s=l==null?void 0:l.dir)==null?void 0:s.trim)==null?void 0:u.call(s)})}),Re(async()=>{L7&&R7(),L_.emit("updateGlobalSetting")}),(r,a)=>{const i=rn;return Ye(),Xt(i,{loading:!xe(n).isIdle},{default:_t(()=>[x(k7)]),_:1},8,["loading"])}}});function F7(t){return typeof t=="object"&&t!==null}function Fy(t,e){return t=F7(t)?t:Object.create(null),new Proxy(t,{get(n,r,a){return r==="key"?Reflect.get(n,r,a):Reflect.get(n,r,a)||Reflect.get(e,r,a)}})}function B7(t,e){return e.reduce((n,r)=>n==null?void 0:n[r],t)}function j7(t,e,n){return e.slice(0,-1).reduce((r,a)=>/^(__proto__)$/.test(a)?{}:r[a]=r[a]||{},t)[e[e.length-1]]=n,t}function z7(t,e){return e.reduce((n,r)=>{const a=r.split(".");return j7(n,a,B7(t,a))},{})}function By(t,{storage:e,serializer:n,key:r,debug:a}){try{const i=e==null?void 0:e.getItem(r);i&&t.$patch(n==null?void 0:n.deserialize(i))}catch(i){a&&console.error(i)}}function jy(t,{storage:e,serializer:n,key:r,paths:a,debug:i}){try{const o=Array.isArray(a)?z7(t,a):t;e.setItem(r,n.serialize(o))}catch(o){i&&console.error(o)}}function W7(t={}){return e=>{const{auto:n=!1}=t,{options:{persist:r=n},store:a}=e;if(!r)return;const i=(Array.isArray(r)?r.map(o=>Fy(o,t)):[Fy(r,t)]).map(({storage:o=localStorage,beforeRestore:l=null,afterRestore:s=null,serializer:u={serialize:JSON.stringify,deserialize:JSON.parse},key:f=a.$id,paths:v=null,debug:p=!1})=>{var g;return{storage:o,beforeRestore:l,afterRestore:s,serializer:u,key:((g=t.key)!=null?g:c=>c)(f),paths:v,debug:p}});a.$persist=()=>{i.forEach(o=>{jy(a.$state,o)})},a.$hydrate=({runHooks:o=!0}={})=>{i.forEach(l=>{const{beforeRestore:s,afterRestore:u}=l;o&&(s==null||s(e)),By(a,l),o&&(u==null||u(e))})},i.forEach(o=>{const{beforeRestore:l,afterRestore:s}=o;l==null||l(e),By(a,o),s==null||s(e),a.$subscribe((u,f)=>{jy(f,o)},{detached:!0})})}}var V7=W7();const K_=ez();K_.use(V7);kP(D7).use(K_).use(wv).mount("#zanllp_dev_gradio_fe");const H7=t7(),U7=()=>{try{return parent.location.search.includes("theme=dark")}catch{}return!1};pe([H7,U7],async([t,e])=>{await ou();const n=document.getElementsByTagName("html")[0];if(t||e){document.body.classList.add("dark");const r=document.createElement("style"),{default:a}=await mr(()=>import("./antd.dark-35e9b327.js"),[]);r.innerHTML=a,r.setAttribute("antd-dark",""),n.appendChild(r)}else document.body.classList.remove("dark"),Array.from(n.querySelectorAll("style[antd-dark]")).forEach(r=>r.remove())},{immediate:!0});export{W as $,Xv as A,vi as B,pa as C,EN as D,L7 as E,r9 as F,K7 as G,Vx as H,B9 as I,F9 as J,G7 as K,vs as L,Vr as M,wa as N,as as O,J as P,rn as Q,Bt as R,n_ as S,YN as T,At as U,Tn as V,Po as W,uu as X,No as Y,gi as Z,ut as _,T as a,$n as a$,ge as a0,Ci as a1,ar as a2,yt as a3,Ns as a4,or as a5,Is as a6,lr as a7,wT as a8,xT as a9,r$ as aA,Ce as aB,qc as aC,j9 as aD,Uj as aE,Ao as aF,H_ as aG,C_ as aH,Xe as aI,o9 as aJ,ct as aK,rm as aL,Qe as aM,a9 as aN,yI as aO,NT as aP,nh as aQ,Iw as aR,qD as aS,Ds as aT,b$ as aU,Zf as aV,_e as aW,ho as aX,j$ as aY,hO as aZ,SP as a_,id as aa,vT as ab,Y0 as ac,X0 as ad,Jl as ae,vd as af,lt as ag,x_ as ah,ke as ai,Kr as aj,Xj as ak,ba as al,L_ as am,V_ as an,K as ao,QR as ap,br as aq,t_ as ar,Yc as as,hb as at,mb as au,Bf as av,Re as aw,Ke as ax,xt as ay,Yl as az,ze as b,Y9 as b$,st as b0,dO as b1,n9 as b2,mi as b3,Me as b4,U$ as b5,Id as b6,_o as b7,ww as b8,x$ as b9,Fa as bA,e9 as bB,GN as bC,fx as bD,X7 as bE,Y7 as bF,Gf as bG,Hc as bH,Z7 as bI,u0 as bJ,tC as bK,On as bL,Wn as bM,CC as bN,mz as bO,Ey as bP,K9 as bQ,AN as bR,IF as bS,gF as bT,Q7 as bU,hf as bV,SB as bW,gI as bX,s0 as bY,nr as bZ,D9 as b_,S$ as ba,HR as bb,RR as bc,xC as bd,rr as be,Kd as bf,Us as bg,Do as bh,AE as bi,UR as bj,Ks as bk,SL as bl,kl as bm,rt as bn,Nt as bo,z2 as bp,Jt as bq,t9 as br,Qw as bs,Zw as bt,Fw as bu,Le as bv,Gt as bw,Sn as bx,Aw as by,$E as bz,x as c,eC as c0,Eo as c1,T7 as c2,oz as c3,cz as c4,Si as c5,i$ as c6,UN as c7,ZN as c8,zN as c9,H9 as cA,R9 as cB,L9 as cC,ex as cD,Cs as cE,BS as cF,Sb as cG,wx as cH,Wl as cI,bx as cJ,q7 as cK,Gc as cL,J7 as cM,Py as cN,fz as cO,C4 as cP,Xf as cQ,Tm as cR,X9 as cS,i9 as ca,zn as cb,Od as cc,_d as cd,sb as ce,bt as cf,$T as cg,sd as ch,N_ as ci,gy as cj,W9 as ck,Av as cl,z9 as cm,V9 as cn,Q1 as co,ou as cp,wz as cq,Cz as cr,G9 as cs,di as ct,l7 as cu,$_ as cv,Ry as cw,q9 as cx,Z1 as cy,_z as cz,fe as d,jn as e,pn as f,Wr as g,te as h,He as i,Bd as j,Wo as k,pe as l,Xt as m,_t as n,Ye as o,xn as p,Ln as q,xe as r,tt as s,U9 as t,Ze as u,qn as v,ks as w,Fn as x,an as y,De as z};
diff --git a/vue/dist/assets/numInput-398b2a8c.js b/vue/dist/assets/numInput-b034b38d.js
similarity index 99%
rename from vue/dist/assets/numInput-398b2a8c.js
rename to vue/dist/assets/numInput-b034b38d.js
index b02562b..ccda610 100644
--- a/vue/dist/assets/numInput-398b2a8c.js
+++ b/vue/dist/assets/numInput-b034b38d.js
@@ -1,4 +1,4 @@
-import{ao as I,aI as Le,$ as Q,aw as ht,aJ as Hr,aK as mt,Z as we,d as ae,u as ye,aL as kt,b as ce,aM as Fe,aN as Mt,a0 as ee,h as M,c as T,a as k,aO as Ur,i as re,aP as He,aQ as me,a2 as Qt,e as Gr,aR as Jt,aS as er,aT as Wr,aU as Kr,aV as zr,aW as tr,z as Re,aX as Xr,l as oe,aY as Yr,aZ as Zr,a_ as Qr,a8 as Jr,ab as en,aa as tn,az as rn,a$ as rr,b0 as nr,b1 as ar,as as je,b2 as nn,b3 as an,P as K,b4 as et,ax as ir,b5 as gt,b6 as ln,b7 as un,b8 as Ot,b9 as on,ba as sn,bb as fn,bc as cn,bd as dn,be as vn,bf as hn,bg as lr,bh as mn,bi as gn,bj as pn,bk as bn,bl as yn,bm as xn,r as ge,bn as wn,bo as Ne,aC as Sn,bp as ur,bq as pt,br as Fn,w as Me,ag as Cn,bs as or,bt as sr,bu as Nn,bv as De,_ as $e,aB as ue,j as fr,D as Vn,ay as kn,a3 as Mn,bw as cr,bx as Ve,by as bt,bz as On,bA as tt,bB as Pn,bC as $n,bD as En,T as An,Y as Tn,bE as In,bF as Bn,o as _n,y as jn,bG as Pt,X as qn}from"./index-dda7184d.js";import{t as Rn,l as Dn}from"./functionalCallableComp-9395a4a4.js";var Ln=Symbol("SizeProvider"),Hn=function(e){var t=e?I(function(){return e.size}):Le(Ln,I(function(){return"default"}));return t};function Un(n,e,t){var r=-1,a=n.length;e<0&&(e=-e>a?0:a+e),t=t>a?a:t,t<0&&(t+=a),a=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(a);++r0?"".concat(m[0]/-2,"px"):void 0,F=m[1]>0?"".concat(m[1]/-2,"px"):void 0;return d&&(b.marginLeft=d,b.marginRight=d),c.value?b.rowGap="".concat(m[1],"px"):F&&(b.marginTop=F,b.marginBottom=F),b});return function(){var m;return T("div",{class:f.value,style:y.value},[(m=r.default)===null||m===void 0?void 0:m.call(r)])}}});const Qn=Zn;function Jn(n){return typeof n=="number"?"".concat(n," ").concat(n," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(n)?"0 0 ".concat(n):n}var ea=function(){return{span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},xxxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}};const vr=ae({compatConfig:{MODE:3},name:"ACol",props:ea(),setup:function(e,t){var r=t.slots,a=zn(),i=a.gutter,l=a.supportFlexGap,u=a.wrap,o=ye("col",e),c=o.prefixCls,s=o.direction,f=I(function(){var m,b=e.span,d=e.order,F=e.offset,h=e.push,S=e.pull,g=c.value,v={};return["xs","sm","md","lg","xl","xxl","xxxl"].forEach(function(p){var N,C={},x=e[p];typeof x=="number"?C.span=x:ce(x)==="object"&&(C=x||{}),v=k(k({},v),{},(N={},M(N,"".concat(g,"-").concat(p,"-").concat(C.span),C.span!==void 0),M(N,"".concat(g,"-").concat(p,"-order-").concat(C.order),C.order||C.order===0),M(N,"".concat(g,"-").concat(p,"-offset-").concat(C.offset),C.offset||C.offset===0),M(N,"".concat(g,"-").concat(p,"-push-").concat(C.push),C.push||C.push===0),M(N,"".concat(g,"-").concat(p,"-pull-").concat(C.pull),C.pull||C.pull===0),M(N,"".concat(g,"-rtl"),s.value==="rtl"),N))}),ee(g,(m={},M(m,"".concat(g,"-").concat(b),b!==void 0),M(m,"".concat(g,"-order-").concat(d),d),M(m,"".concat(g,"-offset-").concat(F),F),M(m,"".concat(g,"-push-").concat(h),h),M(m,"".concat(g,"-pull-").concat(S),S),m),v)}),y=I(function(){var m=e.flex,b=i.value,d={};if(b&&b[0]>0){var F="".concat(b[0]/2,"px");d.paddingLeft=F,d.paddingRight=F}if(b&&b[1]>0&&!l.value){var h="".concat(b[1]/2,"px");d.paddingTop=h,d.paddingBottom=h}return m&&(d.flex=Jn(m),u.value===!1&&!d.minWidth&&(d.minWidth=0)),d});return function(){var m;return T("div",{class:f.value,style:y.value},[(m=r.default)===null||m===void 0?void 0:m.call(r)])}}});function be(){return be=Object.assign?Object.assign.bind():function(n){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qe(n,e,t){return ra()?qe=Reflect.construct.bind():qe=function(a,i,l){var u=[null];u.push.apply(u,i);var o=Function.bind.apply(a,u),c=new o;return l&&Ee(c,l.prototype),c},qe.apply(null,arguments)}function na(n){return Function.toString.call(n).indexOf("[native code]")!==-1}function nt(n){var e=typeof Map=="function"?new Map:void 0;return nt=function(r){if(r===null||!na(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(r))return e.get(r);e.set(r,a)}function a(){return qe(r,arguments,rt(this).constructor)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),Ee(a,r)},nt(n)}var aa=/%[sdj%]/g,ia=function(){};typeof process<"u"&&process.env;function at(n){if(!n||!n.length)return null;var e={};return n.forEach(function(t){var r=t.field;e[r]=e[r]||[],e[r].push(t)}),e}function le(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r=i)return u;switch(u){case"%s":return String(t[a++]);case"%d":return Number(t[a++]);case"%j":try{return JSON.stringify(t[a++])}catch{return"[Circular]"}break;default:return u}});return l}return n}function la(n){return n==="string"||n==="url"||n==="hex"||n==="email"||n==="date"||n==="pattern"}function te(n,e){return!!(n==null||e==="array"&&Array.isArray(n)&&!n.length||la(e)&&typeof n=="string"&&!n)}function ua(n,e,t){var r=[],a=0,i=n.length;function l(u){r.push.apply(r,u||[]),a++,a===i&&t(r)}n.forEach(function(u){e(u,l)})}function $t(n,e,t){var r=0,a=n.length;function i(l){if(l&&l.length){t(l);return}var u=r;r=r+1,ua?0:a+e),t=t>a?a:t,t<0&&(t+=a),a=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(a);++r0?"".concat(m[0]/-2,"px"):void 0,F=m[1]>0?"".concat(m[1]/-2,"px"):void 0;return d&&(b.marginLeft=d,b.marginRight=d),c.value?b.rowGap="".concat(m[1],"px"):F&&(b.marginTop=F,b.marginBottom=F),b});return function(){var m;return T("div",{class:f.value,style:y.value},[(m=r.default)===null||m===void 0?void 0:m.call(r)])}}});const Qn=Zn;function Jn(n){return typeof n=="number"?"".concat(n," ").concat(n," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(n)?"0 0 ".concat(n):n}var ea=function(){return{span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},xxxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}};const vr=ae({compatConfig:{MODE:3},name:"ACol",props:ea(),setup:function(e,t){var r=t.slots,a=zn(),i=a.gutter,l=a.supportFlexGap,u=a.wrap,o=ye("col",e),c=o.prefixCls,s=o.direction,f=I(function(){var m,b=e.span,d=e.order,F=e.offset,h=e.push,S=e.pull,g=c.value,v={};return["xs","sm","md","lg","xl","xxl","xxxl"].forEach(function(p){var N,C={},x=e[p];typeof x=="number"?C.span=x:ce(x)==="object"&&(C=x||{}),v=k(k({},v),{},(N={},M(N,"".concat(g,"-").concat(p,"-").concat(C.span),C.span!==void 0),M(N,"".concat(g,"-").concat(p,"-order-").concat(C.order),C.order||C.order===0),M(N,"".concat(g,"-").concat(p,"-offset-").concat(C.offset),C.offset||C.offset===0),M(N,"".concat(g,"-").concat(p,"-push-").concat(C.push),C.push||C.push===0),M(N,"".concat(g,"-").concat(p,"-pull-").concat(C.pull),C.pull||C.pull===0),M(N,"".concat(g,"-rtl"),s.value==="rtl"),N))}),ee(g,(m={},M(m,"".concat(g,"-").concat(b),b!==void 0),M(m,"".concat(g,"-order-").concat(d),d),M(m,"".concat(g,"-offset-").concat(F),F),M(m,"".concat(g,"-push-").concat(h),h),M(m,"".concat(g,"-pull-").concat(S),S),m),v)}),y=I(function(){var m=e.flex,b=i.value,d={};if(b&&b[0]>0){var F="".concat(b[0]/2,"px");d.paddingLeft=F,d.paddingRight=F}if(b&&b[1]>0&&!l.value){var h="".concat(b[1]/2,"px");d.paddingTop=h,d.paddingBottom=h}return m&&(d.flex=Jn(m),u.value===!1&&!d.minWidth&&(d.minWidth=0)),d});return function(){var m;return T("div",{class:f.value,style:y.value},[(m=r.default)===null||m===void 0?void 0:m.call(r)])}}});function be(){return be=Object.assign?Object.assign.bind():function(n){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qe(n,e,t){return ra()?qe=Reflect.construct.bind():qe=function(a,i,l){var u=[null];u.push.apply(u,i);var o=Function.bind.apply(a,u),c=new o;return l&&Ee(c,l.prototype),c},qe.apply(null,arguments)}function na(n){return Function.toString.call(n).indexOf("[native code]")!==-1}function nt(n){var e=typeof Map=="function"?new Map:void 0;return nt=function(r){if(r===null||!na(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(r))return e.get(r);e.set(r,a)}function a(){return qe(r,arguments,rt(this).constructor)}return a.prototype=Object.create(r.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),Ee(a,r)},nt(n)}var aa=/%[sdj%]/g,ia=function(){};typeof process<"u"&&process.env;function at(n){if(!n||!n.length)return null;var e={};return n.forEach(function(t){var r=t.field;e[r]=e[r]||[],e[r].push(t)}),e}function le(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),r=1;r=i)return u;switch(u){case"%s":return String(t[a++]);case"%d":return Number(t[a++]);case"%j":try{return JSON.stringify(t[a++])}catch{return"[Circular]"}break;default:return u}});return l}return n}function la(n){return n==="string"||n==="url"||n==="hex"||n==="email"||n==="date"||n==="pattern"}function te(n,e){return!!(n==null||e==="array"&&Array.isArray(n)&&!n.length||la(e)&&typeof n=="string"&&!n)}function ua(n,e,t){var r=[],a=0,i=n.length;function l(u){r.push.apply(r,u||[]),a++,a===i&&t(r)}n.forEach(function(u){e(u,l)})}function $t(n,e,t){var r=0,a=n.length;function i(l){if(l&&l.length){t(l);return}var u=r;r=r+1,u0?C=I({routes:k,params:S,separator:M,itemRender:A}):$.length&&(C=$.map(function(b,B){return Ye(Ze(b.type)==="object"&&(b.type.__ANT_BREADCRUMB_ITEM||b.type.__ANT_BREADCRUMB_SEPARATOR),"Breadcrumb","Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children"),et(b,{separator:M,key:B})}));var R=(i={},xe(i,h.value,!0),xe(i,"".concat(h.value,"-rtl"),y.value==="rtl"),i);return a("div",{class:R},[C])}}});var Ut=["separator","class"],Wt=function(){return{prefixCls:String}};const de=Y({compatConfig:{MODE:3},name:"ABreadcrumbSeparator",__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:Wt(),setup:function(o,_){var f=_.slots,g=_.attrs,h=ce("breadcrumb",o),y=h.prefixCls;return function(){var x;g.separator;var P=g.class,I=Me(g,Ut),m=Ae((x=f.default)===null||x===void 0?void 0:x.call(f));return a("span",se({class:["".concat(y.value,"-separator"),P]},I),[m.length>0?m:"/"])}}});O.Item=q;O.Separator=de;O.install=function(r){return r.component(O.name,O),r.component(q.name,q),r.component(de.name,de),r};N.useInjectFormItemContext=nt;N.ItemRest=ue;N.install=function(r){return r.component(N.name,N),r.component(N.Item.name,N.Item),r.component(ue.name,ue),r};W.setDefaultIndicator=wt;W.install=function(r){return r.component(W.name,W),r};const qt={class:"hint"},Kt={class:"location-bar"},Gt={key:0},Qt=["onClick"],Ht={key:3,style:{"margin-left":"8px"}},Jt={class:"actions"},Xt=["onClick"],Yt={style:{width:"512px",background:"var(--zp-primary-background)",padding:"16px","border-radius":"4px","box-shadow":"0 0 4px var(--zp-secondary-background)",border:"1px solid var(--zp-secondary-background)"}},Zt={style:{padding:"4px"}},en={style:{padding:"4px"}},tn={style:{padding:"4px"}},nn={key:0,class:"view"},an={style:{padding:"16px 0 32px"}},rn={key:0,class:"preview-switch"},on=Y({__name:"stackView",props:{tabIdx:{},paneIdx:{},path:{},walkModePath:{},stackKey:{}},setup(r){const o=r,_=at(),{scroller:f,stackViewEl:g,props:h,multiSelectedIdxs:y,spinning:x}=Mt().toRefs(),{currLocation:P,currPage:I,refresh:m,copyLocation:i,back:C,openNext:k,stack:v,quickMoveTo:S,addToSearchScanPathAndQuickMove:$,searchPathInfo:M,locInputValue:A,isLocationEditing:R,onLocEditEnter:b,onEditBtnClick:B,share:j,selectAll:L,onCreateFloderBtnClick:K,onWalkBtnClick:E,showWalkButton:pe,searchInCurrentDir:me}=At(),{gridItems:Be,sortMethodConv:De,moreActionsDropdownShow:Z,sortedFiles:G,sortMethod:ee,itemSize:ve,loadNextDir:Fe,loadNextDirLoading:Ne,canLoadNext:Ee,onScroll:ze,cellWidth:Q}=Rt(),{onDrop:Te,onFileDragStart:Ve,onFileDragEnd:Oe}=Bt(),{onFileItemClick:je,onContextMenuClick:fe,showGenInfo:H,imageGenInfo:ke,q:Le}=Dt({openNext:k}),{previewIdx:J,onPreviewVisibleChange:Ue,previewing:ge,previewImgMove:Ce,canPreview:ye}=Ft(),{showMenuIdx:te}=Nt();return rt(()=>o,()=>{h.value=o;const l=Et.get(o.stackKey??"");l&&(v.value=l.slice())},{immediate:!0}),(l,t)=>{const We=ft,qe=kt,Ke=gt,be=q,_e=O,Ge=Ct,Qe=yt,he=bt,ne=_t,we=ie,ae=Re,He=Pt,Ie=$t,Je=N,Xe=W;return p(),F(Xe,{spinning:e(x),size:"large"},{default:s(()=>[a(We,{style:{display:"none"}}),u("div",{ref_key:"stackViewEl",ref:g,onDragover:t[28]||(t[28]=d(()=>{},["prevent"])),onDrop:t[29]||(t[29]=d(n=>e(Te)(n),["prevent"])),class:"container"},[a(Ke,{visible:e(H),"onUpdate:visible":t[1]||(t[1]=n=>z(H)?H.value=n:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=n=>H.value=!1)},{cancelText:s(()=>[]),default:s(()=>[a(qe,{active:"",loading:!e(Le).isIdle},{default:s(()=>[u("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto","z-index":"9999"},onDblclick:t[0]||(t[0]=n=>e(ot)(e(ke)))},[u("div",qt,c(l.$t("doubleClickToCopy")),1),T(" "+c(e(ke)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),u("div",Kt,[o.walkModePath?(p(),w("div",Gt,[a(Ge,null,{title:s(()=>[T(c(l.$t("walk-mode-move-message")),1)]),default:s(()=>[a(_e,{style:{flex:"1"}},{default:s(()=>[(p(!0),w(re,null,oe(e(v),(n,D)=>(p(),F(be,{key:D},{default:s(()=>[u("span",null,c(n.curr==="/"?l.$t("root"):n.curr.replace(/:\/$/,l.$t("drive"))),1)]),_:2},1024))),128))]),_:1})]),_:1})])):(p(),w("div",{key:1,class:"breadcrumb",style:st({flex:e(R)?1:""})},[e(R)?(p(),F(Qe,{key:0,style:{flex:"1"},value:e(A),"onUpdate:value":t[3]||(t[3]=n=>z(A)?A.value=n:null),onClick:t[4]||(t[4]=d(()=>{},["stop"])),onKeydown:t[5]||(t[5]=d(()=>{},["stop"])),onPressEnter:e(b),"allow-clear":""},null,8,["value","onPressEnter"])):(p(),F(_e,{key:1,style:{flex:"1"}},{default:s(()=>[(p(!0),w(re,null,oe(e(v),(n,D)=>(p(),F(be,{key:D},{default:s(()=>[u("a",{onClick:d(Se=>e(C)(D),["prevent"])},c(n.curr==="/"?l.$t("root"):n.curr.replace(/:\/$/,l.$t("drive"))),9,Qt)]),_:2},1024))),128))]),_:1})),e(R)?(p(),F(he,{key:2,size:"small",onClick:e(b),type:"primary"},{default:s(()=>[T(c(l.$t("go")),1)]),_:1},8,["onClick"])):(p(),w("div",Ht,[u("a",{onClick:t[6]||(t[6]=d((...n)=>e(i)&&e(i)(...n),["prevent"])),style:{"margin-right":"4px"}},c(l.$t("copy")),1),u("a",{onClick:t[7]||(t[7]=d((...n)=>e(B)&&e(B)(...n),["prevent","stop"]))},c(l.$t("edit")),1)]))],4)),u("div",Jt,[u("a",{class:"opt",onClick:t[8]||(t[8]=d((...n)=>e(m)&&e(m)(...n),["prevent"]))},c(l.$t("refresh")),1),a(ae,null,{overlay:s(()=>[a(we,null,{default:s(()=>[a(ne,{key:"tag-search"},{default:s(()=>[u("a",{onClick:t[10]||(t[10]=d(n=>e(me)("tag-search"),["prevent"]))},c(l.$t("imgSearch")),1)]),_:1}),a(ne,{key:"tag-search"},{default:s(()=>[u("a",{onClick:t[11]||(t[11]=d(n=>e(me)("fuzzy-search"),["prevent"]))},c(l.$t("fuzzy-search")),1)]),_:1})]),_:1})]),default:s(()=>[u("a",{class:"opt",onClick:t[9]||(t[9]=d(()=>{},["prevent"]))},[T(c(l.$t("search"))+" ",1),a(e(le))])]),_:1}),e(pe)?(p(),w("a",{key:0,class:"opt",onClick:t[12]||(t[12]=d((...n)=>e(E)&&e(E)(...n),["prevent"]))}," Walk ")):V("",!0),u("a",{class:"opt",onClick:t[13]||(t[13]=d((...n)=>e(L)&&e(L)(...n),["prevent","stop"]))},c(l.$t("selectAll")),1),e(lt)?V("",!0):(p(),w("a",{key:1,class:"opt",onClick:t[14]||(t[14]=d((...n)=>e(j)&&e(j)(...n),["prevent"]))},c(l.$t("share")),1)),a(ae,null,{overlay:s(()=>[a(we,null,{default:s(()=>[(p(!0),w(re,null,oe(e(_).quickMovePaths,n=>(p(),F(ne,{key:n.dir},{default:s(()=>[u("a",{onClick:d(D=>e(S)(n.dir),["prevent"])},c(n.zh),9,Xt)]),_:2},1024))),128))]),_:1})]),default:s(()=>[u("a",{class:"opt",onClick:t[15]||(t[15]=d(()=>{},["prevent"]))},[T(c(l.$t("quickMove"))+" ",1),a(e(le))])]),_:1}),a(ae,{trigger:["click"],visible:e(Z),"onUpdate:visible":t[24]||(t[24]=n=>z(Z)?Z.value=n:null),placement:"bottomLeft",getPopupContainer:n=>n.parentNode},{overlay:s(()=>[u("div",Yt,[a(Je,it(ut({labelCol:{span:6},wrapperCol:{span:18}})),{default:s(()=>[a(Ie,{label:l.$t("gridCellWidth")},{default:s(()=>[a(He,{modelValue:e(Q),"onUpdate:modelValue":t[17]||(t[17]=n=>z(Q)?Q.value=n:null),max:1024,min:64,step:64},null,8,["modelValue"])]),_:1},8,["label"]),a(Ie,{label:l.$t("sortingMethod")},{default:s(()=>[a(e(dt),{value:e(ee),"onUpdate:value":t[18]||(t[18]=n=>z(ee)?ee.value=n:null),onClick:t[19]||(t[19]=d(()=>{},["stop"])),conv:e(De),options:e(ct)},null,8,["value","conv","options"])]),_:1},8,["label"]),u("div",Zt,[e(M)?e(M).can_delete?(p(),w("a",{key:1,onClick:t[21]||(t[21]=d((...n)=>e($)&&e($)(...n),["prevent"]))},c(l.$t("removeFromSearchScanPathAndQuickMove")),1)):V("",!0):(p(),w("a",{key:0,onClick:t[20]||(t[20]=d((...n)=>e($)&&e($)(...n),["prevent"]))},c(l.$t("addToSearchScanPathAndQuickMove")),1))]),u("div",en,[u("a",{onClick:t[22]||(t[22]=d(n=>e(pt)(e(P)+"/"),["prevent"]))},c(l.$t("openWithLocalFileBrowser")),1)]),u("div",tn,[u("a",{onClick:t[23]||(t[23]=d((...n)=>e(K)&&e(K)(...n),["prevent"]))},c(l.$t("createFolder")),1)])]),_:1},16)])]),default:s(()=>[u("a",{class:"opt",onClick:t[16]||(t[16]=d(()=>{},["prevent"]))},c(l.$t("more")),1)]),_:1},8,["visible","getPopupContainer"])])]),e(I)?(p(),w("div",nn,[a(e(zt),{class:"file-list",items:e(G),ref_key:"scroller",ref:f,onScroll:e(ze),"item-size":e(ve).first,"key-field":"fullpath","item-secondary-size":e(ve).second,gridItems:e(Be)},mt({default:s(({item:n,index:D})=>[a(Tt,{idx:parseInt(D),file:n,"full-screen-preview-image-url":e(G)[e(J)]?e(vt)(e(G)[e(J)]):"","show-menu-idx":e(te),"onUpdate:showMenuIdx":t[25]||(t[25]=Se=>z(te)?te.value=Se:null),selected:e(y).includes(D),"cell-width":e(Q),onFileItemClick:e(je),onDragstart:e(Ve),onDragend:e(Oe),onPreviewVisibleChange:e(Ue),onContextMenuClick:e(fe),"is-selected-mutil-files":e(y).length>1},null,8,["idx","file","full-screen-preview-image-url","show-menu-idx","selected","cell-width","onFileItemClick","onDragstart","onDragend","onPreviewVisibleChange","onContextMenuClick","is-selected-mutil-files"])]),_:2},[o.walkModePath?{name:"after",fn:s(()=>[u("div",an,[a(he,{onClick:e(Fe),loading:e(Ne),block:"",type:"primary",disabled:!e(Ee),ghost:""},{default:s(()=>[T(c(l.$t("loadNextPage")),1)]),_:1},8,["onClick","loading","disabled"])])]),key:"0"}:void 0]),1032,["items","onScroll","item-size","item-secondary-size","gridItems"]),e(ge)?(p(),w("div",rn,[a(e(It),{onClick:t[26]||(t[26]=n=>e(Ce)("prev")),class:Pe({disable:!e(ye)("prev")})},null,8,["class"]),a(e(St),{onClick:t[27]||(t[27]=n=>e(Ce)("next")),class:Pe({disable:!e(ye)("next")})},null,8,["class"])])):V("",!0)])):V("",!0)],544),e(ge)?(p(),F(xt,{key:0,file:e(G)[e(J)],idx:e(J),onContextMenuClick:e(fe)},null,8,["file","idx","onContextMenuClick"])):V("",!0)]),_:1},8,["spinning"])}}});const fn=ht(on,[["__scopeId","data-v-66982d64"]]);export{fn as default};
diff --git a/vue/dist/assets/stackView-88b6d60c.css b/vue/dist/assets/stackView-86f1252a.css
similarity index 77%
rename from vue/dist/assets/stackView-88b6d60c.css
rename to vue/dist/assets/stackView-86f1252a.css
index e1e0ad8..5f7fe48 100644
--- a/vue/dist/assets/stackView-88b6d60c.css
+++ b/vue/dist/assets/stackView-86f1252a.css
@@ -1 +1 @@
-.ant-breadcrumb{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";color:#00000073;font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:#00000073;transition:color .3s}.ant-breadcrumb a:hover{color:#de632f}.ant-breadcrumb>span:last-child{color:#000000d9}.ant-breadcrumb>span:last-child a{color:#000000d9}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:#00000073}.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-link>.anticon+a{margin-left:4px}.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{display:table;content:""}.ant-breadcrumb-rtl:after{display:table;clear:both;content:""}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a{margin-right:4px;margin-left:0}.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.nprogress{pointer-events:none}.nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}.nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}.nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}.nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent .nprogress .spinner,.nprogress-custom-parent .nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.preview-switch[data-v-f53a69f8]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-f53a69f8]{color:#fff;margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-f53a69f8]{opacity:0;pointer-events:none;cursor:none}.breadcrumb[data-v-f53a69f8]{display:flex;align-items:center}.breadcrumb>*[data-v-f53a69f8]{margin-right:4px}.container[data-v-f53a69f8]{background:var(--zp-secondary-background);height:var(--pane-max-height)}.location-bar[data-v-f53a69f8]{padding:4px 16px;background:var(--zp-primary-background);border-bottom:1px solid var(--zp-border);display:flex;align-items:center;justify-content:space-between}.location-bar .actions[data-v-f53a69f8]{display:flex;align-items:center;flex-shrink:0}.location-bar a.opt[data-v-f53a69f8]{margin-left:8px}.view[data-v-f53a69f8]{padding:8px;height:calc(100vh - 48px)}.view .file-list[data-v-f53a69f8]{list-style:none;padding:8px;height:100%;overflow:auto}.hint[data-v-f53a69f8]{padding:4px;border:4px;background:var(--zp-secondary-background);border:1px solid var(--zp-border)}
+.ant-breadcrumb{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum";color:#00000073;font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:#00000073;transition:color .3s}.ant-breadcrumb a:hover{color:#de632f}.ant-breadcrumb>span:last-child{color:#000000d9}.ant-breadcrumb>span:last-child a{color:#000000d9}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:#00000073}.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-link>.anticon+a{margin-left:4px}.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{display:table;content:""}.ant-breadcrumb-rtl:after{display:table;clear:both;content:""}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a{margin-right:4px;margin-left:0}.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.nprogress{pointer-events:none}.nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}.nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}.nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}.nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent .nprogress .spinner,.nprogress-custom-parent .nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.preview-switch[data-v-66982d64]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-66982d64]{color:#fff;margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-66982d64]{opacity:0;pointer-events:none;cursor:none}.breadcrumb[data-v-66982d64]{display:flex;align-items:center}.breadcrumb>*[data-v-66982d64]{margin-right:4px}.container[data-v-66982d64]{background:var(--zp-secondary-background);height:var(--pane-max-height)}.location-bar[data-v-66982d64]{padding:4px 16px;background:var(--zp-primary-background);border-bottom:1px solid var(--zp-border);display:flex;align-items:center;justify-content:space-between}.location-bar .actions[data-v-66982d64]{display:flex;align-items:center;flex-shrink:0}.location-bar a.opt[data-v-66982d64]{margin-left:8px}.view[data-v-66982d64]{padding:8px;height:calc(100vh - 48px)}.view .file-list[data-v-66982d64]{list-style:none;padding:8px;height:100%;overflow:auto}.hint[data-v-66982d64]{padding:4px;border:4px;background:var(--zp-secondary-background);border:1px solid var(--zp-border)}
diff --git a/vue/dist/assets/stackView-e0419fd8.js b/vue/dist/assets/stackView-e0419fd8.js
deleted file mode 100644
index 85b929c..0000000
--- a/vue/dist/assets/stackView-e0419fd8.js
+++ /dev/null
@@ -1 +0,0 @@
-import{d as Y,u as ie,g as U,_ as Se,c as a,a as re,P as X,D as Pe,f as $e,w as Ye,b as Ze,e as et,h as he,M as oe,i as tt,j as nt,F as se,k as at,l as rt,o as d,m as F,n as i,p as u,q as c,r as e,s as T,t as ot,v as p,x as L,y as h,z as ne,A as ae,B as st,C as V,E as lt,G as it,H as ut,S as dt,I as ct,J as pt,K as mt,L as vt,N as Ie,O as ft,Q as kt,R as Ct,T as gt,U as bt,V as yt,W as _t,X as wt}from"./index-dda7184d.js";import{S as W,s as ht,L as It,R as xt,f as St}from"./fullScreenContextMenu-217e4fe7.js";import{F as N,N as Pt,_ as $t}from"./numInput-398b2a8c.js";import"./functionalCallableComp-9395a4a4.js";import{D as Me,u as Mt,a as At,b as Rt,c as Bt,d as Dt,e as Ft,f as Nt,s as Et,g as Tt,F as Vt}from"./FileItem-ba4545b5.js";/* empty css *//* empty css */import"./db-3650b2a5.js";var zt=["class","style"],Ot=function(){return{prefixCls:String,href:String,separator:X.any,overlay:X.any,onClick:Function}};const q=Y({compatConfig:{MODE:3},name:"ABreadcrumbItem",inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:Ot(),slots:["separator","overlay"],setup:function(o,_){var f=_.slots,C=_.attrs,w=ie("breadcrumb",o),b=w.prefixCls,S=function(I,m){var s=U(f,o,"overlay");return s?a(Me,{overlay:s,placement:"bottom"},{default:function(){return[a("span",{class:"".concat(m,"-overlay-link")},[I,a(Pe,null,null)])]}}):I};return function(){var P,I=(P=U(f,o,"separator"))!==null&&P!==void 0?P:"/",m=U(f,o),s=C.class,g=C.style,k=Se(C,zt),v;return o.href!==void 0?v=a("a",re({class:"".concat(b.value,"-link"),onClick:o.onClick},k),[m]):v=a("span",re({class:"".concat(b.value,"-link"),onClick:o.onClick},k),[m]),v=S(v,b.value),m?a("span",{class:s,style:g},[v,I&&a("span",{class:"".concat(b.value,"-separator")},[I])]):null}}});var jt=function(){return{prefixCls:String,routes:{type:Array},params:X.any,separator:X.any,itemRender:{type:Function}}};function Lt(r,o){if(!r.breadcrumbName)return null;var _=Object.keys(o).join("|"),f=r.breadcrumbName.replace(new RegExp(":(".concat(_,")"),"g"),function(C,w){return o[w]||C});return f}function xe(r){var o=r.route,_=r.params,f=r.routes,C=r.paths,w=f.indexOf(o)===f.length-1,b=Lt(o,_);return w?a("span",null,[b]):a("a",{href:"#/".concat(C.join("/"))},[b])}const z=Y({compatConfig:{MODE:3},name:"ABreadcrumb",props:jt(),slots:["separator","itemRender"],setup:function(o,_){var f=_.slots,C=ie("breadcrumb",o),w=C.prefixCls,b=C.direction,S=function(s,g){return s=(s||"").replace(/^\//,""),Object.keys(g).forEach(function(k){s=s.replace(":".concat(k),g[k])}),s},P=function(s,g,k){var v=tt(s),x=S(g||"",k);return x&&v.push(x),v},I=function(s){var g=s.routes,k=g===void 0?[]:g,v=s.params,x=v===void 0?{}:v,$=s.separator,M=s.itemRender,A=M===void 0?xe:M,R=[];return k.map(function(y){var B=S(y.path,x);B&&R.push(B);var O=[].concat(R),j=null;return y.children&&y.children.length&&(j=a(oe,null,{default:function(){return[y.children.map(function(E){return a(oe.Item,{key:E.path||E.breadcrumbName},{default:function(){return[A({route:E,params:x,routes:k,paths:P(O,E.path,x)})]}})})]}})),a(q,{overlay:j,separator:$,key:B||y.breadcrumbName},{default:function(){return[A({route:y,params:x,routes:k,paths:O})]}})})};return function(){var m,s,g,k=o.routes,v=o.params,x=v===void 0?{}:v,$=$e(U(f,o)),M=(m=U(f,o,"separator"))!==null&&m!==void 0?m:"/",A=o.itemRender||f.itemRender||xe;k&&k.length>0?g=I({routes:k,params:x,separator:M,itemRender:A}):$.length&&(g=$.map(function(y,B){return Ye(Ze(y.type)==="object"&&(y.type.__ANT_BREADCRUMB_ITEM||y.type.__ANT_BREADCRUMB_SEPARATOR),"Breadcrumb","Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children"),et(y,{separator:M,key:B})}));var R=(s={},he(s,w.value,!0),he(s,"".concat(w.value,"-rtl"),b.value==="rtl"),s);return a("div",{class:R},[g])}}});var Ut=["separator","class"],Wt=function(){return{prefixCls:String}};const le=Y({compatConfig:{MODE:3},name:"ABreadcrumbSeparator",__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:Wt(),setup:function(o,_){var f=_.slots,C=_.attrs,w=ie("breadcrumb",o),b=w.prefixCls;return function(){var S;C.separator;var P=C.class,I=Se(C,Ut),m=$e((S=f.default)===null||S===void 0?void 0:S.call(f));return a("span",re({class:["".concat(b.value,"-separator"),P]},I),[m.length>0?m:"/"])}}});z.Item=q;z.Separator=le;z.install=function(r){return r.component(z.name,z),r.component(q.name,q),r.component(le.name,le),r};N.useInjectFormItemContext=nt;N.ItemRest=se;N.install=function(r){return r.component(N.name,N),r.component(N.Item.name,N.Item),r.component(se.name,se),r};W.setDefaultIndicator=ht;W.install=function(r){return r.component(W.name,W),r};const qt={class:"hint"},Kt={class:"location-bar"},Gt={key:0},Qt=["onClick"],Ht={key:3,style:{"margin-left":"8px"}},Jt={class:"actions"},Xt=["onClick"],Yt={style:{width:"512px",background:"var(--zp-primary-background)",padding:"16px","border-radius":"4px","box-shadow":"0 0 4px var(--zp-secondary-background)",border:"1px solid var(--zp-secondary-background)"}},Zt={style:{padding:"4px"}},en={style:{padding:"4px"}},tn={style:{padding:"4px"}},nn={key:0,class:"view"},an={style:{padding:"16px 0 32px"}},rn={key:0,class:"preview-switch"},on=Y({__name:"stackView",props:{tabIdx:{},paneIdx:{},path:{},walkModePath:{},stackKey:{}},setup(r){const o=r,_=at(),{scroller:f,stackViewEl:C,props:w,multiSelectedIdxs:b,spinning:S}=Mt().toRefs(),{currLocation:P,currPage:I,refresh:m,copyLocation:s,back:g,openNext:k,stack:v,quickMoveTo:x,addToSearchScanPathAndQuickMove:$,searchPathInfo:M,locInputValue:A,isLocationEditing:R,onLocEditEnter:y,onEditBtnClick:B,share:O,selectAll:j,onCreateFloderBtnClick:K,onWalkBtnClick:E,showWalkButton:ue,searchInCurrentDir:de}=At(),{gridItems:Ae,sortMethodConv:Re,moreActionsDropdownShow:Z,sortedFiles:G,sortMethod:ee,itemSize:ce,loadNextDir:Be,loadNextDirLoading:De,canLoadNext:Fe,onScroll:Ne,cellWidth:Q}=Rt(),{onDrop:Ee,onFileDragStart:Te,onFileDragEnd:Ve}=Bt(),{onFileItemClick:ze,onContextMenuClick:pe,showGenInfo:H,imageGenInfo:me,q:Oe}=Dt({openNext:k}),{previewIdx:J,onPreviewVisibleChange:je,previewing:ve,previewImgMove:fe,canPreview:ke}=Ft(),{showMenuIdx:te}=Nt();return rt(()=>o,()=>{w.value=o;const l=Et.get(o.stackKey??"");l&&(v.value=l.slice())},{immediate:!0}),(l,t)=>{const Le=ft,Ue=kt,We=Ct,Ce=q,ge=z,qe=gt,Ke=bt,be=yt,Ge=_t,Qe=oe,ye=Me,He=Pt,_e=$t,Je=N,Xe=W;return d(),F(Xe,{spinning:e(S),size:"large"},{default:i(()=>[a(Le,{style:{display:"none"}}),u("div",{ref_key:"stackViewEl",ref:C,onDragover:t[26]||(t[26]=c(()=>{},["prevent"])),onDrop:t[27]||(t[27]=c(n=>e(Ee)(n),["prevent"])),class:"container"},[a(We,{visible:e(H),"onUpdate:visible":t[1]||(t[1]=n=>T(H)?H.value=n:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=n=>H.value=!1)},{cancelText:i(()=>[]),default:i(()=>[a(Ue,{active:"",loading:!e(Oe).isIdle},{default:i(()=>[u("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto","z-index":"9999"},onDblclick:t[0]||(t[0]=n=>e(ot)(e(me)))},[u("div",qt,p(l.$t("doubleClickToCopy")),1),L(" "+p(e(me)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),u("div",Kt,[o.walkModePath?(d(),h("div",Gt,[a(qe,null,{title:i(()=>[L(p(l.$t("walk-mode-move-message")),1)]),default:i(()=>[a(ge,{style:{flex:"1"}},{default:i(()=>[(d(!0),h(ne,null,ae(e(v),(n,D)=>(d(),F(Ce,{key:D},{default:i(()=>[u("span",null,p(n.curr==="/"?l.$t("root"):n.curr.replace(/:\/$/,l.$t("drive"))),1)]),_:2},1024))),128))]),_:1})]),_:1})])):(d(),h("div",{key:1,class:"breadcrumb",style:st({flex:e(R)?1:""})},[e(R)?(d(),F(Ke,{key:0,style:{flex:"1"},value:e(A),"onUpdate:value":t[3]||(t[3]=n=>T(A)?A.value=n:null),onClick:t[4]||(t[4]=c(()=>{},["stop"])),onKeydown:t[5]||(t[5]=c(()=>{},["stop"])),onPressEnter:e(y),"allow-clear":""},null,8,["value","onPressEnter"])):(d(),F(ge,{key:1,style:{flex:"1"}},{default:i(()=>[(d(!0),h(ne,null,ae(e(v),(n,D)=>(d(),F(Ce,{key:D},{default:i(()=>[u("a",{onClick:c(we=>e(g)(D),["prevent"])},p(n.curr==="/"?l.$t("root"):n.curr.replace(/:\/$/,l.$t("drive"))),9,Qt)]),_:2},1024))),128))]),_:1})),e(R)?(d(),F(be,{key:2,size:"small",onClick:e(y),type:"primary"},{default:i(()=>[L(p(l.$t("go")),1)]),_:1},8,["onClick"])):(d(),h("div",Ht,[u("a",{onClick:t[6]||(t[6]=c((...n)=>e(s)&&e(s)(...n),["prevent"])),style:{"margin-right":"4px"}},p(l.$t("copy")),1),u("a",{onClick:t[7]||(t[7]=c((...n)=>e(B)&&e(B)(...n),["prevent","stop"]))},p(l.$t("edit")),1)]))],4)),u("div",Jt,[u("a",{class:"opt",onClick:t[8]||(t[8]=c((...n)=>e(m)&&e(m)(...n),["prevent"]))},p(l.$t("refresh")),1),u("a",{class:"opt",onClick:t[9]||(t[9]=c((...n)=>e(de)&&e(de)(...n),["prevent"]))},p(l.$t("search")),1),e(ue)?(d(),h("a",{key:0,class:"opt",onClick:t[10]||(t[10]=c((...n)=>e(E)&&e(E)(...n),["prevent"]))}," Walk ")):V("",!0),u("a",{class:"opt",onClick:t[11]||(t[11]=c((...n)=>e(j)&&e(j)(...n),["prevent","stop"]))},p(l.$t("selectAll")),1),e(lt)?V("",!0):(d(),h("a",{key:1,class:"opt",onClick:t[12]||(t[12]=c((...n)=>e(O)&&e(O)(...n),["prevent"]))},p(l.$t("share")),1)),a(ye,null,{overlay:i(()=>[a(Qe,null,{default:i(()=>[(d(!0),h(ne,null,ae(e(_).quickMovePaths,n=>(d(),F(Ge,{key:n.dir},{default:i(()=>[u("a",{onClick:c(D=>e(x)(n.dir),["prevent"])},p(n.zh),9,Xt)]),_:2},1024))),128))]),_:1})]),default:i(()=>[u("a",{class:"opt",onClick:t[13]||(t[13]=c(()=>{},["prevent"]))},[L(p(l.$t("quickMove"))+" ",1),a(e(Pe))])]),_:1}),a(ye,{trigger:["click"],visible:e(Z),"onUpdate:visible":t[22]||(t[22]=n=>T(Z)?Z.value=n:null),placement:"bottomLeft",getPopupContainer:n=>n.parentNode},{overlay:i(()=>[u("div",Yt,[a(Je,it(ut({labelCol:{span:6},wrapperCol:{span:18}})),{default:i(()=>[a(_e,{label:l.$t("gridCellWidth")},{default:i(()=>[a(He,{modelValue:e(Q),"onUpdate:modelValue":t[15]||(t[15]=n=>T(Q)?Q.value=n:null),max:1024,min:64,step:64},null,8,["modelValue"])]),_:1},8,["label"]),a(_e,{label:l.$t("sortingMethod")},{default:i(()=>[a(e(dt),{value:e(ee),"onUpdate:value":t[16]||(t[16]=n=>T(ee)?ee.value=n:null),onClick:t[17]||(t[17]=c(()=>{},["stop"])),conv:e(Re),options:e(ct)},null,8,["value","conv","options"])]),_:1},8,["label"]),u("div",Zt,[e(M)?e(M).can_delete?(d(),h("a",{key:1,onClick:t[19]||(t[19]=c((...n)=>e($)&&e($)(...n),["prevent"]))},p(l.$t("removeFromSearchScanPathAndQuickMove")),1)):V("",!0):(d(),h("a",{key:0,onClick:t[18]||(t[18]=c((...n)=>e($)&&e($)(...n),["prevent"]))},p(l.$t("addToSearchScanPathAndQuickMove")),1))]),u("div",en,[u("a",{onClick:t[20]||(t[20]=c(n=>e(pt)(e(P)+"/"),["prevent"]))},p(l.$t("openWithLocalFileBrowser")),1)]),u("div",tn,[u("a",{onClick:t[21]||(t[21]=c((...n)=>e(K)&&e(K)(...n),["prevent"]))},p(l.$t("createFolder")),1)])]),_:1},16)])]),default:i(()=>[u("a",{class:"opt",onClick:t[14]||(t[14]=c(()=>{},["prevent"]))},p(l.$t("more")),1)]),_:1},8,["visible","getPopupContainer"])])]),e(I)?(d(),h("div",nn,[a(e(Tt),{class:"file-list",items:e(G),ref_key:"scroller",ref:f,onScroll:e(Ne),"item-size":e(ce).first,"key-field":"fullpath","item-secondary-size":e(ce).second,gridItems:e(Ae)},mt({default:i(({item:n,index:D})=>[a(Vt,{idx:parseInt(D),file:n,"full-screen-preview-image-url":e(G)[e(J)]?e(vt)(e(G)[e(J)]):"","show-menu-idx":e(te),"onUpdate:showMenuIdx":t[23]||(t[23]=we=>T(te)?te.value=we:null),selected:e(b).includes(D),"cell-width":e(Q),onFileItemClick:e(ze),onDragstart:e(Te),onDragend:e(Ve),onPreviewVisibleChange:e(je),onContextMenuClick:e(pe),"is-selected-mutil-files":e(b).length>1},null,8,["idx","file","full-screen-preview-image-url","show-menu-idx","selected","cell-width","onFileItemClick","onDragstart","onDragend","onPreviewVisibleChange","onContextMenuClick","is-selected-mutil-files"])]),_:2},[o.walkModePath?{name:"after",fn:i(()=>[u("div",an,[a(be,{onClick:e(Be),loading:e(De),block:"",type:"primary",disabled:!e(Fe),ghost:""},{default:i(()=>[L(p(l.$t("loadNextPage")),1)]),_:1},8,["onClick","loading","disabled"])])]),key:"0"}:void 0]),1032,["items","onScroll","item-size","item-secondary-size","gridItems"]),e(ve)?(d(),h("div",rn,[a(e(It),{onClick:t[24]||(t[24]=n=>e(fe)("prev")),class:Ie({disable:!e(ke)("prev")})},null,8,["class"]),a(e(xt),{onClick:t[25]||(t[25]=n=>e(fe)("next")),class:Ie({disable:!e(ke)("next")})},null,8,["class"])])):V("",!0)])):V("",!0)],544),e(ve)?(d(),F(St,{key:0,file:e(G)[e(J)],idx:e(J),onContextMenuClick:e(pe)},null,8,["file","idx","onContextMenuClick"])):V("",!0)]),_:1},8,["spinning"])}}});const fn=wt(on,[["__scopeId","data-v-f53a69f8"]]);export{fn as default};
diff --git a/vue/dist/index.html b/vue/dist/index.html
index 3b751c0..26234b6 100644
--- a/vue/dist/index.html
+++ b/vue/dist/index.html
@@ -7,7 +7,7 @@
Infinite Image Browsing
-
+
diff --git a/vue/src/api/db.ts b/vue/src/api/db.ts
index 92e0c9f..639de02 100644
--- a/vue/src/api/db.ts
+++ b/vue/src/api/db.ts
@@ -74,8 +74,17 @@ export const getImageSelectedCustomTag = async (path: string) => {
return resp.data as Tag[]
}
-export const getImagesBySubstr = async (substr: string, cursor: string, regexp?: string) => {
- const resp = await axiosInst.value.get('/db/search_by_substr', { params: { substr,cursor,regexp } })
+export interface SearchBySubstrReq {
+ surstr: string;
+ cursor: string;
+ regexp: string;
+ folder_paths?: string[];
+ size?: number;
+}
+
+
+export const getImagesBySubstr = async (req: SearchBySubstrReq) => {
+ const resp = await axiosInst.value.post('/db/search_by_substr', req)
return resp.data as {
files: FileNodeInfo[],
cursor: PageCursor
diff --git a/vue/src/page/TagSearch/SubstrSearch.vue b/vue/src/page/TagSearch/SubstrSearch.vue
index 4820365..ccaa41c 100644
--- a/vue/src/page/TagSearch/SubstrSearch.vue
+++ b/vue/src/page/TagSearch/SubstrSearch.vue
@@ -5,7 +5,7 @@ import '@zanllp/vue-virtual-scroller/dist/vue-virtual-scroller.css'
// @ts-ignore
import { RecycleScroller } from '@zanllp/vue-virtual-scroller'
import { toRawFileUrl } from '@/util/file'
-import { getDbBasicInfo, getExpiredDirs, getImagesBySubstr, updateImageData, type DataBaseBasicInfo } from '@/api/db'
+import { getDbBasicInfo, getExpiredDirs, getImagesBySubstr, updateImageData, type DataBaseBasicInfo, SearchBySubstrReq } from '@/api/db'
import { copy2clipboardI18n, makeAsyncFunctionSingle, useGlobalEventListen } from '@/util'
import fullScreenContextMenu from '@/page/fileTransfer/fullScreenContextMenu.vue'
import { LeftCircleOutlined, RightCircleOutlined, regex } from '@/icon'
@@ -13,9 +13,19 @@ import { message } from 'ant-design-vue'
import { t } from '@/i18n'
import { createImageSearchIter, useImageSearch } from './hook'
+const props = defineProps<{ tabIdx: number; paneIdx: number, searchScope?: string }>()
const isRegex = ref(false)
const substr = ref('')
-const iter = createImageSearchIter(cursor => isRegex.value ? getImagesBySubstr('', cursor, substr.value) : getImagesBySubstr(substr.value, cursor))
+const folder_paths_str = ref(props.searchScope ?? '')
+const iter = createImageSearchIter(cursor => {
+ const req: SearchBySubstrReq = {
+ cursor,
+ regexp: isRegex.value ? substr.value : '',
+ surstr: !isRegex.value ? substr.value : '',
+ folder_paths: (folder_paths_str.value ?? '').split(/,|\n/).map(v => v.trim()).filter(v => v)
+ }
+ return getImagesBySubstr(req)
+})
const {
queue,
images,
@@ -46,7 +56,10 @@ const info = ref()
onMounted(async () => {
info.value = await getDbBasicInfo()
if (info.value.img_count && info.value.expired) {
- onUpdateBtnClick()
+ await onUpdateBtnClick()
+ }
+ if (props.searchScope) {
+ await query()
}
})
@@ -89,10 +102,14 @@ const onRegexpClick = () => {
title="Use Regular Expression">
{{ info.img_count === 0 ? $t('generateIndexHint') : $t('UpdateIndex') }}
- {{
+ {{
$t('search') }}
+