@lionweb/class-core 0.7.0-beta.1 → 0.7.0-beta.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/CHANGELOG.md +6 -0
- package/dist/base-types.d.ts.map +1 -1
- package/dist/base-types.js.map +1 -1
- package/dist/convenience.d.ts.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/handlers.d.ts.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-helpers.d.ts.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/factory.d.ts +7 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +44 -0
- package/dist/factory.js.map +1 -0
- 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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.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/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/base.d.ts.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/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 +7 -10
- package/src/base-types.ts +0 -1
- package/src/deltas/appliers.ts +380 -184
- package/src/deltas/inverters.ts +83 -35
- package/src/deltas/serialization/deserializer.g.ts +195 -66
- package/src/deltas/serialization/serializer.g.ts +246 -67
- package/src/deltas/serialization/types.g.ts +192 -53
- package/src/deltas/types.g.ts +192 -53
- package/src/deserializer.ts +7 -5
- package/src/duplicator.ts +1 -1
- package/src/factory.ts +49 -0
- package/src/id-mapping.ts +3 -0
- package/src/index.ts +1 -0
- package/src/value-managers/annotations.ts +27 -1
- package/src/value-managers/containments.ts +73 -8
- package/src/value-managers/references.ts +28 -8
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,EAEX,oBAAoB,EACpB,aAAa,EACb,QAAQ,EAER,SAAS,EAET,UAAU,EACb,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
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":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ILanguageBase, NodeBaseFactory } from "./base-types.js";
|
|
2
|
+
import { DeltaHandler } from "./deltas/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
|
|
5
|
+
*/
|
|
6
|
+
export declare const combinedFactoryFor: (languageBases: ILanguageBase[], handleDelta?: DeltaHandler) => NodeBaseFactory;
|
|
7
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,eAAe,aAAa,EAAE,EAAE,cAAc,YAAY,KAAG,eAuB/F,CAAA"}
|
package/dist/factory.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Copyright 2025 TRUMPF Laser SE and other contributors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License")
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
|
|
16
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
import { lazyMapGet } from "@lionweb/ts-utils";
|
|
18
|
+
/**
|
|
19
|
+
* @return a {@link NodeBaseFactory factory function} that works for all given {@link ILanguageBase language bases}.
|
|
20
|
+
*/
|
|
21
|
+
export const combinedFactoryFor = (languageBases, handleDelta) => {
|
|
22
|
+
// create lookup map:
|
|
23
|
+
const languageKey2version2factory = {};
|
|
24
|
+
languageBases.forEach((languageBase) => {
|
|
25
|
+
const { key, version } = languageBase.language;
|
|
26
|
+
const version2factory = lazyMapGet(languageKey2version2factory, key, () => ({}));
|
|
27
|
+
lazyMapGet(version2factory, version, () => languageBase.factory(handleDelta));
|
|
28
|
+
// (Note: don't destructure factory from languageBase, as that will unbind it as "this"!)
|
|
29
|
+
});
|
|
30
|
+
return (classifier, id) => {
|
|
31
|
+
const { key, version, name } = classifier.language;
|
|
32
|
+
const version2factory = languageKey2version2factory[key];
|
|
33
|
+
if (version2factory === undefined) {
|
|
34
|
+
throw new Error(`language ${name} with key=${key} not known`);
|
|
35
|
+
}
|
|
36
|
+
const factory = version2factory[version];
|
|
37
|
+
if (factory === undefined) {
|
|
38
|
+
const candidateVersions = Object.keys(version2factory);
|
|
39
|
+
throw new Error(`language ${name} with key=${key} and version=${version} not known${candidateVersions.length > 0 ? `- candidate version${candidateVersions.length > 1 ? `s` : ``}: ${candidateVersions.join(", ")}` : ``}`);
|
|
40
|
+
}
|
|
41
|
+
return factory(classifier, id);
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +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;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAA8B,EAAE,WAA0B,EAAmB,EAAE;IAC9G,qBAAqB;IACrB,MAAM,2BAA2B,GAA8D,EAAE,CAAA;IACjG,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACnC,MAAM,EAAC,GAAG,EAAE,OAAO,EAAC,GAAG,YAAY,CAAC,QAAQ,CAAA;QAC5C,MAAM,eAAe,GAAG,UAAU,CAAC,2BAA2B,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChF,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;QACzE,yFAAyF;IACjG,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE;QACtB,MAAM,EAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,UAAU,CAAC,QAAQ,CAAA;QAChD,MAAM,eAAe,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAA;QACxD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,YAAY,CAAC,CAAA;QACjE,CAAC;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACtD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,aAAa,GAAG,gBAAgB,OAAO,aAAa,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;QAC/N,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC,CAAA;AACL,CAAC,CAAA"}
|
package/dist/id-mapping.d.ts
CHANGED
|
@@ -15,6 +15,9 @@ export declare class IdMapping {
|
|
|
15
15
|
fromId(id: LionWebId): INodeBase;
|
|
16
16
|
tryFromId: (id: LionWebId) => (INodeBase | undefined);
|
|
17
17
|
fromRefId: (idOrUnresolved: IdOrUnresolved) => SingleRef<INodeBase>;
|
|
18
|
+
/**
|
|
19
|
+
* Updates this {@link IdMapping} with the given `node` *and all its descendants* (recursively).
|
|
20
|
+
*/
|
|
18
21
|
updateWith(node: INodeBase): void;
|
|
19
22
|
}
|
|
20
23
|
export {};
|
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;AAEtC,KAAK,SAAS,GAAG;IAAE,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAA;AAG/C;;;;GAIG;AACH,qBAAa,SAAS;IAElB,SAAS,EAAE,SAAS,CAAC;gBACT,SAAS,EAAE,SAAS;IAKhC,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS;IAOhC,SAAS,
|
|
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;AAEtC,KAAK,SAAS,GAAG;IAAE,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAA;AAG/C;;;;GAIG;AACH,qBAAa,SAAS;IAElB,SAAS,EAAE,SAAS,CAAC;gBACT,SAAS,EAAE,SAAS;IAKhC,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS;IAOhC,SAAS,GAAI,IAAI,SAAS,KAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAC7B;IAEvB,SAAS,GAAI,gBAAgB,cAAc,KAAG,SAAS,CAAC,SAAS,CAAC,CAGT;IAEzD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS;CAM7B"}
|
package/dist/id-mapping.js
CHANGED
|
@@ -35,6 +35,9 @@ export class IdMapping {
|
|
|
35
35
|
}
|
|
36
36
|
return this.nodesById[id];
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Updates this {@link IdMapping} with the given `node` *and all its descendants* (recursively).
|
|
40
|
+
*/
|
|
38
41
|
updateWith(node) {
|
|
39
42
|
this.nodesById[node.id] = node;
|
|
40
43
|
node.children // recurse into all children
|
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;AAQrE;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAGlB,YAAY,SAAoB;QAYhC,cAAS,GAAG,CAAC,EAAa,EAA2B,EAAE,CACnD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvB,cAAS,GAAG,CAAC,cAA8B,EAAwB,EAAE,CACjE,cAAc,KAAK,IAAI;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC;QAjBrD,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,SAAS,EAAC,CAAC;IACpC,CAAC;IACD,iEAAiE;IAEjE,MAAM,CAAC,EAAa;QAChB,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAUD,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAG,4BAA4B;aACvC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;CAEJ"}
|
|
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;AAQrE;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAGlB,YAAY,SAAoB;QAYhC,cAAS,GAAG,CAAC,EAAa,EAA2B,EAAE,CACnD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvB,cAAS,GAAG,CAAC,cAA8B,EAAwB,EAAE,CACjE,cAAc,KAAK,IAAI;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC;QAjBrD,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,SAAS,EAAC,CAAC;IACpC,CAAC;IACD,iEAAiE;IAEjE,MAAM,CAAC,EAAa;QAChB,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAUD;;OAEG;IACH,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAG,4BAA4B;aACvC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;CAEJ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./deltas/index.js";
|
|
|
4
4
|
export * from "./deserializer.js";
|
|
5
5
|
export { deepDuplicateWith } from "./duplicator.js";
|
|
6
6
|
export * from "./id-mapping.js";
|
|
7
|
+
export { combinedFactoryFor } from "./factory.js";
|
|
7
8
|
export * from "./LionCore_builtins.g.js";
|
|
8
9
|
export { serializeNodeBases } from "./serializer.js";
|
|
9
10
|
export { asTreeTextWith } from "./textualizer.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ export * from "./deltas/index.js";
|
|
|
20
20
|
export * from "./deserializer.js";
|
|
21
21
|
export { deepDuplicateWith } from "./duplicator.js";
|
|
22
22
|
export * from "./id-mapping.js";
|
|
23
|
+
export { combinedFactoryFor } from "./factory.js";
|
|
23
24
|
// skip linking.js: see comment there
|
|
24
25
|
export * from "./LionCore_builtins.g.js";
|
|
25
26
|
export { serializeNodeBases } from "./serializer.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,cAAc,2BAA2B,CAAC"}
|
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"}
|
|
@@ -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,EAAoB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/value-managers/annotations.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAC9D,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"}
|
|
@@ -50,8 +50,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
50
50
|
};
|
|
51
51
|
import { action, observable } from "mobx";
|
|
52
52
|
import { removeFromParent } from "../base-types.js";
|
|
53
|
-
import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta } from "../deltas/index.js";
|
|
54
53
|
import { checkIndex, ValueManager } from "./base.js";
|
|
54
|
+
import { AnnotationAddedDelta, AnnotationDeletedDelta, AnnotationMovedAndReplacedInSameParentDelta, AnnotationMovedFromOtherParentDelta, AnnotationMovedInSameParentDelta, AnnotationReplacedDelta } from "../deltas/index.js";
|
|
55
55
|
/**
|
|
56
56
|
* A value manager for annotations.
|
|
57
57
|
* Annotations (of any type) are simply contained by a parent (which is an {@link INodeBase}),
|
|
@@ -69,6 +69,8 @@ let AnnotationsValueManager = (() => {
|
|
|
69
69
|
let _move_decorators;
|
|
70
70
|
let _replaceAtIndexDirectly_decorators;
|
|
71
71
|
let _replaceAtIndex_decorators;
|
|
72
|
+
let _moveAndReplaceAtIndexDirectly_decorators;
|
|
73
|
+
let _moveAndReplaceAtIndex_decorators;
|
|
72
74
|
let _removeDirectly_decorators;
|
|
73
75
|
let _remove_decorators;
|
|
74
76
|
return _a = class AnnotationsValueManager extends _classSuper {
|
|
@@ -147,6 +149,29 @@ let AnnotationsValueManager = (() => {
|
|
|
147
149
|
const replacedAnnotation = this.replaceAtIndexDirectly(newAnnotation, index);
|
|
148
150
|
this.emitDelta(() => new AnnotationReplacedDelta(this.container, index, replacedAnnotation, newAnnotation));
|
|
149
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* @return the moved and replaced annotations, as an array tuple.
|
|
154
|
+
*/
|
|
155
|
+
moveAndReplaceAtIndexDirectly(oldIndex, newIndex) {
|
|
156
|
+
checkIndex(oldIndex, this.annotations.length, false);
|
|
157
|
+
checkIndex(newIndex, this.annotations.length, false);
|
|
158
|
+
if (oldIndex !== newIndex) {
|
|
159
|
+
const movedAnnotation = this.annotations[oldIndex];
|
|
160
|
+
const replacedAnnotation = this.annotations[newIndex];
|
|
161
|
+
this.annotations[newIndex] = movedAnnotation;
|
|
162
|
+
this.annotations.splice(oldIndex, 1);
|
|
163
|
+
replacedAnnotation.detach();
|
|
164
|
+
return [movedAnnotation, replacedAnnotation];
|
|
165
|
+
}
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
moveAndReplaceAtIndex(oldIndex, newIndex) {
|
|
169
|
+
const participants = this.moveAndReplaceAtIndexDirectly(oldIndex, newIndex);
|
|
170
|
+
if (participants !== undefined) {
|
|
171
|
+
const [movedAnnotation, replacedAnnotation] = participants;
|
|
172
|
+
this.emitDelta(() => new AnnotationMovedAndReplacedInSameParentDelta(this.container, oldIndex, newIndex, replacedAnnotation, movedAnnotation));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
150
175
|
removeDirectly(annotationToRemove) {
|
|
151
176
|
const index = this.annotations.indexOf(annotationToRemove);
|
|
152
177
|
if (index > -1) {
|
|
@@ -172,6 +197,8 @@ let AnnotationsValueManager = (() => {
|
|
|
172
197
|
_move_decorators = [action];
|
|
173
198
|
_replaceAtIndexDirectly_decorators = [action];
|
|
174
199
|
_replaceAtIndex_decorators = [action];
|
|
200
|
+
_moveAndReplaceAtIndexDirectly_decorators = [action];
|
|
201
|
+
_moveAndReplaceAtIndex_decorators = [action];
|
|
175
202
|
_removeDirectly_decorators = [action];
|
|
176
203
|
_remove_decorators = [action];
|
|
177
204
|
__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 +209,8 @@ let AnnotationsValueManager = (() => {
|
|
|
182
209
|
__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
210
|
__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
211
|
__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);
|
|
212
|
+
__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);
|
|
213
|
+
__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
214
|
__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
215
|
__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
216
|
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;AAEzC,OAAO,EAAa,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EACH,oBAAoB,EACpB,sBAAsB,EACtB,mCAAmC,EACnC,gCAAgC,EAChC,uBAAuB,EAC1B,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/value-managers/annotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -21,6 +21,7 @@ export declare abstract class SingleContainmentValueManager<T extends INodeBase>
|
|
|
21
21
|
isSet(): boolean;
|
|
22
22
|
setDirectly(newChild: T | undefined): void;
|
|
23
23
|
addDirectly(newChild: T): void;
|
|
24
|
+
replaceWith(newChild: T): void;
|
|
24
25
|
}
|
|
25
26
|
export declare class OptionalSingleContainmentValueManager<T extends INodeBase> extends SingleContainmentValueManager<T> {
|
|
26
27
|
constructor(containment: Containment, container: INodeBase);
|
|
@@ -43,8 +44,10 @@ export declare abstract class MultiContainmentValueManager<T extends INodeBase>
|
|
|
43
44
|
insertAtIndexDirectly(newChild: T, index: number): void;
|
|
44
45
|
insertAtIndex(newChild: T, index: number): void;
|
|
45
46
|
removeDirectly(childToRemove: T): number;
|
|
47
|
+
removeAtIndexDirectly(index: number): void;
|
|
46
48
|
moveDirectly(oldIndex: number, newIndex: number): T | undefined;
|
|
47
49
|
move(oldIndex: number, newIndex: number): void;
|
|
50
|
+
replaceAtIndex(movedChild: T, newIndex: number): void;
|
|
48
51
|
}
|
|
49
52
|
export declare class OptionalMultiContainmentValueManager<T extends INodeBase> extends MultiContainmentValueManager<T> {
|
|
50
53
|
constructor(containment: Containment, container: INodeBase);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containments.d.ts","sourceRoot":"","sources":["../../src/value-managers/containments.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"containments.d.ts","sourceRoot":"","sources":["../../src/value-managers/containments.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
50
50
|
};
|
|
51
51
|
import { action, observable } from "mobx";
|
|
52
52
|
import { removeFromParent } from "../base-types.js";
|
|
53
|
-
import { ChildAddedDelta, ChildDeletedDelta,
|
|
53
|
+
import { ChildAddedDelta, ChildDeletedDelta, ChildMovedAndReplacedFromOtherContainmentInSameParentDelta, ChildMovedAndReplacedInSameContainmentDelta, ChildMovedFromOtherContainmentDelta, ChildMovedInSameContainmentDelta, ChildReplacedDelta } from "../deltas/index.js";
|
|
54
54
|
import { checkIndex, FeatureValueManager } from "./base.js";
|
|
55
55
|
/**
|
|
56
56
|
* An instance manages the value of a particular containment feature on a particular instance of a classifier.
|
|
@@ -66,6 +66,7 @@ let SingleContainmentValueManager = (() => {
|
|
|
66
66
|
let _instanceExtraInitializers = [];
|
|
67
67
|
let _setDirectly_decorators;
|
|
68
68
|
let _addDirectly_decorators;
|
|
69
|
+
let _replaceWith_decorators;
|
|
69
70
|
return _a = class SingleContainmentValueManager extends _classSuper {
|
|
70
71
|
constructor(containment, container) {
|
|
71
72
|
super(containment, container);
|
|
@@ -84,17 +85,42 @@ let SingleContainmentValueManager = (() => {
|
|
|
84
85
|
addDirectly(newChild) {
|
|
85
86
|
const oldChild = this.getDirectly();
|
|
86
87
|
if (oldChild !== undefined) {
|
|
87
|
-
throw new Error(`replacing a child using addDirectly on a value manager for a single-valued containment isn't allowed`); //
|
|
88
|
+
throw new Error(`replacing a child using addDirectly on a value manager for a single-valued containment isn't allowed`); // TODO unit test this
|
|
88
89
|
}
|
|
89
90
|
this.child.set(newChild);
|
|
90
91
|
}
|
|
92
|
+
replaceWith(newChild) {
|
|
93
|
+
const oldChild = this.getDirectly();
|
|
94
|
+
if (oldChild === undefined) {
|
|
95
|
+
// not a proper replace, but an add-set => delegate to regular setter (— unfortunately, through necessarily “unfolding the hierarchy”):
|
|
96
|
+
if (this instanceof OptionalSingleContainmentValueManager) {
|
|
97
|
+
this.set(newChild);
|
|
98
|
+
}
|
|
99
|
+
if (this instanceof RequiredSingleContainmentValueManager) {
|
|
100
|
+
this.set(newChild);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
if (oldChild === newChild) {
|
|
105
|
+
// do nothing: nothing's changed
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
oldChild.detach();
|
|
109
|
+
this.setDirectly(newChild);
|
|
110
|
+
newChild.attachTo(this.container, this.feature);
|
|
111
|
+
this.emitDelta(() => new ChildReplacedDelta(this.container, this.feature, 0, oldChild, newChild));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
91
115
|
},
|
|
92
116
|
(() => {
|
|
93
117
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
94
118
|
_setDirectly_decorators = [action];
|
|
95
119
|
_addDirectly_decorators = [action];
|
|
120
|
+
_replaceWith_decorators = [action];
|
|
96
121
|
__esDecorate(_a, null, _setDirectly_decorators, { kind: "method", name: "setDirectly", static: false, private: false, access: { has: obj => "setDirectly" in obj, get: obj => obj.setDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
97
122
|
__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);
|
|
123
|
+
__esDecorate(_a, null, _replaceWith_decorators, { kind: "method", name: "replaceWith", static: false, private: false, access: { has: obj => "replaceWith" in obj, get: obj => obj.replaceWith }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
98
124
|
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
99
125
|
})(),
|
|
100
126
|
_a;
|
|
@@ -124,7 +150,7 @@ let OptionalSingleContainmentValueManager = (() => {
|
|
|
124
150
|
if (newChild.parent && newChild.containment) {
|
|
125
151
|
const oldParent = newChild.parent;
|
|
126
152
|
removeFromParent(oldParent, newChild);
|
|
127
|
-
this.emitDelta(() => new
|
|
153
|
+
this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, newChild.containment, 0, this.container, this.feature, 0, newChild));
|
|
128
154
|
}
|
|
129
155
|
else {
|
|
130
156
|
this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
|
|
@@ -197,7 +223,7 @@ let RequiredSingleContainmentValueManager = (() => {
|
|
|
197
223
|
if (newChild.parent && newChild.containment) {
|
|
198
224
|
const oldParent = newChild.parent;
|
|
199
225
|
removeFromParent(oldParent, newChild);
|
|
200
|
-
this.emitDelta(() => new
|
|
226
|
+
this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(oldParent, newChild.containment, 0, this.container, this.feature, 0, newChild));
|
|
201
227
|
}
|
|
202
228
|
else {
|
|
203
229
|
this.emitDelta(() => new ChildAddedDelta(this.container, this.feature, 0, newChild));
|
|
@@ -249,8 +275,10 @@ let MultiContainmentValueManager = (() => {
|
|
|
249
275
|
let _insertAtIndexDirectly_decorators;
|
|
250
276
|
let _insertAtIndex_decorators;
|
|
251
277
|
let _removeDirectly_decorators;
|
|
278
|
+
let _removeAtIndexDirectly_decorators;
|
|
252
279
|
let _moveDirectly_decorators;
|
|
253
280
|
let _move_decorators;
|
|
281
|
+
let _replaceAtIndex_decorators;
|
|
254
282
|
return _a = class MultiContainmentValueManager extends _classSuper {
|
|
255
283
|
constructor(containment, container) {
|
|
256
284
|
super(containment, container);
|
|
@@ -283,20 +311,24 @@ let MultiContainmentValueManager = (() => {
|
|
|
283
311
|
}
|
|
284
312
|
else {
|
|
285
313
|
const oldIndex = removeFromParent(newChild.parent, newChild);
|
|
286
|
-
this.emitDelta(() => new
|
|
314
|
+
this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(newChild.parent, newChild.containment, oldIndex, this.container, this.containment, index, newChild));
|
|
287
315
|
newChild.detach();
|
|
288
316
|
}
|
|
289
317
|
newChild.attachTo(this.container, this.containment);
|
|
290
318
|
}
|
|
291
319
|
removeDirectly(childToRemove) {
|
|
292
320
|
const children = this.getDirectly();
|
|
293
|
-
const index = children.
|
|
321
|
+
const index = children.indexOf(childToRemove);
|
|
294
322
|
if (index > -1) {
|
|
295
323
|
children.splice(index, 1);
|
|
296
324
|
return index;
|
|
297
325
|
}
|
|
298
326
|
return -1;
|
|
299
327
|
}
|
|
328
|
+
removeAtIndexDirectly(index) {
|
|
329
|
+
checkIndex(index, this.children.length, false);
|
|
330
|
+
this.getDirectly().splice(index, 1);
|
|
331
|
+
}
|
|
300
332
|
moveDirectly(oldIndex, newIndex) {
|
|
301
333
|
checkIndex(oldIndex, this.children.length, false);
|
|
302
334
|
checkIndex(newIndex, this.children.length, false);
|
|
@@ -313,6 +345,40 @@ let MultiContainmentValueManager = (() => {
|
|
|
313
345
|
this.emitDelta(() => new ChildMovedInSameContainmentDelta(this.container, this.containment, oldIndex, newIndex, child));
|
|
314
346
|
}
|
|
315
347
|
}
|
|
348
|
+
replaceAtIndex(movedChild, newIndex) {
|
|
349
|
+
checkIndex(newIndex, this.children.length, false);
|
|
350
|
+
const replacedChild = this.children[newIndex];
|
|
351
|
+
if (replacedChild === movedChild) {
|
|
352
|
+
// do nothing: nothing's changed
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
this.children.splice(newIndex, 1, movedChild);
|
|
356
|
+
if (replacedChild.parent) {
|
|
357
|
+
const oldValueManager = replacedChild.parent.getContainmentValueManager(replacedChild.containment);
|
|
358
|
+
const oldIndex = oldValueManager instanceof SingleContainmentValueManager
|
|
359
|
+
? 0
|
|
360
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
361
|
+
: oldValueManager.children.indexOf(replacedChild);
|
|
362
|
+
replacedChild.detach();
|
|
363
|
+
if (replacedChild.parent === movedChild.parent) {
|
|
364
|
+
if (replacedChild.containment === movedChild.containment) {
|
|
365
|
+
this.emitDelta(() => new ChildMovedAndReplacedInSameContainmentDelta(this.container, this.containment, oldIndex, newIndex, movedChild, replacedChild));
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
this.emitDelta(() => new ChildMovedAndReplacedFromOtherContainmentInSameParentDelta(this.container, replacedChild.containment, oldIndex, this.containment, newIndex, movedChild, replacedChild));
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
this.emitDelta(() => new ChildMovedFromOtherContainmentDelta(replacedChild.parent, replacedChild.containment, oldIndex, this.container, this.containment, newIndex, movedChild));
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
// not a move+replace, but a regular replace instead:
|
|
377
|
+
this.emitDelta(() => new ChildReplacedDelta(this.container, this.containment, newIndex, replacedChild, movedChild));
|
|
378
|
+
}
|
|
379
|
+
movedChild.attachTo(this.container, this.containment);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
316
382
|
},
|
|
317
383
|
(() => {
|
|
318
384
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
@@ -321,15 +387,19 @@ let MultiContainmentValueManager = (() => {
|
|
|
321
387
|
_insertAtIndexDirectly_decorators = [action];
|
|
322
388
|
_insertAtIndex_decorators = [action];
|
|
323
389
|
_removeDirectly_decorators = [action];
|
|
390
|
+
_removeAtIndexDirectly_decorators = [action];
|
|
324
391
|
_moveDirectly_decorators = [action];
|
|
325
392
|
_move_decorators = [action];
|
|
393
|
+
_replaceAtIndex_decorators = [action];
|
|
326
394
|
__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);
|
|
327
395
|
__esDecorate(_a, null, _add_decorators, { kind: "method", name: "add", static: false, private: false, access: { has: obj => "add" in obj, get: obj => obj.add }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
328
396
|
__esDecorate(_a, null, _insertAtIndexDirectly_decorators, { kind: "method", name: "insertAtIndexDirectly", static: false, private: false, access: { has: obj => "insertAtIndexDirectly" in obj, get: obj => obj.insertAtIndexDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
329
397
|
__esDecorate(_a, null, _insertAtIndex_decorators, { kind: "method", name: "insertAtIndex", static: false, private: false, access: { has: obj => "insertAtIndex" in obj, get: obj => obj.insertAtIndex }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
330
398
|
__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);
|
|
399
|
+
__esDecorate(_a, null, _removeAtIndexDirectly_decorators, { kind: "method", name: "removeAtIndexDirectly", static: false, private: false, access: { has: obj => "removeAtIndexDirectly" in obj, get: obj => obj.removeAtIndexDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
331
400
|
__esDecorate(_a, null, _moveDirectly_decorators, { kind: "method", name: "moveDirectly", static: false, private: false, access: { has: obj => "moveDirectly" in obj, get: obj => obj.moveDirectly }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
332
401
|
__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);
|
|
402
|
+
__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);
|
|
333
403
|
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
334
404
|
})(),
|
|
335
405
|
_a;
|
|
@@ -348,7 +418,7 @@ let OptionalMultiContainmentValueManager = (() => {
|
|
|
348
418
|
}
|
|
349
419
|
remove(childToRemove) {
|
|
350
420
|
const children = this.getDirectly();
|
|
351
|
-
const index = children.
|
|
421
|
+
const index = children.indexOf(childToRemove);
|
|
352
422
|
if (index > -1) {
|
|
353
423
|
children.splice(index, 1);
|
|
354
424
|
childToRemove.detach();
|
|
@@ -385,7 +455,7 @@ let RequiredMultiContainmentValueManager = (() => {
|
|
|
385
455
|
}
|
|
386
456
|
remove(childToRemove) {
|
|
387
457
|
const children = this.getDirectly();
|
|
388
|
-
const index = children.
|
|
458
|
+
const index = children.indexOf(childToRemove);
|
|
389
459
|
if (index > -1) {
|
|
390
460
|
if (children.length === 1) {
|
|
391
461
|
this.throwOnUnset();
|