@angflow/angular 0.0.13 → 0.0.14

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 (161) hide show
  1. package/README.md +14 -4
  2. package/dist/base.css +416 -411
  3. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts +4 -0
  4. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts.map +1 -1
  5. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js +24 -20
  6. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js.map +1 -1
  7. package/dist/esm/lib/components/attribution/attribution.component.d.ts +4 -0
  8. package/dist/esm/lib/components/attribution/attribution.component.d.ts.map +1 -1
  9. package/dist/esm/lib/components/attribution/attribution.component.js +22 -18
  10. package/dist/esm/lib/components/attribution/attribution.component.js.map +1 -1
  11. package/dist/esm/lib/components/background/background.component.d.ts +20 -0
  12. package/dist/esm/lib/components/background/background.component.d.ts.map +1 -1
  13. package/dist/esm/lib/components/background/background.component.js +159 -140
  14. package/dist/esm/lib/components/background/background.component.js.map +1 -1
  15. package/dist/esm/lib/components/connection-line/connection-line.component.d.ts +7 -0
  16. package/dist/esm/lib/components/connection-line/connection-line.component.d.ts.map +1 -1
  17. package/dist/esm/lib/components/connection-line/connection-line.component.js +7 -0
  18. package/dist/esm/lib/components/connection-line/connection-line.component.js.map +1 -1
  19. package/dist/esm/lib/components/controls/controls.component.d.ts +21 -0
  20. package/dist/esm/lib/components/controls/controls.component.d.ts.map +1 -1
  21. package/dist/esm/lib/components/controls/controls.component.js +21 -1
  22. package/dist/esm/lib/components/controls/controls.component.js.map +1 -1
  23. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts +4 -0
  24. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts.map +1 -1
  25. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.js +4 -0
  26. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.js.map +1 -1
  27. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts +12 -0
  28. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts.map +1 -1
  29. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js +12 -0
  30. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js.map +1 -1
  31. package/dist/esm/lib/components/edges/base-edge.component.d.ts +23 -0
  32. package/dist/esm/lib/components/edges/base-edge.component.d.ts.map +1 -1
  33. package/dist/esm/lib/components/edges/base-edge.component.js +63 -40
  34. package/dist/esm/lib/components/edges/base-edge.component.js.map +1 -1
  35. package/dist/esm/lib/components/edges/bezier-edge.component.d.ts +4 -0
  36. package/dist/esm/lib/components/edges/bezier-edge.component.d.ts.map +1 -1
  37. package/dist/esm/lib/components/edges/bezier-edge.component.js +4 -0
  38. package/dist/esm/lib/components/edges/bezier-edge.component.js.map +1 -1
  39. package/dist/esm/lib/components/edges/edge-text.component.d.ts +4 -0
  40. package/dist/esm/lib/components/edges/edge-text.component.d.ts.map +1 -1
  41. package/dist/esm/lib/components/edges/edge-text.component.js +30 -26
  42. package/dist/esm/lib/components/edges/edge-text.component.js.map +1 -1
  43. package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts +4 -0
  44. package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts.map +1 -1
  45. package/dist/esm/lib/components/edges/simple-bezier-edge.component.js +4 -0
  46. package/dist/esm/lib/components/edges/simple-bezier-edge.component.js.map +1 -1
  47. package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts +1 -0
  48. package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts.map +1 -1
  49. package/dist/esm/lib/components/edges/smooth-step-edge.component.js +1 -0
  50. package/dist/esm/lib/components/edges/smooth-step-edge.component.js.map +1 -1
  51. package/dist/esm/lib/components/edges/step-edge.component.d.ts +1 -0
  52. package/dist/esm/lib/components/edges/step-edge.component.d.ts.map +1 -1
  53. package/dist/esm/lib/components/edges/step-edge.component.js +1 -0
  54. package/dist/esm/lib/components/edges/step-edge.component.js.map +1 -1
  55. package/dist/esm/lib/components/edges/straight-edge.component.d.ts +1 -0
  56. package/dist/esm/lib/components/edges/straight-edge.component.d.ts.map +1 -1
  57. package/dist/esm/lib/components/edges/straight-edge.component.js +1 -0
  58. package/dist/esm/lib/components/edges/straight-edge.component.js.map +1 -1
  59. package/dist/esm/lib/components/handle/handle.component.d.ts +20 -1
  60. package/dist/esm/lib/components/handle/handle.component.d.ts.map +1 -1
  61. package/dist/esm/lib/components/handle/handle.component.js +25 -2
  62. package/dist/esm/lib/components/handle/handle.component.js.map +1 -1
  63. package/dist/esm/lib/components/minimap/minimap.component.d.ts +34 -0
  64. package/dist/esm/lib/components/minimap/minimap.component.d.ts.map +1 -1
  65. package/dist/esm/lib/components/minimap/minimap.component.js +30 -4
  66. package/dist/esm/lib/components/minimap/minimap.component.js.map +1 -1
  67. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts +14 -0
  68. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts.map +1 -1
  69. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js +14 -0
  70. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js.map +1 -1
  71. package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts +29 -0
  72. package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts.map +1 -1
  73. package/dist/esm/lib/components/node-resizer/node-resizer.component.js +153 -124
  74. package/dist/esm/lib/components/node-resizer/node-resizer.component.js.map +1 -1
  75. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts +21 -1
  76. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts.map +1 -1
  77. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js +21 -1
  78. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js.map +1 -1
  79. package/dist/esm/lib/components/nodes/default-node.component.d.ts +4 -0
  80. package/dist/esm/lib/components/nodes/default-node.component.d.ts.map +1 -1
  81. package/dist/esm/lib/components/nodes/default-node.component.js +13 -9
  82. package/dist/esm/lib/components/nodes/default-node.component.js.map +1 -1
  83. package/dist/esm/lib/components/nodes/group-node.component.d.ts +5 -0
  84. package/dist/esm/lib/components/nodes/group-node.component.d.ts.map +1 -1
  85. package/dist/esm/lib/components/nodes/group-node.component.js +5 -0
  86. package/dist/esm/lib/components/nodes/group-node.component.js.map +1 -1
  87. package/dist/esm/lib/components/nodes/input-node.component.d.ts +4 -0
  88. package/dist/esm/lib/components/nodes/input-node.component.d.ts.map +1 -1
  89. package/dist/esm/lib/components/nodes/input-node.component.js +11 -7
  90. package/dist/esm/lib/components/nodes/input-node.component.js.map +1 -1
  91. package/dist/esm/lib/components/nodes/output-node.component.d.ts +4 -0
  92. package/dist/esm/lib/components/nodes/output-node.component.d.ts.map +1 -1
  93. package/dist/esm/lib/components/nodes/output-node.component.js +11 -7
  94. package/dist/esm/lib/components/nodes/output-node.component.js.map +1 -1
  95. package/dist/esm/lib/components/panel/panel.component.d.ts +12 -0
  96. package/dist/esm/lib/components/panel/panel.component.d.ts.map +1 -1
  97. package/dist/esm/lib/components/panel/panel.component.js +12 -0
  98. package/dist/esm/lib/components/panel/panel.component.js.map +1 -1
  99. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts +5 -0
  100. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts.map +1 -1
  101. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.js +5 -0
  102. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.js.map +1 -1
  103. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts.map +1 -1
  104. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js +35 -3
  105. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js.map +1 -1
  106. package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts +154 -1
  107. package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts.map +1 -1
  108. package/dist/esm/lib/container/ng-flow/ng-flow.component.js +162 -23
  109. package/dist/esm/lib/container/ng-flow/ng-flow.component.js.map +1 -1
  110. package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts +2 -0
  111. package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts.map +1 -1
  112. package/dist/esm/lib/container/node-renderer/node-renderer.component.js +40 -2
  113. package/dist/esm/lib/container/node-renderer/node-renderer.component.js.map +1 -1
  114. package/dist/esm/lib/container/pane/pane.component.d.ts +0 -1
  115. package/dist/esm/lib/container/pane/pane.component.d.ts.map +1 -1
  116. package/dist/esm/lib/container/pane/pane.component.js +18 -25
  117. package/dist/esm/lib/container/pane/pane.component.js.map +1 -1
  118. package/dist/esm/lib/container/viewport/viewport.component.d.ts +4 -0
  119. package/dist/esm/lib/container/viewport/viewport.component.d.ts.map +1 -1
  120. package/dist/esm/lib/container/viewport/viewport.component.js +4 -0
  121. package/dist/esm/lib/container/viewport/viewport.component.js.map +1 -1
  122. package/dist/esm/lib/directives/drag.directive.d.ts +17 -0
  123. package/dist/esm/lib/directives/drag.directive.d.ts.map +1 -1
  124. package/dist/esm/lib/directives/drag.directive.js +17 -0
  125. package/dist/esm/lib/directives/drag.directive.js.map +1 -1
  126. package/dist/esm/lib/directives/key-handler.directive.d.ts +13 -0
  127. package/dist/esm/lib/directives/key-handler.directive.d.ts.map +1 -1
  128. package/dist/esm/lib/directives/key-handler.directive.js +13 -0
  129. package/dist/esm/lib/directives/key-handler.directive.js.map +1 -1
  130. package/dist/esm/lib/public-api.d.ts +1 -0
  131. package/dist/esm/lib/public-api.d.ts.map +1 -1
  132. package/dist/esm/lib/public-api.js +2 -0
  133. package/dist/esm/lib/public-api.js.map +1 -1
  134. package/dist/esm/lib/services/flow-store.service.d.ts +3 -0
  135. package/dist/esm/lib/services/flow-store.service.d.ts.map +1 -1
  136. package/dist/esm/lib/services/flow-store.service.js +3 -0
  137. package/dist/esm/lib/services/flow-store.service.js.map +1 -1
  138. package/dist/esm/lib/services/ng-flow.service.d.ts +82 -0
  139. package/dist/esm/lib/services/ng-flow.service.d.ts.map +1 -1
  140. package/dist/esm/lib/services/ng-flow.service.js +82 -0
  141. package/dist/esm/lib/services/ng-flow.service.js.map +1 -1
  142. package/dist/esm/lib/services/tokens.d.ts +23 -0
  143. package/dist/esm/lib/services/tokens.d.ts.map +1 -1
  144. package/dist/esm/lib/services/tokens.js +22 -0
  145. package/dist/esm/lib/services/tokens.js.map +1 -1
  146. package/dist/esm/lib/types/nodes.d.ts +36 -2
  147. package/dist/esm/lib/types/nodes.d.ts.map +1 -1
  148. package/dist/esm/lib/utils/changes.d.ts +20 -0
  149. package/dist/esm/lib/utils/changes.d.ts.map +1 -1
  150. package/dist/esm/lib/utils/changes.js +20 -0
  151. package/dist/esm/lib/utils/changes.js.map +1 -1
  152. package/dist/esm/lib/utils/index.d.ts +1 -0
  153. package/dist/esm/lib/utils/index.d.ts.map +1 -1
  154. package/dist/esm/lib/utils/index.js +1 -0
  155. package/dist/esm/lib/utils/index.js.map +1 -1
  156. package/dist/esm/lib/utils/inject-ng-flow-node.d.ts +20 -0
  157. package/dist/esm/lib/utils/inject-ng-flow-node.d.ts.map +1 -0
  158. package/dist/esm/lib/utils/inject-ng-flow-node.js +28 -0
  159. package/dist/esm/lib/utils/inject-ng-flow-node.js.map +1 -0
  160. package/dist/style.css +416 -411
  161. package/package.json +6 -6
