hongluan-ui
Version:
Hongluan Component Library for Vue 3
1 lines • 4.78 kB
Source Map (JSON)
{"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n namespace,\n drag && 'is-drag'\n ]\"\n :style=\"[\n gap ? `--upload-item-gap: ${gap}` : '',\n ]\"\n >\n <upload-list\n v-if=\"listType === 'card' && showFileList\"\n :disabled=\"uploadDisabled\"\n :list-type=\"listType\"\n :files=\"uploadFiles\"\n :handle-preview=\"onPreview\"\n :crossorigin=\"crossorigin\"\n @remove=\"handleRemove\"\n >\n <template v-if=\"$slots.file\" #default=\"{ file, index }\">\n <slot name=\"file\" :file=\"file\" :index=\"index\"></slot>\n </template>\n <template v-if=\"$slots['file-preview']\" #file-preview=\"{ file, index }\">\n <slot name=\"file-preview\" :file=\"file\" :index=\"index\"></slot>\n </template>\n <template v-if=\"$slots['file-icon']\" #file-icon=\"{ file, index }\">\n <slot name=\"file-icon\" :file=\"file\" :index=\"index\"></slot>\n </template>\n </upload-list>\n <upload-content\n ref=\"uploadRef\"\n :type=\"type\"\n :drag=\"drag\"\n :action=\"action\"\n :multiple=\"multiple\"\n :with-credentials=\"withCredentials\"\n :headers=\"headers\"\n :method=\"method\"\n :name=\"name\"\n :data=\"data\"\n :accept=\"accept\"\n :file-list=\"uploadFiles\"\n :auto-upload=\"autoUpload\"\n :list-type=\"listType\"\n :disabled=\"uploadDisabled\"\n :limit=\"limit\"\n :http-request=\"httpRequest\"\n :before-upload=\"beforeUpload\"\n :on-exceed=\"onExceed\"\n :on-start=\"handleStart\"\n :on-progress=\"handleProgress\"\n :on-success=\"handleSuccess\"\n :on-error=\"handleError\"\n :on-remove=\"handleRemove\"\n >\n <template #default>\n <slot v-if=\"$slots.trigger\" name=\"trigger\"></slot>\n <slot v-if=\"!$slots.trigger && $slots.default\"></slot>\n </template>\n </upload-content>\n <slot v-if=\"$slots.trigger\"></slot>\n <slot name=\"tip\"></slot>\n <upload-list\n v-if=\"listType !== 'card' && showFileList\"\n :disabled=\"uploadDisabled\"\n :list-type=\"listType\"\n :files=\"uploadFiles\"\n :crossorigin=\"crossorigin\"\n :handle-preview=\"onPreview\"\n @remove=\"handleRemove\"\n >\n <template v-if=\"$slots.file\" #default=\"{ file, index }\">\n <slot name=\"file\" :file=\"file\" :index=\"index\"></slot>\n </template>\n <template v-if=\"$slots['file-icon']\" #file-icon=\"{ file, index }\">\n <slot name=\"file-icon\" :file=\"file\" :index=\"index\"></slot>\n </template>\n </upload-list>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { provide, onBeforeUnmount, toRef, shallowRef } from 'vue'\nimport { uploadContextKey } from '@hongluan-ui/tokens'\nimport { useConsistentProp, useNamespace } from '@hongluan-ui/hooks'\n\nimport UploadList from './upload-list.vue'\nimport UploadContent from './upload-content.vue'\nimport { useHandlers } from './use-handlers'\nimport { uploadProps } from './upload'\nimport type { UploadContentInstance } from './upload-content'\n\ndefineOptions({\n name: 'Upload',\n})\n\nconst props = defineProps(uploadProps)\nconst { disabled: uploadDisabled } = useConsistentProp()\nconst { namespace } = useNamespace('upload')\n\nconst uploadRef = shallowRef<UploadContentInstance>()\nconst {\n abort,\n submit,\n clearFiles,\n uploadFiles,\n handleStart,\n handleError,\n handleRemove,\n handleSuccess,\n handleProgress,\n revokeFileObjectURL,\n} = useHandlers(props, uploadRef)\n\nonBeforeUnmount(() => {\n uploadFiles.value.forEach(revokeFileObjectURL)\n})\n\nprovide(uploadContextKey, {\n accept: toRef(props, 'accept'),\n})\n\ndefineExpose({\n /** @description cancel upload request */\n abort,\n /** @description upload the file list manually */\n submit,\n /** @description clear the file list */\n clearFiles,\n /** @description select the file manually */\n handleStart,\n /** @description remove the file manually */\n handleRemove,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;oCA2Fc;AAAA,EACZ,MAAM;AACR;;;;;;AAGA,UAAM,EAAE,UAAU,mBAAmB;AACrC,UAAM,EAAE,cAAc,aAAa,QAAQ;AAE3C,UAAM,YAAY;AAClB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,YAAY,OAAO,SAAS;AAEhC,oBAAgB,MAAM;AACpB,kBAAY,MAAM,QAAQ,mBAAmB;AAAA,KAC9C;AAED,YAAQ,kBAAkB;AAAA,MACxB,QAAQ,MAAM,OAAO,QAAQ;AAAA,KAC9B;AAED,WAAa;AAAA,MAEX;AAAA,MAEA;AAAA,MAEA;AAAA,MAEA;AAAA,MAEA;AAAA,KACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}