@wcardinal/wcardinal-ui 0.150.1 → 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.
@@ -1,3 +1,3 @@
1
1
  export declare class EShapeConnectorBodies {
2
- static from(values: number[]): number[];
2
+ static from(values: number[], tailMargin: number, headMargin: number): number[];
3
3
  }
@@ -5,14 +5,35 @@
5
5
  var EShapeConnectorBodies = /** @class */ (function () {
6
6
  function EShapeConnectorBodies() {
7
7
  }
8
- EShapeConnectorBodies.from = function (values) {
8
+ EShapeConnectorBodies.from = function (values, tailMargin, headMargin) {
9
9
  var result = [];
10
10
  var length = values.length;
11
11
  if (4 < length) {
12
+ var threshold = 0.000001;
12
13
  var x0 = values[0];
13
14
  var y0 = values[1];
15
+ if (tailMargin !== 0) {
16
+ var ex = x0 - values[2];
17
+ var ey = y0 - values[3];
18
+ var n = ex * ex + ey * ey;
19
+ if (threshold < n) {
20
+ var f = tailMargin / Math.sqrt(n);
21
+ x0 += ex * f;
22
+ y0 += ey * f;
23
+ }
24
+ }
14
25
  var x1 = values[length - 2];
15
26
  var y1 = values[length - 1];
27
+ if (headMargin !== 0) {
28
+ var ex = x1 - values[length - 4];
29
+ var ey = y1 - values[length - 3];
30
+ var n = ex * ex + ey * ey;
31
+ if (threshold < n) {
32
+ var f = headMargin / Math.sqrt(n);
33
+ x1 += ex * f;
34
+ y1 += ey * f;
35
+ }
36
+ }
16
37
  var cx = (x1 + x0) * 0.5;
17
38
  var cy = (y1 + y0) * 0.5;
18
39
  var dx = x1 - x0;
@@ -21,11 +42,11 @@ var EShapeConnectorBodies = /** @class */ (function () {
21
42
  var c = Math.cos(a);
22
43
  var s = Math.sin(a);
23
44
  var l = dx * dx + dy * dy;
24
- var m = 0.000001 < l ? 1 / Math.sqrt(l) : 1;
45
+ var m = threshold < l ? 1 / Math.sqrt(l) : 1;
25
46
  for (var i = 2, imax = length - 2; i < imax; i += 2) {
26
47
  var x = values[i + 0] - cx;
27
48
  var y = values[i + 1] - cy;
28
- result.push((c * x - s * y) * m, (c * y + s * x) * m);
49
+ result.push((c * x + s * y) * m, (c * y - s * x) * m);
29
50
  }
30
51
  }
31
52
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-connector-bodies.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-connector-bodies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;IAAA;IA0BA,CAAC;IAzBO,0BAAI,GAAX,UAAY,MAAgB;QAC3B,IAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,MAAM,EAAE;YACf,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,IAAM,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAM,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,IAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;YAC3B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACnB,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACnB,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,IAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAC5B,IAAM,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;gBACpD,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACtD;SACD;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IACF,4BAAC;AAAD,CAAC,AA1BD,IA0BC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport class EShapeConnectorBodies {\n\tstatic from(values: number[]): number[] {\n\t\tconst result: number[] = [];\n\t\tconst length = values.length;\n\t\tif (4 < length) {\n\t\t\tconst x0 = values[0];\n\t\t\tconst y0 = values[1];\n\t\t\tconst x1 = values[length - 2];\n\t\t\tconst y1 = values[length - 1];\n\t\t\tconst cx = (x1 + x0) * 0.5;\n\t\t\tconst cy = (y1 + y0) * 0.5;\n\t\t\tconst dx = x1 - x0;\n\t\t\tconst dy = y1 - y0;\n\t\t\tconst a = Math.atan2(dy, dx);\n\t\t\tconst c = Math.cos(a);\n\t\t\tconst s = Math.sin(a);\n\t\t\tconst l = dx * dx + dy * dy;\n\t\t\tconst m = 0.000001 < l ? 1 / Math.sqrt(l) : 1;\n\t\t\tfor (let i = 2, imax = length - 2; i < imax; i += 2) {\n\t\t\t\tconst x = values[i + 0] - cx;\n\t\t\t\tconst y = values[i + 1] - cy;\n\t\t\t\tresult.push((c * x - s * y) * m, (c * y + s * x) * m);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-connector-bodies.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-connector-bodies.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport class EShapeConnectorBodies {\n\tstatic from(values: number[], tailMargin: number, headMargin: number): number[] {\n\t\tconst result: number[] = [];\n\t\tconst length = values.length;\n\t\tif (4 < length) {\n\t\t\tconst threshold = 0.000001;\n\n\t\t\tlet x0 = values[0];\n\t\t\tlet y0 = values[1];\n\t\t\tif (tailMargin !== 0) {\n\t\t\t\tconst ex = x0 - values[2];\n\t\t\t\tconst ey = y0 - values[3];\n\t\t\t\tconst n = ex * ex + ey * ey;\n\t\t\t\tif (threshold < n) {\n\t\t\t\t\tconst f = tailMargin / Math.sqrt(n);\n\t\t\t\t\tx0 += ex * f;\n\t\t\t\t\ty0 += ey * f;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet x1 = values[length - 2];\n\t\t\tlet y1 = values[length - 1];\n\t\t\tif (headMargin !== 0) {\n\t\t\t\tconst ex = x1 - values[length - 4];\n\t\t\t\tconst ey = y1 - values[length - 3];\n\t\t\t\tconst n = ex * ex + ey * ey;\n\t\t\t\tif (threshold < n) {\n\t\t\t\t\tconst f = headMargin / Math.sqrt(n);\n\t\t\t\t\tx1 += ex * f;\n\t\t\t\t\ty1 += ey * f;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst cx = (x1 + x0) * 0.5;\n\t\t\tconst cy = (y1 + y0) * 0.5;\n\t\t\tconst dx = x1 - x0;\n\t\t\tconst dy = y1 - y0;\n\t\t\tconst a = Math.atan2(dy, dx);\n\t\t\tconst c = Math.cos(a);\n\t\t\tconst s = Math.sin(a);\n\t\t\tconst l = dx * dx + dy * dy;\n\t\t\tconst m = threshold < l ? 1 / Math.sqrt(l) : 1;\n\t\t\tfor (let i = 2, imax = length - 2; i < imax; i += 2) {\n\t\t\t\tconst x = values[i + 0] - cx;\n\t\t\t\tconst y = values[i + 1] - cy;\n\t\t\t\tresult.push((c * x + s * y) * m, (c * y - s * x) * m);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n}\n"]}
@@ -24,7 +24,8 @@ export var onConnectorLineDeserialized = function (item, shape, mapping, manager
24
24
  var points = shape.points;
25
25
  points.deserialize(parsed[1], manager);
26
26
  // Edge
27
- shape.edge.deserialize(parsed[0], mapping, manager);
27
+ var edge = shape.edge;
28
+ edge.deserialize(parsed[0], mapping, manager);
28
29
  // Body
29
30
  var body = shape.body;
30
31
  var bodyId = parsed[2];
@@ -33,7 +34,7 @@ export var onConnectorLineDeserialized = function (item, shape, mapping, manager
33
34
  }
34
35
  else {
35
36
  // The following is for backward compatibility.
36
- body.set(EShapeConnectorBodies.from(points.values));
37
+ body.set(EShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin));
37
38
  }
38
39
  // Unlock
39
40
  shape.unlock();
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-connector-line.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACvC,IAA4B,EAC5B,OAA6C;IAE7C,OAAO,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAC1C,IAA4B,EAC5B,KAAa,EACb,OAA0B,EAC1B,OAA6C;IAE7C,IAAI,KAAK,YAAY,mBAAmB,EAAE;QACzC,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE;YACrD,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAA4B,UAAU,CAAC,CAAC;YACzE,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAA8B,CAAC;gBACxE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aAEzC;YAED,OAAO;YACP,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,SAAS;YACT,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEvC,OAAO;YACP,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAEpD,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAC3C;iBAAM;gBACN,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;aACpD;YAED,SAAS;YACT,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;KACD;AACF,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorBodies } from \"../e-shape-connector-bodies\";\nimport { EShapeDeserializer } from \"../e-shape-deserializer\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeUuidMapping } from \"../e-shape-uuid-mapping\";\nimport { EShapeConnectorLine } from \"./e-shape-connector-line\";\n\nexport const deserializeConnectorLine = (\n\titem: DDiagramSerializedItem,\n\tmanager: EShapeResourceManagerDeserialization\n): Promise<EShapeConnectorLine> | EShapeConnectorLine | null => {\n\treturn EShapeDeserializer.deserialize(item, manager, new EShapeConnectorLine());\n};\n\nexport const onConnectorLineDeserialized = (\n\titem: DDiagramSerializedItem,\n\tshape: EShape,\n\tmapping: EShapeUuidMapping,\n\tmanager: EShapeResourceManagerDeserialization\n): void => {\n\tif (shape instanceof EShapeConnectorLine) {\n\t\tconst resources = manager.resources;\n\t\tconst resourceId = item[15];\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<[number, number, number?]>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as [number, number, number?];\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\n\t\t\t}\n\n\t\t\t// Lock\n\t\t\tshape.lock();\n\n\t\t\t// Points\n\t\t\tconst points = shape.points;\n\t\t\tpoints.deserialize(parsed[1], manager);\n\n\t\t\t// Edge\n\t\t\tshape.edge.deserialize(parsed[0], mapping, manager);\n\n\t\t\t// Body\n\t\t\tconst body = shape.body;\n\t\t\tconst bodyId = parsed[2];\n\t\t\tif (bodyId != null) {\n\t\t\t\tbody.deserialize(bodyId, mapping, manager);\n\t\t\t} else {\n\t\t\t\t// The following is for backward compatibility.\n\t\t\t\tbody.set(EShapeConnectorBodies.from(points.values));\n\t\t\t}\n\n\t\t\t// Unlock\n\t\t\tshape.unlock();\n\t\t}\n\t}\n};\n"]}
1
+ {"version":3,"file":"deserialize-connector-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-connector-line.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACvC,IAA4B,EAC5B,OAA6C;IAE7C,OAAO,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAC1C,IAA4B,EAC5B,KAAa,EACb,OAA0B,EAC1B,OAA6C;IAE7C,IAAI,KAAK,YAAY,mBAAmB,EAAE;QACzC,IAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE;YACrD,IAAI,MAAM,GAAG,OAAO,CAAC,YAAY,CAA4B,UAAU,CAAC,CAAC;YACzE,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAA8B,CAAC;gBACxE,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;aACzC;YAED,OAAO;YACP,KAAK,CAAC,IAAI,EAAE,CAAC;YAEb,SAAS;YACT,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEvC,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,OAAO;YACP,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,IAAI,IAAI,EAAE;gBACnB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAC3C;iBAAM;gBACN,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CACP,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7E,CAAC;aACF;YAED,SAAS;YACT,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;KACD;AACF,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeConnectorBodies } from \"../e-shape-connector-bodies\";\nimport { EShapeDeserializer } from \"../e-shape-deserializer\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeUuidMapping } from \"../e-shape-uuid-mapping\";\nimport { EShapeConnectorLine } from \"./e-shape-connector-line\";\n\nexport const deserializeConnectorLine = (\n\titem: DDiagramSerializedItem,\n\tmanager: EShapeResourceManagerDeserialization\n): Promise<EShapeConnectorLine> | EShapeConnectorLine | null => {\n\treturn EShapeDeserializer.deserialize(item, manager, new EShapeConnectorLine());\n};\n\nexport const onConnectorLineDeserialized = (\n\titem: DDiagramSerializedItem,\n\tshape: EShape,\n\tmapping: EShapeUuidMapping,\n\tmanager: EShapeResourceManagerDeserialization\n): void => {\n\tif (shape instanceof EShapeConnectorLine) {\n\t\tconst resources = manager.resources;\n\t\tconst resourceId = item[15];\n\t\tif (0 <= resourceId && resourceId < resources.length) {\n\t\t\tlet parsed = manager.getExtension<[number, number, number?]>(resourceId);\n\t\t\tif (parsed == null) {\n\t\t\t\tparsed = JSON.parse(resources[resourceId]) as [number, number, number?];\n\t\t\t\tmanager.setExtension(resourceId, parsed);\n\t\t\t}\n\n\t\t\t// Lock\n\t\t\tshape.lock();\n\n\t\t\t// Points\n\t\t\tconst points = shape.points;\n\t\t\tpoints.deserialize(parsed[1], manager);\n\n\t\t\t// Edge\n\t\t\tconst edge = shape.edge;\n\t\t\tedge.deserialize(parsed[0], mapping, manager);\n\n\t\t\t// Body\n\t\t\tconst body = shape.body;\n\t\t\tconst bodyId = parsed[2];\n\t\t\tif (bodyId != null) {\n\t\t\t\tbody.deserialize(bodyId, mapping, manager);\n\t\t\t} else {\n\t\t\t\t// The following is for backward compatibility.\n\t\t\t\tbody.set(\n\t\t\t\t\tEShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Unlock\n\t\t\tshape.unlock();\n\t\t}\n\t}\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.150.1
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.150.1
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.150.1
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.150.1
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.150.1
2
+ Winter Cardinal UI v0.150.2
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -30918,14 +30918,35 @@ var createLineUploaded = function (buffer, shape, voffset, ioffset, antialiasWei
30918
30918
  var EShapeConnectorBodies = /** @class */ (function () {
30919
30919
  function EShapeConnectorBodies() {
30920
30920
  }
30921
- EShapeConnectorBodies.from = function (values) {
30921
+ EShapeConnectorBodies.from = function (values, tailMargin, headMargin) {
30922
30922
  var result = [];
30923
30923
  var length = values.length;
30924
30924
  if (4 < length) {
30925
+ var threshold = 0.000001;
30925
30926
  var x0 = values[0];
30926
30927
  var y0 = values[1];
30928
+ if (tailMargin !== 0) {
30929
+ var ex = x0 - values[2];
30930
+ var ey = y0 - values[3];
30931
+ var n = ex * ex + ey * ey;
30932
+ if (threshold < n) {
30933
+ var f = tailMargin / Math.sqrt(n);
30934
+ x0 += ex * f;
30935
+ y0 += ey * f;
30936
+ }
30937
+ }
30927
30938
  var x1 = values[length - 2];
30928
30939
  var y1 = values[length - 1];
30940
+ if (headMargin !== 0) {
30941
+ var ex = x1 - values[length - 4];
30942
+ var ey = y1 - values[length - 3];
30943
+ var n = ex * ex + ey * ey;
30944
+ if (threshold < n) {
30945
+ var f = headMargin / Math.sqrt(n);
30946
+ x1 += ex * f;
30947
+ y1 += ey * f;
30948
+ }
30949
+ }
30929
30950
  var cx = (x1 + x0) * 0.5;
30930
30951
  var cy = (y1 + y0) * 0.5;
30931
30952
  var dx = x1 - x0;
@@ -30934,11 +30955,11 @@ var EShapeConnectorBodies = /** @class */ (function () {
30934
30955
  var c = Math.cos(a);
30935
30956
  var s = Math.sin(a);
30936
30957
  var l = dx * dx + dy * dy;
30937
- var m = 0.000001 < l ? 1 / Math.sqrt(l) : 1;
30958
+ var m = threshold < l ? 1 / Math.sqrt(l) : 1;
30938
30959
  for (var i = 2, imax = length - 2; i < imax; i += 2) {
30939
30960
  var x = values[i + 0] - cx;
30940
30961
  var y = values[i + 1] - cy;
30941
- result.push((c * x - s * y) * m, (c * y + s * x) * m);
30962
+ result.push((c * x + s * y) * m, (c * y - s * x) * m);
30942
30963
  }
30943
30964
  }
30944
30965
  return result;
@@ -31738,7 +31759,8 @@ var onConnectorLineDeserialized = function (item, shape, mapping, manager) {
31738
31759
  var points = shape.points;
31739
31760
  points.deserialize(parsed[1], manager);
31740
31761
  // Edge
31741
- shape.edge.deserialize(parsed[0], mapping, manager);
31762
+ var edge = shape.edge;
31763
+ edge.deserialize(parsed[0], mapping, manager);
31742
31764
  // Body
31743
31765
  var body = shape.body;
31744
31766
  var bodyId = parsed[2];
@@ -31747,7 +31769,7 @@ var onConnectorLineDeserialized = function (item, shape, mapping, manager) {
31747
31769
  }
31748
31770
  else {
31749
31771
  // The following is for backward compatibility.
31750
- body.set(EShapeConnectorBodies.from(points.values));
31772
+ body.set(EShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin));
31751
31773
  }
31752
31774
  // Unlock
31753
31775
  shape.unlock();
@@ -1,5 +1,5 @@
1
1
  /*
2
- Winter Cardinal UI v0.150.1
2
+ Winter Cardinal UI v0.150.2
3
3
  Copyright (C) 2019 Toshiba Corporation
4
4
  SPDX-License-Identifier: Apache-2.0
5
5
 
@@ -30915,14 +30915,35 @@
30915
30915
  var EShapeConnectorBodies = /** @class */ (function () {
30916
30916
  function EShapeConnectorBodies() {
30917
30917
  }
30918
- EShapeConnectorBodies.from = function (values) {
30918
+ EShapeConnectorBodies.from = function (values, tailMargin, headMargin) {
30919
30919
  var result = [];
30920
30920
  var length = values.length;
30921
30921
  if (4 < length) {
30922
+ var threshold = 0.000001;
30922
30923
  var x0 = values[0];
30923
30924
  var y0 = values[1];
30925
+ if (tailMargin !== 0) {
30926
+ var ex = x0 - values[2];
30927
+ var ey = y0 - values[3];
30928
+ var n = ex * ex + ey * ey;
30929
+ if (threshold < n) {
30930
+ var f = tailMargin / Math.sqrt(n);
30931
+ x0 += ex * f;
30932
+ y0 += ey * f;
30933
+ }
30934
+ }
30924
30935
  var x1 = values[length - 2];
30925
30936
  var y1 = values[length - 1];
30937
+ if (headMargin !== 0) {
30938
+ var ex = x1 - values[length - 4];
30939
+ var ey = y1 - values[length - 3];
30940
+ var n = ex * ex + ey * ey;
30941
+ if (threshold < n) {
30942
+ var f = headMargin / Math.sqrt(n);
30943
+ x1 += ex * f;
30944
+ y1 += ey * f;
30945
+ }
30946
+ }
30926
30947
  var cx = (x1 + x0) * 0.5;
30927
30948
  var cy = (y1 + y0) * 0.5;
30928
30949
  var dx = x1 - x0;
@@ -30931,11 +30952,11 @@
30931
30952
  var c = Math.cos(a);
30932
30953
  var s = Math.sin(a);
30933
30954
  var l = dx * dx + dy * dy;
30934
- var m = 0.000001 < l ? 1 / Math.sqrt(l) : 1;
30955
+ var m = threshold < l ? 1 / Math.sqrt(l) : 1;
30935
30956
  for (var i = 2, imax = length - 2; i < imax; i += 2) {
30936
30957
  var x = values[i + 0] - cx;
30937
30958
  var y = values[i + 1] - cy;
30938
- result.push((c * x - s * y) * m, (c * y + s * x) * m);
30959
+ result.push((c * x + s * y) * m, (c * y - s * x) * m);
30939
30960
  }
30940
30961
  }
30941
30962
  return result;
@@ -31735,7 +31756,8 @@
31735
31756
  var points = shape.points;
31736
31757
  points.deserialize(parsed[1], manager);
31737
31758
  // Edge
31738
- shape.edge.deserialize(parsed[0], mapping, manager);
31759
+ var edge = shape.edge;
31760
+ edge.deserialize(parsed[0], mapping, manager);
31739
31761
  // Body
31740
31762
  var body = shape.body;
31741
31763
  var bodyId = parsed[2];
@@ -31744,7 +31766,7 @@
31744
31766
  }
31745
31767
  else {
31746
31768
  // The following is for backward compatibility.
31747
- body.set(EShapeConnectorBodies.from(points.values));
31769
+ body.set(EShapeConnectorBodies.from(points.values, edge.tail.margin, edge.head.margin));
31748
31770
  }
31749
31771
  // Unlock
31750
31772
  shape.unlock();