diff --git a/projects/demo/src/app/components/content-card/content-card.component.html b/projects/demo/src/app/components/content-card/content-card.component.html
index 8446c12b..e4f193db 100644
--- a/projects/demo/src/app/components/content-card/content-card.component.html
+++ b/projects/demo/src/app/components/content-card/content-card.component.html
@@ -1,35 +1,35 @@
@let data = contentCardData();
- @if (data.imageURL) {
-
- @if (data.state) {
-
+ @if (data.image?.imageUrl) {
+
+ @if (data.image?.state) {
+
}
}
-
- {{ data.date }}
+
+ {{ data.date }}
+
+ @for (tag of data.tags; track $index) {
+
+ {{ tag.title }}
- @for (tag of data.tags; track $index) {
-
- {{ tag.title }}
-
- }
+ }
}
@@ -62,57 +62,19 @@ {{ data.
@if (data.description) {
}
-
- @if (data.orientation === "vertical") {
+ @for (button of data.button; track $index) {
-
}
-
- @if (data.buttonOne || data.buttonTwo) {
-
- @if (data.buttonOne) {
-
- {{ data.buttonOne }}
-
- }
-
- @if (data.buttonTwo) {
-
- {{ data.buttonTwo }}
-
- }
-
- }
diff --git a/projects/demo/src/app/components/content-card/content-card.component.ts b/projects/demo/src/app/components/content-card/content-card.component.ts
index a36179bd..ec152928 100644
--- a/projects/demo/src/app/components/content-card/content-card.component.ts
+++ b/projects/demo/src/app/components/content-card/content-card.component.ts
@@ -47,7 +47,7 @@ export class ContentCardComponent {
}
public imageData = computed(() => ({
- transparent: this.contentCardData().imageBGTransparent === true,
+ transparent: this.contentCardData().image?.bgTransparent === true,
}));
}
diff --git a/projects/demo/src/app/model/contentCardData.ts b/projects/demo/src/app/model/contentCardData.ts
index 9235b9f9..75ad08e3 100644
--- a/projects/demo/src/app/model/contentCardData.ts
+++ b/projects/demo/src/app/model/contentCardData.ts
@@ -1,43 +1,36 @@
-export interface ContentCardData {
- variant?: 'surface' | 'light' | 'dark';
- id?: number;
- orientation: 'horizontal' | 'vertical';
- aspectRatio?: '1/1' | '16/9' | '16/10';
- image?: {
- lightUrl?: string;
- darkUrl?: string;
- caption?: string;
- bgColorVariant?: 'surface' | 'primary' | 'light';
- bgTransparent?: boolean;
- filledInContainer?: boolean;
- state?: 'no_state' | 'do' | 'dont';
+export type ContentCardData = Partial<{
+ id: number;
+ card: {
+ variant: 'surface' | 'light' | 'dark';
+ orientation: 'horizontal' | 'vertical';
+ appearance: 'filled' | 'elevated';
+ transparent: boolean;
+ }
+ isImage: boolean;
+ image: {
+ imageUrl: string;
+ aspectRatio: '1/1' | '16/9' | '16/10';
+ lightUrl: string;
+ darkUrl: string;
+ caption: string;
+ bgColorVariant: 'surface' | 'primary' | 'light';
+ bgTransparent: boolean;
+ filledInContainer: boolean;
+ state: 'no_state' | 'do' | 'dont';
};
- isImage?: boolean;
- isButton?: boolean;
- imageURL?: string;
- imageUrlLight?: string;
- imageUrlDark?: string;
- imageBgColorVariant?: 'surface' | 'primary' | 'light';
- imageCaption?: string;
- overTitle?: string;
- title?: string;
- description?: string;
- caption?: string;
- buttonOne?: string;
- buttonOneUrl?: string;
- buttonTwo?: string;
- buttonTwoUrl?: string;
- state?: 'no_state' | 'do' | 'dont';
- transparent?: boolean;
- heading?: string;
- content_heading?: string;
- imageBGTransparent?: boolean
- appearance?: 'filled' | 'elevated';
- filledInContainer?: boolean;
- last_modified?: string;
- date?: string;
- tags?: Array<{
- id?: number;
- title?: string;
+ isButton: boolean;
+ button: Array<{
+ text: string;
+ url: string;
}>;
-}
+ title: string;
+ overTitle: string;
+ description: string;
+ content_heading: string;
+ last_modified: string;
+ date: string;
+ tags: Array<{
+ id: number;
+ title: string;
+ }>;
+}>;
diff --git a/projects/demo/src/app/pages/components/component-details/component-details.component.ts b/projects/demo/src/app/pages/components/component-details/component-details.component.ts
index b03e2980..95675026 100644
--- a/projects/demo/src/app/pages/components/component-details/component-details.component.ts
+++ b/projects/demo/src/app/pages/components/component-details/component-details.component.ts
@@ -129,31 +129,32 @@ export class ComponentDetailsComponent implements OnInit {
blocks.push({
type: 'card',
id: Number(block.id),
- orientation: block.card_properties?.card_orientation?.value ?? 'vertical',
- variant: block.card_properties?.card_variant?.value ?? 'surface',
- appearance: block.card_properties?.appearance?.value ?? 'filled',
- transparent: block.card_properties?.card_bg_transparent ?? false,
- filledInContainer: block.group_image?.filled_in_container ?? false,
- state: block.group_image?.state?.value,
- imageURL: block.group_image?.img_light_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
- : '',
- imageUrlLight: block.group_image?.img_light_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
- : '',
- imageUrlDark: block.group_image?.img_dark_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_dark_mode[0].url}`
- : '',
- imageCaption: block.group_image?.img_caption,
- imageBgColorVariant: block.group_image?.img_bg_color?.value ?? 'surface',
- imageBGTransparent: block.group_image?.bg_transparent ?? false,
+ card: {
+ orientation: block.card_properties?.card_orientation?.value ?? 'vertical',
+ variant: block.card_properties?.card_variant?.value ?? 'surface',
+ appearance: block.card_properties?.appearance?.value ?? 'filled',
+ transparent: block.card_properties?.card_bg_transparent ?? false,
+ },
+ image: {
+ state: block.group_image?.state?.value ?? 'no_state',
+ aspectRatio: block.group_image?.img_aspect_ratio?.value ?? '16/9',
+ imageUrl: block.group_image?.img_light_mode?.[0]?.url ?
+ `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}` : '',
+ lightUrl: block.group_image?.img_light_mode?.[0]?.url ?
+ `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}` : '',
+ darkUrl: block.group_image?.img_dark_mode?.[0]?.url ? `${environment.cmsBaseUrl}${block.group_image.img_dark_mode[0].url}` : '',
+ caption: block.group_image?.img_caption ?? '',
+ bgColorVariant: block.group_image?.img_bg_color?.value ?? 'surface',
+ bgTransparent: block.group_image?.bg_transparent ?? false,
+ filledInContainer: block.group_image?.filled_in_container ?? false,
+ },
overTitle: block.content?.content_over_title,
title: block.content?.content_title,
description: block.content?.content_description,
- buttonOne: Array.isArray(block.button?.button) ? block.button?.button[0]?.button_label : undefined,
- buttonOneUrl: Array.isArray(block.button?.button) ? block.button?.button[0]?.button_url : block.button?.button?.button_url,
- buttonTwo: Array.isArray(block.button?.button) ? block.button?.button[1]?.button_label : undefined,
- buttonTwoUrl: Array.isArray(block.button?.button) ? block.button?.button[1]?.button_url : block.button?.button?.button_url,
+ button: Array.isArray(block.button?.button) ? block.button?.button.map((btn) => ({
+ text: btn.button_label,
+ url: btn.button_url,
+ })) : [],
});
}
});
diff --git a/projects/demo/src/app/pages/components/components.component.ts b/projects/demo/src/app/pages/components/components.component.ts
index c79c0a02..c421d574 100644
--- a/projects/demo/src/app/pages/components/components.component.ts
+++ b/projects/demo/src/app/pages/components/components.component.ts
@@ -134,15 +134,29 @@ export class ComponentsComponent implements OnInit {
id: item.id,
title: item.title,
description: item.description,
- orientation: 'vertical',
- aspectRatio: '16/9',
- appearance: 'elevated',
- variant: 'light',
- imageCaption: item.title,
- imageURL: item.imageUrl,
- imageUrlLight: item.imageUrl,
- imageUrlDark: item.comp_img_dark_mode?.[0]?.url ? environment.cmsBaseUrl + item.comp_img_dark_mode[0].url : item.imageUrl,
- buttonOneUrl: item.imageLink, //contains the link to the component page
+ card: {
+ orientation: 'vertical',
+ appearance: 'elevated',
+ variant: 'light',
+ transparent: false,
+ },
+ image: {
+ aspectRatio: '16/9',
+ imageUrl: item.imageUrl,
+ lightUrl: item.imageUrl,
+ darkUrl: item.comp_img_dark_mode?.[0]?.url ? `${environment.cmsBaseUrl}${item.comp_img_dark_mode[0].url}` : item.imageUrl,
+ caption: item.title,
+ bgColorVariant: 'surface',
+ bgTransparent: false,
+ filledInContainer: false,
+ state: 'no_state',
+ },
+ button: [
+ {
+ text: 'Learn More',
+ url: item.imageLink ?? '',
+ },
+ ],
};
}
}
diff --git a/projects/demo/src/app/pages/index/index.component.ts b/projects/demo/src/app/pages/index/index.component.ts
index aaa17d49..76b23612 100644
--- a/projects/demo/src/app/pages/index/index.component.ts
+++ b/projects/demo/src/app/pages/index/index.component.ts
@@ -80,32 +80,36 @@ export class IndexComponent implements OnInit, OnDestroy {
blocks.push({
type: 'card',
id: Number(block.id),
- orientation: block.card_properties?.card_orientation?.value ?? 'vertical',
- variant: block.card_properties?.card_variant?.value ?? 'surface',
- appearance: block.card_properties?.appearance?.value ?? 'filled',
- transparent: block.card_properties?.card_bg_transparent ?? false,
- filledInContainer: block.group_image?.filled_in_container ?? false,
- state: block.group_image?.state?.value,
- imageURL: block.group_image?.img_light_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
- : '',
- imageUrlLight: block.group_image?.img_light_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
- : '',
- imageUrlDark: block.group_image?.img_dark_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_dark_mode[0].url}`
- : '',
- imageCaption: block.group_image?.img_caption,
- imageBgColorVariant: block.group_image?.img_bg_color?.value ?? 'surface',
- imageBGTransparent: block.group_image?.bg_transparent ?? false,
- aspectRatio: block.group_image?.img_aspect_ratio?.value ?? '16/9',
+ card: {
+ orientation: block.card_properties?.card_orientation?.value ?? 'vertical',
+ variant: block.card_properties?.card_variant?.value ?? 'surface',
+ appearance: block.card_properties?.appearance?.value ?? 'filled',
+ transparent: block.card_properties?.card_bg_transparent ?? false,
+ },
+ image: {
+ aspectRatio: block.group_image?.img_aspect_ratio?.value ?? '16/9',
+ imageUrl: block.group_image?.img_light_mode?.[0]?.url ?
+ `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}` : '',
+ lightUrl: block.group_image?.img_light_mode?.[0]?.url
+ ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
+ : '',
+ darkUrl: block.group_image?.img_dark_mode?.[0]?.url
+ ? `${environment.cmsBaseUrl}${block.group_image.img_dark_mode[0].url}`
+ : '',
+ caption: block.group_image?.img_caption ?? '',
+ bgColorVariant: block.group_image?.img_bg_color?.value ?? 'surface',
+ bgTransparent: block.group_image?.bg_transparent ?? false,
+ filledInContainer: block.group_image?.filled_in_container ?? false,
+ state: block.group_image?.state?.value ?? 'no_state',
+ },
overTitle: block.content?.content_over_title,
title: block.content?.content_title,
description: block.content?.content_description,
- buttonOne: Array.isArray(block.button?.button) ? block.button?.button[0]?.button_label : undefined,
- buttonOneUrl: Array.isArray(block.button?.button) ? block.button?.button[0]?.button_url : block.button?.button?.button_url,
- buttonTwo: Array.isArray(block.button?.button) ? block.button?.button[1]?.button_label : undefined,
- buttonTwoUrl: Array.isArray(block.button?.button) ? block.button?.button[1]?.button_url : block.button?.button?.button_url,
+ button: Array.isArray(block.button?.button) ? block.button?.button.map((btn) => ({
+ text: btn.button_label,
+ url: btn.button_url,
+ })) : [],
+
});
}
}
diff --git a/projects/demo/src/app/pages/issue-report/issue-report.component.ts b/projects/demo/src/app/pages/issue-report/issue-report.component.ts
index fc779d9e..aa100607 100644
--- a/projects/demo/src/app/pages/issue-report/issue-report.component.ts
+++ b/projects/demo/src/app/pages/issue-report/issue-report.component.ts
@@ -84,32 +84,36 @@ export class IssueReportComponent implements OnInit, OnDestroy {
blocks.push({
type: 'card',
id: Number(block.id),
- orientation: block.card_properties?.card_orientation?.value ?? 'vertical',
- variant: block.card_properties?.card_variant?.value ?? 'surface',
- appearance: block.card_properties?.appearance?.value ?? 'filled',
- transparent: block.card_properties?.card_bg_transparent ?? false,
- filledInContainer: block.group_image?.filled_in_container ?? false,
- state: block.group_image?.state?.value,
- imageURL: block.group_image?.img_light_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
- : '',
- imageUrlLight: block.group_image?.img_light_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
- : '',
- imageUrlDark: block.group_image?.img_dark_mode?.[0]?.url
- ? `${environment.cmsBaseUrl}${block.group_image.img_dark_mode[0].url}`
- : '',
- imageCaption: block.group_image?.img_caption,
- imageBgColorVariant: block.group_image?.img_bg_color?.value ?? 'surface',
- imageBGTransparent: block.group_image?.bg_transparent ?? false,
- aspectRatio: block.group_image?.img_aspect_ratio?.value ?? '16/9',
+ card: {
+ orientation: block.card_properties?.card_orientation?.value ?? 'vertical',
+ variant: block.card_properties?.card_variant?.value ?? 'surface',
+ appearance: block.card_properties?.appearance?.value ?? 'filled',
+ transparent: block.card_properties?.card_bg_transparent ?? false,
+ },
+ image: {
+ imageUrl: block.group_image?.img_light_mode?.[0]?.url
+ ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
+ : '',
+ lightUrl: block.group_image?.img_light_mode?.[0]?.url
+ ? `${environment.cmsBaseUrl}${block.group_image.img_light_mode[0].url}`
+ : '',
+ darkUrl: block.group_image?.img_dark_mode?.[0]?.url
+ ? `${environment.cmsBaseUrl}${block.group_image.img_dark_mode[0].url}`
+ : '',
+ caption: block.content?.content_title,
+ bgColorVariant: block.group_image?.img_bg_color?.value ?? 'surface',
+ bgTransparent: block.group_image?.bg_transparent ?? false,
+ filledInContainer: block.group_image?.filled_in_container ?? false,
+ aspectRatio: block.group_image?.img_aspect_ratio?.value ?? '16/9',
+ state: block.group_image?.state?.value ?? 'no_state',
+ },
overTitle: block.content?.content_over_title,
title: block.content?.content_title,
description: block.content?.content_description,
- buttonOne: Array.isArray(block.button?.button) ? block.button?.button[0]?.button_label : undefined,
- buttonOneUrl: Array.isArray(block.button?.button) ? block.button?.button[0]?.button_url : block.button?.button?.button_url,
- buttonTwo: Array.isArray(block.button?.button) ? block.button?.button[1]?.button_label : undefined,
- buttonTwoUrl: Array.isArray(block.button?.button) ? block.button?.button[1]?.button_url : block.button?.button?.button_url,
+ button: Array.isArray(block.button?.button) ? block.button?.button.map((btn) => ({
+ text: btn.button_label,
+ url: btn.button_url,
+ })) : [],
});
}
}
diff --git a/projects/demo/src/app/pages/list-page/content-page/content-page.component.html b/projects/demo/src/app/pages/list-page/content-page/content-page.component.html
index 5f5af167..e9fa90f9 100644
--- a/projects/demo/src/app/pages/list-page/content-page/content-page.component.html
+++ b/projects/demo/src/app/pages/list-page/content-page/content-page.component.html
@@ -36,14 +36,10 @@
{{ block.overTitle }}
@if(block.isButton){
-
- {{ block.buttonOne }}
+ @for(button of block.button; track $index){
+
+ {{ button.text }}
- @if(block.buttonTwo){
-
- {{ block.buttonTwo }}
-
-
}
}
diff --git a/projects/demo/src/app/pages/list-page/list-page.component.ts b/projects/demo/src/app/pages/list-page/list-page.component.ts
index edecac71..bd3991da 100644
--- a/projects/demo/src/app/pages/list-page/list-page.component.ts
+++ b/projects/demo/src/app/pages/list-page/list-page.component.ts
@@ -100,7 +100,6 @@ export class ListPageComponent implements OnInit {
this._loadData(collection, typeName, slug);
});
-
}
private _loadData(collection: string, typeName: string, slug: string): void {
@@ -132,8 +131,8 @@ export class ListPageComponent implements OnInit {
imageLink: entryItem.slug ? `/${slug}/${entryItem.slug}` : '',
last_modified: entryItem.last_modified,
date: entryItem.date,
- tags: entryItem.tags?.filter((tag): tag is { id: number; title: string } =>
- tag.id !== undefined && tag.title !== undefined,
+ tags: entryItem.tags?.filter(
+ (tag): tag is { id: number; title: string } => tag.id !== undefined && tag.title !== undefined,
),
});
}
@@ -161,7 +160,6 @@ export class ListPageComponent implements OnInit {
}
private _generateTypeName(collection: string): string {
-
const pascalCaseCollection = collection
.split('-')
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
@@ -180,17 +178,31 @@ export class ListPageComponent implements OnInit {
public transformToCardData(item: ContentData): ContentCardData {
return {
id: item.id,
+ card: {
+ orientation: 'vertical',
+ appearance: 'elevated',
+ variant: 'light',
+ transparent: false,
+ },
+ image: {
+ imageUrl: item.imageUrl ?? '',
+ aspectRatio: '16/9',
+ lightUrl: item.imageUrl ?? '',
+ darkUrl: item.comp_img_dark_mode?.[0]?.url ? `${environment.cmsBaseUrl}${item.comp_img_dark_mode[0].url}` : item.imageUrl ?? '',
+ caption: item.title ?? '',
+ bgColorVariant: 'surface',
+ bgTransparent: false,
+ filledInContainer: false,
+ state: 'no_state',
+ },
+ button: [
+ {
+ text: 'Tovább',
+ url: item.imageLink ?? '',
+ },
+ ],
title: item.title,
description: item.description,
- orientation: 'vertical',
- aspectRatio: '16/9',
- appearance: 'elevated',
- variant: 'light',
- imageCaption: item.title,
- imageURL: item.imageUrl,
- imageUrlLight: item.imageUrl,
- imageUrlDark: item.comp_img_dark_mode?.[0]?.url ? `${environment.cmsBaseUrl}${item.comp_img_dark_mode[0].url}` : item.imageUrl,
- buttonOneUrl: item.imageLink,
last_modified: item.last_modified,
date: item.date,
tags: item.tags,