chart = {
let isCircle = false;
let fillColor = "black";
const sel = d3
.create("svg")
.attr("viewBox", "-10 -10 20 20")
.attr("width", 200)
.on("click", () => {
isCircle = !isCircle;
render();
});
const circle = sel.append("circle").attr("r", 10);
const rect = sel.append("rect").attr("x", -9).attr("y", -9).attr("width", 18).attr("height", 18);
function render() {
circle
.attr("visibility", isCircle ? "visible" : "hidden")
.attr("fill", fillColor);
rect
.attr("visibility", !isCircle ? "visible" : "hidden")
.attr("fill", fillColor);
}
render();
return Object.assign(sel.node(), {
update(value) {
fillColor = value;
render();
}
});
}