@netdata/charts
Version:
Netdata frontend SDK and chart utilities
68 lines (66 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _helpers = require("./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);
};
var _default = exports["default"] = function _default(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 = (0, _helpers.getArea)(dygraph, [whenTriggered, whenLast]);
if (!area) return (0, _helpers.trigger)(chartUI, id);
var from = area.from,
width = area.width,
to = area.to;
(0, _helpers.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();
};