@angflow/angular 0.0.11 → 0.0.12

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.
@@ -87,25 +87,25 @@ export class ConnectionLineComponent {
87
87
  }, ...(ngDevMode ? [{ debugName: "connectionPath" }] : /* istanbul ignore next */ []));
88
88
  }
89
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ConnectionLineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ConnectionLineComponent, isStandalone: true, selector: "ng-flow-connection-line", inputs: { customComponent: { classPropertyName: "customComponent", publicName: "customComponent", isSignal: true, isRequired: false, transformFunction: null }, connectionLineType: { classPropertyName: "connectionLineType", publicName: "connectionLineType", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "display: contents;" }, ngImport: i0, template: `
91
- @if (isConnecting()) {
92
- @if (customComponent()) {
93
- <ng-container
94
- *ngComponentOutlet="customComponent(); inputs: connectionProps()"
95
- />
96
- } @else {
97
- <svg class="ng-flow__connectionline xy-flow__connectionline"
98
- style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;">
99
- <g>
100
- <path
101
- class="ng-flow__connection-path xy-flow__connection-path"
102
- [attr.d]="connectionPath()"
103
- fill="none"
104
- />
105
- </g>
106
- </svg>
107
- }
108
- }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ConnectionLineComponent, isStandalone: true, selector: "ng-flow-connection-line", inputs: { customComponent: { classPropertyName: "customComponent", publicName: "customComponent", isSignal: true, isRequired: false, transformFunction: null }, connectionLineType: { classPropertyName: "connectionLineType", publicName: "connectionLineType", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "display: contents;" }, ngImport: i0, template: `
91
+ @if (isConnecting()) {
92
+ @if (customComponent()) {
93
+ <ng-container
94
+ *ngComponentOutlet="customComponent(); inputs: connectionProps()"
95
+ />
96
+ } @else {
97
+ <svg class="ng-flow__connectionline xy-flow__connectionline"
98
+ style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;">
99
+ <g>
100
+ <path
101
+ class="ng-flow__connection-path xy-flow__connection-path"
102
+ [attr.d]="connectionPath()"
103
+ fill="none"
104
+ />
105
+ </g>
106
+ </svg>
107
+ }
108
+ }
109
109
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ConnectionLineComponent, decorators: [{
@@ -118,25 +118,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
118
118
  host: {
119
119
  'style': 'display: contents;',
120
120
  },
121
- template: `
122
- @if (isConnecting()) {
123
- @if (customComponent()) {
124
- <ng-container
125
- *ngComponentOutlet="customComponent(); inputs: connectionProps()"
126
- />
127
- } @else {
128
- <svg class="ng-flow__connectionline xy-flow__connectionline"
129
- style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;">
130
- <g>
131
- <path
132
- class="ng-flow__connection-path xy-flow__connection-path"
133
- [attr.d]="connectionPath()"
134
- fill="none"
135
- />
136
- </g>
137
- </svg>
138
- }
139
- }
121
+ template: `
122
+ @if (isConnecting()) {
123
+ @if (customComponent()) {
124
+ <ng-container
125
+ *ngComponentOutlet="customComponent(); inputs: connectionProps()"
126
+ />
127
+ } @else {
128
+ <svg class="ng-flow__connectionline xy-flow__connectionline"
129
+ style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;">
130
+ <g>
131
+ <path
132
+ class="ng-flow__connection-path xy-flow__connection-path"
133
+ [attr.d]="connectionPath()"
134
+ fill="none"
135
+ />
136
+ </g>
137
+ </svg>
138
+ }
139
+ }
140
140
  `,
141
141
  }]
142
142
  }], propDecorators: { customComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "customComponent", required: false }] }], connectionLineType: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineType", required: false }] }] } });
@@ -8,6 +8,7 @@ export declare class ControlsComponent {
8
8
  readonly showFitView: import("@angular/core").InputSignal<boolean>;
9
9
  readonly showInteractive: import("@angular/core").InputSignal<boolean>;
10
10
  readonly fitViewOptions: import("@angular/core").InputSignal<FitViewOptionsBase<any> | undefined>;
11
+ readonly fitViewFn: import("@angular/core").InputSignal<(() => void) | undefined>;
11
12
  readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
12
13
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
13
14
  readonly zoomInClick: import("@angular/core").OutputEmitterRef<void>;
@@ -23,6 +24,6 @@ export declare class ControlsComponent {
23
24
  onFitView(): void;
24
25
  onToggleLock(): void;
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ControlsComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<ControlsComponent, "ng-flow-controls", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "showZoom": { "alias": "showZoom"; "required": false; "isSignal": true; }; "showFitView": { "alias": "showFitView"; "required": false; "isSignal": true; }; "showInteractive": { "alias": "showInteractive"; "required": false; "isSignal": true; }; "fitViewOptions": { "alias": "fitViewOptions"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "zoomInClick": "zoomInClick"; "zoomOutClick": "zoomOutClick"; "fitViewClick": "fitViewClick"; "interactiveChange": "interactiveChange"; }, never, ["*"], true, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<ControlsComponent, "ng-flow-controls", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "showZoom": { "alias": "showZoom"; "required": false; "isSignal": true; }; "showFitView": { "alias": "showFitView"; "required": false; "isSignal": true; }; "showInteractive": { "alias": "showInteractive"; "required": false; "isSignal": true; }; "fitViewOptions": { "alias": "fitViewOptions"; "required": false; "isSignal": true; }; "fitViewFn": { "alias": "fitViewFn"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "zoomInClick": "zoomInClick"; "zoomOutClick": "zoomOutClick"; "fitViewClick": "fitViewClick"; "interactiveChange": "interactiveChange"; }, never, ["*"], true, never>;
27
28
  }
28
29
  //# sourceMappingURL=controls.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/controls/controls.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAKzE,qBAkEa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,aAAa,CAAyB;IAE9C,QAAQ,CAAC,QAAQ,qDAAuC;IACxD,QAAQ,CAAC,QAAQ,+CAAe;IAChC,QAAQ,CAAC,WAAW,+CAAe;IACnC,QAAQ,CAAC,eAAe,+CAAe;IACvC,QAAQ,CAAC,cAAc,2EAAoC;IAC3D,QAAQ,CAAC,WAAW,iEAAgD;IACpE,QAAQ,CAAC,SAAS,8CAA0C;IAG5D,QAAQ,CAAC,WAAW,iDAAkB;IACtC,QAAQ,CAAC,YAAY,iDAAkB;IACvC,QAAQ,CAAC,YAAY,iDAAkB;IACvC,QAAQ,CAAC,iBAAiB,oDAAqB;IAK/C,QAAQ,CAAC,aAAa,0CAKpB;IACF,QAAQ,CAAC,QAAQ,0CAAyC;IAG1D,QAAQ,CAAC,cAAc,0CAAqE;IAC5F,QAAQ,CAAC,cAAc,0CAAqE;IAE5F,QAAQ;IAKR,SAAS;IAKT,SAAS;IAKT,YAAY;yCAhDD,iBAAiB;2CAAjB,iBAAiB;CAuD7B"}
1
+ {"version":3,"file":"controls.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/controls/controls.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;;AAKzE,qBAkEa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,aAAa,CAAyB;IAE9C,QAAQ,CAAC,QAAQ,qDAAuC;IACxD,QAAQ,CAAC,QAAQ,+CAAe;IAChC,QAAQ,CAAC,WAAW,+CAAe;IACnC,QAAQ,CAAC,eAAe,+CAAe;IACvC,QAAQ,CAAC,cAAc,2EAAoC;IAC3D,QAAQ,CAAC,SAAS,6CAAgB,IAAI,eAA0B;IAChE,QAAQ,CAAC,WAAW,iEAAgD;IACpE,QAAQ,CAAC,SAAS,8CAA0C;IAG5D,QAAQ,CAAC,WAAW,iDAAkB;IACtC,QAAQ,CAAC,YAAY,iDAAkB;IACvC,QAAQ,CAAC,YAAY,iDAAkB;IACvC,QAAQ,CAAC,iBAAiB,oDAAqB;IAK/C,QAAQ,CAAC,aAAa,0CAKpB;IACF,QAAQ,CAAC,QAAQ,0CAAyC;IAG1D,QAAQ,CAAC,cAAc,0CAAqE;IAC5F,QAAQ,CAAC,cAAc,0CAAqE;IAE5F,QAAQ;IAKR,SAAS;IAKT,SAAS;IAUT,YAAY;yCAtDD,iBAAiB;2CAAjB,iBAAiB;CA6D7B"}
@@ -12,6 +12,7 @@ export class ControlsComponent {
12
12
  this.showFitView = input(true, ...(ngDevMode ? [{ debugName: "showFitView" }] : /* istanbul ignore next */ []));
13
13
  this.showInteractive = input(true, ...(ngDevMode ? [{ debugName: "showInteractive" }] : /* istanbul ignore next */ []));
14
14
  this.fitViewOptions = input(...(ngDevMode ? [undefined, { debugName: "fitViewOptions" }] : /* istanbul ignore next */ []));
15
+ this.fitViewFn = input(undefined, ...(ngDevMode ? [{ debugName: "fitViewFn" }] : /* istanbul ignore next */ []));
15
16
  this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
16
17
  this.ariaLabel = input('Angular Flow controls', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
17
18
  // Callback outputs
@@ -39,7 +40,13 @@ export class ControlsComponent {
39
40
  this.zoomOutClick.emit();
40
41
  }
41
42
  onFitView() {
42
- this.ngFlowService.fitView(this.fitViewOptions());
43
+ const fn = this.fitViewFn();
44
+ if (fn) {
45
+ fn();
46
+ }
47
+ else {
48
+ this.ngFlowService.fitView(this.fitViewOptions());
49
+ }
43
50
  this.fitViewClick.emit();
44
51
  }
45
52
  onToggleLock() {
@@ -50,7 +57,7 @@ export class ControlsComponent {
50
57
  this.interactiveChange.emit(nextInteractive);
51
58
  }
52
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: ControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ControlsComponent, isStandalone: true, selector: "ng-flow-controls", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, showZoom: { classPropertyName: "showZoom", publicName: "showZoom", isSignal: true, isRequired: false, transformFunction: null }, showFitView: { classPropertyName: "showFitView", publicName: "showFitView", isSignal: true, isRequired: false, transformFunction: null }, showInteractive: { classPropertyName: "showInteractive", publicName: "showInteractive", isSignal: true, isRequired: false, transformFunction: null }, fitViewOptions: { classPropertyName: "fitViewOptions", publicName: "fitViewOptions", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zoomInClick: "zoomInClick", zoomOutClick: "zoomOutClick", fitViewClick: "fitViewClick", interactiveChange: "interactiveChange" }, ngImport: i0, template: `
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: ControlsComponent, isStandalone: true, selector: "ng-flow-controls", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, showZoom: { classPropertyName: "showZoom", publicName: "showZoom", isSignal: true, isRequired: false, transformFunction: null }, showFitView: { classPropertyName: "showFitView", publicName: "showFitView", isSignal: true, isRequired: false, transformFunction: null }, showInteractive: { classPropertyName: "showInteractive", publicName: "showInteractive", isSignal: true, isRequired: false, transformFunction: null }, fitViewOptions: { classPropertyName: "fitViewOptions", publicName: "fitViewOptions", isSignal: true, isRequired: false, transformFunction: null }, fitViewFn: { classPropertyName: "fitViewFn", publicName: "fitViewFn", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zoomInClick: "zoomInClick", zoomOutClick: "zoomOutClick", fitViewClick: "fitViewClick", interactiveChange: "interactiveChange" }, ngImport: i0, template: `
54
61
  <ng-flow-panel [position]="position()">
55
62
  <div
56
63
  class="ng-flow__controls xy-flow__controls"
@@ -179,5 +186,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
179
186
  </ng-flow-panel>
180
187
  `,
181
188
  }]
182
- }], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], showZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "showZoom", required: false }] }], showFitView: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFitView", required: false }] }], showInteractive: [{ type: i0.Input, args: [{ isSignal: true, alias: "showInteractive", required: false }] }], fitViewOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitViewOptions", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], zoomInClick: [{ type: i0.Output, args: ["zoomInClick"] }], zoomOutClick: [{ type: i0.Output, args: ["zoomOutClick"] }], fitViewClick: [{ type: i0.Output, args: ["fitViewClick"] }], interactiveChange: [{ type: i0.Output, args: ["interactiveChange"] }] } });
189
+ }], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], showZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "showZoom", required: false }] }], showFitView: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFitView", required: false }] }], showInteractive: [{ type: i0.Input, args: [{ isSignal: true, alias: "showInteractive", required: false }] }], fitViewOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitViewOptions", required: false }] }], fitViewFn: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitViewFn", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], zoomInClick: [{ type: i0.Output, args: ["zoomInClick"] }], zoomOutClick: [{ type: i0.Output, args: ["zoomOutClick"] }], fitViewClick: [{ type: i0.Output, args: ["fitViewClick"] }], interactiveChange: [{ type: i0.Output, args: ["interactiveChange"] }] } });
183
190
  //# sourceMappingURL=controls.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/controls/controls.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controls.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/controls/controls.component.ts"],"names":[],"mappings":"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"}
