UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

43 lines 1.25 kB
import types from "./types"; export default (function (chartUI) { var off = null; var drawOverlay = function drawOverlay(id) { var overlays = chartUI.chart.getAttribute("overlays"); var type = overlays[id].type; var makeOverlay = types[type]; if (!makeOverlay) return; makeOverlay(chartUI, id); }; var drawOverlays = function drawOverlays() { var overlays = chartUI.chart.getAttribute("overlays"); Object.keys(overlays).forEach(drawOverlay); var draftAnnotation = chartUI.chart.getAttribute("draftAnnotation"); if (draftAnnotation) { var makeOverlay = types["annotation"]; if (makeOverlay) makeOverlay(chartUI, "draftAnnotation"); } }; var render = function render() { var dygraph = chartUI.getDygraph(); if (dygraph) dygraph.renderGraph_(false); }; var destroy = function destroy() { if (!off) return; render(); off(); off = null; }; var toggle = function toggle() { var overlays = chartUI.chart.getAttribute("overlays"); if (!Object.keys(overlays).length) return destroy(); if (!off) { off = chartUI.on("underlayCallback", drawOverlays); } else { render(); } }; return { toggle: toggle, destroy: destroy }; });