UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

62 lines 6.79 kB
import { Injectable } from '@angular/core'; import { PasswordStrength } from '@c8y/client'; import { filter } from 'lodash-es'; import { gettext } from '../i18n/gettext'; import * as i0 from "@angular/core"; export class PasswordStrengthCheckerService { constructor() { this.GREEN = { colorName: 'green', color: 'rgb(0, 128, 0)', description: gettext('strong'), passwordStrength: PasswordStrength.GREEN }; this.YELLOW = { colorName: 'yellow', color: 'rgb(255, 204, 51)', description: gettext('medium'), passwordStrength: PasswordStrength.YELLOW }; this.RED = { colorName: 'red', color: 'rgb(170, 0, 51)', description: gettext('weak'), passwordStrength: PasswordStrength.RED }; } hasLowerCase(password) { return password.search(/[a-z]/) !== -1; } hasUpperCase(password) { return password.search(/[A-Z]/) !== -1; } hasNumbers(password) { return password.search(/[0-9]/) !== -1; } hasSpecialChars(password) { return password.search(/[^0-9a-zA-Z]+/) !== -1; } getStrengthColor(password) { const passwordStrength = filter([ this.hasLowerCase(password), this.hasUpperCase(password), this.hasNumbers(password), this.hasSpecialChars(password) ]).length; if (passwordStrength > 3) { return this.GREEN; } else if (passwordStrength >= 3) { return this.YELLOW; } else { return this.RED; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordStrengthCheckerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordStrengthCheckerService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PasswordStrengthCheckerService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGgtY2hlY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9hdXRoZW50aWNhdGlvbi9wYXNzd29yZC1zdHJlbmd0aC1jaGVja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRzFDLE1BQU0sT0FBTyw4QkFBOEI7SUFEM0M7UUFFVSxVQUFLLEdBQTBCO1lBQ3JDLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDOUIsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztTQUN6QyxDQUFDO1FBQ00sV0FBTSxHQUEwQjtZQUN0QyxTQUFTLEVBQUUsUUFBUTtZQUNuQixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQzlCLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLE1BQU07U0FDMUMsQ0FBQztRQUNNLFFBQUcsR0FBMEI7WUFDbkMsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLGlCQUFpQjtZQUN4QixXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUM1QixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1NBQ3ZDLENBQUM7S0FrQ0g7SUFoQ0MsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCO1FBQzlCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7U0FDL0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUVWLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxJQUFJLGdCQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQzsrR0FuRFUsOEJBQThCO21IQUE5Qiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBRDFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXNzd29yZFN0cmVuZ3RoIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFBhc3N3b3JkU3RyZW5ndGhDb2xvciB9IGZyb20gJy4vcGFzc3dvcmQubW9kZWwnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFN0cmVuZ3RoQ2hlY2tlclNlcnZpY2Uge1xuICBwcml2YXRlIEdSRUVOOiBQYXNzd29yZFN0cmVuZ3RoQ29sb3IgPSB7XG4gICAgY29sb3JOYW1lOiAnZ3JlZW4nLFxuICAgIGNvbG9yOiAncmdiKDAsIDEyOCwgMCknLFxuICAgIGRlc2NyaXB0aW9uOiBnZXR0ZXh0KCdzdHJvbmcnKSxcbiAgICBwYXNzd29yZFN0cmVuZ3RoOiBQYXNzd29yZFN0cmVuZ3RoLkdSRUVOXG4gIH07XG4gIHByaXZhdGUgWUVMTE9XOiBQYXNzd29yZFN0cmVuZ3RoQ29sb3IgPSB7XG4gICAgY29sb3JOYW1lOiAneWVsbG93JyxcbiAgICBjb2xvcjogJ3JnYigyNTUsIDIwNCwgNTEpJyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnbWVkaXVtJyksXG4gICAgcGFzc3dvcmRTdHJlbmd0aDogUGFzc3dvcmRTdHJlbmd0aC5ZRUxMT1dcbiAgfTtcbiAgcHJpdmF0ZSBSRUQ6IFBhc3N3b3JkU3RyZW5ndGhDb2xvciA9IHtcbiAgICBjb2xvck5hbWU6ICdyZWQnLFxuICAgIGNvbG9yOiAncmdiKDE3MCwgMCwgNTEpJyxcbiAgICBkZXNjcmlwdGlvbjogZ2V0dGV4dCgnd2VhaycpLFxuICAgIHBhc3N3b3JkU3RyZW5ndGg6IFBhc3N3b3JkU3RyZW5ndGguUkVEXG4gIH07XG5cbiAgaGFzTG93ZXJDYXNlKHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGFzc3dvcmQuc2VhcmNoKC9bYS16XS8pICE9PSAtMTtcbiAgfVxuXG4gIGhhc1VwcGVyQ2FzZShwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhc3N3b3JkLnNlYXJjaCgvW0EtWl0vKSAhPT0gLTE7XG4gIH1cblxuICBoYXNOdW1iZXJzKHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGFzc3dvcmQuc2VhcmNoKC9bMC05XS8pICE9PSAtMTtcbiAgfVxuXG4gIGhhc1NwZWNpYWxDaGFycyhwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhc3N3b3JkLnNlYXJjaCgvW14wLTlhLXpBLVpdKy8pICE9PSAtMTtcbiAgfVxuXG4gIGdldFN0cmVuZ3RoQ29sb3IocGFzc3dvcmQ6IHN0cmluZyk6IFBhc3N3b3JkU3RyZW5ndGhDb2xvciB7XG4gICAgY29uc3QgcGFzc3dvcmRTdHJlbmd0aCA9IGZpbHRlcihbXG4gICAgICB0aGlzLmhhc0xvd2VyQ2FzZShwYXNzd29yZCksXG4gICAgICB0aGlzLmhhc1VwcGVyQ2FzZShwYXNzd29yZCksXG4gICAgICB0aGlzLmhhc051bWJlcnMocGFzc3dvcmQpLFxuICAgICAgdGhpcy5oYXNTcGVjaWFsQ2hhcnMocGFzc3dvcmQpXG4gICAgXSkubGVuZ3RoO1xuXG4gICAgaWYgKHBhc3N3b3JkU3RyZW5ndGggPiAzKSB7XG4gICAgICByZXR1cm4gdGhpcy5HUkVFTjtcbiAgICB9IGVsc2UgaWYgKHBhc3N3b3JkU3RyZW5ndGggPj0gMykge1xuICAgICAgcmV0dXJuIHRoaXMuWUVMTE9XO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5SRUQ7XG4gICAgfVxuICB9XG59XG4iXX0=