Files
monisuo/monisuo-admin/dist/assets/AvatarImage-2cn_wg2h.js
2026-04-21 08:12:17 +08:00

1 line
2.6 KiB
JavaScript

import{B as e,D as t,Dt as n,G as r,H as i,I as a,S as o,St as s,Tt as c,at as l,b as u,d,et as f,gt as p,it as m,tt as h,z as g}from"./iconify-DYZHDLa8.js";import{w as _}from"./vue-vendor-DjtlKxRy.js";import{J as v}from"./index-Uji7rFqr.js";import{O as y}from"./Teleport-BIYegdAM.js";import{r as b}from"./button-BuRmTYve.js";import{t as x}from"./useForwardExpose-B0BXtanw.js";var[S,C]=y(`AvatarRoot`),w=t({__name:`AvatarRoot`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return x(),C({imageLoadingStatus:p(`idle`)}),(e,t)=>(i(),o(c(b),{"as-child":e.asChild,as:e.as},{default:m(()=>[r(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}});function T(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?`loaded`:`loading`):`error`:`idle`}function E(t,{referrerPolicy:n,crossOrigin:r}={}){let i=p(!1),a=p(null),o=u(()=>i.value?(!a.value&&_&&(a.value=new window.Image),a.value):null),s=p(T(o.value,t.value)),c=e=>()=>{i.value&&(s.value=e)};return g(()=>{i.value=!0,h(e=>{let i=o.value;if(!i)return;s.value=T(i,t.value);let a=c(`loaded`),l=c(`error`);i.addEventListener(`load`,a),i.addEventListener(`error`,l),n?.value&&(i.referrerPolicy=n.value),typeof r?.value==`string`&&(i.crossOrigin=r.value),e(()=>{i.removeEventListener(`load`,a),i.removeEventListener(`error`,l)})})}),e(()=>{i.value=!1}),s}var D=t({__name:`AvatarImage`,props:{src:{type:String,required:!0},referrerPolicy:{type:null,required:!1},crossOrigin:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`img`}},emits:[`loadingStatusChange`],setup(e,{emit:t}){let n=e,a=t,{src:u,referrerPolicy:p,crossOrigin:h}=s(n);x();let g=S(),_=E(u,{referrerPolicy:p,crossOrigin:h});return f(_,e=>{a(`loadingStatusChange`,e),e!==`idle`&&(g.imageLoadingStatus.value=e)},{immediate:!0}),(e,t)=>l((i(),o(c(b),{role:`img`,"as-child":e.asChild,as:e.as,src:c(u),referrerpolicy:c(p),crossorigin:c(h)},{default:m(()=>[r(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`src`,`referrerpolicy`,`crossorigin`])),[[d,c(_)===`loaded`]])}}),O=t({__name:`Avatar`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,a)=>(i(),o(c(w),{"data-slot":`avatar`,class:n(c(v)(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,t.class))},{default:m(()=>[r(e.$slots,`default`)]),_:3},8,[`class`]))}}),k=t({__name:`AvatarImage`,props:{src:{},referrerPolicy:{},crossOrigin:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(i(),o(c(D),a({"data-slot":`avatar-image`},t,{class:`aspect-square size-full`}),{default:m(()=>[r(e.$slots,`default`)]),_:3},16))}});export{O as n,S as r,k as t};