public bindEvents()

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();
        });
    }