UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

41 lines 5.51 kB
import { NG_VALIDATORS } from '@angular/forms'; import { Directive, Input } from '@angular/core'; import { ValidationPattern } from './validation-pattern'; import * as i0 from "@angular/core"; export class DefaultValidationDirective { constructor() { this.c8yDefaultValidation = ''; } validate(control) { if (!control.value) { return null; } const validation = ValidationPattern.get(this.c8yDefaultValidation); if (!validation) { throw new Error(`Pattern ${this.c8yDefaultValidation} not found.`); } let valid = true; if (validation.pattern) { valid = validation.pattern.test(control.value); } if (validation.maxLength) { valid = control.value.length < validation.maxLength; } if (validation.minLength) { valid = control.value.length >= validation.minLength; } return valid ? null : { [this.c8yDefaultValidation]: true }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultValidationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DefaultValidationDirective, selector: "[c8yDefaultValidation]", inputs: { c8yDefaultValidation: "c8yDefaultValidation" }, providers: [{ provide: NG_VALIDATORS, useExisting: DefaultValidationDirective, multi: true }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultValidationDirective, decorators: [{ type: Directive, args: [{ selector: '[c8yDefaultValidation]', providers: [{ provide: NG_VALIDATORS, useExisting: DefaultValidationDirective, multi: true }] }] }], propDecorators: { c8yDefaultValidation: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC12YWxpZGF0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZm9ybXMvZGVmYXVsdC12YWxpZGF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQU16RCxNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBS1cseUJBQW9CLEdBQUcsRUFBRSxDQUFDO0tBdUJwQztJQXJCQyxRQUFRLENBQUMsT0FBd0I7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLENBQUMsb0JBQW9CLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDOUQsQ0FBQzsrR0F2QlUsMEJBQTBCO21HQUExQiwwQkFBMEIsMkdBRjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7OzRGQUVsRiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsNEJBQTRCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUM5Rjs4QkFFVSxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOR19WQUxJREFUT1JTLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25QYXR0ZXJuIH0gZnJvbSAnLi92YWxpZGF0aW9uLXBhdHRlcm4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYzh5RGVmYXVsdFZhbGlkYXRpb25dJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRGVmYXVsdFZhbGlkYXRpb25EaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRWYWxpZGF0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgYzh5RGVmYXVsdFZhbGlkYXRpb24gPSAnJztcblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdmFsaWRhdGlvbiA9IFZhbGlkYXRpb25QYXR0ZXJuLmdldCh0aGlzLmM4eURlZmF1bHRWYWxpZGF0aW9uKTtcbiAgICBpZiAoIXZhbGlkYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0dGVybiAke3RoaXMuYzh5RGVmYXVsdFZhbGlkYXRpb259IG5vdCBmb3VuZC5gKTtcbiAgICB9XG5cbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuICAgIGlmICh2YWxpZGF0aW9uLnBhdHRlcm4pIHtcbiAgICAgIHZhbGlkID0gdmFsaWRhdGlvbi5wYXR0ZXJuLnRlc3QoY29udHJvbC52YWx1ZSk7XG4gICAgfVxuICAgIGlmICh2YWxpZGF0aW9uLm1heExlbmd0aCkge1xuICAgICAgdmFsaWQgPSBjb250cm9sLnZhbHVlLmxlbmd0aCA8IHZhbGlkYXRpb24ubWF4TGVuZ3RoO1xuICAgIH1cbiAgICBpZiAodmFsaWRhdGlvbi5taW5MZW5ndGgpIHtcbiAgICAgIHZhbGlkID0gY29udHJvbC52YWx1ZS5sZW5ndGggPj0gdmFsaWRhdGlvbi5taW5MZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZCA/IG51bGwgOiB7IFt0aGlzLmM4eURlZmF1bHRWYWxpZGF0aW9uXTogdHJ1ZSB9O1xuICB9XG59XG4iXX0=