UNPKG

@progress/kendo-angular-upload

Version:

Kendo UI Angular Upload Component

61 lines (60 loc) 2.31 kB
/**----------------------------------------------------------------------------------------- * 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); } };