|
@@ -4,6 +4,9 @@ import {FieldInfo, FIELDS} from './consts';
|
|
|
import {formatTime} from './utils';
|
|
import {formatTime} from './utils';
|
|
|
Chart.register(...registerables);
|
|
Chart.register(...registerables);
|
|
|
|
|
|
|
|
|
|
+// The package's `package.json` file doesn't point to the right place.
|
|
|
|
|
+const Gauge = require('../../node_modules/svg-gauge/dist/gauge.js');
|
|
|
|
|
+
|
|
|
const CANVAS_HEIGHT = 100,
|
|
const CANVAS_HEIGHT = 100,
|
|
|
CANVAS_WIDTH = 200;
|
|
CANVAS_WIDTH = 200;
|
|
|
|
|
|
|
@@ -67,3 +70,48 @@ function createGraph(
|
|
|
};
|
|
};
|
|
|
new Chart(canvas, config);
|
|
new Chart(canvas, config);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+export function createGauges(
|
|
|
|
|
+ data:Values,
|
|
|
|
|
+ parentElement:HTMLElement
|
|
|
|
|
+) {
|
|
|
|
|
+ for(let field of FIELDS) {
|
|
|
|
|
+ let fieldData = data[field.key];
|
|
|
|
|
+ let value = fieldData[fieldData.length - 1].value;
|
|
|
|
|
+
|
|
|
|
|
+ addGauge(
|
|
|
|
|
+ field,
|
|
|
|
|
+ value,
|
|
|
|
|
+ parentElement
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function addGauge(
|
|
|
|
|
+ field:FieldInfo,
|
|
|
|
|
+ value:number,
|
|
|
|
|
+ parentElement:HTMLElement
|
|
|
|
|
+) {
|
|
|
|
|
+ const container = document.createElement('div');
|
|
|
|
|
+ parentElement.appendChild(container);
|
|
|
|
|
+
|
|
|
|
|
+ const rangeIncrement = (field.maxValue - field.minValue) * 0.05;
|
|
|
|
|
+
|
|
|
|
|
+ const config = {
|
|
|
|
|
+ max: field.maxValue >= value ? field.maxValue : value + rangeIncrement,
|
|
|
|
|
+ min: field.minValue <= value ? field.minValue : value - rangeIncrement,
|
|
|
|
|
+ label: v => `${v.toFixed(0)}${field.unit}`,
|
|
|
|
|
+ color: v => {
|
|
|
|
|
+ let buckets = Object.keys(field.gaugeColours)
|
|
|
|
|
+ .sort((a,b) => parseInt(a) - parseInt(b));
|
|
|
|
|
+ for(let bucket of buckets) {
|
|
|
|
|
+ let num = parseInt(bucket);
|
|
|
|
|
+ if(v < num) return field.gaugeColours[num];
|
|
|
|
|
+ }
|
|
|
|
|
+ return '#FF6600';
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ Gauge(container, config).setValue(value);
|
|
|
|
|
+}
|