File size: 877 Bytes
ed79486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { CommonModule } from '@angular/common';

@Component({
 selector: 'app-eye-toggle',
 standalone: true,
 imports: [CommonModule],
 template: `
 <button
 type="button"
 class="eye-toggle"
 [class.variant-signin]="variant === 'signin'"
 [class.variant-signup]="variant === 'signup'"
 (click)="onToggle()"
 [attr.aria-label]="pressed ? 'Hide password' : 'Show password'"
 [attr.aria-pressed]="pressed"
 >
 <i [ngClass]="pressed ? 'fa-solid fa-eye' : 'fa-solid fa-eye-slash'" aria-hidden="true"></i>
 </button>
 `,
 styleUrls: ['./eye-toggle.component.css']
})
export class EyeToggleComponent {
 @Input() pressed = false;
 // new input variant: 'signin' | 'signup'
 @Input() variant: 'signin' | 'signup' = 'signin';
 @Output() toggle = new EventEmitter<void>();

 onToggle() {
 this.toggle.emit();
 }
}