Merge branch 'main' into v14/feature/readonly-checkbox-list-property-editor

This commit is contained in:
Mads Rasmussen
2024-08-26 11:45:26 +02:00
committed by GitHub
59 changed files with 201 additions and 86 deletions

View File

@@ -4,8 +4,11 @@ import { UMB_SECTION_PICKER_MODAL } from '../../section-picker-modal/section-pic
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbSectionPickerContext extends UmbPickerInputContext<UmbSectionItemModel> {
export class UmbSectionPickerInputContext extends UmbPickerInputContext<UmbSectionItemModel> {
constructor(host: UmbControllerHost) {
super(host, UMB_SECTION_ITEM_REPOSITORY_ALIAS, UMB_SECTION_PICKER_MODAL);
}
}
/** @deprecated Use `UmbSectionPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbSectionPickerInputContext as UmbSectionPickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbSectionItemModel } from '../../repository/index.js';
import { UmbSectionPickerContext } from './input-section.context.js';
import { UmbSectionPickerInputContext } from './input-section.context.js';
import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
@@ -73,7 +73,7 @@ export class UmbInputSectionElement extends UmbFormControlMixin<string | undefin
@state()
private _items?: Array<UmbSectionItemModel>;
#pickerContext = new UmbSectionPickerContext(this);
#pickerContext = new UmbSectionPickerInputContext(this);
constructor() {
super();

View File

@@ -6,7 +6,7 @@ import type { UmbDataTypeTreeItemModel } from '../../tree/types.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
export class UmbDataTypePickerContext extends UmbPickerInputContext<
export class UmbDataTypePickerInputContext extends UmbPickerInputContext<
UmbDataTypeItemModel,
UmbDataTypeTreeItemModel,
UmbDataTypePickerModalData,
@@ -16,3 +16,6 @@ export class UmbDataTypePickerContext extends UmbPickerInputContext<
super(host, UMB_DATA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_DATA_TYPE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbDataTypePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbDataTypePickerInputContext as UmbDataTypePickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbDataTypeItemModel } from '../../repository/item/types.js';
import { UmbDataTypePickerContext } from './data-type-input.context.js';
import { UmbDataTypePickerInputContext } from './data-type-input.context.js';
import { css, html, customElement, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -92,7 +92,7 @@ export class UmbDataTypeInputElement extends UUIFormControlMixin(UmbLitElement,
@state()
private _items?: Array<UmbDataTypeItemModel>;
#pickerContext = new UmbDataTypePickerContext(this);
#pickerContext = new UmbDataTypePickerInputContext(this);
constructor() {
super();

View File

@@ -9,7 +9,7 @@ import type {
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
export class UmbDictionaryPickerContext extends UmbPickerInputContext<
export class UmbDictionaryPickerInputContext extends UmbPickerInputContext<
UmbDictionaryItemModel,
UmbDictionaryTreeItemModel,
UmbDictionaryPickerModalData,
@@ -19,3 +19,6 @@ export class UmbDictionaryPickerContext extends UmbPickerInputContext<
super(host, UMB_DICTIONARY_ITEM_REPOSITORY_ALIAS, UMB_DICTIONARY_PICKER_MODAL);
}
}
/** @deprecated Use `UmbDictionaryPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbDictionaryPickerInputContext as UmbDictionaryPickerContext };

View File

@@ -1,2 +1 @@
export { UmbDocumentTypePickerContext } from './input-document-type/input-document-type.context.js';
export { UmbInputDocumentTypeElement } from './input-document-type/input-document-type.element.js';
export * from './input-document-type/index.js';

View File

@@ -0,0 +1,2 @@
export * from './input-document-type.context.js';
export * from './input-document-type.element.js';

View File

@@ -6,7 +6,7 @@ import { UMB_DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS } from '../../repository/index.
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbDocumentTypePickerContext extends UmbPickerInputContext<
export class UmbDocumentTypePickerInputContext extends UmbPickerInputContext<
UmbDocumentTypeItemModel,
UmbDocumentTypeTreeItemModel,
UmbDocumentTypePickerModalData,
@@ -16,3 +16,6 @@ export class UmbDocumentTypePickerContext extends UmbPickerInputContext<
super(host, UMB_DOCUMENT_TYPE_ITEM_REPOSITORY_ALIAS, UMB_DOCUMENT_TYPE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbDocumentTypePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbDocumentTypePickerInputContext as UmbDocumentTypePickerContext };

View File

@@ -1,7 +1,7 @@
import type { UmbDocumentTypeItemModel } from '../../repository/index.js';
import { UMB_DOCUMENT_TYPE_WORKSPACE_MODAL } from '../../workspace/document-type-workspace.modal-token.js';
import type { UmbDocumentTypeTreeItemModel } from '../../tree/types.js';
import { UmbDocumentTypePickerContext } from './input-document-type.context.js';
import { UmbDocumentTypePickerInputContext } from './input-document-type.context.js';
import { css, html, customElement, property, state, repeat, nothing } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -117,7 +117,7 @@ export class UmbInputDocumentTypeElement extends UmbFormControlMixin<string | un
@state()
private _editPath = '';
#pickerContext = new UmbDocumentTypePickerContext(this);
#pickerContext = new UmbDocumentTypePickerInputContext(this);
constructor() {
super();

View File

@@ -1,2 +1 @@
export { UmbDocumentPickerContext } from './input-document/input-document.context.js';
export { UmbInputDocumentElement } from './input-document/input-document.element.js';
export * from './input-document/index.js';

View File

@@ -0,0 +1,2 @@
export * from './input-document.context.js';
export * from './input-document.element.js';

View File

@@ -6,7 +6,7 @@ import type { UmbDocumentTreeItemModel } from '../../tree/types.js';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbDocumentPickerContext extends UmbPickerInputContext<
export class UmbDocumentPickerInputContext extends UmbPickerInputContext<
UmbDocumentItemModel,
UmbDocumentTreeItemModel,
UmbDocumentPickerModalData,
@@ -16,3 +16,6 @@ export class UmbDocumentPickerContext extends UmbPickerInputContext<
super(host, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, UMB_DOCUMENT_PICKER_MODAL, (entry) => entry.unique);
}
}
/** @deprecated Use `UmbDocumentPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbDocumentPickerInputContext as UmbDocumentPickerContext };

View File

@@ -1,4 +1,4 @@
import { UmbDocumentPickerContext } from './input-document.context.js';
import { UmbDocumentPickerInputContext } from './input-document.context.js';
import {
classMap,
css,
@@ -139,7 +139,7 @@ export class UmbInputDocumentElement extends UmbFormControlMixin<string | undefi
@state()
private _items?: Array<UmbDocumentItemModel>;
#pickerContext = new UmbDocumentPickerContext(this);
#pickerContext = new UmbDocumentPickerInputContext(this);
constructor() {
super();

View File

@@ -1,3 +1,3 @@
import './input-language/input-language.element.js';
export { UmbInputLanguageElement } from './input-language/input-language.element.js';
export * from './input-language/index.js';

View File

@@ -0,0 +1,2 @@
export * from './input-language.context.js';
export * from './input-language.element.js';

View File

@@ -4,8 +4,11 @@ import { UMB_LANGUAGE_PICKER_MODAL } from '../../modals/language-picker/index.js
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
export class UmbLanguagePickerContext extends UmbPickerInputContext<UmbLanguageItemModel> {
export class UmbLanguagePickerInputContext extends UmbPickerInputContext<UmbLanguageItemModel> {
constructor(host: UmbControllerHost) {
super(host, UMB_LANGUAGE_ITEM_REPOSITORY_ALIAS, UMB_LANGUAGE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbLanguagePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbLanguagePickerInputContext as UmbLanguagePickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbLanguageItemModel } from '../../repository/index.js';
import { UmbLanguagePickerContext } from './input-language.context.js';
import { UmbLanguagePickerInputContext } from './input-language.context.js';
import { css, html, customElement, property, state, repeat, nothing } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -94,7 +94,7 @@ export class UmbInputLanguageElement extends UUIFormControlMixin(UmbLitElement,
@state()
private _items: Array<UmbLanguageItemModel> = [];
#pickerContext = new UmbLanguagePickerContext(this);
#pickerContext = new UmbLanguagePickerInputContext(this);
constructor() {
super();

View File

@@ -1,3 +1,3 @@
import './input-media-type/input-media-type.element.js';
export * from './input-media-type/input-media-type.element.js';
export * from './input-media-type/index.js';

View File

@@ -0,0 +1,2 @@
export * from './input-media-type.context.js';
export * from './input-media-type.element.js';

View File

@@ -9,7 +9,7 @@ import type { UmbMediaTypeTreeItemModel } from '../../tree/types.js';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbMediaTypePickerContext extends UmbPickerInputContext<
export class UmbMediaTypePickerInputContext extends UmbPickerInputContext<
UmbMediaTypeItemModel,
UmbMediaTypeTreeItemModel,
UmbMediaTypePickerModalData,
@@ -19,3 +19,6 @@ export class UmbMediaTypePickerContext extends UmbPickerInputContext<
super(host, UMB_MEDIA_TYPE_ITEM_REPOSITORY_ALIAS, UMB_MEDIA_TYPE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbMediaTypePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbMediaTypePickerInputContext as UmbMediaTypePickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbMediaTypeItemModel } from '../../repository/index.js';
import { UmbMediaTypePickerContext } from './input-media-type.context.js';
import { UmbMediaTypePickerInputContext } from './input-media-type.context.js';
import { css, html, customElement, property, state, repeat, nothing } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -98,7 +98,7 @@ export class UmbInputMediaTypeElement extends UmbFormControlMixin<string | undef
@state()
private _editPath = '';
#pickerContext = new UmbMediaTypePickerContext(this);
#pickerContext = new UmbMediaTypePickerInputContext(this);
constructor() {
super();

View File

@@ -1 +1,2 @@
export * from './input-media.context.js';
export * from './input-media.element.js';

View File

@@ -5,7 +5,7 @@ import type { UmbMediaPickerModalData, UmbMediaPickerModalValue } from '../../mo
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbMediaPickerContext extends UmbPickerInputContext<
export class UmbMediaPickerInputContext extends UmbPickerInputContext<
UmbMediaItemModel,
UmbMediaItemModel,
UmbMediaPickerModalData<UmbMediaItemModel>,
@@ -15,3 +15,6 @@ export class UmbMediaPickerContext extends UmbPickerInputContext<
super(host, UMB_MEDIA_ITEM_REPOSITORY_ALIAS, UMB_MEDIA_PICKER_MODAL);
}
}
/** @deprecated Use `UmbMediaPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbMediaPickerInputContext as UmbMediaPickerContext };

View File

@@ -1,6 +1,6 @@
import type { UmbMediaCardItemModel } from '../../modals/index.js';
import type { UmbMediaItemModel } from '../../repository/index.js';
import { UmbMediaPickerContext } from './input-media.context.js';
import { UmbMediaPickerInputContext } from './input-media.context.js';
import { css, customElement, html, ifDefined, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -122,7 +122,7 @@ export class UmbInputMediaElement extends UmbFormControlMixin<string | undefined
@state()
private _cards: Array<UmbMediaCardItemModel> = [];
#pickerContext = new UmbMediaPickerContext(this);
#pickerContext = new UmbMediaPickerInputContext(this);
constructor() {
super();

View File

@@ -150,6 +150,27 @@ export class UmbInputRichMediaElement extends UUIFormControlMixin(UmbLitElement,
return this.#modalRouter.getUniquePathValue('variantId');
}
/**
* Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.
* @type {boolean}
* @attr
* @default false
*/
@property({ type: Boolean, reflect: true })
public get readonly() {
return this.#readonly;
}
public set readonly(value) {
this.#readonly = value;
if (this.#readonly) {
this.#sorter.disable();
} else {
this.#sorter.enable();
}
}
#readonly = false;
@state()
private _cards: Array<UmbRichMediaCardModel> = [];
@@ -323,6 +344,7 @@ export class UmbInputRichMediaElement extends UUIFormControlMixin(UmbLitElement,
}
#renderDropzone() {
if (this.readonly) return nothing;
if (this._cards && this._cards.length >= this.max) return;
return html`<umb-dropzone @change=${this.#onUploadCompleted}></umb-dropzone>`;
}
@@ -345,7 +367,8 @@ export class UmbInputRichMediaElement extends UUIFormControlMixin(UmbLitElement,
id="btn-add"
look="placeholder"
@click=${this.#openPicker}
label=${this.localize.term('general_choose')}>
label=${this.localize.term('general_choose')}
?disabled=${this.readonly}>
<uui-icon name="icon-add"></uui-icon>
${this.localize.term('general_choose')}
</uui-button>
@@ -354,26 +377,29 @@ export class UmbInputRichMediaElement extends UUIFormControlMixin(UmbLitElement,
#renderItem(item: UmbRichMediaCardModel) {
if (!item.unique) return nothing;
const href = this._routeBuilder?.({ key: item.unique });
const href = this.readonly ? undefined : this._routeBuilder?.({ key: item.unique });
return html`
<uui-card-media id=${item.unique} name=${item.name} .href=${href}>
<uui-card-media id=${item.unique} name=${item.name} .href=${href} ?readonly=${this.readonly}>
<umb-imaging-thumbnail
unique=${item.media}
alt=${item.name}
icon=${item.icon ?? 'icon-picture'}></umb-imaging-thumbnail>
${this.#renderIsTrashed(item)}
<uui-action-bar slot="actions">
<uui-button
label=${this.localize.term('general_remove')}
look="secondary"
@click=${() => this.#onRemove(item)}>
<uui-icon name="icon-trash"></uui-icon>
</uui-button>
</uui-action-bar>
${this.#renderIsTrashed(item)} ${this.#renderActions(item)}
</uui-card-media>
`;
}
#renderActions(item: UmbRichMediaCardModel) {
if (this.readonly) return nothing;
return html`
<uui-action-bar slot="actions">
<uui-button label=${this.localize.term('general_remove')} look="secondary" @click=${() => this.#onRemove(item)}>
<uui-icon name="icon-trash"></uui-icon>
</uui-button>
</uui-action-bar>
`;
}
#renderIsTrashed(item: UmbRichMediaCardModel) {
if (!item.isTrashed) return;
return html`

View File

@@ -11,6 +11,7 @@ const manifest: ManifestPropertyEditorUi = {
propertyEditorSchemaAlias: 'Umbraco.MediaPicker3',
icon: 'icon-picture',
group: 'media',
supportsReadOnly: true,
},
};

View File

@@ -34,6 +34,15 @@ export class UmbPropertyEditorUIMediaPickerElement extends UmbLitElement impleme
this._max = minMax?.max ?? Infinity;
}
/**
* Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.
* @type {boolean}
* @attr
* @default false
*/
@property({ type: Boolean, reflect: true })
readonly = false;
@state()
private _startNode: string = '';
@@ -88,7 +97,8 @@ export class UmbPropertyEditorUIMediaPickerElement extends UmbLitElement impleme
.startNode=${this._startNode}
.variantId=${this._variantId}
?multiple=${this._multiple}
@change=${this.#onChange}>
@change=${this.#onChange}
?readonly=${this.readonly}>
</umb-input-rich-media>
`;
}

