Files
dockerStuff/config/tandoor/staticfiles/vue3/assets/VFileUpload-DmaEfjuX.js
2025-11-16 21:46:46 +00:00

2 lines
4.6 KiB
JavaScript

import{ak as z,al as C,r as w,c as G,cT as H,at as x,y as B,g as a,i,F as m,z as I,bc as y,I as p,av as D,cz as J,dG as M,ao as W,cN as _,bj as q,bO as A,bJ as K,br as F,B as U,cA as Q,bt as X,bs as Y,cP as Z,dH as ee,aD as le,dI as te,G as ae,c1 as ie}from"./main-BhFWIRV_.js";import{u as ne}from"./fileDrop-BjiZTCss.js";const oe=C({clearable:Boolean,file:{type:Object,default:null},fileIcon:{type:String,default:"mdi-file-document"},showSize:Boolean,...M({border:!0,rounded:!0,lines:"two"})},"VFileUploadItem"),se=z()({name:"VFileUploadItem",props:oe(),emits:{"click:remove":()=>!0,click:e=>!0},setup(e,r){let{emit:g,slots:l}=r;const n=w(),V=G(()=>typeof e.showSize!="boolean"?e.showSize:void 0);function o(){g("click:remove")}H(()=>{n.value=e.file?.type.startsWith("image")?URL.createObjectURL(e.file):void 0}),x(()=>{const s=B.filterProps(e);return a(B,D(s,{class:["v-file-upload-item",e.class],title:e.title??e.file?.name,subtitle:e.showSize?J(e.file?.size,V.value):e.file?.type,style:e.style}),{...l,title:l.title??(()=>e?.title??e.file?.name),prepend:c=>i(m,null,[l.prepend?a(y,{defaults:{VAvatar:{image:n.value,icon:n.value?void 0:e.fileIcon,rounded:!0}}},{default:()=>[l.prepend?.(c)??a(p,null,null)]}):a(p,{icon:e.fileIcon,image:n.value,rounded:!0},null)]),append:c=>i(m,null,[e.clearable&&i(m,null,[l.clear?a(y,{defaults:{VBtn:{icon:"$clear",density:"comfortable",variant:"text"}}},{default:()=>[l.clear?.({...c,props:{onClick:o}})??a(I,null,null)]}):a(I,{icon:"$clear",density:"comfortable",variant:"text",onClick:o},null)]),l.append?.(c)])})})}}),ue=C({browseText:{type:String,default:"$vuetify.fileUpload.browse"},dividerText:{type:String,default:"$vuetify.fileUpload.divider"},title:{type:String,default:"$vuetify.fileUpload.title"},subtitle:String,icon:{type:le,default:"$upload"},modelValue:{type:[Array,Object],default:null,validator:e=>A(e).every(r=>r!=null&&typeof r=="object")},clearable:Boolean,disabled:Boolean,hideBrowse:Boolean,multiple:Boolean,scrim:{type:[Boolean,String],default:!0},showSize:Boolean,name:String,...ee(),...Z(),...Y(te({length:150}),["length","thickness","opacity"]),...X()},"VFileUpload"),ce=z()({name:"VFileUpload",inheritAttrs:!1,props:ue(),emits:{"update:modelValue":e=>!0},setup(e,r){let{attrs:g,slots:l}=r;const{t:n}=W(),{densityClasses:V}=_(e),o=q(e,"modelValue",e.modelValue,t=>A(t),t=>e.multiple||Array.isArray(e.modelValue)?t:t[0]),s=K(!1),c=w(null),u=w(null),{handleDrop:R}=ne();function T(t){t.preventDefault(),t.stopImmediatePropagation(),s.value=!0}function $(t){t.preventDefault(),s.value=!1}async function j(t){if(t.preventDefault(),t.stopImmediatePropagation(),s.value=!1,!u.value)return;const d=new DataTransfer;for(const f of await R(t))d.items.add(f);u.value.files=d.files,u.value.dispatchEvent(new Event("change",{bubbles:!0}))}function k(){u.value?.click()}function P(t){const d=o.value.filter((f,h)=>h!==t);o.value=d,!(d.length>0||!u.value)&&(u.value.value="")}x(()=>{const t=!!(l.title||e.title),d=!!(l.icon||e.icon),f=!!(!e.hideBrowse&&(l.browse||e.density==="default")),h=F.filterProps(e),L=U.filterProps(e),[O,N]=Q(g),S=i("input",D({ref:u,type:"file",disabled:e.disabled,multiple:e.multiple,name:e.name,onChange:b=>{if(!b.target)return;const v=b.target;o.value=[...v.files??[]]}},N),null);return i(m,null,[a(F,D({ref:c},h,{class:["v-file-upload",{"v-file-upload--clickable":!f,"v-file-upload--disabled":e.disabled,"v-file-upload--dragging":s.value},V.value,e.class],style:[e.style],onDragleave:$,onDragover:T,onDrop:j,onClick:f?void 0:k},O),{default:()=>[d&&i("div",{key:"icon",class:"v-file-upload-icon"},[l.icon?a(y,{key:"icon-defaults",defaults:{VIcon:{icon:e.icon}}},{default:()=>[l.icon()]}):a(ae,{key:"icon-icon",icon:e.icon},null)]),t&&i("div",{key:"title",class:"v-file-upload-title"},[l.title?.()??n(e.title)]),e.density==="default"&&i(m,null,[i("div",{key:"upload-divider",class:"v-file-upload-divider"},[l.divider?.()??a(U,L,{default:()=>[n(e.dividerText)]})]),f&&i(m,null,[l.browse?a(y,{defaults:{VBtn:{readonly:e.disabled,size:"large",text:n(e.browseText),variant:"tonal"}}},{default:()=>[l.browse({props:{onClick:k}})]}):a(I,{readonly:e.disabled,size:"large",text:n(e.browseText),variant:"tonal",onClick:k},null)]),e.subtitle&&i("div",{class:"v-file-upload-subtitle"},[e.subtitle])]),a(ie,{modelValue:s.value,contained:!0,scrim:e.scrim},null),l.input?.({inputNode:S})??S]}),o.value.length>0&&i("div",{class:"v-file-upload-items"},[o.value.map((b,v)=>{const E={file:b,props:{"onClick:remove":()=>P(v)}};return a(y,{key:v,defaults:{VFileUploadItem:{file:b,clearable:e.clearable,disabled:e.disabled,showSize:e.showSize}}},{default:()=>[l.item?.(E)??a(se,{key:v,"onClick:remove":()=>P(v)},l)]})})])])})}});export{ce as V};