UNPKG

@gravity-ui/graph

Version:

Modern graph editor component

36 lines (35 loc) 1.76 kB
import { Signal } from "@preact/signals-core"; import { Graph } from "../../../graph"; import { Component } from "../../../lib"; import { TComponentContext, TComponentProps, TComponentState } from "../../../lib/Component"; import { HitBox, HitBoxData } from "../../../services/HitTest"; import { EventedComponent } from "../EventedComponent/EventedComponent"; import { TGraphLayerContext } from "../layers/graphLayer/GraphLayer"; export type GraphComponentContext = TComponentContext & TGraphLayerContext & { graph: Graph; }; export declare class GraphComponent<Props extends TComponentProps = TComponentProps, State extends TComponentState = TComponentState, Context extends GraphComponentContext = GraphComponentContext> extends EventedComponent<Props, State, Context> { hitBox: HitBox; private unsubscribe; constructor(props: Props, parent: Component); protected onDrag({ onDragStart, onDragUpdate, onDrop, isDraggable, }: { onDragStart?: (_event: MouseEvent) => void | boolean; onDragUpdate?: (diff: { prevCoords: [number, number]; currentCoords: [number, number]; diffX: number; diffY: number; }, _event: MouseEvent) => void; onDrop?: (_event: MouseEvent) => void; isDraggable?: (event: MouseEvent) => boolean; }): () => void; protected subscribeSignal<T>(signal: Signal<T>, cb: (v: T) => void): void; protected unmount(): void; setHitBox(minX: number, minY: number, maxX: number, maxY: number, force?: boolean): void; protected willIterate(): void; protected isVisible(): boolean; getHitBox(): [number, number, number, number]; removeHitBox(): void; destroyHitBox(): void; onHitBox(_: HitBoxData): boolean; }