2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
|
import{aF as Q,ax as ue,aq as de,ah as A,ar as m,bh as G,bP as k,d as U,bF as ke,ae as N,aX as K,r as ce,O as W,o as b,q as w,m as R,c as _,Y as Ee,Z as $e,$ as y,e as t,p as pe,ag as C,x as h,t as q,z as D,k as S,Q as O,bQ as Ce,K as Z,aj as Re,bR as Le,bS as Fe,bn as Pe,bT as Se,bU as _e,aL as we,al as M,ad as Ue,aa as Y,bV as x,bW as Te,aD as Oe,bX as De,i as ee,aB as Be,J as je,af as qe,bY as Ne,bZ as te,b_ as se,am as Ae}from"./index-ce293e15.js";import{E as Ke}from"./el-progress-b748f709.js";import{b as Me}from"./_baseClone-e976708f.js";import{i as He}from"./isEqual-48984780.js";var ze=1,Xe=4;function ae(a){return Me(a,ze|Xe)}const fe=Symbol("uploadContextKey"),Ie="ElUpload";class Ve extends Error{constructor(l,e,p,u){super(l),this.name="UploadAjaxError",this.status=e,this.method=p,this.url=u}}function oe(a,l,e){let p;return e.response?p=`${e.response.error||e.response}`:e.responseText?p=`${e.responseText}`:p=`fail to ${l.method} ${a} ${e.status}`,new Ve(p,e.status,l.method,a)}function Ge(a){const l=a.responseText||a.response;if(!l)return l;try{return JSON.parse(l)}catch{return l}}const We=a=>{typeof XMLHttpRequest>"u"&&Q(Ie,"XMLHttpRequest is undefined");const l=new XMLHttpRequest,e=a.action;l.upload&&l.upload.addEventListener("progress",d=>{const v=d;v.percent=d.total>0?d.loaded/d.total*100:0,a.onProgress(v)});const p=new FormData;if(a.data)for(const[d,v]of Object.entries(a.data))ue(v)&&v.length?p.append(d,...v):p.append(d,v);p.append(a.filename,a.file,a.file.name),l.addEventListener("error",()=>{a.onError(oe(e,a,l))}),l.addEventListener("load",()=>{if(l.status<200||l.status>=300)return a.onError(oe(e,a,l));a.onSuccess(Ge(l))}),l.open(a.method,e,!0),a.withCredentials&&"withCredentials"in l&&(l.withCredentials=!0);const u=a.headers||{};if(u instanceof Headers)u.forEach((d,v)=>l.setRequestHeader(v,d));else for(const[d,v]of Object.entries(u))de(v)||l.setRequestHeader(d,String(v));return l.send(p),l},ve=["text","picture","picture-card"];let Ye=1;const J=()=>Date.now()+Ye++,me=A({action:{type:String,default:"#"},headers:{type:m(Object)},method:{type:String,default:"post"},data:{type:m([Object,Function,Promise]),default:()=>G({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},fileList:{type:m(Array),default:()=>G([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:ve,default:"text"},httpRequest:{type:m(Function),default:We},disabled:Boolean,limit:Number}),Je=A({...me,beforeUpload:{type:m(Function),default:k},beforeRemove:{type:m(Function)},onRemove:{type:m(Function),default:k},onChange:{type:m(Function),default:k},onPreview:{type:m(Function),default:k},onSuccess:{type:m(Function),default:k},onProgress:{type:m(Function),default:k},onError:{type:m(Function),default:k},onExceed:{type:m(Function),default:k},crossorigin:{type:m(String)}}),Qe=A({files:{type:m(Array),default:()=>G([])},disabled:{type:Boolean,default:!1},handlePreview:{type:m(Function),default:k},listType:{type:String,values:ve,default:"text"},crossorigin:{type:m(String)}}),Ze={remove:a=>!!a},xe=["onKeydown"],et=["src","crossorigin"],tt=["onClick"],st=["title"],at=["onClick"],ot=["onClick"],nt=U({name:"ElUploadList"}),lt=U({...nt,props:Qe,emits:Ze,setup(a,{emit:l}){const e=a,{t:p}=ke(),u=N("upload"),d=N("icon"),v=N("list"),E=K(),g=ce(!1),$=W(()=>[u.b("list"),u.bm("list",e.listType),u.is("disabled",e.disabled)]),F=f=>{l("remove",f)};return(f,n)=>(b(),w(we,{tag:"ul",class:y(t($)),name:t(v).b()},{default:R(()=>[(b(!0),_(Ee,null,$e(f.files,s=>(b(),_("li",{key:s.uid||s.name,class:y([t(u).be("list","item"),t(u).is(s.status),{focusing:g.value}]),tabindex:"0",onKeydown:pe(i=>!t(E)&&F(s),["delete"]),onFocus:n[0]||(n[0]=i=>g.value=!0),onBlur:n[1]||(n[1]=i=>g.value=!1),onClick:n[2]||(n[2]=i=>g.value=!1)},[C(f.$slots,"default",{file:s},()=>[f.listType==="picture"||s.status!=="uploading"&&f.listType==="picture-card"?(b(),_("img",{key:0,class:y(t(u).be("list","item-thumbnail")),src:s.url,crossorigin:f.crosso
|