add specific variant selector for documents

This commit is contained in:
Mads Rasmussen
2024-10-24 22:59:29 +02:00
parent 9cadee65d9
commit 237d54281f

View File

@@ -0,0 +1,30 @@
import type { UmbDocumentVariantOptionModel } from '../types.js';
import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
import { DocumentVariantStateModel } from '@umbraco-cms/backoffice/external/backend-api';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { UmbWorkspaceSplitViewVariantSelectorElement } from '@umbraco-cms/backoffice/workspace';
const elementName = 'umb-document-workspace-split-view-variant-selector';
@customElement(elementName)
export class UmbDocumentWorkspaceSplitViewVariantSelectorElement extends UmbWorkspaceSplitViewVariantSelectorElement<UmbDocumentVariantOptionModel> {
#publishStateLocalizationMap = {
[DocumentVariantStateModel.DRAFT]: 'content_unpublished',
[DocumentVariantStateModel.PUBLISHED]: 'content_published',
[DocumentVariantStateModel.PUBLISHED_PENDING_CHANGES]: 'content_publishedPendingChanges',
[DocumentVariantStateModel.NOT_CREATED]: 'content_notCreated',
};
override _renderVariantDetails(variantOption: UmbDocumentVariantOptionModel) {
return html` ${this.localize.term(
this.#publishStateLocalizationMap[variantOption.variant?.state || DocumentVariantStateModel.NOT_CREATED],
)}`;
}
static override styles = [...UmbWorkspaceSplitViewVariantSelectorElement.styles, UmbTextStyles];
}
declare global {
interface HTMLElementTagNameMap {
[elementName]: UmbDocumentWorkspaceSplitViewVariantSelectorElement;
}
}