UNPKG

@progress/kendo-vue-upload

Version:
9 lines (8 loc) 3.43 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),s=require("@progress/kendo-vue-common"),b=require("./UploadList.js"),x=require("./UploadActionButtons.js"),g=require("./UploadDropZone.js"),C=-1,D=n.defineComponent({name:"KendoVueUploadUI",props:{async:Object,className:String,multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},showFileList:Boolean,showActionButtons:Boolean,actionsLayout:{type:String,default:function(){return"end"}},tabIndex:Number,accept:String,groupedFiles:{type:Object,default:function(){return{}}},navigationIndex:Number,notFocusedIndex:Number,list:[String,Function,Object],id:String,ariaLabelledBy:String,ariaDescribedBy:String},computed:{groupsCount(){return Object.keys(this.$props.groupedFiles).length},lastGroupIndex(){return this.groupsCount-1},addButtonIndex(){return C},clearButtonIndex(){return this.lastGroupIndex+1},uploadButtonIndex(){return this.lastGroupIndex+2},isRtl(){return this._container&&getComputedStyle(this._container).direction==="rtl"||!1}},methods:{actionElement(){if(this.uploadDropZone)return this.uploadDropZone.actionElement()},focus(){if(this.uploadDropZone)return this.uploadDropZone.focus()},onAdd(e){this.$emit("add",e)},onRetry(e){this.$emit("retry",e)},onCancel(e){this.$emit("cancel",e)},onClear(){this.$emit("clear")},onUpload(){this.$emit("upload")},onRemove(e){this.$emit("remove",e)},onKeyDown(e){this.$emit("keydown",e,this.isRtl)},onFocus(e){this.$emit("focus",e)},onBlur(e){this.$emit("blur",e)},onClick(e){this.$emit("click",e)}},emits:{add:null,retry:null,cancel:null,clear:null,upload:null,remove:null,keydown:null,click:null,focus:null,blur:null},mounted(){this._container=this.containerRef,this.uploadDropZone=this.uploadDropZoneRef},setup(){const e=n.ref(null),t=n.ref(null);return{containerRef:e,uploadDropZoneRef:t}},render(){const{multiple:e,disabled:t,tabIndex:a,accept:d,showFileList:r,groupedFiles:i,navigationIndex:o,showActionButtons:u,actionsLayout:c,notFocusedIndex:p,list:h,id:m,ariaLabelledBy:y,ariaDescribedBy:f,async:l}=this.$props,B=s.classNames("k-upload","k-upload-async",this.$props.className,t?"k-disabled":"");return n.createVNode("div",{ref:s.setRef(this,"container"),class:B,onKeydown:this.onKeyDown,onFocus:this.onFocus,onBlur:this.onBlur},[n.createVNode(g.UploadDropZone,{id:m,ariaLabelledBy:y,ariaDescribedBy:f,ref:I=>{this.uploadDropZoneRef=I},accept:d,async:l,addButtonIndex:this.addButtonIndex,navigationIndex:o,notFocusedIndex:p,tabIndex:a,multiple:e,onClick:this.onClick,onAdd:this.onAdd,fileGroup:i,disabled:t},null),r?n.createVNode(b.UploadList,{groupedFiles:i,disabled:t,async:l,navigationIndex:o,list:h,onCancel:this.onCancel,onRemove:this.onRemove,onRetry:this.onRetry,onClick:this.onClick},null):void 0,u?n.createVNode(x.UploadActionButtons,{disabled:t,navigationIndex:o,clearButtonIndex:this.clearButtonIndex,uploadButtonIndex:this.uploadButtonIndex,actionsLayout:c,onUpload:this.onUpload,onClear:this.onClear,onClick:this.onClick},null):void 0])}});exports.UploadUI=D;