popover = (g, value, _d) => {
if (!value) return g.style("display", "none");
g.style("display", null)
.style("pointer-events", "none")
.style("font", "13px sans-serif");
const rect = g
.selectAll("rect")
.data([null])
.join("rect")
.attr("fill", "white")
.attr("stroke", "#333333")
.attr("opacity", 0.95);
const text = g
.selectAll("text")
.data([null])
.join("text")
.call((text) =>
text
.selectAll("tspan")
.data((value + "").split(/\n/))
.join("tspan")
.attr("x", 0)
.attr("y", (d, i) => `${i * 1.1}em`)
.style("text-align", "center")
.style("fill", (_, i) =>
_d.renta == "media" && i == 2
? "#bdbdbd"
: _d.renta == "encima" && i == 2
? "#70894D"
: "#333333"
)
.style("font-weight", (_, i) =>
i == 0 ? "bold" : i == 2 ? "bold" : "regular"
)
.text((d) => d)
);
const { x, y, width: w, height: h } = text.node().getBBox();
if (_d.porcentaje < 10) {
text.attr("transform", `translate(${-w / 2 + 115},${y - 40})`);
} else if (_d.porcentaje > 10) {
text.attr("transform", `translate(${-w / 2 - 110},${y - 40})`);
} else {
text.attr("transform", `translate(${-w / 2 + 10},${y - 40})`);
}
if (_d.pais == "Marruecos" && _d.porcentaje < 10) {
text.attr("transform", `translate(${-w / 2 + 115},${y + 40})`);
}
if (_d.pais == "Marruecos" && _d.porcentaje > 10) {
text.attr("transform", `translate(${-w / 2 - 110},${y + 40})`);
}
if (_d.porcentaje < 10) {
rect
.attr("width", w + 20)
.attr("height", h + 20)
.attr("transform", `translate(${-w / 2 + 105},${y - 60})`);
} else if (_d.porcentaje > 10) {
rect
.attr("width", w + 20)
.attr("height", h + 20)
.attr("transform", `translate(${-w / 2 - 120},${y - 60})`);
} else {
rect
.attr("width", w + 20)
.attr("height", h + 20)
.attr("transform", `translate(${-w / 2},${y - 60})`);
}
if (_d.pais == "Marruecos" && _d.porcentaje < 10) {
rect
.attr("width", w + 20)
.attr("height", h + 20)
.attr("transform", `translate(${-w / 2 + 105},${y + 20})`);
}
if (_d.pais == "Marruecos" && _d.porcentaje > 10) {
rect
.attr("width", w + 20)
.attr("height", h + 20)
.attr("transform", `translate(${-w / 2 - 120},${y + 20})`);
}
}