@artmate/chat
Version:
借鉴字节开源react库AntX,通过vue实现的版本
2 lines (1 loc) • 3.84 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),S=require("../fileList/index.vue.js");;/* empty css */const k=require("../hooks/useNamespace.js"),h=require("./DropArea.vue.js");;/* empty css */const p=require("./PlaceholderUploader.vue.js");;/* empty css */const q=require("./silentUploader.vue.js"),R=["dir"],$=e.defineComponent({name:"Attachment",__name:"index",props:{direction:{},uploadProps:{},items:{default:()=>[]},rootClassName:{},getDropContainer:{},className:{},classNames:{},styles:{},rootStyle:{},onChange:{},disabled:{type:Boolean},overflow:{}},setup(C,{expose:g}){const t=C,f=k.useNamespace("attachment"),N=e.useSlots(),d=e.ref(),u=e.ref(),c=e.ref(),r=e.ref(t.items);e.watch(()=>t.items,l=>{r.value=l});const m=(l,s)=>{var o;const a={file:l,fileList:s};r.value=s,(o=t.onChange)==null||o.call(t,a)},n=e.computed(()=>({...t.uploadProps,fileList:r.value,onChange:m})),w=l=>{const s=r.value.filter(a=>a.uid!==l.uid);m(l,s)},_=e.computed(()=>r.value.length>0);return g({ref:d.value,nativeElement:c.value,upload:l=>{var a;const s=((a=u.value)==null?void 0:a.$el).querySelector('input[type="file"]');if(s){const o=new DataTransfer;o.items.add(l),s.files=o.files,s.dispatchEvent(new Event("change",{bubbles:!0}))}}}),(l,s)=>{var a,o,v,y,b;return e.unref(N).default?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(q.default,{ref_key:"uploadRef",ref:u,disabled:t.disabled,"root-class-name":t.rootClassName,upload:n.value},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["disabled","root-class-name","upload"]),e.createVNode(h.default,{"class-name":t.rootClassName,disabled:t.disabled,"get-drop-container":t.getDropContainer},{default:e.withCtx(()=>{var i;return[e.createVNode(p.default,{ref_key:"CurrentRef",ref:d,"class-name":(i=t.classNames)==null?void 0:i.placeholder,disabled:t.disabled,upload:n.value,type:"drop"},null,8,["class-name","disabled","upload"])]}),_:1},8,["class-name","disabled","get-drop-container"])],64)):(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"containerRef",ref:c,class:e.normalizeClass([e.unref(f).b(),t.direction==="rtl"&&[e.unref(f).b("rtl")],t.className,t.rootClassName]),dir:t.direction||"ltr",style:e.normalizeStyle(t.rootStyle)},[e.createVNode(S.default,{disabled:t.disabled,"item-class-name":(a=t.classNames)==null?void 0:a.item,"item-style":(o=t.styles)==null?void 0:o.item,items:r.value,"list-class-name":(v=t.classNames)==null?void 0:v.list,"list-style":{...(y=t.styles)==null?void 0:y.list,display:_.value?"":"none"},"on-remove":w,overflow:t.overflow,upload:n.value},null,8,["disabled","item-class-name","item-style","items","list-class-name","list-style","overflow","upload"]),e.createVNode(p.default,{ref_key:"uploadRef",ref:u,"class-name":(b=t.classNames)==null?void 0:b.placeholder,disabled:t.disabled,style:e.normalizeStyle(_.value?{display:"none"}:{}),upload:n.value,type:"inline"},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"icon")]),title:e.withCtx(()=>[e.renderSlot(l.$slots,"title")]),description:e.withCtx(()=>[e.renderSlot(l.$slots,"description")]),_:3},8,["class-name","disabled","style","upload"]),e.createVNode(h.default,{disabled:t.disabled,"get-drop-container":t.getDropContainer||(()=>c.value)},{default:e.withCtx(()=>{var i;return[e.createVNode(p.default,{ref_key:"CurrentRef",ref:d,"class-name":(i=t.classNames)==null?void 0:i.placeholder,disabled:t.disabled,upload:n.value,type:"drop"},{icon:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),title:e.withCtx(()=>[e.renderSlot(l.$slots,"title")]),description:e.withCtx(()=>[e.renderSlot(l.$slots,"description")]),_:3},8,["class-name","disabled","upload"])]}),_:3},8,["disabled","get-drop-container"])],14,R))}}});exports.default=$;