{"version":3,"file":"upload.vue2.mjs","sources":["../../../../../../packages/components/upload/src/upload.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToUpload'\n});\n</script>\n<template>\n\t<div :id=\"id\" :key=\"langKey\" :flex=\"flex ? flex : null\" class=\"to-upload\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<span v-if=\"verifiable && validateRequired\" v-show=\"false\" class=\"to-validate\" :req=\"validateRequired\" :desc=\"validateDesc\" :value=\"validateValue\"></span>\n\t\t<input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :multiple=\"props.multiple\" style=\"display: none\" @change=\"handleChange\" />\n\t\t<to-input v-if=\"type === 'input'\" link :disabled=\"props.disabled\" :width=\"props.width\" :placeholder=\"placeholder || t('to.common.placeholder.select')\" :verifiable=\"false\">\n\t\t\t<template #suffix>\n\t\t\t\t<to-icon value=\"browse\" link @click=\"handleFile\"></to-icon>\n\t\t\t</template>\n\t\t</to-input>\n\t\t<to-button v-if=\"type === 'button'\" :disabled=\"props.disabled\" icon=\"upload\" icon-position=\"left\" @click=\"handleFile\">{{ props.uploadText || t('to.upload.button') }}</to-button>\n\t\t<div v-if=\"type === 'img' && $slots.default\" class=\"to-upload-img\" :class=\"setPicClass\">\n\t\t\t<div class=\"to-upload-add\" @click=\"handleFile\">\n\t\t\t\t<to-icon value=\"add\" mode=\"upload-add\"></to-icon>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"showList\" class=\"to-upload-list\" style=\"width: 100%\">\n\t\t\t<slot :file-list=\"fileList\">\n\t\t\t\t<div v-if=\"type === 'img'\" class=\"to-upload-img\" :class=\"setPicClass\">\n\t\t\t\t\t<div v-if=\"fileList.length\" class=\"to-upload-img-list\">\n\t\t\t\t\t\t<div v-for=\"(item, index) in fileList\" :key=\"index\" class=\"to-upload-img-list-item\">\n\t\t\t\t\t\t\t<img :src=\"item.src\" class=\"to-upload-pic\" alt=\"\" />\n\t\t\t\t\t\t\t<to-icon value=\"delete\" mode=\"icon-remove\" link @click=\"handleDelete(index, item)\"></to-icon>\n\t\t\t\t\t\t\t<div v-if=\"item.progress\" class=\"upload-progress\">\n\t\t\t\t\t\t\t\t<div class=\"upload-progress-bar\" :style=\"{ width: item.progress + '%' }\"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"!$slots.default\" class=\"to-upload-add\" @click=\"handleFile\">\n\t\t\t\t\t\t<to-icon value=\"add\" mode=\"upload-add\"></to-icon>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<div v-for=\"(item, index) in fileList\" :key=\"index\" class=\"to-upload-list-item\">\n\t\t\t\t\t\t<to-icon value=\"img\"></to-icon>\n\t\t\t\t\t\t<div v-tip:click=\"item.name\" class=\"file-name\">\n\t\t\t\t\t\t\t{{ item.name }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span>{{ item.status }}</span>\n\t\t\t\t\t\t<div v-if=\"item.progress\" class=\"upload-progress\">\n\t\t\t\t\t\t\t<div class=\"upload-progress-bar\" :style=\"{ width: item.progress + '%' }\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<to-icon v-if=\"item[fileIdText] && downloadable\" value=\"download\" mode=\"color\" link @click=\"handleDownload(item[fileIdText])\"></to-icon>\n\t\t\t\t\t\t<to-icon value=\"delete\" mode=\"color\" link @click=\"handleDelete(index, item)\"></to-icon>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</slot>\n\t\t</div>\n\t\t<span v-if=\"errorTip\" v-color=\"'danger'\" class=\"to-box-tip\">\n\t\t\t<template v-if=\"errorType === 'rule'\">\n\t\t\t\t{{ t('to.upload.selectError') }}\n\t\t\t\t<to-icon v-tip.danger=\"errorTip\" value=\"help\" color=\"danger\" mode=\"toast\"></to-icon>\n\t\t\t</template>\n\t\t\t<template v-else> {{ t('to.upload.required') }} </template>\n\t\t</span>\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { fileAjax, md5 } from '@touchvue/utils'\nimport { CSSProperties, computed, nextTick, onMounted, ref, inject, watch } from 'vue'\nimport { ToInput, ToIcon, ToButton, $tip } from '@touchvue/components'\nimport { t, langKey } from '@touchvue/locale'\n\n\nconst emit = defineEmits(['start', 'success', 'error', 'clear', 'change', 'progress', 'remove', 'download'])\n\nexport type UploadType = 'input' | 'img' | 'button'\n\nexport interface FileProps {\n\tflex?: boolean\n\tmode?: string\n\tmultiple?: boolean\n\tauto?: boolean\n\taction?: string\n\theaders?: object\n\tplaceholder?: string\n\tdesc?: string\n\tid?: string\n\trequired?: boolean\n\ttype?: UploadType\n\tpicSize?: string | number\n\twidth?: string | number\n\tmaxLength?: number\n\taccept?: string\n\tmaxSize?: string | number\n\tduplicatable?: false\n\tfileIdText?: string\n\tdisabled?: boolean\n\tdownloadable?: boolean\n\tname?: string\n\twithCredentials?: boolean\n\tfiles?: any[]\n\tdata?: object\n\tbeforeSelect?: ((fileList) => boolean | Promise<any>) | null\n\tbeforeStart?: ((file) => boolean | Promise<any>) | null\n\tverifiable?: boolean\n\tshowList?: boolean\n\tuploadText?: string\n}\n\nconst props = withDefaults(defineProps<FileProps>(), {\n\tflex: false,\n\tmode: 'default',\n\tmultiple: false,\n\taction: '',\n\tplaceholder: '',\n\tauto: false,\n\tdesc: '',\n\tid: 'upload' + new Date().getTime(),\n\trequired: false,\n\ttype: 'input',\n\tpicSize: '',\n\twidth: 20,\n\tmaxLength: Infinity,\n\taccept: props => (props.type === 'img' ? '.jpg,.jpeg,.png,.gif' : ''),\n\tmaxSize: '',\n\tduplicatable: false,\n\tfileIdText: 'fileId',\n\tdisabled: false,\n\tdownloadable: false,\n\tname: 'uploadfile',\n\twithCredentials: false,\n\tfiles: () => [],\n\tdata: () => ({}),\n\theaders: () => ({}),\n\tbeforeSelect: null,\n\tbeforeStart: null,\n\tverifiable: true,\n\tshowList: true,\n\tuploadText: ''\n})\n\nconst fileInput = ref(null)\nconst fileList = ref([])\nconst errorTip = ref('')\nconst errorType = ref('rule')\nconst ToFormItem = inject<{ required?: boolean; label?: string }>('ToFormItem', {})\nconst uploadList = ref([])\n\nonMounted(() => {\n\tfileList.value = props.files\n})\nwatch(\n\t() => props.files,\n\tval => {\n\t\tfileList.value = val\n\t},\n\t{\n\t\tdeep: true\n\t}\n)\nconst setClass = computed(() => {\n\tconst arr = ['to-disable-target']\n\tif (errorTip.value) {\n\t\tarr.push('to-upload-mode-line')\n\t\tarr.push('to-upload-color-danger')\n\t\tarr.push('to-upload-tip-show')\n\t} else {\n\t\tif (props.mode) {\n\t\t\tarr.push(`mode-${props.mode}`)\n\t\t}\n\t}\n\treturn arr\n})\nconst setPicClass = computed(() => {\n\tconst arr = []\n\tif (props.picSize) {\n\t\tarr.push(`pic-size-${props.picSize}`)\n\t}\n\treturn arr\n})\nconst setStyle = computed(() => {\n\tconst style: CSSProperties = {}\n\tif (props.width) {\n\t\tstyle.width = isNaN(Number(props.width)) ? props.width : props.width + 'em'\n\t}\n\treturn style\n})\nconst validateRequired = computed(() => {\n\tif (props.required) {\n\t\treturn 'true'\n\t} else if (ToFormItem && ToFormItem.required) {\n\t\treturn 'true'\n\t} else {\n\t\treturn 'false'\n\t}\n})\nconst validateDesc = computed(() => {\n\tif (props.desc) {\n\t\treturn props.desc\n\t} else if (ToFormItem && ToFormItem.label) {\n\t\treturn ToFormItem.label\n\t} else {\n\t\treturn ''\n\t}\n})\nconst validateValue = computed(() => {\n\tif (Object.keys(fileList.value).length > 0) {\n\t\treturn 'true'\n\t} else {\n\t\treturn ''\n\t}\n})\nfunction handleFile() {\n\tif (props.disabled) return false\n\tfileInput.value.click()\n}\nasync function handleChange(e) {\n\tlet newFileList = []\n\tnewFileList = Array.from(e.target.files)\n\n\terrorTip.value = ''\n\tlet flag = true\n\tif (typeof props.beforeSelect === 'boolean') {\n\t\tflag = props.beforeSelect\n\t} else {\n\t\tif (props.beforeSelect) {\n\t\t\tif (typeof props.beforeSelect === 'function') {\n\t\t\t\tconst result = props.beforeSelect(newFileList)\n\t\t\t\tif (result && typeof (result as Promise<boolean>).then === 'function') {\n\t\t\t\t\tflag = await result\n\t\t\t\t} else {\n\t\t\t\t\tflag = !!result\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag = !!props.beforeSelect\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tnewFileList.forEach(item => {\n\t\titem.uid = getFileUid(item)\n\t})\n\tif (fileList.value.length + newFileList.length <= props.maxLength) {\n\t\tuploadList.value = Array.from(e.target.files)\n\t\temit('change', newFileList)\n\t\tif (props.duplicatable) {\n\t\t\te.target.value = ''\n\t\t}\n\t\tif (props.type === 'img') {\n\t\t\tnewFileList.forEach(item => {\n\t\t\t\tlet reader = new FileReader()\n\t\t\t\treader.addEventListener('load', () => {\n\t\t\t\t\titem.src = reader.result\n\t\t\t\t\tfileList.value.push(item)\n\t\t\t\t\tif (props.auto) {\n\t\t\t\t\t\thandleUpload(item)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\treader.readAsDataURL(item)\n\t\t\t})\n\t\t} else {\n\t\t\tfileList.value = [...fileList.value, ...newFileList]\n\t\t\tif (newFileList.length && props.auto) {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tnewFileList.forEach(file => {\n\t\t\t\t\t\thandleUpload(file)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t} else {\n\t\t$tip.danger(t('to.upload.tip.error.count', props.maxLength)).catch(() => {})\n\t}\n}\n\nasync function handleUpload(file) {\n\tif (!props.action) return false\n\tlet flag = true\n\tif (typeof props.beforeStart === 'boolean') {\n\t\tflag = props.beforeStart\n\t} else {\n\t\tif (props.beforeStart) {\n\t\t\tif (typeof props.beforeStart === 'function') {\n\t\t\t\tconst result = props.beforeStart(file)\n\t\t\t\tif (result && typeof (result as Promise<boolean>).then === 'function') {\n\t\t\t\t\tflag = await result\n\t\t\t\t} else {\n\t\t\t\t\tflag = !!result\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag = !!props.beforeStart\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tsetFilePropertyByUid(file.uid, 'status', 'start')\n\temit('start', file)\n\tlet formData = new FormData()\n\tformData.append(props.name, file)\n\tif (props.data) {\n\t\tObject.keys(props.data).forEach(key => {\n\t\t\tformData.append(key, props.data[key])\n\t\t})\n\t}\n\tfileAjax({\n\t\taction: props.action,\n\t\tdata: formData,\n\t\theaders: props.headers,\n\t\twithCredentials: props.withCredentials,\n\t\tonError: (err, status) => {\n\t\t\tsetFilePropertyByUid(file.uid, 'status', 'error')\n\t\t\temit('error', err, status, file)\n\t\t},\n\t\tonSuccess: (data, status) => {\n\t\t\tlet _data = JSON.parse(data)\n\t\t\tsetFilePropertyByUid(file.uid, 'status', 'success')\n\t\t\tsetFilePropertyByUid(file.uid, props.fileIdText, _data[props.fileIdText])\n\t\t\temit('success', _data, status, file)\n\t\t},\n\t\tonProgress: e => {\n\t\t\tsetFilePropertyByUid(file.uid, 'progress', Math.round((e.loaded / e.total) * 100))\n\t\t\temit('progress', e.loaded, e.total, file)\n\t\t}\n\t})\n}\n\nfunction handleDelete(index: number, item) {\n\tif (props.disabled) return false\n\tlet file = fileList.value.splice(index, 1)\n\tif (fileInput.value.value.includes(item.name)) {\n\t\tfileInput.value.value = ''\n\t}\n\temit('remove', file[0])\n}\nfunction getFileUid(fileObj) {\n\tif (!fileObj) return\n\tlet str = (fileObj.lastModifiedDate ? new Date().getTime() : fileObj.modificationdate) + fileObj.name + fileObj.size\n\treturn md5(str)\n}\nfunction setFilePropertyByUid(uid, key, value) {\n\tlet idx = fileList.value.findIndex(item => item.uid === uid)\n\tif (idx === -1) return\n\tfileList.value[idx][key] = value\n\tconst updatedItem = {\n\t\tlastModified: fileList.value[idx].lastModified,\n\t\tlastModifiedDate: fileList.value[idx].lastModifiedDate,\n\t\tname: fileList.value[idx].name,\n\t\tsize: fileList.value[idx].size,\n\t\ttype: fileList.value[idx].type,\n\t\tuid: fileList.value[idx].uid,\n\t\tsrc: fileList.value[idx].src,\n\t\tstatus: fileList.value[idx].status,\n\t\tprogress: fileList.value[idx].progress,\n\t\t[props.fileIdText]: fileList.value[idx][props.fileIdText],\n\t\t[key]: value\n\t}\n\tfileList.value.splice(idx, 1, updatedItem)\n}\nfunction handleDownload(fileId) {\n\temit('download', fileId)\n}\nfunction clear() {\n\tlet tem = fileList.value.filter(item => item[props.fileIdText])\n\tfileList.value = tem\n}\nasync function submit() {\n\terrorTip.value = ''\n\tlet flag = true\n\tif (typeof props.beforeSelect === 'boolean') {\n\t\tflag = props.beforeSelect\n\t} else {\n\t\tif (props.beforeSelect) {\n\t\t\tif (typeof props.beforeSelect === 'function') {\n\t\t\t\tconst result = props.beforeSelect(uploadList.value)\n\t\t\t\tif (result && typeof (result as Promise<boolean>).then === 'function') {\n\t\t\t\t\tflag = await result\n\t\t\t\t} else {\n\t\t\t\t\tflag = !!result\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tflag = !!props.beforeSelect\n\t\t\t}\n\t\t}\n\t}\n\tif (!flag) return false\n\tuploadList.value.forEach(item => {\n\t\titem.uid = getFileUid(item)\n\t})\n\tif (uploadList.value.length <= props.maxLength) {\n\t\tuploadList.value.forEach(file => {\n\t\t\thandleUpload(file)\n\t\t})\n\t} else {\n\t\t$tip.danger(t('to.upload.tip.error.count', props.maxLength)).catch(() => {})\n\t}\n}\ndefineExpose({\n\tclear,\n\terrorTip,\n\terrorType,\n\tsubmit\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","id","_unref","flex","_normalizeClass","verifiable","_createElementVNode","accept","type","_createBlock","placeholder","_createVNode","$slots","showList","_renderSlot","_openBlock","_Fragment","_renderList","_normalizeStyle","_createTextVNode","_toDisplayString","fileIdText","downloadable"],"mappings":"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"}