index.39cb4a8e.js 1.7 KB

1
  1. import{v as k,H as d,w as L,C as z,d as $,U as u,ab as B,G as E,X as f,a3 as C,$ as D,ac as U,ad as j,c as r,ae as N,af as R,x as P,a0 as _,a7 as F,z as G}from"./ResizeObserver.es.f2747516.js";const[H,o]=k("image"),T={src:String,alt:String,fit:String,position:String,round:Boolean,block:Boolean,width:d,height:d,radius:d,lazyLoad:Boolean,iconSize:d,showError:L,errorIcon:z("photo-fail"),iconPrefix:String,showLoading:L,loadingIcon:z("photo")};var V=$({name:H,props:T,emits:["load","error"],setup(e,{emit:g,slots:l}){const n=u(!1),t=u(!0),s=u(),{$Lazyload:i}=B().proxy,b=E(()=>{const a={width:f(e.width),height:f(e.height)};return C(e.radius)&&(a.overflow="hidden",a.borderRadius=f(e.radius)),a});D(()=>e.src,()=>{n.value=!1,t.value=!0});const v=a=>{t.value=!1,g("load",a)},h=a=>{n.value=!0,t.value=!1,g("error",a)},m=(a,c,I)=>I?I():r(F,{name:a,size:e.iconSize,class:c,classPrefix:e.iconPrefix},null),S=()=>{if(t.value&&e.showLoading)return r("div",{class:o("loading")},[m(e.loadingIcon,o("loading-icon"),l.loading)]);if(n.value&&e.showError)return r("div",{class:o("error")},[m(e.errorIcon,o("error-icon"),l.error)])},x=()=>{if(n.value||!e.src)return;const a={alt:e.alt,class:o("img"),style:{objectFit:e.fit,objectPosition:e.position}};return e.lazyLoad?N(r("img",P({ref:s},a),null),[[R("lazy"),e.src]]):r("img",P({src:e.src,onLoad:v,onError:h},a),null)},w=({el:a})=>{const c=()=>{a===s.value&&t.value&&v()};s.value?c():_(c)},y=({el:a})=>{a===s.value&&!n.value&&h()};return i&&U&&(i.$on("loaded",w),i.$on("error",y),j(()=>{i.$off("loaded",w),i.$off("error",y)})),()=>{var a;return r("div",{class:o({round:e.round,block:e.block}),style:b.value},[x(),S(),(a=l.default)==null?void 0:a.call(l)])}}});const q=G(V);export{q as I};