@@ -1,4 +1,27 @@
1
1
  import { InjectionToken } from '@angular/core';
2
+ import type { NgFlowNodeContext } from '../types';
3
+ /**
4
+ * DI token providing the host node's id to components nested inside a node
5
+ * template. Injected automatically by the node renderer — custom components
6
+ * like `<ng-flow-handle>` or `<ng-flow-node-toolbar>` use it to resolve their
7
+ * owning node without explicit `[nodeId]` binding.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * constructor(@Optional() @Inject(NODE_ID) private nodeId: string | null) {}
12
+ * ```
13
+ */
2
14
  export declare const NODE_ID: InjectionToken<string>;
15
+ /**
16
+ * DI token providing the host edge's id to components nested inside an edge
17
+ * template. Mirror of {@link NODE_ID} for edge components.
18
+ */
3
19
  export declare const EDGE_ID: InjectionToken<string>;
20
+ /**
21
+ * DI token providing the per-node context (reactive signals) to components
22
+ * registered via `nodeTypes` on `<ng-flow>`. Consumers retrieve the context
23
+ * via the public `injectNgFlowNode<T>()` helper rather than reading the token
24
+ * directly.
25
+ */
26
+ export declare const NG_FLOW_NODE_CONTEXT: InjectionToken<NgFlowNodeContext<unknown>>;
4
27
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,eAAO,MAAM,OAAO,wBAAwC,CAAC;AAC7D,eAAO,MAAM,OAAO,wBAAwC,CAAC"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,OAAO,wBAAwC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,OAAO,wBAAwC,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,4CAEhC,CAAC"}
@@ -1,4 +1,26 @@
1
1
  import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * DI token providing the host node's id to components nested inside a node
