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();
}
}
|