UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

33 lines (32 loc) 1.46 kB
import { makeGetColor } from "../../../helpers/heatmap"; export default (function (chartUI) { return function (plotter) { if (!chartUI) return; // We need to handle all the series simultaneously. if (plotter.seriesIndex !== 0) return; var dimensionIds = chartUI.chart.getVisibleDimensionIds(); var g = plotter.dygraph; var ctx = plotter.drawingContext; var sets = plotter.allSeriesPoints; var series = g.layout_.setNames; var minWidthSep = Infinity; sets.forEach(function (points) { var widthSep = points[1].canvasx - points[0].canvasx; if (widthSep < minWidthSep) minWidthSep = widthSep; }); var barWidth = Math.floor(minWidthSep); var getColor = makeGetColor(chartUI.chart); series.forEach(function (seriesName, j) { var index = chartUI.chart.getDimensionIndex(seriesName); if (index === -1) return; var height = Math.abs(index === 0 ? g.toDomYCoord(index + 1) - g.toDomYCoord(index) : g.toDomYCoord(index) - g.toDomYCoord(index - 1)); sets[j].forEach(function (p, i) { var value = chartUI.chart.getDimensionValue(dimensionIds[index], i) || 0; ctx.fillStyle = getColor(value); ctx.fillRect(p.canvasx - barWidth / 2, g.toDomYCoord(index) - height / 2, barWidth, height); ctx.strokeStyle = "transparent"; ctx.strokeRect(p.canvasx - barWidth / 2, g.toDomYCoord(index) - height / 2, barWidth, height); }); }); }; });