@wcardinal/wcardinal-ui 0.148.0 → 0.150.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/wcardinal/ui/d-view.d.ts +4 -4
- package/dist/types/wcardinal/ui/shape/e-shape-connector-bodies.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/e-shape-connector-body-impl.d.ts +24 -0
- package/dist/types/wcardinal/ui/shape/e-shape-connector-body.d.ts +14 -0
- package/dist/types/wcardinal/ui/shape/e-shape-connector-edge-container.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/index.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-line.d.ts +9 -2
- package/dist/wcardinal/ui/d-view.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-connector-bodies.js +57 -0
- package/dist/wcardinal/ui/shape/e-shape-connector-bodies.js.map +1 -0
- package/dist/wcardinal/ui/shape/e-shape-connector-body-impl.js +88 -0
- package/dist/wcardinal/ui/shape/e-shape-connector-body-impl.js.map +1 -0
- package/dist/wcardinal/ui/shape/e-shape-connector-body.js +6 -0
- package/dist/wcardinal/ui/shape/e-shape-connector-body.js.map +1 -0
- package/dist/wcardinal/ui/shape/e-shape-connector-edge-container-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-connector-edge-container.js.map +1 -1
- package/dist/wcardinal/ui/shape/index.js +3 -0
- package/dist/wcardinal/ui/shape/index.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/deserialize-connector-line.js +21 -2
- package/dist/wcardinal/ui/shape/variant/deserialize-connector-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js +106 -81
- package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +271 -84
- package/dist/wcardinal-ui.js +271 -84
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ import { EShapeLinePoints } from "./e-shape-line-points";
|
|
|
10
10
|
import { EShapeDefaults } from "../e-shape-defaults";
|
|
11
11
|
import { EShapeCopyPart } from "../e-shape-copy-part";
|
|
12
12
|
import { toPointsBoundary } from "../e-shape-points-formatted";
|
|
13
|
+
import { EShapeConnectorBodyImpl } from "../e-shape-connector-body-impl";
|
|
13
14
|
var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
14
15
|
__extends(EShapeConnectorLine, _super);
|
|
15
16
|
function EShapeConnectorLine(type) {
|
|
@@ -19,16 +20,36 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
19
20
|
_this._tailMargin = 0;
|
|
20
21
|
_this._headLocalId = 0;
|
|
21
22
|
_this._headMargin = 0;
|
|
23
|
+
_this._bodyId = 0;
|
|
24
|
+
_this._lockCount = 0;
|
|
25
|
+
_this._isChanged = false;
|
|
22
26
|
var sx = EShapeDefaults.SIZE_X;
|
|
23
27
|
var sy = EShapeDefaults.SIZE_Y;
|
|
24
28
|
var hx = sx * 0.5;
|
|
25
29
|
var hy = sy * 0.5;
|
|
26
|
-
_this._points = new EShapeLinePoints(_this).set(
|
|
27
|
-
|
|
28
|
-
_this.
|
|
29
|
-
}
|
|
30
|
+
_this._points = new EShapeLinePoints(_this).set([-hx, -hy, +hx, +hy]);
|
|
31
|
+
var onChangeBound = function () {
|
|
32
|
+
_this.onChange();
|
|
33
|
+
};
|
|
34
|
+
_this._edge = new EShapeConnectorEdgeContainerImpl(_this, onChangeBound);
|
|
35
|
+
_this._body = new EShapeConnectorBodyImpl(_this, onChangeBound);
|
|
30
36
|
return _this;
|
|
31
37
|
}
|
|
38
|
+
EShapeConnectorLine.prototype.lock = function () {
|
|
39
|
+
this._lockCount += 1;
|
|
40
|
+
if (this._lockCount === 1) {
|
|
41
|
+
this._isChanged = false;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
EShapeConnectorLine.prototype.unlock = function () {
|
|
45
|
+
this._lockCount -= 1;
|
|
46
|
+
if (this._lockCount === 0) {
|
|
47
|
+
if (this._isChanged) {
|
|
48
|
+
this.onChange();
|
|
49
|
+
}
|
|
50
|
+
this._isChanged = false;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
32
53
|
Object.defineProperty(EShapeConnectorLine.prototype, "points", {
|
|
33
54
|
get: function () {
|
|
34
55
|
return this._points;
|
|
@@ -43,6 +64,13 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
43
64
|
enumerable: false,
|
|
44
65
|
configurable: true
|
|
45
66
|
});
|
|
67
|
+
Object.defineProperty(EShapeConnectorLine.prototype, "body", {
|
|
68
|
+
get: function () {
|
|
69
|
+
return this._body;
|
|
70
|
+
},
|
|
71
|
+
enumerable: false,
|
|
72
|
+
configurable: true
|
|
73
|
+
});
|
|
46
74
|
EShapeConnectorLine.prototype.onAttach = function () {
|
|
47
75
|
_super.prototype.onAttach.call(this);
|
|
48
76
|
this._edge.attach();
|
|
@@ -51,8 +79,12 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
51
79
|
this._edge.detach();
|
|
52
80
|
_super.prototype.onDetach.call(this);
|
|
53
81
|
};
|
|
54
|
-
EShapeConnectorLine.prototype.
|
|
82
|
+
EShapeConnectorLine.prototype.onChange = function () {
|
|
55
83
|
var _a;
|
|
84
|
+
if (0 < this._lockCount) {
|
|
85
|
+
this._isChanged = true;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
56
88
|
var edge = this._edge;
|
|
57
89
|
var tail = edge.tail;
|
|
58
90
|
var tailLocalId = tail.localId;
|
|
@@ -60,22 +92,29 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
60
92
|
var head = edge.head;
|
|
61
93
|
var headLocalId = head.localId;
|
|
62
94
|
var headMargin = head.margin;
|
|
95
|
+
var body = this._body;
|
|
96
|
+
var bodyId = body.id;
|
|
63
97
|
if (this._tailLocalId !== tailLocalId ||
|
|
64
98
|
this._tailMargin !== tailMargin ||
|
|
65
99
|
this._headLocalId !== headLocalId ||
|
|
66
|
-
this._headMargin !== headMargin
|
|
100
|
+
this._headMargin !== headMargin ||
|
|
101
|
+
this._bodyId !== bodyId) {
|
|
67
102
|
this._tailLocalId = tailLocalId;
|
|
68
103
|
this._tailMargin = tailMargin;
|
|
69
104
|
this._headLocalId = headLocalId;
|
|
70
105
|
this._headMargin = headMargin;
|
|
71
|
-
|
|
106
|
+
this._bodyId !== bodyId;
|
|
107
|
+
// Tail
|
|
72
108
|
var tailLocal = tail.local;
|
|
73
109
|
var tailLocalX = tailLocal.x;
|
|
74
110
|
var tailLocalY = tailLocal.y;
|
|
75
|
-
//
|
|
111
|
+
// Head
|
|
76
112
|
var headLocal = head.local;
|
|
77
113
|
var headLocalX = headLocal.x;
|
|
78
114
|
var headLocalY = headLocal.y;
|
|
115
|
+
// Body
|
|
116
|
+
var bodyValues = body.values;
|
|
117
|
+
var bodyValuesLength = bodyValues.length;
|
|
79
118
|
// Values
|
|
80
119
|
var transform = this.transform;
|
|
81
120
|
var transformPosition = transform.position;
|
|
@@ -83,7 +122,60 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
83
122
|
var py = transformPosition.y;
|
|
84
123
|
var points = this._points;
|
|
85
124
|
var values = points.values;
|
|
86
|
-
|
|
125
|
+
if (values.length < 4) {
|
|
126
|
+
values[0] = 0;
|
|
127
|
+
values[1] = 0;
|
|
128
|
+
}
|
|
129
|
+
var threshold = 0.000001;
|
|
130
|
+
var x0 = tailLocalX - px;
|
|
131
|
+
var y0 = tailLocalY - py;
|
|
132
|
+
var x1 = headLocalX - px;
|
|
133
|
+
var y1 = headLocalY - py;
|
|
134
|
+
// Body
|
|
135
|
+
if (0 < bodyValuesLength) {
|
|
136
|
+
var cx_1 = (x1 + x0) * 0.5;
|
|
137
|
+
var cy_1 = (y1 + y0) * 0.5;
|
|
138
|
+
var dx = x1 - x0;
|
|
139
|
+
var dy = y1 - y0;
|
|
140
|
+
var a = Math.atan2(dy, dx);
|
|
141
|
+
var c = Math.cos(a);
|
|
142
|
+
var s = Math.sin(a);
|
|
143
|
+
var l = Math.sqrt(dx * dx + dy * dy);
|
|
144
|
+
for (var i = 0; i < bodyValuesLength; i += 2) {
|
|
145
|
+
var x = bodyValues[i + 0];
|
|
146
|
+
var y = bodyValues[i + 1];
|
|
147
|
+
values[i + 2] = cx_1 + (c * x - s * y) * l;
|
|
148
|
+
values[i + 3] = cy_1 + (c * y + s * x) * l;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Tail
|
|
152
|
+
values[0] = x0;
|
|
153
|
+
values[1] = y0;
|
|
154
|
+
if (tailMargin !== 0) {
|
|
155
|
+
var dx = values[2] - x0;
|
|
156
|
+
var dy = values[3] - y0;
|
|
157
|
+
var d = dx * dx + dy * dy;
|
|
158
|
+
if (threshold < d) {
|
|
159
|
+
var f = tailMargin / Math.sqrt(dx * dx + dy * dy);
|
|
160
|
+
values[0] = x0 + dx * f;
|
|
161
|
+
values[1] = y0 + dy * f;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Head
|
|
165
|
+
values[2 + bodyValuesLength] = x1;
|
|
166
|
+
values[3 + bodyValuesLength] = y1;
|
|
167
|
+
if (headMargin !== 0) {
|
|
168
|
+
var dx = values[0 + bodyValuesLength] - x1;
|
|
169
|
+
var dy = values[1 + bodyValuesLength] - y1;
|
|
170
|
+
var d = dx * dx + dy * dy;
|
|
171
|
+
if (threshold < d) {
|
|
172
|
+
var f = headMargin / Math.sqrt(dx * dx + dy * dy);
|
|
173
|
+
values[2 + bodyValuesLength] = x1 + dx * f;
|
|
174
|
+
values[3 + bodyValuesLength] = y1 + dy * f;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Remove the rest
|
|
178
|
+
values.length = bodyValuesLength + 4;
|
|
87
179
|
// Center & size
|
|
88
180
|
var boundary = ((_a = EShapeConnectorLine.WORK_BOUNDARY) !== null && _a !== void 0 ? _a : (EShapeConnectorLine.WORK_BOUNDARY = [0, 0, 0, 0]));
|
|
89
181
|
toPointsBoundary(values, boundary);
|
|
@@ -107,82 +199,12 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
107
199
|
this.allowUploadedUpdate();
|
|
108
200
|
}
|
|
109
201
|
};
|
|
110
|
-
EShapeConnectorLine.prototype.toValues = function (x0, y0, x1, y1, margin0, margin1, result) {
|
|
111
|
-
var threshold = 0.000001;
|
|
112
|
-
var resultLength = result.length;
|
|
113
|
-
if (resultLength <= 4) {
|
|
114
|
-
if (margin0 !== 0 || margin1 !== 0) {
|
|
115
|
-
var dx = x1 - x0;
|
|
116
|
-
var dy = y1 - y0;
|
|
117
|
-
var d = dx * dx + dy * dy;
|
|
118
|
-
if (threshold < d) {
|
|
119
|
-
var f = 1 / Math.sqrt(dx * dx + dy * dy);
|
|
120
|
-
var nx = dx * f;
|
|
121
|
-
var ny = dy * f;
|
|
122
|
-
result[0] = x0 + margin0 * nx;
|
|
123
|
-
result[1] = y0 + margin0 * ny;
|
|
124
|
-
result[2] = x1 - margin1 * nx;
|
|
125
|
-
result[3] = y1 - margin1 * ny;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
result[0] = x0;
|
|
129
|
-
result[1] = y0;
|
|
130
|
-
result[2] = x1;
|
|
131
|
-
result[3] = y1;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
result[0] = x0;
|
|
136
|
-
result[1] = y0;
|
|
137
|
-
result[2] = x1;
|
|
138
|
-
result[3] = y1;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
if (margin0 !== 0) {
|
|
143
|
-
var dx = result[2] - x0;
|
|
144
|
-
var dy = result[3] - y0;
|
|
145
|
-
var d = dx * dx + dy * dy;
|
|
146
|
-
if (threshold < d) {
|
|
147
|
-
var f = 1 / Math.sqrt(dx * dx + dy * dy);
|
|
148
|
-
result[0] = x0 + margin0 * dx * f;
|
|
149
|
-
result[1] = y0 + margin0 * dy * f;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
result[0] = x0;
|
|
153
|
-
result[1] = y0;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
result[0] = x0;
|
|
158
|
-
result[1] = y0;
|
|
159
|
-
}
|
|
160
|
-
if (margin1 !== 0) {
|
|
161
|
-
var dx = result[resultLength - 4] - x1;
|
|
162
|
-
var dy = result[resultLength - 3] - y1;
|
|
163
|
-
var d = dx * dx + dy * dy;
|
|
164
|
-
if (threshold < d) {
|
|
165
|
-
var f = 1 / Math.sqrt(dx * dx + dy * dy);
|
|
166
|
-
result[resultLength - 2] = x1 + margin1 * dx * f;
|
|
167
|
-
result[resultLength - 1] = y1 + margin1 * dy * f;
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
result[resultLength - 2] = x1;
|
|
171
|
-
result[resultLength - 1] = y1;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
result[resultLength - 2] = x1;
|
|
176
|
-
result[resultLength - 1] = y1;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return result;
|
|
180
|
-
};
|
|
181
202
|
EShapeConnectorLine.prototype.copy = function (source, part) {
|
|
182
203
|
if (part === void 0) { part = EShapeCopyPart.ALL; }
|
|
183
204
|
_super.prototype.copy.call(this, source, part);
|
|
184
205
|
if (source instanceof EShapeConnectorLine) {
|
|
185
206
|
this._edge.copy(source.edge);
|
|
207
|
+
this._body.copy(source.body);
|
|
186
208
|
}
|
|
187
209
|
return this;
|
|
188
210
|
};
|
|
@@ -191,7 +213,10 @@ var EShapeConnectorLine = /** @class */ (function (_super) {
|
|
|
191
213
|
};
|
|
192
214
|
EShapeConnectorLine.prototype.serialize = function (manager) {
|
|
193
215
|
var result = _super.prototype.serialize.call(this, manager);
|
|
194
|
-
|
|
216
|
+
var edgeId = this._edge.serialize(manager);
|
|
217
|
+
var bodyId = this._body.serialize(manager);
|
|
218
|
+
var pointsId = this._points.serialize(manager);
|
|
219
|
+
result[15] = manager.addResource("[" + edgeId + "," + pointsId + "," + bodyId + "]");
|
|
195
220
|
return result;
|
|
196
221
|
};
|
|
197
222
|
return EShapeConnectorLine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-connector-line.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeConnector } from \"../e-shape-connector\";\nimport { EShapeConnectorEdgeContainer } from \"../e-shape-connector-edge-container\";\nimport { EShapeConnectorEdgeContainerImpl } from \"../e-shape-connector-edge-container-impl\";\nimport { EShapeLineBase } from \"./e-shape-line-base\";\nimport { EShapeLinePoints } from \"./e-shape-line-points\";\nimport { EShapeDefaults } from \"../e-shape-defaults\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShape } from \"../e-shape\";\nimport { toPointsBoundary } from \"../e-shape-points-formatted\";\n\nexport class EShapeConnectorLine extends EShapeLineBase implements EShapeConnector {\n\tprotected static WORK_BOUNDARY: [number, number, number, number];\n\tprotected _edge: EShapeConnectorEdgeContainer;\n\tprotected declare _points: EShapeLinePoints;\n\tprotected _tailLocalId: number;\n\tprotected _tailMargin: number;\n\tprotected _headLocalId: number;\n\tprotected _headMargin: number;\n\n\tconstructor(type: EShapeType = EShapeType.CONNECTOR_LINE) {\n\t\tsuper(type);\n\t\tthis._tailLocalId = 0;\n\t\tthis._tailMargin = 0;\n\t\tthis._headLocalId = 0;\n\t\tthis._headMargin = 0;\n\t\tconst sx = EShapeDefaults.SIZE_X;\n\t\tconst sy = EShapeDefaults.SIZE_Y;\n\t\tconst hx = sx * 0.5;\n\t\tconst hy = sy * 0.5;\n\t\tthis._points = new EShapeLinePoints(this).set(this.toValues(-hx, -hy, +hx, +hy, 0, 0, []));\n\t\tthis._edge = new EShapeConnectorEdgeContainerImpl(this, (): void => {\n\t\t\tthis.onEdgeChange();\n\t\t});\n\t}\n\n\tget points(): EShapeLinePoints {\n\t\treturn this._points;\n\t}\n\n\tget edge(): EShapeConnectorEdgeContainer {\n\t\treturn this._edge;\n\t}\n\n\tonAttach(): void {\n\t\tsuper.onAttach();\n\t\tthis._edge.attach();\n\t}\n\n\tonDetach(): void {\n\t\tthis._edge.detach();\n\t\tsuper.onDetach();\n\t}\n\n\tprotected onEdgeChange(): void {\n\t\tconst edge = this._edge;\n\t\tconst tail = edge.tail;\n\t\tconst tailLocalId = tail.localId;\n\t\tconst tailMargin = tail.margin;\n\t\tconst head = edge.head;\n\t\tconst headLocalId = head.localId;\n\t\tconst headMargin = head.margin;\n\t\tif (\n\t\t\tthis._tailLocalId !== tailLocalId ||\n\t\t\tthis._tailMargin !== tailMargin ||\n\t\t\tthis._headLocalId !== headLocalId ||\n\t\t\tthis._headMargin !== headMargin\n\t\t) {\n\t\t\tthis._tailLocalId = tailLocalId;\n\t\t\tthis._tailMargin = tailMargin;\n\t\t\tthis._headLocalId = headLocalId;\n\t\t\tthis._headMargin = headMargin;\n\n\t\t\t// Left\n\t\t\tconst tailLocal = tail.local;\n\t\t\tconst tailLocalX = tailLocal.x;\n\t\t\tconst tailLocalY = tailLocal.y;\n\n\t\t\t// Right\n\t\t\tconst headLocal = head.local;\n\t\t\tconst headLocalX = headLocal.x;\n\t\t\tconst headLocalY = headLocal.y;\n\n\t\t\t// Values\n\t\t\tconst transform = this.transform;\n\t\t\tconst transformPosition = transform.position;\n\t\t\tconst px = transformPosition.x;\n\t\t\tconst py = transformPosition.y;\n\t\t\tconst points = this._points;\n\t\t\tconst values = points.values;\n\t\t\tthis.toValues(\n\t\t\t\ttailLocalX - px,\n\t\t\t\ttailLocalY - py,\n\t\t\t\theadLocalX - px,\n\t\t\t\theadLocalY - py,\n\t\t\t\ttailMargin,\n\t\t\t\theadMargin,\n\t\t\t\tvalues\n\t\t\t);\n\n\t\t\t// Center & size\n\t\t\tconst boundary = (EShapeConnectorLine.WORK_BOUNDARY ??= [0, 0, 0, 0]);\n\t\t\ttoPointsBoundary(values, boundary);\n\t\t\tconst cx = (boundary[2] + boundary[0]) * 0.5;\n\t\t\tconst cy = (boundary[3] + boundary[1]) * 0.5;\n\t\t\tconst sx = boundary[2] - boundary[0];\n\t\t\tconst sy = boundary[3] - boundary[1];\n\n\t\t\t// Adjust values\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tvalues[i + 0] -= cx;\n\t\t\t\tvalues[i + 1] -= cy;\n\t\t\t}\n\n\t\t\tthis.disallowUploadedUpdate();\n\t\t\ttransformPosition.set(px + cx, py + cy);\n\t\t\ttransform.scale.set(1, 1);\n\t\t\ttransform.rotation = 0;\n\t\t\ttransform.skew.set(0, 0);\n\t\t\tthis.size.set(sx, sy);\n\t\t\tpoints.toFitted();\n\t\t\tpoints.set(values);\n\t\t\tthis.allowUploadedUpdate();\n\t\t}\n\t}\n\n\tprotected toValues(\n\t\tx0: number,\n\t\ty0: number,\n\t\tx1: number,\n\t\ty1: number,\n\t\tmargin0: number,\n\t\tmargin1: number,\n\t\tresult: number[]\n\t): number[] {\n\t\tconst threshold = 0.000001;\n\t\tconst resultLength = result.length;\n\t\tif (resultLength <= 4) {\n\t\t\tif (margin0 !== 0 || margin1 !== 0) {\n\t\t\t\tconst dx = x1 - x0;\n\t\t\t\tconst dy = y1 - y0;\n\t\t\t\tconst d = dx * dx + dy * dy;\n\t\t\t\tif (threshold < d) {\n\t\t\t\t\tconst f = 1 / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\t\tconst nx = dx * f;\n\t\t\t\t\tconst ny = dy * f;\n\t\t\t\t\tresult[0] = x0 + margin0 * nx;\n\t\t\t\t\tresult[1] = y0 + margin0 * ny;\n\t\t\t\t\tresult[2] = x1 - margin1 * nx;\n\t\t\t\t\tresult[3] = y1 - margin1 * ny;\n\t\t\t\t} else {\n\t\t\t\t\tresult[0] = x0;\n\t\t\t\t\tresult[1] = y0;\n\t\t\t\t\tresult[2] = x1;\n\t\t\t\t\tresult[3] = y1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult[0] = x0;\n\t\t\t\tresult[1] = y0;\n\t\t\t\tresult[2] = x1;\n\t\t\t\tresult[3] = y1;\n\t\t\t}\n\t\t} else {\n\t\t\tif (margin0 !== 0) {\n\t\t\t\tconst dx = result[2] - x0;\n\t\t\t\tconst dy = result[3] - y0;\n\t\t\t\tconst d = dx * dx + dy * dy;\n\t\t\t\tif (threshold < d) {\n\t\t\t\t\tconst f = 1 / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\t\tresult[0] = x0 + margin0 * dx * f;\n\t\t\t\t\tresult[1] = y0 + margin0 * dy * f;\n\t\t\t\t} else {\n\t\t\t\t\tresult[0] = x0;\n\t\t\t\t\tresult[1] = y0;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult[0] = x0;\n\t\t\t\tresult[1] = y0;\n\t\t\t}\n\n\t\t\tif (margin1 !== 0) {\n\t\t\t\tconst dx = result[resultLength - 4] - x1;\n\t\t\t\tconst dy = result[resultLength - 3] - y1;\n\t\t\t\tconst d = dx * dx + dy * dy;\n\t\t\t\tif (threshold < d) {\n\t\t\t\t\tconst f = 1 / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\t\tresult[resultLength - 2] = x1 + margin1 * dx * f;\n\t\t\t\t\tresult[resultLength - 1] = y1 + margin1 * dy * f;\n\t\t\t\t} else {\n\t\t\t\t\tresult[resultLength - 2] = x1;\n\t\t\t\t\tresult[resultLength - 1] = y1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult[resultLength - 2] = x1;\n\t\t\t\tresult[resultLength - 1] = y1;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tsuper.copy(source, part);\n\t\tif (source instanceof EShapeConnectorLine) {\n\t\t\tthis._edge.copy(source.edge);\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone(): EShapeConnectorLine {\n\t\treturn new EShapeConnectorLine().copy(this);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst result = super.serialize(manager);\n\t\tresult[15] = manager.addResource(\n\t\t\t`[${this._edge.serialize(manager)},${this._points.serialize(manager)}]`\n\t\t);\n\t\treturn result;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/e-shape-connector-line.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeType } from \"../e-shape-type\";\nimport { EShapeConnector } from \"../e-shape-connector\";\nimport { EShapeConnectorEdgeContainer } from \"../e-shape-connector-edge-container\";\nimport { EShapeConnectorEdgeContainerImpl } from \"../e-shape-connector-edge-container-impl\";\nimport { EShapeLineBase } from \"./e-shape-line-base\";\nimport { EShapeLinePoints } from \"./e-shape-line-points\";\nimport { EShapeDefaults } from \"../e-shape-defaults\";\nimport { EShapeCopyPart } from \"../e-shape-copy-part\";\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShape } from \"../e-shape\";\nimport { toPointsBoundary } from \"../e-shape-points-formatted\";\nimport { EShapeConnectorBody } from \"../e-shape-connector-body\";\nimport { EShapeConnectorBodyImpl } from \"../e-shape-connector-body-impl\";\n\nexport class EShapeConnectorLine extends EShapeLineBase implements EShapeConnector {\n\tprotected static WORK_BOUNDARY: [number, number, number, number];\n\tprotected _edge: EShapeConnectorEdgeContainer;\n\tprotected _body: EShapeConnectorBody;\n\tprotected declare _points: EShapeLinePoints;\n\tprotected _tailLocalId: number;\n\tprotected _tailMargin: number;\n\tprotected _headLocalId: number;\n\tprotected _headMargin: number;\n\tprotected _bodyId: number;\n\tprotected _lockCount: number;\n\tprotected _isChanged: boolean;\n\n\tconstructor(type: EShapeType = EShapeType.CONNECTOR_LINE) {\n\t\tsuper(type);\n\t\tthis._tailLocalId = 0;\n\t\tthis._tailMargin = 0;\n\t\tthis._headLocalId = 0;\n\t\tthis._headMargin = 0;\n\t\tthis._bodyId = 0;\n\t\tthis._lockCount = 0;\n\t\tthis._isChanged = false;\n\t\tconst sx = EShapeDefaults.SIZE_X;\n\t\tconst sy = EShapeDefaults.SIZE_Y;\n\t\tconst hx = sx * 0.5;\n\t\tconst hy = sy * 0.5;\n\t\tthis._points = new EShapeLinePoints(this).set([-hx, -hy, +hx, +hy]);\n\t\tconst onChangeBound = (): void => {\n\t\t\tthis.onChange();\n\t\t};\n\t\tthis._edge = new EShapeConnectorEdgeContainerImpl(this, onChangeBound);\n\t\tthis._body = new EShapeConnectorBodyImpl(this, onChangeBound);\n\t}\n\n\tlock(): void {\n\t\tthis._lockCount += 1;\n\t\tif (this._lockCount === 1) {\n\t\t\tthis._isChanged = false;\n\t\t}\n\t}\n\n\tunlock(): void {\n\t\tthis._lockCount -= 1;\n\t\tif (this._lockCount === 0) {\n\t\t\tif (this._isChanged) {\n\t\t\t\tthis.onChange();\n\t\t\t}\n\t\t\tthis._isChanged = false;\n\t\t}\n\t}\n\n\tget points(): EShapeLinePoints {\n\t\treturn this._points;\n\t}\n\n\tget edge(): EShapeConnectorEdgeContainer {\n\t\treturn this._edge;\n\t}\n\n\tget body(): EShapeConnectorBody {\n\t\treturn this._body;\n\t}\n\n\tonAttach(): void {\n\t\tsuper.onAttach();\n\t\tthis._edge.attach();\n\t}\n\n\tonDetach(): void {\n\t\tthis._edge.detach();\n\t\tsuper.onDetach();\n\t}\n\n\tprotected onChange(): void {\n\t\tif (0 < this._lockCount) {\n\t\t\tthis._isChanged = true;\n\t\t\treturn;\n\t\t}\n\n\t\tconst edge = this._edge;\n\t\tconst tail = edge.tail;\n\t\tconst tailLocalId = tail.localId;\n\t\tconst tailMargin = tail.margin;\n\t\tconst head = edge.head;\n\t\tconst headLocalId = head.localId;\n\t\tconst headMargin = head.margin;\n\t\tconst body = this._body;\n\t\tconst bodyId = body.id;\n\t\tif (\n\t\t\tthis._tailLocalId !== tailLocalId ||\n\t\t\tthis._tailMargin !== tailMargin ||\n\t\t\tthis._headLocalId !== headLocalId ||\n\t\t\tthis._headMargin !== headMargin ||\n\t\t\tthis._bodyId !== bodyId\n\t\t) {\n\t\t\tthis._tailLocalId = tailLocalId;\n\t\t\tthis._tailMargin = tailMargin;\n\t\t\tthis._headLocalId = headLocalId;\n\t\t\tthis._headMargin = headMargin;\n\t\t\tthis._bodyId !== bodyId;\n\n\t\t\t// Tail\n\t\t\tconst tailLocal = tail.local;\n\t\t\tconst tailLocalX = tailLocal.x;\n\t\t\tconst tailLocalY = tailLocal.y;\n\n\t\t\t// Head\n\t\t\tconst headLocal = head.local;\n\t\t\tconst headLocalX = headLocal.x;\n\t\t\tconst headLocalY = headLocal.y;\n\n\t\t\t// Body\n\t\t\tconst bodyValues = body.values;\n\t\t\tconst bodyValuesLength = bodyValues.length;\n\n\t\t\t// Values\n\t\t\tconst transform = this.transform;\n\t\t\tconst transformPosition = transform.position;\n\t\t\tconst px = transformPosition.x;\n\t\t\tconst py = transformPosition.y;\n\t\t\tconst points = this._points;\n\t\t\tconst values = points.values;\n\t\t\tif (values.length < 4) {\n\t\t\t\tvalues[0] = 0;\n\t\t\t\tvalues[1] = 0;\n\t\t\t}\n\n\t\t\tconst threshold = 0.000001;\n\t\t\tconst x0 = tailLocalX - px;\n\t\t\tconst y0 = tailLocalY - py;\n\t\t\tconst x1 = headLocalX - px;\n\t\t\tconst y1 = headLocalY - py;\n\n\t\t\t// Body\n\t\t\tif (0 < bodyValuesLength) {\n\t\t\t\tconst cx = (x1 + x0) * 0.5;\n\t\t\t\tconst cy = (y1 + y0) * 0.5;\n\t\t\t\tconst dx = x1 - x0;\n\t\t\t\tconst dy = y1 - y0;\n\t\t\t\tconst a = Math.atan2(dy, dx);\n\t\t\t\tconst c = Math.cos(a);\n\t\t\t\tconst s = Math.sin(a);\n\t\t\t\tconst l = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tfor (let i = 0; i < bodyValuesLength; i += 2) {\n\t\t\t\t\tconst x = bodyValues[i + 0];\n\t\t\t\t\tconst y = bodyValues[i + 1];\n\t\t\t\t\tvalues[i + 2] = cx + (c * x - s * y) * l;\n\t\t\t\t\tvalues[i + 3] = cy + (c * y + s * x) * l;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Tail\n\t\t\tvalues[0] = x0;\n\t\t\tvalues[1] = y0;\n\t\t\tif (tailMargin !== 0) {\n\t\t\t\tconst dx = values[2] - x0;\n\t\t\t\tconst dy = values[3] - y0;\n\t\t\t\tconst d = dx * dx + dy * dy;\n\t\t\t\tif (threshold < d) {\n\t\t\t\t\tconst f = tailMargin / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\t\tvalues[0] = x0 + dx * f;\n\t\t\t\t\tvalues[1] = y0 + dy * f;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Head\n\t\t\tvalues[2 + bodyValuesLength] = x1;\n\t\t\tvalues[3 + bodyValuesLength] = y1;\n\t\t\tif (headMargin !== 0) {\n\t\t\t\tconst dx = values[0 + bodyValuesLength] - x1;\n\t\t\t\tconst dy = values[1 + bodyValuesLength] - y1;\n\t\t\t\tconst d = dx * dx + dy * dy;\n\t\t\t\tif (threshold < d) {\n\t\t\t\t\tconst f = headMargin / Math.sqrt(dx * dx + dy * dy);\n\t\t\t\t\tvalues[2 + bodyValuesLength] = x1 + dx * f;\n\t\t\t\t\tvalues[3 + bodyValuesLength] = y1 + dy * f;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove the rest\n\t\t\tvalues.length = bodyValuesLength + 4;\n\n\t\t\t// Center & size\n\t\t\tconst boundary = (EShapeConnectorLine.WORK_BOUNDARY ??= [0, 0, 0, 0]);\n\t\t\ttoPointsBoundary(values, boundary);\n\t\t\tconst cx = (boundary[2] + boundary[0]) * 0.5;\n\t\t\tconst cy = (boundary[3] + boundary[1]) * 0.5;\n\t\t\tconst sx = boundary[2] - boundary[0];\n\t\t\tconst sy = boundary[3] - boundary[1];\n\n\t\t\t// Adjust values\n\t\t\tfor (let i = 0, imax = values.length; i < imax; i += 2) {\n\t\t\t\tvalues[i + 0] -= cx;\n\t\t\t\tvalues[i + 1] -= cy;\n\t\t\t}\n\n\t\t\tthis.disallowUploadedUpdate();\n\t\t\ttransformPosition.set(px + cx, py + cy);\n\t\t\ttransform.scale.set(1, 1);\n\t\t\ttransform.rotation = 0;\n\t\t\ttransform.skew.set(0, 0);\n\t\t\tthis.size.set(sx, sy);\n\t\t\tpoints.toFitted();\n\t\t\tpoints.set(values);\n\t\t\tthis.allowUploadedUpdate();\n\t\t}\n\t}\n\n\tcopy(source: EShape, part: EShapeCopyPart = EShapeCopyPart.ALL): this {\n\t\tsuper.copy(source, part);\n\t\tif (source instanceof EShapeConnectorLine) {\n\t\t\tthis._edge.copy(source.edge);\n\t\t\tthis._body.copy(source.body);\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone(): EShapeConnectorLine {\n\t\treturn new EShapeConnectorLine().copy(this);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem {\n\t\tconst result = super.serialize(manager);\n\t\tconst edgeId = this._edge.serialize(manager);\n\t\tconst bodyId = this._body.serialize(manager);\n\t\tconst pointsId = this._points.serialize(manager);\n\t\tresult[15] = manager.addResource(`[${edgeId},${pointsId},${bodyId}]`);\n\t\treturn result;\n\t}\n}\n"]}
|