Files
Portfolio/src/app/shared/case-study/case-study.ts
Antonio Ledebuhr d954361724 content: replace scaffolding with bilingual pages and case studies
Ship the final German and English copy, compose every route from shared page primitives, and cover claims, parity and contact briefing in tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 17:34:04 +02:00

22 lines
883 B
TypeScript

import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
import { type CaseStudyCopy } from '../../core/content/content.contracts';
import { MetricList } from '../metric-list/metric-list';
@Component({
selector: 'app-case-study',
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [MetricList],
templateUrl: './case-study.html',
styleUrl: './case-study.scss',
})
export class CaseStudy {
readonly caseStudy = input.required<CaseStudyCopy>();
readonly situationLabel = input.required<string>();
readonly approachLabel = input.required<string>();
readonly outcomeLabel = input.required<string>();
readonly stackLabel = input.required<string>();
protected readonly headingId = computed(() => `case-heading-${this.caseStudy().id}`);
protected readonly metricsLabelId = computed(() => `case-metrics-${this.caseStudy().id}`);
}