UNPKG

@yoyoboot/l-52abp-ng

Version:

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

72 lines 9.12 kB
import { Directive, forwardRef, Input } from '@angular/core'; import { NG_VALIDATORS } from '@angular/forms'; import * as i0 from "@angular/core"; export class PasswordComplexityValidator { validate(control) { const givenPassword = control.value; let validationResult = null; const requireDigit = this.requireDigit; if (requireDigit && givenPassword && !/[0-9]/.test(givenPassword)) { validationResult = validationResult || {}; validationResult.requireDigit = true; } const requireUppercase = this.requireUppercase; if (requireUppercase && givenPassword && !/[A-Z]/.test(givenPassword)) { validationResult = validationResult || {}; validationResult.requireUppercase = true; } const requireLowercase = this.requireLowercase; if (requireLowercase && givenPassword && !/[a-z]/.test(givenPassword)) { validationResult = validationResult || {}; validationResult.requireLowercase = true; } const requiredLength = this.requiredLength; if (requiredLength && givenPassword && givenPassword.length < requiredLength) { validationResult = validationResult || {}; validationResult.requiredLength = true; } // use upperCaseLetters const requireNonAlphanumeric = this.requireNonAlphanumeric; if (requireNonAlphanumeric && givenPassword && /^[0-9a-zA-Z]+$/.test(givenPassword)) { validationResult = validationResult || {}; validationResult.requireNonAlphanumeric = true; } return validationResult; } } PasswordComplexityValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PasswordComplexityValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); PasswordComplexityValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: PasswordComplexityValidator, selector: "[requireDigit],[requireLowercase],[requireNonAlphanumeric],[requireUppercase],[requiredLength]", inputs: { requireDigit: "requireDigit", requireUppercase: "requireUppercase", requireLowercase: "requireLowercase", requireNonAlphanumeric: "requireNonAlphanumeric", requiredLength: "requiredLength" }, providers: [ { provide: NG_VALIDATORS, useExisting: forwardRef(() => PasswordComplexityValidator), multi: true, }, ], ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PasswordComplexityValidator, decorators: [{ type: Directive, args: [{ selector: '[requireDigit],[requireLowercase],[requireNonAlphanumeric],[requireUppercase],[requiredLength]', providers: [ { provide: NG_VALIDATORS, useExisting: forwardRef(() => PasswordComplexityValidator), multi: true, }, ], }] }], propDecorators: { requireDigit: [{ type: Input }], requireUppercase: [{ type: Input }], requireLowercase: [{ type: Input }], requireNonAlphanumeric: [{ type: Input }], requiredLength: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtY29tcGxleGl0eS12YWxpZGF0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbC01MmFicC1uZy9zcmMvZGlyZWN0aXZlcy92YWxpZGF0aW9uL3Bhc3N3b3JkLWNvbXBsZXhpdHktdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFZM0UsTUFBTSxPQUFPLDJCQUEyQjtJQVl0QyxRQUFRLENBQUMsT0FBd0I7UUFDL0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNwQyxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUU1QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksWUFBWSxJQUFJLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakUsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDdEM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLGdCQUFnQixJQUFJLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckUsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUMxQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksZ0JBQWdCLElBQUksYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNyRSxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7WUFDMUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQzFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxJQUNFLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQ3JDO1lBQ0EsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDeEM7UUFFRCx1QkFBdUI7UUFDdkIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsSUFDRSxzQkFBc0I7WUFDdEIsYUFBYTtZQUNiLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDcEM7WUFDQSxnQkFBZ0IsR0FBRyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7WUFDMUMsZ0JBQWdCLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1NBQ2hEO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDOzt5SEF4RFUsMkJBQTJCOzZHQUEzQiwyQkFBMkIsbVVBUjNCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQzFELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRjs0RkFFVSwyQkFBMkI7a0JBVnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdHQUFnRztvQkFDMUcsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7OEJBR1UsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBBdHRyaWJ1dGUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JlcXVpcmVEaWdpdF0sW3JlcXVpcmVMb3dlcmNhc2VdLFtyZXF1aXJlTm9uQWxwaGFudW1lcmljXSxbcmVxdWlyZVVwcGVyY2FzZV0sW3JlcXVpcmVkTGVuZ3RoXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYXNzd29yZENvbXBsZXhpdHlWYWxpZGF0b3IpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRDb21wbGV4aXR5VmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcblxuICBASW5wdXQoKSByZXF1aXJlRGlnaXQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcmVxdWlyZVVwcGVyY2FzZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSByZXF1aXJlTG93ZXJjYXNlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJlcXVpcmVOb25BbHBoYW51bWVyaWM6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcmVxdWlyZWRMZW5ndGg6IG51bWJlcjtcblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBnaXZlblBhc3N3b3JkID0gY29udHJvbC52YWx1ZTtcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdCA9IG51bGw7XG5cbiAgICBjb25zdCByZXF1aXJlRGlnaXQgPSB0aGlzLnJlcXVpcmVEaWdpdDtcbiAgICBpZiAocmVxdWlyZURpZ2l0ICYmIGdpdmVuUGFzc3dvcmQgJiYgIS9bMC05XS8udGVzdChnaXZlblBhc3N3b3JkKSkge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRpb25SZXN1bHQgfHwge307XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0LnJlcXVpcmVEaWdpdCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWlyZVVwcGVyY2FzZSA9IHRoaXMucmVxdWlyZVVwcGVyY2FzZTtcbiAgICBpZiAocmVxdWlyZVVwcGVyY2FzZSAmJiBnaXZlblBhc3N3b3JkICYmICEvW0EtWl0vLnRlc3QoZ2l2ZW5QYXNzd29yZCkpIHtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0aW9uUmVzdWx0IHx8IHt9O1xuICAgICAgdmFsaWRhdGlvblJlc3VsdC5yZXF1aXJlVXBwZXJjYXNlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1aXJlTG93ZXJjYXNlID0gdGhpcy5yZXF1aXJlTG93ZXJjYXNlO1xuICAgIGlmIChyZXF1aXJlTG93ZXJjYXNlICYmIGdpdmVuUGFzc3dvcmQgJiYgIS9bYS16XS8udGVzdChnaXZlblBhc3N3b3JkKSkge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRpb25SZXN1bHQgfHwge307XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0LnJlcXVpcmVMb3dlcmNhc2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVpcmVkTGVuZ3RoID0gdGhpcy5yZXF1aXJlZExlbmd0aDtcbiAgICBpZiAoXG4gICAgICByZXF1aXJlZExlbmd0aCAmJlxuICAgICAgZ2l2ZW5QYXNzd29yZCAmJlxuICAgICAgZ2l2ZW5QYXNzd29yZC5sZW5ndGggPCByZXF1aXJlZExlbmd0aFxuICAgICkge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRpb25SZXN1bHQgfHwge307XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0LnJlcXVpcmVkTGVuZ3RoID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyB1c2UgdXBwZXJDYXNlTGV0dGVyc1xuICAgIGNvbnN0IHJlcXVpcmVOb25BbHBoYW51bWVyaWMgPSB0aGlzLnJlcXVpcmVOb25BbHBoYW51bWVyaWM7XG4gICAgaWYgKFxuICAgICAgcmVxdWlyZU5vbkFscGhhbnVtZXJpYyAmJlxuICAgICAgZ2l2ZW5QYXNzd29yZCAmJlxuICAgICAgL15bMC05YS16QS1aXSskLy50ZXN0KGdpdmVuUGFzc3dvcmQpXG4gICAgKSB7XG4gICAgICB2YWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGlvblJlc3VsdCB8fCB7fTtcbiAgICAgIHZhbGlkYXRpb25SZXN1bHQucmVxdWlyZU5vbkFscGhhbnVtZXJpYyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQ7XG4gIH1cbn1cbiJdfQ==