index.7852928e.js 1.7 KB

1
  1. import{d as x,L as I,p as u,b1 as N,W as E,u as $,a7 as B,au as D,c as a,N as C,ae as c,a2 as f,aq as R,aI as U,a0 as w,I as y,O as j}from"./base.d7a641ab.js";var[q,n]=C("image"),F=x({name:q,props:{src:String,alt:String,fit:String,round:Boolean,width:[Number,String],height:[Number,String],radius:[Number,String],lazyLoad:Boolean,iconSize:[Number,String],showError:I,iconPrefix:String,showLoading:I,errorIcon:{type:String,default:"photo-fail"},loadingIcon:{type:String,default:"photo"}},emits:["load","error"],setup(r,{emit:s,slots:i}){var o=u(!1),t=u(!0),d=u(),{$Lazyload:l}=N().proxy,L=E(()=>{var e={};return c(r.width)&&(e.width=f(r.width)),c(r.height)&&(e.height=f(r.height)),c(r.radius)&&(e.overflow="hidden",e.borderRadius=f(r.radius)),e});$(()=>r.src,()=>{o.value=!1,t.value=!0});var v=e=>{t.value=!1,s("load",e)},g=e=>{o.value=!0,t.value=!1,s("error",e)},S=()=>i.loading?i.loading():a(y,{size:r.iconSize,name:r.loadingIcon,class:n("loading-icon"),classPrefix:r.iconPrefix},null),z=()=>i.error?i.error():a(y,{size:r.iconSize,name:r.errorIcon,class:n("error-icon"),classPrefix:r.iconPrefix},null),b=()=>{if(t.value&&r.showLoading)return a("div",{class:n("loading")},[S()]);if(o.value&&r.showError)return a("div",{class:n("error")},[z()])},P=()=>{if(!(o.value||!r.src)){var e={alt:r.alt,class:n("img"),style:{objectFit:r.fit}};return r.lazyLoad?R(a("img",w({ref:d},e),null),[[U("lazy"),r.src]]):a("img",w({src:r.src,onLoad:v,onError:g},e),null)}},h=({el:e})=>{e===d.value&&t.value&&v()},m=({el:e})=>{e===d.value&&!o.value&&g()};return l&&B&&(l.$on("loaded",h),l.$on("error",m),D(()=>{l.$off("loaded",h),l.$off("error",m)})),()=>a("div",{class:n({round:r.round}),style:L.value},[P(),b(),i.default==null?void 0:i.default()])}}),V=j(F);export{V as I};