/** @file * @author Edouard DUPIN * @copyright 2018, Edouard DUPIN, all right reserved * @license PROPRIETARY (see license file) */ import { Component, EventEmitter, Input, Output } from '@angular/core'; @Component({ selector: 'app-password-entry', templateUrl: 'password-entry.html', styleUrls: ['password-entry.less'], }) export class PasswordEntryComponent { /// Value of the password @Input() value: string = ''; /// Placeholder of the Value @Input() placeholder: string = 'Write password.'; /// The element has an error @Input() hasError: boolean = false; /// event when change the value of the password @Output() changeValue: EventEmitter = new EventEmitter(); /// Local value of the password viwibility public passwordVisibility: boolean = false; /** * Ov visibility request change (toggle the visibility) */ onVisibility(): void { this.passwordVisibility = !this.passwordVisibility; } /** * When input value change, need update the display and change the internal value. * @param newValue New value set on the password */ onChangeValue(newValue: string): void { this.value = newValue; this.changeValue.emit(this.value); } }