diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts index 6e61ac2b6b..68b5ab60b3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document-picker-root/input-document-picker-root.element.ts @@ -1,17 +1,17 @@ import { UmbDocumentPickerContext } from '../input-document/input-document.context.js'; -import { css, html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; -import { FormControlMixin, UUIButtonElement } from '@umbraco-cms/backoffice/external/uui'; +import { html, customElement, property, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit'; +import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import type { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; @customElement('umb-input-document-picker-root') export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitElement) { public get nodeId(): string | null | undefined { - return this.#pickerContext.getSelection()[0]; + return this.#documentPickerContext.getSelection()[0]; } public set nodeId(id: string | null | undefined) { const selection = id ? [id] : []; - this.#pickerContext.setSelection(selection); + this.#documentPickerContext.setSelection(selection); } @property() @@ -22,30 +22,28 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl @state() private _items?: Array; - #pickerContext = new UmbDocumentPickerContext(this); + #documentPickerContext = new UmbDocumentPickerContext(this); + + // TODO: DynamicRoot - once feature implemented, wire up context and picker UI. [LK] + #dynamicRootPickerContext = { + openPicker: () => { + throw new Error('DynamicRoot picker has not been implemented yet.'); + }, + }; constructor() { super(); - this.#pickerContext.max = 1; + this.#documentPickerContext.max = 1; - this.observe(this.#pickerContext.selection, (selection) => (super.value = selection.join(','))); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); + this.observe(this.#documentPickerContext.selection, (selection) => (super.value = selection.join(','))); + this.observe(this.#documentPickerContext.selectedItems, (selectedItems) => (this._items = selectedItems)); } protected getFormElement() { return undefined; } - // TODO: Wire up the DynamicRoot picker feature. [LK] - private _openDynamicRootPicker(e: Event) { - console.log('openDynamicRootPicker', e); - const btn = e.target as UUIButtonElement; - btn.color = 'warning'; - btn.label = 'TODO!'; - btn.look = 'primary'; - } - render() { return html` ${this._items @@ -68,11 +66,11 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl return html` this.#pickerContext.openPicker()} + @click=${() => this.#documentPickerContext.openPicker()} label=${this.localize.term('contentPicker_defineRootNode')}> this.#dynamicRootPickerContext.openPicker()} label=${this.localize.term('contentPicker_defineDynamicRoot')}> `; } @@ -83,11 +81,11 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl - this.#pickerContext.openPicker()} label="Edit document ${item.name}" + this.#documentPickerContext.openPicker()} label="Edit document ${item.name}" >Edit this.#pickerContext.requestRemoveItem(item.id!)} + @click=${() => this.#documentPickerContext.requestRemoveItem(item.id!)} label="Remove document ${item.name}" >Remove @@ -95,8 +93,6 @@ export class UmbInputDocumentPickerRootElement extends FormControlMixin(UmbLitEl `; } - - static styles = [css``]; } export default UmbInputDocumentPickerRootElement;