UNPKG

@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
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==