| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 | 1×
1×
1×
1×
1×
85×
85×
85×
85×
85×
7×
78×
1×
85×
85×
85×
85×
65×
41×
24×
24×
20×
12×
8×
1×
20×
20×
15×
15×
15×
15×
15×
12×
8×
1×
1×
1×
1×
2394×
1×
2394×
1×
1×
1×
2387×
2387×
1×
283×
1×
82×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
88269×
1×
1967×
1×
1×
| define(["require", "exports", "./er-connector-renderer", "./er-util", "./er-field-reorder-util"], function (require, exports, er_connector_renderer_1, er_util_1, er_field_reorder_util_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var EREventManager = (function () {
function EREventManager() {
}
EREventManager.prototype.fireEREntityChanged = function (diagram, entity, oldEntityState, newEntityState, state) {
var cause = this.determineEntityChangeType(oldEntityState, newEntityState);
var element = entity;
var eventArgs = {
diagram: diagram,
element: element,
oldValue: oldEntityState,
newValue: newEntityState,
cause: cause,
state: state,
cancel: false
};
diagram.trigger('erEntityChanged', eventArgs);
if (state === 'Start' && eventArgs.cancel) {
return false;
}
return !eventArgs.cancel;
};
EREventManager.prototype.determineEntityChangeType = function (oldState, newState) {
Eif (oldState && newState) {
var oldFields = (oldState && oldState.fields) || [];
var newFields = (newState && newState.fields) || [];
if (oldFields.length !== newFields.length) {
if (oldFields.length < newFields.length) {
return 'FieldsAdd';
}
Eif (oldFields.length > newFields.length) {
return 'FieldsRemove';
}
}
if (!this.isFieldOrderEqual(oldFields, newFields)) {
return 'FieldsReorder';
}
}
return 'Other';
};
EREventManager.prototype.isFieldOrderEqual = function (fields1, fields2) {
Iif (fields1.length !== fields2.length) {
return false;
}
for (var i = 0; i < fields1.length; i++) {
var field1 = fields1[parseInt(i.toString(), 10)];
var field2 = fields2[parseInt(i.toString(), 10)];
var idA = field1 && field1.id;
var idB = field2 && field2.id;
if (idA !== idB) {
return false;
}
}
return true;
};
return EREventManager;
}());
exports.EREventManager = EREventManager;
var erEventManager;
function getEREventManager() {
if (!erEventManager) {
erEventManager = new EREventManager();
}
return erEventManager;
}
exports.getEREventManager = getEREventManager;
var ErDiagrams = (function () {
function ErDiagrams() {
this.connectorRenderer = new er_connector_renderer_1.ErConnectorRenderer();
this.eventManager = getEREventManager();
}
ErDiagrams.prototype.initErContent = function (content, node, diagram) {
return er_util_1.getErShapes(content, node, diagram);
};
ErDiagrams.prototype.initErConnector = function (connector) {
this.connectorRenderer.render(connector);
};
ErDiagrams.prototype.updateErConnector = function (connector, erRelationship, oldRelationship, diagram) {
return this.connectorRenderer.update(connector, erRelationship, oldRelationship, diagram);
};
ErDiagrams.prototype.validateFieldReorder = function (source, target, cursorPosition, diagram) {
var sourceEntity = diagram.getObject(source.parentId);
var targetEntity = diagram.getObject(target.parentId);
Eif (sourceEntity && targetEntity && sourceEntity.id === targetEntity.id &&
sourceEntity.container && sourceEntity.container.type === 'Stack') {
var sourceIndex = er_field_reorder_util_1.getErFieldIndexByNodeId(source.id, sourceEntity, diagram);
var targetIndex = er_field_reorder_util_1.getErFieldIndexByNodeId(target.id, sourceEntity, diagram);
var insertionIndex = er_field_reorder_util_1.calculateFieldDropIndex(sourceEntity, source, target, cursorPosition.y || 0, diagram);
var isValidInsertion = sourceIndex >= 0 && targetIndex >= 0 &&
insertionIndex !== sourceIndex &&
(insertionIndex > 0 || (insertionIndex === 0 && sourceIndex > 0));
return isValidInsertion;
}
return false;
};
ErDiagrams.prototype.reorderErField = function (entityNode, sourceFieldIndex, targetFieldIndex, diagram) {
return er_field_reorder_util_1.reorderErField(entityNode, sourceFieldIndex, targetFieldIndex, diagram);
};
ErDiagrams.prototype.getModuleName = function () {
return 'ErDiagrams';
};
ErDiagrams.prototype.destroy = function () {
this.connectorRenderer = null;
};
return ErDiagrams;
}());
exports.ErDiagrams = ErDiagrams;
});
|