// Vector Math const vectorDot = (u, v) => u.map((x, i) => x * v[i]).reduce((x, y) => x + y); const vectorMag = (v) => Math.sqrt(vectorDot(v, v)); // Angle Math const rad2deg = 180 / Math.PI; // Contrast const getContrastingTextColor = (hex) => { const { r, g, b } = d3.color(hex); return vectorDot([r, g, b], [0.3, 0.6, 0.1]) >= 128 ? "#222" : "#ddd"; };