3 lines
18 KiB
JavaScript
3 lines
18 KiB
JavaScript
import{bb as Le,c as ee,bd as Ne,a as F,a9 as $e,h as f,bD as Ie,g as ae,e as se,i as Qe,bE as qe,r as q,a2 as xe,a5 as ze,X as Te,aC as Ae,aD as De,aw as Oe,bF as ie,f as Me,w as He,o as Ve,aH as We,bB as Xe,bG as Ge,a7 as de,a6 as we,Q as ce,bH as Je,_ as Ke,bI as Ye,u as Ze,E as ea,bJ as fe,s as D,t as X,v as Q,aa,y as Y,bK as ve,bL as pe,A as me,B as O,C as ge,ac as ta,z as G,a_ as _e,bj as he,bk as be,F as Fe,bl as ye,bi as la,bu as ra}from"./index.7df25f12.js";import{Q as oa}from"./QList.4dfc70a2.js";import{Q as ua}from"./QMenu.94ee8153.js";import{u as na}from"./use-quasar.0e944873.js";import{I as sa,c as ia}from"./mobile.89291743.js";const da={...Le,min:{type:Number,default:0},max:{type:Number,default:100},color:String,centerColor:String,trackColor:String,fontSize:String,rounded:Boolean,thickness:{type:Number,default:.2,validator:e=>e>=0&&e<=1},angle:{type:Number,default:0},showValue:Boolean,reverse:Boolean,instantFeedback:Boolean},Z=50,Ue=2*Z,Ce=Ue*Math.PI,ca=Math.round(Ce*1e3)/1e3;var Be=ee({name:"QCircularProgress",props:{...da,value:{type:Number,default:0},animationSpeed:{type:[String,Number],default:600},indeterminate:Boolean},setup(e,{slots:c}){const{proxy:{$q:a}}=ae(),h=Ne(e),u=F(()=>{const y=(a.lang.rtl===!0?-1:1)*e.angle;return{transform:e.reverse!==(a.lang.rtl===!0)?`scale3d(-1, 1, 1) rotate3d(0, 0, 1, ${-90-y}deg)`:`rotate3d(0, 0, 1, ${y-90}deg)`}}),_=F(()=>e.instantFeedback!==!0&&e.indeterminate!==!0?{transition:`stroke-dashoffset ${e.animationSpeed}ms ease 0s, stroke ${e.animationSpeed}ms ease`}:""),g=F(()=>Ue/(1-e.thickness/2)),P=F(()=>`${g.value/2} ${g.value/2} ${g.value} ${g.value}`),C=F(()=>$e(e.value,e.min,e.max)),x=F(()=>Ce*(1-(C.value-e.min)/(e.max-e.min))),z=F(()=>e.thickness/2*g.value);function B({thickness:y,offset:t,color:o,cls:n,rounded:d}){return f("circle",{class:"q-circular-progress__"+n+(o!==void 0?` text-${o}`:""),style:_.value,fill:"transparent",stroke:"currentColor","stroke-width":y,"stroke-dasharray":ca,"stroke-dashoffset":t,"stroke-linecap":d,cx:g.value,cy:g.value,r:Z})}return()=>{const y=[];e.centerColor!==void 0&&e.centerColor!=="transparent"&&y.push(f("circle",{class:`q-circular-progress__center text-${e.centerColor}`,fill:"currentColor",r:Z-z.value/2,cx:g.value,cy:g.value})),e.trackColor!==void 0&&e.trackColor!=="transparent"&&y.push(B({cls:"track",thickness:z.value,offset:0,color:e.trackColor})),y.push(B({cls:"circle",thickness:z.value,offset:x.value,color:e.color,rounded:e.rounded===!0?"round":void 0}));const t=[f("svg",{class:"q-circular-progress__svg",style:u.value,viewBox:P.value,"aria-hidden":"true"},y)];return e.showValue===!0&&t.push(f("div",{class:"q-circular-progress__text absolute-full row flex-center content-center",style:{fontSize:e.fontSize}},c.default!==void 0?c.default():[f("div",C.value)])),f("div",{class:`q-circular-progress q-circular-progress--${e.indeterminate===!0?"in":""}determinate`,style:h.value,role:"progressbar","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.indeterminate===!0?void 0:C.value},Ie(c.internal,t))}}}),ke=ee({name:"QUploaderAddTrigger",setup(){const e=Qe(qe,se);return e===se&&console.error("QUploaderAddTrigger needs to be child of QUploader"),e}});function V(e,c,a,h){const u=[];return e.forEach(_=>{h(_)===!0?u.push(_):c.push({failedPropValidation:a,file:_})}),u}function J(e){e&&e.dataTransfer&&(e.dataTransfer.dropEffect="copy"),ze(e)}const fa={multiple:Boolean,accept:String,capture:String,maxFileSize:[Number,String],maxTotalSize:[Number,String],maxFiles:[Number,String],filter:Function},va=["rejected"];function pa({editable:e,dnd:c,getFileInput:a,addFilesToQueue:h}){const{props:u,emit:_,proxy:g}=ae(),P=q(null),C=F(()=>u.accept!==void 0?u.accept.split(",").map(r=>(r=r.trim(),r==="*"?"*/":(r.endsWith("/*")&&(r=r.slice(0,r.length-1)),r.toUpperCase()))):null),x=F(()=>parseInt(u.maxFiles,10)),z=F(()=>parseInt(u.maxTotalSize,10));function B(r){if(e.value)if(r!==Object(r)&&(r={target:null}),r.target!==null&&r.target.matches('input[type="file"]')===!0)r.clientX===0&&r.clientY===0&&xe(r);else{const w=a();w&&w!==r.target&&w.click(r)}}function y(r){e.value&&r&&h(null,r)}function t(r,w,N,$){let s=Array.from(w||r.target.files);const k=[],R=()=>{k.length>0&&_("rejected",k)};if(u.accept!==void 0&&C.value.indexOf("*/")===-1&&(s=V(s,k,"accept",m=>C.value.some(b=>m.type.toUpperCase().startsWith(b)||m.name.toUpperCase().endsWith(b))),s.length===0))return R();if(u.maxFileSize!==void 0){const m=parseInt(u.maxFileSize,10);if(s=V(s,k,"max-file-size",b=>b.size<=m),s.length===0)return R()}if(u.multiple!==!0&&s.length>0&&(s=[s[0]]),s.forEach(m=>{m.__key=m.webkitRelativePath+m.lastModified+m.name+m.size}),$===!0){const m=N.map(b=>b.__key);s=V(s,k,"duplicate",b=>m.includes(b.__key)===!1)}if(s.length===0)return R();if(u.maxTotalSize!==void 0){let m=$===!0?N.reduce((b,I)=>b+I.size,0):0;if(s=V(s,k,"max-total-size",b=>(m+=b.size,m<=z.value)),s.length===0)return R()}if(typeof u.filter=="function"){const m=u.filter(s);s=V(s,k,"filter",b=>m.includes(b))}if(u.maxFiles!==void 0){let m=$===!0?N.length:0;if(s=V(s,k,"max-files",()=>(m++,m<=x.value)),s.length===0)return R()}if(R(),s.length>0)return s}function o(r){J(r),c.value!==!0&&(c.value=!0)}function n(r){ze(r),(r.relatedTarget!==null||Te.is.safari!==!0?r.relatedTarget!==P.value:document.elementsFromPoint(r.clientX,r.clientY).includes(P.value)===!1)===!0&&(c.value=!1)}function d(r){J(r);const w=r.dataTransfer.files;w.length>0&&h(null,w),c.value=!1}function i(r){if(c.value===!0)return f("div",{ref:P,class:`q-${r}__dnd absolute-full`,onDragenter:J,onDragover:J,onDragleave:n,onDrop:d})}return Object.assign(g,{pickFiles:B,addFiles:y}),{pickFiles:B,addFiles:y,onDragover:o,onDragleave:n,processFiles:t,getDndNode:i,maxFilesNumber:x,maxTotalSizeNumber:z}}function Se(e){return(e*100).toFixed(2)+"%"}const ma={...Ae,...fa,label:String,color:String,textColor:String,square:Boolean,flat:Boolean,bordered:Boolean,noThumbnails:Boolean,autoUpload:Boolean,hideUploadBtn:Boolean,disable:Boolean,readonly:Boolean},Re=[...va,"start","finish","added","removed"];function ga(e){const c=ae(),{props:a,slots:h,emit:u,proxy:_}=c,{$q:g}=_,P=De(a,g);function C(l,p,S){if(l.__status=p,p==="idle"){l.__uploaded=0,l.__progress=0,l.__sizeLabel=ie(l.size),l.__progressLabel="0.00%";return}if(p==="failed"){_.$forceUpdate();return}l.__uploaded=p==="uploaded"?l.size:S,l.__progress=p==="uploaded"?1:Math.min(.9999,l.__uploaded/l.size),l.__progressLabel=Se(l.__progress),_.$forceUpdate()}const x=F(()=>a.disable!==!0&&a.readonly!==!0),z=q(!1),B=q(null),y=q(null),t={files:q([]),queuedFiles:q([]),uploadedFiles:q([]),uploadedSize:q(0),updateFileStatus:C,isAlive:()=>Oe(c)===!1},{pickFiles:o,addFiles:n,onDragover:d,onDragleave:i,processFiles:r,getDndNode:w,maxFilesNumber:N,maxTotalSizeNumber:$}=pa({editable:x,dnd:z,getFileInput:re,addFilesToQueue:oe});Object.assign(t,e({props:a,slots:h,emit:u,helpers:t})),t.isBusy===void 0&&(t.isBusy=q(!1));const s=q(0),k=F(()=>s.value===0?0:t.uploadedSize.value/s.value),R=F(()=>Se(k.value)),m=F(()=>ie(s.value)),b=F(()=>x.value===!0&&t.isUploading.value!==!0&&(a.multiple===!0||t.queuedFiles.value.length===0)&&(a.maxFiles===void 0||t.files.value.length<N.value)&&(a.maxTotalSize===void 0||s.value<$.value)),I=F(()=>x.value===!0&&t.isBusy.value!==!0&&t.isUploading.value!==!0&&t.queuedFiles.value.length>0);Me(qe,ue);const v=F(()=>"q-uploader column no-wrap"+(P.value===!0?" q-uploader--dark q-dark":"")+(a.bordered===!0?" q-uploader--bordered":"")+(a.square===!0?" q-uploader--square no-border-radius":"")+(a.flat===!0?" q-uploader--flat no-shadow":"")+(a.disable===!0?" disabled q-uploader--disable":"")+(z.value===!0?" q-uploader--dnd":"")),T=F(()=>"q-uploader__header"+(a.color!==void 0?` bg-${a.color}`:"")+(a.textColor!==void 0?` text-${a.textColor}`:""));He(t.isUploading,(l,p)=>{p===!1&&l===!0?u("start"):p===!0&&l===!1&&u("finish")});function M(){a.disable===!1&&(t.abort(),t.uploadedSize.value=0,s.value=0,le(),t.files.value=[],t.queuedFiles.value=[],t.uploadedFiles.value=[])}function H(){a.disable===!1&&K(["uploaded"],()=>{t.uploadedFiles.value=[]})}function E(){K(["idle","failed"],({size:l})=>{s.value-=l,t.queuedFiles.value=[]})}function K(l,p){if(a.disable===!0)return;const S={files:[],size:0},j=t.files.value.filter(U=>l.indexOf(U.__status)===-1?!0:(S.size+=U.size,S.files.push(U),U.__img!==void 0&&window.URL.revokeObjectURL(U.__img.src),!1));S.files.length>0&&(t.files.value=j,p(S),u("removed",S.files))}function te(l){a.disable||(l.__status==="uploaded"?t.uploadedFiles.value=t.uploadedFiles.value.filter(p=>p.__key!==l.__key):l.__status==="uploading"?l.__abort():s.value-=l.size,t.files.value=t.files.value.filter(p=>p.__key!==l.__key?!0:(p.__img!==void 0&&window.URL.revokeObjectURL(p.__img.src),!1)),t.queuedFiles.value=t.queuedFiles.value.filter(p=>p.__key!==l.__key),u("removed",[l]))}function le(){t.files.value.forEach(l=>{l.__img!==void 0&&window.URL.revokeObjectURL(l.__img.src)})}function re(){return y.value||B.value.getElementsByClassName("q-uploader__input")[0]}function oe(l,p){const S=r(l,p,t.files.value,!0),j=re();j!=null&&(j.value=""),S!==void 0&&(S.forEach(U=>{if(t.updateFileStatus(U,"idle"),s.value+=U.size,a.noThumbnails!==!0&&U.type.toUpperCase().startsWith("IMAGE")){const ne=new Image;ne.src=window.URL.createObjectURL(U),U.__img=ne}}),t.files.value=t.files.value.concat(S),t.queuedFiles.value=t.queuedFiles.value.concat(S),u("added",S),a.autoUpload===!0&&t.upload())}function Pe(){I.value===!0&&t.upload()}function W(l,p,S){if(l===!0){const j={type:"a",key:p,icon:g.iconSet.uploader[p],flat:!0,dense:!0};let U;return p==="add"?(j.onClick=o,U=ue):j.onClick=S,f(ce,j,U)}}function ue(){return f("input",{ref:y,class:"q-uploader__input overflow-hidden absolute-full",tabindex:-1,type:"file",title:"",accept:a.accept,multiple:a.multiple===!0?"multiple":void 0,capture:a.capture,onMousedown:xe,onClick:o,onChange:oe})}function Ee(){return h.header!==void 0?h.header(A):[f("div",{class:"q-uploader__header-content column"},[f("div",{class:"flex flex-center no-wrap q-gutter-xs"},[W(t.queuedFiles.value.length>0,"removeQueue",E),W(t.uploadedFiles.value.length>0,"removeUploaded",H),t.isUploading.value===!0?f(de,{class:"q-uploader__spinner"}):null,f("div",{class:"col column justify-center"},[a.label!==void 0?f("div",{class:"q-uploader__title"},[a.label]):null,f("div",{class:"q-uploader__subtitle"},[m.value+" / "+R.value])]),W(b.value,"add"),W(a.hideUploadBtn===!1&&I.value===!0,"upload",t.upload),W(t.isUploading.value,"clear",t.abort)])])]}function je(){return h.list!==void 0?h.list(A):t.files.value.map(l=>f("div",{key:l.__key,class:"q-uploader__file relative-position"+(a.noThumbnails!==!0&&l.__img!==void 0?" q-uploader__file--img":"")+(l.__status==="failed"?" q-uploader__file--failed":l.__status==="uploaded"?" q-uploader__file--uploaded":""),style:a.noThumbnails!==!0&&l.__img!==void 0?{backgroundImage:'url("'+l.__img.src+'")'}:null},[f("div",{class:"q-uploader__file-header row flex-center no-wrap"},[l.__status==="failed"?f(we,{class:"q-uploader__file-status",name:g.iconSet.type.negative,color:"negative"}):null,f("div",{class:"q-uploader__file-header-content col"},[f("div",{class:"q-uploader__title"},[l.name]),f("div",{class:"q-uploader__subtitle row items-center no-wrap"},[l.__sizeLabel+" / "+l.__progressLabel])]),l.__status==="uploading"?f(Be,{value:l.__progress,min:0,max:1,indeterminate:l.__progress===0}):f(ce,{round:!0,dense:!0,flat:!0,icon:g.iconSet.uploader[l.__status==="uploaded"?"done":"clear"],onClick:()=>{te(l)}})])]))}Ve(()=>{t.isUploading.value===!0&&t.abort(),t.files.value.length>0&&le()});const A={};for(const l in t)We(t[l])===!0?Xe(A,l,()=>t[l].value):A[l]=t[l];return Object.assign(A,{upload:Pe,reset:M,removeUploadedFiles:H,removeQueuedFiles:E,removeFile:te,pickFiles:o,addFiles:n}),Ge(A,{canAddFiles:()=>b.value,canUpload:()=>I.value,uploadSizeLabel:()=>m.value,uploadProgressLabel:()=>R.value}),Object.assign(_,A),()=>{const l=[f("div",{class:T.value},Ee()),f("div",{class:"q-uploader__list scroll"},je()),w("uploader")];t.isBusy.value===!0&&l.push(f("div",{class:"q-uploader__overlay absolute-full flex flex-center"},[f(de)]));const p={ref:B,class:v.value};return b.value===!0&&Object.assign(p,{onDragover:d,onDragleave:i}),f("div",p,l)}}const _a=()=>!0;function ha(e){const c={};return e.forEach(a=>{c[a]=_a}),c}const ba=ha(Re);var Fa=({name:e,props:c,emits:a,injectPlugin:h})=>ee({name:e,props:{...ma,...c},emits:Je(a)===!0?{...ba,...a}:[...Re,...a],setup(){return ga(h)}});function L(e){return typeof e=="function"?e:()=>e}const ya={url:[Function,String],method:{type:[Function,String],default:"POST"},fieldName:{type:[Function,String],default:()=>e=>e.name},headers:[Function,Array],formFields:[Function,Array],withCredentials:[Function,Boolean],sendRaw:[Function,Boolean],batch:[Function,Boolean],factory:Function},ka=["factoryFailed","uploaded","failed","uploading"];function Sa({props:e,emit:c,helpers:a}){const h=q([]),u=q([]),_=q(0),g=F(()=>({url:L(e.url),method:L(e.method),headers:L(e.headers),formFields:L(e.formFields),fieldName:L(e.fieldName),withCredentials:L(e.withCredentials),sendRaw:L(e.sendRaw),batch:L(e.batch)})),P=F(()=>_.value>0),C=F(()=>u.value.length>0);let x;function z(){h.value.forEach(o=>{o.abort()}),u.value.length>0&&(x=!0)}function B(){const o=a.queuedFiles.value.slice(0);a.queuedFiles.value=[],g.value.batch(o)?y(o):o.forEach(n=>{y([n])})}function y(o){if(_.value++,typeof e.factory!="function"){t(o,{});return}const n=e.factory(o);if(!n)c("factoryFailed",new Error("QUploader: factory() does not return properly"),o),_.value--;else if(typeof n.catch=="function"&&typeof n.then=="function"){u.value.push(n);const d=i=>{a.isAlive()===!0&&(u.value=u.value.filter(r=>r!==n),u.value.length===0&&(x=!1),a.queuedFiles.value=a.queuedFiles.value.concat(o),o.forEach(r=>{a.updateFileStatus(r,"failed")}),c("factoryFailed",i,o),_.value--)};n.then(i=>{x===!0?d(new Error("Aborted")):a.isAlive()===!0&&(u.value=u.value.filter(r=>r!==n),t(o,i))}).catch(d)}else t(o,n||{})}function t(o,n){const d=new FormData,i=new XMLHttpRequest,r=(v,T)=>n[v]!==void 0?L(n[v])(T):g.value[v](T),w=r("url",o);if(!w){console.error("q-uploader: invalid or no URL specified"),_.value--;return}const N=r("formFields",o);N!==void 0&&N.forEach(v=>{d.append(v.name,v.value)});let $=0,s=0,k=0,R=0,m;i.upload.addEventListener("progress",v=>{if(m===!0)return;const T=Math.min(R,v.loaded);a.uploadedSize.value+=T-k,k=T;let M=k-s;for(let H=$;M>0&&H<o.length;H++){const E=o[H];if(M>E.size)M-=E.size,$++,s+=E.size,a.updateFileStatus(E,"uploading",E.size);else{a.updateFileStatus(E,"uploading",M);return}}},!1),i.onreadystatechange=()=>{i.readyState<4||(i.status&&i.status<400?(a.uploadedFiles.value=a.uploadedFiles.value.concat(o),o.forEach(v=>{a.updateFileStatus(v,"uploaded")}),c("uploaded",{files:o,xhr:i})):(m=!0,a.uploadedSize.value-=k,a.queuedFiles.value=a.queuedFiles.value.concat(o),o.forEach(v=>{a.updateFileStatus(v,"failed")}),c("failed",{files:o,xhr:i})),_.value--,h.value=h.value.filter(v=>v!==i))},i.open(r("method",o),w),r("withCredentials",o)===!0&&(i.withCredentials=!0);const b=r("headers",o);b!==void 0&&b.forEach(v=>{i.setRequestHeader(v.name,v.value)});const I=r("sendRaw",o);o.forEach(v=>{a.updateFileStatus(v,"uploading",0),I!==!0&&d.append(r("fieldName",v),v,v.name),v.xhr=i,v.__abort=()=>{i.abort()},R+=v.size}),c("uploading",{files:o,xhr:i}),h.value.push(i),I===!0?i.send(new Blob(o)):i.send(d)}return{isUploading:P,isBusy:C,abort:z,upload:B}}var qa={name:"QUploader",props:ya,emits:ka,injectPlugin:Sa},xa=Fa(qa);const za={key:0,class:"q-uploader__input overflow-hidden absolute-full"},wa={__name:"UploadFile",props:{multiple:Boolean,url:String,disable:Boolean},emits:["uploaded","failed"],setup(e,{emit:c}){const a=e;Ye();const h=Ze(),u=na();ea();const _=q(null),g=q(null),P=[{name:"Authorization",value:fe.defaults.headers.common.Authorization},{name:"Accept",value:"application/json"}];function C(o){let n;try{n=JSON.parse(o.responseText)}catch{}return n}function x({files:o,xhr:n}){var i;const d=C(n);if(d.code!==200)return z({files:o,xhr:n});(i=g.value)!=null&&i.$el&&(g.value.$el.value=""),c("uploaded",d)}function z({files:o,xhr:n}){const d=C(n);let i=(d==null?void 0:d.message)||n.responseText||n.statusText||"\u7F51\u7EDC\u5F02\u5E38\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF01";u.notify({type:"negative",message:i}),c("failed",new Error(i))}function B(o){let n=o.reduce((d,i)=>{let r="";switch(i.failedPropValidation){case"accept":r="\u6587\u4EF6\u683C\u5F0F\u4E0D\u6B63\u786E";break;case"max-file-size":r="\u6587\u4EF6\u592A\u5927\uFF0C\u65E0\u6CD5\u4E0A\u4F20";break;default:r="\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u6587\u4EF6"}return d+(d?`
|
|
`:"")+r},"");u.notify({type:"negative",message:n}),c("failed",new Error(n))}function y(o,n){!a.multiple&&n.reset(),sa?ia().then(d=>{n.addFiles([d])}).catch(d=>{}):n.pickFiles(o)}function t(){_.value.reset()}return(o,n)=>(D(),X(xa,ra({class:["upload-file",{"no-list":!a.multiple}],multiple:a.multiple,headers:P,"with-credentials":!1,"no-thumbnails":""},G(h),{url:G(fe).defaults.baseURL+a.url,ref_key:"uploaderRef",ref:_,"max-file-size":"10485760","auto-upload":"",color:"white","text-color":"dark",onUploaded:x,onFailed:z,onFinish:t,onRejected:B}),{header:Q(d=>[aa("span",null,[Y(o.$slots,"header",ve(pe(d)),()=>[d.isUploading?(D(),X(Be,{key:0,value:parseFloat(d.uploadProgressLabel),size:"md",color:"red","track-color":"grey-3",class:"absolute-center"},null,8,["value"])):me("",!0),Y(o.$slots,"header-content",{},()=>[O(we,{name:"file_upload"})],!0)],!0),a.disable?me("",!0):(D(),ge(ta,{key:0},[G(u).platform.is.android&&G(u).platform.is.cordova?(D(),ge("div",za,[O(ua,{self:"top start",offset:[-10,-10],"touch-position":""},{default:Q(()=>[O(oa,{style:{"min-width":"120px"}},{default:Q(()=>[_e((D(),X(he,{clickable:"",onClick:i=>y(i,d)},{default:Q(()=>[O(be,null,{default:Q(()=>[Fe("\u62CD\u7167")]),_:1})]),_:2},1032,["onClick"])),[[ye]]),O(la),_e((D(),X(he,{clickable:"",onClick:d.pickFiles},{default:Q(()=>[O(be,null,{default:Q(()=>[Fe("\u9009\u62E9\u56FE\u7247")]),_:1}),O(ke,{ref_key:"triggerRef",ref:g},null,512)]),_:2},1032,["onClick"])),[[ye]])]),_:2},1024)]),_:2},1024)])):(D(),X(ke,{key:1,ref_key:"triggerRef",ref:g},null,512))],64))])]),list:Q(d=>[Y(o.$slots,"list",ve(pe(d)),void 0,!0)]),_:3},16,["class","multiple","url"]))}};var Ea=Ke(wa,[["__scopeId","data-v-f73fe0e4"]]);export{Be as Q,Ea as U};
|