///
import { ChildProperty } from '@syncfusion/ej2-base';
import { ShapeStyleModel, TextStyleModel, ShadowModel } from '../core/appearance-model';
import { Size } from '../primitives/size';
import { PointModel } from '../primitives/point-model';
import { Shapes, BasicShapes, FlowShapes, UmlActivityShapes, Scale, ImageAlignment, Status, TextAnnotationDirection } from '../enum/enum';
import { IElement } from './interface/IElement';
import { GroupableView } from '../core/containers/container';
import { DiagramElement } from '../core/elements/diagram-element';
import { RubberBandSelectionMode, ThumbsConstraints } from '../enum/enum';
import { Port } from './port';
import { PointPortModel } from './port-model';
import { SelectorConstraints } from '../enum/enum';
import { Annotation } from './annotation';
import { ShapeAnnotationModel, PathAnnotationModel } from './annotation-model';
import { HorizontalAlignment, VerticalAlignment, BpmnShapes, BpmnEvents, BpmnTriggers, BpmnGateways, NodeConstraints } from '../enum/enum';
import { BpmnDataObjects, BpmnTasks, BpmnSubProcessTypes, BpmnLoops, BranchTypes } from '../enum/enum';
import { BpmnBoundary, BpmnActivities, UmlScope } from '../enum/enum';
import { MarginModel } from '../core/appearance-model';
import { UmlActivityShapeModel, MethodArgumentsModel, UmlClassModel, BpmnTextAnnotationModel } from './node-model';
import { BpmnEventModel, BpmnSubEventModel, BpmnAnnotationModel, BpmnActivityModel } from './node-model';
import { BpmnTaskModel, BpmnSubProcessModel, BpmnGatewayModel } from './node-model';
import { ShapeModel, BasicShapeModel, FlowShapeModel, ImageModel, PathModel, BpmnShapeModel, BpmnDataObjectModel } from './node-model';
import { TextModel, NativeModel, HtmlModel, DiagramShapeModel } from './node-model';
import { LayoutModel } from '../layout/layout-base-model';
import { NodeBase } from './node-base';
import { NodeModel, BpmnTransactionSubProcessModel, SwimLaneModel, LaneModel, HeaderModel, PhaseModel, ContainerModel } from '../objects/node-model';
import { Stretch } from '../enum/enum';
import { IconShapeModel } from './icon-model';
import { ChildContainerModel, UmlClassMethodModel, UmlClassAttributeModel, UmlClassifierShapeModel } from './node-model';
import { UmlEnumerationModel, UmlInterfaceModel, UmlEnumerationMemberModel } from './node-model';
import { RowDefinition, ColumnDefinition } from '../core/containers/grid';
import { Orientation, ContainerTypes, ClassifierShape } from '../enum/enum';
import { ConnectorModel } from './connector-model';
import { Diagram } from '../../diagram/diagram';
import { UserHandleModel } from '../interaction/selector-model';
import { LayoutInfo } from '../diagram/layoutinfo';
import { SymbolSizeModel } from './preview-model';
import { NodeFixedUserHandleModel } from './fixed-user-handle-model';
import { NodeFixedUserHandle } from './fixed-user-handle';
/**
* Defines the behavior of default shape
*/
export declare class Shape extends ChildProperty {
/**
* Defines the type of node shape
* * Path - Sets the type of the node as Path
* * Text - Sets the type of the node as Text
* * Image - Sets the type of the node as Image
* * Basic - Sets the type of the node as Basic
* * Flow - Sets the type of the node as Flow
* * Bpmn - Sets the type of the node as Bpmn
* * Native - Sets the type of the node as Native
* * HTML - Sets the type of the node as HTML
* * UMLActivity - Sets the type of the node as UMLActivity
*
* @default 'Basic'
*/
type: Shapes;
}
/**
* Defines the behavior of path shape
*/
export declare class Path extends Shape {
/**
* Defines the type of node shape
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the geometry of a path
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: { type: 'Path', data: 'M540.3643,137.9336L546.7973,159.7016L570.3633,159.7296'+
* 'L550.7723,171.9366L558.9053,194.9966L540.3643,179.4996L521.8223,194.9966L529.9553,171.9366'+
* 'L510.3633,159.7296L533.9313,159.7016L540.3643,137.9336z' }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
data: string;
/**
* getClassName method \
*
* @returns { string } toBounds method .\
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of Native shape
*/
export declare class Native extends Shape {
/**
* Defines the type of node shape.
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the geometry of a native element.
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100,
* shape: { scale: 'Stretch',
* type: 'Native', content: ''+
* '',
* }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
content: string | SVGElement | Function;
/**
* Defines the scale of the native element.
* * None - Sets the stretch type for diagram as None
* * Stretch - Sets the stretch type for diagram as Stretch
* * Meet - Sets the stretch type for diagram as Meet
* * Slice - Sets the stretch type for diagram as Slice
*
* @default 'Stretch'
*/
scale: Stretch;
/**
* Returns the name of class Native
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of html shape
*/
export declare class Html extends Shape {
/**
* Defines the type of node shape.
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the geometry of a html element.
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: { type: 'HTML',
* content: '' }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
content: string | HTMLElement | Function;
/**
* Returns the name of class Html
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of image shape
*/
export declare class Image extends Shape {
/**
* Defines the type of node shape
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the source of the image
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: { type: 'Image', source: 'https://www.w3schools.com/images/w3schools_green.jpg' }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
source: string;
/**
* Allows to stretch the image as you desired (either to maintain proportion or to stretch)
* * None - Scale value will be set as None for the image
* * Meet - Scale value Meet will be set for the image
* * Slice - Scale value Slice will be set for the image
*
* @default 'None'
*/
scale: Scale;
/**
* Defines the alignment of the image within the node boundary.
* * None - Alignment value will be set as none
* * XMinYMin - smallest X value of the view port and smallest Y value of the view port
* * XMidYMin - midpoint X value of the view port and smallest Y value of the view port
* * XMaxYMin - maximum X value of the view port and smallest Y value of the view port
* * XMinYMid - smallest X value of the view port and midpoint Y value of the view port
* * XMidYMid - midpoint X value of the view port and midpoint Y value of the view port
* * XMaxYMid - maximum X value of the view port and midpoint Y value of the view port
* * XMinYMax - smallest X value of the view port and maximum Y value of the view port
* * XMidYMax - midpoint X value of the view port and maximum Y value of the view port
* * XMaxYMax - maximum X value of the view port and maximum Y value of the view port
*
* @default 'None'
*/
align: ImageAlignment;
/**
* Returns the name of class Image
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the text shape
*/
export declare class Text extends Shape {
/**
* Defines the type of node shape
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the content of a text
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: { type: 'Text', content: 'Text Element' }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
content: string;
/**
* Defines the space to be let between the node and its immediate parent
*
* @default 0
*/
margin: MarginModel;
/**
* Returns the name of class Text
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the basic shape
*/
export declare class BasicShape extends Shape {
/**
* Defines the type of node shape
* ```html
*
* ```
* ```typescript
* let shape: BasicShapeModel = { type: 'Basic', shape: 'Rectangle' };
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100, shape: shape
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the type of the basic shape
* * Rectangle - Sets the type of the basic shape as Rectangle
* * Ellipse - Sets the type of the basic shape as Ellipse
* * Hexagon - Sets the type of the basic shape as Hexagon
* * Parallelogram - Sets the type of the basic shape as Parallelogram
* * Triangle - Sets the type of the basic shape as Triangle
* * Plus - Sets the type of the basic shape as Plus
* * Star - Sets the type of the basic shape as Star
* * Pentagon - Sets the type of the basic shape as Pentagon
* * Heptagon - Sets the type of the basic shape as Heptagon
* * Octagon - Sets the type of the basic shape as Octagon
* * Trapezoid - Sets the type of the basic shape as Trapezoid
* * Decagon - Sets the type of the basic shape as Decagon
* * RightTriangle - Sets the type of the basic shape as RightTriangle
* * Cylinder - Sets the type of the basic shape as Cylinder
* * Diamond - Sets the type of the basic shape as Diamond
*
* @default 'Rectangle'
*/
shape: BasicShapes;
/**
* Sets the corner of the node
*
* @default 0
*/
cornerRadius: number;
/**
* Defines the collection of points to draw a polygon
*
* @aspDefaultValueIgnore
* @default undefined
*/
points: PointModel[];
/**
* Returns the name of class BasicShape
*
* @private
*
*/
getClassName(): string;
}
/**
* Defines the behavior of the flow shape
*/
export declare class FlowShape extends Shape {
/**
* Defines the type of node shape
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: { type: 'Flow', shape: 'Terminator' },
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the type of the flow shape
* * Process - Sets the type of the flow shape as Process
* * Decision - Sets the type of the flow shape as Decision
* * Document - Sets the type of the flow shape as Document
* * PreDefinedProcess - Sets the type of the flow shape as PreDefinedProcess
* * Terminator - Sets the type of the flow shape as Terminator
* * PaperTap - Sets the type of the flow shape as PaperTap
* * DirectData - Sets the type of the flow shape as DirectData
* * SequentialData - Sets the type of the flow shape as SequentialData
* * MultiData - Sets the type of the flow shape as MultiData
* * Collate - Sets the type of the flow shape as Collate
* * SummingJunction - Sets the type of the flow shape as SummingJunction
* * Or - Sets the type of the flow shape as Or
* * InternalStorage - Sets the type of the flow shape as InternalStorage
* * Extract - Sets the type of the flow shape as Extract
* * ManualOperation - Sets the type of the flow shape as ManualOperation
* * Merge - Sets the type of the flow shape as Merge
* * OffPageReference - Sets the type of the flow shape as OffPageReference
* * SequentialAccessStorage - Sets the type of the flow shape as SequentialAccessStorage
* * Annotation - Sets the type of the flow shape as Annotation
* * Annotation2 - Sets the type of the flow shape as Annotation2
* * Data - Sets the type of the flow shape as Data
* * Card - Sets the type of the flow shape as Card
* * Delay - Sets the type of the flow shape as Delay
* * Preparation - Sets the type of the flow shape as Preparation
* * Display - Sets the type of the flow shape as Display
* * ManualInput - Sets the type of the flow shape as ManualInput
* * LoopLimit - Sets the type of the flow shape as LoopLimit
* * StoredData - Sets the type of the flow shape as StoredData
*
* @default 'Terminator'
*/
shape: FlowShapes;
/**
* Returns the name of class FlowShape
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the bpmn gateway shape
*/
export declare class BpmnGateway extends ChildProperty {
/**
* Defines the type of the BPMN Gateway
* * None - Sets the type of the gateway as None
* * Exclusive - Sets the type of the gateway as Exclusive
* * Inclusive - Sets the type of the gateway as Inclusive
* * Complex - Sets the type of the gateway as Complex
* * EventBased - Sets the type of the gateway as EventBased
* * ExclusiveEventBased - Sets the type of the gateway as ExclusiveEventBased
* * ParallelEventBased - Sets the type of the gateway as ParallelEventBased
*
* @default 'None'
*/
type: BpmnGateways;
/**
* Returns the name of class BpmnGateway
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the bpmn data object
*/
export declare class BpmnDataObject extends ChildProperty {
/**
* Defines the type of the BPMN data object
* * None - Sets the type of the data object as None
* * Input - Sets the type of the data object as Input
* * Output - Sets the type of the data object as Output
*
* @default 'None'
*/
type: BpmnDataObjects;
/**
* Sets whether the data object is a collection or not
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'DataObject',
* dataObject: { collection: false, type: 'Input' }
* } as BpmnShapeModel,
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default false
*/
collection: boolean;
/**
* Returns the name of class BpmnDataObject
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the bpmn task shape
*/
export declare class BpmnTask extends ChildProperty {
/**
* Defines the type of the task
* * None - Sets the type of the Bpmn Tasks as None
* * Service - Sets the type of the Bpmn Tasks as Service
* * Receive - Sets the type of the Bpmn Tasks as Receive
* * Send - Sets the type of the Bpmn Tasks as Send
* * InstantiatingReceive - Sets the type of the Bpmn Tasks as InstantiatingReceive
* * Manual - Sets the type of the Bpmn Tasks as Manual
* * BusinessRule - Sets the type of the Bpmn Tasks as BusinessRule
* * User - Sets the type of the Bpmn Tasks as User
* * Script - Sets the type of the Bpmn Tasks as Script
*
* @default 'None'
*/
type: BpmnTasks;
/**
* Defines the type of the BPMN loops
* * None - Sets the type of the Bpmn loop as None
* * Standard - Sets the type of the Bpmn loop as Standard
* * ParallelMultiInstance - Sets the type of the Bpmn loop as ParallelMultiInstance
* * SequenceMultiInstance - Sets the type of the Bpmn loop as SequenceMultiInstance
*
* @default 'None'
*/
loop: BpmnLoops;
/**
* Sets whether the task is global or not
*
* @default false
*/
call: boolean;
/**
* Sets whether the task is triggered as a compensation of another specific activity
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Activity', activity: {
* activity: 'Task',
* task: { call: true, compensation: false, type: 'Service', loop: 'ParallelMultiInstance' }
* }} as BpmnShapeModel,
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default false
*/
compensation: boolean;
}
/**
* Defines the behavior of the bpmn Event shape
*/
export declare class BpmnEvent extends ChildProperty {
/**
* Sets the type of the BPMN Event
* * Start - Sets the type of the Bpmn Event as Start
* * Intermediate - Sets the type of the Bpmn Event as Intermediate
* * End - Sets the type of the Bpmn Event as End
* * NonInterruptingStart - Sets the type of the Bpmn Event as NonInterruptingStart
* * NonInterruptingIntermediate - Sets the type of the Bpmn Event as NonInterruptingIntermediate
* * ThrowingIntermediate - Sets the type of the Bpmn Event as ThrowingIntermediate
*
* @default 'Start'
*/
/**
*
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Event',
* event: { event: 'Start', trigger: 'None' } } as BpmnShapeModel,
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'Start'
*/
event: BpmnEvents;
/**
* Defines the type of the trigger
* * None - Sets the type of the trigger as None
* * Message - Sets the type of the trigger as Message
* * Escalation - Sets the type of the trigger as Escalation
* * Link - Sets the type of the trigger as Link
* * Error - Sets the type of the trigger as Error
* * Compensation - Sets the type of the trigger as Compensation
* * Signal - Sets the type of the trigger as Signal
* * Multiple - Sets the type of the trigger as Multiple
* * Parallel - Sets the type of the trigger as Parallel
* * Cancel - Sets the type of the trigger as Cancel
* * Conditional - Sets the type of the trigger as Conditional
* * Terminate - Sets the type of the trigger as Terminate
*
* @default 'None'
*/
trigger: BpmnTriggers;
/**
* Returns the name of class BpmnEvent
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the bpmn sub event
*/
export declare class BpmnSubEvent extends ChildProperty {
/**
* Defines the type of the trigger
* * None - Sets the type of the trigger as None
* * Message - Sets the type of the trigger as Message
* * Escalation - Sets the type of the trigger as Escalation
* * Link - Sets the type of the trigger as Link
* * Error - Sets the type of the trigger as Error
* * Compensation - Sets the type of the trigger as Compensation
* * Signal - Sets the type of the trigger as Signal
* * Multiple - Sets the type of the trigger as Multiple
* * Parallel - Sets the type of the trigger as Parallel
* * Cancel - Sets the type of the trigger as Cancel
* * Conditional - Sets the type of the trigger as Conditional
* * Terminate - Sets the type of the trigger as Terminate
*
* @default 'None'
*/
trigger: BpmnTriggers;
/**
* Sets the type of the BPMN Event
* * Start - Sets the type of the Bpmn Event as Start
* * Intermediate - Sets the type of the Bpmn Event as Intermediate
* * End - Sets the type of the Bpmn Event as End
* * NonInterruptingStart - Sets the type of the Bpmn Event as NonInterruptingStart
* * NonInterruptingIntermediate - Sets the type of the Bpmn Event as NonInterruptingIntermediate
* * ThrowingIntermediate - Sets the type of the Bpmn Event as ThrowingIntermediate
*
* @default 'Start'
*/
event: BpmnEvents;
/**
* Sets the id of the BPMN sub event
*
* @default ''
*/
id: string;
/**
* Defines the position of the sub event
*
* @default new Point(0.5,0.5)
*/
offset: PointModel;
/**
* Defines the collection of textual annotations of the sub events
*
* @aspDefaultValueIgnore
* @default undefined
*/
annotations: ShapeAnnotationModel[];
/**
* Defines the collection of connection points of the sub events
*
* @aspDefaultValueIgnore
* @default undefined
*/
ports: PointPortModel[];
/**
* Sets the width of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
width: number;
/**
* Sets the height of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
height: number;
/**
* Defines the space to be left between the node and its immediate parent
*
* @default 0
*/
margin: MarginModel;
/**
* Sets how to horizontally align a node with respect to its immediate parent
* * Stretch - Stretches the diagram element throughout its immediate parent
* * Left - Aligns the diagram element at the left of its immediate parent
* * Right - Aligns the diagram element at the right of its immediate parent
* * Center - Aligns the diagram element at the center of its immediate parent
* * Auto - Aligns the diagram element based on the characteristics of its immediate parent
*
* @default 'Center'
*/
horizontalAlignment: HorizontalAlignment;
/**
* Sets how to vertically align a node with respect to its immediate parent
* * Stretch - Stretches the diagram element throughout its immediate parent
* * Top - Aligns the diagram element at the top of its immediate parent
* * Bottom - Aligns the diagram element at the bottom of its immediate parent
* * Center - Aligns the diagram element at the center of its immediate parent
* * Auto - Aligns the diagram element based on the characteristics of its immediate parent
*
* @default 'Center'
*/
verticalAlignment: VerticalAlignment;
/**
* Sets the visibility of the sub event
*
* @default true
*/
visible: boolean;
/**
* Returns the name of class BpmnSubEvent
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the BpmnTransactionSubProcess
*/
export declare class BpmnTransactionSubProcess extends ChildProperty {
/**
* Defines the size and position of the success port
*/
success: BpmnSubEventModel;
/**
* Defines the size and position of the failure port
*/
failure: BpmnSubEventModel;
/**
* Defines the size and position of the cancel port
*/
cancel: BpmnSubEventModel;
}
/**
* Defines the behavior of the BPMNSubProcess
*/
export declare class BpmnSubProcess extends ChildProperty {
/**
* Defines the type of the sub process
* * None - Sets the type of the Sub process as None
* * Transaction - Sets the type of the Sub process as Transaction
* * Event - Sets the type of the Sub process as Event
*
* @default 'None'
*/
type: BpmnSubProcessTypes;
/**
* Defines whether the sub process is without any prescribed order or not
*
* @default false
*/
adhoc: boolean;
/**
* Defines the boundary type of the BPMN process
* * Default - Sets the type of the boundary as Default
* * Call - Sets the type of the boundary as Call
* * Event - Sets the type of the boundary as Event
*
* @default 'Default'
*/
/**
*
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Activity', activity: {
* activity: 'SubProcess',
* subProcess: { adhoc: false, boundary: 'Default', collapsed: true }
* },
* }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*/
boundary: BpmnBoundary;
/**
* Defines the whether the task is triggered as a compensation of another task
*
* @default false
*/
compensation: boolean;
/**
* Defines the type of the BPMNLoop
* * None - Sets the type of the Bpmn loop as None
* * Standard - Sets the type of the Bpmn loop as Standard
* * ParallelMultiInstance - Sets the type of the Bpmn loop as ParallelMultiInstance
* * SequenceMultiInstance - Sets the type of the Bpmn loop as SequenceMultiInstance
*
* @default 'None'
*/
loop: BpmnLoops;
/**
* Defines the whether the shape is collapsed or not
*
* @default true
*/
collapsed: boolean;
/**
* Defines the collection of events of the BPMN sub event
*
* @default 'undefined'
*/
/**
* ```html
*
* ```
* ```typescript
* let node1: NodeModel = {
* id: 'node1', width: 190, height: 190, offsetX: 300, offsetY: 200,
* shape: {
* type: 'Bpmn', shape: 'Activity', activity: {
* activity: 'SubProcess',
* subProcess: {
* type: 'Event', loop: 'ParallelMultiInstance',
* compensation: true, adhoc: false, boundary: 'Event', collapsed: true,
* events: [{
* height: 20, width: 20, offset: { x: 0, y: 0 }, margin: { left: 10, top: 10 },
* horizontalAlignment: 'Left',
* verticalAlignment: 'Top',
* annotations: [{
* id: 'label3', margin: { bottom: 10 },
* horizontalAlignment: 'Center',
* verticalAlignment: 'Top',
* content: 'Event', offset: { x: 0.5, y: 1 },
* style: {
* color: 'black', fontFamily: 'Fantasy', fontSize: 8
* }
* }],
* event: 'Intermediate', trigger: 'Error'
* }]
* }
* }
* }
* };
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
*/
events: BpmnSubEventModel[];
/**
* Defines the transaction sub process
*/
transaction: BpmnTransactionSubProcessModel;
/**
* Defines the transaction sub process
*
* @default []
*/
processes: string[];
}
/**
* Defines the behavior of the bpmn activity shape
*/
export declare class BpmnActivity extends ChildProperty {
/**
* Defines the type of the activity
* * None - Sets the type of the Bpmn Activity as None
* * Task - Sets the type of the Bpmn Activity as Task
* * SubProcess - Sets the type of the Bpmn Activity as SubProcess
*
* @default 'Task'
*/
activity: BpmnActivities;
/**
* Defines the BPMN task
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Activity', activity: {
* activity: 'Task', task: {
* type: 'Service'
* }
* }
* },
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'new BPMNTask()'
*/
task: BpmnTaskModel;
/**
* Defines the type of the SubProcesses
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Activity', activity: {
* activity: 'SubProcess',
* subProcess: { collapsed: true } as BpmnSubProcessModel
* }
* },
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'None'
*/
subProcess: BpmnSubProcessModel;
/**
* Returns the name of class BpmnActivity
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the bpmn annotation
*/
export declare class BpmnAnnotation extends ChildProperty {
constructor(parent: any, propName: string, defaultValue: Object, isArray?: boolean);
/**
* Sets the text to annotate the bpmn shape
* @default ''
*/
text: string;
/**
* Sets the id of the BPMN sub event
* @default ''
*/
id: string;
/**
* Sets the angle between the bpmn shape and the annotation
* @aspDefaultValueIgnore
* @default undefined
*/
angle: number;
/**
* Sets the height of the text
* @aspDefaultValueIgnore
* @default undefined
*/
height: number;
/**
* Sets the width of the text
* @aspDefaultValueIgnore
* @default undefined
*/
width: number;
/**
* Sets the distance between the bpmn shape and the annotation
* @aspDefaultValueIgnore
* @default undefined
*/
length: number;
/** @private */
nodeId: string;
/**
* @private
* Returns the name of class BpmnAnnotation
*/
getClassName(): string;
}
export declare class BpmnTextAnnotation extends ChildProperty {
/**
* Sets the parent node of bpmn text annotation
*
* @aspDefaultValueIgnore
* @default ''
*/
textAnnotationTarget: string;
/**
* To set the direction in which the text annotation path to be rendered
*
* @aspDefaultValueIgnore
* @default Auto
*/
textAnnotationDirection: TextAnnotationDirection;
}
/**
* Defines the behavior of the bpmn shape
*/
export declare class BpmnShape extends Shape {
/**
* Defines the type of node shape
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the type of the BPMN shape
* * Event - Sets the type of the Bpmn Shape as Event
* * Gateway - Sets the type of the Bpmn Shape as Gateway
* * Message - Sets the type of the Bpmn Shape as Message
* * DataObject - Sets the type of the Bpmn Shape as DataObject
* * DataSource - Sets the type of the Bpmn Shape as DataSource
* * Activity - Sets the type of the Bpmn Shape as Activity
* * Group - Sets the type of the Bpmn Shape as Group
* * TextAnnotation - Represents the shape as Text Annotation
*
* @default 'Event'
*/
/**
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Gateway',
* gateway: { type: 'EventBased' } as BpmnGatewayModel
* } as BpmnShapeModel,
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*/
shape: BpmnShapes;
/**
* Defines the type of the BPMN Event shape
*
* @default 'None'
*/
event: BpmnEventModel;
/**
* Defines the type of the BPMN Gateway shape
*
* @default 'None'
*/
gateway: BpmnGatewayModel;
/**
* Defines the type of the BPMN DataObject shape
*
* @default 'None'
*/
dataObject: BpmnDataObjectModel;
/**
* Defines the type of the BPMN Activity shape
*
* @default 'None'
*/
activity: BpmnActivityModel;
/**
* Defines the text of the bpmn annotation
* @default 'None'
*/
annotation: BpmnAnnotationModel;
/**
* Defines the text of the bpmn annotation collection
* @default 'None'
*/
annotations: BpmnAnnotationModel[];
/**
* Defines the type of the BPMN Text annotation shape
*
* @default 'None'
*/
textAnnotation: BpmnTextAnnotationModel;
/**
* Returns the name of class BpmnShape
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the UMLActivity shape
*/
export declare class UmlActivityShape extends Shape {
/**
* Defines the type of node shape
* ```html
*
* ```
* ```typescript
* let shape: UmlActivityShapeModel = { type: 'UMLActivity', shape: 'Action' };
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100, shape: shape
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the type of the UMLActivity shape
* * Action - Sets the type of the UMLActivity Shape as Action
* * Decision - Sets the type of the UMLActivity Shape as Decision
* * MergeNode - Sets the type of the UMLActivity Shape as MergeNode
* * InitialNode - Sets the type of the UMLActivity Shape as InitialNode
* * FinalNode - Sets the type of the UMLActivity Shape as FinalNode
* * ForkNode - Sets the type of the UMLActivity Shape as ForkNode
* * JoinNode - Sets the type of the UMLActivity Shape as JoinNode
* * TimeEvent - Sets the type of the UMLActivity Shape as TimeEvent
* * AcceptingEvent - Sets the type of the UMLActivity Shape as AcceptingEvent
* * SendSignal - Sets the type of the UMLActivity Shape as SendSignal
* * ReceiveSignal - Sets the type of the UMLActivity Shape as ReceiveSignal
* * StructuredNode - Sets the type of the UMLActivity Shape as StructuredNode
* * Note - Sets the type of the UMLActivity Shape as Note
*
* @default 'Action'
* @IgnoreSingular
*/
shape: UmlActivityShapes;
/**
* Returns the name of class UmlActivityShape
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml class method
*/
export declare class MethodArguments extends ChildProperty {
/**
* Defines the name of the attributes
*
* @default ''
* @IgnoreSingular
*/
name: string;
/**
* Defines the type of the attributes
*
* @default ''
* @IgnoreSingular
*/
type: string;
/**
* Sets the shape style of the node
*
* @default new ShapeStyle()
* @aspType object
*/
style: ShapeStyleModel | TextStyleModel;
/**
* Returns the name of class MethodArguments
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml class attributes
*/
export declare class UmlClassAttribute extends MethodArguments {
/**
* Defines the type of the attributes
*
* @default 'Public'
* @IgnoreSingular
*/
scope: UmlScope;
/**
* Defines the separator of the attributes
*
* @default false
* @IgnoreSingular
*/
isSeparator: boolean;
/**
* Specify the style attributes such as strokeWidth, strokeColor, and fill for the separator.
*
* @default new ShapeStyle()
* @aspType object
*/
separatorStyle: ShapeStyleModel;
/**
* Returns the name of class UmlClassAttribute
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml class method
*/
export declare class UmlClassMethod extends UmlClassAttribute {
/**
* Defines the type of the arguments
*
* @default ''
* @IgnoreSingular
*/
parameters: MethodArgumentsModel[];
/**
* Returns the name of class UmlClassMethod
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml class shapes
*/
export declare class UmlClass extends ChildProperty {
/**
* Defines the name of the attributes
*
* @default ''
* @IgnoreSingular
*/
name: string;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
attributes: UmlClassAttributeModel[];
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
methods: UmlClassMethodModel[];
/**
* Sets the shape style of the node
*
* @default new ShapeStyle()
* @aspType object
*/
style: TextStyleModel;
/**
* Returns the name of class UmlClass
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml interface shapes
*/
export declare class UmlInterface extends UmlClass {
/**
* Defines the separator of the attributes
*
* @default false
* @IgnoreSingular
*/
isSeparator: boolean;
/**
* Specify the style attributes such as strokeWidth, strokeColor, and fill for the separator.
*
* @default new ShapeStyle()
* @aspType object
*/
separatorStyle: ShapeStyleModel;
/**
* Returns the name of class UmlInterface
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml interface shapes
*/
export declare class UmlEnumerationMember extends ChildProperty {
/**
* Defines the value of the member
*
* @default ''
* @IgnoreSingular
*/
name: string;
/**
* Defines the value of the member
*
* @default ''
* @IgnoreSingular
*/
value: string;
/**
* Defines the separator of the attributes
*
* @default false
* @IgnoreSingular
*/
isSeparator: boolean;
/**
* Specify the style attributes such as strokeWidth, strokeColor, and fill for the separator.
*
* @default new ShapeStyle()
* @aspType object
*/
separatorStyle: ShapeStyleModel;
/**
* Sets the shape style of the node
*
* @default new ShapeStyle()
* @aspType object
*/
style: ShapeStyleModel | TextStyleModel;
/**
* Returns the name of class UmlEnumerationMember
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the uml interface shapes
*/
export declare class UmlEnumeration extends ChildProperty {
/**
* Defines the name of the attributes
*
* @default ''
* @IgnoreSingular
*/
name: string;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
members: UmlEnumerationMemberModel[];
/**
* Sets the shape style of the node
*
* @default new ShapeStyle()
* @aspType object
*/
style: ShapeStyleModel | TextStyleModel;
/**
* Returns the name of class UmlEnumeration
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the UMLActivity shape
*/
export declare class UmlClassifierShape extends Shape {
/**
* Defines the type of node shape
* ```html
*
* ```
* ```typescript
* let shape: UmlActivityShapeModel = { type: 'UMLActivity', shape: 'Action' };
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100, shape: shape
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
classShape: UmlClassModel;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
interfaceShape: UmlInterfaceModel;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
enumerationShape: UmlEnumerationModel;
/**
* Defines the type of classifier
*
* @default 'Class'
* @IgnoreSingular
*/
classifier: ClassifierShape;
/**
* Returns the name of class UmlClassifierShape
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of the UMLActivity shape
*/
export declare class DiagramShape extends ChildProperty {
/**
* Defines the type of node shape
*
*/
type: Shapes;
/**
* Defines the type of the basic shape
*
*/
basicShape: BasicShapes;
/**
* Defines the type of the flow shape
*/
flowShape: FlowShapes;
/**
* Defines the type of the BPMN shape
* * Event - Sets the type of the Bpmn Shape as Event
* * Gateway - Sets the type of the Bpmn Shape as Gateway
* * Message - Sets the type of the Bpmn Shape as Message
* * DataObject - Sets the type of the Bpmn Shape as DataObject
* * DataSource - Sets the type of the Bpmn Shape as DataSource
* * Activity - Sets the type of the Bpmn Shape as Activity
* * Group - Sets the type of the Bpmn Shape as Group
* * TextAnnotation - Represents the shape as Text Annotation
*
* @default 'Event'
*/
/**
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,
* shape: {
* type: 'Bpmn', shape: 'Gateway',
* gateway: { type: 'EventBased' } as BpmnGatewayModel
* } as BpmnShapeModel,
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes : nodes,
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default 'Event'
*/
bpmnShape: BpmnShapes;
/**
* Defines the type of the UMLActivity shape
* * Action - Sets the type of the UMLActivity Shape as Action
* * Decision - Sets the type of the UMLActivity Shape as Decision
* * MergeNode - Sets the type of the UMLActivity Shape as MergeNode
* * InitialNode - Sets the type of the UMLActivity Shape as InitialNode
* * FinalNode - Sets the type of the UMLActivity Shape as FinalNode
* * ForkNode - Sets the type of the UMLActivity Shape as ForkNode
* * JoinNode - Sets the type of the UMLActivity Shape as JoinNode
* * TimeEvent - Sets the type of the UMLActivity Shape as TimeEvent
* * AcceptingEvent - Sets the type of the UMLActivity Shape as AcceptingEvent
* * SendSignal - Sets the type of the UMLActivity Shape as SendSignal
* * ReceiveSignal - Sets the type of the UMLActivity Shape as ReceiveSignal
* * StructuredNode - Sets the type of the UMLActivity Shape as StructuredNode
* * Note - Sets the type of the UMLActivity Shape as Note
*
* @default 'Action'
* @IgnoreSingular
*/
umlActivityShape: UmlActivityShapes;
/**
* Defines the geometry of a path
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: { type: 'Path', data: 'M540.3643,137.9336L546.7973,159.7016L570.3633,159.7296'+
* 'L550.7723,171.9366L558.9053,194.9966L540.3643,179.4996L521.8223,194.9966L529.9553,171.9366'+
* 'L510.3633,159.7296L533.9313,159.7016L540.3643,137.9336z' }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
data: string;
/**
* Defines the geometry of a native element.
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100,
* shape: { scale: 'Stretch',
* type: 'Native', content: ''+
* '',
* }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
content: SVGElement | HTMLElement;
/**
* Defines the text of the text element
*/
textContent: string;
/**
* Defines the scale of the native element.
* * None - Sets the stretch type for diagram as None
* * Stretch - Sets the stretch type for diagram as Stretch
* * Meet - Sets the stretch type for diagram as Meet
* * Slice - Sets the stretch type for diagram as Slice
*
* @default 'Stretch'
*/
scale: Stretch;
/**
* Defines the source of the image
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: { type: 'Image', source: 'https://www.w3schools.com/images/w3schools_green.jpg' }
* }];
* let diagram: Diagram = new Diagram({
* ...
* nodes: nodes
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default ''
*/
source: string;
/**
* Defines the alignment of the image within the node boundary.
* * None - Alignment value will be set as none
* * XMinYMin - smallest X value of the view port and smallest Y value of the view port
* * XMidYMin - midpoint X value of the view port and smallest Y value of the view port
* * XMaxYMin - maximum X value of the view port and smallest Y value of the view port
* * XMinYMid - smallest X value of the view port and midpoint Y value of the view port
* * XMidYMid - midpoint X value of the view port and midpoint Y value of the view port
* * XMaxYMid - maximum X value of the view port and midpoint Y value of the view port
* * XMinYMax - smallest X value of the view port and maximum Y value of the view port
* * XMidYMax - midpoint X value of the view port and maximum Y value of the view port
* * XMaxYMax - maximum X value of the view port and maximum Y value of the view port
*
* @default 'None'
*/
align: ImageAlignment;
/**
* Defines the space to be let between the node and its immediate parent
*
* @default 0
*/
margin: MarginModel;
/**
* Sets the corner of the node
*
* @default 0
*/
cornerRadius: number;
/**
* Defines the collection of points to draw a polygon
*
* @aspDefaultValueIgnore
* @default undefined
*/
points: PointModel[];
/**
* Defines the type of the BPMN DataObject shape
*
* @default 'None'
*/
dataObject: BpmnDataObjectModel;
/**
* Defines the type of the BPMN Event shape
*
* @default 'None'
*/
event: BpmnEventModel;
/**
* Defines the type of the BPMN Gateway shape
*
* @default 'None'
*/
gateway: BpmnGatewayModel;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
annotations: BpmnAnnotationModel[];
/**
* Defines the type of the BPMN Activity shape
*
* @default 'None'
*/
activity: BpmnActivityModel;
/**
* Defines the text of the bpmn annotation
*
* @default 'None'
*/
annotation: BpmnAnnotationModel;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
enumerationShape: UmlEnumerationModel;
/**
* Defines the type of classifier
*
* @default 'Class'
* @IgnoreSingular
*/
classifier: ClassifierShape;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
classShape: UmlClassModel;
/**
* Defines the text of the bpmn annotation collection
*
* @default 'None'
*/
interfaceShape: UmlInterfaceModel;
/**
* Returns the name of class UmlClassifierShape
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of nodes
*/
export declare class Node extends NodeBase implements IElement {
/**
* Defines the collection of textual annotations of nodes/connectors
*
* @aspDefaultValueIgnore
* @default undefined
*/
annotations: ShapeAnnotationModel[];
/**
* Sets the x-coordinate of the position of the node
*
* @default 0
*/
offsetX: number;
/**
* Sets the layout properties using node property
*
* @default new NodeLayoutInfo()
* @aspType object
*/
layoutInfo: LayoutInfo;
/**
* Sets the y-coordinate of the position of the node
*
* @default 0
*/
offsetY: number;
/**
* Defines the collection of connection points of nodes/connectors
*
* @aspDefaultValueIgnore
* @default undefined
*/
ports: PointPortModel[];
/**
* Defines whether the node is expanded or not
*
* @default true
*/
isExpanded: boolean;
/**
* Specifies the collection of the fixed user handle
*
* @aspDefaultValueIgnore
* @default undefined
*/
fixedUserHandles: NodeFixedUserHandleModel[];
/**
* Defines the expanded state of a node
*
* @default {}
*/
expandIcon: IconShapeModel;
/**
* Defines the collapsed state of a node
*
* @default {}
*/
collapseIcon: IconShapeModel;
/**
* Sets the reference point, that will act as the offset values(offsetX, offsetY) of a node
*
* @default new Point(0.5,0.5)
*/
pivot: PointModel;
/**
* Sets the width of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
width: number;
/**
* Sets the height of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
height: number;
/**
* Sets the minimum width of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
minWidth: number;
/**
* Sets the minimum height of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
minHeight: number;
/**
* Sets the maximum width of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
maxWidth: number;
/**
* Sets the maximum height of the node
*
* @aspDefaultValueIgnore
* @default undefined
*/
maxHeight: number;
/**
* Sets the rotate angle of the node
*
* @default 0
*/
rotateAngle: number;
/**
* Sets the shape style of the node
*
* @default new ShapeStyle()
* @aspType object
*/
style: ShapeStyleModel | TextStyleModel;
/**
* Sets the background color of the shape
*
* @default 'transparent'
*/
backgroundColor: string;
/**
* Sets the border color of the node
*
* @default 'none'
*/
borderColor: string;
/**
* Sets the border width of the node
*
* @default 0
*/
borderWidth: number;
/**
* Sets the data source of the node
*/
data: Object;
/**
* Defines the shape of a node
*
* @default Basic Shape
* @aspType object
*/
shape: ShapeModel | FlowShapeModel | BasicShapeModel | ImageModel | PathModel | TextModel | BpmnShapeModel | NativeModel | HtmlModel | UmlActivityShapeModel | UmlClassifierShapeModel | SwimLaneModel | DiagramShapeModel | ContainerModel;
/**
* Defines the size of the symbol preview
*
* @aspDefaultValueIgnore
* @default undefined
*/
previewSize: SymbolSizeModel;
/**
* Defines the size of a drop symbol
*
* @aspDefaultValueIgnore
* @default undefined
*/
dragSize: SymbolSizeModel;
/**
* Sets or gets the UI of a node
*
* @default null
*/
wrapper: GroupableView;
/**
* Enables/Disables certain features of nodes
* * None - Disable all node Constraints
* * Select - Enables node to be selected
* * Drag - Enables node to be Dragged
* * Rotate - Enables node to be Rotate
* * Shadow - Enables node to display shadow
* * PointerEvents - Enables node to provide pointer option
* * Delete - Enables node to delete
* * InConnect - Enables node to provide in connect option
* * OutConnect - Enables node to provide out connect option
* * Individual - Enables node to provide individual resize option
* * Expandable - Enables node to provide Expandable option
* * AllowDrop - Enables node to provide allow to drop option
* * Inherit - Enables node to inherit the interaction option
* * ResizeNorthEast - Enable ResizeNorthEast of the node
* * ResizeEast - Enable ResizeEast of the node
* * ResizeSouthEast - Enable ResizeSouthEast of the node
* * ResizeSouth - Enable ResizeSouthWest of the node
* * ResizeSouthWest - Enable ResizeSouthWest of the node
* * ResizeSouth - Enable ResizeSouth of the node
* * ResizeSouthWest - Enable ResizeSouthWest of the node
* * ResizeWest - Enable ResizeWest of the node
* * ResizeNorth - Enable ResizeNorth of the node
* * Resize - Enables the Aspect ratio fo the node
* * AspectRatio - Enables the Aspect ratio fo the node
* * Tooltip - Enables or disables tool tip for the Nodes
* * InheritTooltip - Enables or disables tool tip for the Nodes
* * ReadOnly - Enables the ReadOnly support for Annotation
*
* @default 'Default'
* @aspNumberEnum
*/
constraints: NodeConstraints;
/**
* Defines the shadow of a shape/path
*
* @default null
*/
shadow: ShadowModel;
/**
* Defines the children of group element
*
* @aspDefaultValueIgnore
* @default undefined
*/
children: string[];
/**
* Defines the space between the group node edges and its children
*
* @aspDefaultValueIgnore
* @default 0
*/
padding: MarginModel;
/**
* Defines the type of the container
*
* @aspDefaultValueIgnore
* @default null
*/
container: ChildContainerModel;
/**
* Sets the horizontalAlignment of the node
*
* @default 'Stretch'
*/
horizontalAlignment: HorizontalAlignment;
/**
* Sets the verticalAlignment of the node
*
* @default 'Stretch'
*/
verticalAlignment: VerticalAlignment;
/**
* Used to define the rows for the grid container
*
* @aspDefaultValueIgnore
* @default undefined
*/
rows: RowDefinition[];
/**
* Used to define the column for the grid container
*
* @aspDefaultValueIgnore
* @default undefined
*/
columns: ColumnDefinition[];
/**
* Used to define a index of row in the grid
*
* @aspDefaultValueIgnore
* @default undefined
*/
rowIndex: number;
/**
* Used to define a index of column in the grid
*
* @aspDefaultValueIgnore
* @default undefined
*/
columnIndex: number;
/**
* Merge the row use the property in the grid container
*
* @aspDefaultValueIgnore
* @default undefined
*/
rowSpan: number;
/**
* Merge the column use the property in the grid container
*
* @aspDefaultValueIgnore
* @default undefined
*/
columnSpan: number;
/**
* Set the branch for the mind map
*
* @aspDefaultValueIgnore
* @default ''
*/
branch: BranchTypes;
/** @private */
oldGradientValue: Object;
/** @private */
isCanvasUpdate: boolean;
/** @private */
status: Status;
/** @private */
parentId: string;
/** @private */
showDefaultTooltipForPalette: boolean;
/** @private */
processId: string;
/** @private */
umlIndex: number;
/** @private */
outEdges: string[];
/** @private */
inEdges: string[];
/** @private */
isHeader: boolean;
/** @private */
isLane: boolean;
/** @private */
isPhase: boolean;
/** @private */
laneGrids: string[];
/** @private */
readonly actualSize: Size;
constructor(parent: any, propName: string, defaultValue: Object, isArray?: boolean);
/**
* Allows to initialize the UI of a node
*/
/** @private */
init(diagram: any): DiagramElement;
/** @private */
initContainer(): GroupableView;
/** @private */
initPorts(accessibilityContent: Function | string, container: GroupableView): void;
/** @private */
initPort(accessibilityContent: Function | string, container: GroupableView, port: Port): void;
private getIconOffet;
/** @private */
initIcons(accessibilityContent: Function | string, layout: LayoutModel, container: GroupableView, diagramId: string): void;
/** @private */
initFixedUserHandles(fixedUserHandle: NodeFixedUserHandleModel | NodeFixedUserHandle, fixedUserHandleTemplate: string | Function, diagramId: string): DiagramElement;
private getfixedUserHandleOffet;
/** @private */
initAnnotations(accessibilityContent: Function | string, container: GroupableView, diagramId: string, virtualize?: boolean, annotationTemplate?: string | Function): void;
/** @private */
initPortWrapper(ports: Port, Node?: NodeModel): DiagramElement;
/** @private */
initAnnotationWrapper(annotation: Annotation, diagramId?: string, virtualize?: boolean, value?: number, annotationTemplate?: string | Function): DiagramElement;
private initIconContainer;
private initIconSymbol;
/**
* @private
*
* Returns the name of class Node
*/
getClassName(): string;
}
/**
* Defines the behavior of header in swimLane
*/
export declare class Header extends ChildProperty {
/**
* Sets the id of the header
*
* @default ''
*/
id: string;
/**
* Sets the content of the header
*
* @default ''
*/
annotation: ShapeAnnotationModel;
/**
* Sets the style of the header
*
* @default ''
*/
style: TextStyleModel;
/**
* Sets the height of the header
*
* @default 50
*/
height: number;
/**
* Sets the width of the header
*
* @default 50
*/
width: number;
}
/**
* Defines the behavior of lane in swimLane
*/
export declare class Lane extends ChildProperty {
/**
* Sets the id of the lane
*
* @default ''
*/
id: string;
/**
* Sets style of the lane
*
* @default ''
*/
style: ShapeStyleModel;
/**
* Defines the collection of child nodes
*
* @default []
*/
children: NodeModel[];
/**
* Defines the height of the lane
*
* @default 100
*/
height: number;
/**
* Defines the height of the lane
*
* @default 100
*/
width: number;
/**
* Defines the collection of header in the lane.
*
* @default new Header()
*/
header: HeaderModel;
/**
* Defines when the lane to be interchanged or not
*
* @default true
*/
canMove: boolean;
/**
* Allows the user to save custom information about lanes. Example: addInfo: {'lane': 'lane 1 info' }
*
* @aspDefaultValueIgnore
* @default undefined
*/
addInfo: Object;
/**
* Returns the name of class Lane
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of phase in swimLane
*/
export declare class Phase extends ChildProperty {
/**
* Sets the id of the phase
*
* @default ''
*/
id: string;
/**
* Sets the style of the phase
*
* @default ''
*/
style: ShapeStyleModel;
/**
* Sets the header collection of the phase
*
* @default new Header()
*/
header: HeaderModel;
/**
* Sets the offset of the phase
*
* @default 100
*/
offset: number;
/**
* Sets the initial offset of the phase
*
* @default 100
* @private
*/
initialOffset: number;
/**
* Allows the user to save custom information about phases. Example: addInfo: {'phase': 'phase 1 info' }
*
* @aspDefaultValueIgnore
* @default undefined
*/
addInfo: Object;
/**
* Returns the name of class Phase
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of swimLane shape
*/
export declare class SwimLane extends Shape {
/**
* Defines the type of node shape.
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the size of phase.
*
* @default 20
*/
phaseSize: number;
/**
* Defines the collection of phases.
*
* @default 'undefined'
*/
phases: PhaseModel[];
/**
* Defines the orientation of the swimLane
*
* @default 'Horizontal'
*/
orientation: Orientation;
/**
* Defines the collection of lanes
*
* @default 'undefined'
*/
lanes: LaneModel[];
/**
* Defines the collection of header
*
* @default 'undefined'
*/
header: HeaderModel;
/**
* Defines the whether the shape is a lane or not
*
* @default false
*/
isLane: boolean;
/**
* Defines the whether the shape is a phase or not
*
* @default false
*/
isPhase: boolean;
/**
* Defines space between children and lane
*
* @private
*
*/
padding: number;
/**
* Defines header by user or not
*
* @private
*
*/
hasHeader: boolean;
/**
* Returns the name of class Phase
*
* @private
*/
getClassName(): string;
}
/**
* Defines the behavior of swimLane shape
*/
export declare class Container extends Shape {
/**
* Defines the type of node shape.
*
* @default 'Basic'
*/
type: Shapes;
/**
* Defines the collection of header
*
* @default 'undefined'
*/
header: HeaderModel;
/**
* Defines the children of container element
*
* @aspDefaultValueIgnore
* @default undefined
*/
children: string[];
/**
* Defines header by user or not
*
* @private
*
*/
hasHeader: boolean;
getClassName(): string;
}
/**
* Defines the behavior of container
*/
export declare class ChildContainer {
/**
* Defines the type of the container
*
* @aspDefaultValueIgnore
* @default Canvas
*/
type: ContainerTypes;
/**
* Defines the type of the swimLane orientation.
*
* @aspDefaultValueIgnore
* @default undefined
*/
orientation: Orientation;
/**
* Returns the name of class ChildContainer
*
* @private
*/
getClassName(): string;
}
/**
* Defines the size and position of selected items and defines the appearance of selector
*/
export declare class Selector extends ChildProperty implements IElement {
/**
* Defines the size and position of the container
*
* @default null
*/
wrapper: GroupableView;
/**
* Defines the size of the resize handler
*
* @default 14
*/
handleSize: number;
/**
* Defines the collection of selected nodes
*
*/
nodes: NodeModel[];
/**
* Defines the collection of selected connectors
*
*/
connectors: ConnectorModel[];
/**
* @private
*/
annotation: ShapeAnnotationModel | PathAnnotationModel;
/**
* Sets/Gets the width of the container
*
* @aspDefaultValueIgnore
* @default undefined
*/
width: number;
/**
* Sets/Gets the height of the container
*
* @aspDefaultValueIgnore
* @default undefined
*/
height: number;
/**
* Sets the rotate angle of the container
*
* @default 0
*/
rotateAngle: number;
/**
* Sets the positionX of the container
*
* @default 0
*/
offsetX: number;
/**
* Sets the positionY of the container
*
* @default 0
*/
offsetY: number;
/**
* Sets the pivot of the selector
*
* @default { x: 0.5, y: 0.5 }
*/
pivot: PointModel;
/**
* Defines how to pick the objects to be selected using rubber band selection
* * CompleteIntersect - Selects the objects that are contained within the selected region
* * PartialIntersect - Selects the objects that are partially intersected with the selected region
*
* @default 'CompleteIntersect'
*/
rubberBandSelectionMode: RubberBandSelectionMode;
/**
* Defines the collection of user handle
* ```html
*
* ```
* ```typescript
* let nodes: NodeModel[] = [{
* id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100,
* annotations: [{ content: 'Default Shape' }]
* },
* {
* id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100,
* shape: {
* type: 'Basic', shape: 'Ellipse'
* },
* annotations: [{ content: 'Path Element' }]
* }
* ];
* let connectors: ConnectorModel[] = [{
* id: 'connector1',
* type: 'Straight',
* sourcePoint: { x: 100, y: 300 },
* targetPoint: { x: 200, y: 400 },
* }];
* let handle: UserHandleModel[] = [
* { name: 'handle', margin: { top: 0, bottom: 0, left: 0, right: 0 }, offset: 0,
* pathData: 'M 376.892,225.284L 371.279,211.95L 376.892,198.617L 350.225,211.95L 376.892,225.284 Z',
* side: 'Top', horizontalAlignment: 'Center', verticalAlignment: 'Center',
* pathColor: 'yellow' }];
* let diagram: Diagram = new Diagram({
* ...
* connectors: connectors, nodes: nodes,
* selectedItems: { constraints: SelectorConstraints.All, userHandles: handle },
* ...
* });
* diagram.appendTo('#diagram');
* ```
*
* @default []
*/
userHandles: UserHandleModel[];
/**
* Controls the visibility of selector.
* * None - Hides all the selector elements
* * ConnectorSourceThumb - Shows/hides the source thumb of the connector
* * ConnectorTargetThumb - Shows/hides the target thumb of the connector
* * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector
* * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector
* * ResizeNorthEast - Shows/hides the top right resize handle of the selector
* * ResizeNorthWest - Shows/hides the top left resize handle of the selector
* * ResizeEast - Shows/hides the middle right resize handle of the selector
* * ResizeWest - Shows/hides the middle left resize handle of the selector
* * ResizeSouth - Shows/hides the bottom center resize handle of the selector
* * ResizeNorth - Shows/hides the top center resize handle of the selector
* * Rotate - Shows/hides the rotate handle of the selector
* * UserHandles - Shows/hides the user handles of the selector
* * Resize - Shows/hides all resize handles of the selector
*
* @default 'All'
* @aspNumberEnum
*/
constraints: SelectorConstraints;
/**
* set the constraint of the container
* * Rotate - Enable Rotate Thumb
* * ConnectorSource - Enable Connector source point
* * ConnectorTarget - Enable Connector target point
* * ResizeNorthEast - Enable ResizeNorthEast Resize
* * ResizeEast - Enable ResizeEast Resize
* * ResizeSouthEast - Enable ResizeSouthEast Resize
* * ResizeSouth - Enable ResizeSouth Resize
* * ResizeSouthWest - Enable ResizeSouthWest Resize
* * ResizeWest - Enable ResizeWest Resize
* * ResizeNorthWest - Enable ResizeNorthWest Resize
* * ResizeNorth - Enable ResizeNorth Resize
*
* @private
* @aspNumberEnum
*/
thumbsConstraints: ThumbsConstraints;
/**
* setTooltipTemplate helps to customize the content of a tooltip
*
* @aspDefaultValueIgnore
* @default undefined
*/
setTooltipTemplate: Function | string;
/**
* Defines the collection of selected nodes and connectors
* @default []
*/
selectedObjects: (NodeModel | ConnectorModel)[];
/**
* Initializes the UI of the container
*/
init(diagram: Diagram): GroupableView;
/**
* Specifies whether the selection state of the diagram element should be toggled based on a mouse click at runtime.
* The default value is false.
*
* @default false
*/
canToggleSelection: boolean;
}