@foblex/flow 12.3.7 → 12.4.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.
Files changed (28) hide show
  1. package/README.md +25 -9
  2. package/domain/get-external-nodes-rect/get-external-nodes-rect.execution.d.ts +14 -0
  3. package/domain/get-external-nodes-rect/get-external-nodes-rect.request.d.ts +2 -0
  4. package/domain/get-external-nodes-rect/index.d.ts +2 -0
  5. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +2 -0
  6. package/domain/index.d.ts +1 -0
  7. package/domain/intersections/rounded-rect/rounded-rect.d.ts +1 -0
  8. package/domain/providers.d.ts +2 -1
  9. package/esm2022/domain/get-external-nodes-rect/get-external-nodes-rect.execution.mjs +35 -0
  10. package/esm2022/domain/get-external-nodes-rect/get-external-nodes-rect.request.mjs +3 -0
  11. package/esm2022/domain/get-external-nodes-rect/index.mjs +3 -0
  12. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +8 -6
  13. package/esm2022/domain/index.mjs +2 -1
  14. package/esm2022/domain/intersections/rounded-rect/rounded-rect.mjs +31 -5
  15. package/esm2022/domain/providers.mjs +3 -1
  16. package/esm2022/f-connection/common/f-connection-base.mjs +2 -2
  17. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +10 -2
  18. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +2 -2
  19. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +1 -4
  20. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.mjs +4 -1
  21. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.execution.mjs +1 -1
  22. package/esm2022/f-draggable/f-draggable.directive.mjs +16 -4
  23. package/esm2022/f-flow/f-flow.component.mjs +3 -3
  24. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +2 -1
  25. package/f-draggable/f-draggable.directive.d.ts +2 -0
  26. package/fesm2022/foblex-flow.mjs +99 -20
  27. package/fesm2022/foblex-flow.mjs.map +1 -1
  28. package/package.json +1 -1
@@ -73,12 +73,24 @@ export class FDraggableDirective extends FDraggableBase {
73
73
  }
74
74
  }
