element-plus
Version:
A Component Library for Vue 3
1 lines • 3.83 kB
Source Map (JSON)
{"version":3,"file":"upload-dragger2.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('dragger'), ns.is('dragover', dragover)]\"\n @drop.prevent=\"onDrop\"\n @dragover.prevent=\"onDragover\"\n @dragleave.prevent=\"onDragleave\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { throwError } from '@element-plus/utils/error'\nimport { uploadContextKey } from './constants'\nimport { uploadDraggerEmits, uploadDraggerProps } from './upload-dragger'\n\nimport type { UploadRawFile } from './upload'\n\nconst COMPONENT_NAME = 'ElUploadDrag'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\ndefineProps(uploadDraggerProps)\nconst emit = defineEmits(uploadDraggerEmits)\n\nconst uploaderContext = inject(uploadContextKey)\nif (!uploaderContext) {\n throwError(\n COMPONENT_NAME,\n 'usage: <el-upload><el-upload-dragger /></el-upload>'\n )\n}\n\nconst ns = useNamespace('upload')\nconst dragover = ref(false)\nconst disabled = useFormDisabled()\n\nconst onDrop = (e: DragEvent) => {\n if (disabled.value) return\n dragover.value = false\n\n e.stopPropagation()\n\n const files = Array.from(e.dataTransfer!.files) as UploadRawFile[]\n const items = e.dataTransfer!.items || []\n files.forEach((file, index) => {\n const item = items[index]\n const entry = item?.webkitGetAsEntry?.()\n if (entry) {\n file.isDirectory = entry.isDirectory\n }\n })\n emit('file', files)\n}\n\nconst onDragover = () => {\n if (!disabled.value) dragover.value = true\n}\n\nconst onDragleave = (e: DragEvent) => {\n if (!(e.currentTarget as Element).contains(e.relatedTarget as Element))\n dragover.value = false\n}\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_withModifiers","_renderSlot"],"mappings":";;;;;;;;AAqBA,MAAM,cAAiB,GAAA,cAAA,CAAA;;;;;;;;;AAOvB,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEP,IAAA,MAAA,eAAA,GAAkB,OAAO,gBAAgB,CAAA,CAAA;AAC/C,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,UAAA;AAAA,QACE,cAAA;AAAA,QACA,qDAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEM,IAAA,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAC1B,IAAA,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,MAAM,WAAW,eAAgB,EAAA,CAAA;AAE3B,IAAA,MAAA,MAAA,GAAS,CAAC,CAAiB,KAAA;AAC/B,MAAA,IAAI,QAAS,CAAA,KAAA;AAAO,QAAA,OAAA;AACpB,MAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAEjB,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAElB,MAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,CAAA,CAAE,aAAc,KAAK,CAAA,CAAA;AAC9C,MAAA,MAAM,KAAQ,GAAA,CAAA,CAAE,YAAc,CAAA,KAAA,IAAS,EAAC,CAAA;AAClC,MAAA,KAAA,CAAA,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAU,KAAA;;AACvB,QAAA,MAAA,OAAO,KAAM,CAAA,KAAA,CAAA,CAAA;AACb,QAAA,MAAA,KAAA,GAAA,CAAQ,kCAAM,gBAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACd,QAAA,IAAI,KAAO,EAAA;AACT,UAAA,IAAA,CAAK,cAAc,KAAM,CAAA,WAAA,CAAA;AAAA,SAC3B;AAAA,OACD,CAAA,CAAA;AACD,MAAA,IAAA,CAAK,QAAQ,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,CAAC,QAAS,CAAA,KAAA;AAAO,QAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,KACxC,CAAA;AAEM,IAAA,MAAA,WAAA,GAAc,CAAC,CAAiB,KAAA;AACpC,MAAA,IAAI,CAAE,CAAA,CAAE,aAA0B,CAAA,QAAA,CAAS,EAAE,aAAwB,CAAA;AACnE,QAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,KACrB,CAAA;;AAlEE,MAAA,OAAAA,WAAA,EAAAC,kBAAA;AAAA,QAOM,KAAA;AAAA,QAAA;AAAA,UANH,OAAKC,gBAAGC,KAAG,CAAA,EAAA,EAAA,CAAC,CAAA,UAAa,EAAAA,KAAA,CAAG,EAAA,CAAA,CAAA,EAAA,CAAE,YAAa,QAAQ,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,UACnD,MAAI,EAAAC,aAAA,CAAU,MAAM,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,UACpB,UAAQ,EAAAA,aAAA,CAAU,UAAU,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,UAC5B,WAAS,EAAAA,aAAA,CAAU,WAAW,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,SAAA;AAAA;UAE/BC,UAAA,CAAQ,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,SAAA;AAAA;;;;;;;;;"}