element-plus
Version:
A Component Library for Vue 3
1 lines • 10.8 kB
Source Map (JSON)
{"version":3,"file":"upload-list.vue2.mjs","sources":["../../../../../../packages/components/upload/src/upload-list.vue"],"sourcesContent":["<template>\n <transition-group tag=\"ul\" :class=\"containerKls\" :name=\"nsList.b()\">\n <li\n v-for=\"(file, index) in files\"\n :key=\"file.uid || file.name\"\n :class=\"[\n nsUpload.be('list', 'item'),\n nsUpload.is(file.status),\n { focusing },\n ]\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n role=\"button\"\n @keydown.delete=\"!disabled && handleRemove(file)\"\n @focus=\"focusing = true\"\n @blur=\"focusing = false\"\n @click=\"focusing = false\"\n >\n <slot :file=\"file\" :index=\"index\">\n <img\n v-if=\"\n listType === 'picture' ||\n (file.status !== 'uploading' && listType === 'picture-card')\n \"\n :class=\"nsUpload.be('list', 'item-thumbnail')\"\n :src=\"file.url\"\n :crossorigin=\"crossorigin\"\n alt=\"\"\n />\n <div\n v-if=\"file.status === 'uploading' || listType !== 'picture-card'\"\n :class=\"nsUpload.be('list', 'item-info')\"\n >\n <a\n :class=\"nsUpload.be('list', 'item-name')\"\n @click.prevent=\"handlePreview(file)\"\n >\n <el-icon :class=\"nsIcon.m('document')\">\n <Document />\n </el-icon>\n <span\n :class=\"nsUpload.be('list', 'item-file-name')\"\n :title=\"file.name\"\n >\n {{ file.name }}\n </span>\n </a>\n <el-progress\n v-if=\"file.status === 'uploading'\"\n :type=\"listType === 'picture-card' ? 'circle' : 'line'\"\n :stroke-width=\"listType === 'picture-card' ? 6 : 2\"\n :percentage=\"Number(file.percentage)\"\n :style=\"listType === 'picture-card' ? '' : 'margin-top: 0.5rem'\"\n />\n </div>\n\n <label :class=\"nsUpload.be('list', 'item-status-label')\">\n <el-icon\n v-if=\"listType === 'text'\"\n :class=\"[nsIcon.m('upload-success'), nsIcon.m('circle-check')]\"\n >\n <circle-check />\n </el-icon>\n <el-icon\n v-else-if=\"['picture-card', 'picture'].includes(listType)\"\n :class=\"[nsIcon.m('upload-success'), nsIcon.m('check')]\"\n >\n <Check />\n </el-icon>\n </label>\n <el-icon\n v-if=\"!disabled\"\n :class=\"nsIcon.m('close')\"\n @click=\"handleRemove(file)\"\n >\n <Close />\n </el-icon>\n <!-- Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn-->\n <!-- This is a bug which needs to be fixed -->\n <!-- TODO: Fix the incorrect navigation interaction -->\n <i v-if=\"!disabled\" :class=\"nsIcon.m('close-tip')\">{{\n t('el.upload.deleteTip')\n }}</i>\n <span\n v-if=\"listType === 'picture-card'\"\n :class=\"nsUpload.be('list', 'item-actions')\"\n >\n <span\n :class=\"nsUpload.be('list', 'item-preview')\"\n @click=\"handlePreview(file)\"\n >\n <el-icon :class=\"nsIcon.m('zoom-in')\"><zoom-in /></el-icon>\n </span>\n <span\n v-if=\"!disabled\"\n :class=\"nsUpload.be('list', 'item-delete')\"\n @click=\"handleRemove(file)\"\n >\n <el-icon :class=\"nsIcon.m('delete')\">\n <Delete />\n </el-icon>\n </span>\n </span>\n </slot>\n </li>\n <slot name=\"append\" />\n </transition-group>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n Check,\n CircleCheck,\n Close,\n Delete,\n Document,\n ZoomIn,\n} from '@element-plus/icons-vue'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElProgress from '@element-plus/components/progress'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { uploadListEmits } from './upload-list'\nimport { NOOP, mutable } from '@element-plus/utils'\n\nimport type { UploadListProps } from './upload-list'\nimport type { UploadFile } from './upload'\n\ndefineOptions({\n name: 'ElUploadList',\n})\n\nconst props = withDefaults(defineProps<UploadListProps>(), {\n files: () => mutable([]),\n disabled: undefined,\n handlePreview: NOOP,\n listType: 'text',\n})\nconst emit = defineEmits(uploadListEmits)\n\nconst { t } = useLocale()\nconst nsUpload = useNamespace('upload')\nconst nsIcon = useNamespace('icon')\nconst nsList = useNamespace('list')\nconst disabled = useFormDisabled()\n\nconst focusing = ref(false)\n\nconst containerKls = computed(() => [\n nsUpload.b('list'),\n nsUpload.bm('list', props.listType),\n nsUpload.is('disabled', disabled.value),\n])\n\nconst handleRemove = (file: UploadFile) => {\n emit('remove', file)\n}\n</script>\n"],"names":["_createBlock","_TransitionGroup","_unref","_openBlock","_createElementBlock","_Fragment","_renderList","_normalizeClass","_withKeys","_renderSlot","_createElementVNode","_withModifiers","_createVNode","_toDisplayString","_createCommentVNode"],"mappings":"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"}