import{b as B,d as $,r as u,p as j,s as D,Q as f,ap as _,a0 as C,bb as N,aJ as R,z as U,aq as I,g as n,n as d,t as z,aw as P,al as q,bt as F,x as S,I as J,w as M}from"./index-BfmASpv-.js";const[O,t]=B("image"),Q={src:String,alt:String,fit:String,position:String,round:Boolean,block:Boolean,width:d,height:d,radius:d,lazyLoad:Boolean,iconSize:d,showError:z,errorIcon:P("photo-fail"),iconPrefix:String,showLoading:z,loadingIcon:P("photo"),crossorigin:String,referrerpolicy:String};var T=$({name:O,props:Q,emits:["load","error"],setup(r,{emit:g,slots:s}){const i=u(!1),o=u(!0),a=u(),{$Lazyload:l}=j().proxy,x=D(()=>{const e={width:f(r.width),height:f(r.height)};return _(r.radius)&&(e.overflow="hidden",e.borderRadius=f(r.radius)),e});C(()=>r.src,()=>{i.value=!1,o.value=!0});const v=e=>{o.value&&(o.value=!1,g("load",e))},h=()=>{const e=new Event("load");Object.defineProperty(e,"target",{value:a.value,enumerable:!0}),v(e)},m=e=>{i.value=!0,o.value=!1,g("error",e)},y=(e,c,L)=>L?L():n(J,{name:e,size:r.iconSize,class:c,classPrefix:r.iconPrefix},null),E=()=>{if(o.value&&r.showLoading)return n("div",{class:t("loading")},[y(r.loadingIcon,t("loading-icon"),s.loading)]);if(i.value&&r.showError)return n("div",{class:t("error")},[y(r.errorIcon,t("error-icon"),s.error)])},k=()=>{if(i.value||!r.src)return;const e={alt:r.alt,class:t("img"),style:{objectFit:r.fit,objectPosition:r.position},crossorigin:r.crossorigin,referrerpolicy:r.referrerpolicy};return r.lazyLoad?q(n("img",S({ref:a},e),null),[[F("lazy"),r.src]]):n("img",S({ref:a,src:r.src,onLoad:v,onError:m},e),null)},w=({el:e})=>{const c=()=>{e===a.value&&o.value&&h()};a.value?c():I(c)},b=({el:e})=>{e===a.value&&!i.value&&m()};return l&&N&&(l.$on("loaded",w),l.$on("error",b),R(()=>{l.$off("loaded",w),l.$off("error",b)})),U(()=>{I(()=>{var e;(e=a.value)!=null&&e.complete&&!r.lazyLoad&&h()})}),()=>{var e;return n("div",{class:t({round:r.round,block:r.block}),style:x.value},[k(),E(),(e=s.default)==null?void 0:e.call(s)])}}});const A=M(T);export{A as I};