in src/visual.ts [1064:1128]
private drawSecondTargets(
targetValues: TargetValue[],
getX: (d: TargetValue) => number,
getY: (d: TargetValue) => number): void {
let selection = this.bulletGraphicsContext
.selectAll("line.target2")
.data(targetValues.filter(x => lodashIsnumber(x.value2)));
let enterSelection = selection.enter();
let targetStyle = {
"stroke": ((d: TargetValue) => d.fill),
"stroke-width": 2
};
let enterSelectionMinus = enterSelection
.append("line")
.merge((<BulletSelection<any>>selection))
.attr(
"x1",
(d: TargetValue) => getX(d) - BulletChart.SecondTargetLineSize
)
.attr(
"y1",
(d: TargetValue) => getY(d) - BulletChart.SecondTargetLineSize
)
.attr(
"x2",
(d: TargetValue) => getX(d) + BulletChart.SecondTargetLineSize
)
.attr(
"y2",
(d: TargetValue) => getY(d) + BulletChart.SecondTargetLineSize
)
.style("stroke", (d: TargetValue) => d.fill)
.style("stroke-width", 2)
.classed("target2", true);
let enterSelectionPlus = enterSelection
.append("line")
.merge(<BulletSelection<any>>selection)
.attr(
"x1",
(d: TargetValue) => getX(d) + BulletChart.SecondTargetLineSize
)
.attr(
"y1",
(d: TargetValue) => getY(d) - BulletChart.SecondTargetLineSize
)
.attr(
"x2",
(d: TargetValue) => getX(d) - BulletChart.SecondTargetLineSize
)
.attr(
"y2",
(d: TargetValue) => getY(d) + BulletChart.SecondTargetLineSize
)
.style("stroke", (d: TargetValue) => d.fill)
.style("stroke-width", 2)
.classed("target2", true);
selection
.exit()
.remove();
}