@@ -42,13 +42,13 @@ export class BezierEdgeComponent {
42
42
  }, ...(ngDevMode ? [{ debugName: "edgePath" }] : /* istanbul ignore next */ []));
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: BezierEdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: BezierEdgeComponent, isStandalone: true, selector: "ng-flow-bezier-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, pathOptions: { classPropertyName: "pathOptions", publicName: "pathOptions", isSignal: true, isRequired: false, transformFunction: null }, sourceHandleId: { classPropertyName: "sourceHandleId", publicName: "sourceHandleId", isSignal: true, isRequired: false, transformFunction: null }, targetHandleId: { classPropertyName: "targetHandleId", publicName: "targetHandleId", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "display: contents;" }, ngImport: i0, template: `
46
- <ng-flow-base-edge
47
- [path]="edgePath()"
48
- [markerStart]="markerStart()"
49
- [markerEnd]="markerEnd()"
50
- [interactionWidth]="interactionWidth() ?? 20"
51
- />
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: BezierEdgeComponent, isStandalone: true, selector: "ng-flow-bezier-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, pathOptions: { classPropertyName: "pathOptions", publicName: "pathOptions", isSignal: true, isRequired: false, transformFunction: null }, sourceHandleId: { classPropertyName: "sourceHandleId", publicName: "sourceHandleId", isSignal: true, isRequired: false, transformFunction: null }, targetHandleId: { classPropertyName: "targetHandleId", publicName: "targetHandleId", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, deletable: { classPropertyName: "deletable", publicName: "deletable", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, host: { styleAttribute: "display: contents;" }, ngImport: i0, template: `
46
+ <ng-flow-base-edge
47
+ [path]="edgePath()"
48
+ [markerStart]="markerStart()"
49
+ [markerEnd]="markerEnd()"
50
+ [interactionWidth]="interactionWidth() ?? 20"
51
+ />
52
52
  `, isInline: true, dependencies: [{ kind: "component", type: BaseEdgeComponent, selector: "ng-flow-base-edge", inputs: ["path", "markerStart", "markerEnd", "style", "interactionWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: BezierEdgeComponent, decorators: [{
@@ -59,13 +59,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
59
59
  imports: [BaseEdgeComponent],
60
60
  changeDetection: ChangeDetectionStrategy.OnPush,
61
61
  host: { 'style': 'display: contents;' },
62
- template: `
63
- <ng-flow-base-edge
64
- [path]="edgePath()"
65
- [markerStart]="markerStart()"
66
- [markerEnd]="markerEnd()"
67
- [interactionWidth]="interactionWidth() ?? 20"
68
- />
62
+ template: `
63
+ <ng-flow-base-edge
64
+ [path]="edgePath()"
65
+ [markerStart]="markerStart()"
66
+ [markerEnd]="markerEnd()"
67
+ [interactionWidth]="interactionWidth() ?? 20"
68
+ />
69
69
  `,
