Skip to content

Re-implement Zoom API functions #1165

@sehilyi

Description

@sehilyi

How to Implement

We need to use d3-zoom, d3-selection, and d3-scale to support programmatically zooming into the given genomic range.

Applying the zoom behaviour to Plot.domOverlay will trigger a track to be navigated (example)

// Apply the zoom behavior to the overlay div
select<HTMLElement, unknown>(plot.domOverlay).call(zoomBehavior);

where Plot is defined as

export interface Plot {
addInteractor(interactor: (plot: Plot) => void): Plot;
domOverlay: HTMLElement;
orientation?: 'horizontal' | 'vertical';
width: number;
height: number;
xDomain: Signal<[number, number]>;
yDomain?: Signal<[number, number]>;
zoomed(xScale: ScaleLinear<number, number>, yScale: ScaleLinear<number, number>): void;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv2Issues related to Gosling v2

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions