ngx-vflow 1.16.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +35 -69
  2. package/fesm2022/ngx-vflow-testing.mjs +77 -67
  3. package/fesm2022/ngx-vflow-testing.mjs.map +1 -1
  4. package/fesm2022/ngx-vflow.mjs +926 -559
  5. package/fesm2022/ngx-vflow.mjs.map +1 -1
  6. package/lib/vflow/components/custom-node-base/custom-node-base.component.d.ts +1 -1
  7. package/lib/vflow/components/vflow/vflow.component.d.ts +18 -9
  8. package/lib/vflow/directives/auto-pan.directive.d.ts +16 -0
  9. package/lib/vflow/directives/changes-controller.directive.d.ts +13 -87
  10. package/lib/vflow/directives/connection-controller.directive.d.ts +8 -10
  11. package/lib/vflow/directives/space-point-context.directive.d.ts +2 -1
  12. package/lib/vflow/interfaces/component-node-event.interface.d.ts +1 -2
  13. package/lib/vflow/interfaces/connection-events.interface.d.ts +66 -0
  14. package/lib/vflow/interfaces/connection-settings.interface.d.ts +7 -1
  15. package/lib/vflow/interfaces/connection.interface.d.ts +0 -5
  16. package/lib/vflow/interfaces/curve-factory.interface.d.ts +2 -2
  17. package/lib/vflow/interfaces/edge-label.interface.d.ts +0 -4
  18. package/lib/vflow/interfaces/edge.interface.d.ts +36 -8
  19. package/lib/vflow/interfaces/node.interface.d.ts +44 -63
  20. package/lib/vflow/interfaces/selection-strategy.interface.d.ts +16 -0
  21. package/lib/vflow/interfaces/template-context.interface.d.ts +8 -3
  22. package/lib/vflow/models/connection.model.d.ts +1 -1
  23. package/lib/vflow/models/edge.model.d.ts +20 -23
  24. package/lib/vflow/models/handle.model.d.ts +1 -1
  25. package/lib/vflow/models/node.model.d.ts +4 -7
  26. package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +1 -1
  27. package/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.d.ts +2 -1
  28. package/lib/vflow/public-components/minimap/minimap.component.d.ts +1 -1
  29. package/lib/vflow/services/draggable.service.d.ts +3 -0
  30. package/lib/vflow/services/flow-entities.service.d.ts +2 -2
  31. package/lib/vflow/services/flow-settings.service.d.ts +3 -0
  32. package/lib/vflow/services/flow-status.service.d.ts +35 -7
  33. package/lib/vflow/services/selection.service.d.ts +4 -1
  34. package/lib/vflow/strategies/default-selection.strategy.d.ts +6 -0
  35. package/lib/vflow/strategies/manual-selection.strategy.d.ts +5 -0
  36. package/lib/vflow/types/selection-mode.type.d.ts +1 -0
  37. package/lib/vflow/types/unwrap-signal.type.d.ts +4 -0
  38. package/lib/vflow/utils/adjust-direction.d.ts +2 -6
  39. package/lib/vflow/utils/identity-checker/reference-identity-checker.d.ts +2 -2
  40. package/lib/vflow/utils/is-vflow-component.d.ts +0 -2
  41. package/lib/vflow/utils/signals/to-lazy-signal.d.ts +4 -4
  42. package/package.json +3 -7
  43. package/public-api.d.ts +3 -2
  44. package/testing/component-mocks/vflow-mock.component.d.ts +8 -6
  45. package/testing/directive-mocks/connection-controller-mock.directive.d.ts +8 -6
  46. package/esm2022/lib/vflow/components/alignment-helper/alignment-helper.component.mjs +0 -103
  47. package/esm2022/lib/vflow/components/background/background.component.mjs +0 -121
  48. package/esm2022/lib/vflow/components/connection/connection.component.mjs +0 -157
  49. package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +0 -57
  50. package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +0 -16
  51. package/esm2022/lib/vflow/components/defs/defs.component.mjs +0 -16
  52. package/esm2022/lib/vflow/components/edge/edge.component.mjs +0 -54
  53. package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +0 -76
  54. package/esm2022/lib/vflow/components/node/node.component.mjs +0 -107
  55. package/esm2022/lib/vflow/components/preview-flow/draw-node.mjs +0 -100
  56. package/esm2022/lib/vflow/components/preview-flow/preview-flow.component.mjs +0 -62
  57. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +0 -437
  58. package/esm2022/lib/vflow/constants/magic-number-to-fix-glitch-in-chrome.constant.mjs +0 -4
  59. package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +0 -11
  60. package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +0 -165
  61. package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +0 -145
  62. package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +0 -28
  63. package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +0 -40
  64. package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +0 -41
  65. package/esm2022/lib/vflow/directives/map-context.directive.mjs +0 -116
  66. package/esm2022/lib/vflow/directives/node-handles-controller.directive.mjs +0 -33
  67. package/esm2022/lib/vflow/directives/node-resize-controller.directive.mjs +0 -37
  68. package/esm2022/lib/vflow/directives/pointer.directive.mjs +0 -84
  69. package/esm2022/lib/vflow/directives/reference.directive.mjs +0 -17
  70. package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +0 -58
  71. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +0 -35
  72. package/esm2022/lib/vflow/directives/selectable.directive.mjs +0 -48
  73. package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +0 -42
  74. package/esm2022/lib/vflow/directives/template.directive.mjs +0 -119
  75. package/esm2022/lib/vflow/interfaces/alignment-helper-settings.interface.mjs +0 -2
  76. package/esm2022/lib/vflow/interfaces/box.mjs +0 -2
  77. package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +0 -2
  78. package/esm2022/lib/vflow/interfaces/connection-settings.interface.mjs +0 -2
  79. package/esm2022/lib/vflow/interfaces/connection.interface.mjs +0 -2
  80. package/esm2022/lib/vflow/interfaces/connection.internal.interface.mjs +0 -2
  81. package/esm2022/lib/vflow/interfaces/contextable.interface.mjs +0 -2
  82. package/esm2022/lib/vflow/interfaces/curve-factory.interface.mjs +0 -2
  83. package/esm2022/lib/vflow/interfaces/edge-label.interface.mjs +0 -2
  84. package/esm2022/lib/vflow/interfaces/edge.interface.mjs +0 -2
  85. package/esm2022/lib/vflow/interfaces/fit-view-options.interface.mjs +0 -2
  86. package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +0 -2
  87. package/esm2022/lib/vflow/interfaces/intersecting-nodes-options.interface.mjs +0 -2
  88. package/esm2022/lib/vflow/interfaces/marker.interface.mjs +0 -2
  89. package/esm2022/lib/vflow/interfaces/node-preview.interface.mjs +0 -2
  90. package/esm2022/lib/vflow/interfaces/node.interface.mjs +0 -53
  91. package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +0 -7
  92. package/esm2022/lib/vflow/interfaces/point.interface.mjs +0 -2
  93. package/esm2022/lib/vflow/interfaces/rect.mjs +0 -10
  94. package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +0 -2
  95. package/esm2022/lib/vflow/interfaces/viewport.interface.mjs +0 -2
  96. package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +0 -66
  97. package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +0 -226
  98. package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +0 -12
  99. package/esm2022/lib/vflow/math/point-on-line-by-ratio.mjs +0 -12
  100. package/esm2022/lib/vflow/models/connection.model.mjs +0 -31
  101. package/esm2022/lib/vflow/models/edge-label.model.mjs +0 -8
  102. package/esm2022/lib/vflow/models/edge.model.mjs +0 -208
  103. package/esm2022/lib/vflow/models/handle.model.mjs +0 -98
  104. package/esm2022/lib/vflow/models/minimap.model.mjs +0 -7
  105. package/esm2022/lib/vflow/models/node.model.mjs +0 -181
  106. package/esm2022/lib/vflow/models/toolbar.model.mjs +0 -36
  107. package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +0 -25
  108. package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +0 -24
  109. package/esm2022/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.mjs +0 -29
  110. package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +0 -53
  111. package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +0 -108
  112. package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +0 -73
  113. package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +0 -272
  114. package/esm2022/lib/vflow/services/component-event-bus.service.mjs +0 -18
  115. package/esm2022/lib/vflow/services/draggable.service.mjs +0 -124
  116. package/esm2022/lib/vflow/services/edge-changes.service.mjs +0 -43
  117. package/esm2022/lib/vflow/services/edge-rendering.service.mjs +0 -40
  118. package/esm2022/lib/vflow/services/flow-entities.service.mjs +0 -56
  119. package/esm2022/lib/vflow/services/flow-rendering.service.mjs +0 -41
  120. package/esm2022/lib/vflow/services/flow-settings.service.mjs +0 -33
  121. package/esm2022/lib/vflow/services/flow-status.service.mjs +0 -49
  122. package/esm2022/lib/vflow/services/handle.service.mjs +0 -30
  123. package/esm2022/lib/vflow/services/keyboard.service.mjs +0 -47
  124. package/esm2022/lib/vflow/services/node-accessor.service.mjs +0 -16
  125. package/esm2022/lib/vflow/services/node-changes.service.mjs +0 -41
  126. package/esm2022/lib/vflow/services/node-rendering.service.mjs +0 -66
  127. package/esm2022/lib/vflow/services/overlays.service.mjs +0 -35
  128. package/esm2022/lib/vflow/services/preview-flow-render-strategy.service.mjs +0 -21
  129. package/esm2022/lib/vflow/services/selection.service.mjs +0 -54
  130. package/esm2022/lib/vflow/services/viewport.service.mjs +0 -64
  131. package/esm2022/lib/vflow/types/background.type.mjs +0 -2
  132. package/esm2022/lib/vflow/types/connection-mode.type.mjs +0 -2
  133. package/esm2022/lib/vflow/types/edge-change.type.mjs +0 -2
  134. package/esm2022/lib/vflow/types/handle-type.type.mjs +0 -2
  135. package/esm2022/lib/vflow/types/keyboard-action.type.mjs +0 -2
  136. package/esm2022/lib/vflow/types/node-change.type.mjs +0 -2
  137. package/esm2022/lib/vflow/types/position.type.mjs +0 -2
  138. package/esm2022/lib/vflow/types/viewport-change-type.type.mjs +0 -2
  139. package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +0 -11
  140. package/esm2022/lib/vflow/utils/adjust-direction.mjs +0 -30
  141. package/esm2022/lib/vflow/utils/align-number.mjs +0 -4
  142. package/esm2022/lib/vflow/utils/assert-injector.mjs +0 -27
  143. package/esm2022/lib/vflow/utils/event.mjs +0 -4
  144. package/esm2022/lib/vflow/utils/get-os.mjs +0 -24
  145. package/esm2022/lib/vflow/utils/get-overlapping-area.mjs +0 -6
  146. package/esm2022/lib/vflow/utils/get-space-points.mjs +0 -25
  147. package/esm2022/lib/vflow/utils/hash.mjs +0 -7
  148. package/esm2022/lib/vflow/utils/id.mjs +0 -5
  149. package/esm2022/lib/vflow/utils/identity-checker/reference-identity-checker.mjs +0 -28
  150. package/esm2022/lib/vflow/utils/is-callable.mjs +0 -10
  151. package/esm2022/lib/vflow/utils/is-defined.mjs +0 -4
  152. package/esm2022/lib/vflow/utils/is-group-node.mjs +0 -4
  153. package/esm2022/lib/vflow/utils/is-vflow-component.mjs +0 -9
  154. package/esm2022/lib/vflow/utils/nodes.mjs +0 -60
  155. package/esm2022/lib/vflow/utils/resizable.mjs +0 -11
  156. package/esm2022/lib/vflow/utils/round.mjs +0 -2
  157. package/esm2022/lib/vflow/utils/signals/extended-computed.mjs +0 -15
  158. package/esm2022/lib/vflow/utils/signals/to-lazy-signal.mjs +0 -35
  159. package/esm2022/lib/vflow/utils/to-unified-node.mjs +0 -24
  160. package/esm2022/lib/vflow/utils/transform-background.mjs +0 -4
  161. package/esm2022/lib/vflow/utils/viewport.mjs +0 -51
  162. package/esm2022/lib/vflow/vflow.mjs +0 -29
  163. package/esm2022/ngx-vflow.mjs +0 -5
  164. package/esm2022/public-api.mjs +0 -55
  165. package/esm2022/testing/component-mocks/custom-template-edge-mock.component.mjs +0 -16
  166. package/esm2022/testing/component-mocks/handle-mock.component.mjs +0 -26
  167. package/esm2022/testing/component-mocks/minimap-mock.component.mjs +0 -24
  168. package/esm2022/testing/component-mocks/node-toolbar-mock.component.mjs +0 -23
  169. package/esm2022/testing/component-mocks/resizable-mock.component.mjs +0 -27
  170. package/esm2022/testing/component-mocks/vflow-mock.component.mjs +0 -299
  171. package/esm2022/testing/directive-mocks/connection-controller-mock.directive.mjs +0 -29
  172. package/esm2022/testing/directive-mocks/drag-handle-mock.directive.mjs +0 -11
  173. package/esm2022/testing/directive-mocks/selectable-mock.directive.mjs +0 -14
  174. package/esm2022/testing/directive-mocks/template-mock.directive.mjs +0 -101
  175. package/esm2022/testing/ngx-vflow-testing.mjs +0 -5
  176. package/esm2022/testing/provide-custom-node-mocks.mjs +0 -60
  177. package/esm2022/testing/public-api.mjs +0 -13
  178. package/esm2022/testing/types.mjs +0 -2
  179. package/esm2022/testing/vflow-mocks.mjs +0 -28
  180. package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +0 -13
  181. package/lib/vflow/utils/to-unified-node.d.ts +0 -2
