@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
39 lines • 4.51 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class FilesFormValidators {
/**
* Checks max size of file
*
* @param {number} maxSize Max size [MB]
* @returns Uses 'tooLarge' validator error with maxSize property
* @memberOf FilesFormValidators
*/
maxSize(maxSize) {
return (control) => {
const errors = {};
if (maxSize) {
const files = Array.from(control.value);
files.forEach((file) => {
var _a, _b;
if (file.size > maxSize * 1000000) {
const invalidFiles = (_b = (_a = errors.tooLarge) === null || _a === void 0 ? void 0 : _a.invalidFiles) !== null && _b !== void 0 ? _b : [];
errors.tooLarge = {
maxSize,
invalidFiles: [...invalidFiles, file.name],
};
}
});
}
return Object.keys(errors).length === 0 ? null : errors;
};
}
}
FilesFormValidators.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: FilesFormValidators, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
FilesFormValidators.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: FilesFormValidators, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: FilesFormValidators, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtZm9ybS12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9zaGFyZWQvc2VydmljZXMvZmlsZS9maWxlcy1mb3JtLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsT0FBZ0I7UUFDdEIsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDM0QsTUFBTSxNQUFNLEdBQXFCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLE9BQU8sRUFBRTtnQkFDWCxNQUFNLEtBQUssR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFOztvQkFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sR0FBRyxPQUFPLEVBQUU7d0JBQ2pDLE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxZQUFZLG1DQUFJLEVBQUUsQ0FBQzt3QkFDekQsTUFBTSxDQUFDLFFBQVEsR0FBRzs0QkFDaEIsT0FBTzs0QkFDUCxZQUFZLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO3lCQUMzQyxDQUFDO3FCQUNIO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDMUQsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7Z0hBekJVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlc0Zvcm1WYWxpZGF0b3JzIHtcbiAgLyoqXG4gICAqIENoZWNrcyBtYXggc2l6ZSBvZiBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhTaXplIE1heCBzaXplIFtNQl1cbiAgICogQHJldHVybnMgVXNlcyAndG9vTGFyZ2UnIHZhbGlkYXRvciBlcnJvciB3aXRoIG1heFNpemUgcHJvcGVydHlcbiAgICogQG1lbWJlck9mIEZpbGVzRm9ybVZhbGlkYXRvcnNcbiAgICovXG4gIG1heFNpemUobWF4U2l6ZT86IG51bWJlcik6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuICAgICAgaWYgKG1heFNpemUpIHtcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IEFycmF5LmZyb20oY29udHJvbC52YWx1ZSk7XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGU6IEZpbGUpID0+IHtcbiAgICAgICAgICBpZiAoZmlsZS5zaXplID4gbWF4U2l6ZSAqIDEwMDAwMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGludmFsaWRGaWxlcyA9IGVycm9ycy50b29MYXJnZT8uaW52YWxpZEZpbGVzID8/IFtdO1xuICAgICAgICAgICAgZXJyb3JzLnRvb0xhcmdlID0ge1xuICAgICAgICAgICAgICBtYXhTaXplLFxuICAgICAgICAgICAgICBpbnZhbGlkRmlsZXM6IFsuLi5pbnZhbGlkRmlsZXMsIGZpbGUubmFtZV0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPT09IDAgPyBudWxsIDogZXJyb3JzO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==