chart = {
const svg = d3.select(DOM.svg(width, 350 * grids.length + margin.top + margin.bottom))
.style("font", "20px sans-serif")
const block = svg.append("g")
.selectAll("g")
.data(grids)
.enter().append("g")
.classed("block", true)
.attr("transform", (d, i) => `translate(0,${i * 350 + margin.top})`)
block.append("text")
.text(d => d.name)
.classed("label", true)
.attr("x", margin.left)
.attr("y", -6)
const row = block.append("g")
.selectAll("g")
.data(d => d.values)
.enter().append("g")
.classed("row", true)
.attr("transform", (d, i) => `translate(0,${i * gridSize + i})`)
.each(multiple)
return svg.node()
}