Improve fuzzy-search regexp function hint.

pull/431/head
zanllp 2023-09-23 11:02:24 +08:00
parent 5495f791be
commit 7ffc22fa22
24 changed files with 28 additions and 25 deletions

View File

@ -12,7 +12,7 @@ Promise.resolve().then(async () => {
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Infinite Image Browsing</title>
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-54d35579.js"></script>
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-b44dfcf8.js"></script>
<link rel="stylesheet" href="/infinite_image_browsing/fe-static/assets/index-896679b3.css">
</head>

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as t,o as a,m as r,c1 as n}from"./index-54d35579.js";const p=t({__name:"ImgSliPagePane",props:{paneIdx:{},tabIdx:{},left:{},right:{}},setup(o){return(e,s)=>(a(),r(n,{left:e.left,right:e.right},null,8,["left","right"]))}});export{p as default};
import{d as t,o as a,m as r,c1 as n}from"./index-b44dfcf8.js";const p=t({__name:"ImgSliPagePane",props:{paneIdx:{},tabIdx:{},left:{},right:{}},setup(o){return(e,s)=>(a(),r(n,{left:e.left,right:e.right},null,8,["left","right"]))}});export{p as default};

View File

@ -1 +1 @@
import{d as q,l as Q,ax as W,o as r,y as h,c as l,n as a,r as e,s as y,p as b,t as X,v as S,x as j,m as M,L as H,C as m,N as T,Q as J,R as K,X as Y}from"./index-54d35579.js";import{L as Z,R as ee,f as te,S as ie}from"./fullScreenContextMenu-9e3be5a3.js";import{g as se,F as le}from"./FileItem-ced5f921.js";import{g as ne}from"./db-8d04be33.js";import{c as ae,u as oe}from"./hook-9c9eb74d.js";import"./shortcut-dae64d46.js";const re={class:"hint"},de={key:1,class:"preview-switch"},ce=q({__name:"MatchedImageGrid",props:{tabIdx:{},paneIdx:{},selectedTagIds:{},id:{}},setup(V){const u=V,p=ae(c=>ne(u.selectedTagIds,c)),{queue:D,images:i,onContextMenuClickU:g,stackViewEl:F,previewIdx:n,previewing:f,onPreviewVisibleChange:z,previewImgMove:v,canPreview:I,itemSize:w,gridItems:$,showGenInfo:o,imageGenInfo:k,q:B,multiSelectedIdxs:G,onFileItemClick:N,scroller:x,showMenuIdx:d,onFileDragStart:R,onFileDragEnd:E,cellWidth:P,onScroll:C}=oe(p);return Q(()=>u.selectedTagIds,async()=>{await p.reset(),await W(),x.value.scrollToItem(0),C()},{immediate:!0}),(c,t)=>{const U=J,A=K,L=ie;return r(),h("div",{class:"container",ref_key:"stackViewEl",ref:F},[l(L,{size:"large",spinning:!e(D).isIdle},{default:a(()=>[l(A,{visible:e(o),"onUpdate:visible":t[1]||(t[1]=s=>y(o)?o.value=s:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=s=>o.value=!1)},{cancelText:a(()=>[]),default:a(()=>[l(U,{active:"",loading:!e(B).isIdle},{default:a(()=>[b("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=s=>e(X)(e(k)))},[b("div",re,S(c.$t("doubleClickToCopy")),1),j(" "+S(e(k)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),e(i)?(r(),M(e(se),{key:0,ref_key:"scroller",ref:x,class:"file-list",items:e(i),"item-size":e(w).first,"key-field":"fullpath","item-secondary-size":e(w).second,gridItems:e($),onScroll:e(C)},{default:a(({item:s,index:_})=>[l(le,{idx:_,file:s,"cell-width":e(P),"show-menu-idx":e(d),"onUpdate:showMenuIdx":t[3]||(t[3]=O=>y(d)?d.value=O:null),onDragstart:e(R),onDragend:e(E),onFileItemClick:e(N),"full-screen-preview-image-url":e(i)[e(n)]?e(H)(e(i)[e(n)]):"",selected:e(G).includes(_),onContextMenuClick:e(g),onPreviewVisibleChange:e(z)},null,8,["idx","file","cell-width","show-menu-idx","onDragstart","onDragend","onFileItemClick","full-screen-preview-image-url","selected","onContextMenuClick","onPreviewVisibleChange"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):m("",!0),e(f)?(r(),h("div",de,[l(e(Z),{onClick:t[4]||(t[4]=s=>e(v)("prev")),class:T({disable:!e(I)("prev")})},null,8,["class"]),l(e(ee),{onClick:t[5]||(t[5]=s=>e(v)("next")),class:T({disable:!e(I)("next")})},null,8,["class"])])):m("",!0)]),_:1},8,["spinning"]),e(f)&&e(i)&&e(i)[e(n)]?(r(),M(te,{key:0,file:e(i)[e(n)],idx:e(n),onContextMenuClick:e(g)},null,8,["file","idx","onContextMenuClick"])):m("",!0)],512)}}});const Ie=Y(ce,[["__scopeId","data-v-6cc08968"]]);export{Ie as default};
import{d as q,l as Q,ax as W,o as r,y as h,c as l,n as a,r as e,s as y,p as b,t as X,v as S,x as j,m as M,L as H,C as m,N as T,Q as J,R as K,X as Y}from"./index-b44dfcf8.js";import{L as Z,R as ee,f as te,S as ie}from"./fullScreenContextMenu-67c7b1b8.js";import{g as se,F as le}from"./FileItem-c84a61c8.js";import{g as ne}from"./db-f71a84c3.js";import{c as ae,u as oe}from"./hook-8fa8389e.js";import"./shortcut-0fe96b62.js";const re={class:"hint"},de={key:1,class:"preview-switch"},ce=q({__name:"MatchedImageGrid",props:{tabIdx:{},paneIdx:{},selectedTagIds:{},id:{}},setup(V){const u=V,p=ae(c=>ne(u.selectedTagIds,c)),{queue:D,images:i,onContextMenuClickU:g,stackViewEl:F,previewIdx:n,previewing:f,onPreviewVisibleChange:z,previewImgMove:v,canPreview:I,itemSize:w,gridItems:$,showGenInfo:o,imageGenInfo:k,q:B,multiSelectedIdxs:G,onFileItemClick:N,scroller:x,showMenuIdx:d,onFileDragStart:R,onFileDragEnd:E,cellWidth:P,onScroll:C}=oe(p);return Q(()=>u.selectedTagIds,async()=>{await p.reset(),await W(),x.value.scrollToItem(0),C()},{immediate:!0}),(c,t)=>{const U=J,A=K,L=ie;return r(),h("div",{class:"container",ref_key:"stackViewEl",ref:F},[l(L,{size:"large",spinning:!e(D).isIdle},{default:a(()=>[l(A,{visible:e(o),"onUpdate:visible":t[1]||(t[1]=s=>y(o)?o.value=s:null),width:"70vw","mask-closable":"",onOk:t[2]||(t[2]=s=>o.value=!1)},{cancelText:a(()=>[]),default:a(()=>[l(U,{active:"",loading:!e(B).isIdle},{default:a(()=>[b("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[0]||(t[0]=s=>e(X)(e(k)))},[b("div",re,S(c.$t("doubleClickToCopy")),1),j(" "+S(e(k)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),e(i)?(r(),M(e(se),{key:0,ref_key:"scroller",ref:x,class:"file-list",items:e(i),"item-size":e(w).first,"key-field":"fullpath","item-secondary-size":e(w).second,gridItems:e($),onScroll:e(C)},{default:a(({item:s,index:_})=>[l(le,{idx:_,file:s,"cell-width":e(P),"show-menu-idx":e(d),"onUpdate:showMenuIdx":t[3]||(t[3]=O=>y(d)?d.value=O:null),onDragstart:e(R),onDragend:e(E),onFileItemClick:e(N),"full-screen-preview-image-url":e(i)[e(n)]?e(H)(e(i)[e(n)]):"",selected:e(G).includes(_),onContextMenuClick:e(g),onPreviewVisibleChange:e(z)},null,8,["idx","file","cell-width","show-menu-idx","onDragstart","onDragend","onFileItemClick","full-screen-preview-image-url","selected","onContextMenuClick","onPreviewVisibleChange"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):m("",!0),e(f)?(r(),h("div",de,[l(e(Z),{onClick:t[4]||(t[4]=s=>e(v)("prev")),class:T({disable:!e(I)("prev")})},null,8,["class"]),l(e(ee),{onClick:t[5]||(t[5]=s=>e(v)("next")),class:T({disable:!e(I)("next")})},null,8,["class"])])):m("",!0)]),_:1},8,["spinning"]),e(f)&&e(i)&&e(i)[e(n)]?(r(),M(te,{key:0,file:e(i)[e(n)],idx:e(n),onContextMenuClick:e(g)},null,8,["file","idx","onContextMenuClick"])):m("",!0)],512)}}});const Ie=Y(ce,[["__scopeId","data-v-6cc08968"]]);export{Ie as default};

View File

@ -1 +0,0 @@
.regex-icon[data-v-64c2d73c]{user-select:none;padding:4px;margin:0 4px;cursor:pointer;border:1px solid var(--zp-border);border-radius:4px}.regex-icon img[data-v-64c2d73c]{height:1.5em}.regex-icon[data-v-64c2d73c]:hover{background:var(--zp-border)}.regex-icon.selected[data-v-64c2d73c]{background:var(--primary-color-1);border:1px solid var(--primary-color)}.search-bar[data-v-64c2d73c]{padding:8px;display:flex}.preview-switch[data-v-64c2d73c]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-64c2d73c]{color:#fff;margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-64c2d73c]{opacity:0;pointer-events:none;cursor:none}.container[data-v-64c2d73c]{background:var(--zp-secondary-background)}.container .file-list[data-v-64c2d73c]{list-style:none;padding:8px;height:100%;overflow:auto;height:var(--pane-max-height);width:100%}

View File

@ -0,0 +1 @@
import{d as se,$ as x,aw as ne,bQ as ae,bP as U,o as i,y as b,q as A,c as o,r as e,bT as le,p as m,N as y,m as g,n as r,x as I,v as f,C as w,s as T,t as ie,L as oe,ax as re,al as de,ai as ue,U as ce,V as pe,Q as ve,R as me,X as ge}from"./index-b44dfcf8.js";import{L as fe,R as we,f as ke,S as xe}from"./fullScreenContextMenu-67c7b1b8.js";/* empty css */import{g as be,F as ye}from"./FileItem-c84a61c8.js";import{b as K,c as Ie,f as N,u as Ce}from"./db-f71a84c3.js";import{c as he,u as _e}from"./hook-8fa8389e.js";import"./shortcut-0fe96b62.js";const Se="/infinite_image_browsing/fe-static/assets/regex-a447f877.svg",Me=["src"],$e={class:"hint"},ze={key:1,class:"preview-switch"},De=se({__name:"SubstrSearch",setup(Be){const p=x(!1),u=x(""),C=he(n=>p.value?N("",n,u.value):N(u.value,n)),{queue:d,images:l,onContextMenuClickU:h,stackViewEl:P,previewIdx:c,previewing:_,onPreviewVisibleChange:q,previewImgMove:S,canPreview:M,itemSize:$,gridItems:L,showGenInfo:v,imageGenInfo:z,q:G,multiSelectedIdxs:O,onFileItemClick:Q,scroller:D,showMenuIdx:k,onFileDragStart:H,onFileDragEnd:W,cellWidth:X,onScroll:B}=_e(C),s=x();ne(async()=>{s.value=await K(),s.value.img_count&&s.value.expired&&V()});const V=ae(()=>d.pushAction(async()=>(await Ce(),s.value=await K(),s.value)).res),E=async()=>{await C.reset({refetch:!0}),await re(),B(),D.value.scrollToItem(0),l.value.length||de.info(ue("fuzzy-search-noResults"))};U("returnToIIB",async()=>{const n=await d.pushAction(Ie).res;s.value.expired=n.expired}),U("searchIndexExpired",()=>s.value&&(s.value.expired=!0));const j=()=>{p.value=!p.value};return(n,t)=>{const J=ce,F=pe,Y=ve,Z=me,ee=xe;return i(),b("div",{class:"container",ref_key:"stackViewEl",ref:P},[s.value?(i(),b("div",{key:0,class:"search-bar",onKeydown:t[2]||(t[2]=A(()=>{},["stop"]))},[o(J,{value:u.value,"onUpdate:value":t[0]||(t[0]=a=>u.value=a),placeholder:n.$t("fuzzy-search-placeholder")+" "+n.$t("regexSearchEnabledHint"),disabled:!e(d).isIdle,onKeydown:le(E,["enter"]),"allow-clear":""},null,8,["value","placeholder","disabled","onKeydown"]),m("div",{class:y(["regex-icon",{selected:p.value}]),onKeydown:t[1]||(t[1]=A(()=>{},["stop"])),onClick:j,title:"Use Regular Expression"},[m("img",{src:e(Se)},null,8,Me)],34),s.value.expired||!s.value.img_count?(i(),g(F,{key:0,onClick:e(V),loading:!e(d).isIdle,type:"primary"},{default:r(()=>[I(f(s.value.img_count===0?n.$t("generateIndexHint"):n.$t("UpdateIndex")),1)]),_:1},8,["onClick","loading"])):(i(),g(F,{key:1,type:"primary",onClick:E,loading:!e(d).isIdle,disabled:!u.value},{default:r(()=>[I(f(n.$t("search")),1)]),_:1},8,["loading","disabled"]))],32)):w("",!0),o(ee,{size:"large",spinning:!e(d).isIdle},{default:r(()=>[o(Z,{visible:e(v),"onUpdate:visible":t[4]||(t[4]=a=>T(v)?v.value=a:null),width:"70vw","mask-closable":"",onOk:t[5]||(t[5]=a=>v.value=!1)},{cancelText:r(()=>[]),default:r(()=>[o(Y,{active:"",loading:!e(G).isIdle},{default:r(()=>[m("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:t[3]||(t[3]=a=>e(ie)(e(z)))},[m("div",$e,f(n.$t("doubleClickToCopy")),1),I(" "+f(e(z)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),e(l)?(i(),g(e(be),{key:0,ref_key:"scroller",ref:D,class:"file-list",items:e(l),"item-size":e($).first,"key-field":"fullpath","item-secondary-size":e($).second,gridItems:e(L),onScroll:e(B)},{default:r(({item:a,index:R})=>[o(ye,{idx:R,file:a,"show-menu-idx":e(k),"onUpdate:showMenuIdx":t[6]||(t[6]=te=>T(k)?k.value=te:null),onFileItemClick:e(Q),"full-screen-preview-image-url":e(l)[e(c)]?e(oe)(e(l)[e(c)]):"","cell-width":e(X),selected:e(O).includes(R),onContextMenuClick:e(h),onDragstart:e(H),onDragend:e(W),onPreviewVisibleChange:e(q)},null,8,["idx","file","show-menu-idx","onFileItemClick","full-screen-preview-image-url","cell-width","selected","onContextMenuClick","onDragstart","onDragend","onPreviewVisibleChange"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):w("",!0),e(_)?(i(),b("div",ze,[o(e(fe),{onClick:t[7]||(t[7]=a=>e(S)("prev")),class:y({disable:!e(M)("prev")})},null,8,["class"]),o(e(we),{onClick:t[8]||(t[8]=a=>e(S)("next")),class:y({disable:!e(M)("next")})},null,8,["class"])])):w("",!0)]),_:1},8,["spinning"]),e(_)&&e(l)&&e(l)[e(c)]?(i(),g(ke,{key:1,file:e(l)[e(c)],idx:e(c),onContextMenuClick:e(h)},null,8,["file","idx","onContextMenuClick"])):w("",!0)],512)}}});const Ke=ge(De,[["__scopeId","data-v-a1cb02be"]]);export{Ke as default};

View File

@ -1 +0,0 @@
import{d as te,$ as x,aw as ne,bQ as le,bP as E,o as i,y,q as A,c as o,r as e,bT as ae,p as m,N as I,m as g,n as r,x as C,v as f,C as w,s as T,t as ie,L as oe,ax as re,al as de,ai as ue,U as ce,V as pe,Q as ve,R as me,X as ge}from"./index-54d35579.js";import{L as fe,R as we,f as ke,S as xe}from"./fullScreenContextMenu-9e3be5a3.js";/* empty css */import{g as ye,F as Ie}from"./FileItem-ced5f921.js";import{b as K,c as Ce,f as N,u as be}from"./db-8d04be33.js";import{c as _e,u as he}from"./hook-9c9eb74d.js";import"./shortcut-dae64d46.js";const Se="/infinite_image_browsing/fe-static/assets/regex-a447f877.svg",Me=["src"],ze={class:"hint"},De={key:1,class:"preview-switch"},$e=te({__name:"SubstrSearch",setup(Be){const p=x(!1),u=x(""),b=_e(n=>p.value?N("",n,u.value):N(u.value,n)),{queue:d,images:a,onContextMenuClickU:_,stackViewEl:P,previewIdx:c,previewing:h,onPreviewVisibleChange:q,previewImgMove:S,canPreview:M,itemSize:z,gridItems:L,showGenInfo:v,imageGenInfo:D,q:G,multiSelectedIdxs:O,onFileItemClick:Q,scroller:$,showMenuIdx:k,onFileDragStart:H,onFileDragEnd:W,cellWidth:X,onScroll:B}=he(b),t=x();ne(async()=>{t.value=await K(),t.value.img_count&&t.value.expired&&V()});const V=le(()=>d.pushAction(async()=>(await be(),t.value=await K(),t.value)).res),F=async()=>{await b.reset({refetch:!0}),await re(),B(),$.value.scrollToItem(0),a.value.length||de.info(ue("fuzzy-search-noResults"))};E("returnToIIB",async()=>{const n=await d.pushAction(Ce).res;t.value.expired=n.expired}),E("searchIndexExpired",()=>t.value&&(t.value.expired=!0));const j=()=>{p.value=!p.value};return(n,s)=>{const J=ce,R=pe,Y=ve,Z=me,ee=xe;return i(),y("div",{class:"container",ref_key:"stackViewEl",ref:P},[t.value?(i(),y("div",{key:0,class:"search-bar",onKeydown:s[2]||(s[2]=A(()=>{},["stop"]))},[o(J,{value:u.value,"onUpdate:value":s[0]||(s[0]=l=>u.value=l),placeholder:n.$t("fuzzy-search-placeholder"),disabled:!e(d).isIdle,onKeydown:ae(F,["enter"]),"allow-clear":""},null,8,["value","placeholder","disabled","onKeydown"]),m("div",{class:I(["regex-icon",{selected:p.value}]),onKeydown:s[1]||(s[1]=A(()=>{},["stop"])),onClick:j,title:"Use Regular Expression"},[m("img",{src:e(Se)},null,8,Me)],34),t.value.expired||!t.value.img_count?(i(),g(R,{key:0,onClick:e(V),loading:!e(d).isIdle,type:"primary"},{default:r(()=>[C(f(t.value.img_count===0?n.$t("generateIndexHint"):n.$t("UpdateIndex")),1)]),_:1},8,["onClick","loading"])):(i(),g(R,{key:1,type:"primary",onClick:F,loading:!e(d).isIdle,disabled:!u.value},{default:r(()=>[C(f(n.$t("search")),1)]),_:1},8,["loading","disabled"]))],32)):w("",!0),o(ee,{size:"large",spinning:!e(d).isIdle},{default:r(()=>[o(Z,{visible:e(v),"onUpdate:visible":s[4]||(s[4]=l=>T(v)?v.value=l:null),width:"70vw","mask-closable":"",onOk:s[5]||(s[5]=l=>v.value=!1)},{cancelText:r(()=>[]),default:r(()=>[o(Y,{active:"",loading:!e(G).isIdle},{default:r(()=>[m("div",{style:{width:"100%","word-break":"break-all","white-space":"pre-line","max-height":"70vh",overflow:"auto"},onDblclick:s[3]||(s[3]=l=>e(ie)(e(D)))},[m("div",ze,f(n.$t("doubleClickToCopy")),1),C(" "+f(e(D)),1)],32)]),_:1},8,["loading"])]),_:1},8,["visible"]),e(a)?(i(),g(e(ye),{key:0,ref_key:"scroller",ref:$,class:"file-list",items:e(a),"item-size":e(z).first,"key-field":"fullpath","item-secondary-size":e(z).second,gridItems:e(L),onScroll:e(B)},{default:r(({item:l,index:U})=>[o(Ie,{idx:U,file:l,"show-menu-idx":e(k),"onUpdate:showMenuIdx":s[6]||(s[6]=se=>T(k)?k.value=se:null),onFileItemClick:e(Q),"full-screen-preview-image-url":e(a)[e(c)]?e(oe)(e(a)[e(c)]):"","cell-width":e(X),selected:e(O).includes(U),onContextMenuClick:e(_),onDragstart:e(H),onDragend:e(W),onPreviewVisibleChange:e(q)},null,8,["idx","file","show-menu-idx","onFileItemClick","full-screen-preview-image-url","cell-width","selected","onContextMenuClick","onDragstart","onDragend","onPreviewVisibleChange"])]),_:1},8,["items","item-size","item-secondary-size","gridItems","onScroll"])):w("",!0),e(h)?(i(),y("div",De,[o(e(fe),{onClick:s[7]||(s[7]=l=>e(S)("prev")),class:I({disable:!e(M)("prev")})},null,8,["class"]),o(e(we),{onClick:s[8]||(s[8]=l=>e(S)("next")),class:I({disable:!e(M)("next")})},null,8,["class"])])):w("",!0)]),_:1},8,["spinning"]),e(h)&&e(a)&&e(a)[e(c)]?(i(),g(ke,{key:1,file:e(a)[e(c)],idx:e(c),onContextMenuClick:e(_)},null,8,["file","idx","onContextMenuClick"])):w("",!0)],512)}}});const Ke=ge($e,[["__scopeId","data-v-64c2d73c"]]);export{Ke as default};

View File

@ -0,0 +1 @@
.regex-icon[data-v-a1cb02be]{user-select:none;padding:4px;margin:0 4px;cursor:pointer;border:1px solid var(--zp-border);border-radius:4px}.regex-icon img[data-v-a1cb02be]{height:1.5em}.regex-icon[data-v-a1cb02be]:hover{background:var(--zp-border)}.regex-icon.selected[data-v-a1cb02be]{background:var(--primary-color-1);border:1px solid var(--primary-color)}.search-bar[data-v-a1cb02be]{padding:8px;display:flex}.preview-switch[data-v-a1cb02be]{position:fixed;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;z-index:11111;pointer-events:none}.preview-switch>*[data-v-a1cb02be]{color:#fff;margin:16px;font-size:4em;pointer-events:all;cursor:pointer}.preview-switch>*.disable[data-v-a1cb02be]{opacity:0;pointer-events:none;cursor:none}.container[data-v-a1cb02be]{background:var(--zp-secondary-background)}.container .file-list[data-v-a1cb02be]{list-style:none;padding:8px;height:100%;overflow:auto;height:var(--pane-max-height);width:100%}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as v,c2 as C,bO as I,o as i,y as _,p as f,c,n as r,x as h,v as d,r as e,m as F,L as x,c3 as z,c4 as B,V as $,X as R}from"./index-54d35579.js";import{u as S,b as V,k as E,F as A,g as L}from"./FileItem-ced5f921.js";import"./db-8d04be33.js";import"./shortcut-dae64d46.js";const T={class:"actions-panel actions"},N={key:0,class:"file-list"},U={class:"hint"},H=v({__name:"batchDownload",props:{tabIdx:{},paneIdx:{},id:{}},setup(O){const{stackViewEl:w}=S().toRefs(),{itemSize:p,gridItems:k,cellWidth:b}=V(),l=E(),{selectdFiles:n}=C(l),u=I(),y=async t=>{const s=z(t);s&&l.addFiles(s.nodes)},D=async()=>{u.pushAction(async()=>{const t=await B.value.post("/zip",{paths:n.value.map(o=>o.fullpath)},{responseType:"blob"}),s=window.URL.createObjectURL(new Blob([t.data])),a=document.createElement("a");a.href=s,a.setAttribute("download",`iib_${new Date().toLocaleString()}.zip`),document.body.appendChild(a),a.click()})},g=t=>{n.value.splice(t,1)};return(t,s)=>{const a=$;return i(),_("div",{class:"container",ref_key:"stackViewEl",ref:w,onDrop:y},[f("div",T,[c(a,{onClick:s[0]||(s[0]=o=>e(l).selectdFiles=[])},{default:r(()=>[h(d(t.$t("clear")),1)]),_:1}),c(a,{onClick:D,type:"primary",loading:!e(u).isIdle},{default:r(()=>[h(d(t.$t("zipDownload")),1)]),_:1},8,["loading"])]),e(n).length?(i(),F(e(L),{key:1,ref:"scroller",class:"file-list",items:e(n).slice(),"item-size":e(p).first,"key-field":"fullpath","item-secondary-size":e(p).second,gridItems:e(k)},{default:r(({item:o,index:m})=>[c(A,{idx:m,file:o,"cell-width":e(b),"enable-close-icon":"",onCloseIconClick:j=>g(m),"full-screen-preview-image-url":e(x)(o),"enable-right-click-menu":!1},null,8,["idx","file","cell-width","onCloseIconClick","full-screen-preview-image-url"])]),_:1},8,["items","item-size","item-secondary-size","gridItems"])):(i(),_("div",N,[f("p",U,d(t.$t("batchDownloaDDragAndDropHint")),1)]))],544)}}});const G=R(H,[["__scopeId","data-v-aab31da2"]]);export{G as default};
import{d as v,c2 as C,bO as I,o as i,y as _,p as f,c,n as r,x as h,v as d,r as e,m as F,L as x,c3 as z,c4 as B,V as $,X as R}from"./index-b44dfcf8.js";import{u as S,b as V,k as E,F as A,g as L}from"./FileItem-c84a61c8.js";import"./db-f71a84c3.js";import"./shortcut-0fe96b62.js";const T={class:"actions-panel actions"},N={key:0,class:"file-list"},U={class:"hint"},H=v({__name:"batchDownload",props:{tabIdx:{},paneIdx:{},id:{}},setup(O){const{stackViewEl:w}=S().toRefs(),{itemSize:p,gridItems:k,cellWidth:b}=V(),l=E(),{selectdFiles:n}=C(l),u=I(),y=async t=>{const s=z(t);s&&l.addFiles(s.nodes)},D=async()=>{u.pushAction(async()=>{const t=await B.value.post("/zip",{paths:n.value.map(o=>o.fullpath)},{responseType:"blob"}),s=window.URL.createObjectURL(new Blob([t.data])),a=document.createElement("a");a.href=s,a.setAttribute("download",`iib_${new Date().toLocaleString()}.zip`),document.body.appendChild(a),a.click()})},g=t=>{n.value.splice(t,1)};return(t,s)=>{const a=$;return i(),_("div",{class:"container",ref_key:"stackViewEl",ref:w,onDrop:y},[f("div",T,[c(a,{onClick:s[0]||(s[0]=o=>e(l).selectdFiles=[])},{default:r(()=>[h(d(t.$t("clear")),1)]),_:1}),c(a,{onClick:D,type:"primary",loading:!e(u).isIdle},{default:r(()=>[h(d(t.$t("zipDownload")),1)]),_:1},8,["loading"])]),e(n).length?(i(),F(e(L),{key:1,ref:"scroller",class:"file-list",items:e(n).slice(),"item-size":e(p).first,"key-field":"fullpath","item-secondary-size":e(p).second,gridItems:e(k)},{default:r(({item:o,index:m})=>[c(A,{idx:m,file:o,"cell-width":e(b),"enable-close-icon":"",onCloseIconClick:j=>g(m),"full-screen-preview-image-url":e(x)(o),"enable-right-click-menu":!1},null,8,["idx","file","cell-width","onCloseIconClick","full-screen-preview-image-url"])]),_:1},8,["items","item-size","item-secondary-size","gridItems"])):(i(),_("div",N,[f("p",U,d(t.$t("batchDownloaDDragAndDropHint")),1)]))],544)}}});const G=R(H,[["__scopeId","data-v-aab31da2"]]);export{G as default};

View File

@ -1 +1 @@
import{c4 as t}from"./index-54d35579.js";const c=async()=>(await t.value.get("/db/basic_info")).data,d=async()=>(await t.value.get("/db/expired_dirs")).data,g=async()=>{await t.value.post("/db/update_image_data",{},{timeout:1/0})},u=async(a,s)=>(await t.value.post("/db/match_images_by_tags",{...a,cursor:s})).data,p=async a=>(await t.value.post("/db/add_custom_tag",a)).data,i=async a=>(await t.value.post("/db/toggle_custom_tag_to_img",a)).data,m=async a=>{await t.value.post("/db/remove_custom_tag",a)},_=async(a,s,e)=>(await t.value.get("/db/search_by_substr",{params:{substr:a,cursor:s,regexp:e}})).data,r="/db/extra_paths",b=async a=>{await t.value.post(r,a)},y=async a=>{await t.value.delete(r,{data:a})},l=async a=>(await t.value.post("/db/get_image_tags",{paths:a})).data;export{b as a,c as b,d as c,p as d,m as e,_ as f,u as g,l as h,y as r,i as t,g as u};
import{c4 as t}from"./index-b44dfcf8.js";const c=async()=>(await t.value.get("/db/basic_info")).data,d=async()=>(await t.value.get("/db/expired_dirs")).data,g=async()=>{await t.value.post("/db/update_image_data",{},{timeout:1/0})},u=async(a,s)=>(await t.value.post("/db/match_images_by_tags",{...a,cursor:s})).data,p=async a=>(await t.value.post("/db/add_custom_tag",a)).data,i=async a=>(await t.value.post("/db/toggle_custom_tag_to_img",a)).data,m=async a=>{await t.value.post("/db/remove_custom_tag",a)},_=async(a,s,e)=>(await t.value.get("/db/search_by_substr",{params:{substr:a,cursor:s,regexp:e}})).data,r="/db/extra_paths",b=async a=>{await t.value.post(r,a)},y=async a=>{await t.value.delete(r,{data:a})},l=async a=>(await t.value.post("/db/get_image_tags",{paths:a})).data;export{b as a,c as b,d as c,p as d,m as e,_ as f,u as g,l as h,y as r,i as t,g as u};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{bn as A,$ as g,bU as q,bV as x,ar as k,ao as D,bO as z,bd as G}from"./index-54d35579.js";import{u as N,b as O,f as Q,c as U,d as j,e as H,h as L}from"./FileItem-ced5f921.js";let T=0;const V=()=>++T,W=(r,l,{dataUpdateStrategy:c="replace"}={})=>{const s=A([""]),u=g(!1),t=g(),a=g(!1);let f=g(-1);const v=new Set,b=e=>{var n;c==="replace"?t.value=e:c==="merge"&&(k((Array.isArray(t.value)||typeof t.value>"u")&&Array.isArray(e),"数据更新策略为合并时仅可用于值为数组的情况"),t.value=[...(n=t==null?void 0:t.value)!==null&&n!==void 0?n:[],...e])},d=e=>x(void 0,void 0,void 0,function*(){if(a.value||u.value&&typeof e>"u")return!1;a.value=!0;const n=V();f.value=n;try{let o;if(typeof e=="number"){if(o=s[e],typeof o!="string")return!1}else o=s[s.length-1];const p=yield r(o);if(v.has(n))return v.delete(n),!1;b(l(p));const i=p.cursor;if((e===s.length-1||typeof e!="number")&&(u.value=!i.has_next,i.has_next)){const I=i.next_cursor||i.next;k(typeof I=="string"),s.push(I)}}finally{f.value===n&&(a.value=!1)}return!0}),h=()=>{v.add(f.value),a.value=!1},w=(e=!1)=>x(void 0,void 0,void 0,function*(){const{refetch:n,force:o}=typeof e=="object"?e:{refetch:e};o&&h(),k(!a.value),s.splice(0,s.length,""),a.value=!1,t.value=void 0,u.value=!1,n&&(yield d())}),m=()=>({next:()=>x(void 0,void 0,void 0,function*(){if(a.value)throw new Error("不允许同时迭代");return{done:!(yield d()),value:t.value}})});return q({abort:h,load:u,next:d,res:t,loading:a,cursorStack:s,reset:w,[Symbol.asyncIterator]:m,iter:{[Symbol.asyncIterator]:m}})},J=r=>A(W(r,l=>l.files,{dataUpdateStrategy:"merge"})),K=r=>{const l=A(new Set),c=D(()=>(r.res??[]).filter(y=>!l.has(y.fullpath))),s=z(),{stackViewEl:u,multiSelectedIdxs:t,stack:a,scroller:f}=N({images:c}).toRefs(),{itemSize:v,gridItems:b,cellWidth:d,onScroll:h}=O({fetchNext:()=>r.next()}),{showMenuIdx:w}=Q(),{onFileDragStart:m,onFileDragEnd:e}=U(),{showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I}=j({openNext:G}),{previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M}=H(),P=async(y,S,R)=>{a.value=[{curr:"",files:c.value}],await i(y,S,R)};return L("removeFiles",async({paths:y})=>{y.forEach(S=>l.add(S))}),{images:c,scroller:f,queue:s,iter:r,onContextMenuClickU:P,stackViewEl:u,previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M,itemSize:v,gridItems:b,showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I,showMenuIdx:w,multiSelectedIdxs:t,onFileDragStart:m,onFileDragEnd:e,cellWidth:d,onScroll:h}};export{J as c,K as u};
import{bn as A,$ as g,bU as q,bV as x,ar as k,ao as D,bO as z,bd as G}from"./index-b44dfcf8.js";import{u as N,b as O,f as Q,c as U,d as j,e as H,h as L}from"./FileItem-c84a61c8.js";let T=0;const V=()=>++T,W=(r,l,{dataUpdateStrategy:c="replace"}={})=>{const s=A([""]),u=g(!1),t=g(),a=g(!1);let f=g(-1);const v=new Set,b=e=>{var n;c==="replace"?t.value=e:c==="merge"&&(k((Array.isArray(t.value)||typeof t.value>"u")&&Array.isArray(e),"数据更新策略为合并时仅可用于值为数组的情况"),t.value=[...(n=t==null?void 0:t.value)!==null&&n!==void 0?n:[],...e])},d=e=>x(void 0,void 0,void 0,function*(){if(a.value||u.value&&typeof e>"u")return!1;a.value=!0;const n=V();f.value=n;try{let o;if(typeof e=="number"){if(o=s[e],typeof o!="string")return!1}else o=s[s.length-1];const p=yield r(o);if(v.has(n))return v.delete(n),!1;b(l(p));const i=p.cursor;if((e===s.length-1||typeof e!="number")&&(u.value=!i.has_next,i.has_next)){const I=i.next_cursor||i.next;k(typeof I=="string"),s.push(I)}}finally{f.value===n&&(a.value=!1)}return!0}),h=()=>{v.add(f.value),a.value=!1},w=(e=!1)=>x(void 0,void 0,void 0,function*(){const{refetch:n,force:o}=typeof e=="object"?e:{refetch:e};o&&h(),k(!a.value),s.splice(0,s.length,""),a.value=!1,t.value=void 0,u.value=!1,n&&(yield d())}),m=()=>({next:()=>x(void 0,void 0,void 0,function*(){if(a.value)throw new Error("不允许同时迭代");return{done:!(yield d()),value:t.value}})});return q({abort:h,load:u,next:d,res:t,loading:a,cursorStack:s,reset:w,[Symbol.asyncIterator]:m,iter:{[Symbol.asyncIterator]:m}})},J=r=>A(W(r,l=>l.files,{dataUpdateStrategy:"merge"})),K=r=>{const l=A(new Set),c=D(()=>(r.res??[]).filter(y=>!l.has(y.fullpath))),s=z(),{stackViewEl:u,multiSelectedIdxs:t,stack:a,scroller:f}=N({images:c}).toRefs(),{itemSize:v,gridItems:b,cellWidth:d,onScroll:h}=O({fetchNext:()=>r.next()}),{showMenuIdx:w}=Q(),{onFileDragStart:m,onFileDragEnd:e}=U(),{showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I}=j({openNext:G}),{previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M}=H(),P=async(y,S,R)=>{a.value=[{curr:"",files:c.value}],await i(y,S,R)};return L("removeFiles",async({paths:y})=>{y.forEach(S=>l.add(S))}),{images:c,scroller:f,queue:s,iter:r,onContextMenuClickU:P,stackViewEl:u,previewIdx:C,previewing:F,onPreviewVisibleChange:_,previewImgMove:E,canPreview:M,itemSize:v,gridItems:b,showGenInfo:n,imageGenInfo:o,q:p,onContextMenuClick:i,onFileItemClick:I,showMenuIdx:w,multiSelectedIdxs:t,onFileDragStart:m,onFileDragEnd:e,cellWidth:d,onScroll:h}};export{J as c,K as u};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
vue/dist/index.html vendored
View File

@ -7,7 +7,7 @@
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Infinite Image Browsing</title>
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-54d35579.js"></script>
<script type="module" crossorigin src="/infinite_image_browsing/fe-static/assets/index-b44dfcf8.js"></script>
<link rel="stylesheet" href="/infinite_image_browsing/fe-static/assets/index-896679b3.css">
</head>

View File

@ -208,5 +208,6 @@ export const en: IIBI18nMap = {
searchResults: 'Search Results',
imgSearch: 'Image Search',
onlyFoldersAndImages: 'Only show folders/images/videos',
send2savedDir: 'Send to saved folder'
send2savedDir: 'Send to saved folder',
regexSearchEnabledHint: '(You can also enable regex search by clicking the regex icon on the right)'
}

View File

@ -191,5 +191,6 @@ export const zhHans = {
dragToResizePanel: '按住并拖动来调整面板的大小',
clickToToggleMaximizeMinimize: '单击切换最大化/最小化',
dragToMovePanel: '按住并拖动来移动面板',
imageCompareTips: '拖拽文件时也会出现这个面板,可以不需要打开 “图像对比” 功能'
imageCompareTips: '拖拽文件时也会出现这个面板,可以不需要打开 “图像对比” 功能',
regexSearchEnabledHint: "(你也可以通过点击右侧的正则式图标来启用正则式搜索)"
}

View File

@ -195,5 +195,6 @@ export const zhHant: IIBI18nMap = {
dragToResizePanel: '按住並拖動來調整面板的大小',
clickToToggleMaximizeMinimize: '單擊切換最大化/最小化',
dragToMovePanel: '按住並拖動來移動面板',
imageCompareTips: '拖拽文件時也會出現這個面板,可以不需要打開 “圖片對比” 功能'
imageCompareTips: '拖拽文件時也會出現這個面板,可以不需要打開 “圖片對比” 功能',
regexSearchEnabledHint: "(你也可以通過點擊右側的正則式圖標來啟用正則式搜索)"
}

View File

@ -83,7 +83,7 @@ const onRegexpClick = () => {
<template>
<div class="container" ref="stackViewEl">
<div class="search-bar" v-if="info" @keydown.stop>
<a-input v-model:value="substr" :placeholder="$t('fuzzy-search-placeholder')" :disabled="!queue.isIdle"
<a-input v-model:value="substr" :placeholder="$t('fuzzy-search-placeholder') + ' ' + $t('regexSearchEnabledHint')" :disabled="!queue.isIdle"
@keydown.enter="query" allow-clear />
<div class="regex-icon" :class="{ selected: isRegex }" @keydown.stop @click="onRegexpClick" title="Use Regular Expression"> <img :src="regex" ></div>
<AButton @click="onUpdateBtnClick" :loading="!queue.isIdle" type="primary" v-if="info.expired || !info.img_count">