@angflow/angular 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +187 -0
  2. package/dist/base.css +1204 -0
  3. package/dist/esm/index.d.ts +2 -0
  4. package/dist/esm/index.d.ts.map +1 -0
  5. package/dist/esm/index.js +2 -0
  6. package/dist/esm/index.js.map +1 -0
  7. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts +25 -0
  8. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts.map +1 -0
  9. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js +58 -0
  10. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js.map +1 -0
  11. package/dist/esm/lib/components/attribution/attribution.component.d.ts +6 -0
  12. package/dist/esm/lib/components/attribution/attribution.component.d.ts.map +1 -0
  13. package/dist/esm/lib/components/attribution/attribution.component.js +32 -0
  14. package/dist/esm/lib/components/attribution/attribution.component.js.map +1 -0
  15. package/dist/esm/lib/components/background/background.component.d.ts +31 -0
  16. package/dist/esm/lib/components/background/background.component.d.ts.map +1 -0
  17. package/dist/esm/lib/components/background/background.component.js +209 -0
  18. package/dist/esm/lib/components/background/background.component.js.map +1 -0
  19. package/dist/esm/lib/components/connection-line/connection-line.component.d.ts +36 -0
  20. package/dist/esm/lib/components/connection-line/connection-line.component.d.ts.map +1 -0
  21. package/dist/esm/lib/components/connection-line/connection-line.component.js +146 -0
  22. package/dist/esm/lib/components/connection-line/connection-line.component.js.map +1 -0
  23. package/dist/esm/lib/components/controls/controls.component.d.ts +25 -0
  24. package/dist/esm/lib/components/controls/controls.component.d.ts.map +1 -0
  25. package/dist/esm/lib/components/controls/controls.component.js +174 -0
  26. package/dist/esm/lib/components/controls/controls.component.js.map +1 -0
  27. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts +6 -0
  28. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts.map +1 -0
  29. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.js +24 -0
  30. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.js.map +1 -0
  31. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts +22 -0
  32. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts.map +1 -0
  33. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js +64 -0
  34. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js.map +1 -0
  35. package/dist/esm/lib/components/edges/base-edge.component.d.ts +11 -0
  36. package/dist/esm/lib/components/edges/base-edge.component.d.ts.map +1 -0
  37. package/dist/esm/lib/components/edges/base-edge.component.js +56 -0
  38. package/dist/esm/lib/components/edges/base-edge.component.js.map +1 -0
  39. package/dist/esm/lib/components/edges/bezier-edge.component.d.ts +30 -0
  40. package/dist/esm/lib/components/edges/bezier-edge.component.d.ts.map +1 -0
  41. package/dist/esm/lib/components/edges/bezier-edge.component.js +68 -0
  42. package/dist/esm/lib/components/edges/bezier-edge.component.js.map +1 -0
  43. package/dist/esm/lib/components/edges/edge-text.component.d.ts +11 -0
  44. package/dist/esm/lib/components/edges/edge-text.component.d.ts.map +1 -0
  45. package/dist/esm/lib/components/edges/edge-text.component.js +48 -0
  46. package/dist/esm/lib/components/edges/edge-text.component.js.map +1 -0
  47. package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts +21 -0
  48. package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts.map +1 -0
  49. package/dist/esm/lib/components/edges/simple-bezier-edge.component.js +57 -0
  50. package/dist/esm/lib/components/edges/simple-bezier-edge.component.js.map +1 -0
  51. package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts +22 -0
  52. package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts.map +1 -0
  53. package/dist/esm/lib/components/edges/smooth-step-edge.component.js +59 -0
  54. package/dist/esm/lib/components/edges/smooth-step-edge.component.js.map +1 -0
  55. package/dist/esm/lib/components/edges/step-edge.component.d.ts +22 -0
  56. package/dist/esm/lib/components/edges/step-edge.component.d.ts.map +1 -0
  57. package/dist/esm/lib/components/edges/step-edge.component.js +60 -0
  58. package/dist/esm/lib/components/edges/step-edge.component.js.map +1 -0
  59. package/dist/esm/lib/components/edges/straight-edge.component.d.ts +18 -0
  60. package/dist/esm/lib/components/edges/straight-edge.component.d.ts.map +1 -0
  61. package/dist/esm/lib/components/edges/straight-edge.component.js +53 -0
  62. package/dist/esm/lib/components/edges/straight-edge.component.js.map +1 -0
  63. package/dist/esm/lib/components/handle/handle.component.d.ts +28 -0
  64. package/dist/esm/lib/components/handle/handle.component.d.ts.map +1 -0
  65. package/dist/esm/lib/components/handle/handle.component.js +162 -0
  66. package/dist/esm/lib/components/handle/handle.component.js.map +1 -0
  67. package/dist/esm/lib/components/minimap/minimap.component.d.ts +75 -0
  68. package/dist/esm/lib/components/minimap/minimap.component.d.ts.map +1 -0
  69. package/dist/esm/lib/components/minimap/minimap.component.js +319 -0
  70. package/dist/esm/lib/components/minimap/minimap.component.js.map +1 -0
  71. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts +6 -0
  72. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts.map +1 -0
  73. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js +24 -0
  74. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js.map +1 -0
  75. package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts +44 -0
  76. package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts.map +1 -0
  77. package/dist/esm/lib/components/node-resizer/node-resizer.component.js +198 -0
  78. package/dist/esm/lib/components/node-resizer/node-resizer.component.js.map +1 -0
  79. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts +19 -0
  80. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts.map +1 -0
  81. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js +101 -0
  82. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js.map +1 -0
  83. package/dist/esm/lib/components/nodes/default-node.component.d.ts +20 -0
  84. package/dist/esm/lib/components/nodes/default-node.component.d.ts.map +1 -0
  85. package/dist/esm/lib/components/nodes/default-node.component.js +52 -0
  86. package/dist/esm/lib/components/nodes/default-node.component.js.map +1 -0
  87. package/dist/esm/lib/components/nodes/group-node.component.d.ts +19 -0
  88. package/dist/esm/lib/components/nodes/group-node.component.d.ts.map +1 -0
  89. package/dist/esm/lib/components/nodes/group-node.component.js +34 -0
  90. package/dist/esm/lib/components/nodes/group-node.component.js.map +1 -0
  91. package/dist/esm/lib/components/nodes/input-node.component.d.ts +20 -0
  92. package/dist/esm/lib/components/nodes/input-node.component.d.ts.map +1 -0
  93. package/dist/esm/lib/components/nodes/input-node.component.js +49 -0
  94. package/dist/esm/lib/components/nodes/input-node.component.js.map +1 -0
  95. package/dist/esm/lib/components/nodes/output-node.component.d.ts +20 -0
  96. package/dist/esm/lib/components/nodes/output-node.component.d.ts.map +1 -0
  97. package/dist/esm/lib/components/nodes/output-node.component.js +48 -0
  98. package/dist/esm/lib/components/nodes/output-node.component.js.map +1 -0
  99. package/dist/esm/lib/components/panel/panel.component.d.ts +13 -0
  100. package/dist/esm/lib/components/panel/panel.component.d.ts.map +1 -0
  101. package/dist/esm/lib/components/panel/panel.component.js +39 -0
  102. package/dist/esm/lib/components/panel/panel.component.js.map +1 -0
  103. package/dist/esm/lib/components/selection-box/selection-box.component.d.ts +12 -0
  104. package/dist/esm/lib/components/selection-box/selection-box.component.d.ts.map +1 -0
  105. package/dist/esm/lib/components/selection-box/selection-box.component.js +56 -0
  106. package/dist/esm/lib/components/selection-box/selection-box.component.js.map +1 -0
  107. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts +8 -0
  108. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts.map +1 -0
  109. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.js +35 -0
  110. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.js.map +1 -0
  111. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts +70 -0
  112. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts.map +1 -0
  113. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js +503 -0
  114. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js.map +1 -0
  115. package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts +281 -0
  116. package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts.map +1 -0
  117. package/dist/esm/lib/container/ng-flow/ng-flow.component.js +644 -0
  118. package/dist/esm/lib/container/ng-flow/ng-flow.component.js.map +1 -0
  119. package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts +56 -0
  120. package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts.map +1 -0
  121. package/dist/esm/lib/container/node-renderer/node-renderer.component.js +312 -0
  122. package/dist/esm/lib/container/node-renderer/node-renderer.component.js.map +1 -0
  123. package/dist/esm/lib/container/pane/pane.component.d.ts +35 -0
  124. package/dist/esm/lib/container/pane/pane.component.d.ts.map +1 -0
  125. package/dist/esm/lib/container/pane/pane.component.js +161 -0
  126. package/dist/esm/lib/container/pane/pane.component.js.map +1 -0
  127. package/dist/esm/lib/container/viewport/viewport.component.d.ts +9 -0
  128. package/dist/esm/lib/container/viewport/viewport.component.d.ts.map +1 -0
  129. package/dist/esm/lib/container/viewport/viewport.component.js +35 -0
  130. package/dist/esm/lib/container/viewport/viewport.component.js.map +1 -0
  131. package/dist/esm/lib/directives/drag.directive.d.ts +21 -0
  132. package/dist/esm/lib/directives/drag.directive.d.ts.map +1 -0
  133. package/dist/esm/lib/directives/drag.directive.js +69 -0
  134. package/dist/esm/lib/directives/drag.directive.js.map +1 -0
  135. package/dist/esm/lib/directives/drop-zone.directive.d.ts +30 -0
  136. package/dist/esm/lib/directives/drop-zone.directive.d.ts.map +1 -0
  137. package/dist/esm/lib/directives/drop-zone.directive.js +58 -0
  138. package/dist/esm/lib/directives/drop-zone.directive.js.map +1 -0
  139. package/dist/esm/lib/directives/key-handler.directive.d.ts +29 -0
  140. package/dist/esm/lib/directives/key-handler.directive.d.ts.map +1 -0
  141. package/dist/esm/lib/directives/key-handler.directive.js +176 -0
  142. package/dist/esm/lib/directives/key-handler.directive.js.map +1 -0
  143. package/dist/esm/lib/directives/node-type.directive.d.ts +21 -0
  144. package/dist/esm/lib/directives/node-type.directive.d.ts.map +1 -0
  145. package/dist/esm/lib/directives/node-type.directive.js +32 -0
  146. package/dist/esm/lib/directives/node-type.directive.js.map +1 -0
  147. package/dist/esm/lib/public-api.d.ts +40 -0
  148. package/dist/esm/lib/public-api.d.ts.map +1 -0
  149. package/dist/esm/lib/public-api.js +67 -0
  150. package/dist/esm/lib/public-api.js.map +1 -0
  151. package/dist/esm/lib/services/flow-store.service.d.ts +227 -0
  152. package/dist/esm/lib/services/flow-store.service.d.ts.map +1 -0
  153. package/dist/esm/lib/services/flow-store.service.js +542 -0
  154. package/dist/esm/lib/services/flow-store.service.js.map +1 -0
  155. package/dist/esm/lib/services/ng-flow.service.d.ts +186 -0
  156. package/dist/esm/lib/services/ng-flow.service.d.ts.map +1 -0
  157. package/dist/esm/lib/services/ng-flow.service.js +501 -0
  158. package/dist/esm/lib/services/ng-flow.service.js.map +1 -0
  159. package/dist/esm/lib/services/tokens.d.ts +4 -0
  160. package/dist/esm/lib/services/tokens.d.ts.map +1 -0
  161. package/dist/esm/lib/services/tokens.js +4 -0
  162. package/dist/esm/lib/services/tokens.js.map +1 -0
  163. package/dist/esm/lib/types/edges.d.ts +83 -0
  164. package/dist/esm/lib/types/edges.d.ts.map +1 -0
  165. package/dist/esm/lib/types/edges.js +2 -0
  166. package/dist/esm/lib/types/edges.js.map +1 -0
  167. package/dist/esm/lib/types/general.d.ts +128 -0
  168. package/dist/esm/lib/types/general.d.ts.map +1 -0
  169. package/dist/esm/lib/types/general.js +2 -0
  170. package/dist/esm/lib/types/general.js.map +1 -0
  171. package/dist/esm/lib/types/index.d.ts +5 -0
  172. package/dist/esm/lib/types/index.d.ts.map +1 -0
  173. package/dist/esm/lib/types/index.js +5 -0
  174. package/dist/esm/lib/types/index.js.map +1 -0
  175. package/dist/esm/lib/types/nodes.d.ts +53 -0
  176. package/dist/esm/lib/types/nodes.d.ts.map +1 -0
  177. package/dist/esm/lib/types/nodes.js +2 -0
  178. package/dist/esm/lib/types/nodes.js.map +1 -0
  179. package/dist/esm/lib/types/store.d.ts +71 -0
  180. package/dist/esm/lib/types/store.d.ts.map +1 -0
  181. package/dist/esm/lib/types/store.js +2 -0
  182. package/dist/esm/lib/types/store.js.map +1 -0
  183. package/dist/esm/lib/utils/changes.d.ts +12 -0
  184. package/dist/esm/lib/utils/changes.d.ts.map +1 -0
  185. package/dist/esm/lib/utils/changes.js +134 -0
  186. package/dist/esm/lib/utils/changes.js.map +1 -0
  187. package/dist/esm/lib/utils/index.d.ts +2 -0
  188. package/dist/esm/lib/utils/index.d.ts.map +1 -0
  189. package/dist/esm/lib/utils/index.js +2 -0
  190. package/dist/esm/lib/utils/index.js.map +1 -0
  191. package/dist/esm/lib/utils/type-guards.d.ts +12 -0
  192. package/dist/esm/lib/utils/type-guards.d.ts.map +1 -0
  193. package/dist/esm/lib/utils/type-guards.js +16 -0
  194. package/dist/esm/lib/utils/type-guards.js.map +1 -0
  195. package/dist/style.css +1392 -0
  196. package/package.json +60 -0
