@stocksharp/diagram 0.2.3 → 0.4.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/esm/canvas-renderer.js +79 -28
- package/dist/esm/canvas-renderer.js.map +1 -1
- package/dist/esm/core/action-registry.js +24 -0
- package/dist/esm/core/action-registry.js.map +1 -1
- package/dist/esm/core/document.js +134 -28
- package/dist/esm/core/document.js.map +1 -1
- package/dist/esm/core/json.js +17 -0
- package/dist/esm/core/json.js.map +1 -0
- package/dist/esm/core/model.js +8 -0
- package/dist/esm/core/model.js.map +1 -1
- package/dist/esm/core/state.js +16 -2
- package/dist/esm/core/state.js.map +1 -1
- package/dist/esm/diagram/catalog.js +17 -5
- package/dist/esm/diagram/catalog.js.map +1 -1
- package/dist/esm/diagram/event-emitter.js +10 -0
- package/dist/esm/diagram/event-emitter.js.map +1 -1
- package/dist/esm/diagram/stocksharp-diagram.js +58 -56
- package/dist/esm/diagram/stocksharp-diagram.js.map +1 -1
- package/dist/esm/diagram/types.js +2 -1
- package/dist/esm/diagram/types.js.map +1 -1
- package/dist/esm/embed.js +121 -38
- package/dist/esm/embed.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/ssdiagram.js +380 -150
- package/dist/ssdiagram.js.map +4 -4
- package/dist/types/canvas-renderer.d.ts +11 -6
- package/dist/types/canvas-renderer.d.ts.map +1 -1
- package/dist/types/core/action-registry.d.ts +7 -0
- package/dist/types/core/action-registry.d.ts.map +1 -1
- package/dist/types/core/document.d.ts +1 -1
- package/dist/types/core/document.d.ts.map +1 -1
- package/dist/types/core/json.d.ts +11 -0
- package/dist/types/core/json.d.ts.map +1 -0
- package/dist/types/core/model.d.ts +45 -2
- package/dist/types/core/model.d.ts.map +1 -1
- package/dist/types/core/state.d.ts +24 -1
- package/dist/types/core/state.d.ts.map +1 -1
- package/dist/types/diagram/api.d.ts +6 -6
- package/dist/types/diagram/api.d.ts.map +1 -1
- package/dist/types/diagram/catalog.d.ts +2 -1
- package/dist/types/diagram/catalog.d.ts.map +1 -1
- package/dist/types/diagram/event-emitter.d.ts +6 -1
- package/dist/types/diagram/event-emitter.d.ts.map +1 -1
- package/dist/types/diagram/palette.d.ts +1 -1
- package/dist/types/diagram/palette.d.ts.map +1 -1
- package/dist/types/diagram/stocksharp-diagram.d.ts +29 -22
- package/dist/types/diagram/stocksharp-diagram.d.ts.map +1 -1
- package/dist/types/diagram/types.d.ts +4 -4
- package/dist/types/diagram/types.d.ts.map +1 -1
- package/dist/types/embed.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/canvas-renderer.ts +84 -29
- package/src/core/action-registry.ts +25 -0
- package/src/core/document.ts +147 -31
- package/src/core/json.ts +16 -0
- package/src/core/model.ts +55 -2
- package/src/core/state.ts +41 -3
- package/src/diagram/api.ts +6 -5
- package/src/diagram/catalog.ts +18 -6
- package/src/diagram/event-emitter.ts +12 -1
- package/src/diagram/palette.ts +1 -1
- package/src/diagram/stocksharp-diagram.ts +79 -76
- package/src/diagram/types.ts +6 -5
- package/src/embed.ts +140 -39
- package/src/index.ts +4 -0
|
@@ -12,6 +12,30 @@ export class DiagramActionRegistry {
|
|
|
12
12
|
this.actions.delete(action.id);
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Registers one action per id from a table keyed by TId, in key order.
|
|
17
|
+
* Because the table is a total Record, adding a member to TId without adding
|
|
18
|
+
* its action stops compiling instead of producing a command that silently
|
|
19
|
+
* does nothing.
|
|
20
|
+
*/
|
|
21
|
+
registerAll(actions) {
|
|
22
|
+
// Object.keys is typed string[] because a value can carry keys beyond the
|
|
23
|
+
// ones its type names. This parameter is a total Record over TId, so its
|
|
24
|
+
// keys are exactly TId.
|
|
25
|
+
const ids = Object.keys(actions);
|
|
26
|
+
// Delegating rather than spreading: a spread would copy own fields and
|
|
27
|
+
// drop the prototype, so a class-based action would register cleanly and
|
|
28
|
+
// then throw on its first call.
|
|
29
|
+
const disposers = ids.map((id) => {
|
|
30
|
+
const action = actions[id];
|
|
31
|
+
return this.register({
|
|
32
|
+
id,
|
|
33
|
+
canExecute: (context) => action.canExecute(context),
|
|
34
|
+
execute: (context) => action.execute(context),
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
return () => disposers.forEach((dispose) => dispose());
|
|
38
|
+
}
|
|
15
39
|
get(id) {
|
|
16
40
|
return this.actions.get(id) ?? null;
|
|
17
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-registry.js","sourceRoot":"","sources":["../../../src/core/action-registry.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,qBAAqB;IAAlC;QACqB,YAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"action-registry.js","sourceRoot":"","sources":["../../../src/core/action-registry.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,qBAAqB;IAAlC;QACqB,YAAO,GAAG,IAAI,GAAG,EAAqC,CAAC;IA0D5E,CAAC;IAxDG,QAAQ,CAAC,MAAoC;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE;YACR,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,MAAM;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,OAA8D;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,wBAAwB;QACxB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAU,CAAC;QAC1C,uEAAuE;QACvE,yEAAyE;QACzE,gCAAgC;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;gBACjB,EAAE;gBACF,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;gBACnD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aAChD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,GAAG,CAAC,EAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,OAAiB;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/C,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;SACtC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,UAAU,CAAC,EAAO,EAAE,OAAiB;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,EAAO,EAAE,OAAiB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { setJsonKey } from './json.js';
|
|
2
|
+
import { toPortDynamicMode } from './model.js';
|
|
1
3
|
import { DIAGRAM_DOCUMENT_VERSION, } from './model.js';
|
|
2
4
|
export { DIAGRAM_DOCUMENT_VERSION } from './model.js';
|
|
3
5
|
export class DiagramDocumentError extends Error {
|
|
@@ -8,33 +10,51 @@ export class DiagramDocumentError extends Error {
|
|
|
8
10
|
}
|
|
9
11
|
}
|
|
10
12
|
export function createDiagramDocument(input = {}) {
|
|
11
|
-
|
|
13
|
+
// DiagramDocumentInput is a structural interface, so its shape is a claim by
|
|
14
|
+
// the caller, not a guarantee. Elements are checked the same way parsed ones
|
|
15
|
+
// are, otherwise a malformed one surfaces as a TypeError naming no path.
|
|
16
|
+
const rawNodes = mapElements(input.nodes, '$.nodes');
|
|
17
|
+
const rawLinks = mapElements(input.links, '$.links');
|
|
18
|
+
const nodes = rawNodes.map((node, index) => normalizeNode(node, `$.nodes[${index}]`));
|
|
12
19
|
const usedLinkIds = new Set();
|
|
13
|
-
for (let index = 0; index <
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
20
|
+
for (let index = 0; index < rawLinks.length; index++) {
|
|
21
|
+
const raw = rawLinks[index].id;
|
|
22
|
+
if (raw === undefined)
|
|
16
23
|
continue;
|
|
17
|
-
requireIdentifier(
|
|
24
|
+
const id = requireIdentifier(raw, `$.links[${index}].id`);
|
|
18
25
|
if (usedLinkIds.has(id)) {
|
|
19
26
|
throw new DiagramDocumentError(`duplicate link id "${id}"`, `$.links[${index}].id`);
|
|
20
27
|
}
|
|
21
28
|
usedLinkIds.add(id);
|
|
22
29
|
}
|
|
23
30
|
let sequence = 1;
|
|
24
|
-
const links =
|
|
31
|
+
const links = rawLinks.map((link, index) => {
|
|
25
32
|
let id = link.id;
|
|
26
33
|
if (id === undefined) {
|
|
34
|
+
let generated;
|
|
27
35
|
do
|
|
28
|
-
|
|
29
|
-
while (usedLinkIds.has(
|
|
30
|
-
usedLinkIds.add(
|
|
36
|
+
generated = `link_${sequence++}`;
|
|
37
|
+
while (usedLinkIds.has(generated));
|
|
38
|
+
usedLinkIds.add(generated);
|
|
39
|
+
id = generated;
|
|
31
40
|
}
|
|
32
41
|
return normalizeLink({ ...link, id }, `$.links[${index}]`);
|
|
33
42
|
});
|
|
43
|
+
const rawZones = mapElements(input.zones, '$.zones');
|
|
44
|
+
const usedZoneIds = new Set();
|
|
45
|
+
const zones = rawZones.map((zone, index) => {
|
|
46
|
+
const normalized = normalizeZone(zone, `$.zones[${index}]`);
|
|
47
|
+
if (usedZoneIds.has(normalized.id)) {
|
|
48
|
+
throw new DiagramDocumentError(`duplicate zone id "${normalized.id}"`, `$.zones[${index}].id`);
|
|
49
|
+
}
|
|
50
|
+
usedZoneIds.add(normalized.id);
|
|
51
|
+
return normalized;
|
|
52
|
+
});
|
|
34
53
|
const document = {
|
|
35
54
|
version: DIAGRAM_DOCUMENT_VERSION,
|
|
36
55
|
nodes,
|
|
37
56
|
links,
|
|
57
|
+
zones,
|
|
38
58
|
metadata: cloneJsonObject(input.metadata ?? {}, '$.metadata'),
|
|
39
59
|
};
|
|
40
60
|
validateDocument(document);
|
|
@@ -57,7 +77,7 @@ export function parseDiagramDocument(source) {
|
|
|
57
77
|
throw new DiagramDocumentError(reason);
|
|
58
78
|
}
|
|
59
79
|
}
|
|
60
|
-
const root =
|
|
80
|
+
const root = requireStructure(value, '$');
|
|
61
81
|
const version = requireNumber(root.version, '$.version');
|
|
62
82
|
if (version !== DIAGRAM_DOCUMENT_VERSION) {
|
|
63
83
|
throw new DiagramDocumentError(`unsupported document version ${version}`, '$.version');
|
|
@@ -66,12 +86,18 @@ export function parseDiagramDocument(source) {
|
|
|
66
86
|
version: DIAGRAM_DOCUMENT_VERSION,
|
|
67
87
|
nodes: requireArray(root.nodes, '$.nodes').map((node, index) => parseNode(node, `$.nodes[${index}]`)),
|
|
68
88
|
links: requireArray(root.links, '$.links').map((link, index) => parseLink(link, `$.links[${index}]`)),
|
|
89
|
+
// Zones arrived after the first documents were written, so their absence is not a fault:
|
|
90
|
+
// an older file simply has none, and reading it must not need a migration step.
|
|
91
|
+
zones: root.zones === undefined || root.zones === null
|
|
92
|
+
? []
|
|
93
|
+
: requireArray(root.zones, '$.zones').map((zone, index) => normalizeZone(zone, `$.zones[${index}]`)),
|
|
69
94
|
metadata: cloneJsonObject(root.metadata, '$.metadata'),
|
|
70
95
|
};
|
|
71
96
|
validateDocument(document);
|
|
72
97
|
return document;
|
|
73
98
|
}
|
|
74
|
-
function normalizeNode(
|
|
99
|
+
function normalizeNode(value, path) {
|
|
100
|
+
const input = requireStructure(value, path);
|
|
75
101
|
const id = requireIdentifier(input.id, `${path}.id`);
|
|
76
102
|
return {
|
|
77
103
|
id,
|
|
@@ -86,28 +112,34 @@ function normalizeNode(input, path) {
|
|
|
86
112
|
icon: requireString(input.icon ?? '', `${path}.icon`),
|
|
87
113
|
message: requireString(input.message ?? '', `${path}.message`),
|
|
88
114
|
openAction: requireString(input.openAction ?? '', `${path}.openAction`),
|
|
89
|
-
inPorts: (input.inPorts
|
|
90
|
-
|
|
91
|
-
|
|
115
|
+
inPorts: mapElements(input.inPorts, `${path}.inPorts`)
|
|
116
|
+
.map((port, index) => normalizePort(port, `${path}.inPorts[${index}]`)),
|
|
117
|
+
outPorts: mapElements(input.outPorts, `${path}.outPorts`)
|
|
118
|
+
.map((port, index) => normalizePort(port, `${path}.outPorts[${index}]`)),
|
|
119
|
+
parameters: mapElements(input.parameters, `${path}.parameters`)
|
|
120
|
+
.map((parameter, index) => normalizeParameter(parameter, `${path}.parameters[${index}]`)),
|
|
92
121
|
paramValues: cloneStringRecord(input.paramValues ?? {}, `${path}.paramValues`),
|
|
93
122
|
metadata: cloneJsonObject(input.metadata ?? {}, `${path}.metadata`),
|
|
94
123
|
};
|
|
95
124
|
}
|
|
96
|
-
function normalizePort(
|
|
125
|
+
function normalizePort(value, path) {
|
|
126
|
+
const input = requireStructure(value, path);
|
|
97
127
|
return {
|
|
98
128
|
id: requireIdentifier(input.id, `${path}.id`),
|
|
99
129
|
name: requireString(input.name, `${path}.name`),
|
|
100
130
|
description: requireString(input.description ?? '', `${path}.description`),
|
|
101
131
|
type: requireString(input.type ?? '', `${path}.type`),
|
|
102
132
|
maxLinks: requireNonNegativeInteger(input.maxLinks ?? 0, `${path}.maxLinks`),
|
|
103
|
-
availableTypes: (input.availableTypes ?? []
|
|
133
|
+
availableTypes: requireArray(input.availableTypes ?? [], `${path}.availableTypes`)
|
|
134
|
+
.map((type, index) => requireString(type, `${path}.availableTypes[${index}]`)),
|
|
104
135
|
isDynamic: requireBoolean(input.isDynamic ?? false, `${path}.isDynamic`),
|
|
105
|
-
dynamicMode:
|
|
136
|
+
dynamicMode: requirePortDynamicMode(input.dynamicMode ?? '', `${path}.dynamicMode`),
|
|
106
137
|
isSibling: requireBoolean(input.isSibling ?? false, `${path}.isSibling`),
|
|
107
138
|
metadata: cloneJsonObject(input.metadata ?? {}, `${path}.metadata`),
|
|
108
139
|
};
|
|
109
140
|
}
|
|
110
|
-
function normalizeParameter(
|
|
141
|
+
function normalizeParameter(value, path) {
|
|
142
|
+
const input = requireStructure(value, path);
|
|
111
143
|
return {
|
|
112
144
|
name: requireIdentifier(input.name, `${path}.name`),
|
|
113
145
|
displayName: requireString(input.displayName, `${path}.displayName`),
|
|
@@ -123,22 +155,56 @@ function normalizeParameter(input, path) {
|
|
|
123
155
|
editorType: requireString(input.editorType, `${path}.editorType`),
|
|
124
156
|
};
|
|
125
157
|
}
|
|
126
|
-
function normalizeLink(
|
|
158
|
+
function normalizeLink(value, path) {
|
|
159
|
+
const input = requireStructure(value, path);
|
|
127
160
|
return {
|
|
128
161
|
id: requireIdentifier(input.id, `${path}.id`),
|
|
129
162
|
from: normalizeEndpoint(input.from, `${path}.from`),
|
|
130
163
|
to: normalizeEndpoint(input.to, `${path}.to`),
|
|
164
|
+
style: requireLinkStyle(input.style, `${path}.style`),
|
|
165
|
+
metadata: cloneJsonObject(input.metadata ?? {}, `${path}.metadata`),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// A style the caller misspelled is a drawing that quietly loses its meaning, so it is refused
|
|
169
|
+
// rather than defaulted - unlike an absent one, which simply means a plain line.
|
|
170
|
+
function requireLinkStyle(value, path) {
|
|
171
|
+
if (value === undefined || value === null)
|
|
172
|
+
return 'solid';
|
|
173
|
+
if (value !== 'solid' && value !== 'dashed') {
|
|
174
|
+
throw new DiagramDocumentError(`unknown link style "${String(value)}"`, path);
|
|
175
|
+
}
|
|
176
|
+
return value;
|
|
177
|
+
}
|
|
178
|
+
function normalizeZone(value, path) {
|
|
179
|
+
const input = requireStructure(value, path);
|
|
180
|
+
return {
|
|
181
|
+
id: requireIdentifier(input.id, `${path}.id`),
|
|
182
|
+
name: requireString(input.name, `${path}.name`),
|
|
183
|
+
x: requireNumber(input.x, `${path}.x`),
|
|
184
|
+
y: requireNumber(input.y, `${path}.y`),
|
|
185
|
+
width: requirePositiveSize(input.width, `${path}.width`),
|
|
186
|
+
height: requirePositiveSize(input.height, `${path}.height`),
|
|
187
|
+
color: input.color === undefined || input.color === null ? '' : requireString(input.color, `${path}.color`),
|
|
131
188
|
metadata: cloneJsonObject(input.metadata ?? {}, `${path}.metadata`),
|
|
132
189
|
};
|
|
133
190
|
}
|
|
134
|
-
|
|
191
|
+
// A zone with no area cannot be pointed at, and a negative one paints outside itself, so the
|
|
192
|
+
// size is refused rather than clamped - a caller that computed it wrong wants to hear about it.
|
|
193
|
+
function requirePositiveSize(value, path) {
|
|
194
|
+
const size = requireNumber(value, path);
|
|
195
|
+
if (!(size > 0))
|
|
196
|
+
throw new DiagramDocumentError('size must be greater than zero', path);
|
|
197
|
+
return size;
|
|
198
|
+
}
|
|
199
|
+
function normalizeEndpoint(value, path) {
|
|
200
|
+
const input = requireStructure(value, path);
|
|
135
201
|
return {
|
|
136
202
|
nodeId: requireIdentifier(input.nodeId, `${path}.nodeId`),
|
|
137
203
|
portId: requireIdentifier(input.portId, `${path}.portId`),
|
|
138
204
|
};
|
|
139
205
|
}
|
|
140
206
|
function parseNode(value, path) {
|
|
141
|
-
const node =
|
|
207
|
+
const node = requireStructure(value, path);
|
|
142
208
|
return normalizeNode({
|
|
143
209
|
id: requireString(node.id, `${path}.id`),
|
|
144
210
|
typeId: requireString(node.typeId, `${path}.typeId`),
|
|
@@ -160,7 +226,7 @@ function parseNode(value, path) {
|
|
|
160
226
|
}, path);
|
|
161
227
|
}
|
|
162
228
|
function parsePort(value, path) {
|
|
163
|
-
const port =
|
|
229
|
+
const port = requireStructure(value, path);
|
|
164
230
|
return normalizePort({
|
|
165
231
|
id: requireString(port.id, `${path}.id`),
|
|
166
232
|
name: requireString(port.name, `${path}.name`),
|
|
@@ -169,13 +235,13 @@ function parsePort(value, path) {
|
|
|
169
235
|
maxLinks: requireNumber(port.maxLinks, `${path}.maxLinks`),
|
|
170
236
|
availableTypes: requireArray(port.availableTypes, `${path}.availableTypes`).map((type, index) => requireString(type, `${path}.availableTypes[${index}]`)),
|
|
171
237
|
isDynamic: requireBoolean(port.isDynamic, `${path}.isDynamic`),
|
|
172
|
-
dynamicMode:
|
|
238
|
+
dynamicMode: requirePortDynamicMode(port.dynamicMode, `${path}.dynamicMode`),
|
|
173
239
|
isSibling: requireBoolean(port.isSibling, `${path}.isSibling`),
|
|
174
240
|
metadata: cloneJsonObject(port.metadata, `${path}.metadata`),
|
|
175
241
|
}, path);
|
|
176
242
|
}
|
|
177
243
|
function parseParameter(value, path) {
|
|
178
|
-
const parameter =
|
|
244
|
+
const parameter = requireStructure(value, path);
|
|
179
245
|
return normalizeParameter({
|
|
180
246
|
name: requireString(parameter.name, `${path}.name`),
|
|
181
247
|
displayName: requireString(parameter.displayName, `${path}.displayName`),
|
|
@@ -192,16 +258,17 @@ function parseParameter(value, path) {
|
|
|
192
258
|
}, path);
|
|
193
259
|
}
|
|
194
260
|
function parseLink(value, path) {
|
|
195
|
-
const link =
|
|
261
|
+
const link = requireStructure(value, path);
|
|
196
262
|
return normalizeLink({
|
|
197
263
|
id: requireString(link.id, `${path}.id`),
|
|
198
264
|
from: parseEndpoint(link.from, `${path}.from`),
|
|
199
265
|
to: parseEndpoint(link.to, `${path}.to`),
|
|
266
|
+
style: link.style === undefined ? undefined : requireLinkStyle(link.style, `${path}.style`),
|
|
200
267
|
metadata: cloneJsonObject(link.metadata, `${path}.metadata`),
|
|
201
268
|
}, path);
|
|
202
269
|
}
|
|
203
270
|
function parseEndpoint(value, path) {
|
|
204
|
-
const endpoint =
|
|
271
|
+
const endpoint = requireStructure(value, path);
|
|
205
272
|
return {
|
|
206
273
|
nodeId: requireIdentifier(endpoint.nodeId, `${path}.nodeId`),
|
|
207
274
|
portId: requireIdentifier(endpoint.portId, `${path}.portId`),
|
|
@@ -256,7 +323,7 @@ function cloneStringRecord(value, path) {
|
|
|
256
323
|
const object = requireObject(value, path);
|
|
257
324
|
const result = {};
|
|
258
325
|
for (const [key, item] of Object.entries(object))
|
|
259
|
-
result
|
|
326
|
+
setJsonKey(result, key, requireString(item, `${path}.${key}`));
|
|
260
327
|
return result;
|
|
261
328
|
}
|
|
262
329
|
function cloneJsonObject(value, path, ancestors = new WeakSet()) {
|
|
@@ -267,7 +334,7 @@ function cloneJsonObject(value, path, ancestors = new WeakSet()) {
|
|
|
267
334
|
const result = {};
|
|
268
335
|
try {
|
|
269
336
|
for (const [key, item] of Object.entries(object)) {
|
|
270
|
-
result
|
|
337
|
+
setJsonKey(result, key, cloneJsonValue(item, `${path}.${key}`, ancestors));
|
|
271
338
|
}
|
|
272
339
|
}
|
|
273
340
|
finally {
|
|
@@ -295,6 +362,22 @@ function cloneJsonValue(value, path, ancestors) {
|
|
|
295
362
|
return cloneJsonObject(value, path, ancestors);
|
|
296
363
|
throw new DiagramDocumentError('expected a JSON value', path);
|
|
297
364
|
}
|
|
365
|
+
/**
|
|
366
|
+
* A container whose fields are read individually. Any object will do, including
|
|
367
|
+
* a class instance: hosts build schemes out of DiagramNode and Port, not object
|
|
368
|
+
* literals, and every field is validated on its own below.
|
|
369
|
+
*/
|
|
370
|
+
function requireStructure(value, path) {
|
|
371
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
372
|
+
throw new DiagramDocumentError('expected an object', path);
|
|
373
|
+
}
|
|
374
|
+
return value;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* A value that has to survive JSON round-tripping unchanged. Stricter than
|
|
378
|
+
* requireStructure on purpose: a Date or any other class instance would
|
|
379
|
+
* serialize to something the parser could not read back.
|
|
380
|
+
*/
|
|
298
381
|
function requireObject(value, path) {
|
|
299
382
|
if (!isObject(value))
|
|
300
383
|
throw new DiagramDocumentError('expected an object', path);
|
|
@@ -306,6 +389,18 @@ function isObject(value) {
|
|
|
306
389
|
const prototype = Object.getPrototypeOf(value);
|
|
307
390
|
return prototype === Object.prototype || prototype === null;
|
|
308
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Reads an optional array of objects, rejecting a non-array, a hole or a
|
|
394
|
+
* non-object element. null counts as absent, like the `?? []` every other
|
|
395
|
+
* optional field is read through.
|
|
396
|
+
*/
|
|
397
|
+
function mapElements(value, path) {
|
|
398
|
+
if (value === undefined || value === null)
|
|
399
|
+
return [];
|
|
400
|
+
// Array.from rather than map: map skips holes, carrying an undefined element
|
|
401
|
+
// into the result instead of reporting it.
|
|
402
|
+
return Array.from(requireArray(value, path), (element, index) => requireStructure(element, `${path}[${index}]`));
|
|
403
|
+
}
|
|
309
404
|
function requireArray(value, path) {
|
|
310
405
|
if (!Array.isArray(value))
|
|
311
406
|
throw new DiagramDocumentError('expected an array', path);
|
|
@@ -316,6 +411,17 @@ function requireString(value, path) {
|
|
|
316
411
|
throw new DiagramDocumentError('expected a string', path);
|
|
317
412
|
return value;
|
|
318
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Coerces rather than rejects. The set is closed in the types, which is where a
|
|
416
|
+
* typo gets caught, but a persisted scheme can carry anything a JavaScript host
|
|
417
|
+
* wrote before that -- and refusing to load it would brick the whole document
|
|
418
|
+
* over a field whose every value except 'onConnect' behaves identically. The
|
|
419
|
+
* type must still be a string, so a number or an object is a real error.
|
|
420
|
+
*/
|
|
421
|
+
function requirePortDynamicMode(value, path) {
|
|
422
|
+
const mode = requireString(value, path);
|
|
423
|
+
return toPortDynamicMode(mode);
|
|
424
|
+
}
|
|
319
425
|
function requireIdentifier(value, path) {
|
|
320
426
|
const id = requireString(value, path);
|
|
321
427
|
if (id.trim().length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/core/document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/core/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stores a key that JSON can legitimately carry but plain assignment cannot hold.
|
|
3
|
+
*
|
|
4
|
+
* `JSON.parse` produces `__proto__` as an ordinary own key, yet writing it back
|
|
5
|
+
* with `target[key] = value` hits the inherited `__proto__` setter: the value is
|
|
6
|
+
* dropped and the object's prototype is replaced instead. A document parsed that
|
|
7
|
+
* way loses data and stops satisfying the parser's own "plain object" guard, so
|
|
8
|
+
* anything the parser accepted could no longer be serialized or cloned.
|
|
9
|
+
*/
|
|
10
|
+
export function setJsonKey(target, key, value) {
|
|
11
|
+
if (key === '__proto__') {
|
|
12
|
+
Object.defineProperty(target, key, { value, enumerable: true, writable: true, configurable: true });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
target[key] = value;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/core/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAI,MAAyB,EAAE,GAAW,EAAE,KAAQ;IAC1E,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACtB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,OAAO;IACX,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxB,CAAC"}
|
package/dist/esm/core/model.js
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
/** Narrows an untyped value to the closed set, defaulting to the inert mode. */
|
|
2
|
+
export function toPortDynamicMode(value) {
|
|
3
|
+
return value === 'manual' || value === 'onConnect' ? value : '';
|
|
4
|
+
}
|
|
5
|
+
/** Narrows an untyped value to the closed set, defaulting to a plain line. */
|
|
6
|
+
export function toDiagramLinkStyle(value) {
|
|
7
|
+
return value === 'dashed' ? 'dashed' : 'solid';
|
|
8
|
+
}
|
|
1
9
|
export const DIAGRAM_DOCUMENT_VERSION = 1;
|
|
2
10
|
//# sourceMappingURL=model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/core/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/core/model.ts"],"names":[],"mappings":"AA8BA,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC5C,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAiDD,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC7C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AA6BD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC"}
|
package/dist/esm/core/state.js
CHANGED
|
@@ -7,7 +7,7 @@ export function cloneDiagramRuntimeState(state) {
|
|
|
7
7
|
globalError: state.globalError === null ? null : { ...state.globalError },
|
|
8
8
|
nodes: Object.fromEntries(Object.entries(state.nodes).map(([nodeId, node]) => [nodeId, {
|
|
9
9
|
active: node.active,
|
|
10
|
-
|
|
10
|
+
errors: cloneDiagramNodeErrors(node.errors),
|
|
11
11
|
ports: {
|
|
12
12
|
in: Object.fromEntries(Object.entries(node.ports.in)
|
|
13
13
|
.map(([portId, port]) => [portId, { ...port }])),
|
|
@@ -66,8 +66,22 @@ export function createReadOnlyDiagramPermissions() {
|
|
|
66
66
|
export function createDiagramNodeRuntimeState() {
|
|
67
67
|
return {
|
|
68
68
|
active: false,
|
|
69
|
-
|
|
69
|
+
errors: {},
|
|
70
70
|
ports: { in: {}, out: {} },
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Tolerates a missing map: hosts persist runtime snapshots and build them by
|
|
75
|
+
* hand, so a state written before this field existed still has to be readable.
|
|
76
|
+
*/
|
|
77
|
+
export function cloneDiagramNodeErrors(errors) {
|
|
78
|
+
const result = {};
|
|
79
|
+
if (errors === undefined || errors === null)
|
|
80
|
+
return result;
|
|
81
|
+
if (errors.runtime !== undefined)
|
|
82
|
+
result.runtime = { ...errors.runtime };
|
|
83
|
+
if (errors.load !== undefined)
|
|
84
|
+
result.load = { ...errors.load };
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
73
87
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/core/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/core/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,19 +27,31 @@ export class StockSharpCatalog extends EventEmitter {
|
|
|
27
27
|
// imported node ("Element type is missing from the palette"). Node.id
|
|
28
28
|
// keeps its original casing so save/load round-trips unchanged.
|
|
29
29
|
addNodeType(node) {
|
|
30
|
-
|
|
30
|
+
// Copied on the way in as well as on the way out: otherwise the caller
|
|
31
|
+
// keeps a handle on the stored definition and can edit it afterwards.
|
|
32
|
+
// The clone covers the init branch too -- Node's constructor keeps the
|
|
33
|
+
// caller's Port instances and parameters array as they are.
|
|
34
|
+
const n = (node instanceof Node ? node : new Node(node)).clone();
|
|
31
35
|
this.nodeTypes.set(n.id.toLowerCase(), n);
|
|
32
|
-
this.
|
|
36
|
+
this.emitNodeTypesChanged();
|
|
33
37
|
}
|
|
34
38
|
removeNodeType(id) {
|
|
35
39
|
this.nodeTypes.delete(id.toLowerCase());
|
|
36
|
-
this.
|
|
40
|
+
this.emitNodeTypesChanged();
|
|
37
41
|
}
|
|
38
42
|
getNodeType(id) {
|
|
39
|
-
return this.nodeTypes.get(id.toLowerCase()) ?? null;
|
|
43
|
+
return this.nodeTypes.get(id.toLowerCase())?.clone() ?? null;
|
|
40
44
|
}
|
|
41
45
|
getNodeTypes() {
|
|
42
|
-
return Array.from(this.nodeTypes.values());
|
|
46
|
+
return Array.from(this.nodeTypes.values(), (node) => node.clone());
|
|
47
|
+
}
|
|
48
|
+
// Node definitions are mutable, so the payload has to be a copy of each one.
|
|
49
|
+
// Building a catalog is a loop of addNodeType calls, which would make that
|
|
50
|
+
// quadratic; skipping it while nobody listens keeps catalog construction --
|
|
51
|
+
// where no subscriber exists yet -- as cheap as it was.
|
|
52
|
+
emitNodeTypesChanged() {
|
|
53
|
+
if (this.hasHandlers('nodeTypesChanged'))
|
|
54
|
+
this.emit('nodeTypesChanged', this.getNodeTypes());
|
|
43
55
|
}
|
|
44
56
|
}
|
|
45
57
|
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/diagram/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAY,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAOpE,MAAM,OAAO,iBAAkB,SAAQ,YAA2B;IAAlE;;QACqB,cAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxC,cAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/diagram/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAY,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAOpE,MAAM,OAAO,iBAAkB,SAAQ,YAA2B;IAAlE;;QACqB,cAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QACxC,cAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;IAwDzD,CAAC;IAtDG,WAAW,CAAC,QAAiC;QACzC,MAAM,EAAE,GAAG,QAAQ,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,YAAY;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,mEAAmE;IACnE,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,gEAAgE;IAChE,WAAW,CAAC,IAAqB;QAC7B,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,CAAC,GAAG,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;IACjE,CAAC;IAED,YAAY;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,wDAAwD;IAChD,oBAAoB;QACxB,IAAI,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACjG,CAAC;CACJ"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// TEvents is constrained to object rather than Record<string, unknown>: the
|
|
2
|
+
// latter forces every event map to carry a string index signature, which
|
|
3
|
+
// collapses keyof TEvents to string and lets any misspelled name compile.
|
|
1
4
|
export class EventEmitter {
|
|
2
5
|
constructor() {
|
|
3
6
|
this.handlers = new Map();
|
|
@@ -35,6 +38,13 @@ export class EventEmitter {
|
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Whether anyone is listening. Lets a subject skip building a payload that
|
|
43
|
+
* is expensive to produce and that nothing would read.
|
|
44
|
+
*/
|
|
45
|
+
hasHandlers(event) {
|
|
46
|
+
return (this.handlers.get(event)?.size ?? 0) > 0;
|
|
47
|
+
}
|
|
38
48
|
clearEventHandlers() {
|
|
39
49
|
this.handlers.clear();
|
|
40
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../../src/diagram/event-emitter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAAzB;QACqB,aAAQ,GAAG,IAAI,GAAG,EAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"event-emitter.js","sourceRoot":"","sources":["../../../src/diagram/event-emitter.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,OAAO,YAAY;IAAzB;QACqB,aAAQ,GAAG,IAAI,GAAG,EAA6C,CAAC;IAgDrF,CAAC;IA9CG,EAAE,CAA0B,KAAQ,EAAE,OAAiC;QACnE,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAgC,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAA0B,KAAQ,EAAE,OAAiC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,OAAgC,CAAC,CAAC;QAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAES,IAAI,CAA0B,KAAQ,EAAE,OAAmB;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC;gBACA,OAAoC,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,WAAW,CAA0B,KAAQ;QACnD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAES,kBAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACJ"}
|