@angflow/angular 0.0.18 → 0.3.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 (234) hide show
  1. package/README.md +108 -15
  2. package/dist/base.css +8 -0
  3. package/dist/esm/index.d.ts +0 -1
  4. package/dist/esm/lib/agent/agent-bridge.service.d.ts +3 -1
  5. package/dist/esm/lib/agent/agent-bridge.service.js +130 -23
  6. package/dist/esm/lib/agent/agent-bridge.service.js.map +1 -1
  7. package/dist/esm/lib/agent/chat/agent-chat.component.d.ts +0 -1
  8. package/dist/esm/lib/agent/chat/agent-chat.service.d.ts +0 -1
  9. package/dist/esm/lib/agent/chat/agent-chat.service.js +11 -2
  10. package/dist/esm/lib/agent/chat/agent-chat.service.js.map +1 -1
  11. package/dist/esm/lib/agent/chat/default-system-prompt.d.ts +1 -2
  12. package/dist/esm/lib/agent/chat/default-system-prompt.js +2 -1
  13. package/dist/esm/lib/agent/chat/default-system-prompt.js.map +1 -1
  14. package/dist/esm/lib/agent/chat/index.d.ts +0 -1
  15. package/dist/esm/lib/agent/chat/provide-agent-chat.d.ts +0 -1
  16. package/dist/esm/lib/agent/chat/types.d.ts +0 -1
  17. package/dist/esm/lib/agent/history.d.ts +0 -1
  18. package/dist/esm/lib/agent/index.d.ts +0 -1
  19. package/dist/esm/lib/agent/provide-agent-bridge.d.ts +0 -1
  20. package/dist/esm/lib/agent/tool-schemas.d.ts +0 -1
  21. package/dist/esm/lib/agent/tool-schemas.js +3 -1
  22. package/dist/esm/lib/agent/tool-schemas.js.map +1 -1
  23. package/dist/esm/lib/agent/transports/websocket.d.ts +8 -1
  24. package/dist/esm/lib/agent/transports/websocket.js +14 -2
  25. package/dist/esm/lib/agent/transports/websocket.js.map +1 -1
  26. package/dist/esm/lib/agent/transports/window.d.ts +0 -1
  27. package/dist/esm/lib/agent/transports/window.js +2 -1
  28. package/dist/esm/lib/agent/transports/window.js.map +1 -1
  29. package/dist/esm/lib/agent/types.d.ts +0 -1
  30. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts +0 -1
  31. package/dist/esm/lib/components/attribution/attribution.component.d.ts +0 -1
  32. package/dist/esm/lib/components/background/background.component.d.ts +0 -1
  33. package/dist/esm/lib/components/connection-line/connection-line.component.d.ts +0 -1
  34. package/dist/esm/lib/components/controls/controls.component.d.ts +0 -1
  35. package/dist/esm/lib/components/controls/controls.component.js +2 -1
  36. package/dist/esm/lib/components/controls/controls.component.js.map +1 -1
  37. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts +0 -1
  38. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts +7 -2
  39. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js +11 -4
  40. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js.map +1 -1
  41. package/dist/esm/lib/components/edges/base-edge.component.d.ts +0 -1
  42. package/dist/esm/lib/components/edges/bezier-edge.component.d.ts +0 -1
  43. package/dist/esm/lib/components/edges/bezier-edge.component.js +2 -1
  44. package/dist/esm/lib/components/edges/bezier-edge.component.js.map +1 -1
  45. package/dist/esm/lib/components/edges/edge-text.component.d.ts +0 -1
  46. package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts +0 -1
  47. package/dist/esm/lib/components/edges/simple-bezier-edge.component.js +2 -1
  48. package/dist/esm/lib/components/edges/simple-bezier-edge.component.js.map +1 -1
  49. package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts +0 -1
  50. package/dist/esm/lib/components/edges/smooth-step-edge.component.js +2 -1
  51. package/dist/esm/lib/components/edges/smooth-step-edge.component.js.map +1 -1
  52. package/dist/esm/lib/components/edges/step-edge.component.d.ts +0 -1
  53. package/dist/esm/lib/components/edges/step-edge.component.js +2 -1
  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 +0 -1
  56. package/dist/esm/lib/components/edges/straight-edge.component.js +2 -1
  57. package/dist/esm/lib/components/edges/straight-edge.component.js.map +1 -1
  58. package/dist/esm/lib/components/handle/handle.component.d.ts +1 -1
  59. package/dist/esm/lib/components/handle/handle.component.js +13 -1
  60. package/dist/esm/lib/components/handle/handle.component.js.map +1 -1
  61. package/dist/esm/lib/components/handle-group/handle-group.component.d.ts +0 -1
  62. package/dist/esm/lib/components/handle-group/handle-row.component.d.ts +0 -1
  63. package/dist/esm/lib/components/minimap/minimap.component.d.ts +36 -25
  64. package/dist/esm/lib/components/minimap/minimap.component.js +197 -213
  65. package/dist/esm/lib/components/minimap/minimap.component.js.map +1 -1
  66. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts +13 -5
  67. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js +13 -4
  68. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js.map +1 -1
  69. package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts +2 -1
  70. package/dist/esm/lib/components/node-resizer/node-resizer.component.js +43 -26
  71. package/dist/esm/lib/components/node-resizer/node-resizer.component.js.map +1 -1
  72. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts +0 -1
  73. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js +1 -1
  74. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js.map +1 -1
  75. package/dist/esm/lib/components/nodes/default-node.component.d.ts +6 -15
  76. package/dist/esm/lib/components/nodes/default-node.component.js +13 -22
  77. package/dist/esm/lib/components/nodes/default-node.component.js.map +1 -1
  78. package/dist/esm/lib/components/nodes/group-node.component.d.ts +5 -16
  79. package/dist/esm/lib/components/nodes/group-node.component.js +8 -16
  80. package/dist/esm/lib/components/nodes/group-node.component.js.map +1 -1
  81. package/dist/esm/lib/components/nodes/input-node.component.d.ts +6 -15
  82. package/dist/esm/lib/components/nodes/input-node.component.js +11 -20
  83. package/dist/esm/lib/components/nodes/input-node.component.js.map +1 -1
  84. package/dist/esm/lib/components/nodes/output-node.component.d.ts +6 -15
  85. package/dist/esm/lib/components/nodes/output-node.component.js +11 -20
  86. package/dist/esm/lib/components/nodes/output-node.component.js.map +1 -1
  87. package/dist/esm/lib/components/nodes/template-node.component.d.ts +2 -14
  88. package/dist/esm/lib/components/nodes/template-node.component.js +16 -26
  89. package/dist/esm/lib/components/nodes/template-node.component.js.map +1 -1
  90. package/dist/esm/lib/components/panel/panel.component.d.ts +0 -1
  91. package/dist/esm/lib/components/selection-box/selection-box.component.d.ts +11 -1
  92. package/dist/esm/lib/components/selection-box/selection-box.component.js +108 -3
  93. package/dist/esm/lib/components/selection-box/selection-box.component.js.map +1 -1
  94. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts +0 -1
  95. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts +27 -3
  96. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js +151 -61
  97. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js.map +1 -1
  98. package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts +4 -8
  99. package/dist/esm/lib/container/ng-flow/ng-flow.component.js +151 -54
  100. package/dist/esm/lib/container/ng-flow/ng-flow.component.js.map +1 -1
  101. package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts +7 -1
  102. package/dist/esm/lib/container/node-renderer/node-renderer.component.js +70 -14
  103. package/dist/esm/lib/container/node-renderer/node-renderer.component.js.map +1 -1
  104. package/dist/esm/lib/container/pane/pane.component.d.ts +0 -1
  105. package/dist/esm/lib/container/pane/pane.component.js +23 -3
  106. package/dist/esm/lib/container/pane/pane.component.js.map +1 -1
  107. package/dist/esm/lib/container/viewport/viewport.component.d.ts +0 -1
  108. package/dist/esm/lib/directives/drag.directive.d.ts +1 -2
  109. package/dist/esm/lib/directives/drag.directive.js +1 -1
  110. package/dist/esm/lib/directives/drag.directive.js.map +1 -1
  111. package/dist/esm/lib/directives/drop-zone.directive.d.ts +0 -1
  112. package/dist/esm/lib/directives/key-handler.directive.d.ts +0 -1
  113. package/dist/esm/lib/directives/key-handler.directive.js +6 -2
  114. package/dist/esm/lib/directives/key-handler.directive.js.map +1 -1
  115. package/dist/esm/lib/directives/node-type.directive.d.ts +0 -1
  116. package/dist/esm/lib/graph/collapse.d.ts +35 -0
  117. package/dist/esm/lib/graph/collapse.js +102 -0
  118. package/dist/esm/lib/graph/collapse.js.map +1 -0
  119. package/dist/esm/lib/graph/group-bounds.d.ts +42 -0
  120. package/dist/esm/lib/graph/group-bounds.js +34 -0
  121. package/dist/esm/lib/graph/group-bounds.js.map +1 -0
  122. package/dist/esm/lib/layout/dagre-layout.d.ts +0 -1
  123. package/dist/esm/lib/layout/index.d.ts +1 -2
  124. package/dist/esm/lib/layout/index.js.map +1 -1
  125. package/dist/esm/lib/layout/layout-nodes.d.ts +39 -5
  126. package/dist/esm/lib/layout/layout-nodes.js +94 -7
  127. package/dist/esm/lib/layout/layout-nodes.js.map +1 -1
  128. package/dist/esm/lib/public-api.d.ts +4 -2
  129. package/dist/esm/lib/public-api.js +2 -1
  130. package/dist/esm/lib/public-api.js.map +1 -1
  131. package/dist/esm/lib/services/flow-store.service.d.ts +25 -2
  132. package/dist/esm/lib/services/flow-store.service.js +101 -14
  133. package/dist/esm/lib/services/flow-store.service.js.map +1 -1
  134. package/dist/esm/lib/services/ng-flow.service.d.ts +82 -7
  135. package/dist/esm/lib/services/ng-flow.service.js +210 -26
  136. package/dist/esm/lib/services/ng-flow.service.js.map +1 -1
  137. package/dist/esm/lib/services/tokens.d.ts +0 -1
  138. package/dist/esm/lib/types/edges.d.ts +0 -1
  139. package/dist/esm/lib/types/general.d.ts +0 -1
  140. package/dist/esm/lib/types/index.d.ts +0 -1
  141. package/dist/esm/lib/types/node-template.d.ts +2 -1
  142. package/dist/esm/lib/types/nodes.d.ts +4 -1
  143. package/dist/esm/lib/types/store.d.ts +0 -1
  144. package/dist/esm/lib/utils/changes.d.ts +28 -2
  145. package/dist/esm/lib/utils/changes.js +57 -1
  146. package/dist/esm/lib/utils/changes.js.map +1 -1
  147. package/dist/esm/lib/utils/index.d.ts +2 -2
  148. package/dist/esm/lib/utils/index.js +2 -1
  149. package/dist/esm/lib/utils/index.js.map +1 -1
  150. package/dist/esm/lib/utils/inject-flow-store.d.ts +16 -0
  151. package/dist/esm/lib/utils/inject-flow-store.js +23 -0
  152. package/dist/esm/lib/utils/inject-flow-store.js.map +1 -0
  153. package/dist/esm/lib/utils/inject-ng-flow-node.d.ts +0 -1
  154. package/dist/esm/lib/utils/position-tween.d.ts +0 -1
  155. package/dist/esm/lib/utils/template-interpolation.d.ts +0 -1
  156. package/dist/esm/lib/utils/type-guards.d.ts +0 -1
  157. package/dist/esm/lib/utils/type-guards.js +2 -0
  158. package/dist/esm/lib/utils/type-guards.js.map +1 -1
  159. package/dist/esm/test-setup.d.ts +0 -1
  160. package/dist/style.css +8 -0
  161. package/package.json +83 -78
  162. package/dist/esm/index.d.ts.map +0 -1
  163. package/dist/esm/lib/agent/agent-bridge.service.d.ts.map +0 -1
  164. package/dist/esm/lib/agent/chat/agent-chat.component.d.ts.map +0 -1
  165. package/dist/esm/lib/agent/chat/agent-chat.service.d.ts.map +0 -1
  166. package/dist/esm/lib/agent/chat/default-system-prompt.d.ts.map +0 -1
  167. package/dist/esm/lib/agent/chat/index.d.ts.map +0 -1
  168. package/dist/esm/lib/agent/chat/provide-agent-chat.d.ts.map +0 -1
  169. package/dist/esm/lib/agent/chat/types.d.ts.map +0 -1
  170. package/dist/esm/lib/agent/history.d.ts.map +0 -1
  171. package/dist/esm/lib/agent/index.d.ts.map +0 -1
  172. package/dist/esm/lib/agent/provide-agent-bridge.d.ts.map +0 -1
  173. package/dist/esm/lib/agent/tool-schemas.d.ts.map +0 -1
  174. package/dist/esm/lib/agent/transports/websocket.d.ts.map +0 -1
  175. package/dist/esm/lib/agent/transports/window.d.ts.map +0 -1
  176. package/dist/esm/lib/agent/types.d.ts.map +0 -1
  177. package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts.map +0 -1
  178. package/dist/esm/lib/components/attribution/attribution.component.d.ts.map +0 -1
  179. package/dist/esm/lib/components/background/background.component.d.ts.map +0 -1
  180. package/dist/esm/lib/components/connection-line/connection-line.component.d.ts.map +0 -1
  181. package/dist/esm/lib/components/controls/controls.component.d.ts.map +0 -1
  182. package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts.map +0 -1
  183. package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts.map +0 -1
  184. package/dist/esm/lib/components/edges/base-edge.component.d.ts.map +0 -1
  185. package/dist/esm/lib/components/edges/bezier-edge.component.d.ts.map +0 -1
  186. package/dist/esm/lib/components/edges/edge-text.component.d.ts.map +0 -1
  187. package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts.map +0 -1
  188. package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts.map +0 -1
  189. package/dist/esm/lib/components/edges/step-edge.component.d.ts.map +0 -1
  190. package/dist/esm/lib/components/edges/straight-edge.component.d.ts.map +0 -1
  191. package/dist/esm/lib/components/handle/handle.component.d.ts.map +0 -1
  192. package/dist/esm/lib/components/handle-group/handle-group.component.d.ts.map +0 -1
  193. package/dist/esm/lib/components/handle-group/handle-row.component.d.ts.map +0 -1
  194. package/dist/esm/lib/components/minimap/minimap.component.d.ts.map +0 -1
  195. package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts.map +0 -1
  196. package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts.map +0 -1
  197. package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts.map +0 -1
  198. package/dist/esm/lib/components/nodes/default-node.component.d.ts.map +0 -1
  199. package/dist/esm/lib/components/nodes/group-node.component.d.ts.map +0 -1
  200. package/dist/esm/lib/components/nodes/input-node.component.d.ts.map +0 -1
  201. package/dist/esm/lib/components/nodes/output-node.component.d.ts.map +0 -1
  202. package/dist/esm/lib/components/nodes/template-node.component.d.ts.map +0 -1
  203. package/dist/esm/lib/components/panel/panel.component.d.ts.map +0 -1
  204. package/dist/esm/lib/components/selection-box/selection-box.component.d.ts.map +0 -1
  205. package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts.map +0 -1
  206. package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts.map +0 -1
  207. package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts.map +0 -1
  208. package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts.map +0 -1
  209. package/dist/esm/lib/container/pane/pane.component.d.ts.map +0 -1
  210. package/dist/esm/lib/container/viewport/viewport.component.d.ts.map +0 -1
  211. package/dist/esm/lib/directives/drag.directive.d.ts.map +0 -1
  212. package/dist/esm/lib/directives/drop-zone.directive.d.ts.map +0 -1
  213. package/dist/esm/lib/directives/key-handler.directive.d.ts.map +0 -1
  214. package/dist/esm/lib/directives/node-type.directive.d.ts.map +0 -1
  215. package/dist/esm/lib/layout/dagre-layout.d.ts.map +0 -1
  216. package/dist/esm/lib/layout/index.d.ts.map +0 -1
  217. package/dist/esm/lib/layout/layout-nodes.d.ts.map +0 -1
  218. package/dist/esm/lib/public-api.d.ts.map +0 -1
  219. package/dist/esm/lib/services/flow-store.service.d.ts.map +0 -1
  220. package/dist/esm/lib/services/ng-flow.service.d.ts.map +0 -1
  221. package/dist/esm/lib/services/tokens.d.ts.map +0 -1
  222. package/dist/esm/lib/types/edges.d.ts.map +0 -1
  223. package/dist/esm/lib/types/general.d.ts.map +0 -1
  224. package/dist/esm/lib/types/index.d.ts.map +0 -1
  225. package/dist/esm/lib/types/node-template.d.ts.map +0 -1
  226. package/dist/esm/lib/types/nodes.d.ts.map +0 -1
  227. package/dist/esm/lib/types/store.d.ts.map +0 -1
  228. package/dist/esm/lib/utils/changes.d.ts.map +0 -1
  229. package/dist/esm/lib/utils/index.d.ts.map +0 -1
  230. package/dist/esm/lib/utils/inject-ng-flow-node.d.ts.map +0 -1
  231. package/dist/esm/lib/utils/position-tween.d.ts.map +0 -1
  232. package/dist/esm/lib/utils/template-interpolation.d.ts.map +0 -1
  233. package/dist/esm/lib/utils/type-guards.d.ts.map +0 -1
  234. package/dist/esm/test-setup.d.ts.map +0 -1