4
+ * template. Injected automatically by the node renderer — custom components
5
+ * like `<ng-flow-handle>` or `<ng-flow-node-toolbar>` use it to resolve their
6
+ * owning node without explicit `[nodeId]` binding.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * constructor(@Optional() @Inject(NODE_ID) private nodeId: string | null) {}
11
+ * ```
12
+ */
2
13
  export const NODE_ID = new InjectionToken('NODE_ID');
14
+ /**
15
+ * DI token providing the host edge's id to components nested inside an edge
16
+ * template. Mirror of {@link NODE_ID} for edge components.
17
+ */
3
18
  export const EDGE_ID = new InjectionToken('EDGE_ID');
19
+ /**
20
+ * DI token providing the per-node context (reactive signals) to components
21
+ * registered via `nodeTypes` on `<ng-flow>`. Consumers retrieve the context
22
+ * via the public `injectNgFlowNode<T>()` helper rather than reading the token
23
+ * directly.
24
+ */
25
+ export const NG_FLOW_NODE_CONTEXT = new InjectionToken('NG_FLOW_NODE_CONTEXT');
4
26
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/lib/services/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAS,SAAS,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAS,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/lib/services/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAS,SAAS,CAAC,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAS,SAAS,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CACpD,sBAAsB,CACvB,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Type } from '@angular/core';
2
- import type { NodeBase, InternalNodeBase, NodeProps as NodePropsBase } from '@angflow/system';
1
+ import type { Type, Signal } from '@angular/core';
2
+ import type { NodeBase, InternalNodeBase, NodeProps as NodePropsBase, Position } from '@angflow/system';
3
3
  /**
4
4
  * The Node type represents everything Angular Flow needs to know about a given node.
5
5
  */
@@ -50,4 +50,38 @@ export interface NodeComponentInputs<NodeType extends Node = Node> {
50
50
  targetPosition: import('@angflow/system').Position;
51
51
  dragHandle?: string;
52
52
  }
53
+ /**
54
+ * Reactive context passed to a custom node component registered via `nodeTypes`.
55
+ * Retrieved by `injectNgFlowNode<TData>()` inside the component class.
56
+ *
57
+ * All properties are read-only signals. Writes to node state must go through
58
+ * `NgFlowService` or `FlowStore` — this context is a view-only projection.
59
+ */
60
+ export interface NgFlowNodeContext<TData = unknown> {
61
+ /** Node id. */
62
+ readonly id: Signal<string>;
63
+ /** Consumer-provided data payload. Typed via `TData`. */
64
+ readonly data: Signal<TData | undefined>;
65
+ /** The node's registered type string (or 'default'). */
66
+ readonly type: Signal<string | undefined>;
67
+ /** True while this node is part of the current selection. */
68
+ readonly selected: Signal<boolean>;
69
+ /** True while this node is being dragged. */
70
+ readonly dragging: Signal<boolean>;
71
+ /** Stacking order computed by the library (selection elevation, etc.). */
72
+ readonly zIndex: Signal<number>;
73
+ /** Whether connection drag is allowed from this node's handles. */
74
+ readonly isConnectable: Signal<boolean>;
75
+ /** Absolute position in flow coordinates. */
76
+ readonly position: Signal<{
77
+ x: number;
78
+ y: number;
79
+ }>;
80
+ /** sourcePosition for default edges (Position enum, optional). */
81
+ readonly sourcePosition: Signal<Position | undefined>;
82
+ /** targetPosition for default edges. */
83
+ readonly targetPosition: Signal<Position | undefined>;
84
+ /** CSS selector for the drag-handle sub-element, if any. */
85
+ readonly dragHandle: Signal<string | undefined>;
86
+ }
53
87
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,IAAI,aAAa,EAA6B,MAAM,iBAAiB,CAAC;AAEzH;;GAEG;AACH,MAAM,MAAM,IAAI,CACd,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,QAAQ,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,IACtD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAEpF,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEzG,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;AAEhH,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,CACrD,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,KACd,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,IAAI,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,GACnE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,iBAAiB,EAAE,QAAQ,CAAC;IACnD,cAAc,EAAE,OAAO,iBAAiB,EAAE,QAAQ,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/lib/types/nodes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,26 @@
1
1
  import type { NodeChange, EdgeChange, NodeSelectionChange, EdgeSelectionChange, NodeRemoveChange, EdgeRemoveChange } from '@angflow/system';
2
2
  import type { Node, Edge } from '../types';
3
+ /**
4
+ * Apply an array of `NodeChange` to the current `nodes` array and return a
5
+ * new array reflecting them. Typical usage is to call this inside
6
+ * `(nodesChange)` to keep your bound `nodes` in sync with user interaction.
7
+ *
8
+ * Handles `add`, `remove`, `replace`, `select`, `position`, and `dimensions`
9
+ * changes; unknown change types pass through unchanged.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * onNodesChange(changes: NodeChange[]) {
14
+ * this.nodes = applyNodeChanges(changes, this.nodes);
15
+ * }
16
+ * ```
17
+ */
3
18
  export declare function applyNodeChanges<NodeType extends Node = Node>(changes: NodeChange<NodeType>[], nodes: NodeType[]): NodeType[];
