import { SharedContracts } from '../../contracts'; export namespace LanguageVariantElements { export interface ILanguageVariantElementBase { element: SharedContracts.IReferenceObjectContract; value: any; } export interface IRichTextComponent { id: string; type: SharedContracts.IReferenceObjectContract; elements: ILanguageVariantElementBase[]; } export interface IAssetInVariantElement extends ILanguageVariantElementBase { value: SharedContracts.IReferenceObjectContract[] | null; } export interface ICustomElementInVariantElement extends ILanguageVariantElementBase { value: string | null; searchable_value?: string; } export interface IDateTimeInVariantElement extends ILanguageVariantElementBase { value: string | null; display_timezone: string | null; } export interface ILinkedItemsInVariantElement extends ILanguageVariantElementBase { value: SharedContracts.IReferenceObjectContract[] | null; } export interface IMultipleChoiceInVariantElement extends ILanguageVariantElementBase { value: SharedContracts.IReferenceObjectContract[] | null; } export interface INumberInVariantElement extends ILanguageVariantElementBase { value: number | null; } export interface IRichtextInVariantElement extends ILanguageVariantElementBase { value: string | null; components?: IRichTextComponent[]; } export interface ITaxonomyInVariantElement extends ILanguageVariantElementBase { value: SharedContracts.IReferenceObjectContract[] | null; } export interface ITextInVariantElement extends ILanguageVariantElementBase { value: string | null; } export interface IUrlSlugInVariantElement extends ILanguageVariantElementBase { value: string | null; mode: 'autogenerated' | 'custom'; } } export class LanguageVariantElementsBuilder { assetElement( element: LanguageVariantElements.IAssetInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } customElement( element: LanguageVariantElements.ICustomElementInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } dateTimeElement( element: LanguageVariantElements.IDateTimeInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } linkedItemsElement( element: LanguageVariantElements.ILinkedItemsInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } multipleChoiceElement( element: LanguageVariantElements.IMultipleChoiceInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } numberElement( element: LanguageVariantElements.INumberInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } richTextElement( element: LanguageVariantElements.IRichtextInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } taxonomyElement( element: LanguageVariantElements.ITaxonomyInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } textElement( element: LanguageVariantElements.ITextInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } urlSlugElement( element: LanguageVariantElements.IUrlSlugInVariantElement ): LanguageVariantElements.ILanguageVariantElementBase { return element; } any(element: any): LanguageVariantElements.ILanguageVariantElementBase { return element; } } export const languageVariantElementsBuilder = new LanguageVariantElementsBuilder();