addInterval = (parent, interval, index) => {
let container = parent.append("g")
.attr("class", "interval");
const startPoint = {
x: scale(interval.startDate),
y: intervalHeight * index
};
const endPoint = {
x: scale(interval.endDate),
y: startPoint.y
};
if (interval.url) {
container = container.append("a")
.attr("href", interval.url)
.attr("target", "_blank");
const intervalWidth = endPoint.x - startPoint.x;
container.append("rect")
.attr("class", "hoverable-area")
.attr("x", startPoint.x)
.attr("y", startPoint.y)
.attr("width", intervalWidth)
.attr("height", intervalHeight);
}
addSubintervals(container, startPoint, endPoint, interval.subintervals);
addText(container, startPoint, endPoint, interval.name);
}