19
+ /**
20
+ * Apply an array of `EdgeChange` to the current `edges` array and return a
21
+ * new array reflecting them. Mirror of {@link applyNodeChanges} for edges;
22
+ * wire to `(edgesChange)`.
23
+ */
4
24
  export declare function applyEdgeChanges<EdgeType extends Edge = Edge>(changes: EdgeChange<EdgeType>[], edges: EdgeType[]): EdgeType[];
5
25
  export declare function createSelectionChange(id: string, selected: boolean): NodeSelectionChange | EdgeSelectionChange;
6
26
  export declare function getSelectionChanges(items: Map<string, any>, selectedIds?: Set<string>, mutateItem?: boolean): NodeSelectionChange[] | EdgeSelectionChange[];
@@ -1 +1 @@
1
- {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA+F3C,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC3D,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC/B,KAAK,EAAE,QAAQ,EAAE,GAChB,QAAQ,EAAE,CAEZ;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC3D,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC/B,KAAK,EAAE,QAAQ,EAAE,GAChB,QAAQ,EAAE,CAEZ;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,mBAAmB,GAAG,mBAAmB,CAE9G;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACvB,WAAW,GAAE,GAAG,CAAC,MAAM,CAAa,EACpC,UAAU,UAAQ,GACjB,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAc/C;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAU,EAAE,MAAM,EAAE,EAAE;IAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,GAAG,EAAE,CAwB5H;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,GAAG,gBAAgB,CAEzG"}
1
+ {"version":3,"file":"changes.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA+F3C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC3D,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC/B,KAAK,EAAE,QAAQ,EAAE,GAChB,QAAQ,EAAE,CAEZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAC3D,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC/B,KAAK,EAAE,QAAQ,EAAE,GAChB,QAAQ,EAAE,CAEZ;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,mBAAmB,GAAG,mBAAmB,CAE9G;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EACvB,WAAW,GAAE,GAAG,CAAC,MAAM,CAAa,EACpC,UAAU,UAAQ,GACjB,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAc/C;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAU,EAAE,MAAM,EAAE,EAAE;IAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,GAAG,EAAE,CAwB5H;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,GAAG,gBAAgB,CAEzG"}
@@ -85,9 +85,29 @@ function applyChange(change, element) {
85
85
  }
86
86
  }
