1 line
2.6 KiB
JavaScript
1 line
2.6 KiB
JavaScript
import{$ as e,Ct as t,H as n,I as r,L as i,N as a,Q as o,Tt as s,bt as c,g as l,mt as u,nt as d,rt as f,s as p,v as m,w as h,z as g}from"./vue.runtime.esm-bundler-DQjudA8G.js";import{t as _}from"./utils-BB02OBq2.js";import{b as v}from"./dist-t_U6YImb.js";import{t as y}from"./createContext-BefgL9WT.js";import{t as b}from"./Primitive-jhoGcsVx.js";import{t as x}from"./useForwardExpose-OKJAPp5E.js";var[S,C]=y(`AvatarRoot`),w=h({__name:`AvatarRoot`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return x(),C({imageLoadingStatus:u(`idle`)}),(e,r)=>(g(),m(t(b),{"as-child":e.asChild,as:e.as},{default:d(()=>[n(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:a}={}){let o=u(!1),s=u(null),c=l(()=>o.value?(!s.value&&v&&(s.value=new window.Image),s.value):null),d=u(T(c.value,t.value)),f=e=>()=>{o.value&&(d.value=e)};return r(()=>{o.value=!0,e(e=>{let r=c.value;if(!r)return;d.value=T(r,t.value);let i=f(`loaded`),o=f(`error`);r.addEventListener(`load`,i),r.addEventListener(`error`,o),n?.value&&(r.referrerPolicy=n.value),typeof a?.value==`string`&&(r.crossOrigin=a.value),e(()=>{r.removeEventListener(`load`,i),r.removeEventListener(`error`,o)})})}),i(()=>{o.value=!1}),d}var D=h({__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:r}){let i=e,a=r,{src:s,referrerPolicy:l,crossOrigin:u}=c(i);x();let h=S(),_=E(s,{referrerPolicy:l,crossOrigin:u});return o(_,e=>{a(`loadingStatusChange`,e),e!==`idle`&&(h.imageLoadingStatus.value=e)},{immediate:!0}),(e,r)=>f((g(),m(t(b),{role:`img`,"as-child":e.asChild,as:e.as,src:t(s),referrerpolicy:t(l),crossorigin:t(u)},{default:d(()=>[n(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`src`,`referrerpolicy`,`crossorigin`])),[[p,t(_)===`loaded`]])}}),O=h({__name:`Avatar`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e;return(e,i)=>(g(),m(t(w),{"data-slot":`avatar`,class:s(t(_)(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,r.class))},{default:d(()=>[n(e.$slots,`default`)]),_:3},8,[`class`]))}}),k=h({__name:`AvatarImage`,props:{src:{},referrerPolicy:{},crossOrigin:{},asChild:{type:Boolean},as:{}},setup(e){let r=e;return(e,i)=>(g(),m(t(D),a({"data-slot":`avatar-image`},r,{class:`aspect-square size-full`}),{default:d(()=>[n(e.$slots,`default`)]),_:3},16))}});export{O as n,S as r,k as t}; |