diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-collection-configuration/input-collection-configuration.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-collection-configuration/input-collection-configuration.element.ts index 60eb946b53..5c6856d020 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-collection-configuration/input-collection-configuration.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-collection-configuration/input-collection-configuration.element.ts @@ -1,15 +1,12 @@ import { html, customElement, property, css, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UmbRepositoryItemsManager } from '@umbraco-cms/backoffice/repository'; import { UMB_DATATYPE_WORKSPACE_MODAL, UMB_DATA_TYPE_ENTITY_TYPE, - UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL, } from '@umbraco-cms/backoffice/data-type'; import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; -import type { UmbDataTypeItemModel } from '@umbraco-cms/backoffice/data-type'; import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation'; @customElement('umb-input-collection-configuration') @@ -18,38 +15,24 @@ export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin( return undefined; } - #itemManager = new UmbRepositoryItemsManager( - this, - UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS, - (x) => x.unique, - ); - - #createDataTypeModal: UmbModalRouteRegistrationController; + #dataTypeModal: UmbModalRouteRegistrationController; #propertyEditorUiAlias = 'Umb.PropertyEditorUi.CollectionView'; @state() private _dataTypePickerModalPath?: string; - @state() - private _item?: UmbDataTypeItemModel; - @property({ attribute: 'default-value' }) defaultValue?: string; #setValue(value: string) { this.value = value; - this.#itemManager.setUniques(value ? [value] : []); this.dispatchEvent(new UmbChangeEvent()); } constructor() { super(); - this.observe(this.#itemManager.items, (items) => { - this._item = items[0]; - }); - new UmbModalRouteRegistrationController(this, UMB_DATA_TYPE_PICKER_FLOW_DATA_TYPE_PICKER_MODAL) .addAdditionalPath(':uiAlias') .onSetup((routingInfo) => { @@ -71,7 +54,7 @@ export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin( this._dataTypePickerModalPath = routeBuilder({ uiAlias: this.#propertyEditorUiAlias }); }); - this.#createDataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL) + this.#dataTypeModal = new UmbModalRouteRegistrationController(this, UMB_DATATYPE_WORKSPACE_MODAL) .addAdditionalPath(':uiAlias') .onSetup((params) => { return { data: { entityType: UMB_DATA_TYPE_ENTITY_TYPE, preset: { editorUiAlias: params.uiAlias } } }; @@ -81,51 +64,49 @@ export class UmbInputCollectionConfigurationElement extends UmbFormControlMixin( }); } - connectedCallback() { - super.connectedCallback(); - - if (this.value) { - this.#itemManager.setUniques([this.value as string]); - } - } - #clearDataType() { this.#setValue(''); } #createDataType() { - this.#createDataTypeModal.open( + this.#dataTypeModal.open( { uiAlias: this.#propertyEditorUiAlias }, `create/parent/${UMB_DATA_TYPE_ENTITY_TYPE}/null`, ); } + #editDataType() { + this.#dataTypeModal?.open({}, `edit/${this.value}`); + } + render() { return !this.value ? this.#renderCreate() : this.#renderConfigured(); } #renderCreate() { if (!this._dataTypePickerModalPath) return nothing; - return html``; + return html` + + `; } #renderConfigured() { - if (!this._item || !this._dataTypePickerModalPath) return nothing; + if (!this.value || !this._dataTypePickerModalPath) return nothing; return html` - + - + `; }