index-a27faff9.js 1.9 KB

1
  1. import{t as a,d as o,Q as r,aJ as e,c as l,z as s,ax as i,S as n,aa as t,ak as d,o as c,V as u,a as v,w as g,v as f,N as h,aF as m,bc as p,J as w,L as b,C as y}from"./index-99c674b5.js";const[z,L]=a("image"),S=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,S=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 x=a=>{h.value&&(h.value=!1,o("load",a))},I=()=>{const a=new Event("load");Object.defineProperty(a,"target",{value:y.value,enumerable:!0}),x(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:x,onError:P},o),null)},k=({el:a})=>{const o=()=>{a===y.value&&h.value&&I()};y.value?o():u(o)},E=({el:a})=>{a!==y.value||f.value||P()};return z&&t&&(z.$on("loaded",k),z.$on("error",E),d((()=>{z.$off("loaded",k),z.$off("error",E)}))),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:S.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{S as I};