UNPKG

@aotearoan/neon

Version:

Neon is a lightweight design library of Vue 3 components with minimal dependencies.

3 lines (2 loc) 1.06 kB
"use strict";const r=require("vue"),u=require("../../../model/common/state/NeonState.cjs.js"),f=r.defineComponent({name:"NeonDropZone",props:{state:{type:String,default:()=>u.NeonState.Ready},disabled:{type:Boolean,default:!1},circular:{type:Boolean,default:!1}},emits:["files"],setup(s,{emit:d}){const e=r.ref(null),t=r.ref(!1),n=a=>(a!=null&&a.dataTransfer&&(a.preventDefault(),a.dataTransfer.effectAllowed="copy",t.value=!0),!1),l=()=>{t.value=!1},o=a=>(s.state!=="loading"&&!s.disabled&&a!=null&&a.dataTransfer&&(a.preventDefault(),d("files",a.dataTransfer.files),t.value=!1),!1);return r.onMounted(()=>{e.value&&(e.value.addEventListener("dragover",n),e.value.addEventListener("dragenter",n),e.value.addEventListener("dragleave",l),e.value.addEventListener("drop",o))}),r.onUnmounted(()=>{e.value&&(e.value.removeEventListener("dragover",n),e.value.removeEventListener("dragenter",n),e.value.addEventListener("dragleave",l),e.value.removeEventListener("drop",o))}),{active:t,dropzone:e}}});module.exports=f; //# sourceMappingURL=NeonDropZone.cjs.js.map