jadq-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 1.52 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),C=require("../chunks/module-chunk.js"),m=require("../_util/hooks/use-state.js"),E=require("./context.js"),L=t.defineComponent({name:"AXAttachmentsDropArea",__name:"DropArea",props:{prefixCls:null,className:null,getDropContainer:{type:Function},children:null},setup(e){const g=E.useAttachmentContextInject(),[n,l]=m.default(),[f,o]=m.default(null);t.onMounted(()=>{var a;l((a=e.getDropContainer)==null?void 0:a.call(e))}),t.watch(()=>t.toValue(e.getDropContainer),()=>{var u;const a=(u=e.getDropContainer)==null?void 0:u.call(e);n.value!==a&&l(a)}),t.watch(()=>!!n.value,(a,u,h)=>{if(n.value){const d=()=>{o(!0)},s=r=>{r.preventDefault()},i=r=>{r.relatedTarget||o(!1)},v=r=>{o(!1),r.preventDefault()};document.addEventListener("dragenter",d),document.addEventListener("dragover",s),document.addEventListener("dragleave",i),document.addEventListener("drop",v),h(()=>{document.removeEventListener("dragenter",d),document.removeEventListener("dragover",s),document.removeEventListener("dragleave",i),document.removeEventListener("drop",v)})}});const D=t.computed(()=>e.getDropContainer&&n.value&&!g.value.disabled),c=`${e.prefixCls}-drop-area`;return()=>D.value?t.createVNode(t.Teleport,{to:n.value},{default:()=>[t.createVNode("div",{class:C.classnames(c,e.className,{[`${c}-on-body`]:n.value.tagName==="BODY"}),style:{display:f.value?"block":"none"}},[e.children])]}):null}});exports.default=L;