@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.
@@ -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 { debounceTime, startWith, Subject, Subscription } from 'rxjs';
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), debounceTime(10)).subscribe(() => {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mb3JlaWduLW9iamVjdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9jb21wb25lbnRzL2Ytbm9kZS9mLWZvcmVpZ24tb2JqZWN0L2YtZm9yZWlnbi1vYmplY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsU0FBUyxFQUFFLGNBQWMsRUFDekMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFvQyxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBR2pHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFxQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRy9HLE1BQU0sT0FBZ0Isa0JBQWtCO0lBWXRDLFlBQ0UsV0FBaUI7UUFYWCxtQkFBYyxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTW5ELGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1SCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU07UUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQXlCLENBQUM7UUFDM0QsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBTSxFQUFFLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQU0sRUFBRSxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0E1Q21CLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGgsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRlJlc2l6ZU9ic2VydmVyLCBJSGFzSG9zdEVsZW1lbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uLy4uLy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuXG5leHBvcnQgY29uc3QgRl9GT1JFSUdOX09CSkVDVF9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkZvcmVpZ25PYmplY3RCYXNlPignRl9GT1JFSUdOX09CSkVDVF9DT01QT05FTlQnKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkZvcmVpZ25PYmplY3RCYXNlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgSUhhc1N0YXRlQ2hhbmdlcywgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwdWJsaWMgX3BhcmVudE5vZGU6IHt9IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBob3N0RWxlbWVudDogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ7XG5cbiAgcHVibGljIHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBfcGFyZW50Tm9kZT86IGFueSxcbiAgKSB7XG4gICAgdGhpcy5fcGFyZW50Tm9kZSA9IF9wYXJlbnROb2RlO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmFkZChcbiAgICAgIHRoaXMuc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPblJlc2l6ZUNoYW5nZXMoKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gbmV3IEZSZXNpemVPYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnBpcGUoc3RhcnRXaXRoKG51bGwpLCBkZWJvdW5jZVRpbWUoMTApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoZWxlbWVudCAmJiAhIWVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICBjb25zdCBzY2FsZSA9IHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICAgICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBgJHsgcmVjdC53aWR0aCAvIHNjYWxlIH1gKTtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAkeyByZWN0LmhlaWdodCAvIHNjYWxlIH1gKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
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.toArray().filter((x) => node.isContains(x.hostElement));
82
+ return this.fFlow.inputs.filter((x) => node.isContains(x.hostElement));
83
83
  }
84
84
  getOutputsForNode(node) {
85
- return this.fFlow.outputs.toArray().filter((x) => node.isContains(x.hostElement));
85
+ return this.fFlow.outputs.filter((x) => node.isContains(x.hostElement));
86
86
  }
87
87
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1kcmFnZ2FibGUvbm9kZS9ub2RlLW9uLXBvaW50ZXItZG93bi9ub2RlLm9uLXBvaW50ZXItZG93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsaUJBQWlCLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixJQUFZLHFCQUFxQjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVksZUFBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxZQUNZLGNBQW1ELEVBQ25ELEtBQWdCLEVBQ2hCLFdBQTBCO1FBRjFCLG1CQUFjLEdBQWQsY0FBYyxDQUFxQztRQUNuRCxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO0lBRXRDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBaUM7UUFDN0MsSUFBSSxNQUFnQyxDQUFDO1FBRXJDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9HLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFO29CQUN0RSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUNmO2dCQUNELElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSyxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sV0FBVyxHQUFxQixJQUFJLENBQUMscUNBQXFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRTFGLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDNUMsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFOUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBRXJGLE1BQU0sR0FBRztvQkFDUCxrQkFBa0IsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUs7b0JBQzNDLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztvQkFDM0UsY0FBYyxFQUFFLFdBQVc7aUJBQzVCLENBQUE7YUFDRjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLHFDQUFxQyxDQUFDLE9BQWlDO1FBQzdFLElBQUksV0FBVyxHQUFxQixFQUFFLENBQUM7UUFFdkMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7UUFFL0IsTUFBTSxVQUFVLEdBQXNCLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUF5QixFQUFFLENBQVksRUFBRSxFQUFFO1lBQ3JHLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFUCxNQUFNLFNBQVMsR0FBcUIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQXdCLEVBQUUsQ0FBWSxFQUFFLEVBQUU7WUFDbEcsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4SCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFPLENBQUMsS0FBTSxDQUFDLEVBQUU7b0JBQ3hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDdEY7cUJBQU07b0JBQ0wsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUE0QixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUM1RjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RILGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU8sQ0FBQyxNQUEwQixDQUFDLEVBQUU7b0JBQzdELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLFVBQVUsSUFBSyxDQUE0QixDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN6SSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDaEIsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO3FCQUN0RjtpQkFDRjtxQkFBTTtvQkFDTCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7aUJBQzVGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCx3RUFBd0U7UUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBZTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBZTtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0IH0gZnJvbSAnLi9ub2RlLW9uLXBvaW50ZXItZG93bi5yZXF1ZXN0JztcbmltcG9ydCB7IEZGbG93QmFzZSwgaXNOb2RlRHJhZ0hhbmRsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vaS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRk5vZGVzQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29udGFpbmVycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb250YWluZXJzJztcbmltcG9ydCB7IEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi8uLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IEVEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vZS1kcmFnZ2FibGUtdHlwZSc7XG5pbXBvcnQge1xuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVyLFxuICBGQ29ubmVjdGlvblNvdXJjZURyYWdIYW5kbGVyLFxuICBGQ29ubmVjdGlvblRhcmdldERyYWdIYW5kbGVyLFxuICBOb2RlT25Qb2ludGVyTW92ZVxufSBmcm9tICcuLi9ub2RlLW9uLXBvaW50ZXItbW92ZSc7XG5pbXBvcnQgeyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuXG5leHBvcnQgY2xhc3MgTm9kZU9uUG9pbnRlckRvd25cbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPE5vZGVPblBvaW50ZXJEb3duUmVxdWVzdCwgSURyYWdIYW5kbGVyIHwgdW5kZWZpbmVkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zQ29udGFpbmVyKCk6IEZDb25uZWN0aW9uc0NvbnRhaW5lckJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZDb25uZWN0aW9uc0NvbnRhaW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZOb2Rlc0NvbnRhaW5lcigpOiBGTm9kZXNDb250YWluZXJCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdy5mTm9kZXNDb250YWluZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkxpbmVBbGlnbm1lbnQ6IEZMaW5lQWxpZ25tZW50RGlyZWN0aXZlIHwgdW5kZWZpbmVkLFxuICAgICAgcHJpdmF0ZSBmRmxvdzogRkZsb3dCYXNlLFxuICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogU1ZHU1ZHRWxlbWVudFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0KTogSURyYWdIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcmVzdWx0OiBJRHJhZ0hhbmRsZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5mTm9kZXNDb250YWluZXIuZmluZE5vZGUocGF5bG9hZC5ldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkNhbnZhcyA9IFBvaW50LmZyb21Qb2ludChwYXlsb2FkLmV2ZW50LmdldFBvc2l0aW9uKCkpLm1hdHJpeFRyYW5zZm9ybSh0aGlzLmhvc3RFbGVtZW50KTtcblxuICAgIGlmIChub2RlKSB7XG4gICAgICBpZiAoaXNOb2RlRHJhZ0hhbmRsZShwYXlsb2FkLmV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghcGF5bG9hZC5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKG5vZGUpICYmIHBheWxvYWQuaXNNb3ZlQ3VycmVudE5vZGUpIHtcbiAgICAgICAgICBwYXlsb2FkLnNlbGVjdGVkSXRlbXMucHVzaChub2RlKTtcbiAgICAgICAgICBub2RlLnNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLnNldE5vZGVUb1RvcExheWVyKG5vZGUhKTtcbiAgICAgICAgY29uc3QgaXRlbXNUb0RyYWc6IElEcmFnZ2FibGVJdGVtW10gPSB0aGlzLmNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMocGF5bG9hZCk7XG5cbiAgICAgICAgY29uc3QgZHJhZ2dlZE5vZGVzID0gaXRlbXNUb0RyYWcuZmlsdGVyKCh4KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHgudHlwZSA9PT0gRURyYWdnYWJsZVR5cGUuTk9ERTtcbiAgICAgICAgfSkubWFwKCh4KSA9PiAoeCBhcyBOb2RlT25Qb2ludGVyTW92ZSkuZk5vZGUpO1xuXG4gICAgICAgIHRoaXMuZkxpbmVBbGlnbm1lbnQ/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1saW5lLWFsaWdubWVudC9mLWxpbmUtYWxpZ25tZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUF5QyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXdCLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUF3QixNQUFNLFVBQVUsQ0FBQzs7O0FBRXBHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUEwQixrQkFBa0IsQ0FBQyxDQUFDO0FBWWhHLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBWSxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBWUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUNvQyxLQUFnQixFQUMxQyxnQkFBeUM7UUFEZixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFoQjNDLG9CQUFlLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxTQUFJLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTFDLG9CQUFlLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRXJELFVBQUssR0FBWSxFQUFFLENBQUM7UUFVMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxVQUFVLENBQUMsUUFBcUIsRUFBRSxZQUF5QjtRQUNoRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsT0FBTyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTlELE1BQU0sdUJBQXVCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BELE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3QyxPQUFPLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFrQjtRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQWtCO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixFQUFFLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hILEVBQUUsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEgsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3hCLEVBQUUsRUFBRSxDQUFDO2dCQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQ25CLEVBQUUsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEgsRUFBRSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ2pILENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFVBQWtCO1FBQzdDLElBQUksTUFBTSxHQUF5QjtZQUNqQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUU7WUFDbEQsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO1NBQ25ELENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxNQUFNLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM5QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQTFGVSx1QkFBdUIsa0JBcUJ4QixnQkFBZ0I7a0dBckJmLHVCQUF1QiwwSEFKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEU7OzJGQUVVLHVCQUF1QjtrQkFWbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSw4QkFBOEI7cUJBQ3hDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUNwRTtpQkFDRjs7MEJBc0JJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLCBMaW5lRkVsZW1lbnQsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGX0ZMT1dfQ09NUE9ORU5ULCBGRmxvd0Jhc2UsIEZOb2RlQmFzZSwgZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgZmluZE5lYXJlc3RDb29yZGluYXRlQnlYLCBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVksIElMaW5lQWxpZ25tZW50UmVzdWx0IH0gZnJvbSAnLi9kb21haW4nO1xuXG5leHBvcnQgY29uc3QgRl9MSU5FX0FMSUdOTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGTGluZUFsaWdubWVudERpcmVjdGl2ZT4oJ0ZfTElORV9BTElHTk1FTlQnKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImdbZkxpbmVBbGlnbm1lbnRdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnREaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZkhvcml6b250YWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBmVmVydGljYWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBzaXplOiBJU2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIGRyYWdnZWROb2RlUmVjdDogSVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSByZWN0czogSVJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZJdGVtc0NvbnRhaW5lci50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZfRkxPV19DT01QT05FTlQpIHByaXZhdGUgZkZsb3c6IEZGbG93QmFzZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHR0VsZW1lbnQ+XG4gICkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mSG9yaXpvbnRhbExpbmUuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mVmVydGljYWxMaW5lLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKGFsbE5vZGVzOiBGTm9kZUJhc2VbXSwgY3VycmVudE5vZGVzOiBGTm9kZUJhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuZkZsb3cuaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZWN0cyA9IFtdO1xuICAgIGNvbnN0IGRyYWdnZWROb2RlUmVjdHMgPSBjdXJyZW50Tm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyh4Lmhvc3RFbGVtZW50LCB0aGlzLnRyYW5zZm9ybSwgdGhpcy5mRmxvdy5ob3N0RWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmFnZ2VkTm9kZVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy51bmlvbihkcmFnZ2VkTm9kZVJlY3RzKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiBnZXRFbGVtZW50UmVjdEluQ2FudmFzKHguaG9zdEVsZW1lbnQsIHRoaXMudHJhbnNmb3JtLCB0aGlzLmZGbG93Lmhvc3RFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5kcmF3SW50ZXJzZWN0aW9ucyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGlvbnMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZWZXJ0aWNhbExpbmUuZHJhdyh7XG4gICAgICAgIHgxOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHgyOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHkxOiAwLFxuICAgICAgICB5MjogdGhpcy5zaXplLmhlaWdodFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5kcmF3KHtcbiAgICAgICAgeDE6IDAsXG4gICAgICAgIHgyOiB0aGlzLnNpemUud2lkdGgsXG4gICAgICAgIHkxOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICAgIHkyOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mSG9yaXpvbnRhbExpbmUuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGxldCByZXN1bHQ6IElMaW5lQWxpZ25tZW50UmVzdWx0ID0ge1xuICAgICAgeFJlc3VsdDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXN0YW5jZTogdW5kZWZpbmVkIH0sXG4gICAgICB5UmVzdWx0OiB7IHZhbHVlOiB1bmRlZmluZWQsIGRpc3RhbmNlOiB1bmRlZmluZWQgfVxuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KHRoaXMuZHJhZ2dlZE5vZGVSZWN0LCBkaWZmZXJlbmNlKTtcbiAgICBjb25zdCB4UmVzdWx0ID0gZmluZE5lYXJlc3RDb29yZGluYXRlQnlYKHRoaXMucmVjdHMsIHJlY3QpO1xuICAgIGNvbnN0IHlSZXN1bHQgPSBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVkodGhpcy5yZWN0cywgcmVjdCk7XG4gICAgcmVzdWx0ID0geyB4UmVzdWx0LCB5UmVzdWx0IH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZWZXJ0aWNhbExpbmUuaGlkZSgpO1xuICAgIHRoaXMuZkhvcml6b250YWxMaW5lLmhpZGUoKTtcbiAgfVxufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1saW5lLWFsaWdubWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1saW5lLWFsaWdubWVudC9mLWxpbmUtYWxpZ25tZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUF5QyxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXdCLHNCQUFzQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUF3QixNQUFNLFVBQVUsQ0FBQzs7O0FBRXBHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUEwQixrQkFBa0IsQ0FBQyxDQUFDO0FBWWhHLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsSUFBWSxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDO0lBWUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUNvQyxLQUFnQixFQUMxQyxnQkFBeUM7UUFEZixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFoQjNDLG9CQUFlLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqRCxTQUFJLEdBQVUsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTFDLG9CQUFlLEdBQVUsY0FBYyxD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QUM5QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQTNGVSx1QkFBdUIsa0JBcUJ4QixnQkFBZ0I7a0dBckJmLHVCQUF1QiwwSEFKdkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUU7U0FDcEU7OzJGQUVVLHVCQUF1QjtrQkFWbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSw4QkFBOEI7cUJBQ3hDO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3FCQUNwRTtpQkFDRjs7MEJBc0JJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0LCBJU2l6ZSwgSVRyYW5zZm9ybU1vZGVsLCBMaW5lRkVsZW1lbnQsIFJlY3RFeHRlbnNpb25zLCBTaXplRXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGX0ZMT1dfQ09NUE9ORU5ULCBGRmxvd0Jhc2UsIEZOb2RlQmFzZSwgZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgZmluZE5lYXJlc3RDb29yZGluYXRlQnlYLCBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVksIElMaW5lQWxpZ25tZW50UmVzdWx0IH0gZnJvbSAnLi9kb21haW4nO1xuXG5leHBvcnQgY29uc3QgRl9MSU5FX0FMSUdOTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGTGluZUFsaWdubWVudERpcmVjdGl2ZT4oJ0ZfTElORV9BTElHTk1FTlQnKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImdbZkxpbmVBbGlnbm1lbnRdXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1saW5lLWFsaWdubWVudCBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0xJTkVfQUxJR05NRU5ULCB1c2VFeGlzdGluZzogRkxpbmVBbGlnbm1lbnREaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB7XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZkhvcml6b250YWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBmVmVydGljYWxMaW5lOiBMaW5lRkVsZW1lbnQgPSBuZXcgTGluZUZFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSBzaXplOiBJU2l6ZSA9IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcml2YXRlIGRyYWdnZWROb2RlUmVjdDogSVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHJpdmF0ZSByZWN0czogSVJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZJdGVtc0NvbnRhaW5lci50cmFuc2Zvcm07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZfRkxPV19DT01QT05FTlQpIHByaXZhdGUgZkZsb3c6IEZGbG93QmFzZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHR0VsZW1lbnQ+XG4gICkge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mSG9yaXpvbnRhbExpbmUuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5mVmVydGljYWxMaW5lLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKGFsbE5vZGVzOiBGTm9kZUJhc2VbXSwgY3VycmVudE5vZGVzOiBGTm9kZUJhc2VbXSk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHRoaXMuZkZsb3cuaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZWN0cyA9IFtdO1xuICAgIGNvbnN0IGRyYWdnZWROb2RlUmVjdHMgPSBjdXJyZW50Tm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gZ2V0RWxlbWVudFJlY3RJbkNhbnZhcyh4Lmhvc3RFbGVtZW50LCB0aGlzLnRyYW5zZm9ybSwgdGhpcy5mRmxvdy5ob3N0RWxlbWVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmFnZ2VkTm9kZVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy51bmlvbihkcmFnZ2VkTm9kZVJlY3RzKTtcblxuICAgIGNvbnN0IGFsbE5vZGVzRXhjbHVkZUN1cnJlbnRzID0gYWxsTm9kZXMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICByZXR1cm4gIWN1cnJlbnROb2Rlcy5pbmNsdWRlcyh4KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVjdHMgPSBhbGxOb2Rlc0V4Y2x1ZGVDdXJyZW50cy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiBnZXRFbGVtZW50UmVjdEluQ2FudmFzKHguaG9zdEVsZW1lbnQsIHRoaXMudHJhbnNmb3JtLCB0aGlzLmZGbG93Lmhvc3RFbGVtZW50KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnJlY3RzKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgdGhpcy5kcmF3SW50ZXJzZWN0aW9ucyhkaWZmZXJlbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0ludGVyc2VjdGlvbnMoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgaW50ZXJzZWN0ID0gdGhpcy5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgaWYgKGludGVyc2VjdC54UmVzdWx0LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZWZXJ0aWNhbExpbmUuZHJhdyh7XG4gICAgICAgIHgxOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHgyOiBpbnRlcnNlY3QueFJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueCArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLngsXG4gICAgICAgIHkxOiAwLFxuICAgICAgICB5MjogdGhpcy5zaXplLmhlaWdodFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZlZlcnRpY2FsTGluZS5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5zaG93KCk7XG4gICAgICB0aGlzLmZIb3Jpem9udGFsTGluZS5kcmF3KHtcbiAgICAgICAgeDE6IDAsXG4gICAgICAgIHgyOiB0aGlzLnNpemUud2lkdGgsXG4gICAgICAgIHkxOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICAgIHkyOiBpbnRlcnNlY3QueVJlc3VsdC52YWx1ZSAqIHRoaXMudHJhbnNmb3JtLnNjYWxlICsgdGhpcy50cmFuc2Zvcm0ucG9zaXRpb24ueSArIHRoaXMudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uLnksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mSG9yaXpvbnRhbExpbmUuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZTogSVBvaW50KTogSUxpbmVBbGlnbm1lbnRSZXN1bHQge1xuICAgIGxldCByZXN1bHQ6IElMaW5lQWxpZ25tZW50UmVzdWx0ID0ge1xuICAgICAgeFJlc3VsdDogeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXN0YW5jZTogdW5kZWZpbmVkIH0sXG4gICAgICB5UmVzdWx0OiB7IHZhbHVlOiB1bmRlZmluZWQsIGRpc3RhbmNlOiB1bmRlZmluZWQgfVxuICAgIH07XG4gICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KHRoaXMuZHJhZ2dlZE5vZGVSZWN0LCBkaWZmZXJlbmNlKTtcbiAgICBjb25zdCB4UmVzdWx0ID0gZmluZE5lYXJlc3RDb29yZGluYXRlQnlYKHRoaXMucmVjdHMsIHJlY3QpO1xuICAgIGNvbnN0IHlSZXN1bHQgPSBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVkodGhpcy5yZWN0cywgcmVjdCk7XG4gICAgcmVzdWx0ID0geyB4UmVzdWx0LCB5UmVzdWx0IH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZWZXJ0aWNhbExpbmUuaGlkZSgpO1xuICAgIHRoaXMuZkhvcml6b250YWxMaW5lLmhpZGUoKTtcbiAgfVxufVxuIl19
@@ -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, debounceTime, defer, switchMap, merge, take, takeUntil } from 'rxjs';
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 }]; }, propDecorators: { id: [{
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
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FNodeOutletDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
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 }]; }, propDecorators: { id: [{
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 }]; }, propDecorators: { id: [{
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), debounceTime(10)).subscribe(() => {
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.toArray().filter((x) => node.isContains(x.hostElement));
2092
+ return this.fFlow.inputs.filter((x) => node.isContains(x.hostElement));
2054
2093
  }
2055
2094
  getOutputsForNode(node) {
2056
- return this.fFlow.outputs.toArray().filter((x) => node.isContains(x.hostElement));
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.outlets.changes,
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
- connection.fromTo = {
2909
- output: this.outputs.find((x) => x.id === connection.outputId),
2910
- input: this.inputs.find((x) => x.id === connection.inputId)
2911
- };
2912
- connection.initialize();
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: [{ provide: F_FLOW_COMPONENT, useExisting: FFlowComponent }], 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 }, { propertyName: "outlets", predicate: F_NODE_OUTLET_DIRECTIVE, descendants: true }, { propertyName: "outputs", predicate: F_NODE_OUTPUT_DIRECTIVE, descendants: true }, { propertyName: "inputs", predicate: F_NODE_INPUT_DIRECTIVE, descendants: 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]" }] }); }
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: [{ provide: F_FLOW_COMPONENT, useExisting: FFlowComponent }], 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" }]
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;