UNPKG

@syncfusion/ej2-diagrams

Version:

Feature-rich diagram control to create diagrams like flow charts, organizational charts, mind maps, and BPMN diagrams. Its rich feature set includes built-in shapes, editing, serializing, exporting, printing, overview, data binding, and automatic layouts.

689 lines (688 loc) 17.3 kB
import { PointModel } from '../primitives/point-model'; import { Node } from '../objects/node'; import { Connector, BezierSegment } from '../objects/connector'; import { NodeModel } from '../objects/node-model'; import { ConnectorModel } from '../objects/connector-model'; import { Point } from '../primitives/point'; import { IElement } from '../objects/interface/IElement'; import { IBlazorConnectionChangeEventArgs } from '../objects/interface/IElement'; import { IRotationEventArgs, IDoubleClickEventArgs, IClickEventArgs } from '../objects/interface/IElement'; import { CommandHandler } from './command-manager'; import { Rect } from '../primitives/rect'; import { ObjectTypes, State } from './../enum/enum'; import { SelectorModel } from '../objects/node-model'; import { MouseEventArgs } from './event-handlers'; import { Actions } from './actions'; /** * Defines the interactive tools */ export declare class ToolBase { /** * Initializes the tool * * @param {CommandHandler} command Command that is corresponding to the current action * @param protectChange */ constructor(command: CommandHandler, protectChange?: boolean); /** * Command that is corresponding to the current action */ protected commandHandler: CommandHandler; /** * Sets/Gets whether the interaction is being done */ protected inAction: boolean; /** * Sets/Gets which end connector is dragged */ protected connectorEndPoint: string; /** * Sets/Gets the protect change */ protected isProtectChange: boolean; /** * Sets/Gets the current mouse position */ protected currentPosition: PointModel; /** * Sets/Gets the previous mouse position */ prevPosition: PointModel; /** * Sets/Gets the initial mouse position */ protected startPosition: PointModel; /** * Sets/Gets the current element that is under mouse */ protected currentElement: IElement; /** @private */ blocked: boolean; protected isTooltipVisible: boolean; /** @private */ childTable: {}; /** * Sets/Gets the previous object when mouse down */ protected undoElement: SelectorModel; private checkProperty; protected undoParentElement: SelectorModel; protected undoContainerElement: SelectorModel; protected mouseDownElement: (NodeModel | ConnectorModel); protected startAction(currentElement: IElement): void; /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; checkPropertyValue(): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; protected endAction(): void; /** * @param args * @private */ mouseWheel(args: MouseEventArgs): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; protected updateSize(shape: SelectorModel | NodeModel, startPoint: PointModel, endPoint: PointModel, corner: string, initialBounds: Rect, angle?: number): Rect; protected getPivot(corner: string): PointModel; getShapeType(): string; triggerElementDrawEvent(source: NodeModel | ConnectorModel, state: State, objectType: string, elementType: string, isMouseDownAction: boolean): void; } /** * Helps to select the objects */ export declare class SelectTool extends ToolBase { private action; constructor(commandHandler: CommandHandler, protectChange: boolean, action?: Actions); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs, button?: number): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; } export declare class FixedUserHandleTool extends ToolBase { /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; } /** * Helps to edit the selected connectors */ export declare class ConnectTool extends ToolBase { protected endPoint: string; protected oldConnector: ConnectorModel; protected isConnected: boolean; /** @private */ tempArgs: IBlazorConnectionChangeEventArgs; /** @private */ canCancel: boolean; /** @private */ selectedSegment: BezierSegment; constructor(commandHandler: CommandHandler, endPoint: string); /** * @param args * @private */ mouseDown(args: MouseEventArgs): Promise<void>; /** * @param args * @private */ mouseUp(args: MouseEventArgs): Promise<void>; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; private getTooltipContent; private checkConnect; /** @private */ endAction(): void; } /** * Drags the selected objects */ export declare class MoveTool extends ToolBase { /** * Sets/Gets the previous mouse position */ prevPosition: PointModel; private initialOffset; /** @private */ currentTarget: IElement; private objectType; private portId; private source; private intialValue; private isStartAction; private canCancel; private tempArgs; private canTrigger; constructor(commandHandler: CommandHandler, objType?: ObjectTypes); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; private getPort; /** * @param args * @param isPreventHistory * @param args * @param isPreventHistory * @private */ mouseUp(args: MouseEventArgs, isPreventHistory?: boolean): Promise<void>; private clearDiff; private calculateDiff; private connectorEndPointChangeEvent; private triggerEndPointEvent; private isSelectionHasConnector; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; private getTooltipContent; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; /** @private */ endAction(): void; } /** * Rotates the selected objects */ export declare class RotateTool extends ToolBase { /** @private */ tempArgs: IRotationEventArgs; /** @private */ canCancel: boolean; /** @private */ rotateStart: boolean; constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseUp(args: MouseEventArgs): Promise<void>; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; private getTooltipContent; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; /** @private */ endAction(): void; } /** * Scales the selected objects */ export declare class ResizeTool extends ToolBase { /** * Sets/Gets the previous mouse position */ prevPosition: PointModel; /** @private */ corner: string; /** @private */ initialOffset: PointModel; /** @private */ resizeStart: boolean; /** @private */ startValues: SelectorModel; /** @private */ initialBounds: Rect; private canCancel; private tempArgs; constructor(commandHandler: CommandHandler, corner: string); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @param isPreventHistory * @param args * @param isPreventHistory * @private */ mouseUp(args: MouseEventArgs, isPreventHistory?: boolean): Promise<boolean>; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; private getTooltipContent; private getChanges; /** * Updates the size with delta width and delta height using scaling. */ /** * Aspect ratio used to resize the width or height based on resizing the height or width * * @param deltaWidth * @param deltaHeight * @param corner * @param startPoint * @param endPoint * @param source * @param deltaWidth * @param deltaHeight * @param corner * @param startPoint * @param endPoint * @param source * @param deltaWidth * @param deltaHeight * @param corner * @param startPoint * @param endPoint * @param source * @param deltaWidth * @param deltaHeight * @param corner * @param startPoint * @param endPoint * @param source * @param deltaWidth * @param deltaHeight * @param corner * @param startPoint * @param endPoint * @param source * @param deltaWidth * @param deltaHeight * @param corner * @param startPoint * @param endPoint * @param source */ private scaleObjects; } /** * Draws a node that is defined by the user */ export declare class NodeDrawingTool extends ToolBase { /** @private */ drawingObject: Node | Connector; /** @private */ sourceObject: Node | Connector; constructor(commandHandler: CommandHandler, sourceObject: Node | Connector); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** @private */ endAction(): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; } /** * Draws a connector that is defined by the user */ export declare class ConnectorDrawingTool extends ConnectTool { /** @private */ drawingObject: Node | Connector; /** @private */ sourceObject: Node | Connector; constructor(commandHandler: CommandHandler, endPoint: string, sourceObject: Node | Connector); /** * @param args * @private */ mouseDown(args: MouseEventArgs): Promise<void>; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; private setTarget; /** * @param args * @private */ mouseUp(args: MouseEventArgs): Promise<void>; /** @private */ endAction(): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; } export declare class TextDrawingTool extends ToolBase { /** @private */ drawingNode: Node | Connector; constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** @private */ endAction(): void; } /** * Pans the diagram control on drag */ export declare class ZoomPanTool extends ToolBase { private zooming; constructor(commandHandler: CommandHandler, zoom: boolean); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** @private */ endAction(): void; private getDistance; private updateTouch; } /** * Animate the layout during expand and collapse */ export declare class ExpandTool extends ToolBase { constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; } /** * Opens the annotation hypeLink at mouse up */ export declare class LabelTool extends ToolBase { constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; } /** * Draws a Polygon shape node dynamically using polygon Tool */ export declare class PolygonDrawingTool extends ToolBase { /** @private */ drawingObject: Node | Connector; startPoint: PointModel; constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @param dblClickArgs * @param args * @param dblClickArgs * @private */ mouseUp(args: MouseEventArgs, dblClickArgs?: IDoubleClickEventArgs | IClickEventArgs): void; /** * @param args * @private */ mouseWheel(args: MouseEventArgs): void; /** @private */ endAction(): void; } /** * Draws a PolyLine Connector dynamically using PolyLine Drawing Tool */ export declare class PolyLineDrawingTool extends ToolBase { /** @private */ drawingObject: Node | Connector; constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseWheel(args: MouseEventArgs): void; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** @private */ endAction(): void; /** @private */ canConnect(wrapper: any, object: any, endpoint: string, connectionType: string): boolean; } export declare class LabelDragTool extends ToolBase { private annotationId; constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; } export declare class LabelResizeTool extends ToolBase { private corner; private annotationId; private initialBounds; constructor(commandHandler: CommandHandler, corner: Actions); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; /** * @param args * @private */ resizeObject(args: MouseEventArgs): void; } export declare class LabelRotateTool extends ToolBase { private annotationId; constructor(commandHandler: CommandHandler); /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** * @param args * @private */ mouseLeave(args: MouseEventArgs): void; } /** * EJ2-33302 - Freehand drawing support in diagram control. */ export declare class FreeHandTool extends ToolBase { /** @private */ drawingObject: Node | Connector; startPoint: PointModel; constructor(commandHandler: CommandHandler); /** * mouseMove - Collect the points using current mouse position and convert it into pathData. * @param args * @private */ mouseMove(args: MouseEventArgs): boolean; /** * @param args * @private */ mouseDown(args: MouseEventArgs): void; /** * mouseUp - Remove the drawn object. Reduce and smoothen the collected points and create * a bezier connector using the smoothened points. * @param args * @private */ mouseUp(args: MouseEventArgs): void; /** * Reduce the collected points based on tolerance value. * @param points * @param tolerance * @returns points */ pointReduction(points: PointModel[], tolerance: number): PointModel[]; reduction(points: PointModel[], firstPoint: number, lastPoint: number, tolerance: number, pointIndex: number[]): void; /** * Calculate the perpendicular distance of each point with first and last points * @param point1 * @param point2 * @param point3 * @returns */ perpendicularDistance(point1: Point, point2: Point, point3: Point): number; /** * Smoothen the bezier curve based on the points and smoothValue. * @param points * @param smoothValue * @param drawingObject * @param obj * @returns drawingObject */ private bezierCurveSmoothness; }