UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

62 lines (61 loc) 1.69 kB
import { trigger, getArea } from "./helpers"; var borderColorMap = { warning: "#FFF8E1", critical: "#FFEBEF", clear: "#E5F5E8" }; var fillColorMap = { warning: "#FFC300", critical: "#F59B9B", clear: "#68C47D" }; var textColorMap = { warning: "#F9A825", critical: "#FF4136", clear: "#00AB44" }; var getNow = function getNow() { return Math.floor(new Date().getTime() / 1000); }; export default (function (chartUI, id) { var overlays = chartUI.chart.getAttribute("overlays"); var _overlays$id = overlays[id], whenTriggered = _overlays$id.whenTriggered, _overlays$id$whenLast = _overlays$id.whenLast, whenLast = _overlays$id$whenLast === void 0 ? getNow() : _overlays$id$whenLast, status = _overlays$id.status; var dygraph = chartUI.getDygraph(); var _dygraph$getArea = dygraph.getArea(), h = _dygraph$getArea.h; var ctx = dygraph.hidden_ctx_; var area = getArea(dygraph, [whenTriggered, whenLast]); if (!area) return trigger(chartUI, id); var from = area.from, width = area.width, to = area.to; trigger(chartUI, id, area); ctx.save(); ctx.beginPath(); ctx.rect(from, 0, width, h - 1); ctx.fillStyle = fillColorMap[status]; ctx.globalAlpha = 0.1; ctx.fill(); var borderWidth = 2; // left border ctx.beginPath(); ctx.moveTo(from, 0); ctx.lineTo(from, h); ctx.globalAlpha = 1; ctx.lineWidth = borderWidth; ctx.setLineDash([4, 4]); ctx.strokeStyle = borderColorMap[status]; ctx.stroke(); // right border ctx.beginPath(); ctx.moveTo(to - borderWidth, 0); ctx.lineTo(to - borderWidth, h); ctx.strokeStyle = textColorMap[status]; ctx.stroke(); ctx.closePath(); ctx.restore(); });