@shapediver/viewer.shared.node-tree 3.16.8 → 3.16.9
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/implementation/AbstractTreeNodeData.d.ts +33 -33
- package/dist/implementation/AbstractTreeNodeData.js +81 -81
- package/dist/implementation/AbstractTreeNodeData.js.map +1 -1
- package/dist/implementation/Tree.d.ts +13 -13
- package/dist/implementation/Tree.js +115 -115
- package/dist/implementation/Tree.js.map +1 -1
- package/dist/implementation/TreeNode.d.ts +78 -78
- package/dist/implementation/TreeNode.js +432 -432
- package/dist/implementation/TreeNode.js.map +1 -1
- package/dist/implementation/data/AnimationData.d.ts +32 -32
- package/dist/implementation/data/AnimationData.js +290 -290
- package/dist/implementation/data/AnimationData.js.map +1 -1
- package/dist/implementation/data/ChunkData.d.ts +14 -14
- package/dist/implementation/data/ChunkData.js +46 -46
- package/dist/implementation/data/ChunkData.js.map +1 -1
- package/dist/implementation/data/CustomData.d.ts +24 -24
- package/dist/implementation/data/CustomData.js +50 -50
- package/dist/implementation/data/GeometryData.d.ts +100 -100
- package/dist/implementation/data/GeometryData.js +326 -326
- package/dist/implementation/data/GeometryData.js.map +1 -1
- package/dist/implementation/data/HTMLElementAnchorData.d.ts +102 -102
- package/dist/implementation/data/HTMLElementAnchorData.js +273 -273
- package/dist/implementation/data/HTMLElementAnchorData.js.map +1 -1
- package/dist/implementation/data/InstanceData.d.ts +21 -21
- package/dist/implementation/data/InstanceData.js +58 -58
- package/dist/implementation/material/AbstractMaterialData.d.ts +68 -68
- package/dist/implementation/material/AbstractMaterialData.js +224 -224
- package/dist/implementation/material/MapData.d.ts +53 -53
- package/dist/implementation/material/MapData.js +190 -190
- package/dist/implementation/material/MaterialBasicLineData.d.ts +14 -14
- package/dist/implementation/material/MaterialBasicLineData.js +90 -90
- package/dist/implementation/material/MaterialGemData.d.ts +46 -46
- package/dist/implementation/material/MaterialGemData.js +288 -288
- package/dist/implementation/material/MaterialLambertData.d.ts +21 -21
- package/dist/implementation/material/MaterialLambertData.js +146 -146
- package/dist/implementation/material/MaterialMultiPointData.d.ts +99 -99
- package/dist/implementation/material/MaterialMultiPointData.js +650 -650
- package/dist/implementation/material/MaterialPhongData.d.ts +25 -25
- package/dist/implementation/material/MaterialPhongData.js +170 -170
- package/dist/implementation/material/MaterialPointData.d.ts +19 -19
- package/dist/implementation/material/MaterialPointData.js +131 -131
- package/dist/implementation/material/MaterialShadowData.d.ts +14 -14
- package/dist/implementation/material/MaterialShadowData.js +35 -35
- package/dist/implementation/material/MaterialSpecularGlossinessData.d.ts +27 -27
- package/dist/implementation/material/MaterialSpecularGlossinessData.js +179 -179
- package/dist/implementation/material/MaterialStandardData.d.ts +75 -75
- package/dist/implementation/material/MaterialStandardData.js +467 -467
- package/dist/implementation/material/MaterialUnlitData.d.ts +17 -17
- package/dist/implementation/material/MaterialUnlitData.js +119 -119
- package/dist/implementation/material/MaterialVariantsData.d.ts +15 -15
- package/dist/implementation/material/MaterialVariantsData.js +61 -61
- package/dist/implementation/material/MaterialVariantsData.js.map +1 -1
- package/dist/implementation/sdtf/SDTFAttributesData.d.ts +22 -22
- package/dist/implementation/sdtf/SDTFAttributesData.js +99 -99
- package/dist/implementation/sdtf/SDTFAttributesData.js.map +1 -1
- package/dist/implementation/sdtf/SDTFItemData.d.ts +18 -18
- package/dist/implementation/sdtf/SDTFItemData.js +59 -59
- package/dist/implementation/sdtf/SDTFItemData.js.map +1 -1
- package/dist/implementation/sdtf/SDTFOverviewData.d.ts +12 -12
- package/dist/implementation/sdtf/SDTFOverviewData.js +106 -106
- package/dist/implementation/sdtf/SDTFOverviewData.js.map +1 -1
- package/dist/index.d.ts +35 -35
- package/dist/index.js +59 -59
- package/package.json +6 -6
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { ITreeNodeData } from "@shapediver/viewer.shared.types";
|
|
2
|
-
export declare abstract class AbstractTreeNodeData implements ITreeNodeData {
|
|
3
|
-
#private;
|
|
4
|
-
/**
|
|
5
|
-
* Creates a tree node data object.
|
|
6
|
-
*
|
|
7
|
-
* @param id Id of this data object
|
|
8
|
-
*/
|
|
9
|
-
constructor(id?: string, version?: string);
|
|
10
|
-
get convertedObject(): {
|
|
11
|
-
[key: string]: unknown;
|
|
12
|
-
};
|
|
13
|
-
set convertedObject(value: {
|
|
14
|
-
[key: string]: unknown;
|
|
15
|
-
});
|
|
16
|
-
get id(): string;
|
|
17
|
-
get parentsUpdateVersions(): {
|
|
18
|
-
[key: string]: () => void;
|
|
19
|
-
};
|
|
20
|
-
get updateCallback(): ((newVersion: string, oldVersion: string) => void) | null;
|
|
21
|
-
set updateCallback(value: ((newVersion: string, oldVersion: string) => void) | null);
|
|
22
|
-
get updateCallbackConvertedObject(): ((newObj: unknown, oldObj: unknown, viewport: string) => void) | null;
|
|
23
|
-
set updateCallbackConvertedObject(value: ((newObj: unknown, oldObj: unknown, viewport: string) => void) | null);
|
|
24
|
-
get version(): string;
|
|
25
|
-
/**
|
|
26
|
-
* Clones the tree node data.
|
|
27
|
-
*/
|
|
28
|
-
clone(): ITreeNodeData;
|
|
29
|
-
/**
|
|
30
|
-
* Update the version
|
|
31
|
-
*/
|
|
32
|
-
updateVersion(): void;
|
|
33
|
-
}
|
|
1
|
+
import { ITreeNodeData } from "@shapediver/viewer.shared.types";
|
|
2
|
+
export declare abstract class AbstractTreeNodeData implements ITreeNodeData {
|
|
3
|
+
#private;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a tree node data object.
|
|
6
|
+
*
|
|
7
|
+
* @param id Id of this data object
|
|
8
|
+
*/
|
|
9
|
+
constructor(id?: string, version?: string);
|
|
10
|
+
get convertedObject(): {
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
set convertedObject(value: {
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
});
|
|
16
|
+
get id(): string;
|
|
17
|
+
get parentsUpdateVersions(): {
|
|
18
|
+
[key: string]: () => void;
|
|
19
|
+
};
|
|
20
|
+
get updateCallback(): ((newVersion: string, oldVersion: string) => void) | null;
|
|
21
|
+
set updateCallback(value: ((newVersion: string, oldVersion: string) => void) | null);
|
|
22
|
+
get updateCallbackConvertedObject(): ((newObj: unknown, oldObj: unknown, viewport: string) => void) | null;
|
|
23
|
+
set updateCallbackConvertedObject(value: ((newObj: unknown, oldObj: unknown, viewport: string) => void) | null);
|
|
24
|
+
get version(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Clones the tree node data.
|
|
27
|
+
*/
|
|
28
|
+
clone(): ITreeNodeData;
|
|
29
|
+
/**
|
|
30
|
+
* Update the version
|
|
31
|
+
*/
|
|
32
|
+
updateVersion(): void;
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=AbstractTreeNodeData.d.ts.map
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _AbstractTreeNodeData_id, _AbstractTreeNodeData_uuidGenerator, _AbstractTreeNodeData_convertedObject, _AbstractTreeNodeData_parentsUpdateVersions, _AbstractTreeNodeData_updateCallback, _AbstractTreeNodeData_updateCallbackConvertedObject, _AbstractTreeNodeData_version;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AbstractTreeNodeData = void 0;
|
|
16
|
-
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
17
|
-
class AbstractTreeNodeData {
|
|
18
|
-
/**
|
|
19
|
-
* Creates a tree node data object.
|
|
20
|
-
*
|
|
21
|
-
* @param id Id of this data object
|
|
22
|
-
*/
|
|
23
|
-
constructor(id, version) {
|
|
24
|
-
_AbstractTreeNodeData_id.set(this, void 0);
|
|
25
|
-
_AbstractTreeNodeData_uuidGenerator.set(this, viewer_shared_services_1.UuidGenerator.instance);
|
|
26
|
-
_AbstractTreeNodeData_convertedObject.set(this, {});
|
|
27
|
-
_AbstractTreeNodeData_parentsUpdateVersions.set(this, {});
|
|
28
|
-
_AbstractTreeNodeData_updateCallback.set(this, null);
|
|
29
|
-
_AbstractTreeNodeData_updateCallbackConvertedObject.set(this, null);
|
|
30
|
-
_AbstractTreeNodeData_version.set(this, void 0);
|
|
31
|
-
__classPrivateFieldSet(this, _AbstractTreeNodeData_id, id || __classPrivateFieldGet(this, _AbstractTreeNodeData_uuidGenerator, "f").create(), "f");
|
|
32
|
-
__classPrivateFieldSet(this, _AbstractTreeNodeData_version, version || __classPrivateFieldGet(this, _AbstractTreeNodeData_uuidGenerator, "f").create(), "f");
|
|
33
|
-
}
|
|
34
|
-
get convertedObject() {
|
|
35
|
-
return __classPrivateFieldGet(this, _AbstractTreeNodeData_convertedObject, "f");
|
|
36
|
-
}
|
|
37
|
-
set convertedObject(value) {
|
|
38
|
-
__classPrivateFieldSet(this, _AbstractTreeNodeData_convertedObject, value, "f");
|
|
39
|
-
}
|
|
40
|
-
get id() {
|
|
41
|
-
return __classPrivateFieldGet(this, _AbstractTreeNodeData_id, "f");
|
|
42
|
-
}
|
|
43
|
-
get parentsUpdateVersions() {
|
|
44
|
-
return __classPrivateFieldGet(this, _AbstractTreeNodeData_parentsUpdateVersions, "f");
|
|
45
|
-
}
|
|
46
|
-
get updateCallback() {
|
|
47
|
-
return __classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallback, "f");
|
|
48
|
-
}
|
|
49
|
-
set updateCallback(value) {
|
|
50
|
-
__classPrivateFieldSet(this, _AbstractTreeNodeData_updateCallback, value, "f");
|
|
51
|
-
}
|
|
52
|
-
get updateCallbackConvertedObject() {
|
|
53
|
-
return __classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallbackConvertedObject, "f");
|
|
54
|
-
}
|
|
55
|
-
set updateCallbackConvertedObject(value) {
|
|
56
|
-
__classPrivateFieldSet(this, _AbstractTreeNodeData_updateCallbackConvertedObject, value, "f");
|
|
57
|
-
}
|
|
58
|
-
get version() {
|
|
59
|
-
return __classPrivateFieldGet(this, _AbstractTreeNodeData_version, "f");
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Clones the tree node data.
|
|
63
|
-
*/
|
|
64
|
-
clone() {
|
|
65
|
-
const clone = new this.constructor();
|
|
66
|
-
return clone;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Update the version
|
|
70
|
-
*/
|
|
71
|
-
updateVersion() {
|
|
72
|
-
const oldVersion = __classPrivateFieldGet(this, _AbstractTreeNodeData_version, "f");
|
|
73
|
-
__classPrivateFieldSet(this, _AbstractTreeNodeData_version, __classPrivateFieldGet(this, _AbstractTreeNodeData_uuidGenerator, "f").create(), "f");
|
|
74
|
-
// notify all parents about the version change
|
|
75
|
-
Object.values(__classPrivateFieldGet(this, _AbstractTreeNodeData_parentsUpdateVersions, "f")).forEach((cb) => cb());
|
|
76
|
-
if (__classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallback, "f"))
|
|
77
|
-
__classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallback, "f").call(this, __classPrivateFieldGet(this, _AbstractTreeNodeData_version, "f"), oldVersion);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.AbstractTreeNodeData = AbstractTreeNodeData;
|
|
81
|
-
_AbstractTreeNodeData_id = new WeakMap(), _AbstractTreeNodeData_uuidGenerator = new WeakMap(), _AbstractTreeNodeData_convertedObject = new WeakMap(), _AbstractTreeNodeData_parentsUpdateVersions = new WeakMap(), _AbstractTreeNodeData_updateCallback = new WeakMap(), _AbstractTreeNodeData_updateCallbackConvertedObject = new WeakMap(), _AbstractTreeNodeData_version = new WeakMap();
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var _AbstractTreeNodeData_id, _AbstractTreeNodeData_uuidGenerator, _AbstractTreeNodeData_convertedObject, _AbstractTreeNodeData_parentsUpdateVersions, _AbstractTreeNodeData_updateCallback, _AbstractTreeNodeData_updateCallbackConvertedObject, _AbstractTreeNodeData_version;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AbstractTreeNodeData = void 0;
|
|
16
|
+
const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
|
|
17
|
+
class AbstractTreeNodeData {
|
|
18
|
+
/**
|
|
19
|
+
* Creates a tree node data object.
|
|
20
|
+
*
|
|
21
|
+
* @param id Id of this data object
|
|
22
|
+
*/
|
|
23
|
+
constructor(id, version) {
|
|
24
|
+
_AbstractTreeNodeData_id.set(this, void 0);
|
|
25
|
+
_AbstractTreeNodeData_uuidGenerator.set(this, viewer_shared_services_1.UuidGenerator.instance);
|
|
26
|
+
_AbstractTreeNodeData_convertedObject.set(this, {});
|
|
27
|
+
_AbstractTreeNodeData_parentsUpdateVersions.set(this, {});
|
|
28
|
+
_AbstractTreeNodeData_updateCallback.set(this, null);
|
|
29
|
+
_AbstractTreeNodeData_updateCallbackConvertedObject.set(this, null);
|
|
30
|
+
_AbstractTreeNodeData_version.set(this, void 0);
|
|
31
|
+
__classPrivateFieldSet(this, _AbstractTreeNodeData_id, id || __classPrivateFieldGet(this, _AbstractTreeNodeData_uuidGenerator, "f").create(), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _AbstractTreeNodeData_version, version || __classPrivateFieldGet(this, _AbstractTreeNodeData_uuidGenerator, "f").create(), "f");
|
|
33
|
+
}
|
|
34
|
+
get convertedObject() {
|
|
35
|
+
return __classPrivateFieldGet(this, _AbstractTreeNodeData_convertedObject, "f");
|
|
36
|
+
}
|
|
37
|
+
set convertedObject(value) {
|
|
38
|
+
__classPrivateFieldSet(this, _AbstractTreeNodeData_convertedObject, value, "f");
|
|
39
|
+
}
|
|
40
|
+
get id() {
|
|
41
|
+
return __classPrivateFieldGet(this, _AbstractTreeNodeData_id, "f");
|
|
42
|
+
}
|
|
43
|
+
get parentsUpdateVersions() {
|
|
44
|
+
return __classPrivateFieldGet(this, _AbstractTreeNodeData_parentsUpdateVersions, "f");
|
|
45
|
+
}
|
|
46
|
+
get updateCallback() {
|
|
47
|
+
return __classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallback, "f");
|
|
48
|
+
}
|
|
49
|
+
set updateCallback(value) {
|
|
50
|
+
__classPrivateFieldSet(this, _AbstractTreeNodeData_updateCallback, value, "f");
|
|
51
|
+
}
|
|
52
|
+
get updateCallbackConvertedObject() {
|
|
53
|
+
return __classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallbackConvertedObject, "f");
|
|
54
|
+
}
|
|
55
|
+
set updateCallbackConvertedObject(value) {
|
|
56
|
+
__classPrivateFieldSet(this, _AbstractTreeNodeData_updateCallbackConvertedObject, value, "f");
|
|
57
|
+
}
|
|
58
|
+
get version() {
|
|
59
|
+
return __classPrivateFieldGet(this, _AbstractTreeNodeData_version, "f");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Clones the tree node data.
|
|
63
|
+
*/
|
|
64
|
+
clone() {
|
|
65
|
+
const clone = new this.constructor();
|
|
66
|
+
return clone;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Update the version
|
|
70
|
+
*/
|
|
71
|
+
updateVersion() {
|
|
72
|
+
const oldVersion = __classPrivateFieldGet(this, _AbstractTreeNodeData_version, "f");
|
|
73
|
+
__classPrivateFieldSet(this, _AbstractTreeNodeData_version, __classPrivateFieldGet(this, _AbstractTreeNodeData_uuidGenerator, "f").create(), "f");
|
|
74
|
+
// notify all parents about the version change
|
|
75
|
+
Object.values(__classPrivateFieldGet(this, _AbstractTreeNodeData_parentsUpdateVersions, "f")).forEach((cb) => cb());
|
|
76
|
+
if (__classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallback, "f"))
|
|
77
|
+
__classPrivateFieldGet(this, _AbstractTreeNodeData_updateCallback, "f").call(this, __classPrivateFieldGet(this, _AbstractTreeNodeData_version, "f"), oldVersion);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.AbstractTreeNodeData = AbstractTreeNodeData;
|
|
81
|
+
_AbstractTreeNodeData_id = new WeakMap(), _AbstractTreeNodeData_uuidGenerator = new WeakMap(), _AbstractTreeNodeData_convertedObject = new WeakMap(), _AbstractTreeNodeData_parentsUpdateVersions = new WeakMap(), _AbstractTreeNodeData_updateCallback = new WeakMap(), _AbstractTreeNodeData_updateCallbackConvertedObject = new WeakMap(), _AbstractTreeNodeData_version = new WeakMap();
|
|
82
82
|
//# sourceMappingURL=AbstractTreeNodeData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTreeNodeData.js","sourceRoot":"","sources":["../../src/implementation/AbstractTreeNodeData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+EAAiE;AAGjE,MAAsB,oBAAoB;IAezC;;;;OAIG;IACH,YAAY,EAAW,EAAE,OAAgB;
|
|
1
|
+
{"version":3,"file":"AbstractTreeNodeData.js","sourceRoot":"","sources":["../../src/implementation/AbstractTreeNodeData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+EAAiE;AAGjE,MAAsB,oBAAoB;IAezC;;;;OAIG;IACH,YAAY,EAAW,EAAE,OAAgB;QAnBhC,2CAAY;QACZ,8CAAgC,sCAAa,CAAC,QAAQ,EAAC;QAEhE,gDAA6C,EAAE,EAAC;QAChD,sDAEI,EAAE,EAAC;QACP,+CACC,IAAI,EAAC;QACN,8DAEU,IAAI,EAAC;QACf,gDAAiB;QAQhB,uBAAA,IAAI,4BAAO,EAAE,IAAI,uBAAA,IAAI,2CAAe,CAAC,MAAM,EAAE,MAAA,CAAC;QAC9C,uBAAA,IAAI,iCAAY,OAAO,IAAI,uBAAA,IAAI,2CAAe,CAAC,MAAM,EAAE,MAAA,CAAC;IACzD,CAAC;IAED,IAAW,eAAe;QACzB,OAAO,uBAAA,IAAI,6CAAiB,CAAC;IAC9B,CAAC;IAED,IAAW,eAAe,CAAC,KAA+B;QACzD,uBAAA,IAAI,yCAAoB,KAAK,MAAA,CAAC;IAC/B,CAAC;IAED,IAAW,EAAE;QACZ,OAAO,uBAAA,IAAI,gCAAI,CAAC;IACjB,CAAC;IAED,IAAW,qBAAqB;QAG/B,OAAO,uBAAA,IAAI,mDAAuB,CAAC;IACpC,CAAC;IAED,IAAW,cAAc;QAGxB,OAAO,uBAAA,IAAI,4CAAgB,CAAC;IAC7B,CAAC;IAED,IAAW,cAAc,CACxB,KAAgE;QAEhE,uBAAA,IAAI,wCAAmB,KAAK,MAAA,CAAC;IAC9B,CAAC;IAED,IAAW,6BAA6B;QAGvC,OAAO,uBAAA,IAAI,2DAA+B,CAAC;IAC5C,CAAC;IAED,IAAW,6BAA6B,CACvC,KAEO;QAEP,uBAAA,IAAI,uDAAkC,KAAK,MAAA,CAAC;IAC7C,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,uBAAA,IAAI,qCAAS,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,KAAK;QACX,MAAM,KAAK,GAAG,IAAK,IAAI,CAAC,WAAuC,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;OAEG;IACI,aAAa;QACnB,MAAM,UAAU,GAAG,uBAAA,IAAI,qCAAS,CAAC;QACjC,uBAAA,IAAI,iCAAY,uBAAA,IAAI,2CAAe,CAAC,MAAM,EAAE,MAAA,CAAC;QAE7C,8CAA8C;QAC9C,MAAM,CAAC,MAAM,CAAC,uBAAA,IAAI,mDAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,uBAAA,IAAI,4CAAgB;YACvB,uBAAA,IAAI,4CAAgB,MAApB,IAAI,EAAiB,uBAAA,IAAI,qCAAS,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;CACD;AA7FD,oDA6FC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { ITree, ITreeNode } from "@shapediver/viewer.shared.types";
|
|
2
|
-
export declare class Tree implements ITree {
|
|
3
|
-
#private;
|
|
4
|
-
private static _instance;
|
|
5
|
-
private constructor();
|
|
6
|
-
static get instance(): Tree;
|
|
7
|
-
get root(): ITreeNode;
|
|
8
|
-
addNode(node: ITreeNode, parent?: ITreeNode, root?: ITreeNode): boolean;
|
|
9
|
-
addNodeAtPath(node: ITreeNode, path?: string, root?: ITreeNode): boolean;
|
|
10
|
-
getNodeAtPath(path?: string, root?: ITreeNode): ITreeNode | null;
|
|
11
|
-
removeNode(node: ITreeNode, root?: ITreeNode): boolean;
|
|
12
|
-
removeNodeAtPath(path: string, root?: ITreeNode): boolean;
|
|
13
|
-
}
|
|
1
|
+
import { ITree, ITreeNode } from "@shapediver/viewer.shared.types";
|
|
2
|
+
export declare class Tree implements ITree {
|
|
3
|
+
#private;
|
|
4
|
+
private static _instance;
|
|
5
|
+
private constructor();
|
|
6
|
+
static get instance(): Tree;
|
|
7
|
+
get root(): ITreeNode;
|
|
8
|
+
addNode(node: ITreeNode, parent?: ITreeNode, root?: ITreeNode): boolean;
|
|
9
|
+
addNodeAtPath(node: ITreeNode, path?: string, root?: ITreeNode): boolean;
|
|
10
|
+
getNodeAtPath(path?: string, root?: ITreeNode): ITreeNode | null;
|
|
11
|
+
removeNode(node: ITreeNode, root?: ITreeNode): boolean;
|
|
12
|
+
removeNodeAtPath(path: string, root?: ITreeNode): boolean;
|
|
13
|
+
}
|
|
14
14
|
//# sourceMappingURL=Tree.d.ts.map
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
-
};
|
|
13
|
-
var _Tree_root;
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.Tree = void 0;
|
|
16
|
-
const TreeNode_1 = require("./TreeNode");
|
|
17
|
-
class Tree {
|
|
18
|
-
// #endregion Properties (2)
|
|
19
|
-
// #region Constructors (1)
|
|
20
|
-
constructor() {
|
|
21
|
-
// #region Properties (2)
|
|
22
|
-
_Tree_root.set(this, void 0);
|
|
23
|
-
__classPrivateFieldSet(this, _Tree_root, new TreeNode_1.TreeNode("root"), "f");
|
|
24
|
-
}
|
|
25
|
-
// #endregion Constructors (1)
|
|
26
|
-
// #region Public Static Getters And Setters (1)
|
|
27
|
-
static get instance() {
|
|
28
|
-
return this._instance || (this._instance = new this());
|
|
29
|
-
}
|
|
30
|
-
// #endregion Public Static Getters And Setters (1)
|
|
31
|
-
// #region Public Getters And Setters (1)
|
|
32
|
-
get root() {
|
|
33
|
-
return __classPrivateFieldGet(this, _Tree_root, "f");
|
|
34
|
-
}
|
|
35
|
-
// #endregion Public Getters And Setters (1)
|
|
36
|
-
// #region Public Methods (5)
|
|
37
|
-
addNode(node, parent = __classPrivateFieldGet(this, _Tree_root, "f"), root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
38
|
-
if (root === parent) {
|
|
39
|
-
root.addChild(node);
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
for (let i = 0; i < root.children.length; i++) {
|
|
43
|
-
const child = root.children[i];
|
|
44
|
-
if (child && this.addNode(node, parent, child)) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
addNodeAtPath(node, path = this.root.getPath(), root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
51
|
-
if (root.name === path) {
|
|
52
|
-
root.addChild(node);
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
const pathStart = path.substr(0, path.indexOf("."));
|
|
56
|
-
if (root.name === pathStart) {
|
|
57
|
-
const shortenedPath = path.substr(pathStart.length + 1, path.length);
|
|
58
|
-
for (let i = 0; i < root.children.length; i++) {
|
|
59
|
-
const child = root.children[i];
|
|
60
|
-
if (child && this.addNodeAtPath(node, shortenedPath, child)) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
getNodeAtPath(path = this.root.getPath(), root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
68
|
-
if (root.name === path)
|
|
69
|
-
return root;
|
|
70
|
-
const pathStart = path.substr(0, path.indexOf("."));
|
|
71
|
-
if (root.name === pathStart) {
|
|
72
|
-
const shortenedPath = path.substr(pathStart.length + 1, path.length);
|
|
73
|
-
for (let i = 0; i < root.children.length; i++) {
|
|
74
|
-
const child = root.children[i];
|
|
75
|
-
const res = this.getNodeAtPath(shortenedPath, child);
|
|
76
|
-
if (res)
|
|
77
|
-
return res;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
removeNode(node, root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
83
|
-
if (root.hasChild(node)) {
|
|
84
|
-
root.removeChild(node);
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
for (let i = 0; i < root.children.length; i++) {
|
|
88
|
-
const child = root.children[i];
|
|
89
|
-
if (child && this.removeNode(node, child)) {
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
removeNodeAtPath(path, root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
96
|
-
var _a;
|
|
97
|
-
if (root.name === path) {
|
|
98
|
-
(_a = root.parent) === null || _a === void 0 ? void 0 : _a.removeChild(root);
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
const pathStart = path.substr(0, path.indexOf("."));
|
|
102
|
-
if (root.name === pathStart) {
|
|
103
|
-
const shortenedPath = path.substr(pathStart.length + 1, path.length);
|
|
104
|
-
for (let i = 0; i < root.children.length; i++) {
|
|
105
|
-
const child = root.children[i];
|
|
106
|
-
if (child && this.removeNodeAtPath(shortenedPath, child)) {
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
exports.Tree = Tree;
|
|
115
|
-
_Tree_root = new WeakMap();
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _Tree_root;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Tree = void 0;
|
|
16
|
+
const TreeNode_1 = require("./TreeNode");
|
|
17
|
+
class Tree {
|
|
18
|
+
// #endregion Properties (2)
|
|
19
|
+
// #region Constructors (1)
|
|
20
|
+
constructor() {
|
|
21
|
+
// #region Properties (2)
|
|
22
|
+
_Tree_root.set(this, void 0);
|
|
23
|
+
__classPrivateFieldSet(this, _Tree_root, new TreeNode_1.TreeNode("root"), "f");
|
|
24
|
+
}
|
|
25
|
+
// #endregion Constructors (1)
|
|
26
|
+
// #region Public Static Getters And Setters (1)
|
|
27
|
+
static get instance() {
|
|
28
|
+
return this._instance || (this._instance = new this());
|
|
29
|
+
}
|
|
30
|
+
// #endregion Public Static Getters And Setters (1)
|
|
31
|
+
// #region Public Getters And Setters (1)
|
|
32
|
+
get root() {
|
|
33
|
+
return __classPrivateFieldGet(this, _Tree_root, "f");
|
|
34
|
+
}
|
|
35
|
+
// #endregion Public Getters And Setters (1)
|
|
36
|
+
// #region Public Methods (5)
|
|
37
|
+
addNode(node, parent = __classPrivateFieldGet(this, _Tree_root, "f"), root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
38
|
+
if (root === parent) {
|
|
39
|
+
root.addChild(node);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
for (let i = 0; i < root.children.length; i++) {
|
|
43
|
+
const child = root.children[i];
|
|
44
|
+
if (child && this.addNode(node, parent, child)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
addNodeAtPath(node, path = this.root.getPath(), root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
51
|
+
if (root.name === path) {
|
|
52
|
+
root.addChild(node);
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
const pathStart = path.substr(0, path.indexOf("."));
|
|
56
|
+
if (root.name === pathStart) {
|
|
57
|
+
const shortenedPath = path.substr(pathStart.length + 1, path.length);
|
|
58
|
+
for (let i = 0; i < root.children.length; i++) {
|
|
59
|
+
const child = root.children[i];
|
|
60
|
+
if (child && this.addNodeAtPath(node, shortenedPath, child)) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
getNodeAtPath(path = this.root.getPath(), root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
68
|
+
if (root.name === path)
|
|
69
|
+
return root;
|
|
70
|
+
const pathStart = path.substr(0, path.indexOf("."));
|
|
71
|
+
if (root.name === pathStart) {
|
|
72
|
+
const shortenedPath = path.substr(pathStart.length + 1, path.length);
|
|
73
|
+
for (let i = 0; i < root.children.length; i++) {
|
|
74
|
+
const child = root.children[i];
|
|
75
|
+
const res = this.getNodeAtPath(shortenedPath, child);
|
|
76
|
+
if (res)
|
|
77
|
+
return res;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
removeNode(node, root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
83
|
+
if (root.hasChild(node)) {
|
|
84
|
+
root.removeChild(node);
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
for (let i = 0; i < root.children.length; i++) {
|
|
88
|
+
const child = root.children[i];
|
|
89
|
+
if (child && this.removeNode(node, child)) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
removeNodeAtPath(path, root = __classPrivateFieldGet(this, _Tree_root, "f")) {
|
|
96
|
+
var _a;
|
|
97
|
+
if (root.name === path) {
|
|
98
|
+
(_a = root.parent) === null || _a === void 0 ? void 0 : _a.removeChild(root);
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
const pathStart = path.substr(0, path.indexOf("."));
|
|
102
|
+
if (root.name === pathStart) {
|
|
103
|
+
const shortenedPath = path.substr(pathStart.length + 1, path.length);
|
|
104
|
+
for (let i = 0; i < root.children.length; i++) {
|
|
105
|
+
const child = root.children[i];
|
|
106
|
+
if (child && this.removeNodeAtPath(shortenedPath, child)) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.Tree = Tree;
|
|
115
|
+
_Tree_root = new WeakMap();
|
|
116
116
|
//# sourceMappingURL=Tree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../src/implementation/Tree.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yCAAoC;AAEpC,MAAa,IAAI;IAOhB,4BAA4B;IAE5B,2BAA2B;IAE3B;QAVA,yBAAyB;
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../src/implementation/Tree.ts"],"names":[],"mappings":"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"}
|