Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

Commit bb0fb2c

Browse files
committed
package builder corrections
1 parent d4dd664 commit bb0fb2c

File tree

5 files changed

+38
-18
lines changed

5 files changed

+38
-18
lines changed

src/packages/packages/package-builder/workspace/workspace-package-builder.element.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,10 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement {
198198
return html`
199199
<umb-property-layout label="Content" description="Select the starting root content">
200200
<div slot="editor">
201-
<umb-input-document max="1" .value=${this._package.contentNodeId ?? ''} @change=${this.#onContentChange}>
201+
<umb-input-document
202+
max="1"
203+
.value=${this._package.contentNodeId ?? undefined}
204+
@change=${this.#onContentChange}>
202205
</umb-input-document>
203206
<uui-checkbox
204207
label="Include child nodes"

src/packages/property-editors/content-picker/components/input-content/input-content.element.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
import type { UmbContentPickerSource } from '../../types.js';
22
import { css, html, customElement, property } from '@umbraco-cms/backoffice/external/lit';
3-
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
43
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
54
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
65
import type { UmbInputDocumentElement } from '@umbraco-cms/backoffice/document';
76
import type { UmbInputMediaElement } from '@umbraco-cms/backoffice/media';
87
import type { UmbInputMemberElement } from '@umbraco-cms/backoffice/member';
98
import type { UmbReferenceByUniqueAndType } from '@umbraco-cms/backoffice/models';
109
import type { UmbTreeStartNode } from '@umbraco-cms/backoffice/tree';
10+
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
11+
import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';
1112

1213
const elementName = 'umb-input-content';
1314
@customElement(elementName)
14-
export class UmbInputContentElement extends UUIFormControlMixin(UmbLitElement, '') {
15+
export class UmbInputContentElement extends UmbFormControlMixin<string | undefined, typeof UmbLitElement>(
16+
UmbLitElement,
17+
) {
1518
protected getFormElement() {
1619
return undefined;
1720
}
1821

1922
private _type: UmbContentPickerSource['type'] = 'content';
20-
@property()
23+
@property({ type: Object, attribute: false })
2124
public set type(newType: UmbContentPickerSource['type']) {
2225
const oldType = this._type;
2326
if (newType?.toLowerCase() !== this._type) {
@@ -52,15 +55,23 @@ export class UmbInputContentElement extends UUIFormControlMixin(UmbLitElement, '
5255

5356
#entityTypeLookup = { content: 'document', media: 'media', member: 'member' };
5457

58+
// TODO: to be consistent with other pickers, this should be named `selection` [NL]
5559
@property({ type: Array })
5660
public set items(items: Array<UmbReferenceByUniqueAndType>) {
5761
this.#selection = items?.map((item) => item.unique) ?? [];
58-
this.value = items?.map((item) => item.unique).join(',');
5962
}
6063
public get items(): Array<UmbReferenceByUniqueAndType> {
6164
return this.#selection.map((id) => ({ type: this.#entityTypeLookup[this._type], unique: id }));
6265
}
6366

67+
@property({ type: String })
68+
public set value(selectionString: string | undefined) {
69+
this.#selection = splitStringToArray(selectionString);
70+
}
71+
public get value(): string | undefined {
72+
return this.#selection.length > 0 ? this.#selection.join(',') : undefined;
73+
}
74+
6475
#selection: Array<string> = [];
6576

6677
#onChange(event: CustomEvent) {

src/packages/property-editors/content-picker/dynamic-root/input-content-picker-document-root/input-content-picker-document-root.element.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import type { UmbContentPickerDynamicRoot, UmbContentPickerDynamicRootQueryStep } from '../../types.js';
2-
import { UMB_CONTENT_PICKER_DOCUMENT_ROOT_ORIGIN_PICKER_MODAL, UMB_CONTENT_PICKER_DOCUMENT_ROOT_QUERY_STEP_PICKER_MODAL } from '../modals/index.js';
2+
import {
3+
UMB_CONTENT_PICKER_DOCUMENT_ROOT_ORIGIN_PICKER_MODAL,
4+
UMB_CONTENT_PICKER_DOCUMENT_ROOT_QUERY_STEP_PICKER_MODAL,
5+
} from '../modals/index.js';
36
import { html, css, customElement, property, ifDefined, state, repeat } from '@umbraco-cms/backoffice/external/lit';
4-
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
57
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
68
import { UmbId } from '@umbraco-cms/backoffice/id';
79
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@@ -13,10 +15,14 @@ import type {
1315
ManifestDynamicRootQueryStep,
1416
} from '@umbraco-cms/backoffice/extension-registry';
1517
import type { UmbModalContext } from '@umbraco-cms/backoffice/modal';
18+
import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';
1619

1720
const elementName = 'umb-input-content-picker-document-root';
1821
@customElement(elementName)
19-
export class UmbInputContentPickerDocumentRootElement extends UUIFormControlMixin(UmbLitElement, '') {
22+
export class UmbInputContentPickerDocumentRootElement extends UmbFormControlMixin<
23+
string | undefined,
24+
typeof UmbLitElement
25+
>(UmbLitElement) {
2026
protected getFormElement() {
2127
return undefined;
2228
}

src/packages/static-file/components/input-static-file/input-static-file.context.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
77

88
export class UmbStaticFilePickerContext extends UmbPickerInputContext<
99
UmbStaticFileItemModel,
10-
any,
10+
UmbStaticFileItemModel,
1111
UmbStaticFilePickerModalData,
1212
UmbStaticFilePickerModalValue
1313
> {

src/packages/static-file/components/input-static-file/input-static-file.element.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ import { UmbStaticFilePickerContext } from './input-static-file.context.js';
33
import { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
44
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
55
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
6-
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
76
import { UmbServerFilePathUniqueSerializer } from '@umbraco-cms/backoffice/server-file-system';
7+
import { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';
88

99
@customElement('umb-input-static-file')
10-
export class UmbInputStaticFileElement extends UUIFormControlMixin(UmbLitElement, '') {
10+
export class UmbInputStaticFileElement extends UmbFormControlMixin<string | undefined, typeof UmbLitElement>(
11+
UmbLitElement,
12+
) {
1113
#serializer = new UmbServerFilePathUniqueSerializer();
1214

1315
/**
@@ -63,14 +65,12 @@ export class UmbInputStaticFileElement extends UUIFormControlMixin(UmbLitElement
6365
return this.#pickerContext.getSelection();
6466
}
6567

66-
@property()
67-
// get value is handled by super class.
68-
public set value(pathsString: string) {
69-
// Its with full purpose we don't call super.value, as thats being handled by the observation of the context selection.
70-
this.selection = splitStringToArray(pathsString);
68+
@property({ type: String })
69+
public set value(selectionString: string | undefined) {
70+
this.selection = splitStringToArray(selectionString);
7171
}
72-
public get value(): string {
73-
return this.selection.join(',');
72+
public get value(): string | undefined {
73+
return this.selection.length > 0 ? this.selection.join(',') : undefined;
7474
}
7575

7676
@property()

0 commit comments

Comments
 (0)