index-legacy-b68ddbf5.js 2.0 KB

1
  1. System.register(["./index-legacy-1d8f80b3.js"],(function(o,e){"use strict";var r,a,l,n,i,t,s,c,u,d,v,g,f,h,y,m,p,w,b,z,L;return{setters:[o=>{r=o.y,a=o.d,l=o.I,n=o.ay,i=o.c,t=o.z,s=o.ag,c=o.j,u=o._,d=o.a0,v=o.o,g=o.L,f=o.a,h=o.A,y=o.G,m=o.D,p=o.at,w=o.bc,b=o.H,z=o.U,L=o.w}],execute:function(){const[e,S]=r("image"),x={src:String,alt:String,fit:String,position:String,round:Boolean,block:Boolean,width:h,height:h,radius:h,lazyLoad:Boolean,iconSize:h,showError:y,errorIcon:m("photo-fail"),iconPrefix:String,showLoading:y,loadingIcon:m("photo")};var I=a({name:e,props:x,emits:["load","error"],setup(o,{emit:e,slots:r}){const a=l(!1),h=l(!0),y=l(),{$Lazyload:m}=n().proxy,L=i((()=>{const e={width:t(o.width),height:t(o.height)};return s(o.radius)&&(e.overflow="hidden",e.borderRadius=t(o.radius)),e}));c((()=>o.src),(()=>{a.value=!1,h.value=!0}));const x=o=>{h.value&&(h.value=!1,e("load",o))},I=()=>{const o=new Event("load");Object.defineProperty(o,"target",{value:y.value,enumerable:!0}),x(o)},j=o=>{a.value=!0,h.value=!1,e("error",o)},P=(e,r,a)=>a?a():f(z,{name:e,size:o.iconSize,"class":r,classPrefix:o.iconPrefix},null),$=()=>{if(a.value||!o.src)return;const e={alt:o.alt,"class":S("img"),style:{objectFit:o.fit,objectPosition:o.position}};return o.lazyLoad?p(f("img",b({ref:y},e),null),[[w("lazy"),o.src]]):f("img",b({ref:y,src:o.src,onLoad:x,onError:j},e),null)},E=({el:o})=>{const e=()=>{o===y.value&&h.value&&I()};y.value?e():g(e)},k=({el:o})=>{o!==y.value||a.value||j()};return m&&u&&(m.$on("loaded",E),m.$on("error",k),d((()=>{m.$off("loaded",E),m.$off("error",k)}))),v((()=>{g((()=>{var e;(null==(e=y.value)?void 0:e.complete)&&!o.lazyLoad&&I()}))})),()=>{var e;return f("div",{"class":S({round:o.round,block:o.block}),style:L.value},[$(),h.value&&o.showLoading?f("div",{"class":S("loading")},[P(o.loadingIcon,S("loading-icon"),r.loading)]):a.value&&o.showError?f("div",{"class":S("error")},[P(o.errorIcon,S("error-icon"),r.error)]):void 0,null==(e=r["default"])?void 0:e.call(r)])}}});o("I",L(I))}}}));