Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 103x 103x 1133x 103x 1133x 103x 26x 48x 189x 7x 189x | import type { EconomicsResultLineRead } from "@/api/apiStore.gen";
import {
EconomicsResultLineKindEnum,
MetricComparisonDirection,
} from "@/api/apiStore.gen";
import keyFinancialMetricRows from "@/data/economicsKeyFinancialMetrics.json";
export type KeyFinancialMetricRow = {
key: string;
rowKey: string;
label: string;
format: string;
baselineDependent: boolean;
maximumFractionDigits: number;
comparisonDirection: MetricComparisonDirection;
defaultComparisonMetric: boolean;
};
export const KEY_FINANCIAL_METRIC_ROWS =
keyFinancialMetricRows as KeyFinancialMetricRow[];
export const KEY_FINANCIAL_METRIC_ROWS_BY_KEY = new Map(
KEY_FINANCIAL_METRIC_ROWS.map((row) => [row.key, row] as const),
);
export const KEY_FINANCIAL_METRIC_ROWS_BY_ROW_KEY = new Map(
KEY_FINANCIAL_METRIC_ROWS.map((row) => [row.rowKey, row] as const),
);
export const DEPRECIATION_METRIC_ROW_KEYS = new Set([
"metric.annual_depreciation",
"metric.depreciation_tax_shield",
"metric.after_tax_annual_cash_flow",
]);
export function keyFinancialMetricLabelForKey(key: string) {
return KEY_FINANCIAL_METRIC_ROWS_BY_KEY.get(key)?.label;
}
export function maximumFractionDigitsForKeyFinancialMetric(rowKey: string) {
return (
KEY_FINANCIAL_METRIC_ROWS_BY_ROW_KEY.get(rowKey)?.maximumFractionDigits ?? 0
);
}
export function depreciationMetricRows(lines: EconomicsResultLineRead[]) {
return lines.filter((line) => DEPRECIATION_METRIC_ROW_KEYS.has(line.row_key));
}
export function depreciationDetailRows(lines: EconomicsResultLineRead[]) {
return lines.filter(
(line) =>
line.kind === EconomicsResultLineKindEnum.Depreciation &&
line.group === "depreciation_lines",
);
}
|