UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

49 lines (48 loc) 1.51 kB
import * as events from '../events'; import { Rect } from '../spatial'; import { CursorFrame } from './cursorframe'; import { CursorPath } from './cursorpath'; export type CursorState = { index: number; hasNext: boolean; hasPrevious: boolean; rect: Rect; frame: CursorFrame; }; export type CursorEventMap = { change: CursorState; }; export declare class Cursor { private path; private locator; private scroller; private topic; private currentIndex; private currentAlpha; private previousIndex; private previousAlpha; private constructor(); static create(path: CursorPath, scrollContainer: HTMLElement): Cursor; getCurrentState(): CursorState; getPreviousState(): CursorState | null; next(): void; previous(): void; goTo(index: number): void; /** Snaps to the closest sequence entry step. */ snap(timeMs: number): void; /** Seeks to the exact position, interpolating as needed. */ seek(timestampMs: number): void; isFullyVisible(): boolean; scrollIntoView(behavior?: ScrollBehavior): void; addEventListener<N extends keyof CursorEventMap>(name: N, listener: events.EventListener<CursorEventMap[N]>, opts?: { emitBootstrapEvent?: boolean; }): number; removeEventListener(...ids: number[]): void; removeAllEventListeners(): void; private getState; private getScrollPoint; private normalize; private getDuration; private getCursorRect; private update; }