UNPKG

ant-design-x-vue

Version:

Craft AI-driven interfaces effortlessly

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