Skip to content

Commit f607a22

Browse files
committed
MNTP: Implemented component to inherit from UmbFormControlMixin
Sets the form control to be the nested picker `input-content`.
1 parent c573681 commit f607a22

File tree

1 file changed

+30
-14
lines changed

1 file changed

+30
-14
lines changed

src/packages/property-editors/content-picker/property-editor-ui-content-picker.element.ts

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import type { UmbInputContentElement } from './components/input-content/index.js
33
import type { UmbContentPickerSource, UmbContentPickerSourceType } from './types.js';
44
import { html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
55
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
6+
import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';
67
import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor';
78
import { UMB_DOCUMENT_ENTITY_TYPE } from '@umbraco-cms/backoffice/document';
89
import { UMB_ENTITY_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace';
@@ -15,15 +16,26 @@ import type { UmbTreeStartNode } from '@umbraco-cms/backoffice/tree';
1516
// import of local component
1617
import './components/input-content/index.js';
1718

19+
type UmbContentPickerValueType = UmbInputContentElement['selection'];
20+
1821
const elementName = 'umb-property-editor-ui-content-picker';
1922

2023
/**
2124
* @element umb-property-editor-ui-content-picker
2225
*/
2326
@customElement(elementName)
24-
export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement implements UmbPropertyEditorUiElement {
27+
export class UmbPropertyEditorUIContentPickerElement
28+
extends UmbFormControlMixin<UmbContentPickerValueType | undefined, typeof UmbLitElement>(UmbLitElement, undefined)
29+
implements UmbPropertyEditorUiElement
30+
{
2531
@property({ type: Array })
26-
value: UmbInputContentElement['items'] = [];
32+
public override set value(value: UmbContentPickerValueType | undefined) {
33+
this.#value = value;
34+
}
35+
public override get value(): UmbContentPickerValueType | undefined {
36+
return this.#value;
37+
}
38+
#value?: UmbContentPickerValueType = [];
2739

2840
@state()
2941
_type: UmbContentPickerSource['type'] = 'content';
@@ -73,8 +85,8 @@ export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement imple
7385
this._showOpenButton = config.getValueByAlias('showOpenButton');
7486
}
7587

76-
override connectedCallback() {
77-
super.connectedCallback();
88+
override firstUpdated() {
89+
this.addFormControlElement(this.shadowRoot!.querySelector('umb-input-content')!);
7890
this.#setPickerRootUnique();
7991
}
8092

@@ -98,7 +110,7 @@ export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement imple
98110
}
99111

100112
#onChange(event: CustomEvent & { target: UmbInputContentElement }) {
101-
this.value = event.target.items;
113+
this.value = event.target.selection;
102114
this.dispatchEvent(new UmbPropertyValueChangeEvent());
103115
}
104116

@@ -108,15 +120,19 @@ export class UmbPropertyEditorUIContentPickerElement extends UmbLitElement imple
108120
? { unique: this._rootUnique, entityType: this._rootEntityType }
109121
: undefined;
110122

111-
return html`<umb-input-content
112-
.items=${this.value}
113-
.type=${this._type}
114-
.min=${this._min}
115-
.max=${this._max}
116-
.startNode=${startNode}
117-
.allowedContentTypeIds=${this._allowedContentTypeUniques ?? ''}
118-
?showOpenButton=${this._showOpenButton}
119-
@change=${this.#onChange}></umb-input-content>`;
123+
return html`
124+
<umb-input-content
125+
.selection=${this.value ?? []}
126+
.type=${this._type}
127+
.min=${this._min}
128+
.minMessage=${this._minMessage}
129+
.max=${this._max}
130+
.maxMessage=${this._maxMessage}
131+
.startNode=${startNode}
132+
.allowedContentTypeIds=${this._allowedContentTypeUniques ?? ''}
133+
?showOpenButton=${this._showOpenButton}
134+
@change=${this.#onChange}></umb-input-content>
135+
`;
120136
}
121137
}
122138

0 commit comments

Comments
 (0)