UNPKG

ant-design-x-vue

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