@@ -12,5 +12,5 @@ export declare abstract class CustomNodeBaseComponent<T = any> implements OnInit
12
12
  ngOnInit(): void;
13
13
  private trackEvents;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomNodeBaseComponent<any>, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<CustomNodeBaseComponent<any>, never, never, {}, {}, never, never, false, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomNodeBaseComponent<any>, never, never, {}, {}, never, never, true, never>;
16
16
  }
@@ -1,4 +1,4 @@
1
- import { DynamicNode, Node } from '../../interfaces/node.interface';
1
+ import { Node } from '../../interfaces/node.interface';
2
2
  import { MapContextDirective } from '../../directives/map-context.directive';
3
3
  import { NodeModel } from '../../models/node.model';
4
4
  import { Edge } from '../../interfaces/edge.interface';
@@ -14,6 +14,7 @@ import { SpacePointContextDirective } from '../../directives/space-point-context
14
14
  import { FitViewOptions } from '../../interfaces/fit-view-options.interface';
15
15
  import { Optimization } from '../../interfaces/optimization.interface';
16
16
  import { KeyboardShortcuts } from '../../types/keyboard-action.type';
17
+ import { SelectionMode } from '../../types/selection-mode.type';
17
18
  import { IntersectingNodesOptions } from '../../interfaces/intersecting-nodes-options.interface';
