diff --git a/javascript/index.js b/javascript/index.js index cc8af7c..28fbcc1 100644 --- a/javascript/index.js +++ b/javascript/index.js @@ -13,7 +13,7 @@ Promise.resolve().then(async () => {
MFrGXJqNrOUPCPqPrQ|]@`+`2h1lBlZnXp*r;rWrkz9{4{B}x-#c-#y-$;-$l-$y-%Q-%n-(i-(x-)i-/!-3*-5B-9V",wan:"#=$0&o.]0F4@5X5b6*628u9p -+b-+(-(_-(.-&h-#%{@wGuWs}s|rJrDlaWTV}V+NAMvKfIgGKFX9a7c,7&]&+%~",bie:"-/A-/;fGe2`#M'M!$!#I",pao:"-/>-+i-'^~o|2w=hA]$[P?.4J4H3d06.M'^%A!S",geng:"-/7-&A{TzHlrh=ZIOlK4IX=X2p&M",shua:"-//-%j",cuo:"-.y-.p-*5wukWkSh!ZKY&WuV4(o$j$'",kei:"-.woU",la:"-.v-%3-$n~L|8[RXFXEWnUEU2R`MOI6DT:T0['o$A",pou:"-.l-'_-&[{]twtO]+]&Z+YGJS/<",tuan:"-.I~!}~}K}HyPy&f7`>[}XIVmGLE;;.:m8t2[,F%v%p",zuan:"-.)XOTt",keng:"-,x-([|t|kvIZCXlVgBF/C",gao:"-,Z-(I-(>wRlpWjNHGxGwGdG>E~E3Dm,)!y!t",lang:"-,V-&J-$~{Jy[r{llgiSeOIOHO;KRHHG4Cp=[3Y,z*%(s",weng:"-,@-#oyxv{kfU!Pd9o'N'&",tao:"-+m-)E-'+-%DwPwMw*r}i/fl`j[oYBWXL,JkGtE?><=) ${k} MFrGXJqNrOUPCPqPrQ|]@`+`2h1lBlZnXp*r;rWrkz9{4{B}x-#c-#y-$;-$l-$y-%Q-%n-(i-(x-)i-/!-3*-5B-9V",wan:"#=$0&o.]0F4@5X5b6*628u9p -+b-+(-(_-(.-&h-#%{@wGuWs}s|rJrDlaWTV}V+NAMvKfIgGKFX9a7c,7&]&+%~",bie:"-/A-/;fGe2`#M'M!$!#I",pao:"-/>-+i-'^~o|2w=hA]$[P?.4J4H3d06.M'^%A!S",geng:"-/7-&A{TzHlrh=ZIOlK4IX=X2p&M",shua:"-//-%j",cuo:"-.y-.p-*5wukWkSh!ZKY&WuV4(o$j$'",kei:"-.woU",la:"-.v-%3-$n~L|8[RXFXEWnUEU2R`MOI6DT:T0['o$A",pou:"-.l-'_-&[{]twtO]+]&Z+YGJS/<",tuan:"-.I~!}~}K}HyPy&f7`>[}XIVmGLE;;.:m8t2[,F%v%p",zuan:"-.)XOTt",keng:"-,x-([|t|kvIZCXlVgBF/C",gao:"-,Z-(I-(>wRlpWjNHGxGwGdG>E~E3Dm,)!y!t",lang:"-,V-&J-$~{Jy[r{llgiSeOIOHO;KRHHG4Cp=[3Y,z*%(s",weng:"-,@-#oyxv{kfU!Pd9o'N'&",tao:"-+m-)E-'+-%DwPwMw*r}i/fl`j[oYBWXL,JkGtE?><=) ${M} -1||tt(h,"default"))&&s.push(d)}}}const u=[o,s];return vt(t)&&r.set(t,u),u}function yh(t){return t[0]!=="$"}function bh(t){const e=t&&t.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:t===null?"null":""}function wh(t,e){return bh(t)===bh(e)}function _h(t,e){return $e(e)?e.findIndex(n=>wh(n,t)):Ve(e)&&wh(e,t)?0:-1}const k1=t=>t[0]==="_"||t==="$stable",jd=t=>$e(t)?t.map(pr):[pr(t)],mE=(t,e,n)=>{if(e._n)return e;const r=Rt((...a)=>jd(e(...a)),n);return r._c=!1,r},M1=(t,e,n)=>{const r=t._ctx;for(const a in t){if(k1(a))continue;const i=t[a];if(Ve(i))e[a]=mE(a,i,r);else if(i!=null){const o=jd(i);e[a]=()=>o}}},N1=(t,e)=>{const n=jd(e);t.slots.default=()=>n},yE=(t,e)=>{if(t.vnode.shapeFlag&32){const n=e._;n?(t.slots=Be(e),bl(e,"_",n)):M1(e,t.slots={})}else t.slots={},e&&N1(t,e);bl(t.slots,du,1)},bE=(t,e,n)=>{const{vnode:r,slots:a}=t;let i=!0,o=mt;if(r.shapeFlag&32){const s=e._;s?n&&s===1?i=!1:(It(a,e),!n&&s===1&&delete a._):(i=!e.$stable,M1(e,a)),o=e}else e&&(N1(t,e),o={default:1});if(i)for(const s in a)!k1(s)&&!(s in o)&&delete a[s]};function rf(t,e,n,r,a=!1){if($e(t)){t.forEach((v,h)=>rf(v,e&&($e(e)?e[h]:e),n,r,a));return}if(wo(r)&&!a)return;const i=r.shapeFlag&4?pu(r.component)||r.component.proxy:r.el,o=a?null:i,{i:s,r:l}=t,u=e&&e.r,c=s.refs===mt?s.refs={}:s.refs,d=s.setupState;if(u!=null&&u!==l&&(Ot(u)?(c[u]=null,tt(d,u)&&(d[u]=null)):pt(u)&&(u.value=null)),Ve(l))ia(l,s,12,[o,c]);else{const v=Ot(l),h=pt(l);if(v||h){const f=()=>{if(t.f){const p=v?tt(d,l)?d[l]:c[l]:l.value;a?$e(p)&&bd(p,i):$e(p)?p.includes(i)||p.push(i):v?(c[l]=[i],tt(d,l)&&(d[l]=c[l])):(l.value=[i],t.k&&(c[t.k]=l.value))}else v?(c[l]=o,tt(d,l)&&(d[l]=o)):h&&(l.value=o,t.k&&(c[t.k]=o))};o?(f.id=-1,xn(f,n)):f()}}}const xn=VO;function wE(t){return _E(t)}function _E(t,e){const n=qc();n.__VUE__=!0;const{insert:r,remove:a,patchProp:i,createElement:o,createText:s,createComment:l,setText:u,setElementText:c,parentNode:d,nextSibling:v,setScopeId:h=rr,insertStaticContent:f}=t,p=(B,x,A,H=null,G=null,V=null,se=!1,oe=null,ae=!!x.dynamicChildren)=>{if(B===x)return;B&&!Oa(B,x)&&(H=ge(B),ee(B,G,V,!0),B=null),x.patchFlag===-2&&(ae=!1,x.dynamicChildren=null);const{type:Q,ref:W,shapeFlag:q}=x;switch(Q){case Va:m(B,x,A,H);break;case Nn:g(B,x,A,H);break;case al:B==null&&y(x,A,H,se);break;case De:F(B,x,A,H,G,V,se,oe,ae);break;default:q&1?_(B,x,A,H,G,V,se,oe,ae):q&6?D(B,x,A,H,G,V,se,oe,ae):(q&64||q&128)&&Q.process(B,x,A,H,G,V,se,oe,ae,ye)}W!=null&&G&&rf(W,B&&B.ref,V,x||B,!x)},m=(B,x,A,H)=>{if(B==null)r(x.el=s(x.children),A,H);else{const G=x.el=B.el;x.children!==B.children&&u(G,x.children)}},g=(B,x,A,H)=>{B==null?r(x.el=l(x.children||""),A,H):x.el=B.el},y=(B,x,A,H)=>{[B.el,B.anchor]=f(B.children,x,A,H,B.el,B.anchor)},b=({el:B,anchor:x},A,H)=>{let G;for(;B&&B!==x;)G=v(B),r(B,A,H),B=G;r(x,A,H)},w=({el:B,anchor:x})=>{let A;for(;B&&B!==x;)A=v(B),a(B),B=A;a(x)},_=(B,x,A,H,G,V,se,oe,ae)=>{se=se||x.type==="svg",B==null?C(x,A,H,G,V,se,oe,ae):T(B,x,G,V,se,oe,ae)},C=(B,x,A,H,G,V,se,oe)=>{let ae,Q;const{type:W,props:q,shapeFlag:ce,transition:ie,dirs:de}=B;if(ae=B.el=o(B.type,V,q&&q.is,q),ce&8?c(ae,B.children):ce&16&&I(B.children,ae,null,H,G,V&&W!=="foreignObject",se,oe),de&&ga(B,null,H,"created"),O(ae,B,B.scopeId,se,H),q){for(const Ce in q)Ce!=="value"&&!tl(Ce)&&i(ae,Ce,null,q[Ce],V,B.children,H,G,le);"value"in q&&i(ae,"value",null,q.value),(Q=q.onVnodeBeforeMount)&&ur(Q,H,B)}de&&ga(B,null,H,"beforeMount");const we=(!G||G&&!G.pendingBranch)&&ie&&!ie.persisted;we&&ie.beforeEnter(ae),r(ae,x,A),((Q=q&&q.onVnodeMounted)||we||de)&&xn(()=>{Q&&ur(Q,H,B),we&&ie.enter(ae),de&&ga(B,null,H,"mounted")},G)},O=(B,x,A,H,G)=>{if(A&&h(B,A),H)for(let V=0;VZYZZ]U_6_9d9fYj6j~lWm)mep)rQrbrctvwkxc{y|U}6~?~C~`~m-!Z-*'-+R-/j-0j-3i-4/-4@-5,-5f-6j-6s-7)-9G-9W-9X",tuo:"%U%V&z0L2J4v?{@$F_H6MUTbT~Y'Yc^QdHdQnVq+r`x1{{|;|<-&d-(.-(z-({-)1-)J-)K-*:-*e-*p-+$-+3-.b-/%-/[-0b-3O-4,-6_-8}-9$-9?",zhe:"#'%+%E'P2f2|
}I-*S-+S-0~-2b-5X-8{",cou:"@ThJiK",chuang:"'_,H,L,q{+{E",piao:"$+).1D7a:;
lMi@i$fDf@b1`Y_4XyW6TMMzJ$I:GOD{=#
{let t=0,n=1;for(let i=e.length;i--;)t+=n*$a.indexOf(e.charAt(i)),n*=91;return t},rn=(e,t)=>{let n,i,l,p,o;for(n in e)if(e.hasOwnProperty(n))for(i=e[n].match(Ea),l=0;l
');continue}const J=X[k];C||(C=J.includes("("));const oe=["tag"];C&&oe.push("has-parentheses"),J.length<32&&oe.push("short-tag"),I.push(`${J}`),C&&(C=!J.includes(")"))}return I.join(i.showCommaInInfoPanel?",":" ")}St("load",a=>{const g=a.target;g.className==="ant-image-preview-img"&&(r.value=`${g.naturalWidth} x ${g.naturalHeight}`)},{capture:!0});const h=re(()=>{const a=[{name:ie("fileSize"),val:n.file.size}];return r.value&&a.push({name:ie("resolution"),val:r.value}),a}),L=()=>{const a="Negative prompt:",g=T.value.includes(a)?T.value.split(a)[0]:K.value[0]??"";ze(it(g.trim()))},P=()=>document.body.requestFullscreen(),U=a=>{ze(typeof a=="object"?JSON.stringify(a,null,4):a)},ae=a=>{a.key.startsWith("Arrow")?(a.stopPropagation(),a.preventDefault(),document.dispatchEvent(new KeyboardEvent("keydown",a))):a.key==="Escape"&&document.fullscreenElement&&document.exitFullscreen()};St("dblclick",a=>{var g;((g=a.target)==null?void 0:g.className)==="ant-image-preview-img"&&Ot()});const se=re(()=>ee.value||A.value.expanded),ve=De(rt+"contextShowFullPath",!1),V=re(()=>ve.value?n.file.fullpath:n.file.name),te=De(rt+"tagA2ZClassify",!1),Be=re(()=>{var X;const a=(X=i.conf)==null?void 0:X.all_custom_tags.map(I=>{var k,J;return{char:((k=I.display_name)==null?void 0:k[0])||((J=I.name)==null?void 0:J[0]),...I}}).reduce((I,C)=>{var J;let k="#";if(/[a-z]/i.test(C.char))k=C.char.toUpperCase();else if(/[\u4e00-\u9fa5]/.test(C.char))try{k=((J=/^\[?(\w)/.exec(Ma(C.char)+""))==null?void 0:J[1])??"#"}catch(oe){console.log("err",oe)}return k=k.toUpperCase(),I[k]||(I[k]=[]),I[k].push(C),I},{});return Object.entries(a??{}).sort((I,C)=>I[0].charCodeAt(0)-C[0].charCodeAt(0))}),Oe=()=>{Ot(),t("contextMenuClick",{key:"tiktokView"},n.file,n.idx)},ke=ue(!1),Qe=async()=>{var a,g;if(!S.value.prompt){be.warning(ie("aiAnalyzeTagsNoPrompt"));return}if(!((g=(a=i.conf)==null?void 0:a.all_custom_tags)!=null&&g.length)){be.warning(ie("aiAnalyzeTagsNoCustomTags"));return}ke.value=!0;try{const X=S.value.prompt,C=`You are a professional AI assistant responsible for analyzing Stable Diffusion prompts and categorizing them into appropriate tags.
+*/let on=19968,ba=(40896-on)/2,lt="",We=",",$a=(()=>{let e=[];for(let t=33;t<127;t++)t!=34&&t!=92&&t!=45&&e.push(String.fromCharCode(t));return e.join(lt)})(),$t={a:{yi:"!]#R$!$q(3(p)[*2*g+6+d.C.q0[0w1L2<717l8B8E9?:8;V;[;e;{<)<+.>4??@~A`BbC:CGC^CiDMDjDkF!H/H;JaL?M.M2MoNCN|OgO|P$P)PBPyQ~R%R.S.T;TZYZZ]U_6_9d9fYj6j~lWm)mep)rQrbrctvwkxc{y|U}6~?~C~`~m-!Z-*'-+R-/j-0j-3i-4/-4@-5,-5f-6j-6s-7)-9G-9W-9X",tuo:"%U%V&z0L2J4v?{@$F_H6MUTbT~Y'Yc^QdHdQnVq+r`x1{{|;|<-&d-(.-(z-({-)1-)J-)K-*:-*e-*p-+$-+3-.b-/%-/[-0b-3O-4,-6_-8}-9$-9?",zhe:"#'%+%E'P2f2|
}I-*S-+S-0~-2b-5X-8{",cou:"@ThJiK",chuang:"'_,H,L,q{+{E",piao:"$+).1D7a:;
lMi@i$fDf@b1`Y_4XyW6TMMzJ$I:GOD{=#
{let t=0,n=1;for(let i=e.length;i--;)t+=n*$a.indexOf(e.charAt(i)),n*=91;return t},rn=(e,t)=>{let n,i,l,p,o;for(n in e)if(e.hasOwnProperty(n))for(i=e[n].match(Ea),l=0;l
');continue}const J=X[M];T||(T=J.includes("("));const oe=["tag"];T&&oe.push("has-parentheses"),J.length<32&&oe.push("short-tag"),I.push(`${J}`),T&&(T=!J.includes(")"))}return I.join(i.showCommaInInfoPanel?",":" ")}St("load",a=>{const g=a.target;g.className==="ant-image-preview-img"&&(r.value=`${g.naturalWidth} x ${g.naturalHeight}`)},{capture:!0});const h=re(()=>{const a=[{name:ie("fileSize"),val:n.file.size}];return r.value&&a.push({name:ie("resolution"),val:r.value}),a}),L=()=>{const a="Negative prompt:",g=C.value.includes(a)?C.value.split(a)[0]:K.value[0]??"";ze(it(g.trim()))},P=()=>document.body.requestFullscreen(),U=a=>{ze(typeof a=="object"?JSON.stringify(a,null,4):a)},ae=a=>{a.key.startsWith("Arrow")?(a.stopPropagation(),a.preventDefault(),document.dispatchEvent(new KeyboardEvent("keydown",a))):a.key==="Escape"&&document.fullscreenElement&&document.exitFullscreen()};St("dblclick",a=>{var g;((g=a.target)==null?void 0:g.className)==="ant-image-preview-img"&&Ot()});const se=re(()=>ee.value||A.value.expanded),ve=De(rt+"contextShowFullPath",!1),V=re(()=>ve.value?n.file.fullpath:n.file.name),te=De(rt+"tagA2ZClassify",!1),Be=re(()=>{var X;const a=(X=i.conf)==null?void 0:X.all_custom_tags.map(I=>{var M,J;return{char:((M=I.display_name)==null?void 0:M[0])||((J=I.name)==null?void 0:J[0]),...I}}).reduce((I,T)=>{var J;let M="#";if(/[a-z]/i.test(T.char))M=T.char.toUpperCase();else if(/[\u4e00-\u9fa5]/.test(T.char))try{M=((J=/^\[?(\w)/.exec(xa(T.char)+""))==null?void 0:J[1])??"#"}catch(oe){console.log("err",oe)}return M=M.toUpperCase(),I[M]||(I[M]=[]),I[M].push(T),I},{});return Object.entries(a??{}).sort((I,T)=>I[0].charCodeAt(0)-T[0].charCodeAt(0))}),Oe=()=>{Ot(),t("contextMenuClick",{key:"tiktokView"},n.file,n.idx)},ke=ue(!1),Qe=async()=>{var a,g;if(!S.value.prompt){be.warning(ie("aiAnalyzeTagsNoPrompt"));return}if(!((g=(a=i.conf)==null?void 0:a.all_custom_tags)!=null&&g.length)){be.warning(ie("aiAnalyzeTagsNoCustomTags"));return}ke.value=!0;try{const X=S.value.prompt,T=`You are a professional AI assistant responsible for analyzing Stable Diffusion prompts and categorizing them into appropriate tags.
Your task is:
1. Analyze the given prompt
@@ -16,4 +16,4 @@ Your task is:
Available tags: ${i.conf.all_custom_tags.map(E=>E.name).join(", ")}
-Please return only tag names, do not include any other content.`,J=(await xn({messages:[{role:"system",content:C},{role:"user",content:`Please analyze this prompt and return matching tags: ${X}`}],temperature:.3,max_tokens:200})).choices[0].message.content.trim();if(!J){be.info(ie("aiAnalyzeTagsNoMatchedTags"));return}const oe=J.split(",").map(E=>E.trim()).filter(E=>E),b=i.conf.all_custom_tags.filter(E=>oe.some(le=>E.name.toLowerCase()===le.toLowerCase()||E.name.toLowerCase().includes(le.toLowerCase())||le.toLowerCase().includes(E.name.toLowerCase()))),ye=new Set(o.value.map(E=>E.id)),R=b.filter(E=>!ye.has(E.id));if(R.length===0){b.length>0?be.info(ie("aiAnalyzeTagsAllTagsAlreadyAdded")):be.info(ie("aiAnalyzeTagsNoValidTags"));return}for(const E of R)t("contextMenuClick",{key:`toggle-tag-${E.id}`},n.file,n.idx);be.success(ie("aiAnalyzeTagsSuccess",[R.length.toString(),R.map(E=>E.name).join(", ")]))}catch(X){console.error("AI分析标签失败:",X),be.error(ie("aiAnalyzeTagsFailed"))}finally{ke.value=!1}};return(a,g)=>{var u,f,x;const X=jn,I=Fe,C=Mn,k=Sn,J=Tn,oe=Cn,b=Fe,ye=Pn,R=In,E=Ln,le=An,he=zn,Le=Ne,Ae=Dn;return _(),O("div",{ref_key:"el",ref:p,class:nt(["full-screen-menu",{"unset-size":!v(A).expanded,lr:v(ee),"always-on":v(fe),"mouse-in":Ce.value}]),onWheelCapture:g[13]||(g[13]=xt(()=>{},["stop"])),onKeydownCapture:ae},[v(ee)?(_(),O("div",Sa)):H("",!0),$("div",Ta,[$("div",Ca,[v(ee)?H("",!0):(_(),O("div",{key:0,ref_key:"dragHandle",ref:y,class:"icon",style:{cursor:"grab"},title:v(ie)("dragToMovePanel")},[m(v(Zn))],8,La)),v(ee)?H("",!0):(_(),O("div",{key:1,class:"icon",style:{cursor:"pointer"},onClick:g[0]||(g[0]=c=>v(A).expanded=!v(A).expanded),title:v(ie)("clickToToggleMaximizeMinimize")},[se.value?(_(),de(v(En),{key:0})):(_(),de(v(wn),{key:1}))],8,Aa)),$("div",{style:{display:"flex","flex-direction":"column","align-items":"center",cursor:"grab"},class:"icon",title:v(ie)("fullscreenview"),onClick:P},[$("img",{src:v(li),style:{width:"21px",height:"21px","padding-bottom":"2px"},alt:""},null,8,Da)],8,za),m(X,{"get-popup-container":je},{overlay:M(()=>[m(Bn,{file:a.file,idx:a.idx,"selected-tag":o.value,onContextMenuClick:g[1]||(g[1]=(c,z,F)=>t("contextMenuClick",c,z,F))},null,8,["file","idx","selected-tag"])]),default:M(()=>[v(A).expanded?H("",!0):(_(),O("div",Na,[m(v(kt))]))]),_:1}),se.value?(_(),O("div",Ia)):H("",!0),se.value?(_(),O("div",Pa,[m(X,{trigger:["hover"],"get-popup-container":je},{overlay:M(()=>[m(oe,{onClick:g[2]||(g[2]=c=>t("contextMenuClick",c,a.file,a.idx))},{default:M(()=>{var c;return[((c=v(i).conf)==null?void 0:c.launch_mode)!=="server"?(_(),O(Y,{key:0},[m(C,{key:"send2txt2img"},{default:M(()=>[N(w(a.$t("sendToTxt2img")),1)]),_:1}),m(C,{key:"send2img2img"},{default:M(()=>[N(w(a.$t("sendToImg2img")),1)]),_:1}),m(C,{key:"send2inpaint"},{default:M(()=>[N(w(a.$t("sendToInpaint")),1)]),_:1}),m(C,{key:"send2extras"},{default:M(()=>[N(w(a.$t("sendToExtraFeatures")),1)]),_:1}),m(k,{key:"sendToThirdPartyExtension",title:a.$t("sendToThirdPartyExtension")},{default:M(()=>[m(C,{key:"send2controlnet-txt2img"},{default:M(()=>[N("ControlNet - "+w(a.$t("t2i")),1)]),_:1}),m(C,{key:"send2controlnet-img2img"},{default:M(()=>[N("ControlNet - "+w(a.$t("i2i")),1)]),_:1}),m(C,{key:"send2outpaint"},{default:M(()=>[N("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):H("",!0),m(C,{key:"send2BatchDownload"},{default:M(()=>[N(w(a.$t("sendToBatchDownload")),1)]),_:1}),m(k,{key:"copy2target",title:a.$t("copyTo")},{default:M(()=>[(_(!0),O(Y,null,ge(v(i).quickMovePaths,z=>(_(),de(C,{key:`copy-to-${z.dir}`},{default:M(()=>[N(w(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),m(k,{key:"move2target",title:a.$t("moveTo")},{default:M(()=>[(_(!0),O(Y,null,ge(v(i).quickMovePaths,z=>(_(),de(C,{key:`move-to-${z.dir}`},{default:M(()=>[N(w(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),m(J),m(C,{key:"deleteFiles"},{default:M(()=>[N(w(a.$t("deleteSelected")),1)]),_:1}),m(C,{key:"previewInNewWindow"},{default:M(()=>[N(w(a.$t("previewInNewWindow")),1)]),_:1}),m(C,{key:"copyPreviewUrl"},{default:M(()=>[N(w(a.$t("copySourceFilePreviewLink")),1)]),_:1}),m(C,{key:"copyFilePath"},{default:M(()=>[N(w(a.$t("copyFilePath")),1)]),_:1}),m(J),m(C,{key:"tiktokView",onClick:Oe},{default:M(()=>[N(w(a.$t("tiktokView")),1)]),_:1})]}),_:1})]),default:M(()=>[m(I,null,{default:M(()=>[N(w(v(ie)("openContextMenu")),1)]),_:1})]),_:1}),m(b,{onClick:g[3]||(g[3]=c=>t("contextMenuClick",{key:"download"},n.file,n.idx))},{default:M(()=>[N(w(a.$t("download")),1)]),_:1}),T.value?(_(),de(I,{key:0,onClick:g[4]||(g[4]=c=>v(ze)(T.value))},{default:M(()=>[N(w(a.$t("copyPrompt")),1)]),_:1})):H("",!0),T.value?(_(),de(I,{key:1,onClick:L},{default:M(()=>[N(w(a.$t("copyPositivePrompt")),1)]),_:1})):H("",!0),T.value&&((f=(u=v(i).conf)==null?void 0:u.all_custom_tags)!=null&&f.length)?(_(),de(I,{key:2,onClick:Qe,type:"primary",loading:ke.value},{default:M(()=>[N(w(a.$t("aiAnalyzeTags")),1)]),_:1},8,["loading"])):H("",!0),m(I,{onClick:Oe,onTouchstart:xt(Oe,["prevent"]),type:"default"},{default:M(()=>[N(w(a.$t("tiktokView")),1)]),_:1},8,["onTouchstart"])])):H("",!0)]),se.value?(_(),O("div",ja,[$("div",Ba,[$("span",Ra,[$("span",Ua,w(a.$t("fileName")),1),$("span",{class:"value",title:V.value,onDblclick:g[5]||(g[5]=c=>v(ze)(V.value))},w(V.value),41,Ha),$("span",{style:{margin:"0 8px",cursor:"pointer"},title:"Click to expand full path",onClick:g[6]||(g[6]=c=>ve.value=!v(ve))},[m(v(kt))])]),(_(!0),O(Y,null,ge(h.value,c=>(_(),O("span",{class:"info-tag",key:c.name},[$("span",Wa,w(c.name),1),$("span",{class:"value",title:c.val,onDblclick:z=>v(ze)(c.val)},w(c.val),41,Fa)]))),128))]),(x=v(i).conf)!=null&&x.all_custom_tags?(_(),O("div",Xa,[$("div",{class:"sort-tag-switch",onClick:g[7]||(g[7]=c=>te.value=!v(te))},[v(te)?(_(),de(v(On),{key:1})):(_(),de(v(ri),{key:0}))]),$("div",{class:"tag",onClick:g[8]||(g[8]=(...c)=>v(Mt)&&v(Mt)(...c)),style:tt({"--tag-color":"var(--zp-luminous)"})},"+ "+w(a.$t("add")),5),v(te)?(_(!0),O(Y,{key:0},ge(Be.value,([c,z])=>(_(),O("div",{key:c,class:"tag-alpha-item"},[$("h4",qa,w(c)+" : ",1),$("div",null,[(_(!0),O(Y,null,ge(z,F=>(_(),O("div",{class:nt(["tag",{selected:o.value.some(Re=>Re.id===F.id)}]),onClick:Re=>t("contextMenuClick",{key:`toggle-tag-${F.id}`},a.file,a.idx),key:F.id,style:tt({"--tag-color":v(l).getColor(F)})},w(F.name),15,Ja))),128))])]))),128)):(_(!0),O(Y,{key:1},ge(v(i).conf.all_custom_tags,c=>(_(),O("div",{class:nt(["tag",{selected:o.value.some(z=>z.id===c.id)}]),onClick:z=>t("contextMenuClick",{key:`toggle-tag-${c.id}`},a.file,a.idx),key:c.id,style:tt({"--tag-color":v(l).getColor(c)})},w(c.name),15,Ga))),128))])):H("",!0),$("div",Va,[$("div",Ya,[N(w(a.$t("experimentalLRLayout"))+": ",1),m(ye,{checked:v(ee),"onUpdate:checked":g[9]||(g[9]=c=>Ue(ee)?ee.value=c:null),size:"small"},null,8,["checked"])]),v(ee)?(_(),O(Y,{key:0},[$("div",Za,[N(w(a.$t("width"))+": ",1),m(R,{value:v(ne),"onUpdate:value":g[10]||(g[10]=c=>Ue(ne)?ne.value=c:null),style:{width:"64px"},step:16,min:128,max:1024},null,8,["value"])]),m(E,{title:a.$t("alwaysOnTooltipInfo")},{default:M(()=>[$("div",Ka,[N(w(a.$t("alwaysOn"))+": ",1),m(ye,{checked:v(fe),"onUpdate:checked":g[11]||(g[11]=c=>Ue(fe)?fe.value=c:null),size:"small"},null,8,["checked"])])]),_:1},8,["title"])],64)):H("",!0)]),m(Ae,{activeKey:v(q),"onUpdate:activeKey":g[12]||(g[12]=c=>Ue(q)?q.value=c:null)},{default:M(()=>[m(le,{key:"structedData",tab:a.$t("structuredData")},{default:M(()=>[$("div",null,[S.value.prompt?(_(),O(Y,{key:0},[Qa,es,$("code",{innerHTML:s(S.value.prompt??"")},null,8,ts)],64)):H("",!0),S.value.negativePrompt?(_(),O(Y,{key:1},[ns,is,$("code",{innerHTML:s(S.value.negativePrompt??"")},null,8,as)],64)):H("",!0)]),Object.keys(j.value).length?(_(),O(Y,{key:0},[ss,os,$("table",null,[(_(!0),O(Y,null,ge(j.value,(c,z)=>(_(),O("tr",{key:z,class:"gen-info-frag"},[$("td",rs,w(z),1),typeof c=="object"?(_(),O("td",{key:0,style:{cursor:"pointer"},onDblclick:F=>U(c)},[$("code",null,w(c),1)],40,ls)):(_(),O("td",{key:1,style:{cursor:"pointer"},onDblclick:F=>U(v(it)(c))},w(v(it)(c)),41,cs))]))),128))])],64)):H("",!0),W.value&&Object.keys(W.value).length?(_(),O(Y,{key:1},[us,ds,$("table",gs,[(_(!0),O(Y,null,ge(W.value,(c,z)=>(_(),O("tr",{key:z,class:"gen-info-frag"},[$("td",fs,w(z),1),$("td",{style:{cursor:"pointer"},onDblclick:F=>U(c)},[$("code",ps,w(typeof c=="string"?c:JSON.stringify(c,null,2)),1)],40,hs)]))),128))])],64)):H("",!0)]),_:1},8,["tab"]),m(le,{key:"sourceText",tab:a.$t("sourceText")},{default:M(()=>[$("code",null,w(T.value),1)]),_:1},8,["tab"]),m(le,{key:"exif",tab:"EXIF"},{default:M(()=>[m(Le,{spinning:Z.value},{default:M(()=>[D.value&&Object.keys(D.value).length?(_(),O("div",vs,[m(va,{data:D.value},null,8,["data"])])):Z.value?H("",!0):(_(),O("div",_s,[m(he,{description:"No EXIF data available"})]))]),_:1},8,["spinning"])]),_:1})]),_:1},8,["activeKey"])])):H("",!0)]),v(A).expanded&&!v(ee)?(_(),O("div",{key:1,class:"mouse-sensor",ref_key:"resizeHandle",ref:ce,title:v(ie)("dragToResizePanel")},[m(v(Jn))],8,ms)):H("",!0)],34)}}});const Ns=ut(ys,[["__scopeId","data-v-d0c05939"]]),bs={key:0,class:"float-panel"},$s={key:0,class:"select-actions"},Es={key:1},ws=ct({__name:"MultiSelectKeep",props:{show:{type:Boolean}},emits:["selectAll","reverseSelect","clearAllSelected"],setup(e,{emit:t}){const n=Ge(),i=()=>{t("clearAllSelected"),n.keepMultiSelect=!1},l=()=>{n.keepMultiSelect=!0};return(p,o)=>{const r=Fe;return p.show?(_(),O("div",bs,[v(n).keepMultiSelect?(_(),O("div",$s,[m(r,{size:"small",onClick:o[0]||(o[0]=d=>t("selectAll"))},{default:M(()=>[N(w(p.$t("select-all")),1)]),_:1}),m(r,{size:"small",onClick:o[1]||(o[1]=d=>t("reverseSelect"))},{default:M(()=>[N(w(p.$t("rerverse-select")),1)]),_:1}),m(r,{size:"small",onClick:o[2]||(o[2]=d=>t("clearAllSelected"))},{default:M(()=>[N(w(p.$t("clear-all-selected")),1)]),_:1}),m(r,{size:"small",onClick:i},{default:M(()=>[N(w(p.$t("exit")),1)]),_:1})])):(_(),O("div",Es,[m(r,{size:"small",type:"primary",onClick:l},{default:M(()=>[N(w(p.$t("keep-multi-selected")),1)]),_:1})]))])):H("",!0)}}});const Is=ut(ws,[["__scopeId","data-v-b04c3508"]]);export{zs as L,Is as M,Ds as R,Ns as f};
+Please return only tag names, do not include any other content.`,J=(await Mn({messages:[{role:"system",content:T},{role:"user",content:`Please analyze this prompt and return matching tags: ${X}`}],temperature:.3,max_tokens:200})).choices[0].message.content.trim();if(!J){be.info(ie("aiAnalyzeTagsNoMatchedTags"));return}const oe=J.split(",").map(E=>E.trim()).filter(E=>E),b=i.conf.all_custom_tags.filter(E=>oe.some(le=>E.name.toLowerCase()===le.toLowerCase()||E.name.toLowerCase().includes(le.toLowerCase())||le.toLowerCase().includes(E.name.toLowerCase()))),ye=new Set(o.value.map(E=>E.id)),R=b.filter(E=>!ye.has(E.id));if(R.length===0){b.length>0?be.info(ie("aiAnalyzeTagsAllTagsAlreadyAdded")):be.info(ie("aiAnalyzeTagsNoValidTags"));return}for(const E of R)t("contextMenuClick",{key:`toggle-tag-${E.id}`},n.file,n.idx);be.success(ie("aiAnalyzeTagsSuccess",[R.length.toString(),R.map(E=>E.name).join(", ")]))}catch(X){console.error("AI分析标签失败:",X),be.error(ie("aiAnalyzeTagsFailed"))}finally{ke.value=!1}};return(a,g)=>{var u,f,x;const X=jn,I=Fe,T=xn,M=Sn,J=Tn,oe=Cn,b=Fe,ye=Pn,R=In,E=Ln,le=An,he=zn,Le=Ne,Ae=Dn;return _(),O("div",{ref_key:"el",ref:p,class:nt(["full-screen-menu",{"unset-size":!v(A).expanded,lr:v(ee),"always-on":v(fe),"mouse-in":Ce.value}]),onWheelCapture:g[13]||(g[13]=Mt(()=>{},["stop"])),onKeydownCapture:ae},[v(ee)?(_(),O("div",Sa)):H("",!0),$("div",Ta,[$("div",Ca,[v(ee)?H("",!0):(_(),O("div",{key:0,ref_key:"dragHandle",ref:y,class:"icon",style:{cursor:"grab"},title:v(ie)("dragToMovePanel")},[m(v(Zn))],8,La)),v(ee)?H("",!0):(_(),O("div",{key:1,class:"icon",style:{cursor:"pointer"},onClick:g[0]||(g[0]=c=>v(A).expanded=!v(A).expanded),title:v(ie)("clickToToggleMaximizeMinimize")},[se.value?(_(),de(v(En),{key:0})):(_(),de(v(wn),{key:1}))],8,Aa)),$("div",{style:{display:"flex","flex-direction":"column","align-items":"center",cursor:"grab"},class:"icon",title:v(ie)("fullscreenview"),onClick:P},[$("img",{src:v(li),style:{width:"21px",height:"21px","padding-bottom":"2px"},alt:""},null,8,Da)],8,za),m(X,{"get-popup-container":je},{overlay:k(()=>[m(Bn,{file:a.file,idx:a.idx,"selected-tag":o.value,onContextMenuClick:g[1]||(g[1]=(c,z,F)=>t("contextMenuClick",c,z,F))},null,8,["file","idx","selected-tag"])]),default:k(()=>[v(A).expanded?H("",!0):(_(),O("div",Na,[m(v(kt))]))]),_:1}),se.value?(_(),O("div",Ia)):H("",!0),se.value?(_(),O("div",Pa,[m(X,{trigger:["hover"],"get-popup-container":je},{overlay:k(()=>[m(oe,{onClick:g[2]||(g[2]=c=>t("contextMenuClick",c,a.file,a.idx))},{default:k(()=>{var c;return[((c=v(i).conf)==null?void 0:c.launch_mode)!=="server"?(_(),O(Y,{key:0},[m(T,{key:"send2txt2img"},{default:k(()=>[N(w(a.$t("sendToTxt2img")),1)]),_:1}),m(T,{key:"send2img2img"},{default:k(()=>[N(w(a.$t("sendToImg2img")),1)]),_:1}),m(T,{key:"send2inpaint"},{default:k(()=>[N(w(a.$t("sendToInpaint")),1)]),_:1}),m(T,{key:"send2extras"},{default:k(()=>[N(w(a.$t("sendToExtraFeatures")),1)]),_:1}),m(M,{key:"sendToThirdPartyExtension",title:a.$t("sendToThirdPartyExtension")},{default:k(()=>[m(T,{key:"send2controlnet-txt2img"},{default:k(()=>[N("ControlNet - "+w(a.$t("t2i")),1)]),_:1}),m(T,{key:"send2controlnet-img2img"},{default:k(()=>[N("ControlNet - "+w(a.$t("i2i")),1)]),_:1}),m(T,{key:"send2outpaint"},{default:k(()=>[N("openOutpaint")]),_:1})]),_:1},8,["title"])],64)):H("",!0),m(T,{key:"send2BatchDownload"},{default:k(()=>[N(w(a.$t("sendToBatchDownload")),1)]),_:1}),m(M,{key:"copy2target",title:a.$t("copyTo")},{default:k(()=>[(_(!0),O(Y,null,ge(v(i).quickMovePaths,z=>(_(),de(T,{key:`copy-to-${z.dir}`},{default:k(()=>[N(w(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),m(M,{key:"move2target",title:a.$t("moveTo")},{default:k(()=>[(_(!0),O(Y,null,ge(v(i).quickMovePaths,z=>(_(),de(T,{key:`move-to-${z.dir}`},{default:k(()=>[N(w(z.zh),1)]),_:2},1024))),128))]),_:1},8,["title"]),m(J),m(T,{key:"deleteFiles"},{default:k(()=>[N(w(a.$t("deleteSelected")),1)]),_:1}),m(T,{key:"openWithDefaultApp"},{default:k(()=>[N(w(a.$t("openWithDefaultApp")),1)]),_:1}),m(T,{key:"previewInNewWindow"},{default:k(()=>[N(w(a.$t("previewInNewWindow")),1)]),_:1}),m(T,{key:"copyPreviewUrl"},{default:k(()=>[N(w(a.$t("copySourceFilePreviewLink")),1)]),_:1}),m(T,{key:"copyFilePath"},{default:k(()=>[N(w(a.$t("copyFilePath")),1)]),_:1}),m(J),m(T,{key:"tiktokView",onClick:Oe},{default:k(()=>[N(w(a.$t("tiktokView")),1)]),_:1})]}),_:1})]),default:k(()=>[m(I,null,{default:k(()=>[N(w(v(ie)("openContextMenu")),1)]),_:1})]),_:1}),m(b,{onClick:g[3]||(g[3]=c=>t("contextMenuClick",{key:"download"},n.file,n.idx))},{default:k(()=>[N(w(a.$t("download")),1)]),_:1}),C.value?(_(),de(I,{key:0,onClick:g[4]||(g[4]=c=>v(ze)(C.value))},{default:k(()=>[N(w(a.$t("copyPrompt")),1)]),_:1})):H("",!0),C.value?(_(),de(I,{key:1,onClick:L},{default:k(()=>[N(w(a.$t("copyPositivePrompt")),1)]),_:1})):H("",!0),C.value&&((f=(u=v(i).conf)==null?void 0:u.all_custom_tags)!=null&&f.length)?(_(),de(I,{key:2,onClick:Qe,type:"primary",loading:ke.value},{default:k(()=>[N(w(a.$t("aiAnalyzeTags")),1)]),_:1},8,["loading"])):H("",!0),m(I,{onClick:Oe,onTouchstart:Mt(Oe,["prevent"]),type:"default"},{default:k(()=>[N(w(a.$t("tiktokView")),1)]),_:1},8,["onTouchstart"])])):H("",!0)]),se.value?(_(),O("div",ja,[$("div",Ba,[$("span",Ra,[$("span",Ua,w(a.$t("fileName")),1),$("span",{class:"value",title:V.value,onDblclick:g[5]||(g[5]=c=>v(ze)(V.value))},w(V.value),41,Ha),$("span",{style:{margin:"0 8px",cursor:"pointer"},title:"Click to expand full path",onClick:g[6]||(g[6]=c=>ve.value=!v(ve))},[m(v(kt))])]),(_(!0),O(Y,null,ge(h.value,c=>(_(),O("span",{class:"info-tag",key:c.name},[$("span",Wa,w(c.name),1),$("span",{class:"value",title:c.val,onDblclick:z=>v(ze)(c.val)},w(c.val),41,Fa)]))),128))]),(x=v(i).conf)!=null&&x.all_custom_tags?(_(),O("div",Xa,[$("div",{class:"sort-tag-switch",onClick:g[7]||(g[7]=c=>te.value=!v(te))},[v(te)?(_(),de(v(On),{key:1})):(_(),de(v(ri),{key:0}))]),$("div",{class:"tag",onClick:g[8]||(g[8]=(...c)=>v(xt)&&v(xt)(...c)),style:tt({"--tag-color":"var(--zp-luminous)"})},"+ "+w(a.$t("add")),5),v(te)?(_(!0),O(Y,{key:0},ge(Be.value,([c,z])=>(_(),O("div",{key:c,class:"tag-alpha-item"},[$("h4",qa,w(c)+" : ",1),$("div",null,[(_(!0),O(Y,null,ge(z,F=>(_(),O("div",{class:nt(["tag",{selected:o.value.some(Re=>Re.id===F.id)}]),onClick:Re=>t("contextMenuClick",{key:`toggle-tag-${F.id}`},a.file,a.idx),key:F.id,style:tt({"--tag-color":v(l).getColor(F)})},w(F.name),15,Ja))),128))])]))),128)):(_(!0),O(Y,{key:1},ge(v(i).conf.all_custom_tags,c=>(_(),O("div",{class:nt(["tag",{selected:o.value.some(z=>z.id===c.id)}]),onClick:z=>t("contextMenuClick",{key:`toggle-tag-${c.id}`},a.file,a.idx),key:c.id,style:tt({"--tag-color":v(l).getColor(c)})},w(c.name),15,Ga))),128))])):H("",!0),$("div",Va,[$("div",Ya,[N(w(a.$t("experimentalLRLayout"))+": ",1),m(ye,{checked:v(ee),"onUpdate:checked":g[9]||(g[9]=c=>Ue(ee)?ee.value=c:null),size:"small"},null,8,["checked"])]),v(ee)?(_(),O(Y,{key:0},[$("div",Za,[N(w(a.$t("width"))+": ",1),m(R,{value:v(ne),"onUpdate:value":g[10]||(g[10]=c=>Ue(ne)?ne.value=c:null),style:{width:"64px"},step:16,min:128,max:1024},null,8,["value"])]),m(E,{title:a.$t("alwaysOnTooltipInfo")},{default:k(()=>[$("div",Ka,[N(w(a.$t("alwaysOn"))+": ",1),m(ye,{checked:v(fe),"onUpdate:checked":g[11]||(g[11]=c=>Ue(fe)?fe.value=c:null),size:"small"},null,8,["checked"])])]),_:1},8,["title"])],64)):H("",!0)]),m(Ae,{activeKey:v(q),"onUpdate:activeKey":g[12]||(g[12]=c=>Ue(q)?q.value=c:null)},{default:k(()=>[m(le,{key:"structedData",tab:a.$t("structuredData")},{default:k(()=>[$("div",null,[S.value.prompt?(_(),O(Y,{key:0},[Qa,es,$("code",{innerHTML:s(S.value.prompt??"")},null,8,ts)],64)):H("",!0),S.value.negativePrompt?(_(),O(Y,{key:1},[ns,is,$("code",{innerHTML:s(S.value.negativePrompt??"")},null,8,as)],64)):H("",!0)]),Object.keys(j.value).length?(_(),O(Y,{key:0},[ss,os,$("table",null,[(_(!0),O(Y,null,ge(j.value,(c,z)=>(_(),O("tr",{key:z,class:"gen-info-frag"},[$("td",rs,w(z),1),typeof c=="object"?(_(),O("td",{key:0,style:{cursor:"pointer"},onDblclick:F=>U(c)},[$("code",null,w(c),1)],40,ls)):(_(),O("td",{key:1,style:{cursor:"pointer"},onDblclick:F=>U(v(it)(c))},w(v(it)(c)),41,cs))]))),128))])],64)):H("",!0),W.value&&Object.keys(W.value).length?(_(),O(Y,{key:1},[us,ds,$("table",gs,[(_(!0),O(Y,null,ge(W.value,(c,z)=>(_(),O("tr",{key:z,class:"gen-info-frag"},[$("td",fs,w(z),1),$("td",{style:{cursor:"pointer"},onDblclick:F=>U(c)},[$("code",ps,w(typeof c=="string"?c:JSON.stringify(c,null,2)),1)],40,hs)]))),128))])],64)):H("",!0)]),_:1},8,["tab"]),m(le,{key:"sourceText",tab:a.$t("sourceText")},{default:k(()=>[$("code",null,w(C.value),1)]),_:1},8,["tab"]),m(le,{key:"exif",tab:"EXIF"},{default:k(()=>[m(Le,{spinning:Z.value},{default:k(()=>[D.value&&Object.keys(D.value).length?(_(),O("div",vs,[m(va,{data:D.value},null,8,["data"])])):Z.value?H("",!0):(_(),O("div",_s,[m(he,{description:"No EXIF data available"})]))]),_:1},8,["spinning"])]),_:1})]),_:1},8,["activeKey"])])):H("",!0)]),v(A).expanded&&!v(ee)?(_(),O("div",{key:1,class:"mouse-sensor",ref_key:"resizeHandle",ref:ce,title:v(ie)("dragToResizePanel")},[m(v(Jn))],8,ms)):H("",!0)],34)}}});const Ns=ut(ys,[["__scopeId","data-v-006d4d7c"]]),bs={key:0,class:"float-panel"},$s={key:0,class:"select-actions"},Es={key:1},ws=ct({__name:"MultiSelectKeep",props:{show:{type:Boolean}},emits:["selectAll","reverseSelect","clearAllSelected"],setup(e,{emit:t}){const n=Ge(),i=()=>{t("clearAllSelected"),n.keepMultiSelect=!1},l=()=>{n.keepMultiSelect=!0};return(p,o)=>{const r=Fe;return p.show?(_(),O("div",bs,[v(n).keepMultiSelect?(_(),O("div",$s,[m(r,{size:"small",onClick:o[0]||(o[0]=d=>t("selectAll"))},{default:k(()=>[N(w(p.$t("select-all")),1)]),_:1}),m(r,{size:"small",onClick:o[1]||(o[1]=d=>t("reverseSelect"))},{default:k(()=>[N(w(p.$t("rerverse-select")),1)]),_:1}),m(r,{size:"small",onClick:o[2]||(o[2]=d=>t("clearAllSelected"))},{default:k(()=>[N(w(p.$t("clear-all-selected")),1)]),_:1}),m(r,{size:"small",onClick:i},{default:k(()=>[N(w(p.$t("exit")),1)]),_:1})])):(_(),O("div",Es,[m(r,{size:"small",type:"primary",onClick:l},{default:k(()=>[N(w(p.$t("keep-multi-selected")),1)]),_:1})]))])):H("",!0)}}});const Is=ut(ws,[["__scopeId","data-v-b04c3508"]]);export{zs as L,Is as M,Ds as R,Ns as f};
diff --git a/vue/dist/assets/MultiSelectKeep-5059400f.css b/vue/dist/assets/MultiSelectKeep-5059400f.css
new file mode 100644
index 0000000..1da1fb8
--- /dev/null
+++ b/vue/dist/assets/MultiSelectKeep-5059400f.css
@@ -0,0 +1 @@
+.exif-browser[data-v-b913e528]{display:flex;flex-direction:column}.exif-browser .exif-header[data-v-b913e528]{display:flex;align-items:center;justify-content:space-between;padding:8px;background:var(--zp-secondary-variant-background);border-radius:4px;margin-bottom:8px}.exif-browser .exif-header .exif-path[data-v-b913e528]{display:flex;align-items:center;flex:1;overflow:hidden;white-space:nowrap}.exif-browser .exif-header .exif-path .path-item[data-v-b913e528]{padding:2px 4px;border-radius:2px}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-b913e528]{cursor:pointer;color:var(--zp-primary)}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-b913e528]:hover{background:var(--zp-secondary)}.exif-browser .exif-header .exif-path .path-separator[data-v-b913e528]{color:var(--zp-secondary);margin:0 4px}.exif-browser .exif-content .exif-item[data-v-b913e528]{display:flex;align-items:flex-start;padding:4px 8px;border-bottom:1px solid var(--zp-secondary)}.exif-browser .exif-content .exif-item[data-v-b913e528]:hover{background:var(--zp-secondary-variant-background)}.exif-browser .exif-content .exif-item .exif-key[data-v-b913e528]{flex:0 0 120px;font-weight:600;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value[data-v-b913e528]{flex:1;display:flex;align-items:flex-start;gap:4px;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-b913e528]{flex:1;white-space:pre-wrap}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-b913e528] code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;line-height:1.5;background:transparent;padding:0}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-b913e528]{padding:0 4px;color:var(--zp-luminous)}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-b913e528]:hover{color:var(--zp-primary)}.exif-browser .exif-content .exif-simple[data-v-b913e528]{padding:8px;white-space:pre;color:var(--zp-primary)}.full-screen-menu[data-v-006d4d7c]{position:fixed;z-index:9999;background:var(--zp-primary-background);padding:8px 16px;box-shadow:0 0 4px var(--zp-secondary);border-radius:4px}.full-screen-menu .tags-container[data-v-006d4d7c]{margin:4px 0}.full-screen-menu .tags-container .tag[data-v-006d4d7c]{margin-right:4px;margin-bottom:4px;padding:2px 16px;border-radius:4px;display:inline-block;cursor:pointer;font-weight:700;transition:.5s all ease;border:2px solid var(--tag-color);color:var(--tag-color);background:var(--zp-primary-background);user-select:none}.full-screen-menu .tags-container .tag.selected[data-v-006d4d7c]{background:var(--tag-color);color:#fff}.full-screen-menu .container[data-v-006d4d7c]{height:100%;display:flex;overflow:hidden;flex-direction:column}.full-screen-menu .gen-info[data-v-006d4d7c]{flex:1;word-break:break-all;white-space:pre-line;overflow:auto;z-index:1;padding-top:4px;position:relative}.full-screen-menu .gen-info code[data-v-006d4d7c]{font-size:.9em;display:block;padding:4px;background:var(--zp-primary-background);border-radius:4px;margin-right:20px;white-space:pre-wrap;word-break:break-word;line-height:1.78em}.full-screen-menu .gen-info code[data-v-006d4d7c] .natural-text{margin:.5em 0;line-height:1.6em;text-align:justify;color:var(--zp-primary)}.full-screen-menu .gen-info code[data-v-006d4d7c] .short-tag{word-break:break-all;white-space:nowrap}.full-screen-menu .gen-info code[data-v-006d4d7c] span.tag{background:var(--zp-secondary-variant-background);color:var(--zp-primary);padding:2px 4px;border-radius:6px;margin-right:6px;margin-top:4px;line-height:1.3em;display:inline-block}.full-screen-menu .gen-info code[data-v-006d4d7c] .has-parentheses.tag{background:rgba(255,100,100,.14)}.full-screen-menu .gen-info code[data-v-006d4d7c] span.tag:hover{background:rgba(120,0,0,.15)}.full-screen-menu .gen-info table[data-v-006d4d7c]{font-size:1em;border-radius:4px;border-collapse:separate;margin-bottom:3em}.full-screen-menu .gen-info table tr td[data-v-006d4d7c]:first-child{white-space:nowrap;vertical-align:top}.full-screen-menu .gen-info table.extra-meta-table .extra-meta-value[data-v-006d4d7c]{display:block;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.85em;background:var(--zp-secondary-variant-background);padding:8px;border-radius:4px}.full-screen-menu .gen-info table td[data-v-006d4d7c]{padding-right:14px;padding-left:4px;border-bottom:1px solid var(--zp-secondary);border-collapse:collapse}.full-screen-menu .gen-info .info-tags .info-tag[data-v-006d4d7c]{display:inline-block;overflow:hidden;border-radius:4px;margin-right:8px;border:2px solid var(--zp-primary)}.full-screen-menu .gen-info .info-tags .name[data-v-006d4d7c]{background-color:var(--zp-primary);color:var(--zp-primary-background);padding:4px;border-bottom-right-radius:4px}.full-screen-menu .gen-info .info-tags .value[data-v-006d4d7c]{padding:4px}.full-screen-menu.unset-size[data-v-006d4d7c]{width:unset!important;height:unset!important}.full-screen-menu .mouse-sensor[data-v-006d4d7c]{position:absolute;bottom:0;right:0;transform:rotate(90deg);cursor:se-resize;z-index:1;background:var(--zp-primary-background);border-radius:2px}.full-screen-menu .mouse-sensor>*[data-v-006d4d7c]{font-size:18px;padding:4px}.full-screen-menu .action-bar[data-v-006d4d7c]{display:flex;align-items:center;user-select:none;gap:4px}.full-screen-menu .action-bar .icon[data-v-006d4d7c]{font-size:1.5em;padding:2px 4px;border-radius:4px}.full-screen-menu .action-bar .icon[data-v-006d4d7c]:hover{background:var(--zp-secondary-variant-background)}.full-screen-menu .action-bar>*[data-v-006d4d7c]{flex-wrap:wrap}.full-screen-menu.lr[data-v-006d4d7c]{top:var(--4e261acc)!important;right:0!important;bottom:0!important;left:100vw!important;height:unset!important;width:var(--5c73a50d)!important;transition:left ease .3s}.full-screen-menu.lr.always-on[data-v-006d4d7c],.full-screen-menu.lr.mouse-in[data-v-006d4d7c]{left:var(--243d3811)!important}.tag-alpha-item[data-v-006d4d7c]{display:flex;margin-top:4px}.tag-alpha-item h4[data-v-006d4d7c]{width:32px;flex-shrink:0}.sort-tag-switch[data-v-006d4d7c]{display:inline-block;padding-right:16px;padding-left:8px;cursor:pointer;user-select:none}.sort-tag-switch span[data-v-006d4d7c]{transition:all ease .3s;transform:scale(1.2)}.sort-tag-switch:hover span[data-v-006d4d7c]{transform:scale(1.3)}.lr-layout-control[data-v-006d4d7c]{display:flex;align-items:center;gap:16px;padding:4px 8px;flex-wrap:wrap;border-radius:2px;border-left:3px solid var(--zp-luminous);background-color:var(--zp-secondary-background)}.lr-layout-control .ctrl-item[data-v-006d4d7c]{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.select-actions[data-v-b04c3508]>:not(:last-child){margin-right:4px}.float-panel[data-v-b04c3508]{position:absolute;bottom:32px;right:32px;background:var(--zp-primary-background);border-radius:4px;z-index:1000;padding:8px;box-shadow:0 0 4px var(--zp-secondary)}
diff --git a/vue/dist/assets/MultiSelectKeep-b9e69497.css b/vue/dist/assets/MultiSelectKeep-b9e69497.css
deleted file mode 100644
index 18b5ce0..0000000
--- a/vue/dist/assets/MultiSelectKeep-b9e69497.css
+++ /dev/null
@@ -1 +0,0 @@
-.exif-browser[data-v-769039d4]{display:flex;flex-direction:column}.exif-browser .exif-header[data-v-769039d4]{display:flex;align-items:center;justify-content:space-between;padding:8px;background:var(--zp-secondary-variant-background);border-radius:4px;margin-bottom:8px}.exif-browser .exif-header .exif-path[data-v-769039d4]{display:flex;align-items:center;flex:1;overflow:hidden;white-space:nowrap}.exif-browser .exif-header .exif-path .path-item[data-v-769039d4]{padding:2px 4px;border-radius:2px}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-769039d4]{cursor:pointer;color:var(--zp-primary)}.exif-browser .exif-header .exif-path .path-item.clickable[data-v-769039d4]:hover{background:var(--zp-secondary)}.exif-browser .exif-header .exif-path .path-separator[data-v-769039d4]{color:var(--zp-secondary);margin:0 4px}.exif-browser .exif-content .exif-item[data-v-769039d4]{display:flex;align-items:flex-start;padding:4px 8px;border-bottom:1px solid var(--zp-secondary)}.exif-browser .exif-content .exif-item[data-v-769039d4]:hover{background:var(--zp-secondary-variant-background)}.exif-browser .exif-content .exif-item .exif-key[data-v-769039d4]{flex:0 0 120px;font-weight:600;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value[data-v-769039d4]{flex:1;display:flex;align-items:flex-start;gap:4px;color:var(--zp-primary);word-break:break-all}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-769039d4]{flex:1;white-space:pre-wrap}.exif-browser .exif-content .exif-item .exif-value .value-text[data-v-769039d4] code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.9em;line-height:1.5;background:transparent;padding:0}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-769039d4]{padding:0 4px;color:var(--zp-luminous)}.exif-browser .exif-content .exif-item .exif-value .ant-btn-text[data-v-769039d4]:hover{color:var(--zp-primary)}.exif-browser .exif-content .exif-simple[data-v-769039d4]{padding:8px;white-space:pre;color:var(--zp-primary)}.full-screen-menu[data-v-d0c05939]{position:fixed;z-index:9999;background:var(--zp-primary-background);padding:8px 16px;box-shadow:0 0 4px var(--zp-secondary);border-radius:4px}.full-screen-menu .tags-container[data-v-d0c05939]{margin:4px 0}.full-screen-menu .tags-container .tag[data-v-d0c05939]{margin-right:4px;margin-bottom:4px;padding:2px 16px;border-radius:4px;display:inline-block;cursor:pointer;font-weight:700;transition:.5s all ease;border:2px solid var(--tag-color);color:var(--tag-color);background:var(--zp-primary-background);user-select:none}.full-screen-menu .tags-container .tag.selected[data-v-d0c05939]{background:var(--tag-color);color:#fff}.full-screen-menu .container[data-v-d0c05939]{height:100%;display:flex;overflow:hidden;flex-direction:column}.full-screen-menu .gen-info[data-v-d0c05939]{flex:1;word-break:break-all;white-space:pre-line;overflow:auto;z-index:1;padding-top:4px;position:relative}.full-screen-menu .gen-info code[data-v-d0c05939]{font-size:.9em;display:block;padding:4px;background:var(--zp-primary-background);border-radius:4px;margin-right:20px;white-space:pre-wrap;word-break:break-word;line-height:1.78em}.full-screen-menu .gen-info code[data-v-d0c05939] .natural-text{margin:.5em 0;line-height:1.6em;text-align:justify;color:var(--zp-primary)}.full-screen-menu .gen-info code[data-v-d0c05939] .short-tag{word-break:break-all;white-space:nowrap}.full-screen-menu .gen-info code[data-v-d0c05939] span.tag{background:var(--zp-secondary-variant-background);color:var(--zp-primary);padding:2px 4px;border-radius:6px;margin-right:6px;margin-top:4px;line-height:1.3em;display:inline-block}.full-screen-menu .gen-info code[data-v-d0c05939] .has-parentheses.tag{background:rgba(255,100,100,.14)}.full-screen-menu .gen-info code[data-v-d0c05939] span.tag:hover{background:rgba(120,0,0,.15)}.full-screen-menu .gen-info table[data-v-d0c05939]{font-size:1em;border-radius:4px;border-collapse:separate;margin-bottom:3em}.full-screen-menu .gen-info table tr td[data-v-d0c05939]:first-child{white-space:nowrap;vertical-align:top}.full-screen-menu .gen-info table.extra-meta-table .extra-meta-value[data-v-d0c05939]{display:block;max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.85em;background:var(--zp-secondary-variant-background);padding:8px;border-radius:4px}.full-screen-menu .gen-info table td[data-v-d0c05939]{padding-right:14px;padding-left:4px;border-bottom:1px solid var(--zp-secondary);border-collapse:collapse}.full-screen-menu .gen-info .info-tags .info-tag[data-v-d0c05939]{display:inline-block;overflow:hidden;border-radius:4px;margin-right:8px;border:2px solid var(--zp-primary)}.full-screen-menu .gen-info .info-tags .name[data-v-d0c05939]{background-color:var(--zp-primary);color:var(--zp-primary-background);padding:4px;border-bottom-right-radius:4px}.full-screen-menu .gen-info .info-tags .value[data-v-d0c05939]{padding:4px}.full-screen-menu.unset-size[data-v-d0c05939]{width:unset!important;height:unset!important}.full-screen-menu .mouse-sensor[data-v-d0c05939]{position:absolute;bottom:0;right:0;transform:rotate(90deg);cursor:se-resize;z-index:1;background:var(--zp-primary-background);border-radius:2px}.full-screen-menu .mouse-sensor>*[data-v-d0c05939]{font-size:18px;padding:4px}.full-screen-menu .action-bar[data-v-d0c05939]{display:flex;align-items:center;user-select:none;gap:4px}.full-screen-menu .action-bar .icon[data-v-d0c05939]{font-size:1.5em;padding:2px 4px;border-radius:4px}.full-screen-menu .action-bar .icon[data-v-d0c05939]:hover{background:var(--zp-secondary-variant-background)}.full-screen-menu .action-bar>*[data-v-d0c05939]{flex-wrap:wrap}.full-screen-menu.lr[data-v-d0c05939]{top:var(--027025a1)!important;right:0!important;bottom:0!important;left:100vw!important;height:unset!important;width:var(--31f63254)!important;transition:left ease .3s}.full-screen-menu.lr.always-on[data-v-d0c05939],.full-screen-menu.lr.mouse-in[data-v-d0c05939]{left:var(--18c105d0)!important}.tag-alpha-item[data-v-d0c05939]{display:flex;margin-top:4px}.tag-alpha-item h4[data-v-d0c05939]{width:32px;flex-shrink:0}.sort-tag-switch[data-v-d0c05939]{display:inline-block;padding-right:16px;padding-left:8px;cursor:pointer;user-select:none}.sort-tag-switch span[data-v-d0c05939]{transition:all ease .3s;transform:scale(1.2)}.sort-tag-switch:hover span[data-v-d0c05939]{transform:scale(1.3)}.lr-layout-control[data-v-d0c05939]{display:flex;align-items:center;gap:16px;padding:4px 8px;flex-wrap:wrap;border-radius:2px;border-left:3px solid var(--zp-luminous);background-color:var(--zp-secondary-background)}.lr-layout-control .ctrl-item[data-v-d0c05939]{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.select-actions[data-v-b04c3508]>:not(:last-child){margin-right:4px}.float-panel[data-v-b04c3508]{position:absolute;bottom:32px;right:32px;background:var(--zp-primary-background);border-radius:4px;z-index:1000;padding:8px;box-shadow:0 0 4px var(--zp-secondary)}
diff --git a/vue/dist/assets/SubstrSearch-41ae1267.js b/vue/dist/assets/SubstrSearch-90ce0096.js
similarity index 93%
rename from vue/dist/assets/SubstrSearch-41ae1267.js
rename to vue/dist/assets/SubstrSearch-90ce0096.js
index 93674d9..11cf0a2 100644
--- a/vue/dist/assets/SubstrSearch-41ae1267.js
+++ b/vue/dist/assets/SubstrSearch-90ce0096.js
@@ -1 +1 @@
-import{c as a,A as Fe,d as Be,c0 as Ue,$ as b,at as Ee,c4 as te,v as He,c6 as Pe,c7 as Ge,ad as Ke,ag as je,ae as qe,c5 as ae,c8 as Le,r as Ne,o as f,k as B,y as t,z as e,l as d,m as o,t as i,x as y,p as k,B as U,ci as Je,Q as O,C as le,E as We,O as Qe,n as Xe,U as se,V as Ye,cj as Ze,R as et,W as ne,cc as tt,T as at,aB as lt,aC as st,ck as nt,q as it}from"./index-7225f789.js";import{S as ot}from"./index-f51c8eac.js";/* empty css */import"./index-cde54501.js";/* empty css */import"./index-3e70eb76.js";import{s as rt,F as dt}from"./FileItem-d91e976e.js";import{M as ut,L as ct,R as pt,f as ft}from"./MultiSelectKeep-7de9332b.js";import{c as vt,u as mt}from"./hook-af7b931d.js";import{g as gt,o as _t}from"./index-dc3e0a9f.js";import{f as M,H as ie,_ as ht,a as yt}from"./searchHistory-c2370df2.js";import"./index-55ee7fd8.js";import"./index-f79230f7.js";import"./index-9fffc74f.js";import"./index-5b20e901.js";import"./index-02b34fbc.js";import"./shortcut-afd6d8ae.js";import"./_isIterateeCall-3d9f4398.js";var kt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M952 474H829.8C812.5 327.6 696.4 211.5 550 194.2V72c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v122.2C327.6 211.5 211.5 327.6 194.2 474H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h122.2C211.5 696.4 327.6 812.5 474 829.8V952c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V829.8C696.4 812.5 812.5 696.4 829.8 550H952c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM512 756c-134.8 0-244-109.2-244-244s109.2-244 244-244 244 109.2 244 244-109.2 244-244 244z"}},{tag:"path",attrs:{d:"M512 392c-32.1 0-62.1 12.4-84.8 35.2-22.7 22.7-35.2 52.7-35.2 84.8s12.5 62.1 35.2 84.8C449.9 619.4 480 632 512 632s62.1-12.5 84.8-35.2C619.4 574.1 632 544 632 512s-12.5-62.1-35.2-84.8A118.57 118.57 0 00512 392z"}}]},name:"aim",theme:"outlined"};const bt=kt;function oe(u){for(var c=1;c=100?"success":c||"normal"}),f=function(){var v=t.showInfo,h=t.format,d=t.type,p=t.percent,g=t.title,y=Gc(t);if(!v)return null;var m,_=h||(a==null?void 0:a.format)||function(x){return"".concat(x,"%")},S=d==="line";return h||a!=null&&a.format||u.value!=="exception"&&u.value!=="success"?m=_(ro(p),ro(y)):u.value==="exception"?m=S?mt(iE,null,null):mt(oE,null,null):u.value==="success"&&(m=S?mt(sE,null,null):mt(lE,null,null)),mt("span",{class:"".concat(i.value,"-text"),title:g===void 0&&typeof m=="string"?m:void 0},[m])};return function(){var c=t.type,v=t.steps,h=t.strokeColor,d=t.title,p=f(),g;c==="line"?g=v?mt(YE,Re(Re({},t),{},{strokeColor:typeof h=="string"?h:void 0,prefixCls:i.value,steps:v}),{default:function(){return[p]}}):mt(NE,Re(Re({},t),{},{prefixCls:i.value}),{default:function(){return[p]}}):(c==="circle"||c==="dashboard")&&(g=mt($E,Re(Re({},t),{},{prefixCls:i.value}),{default:function(){return[p]}}));var y=Re(Re({},s.value),{},br({},"".concat(i.value,"-status-").concat(u.value),!0));return mt("div",{class:y,title:d},[g])}}}),XE=ZA(ZE);var qE={small:8,middle:16,large:24},KE=function(){return{prefixCls:String,size:{type:[String,Number,Array]},direction:Xl.oneOf(lu("horizontal","vertical")).def("horizontal"),align:Xl.oneOf(lu("start","end","center","baseline")),wrap:{type:Boolean,default:void 0}}};function jE(r){return typeof r=="string"?qE[r]:r||0}var JE=oi({compatConfig:{MODE:3},name:"ASpace",props:KE(),slots:["split"],setup:function(t,e){var a=e.slots,n=YA("space",t),i=n.prefixCls,o=n.space,s=n.direction,l=DE(),u=Ft(function(){var g,y,m;return(g=(y=t.size)!==null&&y!==void 0?y:(m=o.value)===null||m===void 0?void 0:m.size)!==null&&g!==void 0?g:"small"}),f=Yt(),c=Yt();eo(u,function(){var g=(Array.isArray(u.value)?u.value:[u.value,u.value]).map(function(m){return jE(m)}),y=UA(g,2);f.value=y[0],c.value=y[1]},{immediate:!0});var v=Ft(function(){return t.align===void 0&&t.direction==="horizontal"?"center":t.align}),h=Ft(function(){var g;return uE(i.value,"".concat(i.value,"-").concat(t.direction),(g={},br(g,"".concat(i.value,"-rtl"),s.value==="rtl"),br(g,"".concat(i.value,"-align-").concat(v.value),v.value),g))}),d=Ft(function(){return s.value==="rtl"?"marginLeft":"marginRight"}),p=Ft(function(){var g={};return l.value&&(g.columnGap="".concat(f.value,"px"),g.rowGap="".concat(c.value,"px")),Re(Re({},g),t.wrap&&{flexWrap:"wrap",marginBottom:"".concat(-c.value,"px")})});return function(){var g,y,m=t.wrap,_=t.direction,S=_===void 0?"horizontal":_,x=(g=a.default)===null||g===void 0?void 0:g.call(a),b=fE(x),w=b.length;if(w===0)return null;var T=(y=a.split)===null||y===void 0?void 0:y.call(a),C="".concat(i.value,"-item"),M=f.value,D=w-1;return mt("div",{class:h.value,style:p.value},[b.map(function(I,L){var P=x.indexOf(I),R={};return l.value||(S==="vertical"?Le(o,s,void 0,i&&i[s]));else{const o=Object.keys(t);a=new Array(o.length);for(let s=0,l=o.length;sW?le(B,G,V,!0,!1,q):I(x,A,H,G,V,se,oe,ae,q)},K=(B,x,A,H,G,V,se,oe,ae)=>{let Q=0;const W=x.length;let q=B.length-1,ce=W-1;for(;Q<=q&&Q<=ce;){const ie=B[Q],de=x[Q]=ae?Zr(x[Q]):pr(x[Q]);if(Oa(ie,de))p(ie,de,A,null,G,V,se,oe,ae);else break;Q++}for(;Q<=q&&Q<=ce;){const ie=B[q],de=x[ce]=ae?Zr(x[ce]):pr(x[ce]);if(Oa(ie,de))p(ie,de,A,null,G,V,se,oe,ae);else break;q--,ce--}if(Q>q){if(Q<=ce){const ie=ce+1,de=ie