{"version":3,"file":"useDrag.mjs","sources":["../../../../components/upload/hooks/useDrag.ts"],"sourcesContent":["import { Ref, ref } from 'vue';\nimport { getFileList } from '@tdesign/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    props.onDrop?.({ e: event });\n    if (dragFiles?.length) {\n      props.onDragFileChange?.(dragFiles);\n    }\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":["useDrag","props","accept","target","ref","dragActive","handleDrop","event","_props$onDrop","preventDefault","value","files","dataTransfer","dragFiles","getFileList","onDrop","call","e","length","_props$onDragFileChan","onDragFileChange","handleDragenter","_props$onDragenter","onDragenter","handleDragleave","_props$onDragleave","onDragleave","handleDragover"],"mappings":";;;;;;;;;;AAWwB,SAAAA,OAAAA,CAAQC,OAAyBC,MAAqB,EAAA;AACtE,EAAA,IAAAC,MAAA,GAASC,IAAI,IAAI,CAAA,CAAA;AACjB,EAAA,IAAAC,UAAA,GAAaD,IAAI,KAAK,CAAA,CAAA;AAEtB,EAAA,IAAAE,UAAA,GAAa,SAAbA,UAAAA,CAAcC,KAAqB,EAAA;AAAA,IAAA,IAAAC,aAAA,CAAA;IACvCD,KAAA,CAAME,cAAe,EAAA,CAAA;IACrBJ,UAAA,CAAWK,KAAQ,GAAA,KAAA,CAAA;AAEb,IAAA,IAAEC,KAAM,GAAIJ,KAAM,CAAAK,YAAA,CAAhBD,KAAM,CAAA;IACd,IAAME,SAAoB,GAAAC,WAAA,CAAYH,KAAO,EAAAT,MAAA,CAAOQ,KAAK,CAAA,CAAA;AACzD,IAAA,CAAAF,aAAA,GAAAP,KAAA,CAAMc,MAAS,MAAA,IAAA,IAAAP,aAAA,KAAA,KAAA,CAAA,IAAfA,aAAA,CAAAQ,IAAA,CAAAf,KAAA,EAAe;AAAEgB,MAAAA,CAAG,EAAAV,KAAAA;AAAM,KAAC,CAAA,CAAA;AAC3B,IAAA,IAAIM,cAAAA,IAAAA,IAAAA,wBAAAA,UAAWK,MAAQ,EAAA;AAAA,MAAA,IAAAC,qBAAA,CAAA;AACrB,MAAA,CAAAA,qBAAA,GAAAlB,KAAA,CAAMmB,wDAAND,KAAAA,CAAAA,IAAAA,qBAAA,CAAAH,IAAA,CAAAf,KAAA,EAAyBY,SAAS,CAAA,CAAA;AACpC,KAAA;GACF,CAAA;AAEM,EAAA,IAAAQ,eAAA,GAAkB,SAAlBA,eAAAA,CAAmBd,KAAqB,EAAA;AAAA,IAAA,IAAAe,kBAAA,CAAA;IAC5Cf,KAAA,CAAME,cAAe,EAAA,CAAA;AACrBN,IAAAA,MAAA,CAAOO,QAAQH,KAAM,CAAAJ,MAAA,CAAA;AACrB,IAAA,CAAAmB,kBAAA,GAAArB,KAAA,CAAMsB,WAAc,MAAA,IAAA,IAAAD,kBAAA,KAAA,KAAA,CAAA,IAApBA,kBAAA,CAAAN,IAAA,CAAAf,KAAA,EAAoB;AAAEgB,MAAAA,CAAG,EAAAV,KAAAA;AAAM,KAAC,CAAA,CAAA;IAChCF,UAAA,CAAWK,KAAQ,GAAA,IAAA,CAAA;GACrB,CAAA;AAEM,EAAA,IAAAc,eAAA,GAAkB,SAAlBA,eAAAA,CAAmBjB,KAAqB,EAAA;AAAA,IAAA,IAAAkB,kBAAA,CAAA;AACxC,IAAA,IAAAlB,KAAA,CAAMJ,WAAWA,MAAO,CAAAO,KAAA,EAAO,OAAA;IACnCH,KAAA,CAAME,cAAe,EAAA,CAAA;AACrB,IAAA,CAAAgB,kBAAA,GAAAxB,KAAA,CAAMyB,WAAc,MAAA,IAAA,IAAAD,kBAAA,KAAA,KAAA,CAAA,IAApBA,kBAAA,CAAAT,IAAA,CAAAf,KAAA,EAAoB;AAAEgB,MAAAA,CAAG,EAAAV,KAAAA;AAAM,KAAC,CAAA,CAAA;IAChCF,UAAA,CAAWK,KAAQ,GAAA,KAAA,CAAA;GACrB,CAAA;AAEM,EAAA,IAAAiB,cAAA,GAAiB,SAAjBA,cAAAA,CAAkBpB,KAAqB,EAAA;IAC3CA,KAAA,CAAME,cAAe,EAAA,CAAA;GACvB,CAAA;EAEO,OAAA;AACLN,IAAAA,MAAA,EAAAA,MAAA;AACAE,IAAAA,UAAA,EAAAA,UAAA;AACAC,IAAAA,UAAA,EAAAA,UAAA;AACAe,IAAAA,eAAA,EAAAA,eAAA;AACAG,IAAAA,eAAA,EAAAA,eAAA;AACAG,IAAAA,cAAA,EAAAA,cAAAA;GACF,CAAA;AACF;;;;"}