ngx-vflow 0.9.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +48 -0
- package/esm2022/lib/vflow/components/node/node.component.mjs +16 -13
- package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +29 -6
- package/esm2022/lib/vflow/directives/template.directive.mjs +12 -1
- package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +1 -1
- package/esm2022/lib/vflow/interfaces/node.interface.mjs +39 -2
- package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +2 -0
- package/esm2022/lib/vflow/models/handle.model.mjs +22 -9
- package/esm2022/lib/vflow/models/node.model.mjs +103 -17
- package/esm2022/lib/vflow/public-components/custom-dynamic-node.component.mjs +19 -0
- package/esm2022/lib/vflow/public-components/custom-node.component.mjs +9 -41
- package/esm2022/lib/vflow/services/draggable.service.mjs +25 -10
- package/esm2022/lib/vflow/services/handle.service.mjs +7 -2
- package/esm2022/lib/vflow/services/node-rendering.service.mjs +12 -3
- package/esm2022/lib/vflow/utils/reference-keeper.mjs +1 -1
- package/esm2022/lib/vflow/vflow.module.mjs +5 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ngx-vflow.mjs +301 -71
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/components/custom-node-base/custom-node-base.component.d.ts +21 -0
- package/lib/vflow/components/node/node.component.d.ts +3 -2
- package/lib/vflow/components/vflow/vflow.component.d.ts +14 -9
- package/lib/vflow/directives/template.directive.d.ts +5 -0
- package/lib/vflow/interfaces/component-node-event.interface.d.ts +2 -1
- package/lib/vflow/interfaces/node.interface.d.ts +64 -5
- package/lib/vflow/interfaces/optimization.interface.d.ts +3 -0
- package/lib/vflow/models/edge.model.d.ts +17 -1
- package/lib/vflow/models/handle.model.d.ts +2 -1
- package/lib/vflow/models/node.model.d.ts +31 -22
- package/lib/vflow/public-components/custom-dynamic-node.component.d.ts +13 -0
- package/lib/vflow/public-components/custom-node.component.d.ts +6 -13
- package/lib/vflow/services/draggable.service.d.ts +9 -3
- package/lib/vflow/services/handle.service.d.ts +1 -1
- package/lib/vflow/services/node-changes.service.d.ts +1 -4
- package/lib/vflow/services/node-rendering.service.d.ts +1 -0
- package/lib/vflow/utils/reference-keeper.d.ts +2 -2
- package/lib/vflow/vflow.module.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -44,21 +44,22 @@ export class HandleModel {
|
|
|
44
44
|
});
|
|
45
45
|
this.pointAbsolute = computed(() => {
|
|
46
46
|
return {
|
|
47
|
-
x: this.parentNode.
|
|
48
|
-
y: this.parentNode.
|
|
47
|
+
x: this.parentNode.globalPoint().x + this.offset().x + this.sizeOffset().x,
|
|
48
|
+
y: this.parentNode.globalPoint().y + this.offset().y + this.sizeOffset().y,
|
|
49
49
|
};
|
|
50
50
|
});
|
|
51
51
|
this.state = signal('idle');
|
|
52
52
|
this.updateParentSizeAndPosition$ = new Subject();
|
|
53
|
-
this.parentSize = toSignal(this.updateParentSizeAndPosition$.pipe(map(() => ({
|
|
54
|
-
width: this.parentReference.offsetWidth,
|
|
55
|
-
height: this.parentReference.offsetHeight
|
|
56
|
-
}))), {
|
|
53
|
+
this.parentSize = toSignal(this.updateParentSizeAndPosition$.pipe(map(() => this.getParentSize())), {
|
|
57
54
|
initialValue: { width: 0, height: 0 }
|
|
58
55
|
});
|
|
59
56
|
this.parentPosition = toSignal(this.updateParentSizeAndPosition$.pipe(map(() => ({
|
|
60
|
-
x: this.parentReference
|
|
61
|
-
|
|
57
|
+
x: this.parentReference instanceof HTMLElement
|
|
58
|
+
? this.parentReference.offsetLeft
|
|
59
|
+
: 0,
|
|
60
|
+
y: this.parentReference instanceof HTMLElement
|
|
61
|
+
? this.parentReference.offsetTop
|
|
62
|
+
: 0 // for now just 0 for group nodes
|
|
62
63
|
}))), {
|
|
63
64
|
initialValue: { x: 0, y: 0 }
|
|
64
65
|
});
|
|
@@ -74,5 +75,17 @@ export class HandleModel {
|
|
|
74
75
|
updateParent() {
|
|
75
76
|
this.updateParentSizeAndPosition$.next();
|
|
76
77
|
}
|
|
78
|
+
getParentSize() {
|
|
79
|
+
if (this.parentReference instanceof HTMLElement) {
|
|
80
|
+
return {
|
|
81
|
+
width: this.parentReference.offsetWidth,
|
|
82
|
+
height: this.parentReference.offsetHeight
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
else if (this.parentReference instanceof SVGGraphicsElement) {
|
|
86
|
+
return this.parentReference.getBBox();
|
|
87
|
+
}
|
|
88
|
+
return { width: 0, height: 0 };
|
|
89
|
+
}
|
|
77
90
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXRELE1BQU0sT0FBTyxXQUFXO0lBeUZ0QixZQUNTLFNBQXFCLEVBQ3JCLFVBQXFCO1FBRHJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQTFGZCxnQkFBVyxHQUFHLENBQUMsQ0FBQTtRQUUvQjs7O1dBR0c7UUFDSSxTQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ25CLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNsQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDcEMsQ0FBQyxDQUFBO1FBRUssV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPO29CQUNsQixDQUFDLEVBQUUsQ0FBQztvQkFDSixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUM1RCxDQUFBO2dCQUNELEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTztvQkFDbkIs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QUVELE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5vZGVIYW5kbGUgfSBmcm9tIFwiLi4vc2VydmljZXMvaGFuZGxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gXCIuL25vZGUubW9kZWxcIjtcbmltcG9ydCB7IFN1YmplY3QsIG1hcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5leHBvcnQgdHlwZSBIYW5kbGVTdGF0ZSA9ICd2YWxpZCcgfCAnaW52YWxpZCcgfCAnaWRsZSdcblxuZXhwb3J0IGNsYXNzIEhhbmRsZU1vZGVsIHtcbiAgcHVibGljIHJlYWRvbmx5IHN0cm9rZVdpZHRoID0gMlxuXG4gIC8qKlxuICAgKiBQcmUtY29tcHV0ZWQgc2l6ZSBmb3IgZGVmYXVsdCBoYW5kbGUsIGNoYW5nZWQgZHluYW1pY2FsbHlcbiAgICogZm9yIGN1c3RvbSBoYW5kbGVzXG4gICAqL1xuICBwdWJsaWMgc2l6ZSA9IHNpZ25hbCh7XG4gICAgd2lkdGg6IDEwICsgKDIgKiB0aGlzLnN0cm9rZVdpZHRoKSxcbiAgICBoZWlnaHQ6IDEwICsgKDIgKiB0aGlzLnN0cm9rZVdpZHRoKVxuICB9KVxuXG4gIHB1YmxpYyBvZmZzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnJhd0hhbmRsZS5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6IHJldHVybiB7XG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IHRoaXMucGFyZW50UG9zaXRpb24oKS55ICsgKHRoaXMucGFyZW50U2l6ZSgpLmhlaWdodCAvIDIpXG4gICAgICB9XG4gICAgICBjYXNlICdyaWdodCc6IHJldHVybiB7XG4gICAgICAgIHg6IHRoaXMucGFyZW50Tm9kZS5zaXplKCkud2lkdGgsXG4gICAgICAgIHk6IHRoaXMucGFyZW50UG9zaXRpb24oKS55ICsgKHRoaXMucGFyZW50U2l6ZSgpLmhlaWdodCAvIDIpXG4gICAgICB9XG4gICAgICBjYXNlICd0b3AnOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueCArICh0aGlzLnBhcmVudFNpemUoKS53aWR0aCAvIDIpLFxuICAgICAgICB5OiAwXG4gICAgICB9XG4gICAgICBjYXNlICdib3R0b20nOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueCArIHRoaXMucGFyZW50U2l6ZSgpLndpZHRoIC8gMixcbiAgICAgICAgeTogdGhpcy5wYXJlbnROb2RlLnNpemUoKS5oZWlnaHRcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHNpemVPZmZzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLnJhd0hhbmRsZS5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6IHJldHVybiB7IHg6IC0odGhpcy5zaXplKCkud2lkdGggLyAyKSwgeTogMCB9XG4gICAgICBjYXNlICdyaWdodCc6IHJldHVybiB7IHg6IHRoaXMuc2l6ZSgpLndpZHRoIC8gMiwgeTogMCB9XG4gICAgICBjYXNlICd0b3AnOiByZXR1cm4geyB4OiAwLCB5OiAtKHRoaXMuc2l6ZSgpLmhlaWdodCAvIDIpIH1cbiAgICAgIGNhc2UgJ2JvdHRvbSc6IHJldHVybiB7IHg6IDAsIHk6IHRoaXMuc2l6ZSgpLmhlaWdodCAvIDIgfVxuICAgIH1cbiAgfSlcblxuICBwdWJsaWMgcG9pbnRBYnNvbHV0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgeDogdGhpcy5wYXJlbnROb2RlLmdsb2JhbFBvaW50KCkueCArIHRoaXMub2Zmc2V0KCkueCArIHRoaXMuc2l6ZU9mZnNldCgpLngsXG4gICAgICB5OiB0aGlzLnBhcmVudE5vZGUuZ2xvYmFsUG9pbnQoKS55ICsgdGhpcy5vZmZzZXQoKS55ICsgdGhpcy5zaXplT2Zmc2V0KCkueSxcbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHN0YXRlID0gc2lnbmFsPEhhbmRsZVN0YXRlPignaWRsZScpXG5cbiAgcHJpdmF0ZSB1cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIHB1YmxpYyBwYXJlbnRTaXplID0gdG9TaWduYWwoXG4gICAgdGhpcy51cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5nZXRQYXJlbnRTaXplKCkpXG4gICAgKSxcbiAgICB7XG4gICAgICBpbml0aWFsVmFsdWU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9XG4gICAgfVxuICApXG5cbiAgcHVibGljIHBhcmVudFBvc2l0aW9uID0gdG9TaWduYWwoXG4gICAgdGhpcy51cGRhdGVQYXJlbnRTaXplQW5kUG9zaXRpb24kLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gKHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRSZWZlcmVuY2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudFxuICAgICAgICAgID8gdGhpcy5wYXJlbnRSZWZlcmVuY2Uub2Zmc2V0TGVmdFxuICAgICAgICAgIDogMCwgLy8gZm9yIG5vdyBqdXN0IDAgZm9yIGdyb3VwIG5vZGVzXG4gICAgICAgIHk6IHRoaXMucGFyZW50UmVmZXJlbmNlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnRcbiAgICAgICAgICA/IHRoaXMucGFyZW50UmVmZXJlbmNlLm9mZnNldFRvcFxuICAgICAgICAgIDogMCAvLyBmb3Igbm93IGp1c3QgMCBmb3IgZ3JvdXAgbm9kZXNcbiAgICAgIH0pKVxuICAgICksXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiB7IHg6IDAsIHk6IDAgfVxuICAgIH1cbiAgKVxuXG4gIHB1YmxpYyBwYXJlbnRSZWZlcmVuY2UgPSB0aGlzLnJhd0hhbmRsZS5wYXJlbnRSZWZlcmVuY2UhXG5cbiAgcHVibGljIHRlbXBsYXRlID0gdGhpcy5yYXdIYW5kbGUudGVtcGxhdGVcblxuICBwdWJsaWMgdGVtcGxhdGVDb250ZXh0ID0ge1xuICAgICRpbXBsaWNpdDoge1xuICAgICAgcG9pbnQ6IHRoaXMub2Zmc2V0LFxuICAgICAgc3RhdGU6IHRoaXMuc3RhdGVcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmF3SGFuZGxlOiBOb2RlSGFuZGxlLFxuICAgIHB1YmxpYyBwYXJlbnROb2RlOiBOb2RlTW9kZWxcbiAgKSB7IH1cblxuICBwdWJsaWMgdXBkYXRlUGFyZW50KCkge1xuICAgIHRoaXMudXBkYXRlUGFyZW50U2l6ZUFuZFBvc2l0aW9uJC5uZXh0KClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyZW50U2l6ZSgpOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0ge1xuICAgIGlmICh0aGlzLnBhcmVudFJlZmVyZW5jZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogdGhpcy5wYXJlbnRSZWZlcmVuY2Uub2Zmc2V0V2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5wYXJlbnRSZWZlcmVuY2Uub2Zmc2V0SGVpZ2h0XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhcmVudFJlZmVyZW5jZSBpbnN0YW5jZW9mIFNWR0dyYXBoaWNzRWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50UmVmZXJlbmNlLmdldEJCb3goKVxuICAgIH1cblxuICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,49 +1,135 @@
|
|
|
1
|
-
import { computed, inject, signal } from '@angular/core';
|
|
1
|
+
import { computed, effect, inject, signal } from '@angular/core';
|
|
2
|
+
import { isDynamicNode } from '../interfaces/node.interface';
|
|
2
3
|
import { isDefined } from '../utils/is-defined';
|
|
3
4
|
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
4
5
|
import { FlowSettingsService } from '../services/flow-settings.service';
|
|
5
|
-
import {
|
|
6
|
+
import { animationFrameScheduler, observeOn, } from 'rxjs';
|
|
6
7
|
import { CustomNodeComponent } from '../public-components/custom-node.component';
|
|
8
|
+
import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node.component';
|
|
9
|
+
import { FlowEntitiesService } from '../services/flow-entities.service';
|
|
7
10
|
export class NodeModel {
|
|
8
|
-
static { this.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}; }
|
|
11
|
+
static { this.defaultWidth = 100; }
|
|
12
|
+
static { this.defaultHeight = 50; }
|
|
13
|
+
static { this.defaultColor = '#1b262c'; }
|
|
12
14
|
constructor(node) {
|
|
13
15
|
this.node = node;
|
|
14
16
|
this.flowSettingsService = inject(FlowSettingsService);
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
17
|
+
this.entitiesService = inject(FlowEntitiesService);
|
|
18
|
+
this.internalPoint = this.createInternalPointSignal();
|
|
19
|
+
this.throttledPoint$ = toObservable(this.internalPoint).pipe(observeOn(animationFrameScheduler));
|
|
17
20
|
this.point = toSignal(this.throttledPoint$, {
|
|
18
|
-
initialValue: this.internalPoint
|
|
21
|
+
initialValue: this.internalPoint()
|
|
19
22
|
});
|
|
20
23
|
this.point$ = this.throttledPoint$;
|
|
21
24
|
this.size = signal({ width: 0, height: 0 });
|
|
22
25
|
this.renderOrder = signal(0);
|
|
23
26
|
this.selected = signal(false);
|
|
24
27
|
this.selected$ = toObservable(this.selected);
|
|
25
|
-
this.
|
|
28
|
+
this.globalPoint = computed(() => {
|
|
29
|
+
let parent = this.parent();
|
|
30
|
+
let x = this.point().x;
|
|
31
|
+
let y = this.point().y;
|
|
32
|
+
while (parent !== null) {
|
|
33
|
+
x += parent.point().x;
|
|
34
|
+
y += parent.point().y;
|
|
35
|
+
parent = parent.parent();
|
|
36
|
+
}
|
|
37
|
+
return { x, y };
|
|
38
|
+
});
|
|
39
|
+
this.pointTransform = computed(() => `translate(${this.globalPoint().x}, ${this.globalPoint().y})`);
|
|
26
40
|
// Now source and handle positions derived from parent flow
|
|
27
41
|
this.sourcePosition = computed(() => this.flowSettingsService.handlePositions().source);
|
|
28
42
|
this.targetPosition = computed(() => this.flowSettingsService.handlePositions().target);
|
|
29
43
|
this.handles = signal([]);
|
|
30
44
|
this.handles$ = toObservable(this.handles);
|
|
31
|
-
this.draggable = true;
|
|
45
|
+
this.draggable = signal(true);
|
|
32
46
|
// disabled for configuration for now
|
|
33
47
|
this.magnetRadius = 20;
|
|
34
|
-
|
|
48
|
+
// TODO: not sure if we need to statically store it
|
|
49
|
+
this.isComponentType = CustomNodeComponent.isPrototypeOf(this.node.type) ||
|
|
50
|
+
CustomDynamicNodeComponent.isPrototypeOf(this.node.type);
|
|
51
|
+
// Default node specific thing
|
|
52
|
+
this.text = this.createTextSignal();
|
|
53
|
+
// Component node specific thing
|
|
35
54
|
this.componentTypeInputs = computed(() => {
|
|
36
55
|
return {
|
|
37
56
|
node: this.node,
|
|
38
57
|
_selected: this.selected()
|
|
39
58
|
};
|
|
40
59
|
});
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
|
|
60
|
+
this.parent = computed(() => this.entitiesService.nodes().find(n => n.node.id === this.parentId()) ?? null);
|
|
61
|
+
this.color = signal(NodeModel.defaultColor);
|
|
62
|
+
this.parentId = signal(null);
|
|
63
|
+
if (isDefined(node.draggable)) {
|
|
64
|
+
if (isDynamicNode(node)) {
|
|
65
|
+
this.draggable = node.draggable;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.draggable.set(node.draggable);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (isDefined(node.parentId)) {
|
|
72
|
+
if (isDynamicNode(node)) {
|
|
73
|
+
this.parentId = node.parentId;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.parentId.set(node.parentId);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (node.type === 'default-group' && node.color) {
|
|
80
|
+
if (isDynamicNode(node)) {
|
|
81
|
+
this.color = node.color;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.color.set(node.color);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
44
87
|
}
|
|
45
88
|
setPoint(point) {
|
|
46
|
-
this.internalPoint
|
|
89
|
+
this.internalPoint.set(point);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* TODO find the way to implement this better
|
|
93
|
+
*/
|
|
94
|
+
linkDefaultNodeSizeWithModelSize() {
|
|
95
|
+
const node = this.node;
|
|
96
|
+
switch (node.type) {
|
|
97
|
+
case 'default':
|
|
98
|
+
case 'default-group':
|
|
99
|
+
case 'template-group': {
|
|
100
|
+
if (isDynamicNode(node)) {
|
|
101
|
+
effect(() => {
|
|
102
|
+
this.size.set({
|
|
103
|
+
width: node.width?.() ?? NodeModel.defaultWidth,
|
|
104
|
+
height: node.height?.() ?? NodeModel.defaultHeight,
|
|
105
|
+
});
|
|
106
|
+
}, { allowSignalWrites: true });
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.size.set({
|
|
110
|
+
width: node.width ?? NodeModel.defaultWidth,
|
|
111
|
+
height: node.height ?? NodeModel.defaultHeight
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
createTextSignal() {
|
|
118
|
+
const node = this.node;
|
|
119
|
+
if (node.type === 'default') {
|
|
120
|
+
if (isDynamicNode(node)) {
|
|
121
|
+
return node.text ?? signal('');
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return signal(node.text ?? '');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return signal('');
|
|
128
|
+
}
|
|
129
|
+
createInternalPointSignal() {
|
|
130
|
+
return isDynamicNode(this.node)
|
|
131
|
+
? this.node.point
|
|
132
|
+
: signal({ x: this.node.point.x, y: this.node.point.y });
|
|
47
133
|
}
|
|
48
134
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVEsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFHbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFFaEYsTUFBTSxPQUFPLFNBQVM7YUFDTixvQkFBZSxHQUFHO1FBQzlCLEtBQUssRUFBRSxHQUFHO1FBQ1YsTUFBTSxFQUFFLEVBQUU7S0FDWCxBQUg0QixDQUc1QjtJQStDRCxZQUNTLElBQWE7UUFBYixTQUFJLEdBQUosSUFBSSxDQUFTO1FBOUNkLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRWpELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRXBELG9CQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ2hELFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUNuQyxDQUFBO1FBRU0sVUFBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzVDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRTtTQUM3QyxDQUFDLENBQUE7UUFFSyxXQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUU5QixTQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUV0QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUV2QixhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hCLGNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZDLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUV6RiwyREFBMkQ7UUFDcEQsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2xGLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUVsRixZQUFPLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQTtRQUVuQyxhQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVyQyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBRXZCLHFDQUFxQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUUxQixvQkFBZSxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRW5FLHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDekMsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7YUFDM0IsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBS0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFekIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUNoRSxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSdcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL2lzLWRlZmluZWQnXG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4vaGFuZGxlLm1vZGVsJ1xuaW1wb3J0IHsgRmxvd0VudGl0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZmxvdy1lbnRpdHkuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgRmxvd1NldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctc2V0dGluZ3Muc2VydmljZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIG9ic2VydmVPbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQ3VzdG9tTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlLmNvbXBvbmVudCdcblxuZXhwb3J0IGNsYXNzIE5vZGVNb2RlbDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0VHlwZVNpemUgPSB7XG4gICAgd2lkdGg6IDEwMCxcbiAgICBoZWlnaHQ6IDUwXG4gIH1cblxuICBwcml2YXRlIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSlcblxuICBwcml2YXRlIGludGVybmFsUG9pbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7IHg6IDAsIHk6IDAgfSlcblxuICBwcml2YXRlIHRocm90dGxlZFBvaW50JCA9IHRoaXMuaW50ZXJuYWxQb2ludCQucGlwZShcbiAgICBvYnNlcnZlT24oYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpXG4gIClcblxuICBwdWJsaWMgcG9pbnQgPSB0b1NpZ25hbCh0aGlzLnRocm90dGxlZFBvaW50JCwge1xuICAgIGluaXRpYWxWYWx1ZTogdGhpcy5pbnRlcm5hbFBvaW50JC5nZXRWYWx1ZSgpXG4gIH0pXG5cbiAgcHVibGljIHBvaW50JCA9IHRoaXMudGhyb3R0bGVkUG9pbnQkO1xuXG4gIHB1YmxpYyBzaXplID0gc2lnbmFsKHsgd2lkdGg6IDAsIGhlaWdodDogMCB9KVxuXG4gIHB1YmxpYyByZW5kZXJPcmRlciA9IHNpZ25hbCgwKVxuXG4gIHB1YmxpYyBzZWxlY3RlZCA9IHNpZ25hbChmYWxzZSlcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKVxuXG4gIHB1YmxpYyBwb2ludFRyYW5zZm9ybSA9IGNvbXB1dGVkKCgpID0+IGB0cmFuc2xhdGUoJHt0aGlzLnBvaW50KCkueH0sICR7dGhpcy5wb2ludCgpLnl9KWApXG5cbiAgLy8gTm93IHNvdXJjZSBhbmQgaGFuZGxlIHBvc2l0aW9ucyBkZXJpdmVkIGZyb20gcGFyZW50IGZsb3dcbiAgcHVibGljIHNvdXJjZVBvc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmhhbmRsZVBvc2l0aW9ucygpLnNvdXJjZSlcbiAgcHVibGljIHRhcmdldFBvc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmhhbmRsZVBvc2l0aW9ucygpLnRhcmdldClcblxuICBwdWJsaWMgaGFuZGxlcyA9IHNpZ25hbDxIYW5kbGVNb2RlbFtdPihbXSlcblxuICBwdWJsaWMgaGFuZGxlcyQgPSB0b09ic2VydmFibGUodGhpcy5oYW5kbGVzKVxuXG4gIHB1YmxpYyBkcmFnZ2FibGUgPSB0cnVlXG5cbiAgLy8gZGlzYWJsZWQgZm9yIGNvbmZpZ3VyYXRpb24gZm9yIG5vd1xuICBwdWJsaWMgcmVhZG9ubHkgbWFnbmV0UmFkaXVzID0gMjBcblxuICBwdWJsaWMgaXNDb21wb25lbnRUeXBlID0gQ3VzdG9tTm9kZUNvbXBvbmVudC5pc1Byb3RvdHlwZU9mKHRoaXMubm9kZS50eXBlKVxuXG4gIHB1YmxpYyBjb21wb25lbnRUeXBlSW5wdXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBub2RlOiB0aGlzLm5vZGUsXG4gICAgICBfc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQoKVxuICAgIH1cbiAgfSlcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPlxuICApIHtcbiAgICB0aGlzLnNldFBvaW50KG5vZGUucG9pbnQpXG5cbiAgICBpZiAoaXNEZWZpbmVkKG5vZGUuZHJhZ2dhYmxlKSkgdGhpcy5kcmFnZ2FibGUgPSBub2RlLmRyYWdnYWJsZVxuICB9XG5cbiAgcHVibGljIHNldFBvaW50KHBvaW50OiBQb2ludCkge1xuICAgIHRoaXMuaW50ZXJuYWxQb2ludCQubmV4dChwb2ludCk7XG4gIH1cbn1cbiJdfQ==
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hFLE9BQU8sRUFBcUIsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFHbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsR0FBRyxNQUFNLE1BQU0sQ0FBQTtBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQTtBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUV2RSxNQUFNLE9BQU8sU0FBUzthQUNMLGlCQUFZLEdBQUcsR0FBRyxBQUFOLENBQU07YUFDbEIsa0JBQWEsR0FBRyxFQUFFLEFBQUwsQ0FBSzthQUNsQixpQkFBWSxHQUFHLFNBQVMsQUFBWixDQUFZO0lBZ0Z2QyxZQUNTLElBQThCO1FBQTlCLFNBQUksR0FBSixJQUFJLENBQTBCO1FBL0UvQix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENB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LENBQUE7YUFDL0I7aUJBQU07Z0JBQ0wsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTthQUMvQjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDakIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRHluYW1pY05vZGUsIE5vZGUsIGlzRHluYW1pY05vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvaXMtZGVmaW5lZCdcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCdcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi9oYW5kbGUubW9kZWwnXG5pbXBvcnQgeyBGbG93RW50aXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9mbG93LWVudGl0eS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBGbG93U2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmxvdy1zZXR0aW5ncy5zZXJ2aWNlJ1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIG9ic2VydmVPbiwgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSdcbmltcG9ydCB7IEN1c3RvbU5vZGVDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtY29tcG9uZW50cy9jdXN0b20tbm9kZS5jb21wb25lbnQnXG5pbXBvcnQgeyBDdXN0b21EeW5hbWljTm9kZUNvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1keW5hbWljLW5vZGUuY29tcG9uZW50J1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSdcblxuZXhwb3J0IGNsYXNzIE5vZGVNb2RlbDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBGbG93RW50aXR5IHtcbiAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFdpZHRoID0gMTAwXG4gIHByaXZhdGUgc3RhdGljIGRlZmF1bHRIZWlnaHQgPSA1MFxuICBwcml2YXRlIHN0YXRpYyBkZWZhdWx0Q29sb3IgPSAnIzFiMjYyYydcblxuICBwcml2YXRlIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSlcbiAgcHJpdmF0ZSBlbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBpbnRlcm5hbFBvaW50ID0gdGhpcy5jcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKClcblxuICBwcml2YXRlIHRocm90dGxlZFBvaW50JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmludGVybmFsUG9pbnQpLnBpcGUoXG4gICAgb2JzZXJ2ZU9uKGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKVxuICApXG5cbiAgcHVibGljIHBvaW50ID0gdG9TaWduYWwodGhpcy50aHJvdHRsZWRQb2ludCQsIHtcbiAgICBpbml0aWFsVmFsdWU6IHRoaXMuaW50ZXJuYWxQb2ludCgpXG4gIH0pXG5cbiAgcHVibGljIHBvaW50JCA9IHRoaXMudGhyb3R0bGVkUG9pbnQkO1xuXG4gIHB1YmxpYyBzaXplID0gc2lnbmFsKHsgd2lkdGg6IDAsIGhlaWdodDogMCB9KVxuXG4gIHB1YmxpYyByZW5kZXJPcmRlciA9IHNpZ25hbCgwKVxuXG4gIHB1YmxpYyBzZWxlY3RlZCA9IHNpZ25hbChmYWxzZSlcbiAgcHVibGljIHNlbGVjdGVkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnNlbGVjdGVkKVxuXG4gIHB1YmxpYyBnbG9iYWxQb2ludCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBsZXQgcGFyZW50ID0gdGhpcy5wYXJlbnQoKVxuICAgIGxldCB4ID0gdGhpcy5wb2ludCgpLnhcbiAgICBsZXQgeSA9IHRoaXMucG9pbnQoKS55XG5cbiAgICB3aGlsZSAocGFyZW50ICE9PSBudWxsKSB7XG4gICAgICB4ICs9IHBhcmVudC5wb2ludCgpLnhcbiAgICAgIHkgKz0gcGFyZW50LnBvaW50KCkueVxuXG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50KClcbiAgICB9XG5cbiAgICByZXR1cm4geyB4LCB5IH1cbiAgfSlcblxuICBwdWJsaWMgcG9pbnRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PlxuICAgIGB0cmFuc2xhdGUoJHt0aGlzLmdsb2JhbFBvaW50KCkueH0sICR7dGhpcy5nbG9iYWxQb2ludCgpLnl9KWBcbiAgKVxuXG4gIC8vIE5vdyBzb3VyY2UgYW5kIGhhbmRsZSBwb3NpdGlvbnMgZGVyaXZlZCBmcm9tIHBhcmVudCBmbG93XG4gIHB1YmxpYyBzb3VyY2VQb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5oYW5kbGVQb3NpdGlvbnMoKS5zb3VyY2UpXG4gIHB1YmxpYyB0YXJnZXRQb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5oYW5kbGVQb3NpdGlvbnMoKS50YXJnZXQpXG5cbiAgcHVibGljIGhhbmRsZXMgPSBzaWduYWw8SGFuZGxlTW9kZWxbXT4oW10pXG5cbiAgcHVibGljIGhhbmRsZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFuZGxlcylcblxuICBwdWJsaWMgZHJhZ2dhYmxlID0gc2lnbmFsKHRydWUpXG5cbiAgLy8gZGlzYWJsZWQgZm9yIGNvbmZpZ3VyYXRpb24gZm9yIG5vd1xuICBwdWJsaWMgcmVhZG9ubHkgbWFnbmV0UmFkaXVzID0gMjBcblxuICAvLyBUT0RPOiBub3Qgc3VyZSBpZiB3ZSBuZWVkIHRvIHN0YXRpY2FsbHkgc3RvcmUgaXRcbiAgcHVibGljIGlzQ29tcG9uZW50VHlwZSA9XG4gICAgQ3VzdG9tTm9kZUNvbXBvbmVudC5pc1Byb3RvdHlwZU9mKHRoaXMubm9kZS50eXBlKSB8fFxuICAgIEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50LmlzUHJvdG90eXBlT2YodGhpcy5ub2RlLnR5cGUpXG5cbiAgLy8gRGVmYXVsdCBub2RlIHNwZWNpZmljIHRoaW5nXG4gIHB1YmxpYyB0ZXh0ID0gdGhpcy5jcmVhdGVUZXh0U2lnbmFsKClcblxuICAvLyBDb21wb25lbnQgbm9kZSBzcGVjaWZpYyB0aGluZ1xuICBwdWJsaWMgY29tcG9uZW50VHlwZUlucHV0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbm9kZTogdGhpcy5ub2RlLFxuICAgICAgX3NlbGVjdGVkOiB0aGlzLnNlbGVjdGVkKClcbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHBhcmVudCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5lbnRpdGllc1NlcnZpY2Uubm9kZXMoKS5maW5kKG4gPT4gbi5ub2RlLmlkID09PSB0aGlzLnBhcmVudElkKCkpID8/IG51bGxcbiAgKVxuXG4gIHB1YmxpYyBjb2xvciA9IHNpZ25hbChOb2RlTW9kZWwuZGVmYXVsdENvbG9yKVxuXG4gIHByaXZhdGUgcGFyZW50SWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPiB8IER5bmFtaWNOb2RlPFQ+XG4gICkge1xuICAgIGlmIChpc0RlZmluZWQobm9kZS5kcmFnZ2FibGUpKSB7XG4gICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZSA9IG5vZGUuZHJhZ2dhYmxlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRyYWdnYWJsZS5zZXQobm9kZS5kcmFnZ2FibGUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzRGVmaW5lZChub2RlLnBhcmVudElkKSkge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgdGhpcy5wYXJlbnRJZCA9IG5vZGUucGFyZW50SWRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFyZW50SWQuc2V0KG5vZGUucGFyZW50SWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmF1bHQtZ3JvdXAnICYmIG5vZGUuY29sb3IpIHtcbiAgICAgIGlmIChpc0R5bmFtaWNOb2RlKG5vZGUpKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSBub2RlLmNvbG9yXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbG9yLnNldChub2RlLmNvbG9yKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQb2ludChwb2ludDogUG9pbnQpIHtcbiAgICB0aGlzLmludGVybmFsUG9pbnQuc2V0KHBvaW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPIGZpbmQgdGhlIHdheSB0byBpbXBsZW1lbnQgdGhpcyBiZXR0ZXJcbiAgICovXG4gIHB1YmxpYyBsaW5rRGVmYXVsdE5vZGVTaXplV2l0aE1vZGVsU2l6ZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlXG5cbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICBjYXNlICdkZWZhdWx0LWdyb3VwJzpcbiAgICAgIGNhc2UgJ3RlbXBsYXRlLWdyb3VwJzoge1xuICAgICAgICBpZiAoaXNEeW5hbWljTm9kZShub2RlKSkge1xuICAgICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNpemUuc2V0KHtcbiAgICAgICAgICAgICAgd2lkdGg6IG5vZGUud2lkdGg/LigpID8/IE5vZGVNb2RlbC5kZWZhdWx0V2lkdGgsXG4gICAgICAgICAgICAgIGhlaWdodDogbm9kZS5oZWlnaHQ/LigpID8/IE5vZGVNb2RlbC5kZWZhdWx0SGVpZ2h0LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaXplLnNldCh7XG4gICAgICAgICAgICB3aWR0aDogbm9kZS53aWR0aCA/PyBOb2RlTW9kZWwuZGVmYXVsdFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBub2RlLmhlaWdodCA/PyBOb2RlTW9kZWwuZGVmYXVsdEhlaWdodFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRTaWduYWwoKTogU2lnbmFsPHN0cmluZz4ge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVcblxuICAgIGlmIChub2RlLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgaWYgKGlzRHluYW1pY05vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUudGV4dCA/PyBzaWduYWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2lnbmFsKG5vZGUudGV4dCA/PyAnJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2lnbmFsKCcnKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcm5hbFBvaW50U2lnbmFsKCkge1xuICAgIHJldHVybiBpc0R5bmFtaWNOb2RlKHRoaXMubm9kZSlcbiAgICAgID8gdGhpcy5ub2RlLnBvaW50XG4gICAgICA6IHNpZ25hbCh7IHg6IHRoaXMubm9kZS5wb2ludC54LCB5OiB0aGlzLm5vZGUucG9pbnQueSB9KVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Directive, Input } from "@angular/core";
|
|
2
|
+
import { CustomNodeBaseComponent } from "../components/custom-node-base/custom-node-base.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CustomDynamicNodeComponent extends CustomNodeBaseComponent {
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
if (this.node.data) {
|
|
7
|
+
this.data = this.node.data;
|
|
8
|
+
}
|
|
9
|
+
super.ngOnInit();
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomDynamicNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomDynamicNodeComponent, inputs: { node: "node" }, usesInheritance: true, ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomDynamicNodeComponent, decorators: [{
|
|
15
|
+
type: Directive
|
|
16
|
+
}], propDecorators: { node: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}] } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvcHVibGljLWNvbXBvbmVudHMvY3VzdG9tLWR5bmFtaWMtbm9kZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUE7QUFFeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkRBQTJELENBQUM7O0FBR3BHLE1BQU0sT0FBZ0IsMEJBQXdDLFNBQVEsdUJBQTBCO0lBTzlFLFFBQVE7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1NBQzNCO1FBRUQsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2xCLENBQUM7K0dBYm1CLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUQvQyxTQUFTOzhCQU1RLElBQUk7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXG5pbXBvcnQgeyBDb21wb25lbnREeW5hbWljTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3VzdG9tTm9kZUJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9jdXN0b20tbm9kZS1iYXNlL2N1c3RvbS1ub2RlLWJhc2UuY29tcG9uZW50XCI7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1c3RvbUR5bmFtaWNOb2RlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEN1c3RvbU5vZGVCYXNlQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBub2RlIGJvdW5kIHRvIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgbm9kZSE6IENvbXBvbmVudER5bmFtaWNOb2RlPFQ+XG5cbiAgcHVibGljIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vZGUuZGF0YSkge1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5ub2RlLmRhdGFcbiAgICB9XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpXG4gIH1cbn1cblxuIl19
|
|
@@ -1,51 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { merge, tap } from "rxjs";
|
|
4
|
-
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
1
|
+
import { Directive, Input } from "@angular/core";
|
|
2
|
+
import { CustomNodeBaseComponent } from "../components/custom-node-base/custom-node-base.component";
|
|
5
3
|
import * as i0 from "@angular/core";
|
|
6
|
-
export class CustomNodeComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.eventBus = inject(ComponentEventBusService);
|
|
9
|
-
this.destroyRef = inject(DestroyRef);
|
|
10
|
-
/**
|
|
11
|
-
* Signal with selected state of node
|
|
12
|
-
*/
|
|
13
|
-
this.selected = signal(false);
|
|
14
|
-
}
|
|
15
|
-
set _selected(value) {
|
|
16
|
-
this.selected.set(value);
|
|
17
|
-
}
|
|
4
|
+
export class CustomNodeComponent extends CustomNodeBaseComponent {
|
|
18
5
|
ngOnInit() {
|
|
19
|
-
this.
|
|
20
|
-
|
|
21
|
-
trackEvents() {
|
|
22
|
-
const props = Object.getOwnPropertyNames(this);
|
|
23
|
-
const emitters = new Map();
|
|
24
|
-
for (const prop of props) {
|
|
25
|
-
const field = this[prop];
|
|
26
|
-
if (field instanceof EventEmitter) {
|
|
27
|
-
emitters.set(field, prop);
|
|
28
|
-
}
|
|
6
|
+
if (this.node.data) {
|
|
7
|
+
this.data.set(this.node.data);
|
|
29
8
|
}
|
|
30
|
-
|
|
31
|
-
this.eventBus.pushEvent({
|
|
32
|
-
nodeId: this.node.id,
|
|
33
|
-
eventName: emitters.get(emitter),
|
|
34
|
-
eventPayload: event
|
|
35
|
-
});
|
|
36
|
-
}))))
|
|
37
|
-
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
38
|
-
.subscribe();
|
|
9
|
+
super.ngOnInit();
|
|
39
10
|
}
|
|
40
|
-
;
|
|
41
|
-
static { this.ɵ
|
|
42
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomNodeComponent, inputs: { node: "node", _selected: "_selected" }, ngImport: i0 }); }
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CustomNodeComponent, inputs: { node: "node" }, usesInheritance: true, ngImport: i0 }); }
|
|
43
13
|
}
|
|
44
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomNodeComponent, decorators: [{
|
|
45
15
|
type: Directive
|
|
46
16
|
}], propDecorators: { node: [{
|
|
47
17
|
type: Input
|
|
48
|
-
}], _selected: [{
|
|
49
|
-
type: Input
|
|
50
18
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3B1YmxpYy1jb21wb25lbnRzL2N1c3RvbS1ub2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7QUFHcEcsTUFBTSxPQUFnQixtQkFBaUMsU0FBUSx1QkFBMEI7SUFPdkUsUUFBUTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDOUI7UUFFRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbEIsQ0FBQzsrR0FibUIsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVM7OEJBTVEsSUFBSTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcbmltcG9ydCB7IENvbXBvbmVudE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEN1c3RvbU5vZGVCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvY3VzdG9tLW5vZGUtYmFzZS9jdXN0b20tbm9kZS1iYXNlLmNvbXBvbmVudFwiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDdXN0b21Ob2RlQ29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEN1c3RvbU5vZGVCYXNlQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBub2RlIGJvdW5kIHRvIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgbm9kZSE6IENvbXBvbmVudE5vZGU8VD5cblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm9kZS5kYXRhKSB7XG4gICAgICB0aGlzLmRhdGEuc2V0KHRoaXMubm9kZS5kYXRhKVxuICAgIH1cblxuICAgIHN1cGVyLm5nT25Jbml0KClcbiAgfVxufVxuXG4iXX0=
|
|
@@ -5,18 +5,24 @@ import { round } from '../utils/round';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class DraggableService {
|
|
7
7
|
/**
|
|
8
|
-
* Enable
|
|
9
|
-
* model contains draggable flag which declares if draggable should be enabled or not
|
|
8
|
+
* Enable draggable behavior for element.
|
|
10
9
|
*
|
|
11
10
|
* @param element target element for toggling draggable
|
|
12
11
|
* @param model model with data for this element
|
|
13
12
|
*/
|
|
14
|
-
|
|
13
|
+
enable(element, model) {
|
|
15
14
|
const d3Element = select(element);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
d3Element.call(this.getDragBehavior(model));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Disable draggable behavior for element.
|
|
19
|
+
*
|
|
20
|
+
* @param element target element for toggling draggable
|
|
21
|
+
* @param model model with data for this element
|
|
22
|
+
*/
|
|
23
|
+
disable(element) {
|
|
24
|
+
const d3Element = select(element);
|
|
25
|
+
d3Element.call(this.getIgnoreDragBehavior());
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
28
|
* TODO: not shure if this work, need to check
|
|
@@ -41,10 +47,19 @@ export class DraggableService {
|
|
|
41
47
|
deltaY = model.point().y - event.y;
|
|
42
48
|
})
|
|
43
49
|
.on('drag', (event) => {
|
|
44
|
-
|
|
50
|
+
let point = {
|
|
45
51
|
x: round(event.x + deltaX),
|
|
46
52
|
y: round(event.y + deltaY)
|
|
47
|
-
}
|
|
53
|
+
};
|
|
54
|
+
const parent = model.parent();
|
|
55
|
+
// keep node in bounds of parent
|
|
56
|
+
if (parent) {
|
|
57
|
+
point.x = Math.min(parent.size().width - model.size().width, point.x);
|
|
58
|
+
point.x = Math.max(0, point.x);
|
|
59
|
+
point.y = Math.min(parent.size().height - model.size().height, point.y);
|
|
60
|
+
point.y = Math.max(0, point.y);
|
|
61
|
+
}
|
|
62
|
+
model.setPoint(point);
|
|
48
63
|
});
|
|
49
64
|
}
|
|
50
65
|
/**
|
|
@@ -63,4 +78,4 @@ export class DraggableService {
|
|
|
63
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DraggableService, decorators: [{
|
|
64
79
|
type: Injectable
|
|
65
80
|
}] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvZHJhZ2dhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQWUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFnQixFQUFFLEtBQWdCO1FBQzlDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUVqQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUMsT0FBZ0I7UUFDN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWpDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxPQUFnQjtRQUM3QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsS0FBZ0I7UUFDdEMsSUFBSSxNQUFjLENBQUE7UUFDbEIsSUFBSSxNQUFjLENBQUE7UUFFbEIsT0FBTyxJQUFJLEVBQUU7YUFDVixFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDbEMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNwQyxDQUFDLENBQUM7YUFFRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQy9CLElBQUksS0FBSyxHQUFHO2dCQUNWLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQzFCLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7YUFDM0IsQ0FBQTtZQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQTtZQUM3QixnQ0FBZ0M7WUFDaEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3JFLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUU5QixLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDdkUsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDL0I7WUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNLLHFCQUFxQjtRQUMzQixPQUFPLElBQUksRUFBRTthQUNWLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDOUIsS0FBSyxDQUFDLFdBQXFCLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDaEQsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDOytHQS9FVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZWxlY3QgfSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgRDNEcmFnRXZlbnQsIGRyYWcgfSBmcm9tICdkMy1kcmFnJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub2RlLm1vZGVsJztcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSAnLi4vdXRpbHMvcm91bmQnO1xuXG50eXBlIERyYWdFdmVudCA9IEQzRHJhZ0V2ZW50PEVsZW1lbnQsIHVua25vd24sIHVua25vd24+XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEcmFnZ2FibGVTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBkcmFnZ2FibGUgYmVoYXZpb3IgZm9yIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IHRhcmdldCBlbGVtZW50IGZvciB0b2dnbGluZyBkcmFnZ2FibGVcbiAgICogQHBhcmFtIG1vZGVsIG1vZGVsIHdpdGggZGF0YSBmb3IgdGhpcyBlbGVtZW50XG4gICAqL1xuICBwdWJsaWMgZW5hYmxlKGVsZW1lbnQ6IEVsZW1lbnQsIG1vZGVsOiBOb2RlTW9kZWwpIHtcbiAgICBjb25zdCBkM0VsZW1lbnQgPSBzZWxlY3QoZWxlbWVudClcblxuICAgIGQzRWxlbWVudC5jYWxsKHRoaXMuZ2V0RHJhZ0JlaGF2aW9yKG1vZGVsKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGRyYWdnYWJsZSBiZWhhdmlvciBmb3IgZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnQgdGFyZ2V0IGVsZW1lbnQgZm9yIHRvZ2dsaW5nIGRyYWdnYWJsZVxuICAgKiBAcGFyYW0gbW9kZWwgbW9kZWwgd2l0aCBkYXRhIGZvciB0aGlzIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICBjb25zdCBkM0VsZW1lbnQgPSBzZWxlY3QoZWxlbWVudClcblxuICAgIGQzRWxlbWVudC5jYWxsKHRoaXMuZ2V0SWdub3JlRHJhZ0JlaGF2aW9yKCkpXG4gIH1cblxuICAvKipcbiAgICogVE9ETzogbm90IHNodXJlIGlmIHRoaXMgd29yaywgbmVlZCB0byBjaGVja1xuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koZWxlbWVudDogRWxlbWVudCkge1xuICAgIHNlbGVjdChlbGVtZW50KS5vbignLmRyYWcnLCBudWxsKVxuICB9XG5cbiAgLyoqXG4gICAqIE5vZGUgZHJhZyBiZWhhdmlvci4gVXBkYXRlZCBub2RlJ3MgY29vcmRpbmF0ZSBhY2NvcmRpbmcgdG8gZHJhZ2dpbmdcbiAgICpcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIGdldERyYWdCZWhhdmlvcihtb2RlbDogTm9kZU1vZGVsKSB7XG4gICAgbGV0IGRlbHRhWDogbnVtYmVyXG4gICAgbGV0IGRlbHRhWTogbnVtYmVyXG5cbiAgICByZXR1cm4gZHJhZygpXG4gICAgICAub24oJ3N0YXJ0JywgKGV2ZW50OiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgZGVsdGFYID0gbW9kZWwucG9pbnQoKS54IC0gZXZlbnQueFxuICAgICAgICBkZWx0YVkgPSBtb2RlbC5wb2ludCgpLnkgLSBldmVudC55XG4gICAgICB9KVxuXG4gICAgICAub24oJ2RyYWcnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgICAgICBsZXQgcG9pbnQgPSB7XG4gICAgICAgICAgeDogcm91bmQoZXZlbnQueCArIGRlbHRhWCksXG4gICAgICAgICAgeTogcm91bmQoZXZlbnQueSArIGRlbHRhWSlcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IG1vZGVsLnBhcmVudCgpXG4gICAgICAgIC8vIGtlZXAgbm9kZSBpbiBib3VuZHMgb2YgcGFyZW50XG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICBwb2ludC54ID0gTWF0aC5taW4ocGFyZW50LnNpemUoKS53aWR0aCAtIG1vZGVsLnNpemUoKS53aWR0aCwgcG9pbnQueClcbiAgICAgICAgICBwb2ludC54ID0gTWF0aC5tYXgoMCwgcG9pbnQueClcblxuICAgICAgICAgIHBvaW50LnkgPSBNYXRoLm1pbihwYXJlbnQuc2l6ZSgpLmhlaWdodCAtIG1vZGVsLnNpemUoKS5oZWlnaHQsIHBvaW50LnkpXG4gICAgICAgICAgcG9pbnQueSA9IE1hdGgubWF4KDAsIHBvaW50LnkpXG4gICAgICAgIH1cblxuICAgICAgICBtb2RlbC5zZXRQb2ludChwb2ludClcbiAgICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmeSBpZ25vcmluZyBkcmFnIGJlaGF2aW9yLiBJdCdzIHJlc3BvbnNpYmxlIGZvciBub3QgbW92aW5nIHRoZSBtYXAgd2hlbiB1c2VyIHRyaWVzIHRvIGRyYWcgbm9kZVxuICAgKiB3aXRoIGRpc2FibGVkIGRyYWcgYmVoYXZpb3JcbiAgICovXG4gIHByaXZhdGUgZ2V0SWdub3JlRHJhZ0JlaGF2aW9yKCkge1xuICAgIHJldHVybiBkcmFnKClcbiAgICAgIC5vbignZHJhZycsIChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgIChldmVudC5zb3VyY2VFdmVudCBhcyBFdmVudCkuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
1
2
|
import { Injectable, signal } from '@angular/core';
|
|
3
|
+
import { Microtask } from '../decorators/microtask.decorator';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export class HandleService {
|
|
4
6
|
constructor() {
|
|
@@ -19,7 +21,10 @@ export class HandleService {
|
|
|
19
21
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
22
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleService }); }
|
|
21
23
|
}
|
|
24
|
+
__decorate([
|
|
25
|
+
Microtask // TODO fixes rendering of handle for group node
|
|
26
|
+
], HandleService.prototype, "createHandle", null);
|
|
22
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleService, decorators: [{
|
|
23
28
|
type: Injectable
|
|
24
|
-
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
}], propDecorators: { createHandle: [] } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvaGFuZGxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBVzlELE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRWtCLFNBQUksR0FBRyxNQUFNLENBQW1CLElBQUksQ0FBQyxDQUFBO0tBa0J0RDtJQWZRLFlBQVksQ0FBQyxTQUFzQjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDeEIsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQTtTQUN4RDtJQUNILENBQUM7SUFFTSxhQUFhLENBQUMsY0FBMkI7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3hCLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsQ0FDL0QsQ0FBQTtTQUNGO0lBQ0gsQ0FBQzsrR0FsQlUsYUFBYTttSEFBYixhQUFhOztBQUlqQjtJQUROLFNBQVMsQ0FBQyxnREFBZ0Q7aURBTTFEOzRGQVRVLGFBQWE7a0JBRHpCLFVBQVU7OEJBS0YsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFNpZ25hbCwgVGVtcGxhdGVSZWYsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi90eXBlcy9wb3NpdGlvbi50eXBlJztcbmltcG9ydCB7IEhhbmRsZVR5cGUgfSBmcm9tICcuLi90eXBlcy9oYW5kbGUtdHlwZS50eXBlJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub2RlLm1vZGVsJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2hhbmRsZS5tb2RlbCc7XG5pbXBvcnQgeyBNaWNyb3Rhc2sgfSBmcm9tICcuLi9kZWNvcmF0b3JzL21pY3JvdGFzay5kZWNvcmF0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVIYW5kbGUge1xuICBwb3NpdGlvbjogUG9zaXRpb25cbiAgdHlwZTogSGFuZGxlVHlwZVxuICBpZD86IHN0cmluZ1xuICBwYXJlbnRSZWZlcmVuY2U/OiBFbGVtZW50XG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGFuZGxlU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBub2RlID0gc2lnbmFsPE5vZGVNb2RlbCB8IG51bGw+KG51bGwpXG5cbiAgQE1pY3JvdGFzayAvLyBUT0RPIGZpeGVzIHJlbmRlcmluZyBvZiBoYW5kbGUgZm9yIGdyb3VwIG5vZGVcbiAgcHVibGljIGNyZWF0ZUhhbmRsZShuZXdIYW5kbGU6IEhhbmRsZU1vZGVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZSgpXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuaGFuZGxlcy51cGRhdGUoaGFuZGxlcyA9PiBbLi4uaGFuZGxlcywgbmV3SGFuZGxlXSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveUhhbmRsZShoYW5kbGVUb0Rlc3RveTogSGFuZGxlTW9kZWwpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlKClcbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5oYW5kbGVzLnVwZGF0ZShcbiAgICAgICAgaGFuZGxlcyA9PiBoYW5kbGVzLmZpbHRlcihoYW5kbGUgPT4gaGFuZGxlICE9PSBoYW5kbGVUb0Rlc3RveSlcbiAgICAgIClcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -8,10 +8,19 @@ export class NodeRenderingService {
|
|
|
8
8
|
return this.flowEntitiesService.nodes()
|
|
9
9
|
.sort((aNode, bNode) => aNode.renderOrder() - bNode.renderOrder());
|
|
10
10
|
});
|
|
11
|
+
this.maxOrder = computed(() => {
|
|
12
|
+
return Math.max(...this.flowEntitiesService.nodes().map((n) => n.renderOrder()));
|
|
13
|
+
});
|
|
11
14
|
}
|
|
12
15
|
pullNode(node) {
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
// TODO do not pull when the node is already on top
|
|
17
|
+
// pull node
|
|
18
|
+
node.renderOrder.set(this.maxOrder() + 1);
|
|
19
|
+
// pull children
|
|
20
|
+
this.flowEntitiesService
|
|
21
|
+
.nodes()
|
|
22
|
+
.filter(n => n.parent() === node)
|
|
23
|
+
.forEach(n => this.pullNode(n));
|
|
15
24
|
}
|
|
16
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeRenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
26
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeRenderingService }); }
|
|
@@ -19,4 +28,4 @@ export class NodeRenderingService {
|
|
|
19
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NodeRenderingService, decorators: [{
|
|
20
29
|
type: Injectable
|
|
21
30
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1yZW5kZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9ub2RlLXJlbmRlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRXpDLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRTtpQkFDcEMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLENBQUMsQ0FBQyxDQUFBO1FBRU0sYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUNiLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ2hFLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtLQVlIO0lBVlEsUUFBUSxDQUFDLElBQWU7UUFDN0IsbURBQW1EO1FBQ25ELFlBQVk7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDekMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUI7YUFDckIsS0FBSyxFQUFFO2FBQ1AsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksQ0FBQzthQUNoQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkMsQ0FBQzsrR0F2QlUsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL25vZGUubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm9kZVJlbmRlcmluZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZsb3dFbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSlcblxuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpXG4gICAgICAuc29ydCgoYU5vZGUsIGJOb2RlKSA9PiBhTm9kZS5yZW5kZXJPcmRlcigpIC0gYk5vZGUucmVuZGVyT3JkZXIoKSlcbiAgfSlcblxuICBwcml2YXRlIG1heE9yZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgIC4uLnRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpLm1hcCgobikgPT4gbi5yZW5kZXJPcmRlcigpKVxuICAgIClcbiAgfSlcblxuICBwdWJsaWMgcHVsbE5vZGUobm9kZTogTm9kZU1vZGVsKSB7XG4gICAgLy8gVE9ETyBkbyBub3QgcHVsbCB3aGVuIHRoZSBub2RlIGlzIGFscmVhZHkgb24gdG9wXG4gICAgLy8gcHVsbCBub2RlXG4gICAgbm9kZS5yZW5kZXJPcmRlci5zZXQodGhpcy5tYXhPcmRlcigpICsgMSlcbiAgICAvLyBwdWxsIGNoaWxkcmVuXG4gICAgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlXG4gICAgICAubm9kZXMoKVxuICAgICAgLmZpbHRlcihuID0+IG4ucGFyZW50KCkgPT09IG5vZGUpXG4gICAgICAuZm9yRWFjaChuID0+IHRoaXMucHVsbE5vZGUobikpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -28,4 +28,4 @@ export class ReferenceKeeper {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLWtlZXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy91dGlscy9yZWZlcmVuY2Uta2VlcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHakQsTUFBTSxPQUFPLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQWdDLEVBQUUsYUFBMEI7UUFDOUUsTUFBTSxXQUFXLEdBQXVDLElBQUksR0FBRyxFQUFFLENBQUE7UUFDakUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBRWxFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QixJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUFFLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQTs7Z0JBQ3pELE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQWdCLEVBQUUsYUFBMEI7UUFDOUQsTUFBTSxXQUFXLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUE7UUFDbkQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBRWxFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QixJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUFFLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQTs7Z0JBQ3pELE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL25vZGUubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNOb2RlLCBOb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2VkZ2UubW9kZWxcIjtcbmltcG9ydCB7IEVkZ2UgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgUmVmZXJlbmNlS2VlcGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgbW9kZWxzIGZvciBuZXcgbm9kZSByZWZlcmVuY2VzIGFuZCBrZWVwIG9sZCBtb2RlbHMgZm9yIG9sZCBub2RlIHJlZmVyZW5jZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm9kZXMobmV3Tm9kZXM6IE5vZGVbXSB8IER5bmFtaWNOb2RlW10sIG9sZE5vZGVNb2RlbHM6IE5vZGVNb2RlbFtdKSB7XG4gICAgY29uc3Qgb2xkTm9kZXNNYXA6IE1hcDxOb2RlIHwgRHluYW1pY05vZGUsIE5vZGVNb2RlbD4gPSBuZXcgTWFwKClcbiAgICBvbGROb2RlTW9kZWxzLmZvckVhY2gobW9kZWwgPT4gb2xkTm9kZXNNYXAuc2V0KG1vZGVsLm5vZGUsIG1vZGVsKSlcblxuICAgIHJldHVybiBuZXdOb2Rlcy5tYXAobmV3Tm9kZSA9PiB7XG4gICAgICBpZiAob2xkTm9kZXNNYXAuaGFzKG5ld05vZGUpKSByZXR1cm4gb2xkTm9kZXNNYXAuZ2V0KG5ld05vZGUpIVxuICAgICAgZWxzZSByZXR1cm4gbmV3IE5vZGVNb2RlbChuZXdOb2RlKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBtb2RlbHMgZm9yIG5ldyBlZGdlIHJlZmVyZW5jZXMgYW5kIGtlZXAgb2xkIG1vZGVscyBmb3Igb2xkIGVkZ2UgcmVmZXJlbmNlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlZGdlcyhuZXdFZGdlczogRWRnZVtdLCBvbGRFZGdlTW9kZWxzOiBFZGdlTW9kZWxbXSkge1xuICAgIGNvbnN0IG9sZEVkZ2VzTWFwOiBNYXA8RWRnZSwgRWRnZU1vZGVsPiA9IG5ldyBNYXAoKVxuICAgIG9sZEVkZ2VNb2RlbHMuZm9yRWFjaChtb2RlbCA9PiBvbGRFZGdlc01hcC5zZXQobW9kZWwuZWRnZSwgbW9kZWwpKVxuXG4gICAgcmV0dXJuIG5ld0VkZ2VzLm1hcChuZXdFZGdlID0+IHtcbiAgICAgIGlmIChvbGRFZGdlc01hcC5oYXMobmV3RWRnZSkpIHJldHVybiBvbGRFZGdlc01hcC5nZXQobmV3RWRnZSkhXG4gICAgICBlbHNlIHJldHVybiBuZXcgRWRnZU1vZGVsKG5ld0VkZ2UpXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
@@ -5,7 +5,7 @@ import { NodeComponent } from './components/node/node.component';
|
|
|
5
5
|
import { MapContextDirective } from './directives/map-context.directive';
|
|
6
6
|
import { EdgeComponent } from './components/edge/edge.component';
|
|
7
7
|
import { EdgeLabelComponent } from './components/edge-label/edge-label.component';
|
|
8
|
-
import { ConnectionTemplateDirective, EdgeLabelHtmlTemplateDirective, EdgeTemplateDirective, HandleTemplateDirective, NodeHtmlTemplateDirective } from './directives/template.directive';
|
|
8
|
+
import { ConnectionTemplateDirective, EdgeLabelHtmlTemplateDirective, EdgeTemplateDirective, GroupNodeTemplateDirective, HandleTemplateDirective, NodeHtmlTemplateDirective } from './directives/template.directive';
|
|
9
9
|
import { ConnectionComponent } from './components/connection/connection.component';
|
|
10
10
|
import { SpacePointContextDirective } from './directives/space-point-context.directive';
|
|
11
11
|
import { RootSvgReferenceDirective } from './directives/reference.directive';
|
|
@@ -42,6 +42,7 @@ const directives = [
|
|
|
42
42
|
];
|
|
43
43
|
const templateDirectives = [
|
|
44
44
|
NodeHtmlTemplateDirective,
|
|
45
|
+
GroupNodeTemplateDirective,
|
|
45
46
|
EdgeLabelHtmlTemplateDirective,
|
|
46
47
|
EdgeTemplateDirective,
|
|
47
48
|
ConnectionTemplateDirective,
|
|
@@ -65,12 +66,14 @@ export class VflowModule {
|
|
|
65
66
|
PointerDirective,
|
|
66
67
|
RootPointerDirective,
|
|
67
68
|
FlowSizeControllerDirective, NodeHtmlTemplateDirective,
|
|
69
|
+
GroupNodeTemplateDirective,
|
|
68
70
|
EdgeLabelHtmlTemplateDirective,
|
|
69
71
|
EdgeTemplateDirective,
|
|
70
72
|
ConnectionTemplateDirective,
|
|
71
73
|
HandleTemplateDirective], imports: [CommonModule], exports: [VflowComponent,
|
|
72
74
|
HandleComponent,
|
|
73
75
|
SelectableDirective, NodeHtmlTemplateDirective,
|
|
76
|
+
GroupNodeTemplateDirective,
|
|
74
77
|
EdgeLabelHtmlTemplateDirective,
|
|
75
78
|
EdgeTemplateDirective,
|
|
76
79
|
ConnectionTemplateDirective,
|
|
@@ -90,4 +93,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
90
93
|
declarations: [...components, ...directives, ...templateDirectives],
|
|
91
94
|
}]
|
|
92
95
|
}] });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3ZmbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyTixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN4RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUUxRixNQUFNLFVBQVUsR0FBRztJQUNqQixjQUFjO0lBQ2QsYUFBYTtJQUNiLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixhQUFhO0lBQ2IsbUJBQW1CO0NBQ3BCLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBRztJQUNqQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsNkJBQTZCO0lBQzdCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLDJCQUEyQjtDQUM1QixDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBRztJQUN6Qix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLDhCQUE4QjtJQUM5QixxQkFBcUI7SUFDckIsMkJBQTJCO0lBQzNCLHVCQUF1QjtDQUN4QixDQUFBO0FBWUQsTUFBTSxPQUFPLFdBQVc7K0dBQVgsV0FBVztnSEFBWCxXQUFXLGlCQXpDdEIsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsYUFBYTtZQUNiLG1CQUFtQixFQUluQiwwQkFBMEI7WUFDMUIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6Qix1QkFBdUI7WUFDdkIsNkJBQTZCO1lBQzdCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLDJCQUEyQixFQUkzQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsMkJBQTJCO1lBQzNCLHVCQUF1QixhQUliLFlBQVksYUFFcEIsY0FBYztZQUNkLGVBQWU7WUFDZixtQkFBbUIsRUFickIseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQiw4QkFBOEI7WUFDOUIscUJBQXFCO1lBQ3JCLDJCQUEyQjtZQUMzQix1QkFBdUI7Z0hBYVosV0FBVyxZQVRaLFlBQVk7OzRGQVNYLFdBQVc7a0JBVnZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUU7d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsR0FBRyxrQkFBa0I7cUJBQ3RCO29CQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsa0JBQWtCLENBQUM7aUJBQ3BFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWZmxvd0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92Zmxvdy92Zmxvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hcENvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbWFwLWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRnZS9lZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGdlTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRnZS1sYWJlbC9lZGdlLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsIEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZURpcmVjdGl2ZSwgRWRnZVRlbXBsYXRlRGlyZWN0aXZlLCBHcm91cE5vZGVUZW1wbGF0ZURpcmVjdGl2ZSwgSGFuZGxlVGVtcGxhdGVEaXJlY3RpdmUsIE5vZGVIdG1sVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbm5lY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29ubmVjdGlvbi9jb25uZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGFjZVBvaW50Q29udGV4dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zcGFjZS1wb2ludC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSb290U3ZnUmVmZXJlbmNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3JlZmVyZW5jZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm9vdFN2Z0NvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcm9vdC1zdmctY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGVmc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kZWZzL2RlZnMuY29tcG9uZW50JztcbmltcG9ydCB7IEhhbmRsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oYW5kbGUvaGFuZGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIYW5kbGVTaXplQ29udHJvbGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9oYW5kbGUtc2l6ZS1jb250cm9sbGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NlbGVjdGFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvaW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcG9pbnRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm9vdFBvaW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcm9vdC1wb2ludGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JhY2tncm91bmQvYmFja2dyb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd1NpemVDb250cm9sbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zsb3ctc2l6ZS1jb250cm9sbGVyLmRpcmVjdGl2ZSc7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gIFZmbG93Q29tcG9uZW50LFxuICBOb2RlQ29tcG9uZW50LFxuICBFZGdlQ29tcG9uZW50LFxuICBFZGdlTGFiZWxDb21wb25lbnQsXG4gIENvbm5lY3Rpb25Db21wb25lbnQsXG4gIEhhbmRsZUNvbXBvbmVudCxcbiAgRGVmc0NvbXBvbmVudCxcbiAgQmFja2dyb3VuZENvbXBvbmVudFxuXVxuXG5jb25zdCBkaXJlY3RpdmVzID0gW1xuICBTcGFjZVBvaW50Q29udGV4dERpcmVjdGl2ZSxcbiAgTWFwQ29udGV4dERpcmVjdGl2ZSxcbiAgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSxcbiAgUm9vdFN2Z0NvbnRleHREaXJlY3RpdmUsXG4gIEhhbmRsZVNpemVDb250cm9sbGVyRGlyZWN0aXZlLFxuICBTZWxlY3RhYmxlRGlyZWN0aXZlLFxuICBQb2ludGVyRGlyZWN0aXZlLFxuICBSb290UG9pbnRlckRpcmVjdGl2ZSxcbiAgRmxvd1NpemVDb250cm9sbGVyRGlyZWN0aXZlXG5dXG5cbmNvbnN0IHRlbXBsYXRlRGlyZWN0aXZlcyA9IFtcbiAgTm9kZUh0bWxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgR3JvdXBOb2RlVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgRWRnZVRlbXBsYXRlRGlyZWN0aXZlLFxuICBDb25uZWN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEhhbmRsZVRlbXBsYXRlRGlyZWN0aXZlXG5dXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgVmZsb3dDb21wb25lbnQsXG4gICAgSGFuZGxlQ29tcG9uZW50LFxuICAgIFNlbGVjdGFibGVEaXJlY3RpdmUsXG4gICAgLi4udGVtcGxhdGVEaXJlY3RpdmVzXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLmRpcmVjdGl2ZXMsIC4uLnRlbXBsYXRlRGlyZWN0aXZlc10sXG59KVxuZXhwb3J0IGNsYXNzIFZmbG93TW9kdWxlIHsgfVxuIl19
|