import { Directive, HostListener } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { IqserEventTarget } from '../utils/types/events.type'; @Directive() export abstract class BaseDialogComponent { abstract form: FormGroup; abstract get changed(): boolean; abstract save(): void; @HostListener('window:keydown.Enter', ['$event']) onEnter(event: KeyboardEvent): void { const node = (event.target as IqserEventTarget).localName; if (this.form.valid && this.changed && node !== 'textarea') { this.save(); } } }