@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.
- package/dist/types/wcardinal/ui/d-diagram-canvas.d.ts +6 -2
- package/dist/types/wcardinal/ui/d-table-data-list-selection.d.ts +4 -1
- package/dist/types/wcardinal/ui/d-table-data-selection.d.ts +30 -1
- package/dist/types/wcardinal/ui/d-table-data-tree-selection-impl.d.ts +4 -1
- package/dist/types/wcardinal/ui/shape/e-shape-data-value-extension.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/e-shape-data-value-extensions.d.ts +2 -0
- package/dist/wcardinal/ui/d-diagram-canvas.js +130 -89
- package/dist/wcardinal/ui/d-diagram-canvas.js.map +1 -1
- package/dist/wcardinal/ui/d-table-data-list-selection.js +27 -0
- package/dist/wcardinal/ui/d-table-data-list-selection.js.map +1 -1
- package/dist/wcardinal/ui/d-table-data-selection.js.map +1 -1
- package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js +28 -0
- package/dist/wcardinal/ui/d-table-data-tree-selection-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-data-value-extension.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-data-value-extensions.js +9 -2
- package/dist/wcardinal/ui/shape/e-shape-data-value-extensions.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +195 -92
- package/dist/wcardinal-ui.js +195 -92
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- 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,
|
|
33
|
-
protected initData(shape: EShape, dataShape: EShape | null, containerShape: EShape | null, mapper: DDiagramDataMapper | null | undefined,
|
|
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 {
|
|
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
|
-
|
|
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 {
|
|
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>;
|
|
@@ -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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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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\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"]}
|