refactor(api): extract computation graph project snapshot
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
type Domain =
|
||||
| "INPUT" | "SAH" | "ALLOCATION" | "RULES" | "CHARGEABILITY" | "BUDGET"
|
||||
| "ESTIMATE" | "COMMERCIAL" | "EXPERIENCE" | "EFFORT" | "SPREAD";
|
||||
|
||||
export interface GraphNode {
|
||||
id: string;
|
||||
label: string;
|
||||
value: number | string;
|
||||
unit: string;
|
||||
domain: Domain;
|
||||
description: string;
|
||||
formula?: string;
|
||||
level: number;
|
||||
}
|
||||
|
||||
export interface GraphLink {
|
||||
source: string;
|
||||
target: string;
|
||||
formula: string;
|
||||
weight: number;
|
||||
}
|
||||
|
||||
export function n(
|
||||
id: string,
|
||||
label: string,
|
||||
value: number | string,
|
||||
unit: string,
|
||||
domain: Domain,
|
||||
description: string,
|
||||
level: number,
|
||||
formula?: string,
|
||||
): GraphNode {
|
||||
return { id, label, value, unit, domain, description, level, ...(formula ? { formula } : {}) };
|
||||
}
|
||||
|
||||
export function l(source: string, target: string, formula: string, weight = 1): GraphLink {
|
||||
return { source, target, formula, weight };
|
||||
}
|
||||
|
||||
export function fmtPct(ratio: number): string {
|
||||
return `${(ratio * 100).toFixed(1)}%`;
|
||||
}
|
||||
|
||||
export function fmtNum(value: number, decimals = 1): string {
|
||||
return value.toFixed(decimals);
|
||||
}
|
||||
Reference in New Issue
Block a user