UNPKG

@yoyoboot/l-52abp-ng

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.

62 lines 6.27 kB
import { Directive, forwardRef, Input } from '@angular/core'; import { NG_VALIDATORS } from '@angular/forms'; import * as i0 from "@angular/core"; export class ExpressionValidator { validate(control) { let validationResult = null; if (!this.expression) { return validationResult; } if (!control.value || control.value.length < 0) { return validationResult; } const currentValue = control.value; let error = false; let regexp; if (Array.isArray(this.expression)) { for (const item of this.expression) { regexp = new RegExp(item); if (!regexp.test(currentValue)) { error = true; break; } } } else { regexp = new RegExp(this.expression); error = !regexp.test(currentValue); } if (error) { validationResult = {}; validationResult.expression = true; } else { validationResult = null; } return validationResult; } } ExpressionValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExpressionValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); ExpressionValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: ExpressionValidator, selector: "[expression]", inputs: { expression: "expression" }, providers: [ { provide: NG_VALIDATORS, useExisting: forwardRef(() => ExpressionValidator), multi: true, }, ], ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ExpressionValidator, decorators: [{ type: Directive, args: [{ selector: '[expression]', providers: [ { provide: NG_VALIDATORS, useExisting: forwardRef(() => ExpressionValidator), multi: true, }, ], }] }], propDecorators: { expression: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi12YWxpZGF0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbC01MmFicC1uZy9zcmMvZGlyZWN0aXZlcy92YWxpZGF0aW9uL2V4cHJlc3Npb24tdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFZM0UsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixRQUFRLENBQUMsT0FBd0I7UUFDL0IsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QyxPQUFPLGdCQUFnQixDQUFDO1NBQ3pCO1FBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUduQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxNQUFjLENBQUM7UUFDbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7b0JBQzlCLEtBQUssR0FBRyxJQUFJLENBQUM7b0JBQ2IsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztRQUdELElBQUksS0FBSyxFQUFFO1lBQ1QsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDcEM7YUFBTTtZQUNMLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUN6QjtRQUVELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQzs7aUhBM0NVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDZFQVJuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7NEZBRVUsbUJBQW1CO2tCQVYvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFJVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yLCBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tleHByZXNzaW9uXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFeHByZXNzaW9uVmFsaWRhdG9yKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV4cHJlc3Npb25WYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuXG4gIC8qKiDmnaHku7booajovr7lvI8gKi9cbiAgQElucHV0KCkgZXhwcmVzc2lvbjogc3RyaW5nW10gfCBzdHJpbmc7XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgbGV0IHZhbGlkYXRpb25SZXN1bHQgPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLmV4cHJlc3Npb24pIHtcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIH1cblxuICAgIGlmICghY29udHJvbC52YWx1ZSB8fCBjb250cm9sLnZhbHVlLmxlbmd0aCA8IDApIHtcbiAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cblxuICAgIGxldCBlcnJvciA9IGZhbHNlO1xuICAgIGxldCByZWdleHA6IFJlZ0V4cDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmV4cHJlc3Npb24pKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5leHByZXNzaW9uKSB7XG4gICAgICAgIHJlZ2V4cCA9IG5ldyBSZWdFeHAoaXRlbSk7XG4gICAgICAgIGlmICghcmVnZXhwLnRlc3QoY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWdleHAgPSBuZXcgUmVnRXhwKHRoaXMuZXhwcmVzc2lvbik7XG4gICAgICBlcnJvciA9ICFyZWdleHAudGVzdChjdXJyZW50VmFsdWUpO1xuICAgIH1cblxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0ge307XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0LmV4cHJlc3Npb24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdDtcbiAgfVxufVxuIl19