2 lines
5.8 KiB
JavaScript
2 lines
5.8 KiB
JavaScript
import{u as K,h as M,i as X,j as Y,k as G,l as H,m as Q,n as J,o as Z}from"./AddressModal-33esE-yw.js";import{g as U,r as E,a as c,y as ee,A as w,s as te,h,c as ne,$ as le,x as ie}from"./index-BFHpqQMc.js";import{n as ae}from"./LocalStorage-Bg7wwOV9.js";function y(e,f,x,F){const u=[];return e.forEach(s=>{F(s)===!0?u.push(s):f.push({failedPropValidation:x,file:s})}),u}function D(e){e?.dataTransfer&&(e.dataTransfer.dropEffect="copy"),w(e)}const ue={multiple:Boolean,accept:String,capture:String,maxFileSize:[Number,String],maxTotalSize:[Number,String],maxFiles:[Number,String],filter:Function},re=["rejected"];function se({editable:e,dnd:f,getFileInput:x,addFilesToQueue:F}){const{props:u,emit:s,proxy:p}=U(),b=E(null),z=c(()=>u.accept!==void 0?u.accept.split(",").map(t=>(t=t.trim(),t==="*"?"*/":(t.endsWith("/*")&&(t=t.slice(0,t.length-1)),t.toUpperCase()))):null),V=c(()=>parseInt(u.maxFiles,10)),j=c(()=>parseInt(u.maxTotalSize,10));function N(t){if(e.value)if(t!==Object(t)&&(t={target:null}),t.target?.matches('input[type="file"]')===!0)t.clientX===0&&t.clientY===0&&ee(t);else{const m=x();m!==t.target&&m?.click(t)}}function _(t){e.value&&t&&F(null,t)}function P(t,m,S,C){let l=Array.from(m||t.target.files);const d=[],g=()=>{d.length!==0&&s("rejected",d)};if(u.accept!==void 0&&z.value.indexOf("*/")===-1&&(l=y(l,d,"accept",i=>z.value.some(r=>i.type.toUpperCase().startsWith(r)||i.name.toUpperCase().endsWith(r))),l.length===0))return g();if(u.maxFileSize!==void 0){const i=parseInt(u.maxFileSize,10);if(l=y(l,d,"max-file-size",r=>r.size<=i),l.length===0)return g()}if(u.multiple!==!0&&l.length!==0&&(l=[l[0]]),l.forEach(i=>{i.__key=i.webkitRelativePath+i.lastModified+i.name+i.size}),C===!0){const i=S.map(r=>r.__key);l=y(l,d,"duplicate",r=>i.includes(r.__key)===!1)}if(l.length===0)return g();if(u.maxTotalSize!==void 0){let i=C===!0?S.reduce((r,T)=>r+T.size,0):0;if(l=y(l,d,"max-total-size",r=>(i+=r.size,i<=j.value)),l.length===0)return g()}if(typeof u.filter=="function"){const i=u.filter(l);l=y(l,d,"filter",r=>i.includes(r))}if(u.maxFiles!==void 0){let i=C===!0?S.length:0;if(l=y(l,d,"max-files",()=>(i++,i<=V.value)),l.length===0)return g()}if(g(),l.length!==0)return l}function I(t){D(t),f.value!==!0&&(f.value=!0)}function a(t){w(t),(t.relatedTarget!==null||te.is.safari!==!0?t.relatedTarget!==b.value:document.elementsFromPoint(t.clientX,t.clientY).includes(b.value)===!1)===!0&&(f.value=!1)}function A(t){D(t);const m=t.dataTransfer.files;m.length!==0&&F(null,m),f.value=!1}function O(t){if(f.value===!0)return h("div",{ref:b,class:`q-${t}__dnd absolute-full`,onDragenter:D,onDragover:D,onDragleave:a,onDrop:A})}return Object.assign(p,{pickFiles:N,addFiles:_}),{pickFiles:N,addFiles:_,onDragover:I,onDragleave:a,processFiles:P,getDndNode:O,maxFilesNumber:V,maxTotalSizeNumber:j}}const de=ne({name:"QFile",inheritAttrs:!1,props:{...X,...M,...ue,modelValue:[File,FileList,Array],append:Boolean,useChips:Boolean,displayValue:[String,Number],tabindex:{type:[String,Number],default:0},counterLabel:Function,inputClass:[Array,String,Object],inputStyle:[Array,String,Object]},emits:[...K,...re],setup(e,{slots:f,emit:x,attrs:F}){const{proxy:u}=U(),s=Y(),p=E(null),b=E(!1),z=G(e),{pickFiles:V,onDragover:j,onDragleave:N,processFiles:_,getDndNode:P}=se({editable:s.editable,dnd:b,getFileInput:R,addFilesToQueue:$}),I=H(e),a=c(()=>Object(e.modelValue)===e.modelValue?"length"in e.modelValue?Array.from(e.modelValue):[e.modelValue]:[]),A=c(()=>Q(a.value)),O=c(()=>a.value.map(n=>n.name).join(", ")),t=c(()=>ae(a.value.reduce((n,o)=>n+o.size,0))),m=c(()=>({totalSize:t.value,filesNumber:a.value.length,maxFiles:e.maxFiles})),S=c(()=>({tabindex:-1,type:"file",title:"",accept:e.accept,capture:e.capture,name:z.value,...F,id:s.targetUid.value,disabled:s.editable.value!==!0})),C=c(()=>"q-file q-field--auto-height"+(b.value===!0?" q-file--dnd":"")),l=c(()=>e.multiple===!0&&e.append===!0);function d(n){const o=a.value.slice();o.splice(n,1),i(o)}function g(n){const o=a.value.indexOf(n);o!==-1&&d(o)}function i(n){x("update:modelValue",e.multiple===!0?n:n[0])}function r(n){n.keyCode===13&&ie(n)}function T(n){(n.keyCode===13||n.keyCode===32)&&V(n)}function R(){return p.value}function $(n,o){const v=_(n,o,a.value,l.value),q=R();q!=null&&(q.value=""),v!==void 0&&((e.multiple===!0?e.modelValue&&v.every(W=>a.value.includes(W)):e.modelValue===v[0])||i(l.value===!0?a.value.concat(v):v))}function k(){return[h("input",{class:[e.inputClass,"q-file__filler"],style:e.inputStyle})]}function B(){if(f.file!==void 0)return a.value.length===0?k():a.value.map((o,v)=>f.file({index:v,file:o,ref:this}));if(f.selected!==void 0)return a.value.length===0?k():f.selected({files:a.value,ref:this});if(e.useChips===!0)return a.value.length===0?k():a.value.map((o,v)=>h(Z,{key:"file-"+v,removable:s.editable.value,dense:!0,textColor:e.color,tabindex:e.tabindex,onRemove:()=>{d(v)}},()=>h("span",{class:"ellipsis",textContent:o.name})));const n=e.displayValue!==void 0?e.displayValue:O.value;return n.length!==0?[h("div",{class:e.inputClass,style:e.inputStyle,textContent:n})]:k()}function L(){const n={ref:p,...S.value,...I.value,class:"q-field__input fit absolute-full cursor-pointer",onChange:$};return e.multiple===!0&&(n.multiple=!0),h("input",n)}return Object.assign(s,{fieldClass:C,emitValue:i,hasValue:A,inputRef:p,innerValue:a,floatingLabel:c(()=>A.value===!0||Q(e.displayValue)),computedCounter:c(()=>{if(e.counterLabel!==void 0)return e.counterLabel(m.value);const n=e.maxFiles;return`${a.value.length}${n!==void 0?" / "+n:""} (${t.value})`}),getControlChild:()=>P("file"),getControl:()=>{const n={ref:s.targetRef,class:"q-field__native row items-center cursor-pointer",tabindex:e.tabindex};return s.editable.value===!0&&Object.assign(n,{onDragover:j,onDragleave:N,onKeydown:r,onKeyup:T}),h("div",n,[L()].concat(B()))}}),Object.assign(u,{removeAtIndex:d,removeFile:g,getNativeElement:()=>p.value}),le(u,"nativeEl",()=>p.value),J(s)}});export{de as Q};
|