UNPKG

ll-package

Version:

2 lines (1 loc) 3.11 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const z=require("../../../@babel/runtime/helpers/esm/objectSpread2.js"),q=require("../../../@babel/runtime/helpers/esm/extends.js"),e=require("vue"),B=require("../_util/props-util/index.js"),F=require("../_util/vue-types/index.js"),H=require("../_util/hooks/useBreakpoint.js"),D=require("../_util/responsiveObserve.js"),L=require("../config-provider/hooks/useConfigInject.js"),X=require("../vc-resize-observer/index.js"),G=require("../_util/eagerComputed.js"),J=require("./style/index.js"),K=require("./AvatarContext.js"),C=()=>({prefixCls:String,shape:{type:String,default:"circle"},size:{type:[Number,String,Object],default:()=>"default"},src:String,srcset:String,icon:F.default.any,alt:String,gap:Number,draggable:{type:Boolean,default:void 0},crossOrigin:String,loadError:{type:Function}}),Q=e.defineComponent({compatConfig:{MODE:3},name:"AAvatar",inheritAttrs:!1,props:C(),slots:Object,setup(r,w){let{slots:g,attrs:c}=w;const d=e.shallowRef(!0),m=e.shallowRef(!1),f=e.shallowRef(1),v=e.shallowRef(null),h=e.shallowRef(null),{prefixCls:$}=L.default("avatar",r),[R,A]=J.default($),y=K.useAvatarInjectContext(),n=e.computed(()=>r.size==="default"?y.size:r.size),N=H.default(),o=G.default(()=>{if(typeof r.size!="object")return;const t=D.responsiveArray.find(l=>N.value[l]);return r.size[t]}),j=t=>o.value?{width:`${o.value}px`,height:`${o.value}px`,lineHeight:`${o.value}px`,fontSize:`${t?o.value/2:18}px`}:{},p=()=>{if(!v.value||!h.value)return;const t=v.value.offsetWidth,a=h.value.offsetWidth;if(t!==0&&a!==0){const{gap:l=4}=r;l*2<a&&(f.value=a-l*2<t?(a-l*2)/t:1)}},O=()=>{const{loadError:t}=r;(t==null?void 0:t())!==!1&&(d.value=!1)};return e.watch(()=>r.src,()=>{e.nextTick(()=>{d.value=!0,f.value=1})}),e.watch(()=>r.gap,()=>{e.nextTick(()=>{p()})}),e.onMounted(()=>{e.nextTick(()=>{p(),m.value=!0})}),()=>{var t,a;const{shape:l,src:S,alt:T,srcset:k,draggable:E,crossOrigin:I}=r,M=(t=y.shape)!==null&&t!==void 0?t:l,i=B.getPropsSlot(g,r,"icon"),s=$.value,P={[`${c.class}`]:!!c.class,[s]:!0,[`${s}-lg`]:n.value==="large",[`${s}-sm`]:n.value==="small",[`${s}-${M}`]:!0,[`${s}-image`]:S&&d.value,[`${s}-icon`]:i,[A.value]:!0},V=typeof n.value=="number"?{width:`${n.value}px`,height:`${n.value}px`,lineHeight:`${n.value}px`,fontSize:i?`${n.value/2}px`:"18px"}:{},b=(a=g.default)===null||a===void 0?void 0:a.call(g);let u;if(S&&d.value)u=e.createVNode("img",{draggable:E,src:S,srcset:k,onError:O,alt:T,crossorigin:I},null);else if(i)u=i;else if(m.value||f.value!==1){const x=`scale(${f.value}) translateX(-50%)`,W={msTransform:x,WebkitTransform:x,transform:x},_=typeof n.value=="number"?{lineHeight:`${n.value}px`}:{};u=e.createVNode(X.default,{onResize:p},{default:()=>[e.createVNode("span",{class:`${s}-string`,ref:v,style:q.default(q.default({},_),W)},[b])]})}else u=e.createVNode("span",{class:`${s}-string`,ref:v,style:{opacity:0}},[b]);return R(e.createVNode("span",z.default(z.default({},c),{},{ref:h,class:P,style:[V,j(!!i),c.style]}),[u]))}}}),U=Q;exports.avatarProps=C;exports.default=U;