{
+ return this._items;
+ }
#onAdd() {
this.items = [...this._items, { value: '', label: '' }];
@@ -177,43 +176,43 @@ export class UmbMultipleColorPickerInputElement extends UUIFormControlMixin(UmbL
}
render() {
- return html`${this.#renderItems()}
- ${this.#renderAddButton()} `;
+ return html`${this.#renderItems()} ${this.#renderAddButton()}`;
}
#renderItems() {
return html`
- ${repeat(
- this._items,
- (item) => item.value,
- (item, index) => html`
- this.#onChange(event, index)}
- @delete="${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}"
- ?disabled=${this.disabled}
- ?readonly=${this.readonly}
- required
- required-message="Item ${index + 1} is missing a value">
-
- `,
- )}
+
+ ${repeat(
+ this._items,
+ (item) => item.value,
+ (item, index) => html`
+ this.#onChange(event, index)}
+ @delete=${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}>
+
+ `,
+ )}
+
`;
}
#renderAddButton() {
+ if (this.disabled || this.readonly) return nothing;
return html`
- ${this.disabled || this.readonly
- ? nothing
- : html``}
+
`;
}
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 3032099bec..ccd2947ffb 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
@@ -7,12 +7,13 @@ import {
query,
ifDefined,
state,
+ when,
} from '@umbraco-cms/backoffice/external/lit';
-import type { UUIColorPickerElement, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
-import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import { umbConfirmModal } from '@umbraco-cms/backoffice/modal';
import { UmbChangeEvent, UmbInputEvent, UmbDeleteEvent } from '@umbraco-cms/backoffice/event';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
+import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
+import type { UUIColorPickerElement, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
/**
* @element umb-multiple-color-picker-item-input
@@ -64,7 +65,7 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
protected _colorPicker!: UUIColorPickerElement;
@property({ type: Boolean })
- showLabels = true;
+ showLabels = false;
async #onDelete() {
await umbConfirmModal(this, {
@@ -142,39 +143,45 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
value=${this.value}
label=${this.localize.term('general_value')}
placeholder=${this.localize.term('general_value')}
- @input="${this.#onValueInput}"
- @change="${this.#onValueChange}"
- required="${this.required}"
- required-message="Value is missing">
+ required=${this.required}
+ required-message="Value is missing"
+ @input=${this.#onValueInput}
+ @change=${this.#onValueChange}>
- ${this.showLabels
- ? html` html`
+ `
- : nothing}
- ${this.readonly
- ? nothing
- : html`
+ `,
+ )}
+ ${when(
+ !this.readonly,
+ () => html`
+
+ @click=${this.#onDelete}>
- `}
+
+ `,
+ )}
`;
diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts
index ac9c9df30a..6e24366eaf 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/core/property-editor/uis/color-swatches-editor/property-editor-ui-color-swatches-editor.element.ts
@@ -1,16 +1,17 @@
import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
-import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
-import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models';
-import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
+import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor';
import type { UmbMultipleColorPickerInputElement } from '@umbraco-cms/backoffice/components';
+import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
+import type { UmbPropertyEditorUiElement } from '@umbraco-cms/backoffice/extension-registry';
+import type { UmbSwatchDetails } from '@umbraco-cms/backoffice/models';
/**
* @element umb-property-editor-ui-color-swatches-editor
*/
@customElement('umb-property-editor-ui-color-swatches-editor')
export class UmbPropertyEditorUIColorSwatchesEditorElement extends UmbLitElement implements UmbPropertyEditorUiElement {
- #defaultShowLabels = true;
+ #defaultShowLabels = false;
@property({ type: Array })
value: Array = [];
@@ -22,16 +23,18 @@ export class UmbPropertyEditorUIColorSwatchesEditorElement extends UmbLitElement
this._showLabels = config?.getValueByAlias('useLabel') ?? this.#defaultShowLabels;
}
- #onChange(event: CustomEvent) {
- this.value = (event.target as UmbMultipleColorPickerInputElement).items;
- this.dispatchEvent(new CustomEvent('property-value-change'));
+ #onChange(event: CustomEvent & { target: UmbMultipleColorPickerInputElement }) {
+ this.value = event.target.items;
+ this.dispatchEvent(new UmbPropertyValueChangeEvent());
}
render() {
- return html``;
+ return html`
+
+ `;
}
}