87
87
  }
88
+ /**
89
+ * Apply an array of `NodeChange` to the current `nodes` array and return a
90
+ * new array reflecting them. Typical usage is to call this inside
91
+ * `(nodesChange)` to keep your bound `nodes` in sync with user interaction.
92
+ *
93
+ * Handles `add`, `remove`, `replace`, `select`, `position`, and `dimensions`
94
+ * changes; unknown change types pass through unchanged.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * onNodesChange(changes: NodeChange[]) {
99
+ * this.nodes = applyNodeChanges(changes, this.nodes);
100
+ * }
101
+ * ```
102
+ */
88
103
  export function applyNodeChanges(changes, nodes) {
89
104
  return applyChanges(changes, nodes);
90
105
  }
106
+ /**
107
+ * Apply an array of `EdgeChange` to the current `edges` array and return a
108
+ * new array reflecting them. Mirror of {@link applyNodeChanges} for edges;
109
+ * wire to `(edgesChange)`.
110
+ */
91
111
  export function applyEdgeChanges(changes, edges) {
92
112
  return applyChanges(changes, edges);
93
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../../../src/lib/utils/changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changes.js","sourceRoot":"","sources":["../../../../src/lib/utils/changes.ts"],"names":[],"mappings":"AAUA,SAAS,YAAY,CAAC,OAAc,EAAE,QAAe;IACnD,MAAM,eAAe,GAAU,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAc,CAAC;IACzC,MAAM,cAAc,GAAU,EAAE,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACtC,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAChC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,MAAW,EAAE,OAAY;IAC5C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACnC,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC3C,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACrC,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC3C,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACrC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC7C,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBACzB,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;wBACtE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC1C,CAAC;oBACD,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;wBACvE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACrC,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA+B,EAC/B,KAAiB;IAEjB,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,CAAe,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA+B,EAC/B,KAAiB;IAEjB,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,CAAe,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAU,EAAE,QAAiB;IACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,KAAuB,EACvB,cAA2B,IAAI,GAAG,EAAE,EACpC,UAAU,GAAG,KAAK;IAElB,MAAM,OAAO,GAAU,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC1F,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,EAA0D;IACnH,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAc,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/E,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,EAAE,QAAQ,IAAI,UAAU,CAAC;QAEhE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAwB,IAAO;IAClE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACzC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { applyNodeChanges, applyEdgeChanges, createSelectionChange, getSelectionChanges, getElementsDiffChanges, elementToRemoveChange } from './changes';
2
+ export { injectNgFlowNode } from './inject-ng-flow-node';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { applyNodeChanges, applyEdgeChanges, createSelectionChange, getSelectionChanges, getElementsDiffChanges, elementToRemoveChange } from './changes';
2
+ export { injectNgFlowNode } from './inject-ng-flow-node';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { NgFlowNodeContext } from '../types';
2
+ /**
3
+ * Retrieve the per-node reactive context from a component registered via
4
+ * `nodeTypes` on `<ng-flow>`. The returned object exposes read-only signals
5
+ * for every property the library tracks per node (id, data, selected,
6
+ * dragging, position, zIndex, etc.).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * @Component({ ... })
11
+ * export class MyNode {
12
+ * readonly node = injectNgFlowNode<MyData>();
13
+ * // node.id(), node.data(), node.selected(), ...
14
+ * }
15
+ * ```
16
+ *
17
+ * @throws Error when called outside of a node-rendered component tree.
18
+ */
19
+ export declare function injectNgFlowNode<TData = unknown>(): NgFlowNodeContext<TData>;
20
+ //# sourceMappingURL=inject-ng-flow-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-ng-flow-node.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils/inject-ng-flow-node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,KAAK,iBAAiB,CAAC,KAAK,CAAC,CAS5E"}
@@ -0,0 +1,28 @@
1
+ import { inject } from '@angular/core';
2
+ import { NG_FLOW_NODE_CONTEXT } from '../services/tokens';
3
+ /**
4
+ * Retrieve the per-node reactive context from a component registered via
5
+ * `nodeTypes` on `<ng-flow>`. The returned object exposes read-only signals
6
+ * for every property the library tracks per node (id, data, selected,
7
+ * dragging, position, zIndex, etc.).
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * @Component({ ... })
12
+ * export class MyNode {
13
+ * readonly node = injectNgFlowNode<MyData>();
14
+ * // node.id(), node.data(), node.selected(), ...
15
+ * }
16
+ * ```
17
+ *
18
+ * @throws Error when called outside of a node-rendered component tree.
19
+ */
20
+ export function injectNgFlowNode() {
21
+ const context = inject(NG_FLOW_NODE_CONTEXT, { optional: true });
22
+ if (!context) {
23
+ throw new Error('injectNgFlowNode() was called outside of a node-rendered component tree. ' +
24
+ 'It can only be called from components registered via nodeTypes on <ng-flow>.');
25
+ }
26
+ return context;
27
+ }
28
+ //# sourceMappingURL=inject-ng-flow-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-ng-flow-node.js","sourceRoot":"","sources":["../../../../src/lib/utils/inject-ng-flow-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,2EAA2E;YAC3E,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,OAAmC,CAAC;AAC7C,CAAC"}