{
let width = 20;
let height = 50;
return html`
<div style="display:flex; overflow: scroll;">
${_.range(1, drawLimit).map((n) => {
let factors = [...allPrimeFactors[n]];
factors.reverse();
return html`
<div style="display: flex; flex-direction: column; justify-content: flex-end;">
${factors.map((f) => {
let color = getColor(f, Math.log2(drawLimit));
let opacity = 1;
if (highlightPrimes && factors.length !== 1) {
let hsl = d3.hsl(color);
hsl.s *= 0.25;
color = d3.color(hsl).toString();
opacity = 0.25;
} else if (selectedPrime && f !== +selectedPrime) {
let hsl = d3.hsl(color);
hsl.s *= 0.25;
color = d3.color(hsl).toString();
opacity = 0.25;
}
return html`<div class="log-bar" style="
transition: opacity 250ms ease-in-out;
height:${height * Math.log2(f)}px;
width:${width}px;
font-size: 12pt;
background-color: ${color};
border: .5px solid white;
opacity: ${opacity};
text-align: center;
color: white;
writing-mode: vertical-lr;
box-sizing: border-box;">
${f}
</div>`;
})}
</div>
`;
})}
</div>
`;
}