@netdata/charts
Version:
Netdata frontend SDK and chart utilities
30 lines • 1.14 kB
JavaScript
export var createCanvas = function createCanvas(width, height) {
var backgroundCanvas = document.createElement("canvas");
backgroundCanvas.width = width;
backgroundCanvas.height = height;
return backgroundCanvas;
};
export var copyCanvas = function copyCanvas(sourceCanvas, targetCanvas) {
targetCanvas.width = sourceCanvas.width;
targetCanvas.height = sourceCanvas.height;
var ctx = targetCanvas.getContext("2d");
ctx.clearRect(0, 0, targetCanvas.width, targetCanvas.height);
ctx.drawImage(sourceCanvas, 0, 0);
};
var measureContext;
var getMeasureContext = function getMeasureContext() {
if (typeof document === "undefined") return null;
if (typeof navigator !== "undefined" && /jsdom/i.test(navigator.userAgent)) return null;
try {
if (!measureContext) measureContext = document.createElement("canvas").getContext("2d");
} catch (_unused) {
return null;
}
return measureContext;
};
export var measureTextWidth = function measureTextWidth(text, font) {
var context = getMeasureContext();
if (!context) return null;
if (font) context.font = font;
return context.measureText(text || "").width;
};