@lionweb/class-core 0.7.0-beta.8 → 0.7.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/CHANGELOG.md +18 -1
- package/README.md +6 -6
- package/dist/LionCore_builtins.g.d.ts +2 -2
- package/dist/LionCore_builtins.g.d.ts.map +1 -1
- package/dist/LionCore_builtins.g.js +1 -1
- package/dist/LionCore_builtins.g.js.map +1 -1
- package/dist/base-types.d.ts +7 -11
- package/dist/base-types.d.ts.map +1 -1
- package/dist/base-types.js +3 -28
- package/dist/base-types.js.map +1 -1
- package/dist/convenience.d.ts +10 -9
- package/dist/convenience.d.ts.map +1 -1
- package/dist/convenience.js +12 -11
- package/dist/convenience.js.map +1 -1
- package/dist/deltas/appliers.d.ts +5 -4
- package/dist/deltas/appliers.d.ts.map +1 -1
- package/dist/deltas/appliers.js +369 -163
- package/dist/deltas/appliers.js.map +1 -1
- package/dist/deltas/compositor.d.ts +51 -0
- package/dist/deltas/compositor.d.ts.map +1 -0
- package/dist/deltas/compositor.js +95 -0
- package/dist/deltas/compositor.js.map +1 -0
- package/dist/deltas/index.d.ts +2 -1
- package/dist/deltas/index.d.ts.map +1 -1
- package/dist/deltas/index.js +2 -1
- package/dist/deltas/index.js.map +1 -1
- package/dist/deltas/inverters.d.ts.map +1 -1
- package/dist/deltas/inverters.js +91 -28
- package/dist/deltas/inverters.js.map +1 -1
- package/dist/deltas/receivers.d.ts +39 -0
- package/dist/deltas/receivers.d.ts.map +1 -0
- package/dist/deltas/receivers.js +60 -0
- package/dist/deltas/receivers.js.map +1 -0
- package/dist/deltas/serialization/deserializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/deserializer.g.js +167 -59
- package/dist/deltas/serialization/deserializer.g.js.map +1 -1
- package/dist/deltas/serialization/serializer-helpers.d.ts +1 -1
- package/dist/deltas/serialization/serializer-helpers.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer-helpers.js +3 -4
- package/dist/deltas/serialization/serializer-helpers.js.map +1 -1
- package/dist/deltas/serialization/serializer.g.d.ts +2 -2
- package/dist/deltas/serialization/serializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/serializer.g.js +186 -47
- package/dist/deltas/serialization/serializer.g.js.map +1 -1
- package/dist/deltas/serialization/types.g.d.ts +156 -43
- package/dist/deltas/serialization/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.d.ts +155 -55
- package/dist/deltas/types.g.d.ts.map +1 -1
- package/dist/deltas/types.g.js +170 -57
- package/dist/deltas/types.g.js.map +1 -1
- package/dist/deserializer.d.ts +6 -6
- package/dist/deserializer.d.ts.map +1 -1
- package/dist/deserializer.js +16 -27
- package/dist/deserializer.js.map +1 -1
- package/dist/duplicator.d.ts.map +1 -1
- package/dist/duplicator.js.map +1 -1
- package/dist/factory.d.ts +10 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +25 -16
- package/dist/factory.js.map +1 -1
- package/dist/id-mapping.d.ts +31 -3
- package/dist/id-mapping.d.ts.map +1 -1
- package/dist/id-mapping.js +46 -14
- package/dist/id-mapping.js.map +1 -1
- package/dist/serializer.d.ts.map +1 -1
- package/dist/textualizer.d.ts +1 -1
- package/dist/textualizer.d.ts.map +1 -1
- package/dist/textualizer.js +1 -1
- package/dist/textualizer.js.map +1 -1
- package/dist/value-managers/annotations.d.ts +5 -0
- package/dist/value-managers/annotations.d.ts.map +1 -1
- package/dist/value-managers/annotations.js +31 -3
- package/dist/value-managers/annotations.js.map +1 -1
- package/dist/value-managers/base.d.ts +2 -2
- package/dist/value-managers/base.d.ts.map +1 -1
- package/dist/value-managers/base.js +4 -4
- package/dist/value-managers/base.js.map +1 -1
- package/dist/value-managers/containments.d.ts +4 -1
- package/dist/value-managers/containments.d.ts.map +1 -1
- package/dist/value-managers/containments.js +151 -20
- package/dist/value-managers/containments.js.map +1 -1
- package/dist/value-managers/properties.d.ts.map +1 -1
- package/dist/value-managers/properties.js +1 -0
- package/dist/value-managers/properties.js.map +1 -1
- package/dist/value-managers/references.d.ts +3 -0
- package/dist/value-managers/references.d.ts.map +1 -1
- package/dist/value-managers/references.js +26 -8
- package/dist/value-managers/references.js.map +1 -1
- package/package.json +34 -37
- package/src/LionCore_builtins.g.ts +2 -2
- package/src/base-types.ts +6 -32
- package/src/convenience.ts +15 -14
- package/src/deltas/appliers.ts +377 -177
- package/src/deltas/compositor.ts +107 -0
- package/src/deltas/index.ts +3 -1
- package/src/deltas/inverters.ts +108 -36
- package/src/deltas/receivers.ts +92 -0
- package/src/deltas/serialization/deserializer.g.ts +185 -64
- package/src/deltas/serialization/serializer-helpers.ts +3 -10
- package/src/deltas/serialization/serializer.g.ts +242 -63
- package/src/deltas/serialization/types.g.ts +190 -51
- package/src/deltas/types.g.ts +190 -51
- package/src/deserializer.ts +32 -43
- package/src/duplicator.ts +1 -1
- package/src/factory.ts +31 -17
- package/src/id-mapping.ts +43 -5
- package/src/textualizer.ts +1 -1
- package/src/value-managers/annotations.ts +28 -2
- package/src/value-managers/base.ts +4 -4
- package/src/value-managers/containments.ts +144 -20
- package/src/value-managers/properties.ts +1 -0
- package/src/value-managers/references.ts +28 -8
- package/dist/deltas/handlers.d.ts +0 -17
- package/dist/deltas/handlers.d.ts.map +0 -1
- package/dist/deltas/handlers.js +0 -43
- package/dist/deltas/handlers.js.map +0 -1
- package/src/deltas/handlers.ts +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"deserializer.d.ts","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EASH,yBAAyB,EAEzB,iBAAiB,EAEpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAa,gBAAgB,EAAmB,MAAM,eAAe,CAAA;AAG5E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK/E;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC1B,kBAAkB,EAAE,gBAAgB,EACpC,cAAc,CAAC,EAAE,SAAS,EAAE,EAC5B,SAAS,CAAC,EAAE,SAAS,EACrB,yBAAyB,CAAC,EAAE,yBAAyB,EACrD,cAAc,CAAC,EAAE,iBAAiB,KACjC,CAAC,CAAC;AAGP;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAG9E;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,KAAG,YAAY,CAAC,kBAAkB,CA0I/I,CAAC;AAGF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,KAAG,YAAY,CAAC,SAAS,EAAE,CAU3H,CAAA"}
|
package/dist/deserializer.js
CHANGED
|
@@ -14,30 +14,19 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
-
import {
|
|
18
|
-
import { byIdMap } from "@lionweb/ts-utils";
|
|
17
|
+
import { builtinPropertyValueDeserializer, Classifier, Containment, defaultSimplisticHandler, Enumeration, MemoisingSymbolTable, PrimitiveType, Property, Reference, unresolved } from "@lionweb/core";
|
|
18
|
+
import { byIdMap, keepDefineds } from "@lionweb/ts-utils";
|
|
19
19
|
import { IdMapping } from "./index.js";
|
|
20
|
-
|
|
21
|
-
const languageBase = languageBases.find((languageBase) => languageBase.language === language);
|
|
22
|
-
if (languageBase === undefined) {
|
|
23
|
-
throw new Error(`language ${language.name} (with key=${language.key} and version=${language.version}) not known`);
|
|
24
|
-
}
|
|
25
|
-
return languageBase;
|
|
26
|
-
};
|
|
27
|
-
const factoryLookupFor = (languageBases, handleDelta) => {
|
|
28
|
-
const lookup = languageBaseLookupFor(languageBases);
|
|
29
|
-
return (language) => lookup(language).factory(handleDelta);
|
|
30
|
-
};
|
|
20
|
+
import { combinedLanguageBaseLookupFor } from "./factory.js";
|
|
31
21
|
/**
|
|
32
22
|
* @return a {@link Deserializer} function for the given languages (given as {@link ILanguageBase}s) that returns a {@link RootsWithIdMapping}.
|
|
33
23
|
* @param languageBases the {@link ILanguageBase}s for (at least) all the languages used in the {@link LionWebJsonChunk} to deserialize, minus LionCore M3 and built-ins.
|
|
34
|
-
* @param
|
|
24
|
+
* @param receiveDelta an optional {@link DeltaReceiver} that will be injected in all {@link INodeBase nodes} created.
|
|
35
25
|
*/
|
|
36
|
-
export const nodeBaseDeserializerWithIdMapping = (languageBases,
|
|
26
|
+
export const nodeBaseDeserializerWithIdMapping = (languageBases, receiveDelta) => {
|
|
37
27
|
const symbolTable = new MemoisingSymbolTable(languageBases.map(({ language }) => language));
|
|
38
|
-
const languageBaseFor =
|
|
39
|
-
|
|
40
|
-
return (serializationChunk, dependentNodes = [], propertyValueDeserializer = new BuiltinPropertyValueDeserializer(), problemsHandler = defaultSimplisticHandler) => {
|
|
28
|
+
const languageBaseFor = combinedLanguageBaseLookupFor(languageBases);
|
|
29
|
+
return (serializationChunk, dependentNodes = [], idMapping, propertyValueDeserializer = builtinPropertyValueDeserializer, problemsHandler = defaultSimplisticHandler) => {
|
|
41
30
|
const nodesToInstall = [];
|
|
42
31
|
const createNode = ({ id, classifier: classifierMetaPointer, properties, containments, references, annotations }) => {
|
|
43
32
|
const languageMessage = `language ${classifierMetaPointer.language} (${classifierMetaPointer.version})`;
|
|
@@ -46,7 +35,7 @@ export const nodeBaseDeserializerWithIdMapping = (languageBases, handleDelta) =>
|
|
|
46
35
|
problemsHandler.reportProblem(`can't deserialize node with id=${id}: can't find the classifier with key ${classifierMetaPointer.key} in ${languageMessage} - skipping`);
|
|
47
36
|
return undefined;
|
|
48
37
|
}
|
|
49
|
-
const node =
|
|
38
|
+
const node = languageBaseFor(classifier.language).factory(receiveDelta)(classifier, id);
|
|
50
39
|
properties.forEach(({ property: propertyMetaPointer, value }) => {
|
|
51
40
|
const feature = symbolTable.featureMatching(classifierMetaPointer, propertyMetaPointer);
|
|
52
41
|
if (feature === undefined) {
|
|
@@ -101,11 +90,11 @@ export const nodeBaseDeserializerWithIdMapping = (languageBases, handleDelta) =>
|
|
|
101
90
|
}
|
|
102
91
|
return node;
|
|
103
92
|
};
|
|
104
|
-
const nodesById = byIdMap(serializationChunk
|
|
105
|
-
.
|
|
106
|
-
.
|
|
93
|
+
const nodesById = byIdMap(keepDefineds(serializationChunk
|
|
94
|
+
.nodes
|
|
95
|
+
.map(createNode)));
|
|
107
96
|
const dependentNodesById = byIdMap(dependentNodes);
|
|
108
|
-
const lookupNodeById = (id) => nodesById[id] ?? dependentNodesById[id];
|
|
97
|
+
const lookupNodeById = (id) => nodesById[id] ?? dependentNodesById[id] ?? idMapping?.tryFromId(id);
|
|
109
98
|
nodesToInstall.forEach(([node, feature, ids]) => {
|
|
110
99
|
if (feature instanceof Containment) {
|
|
111
100
|
const valueManager = node.getContainmentValueManager(feature);
|
|
@@ -160,10 +149,10 @@ export const nodeBaseDeserializerWithIdMapping = (languageBases, handleDelta) =>
|
|
|
160
149
|
/**
|
|
161
150
|
* @return a {@link Deserializer} function for the languages (given as {@link ILanguageBase}s) that returns the roots (of type {@link INodeBase}) of the deserialized model.
|
|
162
151
|
* @param languageBases the {@link ILanguageBase}s for (at least) all the languages used in the {@link LionWebJsonChunk} to deserialize, minus LionCore M3 and built-ins.
|
|
163
|
-
* @param
|
|
152
|
+
* @param receiveDelta an optional {@link DeltaReceiver} that will be injected in all {@link INodeBase nodes} created.
|
|
164
153
|
*/
|
|
165
|
-
export const nodeBaseDeserializer = (languageBases,
|
|
166
|
-
const deserializerWithIdMapping = nodeBaseDeserializerWithIdMapping(languageBases,
|
|
167
|
-
return (serializationChunk, dependentNodes
|
|
154
|
+
export const nodeBaseDeserializer = (languageBases, receiveDelta) => {
|
|
155
|
+
const deserializerWithIdMapping = nodeBaseDeserializerWithIdMapping(languageBases, receiveDelta);
|
|
156
|
+
return (serializationChunk, dependentNodes, idMapping, propertyValueDeserializer = builtinPropertyValueDeserializer, problemsHandler = defaultSimplisticHandler) => deserializerWithIdMapping(serializationChunk, dependentNodes, idMapping, propertyValueDeserializer, problemsHandler).roots;
|
|
168
157
|
};
|
|
169
158
|
//# sourceMappingURL=deserializer.js.map
|
package/dist/deserializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EACH,gCAAgC,EAChC,UAAU,EACV,WAAW,EACX,wBAAwB,EACxB,WAAW,
|
|
1
|
+
{"version":3,"file":"deserializer.js","sourceRoot":"","sources":["../src/deserializer.ts"],"names":[],"mappings":"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"}
|
package/dist/duplicator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicator.d.ts","sourceRoot":"","sources":["../src/duplicator.ts"],"names":[],"mappings":"AAiBA,OAAO,
|
|
1
|
+
{"version":3,"file":"duplicator.d.ts","sourceRoot":"","sources":["../src/duplicator.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAe,OAAO,EAA0D,MAAM,eAAe,CAAA;AAI5G,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAM3C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,SAAS,KAAK,CAAC,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,CAAC;AAEtH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,eAAe,cAAc,KAAG,UAmE7D,CAAC"}
|
package/dist/duplicator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicator.js","sourceRoot":"","sources":["../src/duplicator.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"duplicator.js","sourceRoot":"","sources":["../src/duplicator.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,WAAW,EAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAa,UAAU,EAAE,MAAM,eAAe,CAAA;AAE5G,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAajD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAA6B,EAAc,EAAE,CAC3E,CAAC,GAAG,KAAK,EAAE,EAAE;IAET,MAAM,cAAc,GAAqB,EAAE,CAAC;IAE5C,MAAM,KAAK,GAAG,CAAC,IAAe,EAA8C,EAAE;QAC1E,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,EAAE;YAC/C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;gBAC9B,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,OAAO,YAAY,IAAI,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAwD,CAAC,CAAC;gBACjF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,CAAgB,CAAC;gBACrF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,cAAc,CAAC,IAAI,CAAC;wBAChB,cAAc;wBACd,OAAO;wBACP,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;wBACxB,OAAO,YAAY,SAAS;4BACxB,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,SAAS;qBAClB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QACF,mBAAmB,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACrC,CAAC,CAAA;IAED,MAAM,2BAA2B,GAAG,MAAM,CAAC,WAAW,CAClD,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CACzC,CAAC;IAEF,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,wBAAwB,CAAC,EAAE,EAAE;QAC5E,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,UAAU,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACf,MAAM,aAAa,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBACtD,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACxC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,IAAI,OAAO,YAAY,SAAS,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBACtB,MAAM,aAAa,GAAG,2BAA2B,CAAC,EAAE,CAAC,IAAI,wBAAyB,CAAC,KAAK,CAAC,CAAC;gBAC1F,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,UAAU,CAAC,uBAAuB,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACf,MAAM,aAAa,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBACtD,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAA;YACF,OAAO;QACX,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhE,CAAC,CAAC"}
|
package/dist/factory.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
import { Language } from "@lionweb/core";
|
|
1
2
|
import { ILanguageBase, NodeBaseFactory } from "./base-types.js";
|
|
2
|
-
import {
|
|
3
|
+
import { DeltaReceiver } from "./deltas/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* @return a function that looks up the {@link ILanguageBase language base} for the {@link Language language} passed to it,
|
|
6
|
+
* from among the given language bases.
|
|
7
|
+
* The returned function throws when the language wasn't among the languages the given bases were for.
|
|
8
|
+
* The lookup is hashmap-backed, so efficient.
|
|
9
|
+
*/
|
|
10
|
+
export declare const combinedLanguageBaseLookupFor: (languageBases: ILanguageBase[]) => ((language: Language) => ILanguageBase);
|
|
3
11
|
/**
|
|
4
12
|
* @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
|
|
5
13
|
*/
|
|
6
|
-
export declare const combinedFactoryFor: (languageBases: ILanguageBase[],
|
|
14
|
+
export declare const combinedFactoryFor: (languageBases: ILanguageBase[], receiveDelta?: DeltaReceiver) => NodeBaseFactory;
|
|
7
15
|
//# sourceMappingURL=factory.d.ts.map
|
package/dist/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,eAAe,aAAa,EAAE,KAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,aAAa,CAsBpH,CAAA;AAGD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,aAAa,EAAE,EAAE,eAAe,aAAa,KAAG,eAIjG,CAAA"}
|
package/dist/factory.js
CHANGED
|
@@ -16,29 +16,38 @@
|
|
|
16
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
17
|
import { lazyMapGet } from "@lionweb/ts-utils";
|
|
18
18
|
/**
|
|
19
|
-
* @return a {@link
|
|
19
|
+
* @return a function that looks up the {@link ILanguageBase language base} for the {@link Language language} passed to it,
|
|
20
|
+
* from among the given language bases.
|
|
21
|
+
* The returned function throws when the language wasn't among the languages the given bases were for.
|
|
22
|
+
* The lookup is hashmap-backed, so efficient.
|
|
20
23
|
*/
|
|
21
|
-
export const
|
|
24
|
+
export const combinedLanguageBaseLookupFor = (languageBases) => {
|
|
22
25
|
// create lookup map:
|
|
23
|
-
const
|
|
26
|
+
const languageKey2version2base = {};
|
|
24
27
|
languageBases.forEach((languageBase) => {
|
|
25
28
|
const { key, version } = languageBase.language;
|
|
26
|
-
const
|
|
27
|
-
lazyMapGet(
|
|
28
|
-
// (Note: don't destructure factory from languageBase, as that will unbind it as "this"!)
|
|
29
|
+
const version2base = lazyMapGet(languageKey2version2base, key, () => ({}));
|
|
30
|
+
lazyMapGet(version2base, version, () => languageBase);
|
|
29
31
|
});
|
|
30
|
-
return (
|
|
31
|
-
const { key, version, name } =
|
|
32
|
-
const
|
|
33
|
-
if (
|
|
34
|
-
throw new Error(`language ${name} with key=${key} not
|
|
32
|
+
return (language) => {
|
|
33
|
+
const { key, version, name } = language;
|
|
34
|
+
const version2base = languageKey2version2base[key];
|
|
35
|
+
if (version2base === undefined) {
|
|
36
|
+
throw new Error(`language ${name} with key=${key} not registered`);
|
|
35
37
|
}
|
|
36
|
-
const
|
|
37
|
-
if (
|
|
38
|
-
const candidateVersions = Object.keys(
|
|
39
|
-
throw new Error(`language ${name} with key=${key} and version=${version} not
|
|
38
|
+
const base = version2base[version];
|
|
39
|
+
if (base === undefined) {
|
|
40
|
+
const candidateVersions = Object.keys(version2base);
|
|
41
|
+
throw new Error(`language ${name} with key=${key} and version=${version} not registered${candidateVersions.length > 0 ? `- candidate version${candidateVersions.length > 1 ? `s` : ``}: ${candidateVersions.join(", ")}` : ``}`);
|
|
40
42
|
}
|
|
41
|
-
return
|
|
43
|
+
return base;
|
|
42
44
|
};
|
|
43
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
|
|
48
|
+
*/
|
|
49
|
+
export const combinedFactoryFor = (languageBases, receiveDelta) => {
|
|
50
|
+
const baseOf = combinedLanguageBaseLookupFor(languageBases);
|
|
51
|
+
return (classifier, id) => baseOf(classifier.language).factory(receiveDelta)(classifier, id);
|
|
52
|
+
};
|
|
44
53
|
//# sourceMappingURL=factory.js.map
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAK9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,aAA8B,EAA2C,EAAE;IACrH,qBAAqB;IACrB,MAAM,wBAAwB,GAA4D,EAAE,CAAA;IAC5F,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACnC,MAAM,EAAC,GAAG,EAAE,OAAO,EAAC,GAAG,YAAY,CAAC,QAAQ,CAAA;QAC5C,MAAM,YAAY,GAAG,UAAU,CAAC,wBAAwB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1E,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,QAAQ,CAAA;QACrC,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,iBAAiB,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACnD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,gBAAgB,OAAO,kBAAkB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACpO,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC,CAAA;AACL,CAAC,CAAA;AAGD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA8B,EAAE,YAA4B,EAAmB,EAAE;IAChH,MAAM,MAAM,GAAG,6BAA6B,CAAC,aAAa,CAAC,CAAA;IAC3D,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CACtB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AACzE,CAAC,CAAA"}
|
package/dist/id-mapping.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { IdOrUnresolved, SingleRef } from "@lionweb/core";
|
|
2
2
|
import { LionWebId } from "@lionweb/json";
|
|
3
3
|
import { INodeBase } from "./index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Type def. for a (hash-)map {@link LionWebId ID} → {@link INodeBase}.
|
|
6
|
+
*/
|
|
4
7
|
type NodesById = {
|
|
5
8
|
[id: LionWebId]: INodeBase;
|
|
6
9
|
};
|
|
@@ -10,12 +13,37 @@ type NodesById = {
|
|
|
10
13
|
* Instances are produced by the {@link nodeBaseDeserializerWithIdMapping} function.
|
|
11
14
|
*/
|
|
12
15
|
export declare class IdMapping {
|
|
13
|
-
nodesById
|
|
16
|
+
private nodesById;
|
|
14
17
|
constructor(nodesById: NodesById);
|
|
15
|
-
|
|
18
|
+
/**
|
|
19
|
+
* @return the {@link INodeBase node} with the given {@link LionWebId `id`}, or
|
|
20
|
+
* @throws an Error if no node with the given ID was registered.
|
|
21
|
+
*/
|
|
22
|
+
fromId: (id: LionWebId) => INodeBase;
|
|
23
|
+
/**
|
|
24
|
+
* @return the {@link INodeBase node} with the given {@link LionWebId `id`},
|
|
25
|
+
* or `undefined` if no node with the given ID was registered.
|
|
26
|
+
*/
|
|
16
27
|
tryFromId: (id: LionWebId) => (INodeBase | undefined);
|
|
28
|
+
/**
|
|
29
|
+
* @return the {@link INodeBase node} referenced from the given {@link LionWebId ID},
|
|
30
|
+
* or `unresolved` if `unresolved` was passed in or no node with the given ID was registered.
|
|
31
|
+
*/
|
|
17
32
|
fromRefId: (idOrUnresolved: IdOrUnresolved) => SingleRef<INodeBase>;
|
|
18
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Updates this {@link IdMapping} with the given `node` *and all its descendants* (recursively).
|
|
35
|
+
*/
|
|
36
|
+
updateWith: (node: INodeBase) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Re-initializes this {@link IdMapping ID mapping} with the given nodes-by-ID.
|
|
39
|
+
* This completely removes all registrations of nodes,
|
|
40
|
+
* and should only be used by components which are in complete control of the nodes being passed to this method.
|
|
41
|
+
*/
|
|
42
|
+
reinitializeWith: (nodesById: NodesById) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Merges the given `that` {@link IdMapping} **in**to `this`.
|
|
45
|
+
*/
|
|
46
|
+
mergeIn: (that: IdMapping) => void;
|
|
19
47
|
}
|
|
20
48
|
export {};
|
|
21
49
|
//# sourceMappingURL=id-mapping.d.ts.map
|
package/dist/id-mapping.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-mapping.d.ts","sourceRoot":"","sources":["../src/id-mapping.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAc,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"id-mapping.d.ts","sourceRoot":"","sources":["../src/id-mapping.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAc,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGtC;;GAEG;AACH,KAAK,SAAS,GAAG;IAAE,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAA;AAG/C;;;;GAIG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,SAAS,CAAY;gBACjB,SAAS,EAAE,SAAS;IAKhC;;;OAGG;IACH,MAAM,GAAI,IAAI,SAAS,KAAG,SAAS,CAKlC;IAED;;;OAGG;IACH,SAAS,GAAI,IAAI,SAAS,KAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAC7B;IAEvB;;;OAGG;IACH,SAAS,GAAI,gBAAgB,cAAc,KAAG,SAAS,CAAC,SAAS,CAAC,CAGT;IAEzD;;OAEG;IACH,UAAU,GAAG,MAAM,SAAS,UAK3B;IAED;;;;OAIG;IACH,gBAAgB,GAAI,WAAW,SAAS,UAEvC;IAED;;OAEG;IACH,OAAO,GAAI,MAAM,SAAS,UAIzB;CAEJ"}
|
package/dist/id-mapping.js
CHANGED
|
@@ -22,23 +22,55 @@ import { unresolved } from "@lionweb/core";
|
|
|
22
22
|
*/
|
|
23
23
|
export class IdMapping {
|
|
24
24
|
constructor(nodesById) {
|
|
25
|
+
// TODO consider using an instance of Map<Id, INodeBase> instead
|
|
26
|
+
/**
|
|
27
|
+
* @return the {@link INodeBase node} with the given {@link LionWebId `id`}, or
|
|
28
|
+
* @throws an Error if no node with the given ID was registered.
|
|
29
|
+
*/
|
|
30
|
+
this.fromId = (id) => {
|
|
31
|
+
if (!(id in this.nodesById)) {
|
|
32
|
+
throw new Error(`node with id=${id} not in ID mapping`);
|
|
33
|
+
}
|
|
34
|
+
return this.nodesById[id];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* @return the {@link INodeBase node} with the given {@link LionWebId `id`},
|
|
38
|
+
* or `undefined` if no node with the given ID was registered.
|
|
39
|
+
*/
|
|
25
40
|
this.tryFromId = (id) => this.nodesById[id];
|
|
26
|
-
|
|
27
|
-
|
|
41
|
+
/**
|
|
42
|
+
* @return the {@link INodeBase node} referenced from the given {@link LionWebId ID},
|
|
43
|
+
* or `unresolved` if `unresolved` was passed in or no node with the given ID was registered.
|
|
44
|
+
*/
|
|
45
|
+
this.fromRefId = (idOrUnresolved) => idOrUnresolved === unresolved
|
|
46
|
+
? unresolved
|
|
28
47
|
: (this.nodesById[idOrUnresolved] ?? unresolved);
|
|
48
|
+
/**
|
|
49
|
+
* Updates this {@link IdMapping} with the given `node` *and all its descendants* (recursively).
|
|
50
|
+
*/
|
|
51
|
+
this.updateWith = (node) => {
|
|
52
|
+
this.nodesById[node.id] = node;
|
|
53
|
+
node.children // recurse into all children
|
|
54
|
+
.forEach((child) => this.updateWith(child));
|
|
55
|
+
// TODO figure out when it's really necessary to call this, as it's potentially *very* expensive
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Re-initializes this {@link IdMapping ID mapping} with the given nodes-by-ID.
|
|
59
|
+
* This completely removes all registrations of nodes,
|
|
60
|
+
* and should only be used by components which are in complete control of the nodes being passed to this method.
|
|
61
|
+
*/
|
|
62
|
+
this.reinitializeWith = (nodesById) => {
|
|
63
|
+
this.nodesById = nodesById;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Merges the given `that` {@link IdMapping} **in**to `this`.
|
|
67
|
+
*/
|
|
68
|
+
this.mergeIn = (that) => {
|
|
69
|
+
for (const id in that.nodesById) {
|
|
70
|
+
this.nodesById[id] = that.nodesById[id];
|
|
71
|
+
}
|
|
72
|
+
};
|
|
29
73
|
this.nodesById = { ...nodesById };
|
|
30
74
|
}
|
|
31
|
-
// TODO consider using an instance of Map<Id, INodeBase> instead
|
|
32
|
-
fromId(id) {
|
|
33
|
-
if (!(id in this.nodesById)) {
|
|
34
|
-
throw new Error(`node with id=${id} not in ID mapping`);
|
|
35
|
-
}
|
|
36
|
-
return this.nodesById[id];
|
|
37
|
-
}
|
|
38
|
-
updateWith(node) {
|
|
39
|
-
this.nodesById[node.id] = node;
|
|
40
|
-
node.children // recurse into all children
|
|
41
|
-
.forEach((child) => this.updateWith(child));
|
|
42
|
-
}
|
|
43
75
|
}
|
|
44
76
|
//# sourceMappingURL=id-mapping.js.map
|
package/dist/id-mapping.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id-mapping.js","sourceRoot":"","sources":["../src/id-mapping.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAA6B,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"id-mapping.js","sourceRoot":"","sources":["../src/id-mapping.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAA6B,UAAU,EAAE,MAAM,eAAe,CAAA;AAYrE;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAGlB,YAAY,SAAoB;QAGhC,iEAAiE;QAEjE;;;WAGG;QACH,WAAM,GAAG,CAAC,EAAa,EAAa,EAAE;YAClC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAA;QAED;;;WAGG;QACH,cAAS,GAAG,CAAC,EAAa,EAA2B,EAAE,CACnD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvB;;;WAGG;QACH,cAAS,GAAG,CAAC,cAA8B,EAAwB,EAAE,CACjE,cAAc,KAAK,UAAU;YACzB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC;QAEzD;;WAEG;QACH,eAAU,GAAE,CAAC,IAAe,EAAE,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAG,4BAA4B;iBACvC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,iGAAiG;QACrG,CAAC,CAAA;QAED;;;;WAIG;QACH,qBAAgB,GAAG,CAAC,SAAoB,EAAE,EAAE;YACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAA;QAED;;WAEG;QACH,YAAO,GAAG,CAAC,IAAe,EAAE,EAAE;YAC1B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC,CAAA;QAzDG,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,SAAS,EAAC,CAAC;IACpC,CAAC;CA0DJ"}
|
package/dist/serializer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAKH,OAAO,EAGP,MAAM,EAET,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAyB,MAAM,YAAY,CAAA;AAG7D;;;GAGG;AACH,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"AAiBA,OAAO,EAKH,OAAO,EAGP,MAAM,EAET,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,SAAS,EAAyB,MAAM,YAAY,CAAA;AAG7D;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,EAAE,SAAS,OAAO,YAWhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,CAyB5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kEAAoE,CAAC"}
|
package/dist/textualizer.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { INodeBase } from "./base-types.js";
|
|
|
3
3
|
* @return a function that renders the roots of a given forest of {@link INodeBase nodes} in a textual tree-representation.
|
|
4
4
|
* @param identificationFor a function that renders an identification for the given {@link INodeBase node} — typically its name or its ID.
|
|
5
5
|
*/
|
|
6
|
-
export declare const asTreeTextWith: (identificationFor: (node: INodeBase) => string) => (nodes: INodeBase[]) => string;
|
|
6
|
+
export declare const asTreeTextWith: (identificationFor: (node: INodeBase) => string) => ((nodes: INodeBase[]) => string);
|
|
7
7
|
//# sourceMappingURL=textualizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textualizer.d.ts","sourceRoot":"","sources":["../src/textualizer.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAwB3C;;;GAGG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"textualizer.d.ts","sourceRoot":"","sources":["../src/textualizer.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAwB3C;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,KAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,MAAM,CAqD9G,CAAA"}
|
package/dist/textualizer.js
CHANGED
|
@@ -39,7 +39,7 @@ export const asTreeTextWith = (identificationFor) => {
|
|
|
39
39
|
const valueManager = node.getPropertyValueManager(feature);
|
|
40
40
|
const displayValue = (() => {
|
|
41
41
|
if (!valueManager.isSet()) {
|
|
42
|
-
return
|
|
42
|
+
return `<not set>`;
|
|
43
43
|
}
|
|
44
44
|
const value = valueManager.getDirectly();
|
|
45
45
|
if (feature.type === LionCore_builtinsBase.INSTANCE.String) {
|
package/dist/textualizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textualizer.js","sourceRoot":"","sources":["../src/textualizer.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAW,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACpG,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAY,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,MAAc,EAAY,EAAE,CACjE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAK/B,MAAM,YAAY,GAAG,CAAC,KAAkD,EAAe,EAAE;IACrF,MAAM,WAAW,GAAG,CAAC,KAA0B,EAAsB,EAAE,CACnE,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,CAAC,CAAA;IAElD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK;aACP,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC3C,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAqB,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC5C,CAAC,CAAA;AAGD;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAA8C,EAAoC,EAAE;IAE/G,MAAM,MAAM,GAAG,CAAC,IAAe,EAAY,EAAE;QACzC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,EAAE;YAC5C,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;gBAC1D,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;oBACvB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;wBACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"textualizer.js","sourceRoot":"","sources":["../src/textualizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,11 @@ export declare class AnnotationsValueManager extends ValueManager {
|
|
|
27
27
|
*/
|
|
28
28
|
replaceAtIndexDirectly(newAnnotation: INodeBase, index: number): INodeBase;
|
|
29
29
|
replaceAtIndex(newAnnotation: INodeBase, index: number): void;
|
|
30
|
+
/**
|
|
31
|
+
* @return the moved and replaced annotations, as an array tuple.
|
|
32
|
+
*/
|
|
33
|
+
moveAndReplaceAtIndexDirectly(oldIndex: number, newIndex: number): [INodeBase, INodeBase] | undefined;
|
|
34
|
+
moveAndReplaceAtIndex(oldIndex: number, newIndex: number): void;
|
|
30
35
|
removeDirectly(annotationToRemove: INodeBase): number;
|
|
31
36
|
remove(annotationToRemove: INodeBase): void;
|
|
32
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/value-managers/annotations.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/value-managers/annotations.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAc,YAAY,EAAE,MAAM,WAAW,CAAA;AAWpD;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;gBAEzC,SAAS,EAAE,SAAS;IAIhC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAE9E,GAAG,IAAI,SAAS,EAAE;IAIV,WAAW,CAAC,aAAa,EAAE,SAAS;IAKpC,GAAG,CAAC,aAAa,EAAE,SAAS;IAIpC;;;OAGG;IACK,qBAAqB,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC;IAchH,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAS7D;;OAEG;IACK,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAWvE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAO/C;;OAEG;IACK,sBAAsB,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAS1E,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAK9D;;OAEG;IACK,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,SAAS;IAcrG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAQxD,cAAc,CAAC,kBAAkB,EAAE,SAAS,GAAG,MAAM;IASrD,MAAM,CAAC,kBAAkB,EAAE,SAAS;CAO/C"}
|
|
@@ -49,9 +49,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
49
49
|
done = true;
|
|
50
50
|
};
|
|
51
51
|
import { action, observable } from "mobx";
|
|
52
|
-
import { removeFromParent } from "../base-types.js";
|
|
53
52
|
import { checkIndex, ValueManager } from "./base.js";
|
|
54
|
-
import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta } from "../deltas/index.js";
|
|
53
|
+
import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedAndReplacedInSameParentDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta } from "../deltas/index.js";
|
|
55
54
|
/**
|
|
56
55
|
* A value manager for annotations.
|
|
57
56
|
* Annotations (of any type) are simply contained by a parent (which is an {@link INodeBase}),
|
|
@@ -69,6 +68,8 @@ let AnnotationsValueManager = (() => {
|
|
|
69
68
|
let _move_decorators;
|
|
70
69
|
let _replaceAtIndexDirectly_decorators;
|
|
71
70
|
let _replaceAtIndex_decorators;
|
|
71
|
+
let _moveAndReplaceAtIndexDirectly_decorators;
|
|
72
|
+
let _moveAndReplaceAtIndex_decorators;
|
|
72
73
|
let _removeDirectly_decorators;
|
|
73
74
|
let _remove_decorators;
|
|
74
75
|
return _a = class AnnotationsValueManager extends _classSuper {
|
|
@@ -99,7 +100,7 @@ let AnnotationsValueManager = (() => {
|
|
|
99
100
|
return false;
|
|
100
101
|
}
|
|
101
102
|
else {
|
|
102
|
-
const oldIndex =
|
|
103
|
+
const oldIndex = oldParent.annotationsValueManager.removeDirectly(newAnnotation);
|
|
103
104
|
newAnnotation.attachTo(this.container, null);
|
|
104
105
|
return [oldParent, oldIndex];
|
|
105
106
|
}
|
|
@@ -147,6 +148,29 @@ let AnnotationsValueManager = (() => {
|
|
|
147
148
|
const replacedAnnotation = this.replaceAtIndexDirectly(newAnnotation, index);
|
|
148
149
|
this.emitDelta(() => new AnnotationReplacedDelta(this.container, index, replacedAnnotation, newAnnotation));
|
|
149
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* @return the moved and replaced annotations, as an array tuple.
|
|
153
|
+
*/
|
|
154
|
+
moveAndReplaceAtIndexDirectly(oldIndex, newIndex) {
|
|
155
|
+
checkIndex(oldIndex, this.annotations.length, false);
|
|
156
|
+
checkIndex(newIndex, this.annotations.length, false);
|
|
157
|
+
if (oldIndex !== newIndex) {
|
|
158
|
+
const movedAnnotation = this.annotations[oldIndex];
|
|
159
|
+
const replacedAnnotation = this.annotations[newIndex];
|
|
160
|
+
this.annotations[newIndex] = movedAnnotation;
|
|
161
|
+
this.annotations.splice(oldIndex, 1);
|
|
162
|
+
replacedAnnotation.detach();
|
|
163
|
+
return [movedAnnotation, replacedAnnotation];
|
|
164
|
+
}
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
moveAndReplaceAtIndex(oldIndex, newIndex) {
|
|
168
|
+
const participants = this.moveAndReplaceAtIndexDirectly(oldIndex, newIndex);
|
|
169
|
+
if (participants !== undefined) {
|
|
170
|
+
const [movedAnnotation, replacedAnnotation] = participants;
|
|
171
|
+
this.emitDelta(() => new AnnotationMovedAndReplacedInSameParentDelta(this.container, oldIndex, newIndex, replacedAnnotation, movedAnnotation));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
150
174
|
removeDirectly(annotationToRemove) {
|
|
151
175
|
const index = this.annotations.indexOf(annotationToRemove);
|
|
152
176
|
if (index > -1) {
|
|
@@ -172,6 +196,8 @@ let AnnotationsValueManager = (() => {
|
|
|
172
196
|
_move_decorators = [action];
|
|
173
197
|
_replaceAtIndexDirectly_decorators = [action];
|
|
174
198
|
_replaceAtIndex_decorators = [action];
|
|
199
|
+
_moveAndReplaceAtIndexDirectly_decorators = [action];
|
|
200
|
+
_moveAndReplaceAtIndex_decorators = [action];
|
|
175
201
|
_removeDirectly_decorators = [action];
|
|
176
202
|
_remove_decorators = [action];
|
|
177
203
|
__esDecorate(_a, null, _addDirectly_decorators, { kind: "method", name: "addDirectly", static: false, private: false, access: { has: obj => "addDirectly" in obj, get: obj => obj.addDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -182,6 +208,8 @@ let AnnotationsValueManager = (() => {
|
|
|
182
208
|
__esDecorate(_a, null, _move_decorators, { kind: "method", name: "move", static: false, private: false, access: { has: obj => "move" in obj, get: obj => obj.move }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
183
209
|
__esDecorate(_a, null, _replaceAtIndexDirectly_decorators, { kind: "method", name: "replaceAtIndexDirectly", static: false, private: false, access: { has: obj => "replaceAtIndexDirectly" in obj, get: obj => obj.replaceAtIndexDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
184
210
|
__esDecorate(_a, null, _replaceAtIndex_decorators, { kind: "method", name: "replaceAtIndex", static: false, private: false, access: { has: obj => "replaceAtIndex" in obj, get: obj => obj.replaceAtIndex }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
211
|
+
__esDecorate(_a, null, _moveAndReplaceAtIndexDirectly_decorators, { kind: "method", name: "moveAndReplaceAtIndexDirectly", static: false, private: false, access: { has: obj => "moveAndReplaceAtIndexDirectly" in obj, get: obj => obj.moveAndReplaceAtIndexDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
212
|
+
__esDecorate(_a, null, _moveAndReplaceAtIndex_decorators, { kind: "method", name: "moveAndReplaceAtIndex", static: false, private: false, access: { has: obj => "moveAndReplaceAtIndex" in obj, get: obj => obj.moveAndReplaceAtIndex }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
185
213
|
__esDecorate(_a, null, _removeDirectly_decorators, { kind: "method", name: "removeDirectly", static: false, private: false, access: { has: obj => "removeDirectly" in obj, get: obj => obj.removeDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
186
214
|
__esDecorate(_a, null, _remove_decorators, { kind: "method", name: "remove", static: false, private: false, access: { has: obj => "remove" in obj, get: obj => obj.remove }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
187
215
|
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/value-managers/annotations.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/value-managers/annotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ export declare abstract class ValueManager {
|
|
|
8
8
|
protected readonly container: INodeBase;
|
|
9
9
|
protected constructor(container: INodeBase);
|
|
10
10
|
/**
|
|
11
|
-
* Emits a delta if a {@link
|
|
12
|
-
* @param deltaThunk a thunk that generates the delta, and is only called when a delta
|
|
11
|
+
* Emits a delta if a {@link DeltaReceiver} is registered with the container.
|
|
12
|
+
* @param deltaThunk a thunk that generates the delta, and is only called when a delta receiver is registered with the container.
|
|
13
13
|
*/
|
|
14
14
|
emitDelta(deltaThunk: () => IDelta): void;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/value-managers/base.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAyB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C;;GAEG;AACH,8BAAsB,YAAY;IAER,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IAA7D,SAAS,aAAgC,SAAS,EAAE,SAAS;IAG7D;;;OAGG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,MAAM;CAMrC;AAGD;;;;;GAKG;AACH,8BAAsB,mBAAmB,CAAC,EAAE,SAAS,OAAO,CAAE,SAAQ,YAAY;IAExD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;IAApD,SAAS,aAAgC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS;IAK1E;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,OAAO;IAMrC;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,OAAO;IAOrC;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO;IAEzB;;OAEG;IACH,kBAAkB,IAAI,KAAK;IAI3B;;OAEG;IACH,YAAY,IAAI,KAAK;CAIxB;AAGD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/value-managers/base.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAyB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C;;GAEG;AACH,8BAAsB,YAAY;IAER,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IAA7D,SAAS,aAAgC,SAAS,EAAE,SAAS;IAG7D;;;OAGG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,MAAM;CAMrC;AAGD;;;;;GAKG;AACH,8BAAsB,mBAAmB,CAAC,EAAE,SAAS,OAAO,CAAE,SAAQ,YAAY;IAExD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;IAApD,SAAS,aAAgC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS;IAK1E;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,OAAO;IAMrC;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,OAAO;IAOrC;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO;IAEzB;;OAEG;IACH,kBAAkB,IAAI,KAAK;IAI3B;;OAEG;IACH,YAAY,IAAI,KAAK;CAIxB;AAGD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,WAAW,MAAM,EAAE,WAAW,OAAO,SAkB9E,CAAA"}
|
|
@@ -23,12 +23,12 @@ export class ValueManager {
|
|
|
23
23
|
this.container = container;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Emits a delta if a {@link
|
|
27
|
-
* @param deltaThunk a thunk that generates the delta, and is only called when a delta
|
|
26
|
+
* Emits a delta if a {@link DeltaReceiver} is registered with the container.
|
|
27
|
+
* @param deltaThunk a thunk that generates the delta, and is only called when a delta receiver is registered with the container.
|
|
28
28
|
*/
|
|
29
29
|
emitDelta(deltaThunk) {
|
|
30
|
-
if (this.container.
|
|
31
|
-
this.container.
|
|
30
|
+
if (this.container.receiveDelta) {
|
|
31
|
+
this.container.receiveDelta(deltaThunk());
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
}
|