UNPKG

ant-design-x-vue-next

Version:

Ant Design X for Vue — community continuation aligned with @ant-design/x

2 lines (1 loc) 5.59 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("vue"),t=require("../chunks/module-chunk.js"),z=require("ant-design-vue"),T=require("../_util/pick-attrs.js"),w=require("../_util/hooks/use-x-component-config.js");require("../x-provider/index.js");const A=require("./components/ImageLoading.js"),X=require("./icons/AudioIcon.js"),M=require("./icons/JavaIcon.js"),O=require("./icons/JavaScriptIcon.js"),D=require("./icons/PythonIcon.js"),L=require("./icons/VideoIcon.js"),J=require("./style/index.js"),i=require("./utils.js"),U=require("../x-provider/hooks/use-x-provider-context.js"),B=l.defineComponent({name:"AXFileCard",__name:"FileCard",props:{prefixCls:null,rootClassName:null,className:null,class:null,style:null,classNames:{default:()=>({})},styles:{default:()=>({})},name:null,byte:null,size:{default:"default"},description:null,loading:{type:Boolean},src:null,mask:null,icon:null,type:null,imageProps:null,spinProps:null,videoProps:null,audioProps:null,onClick:{type:Function}},emits:["click"],setup(k,{emit:V}){const e=k,P=V,m=["png","jpg","jpeg","gif","bmp","webp","svg","jfif"],p=["mp3","wav","flac","ape","aac","ogg"],v=["mp4","avi","mov","wmv","flv","mkv"],y=[{icon:l.createVNode(t.FileExcelFilled,null,null),color:"#22b35e",ext:["xlsx","xls"],key:"excel"},{icon:l.createVNode(t.FileImageFilled,null,null),color:"#8c8c8c",ext:m,key:"image"},{icon:l.createVNode(t.FileMarkdownFilled,null,null),color:"#8c8c8c",ext:["md","mdx"],key:"markdown"},{icon:l.createVNode(t.FilePdfFilled,null,null),color:"#ff4d4f",ext:["pdf"],key:"pdf"},{icon:l.createVNode(t.FilePptFilled,null,null),color:"#ff6e31",ext:["ppt","pptx"],key:"ppt"},{icon:l.createVNode(t.FileWordFilled,null,null),color:"#1677ff",ext:["doc","docx"],key:"word"},{icon:l.createVNode(t.FileZipFilled,null,null),color:"#fab714",ext:["zip","rar","7z","tar","gz"],key:"zip"},{icon:l.createVNode(L.default,null,null),color:"#ff4d4f",ext:v,key:"video"},{icon:l.createVNode(X.default,null,null),color:"#ff6e31",ext:p,key:"audio"},{icon:l.createVNode(M.default,null,null),color:"#1677ff",ext:["java"],key:"java"},{icon:l.createVNode(O.default,null,null),color:"#fab714",ext:["js"],key:"javascript"},{icon:l.createVNode(D.default,null,null),color:"#fab714",ext:["py"],key:"python"}],N={icon:l.createVNode(t.FileTextFilled,null,null),color:"#8c8c8c"},F=l.computed(()=>T.default(e,{attr:!0,aria:!0,data:!0})),{direction:I,getPrefixCls:$}=U.default(),a=l.computed(()=>$("file-card",e.prefixCls)),u=w.default("fileCard"),[h,q,b]=J.default(a),x=l.computed(()=>{const o=e.name||"",s=o.match(/^(.*)\.[^.]+$/);return s?[s[1],o.slice(s[1].length)]:[o,""]}),_=l.computed(()=>x.value[0]),c=l.computed(()=>x.value[1]),g=l.computed(()=>{const o=e.icon;if(typeof o=="string"){const s=y.find(j=>j.key===o);if(s)return[s.icon,s.color]}for(const s of y)if(i.matchExt(c.value,s.ext))return[s.icon,s.color];return[N.icon,N.color]}),r=l.computed(()=>e.type?e.type:i.matchExt(c.value,m)?"image":i.matchExt(c.value,p)?"audio":i.matchExt(c.value,v)?"video":"file"),C=l.computed(()=>e.icon&&typeof e.icon!="string"?e.icon:g.value[0]),n=l.computed(()=>({size:typeof e.byte=="number"?i.getSize(e.byte):"",icon:C.value,name:e.name,namePrefix:_.value,nameSuffix:c.value,src:e.src,type:r.value})),d=l.computed(()=>{const o=e.description,s=typeof o=="function"?o(n.value):o;return s===!1?null:s??n.value.size}),f=l.computed(()=>{const o=e.mask,s=typeof o=="function"?o(n.value):o;return s===!1?null:s}),E=o=>{var s;e.onClick&&((s=e.onClick)==null||s.call(e,n.value,o),P("click",n.value,o))},S=l.computed(()=>t.classnames(a.value,u.value.className,e.className,e.class,e.rootClassName,e.classNames.root,q.value,b,{[`${a.value}-rtl`]:I.value==="rtl"}));return()=>{const o=`${a.value}-file`;let s=null;return r.value==="image"?s=l.createVNode("div",{class:t.classnames(`${a.value}-image`,e.classNames.file,{[`${a.value}-loading`]:e.loading}),style:e.styles.file},[l.createVNode(z.Image,l.mergeProps({rootClassName:t.classnames(`${a.value}-image-img`),alt:e.name,src:e.src},e.imageProps),null),e.loading&&l.createVNode(A.default,{prefixCls:a.value,style:e.styles.file,spinProps:e.spinProps},null)]):r.value==="video"?s=l.createVNode("video",l.mergeProps({src:e.src,controls:!0,style:e.styles.file,class:t.classnames(`${a.value}-video`,e.classNames.file)},e.videoProps),null):r.value==="audio"?s=l.createVNode("audio",l.mergeProps({src:e.src,controls:!0,style:e.styles.file,class:t.classnames(`${a.value}-audio`,e.classNames.file)},e.audioProps),null):s=l.createVNode("div",{class:t.classnames(o,e.classNames.file,{[`${o}-pointer`]:!!e.onClick,[`${o}-small`]:e.size==="small"}),style:e.styles.file,onClick:E},[l.createVNode("div",{class:t.classnames(`${o}-icon`,e.classNames.icon),style:{color:g.value[1],...e.styles.icon}},[C.value]),l.createVNode("div",{class:`${o}-content`},[l.createVNode("div",{class:t.classnames(`${o}-name`,e.classNames.name),style:e.styles.name},[l.createVNode("span",{class:`${o}-name-prefix`},[_.value]),l.createVNode("span",{class:`${o}-name-suffix`},[c.value])]),d.value!==null&&d.value!==void 0&&l.createVNode("div",{class:t.classnames(`${o}-description`,e.classNames.description),style:e.styles.description},[d.value])]),f.value!==null&&f.value!==void 0&&l.createVNode("div",{class:`${o}-mask`},[l.createVNode("div",{class:`${o}-mask-info`},[f.value])])]),h(l.createVNode("div",l.mergeProps(F.value,{class:S.value,style:{...typeof u.value.style=="object"?u.value.style:{},...typeof e.style=="object"?e.style:{},...e.styles.root}}),[s]))}}});exports.default=B;