@gravity-ui/graph
Version:
Modern graph editor component
52 lines (51 loc) • 1.49 kB
TypeScript
export type Path2DRenderStyleResult = {
type: "stroke";
} | {
type: "fill";
fillRule?: CanvasFillRule;
} | {
type: "both";
fillRule?: CanvasFillRule;
};
export interface Path2DRenderInstance {
getPath(): Path2D | undefined | null;
style(ctx: CanvasRenderingContext2D): Path2DRenderStyleResult | undefined;
afterRender?(ctx: CanvasRenderingContext2D): void;
}
declare class Path2DGroup {
protected items: Set<Path2DRenderInstance>;
protected path: {
get: () => Path2D;
reset(): void;
clear(): void;
};
protected applyStyles(ctx: any): Path2DRenderStyleResult;
add(item: Path2DRenderInstance): void;
delete(item: any): void;
render(ctx: CanvasRenderingContext2D): void;
}
export declare class BatchPath2DRenderer {
protected onChange: () => void;
constructor(onChange: () => void);
protected indexes: Map<number, Map<string, Path2DGroup>>;
protected itemParams: Map<Path2DRenderInstance, {
zIndex: number;
group: string;
}>;
orderedPaths: {
get: () => any[];
reset(): void;
clear(): void;
};
protected getGroup(zIndex: number, group: string): Path2DGroup;
add(item: Path2DRenderInstance, params: {
zIndex: number;
group: string;
}): void;
update(item: Path2DRenderInstance, params: {
zIndex: number;
group: string;
}): void;
delete(item: Path2DRenderInstance): void;
}
export {};