Skip to content

Re-implement Zoom API functions #1165

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions