UNPKG

@artmate/chat

Version:

**开箱即用的AI组件库(基于 Vue3 + ElementPlus)**

2 lines (1 loc) 1.62 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),f=require("../hooks/useNamespace.js"),p=e.defineComponent({__name:"DropArea",props:{className:{default:""},getDropContainer:{type:[Function,null],default:null},disabled:{type:Boolean,default:!1}},setup(i){const a=i,u=f.useNamespace("attachment-drop-area"),n=e.ref(null),o=e.ref(null);e.watch(()=>a.getDropContainer,()=>{var r;const t=(r=a.getDropContainer)==null?void 0:r.call(a);n.value!==t&&(n.value=t)},{immediate:!0});const v=e.computed(()=>a.getDropContainer&&n.value&&!a.disabled),m=e.computed(()=>{var t;return[a.className,{[u.b("on-body")]:n.value&&((t=n.value)==null?void 0:t.tagName)==="BODY"}]});function l(){o.value=!0}function d(t){t.preventDefault()}function s(t){t.relatedTarget||(o.value=!1)}function c(t){o.value=!1,t.preventDefault()}return e.watch(()=>n.value,()=>{n.value&&(document.addEventListener("dragenter",l),document.addEventListener("dragover",d),document.addEventListener("dragleave",s),document.addEventListener("drop",c,!0))},{immediate:!0}),e.onUnmounted(()=>{n.value&&(document.removeEventListener("dragenter",l),document.removeEventListener("dragover",d),document.removeEventListener("dragleave",s),document.removeEventListener("drop",c))}),(t,r)=>v.value?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:n.value},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(u).b(),...m.value]),style:e.normalizeStyle({display:o.value?"block":"none"})},[e.renderSlot(t.$slots,"default")],6)],8,["to"])):e.createCommentVNode("",!0)}});exports.default=p;