markmap-view
Version:
View markmaps in browser
50 lines (49 loc) • 2.02 kB
TypeScript
import type * as d3 from 'd3';
import { Hook, IMarkmapOptions, INode, IPureNode } from 'markmap-common';
import { ID3SVGElement, IMarkmapState, IPadding } from './types';
export declare const globalCSS: string;
/**
* A global hook to refresh all markmaps when called.
*/
export declare const refreshHook: Hook<[]>;
export declare class Markmap {
options: IMarkmapOptions;
state: IMarkmapState;
svg: ID3SVGElement;
styleNode: d3.Selection<HTMLStyleElement, INode, HTMLElement, INode>;
g: d3.Selection<SVGGElement, INode, HTMLElement, INode>;
observer: ResizeObserver;
zoom: d3.ZoomBehavior<SVGElement, INode>;
revokers: (() => void)[];
constructor(svg: string | SVGElement | ID3SVGElement, opts?: Partial<IMarkmapOptions>);
getStyleContent(): string;
updateStyle(): void;
handleZoom: (e: any) => void;
handlePan: (e: WheelEvent) => void;
toggleNode(data: INode, recursive?: boolean): Promise<void>;
handleClick: (e: MouseEvent, d: INode) => void;
private _initializeData;
private _relayout;
setOptions(opts?: Partial<IMarkmapOptions>): void;
setData(data?: IPureNode | null, opts?: Partial<IMarkmapOptions>): Promise<void>;
renderData(originData?: INode): Promise<void>;
transition<T extends d3.BaseType, U, P extends d3.BaseType, Q>(sel: d3.Selection<T, U, P, Q>): d3.Transition<T, U, P, Q>;
/**
* Fit the content to the viewport.
*/
fit(maxScale?: number): Promise<void>;
findElement(node: INode): {
data: INode;
g: SVGGElement;
} | undefined;
/**
* Pan the content to make the provided node visible in the viewport.
*/
ensureView(node: INode, padding: Partial<IPadding> | undefined): Promise<void>;
/**
* Scale content with it pinned at the center of the viewport.
*/
rescale(scale: number): Promise<void>;
destroy(): void;
static create(svg: string | SVGElement | ID3SVGElement, opts?: Partial<IMarkmapOptions>, data?: IPureNode | null): Markmap;
}