@@ -1,5 +1,6 @@
1
- import { Component, ChangeDetectionStrategy, input, output, inject, computed, viewChild, } from '@angular/core';
2
- import { getBoundsOfRects, } from '@angflow/system';
1
+ import { Component, ChangeDetectionStrategy, input, output, inject, computed, effect, viewChild, DestroyRef, } from '@angular/core';
2
+ import { getBoundsOfRects, XYMinimap, } from '@angflow/system';
3
+ import { NgComponentOutlet } from '@angular/common';
3
4
  import { FlowStore } from '../../services/flow-store.service';
4
5
  import { PanelComponent } from '../panel/panel.component';
5
6
  import * as i0 from "@angular/core";
@@ -15,7 +16,7 @@ import * as i0 from "@angular/core";
15
16
  export class MiniMapComponent {
16
17
  constructor() {
17
18
  this.store = inject(FlowStore);
18
- this.minimapContainerRef = viewChild('minimapContainer', ...(ngDevMode ? [{ debugName: "minimapContainerRef" }] : /* istanbul ignore next */ []));
19
+ this.minimapSvgRef = viewChild('minimapSvg', ...(ngDevMode ? [{ debugName: "minimapSvgRef" }] : /* istanbul ignore next */ []));
19
20
  /** Where the minimap panel is anchored. */
20
21
  this.position = input('bottom-right', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
21
22
  /** Minimap width in pixels. Aliased as `width`. */
@@ -27,25 +28,34 @@ export class MiniMapComponent {
27
28
  /** Allow scroll-wheel on the minimap to zoom the main viewport. */
28
29
  this.zoomable = input(false, ...(ngDevMode ? [{ debugName: "zoomable" }] : /* istanbul ignore next */ []));
29
30
  /** Zoom step applied per wheel tick when `zoomable`. */
30
- this.zoomStep = input(10, ...(ngDevMode ? [{ debugName: "zoomStep" }] : /* istanbul ignore next */ []));
31
+ this.zoomStep = input(1, ...(ngDevMode ? [{ debugName: "zoomStep" }] : /* istanbul ignore next */ []));
31
32
  /** Invert the pan direction when dragging on the minimap. */
32
33
  this.inversePan = input(false, ...(ngDevMode ? [{ debugName: "inversePan" }] : /* istanbul ignore next */ []));
33
- /** Node fill color, or function mapping node → color. */
34
- this.nodeColor = input('#e2e2e2', ...(ngDevMode ? [{ debugName: "nodeColor" }] : /* istanbul ignore next */ []));
35
- /** Node stroke color, or function mapping node → color. */
36
- this.nodeStrokeColor = input('transparent', ...(ngDevMode ? [{ debugName: "nodeStrokeColor" }] : /* istanbul ignore next */ []));
34
+ /**
35
+ * Node fill color, or function mapping node color. Unset falls back to
36
+ * the `--xy-minimap-node-background-color` theme variable via the stylesheet.
37
+ */
38
+ this.nodeColor = input(...(ngDevMode ? [undefined, { debugName: "nodeColor" }] : /* istanbul ignore next */ []));
39
+ /**
40
+ * Node stroke color, or function mapping node → color. Unset → falls back to
41
+ * the `--xy-minimap-node-stroke-color` theme variable via the stylesheet.
42
+ */
43
+ this.nodeStrokeColor = input(...(ngDevMode ? [undefined, { debugName: "nodeStrokeColor" }] : /* istanbul ignore next */ []));
37
44
  /** Node CSS class, or function mapping node → class. */
38
45
  this.nodeClassName = input('', ...(ngDevMode ? [{ debugName: "nodeClassName" }] : /* istanbul ignore next */ []));
39
46
  /** Corner radius (rx) for node rects. */
40
47
  this.nodeBorderRadius = input(5, ...(ngDevMode ? [{ debugName: "nodeBorderRadius" }] : /* istanbul ignore next */ []));
41
48
  /** Stroke width for node rects. */
42
49
  this.nodeStrokeWidth = input(2, ...(ngDevMode ? [{ debugName: "nodeStrokeWidth" }] : /* istanbul ignore next */ []));
43
- /** Reserved — custom Angular component to render each minimap node. Not yet wired. */
50
+ /** Custom Angular component to render each minimap node (mirrors React's MiniMapNode). When unset, a default <rect> is rendered. */
44
51
  this.nodeComponent = input(null, ...(ngDevMode ? [{ debugName: "nodeComponent" }] : /* istanbul ignore next */ []));
45
52
  /** Background fill behind the nodes. Defaults to `#f0f0f0`. */
46
53
  this.bgColor = input(...(ngDevMode ? [undefined, { debugName: "bgColor" }] : /* istanbul ignore next */ []));
47
- /** Overlay fill for the area outside the current viewport. */
48
- this.maskColor = input('rgba(240, 240, 240, 0.6)', ...(ngDevMode ? [{ debugName: "maskColor" }] : /* istanbul ignore next */ []));
54
+ /**
55
+ * Overlay fill for the area outside the current viewport. Unset falls back
56
+ * to the `--xy-minimap-mask-background-color` theme variable via the stylesheet.
57
+ */
58
+ this.maskColor = input(...(ngDevMode ? [undefined, { debugName: "maskColor" }] : /* istanbul ignore next */ []));
49
59
  /** Stroke color of the viewport rectangle. */
50
60
  this.maskStrokeColor = input(...(ngDevMode ? [undefined, { debugName: "maskStrokeColor" }] : /* istanbul ignore next */ []));
51
61
  /** Stroke width of the viewport rectangle (scaled by view scale). */
@@ -58,24 +68,18 @@ export class MiniMapComponent {
58
68
  this.minimapClick = output();
59
69
  /** Fires when a node rendered in the minimap is clicked. */
60
70
  this.minimapNodeClick = output();
61
- this.xyMinimap = null;
62
- this.animationFrameId = null;
63
- this.isDragging = false;
64
- // Tracks whether the mouse actually moved between mousedown and mouseup.
65
- // Used to suppress the synthetic click event that fires after a drag, which
66
- // would otherwise trigger a second pan animation on top of the drag.
67
- this.dragMoved = false;
68
- this.boundOnMouseMove = this.onMinimapMouseMove.bind(this);
69
- this.boundOnMouseUp = this.onMinimapMouseUp.bind(this);
71
+ this.minimap = null;
70
72
  this.minimapNodes = computed(() => {
71
73
  this.store.version(); // react to node changes
72
- const nodes = Array.from(this.store.nodeLookup.values());
74
+ const hidden = this.store.collapsedHiddenIds();
75
+ const nodes = Array.from(this.store.nodeLookup.values()).filter((node) => !hidden.has(node.id));
73
76
  return nodes.map((node) => ({
74
77
  id: node.id,
75
78
  x: node.internals?.positionAbsolute?.x ?? 0,
76
79
  y: node.internals?.positionAbsolute?.y ?? 0,
77
80
  width: node.measured?.width ?? node.width ?? 150,
78
81
  height: node.measured?.height ?? node.height ?? 40,
82
+ selected: !!node.selected,
79
83
  _userNode: node.internals?.userNode,
80
84
  }));
81
85
  }, ...(ngDevMode ? [{ debugName: "minimapNodes" }] : /* istanbul ignore next */ []));
@@ -151,20 +155,78 @@ export class MiniMapComponent {
151
155
  return (`M-10000,-10000h20000v20000h-20000z ` +
152
156
  `M${m.x},${m.y}h${m.width}v${m.height}h${-m.width}z`);
153
157
  }, ...(ngDevMode ? [{ debugName: "maskPath" }] : /* istanbul ignore next */ []));
158
+ // React uses 'crispEdges' under Chrome/SSR, 'geometricPrecision' otherwise
159
+ // (MiniMapNodes.tsx:36). Browsers always have window; default to
160
+ // geometricPrecision, matching React's non-Chrome branch.
161
+ this.shapeRendering = typeof window === 'undefined' || !!window.chrome
162
+ ? 'crispEdges'
163
+ : 'geometricPrecision';
164
+ const destroyRef = inject(DestroyRef);
165
+ // Defer creation until the view exists (SVG ref) AND panZoom is ready.
166
+ // A plain constructor effect re-runs when either the `minimapSvg` viewChild
167
+ // signal resolves (undefined → element on first render) or store.panZoom()
168
+ // becomes non-null, mirroring how the main pane defers its own d3-zoom
169
+ // wiring in ng-flow.component.ts. The `!this.minimap` guard makes it
170
+ // idempotent so creation happens exactly once.
171
+ effect(() => {
172
+ const panZoom = this.store.panZoom();
173
+ const svgEl = this.minimapSvgRef()?.nativeElement;
174
+ if (!panZoom || !svgEl || this.minimap)
175
+ return;
176
+ this.minimap = XYMinimap({
177
+ domNode: svgEl,
178
+ panZoom,
179
+ getTransform: () => this.store.transform(),
180
+ getViewScale: () => this.viewBoxData().viewScale,
181
+ });
182
+ // Push the first update immediately so the d3-zoom handlers are bound
183
+ // with the current inputs without waiting for the next change.
184
+ this.pushMinimapUpdate();
185
+ });
186
+ // Keep XYMinimap in sync with the React-parity inputs + the store extent.
187
+ // The d3 callbacks XYMinimap installs write via panZoom → the transform
188
+ // signal the template reads (zoneless rule 2 satisfied), and those writes
189
+ // flow through the same panZoom path as the main pane, so the C1 contract
190
+ // (no bumpVersion on transform writes) holds.
191
+ effect(() => {
192
+ // Read every dependency first (unconditionally) so the effect tracks the
193
+ // inputs + store extent even before the minimap instance is created — an
194
+ // early `if (!this.minimap) return` would track nothing and never re-run.
195
+ this.pushMinimapUpdate();
196
+ });
197
+ destroyRef.onDestroy(() => {
198
+ this.minimap?.destroy();
199
+ this.minimap = null;
200
+ });
154
201
  }
202
+ pushMinimapUpdate() {
203
+ const params = {
204
+ translateExtent: this.store.translateExtent(),
205
+ width: this.store.width(),
206
+ height: this.store.height(),
207
+ inversePan: this.inversePan(),
208
+ zoomStep: this.zoomStep(),
209
+ pannable: this.pannable(),
210
+ zoomable: this.zoomable(),
211
+ };
212
+ this.minimap?.update(params);
213
+ }
214
+ // Returns the resolved fill for a node, or undefined when the input is unset
215
+ // so no inline style is emitted and the stylesheet's CSS-variable theming
216
+ // (incl. dark mode) applies.
155
217
  getNodeColor(node) {
156
218
  const color = this.nodeColor();
157
- if (typeof color === 'function' && node._userNode) {
158
- return color(node._userNode);
219
+ if (typeof color === 'function') {
220
+ return node._userNode ? color(node._userNode) : undefined;
159
221
  }
160
- return typeof color === 'string' ? color : '#e2e2e2';
222
+ return color;
161
223
  }
162
224
  getNodeStrokeColor(node) {
163
225
  const strokeColor = this.nodeStrokeColor();
164
- if (typeof strokeColor === 'function' && node._userNode) {
165
- return strokeColor(node._userNode);
226
+ if (typeof strokeColor === 'function') {
227
+ return node._userNode ? strokeColor(node._userNode) : undefined;
166
228
  }
167
- return typeof strokeColor === 'string' ? strokeColor : 'transparent';
229
+ return strokeColor;
168
230
  }
169
231
  getNodeClassName(node) {
170
232
  const className = this.nodeClassName();
@@ -173,132 +235,38 @@ export class MiniMapComponent {
173
235
  }
174
236
  return typeof className === 'string' ? className : '';
175
237
  }
176
- ngAfterViewInit() { }
177
- onMinimapClick(event) {
178
- // Browsers fire `click` after `mouseup` when both land on the same element,
179
- // regardless of drag distance. If the user was panning the minimap, swallow
180
- // this trailing click so we don't start a second pan animation on top.
181
- if (this.dragMoved) {
182
- this.dragMoved = false;
183
- return;
184
- }
185
- const container = this.minimapContainerRef()?.nativeElement;
186
- if (!container)
187
- return;
188
- const svgEl = container.querySelector('svg');
189
- if (!svgEl)
190
- return;
191
- // Get click position relative to the minimap SVG
192
- const rect = svgEl.getBoundingClientRect();
193
- const clickX = event.clientX - rect.left;
194
- const clickY = event.clientY - rect.top;
195
- // Convert from SVG pixel coords to flow coords using the current viewBox.
196
- const v = this.viewBoxData();
197
- const flowX = v.x + (clickX / this.mmWidth()) * v.width;
198
- const flowY = v.y + (clickY / this.mmHeight()) * v.height;
199
- // Emit click event
200
- this.minimapClick.emit({ event, position: { x: flowX, y: flowY } });
201
- if (!this.pannable())
202
- return;
203
- // Pan viewport to center on the clicked flow position
204
- const zoom = this.store.transform()[2];
205
- const newX = this.store.width() / 2 - flowX * zoom;
206
- const newY = this.store.height() / 2 - flowY * zoom;
207
- // Cancel any in-flight animation before starting a new one
208
- if (this.animationFrameId !== null) {
209
- cancelAnimationFrame(this.animationFrameId);
210
- this.animationFrameId = null;
211
- }
212
- // Animate the viewport pan over ~300ms using requestAnimationFrame
213
- const startX = this.store.transform()[0];
214
- const startY = this.store.transform()[1];
215
- const startTime = performance.now();
216
- const duration = 300;
217
- const animate = (now) => {
218
- const elapsed = now - startTime;
219
- const t = Math.min(elapsed / duration, 1);
220
- // Ease-out cubic
221
- const ease = 1 - Math.pow(1 - t, 3);
222
- const currentX = startX + (newX - startX) * ease;
223
- const currentY = startY + (newY - startY) * ease;
224
- this.store.transform.set([currentX, currentY, zoom]);
225
- this.store.bumpVersion();
226
- if (t < 1) {
227
- this.animationFrameId = requestAnimationFrame(animate);
228
- }
229
- else {
230
- this.animationFrameId = null;
231
- // Sync d3-zoom internal state without transition
232
- try {
233
- this.store.panZoom()?.syncViewport({ x: newX, y: newY, zoom });
234
- }
235
- catch {
236
- // d3-transition may not be available; the transform signal
237
- // is the source of truth and d3 will re-sync on next interaction
238
- }
239
- }
238
+ /** Inputs object passed to a custom nodeComponent via NgComponentOutlet. */
239
+ getNodeComponentInputs(node) {
240
+ return {
241
+ id: node.id,
242
+ x: node.x,
243
+ y: node.y,
244
+ width: node.width,
245
+ height: node.height,
246
+ selected: node.selected,
247
+ color: this.getNodeColor(node),
248
+ strokeColor: this.getNodeStrokeColor(node),
249
+ strokeWidth: this.nodeStrokeWidth(),
250
+ borderRadius: this.nodeBorderRadius(),
251
+ shapeRendering: this.shapeRendering,
252
+ className: this.getNodeClassName(node),
240
253
  };
241
- this.animationFrameId = requestAnimationFrame(animate);
242
254
  }
243
- onMinimapMouseDown(event) {
255
+ onMinimapClick(event) {
256
+ // Pass the SVG node explicitly so d3's pointer() maps through the SVG's
257
+ // CTM/viewBox → flow coordinates. Without the node arg, d3 falls back to
258
+ // event.currentTarget which in some environments doesn't yield the SVG CTM
259
+ // (e.g. when the listener was attached to an ancestor). React parity: React
260
+ // puts onClick on the <svg> and calls pointer(event) with no node; here we
261
+ // keep the binding on the SVG too but pass the node explicitly for safety.
262
+ const svgEl = this.minimapSvgRef()?.nativeElement ?? null;
263
+ const [x, y] = this.minimap && svgEl ? this.minimap.pointer(event, svgEl) : [0, 0];
264
+ this.minimapClick.emit({ event, position: { x, y } });
244
265
  if (!this.pannable())
245
266
  return;
246
- this.isDragging = true;
247
- this.dragMoved = false;
248
- document.addEventListener('mousemove', this.boundOnMouseMove);
249
- document.addEventListener('mouseup', this.boundOnMouseUp);
250
- }
251
- onMinimapMouseMove(event) {
252
- if (!this.isDragging)
253
- return;
254
- this.dragMoved = true;
255
- const container = this.minimapContainerRef()?.nativeElement;
256
- if (!container)
257
- return;
258
- const svgEl = container.querySelector('svg');
259
- if (!svgEl)
260
- return;
261
- const rect = svgEl.getBoundingClientRect();
262
- const clickX = event.clientX - rect.left;
263
- const clickY = event.clientY - rect.top;
264
- const v = this.viewBoxData();
265
- const flowX = v.x + (clickX / this.mmWidth()) * v.width;
266
- const flowY = v.y + (clickY / this.mmHeight()) * v.height;
267
- const zoom = this.store.transform()[2];
268
- const newX = this.store.width() / 2 - flowX * zoom;
269
- const newY = this.store.height() / 2 - flowY * zoom;
270
- this.store.transform.set([newX, newY, zoom]);
271
- this.store.bumpVersion();
272
- try {
273
- this.store.panZoom()?.syncViewport({ x: newX, y: newY, zoom });
274
- }
275
- catch { /* noop */ }
276
- }
277
- onMinimapMouseUp() {
278
- this.isDragging = false;
279
- document.removeEventListener('mousemove', this.boundOnMouseMove);
280
- document.removeEventListener('mouseup', this.boundOnMouseUp);
281
- }
282
- onMinimapWheel(event) {
283
- if (!this.zoomable())
284
- return;
285
- event.preventDefault();
286
- const currentZoom = this.store.transform()[2];
287
- const delta = -event.deltaY * (this.zoomStep() / 1000);
288
- const nextZoom = Math.min(this.store.maxZoom(), Math.max(this.store.minZoom(), currentZoom + delta));
289
- const [x, y] = this.store.transform();
290
- // Zoom toward the center of the viewport
291
- const cx = this.store.width() / 2;
292
- const cy = this.store.height() / 2;
293
- const scale = nextZoom / currentZoom;
294
- const newX = cx - (cx - x) * scale;
295
- const newY = cy - (cy - y) * scale;
296
- this.store.transform.set([newX, newY, nextZoom]);
297
- this.store.bumpVersion();
298
- try {
299
- this.store.panZoom()?.syncViewport({ x: newX, y: newY, zoom: nextZoom });
300
- }
301
- catch { /* noop */ }
267
+ // setCenter (flow-store) honors interpolate/duration after Cluster 1; we
268
+ // only depend on passing duration here.
269
+ void this.store.setCenter(x, y, { zoom: this.store.transform()[2], duration: 300 });
302
270
  }
303
271
  onMinimapNodeClick(event, node) {
304
272
  event.stopPropagation();
@@ -306,62 +274,66 @@ export class MiniMapComponent {
306
274
  this.minimapNodeClick.emit({ event, node: node._userNode });
307
275
  }
308
276
  }
309
- ngOnDestroy() {
310
- if (this.animationFrameId !== null) {
311
- cancelAnimationFrame(this.animationFrameId);
312
- }
313
- document.removeEventListener('mousemove', this.boundOnMouseMove);
314
- document.removeEventListener('mouseup', this.boundOnMouseUp);
315
- this.xyMinimap?.destroy();
316
- }
317
277
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: MiniMapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
318
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: MiniMapComponent, isStandalone: true, selector: "ng-flow-minimap", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, mmWidth: { classPropertyName: "mmWidth", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mmHeight: { classPropertyName: "mmHeight", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, pannable: { classPropertyName: "pannable", publicName: "pannable", isSignal: true, isRequired: false, transformFunction: null }, zoomable: { classPropertyName: "zoomable", publicName: "zoomable", isSignal: true, isRequired: false, transformFunction: null }, zoomStep: { classPropertyName: "zoomStep", publicName: "zoomStep", isSignal: true, isRequired: false, transformFunction: null }, inversePan: { classPropertyName: "inversePan", publicName: "inversePan", isSignal: true, isRequired: false, transformFunction: null }, nodeColor: { classPropertyName: "nodeColor", publicName: "nodeColor", isSignal: true, isRequired: false, transformFunction: null }, nodeStrokeColor: { classPropertyName: "nodeStrokeColor", publicName: "nodeStrokeColor", isSignal: true, isRequired: false, transformFunction: null }, nodeClassName: { classPropertyName: "nodeClassName", publicName: "nodeClassName", isSignal: true, isRequired: false, transformFunction: null }, nodeBorderRadius: { classPropertyName: "nodeBorderRadius", publicName: "nodeBorderRadius", isSignal: true, isRequired: false, transformFunction: null }, nodeStrokeWidth: { classPropertyName: "nodeStrokeWidth", publicName: "nodeStrokeWidth", isSignal: true, isRequired: false, transformFunction: null }, nodeComponent: { classPropertyName: "nodeComponent", publicName: "nodeComponent", isSignal: true, isRequired: false, transformFunction: null }, bgColor: { classPropertyName: "bgColor", publicName: "bgColor", isSignal: true, isRequired: false, transformFunction: null }, maskColor: { classPropertyName: "maskColor", publicName: "maskColor", isSignal: true, isRequired: false, transformFunction: null }, maskStrokeColor: { classPropertyName: "maskStrokeColor", publicName: "maskStrokeColor", isSignal: true, isRequired: false, transformFunction: null }, maskStrokeWidth: { classPropertyName: "maskStrokeWidth", publicName: "maskStrokeWidth", isSignal: true, isRequired: false, transformFunction: null }, offsetScale: { classPropertyName: "offsetScale", publicName: "offsetScale", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minimapClick: "minimapClick", minimapNodeClick: "minimapNodeClick" }, viewQueries: [{ propertyName: "minimapContainerRef", first: true, predicate: ["minimapContainer"], descendants: true, isSignal: true }], ngImport: i0, template: `
278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: MiniMapComponent, isStandalone: true, selector: "ng-flow-minimap", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, mmWidth: { classPropertyName: "mmWidth", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mmHeight: { classPropertyName: "mmHeight", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, pannable: { classPropertyName: "pannable", publicName: "pannable", isSignal: true, isRequired: false, transformFunction: null }, zoomable: { classPropertyName: "zoomable", publicName: "zoomable", isSignal: true, isRequired: false, transformFunction: null }, zoomStep: { classPropertyName: "zoomStep", publicName: "zoomStep", isSignal: true, isRequired: false, transformFunction: null }, inversePan: { classPropertyName: "inversePan", publicName: "inversePan", isSignal: true, isRequired: false, transformFunction: null }, nodeColor: { classPropertyName: "nodeColor", publicName: "nodeColor", isSignal: true, isRequired: false, transformFunction: null }, nodeStrokeColor: { classPropertyName: "nodeStrokeColor", publicName: "nodeStrokeColor", isSignal: true, isRequired: false, transformFunction: null }, nodeClassName: { classPropertyName: "nodeClassName", publicName: "nodeClassName", isSignal: true, isRequired: false, transformFunction: null }, nodeBorderRadius: { classPropertyName: "nodeBorderRadius", publicName: "nodeBorderRadius", isSignal: true, isRequired: false, transformFunction: null }, nodeStrokeWidth: { classPropertyName: "nodeStrokeWidth", publicName: "nodeStrokeWidth", isSignal: true, isRequired: false, transformFunction: null }, nodeComponent: { classPropertyName: "nodeComponent", publicName: "nodeComponent", isSignal: true, isRequired: false, transformFunction: null }, bgColor: { classPropertyName: "bgColor", publicName: "bgColor", isSignal: true, isRequired: false, transformFunction: null }, maskColor: { classPropertyName: "maskColor", publicName: "maskColor", isSignal: true, isRequired: false, transformFunction: null }, maskStrokeColor: { classPropertyName: "maskStrokeColor", publicName: "maskStrokeColor", isSignal: true, isRequired: false, transformFunction: null }, maskStrokeWidth: { classPropertyName: "maskStrokeWidth", publicName: "maskStrokeWidth", isSignal: true, isRequired: false, transformFunction: null }, offsetScale: { classPropertyName: "offsetScale", publicName: "offsetScale", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minimapClick: "minimapClick", minimapNodeClick: "minimapNodeClick" }, viewQueries: [{ propertyName: "minimapSvgRef", first: true, predicate: ["minimapSvg"], descendants: true, isSignal: true }], ngImport: i0, template: `
319
279
  <ng-flow-panel [position]="position()">
320
280
  <div
321
281
  class="ng-flow__minimap xy-flow__minimap"
322
- #minimapContainer
323
282
  [attr.aria-label]="ariaLabel()"
324
283
  [style.width.px]="mmWidth()"
325
284
  [style.height.px]="mmHeight()"
326
285
  style="border-radius: 4px; overflow: hidden; border: 1px solid #ddd; box-shadow: 0 1px 4px rgba(0,0,0,0.1); cursor: pointer;"
327
- (click)="onMinimapClick($event)"
328
- (mousedown)="onMinimapMouseDown($event)"
329
- (wheel)="onMinimapWheel($event)"
330
286
  >
331
287
  <svg
288
+ #minimapSvg
332
289
  class="xy-flow__minimap-svg"
333
290
  [attr.width]="mmWidth()"
334
291
  [attr.height]="mmHeight()"
335
292
  [attr.viewBox]="viewBox()"
293
+ (click)="onMinimapClick($event)"
336
294
  >
337
295
  <!-- Background -->
338
296
  <rect x="-10000" y="-10000" width="20000" height="20000" [attr.fill]="bgColor() ?? '#f0f0f0'" />
339
297
  <!-- Nodes -->
298
+ <!--
299
+ Colors are bound as inline [style.*], NOT [attr.*]: the bundled
300
+ stylesheet sets a fill CSS property on .xy-flow__minimap-node, and a
301
+ CSS property always overrides an SVG fill presentation attribute.
302
+ Inline styles win over stylesheet rules, so the inputs actually take
303
+ effect. When an input is unset (undefined) we emit no inline value,
304
+ deferring to the stylesheet's CSS-variable theming (incl. dark mode).
305
+ -->
340
306
  @for (node of minimapNodes(); track node.id) {
341
- <rect
342
- class="xy-flow__minimap-node"
343
- [class]="getNodeClassName(node)"
344
- [attr.x]="node.x"
345
- [attr.y]="node.y"
346
- [attr.width]="node.width"
347
- [attr.height]="node.height"
348
- [attr.rx]="nodeBorderRadius()"
349
- [attr.fill]="getNodeColor(node)"
350
- [attr.stroke]="getNodeStrokeColor(node)"
351
- [attr.stroke-width]="nodeStrokeWidth()"
352
- (click)="onMinimapNodeClick($event, node)"
353
- />
307
+ @if (nodeComponent(); as nc) {
308
+ <g (click)="onMinimapNodeClick($event, node)">
309
+ <ng-container
310
+ *ngComponentOutlet="nc; inputs: getNodeComponentInputs(node)"
311
+ />
312
+ </g>
313
+ } @else {
314
+ <rect
315
+ class="xy-flow__minimap-node"
316
+ [class]="getNodeClassName(node)"
317
+ [attr.x]="node.x"
318
+ [attr.y]="node.y"
319
+ [attr.width]="node.width"
320
+ [attr.height]="node.height"
321
+ [attr.rx]="nodeBorderRadius()"
322
+ [style.fill]="getNodeColor(node)"
323
+ [style.stroke]="getNodeStrokeColor(node)"
324
+ [style.stroke-width]="nodeStrokeWidth()"
325
+ (click)="onMinimapNodeClick($event, node)"
326
+ />
327
+ }
354
328
  }
355
329
  <!-- Mask overlay: dim area outside viewport via evenodd path -->
356
- @if (maskColor()) {
357
- <path
358
- class="xy-flow__minimap-mask"
359
- [attr.d]="maskPath()"
360
- [attr.fill]="maskColor()"
361
- fill-rule="evenodd"
362
- style="pointer-events: none;"
363
- />
364
- }
330
+ <path
331
+ class="xy-flow__minimap-mask"
332
+ [attr.d]="maskPath()"
333
+ [style.fill]="maskColor()"
334
+ fill-rule="evenodd"
335
+ style="pointer-events: none;"
336
+ />
365
337
  <!-- Viewport outline -->
366
338
  <rect
367
339
  [attr.x]="maskPosition().x"
@@ -376,62 +348,74 @@ export class MiniMapComponent {
376
348
  </svg>
377
349
  </div>
378
350
  </ng-flow-panel>
379
- `, isInline: true, dependencies: [{ kind: "component", type: PanelComponent, selector: "ng-flow-panel", inputs: ["position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
351
+ `, isInline: true, dependencies: [{ kind: "component", type: PanelComponent, selector: "ng-flow-panel", inputs: ["position"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
380
352
  }
381
353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: MiniMapComponent, decorators: [{
382
354
  type: Component,
383
355
  args: [{
384
356
  selector: 'ng-flow-minimap',
385
357
  standalone: true,
386
- imports: [PanelComponent],
358
+ imports: [PanelComponent, NgComponentOutlet],
387
359
  changeDetection: ChangeDetectionStrategy.OnPush,
388
360
  template: `
389
361
  <ng-flow-panel [position]="position()">
390
362
  <div
391
363
  class="ng-flow__minimap xy-flow__minimap"
392
- #minimapContainer
393
364
  [attr.aria-label]="ariaLabel()"
394
365
  [style.width.px]="mmWidth()"
395
366
  [style.height.px]="mmHeight()"
396
367
  style="border-radius: 4px; overflow: hidden; border: 1px solid #ddd; box-shadow: 0 1px 4px rgba(0,0,0,0.1); cursor: pointer;"
397
- (click)="onMinimapClick($event)"
398
- (mousedown)="onMinimapMouseDown($event)"
399
- (wheel)="onMinimapWheel($event)"
400
368
  >
401
369
  <svg
370
+ #minimapSvg
402
371
  class="xy-flow__minimap-svg"
403
372
  [attr.width]="mmWidth()"
404
373
  [attr.height]="mmHeight()"
405
374
  [attr.viewBox]="viewBox()"
375
+ (click)="onMinimapClick($event)"
406
376
  >
407
377
  <!-- Background -->
408
378
  <rect x="-10000" y="-10000" width="20000" height="20000" [attr.fill]="bgColor() ?? '#f0f0f0'" />
409
379
  <!-- Nodes -->
380
+ <!--
381
+ Colors are bound as inline [style.*], NOT [attr.*]: the bundled
382
+ stylesheet sets a fill CSS property on .xy-flow__minimap-node, and a
383
+ CSS property always overrides an SVG fill presentation attribute.
384
+ Inline styles win over stylesheet rules, so the inputs actually take
385
+ effect. When an input is unset (undefined) we emit no inline value,
386
+ deferring to the stylesheet's CSS-variable theming (incl. dark mode).
387
+ -->
410
388
  @for (node of minimapNodes(); track node.id) {
411
- <rect
412
- class="xy-flow__minimap-node"
413
- [class]="getNodeClassName(node)"
414
- [attr.x]="node.x"
415
- [attr.y]="node.y"
416
- [attr.width]="node.width"
417
- [attr.height]="node.height"
418
- [attr.rx]="nodeBorderRadius()"
419
- [attr.fill]="getNodeColor(node)"
420
- [attr.stroke]="getNodeStrokeColor(node)"
421
- [attr.stroke-width]="nodeStrokeWidth()"
422
- (click)="onMinimapNodeClick($event, node)"
423
- />
389
+ @if (nodeComponent(); as nc) {
390
+ <g (click)="onMinimapNodeClick($event, node)">
391
+ <ng-container
392
+ *ngComponentOutlet="nc; inputs: getNodeComponentInputs(node)"
393
+ />
394
+ </g>
395
+ } @else {
396
+ <rect
397
+ class="xy-flow__minimap-node"
398
+ [class]="getNodeClassName(node)"
399
+ [attr.x]="node.x"
400
+ [attr.y]="node.y"
401
+ [attr.width]="node.width"
402
+ [attr.height]="node.height"
403
+ [attr.rx]="nodeBorderRadius()"
404
+ [style.fill]="getNodeColor(node)"
405
+ [style.stroke]="getNodeStrokeColor(node)"
406
+ [style.stroke-width]="nodeStrokeWidth()"
407
+ (click)="onMinimapNodeClick($event, node)"
408
+ />
409
+ }
424
410
  }
425
411
  <!-- Mask overlay: dim area outside viewport via evenodd path -->
426
- @if (maskColor()) {
427
- <path
428
- class="xy-flow__minimap-mask"
429
- [attr.d]="maskPath()"
430
- [attr.fill]="maskColor()"
431
- fill-rule="evenodd"
432
- style="pointer-events: none;"
433
- />
434
- }
412
+ <path
413
+ class="xy-flow__minimap-mask"
414
+ [attr.d]="maskPath()"
415
+ [style.fill]="maskColor()"
416
+ fill-rule="evenodd"
417
+ style="pointer-events: none;"
418
+ />
435
419
  <!-- Viewport outline -->
436
420
  <rect
437
421
  [attr.x]="maskPosition().x"
@@ -448,5 +432,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
448
432
  </ng-flow-panel>
449
433
  `,
450
434
  }]
451
- }], propDecorators: { minimapContainerRef: [{ type: i0.ViewChild, args: ['minimapContainer', { isSignal: true }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], mmWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], mmHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], pannable: [{ type: i0.Input, args: [{ isSignal: true, alias: "pannable", required: false }] }], zoomable: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomable", required: false }] }], zoomStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomStep", required: false }] }], inversePan: [{ type: i0.Input, args: [{ isSignal: true, alias: "inversePan", required: false }] }], nodeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeColor", required: false }] }], nodeStrokeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeStrokeColor", required: false }] }], nodeClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeClassName", required: false }] }], nodeBorderRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeBorderRadius", required: false }] }], nodeStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeStrokeWidth", required: false }] }], nodeComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeComponent", required: false }] }], bgColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "bgColor", required: false }] }], maskColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskColor", required: false }] }], maskStrokeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskStrokeColor", required: false }] }], maskStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskStrokeWidth", required: false }] }], offsetScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "offsetScale", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], minimapClick: [{ type: i0.Output, args: ["minimapClick"] }], minimapNodeClick: [{ type: i0.Output, args: ["minimapNodeClick"] }] } });
435
+ }], ctorParameters: () => [], propDecorators: { minimapSvgRef: [{ type: i0.ViewChild, args: ['minimapSvg', { isSignal: true }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], mmWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], mmHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], pannable: [{ type: i0.Input, args: [{ isSignal: true, alias: "pannable", required: false }] }], zoomable: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomable", required: false }] }], zoomStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomStep", required: false }] }], inversePan: [{ type: i0.Input, args: [{ isSignal: true, alias: "inversePan", required: false }] }], nodeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeColor", required: false }] }], nodeStrokeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeStrokeColor", required: false }] }], nodeClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeClassName", required: false }] }], nodeBorderRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeBorderRadius", required: false }] }], nodeStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeStrokeWidth", required: false }] }], nodeComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeComponent", required: false }] }], bgColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "bgColor", required: false }] }], maskColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskColor", required: false }] }], maskStrokeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskStrokeColor", required: false }] }], maskStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskStrokeWidth", required: false }] }], offsetScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "offsetScale", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], minimapClick: [{ type: i0.Output, args: ["minimapClick"] }], minimapNodeClick: [{ type: i0.Output, args: ["minimapNodeClick"] }] } });
452
436
  //# sourceMappingURL=minimap.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"minimap.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/minimap/minimap.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minimap.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/minimap/minimap.component.ts"],"names":[],"mappings":"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"}