Files
prowler/ui/lib/compliance/score-utils.ts
2026-01-14 09:05:54 +01:00

56 lines
1.6 KiB
TypeScript

/**
* Score utility functions for ThreatScore visualization.
* Used by threatscore-breakdown-card and threatscore-badge components.
*/
export const SCORE_THRESHOLDS = {
SUCCESS: 80,
WARNING: 40,
} as const;
export const SCORE_COLORS = {
DANGER: "var(--bg-fail-primary)",
WARNING: "var(--bg-warning-primary)",
SUCCESS: "var(--bg-pass-primary)",
NEUTRAL: "var(--bg-neutral-tertiary)",
} as const;
export const SCORE_LEVELS = {
SUCCESS: "SUCCESS",
WARNING: "WARNING",
DANGER: "DANGER",
} as const;
export type ScoreLevel = (typeof SCORE_LEVELS)[keyof typeof SCORE_LEVELS];
export const SCORE_COLOR_VARIANTS = {
SUCCESS: "success",
WARNING: "warning",
DANGER: "danger",
} as const;
export type ScoreColorVariant =
(typeof SCORE_COLOR_VARIANTS)[keyof typeof SCORE_COLOR_VARIANTS];
export function getScoreLevel(score: number): ScoreLevel {
if (score >= SCORE_THRESHOLDS.SUCCESS) return "SUCCESS";
if (score >= SCORE_THRESHOLDS.WARNING) return "WARNING";
return "DANGER";
}
export function getScoreColor(score: number): ScoreColorVariant {
if (score >= SCORE_THRESHOLDS.SUCCESS) return "success";
if (score >= SCORE_THRESHOLDS.WARNING) return "warning";
return "danger";
}
export function getScoreTextClass(score: number): string {
if (score >= SCORE_THRESHOLDS.SUCCESS) return "text-success";
if (score >= SCORE_THRESHOLDS.WARNING) return "text-warning";
return "text-danger";
}
export function getScoreLabel(score: number): string {
if (score >= SCORE_THRESHOLDS.SUCCESS) return "Secure";
if (score >= SCORE_THRESHOLDS.WARNING) return "Moderate Risk";
return "Critical Risk";
}