@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
34 lines • 4.76 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { NG_VALIDATORS } from '@angular/forms';
import { StrengthValidatorService } from './strength-validator-service';
import * as i0 from "@angular/core";
import * as i1 from "./strength-validator-service";
export class PasswordStrengthValidatorDirective {
set passwordStrengthEnforced(value) {
this.forced = value;
}
constructor(passwordService) {
this.passwordService = passwordService;
}
validate(control) {
const strengthFulfilled = this.passwordService.isStrong(control.value || '');
const enforcementForcedAndNotFulfilled = this.forced && !strengthFulfilled;
return enforcementForcedAndNotFulfilled ? { passwordStrength: true } : null;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordStrengthValidatorDirective, deps: [{ token: i1.StrengthValidatorService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: PasswordStrengthValidatorDirective, selector: "[passwordStrengthEnforced]", inputs: { passwordStrengthEnforced: "passwordStrengthEnforced" }, providers: [
{ provide: NG_VALIDATORS, useExisting: PasswordStrengthValidatorDirective, multi: true }
], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordStrengthValidatorDirective, decorators: [{
type: Directive,
args: [{
selector: '[passwordStrengthEnforced]',
providers: [
{ provide: NG_VALIDATORS, useExisting: PasswordStrengthValidatorDirective, multi: true }
]
}]
}], ctorParameters: () => [{ type: i1.StrengthValidatorService }], propDecorators: { passwordStrengthEnforced: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGgtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvbG9naW4vcGFzc3dvcmQtc3RyZW5ndGgtdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGFBQWEsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBUXhFLE1BQU0sT0FBTyxrQ0FBa0M7SUFHN0MsSUFBYSx3QkFBd0IsQ0FBQyxLQUFLO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFtQixlQUF5QztRQUF6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7SUFBRyxDQUFDO0lBRWhFLFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDM0UsT0FBTyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlFLENBQUM7K0dBYlUsa0NBQWtDO21HQUFsQyxrQ0FBa0MsdUhBSmxDO1lBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxrQ0FBa0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQ3pGOzs0RkFFVSxrQ0FBa0M7a0JBTjlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLG9DQUFvQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ3pGO2lCQUNGOzZGQUljLHdCQUF3QjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RyZW5ndGhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zdHJlbmd0aC12YWxpZGF0b3Itc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1twYXNzd29yZFN0cmVuZ3RoRW5mb3JjZWRdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogUGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRvckRpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICBwcml2YXRlIGZvcmNlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgcGFzc3dvcmRTdHJlbmd0aEVuZm9yY2VkKHZhbHVlKSB7XG4gICAgdGhpcy5mb3JjZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXNzd29yZFNlcnZpY2U6IFN0cmVuZ3RoVmFsaWRhdG9yU2VydmljZSkge31cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3Qgc3RyZW5ndGhGdWxmaWxsZWQgPSB0aGlzLnBhc3N3b3JkU2VydmljZS5pc1N0cm9uZyhjb250cm9sLnZhbHVlIHx8ICcnKTtcbiAgICBjb25zdCBlbmZvcmNlbWVudEZvcmNlZEFuZE5vdEZ1bGZpbGxlZCA9IHRoaXMuZm9yY2VkICYmICFzdHJlbmd0aEZ1bGZpbGxlZDtcbiAgICByZXR1cm4gZW5mb3JjZW1lbnRGb3JjZWRBbmROb3RGdWxmaWxsZWQgPyB7IHBhc3N3b3JkU3RyZW5ndGg6IHRydWUgfSA6IG51bGw7XG4gIH1cbn1cbiJdfQ==