@pantograph/vue 0.30.13 → 0.30.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Alert/index.js +18 -17
- package/dist/Alert/index.umd.cjs +1 -1
- package/dist/Upload/index.js +117 -114
- package/dist/Upload/index.umd.cjs +1 -1
- package/dist/style/index.css +1 -1
- package/dist/use/index.js +1 -1
- package/dist/use/index.umd.cjs +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("reka-ui"),g=require("@pantograph/utils"),ae=require("class-variance-authority"),ce=require("../Progress.vue_vue_type_style_index_0_lang-B-OM1USr.js"),je=require("../FloatButton.vue_vue_type_script_setup_true_lang-Dadp9ViH.js"),O=require("../IconButton.vue_vue_type_script_setup_true_lang-i5ZOiWt-.js"),Oe=require("../Image.vue_vue_type_style_index_0_lang-BBxqLThg.js"),k=require("es-toolkit"),De=require("../GraphicalObject.vue_vue_type_script_setup_true_lang-BDZKksip.js"),I=require("@pantograph/utils-vue"),Ne=require("../FormValidation.vue_vue_type_style_index_0_lang-DcXAThgj.js"),V=require("../isObject-BDHKUJKN.js"),qe=require("../isArray-Bin_5of_.js"),Y=g.getBemBlock("upload"),N=g.getBemElement(Y,"list"),F=g.getBemElement(N,"item"),[Ae,ue]=X.createContext("BaseUpload"),pe=()=>Ae(null),[q,de]=X.createContext("Upload"),me=["error","paused","done","uploading","waiting"],Z=["md","lg","xlg"],Q=["image","card"],fe=["outline","transparent"],K={other:{icon:"tabler:file-text",fg:"primary",bg:"primary-subtle"},text:{icon:"tabler:file-typography",fg:"primary",bg:"primary-subtle"},image:{icon:"tabler:photo",fg:"primary",bg:"primary-subtle"},video:{icon:"tabler:video",fg:"primary",bg:"primary-subtle"},zip:{icon:"tabler:file-zip",fg:"primary",bg:"primary-subtle"},pdf:{icon:"tabler:file-type-pdf",fg:"red",bg:"red-subtle"},document:{icon:"tabler:file-type-docx",fg:"primary",bg:"primary-subtle"},excel:{icon:"tabler:file-type-csv",fg:"green",bg:"green-subtle"}},le={image:["3fr","arw","bmp","dib","cr2","crw","dng","gif","heic","heif","ico","jfif","jpe","jpeg","jpg","jp2","nef","png","raf","raw","rw2","sr2","svg","svg","tga","tif","tiff","wdp","webp"],video:["3g2","3gp2","3gp","3gpp","asf","asx","avi","flv","m1v","m2v","mod","mp2v","mpa","mpe","mpv2","mpeg","mpegvideo","m2t","m2ts","tts","ts","mkv","mp4v","mp4","mov","m4v","mjpeg","mts","ogv","webm","wm","wmv","wmx","wvx"],text:["addin","dtsconfig","vssettings","vstemplate","xml","xrm-ms","xsd","xsl","cd","cs","csproj","iss","py","pyw","rc","rc2","rct","sln","srt","txt","user","vb","vbproj","vdp","vdproj","vspscc","vsscc","vssscc","contact","css","group","html","htm","shtml","htc","ics","iqy","odc","sct","wsc","vcf","vtt"],zip:["zip","7z","rar","tar.gz"],document:["doc","docx","odt","rtf"],excel:["xls","xlsx","csv","ods"],pdf:["pdf"]},ge=(t,o)=>{if(t){for(const[n,d]of Object.entries(le))if(d.includes(t.toLowerCase()))return n}return o&&Object.keys(le).includes(o)?o:"other"},ve=(t="")=>{const o=t.split("/"),d=o[o.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(d)||[""])[0]},M=t=>{var o,n,d;return(d=(n=(o=t==null?void 0:t.split)==null?void 0:o.call(t,"/"))==null?void 0:n.pop)==null?void 0:d.call(n)},Ve=t=>{var n;let o=M((t==null?void 0:t.type)||((n=t==null?void 0:t.originFileObj)==null?void 0:n.type));if(t!=null&&t.url&&!o)try{o=ve(t==null?void 0:t.url)}catch{}return o},$e=t=>{var o,n;return(n=(o=t==null?void 0:t.split)==null?void 0:o.call(t,"/"))==null?void 0:n[0]},Me=t=>{var o;return $e((t==null?void 0:t.type)||((o=t==null?void 0:t.originFileObj)==null?void 0:o.type))},$=t=>ge(t)==="image",he=t=>{if(t.type&&!t.thumbUrl)return $(M(t.type));const o=t.thumbUrl||t.url||"",n=ve(o);return/^data:image\//.test(o)||$(n)?!0:!(/^data:/.test(o)||n)},Ge=e.defineComponent({...g.getComponentOptions("UploadListItemImage"),__name:"UploadListItemImage",setup(t){const o=q(),n=ee(),d=()=>{var s,a,v;k.isFunction((s=n.props.uploadFile)==null?void 0:s.cancel)&&((v=(a=n.props.uploadFile).cancel)==null||v.call(a)),o.remove(n.props.uploadFile.uid)};return(s,a)=>{var v;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(n).props.uploadFile.status!=="waiting"?(e.openBlock(),e.createBlock(Oe._sfc_main,{key:0,src:e.unref(he)(e.unref(n).props.uploadFile)?e.unref(n).props.uploadFile.thumbUrl??e.unref(n).props.uploadFile.url:void 0,aspectRatio:"1:1",class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(F),"image")),sizeRange:"xsm",alt:e.unref(n).label.value,hovered:e.unref(n).props.uploadFile.status==="uploading",width:"100%"},e.createSlots({_:2},[["error","done"].includes(e.unref(n).props.uploadFile.status)?{name:"actions",fn:e.withCtx(()=>[e.unref(n).props.uploadFile.status==="done"?(e.openBlock(),e.createBlock(O._sfc_main,{key:0,color:"neutral",type:"ghost",icon:"tabler:eye",size:"sm",onClick:a[0]||(a[0]=e.withModifiers(p=>e.unref(o).emit("preview",e.unref(n).props.uploadFile),["stop"]))})):e.unref(n).props.uploadFile.status==="error"?(e.openBlock(),e.createBlock(O._sfc_main,{key:1,color:"neutral",type:"ghost",icon:"tabler:reload",size:"sm",onClick:a[1]||(a[1]=e.withModifiers(p=>e.unref(o).resetRequest(e.unref(n).props.uploadFile.uid),["stop"]))})):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["src","class","alt","hovered"])):e.createCommentVNode("",!0),["uploading","waiting"].includes(e.unref(n).props.uploadFile.status)?(e.openBlock(),e.createBlock(ce._sfc_main,{key:1,type:"circle",size:e.unref(o).progressSize.value,class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(F),"progress")),indeterminate:e.unref(n).props.uploadFile.status==="waiting",percent:((v=e.unref(n).props.uploadFile)==null?void 0:v.percent)??0},null,8,["size","class","indeterminate","percent"])):e.createCommentVNode("",!0),e.createVNode(je._sfc_main,{class:e.normalizeClass(e.unref(g.normCls)(e.unref(g.getBemElement)(e.unref(F),"cancel"),"pantograph-tokens pantograph-dark")),color:"neutral",icon:"tabler:x",size:"sm",onClick:e.withModifiers(d,["stop"])},null,8,["class"])],64)}}}),We=e.defineComponent({...g.getComponentOptions("UploadFileGO"),__name:"UploadFileGO",setup(t){const o=ee(),n=q(),d=e.computed(()=>ge(Ve(o.props.uploadFile),Me(o.props.uploadFile))),s=e.computed(()=>k.isFunction(n.props.getFileIcon)?n.props.getFileIcon(o.props.uploadFile):K[d.value].icon),a=e.computed(()=>K[d.value].fg),v=e.computed(()=>K[d.value].bg),p=()=>{var h,y,m,z;const i=(y=(h=n.slots).go)==null?void 0:y.call(h,{uploadFile:o.props.uploadFile});return I.isEmptyElement(i)?he(o.props.uploadFile)?e.h("img",{class:g.getBemElement(F,"thumb"),alt:o.props.uploadFile.name??"",src:((m=o.props.uploadFile)==null?void 0:m.thumbUrl)??((z=o.props.uploadFile)==null?void 0:z.url)}):null:i},c=()=>{var h,y;const i=(y=(h=n.slots).goIcon)==null?void 0:y.call(h,{uploadFile:o.props.uploadFile});return I.isEmptyElement(i)?null:i},u=()=>e.h(De._sfc_main,{size:n.goSize.value,icon:s.value,fg:a.value,bg:v.value},{default:p,icon:c});return(i,h)=>(e.openBlock(),e.createBlock(u))}}),He=e.defineComponent({...g.getComponentOptions("UploadListItemCard"),__name:"UploadListItemCard",setup(t){const o=q(),n=ee(),d=()=>{var i,h;const c=(h=(i=o.slots).description)==null?void 0:h.call(i,{uploadFile:n.props.uploadFile});let u;if(I.isEmptyElement(c)||(u=c),n.props.uploadFile.description&&(u=n.props.uploadFile.description),u)return e.h("div",{class:g.getBemElement(F,"description")},u)},s=()=>{var u,i;const c=(i=(u=o.slots).title)==null?void 0:i.call(u,{uploadFile:n.props.uploadFile});return I.isEmptyElement(c)?n.label.value:c},a=()=>{var c;if(k.isFunction(o.props.onDownload))return o.props.onDownload(n.props.uploadFile);if((c=n.props.uploadFile)!=null&&c.url&&typeof window<"u")return window.open(n.props.uploadFile.url)},v=e.computed(()=>{var c,u;return(c=n.props.uploadFile)!=null&&c.percent&&((u=n.props.uploadFile)==null?void 0:u.status)!=="waiting"?`${(n.props.uploadFile.percent??0).toFixed(0)}%`:"waiting..."}),p=(c,u)=>{var h,y,m,z;const i=(y=(h=o.slots)==null?void 0:h.actions)==null?void 0:y.call(h,{...o,uploadFile:n.props.uploadFile,downloadFile:a});return I.isEmptyElement(i)?(z=(m=u.slots)==null?void 0:m.default)==null?void 0:z.call(m,{}):i};return(c,u)=>{var i;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(o).props.go?(e.openBlock(),e.createBlock(We,{key:0})):e.createCommentVNode("",!0),["error","done"].includes(e.unref(n).props.uploadFile.status)?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(F),"content"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(F),"title"))},[e.createVNode(s)],2),e.unref(n).props.uploadFile.status==="error"?(e.openBlock(),e.createBlock(Ne._sfc_main,{key:0,message:"Failed",status:"error"})):e.unref(o).props.size!=="md"?(e.openBlock(),e.createBlock(d,{key:1})):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createBlock(ce._sfc_main,{key:1,class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(F),"progress")),percent:((i=e.unref(n).props.uploadFile)==null?void 0:i.percent)??0,label:e.unref(n).label.value,helperText:v.value,helperTextCls:e.unref(g.getBemElement)(e.unref(F),"percent")},{label:e.withCtx(()=>[e.createVNode(s)]),_:1},8,["class","percent","label","helperText","helperTextCls"])),e.createVNode(p,null,{default:e.withCtx(()=>{var h;return[e.unref(n).props.uploadFile.status==="done"?(e.openBlock(),e.createBlock(O._sfc_main,{key:0,icon:"tabler:download",size:"sm",type:"ghost",color:"neutral",onClick:e.withModifiers(a,["stop"])})):e.createCommentVNode("",!0),e.unref(o).props.pausableChunked&&e.unref(n).props.uploadFile.status==="uploading"&&((h=e.unref(n).props.uploadFile.chunks)!=null&&h.length)&&e.unref(k.isFunction)(e.unref(n).props.uploadFile.cancel)?(e.openBlock(),e.createBlock(O._sfc_main,{key:1,icon:"tabler:pause",size:"sm",type:"ghost",color:"neutral",onClick:e.withModifiers(e.unref(n).props.uploadFile.cancel,["stop"])},null,8,["onClick"])):e.unref(o).canRunUpload(e.unref(n).props.uploadFile.uid)?(e.openBlock(),e.createBlock(O._sfc_main,{key:2,icon:["paused","waiting"].includes(e.unref(n).props.uploadFile.status)?"tabler:player-play":"tabler:reload",size:"sm",type:"ghost",color:"neutral",onClick:u[0]||(u[0]=e.withModifiers(y=>e.unref(o).resetRequest(e.unref(n).props.uploadFile.uid),["stop"]))},null,8,["icon"])):e.createCommentVNode("",!0),e.createVNode(O._sfc_main,{icon:["done","error"].includes(e.unref(n).props.uploadFile.status)?"tabler:trash":"tabler:x",size:"sm",type:"ghost",color:"neutral",onClick:u[1]||(u[1]=e.withModifiers(y=>e.unref(o).remove(e.unref(n).props.uploadFile.uid),["stop"]))},null,8,["icon"])]}),_:1})],64)}}}),[ee,Je]=X.createContext("UploadItem"),Ke=e.defineComponent({...g.getComponentOptions("UploadListItem"),__name:"UploadListItem",props:{uploadFile:{}},setup(t){const o=t,n=ae.cva(F,{variants:{size:g.generateVariantClassList(Z,F),listType:g.generateVariantClassList(Q,F),type:g.generateVariantClassList(fe,F),status:g.generateVariantClassList(me,F)}}),d=e.computed(()=>{var v,p,c;return((v=o.uploadFile)==null?void 0:v.name)??((c=(p=o.uploadFile)==null?void 0:p.originFileObj)==null?void 0:c.name)}),s=q();Je({props:o,label:d});const a=()=>{var p,c;const v=(c=(p=s.slots).listItem)==null?void 0:c.call(p,{...s,uploadFile:o.uploadFile});return I.isEmptyElement(v)?s.props.listType==="card"?e.h(He):e.h(Ge):v};return(v,p)=>{var c,u,i;return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:e.unref(n)({size:e.unref(s).props.size,listType:e.unref(s).props.listType,type:e.unref(s).props.type,status:(c=t.uploadFile)==null?void 0:c.status})},{...((i=(u=e.unref(s).props).getUploadItemProps)==null?void 0:i.call(u,t.uploadFile))??{}}),[e.createVNode(a)],16)}}}),Xe=(t,o,n=1024*1024)=>{const d=[];let s=0,a=0;for(;s<t.size;){const v=Math.min(s+n,t.size),p=t.slice(s,v);d.push({chunk:p,chunkSize:v-s,index:a,uid:o(),status:"waiting"}),s=v,a++}return d},ye=(t,{getUid:o,chunkFile:n,chunkSize:d})=>{if(V.isObject(t)){let s;if(t instanceof File)s=t;else try{s=new File([t],t.name??"",{type:t.type??""})}catch{s=new Blob([t],{type:t.type??""}),s.lastModified=new Date().getTime(),s.name=t.name??"",s.webkitRelativePath=""}if(V.isObject(s)&&s instanceof Blob){let a=[];return n&&(a=Xe(s,()=>(o==null?void 0:o(!0))??g.usePCId(void 0,!0),d)),{uid:t.uid??(o==null?void 0:o())??g.usePCId(void 0,!0),originFileObj:s,status:"waiting",chunks:a!=null&&a.length&&(a==null?void 0:a.length)>1?a:void 0,chunksCount:a!=null&&a.length&&(a==null?void 0:a.length)>1?a.length:void 0,name:s==null?void 0:s.name,type:s==null?void 0:s.type,size:s==null?void 0:s.size,lastModified:s==null?void 0:s.lastModified,thumbUrl:void 0}}}},Ye=(t,o)=>{if(V.isObject(t))return t instanceof Blob||t instanceof File?ye(t,o):(!t.uid&&!Object.isFrozen(t)&&(t.uid=o.getUid()),t)},ke=(t,o)=>{if(t&&o){const n=Array.isArray(o)?o:o.split(","),d=(t==null?void 0:t.name)||"",s=(t==null?void 0:t.type)||"",a=s.replace(/\/.*$/,"");return n.some(v=>{const p=v.trim();if(/^\*(?<temp1>\/\*)?$/.test(v))return!0;if(p.charAt(0)==="."){const c=d.toLowerCase(),u=p.toLowerCase();let i=[u];return(u===".jpg"||u===".jpeg")&&(i=[".jpg",".jpeg"]),i.some(h=>c.endsWith(h))}return/\/\*$/.test(p)?a===p.replace(/\/.*$/,""):!!(s===p||/^\w+$/.test(p))})}return!0},j=200;function Ze(t){return new Promise(o=>{if(!t.type||!$(M(t.type))){o("");return}const n=document.createElement("canvas");n.width=j,n.height=j,n.style.cssText=`position: fixed; left: 0; top: 0; width: ${j}px; height: ${j}px; z-index: 9999; display: none;`,document.body.appendChild(n);const d=n.getContext("2d"),s=new Image;if(s.onload=()=>{const{width:a,height:v}=s;let p=j,c=j,u=0,i=0;a>v?(c=v*(j/a),i=-(c-p)/2):(p=a*(j/v),u=-(p-c)/2),d.drawImage(s,u,i,p,c);const h=n.toDataURL();document.body.removeChild(n),o(h)},s.crossOrigin="anonymous",t.type.startsWith("image/svg+xml")){const a=new FileReader;a.addEventListener("load",()=>{a.result&&(s.src=a.result)}),a.readAsDataURL(t)}else s.src=window.URL.createObjectURL(t)})}const te=e.defineComponent({...g.getComponentOptions("UploadList"),__name:"UploadList",props:{onDownload:{},parallelUpload:{type:Boolean},uploadOnSelect:{type:Boolean,default:!0},pausableChunked:{type:Boolean},getUploadItemProps:{},noTrigger:{type:Boolean},fileList:{},size:{default:"md"},chunkSize:{},listType:{default:"card"},type:{default:"outline"},go:{type:Boolean,default:!0},maxCount:{},action:{},getFileIcon:{},triggerCls:{type:[Array,Object,String,Number,null,Boolean]},fileListCls:{type:[Array,Object,String,Number,null,Boolean]},directory:{type:Boolean},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:void 0},accept:{}},emits:["update:fileList","change","preview","createRequest","resetRequest","remove"],setup(t,{expose:o,emit:n}){const d=t,s=n,a=e.useSlots(),v=e.useAttrs(),p=pe(),c=(...l)=>{s(...l),p==null||p.emit(...l)},u=e.computed(()=>(p==null?void 0:p.props)??d),i=e.computed(()=>u.value.maxCount?Number(u.value.maxCount):0),h=e.computed(()=>u.value.listType!=="image"&&u.value.pausableChunked),y=e.computed(()=>u.value.accept??u.value.listType==="image"?"image/*":void 0),m=e.ref([]);let z=!1;e.watch(()=>u.value.fileList,l=>{var f,b;if(!z){const U=(b=(f=l??[])==null?void 0:f.map)==null?void 0:b.call(f,L=>{if(L&&V.isObject(L))return Ye(L,{getUid:ie,chunkFile:h.value,chunkSize:u.value.chunkSize})}).filter(Boolean);k.isEqual(U,m.value)||(z=!0,m.value=U,e.nextTick(()=>z=!1))}},{immediate:!0,deep:!0}),e.watch(m,l=>{z||(z=!0,c("update:fileList",l??[]),e.nextTick(()=>z=!1))},{immediate:!0,deep:!0});const G=l=>m.value.find(f=>l&&f.uid===l),W=l=>m.value.findIndex(f=>l&&f.uid===l),Ce=l=>{if(l){const f=W(l.uid);f===-1&&(!i.value||i.value>m.value.length)?m.value.push(l):f>-1&&m.value.splice(f,0,l),c("change",{file:k.cloneDeep(l),fileList:k.cloneDeep(m.value),event:"add"})}},we=l=>{qe.isArray(l)&&l.filter(f=>!u.value.directory||ke(f,y.value)).forEach(f=>{Ce(ye(f,{getUid:ie,chunkFile:h.value,chunkSize:u.value.chunkSize}))})},E=e.ref([]),oe=()=>{var l;return u.value.uploadOnSelect||u.value.listType==="image"?((l=m.value)==null?void 0:l.filter(f=>E.value.includes(f.uid)?!1:f.status==="waiting"&&f.originFileObj))??[]:[]},P=(l,f)=>{if(l&&f){const b=W(l);b>-1&&(m.value[b]={...m.value[b],...f})}},be=l=>{E.value=E.value.filter(f=>f!==l)},H=async l=>{var f,b,U,L;if(l&&m.value){const C=G(l),Te=h.value&&((f=C==null?void 0:C.chunks)==null?void 0:f.length)&&(C==null?void 0:C.chunks.length)>1&&(C==null?void 0:C.status)==="uploading"&&(C==null?void 0:C.chunks.some(A=>A.status==="waiting"));if(C&&k.isFunction(u.value.action)&&(!E.value.length||u.value.parallelUpload||Te)){E.value.includes(l)||E.value.push(l);const A=new AbortController,Se=()=>{const B=()=>{A.abort()},x=k.cloneDeep(C);if(h.value&&x.chunks&&x.chunks.length>1){const r=x.chunks.findIndex(w=>w.status==="waiting");r>-1&&(x.chunks[r]={...x.chunks[r],status:"uploading",cancel:B})}P(x.uid,{status:"uploading",cancel:B})};let _={signal:A.signal,onUploadProgress(){},uid:C.uid};if(h.value&&C.chunks&&C.chunks.length>1&&C.chunks.some(B=>B.status==="waiting")){const B=C.chunks.find(x=>x.status==="waiting");B!=null&&B.uid&&(_={..._,...k.pick(B,["chunk","chunkSize","index"]),chunkUid:B.uid,onUploadProgress(x){var w,S,R,se;const r=k.cloneDeep(m.value.find(D=>D.uid===C.uid));if(r){const D=(w=r.chunks)==null?void 0:w.findIndex(J=>J.uid===B.uid);if(D!==void 0&&((S=r.chunks)!=null&&S[D])&&(r.chunks[D].percent=Math.round(x.loaded*100/x.total)),(R=r.chunks)!=null&&R.length&&((se=r.chunks)==null?void 0:se.length)>1){const J=r.chunks.reduce((Pe,Re)=>Pe+(Re.percent??0),0);r.percent=Math.min(Math.max(J/r.chunks.length,0),100)}else r.percent=Math.round(x.loaded*100/x.total);P(r.uid,{chunks:r.chunks,percent:r.percent})}}})}else _={..._,file:C.originFileObj,onUploadProgress(B){const x=k.cloneDeep(m.value.find(r=>r.uid===C.uid));x&&P(x.uid,{percent:Math.round(B.loaded*100/B.total)})}};if(Se(),_.file||_.chunk){c("createRequest",C),c("change",{file:k.cloneDeep(C),fileList:k.cloneDeep(m.value),event:"upload"});let B=!1;try{let x=await u.value.action(_);try{typeof x=="string"&&(x=JSON.parse(x))}catch{}let r=k.cloneDeep(m.value.find(w=>w.uid===_.uid));if(r){if(_.chunkUid&&((b=r.chunks)!=null&&b.length)&&r.chunks.length>1){const w=r.chunks.findIndex(R=>R.uid===_.chunkUid);r.chunks[w]&&(r.chunks[w]={...r.chunks[w],cancel:void 0,status:"done",response:x??void 0});const S=r.chunks.every(R=>R.status==="done")?"done":"uploading";S==="done"?r={...r,cancel:void 0,status:S}:r.chunks.some(R=>R.status==="waiting")&&(B=!0)}else r={...r,cancel:void 0,status:"done",response:x??void 0};P(_.uid,r),B&&await H(l)}}catch(x){if(x.name==="CanceledError"){let r=k.cloneDeep(m.value.find(w=>w.uid===_.uid));if(r){if(_.chunkUid&&((U=r.chunks)!=null&&U.length)&&r.chunks.length>1){const w=r.chunks.findIndex(S=>S.uid===_.chunkUid);r.chunks[w]&&(r.chunks[w]={...r.chunks[w],cancel:void 0,status:"waiting"}),r={...r,cancel:void 0,status:"paused"},c("change",{file:k.cloneDeep(r),fileList:k.cloneDeep(m.value),event:"paused"})}else r={...r,cancel:void 0,status:"error"},c("change",{file:k.cloneDeep(r),fileList:k.cloneDeep(m.value),event:"cancel"});P(_.uid,r)}}else{let r=k.cloneDeep(m.value.find(w=>w.uid===_.uid));if(r){if(_.chunkUid&&((L=r.chunks)!=null&&L.length)&&r.chunks.length>1){const w=r.chunks.findIndex(S=>S.uid===_.chunkUid);r.chunks[w]&&(r.chunks[w]={...r.chunks[w],cancel:void 0,status:"waiting"})}r={...r,cancel:void 0,status:"error",error:x,percent:0},c("change",{file:k.cloneDeep(r),fileList:k.cloneDeep(m.value),event:"failed"}),P(_.uid,r)}}}finally{B||be(l)}}}}},_e=async l=>{if(l&&m.value){const f=G(l);if(f)return P(l,{status:"waiting"}),c("resetRequest",f),H(l)}},Be=async l=>{var f,b;if(l&&m.value){const U=W(l),L=k.cloneDeep(m.value??[]);U>-1&&L[U]&&((b=(f=L[U]).cancel)==null||b.call(f),L.splice(U,1),m.value=L,c("remove",L[U]),c("change",{file:L[U],fileList:k.cloneDeep(m.value),event:"remove"}))}},Ue=l=>{if(u.value.parallelUpload||!E.value.length){const f=G(l);if(f&&(f.status==="paused"||f.status==="error"||(!u.value.uploadOnSelect||u.value.listType==="image")&&f.status==="waiting"))return!0}return!1},Fe=e.computed(()=>{switch(u.value.size){case"xlg":return"md";default:return"sm"}}),ze=k.throttle(()=>{(u.value.parallelUpload&&oe().length||!E.value.length)&&oe().forEach(l=>H(l.uid)),(m.value||[]).forEach(l=>{typeof document>"u"||typeof window>"u"||!window.FileReader||!window.File||!(l.originFileObj instanceof File||l.originFileObj instanceof Blob)||l.thumbUrl!==void 0||!l.type||!$(M(l.type))||(l.thumbUrl="",Ze(l.originFileObj).then(f=>{const b=f||"";b!==l.thumbUrl&&P(l==null?void 0:l.uid,{thumbUrl:b})}))})},50);e.watch([m,E],ze,{deep:!0});const Le=e.computed(()=>{switch(u.value.size){case"xlg":return"sm";case"lg":return"xsm";default:return"x2sm"}}),T={props:(p==null?void 0:p.props)??d,attrs:(p==null?void 0:p.attrs)??v,slots:(p==null?void 0:p.slots)??a,emit:(p==null?void 0:p.emit)??c,fileList:e.readonly(m),progressSize:Le,getAccept:y,goSize:Fe,resetRequest:_e,canRunUpload:Ue,remove:Be,addFiles:we};de(T);const Ie=ae.cva(N,{variants:{size:g.generateVariantClassList(Z,N),listType:g.generateVariantClassList(Q,N)}}),Ee=()=>{var f,b;const l=(b=(f=T.slots).list)==null?void 0:b.call(f,T);return I.isEmptyElement(l)?T.fileList.value.map(U=>e.h(Ke,{uploadFile:U,key:U.uid})):l};return o(T),(l,f)=>{var b;return(b=T.fileList.value)!=null&&b.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(g.normCls)(e.unref(Ie)({size:T.props.size,listType:T.props.listType}),T.props.fileListCls))},[e.createVNode(Ee)],2)):e.createCommentVNode("",!0)}}}),Qe=t=>new Promise(o=>{t.file(n=>{t.fullPath&&!n.webkitRelativePath&&Object.defineProperty(n,"webkitRelativePath",{value:t.fullPath.replace(/^\//,""),writable:!1}),o(n)})}),et=t=>{const o=t.createReader(),n=[];return new Promise(d=>{const s=()=>{o.readEntries(a=>{a.length===0?d(n):(n.push(...a),s())})};s()})},tt=async t=>{const o=[],n=async d=>{if(d.isFile){const s=await Qe(d);o.push(s)}else if(d.isDirectory){const s=await et(d);await Promise.all(s.map(n))}};return await Promise.all(t.map(d=>{var a;const s=(a=d.webkitGetAsEntry)==null?void 0:a.call(d);if(s)return n(s)}).filter(Boolean)),o},nt=["accept","webkitdirectory","multiple","value","disabled"],ne=e.defineComponent({...g.getComponentOptions("UploadTrigger"),__name:"UploadTrigger",props:{directory:{type:Boolean},multiple:{type:Boolean},disabled:{type:Boolean,default:void 0},accept:{},class:{type:[Array,Object,String,Number,null,Boolean]}},emits:["addFiles"],setup(t,{emit:o}){const n=o,d=t,{getDisabled:s}=I.useFormInput({exports:["getDisabled"]}),a=e.ref(),v=y=>{const{files:m}=y.target;n("addFiles",Array.prototype.slice.call(m)),p.value&&(p.value.value="")},p=e.ref(),c=()=>{var y;(y=p.value)==null||y.click()},u=y=>{y.key==="Enter"&&c()},i=async y=>{if(y.preventDefault(),y.type==="dragover")return;let m=[];y.dataTransfer&&(d.directory?m=await tt(Array.prototype.slice.call(y.dataTransfer.items)):m=Array.prototype.slice.call(y.dataTransfer.files)),d.multiple||(m=m.slice(0,1)),n("addFiles",m.filter(z=>ke(z,d.accept)))},h=e.computed(()=>s.value?{}:{onClick:c,onKeydown:u,onDrop:i,onDragover:i});return(y,m)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:e.unref(g.normCls)(d.class)},h.value),[e.renderSlot(y.$slots,"default",e.normalizeProps(e.guardReactiveProps({...h.value,disabled:e.unref(s),tabindex:"0"}))),e.createElementVNode("input",{type:"file",accept:t.accept,webkitdirectory:t.directory,multiple:t.multiple,value:a.value,disabled:e.unref(s),onChange:v,ref_key:"inputRef",ref:p,style:{display:"none"}},null,40,nt)],16))}}),re=g.getBemElement(Y,"file"),ie=t=>g.usePCId(t?g.getBemElement(re,"chunk"):re,!0),xe=e.defineComponent({...g.getComponentOptions("Upload",!1),__name:"Upload",props:{onDownload:{},parallelUpload:{type:Boolean},uploadOnSelect:{type:Boolean,default:!0},pausableChunked:{type:Boolean},getUploadItemProps:{},noTrigger:{type:Boolean},fileList:{},size:{default:"md"},chunkSize:{},listType:{default:"card"},type:{default:"outline"},go:{type:Boolean,default:!0},maxCount:{},action:{},getFileIcon:{},triggerCls:{type:[Array,Object,String,Number,null,Boolean]},fileListCls:{type:[Array,Object,String,Number,null,Boolean]},directory:{type:Boolean},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:void 0},accept:{}},emits:["update:fileList","change","preview","createRequest","resetRequest","remove"],setup(t,{expose:o,emit:n}){const d=t,s=n,a=e.useSlots(),v=e.useAttrs(),p={props:d,attrs:v,slots:a,emit:s};ue(p);const c=e.ref(),u={progressSize:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.progressSize}),resetRequest:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.resetRequest}),canRunUpload:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.canRunUpload}),remove:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.remove}),goSize:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.goSize}),addFiles:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.addFiles}),fileList:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.fileList}),getAccept:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.getAccept})};return o({...p,...u,listRef:c}),(i,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.noTrigger?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(ne,{key:0,multiple:t.multiple,directory:t.directory,disabled:t.disabled,accept:u.getAccept.value,onAddFiles:u.addFiles.value,class:e.normalizeClass(t.triggerCls)},{default:e.withCtx(y=>[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(y)))]),_:3},8,["multiple","directory","disabled","accept","onAddFiles","class"])),e.createVNode(te,{action:t.action,ref_key:"listRef",ref:c},null,8,["action"])],64))}}),ot=I.installComponent(xe,g.getComponentName("Upload")),st=I.installComponent(te,g.getComponentName("UploadList")),lt=I.installComponent(ne,g.getComponentName("UploadTrigger"));exports.Upload=xe;exports.UploadList=te;exports.UploadListPlugin=st;exports.UploadListTypes=Q;exports.UploadPlugin=ot;exports.UploadSizes=Z;exports.UploadStatuses=me;exports.UploadTrigger=ne;exports.UploadTriggerPlugin=lt;exports.UploadTypes=fe;exports.injectBaseUploadContext=pe;exports.injectUploadContext=q;exports.provideBaseUploadContext=ue;exports.provideUploadContext=de;exports.uploadListItemPrefix=F;exports.uploadListPrefix=N;exports.uploadPrefix=Y;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),X=require("reka-ui"),g=require("@pantograph/utils"),ae=require("class-variance-authority"),ce=require("../Progress.vue_vue_type_style_index_0_lang-B-OM1USr.js"),je=require("../FloatButton.vue_vue_type_script_setup_true_lang-Dadp9ViH.js"),D=require("../IconButton.vue_vue_type_script_setup_true_lang-i5ZOiWt-.js"),De=require("../Image.vue_vue_type_style_index_0_lang-BBxqLThg.js"),k=require("es-toolkit"),Oe=require("../GraphicalObject.vue_vue_type_script_setup_true_lang-BDZKksip.js"),I=require("@pantograph/utils-vue"),Ne=require("../FormValidation.vue_vue_type_style_index_0_lang-DcXAThgj.js"),V=require("../isObject-BDHKUJKN.js"),qe=require("../isArray-Bin_5of_.js"),Y=g.getBemBlock("upload"),N=g.getBemElement(Y,"list"),U=g.getBemElement(N,"item"),[Ae,ue]=X.createContext("BaseUpload"),pe=()=>Ae(null),[q,de]=X.createContext("Upload"),me=["error","paused","done","uploading","waiting"],Z=["md","lg","xlg"],Q=["image","card"],fe=["outline","transparent"],K={other:{icon:"tabler:file-text",fg:"primary",bg:"primary-subtle"},text:{icon:"tabler:file-typography",fg:"primary",bg:"primary-subtle"},image:{icon:"tabler:photo",fg:"primary",bg:"primary-subtle"},video:{icon:"tabler:video",fg:"primary",bg:"primary-subtle"},zip:{icon:"tabler:file-zip",fg:"primary",bg:"primary-subtle"},pdf:{icon:"tabler:file-type-pdf",fg:"red",bg:"red-subtle"},document:{icon:"tabler:file-type-docx",fg:"primary",bg:"primary-subtle"},excel:{icon:"tabler:file-type-csv",fg:"green",bg:"green-subtle"}},le={image:["3fr","arw","bmp","dib","cr2","crw","dng","gif","heic","heif","ico","jfif","jpe","jpeg","jpg","jp2","nef","png","raf","raw","rw2","sr2","svg","svg","tga","tif","tiff","wdp","webp"],video:["3g2","3gp2","3gp","3gpp","asf","asx","avi","flv","m1v","m2v","mod","mp2v","mpa","mpe","mpv2","mpeg","mpegvideo","m2t","m2ts","tts","ts","mkv","mp4v","mp4","mov","m4v","mjpeg","mts","ogv","webm","wm","wmv","wmx","wvx"],text:["addin","dtsconfig","vssettings","vstemplate","xml","xrm-ms","xsd","xsl","cd","cs","csproj","iss","py","pyw","rc","rc2","rct","sln","srt","txt","user","vb","vbproj","vdp","vdproj","vspscc","vsscc","vssscc","contact","css","group","html","htm","shtml","htc","ics","iqy","odc","sct","wsc","vcf","vtt"],zip:["zip","7z","rar","tar.gz"],document:["doc","docx","odt","rtf"],excel:["xls","xlsx","csv","ods"],pdf:["pdf"]},ge=(t,o)=>{if(t){for(const[n,d]of Object.entries(le))if(d.includes(t.toLowerCase()))return n}return o&&Object.keys(le).includes(o)?o:"other"},ve=(t="")=>{const o=t.split("/"),d=o[o.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(d)||[""])[0]},M=t=>{var o,n,d;return(d=(n=(o=t==null?void 0:t.split)==null?void 0:o.call(t,"/"))==null?void 0:n.pop)==null?void 0:d.call(n)},Ve=t=>{var n;let o=M((t==null?void 0:t.type)||((n=t==null?void 0:t.originFileObj)==null?void 0:n.type));if(t!=null&&t.url&&!o)try{o=ve(t==null?void 0:t.url)}catch{}return o},$e=t=>{var o,n;return(n=(o=t==null?void 0:t.split)==null?void 0:o.call(t,"/"))==null?void 0:n[0]},Me=t=>{var o;return $e((t==null?void 0:t.type)||((o=t==null?void 0:t.originFileObj)==null?void 0:o.type))},$=t=>ge(t)==="image",he=t=>{if(t.type&&!t.thumbUrl)return $(M(t.type));const o=t.thumbUrl||t.url||"",n=ve(o);return/^data:image\//.test(o)||$(n)?!0:!(/^data:/.test(o)||n)},Ge=e.defineComponent({...g.getComponentOptions("UploadListItemImage"),__name:"UploadListItemImage",setup(t){const o=q(),n=ee(),d=()=>{var s,a,v;k.isFunction((s=n.props.uploadFile)==null?void 0:s.cancel)&&((v=(a=n.props.uploadFile).cancel)==null||v.call(a)),o.remove(n.props.uploadFile.uid)};return(s,a)=>{var v;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(n).props.uploadFile.status!=="waiting"?(e.openBlock(),e.createBlock(De._sfc_main,{key:0,src:e.unref(he)(e.unref(n).props.uploadFile)?e.unref(n).props.uploadFile.thumbUrl??e.unref(n).props.uploadFile.url:void 0,aspectRatio:"1:1",class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(U),"image")),sizeRange:"xsm",alt:e.unref(n).label.value,hovered:e.unref(n).props.uploadFile.status==="uploading",width:"100%"},e.createSlots({_:2},[["error","done"].includes(e.unref(n).props.uploadFile.status)?{name:"actions",fn:e.withCtx(()=>[e.unref(n).props.uploadFile.status==="done"?(e.openBlock(),e.createBlock(D._sfc_main,{key:0,color:"neutral",type:"ghost",icon:"tabler:eye",size:"sm",onClick:a[0]||(a[0]=e.withModifiers(p=>e.unref(o).emit("preview",e.unref(n).props.uploadFile),["stop"]))})):e.unref(n).props.uploadFile.status==="error"?(e.openBlock(),e.createBlock(D._sfc_main,{key:1,color:"neutral",type:"ghost",icon:"tabler:reload",size:"sm",onClick:a[1]||(a[1]=e.withModifiers(p=>e.unref(o).resetRequest(e.unref(n).props.uploadFile.uid),["stop"]))})):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["src","class","alt","hovered"])):e.createCommentVNode("",!0),["uploading","waiting"].includes(e.unref(n).props.uploadFile.status)?(e.openBlock(),e.createBlock(ce._sfc_main,{key:1,type:"circle",size:e.unref(o).progressSize.value,class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(U),"progress")),indeterminate:e.unref(n).props.uploadFile.status==="waiting",percent:((v=e.unref(n).props.uploadFile)==null?void 0:v.percent)??0},null,8,["size","class","indeterminate","percent"])):e.createCommentVNode("",!0),e.createVNode(je._sfc_main,{class:e.normalizeClass(e.unref(g.normCls)(e.unref(g.getBemElement)(e.unref(U),"cancel"),"pantograph-tokens pantograph-dark")),color:"neutral",icon:"tabler:x",size:"sm",onClick:e.withModifiers(d,["stop"])},null,8,["class"])],64)}}}),We=e.defineComponent({...g.getComponentOptions("UploadFileGO"),__name:"UploadFileGO",setup(t){const o=ee(),n=q(),d=e.computed(()=>ge(Ve(o.props.uploadFile),Me(o.props.uploadFile))),s=e.computed(()=>k.isFunction(n.props.getFileIcon)?n.props.getFileIcon(o.props.uploadFile):K[d.value].icon),a=e.computed(()=>K[d.value].fg),v=e.computed(()=>K[d.value].bg),p=()=>{var h,y,m,F;const i=(y=(h=n.slots).go)==null?void 0:y.call(h,{uploadFile:o.props.uploadFile});return I.isEmptyElement(i)?he(o.props.uploadFile)?e.h("img",{class:g.getBemElement(U,"thumb"),alt:o.props.uploadFile.name??"",src:((m=o.props.uploadFile)==null?void 0:m.thumbUrl)??((F=o.props.uploadFile)==null?void 0:F.url)}):null:i},c=()=>{var h,y;const i=(y=(h=n.slots).goIcon)==null?void 0:y.call(h,{uploadFile:o.props.uploadFile});return I.isEmptyElement(i)?null:i},u=()=>e.h(Oe._sfc_main,{size:n.goSize.value,icon:s.value,fg:a.value,bg:v.value},{default:p,icon:c});return(i,h)=>(e.openBlock(),e.createBlock(u))}}),He=e.defineComponent({...g.getComponentOptions("UploadListItemCard"),__name:"UploadListItemCard",setup(t){const o=q(),n=ee(),d=()=>{var i,h;const c=(h=(i=o.slots).description)==null?void 0:h.call(i,{uploadFile:n.props.uploadFile});let u;if(I.isEmptyElement(c)||(u=c),n.props.uploadFile.description&&(u=n.props.uploadFile.description),u)return e.h("div",{class:g.getBemElement(U,"description")},u)},s=()=>{var u,i;const c=(i=(u=o.slots).title)==null?void 0:i.call(u,{uploadFile:n.props.uploadFile});return I.isEmptyElement(c)?n.label.value:c},a=()=>{var c;if(k.isFunction(o.props.onDownload))return o.props.onDownload(n.props.uploadFile);if((c=n.props.uploadFile)!=null&&c.url&&typeof window<"u")return window.open(n.props.uploadFile.url)},v=e.computed(()=>{var c,u;return(c=n.props.uploadFile)!=null&&c.percent&&((u=n.props.uploadFile)==null?void 0:u.status)!=="waiting"?`${(n.props.uploadFile.percent??0).toFixed(0)}%`:"waiting..."}),p=(c,u)=>{var h,y,m,F;const i=(y=(h=o.slots)==null?void 0:h.actions)==null?void 0:y.call(h,{...o,uploadFile:n.props.uploadFile,downloadFile:a});return I.isEmptyElement(i)?(F=(m=u.slots)==null?void 0:m.default)==null?void 0:F.call(m,{}):i};return(c,u)=>{var i;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.unref(o).props.go?(e.openBlock(),e.createBlock(We,{key:0})):e.createCommentVNode("",!0),["error","done"].includes(e.unref(n).props.uploadFile.status)?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(U),"content"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(U),"title"))},[e.createVNode(s)],2),e.unref(n).props.uploadFile.status==="error"?(e.openBlock(),e.createBlock(Ne._sfc_main,{key:0,message:"Failed",status:"error"})):e.unref(o).props.size!=="md"?(e.openBlock(),e.createBlock(d,{key:1})):e.createCommentVNode("",!0)],2)):(e.openBlock(),e.createBlock(ce._sfc_main,{key:1,class:e.normalizeClass(e.unref(g.getBemElement)(e.unref(U),"progress")),percent:((i=e.unref(n).props.uploadFile)==null?void 0:i.percent)??0,label:e.unref(n).label.value,helperText:v.value,helperTextCls:e.unref(g.getBemElement)(e.unref(U),"percent")},{label:e.withCtx(()=>[e.createVNode(s)]),_:1},8,["class","percent","label","helperText","helperTextCls"])),e.createVNode(p,null,{default:e.withCtx(()=>{var h;return[e.unref(n).props.uploadFile.status==="done"?(e.openBlock(),e.createBlock(D._sfc_main,{key:0,icon:"tabler:download",size:"sm",type:"ghost",color:"neutral",onClick:e.withModifiers(a,["stop"])})):e.createCommentVNode("",!0),e.unref(o).props.pausableChunked&&e.unref(n).props.uploadFile.status==="uploading"&&((h=e.unref(n).props.uploadFile.chunks)!=null&&h.length)&&e.unref(k.isFunction)(e.unref(n).props.uploadFile.cancel)?(e.openBlock(),e.createBlock(D._sfc_main,{key:1,icon:"tabler:pause",size:"sm",type:"ghost",color:"neutral",onClick:e.withModifiers(e.unref(n).props.uploadFile.cancel,["stop"])},null,8,["onClick"])):e.unref(o).canRunUpload(e.unref(n).props.uploadFile.uid)?(e.openBlock(),e.createBlock(D._sfc_main,{key:2,icon:["paused","waiting"].includes(e.unref(n).props.uploadFile.status)?"tabler:player-play":"tabler:reload",size:"sm",type:"ghost",color:"neutral",onClick:u[0]||(u[0]=e.withModifiers(y=>e.unref(o).resetRequest(e.unref(n).props.uploadFile.uid),["stop"]))},null,8,["icon"])):e.createCommentVNode("",!0),e.createVNode(D._sfc_main,{icon:["done","error"].includes(e.unref(n).props.uploadFile.status)?"tabler:trash":"tabler:x",size:"sm",type:"ghost",color:"neutral",onClick:u[1]||(u[1]=e.withModifiers(y=>e.unref(o).remove(e.unref(n).props.uploadFile.uid),["stop"]))},null,8,["icon"])]}),_:1})],64)}}}),[ee,Je]=X.createContext("UploadItem"),Ke=e.defineComponent({...g.getComponentOptions("UploadListItem"),__name:"UploadListItem",props:{uploadFile:{}},setup(t){const o=t,n=ae.cva(U,{variants:{size:g.generateVariantClassList(Z,U),listType:g.generateVariantClassList(Q,U),type:g.generateVariantClassList(fe,U),status:g.generateVariantClassList(me,U)}}),d=e.computed(()=>{var v,p,c;return((v=o.uploadFile)==null?void 0:v.name)??((c=(p=o.uploadFile)==null?void 0:p.originFileObj)==null?void 0:c.name)}),s=q();Je({props:o,label:d});const a=()=>{var p,c;const v=(c=(p=s.slots).listItem)==null?void 0:c.call(p,{...s,uploadFile:o.uploadFile});return I.isEmptyElement(v)?s.props.listType==="card"?e.h(He):e.h(Ge):v};return(v,p)=>{var c,u,i;return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:e.unref(n)({size:e.unref(s).props.size,listType:e.unref(s).props.listType,type:e.unref(s).props.type,status:(c=t.uploadFile)==null?void 0:c.status})},{...((i=(u=e.unref(s).props).getUploadItemProps)==null?void 0:i.call(u,t.uploadFile))??{}}),[e.createVNode(a)],16)}}}),Xe=(t,o,n=1024*1024)=>{const d=[];let s=0,a=0;for(;s<t.size;){const v=Math.min(s+n,t.size),p=t.slice(s,v);d.push({chunk:p,chunkSize:v-s,index:a,uid:o(),status:"waiting"}),s=v,a++}return d},ye=(t,{getUid:o,chunkFile:n,chunkSize:d})=>{if(V.isObject(t)){let s;if(t instanceof File)s=t;else try{s=new File([t],t.name??"",{type:t.type??""})}catch{s=new Blob([t],{type:t.type??""}),s.lastModified=new Date().getTime(),s.name=t.name??"",s.webkitRelativePath=""}if(V.isObject(s)&&s instanceof Blob){let a=[];return n&&(a=Xe(s,()=>(o==null?void 0:o(!0))??g.usePCId(void 0,!0),d)),{uid:t.uid??(o==null?void 0:o())??g.usePCId(void 0,!0),originFileObj:s,status:"waiting",chunks:a!=null&&a.length&&(a==null?void 0:a.length)>1?a:void 0,chunksCount:a!=null&&a.length&&(a==null?void 0:a.length)>1?a.length:void 0,name:s==null?void 0:s.name,type:s==null?void 0:s.type,size:s==null?void 0:s.size,lastModified:s==null?void 0:s.lastModified,thumbUrl:void 0}}}},Ye=(t,o)=>{if(V.isObject(t))return t instanceof Blob||t instanceof File?ye(t,o):(!t.uid&&!Object.isFrozen(t)&&(t.uid=o.getUid()),t)},ke=(t,o)=>{if(t&&o){const n=Array.isArray(o)?o:o.split(","),d=(t==null?void 0:t.name)||"",s=(t==null?void 0:t.type)||"",a=s.replace(/\/.*$/,"");return n.some(v=>{const p=v.trim();if(/^\*(?<temp1>\/\*)?$/.test(v))return!0;if(p.charAt(0)==="."){const c=d.toLowerCase(),u=p.toLowerCase();let i=[u];return(u===".jpg"||u===".jpeg")&&(i=[".jpg",".jpeg"]),i.some(h=>c.endsWith(h))}return/\/\*$/.test(p)?a===p.replace(/\/.*$/,""):!!(s===p||/^\w+$/.test(p))})}return!0},j=200;function Ze(t){return new Promise(o=>{if(!t.type||!$(M(t.type))){o("");return}const n=document.createElement("canvas");n.width=j,n.height=j,n.style.cssText=`position: fixed; left: 0; top: 0; width: ${j}px; height: ${j}px; z-index: 9999; display: none;`,document.body.appendChild(n);const d=n.getContext("2d"),s=new Image;if(s.onload=()=>{const{width:a,height:v}=s;let p=j,c=j,u=0,i=0;a>v?(c=v*(j/a),i=-(c-p)/2):(p=a*(j/v),u=-(p-c)/2),d.drawImage(s,u,i,p,c);const h=n.toDataURL();document.body.removeChild(n),o(h)},s.crossOrigin="anonymous",t.type.startsWith("image/svg+xml")){const a=new FileReader;a.addEventListener("load",()=>{a.result&&(s.src=a.result)}),a.readAsDataURL(t)}else s.src=window.URL.createObjectURL(t)})}const te=e.defineComponent({...g.getComponentOptions("UploadList"),__name:"UploadList",props:{onDownload:{},parallelUpload:{type:Boolean},uploadOnSelect:{type:Boolean,default:!0},pausableChunked:{type:Boolean},getUploadItemProps:{},noTrigger:{type:Boolean},fileList:{},size:{default:"md"},chunkSize:{},listType:{default:"card"},type:{default:"outline"},go:{type:Boolean,default:!0},maxCount:{},action:{},getFileIcon:{},triggerCls:{type:[Array,Object,String,Number,null,Boolean]},fileListCls:{type:[Array,Object,String,Number,null,Boolean]},directory:{type:Boolean},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:void 0},accept:{}},emits:["update:fileList","change","preview","createRequest","resetRequest","remove"],setup(t,{expose:o,emit:n}){const d=t,s=n,a=e.useSlots(),v=e.useAttrs(),p=pe(),c=(...l)=>{s(...l),p==null||p.emit(...l)},u=e.computed(()=>(p==null?void 0:p.props)??d),i=e.computed(()=>u.value.maxCount?Number(u.value.maxCount):0),h=e.computed(()=>u.value.listType!=="image"&&u.value.pausableChunked),y=e.computed(()=>u.value.accept??u.value.listType==="image"?"image/*":void 0),m=e.ref([]);let F=!1;e.watch(()=>u.value.fileList,l=>{var f,w;if(!F){const z=(w=(f=l??[])==null?void 0:f.map)==null?void 0:w.call(f,L=>{if(L&&V.isObject(L))return Ye(L,{getUid:ie,chunkFile:h.value,chunkSize:u.value.chunkSize})}).filter(Boolean);k.isEqual(z,m.value)||(F=!0,m.value=z,e.nextTick(()=>F=!1))}},{immediate:!0,deep:!0}),e.watch(m,l=>{F||(F=!0,c("update:fileList",l??[]),e.nextTick(()=>F=!1))},{immediate:!0,deep:!0});const G=l=>m.value.find(f=>l&&f.uid===l),W=l=>m.value.findIndex(f=>l&&f.uid===l),Ce=l=>{if(l){const f=W(l.uid);f===-1&&(!i.value||i.value>m.value.length)?m.value.push(l):f>-1&&m.value.splice(f,0,l),c("change",{file:k.cloneDeep(l),fileList:k.cloneDeep(m.value),event:"add"})}},we=l=>{qe.isArray(l)&&l.filter(f=>!u.value.directory||ke(f,y.value)).forEach(f=>{Ce(ye(f,{getUid:ie,chunkFile:h.value,chunkSize:u.value.chunkSize}))})},E=e.ref([]),oe=()=>{var l;return u.value.uploadOnSelect||u.value.listType==="image"?((l=m.value)==null?void 0:l.filter(f=>E.value.includes(f.uid)?!1:f.status==="waiting"&&f.originFileObj))??[]:[]},P=(l,f)=>{if(l&&f){const w=W(l);w>-1&&(m.value[w]={...m.value[w],...f})}},be=l=>{E.value=E.value.filter(f=>f!==l)},H=async l=>{var f,w,z,L;if(l&&m.value){const C=G(l),Te=h.value&&((f=C==null?void 0:C.chunks)==null?void 0:f.length)&&(C==null?void 0:C.chunks.length)>1&&(C==null?void 0:C.status)==="uploading"&&(C==null?void 0:C.chunks.some(A=>A.status==="waiting"));if(C&&k.isFunction(u.value.action)&&(!E.value.length||u.value.parallelUpload||Te)){E.value.includes(l)||E.value.push(l);const A=new AbortController,Se=()=>{const B=()=>{A.abort()},x=k.cloneDeep(C);if(h.value&&x.chunks&&x.chunks.length>1){const r=x.chunks.findIndex(b=>b.status==="waiting");r>-1&&(x.chunks[r]={...x.chunks[r],status:"uploading",cancel:B})}P(x.uid,{status:"uploading",cancel:B})};let _={signal:A.signal,onUploadProgress(){},uid:C.uid};if(h.value&&C.chunks&&C.chunks.length>1&&C.chunks.some(B=>B.status==="waiting")){const B=C.chunks.find(x=>x.status==="waiting");B!=null&&B.uid&&(_={..._,...k.pick(B,["chunk","chunkSize","index"]),chunkUid:B.uid,onUploadProgress(x){var b,S,R,se;const r=k.cloneDeep(m.value.find(O=>O.uid===C.uid));if(r){const O=(b=r.chunks)==null?void 0:b.findIndex(J=>J.uid===B.uid);if(O!==void 0&&((S=r.chunks)!=null&&S[O])&&(r.chunks[O].percent=Math.round(x.loaded*100/x.total)),(R=r.chunks)!=null&&R.length&&((se=r.chunks)==null?void 0:se.length)>1){const J=r.chunks.reduce((Pe,Re)=>Pe+(Re.percent??0),0);r.percent=Math.min(Math.max(J/r.chunks.length,0),100)}else r.percent=Math.round(x.loaded*100/x.total);P(r.uid,{chunks:r.chunks,percent:r.percent})}}})}else _={..._,file:C.originFileObj,onUploadProgress(B){const x=k.cloneDeep(m.value.find(r=>r.uid===C.uid));x&&P(x.uid,{percent:Math.round(B.loaded*100/B.total)})}};if(Se(),_.file||_.chunk){c("createRequest",C),c("change",{file:k.cloneDeep(C),fileList:k.cloneDeep(m.value),event:"upload"});let B=!1;try{let x=await u.value.action(_);try{typeof x=="string"&&(x=JSON.parse(x))}catch{}let r=k.cloneDeep(m.value.find(b=>b.uid===_.uid));if(r){if(_.chunkUid&&((w=r.chunks)!=null&&w.length)&&r.chunks.length>1){const b=r.chunks.findIndex(R=>R.uid===_.chunkUid);r.chunks[b]&&(r.chunks[b]={...r.chunks[b],cancel:void 0,status:"done",response:x??void 0});const S=r.chunks.every(R=>R.status==="done")?"done":"uploading";S==="done"?r={...r,cancel:void 0,status:S}:r.chunks.some(R=>R.status==="waiting")&&(B=!0)}else r={...r,cancel:void 0,status:"done",response:x??void 0};P(_.uid,r),B&&await H(l)}}catch(x){if(x.name==="CanceledError"){let r=k.cloneDeep(m.value.find(b=>b.uid===_.uid));if(r){if(_.chunkUid&&((z=r.chunks)!=null&&z.length)&&r.chunks.length>1){const b=r.chunks.findIndex(S=>S.uid===_.chunkUid);r.chunks[b]&&(r.chunks[b]={...r.chunks[b],cancel:void 0,status:"waiting"}),r={...r,cancel:void 0,status:"paused"},c("change",{file:k.cloneDeep(r),fileList:k.cloneDeep(m.value),event:"paused"})}else r={...r,cancel:void 0,status:"error"},c("change",{file:k.cloneDeep(r),fileList:k.cloneDeep(m.value),event:"cancel"});P(_.uid,r)}}else{let r=k.cloneDeep(m.value.find(b=>b.uid===_.uid));if(r){if(_.chunkUid&&((L=r.chunks)!=null&&L.length)&&r.chunks.length>1){const b=r.chunks.findIndex(S=>S.uid===_.chunkUid);r.chunks[b]&&(r.chunks[b]={...r.chunks[b],cancel:void 0,status:"waiting"})}r={...r,cancel:void 0,status:"error",error:x,percent:0},c("change",{file:k.cloneDeep(r),fileList:k.cloneDeep(m.value),event:"failed"}),P(_.uid,r)}}}finally{B||be(l)}}}}},_e=async l=>{if(l&&m.value){const f=G(l);if(f)return P(l,{status:"waiting"}),c("resetRequest",f),H(l)}},Be=async l=>{var f;if(l&&m.value){const w=W(l),z=k.cloneDeep(m.value??[]);if(w>-1&&z[w]){const L=k.cloneDeep(z[w]);(f=L.cancel)==null||f.call(L),c("remove",L),c("change",{file:L,fileList:k.cloneDeep(m.value),event:"remove"}),z.splice(w,1),m.value=z}}},Ue=l=>{if(u.value.parallelUpload||!E.value.length){const f=G(l);if(f&&(f.status==="paused"||f.status==="error"||(!u.value.uploadOnSelect||u.value.listType==="image")&&f.status==="waiting"))return!0}return!1},Fe=e.computed(()=>{switch(u.value.size){case"xlg":return"md";default:return"sm"}}),ze=k.throttle(()=>{(u.value.parallelUpload&&oe().length||!E.value.length)&&oe().forEach(l=>H(l.uid)),(m.value||[]).forEach(l=>{typeof document>"u"||typeof window>"u"||!window.FileReader||!window.File||!(l.originFileObj instanceof File||l.originFileObj instanceof Blob)||l.thumbUrl!==void 0||!l.type||!$(M(l.type))||(l.thumbUrl="",Ze(l.originFileObj).then(f=>{const w=f||"";w!==l.thumbUrl&&P(l==null?void 0:l.uid,{thumbUrl:w})}))})},50);e.watch([m,E],ze,{deep:!0});const Le=e.computed(()=>{switch(u.value.size){case"xlg":return"sm";case"lg":return"xsm";default:return"x2sm"}}),T={props:(p==null?void 0:p.props)??d,attrs:(p==null?void 0:p.attrs)??v,slots:(p==null?void 0:p.slots)??a,emit:(p==null?void 0:p.emit)??c,fileList:e.readonly(m),progressSize:Le,getAccept:y,goSize:Fe,resetRequest:_e,canRunUpload:Ue,remove:Be,addFiles:we};de(T);const Ie=ae.cva(N,{variants:{size:g.generateVariantClassList(Z,N),listType:g.generateVariantClassList(Q,N)}}),Ee=()=>{var f,w;const l=(w=(f=T.slots).list)==null?void 0:w.call(f,T);return I.isEmptyElement(l)?T.fileList.value.map(z=>e.h(Ke,{uploadFile:z,key:z.uid})):l};return o(T),(l,f)=>{var w;return(w=T.fileList.value)!=null&&w.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(g.normCls)(e.unref(Ie)({size:T.props.size,listType:T.props.listType}),T.props.fileListCls))},[e.createVNode(Ee)],2)):e.createCommentVNode("",!0)}}}),Qe=t=>new Promise(o=>{t.file(n=>{t.fullPath&&!n.webkitRelativePath&&Object.defineProperty(n,"webkitRelativePath",{value:t.fullPath.replace(/^\//,""),writable:!1}),o(n)})}),et=t=>{const o=t.createReader(),n=[];return new Promise(d=>{const s=()=>{o.readEntries(a=>{a.length===0?d(n):(n.push(...a),s())})};s()})},tt=async t=>{const o=[],n=async d=>{if(d.isFile){const s=await Qe(d);o.push(s)}else if(d.isDirectory){const s=await et(d);await Promise.all(s.map(n))}};return await Promise.all(t.map(d=>{var a;const s=(a=d.webkitGetAsEntry)==null?void 0:a.call(d);if(s)return n(s)}).filter(Boolean)),o},nt=["accept","webkitdirectory","multiple","value","disabled"],ne=e.defineComponent({...g.getComponentOptions("UploadTrigger"),__name:"UploadTrigger",props:{directory:{type:Boolean},multiple:{type:Boolean},disabled:{type:Boolean,default:void 0},accept:{},class:{type:[Array,Object,String,Number,null,Boolean]}},emits:["addFiles"],setup(t,{emit:o}){const n=o,d=t,{getDisabled:s}=I.useFormInput({exports:["getDisabled"]}),a=e.ref(),v=y=>{const{files:m}=y.target;n("addFiles",Array.prototype.slice.call(m)),p.value&&(p.value.value="")},p=e.ref(),c=()=>{var y;(y=p.value)==null||y.click()},u=y=>{y.key==="Enter"&&c()},i=async y=>{if(y.preventDefault(),y.type==="dragover")return;let m=[];y.dataTransfer&&(d.directory?m=await tt(Array.prototype.slice.call(y.dataTransfer.items)):m=Array.prototype.slice.call(y.dataTransfer.files)),d.multiple||(m=m.slice(0,1)),n("addFiles",m.filter(F=>ke(F,d.accept)))},h=e.computed(()=>s.value?{}:{onClick:c,onKeydown:u,onDrop:i,onDragover:i});return(y,m)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:e.unref(g.normCls)(d.class)},h.value),[e.renderSlot(y.$slots,"default",e.normalizeProps(e.guardReactiveProps({...h.value,disabled:e.unref(s),tabindex:"0"}))),e.createElementVNode("input",{type:"file",accept:t.accept,webkitdirectory:t.directory,multiple:t.multiple,value:a.value,disabled:e.unref(s),onChange:v,ref_key:"inputRef",ref:p,style:{display:"none"}},null,40,nt)],16))}}),re=g.getBemElement(Y,"file"),ie=t=>g.usePCId(t?g.getBemElement(re,"chunk"):re,!0),xe=e.defineComponent({...g.getComponentOptions("Upload",!1),__name:"Upload",props:{onDownload:{},parallelUpload:{type:Boolean},uploadOnSelect:{type:Boolean,default:!0},pausableChunked:{type:Boolean},getUploadItemProps:{},noTrigger:{type:Boolean},fileList:{},size:{default:"md"},chunkSize:{},listType:{default:"card"},type:{default:"outline"},go:{type:Boolean,default:!0},maxCount:{},action:{},getFileIcon:{},triggerCls:{type:[Array,Object,String,Number,null,Boolean]},fileListCls:{type:[Array,Object,String,Number,null,Boolean]},directory:{type:Boolean},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:void 0},accept:{}},emits:["update:fileList","change","preview","createRequest","resetRequest","remove"],setup(t,{expose:o,emit:n}){const d=t,s=n,a=e.useSlots(),v=e.useAttrs(),p={props:d,attrs:v,slots:a,emit:s};ue(p);const c=e.ref(),u={progressSize:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.progressSize}),resetRequest:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.resetRequest}),canRunUpload:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.canRunUpload}),remove:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.remove}),goSize:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.goSize}),addFiles:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.addFiles}),fileList:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.fileList}),getAccept:e.computed(()=>{var i;return(i=c.value)==null?void 0:i.getAccept})};return o({...p,...u,listRef:c}),(i,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.noTrigger?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(ne,{key:0,multiple:t.multiple,directory:t.directory,disabled:t.disabled,accept:u.getAccept.value,onAddFiles:u.addFiles.value,class:e.normalizeClass(t.triggerCls)},{default:e.withCtx(y=>[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(y)))]),_:3},8,["multiple","directory","disabled","accept","onAddFiles","class"])),e.createVNode(te,{action:t.action,ref_key:"listRef",ref:c},null,8,["action"])],64))}}),ot=I.installComponent(xe,g.getComponentName("Upload")),st=I.installComponent(te,g.getComponentName("UploadList")),lt=I.installComponent(ne,g.getComponentName("UploadTrigger"));exports.Upload=xe;exports.UploadList=te;exports.UploadListPlugin=st;exports.UploadListTypes=Q;exports.UploadPlugin=ot;exports.UploadSizes=Z;exports.UploadStatuses=me;exports.UploadTrigger=ne;exports.UploadTriggerPlugin=lt;exports.UploadTypes=fe;exports.injectBaseUploadContext=pe;exports.injectUploadContext=q;exports.provideBaseUploadContext=ue;exports.provideUploadContext=de;exports.uploadListItemPrefix=U;exports.uploadListPrefix=N;exports.uploadPrefix=Y;
|