@inject TrafagSalesExporter.Services.IUiTextService UiText @using TrafagSalesExporter.Models @T(TitleDe, TitleEn) @T(DescriptionDe, DescriptionEn) @foreach (var kpi in Kpis) { @T(kpi.LabelDe, kpi.LabelEn) @kpi.Value @T(kpi.DetailDe, kpi.DetailEn) } @T(ChartTitleDe, ChartTitleEn) @foreach (var item in ChartRows) { @item.Label @item.Value } @T("Datenstatus", "Data status") @foreach (var status in StatusRows) { @T(status.LabelDe, status.LabelEn) @status.Value } @T("Bereich", "Area") @T("Wert", "Value") @T("Dimension", "Dimension") @T("Quelle", "Source") @T(context.LabelDe, context.LabelEn) @context.Value @context.Dimension @context.Source @code { [Parameter, EditorRequired] public string TitleDe { get; set; } = string.Empty; [Parameter, EditorRequired] public string TitleEn { get; set; } = string.Empty; [Parameter, EditorRequired] public string DescriptionDe { get; set; } = string.Empty; [Parameter, EditorRequired] public string DescriptionEn { get; set; } = string.Empty; [Parameter, EditorRequired] public string ChartTitleDe { get; set; } = string.Empty; [Parameter, EditorRequired] public string ChartTitleEn { get; set; } = string.Empty; [Parameter, EditorRequired] public IReadOnlyList Kpis { get; set; } = []; [Parameter, EditorRequired] public IReadOnlyList ChartRows { get; set; } = []; [Parameter, EditorRequired] public IReadOnlyList StatusRows { get; set; } = []; [Parameter, EditorRequired] public IReadOnlyList DetailRows { get; set; } = []; private string T(string german, string english) => UiText.Text(german, english); private static string BuildWidth(double percent) => Math.Clamp(percent, 3d, 100d).ToString("0.##", System.Globalization.CultureInfo.InvariantCulture); private static Color ResolveSourceColor(string source) => source.Equals("SAP live", StringComparison.OrdinalIgnoreCase) ? Color.Success : source.Equals("Wartet auf SAP", StringComparison.OrdinalIgnoreCase) ? Color.Warning : Color.Primary; }