/* eslint-disable @angular-eslint/directive-selector */ /* eslint-disable @angular-eslint/no-host-metadata-property */ import { Directive, WritableSignal, signal } from '@angular/core'; export type ButtonState = 'enabled' | 'disabled'; @Directive({ selector: 'button[btnDisabled]', standalone: true, host: { '(click)': 'toggleState()', }, }) export class BtnDisabledDirective { state: WritableSignal = signal('enabled'); toggleState() { this.state.set(this.state() === 'enabled' ? 'disabled' : 'enabled'); } }