UNPKG

@gravity-ui/graph

Version:

Modern graph editor component

59 lines (58 loc) 2.03 kB
import { Component } from "../lib/Component"; import { Emitter } from "../utils/Emitter"; import { IPoint } from "../utils/types/shapes"; export interface IWithHitTest { hitBox: IHitBox; zIndex: number; setHitBox(minX: number, minY: number, maxX: number, maxY: number, force?: boolean): void; onHitBox(shape: HitBoxData): boolean; removeHitBox(): void; } export type HitBoxData = { minX: number; minY: number; maxX: number; maxY: number; x: number; y: number; }; export interface IHitBox extends HitBoxData { update(minX: number, minY: number, maxX: number, maxY: number): void; destroy(): void; getRect(): [number, number, number, number]; } export declare class HitTest extends Emitter { private tree; protected empty: boolean; load(items: HitBox[]): void; protected scheduledItems: Set<HitBox>; clear(): void; add(item: HitBox, force?: boolean): void; protected scheduleLoad: import("lodash").DebouncedFunc<() => void>; remove(item: HitBox, silent?: boolean): void; protected emitUpdate: import("lodash").DebouncedFunc<() => void>; testPoint(point: IPoint, pixelRatio: number): Component<import("../lib/CoreComponent").CoreComponentProps, import("../lib/Component").TComponentState, import("../lib/CoreComponent").CoreComponentContext>[]; testBox(item: Omit<HitBoxData, "x" | "y">): Component[]; testHitBox(item: HitBoxData): Component[]; } export declare class HitBox implements IHitBox { item: { zIndex: number; } & Component & IWithHitTest; protected hitTest: HitTest; private destroyed; maxX: number; maxY: number; minX: number; minY: number; x: number; y: number; private rect; constructor(item: { zIndex: number; } & Component & IWithHitTest, hitTest: HitTest); update: (minX: number, minY: number, maxX: number, maxY: number, force?: boolean) => void; getRect(): [number, number, number, number]; remove(): void; destroy(): void; }