public bind()

in src/interactivityBaseService.ts [136:165]


    public bind(options: IBehaviorOptionsType): void {
        // Bind the data
        if (options.interactivityServiceOptions && options.interactivityServiceOptions.overrideSelectionFromData) {
            // Override selection state from data points if needed
            this.takeSelectionStateFromDataPoints(options.dataPoints);
        }

        if (options.interactivityServiceOptions) {
            if (options.interactivityServiceOptions.isLegend) {
                // Bind to legend data instead of normal data if isLegend
                this.selectableLegendDataPoints = options.dataPoints;
                this.renderSelectionInLegend = () => options.behavior.renderSelection(this.legendHasSelection());
            } else if (options.interactivityServiceOptions.isLabels) {
                // Bind to label data instead of normal data if isLabels
                this.selectableLabelsDataPoints = options.dataPoints;
                this.renderSelectionInLabels = () => options.behavior.renderSelection(this.labelsHasSelection());
            } else {
                this.selectableDataPoints = options.dataPoints;
                this.renderSelectionInVisual = () => options.behavior.renderSelection(this.hasSelection());
            }
        }
        else {
            this.selectableDataPoints = options.dataPoints;
            this.renderSelectionInVisual = () => options.behavior.renderSelection(this.hasSelection());
        }

        options.behavior.bindEvents(options, this);
        // Sync data points with current selection state
        this.syncSelectionState();
    }