aboutsummaryrefslogtreecommitdiff
path: root/src/formats.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/formats.ts')
-rw-r--r--src/formats.ts21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/formats.ts b/src/formats.ts
index 1b5a572..4b432e3 100644
--- a/src/formats.ts
+++ b/src/formats.ts
@@ -3,7 +3,7 @@ import { InvalidReportDocumentError } from "./errors";
export interface Format {
// returns the coverage value as %: Number(90.0), Number(100.0), Number(89.5)
parse_coverage: (file: Document) => number | InvalidReportDocumentError;
- match_color: (coverage: number, stage_1: number, stage_2: number) => string;
+ match_color: (coverage: number, style: GradientStyle) => string;
}
interface FormatList {
@@ -16,18 +16,19 @@ interface FormatObj {
get_format: (format: string) => Format;
}
+export interface GradientStyle {
+ stage_1: number;
+ stage_2: number;
+}
+
// color is a gradient from green (>=stage_1) -> yellow (stage_2) -> red. Stage values should come from metadata.
-const default_color_matches = (
- coverage: number,
- stage_1: number,
- stage_2: number
-) => {
+const default_color_matches = (coverage: number, style: GradientStyle) => {
const gradient =
- coverage >= stage_1
+ coverage >= style.stage_1
? 15
- : coverage >= stage_2
- ? (Math.floor(coverage) - stage_2) * 16 + 15
- : 240 + Math.floor(coverage / (stage_2 / 15));
+ : coverage >= style.stage_2
+ ? (Math.floor(coverage) - style.stage_2) * 16 + 15
+ : 240 + Math.floor(coverage / (style.stage_2 / 15));
return gradient.toString(16) + "0";
};