@@ -0,0 +1,25 @@
1
+ import type { PanelPosition, FitViewOptionsBase } from '@angflow/system';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ControlsComponent {
4
+ private store;
5
+ private ngFlowService;
6
+ readonly position: import("@angular/core").InputSignal<PanelPosition>;
7
+ readonly showZoom: import("@angular/core").InputSignal<boolean>;
8
+ readonly showFitView: import("@angular/core").InputSignal<boolean>;
9
+ readonly showInteractive: import("@angular/core").InputSignal<boolean>;
10
+ readonly fitViewOptions: import("@angular/core").InputSignal<FitViewOptionsBase<any> | undefined>;
11
+ readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
12
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
13
+ readonly zoomInClick: import("@angular/core").OutputEmitterRef<void>;
14
+ readonly zoomOutClick: import("@angular/core").OutputEmitterRef<void>;
15
+ readonly fitViewClick: import("@angular/core").OutputEmitterRef<void>;
16
+ readonly interactiveChange: import("@angular/core").OutputEmitterRef<boolean>;
17
+ readonly isLocked: import("@angular/core").WritableSignal<boolean>;
18
+ onZoomIn(): void;
19
+ onZoomOut(): void;
20
+ onFitView(): void;
21
+ onToggleLock(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<ControlsComponent, never>;
23
+ 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>;
24
+ }
25
+ //# sourceMappingURL=controls.component.d.ts.map
@@ -0,0 +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,qBAuDa,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;IAE/C,QAAQ,CAAC,QAAQ,kDAAiB;IAElC,QAAQ;IAKR,SAAS;IAKT,SAAS;IAKT,YAAY;yCAnCD,iBAAiB;2CAAjB,iBAAiB;CA2C7B"}
@@ -0,0 +1,174 @@
1
+ import { Component, ChangeDetectionStrategy, input, output, inject, signal } from '@angular/core';
2
+ import { FlowStore } from '../../services/flow-store.service';
3
+ import { NgFlowService } from '../../services/ng-flow.service';
4
+ import { PanelComponent } from '../panel/panel.component';
5
+ import * as i0 from "@angular/core";
6
+ const _c0 = ["*"];
7
+ function ControlsComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
8
+ const _r1 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "button", 4);
10
+ i0.ɵɵlistener("click", function ControlsComponent_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onZoomIn()); });
11
+ i0.ɵɵnamespaceSVG();
12
+ i0.ɵɵelementStart(1, "svg", 5);
13
+ i0.ɵɵelement(2, "path", 6);
14
+ i0.ɵɵelementEnd()();
15
+ i0.ɵɵnamespaceHTML();
16
+ i0.ɵɵelementStart(3, "button", 7);
17
+ i0.ɵɵlistener("click", function ControlsComponent_Conditional_2_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onZoomOut()); });
18
+ i0.ɵɵnamespaceSVG();
19
+ i0.ɵɵelementStart(4, "svg", 5);
20
+ i0.ɵɵelement(5, "path", 8);
21
+ i0.ɵɵelementEnd()();
22
+ } }
23
+ function ControlsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
24
+ const _r3 = i0.ɵɵgetCurrentView();
25
+ i0.ɵɵelementStart(0, "button", 9);
26
+ i0.ɵɵlistener("click", function ControlsComponent_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFitView()); });
27
+ i0.ɵɵnamespaceSVG();
28
+ i0.ɵɵelementStart(1, "svg", 5);
29
+ i0.ɵɵelement(2, "path", 10);
30
+ i0.ɵɵelementEnd()();
31
+ } }
32
+ function ControlsComponent_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵnamespaceSVG();
34
+ i0.ɵɵelementStart(0, "svg", 12);
35
+ i0.ɵɵelement(1, "path", 13);
36
+ i0.ɵɵelementEnd();
37
+ } }
38
+ function ControlsComponent_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
39
+ i0.ɵɵnamespaceSVG();
40
+ i0.ɵɵelementStart(0, "svg", 12);
41
+ i0.ɵɵelement(1, "path", 14);
42
+ i0.ɵɵelementEnd();
43
+ } }
44
+ function ControlsComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
45
+ const _r4 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "button", 11);
47
+ i0.ɵɵlistener("click", function ControlsComponent_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onToggleLock()); });
48
+ i0.ɵɵconditionalCreate(1, ControlsComponent_Conditional_4_Conditional_1_Template, 2, 0, ":svg:svg", 12)(2, ControlsComponent_Conditional_4_Conditional_2_Template, 2, 0, ":svg:svg", 12);
49
+ i0.ɵɵelementEnd();
50
+ } if (rf & 2) {
51
+ const ctx_r1 = i0.ɵɵnextContext();
52
+ i0.ɵɵadvance();
53
+ i0.ɵɵconditional(ctx_r1.isLocked() ? 1 : 2);
54
+ } }
55
+ export class ControlsComponent {
56
+ constructor() {
57
+ this.store = inject(FlowStore);
58
+ this.ngFlowService = inject(NgFlowService);
59
+ this.position = input('bottom-left', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
60
+ this.showZoom = input(true, ...(ngDevMode ? [{ debugName: "showZoom" }] : /* istanbul ignore next */ []));
61
+ this.showFitView = input(true, ...(ngDevMode ? [{ debugName: "showFitView" }] : /* istanbul ignore next */ []));
62
+ this.showInteractive = input(true, ...(ngDevMode ? [{ debugName: "showInteractive" }] : /* istanbul ignore next */ []));
63
+ this.fitViewOptions = input(...(ngDevMode ? [undefined, { debugName: "fitViewOptions" }] : /* istanbul ignore next */ []));
64
+ this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
65
+ this.ariaLabel = input('Angular Flow controls', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
66
+ // Callback outputs
67
+ this.zoomInClick = output();
68
+ this.zoomOutClick = output();
69
+ this.fitViewClick = output();
70
+ this.interactiveChange = output();
71
+ this.isLocked = signal(false, ...(ngDevMode ? [{ debugName: "isLocked" }] : /* istanbul ignore next */ []));
72
+ }
73
+ onZoomIn() {
74
+ this.ngFlowService.zoomIn();
75
+ this.zoomInClick.emit();
76
+ }
77
+ onZoomOut() {
78
+ this.ngFlowService.zoomOut();
79
+ this.zoomOutClick.emit();
80
+ }
81
+ onFitView() {
82
+ this.ngFlowService.fitView(this.fitViewOptions());
83
+ this.fitViewClick.emit();
84
+ }
85
+ onToggleLock() {
86
+ const locked = !this.isLocked();
87
+ this.isLocked.set(locked);
88
+ this.store.nodesDraggable.set(!locked);
89
+ this.store.nodesConnectable.set(!locked);
90
+ this.store.elementsSelectable.set(!locked);
91
+ this.interactiveChange.emit(!locked);
92
+ }
93
+ static { this.ɵfac = function ControlsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ControlsComponent)(); }; }
94
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ControlsComponent, selectors: [["ng-flow-controls"]], inputs: { position: [1, "position"], showZoom: [1, "showZoom"], showFitView: [1, "showFitView"], showInteractive: [1, "showInteractive"], fitViewOptions: [1, "fitViewOptions"], orientation: [1, "orientation"], ariaLabel: [1, "ariaLabel"] }, outputs: { zoomInClick: "zoomInClick", zoomOutClick: "zoomOutClick", fitViewClick: "fitViewClick", interactiveChange: "interactiveChange" }, ngContentSelectors: _c0, decls: 6, vars: 7, consts: [[3, "position"], [1, "ng-flow__controls", "xy-flow__controls"], ["title", "fit view", 1, "ng-flow__controls-button", "xy-flow__controls-button"], ["title", "toggle interactivity", 1, "ng-flow__controls-button", "xy-flow__controls-button"], ["title", "zoom in", 1, "ng-flow__controls-button", "xy-flow__controls-button", 3, "click"], ["xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 32 32"], ["d", "M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"], ["title", "zoom out", 1, "ng-flow__controls-button", "xy-flow__controls-button", 3, "click"], ["d", "M0 13.867h32v4.266H0z"], ["title", "fit view", 1, "ng-flow__controls-button", "xy-flow__controls-button", 3, "click"], ["d", "M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 01-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"], ["title", "toggle interactivity", 1, "ng-flow__controls-button", "xy-flow__controls-button", 3, "click"], ["xmlns", "http://www.w3.org/2000/svg", "viewBox", "0 0 25 32"], ["d", "M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"], ["d", "M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"]], template: function ControlsComponent_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵprojectionDef();
96
+ i0.ɵɵelementStart(0, "ng-flow-panel", 0)(1, "div", 1);
97
+ i0.ɵɵconditionalCreate(2, ControlsComponent_Conditional_2_Template, 6, 0);
98
+ i0.ɵɵconditionalCreate(3, ControlsComponent_Conditional_3_Template, 3, 0, "button", 2);
99
+ i0.ɵɵconditionalCreate(4, ControlsComponent_Conditional_4_Template, 3, 1, "button", 3);
100
+ i0.ɵɵprojection(5);
101
+ i0.ɵɵelementEnd()();
102
+ } if (rf & 2) {
103
+ i0.ɵɵproperty("position", ctx.position());
104
+ i0.ɵɵadvance();
105
+ i0.ɵɵclassProp("horizontal", ctx.orientation() === "horizontal");
106
+ i0.ɵɵattribute("aria-label", ctx.ariaLabel());
107
+ i0.ɵɵadvance();
108
+ i0.ɵɵconditional(ctx.showZoom() ? 2 : -1);
109
+ i0.ɵɵadvance();
110
+ i0.ɵɵconditional(ctx.showFitView() ? 3 : -1);
111
+ i0.ɵɵadvance();
112
+ i0.ɵɵconditional(ctx.showInteractive() ? 4 : -1);
113
+ } }, dependencies: [PanelComponent], encapsulation: 2, changeDetection: 0 }); }
114
+ }
115
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ControlsComponent, [{
116
+ type: Component,
117
+ args: [{
118
+ selector: 'ng-flow-controls',
119
+ standalone: true,
120
+ imports: [PanelComponent],
121
+ changeDetection: ChangeDetectionStrategy.OnPush,
122
+ template: `
123
+ <ng-flow-panel [position]="position()">
124
+ <div
125
+ class="ng-flow__controls xy-flow__controls"
126
+ [class.horizontal]="orientation() === 'horizontal'"
127
+ [attr.aria-label]="ariaLabel()"
128
+ >
129
+ @if (showZoom()) {
130
+ <button
131
+ class="ng-flow__controls-button xy-flow__controls-button"
132
+ title="zoom in"
133
+ (click)="onZoomIn()"
134
+ >
135
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"/></svg>
136
+ </button>
137
+ <button
138
+ class="ng-flow__controls-button xy-flow__controls-button"
139
+ title="zoom out"
140
+ (click)="onZoomOut()"
141
+ >
142
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M0 13.867h32v4.266H0z"/></svg>
143
+ </button>
144
+ }
145
+ @if (showFitView()) {
146
+ <button
147
+ class="ng-flow__controls-button xy-flow__controls-button"
148
+ title="fit view"
149
+ (click)="onFitView()"
150
+ >
151
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 01-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"/></svg>
152
+ </button>
153
+ }
154
+ @if (showInteractive()) {
155
+ <button
156
+ class="ng-flow__controls-button xy-flow__controls-button"
157
+ title="toggle interactivity"
158
+ (click)="onToggleLock()"
159
+ >
160
+ @if (isLocked()) {
161
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 32"><path d="M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"/></svg>
162
+ } @else {
163
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 32"><path d="M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"/></svg>
164
+ }
165
+ </button>
166
+ }
167
+ <ng-content />
168
+ </div>
169
+ </ng-flow-panel>
170
+ `,
171
+ }]
172
+ }], null, { 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"] }] }); })();
173
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ControlsComponent, { className: "ControlsComponent", filePath: "lib/components/controls/controls.component.ts", lineNumber: 62 }); })();
174
+ //# sourceMappingURL=controls.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/controls/controls.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;;;;;IAehD,iCAIC;IADC,qLAAS,iBAAU,KAAC;;IAEpB,8BAA4D;IAAA,0BAAiF;IAC/I,AAD+I,iBAAM,EAC5I;;IACT,iCAIC;IADC,qLAAS,kBAAW,KAAC;;IAErB,8BAA4D;IAAA,0BAAiC;IAC/F,AAD+F,iBAAM,EAC5F;;;;IAGT,iCAIC;IADC,qLAAS,kBAAW,KAAC;;IAErB,8BAA4D;IAAA,2BAAqY;IACnc,AADmc,iBAAM,EAChc;;;;IASL,+BAA4D;IAAA,2BAA0c;IAAA,iBAAM;;;;IAE5gB,+BAA4D;IAAA,2BAAgZ;IAAA,iBAAM;;;;IARtd,kCAIC;IADC,qLAAS,qBAAc,KAAC;IAItB,AAFF,uGAAkB,iFAET;IAGX,iBAAS;;;IALP,cAIC;IAJD,2CAIC;;AAQb,MAAM,OAAO,iBAAiB;IAvD9B;QAwDU,UAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1B,kBAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAErC,aAAQ,GAAG,KAAK,CAAgB,aAAa,+EAAC,CAAC;QAC/C,aAAQ,GAAG,KAAK,CAAC,IAAI,+EAAC,CAAC;QACvB,gBAAW,GAAG,KAAK,CAAC,IAAI,kFAAC,CAAC;QAC1B,oBAAe,GAAG,KAAK,CAAC,IAAI,sFAAC,CAAC;QAC9B,mBAAc,GAAG,KAAK,+FAA2B,CAAC;QAClD,gBAAW,GAAG,KAAK,CAA4B,UAAU,kFAAC,CAAC;QAC3D,cAAS,GAAG,KAAK,CAAS,uBAAuB,gFAAC,CAAC;QAE5D,mBAAmB;QACV,gBAAW,GAAG,MAAM,EAAQ,CAAC;QAC7B,iBAAY,GAAG,MAAM,EAAQ,CAAC;QAC9B,iBAAY,GAAG,MAAM,EAAQ,CAAC;QAC9B,sBAAiB,GAAG,MAAM,EAAW,CAAC;QAEtC,aAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC,CAAC;KAyBnC;IAvBC,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;kHA1CU,iBAAiB;oEAAjB,iBAAiB;;YAhDxB,AADF,wCAAuC,aAKpC;YACC,yEAAkB;YAgBlB,sFAAqB;YASrB,sFAAyB;YAazB,kBAAc;YAElB,AADE,iBAAM,EACQ;;YA9CD,yCAAuB;YAGlC,cAAmD;YAAnD,gEAAmD;;YAGnD,cAeC;YAfD,yCAeC;YACD,cAQC;YARD,4CAQC;YACD,cAYC;YAZD,gDAYC;4BA9CG,cAAc;;iFAoDb,iBAAiB;cAvD7B,SAAS;eAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,cAAc,CAAC;gBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDT;aACF;;kFACY,iBAAiB"}
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EdgeLabelRendererComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<EdgeLabelRendererComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<EdgeLabelRendererComponent, "ng-flow-edge-label-renderer", never, {}, {}, never, ["*"], true, never>;
5
+ }
6
+ //# sourceMappingURL=edge-label-renderer.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-label-renderer.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/edge-label-renderer/edge-label-renderer.component.ts"],"names":[],"mappings":";AAEA,qBASa,0BAA0B;yCAA1B,0BAA0B;2CAA1B,0BAA0B;CAAG"}
@@ -0,0 +1,24 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const _c0 = ["*"];
4
+ export class EdgeLabelRendererComponent {
5
+ static { this.ɵfac = function EdgeLabelRendererComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EdgeLabelRendererComponent)(); }; }
6
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EdgeLabelRendererComponent, selectors: [["ng-flow-edge-label-renderer"]], hostAttrs: [1, "ng-flow__edgelabel-renderer", "xy-flow__edgelabel-renderer"], ngContentSelectors: _c0, decls: 1, vars: 0, template: function EdgeLabelRendererComponent_Template(rf, ctx) { if (rf & 1) {
7
+ i0.ɵɵprojectionDef();
8
+ i0.ɵɵprojection(0);
9
+ } }, encapsulation: 2, changeDetection: 0 }); }
10
+ }
11
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EdgeLabelRendererComponent, [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'ng-flow-edge-label-renderer',
15
+ standalone: true,
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
+ host: {
18
+ 'class': 'ng-flow__edgelabel-renderer xy-flow__edgelabel-renderer',
19
+ },
20
+ template: `<ng-content />`,
21
+ }]
22
+ }], null, null); })();
23
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EdgeLabelRendererComponent, { className: "EdgeLabelRendererComponent", filePath: "lib/components/edge-label-renderer/edge-label-renderer.component.ts", lineNumber: 12 }); })();
24
+ //# sourceMappingURL=edge-label-renderer.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-label-renderer.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/edge-label-renderer/edge-label-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;;;AAWnE,MAAM,OAAO,0BAA0B;2HAA1B,0BAA0B;oEAA1B,0BAA0B;;YAF1B,kBAAc;;;iFAEd,0BAA0B;cATtC,SAAS;eAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE,yDAAyD;iBACnE;gBACD,QAAQ,EAAE,gBAAgB;aAC3B;;kFACY,0BAA0B"}
@@ -0,0 +1,22 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EdgeToolbarComponent {
3
+ private readonly store;
4
+ /** The ID of the edge this toolbar belongs to. */
5
+ readonly edgeId: import("@angular/core").InputSignal<string>;
6
+ /** Horizontal position in flow coordinates. */
7
+ readonly x: import("@angular/core").InputSignal<number>;
8
+ /** Vertical position in flow coordinates. */
9
+ readonly y: import("@angular/core").InputSignal<number>;
10
+ /** Horizontal alignment relative to (x, y). */
11
+ readonly alignX: import("@angular/core").InputSignal<"center" | "left" | "right">;
12
+ /** Vertical alignment relative to (x, y). */
13
+ readonly alignY: import("@angular/core").InputSignal<"center" | "bottom" | "top">;
14
+ /** Override visibility. Defaults to showing when the edge is selected. */
15
+ readonly isVisible: import("@angular/core").InputSignal<boolean | undefined>;
16
+ readonly shouldShow: import("@angular/core").Signal<boolean>;
17
+ readonly zIndex: import("@angular/core").Signal<any>;
18
+ readonly toolbarTransform: import("@angular/core").Signal<string>;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<EdgeToolbarComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<EdgeToolbarComponent, "ng-flow-edge-toolbar", never, { "edgeId": { "alias": "edgeId"; "required": true; "isSignal": true; }; "x": { "alias": "x"; "required": true; "isSignal": true; }; "y": { "alias": "y"; "required": true; "isSignal": true; }; "alignX": { "alias": "alignX"; "required": false; "isSignal": true; }; "alignY": { "alias": "alignY"; "required": false; "isSignal": true; }; "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
21
+ }
22
+ //# sourceMappingURL=edge-toolbar.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-toolbar.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/edge-toolbar/edge-toolbar.component.ts"],"names":[],"mappings":";AAIA,qBAea,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAE3C,kDAAkD;IAClD,QAAQ,CAAC,MAAM,8CAA4B;IAE3C,+CAA+C;IAC/C,QAAQ,CAAC,CAAC,8CAA4B;IAEtC,6CAA6C;IAC7C,QAAQ,CAAC,CAAC,8CAA4B;IAEtC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,mEAAgD;IAE/D,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,mEAAgD;IAE/D,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,2DAAyC;IAE3D,QAAQ,CAAC,UAAU,0CAKhB;IAEH,QAAQ,CAAC,MAAM,sCAGZ;IAEH,QAAQ,CAAC,gBAAgB,yCAGtB;yCApCQ,oBAAoB;2CAApB,oBAAoB;CAqChC"}
@@ -0,0 +1,64 @@
1
+ import { Component, ChangeDetectionStrategy, input, inject, computed } from '@angular/core';
2
+ import { getEdgeToolbarTransform } from '@angflow/system';
3
+ import { FlowStore } from '../../services/flow-store.service';
4
+ import * as i0 from "@angular/core";
5
+ const _c0 = ["*"];
6
+ export class EdgeToolbarComponent {
7
+ constructor() {
8
+ this.store = inject(FlowStore);
9
+ /** The ID of the edge this toolbar belongs to. */
10
+ this.edgeId = input.required(...(ngDevMode ? [{ debugName: "edgeId" }] : /* istanbul ignore next */ []));
11
+ /** Horizontal position in flow coordinates. */
12
+ this.x = input.required(...(ngDevMode ? [{ debugName: "x" }] : /* istanbul ignore next */ []));
13
+ /** Vertical position in flow coordinates. */
14
+ this.y = input.required(...(ngDevMode ? [{ debugName: "y" }] : /* istanbul ignore next */ []));
15
+ /** Horizontal alignment relative to (x, y). */
16
+ this.alignX = input('center', ...(ngDevMode ? [{ debugName: "alignX" }] : /* istanbul ignore next */ []));
17
+ /** Vertical alignment relative to (x, y). */
18
+ this.alignY = input('center', ...(ngDevMode ? [{ debugName: "alignY" }] : /* istanbul ignore next */ []));
19
+ /** Override visibility. Defaults to showing when the edge is selected. */
20
+ this.isVisible = input(undefined, ...(ngDevMode ? [{ debugName: "isVisible" }] : /* istanbul ignore next */ []));
21
+ this.shouldShow = computed(() => {
22
+ const vis = this.isVisible();
23
+ if (vis !== undefined)
24
+ return vis;
25
+ const edge = this.store.edges().find(e => e.id === this.edgeId());
26
+ return edge?.selected ?? false;
27
+ }, ...(ngDevMode ? [{ debugName: "shouldShow" }] : /* istanbul ignore next */ []));
28
+ this.zIndex = computed(() => {
29
+ const edge = this.store.edges().find(e => e.id === this.edgeId());
30
+ return (edge?.zIndex ?? 0) + 1;
31
+ }, ...(ngDevMode ? [{ debugName: "zIndex" }] : /* istanbul ignore next */ []));
32
+ this.toolbarTransform = computed(() => {
33
+ const zoom = this.store.transform()[2];
34
+ return getEdgeToolbarTransform(this.x(), this.y(), zoom, this.alignX(), this.alignY());
35
+ }, ...(ngDevMode ? [{ debugName: "toolbarTransform" }] : /* istanbul ignore next */ []));
36
+ }
37
+ static { this.ɵfac = function EdgeToolbarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EdgeToolbarComponent)(); }; }
38
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EdgeToolbarComponent, selectors: [["ng-flow-edge-toolbar"]], hostAttrs: [1, "ng-flow__edge-toolbar", "xy-flow__edge-toolbar"], hostVars: 12, hostBindings: function EdgeToolbarComponent_HostBindings(rf, ctx) { if (rf & 2) {
39
+ i0.ɵɵstyleProp("display", ctx.shouldShow() ? "block" : "none")("position", "absolute")("transform", ctx.toolbarTransform())("transform-origin", "0 0")("z-index", ctx.zIndex())("pointer-events", "all");
40
+ } }, inputs: { edgeId: [1, "edgeId"], x: [1, "x"], y: [1, "y"], alignX: [1, "alignX"], alignY: [1, "alignY"], isVisible: [1, "isVisible"] }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function EdgeToolbarComponent_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵprojectionDef();
42
+ i0.ɵɵprojection(0);
43
+ } }, encapsulation: 2, changeDetection: 0 }); }
44
+ }
45
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EdgeToolbarComponent, [{
46
+ type: Component,
47
+ args: [{
48
+ selector: 'ng-flow-edge-toolbar',
49
+ standalone: true,
50
+ changeDetection: ChangeDetectionStrategy.OnPush,
51
+ host: {
52
+ 'class': 'ng-flow__edge-toolbar xy-flow__edge-toolbar',
53
+ '[style.display]': 'shouldShow() ? "block" : "none"',
54
+ '[style.position]': '"absolute"',
55
+ '[style.transform]': 'toolbarTransform()',
56
+ '[style.transform-origin]': '"0 0"',
57
+ '[style.z-index]': 'zIndex()',
58
+ '[style.pointer-events]': '"all"',
59
+ },
60
+ template: `<ng-content />`,
61
+ }]
62
+ }], null, { edgeId: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgeId", required: true }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], y: [{ type: i0.Input, args: [{ isSignal: true, alias: "y", required: true }] }], alignX: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignX", required: false }] }], alignY: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignY", required: false }] }], isVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isVisible", required: false }] }] }); })();
63
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EdgeToolbarComponent, { className: "EdgeToolbarComponent", filePath: "lib/components/edge-toolbar/edge-toolbar.component.ts", lineNumber: 20 }); })();
64
+ //# sourceMappingURL=edge-toolbar.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-toolbar.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/edge-toolbar/edge-toolbar.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;;;AAiB9D,MAAM,OAAO,oBAAoB;IAfjC;QAgBmB,UAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAE3C,kDAAkD;QACzC,WAAM,GAAG,KAAK,CAAC,QAAQ,4EAAU,CAAC;QAE3C,+CAA+C;QACtC,MAAC,GAAG,KAAK,CAAC,QAAQ,uEAAU,CAAC;QAEtC,6CAA6C;QACpC,MAAC,GAAG,KAAK,CAAC,QAAQ,uEAAU,CAAC;QAEtC,+CAA+C;QACtC,WAAM,GAAG,KAAK,CAA8B,QAAQ,6EAAC,CAAC;QAE/D,6CAA6C;QACpC,WAAM,GAAG,KAAK,CAA8B,QAAQ,6EAAC,CAAC;QAE/D,0EAA0E;QACjE,cAAS,GAAG,KAAK,CAAsB,SAAS,gFAAC,CAAC;QAElD,eAAU,GAAG,QAAQ,CAAC,GAAG,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,GAAG,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC;QACjC,CAAC,iFAAC,CAAC;QAEM,WAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,OAAO,CAAE,IAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC,6EAAC,CAAC;QAEM,qBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC,uFAAC,CAAC;KACJ;qHArCY,oBAAoB;oEAApB,oBAAoB;YAApB,0BAAA,gBAAY,GAAG,OAAO,GACjC,MAAM,CADyB,aAApB,UAAU,CAAU,cAApB,sBAAkB,CAAE,qBAApB,KAAK,CAAe,YAApB,YAAQ,CAAY,mBAApB,KAAK,CAAe;;;YAFpB,kBAAc;;;iFAEd,oBAAoB;cAfhC,SAAS;eAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,IAAI,EAAE;oBACJ,OAAO,EAAE,6CAA6C;oBACtD,iBAAiB,EAAE,iCAAiC;oBACpD,kBAAkB,EAAE,YAAY;oBAChC,mBAAmB,EAAE,oBAAoB;oBACzC,0BAA0B,EAAE,OAAO;oBACnC,iBAAiB,EAAE,UAAU;oBAC7B,wBAAwB,EAAE,OAAO;iBAClC;gBACD,QAAQ,EAAE,gBAAgB;aAC3B;;kFACY,oBAAoB"}
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BaseEdgeComponent {
3
+ readonly path: import("@angular/core").InputSignal<string>;
4
+ readonly markerStart: import("@angular/core").InputSignal<string | undefined>;
5
+ readonly markerEnd: import("@angular/core").InputSignal<string | undefined>;
6
+ readonly style: import("@angular/core").InputSignal<string | undefined>;
7
+ readonly interactionWidth: import("@angular/core").InputSignal<number>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseEdgeComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<BaseEdgeComponent, "ng-flow-base-edge", never, { "path": { "alias": "path"; "required": true; "isSignal": true; }; "markerStart": { "alias": "markerStart"; "required": false; "isSignal": true; }; "markerEnd": { "alias": "markerEnd"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "interactionWidth": { "alias": "interactionWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ }
11
+ //# sourceMappingURL=base-edge.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-edge.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/edges/base-edge.component.ts"],"names":[],"mappings":";AAEA,qBAyBa,iBAAiB;IAC5B,QAAQ,CAAC,IAAI,8CAA4B;IACzC,QAAQ,CAAC,WAAW,0DAAmB;IACvC,QAAQ,CAAC,SAAS,0DAAmB;IACrC,QAAQ,CAAC,KAAK,0DAAmB;IACjC,QAAQ,CAAC,gBAAgB,8CAAqB;yCALnC,iBAAiB;2CAAjB,iBAAiB;CAM7B"}
@@ -0,0 +1,56 @@
1
+ import { Component, ChangeDetectionStrategy, input, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ function BaseEdgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
4
+ i0.ɵɵdomElement(0, "path", 0);
5
+ } if (rf & 2) {
6
+ const ctx_r0 = i0.ɵɵnextContext();
7
+ i0.ɵɵattribute("d", ctx_r0.path())("stroke-width", ctx_r0.interactionWidth());
8
+ } }
9
+ export class BaseEdgeComponent {
10
+ constructor() {
11
+ this.path = input.required(...(ngDevMode ? [{ debugName: "path" }] : /* istanbul ignore next */ []));
12
+ this.markerStart = input(...(ngDevMode ? [undefined, { debugName: "markerStart" }] : /* istanbul ignore next */ []));
13
+ this.markerEnd = input(...(ngDevMode ? [undefined, { debugName: "markerEnd" }] : /* istanbul ignore next */ []));
14
+ this.style = input(...(ngDevMode ? [undefined, { debugName: "style" }] : /* istanbul ignore next */ []));
15
+ this.interactionWidth = input(20, ...(ngDevMode ? [{ debugName: "interactionWidth" }] : /* istanbul ignore next */ []));
16
+ }
17
+ static { this.ɵfac = function BaseEdgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BaseEdgeComponent)(); }; }
18
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BaseEdgeComponent, selectors: [["ng-flow-base-edge"]], hostAttrs: [2, "display", "contents"], inputs: { path: [1, "path"], markerStart: [1, "markerStart"], markerEnd: [1, "markerEnd"], style: [1, "style"], interactionWidth: [1, "interactionWidth"] }, decls: 2, vars: 5, consts: [["fill", "none", "stroke", "transparent", 1, "xy-flow__edge-interaction"], [1, "xy-flow__edge-path"]], template: function BaseEdgeComponent_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵconditionalCreate(0, BaseEdgeComponent_Conditional_0_Template, 1, 2, "path", 0);
20
+ i0.ɵɵdomElement(1, "path", 1);
21
+ } if (rf & 2) {
22
+ i0.ɵɵconditional(ctx.interactionWidth() ? 0 : -1);
23
+ i0.ɵɵadvance();
24
+ i0.ɵɵattribute("d", ctx.path())("marker-start", ctx.markerStart())("marker-end", ctx.markerEnd())("style", ctx.style(), i0.ɵɵsanitizeStyle);
25
+ } }, encapsulation: 2, changeDetection: 0 }); }
26
+ }
27
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseEdgeComponent, [{
28
+ type: Component,
29
+ args: [{
30
+ selector: 'ng-flow-base-edge',
31
+ standalone: true,
32
+ schemas: [NO_ERRORS_SCHEMA],
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ host: { 'style': 'display: contents;' },
35
+ template: `
36
+ @if (interactionWidth()) {
37
+ <path
38
+ class="xy-flow__edge-interaction"
39
+ [attr.d]="path()"
40
+ fill="none"
41
+ stroke="transparent"
42
+ [attr.stroke-width]="interactionWidth()"
43
+ />
44
+ }
45
+ <path
46
+ class="xy-flow__edge-path"
47
+ [attr.d]="path()"
48
+ [attr.marker-start]="markerStart()"
49
+ [attr.marker-end]="markerEnd()"
50
+ [attr.style]="style()"
51
+ />
52
+ `,
53
+ }]
54
+ }], null, { path: [{ type: i0.Input, args: [{ isSignal: true, alias: "path", required: true }] }], markerStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerStart", required: false }] }], markerEnd: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerEnd", required: false }] }], style: [{ type: i0.Input, args: [{ isSignal: true, alias: "style", required: false }] }], interactionWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionWidth", required: false }] }] }); })();
55
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseEdgeComponent, { className: "BaseEdgeComponent", filePath: "lib/components/edges/base-edge.component.ts", lineNumber: 28 }); })();
56
+ //# sourceMappingURL=base-edge.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-edge.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/edges/base-edge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;;;IAUtF,6BAME;;;;;AAWR,MAAM,OAAO,iBAAiB;IAzB9B;QA0BW,SAAI,GAAG,KAAK,CAAC,QAAQ,0EAAU,CAAC;QAChC,gBAAW,GAAG,KAAK,4FAAU,CAAC;QAC9B,cAAS,GAAG,KAAK,0FAAU,CAAC;QAC5B,UAAK,GAAG,KAAK,sFAAU,CAAC;QACxB,qBAAgB,GAAG,KAAK,CAAS,EAAE,uFAAC,CAAC;KAC/C;kHANY,iBAAiB;oEAAjB,iBAAiB;YAlB1B,oFAA0B;YAS1B,6BAME;;YAfF,iDAQC;YAGC,cAAiB;;;;iFAOV,iBAAiB;cAzB7B,SAAS;eAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;gBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACvC,QAAQ,EAAE;;;;;;;;;;;;;;;;;GAiBT;aACF;;kFACY,iBAAiB"}
@@ -0,0 +1,30 @@
1
+ import { Position, type BezierPathOptions } from '@angflow/system';
2
+ import * as i0 from "@angular/core";
3
+ export declare class BezierEdgeComponent {
4
+ readonly id: import("@angular/core").InputSignal<string | undefined>;
5
+ readonly source: import("@angular/core").InputSignal<string | undefined>;
6
+ readonly target: import("@angular/core").InputSignal<string | undefined>;
7
+ readonly type: import("@angular/core").InputSignal<string | undefined>;
8
+ readonly animated: import("@angular/core").InputSignal<boolean>;
9
+ readonly selected: import("@angular/core").InputSignal<boolean>;
10
+ readonly data: import("@angular/core").InputSignal<any>;
11
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
12
+ readonly sourceX: import("@angular/core").InputSignal<number>;
13
+ readonly sourceY: import("@angular/core").InputSignal<number>;
14
+ readonly targetX: import("@angular/core").InputSignal<number>;
15
+ readonly targetY: import("@angular/core").InputSignal<number>;
16
+ readonly sourcePosition: import("@angular/core").InputSignal<Position>;
17
+ readonly targetPosition: import("@angular/core").InputSignal<Position>;
18
+ readonly markerStart: import("@angular/core").InputSignal<string | undefined>;
19
+ readonly markerEnd: import("@angular/core").InputSignal<string | undefined>;
20
+ readonly interactionWidth: import("@angular/core").InputSignal<number | undefined>;
21
+ readonly pathOptions: import("@angular/core").InputSignal<BezierPathOptions | undefined>;
22
+ readonly sourceHandleId: import("@angular/core").InputSignal<string | null | undefined>;
23
+ readonly targetHandleId: import("@angular/core").InputSignal<string | null | undefined>;
24
+ readonly selectable: import("@angular/core").InputSignal<boolean | undefined>;
25
+ readonly deletable: import("@angular/core").InputSignal<boolean | undefined>;
26
+ readonly edgePath: import("@angular/core").Signal<string>;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<BezierEdgeComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<BezierEdgeComponent, "ng-flow-bezier-edge", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sourceX": { "alias": "sourceX"; "required": false; "isSignal": true; }; "sourceY": { "alias": "sourceY"; "required": false; "isSignal": true; }; "targetX": { "alias": "targetX"; "required": false; "isSignal": true; }; "targetY": { "alias": "targetY"; "required": false; "isSignal": true; }; "sourcePosition": { "alias": "sourcePosition"; "required": false; "isSignal": true; }; "targetPosition": { "alias": "targetPosition"; "required": false; "isSignal": true; }; "markerStart": { "alias": "markerStart"; "required": false; "isSignal": true; }; "markerEnd": { "alias": "markerEnd"; "required": false; "isSignal": true; }; "interactionWidth": { "alias": "interactionWidth"; "required": false; "isSignal": true; }; "pathOptions": { "alias": "pathOptions"; "required": false; "isSignal": true; }; "sourceHandleId": { "alias": "sourceHandleId"; "required": false; "isSignal": true; }; "targetHandleId": { "alias": "targetHandleId"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "deletable": { "alias": "deletable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
29
+ }
30
+ //# sourceMappingURL=bezier-edge.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bezier-edge.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/edges/bezier-edge.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;;AAGlF,qBAea,mBAAmB;IAC9B,QAAQ,CAAC,EAAE,0DAAmB;IAC9B,QAAQ,CAAC,MAAM,0DAAmB;IAClC,QAAQ,CAAC,MAAM,0DAAmB;IAClC,QAAQ,CAAC,IAAI,0DAAmB;IAChC,QAAQ,CAAC,QAAQ,+CAAgB;IACjC,QAAQ,CAAC,QAAQ,+CAAgB;IACjC,QAAQ,CAAC,IAAI,2CAAgB;IAC7B,QAAQ,CAAC,KAAK,0DAAmB;IACjC,QAAQ,CAAC,OAAO,8CAAY;IAC5B,QAAQ,CAAC,OAAO,8CAAY;IAC5B,QAAQ,CAAC,OAAO,8CAAY;IAC5B,QAAQ,CAAC,OAAO,8CAAY;IAC5B,QAAQ,CAAC,cAAc,gDAAoC;IAC3D,QAAQ,CAAC,cAAc,gDAAiC;IACxD,QAAQ,CAAC,WAAW,0DAAmB;IACvC,QAAQ,CAAC,SAAS,0DAAmB;IACrC,QAAQ,CAAC,gBAAgB,0DAAmB;IAC5C,QAAQ,CAAC,WAAW,qEAA8B;IAClD,QAAQ,CAAC,cAAc,iEAA0B;IACjD,QAAQ,CAAC,cAAc,iEAA0B;IACjD,QAAQ,CAAC,UAAU,2DAAoB;IACvC,QAAQ,CAAC,SAAS,2DAAoB;IAEtC,QAAQ,CAAC,QAAQ,yCAWd;yCAnCQ,mBAAmB;2CAAnB,mBAAmB;CAoC/B"}
@@ -0,0 +1,68 @@
1
+ import { Component, ChangeDetectionStrategy, input, computed } from '@angular/core';
2
+ import { getBezierPath, Position } from '@angflow/system';
3
+ import { BaseEdgeComponent } from './base-edge.component';
4
+ import * as i0 from "@angular/core";
5
+ export class BezierEdgeComponent {
6
+ constructor() {
7
+ this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : /* istanbul ignore next */ []));
8
+ this.source = input(...(ngDevMode ? [undefined, { debugName: "source" }] : /* istanbul ignore next */ []));
9
+ this.target = input(...(ngDevMode ? [undefined, { debugName: "target" }] : /* istanbul ignore next */ []));
10
+ this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
11
+ this.animated = input(false, ...(ngDevMode ? [{ debugName: "animated" }] : /* istanbul ignore next */ []));
12
+ this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
13
+ this.data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
14
+ this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
15
+ this.sourceX = input(0, ...(ngDevMode ? [{ debugName: "sourceX" }] : /* istanbul ignore next */ []));
16
+ this.sourceY = input(0, ...(ngDevMode ? [{ debugName: "sourceY" }] : /* istanbul ignore next */ []));
17
+ this.targetX = input(0, ...(ngDevMode ? [{ debugName: "targetX" }] : /* istanbul ignore next */ []));
18
+ this.targetY = input(0, ...(ngDevMode ? [{ debugName: "targetY" }] : /* istanbul ignore next */ []));
19
+ this.sourcePosition = input(Position.Bottom, ...(ngDevMode ? [{ debugName: "sourcePosition" }] : /* istanbul ignore next */ []));
20
+ this.targetPosition = input(Position.Top, ...(ngDevMode ? [{ debugName: "targetPosition" }] : /* istanbul ignore next */ []));
21
+ this.markerStart = input(...(ngDevMode ? [undefined, { debugName: "markerStart" }] : /* istanbul ignore next */ []));
22
+ this.markerEnd = input(...(ngDevMode ? [undefined, { debugName: "markerEnd" }] : /* istanbul ignore next */ []));
23
+ this.interactionWidth = input(...(ngDevMode ? [undefined, { debugName: "interactionWidth" }] : /* istanbul ignore next */ []));
24
+ this.pathOptions = input(...(ngDevMode ? [undefined, { debugName: "pathOptions" }] : /* istanbul ignore next */ []));
25
+ this.sourceHandleId = input(...(ngDevMode ? [undefined, { debugName: "sourceHandleId" }] : /* istanbul ignore next */ []));
26
+ this.targetHandleId = input(...(ngDevMode ? [undefined, { debugName: "targetHandleId" }] : /* istanbul ignore next */ []));
27
+ this.selectable = input(...(ngDevMode ? [undefined, { debugName: "selectable" }] : /* istanbul ignore next */ []));
28
+ this.deletable = input(...(ngDevMode ? [undefined, { debugName: "deletable" }] : /* istanbul ignore next */ []));
29
+ this.edgePath = computed(() => {
30
+ const [path] = getBezierPath({
31
+ sourceX: this.sourceX(),
32
+ sourceY: this.sourceY(),
33
+ targetX: this.targetX(),
34
+ targetY: this.targetY(),
35
+ sourcePosition: this.sourcePosition(),
36
+ targetPosition: this.targetPosition(),
37
+ ...this.pathOptions(),
38
+ });
39
+ return path;
40
+ }, ...(ngDevMode ? [{ debugName: "edgePath" }] : /* istanbul ignore next */ []));
41
+ }
42
+ static { this.ɵfac = function BezierEdgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BezierEdgeComponent)(); }; }
43
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BezierEdgeComponent, selectors: [["ng-flow-bezier-edge"]], hostAttrs: [2, "display", "contents"], inputs: { id: [1, "id"], source: [1, "source"], target: [1, "target"], type: [1, "type"], animated: [1, "animated"], selected: [1, "selected"], data: [1, "data"], label: [1, "label"], sourceX: [1, "sourceX"], sourceY: [1, "sourceY"], targetX: [1, "targetX"], targetY: [1, "targetY"], sourcePosition: [1, "sourcePosition"], targetPosition: [1, "targetPosition"], markerStart: [1, "markerStart"], markerEnd: [1, "markerEnd"], interactionWidth: [1, "interactionWidth"], pathOptions: [1, "pathOptions"], sourceHandleId: [1, "sourceHandleId"], targetHandleId: [1, "targetHandleId"], selectable: [1, "selectable"], deletable: [1, "deletable"] }, decls: 1, vars: 4, consts: [[3, "path", "markerStart", "markerEnd", "interactionWidth"]], template: function BezierEdgeComponent_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelement(0, "ng-flow-base-edge", 0);
45
+ } if (rf & 2) {
46
+ i0.ɵɵproperty("path", ctx.edgePath())("markerStart", ctx.markerStart())("markerEnd", ctx.markerEnd())("interactionWidth", ctx.interactionWidth() ?? 20);
47
+ } }, dependencies: [BaseEdgeComponent], encapsulation: 2, changeDetection: 0 }); }
48
+ }
49
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BezierEdgeComponent, [{
50
+ type: Component,
51
+ args: [{
52
+ selector: 'ng-flow-bezier-edge',
53
+ standalone: true,
54
+ imports: [BaseEdgeComponent],
55
+ changeDetection: ChangeDetectionStrategy.OnPush,
56
+ host: { 'style': 'display: contents;' },
57
+ template: `
58
+ <ng-flow-base-edge
59
+ [path]="edgePath()"
60
+ [markerStart]="markerStart()"
61
+ [markerEnd]="markerEnd()"
62
+ [interactionWidth]="interactionWidth() ?? 20"
63
+ />
64
+ `,
65
+ }]
66
+ }], null, { 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 }] }] }); })();
67
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BezierEdgeComponent, { className: "BezierEdgeComponent", filePath: "lib/components/edges/bezier-edge.component.ts", lineNumber: 20 }); })();
68
+ //# sourceMappingURL=bezier-edge.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bezier-edge.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/edges/bezier-edge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAA0B,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;;AAiB1D,MAAM,OAAO,mBAAmB;IAfhC;QAgBW,OAAE,GAAG,KAAK,mFAAU,CAAC;QACrB,WAAM,GAAG,KAAK,uFAAU,CAAC;QACzB,WAAM,GAAG,KAAK,uFAAU,CAAC;QACzB,SAAI,GAAG,KAAK,qFAAU,CAAC;QACvB,aAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC,CAAC;QACxB,aAAQ,GAAG,KAAK,CAAC,KAAK,+EAAC,CAAC;QACxB,SAAI,GAAG,KAAK,qFAAO,CAAC;QACpB,UAAK,GAAG,KAAK,sFAAU,CAAC;QACxB,YAAO,GAAG,KAAK,CAAC,CAAC,8EAAC,CAAC;QACnB,YAAO,GAAG,KAAK,CAAC,CAAC,8EAAC,CAAC;QACnB,YAAO,GAAG,KAAK,CAAC,CAAC,8EAAC,CAAC;QACnB,YAAO,GAAG,KAAK,CAAC,CAAC,8EAAC,CAAC;QACnB,mBAAc,GAAG,KAAK,CAAW,QAAQ,CAAC,MAAM,qFAAC,CAAC;QAClD,mBAAc,GAAG,KAAK,CAAW,QAAQ,CAAC,GAAG,qFAAC,CAAC;QAC/C,gBAAW,GAAG,KAAK,4FAAU,CAAC;QAC9B,cAAS,GAAG,KAAK,0FAAU,CAAC;QAC5B,qBAAgB,GAAG,KAAK,iGAAU,CAAC;QACnC,gBAAW,GAAG,KAAK,4FAAqB,CAAC;QACzC,mBAAc,GAAG,KAAK,+FAAiB,CAAC;QACxC,mBAAc,GAAG,KAAK,+FAAiB,CAAC;QACxC,eAAU,GAAG,KAAK,2FAAW,CAAC;QAC9B,cAAS,GAAG,KAAK,0FAAW,CAAC;QAE7B,aAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE;YAChC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;gBACrC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;gBACrC,GAAG,IAAI,CAAC,WAAW,EAAE;aACtB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,+EAAC,CAAC;KACJ;oHApCY,mBAAmB;oEAAnB,mBAAmB;YAR5B,uCAKE;;YADA,AADA,AADA,AADA,qCAAmB,kCACU,8BACJ,kDACoB;4BARvC,iBAAiB;;iFAYhB,mBAAmB;cAf/B,SAAS;eAAC;gBACT,QAAQ,EAAE,qBAAqB;gBAC/B,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,CAAC,iBAAiB,CAAC;gBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBACvC,QAAQ,EAAE;;;;;;;GAOT;aACF;;kFACY,mBAAmB"}
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class EdgeTextComponent {
3
+ readonly x: import("@angular/core").InputSignal<number>;
4
+ readonly y: import("@angular/core").InputSignal<number>;
5
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
6
+ readonly width: import("@angular/core").InputSignal<number>;
7
+ readonly height: import("@angular/core").InputSignal<number>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<EdgeTextComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<EdgeTextComponent, "ng-flow-edge-text", never, { "x": { "alias": "x"; "required": false; "isSignal": true; }; "y": { "alias": "y"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ }
11
+ //# sourceMappingURL=edge-text.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-text.component.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/edges/edge-text.component.ts"],"names":[],"mappings":";AAEA,qBAmBa,iBAAiB;IAC5B,QAAQ,CAAC,CAAC,8CAAY;IACtB,QAAQ,CAAC,CAAC,8CAAY;IACtB,QAAQ,CAAC,KAAK,0DAAmB;IACjC,QAAQ,CAAC,KAAK,8CAAa;IAC3B,QAAQ,CAAC,MAAM,8CAAa;yCALjB,iBAAiB;2CAAjB,iBAAiB;CAM7B"}