common-ui/src/lib/dialog/base-dialog.component.ts
2021-11-09 23:05:09 +02:00

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