import{u as he,b as L,c as O,d as ge,e as ke,m as Fe}from"./VTextField-BoJUR4Xs.js";import{p as W,f as be,an as we,n as Ie,w as K,u as Ce,aB as De,aE as Se,aG as G,a5 as Ve}from"./vendor-vuetify-DpmmaPkh.js";import{e as m,o as Be,j as b,k as h,F as V,m as B,n as Ae,b as A,t as Pe,I as Re,s as Te}from"./vendor-vue-BiQC5iF7.js";import{I as ze}from"./index-D042plwv.js";import{V as $e}from"./VChip-nQelUOZI.js";function Ee(){function e(o){var a,n;return[...((a=o.dataTransfer)==null?void 0:a.items)??[]].filter(s=>s.kind==="file").map(s=>s.webkitGetAsEntry()).filter(Boolean).length>0||[...((n=o.dataTransfer)==null?void 0:n.files)??[]].length>0}async function r(o){var n,s;const u=[],a=[...((n=o.dataTransfer)==null?void 0:n.items)??[]].filter(i=>i.kind==="file").map(i=>i.webkitGetAsEntry()).filter(Boolean);if(a.length)for(const i of a){const d=await U(i,_(".",i));u.push(...d.map(y=>y.file))}else u.push(...((s=o.dataTransfer)==null?void 0:s.files)??[]);return u}return{handleDrop:r,hasFilesOrFolders:e}}function U(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return new Promise((o,u)=>{e.isFile?e.file(n=>o([{file:n,path:r}]),u):e.isDirectory&&e.createReader().readEntries(async n=>{const s=[];for(const i of n)s.push(...await U(i,_(r,i)));o(s)})})}function _(e,r){return r.isDirectory?`${e}/${r.name}`:e}const je=W({filterByType:String},"file-accept");function Ne(e){const r=m(()=>e.filterByType?xe(e.filterByType):null);function o(u){if(r.value){const a=u.filter(r.value);return{accepted:a,rejected:u.filter(n=>!a.includes(n))}}return{accepted:u,rejected:[]}}return{filterAccepted:o}}function xe(e){const r=e.split(",").map(n=>n.trim().toLowerCase()),o=r.filter(n=>n.startsWith(".")),u=r.filter(n=>n.endsWith("/*")),a=r.filter(n=>!o.includes(n)&&!u.includes(n));return n=>{var d,y;const s=((d=n.name.split(".").at(-1))==null?void 0:d.toLowerCase())??"",i=((y=n.type.split("/").at(0))==null?void 0:y.toLowerCase())??"";return a.includes(n.type)||o.includes(`.${s}`)||u.includes(`${i}/*`)}}const Me=W({chips:Boolean,counter:Boolean,counterSizeString:{type:String,default:"$vuetify.fileInput.counterSize"},counterString:{type:String,default:"$vuetify.fileInput.counter"},hideInput:Boolean,multiple:Boolean,showSize:{type:[Boolean,Number,String],default:!1,validator:e=>typeof e=="boolean"||[1e3,1024].includes(Number(e))},truncateLength:{type:[Number,String],default:22},...Ve(Fe({prependIcon:"$file"}),["direction"]),modelValue:{type:[Array,Object],default:e=>e.multiple?[]:null,validator:e=>K(e).every(r=>r!=null&&typeof r=="object")},...je(),...ke({clearable:!0})},"VFileInput"),Ue=be()({name:"VFileInput",inheritAttrs:!1,props:Me(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,rejected:e=>!0},setup(e,r){let{attrs:o,emit:u,slots:a}=r;const{t:n}=we(),{filterAccepted:s}=Ne(e),i=Ie(e,"modelValue",e.modelValue,t=>K(t),t=>!e.multiple&&Array.isArray(t)?t[0]:t),{isFocused:d,focus:y,blur:q}=he(e),P=m(()=>typeof e.showSize!="boolean"?e.showSize:void 0),R=m(()=>(i.value??[]).reduce((t,l)=>{let{size:f=0}=l;return t+f},0)),T=m(()=>G(R.value,P.value)),w=m(()=>(i.value??[]).map(t=>{const{name:l="",size:f=0}=t,p=ne(l);return e.showSize?`${p} (${G(f,P.value)})`:p})),H=m(()=>{var l;const t=((l=i.value)==null?void 0:l.length)??0;return e.showSize?n(e.counterSizeString,t,T.value):n(e.counterString,t)}),z=A(),$=A(),c=A(),J=Pe(()=>d.value||e.active),E=m(()=>["plain","underlined"].includes(e.variant)),k=Te(!1),{handleDrop:Q,hasFilesOrFolders:X}=Ee();function I(){var t;c.value!==document.activeElement&&((t=c.value)==null||t.focus()),d.value||y()}function Y(t){var l;(l=c.value)==null||l.click()}function Z(t){u("mousedown:control",t)}function ee(t){var l;(l=c.value)==null||l.click(),u("click:control",t)}function te(t){t.stopPropagation(),I(),Re(()=>{i.value=[],Se(e["onClick:clear"],t)})}function ne(t){if(t.length{(!Array.isArray(t)||!t.length)&&c.value&&(c.value.value="")}),Ce(()=>{const t=!!(a.counter||e.counter),l=!!(t||a.details),[f,p]=De(o),{modelValue:C,...D}=L.filterProps(e),oe={...O.filterProps(e),"onClick:clear":te},ue=o.webkitdirectory!==void 0&&o.webkitdirectory!==!1,se=o.accept?String(o.accept):void 0,ce=ue?void 0:e.filterByType??se;return b(L,B({ref:z,modelValue:e.multiple?i.value:i.value[0],class:["v-file-input",{"v-file-input--chips":!!e.chips,"v-file-input--dragging":k.value,"v-file-input--hide":e.hideInput,"v-input--plain-underlined":E.value},e.class],style:e.style,"onClick:prepend":Y},f,D,{centerAffix:!E.value,focused:d.value}),{...a,default:S=>{let{id:F,isDisabled:g,isDirty:N,isReadonly:x,isValid:de,hasDetails:fe}=S;return b(O,B({ref:$,prependIcon:e.prependIcon,onMousedown:Z,onClick:ee,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},oe,{id:F.value,active:J.value||N.value,dirty:N.value||e.dirty,disabled:g.value,focused:d.value,details:fe.value,error:de.value===!1,onDragover:le,onDrop:ie}),{...a,default:pe=>{var M;let{props:{class:ve,...me},controlRef:ye}=pe;return h(V,null,[h("input",B({ref:v=>c.value=ye.value=v,type:"file",accept:ce,readonly:x.value,disabled:g.value,multiple:e.multiple,name:e.name,onClick:v=>{v.stopPropagation(),x.value&&v.preventDefault(),I()},onChange:re,onDragleave:ae,onFocus:I,onBlur:q},me,p),null),h("div",{class:Ae(ve)},[!!((M=i.value)!=null&&M.length)&&!e.hideInput&&(a.selection?a.selection({fileNames:w.value,totalBytes:R.value,totalBytesReadable:T.value}):e.chips?w.value.map(v=>b($e,{key:v,size:"small",text:v},null)):w.value.join(", "))])])}})},details:l?S=>{var F,g;return h(V,null,[(F=a.details)==null?void 0:F.call(a,S),t&&h(V,null,[h("span",null,null),b(ge,{active:!!((g=i.value)!=null&&g.length),value:H.value,disabled:e.disabled},a.counter)])])}:void 0})}),ze({},z,$,c)}});export{Ue as V};