element-plus
Version:
A Component Library for Vue 3
1 lines • 4.08 kB
Source Map (JSON)
{"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 />\n </span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref, watch } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { addUnit, isNumber, isString } from '@element-plus/utils'\nimport { avatarEmits, avatarProps } from './avatar'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElAvatar',\n})\n\nconst props = defineProps(avatarProps)\nconst emit = defineEmits(avatarEmits)\n\nconst ns = useNamespace('avatar')\n\nconst hasLoadError = ref(false)\n\nconst 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\nconst sizeStyle = computed(() => {\n const { size } = props\n return isNumber(size)\n ? (ns.cssVarBlock({\n size: addUnit(size)!,\n }) as CSSProperties)\n : undefined\n})\n\nconst fitStyle = computed<CSSProperties>(() => ({\n objectFit: props.fit,\n}))\n\n// need reset hasLoadError to false if src changed\nwatch(\n () => props.src,\n () => (hasLoadError.value = false)\n)\n\nfunction handleError(e: Event) {\n hasLoadError.value = true\n emit('error', e)\n}\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","src","srcSet","alt","icon","_createBlock","_unref","_withCtx","_resolveDynamicComponent","_renderSlot"],"mappings":"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"}