UNPKG

markmap-view

Version:
50 lines (49 loc) 2.02 kB
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; }