in src/behavior.ts [75:120]
public bindEvents(options: BehaviorOptions, selectionHandler: ISelectionHandler) {
this.options = options;
let clearCatcher = options.clearCatcher;
options.taskSelection.on("click", (dataPoint: Task) => {
const event: MouseEvent = d3.event as MouseEvent;
selectionHandler.handleSelection(dataPoint, event.ctrlKey);
event.stopPropagation();
});
options.legendSelection.on("click", (d: any) => {
if (!d.selected) {
selectionHandler.handleSelection(d, getEvent().ctrlKey);
(d3.event as MouseEvent).stopPropagation();
let selectedType: string = d.tooltip;
options.taskSelection.each((d: Task) => {
if (d.taskType === selectedType && d.parent && !d.selected) {
selectionHandler.handleSelection(d, getEvent().ctrlKey);
}
});
} else {
selectionHandler.handleClearSelection();
}
});
options.subTasksCollapse.selection.on("click", (d: GroupedTask) => {
if (!_.flatten(d.tasks.map(task => task.children)).length) {
return;
}
(d3.event as MouseEvent).stopPropagation();
options.subTasksCollapse.callback(d);
});
options.allSubtasksCollapse.selection.on("click", () => {
(d3.event as MouseEvent).stopPropagation();
options.allSubtasksCollapse.callback();
});
clearCatcher.on("click", () => {
selectionHandler.handleClearSelection();
});
}