From 237d54281f966ca94d73095e759346f14a4f6967 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 24 Oct 2024 22:59:29 +0200 Subject: [PATCH] add specific variant selector for documents --- ...ace-split-view-variant-selector.element.ts | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts new file mode 100644 index 0000000000..fb4c54b3d5 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace-split-view-variant-selector.element.ts @@ -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 { + #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; + } +}