@limble/limble-tree 0.12.4 → 1.0.0-alpha.1
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/README.md +42 -149
- package/esm2020/lib/components/branch/branch.component.mjs +87 -0
- package/esm2020/lib/components/dropzone/dropzone.component.mjs +35 -0
- package/esm2020/lib/components/host-component.interface.mjs +2 -0
- package/esm2020/lib/components/node-component.interface.mjs +2 -0
- package/esm2020/lib/components/root/root.component.mjs +37 -0
- package/esm2020/lib/core/branch-options.interface.mjs +2 -0
- package/esm2020/lib/core/configuration/configuration.mjs +17 -0
- package/esm2020/lib/core/configuration/tree-options.interface.mjs +2 -0
- package/esm2020/lib/core/index.mjs +6 -0
- package/esm2020/lib/core/relationship.interface.mjs +2 -0
- package/esm2020/lib/core/tree-branch/tree-branch.mjs +246 -0
- package/esm2020/lib/core/tree-node-base.mjs +68 -0
- package/esm2020/lib/core/tree-root/tree-root.mjs +69 -0
- package/esm2020/lib/core/tree-service/tree.service.mjs +19 -0
- package/esm2020/lib/errors/index.mjs +2 -0
- package/esm2020/lib/errors/tree-error.mjs +3 -0
- package/esm2020/lib/events/drag/drag-end-event.mjs +28 -0
- package/esm2020/lib/events/drag/drag-start-event.mjs +12 -0
- package/esm2020/lib/events/drag/drop-event.mjs +20 -0
- package/esm2020/lib/events/drag/index.mjs +4 -0
- package/esm2020/lib/events/index.mjs +3 -0
- package/esm2020/lib/events/relational/graft-event.mjs +24 -0
- package/esm2020/lib/events/relational/index.mjs +4 -0
- package/esm2020/lib/events/relational/prune-event.mjs +24 -0
- package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +2 -0
- package/esm2020/lib/extras/collapse/collapse.mjs +33 -0
- package/esm2020/lib/extras/collapse/collapse.module.mjs +15 -0
- package/esm2020/lib/extras/collapse/collapse.service.mjs +20 -0
- package/esm2020/lib/extras/collapse/index.mjs +3 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +89 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +19 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +28 -0
- package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +47 -0
- package/esm2020/lib/extras/drag-and-drop/draggable.directive.mjs +30 -0
- package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +40 -0
- package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +176 -0
- package/esm2020/lib/extras/drag-and-drop/index.mjs +5 -0
- package/esm2020/lib/legacy/index.mjs +7 -0
- package/esm2020/lib/legacy/legacy-component-obj.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree-data.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree-options.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree.mjs +74 -0
- package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +20 -0
- package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
- package/esm2020/lib/limble-tree.module.mjs +21 -0
- package/esm2020/lib/structure/branchable.interface.mjs +2 -0
- package/esm2020/lib/structure/container-tree-node.interface.mjs +2 -0
- package/esm2020/lib/structure/content-container.interface.mjs +2 -0
- package/esm2020/lib/structure/event-conduit.interface.mjs +2 -0
- package/esm2020/lib/structure/graftable.interface.mjs +2 -0
- package/esm2020/lib/structure/index.mjs +12 -0
- package/esm2020/lib/structure/tree-branch-node.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-event.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-node.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-plot.mjs +2 -0
- package/esm2020/lib/structure/tree-relationship.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-root.node.interface.mjs +2 -0
- package/{esm2015/limble-limble-tree.js → esm2020/limble-limble-tree.mjs} +4 -4
- package/esm2020/public-api.mjs +12 -0
- package/esm2020/shared/assert.mjs +7 -0
- package/fesm2015/limble-limble-tree.mjs +1310 -0
- package/fesm2015/limble-limble-tree.mjs.map +1 -0
- package/fesm2020/limble-limble-tree.mjs +1300 -0
- package/fesm2020/limble-limble-tree.mjs.map +1 -0
- package/{limble-limble-tree.d.ts → index.d.ts} +5 -5
- package/lib/components/branch/branch.component.d.ts +26 -0
- package/lib/components/dropzone/dropzone.component.d.ts +13 -0
- package/lib/components/host-component.interface.d.ts +6 -0
- package/lib/components/node-component.interface.d.ts +5 -0
- package/lib/components/root/root.component.d.ts +14 -0
- package/lib/core/branch-options.interface.d.ts +14 -0
- package/lib/core/configuration/configuration.d.ts +11 -0
- package/lib/core/configuration/tree-options.interface.d.ts +35 -0
- package/lib/core/index.d.ts +5 -0
- package/lib/core/relationship.interface.d.ts +6 -0
- package/lib/core/tree-branch/tree-branch.d.ts +44 -0
- package/lib/core/tree-node-base.d.ts +26 -0
- package/lib/core/tree-root/tree-root.d.ts +28 -0
- package/lib/core/tree-service/tree.service.d.ts +9 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/tree-error.d.ts +2 -0
- package/lib/events/drag/drag-end-event.d.ts +25 -0
- package/lib/events/drag/drag-start-event.d.ts +8 -0
- package/lib/events/drag/drop-event.d.ts +16 -0
- package/lib/events/drag/index.d.ts +3 -0
- package/lib/events/index.d.ts +2 -0
- package/lib/events/relational/graft-event.d.ts +15 -0
- package/lib/events/relational/index.d.ts +3 -0
- package/lib/events/relational/prune-event.d.ts +15 -0
- package/lib/events/relational/relational-tree-event.interface.d.ts +6 -0
- package/lib/extras/collapse/collapse.d.ts +11 -0
- package/lib/extras/collapse/collapse.module.d.ts +6 -0
- package/lib/extras/collapse/collapse.service.d.ts +9 -0
- package/lib/extras/collapse/index.d.ts +2 -0
- package/lib/extras/drag-and-drop/drag-and-drop.d.ts +17 -0
- package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +8 -0
- package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +16 -0
- package/lib/extras/drag-and-drop/drag-state.d.ts +23 -0
- package/lib/extras/drag-and-drop/draggable.directive.d.ts +12 -0
- package/lib/{custom-event-bindings/dragover-no-change-detect.directive.d.ts → extras/drag-and-drop/dragover-no-change-detect.d.ts} +14 -14
- package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +28 -0
- package/lib/extras/drag-and-drop/index.d.ts +4 -0
- package/lib/legacy/index.d.ts +6 -0
- package/lib/legacy/legacy-component-obj.interface.d.ts +13 -0
- package/lib/legacy/legacy-tree-data.interface.d.ts +18 -0
- package/lib/legacy/legacy-tree-options.interface.d.ts +34 -0
- package/lib/legacy/legacy-tree.d.ts +14 -0
- package/lib/legacy/limble-tree-legacy.module.d.ts +8 -0
- package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +28 -0
- package/lib/limble-tree.module.d.ts +9 -14
- package/lib/structure/branchable.interface.d.ts +5 -0
- package/lib/structure/container-tree-node.interface.d.ts +3 -0
- package/lib/structure/content-container.interface.d.ts +3 -0
- package/lib/structure/event-conduit.interface.d.ts +6 -0
- package/lib/structure/graftable.interface.d.ts +6 -0
- package/lib/structure/index.d.ts +11 -0
- package/lib/structure/tree-branch-node.interface.d.ts +5 -0
- package/lib/structure/tree-event.interface.d.ts +5 -0
- package/lib/structure/tree-node.interface.d.ts +9 -0
- package/lib/structure/tree-plot.d.ts +1 -0
- package/lib/structure/tree-relationship.interface.d.ts +7 -0
- package/lib/structure/tree-root.node.interface.d.ts +2 -0
- package/package.json +24 -19
- package/public-api.d.ts +8 -3
- package/shared/assert.d.ts +1 -0
- package/bundles/limble-limble-tree.umd.js +0 -2910
- package/bundles/limble-limble-tree.umd.js.map +0 -1
- package/esm2015/lib/classes/Branch.js +0 -153
- package/esm2015/lib/classes/DropZone.js +0 -71
- package/esm2015/lib/classes/DropZoneLocation.js +0 -16
- package/esm2015/lib/custom-event-bindings/dragleave-no-change-detect.directive.js +0 -33
- package/esm2015/lib/custom-event-bindings/dragover-no-change-detect.directive.js +0 -39
- package/esm2015/lib/drop-zone/drop-zone.component.js +0 -81
- package/esm2015/lib/limble-tree-branch/limble-tree-branch.component.js +0 -116
- package/esm2015/lib/limble-tree-node/limble-tree-node.component.js +0 -484
- package/esm2015/lib/limble-tree-placeholder/limble-tree-placeholder.component.js +0 -75
- package/esm2015/lib/limble-tree-root/drop-zone.service.js +0 -377
- package/esm2015/lib/limble-tree-root/limble-tree-root.component.js +0 -178
- package/esm2015/lib/limble-tree-root/tree-construction-status.service.js +0 -33
- package/esm2015/lib/limble-tree-root/tree.service.js +0 -301
- package/esm2015/lib/limble-tree.module.js +0 -47
- package/esm2015/lib/singletons/component-creator.service.js +0 -19
- package/esm2015/lib/singletons/drag-state.service.js +0 -64
- package/esm2015/lib/singletons/global-events.service.js +0 -137
- package/esm2015/lib/util.js +0 -74
- package/esm2015/public-api.js +0 -6
- package/fesm2015/limble-limble-tree.js +0 -2209
- package/fesm2015/limble-limble-tree.js.map +0 -1
- package/lib/classes/Branch.d.ts +0 -26
- package/lib/classes/DropZone.d.ts +0 -27
- package/lib/classes/DropZoneLocation.d.ts +0 -9
- package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +0 -13
- package/lib/drop-zone/drop-zone.component.d.ts +0 -18
- package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +0 -28
- package/lib/limble-tree-node/limble-tree-node.component.d.ts +0 -53
- package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +0 -21
- package/lib/limble-tree-root/drop-zone.service.d.ts +0 -62
- package/lib/limble-tree-root/limble-tree-root.component.d.ts +0 -37
- package/lib/limble-tree-root/tree-construction-status.service.d.ts +0 -15
- package/lib/limble-tree-root/tree.service.d.ts +0 -132
- package/lib/singletons/component-creator.service.d.ts +0 -9
- package/lib/singletons/drag-state.service.d.ts +0 -35
- package/lib/singletons/global-events.service.d.ts +0 -13
- package/lib/util.d.ts +0 -13
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { assert } from "../../../shared/assert";
|
|
2
|
+
import { filter } from "rxjs";
|
|
3
|
+
import { GraftEvent } from "../../events/relational/graft-event";
|
|
4
|
+
import { PruneEvent } from "../../events/relational/prune-event";
|
|
5
|
+
import { createComponent, EnvironmentInjector } from "@angular/core";
|
|
6
|
+
import { BranchComponent } from "../../components/branch/branch.component";
|
|
7
|
+
import { TreeNodeBase } from "../tree-node-base";
|
|
8
|
+
import { TreeError } from "../../errors/tree-error";
|
|
9
|
+
import { dropzoneRenderer } from "../../extras/drag-and-drop/dropzone-renderer";
|
|
10
|
+
import { config } from "../configuration/configuration";
|
|
11
|
+
import { TreeRoot } from "..";
|
|
12
|
+
import { treeCollapser } from "../../extras/collapse/collapse";
|
|
13
|
+
export class TreeBranch {
|
|
14
|
+
constructor(parent, branchOptions) {
|
|
15
|
+
this.branchOptions = branchOptions;
|
|
16
|
+
this.detachedView = null;
|
|
17
|
+
this.treeNodeBase = new TreeNodeBase();
|
|
18
|
+
this.userlandComponent = this.branchOptions.component;
|
|
19
|
+
const parentBranchesContainer = parent.getContents().instance.branchesContainer;
|
|
20
|
+
assert(parentBranchesContainer !== undefined);
|
|
21
|
+
this.contents = createComponent(BranchComponent, {
|
|
22
|
+
environmentInjector: parentBranchesContainer.injector.get(EnvironmentInjector)
|
|
23
|
+
});
|
|
24
|
+
this.contents.instance.contentToHost = this.userlandComponent;
|
|
25
|
+
this.setIndentation(parent);
|
|
26
|
+
this.outputBindingSubscriptions = [];
|
|
27
|
+
this.instanceSubscriptions = this.getInstanceSubscriptions();
|
|
28
|
+
if (parent instanceof TreeBranch &&
|
|
29
|
+
parent.branchOptions.startCollapsed === true) {
|
|
30
|
+
treeCollapser.storePrecollapsedNode(parent, this);
|
|
31
|
+
this.detachedView = this.contents.hostView;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
parentBranchesContainer.insert(this.contents.hostView);
|
|
35
|
+
this.contents.changeDetectorRef.detectChanges();
|
|
36
|
+
this._parent = parent;
|
|
37
|
+
this.dispatch(new GraftEvent(this, {
|
|
38
|
+
parent: this._parent,
|
|
39
|
+
child: this,
|
|
40
|
+
index: this._parent.branches().length
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
branches() {
|
|
45
|
+
return this.treeNodeBase.branches();
|
|
46
|
+
}
|
|
47
|
+
deleteBranch(index) {
|
|
48
|
+
this.treeNodeBase.deleteBranch(index);
|
|
49
|
+
}
|
|
50
|
+
destroy() {
|
|
51
|
+
if (treeCollapser.isCollapsed(this)) {
|
|
52
|
+
treeCollapser.expand(this);
|
|
53
|
+
dropzoneRenderer.clearTreeFromRegistry(this);
|
|
54
|
+
}
|
|
55
|
+
this.branches().forEach((branch) => {
|
|
56
|
+
branch.destroy();
|
|
57
|
+
});
|
|
58
|
+
const parent = this._parent;
|
|
59
|
+
const index = this.index();
|
|
60
|
+
if (index !== undefined && parent !== undefined) {
|
|
61
|
+
const container = parent.getContents().instance.branchesContainer;
|
|
62
|
+
assert(container !== undefined);
|
|
63
|
+
container.remove(index);
|
|
64
|
+
parent.deleteBranch(index);
|
|
65
|
+
}
|
|
66
|
+
this.treeNodeBase.destroy();
|
|
67
|
+
this.instanceSubscriptions.forEach((sub) => {
|
|
68
|
+
sub.unsubscribe();
|
|
69
|
+
});
|
|
70
|
+
this.outputBindingSubscriptions.forEach((sub) => {
|
|
71
|
+
sub.unsubscribe();
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
dispatch(event) {
|
|
75
|
+
this.treeNodeBase.dispatch(event);
|
|
76
|
+
this._parent?.dispatch(event);
|
|
77
|
+
}
|
|
78
|
+
events() {
|
|
79
|
+
return this.treeNodeBase.events();
|
|
80
|
+
}
|
|
81
|
+
getBranch(index) {
|
|
82
|
+
return this.treeNodeBase.getBranch(index);
|
|
83
|
+
}
|
|
84
|
+
getContents() {
|
|
85
|
+
return this.contents;
|
|
86
|
+
}
|
|
87
|
+
graftTo(newParent, index) {
|
|
88
|
+
const ownIndex = this.index();
|
|
89
|
+
if (ownIndex !== undefined) {
|
|
90
|
+
this.prune();
|
|
91
|
+
}
|
|
92
|
+
this._parent = newParent;
|
|
93
|
+
const newIndex = index ?? newParent.branches().length;
|
|
94
|
+
this.reattachView(newIndex);
|
|
95
|
+
this.dispatch(new GraftEvent(this, {
|
|
96
|
+
parent: newParent,
|
|
97
|
+
child: this,
|
|
98
|
+
index: newIndex
|
|
99
|
+
}));
|
|
100
|
+
return newIndex;
|
|
101
|
+
}
|
|
102
|
+
grow(component, options) {
|
|
103
|
+
return new TreeBranch(this, { component, ...options });
|
|
104
|
+
}
|
|
105
|
+
index() {
|
|
106
|
+
if (!this._parent) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
const index = this._parent
|
|
110
|
+
.branches()
|
|
111
|
+
.findIndex((branch) => branch === this);
|
|
112
|
+
assert(index >= 0);
|
|
113
|
+
return index;
|
|
114
|
+
}
|
|
115
|
+
meta() {
|
|
116
|
+
return this.branchOptions.meta ?? {};
|
|
117
|
+
}
|
|
118
|
+
parent() {
|
|
119
|
+
return this._parent;
|
|
120
|
+
}
|
|
121
|
+
plot() {
|
|
122
|
+
return this.treeNodeBase.plot();
|
|
123
|
+
}
|
|
124
|
+
position() {
|
|
125
|
+
const index = this.index();
|
|
126
|
+
if (index === undefined) {
|
|
127
|
+
throw new TreeError("branch has no parent. Position cannot be determined.");
|
|
128
|
+
}
|
|
129
|
+
if (this._parent instanceof TreeBranch) {
|
|
130
|
+
const parentPosition = this._parent.position();
|
|
131
|
+
return [...parentPosition, index];
|
|
132
|
+
}
|
|
133
|
+
return [index];
|
|
134
|
+
}
|
|
135
|
+
prune() {
|
|
136
|
+
const parent = this._parent;
|
|
137
|
+
const index = this.index();
|
|
138
|
+
if (index === undefined || parent === undefined)
|
|
139
|
+
return;
|
|
140
|
+
const container = parent.getContents().instance.branchesContainer;
|
|
141
|
+
assert(container !== undefined);
|
|
142
|
+
this.detachedView = container.detach(index);
|
|
143
|
+
assert(this.detachedView !== null);
|
|
144
|
+
this.detachedView.detach();
|
|
145
|
+
this.dispatch(new PruneEvent(this, {
|
|
146
|
+
parent: parent,
|
|
147
|
+
child: this,
|
|
148
|
+
index: index
|
|
149
|
+
}));
|
|
150
|
+
this._parent = undefined;
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
153
|
+
root() {
|
|
154
|
+
const parent = this.parent();
|
|
155
|
+
if (parent === undefined) {
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
if (parent instanceof TreeBranch) {
|
|
159
|
+
return parent.root();
|
|
160
|
+
}
|
|
161
|
+
if (parent instanceof TreeRoot) {
|
|
162
|
+
return parent;
|
|
163
|
+
}
|
|
164
|
+
throw new Error("unexpected parent type");
|
|
165
|
+
}
|
|
166
|
+
traverse(callback) {
|
|
167
|
+
callback(this);
|
|
168
|
+
this.treeNodeBase.traverse(callback);
|
|
169
|
+
}
|
|
170
|
+
getContentCreatedSub() {
|
|
171
|
+
const instance = this.contents.instance;
|
|
172
|
+
return instance.contentCreated.subscribe((userlandComponentInstance) => {
|
|
173
|
+
for (const [key, value] of Object.entries(this.branchOptions.inputBindings ?? {})) {
|
|
174
|
+
userlandComponentInstance[key] = value;
|
|
175
|
+
}
|
|
176
|
+
for (const [key, value] of Object.entries(this.branchOptions.outputBindings ?? {})) {
|
|
177
|
+
this.outputBindingSubscriptions.push(userlandComponentInstance[key].subscribe(value));
|
|
178
|
+
}
|
|
179
|
+
userlandComponentInstance.treeBranch = this;
|
|
180
|
+
const dropzones = instance.dropzones;
|
|
181
|
+
if (!dropzones) {
|
|
182
|
+
throw new Error("dropzones not defined");
|
|
183
|
+
}
|
|
184
|
+
dropzoneRenderer.registerDropzones(dropzones, this);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
getInstanceSubscriptions() {
|
|
188
|
+
const droppedSub = this.contents.instance.dropped.subscribe((placement) => {
|
|
189
|
+
dropzoneRenderer.handleDrop(this, placement);
|
|
190
|
+
});
|
|
191
|
+
return [
|
|
192
|
+
this.getContentCreatedSub(),
|
|
193
|
+
this.getShowLowerZonesSub(),
|
|
194
|
+
this.getShowUpperZonesSub(),
|
|
195
|
+
droppedSub
|
|
196
|
+
];
|
|
197
|
+
}
|
|
198
|
+
getShowLowerZonesSub() {
|
|
199
|
+
const instance = this.contents.instance;
|
|
200
|
+
return instance.showDropzones
|
|
201
|
+
.pipe(filter((direction) => direction === "lower"))
|
|
202
|
+
.subscribe(() => {
|
|
203
|
+
const currentDropzoneDisplayed = dropzoneRenderer.getCurrentDisplay();
|
|
204
|
+
if (currentDropzoneDisplayed?.treeBranch === this &&
|
|
205
|
+
currentDropzoneDisplayed.direction === "lower") {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
dropzoneRenderer.showLowerZones(this);
|
|
209
|
+
instance.triggerChangeDetection();
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
getShowUpperZonesSub() {
|
|
213
|
+
const instance = this.contents.instance;
|
|
214
|
+
return instance.showDropzones
|
|
215
|
+
.pipe(filter((direction) => direction === "upper"))
|
|
216
|
+
.subscribe(() => {
|
|
217
|
+
const currentDropzoneDisplayed = dropzoneRenderer.getCurrentDisplay();
|
|
218
|
+
if (currentDropzoneDisplayed?.treeBranch === this &&
|
|
219
|
+
currentDropzoneDisplayed.direction === "upper") {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
dropzoneRenderer.showUpperZones(this);
|
|
223
|
+
instance.triggerChangeDetection();
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
reattachView(index) {
|
|
227
|
+
assert(this._parent !== undefined);
|
|
228
|
+
assert(this.detachedView !== null);
|
|
229
|
+
const container = this._parent.getContents().instance.branchesContainer;
|
|
230
|
+
assert(container !== undefined);
|
|
231
|
+
this.detachedView.reattach();
|
|
232
|
+
container.insert(this.detachedView, index);
|
|
233
|
+
this.detachedView = null;
|
|
234
|
+
}
|
|
235
|
+
setIndentation(parent) {
|
|
236
|
+
const root = parent.root();
|
|
237
|
+
assert(root !== undefined);
|
|
238
|
+
const options = config.getConfig(root);
|
|
239
|
+
const branchesContainerEl = this.contents.location.nativeElement
|
|
240
|
+
.getElementsByClassName("branches-container")
|
|
241
|
+
.item(0);
|
|
242
|
+
assert(branchesContainerEl instanceof HTMLElement);
|
|
243
|
+
branchesContainerEl.style.marginLeft = `${options?.indentation ?? 16}px`;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1icmFuY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1icmFuY2gvdHJlZS1icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHakUsT0FBTyxFQUVKLGVBQWUsRUFDZixtQkFBbUIsRUFHckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE1BQU0sT0FBTyxVQUFVO0lBcUJwQixZQUNHLE1BR0MsRUFDZSxhQUFtRDtRQUFuRCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0M7UUFQOUQsaUJBQVksR0FBbUIsSUFBSSxDQUFDO1FBU3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENB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Q0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWE7YUFDNUQsc0JBQXNCLENBQUMsb0JBQW9CLENBQUM7YUFDNUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1osTUFBTSxDQUFDLG1CQUFtQixZQUFZLFdBQVcsQ0FBQyxDQUFDO1FBQ25ELG1CQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsR0FBRyxPQUFPLEVBQUUsV0FBVyxJQUFJLEVBQUUsSUFBSSxDQUFDO0lBQzVFLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2VydCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvYXNzZXJ0XCI7XG5pbXBvcnQgeyBUcmVlUGxvdCB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvdHJlZS1wbG90XCI7XG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBHcmFmdEV2ZW50IH0gZnJvbSBcIi4uLy4uL2V2ZW50cy9yZWxhdGlvbmFsL2dyYWZ0LWV2ZW50XCI7XG5pbXBvcnQgeyBQcnVuZUV2ZW50IH0gZnJvbSBcIi4uLy4uL2V2ZW50cy9yZWxhdGlvbmFsL3BydW5lLWV2ZW50XCI7XG5pbXBvcnQgeyBUcmVlRXZlbnQgfSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlL3RyZWUtZXZlbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUcmVlQnJhbmNoTm9kZSB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvdHJlZS1icmFuY2gtbm9kZS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7XG4gICBDb21wb25lbnRSZWYsXG4gICBjcmVhdGVDb21wb25lbnQsXG4gICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgVHlwZSxcbiAgIFZpZXdSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJyYW5jaENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2JyYW5jaC9icmFuY2guY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb250YWluZXJUcmVlTm9kZSB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvY29udGFpbmVyLXRyZWUtbm9kZS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE5vZGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFRyZWVOb2RlQmFzZSB9IGZyb20gXCIuLi90cmVlLW5vZGUtYmFzZVwiO1xuaW1wb3J0IHsgVHJlZUVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9ycy90cmVlLWVycm9yXCI7XG5pbXBvcnQgeyBCcmFuY2hPcHRpb25zLCBGdWxsQnJhbmNoT3B0aW9ucyB9IGZyb20gXCIuLi9icmFuY2gtb3B0aW9ucy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IGRyb3B6b25lUmVuZGVyZXIgfSBmcm9tIFwiLi4vLi4vZXh0cmFzL2RyYWctYW5kLWRyb3AvZHJvcHpvbmUtcmVuZGVyZXJcIjtcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCIuLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IFRyZWVSb290IH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyB0cmVlQ29sbGFwc2VyIH0gZnJvbSBcIi4uLy4uL2V4dHJhcy9jb2xsYXBzZS9jb2xsYXBzZVwiO1xuXG5leHBvcnQgY2xhc3MgVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD5cbiAgIGltcGxlbWVudHNcbiAgICAgIFRyZWVCcmFuY2hOb2RlPFxuICAgICAgICAgQ29tcG9uZW50UmVmPEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD4+LFxuICAgICAgICAgVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4sXG4gICAgICAgICBDb21wb25lbnRSZWY8Tm9kZUNvbXBvbmVudD5cbiAgICAgID5cbntcbiAgIHByaXZhdGUgcmVhZG9ubHkgY29udGVudHM6IENvbXBvbmVudFJlZjxCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+PjtcbiAgIHByaXZhdGUgcmVhZG9ubHkgaW5zdGFuY2VTdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+O1xuICAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXRCaW5kaW5nU3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPjtcbiAgIHByaXZhdGUgX3BhcmVudDpcbiAgICAgIHwgQ29udGFpbmVyVHJlZU5vZGU8XG4gICAgICAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgICAgICAgVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD5cbiAgICAgICAgPlxuICAgICAgfCB1bmRlZmluZWQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IHRyZWVOb2RlQmFzZTogVHJlZU5vZGVCYXNlPFVzZXJsYW5kQ29tcG9uZW50PjtcbiAgIHByaXZhdGUgcmVhZG9ubHkgdXNlcmxhbmRDb21wb25lbnQ6IFR5cGU8VXNlcmxhbmRDb21wb25lbnQ+O1xuICAgcHJpdmF0ZSBkZXRhY2hlZFZpZXc6IFZpZXdSZWYgfCBudWxsID0gbnVsbDtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgcGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgICAgIFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+XG4gICAgICA+LFxuICAgICAgcHVibGljIHJlYWRvbmx5IGJyYW5jaE9wdGlvbnM6IEZ1bGxCcmFuY2hPcHRpb25zPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgKSB7XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZSA9IG5ldyBUcmVlTm9kZUJhc2UoKTtcbiAgICAgIHRoaXMudXNlcmxhbmRDb21wb25lbnQgPSB0aGlzLmJyYW5jaE9wdGlvbnMuY29tcG9uZW50O1xuICAgICAgY29uc3QgcGFyZW50QnJhbmNoZXNDb250YWluZXIgPVxuICAgICAgICAgcGFyZW50LmdldENvbnRlbnRzKCkuaW5zdGFuY2UuYnJhbmNoZXNDb250YWluZXI7XG4gICAgICBhc3NlcnQocGFyZW50QnJhbmNoZXNDb250YWluZXIgIT09IHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmNvbnRlbnRzID0gY3JlYXRlQ29tcG9uZW50PEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD4+KFxuICAgICAgICAgQnJhbmNoQ29tcG9uZW50LFxuICAgICAgICAge1xuICAgICAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjpcbiAgICAgICAgICAgICAgIHBhcmVudEJyYW5jaGVzQ29udGFpbmVyLmluamVjdG9yLmdldChFbnZpcm9ubWVudEluamVjdG9yKVxuICAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udGVudHMuaW5zdGFuY2UuY29udGVudFRvSG9zdCA9IHRoaXMudXNlcmxhbmRDb21wb25lbnQ7XG4gICAgICB0aGlzLnNldEluZGVudGF0aW9uKHBhcmVudCk7XG4gICAgICB0aGlzLm91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zID0gW107XG4gICAgICB0aGlzLmluc3RhbmNlU3Vic2NyaXB0aW9ucyA9IHRoaXMuZ2V0SW5zdGFuY2VTdWJzY3JpcHRpb25zKCk7XG4gICAgICBpZiAoXG4gICAgICAgICBwYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoICYmXG4gICAgICAgICBwYXJlbnQuYnJhbmNoT3B0aW9ucy5zdGFydENvbGxhcHNlZCA9PT0gdHJ1ZVxuICAgICAgKSB7XG4gICAgICAgICB0cmVlQ29sbGFwc2VyLnN0b3JlUHJlY29sbGFwc2VkTm9kZShwYXJlbnQsIHRoaXMpO1xuICAgICAgICAgdGhpcy5kZXRhY2hlZFZpZXcgPSB0aGlzLmNvbnRlbnRzLmhvc3RWaWV3O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgIHBhcmVudEJyYW5jaGVzQ29udGFpbmVyLmluc2VydCh0aGlzLmNvbnRlbnRzLmhvc3RWaWV3KTtcbiAgICAgICAgIHRoaXMuY29udGVudHMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICAgICAgICAgdGhpcy5kaXNwYXRjaChcbiAgICAgICAgICAgIG5ldyBHcmFmdEV2ZW50KHRoaXMsIHtcbiAgICAgICAgICAgICAgIHBhcmVudDogdGhpcy5fcGFyZW50LFxuICAgICAgICAgICAgICAgY2hpbGQ6IHRoaXMsXG4gICAgICAgICAgICAgICBpbmRleDogdGhpcy5fcGFyZW50LmJyYW5jaGVzKCkubGVuZ3RoXG4gICAgICAgICAgICB9KVxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIGJyYW5jaGVzKCk6IEFycmF5PFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+PiB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UuYnJhbmNoZXMoKTtcbiAgIH1cblxuICAgcHVibGljIGRlbGV0ZUJyYW5jaChpbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UuZGVsZXRlQnJhbmNoKGluZGV4KTtcbiAgIH1cblxuICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICBpZiAodHJlZUNvbGxhcHNlci5pc0NvbGxhcHNlZCh0aGlzKSkge1xuICAgICAgICAgdHJlZUNvbGxhcHNlci5leHBhbmQodGhpcyk7XG4gICAgICAgICBkcm9wem9uZVJlbmRlcmVyLmNsZWFyVHJlZUZyb21SZWdpc3RyeSh0aGlzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYnJhbmNoZXMoKS5mb3JFYWNoKChicmFuY2gpID0+IHtcbiAgICAgICAgIGJyYW5jaC5kZXN0cm95KCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudDtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgcGFyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHBhcmVudC5nZXRDb250ZW50cygpLmluc3RhbmNlLmJyYW5jaGVzQ29udGFpbmVyO1xuICAgICAgICAgYXNzZXJ0KGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgIGNvbnRhaW5lci5yZW1vdmUoaW5kZXgpO1xuICAgICAgICAgcGFyZW50LmRlbGV0ZUJyYW5jaChpbmRleCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZS5kZXN0cm95KCk7XG4gICAgICB0aGlzLmluc3RhbmNlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHtcbiAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4ge1xuICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgIH1cblxuICAgcHVibGljIGRpc3BhdGNoKGV2ZW50OiBUcmVlRXZlbnQpOiB2b2lkIHtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlLmRpc3BhdGNoKGV2ZW50KTtcbiAgICAgIHRoaXMuX3BhcmVudD8uZGlzcGF0Y2goZXZlbnQpO1xuICAgfVxuXG4gICBwdWJsaWMgZXZlbnRzKCk6IE9ic2VydmFibGU8VHJlZUV2ZW50PiB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UuZXZlbnRzKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRCcmFuY2goaW5kZXg6IG51bWJlcik6IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5nZXRCcmFuY2goaW5kZXgpO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0Q29udGVudHMoKTogQ29tcG9uZW50UmVmPEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD4+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnRzO1xuICAgfVxuXG4gICBwdWJsaWMgZ3JhZnRUbyhcbiAgICAgIG5ld1BhcmVudDogQ29udGFpbmVyVHJlZU5vZGU8XG4gICAgICAgICBDb21wb25lbnRSZWY8Tm9kZUNvbXBvbmVudD4sXG4gICAgICAgICBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgICAgPixcbiAgICAgIGluZGV4PzogbnVtYmVyXG4gICApOiBudW1iZXIge1xuICAgICAgY29uc3Qgb3duSW5kZXggPSB0aGlzLmluZGV4KCk7XG4gICAgICBpZiAob3duSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgdGhpcy5wcnVuZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5fcGFyZW50ID0gbmV3UGFyZW50O1xuICAgICAgY29uc3QgbmV3SW5kZXggPSBpbmRleCA/PyBuZXdQYXJlbnQuYnJhbmNoZXMoKS5sZW5ndGg7XG4gICAgICB0aGlzLnJlYXR0YWNoVmlldyhuZXdJbmRleCk7XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgbmV3IEdyYWZ0RXZlbnQodGhpcywge1xuICAgICAgICAgICAgcGFyZW50OiBuZXdQYXJlbnQsXG4gICAgICAgICAgICBjaGlsZDogdGhpcyxcbiAgICAgICAgICAgIGluZGV4OiBuZXdJbmRleFxuICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV3SW5kZXg7XG4gICB9XG5cbiAgIHB1YmxpYyBncm93KFxuICAgICAgY29tcG9uZW50OiBUeXBlPFVzZXJsYW5kQ29tcG9uZW50PixcbiAgICAgIG9wdGlvbnM/OiBCcmFuY2hPcHRpb25zPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgKTogVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4ge1xuICAgICAgcmV0dXJuIG5ldyBUcmVlQnJhbmNoKHRoaXMsIHsgY29tcG9uZW50LCAuLi5vcHRpb25zIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgaW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICghdGhpcy5fcGFyZW50KSB7XG4gICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9wYXJlbnRcbiAgICAgICAgIC5icmFuY2hlcygpXG4gICAgICAgICAuZmluZEluZGV4KChicmFuY2gpID0+IGJyYW5jaCA9PT0gdGhpcyk7XG4gICAgICBhc3NlcnQoaW5kZXggPj0gMCk7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICB9XG5cbiAgIHB1YmxpYyBtZXRhKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoT3B0aW9ucy5tZXRhID8/IHt9O1xuICAgfVxuXG4gICBwdWJsaWMgcGFyZW50KCk6XG4gICAgICB8IENvbnRhaW5lclRyZWVOb2RlPFxuICAgICAgICAgICBDb21wb25lbnRSZWY8Tm9kZUNvbXBvbmVudD4sXG4gICAgICAgICAgIFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+XG4gICAgICAgID5cbiAgICAgIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gICB9XG5cbiAgIHB1YmxpYyBwbG90KCk6IFRyZWVQbG90IHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5wbG90KCk7XG4gICB9XG5cbiAgIHB1YmxpYyBwb3NpdGlvbigpOiBBcnJheTxudW1iZXI+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcImJyYW5jaCBoYXMgbm8gcGFyZW50LiBQb3NpdGlvbiBjYW5ub3QgYmUgZGV0ZXJtaW5lZC5cIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoKSB7XG4gICAgICAgICBjb25zdCBwYXJlbnRQb3NpdGlvbiA9IHRoaXMuX3BhcmVudC5wb3NpdGlvbigpO1xuICAgICAgICAgcmV0dXJuIFsuLi5wYXJlbnRQb3NpdGlvbiwgaW5kZXhdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtpbmRleF07XG4gICB9XG5cbiAgIHB1YmxpYyBwcnVuZSgpOiB0aGlzIHwgdW5kZWZpbmVkIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudDtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgcGFyZW50ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHBhcmVudC5nZXRDb250ZW50cygpLmluc3RhbmNlLmJyYW5jaGVzQ29udGFpbmVyO1xuICAgICAgYXNzZXJ0KGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuZGV0YWNoZWRWaWV3ID0gY29udGFpbmVyLmRldGFjaChpbmRleCk7XG4gICAgICBhc3NlcnQodGhpcy5kZXRhY2hlZFZpZXcgIT09IG51bGwpO1xuICAgICAgdGhpcy5kZXRhY2hlZFZpZXcuZGV0YWNoKCk7XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgbmV3IFBydW5lRXZlbnQodGhpcywge1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICAgICAgICBjaGlsZDogdGhpcyxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLl9wYXJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgIH1cblxuICAgcHVibGljIHJvb3QoKTogVHJlZVJvb3Q8VXNlcmxhbmRDb21wb25lbnQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50KCk7XG4gICAgICBpZiAocGFyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgVHJlZUJyYW5jaCkge1xuICAgICAgICAgcmV0dXJuIHBhcmVudC5yb290KCk7XG4gICAgICB9XG4gICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgVHJlZVJvb3QpIHtcbiAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmV4cGVjdGVkIHBhcmVudCB0eXBlXCIpO1xuICAgfVxuXG4gICBwdWJsaWMgdHJhdmVyc2UoXG4gICAgICBjYWxsYmFjazogKFxuICAgICAgICAgbm9kZTogQ29udGFpbmVyVHJlZU5vZGU8XG4gICAgICAgICAgICBDb21wb25lbnRSZWY8Tm9kZUNvbXBvbmVudD4sXG4gICAgICAgICAgICBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgICAgICAgPlxuICAgICAgKSA9PiB2b2lkXG4gICApOiB2b2lkIHtcbiAgICAgIGNhbGxiYWNrKHRoaXMpO1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UudHJhdmVyc2UoY2FsbGJhY2spO1xuICAgfVxuXG4gICBwcml2YXRlIGdldENvbnRlbnRDcmVhdGVkU3ViKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29udGVudHMuaW5zdGFuY2U7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuY29udGVudENyZWF0ZWQuc3Vic2NyaWJlKCh1c2VybGFuZENvbXBvbmVudEluc3RhbmNlKSA9PiB7XG4gICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhcbiAgICAgICAgICAgIHRoaXMuYnJhbmNoT3B0aW9ucy5pbnB1dEJpbmRpbmdzID8/IHt9XG4gICAgICAgICApKSB7XG4gICAgICAgICAgICAodXNlcmxhbmRDb21wb25lbnRJbnN0YW5jZSBhcyBhbnkpW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgIH1cbiAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICAgICAgdGhpcy5icmFuY2hPcHRpb25zLm91dHB1dEJpbmRpbmdzID8/IHt9XG4gICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLm91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAodXNlcmxhbmRDb21wb25lbnRJbnN0YW5jZSBhcyBhbnkpW2tleV0uc3Vic2NyaWJlKHZhbHVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgIH1cbiAgICAgICAgICh1c2VybGFuZENvbXBvbmVudEluc3RhbmNlIGFzIGFueSkudHJlZUJyYW5jaCA9IHRoaXM7XG4gICAgICAgICBjb25zdCBkcm9wem9uZXMgPSBpbnN0YW5jZS5kcm9wem9uZXM7XG4gICAgICAgICBpZiAoIWRyb3B6b25lcykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZHJvcHpvbmVzIG5vdCBkZWZpbmVkXCIpO1xuICAgICAgICAgfVxuICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5yZWdpc3RlckRyb3B6b25lcyhkcm9wem9uZXMsIHRoaXMpO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIHByaXZhdGUgZ2V0SW5zdGFuY2VTdWJzY3JpcHRpb25zKCk6IEFycmF5PFN1YnNjcmlwdGlvbj4ge1xuICAgICAgY29uc3QgZHJvcHBlZFN1YiA9IHRoaXMuY29udGVudHMuaW5zdGFuY2UuZHJvcHBlZC5zdWJzY3JpYmUoXG4gICAgICAgICAocGxhY2VtZW50KSA9PiB7XG4gICAgICAgICAgICBkcm9wem9uZVJlbmRlcmVyLmhhbmRsZURyb3AodGhpcywgcGxhY2VtZW50KTtcbiAgICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAgdGhpcy5nZXRDb250ZW50Q3JlYXRlZFN1YigpLFxuICAgICAgICAgdGhpcy5nZXRTaG93TG93ZXJab25lc1N1YigpLFxuICAgICAgICAgdGhpcy5nZXRTaG93VXBwZXJab25lc1N1YigpLFxuICAgICAgICAgZHJvcHBlZFN1YlxuICAgICAgXTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRTaG93TG93ZXJab25lc1N1YigpOiBTdWJzY3JpcHRpb24ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbnRlbnRzLmluc3RhbmNlO1xuICAgICAgcmV0dXJuIGluc3RhbmNlLnNob3dEcm9wem9uZXNcbiAgICAgICAgIC5waXBlKGZpbHRlcigoZGlyZWN0aW9uKSA9PiBkaXJlY3Rpb24gPT09IFwibG93ZXJcIikpXG4gICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREcm9wem9uZURpc3BsYXllZCA9XG4gICAgICAgICAgICAgICBkcm9wem9uZVJlbmRlcmVyLmdldEN1cnJlbnREaXNwbGF5KCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQ/LnRyZWVCcmFuY2ggPT09IHRoaXMgJiZcbiAgICAgICAgICAgICAgIGN1cnJlbnREcm9wem9uZURpc3BsYXllZC5kaXJlY3Rpb24gPT09IFwibG93ZXJcIlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkcm9wem9uZVJlbmRlcmVyLnNob3dMb3dlclpvbmVzKHRoaXMpO1xuICAgICAgICAgICAgaW5zdGFuY2UudHJpZ2dlckNoYW5nZURldGVjdGlvbigpO1xuICAgICAgICAgfSk7XG4gICB9XG5cbiAgIHByaXZhdGUgZ2V0U2hvd1VwcGVyWm9uZXNTdWIoKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb250ZW50cy5pbnN0YW5jZTtcbiAgICAgIHJldHVybiBpbnN0YW5jZS5zaG93RHJvcHpvbmVzXG4gICAgICAgICAucGlwZShmaWx0ZXIoKGRpcmVjdGlvbikgPT4gZGlyZWN0aW9uID09PSBcInVwcGVyXCIpKVxuICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQgPVxuICAgICAgICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5nZXRDdXJyZW50RGlzcGxheSgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgY3VycmVudERyb3B6b25lRGlzcGxheWVkPy50cmVlQnJhbmNoID09PSB0aGlzICYmXG4gICAgICAgICAgICAgICBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQuZGlyZWN0aW9uID09PSBcInVwcGVyXCJcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5zaG93VXBwZXJab25lcyh0aGlzKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnRyaWdnZXJDaGFuZ2VEZXRlY3Rpb24oKTtcbiAgICAgICAgIH0pO1xuICAgfVxuXG4gICBwcml2YXRlIHJlYXR0YWNoVmlldyhpbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgICAgYXNzZXJ0KHRoaXMuX3BhcmVudCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGFzc2VydCh0aGlzLmRldGFjaGVkVmlldyAhPT0gbnVsbCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9wYXJlbnQuZ2V0Q29udGVudHMoKS5pbnN0YW5jZS5icmFuY2hlc0NvbnRhaW5lcjtcbiAgICAgIGFzc2VydChjb250YWluZXIgIT09IHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmRldGFjaGVkVmlldy5yZWF0dGFjaCgpO1xuICAgICAgY29udGFpbmVyLmluc2VydCh0aGlzLmRldGFjaGVkVmlldywgaW5kZXgpO1xuICAgICAgdGhpcy5kZXRhY2hlZFZpZXcgPSBudWxsO1xuICAgfVxuXG4gICBwcml2YXRlIHNldEluZGVudGF0aW9uKFxuICAgICAgcGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgICAgIFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+XG4gICAgICA+XG4gICApOiB2b2lkIHtcbiAgICAgIGNvbnN0IHJvb3QgPSBwYXJlbnQucm9vdCgpO1xuICAgICAgYXNzZXJ0KHJvb3QgIT09IHVuZGVmaW5lZCk7XG4gICAgICBjb25zdCBvcHRpb25zID0gY29uZmlnLmdldENvbmZpZyhyb290KTtcbiAgICAgIGNvbnN0IGJyYW5jaGVzQ29udGFpbmVyRWwgPSB0aGlzLmNvbnRlbnRzLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgIC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYnJhbmNoZXMtY29udGFpbmVyXCIpXG4gICAgICAgICAuaXRlbSgwKTtcbiAgICAgIGFzc2VydChicmFuY2hlc0NvbnRhaW5lckVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpO1xuICAgICAgYnJhbmNoZXNDb250YWluZXJFbC5zdHlsZS5tYXJnaW5MZWZ0ID0gYCR7b3B0aW9ucz8uaW5kZW50YXRpb24gPz8gMTZ9cHhgO1xuICAgfVxufVxuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { filter, Subject } from "rxjs";
|
|
2
|
+
import { TreeError } from "../errors";
|
|
3
|
+
import { GraftEvent } from "../events/relational/graft-event";
|
|
4
|
+
import { PruneEvent } from "../events/relational/prune-event";
|
|
5
|
+
export class TreeNodeBase {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._branches = [];
|
|
8
|
+
this.events$ = new Subject();
|
|
9
|
+
this.subscriptions = [
|
|
10
|
+
this.graftsToSelf().subscribe((event) => {
|
|
11
|
+
this.registerChildRelationship(event.child(), event.index());
|
|
12
|
+
}),
|
|
13
|
+
this.prunesToSelf().subscribe((event) => {
|
|
14
|
+
this.deregisterChildRelationship(event.child());
|
|
15
|
+
})
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
branches() {
|
|
19
|
+
return [...this._branches];
|
|
20
|
+
}
|
|
21
|
+
deleteBranch(index) {
|
|
22
|
+
if (index === undefined) {
|
|
23
|
+
this._branches.pop();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
this._branches.splice(index, 1);
|
|
27
|
+
}
|
|
28
|
+
destroy() {
|
|
29
|
+
this.subscriptions.forEach((sub) => {
|
|
30
|
+
sub.unsubscribe();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
dispatch(event) {
|
|
34
|
+
this.events$.next(event);
|
|
35
|
+
}
|
|
36
|
+
events() {
|
|
37
|
+
return this.events$;
|
|
38
|
+
}
|
|
39
|
+
getBranch(index) {
|
|
40
|
+
return this._branches[index];
|
|
41
|
+
}
|
|
42
|
+
plot() {
|
|
43
|
+
return new Map(this.branches().map((branch, index) => [index, branch.plot()]));
|
|
44
|
+
}
|
|
45
|
+
traverse(callback) {
|
|
46
|
+
this.branches().forEach((branch) => {
|
|
47
|
+
branch.traverse(callback);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
deregisterChildRelationship(child) {
|
|
51
|
+
const index = this.branches().findIndex((branch) => branch === child);
|
|
52
|
+
this.deleteBranch(index);
|
|
53
|
+
}
|
|
54
|
+
graftsToSelf() {
|
|
55
|
+
return this.events().pipe(filter((event) => event instanceof GraftEvent), filter((event) => event.parent().events() === this.events$));
|
|
56
|
+
}
|
|
57
|
+
prunesToSelf() {
|
|
58
|
+
return this.events().pipe(filter((event) => event instanceof PruneEvent), filter((event) => event.parent().events() === this.events$));
|
|
59
|
+
}
|
|
60
|
+
registerChildRelationship(child, index) {
|
|
61
|
+
const branches = this.branches();
|
|
62
|
+
if (index < 0 || index > branches.length) {
|
|
63
|
+
throw new TreeError(`Can't register child at index ${index}. Out of range.`);
|
|
64
|
+
}
|
|
65
|
+
this._branches.splice(index, 0, child);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1ub2RlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVE5RCxNQUFNLE9BQU8sWUFBWTtJQU90QjtRQUNHLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUM7U0FDSixDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDWixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFjO1FBQy9CLElBQUksS0FBSyxLQUFLLFNBQVMs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ZVwiO1xuaW1wb3J0IHsgZmlsdGVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL25vZGUtY29tcG9uZW50LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZUVycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgR3JhZnRFdmVudCB9IGZyb20gXCIuLi9ldmVudHMvcmVsYXRpb25hbC9ncmFmdC1ldmVudFwiO1xuaW1wb3J0IHsgUHJ1bmVFdmVudCB9IGZyb20gXCIuLi9ldmVudHMvcmVsYXRpb25hbC9wcnVuZS1ldmVudFwiO1xuaW1wb3J0IHsgVHJlZUV2ZW50IH0gZnJvbSBcIi4uL3N0cnVjdHVyZS90cmVlLWV2ZW50LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyVHJlZU5vZGUgfSBmcm9tIFwiLi4vc3RydWN0dXJlL2NvbnRhaW5lci10cmVlLW5vZGUuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gXCIuLi9zdHJ1Y3R1cmUvdHJlZS1ub2RlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZVBsb3QgfSBmcm9tIFwiLi4vc3RydWN0dXJlL3RyZWUtcGxvdFwiO1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4vcmVsYXRpb25zaGlwLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZUJyYW5jaCB9IGZyb20gXCIuL3RyZWUtYnJhbmNoL3RyZWUtYnJhbmNoXCI7XG5cbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUJhc2U8VXNlcmxhbmRDb21wb25lbnQ+XG4gICBpbXBsZW1lbnRzIFBhcnRpYWw8VHJlZU5vZGU8VHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4+Plxue1xuICAgcHJpdmF0ZSByZWFkb25seSBfYnJhbmNoZXM6IEFycmF5PFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+PjtcbiAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRzJDogU3ViamVjdDxUcmVlRXZlbnQ+O1xuICAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+O1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICB0aGlzLl9icmFuY2hlcyA9IFtdO1xuICAgICAgdGhpcy5ldmVudHMkID0gbmV3IFN1YmplY3QoKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtcbiAgICAgICAgIHRoaXMuZ3JhZnRzVG9TZWxmKCkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckNoaWxkUmVsYXRpb25zaGlwKGV2ZW50LmNoaWxkKCksIGV2ZW50LmluZGV4KCkpO1xuICAgICAgICAgfSksXG4gICAgICAgICB0aGlzLnBydW5lc1RvU2VsZigpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVyZWdpc3RlckNoaWxkUmVsYXRpb25zaGlwKGV2ZW50LmNoaWxkKCkpO1xuICAgICAgICAgfSlcbiAgICAgIF07XG4gICB9XG5cbiAgIHB1YmxpYyBicmFuY2hlcygpOiBBcnJheTxUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50Pj4ge1xuICAgICAgcmV0dXJuIFsuLi50aGlzLl9icmFuY2hlc107XG4gICB9XG5cbiAgIHB1YmxpYyBkZWxldGVCcmFuY2goaW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLl9icmFuY2hlcy5wb3AoKTtcbiAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2JyYW5jaGVzLnNwbGljZShpbmRleCwgMSk7XG4gICB9XG5cbiAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4ge1xuICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgIH1cblxuICAgcHVibGljIGRpc3BhdGNoKGV2ZW50OiBUcmVlRXZlbnQpOiB2b2lkIHtcbiAgICAgIHRoaXMuZXZlbnRzJC5uZXh0KGV2ZW50KTtcbiAgIH1cblxuICAgcHVibGljIGV2ZW50cygpOiBPYnNlcnZhYmxlPFRyZWVFdmVudD4ge1xuICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzJDtcbiAgIH1cblxuICAgcHVibGljIGdldEJyYW5jaChpbmRleDogbnVtYmVyKTogVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMuX2JyYW5jaGVzW2luZGV4XTtcbiAgIH1cblxuICAgcHVibGljIHBsb3QoKTogVHJlZVBsb3Qge1xuICAgICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICAgICB0aGlzLmJyYW5jaGVzKCkubWFwKChicmFuY2gsIGluZGV4KSA9PiBbaW5kZXgsIGJyYW5jaC5wbG90KCldKVxuICAgICAgKTtcbiAgIH1cblxuICAgcHVibGljIHRyYXZlcnNlKFxuICAgICAgY2FsbGJhY2s6IChcbiAgICAgICAgIG5vZGU6IENvbnRhaW5lclRyZWVOb2RlPFxuICAgICAgICAgICAgQ29tcG9uZW50UmVmPE5vZGVDb21wb25lbnQ+LFxuICAgICAgICAgICAgVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD5cbiAgICAgICAgID5cbiAgICAgICkgPT4gdm9pZFxuICAgKTogdm9pZCB7XG4gICAgICB0aGlzLmJyYW5jaGVzKCkuZm9yRWFjaCgoYnJhbmNoKSA9PiB7XG4gICAgICAgICBicmFuY2gudHJhdmVyc2UoY2FsbGJhY2spO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIHByaXZhdGUgZGVyZWdpc3RlckNoaWxkUmVsYXRpb25zaGlwKFxuICAgICAgY2hpbGQ6IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiB2b2lkIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5icmFuY2hlcygpLmZpbmRJbmRleCgoYnJhbmNoKSA9PiBicmFuY2ggPT09IGNoaWxkKTtcbiAgICAgIHRoaXMuZGVsZXRlQnJhbmNoKGluZGV4KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBncmFmdHNUb1NlbGYoKTogT2JzZXJ2YWJsZTxcbiAgICAgIEdyYWZ0RXZlbnQ8UmVsYXRpb25zaGlwPFVzZXJsYW5kQ29tcG9uZW50Pj5cbiAgID4ge1xuICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzKCkucGlwZShcbiAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgIChldmVudCk6IGV2ZW50IGlzIEdyYWZ0RXZlbnQ8UmVsYXRpb25zaGlwPFVzZXJsYW5kQ29tcG9uZW50Pj4gPT5cbiAgICAgICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgR3JhZnRFdmVudFxuICAgICAgICAgKSxcbiAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LnBhcmVudCgpLmV2ZW50cygpID09PSB0aGlzLmV2ZW50cyQpXG4gICAgICApO1xuICAgfVxuXG4gICBwcml2YXRlIHBydW5lc1RvU2VsZigpOiBPYnNlcnZhYmxlPFxuICAgICAgUHJ1bmVFdmVudDxSZWxhdGlvbnNoaXA8VXNlcmxhbmRDb21wb25lbnQ+PlxuICAgPiB7XG4gICAgICByZXR1cm4gdGhpcy5ldmVudHMoKS5waXBlKFxuICAgICAgICAgZmlsdGVyKFxuICAgICAgICAgICAgKGV2ZW50KTogZXZlbnQgaXMgUHJ1bmVFdmVudDxSZWxhdGlvbnNoaXA8VXNlcmxhbmRDb21wb25lbnQ+PiA9PlxuICAgICAgICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBQcnVuZUV2ZW50XG4gICAgICAgICApLFxuICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQucGFyZW50KCkuZXZlbnRzKCkgPT09IHRoaXMuZXZlbnRzJClcbiAgICAgICk7XG4gICB9XG5cbiAgIHByaXZhdGUgcmVnaXN0ZXJDaGlsZFJlbGF0aW9uc2hpcChcbiAgICAgIGNoaWxkOiBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PixcbiAgICAgIGluZGV4OiBudW1iZXJcbiAgICk6IHZvaWQge1xuICAgICAgY29uc3QgYnJhbmNoZXMgPSB0aGlzLmJyYW5jaGVzKCk7XG4gICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gYnJhbmNoZXMubGVuZ3RoKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgYENhbid0IHJlZ2lzdGVyIGNoaWxkIGF0IGluZGV4ICR7aW5kZXh9LiBPdXQgb2YgcmFuZ2UuYFxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2JyYW5jaGVzLnNwbGljZShpbmRleCwgMCwgY2hpbGQpO1xuICAgfVxufVxuIl19
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { TreeBranch } from "../tree-branch/tree-branch";
|
|
2
|
+
import { RootComponent } from "../../components/root/root.component";
|
|
3
|
+
import { TreeNodeBase } from "../tree-node-base";
|
|
4
|
+
import { dropzoneRenderer } from "../../extras/drag-and-drop/dropzone-renderer";
|
|
5
|
+
import { config } from "../configuration/configuration";
|
|
6
|
+
export class TreeRoot {
|
|
7
|
+
constructor(viewContainerRef) {
|
|
8
|
+
this.viewContainerRef = viewContainerRef;
|
|
9
|
+
this.treeNodeBase = new TreeNodeBase();
|
|
10
|
+
this.rootComponentRef =
|
|
11
|
+
this.viewContainerRef.createComponent(RootComponent);
|
|
12
|
+
const viewInitSub = this.rootComponentRef.instance.afterViewInit.subscribe(() => {
|
|
13
|
+
const dropzone = this.rootComponentRef.instance.dropzone;
|
|
14
|
+
if (!dropzone) {
|
|
15
|
+
throw new Error("dropzone not defined");
|
|
16
|
+
}
|
|
17
|
+
dropzoneRenderer.registerDropzone(dropzone, this);
|
|
18
|
+
});
|
|
19
|
+
const droppedSub = this.rootComponentRef.instance.dropped.subscribe(() => {
|
|
20
|
+
dropzoneRenderer.handleDrop(this, "inner");
|
|
21
|
+
});
|
|
22
|
+
this.instanceSubscriptions = [viewInitSub, droppedSub];
|
|
23
|
+
this.rootComponentRef.changeDetectorRef.detectChanges();
|
|
24
|
+
}
|
|
25
|
+
branches() {
|
|
26
|
+
return this.treeNodeBase.branches();
|
|
27
|
+
}
|
|
28
|
+
deleteBranch(index) {
|
|
29
|
+
this.treeNodeBase.deleteBranch(index);
|
|
30
|
+
}
|
|
31
|
+
destroy() {
|
|
32
|
+
dropzoneRenderer.clearTreeFromRegistry(this);
|
|
33
|
+
this.branches().forEach((branch) => {
|
|
34
|
+
branch.destroy();
|
|
35
|
+
});
|
|
36
|
+
this.treeNodeBase.destroy();
|
|
37
|
+
this.instanceSubscriptions.forEach((sub) => {
|
|
38
|
+
sub.unsubscribe();
|
|
39
|
+
});
|
|
40
|
+
this.viewContainerRef.clear();
|
|
41
|
+
config.delete(this);
|
|
42
|
+
}
|
|
43
|
+
dispatch(event) {
|
|
44
|
+
this.treeNodeBase.dispatch(event);
|
|
45
|
+
}
|
|
46
|
+
events() {
|
|
47
|
+
return this.treeNodeBase.events();
|
|
48
|
+
}
|
|
49
|
+
getBranch(index) {
|
|
50
|
+
return this.treeNodeBase.getBranch(index);
|
|
51
|
+
}
|
|
52
|
+
getContents() {
|
|
53
|
+
return this.rootComponentRef;
|
|
54
|
+
}
|
|
55
|
+
grow(component, options) {
|
|
56
|
+
return new TreeBranch(this, { component, ...options });
|
|
57
|
+
}
|
|
58
|
+
plot() {
|
|
59
|
+
return this.treeNodeBase.plot();
|
|
60
|
+
}
|
|
61
|
+
root() {
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
traverse(callback) {
|
|
65
|
+
callback(this);
|
|
66
|
+
this.treeNodeBase.traverse(callback);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL3RyZWUtcm9vdC90cmVlLXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhELE1BQU0sT0FBTyxRQUFRO0lBUWxCLFlBQW9DLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25FLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUN6RCxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQzthQUMxQztZQUNELGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDaEUsR0FBRyxFQUFFO1lBQ0YsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVNLFFBQVE7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxPQUFPO1FBQ1gsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3hDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLE1BQU07UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFdBQVc7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoQyxDQUFDO0lBRU0sSUFBSSxDQUNSLFNBQWtDLEVBQ2xDLE9BQTBDO1FBRTFDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sSUFBSTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sSUFBSTtRQUNSLE9BQU8sSUFBSSxDQUFDO0lBQ2YsQ0FBQztJQUVNLFFBQVEsQ0FDWixRQUtTO1FBRVQsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJlZVBsb3QgfSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlL3RyZWUtcGxvdFwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFRyZWVFdmVudCB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvdHJlZS1ldmVudC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi4vdHJlZS1icmFuY2gvdHJlZS1icmFuY2hcIjtcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb290Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvcm9vdC9yb290LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVHJlZU5vZGVCYXNlIH0gZnJvbSBcIi4uL3RyZWUtbm9kZS1iYXNlXCI7XG5pbXBvcnQgeyBUcmVlUm9vdE5vZGUgfSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlL3RyZWUtcm9vdC5ub2RlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyVHJlZU5vZGUgfSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlL2NvbnRhaW5lci10cmVlLW5vZGUuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbm9kZS1jb21wb25lbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBCcmFuY2hPcHRpb25zIH0gZnJvbSBcIi4uL2JyYW5jaC1vcHRpb25zLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgZHJvcHpvbmVSZW5kZXJlciB9IGZyb20gXCIuLi8uLi9leHRyYXMvZHJhZy1hbmQtZHJvcC9kcm9wem9uZS1yZW5kZXJlclwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgVHJlZVJvb3Q8VXNlcmxhbmRDb21wb25lbnQ+XG4gICBpbXBsZW1lbnRzXG4gICAgICBUcmVlUm9vdE5vZGU8Q29tcG9uZW50UmVmPFJvb3RDb21wb25lbnQ+LCBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50Pj5cbntcbiAgIHByaXZhdGUgcmVhZG9ubHkgaW5zdGFuY2VTdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+O1xuICAgcHJpdmF0ZSByZWFkb25seSByb290Q29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8Um9vdENvbXBvbmVudD47XG4gICBwcml2YXRlIHJlYWRvbmx5IHRyZWVOb2RlQmFzZTogVHJlZU5vZGVCYXNlPFVzZXJsYW5kQ29tcG9uZW50PjtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UgPSBuZXcgVHJlZU5vZGVCYXNlKCk7XG4gICAgICB0aGlzLnJvb3RDb21wb25lbnRSZWYgPVxuICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChSb290Q29tcG9uZW50KTtcbiAgICAgIGNvbnN0IHZpZXdJbml0U3ViID1cbiAgICAgICAgIHRoaXMucm9vdENvbXBvbmVudFJlZi5pbnN0YW5jZS5hZnRlclZpZXdJbml0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkcm9wem9uZSA9IHRoaXMucm9vdENvbXBvbmVudFJlZi5pbnN0YW5jZS5kcm9wem9uZTtcbiAgICAgICAgICAgIGlmICghZHJvcHpvbmUpIHtcbiAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImRyb3B6b25lIG5vdCBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5yZWdpc3RlckRyb3B6b25lKGRyb3B6b25lLCB0aGlzKTtcbiAgICAgICAgIH0pO1xuICAgICAgY29uc3QgZHJvcHBlZFN1YiA9IHRoaXMucm9vdENvbXBvbmVudFJlZi5pbnN0YW5jZS5kcm9wcGVkLnN1YnNjcmliZShcbiAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGRyb3B6b25lUmVuZGVyZXIuaGFuZGxlRHJvcCh0aGlzLCBcImlubmVyXCIpO1xuICAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuaW5zdGFuY2VTdWJzY3JpcHRpb25zID0gW3ZpZXdJbml0U3ViLCBkcm9wcGVkU3ViXTtcbiAgICAgIHRoaXMucm9vdENvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBicmFuY2hlcygpOiBBcnJheTxUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50Pj4ge1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLmJyYW5jaGVzKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBkZWxldGVCcmFuY2goaW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlLmRlbGV0ZUJyYW5jaChpbmRleCk7XG4gICB9XG5cbiAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgZHJvcHpvbmVSZW5kZXJlci5jbGVhclRyZWVGcm9tUmVnaXN0cnkodGhpcyk7XG4gICAgICB0aGlzLmJyYW5jaGVzKCkuZm9yRWFjaCgoYnJhbmNoKSA9PiB7XG4gICAgICAgICBicmFuY2guZGVzdHJveSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZS5kZXN0cm95KCk7XG4gICAgICB0aGlzLmluc3RhbmNlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHtcbiAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgIGNvbmZpZy5kZWxldGUodGhpcyk7XG4gICB9XG5cbiAgIHB1YmxpYyBkaXNwYXRjaChldmVudDogVHJlZUV2ZW50KTogdm9pZCB7XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZS5kaXNwYXRjaChldmVudCk7XG4gICB9XG5cbiAgIHB1YmxpYyBldmVudHMoKTogT2JzZXJ2YWJsZTxUcmVlRXZlbnQ+IHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5ldmVudHMoKTtcbiAgIH1cblxuICAgcHVibGljIGdldEJyYW5jaChpbmRleDogbnVtYmVyKTogVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLmdldEJyYW5jaChpbmRleCk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRDb250ZW50cygpOiBDb21wb25lbnRSZWY8Um9vdENvbXBvbmVudD4ge1xuICAgICAgcmV0dXJuIHRoaXMucm9vdENvbXBvbmVudFJlZjtcbiAgIH1cblxuICAgcHVibGljIGdyb3coXG4gICAgICBjb21wb25lbnQ6IFR5cGU8VXNlcmxhbmRDb21wb25lbnQ+LFxuICAgICAgb3B0aW9ucz86IEJyYW5jaE9wdGlvbnM8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiB7XG4gICAgICByZXR1cm4gbmV3IFRyZWVCcmFuY2godGhpcywgeyBjb21wb25lbnQsIC4uLm9wdGlvbnMgfSk7XG4gICB9XG5cbiAgIHB1YmxpYyBwbG90KCk6IFRyZWVQbG90IHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5wbG90KCk7XG4gICB9XG5cbiAgIHB1YmxpYyByb290KCk6IHRoaXMge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICB9XG5cbiAgIHB1YmxpYyB0cmF2ZXJzZShcbiAgICAgIGNhbGxiYWNrOiAoXG4gICAgICAgICBub2RlOiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgICAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgICAgICAgIFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+XG4gICAgICAgICA+XG4gICAgICApID0+IHZvaWRcbiAgICk6IHZvaWQge1xuICAgICAgY2FsbGJhY2sodGhpcyk7XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZS50cmF2ZXJzZShjYWxsYmFjayk7XG4gICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { config } from "../configuration/configuration";
|
|
3
|
+
import { TreeRoot } from "../tree-root/tree-root";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TreeService {
|
|
6
|
+
createEmptyTree(container, options = {}) {
|
|
7
|
+
container.clear();
|
|
8
|
+
const root = new TreeRoot(container);
|
|
9
|
+
config.setConfig(root, options);
|
|
10
|
+
return root;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
TreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
TreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TreeService, providedIn: "root" });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TreeService, decorators: [{
|
|
16
|
+
type: Injectable,
|
|
17
|
+
args: [{ providedIn: "root" }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL3RyZWUtc2VydmljZS90cmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFHbEQsTUFBTSxPQUFPLFdBQVc7SUFDZCxlQUFlLENBQ25CLFNBQTJCLEVBQzNCLFVBQXVCLEVBQUU7UUFFekIsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFZLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2YsQ0FBQzs7eUdBVFMsV0FBVzs2R0FBWCxXQUFXLGNBREUsTUFBTTs0RkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCIuLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IFRyZWVPcHRpb25zIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb24vdHJlZS1vcHRpb25zLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZVJvb3QgfSBmcm9tIFwiLi4vdHJlZS1yb290L3RyZWUtcm9vdFwiO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46IFwicm9vdFwiIH0pXG5leHBvcnQgY2xhc3MgVHJlZVNlcnZpY2Uge1xuICAgcHVibGljIGNyZWF0ZUVtcHR5VHJlZTxDb21wb25lbnQ+KFxuICAgICAgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgb3B0aW9uczogVHJlZU9wdGlvbnMgPSB7fVxuICAgKTogVHJlZVJvb3Q8Q29tcG9uZW50PiB7XG4gICAgICBjb250YWluZXIuY2xlYXIoKTtcbiAgICAgIGNvbnN0IHJvb3QgPSBuZXcgVHJlZVJvb3Q8Q29tcG9uZW50Pihjb250YWluZXIpO1xuICAgICAgY29uZmlnLnNldENvbmZpZyhyb290LCBvcHRpb25zKTtcbiAgICAgIHJldHVybiByb290O1xuICAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from "./tree-error";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2Vycm9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3RyZWUtZXJyb3JcIjtcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class TreeError extends Error {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXJyb3JzL3RyZWUtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVHJlZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class DragEndEvent {
|
|
2
|
+
constructor(source, endpoints) {
|
|
3
|
+
this._source = source;
|
|
4
|
+
this._oldParent = endpoints.oldParent;
|
|
5
|
+
this._oldIndex = endpoints.oldIndex;
|
|
6
|
+
this._newParent = endpoints.newParent;
|
|
7
|
+
this._newIndex = endpoints.newIndex;
|
|
8
|
+
}
|
|
9
|
+
type() {
|
|
10
|
+
return "drag end";
|
|
11
|
+
}
|
|
12
|
+
source() {
|
|
13
|
+
return this._source;
|
|
14
|
+
}
|
|
15
|
+
newIndex() {
|
|
16
|
+
return this._newIndex;
|
|
17
|
+
}
|
|
18
|
+
newParent() {
|
|
19
|
+
return this._newParent;
|
|
20
|
+
}
|
|
21
|
+
oldIndex() {
|
|
22
|
+
return this._oldIndex;
|
|
23
|
+
}
|
|
24
|
+
oldParent() {
|
|
25
|
+
return this._oldParent;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1lbmQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V2ZW50cy9kcmFnL2RyYWctZW5kLWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxZQUFZO0lBYXRCLFlBQ0csTUFBb0IsRUFDcEIsU0FXQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sSUFBSTtRQUNSLE9BQU8sVUFBVSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxRQUFRO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxTQUFTO1FBSWIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzFCLENBQUM7SUFFTSxRQUFRO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxTQUFTO1FBSWIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzFCLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbm9kZS1jb21wb25lbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUcmVlQnJhbmNoIH0gZnJvbSBcIi4uLy4uL2NvcmVcIjtcbmltcG9ydCB7IENvbnRhaW5lclRyZWVOb2RlIH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZVwiO1xuaW1wb3J0IHsgRXZlbnRDb25kdWl0IH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZS9ldmVudC1jb25kdWl0LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZUV2ZW50IH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZS90cmVlLWV2ZW50LmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgRHJhZ0VuZEV2ZW50PFQ+IGltcGxlbWVudHMgVHJlZUV2ZW50IHtcbiAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZTogRXZlbnRDb25kdWl0O1xuICAgcHJpdmF0ZSByZWFkb25seSBfbmV3UGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgIFRyZWVCcmFuY2g8VD5cbiAgID47XG4gICBwcml2YXRlIHJlYWRvbmx5IF9uZXdJbmRleDogbnVtYmVyO1xuICAgcHJpdmF0ZSByZWFkb25seSBfb2xkUGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgIFRyZWVCcmFuY2g8VD5cbiAgID47XG4gICBwcml2YXRlIHJlYWRvbmx5IF9vbGRJbmRleDogbnVtYmVyO1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICBzb3VyY2U6IEV2ZW50Q29uZHVpdCxcbiAgICAgIGVuZHBvaW50czoge1xuICAgICAgICAgb2xkUGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgICAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgICAgICAgIFRyZWVCcmFuY2g8VD5cbiAgICAgICAgID47XG4gICAgICAgICBvbGRJbmRleDogbnVtYmVyO1xuICAgICAgICAgbmV3UGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgICAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgICAgICAgIFRyZWVCcmFuY2g8VD5cbiAgICAgICAgID47XG4gICAgICAgICBuZXdJbmRleDogbnVtYmVyO1xuICAgICAgfVxuICAgKSB7XG4gICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7XG4gICAgICB0aGlzLl9vbGRQYXJlbnQgPSBlbmRwb2ludHMub2xkUGFyZW50O1xuICAgICAgdGhpcy5fb2xkSW5kZXggPSBlbmRwb2ludHMub2xkSW5kZXg7XG4gICAgICB0aGlzLl9uZXdQYXJlbnQgPSBlbmRwb2ludHMubmV3UGFyZW50O1xuICAgICAgdGhpcy5fbmV3SW5kZXggPSBlbmRwb2ludHMubmV3SW5kZXg7XG4gICB9XG5cbiAgIHB1YmxpYyB0eXBlKCk6IFwiZHJhZyBlbmRcIiB7XG4gICAgICByZXR1cm4gXCJkcmFnIGVuZFwiO1xuICAgfVxuXG4gICBwdWJsaWMgc291cmNlKCk6IEV2ZW50Q29uZHVpdCB7XG4gICAgICByZXR1cm4gdGhpcy5fc291cmNlO1xuICAgfVxuXG4gICBwdWJsaWMgbmV3SW5kZXgoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLl9uZXdJbmRleDtcbiAgIH1cblxuICAgcHVibGljIG5ld1BhcmVudCgpOiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgIFRyZWVCcmFuY2g8VD5cbiAgID4ge1xuICAgICAgcmV0dXJuIHRoaXMuX25ld1BhcmVudDtcbiAgIH1cblxuICAgcHVibGljIG9sZEluZGV4KCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5fb2xkSW5kZXg7XG4gICB9XG5cbiAgIHB1YmxpYyBvbGRQYXJlbnQoKTogQ29udGFpbmVyVHJlZU5vZGU8XG4gICAgICBDb21wb25lbnRSZWY8Tm9kZUNvbXBvbmVudD4sXG4gICAgICBUcmVlQnJhbmNoPFQ+XG4gICA+IHtcbiAgICAgIHJldHVybiB0aGlzLl9vbGRQYXJlbnQ7XG4gICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class DragStartEvent {
|
|
2
|
+
constructor(source) {
|
|
3
|
+
this._source = source;
|
|
4
|
+
}
|
|
5
|
+
type() {
|
|
6
|
+
return "drag start";
|
|
7
|
+
}
|
|
8
|
+
source() {
|
|
9
|
+
return this._source;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zdGFydC1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXZlbnRzL2RyYWcvZHJhZy1zdGFydC1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sY0FBYztJQUd4QixZQUFtQixNQUFvQjtRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRU0sSUFBSTtRQUNSLE9BQU8sWUFBWSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50Q29uZHVpdCB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvZXZlbnQtY29uZHVpdC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFRyZWVFdmVudCB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvdHJlZS1ldmVudC5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGNsYXNzIERyYWdTdGFydEV2ZW50IGltcGxlbWVudHMgVHJlZUV2ZW50IHtcbiAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZTogRXZlbnRDb25kdWl0O1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3Ioc291cmNlOiBFdmVudENvbmR1aXQpIHtcbiAgICAgIHRoaXMuX3NvdXJjZSA9IHNvdXJjZTtcbiAgIH1cblxuICAgcHVibGljIHR5cGUoKTogXCJkcmFnIHN0YXJ0XCIge1xuICAgICAgcmV0dXJuIFwiZHJhZyBzdGFydFwiO1xuICAgfVxuXG4gICBwdWJsaWMgc291cmNlKCk6IEV2ZW50Q29uZHVpdCB7XG4gICAgICByZXR1cm4gdGhpcy5fc291cmNlO1xuICAgfVxufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class DropEvent {
|
|
2
|
+
constructor(source, parent, index) {
|
|
3
|
+
this._source = source;
|
|
4
|
+
this._parent = parent;
|
|
5
|
+
this._index = index;
|
|
6
|
+
}
|
|
7
|
+
type() {
|
|
8
|
+
return "drag end";
|
|
9
|
+
}
|
|
10
|
+
source() {
|
|
11
|
+
return this._source;
|
|
12
|
+
}
|
|
13
|
+
index() {
|
|
14
|
+
return this._index;
|
|
15
|
+
}
|
|
16
|
+
parent() {
|
|
17
|
+
return this._parent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXZlbnRzL2RyYWcvZHJvcC1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sU0FBUztJQVFuQixZQUNHLE1BQW9CLEVBQ3BCLE1BQXFFLEVBQ3JFLEtBQWE7UUFFYixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sSUFBSTtRQUNSLE9BQU8sVUFBVSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxLQUFLO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNO1FBSVYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbm9kZS1jb21wb25lbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUcmVlQnJhbmNoIH0gZnJvbSBcIi4uLy4uL2NvcmVcIjtcbmltcG9ydCB7IENvbnRhaW5lclRyZWVOb2RlIH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZS9jb250YWluZXItdHJlZS1ub2RlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRXZlbnRDb25kdWl0IH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZS9ldmVudC1jb25kdWl0LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZUV2ZW50IH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZS90cmVlLWV2ZW50LmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgRHJvcEV2ZW50PFQ+IGltcGxlbWVudHMgVHJlZUV2ZW50IHtcbiAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZTogRXZlbnRDb25kdWl0O1xuICAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50OiBDb250YWluZXJUcmVlTm9kZTxcbiAgICAgIENvbXBvbmVudFJlZjxOb2RlQ29tcG9uZW50PixcbiAgICAgIFRyZWVCcmFuY2g8VD5cbiAgID47XG4gICBwcml2YXRlIHJlYWRvbmx5IF9pbmRleDogbnVtYmVyO1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICBzb3VyY2U6IEV2ZW50Q29uZHVpdCxcbiAgICAgIHBhcmVudDogQ29udGFpbmVyVHJlZU5vZGU8Q29tcG9uZW50UmVmPE5vZGVDb21wb25lbnQ+LCBUcmVlQnJhbmNoPFQ+PixcbiAgICAgIGluZGV4OiBudW1iZXJcbiAgICkge1xuICAgICAgdGhpcy5fc291cmNlID0gc291cmNlO1xuICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICAgICAgdGhpcy5faW5kZXggPSBpbmRleDtcbiAgIH1cblxuICAgcHVibGljIHR5cGUoKTogXCJkcmFnIGVuZFwiIHtcbiAgICAgIHJldHVybiBcImRyYWcgZW5kXCI7XG4gICB9XG5cbiAgIHB1YmxpYyBzb3VyY2UoKTogRXZlbnRDb25kdWl0IHtcbiAgICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gICB9XG5cbiAgIHB1YmxpYyBpbmRleCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuX2luZGV4O1xuICAgfVxuXG4gICBwdWJsaWMgcGFyZW50KCk6IENvbnRhaW5lclRyZWVOb2RlPFxuICAgICAgQ29tcG9uZW50UmVmPE5vZGVDb21wb25lbnQ+LFxuICAgICAgVHJlZUJyYW5jaDxUPlxuICAgPiB7XG4gICAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICAgfVxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./drag-end-event";
|
|
2
|
+
export * from "./drag-start-event";
|
|
3
|
+
export * from "./drop-event";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V2ZW50cy9kcmFnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2RyYWctZW5kLWV2ZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcmFnLXN0YXJ0LWV2ZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kcm9wLWV2ZW50XCI7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./relational";
|
|
2
|
+
export * from "./drag";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V2ZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3JlbGF0aW9uYWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RyYWdcIjtcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class GraftEvent {
|
|
2
|
+
constructor(source, relationship) {
|
|
3
|
+
this._source = source;
|
|
4
|
+
this._child = relationship.child;
|
|
5
|
+
this._parent = relationship.parent;
|
|
6
|
+
this._index = relationship.index;
|
|
7
|
+
}
|
|
8
|
+
child() {
|
|
9
|
+
return this._child;
|
|
10
|
+
}
|
|
11
|
+
type() {
|
|
12
|
+
return "graft";
|
|
13
|
+
}
|
|
14
|
+
index() {
|
|
15
|
+
return this._index;
|
|
16
|
+
}
|
|
17
|
+
parent() {
|
|
18
|
+
return this._parent;
|
|
19
|
+
}
|
|
20
|
+
source() {
|
|
21
|
+
return this._source;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZnQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V2ZW50cy9yZWxhdGlvbmFsL2dyYWZ0LWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxVQUFVO0lBUXBCLFlBQW1CLE1BQW9CLEVBQUUsWUFBZTtRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRU0sS0FBSztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRU0sSUFBSTtRQUNSLE9BQU8sT0FBTyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxLQUFLO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50Q29uZHVpdCB9IGZyb20gXCIuLi8uLi9zdHJ1Y3R1cmUvZXZlbnQtY29uZHVpdC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFJlbGF0aW9uYWxUcmVlRXZlbnQgfSBmcm9tIFwiLi9yZWxhdGlvbmFsLXRyZWUtZXZlbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBUcmVlUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZS90cmVlLXJlbGF0aW9uc2hpcC5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGNsYXNzIEdyYWZ0RXZlbnQ8VCBleHRlbmRzIFRyZWVSZWxhdGlvbnNoaXA8YW55LCBhbnk+PlxuICAgaW1wbGVtZW50cyBSZWxhdGlvbmFsVHJlZUV2ZW50PFRbXCJwYXJlbnRcIl0sIFRbXCJjaGlsZFwiXT5cbntcbiAgIHByaXZhdGUgcmVhZG9ubHkgX3NvdXJjZTogRXZlbnRDb25kdWl0O1xuICAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50OiBUW1wicGFyZW50XCJdO1xuICAgcHJpdmF0ZSByZWFkb25seSBfY2hpbGQ6IFRbXCJjaGlsZFwiXTtcbiAgIHByaXZhdGUgcmVhZG9ubHkgX2luZGV4OiBudW1iZXI7XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihzb3VyY2U6IEV2ZW50Q29uZHVpdCwgcmVsYXRpb25zaGlwOiBUKSB7XG4gICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7XG4gICAgICB0aGlzLl9jaGlsZCA9IHJlbGF0aW9uc2hpcC5jaGlsZDtcbiAgICAgIHRoaXMuX3BhcmVudCA9IHJlbGF0aW9uc2hpcC5wYXJlbnQ7XG4gICAgICB0aGlzLl9pbmRleCA9IHJlbGF0aW9uc2hpcC5pbmRleDtcbiAgIH1cblxuICAgcHVibGljIGNoaWxkKCk6IFRbXCJjaGlsZFwiXSB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hpbGQ7XG4gICB9XG5cbiAgIHB1YmxpYyB0eXBlKCk6IFwiZ3JhZnRcIiB7XG4gICAgICByZXR1cm4gXCJncmFmdFwiO1xuICAgfVxuXG4gICBwdWJsaWMgaW5kZXgoKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbmRleDtcbiAgIH1cblxuICAgcHVibGljIHBhcmVudCgpOiBUW1wicGFyZW50XCJdIHtcbiAgICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gICB9XG5cbiAgIHB1YmxpYyBzb3VyY2UoKTogRXZlbnRDb25kdWl0IHtcbiAgICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./graft-event";
|
|
2
|
+
export * from "./prune-event";
|
|
3
|
+
export * from "./relational-tree-event.interface";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V2ZW50cy9yZWxhdGlvbmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9ncmFmdC1ldmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJ1bmUtZXZlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlbGF0aW9uYWwtdHJlZS1ldmVudC5pbnRlcmZhY2VcIjtcbiJdfQ==
|