in src/timeLine.ts [802:841]
public renderCells(timelineData: ITimelineData, timelineProperties: ITimelineProperties, yPos: number): void {
const dataPoints: ITimelineDataPoint[] = timelineData.timelineDataPoints;
let totalX: number = 0;
const cellsSelection: D3Selection<any, ITimelineDataPoint, any, any> = this.cellsSelection
.selectAll(Timeline.TimelineSelectors.CellRect.selectorName)
.data(dataPoints);
d3SelectAll(`rect.${Timeline.TimelineSelectors.CellRect.className} title`).remove();
cellsSelection
.exit()
.remove();
cellsSelection
.enter()
.append("rect")
.classed(Timeline.TimelineSelectors.CellRect.className, true)
.on("click", null)
.on("touchstart", null)
.on("click", this.handleClick.bind(this))
.on("touchstart", this.handleClick.bind(this))
.merge(cellsSelection)
.attr("x", (dataPoint: ITimelineDataPoint) => {
const position: number = totalX;
totalX += dataPoint.datePeriod.fraction * timelineProperties.cellWidth;
return pixelConverter.toString(position);
})
.attr("y", pixelConverter.toString(yPos))
.attr("height", pixelConverter.toString(timelineProperties.cellHeight))
.attr("width", (dataPoint: ITimelineDataPoint) => {
return pixelConverter.toString(dataPoint.datePeriod.fraction * timelineProperties.cellWidth);
})
.append("title")
.text((dataPoint: ITimelineDataPoint) => timelineData.currentGranularity.generateLabel(dataPoint.datePeriod).title);
this.fillCells(this.settings);
}