UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 3.2 kB
{"version":3,"file":"useDrag.mjs","sources":["../../../src/upload/hooks/useDrag.ts"],"sourcesContent":["import { Ref, ref } from 'vue';\nimport { getFileList } from '../../_common/js/upload/utils';\nimport { TdUploadProps } from '../type';\n\nexport interface UploadDragEvents {\n onDragFileChange?: (files: File[]) => void;\n onDragenter?: TdUploadProps['onDragenter'];\n onDragleave?: TdUploadProps['onDragleave'];\n onDrop?: TdUploadProps['onDrop'];\n}\n\nexport default function useDrag(props: UploadDragEvents, accept: Ref<string>) {\n const target = ref(null);\n const dragActive = ref(false);\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault();\n dragActive.value = false;\n\n const { files } = event.dataTransfer;\n const dragFiles: File[] = getFileList(files, accept.value);\n if (!dragFiles.length) return;\n\n props.onDragFileChange?.(dragFiles);\n props.onDrop?.({ e: event });\n };\n\n const handleDragenter = (event: DragEvent) => {\n event.preventDefault();\n target.value = event.target;\n props.onDragenter?.({ e: event });\n dragActive.value = true;\n };\n\n const handleDragleave = (event: DragEvent) => {\n if (event.target !== target.value) return;\n event.preventDefault();\n props.onDragleave?.({ e: event });\n dragActive.value = false;\n };\n\n const handleDragover = (event: DragEvent) => {\n event.preventDefault();\n };\n\n return {\n target,\n dragActive,\n handleDrop,\n handleDragenter,\n handleDragleave,\n handleDragover,\n };\n}\n"],"names":["e","target","dragActive","handleDrop","handleDragenter","handleDragleave","handleDragover"],"mappings":";;;;;;;;;;AAWA,SAAA,OAAA,CAAA,KAAA,EAAA,MAAA,EAAA;AACQ,EAAA,IAAA,MAAA,GAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AACA,EAAA,IAAA,UAAA,GAAA,GAAA,CAAA,KAAA,CAAA,CAAA;AAEA,EAAA,IAAA,UAAA,GAAA,SAAA,UAAA,CAAA,KAAA,EAAA;;;;AAIE,IAAA,IAAA,KAAA,GAAA,KAAA,CAAA,YAAA,CAAA,KAAA,CAAA;;AAEN,IAAA,IAAA,CAAA,SAAA,CAAA,MAAA,EAAA,OAAA;AAEA,IAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,gBAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,IAAA,CAAA,KAAA,EAAA,SAAA,CAAA,CAAA;AACA,IAAA,CAAA,aAAA,GAAA,KAAA,CAAA,MAAA,MAAA,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,IAAA,CAAA,KAAA,EAAA;AAAiBA,MAAAA,CAAAA,EAAAA,KAAAA;AAAS,KAAA,CAAA,CAAA;;AAGtB,EAAA,IAAA,eAAA,GAAA,SAAA,eAAA,CAAA,KAAA,EAAA;AAAwC,IAAA,IAAA,kBAAA,CAAA;;AAE5CC,IAAAA,MAAAA,CAAAA,KAAAA,GAAAA,KAAAA,CAAAA,MAAAA,CAAAA;AACA,IAAA,CAAA,kBAAA,GAAA,KAAA,CAAA,WAAA,MAAA,IAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAAA,IAAA,CAAA,KAAA,EAAA;AAAsBD,MAAAA,CAAAA,EAAAA,KAAAA;AAAS,KAAA,CAAA,CAAA;;;AAI3B,EAAA,IAAA,eAAA,GAAA,SAAA,eAAA,CAAA,KAAA,EAAA;AAAwC,IAAA,IAAA,kBAAA,CAAA;AACxC,IAAA,IAAA,KAAA,CAAA,MAAA,KAAA,MAAA,CAAA,KAAA,EAAA,OAAA;;AAEJ,IAAA,CAAA,kBAAA,GAAA,KAAA,CAAA,WAAA,MAAA,IAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,kBAAA,CAAA,IAAA,CAAA,KAAA,EAAA;AAAsBA,MAAAA,CAAAA,EAAAA,KAAAA;AAAS,KAAA,CAAA,CAAA;;;AAI3B,EAAA,IAAA,cAAA,GAAA,SAAA,cAAA,CAAA,KAAA,EAAA;;;;AAKJC,IAAAA,MAAAA,EAAAA,MAAAA;AACAC,IAAAA,UAAAA,EAAAA,UAAAA;AACAC,IAAAA,UAAAA,EAAAA,UAAAA;AACAC,IAAAA,eAAAA,EAAAA,eAAAA;AACAC,IAAAA,eAAAA,EAAAA,eAAAA;AACAC,IAAAA,cAAAA,EAAAA,cAAAA;;AAEJ;;;;"}