import{d as w,j as v,w as S,o as $,m as n,b as B,x as I,c as i,B as z,f as t,t as l,s as F,F as L,r as P,n as T,e as V,T as D,k as N}from"./index.js";import{C as U}from"./CloseButton.js";import{_ as j}from"./_plugin-vue_export-helper.js";const A={class:"image-picker-panel"},M={class:"header"},E={class:"header-left"},R={class:"title"},W=["disabled"],q={class:"body"},G={key:0,class:"loading"},H={key:1,class:"empty"},J={key:2,class:"grid"},K=["onClick","title"],O=["src","alt"],Q={class:"name"},X={class:"footer"},Y={class:"count"},Z={class:"actions"},x=["disabled"],ee=w({__name:"ImagePicker",props:{open:{type:Boolean},entries:{},initialSelected:{},loading:{type:Boolean},uploading:{type:Boolean,default:!1}},emits:["close","confirm","local-files"],setup(c,{emit:h}){const d=c,r=h,s=v(new Set(d.initialSelected||[])),p=v(null);let f=0;S(()=>d.initialSelected,e=>{s.value=new Set(e||[])});const g=N(()=>d.entries||[]),k=e=>{if(!e)return;const o=new Set(s.value);if(o.has(e))o.delete(e);else{if(o.size>=9)return;o.add(e)}s.value=o},m=()=>{Date.now()r("confirm",Array.from(s.value)),_=()=>{var e;d.uploading||(f=Date.now()+1500,(e=p.value)==null||e.click())},b=e=>{const o=e.target,a=o==null?void 0:o.files,u=a&&a.length?Array.from(a):null;!u||u.length===0?(console.warn("[ImagePicker] change fired but files empty — likely WebView compat issue"),r("local-files",null)):r("local-files",u),setTimeout(()=>{o&&(o.value="")},200)},C=e=>`/api/gui/files/download?path=${encodeURIComponent(e)}`;return $(()=>{s.value=new Set(d.initialSelected||[])}),(e,o)=>(n(),B(D,{name:"overlay-fade"},{default:I(()=>[c.open?(n(),i("div",{key:0,class:"image-picker-backdrop",onClick:z(m,["self"])},[t("div",A,[t("div",M,[t("div",E,[t("div",R,l(e.$t("overlay.imagePickerTitle")),1),t("button",{type:"button",class:"local-btn",disabled:c.uploading,onClick:_},l(c.uploading?e.$t("overlay.uploading"):e.$t("overlay.sendFromLocal")),9,W),t("input",{ref_key:"localInput",ref:p,type:"file",class:"file-input-hidden",accept:"image/png,image/jpeg,image/webp,image/gif,image/bmp",multiple:"",onChange:b},null,544)]),F(U,{label:e.$t("common.close"),onClick:m},null,8,["label"])]),t("div",q,[c.loading?(n(),i("div",G,l(e.$t("common.loading")),1)):g.value.length?(n(),i("div",J,[(n(!0),i(L,null,P(g.value,a=>(n(),i("div",{key:a.path,class:T(["card",{selected:s.value.has(a.path)}]),onClick:u=>k(a.path),title:a.path},[t("img",{src:C(a.path),alt:a.name},null,8,O),t("div",Q,l(a.name),1)],10,K))),128))])):(n(),i("div",H,l(e.$t("overlay.noImages")),1))]),t("div",X,[t("div",Y,l(e.$t("overlay.imageSelectedCount",{n:s.value.size})),1),t("div",Z,[t("button",{type:"button",class:"btn secondary",onClick:m},l(e.$t("common.cancel")),1),t("button",{type:"button",class:"btn primary",disabled:!s.value.size,onClick:y},l(e.$t("common.confirm")),9,x)])])])])):V("",!0)]),_:1}))}}),se=j(ee,[["__scopeId","data-v-b942f2ec"]]);export{se as default};