{
d3.select(tbl)
.selectAll('tbody > tr')
.remove();
const w = 20,
h = 20;
for (const [i, palette] of palettes.entries()) {
var tr = d3
.select(tbl)
.select('tbody')
.append('tr');
var scale = d3[`interpolate${palette}`];
var color = d3.color(scale(v)).formatHex();
var step = 0.05;
var gradient = d3
.range(0, 1 + step / 2, step)
.map(x => scale(x))
.reduce((s, c) => `${s},${c}`, '');
tr.append('td')
.append('span')
.text(palette);
tr.append('td')
.append('div')
.attr(
'style',
`background: linear-gradient(to right${gradient}); width: 100px; height: ${h}px;`
);
tr.append('td')
.append('div')
.attr('style', `background: ${color}; width: ${w}px; height: ${h}px;`);
tr.append('td')
.append('span')
.text(color)
.attr('style', 'font-family:monospace;');
}
}