@progress/kendo-angular-upload
Version:
Kendo UI Angular Upload Component
61 lines (60 loc) • 2.31 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
/**
* @hidden
*/
export const INVALIDMAXFILESIZE = "invalidMaxFileSize";
/**
* @hidden
*/
export const INVALIDMINFILESIZE = "invalidMinFileSize";
/**
* @hidden
*/
export const INVALIDFILEEXTENSION = "invalidFileExtension";
const validateFileExtension = (file, allowedExtensions) => {
if (allowedExtensions.length > 0) {
if (allowedExtensions.indexOf(file.extension.toLowerCase()) < 0) {
file.validationErrors = file.validationErrors || [];
if (file.validationErrors.indexOf(INVALIDFILEEXTENSION) < 0) {
file.validationErrors.push(INVALIDFILEEXTENSION);
}
}
}
};
const validateFileSize = (file, minFileSize, maxFileSize) => {
if (minFileSize !== 0 && file.size < minFileSize) {
file.validationErrors = file.validationErrors || [];
if (file.validationErrors.indexOf(INVALIDMINFILESIZE) < 0) {
file.validationErrors.push(INVALIDMINFILESIZE);
}
}
if (maxFileSize !== 0 && file.size > maxFileSize) {
file.validationErrors = file.validationErrors || [];
if (file.validationErrors.indexOf(INVALIDMAXFILESIZE) < 0) {
file.validationErrors.push(INVALIDMAXFILESIZE);
}
}
};
const parseAllowedExtensions = (extensions) => {
const allowedExtensions = extensions.map((ext) => {
const parsedExt = (ext.substring(0, 1) === ".") ? ext : ("." + ext);
return parsedExt.toLowerCase();
});
return allowedExtensions;
};
/**
* @hidden
*/
export const validateFiles = (files, restrictionInfo) => {
const allowedExtensions = parseAllowedExtensions(restrictionInfo.allowedExtensions);
const maxFileSize = restrictionInfo.maxFileSize;
const minFileSize = restrictionInfo.minFileSize;
let i;
for (i = 0; i < files.length; i++) {
validateFileExtension(files[i], allowedExtensions);
validateFileSize(files[i], minFileSize, maxFileSize);
}
};