ngx-vflow 0.2.1 → 0.2.2
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/handle/handle.component.mjs +16 -15
- package/esm2022/lib/vflow/components/node/node.component.mjs +3 -5
- package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +8 -2
- package/esm2022/lib/vflow/models/edge.model.mjs +27 -1
- package/esm2022/lib/vflow/models/handle.model.mjs +7 -5
- package/esm2022/lib/vflow/models/node.model.mjs +6 -6
- package/esm2022/lib/vflow/services/edge-changes.service.mjs +13 -6
- package/esm2022/lib/vflow/services/flow-entities.service.mjs +4 -1
- package/esm2022/lib/vflow/services/handle.service.mjs +11 -4
- package/esm2022/lib/vflow/services/node-changes.service.mjs +6 -3
- package/esm2022/lib/vflow/types/edge-change.type.mjs +1 -1
- package/fesm2022/ngx-vflow.mjs +87 -36
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/components/handle/handle.component.d.ts +5 -2
- package/lib/vflow/components/vflow/vflow.component.d.ts +4 -0
- package/lib/vflow/models/edge.model.d.ts +19 -1
- package/lib/vflow/models/handle.model.d.ts +5 -0
- package/lib/vflow/models/node.model.d.ts +1 -2
- package/lib/vflow/services/flow-entities.service.d.ts +1 -0
- package/lib/vflow/services/handle.service.d.ts +8 -7
- package/lib/vflow/types/edge-change.type.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Component, ElementRef, Input, inject
|
|
1
|
+
import { Component, ElementRef, Input, inject } from '@angular/core';
|
|
2
2
|
import { HandleService } from '../../services/handle.service';
|
|
3
|
+
import { HandleModel } from '../../models/handle.model';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class HandleComponent {
|
|
5
6
|
constructor() {
|
|
@@ -8,27 +9,27 @@ export class HandleComponent {
|
|
|
8
9
|
}
|
|
9
10
|
ngOnInit() {
|
|
10
11
|
queueMicrotask(() => {
|
|
11
|
-
const
|
|
12
|
-
this.
|
|
12
|
+
const { width, height, x, y } = this.parentRect();
|
|
13
|
+
this.model = new HandleModel({
|
|
13
14
|
position: this.position,
|
|
14
15
|
type: this.type,
|
|
15
16
|
id: this.id,
|
|
16
|
-
parentPosition:
|
|
17
|
-
parentSize:
|
|
18
|
-
});
|
|
17
|
+
parentPosition: { x, y },
|
|
18
|
+
parentSize: { width, height }
|
|
19
|
+
}, this.handleService.node());
|
|
20
|
+
this.handleService.createHandle(this.model);
|
|
19
21
|
});
|
|
20
22
|
}
|
|
23
|
+
ngOnDestroy() {
|
|
24
|
+
this.handleService.destroyHandle(this.model);
|
|
25
|
+
}
|
|
21
26
|
parentRect() {
|
|
22
|
-
// we assume there is only one foreignObject that wraps node
|
|
23
|
-
const fo = this.element.closest('foreignObject');
|
|
24
27
|
const parent = this.element.parentElement;
|
|
25
|
-
const foRect = fo.getBoundingClientRect();
|
|
26
|
-
const parentRect = parent.getBoundingClientRect();
|
|
27
28
|
return {
|
|
28
|
-
x:
|
|
29
|
-
y:
|
|
30
|
-
width:
|
|
31
|
-
height:
|
|
29
|
+
x: parent.offsetLeft,
|
|
30
|
+
y: parent.offsetTop,
|
|
31
|
+
width: parent.clientWidth,
|
|
32
|
+
height: parent.clientHeight
|
|
32
33
|
};
|
|
33
34
|
}
|
|
34
35
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -46,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
46
47
|
}], id: [{
|
|
47
48
|
type: Input
|
|
48
49
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9jb21wb25lbnRzL2hhbmRsZS9oYW5kbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvaGFuZGxlL2hhbmRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU14RCxNQUFNLE9BQU8sZUFBZTtJQUo1QjtRQUtVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3JDLFlBQU8sR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtLQXVENUU7SUFqQ1EsUUFBUTtRQUNiLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtZQUVqRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksV0FBVyxDQUMxQjtnQkFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDeEIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTthQUM5QixFQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFHLENBQzNCLENBQUE7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFjLENBQUE7UUFFMUMsT0FBTztZQUNMLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVTtZQUNwQixDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsWUFBWTtTQUM1QixDQUFBO0lBQ0gsQ0FBQzsrR0F4RFUsZUFBZTttR0FBZixlQUFlLHdHQ1Q1QixFQUFBOzs0RkRTYSxlQUFlO2tCQUozQixTQUFTOytCQUNFLFFBQVE7OEJBV1gsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPbEIsSUFBSTtzQkFEVixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPbEIsRUFBRTtzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL3Bvc2l0aW9uLnR5cGUnO1xuaW1wb3J0IHsgSGFuZGxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hhbmRsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEhhbmRsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2hhbmRsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hhbmRsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oYW5kbGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEhhbmRsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBoYW5kbGVTZXJ2aWNlID0gaW5qZWN0KEhhbmRsZVNlcnZpY2UpXG4gIHByaXZhdGUgZWxlbWVudCA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZikubmF0aXZlRWxlbWVudFxuXG4gIC8qKlxuICAgKiBBdCB3aGF0IHNpZGUgb2Ygbm9kZSB0aGlzIGNvbXBvbmVudCBzaG91bGQgYmUgcGxhY2VkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgcG9zaXRpb24hOiBQb3NpdGlvblxuXG4gIC8qKlxuICAgKiBTb3VyY2Ugb3IgdGFyZ2V0XG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgdHlwZSE6ICdzb3VyY2UnIHwgJ3RhcmdldCdcblxuICAvKipcbiAgICogU2hvdWxkIGJlIHVzZWQgaWYgbm9kZSBoYXMgbW9yZSB0aGFuIG9uZSBzb3VyY2UvdGFyZ2V0XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQ/OiBzdHJpbmdcblxuICBwdWJsaWMgbW9kZWwhOiBIYW5kbGVNb2RlbFxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIHgsIHkgfSA9IHRoaXMucGFyZW50UmVjdCgpXG5cbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgSGFuZGxlTW9kZWwoXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgcGFyZW50UG9zaXRpb246IHsgeCwgeSB9LFxuICAgICAgICAgIHBhcmVudFNpemU6IHsgd2lkdGgsIGhlaWdodCB9XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuaGFuZGxlU2VydmljZS5ub2RlKCkhXG4gICAgICApXG5cbiAgICAgIHRoaXMuaGFuZGxlU2VydmljZS5jcmVhdGVIYW5kbGUodGhpcy5tb2RlbClcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlU2VydmljZS5kZXN0cm95SGFuZGxlKHRoaXMubW9kZWwpXG4gIH1cblxuICBwcml2YXRlIHBhcmVudFJlY3QoKSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQhXG5cbiAgICByZXR1cm4ge1xuICAgICAgeDogcGFyZW50Lm9mZnNldExlZnQsXG4gICAgICB5OiBwYXJlbnQub2Zmc2V0VG9wLFxuICAgICAgd2lkdGg6IHBhcmVudC5jbGllbnRXaWR0aCxcbiAgICAgIGhlaWdodDogcGFyZW50LmNsaWVudEhlaWdodFxuICAgIH1cbiAgfVxufVxuXG4iLCIiXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, Injector, Input, ViewChild, computed,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Injector, Input, ViewChild, computed, inject, signal } from '@angular/core';
|
|
2
2
|
import { DraggableService } from '../../services/draggable.service';
|
|
3
3
|
import { FlowStatusService, batchStatusChanges } from '../../services/flow-status.service';
|
|
4
4
|
import { FlowEntitiesService } from '../../services/flow-entities.service';
|
|
@@ -19,9 +19,7 @@ export class NodeComponent {
|
|
|
19
19
|
this.targetHandleState = signal('idle');
|
|
20
20
|
}
|
|
21
21
|
ngOnInit() {
|
|
22
|
-
|
|
23
|
-
effect(() => this.nodeModel.rawHandles.set(this.handleService.handles()), { allowSignalWrites: true });
|
|
24
|
-
});
|
|
22
|
+
this.handleService.node.set(this.nodeModel);
|
|
25
23
|
this.draggableService.toggleDraggable(this.hostRef.nativeElement, this.nodeModel);
|
|
26
24
|
}
|
|
27
25
|
ngAfterViewInit() {
|
|
@@ -109,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
109
107
|
type: ViewChild,
|
|
110
108
|
args: ['htmlWrapper']
|
|
111
109
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZSxRQUFRLEVBQUUsS0FBSyxFQUEwQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hPLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBWTlELE1BQU0sT0FBTyxhQUFhO0lBUDFCO1FBUVksa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDckMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQWM3QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUMzQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUM3Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxZQUFPLEdBQUcsTUFBTSxDQUF5QixVQUFVLENBQUMsQ0FBQTtRQUVsRCxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxLQUFLLGtCQUFrQjtZQUM1RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxLQUFLLHVCQUF1QixDQUNsRSxDQUFBO1FBRU8sc0JBQWlCLEdBQUcsTUFBTSxDQUFjLE1BQU0sQ0FBQyxDQUFBO1FBQy9DLHNCQUFpQixHQUFHLE1BQU0sQ0FBYyxNQUFNLENBQUMsQ0FBQTtLQXFIeEQ7SUFuSFEsUUFBUTtRQUNiLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sQ0FDSixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUNqRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNuRixDQUFDO0lBRU0sZUFBZTtRQUNwQix3QkFBd0I7UUFDeEIsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7Z0JBQ3JFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO2FBQzNDO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFO2dCQUNoRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUE7Z0JBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQTtnQkFFN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7YUFDM0M7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQWlCLEVBQUUsTUFBbUI7UUFDOUQsc0NBQXNDO1FBQ3RDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUV2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBRVMsYUFBYTtRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUE7UUFFOUMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLHVCQUF1QixFQUFFO1lBQzVDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFBO1lBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7WUFDakMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUE7WUFDaEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUE7WUFFaEQsa0JBQWtCO1lBQ2hCLDRCQUE0QjtZQUM1QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDO1lBQ3ZHLDBEQUEwRDtZQUMxRCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQzdDLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLG9CQUFvQixDQUFDLFlBQXlCO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUU5QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssa0JBQWtCLEVBQUU7WUFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUE7WUFDNUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUE7WUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUE7WUFFakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtZQUNqQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQTtZQUVqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUM1RCxNQUFNO2dCQUNOLE1BQU07Z0JBQ04sWUFBWSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkMsWUFBWSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRTthQUN4QyxDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUV2RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFBO1NBQ2hIO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08seUJBQXlCO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7UUFFbEMsNEJBQTRCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUM5QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssdUJBQXVCLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7U0FDeEc7SUFDSCxDQUFDOytHQTNIVSxhQUFhO21HQUFiLGFBQWEsNEdBRmIsQ0FBQyxhQUFhLENBQUMseU9DZjVCLHVnREFnREE7OzRGRC9CYSxhQUFhO2tCQVB6QixTQUFTOytCQUNFLFNBQVMsbUJBR0YsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsQ0FBQzs4QkFPbkIsU0FBUztzQkFEZixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixTQUFTO3VCQUFDLGFBQWE7Z0JBSWpCLGNBQWM7c0JBRHBCLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3RvciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyYWdnYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcmFnZ2FibGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBGbG93U3RhdHVzU2VydmljZSwgYmF0Y2hTdGF0dXNDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEhhbmRsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oYW5kbGUuc2VydmljZSc7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9oYW5kbGUubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBIYW5kbGVTdGF0ZSA9ICd2YWxpZCcgfCAnaW52YWxpZCcgfCAnaWRsZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ1tub2RlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbSGFuZGxlU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTm9kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIGhhbmRsZVNlcnZpY2UgPSBpbmplY3QoSGFuZGxlU2VydmljZSlcbiAgcHJvdGVjdGVkIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBub2RlTW9kZWwhOiBOb2RlTW9kZWxcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbm9kZUh0bWxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT5cblxuICBAVmlld0NoaWxkKCdub2RlQ29udGVudCcpXG4gIHB1YmxpYyBub2RlQ29udGVudFJlZiE6IEVsZW1lbnRSZWY8U1ZHR3JhcGhpY3NFbGVtZW50PlxuXG4gIEBWaWV3Q2hpbGQoJ2h0bWxXcmFwcGVyJylcbiAgcHVibGljIGh0bWxXcmFwcGVyUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5cblxuICBwcml2YXRlIGRyYWdnYWJsZVNlcnZpY2UgPSBpbmplY3QoRHJhZ2dhYmxlU2VydmljZSlcbiAgcHJpdmF0ZSBmbG93U3RhdHVzU2VydmljZSA9IGluamVjdChGbG93U3RhdHVzU2VydmljZSlcbiAgcHJpdmF0ZSBmbG93RW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpXG4gIHByaXZhdGUgaG9zdFJlZiA9IGluamVjdDxFbGVtZW50UmVmPFNWR0VsZW1lbnQ+PihFbGVtZW50UmVmKVxuXG4gIHByb3RlY3RlZCBzaG93TWFnbmV0ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnN0YXR1cygpLnN0YXRlID09PSAnY29ubmVjdGlvbi1zdGFydCcgfHxcbiAgICB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnN0YXR1cygpLnN0YXRlID09PSAnY29ubmVjdGlvbi12YWxpZGF0aW9uJ1xuICApXG5cbiAgcHJpdmF0ZSBzb3VyY2VIYW5sZGVTdGF0ZSA9IHNpZ25hbDxIYW5kbGVTdGF0ZT4oJ2lkbGUnKVxuICBwcml2YXRlIHRhcmdldEhhbmRsZVN0YXRlID0gc2lnbmFsPEhhbmRsZVN0YXRlPignaWRsZScpXG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICBlZmZlY3QoXG4gICAgICAgICgpID0+IHRoaXMubm9kZU1vZGVsLnJhd0hhbmRsZXMuc2V0KHRoaXMuaGFuZGxlU2VydmljZS5oYW5kbGVzKCkpLFxuICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgIClcbiAgICB9KVxuXG4gICAgdGhpcy5kcmFnZ2FibGVTZXJ2aWNlLnRvZ2dsZURyYWdnYWJsZSh0aGlzLmhvc3RSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5ub2RlTW9kZWwpXG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRPRE8gcmVtb3ZlIG1pY3JvdGFza1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm5vZGVNb2RlbC5ub2RlLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMubm9kZUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCQm94KClcbiAgICAgICAgdGhpcy5ub2RlTW9kZWwuc2l6ZS5zZXQoeyB3aWR0aCwgaGVpZ2h0IH0pXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm5vZGVNb2RlbC5ub2RlLnR5cGUgPT09ICdodG1sLXRlbXBsYXRlJykge1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuaHRtbFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmh0bWxXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XG5cbiAgICAgICAgdGhpcy5ub2RlTW9kZWwuc2l6ZS5zZXQoeyB3aWR0aCwgaGVpZ2h0IH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnYWJsZVNlcnZpY2UuZGVzdHJveSh0aGlzLmhvc3RSZWYubmF0aXZlRWxlbWVudClcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydENvbm5lY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQsIGhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICAvLyBpZ25vcmUgZHJhZyBieSBzdG9wcGluZyBwcm9wYWdhdGlvblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyh0aGlzLm5vZGVNb2RlbCwgaGFuZGxlKVxuICB9XG5cbiAgcHJvdGVjdGVkIGVuZENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKVxuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbicpIHtcbiAgICAgIGNvbnN0IHNvdXJjZU5vZGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VOb2RlXG4gICAgICBjb25zdCB0YXJnZXROb2RlID0gdGhpcy5ub2RlTW9kZWxcbiAgICAgIGNvbnN0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZVxuICAgICAgY29uc3QgdGFyZ2V0SGFuZGxlID0gc3RhdHVzLnBheWxvYWQudGFyZ2V0SGFuZGxlXG5cbiAgICAgIGJhdGNoU3RhdHVzQ2hhbmdlcyhcbiAgICAgICAgLy8gY2FsbCB0byBjcmVhdGUgY29ubmVjdGlvblxuICAgICAgICAoKSA9PiB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25FbmRTdGF0dXMoc291cmNlTm9kZSwgdGFyZ2V0Tm9kZSwgc291cmNlSGFuZGxlLCB0YXJnZXRIYW5kbGUpLFxuICAgICAgICAvLyB3aGVuIGNvbm5lY3Rpb24gY3JlYXRlZCwgd2UgbmVlZCBnbyBiYWNrIHRvIGlkbGUgc3RhdHVzXG4gICAgICAgICgpID0+IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc2V0SWRsZVN0YXR1cygpXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRPRE8gc3JwXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVUYXJnZXRIYW5kbGUodGFyZ2V0SGFuZGxlOiBIYW5kbGVNb2RlbCkge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc3RhdHVzKClcblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXN0YXJ0Jykge1xuICAgICAgY29uc3Qgc291cmNlTm9kZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZU5vZGVcbiAgICAgIGNvbnN0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZVxuICAgICAgY29uc3Qgc291cmNlID0gc291cmNlTm9kZS5ub2RlLmlkXG5cbiAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLm5vZGVNb2RlbFxuICAgICAgY29uc3QgdGFyZ2V0ID0gdGFyZ2V0Tm9kZS5ub2RlLmlkXG5cbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS52YWxpZGF0b3Ioe1xuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgc291cmNlSGFuZGxlOiBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLmlkLFxuICAgICAgICB0YXJnZXRIYW5kbGU6IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUuaWRcbiAgICAgIH0pXG4gICAgICB0aGlzLnRhcmdldEhhbmRsZVN0YXRlLnNldCh2YWxpZCA/ICd2YWxpZCcgOiAnaW52YWxpZCcpXG5cbiAgICAgIHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvblZhbGlkYXRpb25TdGF0dXModmFsaWQsIHNvdXJjZU5vZGUsIHRhcmdldE5vZGUsIHNvdXJjZUhhbmRsZSwgdGFyZ2V0SGFuZGxlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPIHNycFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0VmFsaWRhdGVUYXJnZXRIYW5kbGUoKSB7XG4gICAgdGhpcy50YXJnZXRIYW5kbGVTdGF0ZS5zZXQoJ2lkbGUnKVxuXG4gICAgLy8gZHJvcCBiYWNrIHRvIHN0YXJ0IHN0YXR1c1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc3RhdHVzKClcbiAgICBpZiAoc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi12YWxpZGF0aW9uJykge1xuICAgICAgdGhpcy5mbG93U3RhdHVzU2VydmljZS5zZXRDb25uZWN0aW9uU3RhcnRTdGF0dXMoc3RhdHVzLnBheWxvYWQuc291cmNlTm9kZSwgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlKVxuICAgIH1cbiAgfVxuXG4gIC8vIHByb3RlY3RlZCBnZXRIYW5kbGVDb250ZXh0KHR5cGU6ICdzb3VyY2UnIHwgJ3RhcmdldCcpIHtcbiAgLy8gICBpZiAodHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgLy8gICAgIHJldHVybiB7XG4gIC8vICAgICAgICRpbXBsaWNpdDoge1xuICAvLyAgICAgICAgIHBvaW50OiB0aGlzLm5vZGVNb2RlbC5zb3VyY2VPZmZzZXQsXG4gIC8vICAgICAgICAgYWxpZ25lZFBvaW50OiB0aGlzLm5vZGVNb2RlbC5zb3VyY2VPZmZzZXRBbGlnbmVkLFxuICAvLyAgICAgICAgIHN0YXRlOiB0aGlzLnNvdXJjZUhhbmxkZVN0YXRlUmVhZG9ubHlcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiB7XG4gIC8vICAgICAkaW1wbGljaXQ6IHtcbiAgLy8gICAgICAgcG9pbnQ6IHRoaXMubm9kZU1vZGVsLnRhcmdldE9mZnNldCxcbiAgLy8gICAgICAgYWxpZ25lZFBvaW50OiB0aGlzLm5vZGVNb2RlbC50YXJnZXRPZmZzZXRBbGlnbmVkLFxuICAvLyAgICAgICBzdGF0ZTogdGhpcy50YXJnZXRIYW5sZGVTdGF0ZVJlYWRvbmx5XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG59XG4iLCI8c3ZnOmZvcmVpZ25PYmplY3RcbiAgKm5nSWY9XCJub2RlTW9kZWwubm9kZS50eXBlID09PSAnZGVmYXVsdCdcIlxuICAjbm9kZUNvbnRlbnRcbiAgd2lkdGg9XCIxMDBcIlxuICBoZWlnaHQ9XCI1MFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJkZWZhdWx0LW5vZGVcIiBbaW5uZXJIVE1MXT1cIm5vZGVNb2RlbC5ub2RlLnRleHQgPz8gJydcIj48L2Rpdj5cbjwvc3ZnOmZvcmVpZ25PYmplY3Q+XG5cbjxzdmc6Zm9yZWlnbk9iamVjdFxuICAqbmdJZj1cIm5vZGVNb2RlbC5ub2RlLnR5cGUgPT09ICdodG1sLXRlbXBsYXRlJyAmJiBub2RlSHRtbFRlbXBsYXRlXCJcbiAgW2F0dHIud2lkdGhdPVwibm9kZU1vZGVsLnNpemUoKS53aWR0aFwiXG4gIFthdHRyLmhlaWdodF09XCJub2RlTW9kZWwuc2l6ZSgpLmhlaWdodFwiXG4+XG4gIDxkaXYgI2h0bWxXcmFwcGVyIGNsYXNzPVwid3JhcHBlclwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVIdG1sVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB7IG5vZGU6IG5vZGVNb2RlbC5ub2RlIH0gfVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvc3ZnOmZvcmVpZ25PYmplY3Q+XG5cbjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhhbmRsZSBvZiBub2RlTW9kZWwuaGFuZGxlcygpXCI+XG4gIDxzdmc6Y2lyY2xlXG4gICAgI3NvdXJjZUhhbmRsZVxuICAgIFthdHRyLmN4XT1cImhhbmRsZS5vZmZzZXQoKS54XCJcbiAgICBbYXR0ci5jeV09XCJoYW5kbGUub2Zmc2V0KCkueVwiXG4gICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cImhhbmRsZS5zdHJva2VXaWR0aFwiXG4gICAgcj1cIjVcIlxuICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICBmaWxsPVwiYmxhY2tcIlxuICAgIChtb3VzZWRvd24pPVwiaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJyA/IHN0YXJ0Q29ubmVjdGlvbigkZXZlbnQsIGhhbmRsZSkgOiBudWxsXCJcbiAgICAobW91c2V1cCk9XCJoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICd0YXJnZXQnID8gZW5kQ29ubmVjdGlvbigpIDogbnVsbFwiXG4gIC8+XG5cbiAgPHN2ZzpjaXJjbGVcbiAgICAqbmdJZj1cImhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcgJiYgc2hvd01hZ25ldCgpXCJcbiAgICBjbGFzcz1cIm1hZ25ldFwiXG4gICAgW2F0dHIucl09XCJub2RlTW9kZWwubWFnbmV0UmFkaXVzXCJcbiAgICBbYXR0ci5jeF09XCJoYW5kbGUub2Zmc2V0KCkueFwiXG4gICAgW2F0dHIuY3ldPVwiaGFuZGxlLm9mZnNldCgpLnlcIlxuICAgIChtb3VzZXVwKT1cImVuZENvbm5lY3Rpb24oKTsgcmVzZXRWYWxpZGF0ZVRhcmdldEhhbmRsZSgpXCJcbiAgICAobW91c2VvdmVyKT1cInZhbGlkYXRlVGFyZ2V0SGFuZGxlKGhhbmRsZSlcIlxuICAgIChtb3VzZW91dCk9XCJyZXNldFZhbGlkYXRlVGFyZ2V0SGFuZGxlKClcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG5cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvY29tcG9uZW50cy9ub2RlL25vZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZSxRQUFRLEVBQUUsS0FBSyxFQUEwQyxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hPLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBWTlELE1BQU0sT0FBTyxhQUFhO0lBUDFCO1FBUVksa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDckMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQWM3QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUMzQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUM3Qyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNqRCxZQUFPLEdBQUcsTUFBTSxDQUF5QixVQUFVLENBQUMsQ0FBQTtRQUVsRCxlQUFVLEdBQUcs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QUFFLENBQUE7UUFDOUMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLHVCQUF1QixFQUFFO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQ3hHO0lBQ0gsQ0FBQzsrR0F0SFUsYUFBYTttR0FBYixhQUFhLDRHQUZiLENBQUMsYUFBYSxDQUFDLHlPQ2Y1Qix1Z0RBZ0RBOzs0RkQvQmEsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxhQUFhLENBQUM7OEJBT25CLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsU0FBUzt1QkFBQyxhQUFhO2dCQUlqQixjQUFjO3NCQURwQixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0b3IsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEcmFnZ2FibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHJhZ2dhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgRmxvd1N0YXR1c1NlcnZpY2UsIGJhdGNoU3RhdHVzQ2hhbmdlcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBIYW5kbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGFuZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGFuZGxlLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgSGFuZGxlU3RhdGUgPSAndmFsaWQnIHwgJ2ludmFsaWQnIHwgJ2lkbGUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dbbm9kZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbm9kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vZGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0hhbmRsZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBoYW5kbGVTZXJ2aWNlID0gaW5qZWN0KEhhbmRsZVNlcnZpY2UpXG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3RvcilcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbm9kZU1vZGVsITogTm9kZU1vZGVsXG5cbiAgQElucHV0KClcbiAgcHVibGljIG5vZGVIdG1sVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgQFZpZXdDaGlsZCgnbm9kZUNvbnRlbnQnKVxuICBwdWJsaWMgbm9kZUNvbnRlbnRSZWYhOiBFbGVtZW50UmVmPFNWR0dyYXBoaWNzRWxlbWVudD5cblxuICBAVmlld0NoaWxkKCdodG1sV3JhcHBlcicpXG4gIHB1YmxpYyBodG1sV3JhcHBlclJlZiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+XG5cbiAgcHJpdmF0ZSBkcmFnZ2FibGVTZXJ2aWNlID0gaW5qZWN0KERyYWdnYWJsZVNlcnZpY2UpXG4gIHByaXZhdGUgZmxvd1N0YXR1c1NlcnZpY2UgPSBpbmplY3QoRmxvd1N0YXR1c1NlcnZpY2UpXG4gIHByaXZhdGUgZmxvd0VudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuICBwcml2YXRlIGhvc3RSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxTVkdFbGVtZW50Pj4oRWxlbWVudFJlZilcblxuICBwcm90ZWN0ZWQgc2hvd01hZ25ldCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKS5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tc3RhcnQnIHx8XG4gICAgdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKS5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbidcbiAgKVxuXG4gIHByaXZhdGUgc291cmNlSGFubGRlU3RhdGUgPSBzaWduYWw8SGFuZGxlU3RhdGU+KCdpZGxlJylcbiAgcHJpdmF0ZSB0YXJnZXRIYW5kbGVTdGF0ZSA9IHNpZ25hbDxIYW5kbGVTdGF0ZT4oJ2lkbGUnKVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZVNlcnZpY2Uubm9kZS5zZXQodGhpcy5ub2RlTW9kZWwpO1xuXG4gICAgdGhpcy5kcmFnZ2FibGVTZXJ2aWNlLnRvZ2dsZURyYWdnYWJsZSh0aGlzLmhvc3RSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5ub2RlTW9kZWwpXG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFRPRE8gcmVtb3ZlIG1pY3JvdGFza1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm5vZGVNb2RlbC5ub2RlLnR5cGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMubm9kZUNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCQm94KClcbiAgICAgICAgdGhpcy5ub2RlTW9kZWwuc2l6ZS5zZXQoeyB3aWR0aCwgaGVpZ2h0IH0pXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm5vZGVNb2RlbC5ub2RlLnR5cGUgPT09ICdodG1sLXRlbXBsYXRlJykge1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuaHRtbFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmh0bWxXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XG5cbiAgICAgICAgdGhpcy5ub2RlTW9kZWwuc2l6ZS5zZXQoeyB3aWR0aCwgaGVpZ2h0IH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnYWJsZVNlcnZpY2UuZGVzdHJveSh0aGlzLmhvc3RSZWYubmF0aXZlRWxlbWVudClcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydENvbm5lY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQsIGhhbmRsZTogSGFuZGxlTW9kZWwpIHtcbiAgICAvLyBpZ25vcmUgZHJhZyBieSBzdG9wcGluZyBwcm9wYWdhdGlvblxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25TdGFydFN0YXR1cyh0aGlzLm5vZGVNb2RlbCwgaGFuZGxlKVxuICB9XG5cbiAgcHJvdGVjdGVkIGVuZENvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5mbG93U3RhdHVzU2VydmljZS5zdGF0dXMoKVxuXG4gICAgaWYgKHN0YXR1cy5zdGF0ZSA9PT0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGlvbicpIHtcbiAgICAgIGNvbnN0IHNvdXJjZU5vZGUgPSBzdGF0dXMucGF5bG9hZC5zb3VyY2VOb2RlXG4gICAgICBjb25zdCB0YXJnZXROb2RlID0gdGhpcy5ub2RlTW9kZWxcbiAgICAgIGNvbnN0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZVxuICAgICAgY29uc3QgdGFyZ2V0SGFuZGxlID0gc3RhdHVzLnBheWxvYWQudGFyZ2V0SGFuZGxlXG5cbiAgICAgIGJhdGNoU3RhdHVzQ2hhbmdlcyhcbiAgICAgICAgLy8gY2FsbCB0byBjcmVhdGUgY29ubmVjdGlvblxuICAgICAgICAoKSA9PiB0aGlzLmZsb3dTdGF0dXNTZXJ2aWNlLnNldENvbm5lY3Rpb25FbmRTdGF0dXMoc291cmNlTm9kZSwgdGFyZ2V0Tm9kZSwgc291cmNlSGFuZGxlLCB0YXJnZXRIYW5kbGUpLFxuICAgICAgICAvLyB3aGVuIGNvbm5lY3Rpb24gY3JlYXRlZCwgd2UgbmVlZCBnbyBiYWNrIHRvIGlkbGUgc3RhdHVzXG4gICAgICAgICgpID0+IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc2V0SWRsZVN0YXR1cygpXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRPRE8gc3JwXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVUYXJnZXRIYW5kbGUodGFyZ2V0SGFuZGxlOiBIYW5kbGVNb2RlbCkge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc3RhdHVzKClcblxuICAgIGlmIChzdGF0dXMuc3RhdGUgPT09ICdjb25uZWN0aW9uLXN0YXJ0Jykge1xuICAgICAgY29uc3Qgc291cmNlTm9kZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZU5vZGVcbiAgICAgIGNvbnN0IHNvdXJjZUhhbmRsZSA9IHN0YXR1cy5wYXlsb2FkLnNvdXJjZUhhbmRsZVxuICAgICAgY29uc3Qgc291cmNlID0gc291cmNlTm9kZS5ub2RlLmlkXG5cbiAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLm5vZGVNb2RlbFxuICAgICAgY29uc3QgdGFyZ2V0ID0gdGFyZ2V0Tm9kZS5ub2RlLmlkXG5cbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24oKS52YWxpZGF0b3Ioe1xuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgc291cmNlSGFuZGxlOiBzb3VyY2VIYW5kbGUucmF3SGFuZGxlLmlkLFxuICAgICAgICB0YXJnZXRIYW5kbGU6IHRhcmdldEhhbmRsZS5yYXdIYW5kbGUuaWRcbiAgICAgIH0pXG4gICAgICB0aGlzLnRhcmdldEhhbmRsZVN0YXRlLnNldCh2YWxpZCA/ICd2YWxpZCcgOiAnaW52YWxpZCcpXG5cbiAgICAgIHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc2V0Q29ubmVjdGlvblZhbGlkYXRpb25TdGF0dXModmFsaWQsIHNvdXJjZU5vZGUsIHRhcmdldE5vZGUsIHNvdXJjZUhhbmRsZSwgdGFyZ2V0SGFuZGxlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUT0RPIHNycFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0VmFsaWRhdGVUYXJnZXRIYW5kbGUoKSB7XG4gICAgdGhpcy50YXJnZXRIYW5kbGVTdGF0ZS5zZXQoJ2lkbGUnKVxuXG4gICAgLy8gZHJvcCBiYWNrIHRvIHN0YXJ0IHN0YXR1c1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuZmxvd1N0YXR1c1NlcnZpY2Uuc3RhdHVzKClcbiAgICBpZiAoc3RhdHVzLnN0YXRlID09PSAnY29ubmVjdGlvbi12YWxpZGF0aW9uJykge1xuICAgICAgdGhpcy5mbG93U3RhdHVzU2VydmljZS5zZXRDb25uZWN0aW9uU3RhcnRTdGF0dXMoc3RhdHVzLnBheWxvYWQuc291cmNlTm9kZSwgc3RhdHVzLnBheWxvYWQuc291cmNlSGFuZGxlKVxuICAgIH1cbiAgfVxuXG4gIC8vIHByb3RlY3RlZCBnZXRIYW5kbGVDb250ZXh0KHR5cGU6ICdzb3VyY2UnIHwgJ3RhcmdldCcpIHtcbiAgLy8gICBpZiAodHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgLy8gICAgIHJldHVybiB7XG4gIC8vICAgICAgICRpbXBsaWNpdDoge1xuICAvLyAgICAgICAgIHBvaW50OiB0aGlzLm5vZGVNb2RlbC5zb3VyY2VPZmZzZXQsXG4gIC8vICAgICAgICAgYWxpZ25lZFBvaW50OiB0aGlzLm5vZGVNb2RlbC5zb3VyY2VPZmZzZXRBbGlnbmVkLFxuICAvLyAgICAgICAgIHN0YXRlOiB0aGlzLnNvdXJjZUhhbmxkZVN0YXRlUmVhZG9ubHlcbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiB7XG4gIC8vICAgICAkaW1wbGljaXQ6IHtcbiAgLy8gICAgICAgcG9pbnQ6IHRoaXMubm9kZU1vZGVsLnRhcmdldE9mZnNldCxcbiAgLy8gICAgICAgYWxpZ25lZFBvaW50OiB0aGlzLm5vZGVNb2RlbC50YXJnZXRPZmZzZXRBbGlnbmVkLFxuICAvLyAgICAgICBzdGF0ZTogdGhpcy50YXJnZXRIYW5sZGVTdGF0ZVJlYWRvbmx5XG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG59XG4iLCI8c3ZnOmZvcmVpZ25PYmplY3RcbiAgKm5nSWY9XCJub2RlTW9kZWwubm9kZS50eXBlID09PSAnZGVmYXVsdCdcIlxuICAjbm9kZUNvbnRlbnRcbiAgd2lkdGg9XCIxMDBcIlxuICBoZWlnaHQ9XCI1MFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJkZWZhdWx0LW5vZGVcIiBbaW5uZXJIVE1MXT1cIm5vZGVNb2RlbC5ub2RlLnRleHQgPz8gJydcIj48L2Rpdj5cbjwvc3ZnOmZvcmVpZ25PYmplY3Q+XG5cbjxzdmc6Zm9yZWlnbk9iamVjdFxuICAqbmdJZj1cIm5vZGVNb2RlbC5ub2RlLnR5cGUgPT09ICdodG1sLXRlbXBsYXRlJyAmJiBub2RlSHRtbFRlbXBsYXRlXCJcbiAgW2F0dHIud2lkdGhdPVwibm9kZU1vZGVsLnNpemUoKS53aWR0aFwiXG4gIFthdHRyLmhlaWdodF09XCJub2RlTW9kZWwuc2l6ZSgpLmhlaWdodFwiXG4+XG4gIDxkaXYgI2h0bWxXcmFwcGVyIGNsYXNzPVwid3JhcHBlclwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVIdG1sVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB7IG5vZGU6IG5vZGVNb2RlbC5ub2RlIH0gfVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvc3ZnOmZvcmVpZ25PYmplY3Q+XG5cbjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhhbmRsZSBvZiBub2RlTW9kZWwuaGFuZGxlcygpXCI+XG4gIDxzdmc6Y2lyY2xlXG4gICAgI3NvdXJjZUhhbmRsZVxuICAgIFthdHRyLmN4XT1cImhhbmRsZS5vZmZzZXQoKS54XCJcbiAgICBbYXR0ci5jeV09XCJoYW5kbGUub2Zmc2V0KCkueVwiXG4gICAgW2F0dHIuc3Ryb2tlLXdpZHRoXT1cImhhbmRsZS5zdHJva2VXaWR0aFwiXG4gICAgcj1cIjVcIlxuICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICBmaWxsPVwiYmxhY2tcIlxuICAgIChtb3VzZWRvd24pPVwiaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJyA/IHN0YXJ0Q29ubmVjdGlvbigkZXZlbnQsIGhhbmRsZSkgOiBudWxsXCJcbiAgICAobW91c2V1cCk9XCJoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICd0YXJnZXQnID8gZW5kQ29ubmVjdGlvbigpIDogbnVsbFwiXG4gIC8+XG5cbiAgPHN2ZzpjaXJjbGVcbiAgICAqbmdJZj1cImhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcgJiYgc2hvd01hZ25ldCgpXCJcbiAgICBjbGFzcz1cIm1hZ25ldFwiXG4gICAgW2F0dHIucl09XCJub2RlTW9kZWwubWFnbmV0UmFkaXVzXCJcbiAgICBbYXR0ci5jeF09XCJoYW5kbGUub2Zmc2V0KCkueFwiXG4gICAgW2F0dHIuY3ldPVwiaGFuZGxlLm9mZnNldCgpLnlcIlxuICAgIChtb3VzZXVwKT1cImVuZENvbm5lY3Rpb24oKTsgcmVzZXRWYWxpZGF0ZVRhcmdldEhhbmRsZSgpXCJcbiAgICAobW91c2VvdmVyKT1cInZhbGlkYXRlVGFyZ2V0SGFuZGxlKGhhbmRsZSlcIlxuICAgIChtb3VzZW91dCk9XCJyZXNldFZhbGlkYXRlVGFyZ2V0SGFuZGxlKClcIlxuICAvPlxuPC9uZy1jb250YWluZXI+XG5cbiJdfQ==
|
|
@@ -137,7 +137,7 @@ export class VflowComponent {
|
|
|
137
137
|
* Edges to render
|
|
138
138
|
*/
|
|
139
139
|
set edges(newEdges) {
|
|
140
|
-
const newModels = ReferenceKeeper.edges(newEdges, this.flowEntitiesService.edges());
|
|
140
|
+
const newModels = runInInjectionContext(this.injector, () => ReferenceKeeper.edges(newEdges, this.flowEntitiesService.edges()));
|
|
141
141
|
// quick and dirty binding nodes to edges
|
|
142
142
|
addNodesToEdges(this.nodeModels, newModels);
|
|
143
143
|
this.flowEntitiesService.edges.set(newModels);
|
|
@@ -176,6 +176,12 @@ export class VflowComponent {
|
|
|
176
176
|
getNode(id) {
|
|
177
177
|
return this.flowEntitiesService.getNode(id)?.node;
|
|
178
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Sync method to get detached edges
|
|
181
|
+
*/
|
|
182
|
+
getDetachedEdges() {
|
|
183
|
+
return this.flowEntitiesService.getDetachedEdges().map(e => e.edge);
|
|
184
|
+
}
|
|
179
185
|
// #endregion
|
|
180
186
|
trackNodes(idx, { node }) {
|
|
181
187
|
return node.id;
|
|
@@ -243,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
243
249
|
function bindFlowToNodes(flow, nodes) {
|
|
244
250
|
nodes.forEach(n => n.bindFlow(flow));
|
|
245
251
|
}
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFnQixRQUFRLEVBQUUsS0FBSyxFQUE0QyxTQUFTLEVBQW9CLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4TyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdwRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwSyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakcsT0FBTyxF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RUFBRSxLQUFrQjtJQUMxRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2lnbmFsLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ub2RlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNYXBDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tYXAtY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJhZ2dhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RyYWdnYWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9ub2RlLm1vZGVsJztcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXdwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEVkZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2VkZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVkZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lZGdlLm1vZGVsJztcbmltcG9ydCB7IENvbm5lY3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSwgRWRnZUxhYmVsSHRtbFRlbXBsYXRlRGlyZWN0aXZlLCBFZGdlVGVtcGxhdGVEaXJlY3RpdmUsIE5vZGVIdG1sVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIYW5kbGVQb3NpdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhbmRsZS1wb3NpdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGFkZE5vZGVzVG9FZGdlcyB9IGZyb20gJy4uLy4uL3V0aWxzL2FkZC1ub2Rlcy10by1lZGdlcyc7XG5pbXBvcnQgeyBGbG93TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmxvdy5tb2RlbCc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFZpZXdwb3J0U3RhdGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3ZpZXdwb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGbG93U3RhdHVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Nvbm5lY3Rpb24tY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Nvbm5lY3Rpb24tc2V0dGluZ3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbm5lY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jb25uZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IFJlZmVyZW5jZUtlZXBlciB9IGZyb20gJy4uLy4uL3V0aWxzL3JlZmVyZW5jZS1rZWVwZXInO1xuaW1wb3J0IHsgTm9kZXNDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm9kZS1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRnZUNoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWRnZS1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZUNoYW5nZSB9IGZyb20gJy4uLy4uL3R5cGVzL25vZGUtY2hhbmdlLnR5cGUnO1xuaW1wb3J0IHsgQ2hhbmdlc0NvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NoYW5nZXMtY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWRnZUNoYW5nZSB9IGZyb20gJy4uLy4uL3R5cGVzL2VkZ2UtY2hhbmdlLnR5cGUnO1xuXG5jb25zdCBjb25uZWN0aW9uQ29udHJvbGxlckhvc3REaXJlY3RpdmUgPSB7XG4gIGRpcmVjdGl2ZTogQ29ubmVjdGlvbkNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gIG91dHB1dHM6IFsnb25Db25uZWN0J11cbn1cblxuY29uc3QgY2hhbmdlc0NvbnRyb2xsZXJIb3N0RGlyZWN0aXZlID0ge1xuICBkaXJlY3RpdmU6IENoYW5nZXNDb250cm9sbGVyRGlyZWN0aXZlLFxuICBvdXRwdXRzOiBbJ29uTm9kZXNDaGFuZ2UnLCAnb25FZGdlc0NoYW5nZSddXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZmbG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZmbG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmZsb3cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIERyYWdnYWJsZVNlcnZpY2UsXG4gICAgVmlld3BvcnRTZXJ2aWNlLFxuICAgIEZsb3dTdGF0dXNTZXJ2aWNlLFxuICAgIEZsb3dFbnRpdGllc1NlcnZpY2UsXG4gICAgTm9kZXNDaGFuZ2VTZXJ2aWNlLFxuICAgIEVkZ2VDaGFuZ2VzU2VydmljZVxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIGNvbm5lY3Rpb25Db250cm9sbGVySG9zdERpcmVjdGl2ZSxcbiAgICBjaGFuZ2VzQ29udHJvbGxlckhvc3REaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBWZmxvd0NvbXBvbmVudCB7XG4gIC8vICNyZWdpb24gRElcbiAgcHJpdmF0ZSB2aWV3cG9ydFNlcnZpY2UgPSBpbmplY3QoVmlld3BvcnRTZXJ2aWNlKVxuICBwcml2YXRlIGZsb3dFbnRpdGllc1NlcnZpY2UgPSBpbmplY3QoRmxvd0VudGl0aWVzU2VydmljZSlcbiAgcHJpdmF0ZSBub2Rlc0NoYW5nZVNlcnZpY2UgPSBpbmplY3QoTm9kZXNDaGFuZ2VTZXJ2aWNlKVxuICBwcml2YXRlIGVkZ2VzQ2hhbmdlU2VydmljZSA9IGluamVjdChFZGdlQ2hhbmdlc1NlcnZpY2UpXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpXG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIFNFVFRJTkdTXG5cbiAgLyoqXG4gICAqIFNpemUgZm9yIGZsb3cgdmlld1xuICAgKlxuICAgKiBhY2NlcHRzXG4gICAqIC0gYWJzb2x1dGUgc2l6ZSBpbiBmb3JtYXQgW3dpZHRoLCBoZWlnaHRdIG9yXG4gICAqIC0gJ2F1dG8nIHRvIGNvbXB1dGUgc2l6ZSBiYXNlZCBvbiBwYXJlbnQgZWxlbWVudCBzaXplXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZpZXcodmlldzogW251bWJlciwgbnVtYmVyXSB8ICdhdXRvJykge1xuICAgIHRoaXMuZmxvd01vZGVsLnZpZXcuc2V0KHZpZXcpXG4gIH1cblxuICAvKipcbiAgICogTWluaW11bSB6b29tIHZhbHVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWluWm9vbSA9IDAuNVxuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHpvb20gdmFsdWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhab29tID0gM1xuXG4gIC8qKlxuICAgKiBPYmplY3QgdGhhdCBjb250cm9scyBmbG93IGRpcmVjdGlvbi5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGFyY2hpZXZlIHJpZ2h0IHRvIGxlZnQgZGlyZWN0aW9uXG4gICAqIHRoZW4geW91IG5lZWQgdG8gcGFzcyB0aGVzZSBwb3NpdGlvbnMgeyBzb3VyY2U6ICdsZWZ0JywgdGFyZ2V0OiAncmlnaHQnIH1cbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaGFuZGxlUG9zaXRpb25zKGhhbmRsZVBvc2l0aW9uczogSGFuZGxlUG9zaXRpb25zKSB7XG4gICAgdGhpcy5mbG93TW9kZWwuaGFuZGxlUG9zaXRpb25zLnNldChoYW5kbGVQb3NpdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQmFja2dyb3VuZCBjb2xvciBmb3IgZmxvd1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGJhY2tncm91bmQ6IHN0cmluZyA9ICcjRkZGRkZGJ1xuXG4gIC8qKlxuICAgKiBTZXR0aW5ncyBmb3IgY29ubmVjdGlvbiAoaXQgcmVuZGVycyB3aGVuIHVzZXIgdHJpZXMgdG8gY3JlYXRlIGVkZ2UgYmV0d2VlbiBub2RlcylcbiAgICpcbiAgICogWW91IG5lZWQgdG8gcGFzcyBgQ29ubmVjdGlvblNldHRpbmdzYCBpbiB0aGlzIGlucHV0LlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiAoc2V0dGluZ3M6IENvbm5lY3Rpb25TZXR0aW5ncykgPT4gbmV3IENvbm5lY3Rpb25Nb2RlbChzZXR0aW5ncykgfSlcbiAgcHVibGljIHNldCBjb25uZWN0aW9uKGNvbm5lY3Rpb246IENvbm5lY3Rpb25Nb2RlbCkgeyB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbi5zZXQoY29ubmVjdGlvbikgfVxuXG4gIHB1YmxpYyBnZXQgY29ubmVjdGlvbigpIHsgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5jb25uZWN0aW9uKCkgfVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBNQUlOX0lOUFVUU1xuICAvKipcbiAgICogTm9kZXMgdG8gcmVuZGVyXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IG5vZGVzKG5ld05vZGVzOiBOb2RlW10pIHtcbiAgICBjb25zdCBuZXdNb2RlbHMgPSBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvcixcbiAgICAgICgpID0+IFJlZmVyZW5jZUtlZXBlci5ub2RlcyhuZXdOb2RlcywgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkpXG4gICAgKVxuXG4gICAgLy8gVE9ETyBiZXR0ZXIgdG8gc29sdmUgdGhpcyBieSBESVxuICAgIGJpbmRGbG93VG9Ob2Rlcyh0aGlzLmZsb3dNb2RlbCwgbmV3TW9kZWxzKVxuXG4gICAgLy8gcXVpY2sgYW5kIGRpcnR5IGJpbmRpbmcgbm9kZXMgdG8gZWRnZXNcbiAgICBhZGROb2Rlc1RvRWRnZXMobmV3TW9kZWxzLCB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuZWRnZXMoKSlcblxuICAgIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2Rlcy5zZXQobmV3TW9kZWxzKVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBub2RlTW9kZWxzKCkgeyByZXR1cm4gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkgfVxuXG4gIC8qKlxuICAgKiBFZGdlcyB0byByZW5kZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZWRnZXMobmV3RWRnZXM6IEVkZ2VbXSkge1xuICAgIGNvbnN0IG5ld01vZGVscyA9IFJlZmVyZW5jZUtlZXBlci5lZGdlcyhuZXdFZGdlcywgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmVkZ2VzKCkpXG5cbiAgICAvLyBxdWljayBhbmQgZGlydHkgYmluZGluZyBub2RlcyB0byBlZGdlc1xuICAgIGFkZE5vZGVzVG9FZGdlcyh0aGlzLm5vZGVNb2RlbHMsIG5ld01vZGVscylcblxuICAgIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5lZGdlcy5zZXQobmV3TW9kZWxzKVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBlZGdlTW9kZWxzKCkgeyByZXR1cm4gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLnZhbGlkRWRnZXMoKSB9XG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIFRFTVBMQVRFU1xuICBAQ29udGVudENoaWxkKE5vZGVIdG1sVGVtcGxhdGVEaXJlY3RpdmUpXG4gIHByb3RlY3RlZCBub2RlSHRtbERpcmVjdGl2ZT86IE5vZGVIdG1sVGVtcGxhdGVEaXJlY3RpdmVcblxuICBAQ29udGVudENoaWxkKEVkZ2VUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIGVkZ2VUZW1wbGF0ZURpcmVjdGl2ZT86IEVkZ2VUZW1wbGF0ZURpcmVjdGl2ZVxuXG4gIEBDb250ZW50Q2hpbGQoRWRnZUxhYmVsSHRtbFRlbXBsYXRlRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgZWRnZUxhYmVsSHRtbERpcmVjdGl2ZT86IEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZURpcmVjdGl2ZVxuXG4gIEBDb250ZW50Q2hpbGQoQ29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgY29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlPzogQ29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlXG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIERJUkVDVElWRVNcbiAgQFZpZXdDaGlsZChNYXBDb250ZXh0RGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgbWFwQ29udGV4dCE6IE1hcENvbnRleHREaXJlY3RpdmVcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gU0lHTkFMX0FQSVxuICAvKipcbiAgICogU2lnbmFsIGZvciByZWFkaW5nIHZpZXdwb3J0IGNoYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydC5hc1JlYWRvbmx5KClcblxuICAvKipcbiAgICogU2lnbmFsIGZvciByZWFkaW5nIG5vZGVzIGNoYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzQ2hhbmdlID1cbiAgICB0b1NpZ25hbCh0aGlzLm5vZGVzQ2hhbmdlU2VydmljZS5jaGFuZ2VzJCwgeyBpbml0aWFsVmFsdWU6IFtdIGFzIE5vZGVDaGFuZ2VbXSB9KVxuXG4gIC8qKlxuICAgKiBTaWduYWwgdG8gcmVhZGluZyBlZGdlcyBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlZGdlc0NoYW5nZSA9XG4gICAgdG9TaWduYWwodGhpcy5lZGdlc0NoYW5nZVNlcnZpY2UuY2hhbmdlcyQsIHsgaW5pdGlhbFZhbHVlOiBbXSBhcyBFZGdlQ2hhbmdlW10gfSlcbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gUlhfQVBJXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHdpdGggdmlld3BvcnQgY2hhbmdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld3BvcnRDaGFuZ2UkID0gdG9PYnNlcnZhYmxlKHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQpXG4gICAgLnBpcGUoc2tpcCgxKSkgLy8gc2tpcCBkZWZhdWx0IHZhbHVlIHRoYXQgc2V0IGJ5IHNpZ25hbFxuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHdpdGggbm9kZXMgY2hhbmdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXNDaGFuZ2UkID0gdGhpcy5ub2Rlc0NoYW5nZVNlcnZpY2UuY2hhbmdlcyRcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB3aXRoIG5vZGVzIGNoYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVkZ2VzQ2hhbmdlJCA9IHRoaXMuZWRnZXNDaGFuZ2VTZXJ2aWNlLmNoYW5nZXMkXG4gIC8vICNlbmRyZWdpb25cblxuICAvLyBUT0RPOiBwcm9iYWJseSBiZXR0ZXIgdG8gbWFrZSBpdCBpbmplY3RhYmxlXG4gIHByb3RlY3RlZCBmbG93TW9kZWwgPSBuZXcgRmxvd01vZGVsKClcblxuICBwcm90ZWN0ZWQgbWFya2VycyA9IHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5tYXJrZXJzXG5cbiAgLy8gI3JlZ2lvbiBNRVRIT0RTX0FQSVxuICAvKipcbiAgICogQ2hhbmdlIHZpZXdwb3J0IHRvIHNwZWNpZmllZCBzdGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gdmlld3BvcnQgdmlld3BvcnQgc3RhdGVcbiAgICovXG4gIHB1YmxpYyB2aWV3cG9ydFRvKHZpZXdwb3J0OiBWaWV3cG9ydFN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy52aWV3cG9ydFNlcnZpY2Uud3JpdGFibGVWaWV3cG9ydC5zZXQoeyBjaGFuZ2VUeXBlOiAnYWJzb2x1dGUnLCBzdGF0ZTogdmlld3BvcnQgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2Ugem9vbVxuICAgKlxuICAgKiBAcGFyYW0gem9vbSB6b29tIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgem9vbVRvKHpvb206IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlLndyaXRhYmxlVmlld3BvcnQuc2V0KHsgY2hhbmdlVHlwZTogJ2Fic29sdXRlJywgc3RhdGU6IHsgem9vbSB9IH0pXG4gIH1cblxuICAvKipcbiAgICogTW92ZSB0byBzcGVjaWZpZWQgY29vcmRpbmF0ZVxuICAgKlxuICAgKiBAcGFyYW0gcG9pbnQgcG9pbnQgd2hlcmUgdG8gbW92ZVxuICAgKi9cbiAgcHVibGljIHBhblRvKHBvaW50OiBQb2ludCk6IHZvaWQge1xuICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlLndyaXRhYmxlVmlld3BvcnQuc2V0KHsgY2hhbmdlVHlwZTogJ2Fic29sdXRlJywgc3RhdGU6IHBvaW50IH0pXG4gIH1cblxuICAvKipcbiAgICogR2V0IG5vZGUgYnkgaWRcbiAgICpcbiAgICogQHBhcmFtIGlkIG5vZGUgaWRcbiAgICovXG4gIHB1YmxpYyBnZXROb2RlPFQgPSB1bmtub3duPihpZDogc3RyaW5nKTogTm9kZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5nZXROb2RlPFQ+KGlkKT8ubm9kZVxuICB9XG4gIC8vICNlbmRyZWdpb25cblxuICBwcm90ZWN0ZWQgdHJhY2tOb2RlcyhpZHg6IG51bWJlciwgeyBub2RlIH06IE5vZGVNb2RlbCkge1xuICAgIHJldHVybiBub2RlLmlkXG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tFZGdlcyhpZHg6IG51bWJlciwgeyBlZGdlIH06IEVkZ2VNb2RlbCkge1xuICAgIHJldHVybiBlZGdlLmlkXG4gIH1cbn1cblxuZnVuY3Rpb24gYmluZEZsb3dUb05vZGVzKGZsb3c6IEZsb3dNb2RlbCwgbm9kZXM6IE5vZGVNb2RlbFtdKSB7XG4gIG5vZGVzLmZvckVhY2gobiA9PiBuLmJpbmRGbG93KGZsb3cpKVxufVxuXG4iLCI8c3ZnOnN2Z1xuICByb290U3ZnUmVmXG4gIHJvb3RTdmdDb250ZXh0XG4gIGNsYXNzPVwicm9vdC1zdmdcIlxuICAjZmxvd1xuICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImJhY2tncm91bmRcIlxuICBbYXR0ci53aWR0aF09XCJmbG93TW9kZWwuZmxvd1dpZHRoKClcIlxuICBbYXR0ci5oZWlnaHRdPVwiZmxvd01vZGVsLmZsb3dIZWlnaHQoKVwiXG4+XG4gIDxkZWZzIFttYXJrZXJzXT1cIm1hcmtlcnMoKVwiIGZsb3dEZWZzIC8+XG5cbiAgPHN2ZzpnXG4gICAgbWFwQ29udGV4dFxuICAgIHNwYWNlUG9pbnRDb250ZXh0XG4gICAgW21pblpvb21dPVwibWluWm9vbVwiXG4gICAgW21heFpvb21dPVwibWF4Wm9vbVwiXG4gID5cbiAgICA8IS0tIENvbm5lY3Rpb24gLS0+XG4gICAgPHN2ZzpnXG4gICAgICBjb25uZWN0aW9uXG4gICAgICBbbW9kZWxdPVwiY29ubmVjdGlvblwiXG4gICAgICBbdGVtcGxhdGVdPVwiY29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZlwiXG4gICAgLz5cblxuICAgIDwhLS0gRWRnZXMgIC0tPlxuICAgIDxzdmc6Z1xuICAgICAgKm5nRm9yPVwibGV0IG1vZGVsIG9mIGVkZ2VNb2RlbHM7IHRyYWNrQnk6IHRyYWNrRWRnZXNcIlxuICAgICAgZWRnZVxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcbiAgICAgIFtlZGdlVGVtcGxhdGVdPVwiZWRnZVRlbXBsYXRlRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZlwiXG4gICAgICBbZWRnZUxhYmVsSHRtbFRlbXBsYXRlXT1cImVkZ2VMYWJlbEh0bWxEaXJlY3RpdmU/LnRlbXBsYXRlUmVmXCJcbiAgICAvPlxuXG4gICAgPCEtLSBOb2RlcyAtLT5cbiAgICA8c3ZnOmdcbiAgICAgICpuZ0Zvcj1cImxldCBtb2RlbCBvZiBub2RlTW9kZWxzOyB0cmFja0J5OiB0cmFja05vZGVzXCJcbiAgICAgIG5vZGVcbiAgICAgIFtub2RlTW9kZWxdPVwibW9kZWxcIlxuICAgICAgW25vZGVIdG1sVGVtcGxhdGVdPVwibm9kZUh0bWxEaXJlY3RpdmU/LnRlbXBsYXRlUmVmXCJcbiAgICAgIFthdHRyLnRyYW5zZm9ybV09XCJtb2RlbC5wb2ludFRyYW5zZm9ybSgpXCJcbiAgICAvPlxuICA8L3N2ZzpnPlxuXG48L3N2Zzpzdmc+XG4iXX0=
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFnQixRQUFRLEVBQUUsS0FBSyxFQUE0QyxTQUFTLEVBQW9CLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4TyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdwRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsOEJBQThCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwSyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDakcsT0FBTyxF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QUFDLHlCQUF5QjtnQkFJN0IscUJBQXFCO3NCQUQ5QixZQUFZO3VCQUFDLHFCQUFxQjtnQkFJekIsc0JBQXNCO3NCQUQvQixZQUFZO3VCQUFDLDhCQUE4QjtnQkFJbEMsMkJBQTJCO3NCQURwQyxZQUFZO3VCQUFDLDJCQUEyQjtnQkFNL0IsVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxtQkFBbUI7O0FBb0doQyxTQUFTLGVBQWUsQ0FBQyxJQUFlLEVBQUUsS0FBa0I7SUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpZ25hbCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWFwQ29udGV4dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbWFwLWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyYWdnYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcmFnZ2FibGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBWaWV3cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFZGdlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lZGdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uVGVtcGxhdGVEaXJlY3RpdmUsIEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZURpcmVjdGl2ZSwgRWRnZVRlbXBsYXRlRGlyZWN0aXZlLCBOb2RlSHRtbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSGFuZGxlUG9zaXRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9oYW5kbGUtcG9zaXRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBhZGROb2Rlc1RvRWRnZXMgfSBmcm9tICcuLi8uLi91dGlscy9hZGQtbm9kZXMtdG8tZWRnZXMnO1xuaW1wb3J0IHsgRmxvd01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zsb3cubW9kZWwnO1xuaW1wb3J0IHsgc2tpcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BvaW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBWaWV3cG9ydFN0YXRlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy92aWV3cG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmxvd1N0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbm5lY3Rpb25Db250cm9sbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb25uZWN0aW9uLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZsb3dFbnRpdGllc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb25uZWN0aW9uLXNldHRpbmdzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZWZlcmVuY2VLZWVwZXIgfSBmcm9tICcuLi8uLi91dGlscy9yZWZlcmVuY2Uta2VlcGVyJztcbmltcG9ydCB7IE5vZGVzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vZGUtY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEVkZ2VDaGFuZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VkZ2UtY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVDaGFuZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9ub2RlLWNoYW5nZS50eXBlJztcbmltcG9ydCB7IENoYW5nZXNDb250cm9sbGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jaGFuZ2VzLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVkZ2VDaGFuZ2UgfSBmcm9tICcuLi8uLi90eXBlcy9lZGdlLWNoYW5nZS50eXBlJztcblxuY29uc3QgY29ubmVjdGlvbkNvbnRyb2xsZXJIb3N0RGlyZWN0aXZlID0ge1xuICBkaXJlY3RpdmU6IENvbm5lY3Rpb25Db250cm9sbGVyRGlyZWN0aXZlLFxuICBvdXRwdXRzOiBbJ29uQ29ubmVjdCddXG59XG5cbmNvbnN0IGNoYW5nZXNDb250cm9sbGVySG9zdERpcmVjdGl2ZSA9IHtcbiAgZGlyZWN0aXZlOiBDaGFuZ2VzQ29udHJvbGxlckRpcmVjdGl2ZSxcbiAgb3V0cHV0czogWydvbk5vZGVzQ2hhbmdlJywgJ29uRWRnZXNDaGFuZ2UnXVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZmxvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi92Zmxvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZmbG93LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBEcmFnZ2FibGVTZXJ2aWNlLFxuICAgIFZpZXdwb3J0U2VydmljZSxcbiAgICBGbG93U3RhdHVzU2VydmljZSxcbiAgICBGbG93RW50aXRpZXNTZXJ2aWNlLFxuICAgIE5vZGVzQ2hhbmdlU2VydmljZSxcbiAgICBFZGdlQ2hhbmdlc1NlcnZpY2VcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICBjb25uZWN0aW9uQ29udHJvbGxlckhvc3REaXJlY3RpdmUsXG4gICAgY2hhbmdlc0NvbnRyb2xsZXJIb3N0RGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmZsb3dDb21wb25lbnQge1xuICAvLyAjcmVnaW9uIERJXG4gIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSlcbiAgcHJpdmF0ZSBmbG93RW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpXG4gIHByaXZhdGUgbm9kZXNDaGFuZ2VTZXJ2aWNlID0gaW5qZWN0KE5vZGVzQ2hhbmdlU2VydmljZSlcbiAgcHJpdmF0ZSBlZGdlc0NoYW5nZVNlcnZpY2UgPSBpbmplY3QoRWRnZUNoYW5nZXNTZXJ2aWNlKVxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBTRVRUSU5HU1xuXG4gIC8qKlxuICAgKiBTaXplIGZvciBmbG93IHZpZXdcbiAgICpcbiAgICogYWNjZXB0c1xuICAgKiAtIGFic29sdXRlIHNpemUgaW4gZm9ybWF0IFt3aWR0aCwgaGVpZ2h0XSBvclxuICAgKiAtICdhdXRvJyB0byBjb21wdXRlIHNpemUgYmFzZWQgb24gcGFyZW50IGVsZW1lbnQgc2l6ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2aWV3KHZpZXc6IFtudW1iZXIsIG51bWJlcl0gfCAnYXV0bycpIHtcbiAgICB0aGlzLmZsb3dNb2RlbC52aWV3LnNldCh2aWV3KVxuICB9XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gem9vbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1pblpvb20gPSAwLjVcblxuICAvKipcbiAgICogTWF4aW11bSB6b29tIHZhbHVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4Wm9vbSA9IDNcblxuICAvKipcbiAgICogT2JqZWN0IHRoYXQgY29udHJvbHMgZmxvdyBkaXJlY3Rpb24uXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBhcmNoaWV2ZSByaWdodCB0byBsZWZ0IGRpcmVjdGlvblxuICAgKiB0aGVuIHlvdSBuZWVkIHRvIHBhc3MgdGhlc2UgcG9zaXRpb25zIHsgc291cmNlOiAnbGVmdCcsIHRhcmdldDogJ3JpZ2h0JyB9XG4gICAqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhhbmRsZVBvc2l0aW9ucyhoYW5kbGVQb3NpdGlvbnM6IEhhbmRsZVBvc2l0aW9ucykge1xuICAgIHRoaXMuZmxvd01vZGVsLmhhbmRsZVBvc2l0aW9ucy5zZXQoaGFuZGxlUG9zaXRpb25zKVxuICB9XG5cbiAgLyoqXG4gICAqIEJhY2tncm91bmQgY29sb3IgZm9yIGZsb3dcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBiYWNrZ3JvdW5kOiBzdHJpbmcgPSAnI0ZGRkZGRidcblxuICAvKipcbiAgICogU2V0dGluZ3MgZm9yIGNvbm5lY3Rpb24gKGl0IHJlbmRlcnMgd2hlbiB1c2VyIHRyaWVzIHRvIGNyZWF0ZSBlZGdlIGJldHdlZW4gbm9kZXMpXG4gICAqXG4gICAqIFlvdSBuZWVkIHRvIHBhc3MgYENvbm5lY3Rpb25TZXR0aW5nc2AgaW4gdGhpcyBpbnB1dC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHNldHRpbmdzOiBDb25uZWN0aW9uU2V0dGluZ3MpID0+IG5ldyBDb25uZWN0aW9uTW9kZWwoc2V0dGluZ3MpIH0pXG4gIHB1YmxpYyBzZXQgY29ubmVjdGlvbihjb25uZWN0aW9uOiBDb25uZWN0aW9uTW9kZWwpIHsgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmNvbm5lY3Rpb24uc2V0KGNvbm5lY3Rpb24pIH1cblxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb24oKSB7IHJldHVybiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuY29ubmVjdGlvbigpIH1cbiAgLy8gI2VuZHJlZ2lvblxuXG4gIC8vICNyZWdpb24gTUFJTl9JTlBVVFNcbiAgLyoqXG4gICAqIE5vZGVzIHRvIHJlbmRlclxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIHNldCBub2RlcyhuZXdOb2RlczogTm9kZVtdKSB7XG4gICAgY29uc3QgbmV3TW9kZWxzID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsXG4gICAgICAoKSA9PiBSZWZlcmVuY2VLZWVwZXIubm9kZXMobmV3Tm9kZXMsIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpKVxuICAgIClcblxuICAgIC8vIFRPRE8gYmV0dGVyIHRvIHNvbHZlIHRoaXMgYnkgRElcbiAgICBiaW5kRmxvd1RvTm9kZXModGhpcy5mbG93TW9kZWwsIG5ld01vZGVscylcblxuICAgIC8vIHF1aWNrIGFuZCBkaXJ0eSBiaW5kaW5nIG5vZGVzIHRvIGVkZ2VzXG4gICAgYWRkTm9kZXNUb0VkZ2VzKG5ld01vZGVscywgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmVkZ2VzKCkpXG5cbiAgICB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2Uubm9kZXMuc2V0KG5ld01vZGVscylcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgbm9kZU1vZGVscygpIHsgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpIH1cblxuICAvKipcbiAgICogRWRnZXMgdG8gcmVuZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVkZ2VzKG5ld0VkZ2VzOiBFZGdlW10pIHtcbiAgICBjb25zdCBuZXdNb2RlbHMgPSBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvcixcbiAgICAgICgpID0+IFJlZmVyZW5jZUtlZXBlci5lZGdlcyhuZXdFZGdlcywgdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLmVkZ2VzKCkpXG4gICAgKVxuXG4gICAgLy8gcXVpY2sgYW5kIGRpcnR5IGJpbmRpbmcgbm9kZXMgdG8gZWRnZXNcbiAgICBhZGROb2Rlc1RvRWRnZXModGhpcy5ub2RlTW9kZWxzLCBuZXdNb2RlbHMpXG5cbiAgICB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuZWRnZXMuc2V0KG5ld01vZGVscylcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZWRnZU1vZGVscygpIHsgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS52YWxpZEVkZ2VzKCkgfVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBURU1QTEFURVNcbiAgQENvbnRlbnRDaGlsZChOb2RlSHRtbFRlbXBsYXRlRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgbm9kZUh0bWxEaXJlY3RpdmU/OiBOb2RlSHRtbFRlbXBsYXRlRGlyZWN0aXZlXG5cbiAgQENvbnRlbnRDaGlsZChFZGdlVGVtcGxhdGVEaXJlY3RpdmUpXG4gIHByb3RlY3RlZCBlZGdlVGVtcGxhdGVEaXJlY3RpdmU/OiBFZGdlVGVtcGxhdGVEaXJlY3RpdmVcblxuICBAQ29udGVudENoaWxkKEVkZ2VMYWJlbEh0bWxUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIGVkZ2VMYWJlbEh0bWxEaXJlY3RpdmU/OiBFZGdlTGFiZWxIdG1sVGVtcGxhdGVEaXJlY3RpdmVcblxuICBAQ29udGVudENoaWxkKENvbm5lY3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIGNvbm5lY3Rpb25UZW1wbGF0ZURpcmVjdGl2ZT86IENvbm5lY3Rpb25UZW1wbGF0ZURpcmVjdGl2ZVxuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gI3JlZ2lvbiBESVJFQ1RJVkVTXG4gIEBWaWV3Q2hpbGQoTWFwQ29udGV4dERpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIG1hcENvbnRleHQhOiBNYXBDb250ZXh0RGlyZWN0aXZlXG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIFNJR05BTF9BUElcbiAgLyoqXG4gICAqIFNpZ25hbCBmb3IgcmVhZGluZyB2aWV3cG9ydCBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2aWV3cG9ydCA9IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQuYXNSZWFkb25seSgpXG5cbiAgLyoqXG4gICAqIFNpZ25hbCBmb3IgcmVhZGluZyBub2RlcyBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBub2Rlc0NoYW5nZSA9XG4gICAgdG9TaWduYWwodGhpcy5ub2Rlc0NoYW5nZVNlcnZpY2UuY2hhbmdlcyQsIHsgaW5pdGlhbFZhbHVlOiBbXSBhcyBOb2RlQ2hhbmdlW10gfSlcblxuICAvKipcbiAgICogU2lnbmFsIHRvIHJlYWRpbmcgZWRnZXMgY2hhbmdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZWRnZXNDaGFuZ2UgPVxuICAgIHRvU2lnbmFsKHRoaXMuZWRnZXNDaGFuZ2VTZXJ2aWNlLmNoYW5nZXMkLCB7IGluaXRpYWxWYWx1ZTogW10gYXMgRWRnZUNoYW5nZVtdIH0pXG4gIC8vICNlbmRyZWdpb25cblxuICAvLyAjcmVnaW9uIFJYX0FQSVxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB3aXRoIHZpZXdwb3J0IGNoYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpZXdwb3J0Q2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KVxuICAgIC5waXBlKHNraXAoMSkpIC8vIHNraXAgZGVmYXVsdCB2YWx1ZSB0aGF0IHNldCBieSBzaWduYWxcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB3aXRoIG5vZGVzIGNoYW5nZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzQ2hhbmdlJCA9IHRoaXMubm9kZXNDaGFuZ2VTZXJ2aWNlLmNoYW5nZXMkXG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgd2l0aCBub2RlcyBjaGFuZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlZGdlc0NoYW5nZSQgPSB0aGlzLmVkZ2VzQ2hhbmdlU2VydmljZS5jaGFuZ2VzJFxuICAvLyAjZW5kcmVnaW9uXG5cbiAgLy8gVE9ETzogcHJvYmFibHkgYmV0dGVyIHRvIG1ha2UgaXQgaW5qZWN0YWJsZVxuICBwcm90ZWN0ZWQgZmxvd01vZGVsID0gbmV3IEZsb3dNb2RlbCgpXG5cbiAgcHJvdGVjdGVkIG1hcmtlcnMgPSB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UubWFya2Vyc1xuXG4gIC8vICNyZWdpb24gTUVUSE9EU19BUElcbiAgLyoqXG4gICAqIENoYW5nZSB2aWV3cG9ydCB0byBzcGVjaWZpZWQgc3RhdGVcbiAgICpcbiAgICogQHBhcmFtIHZpZXdwb3J0IHZpZXdwb3J0IHN0YXRlXG4gICAqL1xuICBwdWJsaWMgdmlld3BvcnRUbyh2aWV3cG9ydDogVmlld3BvcnRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlLndyaXRhYmxlVmlld3BvcnQuc2V0KHsgY2hhbmdlVHlwZTogJ2Fic29sdXRlJywgc3RhdGU6IHZpZXdwb3J0IH0pXG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHpvb21cbiAgICpcbiAgICogQHBhcmFtIHpvb20gem9vbSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHpvb21Ubyh6b29tOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdwb3J0U2VydmljZS53cml0YWJsZVZpZXdwb3J0LnNldCh7IGNoYW5nZVR5cGU6ICdhYnNvbHV0ZScsIHN0YXRlOiB7IHpvb20gfSB9KVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgdG8gc3BlY2lmaWVkIGNvb3JkaW5hdGVcbiAgICpcbiAgICogQHBhcmFtIHBvaW50IHBvaW50IHdoZXJlIHRvIG1vdmVcbiAgICovXG4gIHB1YmxpYyBwYW5Ubyhwb2ludDogUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdwb3J0U2VydmljZS53cml0YWJsZVZpZXdwb3J0LnNldCh7IGNoYW5nZVR5cGU6ICdhYnNvbHV0ZScsIHN0YXRlOiBwb2ludCB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBub2RlIGJ5IGlkXG4gICAqXG4gICAqIEBwYXJhbSBpZCBub2RlIGlkXG4gICAqL1xuICBwdWJsaWMgZ2V0Tm9kZTxUID0gdW5rbm93bj4oaWQ6IHN0cmluZyk6IE5vZGU8VD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2UuZ2V0Tm9kZTxUPihpZCk/Lm5vZGVcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jIG1ldGhvZCB0byBnZXQgZGV0YWNoZWQgZWRnZXNcbiAgICovXG4gIHB1YmxpYyBnZXREZXRhY2hlZEVkZ2VzKCk6IEVkZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5nZXREZXRhY2hlZEVkZ2VzKCkubWFwKGUgPT4gZS5lZGdlKVxuICB9XG4gIC8vICNlbmRyZWdpb25cblxuICBwcm90ZWN0ZWQgdHJhY2tOb2RlcyhpZHg6IG51bWJlciwgeyBub2RlIH06IE5vZGVNb2RlbCkge1xuICAgIHJldHVybiBub2RlLmlkXG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tFZGdlcyhpZHg6IG51bWJlciwgeyBlZGdlIH06IEVkZ2VNb2RlbCkge1xuICAgIHJldHVybiBlZGdlLmlkXG4gIH1cbn1cblxuZnVuY3Rpb24gYmluZEZsb3dUb05vZGVzKGZsb3c6IEZsb3dNb2RlbCwgbm9kZXM6IE5vZGVNb2RlbFtdKSB7XG4gIG5vZGVzLmZvckVhY2gobiA9PiBuLmJpbmRGbG93KGZsb3cpKVxufVxuXG4iLCI8c3ZnOnN2Z1xuICByb290U3ZnUmVmXG4gIHJvb3RTdmdDb250ZXh0XG4gIGNsYXNzPVwicm9vdC1zdmdcIlxuICAjZmxvd1xuICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImJhY2tncm91bmRcIlxuICBbYXR0ci53aWR0aF09XCJmbG93TW9kZWwuZmxvd1dpZHRoKClcIlxuICBbYXR0ci5oZWlnaHRdPVwiZmxvd01vZGVsLmZsb3dIZWlnaHQoKVwiXG4+XG4gIDxkZWZzIFttYXJrZXJzXT1cIm1hcmtlcnMoKVwiIGZsb3dEZWZzIC8+XG5cbiAgPHN2ZzpnXG4gICAgbWFwQ29udGV4dFxuICAgIHNwYWNlUG9pbnRDb250ZXh0XG4gICAgW21pblpvb21dPVwibWluWm9vbVwiXG4gICAgW21heFpvb21dPVwibWF4Wm9vbVwiXG4gID5cbiAgICA8IS0tIENvbm5lY3Rpb24gLS0+XG4gICAgPHN2ZzpnXG4gICAgICBjb25uZWN0aW9uXG4gICAgICBbbW9kZWxdPVwiY29ubmVjdGlvblwiXG4gICAgICBbdGVtcGxhdGVdPVwiY29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZlwiXG4gICAgLz5cblxuICAgIDwhLS0gRWRnZXMgIC0tPlxuICAgIDxzdmc6Z1xuICAgICAgKm5nRm9yPVwibGV0IG1vZGVsIG9mIGVkZ2VNb2RlbHM7IHRyYWNrQnk6IHRyYWNrRWRnZXNcIlxuICAgICAgZWRnZVxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcbiAgICAgIFtlZGdlVGVtcGxhdGVdPVwiZWRnZVRlbXBsYXRlRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZlwiXG4gICAgICBbZWRnZUxhYmVsSHRtbFRlbXBsYXRlXT1cImVkZ2VMYWJlbEh0bWxEaXJlY3RpdmU/LnRlbXBsYXRlUmVmXCJcbiAgICAvPlxuXG4gICAgPCEtLSBOb2RlcyAtLT5cbiAgICA8c3ZnOmdcbiAgICAgICpuZ0Zvcj1cImxldCBtb2RlbCBvZiBub2RlTW9kZWxzOyB0cmFja0J5OiB0cmFja05vZGVzXCJcbiAgICAgIG5vZGVcbiAgICAgIFtub2RlTW9kZWxdPVwibW9kZWxcIlxuICAgICAgW25vZGVIdG1sVGVtcGxhdGVdPVwibm9kZUh0bWxEaXJlY3RpdmU/LnRlbXBsYXRlUmVmXCJcbiAgICAgIFthdHRyLnRyYW5zZm9ybV09XCJtb2RlbC5wb2ludFRyYW5zZm9ybSgpXCJcbiAgICAvPlxuICA8L3N2ZzpnPlxuXG48L3N2Zzpzdmc+XG4iXX0=
|
|
@@ -2,9 +2,35 @@ import { computed } from "@angular/core";
|
|
|
2
2
|
import { EdgeLabelModel } from "./edge-label.model";
|
|
3
3
|
import { straightPath } from "../math/edge-path/straigh-path";
|
|
4
4
|
import { bezierPath } from "../math/edge-path/bezier-path";
|
|
5
|
+
import { toObservable } from "@angular/core/rxjs-interop";
|
|
5
6
|
export class EdgeModel {
|
|
6
7
|
constructor(edge) {
|
|
7
8
|
this.edge = edge;
|
|
9
|
+
this.detached = computed(() => {
|
|
10
|
+
if (!this.source || !this.target) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
let existsSourceHandle = false;
|
|
14
|
+
let existsTargetHandle = false;
|
|
15
|
+
if (this.edge.sourceHandle) {
|
|
16
|
+
existsSourceHandle = !!this.source.handles()
|
|
17
|
+
.find(handle => handle.rawHandle.id === this.edge.sourceHandle);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
existsSourceHandle = !!this.source.handles()
|
|
21
|
+
.find(handle => handle.rawHandle.type === 'source');
|
|
22
|
+
}
|
|
23
|
+
if (this.edge.targetHandle) {
|
|
24
|
+
existsTargetHandle = !!this.target.handles()
|
|
25
|
+
.find(handle => handle.rawHandle.id === this.edge.targetHandle);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
existsTargetHandle = !!this.target.handles()
|
|
29
|
+
.find(handle => handle.rawHandle.type === 'target');
|
|
30
|
+
}
|
|
31
|
+
return !existsSourceHandle || !existsTargetHandle;
|
|
32
|
+
});
|
|
33
|
+
this.detached$ = toObservable(this.detached);
|
|
8
34
|
this.path = computed(() => {
|
|
9
35
|
let source;
|
|
10
36
|
if (this.edge.sourceHandle) {
|
|
@@ -54,4 +80,4 @@ export class EdgeModel {
|
|
|
54
80
|
this.usingPoints = [!!this.edgeLabels.start, !!this.edgeLabels.center, !!this.edgeLabels.end];
|
|
55
81
|
}
|
|
56
82
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvZWRnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxNQUFNLE9BQU8sU0FBUztJQW1GcEIsWUFBbUIsSUFBVTtRQUFWLFNBQUksR0FBSixJQUFJLENBQU07UUE3RXRCLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUE7YUFDWjtZQUVELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFBO1lBQzlCLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFBO1lBRTlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzFCLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtxQkFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTthQUNsRTtpQkFBTTtnQkFDTCxrQkFBa0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVB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Y29yZVwiO1xuaW1wb3J0IHsgRWRnZUxhYmVsUG9zaXRpb24gfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9lZGdlLWxhYmVsLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRWRnZSwgQ3VydmUsIEVkZ2VUeXBlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvZWRnZS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEVkZ2VMYWJlbE1vZGVsIH0gZnJvbSBcIi4vZWRnZS1sYWJlbC5tb2RlbFwiO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSBcIi4vbm9kZS5tb2RlbFwiO1xuaW1wb3J0IHsgc3RyYWlnaHRQYXRoIH0gZnJvbSBcIi4uL21hdGgvZWRnZS1wYXRoL3N0cmFpZ2gtcGF0aFwiO1xuaW1wb3J0IHsgYmV6aWVyUGF0aCB9IGZyb20gXCIuLi9tYXRoL2VkZ2UtcGF0aC9iZXppZXItcGF0aFwiO1xuaW1wb3J0IHsgVXNpbmdQb2ludHMgfSBmcm9tIFwiLi4vdHlwZXMvdXNpbmctcG9pbnRzLnR5cGVcIjtcbmltcG9ydCB7IFBvaW50IH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcG9pbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gXCIuL2hhbmRsZS5tb2RlbFwiO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5cbmV4cG9ydCBjbGFzcyBFZGdlTW9kZWwge1xuICBwdWJsaWMgc291cmNlITogTm9kZU1vZGVsXG4gIHB1YmxpYyB0YXJnZXQhOiBOb2RlTW9kZWxcbiAgcHVibGljIGN1cnZlOiBDdXJ2ZVxuICBwdWJsaWMgdHlwZTogRWRnZVR5cGVcblxuICBwdWJsaWMgZGV0YWNoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnNvdXJjZSB8fCAhdGhpcy50YXJnZXQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgbGV0IGV4aXN0c1NvdXJjZUhhbmRsZSA9IGZhbHNlXG4gICAgbGV0IGV4aXN0c1RhcmdldEhhbmRsZSA9IGZhbHNlXG5cbiAgICBpZiAodGhpcy5lZGdlLnNvdXJjZUhhbmRsZSkge1xuICAgICAgZXhpc3RzU291cmNlSGFuZGxlID0gISF0aGlzLnNvdXJjZS5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGV4aXN0c1NvdXJjZUhhbmRsZSA9ICEhdGhpcy5zb3VyY2UuaGFuZGxlcygpXG4gICAgICAgIC5maW5kKGhhbmRsZSA9PiBoYW5kbGUucmF3SGFuZGxlLnR5cGUgPT09ICdzb3VyY2UnKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKSB7XG4gICAgICBleGlzdHNUYXJnZXRIYW5kbGUgPSAhIXRoaXMudGFyZ2V0LmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS5pZCA9PT0gdGhpcy5lZGdlLnRhcmdldEhhbmRsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgZXhpc3RzVGFyZ2V0SGFuZGxlID0gISF0aGlzLnRhcmdldC5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUudHlwZSA9PT0gJ3RhcmdldCcpXG4gICAgfVxuXG4gICAgcmV0dXJuICFleGlzdHNTb3VyY2VIYW5kbGUgfHwgIWV4aXN0c1RhcmdldEhhbmRsZVxuICB9KVxuXG4gIHB1YmxpYyBkZXRhY2hlZCQgPSB0b09ic2VydmFibGUodGhpcy5kZXRhY2hlZClcblxuICBwdWJsaWMgcGF0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBsZXQgc291cmNlOiBIYW5kbGVNb2RlbCB8IHVuZGVmaW5lZFxuICAgIGlmICh0aGlzLmVkZ2Uuc291cmNlSGFuZGxlKSB7XG4gICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZS5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS5zb3VyY2VIYW5kbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNvdXJjZSA9IHRoaXMuc291cmNlLmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAnc291cmNlJylcbiAgICB9XG5cbiAgICBsZXQgdGFyZ2V0OiBIYW5kbGVNb2RlbCB8IHVuZGVmaW5lZFxuICAgIGlmICh0aGlzLmVkZ2UudGFyZ2V0SGFuZGxlKSB7XG4gICAgICB0YXJnZXQgPSB0aGlzLnRhcmdldC5oYW5kbGVzKClcbiAgICAgICAgLmZpbmQoaGFuZGxlID0+IGhhbmRsZS5yYXdIYW5kbGUuaWQgPT09IHRoaXMuZWRnZS50YXJnZXRIYW5kbGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldCA9IHRoaXMudGFyZ2V0LmhhbmRsZXMoKVxuICAgICAgICAuZmluZChoYW5kbGUgPT4gaGFuZGxlLnJhd0hhbmRsZS50eXBlID09PSAndGFyZ2V0JylcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBkb24ndCBsaWtlIHRoaXNcbiAgICBpZiAoIXNvdXJjZSB8fCAhdGFyZ2V0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgcG9pbnRzOiB7XG4gICAgICAgICAgc3RhcnQ6IHsgeDogMCwgeTogMCB9LFxuICAgICAgICAgIGNlbnRlcjogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgZW5kOiB7IHg6IDAsIHk6IDAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLmN1cnZlKSB7XG4gICAgICBjYXNlICdzdHJhaWdodCc6XG4gICAgICAgIHJldHVybiBzdHJhaWdodFBhdGgoc291cmNlLnBvaW50QWJzb2x1dGUoKSwgdGFyZ2V0LnBvaW50QWJzb2x1dGUoKSwgdGhpcy51c2luZ1BvaW50cylcbiAgICAgIGNhc2UgJ2Jlemllcic6XG4gICAgICAgIHJldHVybiBiZXppZXJQYXRoKFxuICAgICAgICAgIHNvdXJjZS5wb2ludEFic29sdXRlKCksIHRhcmdldC5wb2ludEFic29sdXRlKCksXG4gICAgICAgICAgc291cmNlLnJhd0hhbmRsZS5wb3NpdGlvbixcbiAgICAgICAgICB0YXJnZXQucmF3SGFuZGxlLnBvc2l0aW9uLFxuICAgICAgICAgIHRoaXMudXNpbmdQb2ludHNcbiAgICAgICAgKVxuICAgIH1cbiAgfSlcblxuICBwdWJsaWMgZWRnZUxhYmVsczogeyBbcG9zaXRpb24gaW4gRWRnZUxhYmVsUG9zaXRpb25dPzogRWRnZUxhYmVsTW9kZWwgfSA9IHt9XG5cbiAgcHJpdmF0ZSB1c2luZ1BvaW50czogVXNpbmdQb2ludHNcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWRnZTogRWRnZSkge1xuICAgIHRoaXMudHlwZSA9IGVkZ2UudHlwZSA/PyAnZGVmYXVsdCdcbiAgICB0aGlzLmN1cnZlID0gZWRnZS5jdXJ2ZSA/PyAnYmV6aWVyJ1xuXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uc3RhcnQpIHRoaXMuZWRnZUxhYmVscy5zdGFydCA9IG5ldyBFZGdlTGFiZWxNb2RlbChlZGdlLmVkZ2VMYWJlbHMuc3RhcnQpXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uY2VudGVyKSB0aGlzLmVkZ2VMYWJlbHMuY2VudGVyID0gbmV3IEVkZ2VMYWJlbE1vZGVsKGVkZ2UuZWRnZUxhYmVscy5jZW50ZXIpXG4gICAgaWYgKGVkZ2UuZWRnZUxhYmVscz8uZW5kKSB0aGlzLmVkZ2VMYWJlbHMuZW5kID0gbmV3IEVkZ2VMYWJlbE1vZGVsKGVkZ2UuZWRnZUxhYmVscy5lbmQpXG5cbiAgICB0aGlzLnVzaW5nUG9pbnRzID0gWyEhdGhpcy5lZGdlTGFiZWxzLnN0YXJ0LCAhIXRoaXMuZWRnZUxhYmVscy5jZW50ZXIsICEhdGhpcy5lZGdlTGFiZWxzLmVuZF1cbiAgfVxufVxuIl19
|
|
@@ -12,18 +12,18 @@ export class HandleModel {
|
|
|
12
12
|
switch (this.rawHandle.position) {
|
|
13
13
|
case 'left': return {
|
|
14
14
|
x: 0,
|
|
15
|
-
y: this.
|
|
15
|
+
y: this.parentPosition().y + (this.parentSize().height / 2)
|
|
16
16
|
};
|
|
17
17
|
case 'right': return {
|
|
18
18
|
x: this.parentNode.size().width,
|
|
19
|
-
y: this.
|
|
19
|
+
y: this.parentPosition().y + (this.parentSize().height / 2)
|
|
20
20
|
};
|
|
21
21
|
case 'top': return {
|
|
22
|
-
x: this.
|
|
22
|
+
x: this.parentPosition().x + (this.parentSize().width / 2),
|
|
23
23
|
y: 0
|
|
24
24
|
};
|
|
25
25
|
case 'bottom': return {
|
|
26
|
-
x: this.
|
|
26
|
+
x: this.parentPosition().x + this.parentSize().width / 2,
|
|
27
27
|
y: this.parentNode.size().height
|
|
28
28
|
};
|
|
29
29
|
}
|
|
@@ -42,6 +42,8 @@ export class HandleModel {
|
|
|
42
42
|
y: this.parentNode.point().y + this.offset().y + this.sizeOffset().y,
|
|
43
43
|
};
|
|
44
44
|
});
|
|
45
|
+
this.parentSize = signal(this.rawHandle.parentSize);
|
|
46
|
+
this.parentPosition = signal(this.rawHandle.parentPosition);
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L21vZGVscy9oYW5kbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsTUFBTSxPQUFPLFdBQVc7SUFnRHRCLFlBQ1MsU0FBcUIsRUFDcEIsVUFBcUI7UUFEdEIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBakRmLGdCQUFXLEdBQUcsQ0FBQyxDQUFBO1FBRXhCLFNBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2xDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNwQyxDQUFDLENBQUE7UUFFSyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixRQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUMvQixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU87b0JBQ2xCLENBQUMsRUFBRSxDQUFDO29CQUNKLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7aUJBQzVELENBQUE7Z0JBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPO29CQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO29CQUMvQixDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUM1RCxDQUFBO2dCQUNELEtBQUssS0FBSyxDQUFDLENBQUMsT0FBTztvQkFDakIsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDMUQsQ0FBQyxFQUFFLENBQUM7aUJBQ0wsQ0FBQTtnQkFDRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU87b0JBQ3BCLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztvQkFDeEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTTtpQkFDakMsQ0FBQTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFSyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxRQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUMvQixLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO2dCQUN6RCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFBO2dCQUN2RCxLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUN6RCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFBO2FBQzFEO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFSyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsT0FBTztnQkFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7YUFDckUsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBRUssZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzlDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUE7SUFLekQsQ0FBQztDQUNOIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOb2RlSGFuZGxlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2hhbmRsZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tIFwiLi9ub2RlLm1vZGVsXCI7XG5leHBvcnQgY2xhc3MgSGFuZGxlTW9kZWwge1xuICBwdWJsaWMgcmVhZG9ubHkgc3Ryb2tlV2lkdGggPSAyXG5cbiAgcHVibGljIHNpemUgPSBzaWduYWwoe1xuICAgIHdpZHRoOiAxMCArICgyICogdGhpcy5zdHJva2VXaWR0aCksXG4gICAgaGVpZ2h0OiAxMCArICgyICogdGhpcy5zdHJva2VXaWR0aClcbiAgfSlcblxuICBwdWJsaWMgb2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOiByZXR1cm4ge1xuICAgICAgICB4OiAwLFxuICAgICAgICB5OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueSArICh0aGlzLnBhcmVudFNpemUoKS5oZWlnaHQgLyAyKVxuICAgICAgfVxuICAgICAgY2FzZSAncmlnaHQnOiByZXR1cm4ge1xuICAgICAgICB4OiB0aGlzLnBhcmVudE5vZGUuc2l6ZSgpLndpZHRoLFxuICAgICAgICB5OiB0aGlzLnBhcmVudFBvc2l0aW9uKCkueSArICh0aGlzLnBhcmVudFNpemUoKS5oZWlnaHQgLyAyKVxuICAgICAgfVxuICAgICAgY2FzZSAndG9wJzogcmV0dXJuIHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRQb3NpdGlvbigpLnggKyAodGhpcy5wYXJlbnRTaXplKCkud2lkdGggLyAyKSxcbiAgICAgICAgeTogMFxuICAgICAgfVxuICAgICAgY2FzZSAnYm90dG9tJzogcmV0dXJuIHtcbiAgICAgICAgeDogdGhpcy5wYXJlbnRQb3NpdGlvbigpLnggKyB0aGlzLnBhcmVudFNpemUoKS53aWR0aCAvIDIsXG4gICAgICAgIHk6IHRoaXMucGFyZW50Tm9kZS5zaXplKCkuaGVpZ2h0XG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBzaXplT2Zmc2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHN3aXRjaCAodGhpcy5yYXdIYW5kbGUucG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ2xlZnQnOiByZXR1cm4geyB4OiAtKHRoaXMuc2l6ZSgpLndpZHRoIC8gMiksIHk6IDAgfVxuICAgICAgY2FzZSAncmlnaHQnOiByZXR1cm4geyB4OiB0aGlzLnNpemUoKS53aWR0aCAvIDIsIHk6IDAgfVxuICAgICAgY2FzZSAndG9wJzogcmV0dXJuIHsgeDogMCwgeTogLSh0aGlzLnNpemUoKS5oZWlnaHQgLyAyKSB9XG4gICAgICBjYXNlICdib3R0b20nOiByZXR1cm4geyB4OiAwLCB5OiB0aGlzLnNpemUoKS5oZWlnaHQgLyAyIH1cbiAgICB9XG4gIH0pXG5cbiAgcHVibGljIHBvaW50QWJzb2x1dGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHRoaXMucGFyZW50Tm9kZS5wb2ludCgpLnggKyB0aGlzLm9mZnNldCgpLnggKyB0aGlzLnNpemVPZmZzZXQoKS54LFxuICAgICAgeTogdGhpcy5wYXJlbnROb2RlLnBvaW50KCkueSArIHRoaXMub2Zmc2V0KCkueSArIHRoaXMuc2l6ZU9mZnNldCgpLnksXG4gICAgfVxuICB9KVxuXG4gIHB1YmxpYyBwYXJlbnRTaXplID0gc2lnbmFsKHRoaXMucmF3SGFuZGxlLnBhcmVudFNpemUpXG4gIHB1YmxpYyBwYXJlbnRQb3NpdGlvbiA9IHNpZ25hbCh0aGlzLnJhd0hhbmRsZS5wYXJlbnRQb3NpdGlvbilcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmF3SGFuZGxlOiBOb2RlSGFuZGxlLFxuICAgIHByaXZhdGUgcGFyZW50Tm9kZTogTm9kZU1vZGVsXG4gICkgeyB9XG59XG4iXX0=
|
|
@@ -14,20 +14,20 @@ export class NodeModel {
|
|
|
14
14
|
this.targetPosition = computed(() => this.flow.handlePositions().target);
|
|
15
15
|
this.handles = computed(() => {
|
|
16
16
|
if (this.node.type === 'html-template') {
|
|
17
|
-
return this.rawHandles()
|
|
17
|
+
return this.rawHandles();
|
|
18
18
|
}
|
|
19
19
|
return [
|
|
20
20
|
new HandleModel({
|
|
21
21
|
position: this.sourcePosition(),
|
|
22
22
|
type: 'source',
|
|
23
|
-
parentPosition:
|
|
24
|
-
parentSize:
|
|
23
|
+
parentPosition: { x: 0, y: 0 },
|
|
24
|
+
parentSize: this.size()
|
|
25
25
|
}, this),
|
|
26
26
|
new HandleModel({
|
|
27
27
|
position: this.targetPosition(),
|
|
28
28
|
type: 'target',
|
|
29
|
-
parentPosition:
|
|
30
|
-
parentSize:
|
|
29
|
+
parentPosition: { x: 0, y: 0 },
|
|
30
|
+
parentSize: this.size()
|
|
31
31
|
}, this),
|
|
32
32
|
];
|
|
33
33
|
});
|
|
@@ -48,4 +48,4 @@ export class NodeModel {
|
|
|
48
48
|
this.flow = flow;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9tb2RlbHMvbm9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU1QyxNQUFNLE9BQU8sU0FBUztJQW9EcEIsWUFDUyxJQUFhO1FBQWIsU0FBSSxHQUFKLElBQUksQ0FBUztRQXBEZixVQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUU5QixXQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVqQyxTQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUV0QyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFekYsMkRBQTJEO1FBQ3BELG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbkUsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUVuRSxZQUFPLEdBQUcsUUFBUSxDQUN2QixHQUFHLEVBQUU7WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRTtnQkFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7YUFDekI7WUFFRCxPQUFPO2dCQUNMLElBQUksV0FBVyxDQUNiO29CQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUMvQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxjQUFjLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQzlCLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2lCQUN4QixFQUNELElBQUksQ0FDTDtnQkFDRCxJQUFJLFdBQVcsQ0FDYjtvQkFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDL0IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUM5QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtpQkFDeEIsRUFDRCxJQUFJLENBQ0w7YUFFRixDQUFBO1FBQ0gsQ0FBQyxDQUNGLENBQUE7UUFFTSxlQUFVLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQTtRQUV0QyxjQUFTLEdBQUcsSUFBSSxDQUFBO1FBRXZCLHFDQUFxQztRQUNyQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQU8vQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFMUIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxJQUFlO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyBGbG93TW9kZWwgfSBmcm9tICcuL2Zsb3cubW9kZWwnXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscy9pcy1kZWZpbmVkJ1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnXG5pbXBvcnQgeyBIYW5kbGVNb2RlbCB9IGZyb20gJy4vaGFuZGxlLm1vZGVsJ1xuXG5leHBvcnQgY2xhc3MgTm9kZU1vZGVsPFQgPSB1bmtub3duPiB7XG4gIHB1YmxpYyBwb2ludCA9IHNpZ25hbCh7IHg6IDAsIHk6IDAgfSlcblxuICBwdWJsaWMgcG9pbnQkID0gdG9PYnNlcnZhYmxlKHRoaXMucG9pbnQpXG5cbiAgcHVibGljIHNpemUgPSBzaWduYWwoeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pXG5cbiAgcHVibGljIHBvaW50VHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT4gYHRyYW5zbGF0ZSgke3RoaXMucG9pbnQoKS54fSwgJHt0aGlzLnBvaW50KCkueX0pYClcblxuICAvLyBOb3cgc291cmNlIGFuZCBoYW5kbGUgcG9zaXRpb25zIGRlcml2ZWQgZnJvbSBwYXJlbnQgZmxvd1xuICBwdWJsaWMgc291cmNlUG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3cuaGFuZGxlUG9zaXRpb25zKCkuc291cmNlKVxuICBwdWJsaWMgdGFyZ2V0UG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3cuaGFuZGxlUG9zaXRpb25zKCkudGFyZ2V0KVxuXG4gIHB1YmxpYyBoYW5kbGVzID0gY29tcHV0ZWQoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubm9kZS50eXBlID09PSAnaHRtbC10ZW1wbGF0ZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3SGFuZGxlcygpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIG5ldyBIYW5kbGVNb2RlbChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5zb3VyY2VQb3NpdGlvbigpLFxuICAgICAgICAgICAgdHlwZTogJ3NvdXJjZScsXG4gICAgICAgICAgICBwYXJlbnRQb3NpdGlvbjogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgICBwYXJlbnRTaXplOiB0aGlzLnNpemUoKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGhpc1xuICAgICAgICApLFxuICAgICAgICBuZXcgSGFuZGxlTW9kZWwoXG4gICAgICAgICAge1xuICAgICAgICAgICAgcG9zaXRpb246IHRoaXMudGFyZ2V0UG9zaXRpb24oKSxcbiAgICAgICAgICAgIHR5cGU6ICd0YXJnZXQnLFxuICAgICAgICAgICAgcGFyZW50UG9zaXRpb246IHsgeDogMCwgeTogMCB9LFxuICAgICAgICAgICAgcGFyZW50U2l6ZTogdGhpcy5zaXplKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRoaXNcbiAgICAgICAgKSxcblxuICAgICAgXVxuICAgIH1cbiAgKVxuXG4gIHB1YmxpYyByYXdIYW5kbGVzID0gc2lnbmFsPEhhbmRsZU1vZGVsW10+KFtdKVxuXG4gIHB1YmxpYyBkcmFnZ2FibGUgPSB0cnVlXG5cbiAgLy8gZGlzYWJsZWQgZm9yIGNvbmZpZ3VyYXRpb24gZm9yIG5vd1xuICBwdWJsaWMgcmVhZG9ubHkgbWFnbmV0UmFkaXVzID0gMjBcblxuICBwcml2YXRlIGZsb3chOiBGbG93TW9kZWxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogTm9kZTxUPlxuICApIHtcbiAgICB0aGlzLnBvaW50LnNldChub2RlLnBvaW50KVxuXG4gICAgaWYgKGlzRGVmaW5lZChub2RlLmRyYWdnYWJsZSkpIHRoaXMuZHJhZ2dhYmxlID0gbm9kZS5kcmFnZ2FibGVcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHBhcmVudCBmbG93IG1vZGVsIHRvIG5vZGVcbiAgICpcbiAgICogQHBhcmFtIGZsb3cgcGFyZW50IGZsb3dcbiAgICovXG4gIHB1YmxpYyBiaW5kRmxvdyhmbG93OiBGbG93TW9kZWwpIHtcbiAgICB0aGlzLmZsb3cgPSBmbG93XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
import { Injectable, computed, inject, untracked } from '@angular/core';
|
|
2
2
|
import { FlowEntitiesService } from './flow-entities.service';
|
|
3
|
-
import { asyncScheduler, filter, map, merge, observeOn, pairwise } from 'rxjs';
|
|
3
|
+
import { asyncScheduler, distinctUntilChanged, filter, map, merge, observeOn, pairwise, skip, switchMap, zip } from 'rxjs';
|
|
4
4
|
import { toObservable } from '@angular/core/rxjs-interop';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
const haveSameContents = (a, b) => a.length === b.length &&
|
|
7
|
+
[...new Set([...a, ...b])].every(v => a.filter(e => e === v).length === b.filter(e => e === v).length);
|
|
6
8
|
export class EdgeChangesService {
|
|
7
9
|
constructor() {
|
|
8
10
|
this.entitiesService = inject(FlowEntitiesService);
|
|
9
|
-
this.edgeDetachedChange$ = toObservable(computed(() => {
|
|
11
|
+
this.edgeDetachedChange$ = merge(toObservable(computed(() => {
|
|
10
12
|
const nodes = this.entitiesService.nodes();
|
|
11
13
|
const edges = untracked(this.entitiesService.edges);
|
|
12
14
|
return edges.filter(({ source, target }) => !nodes.includes(source) || !nodes.includes(target));
|
|
13
|
-
})).pipe(
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
})), toObservable(this.entitiesService.edges).pipe(switchMap((edges) => {
|
|
16
|
+
return zip(...edges.map(e => e.detached$.pipe(map(() => e))));
|
|
17
|
+
}), map((edges) => edges.filter(e => e.detached())),
|
|
18
|
+
// TODO check why there are 2 emits
|
|
19
|
+
skip(2))).pipe(
|
|
20
|
+
// here we check if 2 approaches to detect detached edges emits same
|
|
21
|
+
// and same values (this may happen on node delete)
|
|
22
|
+
distinctUntilChanged(haveSameContents), filter(edges => !!edges.length), map((edges) => edges.map(({ edge }) => ({ type: 'detached', id: edge.id }))));
|
|
16
23
|
this.edgeAddChange$ = toObservable(this.entitiesService.edges)
|
|
17
24
|
.pipe(pairwise(), map(([oldList, newList]) => {
|
|
18
25
|
return newList.filter(edge => !oldList.includes(edge));
|
|
@@ -35,4 +42,4 @@ export class EdgeChangesService {
|
|
|
35
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EdgeChangesService, decorators: [{
|
|
36
43
|
type: Injectable
|
|
37
44
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jaGFuZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvc2VydmljZXMvZWRnZS1jaGFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQWMsY0FBYyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQU8sR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHMUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFJLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUM3QyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNO0lBQ3JCLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDckUsQ0FBQztBQUdKLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxtQkFB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T0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ3hELENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQy9CLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1osS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUMzRCxDQUNpQyxDQUFBO1FBRXRCLGFBQVEsR0FBNkIsS0FBSyxDQUN4RCxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkI7YUFDRSxJQUFJO1FBQ0gsd0RBQXdEO1FBQ3hELGdEQUFnRDtRQUNoRCwrREFBK0Q7UUFDL0QsbUNBQW1DO1FBQ25DLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FDMUIsQ0FBQTtLQUNKOytHQXRFWSxrQkFBa0I7bUhBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBpbmplY3QsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGFzeW5jU2NoZWR1bGVyLCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIG1lcmdlLCBvYnNlcnZlT24sIHBhaXJ3aXNlLCBza2lwLCBzd2l0Y2hNYXAsIHRhcCwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFZGdlQ2hhbmdlIH0gZnJvbSAnLi4vdHlwZXMvZWRnZS1jaGFuZ2UudHlwZSc7XG5cbmNvbnN0IGhhdmVTYW1lQ29udGVudHMgPSA8VD4oYTogVFtdLCBiOiBUW10pID0+XG4gIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJlxuICBbLi4ubmV3IFNldChbLi4uYSwgLi4uYl0pXS5ldmVyeShcbiAgICB2ID0+IGEuZmlsdGVyKGUgPT4gZSA9PT0gdikubGVuZ3RoID09PSBiLmZpbHRlcihlID0+IGUgPT09IHYpLmxlbmd0aFxuICApO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWRnZUNoYW5nZXNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGVudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKVxuXG4gIHByb3RlY3RlZCBlZGdlRGV0YWNoZWRDaGFuZ2UkID0gbWVyZ2UoXG4gICAgdG9PYnNlcnZhYmxlKFxuICAgICAgY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlcyA9IHRoaXMuZW50aXRpZXNTZXJ2aWNlLm5vZGVzKClcbiAgICAgICAgY29uc3QgZWRnZXMgPSB1bnRyYWNrZWQodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpXG5cbiAgICAgICAgcmV0dXJuIGVkZ2VzLmZpbHRlcigoeyBzb3VyY2UsIHRhcmdldCB9KSA9PlxuICAgICAgICAgICFub2Rlcy5pbmNsdWRlcyhzb3VyY2UpIHx8ICFub2Rlcy5pbmNsdWRlcyh0YXJnZXQpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgKSxcbiAgICB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGVkZ2VzKSA9PiB7XG4gICAgICAgIHJldHVybiB6aXAoXG4gICAgICAgICAgLi4uZWRnZXMubWFwKGUgPT4gZS5kZXRhY2hlZCQucGlwZShtYXAoKCkgPT4gZSkpKVxuICAgICAgICApXG4gICAgICB9KSxcbiAgICAgIG1hcCgoZWRnZXMpID0+IGVkZ2VzLmZpbHRlcihlID0+IGUuZGV0YWNoZWQoKSkpLFxuICAgICAgLy8gVE9ETyBjaGVjayB3aHkgdGhlcmUgYXJlIDIgZW1pdHNcbiAgICAgIHNraXAoMiksXG4gICAgKVxuICApLnBpcGUoXG4gICAgLy8gaGVyZSB3ZSBjaGVjayBpZiAyIGFwcHJvYWNoZXMgdG8gZGV0ZWN0IGRldGFjaGVkIGVkZ2VzIGVtaXRzIHNhbWVcbiAgICAvLyBhbmQgc2FtZSB2YWx1ZXMgKHRoaXMgbWF5IGhhcHBlbiBvbiBub2RlIGRlbGV0ZSlcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChoYXZlU2FtZUNvbnRlbnRzKSxcbiAgICBmaWx0ZXIoZWRnZXMgPT4gISFlZGdlcy5sZW5ndGgpLFxuICAgIG1hcCgoZWRnZXMpID0+XG4gICAgICBlZGdlcy5tYXAoKHsgZWRnZSB9KSA9PiAoeyB0eXBlOiAnZGV0YWNoZWQnLCBpZDogZWRnZS5pZCB9KSlcbiAgICApXG4gICkgc2F0aXNmaWVzIE9ic2VydmFibGU8RWRnZUNoYW5nZVtdPlxuXG4gIHByb3RlY3RlZCBlZGdlQWRkQ2hhbmdlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzU2VydmljZS5lZGdlcylcbiAgICAucGlwZShcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtvbGRMaXN0LCBuZXdMaXN0XSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3TGlzdC5maWx0ZXIoZWRnZSA9PiAhb2xkTGlzdC5pbmNsdWRlcyhlZGdlKSlcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKGVkZ2VzID0+ICEhZWRnZXMubGVuZ3RoKSxcbiAgICAgIG1hcCgoZWRnZXMpID0+XG4gICAgICAgIGVkZ2VzLm1hcCgoeyBlZGdlIH0pID0+ICh7IHR5cGU6ICdhZGQnLCBpZDogZWRnZS5pZCB9KSlcbiAgICAgIClcbiAgICApIHNhdGlzZmllcyBPYnNlcnZhYmxlPEVkZ2VDaGFuZ2VbXT5cblxuICBwcm90ZWN0ZWQgZWRnZVJlbW92ZUNoYW5nZSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllc1NlcnZpY2UuZWRnZXMpXG4gICAgLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgbWFwKChbb2xkTGlzdCwgbmV3TGlzdF0pID0+IHtcbiAgICAgICAgcmV0dXJuIG9sZExpc3QuZmlsdGVyKGVkZ2UgPT4gIW5ld0xpc3QuaW5jbHVkZXMoZWRnZSkpXG4gICAgICB9KSxcbiAgICAgIGZpbHRlcihlZGdlcyA9PiAhIWVkZ2VzLmxlbmd0aCksXG4gICAgICBtYXAoKGVkZ2VzKSA9PlxuICAgICAgICBlZGdlcy5tYXAoKHsgZWRnZSB9KSA9PiAoeyB0eXBlOiAncmVtb3ZlJywgaWQ6IGVkZ2UuaWQgfSkpXG4gICAgICApXG4gICAgKSBzYXRpc2ZpZXMgT2JzZXJ2YWJsZTxFZGdlQ2hhbmdlW10+XG5cbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZXMkOiBPYnNlcnZhYmxlPEVkZ2VDaGFuZ2VbXT4gPSBtZXJnZShcbiAgICB0aGlzLmVkZ2VEZXRhY2hlZENoYW5nZSQsXG4gICAgdGhpcy5lZGdlQWRkQ2hhbmdlJCxcbiAgICB0aGlzLmVkZ2VSZW1vdmVDaGFuZ2UkXG4gIClcbiAgICAucGlwZShcbiAgICAgIC8vIHRoaXMgZml4ZXMgdGhlIGNhc2Ugd2hlbiB1c2VyIGdldHMgJ2RldGVjaGVkJyBjaGFuZ2VzXG4gICAgICAvLyBhbmQgdHJpZXMgdG8gZGVsZXRlIHRoZXNlIGVkZ2VzIGluc2lkZSBzdHJlYW1cbiAgICAgIC8vIGFuZ3VsYXIgbWF5IGlnbm9yZSB0aGlzIGNoYW5nZSBiZWNhdXNlIFtlZGdlc10gaW5wdXQgY2hhbmdlZFxuICAgICAgLy8gcmlnaHQgYWZ0ZXIgW25vZGVzXSBpbnB1dCBjaGFuZ2VcbiAgICAgIG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksXG4gICAgKVxufVxuIl19
|
|
@@ -40,10 +40,13 @@ export class FlowEntitiesService {
|
|
|
40
40
|
getNode(id) {
|
|
41
41
|
return this.nodes().find(({ node }) => node.id === id);
|
|
42
42
|
}
|
|
43
|
+
getDetachedEdges() {
|
|
44
|
+
return this.edges().filter(e => e.detached());
|
|
45
|
+
}
|
|
43
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowEntitiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
47
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowEntitiesService }); }
|
|
45
48
|
}
|
|
46
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlowEntitiesService, decorators: [{
|
|
47
50
|
type: Injectable
|
|
48
51
|
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1lbnRpdGllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3NlcnZpY2VzL2Zsb3ctZW50aXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3pDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFa0IsVUFBSyxHQUFHLE1BQU0sQ0FBYyxFQUFFLEVBQUU7WUFDOUMsK0RBQStEO1lBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDekQsQ0FBQyxDQUFBO1FBRWMsVUFBSyxHQUFHLE1BQU0sQ0FBYyxFQUFFLEVBQUU7WUFDOUMsK0RBQStEO1lBQy9ELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDekQsQ0FBQyxDQUFBO1FBRWMsZUFBVSxHQUFHLE1BQU0sQ0FBa0IsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUU3RCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtZQUU1QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRTtvQkFDekIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtvQkFDM0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQzNDO2dCQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUN2QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO29CQUN6RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtpQkFDekM7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUE7WUFDNUQsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDcEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBO2dCQUN2RCxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO2FBQ3ZDO1lBRUQsT0FBTyxVQUFVLENBQUE7UUFDbkIsQ0FBQyxDQUFDLENBQUE7UUFFYyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFFMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUN2RixDQUFDLENBQUMsQ0FBQTtLQVNIO0lBUFEsT0FBTyxDQUFJLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQTZCLENBQUE7SUFDcEYsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDOytHQWpEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY29ubmVjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBNYXJrZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21hcmtlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaGFzaENvZGUgfSBmcm9tICcuLi91dGlscy9oYXNoJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dFbnRpdGllc1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXMgPSBzaWduYWw8Tm9kZU1vZGVsW10+KFtdLCB7XG4gICAgLy8gZW1wdHkgYXJyYXlzIGNvbnNpZGVyZWQgZXF1YWwsIG90aGVyIGFycmF5cyBtYXkgbm90IGJlIGVxdWFsXG4gICAgZXF1YWw6IChhLCBiKSA9PiAhYS5sZW5ndGggJiYgIWIubGVuZ3RoID8gdHJ1ZSA6IGEgPT09IGJcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgZWRnZXMgPSBzaWduYWw8RWRnZU1vZGVsW10+KFtdLCB7XG4gICAgLy8gZW1wdHkgYXJyYXlzIGNvbnNpZGVyZWQgZXF1YWwsIG90aGVyIGFycmF5cyBtYXkgbm90IGJlIGVxdWFsXG4gICAgZXF1YWw6IChhLCBiKSA9PiAhYS5sZW5ndGggJiYgIWIubGVuZ3RoID8gdHJ1ZSA6IGEgPT09IGJcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbiA9IHNpZ25hbDxDb25uZWN0aW9uTW9kZWw+KG5ldyBDb25uZWN0aW9uTW9kZWwoe30pKVxuXG4gIHB1YmxpYyByZWFkb25seSBtYXJrZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcmtlcnNNYXAgPSBuZXcgTWFwPG51bWJlciwgTWFya2VyPigpXG5cbiAgICB0aGlzLnZhbGlkRWRnZXMoKS5mb3JFYWNoKGUgPT4ge1xuICAgICAgaWYgKGUuZWRnZS5tYXJrZXJzPy5zdGFydCkge1xuICAgICAgICBjb25zdCBoYXNoID0gaGFzaENvZGUoSlNPTi5zdHJpbmdpZnkoZS5lZGdlLm1hcmtlcnMuc3RhcnQpKVxuICAgICAgICBtYXJrZXJzTWFwLnNldChoYXNoLCBlLmVkZ2UubWFya2Vycy5zdGFydClcbiAgICAgIH1cblxuICAgICAgaWYgKGUuZWRnZS5tYXJrZXJzPy5lbmQpIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IGhhc2hDb2RlKEpTT04uc3RyaW5naWZ5KGUuZWRnZS5tYXJrZXJzLmVuZCkpXG4gICAgICAgIG1hcmtlcnNNYXAuc2V0KGhhc2gsIGUuZWRnZS5tYXJrZXJzLmVuZClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgY29uc3QgY29ubmVjdGlvbk1hcmtlciA9IHRoaXMuY29ubmVjdGlvbigpLmNvbm5lY3Rpb24ubWFya2VyXG4gICAgaWYgKGNvbm5lY3Rpb25NYXJrZXIpIHtcbiAgICAgIGNvbnN0IGhhc2ggPSBoYXNoQ29kZShKU09OLnN0cmluZ2lmeShjb25uZWN0aW9uTWFya2VyKSlcbiAgICAgIG1hcmtlcnNNYXAuc2V0KGhhc2gsIGNvbm5lY3Rpb25NYXJrZXIpXG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmtlcnNNYXBcbiAgfSlcblxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRFZGdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMubm9kZXMoKVxuXG4gICAgcmV0dXJuIHRoaXMuZWRnZXMoKS5maWx0ZXIoZSA9PiBub2Rlcy5pbmNsdWRlcyhlLnNvdXJjZSkgJiYgbm9kZXMuaW5jbHVkZXMoZS50YXJnZXQpKVxuICB9KVxuXG4gIHB1YmxpYyBnZXROb2RlPFQ+KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcygpLmZpbmQoKHsgbm9kZSB9KSA9PiBub2RlLmlkID09PSBpZCkgYXMgTm9kZU1vZGVsPFQ+IHwgdW5kZWZpbmVkXG4gIH1cblxuICBwdWJsaWMgZ2V0RGV0YWNoZWRFZGdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5lZGdlcygpLmZpbHRlcihlID0+IGUuZGV0YWNoZWQoKSlcbiAgfVxufVxuIl19
|