@wcardinal/wcardinal-ui 0.204.2 → 0.205.1

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 (51) hide show
  1. package/dist/types/wcardinal/ui/shape/e-shape-acceptor-impl.d.ts +3 -1
  2. package/dist/types/wcardinal/ui/shape/e-shape-acceptor.d.ts +6 -0
  3. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge-impl.d.ts +12 -3
  4. package/dist/types/wcardinal/ui/shape/e-shape-connector-edge.d.ts +13 -3
  5. package/dist/types/wcardinal/ui/shape/e-shape-type.d.ts +1 -0
  6. package/dist/types/wcardinal/ui/shape/load/index.d.ts +1 -0
  7. package/dist/types/wcardinal/ui/shape/load/load-shape-connector-elbow.d.ts +1 -0
  8. package/dist/types/wcardinal/ui/shape/variant/deserialize-connector-elbow.d.ts +4 -0
  9. package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-elbow-points-fillter.d.ts +17 -0
  10. package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-elbow.d.ts +8 -0
  11. package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-line.d.ts +4 -0
  12. package/dist/types/wcardinal/ui/shape/variant/index.d.ts +3 -0
  13. package/dist/wcardinal/ui/d-diagram-canvas.js +6 -4
  14. package/dist/wcardinal/ui/d-diagram-canvas.js.map +1 -1
  15. package/dist/wcardinal/ui/shape/e-shape-acceptor-impl.js +27 -2
  16. package/dist/wcardinal/ui/shape/e-shape-acceptor-impl.js.map +1 -1
  17. package/dist/wcardinal/ui/shape/e-shape-acceptor.js.map +1 -1
  18. package/dist/wcardinal/ui/shape/e-shape-acceptors.js +9 -9
  19. package/dist/wcardinal/ui/shape/e-shape-acceptors.js.map +1 -1
  20. package/dist/wcardinal/ui/shape/e-shape-connector-edge-impl.js +139 -28
  21. package/dist/wcardinal/ui/shape/e-shape-connector-edge-impl.js.map +1 -1
  22. package/dist/wcardinal/ui/shape/e-shape-connector-edge.js.map +1 -1
  23. package/dist/wcardinal/ui/shape/e-shape-points-marker-base.js +1 -1
  24. package/dist/wcardinal/ui/shape/e-shape-points-marker-base.js.map +1 -1
  25. package/dist/wcardinal/ui/shape/e-shape-type.js +1 -0
  26. package/dist/wcardinal/ui/shape/e-shape-type.js.map +1 -1
  27. package/dist/wcardinal/ui/shape/load/index.js +1 -0
  28. package/dist/wcardinal/ui/shape/load/index.js.map +1 -1
  29. package/dist/wcardinal/ui/shape/load/load-shape-all.js +2 -0
  30. package/dist/wcardinal/ui/shape/load/load-shape-all.js.map +1 -1
  31. package/dist/wcardinal/ui/shape/load/load-shape-connector-elbow.js +19 -0
  32. package/dist/wcardinal/ui/shape/load/load-shape-connector-elbow.js.map +1 -0
  33. package/dist/wcardinal/ui/shape/variant/deserialize-connector-elbow.js +10 -0
  34. package/dist/wcardinal/ui/shape/variant/deserialize-connector-elbow.js.map +1 -0
  35. package/dist/wcardinal/ui/shape/variant/e-shape-connector-elbow-points-fillter.js +194 -0
  36. package/dist/wcardinal/ui/shape/variant/e-shape-connector-elbow-points-fillter.js.map +1 -0
  37. package/dist/wcardinal/ui/shape/variant/e-shape-connector-elbow.js +84 -0
  38. package/dist/wcardinal/ui/shape/variant/e-shape-connector-elbow.js.map +1 -0
  39. package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js +77 -67
  40. package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js.map +1 -1
  41. package/dist/wcardinal/ui/shape/variant/index.js +3 -0
  42. package/dist/wcardinal/ui/shape/variant/index.js.map +1 -1
  43. package/dist/wcardinal-ui-theme-dark.js +1 -1
  44. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  45. package/dist/wcardinal-ui-theme-white.js +1 -1
  46. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  47. package/dist/wcardinal-ui.cjs.js +555 -111
  48. package/dist/wcardinal-ui.js +555 -111
  49. package/dist/wcardinal-ui.min.js +2 -2
  50. package/dist/wcardinal-ui.min.js.map +1 -1
  51. package/package.json +1 -1
@@ -1,9 +1,11 @@
1
- import { EShapeAcceptor, EShapeAcceptorEdge } from "./e-shape-acceptor";
1
+ import { EShapeAcceptor, EShapeAcceptorEdge, EShapeAcceptorEdgeNormal } from "./e-shape-acceptor";
2
2
  import { EShapeAcceptorType } from "./e-shape-acceptor-type";
