UNPKG

ant-design-x-vue

Version:

Craft AI-driven interfaces effortlessly

2 lines (1 loc) 4.74 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),I=require("../chunks/helper-chunk.js"),o=require("../chunks/module-chunk.js"),k=require("../_util/hooks/use-x-component-config.js");require("../x-provider/index.js");const T=require("./PlaceholderUploader.js"),q=require("./DropArea.js"),A=require("./SilentUploader.js"),E=require("./FileList/FileList.js"),j=require("./context.js"),X=require("./style/index.js"),M=require("../_util/hooks/use-state.js");require("ant-design-vue");const O=require("../x-provider/hooks/use-x-provider-context.js"),B=l.defineComponent({name:"AXAttachments",__name:"Attachments",props:l.mergeDefaults({capture:null,type:null,name:null,defaultFileList:null,action:null,directory:null,data:null,method:null,headers:null,showUploadList:null,multiple:null,accept:null,beforeUpload:null,onChange:{type:Function},"onUpdate:fileList":null,onDrop:null,listType:null,onPreview:null,onDownload:null,onReject:null,onRemove:null,remove:null,supportServerRender:null,disabled:{type:Boolean},prefixCls:null,customRequest:null,withCredentials:null,openFileDialogOnClick:null,locale:null,id:null,previewFile:null,transformFile:null,iconRender:null,isImageUrl:null,progress:null,itemRender:null,maxCount:null,height:null,removeIcon:null,downloadIcon:null,previewIcon:null,rootClassName:null,rootStyle:null,style:null,className:null,classNames:null,styles:null,children:null,placeholder:{type:Function},getDropContainer:{type:Function},items:null,overflow:null,imageProps:null},{items:()=>[],classNames:()=>({}),styles:()=>({})}),setup(e,{expose:w}){const S=I.createPropsRestProxy(e,["prefixCls","rootClassName","rootStyle","className","style","items","children","getDropContainer","placeholder","onChange","onRemove","overflow","imageProps","disabled","classNames","styles"]);l.toRef(e,"prefixCls");const v=l.useSlots(),{getPrefixCls:F,direction:C}=O.default(),n=F("attachment",e.prefixCls),y=k.default("attachments"),i=l.computed(()=>y.value.classNames),r=l.computed(()=>y.value.styles),g=l.useTemplateRef("attachments-container"),D=l.useTemplateRef("placeholder-uploader"),[L,b,V]=X.default(n),m=l.computed(()=>o.classnames(b.value,V)),[c,N]=M.default(e.items);l.watch(()=>e.items,()=>{N(e.items)});const x=t=>{var a;N(t.fileList),(a=e.onChange)==null||a.call(e,t)},h=l.computed(()=>({...S,fileList:c.value,onChange:x})),U=t=>Promise.resolve(typeof e.onRemove=="function"?e.onRemove(t):e.onRemove).then(a=>{if(a===!1)return;const s=c.value.filter(d=>d.uid!==t.uid);x({file:{...t,status:"removed"},fileList:s})}),f=(t,a)=>{const s=v.placeholder?v.placeholder({type:t}):typeof e.placeholder=="function"?e.placeholder(t):e.placeholder;return l.createVNode(T.default,{placeholder:s,upload:h.value,prefixCls:n,className:o.classnames(i.value.placeholder,e.classNames.placeholder),style:{...r.value.placeholder,...e.styles.placeholder,...a==null?void 0:a.style},ref:t==="inline"?"placeholder-uploader":void 0},null)},p=l.computed(()=>c.value.length>0);return w({nativeElement:g.value,upload:t=>{var d,R,P;const a=(P=(d=D.value)==null?void 0:(R=d.nativeElement).querySelector)==null?void 0:P.call(R,'input[type="file"]');if(!a)return;const s=new DataTransfer;try{if("length"in t&&t.length>=1)for(let u=0;u<t.length;u++)s.items.add(t[u]);else s.items.add(t);a.files=s.files,a.dispatchEvent(new Event("change",{bubbles:!0}))}catch(u){console.error("upload failed",u)}}}),()=>L(l.createVNode(j.AttachmentContextProvider,{value:{disabled:e.disabled}},{default:()=>[e.children?l.createVNode(l.Fragment,null,[l.createVNode(A.default,{upload:h.value,rootClassName:e.rootClassName,ref:"attachments-upload",children:e.children},null),l.createVNode(q.default,{getDropContainer:e.getDropContainer,prefixCls:n,className:o.classnames(m.value,e.rootClassName),children:f("drop")},null)]):l.createVNode("div",{class:o.classnames(n,m.value,{[`${n}-rtl`]:C.value==="rtl"},e.className,e.rootClassName),style:{...e.rootStyle,...e.style},dir:C.value||"ltr",ref:"attachments-container"},[l.createVNode(E.default,{prefixCls:n,items:c.value,onRemove:U,overflow:e.overflow,upload:h.value,listClassName:o.classnames(i.value.list,e.classNames.list),listStyle:{...r.value.list,...e.styles.list,...!p.value&&{display:"none"}},uploadClassName:o.classnames(i.value.upload,e.classNames.upload),uploadStyle:{...r.value.upload,...e.styles.upload},itemClassName:o.classnames(i.value.item,e.classNames.item),itemStyle:{...r.value.item,...e.styles.item},imageProps:e.imageProps},null),f("inline",p.value?{style:{display:"none"}}:{}),l.createVNode(q.default,{getDropContainer:e.getDropContainer||(()=>g.value),prefixCls:n,className:m.value,children:f("drop")},null)])]}))}});exports.default=B;