chart = {
const svg = d3.create("svg").attr("viewBox", [0, 0, width, height]);
var newline = d3
.line()
.defined((d) => !isNaN(d.value))
.x((d) => x(d.date))
.y((d) => y(d.value));
var newdata = data.map((p, index) =>
index === data.length - 1 ? [p] : [p, data[index + 1]]
);
var bounds = d3.extent(data, (d) => d.value);
var interval = bounds[1] - bounds[0];
var gradientColor = (p) => {
return d3.interpolateHslLong(
"#F2695C",
"#022859"
)((p[0].value - bounds[0]) / interval);
};
svg
.selectAll("path")
.data(newdata)
.enter()
.append("path")
.attr("d", (p) => newline(p))
.attr("class", "line")
.attr("stroke", (p) => gradientColor(p));
svg.append("g").call(yAxis);
svg.append("g").call(xAxis);
return svg.node();
}