70
70
  }]
71
71
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], animated: [{ type: i0.Input, args: [{ isSignal: true, alias: "animated", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sourceX: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceX", required: false }] }], sourceY: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceY", required: false }] }], targetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetX", required: false }] }], targetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetY", required: false }] }], sourcePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourcePosition", required: false }] }], targetPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetPosition", required: false }] }], markerStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerStart", required: false }] }], markerEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerEnd", required: false }] }], interactionWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionWidth", required: false }] }], pathOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pathOptions", required: false }] }], sourceHandleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHandleId", required: false }] }], targetHandleId: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHandleId", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], deletable: [{ type: i0.Input, args: [{ isSignal: true, alias: "deletable", required: false }] }], sourceHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHandle", required: false }] }], targetHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHandle", required: false }] }] } });
@@ -32,13 +32,13 @@ export class SimpleBezierEdgeComponent {
32
32
  }, ...(ngDevMode ? [{ debugName: "edgePath" }] : /* istanbul ignore next */ []));
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: SimpleBezierEdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: SimpleBezierEdgeComponent, isStandalone: true, selector: "ng-flow-simple-bezier-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
36
- <ng-flow-base-edge
37
- [path]="edgePath()"
38
- [markerStart]="markerStart()"
39
- [markerEnd]="markerEnd()"
40
- [interactionWidth]="interactionWidth() ?? 20"
41
- />
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: SimpleBezierEdgeComponent, isStandalone: true, selector: "ng-flow-simple-bezier-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
36
+ <ng-flow-base-edge
37
+ [path]="edgePath()"
38
+ [markerStart]="markerStart()"
39
+ [markerEnd]="markerEnd()"
40
+ [interactionWidth]="interactionWidth() ?? 20"
41
+ />
42
42
  `, isInline: true, dependencies: [{ kind: "component", type: BaseEdgeComponent, selector: "ng-flow-base-edge", inputs: ["path", "markerStart", "markerEnd", "style", "interactionWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
43
  }
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: SimpleBezierEdgeComponent, decorators: [{
@@ -48,13 +48,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
48
48
  standalone: true,
49
49
  imports: [BaseEdgeComponent],
50
50
  changeDetection: ChangeDetectionStrategy.OnPush,
51
- template: `
52
- <ng-flow-base-edge
53
- [path]="edgePath()"
54
- [markerStart]="markerStart()"
55
- [markerEnd]="markerEnd()"
56
- [interactionWidth]="interactionWidth() ?? 20"
57
- />
51
+ template: `
52
+ <ng-flow-base-edge
53
+ [path]="edgePath()"
54
+ [markerStart]="markerStart()"
55
+ [markerEnd]="markerEnd()"
56
+ [interactionWidth]="interactionWidth() ?? 20"
57
+ />
58
58
  `,
59
59
  }]
60
60
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], sourceX: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceX", required: false }] }], sourceY: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceY", required: false }] }], targetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetX", required: false }] }], targetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetY", required: false }] }], sourcePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourcePosition", required: false }] }], targetPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetPosition", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], markerStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerStart", required: false }] }], markerEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerEnd", required: false }] }], interactionWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionWidth", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sourceHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHandle", required: false }] }], targetHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHandle", required: false }] }] } });
@@ -34,13 +34,13 @@ export class SmoothStepEdgeComponent {
34
34
  }, ...(ngDevMode ? [{ debugName: "edgePath" }] : /* istanbul ignore next */ []));
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: SmoothStepEdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: SmoothStepEdgeComponent, isStandalone: true, selector: "ng-flow-smooth-step-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, pathOptions: { classPropertyName: "pathOptions", publicName: "pathOptions", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
38
- <ng-flow-base-edge
39
- [path]="edgePath()"
40
- [markerStart]="markerStart()"
41
- [markerEnd]="markerEnd()"
42
- [interactionWidth]="interactionWidth() ?? 20"
43
- />
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: SmoothStepEdgeComponent, isStandalone: true, selector: "ng-flow-smooth-step-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, pathOptions: { classPropertyName: "pathOptions", publicName: "pathOptions", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
38
+ <ng-flow-base-edge
39
+ [path]="edgePath()"
40
+ [markerStart]="markerStart()"
41
+ [markerEnd]="markerEnd()"
42
+ [interactionWidth]="interactionWidth() ?? 20"
43
+ />
44
44
  `, isInline: true, dependencies: [{ kind: "component", type: BaseEdgeComponent, selector: "ng-flow-base-edge", inputs: ["path", "markerStart", "markerEnd", "style", "interactionWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: SmoothStepEdgeComponent, decorators: [{
@@ -50,13 +50,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
50
50
  standalone: true,
51
51
  imports: [BaseEdgeComponent],
52
52
  changeDetection: ChangeDetectionStrategy.OnPush,
53
- template: `
54
- <ng-flow-base-edge
55
- [path]="edgePath()"
56
- [markerStart]="markerStart()"
57
- [markerEnd]="markerEnd()"
58
- [interactionWidth]="interactionWidth() ?? 20"
59
- />
53
+ template: `
54
+ <ng-flow-base-edge
55
+ [path]="edgePath()"
56
+ [markerStart]="markerStart()"
57
+ [markerEnd]="markerEnd()"
58
+ [interactionWidth]="interactionWidth() ?? 20"
59
+ />
60
60
  `,
61
61
  }]
62
62
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], sourceX: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceX", required: false }] }], sourceY: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceY", required: false }] }], targetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetX", required: false }] }], targetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetY", required: false }] }], sourcePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourcePosition", required: false }] }], targetPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetPosition", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], markerStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerStart", required: false }] }], markerEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerEnd", required: false }] }], interactionWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionWidth", required: false }] }], pathOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pathOptions", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sourceHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHandle", required: false }] }], targetHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHandle", required: false }] }] } });
@@ -35,13 +35,13 @@ export class StepEdgeComponent {
35
35
  }, ...(ngDevMode ? [{ debugName: "edgePath" }] : /* istanbul ignore next */ []));
36
36
  }
37
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: StepEdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: StepEdgeComponent, isStandalone: true, selector: "ng-flow-step-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, pathOptions: { classPropertyName: "pathOptions", publicName: "pathOptions", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
39
- <ng-flow-base-edge
40
- [path]="edgePath()"
41
- [markerStart]="markerStart()"
42
- [markerEnd]="markerEnd()"
43
- [interactionWidth]="interactionWidth() ?? 20"
44
- />
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: StepEdgeComponent, isStandalone: true, selector: "ng-flow-step-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, sourcePosition: { classPropertyName: "sourcePosition", publicName: "sourcePosition", isSignal: true, isRequired: false, transformFunction: null }, targetPosition: { classPropertyName: "targetPosition", publicName: "targetPosition", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, pathOptions: { classPropertyName: "pathOptions", publicName: "pathOptions", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
39
+ <ng-flow-base-edge
40
+ [path]="edgePath()"
41
+ [markerStart]="markerStart()"
42
+ [markerEnd]="markerEnd()"
43
+ [interactionWidth]="interactionWidth() ?? 20"
44
+ />
45
45
  `, isInline: true, dependencies: [{ kind: "component", type: BaseEdgeComponent, selector: "ng-flow-base-edge", inputs: ["path", "markerStart", "markerEnd", "style", "interactionWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: StepEdgeComponent, decorators: [{
@@ -51,13 +51,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
51
51
  standalone: true,
52
52
  imports: [BaseEdgeComponent],
53
53
  changeDetection: ChangeDetectionStrategy.OnPush,
54
- template: `
55
- <ng-flow-base-edge
56
- [path]="edgePath()"
57
- [markerStart]="markerStart()"
58
- [markerEnd]="markerEnd()"
59
- [interactionWidth]="interactionWidth() ?? 20"
60
- />
54
+ template: `
55
+ <ng-flow-base-edge
56
+ [path]="edgePath()"
57
+ [markerStart]="markerStart()"
58
+ [markerEnd]="markerEnd()"
59
+ [interactionWidth]="interactionWidth() ?? 20"
60
+ />
61
61
  `,
