diff --git a/javascript/index.js b/javascript/index.js index 2a90a62..ce17bf2 100644 --- a/javascript/index.js +++ b/javascript/index.js @@ -13,7 +13,7 @@ Promise.resolve().then(async () => {
=T.length)&&(h=this.addView(l,_,M,L,$),this.unuseView(h,!0),T=z.get($)),h=T[F],I.set($,F+1)),w.delete(h.nr.key),h.nr.used=!0,h.nr.index=_,h.nr.key=L,h.nr.type=$,w.set(L,h),Q=!0;else if(!h.nr.used&&(h.nr.used=!0,h.nr.index=_,Q=!0,T)){const x=T.indexOf(h);x!==-1&&T.splice(x,1)}h.item=M,Q&&(_===m.length-1&&this.$emit("scroll-end"),_===0&&this.$emit("scroll-start")),e===null?(h.position=E[_-1].accumulator,h.offset=0):(h.position=Math.floor(_/i)*e,h.offset=_%i*r)}return this.$_startIndex=c,this.$_endIndex=p,this.emitUpdate&&this.$emit("update",c,p,O,N),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:f}},getListenerTarget(){let n=Ue(this.$el);return window.document&&(n===window.document.documentElement||n===window.document.body)&&(n=window),n},getScroll(){const{$el:n,direction:t}=this,e=t==="vertical";let i;if(this.pageMode){const r=n.getBoundingClientRect(),o=e?r.height:r.width;let v=-(e?r.top:r.left),d=e?window.innerHeight:window.innerWidth;v<0&&(d+=v,v=0),v+d>o&&(d=o-v),i={start:v,end:v+d}}else e?i={start:n.scrollTop,end:n.scrollTop+n.clientHeight}:i={start:n.scrollLeft,end:n.scrollLeft+n.clientWidth};return i},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,be?{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(n){let t;const e=this.gridItems||1;this.itemSize===null?t=n>0?this.sizes[n-1].accumulator:0:t=Math.floor(n/e)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(n){const t=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let e,i,r;if(this.pageMode){const o=Ue(this.$el),v=o.tagName==="HTML"?0:o[t.scroll],d=o.getBoundingClientRect(),b=this.$el.getBoundingClientRect()[t.start]-d[t.start];e=o,i=t.scroll,r=n+v+b}else e=this.$el,i=t.scroll,r=n;e[i]=r},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((n,t)=>n.nr.index-t.nr.index)}}};const Ai={key:0,ref:"before",class:"vue-recycle-scroller__slot"},Si={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function _i(n,t,e,i,r,o){const v=Ht("ResizeObserver"),d=Vt("observe-visibility");return xt((u(),g("div",{class:Y(["vue-recycle-scroller",{ready:r.ready,"page-mode":e.pageMode,[`direction-${n.direction}`]:!0}]),onScrollPassive:t[0]||(t[0]=(...m)=>o.handleScroll&&o.handleScroll(...m))},[n.$slots.before?(u(),g("div",Ai,[ee(n.$slots,"before")],512)):A("v-if",!0),(u(),R(Ne(e.listTag),{ref:"wrapper",style:nt({[n.direction==="vertical"?"minHeight":"minWidth"]:r.totalSize+"px"}),class:Y(["vue-recycle-scroller__item-wrapper",e.listClass])},{default:C(()=>[(u(!0),g(V,null,J(r.pool,m=>(u(),R(Ne(e.itemTag),Ut({key:m.nr.id,style:r.ready?{transform:`translate${n.direction==="vertical"?"Y":"X"}(${m.position}px) translate${n.direction==="vertical"?"X":"Y"}(${m.offset}px)`,width:e.gridItems?`${n.direction==="vertical"&&e.itemSecondarySize||e.itemSize}px`:void 0,height:e.gridItems?`${n.direction==="horizontal"&&e.itemSecondarySize||e.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[e.itemClass,{hover:!e.skipHover&&r.hoverKey===m.nr.key}]]},Jt(e.skipHover?{}:{mouseenter:()=>{r.hoverKey=m.nr.key},mouseleave:()=>{r.hoverKey=null}})),{default:C(()=>[ee(n.$slots,"default",{item:m.item,index:m.nr.index,active:m.nr.used})]),_:2},1040,["style","class"]))),128)),ee(n.$slots,"empty")]),_:3},8,["style","class"])),n.$slots.after?(u(),g("div",Si,[ee(n.$slots,"after")],512)):A("v-if",!0),S(v,{onNotify:o.handleResize},null,8,["onNotify"])],34)),[[d,o.handleVisibilityChange]])}ht.render=_i;ht.__file="src/components/RecycleScroller.vue";const Je=X({__name:"ContextMenu",props:{file:{},idx:{},selectedTag:{},disableDelete:{type:Boolean},isSelectedMutilFiles:{type:Boolean}},emits:["contextMenuClick"],setup(n,{emit:t}){const e=n,i=Se(),r=H(()=>{var o;return(((o=i.conf)==null?void 0:o.all_custom_tags)??[]).reduce((v,d)=>[...v,{...d,selected:!!e.selectedTag.find(m=>m.id===d.id)}],[])});return(o,v)=>{const d=it,m=Wt,b=Kt,E=rt;return u(),R(E,{onClick:v[0]||(v[0]=w=>t("contextMenuClick",w,o.file,o.idx))},{default:C(()=>{var w;return[S(d,{key:"deleteFiles",disabled:o.disableDelete},{default:C(()=>[k(y(o.$t("deleteSelected")),1)]),_:1},8,["disabled"]),S(d,{key:"openWithDefaultApp"},{default:C(()=>[k(y(o.$t("openWithDefaultApp")),1)]),_:1}),S(d,{key:"saveSelectedAsJson"},{default:C(()=>[k(y(o.$t("saveSelectedAsJson")),1)]),_:1}),o.file.type==="dir"?(u(),g(V,{key:0},[S(d,{key:"openInNewTab"},{default:C(()=>[k(y(o.$t("openInNewTab")),1)]),_:1}),S(d,{key:"openOnTheRight"},{default:C(()=>[k(y(o.$t("openOnTheRight")),1)]),_:1}),S(d,{key:"openWithWalkMode"},{default:C(()=>[k(y(o.$t("openWithWalkMode")),1)]),_:1})],64)):A("",!0),o.file.type==="file"?(u(),g(V,{key:1},[B(oe)(o.file.name)?(u(),g(V,{key:0},[S(d,{key:"viewGenInfo"},{default:C(()=>[k(y(o.$t("viewGenerationInfo")),1)]),_:1}),S(m),((w=B(i).conf)==null?void 0:w.launch_mode)!=="server"?(u(),g(V,{key:0},[S(d,{key:"send2txt2img"},{default:C(()=>[k(y(o.$t("sendToTxt2img")),1)]),_:1}),S(d,{key:"send2img2img"},{default:C(()=>[k(y(o.$t("sendToImg2img")),1)]),_:1}),S(d,{key:"send2inpaint"},{default:C(()=>[k(y(o.$t("sendToInpaint")),1)]),_:1}),S(d,{key:"send2extras"},{default:C(()=>[k(y(o.$t("sendToExtraFeatures")),1)]),_:1}),S(b,{key:"sendToThirdPartyExtension",title:o.$t("sendToThirdPartyExtension")},{default:C(()=>[S(d,{key:"send2controlnet-txt2img"},{default:C(()=>[k("ControlNet - "+y(o.$t("t2i")),1)]),_:1}),S(d,{key:"send2controlnet-img2img"},{default:C(()=>[k("ControlNet - "+y(o.$t("i2i")),1)]),_:1}),S(d,{key:"send2outpaint"},{default:C(()=>[k("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):A("",!0),S(d,{key:"rename"},{default:C(()=>[k(y(o.$t("rename")),1)]),_:1}),S(d,{key:"send2BatchDownload"},{default:C(()=>[k(y(o.$t("sendToBatchDownload")),1)]),_:1}),S(d,{key:"send2savedDir"},{default:C(()=>[k(y(o.$t("send2savedDir")),1)]),_:1}),S(m),o.isSelectedMutilFiles?(u(),g(V,{key:1},[S(b,{key:"batch-add-tag",title:o.$t("batchAddTag")},{default:C(()=>[(u(!0),g(V,null,J(r.value,z=>(u(),R(d,{key:`batch-add-tag-${z.id}`},{default:C(()=>[k(y(z.name),1)]),_:2},1024))),128))]),_:1},8,["title"]),S(b,{key:"batch-remove-tag",title:o.$t("batchRemoveTag")},{default:C(()=>[(u(!0),g(V,null,J(r.value,z=>(u(),R(d,{key:`batch-remove-tag-${z.id}`},{default:C(()=>[k(y(z.name),1)]),_:2},1024))),128))]),_:1},8,["title"])],64)):(u(),R(b,{key:"toggle-tag",title:o.$t("toggleTag")},{default:C(()=>[(u(!0),g(V,null,J(r.value,z=>(u(),R(d,{key:`toggle-tag-${z.id}`},{default:C(()=>[k(y(z.name)+" ",1),z.selected?(u(),R(B(ot),{key:0})):(u(),R(B(lt),{key:1}))]),_:2},1024))),128))]),_:1},8,["title"])),S(d,{key:"openWithLocalFileBrowser"},{default:C(()=>[k(y(o.$t("openWithLocalFileBrowser")),1)]),_:1})],64)):A("",!0),S(d,{key:"previewInNewWindow"},{default:C(()=>[k(y(o.$t("previewInNewWindow")),1)]),_:1}),S(d,{key:"download"},{default:C(()=>[k(y(o.$t("download")),1)]),_:1}),S(d,{key:"copyPreviewUrl"},{default:C(()=>[k(y(o.$t("copySourceFilePreviewLink")),1)]),_:1})],64)):A("",!0)]}),_:1})}}}),P=n=>(Xe("data-v-78cd67a3"),n=n(),et(),n),Ii={class:"changeIndicatorWrapper"},ki={key:0,class:"changeIndicatorsLeft changeIndicators"},Ci={key:0,class:"promptChangeIndicator changeIndicator"},wi={key:1,class:"negpromptChangeIndicator changeIndicator"},Ei={key:2,class:"seedChangeIndicator changeIndicator"},Ti={key:3,class:"stepsChangeIndicator changeIndicator"},Oi={key:4,class:"cfgChangeIndicator changeIndicator"},Pi={key:5,class:"sizeChangeIndicator changeIndicator"},Di={key:6,class:"modelChangeIndicator changeIndicator"},Ni={key:7,class:"samplerChangeIndicator changeIndicator"},zi={key:8,class:"otherChangeIndicator changeIndicator"},Qi={class:"hoverOverlay"},Mi=P(()=>a("strong",null,"This file",-1)),$i=P(()=>a("br",null,null,-1)),Bi=P(()=>a("br",null,null,-1)),Fi={key:0},Ri=P(()=>a("td",null,[a("span",{class:"promptChangeIndicator"},"+ Prompt")],-1)),Li={key:1},ji=P(()=>a("td",null,[a("span",{class:"negpromptChangeIndicator"},"- Prompt")],-1)),Hi={key:2},Vi=P(()=>a("td",null,[a("span",{class:"seedChangeIndicator"},"Seed")],-1)),xi={key:3},Ui=P(()=>a("td",null,[a("span",{class:"stepsChangeIndicator"},"Steps")],-1)),Ji={key:4},Wi=P(()=>a("td",null,[a("span",{class:"cfgChangeIndicator"},"Cfg Scale")],-1)),Ki={key:5},Yi=P(()=>a("td",null,[a("span",{class:"sizeChangeIndicator"},"Size")],-1)),Gi={key:6},qi=P(()=>a("td",null,[a("span",{class:"modelChangeIndicator"},"Model")],-1)),Zi=P(()=>a("br",null,null,-1)),Xi={key:7},er=P(()=>a("td",null,[a("span",{class:"samplerChangeIndicator"},"Sampler")],-1)),tr=P(()=>a("br",null,null,-1)),nr=P(()=>a("br",null,null,-1)),ir={key:0},rr=P(()=>a("span",{class:"otherChangeIndicator"},"Other",-1)),sr=P(()=>a("br",null,null,-1)),or=P(()=>a("br",null,null,-1)),lr={key:1,class:"changeIndicatorsRight changeIndicators"},ar={key:0,class:"promptChangeIndicator changeIndicator"},ur={key:1,class:"negpromptChangeIndicator changeIndicator"},cr={key:2,class:"seedChangeIndicator changeIndicator"},dr={key:3,class:"stepsChangeIndicator changeIndicator"},fr={key:4,class:"cfgChangeIndicator changeIndicator"},hr={key:5,class:"sizeChangeIndicator changeIndicator"},gr={key:6,class:"modelChangeIndicator changeIndicator"},vr={key:7,class:"samplerChangeIndicator changeIndicator"},pr={key:8,class:"otherChangeIndicator changeIndicator"},mr={class:"hoverOverlay"},yr=P(()=>a("strong",null,"This file",-1)),br=P(()=>a("br",null,null,-1)),Ar=P(()=>a("br",null,null,-1)),Sr={key:0},_r=P(()=>a("td",null,[a("span",{class:"promptChangeIndicator"},"+ Prompt")],-1)),Ir={key:1},kr=P(()=>a("td",null,[a("span",{class:"negpromptChangeIndicator"},"- Prompt")],-1)),Cr={key:2},wr=P(()=>a("td",null,[a("span",{class:"seedChangeIndicator"},"Seed")],-1)),Er={key:3},Tr=P(()=>a("td",null,[a("span",{class:"stepsChangeIndicator"},"Steps")],-1)),Or={key:4},Pr=P(()=>a("td",null,[a("span",{class:"cfgChangeIndicator"},"Cfg Scale")],-1)),Dr={key:5},Nr=P(()=>a("td",null,[a("span",{class:"sizeChangeIndicator"},"Size")],-1)),zr={key:6},Qr=P(()=>a("td",null,[a("span",{class:"modelChangeIndicator"},"Model")],-1)),Mr=P(()=>a("br",null,null,-1)),$r={key:7},Br=P(()=>a("td",null,[a("span",{class:"samplerChangeIndicator"},"Sampler")],-1)),Fr=P(()=>a("br",null,null,-1)),Rr=P(()=>a("br",null,null,-1)),Lr={key:0},jr=P(()=>a("span",{class:"otherChangeIndicator"},"Other",-1)),Hr=P(()=>a("br",null,null,-1)),Vr=P(()=>a("br",null,null,-1)),xr=X({__name:"ChangeIndicator",props:{genDiffToPrevious:{},genDiffToNext:{},genInfo:{}},setup(n){function t(i){const r=["prompt","negativePrompt","seed","steps","cfgScale","size","Model","others"],o=Object.keys(i).filter(v=>!r.includes(v));return Object.fromEntries(o.map(v=>[v,i[v]]))}function e(i){return Object.keys(t(i)).length>0}return(i,r)=>(u(),g("div",Ii,[i.genDiffToPrevious.empty?A("",!0):(u(),g("div",ki,["prompt"in i.genDiffToPrevious.diff?(u(),g("div",Ci,"P+")):A("",!0),"negativePrompt"in i.genDiffToPrevious.diff?(u(),g("div",wi,"P-")):A("",!0),"seed"in i.genDiffToPrevious.diff?(u(),g("div",Ei,"Se")):A("",!0),"steps"in i.genDiffToPrevious.diff?(u(),g("div",Ti,"St")):A("",!0),"cfgScale"in i.genDiffToPrevious.diff?(u(),g("div",Oi,"Cf")):A("",!0),"size"in i.genDiffToPrevious.diff?(u(),g("div",Pi,"Si")):A("",!0),"Model"in i.genDiffToPrevious.diff?(u(),g("div",Di,"Mo")):A("",!0),"Sampler"in i.genDiffToPrevious.diff?(u(),g("div",Ni,"Sa")):A("",!0),e(i.genDiffToPrevious.diff)?(u(),g("div",zi,"Ot")):A("",!0)])),a("div",Qi,[a("small",null,[S(B(Fe)),Mi,k(" vs "+y(i.genDiffToPrevious.otherFile)+" ",1),$i,Bi,a("table",null,["prompt"in i.genDiffToPrevious.diff?(u(),g("tr",Fi,[Ri,a("td",null,y(i.genDiffToPrevious.diff.prompt)+" tokens changed",1)])):A("",!0),"negativePrompt"in i.genDiffToPrevious.diff?(u(),g("tr",Li,[ji,a("td",null,y(i.genDiffToPrevious.diff.negativePrompt)+" tokens changed",1)])):A("",!0),"seed"in i.genDiffToPrevious.diff?(u(),g("tr",Hi,[Vi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.seed[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.seed[1]),1)])])):A("",!0),"steps"in i.genDiffToPrevious.diff?(u(),g("tr",xi,[Ui,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.steps[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.steps[1]),1)])])):A("",!0),"cfgScale"in i.genDiffToPrevious.diff?(u(),g("tr",Ji,[Wi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.cfgScale[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.cfgScale[1]),1)])])):A("",!0),"size"in i.genDiffToPrevious.diff?(u(),g("tr",Ki,[Yi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.size[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.size[1]),1)])])):A("",!0),"Model"in i.genDiffToPrevious.diff?(u(),g("tr",Gi,[qi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.Model[0]),1),Zi,k(" vs "+y(i.genDiffToPrevious.diff.Model[1]),1)])])):A("",!0),"Sampler"in i.genDiffToPrevious.diff?(u(),g("tr",Xi,[er,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.Sampler[0]),1),tr,k(" vs "+y(i.genDiffToPrevious.diff.Sampler[1]),1)])])):A("",!0)]),nr,e(i.genDiffToPrevious.diff)?(u(),g("div",ir,[rr,k(" props that changed:"),sr,or,a("ul",null,[(u(!0),g(V,null,J(t(i.genDiffToPrevious.diff),(o,v)=>(u(),g("li",null,y(v),1))),256))])])):A("",!0)])]),i.genDiffToNext.empty?A("",!0):(u(),g("div",lr,["prompt"in i.genDiffToNext.diff?(u(),g("div",ar,"P+")):A("",!0),"negativePrompt"in i.genDiffToNext.diff?(u(),g("div",ur,"P-")):A("",!0),"seed"in i.genDiffToNext.diff?(u(),g("div",cr,"Se")):A("",!0),"steps"in i.genDiffToNext.diff?(u(),g("div",dr,"St")):A("",!0),"cfgScale"in i.genDiffToNext.diff?(u(),g("div",fr,"Cf")):A("",!0),"size"in i.genDiffToNext.diff?(u(),g("div",hr,"Si")):A("",!0),"Model"in i.genDiffToNext.diff?(u(),g("div",gr,"Mo")):A("",!0),"Sampler"in i.genDiffToNext.diff?(u(),g("div",vr,"Sa")):A("",!0),e(i.genDiffToNext.diff)?(u(),g("div",pr,"Ot")):A("",!0)])),a("div",mr,[a("small",null,[S(B(Fe)),yr,k(" vs "+y(i.genDiffToNext.otherFile)+" ",1),br,Ar,a("table",null,["prompt"in i.genDiffToNext.diff?(u(),g("tr",Sr,[_r,a("td",null,y(i.genDiffToNext.diff.prompt)+" tokens changed",1)])):A("",!0),"negativePrompt"in i.genDiffToNext.diff?(u(),g("tr",Ir,[kr,a("td",null,y(i.genDiffToNext.diff.negativePrompt)+" tokens changed",1)])):A("",!0),"seed"in i.genDiffToNext.diff?(u(),g("tr",Cr,[wr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.seed[0]),1),k(" vs "+y(i.genDiffToNext.diff.seed[1]),1)])])):A("",!0),"steps"in i.genDiffToNext.diff?(u(),g("tr",Er,[Tr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.steps[0]),1),k(" vs "+y(i.genDiffToNext.diff.steps[1]),1)])])):A("",!0),"cfgScale"in i.genDiffToNext.diff?(u(),g("tr",Or,[Pr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.cfgScale[0]),1),k(" vs "+y(i.genDiffToNext.diff.cfgScale[1]),1)])])):A("",!0),"size"in i.genDiffToNext.diff?(u(),g("tr",Dr,[Nr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.size[0]),1),k(" vs "+y(i.genDiffToNext.diff.size[1]),1)])])):A("",!0),"Model"in i.genDiffToNext.diff?(u(),g("tr",zr,[Qr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.Model[0]),1),Mr,k(" vs "+y(i.genDiffToNext.diff.Model[1]),1)])])):A("",!0),"Sampler"in i.genDiffToNext.diff?(u(),g("tr",$r,[Br,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.Sampler[0]),1),Fr,k(" vs "+y(i.genDiffToNext.diff.Sampler[1]),1)])])):A("",!0)]),Rr,e(i.genDiffToNext.diff)?(u(),g("div",Lr,[jr,k(" props that changed:"),Hr,Vr,a("ul",null,[(u(!0),g(V,null,J(t(i.genDiffToNext.diff),(o,v)=>(u(),g("li",null,y(v),1))),256))])])):A("",!0)])])]))}});const Ur=st(xr,[["__scopeId","data-v-78cd67a3"]]),Jr=["data-idx"],Wr={key:1,class:"more"},Kr={class:"float-btn-wrap"},Yr={key:1,class:"tags-container"},Gr=["urld"],qr={class:"play-icon"},Zr=["src"],Xr={key:0,class:"tags-container"},es={key:4,class:"preview-icon-wrap"},ts={key:1,class:"dir-cover-container"},ns=["src"],is={key:5,class:"profile"},rs={class:"name line-clamp-1"},ss={class:"basic-info"},os=X({__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},genInfo:{},enableChangeIndicator:{type:Boolean},extraTags:{},coverFiles:{},getGenDiff:{},getGenDiffWatchDep:{}},emits:["update:showMenuIdx","fileItemClick","dragstart","dragend","previewVisibleChange","contextMenuClick","close-icon-click"],setup(n,{emit:t}){const e=n;Yt(l=>({eaff2488:l.$props.cellWidth+"px"}));const i=Se(),r=qe(),o=j(),v=j(),d=he(()=>{const{getGenDiff:l,file:s,idx:c}=e;l&&(v.value=l(s.gen_info_obj,c,1,s),o.value=l(s.gen_info_obj,c,-1,s))},200+100*Math.random());re(()=>{var l;return(l=e.getGenDiffWatchDep)==null?void 0:l.call(e,e.idx)},()=>{v.value=void 0,o.value=void 0,d()},{immediate:!0,deep:!0});const m=H(()=>r.tagMap.get(e.file.fullpath)??[]),b=H(()=>{const l=i.gridThumbnailResolution;return i.enableThumbnail?ze(e.file,[l,l].join("x")):Gt(e.file)}),E=H(()=>{var l;return(((l=i.conf)==null?void 0:l.all_custom_tags)??[]).reduce((s,c)=>[...s,{...c,selected:!!m.value.find(p=>p.id===c.id)}],[])}),w=H(()=>E.value.find(l=>l.type==="custom"&&l.name==="like")),z=()=>{fe(w.value),t("contextMenuClick",{key:`toggle-tag-${w.value.id}`},e.file,e.idx)};return(l,s)=>{const c=q,p=it,D=rt,O=tn,N=dn;return u(),R(c,{trigger:["contextmenu"],visible:B(i).longPressOpenContextMenu?typeof l.idx=="number"&&l.showMenuIdx===l.idx:void 0,"onUpdate:visible":s[8]||(s[8]=h=>typeof l.idx=="number"&&t("update:showMenuIdx",h?l.idx:-1))},{overlay:C(()=>[l.enableRightClickMenu?(u(),R(Je,{key:0,file:l.file,idx:l.idx,"selected-tag":m.value,onContextMenuClick:s[7]||(s[7]=(h,f,I)=>t("contextMenuClick",h,f,I)),"is-selected-mutil-files":l.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])):A("",!0)]),default:C(()=>{var h;return[(u(),g("li",{class:Y(["file file-item-trigger grid",{clickable:l.file.type==="dir",selected:l.selected}]),"data-idx":l.idx,key:l.file.name,draggable:"true",onDragstart:s[4]||(s[4]=f=>t("dragstart",f,l.idx)),onDragend:s[5]||(s[5]=f=>t("dragend",f,l.idx)),onClickCapture:s[6]||(s[6]=f=>t("fileItemClick",f,l.file,l.idx))},[a("div",null,[l.enableCloseIcon?(u(),g("div",{key:0,class:"close-icon",onClick:s[0]||(s[0]=f=>t("close-icon-click"))},[S(B(qt))])):A("",!0),l.enableRightClickMenu?(u(),g("div",Wr,[S(c,null,{overlay:C(()=>[S(Je,{file:l.file,idx:l.idx,"selected-tag":m.value,onContextMenuClick:s[1]||(s[1]=(f,I,M)=>t("contextMenuClick",f,I,M)),"is-selected-mutil-files":l.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])]),default:C(()=>[a("div",Kr,[S(B(Zt))])]),_:1}),l.file.type==="file"?(u(),R(c,{key:0},{overlay:C(()=>[E.value.length>1?(u(),R(D,{key:0,onClick:s[2]||(s[2]=f=>t("contextMenuClick",f,l.file,l.idx))},{default:C(()=>[(u(!0),g(V,null,J(E.value,f=>(u(),R(p,{key:`toggle-tag-${f.id}`},{default:C(()=>[k(y(f.name)+" ",1),f.selected?(u(),R(B(ot),{key:0})):(u(),R(B(lt),{key:1}))]),_:2},1024))),128))]),_:1})):A("",!0)]),default:C(()=>{var f,I;return[a("div",{class:Y(["float-btn-wrap",{"like-selected":(f=w.value)==null?void 0:f.selected}]),onClick:z},[(I=w.value)!=null&&I.selected?(u(),R(B(Rn),{key:0})):(u(),R(B(Vn),{key:1}))],2)]}),_:1})):A("",!0)])):A("",!0),B(Xt)(l.file.name)?(u(),g("div",{key:l.file.fullpath,class:Y(`idx-${l.idx} item-content`)},[l.enableChangeIndicator&&v.value&&o.value?(u(),R(Ur,{key:0,"gen-diff-to-next":v.value,"gen-diff-to-previous":o.value},null,8,["gen-diff-to-next","gen-diff-to-previous"])):A("",!0),S(O,{src:b.value,fallback:B(Dn),preview:{src:l.fullScreenPreviewImageUrl,onVisibleChange:(f,I)=>t("previewVisibleChange",f,I)}},null,8,["src","fallback","preview"]),m.value&&l.cellWidth>128?(u(),g("div",Yr,[(u(!0),g(V,null,J(l.extraTags??m.value,f=>(u(),R(N,{key:f.id,color:B(r).getColor(f.name)},{default:C(()=>[k(y(f.name),1)]),_:2},1032,["color"]))),128))])):A("",!0)],2)):B(en)(l.file.name)?(u(),g("div",{key:3,class:Y(`idx-${l.idx} item-content video`),urld:B(ue)(l.file),style:nt({"background-image":`url('${B(ue)(l.file)}')`}),onClick:s[3]||(s[3]=f=>B(sn)(l.file,I=>t("contextMenuClick",{key:`toggle-tag-${I}`},l.file,l.idx)))},[a("div",qr,[a("img",{src:B(Wn),style:{width:"40px",height:"40px"}},null,8,Zr)]),m.value&&l.cellWidth>128?(u(),g("div",Xr,[(u(!0),g(V,null,J(m.value,f=>(u(),R(N,{key:f.id,color:B(r).getColor(f.name)},{default:C(()=>[k(y(f.name),1)]),_:2},1032,["color"]))),128))])):A("",!0)],14,Gr)):(u(),g("div",es,[l.file.type==="file"?(u(),R(B(yn),{key:0,class:"icon center"})):(h=l.coverFiles)!=null&&h.length&&l.cellWidth>160?(u(),g("div",ts,[(u(!0),g(V,null,J(l.coverFiles,f=>(u(),g("img",{class:"dir-cover-item",src:f.media_type==="image"?B(ze)(f):B(ue)(f),key:f.fullpath},null,8,ns))),128))])):(u(),R(B(_n),{key:2,class:"icon center"}))])),l.cellWidth>128?(u(),g("div",is,[a("div",rs,y(l.file.name),1),a("div",ss,[a("div",null,y(l.file.type)+" "+y(l.file.size),1),a("div",null,y(l.file.date),1)])])):A("",!0)])],42,Jr))]}),_:1},8,["visible"])}}});const _s=st(os,[["__scopeId","data-v-886d2827"]]);export{_s as F,fs as N,Je as _,hs as a,Ss as b,As as c,ht as d,bs as e,ps as f,G as g,ys as h,vs as i,ms as j,Kn as k,Pn as r,gs as s,Gn as t,se as u};
+var gt=Object.defineProperty;var vt=(n,t,e)=>t in n?gt(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var ae=(n,t,e)=>(vt(n,typeof t!="symbol"?t+"":t,e),e);import{d as X,u as We,B as H,aj as Ke,h as K,c as S,am as pt,cE as mt,r as j,b6 as yt,T as V,bN as bt,P as De,b_ as At,A as W,cF as St,aT as _t,cG as It,cH as kt,H as fe,ah as Ae,b9 as Ct,cI as wt,cJ as Et,cK as Tt,cD as Ot,cL as Pt,cM as Ye,cN as oe,cO as Dt,aD as Nt,cP as zt,cQ as Qt,l as he,k as re,aK as Mt,n as qe,W as Se,co as Ge,aF as $t,cR as Ze,cS as Bt,q as Ft,aI as Xe,aJ as et,av as tt,N as u,X as R,cT as Rt,cU as Lt,cV as jt,cW as Ht,cX as Vt,ap as xt,O as g,aC as ee,U as A,Y as C,a2 as J,cY as Ne,bQ as Ut,cZ as Jt,a1 as nt,aa as Y,R as k,S as y,Z as B,ag as it,c_ as Wt,cr as Kt,M as rt,Q as a,V as st,c$ as Yt,d0 as ze,a9 as qt,d1 as Gt,cq as Zt,J as Xt,d2 as en,d3 as ue,d4 as tn}from"./index-8120eed9.js";import{t as ce,g as nn,l as rn,e as sn}from"./functionalCallableComp-c2695a1f.js";import{D as G,a as ge}from"./index-a3c1f71f.js";/* empty css */var on=function(){return{prefixCls:String,checked:{type:Boolean,default:void 0},onChange:{type:Function},onClick:{type:Function},"onUpdate:checked":Function}},ln=X({compatConfig:{MODE:3},name:"ACheckableTag",props:on(),setup:function(t,e){var i=e.slots,r=e.emit,o=We("tag",t),v=o.prefixCls,d=function(E){var w=t.checked;r("update:checked",!w),r("change",!w),r("click",E)},m=H(function(){var b;return Ke(v.value,(b={},K(b,"".concat(v.value,"-checkable"),!0),K(b,"".concat(v.value,"-checkable-checked"),t.checked),b))});return function(){var b;return S("span",{class:m.value,onClick:d},[(b=i.default)===null||b===void 0?void 0:b.call(i)])}}});const ve=ln;var an=new RegExp("^(".concat(pt.join("|"),")(-inverse)?$")),un=new RegExp("^(".concat(mt.join("|"),")$")),cn=function(){return{prefixCls:String,color:{type:String},closable:{type:Boolean,default:!1},closeIcon:De.any,visible:{type:Boolean,default:void 0},onClose:{type:Function},"onUpdate:visible":Function,icon:De.any}},Z=X({compatConfig:{MODE:3},name:"ATag",props:cn(),slots:["closeIcon","icon"],setup:function(t,e){var i=e.slots,r=e.emit,o=e.attrs,v=We("tag",t),d=v.prefixCls,m=v.direction,b=j(!0);yt(function(){t.visible!==void 0&&(b.value=t.visible)});var E=function(s){s.stopPropagation(),r("update:visible",!1),r("close",s),!s.defaultPrevented&&t.visible===void 0&&(b.value=!1)},w=H(function(){var l=t.color;return l?an.test(l)||un.test(l):!1}),z=H(function(){var l;return Ke(d.value,(l={},K(l,"".concat(d.value,"-").concat(t.color),w.value),K(l,"".concat(d.value,"-has-color"),t.color&&!w.value),K(l,"".concat(d.value,"-hidden"),!b.value),K(l,"".concat(d.value,"-rtl"),m.value==="rtl"),l))});return function(){var l,s,c,p=t.icon,D=p===void 0?(l=i.icon)===null||l===void 0?void 0:l.call(i):p,O=t.color,N=t.closeIcon,h=N===void 0?(s=i.closeIcon)===null||s===void 0?void 0:s.call(i):N,f=t.closable,I=f===void 0?!1:f,M=function(){return I?h?S("span",{class:"".concat(d.value,"-close-icon"),onClick:E},[h]):S(At,{class:"".concat(d.value,"-close-icon"),onClick:E},null):null},$={backgroundColor:O&&!w.value?O:void 0},F=D||null,_=(c=i.default)===null||c===void 0?void 0:c.call(i),L=F?S(V,null,[F,S("span",null,[_])]):_,T="onClick"in o,Q=S("span",{class:z.value,style:$},[L,M()]);return T?S(bt,null,{default:function(){return[Q]}}):Q}}});Z.CheckableTag=ve;Z.install=function(n){return n.component(Z.name,Z),n.component(ve.name,ve),n};const dn=Z;G.Button=ge;G.install=function(n){return n.component(G.name,G),n.component(ge.name,ge),n};var fn={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 hn=fn;function Qe(n){for(var t=1;t =T.length)&&(h=this.addView(l,_,M,L,$),this.unuseView(h,!0),T=z.get($)),h=T[F],I.set($,F+1)),w.delete(h.nr.key),h.nr.used=!0,h.nr.index=_,h.nr.key=L,h.nr.type=$,w.set(L,h),Q=!0;else if(!h.nr.used&&(h.nr.used=!0,h.nr.index=_,Q=!0,T)){const x=T.indexOf(h);x!==-1&&T.splice(x,1)}h.item=M,Q&&(_===m.length-1&&this.$emit("scroll-end"),_===0&&this.$emit("scroll-start")),e===null?(h.position=E[_-1].accumulator,h.offset=0):(h.position=Math.floor(_/i)*e,h.offset=_%i*r)}return this.$_startIndex=c,this.$_endIndex=p,this.emitUpdate&&this.$emit("update",c,p,O,N),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:f}},getListenerTarget(){let n=Ue(this.$el);return window.document&&(n===window.document.documentElement||n===window.document.body)&&(n=window),n},getScroll(){const{$el:n,direction:t}=this,e=t==="vertical";let i;if(this.pageMode){const r=n.getBoundingClientRect(),o=e?r.height:r.width;let v=-(e?r.top:r.left),d=e?window.innerHeight:window.innerWidth;v<0&&(d+=v,v=0),v+d>o&&(d=o-v),i={start:v,end:v+d}}else e?i={start:n.scrollTop,end:n.scrollTop+n.clientHeight}:i={start:n.scrollLeft,end:n.scrollLeft+n.clientWidth};return i},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,be?{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(n){let t;const e=this.gridItems||1;this.itemSize===null?t=n>0?this.sizes[n-1].accumulator:0:t=Math.floor(n/e)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(n){const t=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let e,i,r;if(this.pageMode){const o=Ue(this.$el),v=o.tagName==="HTML"?0:o[t.scroll],d=o.getBoundingClientRect(),b=this.$el.getBoundingClientRect()[t.start]-d[t.start];e=o,i=t.scroll,r=n+v+b}else e=this.$el,i=t.scroll,r=n;e[i]=r},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((n,t)=>n.nr.index-t.nr.index)}}};const Ai={key:0,ref:"before",class:"vue-recycle-scroller__slot"},Si={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function _i(n,t,e,i,r,o){const v=Ht("ResizeObserver"),d=Vt("observe-visibility");return xt((u(),g("div",{class:Y(["vue-recycle-scroller",{ready:r.ready,"page-mode":e.pageMode,[`direction-${n.direction}`]:!0}]),onScrollPassive:t[0]||(t[0]=(...m)=>o.handleScroll&&o.handleScroll(...m))},[n.$slots.before?(u(),g("div",Ai,[ee(n.$slots,"before")],512)):A("v-if",!0),(u(),R(Ne(e.listTag),{ref:"wrapper",style:nt({[n.direction==="vertical"?"minHeight":"minWidth"]:r.totalSize+"px"}),class:Y(["vue-recycle-scroller__item-wrapper",e.listClass])},{default:C(()=>[(u(!0),g(V,null,J(r.pool,m=>(u(),R(Ne(e.itemTag),Ut({key:m.nr.id,style:r.ready?{transform:`translate${n.direction==="vertical"?"Y":"X"}(${m.position}px) translate${n.direction==="vertical"?"X":"Y"}(${m.offset}px)`,width:e.gridItems?`${n.direction==="vertical"&&e.itemSecondarySize||e.itemSize}px`:void 0,height:e.gridItems?`${n.direction==="horizontal"&&e.itemSecondarySize||e.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[e.itemClass,{hover:!e.skipHover&&r.hoverKey===m.nr.key}]]},Jt(e.skipHover?{}:{mouseenter:()=>{r.hoverKey=m.nr.key},mouseleave:()=>{r.hoverKey=null}})),{default:C(()=>[ee(n.$slots,"default",{item:m.item,index:m.nr.index,active:m.nr.used})]),_:2},1040,["style","class"]))),128)),ee(n.$slots,"empty")]),_:3},8,["style","class"])),n.$slots.after?(u(),g("div",Si,[ee(n.$slots,"after")],512)):A("v-if",!0),S(v,{onNotify:o.handleResize},null,8,["onNotify"])],34)),[[d,o.handleVisibilityChange]])}ht.render=_i;ht.__file="src/components/RecycleScroller.vue";const Je=X({__name:"ContextMenu",props:{file:{},idx:{},selectedTag:{},disableDelete:{type:Boolean},isSelectedMutilFiles:{type:Boolean}},emits:["contextMenuClick"],setup(n,{emit:t}){const e=n,i=Se(),r=H(()=>{var o;return(((o=i.conf)==null?void 0:o.all_custom_tags)??[]).reduce((v,d)=>[...v,{...d,selected:!!e.selectedTag.find(m=>m.id===d.id)}],[])});return(o,v)=>{const d=it,m=Wt,b=Kt,E=rt;return u(),R(E,{onClick:v[0]||(v[0]=w=>t("contextMenuClick",w,o.file,o.idx))},{default:C(()=>{var w;return[S(d,{key:"deleteFiles",disabled:o.disableDelete},{default:C(()=>[k(y(o.$t("deleteSelected")),1)]),_:1},8,["disabled"]),S(d,{key:"openWithDefaultApp"},{default:C(()=>[k(y(o.$t("openWithDefaultApp")),1)]),_:1}),S(d,{key:"saveSelectedAsJson"},{default:C(()=>[k(y(o.$t("saveSelectedAsJson")),1)]),_:1}),o.file.type==="dir"?(u(),g(V,{key:0},[S(d,{key:"openInNewTab"},{default:C(()=>[k(y(o.$t("openInNewTab")),1)]),_:1}),S(d,{key:"openOnTheRight"},{default:C(()=>[k(y(o.$t("openOnTheRight")),1)]),_:1}),S(d,{key:"openWithWalkMode"},{default:C(()=>[k(y(o.$t("openWithWalkMode")),1)]),_:1})],64)):A("",!0),o.file.type==="file"?(u(),g(V,{key:1},[B(oe)(o.file.name)?(u(),g(V,{key:0},[S(d,{key:"viewGenInfo"},{default:C(()=>[k(y(o.$t("viewGenerationInfo")),1)]),_:1}),S(m),((w=B(i).conf)==null?void 0:w.launch_mode)!=="server"?(u(),g(V,{key:0},[S(d,{key:"send2txt2img"},{default:C(()=>[k(y(o.$t("sendToTxt2img")),1)]),_:1}),S(d,{key:"send2img2img"},{default:C(()=>[k(y(o.$t("sendToImg2img")),1)]),_:1}),S(d,{key:"send2inpaint"},{default:C(()=>[k(y(o.$t("sendToInpaint")),1)]),_:1}),S(d,{key:"send2extras"},{default:C(()=>[k(y(o.$t("sendToExtraFeatures")),1)]),_:1}),S(b,{key:"sendToThirdPartyExtension",title:o.$t("sendToThirdPartyExtension")},{default:C(()=>[S(d,{key:"send2controlnet-txt2img"},{default:C(()=>[k("ControlNet - "+y(o.$t("t2i")),1)]),_:1}),S(d,{key:"send2controlnet-img2img"},{default:C(()=>[k("ControlNet - "+y(o.$t("i2i")),1)]),_:1}),S(d,{key:"send2outpaint"},{default:C(()=>[k("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):A("",!0),S(d,{key:"rename"},{default:C(()=>[k(y(o.$t("rename")),1)]),_:1}),S(d,{key:"send2BatchDownload"},{default:C(()=>[k(y(o.$t("sendToBatchDownload")),1)]),_:1}),S(d,{key:"send2savedDir"},{default:C(()=>[k(y(o.$t("send2savedDir")),1)]),_:1}),S(m),o.isSelectedMutilFiles?(u(),g(V,{key:1},[S(b,{key:"batch-add-tag",title:o.$t("batchAddTag")},{default:C(()=>[(u(!0),g(V,null,J(r.value,z=>(u(),R(d,{key:`batch-add-tag-${z.id}`},{default:C(()=>[k(y(z.name),1)]),_:2},1024))),128))]),_:1},8,["title"]),S(b,{key:"batch-remove-tag",title:o.$t("batchRemoveTag")},{default:C(()=>[(u(!0),g(V,null,J(r.value,z=>(u(),R(d,{key:`batch-remove-tag-${z.id}`},{default:C(()=>[k(y(z.name),1)]),_:2},1024))),128))]),_:1},8,["title"])],64)):(u(),R(b,{key:"toggle-tag",title:o.$t("toggleTag")},{default:C(()=>[(u(!0),g(V,null,J(r.value,z=>(u(),R(d,{key:`toggle-tag-${z.id}`},{default:C(()=>[k(y(z.name)+" ",1),z.selected?(u(),R(B(ot),{key:0})):(u(),R(B(lt),{key:1}))]),_:2},1024))),128))]),_:1},8,["title"])),S(d,{key:"openWithLocalFileBrowser"},{default:C(()=>[k(y(o.$t("openWithLocalFileBrowser")),1)]),_:1})],64)):A("",!0),S(d,{key:"previewInNewWindow"},{default:C(()=>[k(y(o.$t("previewInNewWindow")),1)]),_:1}),S(d,{key:"download"},{default:C(()=>[k(y(o.$t("download")),1)]),_:1}),S(d,{key:"copyPreviewUrl"},{default:C(()=>[k(y(o.$t("copySourceFilePreviewLink")),1)]),_:1})],64)):A("",!0)]}),_:1})}}}),P=n=>(Xe("data-v-78cd67a3"),n=n(),et(),n),Ii={class:"changeIndicatorWrapper"},ki={key:0,class:"changeIndicatorsLeft changeIndicators"},Ci={key:0,class:"promptChangeIndicator changeIndicator"},wi={key:1,class:"negpromptChangeIndicator changeIndicator"},Ei={key:2,class:"seedChangeIndicator changeIndicator"},Ti={key:3,class:"stepsChangeIndicator changeIndicator"},Oi={key:4,class:"cfgChangeIndicator changeIndicator"},Pi={key:5,class:"sizeChangeIndicator changeIndicator"},Di={key:6,class:"modelChangeIndicator changeIndicator"},Ni={key:7,class:"samplerChangeIndicator changeIndicator"},zi={key:8,class:"otherChangeIndicator changeIndicator"},Qi={class:"hoverOverlay"},Mi=P(()=>a("strong",null,"This file",-1)),$i=P(()=>a("br",null,null,-1)),Bi=P(()=>a("br",null,null,-1)),Fi={key:0},Ri=P(()=>a("td",null,[a("span",{class:"promptChangeIndicator"},"+ Prompt")],-1)),Li={key:1},ji=P(()=>a("td",null,[a("span",{class:"negpromptChangeIndicator"},"- Prompt")],-1)),Hi={key:2},Vi=P(()=>a("td",null,[a("span",{class:"seedChangeIndicator"},"Seed")],-1)),xi={key:3},Ui=P(()=>a("td",null,[a("span",{class:"stepsChangeIndicator"},"Steps")],-1)),Ji={key:4},Wi=P(()=>a("td",null,[a("span",{class:"cfgChangeIndicator"},"Cfg Scale")],-1)),Ki={key:5},Yi=P(()=>a("td",null,[a("span",{class:"sizeChangeIndicator"},"Size")],-1)),qi={key:6},Gi=P(()=>a("td",null,[a("span",{class:"modelChangeIndicator"},"Model")],-1)),Zi=P(()=>a("br",null,null,-1)),Xi={key:7},er=P(()=>a("td",null,[a("span",{class:"samplerChangeIndicator"},"Sampler")],-1)),tr=P(()=>a("br",null,null,-1)),nr=P(()=>a("br",null,null,-1)),ir={key:0},rr=P(()=>a("span",{class:"otherChangeIndicator"},"Other",-1)),sr=P(()=>a("br",null,null,-1)),or=P(()=>a("br",null,null,-1)),lr={key:1,class:"changeIndicatorsRight changeIndicators"},ar={key:0,class:"promptChangeIndicator changeIndicator"},ur={key:1,class:"negpromptChangeIndicator changeIndicator"},cr={key:2,class:"seedChangeIndicator changeIndicator"},dr={key:3,class:"stepsChangeIndicator changeIndicator"},fr={key:4,class:"cfgChangeIndicator changeIndicator"},hr={key:5,class:"sizeChangeIndicator changeIndicator"},gr={key:6,class:"modelChangeIndicator changeIndicator"},vr={key:7,class:"samplerChangeIndicator changeIndicator"},pr={key:8,class:"otherChangeIndicator changeIndicator"},mr={class:"hoverOverlay"},yr=P(()=>a("strong",null,"This file",-1)),br=P(()=>a("br",null,null,-1)),Ar=P(()=>a("br",null,null,-1)),Sr={key:0},_r=P(()=>a("td",null,[a("span",{class:"promptChangeIndicator"},"+ Prompt")],-1)),Ir={key:1},kr=P(()=>a("td",null,[a("span",{class:"negpromptChangeIndicator"},"- Prompt")],-1)),Cr={key:2},wr=P(()=>a("td",null,[a("span",{class:"seedChangeIndicator"},"Seed")],-1)),Er={key:3},Tr=P(()=>a("td",null,[a("span",{class:"stepsChangeIndicator"},"Steps")],-1)),Or={key:4},Pr=P(()=>a("td",null,[a("span",{class:"cfgChangeIndicator"},"Cfg Scale")],-1)),Dr={key:5},Nr=P(()=>a("td",null,[a("span",{class:"sizeChangeIndicator"},"Size")],-1)),zr={key:6},Qr=P(()=>a("td",null,[a("span",{class:"modelChangeIndicator"},"Model")],-1)),Mr=P(()=>a("br",null,null,-1)),$r={key:7},Br=P(()=>a("td",null,[a("span",{class:"samplerChangeIndicator"},"Sampler")],-1)),Fr=P(()=>a("br",null,null,-1)),Rr=P(()=>a("br",null,null,-1)),Lr={key:0},jr=P(()=>a("span",{class:"otherChangeIndicator"},"Other",-1)),Hr=P(()=>a("br",null,null,-1)),Vr=P(()=>a("br",null,null,-1)),xr=X({__name:"ChangeIndicator",props:{genDiffToPrevious:{},genDiffToNext:{},genInfo:{}},setup(n){function t(i){const r=["prompt","negativePrompt","seed","steps","cfgScale","size","Model","others"],o=Object.keys(i).filter(v=>!r.includes(v));return Object.fromEntries(o.map(v=>[v,i[v]]))}function e(i){return Object.keys(t(i)).length>0}return(i,r)=>(u(),g("div",Ii,[i.genDiffToPrevious.empty?A("",!0):(u(),g("div",ki,["prompt"in i.genDiffToPrevious.diff?(u(),g("div",Ci,"P+")):A("",!0),"negativePrompt"in i.genDiffToPrevious.diff?(u(),g("div",wi,"P-")):A("",!0),"seed"in i.genDiffToPrevious.diff?(u(),g("div",Ei,"Se")):A("",!0),"steps"in i.genDiffToPrevious.diff?(u(),g("div",Ti,"St")):A("",!0),"cfgScale"in i.genDiffToPrevious.diff?(u(),g("div",Oi,"Cf")):A("",!0),"size"in i.genDiffToPrevious.diff?(u(),g("div",Pi,"Si")):A("",!0),"Model"in i.genDiffToPrevious.diff?(u(),g("div",Di,"Mo")):A("",!0),"Sampler"in i.genDiffToPrevious.diff?(u(),g("div",Ni,"Sa")):A("",!0),e(i.genDiffToPrevious.diff)?(u(),g("div",zi,"Ot")):A("",!0)])),a("div",Qi,[a("small",null,[S(B(Fe)),Mi,k(" vs "+y(i.genDiffToPrevious.otherFile)+" ",1),$i,Bi,a("table",null,["prompt"in i.genDiffToPrevious.diff?(u(),g("tr",Fi,[Ri,a("td",null,y(i.genDiffToPrevious.diff.prompt)+" tokens changed",1)])):A("",!0),"negativePrompt"in i.genDiffToPrevious.diff?(u(),g("tr",Li,[ji,a("td",null,y(i.genDiffToPrevious.diff.negativePrompt)+" tokens changed",1)])):A("",!0),"seed"in i.genDiffToPrevious.diff?(u(),g("tr",Hi,[Vi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.seed[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.seed[1]),1)])])):A("",!0),"steps"in i.genDiffToPrevious.diff?(u(),g("tr",xi,[Ui,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.steps[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.steps[1]),1)])])):A("",!0),"cfgScale"in i.genDiffToPrevious.diff?(u(),g("tr",Ji,[Wi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.cfgScale[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.cfgScale[1]),1)])])):A("",!0),"size"in i.genDiffToPrevious.diff?(u(),g("tr",Ki,[Yi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.size[0]),1),k(" vs "+y(i.genDiffToPrevious.diff.size[1]),1)])])):A("",!0),"Model"in i.genDiffToPrevious.diff?(u(),g("tr",qi,[Gi,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.Model[0]),1),Zi,k(" vs "+y(i.genDiffToPrevious.diff.Model[1]),1)])])):A("",!0),"Sampler"in i.genDiffToPrevious.diff?(u(),g("tr",Xi,[er,a("td",null,[a("strong",null,y(i.genDiffToPrevious.diff.Sampler[0]),1),tr,k(" vs "+y(i.genDiffToPrevious.diff.Sampler[1]),1)])])):A("",!0)]),nr,e(i.genDiffToPrevious.diff)?(u(),g("div",ir,[rr,k(" props that changed:"),sr,or,a("ul",null,[(u(!0),g(V,null,J(t(i.genDiffToPrevious.diff),(o,v)=>(u(),g("li",null,y(v),1))),256))])])):A("",!0)])]),i.genDiffToNext.empty?A("",!0):(u(),g("div",lr,["prompt"in i.genDiffToNext.diff?(u(),g("div",ar,"P+")):A("",!0),"negativePrompt"in i.genDiffToNext.diff?(u(),g("div",ur,"P-")):A("",!0),"seed"in i.genDiffToNext.diff?(u(),g("div",cr,"Se")):A("",!0),"steps"in i.genDiffToNext.diff?(u(),g("div",dr,"St")):A("",!0),"cfgScale"in i.genDiffToNext.diff?(u(),g("div",fr,"Cf")):A("",!0),"size"in i.genDiffToNext.diff?(u(),g("div",hr,"Si")):A("",!0),"Model"in i.genDiffToNext.diff?(u(),g("div",gr,"Mo")):A("",!0),"Sampler"in i.genDiffToNext.diff?(u(),g("div",vr,"Sa")):A("",!0),e(i.genDiffToNext.diff)?(u(),g("div",pr,"Ot")):A("",!0)])),a("div",mr,[a("small",null,[S(B(Fe)),yr,k(" vs "+y(i.genDiffToNext.otherFile)+" ",1),br,Ar,a("table",null,["prompt"in i.genDiffToNext.diff?(u(),g("tr",Sr,[_r,a("td",null,y(i.genDiffToNext.diff.prompt)+" tokens changed",1)])):A("",!0),"negativePrompt"in i.genDiffToNext.diff?(u(),g("tr",Ir,[kr,a("td",null,y(i.genDiffToNext.diff.negativePrompt)+" tokens changed",1)])):A("",!0),"seed"in i.genDiffToNext.diff?(u(),g("tr",Cr,[wr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.seed[0]),1),k(" vs "+y(i.genDiffToNext.diff.seed[1]),1)])])):A("",!0),"steps"in i.genDiffToNext.diff?(u(),g("tr",Er,[Tr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.steps[0]),1),k(" vs "+y(i.genDiffToNext.diff.steps[1]),1)])])):A("",!0),"cfgScale"in i.genDiffToNext.diff?(u(),g("tr",Or,[Pr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.cfgScale[0]),1),k(" vs "+y(i.genDiffToNext.diff.cfgScale[1]),1)])])):A("",!0),"size"in i.genDiffToNext.diff?(u(),g("tr",Dr,[Nr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.size[0]),1),k(" vs "+y(i.genDiffToNext.diff.size[1]),1)])])):A("",!0),"Model"in i.genDiffToNext.diff?(u(),g("tr",zr,[Qr,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.Model[0]),1),Mr,k(" vs "+y(i.genDiffToNext.diff.Model[1]),1)])])):A("",!0),"Sampler"in i.genDiffToNext.diff?(u(),g("tr",$r,[Br,a("td",null,[a("strong",null,y(i.genDiffToNext.diff.Sampler[0]),1),Fr,k(" vs "+y(i.genDiffToNext.diff.Sampler[1]),1)])])):A("",!0)]),Rr,e(i.genDiffToNext.diff)?(u(),g("div",Lr,[jr,k(" props that changed:"),Hr,Vr,a("ul",null,[(u(!0),g(V,null,J(t(i.genDiffToNext.diff),(o,v)=>(u(),g("li",null,y(v),1))),256))])])):A("",!0)])])]))}});const Ur=st(xr,[["__scopeId","data-v-78cd67a3"]]),Jr=["data-idx"],Wr={key:1,class:"more"},Kr={class:"float-btn-wrap"},Yr={key:1,class:"tags-container"},qr=["urld"],Gr={class:"play-icon"},Zr=["src"],Xr={key:0,class:"tags-container"},es={key:4,class:"preview-icon-wrap"},ts={key:1,class:"dir-cover-container"},ns=["src"],is={key:5,class:"profile"},rs={class:"name line-clamp-1"},ss={class:"basic-info"},os=X({__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},genInfo:{},enableChangeIndicator:{type:Boolean},extraTags:{},coverFiles:{},getGenDiff:{},getGenDiffWatchDep:{}},emits:["update:showMenuIdx","fileItemClick","dragstart","dragend","previewVisibleChange","contextMenuClick","close-icon-click"],setup(n,{emit:t}){const e=n;Yt(l=>({eaff2488:l.$props.cellWidth+"px"}));const i=Se(),r=Ge(),o=j(),v=j(),d=he(()=>{const{getGenDiff:l,file:s,idx:c}=e;l&&(v.value=l(s.gen_info_obj,c,1,s),o.value=l(s.gen_info_obj,c,-1,s))},200+100*Math.random());re(()=>{var l;return(l=e.getGenDiffWatchDep)==null?void 0:l.call(e,e.idx)},()=>{v.value=void 0,o.value=void 0,d()},{immediate:!0,deep:!0});const m=H(()=>r.tagMap.get(e.file.fullpath)??[]),b=H(()=>{const l=i.gridThumbnailResolution;return i.enableThumbnail?ze(e.file,[l,l].join("x")):qt(e.file)}),E=H(()=>{var l;return(((l=i.conf)==null?void 0:l.all_custom_tags)??[]).reduce((s,c)=>[...s,{...c,selected:!!m.value.find(p=>p.id===c.id)}],[])}),w=H(()=>E.value.find(l=>l.type==="custom"&&l.name==="like")),z=()=>{fe(w.value),t("contextMenuClick",{key:`toggle-tag-${w.value.id}`},e.file,e.idx)};return(l,s)=>{const c=G,p=it,D=rt,O=tn,N=dn;return u(),R(c,{trigger:["contextmenu"],visible:B(i).longPressOpenContextMenu?typeof l.idx=="number"&&l.showMenuIdx===l.idx:void 0,"onUpdate:visible":s[8]||(s[8]=h=>typeof l.idx=="number"&&t("update:showMenuIdx",h?l.idx:-1))},{overlay:C(()=>[l.enableRightClickMenu?(u(),R(Je,{key:0,file:l.file,idx:l.idx,"selected-tag":m.value,onContextMenuClick:s[7]||(s[7]=(h,f,I)=>t("contextMenuClick",h,f,I)),"is-selected-mutil-files":l.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])):A("",!0)]),default:C(()=>{var h;return[(u(),g("li",{class:Y(["file file-item-trigger grid",{clickable:l.file.type==="dir",selected:l.selected}]),"data-idx":l.idx,key:l.file.name,draggable:"true",onDragstart:s[4]||(s[4]=f=>t("dragstart",f,l.idx)),onDragend:s[5]||(s[5]=f=>t("dragend",f,l.idx)),onClickCapture:s[6]||(s[6]=f=>t("fileItemClick",f,l.file,l.idx))},[a("div",null,[l.enableCloseIcon?(u(),g("div",{key:0,class:"close-icon",onClick:s[0]||(s[0]=f=>t("close-icon-click"))},[S(B(Gt))])):A("",!0),l.enableRightClickMenu?(u(),g("div",Wr,[S(c,null,{overlay:C(()=>[S(Je,{file:l.file,idx:l.idx,"selected-tag":m.value,onContextMenuClick:s[1]||(s[1]=(f,I,M)=>t("contextMenuClick",f,I,M)),"is-selected-mutil-files":l.isSelectedMutilFiles},null,8,["file","idx","selected-tag","is-selected-mutil-files"])]),default:C(()=>[a("div",Kr,[S(B(Zt))])]),_:1}),l.file.type==="file"?(u(),R(c,{key:0},{overlay:C(()=>[E.value.length>1?(u(),R(D,{key:0,onClick:s[2]||(s[2]=f=>t("contextMenuClick",f,l.file,l.idx))},{default:C(()=>[(u(!0),g(V,null,J(E.value,f=>(u(),R(p,{key:`toggle-tag-${f.id}`},{default:C(()=>[k(y(f.name)+" ",1),f.selected?(u(),R(B(ot),{key:0})):(u(),R(B(lt),{key:1}))]),_:2},1024))),128))]),_:1})):A("",!0)]),default:C(()=>{var f,I;return[a("div",{class:Y(["float-btn-wrap",{"like-selected":(f=w.value)==null?void 0:f.selected}]),onClick:z},[(I=w.value)!=null&&I.selected?(u(),R(B(Rn),{key:0})):(u(),R(B(Vn),{key:1}))],2)]}),_:1})):A("",!0)])):A("",!0),B(Xt)(l.file.name)?(u(),g("div",{key:l.file.fullpath,class:Y(`idx-${l.idx} item-content`)},[l.enableChangeIndicator&&v.value&&o.value?(u(),R(Ur,{key:0,"gen-diff-to-next":v.value,"gen-diff-to-previous":o.value},null,8,["gen-diff-to-next","gen-diff-to-previous"])):A("",!0),S(O,{src:b.value,fallback:B(Dn),preview:{src:l.fullScreenPreviewImageUrl,onVisibleChange:(f,I)=>t("previewVisibleChange",f,I)}},null,8,["src","fallback","preview"]),m.value&&l.cellWidth>128?(u(),g("div",Yr,[(u(!0),g(V,null,J(l.extraTags??m.value,f=>(u(),R(N,{key:f.id,color:B(r).getColor(f.name)},{default:C(()=>[k(y(f.name),1)]),_:2},1032,["color"]))),128))])):A("",!0)],2)):B(en)(l.file.name)?(u(),g("div",{key:3,class:Y(`idx-${l.idx} item-content video`),urld:B(ue)(l.file),style:nt({"background-image":`url('${B(ue)(l.file)}')`}),onClick:s[3]||(s[3]=f=>B(sn)(l.file,I=>t("contextMenuClick",{key:`toggle-tag-${I}`},l.file,l.idx)))},[a("div",Gr,[a("img",{src:B(Wn),style:{width:"40px",height:"40px"}},null,8,Zr)]),m.value&&l.cellWidth>128?(u(),g("div",Xr,[(u(!0),g(V,null,J(m.value,f=>(u(),R(N,{key:f.id,color:B(r).getColor(f.name)},{default:C(()=>[k(y(f.name),1)]),_:2},1032,["color"]))),128))])):A("",!0)],14,qr)):(u(),g("div",es,[l.file.type==="file"?(u(),R(B(yn),{key:0,class:"icon center"})):(h=l.coverFiles)!=null&&h.length&&l.cellWidth>160?(u(),g("div",ts,[(u(!0),g(V,null,J(l.coverFiles,f=>(u(),g("img",{class:"dir-cover-item",src:f.media_type==="image"?B(ze)(f):B(ue)(f),key:f.fullpath},null,8,ns))),128))])):(u(),R(B(_n),{key:2,class:"icon center"}))])),l.cellWidth>128?(u(),g("div",is,[a("div",rs,y(l.file.name),1),a("div",ss,[a("div",null,y(l.file.type)+" "+y(l.file.size),1),a("div",null,y(l.file.date),1)])])):A("",!0)])],42,Jr))]}),_:1},8,["visible"])}}});const _s=st(os,[["__scopeId","data-v-886d2827"]]);export{_s as F,fs as N,Je as _,hs as a,Ss as b,As as c,ht as d,bs as e,ps as f,q as g,ys as h,vs as i,ms as j,Kn as k,Pn as r,gs as s,qn as t,se as u};
diff --git a/vue/dist/assets/ImgSliPagePane-f78922b4.js b/vue/dist/assets/ImgSliPagePane-bcab079f.js
similarity index 64%
rename from vue/dist/assets/ImgSliPagePane-f78922b4.js
rename to vue/dist/assets/ImgSliPagePane-bcab079f.js
index 22ca3e0..f91374b 100644
--- a/vue/dist/assets/ImgSliPagePane-f78922b4.js
+++ b/vue/dist/assets/ImgSliPagePane-bcab079f.js
@@ -1 +1 @@
-import{d as a,N as t,O as s,c as n,cA as _,V as o}from"./index-333f4d92.js";const c={class:"img-sli-container"},i=a({__name:"ImgSliPagePane",props:{paneIdx:{},tabIdx:{},left:{},right:{}},setup(l){return(e,r)=>(t(),s("div",c,[n(_,{left:e.left,right:e.right},null,8,["left","right"])]))}});const d=o(i,[["__scopeId","data-v-ae3fb9a8"]]);export{d as default};
+import{d as a,N as t,O as s,c as n,cA as _,V as o}from"./index-8120eed9.js";const c={class:"img-sli-container"},i=a({__name:"ImgSliPagePane",props:{paneIdx:{},tabIdx:{},left:{},right:{}},setup(l){return(e,r)=>(t(),s("div",c,[n(_,{left:e.left,right:e.right},null,8,["left","right"])]))}});const d=o(i,[["__scopeId","data-v-ae3fb9a8"]]);export{d as default};
diff --git a/vue/dist/assets/MatchedImageGrid-aef1eca8.js b/vue/dist/assets/MatchedImageGrid-1559b61d.js
similarity index 62%
rename from vue/dist/assets/MatchedImageGrid-aef1eca8.js
rename to vue/dist/assets/MatchedImageGrid-1559b61d.js
index 8f99fab..b4a1c7f 100644
--- a/vue/dist/assets/MatchedImageGrid-aef1eca8.js
+++ b/vue/dist/assets/MatchedImageGrid-1559b61d.js
@@ -1 +1 @@
-import{d as se,k as ne,av as oe,W as ie,N as u,O as I,c as s,Z as e,Y as n,a0 as R,Q as d,E as ae,S as a,R as p,X as V,a9 as de,U as k,aa as D,ac as re,ad as ce,af as z,aI as ue,aJ as me,bU as pe,V as ge}from"./index-333f4d92.js";import{S as ve}from"./index-b9551320.js";import{L as fe,R as Ie,f as ke,M as _e}from"./MultiSelectKeep-0aedd2f1.js";import{c as Ce,d as he,F as we}from"./FileItem-064f25fa.js";import{c as Se,u as xe}from"./hook-4244356f.js";import{a as be}from"./functionalCallableComp-dc2cf08d.js";import"./shortcut-0854cd7e.js";import"./Checkbox-2cca96a3.js";import"./index-267d1f4e.js";/* empty css */const Me=r=>(ue("data-v-479efe51"),r=r(),me(),r),ye={class:"hint"},Ae={class:"action-bar"},Te=Me(()=>d("div",{style:{padding:"16px 0 512px"}},null,-1)),$e={key:1},Fe={class:"no-res-hint"},Re={class:"hint"},Ve={key:2,class:"preview-switch"},De=se({__name:"MatchedImageGrid",props:{tabIdx:{},paneIdx:{},selectedTagIds:{},id:{}},setup(r){const _=r,g=Se(l=>pe(_.selectedTagIds,l)),{queue:B,images:i,onContextMenuClickU:C,stackViewEl:G,previewIdx:c,previewing:h,onPreviewVisibleChange:N,previewImgMove:w,canPreview:S,itemSize:x,gridItems:U,showGenInfo:m,imageGenInfo:b,q:E,multiSelectedIdxs:v,onFileItemClick:J,scroller:M,showMenuIdx:f,onFileDragStart:L,onFileDragEnd:O,cellWidth:P,onScroll:y,saveAllFileAsJson:K,saveLoadedFileAsJson:q}=xe(g);ne(()=>_.selectedTagIds,async()=>{var l;await g.reset(),await oe(),(l=M.value)==null||l.scrollToItem(0),y()},{immediate:!0});const Q=ie(),{onClearAllSelected:W,onSelectAll:X,onReverseSelect:Y}=Ce();return(l,t)=>{const Z=_e,j=re,H=ce,A=z,ee=z,te=ve;return u(),I("div",{class:"container",ref_key:"stackViewEl",ref:G},[s(Z,{show:!!e(v).length||e(Q).keepMultiSelect,onClearAllSelected:e(W),onSelectAll:e(X),onReverseSelect:e(Y)},null,8,["show","onClearAllSelected","onSelectAll","onReverseSelect"]),s(te,{size:"large",spinning:!e(B).isIdle},{default:n(()=>{var T,$;return[s(H,{visible:e(m),"onUpdate:visible":t[1]||(t[1]=o=>R(m)?m.value=o:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=o=>m.value=!1)},{cancelText:n(()=>[]),default:n(()=>[s(j,{active:"",loading:!e(E).isIdle},{default:n(()=>[d("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=o=>e(ae)(e(b)))},[d("div",ye,a(l.$t("doubleClickToCopy")),1),p(" "+a(e(b)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),d("div",Ae,[s(A,{onClick:e(q)},{default:n(()=>[p(a(l.$t("saveLoadedImageAsJson")),1)]),_:1},8,["onClick"]),s(A,{onClick:e(K)},{default:n(()=>[p(a(l.$t("saveAllAsJson")),1)]),_:1},8,["onClick"])]),(T=e(i))!=null&&T.length?(u(),V(e(he),{key:0,ref_key:"scroller",ref:M,class:"file-list",items:e(i),"item-size":e(x).first,"key-field":"fullpath","item-secondary-size":e(x).second,gridItems:e(U),onScroll:e(y)},{after:n(()=>[Te]),default:n(({item:o,index:F})=>[s(we,{idx:F,file:o,"cell-width":e(P),"show-menu-idx":e(f),"onUpdate:showMenuIdx":t[3]||(t[3]=le=>R(f)?f.value=le:null),onDragstart:e(L),onDragend:e(O),onFileItemClick:e(J),"full-screen-preview-image-url":e(i)[e(c)]?e(de)(e(i)[e(c)]):"",selected:e(v).includes(F),onContextMenuClick:e(C),onPreviewVisibleChange:e(N),"is-selected-mutil-files":e(v).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(g).load&&l.selectedTagIds.and_tags.length===1&&!(($=l.selectedTagIds.folder_paths_str)!=null&&$.trim())?(u(),I("div",$e,[d("div",Fe,[d("p",Re,a(l.$t("tagSearchNoResultsMessage")),1),s(ee,{onClick:t[4]||(t[4]=o=>e(be)()),type:"primary"},{default:n(()=>[p(a(l.$t("rebuildImageIndex")),1)]),_:1})])])):k("",!0),e(h)?(u(),I("div",Ve,[s(e(fe),{onClick:t[5]||(t[5]=o=>e(w)("prev")),class:D({disable:!e(S)("prev")})},null,8,["class"]),s(e(Ie),{onClick:t[6]||(t[6]=o=>e(w)("next")),class:D({disable:!e(S)("next")})},null,8,["class"])])):k("",!0)]}),_:1},8,["spinning"]),e(h)&&e(i)&&e(i)[e(c)]?(u(),V(ke,{key:0,file:e(i)[e(c)],idx:e(c),onContextMenuClick:e(C)},null,8,["file","idx","onContextMenuClick"])):k("",!0)],512)}}});const Ke=ge(De,[["__scopeId","data-v-479efe51"]]);export{Ke as default};
+import{d as se,k as ne,av as oe,W as ie,N as u,O as I,c as s,Z as e,Y as n,a0 as F,Q as d,E as ae,S as a,R as p,X as V,a9 as de,U as k,aa as D,ac as re,ad as ce,af as z,aI as ue,aJ as me,bR as pe,V as ge}from"./index-8120eed9.js";import{S as ve}from"./index-27c4b040.js";import{L as fe,R as Ie,f as ke,M as _e}from"./MultiSelectKeep-9bfd3b7f.js";import{c as Ce,d as he,F as we}from"./FileItem-ad0bcda2.js";import{c as Se,u as xe}from"./hook-3ec3e8da.js";import{a as be}from"./functionalCallableComp-c2695a1f.js";import"./shortcut-95612d36.js";import"./Checkbox-356e3a33.js";import"./index-a3c1f71f.js";/* empty css */const Me=r=>(ue("data-v-479efe51"),r=r(),me(),r),ye={class:"hint"},Ae={class:"action-bar"},Re=Me(()=>d("div",{style:{padding:"16px 0 512px"}},null,-1)),Te={key:1},$e={class:"no-res-hint"},Fe={class:"hint"},Ve={key:2,class:"preview-switch"},De=se({__name:"MatchedImageGrid",props:{tabIdx:{},paneIdx:{},selectedTagIds:{},id:{}},setup(r){const _=r,g=Se(l=>pe(_.selectedTagIds,l)),{queue:B,images:i,onContextMenuClickU:C,stackViewEl:G,previewIdx:c,previewing:h,onPreviewVisibleChange:N,previewImgMove:w,canPreview:S,itemSize:x,gridItems:E,showGenInfo:m,imageGenInfo:b,q:J,multiSelectedIdxs:v,onFileItemClick:U,scroller:M,showMenuIdx:f,onFileDragStart:L,onFileDragEnd:O,cellWidth:P,onScroll:y,saveAllFileAsJson:K,saveLoadedFileAsJson:q}=xe(g);ne(()=>_.selectedTagIds,async()=>{var l;await g.reset(),await oe(),(l=M.value)==null||l.scrollToItem(0),y()},{immediate:!0});const Q=ie(),{onClearAllSelected:W,onSelectAll:X,onReverseSelect:Y}=Ce();return(l,t)=>{const Z=_e,j=re,H=ce,A=z,ee=z,te=ve;return u(),I("div",{class:"container",ref_key:"stackViewEl",ref:G},[s(Z,{show:!!e(v).length||e(Q).keepMultiSelect,onClearAllSelected:e(W),onSelectAll:e(X),onReverseSelect:e(Y)},null,8,["show","onClearAllSelected","onSelectAll","onReverseSelect"]),s(te,{size:"large",spinning:!e(B).isIdle},{default:n(()=>{var R,T;return[s(H,{visible:e(m),"onUpdate:visible":t[1]||(t[1]=o=>F(m)?m.value=o:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=o=>m.value=!1)},{cancelText:n(()=>[]),default:n(()=>[s(j,{active:"",loading:!e(J).isIdle},{default:n(()=>[d("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=o=>e(ae)(e(b)))},[d("div",ye,a(l.$t("doubleClickToCopy")),1),p(" "+a(e(b)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),d("div",Ae,[s(A,{onClick:e(q)},{default:n(()=>[p(a(l.$t("saveLoadedImageAsJson")),1)]),_:1},8,["onClick"]),s(A,{onClick:e(K)},{default:n(()=>[p(a(l.$t("saveAllAsJson")),1)]),_:1},8,["onClick"])]),(R=e(i))!=null&&R.length?(u(),V(e(he),{key:0,ref_key:"scroller",ref:M,class:"file-list",items:e(i),"item-size":e(x).first,"key-field":"fullpath","item-secondary-size":e(x).second,gridItems:e(E),onScroll:e(y)},{after:n(()=>[Re]),default:n(({item:o,index:$})=>[s(we,{idx:$,file:o,"cell-width":e(P),"show-menu-idx":e(f),"onUpdate:showMenuIdx":t[3]||(t[3]=le=>F(f)?f.value=le:null),onDragstart:e(L),onDragend:e(O),onFileItemClick:e(U),"full-screen-preview-image-url":e(i)[e(c)]?e(de)(e(i)[e(c)]):"",selected:e(v).includes($),onContextMenuClick:e(C),onPreviewVisibleChange:e(N),"is-selected-mutil-files":e(v).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(g).load&&l.selectedTagIds.and_tags.length===1&&!((T=l.selectedTagIds.folder_paths_str)!=null&&T.trim())?(u(),I("div",Te,[d("div",$e,[d("p",Fe,a(l.$t("tagSearchNoResultsMessage")),1),s(ee,{onClick:t[4]||(t[4]=o=>e(be)()),type:"primary"},{default:n(()=>[p(a(l.$t("rebuildImageIndex")),1)]),_:1})])])):k("",!0),e(h)?(u(),I("div",Ve,[s(e(fe),{onClick:t[5]||(t[5]=o=>e(w)("prev")),class:D({disable:!e(S)("prev")})},null,8,["class"]),s(e(Ie),{onClick:t[6]||(t[6]=o=>e(w)("next")),class:D({disable:!e(S)("next")})},null,8,["class"])])):k("",!0)]}),_:1},8,["spinning"]),e(h)&&e(i)&&e(i)[e(c)]?(u(),V(ke,{key:0,file:e(i)[e(c)],idx:e(c),onContextMenuClick:e(C)},null,8,["file","idx","onContextMenuClick"])):k("",!0)],512)}}});const Ke=ge(De,[["__scopeId","data-v-479efe51"]]);export{Ke as default};
diff --git a/vue/dist/assets/MultiSelectKeep-0aedd2f1.js b/vue/dist/assets/MultiSelectKeep-9bfd3b7f.js
similarity index 97%
rename from vue/dist/assets/MultiSelectKeep-0aedd2f1.js
rename to vue/dist/assets/MultiSelectKeep-9bfd3b7f.js
index 363b099..aa10ed4 100644
--- a/vue/dist/assets/MultiSelectKeep-0aedd2f1.js
+++ b/vue/dist/assets/MultiSelectKeep-9bfd3b7f.js
@@ -1,3 +1,3 @@
-import{aR as We,c as i,A as te,v as G,x as L,n as Ye,J as X,k as he,t as Ge,cf as xe,cg as Je,c2 as ye,ad as ae,af as ee,ch as Ke,r as Z,ci as Qe,C as $e,a9 as J,cj as Ze,ck as Re,R as $,a8 as et,cl as pe,I as se,cm as tt,E as me,cn as nt,co as at,ce as lt,cp as st,cq as ot,o as rt,d as Be,W as He,cr as it,B as R,L as Se,cs as Ce,l as Me,N as O,O as S,Q as C,Z as h,X as oe,Y as y,ct as ut,U,T as Q,S as b,a2 as ce,aa as Pe,a1 as ct,a0 as dt,$ as vt,ag as ft,cu as pt,M as mt,cv as gt,cw as ht,aI as yt,aJ as _t,V as Ve}from"./index-333f4d92.js";import{u as ue,e as ge,g as W,f as Ie,h as ie,r as wt,t as de,i as bt,s as ve,j as re,_ as kt}from"./FileItem-064f25fa.js";import{M as Ue,c as Ot,m as qe,l as Fe,b as Lt,d as Et}from"./functionalCallableComp-dc2cf08d.js";import{C as xt,g as $t}from"./shortcut-0854cd7e.js";import{D as St}from"./index-267d1f4e.js";/* empty css */const le=(...e)=>{document.addEventListener(...e),We(()=>document.removeEventListener(...e))};var Ct={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 Mt=Ct;function De(e){for(var t=1;t'+f+"";break;case a:o[d]=""+f+"";break}}return o.join("")},e.prototype.diff_text1=function(i){for(var o=[],s=0;s
+
+
+ {{ $t('restoreFromHistory') }}
+
+