@progress/kendo-react-upload
Version:
React Upload component helps users transfer files from their file systems to dedicated server handlers. KendoReact Upload package
9 lines (8 loc) • 3.81 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 f=require("react"),d=require("@progress/kendo-react-common"),v=require("@progress/kendo-react-progressbars"),l=require("@progress/kendo-react-intl"),i=require("./messages/index.js"),g=require("./utils/utils.js"),E=require("./UploadListActionButton.js"),s=require("@progress/kendo-svg-icons");function I(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const n in o)if(n!=="default"){const a=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(e,n,a.get?a:{enumerable:!0,get:()=>o[n]})}}return e.default=o,Object.freeze(e)}const t=I(f);class p extends t.Component{getFileExtension(e){return e.extension?e.extension.substring(1):""}getFileValidationMessage(e,n){const a=l.provideLocalizationService(this);let c="";if(n)c=a.toLanguageString(i.statusUploadFailed,i.messages[i.statusUploadFailed]);else if(e.validationErrors&&e.validationErrors.length>0){const r=`upload.${e.validationErrors[0]}`;c=a.toLanguageString(r,i.messages[r])}return c}getFileExtensionIcon(e){switch(e.extension){case".png":case".jpg":case".jpeg":case".tiff":case".bmp":case".gif":return{name:"file-image",icon:s.fileImageIcon};case".mp3":case".mp4":case".wav":return{name:"file-audio",icon:s.fileAudioIcon};case".mkv":case".webm":case".flv":case".gifv":case".avi":case".wmv":return{name:"file-video",icon:s.fileVideoIcon};case".txt":return{name:"file-txt",icon:s.fileTxtIcon};case".pdf":return{name:"file-pdf",icon:s.filePdfIcon};case".ppt":case".pptx":return{name:"file-presentation",icon:s.filePresentationIcon};case".csv":case".xls":case".xlsx":return{name:"file-data",icon:s.fileDataIcon};case".html":case".css":case".js":case".ts":return{name:"file-programming",icon:s.fileProgrammingIcon};case".exe":return{name:"file-config",icon:s.fileConfigIcon};case".zip":case".rar":return{name:"file-zip",icon:s.fileZipIcon};case".doc":case".docm":case".docx":return{name:"file-zip",icon:s.fileWordIcon};default:return{name:"file",icon:s.fileIcon}}}renderValidationError(e,n){return t.createElement("span",{className:"k-file-info",key:"2"},t.createElement("span",{className:"k-file-name",title:e.name},e.name),t.createElement("span",{className:"k-file-validation-message","aria-live":"polite"},this.getFileValidationMessage(e,n)))}renderFileDetails(e){const a=l.provideLocalizationService(this).toLanguageString(i.statusUploaded,i.messages[i.statusUploaded]);return t.createElement("span",{className:"k-file-info",key:"2"},t.createElement("span",{className:"k-file-name",title:e.name},e.name),e.progress!==100?t.createElement("span",{className:"k-file-size"},g.getTotalFilesSizeMessage([e])):t.createElement("span",{className:"k-file-validation-message","aria-live":"polite"},a))}render(){const{files:e,...n}=this.props,a=e[0],[,c,r,m]=g.getFileStatus([a]),u=!m&&!c&&!r;return t.createElement("div",{className:d.classNames("k-file-single")},u&&t.createElement(v.ProgressBar,{value:a.progress||0,tabIndex:-1}),t.createElement("span",{className:"k-file-icon-wrapper",key:"1"},t.createElement(d.IconWrap,{className:"k-file-icon",...this.getFileExtensionIcon(a),size:"xxlarge"}),t.createElement("span",{className:"k-file-state"})),m||r?this.renderValidationError(a,r):this.renderFileDetails(a),t.createElement(E.UploadListActionButton,{uid:a.uid,status:a.status,progress:a.progress,...n}))}}l.registerForLocalization(p);exports.UploadListSingleItem=p;