62
62
  }]
63
63
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], sourceX: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceX", required: false }] }], sourceY: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceY", required: false }] }], targetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetX", required: false }] }], targetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetY", required: false }] }], sourcePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourcePosition", required: false }] }], targetPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetPosition", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], markerStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerStart", required: false }] }], markerEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerEnd", required: false }] }], interactionWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionWidth", required: false }] }], pathOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "pathOptions", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sourceHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHandle", required: false }] }], targetHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHandle", required: false }] }] } });
@@ -28,13 +28,13 @@ export class StraightEdgeComponent {
28
28
  }, ...(ngDevMode ? [{ debugName: "edgePath" }] : /* istanbul ignore next */ []));
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: StraightEdgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: StraightEdgeComponent, isStandalone: true, selector: "ng-flow-straight-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
32
- <ng-flow-base-edge
33
- [path]="edgePath()"
34
- [markerStart]="markerStart()"
35
- [markerEnd]="markerEnd()"
36
- [interactionWidth]="interactionWidth() ?? 20"
37
- />
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: StraightEdgeComponent, isStandalone: true, selector: "ng-flow-straight-edge", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, sourceX: { classPropertyName: "sourceX", publicName: "sourceX", isSignal: true, isRequired: false, transformFunction: null }, sourceY: { classPropertyName: "sourceY", publicName: "sourceY", isSignal: true, isRequired: false, transformFunction: null }, targetX: { classPropertyName: "targetX", publicName: "targetX", isSignal: true, isRequired: false, transformFunction: null }, targetY: { classPropertyName: "targetY", publicName: "targetY", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, markerStart: { classPropertyName: "markerStart", publicName: "markerStart", isSignal: true, isRequired: false, transformFunction: null }, markerEnd: { classPropertyName: "markerEnd", publicName: "markerEnd", isSignal: true, isRequired: false, transformFunction: null }, interactionWidth: { classPropertyName: "interactionWidth", publicName: "interactionWidth", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, sourceHandle: { classPropertyName: "sourceHandle", publicName: "sourceHandle", isSignal: true, isRequired: false, transformFunction: null }, targetHandle: { classPropertyName: "targetHandle", publicName: "targetHandle", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
32
+ <ng-flow-base-edge
33
+ [path]="edgePath()"
34
+ [markerStart]="markerStart()"
35
+ [markerEnd]="markerEnd()"
36
+ [interactionWidth]="interactionWidth() ?? 20"
37
+ />
38
38
  `, isInline: true, dependencies: [{ kind: "component", type: BaseEdgeComponent, selector: "ng-flow-base-edge", inputs: ["path", "markerStart", "markerEnd", "style", "interactionWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: StraightEdgeComponent, decorators: [{
@@ -44,13 +44,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
44
44
  standalone: true,
45
45
  imports: [BaseEdgeComponent],
46
46
  changeDetection: ChangeDetectionStrategy.OnPush,
47
- template: `
48
- <ng-flow-base-edge
49
- [path]="edgePath()"
50
- [markerStart]="markerStart()"
51
- [markerEnd]="markerEnd()"
52
- [interactionWidth]="interactionWidth() ?? 20"
53
- />
47
+ template: `
48
+ <ng-flow-base-edge
49
+ [path]="edgePath()"
50
+ [markerStart]="markerStart()"
51
+ [markerEnd]="markerEnd()"
52
+ [interactionWidth]="interactionWidth() ?? 20"
53
+ />
54
54
  `,
55
55
  }]
56
56
  }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], sourceX: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceX", required: false }] }], sourceY: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceY", required: false }] }], targetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetX", required: false }] }], targetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetY", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], markerStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerStart", required: false }] }], markerEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerEnd", required: false }] }], interactionWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionWidth", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], sourceHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceHandle", required: false }] }], targetHandle: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetHandle", required: false }] }] } });
@@ -14,22 +14,22 @@ export class AfHandleRowComponent {
14
14
  this.label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: AfHandleRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: AfHandleRowComponent, isStandalone: true, selector: "af-handle-row", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "af-handle-row" }, ngImport: i0, template: `
18
- <ng-content select="ng-flow-handle" />
19
- @if (label()) {
20
- <span class="af-handle-row__label">{{ label() }}</span>
21
- }
22
- <ng-content />
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: AfHandleRowComponent, isStandalone: true, selector: "af-handle-row", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "af-handle-row" }, ngImport: i0, template: `
18
+ <ng-content select="ng-flow-handle" />
19
+ @if (label()) {
20
+ <span class="af-handle-row__label">{{ label() }}</span>
21
+ }
22
+ <ng-content />
23
23
  `, isInline: true, styles: ["\n :host {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n position: relative;\n min-height: 16px;\n }\n .af-handle-row__label {\n font-size: 0.75rem;\n color: var(--text-secondary, #666);\n }\n "], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: AfHandleRowComponent, decorators: [{
26
26
  type: Component,
27
- args: [{ selector: 'af-handle-row', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'af-handle-row' }, template: `
28
- <ng-content select="ng-flow-handle" />
29
- @if (label()) {
30
- <span class="af-handle-row__label">{{ label() }}</span>
31
- }
32
- <ng-content />
27
+ args: [{ selector: 'af-handle-row', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'af-handle-row' }, template: `
28
+ <ng-content select="ng-flow-handle" />
29
+ @if (label()) {
30
+ <span class="af-handle-row__label">{{ label() }}</span>
31
+ }
32
+ <ng-content />
33
33
  `, styles: ["\n :host {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 2px 8px;\n position: relative;\n min-height: 16px;\n }\n .af-handle-row__label {\n font-size: 0.75rem;\n color: var(--text-secondary, #666);\n }\n "] }]
34
34
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
35
35
  //# sourceMappingURL=handle-row.component.js.map
@@ -310,164 +310,164 @@ export class EdgeRendererComponent {
310
310
  return `url('#${getMarkerId(marker, this.store.rfId())}')`;
311
311
  }
