ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
2 lines (1 loc) • 4.72 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("../../chunks/module-chunk.js"),R=require("./AudioIcon.js"),B=require("./VideoIcon.js"),A=require("../context.js");require("../../x-provider/index.js");const M=require("../util.js"),U=require("../style/index.js"),X=require("../../_util/hooks/use-state.js"),$=require("ant-design-vue"),D=require("../../x-provider/hooks/use-x-provider-context.js"),v=" ",r="#8c8c8c",G=e.defineComponent({name:"AXAttachmentsFileListCard",__name:"FileListCard",props:{prefixCls:null,item:null,onRemove:{type:Function},className:null,style:null,imageProps:null,icon:null,type:null},setup(t,{expose:k}){e.toRef(t,"prefixCls");const x=["png","jpg","jpeg","gif","bmp","webp","svg"],g=[{key:"default",icon:e.createVNode(o.FileTextFilled,null,null),color:r,ext:[]},{key:"excel",icon:e.createVNode(o.FileExcelFilled,null,null),color:"#22b35e",ext:["xlsx","xls"]},{key:"image",icon:e.createVNode(o.FileImageFilled,null,null),color:r,ext:x},{key:"markdown",icon:e.createVNode(o.FileMarkdownFilled,null,null),color:r,ext:["md","mdx"]},{key:"pdf",icon:e.createVNode(o.FilePdfFilled,null,null),color:"#ff4d4f",ext:["pdf"]},{key:"ppt",icon:e.createVNode(o.FilePptFilled,null,null),color:"#ff6e31",ext:["ppt","pptx"]},{key:"word",icon:e.createVNode(o.FileWordFilled,null,null),color:"#1677ff",ext:["doc","docx"]},{key:"zip",icon:e.createVNode(o.FileZipFilled,null,null),color:"#fab714",ext:["zip","rar","7z","tar","gz"]},{key:"video",icon:e.createVNode(B.default,null,null),color:"#ff4d4f",ext:["mp4","avi","mov","wmv","flv","mkv"]},{key:"audio",icon:e.createVNode(R.default,null,null),color:"#8c8c8c",ext:["mp3","wav","flac","ape","aac","ogg"]}];function F(n,i){return i.some(a=>n.toLowerCase()===`.${a}`)}function w(n){let i=n;const a=["B","KB","MB","GB","TB","PB","EB"];let f=0;for(;i>=1024&&f<a.length-1;)i/=1024,f++;return`${i.toFixed(0)} ${a[f]}`}const I=A.useAttachmentContextInject(),S=e.computed(()=>I.value.disabled),P=e.computed(()=>t.item.name),N=e.computed(()=>t.item.size),s=e.computed(()=>t.item.percent),c=e.computed(()=>t.item.status||"done"),V=e.computed(()=>t.item.description),{getPrefixCls:b}=D.default(),p=e.computed(()=>b("attachment",t.prefixCls)),l=`${p.value}-list-card`,[q,E,O]=U.default(p),T=e.useTemplateRef("file-list-card-container"),u=e.computed(()=>{const n=P.value||"",i=n.match(/^(.*)\.[^.]+$/);return{namePrefix:i?i[1]:n,nameSuffix:i?n.slice(i[1].length):""}}),j=e.computed(()=>F(u.value.nameSuffix,x)),y=e.computed(()=>V.value?V.value:c.value==="uploading"?`${s.value||0}%`:c.value==="error"?t.item.response||v:N.value?w(N.value):v),h=e.computed(()=>{if(t.icon)if(typeof t.icon=="string"){const n=g.find(i=>i.key===t.icon);if(n)return{icon:n.icon,color:n.color}}else return{icon:t.icon,color:void 0};for(const{ext:n,icon:i,color:a}of g)if(F(u.value.nameSuffix,n))return{icon:i,iconColor:a};return{icon:e.createVNode(o.FileTextFilled,{key:"defaultIcon"},null),iconColor:r}}),[z,C]=X.default();e.watch(()=>t.item.originFileObj,()=>{if(t.item.originFileObj){let n=!0;M.previewImage(t.item.originFileObj).then(i=>{n&&C(i)}),e.onWatcherCleanup(()=>{n=!1})}C(void 0)},{immediate:!0});const d=e.computed(()=>t.item.thumbUrl||t.item.url||z.value),m=e.computed(()=>t.type==="image"||t.type!=="file"&&j.value&&(t.item.originFileObj||d.value)),L=e.computed(()=>m.value?e.createVNode(e.Fragment,null,[d.value&&e.createVNode($.Image,e.mergeProps(t.imageProps,{alt:"preview",src:d.value}),null),c.value!=="done"&&e.createVNode("div",{class:`${l}-img-mask`},[c.value==="uploading"&&s.value!==void 0&&e.createVNode($.Progress,{percent:s.value,prefixCls:l},null),c.value==="error"&&e.createVNode("div",{class:`${l}-desc`},[e.createVNode("div",{class:`${l}-ellipsis-prefix`},[y.value])])])]):e.createVNode(e.Fragment,null,[e.createVNode("div",{class:`${l}-icon`,style:{color:h.value.iconColor}},[h.value.icon]),e.createVNode("div",{class:`${l}-content`},[e.createVNode("div",{class:`${l}-name`},[e.createVNode("div",{class:`${l}-ellipsis-prefix`},[u.value.namePrefix??v]),e.createVNode("div",{class:`${l}-ellipsis-suffix`},[u.value.nameSuffix])]),e.createVNode("div",{class:`${l}-desc`},[e.createVNode("div",{class:`${l}-ellipsis-prefix`},[y.value])])])]));return k({nativeElement:T}),()=>q(e.createVNode("div",{class:o.classnames(l,{[`${l}-status-${c.value}`]:c.value,[`${l}-type-preview`]:m.value,[`${l}-type-overview`]:!m.value},t.className,E.value,O),style:t.style,ref:"file-list-card-container"},[L.value,!S.value&&t.onRemove&&e.createVNode("button",{type:"button",class:`${l}-remove`,onClick:()=>{t.onRemove(t.item)}},[e.createVNode(o.CloseCircleFilled,null,null)])]))}});exports.default=G;