@foblex/flow 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/f-connectors/f-node-input/f-node-input.directive.d.ts +7 -4
- package/components/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +7 -4
- package/components/f-connectors/f-node-output/f-node-output.directive.d.ts +7 -4
- package/components/f-flow/f-flow-base.d.ts +6 -4
- package/components/f-flow/f-flow.component.d.ts +10 -7
- package/components/f-flow/i-flow-connector-parent.d.ts +7 -0
- package/esm2022/components/f-connectors/f-node-input/f-node-input.directive.mjs +18 -5
- package/esm2022/components/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +18 -5
- package/esm2022/components/f-connectors/f-node-output/f-node-output.directive.mjs +18 -5
- package/esm2022/components/f-flow/f-flow-base.mjs +12 -9
- package/esm2022/components/f-flow/f-flow.component.mjs +39 -14
- package/esm2022/components/f-flow/i-flow-connector-parent.mjs +3 -0
- package/esm2022/components/f-node/f-foreign-object/f-foreign-object-base.mjs +4 -3
- package/esm2022/directives/f-draggable/node/node-on-pointer-down/node.on-pointer-down.mjs +3 -3
- package/esm2022/directives/f-line-alignment/f-line-alignment.directive.mjs +2 -1
- package/fesm2022/foblex-flow.mjs +99 -32
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const F_FLOW_CONNECTOR_PARENT = new InjectionToken('F_FLOW_CONNECTOR_PARENT');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mbG93LWNvbm5lY3Rvci1wYXJlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2NvbXBvbmVudHMvZi1mbG93L2ktZmxvdy1jb25uZWN0b3ItcGFyZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGX0ZMT1dfQ09OTkVDVE9SX1BBUkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbignRl9GTE9XX0NPTk5FQ1RPUl9QQVJFTlQnKTtcblxuZXhwb3J0IGludGVyZmFjZSBJRmxvd0Nvbm5lY3RvclBhcmVudCB7XG5cbiAgYWRkQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpOiB2b2lkO1xuXG4gIHJlbW92ZUNvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKTogdm9pZDtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directive, InjectionToken } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { startWith, Subject, Subscription } from 'rxjs';
|
|
3
3
|
import { FResizeObserver, RectExtensions } from '@foblex/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export const F_FOREIGN_OBJECT_COMPONENT = new InjectionToken('F_FOREIGN_OBJECT_COMPONENT');
|
|
@@ -13,13 +13,14 @@ export class FForeignObjectBase {
|
|
|
13
13
|
this.subscriptions$.add(this.subscribeOnResizeChanges());
|
|
14
14
|
}
|
|
15
15
|
subscribeOnResizeChanges() {
|
|
16
|
-
return new FResizeObserver(this.hostElement.firstChild).pipe(startWith(null)
|
|
16
|
+
return new FResizeObserver(this.hostElement.firstChild).pipe(startWith(null)).subscribe(() => {
|
|
17
17
|
this.redraw();
|
|
18
18
|
this.stateChanges.next();
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
redraw() {
|
|
22
22
|
const element = this.hostElement.firstChild;
|
|
23
|
+
console.log(element);
|
|
23
24
|
if (element && !!element.getBoundingClientRect) {
|
|
24
25
|
const rect = RectExtensions.fromElement(element);
|
|
25
26
|
const scale = this.transform.scale;
|
|
@@ -37,4 +38,4 @@ export class FForeignObjectBase {
|
|
|
37
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FForeignObjectBase, decorators: [{
|
|
38
39
|
type: Directive
|
|
39
40
|
}], ctorParameters: function () { return [{ type: undefined }]; } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mb3JlaWduLW9iamVjdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9jb21wb25lbnRzL2Ytbm9kZS9mLWZvcmVpZ24tb2JqZWN0L2YtZm9yZWlnbi1vYmplY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsU0FBUyxFQUFFLGNBQWMsRUFDekMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFvQyxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBR2pHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFxQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRy9HLE1BQU0sT0FBZ0Isa0JBQWtCO0lBWXRDLFlBQ0UsV0FBaUI7UUFYWCxtQkFBYyxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTW5ELGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQztRQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQU0sRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBN0NtQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZSZXNpemVPYnNlcnZlciwgSUhhc0hvc3RFbGVtZW50LCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IElIYXNTdGF0ZUNoYW5nZXMgfSBmcm9tICcuLi8uLi8uLi9pLWhhcy1zdGF0ZS1jaGFuZ2VzJztcblxuZXhwb3J0IGNvbnN0IEZfRk9SRUlHTl9PQkpFQ1RfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPEZGb3JlaWduT2JqZWN0QmFzZT4oJ0ZfRk9SRUlHTl9PQkpFQ1RfQ09NUE9ORU5UJyk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZGb3JlaWduT2JqZWN0QmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIElIYXNTdGF0ZUNoYW5nZXMsIElIYXNIb3N0RWxlbWVudCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHVibGljIF9wYXJlbnROb2RlOiB7fSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gIHB1YmxpYyBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCB0cmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgX3BhcmVudE5vZGU/OiBhbnksXG4gICkge1xuICAgIHRoaXMuX3BhcmVudE5vZGUgPSBfcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5hZGQoXG4gICAgICB0aGlzLnN1YnNjcmliZU9uUmVzaXplQ2hhbmdlcygpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBGUmVzaXplT2JzZXJ2ZXIodGhpcy5ob3N0RWxlbWVudC5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc29sZS5sb2coZWxlbWVudCk7XG4gICAgaWYgKGVsZW1lbnQgJiYgISFlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuICAgICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KGVsZW1lbnQpO1xuICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgYCR7IHJlY3Qud2lkdGggLyBzY2FsZSB9YCk7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBgJHsgcmVjdC5oZWlnaHQgLyBzY2FsZSB9YCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -79,10 +79,10 @@ export class NodeOnPointerDown {
|
|
|
79
79
|
return itemsToDrag;
|
|
80
80
|
}
|
|
81
81
|
getInputsForNode(node) {
|
|
82
|
-
return this.fFlow.inputs.
|
|
82
|
+
return this.fFlow.inputs.filter((x) => node.isContains(x.hostElement));
|
|
83
83
|
}
|
|
84
84
|
getOutputsForNode(node) {
|
|
85
|
-
return this.fFlow.outputs.
|
|
85
|
+
return this.fFlow.outputs.filter((x) => node.isContains(x.hostElement));
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1kcmFnZ2FibGUvbm9kZS9ub2RlLW9uLXBvaW50ZXItZG93bi9ub2RlLm9uLXBvaW50ZXItZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsaUJBQWlCLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixJQUFZLHFCQUFxQjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVksZUFBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUNZLGNBQW1ELEVBQ25ELEtBQWdCLEVBQ2hCLFdBQTBCO1FBRjFCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQztRQUNuRCxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO0lBRXRDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBaUM7UUFDN0MsSUFBSSxNQUFnQyxDQUFDO1FBRXJDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FB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QUMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO3FCQUN0RjtpQkFDRjtxQkFBTTtvQkFDTCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7aUJBQzVGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCx3RUFBd0U7UUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBZTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBZTtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0IH0gZnJvbSAnLi9ub2RlLW9uLXBvaW50ZXItZG93bi5yZXF1ZXN0JztcbmltcG9ydCB7IEZGbG93QmFzZSwgaXNOb2RlRHJhZ0hhbmRsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vaS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRk5vZGVzQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29udGFpbmVycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb250YWluZXJzJztcbmltcG9ydCB7IEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IEVEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vZS1kcmFnZ2FibGUtdHlwZSc7XG5pbXBvcnQge1xuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyLFxuICBGQ29ubmVjdGlvblNvdXJjZURyYWdIYW5kbGVyLFxuICBGQ29ubmVjdGlvblRhcmdldERyYWdIYW5kbGVyLFxuICBOb2RlT25Qb2ludGVyTW92ZVxufSBmcm9tICcuLi9ub2RlLW9uLXBvaW50ZXItbW92ZSc7XG5pbXBvcnQgeyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuXG5leHBvcnQgY2xhc3MgTm9kZU9uUG9pbnRlckRvd25cbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPE5vZGVPblBvaW50ZXJEb3duUmVxdWVzdCwgSURyYWdIYW5kbGVyIHwgdW5kZWZpbmVkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zQ29udGFpbmVyKCk6IEZDb25uZWN0aW9uc0NvbnRhaW5lckJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZDb25uZWN0aW9uc0NvbnRhaW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZOb2Rlc0NvbnRhaW5lcigpOiBGTm9kZXNDb250YWluZXJCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdy5mTm9kZXNDb250YWluZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkxpbmVBbGlnbm1lbnQ6IEZMaW5lQWxpZ25tZW50RGlyZWN0aXZlIHwgdW5kZWZpbmVkLFxuICAgICAgcHJpdmF0ZSBmRmxvdzogRkZsb3dCYXNlLFxuICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogU1ZHU1ZHRWxlbWVudFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0KTogSURyYWdIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcmVzdWx0OiBJRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5mTm9kZXNDb250YWluZXIuZmluZE5vZGUocGF5bG9hZC5ldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkNhbnZhcyA9IFBvaW50LmZyb21Qb2ludChwYXlsb2FkLmV2ZW50LmdldFBvc2l0aW9uKCkpLm1hdHJpeFRyYW5zZm9ybSh0aGlzLmhvc3RFbGVtZW50KTtcblxuICAgIGlmIChub2RlKSB7XG4gICAgICBpZiAoaXNOb2RlRHJhZ0hhbmRsZShwYXlsb2FkLmV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghcGF5bG9hZC5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKG5vZGUpICYmIHBheWxvYWQuaXNNb3ZlQ3VycmVudE5vZGUpIHtcbiAgICAgICAgICBwYXlsb2FkLnNlbGVjdGVkSXRlbXMucHVzaChub2RlKTtcbiAgICAgICAgICBub2RlLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLnNldE5vZGVUb1RvcExheWVyKG5vZGUhKTtcbiAgICAgICAgY29uc3QgaXRlbXNUb0RyYWc6IElEcmFnZ2FibGVJdGVtW10gPSB0aGlzLmNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMocGF5bG9hZCk7XG5cbiAgICAgICAgY29uc3QgZHJhZ2dlZE5vZGVzID0gaXRlbXNUb0RyYWcuZmlsdGVyKCh4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHgudHlwZSA9PT0gRURyYWdnYWJsZVR5cGUuTk9ERTtcbiAgICAgICAgfSkubWFwKCh4KSA9PiAoeCBhcyBOb2RlT25Qb2ludGVyTW92ZSkuZk5vZGUpO1xuXG4gICAgICAgIHRoaXMuZkxpbmVBbGlnbm1lbnQ/LmluaXRpYWxpemUodGhpcy5mTm9kZXNDb250YWluZXIuZk5vZGVzLnRvQXJyYXkoKSwgZHJhZ2dlZE5vZGVzKTtcblxuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgb25Qb2ludGVyRG93blNjYWxlOiBwYXlsb2FkLnRyYW5zZm9ybS5zY2FsZSxcbiAgICAgICAgICBvblBvaW50ZXJEb3duUG9zaXRpb246IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdihwYXlsb2FkLnRyYW5zZm9ybS5zY2FsZSksXG4gICAgICAgICAgZHJhZ2dhYmxlSXRlbXM6IGl0ZW1zVG9EcmFnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEcmFnZ2FibGVDb25uZWN0aW9uc0FuZE5vZGVzKHBheWxvYWQ6IE5vZGVPblBvaW50ZXJEb3duUmVxdWVzdCk6IElEcmFnZ2FibGVJdGVtW10ge1xuICAgIGxldCBpdGVtc1RvRHJhZzogSURyYWdnYWJsZUl0ZW1bXSA9IFtdO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlcyA9IHBheWxvYWQuc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZOb2Rlc0NvbnRhaW5lci5maW5kTm9kZSh4Lmhvc3RFbGVtZW50KTtcbiAgICB9KS5maWx0ZXIoKHgpID0+ICEheCkgYXMgRk5vZGVCYXNlW107XG5cbiAgICBjb25zdCBub2RlRHJhZ0hhbmRsZXJzID0gc2VsZWN0ZWROb2Rlcy5tYXAoKHgpID0+IG5ldyBOb2RlT25Qb2ludGVyTW92ZSh0aGlzLmZMaW5lQWxpZ25tZW50LCB4KSk7XG4gICAgaXRlbXNUb0RyYWcgPSBub2RlRHJhZ0hhbmRsZXJzO1xuXG4gICAgY29uc3QgYWxsT3V0cHV0czogRk5vZGVPdXRwdXRCYXNlW10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGTm9kZU91dHB1dEJhc2VbXSwgeDogRk5vZGVCYXNlKSA9PiB7XG4gICAgICByZXR1cm4gcmVzdWx0LmNvbmNhdCh0aGlzLmdldE91dHB1dHNGb3JOb2RlKHgpKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBhbGxJbnB1dHM6IEZOb2RlSW5wdXRCYXNlW10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGTm9kZUlucHV0QmFzZVtdLCB4OiBGTm9kZUJhc2UpID0+IHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KHRoaXMuZ2V0SW5wdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pO1xuXG4gICAgbm9kZURyYWdIYW5kbGVycy5mb3JFYWNoKChub2RlSGFuZGxlcikgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0Q29ubmVjdGlvbnMgPSB0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lci5maW5kT3V0Z29pbmdDb25uZWN0aW9ucyh0aGlzLmdldE91dHB1dHNGb3JOb2RlKG5vZGVIYW5kbGVyLmZOb2RlKSk7XG4gICAgICBvdXRwdXRDb25uZWN0aW9ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIGlmIChhbGxJbnB1dHMuaW5jbHVkZXMoYy5mcm9tVG8hLmlucHV0ISkpIHtcbiAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKG5ldyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyKGMsIHBheWxvYWQudHJhbnNmb3JtLCB0aGlzLmhvc3RFbGVtZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbXNUb0RyYWcucHVzaChuZXcgRkNvbm5lY3Rpb25Tb3VyY2VEcmFnSGFuZGxlcihjLCBwYXlsb2FkLnRyYW5zZm9ybSwgdGhpcy5ob3N0RWxlbWVudCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGlucHV0Q29ubmVjdGlvbnMgPSB0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lci5maW5kSW5jb21pbmdDb25uZWN0aW9ucyh0aGlzLmdldElucHV0c0Zvck5vZGUobm9kZUhhbmRsZXIuZk5vZGUpKTtcbiAgICAgIGlucHV0Q29ubmVjdGlvbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICBpZiAoYWxsT3V0cHV0cy5pbmNsdWRlcyhjLmZyb21UbyEub3V0cHV0ISBhcyBGTm9kZU91dHB1dEJhc2UpKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtc1RvRHJhZy5maW5kSW5kZXgoKHgpID0+IHgudHlwZSA9PT0gRURyYWdnYWJsZVR5cGUuQ09OTkVDVElPTiAmJiAoeCBhcyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyKS5jb25uZWN0aW9uLmlkID09PSBjLmlkKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKG5ldyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyKGMsIHBheWxvYWQudHJhbnNmb3JtLCB0aGlzLmhvc3RFbGVtZW50KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zVG9EcmFnLnB1c2gobmV3IEZDb25uZWN0aW9uVGFyZ2V0RHJhZ0hhbmRsZXIoYywgcGF5bG9hZC50cmFuc2Zvcm0sIHRoaXMuaG9zdEVsZW1lbnQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvL2l0ZW1zVG9EcmFnLnB1c2gobmV3IE5vZGVPblBvaW50ZXJNb3ZlKHRoaXMuZkxpbmVBbGlnbm1lbnQsIHguZk5vZGUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlbXNUb0RyYWc7XG4gIH1cblxuICBwcml2YXRlIGdldElucHV0c0Zvck5vZGUobm9kZTogRk5vZGVCYXNlKTogRk5vZGVJbnB1dEJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkZsb3cuaW5wdXRzLnRvQXJyYXkoKS5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZOb2RlT3V0cHV0QmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdy5vdXRwdXRzLnRvQXJyYXkoKS5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSk7XG4gIH1cbn1cbiJdfQ==
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1kcmFnZ2FibGUvbm9kZS9ub2RlLW9uLXBvaW50ZXItZG93bi9ub2RlLm9uLXBvaW50ZXItZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsaUJBQWlCLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixJQUFZLHFCQUFxQjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVksZUFBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUNZLGNBQW1ELEVBQ25ELEtBQWdCLEVBQ2hCLFdBQTBCO1FBRjFCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQztRQUNuRCxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO0lBRXRDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBaUM7UUFDN0MsSUFBSSxNQUFnQyxDQUFDO1FBRXJDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FB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QUMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO3FCQUN0RjtpQkFDRjtxQkFBTTtvQkFDTCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7aUJBQzVGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCx3RUFBd0U7UUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBZTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBZTtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0IH0gZnJvbSAnLi9ub2RlLW9uLXBvaW50ZXItZG93bi5yZXF1ZXN0JztcbmltcG9ydCB7IEZGbG93QmFzZSwgaXNOb2RlRHJhZ0hhbmRsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vaS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRk5vZGVzQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29udGFpbmVycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb250YWluZXJzJztcbmltcG9ydCB7IEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IEVEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vZS1kcmFnZ2FibGUtdHlwZSc7XG5pbXBvcnQge1xuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyLFxuICBGQ29ubmVjdGlvblNvdXJjZURyYWdIYW5kbGVyLFxuICBGQ29ubmVjdGlvblRhcmdldERyYWdIYW5kbGVyLFxuICBOb2RlT25Qb2ludGVyTW92ZVxufSBmcm9tICcuLi9ub2RlLW9uLXBvaW50ZXItbW92ZSc7XG5pbXBvcnQgeyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuXG5leHBvcnQgY2xhc3MgTm9kZU9uUG9pbnRlckRvd25cbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPE5vZGVPblBvaW50ZXJEb3duUmVxdWVzdCwgSURyYWdIYW5kbGVyIHwgdW5kZWZpbmVkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zQ29udGFpbmVyKCk6IEZDb25uZWN0aW9uc0NvbnRhaW5lckJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZDb25uZWN0aW9uc0NvbnRhaW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZOb2Rlc0NvbnRhaW5lcigpOiBGTm9kZXNDb250YWluZXJCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdy5mTm9kZXNDb250YWluZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkxpbmVBbGlnbm1lbnQ6IEZMaW5lQWxpZ25tZW50RGlyZWN0aXZlIHwgdW5kZWZpbmVkLFxuICAgICAgcHJpdmF0ZSBmRmxvdzogRkZsb3dCYXNlLFxuICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogU1ZHU1ZHRWxlbWVudFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0KTogSURyYWdIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcmVzdWx0OiBJRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5mTm9kZXNDb250YWluZXIuZmluZE5vZGUocGF5bG9hZC5ldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkNhbnZhcyA9IFBvaW50LmZyb21Qb2ludChwYXlsb2FkLmV2ZW50LmdldFBvc2l0aW9uKCkpLm1hdHJpeFRyYW5zZm9ybSh0aGlzLmhvc3RFbGVtZW50KTtcblxuICAgIGlmIChub2RlKSB7XG4gICAgICBpZiAoaXNOb2RlRHJhZ0hhbmRsZShwYXlsb2FkLmV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghcGF5bG9hZC5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKG5vZGUpICYmIHBheWxvYWQuaXNNb3ZlQ3VycmVudE5vZGUpIHtcbiAgICAgICAgICBwYXlsb2FkLnNlbGVjdGVkSXRlbXMucHVzaChub2RlKTtcbiAgICAgICAgICBub2RlLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLnNldE5vZGVUb1RvcExheWVyKG5vZGUhKTtcbiAgICAgICAgY29uc3QgaXRlbXNUb0RyYWc6IElEcmFnZ2FibGVJdGVtW10gPSB0aGlzLmNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMocGF5bG9hZCk7XG5cbiAgICAgICAgY29uc3QgZHJhZ2dlZE5vZGVzID0gaXRlbXNUb0RyYWcuZmlsdGVyKCh4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHgudHlwZSA9PT0gRURyYWdnYWJsZVR5cGUuTk9ERTtcbiAgICAgICAgfSkubWFwKCh4KSA9PiAoeCBhcyBOb2RlT25Qb2ludGVyTW92ZSkuZk5vZGUpO1xuXG4gICAgICAgIHRoaXMuZkxpbmVBbGlnbm1lbnQ/LmluaXRpYWxpemUodGhpcy5mTm9kZXNDb250YWluZXIuZk5vZGVzLnRvQXJyYXkoKSwgZHJhZ2dlZE5vZGVzKTtcblxuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgb25Qb2ludGVyRG93blNjYWxlOiBwYXlsb2FkLnRyYW5zZm9ybS5zY2FsZSxcbiAgICAgICAgICBvblBvaW50ZXJEb3duUG9zaXRpb246IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdihwYXlsb2FkLnRyYW5zZm9ybS5zY2FsZSksXG4gICAgICAgICAgZHJhZ2dhYmxlSXRlbXM6IGl0ZW1zVG9EcmFnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEcmFnZ2FibGVDb25uZWN0aW9uc0FuZE5vZGVzKHBheWxvYWQ6IE5vZGVPblBvaW50ZXJEb3duUmVxdWVzdCk6IElEcmFnZ2FibGVJdGVtW10ge1xuICAgIGxldCBpdGVtc1RvRHJhZzogSURyYWdnYWJsZUl0ZW1bXSA9IFtdO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWROb2RlcyA9IHBheWxvYWQuc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZOb2Rlc0NvbnRhaW5lci5maW5kTm9kZSh4Lmhvc3RFbGVtZW50KTtcbiAgICB9KS5maWx0ZXIoKHgpID0+ICEheCkgYXMgRk5vZGVCYXNlW107XG5cbiAgICBjb25zdCBub2RlRHJhZ0hhbmRsZXJzID0gc2VsZWN0ZWROb2Rlcy5tYXAoKHgpID0+IG5ldyBOb2RlT25Qb2ludGVyTW92ZSh0aGlzLmZMaW5lQWxpZ25tZW50LCB4KSk7XG4gICAgaXRlbXNUb0RyYWcgPSBub2RlRHJhZ0hhbmRsZXJzO1xuXG4gICAgY29uc3QgYWxsT3V0cHV0czogRk5vZGVPdXRwdXRCYXNlW10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGTm9kZU91dHB1dEJhc2VbXSwgeDogRk5vZGVCYXNlKSA9PiB7XG4gICAgICByZXR1cm4gcmVzdWx0LmNvbmNhdCh0aGlzLmdldE91dHB1dHNGb3JOb2RlKHgpKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBhbGxJbnB1dHM6IEZOb2RlSW5wdXRCYXNlW10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGTm9kZUlucHV0QmFzZVtdLCB4OiBGTm9kZUJhc2UpID0+IHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KHRoaXMuZ2V0SW5wdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pO1xuXG4gICAgbm9kZURyYWdIYW5kbGVycy5mb3JFYWNoKChub2RlSGFuZGxlcikgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0Q29ubmVjdGlvbnMgPSB0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lci5maW5kT3V0Z29pbmdDb25uZWN0aW9ucyh0aGlzLmdldE91dHB1dHNGb3JOb2RlKG5vZGVIYW5kbGVyLmZOb2RlKSk7XG4gICAgICBvdXRwdXRDb25uZWN0aW9ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIGlmIChhbGxJbnB1dHMuaW5jbHVkZXMoYy5mcm9tVG8hLmlucHV0ISkpIHtcbiAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKG5ldyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyKGMsIHBheWxvYWQudHJhbnNmb3JtLCB0aGlzLmhvc3RFbGVtZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbXNUb0RyYWcucHVzaChuZXcgRkNvbm5lY3Rpb25Tb3VyY2VEcmFnSGFuZGxlcihjLCBwYXlsb2FkLnRyYW5zZm9ybSwgdGhpcy5ob3N0RWxlbWVudCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGlucHV0Q29ubmVjdGlvbnMgPSB0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lci5maW5kSW5jb21pbmdDb25uZWN0aW9ucyh0aGlzLmdldElucHV0c0Zvck5vZGUobm9kZUhhbmRsZXIuZk5vZGUpKTtcbiAgICAgIGlucHV0Q29ubmVjdGlvbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICBpZiAoYWxsT3V0cHV0cy5pbmNsdWRlcyhjLmZyb21UbyEub3V0cHV0ISBhcyBGTm9kZU91dHB1dEJhc2UpKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtc1RvRHJhZy5maW5kSW5kZXgoKHgpID0+IHgudHlwZSA9PT0gRURyYWdnYWJsZVR5cGUuQ09OTkVDVElPTiAmJiAoeCBhcyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyKS5jb25uZWN0aW9uLmlkID09PSBjLmlkKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKG5ldyBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyKGMsIHBheWxvYWQudHJhbnNmb3JtLCB0aGlzLmhvc3RFbGVtZW50KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zVG9EcmFnLnB1c2gobmV3IEZDb25uZWN0aW9uVGFyZ2V0RHJhZ0hhbmRsZXIoYywgcGF5bG9hZC50cmFuc2Zvcm0sIHRoaXMuaG9zdEVsZW1lbnQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvL2l0ZW1zVG9EcmFnLnB1c2gobmV3IE5vZGVPblBvaW50ZXJNb3ZlKHRoaXMuZkxpbmVBbGlnbm1lbnQsIHguZk5vZGUpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlbXNUb0RyYWc7XG4gIH1cblxuICBwcml2YXRlIGdldElucHV0c0Zvck5vZGUobm9kZTogRk5vZGVCYXNlKTogRk5vZGVJbnB1dEJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZkZsb3cuaW5wdXRzLmZpbHRlcigoeCkgPT4gbm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3V0cHV0c0Zvck5vZGUobm9kZTogRk5vZGVCYXNlKTogRk5vZGVPdXRwdXRCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZGbG93Lm91dHB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -36,6 +36,7 @@ export class FLineAlignmentDirective {
|
|
|
36
36
|
this.rects = allNodesExcludeCurrents.map((x) => {
|
|
37
37
|
return getElementRectInCanvas(x.hostElement, this.transform, this.fFlow.hostElement);
|
|
38
38
|
});
|
|
39
|
+
console.log(this.rects);
|
|
39
40
|
}
|
|
40
41
|
handle(difference) {
|
|
41
42
|
this.drawIntersections(difference);
|
|
@@ -103,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
103
104
|
type: Inject,
|
|
104
105
|
args: [F_FLOW_COMPONENT]
|
|
105
106
|
}] }, { type: i0.ElementRef }]; } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1saW5lLWFsaWdubWVudC9mLWxpbmUtYWxpZ25tZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUF5QyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXdCLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUF3QixNQUFNLFVBQVUsQ0FBQzs7O0FBRXBHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUEwQixrQkFBa0IsQ0FBQyxDQUFDO0FBWWhHLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBWSxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBWUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUNvQyxLQUFnQixFQUMxQyxnQkFBeUM7UUFEZixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFoQjNDLG9CQUFlLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxTQUFJLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTFDLG9CQUFlLEdBQVUsY0FBYyxD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Q0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQTFGVSx1QkFBdUIsa0JBcUJ4QixnQkFBZ0I7a0dBckJmLHVCQUF1QiwwSEFKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEU7OzJGQUVVLHVCQUF1QjtrQkFWbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSw4QkFBOEI7cUJBQ3hDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUNwRTtpQkFDRjs7MEJBc0JJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLCBMaW5lRkVsZW1lbnQsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGX0ZMT1dfQ09NUE9ORU5ULCBGRmxvd0Jhc2UsIEZOb2RlQmFzZSwgZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgZmluZE5lYXJlc3RDb29yZGluYXRlQnlYLCBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVksIElMaW5lQWxpZ25tZW50UmVzdWx0IH0gZnJvbSAnLi9kb21haW4nO1xuXG5leHBvcnQgY29uc3QgRl9MSU5FX0FMSUdOTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGTGluZUFsaWdubWVudERpcmVjdGl2ZT4oJ0ZfTElORV9BTElHTk1FTlQnKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImdbZkxpbmVBbGlnbm1lbnRdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnREaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZkhvcml6b250YWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBmVmVydGljYWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBzaXplOiBJU2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIGRyYWdnZWROb2RlUmVjdDogSVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSByZWN0czogSVJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZJdGVtc0NvbnRhaW5lci50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZfRkxPV19DT01QT05FTlQpIHByaXZhdGUgZkZsb3c6IEZGbG93QmFzZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHR0VsZW1lbnQ+XG4gICkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mSG9yaXpvbnRhbExpbmUuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mVmVydGljYWxMaW5lLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKGFsbE5vZGVzOiBGTm9kZUJhc2VbXSwgY3VycmVudE5vZGVzOiBGTm9kZUJhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuZkZsb3cuaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZWN0cyA9IFtdO1xuICAgIGNvbnN0IGRyYWdnZWROb2RlUmVjdHMgPSBjdXJyZW50Tm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyh4Lmhvc3RFbGVtZW50LCB0aGlzLnRyYW5zZm9ybSwgdGhpcy5mRmxvdy5ob3N0RWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmFnZ2VkTm9kZVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy51bmlvbihkcmFnZ2VkTm9kZVJlY3RzKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiBnZXRFbGVtZW50UmVjdEluQ2FudmFzKHguaG9zdEVsZW1lbnQsIHRoaXMudHJhbnNmb3JtLCB0aGlzLmZGbG93Lmhvc3RFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5kcmF3SW50ZXJzZWN0aW9ucyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGlvbnMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZWZXJ0aWNhbExpbmUuZHJhdyh7XG4gICAgICAgIHgxOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHgyOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHkxOiAwLFxuICAgICAgICB5MjogdGhpcy5zaXplLmhlaWdodFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5kcmF3KHtcbiAgICAgICAgeDE6IDAsXG4gICAgICAgIHgyOiB0aGlzLnNpemUud2lkdGgsXG4gICAgICAgIHkxOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICAgIHkyOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mSG9yaXpvbnRhbExpbmUuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGxldCByZXN1bHQ6IElMaW5lQWxpZ25tZW50UmVzdWx0ID0ge1xuICAgICAgeFJlc3VsdDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXN0YW5jZTogdW5kZWZpbmVkIH0sXG4gICAgICB5UmVzdWx0OiB7IHZhbHVlOiB1bmRlZmluZWQsIGRpc3RhbmNlOiB1bmRlZmluZWQgfVxuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KHRoaXMuZHJhZ2dlZE5vZGVSZWN0LCBkaWZmZXJlbmNlKTtcbiAgICBjb25zdCB4UmVzdWx0ID0gZmluZE5lYXJlc3RDb29yZGluYXRlQnlYKHRoaXMucmVjdHMsIHJlY3QpO1xuICAgIGNvbnN0IHlSZXN1bHQgPSBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVkodGhpcy5yZWN0cywgcmVjdCk7XG4gICAgcmVzdWx0ID0geyB4UmVzdWx0LCB5UmVzdWx0IH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZWZXJ0aWNhbExpbmUuaGlkZSgpO1xuICAgIHRoaXMuZkhvcml6b250YWxMaW5lLmhpZGUoKTtcbiAgfVxufVxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1saW5lLWFsaWdubWVudC9mLWxpbmUtYWxpZ25tZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUF5QyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXdCLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUF3QixNQUFNLFVBQVUsQ0FBQzs7O0FBRXBHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUEwQixrQkFBa0IsQ0FBQyxDQUFDO0FBWWhHLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBWSxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBWUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUNvQyxLQUFnQixFQUMxQyxnQkFBeUM7UUFEZixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFoQjNDLG9CQUFlLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxTQUFJLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTFDLG9CQUFlLEdBQVUsY0FBYyxD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QUM5QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQTNGVSx1QkFBdUIsa0JBcUJ4QixnQkFBZ0I7a0dBckJmLHVCQUF1QiwwSEFKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEU7OzJGQUVVLHVCQUF1QjtrQkFWbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSw4QkFBOEI7cUJBQ3hDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUNwRTtpQkFDRjs7MEJBc0JJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLCBMaW5lRkVsZW1lbnQsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGX0ZMT1dfQ09NUE9ORU5ULCBGRmxvd0Jhc2UsIEZOb2RlQmFzZSwgZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgZmluZE5lYXJlc3RDb29yZGluYXRlQnlYLCBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVksIElMaW5lQWxpZ25tZW50UmVzdWx0IH0gZnJvbSAnLi9kb21haW4nO1xuXG5leHBvcnQgY29uc3QgRl9MSU5FX0FMSUdOTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGTGluZUFsaWdubWVudERpcmVjdGl2ZT4oJ0ZfTElORV9BTElHTk1FTlQnKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImdbZkxpbmVBbGlnbm1lbnRdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnREaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZkhvcml6b250YWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBmVmVydGljYWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBzaXplOiBJU2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIGRyYWdnZWROb2RlUmVjdDogSVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSByZWN0czogSVJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZJdGVtc0NvbnRhaW5lci50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZfRkxPV19DT01QT05FTlQpIHByaXZhdGUgZkZsb3c6IEZGbG93QmFzZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHR0VsZW1lbnQ+XG4gICkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mSG9yaXpvbnRhbExpbmUuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mVmVydGljYWxMaW5lLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKGFsbE5vZGVzOiBGTm9kZUJhc2VbXSwgY3VycmVudE5vZGVzOiBGTm9kZUJhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuZkZsb3cuaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZWN0cyA9IFtdO1xuICAgIGNvbnN0IGRyYWdnZWROb2RlUmVjdHMgPSBjdXJyZW50Tm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyh4Lmhvc3RFbGVtZW50LCB0aGlzLnRyYW5zZm9ybSwgdGhpcy5mRmxvdy5ob3N0RWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmFnZ2VkTm9kZVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy51bmlvbihkcmFnZ2VkTm9kZVJlY3RzKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiBnZXRFbGVtZW50UmVjdEluQ2FudmFzKHguaG9zdEVsZW1lbnQsIHRoaXMudHJhbnNmb3JtLCB0aGlzLmZGbG93Lmhvc3RFbGVtZW50KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnJlY3RzKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5kcmF3SW50ZXJzZWN0aW9ucyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGlvbnMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZWZXJ0aWNhbExpbmUuZHJhdyh7XG4gICAgICAgIHgxOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHgyOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHkxOiAwLFxuICAgICAgICB5MjogdGhpcy5zaXplLmhlaWdodFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5kcmF3KHtcbiAgICAgICAgeDE6IDAsXG4gICAgICAgIHgyOiB0aGlzLnNpemUud2lkdGgsXG4gICAgICAgIHkxOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICAgIHkyOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mSG9yaXpvbnRhbExpbmUuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGxldCByZXN1bHQ6IElMaW5lQWxpZ25tZW50UmVzdWx0ID0ge1xuICAgICAgeFJlc3VsdDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXN0YW5jZTogdW5kZWZpbmVkIH0sXG4gICAgICB5UmVzdWx0OiB7IHZhbHVlOiB1bmRlZmluZWQsIGRpc3RhbmNlOiB1bmRlZmluZWQgfVxuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KHRoaXMuZHJhZ2dlZE5vZGVSZWN0LCBkaWZmZXJlbmNlKTtcbiAgICBjb25zdCB4UmVzdWx0ID0gZmluZE5lYXJlc3RDb29yZGluYXRlQnlYKHRoaXMucmVjdHMsIHJlY3QpO1xuICAgIGNvbnN0IHlSZXN1bHQgPSBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVkodGhpcy5yZWN0cywgcmVjdCk7XG4gICAgcmVzdWx0ID0geyB4UmVzdWx0LCB5UmVzdWx0IH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZWZXJ0aWNhbExpbmUuaGlkZSgpO1xuICAgIHRoaXMuZkhvcml6b250YWxMaW5lLmhpZGUoKTtcbiAgfVxufVxuIl19
|
package/fesm2022/foblex-flow.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, Component, ChangeDetectionStrategy, Input, ViewChild, InjectionToken, NgModule, Inject, Optional, SkipSelf, EventEmitter, ContentChildren, ContentChild, Output, Injectable } from '@angular/core';
|
|
3
3
|
import { VectorExtensions, Point, PointExtensions, RectExtensions, TransformModelExtensions, SizeExtensions, BooleanExtensions, FResizeObserver, DomElementExtensions, MouseEventExtensions, IDragAndDropBase, LineFElement, RectFElement, EventExtensions } from '@foblex/core';
|
|
4
|
-
import { Subject, Subscription, startWith,
|
|
4
|
+
import { Subject, Subscription, startWith, defer, switchMap, merge, take, takeUntil } from 'rxjs';
|
|
5
5
|
import * as i2 from '@angular/common';
|
|
6
6
|
import { CommonModule } from '@angular/common';
|
|
7
7
|
|
|
@@ -560,6 +560,8 @@ function isNodeInput(element) {
|
|
|
560
560
|
return !!element.closest('[fNodeInput]');
|
|
561
561
|
}
|
|
562
562
|
|
|
563
|
+
const F_FLOW_CONNECTOR_PARENT = new InjectionToken('F_FLOW_CONNECTOR_PARENT');
|
|
564
|
+
|
|
563
565
|
let uniqueId$7 = 0;
|
|
564
566
|
class FNodeInputDirective extends FNodeInputBase {
|
|
565
567
|
get color() {
|
|
@@ -578,14 +580,19 @@ class FNodeInputDirective extends FNodeInputBase {
|
|
|
578
580
|
get hostElement() {
|
|
579
581
|
return this.elementReference.nativeElement;
|
|
580
582
|
}
|
|
581
|
-
constructor(elementReference) {
|
|
583
|
+
constructor(elementReference, _parentFlow) {
|
|
582
584
|
super();
|
|
583
585
|
this.elementReference = elementReference;
|
|
586
|
+
this._parentFlow = _parentFlow;
|
|
584
587
|
this.id = `f-node-input-${uniqueId$7++}`;
|
|
585
588
|
this.multiple = true;
|
|
586
589
|
this.isDisabled = false;
|
|
590
|
+
this._parentFlow?.addConnector(this);
|
|
591
|
+
}
|
|
592
|
+
ngOnDestroy() {
|
|
593
|
+
this._parentFlow?.removeConnector(this);
|
|
587
594
|
}
|
|
588
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeInputDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
595
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeInputDirective, deps: [{ token: i0.ElementRef }, { token: F_FLOW_CONNECTOR_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
589
596
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: FNodeInputDirective, selector: "[fNodeInput]", inputs: { id: "id", fNodeInputColor: "fNodeInputColor", multiple: ["fNodeInputMultiple", "multiple"], disabled: ["fNodeInputDisabled", "disabled"] }, host: { properties: { "attr.id": "id", "class.f-node-input-multiple": "multiple", "class.f-node-input-disabled": "disabled", "class.f-node-input-not-connectable": "!canBeConnected" }, classAttribute: "f-component f-node-input" }, providers: [{ provide: F_NODE_INPUT_DIRECTIVE, useExisting: FNodeInputDirective }], usesInheritance: true, ngImport: i0 }); }
|
|
590
597
|
}
|
|
591
598
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeInputDirective, decorators: [{
|
|
@@ -601,7 +608,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
601
608
|
},
|
|
602
609
|
providers: [{ provide: F_NODE_INPUT_DIRECTIVE, useExisting: FNodeInputDirective }],
|
|
603
610
|
}]
|
|
604
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }
|
|
611
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
612
|
+
type: Inject,
|
|
613
|
+
args: [F_FLOW_CONNECTOR_PARENT]
|
|
614
|
+
}, {
|
|
615
|
+
type: Optional
|
|
616
|
+
}, {
|
|
617
|
+
type: SkipSelf
|
|
618
|
+
}] }]; }, propDecorators: { id: [{
|
|
605
619
|
type: Input
|
|
606
620
|
}], fNodeInputColor: [{
|
|
607
621
|
type: Input,
|
|
@@ -655,16 +669,21 @@ class FNodeOutletDirective extends FNodeOutletBase {
|
|
|
655
669
|
get hostElement() {
|
|
656
670
|
return this.elementReference.nativeElement;
|
|
657
671
|
}
|
|
658
|
-
constructor(elementReference) {
|
|
672
|
+
constructor(elementReference, _parentFlow) {
|
|
659
673
|
super();
|
|
660
674
|
this.elementReference = elementReference;
|
|
675
|
+
this._parentFlow = _parentFlow;
|
|
661
676
|
this.id = `f-node-outlet-${uniqueId$6++}`;
|
|
662
677
|
this.color = 'black';
|
|
663
678
|
this.name = '';
|
|
664
679
|
this.isDisabled = false;
|
|
665
680
|
this.isConnectionFromOutlet = false;
|
|
681
|
+
this._parentFlow?.addConnector(this);
|
|
666
682
|
}
|
|
667
|
-
|
|
683
|
+
ngOnDestroy() {
|
|
684
|
+
this._parentFlow?.removeConnector(this);
|
|
685
|
+
}
|
|
686
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeOutletDirective, deps: [{ token: i0.ElementRef }, { token: F_FLOW_CONNECTOR_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
668
687
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: FNodeOutletDirective, selector: "[fNodeOutlet]", inputs: { id: "id", color: ["fNodeOutletColor", "color"], name: "name", disabled: ["fNodeOutletDisabled", "disabled"], isConnectionFromOutlet: "isConnectionFromOutlet" }, host: { properties: { "attr.id": "id", "class.f-node-outlet-disabled": "disabled" }, classAttribute: "f-component f-node-outlet" }, providers: [{ provide: F_NODE_OUTLET_DIRECTIVE, useExisting: FNodeOutletDirective }], usesInheritance: true, ngImport: i0 }); }
|
|
669
688
|
}
|
|
670
689
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeOutletDirective, decorators: [{
|
|
@@ -678,7 +697,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
678
697
|
},
|
|
679
698
|
providers: [{ provide: F_NODE_OUTLET_DIRECTIVE, useExisting: FNodeOutletDirective }],
|
|
680
699
|
}]
|
|
681
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }
|
|
700
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
701
|
+
type: Inject,
|
|
702
|
+
args: [F_FLOW_CONNECTOR_PARENT]
|
|
703
|
+
}, {
|
|
704
|
+
type: Optional
|
|
705
|
+
}, {
|
|
706
|
+
type: SkipSelf
|
|
707
|
+
}] }]; }, propDecorators: { id: [{
|
|
682
708
|
type: Input
|
|
683
709
|
}], color: [{
|
|
684
710
|
type: Input,
|
|
@@ -727,15 +753,20 @@ class FNodeOutputDirective extends FNodeOutputBase {
|
|
|
727
753
|
get hostElement() {
|
|
728
754
|
return this.elementReference.nativeElement;
|
|
729
755
|
}
|
|
730
|
-
constructor(elementReference) {
|
|
756
|
+
constructor(elementReference, _parentFlow) {
|
|
731
757
|
super();
|
|
732
758
|
this.elementReference = elementReference;
|
|
759
|
+
this._parentFlow = _parentFlow;
|
|
733
760
|
this.id = `f-node-output-${uniqueId$5++}`;
|
|
734
761
|
this.color = 'black';
|
|
735
762
|
this.name = '';
|
|
736
763
|
this.isDisabled = false;
|
|
764
|
+
this._parentFlow?.addConnector(this);
|
|
765
|
+
}
|
|
766
|
+
ngOnDestroy() {
|
|
767
|
+
this._parentFlow?.removeConnector(this);
|
|
737
768
|
}
|
|
738
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeOutputDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
769
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeOutputDirective, deps: [{ token: i0.ElementRef }, { token: F_FLOW_CONNECTOR_PARENT, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
739
770
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: FNodeOutputDirective, selector: "[fNodeOutput]", inputs: { id: "id", color: ["fNodeOutputColor", "color"], name: "name", disabled: ["fNodeOutputDisabled", "disabled"] }, host: { properties: { "attr.id": "id", "class.f-node-output-disabled": "disabled", "class.f-node-output-connected": "isConnected" }, classAttribute: "f-component f-node-output" }, providers: [{ provide: F_NODE_OUTPUT_DIRECTIVE, useExisting: FNodeOutputDirective }], usesInheritance: true, ngImport: i0 }); }
|
|
740
771
|
}
|
|
741
772
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeOutputDirective, decorators: [{
|
|
@@ -750,7 +781,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
750
781
|
},
|
|
751
782
|
providers: [{ provide: F_NODE_OUTPUT_DIRECTIVE, useExisting: FNodeOutputDirective }],
|
|
752
783
|
}]
|
|
753
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }
|
|
784
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
785
|
+
type: Inject,
|
|
786
|
+
args: [F_FLOW_CONNECTOR_PARENT]
|
|
787
|
+
}, {
|
|
788
|
+
type: Optional
|
|
789
|
+
}, {
|
|
790
|
+
type: SkipSelf
|
|
791
|
+
}] }]; }, propDecorators: { id: [{
|
|
754
792
|
type: Input
|
|
755
793
|
}], color: [{
|
|
756
794
|
type: Input,
|
|
@@ -871,13 +909,14 @@ class FForeignObjectBase {
|
|
|
871
909
|
this.subscriptions$.add(this.subscribeOnResizeChanges());
|
|
872
910
|
}
|
|
873
911
|
subscribeOnResizeChanges() {
|
|
874
|
-
return new FResizeObserver(this.hostElement.firstChild).pipe(startWith(null)
|
|
912
|
+
return new FResizeObserver(this.hostElement.firstChild).pipe(startWith(null)).subscribe(() => {
|
|
875
913
|
this.redraw();
|
|
876
914
|
this.stateChanges.next();
|
|
877
915
|
});
|
|
878
916
|
}
|
|
879
917
|
redraw() {
|
|
880
918
|
const element = this.hostElement.firstChild;
|
|
919
|
+
console.log(element);
|
|
881
920
|
if (element && !!element.getBoundingClientRect) {
|
|
882
921
|
const rect = RectExtensions.fromElement(element);
|
|
883
922
|
const scale = this.transform.scale;
|
|
@@ -2050,10 +2089,10 @@ class NodeOnPointerDown {
|
|
|
2050
2089
|
return itemsToDrag;
|
|
2051
2090
|
}
|
|
2052
2091
|
getInputsForNode(node) {
|
|
2053
|
-
return this.fFlow.inputs.
|
|
2092
|
+
return this.fFlow.inputs.filter((x) => node.isContains(x.hostElement));
|
|
2054
2093
|
}
|
|
2055
2094
|
getOutputsForNode(node) {
|
|
2056
|
-
return this.fFlow.outputs.
|
|
2095
|
+
return this.fFlow.outputs.filter((x) => node.isContains(x.hostElement));
|
|
2057
2096
|
}
|
|
2058
2097
|
}
|
|
2059
2098
|
|
|
@@ -2459,6 +2498,7 @@ class FLineAlignmentDirective {
|
|
|
2459
2498
|
this.rects = allNodesExcludeCurrents.map((x) => {
|
|
2460
2499
|
return getElementRectInCanvas(x.hostElement, this.transform, this.fFlow.hostElement);
|
|
2461
2500
|
});
|
|
2501
|
+
console.log(this.rects);
|
|
2462
2502
|
}
|
|
2463
2503
|
handle(difference) {
|
|
2464
2504
|
this.drawIntersections(difference);
|
|
@@ -2889,6 +2929,7 @@ class FFlowBase {
|
|
|
2889
2929
|
this.changeDetectorRef = changeDetectorRef;
|
|
2890
2930
|
this.ngZone = ngZone;
|
|
2891
2931
|
this.onDestroy = new Subject();
|
|
2932
|
+
this.connectorChanges = new Subject();
|
|
2892
2933
|
}
|
|
2893
2934
|
ngAfterContentInit() {
|
|
2894
2935
|
this.subscribeOnComponentsChanges();
|
|
@@ -2897,19 +2938,21 @@ class FFlowBase {
|
|
|
2897
2938
|
const changes = [
|
|
2898
2939
|
this.fNodesContainer.fNodes.changes,
|
|
2899
2940
|
this.fConnectionsContainer.fConnections.changes,
|
|
2900
|
-
this.
|
|
2901
|
-
this.outputs.changes,
|
|
2902
|
-
this.inputs.changes
|
|
2941
|
+
this.connectorChanges
|
|
2903
2942
|
];
|
|
2904
2943
|
merge(...changes).pipe(startWith(null), takeUntil(this.onDestroy)).subscribe(() => {
|
|
2905
2944
|
const changedOrDestroyed = merge(...changes, this.onDestroy);
|
|
2906
2945
|
merge(this.fNodesContainer.stateChanges).pipe(startWith(null), takeUntil(changedOrDestroyed)).subscribe(() => {
|
|
2907
2946
|
this.fConnectionsContainer.fConnections.forEach((connection) => {
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2947
|
+
const output = this.outputs.find((x) => x.id === connection.outputId);
|
|
2948
|
+
const input = this.inputs.find((x) => x.id === connection.inputId);
|
|
2949
|
+
if (input && output) {
|
|
2950
|
+
connection.fromTo = {
|
|
2951
|
+
output,
|
|
2952
|
+
input
|
|
2953
|
+
};
|
|
2954
|
+
connection.initialize();
|
|
2955
|
+
}
|
|
2913
2956
|
});
|
|
2914
2957
|
});
|
|
2915
2958
|
});
|
|
@@ -2941,9 +2984,39 @@ class FFlowComponent extends FFlowBase {
|
|
|
2941
2984
|
this.CONNECTION_MARKER_START_SELECTED = CONNECTION_MARKER_START_SELECTED;
|
|
2942
2985
|
this.CONNECTION_MARKER_END_SELECTED = CONNECTION_MARKER_END_SELECTED;
|
|
2943
2986
|
this.id = `f-flow-${uniqueId$1++}`;
|
|
2987
|
+
this.outlets = [];
|
|
2988
|
+
this.outputs = [];
|
|
2989
|
+
this.inputs = [];
|
|
2990
|
+
}
|
|
2991
|
+
addConnector(connector) {
|
|
2992
|
+
if (connector instanceof FNodeOutletBase) {
|
|
2993
|
+
this.outlets.push(connector);
|
|
2994
|
+
}
|
|
2995
|
+
else if (connector instanceof FNodeInputBase) {
|
|
2996
|
+
this.inputs.push(connector);
|
|
2997
|
+
}
|
|
2998
|
+
else if (connector instanceof FNodeOutputBase) {
|
|
2999
|
+
this.outputs.push(connector);
|
|
3000
|
+
}
|
|
3001
|
+
this.connectorChanges.next();
|
|
3002
|
+
}
|
|
3003
|
+
removeConnector(connector) {
|
|
3004
|
+
if (connector instanceof FNodeOutletBase) {
|
|
3005
|
+
this.outlets = this.outlets.filter(x => x !== connector);
|
|
3006
|
+
}
|
|
3007
|
+
else if (connector instanceof FNodeInputBase) {
|
|
3008
|
+
this.inputs = this.inputs.filter(x => x !== connector);
|
|
3009
|
+
}
|
|
3010
|
+
else if (connector instanceof FNodeOutputBase) {
|
|
3011
|
+
this.outputs = this.outputs.filter(x => x !== connector);
|
|
3012
|
+
}
|
|
3013
|
+
this.connectorChanges.next();
|
|
2944
3014
|
}
|
|
2945
3015
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2946
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FFlowComponent, selector: "svg[fFlow]", inputs: { id: "id" }, host: { properties: { "attr.id": "id" }, classAttribute: "f-component f-flow" }, providers: [
|
|
3016
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FFlowComponent, selector: "svg[fFlow]", inputs: { id: "id" }, host: { properties: { "attr.id": "id" }, classAttribute: "f-component f-flow" }, providers: [
|
|
3017
|
+
{ provide: F_FLOW_COMPONENT, useExisting: FFlowComponent },
|
|
3018
|
+
{ provide: F_FLOW_CONNECTOR_PARENT, useExisting: FFlowComponent }
|
|
3019
|
+
], queries: [{ propertyName: "fNodesContainer", first: true, predicate: F_NODES_CONTAINER, descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: F_CONNECTIONS_CONTAINER, descendants: true }, { propertyName: "fItemsContainer", first: true, predicate: F_ITEMS_CONTAINER, descendants: true, static: true }], viewQueries: [{ propertyName: "fBackground", first: true, predicate: F_BACKGROUND, descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: FCanvasDirective }], ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:g fBackground>\n <rect width=\"100%\" height=\"100%\" fill=\"url(#background)\"></rect>\n </svg:g>\n <ng-content></ng-content>\n <svg:defs>\n <svg:marker [id]=\"CONNECTION_MARKER_START\" class=\"connection-marker-start\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END\" class=\"connection-marker-end\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_START_SELECTED\" class=\"connection-marker-start f-selected\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END_SELECTED\" class=\"connection-marker-end f-selected\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <ng-container *ngIf=\"fConnectionsContainer\">\n <ng-container *ngFor=\"let connection of fConnectionsContainer.fConnections.toArray()\">\n <svg:marker [id]=\"'connection-marker-start-' + connection.fromTo?.output?.color\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.output?.color\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"'connection-marker-end-' + connection.fromTo?.input?.color\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.input?.color\"></svg:path>\n </svg:marker>\n </ng-container>\n\n </ng-container>\n <svg:pattern id=\"background\" height=\"10\" width=\"10\" class=\"fb-background-pattern\"\n patternUnits=\"userSpaceOnUse\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"0.5\"/>\n </svg:pattern>\n </svg:defs>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FBackgroundDirective, selector: "g[fBackground]" }] }); }
|
|
2947
3020
|
}
|
|
2948
3021
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowComponent, decorators: [{
|
|
2949
3022
|
type: Component,
|
|
@@ -2954,7 +3027,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
2954
3027
|
], host: {
|
|
2955
3028
|
'[attr.id]': 'id',
|
|
2956
3029
|
class: "f-component f-flow"
|
|
2957
|
-
}, providers: [
|
|
3030
|
+
}, providers: [
|
|
3031
|
+
{ provide: F_FLOW_COMPONENT, useExisting: FFlowComponent },
|
|
3032
|
+
{ provide: F_FLOW_CONNECTOR_PARENT, useExisting: FFlowComponent }
|
|
3033
|
+
], template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:g fBackground>\n <rect width=\"100%\" height=\"100%\" fill=\"url(#background)\"></rect>\n </svg:g>\n <ng-content></ng-content>\n <svg:defs>\n <svg:marker [id]=\"CONNECTION_MARKER_START\" class=\"connection-marker-start\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END\" class=\"connection-marker-end\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_START_SELECTED\" class=\"connection-marker-start f-selected\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END_SELECTED\" class=\"connection-marker-end f-selected\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <ng-container *ngIf=\"fConnectionsContainer\">\n <ng-container *ngFor=\"let connection of fConnectionsContainer.fConnections.toArray()\">\n <svg:marker [id]=\"'connection-marker-start-' + connection.fromTo?.output?.color\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.output?.color\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"'connection-marker-end-' + connection.fromTo?.input?.color\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.input?.color\"></svg:path>\n </svg:marker>\n </ng-container>\n\n </ng-container>\n <svg:pattern id=\"background\" height=\"10\" width=\"10\" class=\"fb-background-pattern\"\n patternUnits=\"userSpaceOnUse\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"0.5\"/>\n </svg:pattern>\n </svg:defs>\n</ng-container>\n" }]
|
|
2958
3034
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { id: [{
|
|
2959
3035
|
type: Input
|
|
2960
3036
|
}], fNodesContainer: [{
|
|
@@ -2969,15 +3045,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
2969
3045
|
}], fBackground: [{
|
|
2970
3046
|
type: ViewChild,
|
|
2971
3047
|
args: [F_BACKGROUND, { static: true }]
|
|
2972
|
-
}], outlets: [{
|
|
2973
|
-
type: ContentChildren,
|
|
2974
|
-
args: [F_NODE_OUTLET_DIRECTIVE, { descendants: true }]
|
|
2975
|
-
}], outputs: [{
|
|
2976
|
-
type: ContentChildren,
|
|
2977
|
-
args: [F_NODE_OUTPUT_DIRECTIVE, { descendants: true }]
|
|
2978
|
-
}], inputs: [{
|
|
2979
|
-
type: ContentChildren,
|
|
2980
|
-
args: [F_NODE_INPUT_DIRECTIVE, { descendants: true }]
|
|
2981
3048
|
}] } });
|
|
2982
3049
|
|
|
2983
3050
|
let uniqueId = 0;
|