20 lines
594 B
TypeScript
20 lines
594 B
TypeScript
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();
|
|
}
|
|
}
|
|
}
|