@foblex/flow 1.5.2 → 1.5.3

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.
@@ -4,13 +4,15 @@ import { EFConnectionBehavior } from '../common';
4
4
  import { EFConnectionType } from '../common';
5
5
  import { F_CONNECTION } from '../common/f-connection.injection-token';
6
6
  import { F_MARKER } from '../f-marker';
7
+ import { FConnectionCenterDirective } from '../f-connection-center';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "../../f-components-store";
9
- import * as i2 from "../common/f-drag-handle/f-connection-drag-handle.component";
10
- import * as i3 from "../common/f-gradient/f-connection-gradient.component";
11
- import * as i4 from "../common/f-path/f-connection-path.component";
12
- import * as i5 from "../common/f-connection-text/f-connection-text.component";
13
- import * as i6 from "../common/f-selection/f-connection-selection.component";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "../common/f-drag-handle/f-connection-drag-handle.component";
12
+ import * as i4 from "../common/f-gradient/f-connection-gradient.component";
13
+ import * as i5 from "../common/f-path/f-connection-path.component";
14
+ import * as i6 from "../common/f-connection-text/f-connection-text.component";
15
+ import * as i7 from "../common/f-selection/f-connection-selection.component";
14
16
  let uniqueId = 0;
15
17
  export class FConnectionComponent extends FConnectionBase {
16
18
  set fBehavior(value) {
@@ -46,7 +48,7 @@ export class FConnectionComponent extends FConnectionBase {
46
48
  this.fComponentsStore.removeConnection(this);
47
49
  }
48
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionComponent, deps: [{ token: i0.ElementRef }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionComponent, selector: "f-connection", inputs: { fConnectionId: "fConnectionId", fText: "fText", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { properties: { "attr.id": "fConnectionId", "class.f-connection-disabled": "disabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i2.FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: i3.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i4.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i5.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionComponent, selector: "f-connection", inputs: { fConnectionId: "fConnectionId", fText: "fText", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { properties: { "attr.id": "fConnectionId", "class.f-connection-disabled": "disabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i7.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
52
  }
51
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionComponent, decorators: [{
52
54
  type: Component,
@@ -54,7 +56,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
54
56
  '[attr.id]': 'fConnectionId',
55
57
  class: "f-component f-connection",
56
58
  '[class.f-connection-disabled]': 'disabled',
57
- }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
59
+ }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
58
60
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }], propDecorators: { fConnectionId: [{
59
61
  type: Input
60
62
  }], fText: [{
@@ -101,5 +103,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
101
103
  }], fConnectionCenter: [{
102
104
  type: ViewChild,
103
105
  args: ['fConnectionCenter', { static: true }]
106
+ }], fConnectionCenters: [{
107
+ type: ContentChildren,
108
+ args: [FConnectionCenterDirective, { descendants: true }]
104
109
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxlQUFlLEVBRTFCLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHdCQUF3QixFQUFFLG9CQUFvQixFQUM5QyxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsOEJBQThCLEVBQzlCLDZCQUE2QixHQUc5QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztBQUVwRCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFlekIsTUFBTSxPQUFPLG9CQUNULFNBQVEsZUFBZTtJQW9CekIsSUFDb0IsU0FBUyxDQUFDLEtBQTJCO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFvQixTQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFDb0IsS0FBSyxDQUFDLEtBQXVCO1FBQy9DLElBQUks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QUFFO2dCQUkxQyxjQUFjO3NCQUQ3QixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTVCLGlCQUFpQjtzQkFEaEMsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGNhc3RUb0Nvbm5lY3Rpb25CZWhhdmlvciwgY2FzdFRvQ29ubmVjdGlvblR5cGUsXG4gIENPTk5FQ1RJT05fR1JBRElFTlQsXG4gIENPTk5FQ1RJT05fUEFUSCxcbiAgQ09OTkVDVElPTl9URVhULFxuICBGQ29ubmVjdGlvbkJhc2UsXG4gIEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCxcbiAgRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQsXG4gIElDb25uZWN0aW9uR3JhZGllbnQsXG4gIElDb25uZWN0aW9uUGF0aCwgSUNvbm5lY3Rpb25UZXh0LFxufSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZfTUFSS0VSLCBGTWFya2VyQmFzZSB9IGZyb20gJy4uL2YtbWFya2VyJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1jb25uZWN0aW9uXCIsXG4gIGV4cG9ydEFzOiAnZkNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZi1jb25uZWN0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogWyBcIi4vZi1jb25uZWN0aW9uLmNvbXBvbmVudC5zY3NzXCIgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2ZDb25uZWN0aW9uSWQnLFxuICAgIGNsYXNzOiBcImYtY29tcG9uZW50IGYtY29ubmVjdGlvblwiLFxuICAgICdbY2xhc3MuZi1jb25uZWN0aW9uLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfQ09OTkVDVElPTiwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uQ29tcG9uZW50IH0gXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25Db21wb25lbnRcbiAgICBleHRlbmRzIEZDb25uZWN0aW9uQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JZDogc3RyaW5nID0gYGYtY29ubmVjdGlvbi0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTdGFydENvbG9yOiBzdHJpbmcgPSAnYmxhY2snO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRW5kQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRJZCE6IHN0cmluZztcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZklucHV0SWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBjYXN0VG9Db25uZWN0aW9uQmVoYXZpb3IgfSlcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmQmVoYXZpb3IodmFsdWU6IEVGQ29ubmVjdGlvbkJlaGF2aW9yKSB7XG4gICAgdGhpcy5fYmVoYXZpb3IgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZkJlaGF2aW9yKCk6IEVGQ29ubmVjdGlvbkJlaGF2aW9yIHtcbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3I7XG4gIH1cblxuICBwcml2YXRlIF9iZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3IgPSBFRkNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRDtcblxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY2FzdFRvQ29ubmVjdGlvblR5cGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmVHlwZSh2YWx1ZTogRUZDb25uZWN0aW9uVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZlR5cGUoKTogRUZDb25uZWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBwcml2YXRlIF90eXBlOiBFRkNvbm5lY3Rpb25UeXBlID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdkZWZzJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZEZWZzITogRWxlbWVudFJlZjxTVkdEZWZzRWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGX01BUktFUiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk1hcmtlcnMhOiBRdWVyeUxpc3Q8Rk1hcmtlckJhc2U+O1xuXG4gIEBWaWV3Q2hpbGQoQ09OTkVDVElPTl9QQVRILCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlBhdGghOiBJQ29ubmVjdGlvblBhdGg7XG5cbiAgQFZpZXdDaGlsZChDT05ORUNUSU9OX0dSQURJRU5ULCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkdyYWRpZW50ITogSUNvbm5lY3Rpb25HcmFkaWVudDtcblxuICBAVmlld0NoaWxkKEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnSGFuZGxlITogRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uITogRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChDT05ORUNUSU9OX1RFWFQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dENvbXBvbmVudCE6IElDb25uZWN0aW9uVGV4dDtcblxuICBAVmlld0NoaWxkKCdmQ29ubmVjdGlvbkNlbnRlcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbkNlbnRlciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgYm91bmRpbmdFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZlBhdGguaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWZlcmVuY2UpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5hZGRDb25uZWN0aW9uKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5yZW1vdmVDb25uZWN0aW9uKHRoaXMpO1xuICB9XG59XG4iLCI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlOyBkaXNwbGF5OiBibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcIj5cbiAgICA8ZGVmcyAjZGVmcz48L2RlZnM+XG4gICAgPGcgY2xhc3M9XCJmLWNvbm5lY3Rpb24tZ3JvdXBcIj5cbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGZDb25uZWN0aW9uR3JhZGllbnQ+PC9saW5lYXJHcmFkaWVudD5cbiAgICAgICAgPHBhdGggZkNvbm5lY3Rpb25TZWxlY3Rpb24gW2F0dHIuZF09XCJwYXRoXCI+PC9wYXRoPlxuICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxwYXRoIGYtY29ubmVjdGlvbi1wYXRoXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kXT1cInBhdGhcIj5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgICAgIDxjaXJjbGUgZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICAgIDwvZz5cbiAgICAgICAgPHRleHQgZi1jb25uZWN0aW9uLXRleHQ+PC90ZXh0PlxuICAgIDwvZz5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3N2Zz5cbjxkaXYgI2ZDb25uZWN0aW9uQ2VudGVyIGNsYXNzPVwiZi1jb25uZWN0aW9uLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmQ29ubmVjdGlvbkNlbnRlcl1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxlQUFlLEVBRTFCLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHdCQUF3QixFQUFFLG9CQUFvQixFQUM5QyxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsOEJBQThCLEVBQzlCLDZCQUE2QixHQUc5QixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFFcEUsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBZXpCLE1BQU0sT0FBTyxvQkFDVCxTQUFRLGVBQWU7SUFvQnpCLElBQ29CLFNBQVMsQ0FBQyxLQUEyQjtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBb0IsU0FBUztRQUMzQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFD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QkFJM0MsVUFBVTtzQkFEekIsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTFDLGNBQWM7c0JBRDdCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJNUIsaUJBQWlCO3NCQURoQyxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekMsa0JBQWtCO3NCQUR4QixlQUFlO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgY2FzdFRvQ29ubmVjdGlvbkJlaGF2aW9yLCBjYXN0VG9Db25uZWN0aW9uVHlwZSxcbiAgQ09OTkVDVElPTl9HUkFESUVOVCxcbiAgQ09OTkVDVElPTl9QQVRILFxuICBDT05ORUNUSU9OX1RFWFQsXG4gIEZDb25uZWN0aW9uQmFzZSxcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50LFxuICBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudCxcbiAgSUNvbm5lY3Rpb25HcmFkaWVudCxcbiAgSUNvbm5lY3Rpb25QYXRoLCBJQ29ubmVjdGlvblRleHQsXG59IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25CZWhhdmlvciB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTiB9IGZyb20gJy4uL2NvbW1vbi9mLWNvbm5lY3Rpb24uaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRl9NQVJLRVIsIEZNYXJrZXJCYXNlIH0gZnJvbSAnLi4vZi1tYXJrZXInO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25DZW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tY2VudGVyJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1jb25uZWN0aW9uXCIsXG4gIGV4cG9ydEFzOiAnZkNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZi1jb25uZWN0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogWyBcIi4vZi1jb25uZWN0aW9uLmNvbXBvbmVudC5zY3NzXCIgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2ZDb25uZWN0aW9uSWQnLFxuICAgIGNsYXNzOiBcImYtY29tcG9uZW50IGYtY29ubmVjdGlvblwiLFxuICAgICdbY2xhc3MuZi1jb25uZWN0aW9uLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfQ09OTkVDVElPTiwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uQ29tcG9uZW50IH0gXSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25Db21wb25lbnRcbiAgICBleHRlbmRzIEZDb25uZWN0aW9uQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JZDogc3RyaW5nID0gYGYtY29ubmVjdGlvbi0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTdGFydENvbG9yOiBzdHJpbmcgPSAnYmxhY2snO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRW5kQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRJZCE6IHN0cmluZztcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZklucHV0SWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBjYXN0VG9Db25uZWN0aW9uQmVoYXZpb3IgfSlcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmQmVoYXZpb3IodmFsdWU6IEVGQ29ubmVjdGlvbkJlaGF2aW9yKSB7XG4gICAgdGhpcy5fYmVoYXZpb3IgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZkJlaGF2aW9yKCk6IEVGQ29ubmVjdGlvbkJlaGF2aW9yIHtcbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3I7XG4gIH1cblxuICBwcml2YXRlIF9iZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3IgPSBFRkNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRDtcblxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogY2FzdFRvQ29ubmVjdGlvblR5cGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmVHlwZSh2YWx1ZTogRUZDb25uZWN0aW9uVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZlR5cGUoKTogRUZDb25uZWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBwcml2YXRlIF90eXBlOiBFRkNvbm5lY3Rpb25UeXBlID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdkZWZzJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZEZWZzITogRWxlbWVudFJlZjxTVkdEZWZzRWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGX01BUktFUiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk1hcmtlcnMhOiBRdWVyeUxpc3Q8Rk1hcmtlckJhc2U+O1xuXG4gIEBWaWV3Q2hpbGQoQ09OTkVDVElPTl9QQVRILCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlBhdGghOiBJQ29ubmVjdGlvblBhdGg7XG5cbiAgQFZpZXdDaGlsZChDT05ORUNUSU9OX0dSQURJRU5ULCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkdyYWRpZW50ITogSUNvbm5lY3Rpb25HcmFkaWVudDtcblxuICBAVmlld0NoaWxkKEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnSGFuZGxlITogRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uITogRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChDT05ORUNUSU9OX1RFWFQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dENvbXBvbmVudCE6IElDb25uZWN0aW9uVGV4dDtcblxuICBAVmlld0NoaWxkKCdmQ29ubmVjdGlvbkNlbnRlcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbkNlbnRlciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRkNvbm5lY3Rpb25DZW50ZXJEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIGZDb25uZWN0aW9uQ2VudGVycyE6IFF1ZXJ5TGlzdDxGQ29ubmVjdGlvbkNlbnRlckRpcmVjdGl2ZT47XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBib3VuZGluZ0VsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mUGF0aC5ob3N0RWxlbWVudDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZmVyZW5jZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmFkZENvbm5lY3Rpb24odGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLnJlbW92ZUNvbm5lY3Rpb24odGhpcyk7XG4gIH1cbn1cbiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHN0eWxlPVwib3ZlcmZsb3c6IHZpc2libGU7IGRpc3BsYXk6IGJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1wiPlxuICAgIDxkZWZzICNkZWZzPjwvZGVmcz5cbiAgICA8ZyBjbGFzcz1cImYtY29ubmVjdGlvbi1ncm91cFwiPlxuICAgICAgICA8bGluZWFyR3JhZGllbnQgZkNvbm5lY3Rpb25HcmFkaWVudD48L2xpbmVhckdyYWRpZW50PlxuICAgICAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICAgIDxnPlxuICAgICAgICAgICAgPHBhdGggZi1jb25uZWN0aW9uLXBhdGhcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiPlxuICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUgcj1cIjhcIj48L2NpcmNsZT5cbiAgICAgICAgPC9nPlxuICAgICAgICA8dGV4dCBmLWNvbm5lY3Rpb24tdGV4dD48L3RleHQ+XG4gICAgPC9nPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3ZnPlxuPGRpdiAjZkNvbm5lY3Rpb25DZW50ZXIgY2xhc3M9XCJmLWNvbm5lY3Rpb24tY2VudGVyXCIgKm5nSWY9XCJmQ29ubmVjdGlvbkNlbnRlcnMubGVuZ3RoXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ2VudGVyXVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -4,13 +4,15 @@ import { EFConnectionBehavior } from '../common';
4
4
  import { EFConnectionType } from '../common';
5
5
  import { F_CONNECTION } from '../common/f-connection.injection-token';
6
6
  import { F_MARKER } from '../f-marker';
7
+ import { FConnectionCenterDirective } from '../f-connection-center';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "../../f-components-store";
9
- import * as i2 from "../common/f-drag-handle/f-connection-drag-handle.component";
10
- import * as i3 from "../common/f-gradient/f-connection-gradient.component";
11
- import * as i4 from "../common/f-path/f-connection-path.component";
12
- import * as i5 from "../common/f-connection-text/f-connection-text.component";
13
- import * as i6 from "../common/f-selection/f-connection-selection.component";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "../common/f-drag-handle/f-connection-drag-handle.component";
12
+ import * as i4 from "../common/f-gradient/f-connection-gradient.component";
13
+ import * as i5 from "../common/f-path/f-connection-path.component";
14
+ import * as i6 from "../common/f-connection-text/f-connection-text.component";
15
+ import * as i7 from "../common/f-selection/f-connection-selection.component";
14
16
  let uniqueId = 0;
15
17
  export class FConnectionForCreateComponent extends FConnectionBase {
16
18
  set fBehavior(value) {
@@ -49,13 +51,13 @@ export class FConnectionForCreateComponent extends FConnectionBase {
49
51
  this.fComponentsStore.fTempConnection = undefined;
50
52
  }
51
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionForCreateComponent, deps: [{ token: i0.ElementRef }, { token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i2.FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: i3.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i4.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i5.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i7.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
55
  }
54
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
55
57
  type: Component,
56
58
  args: [{ selector: "f-connection-for-create", changeDetection: ChangeDetectionStrategy.OnPush, host: {
57
59
  class: "f-component f-connection f-connection-for-create"
58
- }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
60
+ }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
59
61
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }], propDecorators: { fStartColor: [{
60
62
  type: Input
61
63
  }], fEndColor: [{
@@ -92,5 +94,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
92
94
  }], fConnectionCenter: [{
93
95
  type: ViewChild,
94
96
  args: ['fConnectionCenter', { static: true }]
97
+ }], fConnectionCenters: [{
98
+ type: ContentChildren,
99
+ args: [FConnectionCenterDirective, { descendants: true }]
95
100
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBZ0MsU0FBUyxFQUN2RixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQ25FLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsR0FFL0UsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7QUFFcEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBWXpCLE1BQU0sT0FBTyw2QkFDVCxTQUFRLGVBQWU7SUFnQnpCLElBQ29CLFNBQVMsQ0FBQyxLQUEyQjtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBb0IsU0FBUztRQUMzQixPQUFPLElBQUksQ0FBQyxTQUFT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QUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGNhc3RUb0Nvbm5lY3Rpb25CZWhhdmlvciwgY2FzdFRvQ29ubmVjdGlvblR5cGUsIENPTk5FQ1RJT05fR1JBRElFTlQsXG4gIENPTk5FQ1RJT05fUEFUSCwgQ09OTkVDVElPTl9URVhULFxuICBGQ29ubmVjdGlvbkJhc2UsIEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudCwgRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQsIElDb25uZWN0aW9uR3JhZGllbnQsXG4gIElDb25uZWN0aW9uUGF0aCwgSUNvbm5lY3Rpb25UZXh0LFxufSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZfTUFSS0VSLCBGTWFya2VyQmFzZSB9IGZyb20gJy4uL2YtbWFya2VyJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9mLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtY29ubmVjdGlvbi1mb3ItY3JlYXRlLmNvbXBvbmVudC5zY3NzXCIgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogXCJmLWNvbXBvbmVudCBmLWNvbm5lY3Rpb24gZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIlxuICB9LFxuICBwcm92aWRlcnM6IFsgeyBwcm92aWRlOiBGX0NPTk5FQ1RJT04sIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uRm9yQ3JlYXRlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBGQ29ubmVjdGlvbkJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uSWQ6IHN0cmluZyA9IGBmLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTdGFydENvbG9yOiBzdHJpbmcgPSAnYmxhY2snO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRW5kQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRJZCE6IHN0cmluZztcblxuICBwdWJsaWMgb3ZlcnJpZGUgZklucHV0SWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBjYXN0VG9Db25uZWN0aW9uQmVoYXZpb3IgfSlcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmQmVoYXZpb3IodmFsdWU6IEVGQ29ubmVjdGlvbkJlaGF2aW9yKSB7XG4gICAgdGhpcy5fYmVoYXZpb3IgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZkJlaGF2aW9yKCk6IEVGQ29ubmVjdGlvbkJlaGF2aW9yIHtcbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3I7XG4gIH1cblxuICBwcml2YXRlIF9iZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3IgPSBFRkNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNhc3RUb0Nvbm5lY3Rpb25UeXBlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgZlR5cGUodmFsdWU6IEVGQ29ubmVjdGlvblR5cGUpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZUeXBlKCk6IEVGQ29ubmVjdGlvblR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHlwZTogRUZDb25uZWN0aW9uVHlwZSA9IEVGQ29ubmVjdGlvblR5cGUuU1RSQUlHSFQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZGVmcycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmRGVmcyE6IEVsZW1lbnRSZWY8U1ZHRGVmc0VsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRl9NQVJLRVIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZNYXJrZXJzITogUXVlcnlMaXN0PEZNYXJrZXJCYXNlPjtcblxuICBAVmlld0NoaWxkKENPTk5FQ1RJT05fUEFUSCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZQYXRoITogSUNvbm5lY3Rpb25QYXRoO1xuXG4gIEBWaWV3Q2hpbGQoQ09OTkVDVElPTl9HUkFESUVOVCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZHcmFkaWVudCE6IElDb25uZWN0aW9uR3JhZGllbnQ7XG5cbiAgQFZpZXdDaGlsZChGQ29ubmVjdGlvbkRyYWdIYW5kbGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ0hhbmRsZSE6IEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbiE6IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQ09OTkVDVElPTl9URVhULCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlRleHRDb21wb25lbnQhOiBJQ29ubmVjdGlvblRleHQ7XG5cbiAgQFZpZXdDaGlsZCgnZkNvbm5lY3Rpb25DZW50ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25DZW50ZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGJvdW5kaW5nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZQYXRoLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZmVyZW5jZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZUZW1wQ29ubmVjdGlvbiA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mVGVtcENvbm5lY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxkZWZzICNkZWZzPjwvZGVmcz5cbiAgICA8ZyBjbGFzcz1cImYtY29ubmVjdGlvbi1ncm91cFwiPlxuICAgICAgICA8bGluZWFyR3JhZGllbnQgZkNvbm5lY3Rpb25HcmFkaWVudD48L2xpbmVhckdyYWRpZW50PlxuICAgICAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICAgIDxnPlxuICAgICAgICAgICAgPHBhdGggZi1jb25uZWN0aW9uLXBhdGhcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRdPVwicGF0aFwiPlxuICAgICAgICAgICAgPC9wYXRoPlxuICAgICAgICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUgcj1cIjhcIj48L2NpcmNsZT5cbiAgICAgICAgPC9nPlxuICAgICAgICA8dGV4dCBmLWNvbm5lY3Rpb24tdGV4dD48L3RleHQ+XG4gICAgPC9nPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3ZnPlxuPGRpdiAjZkNvbm5lY3Rpb25DZW50ZXIgY2xhc3M9XCJmLWNvbm5lY3Rpb24tY2VudGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ2VudGVyXVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBZ0MsU0FBUyxFQUN2RixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQ25FLGVBQWUsRUFBRSxlQUFlLEVBQ2hDLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsR0FFL0UsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7O0FBRXBFLElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQVl6QixNQUFNLE9BQU8sNkJBQ1QsU0FBUSxlQUFlO0lBZ0J6QixJQUNvQixTQUFTLENBQUMsS0FBMkI7UUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQW9CLFNBQVM7UUFDM0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFJRCxJQUNvQixLQUFLLENBQUMsS0FBdUI7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELElBQW9CLEtBQUs7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFrQ0QsSUFBb0IsZUFBZTtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUNJLGdCQUF5QyxFQUNqQyxnQkFBa0M7UUFFNUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEU5QixrQkFBYSxHQUFXLDJCQUE0QixRQUFRLEVBQUcsRUFBRSxDQUFDO1FBRWxFLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsZ0JBQVcsR0FBVyxPQUFPLENBQUM7UUFHOUIsY0FBUyxHQUFXLE9BQU8sQ0FBQztRQWVwQyxjQUFTLEdBQXlCLG9CQUFvQixDQUFDLEtBQUssQ0FBQztRQVc3RCxVQUFLLEdBQXFCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUc1QyxhQUFRLEdBQVksS0FBSyxDQUFDO0lBc0MxQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQ3BELENBQUM7OEdBMUZVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDJJQWlCcEIsd0JBQXdCLDZCQVd4QixvQkFBb0Isb0hBOUI3QixDQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUUsQ0FBRSxtREErQ25FLFFBQVEsd0VBcUJSLDBCQUEwQixxTEFsQmhDLGVBQWUsMEZBR2YsbUJBQW1CLDRGQUduQiw4QkFBOEIsMkZBRzlCLDZCQUE2QiwrRkFHN0IsZUFBZSw0TUMxRjVCLGlxQkFrQkE7OzJGRFlhLDZCQUE2QjtrQkFWekMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLGtEQUFrRDtxQkFDMUQsYUFDVSxDQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLCtCQUErQixFQUFFLENBQUU7OEdBVXBFLFdBQVc7c0JBRDFCLEtBQUs7Z0JBSVUsU0FBUztzQkFEeEIsS0FBSztnQkFRYyxTQUFTO3NCQUQ1QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFO2dCQVkxQixLQUFLO3NCQUR4QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFO2dCQVkxQixRQUFRO3NCQUR2QixLQUFLO2dCQUlVLEtBQUs7c0JBRHBCLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJbkIsUUFBUTtzQkFEdkIsZUFBZTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUloQyxLQUFLO3NCQURwQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTVCLFNBQVM7c0JBRHhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUloQyxXQUFXO3NCQUQxQixTQUFTO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJM0MsVUFBVTtzQkFEekIsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTFDLGNBQWM7c0JBRDdCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJNUIsaUJBQWlCO3NCQURoQyxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekMsa0JBQWtCO3NCQUR4QixlQUFlO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgY2FzdFRvQ29ubmVjdGlvbkJlaGF2aW9yLCBjYXN0VG9Db25uZWN0aW9uVHlwZSwgQ09OTkVDVElPTl9HUkFESUVOVCxcbiAgQ09OTkVDVElPTl9QQVRILCBDT05ORUNUSU9OX1RFWFQsXG4gIEZDb25uZWN0aW9uQmFzZSwgRkNvbm5lY3Rpb25EcmFnSGFuZGxlQ29tcG9uZW50LCBGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudCwgSUNvbm5lY3Rpb25HcmFkaWVudCxcbiAgSUNvbm5lY3Rpb25QYXRoLCBJQ29ubmVjdGlvblRleHQsXG59IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25CZWhhdmlvciB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTiB9IGZyb20gJy4uL2NvbW1vbi9mLWNvbm5lY3Rpb24uaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRl9NQVJLRVIsIEZNYXJrZXJCYXNlIH0gZnJvbSAnLi4vZi1tYXJrZXInO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25DZW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tY2VudGVyJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9mLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFsgXCIuL2YtY29ubmVjdGlvbi1mb3ItY3JlYXRlLmNvbXBvbmVudC5zY3NzXCIgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogXCJmLWNvbXBvbmVudCBmLWNvbm5lY3Rpb24gZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIlxuICB9LFxuICBwcm92aWRlcnM6IFsgeyBwcm92aWRlOiBGX0NPTk5FQ1RJT04sIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uRm9yQ3JlYXRlQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBGQ29ubmVjdGlvbkJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uSWQ6IHN0cmluZyA9IGBmLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTdGFydENvbG9yOiBzdHJpbmcgPSAnYmxhY2snO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRW5kQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRJZCE6IHN0cmluZztcblxuICBwdWJsaWMgb3ZlcnJpZGUgZklucHV0SWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBjYXN0VG9Db25uZWN0aW9uQmVoYXZpb3IgfSlcbiAgcHVibGljIG92ZXJyaWRlIHNldCBmQmVoYXZpb3IodmFsdWU6IEVGQ29ubmVjdGlvbkJlaGF2aW9yKSB7XG4gICAgdGhpcy5fYmVoYXZpb3IgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZkJlaGF2aW9yKCk6IEVGQ29ubmVjdGlvbkJlaGF2aW9yIHtcbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3I7XG4gIH1cblxuICBwcml2YXRlIF9iZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3IgPSBFRkNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGNhc3RUb0Nvbm5lY3Rpb25UeXBlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgZlR5cGUodmFsdWU6IEVGQ29ubmVjdGlvblR5cGUpIHtcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGZUeXBlKCk6IEVGQ29ubmVjdGlvblR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdHlwZTogRUZDb25uZWN0aW9uVHlwZSA9IEVGQ29ubmVjdGlvblR5cGUuU1RSQUlHSFQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZGVmcycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmRGVmcyE6IEVsZW1lbnRSZWY8U1ZHRGVmc0VsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRl9NQVJLRVIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZNYXJrZXJzITogUXVlcnlMaXN0PEZNYXJrZXJCYXNlPjtcblxuICBAVmlld0NoaWxkKENPTk5FQ1RJT05fUEFUSCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZQYXRoITogSUNvbm5lY3Rpb25QYXRoO1xuXG4gIEBWaWV3Q2hpbGQoQ09OTkVDVElPTl9HUkFESUVOVCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZHcmFkaWVudCE6IElDb25uZWN0aW9uR3JhZGllbnQ7XG5cbiAgQFZpZXdDaGlsZChGQ29ubmVjdGlvbkRyYWdIYW5kbGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmRHJhZ0hhbmRsZSE6IEZDb25uZWN0aW9uRHJhZ0hhbmRsZUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbiE6IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQ09OTkVDVElPTl9URVhULCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlRleHRDb21wb25lbnQhOiBJQ29ubmVjdGlvblRleHQ7XG5cbiAgQFZpZXdDaGlsZCgnZkNvbm5lY3Rpb25DZW50ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25DZW50ZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkcmVuKEZDb25uZWN0aW9uQ2VudGVyRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHB1YmxpYyBmQ29ubmVjdGlvbkNlbnRlcnMhOiBRdWVyeUxpc3Q8RkNvbm5lY3Rpb25DZW50ZXJEaXJlY3RpdmU+O1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgYm91bmRpbmdFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZlBhdGguaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICApIHtcbiAgICBzdXBlcihlbGVtZW50UmVmZXJlbmNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZlRlbXBDb25uZWN0aW9uID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZUZW1wQ29ubmVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgPGRlZnMgI2RlZnM+PC9kZWZzPlxuICAgIDxnIGNsYXNzPVwiZi1jb25uZWN0aW9uLWdyb3VwXCI+XG4gICAgICAgIDxsaW5lYXJHcmFkaWVudCBmQ29ubmVjdGlvbkdyYWRpZW50PjwvbGluZWFyR3JhZGllbnQ+XG4gICAgICAgIDxwYXRoIGZDb25uZWN0aW9uU2VsZWN0aW9uIFthdHRyLmRdPVwicGF0aFwiPjwvcGF0aD5cbiAgICAgICAgPGc+XG4gICAgICAgICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aFxuICAgICAgICAgICAgICAgICAgW2F0dHIuZF09XCJwYXRoXCI+XG4gICAgICAgICAgICA8L3BhdGg+XG4gICAgICAgICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZSByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICA8L2c+XG4gICAgICAgIDx0ZXh0IGYtY29ubmVjdGlvbi10ZXh0PjwvdGV4dD5cbiAgICA8L2c+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zdmc+XG48ZGl2ICNmQ29ubmVjdGlvbkNlbnRlciBjbGFzcz1cImYtY29ubmVjdGlvbi1jZW50ZXJcIiAqbmdJZj1cImZDb25uZWN0aW9uQ2VudGVycy5sZW5ndGhcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkNvbm5lY3Rpb25DZW50ZXJdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -4,6 +4,7 @@ import { EFConnectionBehavior } from '../common';
4
4
  import { EFConnectionType } from '../common';
5
5
  import { FComponentsStore } from '../../f-components-store';
6
6
  import { FMarkerBase } from '../f-marker';
7
+ import { FConnectionCenterDirective } from '../f-connection-center';
7
8
  import * as i0 from "@angular/core";
8
9
  export declare class FConnectionComponent extends FConnectionBase implements OnInit, OnDestroy {
9
10
  private fComponentsStore;
@@ -28,12 +29,13 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
28
29
  fSelection: FConnectionSelectionComponent;
29
30
  fTextComponent: IConnectionText;
30
31
  fConnectionCenter: ElementRef<HTMLDivElement>;
32
+ fConnectionCenters: QueryList<FConnectionCenterDirective>;
31
33
  get boundingElement(): HTMLElement | SVGElement;
32
34
  constructor(elementReference: ElementRef<HTMLElement>, fComponentsStore: FComponentsStore);
33
35
  ngOnInit(): void;
34
36
  ngOnDestroy(): void;
35
37
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fConnectionId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": true; }; "fInputId": { "alias": "fInputId"; "required": true; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["fMarkers"], ["*", "[fConnectionCenter]"], false, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fConnectionId": { "alias": "fConnectionId"; "required": false; }; "fText": { "alias": "fText"; "required": false; }; "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fOutputId": { "alias": "fOutputId"; "required": true; }; "fInputId": { "alias": "fInputId"; "required": true; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
37
39
  static ngAcceptInputType_fBehavior: string;
38
40
  static ngAcceptInputType_fType: string;
39
41
  }
@@ -4,6 +4,7 @@ import { EFConnectionBehavior } from '../common';
4
4
  import { EFConnectionType } from '../common';
5
5
  import { FComponentsStore } from '../../f-components-store';
6
6
  import { FMarkerBase } from '../f-marker';
7
+ import { FConnectionCenterDirective } from '../f-connection-center';
7
8
  import * as i0 from "@angular/core";
8
9
  export declare class FConnectionForCreateComponent extends FConnectionBase implements AfterViewInit, OnInit, OnDestroy {
9
10
  private fComponentsStore;
@@ -28,13 +29,14 @@ export declare class FConnectionForCreateComponent extends FConnectionBase imple
28
29
  fSelection: FConnectionSelectionComponent;
29
30
  fTextComponent: IConnectionText;
30
31
  fConnectionCenter: ElementRef<HTMLDivElement>;
32
+ fConnectionCenters: QueryList<FConnectionCenterDirective>;
31
33
  get boundingElement(): HTMLElement | SVGElement;
32
34
  constructor(elementReference: ElementRef<HTMLElement>, fComponentsStore: FComponentsStore);
33
35
  ngOnInit(): void;
34
36
  ngAfterViewInit(): void;
35
37
  ngOnDestroy(): void;
36
38
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionForCreateComponent, never>;
37
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["fMarkers"], ["*", "[fConnectionCenter]"], false, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fStartColor": { "alias": "fStartColor"; "required": false; }; "fEndColor": { "alias": "fEndColor"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, ["fMarkers", "fConnectionCenters"], ["*", "[fConnectionCenter]"], false, never>;
38
40
  static ngAcceptInputType_fBehavior: string;
39
41
  static ngAcceptInputType_fType: string;
40
42
  }
@@ -2,8 +2,9 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Component, ChangeDetectionStrategy, Input, Directive, Injectable, ContentChild, Inject, ViewChild, ContentChildren, Optional, SkipSelf, EventEmitter, Output, NgModule } from '@angular/core';
3
3
  import { TransformModelExtensions, DomElementExtensions, PointExtensions, RectExtensions, BooleanExtensions, sanitizeElementId, Point, GuidExtensions, VectorExtensions, EventExtensions, mixinChangePosition, mixinFitToParent, mixinOneToOneCentering, mixinChangeZoom, SizeExtensions, MouseEventExtensions, IMouseEvent, ITouchDownEvent, ITouchMoveEvent, ITouchUpEvent } from '@foblex/core';
4
4
  import { Subject, Observable, Subscription, startWith, debounceTime } from 'rxjs';
5
- import { __decorate } from 'tslib';
5
+ import * as i2 from '@angular/common';
6
6
  import { DOCUMENT, CommonModule } from '@angular/common';
7
+ import { __decorate } from 'tslib';
7
8
 
8
9
  const F_BACKGROUND_PATTERN = new InjectionToken('F_BACKGROUND_PATTERN');
9
10
 
@@ -1329,6 +1330,18 @@ function castToConnectionType(type) {
1329
1330
  return result;
1330
1331
  }
1331
1332
 
1333
+ class FConnectionCenterDirective {
1334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionCenterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1335
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: FConnectionCenterDirective, isStandalone: true, selector: "[fConnectionCenter]", ngImport: i0 }); }
1336
+ }
1337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionCenterDirective, decorators: [{
1338
+ type: Directive,
1339
+ args: [{
1340
+ selector: "[fConnectionCenter]",
1341
+ standalone: true
1342
+ }]
1343
+ }] });
1344
+
1332
1345
  let uniqueId$4 = 0;
1333
1346
  class FConnectionForCreateComponent extends FConnectionBase {
1334
1347
  set fBehavior(value) {
@@ -1367,13 +1380,13 @@ class FConnectionForCreateComponent extends FConnectionBase {
1367
1380
  this.fComponentsStore.fTempConnection = undefined;
1368
1381
  }
1369
1382
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionForCreateComponent, deps: [{ token: i0.ElementRef }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
1370
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1383
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fStartColor: "fStartColor", fEndColor: "fEndColor", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1371
1384
  }
1372
1385
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
1373
1386
  type: Component,
1374
1387
  args: [{ selector: "f-connection-for-create", changeDetection: ChangeDetectionStrategy.OnPush, host: {
1375
1388
  class: "f-component f-connection f-connection-for-create"
1376
- }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
1389
+ }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
1377
1390
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FComponentsStore }], propDecorators: { fStartColor: [{
1378
1391
  type: Input
1379
1392
  }], fEndColor: [{
@@ -1410,6 +1423,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
1410
1423
  }], fConnectionCenter: [{
1411
1424
  type: ViewChild,
1412
1425
  args: ['fConnectionCenter', { static: true }]
1426
+ }], fConnectionCenters: [{
1427
+ type: ContentChildren,
1428
+ args: [FConnectionCenterDirective, { descendants: true }]
1413
1429
  }] } });
1414
1430
 
1415
1431
  let uniqueId$3 = 0;
@@ -1447,7 +1463,7 @@ class FConnectionComponent extends FConnectionBase {
1447
1463
  this.fComponentsStore.removeConnection(this);
1448
1464
  }
1449
1465
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionComponent, deps: [{ token: i0.ElementRef }, { token: FComponentsStore }], target: i0.ɵɵFactoryTarget.Component }); }
1450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionComponent, selector: "f-connection", inputs: { fConnectionId: "fConnectionId", fText: "fText", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { properties: { "attr.id": "fConnectionId", "class.f-connection-disabled": "disabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1466
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.1", type: FConnectionComponent, selector: "f-connection", inputs: { fConnectionId: "fConnectionId", fText: "fText", fStartColor: "fStartColor", fEndColor: "fEndColor", fOutputId: "fOutputId", fInputId: "fInputId", fBehavior: ["fBehavior", "fBehavior", castToConnectionBehavior], fType: ["fType", "fType", castToConnectionType], disabled: "disabled" }, host: { properties: { "attr.id": "fConnectionId", "class.f-connection-disabled": "disabled" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], queries: [{ propertyName: "fMarkers", predicate: F_MARKER, descendants: true }, { propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, static: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, static: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, static: true }, { propertyName: "fDragHandle", first: true, predicate: FConnectionDragHandleComponent, descendants: true, static: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, static: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, static: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, static: true }], exportAs: ["fComponent"], usesInheritance: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FConnectionDragHandleComponent, selector: "circle[f-connection-drag-handle]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1451
1467
  }
1452
1468
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionComponent, decorators: [{
1453
1469
  type: Component,
@@ -1455,7 +1471,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
1455
1471
  '[attr.id]': 'fConnectionId',
1456
1472
  class: "f-component f-connection",
1457
1473
  '[class.f-connection-disabled]': 'disabled',
1458
- }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
1474
+ }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\" style=\"overflow: visible; display: block; vertical-align: middle;\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path\n [attr.d]=\"path\">\n </path>\n <circle f-connection-drag-handle r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n<div #fConnectionCenter class=\"f-connection-center\" *ngIf=\"fConnectionCenters.length\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n</div>\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}\n"] }]
1459
1475
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FComponentsStore }], propDecorators: { fConnectionId: [{
1460
1476
  type: Input
1461
1477
  }], fText: [{
@@ -1502,20 +1518,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
1502
1518
  }], fConnectionCenter: [{
1503
1519
  type: ViewChild,
1504
1520
  args: ['fConnectionCenter', { static: true }]
1521
+ }], fConnectionCenters: [{
1522
+ type: ContentChildren,
1523
+ args: [FConnectionCenterDirective, { descendants: true }]
1505
1524
  }] } });
1506
1525
 
1507
- class FConnectionCenterDirective {
1508
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionCenterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1509
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: FConnectionCenterDirective, isStandalone: true, selector: "[fConnectionCenter]", ngImport: i0 }); }
1510
- }
1511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FConnectionCenterDirective, decorators: [{
1512
- type: Directive,
1513
- args: [{
1514
- selector: "[fConnectionCenter]",
1515
- standalone: true
1516
- }]
1517
- }] });
1518
-
1519
1526
  const F_NODE = new InjectionToken('F_NODE');
1520
1527
  class FNodeBase {
1521
1528
  constructor() {