UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.09 kB
{"version":3,"file":"avatar2.mjs","sources":["../../../../../../packages/components/avatar/src/avatar.vue"],"sourcesContent":["<template>\n <span :class=\"avatarClass\" :style=\"sizeStyle\">\n <img\n v-if=\"(src || srcSet) && !hasLoadError\"\n :src=\"src\"\n :alt=\"alt\"\n :srcset=\"srcSet\"\n :style=\"fitStyle\"\n @error=\"handleError\"\n />\n <el-icon v-else-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n <slot v-else></slot>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isNumber, isString, addUnit } from '@element-plus/utils'\nimport { avatarEmits, avatarProps } from './avatar'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElAvatar',\n components: {\n ElIcon,\n },\n props: avatarProps,\n emits: avatarEmits,\n\n setup(props, { emit }) {\n const ns = useNamespace('avatar')\n\n const hasLoadError = ref(false)\n\n const avatarClass = computed(() => {\n const { size, icon, shape } = props\n const classList = [ns.b()]\n if (isString(size)) classList.push(ns.m(size))\n if (icon) classList.push(ns.m('icon'))\n if (shape) classList.push(ns.m(shape))\n return classList\n })\n\n const sizeStyle = computed(() => {\n const { size } = props\n return isNumber(size)\n ? ({\n '--el-avatar-size': addUnit(size),\n } as CSSProperties)\n : undefined\n })\n\n const fitStyle = computed<CSSProperties>(() => ({\n objectFit: props.fit,\n }))\n\n // need reset hasLoadError to false if src changed\n watch(\n () => props.src,\n () => (hasLoadError.value = false)\n )\n\n function handleError(e: Event) {\n hasLoadError.value = true\n emit('error', e)\n }\n\n return {\n hasLoadError,\n avatarClass,\n sizeStyle,\n fitStyle,\n handleError,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_normalizeClass","_normalizeStyle"],"mappings":";;;;;;;;;;;AA0BA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,KAAK,aAAa;AAExB,UAAM,eAAe,IAAI;AAEzB,UAAM,cAAc,SAAS,MAAM;AACjC,YAAM,EAAE,MAAM,MAAM,UAAU;AAC9B,YAAM,YAAY,CAAC,GAAG;AACtB,UAAI,SAAS;AAAO,kBAAU,KAAK,GAAG,EAAE;AACxC,UAAI;AAAM,kBAAU,KAAK,GAAG,EAAE;AAC9B,UAAI;AAAO,kBAAU,KAAK,GAAG,EAAE;AAC/B,aAAO;AAAA;AAGT,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,EAAE,SAAS;AACjB,aAAO,SAAS,QACX;AAAA,QACC,oBAAoB,QAAQ;AAAA,UAE9B;AAAA;AAGN,UAAM,WAAW,SAAwB;AAAO,MAC9C,WAAW,MAAM;AAAA;AAInB,UACE,MAAM,MAAM,KACZ,MAAO,aAAa,QAAQ;AAG9B,yBAAqB,GAAU;AAC7B,mBAAa,QAAQ;AACrB,WAAK,SAAS;AAAA;AAGhB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;SA5EQA,gCAAa;AAAA,IAAG,OAAKC,eAAE;AAAA;;sBACjC;MAEG,KAAK;AAAA,MACL,KAAK;AAAA,MACL,UAAQ;AAAA,MACR,QAAK;AAAA,MACL,OAAKC;AAAA;OAEY,UAAI,qDACE;AAAA,uBAAxB;AAAA;;;;;;;;;;"}