@wcardinal/wcardinal-ui 0.223.0 → 0.225.0

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 (25) hide show
  1. package/dist/types/wcardinal/ui/d-diagram-canvas.d.ts +6 -2
  2. package/dist/types/wcardinal/ui/d-table-data-list-selection.d.ts +4 -1
  3. package/dist/types/wcardinal/ui/d-table-data-selection.d.ts +30 -1
  4. package/dist/types/wcardinal/ui/d-table-data-tree-selection-impl.d.ts +4 -1
  5. package/dist/types/wcardinal/ui/shape/e-shape-data-value-extension.d.ts +3 -0
  6. package/dist/types/wcardinal/ui/shape/e-shape-data-value-extensions.d.ts +2 -0
  7. package/dist/wcardinal/ui/d-diagram-canvas.js +130 -89
  8. package/dist/wcardinal/ui/d-diagram-canvas.js.map +1 -1
  9. package/dist/wcardinal/ui/d-table-data-list-selection.js +27 -0
  10. package/dist/wcardinal/ui/d-table-data-list-selection.js.map +1 -1
  11. package/dist/wcardinal/ui/d-table-data-selection.js.map +1 -1
  12. package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js +28 -0
  13. package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js.map +1 -1
  14. package/dist/wcardinal/ui/shape/e-shape-data-value-extension.js.map +1 -1
  15. package/dist/wcardinal/ui/shape/e-shape-data-value-extensions.js +9 -2
  16. package/dist/wcardinal/ui/shape/e-shape-data-value-extensions.js.map +1 -1
  17. package/dist/wcardinal-ui-theme-dark.js +1 -1
  18. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  19. package/dist/wcardinal-ui-theme-white.js +1 -1
  20. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  21. package/dist/wcardinal-ui.cjs.js +195 -92
  22. package/dist/wcardinal-ui.js +195 -92
  23. package/dist/wcardinal-ui.min.js +2 -2
  24. package/dist/wcardinal-ui.min.js.map +1 -1
  25. package/package.json +1 -1
@@ -6,6 +6,7 @@ import { EShapeActionRuntime } from "./shape/action/e-shape-action-runtime";
6
6
  import { DDiagramDataMapper } from "./d-diagram-data-mapper";
7
7
  import { EShapeRuntime } from "./shape/e-shape-runtime";
8
8
  import { EShapeDataValue } from "./shape/e-shape-data-value";
9
+ import { EShapeDataValueType } from "./shape/e-shape-data-value-type";
9
10
  import { EShapeContainer } from "./shape/e-shape-container";
10
11
  import { DDiagramCanvasData } from "./d-diagram-canvas-data";
11
12
  import { DDiagramCanvasShape } from "./d-diagram-canvas-shape";
@@ -29,8 +30,11 @@ export declare class DDiagramCanvas<THEME extends DThemeDiagramCanvas = DThemeDi
29
30
  get shape(): DDiagramCanvasShape;
30
31
  get ticker(): DDiagramCanvasTicker;
31
32
  initialize(shapes: EShape[], mapper?: DDiagramDataMapper | null): void;
32
- protected initialize_(shapes: EShape[], dataShape: EShape | null, containerShape: EShape | null, mapper: DDiagramDataMapper | null | undefined, formatToFormatter: Map<string, (value: unknown) => unknown>, initialToInitialValue: Map<string, unknown>, actionValueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>, canvasTicker: DDiagramCanvasTicker, canvasShape: DDiagramCanvasShape, canvasData: DDiagramCanvasData, actionables: EShape[]): void;
33
- protected initData(shape: EShape, dataShape: EShape | null, containerShape: EShape | null, mapper: DDiagramDataMapper | null | undefined, formatToFormatter: Map<string, (value: unknown) => unknown>, initialToInitialValue: Map<string, unknown>, canvasTicker: DDiagramCanvasTicker, canvasData: DDiagramCanvasData): void;
33
+ protected initialize_(shapes: EShape[], dataShape: EShape | null, containerShape: EShape | null, mapper: DDiagramDataMapper | null | undefined, formatters: Map<EShapeDataValueType, Map<string, (value: unknown) => unknown>>, initialValues: Map<EShapeDataValueType, Map<string, unknown>>, actionValueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>, canvasTicker: DDiagramCanvasTicker, canvasShape: DDiagramCanvasShape, canvasData: DDiagramCanvasData, actionables: EShape[]): void;
34
+ protected initData(shape: EShape, dataShape: EShape | null, containerShape: EShape | null, mapper: DDiagramDataMapper | null | undefined, formatters: Map<EShapeDataValueType, Map<string, (value: unknown) => unknown>>, initialValues: Map<EShapeDataValueType, Map<string, unknown>>, canvasTicker: DDiagramCanvasTicker, canvasData: DDiagramCanvasData): void;
35
+ protected initDataValue(value: EShapeDataValue, shape: EShape, dataShape: EShape | null, containerShape: EShape | null, mapper: DDiagramDataMapper | null | undefined, formatters: Map<EShapeDataValueType, Map<string, (value: unknown) => unknown>>, initialValues: Map<EShapeDataValueType, Map<string, unknown>>, canvasData: DDiagramCanvasData): void;
36
+ protected initDataTicker(value: EShapeDataValue, initialValues: Map<EShapeDataValueType, Map<string, unknown>>, canvasTicker: DDiagramCanvasTicker): void;
37
+ protected initDataExtension(value: EShapeDataValue, canvasData: DDiagramCanvasData): void;
34
38
  protected initActions(shape: EShape, shapeRuntime: EShapeRuntime, valueToRuntime: Map<EShapeActionValue, EShapeActionRuntime>): void;
35
39
  protected calcFormatter(value: EShapeDataValue, format: string, initial: string): (value: unknown) => unknown;
36
40
  protected calcInitial(value: EShapeDataValue, initial: string): unknown;
@@ -1,10 +1,12 @@
1
1
  import { utils } from "pixi.js";
