diff --git a/src/lib/block-types.ts b/src/lib/block-types.ts index 93b75ce..13b274e 100644 --- a/src/lib/block-types.ts +++ b/src/lib/block-types.ts @@ -269,8 +269,8 @@ export interface OrganisationsBlockData { _slug?: string; headline?: string; description?: string; - /** default = Karten-Grid; compact = engere Karten, kleinere Typo, Logo links */ - presentation?: "default" | "compact"; + /** default = Karten-Grid; compact = engere Karten, Logo links; carousel = horizontaler Slider (3 Desktop / 2 Mobile) */ + presentation?: "default" | "compact" | "carousel"; addOrganisationTitle?: string; addOrganisationMarkdown?: string; /** Referenz auf link-Collection (aufgelöst: url, linkName, newTab) */ diff --git a/src/lib/components/Badge.svelte b/src/lib/components/Badge.svelte index 1399bd7..cf1df17 100644 --- a/src/lib/components/Badge.svelte +++ b/src/lib/components/Badge.svelte @@ -17,6 +17,6 @@ } - + {@render children?.()} diff --git a/src/lib/components/blocks/OrganisationsBlock.svelte b/src/lib/components/blocks/OrganisationsBlock.svelte index 9c10ce7..e46b35a 100644 --- a/src/lib/components/blocks/OrganisationsBlock.svelte +++ b/src/lib/components/blocks/OrganisationsBlock.svelte @@ -1,5 +1,7 @@ +{#snippet defaultCard(o: OrganisationEntry, linkUrl: string | undefined, logoField: ReturnType, orgIndex: number)} + +
+ {#if logoField} + + {:else} + {@const fishMaskId = `org-logo-fallback-mask-${orgIndex}`} + + {/if} +
+ {#if o.badge && typeof o.badge === "object" && o.badge.label} +
+ {o.badge.label} +
+ {/if} +
{o.name ?? ""}
+ {#if o.description} +

{o.description}

+ {/if} +
+{/snippet} + +{#snippet ctaCard()} + + {#if block.addOrganisationTitle} +
{block.addOrganisationTitle}
+ {/if} + {#if ctaHtml} +
{@html ctaHtml}
+ {/if} + {#if addOrganisationCtaLink} +

{addOrganisationCtaLink.linkName}

+ {/if} +
+{/snippet} +
{#if block.headline}

{block.headline}

{/if} -
- {#each orgs as org, orgIndex} - {#if typeof org === "object" && org !== null} - {@const o = org as OrganisationEntry} - {@const linkUrl = - typeof o.link === "object" && - o.link !== null && - typeof o.link.url === "string" && - o.link.url.trim() !== "" - ? o.link.url.trim() - : undefined} - {@const logoField = organisationLogoField(o)} - {#if compact} - -
- {#if logoField} - - {:else} - {@const fishMaskId = `org-logo-fallback-mask-c-${orgIndex}`} - - {/if} -
-
-
{o.name ?? ""}
- {#if o.description} -

{o.description}

- {/if} -
-
- {:else} - -
- {#if logoField} - - {:else} - {@const fishMaskId = `org-logo-fallback-mask-${orgIndex}`} - - {/if} -
- {#if o.badge && typeof o.badge === "object" && o.badge.label} -
- {o.badge.label} -
- {/if} -
{o.name ?? ""}
- {#if o.description} -

{o.description}

- {/if} -
- {/if} - {/if} - {/each} - {#if showAddOrganisationCard} - +
+ {#each orgs as org, orgIndex} + {#if typeof org === "object" && org !== null} + {@const o = org as OrganisationEntry} + {@const linkUrl = + typeof o.link === "object" && + o.link !== null && + typeof o.link.url === "string" && + o.link.url.trim() !== "" + ? o.link.url.trim() + : undefined} + {@const logoField = organisationLogoField(o)} +
+ {@render defaultCard(o, linkUrl, logoField, orgIndex)} +
+ {/if} + {/each} +
+ {#if orgs.length > 2} + + + {/if} +
+ {#if showAddOrganisationCard} +
{#if block.addOrganisationTitle} -
- {block.addOrganisationTitle} -
+
{block.addOrganisationTitle}
{/if} {#if ctaHtml} -
- {@html ctaHtml} -
+
{@html ctaHtml}
{/if} {#if addOrganisationCtaLink} -

{addOrganisationCtaLink.linkName} -

+ {/if} - +
{/if} -
+ {:else} +
+ {#each orgs as org, orgIndex} + {#if typeof org === "object" && org !== null} + {@const o = org as OrganisationEntry} + {@const linkUrl = + typeof o.link === "object" && + o.link !== null && + typeof o.link.url === "string" && + o.link.url.trim() !== "" + ? o.link.url.trim() + : undefined} + {@const logoField = organisationLogoField(o)} + {#if compact} + +
+ {#if logoField} + + {:else} + {@const fishMaskId = `org-logo-fallback-mask-c-${orgIndex}`} + + {/if} +
+
+
{o.name ?? ""}
+ {#if o.description} +

{o.description}

+ {/if} +
+
+ {:else} + {@render defaultCard(o, linkUrl, logoField, orgIndex)} + {/if} + {/if} + {/each} + + {#if showAddOrganisationCard} + {@render ctaCard()} + {/if} +
+ {/if}