@progress/kendo-vue-upload
Version:
9 lines (8 loc) • 3.11 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue"),u=require("@progress/kendo-vue-common"),r=require("./utils/utils.js"),g=require("@progress/kendo-vue-intl"),a=require("./messages/main.js"),y=require("./UploadListActionButton.js"),L=require("@progress/kendo-vue-progressbars"),N=require("@progress/kendo-svg-icons"),$=s.defineComponent({name:"KendoVueUploadListMultiItem",props:{files:Array,disabled:Boolean,async:Object},emits:{cancel:null,retry:null,remove:null},inject:{kendoLocalizationService:{default:null}},methods:{onRetry(e){this.$emit("retry",e)},onRemove(e){this.$emit("remove",e)},onCancel(e){this.$emit("cancel",e)},getFileValidationMessage(e){const o=g.provideLocalizationService(this);let i="";if(e.validationErrors&&e.validationErrors.length>0){const n=`upload.${e.validationErrors[0]}`;i=o.toLanguageString(n,a.messages[n])}return i},progress(){const{files:e}=this.$props;let o=0;return e.forEach(i=>{o+=i.progress||0}),o/e.length}},setup(){return{kendoLocalizationService:s.inject("kendoLocalizationService",{})}},render(){const{files:e,disabled:o,async:i}=this.$props,n=u.classNames("k-file-multiple"),[,p,d,m]=r.getFileStatus(e),l=g.provideLocalizationService(this),v=l.toLanguageString(a.total,a.messages[a.total]),h=l.toLanguageString(a.files,a.messages[a.files]),k=l.toLanguageString(a.statusUploadFailed,a.messages[a.statusUploadFailed]),V=l.toLanguageString(a.statusUploaded,a.messages[a.statusUploaded]),c=this.progress(),f=!m&&!p&&!d,S=function(){return e.map(function(t){return s.createVNode("span",{key:t.name,class:"k-file-info"},[s.createVNode("span",{class:"k-file-name",title:t.name},[t.name]),r.fileHasValidationErrors(t)?s.createVNode("span",{class:"k-file-validation-message"},[this.getFileValidationMessage(t)]):s.createVNode("span",{key:`${t.name}-size`,class:"k-file-size"},[r.getTotalFilesSizeMessage([t])])])},this)};return s.createVNode("div",{class:n},[f&&s.createVNode(L.ProgressBar,{value:c||0,labelVisible:!1},null),s.createVNode("span",{class:"k-file-icon-wrapper"},[s.createVNode(u.Icon,{name:"copy",icon:N.copyIcon,size:"xxxlarge",class:"k-file-icon"},null)]),s.createVNode("span",{class:"k-multiple-files-wrapper"},[S.call(this),d?s.createVNode("span",{class:"k-file-validation-message"},[`${e.length} ${k}`]):c!==100?s.createVNode("span",{class:"k-file-summary"},[`${v}: ${e.length} ${h}, ${r.getTotalFilesSizeMessage(e)}`]):s.createVNode("span",{class:"k-file-summary k-text-success"},[`${e.length} ${V}`])]),s.createVNode(y.UploadListActionButton,{uid:e[0].uid,status:e[0].status,progress:c,files:e,disabled:o,async:i,onCancel:this.onCancel,onRemove:this.onRemove,onRetry:this.onRetry},null)])}});exports.UploadListMultiItem=$;