2
- import { DTableDataSelection, DTableDataSelectionOptions, DTableDataSelectionParent, DTableDataSelectionType } from "./d-table-data-selection";
2
+ import { DTableData } from "./d-table-data";
3
+ import { DTableDataSelection, DTableDataSelectionEachIteratee, DTableDataSelectionOptions, DTableDataSelectionParent, DTableDataSelectionType } from "./d-table-data-selection";
3
4
  export declare class DTableDataListSelection<ROW> extends utils.EventEmitter implements DTableDataSelection<ROW> {
4
5
  protected _parent: DTableDataSelectionParent<ROW>;
5
6
  protected _type: DTableDataSelectionType;
6
7
  protected _indices: Set<number>;
7
8
  constructor(parent: DTableDataSelectionParent<ROW>, options?: DTableDataSelectionOptions);
9
+ get parent(): DTableData<ROW>;
8
10
  get type(): DTableDataSelectionType;
9
11
  protected onChange(): void;
10
12
  toggle(rowIndex: number): void;
@@ -22,6 +24,7 @@ export declare class DTableDataListSelection<ROW> extends utils.EventEmitter imp
22
24
  shift(rowIndex: number, amount: number): void;
23
25
  size(): number;
24
26
  isEmpty(): boolean;
27
+ each(iteratee: DTableDataSelectionEachIteratee): void;
25
28
  /**
26
29
  * Returns a copy of an index array of selected rows.
27
30
  * The order of indices is an insertion order.
@@ -1,4 +1,5 @@
1
1
  import { utils } from "pixi.js";
2
+ import { DOnOptions } from "./d-on-options";
2
3
  import { DTableData } from "./d-table-data";
3
4
  export declare const DTableDataSelectionType: {
4
5
  readonly NONE: 0;
@@ -6,10 +7,31 @@ export declare const DTableDataSelectionType: {
6
7
  readonly MULTIPLE: 2;
7
8
  };
8
9
  export declare type DTableDataSelectionType = typeof DTableDataSelectionType[keyof typeof DTableDataSelectionType];
9
- export interface DTableDataSelectionOptions {
10
+ /**
11
+ * {@link DTableDataSelection} events.
12
+ */
13
+ export interface DTableDataSelectionEvents<EMITTER> {
14
+ /**
15
+ * Triggered when s selection is changed.
16
+ *
17
+ * on( "change", ( emitter ) => {} )
18
+ *
19
+ * @param emitter an emitter
20
+ */
21
+ change(emitter: EMITTER): void;
22
+ }
23
+ /**
24
+ * {@link DTableDataSelection} "on" options.
25
+ */
26
+ export interface DTableDataSelectionOnOptions<EMITTER> extends Partial<DTableDataSelectionEvents<EMITTER>>, DOnOptions {
27
+ }
28
+ export interface DTableDataSelectionOptions<EMITTER = any> {
10
29
  type?: keyof typeof DTableDataSelectionType | DTableDataSelectionType;
30
+ on?: DTableDataSelectionOnOptions<EMITTER>;
11
31
  }
32
+ export declare type DTableDataSelectionEachIteratee = (index: number) => void | boolean;
12
33
  export interface DTableDataSelection<ROW> extends utils.EventEmitter {
34
+ readonly parent: DTableData<ROW>;
13
35
  /**
14
36
  * Returns a copy of an index array of selected rows.
15
37
  * The order of indices is an insertion order.
@@ -36,6 +58,13 @@ export interface DTableDataSelection<ROW> extends utils.EventEmitter {
36
58
  shift(rowIndex: number, amount: number): void;
37
59
  size(): number;
38
60
  isEmpty(): boolean;
61
+ /**
62
+ * Calls the specified iteratee on each indices.
63
+ * If called iteratee explicitly returns false, stops an iteration.
64
+ *
65
+ * @param iteratee an function called on each indices
66
+ */
67
+ each(iteratee: DTableDataSelectionEachIteratee): void;
39
68
  /**
40
69
  * Returns an array of the (index, row value) pairs of selected rows.
41
70
  * The order of pairs is an insertion order.
@@ -1,11 +1,13 @@
1
1
  import { utils } from "pixi.js";
2
- import { DTableDataSelectionOptions, DTableDataSelectionType } from "./d-table-data-selection";
2
+ import { DTableData } from "./d-table-data";
3
+ import { DTableDataSelectionEachIteratee, DTableDataSelectionOptions, DTableDataSelectionType } from "./d-table-data-selection";
3
4
  import { DTableDataTreeSelection, DTableDataTreeSelectionParent } from "./d-table-data-tree-selection";
4
5
  export declare class DTableDataTreeSelectionImpl<NODE> extends utils.EventEmitter implements DTableDataTreeSelection<NODE> {
5
6
  protected _parent: DTableDataTreeSelectionParent<NODE>;
6
7
  protected _type: DTableDataSelectionType;
7
8
  protected _rows: Set<NODE>;
8
9
  constructor(parent: DTableDataTreeSelectionParent<NODE>, options?: DTableDataSelectionOptions);
10
+ get parent(): DTableData<NODE>;
9
11
  onNodeChange(nodes?: NODE[]): void;
10
12
  protected newRows(nodes: NODE[], toChildren: (node: NODE) => NODE[] | null | undefined, rows: Set<NODE>, result: Set<NODE>): Set<NODE>;
11
13
  get indices(): number[];
@@ -30,6 +32,7 @@ export declare class DTableDataTreeSelectionImpl<NODE> extends utils.EventEmitte
30
32
  shift(rowIndex: number, amount: number): void;
31
33
  size(): number;
32
34
  isEmpty(): boolean;
35
+ each(iteratee: DTableDataSelectionEachIteratee): void;
33
36
  toArray(): Array<[number, NODE]>;
34
37
  toSortedArray(): Array<[number, NODE]>;
35
38
  toObject(): Record<number, NODE>;
@@ -1,6 +1,9 @@
1
+ import type { DDiagramCanvas } from "../d-diagram-canvas";
1
2
  export interface EShapeDataValueExtension {
2
3
  id: string;
3
4
  type: number;
4
5
  label: string;
5
6
  initial: unknown;
7
+ start?: (canvas: DDiagramCanvas) => void;
8
+ stop?: (canvas: DDiagramCanvas) => void;
6
9
  }
@@ -2,7 +2,9 @@ import { EShapeDataValueExtension } from "./e-shape-data-value-extension";
2
2
  export declare class EShapeDataValueExtensions {
3
3
  protected static _data?: EShapeDataValueExtension[];
4
4
  protected static _typeToDatum?: Map<number, EShapeDataValueExtension>;
5
+ protected static _idToDatum?: Map<string, EShapeDataValueExtension>;
5
6
  static add(extension: EShapeDataValueExtension): void;
6
7
  static get(type: number): EShapeDataValueExtension | undefined;
8
+ static getById(id: string): EShapeDataValueExtension | undefined;
7
9
  static each(iteratee: (extension: EShapeDataValueExtension) => void): void;
8
10
  }
@@ -55,8 +55,10 @@ var DDiagramCanvas = /** @class */ (function (_super) {
55
55
  configurable: true
56
56
  });
57
57
  DDiagramCanvas.prototype.initialize = function (shapes, mapper) {
58
+ var _this = this;
58
59
  var actionables = this._actionables;
59
- this.initialize_(shapes, null, null, mapper, new Map(), new Map(), new Map(), this._ticker, this._shape, this._data, actionables);
60
+ var data = this._data;
61
+ this.initialize_(shapes, null, null, mapper, new Map(), new Map(), new Map(), this._ticker, this._shape, data, actionables);
60
62
  var layers = this._layer.children;
61
63
  var layersLength = layers.length;
62
64
  for (var i = 0; i < layersLength; ++i) {
@@ -68,9 +70,18 @@ var DDiagramCanvas = /** @class */ (function (_super) {
68
70
  layers[i].update(time);
69
71
  }
70
72
  EShapeActionEnvironment.isInitializing = false;
73
+ data.extended.each(function (id) {
74
+ var extension = EShapeDataValueExtensions.getById(id);
75
+ if (extension) {
76
+ var start = extension.start;
77
+ if (start) {
78
+ start(_this);
79
+ }
80
+ }
81
+ });
71
82
  this._ticker.start();
72
83
  };
73
- DDiagramCanvas.prototype.initialize_ = function (shapes, dataShape, containerShape, mapper, formatToFormatter, initialToInitialValue, actionValueToRuntime, canvasTicker, canvasShape, canvasData, actionables) {
84
+ DDiagramCanvas.prototype.initialize_ = function (shapes, dataShape, containerShape, mapper, formatters, initialValues, actionValueToRuntime, canvasTicker, canvasShape, canvasData, actionables) {
74
85
  var _loop_1 = function (i, imax) {
75
86
  var shape = shapes[i];
76
87
  // ID
@@ -79,7 +90,7 @@ var DDiagramCanvas = /** @class */ (function (_super) {
79
90
  canvasShape.add(id, shape);
80
91
  }
81
92
  // Data
82
- this_1.initData(shape, dataShape, containerShape, mapper, formatToFormatter, initialToInitialValue, canvasTicker, canvasData);
93
+ this_1.initData(shape, dataShape, containerShape, mapper, formatters, initialValues, canvasTicker, canvasData);
83
94
  // Runtime
84
95
  var runtime = new (EShapeRuntimes[shape.type] || EShapeRuntime)(shape);
85
96
  shape.runtime = runtime;
@@ -109,7 +120,7 @@ var DDiagramCanvas = /** @class */ (function (_super) {
109
120
  }
110
121
  newContainerShape = shape;
111
122
  }
112
- this_1.initialize_(children, newDataShape, newContainerShape, mapper, formatToFormatter, initialToInitialValue, actionValueToRuntime, canvasTicker, canvasShape, canvasData, actionables);
123
+ this_1.initialize_(children, newDataShape, newContainerShape, mapper, formatters, initialValues, actionValueToRuntime, canvasTicker, canvasShape, canvasData, actionables);
113
124
  }
114
125
  };
115
126
  var this_1 = this;
@@ -117,14 +128,13 @@ var DDiagramCanvas = /** @class */ (function (_super) {
117
128
  _loop_1(i, imax);
118
129
  }
119
130
  };
120
- DDiagramCanvas.prototype.initData = function (shape, dataShape, containerShape, mapper, formatToFormatter, initialToInitialValue, canvasTicker, canvasData) {
131
+ DDiagramCanvas.prototype.initData = function (shape, dataShape, containerShape, mapper, formatters, initialValues, canvasTicker, canvasData) {
121
132
  var data = shape.data;
122
- var format = "";
123
- var initial = "";
124
133
  for (var i = 0, imax = data.size(); i < imax; ++i) {
125
134
  var value = data.get(i);
126
- if (value == null)
135
+ if (value == null) {
127
136
  continue;
137
+ }
128
138
  switch (value.type) {
129
139
  case EShapeDataValueType.NUMBER:
130
140
  case EShapeDataValueType.NUMBER_ARRAY:
@@ -132,95 +142,116 @@ var DDiagramCanvas = /** @class */ (function (_super) {
132
142
  case EShapeDataValueType.STRING_ARRAY:
133
143
  case EShapeDataValueType.OBJECT:
134
144
  case EShapeDataValueType.OBJECT_ARRAY:
135
- // Mapping
136
- if (value.scope === EShapeDataValueScope.PRIVATE) {
137
- var id = value.id;
138
- if (0 < id.length) {
139
- if (containerShape) {
140
- containerShape.data.private.add(id, value);
141
- }
142
- else {
143
- canvasData.private.add(id, value);
144
- }
145
- }
146
- }
147
- else if (value.scope === EShapeDataValueScope.PROTECTED) {
148
- var id = value.id;
149
- if (0 < id.length) {
150
- canvasData.protected.add(id, value);
151
- }
152
- }
153
- else {
154
- if (mapper) {
155
- mapper(value, dataShape || shape);
156
- }
157
- var id = value.id;
158
- if (0 < id.length) {
159
- canvasData.add(id, value);
160
- }
161
- }
162
- // Format
163
- format = value.format;
164
- initial = value.initial;
165
- if (formatToFormatter.has(format)) {
166
- value.formatter = formatToFormatter.get(format);
167
- }
168
- else if (0 < format.length) {
169
- try {
170
- var formatter = this.calcFormatter(value, format, initial);
171
- formatToFormatter.set(format, formatter);
172
- value.formatter = formatter;
173
- }
174
- catch (e) {
175
- // DO NOTHING
176
- }
177
- }
178
- // Initial
179
- if (initialToInitialValue.has(initial)) {
180
- value.value = initialToInitialValue.get(initial);
181
- }
182
- else if (0 < initial.length) {
183
- try {
184
- var initialValue = this.calcInitial(value, initial);
185
- initialToInitialValue.set(initial, initialValue);
186
- value.value = initialValue;
187
- }
188
- catch (e) {
189
- // DO NOTHING
190
- }
191
- }
145
+ this.initDataValue(value, shape, dataShape, containerShape, mapper, formatters, initialValues, canvasData);
192
146
  break;
193
147
  case EShapeDataValueType.TICKER:
194
- // Initial
195
- initial = value.initial;
196
- if (initialToInitialValue.has(initial)) {
197
- value.value = 0;
198
- canvasTicker.add(initialToInitialValue.get(initial)).add(value);
199
- }
200
- else if (0 < initial.length) {
201
- try {
202
- var initialValue = this.calcInitial(value, initial);
203
- initialToInitialValue.set(initial, initialValue);
204
- value.value = 0;
205
- canvasTicker.add(initialValue).add(value);
206
- }
207
- catch (e) {
208
- // DO NOTHING
209
- }
210
- }
148
+ this.initDataTicker(value, initialValues, canvasTicker);
211
149
  break;
212
150
  default:
213
- var extension = EShapeDataValueExtensions.get(value.type);
214
- if (extension) {
215
- // Mapping
216
- canvasData.extended.add(extension.id, value);
217
- // Initial
218
- value.value = extension.initial;
219
- }
151
+ this.initDataExtension(value, canvasData);
220
152
  break;
221
153
  }
222
154
  }
223
155
  };
156
+ DDiagramCanvas.prototype.initDataValue = function (value, shape, dataShape, containerShape, mapper, formatters, initialValues, canvasData) {
157
+ // Mapping
158
+ if (value.scope === EShapeDataValueScope.PRIVATE) {
159
+ var id = value.id;
160
+ if (0 < id.length) {
161
+ if (containerShape) {
162
+ containerShape.data.private.add(id, value);
163
+ }
164
+ else {
165
+ canvasData.private.add(id, value);
166
+ }
167
+ }
168
+ }
169
+ else if (value.scope === EShapeDataValueScope.PROTECTED) {
170
+ var id = value.id;
171
+ if (0 < id.length) {
172
+ canvasData.protected.add(id, value);
173
+ }
174
+ }
175
+ else {
176
+ if (mapper) {
177
+ mapper(value, dataShape || shape);
178
+ }
179
+ var id = value.id;
180
+ if (0 < id.length) {
181
+ canvasData.add(id, value);
182
+ }
183
+ }
184
+ // Format
185
+ var format = value.format;
186
+ var initial = value.initial;
187
+ var formatToFormatter = formatters.get(value.type);
188
+ if (formatToFormatter && formatToFormatter.has(format)) {
189
+ value.formatter = formatToFormatter.get(format);
190
+ }
191
+ else if (0 < format.length) {
192
+ try {
193
+ var formatter = this.calcFormatter(value, format, initial);
194
+ if (formatToFormatter == null) {
195
+ formatToFormatter = new Map();
196
+ formatters.set(value.type, formatToFormatter);
197
+ }
198
+ formatToFormatter.set(format, formatter);
199
+ value.formatter = formatter;
200
+ }
201
+ catch (e) {
202
+ // DO NOTHING
203
+ }
204
+ }
205
+ // Initial
206
+ var initialToInitialValue = initialValues.get(value.type);
207
+ if (initialToInitialValue && initialToInitialValue.has(initial)) {
208
+ value.value = initialToInitialValue.get(initial);
209
+ }
210
+ else if (0 < initial.length) {
211
+ try {
212
+ var initialValue = this.calcInitial(value, initial);
213
+ if (initialToInitialValue == null) {
214
+ initialToInitialValue = new Map();
215
+ initialValues.set(value.type, initialToInitialValue);
216
+ }
217
+ initialToInitialValue.set(initial, initialValue);
218
+ value.value = initialValue;
219
+ }
220
+ catch (e) {
221
+ // DO NOTHING
222
+ }
223
+ }
224
+ };
225
+ DDiagramCanvas.prototype.initDataTicker = function (value, initialValues, canvasTicker) {
226
+ var initial = value.initial;
227
+ var initialToInitialValue = initialValues.get(value.type);
228
+ if (initialToInitialValue && initialToInitialValue.has(initial)) {
229
+ value.value = 0;
230
+ canvasTicker.add(initialToInitialValue.get(initial)).add(value);
231
+ }
232
+ else if (0 < initial.length) {
233
+ try {
234
+ var initialValue = this.calcInitial(value, initial);
235
+ if (initialToInitialValue == null) {
236
+ initialToInitialValue = new Map();
237
+ initialValues.set(value.type, initialToInitialValue);
238
+ }
239
+ initialToInitialValue.set(initial, initialValue);
240
+ value.value = 0;
241
+ canvasTicker.add(initialValue).add(value);
242
+ }
243
+ catch (e) {
244
+ // DO NOTHING
245
+ }
246
+ }
247
+ };
248
+ DDiagramCanvas.prototype.initDataExtension = function (value, canvasData) {
249
+ var extension = EShapeDataValueExtensions.get(value.type);
250
+ if (extension) {
251
+ canvasData.extended.add(extension.id, value);
252
+ value.value = extension.initial;
253
+ }
254
+ };
224
255
  DDiagramCanvas.prototype.initActions = function (shape, shapeRuntime, valueToRuntime) {
225
256
  var values = shape.action.values;
226
257
  var runtimes = shapeRuntime.actions;
@@ -290,6 +321,16 @@ var DDiagramCanvas = /** @class */ (function (_super) {
290
321
  }
291
322
  };
292
323
  DDiagramCanvas.prototype.onDestroy = function () {
324
+ var _this = this;
325
+ this._data.extended.each(function (id) {
326
+ var extension = EShapeDataValueExtensions.getById(id);
327
+ if (extension) {
328
+ var stop_1 = extension.stop;
329
+ if (stop_1) {
330
+ stop_1(_this);
331
+ }
332
+ }
333
+ });
293
334
  this._ticker.stop();
294
335
  _super.prototype.onDestroy.call(this);
295
336
  };
@@ -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(this);\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 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\tconst layersLength = layers.length;\n\t\tfor (let i = 0; i < layersLength; ++i) {\n\t\t\tlayers[i].initialize(actionables);\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = true;\n\t\tconst time = Date.now();\n\t\tfor (let i = 0; i < layersLength; ++i) {\n\t\t\tlayers[i].update(time);\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\t// Cursor\n\t\tthis.cursor = this._cursor = this.toShapeCursor(found);\n\n\t\t// TItle\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst title = this.toShapeTitle(found);\n\t\t\tconst view = layer.view;\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) {\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) {\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":"AAAA;;;GAGG;;AAEH,OAAO,EAAuB,KAAK,EAAY,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACN,kBAAkB,EAGlB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAI7D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAOpF;IAGU,kCAAkC;IAc3C,wBAAY,OAAgB;QAA5B,YACC,kBAAM,OAAO,CAAC,SASd;QARA,KAAI,CAAC,KAAK,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC1C,KAAI,CAAC,MAAM,GAAG,IAAI,uBAAuB,CAAC,KAAI,CAAC,CAAC;QAChD,KAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,KAAI,CAAC,CAAC;QAClD,KAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAI,CAAC,YAAY,GAAG;YACnB,aAAa,CAAC,MAAM,CAAC,KAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;;IACH,CAAC;IAED,sBAAI,gCAAI;aAAR;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAED,sBAAI,iCAAK;aAAT;YACC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;;;OAAA;IAED,sBAAI,kCAAM;aAAV;YACC,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;;;OAAA;IAED,mCAAU,GAAV,UAAW,MAAgB,EAAE,MAAkC;QAA/D,iBAqCC;QApCA,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,CACf,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,GAAG,EAAiE,EACxE,IAAI,GAAG,EAA6C,EACpD,IAAI,GAAG,EAA0C,EACjD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,WAAW,CACX,CAAC;QACF,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,EAAE;YACtC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAClC;QACD,uBAAuB,CAAC,cAAc,GAAG,IAAI,CAAC;QAC9C,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,EAAE;YACtC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,uBAAuB,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,EAAE;YACrB,IAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE;gBACd,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC9B,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,KAAI,CAAC,CAAC;iBACZ;aACD;QACF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAES,oCAAW,GAArB,UACC,MAAgB,EAChB,SAAwB,EACxB,cAA6B,EAC7B,MAA6C,EAC7C,UAA8E,EAC9E,aAA6D,EAC7D,oBAAiE,EACjE,YAAkC,EAClC,WAAgC,EAChC,UAA8B,EAC9B,WAAqB;gCAEZ,CAAC,EAAM,IAAI;YACnB,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,KAAK;YACL,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;gBAClB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aAC3B;YAED,OAAO;YACP,OAAK,QAAQ,CACZ,KAAK,EACL,SAAS,EACT,cAAc,EACd,MAAM,EACN,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,CACV,CAAC;YAEF,UAAU;YACV,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;YACzE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAExB,SAAS;YACT,OAAK,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAEvD,cAAc;YACd,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE;gBAC3B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxB;YAED,WAAW;YACX,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,QAAQ,IAAI,IAAI,EAAE;gBACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAC,CAAgB;oBACtD,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;aACH;YAED,mBAAmB;YACnB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE1B,WAAW;YACX,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;gBACxB,IAAI,YAAY,GAAG,SAAS,CAAC;gBAC7B,IAAI,iBAAiB,GAAG,cAAc,CAAC;gBACvC,IAAI,KAAK,YAAY,cAAc,EAAE;oBACpC,IAAI,YAAY,IAAI,IAAI,EAAE;wBACzB,YAAY,GAAG,KAAK,CAAC;qBACrB;oBACD,iBAAiB,GAAG,KAAK,CAAC;iBAC1B;gBACD,OAAK,WAAW,CACf,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,CACX,CAAC;aACF;;;QApEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;oBAA1C,CAAC,EAAM,IAAI;SAqEnB;IACF,CAAC;IAES,iCAAQ,GAAlB,UACC,KAAa,EACb,SAAwB,EACxB,cAA6B,EAC7B,MAA6C,EAC7C,UAA8E,EAC9E,aAA6D,EAC7D,YAAkC,EAClC,UAA8B;QAE9B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YAClD,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,SAAS;aACT;YACD,QAAQ,KAAK,CAAC,IAAI,EAAE;gBACnB,KAAK,mBAAmB,CAAC,MAAM,CAAC;gBAChC,KAAK,mBAAmB,CAAC,YAAY,CAAC;gBACtC,KAAK,mBAAmB,CAAC,MAAM,CAAC;gBAChC,KAAK,mBAAmB,CAAC,YAAY,CAAC;gBACtC,KAAK,mBAAmB,CAAC,MAAM,CAAC;gBAChC,KAAK,mBAAmB,CAAC,YAAY;oBACpC,IAAI,CAAC,aAAa,CACjB,KAAK,EACL,KAAK,EACL,SAAS,EACT,cAAc,EACd,MAAM,EACN,UAAU,EACV,aAAa,EACb,UAAU,CACV,CAAC;oBACF,MAAM;gBACP,KAAK,mBAAmB,CAAC,MAAM;oBAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;oBACxD,MAAM;gBACP;oBACC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBAC1C,MAAM;aACP;SACD;IACF,CAAC;IAES,sCAAa,GAAvB,UACC,KAAsB,EACtB,KAAa,EACb,SAAwB,EACxB,cAA6B,EAC7B,MAA6C,EAC7C,UAA8E,EAC9E,aAA6D,EAC7D,UAA8B;QAE9B,UAAU;QACV,IAAI,KAAK,CAAC,KAAK,KAAK,oBAAoB,CAAC,OAAO,EAAE;YACjD,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;gBAClB,IAAI,cAAc,EAAE;oBACnB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;iBAC3C;qBAAM;oBACN,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;iBAClC;aACD;SACD;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,oBAAoB,CAAC,SAAS,EAAE;YAC1D,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;gBAClB,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACpC;SACD;aAAM;YACN,IAAI,MAAM,EAAE;gBACX,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK,CAAC,CAAC;aAClC;YACD,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;gBAClB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aAC1B;SACD;QAED,SAAS;QACT,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACvD,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAChD;aAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;YAC7B,IAAI;gBACH,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,iBAAiB,IAAI,IAAI,EAAE;oBAC9B,iBAAiB,GAAG,IAAI,GAAG,EAAuC,CAAC;oBACnE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;iBAC9C;gBACD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBACzC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;aAC5B;YAAC,OAAO,CAAC,EAAE;gBACX,aAAa;aACb;SACD;QAED,UAAU;QACV,IAAI,qBAAqB,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,qBAAqB,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAChE,KAAK,CAAC,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACjD;aAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE;YAC9B,IAAI;gBACH,IAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACtD,IAAI,qBAAqB,IAAI,IAAI,EAAE;oBAClC,qBAAqB,GAAG,IAAI,GAAG,EAAmB,CAAC;oBACnD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;iBACrD;gBACD,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjD,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACX,aAAa;aACb;SACD;IACF,CAAC;IAES,uCAAc,GAAxB,UACC,KAAsB,EACtB,aAA6D,EAC7D,YAAkC;QAElC,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,qBAAqB,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,qBAAqB,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAChE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;YAChB,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChE;aAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE;YAC9B,IAAI;gBACH,IAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACtD,IAAI,qBAAqB,IAAI,IAAI,EAAE;oBAClC,qBAAqB,GAAG,IAAI,GAAG,EAAmB,CAAC;oBACnD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;iBACrD;gBACD,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjD,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAChB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC1C;YAAC,OAAO,CAAC,EAAE;gBACX,aAAa;aACb;SACD;IACF,CAAC;IAES,0CAAiB,GAA3B,UAA4B,KAAsB,EAAE,UAA8B;QACjF,IAAM,SAAS,GAAG,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,SAAS,EAAE;YACd,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC7C,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;SAChC;IACF,CAAC;IAES,oCAAW,GAArB,UACC,KAAa,EACb,YAA2B,EAC3B,cAA2D;QAE3D,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,IAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;YACpD,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACpB,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC5B,IAAI,OAAO,IAAI,IAAI,EAAE;oBACpB,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBACnC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvB,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;iBACpC;aACD;iBAAM;gBACN,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;aACpC;SACD;IACF,CAAC;IAES,sCAAa,GAAvB,UACC,KAAsB,EACtB,MAAc,EACd,OAAe;QAEf,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,QAAQ,CACd,OAAO;QACP,sCAAsC;QACtC,OAAO;YACN,kBAAW,MAAM,OAAI;YACtB,iBAAiB;YAChB,OAAO;YACN,kBAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAI;YAClD,iBAAiB;YAChB,iBAAU,GAAG,MAAG;YACjB,GAAG;YACJ,GAAG;QACH,qCAAqC;SAC9B,CAAC;IACV,CAAC;IAES,oCAAW,GAArB,UAAsB,KAAsB,EAAE,OAAe;QAC5D,OAAO,QAAQ;QACd,sCAAsC;QACtC,OAAO;YACN,kBAAW,OAAO,OAAI;YACvB,gBAAgB;YACf,iBAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAG;YACnC,GAAG;QACH,qCAAqC;SACrC,EAAE,CAAC;IACL,CAAC;IAES,kCAAS,GAAnB,UAAoB,KAAsB;QACzC,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAC7B,QAAQ,SAAS,EAAE;YAClB,KAAK,mBAAmB,CAAC,MAAM;gBAC9B,OAAO,GAAG,CAAC;YACZ,KAAK,mBAAmB,CAAC,YAAY;gBACpC,OAAO,IAAI,CAAC;YACb,KAAK,mBAAmB,CAAC,MAAM;gBAC9B,OAAO,IAAI,CAAC;YACb,KAAK,mBAAmB,CAAC,YAAY;gBACpC,OAAO,IAAI,CAAC;YACb,KAAK,mBAAmB,CAAC,MAAM;gBAC9B,OAAO,IAAI,CAAC;YACb,KAAK,mBAAmB,CAAC,YAAY;gBACpC,OAAO,IAAI,CAAC;YACb,KAAK,mBAAmB,CAAC,MAAM;gBAC9B,OAAO,GAAG,CAAC;YACZ;gBACC,OAAO,GAAG,CAAC;SACZ;IACF,CAAC;IAES,kCAAS,GAAnB;QAAA,iBAYC;QAXA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,EAAE;YAC3B,IAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE;gBACd,IAAM,MAAI,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC5B,IAAI,MAAI,EAAE;oBACT,MAAI,CAAC,KAAI,CAAC,CAAC;iBACX;aACD;QACF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,iBAAM,SAAS,WAAE,CAAC;IACnB,CAAC;IAED,4CAAmB,GAAnB,UAAoB,MAAc;QACjC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YAC5C,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,CAAC,OAAO,EAAE;gBAClB,IAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,MAAM,IAAI,IAAI,EAAE;oBACnB,OAAO,MAAM,CAAC;iBACd;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,oCAAW,GAAX,UAAY,CAA+B;QAC1C,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtD,SAAS;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvD,QAAQ;QACR,IAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE;YACV,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACnB;SACD;QAED,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,KAAK,MAAM,EAAE;YACrB,IAAI,KAAK,IAAI,IAAI,EAAE;gBAClB,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC9B,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACzB;aACD;SACD;aAAM;YACN,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAC3B;QACD,OAAO,KAAK,IAAI,IAAI,CAAC;IACtB,CAAC;IAES,sCAAa,GAAvB,UAAwB,MAAqB;QAC5C,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;gBACtB,OAAO,MAAM,CAAC;aACd;SACD;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAES,qCAAY,GAAtB,UAAuB,MAAqB;QAC3C,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SAC1B;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAES,mCAAU,GAApB,UACC,CAA+B,EAC/B,MAAwC,EACxC,MAAsB;QAEtB,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,YAAY,UAAU,EAAE;YAC3E,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aACzB;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SACvB;IACF,CAAC;IAES,oCAAW,GAArB,UACC,CAA+B,EAC/B,MAAwC,EACxC,MAAsB;QAEtB,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,YAAY,UAAU,EAAE;YAC3E,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC1B;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SACvB;IACF,CAAC;IAED,oCAAW,GAAX,UAAY,CAA+B;QAC1C,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,KAAK,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,IAAI,EAAE;gBACZ,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;iBAC1B;gBACD,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,QAAM,YAAY,UAAU,EAAE;oBACjC,MAAM,GAAG,QAAM,CAAC;iBAChB;qBAAM;oBACN,MAAM;iBACN;aACD;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,kCAAS,GAAT,UAAU,CAA+B;QACxC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,IAAI,EAAE;gBACZ,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;iBACxB;gBACD,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,QAAM,YAAY,UAAU,EAAE;oBACjC,MAAM,GAAG,QAAM,CAAC;iBAChB;qBAAM;oBACN,MAAM;iBACN;aACD;SACD;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,KAAK,IAAI,IAAI,CAAC;IACtB,CAAC;IAED,sCAAa,GAAb,UAAc,CAA+B;QAC5C,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE;YACrB,OAAO,CAAC,OAAO,CAAC,UAAC,MAAc;gBAC9B,IAAI,MAAM,GAAG,MAAM,CAAC;gBACpB,OAAO,IAAI,EAAE;oBACZ,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBAC/B,IAAI,OAAO,EAAE;wBACZ,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;qBAC/B;oBACD,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC7B,IAAI,QAAM,YAAY,UAAU,EAAE;wBACjC,MAAM,GAAG,QAAM,CAAC;qBAChB;yBAAM;wBACN,MAAM;qBACN;iBACD;YACF,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qCAAY,GAAZ,UAAa,CAA+B;QAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YACpC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,IAAI,EAAE;gBACZ,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;iBAC3B;gBACD,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,QAAM,YAAY,UAAU,EAAE;oBACjC,MAAM,GAAG,QAAM,CAAC;iBAChB;qBAAM;oBACN,MAAM;iBACN;aACD;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,wCAAe,GAAf,UACC,CAA0B,EAC1B,kBAAkD;;QAElD,IAAM,MAAM,GAAG,OAAC,cAAc,CAAC,aAAa,oCAA5B,cAAc,CAAC,aAAa,GAAK,IAAI,KAAK,EAAE,EAAC,CAAC;QAC9D,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC;QACzD,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE;YACV,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,OAAO,IAAI,EAAE;gBACZ,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,IAAI,OAAO,EAAE;oBACZ,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAC;iBAClD;gBACD,IAAM,QAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,IAAI,QAAM,YAAY,UAAU,EAAE;oBACjC,MAAM,GAAG,QAAM,CAAC;iBAChB;qBAAM;oBACN,MAAM;iBACN;aACD;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,+BAAM,GAAN;QACC,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;YAC3B,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACzD,IAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBACnC,IAAI,OAAO,EAAE;oBACZ,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;oBACrC,IAAI,IAAI,GAAG,aAAa,EAAE;wBACzB,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;qBACtE;iBACD;aACD;YACD,IAAI,CAAC,IAAI,MAAM,EAAE;gBAChB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aAC1D;SACD;IACF,CAAC;IAED,iCAAQ,GAAR,UAAS,QAAkB;QAC1B,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;YAC3B,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE;gBACzD,IAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACpC,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;gBACnC,IAAI,OAAO,EAAE;oBACZ,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;oBACrC,IAAI,IAAI,GAAG,aAAa,EAAE;wBACzB,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;qBACtE;iBACD;aACD;YACD,IAAI,CAAC,IAAI,MAAM,EAAE;gBAChB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;aAC1D;SACD;IACF,CAAC;IAES,gCAAO,GAAjB;QACC,OAAO,gBAAgB,CAAC;IACzB,CAAC;IACF,qBAAC;AAAD,CAAC,AA1pBD,CAGU,kBAAkB,GAupB3B","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(this);\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 actionables = this._actionables;\n\t\tconst data = this._data;\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<EShapeDataValueType, Map<string, (value: unknown) => unknown>>(),\n\t\t\tnew Map<EShapeDataValueType, Map<string, unknown>>(),\n\t\t\tnew Map<EShapeActionValue, EShapeActionRuntime>(),\n\t\t\tthis._ticker,\n\t\t\tthis._shape,\n\t\t\tdata,\n\t\t\tactionables\n\t\t);\n\t\tconst layers = this._layer.children;\n\t\tconst layersLength = layers.length;\n\t\tfor (let i = 0; i < layersLength; ++i) {\n\t\t\tlayers[i].initialize(actionables);\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = true;\n\t\tconst time = Date.now();\n\t\tfor (let i = 0; i < layersLength; ++i) {\n\t\t\tlayers[i].update(time);\n\t\t}\n\t\tEShapeActionEnvironment.isInitializing = false;\n\t\tdata.extended.each((id): void => {\n\t\t\tconst extension = EShapeDataValueExtensions.getById(id);\n\t\t\tif (extension) {\n\t\t\t\tconst start = extension.start;\n\t\t\t\tif (start) {\n\t\t\t\t\tstart(this);\n\t\t\t\t}\n\t\t\t}\n\t\t});\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\tformatters: Map<EShapeDataValueType, Map<string, (value: unknown) => unknown>>,\n\t\tinitialValues: Map<EShapeDataValueType, 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\tformatters,\n\t\t\t\tinitialValues,\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\tformatters,\n\t\t\t\t\tinitialValues,\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\tformatters: Map<EShapeDataValueType, Map<string, (value: unknown) => unknown>>,\n\t\tinitialValues: Map<EShapeDataValueType, Map<string, unknown>>,\n\t\tcanvasTicker: DDiagramCanvasTicker,\n\t\tcanvasData: DDiagramCanvasData\n\t): void {\n\t\tconst data = shape.data;\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) {\n\t\t\t\tcontinue;\n\t\t\t}\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\tthis.initDataValue(\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tshape,\n\t\t\t\t\t\tdataShape,\n\t\t\t\t\t\tcontainerShape,\n\t\t\t\t\t\tmapper,\n\t\t\t\t\t\tformatters,\n\t\t\t\t\t\tinitialValues,\n\t\t\t\t\t\tcanvasData\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeDataValueType.TICKER:\n\t\t\t\t\tthis.initDataTicker(value, initialValues, canvasTicker);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.initDataExtension(value, canvasData);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initDataValue(\n\t\tvalue: EShapeDataValue,\n\t\tshape: EShape,\n\t\tdataShape: EShape | null,\n\t\tcontainerShape: EShape | null,\n\t\tmapper: DDiagramDataMapper | null | undefined,\n\t\tformatters: Map<EShapeDataValueType, Map<string, (value: unknown) => unknown>>,\n\t\tinitialValues: Map<EShapeDataValueType, Map<string, unknown>>,\n\t\tcanvasData: DDiagramCanvasData\n\t): void {\n\t\t// Mapping\n\t\tif (value.scope === EShapeDataValueScope.PRIVATE) {\n\t\t\tconst id = value.id;\n\t\t\tif (0 < id.length) {\n\t\t\t\tif (containerShape) {\n\t\t\t\t\tcontainerShape.data.private.add(id, value);\n\t\t\t\t} else {\n\t\t\t\t\tcanvasData.private.add(id, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (value.scope === EShapeDataValueScope.PROTECTED) {\n\t\t\tconst id = value.id;\n\t\t\tif (0 < id.length) {\n\t\t\t\tcanvasData.protected.add(id, value);\n\t\t\t}\n\t\t} else {\n\t\t\tif (mapper) {\n\t\t\t\tmapper(value, dataShape || shape);\n\t\t\t}\n\t\t\tconst id = value.id;\n\t\t\tif (0 < id.length) {\n\t\t\t\tcanvasData.add(id, value);\n\t\t\t}\n\t\t}\n\n\t\t// Format\n\t\tconst format = value.format;\n\t\tconst initial = value.initial;\n\t\tlet formatToFormatter = formatters.get(value.type);\n\t\tif (formatToFormatter && formatToFormatter.has(format)) {\n\t\t\tvalue.formatter = formatToFormatter.get(format);\n\t\t} else if (0 < format.length) {\n\t\t\ttry {\n\t\t\t\tconst formatter = this.calcFormatter(value, format, initial);\n\t\t\t\tif (formatToFormatter == null) {\n\t\t\t\t\tformatToFormatter = new Map<string, (value: unknown) => unknown>();\n\t\t\t\t\tformatters.set(value.type, formatToFormatter);\n\t\t\t\t}\n\t\t\t\tformatToFormatter.set(format, formatter);\n\t\t\t\tvalue.formatter = formatter;\n\t\t\t} catch (e) {\n\t\t\t\t// DO NOTHING\n\t\t\t}\n\t\t}\n\n\t\t// Initial\n\t\tlet initialToInitialValue = initialValues.get(value.type);\n\t\tif (initialToInitialValue && initialToInitialValue.has(initial)) {\n\t\t\tvalue.value = initialToInitialValue.get(initial);\n\t\t} else if (0 < initial.length) {\n\t\t\ttry {\n\t\t\t\tconst initialValue = this.calcInitial(value, initial);\n\t\t\t\tif (initialToInitialValue == null) {\n\t\t\t\t\tinitialToInitialValue = new Map<string, unknown>();\n\t\t\t\t\tinitialValues.set(value.type, initialToInitialValue);\n\t\t\t\t}\n\t\t\t\tinitialToInitialValue.set(initial, initialValue);\n\t\t\t\tvalue.value = initialValue;\n\t\t\t} catch (e) {\n\t\t\t\t// DO NOTHING\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initDataTicker(\n\t\tvalue: EShapeDataValue,\n\t\tinitialValues: Map<EShapeDataValueType, Map<string, unknown>>,\n\t\tcanvasTicker: DDiagramCanvasTicker\n\t): void {\n\t\tconst initial = value.initial;\n\t\tlet initialToInitialValue = initialValues.get(value.type);\n\t\tif (initialToInitialValue && initialToInitialValue.has(initial)) {\n\t\t\tvalue.value = 0;\n\t\t\tcanvasTicker.add(initialToInitialValue.get(initial)).add(value);\n\t\t} else if (0 < initial.length) {\n\t\t\ttry {\n\t\t\t\tconst initialValue = this.calcInitial(value, initial);\n\t\t\t\tif (initialToInitialValue == null) {\n\t\t\t\t\tinitialToInitialValue = new Map<string, unknown>();\n\t\t\t\t\tinitialValues.set(value.type, initialToInitialValue);\n\t\t\t\t}\n\t\t\t\tinitialToInitialValue.set(initial, initialValue);\n\t\t\t\tvalue.value = 0;\n\t\t\t\tcanvasTicker.add(initialValue).add(value);\n\t\t\t} catch (e) {\n\t\t\t\t// DO NOTHING\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected initDataExtension(value: EShapeDataValue, canvasData: DDiagramCanvasData): void {\n\t\tconst extension = EShapeDataValueExtensions.get(value.type);\n\t\tif (extension) {\n\t\t\tcanvasData.extended.add(extension.id, value);\n\t\t\tvalue.value = extension.initial;\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._data.extended.each((id): void => {\n\t\t\tconst extension = EShapeDataValueExtensions.getById(id);\n\t\t\tif (extension) {\n\t\t\t\tconst stop = extension.stop;\n\t\t\t\tif (stop) {\n\t\t\t\t\tstop(this);\n\t\t\t\t}\n\t\t\t}\n\t\t});\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\t// Cursor\n\t\tthis.cursor = this._cursor = this.toShapeCursor(found);\n\n\t\t// TItle\n\t\tconst layer = DApplications.getLayer(this);\n\t\tif (layer) {\n\t\t\tconst title = this.toShapeTitle(found);\n\t\t\tconst view = layer.view;\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) {\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) {\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"]}