From 5414421894acdf0c39ff38f6d8d2f7472c007d3f Mon Sep 17 00:00:00 2001 From: Kim Shepherd Date: Sat, 30 Aug 2025 17:06:41 +0200 Subject: [PATCH 1/2] Inspect event key characters, not keyCodes on tag keyUp (cherry picked from commit f313b4a8fd335d84e067025a13aa11da8388a89a) --- .../models/tag/dynamic-tag.component.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts index d8f12197d2..431ca32c37 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.ts @@ -220,13 +220,15 @@ export class DsDynamicTagComponent extends DsDynamicVocabularyComponent implemen } /** - * Add a new tag with typed text when typing 'Enter' or ',' or ';' + * Add a new tag with typed text when typing 'Enter' or ',' + * Tests the key rather than keyCode as keyCodes can vary + * based on keyboard layout (and do not consider Shift mod) * @param event the keyUp event */ onKeyUp(event) { - if (event.keyCode === 13 || event.keyCode === 188) { + if (event.key === 'Enter' || event.key === ',') { event.preventDefault(); - // Key: 'Enter' or ',' or ';' + // Key: 'Enter' or ',' this.addTagsToChips(); event.stopPropagation(); } From fb66397dd7224ffd0d5ed3d3dc32c6e41f695638 Mon Sep 17 00:00:00 2001 From: Kim Shepherd Date: Sat, 30 Aug 2025 17:27:20 +0200 Subject: [PATCH 2/2] Create dynamic tag test events with key chars, not keyCodes (cherry picked from commit 98fc76d867d480fc53dcd5f1de7c80af400a8cdc) --- .../models/tag/dynamic-tag.component.spec.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.spec.ts index 78e50de898..68a5d5bc84 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/models/tag/dynamic-tag.component.spec.ts @@ -45,10 +45,10 @@ import { FormFieldMetadataValueObject } from '../../../models/form-field-metadat import { DsDynamicTagComponent } from './dynamic-tag.component'; import { DynamicTagModel } from './dynamic-tag.model'; -function createKeyUpEvent(key: number) { +function createKeyUpEvent(key: string) { /* eslint-disable no-empty,@typescript-eslint/no-empty-function */ const event = { - keyCode: key, preventDefault: () => { + key: key, preventDefault: () => { }, stopPropagation: () => { }, }; @@ -278,8 +278,8 @@ describe('DsDynamicTagComponent test suite', () => { expect(tagComp.chips.getChipsItems()).toEqual(chips.getChipsItems()); }); - it('should add an item on ENTER or key press is \',\' or \';\'', fakeAsync(() => { - let event = createKeyUpEvent(13); + it('should add an item on ENTER or key press is \',\'', fakeAsync(() => { + let event = createKeyUpEvent('Enter'); tagComp.currentValue = 'test value'; tagFixture.detectChanges(); @@ -290,7 +290,7 @@ describe('DsDynamicTagComponent test suite', () => { expect(tagComp.model.value).toEqual(['test value']); expect(tagComp.currentValue).toBeNull(); - event = createKeyUpEvent(188); + event = createKeyUpEvent(','); tagComp.currentValue = 'test value'; tagFixture.detectChanges();