18
19
  import { AlignmentHelperSettings } from '../../interfaces/alignment-helper-settings.interface';
19
20
  import * as i0 from "@angular/core";
@@ -59,6 +60,12 @@ export declare class VflowComponent {
59
60
  * Global rule if you can or can't select entities
60
61
  */
61
62
  set entitiesSelectable(value: boolean);
63
+ /**
64
+ * Selection mode strategy
65
+ * - 'default': library manages selection automatically
66
+ * - 'manual': library does not manage selection, user controls it via node.selected signal
67
+ */
68
+ set selectionMode(value: SelectionMode);
62
69
  set keyboardShortcuts(value: KeyboardShortcuts);
63
70
  /**
64
71
  * Settings for connection (it renders when user tries to create edge between nodes)
@@ -82,10 +89,14 @@ export declare class VflowComponent {
82
89
  * Raizing z-index for selected edge
83
90
  */
84
91
  set elevateEdgesOnSelect(value: boolean);
92
+ /**
93
+ * Enable auto-pan
94
+ */
95
+ set autoPan(value: boolean);
85
96
  /**
86
97
  * Nodes to render
87
98
  */
88
- set nodes(newNodes: Node[] | DynamicNode[]);
99
+ set nodes(newNodes: Node[]);
89
100
  alignmentHelper: import("@angular/core").InputSignal<boolean | AlignmentHelperSettings>;
90
101
  protected nodeModels: import("@angular/core").Signal<NodeModel<unknown>[]>;
91
102
  protected groups: import("@angular/core").Signal<NodeModel<unknown>[]>;
@@ -97,10 +108,8 @@ export declare class VflowComponent {
97
108
  protected edgeModels: import("@angular/core").Signal<EdgeModel[]>;
98
109
  /**
99
110
  * Event that accumulates all custom node events
100
- *
101
- * @experimental
102
111
  */
103
- readonly onComponentNodeEvent: import("@angular/core").OutputRef<any>;
112
+ readonly componentNodeEvent: import("@angular/core").OutputRef<any>;
104
113
  protected nodeTemplateDirective: import("@angular/core").Signal<NodeHtmlTemplateDirective | undefined>;
105
114
  protected nodeSvgTemplateDirective: import("@angular/core").Signal<NodeSvgTemplateDirective | undefined>;
106
115
  protected groupNodeTemplateDirective: import("@angular/core").Signal<GroupNodeTemplateDirective | undefined>;
@@ -164,7 +173,7 @@ export declare class VflowComponent {
164
173
  *
165
174
  * @param id node id
166
175
  */
167
- getNode<T = unknown>(id: string): Node<T> | DynamicNode<T> | undefined;
176
+ getNode<T = unknown>(id: string): Node<T> | undefined;
168
177
  /**
169
178
  * Sync method to get detached edges
170
179
  */
@@ -191,7 +200,7 @@ export declare class VflowComponent {
191
200
  * @param options.partially - If true, returns nodes that partially intersect. If false, only returns fully intersecting nodes
192
201
  * @returns An array of nodes that intersect with the specified node
193
202
  */
194
- getIntesectingNodes<T>(nodeId: string, options?: IntersectingNodesOptions): Node<T>[] | DynamicNode<T>[];
203
+ getIntesectingNodes<T>(nodeId: string, options?: IntersectingNodesOptions): Node<T>[];
195
204
  /**
196
205
  * Converts a node's position to the coordinate space of another node
197
206
  *
@@ -201,9 +210,9 @@ export declare class VflowComponent {
201
210
  * @returns {Point} The converted position. Returns {x: Infinity, y: Infinity} if either node is not found
202
211
  */
203
212
  toNodeSpace(nodeId: string, spaceNodeId: string | null): Point;
204
- protected trackNodes(idx: number, { rawNode: node }: NodeModel): Node<unknown> | DynamicNode<unknown>;
213
+ protected trackNodes(idx: number, { rawNode: node }: NodeModel): Node<unknown>;
205
214
  protected trackEdges(idx: number, { edge }: EdgeModel): Edge<unknown>;
206
215
  static ɵfac: i0.ɵɵFactoryDeclaration<VflowComponent, never>;
207
- static ɵcmp: i0.ɵɵComponentDeclaration<VflowComponent, "vflow", never, { "view": { "alias": "view"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "background": { "alias": "background"; "required": false; }; "optimization": { "alias": "optimization"; "required": false; }; "entitiesSelectable": { "alias": "entitiesSelectable"; "required": false; }; "keyboardShortcuts": { "alias": "keyboardShortcuts"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "snapGrid": { "alias": "snapGrid"; "required": false; }; "elevateNodesOnSelect": { "alias": "elevateNodesOnSelect"; "required": false; }; "elevateEdgesOnSelect": { "alias": "elevateEdgesOnSelect"; "required": false; }; "nodes": { "alias": "nodes"; "required": true; }; "alignmentHelper": { "alias": "alignmentHelper"; "required": false; "isSignal": true; }; "edges": { "alias": "edges"; "required": false; }; }, { "onComponentNodeEvent": "onComponentNodeEvent"; }, ["nodeTemplateDirective", "nodeSvgTemplateDirective", "groupNodeTemplateDirective", "edgeTemplateDirective", "edgeLabelHtmlDirective", "connectionTemplateDirective"], never, true, [{ directive: typeof i1.ChangesControllerDirective; inputs: {}; outputs: { "onNodesChange": "onNodesChange"; "onNodesChange.position": "onNodesChange.position"; "onNodesChange.position.single": "onNodesChange.position.single"; "onNodesChange.position.many": "onNodesChange.position.many"; "onNodesChange.size": "onNodesChange.size"; "onNodesChange.size.single": "onNodesChange.size.single"; "onNodesChange.size.many": "onNodesChange.size.many"; "onNodesChange.add": "onNodesChange.add"; "onNodesChange.add.single": "onNodesChange.add.single"; "onNodesChange.add.many": "onNodesChange.add.many"; "onNodesChange.remove": "onNodesChange.remove"; "onNodesChange.remove.single": "onNodesChange.remove.single"; "onNodesChange.remove.many": "onNodesChange.remove.many"; "onNodesChange.select": "onNodesChange.select"; "onNodesChange.select.single": "onNodesChange.select.single"; "onNodesChange.select.many": "onNodesChange.select.many"; "onEdgesChange": "onEdgesChange"; "onEdgesChange.detached": "onEdgesChange.detached"; "onEdgesChange.detached.single": "onEdgesChange.detached.single"; "onEdgesChange.detached.many": "onEdgesChange.detached.many"; "onEdgesChange.add": "onEdgesChange.add"; "onEdgesChange.add.single": "onEdgesChange.add.single"; "onEdgesChange.add.many": "onEdgesChange.add.many"; "onEdgesChange.remove": "onEdgesChange.remove"; "onEdgesChange.remove.single": "onEdgesChange.remove.single"; "onEdgesChange.remove.many": "onEdgesChange.remove.many"; "onEdgesChange.select": "onEdgesChange.select"; "onEdgesChange.select.single": "onEdgesChange.select.single"; "onEdgesChange.select.many": "onEdgesChange.select.many"; }; }]>;
216
+ static ɵcmp: i0.ɵɵComponentDeclaration<VflowComponent, "vflow", never, { "view": { "alias": "view"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "background": { "alias": "background"; "required": false; }; "optimization": { "alias": "optimization"; "required": false; }; "entitiesSelectable": { "alias": "entitiesSelectable"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "keyboardShortcuts": { "alias": "keyboardShortcuts"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "snapGrid": { "alias": "snapGrid"; "required": false; }; "elevateNodesOnSelect": { "alias": "elevateNodesOnSelect"; "required": false; }; "elevateEdgesOnSelect": { "alias": "elevateEdgesOnSelect"; "required": false; }; "autoPan": { "alias": "autoPan"; "required": false; }; "nodes": { "alias": "nodes"; "required": true; }; "alignmentHelper": { "alias": "alignmentHelper"; "required": false; "isSignal": true; }; "edges": { "alias": "edges"; "required": false; }; }, { "componentNodeEvent": "componentNodeEvent"; }, ["nodeTemplateDirective", "nodeSvgTemplateDirective", "groupNodeTemplateDirective", "edgeTemplateDirective", "edgeLabelHtmlDirective", "connectionTemplateDirective"], never, true, [{ directive: typeof i1.ChangesControllerDirective; inputs: {}; outputs: { "nodesChanges": "nodesChanges"; "nodesChanges.position": "nodesChanges.position"; "nodesChanges.size": "nodesChanges.size"; "nodesChanges.add": "nodesChanges.add"; "nodesChanges.remove": "nodesChanges.remove"; "nodesChanges.select": "nodesChanges.select"; "edgesChanges": "edgesChanges"; "edgesChanges.detached": "edgesChanges.detached"; "edgesChanges.add": "edgesChanges.add"; "edgesChanges.remove": "edgesChanges.remove"; "edgesChanges.select": "edgesChanges.select"; }; }]>;
208
217
  static ngAcceptInputType_connection: i2.ConnectionSettings;
209
218
  }
@@ -0,0 +1,16 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AutoPanDirective implements OnInit {
4
+ private readonly statusService;
5
+ private readonly viewportService;
6
+ private readonly flowSettingsService;
7
+ private readonly rootSvg;
8
+ private readonly injector;
9
+ private readonly destroyRef;
10
+ private readonly documentPoint$;
11
+ ngOnInit(): void;
12
+ private toViewportPoint;
13
+ private pan;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutoPanDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AutoPanDirective, "[autoPan]", never, {}, {}, never, never, true, never>;
16
+ }
@@ -7,98 +7,24 @@ export declare class ChangesControllerDirective {
7
7
  protected nodesChangeService: NodesChangeService;
8
8
  protected edgesChangeService: EdgeChangesService;
9
9
  /**
10
- * Watch nodes change
10
+ * Watch nodes changes
11
11
  */
12
- readonly onNodesChange: import("@angular/core").OutputRef<NodeChange[]>;
13
- readonly onNodesChangePosition: import("@angular/core").OutputRef<NodePositionChange[]>;
14
- /**
15
- * @deprecated use `onNodesChange.position` instead
16
- */
17
- readonly onNodesChangePositionSignle: import("@angular/core").OutputRef<NodePositionChange>;
18
- /**
19
- * @deprecated use `onNodesChange.position` instead
20
- */
21
- readonly onNodesChangePositionMany: import("@angular/core").OutputRef<NodePositionChange[]>;
22
- readonly onNodesChangeSize: import("@angular/core").OutputRef<NodeSizeChange[]>;
23
- /**
24
- * @deprecated use `onNodesChange.size` instead
25
- */
26
- readonly onNodesChangeSizeSingle: import("@angular/core").OutputRef<NodeSizeChange>;
27
- /**
28
- * @deprecated use `onNodesChange.size` instead
29
- */
30
- readonly onNodesChangeSizeMany: import("@angular/core").OutputRef<NodeSizeChange[]>;
31
- readonly onNodesChangeAdd: import("@angular/core").OutputRef<NodeAddChange[]>;
32
- /**
33
- * @deprecated use `onNodesChange.add` instead
34
- */
35
- readonly onNodesChangeAddSingle: import("@angular/core").OutputRef<NodeAddChange>;
36
- /**
37
- * @deprecated use `onNodesChange.add` instead
38
- */
39
- readonly onNodesChangeAddMany: import("@angular/core").OutputRef<NodeAddChange[]>;
40
- readonly onNodesChangeRemove: import("@angular/core").OutputRef<NodeRemoveChange[]>;
41
- /**
42
- * @deprecated use `onNodesChange.remove` instead
43
- */
44
- readonly onNodesChangeRemoveSingle: import("@angular/core").OutputRef<NodeRemoveChange>;
45
- /**
46
- * @deprecated use `onNodesChange.remove` instead
47
- */
48
- readonly onNodesChangeRemoveMany: import("@angular/core").OutputRef<NodeRemoveChange[]>;
49
- readonly onNodesChangeSelect: import("@angular/core").OutputRef<NodeSelectedChange[]>;
50
- /**
51
- * @deprecated use `onNodesChange.select` instead
52
- */
53
- readonly onNodesChangeSelectSingle: import("@angular/core").OutputRef<NodeSelectedChange>;
54
- /**
55
- * @deprecated use `onNodesChange.select` instead
56
- */
57
- readonly onNodesChangeSelectMany: import("@angular/core").OutputRef<NodeSelectedChange[]>;
12
+ readonly nodesChanges: import("@angular/core").OutputRef<NodeChange[]>;
13
+ readonly nodesChangesPosition: import("@angular/core").OutputRef<NodePositionChange[]>;
14
+ readonly nodesChangesSize: import("@angular/core").OutputRef<NodeSizeChange[]>;
15
+ readonly nodesChangesAdd: import("@angular/core").OutputRef<NodeAddChange[]>;
16
+ readonly nodesChangesRemove: import("@angular/core").OutputRef<NodeRemoveChange[]>;
17
+ readonly nodesChangesSelect: import("@angular/core").OutputRef<NodeSelectedChange[]>;
58
18
  /**
59
19
  * Watch edges change
60
20
  */
61
- readonly onEdgesChange: import("@angular/core").OutputRef<EdgeChange[]>;
62
- readonly onNodesChangeDetached: import("@angular/core").OutputRef<EdgeDetachedChange[]>;
63
- /**
64
- * @deprecated use `onEdgesChange.detached` instead
65
- */
66
- readonly onNodesChangeDetachedSingle: import("@angular/core").OutputRef<EdgeDetachedChange>;
67
- /**
68
- * @deprecated use `onEdgesChange.detached` instead
69
- */
70
- readonly onNodesChangeDetachedMany: import("@angular/core").OutputRef<EdgeDetachedChange[]>;
71
- readonly onEdgesChangeAdd: import("@angular/core").OutputRef<EdgeAddChange[]>;
72
- /**
73
- * @deprecated use `onEdgesChange.add` instead
74
- */
75
- readonly onEdgeChangeAddSingle: import("@angular/core").OutputRef<EdgeAddChange>;
76
- /**
77
- * @deprecated use `onEdgesChange.add` instead
78
- */
79
- readonly onEdgeChangeAddMany: import("@angular/core").OutputRef<EdgeAddChange[]>;
80
- readonly onEdgeChangeRemove: import("@angular/core").OutputRef<EdgeRemoveChange[]>;
81
- /**
82
- * @deprecated use `onEdgesChange.remove` instead
83
- */
84
- readonly onEdgeChangeRemoveSingle: import("@angular/core").OutputRef<EdgeRemoveChange>;
85
- /**
86
- * @deprecated use `onEdgesChange.remove` instead
87
- */
88
- readonly onEdgeChangeRemoveMany: import("@angular/core").OutputRef<EdgeRemoveChange[]>;
89
- readonly onEdgeChangeSelect: import("@angular/core").OutputRef<EdgeSelectChange[]>;
90
- /**
91
- * @deprecated use `onEdgesChange.select` instead
92
- */
93
- readonly onEdgeChangeSelectSingle: import("@angular/core").OutputRef<EdgeSelectChange>;
94
- /**
95
- * @deprecated use `onEdgesChange.select` instead
96
- */
97
- readonly onEdgeChangeSelectMany: import("@angular/core").OutputRef<EdgeSelectChange[]>;
21
+ readonly edgesChanges: import("@angular/core").OutputRef<EdgeChange[]>;
22
+ readonly edgesChangesDetached: import("@angular/core").OutputRef<EdgeDetachedChange[]>;
23
+ readonly edgesChangesAdd: import("@angular/core").OutputRef<EdgeAddChange[]>;
24
+ readonly edgesChangesRemove: import("@angular/core").OutputRef<EdgeRemoveChange[]>;
25
+ readonly edgesChangesSelect: import("@angular/core").OutputRef<EdgeSelectChange[]>;
98
26
  private nodeChangesOfType;
99
27
  private edgeChangesOfType;
100
- private singleChange;
101
- private manyChanges;
102
28
  static ɵfac: i0.ɵɵFactoryDeclaration<ChangesControllerDirective, never>;
103
- static ɵdir: i0.ɵɵDirectiveDeclaration<ChangesControllerDirective, "[changesController]", never, {}, { "onNodesChange": "onNodesChange"; "onNodesChangePosition": "onNodesChange.position"; "onNodesChangePositionSignle": "onNodesChange.position.single"; "onNodesChangePositionMany": "onNodesChange.position.many"; "onNodesChangeSize": "onNodesChange.size"; "onNodesChangeSizeSingle": "onNodesChange.size.single"; "onNodesChangeSizeMany": "onNodesChange.size.many"; "onNodesChangeAdd": "onNodesChange.add"; "onNodesChangeAddSingle": "onNodesChange.add.single"; "onNodesChangeAddMany": "onNodesChange.add.many"; "onNodesChangeRemove": "onNodesChange.remove"; "onNodesChangeRemoveSingle": "onNodesChange.remove.single"; "onNodesChangeRemoveMany": "onNodesChange.remove.many"; "onNodesChangeSelect": "onNodesChange.select"; "onNodesChangeSelectSingle": "onNodesChange.select.single"; "onNodesChangeSelectMany": "onNodesChange.select.many"; "onEdgesChange": "onEdgesChange"; "onNodesChangeDetached": "onEdgesChange.detached"; "onNodesChangeDetachedSingle": "onEdgesChange.detached.single"; "onNodesChangeDetachedMany": "onEdgesChange.detached.many"; "onEdgesChangeAdd": "onEdgesChange.add"; "onEdgeChangeAddSingle": "onEdgesChange.add.single"; "onEdgeChangeAddMany": "onEdgesChange.add.many"; "onEdgeChangeRemove": "onEdgesChange.remove"; "onEdgeChangeRemoveSingle": "onEdgesChange.remove.single"; "onEdgeChangeRemoveMany": "onEdgesChange.remove.many"; "onEdgeChangeSelect": "onEdgesChange.select"; "onEdgeChangeSelectSingle": "onEdgesChange.select.single"; "onEdgeChangeSelectMany": "onEdgesChange.select.many"; }, never, never, true, never>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ChangesControllerDirective, "[changesController]", never, {}, { "nodesChanges": "nodesChanges"; "nodesChangesPosition": "nodesChanges.position"; "nodesChangesSize": "nodesChanges.size"; "nodesChangesAdd": "nodesChanges.add"; "nodesChangesRemove": "nodesChanges.remove"; "nodesChangesSelect": "nodesChanges.select"; "edgesChanges": "edgesChanges"; "edgesChangesDetached": "edgesChanges.detached"; "edgesChangesAdd": "edgesChanges.add"; "edgesChangesRemove": "edgesChanges.remove"; "edgesChangesSelect": "edgesChanges.select"; }, never, never, true, never>;
104
30
  }
@@ -1,10 +1,12 @@
1
- import { Connection, ReconnectionEvent } from '../interfaces/connection.interface';
1
+ import { Connection } from '../interfaces/connection.interface';
2
2
  import { HandleModel } from '../models/handle.model';
3
3
  import { EdgeModel } from '../models/edge.model';
4
+ import { ConnectEndEvent, ConnectStartEvent, ReconnectEndEvent, ReconnectEvent, ReconnectStartEvent } from '../interfaces/connection-events.interface';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class ConnectionControllerDirective {
6
7
  private statusService;
7
8
  private flowEntitiesService;
9
+ readonly connectStart: import("@angular/core").OutputRef<ConnectStartEvent>;
8
10
  /**
9
11
  * This event fires when user tries to create new Edge.
10
12
  *
@@ -12,16 +14,12 @@ export declare class ConnectionControllerDirective {
12
14
  *
13
15
  * Also it's important to note, that this event only fires when connection is valid by validator function in `ConnectionSettings`,
14
16
  * by default without passing the validator every connection concidered valid.
15
- *
16
- * @deprecated use `connect` output instead
17
17
  */
18
- readonly onConnect: import("@angular/core").OutputRef<Connection>;
19
18
  readonly connect: import("@angular/core").OutputRef<Connection>;
20
- /**
21
- * @deprecated use `reconnect` output instead
22
- */
23
- readonly onReconnect: import("@angular/core").OutputRef<ReconnectionEvent>;
24
- readonly reconnect: import("@angular/core").OutputRef<ReconnectionEvent>;
19
+ readonly connectEnd: import("@angular/core").OutputRef<ConnectEndEvent>;
20
+ readonly reconnectStart: import("@angular/core").OutputRef<ReconnectStartEvent>;
21
+ readonly reconnect: import("@angular/core").OutputRef<ReconnectEvent>;
22
+ readonly reconnectEnd: import("@angular/core").OutputRef<ReconnectEndEvent>;
25
23
  protected isStrictMode: import("@angular/core").Signal<boolean>;
26
24
  startConnection(handle: HandleModel): void;
27
25
  startReconnection(handle: HandleModel, oldEdge: EdgeModel): void;
@@ -29,5 +27,5 @@ export declare class ConnectionControllerDirective {
29
27
  resetValidateConnection(targetHandle: HandleModel): void;
30
28
  endConnection(): void;
31
29
  static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionControllerDirective, never>;
32
- static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionControllerDirective, "[onConnect], [onReconnect], [connect], [reconnect]", never, {}, { "onConnect": "onConnect"; "connect": "connect"; "onReconnect": "onReconnect"; "reconnect": "reconnect"; }, never, never, true, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionControllerDirective, "[connectStart], [connect], [connectEnd], [reconnectStart], [reconnect], [reconnectEnd]", never, {}, { "connectStart": "connectStart"; "connect": "connect"; "connectEnd": "connectEnd"; "reconnectStart": "reconnectStart"; "reconnect": "reconnect"; "reconnectEnd": "reconnectEnd"; }, never, never, true, never>;
33
31
  }
@@ -5,11 +5,12 @@ export declare class SpacePointContextDirective {
5
5
  private pointerMovementDirective;
6
6
  private rootSvg;
7
7
  private host;
8
+ private viewportService;
8
9
  /**
9
10
  * Signal with current mouse position in svg space
10
11
  */
11
12
  svgCurrentSpacePoint: Signal<Point>;
12
- pointerMovement: Signal<import("./root-pointer.directive").PointerEvent | undefined>;
13
+ private currentPoint;
13
14
  documentPointToFlowPoint(documentPoint: Point): DOMPoint;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<SpacePointContextDirective, never>;
15
16
  static ɵdir: i0.ɵɵDirectiveDeclaration<SpacePointContextDirective, "g[spacePointContext]", never, {}, {}, never, never, true, never>;
@@ -1,6 +1,5 @@
1
1
  import { EventEmitter, OutputRef } from '@angular/core';
2
2
  import { CustomNodeComponent } from '../public-components/custom-node/custom-node.component';
3
- import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node/custom-dynamic-node.component';
4
3
  type EventInfo<T> = T extends EventEmitter<infer U> | OutputRef<infer U> ? U : never;
5
4
  type EventKeys<T> = {
6
5
  [K in keyof T]: T[K] extends EventEmitter<any> | OutputRef<any> ? K : never;
@@ -20,7 +19,7 @@ type EventsFromComponent<T> = EventShape<T, EventKeys<T>>;
20
19
  *
21
20
  * @experimental
22
21
  */
23
- export type ComponentNodeEvent<T extends (CustomNodeComponent | CustomDynamicNodeComponent)[]> = {
22
+ export type ComponentNodeEvent<T extends CustomNodeComponent[]> = {
24
23
  nodeId: string;
25
24
  } & {
26
25
  [I in keyof T]: EventsFromComponent<T[I]>;
@@ -0,0 +1,66 @@
1
+ import { FlowStatusConnectionReleaseValidated, FlowStatusConnectionDropped, FlowStatusConnectionStart, FlowStatusReconnectionDropped, FlowStatusReconnectionStart, FlowStatusReconnectionReleaseValidated } from '../services/flow-status.service';
2
+ import { HandleType } from '../types/handle-type.type';
3
+ import { Position } from '../types/position.type';
4
+ import { Connection } from './connection.interface';
5
+ import { Edge } from './edge.interface';
6
+ import { Node } from './node.interface';
7
+ export interface ConnectStartEvent {
8
+ node: Node;
9
+ handle: Handle;
10
+ }
11
+ export interface ConnectEndEvent {
12
+ valid: boolean | null;
13
+ /**
14
+ * The side where the connection started from
15
+ */
16
+ from: {
17
+ node: Node;
18
+ handle: Handle;
19
+ };
20
+ /**
21
+ * The side where the connection ended to
22
+ */
23
+ to: {
24
+ node: Node | null;
25
+ handle: Handle | null;
26
+ };
27
+ }
28
+ export interface ReconnectStartEvent {
29
+ edge: Edge;
30
+ node: Node;
31
+ handle: Handle;
32
+ }
33
+ export interface ReconnectEvent {
34
+ connection: Connection;
35
+ oldEdge: Edge;
36
+ }
37
+ export interface ReconnectEndEvent {
38
+ edge: Edge;
39
+ valid: boolean | null;
40
+ /**
41
+ * The side where the edge remain attached during reconnection
42
+ */
43
+ from: {
44
+ node: Node;
45
+ handle: Handle;
46
+ };
47
+ /**
48
+ * The side where the edge was reconnected to
49
+ */
50
+ to: {
51
+ node: Node | null;
52
+ handle: Handle | null;
53
+ };
54
+ }
55
+ interface Handle {
56
+ id?: string;
57
+ type: HandleType;
58
+ position: Position;
59
+ }
60
+ export declare function connectStartEventFromConnectionStartStatus(status: FlowStatusConnectionStart): ConnectStartEvent;
61
+ export declare function connectEndEventFromConnectionReleaseValidatedStatus(status: FlowStatusConnectionReleaseValidated): ConnectEndEvent;
62
+ export declare function connectEndEventFromConnectionDroppedStatus(status: FlowStatusConnectionDropped): ConnectEndEvent;
63
+ export declare function reconnectStartEventFromReconnectionStartStatus(status: FlowStatusReconnectionStart): ReconnectStartEvent;
64
+ export declare function reconnectEndEventFromReconnectionReleaseValidatedStatus(status: FlowStatusReconnectionReleaseValidated): ReconnectEndEvent;
65
+ export declare function reconnectEndEventFromReconnectionDroppedStatus(status: FlowStatusReconnectionDropped): ReconnectEndEvent;
66
+ export {};
@@ -1,12 +1,18 @@
1
1
  import { ConnectionMode } from '../types/connection-mode.type';
2
+ import { HandleType } from '../types/handle-type.type';
2
3
  import { Connection } from './connection.interface';
3
4
  import { Curve, EdgeType } from './edge.interface';
4
5
  import { Marker } from './marker.interface';
5
- export type ConnectionValidatorFn = (connection: Connection) => boolean;
6
+ export type ConnectionForValidation = Connection & {
7
+ sourceHandleType: HandleType;
8
+ targetHandleType: HandleType;
9
+ };
10
+ export type ConnectionValidatorFn = (connection: ConnectionForValidation) => boolean;
6
11
  export interface ConnectionSettings {
7
12
  curve?: Curve;
8
13
  type?: EdgeType;
9
14
  validator?: ConnectionValidatorFn;
10
15
  marker?: Marker;
11
16
  mode?: ConnectionMode;
17
+ allowSelfConnections?: boolean;
12
18
  }
@@ -1,11 +1,6 @@
1
- import { Edge } from './edge.interface';
2
1
  export interface Connection {
3
2
  source: string;
4
3
  target: string;
5
4
  sourceHandle?: string;
6
5
  targetHandle?: string;
7
6
  }
8
- export interface ReconnectionEvent {
9
- connection: Connection;
10
- oldEdge: Edge;
11
- }
@@ -1,7 +1,7 @@
1
1
  import { Position } from '../types/position.type';
2
2
  import { EdgeLabelPosition } from './edge-label.interface';
3
3
  import { Edge } from './edge.interface';
4
- import { DynamicNode, Node } from './node.interface';
4
+ import { Node } from './node.interface';
5
5
  import { Point } from './point.interface';
6
6
  export interface CurveFactorySharedParams {
7
7
  /** Starting point coordinates of the curve */
@@ -15,7 +15,7 @@ export interface CurveFactorySharedParams {
15
15
  /** Array of all edges in the flow */
16
16
  allEdges: Edge[];
17
17
  /** Array of all nodes in the flow */
18
- allNodes: Node[] | DynamicNode[];
18
+ allNodes: Node[];
19
19
  }
20
20
  export interface ConnectionCurveFactoryParams extends CurveFactorySharedParams {
21
21
  /** Indicates this is a temporary connection being drawn */
@@ -1,7 +1,3 @@
1
- /**
2
- * @deprecated not used anymore internally
3
- */
4
- export type EdgeLabelType = 'default' | 'html-template';
5
1
  export type EdgeLabelPosition = 'start' | 'center' | 'end';
6
2
  export type EdgeLabel<T = unknown> = DefaultEdgeLabel | HtmlTemplateEdgeLabel<T>;
7
3
  export interface DefaultEdgeLabel {
@@ -1,21 +1,49 @@
1
+ import { WritableSignal } from '@angular/core';
1
2
  import { Connection } from './connection.interface';
2
3
  import { CurveFactory } from './curve-factory.interface';
3
4
  import { EdgeLabel, EdgeLabelPosition } from './edge-label.interface';
4
5
  import { Marker } from './marker.interface';
6
+ import { UnwrapSignal } from '../types/unwrap-signal.type';
7
+ export declare const EDGE_DEFAULTS: {
8
+ type: EdgeType;
9
+ curve: Curve;
10
+ data: {};
11
+ edgeLabels: {};
12
+ markers: {};
13
+ reconnectable: boolean;
14
+ floating: boolean;
15
+ selected: boolean;
16
+ };
5
17
  export type EdgeType = 'default' | 'template';
6
18
  export type Curve = 'straight' | 'bezier' | 'smooth-step' | 'step' | CurveFactory;
7
19
  export interface Edge<T = unknown> extends Connection {
8
20
  id: string;
9
21
  type?: EdgeType;
10
- curve?: Curve;
11
- data?: T;
12
- edgeLabels?: {
22
+ curve?: WritableSignal<Curve>;
23
+ data?: WritableSignal<T>;
24
+ edgeLabels?: WritableSignal<{
13
25
  [position in EdgeLabelPosition]?: EdgeLabel;
14
- };
15
- markers?: {
26
+ }>;
27
+ markers?: WritableSignal<{
16
28
  start?: Marker;
17
29
  end?: Marker;
18
- };
19
- reconnectable?: boolean | 'source' | 'target';
20
- floating?: boolean;
30
+ }>;
31
+ reconnectable?: WritableSignal<boolean | 'source' | 'target'>;
32
+ floating?: WritableSignal<boolean>;
33
+ selected?: WritableSignal<boolean>;
21
34
  }
35
+ export type StaticEdge<T = unknown> = UnwrapSignal<Edge<T>>;
36
+ export declare function createEdge<T>(edge: StaticEdge<T>): Required<Edge<T>>;
37
+ export declare function createEdge<T>(edge: StaticEdge<T>, options: {
38
+ useDefaults: true;
39
+ }): Required<Edge<T>>;
40
+ export declare function createEdge<T>(edge: StaticEdge<T>, options: {
41
+ useDefaults: false;
42
+ }): Edge<T>;
43
+ export declare function createEdges<T>(edges: StaticEdge<T>[]): Required<Edge<T>>[];
44
+ export declare function createEdges<T>(edges: StaticEdge<T>[], options: {
45
+ useDefaults: true;
46
+ }): Required<Edge<T>>[];
47
+ export declare function createEdges<T>(edges: StaticEdge<T>[], options: {
48
+ useDefaults: false;
49
+ }): Edge<T>[];