From b565c13c793f2e159c93a61e50d3102996eb9b36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Fri, 1 Sep 2023 21:53:56 +0200 Subject: [PATCH] improve variantID --- .../src/packages/core/variant/variant-id.class.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/variant/variant-id.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/variant/variant-id.class.ts index 38aa1f32b4..e5ee3918eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/variant/variant-id.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/variant/variant-id.class.ts @@ -1,5 +1,7 @@ export type variantObject = { culture?: string | null; segment?: string | null }; +export const INVARIANT_CULTURE = 'invariant'; + export class UmbVariantId { public static Create(variantData: variantObject): UmbVariantId { return Object.freeze(new UmbVariantId(variantData)); @@ -9,7 +11,7 @@ export class UmbVariantId { public readonly segment: string | null = null; constructor(variantData: variantObject) { - this.culture = (variantData.culture === 'invariant' ? null : variantData.culture) ?? null; + this.culture = (variantData.culture === INVARIANT_CULTURE ? null : variantData.culture) ?? null; this.segment = variantData.segment ?? null; } @@ -22,7 +24,15 @@ export class UmbVariantId { } public toString(): string { - return (this.culture || 'invariant') + (this.segment ? `_${this.segment}` : ''); + return (this.culture || INVARIANT_CULTURE) + (this.segment ? `_${this.segment}` : ''); + } + + public toCultureString(): string { + return (this.culture || INVARIANT_CULTURE); + } + + public toSegmentString(): string { + return (this.segment || ''); } public isInvariant(): boolean { @@ -33,6 +43,7 @@ export class UmbVariantId { return { culture: this.culture, segment: this.segment }; } + // TODO: needs localization option: public toDifferencesString(variantId: UmbVariantId): string { let r = '';