3
3
  export declare class EShapeAcceptorImpl implements EShapeAcceptor {
4
4
  protected _edges: Map<string, EShapeAcceptorEdge>;
5
5
  constructor();
6
6
  add(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;
7
+ add(id: string, type: EShapeAcceptorType, x: number, y: number, nx: number, ny: number): boolean;
8
+ protected toNormal(x: number, y: number, nx?: number, ny?: number): EShapeAcceptorEdgeNormal;
7
9
  remove(id: string): EShapeAcceptorEdge | null;
8
10
  size(): number;
9
11
  get(id: string): EShapeAcceptorEdge | null;
@@ -1,12 +1,18 @@
1
1
  import { EShapeAcceptorType } from "./e-shape-acceptor-type";
2
+ export interface EShapeAcceptorEdgeNormal {
3
+ x: number;
4
+ y: number;
5
+ }
2
6
  export interface EShapeAcceptorEdge {
3
7
  type: EShapeAcceptorType;
4
8
  x: number;
5
9
  y: number;
10
+ normal: EShapeAcceptorEdgeNormal;
6
11
  }
7
12
  export interface EShapeAcceptor {
8
13
  size(): number;
9
14
  add(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;
15
+ add(id: string, type: EShapeAcceptorType, x: number, y: number, nx: number, ny: number): boolean;
10
16
  remove(id: string): EShapeAcceptorEdge | null;
11
17
  get(id: string): EShapeAcceptorEdge | null;
12
18
  each(iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this;
@@ -1,4 +1,4 @@
1
- import { IPoint, Point } from "pixi.js";
1
+ import { IPoint, Matrix } from "pixi.js";
2
2
  import { EShape } from "./e-shape";
3
3
  import { EShapeConnector } from "./e-shape-connector";
4
4
  import { EShapeConnectorEdge } from "./e-shape-connector-edge";
@@ -7,17 +7,21 @@ import { EShapeResourceManagerDeserialization } from "./e-shape-resource-manager
7
7
  import { EShapeResourceManagerSerialization } from "./e-shape-resource-manager-serialization";
8
8
  import { EShapeUuidMapping } from "./e-shape-uuid-mapping";
9
9
  export declare class EShapeConnectorEdgeImpl implements EShapeConnectorEdge {
10
- protected static WORK_UPDATE_LOCAL?: Point;
10
+ protected static WORK_MATRIX?: Matrix;
11
11
  protected _parent: EShapeConnector;
12
12
  protected _onChange: () => void;
13
13
  protected _acceptor: EShapeConnectorEdgeAcceptor;
14
14
  protected _localIdRequired: number;
15
15
  protected _localId: number;
16
16
  protected _local: IPoint;
17
+ protected _normalIdRequired: number;
18
+ protected _normalId: number;
19
+ protected _normal: IPoint;
17
20
  protected _margin: number;
18
21
  protected _lockCount: number;
19
22
  protected _isAcceptorChanged: boolean;
20
23
  protected _isLocalChanged: boolean;
24
+ protected _isNormalChanged: boolean;
21
25
  protected _isOtherChanged: boolean;
22
26
  constructor(parent: EShapeConnector, onChange: () => void);
23
27
  lock(): void;
@@ -25,15 +29,20 @@ export declare class EShapeConnectorEdgeImpl implements EShapeConnectorEdge {
25
29
  get acceptor(): EShapeConnectorEdgeAcceptor;
26
30
  get local(): IPoint;
27
31
  get localId(): number;
32
+ get normal(): IPoint;
33
+ get normalId(): number;
28
34
  get margin(): number;
29
35
  set margin(margin: number);
30
- set(shape?: EShape | null, edge?: string | null, margin?: number, localX?: number, localY?: number): this;
36
+ set(shape?: EShape | null, edge?: string | null, margin?: number, x?: number, y?: number, nx?: number, ny?: number): this;
31
37
  copy(source: EShapeConnectorEdge): this;
32
38
  serialize(manager: EShapeResourceManagerSerialization): number;
33
39
  deserialize(resourceId: number, mapping: EShapeUuidMapping, manager: EShapeResourceManagerDeserialization): void;
34
40
  fit(forcibly?: boolean): this;
41
+ protected doFit(): boolean;
42
+ protected toAcceptorTransform(shape: EShape): Matrix;
35
43
  onAcceptorChange(): void;
36
44
  protected onLocalChange(): void;
45
+ protected onNormalChange(): void;
37
46
  protected onOtherChange(): void;
38
47
  attach(): this;
39
48
  detach(): this;
@@ -4,15 +4,25 @@ import { EShapeConnectorEdgeAcceptor } from "./e-shape-connector-edge-acceptor";
4
4
  import { EShapeResourceManagerDeserialization } from "./e-shape-resource-manager-deserialization";
5
5
  import { EShapeResourceManagerSerialization } from "./e-shape-resource-manager-serialization";
6
6
  import { EShapeUuidMapping } from "./e-shape-uuid-mapping";
7
- export declare type EShapeConnectorEdgeSerialized = [number | null, number, number, number, number];
7
+ export declare type EShapeConnectorEdgeSerialized = [
8
+ number | null,
9
+ number,
10
+ number,
11
+ number,
12
+ number,
13
+ number?,
14
+ number?
15
+ ];
8
16
  export interface EShapeConnectorEdge {
9
17
  readonly acceptor: EShapeConnectorEdgeAcceptor;
10
18
  readonly local: IPoint;
11
- localId: number;
19
+ readonly localId: number;
20
+ readonly normal: IPoint;
21
+ readonly normalId: number;
12
22
  margin: number;
13
23
  lock(): void;
14
24
  unlock(): void;
15
- set(shape?: EShape | null, edge?: string | null, margin?: number, localX?: number, localY?: number): this;
25
+ set(shape?: EShape | null, edge?: string | null, margin?: number, x?: number, y?: number, nx?: number, ny?: number): this;
16
26
  copy(source: EShapeConnectorEdge): this;
17
27
  fit(forcibly?: boolean): this;
18
28
  serialize(manager: EShapeResourceManagerSerialization): number;
@@ -22,6 +22,7 @@ export declare const EShapeType: {
22
22
  readonly BUTTON: 20;
23
23
  readonly RECTANGLE_PIVOTED: 21;
24
24
  readonly CONNECTOR_LINE: 22;
25
+ readonly CONNECTOR_ELBOW: 23;
25
26
  readonly EXTENSION: 1000;
26
27
  };
27
28
  export declare type EShapeType = number;
@@ -3,6 +3,7 @@ export * from "./load-shape-bar";
3
3
  export * from "./load-shape-button";
4
4
  export * from "./load-shape-circle";
5
5
  export * from "./load-shape-clipper-ex";
6
+ export * from "./load-shape-connector-elbow";
6
7
  export * from "./load-shape-connector-line";
7
8
  export * from "./load-shape-embedded";
8
9
  export * from "./load-shape-group-shadowed";
@@ -0,0 +1 @@
1
+ export declare const loadShapeConnectorElbow: () => void;
@@ -0,0 +1,4 @@
1
+ import { DDiagramSerializedItem } from "../../d-diagram-serialized";
2
+ import { EShapeResourceManagerDeserialization } from "../e-shape-resource-manager-deserialization";
3
+ import { EShapeConnectorLine } from "./e-shape-connector-line";
4
+ export declare const deserializeConnectorElbow: (item: DDiagramSerializedItem, manager: EShapeResourceManagerDeserialization, shape?: EShapeConnectorLine | undefined) => Promise<EShapeConnectorLine> | EShapeConnectorLine;
@@ -0,0 +1,17 @@
1
+ export declare class EShapeConnectorElbowPointsFillter {
2
+ protected _x: number;
3
+ protected _y: number;
4
+ protected _z: number;
5
+ protected _values: number[];
6
+ index: number;
7
+ protected _threshold: number;
8
+ constructor(x: number, y: number, values: number[]);
9
+ get x(): number;
10
+ set x(x: number);
11
+ get y(): number;
12
+ set y(y: number);
13
+ tail(x: number, y: number, nx: number, ny: number, sxh: number, syh: number, margin: number): void;
14
+ middle(x: number, y: number): void;
15
+ head(x: number, y: number, nx: number, ny: number, sxh: number, syh: number, margin: number): void;
16
+ margin(tail: number, head: number): void;
17
+ }
@@ -0,0 +1,8 @@
1
+ import { EShapeType } from "../e-shape-type";
2
+ import { EShapeConnectorBody } from "../e-shape-connector-body";
3
+ import { EShapeConnectorLine } from "./e-shape-connector-line";
4
+ import { EShapeConnectorEdge } from "../e-shape-connector-edge";
5
+ export declare class EShapeConnectorElbow extends EShapeConnectorLine {
6
+ constructor(type?: EShapeType);
7
+ protected fillPoints(tail: EShapeConnectorEdge, tailMargin: number, head: EShapeConnectorEdge, headMargin: number, body: EShapeConnectorBody, px: number, py: number, values: number[]): void;
8
+ }
@@ -8,14 +8,17 @@ import { DDiagramSerializedItem } from "../../d-diagram-serialized";
8
8
  import { EShapeResourceManagerSerialization } from "../e-shape-resource-manager-serialization";
9
9
  import { EShape } from "../e-shape";
10
10
  import { EShapeConnectorBody } from "../e-shape-connector-body";
11
+ import { EShapeConnectorEdge } from "../e-shape-connector-edge";
11
12
  export declare class EShapeConnectorLine extends EShapeLineBase implements EShapeConnector {
12
13
  protected static WORK_BOUNDARY: [number, number, number, number];
13
14
  protected _edge: EShapeConnectorEdgeContainer;
14
15
  protected _body: EShapeConnectorBody;
15
16
  protected _points: EShapeLinePoints;
16
17
  protected _tailLocalId: number;
18
+ protected _tailNormalId: number;
17
19
  protected _tailMargin: number;
18
20
  protected _headLocalId: number;
21
+ protected _headNormalId: number;
19
22
  protected _headMargin: number;
20
23
  protected _bodyId: number;
21
24
  protected _lockCount: number;
@@ -29,6 +32,7 @@ export declare class EShapeConnectorLine extends EShapeLineBase implements EShap
29
32
  onAttach(): void;
30
33
  onDetach(): void;
31
34
  protected onChange(): void;
35
+ protected fillPoints(tail: EShapeConnectorEdge, tailMargin: number, head: EShapeConnectorEdge, headMargin: number, body: EShapeConnectorBody, px: number, py: number, values: number[]): void;
32
36
  copy(source: EShape, part?: EShapeCopyPart): this;
33
37
  clone(): EShapeConnectorLine;
34
38
  serialize(manager: EShapeResourceManagerSerialization): DDiagramSerializedItem;
@@ -72,6 +72,7 @@ export * from "./deserialize-bar";
72
72
  export * from "./deserialize-base";
73
73
  export * from "./deserialize-button";
74
74
  export * from "./deserialize-circle";
75
+ export * from "./deserialize-connector-elbow";
75
76
  export * from "./deserialize-connector-line";
76
77
  export * from "./deserialize-embedded";
77
78
  export * from "./deserialize-embedded-layer";
@@ -104,6 +105,8 @@ export * from "./e-shape-button-runtime-action";
104
105
  export * from "./e-shape-button-runtime";
105
106
  export * from "./e-shape-button";
106
107
  export * from "./e-shape-circle";
108
+ export * from "./e-shape-connector-elbow-points-fillter";
109
+ export * from "./e-shape-connector-elbow";
107
110
  export * from "./e-shape-connector-line";
108
111
  export * from "./e-shape-embedded-datum";
109
112
  export * from "./e-shape-embedded-layer-container";
@@ -103,13 +103,15 @@ var DDiagramCanvas = /** @class */ (function (_super) {
103
103
  // Children
104
104
  var children = shape.children;
105
105
  if (0 < children.length) {
106
+ var newDataShape = dataShape;
107
+ var newContainerShape = containerShape;
106
108
  if (shape instanceof EShapeEmbedded) {
107
- if (dataShape == null) {
108
- dataShape = shape;
109
+ if (newDataShape == null) {
110
+ newDataShape = shape;
109
111
  }
110
- containerShape = shape;
112
+ newContainerShape = shape;
111
113
  }
112
- this_1.initialize_(children, dataShape, containerShape, mapper, formatToFormatter, initialToInitialValue, actionValueToRuntime, canvasTicker, canvasShape, canvasData, actionables);
114
+ this_1.initialize_(children, newDataShape, newContainerShape, mapper, formatToFormatter, initialToInitialValue, actionValueToRuntime, canvasTicker, canvasShape, canvasData, actionables);
113
115
  }
114
116
  };
115
117
  var this_1 = this;
@@ -1 +1 @@
1
- {"version":3,"file":"d-diagram-canvas.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-diagram-canvas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, IPoint, Point, Renderer } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport {\n\tDDiagramCanvasBase,\n\tDDiagramCanvasBaseOptions,\n\tDThemeDiagramCanvasBase\n} from \"./d-diagram-canvas-base\";\nimport { EShape } from \"./shape/e-shape\";\nimport { EShapeBase } from \"./shape/variant/e-shape-base\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { EShapeActionValue } from \"./shape/action/e-shape-action-value\";\nimport { EShapeActionRuntime } from \"./shape/action/e-shape-action-runtime\";\nimport { DDiagramDataMapper } from \"./d-diagram-data-mapper\";\nimport { EShapeRuntimes } from \"./shape/e-shape-runtimes\";\nimport { EShapeRuntime } from \"./shape/e-shape-runtime\";\nimport { EShapeDataValue } from \"./shape/e-shape-data-value\";\nimport { EShapeDataValueType } from \"./shape/e-shape-data-value-type\";\nimport { EShapeContainer } from \"./shape/e-shape-container\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { DDiagramCanvasData } from \"./d-diagram-canvas-data\";\nimport { DDiagramCanvasDataImpl } from \"./d-diagram-canvas-data-impl\";\nimport { DDiagramCanvasShape } from \"./d-diagram-canvas-shape\";\nimport { DDiagramCanvasShapeImpl } from \"./d-diagram-canvas-shape-impl\";\nimport { DDiagramCanvasTicker } from \"./d-diagram-canvas-ticker\";\nimport { DDiagramCanvasTickerImpl } from \"./d-diagram-canvas-ticker-impl\";\nimport { EShapeDataValueScope } from \"./shape/e-shape-data-value-scope\";\nimport { EShapeEmbedded } from \"./shape/variant/e-shape-embedded\";\nimport { EShapeDataValueExtensions } from \"./shape/e-shape-data-value-extensions\";\nimport { EShapeActionEnvironment } from \"./shape/action/e-shape-action-environment\";\n\nexport interface DDiagramCanvasOptions<THEME extends DThemeDiagramCanvas = DThemeDiagramCanvas>\n\textends DDiagramCanvasBaseOptions<THEME> {}\n\nexport interface DThemeDiagramCanvas extends DThemeDiagramCanvasBase {}\n\nexport class DDiagramCanvas<\n\tTHEME extends DThemeDiagramCanvas = DThemeDiagramCanvas,\n\tOPTIONS extends DDiagramCanvasOptions<THEME> = DDiagramCanvasOptions<THEME>\n> extends DDiagramCanvasBase<THEME, OPTIONS> {\n\tprotected static WORK_DBLCLICK?: Point;\n\n\tprotected _data: DDiagramCanvasData;\n\tprotected _shape: DDiagramCanvasShape;\n\tprotected _ticker: DDiagramCanvasTicker;\n\tprotected _actionables: EShape[];\n\n\tprotected _overed?: EShape | null;\n\tprotected _downed?: EShape | null;\n\tprotected _downeds: Set<EShape>;\n\n\tprotected _updateBound: () => void;\n\n\tconstructor(options: OPTIONS) {\n\t\tsuper(options);\n\t\tthis._data = new DDiagramCanvasDataImpl();\n\t\tthis._shape = new DDiagramCanvasShapeImpl();\n\t\tthis._ticker = new DDiagramCanvasTickerImpl(this);\n\t\tthis._actionables = [];\n\t\tthis._downeds = new Set<EShape>();\n\t\tthis._updateBound = (): void => {\n\t\t\tDApplications.update(this);\n\t\t};\n\t}\n\n\tget data(): DDiagramCanvasData {\n\t\treturn this._data;\n\t}\n\n\tget shape(): DDiagramCanvasShape {\n\t\treturn this._shape;\n\t}\n\n\tget ticker(): DDiagramCanvasTicker {\n\t\treturn this._ticker;\n\t}\n\n\tinitialize(shapes: EShape[], mapper?: DDiagramDataMapper | null): void {\n\t\tconst time = Date.now();\n\t\tconst actionables = this._actionables;\n\t\tthis.initialize_(\n\t\t\tshapes,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tmapper,\n\t\t\tnew Map<string, (value: unknown) => unknown>(),\n\t\t\tnew Map<string, unknown>(),\n\t\t\tnew Map<EShapeActionValue, EShapeActionRuntime>(),\n\t\t\tthis._ticker,\n\t\t\tthis._shape,\n\t\t\tthis._data,\n\t\t\tactionables\n\t\t);\n\t\tconst layers = this._layer.children;\n\t\tfor (let i = 0, imax = layers.length; i < imax; ++i) {\n\t\t\tlayers[i].initialize(actionables);\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = true;\n\t\tfor (let i = 0, imax = layers.length; i < imax; ++i) {\n\t\t\tconst layerChildren = layers[i].children;\n\t\t\tfor (let j = 0, jmax = layerChildren.length; j < jmax; ++j) {\n\t\t\t\tlayerChildren[j].update(time);\n\t\t\t}\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = false;\n\t\tthis._ticker.start();\n\t}\n\n\tprotected initialize_(\n\t\tshapes: EShape[],\n\t\tdataShape: EShape | null,\n\t\tcontainerShape: EShape | null,\n\t\tmapper: DDiagramDataMapper | null | undefined,\n\t\tformatToFormatter: Map<string, (value: unknown) => unknown>,\n\t\tinitialToInitialValue: Map<string, unknown>,\n\t\tactionValueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>,\n\t\tcanvasTicker: DDiagramCanvasTicker,\n\t\tcanvasShape: DDiagramCanvasShape,\n\t\tcanvasData: DDiagramCanvasData,\n\t\tactionables: EShape[]\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\n\t\t\t// ID\n\t\t\tconst id = shape.id;\n\t\t\tif (0 < id.length) {\n\t\t\t\tcanvasShape.add(id, shape);\n\t\t\t}\n\n\t\t\t// Data\n\t\t\tthis.initData(\n\t\t\t\tshape,\n\t\t\t\tdataShape,\n\t\t\t\tcontainerShape,\n\t\t\t\tmapper,\n\t\t\t\tformatToFormatter,\n\t\t\t\tinitialToInitialValue,\n\t\t\t\tcanvasTicker,\n\t\t\t\tcanvasData\n\t\t\t);\n\n\t\t\t// Runtime\n\t\t\tconst runtime = new (EShapeRuntimes[shape.type] || EShapeRuntime)(shape);\n\t\t\tshape.runtime = runtime;\n\n\t\t\t// Action\n\t\t\tthis.initActions(shape, runtime, actionValueToRuntime);\n\n\t\t\t// Actionables\n\t\t\tif (runtime.isActionable()) {\n\t\t\t\tactionables.push(shape);\n\t\t\t}\n\n\t\t\t// Shortcut\n\t\t\tconst shortcut = shape.shortcut;\n\t\t\tif (shortcut != null) {\n\t\t\t\tUtilKeyboardEvent.on(shape, shortcut, (e: KeyboardEvent): void => {\n\t\t\t\t\truntime.onClick(shape, e);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Init the runtime\n\t\t\truntime.initialize(shape);\n\n\t\t\t// Children\n\t\t\tconst children = shape.children;\n\t\t\tif (0 < children.length) {\n\t\t\t\tif (shape instanceof EShapeEmbedded) {\n\t\t\t\t\tif (dataShape == null) {\n\t\t\t\t\t\tdataShape = shape;\n\t\t\t\t\t}\n\t\t\t\t\tcontainerShape = shape;\n\t\t\t\t}\n\t\t\t\tthis.initialize_(\n\t\t\t\t\tchildren,\n\t\t\t\t\tdataShape,\n\t\t\t\t\tcontainerShape,\n\t\t\t\t\tmapper,\n\t\t\t\t\tformatToFormatter,\n\t\t\t\t\tinitialToInitialValue,\n\t\t\t\t\tactionValueToRuntime,\n\t\t\t\t\tcanvasTicker,\n\t\t\t\t\tcanvasShape,\n\t\t\t\t\tcanvasData,\n\t\t\t\t\tactionables\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initData(\n\t\tshape: EShape,\n\t\tdataShape: EShape | null,\n\t\tcontainerShape: EShape | null,\n\t\tmapper: DDiagramDataMapper | null | undefined,\n\t\tformatToFormatter: Map<string, (value: unknown) => unknown>,\n\t\tinitialToInitialValue: Map<string, unknown>,\n\t\tcanvasTicker: DDiagramCanvasTicker,\n\t\tcanvasData: DDiagramCanvasData\n\t): void {\n\t\tconst data = shape.data;\n\t\tlet format: string = \"\";\n\t\tlet initial: string = \"\";\n\t\tfor (let i = 0, imax = data.size(); i < imax; ++i) {\n\t\t\tconst value = data.get(i);\n\t\t\tif (value == null) continue;\n\t\t\tswitch (value.type) {\n\t\t\t\tcase EShapeDataValueType.NUMBER:\n\t\t\t\tcase EShapeDataValueType.NUMBER_ARRAY:\n\t\t\t\tcase EShapeDataValueType.STRING:\n\t\t\t\tcase EShapeDataValueType.STRING_ARRAY:\n\t\t\t\tcase EShapeDataValueType.OBJECT:\n\t\t\t\tcase EShapeDataValueType.OBJECT_ARRAY:\n\t\t\t\t\t// Mapping\n\t\t\t\t\tif (value.scope === EShapeDataValueScope.PRIVATE) {\n\t\t\t\t\t\tconst id = value.id;\n\t\t\t\t\t\tif (0 < id.length) {\n\t\t\t\t\t\t\tif (containerShape) {\n\t\t\t\t\t\t\t\tcontainerShape.data.private.add(id, value);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcanvasData.private.add(id, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value.scope === EShapeDataValueScope.PROTECTED) {\n\t\t\t\t\t\tconst id = value.id;\n\t\t\t\t\t\tif (0 < id.length) {\n\t\t\t\t\t\t\tcanvasData.protected.add(id, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (mapper) {\n\t\t\t\t\t\t\tmapper(value, dataShape || shape);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst id = value.id;\n\t\t\t\t\t\tif (0 < id.length) {\n\t\t\t\t\t\t\tcanvasData.add(id, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Format\n\t\t\t\t\tformat = value.format;\n\t\t\t\t\tinitial = value.initial;\n\t\t\t\t\tif (formatToFormatter.has(format)) {\n\t\t\t\t\t\tvalue.formatter = formatToFormatter.get(format);\n\t\t\t\t\t} else if (0 < format.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst formatter = this.calcFormatter(value, format, initial);\n\t\t\t\t\t\t\tformatToFormatter.set(format, formatter);\n\t\t\t\t\t\t\tvalue.formatter = formatter;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Initial\n\t\t\t\t\tif (initialToInitialValue.has(initial)) {\n\t\t\t\t\t\tvalue.value = initialToInitialValue.get(initial);\n\t\t\t\t\t} else if (0 < initial.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst initialValue = this.calcInitial(value, initial);\n\t\t\t\t\t\t\tinitialToInitialValue.set(initial, initialValue);\n\t\t\t\t\t\t\tvalue.value = initialValue;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeDataValueType.TICKER:\n\t\t\t\t\t// Initial\n\t\t\t\t\tinitial = value.initial;\n\t\t\t\t\tif (initialToInitialValue.has(initial)) {\n\t\t\t\t\t\tvalue.value = 0;\n\t\t\t\t\t\tcanvasTicker.add(initialToInitialValue.get(initial)).add(value);\n\t\t\t\t\t} else if (0 < initial.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst initialValue = this.calcInitial(value, initial);\n\t\t\t\t\t\t\tinitialToInitialValue.set(initial, initialValue);\n\t\t\t\t\t\t\tvalue.value = 0;\n\t\t\t\t\t\t\tcanvasTicker.add(initialValue).add(value);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tconst extension = EShapeDataValueExtensions.get(value.type);\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\t// Mapping\n\t\t\t\t\t\tcanvasData.extended.add(extension.id, value);\n\n\t\t\t\t\t\t// Initial\n\t\t\t\t\t\tvalue.value = extension.initial;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initActions(\n\t\tshape: EShape,\n\t\tshapeRuntime: EShapeRuntime,\n\t\tvalueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>\n\t): void {\n\t\tconst values = shape.action.values;\n\t\tconst runtimes = shapeRuntime.actions;\n\t\tfor (let i = 0, imax = values.length; i < imax; ++i) {\n\t\t\tconst value = values[i];\n\t\t\tlet runtime = valueToRuntime.get(value);\n\t\t\tif (runtime == null) {\n\t\t\t\truntime = value.toRuntime();\n\t\t\t\tif (runtime != null) {\n\t\t\t\t\tvalueToRuntime.set(value, runtime);\n\t\t\t\t\truntimes.push(runtime);\n\t\t\t\t\tshapeRuntime.reset |= runtime.reset;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\truntimes.push(runtime);\n\t\t\t\tshapeRuntime.reset |= runtime.reset;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcFormatter(\n\t\tvalue: EShapeDataValue,\n\t\tformat: string,\n\t\tinitial: string\n\t): (value: unknown) => unknown {\n\t\tconst def = this.toInitial(value);\n\t\treturn Function(\n\t\t\t\"value\",\n\t\t\t/* eslint-disable prettier/prettier */\n\t\t\t`try {` +\n\t\t\t\t`return (${format});` +\n\t\t\t`} catch( e1 ) {` +\n\t\t\t\t`try {` +\n\t\t\t\t\t`return (${0 < initial.length ? initial : def});` +\n\t\t\t\t`} catch( e2 ) {` +\n\t\t\t\t\t`return ${def};` +\n\t\t\t\t`}` +\n\t\t\t`}`\n\t\t\t/* eslint-enable prettier/prettier */\n\t\t) as any;\n\t}\n\n\tprotected calcInitial(value: EShapeDataValue, initial: string): unknown {\n\t\treturn Function(\n\t\t\t/* eslint-disable prettier/prettier */\n\t\t\t`try {` +\n\t\t\t\t`return (${initial});` +\n\t\t\t`} catch( e ) {` +\n\t\t\t\t`return ${this.toInitial(value)};` +\n\t\t\t`}`\n\t\t\t/* eslint-enable prettier/prettier */\n\t\t)();\n\t}\n\n\tprotected toInitial(value: EShapeDataValue): string {\n\t\tconst valueType = value.type;\n\t\tswitch (valueType) {\n\t\t\tcase EShapeDataValueType.NUMBER:\n\t\t\t\treturn \"0\";\n\t\t\tcase EShapeDataValueType.NUMBER_ARRAY:\n\t\t\t\treturn \"[]\";\n\t\t\tcase EShapeDataValueType.STRING:\n\t\t\t\treturn '\"\"';\n\t\t\tcase EShapeDataValueType.STRING_ARRAY:\n\t\t\t\treturn \"[]\";\n\t\t\tcase EShapeDataValueType.OBJECT:\n\t\t\t\treturn \"{}\";\n\t\t\tcase EShapeDataValueType.OBJECT_ARRAY:\n\t\t\t\treturn \"[]\";\n\t\t\tcase EShapeDataValueType.TICKER:\n\t\t\t\treturn \"0\";\n\t\t\tdefault:\n\t\t\t\treturn \"0\";\n\t\t}\n\t}\n\n\tprotected onDestroy(): void {\n\t\tthis._ticker.stop();\n\t\tsuper.onDestroy();\n\t}\n\n\thitTestInteractives(global: IPoint): EShape | null {\n\t\tconst layers = this._layer.children;\n\t\tfor (let i = layers.length - 1; 0 <= i; --i) {\n\t\t\tconst layer = layers[i];\n\t\t\tif (layer.visible) {\n\t\t\t\tconst result = layer.hitTestInteractives(global);\n\t\t\t\tif (result != null) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tonShapeMove(e: interaction.InteractionEvent): boolean {\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst view = layer.view;\n\n\t\t\t// Cursor\n\t\t\tconst cursor = this.toShapeCursor(found);\n\t\t\tconst style = view.style;\n\t\t\tif (style.cursor !== cursor) {\n\t\t\t\tstyle.cursor = cursor;\n\t\t\t}\n\n\t\t\t// TItle\n\t\t\tconst title = this.toShapeTitle(found);\n\t\t\tif (view.title !== title) {\n\t\t\t\tview.title = title;\n\t\t\t}\n\t\t}\n\n\t\tconst overed = this._overed;\n\t\tthis._overed = found;\n\t\tif (found === overed) {\n\t\t\tif (found != null) {\n\t\t\t\tconst runtime = found.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onMove(found, e);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.onShapeOut(e, overed, found);\n\t\t\tthis.onShapeOver(e, found);\n\t\t}\n\t\treturn found != null;\n\t}\n\n\tprotected toShapeCursor(target: EShape | null): string {\n\t\tif (target != null) {\n\t\t\tconst result = target.cursor;\n\t\t\tif (0 < result.length) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\treturn \"auto\";\n\t}\n\n\tprotected toShapeTitle(target: EShape | null): string {\n\t\tif (target != null) {\n\t\t\treturn target.title || \"\";\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tprotected onShapeOut(\n\t\te: interaction.InteractionEvent,\n\t\ttarget?: EShape | EShapeContainer | null,\n\t\texcept?: EShape | null\n\t): void {\n\t\twhile (target != null && target !== except && target instanceof EShapeBase) {\n\t\t\tconst runtime = target.runtime;\n\t\t\tif (runtime) {\n\t\t\t\truntime.onOut(target, e);\n\t\t\t}\n\t\t\ttarget = target.parent;\n\t\t}\n\t}\n\n\tprotected onShapeOver(\n\t\te: interaction.InteractionEvent,\n\t\ttarget?: EShape | EShapeContainer | null,\n\t\texcept?: EShape | null\n\t): void {\n\t\twhile (target != null && target !== except && target instanceof EShapeBase) {\n\t\t\tconst runtime = target.runtime;\n\t\t\tif (runtime) {\n\t\t\t\truntime.onOver(target, e);\n\t\t\t}\n\t\t\ttarget = target.parent;\n\t\t}\n\t}\n\n\tonShapeDown(e: interaction.InteractionEvent): boolean {\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\t\tthis._downed = found;\n\t\tif (found) {\n\t\t\tthis._downeds.add(found);\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onDown(target, e);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonShapeUp(e: interaction.InteractionEvent): boolean {\n\t\tconst downeds = this._downeds;\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\t\tif (found) {\n\t\t\tdowneds.delete(found);\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onUp(target, e);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.onShapeCancel(e);\n\t\treturn found != null;\n\t}\n\n\tonShapeCancel(e: interaction.InteractionEvent): boolean {\n\t\tconst downeds = this._downeds;\n\t\tif (0 < downeds.size) {\n\t\t\tdowneds.forEach((downed: EShape): void => {\n\t\t\t\tlet target = downed;\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst runtime = target.runtime;\n\t\t\t\t\tif (runtime) {\n\t\t\t\t\t\truntime.onUpOutside(target, e);\n\t\t\t\t\t}\n\t\t\t\t\tconst parent = target.parent;\n\t\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\t\ttarget = parent;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tdowneds.clear();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonShapeClick(e: interaction.InteractionEvent): boolean {\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\t\tif (found && this._downed === found) {\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onClick(target, e);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonShapeDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): boolean {\n\t\tconst global = (DDiagramCanvas.WORK_DBLCLICK ??= new Point());\n\t\tUtilPointerEvent.toGlobal(e, interactionManager, global);\n\t\tconst found = this.hitTestInteractives(global);\n\t\tif (found) {\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onDblClick(target, e, interactionManager);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tupdate(): void {\n\t\tconst actionables = this._actionables;\n\t\tif (0 < actionables.length) {\n\t\t\tlet effect = -1;\n\t\t\tconst time = Date.now();\n\t\t\tfor (let i = 0, imax = actionables.length; i < imax; ++i) {\n\t\t\t\tconst actionable = actionables[i];\n\t\t\t\tactionable.update(time);\n\t\t\t\tconst runtime = actionable.runtime;\n\t\t\t\tif (runtime && time < runtime.effect) {\n\t\t\t\t\tconst runtimeEffect = runtime.effect;\n\t\t\t\t\tif (time < runtimeEffect) {\n\t\t\t\t\t\teffect = effect < 0 ? runtimeEffect : Math.min(effect, runtimeEffect);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (0 <= effect) {\n\t\t\t\twindow.setTimeout(this._updateBound, effect - Date.now());\n\t\t\t}\n\t\t}\n\t}\n\n\tonRender(renderer: Renderer): void {\n\t\tconst actionables = this._actionables;\n\t\tif (0 < actionables.length) {\n\t\t\tlet effect = -1;\n\t\t\tconst time = Date.now();\n\t\t\tfor (let i = 0, imax = actionables.length; i < imax; ++i) {\n\t\t\t\tconst actionable = actionables[i];\n\t\t\t\tactionable.onRender(time, renderer);\n\t\t\t\tconst runtime = actionable.runtime;\n\t\t\t\tif (runtime && time < runtime.effect) {\n\t\t\t\t\tconst runtimeEffect = runtime.effect;\n\t\t\t\t\tif (time < runtimeEffect) {\n\t\t\t\t\t\teffect = effect < 0 ? runtimeEffect : Math.min(effect, runtimeEffect);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (0 <= effect) {\n\t\t\t\twindow.setTimeout(this._updateBound, effect - Date.now());\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DDiagramCanvas\";\n\t}\n}\n"]}
1
+ {"version":3,"file":"d-diagram-canvas.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-diagram-canvas.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { interaction, IPoint, Point, Renderer } from \"pixi.js\";\nimport { DApplications } from \"./d-applications\";\nimport {\n\tDDiagramCanvasBase,\n\tDDiagramCanvasBaseOptions,\n\tDThemeDiagramCanvasBase\n} from \"./d-diagram-canvas-base\";\nimport { EShape } from \"./shape/e-shape\";\nimport { EShapeBase } from \"./shape/variant/e-shape-base\";\nimport { UtilPointerEvent } from \"./util/util-pointer-event\";\nimport { EShapeActionValue } from \"./shape/action/e-shape-action-value\";\nimport { EShapeActionRuntime } from \"./shape/action/e-shape-action-runtime\";\nimport { DDiagramDataMapper } from \"./d-diagram-data-mapper\";\nimport { EShapeRuntimes } from \"./shape/e-shape-runtimes\";\nimport { EShapeRuntime } from \"./shape/e-shape-runtime\";\nimport { EShapeDataValue } from \"./shape/e-shape-data-value\";\nimport { EShapeDataValueType } from \"./shape/e-shape-data-value-type\";\nimport { EShapeContainer } from \"./shape/e-shape-container\";\nimport { UtilKeyboardEvent } from \"./util/util-keyboard-event\";\nimport { DDiagramCanvasData } from \"./d-diagram-canvas-data\";\nimport { DDiagramCanvasDataImpl } from \"./d-diagram-canvas-data-impl\";\nimport { DDiagramCanvasShape } from \"./d-diagram-canvas-shape\";\nimport { DDiagramCanvasShapeImpl } from \"./d-diagram-canvas-shape-impl\";\nimport { DDiagramCanvasTicker } from \"./d-diagram-canvas-ticker\";\nimport { DDiagramCanvasTickerImpl } from \"./d-diagram-canvas-ticker-impl\";\nimport { EShapeDataValueScope } from \"./shape/e-shape-data-value-scope\";\nimport { EShapeEmbedded } from \"./shape/variant/e-shape-embedded\";\nimport { EShapeDataValueExtensions } from \"./shape/e-shape-data-value-extensions\";\nimport { EShapeActionEnvironment } from \"./shape/action/e-shape-action-environment\";\n\nexport interface DDiagramCanvasOptions<THEME extends DThemeDiagramCanvas = DThemeDiagramCanvas>\n\textends DDiagramCanvasBaseOptions<THEME> {}\n\nexport interface DThemeDiagramCanvas extends DThemeDiagramCanvasBase {}\n\nexport class DDiagramCanvas<\n\tTHEME extends DThemeDiagramCanvas = DThemeDiagramCanvas,\n\tOPTIONS extends DDiagramCanvasOptions<THEME> = DDiagramCanvasOptions<THEME>\n> extends DDiagramCanvasBase<THEME, OPTIONS> {\n\tprotected static WORK_DBLCLICK?: Point;\n\n\tprotected _data: DDiagramCanvasData;\n\tprotected _shape: DDiagramCanvasShape;\n\tprotected _ticker: DDiagramCanvasTicker;\n\tprotected _actionables: EShape[];\n\n\tprotected _overed?: EShape | null;\n\tprotected _downed?: EShape | null;\n\tprotected _downeds: Set<EShape>;\n\n\tprotected _updateBound: () => void;\n\n\tconstructor(options: OPTIONS) {\n\t\tsuper(options);\n\t\tthis._data = new DDiagramCanvasDataImpl();\n\t\tthis._shape = new DDiagramCanvasShapeImpl();\n\t\tthis._ticker = new DDiagramCanvasTickerImpl(this);\n\t\tthis._actionables = [];\n\t\tthis._downeds = new Set<EShape>();\n\t\tthis._updateBound = (): void => {\n\t\t\tDApplications.update(this);\n\t\t};\n\t}\n\n\tget data(): DDiagramCanvasData {\n\t\treturn this._data;\n\t}\n\n\tget shape(): DDiagramCanvasShape {\n\t\treturn this._shape;\n\t}\n\n\tget ticker(): DDiagramCanvasTicker {\n\t\treturn this._ticker;\n\t}\n\n\tinitialize(shapes: EShape[], mapper?: DDiagramDataMapper | null): void {\n\t\tconst time = Date.now();\n\t\tconst actionables = this._actionables;\n\t\tthis.initialize_(\n\t\t\tshapes,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tmapper,\n\t\t\tnew Map<string, (value: unknown) => unknown>(),\n\t\t\tnew Map<string, unknown>(),\n\t\t\tnew Map<EShapeActionValue, EShapeActionRuntime>(),\n\t\t\tthis._ticker,\n\t\t\tthis._shape,\n\t\t\tthis._data,\n\t\t\tactionables\n\t\t);\n\t\tconst layers = this._layer.children;\n\t\tfor (let i = 0, imax = layers.length; i < imax; ++i) {\n\t\t\tlayers[i].initialize(actionables);\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = true;\n\t\tfor (let i = 0, imax = layers.length; i < imax; ++i) {\n\t\t\tconst layerChildren = layers[i].children;\n\t\t\tfor (let j = 0, jmax = layerChildren.length; j < jmax; ++j) {\n\t\t\t\tlayerChildren[j].update(time);\n\t\t\t}\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = false;\n\t\tthis._ticker.start();\n\t}\n\n\tprotected initialize_(\n\t\tshapes: EShape[],\n\t\tdataShape: EShape | null,\n\t\tcontainerShape: EShape | null,\n\t\tmapper: DDiagramDataMapper | null | undefined,\n\t\tformatToFormatter: Map<string, (value: unknown) => unknown>,\n\t\tinitialToInitialValue: Map<string, unknown>,\n\t\tactionValueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>,\n\t\tcanvasTicker: DDiagramCanvasTicker,\n\t\tcanvasShape: DDiagramCanvasShape,\n\t\tcanvasData: DDiagramCanvasData,\n\t\tactionables: EShape[]\n\t): void {\n\t\tfor (let i = 0, imax = shapes.length; i < imax; ++i) {\n\t\t\tconst shape = shapes[i];\n\n\t\t\t// ID\n\t\t\tconst id = shape.id;\n\t\t\tif (0 < id.length) {\n\t\t\t\tcanvasShape.add(id, shape);\n\t\t\t}\n\n\t\t\t// Data\n\t\t\tthis.initData(\n\t\t\t\tshape,\n\t\t\t\tdataShape,\n\t\t\t\tcontainerShape,\n\t\t\t\tmapper,\n\t\t\t\tformatToFormatter,\n\t\t\t\tinitialToInitialValue,\n\t\t\t\tcanvasTicker,\n\t\t\t\tcanvasData\n\t\t\t);\n\n\t\t\t// Runtime\n\t\t\tconst runtime = new (EShapeRuntimes[shape.type] || EShapeRuntime)(shape);\n\t\t\tshape.runtime = runtime;\n\n\t\t\t// Action\n\t\t\tthis.initActions(shape, runtime, actionValueToRuntime);\n\n\t\t\t// Actionables\n\t\t\tif (runtime.isActionable()) {\n\t\t\t\tactionables.push(shape);\n\t\t\t}\n\n\t\t\t// Shortcut\n\t\t\tconst shortcut = shape.shortcut;\n\t\t\tif (shortcut != null) {\n\t\t\t\tUtilKeyboardEvent.on(shape, shortcut, (e: KeyboardEvent): void => {\n\t\t\t\t\truntime.onClick(shape, e);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Init the runtime\n\t\t\truntime.initialize(shape);\n\n\t\t\t// Children\n\t\t\tconst children = shape.children;\n\t\t\tif (0 < children.length) {\n\t\t\t\tlet newDataShape = dataShape;\n\t\t\t\tlet newContainerShape = containerShape;\n\t\t\t\tif (shape instanceof EShapeEmbedded) {\n\t\t\t\t\tif (newDataShape == null) {\n\t\t\t\t\t\tnewDataShape = shape;\n\t\t\t\t\t}\n\t\t\t\t\tnewContainerShape = shape;\n\t\t\t\t}\n\t\t\t\tthis.initialize_(\n\t\t\t\t\tchildren,\n\t\t\t\t\tnewDataShape,\n\t\t\t\t\tnewContainerShape,\n\t\t\t\t\tmapper,\n\t\t\t\t\tformatToFormatter,\n\t\t\t\t\tinitialToInitialValue,\n\t\t\t\t\tactionValueToRuntime,\n\t\t\t\t\tcanvasTicker,\n\t\t\t\t\tcanvasShape,\n\t\t\t\t\tcanvasData,\n\t\t\t\t\tactionables\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initData(\n\t\tshape: EShape,\n\t\tdataShape: EShape | null,\n\t\tcontainerShape: EShape | null,\n\t\tmapper: DDiagramDataMapper | null | undefined,\n\t\tformatToFormatter: Map<string, (value: unknown) => unknown>,\n\t\tinitialToInitialValue: Map<string, unknown>,\n\t\tcanvasTicker: DDiagramCanvasTicker,\n\t\tcanvasData: DDiagramCanvasData\n\t): void {\n\t\tconst data = shape.data;\n\t\tlet format: string = \"\";\n\t\tlet initial: string = \"\";\n\t\tfor (let i = 0, imax = data.size(); i < imax; ++i) {\n\t\t\tconst value = data.get(i);\n\t\t\tif (value == null) continue;\n\t\t\tswitch (value.type) {\n\t\t\t\tcase EShapeDataValueType.NUMBER:\n\t\t\t\tcase EShapeDataValueType.NUMBER_ARRAY:\n\t\t\t\tcase EShapeDataValueType.STRING:\n\t\t\t\tcase EShapeDataValueType.STRING_ARRAY:\n\t\t\t\tcase EShapeDataValueType.OBJECT:\n\t\t\t\tcase EShapeDataValueType.OBJECT_ARRAY:\n\t\t\t\t\t// Mapping\n\t\t\t\t\tif (value.scope === EShapeDataValueScope.PRIVATE) {\n\t\t\t\t\t\tconst id = value.id;\n\t\t\t\t\t\tif (0 < id.length) {\n\t\t\t\t\t\t\tif (containerShape) {\n\t\t\t\t\t\t\t\tcontainerShape.data.private.add(id, value);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcanvasData.private.add(id, value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value.scope === EShapeDataValueScope.PROTECTED) {\n\t\t\t\t\t\tconst id = value.id;\n\t\t\t\t\t\tif (0 < id.length) {\n\t\t\t\t\t\t\tcanvasData.protected.add(id, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (mapper) {\n\t\t\t\t\t\t\tmapper(value, dataShape || shape);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst id = value.id;\n\t\t\t\t\t\tif (0 < id.length) {\n\t\t\t\t\t\t\tcanvasData.add(id, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Format\n\t\t\t\t\tformat = value.format;\n\t\t\t\t\tinitial = value.initial;\n\t\t\t\t\tif (formatToFormatter.has(format)) {\n\t\t\t\t\t\tvalue.formatter = formatToFormatter.get(format);\n\t\t\t\t\t} else if (0 < format.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst formatter = this.calcFormatter(value, format, initial);\n\t\t\t\t\t\t\tformatToFormatter.set(format, formatter);\n\t\t\t\t\t\t\tvalue.formatter = formatter;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Initial\n\t\t\t\t\tif (initialToInitialValue.has(initial)) {\n\t\t\t\t\t\tvalue.value = initialToInitialValue.get(initial);\n\t\t\t\t\t} else if (0 < initial.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst initialValue = this.calcInitial(value, initial);\n\t\t\t\t\t\t\tinitialToInitialValue.set(initial, initialValue);\n\t\t\t\t\t\t\tvalue.value = initialValue;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeDataValueType.TICKER:\n\t\t\t\t\t// Initial\n\t\t\t\t\tinitial = value.initial;\n\t\t\t\t\tif (initialToInitialValue.has(initial)) {\n\t\t\t\t\t\tvalue.value = 0;\n\t\t\t\t\t\tcanvasTicker.add(initialToInitialValue.get(initial)).add(value);\n\t\t\t\t\t} else if (0 < initial.length) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst initialValue = this.calcInitial(value, initial);\n\t\t\t\t\t\t\tinitialToInitialValue.set(initial, initialValue);\n\t\t\t\t\t\t\tvalue.value = 0;\n\t\t\t\t\t\t\tcanvasTicker.add(initialValue).add(value);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tconst extension = EShapeDataValueExtensions.get(value.type);\n\t\t\t\t\tif (extension) {\n\t\t\t\t\t\t// Mapping\n\t\t\t\t\t\tcanvasData.extended.add(extension.id, value);\n\n\t\t\t\t\t\t// Initial\n\t\t\t\t\t\tvalue.value = extension.initial;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initActions(\n\t\tshape: EShape,\n\t\tshapeRuntime: EShapeRuntime,\n\t\tvalueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>\n\t): void {\n\t\tconst values = shape.action.values;\n\t\tconst runtimes = shapeRuntime.actions;\n\t\tfor (let i = 0, imax = values.length; i < imax; ++i) {\n\t\t\tconst value = values[i];\n\t\t\tlet runtime = valueToRuntime.get(value);\n\t\t\tif (runtime == null) {\n\t\t\t\truntime = value.toRuntime();\n\t\t\t\tif (runtime != null) {\n\t\t\t\t\tvalueToRuntime.set(value, runtime);\n\t\t\t\t\truntimes.push(runtime);\n\t\t\t\t\tshapeRuntime.reset |= runtime.reset;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\truntimes.push(runtime);\n\t\t\t\tshapeRuntime.reset |= runtime.reset;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected calcFormatter(\n\t\tvalue: EShapeDataValue,\n\t\tformat: string,\n\t\tinitial: string\n\t): (value: unknown) => unknown {\n\t\tconst def = this.toInitial(value);\n\t\treturn Function(\n\t\t\t\"value\",\n\t\t\t/* eslint-disable prettier/prettier */\n\t\t\t`try {` +\n\t\t\t\t`return (${format});` +\n\t\t\t`} catch( e1 ) {` +\n\t\t\t\t`try {` +\n\t\t\t\t\t`return (${0 < initial.length ? initial : def});` +\n\t\t\t\t`} catch( e2 ) {` +\n\t\t\t\t\t`return ${def};` +\n\t\t\t\t`}` +\n\t\t\t`}`\n\t\t\t/* eslint-enable prettier/prettier */\n\t\t) as any;\n\t}\n\n\tprotected calcInitial(value: EShapeDataValue, initial: string): unknown {\n\t\treturn Function(\n\t\t\t/* eslint-disable prettier/prettier */\n\t\t\t`try {` +\n\t\t\t\t`return (${initial});` +\n\t\t\t`} catch( e ) {` +\n\t\t\t\t`return ${this.toInitial(value)};` +\n\t\t\t`}`\n\t\t\t/* eslint-enable prettier/prettier */\n\t\t)();\n\t}\n\n\tprotected toInitial(value: EShapeDataValue): string {\n\t\tconst valueType = value.type;\n\t\tswitch (valueType) {\n\t\t\tcase EShapeDataValueType.NUMBER:\n\t\t\t\treturn \"0\";\n\t\t\tcase EShapeDataValueType.NUMBER_ARRAY:\n\t\t\t\treturn \"[]\";\n\t\t\tcase EShapeDataValueType.STRING:\n\t\t\t\treturn '\"\"';\n\t\t\tcase EShapeDataValueType.STRING_ARRAY:\n\t\t\t\treturn \"[]\";\n\t\t\tcase EShapeDataValueType.OBJECT:\n\t\t\t\treturn \"{}\";\n\t\t\tcase EShapeDataValueType.OBJECT_ARRAY:\n\t\t\t\treturn \"[]\";\n\t\t\tcase EShapeDataValueType.TICKER:\n\t\t\t\treturn \"0\";\n\t\t\tdefault:\n\t\t\t\treturn \"0\";\n\t\t}\n\t}\n\n\tprotected onDestroy(): void {\n\t\tthis._ticker.stop();\n\t\tsuper.onDestroy();\n\t}\n\n\thitTestInteractives(global: IPoint): EShape | null {\n\t\tconst layers = this._layer.children;\n\t\tfor (let i = layers.length - 1; 0 <= i; --i) {\n\t\t\tconst layer = layers[i];\n\t\t\tif (layer.visible) {\n\t\t\t\tconst result = layer.hitTestInteractives(global);\n\t\t\t\tif (result != null) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tonShapeMove(e: interaction.InteractionEvent): boolean {\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst view = layer.view;\n\n\t\t\t// Cursor\n\t\t\tconst cursor = this.toShapeCursor(found);\n\t\t\tconst style = view.style;\n\t\t\tif (style.cursor !== cursor) {\n\t\t\t\tstyle.cursor = cursor;\n\t\t\t}\n\n\t\t\t// TItle\n\t\t\tconst title = this.toShapeTitle(found);\n\t\t\tif (view.title !== title) {\n\t\t\t\tview.title = title;\n\t\t\t}\n\t\t}\n\n\t\tconst overed = this._overed;\n\t\tthis._overed = found;\n\t\tif (found === overed) {\n\t\t\tif (found != null) {\n\t\t\t\tconst runtime = found.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onMove(found, e);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.onShapeOut(e, overed, found);\n\t\t\tthis.onShapeOver(e, found);\n\t\t}\n\t\treturn found != null;\n\t}\n\n\tprotected toShapeCursor(target: EShape | null): string {\n\t\tif (target != null) {\n\t\t\tconst result = target.cursor;\n\t\t\tif (0 < result.length) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\treturn \"auto\";\n\t}\n\n\tprotected toShapeTitle(target: EShape | null): string {\n\t\tif (target != null) {\n\t\t\treturn target.title || \"\";\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tprotected onShapeOut(\n\t\te: interaction.InteractionEvent,\n\t\ttarget?: EShape | EShapeContainer | null,\n\t\texcept?: EShape | null\n\t): void {\n\t\twhile (target != null && target !== except && target instanceof EShapeBase) {\n\t\t\tconst runtime = target.runtime;\n\t\t\tif (runtime) {\n\t\t\t\truntime.onOut(target, e);\n\t\t\t}\n\t\t\ttarget = target.parent;\n\t\t}\n\t}\n\n\tprotected onShapeOver(\n\t\te: interaction.InteractionEvent,\n\t\ttarget?: EShape | EShapeContainer | null,\n\t\texcept?: EShape | null\n\t): void {\n\t\twhile (target != null && target !== except && target instanceof EShapeBase) {\n\t\t\tconst runtime = target.runtime;\n\t\t\tif (runtime) {\n\t\t\t\truntime.onOver(target, e);\n\t\t\t}\n\t\t\ttarget = target.parent;\n\t\t}\n\t}\n\n\tonShapeDown(e: interaction.InteractionEvent): boolean {\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\t\tthis._downed = found;\n\t\tif (found) {\n\t\t\tthis._downeds.add(found);\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onDown(target, e);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonShapeUp(e: interaction.InteractionEvent): boolean {\n\t\tconst downeds = this._downeds;\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\t\tif (found) {\n\t\t\tdowneds.delete(found);\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onUp(target, e);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.onShapeCancel(e);\n\t\treturn found != null;\n\t}\n\n\tonShapeCancel(e: interaction.InteractionEvent): boolean {\n\t\tconst downeds = this._downeds;\n\t\tif (0 < downeds.size) {\n\t\t\tdowneds.forEach((downed: EShape): void => {\n\t\t\t\tlet target = downed;\n\t\t\t\twhile (true) {\n\t\t\t\t\tconst runtime = target.runtime;\n\t\t\t\t\tif (runtime) {\n\t\t\t\t\t\truntime.onUpOutside(target, e);\n\t\t\t\t\t}\n\t\t\t\t\tconst parent = target.parent;\n\t\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\t\ttarget = parent;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tdowneds.clear();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonShapeClick(e: interaction.InteractionEvent): boolean {\n\t\tconst found = this.hitTestInteractives(e.data.global);\n\t\tif (found && this._downed === found) {\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onClick(target, e);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonShapeDblClick(\n\t\te: MouseEvent | TouchEvent,\n\t\tinteractionManager: interaction.InteractionManager\n\t): boolean {\n\t\tconst global = (DDiagramCanvas.WORK_DBLCLICK ??= new Point());\n\t\tUtilPointerEvent.toGlobal(e, interactionManager, global);\n\t\tconst found = this.hitTestInteractives(global);\n\t\tif (found) {\n\t\t\tlet target = found;\n\t\t\twhile (true) {\n\t\t\t\tconst runtime = target.runtime;\n\t\t\t\tif (runtime) {\n\t\t\t\t\truntime.onDblClick(target, e, interactionManager);\n\t\t\t\t}\n\t\t\t\tconst parent = target.parent;\n\t\t\t\tif (parent instanceof EShapeBase) {\n\t\t\t\t\ttarget = parent;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tupdate(): void {\n\t\tconst actionables = this._actionables;\n\t\tif (0 < actionables.length) {\n\t\t\tlet effect = -1;\n\t\t\tconst time = Date.now();\n\t\t\tfor (let i = 0, imax = actionables.length; i < imax; ++i) {\n\t\t\t\tconst actionable = actionables[i];\n\t\t\t\tactionable.update(time);\n\t\t\t\tconst runtime = actionable.runtime;\n\t\t\t\tif (runtime && time < runtime.effect) {\n\t\t\t\t\tconst runtimeEffect = runtime.effect;\n\t\t\t\t\tif (time < runtimeEffect) {\n\t\t\t\t\t\teffect = effect < 0 ? runtimeEffect : Math.min(effect, runtimeEffect);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (0 <= effect) {\n\t\t\t\twindow.setTimeout(this._updateBound, effect - Date.now());\n\t\t\t}\n\t\t}\n\t}\n\n\tonRender(renderer: Renderer): void {\n\t\tconst actionables = this._actionables;\n\t\tif (0 < actionables.length) {\n\t\t\tlet effect = -1;\n\t\t\tconst time = Date.now();\n\t\t\tfor (let i = 0, imax = actionables.length; i < imax; ++i) {\n\t\t\t\tconst actionable = actionables[i];\n\t\t\t\tactionable.onRender(time, renderer);\n\t\t\t\tconst runtime = actionable.runtime;\n\t\t\t\tif (runtime && time < runtime.effect) {\n\t\t\t\t\tconst runtimeEffect = runtime.effect;\n\t\t\t\t\tif (time < runtimeEffect) {\n\t\t\t\t\t\teffect = effect < 0 ? runtimeEffect : Math.min(effect, runtimeEffect);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (0 <= effect) {\n\t\t\t\twindow.setTimeout(this._updateBound, effect - Date.now());\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getType(): string {\n\t\treturn \"DDiagramCanvas\";\n\t}\n}\n"]}
@@ -6,14 +6,39 @@ var EShapeAcceptorImpl = /** @class */ (function () {
6
6
  function EShapeAcceptorImpl() {
7
7
  this._edges = new Map();
8
8
  }
9
- EShapeAcceptorImpl.prototype.add = function (id, type, x, y) {
9
+ EShapeAcceptorImpl.prototype.add = function (id, type, x, y, nx, ny) {
10
10
  this._edges.set(id, {
11
11
  type: type,
12
12
  x: x,
13
- y: y
13
+ y: y,
14
+ normal: this.toNormal(x, y, nx, ny)
14
15
  });
15
16
  return true;
16
17
  };
18
+ EShapeAcceptorImpl.prototype.toNormal = function (x, y, nx, ny) {
19
+ if (nx != null && ny != null) {
20
+ return {
21
+ x: nx,
22
+ y: ny
23
+ };
24
+ }
25
+ else {
26
+ var d = x * x + y * y;
27
+ if (0.00001 < d) {
28
+ var m = 1 / Math.sqrt(d);
29
+ return {
30
+ x: x * m,
31
+ y: y * m
32
+ };
33
+ }
34
+ else {
35
+ return {
36
+ x: 1,
37
+ y: 0
38
+ };
39
+ }
40
+ }
41
+ };
17
42
  EShapeAcceptorImpl.prototype.remove = function (id) {
18
43
  var edges = this._edges;
19
44
  var result = edges.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-acceptor-impl.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;IAGC;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,CAAC;IAED,gCAAG,GAAH,UAAI,EAAU,EAAE,IAAwB,EAAE,CAAS,EAAE,CAAS;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YACnB,IAAI,MAAA;YACJ,CAAC,GAAA;YACD,CAAC,GAAA;SACD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAED,mCAAM,GAAN,UAAO,EAAU;QAChB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iCAAI,GAAJ;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,gCAAG,GAAH,UAAI,EAAU;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,iCAAI,GAAJ,UAAK,QAAwD;QAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,qCAAQ,GAAR,UAAS,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,kCAAK,GAAL;QACC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACF,yBAAC;AAAD,CAAC,AAnDD,IAmDC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeAcceptor, EShapeAcceptorEdge } from \"./e-shape-acceptor\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport class EShapeAcceptorImpl implements EShapeAcceptor {\n\tprotected _edges: Map<string, EShapeAcceptorEdge>;\n\n\tconstructor() {\n\t\tthis._edges = new Map<string, EShapeAcceptorEdge>();\n\t}\n\n\tadd(id: string, type: EShapeAcceptorType, x: number, y: number): boolean {\n\t\tthis._edges.set(id, {\n\t\t\ttype,\n\t\t\tx,\n\t\t\ty\n\t\t});\n\t\treturn true;\n\t}\n\n\tremove(id: string): EShapeAcceptorEdge | null {\n\t\tconst edges = this._edges;\n\t\tconst result = edges.get(id);\n\t\tif (result != null) {\n\t\t\tedges.delete(id);\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tsize(): number {\n\t\treturn this._edges.size;\n\t}\n\n\tget(id: string): EShapeAcceptorEdge | null {\n\t\treturn this._edges.get(id) || null;\n\t}\n\n\teach(iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this {\n\t\tthis._edges.forEach(iteratee);\n\t\treturn this;\n\t}\n\n\tcontains(id: string): boolean {\n\t\treturn this._edges.has(id);\n\t}\n\n\tclear(): boolean {\n\t\tconst edges = this._edges;\n\t\tif (0 < edges.size) {\n\t\t\tedges.clear();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-acceptor-impl.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor-impl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;IAGC;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrD,CAAC;IAWD,gCAAG,GAAH,UACC,EAAU,EACV,IAAwB,EACxB,CAAS,EACT,CAAS,EACT,EAAW,EACX,EAAW;QAEX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;YACnB,IAAI,MAAA;YACJ,CAAC,GAAA;YACD,CAAC,GAAA;YACD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IAES,qCAAQ,GAAlB,UAAmB,CAAS,EAAE,CAAS,EAAE,EAAW,EAAE,EAAW;QAChE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE;YAC7B,OAAO;gBACN,CAAC,EAAE,EAAE;gBACL,CAAC,EAAE,EAAE;aACL,CAAC;SACF;aAAM;YACN,IAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,OAAO,GAAG,CAAC,EAAE;gBAChB,IAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO;oBACN,CAAC,EAAE,CAAC,GAAG,CAAC;oBACR,CAAC,EAAE,CAAC,GAAG,CAAC;iBACR,CAAC;aACF;iBAAM;gBACN,OAAO;oBACN,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;iBACJ,CAAC;aACF;SACD;IACF,CAAC;IAED,mCAAM,GAAN,UAAO,EAAU;QAChB,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjB,OAAO,MAAM,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,iCAAI,GAAJ;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,gCAAG,GAAH,UAAI,EAAU;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,iCAAI,GAAJ,UAAK,QAAwD;QAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,qCAAQ,GAAR,UAAS,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,kCAAK,GAAL;QACC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;YACnB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACF,yBAAC;AAAD,CAAC,AA3FD,IA2FC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeAcceptor, EShapeAcceptorEdge, EShapeAcceptorEdgeNormal } from \"./e-shape-acceptor\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport class EShapeAcceptorImpl implements EShapeAcceptor {\n\tprotected _edges: Map<string, EShapeAcceptorEdge>;\n\n\tconstructor() {\n\t\tthis._edges = new Map<string, EShapeAcceptorEdge>();\n\t}\n\n\tadd(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;\n\tadd(\n\t\tid: string,\n\t\ttype: EShapeAcceptorType,\n\t\tx: number,\n\t\ty: number,\n\t\tnx: number,\n\t\tny: number\n\t): boolean;\n\tadd(\n\t\tid: string,\n\t\ttype: EShapeAcceptorType,\n\t\tx: number,\n\t\ty: number,\n\t\tnx?: number,\n\t\tny?: number\n\t): boolean {\n\t\tthis._edges.set(id, {\n\t\t\ttype,\n\t\t\tx,\n\t\t\ty,\n\t\t\tnormal: this.toNormal(x, y, nx, ny)\n\t\t});\n\t\treturn true;\n\t}\n\n\tprotected toNormal(x: number, y: number, nx?: number, ny?: number): EShapeAcceptorEdgeNormal {\n\t\tif (nx != null && ny != null) {\n\t\t\treturn {\n\t\t\t\tx: nx,\n\t\t\t\ty: ny\n\t\t\t};\n\t\t} else {\n\t\t\tconst d = x * x + y * y;\n\t\t\tif (0.00001 < d) {\n\t\t\t\tconst m = 1 / Math.sqrt(d);\n\t\t\t\treturn {\n\t\t\t\t\tx: x * m,\n\t\t\t\t\ty: y * m\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn {\n\t\t\t\t\tx: 1,\n\t\t\t\t\ty: 0\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tremove(id: string): EShapeAcceptorEdge | null {\n\t\tconst edges = this._edges;\n\t\tconst result = edges.get(id);\n\t\tif (result != null) {\n\t\t\tedges.delete(id);\n\t\t\treturn result;\n\t\t}\n\t\treturn null;\n\t}\n\n\tsize(): number {\n\t\treturn this._edges.size;\n\t}\n\n\tget(id: string): EShapeAcceptorEdge | null {\n\t\treturn this._edges.get(id) || null;\n\t}\n\n\teach(iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this {\n\t\tthis._edges.forEach(iteratee);\n\t\treturn this;\n\t}\n\n\tcontains(id: string): boolean {\n\t\treturn this._edges.has(id);\n\t}\n\n\tclear(): boolean {\n\t\tconst edges = this._edges;\n\t\tif (0 < edges.size) {\n\t\t\tedges.clear();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-acceptor.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport interface EShapeAcceptorEdge {\n\ttype: EShapeAcceptorType;\n\tx: number;\n\ty: number;\n}\n\nexport interface EShapeAcceptor {\n\tsize(): number;\n\tadd(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;\n\tremove(id: string): EShapeAcceptorEdge | null;\n\tget(id: string): EShapeAcceptorEdge | null;\n\teach(iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this;\n\tcontains(id: string): boolean;\n\tclear(): boolean;\n}\n"]}
1
+ {"version":3,"file":"e-shape-acceptor.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptor.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\n\nexport interface EShapeAcceptorEdgeNormal {\n\tx: number;\n\ty: number;\n}\n\nexport interface EShapeAcceptorEdge {\n\ttype: EShapeAcceptorType;\n\tx: number;\n\ty: number;\n\tnormal: EShapeAcceptorEdgeNormal;\n}\n\nexport interface EShapeAcceptor {\n\tsize(): number;\n\tadd(id: string, type: EShapeAcceptorType, x: number, y: number): boolean;\n\tadd(\n\t\tid: string,\n\t\ttype: EShapeAcceptorType,\n\t\tx: number,\n\t\ty: number,\n\t\tnx: number,\n\t\tny: number\n\t): boolean;\n\tremove(id: string): EShapeAcceptorEdge | null;\n\tget(id: string): EShapeAcceptorEdge | null;\n\teach(iteratee: (edge: EShapeAcceptorEdge, id: string) => void): this;\n\tcontains(id: string): boolean;\n\tclear(): boolean;\n}\n"]}
@@ -29,15 +29,15 @@ var EShapeAcceptors = /** @class */ (function () {
29
29
  };
30
30
  EShapeAcceptors.newDefault = function () {
31
31
  var result = new EShapeAcceptorImpl();
32
- result.add("TOP", EShapeAcceptorType.ALL, 0, -0.5);
33
- result.add("LEFT", EShapeAcceptorType.ALL, -0.5, 0);
34
- result.add("RIGHT", EShapeAcceptorType.ALL, 0.5, 0);
35
- result.add("BOTTOM", EShapeAcceptorType.ALL, 0, 0.5);
36
- result.add("CENTER", EShapeAcceptorType.ALL, 0, 0);
37
- result.add("TOP_LEFT", EShapeAcceptorType.ALL, -0.5, -0.5);
38
- result.add("TOP_RIGHT", EShapeAcceptorType.ALL, 0.5, -0.5);
39
- result.add("BOTTOM_LEFT", EShapeAcceptorType.ALL, -0.5, 0.5);
40
- result.add("BOTTOM_RIGHT", EShapeAcceptorType.ALL, 0.5, 0.5);
32
+ result.add("TOP", EShapeAcceptorType.ALL, 0, -0.5, 0, -1);
33
+ result.add("LEFT", EShapeAcceptorType.ALL, -0.5, 0, -1, 0);
34
+ result.add("RIGHT", EShapeAcceptorType.ALL, 0.5, 0, 1, 0);
35
+ result.add("BOTTOM", EShapeAcceptorType.ALL, 0, 0.5, 0, 1);
36
+ result.add("CENTER", EShapeAcceptorType.ALL, 0, 0, -1, 0);
37
+ result.add("TOP_LEFT", EShapeAcceptorType.ALL, -0.5, -0.5, -1, 0);
38
+ result.add("TOP_RIGHT", EShapeAcceptorType.ALL, 0.5, -0.5, 1, 0);
39
+ result.add("BOTTOM_LEFT", EShapeAcceptorType.ALL, -0.5, 0.5, -1, 0);
40
+ result.add("BOTTOM_RIGHT", EShapeAcceptorType.ALL, 0.5, 0.5, 1, 0);
41
41
  return result;
42
42
  };
43
43
  return EShapeAcceptors;
@@ -1 +1 @@
1
- {"version":3,"file":"e-shape-acceptors.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;IAAA;IAuCA,CAAC;IAnCO,mBAAG,GAAV,UAAW,IAAgB,EAAE,QAAwB;QACpD,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC1C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;SACtC;QACD,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEM,mBAAG,GAAV,UAAW,IAAgB;;QAC1B,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,GAAG,CAAC,IAAI,CAAC,KAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7D,CAAC;IAEgB,0BAAU,GAA3B;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEgB,0BAAU,GAA3B;QACC,IAAM,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IACf,CAAC;IACF,sBAAC;AAAD,CAAC,AAvCD,IAuCC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeAcceptor } from \"./e-shape-acceptor\";\nimport { EShapeAcceptorImpl } from \"./e-shape-acceptor-impl\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\nimport { EShapeType } from \"./e-shape-type\";\n\nexport class EShapeAcceptors {\n\tprotected static _default?: EShapeAcceptor;\n\tprotected static _typeToAcceptor?: Map<EShapeType, EShapeAcceptor>;\n\n\tstatic set(type: EShapeType, acceptor: EShapeAcceptor): void {\n\t\tlet typeToAcceptor = this._typeToAcceptor;\n\t\tif (typeToAcceptor == null) {\n\t\t\ttypeToAcceptor = new Map<EShapeType, EShapeAcceptor>();\n\t\t\tthis._typeToAcceptor = typeToAcceptor;\n\t\t}\n\t\ttypeToAcceptor.set(type, acceptor);\n\t}\n\n\tstatic get(type: EShapeType): EShapeAcceptor {\n\t\treturn this._typeToAcceptor?.get(type) || this.getDefault();\n\t}\n\n\tprotected static getDefault(): EShapeAcceptor {\n\t\tlet result = this._default;\n\t\tif (result == null) {\n\t\t\tresult = this.newDefault();\n\t\t\tthis._default = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected static newDefault(): EShapeAcceptor {\n\t\tconst result = new EShapeAcceptorImpl();\n\t\tresult.add(\"TOP\", EShapeAcceptorType.ALL, 0, -0.5);\n\t\tresult.add(\"LEFT\", EShapeAcceptorType.ALL, -0.5, 0);\n\t\tresult.add(\"RIGHT\", EShapeAcceptorType.ALL, 0.5, 0);\n\t\tresult.add(\"BOTTOM\", EShapeAcceptorType.ALL, 0, 0.5);\n\t\tresult.add(\"CENTER\", EShapeAcceptorType.ALL, 0, 0);\n\t\tresult.add(\"TOP_LEFT\", EShapeAcceptorType.ALL, -0.5, -0.5);\n\t\tresult.add(\"TOP_RIGHT\", EShapeAcceptorType.ALL, 0.5, -0.5);\n\t\tresult.add(\"BOTTOM_LEFT\", EShapeAcceptorType.ALL, -0.5, 0.5);\n\t\tresult.add(\"BOTTOM_RIGHT\", EShapeAcceptorType.ALL, 0.5, 0.5);\n\t\treturn result;\n\t}\n}\n"]}
1
+ {"version":3,"file":"e-shape-acceptors.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-acceptors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D;IAAA;IAuCA,CAAC;IAnCO,mBAAG,GAAV,UAAW,IAAgB,EAAE,QAAwB;QACpD,IAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QAC1C,IAAI,cAAc,IAAI,IAAI,EAAE;YAC3B,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;YACvD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;SACtC;QACD,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEM,mBAAG,GAAV,UAAW,IAAgB;;QAC1B,OAAO,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,GAAG,CAAC,IAAI,CAAC,KAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7D,CAAC;IAEgB,0BAAU,GAA3B;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEgB,0BAAU,GAA3B;QACC,IAAM,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IACf,CAAC;IACF,sBAAC;AAAD,CAAC,AAvCD,IAuCC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeAcceptor } from \"./e-shape-acceptor\";\nimport { EShapeAcceptorImpl } from \"./e-shape-acceptor-impl\";\nimport { EShapeAcceptorType } from \"./e-shape-acceptor-type\";\nimport { EShapeType } from \"./e-shape-type\";\n\nexport class EShapeAcceptors {\n\tprotected static _default?: EShapeAcceptor;\n\tprotected static _typeToAcceptor?: Map<EShapeType, EShapeAcceptor>;\n\n\tstatic set(type: EShapeType, acceptor: EShapeAcceptor): void {\n\t\tlet typeToAcceptor = this._typeToAcceptor;\n\t\tif (typeToAcceptor == null) {\n\t\t\ttypeToAcceptor = new Map<EShapeType, EShapeAcceptor>();\n\t\t\tthis._typeToAcceptor = typeToAcceptor;\n\t\t}\n\t\ttypeToAcceptor.set(type, acceptor);\n\t}\n\n\tstatic get(type: EShapeType): EShapeAcceptor {\n\t\treturn this._typeToAcceptor?.get(type) || this.getDefault();\n\t}\n\n\tprotected static getDefault(): EShapeAcceptor {\n\t\tlet result = this._default;\n\t\tif (result == null) {\n\t\t\tresult = this.newDefault();\n\t\t\tthis._default = result;\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected static newDefault(): EShapeAcceptor {\n\t\tconst result = new EShapeAcceptorImpl();\n\t\tresult.add(\"TOP\", EShapeAcceptorType.ALL, 0, -0.5, 0, -1);\n\t\tresult.add(\"LEFT\", EShapeAcceptorType.ALL, -0.5, 0, -1, 0);\n\t\tresult.add(\"RIGHT\", EShapeAcceptorType.ALL, 0.5, 0, 1, 0);\n\t\tresult.add(\"BOTTOM\", EShapeAcceptorType.ALL, 0, 0.5, 0, 1);\n\t\tresult.add(\"CENTER\", EShapeAcceptorType.ALL, 0, 0, -1, 0);\n\t\tresult.add(\"TOP_LEFT\", EShapeAcceptorType.ALL, -0.5, -0.5, -1, 0);\n\t\tresult.add(\"TOP_RIGHT\", EShapeAcceptorType.ALL, 0.5, -0.5, 1, 0);\n\t\tresult.add(\"BOTTOM_LEFT\", EShapeAcceptorType.ALL, -0.5, 0.5, -1, 0);\n\t\tresult.add(\"BOTTOM_RIGHT\", EShapeAcceptorType.ALL, 0.5, 0.5, 1, 0);\n\t\treturn result;\n\t}\n}\n"]}