@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.
304 lines (303 loc) • 14.8 kB
JavaScript
import { ConnectorConstraints } from '../enum/enum';
var ConnectorProperties = /** @class */ (function () {
function ConnectorProperties(labelProperties) {
this.labelProperties = labelProperties;
}
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Convert and render the connector collection from EJ1 to EJ2
ConnectorProperties.prototype.renderConnectorsCollection = function (convertedData, data) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
convertedData.connectors = [];
var connectors = [];
for (var i = 0; i < data.connectors.length; i++) {
var connector = data.connectors[parseInt(i.toString(), 10)];
var newConnector = this.convertToConnector(connector);
connectors.push(newConnector);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
convertedData.connectors = connectors;
};
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Convert and render the connector properties from EJ1 to EJ2
ConnectorProperties.prototype.convertToConnector = function (connector) {
var newConnector = {};
newConnector.style = {};
if (connector.name) {
newConnector.id = connector.name;
}
if (connector.addInfo) {
newConnector.addInfo = connector.addInfo;
}
if (connector.bridgeSpace) {
newConnector.bridgeSpace = connector.bridgeSpace;
}
if (connector.constraints) {
newConnector.constraints = this.setConnectorConstraints(connector.constraints);
}
if (connector.cornerRadius) {
newConnector.cornerRadius = connector.cornerRadius;
}
if (connector.labels) {
newConnector.annotations = this.labelProperties.setLabelProperties(connector.labels, connector);
}
if (connector.lineColor) {
newConnector.style.fill = connector.lineColor;
}
if (connector.lineWidth) {
newConnector.style.strokeWidth = connector.lineWidth;
}
if (connector.lineDashArray) {
newConnector.style.strokeDashArray = connector.lineDashArray;
}
if (connector.opacity) {
newConnector.style.opacity = connector.opacity;
}
if (connector.lineHitPadding) {
newConnector.hitPadding = connector.lineHitPadding;
}
if (connector.margin) {
// eslint-disable-next-line max-len
newConnector.margin = { left: connector.margin.left, right: connector.margin.right, top: connector.margin.top, bottom: connector.margin.bottom };
}
if (connector.segments) {
newConnector.type = connector.segments[0].type.charAt(0).toUpperCase() + (connector.segments[0].type).slice(1);
newConnector.segments = this.setConnectorSegments(connector.segments);
}
if (connector.shape) {
newConnector.shape = this.getConnectorShape(connector.shape);
}
if (connector.sourceDecorator) {
newConnector.sourceDecorator = {
height: connector.sourceDecorator.height,
width: connector.sourceDecorator.width,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
shape: (this.getDecoratorShape(connector.sourceDecorator.shape)),
pathData: connector.sourceDecorator.pathData,
style: {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
fill: connector.sourceDecorator.fillColor,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
strokeColor: connector.sourceDecorator.lineColor,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
strokeWidth: connector.sourceDecorator.lineWidth
}
};
}
if (connector.targetDecorator) {
newConnector.targetDecorator = {
height: connector.targetDecorator.height,
width: connector.targetDecorator.width,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
shape: this.getDecoratorShape(connector.targetDecorator.shape),
pathData: connector.targetDecorator.pathData,
style: {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
fill: connector.targetDecorator.fillColor,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
strokeColor: connector.targetDecorator.lineColor,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
strokeWidth: connector.targetDecorator.lineWidth
}
};
}
if (connector.sourceNode) {
newConnector.sourceID = connector.sourceNode;
}
if (connector.targetNode) {
newConnector.targetID = connector.targetNode;
}
if (connector.sourcePoint) {
newConnector.sourcePoint = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };
}
if (connector.targetPoint) {
newConnector.targetPoint = { x: connector.targetPoint.x, y: connector.targetPoint.y };
}
if (connector.sourcePort) {
newConnector.sourcePortID = connector.sourcePort;
}
if (connector.targetPort) {
newConnector.targetPortID = connector.targetPort;
}
if (connector.tooltip) {
newConnector.tooltip = {
content: connector.tooltip.content,
relativeMode: connector.tooltip.relativeMode
};
}
if (connector.visible) {
newConnector.visible = connector.visible;
}
if (connector.zOrder) {
newConnector.zIndex = connector.zOrder;
}
return newConnector;
};
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Convert and assign the connector shapes from EJ1 to EJ2
ConnectorProperties.prototype.getConnectorShape = function (shape) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var connectorShape = null;
if (shape) {
if (shape.type === 'bpmn') {
connectorShape = {
type: 'Bpmn',
flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)
};
if (shape.flow === 'sequence') {
connectorShape.sequence = (shape.sequence).charAt(0).toUpperCase() + (shape.sequence).slice(1);
}
else if (shape.flow === 'association') {
connectorShape.association = (shape.association).charAt(0).toUpperCase() + (shape.association).slice(1);
}
else {
connectorShape.message = (shape.message).charAt(0).toUpperCase() + (shape.message).slice(1);
}
}
if (shape.type === 'umlclassifier') {
connectorShape = {
type: 'UmlClassifier',
relationship: (shape.relationship).charAt(0).toUpperCase() + (shape.relationship).slice(1),
multiplicity: {
type: (shape.multiplicity.type).charAt(0).toUpperCase() + (shape.multiplicity.type).slice(1),
source: {
upperBounds: shape.multiplicity.source.upperBounds,
optional: shape.multiplicity.source.optional,
lowerBounds: shape.multiplicity.source.lowerBounds
},
target: {
upperBounds: shape.multiplicity.target.upperBounds,
optional: shape.multiplicity.target.optional,
lowerBounds: shape.multiplicity.target.lowerBounds
}
}
};
}
if (shape.type === 'umlactivity') {
connectorShape = {
type: 'UmlActivity',
flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)
};
}
}
return connectorShape;
};
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Sets the connector decorator shapes from EJ1 to EJ2
ConnectorProperties.prototype.getDecoratorShape = function (shape) {
var decoratorShape = 'None';
if (shape === 'path') {
decoratorShape = 'Custom';
}
else {
decoratorShape = (shape).charAt(0).toUpperCase() + (shape).slice(1);
}
return decoratorShape;
};
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Convert and render the connector collection from EJ1 to EJ2
// eslint-disable-next-line @typescript-eslint/no-explicit-any
ConnectorProperties.prototype.setConnectorSegments = function (segments) {
var connectorSegments = [];
if (segments.length > 0) {
for (var i = 0; i < segments.length; i++) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var segment = {};
var segmentProp = segments[parseInt(i.toString(), 10)];
// eslint-disable-next-line max-len
segment.direction = segmentProp.direction ? segmentProp.direction.charAt(0).toUpperCase() + segmentProp.direction.slice(1) : segmentProp._direction ? segmentProp._direction.charAt(0).toUpperCase() + segmentProp._direction.slice(1) : null;
segment.length = segmentProp.length ? segmentProp.length : segmentProp._length ? segmentProp._length : null;
segment.point = segmentProp.point ? { x: segmentProp.point.x, y: segmentProp.point.y } : null;
segment.point1 = segmentProp.point1 ? { x: segmentProp.point1.x, y: segmentProp.point1.y } : null;
segment.point2 = segmentProp.point2 ? { x: segmentProp.point2.x, y: segmentProp.point2.y } : null;
// eslint-disable-next-line max-len
segment.vector1 = segmentProp.vector1 ? { angle: segmentProp.vector1.angle, distance: segmentProp.vector1.distance } : null;
// eslint-disable-next-line max-len
segment.vector2 = segmentProp.vector2 ? { angle: segmentProp.vector2.angle, distance: segmentProp.vector2.distance } : null;
if (segmentProp.points) {
segment.points = this.getSegmentPoints(segmentProp.points);
}
if (segmentProp.type) {
segment.type = (segmentProp.type).charAt(0).toUpperCase() + (segmentProp.type).slice(1);
}
connectorSegments.push(segment);
}
}
return connectorSegments;
};
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Render the connector Segment points from EJ1 to EJ2
ConnectorProperties.prototype.getSegmentPoints = function (points) {
var pointsCollection = [];
if (points.length > 0) {
for (var i = 0; i < points.length; i++) {
var newPoint = {};
var point = points[parseInt(i.toString(), 10)];
newPoint.x = point.x;
newPoint.y = point.y;
pointsCollection.push(newPoint);
}
}
return pointsCollection;
};
//(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram
//Sets the connector constraints
ConnectorProperties.prototype.setConnectorConstraints = function (constraints) {
var connectorConstraints = ConnectorConstraints.None;
if (constraints & ConnectorConstraints.Select) {
connectorConstraints = connectorConstraints | ConnectorConstraints.Select;
}
if (constraints & ConnectorConstraints.Delete) {
connectorConstraints = connectorConstraints | ConnectorConstraints.Delete;
}
if (constraints & ConnectorConstraints.Drag) {
connectorConstraints = connectorConstraints | ConnectorConstraints.Drag;
}
if (constraints & ConnectorConstraints.DragSourceEnd) {
connectorConstraints = connectorConstraints | ConnectorConstraints.DragSourceEnd;
}
if (constraints & ConnectorConstraints.DragTargetEnd) {
connectorConstraints = connectorConstraints | ConnectorConstraints.DragTargetEnd;
}
if (constraints & ConnectorConstraints.DragSegmentThumb) {
connectorConstraints = connectorConstraints | ConnectorConstraints.DragSegmentThumb;
}
if (constraints & ConnectorConstraints.Bridging) {
connectorConstraints = connectorConstraints | ConnectorConstraints.Bridging;
}
if (constraints & ConnectorConstraints.InheritBridging) {
connectorConstraints = connectorConstraints | ConnectorConstraints.InheritBridging;
}
if (constraints & ConnectorConstraints.AllowDrop) {
connectorConstraints = connectorConstraints | ConnectorConstraints.AllowDrop;
}
if (constraints & ConnectorConstraints.InheritTooltip) {
connectorConstraints = connectorConstraints | ConnectorConstraints.InheritTooltip;
}
if (constraints & ConnectorConstraints.PointerEvents) {
connectorConstraints = connectorConstraints | ConnectorConstraints.PointerEvents;
}
if (constraints & ConnectorConstraints.BridgeObstacle) {
connectorConstraints = connectorConstraints | ConnectorConstraints.BridgeObstacle;
}
if (constraints & ConnectorConstraints.Interaction) {
connectorConstraints = connectorConstraints | ConnectorConstraints.Interaction;
}
if (constraints & ConnectorConstraints.Default) {
connectorConstraints = connectorConstraints | ConnectorConstraints.Default;
}
return connectorConstraints;
};
/**
* Get module name.
*
* @returns {string} Returns the module name
*/
ConnectorProperties.prototype.getModuleName = function () {
/**
* Returns the module name
*/
return 'ConnectorProperties';
};
return ConnectorProperties;
}());
export { ConnectorProperties };