@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering
170 lines (169 loc) • 9.79 kB
TypeScript
import { Dom, type KeyValue } from '../../common';
import { Line, Path, Point, type PointLike, Rectangle } from '../../geometry';
import type { OnEdgeLabelRenderedArgs } from '../../graph/options';
import { Edge, type EdgeSetOptions, type LabelPosition, type LabelPositionObject, type LabelPositionOptions, type TerminalCellData, type TerminalData, type TerminalType } from '../../model/edge';
import { type ConnectionPointManualItem, type NodeAnchorManualItem } from '../../registry';
import { CellView } from '../cell';
import type { MarkupJSONMarkup, MarkupSelectors, MarkupType } from '../markup';
import type { EdgeViewMouseEventArgs, EdgeViewOptions, EdgeViewPositionEventArgs, EventDataArrowheadDragging, EventDataValidateConnectionArgs } from './type';
export * from './type';
export declare class EdgeView<Entity extends Edge = Edge, Options extends EdgeViewOptions = EdgeViewOptions> extends CellView<Entity, Options> {
protected readonly POINT_ROUNDING = 2;
path: Path;
routePoints: Point[];
sourceAnchor: Point;
targetAnchor: Point;
sourcePoint: Point;
targetPoint: Point;
sourceMarkerPoint: Point;
targetMarkerPoint: Point;
sourceView: CellView | null;
targetView: CellView | null;
sourceMagnet: Element | null;
targetMagnet: Element | null;
protected labelContainer: Element | null;
protected labelCache: {
[index: number]: Element;
};
protected labelSelectors: {
[index: number]: MarkupSelectors;
};
protected labelDestroyFn: {
[index: number]: (args: OnEdgeLabelRenderedArgs) => void;
};
static isEdgeView(instance: any): instance is EdgeView;
protected get [Symbol.toStringTag](): string;
protected getContainerClassName(): string;
get sourceBBox(): Rectangle;
get targetBBox(): Rectangle;
isEdgeView(): this is EdgeView;
confirmUpdate(flag: number, options?: any): number;
render(): this;
protected renderMarkup(): void;
protected renderJSONMarkup(markup: MarkupJSONMarkup | MarkupJSONMarkup[]): void;
protected customizeLabels(): void;
protected destroyCustomizeLabels(): void;
protected renderLabels(): this;
onLabelsChange(options?: any): void;
protected shouldRerenderLabels(options?: any): boolean;
protected parseLabelMarkup(markup?: MarkupType): {
fragment: DocumentFragment;
selectors: {};
};
protected parseLabelStringMarkup(labelMarkup: string): {
fragment: DocumentFragment;
selectors: {};
};
protected normalizeLabelMarkup(markup?: {
fragment: DocumentFragment;
selectors: MarkupSelectors;
} | null): {
node: SVGElement;
selectors: MarkupSelectors;
};
protected updateLabels(): void;
protected renderTools(): this;
update(options?: any): this;
removeRedundantLinearVertices(options?: EdgeSetOptions): number;
getTerminalView(type: TerminalType): CellView<import("../..").Cell<import("../..").CellProperties>, import("../cell").CellViewOptions>;
getTerminalAnchor(type: TerminalType): Point;
getTerminalConnectionPoint(type: TerminalType): Point;
getTerminalMagnet(type: TerminalType, options?: {
raw?: boolean;
}): Element;
updateConnection(options?: any): void;
protected findAnchors(vertices: PointLike[]): {
[x: string]: Point;
};
protected findAnchorsOrdered(firstType: TerminalType, firstPoint: PointLike, secondType: TerminalType, secondPoint: PointLike): {
[x: string]: Point;
};
protected getAnchor(def: NodeAnchorManualItem | string | undefined, cellView: CellView, magnet: Element | null, ref: Point | Element | null, terminalType: TerminalType): Point;
protected findRoutePoints(vertices?: PointLike[]): Point[];
protected findConnectionPoints(routePoints: Point[], sourceAnchor: Point, targetAnchor: Point): {
source: Point;
target: Point;
};
protected getConnectionPoint(def: string | ConnectionPointManualItem | undefined, view: CellView, magnet: Element, line: Line, endType: TerminalType): Point;
protected findMarkerPoints(routePoints: Point[], sourcePoint: Point, targetPoint: Point): {
source: Point;
target: Point;
};
protected findPath(routePoints: Point[], sourcePoint: Point, targetPoint: Point): Path;
protected translateConnectionPoints(tx: number, ty: number): void;
updateLabelPositions(): this;
updateTerminalProperties(type: TerminalType): boolean;
updateTerminalMagnet(type: TerminalType): void;
protected getLabelPositionAngle(idx: number): number;
protected getLabelPositionArgs(idx: number): LabelPositionOptions;
protected getDefaultLabelPositionArgs(): LabelPositionOptions;
protected mergeLabelPositionArgs(labelPositionArgs?: LabelPositionOptions, defaultLabelPositionArgs?: LabelPositionOptions): LabelPositionOptions;
getConnection(): Path;
getConnectionPathData(): string;
getConnectionSubdivisions(): import("../../geometry").Segment[][];
getConnectionLength(): number;
getPointAtLength(length: number): any;
getPointAtRatio(ratio: number): any;
getTangentAtLength(length: number): any;
getTangentAtRatio(ratio: number): any;
getClosestPoint(point: PointLike): Point;
getClosestPointLength(point: PointLike): number;
getClosestPointRatio(point: PointLike): number;
getLabelPosition(x: number, y: number, options?: LabelPositionOptions | null): LabelPositionObject;
getLabelPosition(x: number, y: number, angle: number, options?: LabelPositionOptions | null): LabelPositionObject;
protected normalizeLabelPosition(): undefined;
protected normalizeLabelPosition(pos: LabelPosition): LabelPositionObject;
protected getLabelTransformationMatrix(labelPosition: LabelPosition): DOMMatrix;
getVertexIndex(x: number, y: number): number;
protected getEventArgs<E>(e: E): EdgeViewMouseEventArgs<E>;
protected getEventArgs<E>(e: E, x: number, y: number): EdgeViewPositionEventArgs<E>;
protected notifyUnhandledMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void;
notifyMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void;
notifyMouseMove(e: Dom.MouseMoveEvent, x: number, y: number): void;
notifyMouseUp(e: Dom.MouseUpEvent, x: number, y: number): void;
onClick(e: Dom.ClickEvent, x: number, y: number): void;
onDblClick(e: Dom.DoubleClickEvent, x: number, y: number): void;
onContextMenu(e: Dom.ContextMenuEvent, x: number, y: number): void;
onMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void;
onMouseMove(e: Dom.MouseMoveEvent, x: number, y: number): KeyValue<any>;
onMouseUp(e: Dom.MouseUpEvent, x: number, y: number): KeyValue<any>;
onMouseOver(e: Dom.MouseOverEvent): void;
onMouseOut(e: Dom.MouseOutEvent): void;
onMouseEnter(e: Dom.MouseEnterEvent): void;
onMouseLeave(e: Dom.MouseLeaveEvent): void;
onMouseWheel(e: Dom.EventObject, x: number, y: number, delta: number): void;
onCustomEvent(e: Dom.MouseDownEvent, name: string, x: number, y: number): void;
onLabelMouseDown(e: Dom.MouseDownEvent, x: number, y: number): void;
protected startEdgeDragging(e: Dom.MouseDownEvent, x: number, y: number): void;
protected dragEdge(e: Dom.MouseMoveEvent, x: number, y: number): void;
protected stopEdgeDragging(e: Dom.MouseUpEvent, x: number, y: number): void;
prepareArrowheadDragging(type: TerminalType, options: {
x: number;
y: number;
options?: KeyValue;
isNewEdge?: boolean;
fallbackAction?: EventDataArrowheadDragging['fallbackAction'];
}): EventDataArrowheadDragging;
protected createValidateConnectionArgs(type: TerminalType): (cellView: CellView, magnet: Element) => EventDataValidateConnectionArgs;
protected beforeArrowheadDragging(data: EventDataArrowheadDragging): void;
protected afterArrowheadDragging(data: EventDataArrowheadDragging): void;
protected validateConnection(sourceView: CellView | null | undefined, sourceMagnet: Element | null | undefined, targetView: CellView | null | undefined, targetMagnet: Element | null | undefined, terminalType: TerminalType, edgeView?: EdgeView | null | undefined, candidateTerminal?: TerminalCellData | null | undefined): boolean;
protected allowConnectToBlank(edge: Edge): boolean;
protected validateEdge(edge: Edge, type: TerminalType, initialTerminal: TerminalData): boolean;
protected arrowheadDragging(target: Element, x: number, y: number, data: EventDataArrowheadDragging): void;
protected arrowheadDragged(data: EventDataArrowheadDragging, x: number, y: number): void;
protected snapArrowhead(x: number, y: number, data: EventDataArrowheadDragging): void;
protected snapArrowheadEnd(data: EventDataArrowheadDragging): void;
protected finishEmbedding(data: EventDataArrowheadDragging): void;
protected fallbackConnection(data: EventDataArrowheadDragging): void;
protected notifyConnectionEvent(data: EventDataArrowheadDragging, e: Dom.MouseUpEvent): void;
protected highlightAvailableMagnets(data: EventDataArrowheadDragging): void;
protected unhighlightAvailableMagnets(data: EventDataArrowheadDragging): void;
protected startArrowheadDragging(e: Dom.MouseDownEvent, x: number, y: number): void;
protected dragArrowhead(e: Dom.MouseMoveEvent, x: number, y: number): void;
protected stopArrowheadDragging(e: Dom.MouseUpEvent, x: number, y: number): void;
startLabelDragging(e: Dom.MouseDownEvent, _x: number, _y: number): void;
dragLabel(e: Dom.MouseMoveEvent, x: number, y: number): void;
stopLabelDragging(_e: Dom.MouseUpEvent, _x: number, _y: number): void;
}
export declare const EdgeViewToStringTag: string;