From fa28ed3d8edd6be2deac701311173d2769f15619 Mon Sep 17 00:00:00 2001
From: Lone Iversen <108085781+loivsen@users.noreply.github.com>
Date: Tue, 17 Sep 2024 13:18:58 +0200
Subject: [PATCH] MultipleColorPicker: Tab behaviour and new line on enter
---
.../multiple-color-picker-input.element.ts | 3 ++-
...ultiple-color-picker-item-input.element.ts | 21 +++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts
index 11b9325f8b..a76e4e56c5 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts
@@ -175,7 +175,7 @@ export class UmbMultipleColorPickerInputElement extends UUIFormControlMixin(UmbL
${repeat(
this._items,
- (item) => item.value,
+ (item, index) => index,
(item, index) => html`
this.#onChange(event, index)}
@delete=${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}>
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts
index 2513799e64..6652dce46e 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts
@@ -84,12 +84,25 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
this.dispatchEvent(new UmbInputEvent());
}
+ #onLabelKeydown(event: KeyboardEvent) {
+ event.stopPropagation();
+ const target = event.currentTarget as UUIInputElement;
+ if (event.key === 'Enter' && target.value) {
+ this.dispatchEvent(new CustomEvent('enter'));
+ }
+ }
+
#onLabelChange(event: UUIInputEvent) {
event.stopPropagation();
this.label = event.target.value as string;
this.dispatchEvent(new UmbChangeEvent());
}
+ #onValueKeydown(event: KeyboardEvent) {
+ event.stopPropagation();
+ if (event.key === 'Enter') this.#onColorClick();
+ }
+
#onValueChange(event: UUIInputEvent) {
event.stopPropagation();
this.value = event.target.value as string;
@@ -145,6 +158,7 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
placeholder=${this.localize.term('general_value')}
required=${this.required}
required-message="Value is missing"
+ @keydown=${this.#onValueKeydown}
@input=${this.#onValueInput}
@change=${this.#onValueChange}>