312
312
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: EdgeRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
313
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: EdgeRendererComponent, isStandalone: true, selector: "ng-flow-edge-renderer", inputs: { reconnectRadius: { classPropertyName: "reconnectRadius", publicName: "reconnectRadius", isSignal: true, isRequired: false, transformFunction: null }, customEdgeTypes: { classPropertyName: "customEdgeTypes", publicName: "customEdgeTypes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { edgeClick: "edgeClick", edgeDoubleClick: "edgeDoubleClick", edgeContextMenu: "edgeContextMenu", edgeMouseEnter: "edgeMouseEnter", edgeMouseMove: "edgeMouseMove", edgeMouseLeave: "edgeMouseLeave", reconnect: "reconnect", reconnectStart: "reconnectStart", reconnectEnd: "reconnectEnd" }, host: { styleAttribute: "position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none;", classAttribute: "ng-flow__edges xy-flow__edges" }, ngImport: i0, template: `
314
- <svg style="position: absolute; width: 100%; height: 100%; overflow: visible; pointer-events: none;">
315
- <defs>
316
- @for (marker of markers(); track marker.id) {
317
- <marker
318
- [id]="marker.id"
319
- [attr.markerWidth]="marker.width ?? 12.5"
320
- [attr.markerHeight]="marker.height ?? 12.5"
321
- viewBox="-10 -10 20 20"
322
- markerUnits="strokeWidth"
323
- orient="auto-start-reverse"
324
- refX="0"
325
- refY="0"
326
- >
327
- <polyline
328
- class="xy-flow__arrowhead"
329
- [class.arrowclosed]="marker.type === 'arrowclosed'"
330
- [attr.stroke]="marker.color || 'currentColor'"
331
- [attr.fill]="marker.type === 'arrowclosed' ? (marker.color || 'currentColor') : 'none'"
332
- stroke-linecap="round"
333
- stroke-linejoin="round"
334
- stroke-width="1"
335
- points="-5,-4 0,0 -5,4"
336
- />
337
- </marker>
338
- }
339
- </defs>
340
- </svg>
341
- @for (edge of visibleEdges(); track edge.id) {
342
- @if (!edge.hidden) {
343
- @let ei = getEdgeInputs(edge);
344
- <svg
345
- class="ng-flow__edge xy-flow__edge"
346
- [class]="getEdgeClasses(edge)"
347
- [class.selected]="edge.selected"
348
- [class.animated]="edge.animated"
349
- [class.selectable]="edge.selectable !== false"
350
- [style.z-index]="getEdgeZIndex(edge)"
351
- [attr.aria-label]="getEdgeAriaLabel(edge)"
352
- [attr.tabindex]="store.edgesFocusable() ? 0 : -1"
353
- role="img"
354
- style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;"
355
- (keydown)="onEdgeKeyDown($event, edge)"
356
- (focus)="onEdgeFocus(edge)"
357
- >
358
- <g
359
- [attr.data-id]="edge.id"
360
- [class]="getEdgeGClasses(edge)"
361
- [attr.aria-label]="edge.ariaLabel ? edge.ariaLabel : undefined"
362
- style="pointer-events: visibleStroke;"
363
- (click)="onEdgeEvent($event, edge, 'click')"
364
- (dblclick)="onEdgeEvent($event, edge, 'dblclick')"
365
- (contextmenu)="onEdgeEvent($event, edge, 'contextmenu')"
366
- (mouseenter)="onEdgeEvent($event, edge, 'mouseenter')"
367
- (mousemove)="onEdgeEvent($event, edge, 'mousemove')"
368
- (mouseleave)="onEdgeEvent($event, edge, 'mouseleave')"
369
- >
370
- @if (isCustomEdge(edge.type)) {
371
- <!--
372
- For custom edges the visual (path + labels) is rendered in the
373
- HTML overlay layer below, because NgComponentOutlet creates the
374
- dynamic component's host in the XHTML namespace which breaks SVG
375
- child rendering. We still emit a transparent interaction path
376
- here so that pointer events (click/hover/etc.) fire on the
377
- existing SVG <g> event handlers.
378
- -->
379
- <path
380
- class="xy-flow__edge-interaction"
381
- [attr.d]="getEdgePath(ei)"
382
- fill="none"
383
- stroke="transparent"
384
- [attr.stroke-width]="edge.interactionWidth ?? 20"
385
- style="pointer-events: all;"
386
- />
387
- } @else {
388
- <path
389
- class="xy-flow__edge-interaction"
390
- [attr.d]="getEdgePath(ei)"
391
- fill="none"
392
- stroke="transparent"
393
- [attr.stroke-width]="edge.interactionWidth ?? 20"
394
- style="pointer-events: all;"
395
- />
396
- <path
397
- class="ng-flow__edge-path xy-flow__edge-path"
398
- [attr.d]="getEdgePath(ei)"
399
- [attr.marker-start]="ei['markerStart']"
400
- [attr.marker-end]="ei['markerEnd']"
401
- [attr.style]="getEdgePathStyle(edge)"
402
- />
403
- }
404
- @if (isEdgeReconnectable(edge)) {
405
- <circle
406
- class="xy-flow__edgeupdater xy-flow__edgeupdater-source"
407
- [attr.cx]="shiftX(ei['sourceX'], reconnectRadius(), ei['sourcePosition'])"
408
- [attr.cy]="shiftY(ei['sourceY'], reconnectRadius(), ei['sourcePosition'])"
409
- [attr.r]="reconnectRadius()"
410
- stroke="transparent"
411
- fill="transparent"
412
- (mousedown)="onReconnectSourceMouseDown($event, edge)"
413
- />
414
- <circle
415
- class="xy-flow__edgeupdater xy-flow__edgeupdater-target"
416
- [attr.cx]="shiftX(ei['targetX'], reconnectRadius(), ei['targetPosition'])"
417
- [attr.cy]="shiftY(ei['targetY'], reconnectRadius(), ei['targetPosition'])"
418
- [attr.r]="reconnectRadius()"
419
- stroke="transparent"
420
- fill="transparent"
421
- (mousedown)="onReconnectTargetMouseDown($event, edge)"
422
- />
423
- }
424
- </g>
425
- </svg>
426
- }
427
- }
428
- <!--
429
- HTML overlay for custom edges. Angular's NgComponentOutlet can only
430
- create host elements in the XHTML namespace, so rendering a custom
431
- edge directly inside an <svg> sub-tree breaks its <path> children.
432
- We render the dynamic component here in an HTML context and let
433
- BaseEdgeComponent wrap its paths in an inline <svg>. Pointer events
434
- are still handled on the SVG <g> layer above via a transparent
435
- interaction path, so this overlay is pointer-events: none.
436
- -->
437
- @for (edge of visibleEdges(); track edge.id) {
438
- @if (!edge.hidden && isCustomEdge(edge.type)) {
439
- @let ei = getEdgeInputs(edge);
440
- <div
441
- class="ng-flow__custom-edge"
442
- [style.position]="'absolute'"
443
- [style.top]="'0'"
444
- [style.left]="'0'"
445
- [style.width]="'100%'"
446
- [style.height]="'100%'"
447
- [style.pointer-events]="'none'"
448
- [style.z-index]="getEdgeZIndex(edge)"
449
- >
450
- <ng-container
451
- *ngComponentOutlet="getEdgeComponent(edge.type); inputs: ei"
452
- />
453
- </div>
454
- }
455
- }
456
- <div class="xy-flow__edgelabel-renderer" style="position: absolute; width: 100%; height: 100%; pointer-events: none; top: 0; left: 0;">
457
- @for (edge of visibleEdges(); track edge.id) {
458
- @if (edge.label && !edge.hidden) {
459
- @let ei = getEdgeInputs(edge);
460
- <div
461
- class="xy-flow__edge-label"
462
- [style.position]="'absolute'"
463
- [style.transform]="'translate(-50%, -50%) translate(' + getEdgeCenterX(ei) + 'px, ' + getEdgeCenterY(ei) + 'px)'"
464
- [style.pointer-events]="'all'"
465
- >
466
- {{ edge.label }}
467
- </div>
468
- }
469
- }
470
- </div>
313
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: EdgeRendererComponent, isStandalone: true, selector: "ng-flow-edge-renderer", inputs: { reconnectRadius: { classPropertyName: "reconnectRadius", publicName: "reconnectRadius", isSignal: true, isRequired: false, transformFunction: null }, customEdgeTypes: { classPropertyName: "customEdgeTypes", publicName: "customEdgeTypes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { edgeClick: "edgeClick", edgeDoubleClick: "edgeDoubleClick", edgeContextMenu: "edgeContextMenu", edgeMouseEnter: "edgeMouseEnter", edgeMouseMove: "edgeMouseMove", edgeMouseLeave: "edgeMouseLeave", reconnect: "reconnect", reconnectStart: "reconnectStart", reconnectEnd: "reconnectEnd" }, host: { styleAttribute: "position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none;", classAttribute: "ng-flow__edges xy-flow__edges" }, ngImport: i0, template: `
314
+ <svg style="position: absolute; width: 100%; height: 100%; overflow: visible; pointer-events: none;">
315
+ <defs>
316
+ @for (marker of markers(); track marker.id) {
317
+ <marker
318
+ [id]="marker.id"
319
+ [attr.markerWidth]="marker.width ?? 12.5"
320
+ [attr.markerHeight]="marker.height ?? 12.5"
321
+ viewBox="-10 -10 20 20"
322
+ markerUnits="strokeWidth"
323
+ orient="auto-start-reverse"
324
+ refX="0"
325
+ refY="0"
326
+ >
327
+ <polyline
328
+ class="xy-flow__arrowhead"
329
+ [class.arrowclosed]="marker.type === 'arrowclosed'"
330
+ [attr.stroke]="marker.color || 'currentColor'"
331
+ [attr.fill]="marker.type === 'arrowclosed' ? (marker.color || 'currentColor') : 'none'"
332
+ stroke-linecap="round"
333
+ stroke-linejoin="round"
334
+ stroke-width="1"
335
+ points="-5,-4 0,0 -5,4"
336
+ />
337
+ </marker>
338
+ }
339
+ </defs>
340
+ </svg>
341
+ @for (edge of visibleEdges(); track edge.id) {
342
+ @if (!edge.hidden) {
343
+ @let ei = getEdgeInputs(edge);
344
+ <svg
345
+ class="ng-flow__edge xy-flow__edge"
346
+ [class]="getEdgeClasses(edge)"
347
+ [class.selected]="edge.selected"
348
+ [class.animated]="edge.animated"
349
+ [class.selectable]="edge.selectable !== false"
350
+ [style.z-index]="getEdgeZIndex(edge)"
351
+ [attr.aria-label]="getEdgeAriaLabel(edge)"
352
+ [attr.tabindex]="store.edgesFocusable() ? 0 : -1"
353
+ role="img"
354
+ style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;"
355
+ (keydown)="onEdgeKeyDown($event, edge)"
356
+ (focus)="onEdgeFocus(edge)"
357
+ >
358
+ <g
359
+ [attr.data-id]="edge.id"
360
+ [class]="getEdgeGClasses(edge)"
361
+ [attr.aria-label]="edge.ariaLabel ? edge.ariaLabel : undefined"
362
+ style="pointer-events: visibleStroke;"
363
+ (click)="onEdgeEvent($event, edge, 'click')"
364
+ (dblclick)="onEdgeEvent($event, edge, 'dblclick')"
365
+ (contextmenu)="onEdgeEvent($event, edge, 'contextmenu')"
366
+ (mouseenter)="onEdgeEvent($event, edge, 'mouseenter')"
367
+ (mousemove)="onEdgeEvent($event, edge, 'mousemove')"
368
+ (mouseleave)="onEdgeEvent($event, edge, 'mouseleave')"
369
+ >
370
+ @if (isCustomEdge(edge.type)) {
371
+ <!--
372
+ For custom edges the visual (path + labels) is rendered in the
373
+ HTML overlay layer below, because NgComponentOutlet creates the
374
+ dynamic component's host in the XHTML namespace which breaks SVG
375
+ child rendering. We still emit a transparent interaction path
376
+ here so that pointer events (click/hover/etc.) fire on the
377
+ existing SVG <g> event handlers.
378
+ -->
379
+ <path
380
+ class="xy-flow__edge-interaction"
381
+ [attr.d]="getEdgePath(ei)"
382
+ fill="none"
383
+ stroke="transparent"
384
+ [attr.stroke-width]="edge.interactionWidth ?? 20"
385
+ style="pointer-events: all;"
386
+ />
387
+ } @else {
388
+ <path
389
+ class="xy-flow__edge-interaction"
390
+ [attr.d]="getEdgePath(ei)"
391
+ fill="none"
392
+ stroke="transparent"
393
+ [attr.stroke-width]="edge.interactionWidth ?? 20"
394
+ style="pointer-events: all;"
395
+ />
396
+ <path
397
+ class="ng-flow__edge-path xy-flow__edge-path"
398
+ [attr.d]="getEdgePath(ei)"
399
+ [attr.marker-start]="ei['markerStart']"
400
+ [attr.marker-end]="ei['markerEnd']"
401
+ [attr.style]="getEdgePathStyle(edge)"
402
+ />
403
+ }
404
+ @if (isEdgeReconnectable(edge)) {
405
+ <circle
406
+ class="xy-flow__edgeupdater xy-flow__edgeupdater-source"
407
+ [attr.cx]="shiftX(ei['sourceX'], reconnectRadius(), ei['sourcePosition'])"
408
+ [attr.cy]="shiftY(ei['sourceY'], reconnectRadius(), ei['sourcePosition'])"
409
+ [attr.r]="reconnectRadius()"
410
+ stroke="transparent"
411
+ fill="transparent"
412
+ (mousedown)="onReconnectSourceMouseDown($event, edge)"
413
+ />
414
+ <circle
415
+ class="xy-flow__edgeupdater xy-flow__edgeupdater-target"
416
+ [attr.cx]="shiftX(ei['targetX'], reconnectRadius(), ei['targetPosition'])"
417
+ [attr.cy]="shiftY(ei['targetY'], reconnectRadius(), ei['targetPosition'])"
418
+ [attr.r]="reconnectRadius()"
419
+ stroke="transparent"
420
+ fill="transparent"
421
+ (mousedown)="onReconnectTargetMouseDown($event, edge)"
422
+ />
423
+ }
424
+ </g>
425
+ </svg>
426
+ }
427
+ }
428
+ <!--
429
+ HTML overlay for custom edges. Angular's NgComponentOutlet can only
430
+ create host elements in the XHTML namespace, so rendering a custom
431
+ edge directly inside an <svg> sub-tree breaks its <path> children.
432
+ We render the dynamic component here in an HTML context and let
433
+ BaseEdgeComponent wrap its paths in an inline <svg>. Pointer events
434
+ are still handled on the SVG <g> layer above via a transparent
435
+ interaction path, so this overlay is pointer-events: none.
436
+ -->
437
+ @for (edge of visibleEdges(); track edge.id) {
438
+ @if (!edge.hidden && isCustomEdge(edge.type)) {
439
+ @let ei = getEdgeInputs(edge);
440
+ <div
441
+ class="ng-flow__custom-edge"
442
+ [style.position]="'absolute'"
443
+ [style.top]="'0'"
444
+ [style.left]="'0'"
445
+ [style.width]="'100%'"
446
+ [style.height]="'100%'"
447
+ [style.pointer-events]="'none'"
448
+ [style.z-index]="getEdgeZIndex(edge)"
449
+ >
450
+ <ng-container
451
+ *ngComponentOutlet="getEdgeComponent(edge.type); inputs: ei"
452
+ />
453
+ </div>
454
+ }
455
+ }
456
+ <div class="xy-flow__edgelabel-renderer" style="position: absolute; width: 100%; height: 100%; pointer-events: none; top: 0; left: 0;">
457
+ @for (edge of visibleEdges(); track edge.id) {
458
+ @if (edge.label && !edge.hidden) {
459
+ @let ei = getEdgeInputs(edge);
460
+ <div
461
+ class="xy-flow__edge-label"
462
+ [style.position]="'absolute'"
463
+ [style.transform]="'translate(-50%, -50%) translate(' + getEdgeCenterX(ei) + 'px, ' + getEdgeCenterY(ei) + 'px)'"
464
+ [style.pointer-events]="'all'"
465
+ >
466
+ {{ edge.label }}
467
+ </div>
468
+ }
469
+ }
470
+ </div>
471
471
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
472
472
  }
473
473
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: EdgeRendererComponent, decorators: [{
@@ -482,164 +482,164 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
482
482
  'class': 'ng-flow__edges xy-flow__edges',
483
483
  'style': 'position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none;',
484
484
  },
485
- template: `
486
- <svg style="position: absolute; width: 100%; height: 100%; overflow: visible; pointer-events: none;">
487
- <defs>
488
- @for (marker of markers(); track marker.id) {
489
- <marker
490
- [id]="marker.id"
491
- [attr.markerWidth]="marker.width ?? 12.5"
492
- [attr.markerHeight]="marker.height ?? 12.5"
493
- viewBox="-10 -10 20 20"
494
- markerUnits="strokeWidth"
495
- orient="auto-start-reverse"
496
- refX="0"
497
- refY="0"
498
- >
499
- <polyline
500
- class="xy-flow__arrowhead"
501
- [class.arrowclosed]="marker.type === 'arrowclosed'"
502
- [attr.stroke]="marker.color || 'currentColor'"
503
- [attr.fill]="marker.type === 'arrowclosed' ? (marker.color || 'currentColor') : 'none'"
504
- stroke-linecap="round"
505
- stroke-linejoin="round"
506
- stroke-width="1"
507
- points="-5,-4 0,0 -5,4"
508
- />
509
- </marker>
510
- }
511
- </defs>
512
- </svg>
513
- @for (edge of visibleEdges(); track edge.id) {
514
- @if (!edge.hidden) {
515
- @let ei = getEdgeInputs(edge);
516
- <svg
517
- class="ng-flow__edge xy-flow__edge"
518
- [class]="getEdgeClasses(edge)"
519
- [class.selected]="edge.selected"
520
- [class.animated]="edge.animated"
521
- [class.selectable]="edge.selectable !== false"
522
- [style.z-index]="getEdgeZIndex(edge)"
523
- [attr.aria-label]="getEdgeAriaLabel(edge)"
524
- [attr.tabindex]="store.edgesFocusable() ? 0 : -1"
525
- role="img"
526
- style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;"
527
- (keydown)="onEdgeKeyDown($event, edge)"
528
- (focus)="onEdgeFocus(edge)"
529
- >
530
- <g
531
- [attr.data-id]="edge.id"
532
- [class]="getEdgeGClasses(edge)"
533
- [attr.aria-label]="edge.ariaLabel ? edge.ariaLabel : undefined"
534
- style="pointer-events: visibleStroke;"
535
- (click)="onEdgeEvent($event, edge, 'click')"
536
- (dblclick)="onEdgeEvent($event, edge, 'dblclick')"
537
- (contextmenu)="onEdgeEvent($event, edge, 'contextmenu')"
538
- (mouseenter)="onEdgeEvent($event, edge, 'mouseenter')"
539
- (mousemove)="onEdgeEvent($event, edge, 'mousemove')"
540
- (mouseleave)="onEdgeEvent($event, edge, 'mouseleave')"
541
- >
542
- @if (isCustomEdge(edge.type)) {
543
- <!--
544
- For custom edges the visual (path + labels) is rendered in the
545
- HTML overlay layer below, because NgComponentOutlet creates the
546
- dynamic component's host in the XHTML namespace which breaks SVG
547
- child rendering. We still emit a transparent interaction path
548
- here so that pointer events (click/hover/etc.) fire on the
549
- existing SVG <g> event handlers.
550
- -->
551
- <path
552
- class="xy-flow__edge-interaction"
553
- [attr.d]="getEdgePath(ei)"
554
- fill="none"
555
- stroke="transparent"
556
- [attr.stroke-width]="edge.interactionWidth ?? 20"
557
- style="pointer-events: all;"
558
- />
559
- } @else {
560
- <path
561
- class="xy-flow__edge-interaction"
562
- [attr.d]="getEdgePath(ei)"
563
- fill="none"
564
- stroke="transparent"
565
- [attr.stroke-width]="edge.interactionWidth ?? 20"
566
- style="pointer-events: all;"
567
- />
568
- <path
569
- class="ng-flow__edge-path xy-flow__edge-path"
570
- [attr.d]="getEdgePath(ei)"
571
- [attr.marker-start]="ei['markerStart']"
572
- [attr.marker-end]="ei['markerEnd']"
573
- [attr.style]="getEdgePathStyle(edge)"
574
- />
575
- }
576
- @if (isEdgeReconnectable(edge)) {
577
- <circle
578
- class="xy-flow__edgeupdater xy-flow__edgeupdater-source"
579
- [attr.cx]="shiftX(ei['sourceX'], reconnectRadius(), ei['sourcePosition'])"
580
- [attr.cy]="shiftY(ei['sourceY'], reconnectRadius(), ei['sourcePosition'])"
581
- [attr.r]="reconnectRadius()"
582
- stroke="transparent"
583
- fill="transparent"
584
- (mousedown)="onReconnectSourceMouseDown($event, edge)"
585
- />
586
- <circle
587
- class="xy-flow__edgeupdater xy-flow__edgeupdater-target"
588
- [attr.cx]="shiftX(ei['targetX'], reconnectRadius(), ei['targetPosition'])"
589
- [attr.cy]="shiftY(ei['targetY'], reconnectRadius(), ei['targetPosition'])"
590
- [attr.r]="reconnectRadius()"
591
- stroke="transparent"
592
- fill="transparent"
593
- (mousedown)="onReconnectTargetMouseDown($event, edge)"
594
- />
595
- }
596
- </g>
597
- </svg>
598
- }
599
- }
600
- <!--
601
- HTML overlay for custom edges. Angular's NgComponentOutlet can only
602
- create host elements in the XHTML namespace, so rendering a custom
603
- edge directly inside an <svg> sub-tree breaks its <path> children.
604
- We render the dynamic component here in an HTML context and let
605
- BaseEdgeComponent wrap its paths in an inline <svg>. Pointer events
606
- are still handled on the SVG <g> layer above via a transparent
607
- interaction path, so this overlay is pointer-events: none.
608
- -->
609
- @for (edge of visibleEdges(); track edge.id) {
610
- @if (!edge.hidden && isCustomEdge(edge.type)) {
611
- @let ei = getEdgeInputs(edge);
612
- <div
613
- class="ng-flow__custom-edge"
614
- [style.position]="'absolute'"
615
- [style.top]="'0'"
616
- [style.left]="'0'"
617
- [style.width]="'100%'"
618
- [style.height]="'100%'"
619
- [style.pointer-events]="'none'"
620
- [style.z-index]="getEdgeZIndex(edge)"
621
- >
622
- <ng-container
623
- *ngComponentOutlet="getEdgeComponent(edge.type); inputs: ei"
624
- />
625
- </div>
626
- }
627
- }
628
- <div class="xy-flow__edgelabel-renderer" style="position: absolute; width: 100%; height: 100%; pointer-events: none; top: 0; left: 0;">
629
- @for (edge of visibleEdges(); track edge.id) {
630
- @if (edge.label && !edge.hidden) {
631
- @let ei = getEdgeInputs(edge);
632
- <div
633
- class="xy-flow__edge-label"
634
- [style.position]="'absolute'"
635
- [style.transform]="'translate(-50%, -50%) translate(' + getEdgeCenterX(ei) + 'px, ' + getEdgeCenterY(ei) + 'px)'"
636
- [style.pointer-events]="'all'"
637
- >
638
- {{ edge.label }}
639
- </div>
640
- }
641
- }
642
- </div>
485
+ template: `
486
+ <svg style="position: absolute; width: 100%; height: 100%; overflow: visible; pointer-events: none;">
487
+ <defs>
488
+ @for (marker of markers(); track marker.id) {
489
+ <marker
490
+ [id]="marker.id"
491
+ [attr.markerWidth]="marker.width ?? 12.5"
492
+ [attr.markerHeight]="marker.height ?? 12.5"
493
+ viewBox="-10 -10 20 20"
494
+ markerUnits="strokeWidth"
495
+ orient="auto-start-reverse"
496
+ refX="0"
497
+ refY="0"
498
+ >
499
+ <polyline
500
+ class="xy-flow__arrowhead"
501
+ [class.arrowclosed]="marker.type === 'arrowclosed'"
502
+ [attr.stroke]="marker.color || 'currentColor'"
503
+ [attr.fill]="marker.type === 'arrowclosed' ? (marker.color || 'currentColor') : 'none'"
504
+ stroke-linecap="round"
505
+ stroke-linejoin="round"
506
+ stroke-width="1"
507
+ points="-5,-4 0,0 -5,4"
508
+ />
509
+ </marker>
510
+ }
511
+ </defs>
512
+ </svg>
513
+ @for (edge of visibleEdges(); track edge.id) {
514
+ @if (!edge.hidden) {
515
+ @let ei = getEdgeInputs(edge);
516
+ <svg
517
+ class="ng-flow__edge xy-flow__edge"
518
+ [class]="getEdgeClasses(edge)"
519
+ [class.selected]="edge.selected"
520
+ [class.animated]="edge.animated"
521
+ [class.selectable]="edge.selectable !== false"
522
+ [style.z-index]="getEdgeZIndex(edge)"
523
+ [attr.aria-label]="getEdgeAriaLabel(edge)"
524
+ [attr.tabindex]="store.edgesFocusable() ? 0 : -1"
525
+ role="img"
526
+ style="overflow: visible; position: absolute; width: 100%; height: 100%; pointer-events: none;"
527
+ (keydown)="onEdgeKeyDown($event, edge)"
528
+ (focus)="onEdgeFocus(edge)"
529
+ >
530
+ <g
531
+ [attr.data-id]="edge.id"
532
+ [class]="getEdgeGClasses(edge)"
533
+ [attr.aria-label]="edge.ariaLabel ? edge.ariaLabel : undefined"
534
+ style="pointer-events: visibleStroke;"
535
+ (click)="onEdgeEvent($event, edge, 'click')"
536
+ (dblclick)="onEdgeEvent($event, edge, 'dblclick')"
537
+ (contextmenu)="onEdgeEvent($event, edge, 'contextmenu')"
538
+ (mouseenter)="onEdgeEvent($event, edge, 'mouseenter')"
539
+ (mousemove)="onEdgeEvent($event, edge, 'mousemove')"
540
+ (mouseleave)="onEdgeEvent($event, edge, 'mouseleave')"
541
+ >
542
+ @if (isCustomEdge(edge.type)) {
543
+ <!--
544
+ For custom edges the visual (path + labels) is rendered in the
545
+ HTML overlay layer below, because NgComponentOutlet creates the
546
+ dynamic component's host in the XHTML namespace which breaks SVG
547
+ child rendering. We still emit a transparent interaction path
548
+ here so that pointer events (click/hover/etc.) fire on the
549
+ existing SVG <g> event handlers.
550
+ -->
551
+ <path
552
+ class="xy-flow__edge-interaction"
553
+ [attr.d]="getEdgePath(ei)"
554
+ fill="none"
555
+ stroke="transparent"
556
+ [attr.stroke-width]="edge.interactionWidth ?? 20"
557
+ style="pointer-events: all;"
558
+ />
559
+ } @else {
560
+ <path
561
+ class="xy-flow__edge-interaction"
562
+ [attr.d]="getEdgePath(ei)"
563
+ fill="none"
564
+ stroke="transparent"
565
+ [attr.stroke-width]="edge.interactionWidth ?? 20"
566
+ style="pointer-events: all;"
567
+ />
568
+ <path
569
+ class="ng-flow__edge-path xy-flow__edge-path"
570
+ [attr.d]="getEdgePath(ei)"
571
+ [attr.marker-start]="ei['markerStart']"
572
+ [attr.marker-end]="ei['markerEnd']"
573
+ [attr.style]="getEdgePathStyle(edge)"
574
+ />
575
+ }
576
+ @if (isEdgeReconnectable(edge)) {
577
+ <circle
578
+ class="xy-flow__edgeupdater xy-flow__edgeupdater-source"
579
+ [attr.cx]="shiftX(ei['sourceX'], reconnectRadius(), ei['sourcePosition'])"
580
+ [attr.cy]="shiftY(ei['sourceY'], reconnectRadius(), ei['sourcePosition'])"
581
+ [attr.r]="reconnectRadius()"
582
+ stroke="transparent"
583
+ fill="transparent"
584
+ (mousedown)="onReconnectSourceMouseDown($event, edge)"
585
+ />
586
+ <circle
587
+ class="xy-flow__edgeupdater xy-flow__edgeupdater-target"
588
+ [attr.cx]="shiftX(ei['targetX'], reconnectRadius(), ei['targetPosition'])"
589
+ [attr.cy]="shiftY(ei['targetY'], reconnectRadius(), ei['targetPosition'])"
590
+ [attr.r]="reconnectRadius()"
591
+ stroke="transparent"
592
+ fill="transparent"
593
+ (mousedown)="onReconnectTargetMouseDown($event, edge)"
594
+ />
595
+ }
596
+ </g>
597
+ </svg>
598
+ }
599
+ }
600
+ <!--
601
+ HTML overlay for custom edges. Angular's NgComponentOutlet can only
602
+ create host elements in the XHTML namespace, so rendering a custom
603
+ edge directly inside an <svg> sub-tree breaks its <path> children.
604
+ We render the dynamic component here in an HTML context and let
605
+ BaseEdgeComponent wrap its paths in an inline <svg>. Pointer events
606
+ are still handled on the SVG <g> layer above via a transparent
607
+ interaction path, so this overlay is pointer-events: none.
608
+ -->
609
+ @for (edge of visibleEdges(); track edge.id) {
610
+ @if (!edge.hidden && isCustomEdge(edge.type)) {
611
+ @let ei = getEdgeInputs(edge);
612
+ <div
613
+ class="ng-flow__custom-edge"
614
+ [style.position]="'absolute'"
615
+ [style.top]="'0'"
616
+ [style.left]="'0'"
617
+ [style.width]="'100%'"
618
+ [style.height]="'100%'"
619
+ [style.pointer-events]="'none'"
620
+ [style.z-index]="getEdgeZIndex(edge)"
621
+ >
622
+ <ng-container
623
+ *ngComponentOutlet="getEdgeComponent(edge.type); inputs: ei"
624
+ />
625
+ </div>
626
+ }
627
+ }
628
+ <div class="xy-flow__edgelabel-renderer" style="position: absolute; width: 100%; height: 100%; pointer-events: none; top: 0; left: 0;">
629
+ @for (edge of visibleEdges(); track edge.id) {
630
+ @if (edge.label && !edge.hidden) {
631
+ @let ei = getEdgeInputs(edge);
632
+ <div
633
+ class="xy-flow__edge-label"
634
+ [style.position]="'absolute'"
635
+ [style.transform]="'translate(-50%, -50%) translate(' + getEdgeCenterX(ei) + 'px, ' + getEdgeCenterY(ei) + 'px)'"
636
+ [style.pointer-events]="'all'"
637
+ >
638
+ {{ edge.label }}
639
+ </div>
640
+ }
641
+ }
642
+ </div>
643
643
  `,
644
644
  }]
645
645
  }], propDecorators: { reconnectRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "reconnectRadius", required: false }] }], edgeClick: [{ type: i0.Output, args: ["edgeClick"] }], edgeDoubleClick: [{ type: i0.Output, args: ["edgeDoubleClick"] }], edgeContextMenu: [{ type: i0.Output, args: ["edgeContextMenu"] }], edgeMouseEnter: [{ type: i0.Output, args: ["edgeMouseEnter"] }], edgeMouseMove: [{ type: i0.Output, args: ["edgeMouseMove"] }], edgeMouseLeave: [{ type: i0.Output, args: ["edgeMouseLeave"] }], customEdgeTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "customEdgeTypes", required: false }] }], reconnect: [{ type: i0.Output, args: ["reconnect"] }], reconnectStart: [{ type: i0.Output, args: ["reconnectStart"] }], reconnectEnd: [{ type: i0.Output, args: ["reconnectEnd"] }] } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angflow/angular",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "type": "module",
5
5
  "description": "Angular Flow - A highly customizable Angular library for building node-based editors and interactive flow charts.",
6
6
  "keywords": [
@@ -47,7 +47,7 @@
47
47
  "typecheck": "tsc --noEmit"
48
48
  },
49
49
  "dependencies": {
50
- "@angflow/system": ">=0.0.85"
50
+ "@angflow/system": ">=0.0.86"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@angular/common": ">=17.0.0",