40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
/** @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<string> = 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);
|
|
}
|
|
}
|