UNPKG

ant-design-x-vue

Version:

Craft AI-driven interfaces effortlessly

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