View File

@@ -1,5 +1,4 @@
import './input-member-group/input-member-group.element.js';
export * from './input-member-group/input-member-group.element.js';
export * from './input-member-group/index.js';
export * from './member-group-picker-modal/member-group-picker-modal.element.js';

View File

@@ -0,0 +1,2 @@
export * from './input-member-group.context.js';
export * from './input-member-group.element.js';

View File

@@ -4,8 +4,11 @@ import { UMB_MEMBER_GROUP_PICKER_MODAL } from '../member-group-picker-modal/memb
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
export class UmbMemberPickerContext extends UmbPickerInputContext<UmbMemberGroupItemModel> {
export class UmbMemberGroupPickerInputContext extends UmbPickerInputContext<UmbMemberGroupItemModel> {
constructor(host: UmbControllerHostElement) {
super(host, UMB_MEMBER_GROUP_ITEM_REPOSITORY_ALIAS, UMB_MEMBER_GROUP_PICKER_MODAL);
}
}
/** @deprecated Use `UmbMemberGroupPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbMemberGroupPickerInputContext as UmbMemberPickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbMemberGroupItemModel } from '../../repository/index.js';
import { UmbMemberPickerContext } from './input-member-group.context.js';
import { UmbMemberGroupPickerInputContext } from './input-member-group.context.js';
import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -106,7 +106,7 @@ export class UmbInputMemberGroupElement extends UmbFormControlMixin<string | und
@state()
private _items?: Array<UmbMemberGroupItemModel>;
#pickerContext = new UmbMemberPickerContext(this);
#pickerContext = new UmbMemberGroupPickerInputContext(this);
constructor() {
super();

View File

@@ -1,3 +1,3 @@
import './input-member-type/input-member-type.element.js';
export * from './input-member-type/input-member-type.element.js';
export * from './input-member-type/index.js';

View File

@@ -0,0 +1,2 @@
export * from './input-member-type.context.js';
export * from './input-member-type.element.js';

View File

@@ -9,7 +9,7 @@ import type { UmbMemberTypeTreeItemModel } from '../../tree/index.js';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbMemberTypePickerContext extends UmbPickerInputContext<
export class UmbMemberTypePickerInputContext extends UmbPickerInputContext<
UmbMemberTypeItemModel,
UmbMemberTypeTreeItemModel,
UmbMemberTypePickerModalData,
@@ -19,3 +19,6 @@ export class UmbMemberTypePickerContext extends UmbPickerInputContext<
super(host, UMB_MEMBER_TYPE_ITEM_REPOSITORY_ALIAS, UMB_MEMBER_TYPE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbMemberTypePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbMemberTypePickerInputContext as UmbMemberTypePickerContext };

View File

@@ -1,4 +1,4 @@
import { UmbMemberTypePickerContext } from './input-member-type.context.js';
import { UmbMemberTypePickerInputContext } from './input-member-type.context.js';
import { css, html, customElement, property, state, repeat, when } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@@ -73,7 +73,7 @@ export class UmbInputMemberTypeElement extends UmbFormControlMixin<string | unde
@state()
private _items?: Array<UmbUniqueItemModel>;
#pickerContext = new UmbMemberTypePickerContext(this);
#pickerContext = new UmbMemberTypePickerInputContext(this);
constructor() {
super();

View File

@@ -1,6 +1,6 @@
import './input-member/input-member.element.js';
export * from './input-member/input-member.element.js';
export * from './input-member/index.js';
export * from './member-picker-modal/member-picker-modal.element.js';
export { UMB_MEMBER_PICKER_MODAL } from './member-picker-modal/index.js';

View File

@@ -0,0 +1,2 @@
export * from './input-member.context.js';
export * from './input-member.element.js';

View File

@@ -4,8 +4,11 @@ import { UMB_MEMBER_PICKER_MODAL } from '../member-picker-modal/member-picker-mo
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
export class UmbMemberPickerContext extends UmbPickerInputContext<UmbMemberItemModel> {
export class UmbMemberPickerInputContext extends UmbPickerInputContext<UmbMemberItemModel> {
constructor(host: UmbControllerHostElement) {
super(host, UMB_MEMBER_ITEM_REPOSITORY_ALIAS, UMB_MEMBER_PICKER_MODAL);
}
}
/** @deprecated Use `UmbMemberPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbMemberPickerInputContext as UmbMemberPickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbMemberItemModel } from '../../repository/index.js';
import { UmbMemberPickerContext } from './input-member.context.js';
import { UmbMemberPickerInputContext } from './input-member.context.js';
import { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -108,7 +108,7 @@ export class UmbInputMemberElement extends UmbFormControlMixin<string | undefine
@state()
private _items?: Array<UmbMemberItemModel>;
#pickerContext = new UmbMemberPickerContext(this);
#pickerContext = new UmbMemberPickerInputContext(this);
constructor() {
super();
@@ -188,6 +188,7 @@ export class UmbInputMemberElement extends UmbFormControlMixin<string | undefine
if (!item.unique) return nothing;
return html`
<uui-ref-node name=${item.name} id=${item.unique}>
${this.#renderIcon(item)}
<uui-action-bar slot="actions">
${this.#renderOpenButton(item)}
<uui-button @click=${() => this.#onRemove(item)} label=${this.localize.term('general_remove')}></uui-button>
@@ -196,6 +197,11 @@ export class UmbInputMemberElement extends UmbFormControlMixin<string | undefine
`;
}
#renderIcon(item: UmbMemberItemModel) {
if (!item.memberType.icon) return;
return html`<umb-icon slot="icon" name=${item.memberType.icon}></umb-icon>`;
}
#renderOpenButton(item: UmbMemberItemModel) {
if (!this.showOpenButton) return nothing;
return html`

View File

@@ -1,10 +1,10 @@
import { UmbPackageRepository } from '../../package/repository/index.js';
import type { UmbCreatedPackageDefinition } from '../../types.js';
import { UmbDictionaryPickerContext } from '@umbraco-cms/backoffice/dictionary';
import { UmbPartialViewPickerContext } from '@umbraco-cms/backoffice/partial-view';
import { UmbScriptPickerContext } from '@umbraco-cms/backoffice/script';
import { UmbStylesheetPickerContext } from '@umbraco-cms/backoffice/stylesheet';
import { UmbTemplatePickerContext } from '@umbraco-cms/backoffice/template';
import { UmbDictionaryPickerInputContext } from '@umbraco-cms/backoffice/dictionary';
import { UmbPartialViewPickerInputContext } from '@umbraco-cms/backoffice/partial-view';
import { UmbScriptPickerInputContext } from '@umbraco-cms/backoffice/script';
import { UmbStylesheetPickerInputContext } from '@umbraco-cms/backoffice/stylesheet';
import { UmbTemplatePickerInputContext } from '@umbraco-cms/backoffice/template';
import type { UmbDataTypeInputElement } from '@umbraco-cms/backoffice/data-type';
import type { UmbInputLanguageElement } from '@umbraco-cms/backoffice/language';
import {
@@ -307,7 +307,7 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement {
<div slot="editor">
<umb-input-entity
.getIcon=${() => 'icon-book-alt'}
.pickerContext=${UmbDictionaryPickerContext}
.pickerContext=${UmbDictionaryPickerInputContext}
.selection=${this._package.dictionaryItems ?? []}
@change=${this.#onDictionaryChange}>
</umb-input-entity>
@@ -344,7 +344,7 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement {
<div slot="editor">
<umb-input-entity
.getIcon=${() => 'icon-newspaper'}
.pickerContext=${UmbTemplatePickerContext}
.pickerContext=${UmbTemplatePickerInputContext}
.selection=${this._package.templates ?? []}
@change=${this.#onTemplateChange}>
</umb-input-entity>
@@ -368,7 +368,7 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement {
<div slot="editor">
<umb-input-entity
.getIcon=${() => 'icon-brush-alt'}
.pickerContext=${UmbStylesheetPickerContext}
.pickerContext=${UmbStylesheetPickerInputContext}
.selection=${this._package.stylesheets.map((path) => this.#serverFilePathUniqueSerializer.toUnique(path)) ??
[]}
@change=${this.#onStylesheetsChange}>
@@ -393,7 +393,7 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement {
<div slot="editor">
<umb-input-entity
.getIcon=${() => 'icon-diploma'}
.pickerContext=${UmbScriptPickerContext}
.pickerContext=${UmbScriptPickerInputContext}
.selection=${this._package.scripts.map((path) => this.#serverFilePathUniqueSerializer.toUnique(path)) ?? []}
@change=${this.#onScriptsChange}>
</umb-input-entity>
@@ -417,7 +417,7 @@ export class UmbWorkspacePackageBuilderElement extends UmbLitElement {
<div slot="editor">
<umb-input-entity
.getIcon=${() => 'icon-notepad'}
.pickerContext=${UmbPartialViewPickerContext}
.pickerContext=${UmbPartialViewPickerInputContext}
.selection=${this._package.partialViews.map((path) =>
this.#serverFilePathUniqueSerializer.toUnique(path),
) ?? []}

View File

@@ -1,7 +1,7 @@
import type { UmbContentPickerDynamicRoot } from '../../types.js';
import type { UmbContentPickerDocumentRootOriginModalData } from './index.js';
import { html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit';
import { UmbDocumentPickerContext } from '@umbraco-cms/backoffice/document';
import { UmbDocumentPickerInputContext } from '@umbraco-cms/backoffice/document';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import type { ManifestDynamicRootOrigin } from '@umbraco-cms/backoffice/extension-registry';
@@ -10,7 +10,7 @@ export class UmbDynamicRootOriginPickerModalModalElement extends UmbModalBaseEle
@state()
private _origins: Array<ManifestDynamicRootOrigin> = [];
#documentPickerContext = new UmbDocumentPickerContext(this);
#documentPickerContext = new UmbDocumentPickerInputContext(this);
constructor() {
super();

View File

@@ -1,6 +1,6 @@
import type { UmbContentPickerDynamicRootQueryStep } from '../../types.js';
import type { UmbContentPickerDocumentRootQueryStepModalData } from './index.js';
import { UmbDocumentTypePickerContext } from '@umbraco-cms/backoffice/document-type';
import { UmbDocumentTypePickerInputContext } from '@umbraco-cms/backoffice/document-type';
import { UmbId } from '@umbraco-cms/backoffice/id';
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
import { html, customElement, state, ifDefined, repeat } from '@umbraco-cms/backoffice/external/lit';
@@ -11,7 +11,7 @@ export class UmbDynamicRootQueryStepPickerModalModalElement extends UmbModalBase
@state()
private _querySteps: Array<ManifestDynamicRootQueryStep> = [];
#documentTypePickerContext = new UmbDocumentTypePickerContext(this);
#documentTypePickerContext = new UmbDocumentTypePickerInputContext(this);
override connectedCallback() {
super.connectedCallback();

View File

@@ -12,6 +12,7 @@ export const manifests: Array<ManifestTypes> = [
propertyEditorSchemaAlias: 'Umbraco.TrueFalse',
icon: 'icon-checkbox',
group: 'common',
supportsReadOnly: true,
settings: {
properties: [
{

View File

@@ -5,7 +5,7 @@ import type { UmbStaticFilePickerModalData, UmbStaticFilePickerModalValue } from
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbStaticFilePickerContext extends UmbPickerInputContext<
export class UmbStaticFilePickerInputContext extends UmbPickerInputContext<
UmbStaticFileItemModel,
UmbStaticFileItemModel,
UmbStaticFilePickerModalData,
@@ -15,3 +15,6 @@ export class UmbStaticFilePickerContext extends UmbPickerInputContext<
super(host, UMB_STATIC_FILE_ITEM_REPOSITORY_ALIAS, UMB_STATIC_FILE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbStaticFilePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbStaticFilePickerInputContext as UmbStaticFilePickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbStaticFileItemModel } from '../../repository/item/types.js';
import { UmbStaticFilePickerContext } from './input-static-file.context.js';
import { UmbStaticFilePickerInputContext } from './input-static-file.context.js';
import { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@@ -79,7 +79,7 @@ export class UmbInputStaticFileElement extends UmbFormControlMixin<string | unde
@state()
private _items?: Array<UmbStaticFileItemModel>;
#pickerContext = new UmbStaticFilePickerContext(this);
#pickerContext = new UmbStaticFilePickerInputContext(this);
constructor() {
super();

View File

@@ -5,7 +5,7 @@ import type { UmbPartialViewTreeItemModel } from '../../tree/types.js';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
export class UmbPartialViewPickerContext extends UmbPickerInputContext<
export class UmbPartialViewPickerInputContext extends UmbPickerInputContext<
UmbPartialViewItemModel,
UmbPartialViewTreeItemModel
> {
@@ -13,3 +13,6 @@ export class UmbPartialViewPickerContext extends UmbPickerInputContext<
super(host, UMB_PARTIAL_VIEW_ITEM_REPOSITORY_ALIAS, UMB_PARTIAL_VIEW_PICKER_MODAL);
}
}
/** @deprecated Use `UmbPartialViewPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbPartialViewPickerInputContext as UmbPartialViewPickerContext };

View File

@@ -4,8 +4,11 @@ import type { UmbScriptItemModel, UmbScriptTreeItemModel } from '../../index.js'
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbScriptPickerContext extends UmbPickerInputContext<UmbScriptItemModel, UmbScriptTreeItemModel> {
export class UmbScriptPickerInputContext extends UmbPickerInputContext<UmbScriptItemModel, UmbScriptTreeItemModel> {
constructor(host: UmbControllerHost) {
super(host, UMB_SCRIPT_ITEM_REPOSITORY_ALIAS, UMB_SCRIPT_PICKER_MODAL);
}
}
/** @deprecated Use `UmbScriptPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbScriptPickerInputContext as UmbScriptPickerContext };

View File

@@ -4,7 +4,7 @@ import { UMB_STYLESHEET_PICKER_MODAL } from './stylesheet-picker-modal.token.js'
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbStylesheetPickerContext extends UmbPickerInputContext<UmbStylesheetItemModel> {
export class UmbStylesheetPickerInputContext extends UmbPickerInputContext<UmbStylesheetItemModel> {
constructor(host: UmbControllerHost) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
@@ -12,3 +12,6 @@ export class UmbStylesheetPickerContext extends UmbPickerInputContext<UmbStylesh
super(host, UMB_STYLESHEET_ITEM_REPOSITORY_ALIAS, UMB_STYLESHEET_PICKER_MODAL);
}
}
/** @deprecated Use `UmbStylesheetPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbStylesheetPickerInputContext as UmbStylesheetPickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbStylesheetItemModel } from '../../types.js';
import { UmbStylesheetPickerContext } from './stylesheet-input.context.js';
import { UmbStylesheetPickerInputContext } from './stylesheet-input.context.js';
import { css, html, customElement, property, state, repeat } from '@umbraco-cms/backoffice/external/lit';
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@@ -73,7 +73,7 @@ export class UmbStylesheetInputElement extends UUIFormControlMixin(UmbLitElement
@state()
private _items: Array<UmbStylesheetItemModel> = [];
#pickerContext = new UmbStylesheetPickerContext(this);
#pickerContext = new UmbStylesheetPickerInputContext(this);
constructor() {
super();

View File

@@ -4,10 +4,13 @@ import type { UmbTemplateItemModel } from '../../repository/index.js';
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbTemplatePickerContext extends UmbPickerInputContext<UmbTemplateItemModel> {
export class UmbTemplatePickerInputContext extends UmbPickerInputContext<UmbTemplateItemModel> {
constructor(host: UmbControllerHost) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
super(host, UMB_TEMPLATE_ITEM_REPOSITORY_ALIAS, UMB_TEMPLATE_PICKER_MODAL);
}
}
/** @deprecated Use `UmbTemplatePickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbTemplatePickerInputContext as UmbTemplatePickerContext };

View File

@@ -1,5 +1,5 @@
import './input-user-group/user-group-input.element.js';
import './user-group-ref/user-group-ref.element.js';
export * from './input-user-group/user-group-input.element.js';
export * from './user-group-ref/user-group-ref.element.js';
export * from './input-user-group/index.js';
export * from './user-group-ref/index.js';

View File

@@ -0,0 +1,2 @@
export * from './user-group-input.context.js';
export * from './user-group-input.element.js';

View File

@@ -3,8 +3,11 @@ import { UMB_USER_GROUP_PICKER_MODAL } from '../../modals/user-group-picker/user
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbUserGroupPickerContext extends UmbPickerInputContext<UmbUserGroupItemModel> {
export class UmbUserGroupPickerInputContext extends UmbPickerInputContext<UmbUserGroupItemModel> {
constructor(host: UmbControllerHost) {
super(host, UMB_USER_GROUP_ITEM_REPOSITORY_ALIAS, UMB_USER_GROUP_PICKER_MODAL);
}
}
/** @deprecated Use `UmbUserGroupPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbUserGroupPickerInputContext as UmbUserGroupPickerContext };

View File

@@ -1,6 +1,6 @@
import { UMB_USER_GROUP_ENTITY_TYPE } from '../../entity.js';
import type { UmbUserGroupItemModel } from '../../repository/index.js';
import { UmbUserGroupPickerContext } from './user-group-input.context.js';
import { UmbUserGroupPickerInputContext } from './user-group-input.context.js';
import { css, html, customElement, property, state, ifDefined, nothing } from '@umbraco-cms/backoffice/external/lit';
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
@@ -75,7 +75,7 @@ export class UmbUserGroupInputElement extends UUIFormControlMixin(UmbLitElement,
@state()
private _items?: Array<UmbUserGroupItemModel>;
#pickerContext = new UmbUserGroupPickerContext(this);
#pickerContext = new UmbUserGroupPickerInputContext(this);
@state()
private _editUserGroupPath = '';

View File

@@ -0,0 +1 @@
export * from './user-group-ref.element.js';

View File

@@ -2,5 +2,5 @@ import './user-input/user-input.element.js';
import './user-document-start-node/user-document-start-node.element.js';
import './user-media-start-node/user-media-start-node.element.js';
export * from './user-input/user-input.element.js';
export * from './user-input/index.js';
export * from '../../user-permission/components/input-user-permission-verb/input-user-permission-verb.element.js';

View File

@@ -0,0 +1,2 @@
export * from './user-input.context.js';
export * from './user-input.element.js';

View File

@@ -4,8 +4,11 @@ import { UMB_USER_PICKER_MODAL } from '../../modals/user-picker/user-picker-moda
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class UmbUserPickerContext extends UmbPickerInputContext<UmbUserDetailModel> {
export class UmbUserPickerInputContext extends UmbPickerInputContext<UmbUserDetailModel> {
constructor(host: UmbControllerHost) {
super(host, UMB_USER_ITEM_REPOSITORY_ALIAS, UMB_USER_PICKER_MODAL);
}
}
/** @deprecated Use `UmbUserPickerInputContext` instead. This method will be removed in Umbraco 15. */
export { UmbUserPickerInputContext as UmbUserPickerContext };

View File

@@ -1,5 +1,5 @@
import type { UmbUserItemModel } from '../../repository/index.js';
import { UmbUserPickerContext } from './user-input.context.js';
import { UmbUserPickerInputContext } from './user-input.context.js';
import { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
@@ -92,7 +92,7 @@ export class UmbUserInputElement extends UUIFormControlMixin(UmbLitElement, '')
@state()
private _items?: Array<UmbUserItemModel>;
#pickerContext = new UmbUserPickerContext(this);
#pickerContext = new UmbUserPickerInputContext(this);
constructor() {
super();