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