diff --git a/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.spec.ts index 56b0aadddd..3f177e771a 100644 --- a/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.spec.ts @@ -25,6 +25,7 @@ import { TaskFormCloudComponent } from './task-form-cloud.component'; import { TaskDetailsCloudModel } from '../../start-task/models/task-details-cloud.model'; import { TaskCloudService } from '../../services/task-cloud.service'; import { TranslateModule } from '@ngx-translate/core'; +import { ESCAPE } from '@angular/cdk/keycodes'; const taskDetails: TaskDetailsCloudModel = { appName: 'simple-app', @@ -456,4 +457,12 @@ describe('TaskFormCloudComponent', () => { expect(noFormTemplateTitle).toBeNull(); }); + + // For widgets like File Viewer bubbling the keydown events of the form needs to be cancelled + it('should cancel bubbling a keydown event ()', () => { + const escapeKeyboardEvent = new KeyboardEvent('keydown', { 'keyCode': ESCAPE } as any); + fixture.debugElement.triggerEventHandler('keydown', escapeKeyboardEvent); + + expect(escapeKeyboardEvent.cancelBubble).toBe(true); + }); }); diff --git a/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.ts index afd30c38bf..e79ea82b1f 100644 --- a/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-form/components/task-form-cloud.component.ts @@ -17,7 +17,7 @@ import { Component, EventEmitter, Input, OnChanges, - Output, SimpleChanges, OnInit + Output, SimpleChanges, OnInit, HostListener } from '@angular/core'; import { TaskDetailsCloudModel } from '../../start-task/models/task-details-cloud.model'; import { TaskCloudService } from '../../services/task-cloud.service'; @@ -111,6 +111,11 @@ export class TaskFormCloudComponent implements OnInit, OnChanges { this.formRenderingService.setComponentTypeResolver('date', () => DateCloudWidgetComponent, true); } + @HostListener('keydown', ['$event']) + onKeyDown(event: KeyboardEvent) { + event.cancelBubble = true; + } + ngOnInit() { if (this.appName === '' && this.taskId) { this.loadTask();