in src/gantt.ts [789:827]
private static createMilestones(
dataView: DataView,
host: IVisualHost): MilestoneData {
let milestonesIndex = -1;
for (const index in dataView.categorical.categories) {
const category = dataView.categorical.categories[index];
if (category.source.roles.Milestones) {
milestonesIndex = +index;
}
}
let milestoneData: MilestoneData = {
dataPoints: []
};
const milestonesCategory = dataView.categorical.categories[milestonesIndex];
let milestones: { value: PrimitiveValue, index: number }[] = [];
if (milestonesCategory && milestonesCategory.values) {
milestonesCategory.values.forEach((value: PrimitiveValue, index: number) => milestones.push({ value, index }));
milestones.forEach((milestone) => {
const milestoneObjects = milestonesCategory.objects && milestonesCategory.objects[milestone.index];
const selectionBuilder: ISelectionIdBuilder = host
.createSelectionIdBuilder()
.withCategory(milestonesCategory, milestone.index);
const milestoneDataPoint: MilestoneDataPoint = {
name: milestone.value as string,
identity: selectionBuilder.createSelectionId(),
shapeType: milestoneObjects && milestoneObjects.milestones && milestoneObjects.milestones.shapeType ?
milestoneObjects.milestones.shapeType as string : MilestoneShapeTypes.Rhombus,
color: milestoneObjects && milestoneObjects.milestones && milestoneObjects.milestones.fill ?
(milestoneObjects.milestones as any).fill.solid.color : Gantt.DefaultValues.TaskColor
};
milestoneData.dataPoints.push(milestoneDataPoint);
});
}
return milestoneData;
}