@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.
Files changed (31) hide show
  1. package/dist/types/wcardinal/ui/d-view.d.ts +4 -4
  2. package/dist/types/wcardinal/ui/shape/e-shape-connector-bodies.d.ts +3 -0
  3. package/dist/types/wcardinal/ui/shape/e-shape-connector-body-impl.d.ts +24 -0
  4. package/dist/types/wcardinal/ui/shape/e-shape-connector-body.d.ts +14 -0
  5. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge-container.d.ts +3 -0
  6. package/dist/types/wcardinal/ui/shape/index.d.ts +3 -0
  7. package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-line.d.ts +9 -2
  8. package/dist/wcardinal/ui/d-view.js.map +1 -1
  9. package/dist/wcardinal/ui/shape/e-shape-connector-bodies.js +57 -0
  10. package/dist/wcardinal/ui/shape/e-shape-connector-bodies.js.map +1 -0
  11. package/dist/wcardinal/ui/shape/e-shape-connector-body-impl.js +88 -0
  12. package/dist/wcardinal/ui/shape/e-shape-connector-body-impl.js.map +1 -0
  13. package/dist/wcardinal/ui/shape/e-shape-connector-body.js +6 -0
  14. package/dist/wcardinal/ui/shape/e-shape-connector-body.js.map +1 -0
  15. package/dist/wcardinal/ui/shape/e-shape-connector-edge-container-impl.js.map +1 -1
  16. package/dist/wcardinal/ui/shape/e-shape-connector-edge-container.js.map +1 -1
  17. package/dist/wcardinal/ui/shape/index.js +3 -0
  18. package/dist/wcardinal/ui/shape/index.js.map +1 -1
  19. package/dist/wcardinal/ui/shape/variant/deserialize-connector-line.js +21 -2
  20. package/dist/wcardinal/ui/shape/variant/deserialize-connector-line.js.map +1 -1
  21. package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js +106 -81
  22. package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js.map +1 -1
  23. package/dist/wcardinal-ui-theme-dark.js +1 -1
  24. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  25. package/dist/wcardinal-ui-theme-white.js +1 -1
  26. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  27. package/dist/wcardinal-ui.cjs.js +271 -84
  28. package/dist/wcardinal-ui.js +271 -84
  29. package/dist/wcardinal-ui.min.js +2 -2
  30. package/dist/wcardinal-ui.min.js.map +1 -1
  31. 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(_this.toValues(-hx, -hy, +hx, +hy, 0, 0, []));
27
- _this._edge = new EShapeConnectorEdgeContainerImpl(_this, function () {
28
- _this.onEdgeChange();
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.onEdgeChange = function () {
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
- // Left
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
- // Right
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
- this.toValues(tailLocalX - px, tailLocalY - py, headLocalX - px, headLocalY - py, tailMargin, headMargin, values);
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
- result[15] = manager.addResource("[" + this._edge.serialize(manager) + "," + this._points.serialize(manager) + "]");
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"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.148.0
2
+ Winter Cardinal UI v0.150.2
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.148.0
2
+ Winter Cardinal UI v0.150.2
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.148.0
2
+ Winter Cardinal UI v0.150.2
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.148.0
2
+ Winter Cardinal UI v0.150.2
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5