75
75
  onSelect(event) {
76
- const isTargetNotHtml = event.constructor.name === 'Event';
77
- const target = isTargetNotHtml ? event.target.parentNode : event.target;
78
- if (target && isExternalItem(target)) {
76
+ if (this.isTargetItemExternal(event)) {
79
77
  event.preventDefault();
80
78
  }
81
79
  }
80
+ isTargetItemExternal(event) {
81
+ let isTargetItemExternal = this.isExternalItem(event.target);
82
+ let isTargetParentItemExternal = this.isExternalItem(event.target.parentNode);
83
+ return isTargetItemExternal || isTargetParentItemExternal;
84
+ }
85
+ isExternalItem(target) {
86
+ let result = false;
87
+ try {
88
+ result = isExternalItem(target);
89
+ }
90
+ catch (e) {
91
+ }
92
+ return result;
93
+ }
82
94
  onPointerMove(event) {
83
95
  const pointerPositionInCanvas = Point.fromPoint(event.getPosition()).elementTransform(this.hostElement);
84
96
  const difference = pointerPositionInCanvas.div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
@@ -140,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
140
152
  }], fCreateConnection: [{
141
153
  type: Output
142
154
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUNwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLDhCQUE4QixFQUFFLDJCQUEyQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdMLG9DQUFvQyxFQUNwQyxpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLCtCQUErQixFQUNoQyxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsK0JBQStC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QUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7dUdBeElVLG1CQUFtQixvS0FnQ3BCLFFBQVE7MkZBaENQLG1CQUFtQiwwUUFKbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzNEOzsyRkFFVSxtQkFBbUI7a0JBUC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTtxQkFDM0Q7aUJBQ0Y7OzBCQWlDSSxNQUFNOzJCQUFDLFFBQVE7eUNBM0JGLFFBQVE7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVFYLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFPUyxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLG1CQUFtQjtzQkFEbEMsTUFBTTtnQkFJUyxpQkFBaUI7c0JBRGhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGX0RSQUdHQUJMRSwgRkRyYWdnYWJsZUJhc2UgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWJhc2UnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnQsIEV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdCwgRXh0ZXJuYWxJdGVtRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IElQb2ludGVyRXZlbnQsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IE5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0LCBOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0LCBDYW52YXNNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9jYW52YXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRkNyZWF0ZUNvbm5lY3Rpb25FdmVudCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50LFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsXG4gIFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCxcbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCxcbiAgQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdFxufSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBHZXRTZWxlY3Rpb25SZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IGlzRXh0ZXJuYWxJdGVtIH0gZnJvbSAnLi4vZi1leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFJlcXVlc3QgfSBmcm9tICcuL3NpbmdsZS1zZWxlY3QnO1xuaW1wb3J0IHsgTm9kZVJlc2l6ZUZpbmFsaXplUmVxdWVzdCwgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vbm9kZS1yZXNpemUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdCwgU2VsZWN0aW9uQXJlYVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vc2VsZWN0aW9uLWFyZWEnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiZi1mbG93W2ZEcmFnZ2FibGVdXCIsXG4gIGV4cG9ydEFzOiAnZkRyYWdnYWJsZScsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9EUkFHR0FCTEUsIHVzZUV4aXN0aW5nOiBGRHJhZ2dhYmxlRGlyZWN0aXZlIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGRHJhZ2dhYmxlRGlyZWN0aXZlIGV4dGVuZHMgRkRyYWdnYWJsZUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgnZkRyYWdnYWJsZURpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIC8vIEBPdXRwdXQoKVxuICAvLyBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JbnRlcnNlY3ROb2RlOiBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25JbnRlcnNlY3ROb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlTm9kZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVDb25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogRG9jdW1lbnRcbiAgKSB7XG4gICAgc3VwZXIobmdab25lKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZSA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLnN1YnNjcmliZSh0aGlzLmRvYyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnJlc2V0KCk7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGV2ZW50LmlzTW91c2VMZWZ0QnV0dG9uKCk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBTaW5nbGVTZWxlY3RSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aGlzLmZpbmFsaXplRHJhZ1NlcXVlbmNlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0aW9uQXJlYVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZU1vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IEV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtZHJhZ2dpbmcnKTtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlzVGFyZ2V0Tm90SHRtbCA9IGV2ZW50LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdFdmVudCc7XG4gICAgY29uc3QgdGFyZ2V0ID0gaXNUYXJnZXROb3RIdG1sID8gKGV2ZW50LnRhcmdldCBhcyBOb2RlKS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50IDogZXZlbnQudGFyZ2V0O1xuICAgIGlmICh0YXJnZXQgJiYgaXNFeHRlcm5hbEl0ZW0odGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZVJlc2l6ZUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENhbnZhc01vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IEV4dGVybmFsSXRlbUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmLWRyYWdnaW5nJyk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpbmFsaXplRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5mU2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5mTWVkaWF0b3Iuc2VuZDxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KG5ldyBHZXRTZWxlY3Rpb25SZXF1ZXN0KCkpKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG5cbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUNwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLDhCQUE4QixFQUFFLDJCQUEyQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdMLG9DQUFvQyxFQUNwQyxpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLCtCQUErQixFQUNoQyxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsK0JBQStC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SUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUM3QyxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUF3QixJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzt1R0FySlUsbUJBQW1CLG9LQWdDcEIsUUFBUTsyRkFoQ1AsbUJBQW1CLDBRQUpuQjtZQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7U0FDM0Q7OzJGQUVVLG1CQUFtQjtrQkFQL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3FCQUMzRDtpQkFDRjs7MEJBaUNJLE1BQU07MkJBQUMsUUFBUTt5Q0EzQkYsUUFBUTtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBUVgsZ0JBQWdCO3NCQUQvQixNQUFNO2dCQU9TLFdBQVc7c0JBRDFCLE1BQU07Z0JBSVMsbUJBQW1CO3NCQURsQyxNQUFNO2dCQUlTLGlCQUFpQjtzQkFEaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLCBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZfRFJBR0dBQkxFLCBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRkNyZWF0ZU5vZGVFdmVudCwgRXh0ZXJuYWxJdGVtUHJlcGFyYXRpb25SZXF1ZXN0LCBFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QgfSBmcm9tICcuL2V4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgSVBvaW50ZXJFdmVudCwgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QsIE5vZGVNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IENhbnZhc01vdmVGaW5hbGl6ZVJlcXVlc3QsIENhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCxcbiAgUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVSZXF1ZXN0LFxuICBDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0LFxuICBDcmVhdGVDb25uZWN0aW9uRmluYWxpemVSZXF1ZXN0XG59IGZyb20gJy4vY29ubmVjdGlvbnMnO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IEdldFNlbGVjdGlvblJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgaXNFeHRlcm5hbEl0ZW0gfSBmcm9tICcuLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0UmVxdWVzdCB9IGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBOb2RlUmVzaXplRmluYWxpemVSZXF1ZXN0LCBOb2RlUmVzaXplUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9ub2RlLXJlc2l6ZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0LCBTZWxlY3Rpb25BcmVhUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWZsb3dbZkRyYWdnYWJsZV1cIixcbiAgZXhwb3J0QXM6ICdmRHJhZ2dhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdHQUJMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnZ2FibGVEaXJlY3RpdmUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmRHJhZ2dhYmxlRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLy8gQE91dHB1dCgpXG4gIC8vIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbkludGVyc2VjdE5vZGU6IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uSW50ZXJzZWN0Tm9kZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmUmVhc3NpZ25Db25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBEb2N1bWVudFxuICApIHtcbiAgICBzdXBlcihuZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuZG9jKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNpbmdsZVNlbGVjdFJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRoaXMuZmluYWxpemVEcmFnU2VxdWVuY2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQ6IElQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBTZWxlY3Rpb25BcmVhUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBOb2RlUmVzaXplUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgQ2FudmFzTW92ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgRXh0ZXJuYWxJdGVtUHJlcGFyYXRpb25SZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmluaXRpYWxpemU/LigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZi1kcmFnZ2luZycpO1xuICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25TZWxlY3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNUYXJnZXRJdGVtRXh0ZXJuYWwoZXZlbnQpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNUYXJnZXRJdGVtRXh0ZXJuYWwoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiB7XG4gICAgbGV0IGlzVGFyZ2V0SXRlbUV4dGVybmFsID0gdGhpcy5pc0V4dGVybmFsSXRlbShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgIGxldCBpc1RhcmdldFBhcmVudEl0ZW1FeHRlcm5hbCA9IHRoaXMuaXNFeHRlcm5hbEl0ZW0oKGV2ZW50LnRhcmdldCBhcyBOb2RlKS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50KTtcbiAgICByZXR1cm4gaXNUYXJnZXRJdGVtRXh0ZXJuYWwgfHwgaXNUYXJnZXRQYXJlbnRJdGVtRXh0ZXJuYWw7XG4gIH1cblxuICBwcml2YXRlIGlzRXh0ZXJuYWxJdGVtKHRhcmdldDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGlzRXh0ZXJuYWxJdGVtKHRhcmdldCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlck1vdmUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkNhbnZhcyA9IFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBwb2ludGVyUG9zaXRpb25JbkNhbnZhcy5kaXYodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlKS5zdWIodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLm1vdmUoZGlmZmVyZW5jZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNlbGVjdGlvbkFyZWFGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IE5vZGVSZXNpemVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IE5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZi1kcmFnZ2luZycpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaW5hbGl6ZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmlzU2VsZWN0ZWRDaGFuZ2VkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZlNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZk1lZGlhdG9yLnNlbmQ8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PihuZXcgR2V0U2VsZWN0aW9uUmVxdWVzdCgpKSk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { F_FLOW, FFlowBase } from './f-flow-base';
3
3
  import { debounceTime, startWith, Subscription } from 'rxjs';
4
- import { ClearSelectionRequest, COMMON_PROVIDERS, GetNodesRectRequest, GetPositionInFlowRequest, GetSelectionRequest, RedrawConnectionsRequest, SelectAllRequest, SelectRequest, } from '../domain';
4
+ import { ClearSelectionRequest, COMMON_PROVIDERS, GetExternalNodesRectRequest, GetPositionInFlowRequest, GetSelectionRequest, RedrawConnectionsRequest, SelectAllRequest, SelectRequest, } from '../domain';
5
5
  import { FFlowMediator } from '../infrastructure';
6
6
  import { F_DRAGGABLE_PROVIDERS, FDraggableDataContext } from '../f-draggable';
7
7
  import { FConnectionFactory } from '../f-connection';
@@ -49,7 +49,7 @@ export class FFlowComponent extends FFlowBase {
49
49
  this.isLoaded = false;
50
50
  }
51
51
  getNodesRect() {
52
- return this.fMediator.send(new GetNodesRectRequest());
52
+ return this.fMediator.send(new GetExternalNodesRectRequest());
53
53
  }
54
54
  getSelection() {
55
55
  return this.fMediator.send(new GetSelectionRequest());
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
99
99
  }], fLoaded: [{
100
100
  type: Output
101
101
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93L2YtZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZmxvdy9mLWZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxLQUFLLEVBQXFCLE1BQU0sRUFDakMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQy9ELG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQUUsYUFBYSxHQUNoQyxNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFaEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBcUJ6QixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFpQmpDO0lBQ0E7SUFDQTtJQWpCRixhQUFhLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFHekMsT0FBTyxHQUFXLFVBQVcsUUFBUSxFQUFHLEVBQUUsQ0FBQztJQUUz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QUNFLFFBQVEsUUFHWjt3QkFDSixXQUFXLEVBQUUsU0FBUzt3QkFDdEIsS0FBSyxFQUFFLG9CQUFvQjtxQkFDNUIsYUFDVTt3QkFDVCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLEdBQUcscUJBQXFCO3dCQUN4QixHQUFHLGdCQUFnQjt3QkFDbkIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUU7cUJBQ2pELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzBJQU8vQixPQUFPO3NCQUR0QixLQUFLO2dCQVFVLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXG4gIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRl9GTE9XLCBGRmxvd0Jhc2UgfSBmcm9tICcuL2YtZmxvdy1iYXNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENsZWFyU2VsZWN0aW9uUmVxdWVzdCxcbiAgQ09NTU9OX1BST1ZJREVSUywgR2V0Tm9kZXNSZWN0UmVxdWVzdCwgR2V0UG9zaXRpb25JbkZsb3dSZXF1ZXN0LFxuICBHZXRTZWxlY3Rpb25SZXF1ZXN0LFxuICBSZWRyYXdDb25uZWN0aW9uc1JlcXVlc3QsXG4gIFNlbGVjdEFsbFJlcXVlc3QsIFNlbGVjdFJlcXVlc3QsXG59IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQge1xuICBGX0RSQUdHQUJMRV9QUk9WSURFUlMsXG4gIEZEcmFnZ2FibGVEYXRhQ29udGV4dCwgRlNlbGVjdGlvbkNoYW5nZUV2ZW50XG59IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1mbG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtZmxvdy5jb21wb25lbnQuc2NzcycgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnZkZsb3dJZCcsXG4gICAgY2xhc3M6IFwiZi1jb21wb25lbnQgZi1mbG93XCIsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIEZGbG93TWVkaWF0b3IsXG4gICAgRkNvbXBvbmVudHNTdG9yZSxcbiAgICBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgRkNvbm5lY3Rpb25GYWN0b3J5LFxuICAgIC4uLkZfRFJBR0dBQkxFX1BST1ZJREVSUyxcbiAgICAuLi5DT01NT05fUFJPVklERVJTLFxuICAgIHsgcHJvdmlkZTogRl9GTE9XLCB1c2VFeGlzdGluZzogRkZsb3dDb21wb25lbnQgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93Q29tcG9uZW50IGV4dGVuZHMgRkZsb3dCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRmxvd0lkOiBzdHJpbmcgPSBgZi1mbG93LSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTG9hZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBpc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICB0aGlzLnN1YnNjcmliZU9uRWxlbWVudHNDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPbkVsZW1lbnRzQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgZGVib3VuY2VUaW1lKDIwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IFJlZHJhd0Nvbm5lY3Rpb25zUmVxdWVzdCgpKTtcblxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGVkKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZMb2FkZWQuZW1pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldE5vZGVzUmVjdCgpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGlvbigpOiBGU2VsZWN0aW9uQ2hhbmdlRXZlbnQge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD4obmV3IEdldFNlbGVjdGlvblJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9zaXRpb25JbkZsb3cocG9zaXRpb246IElQb2ludCk6IElSZWN0IHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgR2V0UG9zaXRpb25JbkZsb3dSZXF1ZXN0KHBvc2l0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNlbGVjdEFsbFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KG5vZGVzOiBzdHJpbmdbXSwgY29ubmVjdGlvbnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0UmVxdWVzdChub2RlcywgY29ubmVjdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBDbGVhclNlbGVjdGlvblJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24kLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltmRGVmaW5pdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtYmFja2dyb3VuZFwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWxpbmUtYWxpZ25tZW50XCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY2FudmFzXCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtc2VsZWN0aW9uLWFyZWFcIj48L25nLWNvbnRlbnQ+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1taW5pLW1hcFwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93L2YtZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZmxvdy9mLWZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxLQUFLLEVBQXFCLE1BQU0sRUFDakMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQ3ZFLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQUUsYUFBYSxHQUNoQyxNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFaEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBcUJ6QixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFpQmpDO0lBQ0E7SUFDQTtJQWpCRixhQUFhLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFHekMsT0FBTyxHQUFXLFVBQVcsUUFBUSxFQUFHLEVBQUUsQ0FBQztJQUUz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QUNFLFFBQVEsUUFHWjt3QkFDSixXQUFXLEVBQUUsU0FBUzt3QkFDdEIsS0FBSyxFQUFFLG9CQUFvQjtxQkFDNUIsYUFDVTt3QkFDVCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLEdBQUcscUJBQXFCO3dCQUN4QixHQUFHLGdCQUFnQjt3QkFDbkIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUU7cUJBQ2pELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzBJQU8vQixPQUFPO3NCQUR0QixLQUFLO2dCQVFVLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXG4gIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRl9GTE9XLCBGRmxvd0Jhc2UgfSBmcm9tICcuL2YtZmxvdy1iYXNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENsZWFyU2VsZWN0aW9uUmVxdWVzdCxcbiAgQ09NTU9OX1BST1ZJREVSUywgR2V0RXh0ZXJuYWxOb2Rlc1JlY3RSZXF1ZXN0LCBHZXRQb3NpdGlvbkluRmxvd1JlcXVlc3QsXG4gIEdldFNlbGVjdGlvblJlcXVlc3QsXG4gIFJlZHJhd0Nvbm5lY3Rpb25zUmVxdWVzdCxcbiAgU2VsZWN0QWxsUmVxdWVzdCwgU2VsZWN0UmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7XG4gIEZfRFJBR0dBQkxFX1BST1ZJREVSUyxcbiAgRkRyYWdnYWJsZURhdGFDb250ZXh0LCBGU2VsZWN0aW9uQ2hhbmdlRXZlbnRcbn0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtZmxvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWZsb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZi1mbG93LmNvbXBvbmVudC5zY3NzJyBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdmRmxvd0lkJyxcbiAgICBjbGFzczogXCJmLWNvbXBvbmVudCBmLWZsb3dcIixcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRkZsb3dNZWRpYXRvcixcbiAgICBGQ29tcG9uZW50c1N0b3JlLFxuICAgIEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICBGQ29ubmVjdGlvbkZhY3RvcnksXG4gICAgLi4uRl9EUkFHR0FCTEVfUFJPVklERVJTLFxuICAgIC4uLkNPTU1PTl9QUk9WSURFUlMsXG4gICAgeyBwcm92aWRlOiBGX0ZMT1csIHVzZUV4aXN0aW5nOiBGRmxvd0NvbXBvbmVudCB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRkZsb3dDb21wb25lbnQgZXh0ZW5kcyBGRmxvd0Jhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZGbG93SWQ6IHN0cmluZyA9IGBmLWZsb3ctJHsgdW5pcXVlSWQrKyB9YDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZMb2FkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwcml2YXRlIGlzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93ID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24kLmFkZChcbiAgICAgIHRoaXMuc3Vic2NyaWJlT25FbGVtZW50c0NoYW5nZXMoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZU9uRWxlbWVudHNDaGFuZ2VzKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCBkZWJvdW5jZVRpbWUoMjApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgUmVkcmF3Q29ubmVjdGlvbnNSZXF1ZXN0KCkpO1xuXG4gICAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZkxvYWRlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5jaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0Tm9kZXNSZWN0KCk6IElSZWN0IHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldEV4dGVybmFsTm9kZXNSZWN0UmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3Rpb24oKTogRlNlbGVjdGlvbkNoYW5nZUV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZDxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KG5ldyBHZXRTZWxlY3Rpb25SZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIGdldFBvc2l0aW9uSW5GbG93KHBvc2l0aW9uOiBJUG9pbnQpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IEdldFBvc2l0aW9uSW5GbG93UmVxdWVzdChwb3NpdGlvbikpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBTZWxlY3RBbGxSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdChub2Rlczogc3RyaW5nW10sIGNvbm5lY3Rpb25zOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNlbGVjdFJlcXVlc3Qobm9kZXMsIGNvbm5lY3Rpb25zKSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgQ2xlYXJTZWxlY3Rpb25SZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkRlZmluaXRpb25zXVwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWJhY2tncm91bmRcIj48L25nLWNvbnRlbnQ+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1saW5lLWFsaWdubWVudFwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNhbnZhc1wiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmLXNlbGVjdGlvbi1hcmVhXCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtbWluaS1tYXBcIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -7,7 +7,8 @@ export declare class FConnectionDragHandleComponent implements IHasHostElement {
7
7
  readonly class: string;
8
8
  get hostElement(): SVGCircleElement;
9
9
  constructor(elementReference: ElementRef<SVGCircleElement>);
10
- redraw(point: IPoint): void;
10
+ redraw(start: IPoint, end: IPoint): void;
11
+ private calculateCircleCenter;
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionDragHandleComponent, never>;
12
13
  static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionDragHandleComponent, "circle[f-connection-drag-handle]", never, {}, {}, never, never, false, never>;
13
14
  }
@@ -27,6 +27,8 @@ export declare class FDraggableDirective extends FDraggableBase implements OnIni
27
27
  onPointerDown(event: IPointerEvent): boolean;
28
28
  protected prepareDragSequence(event: IPointerEvent): void;
29
29
  protected onSelect(event: Event): void;
30
+ private isTargetItemExternal;
31
+ private isExternalItem;
30
32
  onPointerMove(event: IPointerEvent): void;
31
33
  onPointerUp(event: IPointerEvent): void;
32
34
  protected finalizeDragSequence(): void;
@@ -1324,9 +1324,6 @@ class CreateConnectionDragHandler {
1324
1324
  this.move(new Point(0, 0));
1325
1325
  }
1326
1326
  move(difference) {
1327
- console.log(difference);
1328
- console.log(JSON.stringify(this.onPointerDownToConnectorRect));
1329
- console.log(JSON.stringify(this.onPointerDownToConnectorRect.addPoint(difference)));
1330
1327
  const line = this.fMediator.send(new GetConnectionLineRequest(this.onPointerDownFromConnectorRect, this.onPointerDownToConnectorRect.addPoint(difference), this.connection.fBehavior, this.outputSide, EFConnectableSide.TOP));
1331
1328
  this.connection.setLine(line.point1, this.outputSide, line.point2, EFConnectableSide.TOP);
1332
1329
  this.connection.redraw();
@@ -2074,10 +2071,18 @@ class FConnectionDragHandleComponent {
2074
2071
  constructor(elementReference) {
2075
2072
  this.elementReference = elementReference;
2076
2073
  }
2077
- redraw(point) {
2074
+ redraw(start, end) {
2075
+ const point = this.calculateCircleCenter(start, end, 8);
2078
2076
  this.hostElement.setAttribute('cx', point.x.toString());
2079
2077
  this.hostElement.setAttribute('cy', point.y.toString());
2080
2078
  }
2079
+ calculateCircleCenter(start, end, radius) {
2080
+ const direction = { x: end.x - start.x, y: end.y - start.y };
2081
+ const length = Math.sqrt(direction.x * direction.x + direction.y * direction.y);
2082
+ const unitDirection = { x: direction.x / length, y: direction.y / length };
2083
+ const scaledDirection = { x: unitDirection.x * radius, y: unitDirection.y * radius };
2084
+ return { x: end.x - scaledDirection.x, y: end.y - scaledDirection.y };
2085
+ }
2081
2086
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FConnectionDragHandleComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2082
2087
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]", host: { properties: { "class": "class" } }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2083
2088
  }
@@ -2164,7 +2169,7 @@ function getMarkerEndId(fConnectionId) {
2164
2169
  return sanitizeElementId(`f-connection-marker-end-${fConnectionId}`);
2165
2170
  }
2166
2171
  function getMarkerSelectedStartId(fConnectionId) {
2167
- return sanitizeElementId(`'f-connection-selected-marker-start-${fConnectionId}`);
2172
+ return sanitizeElementId(`f-connection-selected-marker-start-${fConnectionId}`);
2168
2173
  }
2169
2174
  function getMarkerSelectedEndId(fConnectionId) {
2170
2175
  return sanitizeElementId(`f-connection-selected-marker-end-${fConnectionId}`);
@@ -2374,7 +2379,7 @@ class FConnectionBase extends MIXIN_BASE$1 {
2374
2379
  this.fPath.setPath(this.path);
2375
2380
  this.fSelection.setPath(this.path);
2376
2381
  this.fGradient.redraw(this.line);
2377
- this.fDragHandle.redraw(this.line.point2);
2382
+ this.fDragHandle.redraw(this.line.point1, this.line.point2);
2378
2383
  this.fTextComponent.redraw(this.line);
2379
2384
  }
2380
2385
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FConnectionBase, deps: [{ token: i0.ElementRef }, { token: FConnectionFactory }], target: i0.ɵɵFactoryTarget.Directive });
@@ -2845,6 +2850,9 @@ let ReassignConnectionPreparationExecution = class ReassignConnectionPreparation
2845
2850
  }
2846
2851
  handle(request) {
2847
2852
  const connectionToReassign = this.getConnectionHandler(this.getDragHandleElement(request.event.getPosition()));
2853
+ if (connectionToReassign.fDraggingDisabled) {
2854
+ return;
2855
+ }
2848
2856
  this.fMediator.send(new UpdateItemLayerRequest(connectionToReassign, this.fComponentsStore.fCanvas.fConnectionsContainer.nativeElement));
2849
2857
  this.fDraggableDataContext.onPointerDownScale = this.transform.scale;
2850
2858
  this.fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition())
@@ -4264,12 +4272,24 @@ class FDraggableDirective extends FDraggableBase {
4264
4272
  }
4265
4273
  }
4266
4274
  onSelect(event) {
4267
- const isTargetNotHtml = event.constructor.name === 'Event';
4268
- const target = isTargetNotHtml ? event.target.parentNode : event.target;
4269
- if (target && isExternalItem(target)) {
4275
+ if (this.isTargetItemExternal(event)) {
4270
4276
  event.preventDefault();
4271
4277
  }
4272
4278
  }
4279
+ isTargetItemExternal(event) {
4280
+ let isTargetItemExternal = this.isExternalItem(event.target);
4281
+ let isTargetParentItemExternal = this.isExternalItem(event.target.parentNode);
4282
+ return isTargetItemExternal || isTargetParentItemExternal;
4283
+ }
4284
+ isExternalItem(target) {
4285
+ let result = false;
4286
+ try {
4287
+ result = isExternalItem(target);
4288
+ }
4289
+ catch (e) {
4290
+ }
4291
+ return result;
4292
+ }
4273
4293
  onPointerMove(event) {
4274
4294
  const pointerPositionInCanvas = Point.fromPoint(event.getPosition()).elementTransform(this.hostElement);
4275
4295
  const difference = pointerPositionInCanvas.div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
@@ -4470,12 +4490,38 @@ class RoundedRect {
4470
4490
  return this.setRadiusFromElement(new RoundedRect(x, y, width, height), element);
4471
4491
  }
4472
4492
  static setRadiusFromElement(rect, element) {
4473
- rect.radius1 = parseFloat(element.style.borderTopLeftRadius) || 0;
4474
- rect.radius2 = parseFloat(element.style.borderTopRightRadius) || 0;
4475
- rect.radius3 = parseFloat(element.style.borderBottomRightRadius) || 0;
4476
- rect.radius4 = parseFloat(element.style.borderBottomLeftRadius) || 0;
4493
+ const data = getComputedStyle(element);
4494
+ rect.radius1 = this.convertToPixels(data.borderTopLeftRadius, element.clientWidth, element.clientHeight, data.fontSize) || 0;
4495
+ rect.radius2 = this.convertToPixels(data.borderTopRightRadius, element.clientWidth, element.clientHeight, data.fontSize) || 0;
4496
+ rect.radius3 = this.convertToPixels(data.borderBottomRightRadius, element.clientWidth, element.clientHeight, data.fontSize) || 0;
4497
+ rect.radius4 = this.convertToPixels(data.borderBottomLeftRadius, element.clientWidth, element.clientHeight, data.fontSize) || 0;
4477
4498
  return rect;
4478
4499
  }
4500
+ static convertToPixels(value, clientWidth, clientHeight, fontSize) {
4501
+ if (value.endsWith('px')) {
4502
+ return parseFloat(value);
4503
+ }
4504
+ else if (value.endsWith('%')) {
4505
+ const percentage = parseFloat(value) / 100;
4506
+ return Math.max(clientWidth, clientHeight) * percentage;
4507
+ }
4508
+ else if (value.endsWith('em')) {
4509
+ return parseFloat(value) * parseFloat(fontSize);
4510
+ }
4511
+ else if (value.endsWith('rem')) {
4512
+ return parseFloat(value) * parseFloat(getComputedStyle(document.documentElement).fontSize);
4513
+ }
4514
+ else if (value.endsWith('vh')) {
4515
+ const vh = window.innerHeight / 100;
4516
+ return parseFloat(value) * vh;
4517
+ }
4518
+ else if (value.endsWith('vw')) {
4519
+ const vw = window.innerWidth / 100;
4520
+ return parseFloat(value) * vw;
4521
+ }
4522
+ return parseFloat(value) || 0;
4523
+ }
4524
+ ;
4479
4525
  addPoint(point) {
4480
4526
  const copy = RoundedRect.fromRoundedRect(this);
4481
4527
  copy.x += point.x;
@@ -4836,6 +4882,36 @@ const positionFixedOutbound = {
4836
4882
  },
4837
4883
  };
4838
4884
 
4885
+ class GetExternalNodesRectRequest {
4886
+ }
4887
+
4888
+ let GetExternalNodesRectExecution = class GetExternalNodesRectExecution {
4889
+ fComponentsStore;
4890
+ constructor(fComponentsStore) {
4891
+ this.fComponentsStore = fComponentsStore;
4892
+ }
4893
+ handle(request) {
4894
+ return RectExtensions.union(this.getNodesRects());
4895
+ }
4896
+ getNodesRects() {
4897
+ return this.getNodes().map((x) => {
4898
+ const rect = RectExtensions.fromElement(x.hostElement);
4899
+ return RectExtensions.initialize(x.position.x, x.position.y, rect.width, rect.height);
4900
+ });
4901
+ }
4902
+ getNodes() {
4903
+ return this.fComponentsStore.fNodes;
4904
+ }
4905
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GetExternalNodesRectExecution, deps: [{ token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
4906
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GetExternalNodesRectExecution });
4907
+ };
4908
+ GetExternalNodesRectExecution = __decorate([
4909
+ FExecutionRegister(GetExternalNodesRectRequest)
4910
+ ], GetExternalNodesRectExecution);
4911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GetExternalNodesRectExecution, decorators: [{
4912
+ type: Injectable
4913
+ }], ctorParameters: () => [{ type: FComponentsStore }] });
4914
+
4839
4915
  class GetInputRectInFlowRequest {
4840
4916
  fInputId;
4841
4917
  constructor(fInputId) {
@@ -4885,11 +4961,13 @@ let GetNodesRectExecution = class GetNodesRectExecution {
4885
4961
  this.fComponentsStore = fComponentsStore;
4886
4962
  }
4887
4963
  handle(request) {
4888
- const fNodes = this.fComponentsStore.fNodes;
4889
- const rects = fNodes.map((x) => {
4890
- return RectExtensions.fromElement(x.hostElement);
4891
- });
4892
- return RectExtensions.union(rects);
4964
+ return RectExtensions.union(this.getNodesRects());
4965
+ }
4966
+ getNodesRects() {
4967
+ return this.getNodes().map((x) => RectExtensions.fromElement(x.hostElement));
4968
+ }
4969
+ getNodes() {
4970
+ return this.fComponentsStore.fNodes;
4893
4971
  }
4894
4972
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GetNodesRectExecution, deps: [{ token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
4895
4973
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GetNodesRectExecution });
@@ -5377,6 +5455,7 @@ const COMMON_PROVIDERS = [
5377
5455
  GetCanBeSelectedItemsExecution,
5378
5456
  GetConnectionLineExecution,
5379
5457
  GetElementRectInFlowExecution,
5458
+ GetExternalNodesRectExecution,
5380
5459
  GetNodesRectExecution,
5381
5460
  GetOutputRectInFlowExecution,
5382
5461
  GetPositionInFlowExecution,
@@ -6285,7 +6364,7 @@ class FFlowComponent extends FFlowBase {
6285
6364
  this.isLoaded = false;
6286
6365
  }
6287
6366
  getNodesRect() {
6288
- return this.fMediator.send(new GetNodesRectRequest());
6367
+ return this.fMediator.send(new GetExternalNodesRectRequest());
6289
6368
  }
6290
6369
  getSelection() {
6291
6370
  return this.fMediator.send(new GetSelectionRequest());
@@ -6382,5 +6461,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
6382
6461
  * Generated bundle index. Do not edit.
6383
6462
  */
6384
6463
 
6385
- export { CANVAS_MOVE_FINALIZE_PROVIDERS, CANVAS_MOVE_PREPARATION_PROVIDERS, CANVAS_PROVIDERS, COMMON_PROVIDERS, CONNECTIONS_PROVIDERS, CONNECTION_GRADIENT, CONNECTION_PATH, CONNECTION_TEXT, CREATE_CONNECTION_DRAG_HANDLER_PROVIDERS, CREATE_CONNECTION_FINALIZE_PROVIDERS, CREATE_CONNECTION_FROM_OUTLET_PREPARATION_PROVIDERS, CREATE_CONNECTION_FROM_OUTPUT_PREPARATION_PROVIDERS, CREATE_CONNECTION_PREPARATION_PROVIDERS, CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS, CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest, CanvasDragHandler, CanvasMoveFinalizeExecution, CanvasMoveFinalizeRequest, CanvasMoveFinalizeValidator, CanvasMovePreparationExecution, CanvasMovePreparationRequest, CanvasMovePreparationValidator, ClearSelectionExecution, ClearSelectionRequest, ConnectionDragHandler, ConnectionSourceDragHandler, ConnectionTargetDragHandler, CreateConnectionDragHandler, CreateConnectionDragHandlerExecution, CreateConnectionDragHandlerRequest, CreateConnectionFinalizeExecution, CreateConnectionFinalizeRequest, CreateConnectionFinalizeValidator, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationRequest, CreateConnectionFromOutputPreparationValidator, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateConnectionPreparationExecution, CreateConnectionPreparationRequest, CreateConnectionPreparationValidator, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFConnectorShape, EFDraggableType, EFMarkerType, EFResizeHandleType, EXTERNAL_ITEM_FINALIZE_PROVIDERS, EXTERNAL_ITEM_PREPARATION_PROVIDERS, EXTERNAL_ITEM_PROVIDERS, ExternalItemDragHandler, ExternalItemFinalizeExecution, ExternalItemFinalizeRequest, ExternalItemFinalizeValidator, ExternalItemPreparationExecution, ExternalItemPreparationRequest, ExternalItemPreparationValidator, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FConnectorShapeExtensions, FCreateConnectionEvent, FCreateNodeEvent, FDragHandleDirective, FDraggableBase, FDraggableDataContext, FDraggableDirective, FExecutionRegister, FExternalItemBase, FExternalItemDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowMediator, FFlowModule, FLineAlignmentBase, FLineAlignmentComponent, FMarkerBase, FMarkerDirective, FNodeBase, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FReassignConnectionEvent, FRectPatternComponent, FResizeHandleDirective, FResizeObserver, FRotateHandleDirective, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FStraightPathBuilder, FValidatorRegister, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CANVAS, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_DRAG_HANDLE_CLASS, F_CONNECTION_IDENTIFIERS, F_CONNECTION_PROVIDERS, F_CONNECTORS_PROVIDERS, F_DRAGGABLE, F_DRAGGABLE_PROVIDERS, F_DRAG_HANDLE, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT, F_LINE_ALIGNMENT_PROVIDERS, F_MARKER, F_NODE, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_RESIZE_HANDLE, F_SELECTED_CLASS, F_SELECTION_AREA, F_SELECTION_AREA_PROVIDERS, F_ZOOM, GET_CAN_BE_CONNECTED_OUTPUT_BY_OUTLET_PROVIDERS, GET_INPUT_UNDER_POINTER_PROVIDERS, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletRequest, GetCanBeConnectedOutputByOutletValidator, GetCanBeSelectedItemsExecution, GetConnectionHandler, GetConnectionLineExecution, GetConnectionLineRequest, GetElementRectInFlowExecution, GetElementRectInFlowRequest, GetIncomingConnectionsHandler, GetInputRectInFlowExecution, GetInputRectInFlowRequest, GetInputRectInFlowResponse, GetInputUnderPointerExecution, GetInputUnderPointerRequest, GetInputUnderPointerValidator, GetNodesRectExecution, GetNodesRectRequest, GetOutgoingConnectionsHandler, GetOutputRectInFlowExecution, GetOutputRectInFlowRequest, GetOutputRectInFlowResponse, GetPositionInFlowExecution, GetPositionInFlowRequest, GetSelectionExecution, GetSelectionRequest, IntersectionFinder, IsConnectionUnderNodeExecution, LineElement, LineService, MOUSE_EVENT_IGNORE_TIME, NODE_MOVE_FINALIZE_PROVIDERS, NODE_MOVE_PREPARATION_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_FINALIZE_PROVIDERS, NODE_RESIZE_PREPARATION_PROVIDERS, NODE_RESIZE_PROVIDERS, NearestCoordinateFinder, NodeDragHandler, NodeMoveFinalizeExecution, NodeMoveFinalizeRequest, NodeMoveFinalizeValidator, NodeMovePreparationExecution, NodeMovePreparationRequest, NodeMovePreparationValidator, NodeResizeDragHandler, NodeResizeFinalizeExecution, NodeResizeFinalizeRequest, NodeResizeFinalizeValidator, NodeResizePreparationExecution, NodeResizePreparationRequest, NodeResizePreparationValidator, Pipeline, REASSIGN_CONNECTION_FINALIZE_PROVIDERS, REASSIGN_CONNECTION_PREPARATION_PROVIDERS, ReassignConnectionDragHandler, ReassignConnectionFinalizeExecution, ReassignConnectionFinalizeRequest, ReassignConnectionFinalizeValidator, ReassignConnectionPreparationExecution, ReassignConnectionPreparationRequest, ReassignConnectionPreparationValidator, RedrawConnectionsExecution, RedrawConnectionsRequest, RoundedRect, SELECTION_AREA_FINALIZE_PROVIDERS, SELECTION_AREA_PREPARATION_PROVIDERS, SELECTION_AREA_PROVIDERS, SINGLE_SELECT_PROVIDERS, SelectAllExecution, SelectAllRequest, SelectAndUpdateNodeLayerExecution, SelectAndUpdateNodeLayerRequest, SelectExecution, SelectRequest, SelectionAreaDragHandle, SelectionAreaFinalizeExecution, SelectionAreaFinalizeRequest, SelectionAreaFinalizeValidator, SelectionAreaPreparationExecution, SelectionAreaPreparationRequest, SelectionAreaPreparationValidator, SingleSelectExecution, SingleSelectRequest, SingleSelectValidator, UpdateItemLayerExecution, UpdateItemLayerRequest, castToEnum, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, getValueFromDataAttr, isElementWithClass, isExternalItem, isNode, isNodeInput, isNodeOutlet, isNodeOutput, mixinChangeConnectionSelection, mixinChangeConnectionVisibility };
6464
+ export { CANVAS_MOVE_FINALIZE_PROVIDERS, CANVAS_MOVE_PREPARATION_PROVIDERS, CANVAS_PROVIDERS, COMMON_PROVIDERS, CONNECTIONS_PROVIDERS, CONNECTION_GRADIENT, CONNECTION_PATH, CONNECTION_TEXT, CREATE_CONNECTION_DRAG_HANDLER_PROVIDERS, CREATE_CONNECTION_FINALIZE_PROVIDERS, CREATE_CONNECTION_FROM_OUTLET_PREPARATION_PROVIDERS, CREATE_CONNECTION_FROM_OUTPUT_PREPARATION_PROVIDERS, CREATE_CONNECTION_PREPARATION_PROVIDERS, CREATE_MOVE_NODE_DRAG_MODEL_FROM_SELECTION_PROVIDERS, CalculateCenterBetweenPointsHandler, CalculateCenterBetweenPointsRequest, CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, CalculateConnectorConnectableSideHandler, CalculateConnectorConnectableSideRequest, CanvasDragHandler, CanvasMoveFinalizeExecution, CanvasMoveFinalizeRequest, CanvasMoveFinalizeValidator, CanvasMovePreparationExecution, CanvasMovePreparationRequest, CanvasMovePreparationValidator, ClearSelectionExecution, ClearSelectionRequest, ConnectionDragHandler, ConnectionSourceDragHandler, ConnectionTargetDragHandler, CreateConnectionDragHandler, CreateConnectionDragHandlerExecution, CreateConnectionDragHandlerRequest, CreateConnectionFinalizeExecution, CreateConnectionFinalizeRequest, CreateConnectionFinalizeValidator, CreateConnectionFromOutletPreparationExecution, CreateConnectionFromOutletPreparationRequest, CreateConnectionFromOutputPreparationExecution, CreateConnectionFromOutputPreparationRequest, CreateConnectionFromOutputPreparationValidator, CreateConnectionMarkersExecution, CreateConnectionMarkersRequest, CreateConnectionPreparationExecution, CreateConnectionPreparationRequest, CreateConnectionPreparationValidator, CreateMoveNodesDragModelFromSelectionExecution, CreateMoveNodesDragModelFromSelectionRequest, EFConnectableSide, EFConnectionBehavior, EFConnectionType, EFConnectorShape, EFDraggableType, EFMarkerType, EFResizeHandleType, EXTERNAL_ITEM_FINALIZE_PROVIDERS, EXTERNAL_ITEM_PREPARATION_PROVIDERS, EXTERNAL_ITEM_PROVIDERS, ExternalItemDragHandler, ExternalItemFinalizeExecution, ExternalItemFinalizeRequest, ExternalItemFinalizeValidator, ExternalItemPreparationExecution, ExternalItemPreparationRequest, ExternalItemPreparationValidator, FBackgroundBase, FBackgroundComponent, FBezierPathBuilder, FCanvasBase, FCanvasChangeEvent, FCanvasComponent, FCirclePatternComponent, FComponentsStore, FConnectionBase, FConnectionCenterDirective, FConnectionComponent, FConnectionDragHandleComponent, FConnectionFactory, FConnectionForCreateComponent, FConnectionGradientComponent, FConnectionPathComponent, FConnectionSelectionComponent, FConnectionTextComponent, FConnectionTextPathDirective, FConnectorBase, FConnectorShapeExtensions, FCreateConnectionEvent, FCreateNodeEvent, FDragHandleDirective, FDraggableBase, FDraggableDataContext, FDraggableDirective, FExecutionRegister, FExternalItemBase, FExternalItemDirective, FExternalItemService, FFlowBase, FFlowComponent, FFlowMediator, FFlowModule, FLineAlignmentBase, FLineAlignmentComponent, FMarkerBase, FMarkerDirective, FNodeBase, FNodeDirective, FNodeInputBase, FNodeInputDirective, FNodeOutletBase, FNodeOutletDirective, FNodeOutputBase, FNodeOutputDirective, FReassignConnectionEvent, FRectPatternComponent, FResizeHandleDirective, FResizeObserver, FRotateHandleDirective, FSegmentPathBuilder, FSelectionAreaBase, FSelectionAreaComponent, FSelectionChangeEvent, FStraightPathBuilder, FValidatorRegister, FZoomBase, FZoomDirective, F_BACKGROUND, F_BACKGROUND_PATTERN, F_BACKGROUND_PROVIDERS, F_CANVAS, F_CANVAS_PROVIDERS, F_CONNECTION_BUILDERS, F_CONNECTION_DRAG_HANDLE_CLASS, F_CONNECTION_IDENTIFIERS, F_CONNECTION_PROVIDERS, F_CONNECTORS_PROVIDERS, F_DRAGGABLE, F_DRAGGABLE_PROVIDERS, F_DRAG_HANDLE, F_EXTERNAL_ITEM, F_EXTERNAL_ITEM_PROVIDERS, F_FLOW, F_FLOW_PROVIDERS, F_LINE_ALIGNMENT, F_LINE_ALIGNMENT_PROVIDERS, F_MARKER, F_NODE, F_NODE_INPUT, F_NODE_OUTLET, F_NODE_OUTPUT, F_NODE_PROVIDERS, F_RESIZE_HANDLE, F_SELECTED_CLASS, F_SELECTION_AREA, F_SELECTION_AREA_PROVIDERS, F_ZOOM, GET_CAN_BE_CONNECTED_OUTPUT_BY_OUTLET_PROVIDERS, GET_INPUT_UNDER_POINTER_PROVIDERS, GetCanBeConnectedOutputByOutletExecution, GetCanBeConnectedOutputByOutletRequest, GetCanBeConnectedOutputByOutletValidator, GetCanBeSelectedItemsExecution, GetConnectionHandler, GetConnectionLineExecution, GetConnectionLineRequest, GetElementRectInFlowExecution, GetElementRectInFlowRequest, GetExternalNodesRectExecution, GetExternalNodesRectRequest, GetIncomingConnectionsHandler, GetInputRectInFlowExecution, GetInputRectInFlowRequest, GetInputRectInFlowResponse, GetInputUnderPointerExecution, GetInputUnderPointerRequest, GetInputUnderPointerValidator, GetNodesRectExecution, GetNodesRectRequest, GetOutgoingConnectionsHandler, GetOutputRectInFlowExecution, GetOutputRectInFlowRequest, GetOutputRectInFlowResponse, GetPositionInFlowExecution, GetPositionInFlowRequest, GetSelectionExecution, GetSelectionRequest, IntersectionFinder, IsConnectionUnderNodeExecution, LineElement, LineService, MOUSE_EVENT_IGNORE_TIME, NODE_MOVE_FINALIZE_PROVIDERS, NODE_MOVE_PREPARATION_PROVIDERS, NODE_PROVIDERS, NODE_RESIZE_FINALIZE_PROVIDERS, NODE_RESIZE_PREPARATION_PROVIDERS, NODE_RESIZE_PROVIDERS, NearestCoordinateFinder, NodeDragHandler, NodeMoveFinalizeExecution, NodeMoveFinalizeRequest, NodeMoveFinalizeValidator, NodeMovePreparationExecution, NodeMovePreparationRequest, NodeMovePreparationValidator, NodeResizeDragHandler, NodeResizeFinalizeExecution, NodeResizeFinalizeRequest, NodeResizeFinalizeValidator, NodeResizePreparationExecution, NodeResizePreparationRequest, NodeResizePreparationValidator, Pipeline, REASSIGN_CONNECTION_FINALIZE_PROVIDERS, REASSIGN_CONNECTION_PREPARATION_PROVIDERS, ReassignConnectionDragHandler, ReassignConnectionFinalizeExecution, ReassignConnectionFinalizeRequest, ReassignConnectionFinalizeValidator, ReassignConnectionPreparationExecution, ReassignConnectionPreparationRequest, ReassignConnectionPreparationValidator, RedrawConnectionsExecution, RedrawConnectionsRequest, RoundedRect, SELECTION_AREA_FINALIZE_PROVIDERS, SELECTION_AREA_PREPARATION_PROVIDERS, SELECTION_AREA_PROVIDERS, SINGLE_SELECT_PROVIDERS, SelectAllExecution, SelectAllRequest, SelectAndUpdateNodeLayerExecution, SelectAndUpdateNodeLayerRequest, SelectExecution, SelectRequest, SelectionAreaDragHandle, SelectionAreaFinalizeExecution, SelectionAreaFinalizeRequest, SelectionAreaFinalizeValidator, SelectionAreaPreparationExecution, SelectionAreaPreparationRequest, SelectionAreaPreparationValidator, SingleSelectExecution, SingleSelectRequest, SingleSelectValidator, UpdateItemLayerExecution, UpdateItemLayerRequest, castToEnum, getExternalItem, getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, getValueFromDataAttr, isElementWithClass, isExternalItem, isNode, isNodeInput, isNodeOutlet, isNodeOutput, mixinChangeConnectionSelection, mixinChangeConnectionVisibility };
6386
6465
  //# sourceMappingURL=foblex-flow.mjs.map