UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering

116 lines (115 loc) 4.09 kB
import type { Dom, KeyValue } from '../../common'; import type { PointLike } from '../../geometry'; import type { Cell, Edge, LabelPositionOptions, TerminalData, TerminalType } from '../../model'; import type { CellView } from '../cell'; import type { CellViewHighlightOptions, CellViewMouseDeltaEventArgs, CellViewOptions, CellViewPositionEventArgs } from '../cell/type'; import type { EdgeView } from '.'; export interface EdgeViewOptions extends CellViewOptions { } export interface EdgeViewMouseEventArgs<E> { e: E; edge: Edge; cell: Edge; view: EdgeView; } export interface EdgeViewPositionEventArgs<E> extends EdgeViewMouseEventArgs<E>, CellViewPositionEventArgs { } export interface EdgeViewEventArgs { 'edge:click': EdgeViewPositionEventArgs<Dom.ClickEvent>; 'edge:dblclick': EdgeViewPositionEventArgs<Dom.DoubleClickEvent>; 'edge:contextmenu': EdgeViewPositionEventArgs<Dom.ContextMenuEvent>; 'edge:mousedown': EdgeViewPositionEventArgs<Dom.MouseDownEvent>; 'edge:mousemove': EdgeViewPositionEventArgs<Dom.MouseMoveEvent>; 'edge:mouseup': EdgeViewPositionEventArgs<Dom.MouseUpEvent>; 'edge:mouseover': EdgeViewMouseEventArgs<Dom.MouseOverEvent>; 'edge:mouseout': EdgeViewMouseEventArgs<Dom.MouseOutEvent>; 'edge:mouseenter': EdgeViewMouseEventArgs<Dom.MouseEnterEvent>; 'edge:mouseleave': EdgeViewMouseEventArgs<Dom.MouseLeaveEvent>; 'edge:mousewheel': EdgeViewPositionEventArgs<Dom.EventObject> & CellViewMouseDeltaEventArgs; 'edge:customevent': EdgeViewPositionEventArgs<Dom.MouseDownEvent> & { name: string; }; 'edge:unhandled:mousedown': EdgeViewPositionEventArgs<Dom.MouseDownEvent>; 'edge:connected': { e: Dom.MouseUpEvent; edge: Edge; view: EdgeView; isNew: boolean; type: TerminalType; previousCell?: Cell | null; previousView?: CellView | null; previousPort?: string | null; previousPoint?: PointLike | null; previousMagnet?: Element | null; currentCell?: Cell | null; currentView?: CellView | null; currentPort?: string | null; currentPoint?: PointLike | null; currentMagnet?: Element | null; }; 'edge:highlight': { magnet: Element; view: EdgeView; edge: Edge; cell: Edge; options: CellViewHighlightOptions; }; 'edge:unhighlight': EdgeViewEventArgs['edge:highlight']; 'edge:move': EdgeViewPositionEventArgs<Dom.MouseMoveEvent>; 'edge:moving': EdgeViewPositionEventArgs<Dom.MouseMoveEvent>; 'edge:moved': EdgeViewPositionEventArgs<Dom.MouseUpEvent>; } export type MousemoveEventData = {}; export interface EventDataEdgeDragging { action: 'drag-edge'; moving: boolean; x: number; y: number; } export type EventDataValidateConnectionArgs = [ CellView | null | undefined, // source view Element | null | undefined, // source magnet CellView | null | undefined, // target view Element | null | undefined, TerminalType, EdgeView ]; export interface EventDataArrowheadDragging { action: 'drag-arrowhead'; x: number; y: number; isNewEdge: boolean; terminalType: TerminalType; fallbackAction: 'remove' | 'revert'; initialMagnet: Element | null; initialTerminal: TerminalData; getValidateConnectionArgs: (cellView: CellView, magnet: Element | null) => EventDataValidateConnectionArgs; zIndex?: number | null; pointerEvents?: string | null; /** * Current event target. */ currentTarget?: Element; /** * Current view under pointer. */ currentView?: CellView | null; /** * Current magnet under pointer. */ currentMagnet?: Element | null; closestView?: CellView | null; closestMagnet?: Element | null; marked?: KeyValue<Element[]> | null; options?: KeyValue; } export interface EventDataLabelDragging { action: 'drag-label'; index: number; positionAngle: number; positionArgs?: LabelPositionOptions | null; stopPropagation: true; }