eventstorming
Version:
A Graphics Library for Event Storming
78 lines • 6.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const EventPositionEntity_1 = require("../entity/EventPositionEntity");
class Renderer {
constructor(svgGenerator) {
this.stickyEntities = [];
this.originPosition = {
x: 0,
y: 0
};
this._svgGenerator = svgGenerator;
}
createEntity(node, nodes) {
let position = this.calculatePosition(nodes);
let newEntity = new EventPositionEntity_1.EventPositionEntity(position, node);
this.handForChildNode(node, position, newEntity);
this.stickyEntities.push(newEntity);
return newEntity;
}
handForChildNode(node, position, newEntity) {
if (node.hasRelatedChild()) {
for (let index in node.relatedNodes) {
let subPosition = this.calculateSubPosition(position, newEntity, node.relatedNodes[index]);
let subEntity = new EventPositionEntity_1.EventPositionEntity(subPosition, node.relatedNodes[index]);
newEntity.subEntity.push(subEntity);
}
}
}
updateEntity(node, nodes) {
let position = {
x: 0,
y: 0
};
for (let stickIndex in this.stickyEntities) {
if (this.stickyEntities[stickIndex].id === node.id) {
position = this.stickyEntities[stickIndex].pos;
}
}
let newEntity = new EventPositionEntity_1.EventPositionEntity(position, node);
this.handForChildNode(node, position, newEntity);
for (let stickIndex in this.stickyEntities) {
if (this.stickyEntities[stickIndex].entity.id === node.id) {
this.stickyEntities[stickIndex] = newEntity;
}
}
return newEntity;
}
calculatePositions(nodes) {
let positions = [];
return positions;
}
calculateSubPosition(parentPosition, parentNode, currentNode) {
return {
x: parentPosition.x + 50,
y: parentPosition.x + 50
};
}
calculatePosition(nodes) {
let position = {
x: 0,
y: 0
};
if (nodes.length > 1) {
this.originPosition = {
x: this.originPosition.x + 150,
y: this.originPosition.y
};
position = this.originPosition;
}
return position;
}
render() {
let result = this._svgGenerator.build(this.stickyEntities);
return result;
}
}
exports.Renderer = Renderer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVuZGVyL1JlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsdUVBQWtFO0FBSWxFO0lBUUUsWUFBWSxZQUEwQjtRQVB0QyxtQkFBYyxHQUEwQixFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBYztZQUMxQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUlBLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBaUIsRUFBRSxLQUFvQjtRQUNsRCxJQUFJLFFBQVEsR0FBYyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxTQUFTLEdBQUcsSUFBSSx5Q0FBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBaUIsRUFBRSxRQUFtQixFQUFFLFNBQThCO1FBQzdGLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0IsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksV0FBVyxHQUFjLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxTQUFTLEdBQUcsSUFBSSx5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