From 8cff591c16a76f71acf65a8c33a7d6734d84ee4a Mon Sep 17 00:00:00 2001 From: Valentin Date: Mon, 1 Nov 2021 12:10:45 +0200 Subject: [PATCH] added base dialog class --- src/lib/dialog/base-dialog.component.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/lib/dialog/base-dialog.component.ts diff --git a/src/lib/dialog/base-dialog.component.ts b/src/lib/dialog/base-dialog.component.ts new file mode 100644 index 0000000..c1429b3 --- /dev/null +++ b/src/lib/dialog/base-dialog.component.ts @@ -0,0 +1,19 @@ +import { Directive, HostListener } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { IqserEventTarget } from '@iqser/common-ui'; + +@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(); + } + } +}