@lionweb/class-core 0.7.0-alpha.10 → 0.7.0-alpha.11
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/base-types.d.ts.map +1 -1
- package/dist/base-types.js.map +1 -1
- package/dist/deltas/appliers.d.ts +3 -2
- package/dist/deltas/appliers.d.ts.map +1 -1
- package/dist/deltas/appliers.js +362 -160
- package/dist/deltas/appliers.js.map +1 -1
- package/dist/deltas/inverters.d.ts.map +1 -1
- package/dist/deltas/inverters.js +65 -26
- package/dist/deltas/inverters.js.map +1 -1
- package/dist/deltas/serialization/deserializer.g.d.ts.map +1 -1
- package/dist/deltas/serialization/deserializer.g.js +168 -57
- package/dist/deltas/serialization/deserializer.g.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.map +1 -1
- package/dist/deserializer.js +4 -4
- package/dist/deserializer.js.map +1 -1
- package/dist/duplicator.d.ts.map +1 -1
- package/dist/duplicator.js.map +1 -1
- package/dist/id-mapping.d.ts +3 -0
- package/dist/id-mapping.d.ts.map +1 -1
- package/dist/id-mapping.js +3 -0
- package/dist/id-mapping.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 +30 -1
- package/dist/value-managers/annotations.js.map +1 -1
- package/dist/value-managers/containments.d.ts +3 -0
- package/dist/value-managers/containments.d.ts.map +1 -1
- package/dist/value-managers/containments.js +78 -8
- package/dist/value-managers/containments.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 +4 -7
- package/src/base-types.ts +0 -1
- package/src/deltas/appliers.ts +370 -174
- package/src/deltas/inverters.ts +82 -34
- package/src/deltas/serialization/deserializer.g.ts +191 -62
- 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 +7 -5
- package/src/duplicator.ts +1 -1
- package/src/id-mapping.ts +3 -0
- package/src/value-managers/annotations.ts +26 -0
- package/src/value-managers/containments.ts +73 -8
- package/src/value-managers/references.ts +28 -8
package/dist/base-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEH,UAAU,EAGV,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,SAAS,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EAGnB,oBAAoB,EACpB,qBAAqB,EAGxB,MAAM,YAAY,CAAA;AAGnB;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,GAAG,IAAI,CAAE,CAAC;AAGrF;;;;;GAKG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI;IAEnC,UAAU,EAAE,UAAU,CAAC;IAEvB;;;;OAIG;IACH,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAE9B;;;;OAIG;IACH,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IAEnE;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAC;IAGf;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE3E;;;OAGG;IACH,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEzF;;;OAGG;IACH,wBAAwB,CAAC,SAAS,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEjF;;;OAGG;
|
|
1
|
+
{"version":3,"file":"base-types.d.ts","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"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"}
|
package/dist/base-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-types.js","sourceRoot":"","sources":["../src/base-types.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,aAAa,EAIb,WAAW,EAKX,QAAQ,EACR,SAAS,EACZ,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAErC,OAAO,EACH,uBAAuB,EAIvB,4BAA4B,EAC5B,0BAA0B,EAG1B,6BAA6B,EAC7B,2BAA2B,EAC9B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"base-types.js","sourceRoot":"","sources":["../src/base-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { INodeBase } from "../base-types.js";
|
|
1
2
|
import { IdMapping } from "../id-mapping.js";
|
|
2
3
|
import { IDelta } from "./base.js";
|
|
3
4
|
/**
|
|
@@ -20,7 +21,7 @@ export declare const applyDelta: (delta: IDelta) => void;
|
|
|
20
21
|
* applyDeltasWithLookup(idMapping, deltas);
|
|
21
22
|
* ```
|
|
22
23
|
*/
|
|
23
|
-
export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelta[]) => void;
|
|
24
|
+
export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelta[], updatablePartitions?: () => INodeBase[]) => void;
|
|
24
25
|
/**
|
|
25
26
|
* Applies the given {@link Delta delta} to {@link nodes INodeBase} given as the values of a {@link IdMapping ID mapping id → node}.
|
|
26
27
|
* Note that the delta is *not* applied to the original nodes (object-)referenced by the deltas, but to the nodes present in the ID mapping.
|
|
@@ -32,7 +33,7 @@ export declare const applyDeltasWithLookup: (idMapping: IdMapping, deltas: IDelt
|
|
|
32
33
|
* applyDeltaWithLookup(idMapping, delta);
|
|
33
34
|
* ```
|
|
34
35
|
*/
|
|
35
|
-
export declare const applyDeltaWithLookup: (idMapping: IdMapping, delta: IDelta) => void;
|
|
36
|
+
export declare const applyDeltaWithLookup: (idMapping: IdMapping, delta: IDelta, updatablePartitions?: () => INodeBase[]) => void;
|
|
36
37
|
/**
|
|
37
38
|
* Updates the given {@link IdMapping ID mapping} with the given {@link IDelta delta}.
|
|
38
39
|
* This is important if the delta adds a newly-created node to the model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appliers.d.ts","sourceRoot":"","sources":["../../src/deltas/appliers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appliers.d.ts","sourceRoot":"","sources":["../../src/deltas/appliers.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAqYlC;;GAEG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,EAAE,KAAG,IAE9C,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,UAAU,UArYX,MAAM,KAAG,IAqYmB,CAAA;AAGxC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,cAAe,SAAS,UAAU,MAAM,EAAE,wBAAwB,MAAM,SAAS,EAAE,KAAG,IAEvH,CAAC;AAGF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,cAAe,SAAS,SAAS,MAAM,wBAAwB,MAAM,SAAS,EAAE,KAAG,IAC7D,CAAA;AAGvD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,cAAe,SAAS,SAAS,MAAM,SAW3E,CAAC"}
|
package/dist/deltas/appliers.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
//
|
|
15
15
|
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
16
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
-
import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta, ChildAddedDelta, ChildDeletedDelta,
|
|
17
|
+
import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedAndReplacedFromOtherParentDelta, AnnotationMovedAndReplacedInSameParentDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta, ChildAddedDelta, ChildDeletedDelta, ChildMovedAndReplacedFromOtherContainmentDelta, ChildMovedAndReplacedFromOtherContainmentInSameParentDelta, ChildMovedAndReplacedInSameContainmentDelta, ChildMovedFromOtherContainmentDelta, ChildMovedFromOtherContainmentInSameParentDelta, ChildMovedInSameContainmentDelta, ChildReplacedDelta, CompositeDelta, EntryMovedAndReplacedFromOtherReferenceDelta, EntryMovedAndReplacedFromOtherReferenceInSameParentDelta, EntryMovedAndReplacedInSameReferenceDelta, EntryMovedFromOtherReferenceDelta, EntryMovedFromOtherReferenceInSameParentDelta, EntryMovedInSameReferenceDelta, NoOpDelta, PartitionAddedDelta, PartitionDeletedDelta, PropertyAddedDelta, PropertyChangedDelta, PropertyDeletedDelta, ReferenceAddedDelta, ReferenceChangedDelta, ReferenceDeletedDelta } from "./types.g.js";
|
|
18
18
|
import { unresolved } from "@lionweb/core";
|
|
19
19
|
/**
|
|
20
20
|
* @return a function that applies a given {@link Delta}, given an optional {@link IdMapping ID mapping}.
|
|
@@ -23,7 +23,7 @@ import { unresolved } from "@lionweb/core";
|
|
|
23
23
|
*
|
|
24
24
|
* This is an internal function, solely meant to DRY the delta application with and without lookup in
|
|
25
25
|
*/
|
|
26
|
-
const deltaApplier = (idMapping) => (delta) => {
|
|
26
|
+
const deltaApplier = (idMapping, updatablePartitions) => (delta) => {
|
|
27
27
|
const lookupNodeFrom = (node) => {
|
|
28
28
|
if (idMapping === undefined) {
|
|
29
29
|
return node;
|
|
@@ -45,177 +45,379 @@ const deltaApplier = (idMapping) => (delta) => {
|
|
|
45
45
|
? unresolved
|
|
46
46
|
: lookupNodeFrom(nodeRef);
|
|
47
47
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (delta instanceof PropertyDeletedDelta) {
|
|
60
|
-
lookupNodeFrom(delta.container).getPropertyValueManager(delta.property).setDirectly(undefined);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (delta instanceof ChildAddedDelta) {
|
|
64
|
-
const valueManager = lookupNodeFrom(delta.parent).getContainmentValueManager(delta.containment);
|
|
65
|
-
const newChild = lookupNodeFrom(delta.newChild);
|
|
66
|
-
if (delta.containment.multiple) {
|
|
67
|
-
valueManager.insertAtIndexDirectly(newChild, delta.index);
|
|
48
|
+
const applyDelta = (delta) => {
|
|
49
|
+
if (delta instanceof PartitionAddedDelta) {
|
|
50
|
+
if (updatablePartitions !== undefined) {
|
|
51
|
+
const partitions = updatablePartitions();
|
|
52
|
+
const { newPartition } = delta;
|
|
53
|
+
if (partitions.indexOf(newPartition) === -1) {
|
|
54
|
+
updatablePartitions().push(newPartition);
|
|
55
|
+
}
|
|
56
|
+
idMapping?.updateWith(newPartition);
|
|
57
|
+
}
|
|
58
|
+
return;
|
|
68
59
|
}
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
if (delta instanceof PartitionDeletedDelta) {
|
|
61
|
+
if (updatablePartitions !== undefined) {
|
|
62
|
+
const partitions = updatablePartitions();
|
|
63
|
+
const index = partitions.indexOf(delta.deletedPartition);
|
|
64
|
+
if (index > -1) {
|
|
65
|
+
partitions.splice(index, 1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
71
69
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (delta instanceof ChildReplacedDelta) {
|
|
76
|
-
const valueManager = lookupNodeFrom(delta.parent).getContainmentValueManager(delta.containment);
|
|
77
|
-
const replacedChild = lookupNodeFrom(delta.replacedChild);
|
|
78
|
-
const newChild = lookupNodeFrom(delta.newChild);
|
|
79
|
-
if (delta.containment.multiple) {
|
|
80
|
-
const multiValueManager = valueManager;
|
|
81
|
-
multiValueManager.removeDirectly(replacedChild); // should be at index delta.index
|
|
82
|
-
multiValueManager.insertAtIndexDirectly(newChild, delta.index);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
valueManager.setDirectly(newChild);
|
|
86
|
-
}
|
|
87
|
-
replacedChild.detach();
|
|
88
|
-
newChild.attachTo(delta.parent, delta.containment);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (delta instanceof ChildMovedDelta) {
|
|
92
|
-
const oldValueManager = delta.oldParent.getContainmentValueManager(delta.oldContainment);
|
|
93
|
-
const child = lookupNodeFrom(delta.child);
|
|
94
|
-
if (delta.oldContainment.multiple) {
|
|
95
|
-
oldValueManager.removeDirectly(child); // should be at index delta.oldIndex
|
|
70
|
+
if (delta instanceof PropertyAddedDelta) {
|
|
71
|
+
lookupNodeFrom(delta.node).getPropertyValueManager(delta.property).setDirectly(delta.value);
|
|
72
|
+
return;
|
|
96
73
|
}
|
|
97
|
-
|
|
98
|
-
|
|
74
|
+
if (delta instanceof PropertyDeletedDelta) {
|
|
75
|
+
lookupNodeFrom(delta.node).getPropertyValueManager(delta.property).setDirectly(undefined);
|
|
76
|
+
return;
|
|
99
77
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
78
|
+
if (delta instanceof PropertyChangedDelta) {
|
|
79
|
+
lookupNodeFrom(delta.node).getPropertyValueManager(delta.property).setDirectly(delta.newValue);
|
|
80
|
+
return;
|
|
103
81
|
}
|
|
104
|
-
|
|
105
|
-
|
|
82
|
+
if (delta instanceof ChildAddedDelta) {
|
|
83
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
84
|
+
const valueManager = parent.getContainmentValueManager(delta.containment);
|
|
85
|
+
const newChild = lookupNodeFrom(delta.newChild);
|
|
86
|
+
if (delta.containment.multiple) {
|
|
87
|
+
valueManager.insertAtIndexDirectly(newChild, delta.index);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
valueManager.setDirectly(newChild);
|
|
91
|
+
}
|
|
92
|
+
newChild.attachTo(parent, delta.containment);
|
|
93
|
+
return;
|
|
106
94
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const valueManager = lookupNodeFrom(delta.parent).getContainmentValueManager(delta.containment);
|
|
118
|
-
if (delta.containment.multiple) {
|
|
119
|
-
const multiValueManager = valueManager;
|
|
120
|
-
multiValueManager.removeDirectly(lookupNodeFrom(delta.deletedChild));
|
|
95
|
+
if (delta instanceof ChildDeletedDelta) {
|
|
96
|
+
const valueManager = lookupNodeFrom(delta.parent).getContainmentValueManager(delta.containment);
|
|
97
|
+
if (delta.containment.multiple) {
|
|
98
|
+
valueManager.removeDirectly(lookupNodeFrom(delta.deletedChild));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
valueManager.setDirectly(undefined);
|
|
102
|
+
}
|
|
103
|
+
delta.deletedChild.detach();
|
|
104
|
+
return;
|
|
121
105
|
}
|
|
122
|
-
|
|
123
|
-
|
|
106
|
+
if (delta instanceof ChildReplacedDelta) {
|
|
107
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
108
|
+
const valueManager = parent.getContainmentValueManager(delta.containment);
|
|
109
|
+
const replacedChild = lookupNodeFrom(delta.replacedChild);
|
|
110
|
+
const newChild = lookupNodeFrom(delta.newChild);
|
|
111
|
+
if (delta.containment.multiple) {
|
|
112
|
+
const multiValueManager = valueManager;
|
|
113
|
+
multiValueManager.removeDirectly(replacedChild); // should be at index delta.index
|
|
114
|
+
multiValueManager.insertAtIndexDirectly(newChild, delta.index);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
valueManager.setDirectly(newChild);
|
|
118
|
+
}
|
|
119
|
+
replacedChild.detach();
|
|
120
|
+
newChild.attachTo(parent, delta.containment);
|
|
121
|
+
return;
|
|
124
122
|
}
|
|
125
|
-
delta
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
123
|
+
if (delta instanceof ChildMovedFromOtherContainmentDelta) {
|
|
124
|
+
const oldValueManager = lookupNodeFrom(delta.oldParent).getContainmentValueManager(delta.oldContainment);
|
|
125
|
+
const movedChild = lookupNodeFrom(delta.movedChild);
|
|
126
|
+
if (delta.oldContainment.multiple) {
|
|
127
|
+
oldValueManager.removeDirectly(movedChild); // should be at index delta.oldIndex
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
oldValueManager.setDirectly(undefined);
|
|
131
|
+
}
|
|
132
|
+
const newParent = lookupNodeFrom(delta.newParent);
|
|
133
|
+
const newValueManager = newParent.getContainmentValueManager(delta.newContainment);
|
|
134
|
+
if (delta.newContainment.multiple) {
|
|
135
|
+
newValueManager.insertAtIndexDirectly(movedChild, delta.newIndex);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
newValueManager.setDirectly(movedChild);
|
|
139
|
+
}
|
|
140
|
+
movedChild.detach();
|
|
141
|
+
movedChild.attachTo(newParent, delta.newContainment);
|
|
142
|
+
return;
|
|
133
143
|
}
|
|
134
|
-
|
|
135
|
-
|
|
144
|
+
if (delta instanceof ChildMovedFromOtherContainmentInSameParentDelta) {
|
|
145
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
146
|
+
const oldValueManager = parent.getContainmentValueManager(delta.oldContainment);
|
|
147
|
+
const movedChild = lookupNodeFrom(delta.movedChild);
|
|
148
|
+
if (delta.oldContainment.multiple) {
|
|
149
|
+
oldValueManager.removeDirectly(movedChild); // should be at index delta.oldIndex
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
oldValueManager.setDirectly(undefined);
|
|
153
|
+
}
|
|
154
|
+
const newValueManager = parent.getContainmentValueManager(delta.newContainment);
|
|
155
|
+
if (delta.newContainment.multiple) {
|
|
156
|
+
newValueManager.insertAtIndexDirectly(movedChild, delta.newIndex);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
newValueManager.setDirectly(movedChild);
|
|
160
|
+
}
|
|
161
|
+
return;
|
|
136
162
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const replacedTarget = lookupNodeRefFrom(delta.replacedTarget);
|
|
142
|
-
const newTarget = lookupNodeRefFrom(delta.newTarget);
|
|
143
|
-
if (delta.reference.multiple) {
|
|
144
|
-
const multiValueManager = valueManager;
|
|
145
|
-
multiValueManager.removeDirectly(replacedTarget); // should be at index delta.index
|
|
146
|
-
multiValueManager.insertAtIndexDirectly(newTarget, delta.index);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
valueManager.setDirectly(newTarget);
|
|
150
|
-
}
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
if (delta instanceof ReferenceMovedDelta) {
|
|
154
|
-
const oldValueManager = lookupNodeFrom(delta.oldContainer).getReferenceValueManager(delta.oldReference);
|
|
155
|
-
const target = lookupNodeRefFrom(delta.target);
|
|
156
|
-
if (delta.oldReference.multiple) {
|
|
157
|
-
oldValueManager.removeDirectly(target); // should be at index delta.oldIndex
|
|
163
|
+
if (delta instanceof ChildMovedInSameContainmentDelta) {
|
|
164
|
+
const valueManager = lookupNodeFrom(delta.parent).getContainmentValueManager(delta.containment);
|
|
165
|
+
valueManager.moveDirectly(delta.oldIndex, delta.newIndex);
|
|
166
|
+
return;
|
|
158
167
|
}
|
|
159
|
-
|
|
160
|
-
oldValueManager.
|
|
168
|
+
if (delta instanceof ChildMovedAndReplacedFromOtherContainmentDelta) {
|
|
169
|
+
const oldValueManager = delta.oldParent.getContainmentValueManager(delta.oldContainment);
|
|
170
|
+
const movedChild = lookupNodeFrom(delta.movedChild);
|
|
171
|
+
if (delta.oldContainment.multiple) {
|
|
172
|
+
oldValueManager.removeDirectly(movedChild); // should be at index delta.oldIndex
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
oldValueManager.setDirectly(undefined);
|
|
176
|
+
}
|
|
177
|
+
const newParent = lookupNodeFrom(delta.newParent);
|
|
178
|
+
const newValueManager = newParent.getContainmentValueManager(delta.newContainment);
|
|
179
|
+
if (delta.newContainment.multiple) {
|
|
180
|
+
const valueManager = newValueManager;
|
|
181
|
+
valueManager.removeAtIndexDirectly(delta.newIndex);
|
|
182
|
+
valueManager.insertAtIndexDirectly(movedChild, delta.newIndex);
|
|
183
|
+
// TODO make separate API for this?
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
newValueManager.setDirectly(movedChild);
|
|
187
|
+
}
|
|
188
|
+
movedChild.detach();
|
|
189
|
+
movedChild.attachTo(newParent, delta.newContainment);
|
|
190
|
+
return;
|
|
161
191
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
192
|
+
if (delta instanceof ChildMovedAndReplacedFromOtherContainmentInSameParentDelta) {
|
|
193
|
+
const oldValueManager = delta.parent.getContainmentValueManager(delta.oldContainment);
|
|
194
|
+
const movedChild = lookupNodeFrom(delta.movedChild);
|
|
195
|
+
if (delta.oldContainment.multiple) {
|
|
196
|
+
oldValueManager.removeDirectly(movedChild); // should be at index delta.oldIndex
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
oldValueManager.setDirectly(undefined);
|
|
200
|
+
}
|
|
201
|
+
const newValueManager = delta.parent.getContainmentValueManager(delta.newContainment);
|
|
202
|
+
if (delta.newContainment.multiple) {
|
|
203
|
+
const valueManager = newValueManager;
|
|
204
|
+
valueManager.removeAtIndexDirectly(delta.newIndex); // should be delta.replacedChild
|
|
205
|
+
valueManager.insertAtIndexDirectly(movedChild, delta.newIndex);
|
|
206
|
+
// TODO make separate API for this?
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
newValueManager.setDirectly(movedChild);
|
|
210
|
+
}
|
|
211
|
+
return;
|
|
165
212
|
}
|
|
166
|
-
|
|
167
|
-
|
|
213
|
+
if (delta instanceof ChildMovedAndReplacedInSameContainmentDelta) {
|
|
214
|
+
const valueManager = delta.parent.getContainmentValueManager(delta.containment);
|
|
215
|
+
const movedChild = lookupNodeFrom(delta.movedChild);
|
|
216
|
+
const replacedChild = lookupNodeFrom(delta.replacedChild);
|
|
217
|
+
if (delta.containment.multiple) {
|
|
218
|
+
valueManager.removeDirectly(replacedChild); // should be at index delta.oldIndex
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
valueManager.setDirectly(undefined);
|
|
222
|
+
}
|
|
223
|
+
if (delta.containment.multiple) {
|
|
224
|
+
valueManager.insertAtIndexDirectly(movedChild, delta.newIndex);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
valueManager.setDirectly(movedChild);
|
|
228
|
+
}
|
|
229
|
+
return;
|
|
168
230
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
if (delta instanceof ReferenceDeletedDelta) {
|
|
177
|
-
const valueManager = lookupNodeFrom(delta.container).getReferenceValueManager(delta.reference);
|
|
178
|
-
const deletedTarget = lookupNodeRefFrom(delta.deletedTarget);
|
|
179
|
-
if (delta.reference.multiple) {
|
|
180
|
-
const multiValueManager = valueManager;
|
|
181
|
-
multiValueManager.removeDirectly(deletedTarget);
|
|
231
|
+
if (delta instanceof AnnotationAddedDelta) {
|
|
232
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
233
|
+
parent.annotationsValueManager.insertAtIndexDirectly(delta.newAnnotation, delta.index);
|
|
234
|
+
delta.newAnnotation.attachTo(parent, null);
|
|
235
|
+
return;
|
|
182
236
|
}
|
|
183
|
-
|
|
184
|
-
|
|
237
|
+
if (delta instanceof AnnotationDeletedDelta) {
|
|
238
|
+
lookupNodeFrom(delta.parent).annotationsValueManager.removeDirectly(delta.deletedAnnotation); // should be at index delta.index
|
|
239
|
+
delta.deletedAnnotation.detach();
|
|
240
|
+
return;
|
|
185
241
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
delta
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
242
|
+
if (delta instanceof AnnotationReplacedDelta) {
|
|
243
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
244
|
+
const valueManager = parent.annotationsValueManager;
|
|
245
|
+
valueManager.removeDirectly(delta.replacedAnnotation); // should be at index delta.index
|
|
246
|
+
delta.replacedAnnotation.detach();
|
|
247
|
+
valueManager.insertAtIndexDirectly(delta.newAnnotation, delta.index);
|
|
248
|
+
delta.newAnnotation.attachTo(parent, null);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
if (delta instanceof AnnotationMovedFromOtherParentDelta) {
|
|
252
|
+
const movedAnnotation = lookupNodeFrom(delta.movedAnnotation);
|
|
253
|
+
lookupNodeFrom(delta.oldParent).annotationsValueManager.removeDirectly(movedAnnotation); // should be at index delta.index
|
|
254
|
+
movedAnnotation.detach();
|
|
255
|
+
const newParent = lookupNodeFrom(delta.newParent);
|
|
256
|
+
newParent.annotationsValueManager.insertAtIndexDirectly(delta.movedAnnotation, delta.newIndex);
|
|
257
|
+
movedAnnotation.attachTo(newParent, null);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
if (delta instanceof AnnotationMovedInSameParentDelta) {
|
|
261
|
+
const valueManager = lookupNodeFrom(delta.parent).annotationsValueManager;
|
|
262
|
+
valueManager.moveDirectly(delta.oldIndex, delta.newIndex);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (delta instanceof AnnotationMovedAndReplacedFromOtherParentDelta) {
|
|
266
|
+
const movedAnnotation = lookupNodeFrom(delta.movedAnnotation);
|
|
267
|
+
lookupNodeFrom(delta.oldParent).annotationsValueManager.removeDirectly(delta.movedAnnotation); // should be at index delta.index
|
|
268
|
+
delta.movedAnnotation.detach();
|
|
269
|
+
const newParent = lookupNodeFrom(delta.newParent);
|
|
270
|
+
const newValueManager = newParent.annotationsValueManager;
|
|
271
|
+
newValueManager.removeDirectly(delta.replacedAnnotation);
|
|
272
|
+
delta.replacedAnnotation.detach();
|
|
273
|
+
newValueManager.insertAtIndexDirectly(movedAnnotation, delta.newIndex);
|
|
274
|
+
movedAnnotation.attachTo(newParent, null);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
if (delta instanceof AnnotationMovedAndReplacedInSameParentDelta) {
|
|
278
|
+
const valueManager = lookupNodeFrom(delta.parent).annotationsValueManager;
|
|
279
|
+
valueManager.moveAndReplaceAtIndexDirectly(delta.oldIndex, delta.newIndex);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
if (delta instanceof ReferenceAddedDelta) {
|
|
283
|
+
const valueManager = lookupNodeFrom(delta.parent).getReferenceValueManager(delta.reference);
|
|
284
|
+
const newTarget = lookupNodeRefFrom(delta.newTarget);
|
|
285
|
+
if (delta.reference.multiple) {
|
|
286
|
+
valueManager.insertAtIndexDirectly(newTarget, delta.index);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
valueManager.setDirectly(newTarget);
|
|
290
|
+
}
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (delta instanceof ReferenceDeletedDelta) {
|
|
294
|
+
const valueManager = lookupNodeFrom(delta.parent).getReferenceValueManager(delta.reference);
|
|
295
|
+
if (delta.reference.multiple) {
|
|
296
|
+
valueManager.removeAtIndexDirectly(delta.index); // should be delta.deletedTarget
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
valueManager.setDirectly(undefined);
|
|
300
|
+
}
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
if (delta instanceof ReferenceChangedDelta) {
|
|
304
|
+
const valueManager = lookupNodeFrom(delta.parent).getReferenceValueManager(delta.reference);
|
|
305
|
+
const newTarget = lookupNodeRefFrom(delta.newTarget);
|
|
306
|
+
if (delta.reference.multiple) {
|
|
307
|
+
const multiValueManager = valueManager;
|
|
308
|
+
multiValueManager.removeAtIndexDirectly(delta.index); // should be delta.oldTarget
|
|
309
|
+
multiValueManager.insertAtIndexDirectly(newTarget, delta.index);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
valueManager.setDirectly(newTarget);
|
|
313
|
+
}
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (delta instanceof EntryMovedFromOtherReferenceDelta) {
|
|
317
|
+
const oldValueManager = lookupNodeFrom(delta.oldParent).getReferenceValueManager(delta.oldReference);
|
|
318
|
+
const movedTarget = lookupNodeRefFrom(delta.movedTarget);
|
|
319
|
+
if (delta.oldReference.multiple) {
|
|
320
|
+
oldValueManager.removeAtIndexDirectly(delta.oldIndex); // should be delta.movedTarget
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
oldValueManager.setDirectly(undefined);
|
|
324
|
+
}
|
|
325
|
+
const newValueManager = lookupNodeFrom(delta.newParent).getReferenceValueManager(delta.newReference);
|
|
326
|
+
if (delta.newReference.multiple) {
|
|
327
|
+
newValueManager.insertAtIndexDirectly(movedTarget, delta.newIndex);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
newValueManager.setDirectly(movedTarget);
|
|
331
|
+
}
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
if (delta instanceof EntryMovedFromOtherReferenceInSameParentDelta) {
|
|
335
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
336
|
+
const oldValueManager = parent.getReferenceValueManager(delta.oldReference);
|
|
337
|
+
const movedTarget = lookupNodeRefFrom(delta.movedTarget);
|
|
338
|
+
if (delta.oldReference.multiple) {
|
|
339
|
+
oldValueManager.removeAtIndexDirectly(delta.oldIndex); // should be delta.movedTarget
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
oldValueManager.setDirectly(undefined);
|
|
343
|
+
}
|
|
344
|
+
const newValueManager = parent.getReferenceValueManager(delta.newReference);
|
|
345
|
+
if (delta.newReference.multiple) {
|
|
346
|
+
newValueManager.insertAtIndexDirectly(movedTarget, delta.newIndex);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
newValueManager.setDirectly(movedTarget);
|
|
350
|
+
}
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
if (delta instanceof EntryMovedInSameReferenceDelta) {
|
|
354
|
+
const valueManager = lookupNodeFrom(delta.parent).getReferenceValueManager(delta.reference);
|
|
355
|
+
valueManager.moveDirectly(delta.oldIndex, delta.newIndex);
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
if (delta instanceof EntryMovedAndReplacedFromOtherReferenceDelta) {
|
|
359
|
+
const oldParent = lookupNodeFrom(delta.oldParent);
|
|
360
|
+
const oldValueManager = oldParent.getReferenceValueManager(delta.oldReference);
|
|
361
|
+
const movedTarget = lookupNodeRefFrom(delta.movedTarget);
|
|
362
|
+
if (delta.oldReference.multiple) {
|
|
363
|
+
oldValueManager.removeAtIndexDirectly(delta.oldIndex); // should be delta.movedTarget
|
|
364
|
+
}
|
|
365
|
+
else {
|
|
366
|
+
oldValueManager.setDirectly(undefined);
|
|
367
|
+
}
|
|
368
|
+
const newParent = lookupNodeFrom(delta.newParent);
|
|
369
|
+
const newValueManager = newParent.getReferenceValueManager(delta.newReference);
|
|
370
|
+
if (delta.newReference.multiple) {
|
|
371
|
+
const valueManager = newValueManager;
|
|
372
|
+
valueManager.removeAtIndexDirectly(delta.oldIndex); // should be delta.replacedTarget
|
|
373
|
+
valueManager.insertAtIndexDirectly(movedTarget, delta.newIndex);
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
newValueManager.setDirectly(movedTarget);
|
|
377
|
+
}
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
if (delta instanceof EntryMovedAndReplacedFromOtherReferenceInSameParentDelta) {
|
|
381
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
382
|
+
const oldValueManager = parent.getReferenceValueManager(delta.oldReference);
|
|
383
|
+
const movedTarget = lookupNodeRefFrom(delta.movedTarget);
|
|
384
|
+
if (delta.oldReference.multiple) {
|
|
385
|
+
oldValueManager.removeAtIndexDirectly(delta.oldIndex); // should be delta.movedTarget
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
oldValueManager.setDirectly(undefined);
|
|
389
|
+
}
|
|
390
|
+
const newValueManager = parent.getReferenceValueManager(delta.newReference);
|
|
391
|
+
if (delta.newReference.multiple) {
|
|
392
|
+
const valueManager = newValueManager;
|
|
393
|
+
valueManager.removeAtIndexDirectly(delta.newIndex); // should be delta.replacedTarget
|
|
394
|
+
valueManager.insertAtIndexDirectly(movedTarget, delta.newIndex);
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
newValueManager.setDirectly(movedTarget);
|
|
398
|
+
}
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
if (delta instanceof EntryMovedAndReplacedInSameReferenceDelta) {
|
|
402
|
+
const parent = lookupNodeFrom(delta.parent);
|
|
403
|
+
const valueManager = parent.getReferenceValueManager(delta.reference);
|
|
404
|
+
if (delta.reference.multiple) {
|
|
405
|
+
valueManager.moveAndReplaceDirectly(delta.oldIndex, delta.newIndex);
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
// (do nothing)
|
|
409
|
+
}
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
if (delta instanceof CompositeDelta) {
|
|
413
|
+
delta.parts.forEach(applyDelta);
|
|
414
|
+
}
|
|
415
|
+
if (delta instanceof NoOpDelta) {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
throw new Error(`application of delta of class ${delta.constructor.name} not implemented`);
|
|
419
|
+
};
|
|
420
|
+
return applyDelta(delta);
|
|
219
421
|
};
|
|
220
422
|
/**
|
|
221
423
|
* Applies the given {@link Delta deltas} to the {@link INodeBase nodes} (object-)referenced in the deltas.
|
|
@@ -239,8 +441,8 @@ export const applyDelta = deltaApplier();
|
|
|
239
441
|
* applyDeltasWithLookup(idMapping, deltas);
|
|
240
442
|
* ```
|
|
241
443
|
*/
|
|
242
|
-
export const applyDeltasWithLookup = (idMapping, deltas) => {
|
|
243
|
-
deltas.forEach((delta) => applyDeltaWithLookup(idMapping, delta));
|
|
444
|
+
export const applyDeltasWithLookup = (idMapping, deltas, updatablePartitions) => {
|
|
445
|
+
deltas.forEach((delta) => applyDeltaWithLookup(idMapping, delta, updatablePartitions));
|
|
244
446
|
};
|
|
245
447
|
/**
|
|
246
448
|
* Applies the given {@link Delta delta} to {@link nodes INodeBase} given as the values of a {@link IdMapping ID mapping id → node}.
|
|
@@ -253,7 +455,7 @@ export const applyDeltasWithLookup = (idMapping, deltas) => {
|
|
|
253
455
|
* applyDeltaWithLookup(idMapping, delta);
|
|
254
456
|
* ```
|
|
255
457
|
*/
|
|
256
|
-
export const applyDeltaWithLookup = (idMapping, delta) => deltaApplier(idMapping)(delta);
|
|
458
|
+
export const applyDeltaWithLookup = (idMapping, delta, updatablePartitions) => deltaApplier(idMapping, updatablePartitions)(delta);
|
|
257
459
|
/**
|
|
258
460
|
* Updates the given {@link IdMapping ID mapping} with the given {@link IDelta delta}.
|
|
259
461
|
* This is important if the delta adds a newly-created node to the model.
|