langflower 0.0.3 → 0.0.4

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 (1467) hide show
  1. package/dist/cli.d.ts +0 -1
  2. package/dist/cli.js +0 -1
  3. package/dist/create-fake-skill-case-runner.d.ts +0 -1
  4. package/dist/create-fake-skill-case-runner.js +0 -1
  5. package/dist/create-fake-skill-case-runner.test.d.ts +0 -1
  6. package/dist/create-fake-skill-case-runner.test.js +0 -1
  7. package/dist/eval-command.d.ts +0 -1
  8. package/dist/eval-command.js +0 -1
  9. package/dist/index.d.ts +0 -1
  10. package/dist/index.js +0 -1
  11. package/dist/start-command.d.ts +0 -1
  12. package/dist/start-command.js +0 -1
  13. package/dist/start-command.test.d.ts +0 -1
  14. package/dist/start-command.test.js +0 -1
  15. package/package.json +1 -1
  16. package/ui-dist/{chunk-6BIDZUAE.js → chunk-2AICAC67.js} +1 -1
  17. package/ui-dist/{chunk-NAV7YTWN.js → chunk-6ZABW4JL.js} +3 -3
  18. package/ui-dist/index.html +2 -2
  19. package/ui-dist/{main-LIBWWVGM.js → main-XI7IOZKZ.js} +61 -61
  20. package/ui-dist/styles-TQGRAC7Q.css +1 -0
  21. package/vendor/common-nodes/dist/ai/build-effective-system-prompt.d.ts +0 -1
  22. package/vendor/common-nodes/dist/ai/build-effective-system-prompt.js +0 -1
  23. package/vendor/common-nodes/dist/ai/chat-completion-stream.d.ts +0 -1
  24. package/vendor/common-nodes/dist/ai/chat-completion-stream.js +0 -1
  25. package/vendor/common-nodes/dist/ai/critique/node.d.ts +1 -6
  26. package/vendor/common-nodes/dist/ai/critique/node.js +0 -1
  27. package/vendor/common-nodes/dist/ai/fake-llm/node.d.ts +10 -15
  28. package/vendor/common-nodes/dist/ai/fake-llm/node.js +0 -1
  29. package/vendor/common-nodes/dist/ai/llm-compaction-ui-schema.d.ts +0 -1
  30. package/vendor/common-nodes/dist/ai/llm-compaction-ui-schema.js +0 -1
  31. package/vendor/common-nodes/dist/ai/llm-loop/classify-llm-failure.d.ts +0 -1
  32. package/vendor/common-nodes/dist/ai/llm-loop/classify-llm-failure.js +0 -1
  33. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-reducer.d.ts +0 -1
  34. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-reducer.js +0 -1
  35. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-types.d.ts +0 -1
  36. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-types.js +0 -1
  37. package/vendor/common-nodes/dist/ai/llm-loop/normalize-llm-recovery-policy.d.ts +0 -1
  38. package/vendor/common-nodes/dist/ai/llm-loop/normalize-llm-recovery-policy.js +0 -1
  39. package/vendor/common-nodes/dist/ai/llm-loop/operators/normalize-tool-result.d.ts +0 -1
  40. package/vendor/common-nodes/dist/ai/llm-loop/operators/normalize-tool-result.js +0 -1
  41. package/vendor/common-nodes/dist/ai/llm-loop/operators/observe-provider-stream.d.ts +0 -1
  42. package/vendor/common-nodes/dist/ai/llm-loop/operators/observe-provider-stream.js +0 -1
  43. package/vendor/common-nodes/dist/ai/llm-loop/run-agent-loop.d.ts +0 -1
  44. package/vendor/common-nodes/dist/ai/llm-loop/run-agent-loop.js +0 -1
  45. package/vendor/common-nodes/dist/ai/llm-loop/run-llm-loop.d.ts +0 -1
  46. package/vendor/common-nodes/dist/ai/llm-loop/run-llm-loop.js +0 -1
  47. package/vendor/common-nodes/dist/ai/llm-panel-ui-schema.d.ts +3 -4
  48. package/vendor/common-nodes/dist/ai/llm-panel-ui-schema.js +3 -4
  49. package/vendor/common-nodes/dist/ai/llm-recovery-ui-schema.d.ts +0 -1
  50. package/vendor/common-nodes/dist/ai/llm-recovery-ui-schema.js +0 -1
  51. package/vendor/common-nodes/dist/ai/llm-role-preset.d.ts +32 -31
  52. package/vendor/common-nodes/dist/ai/llm-role-preset.js +160 -73
  53. package/vendor/common-nodes/dist/ai/llm-session/run-session-machine.d.ts +0 -1
  54. package/vendor/common-nodes/dist/ai/llm-session/run-session-machine.js +0 -1
  55. package/vendor/common-nodes/dist/ai/llm-session-shell.d.ts +2 -7
  56. package/vendor/common-nodes/dist/ai/llm-session-shell.js +0 -1
  57. package/vendor/common-nodes/dist/ai/normalize-max-iterations.d.ts +0 -1
  58. package/vendor/common-nodes/dist/ai/normalize-max-iterations.js +0 -1
  59. package/vendor/common-nodes/dist/ai/openai/context-length-error.d.ts +0 -1
  60. package/vendor/common-nodes/dist/ai/openai/context-length-error.js +0 -1
  61. package/vendor/common-nodes/dist/ai/openai/create-chat-completion-stream.d.ts +0 -1
  62. package/vendor/common-nodes/dist/ai/openai/create-chat-completion-stream.js +0 -1
  63. package/vendor/common-nodes/dist/ai/openai/list-provider-models.d.ts +0 -1
  64. package/vendor/common-nodes/dist/ai/openai/list-provider-models.js +0 -1
  65. package/vendor/common-nodes/dist/ai/openai/llm-context-compaction.d.ts +0 -1
  66. package/vendor/common-nodes/dist/ai/openai/llm-context-compaction.js +0 -1
  67. package/vendor/common-nodes/dist/ai/openai/normalize-compaction-params.d.ts +0 -1
  68. package/vendor/common-nodes/dist/ai/openai/normalize-compaction-params.js +0 -1
  69. package/vendor/common-nodes/dist/ai/openai/prepare-chat-completion.d.ts +0 -1
  70. package/vendor/common-nodes/dist/ai/openai/prepare-chat-completion.js +0 -1
  71. package/vendor/common-nodes/dist/ai/openai-llm/node.d.ts +10 -15
  72. package/vendor/common-nodes/dist/ai/openai-llm/node.js +0 -1
  73. package/vendor/common-nodes/dist/ai/path-choice/control-tools.d.ts +0 -1
  74. package/vendor/common-nodes/dist/ai/path-choice/control-tools.js +0 -1
  75. package/vendor/common-nodes/dist/ai/path-choice/run-reactive-path-choice-loop.d.ts +0 -1
  76. package/vendor/common-nodes/dist/ai/path-choice/run-reactive-path-choice-loop.js +0 -1
  77. package/vendor/common-nodes/dist/ai/review/node.d.ts +1 -6
  78. package/vendor/common-nodes/dist/ai/review/node.js +0 -1
  79. package/vendor/common-nodes/dist/ai/run-host-services.d.ts +0 -1
  80. package/vendor/common-nodes/dist/ai/run-host-services.js +0 -1
  81. package/vendor/common-nodes/dist/ai/scripted-chat-completion-stream.d.ts +0 -1
  82. package/vendor/common-nodes/dist/ai/scripted-chat-completion-stream.js +0 -1
  83. package/vendor/common-nodes/dist/ai/sub-agent/node.d.ts +10 -15
  84. package/vendor/common-nodes/dist/ai/sub-agent/node.js +0 -1
  85. package/vendor/common-nodes/dist/ai/sub-agent-protocol.d.ts +0 -1
  86. package/vendor/common-nodes/dist/ai/sub-agent-protocol.js +0 -1
  87. package/vendor/common-nodes/dist/ai/wait-for-subagent-result.d.ts +0 -1
  88. package/vendor/common-nodes/dist/ai/wait-for-subagent-result.js +0 -1
  89. package/vendor/common-nodes/dist/catalog.d.ts +0 -1
  90. package/vendor/common-nodes/dist/catalog.js +0 -1
  91. package/vendor/common-nodes/dist/crawl/crawl/node.d.ts +1 -6
  92. package/vendor/common-nodes/dist/crawl/crawl/node.js +0 -1
  93. package/vendor/common-nodes/dist/crawl/crawl-tools/node.d.ts +1 -6
  94. package/vendor/common-nodes/dist/crawl/crawl-tools/node.js +1 -2
  95. package/vendor/common-nodes/dist/crawl/extract-links/node.d.ts +1 -6
  96. package/vendor/common-nodes/dist/crawl/extract-links/node.js +0 -1
  97. package/vendor/common-nodes/dist/crawl/fetch-url/node.d.ts +1 -6
  98. package/vendor/common-nodes/dist/crawl/fetch-url/node.js +0 -1
  99. package/vendor/common-nodes/dist/crawl/save-page/node.d.ts +1 -6
  100. package/vendor/common-nodes/dist/crawl/save-page/node.js +0 -1
  101. package/vendor/common-nodes/dist/flow/checkpoint/node.d.ts +1 -6
  102. package/vendor/common-nodes/dist/flow/checkpoint/node.js +0 -1
  103. package/vendor/common-nodes/dist/flow/delay/node.d.ts +1 -6
  104. package/vendor/common-nodes/dist/flow/delay/node.js +1 -1
  105. package/vendor/common-nodes/dist/flow/loop/node.d.ts +1 -6
  106. package/vendor/common-nodes/dist/flow/loop/node.js +0 -1
  107. package/vendor/common-nodes/dist/flow/map-collect-body.d.ts +0 -1
  108. package/vendor/common-nodes/dist/flow/map-collect-body.js +0 -1
  109. package/vendor/common-nodes/dist/flow/merge/node.d.ts +1 -6
  110. package/vendor/common-nodes/dist/flow/merge/node.js +1 -1
  111. package/vendor/common-nodes/dist/flow/repeat/node.d.ts +1 -6
  112. package/vendor/common-nodes/dist/flow/repeat/node.js +1 -1
  113. package/vendor/common-nodes/dist/flow/router/node.d.ts +1 -6
  114. package/vendor/common-nodes/dist/flow/router/node.js +0 -1
  115. package/vendor/common-nodes/dist/flow/router/router-constants.d.ts +0 -1
  116. package/vendor/common-nodes/dist/flow/router/router-constants.js +0 -1
  117. package/vendor/common-nodes/dist/hitl/chat-input/node.d.ts +1 -6
  118. package/vendor/common-nodes/dist/hitl/chat-input/node.js +0 -1
  119. package/vendor/common-nodes/dist/hitl/review-gate/node.d.ts +1 -6
  120. package/vendor/common-nodes/dist/hitl/review-gate/node.js +0 -1
  121. package/vendor/common-nodes/dist/logic/assert/node.d.ts +1 -6
  122. package/vendor/common-nodes/dist/logic/assert/node.js +1 -1
  123. package/vendor/common-nodes/dist/logic/compare/evaluate-compare.d.ts +0 -1
  124. package/vendor/common-nodes/dist/logic/compare/evaluate-compare.js +0 -1
  125. package/vendor/common-nodes/dist/logic/compare/node.d.ts +1 -6
  126. package/vendor/common-nodes/dist/logic/compare/node.js +1 -1
  127. package/vendor/common-nodes/dist/logic/gate/node.d.ts +1 -6
  128. package/vendor/common-nodes/dist/logic/gate/node.js +1 -1
  129. package/vendor/common-nodes/dist/logic/if/node.d.ts +1 -6
  130. package/vendor/common-nodes/dist/logic/if/node.js +1 -1
  131. package/vendor/common-nodes/dist/logic/switch/node.d.ts +1 -6
  132. package/vendor/common-nodes/dist/logic/switch/node.js +1 -1
  133. package/vendor/common-nodes/dist/logic/switch/switch-constants.d.ts +0 -1
  134. package/vendor/common-nodes/dist/logic/switch/switch-constants.js +0 -1
  135. package/vendor/common-nodes/dist/logic/switch/switch-rules.d.ts +0 -1
  136. package/vendor/common-nodes/dist/logic/switch/switch-rules.js +0 -1
  137. package/vendor/common-nodes/dist/mcp/flatten-mcp-handles.d.ts +0 -1
  138. package/vendor/common-nodes/dist/mcp/flatten-mcp-handles.js +0 -1
  139. package/vendor/common-nodes/dist/mcp/mcp-http/node.d.ts +4 -8
  140. package/vendor/common-nodes/dist/mcp/mcp-http/node.js +6 -15
  141. package/vendor/common-nodes/dist/mcp/mcp-stdio/node.d.ts +4 -8
  142. package/vendor/common-nodes/dist/mcp/mcp-stdio/node.js +6 -15
  143. package/vendor/common-nodes/dist/memory/memory-tools/node.d.ts +1 -6
  144. package/vendor/common-nodes/dist/memory/memory-tools/node.js +1 -2
  145. package/vendor/common-nodes/dist/output/finish/node.d.ts +1 -6
  146. package/vendor/common-nodes/dist/output/finish/node.js +0 -1
  147. package/vendor/common-nodes/dist/output/preview/node.d.ts +1 -6
  148. package/vendor/common-nodes/dist/output/preview/node.js +0 -1
  149. package/vendor/common-nodes/dist/primitives/boolean/node.d.ts +1 -6
  150. package/vendor/common-nodes/dist/primitives/boolean/node.js +0 -1
  151. package/vendor/common-nodes/dist/primitives/number/node.d.ts +1 -6
  152. package/vendor/common-nodes/dist/primitives/number/node.js +0 -1
  153. package/vendor/common-nodes/dist/primitives/string/node.d.ts +1 -6
  154. package/vendor/common-nodes/dist/primitives/string/node.js +0 -1
  155. package/vendor/common-nodes/dist/resolve-workflow-node-definition.d.ts +0 -1
  156. package/vendor/common-nodes/dist/resolve-workflow-node-definition.js +0 -1
  157. package/vendor/common-nodes/dist/text/append-file/node.d.ts +1 -6
  158. package/vendor/common-nodes/dist/text/append-file/node.js +0 -1
  159. package/vendor/common-nodes/dist/text/concat/node.d.ts +1 -6
  160. package/vendor/common-nodes/dist/text/concat/node.js +0 -1
  161. package/vendor/common-nodes/dist/text/read-file/node.d.ts +1 -6
  162. package/vendor/common-nodes/dist/text/read-file/node.js +0 -1
  163. package/vendor/common-nodes/dist/text/write-file/node.d.ts +1 -6
  164. package/vendor/common-nodes/dist/text/write-file/node.js +0 -1
  165. package/vendor/common-nodes/dist/tools/collect-agent-tool-handles.d.ts +0 -1
  166. package/vendor/common-nodes/dist/tools/collect-agent-tool-handles.js +0 -1
  167. package/vendor/common-nodes/dist/tools/filter-enabled-registrations.d.ts +0 -1
  168. package/vendor/common-nodes/dist/tools/filter-enabled-registrations.js +0 -1
  169. package/vendor/common-nodes/dist/tools/inventory-tool-round.d.ts +0 -1
  170. package/vendor/common-nodes/dist/tools/inventory-tool-round.js +2 -2
  171. package/vendor/compiler/dist/bundle-pack.d.ts +0 -1
  172. package/vendor/compiler/dist/bundle-pack.js +0 -1
  173. package/vendor/compiler/dist/cache-key.d.ts +0 -1
  174. package/vendor/compiler/dist/cache-key.js +0 -1
  175. package/vendor/compiler/dist/compile-project-nodes.d.ts +0 -1
  176. package/vendor/compiler/dist/compile-project-nodes.js +0 -1
  177. package/vendor/compiler/dist/compile-types.d.ts +0 -1
  178. package/vendor/compiler/dist/compile-types.js +0 -1
  179. package/vendor/compiler/dist/discover-packs.d.ts +0 -1
  180. package/vendor/compiler/dist/discover-packs.js +0 -1
  181. package/vendor/compiler/dist/format-compilation-errors.d.ts +0 -1
  182. package/vendor/compiler/dist/format-compilation-errors.js +0 -1
  183. package/vendor/compiler/dist/resolve-host-types.d.ts +0 -1
  184. package/vendor/compiler/dist/resolve-host-types.js +0 -1
  185. package/vendor/compiler/dist/typecheck-pack.d.ts +0 -1
  186. package/vendor/compiler/dist/typecheck-pack.js +0 -1
  187. package/vendor/compiler/dist/validate-default-export.d.ts +0 -1
  188. package/vendor/compiler/dist/validate-default-export.js +0 -1
  189. package/vendor/compiler/dist/write-compilation-errors.d.ts +0 -1
  190. package/vendor/compiler/dist/write-compilation-errors.js +0 -1
  191. package/vendor/eval/dist/eval-pack-types.d.ts +0 -1
  192. package/vendor/eval/dist/eval-pack-types.js +0 -1
  193. package/vendor/eval/dist/load-pack.d.ts +0 -1
  194. package/vendor/eval/dist/load-pack.js +0 -1
  195. package/vendor/eval/dist/load-skill-via-read.d.ts +0 -1
  196. package/vendor/eval/dist/load-skill-via-read.js +0 -1
  197. package/vendor/eval/dist/run-eval-suite.d.ts +0 -1
  198. package/vendor/eval/dist/run-eval-suite.js +0 -1
  199. package/vendor/eval/dist/score-case.d.ts +0 -1
  200. package/vendor/eval/dist/score-case.js +0 -1
  201. package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.d.ts +0 -1
  202. package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.js +0 -1
  203. package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.d.ts +1 -6
  204. package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.js +0 -1
  205. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.d.ts +0 -1
  206. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.js +0 -1
  207. package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.d.ts +0 -1
  208. package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.js +0 -1
  209. package/vendor/node-sdk/dist/node-factory/define-llm-node/steer-control.d.ts +0 -1
  210. package/vendor/node-sdk/dist/node-factory/define-llm-node/steer-control.js +0 -1
  211. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.d.ts +1 -2
  212. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.js +0 -1
  213. package/vendor/node-sdk/dist/node-factory/define-node/define-node.d.ts +0 -1
  214. package/vendor/node-sdk/dist/node-factory/define-node/define-node.js +0 -1
  215. package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.d.ts +1 -6
  216. package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.js +0 -1
  217. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ctx-error.d.ts +0 -1
  218. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ctx-error.js +0 -1
  219. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.d.ts +1 -7
  220. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.js +0 -1
  221. package/vendor/node-sdk/dist/node-factory/define-reactive-node/hitl-config.d.ts +0 -1
  222. package/vendor/node-sdk/dist/node-factory/define-reactive-node/hitl-config.js +0 -1
  223. package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.d.ts +1 -2
  224. package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.js +11 -2
  225. package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.d.ts +0 -1
  226. package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.js +0 -1
  227. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.d.ts +1 -6
  228. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.js +0 -1
  229. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.d.ts +1 -6
  230. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.js +0 -1
  231. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.d.ts +1 -6
  232. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.js +0 -1
  233. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.d.ts +1 -6
  234. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.js +0 -1
  235. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.d.ts +1 -6
  236. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.js +0 -1
  237. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.d.ts +1 -6
  238. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.js +0 -1
  239. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.d.ts +1 -6
  240. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.js +0 -1
  241. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.d.ts +1 -6
  242. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.js +0 -1
  243. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.d.ts +1 -6
  244. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.js +0 -1
  245. package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.d.ts +0 -1
  246. package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.js +0 -1
  247. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.d.ts +1 -2
  248. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.js +0 -1
  249. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.d.ts +1 -6
  250. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.js +0 -1
  251. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-handle.d.ts +0 -1
  252. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-handle.js +0 -1
  253. package/vendor/runtime/dist/bypass-ports.d.ts +0 -1
  254. package/vendor/runtime/dist/bypass-ports.js +0 -1
  255. package/vendor/runtime/dist/normalize-port-error-value.d.ts +0 -1
  256. package/vendor/runtime/dist/normalize-port-error-value.js +0 -1
  257. package/vendor/runtime/dist/port-meta.d.ts +0 -1
  258. package/vendor/runtime/dist/port-meta.js +0 -1
  259. package/vendor/runtime/dist/runtime-editor.d.ts +0 -1
  260. package/vendor/runtime/dist/runtime-editor.js +0 -1
  261. package/vendor/runtime/dist/runtime-helpers.d.ts +0 -1
  262. package/vendor/runtime/dist/runtime-helpers.js +0 -1
  263. package/vendor/runtime/dist/runtime-runner.d.ts +0 -1
  264. package/vendor/runtime/dist/runtime-runner.js +0 -1
  265. package/vendor/runtime/dist/runtime.d.ts +0 -1
  266. package/vendor/runtime/dist/runtime.js +0 -1
  267. package/vendor/runtime/dist/testing/nodes/agent-node.d.ts +0 -1
  268. package/vendor/runtime/dist/testing/nodes/agent-node.js +0 -1
  269. package/vendor/runtime/dist/testing/nodes/combine-node.d.ts +0 -1
  270. package/vendor/runtime/dist/testing/nodes/combine-node.js +0 -1
  271. package/vendor/runtime/dist/testing/nodes/constant-node.d.ts +0 -1
  272. package/vendor/runtime/dist/testing/nodes/constant-node.js +0 -1
  273. package/vendor/runtime/dist/testing/nodes/delay-node.d.ts +0 -1
  274. package/vendor/runtime/dist/testing/nodes/delay-node.js +0 -1
  275. package/vendor/runtime/dist/testing/nodes/finish-node.d.ts +0 -1
  276. package/vendor/runtime/dist/testing/nodes/finish-node.js +0 -1
  277. package/vendor/runtime/dist/testing/nodes/hitl-node.d.ts +0 -1
  278. package/vendor/runtime/dist/testing/nodes/hitl-node.js +0 -1
  279. package/vendor/runtime/dist/testing/nodes/join-node.d.ts +0 -1
  280. package/vendor/runtime/dist/testing/nodes/join-node.js +0 -1
  281. package/vendor/runtime/dist/testing/nodes/merge-node.d.ts +0 -1
  282. package/vendor/runtime/dist/testing/nodes/merge-node.js +0 -1
  283. package/vendor/runtime/dist/testing/nodes/preview-node.d.ts +0 -1
  284. package/vendor/runtime/dist/testing/nodes/preview-node.js +0 -1
  285. package/vendor/runtime/dist/testing/nodes/pushable-node.d.ts +0 -1
  286. package/vendor/runtime/dist/testing/nodes/pushable-node.js +0 -1
  287. package/vendor/runtime/dist/testing/nodes/router-node.d.ts +0 -1
  288. package/vendor/runtime/dist/testing/nodes/router-node.js +0 -1
  289. package/vendor/runtime/dist/testing/readOutputValue.d.ts +0 -1
  290. package/vendor/runtime/dist/testing/readOutputValue.js +0 -1
  291. package/vendor/runtime/dist/testing/workflows/workflow-events.d.ts +0 -1
  292. package/vendor/runtime/dist/testing/workflows/workflow-events.js +0 -1
  293. package/vendor/runtime/dist/types.d.ts +0 -1
  294. package/vendor/runtime/dist/types.js +0 -1
  295. package/vendor/server/dist/bootstrap/copy-force.d.ts +0 -1
  296. package/vendor/server/dist/bootstrap/copy-force.js +0 -1
  297. package/vendor/server/dist/bootstrap/copy-if-missing.d.ts +0 -1
  298. package/vendor/server/dist/bootstrap/copy-if-missing.js +0 -1
  299. package/vendor/server/dist/bootstrap/project-bootstrap.service.d.ts +0 -1
  300. package/vendor/server/dist/bootstrap/project-bootstrap.service.js +9 -2
  301. package/vendor/server/dist/bootstrap/resolve-skeleton-root.d.ts +0 -1
  302. package/vendor/server/dist/bootstrap/resolve-skeleton-root.js +0 -1
  303. package/vendor/server/dist/bootstrap/seed-skeleton.d.ts +0 -1
  304. package/vendor/server/dist/bootstrap/seed-skeleton.js +1 -1
  305. package/vendor/server/dist/bridge/attach-langflower-bridge.d.ts +0 -1
  306. package/vendor/server/dist/bridge/attach-langflower-bridge.js +0 -1
  307. package/vendor/server/dist/bridge/bind-llm-context.d.ts +0 -1
  308. package/vendor/server/dist/bridge/bind-llm-context.js +0 -1
  309. package/vendor/server/dist/bridge/bridge-outbound.d.ts +0 -1
  310. package/vendor/server/dist/bridge/bridge-outbound.js +0 -1
  311. package/vendor/server/dist/bridge/build-execution-context.d.ts +0 -1
  312. package/vendor/server/dist/bridge/build-execution-context.js +6 -6
  313. package/vendor/server/dist/bridge/build-langflower-config-snapshot.d.ts +0 -1
  314. package/vendor/server/dist/bridge/build-langflower-config-snapshot.js +0 -1
  315. package/vendor/server/dist/bridge/client-index.d.ts +0 -1
  316. package/vendor/server/dist/bridge/client-index.js +0 -1
  317. package/vendor/server/dist/bridge/emit-bootstrap.d.ts +1 -1
  318. package/vendor/server/dist/bridge/emit-bootstrap.js +6 -6
  319. package/vendor/server/dist/bridge/forward-runner-event.d.ts +0 -1
  320. package/vendor/server/dist/bridge/forward-runner-event.js +0 -1
  321. package/vendor/server/dist/bridge/inbound-guards.d.ts +0 -1
  322. package/vendor/server/dist/bridge/inbound-guards.js +0 -1
  323. package/vendor/server/dist/bridge/langflower-bridge.types.d.ts +0 -1
  324. package/vendor/server/dist/bridge/langflower-bridge.types.js +0 -1
  325. package/vendor/server/dist/bridge/push-models-catalog.d.ts +0 -1
  326. package/vendor/server/dist/bridge/push-models-catalog.js +0 -1
  327. package/vendor/server/dist/bridge/same-canvas-viewport.d.ts +0 -1
  328. package/vendor/server/dist/bridge/same-canvas-viewport.js +0 -1
  329. package/vendor/server/dist/bridge/wire-config-handlers.d.ts +0 -1
  330. package/vendor/server/dist/bridge/wire-config-handlers.js +0 -1
  331. package/vendor/server/dist/bridge/wire-custom-palette-handlers.d.ts +0 -1
  332. package/vendor/server/dist/bridge/wire-custom-palette-handlers.js +0 -1
  333. package/vendor/server/dist/bridge/wire-editor-handlers.d.ts +0 -1
  334. package/vendor/server/dist/bridge/wire-editor-handlers.js +0 -1
  335. package/vendor/server/dist/bridge/wire-palette-handlers.d.ts +0 -1
  336. package/vendor/server/dist/bridge/wire-palette-handlers.js +0 -1
  337. package/vendor/server/dist/bridge/wire-project-bootstrap-handlers.d.ts +0 -1
  338. package/vendor/server/dist/bridge/wire-project-bootstrap-handlers.js +0 -1
  339. package/vendor/server/dist/bridge/wire-runner-handlers.d.ts +0 -1
  340. package/vendor/server/dist/bridge/wire-runner-handlers.js +0 -1
  341. package/vendor/server/dist/bridge/wire-workflow-handlers.d.ts +0 -1
  342. package/vendor/server/dist/bridge/wire-workflow-handlers.js +10 -1
  343. package/vendor/server/dist/bridge/wrap-builtin-tool-handles.d.ts +4 -2
  344. package/vendor/server/dist/bridge/wrap-builtin-tool-handles.js +6 -3
  345. package/vendor/server/dist/checkpoint/list-resumable-checkpoints.d.ts +0 -1
  346. package/vendor/server/dist/checkpoint/list-resumable-checkpoints.js +0 -1
  347. package/vendor/server/dist/checkpoint/resolve-checkpoint-boundary.d.ts +0 -1
  348. package/vendor/server/dist/checkpoint/resolve-checkpoint-boundary.js +0 -1
  349. package/vendor/server/dist/checkpoint/run-checkpoint-session.d.ts +0 -1
  350. package/vendor/server/dist/checkpoint/run-checkpoint-session.js +0 -1
  351. package/vendor/server/dist/checkpoint/workflow-checkpoint-store.d.ts +0 -1
  352. package/vendor/server/dist/checkpoint/workflow-checkpoint-store.js +0 -1
  353. package/vendor/server/dist/config/config.service.d.ts +0 -1
  354. package/vendor/server/dist/config/config.service.js +0 -1
  355. package/vendor/server/dist/config/langflower-config.service.d.ts +0 -1
  356. package/vendor/server/dist/config/langflower-config.service.js +0 -1
  357. package/vendor/server/dist/config/redact-langflower-config.d.ts +0 -1
  358. package/vendor/server/dist/config/redact-langflower-config.js +0 -1
  359. package/vendor/server/dist/config/resolve-global-langflower-config-path.d.ts +0 -1
  360. package/vendor/server/dist/config/resolve-global-langflower-config-path.js +0 -1
  361. package/vendor/server/dist/config/resolve-provider-credentials.d.ts +0 -1
  362. package/vendor/server/dist/config/resolve-provider-credentials.js +0 -1
  363. package/vendor/server/dist/create-server.d.ts +0 -1
  364. package/vendor/server/dist/create-server.js +16 -1
  365. package/vendor/server/dist/harness/pending-permission-asks.d.ts +0 -1
  366. package/vendor/server/dist/harness/pending-permission-asks.js +0 -1
  367. package/vendor/server/dist/listen-http-server.d.ts +0 -1
  368. package/vendor/server/dist/listen-http-server.js +0 -1
  369. package/vendor/server/dist/palette/custom-node-registry.d.ts +0 -1
  370. package/vendor/server/dist/palette/custom-node-registry.js +0 -1
  371. package/vendor/server/dist/palette/custom-palette.service.d.ts +0 -1
  372. package/vendor/server/dist/palette/custom-palette.service.js +0 -1
  373. package/vendor/server/dist/palette/palette.service.d.ts +0 -1
  374. package/vendor/server/dist/palette/palette.service.js +13 -2
  375. package/vendor/server/dist/server-context.d.ts +0 -1
  376. package/vendor/server/dist/server-context.js +0 -1
  377. package/vendor/server/dist/session/build-selected-node-payload.d.ts +0 -1
  378. package/vendor/server/dist/session/build-selected-node-payload.js +0 -1
  379. package/vendor/server/dist/session/build-session-bootstrap.d.ts +0 -1
  380. package/vendor/server/dist/session/build-session-bootstrap.js +0 -1
  381. package/vendor/server/dist/session/langflower-session.d.ts +0 -1
  382. package/vendor/server/dist/session/langflower-session.js +0 -1
  383. package/vendor/server/dist/skills/is-safe-skill-id.d.ts +0 -1
  384. package/vendor/server/dist/skills/is-safe-skill-id.js +0 -1
  385. package/vendor/server/dist/skills/list-skills.d.ts +0 -1
  386. package/vendor/server/dist/skills/list-skills.js +0 -1
  387. package/vendor/server/dist/skills/parse-skill-markdown.d.ts +0 -1
  388. package/vendor/server/dist/skills/parse-skill-markdown.js +0 -1
  389. package/vendor/server/dist/skills/read-agents-markdown.d.ts +0 -1
  390. package/vendor/server/dist/skills/read-agents-markdown.js +0 -1
  391. package/vendor/server/dist/skills/read-skill-markdown.d.ts +0 -1
  392. package/vendor/server/dist/skills/read-skill-markdown.js +0 -1
  393. package/vendor/server/dist/skills/with-skills-catalog.d.ts +0 -1
  394. package/vendor/server/dist/skills/with-skills-catalog.js +0 -1
  395. package/vendor/server/dist/utils/parse-jsonc.d.ts +0 -1
  396. package/vendor/server/dist/utils/parse-jsonc.js +0 -1
  397. package/vendor/server/dist/workflow/activate-workflow-in-session.d.ts +2 -1
  398. package/vendor/server/dist/workflow/activate-workflow-in-session.js +27 -8
  399. package/vendor/server/dist/workflow/apply-editor-mutation.d.ts +10 -6
  400. package/vendor/server/dist/workflow/apply-editor-mutation.js +9 -13
  401. package/vendor/server/dist/workflow/build-save-current-payload.d.ts +0 -1
  402. package/vendor/server/dist/workflow/build-save-current-payload.js +0 -1
  403. package/vendor/server/dist/workflow/copy-workflow-to-session.d.ts +0 -1
  404. package/vendor/server/dist/workflow/copy-workflow-to-session.js +0 -1
  405. package/vendor/server/dist/workflow/create-empty-workflow-in-session.d.ts +0 -1
  406. package/vendor/server/dist/workflow/create-empty-workflow-in-session.js +0 -1
  407. package/vendor/server/dist/workflow/load-workflow-into-session.d.ts +3 -1
  408. package/vendor/server/dist/workflow/load-workflow-into-session.js +24 -3
  409. package/vendor/server/dist/workflow/rename-active-workflow.d.ts +0 -1
  410. package/vendor/server/dist/workflow/rename-active-workflow.js +0 -1
  411. package/vendor/server/dist/workflow/repair-workflow-graph.d.ts +12 -0
  412. package/vendor/server/dist/workflow/repair-workflow-graph.js +62 -0
  413. package/vendor/server/dist/workflow/workflow-document.d.ts +0 -1
  414. package/vendor/server/dist/workflow/workflow-document.js +0 -1
  415. package/vendor/server/dist/workflow/workflow-id.d.ts +0 -1
  416. package/vendor/server/dist/workflow/workflow-id.js +0 -1
  417. package/vendor/server/dist/workflow/workflow-persisted-inputs.d.ts +0 -1
  418. package/vendor/server/dist/workflow/workflow-persisted-inputs.js +0 -1
  419. package/vendor/server/dist/workflow/workflow.service.d.ts +3 -1
  420. package/vendor/server/dist/workflow/workflow.service.js +39 -4
  421. package/vendor/server/skeleton/schemas/langflower-config.schema.json +160 -0
  422. package/vendor/server/skeleton/schemas/workflow.schema.json +119 -0
  423. package/vendor/server/skeleton/skills/langflower-helper/SKILL.md +18 -4
  424. package/vendor/server/skeleton/skills/langflower-helper/layout.md +8 -8
  425. package/vendor/server/skeleton/skills/langflower-workflow-writer/SKILL.md +95 -0
  426. package/vendor/server/skeleton/workflows/advanced-coder.json +1 -0
  427. package/vendor/server/skeleton/workflows/agents-dialog.json +21 -5
  428. package/vendor/server/skeleton/workflows/kb-create.json +33 -8
  429. package/vendor/server/skeleton/workflows/kb-navigate.json +21 -5
  430. package/vendor/server/skeleton/workflows/node-writer.json +13 -3
  431. package/vendor/server/skeleton/workflows/simple-coder.json +1 -0
  432. package/vendor/server/skeleton/workflows/starter.json +77 -9
  433. package/vendor/shared/dist/checkpoint/json-value.d.ts +0 -1
  434. package/vendor/shared/dist/checkpoint/json-value.js +0 -1
  435. package/vendor/shared/dist/checkpoint/json-value.test.d.ts +0 -1
  436. package/vendor/shared/dist/checkpoint/json-value.test.js +0 -1
  437. package/vendor/shared/dist/checkpoint/workflow-fingerprint.d.ts +0 -1
  438. package/vendor/shared/dist/checkpoint/workflow-fingerprint.js +0 -1
  439. package/vendor/shared/dist/checkpoint/workflow-fingerprint.test.d.ts +0 -1
  440. package/vendor/shared/dist/checkpoint/workflow-fingerprint.test.js +0 -1
  441. package/vendor/shared/dist/constants/defaults.d.ts +0 -1
  442. package/vendor/shared/dist/constants/defaults.js +0 -1
  443. package/vendor/shared/dist/execution/derive-run-settle-outcome.d.ts +0 -1
  444. package/vendor/shared/dist/execution/derive-run-settle-outcome.js +0 -1
  445. package/vendor/shared/dist/execution/derive-run-settle-outcome.test.d.ts +0 -1
  446. package/vendor/shared/dist/execution/derive-run-settle-outcome.test.js +0 -1
  447. package/vendor/shared/dist/langflower-bus-config.d.ts +7 -2
  448. package/vendor/shared/dist/langflower-bus-config.js +6 -1
  449. package/vendor/shared/dist/langflower-config/mcp-tool-id.d.ts +0 -1
  450. package/vendor/shared/dist/langflower-config/mcp-tool-id.js +0 -1
  451. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.d.ts +0 -1
  452. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.js +0 -1
  453. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.test.d.ts +0 -1
  454. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.test.js +0 -1
  455. package/vendor/shared/dist/langflower-config/merge-provider-model-options.d.ts +0 -1
  456. package/vendor/shared/dist/langflower-config/merge-provider-model-options.js +0 -1
  457. package/vendor/shared/dist/langflower-config/merge-provider-model-options.test.d.ts +0 -1
  458. package/vendor/shared/dist/langflower-config/merge-provider-model-options.test.js +0 -1
  459. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.d.ts +0 -1
  460. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.js +0 -1
  461. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.test.d.ts +0 -1
  462. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.test.js +0 -1
  463. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.d.ts +0 -1
  464. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.js +0 -1
  465. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.test.d.ts +0 -1
  466. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.test.js +0 -1
  467. package/vendor/shared/dist/langflower-ws-waits.d.ts +0 -1
  468. package/vendor/shared/dist/langflower-ws-waits.js +0 -1
  469. package/vendor/shared/dist/langflower.d.ts +1 -2
  470. package/vendor/shared/dist/langflower.js +0 -1
  471. package/vendor/shared/dist/types/config.d.ts +0 -1
  472. package/vendor/shared/dist/types/config.js +0 -1
  473. package/vendor/shared/dist/types/langflower-bootstrap.d.ts +0 -1
  474. package/vendor/shared/dist/types/langflower-bootstrap.js +0 -1
  475. package/vendor/shared/dist/types/langflower-config.d.ts +0 -1
  476. package/vendor/shared/dist/types/langflower-config.js +0 -1
  477. package/vendor/shared/dist/types/langflower-custom-palette.d.ts +0 -1
  478. package/vendor/shared/dist/types/langflower-custom-palette.js +0 -1
  479. package/vendor/shared/dist/types/langflower-editor.d.ts +0 -1
  480. package/vendor/shared/dist/types/langflower-editor.js +0 -1
  481. package/vendor/shared/dist/types/langflower-palette.d.ts +0 -1
  482. package/vendor/shared/dist/types/langflower-palette.js +0 -1
  483. package/vendor/shared/dist/types/langflower-project-bootstrap.d.ts +0 -1
  484. package/vendor/shared/dist/types/langflower-project-bootstrap.js +0 -1
  485. package/vendor/shared/dist/types/langflower-server.d.ts +0 -1
  486. package/vendor/shared/dist/types/langflower-server.js +0 -1
  487. package/vendor/shared/dist/types/langflower-workflow.d.ts +12 -2
  488. package/vendor/shared/dist/types/langflower-workflow.js +0 -1
  489. package/vendor/shared/dist/types/workflow-checkpoint.d.ts +0 -1
  490. package/vendor/shared/dist/types/workflow-checkpoint.js +0 -1
  491. package/vendor/tools/dist/builtins/apply-post-process.d.ts +0 -1
  492. package/vendor/tools/dist/builtins/apply-post-process.js +0 -1
  493. package/vendor/tools/dist/builtins/args.d.ts +0 -1
  494. package/vendor/tools/dist/builtins/args.js +0 -1
  495. package/vendor/tools/dist/builtins/bash/tool.d.ts +0 -1
  496. package/vendor/tools/dist/builtins/bash/tool.js +0 -1
  497. package/vendor/tools/dist/builtins/catalog.d.ts +0 -1
  498. package/vendor/tools/dist/builtins/catalog.js +0 -1
  499. package/vendor/tools/dist/builtins/create/tool.d.ts +0 -1
  500. package/vendor/tools/dist/builtins/create/tool.js +0 -1
  501. package/vendor/tools/dist/builtins/delete/tool.d.ts +0 -1
  502. package/vendor/tools/dist/builtins/delete/tool.js +0 -1
  503. package/vendor/tools/dist/builtins/edit/tool.d.ts +0 -1
  504. package/vendor/tools/dist/builtins/edit/tool.js +0 -1
  505. package/vendor/tools/dist/builtins/fence.d.ts +0 -1
  506. package/vendor/tools/dist/builtins/fence.js +0 -1
  507. package/vendor/tools/dist/builtins/glob/tool.d.ts +0 -1
  508. package/vendor/tools/dist/builtins/glob/tool.js +0 -1
  509. package/vendor/tools/dist/builtins/grep/tool.d.ts +0 -1
  510. package/vendor/tools/dist/builtins/grep/tool.js +0 -1
  511. package/vendor/tools/dist/builtins/read/tool.d.ts +0 -1
  512. package/vendor/tools/dist/builtins/read/tool.js +0 -1
  513. package/vendor/tools/dist/builtins/types.d.ts +0 -1
  514. package/vendor/tools/dist/builtins/types.js +0 -1
  515. package/vendor/tools/dist/builtins/walk-files.d.ts +0 -1
  516. package/vendor/tools/dist/builtins/walk-files.js +0 -1
  517. package/vendor/tools/dist/builtins/write/tool.d.ts +0 -1
  518. package/vendor/tools/dist/builtins/write/tool.js +0 -1
  519. package/vendor/tools/dist/create-crawl-context.d.ts +0 -1
  520. package/vendor/tools/dist/create-crawl-context.js +0 -1
  521. package/vendor/tools/dist/create-project-files-context.d.ts +0 -1
  522. package/vendor/tools/dist/create-project-files-context.js +0 -1
  523. package/vendor/tools/dist/create-project-harness.d.ts +0 -1
  524. package/vendor/tools/dist/create-project-harness.js +0 -1
  525. package/vendor/tools/dist/create-web-fetch.d.ts +0 -1
  526. package/vendor/tools/dist/create-web-fetch.js +0 -1
  527. package/vendor/tools/dist/domain/args.d.ts +0 -1
  528. package/vendor/tools/dist/domain/args.js +0 -1
  529. package/vendor/tools/dist/domain/domain-tool-configs.d.ts +0 -1
  530. package/vendor/tools/dist/domain/domain-tool-configs.js +0 -1
  531. package/vendor/tools/dist/domain/html.d.ts +0 -1
  532. package/vendor/tools/dist/domain/html.js +0 -1
  533. package/vendor/tools/dist/domain/run-bfs-crawl.d.ts +0 -1
  534. package/vendor/tools/dist/domain/run-bfs-crawl.js +0 -1
  535. package/vendor/tools/dist/gate-tool-call.d.ts +0 -1
  536. package/vendor/tools/dist/gate-tool-call.js +2 -3
  537. package/vendor/tools/dist/gitignore.d.ts +0 -1
  538. package/vendor/tools/dist/gitignore.js +0 -1
  539. package/vendor/tools/dist/harness-types.d.ts +0 -1
  540. package/vendor/tools/dist/harness-types.js +0 -1
  541. package/vendor/tools/dist/mcp/build-mcp-handle.d.ts +3 -3
  542. package/vendor/tools/dist/mcp/build-mcp-handle.js +3 -3
  543. package/vendor/tools/dist/mcp/create-system-mcp-handles.d.ts +0 -1
  544. package/vendor/tools/dist/mcp/create-system-mcp-handles.js +0 -1
  545. package/vendor/tools/dist/mcp/env-with-shell-com-spec.d.ts +0 -1
  546. package/vendor/tools/dist/mcp/env-with-shell-com-spec.js +0 -1
  547. package/vendor/tools/dist/mcp/format-mcp-connect-error.d.ts +0 -1
  548. package/vendor/tools/dist/mcp/format-mcp-connect-error.js +0 -1
  549. package/vendor/tools/dist/mcp/mcp-client-types.d.ts +0 -1
  550. package/vendor/tools/dist/mcp/mcp-client-types.js +0 -1
  551. package/vendor/tools/dist/mcp/mcp-http-client.d.ts +0 -1
  552. package/vendor/tools/dist/mcp/mcp-http-client.js +0 -1
  553. package/vendor/tools/dist/mcp/mcp-stdio-client.d.ts +0 -1
  554. package/vendor/tools/dist/mcp/mcp-stdio-client.js +0 -1
  555. package/vendor/tools/dist/mcp/mcp-stdio-frame-parser.d.ts +0 -1
  556. package/vendor/tools/dist/mcp/mcp-stdio-frame-parser.js +0 -1
  557. package/vendor/tools/dist/mcp/mcp-tool-id.d.ts +0 -1
  558. package/vendor/tools/dist/mcp/mcp-tool-id.js +0 -1
  559. package/vendor/tools/dist/mcp/require-mcp-server-name.d.ts +0 -1
  560. package/vendor/tools/dist/mcp/require-mcp-server-name.js +0 -1
  561. package/vendor/tools/dist/memory/atomic-write.d.ts +0 -1
  562. package/vendor/tools/dist/memory/atomic-write.js +0 -1
  563. package/vendor/tools/dist/memory/create-memory-store.d.ts +0 -1
  564. package/vendor/tools/dist/memory/create-memory-store.js +0 -1
  565. package/vendor/tools/dist/memory/markdown-sections.d.ts +0 -1
  566. package/vendor/tools/dist/memory/markdown-sections.js +0 -1
  567. package/vendor/tools/dist/memory/memory-paths.d.ts +0 -1
  568. package/vendor/tools/dist/memory/memory-paths.js +0 -1
  569. package/vendor/tools/dist/path-sandbox.d.ts +0 -1
  570. package/vendor/tools/dist/path-sandbox.js +0 -1
  571. package/vendor/tools/dist/permission.d.ts +35 -6
  572. package/vendor/tools/dist/permission.js +100 -8
  573. package/vendor/tools/dist/post-process.d.ts +0 -1
  574. package/vendor/tools/dist/post-process.js +0 -1
  575. package/vendor/tools/dist/ssrf-guard.d.ts +0 -1
  576. package/vendor/tools/dist/ssrf-guard.js +0 -1
  577. package/vendor/websocket-bridge/dist/bridge-codec.d.ts +0 -1
  578. package/vendor/websocket-bridge/dist/bridge-codec.js +0 -1
  579. package/vendor/websocket-bridge/dist/bridge-frame.d.ts +0 -1
  580. package/vendor/websocket-bridge/dist/bridge-frame.js +0 -1
  581. package/vendor/websocket-bridge/dist/bridge-guards.d.ts +0 -1
  582. package/vendor/websocket-bridge/dist/bridge-guards.js +0 -1
  583. package/vendor/websocket-bridge/dist/bridge-subjects.d.ts +0 -1
  584. package/vendor/websocket-bridge/dist/bridge-subjects.js +0 -1
  585. package/vendor/websocket-bridge/dist/bridge-types.d.ts +0 -1
  586. package/vendor/websocket-bridge/dist/bridge-types.js +0 -1
  587. package/vendor/websocket-bridge/dist/create-client.d.ts +0 -1
  588. package/vendor/websocket-bridge/dist/create-client.js +0 -1
  589. package/vendor/websocket-bridge/dist/create-server.d.ts +0 -1
  590. package/vendor/websocket-bridge/dist/create-server.js +0 -1
  591. package/vendor/websocket-bridge/dist/testing/expect-type.d.ts +0 -1
  592. package/vendor/websocket-bridge/dist/testing/expect-type.js +0 -1
  593. package/vendor/websocket-bridge/dist/testing/sample-diagram-ws-config.d.ts +0 -1
  594. package/vendor/websocket-bridge/dist/testing/sample-diagram-ws-config.js +0 -1
  595. package/vendor/websocket-bridge/dist/testing/sample-ping-ws-config.d.ts +0 -1
  596. package/vendor/websocket-bridge/dist/testing/sample-ping-ws-config.js +0 -1
  597. package/vendor/websocket-bridge/dist/testing/transport-test-helpers.d.ts +0 -1
  598. package/vendor/websocket-bridge/dist/testing/transport-test-helpers.js +0 -1
  599. package/dist/cli.d.ts.map +0 -1
  600. package/dist/cli.js.map +0 -1
  601. package/dist/create-fake-skill-case-runner.d.ts.map +0 -1
  602. package/dist/create-fake-skill-case-runner.js.map +0 -1
  603. package/dist/create-fake-skill-case-runner.test.d.ts.map +0 -1
  604. package/dist/create-fake-skill-case-runner.test.js.map +0 -1
  605. package/dist/eval-command.d.ts.map +0 -1
  606. package/dist/eval-command.js.map +0 -1
  607. package/dist/index.d.ts.map +0 -1
  608. package/dist/index.js.map +0 -1
  609. package/dist/start-command.d.ts.map +0 -1
  610. package/dist/start-command.js.map +0 -1
  611. package/dist/start-command.test.d.ts.map +0 -1
  612. package/dist/start-command.test.js.map +0 -1
  613. package/ui-dist/styles-XUCDYOGL.css +0 -1
  614. package/vendor/common-nodes/dist/ai/build-effective-system-prompt.d.ts.map +0 -1
  615. package/vendor/common-nodes/dist/ai/build-effective-system-prompt.js.map +0 -1
  616. package/vendor/common-nodes/dist/ai/chat-completion-stream.d.ts.map +0 -1
  617. package/vendor/common-nodes/dist/ai/chat-completion-stream.js.map +0 -1
  618. package/vendor/common-nodes/dist/ai/chat-input/node.d.ts.map +0 -1
  619. package/vendor/common-nodes/dist/ai/chat-input/node.js.map +0 -1
  620. package/vendor/common-nodes/dist/ai/critique/node.d.ts.map +0 -1
  621. package/vendor/common-nodes/dist/ai/critique/node.js.map +0 -1
  622. package/vendor/common-nodes/dist/ai/define-llm-node/default-llm-ports.d.ts.map +0 -1
  623. package/vendor/common-nodes/dist/ai/define-llm-node/default-llm-ports.js.map +0 -1
  624. package/vendor/common-nodes/dist/ai/define-llm-node/define-llm-node.d.ts.map +0 -1
  625. package/vendor/common-nodes/dist/ai/define-llm-node/define-llm-node.js.map +0 -1
  626. package/vendor/common-nodes/dist/ai/fake-llm/node.d.ts.map +0 -1
  627. package/vendor/common-nodes/dist/ai/fake-llm/node.js.map +0 -1
  628. package/vendor/common-nodes/dist/ai/fake-mcp-server/node.d.ts.map +0 -1
  629. package/vendor/common-nodes/dist/ai/fake-mcp-server/node.js.map +0 -1
  630. package/vendor/common-nodes/dist/ai/fake-tool-registration/node.d.ts.map +0 -1
  631. package/vendor/common-nodes/dist/ai/fake-tool-registration/node.js.map +0 -1
  632. package/vendor/common-nodes/dist/ai/filter-enabled-registrations.d.ts.map +0 -1
  633. package/vendor/common-nodes/dist/ai/filter-enabled-registrations.js.map +0 -1
  634. package/vendor/common-nodes/dist/ai/flatten-mcp-server-configs.d.ts.map +0 -1
  635. package/vendor/common-nodes/dist/ai/flatten-mcp-server-configs.js.map +0 -1
  636. package/vendor/common-nodes/dist/ai/inventory-tool-round.d.ts.map +0 -1
  637. package/vendor/common-nodes/dist/ai/inventory-tool-round.js.map +0 -1
  638. package/vendor/common-nodes/dist/ai/llm-compaction-ui-schema.d.ts.map +0 -1
  639. package/vendor/common-nodes/dist/ai/llm-compaction-ui-schema.js.map +0 -1
  640. package/vendor/common-nodes/dist/ai/llm-loop/classify-llm-failure.d.ts.map +0 -1
  641. package/vendor/common-nodes/dist/ai/llm-loop/classify-llm-failure.js.map +0 -1
  642. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-reducer.d.ts.map +0 -1
  643. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-reducer.js.map +0 -1
  644. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-types.d.ts.map +0 -1
  645. package/vendor/common-nodes/dist/ai/llm-loop/llm-loop-types.js.map +0 -1
  646. package/vendor/common-nodes/dist/ai/llm-loop/normalize-llm-recovery-policy.d.ts.map +0 -1
  647. package/vendor/common-nodes/dist/ai/llm-loop/normalize-llm-recovery-policy.js.map +0 -1
  648. package/vendor/common-nodes/dist/ai/llm-loop/operators/normalize-tool-result.d.ts.map +0 -1
  649. package/vendor/common-nodes/dist/ai/llm-loop/operators/normalize-tool-result.js.map +0 -1
  650. package/vendor/common-nodes/dist/ai/llm-loop/operators/observe-provider-stream.d.ts.map +0 -1
  651. package/vendor/common-nodes/dist/ai/llm-loop/operators/observe-provider-stream.js.map +0 -1
  652. package/vendor/common-nodes/dist/ai/llm-loop/run-agent-loop.d.ts.map +0 -1
  653. package/vendor/common-nodes/dist/ai/llm-loop/run-agent-loop.js.map +0 -1
  654. package/vendor/common-nodes/dist/ai/llm-loop/run-llm-loop.d.ts.map +0 -1
  655. package/vendor/common-nodes/dist/ai/llm-loop/run-llm-loop.js.map +0 -1
  656. package/vendor/common-nodes/dist/ai/llm-panel-ui-schema.d.ts.map +0 -1
  657. package/vendor/common-nodes/dist/ai/llm-panel-ui-schema.js.map +0 -1
  658. package/vendor/common-nodes/dist/ai/llm-recovery-ui-schema.d.ts.map +0 -1
  659. package/vendor/common-nodes/dist/ai/llm-recovery-ui-schema.js.map +0 -1
  660. package/vendor/common-nodes/dist/ai/llm-role-preset.d.ts.map +0 -1
  661. package/vendor/common-nodes/dist/ai/llm-role-preset.js.map +0 -1
  662. package/vendor/common-nodes/dist/ai/llm-session/run-session-machine.d.ts.map +0 -1
  663. package/vendor/common-nodes/dist/ai/llm-session/run-session-machine.js.map +0 -1
  664. package/vendor/common-nodes/dist/ai/llm-session-shell.d.ts.map +0 -1
  665. package/vendor/common-nodes/dist/ai/llm-session-shell.js.map +0 -1
  666. package/vendor/common-nodes/dist/ai/mcp-server/node.d.ts.map +0 -1
  667. package/vendor/common-nodes/dist/ai/mcp-server/node.js.map +0 -1
  668. package/vendor/common-nodes/dist/ai/mcp-server-config.d.ts.map +0 -1
  669. package/vendor/common-nodes/dist/ai/mcp-server-config.js.map +0 -1
  670. package/vendor/common-nodes/dist/ai/mcp-tool-id.d.ts.map +0 -1
  671. package/vendor/common-nodes/dist/ai/mcp-tool-id.js.map +0 -1
  672. package/vendor/common-nodes/dist/ai/merge-tool-inventory.d.ts.map +0 -1
  673. package/vendor/common-nodes/dist/ai/merge-tool-inventory.js.map +0 -1
  674. package/vendor/common-nodes/dist/ai/normalize-max-iterations.d.ts.map +0 -1
  675. package/vendor/common-nodes/dist/ai/normalize-max-iterations.js.map +0 -1
  676. package/vendor/common-nodes/dist/ai/openai/context-length-error.d.ts.map +0 -1
  677. package/vendor/common-nodes/dist/ai/openai/context-length-error.js.map +0 -1
  678. package/vendor/common-nodes/dist/ai/openai/create-chat-completion-stream.d.ts.map +0 -1
  679. package/vendor/common-nodes/dist/ai/openai/create-chat-completion-stream.js.map +0 -1
  680. package/vendor/common-nodes/dist/ai/openai/create-embedding.d.ts.map +0 -1
  681. package/vendor/common-nodes/dist/ai/openai/create-embedding.js.map +0 -1
  682. package/vendor/common-nodes/dist/ai/openai/list-provider-models.d.ts.map +0 -1
  683. package/vendor/common-nodes/dist/ai/openai/list-provider-models.js.map +0 -1
  684. package/vendor/common-nodes/dist/ai/openai/llm-context-compaction.d.ts.map +0 -1
  685. package/vendor/common-nodes/dist/ai/openai/llm-context-compaction.js.map +0 -1
  686. package/vendor/common-nodes/dist/ai/openai/normalize-compaction-params.d.ts.map +0 -1
  687. package/vendor/common-nodes/dist/ai/openai/normalize-compaction-params.js.map +0 -1
  688. package/vendor/common-nodes/dist/ai/openai/prepare-chat-completion.d.ts.map +0 -1
  689. package/vendor/common-nodes/dist/ai/openai/prepare-chat-completion.js.map +0 -1
  690. package/vendor/common-nodes/dist/ai/openai-llm/node.d.ts.map +0 -1
  691. package/vendor/common-nodes/dist/ai/openai-llm/node.js.map +0 -1
  692. package/vendor/common-nodes/dist/ai/path-choice/control-tools.d.ts.map +0 -1
  693. package/vendor/common-nodes/dist/ai/path-choice/control-tools.js.map +0 -1
  694. package/vendor/common-nodes/dist/ai/path-choice/run-path-choice-tool-loop.d.ts.map +0 -1
  695. package/vendor/common-nodes/dist/ai/path-choice/run-path-choice-tool-loop.js.map +0 -1
  696. package/vendor/common-nodes/dist/ai/path-choice/run-reactive-path-choice-loop.d.ts.map +0 -1
  697. package/vendor/common-nodes/dist/ai/path-choice/run-reactive-path-choice-loop.js.map +0 -1
  698. package/vendor/common-nodes/dist/ai/resolve-mcp-inventory.d.ts.map +0 -1
  699. package/vendor/common-nodes/dist/ai/resolve-mcp-inventory.js.map +0 -1
  700. package/vendor/common-nodes/dist/ai/review/node.d.ts.map +0 -1
  701. package/vendor/common-nodes/dist/ai/review/node.js.map +0 -1
  702. package/vendor/common-nodes/dist/ai/review/review-control-tools.d.ts.map +0 -1
  703. package/vendor/common-nodes/dist/ai/review/review-control-tools.js.map +0 -1
  704. package/vendor/common-nodes/dist/ai/review/run-review-tool-loop.d.ts.map +0 -1
  705. package/vendor/common-nodes/dist/ai/review/run-review-tool-loop.js.map +0 -1
  706. package/vendor/common-nodes/dist/ai/run-host-services.d.ts.map +0 -1
  707. package/vendor/common-nodes/dist/ai/run-host-services.js.map +0 -1
  708. package/vendor/common-nodes/dist/ai/run-internal-tool-loop.d.ts.map +0 -1
  709. package/vendor/common-nodes/dist/ai/run-internal-tool-loop.js.map +0 -1
  710. package/vendor/common-nodes/dist/ai/scripted-chat-completion-stream.d.ts.map +0 -1
  711. package/vendor/common-nodes/dist/ai/scripted-chat-completion-stream.js.map +0 -1
  712. package/vendor/common-nodes/dist/ai/sub-agent/node.d.ts.map +0 -1
  713. package/vendor/common-nodes/dist/ai/sub-agent/node.js.map +0 -1
  714. package/vendor/common-nodes/dist/ai/sub-agent-protocol.d.ts.map +0 -1
  715. package/vendor/common-nodes/dist/ai/sub-agent-protocol.js.map +0 -1
  716. package/vendor/common-nodes/dist/ai/tool-handler-context.d.ts.map +0 -1
  717. package/vendor/common-nodes/dist/ai/tool-handler-context.js.map +0 -1
  718. package/vendor/common-nodes/dist/ai/tool-registration.d.ts.map +0 -1
  719. package/vendor/common-nodes/dist/ai/tool-registration.js.map +0 -1
  720. package/vendor/common-nodes/dist/ai/wait-for-subagent-result.d.ts.map +0 -1
  721. package/vendor/common-nodes/dist/ai/wait-for-subagent-result.js.map +0 -1
  722. package/vendor/common-nodes/dist/catalog.d.ts.map +0 -1
  723. package/vendor/common-nodes/dist/catalog.js.map +0 -1
  724. package/vendor/common-nodes/dist/crawl/crawl/node.d.ts.map +0 -1
  725. package/vendor/common-nodes/dist/crawl/crawl/node.js.map +0 -1
  726. package/vendor/common-nodes/dist/crawl/crawl-tools/node.d.ts.map +0 -1
  727. package/vendor/common-nodes/dist/crawl/crawl-tools/node.js.map +0 -1
  728. package/vendor/common-nodes/dist/crawl/extract-links/node.d.ts.map +0 -1
  729. package/vendor/common-nodes/dist/crawl/extract-links/node.js.map +0 -1
  730. package/vendor/common-nodes/dist/crawl/fetch-url/node.d.ts.map +0 -1
  731. package/vendor/common-nodes/dist/crawl/fetch-url/node.js.map +0 -1
  732. package/vendor/common-nodes/dist/crawl/html/extract-links.d.ts.map +0 -1
  733. package/vendor/common-nodes/dist/crawl/html/extract-links.js.map +0 -1
  734. package/vendor/common-nodes/dist/crawl/html/html-to-text.d.ts.map +0 -1
  735. package/vendor/common-nodes/dist/crawl/html/html-to-text.js.map +0 -1
  736. package/vendor/common-nodes/dist/crawl/html/index.d.ts.map +0 -1
  737. package/vendor/common-nodes/dist/crawl/html/index.js.map +0 -1
  738. package/vendor/common-nodes/dist/crawl/save-page/node.d.ts.map +0 -1
  739. package/vendor/common-nodes/dist/crawl/save-page/node.js.map +0 -1
  740. package/vendor/common-nodes/dist/crawl/tool-defs.d.ts.map +0 -1
  741. package/vendor/common-nodes/dist/crawl/tool-defs.js.map +0 -1
  742. package/vendor/common-nodes/dist/flow/checkpoint/node.d.ts.map +0 -1
  743. package/vendor/common-nodes/dist/flow/checkpoint/node.js.map +0 -1
  744. package/vendor/common-nodes/dist/flow/delay/node.d.ts.map +0 -1
  745. package/vendor/common-nodes/dist/flow/delay/node.js.map +0 -1
  746. package/vendor/common-nodes/dist/flow/loop/node.d.ts.map +0 -1
  747. package/vendor/common-nodes/dist/flow/loop/node.js.map +0 -1
  748. package/vendor/common-nodes/dist/flow/map-collect-body.d.ts.map +0 -1
  749. package/vendor/common-nodes/dist/flow/map-collect-body.js.map +0 -1
  750. package/vendor/common-nodes/dist/flow/merge/node.d.ts.map +0 -1
  751. package/vendor/common-nodes/dist/flow/merge/node.js.map +0 -1
  752. package/vendor/common-nodes/dist/flow/repeat/node.d.ts.map +0 -1
  753. package/vendor/common-nodes/dist/flow/repeat/node.js.map +0 -1
  754. package/vendor/common-nodes/dist/flow/router/build-router-definition.d.ts.map +0 -1
  755. package/vendor/common-nodes/dist/flow/router/build-router-definition.js.map +0 -1
  756. package/vendor/common-nodes/dist/flow/router/node.d.ts.map +0 -1
  757. package/vendor/common-nodes/dist/flow/router/node.js.map +0 -1
  758. package/vendor/common-nodes/dist/flow/router/router-constants.d.ts.map +0 -1
  759. package/vendor/common-nodes/dist/flow/router/router-constants.js.map +0 -1
  760. package/vendor/common-nodes/dist/hitl/approval-choice/node.d.ts.map +0 -1
  761. package/vendor/common-nodes/dist/hitl/approval-choice/node.js.map +0 -1
  762. package/vendor/common-nodes/dist/hitl/ask-user/node.d.ts.map +0 -1
  763. package/vendor/common-nodes/dist/hitl/ask-user/node.js.map +0 -1
  764. package/vendor/common-nodes/dist/hitl/chat-input/node.d.ts.map +0 -1
  765. package/vendor/common-nodes/dist/hitl/chat-input/node.js.map +0 -1
  766. package/vendor/common-nodes/dist/hitl/hitl-required-role.d.ts.map +0 -1
  767. package/vendor/common-nodes/dist/hitl/hitl-required-role.js.map +0 -1
  768. package/vendor/common-nodes/dist/hitl/review-gate/node.d.ts.map +0 -1
  769. package/vendor/common-nodes/dist/hitl/review-gate/node.js.map +0 -1
  770. package/vendor/common-nodes/dist/kb/chunk-text.d.ts.map +0 -1
  771. package/vendor/common-nodes/dist/kb/chunk-text.js.map +0 -1
  772. package/vendor/common-nodes/dist/kb/cosine.d.ts.map +0 -1
  773. package/vendor/common-nodes/dist/kb/cosine.js.map +0 -1
  774. package/vendor/common-nodes/dist/kb/kb-apply-curation/node.d.ts.map +0 -1
  775. package/vendor/common-nodes/dist/kb/kb-apply-curation/node.js.map +0 -1
  776. package/vendor/common-nodes/dist/kb/kb-contradict/node.d.ts.map +0 -1
  777. package/vendor/common-nodes/dist/kb/kb-contradict/node.js.map +0 -1
  778. package/vendor/common-nodes/dist/kb/kb-dedupe/node.d.ts.map +0 -1
  779. package/vendor/common-nodes/dist/kb/kb-dedupe/node.js.map +0 -1
  780. package/vendor/common-nodes/dist/kb/kb-delete/node.d.ts.map +0 -1
  781. package/vendor/common-nodes/dist/kb/kb-delete/node.js.map +0 -1
  782. package/vendor/common-nodes/dist/kb/kb-embed/node.d.ts.map +0 -1
  783. package/vendor/common-nodes/dist/kb/kb-embed/node.js.map +0 -1
  784. package/vendor/common-nodes/dist/kb/kb-ingest/node.d.ts.map +0 -1
  785. package/vendor/common-nodes/dist/kb/kb-ingest/node.js.map +0 -1
  786. package/vendor/common-nodes/dist/kb/kb-list/node.d.ts.map +0 -1
  787. package/vendor/common-nodes/dist/kb/kb-list/node.js.map +0 -1
  788. package/vendor/common-nodes/dist/kb/kb-paths.d.ts.map +0 -1
  789. package/vendor/common-nodes/dist/kb/kb-paths.js.map +0 -1
  790. package/vendor/common-nodes/dist/kb/kb-search/node.d.ts.map +0 -1
  791. package/vendor/common-nodes/dist/kb/kb-search/node.js.map +0 -1
  792. package/vendor/common-nodes/dist/kb/kb-store.d.ts.map +0 -1
  793. package/vendor/common-nodes/dist/kb/kb-store.js.map +0 -1
  794. package/vendor/common-nodes/dist/kb/kb-tools/node.d.ts.map +0 -1
  795. package/vendor/common-nodes/dist/kb/kb-tools/node.js.map +0 -1
  796. package/vendor/common-nodes/dist/kb/local-embed.d.ts.map +0 -1
  797. package/vendor/common-nodes/dist/kb/local-embed.js.map +0 -1
  798. package/vendor/common-nodes/dist/kb/parse-string-list.d.ts.map +0 -1
  799. package/vendor/common-nodes/dist/kb/parse-string-list.js.map +0 -1
  800. package/vendor/common-nodes/dist/kb/tool-defs.d.ts.map +0 -1
  801. package/vendor/common-nodes/dist/kb/tool-defs.js.map +0 -1
  802. package/vendor/common-nodes/dist/logic/assert/node.d.ts.map +0 -1
  803. package/vendor/common-nodes/dist/logic/assert/node.js.map +0 -1
  804. package/vendor/common-nodes/dist/logic/compare/evaluate-compare.d.ts.map +0 -1
  805. package/vendor/common-nodes/dist/logic/compare/evaluate-compare.js.map +0 -1
  806. package/vendor/common-nodes/dist/logic/compare/node.d.ts.map +0 -1
  807. package/vendor/common-nodes/dist/logic/compare/node.js.map +0 -1
  808. package/vendor/common-nodes/dist/logic/gate/node.d.ts.map +0 -1
  809. package/vendor/common-nodes/dist/logic/gate/node.js.map +0 -1
  810. package/vendor/common-nodes/dist/logic/if/node.d.ts.map +0 -1
  811. package/vendor/common-nodes/dist/logic/if/node.js.map +0 -1
  812. package/vendor/common-nodes/dist/logic/switch/build-switch-definition.d.ts.map +0 -1
  813. package/vendor/common-nodes/dist/logic/switch/build-switch-definition.js.map +0 -1
  814. package/vendor/common-nodes/dist/logic/switch/node.d.ts.map +0 -1
  815. package/vendor/common-nodes/dist/logic/switch/node.js.map +0 -1
  816. package/vendor/common-nodes/dist/logic/switch/switch-constants.d.ts.map +0 -1
  817. package/vendor/common-nodes/dist/logic/switch/switch-constants.js.map +0 -1
  818. package/vendor/common-nodes/dist/logic/switch/switch-rules.d.ts.map +0 -1
  819. package/vendor/common-nodes/dist/logic/switch/switch-rules.js.map +0 -1
  820. package/vendor/common-nodes/dist/mcp/build-mcp-handle.d.ts.map +0 -1
  821. package/vendor/common-nodes/dist/mcp/build-mcp-handle.js.map +0 -1
  822. package/vendor/common-nodes/dist/mcp/build-mcp-transport.d.ts.map +0 -1
  823. package/vendor/common-nodes/dist/mcp/build-mcp-transport.js.map +0 -1
  824. package/vendor/common-nodes/dist/mcp/collect-mcp-tool-registrations.d.ts.map +0 -1
  825. package/vendor/common-nodes/dist/mcp/collect-mcp-tool-registrations.js.map +0 -1
  826. package/vendor/common-nodes/dist/mcp/create-system-mcp-transports.d.ts.map +0 -1
  827. package/vendor/common-nodes/dist/mcp/create-system-mcp-transports.js.map +0 -1
  828. package/vendor/common-nodes/dist/mcp/flatten-mcp-handles.d.ts.map +0 -1
  829. package/vendor/common-nodes/dist/mcp/flatten-mcp-handles.js.map +0 -1
  830. package/vendor/common-nodes/dist/mcp/flatten-mcp-server-configs.d.ts.map +0 -1
  831. package/vendor/common-nodes/dist/mcp/flatten-mcp-server-configs.js.map +0 -1
  832. package/vendor/common-nodes/dist/mcp/flatten-mcp-transports.d.ts.map +0 -1
  833. package/vendor/common-nodes/dist/mcp/flatten-mcp-transports.js.map +0 -1
  834. package/vendor/common-nodes/dist/mcp/format-mcp-connect-error.d.ts.map +0 -1
  835. package/vendor/common-nodes/dist/mcp/format-mcp-connect-error.js.map +0 -1
  836. package/vendor/common-nodes/dist/mcp/mcp-http/node.d.ts.map +0 -1
  837. package/vendor/common-nodes/dist/mcp/mcp-http/node.js.map +0 -1
  838. package/vendor/common-nodes/dist/mcp/mcp-server/node.d.ts.map +0 -1
  839. package/vendor/common-nodes/dist/mcp/mcp-server/node.js.map +0 -1
  840. package/vendor/common-nodes/dist/mcp/mcp-server-config.d.ts.map +0 -1
  841. package/vendor/common-nodes/dist/mcp/mcp-server-config.js.map +0 -1
  842. package/vendor/common-nodes/dist/mcp/mcp-stdio/node.d.ts.map +0 -1
  843. package/vendor/common-nodes/dist/mcp/mcp-stdio/node.js.map +0 -1
  844. package/vendor/common-nodes/dist/mcp/resolve-agent-mcp-inventory.d.ts.map +0 -1
  845. package/vendor/common-nodes/dist/mcp/resolve-agent-mcp-inventory.js.map +0 -1
  846. package/vendor/common-nodes/dist/mcp/resolve-mcp-inventory.d.ts.map +0 -1
  847. package/vendor/common-nodes/dist/mcp/resolve-mcp-inventory.js.map +0 -1
  848. package/vendor/common-nodes/dist/memory/memory/node.d.ts.map +0 -1
  849. package/vendor/common-nodes/dist/memory/memory/node.js.map +0 -1
  850. package/vendor/common-nodes/dist/memory/memory-tools/node.d.ts.map +0 -1
  851. package/vendor/common-nodes/dist/memory/memory-tools/node.js.map +0 -1
  852. package/vendor/common-nodes/dist/memory/tool-defs.d.ts.map +0 -1
  853. package/vendor/common-nodes/dist/memory/tool-defs.js.map +0 -1
  854. package/vendor/common-nodes/dist/obsidian/build-moc/node.d.ts.map +0 -1
  855. package/vendor/common-nodes/dist/obsidian/build-moc/node.js.map +0 -1
  856. package/vendor/common-nodes/dist/obsidian/build-moc.d.ts.map +0 -1
  857. package/vendor/common-nodes/dist/obsidian/build-moc.js.map +0 -1
  858. package/vendor/common-nodes/dist/obsidian/frontmatter/node.d.ts.map +0 -1
  859. package/vendor/common-nodes/dist/obsidian/frontmatter/node.js.map +0 -1
  860. package/vendor/common-nodes/dist/obsidian/frontmatter.d.ts.map +0 -1
  861. package/vendor/common-nodes/dist/obsidian/frontmatter.js.map +0 -1
  862. package/vendor/common-nodes/dist/obsidian/wikilink-rewrite/node.d.ts.map +0 -1
  863. package/vendor/common-nodes/dist/obsidian/wikilink-rewrite/node.js.map +0 -1
  864. package/vendor/common-nodes/dist/obsidian/wikilinks.d.ts.map +0 -1
  865. package/vendor/common-nodes/dist/obsidian/wikilinks.js.map +0 -1
  866. package/vendor/common-nodes/dist/output/finish/node.d.ts.map +0 -1
  867. package/vendor/common-nodes/dist/output/finish/node.js.map +0 -1
  868. package/vendor/common-nodes/dist/output/preview/node.d.ts.map +0 -1
  869. package/vendor/common-nodes/dist/output/preview/node.js.map +0 -1
  870. package/vendor/common-nodes/dist/primitives/boolean/node.d.ts.map +0 -1
  871. package/vendor/common-nodes/dist/primitives/boolean/node.js.map +0 -1
  872. package/vendor/common-nodes/dist/primitives/number/node.d.ts.map +0 -1
  873. package/vendor/common-nodes/dist/primitives/number/node.js.map +0 -1
  874. package/vendor/common-nodes/dist/primitives/string/node.d.ts.map +0 -1
  875. package/vendor/common-nodes/dist/primitives/string/node.js.map +0 -1
  876. package/vendor/common-nodes/dist/resolve-workflow-node-definition.d.ts.map +0 -1
  877. package/vendor/common-nodes/dist/resolve-workflow-node-definition.js.map +0 -1
  878. package/vendor/common-nodes/dist/text/append-file/node.d.ts.map +0 -1
  879. package/vendor/common-nodes/dist/text/append-file/node.js.map +0 -1
  880. package/vendor/common-nodes/dist/text/concat/node.d.ts.map +0 -1
  881. package/vendor/common-nodes/dist/text/concat/node.js.map +0 -1
  882. package/vendor/common-nodes/dist/text/read-file/node.d.ts.map +0 -1
  883. package/vendor/common-nodes/dist/text/read-file/node.js.map +0 -1
  884. package/vendor/common-nodes/dist/text/write-file/node.d.ts.map +0 -1
  885. package/vendor/common-nodes/dist/text/write-file/node.js.map +0 -1
  886. package/vendor/common-nodes/dist/tools/collect-agent-tool-handles.d.ts.map +0 -1
  887. package/vendor/common-nodes/dist/tools/collect-agent-tool-handles.js.map +0 -1
  888. package/vendor/common-nodes/dist/tools/filter-enabled-registrations.d.ts.map +0 -1
  889. package/vendor/common-nodes/dist/tools/filter-enabled-registrations.js.map +0 -1
  890. package/vendor/common-nodes/dist/tools/inventory-tool-round.d.ts.map +0 -1
  891. package/vendor/common-nodes/dist/tools/inventory-tool-round.js.map +0 -1
  892. package/vendor/common-nodes/dist/tools/merge-tool-inventory.d.ts.map +0 -1
  893. package/vendor/common-nodes/dist/tools/merge-tool-inventory.js.map +0 -1
  894. package/vendor/common-nodes/dist/tools/run-internal-tool-loop.d.ts.map +0 -1
  895. package/vendor/common-nodes/dist/tools/run-internal-tool-loop.js.map +0 -1
  896. package/vendor/common-nodes/dist/tools/tool-registration.d.ts.map +0 -1
  897. package/vendor/common-nodes/dist/tools/tool-registration.js.map +0 -1
  898. package/vendor/compiler/dist/bundle-pack.d.ts.map +0 -1
  899. package/vendor/compiler/dist/bundle-pack.js.map +0 -1
  900. package/vendor/compiler/dist/cache-key.d.ts.map +0 -1
  901. package/vendor/compiler/dist/cache-key.js.map +0 -1
  902. package/vendor/compiler/dist/compile-project-nodes.d.ts.map +0 -1
  903. package/vendor/compiler/dist/compile-project-nodes.js.map +0 -1
  904. package/vendor/compiler/dist/compile-types.d.ts.map +0 -1
  905. package/vendor/compiler/dist/compile-types.js.map +0 -1
  906. package/vendor/compiler/dist/discover-packs.d.ts.map +0 -1
  907. package/vendor/compiler/dist/discover-packs.js.map +0 -1
  908. package/vendor/compiler/dist/format-compilation-errors.d.ts.map +0 -1
  909. package/vendor/compiler/dist/format-compilation-errors.js.map +0 -1
  910. package/vendor/compiler/dist/resolve-host-types.d.ts.map +0 -1
  911. package/vendor/compiler/dist/resolve-host-types.js.map +0 -1
  912. package/vendor/compiler/dist/typecheck-pack.d.ts.map +0 -1
  913. package/vendor/compiler/dist/typecheck-pack.js.map +0 -1
  914. package/vendor/compiler/dist/validate-default-export.d.ts.map +0 -1
  915. package/vendor/compiler/dist/validate-default-export.js.map +0 -1
  916. package/vendor/compiler/dist/write-compilation-errors.d.ts.map +0 -1
  917. package/vendor/compiler/dist/write-compilation-errors.js.map +0 -1
  918. package/vendor/eval/dist/eval-pack-types.d.ts.map +0 -1
  919. package/vendor/eval/dist/eval-pack-types.js.map +0 -1
  920. package/vendor/eval/dist/load-pack.d.ts.map +0 -1
  921. package/vendor/eval/dist/load-pack.js.map +0 -1
  922. package/vendor/eval/dist/load-skill-via-read.d.ts.map +0 -1
  923. package/vendor/eval/dist/load-skill-via-read.js.map +0 -1
  924. package/vendor/eval/dist/run-eval-suite.d.ts.map +0 -1
  925. package/vendor/eval/dist/run-eval-suite.js.map +0 -1
  926. package/vendor/eval/dist/score-case.d.ts.map +0 -1
  927. package/vendor/eval/dist/score-case.js.map +0 -1
  928. package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.d.ts.map +0 -1
  929. package/vendor/node-sdk/dist/node-factory/define-llm-node/default-llm-ports.js.map +0 -1
  930. package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.d.ts.map +0 -1
  931. package/vendor/node-sdk/dist/node-factory/define-llm-node/define-llm-node.js.map +0 -1
  932. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.d.ts.map +0 -1
  933. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm-inventory-wire.js.map +0 -1
  934. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm.d.ts.map +0 -1
  935. package/vendor/node-sdk/dist/node-factory/define-llm-node/llm.js.map +0 -1
  936. package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.d.ts.map +0 -1
  937. package/vendor/node-sdk/dist/node-factory/define-llm-node/recovery-notice.js.map +0 -1
  938. package/vendor/node-sdk/dist/node-factory/define-llm-node/steer-control.d.ts.map +0 -1
  939. package/vendor/node-sdk/dist/node-factory/define-llm-node/steer-control.js.map +0 -1
  940. package/vendor/node-sdk/dist/node-factory/define-mcp/define-mcp.d.ts.map +0 -1
  941. package/vendor/node-sdk/dist/node-factory/define-mcp/define-mcp.js.map +0 -1
  942. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.d.ts.map +0 -1
  943. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-handle.js.map +0 -1
  944. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-server-config.d.ts.map +0 -1
  945. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-server-config.js.map +0 -1
  946. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-transport.d.ts.map +0 -1
  947. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp-transport.js.map +0 -1
  948. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp.d.ts.map +0 -1
  949. package/vendor/node-sdk/dist/node-factory/define-mcp/mcp.js.map +0 -1
  950. package/vendor/node-sdk/dist/node-factory/define-node/define-node.d.ts.map +0 -1
  951. package/vendor/node-sdk/dist/node-factory/define-node/define-node.js.map +0 -1
  952. package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.d.ts.map +0 -1
  953. package/vendor/node-sdk/dist/node-factory/define-node/test/samples/gate-node.js.map +0 -1
  954. package/vendor/node-sdk/dist/node-factory/define-reactive-node/chat-completion-stream.d.ts.map +0 -1
  955. package/vendor/node-sdk/dist/node-factory/define-reactive-node/chat-completion-stream.js.map +0 -1
  956. package/vendor/node-sdk/dist/node-factory/define-reactive-node/crawl-context.d.ts.map +0 -1
  957. package/vendor/node-sdk/dist/node-factory/define-reactive-node/crawl-context.js.map +0 -1
  958. package/vendor/node-sdk/dist/node-factory/define-reactive-node/create-embedding.d.ts.map +0 -1
  959. package/vendor/node-sdk/dist/node-factory/define-reactive-node/create-embedding.js.map +0 -1
  960. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ctx-error.d.ts.map +0 -1
  961. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ctx-error.js.map +0 -1
  962. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.d.ts.map +0 -1
  963. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-reactive-node.js.map +0 -1
  964. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-tool-registrations.d.ts.map +0 -1
  965. package/vendor/node-sdk/dist/node-factory/define-reactive-node/define-tool-registrations.js.map +0 -1
  966. package/vendor/node-sdk/dist/node-factory/define-reactive-node/hitl-config.d.ts.map +0 -1
  967. package/vendor/node-sdk/dist/node-factory/define-reactive-node/hitl-config.js.map +0 -1
  968. package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.d.ts.map +0 -1
  969. package/vendor/node-sdk/dist/node-factory/define-reactive-node/io-helpers.js.map +0 -1
  970. package/vendor/node-sdk/dist/node-factory/define-reactive-node/kb-context.d.ts.map +0 -1
  971. package/vendor/node-sdk/dist/node-factory/define-reactive-node/kb-context.js.map +0 -1
  972. package/vendor/node-sdk/dist/node-factory/define-reactive-node/memory-context.d.ts.map +0 -1
  973. package/vendor/node-sdk/dist/node-factory/define-reactive-node/memory-context.js.map +0 -1
  974. package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.d.ts.map +0 -1
  975. package/vendor/node-sdk/dist/node-factory/define-reactive-node/port-meta.js.map +0 -1
  976. package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-files-context.d.ts.map +0 -1
  977. package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-files-context.js.map +0 -1
  978. package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-harness.d.ts.map +0 -1
  979. package/vendor/node-sdk/dist/node-factory/define-reactive-node/project-harness.js.map +0 -1
  980. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.d.ts.map +0 -1
  981. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/agent-node.js.map +0 -1
  982. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.d.ts.map +0 -1
  983. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/combine-node.js.map +0 -1
  984. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.d.ts.map +0 -1
  985. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/constant-node.js.map +0 -1
  986. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.d.ts.map +0 -1
  987. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/delay-node.js.map +0 -1
  988. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.d.ts.map +0 -1
  989. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/finish-node.js.map +0 -1
  990. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.d.ts.map +0 -1
  991. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/hitl-node.js.map +0 -1
  992. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.d.ts.map +0 -1
  993. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/join-node.js.map +0 -1
  994. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.d.ts.map +0 -1
  995. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/preview-node.js.map +0 -1
  996. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.d.ts.map +0 -1
  997. package/vendor/node-sdk/dist/node-factory/define-reactive-node/test/samples/router-node.js.map +0 -1
  998. package/vendor/node-sdk/dist/node-factory/define-reactive-node/tool-registration.d.ts.map +0 -1
  999. package/vendor/node-sdk/dist/node-factory/define-reactive-node/tool-registration.js.map +0 -1
  1000. package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.d.ts.map +0 -1
  1001. package/vendor/node-sdk/dist/node-factory/define-reactive-node/types.js.map +0 -1
  1002. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.d.ts.map +0 -1
  1003. package/vendor/node-sdk/dist/node-factory/define-reactive-node/ui-schema-inference.js.map +0 -1
  1004. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.d.ts.map +0 -1
  1005. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/define-tool-registrations.js.map +0 -1
  1006. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-handle.d.ts.map +0 -1
  1007. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-handle.js.map +0 -1
  1008. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-registration.d.ts.map +0 -1
  1009. package/vendor/node-sdk/dist/node-factory/define-tool-registrations/tool-registration.js.map +0 -1
  1010. package/vendor/runtime/dist/bypass-ports.d.ts.map +0 -1
  1011. package/vendor/runtime/dist/bypass-ports.js.map +0 -1
  1012. package/vendor/runtime/dist/normalize-port-error-value.d.ts.map +0 -1
  1013. package/vendor/runtime/dist/normalize-port-error-value.js.map +0 -1
  1014. package/vendor/runtime/dist/port-meta.d.ts.map +0 -1
  1015. package/vendor/runtime/dist/port-meta.js.map +0 -1
  1016. package/vendor/runtime/dist/runtime-editor.d.ts.map +0 -1
  1017. package/vendor/runtime/dist/runtime-editor.js.map +0 -1
  1018. package/vendor/runtime/dist/runtime-helpers.d.ts.map +0 -1
  1019. package/vendor/runtime/dist/runtime-helpers.js.map +0 -1
  1020. package/vendor/runtime/dist/runtime-runner.d.ts.map +0 -1
  1021. package/vendor/runtime/dist/runtime-runner.js.map +0 -1
  1022. package/vendor/runtime/dist/runtime.d.ts.map +0 -1
  1023. package/vendor/runtime/dist/runtime.js.map +0 -1
  1024. package/vendor/runtime/dist/testing/nodes/agent-node.d.ts.map +0 -1
  1025. package/vendor/runtime/dist/testing/nodes/agent-node.js.map +0 -1
  1026. package/vendor/runtime/dist/testing/nodes/combine-node.d.ts.map +0 -1
  1027. package/vendor/runtime/dist/testing/nodes/combine-node.js.map +0 -1
  1028. package/vendor/runtime/dist/testing/nodes/constant-node.d.ts.map +0 -1
  1029. package/vendor/runtime/dist/testing/nodes/constant-node.js.map +0 -1
  1030. package/vendor/runtime/dist/testing/nodes/delay-node.d.ts.map +0 -1
  1031. package/vendor/runtime/dist/testing/nodes/delay-node.js.map +0 -1
  1032. package/vendor/runtime/dist/testing/nodes/finish-node.d.ts.map +0 -1
  1033. package/vendor/runtime/dist/testing/nodes/finish-node.js.map +0 -1
  1034. package/vendor/runtime/dist/testing/nodes/hitl-node.d.ts.map +0 -1
  1035. package/vendor/runtime/dist/testing/nodes/hitl-node.js.map +0 -1
  1036. package/vendor/runtime/dist/testing/nodes/join-node.d.ts.map +0 -1
  1037. package/vendor/runtime/dist/testing/nodes/join-node.js.map +0 -1
  1038. package/vendor/runtime/dist/testing/nodes/merge-node.d.ts.map +0 -1
  1039. package/vendor/runtime/dist/testing/nodes/merge-node.js.map +0 -1
  1040. package/vendor/runtime/dist/testing/nodes/preview-node.d.ts.map +0 -1
  1041. package/vendor/runtime/dist/testing/nodes/preview-node.js.map +0 -1
  1042. package/vendor/runtime/dist/testing/nodes/pushable-node.d.ts.map +0 -1
  1043. package/vendor/runtime/dist/testing/nodes/pushable-node.js.map +0 -1
  1044. package/vendor/runtime/dist/testing/nodes/router-node.d.ts.map +0 -1
  1045. package/vendor/runtime/dist/testing/nodes/router-node.js.map +0 -1
  1046. package/vendor/runtime/dist/testing/readOutputValue.d.ts.map +0 -1
  1047. package/vendor/runtime/dist/testing/readOutputValue.js.map +0 -1
  1048. package/vendor/runtime/dist/testing/workflows/workflow-events.d.ts.map +0 -1
  1049. package/vendor/runtime/dist/testing/workflows/workflow-events.js.map +0 -1
  1050. package/vendor/runtime/dist/types.d.ts.map +0 -1
  1051. package/vendor/runtime/dist/types.js.map +0 -1
  1052. package/vendor/server/dist/bootstrap/copy-force.d.ts.map +0 -1
  1053. package/vendor/server/dist/bootstrap/copy-force.js.map +0 -1
  1054. package/vendor/server/dist/bootstrap/copy-if-missing.d.ts.map +0 -1
  1055. package/vendor/server/dist/bootstrap/copy-if-missing.js.map +0 -1
  1056. package/vendor/server/dist/bootstrap/project-bootstrap.service.d.ts.map +0 -1
  1057. package/vendor/server/dist/bootstrap/project-bootstrap.service.js.map +0 -1
  1058. package/vendor/server/dist/bootstrap/project-bootstrap.service.test.d.ts.map +0 -1
  1059. package/vendor/server/dist/bootstrap/project-bootstrap.service.test.js.map +0 -1
  1060. package/vendor/server/dist/bootstrap/resolve-skeleton-root.d.ts.map +0 -1
  1061. package/vendor/server/dist/bootstrap/resolve-skeleton-root.js.map +0 -1
  1062. package/vendor/server/dist/bootstrap/seed-skeleton.d.ts.map +0 -1
  1063. package/vendor/server/dist/bootstrap/seed-skeleton.js.map +0 -1
  1064. package/vendor/server/dist/bridge/attach-langflower-bridge.d.ts.map +0 -1
  1065. package/vendor/server/dist/bridge/attach-langflower-bridge.js.map +0 -1
  1066. package/vendor/server/dist/bridge/bind-llm-context.d.ts.map +0 -1
  1067. package/vendor/server/dist/bridge/bind-llm-context.js.map +0 -1
  1068. package/vendor/server/dist/bridge/bridge-outbound.d.ts.map +0 -1
  1069. package/vendor/server/dist/bridge/bridge-outbound.js.map +0 -1
  1070. package/vendor/server/dist/bridge/build-execution-context.d.ts.map +0 -1
  1071. package/vendor/server/dist/bridge/build-execution-context.js.map +0 -1
  1072. package/vendor/server/dist/bridge/build-execution-context.test.d.ts.map +0 -1
  1073. package/vendor/server/dist/bridge/build-execution-context.test.js.map +0 -1
  1074. package/vendor/server/dist/bridge/build-langflower-config-snapshot.d.ts.map +0 -1
  1075. package/vendor/server/dist/bridge/build-langflower-config-snapshot.js.map +0 -1
  1076. package/vendor/server/dist/bridge/client-index.d.ts.map +0 -1
  1077. package/vendor/server/dist/bridge/client-index.js.map +0 -1
  1078. package/vendor/server/dist/bridge/emit-bootstrap.d.ts.map +0 -1
  1079. package/vendor/server/dist/bridge/emit-bootstrap.js.map +0 -1
  1080. package/vendor/server/dist/bridge/forward-runner-event.d.ts.map +0 -1
  1081. package/vendor/server/dist/bridge/forward-runner-event.js.map +0 -1
  1082. package/vendor/server/dist/bridge/forward-runner-event.test.d.ts.map +0 -1
  1083. package/vendor/server/dist/bridge/forward-runner-event.test.js.map +0 -1
  1084. package/vendor/server/dist/bridge/inbound-guards.d.ts.map +0 -1
  1085. package/vendor/server/dist/bridge/inbound-guards.js.map +0 -1
  1086. package/vendor/server/dist/bridge/langflower-bridge.types.d.ts.map +0 -1
  1087. package/vendor/server/dist/bridge/langflower-bridge.types.js.map +0 -1
  1088. package/vendor/server/dist/bridge/push-models-catalog.d.ts.map +0 -1
  1089. package/vendor/server/dist/bridge/push-models-catalog.js.map +0 -1
  1090. package/vendor/server/dist/bridge/same-canvas-viewport.d.ts.map +0 -1
  1091. package/vendor/server/dist/bridge/same-canvas-viewport.js.map +0 -1
  1092. package/vendor/server/dist/bridge/wire-config-handlers.d.ts.map +0 -1
  1093. package/vendor/server/dist/bridge/wire-config-handlers.js.map +0 -1
  1094. package/vendor/server/dist/bridge/wire-custom-palette-handlers.d.ts.map +0 -1
  1095. package/vendor/server/dist/bridge/wire-custom-palette-handlers.js.map +0 -1
  1096. package/vendor/server/dist/bridge/wire-editor-handlers.d.ts.map +0 -1
  1097. package/vendor/server/dist/bridge/wire-editor-handlers.js.map +0 -1
  1098. package/vendor/server/dist/bridge/wire-models-handlers.d.ts.map +0 -1
  1099. package/vendor/server/dist/bridge/wire-models-handlers.js.map +0 -1
  1100. package/vendor/server/dist/bridge/wire-palette-handlers.d.ts.map +0 -1
  1101. package/vendor/server/dist/bridge/wire-palette-handlers.js.map +0 -1
  1102. package/vendor/server/dist/bridge/wire-project-bootstrap-handlers.d.ts.map +0 -1
  1103. package/vendor/server/dist/bridge/wire-project-bootstrap-handlers.js.map +0 -1
  1104. package/vendor/server/dist/bridge/wire-runner-handlers.d.ts.map +0 -1
  1105. package/vendor/server/dist/bridge/wire-runner-handlers.js.map +0 -1
  1106. package/vendor/server/dist/bridge/wire-workflow-handlers.d.ts.map +0 -1
  1107. package/vendor/server/dist/bridge/wire-workflow-handlers.js.map +0 -1
  1108. package/vendor/server/dist/bridge/wrap-builtin-tool-handles.d.ts.map +0 -1
  1109. package/vendor/server/dist/bridge/wrap-builtin-tool-handles.js.map +0 -1
  1110. package/vendor/server/dist/checkpoint/list-resumable-checkpoints.d.ts.map +0 -1
  1111. package/vendor/server/dist/checkpoint/list-resumable-checkpoints.js.map +0 -1
  1112. package/vendor/server/dist/checkpoint/resolve-checkpoint-boundary.d.ts.map +0 -1
  1113. package/vendor/server/dist/checkpoint/resolve-checkpoint-boundary.js.map +0 -1
  1114. package/vendor/server/dist/checkpoint/run-checkpoint-session.d.ts.map +0 -1
  1115. package/vendor/server/dist/checkpoint/run-checkpoint-session.js.map +0 -1
  1116. package/vendor/server/dist/checkpoint/workflow-checkpoint-store.d.ts.map +0 -1
  1117. package/vendor/server/dist/checkpoint/workflow-checkpoint-store.js.map +0 -1
  1118. package/vendor/server/dist/checkpoint/workflow-checkpoint-store.test.d.ts.map +0 -1
  1119. package/vendor/server/dist/checkpoint/workflow-checkpoint-store.test.js.map +0 -1
  1120. package/vendor/server/dist/config/config.service.d.ts.map +0 -1
  1121. package/vendor/server/dist/config/config.service.js.map +0 -1
  1122. package/vendor/server/dist/config/langflower-config.service.d.ts.map +0 -1
  1123. package/vendor/server/dist/config/langflower-config.service.js.map +0 -1
  1124. package/vendor/server/dist/config/langflower-config.service.test.d.ts.map +0 -1
  1125. package/vendor/server/dist/config/langflower-config.service.test.js.map +0 -1
  1126. package/vendor/server/dist/config/redact-langflower-config.d.ts.map +0 -1
  1127. package/vendor/server/dist/config/redact-langflower-config.js.map +0 -1
  1128. package/vendor/server/dist/config/redact-langflower-config.test.d.ts.map +0 -1
  1129. package/vendor/server/dist/config/redact-langflower-config.test.js.map +0 -1
  1130. package/vendor/server/dist/config/resolve-global-langflower-config-path.d.ts.map +0 -1
  1131. package/vendor/server/dist/config/resolve-global-langflower-config-path.js.map +0 -1
  1132. package/vendor/server/dist/config/resolve-provider-credentials.d.ts.map +0 -1
  1133. package/vendor/server/dist/config/resolve-provider-credentials.js.map +0 -1
  1134. package/vendor/server/dist/config/resolve-provider-credentials.test.d.ts.map +0 -1
  1135. package/vendor/server/dist/config/resolve-provider-credentials.test.js.map +0 -1
  1136. package/vendor/server/dist/crawl/create-crawl-context.d.ts.map +0 -1
  1137. package/vendor/server/dist/crawl/create-crawl-context.js.map +0 -1
  1138. package/vendor/server/dist/crawl/create-crawl-context.test.d.ts.map +0 -1
  1139. package/vendor/server/dist/crawl/create-crawl-context.test.js.map +0 -1
  1140. package/vendor/server/dist/crawl/create-web-fetch.d.ts.map +0 -1
  1141. package/vendor/server/dist/crawl/create-web-fetch.js.map +0 -1
  1142. package/vendor/server/dist/crawl/create-web-fetch.test.d.ts.map +0 -1
  1143. package/vendor/server/dist/crawl/create-web-fetch.test.js.map +0 -1
  1144. package/vendor/server/dist/crawl/ssrf-guard.d.ts.map +0 -1
  1145. package/vendor/server/dist/crawl/ssrf-guard.js.map +0 -1
  1146. package/vendor/server/dist/crawl/ssrf-guard.test.d.ts.map +0 -1
  1147. package/vendor/server/dist/crawl/ssrf-guard.test.js.map +0 -1
  1148. package/vendor/server/dist/create-server.d.ts.map +0 -1
  1149. package/vendor/server/dist/create-server.js.map +0 -1
  1150. package/vendor/server/dist/harness/pending-permission-asks.d.ts.map +0 -1
  1151. package/vendor/server/dist/harness/pending-permission-asks.js.map +0 -1
  1152. package/vendor/server/dist/harness/permission.d.ts.map +0 -1
  1153. package/vendor/server/dist/harness/permission.js.map +0 -1
  1154. package/vendor/server/dist/harness/permission.test.d.ts.map +0 -1
  1155. package/vendor/server/dist/harness/permission.test.js.map +0 -1
  1156. package/vendor/server/dist/index.d.ts.map +0 -1
  1157. package/vendor/server/dist/index.js.map +0 -1
  1158. package/vendor/server/dist/kb/chunk-text.d.ts.map +0 -1
  1159. package/vendor/server/dist/kb/chunk-text.js.map +0 -1
  1160. package/vendor/server/dist/kb/cosine.d.ts.map +0 -1
  1161. package/vendor/server/dist/kb/cosine.js.map +0 -1
  1162. package/vendor/server/dist/kb/create-kb-context.d.ts.map +0 -1
  1163. package/vendor/server/dist/kb/create-kb-context.js.map +0 -1
  1164. package/vendor/server/dist/kb/kb-paths.d.ts.map +0 -1
  1165. package/vendor/server/dist/kb/kb-paths.js.map +0 -1
  1166. package/vendor/server/dist/kb/kb-store.d.ts.map +0 -1
  1167. package/vendor/server/dist/kb/kb-store.js.map +0 -1
  1168. package/vendor/server/dist/kb/kb-store.test.d.ts.map +0 -1
  1169. package/vendor/server/dist/kb/kb-store.test.js.map +0 -1
  1170. package/vendor/server/dist/kb/local-embed.d.ts.map +0 -1
  1171. package/vendor/server/dist/kb/local-embed.js.map +0 -1
  1172. package/vendor/server/dist/listen-http-server.d.ts.map +0 -1
  1173. package/vendor/server/dist/listen-http-server.js.map +0 -1
  1174. package/vendor/server/dist/llm/create-chat-completion-stream.d.ts.map +0 -1
  1175. package/vendor/server/dist/llm/create-chat-completion-stream.js.map +0 -1
  1176. package/vendor/server/dist/llm/create-chat-completion-stream.test.d.ts.map +0 -1
  1177. package/vendor/server/dist/llm/create-chat-completion-stream.test.js.map +0 -1
  1178. package/vendor/server/dist/llm/create-embedding.d.ts.map +0 -1
  1179. package/vendor/server/dist/llm/create-embedding.js.map +0 -1
  1180. package/vendor/server/dist/llm/list-provider-models.d.ts.map +0 -1
  1181. package/vendor/server/dist/llm/list-provider-models.js.map +0 -1
  1182. package/vendor/server/dist/llm/list-provider-models.test.d.ts.map +0 -1
  1183. package/vendor/server/dist/llm/list-provider-models.test.js.map +0 -1
  1184. package/vendor/server/dist/mcp/create-mcp-runtime.d.ts.map +0 -1
  1185. package/vendor/server/dist/mcp/create-mcp-runtime.js.map +0 -1
  1186. package/vendor/server/dist/mcp/create-mcp-runtime.test.d.ts.map +0 -1
  1187. package/vendor/server/dist/mcp/create-mcp-runtime.test.js.map +0 -1
  1188. package/vendor/server/dist/mcp/mcp-stdio-client.d.ts.map +0 -1
  1189. package/vendor/server/dist/mcp/mcp-stdio-client.js.map +0 -1
  1190. package/vendor/server/dist/mcp/mcp-tool-id.d.ts.map +0 -1
  1191. package/vendor/server/dist/mcp/mcp-tool-id.js.map +0 -1
  1192. package/vendor/server/dist/mcp/openai-mcp-tool-loop.test.d.ts.map +0 -1
  1193. package/vendor/server/dist/mcp/openai-mcp-tool-loop.test.js.map +0 -1
  1194. package/vendor/server/dist/mcp/wrap-harness-with-mcp.d.ts.map +0 -1
  1195. package/vendor/server/dist/mcp/wrap-harness-with-mcp.js.map +0 -1
  1196. package/vendor/server/dist/palette/custom-node-registry.d.ts.map +0 -1
  1197. package/vendor/server/dist/palette/custom-node-registry.js.map +0 -1
  1198. package/vendor/server/dist/palette/custom-palette.service.d.ts.map +0 -1
  1199. package/vendor/server/dist/palette/custom-palette.service.js.map +0 -1
  1200. package/vendor/server/dist/palette/palette.service.d.ts.map +0 -1
  1201. package/vendor/server/dist/palette/palette.service.js.map +0 -1
  1202. package/vendor/server/dist/server-context.d.ts.map +0 -1
  1203. package/vendor/server/dist/server-context.js.map +0 -1
  1204. package/vendor/server/dist/session/build-selected-node-payload.d.ts.map +0 -1
  1205. package/vendor/server/dist/session/build-selected-node-payload.js.map +0 -1
  1206. package/vendor/server/dist/session/build-session-bootstrap.d.ts.map +0 -1
  1207. package/vendor/server/dist/session/build-session-bootstrap.js.map +0 -1
  1208. package/vendor/server/dist/session/clear-feed-while-running.test.d.ts.map +0 -1
  1209. package/vendor/server/dist/session/clear-feed-while-running.test.js.map +0 -1
  1210. package/vendor/server/dist/session/langflower-session.d.ts.map +0 -1
  1211. package/vendor/server/dist/session/langflower-session.js.map +0 -1
  1212. package/vendor/server/dist/skills/is-safe-skill-id.d.ts.map +0 -1
  1213. package/vendor/server/dist/skills/is-safe-skill-id.js.map +0 -1
  1214. package/vendor/server/dist/skills/list-skills.d.ts.map +0 -1
  1215. package/vendor/server/dist/skills/list-skills.js.map +0 -1
  1216. package/vendor/server/dist/skills/list-skills.test.d.ts.map +0 -1
  1217. package/vendor/server/dist/skills/list-skills.test.js.map +0 -1
  1218. package/vendor/server/dist/skills/parse-skill-markdown.d.ts.map +0 -1
  1219. package/vendor/server/dist/skills/parse-skill-markdown.js.map +0 -1
  1220. package/vendor/server/dist/skills/parse-skill-markdown.test.d.ts.map +0 -1
  1221. package/vendor/server/dist/skills/parse-skill-markdown.test.js.map +0 -1
  1222. package/vendor/server/dist/skills/read-agents-markdown.d.ts.map +0 -1
  1223. package/vendor/server/dist/skills/read-agents-markdown.js.map +0 -1
  1224. package/vendor/server/dist/skills/read-skill-markdown.d.ts.map +0 -1
  1225. package/vendor/server/dist/skills/read-skill-markdown.js.map +0 -1
  1226. package/vendor/server/dist/skills/read-skill-markdown.test.d.ts.map +0 -1
  1227. package/vendor/server/dist/skills/read-skill-markdown.test.js.map +0 -1
  1228. package/vendor/server/dist/skills/with-skills-catalog.d.ts.map +0 -1
  1229. package/vendor/server/dist/skills/with-skills-catalog.js.map +0 -1
  1230. package/vendor/server/dist/skills/with-skills-catalog.test.d.ts.map +0 -1
  1231. package/vendor/server/dist/skills/with-skills-catalog.test.js.map +0 -1
  1232. package/vendor/server/dist/utils/parse-jsonc.d.ts.map +0 -1
  1233. package/vendor/server/dist/utils/parse-jsonc.js.map +0 -1
  1234. package/vendor/server/dist/workflow/activate-workflow-in-session.d.ts.map +0 -1
  1235. package/vendor/server/dist/workflow/activate-workflow-in-session.js.map +0 -1
  1236. package/vendor/server/dist/workflow/apply-editor-mutation.d.ts.map +0 -1
  1237. package/vendor/server/dist/workflow/apply-editor-mutation.js.map +0 -1
  1238. package/vendor/server/dist/workflow/apply-editor-mutation.test.d.ts.map +0 -1
  1239. package/vendor/server/dist/workflow/apply-editor-mutation.test.js.map +0 -1
  1240. package/vendor/server/dist/workflow/bind-workflow-graph.d.ts.map +0 -1
  1241. package/vendor/server/dist/workflow/bind-workflow-graph.js.map +0 -1
  1242. package/vendor/server/dist/workflow/build-save-current-payload.d.ts.map +0 -1
  1243. package/vendor/server/dist/workflow/build-save-current-payload.js.map +0 -1
  1244. package/vendor/server/dist/workflow/build-save-current-payload.test.d.ts.map +0 -1
  1245. package/vendor/server/dist/workflow/build-save-current-payload.test.js.map +0 -1
  1246. package/vendor/server/dist/workflow/copy-workflow-to-session.d.ts.map +0 -1
  1247. package/vendor/server/dist/workflow/copy-workflow-to-session.js.map +0 -1
  1248. package/vendor/server/dist/workflow/copy-workflow-to-session.test.d.ts.map +0 -1
  1249. package/vendor/server/dist/workflow/copy-workflow-to-session.test.js.map +0 -1
  1250. package/vendor/server/dist/workflow/create-empty-workflow-in-session.d.ts.map +0 -1
  1251. package/vendor/server/dist/workflow/create-empty-workflow-in-session.js.map +0 -1
  1252. package/vendor/server/dist/workflow/create-empty-workflow-in-session.test.d.ts.map +0 -1
  1253. package/vendor/server/dist/workflow/create-empty-workflow-in-session.test.js.map +0 -1
  1254. package/vendor/server/dist/workflow/load-workflow-into-session.d.ts.map +0 -1
  1255. package/vendor/server/dist/workflow/load-workflow-into-session.js.map +0 -1
  1256. package/vendor/server/dist/workflow/rename-active-workflow.d.ts.map +0 -1
  1257. package/vendor/server/dist/workflow/rename-active-workflow.js.map +0 -1
  1258. package/vendor/server/dist/workflow/rename-active-workflow.test.d.ts.map +0 -1
  1259. package/vendor/server/dist/workflow/rename-active-workflow.test.js.map +0 -1
  1260. package/vendor/server/dist/workflow/repro-bypass.test.d.ts.map +0 -1
  1261. package/vendor/server/dist/workflow/repro-bypass.test.js.map +0 -1
  1262. package/vendor/server/dist/workflow/workflow-document.d.ts.map +0 -1
  1263. package/vendor/server/dist/workflow/workflow-document.js.map +0 -1
  1264. package/vendor/server/dist/workflow/workflow-id.d.ts.map +0 -1
  1265. package/vendor/server/dist/workflow/workflow-id.js.map +0 -1
  1266. package/vendor/server/dist/workflow/workflow-id.test.d.ts.map +0 -1
  1267. package/vendor/server/dist/workflow/workflow-id.test.js.map +0 -1
  1268. package/vendor/server/dist/workflow/workflow-persisted-inputs.d.ts.map +0 -1
  1269. package/vendor/server/dist/workflow/workflow-persisted-inputs.js.map +0 -1
  1270. package/vendor/server/dist/workflow/workflow.service.d.ts.map +0 -1
  1271. package/vendor/server/dist/workflow/workflow.service.js.map +0 -1
  1272. package/vendor/server/dist/workflow/workflow.service.test.d.ts.map +0 -1
  1273. package/vendor/server/dist/workflow/workflow.service.test.js.map +0 -1
  1274. package/vendor/shared/dist/checkpoint/json-value.d.ts.map +0 -1
  1275. package/vendor/shared/dist/checkpoint/json-value.js.map +0 -1
  1276. package/vendor/shared/dist/checkpoint/json-value.test.d.ts.map +0 -1
  1277. package/vendor/shared/dist/checkpoint/json-value.test.js.map +0 -1
  1278. package/vendor/shared/dist/checkpoint/workflow-fingerprint.d.ts.map +0 -1
  1279. package/vendor/shared/dist/checkpoint/workflow-fingerprint.js.map +0 -1
  1280. package/vendor/shared/dist/checkpoint/workflow-fingerprint.test.d.ts.map +0 -1
  1281. package/vendor/shared/dist/checkpoint/workflow-fingerprint.test.js.map +0 -1
  1282. package/vendor/shared/dist/constants/defaults.d.ts.map +0 -1
  1283. package/vendor/shared/dist/constants/defaults.js.map +0 -1
  1284. package/vendor/shared/dist/execution/derive-run-settle-outcome.d.ts.map +0 -1
  1285. package/vendor/shared/dist/execution/derive-run-settle-outcome.js.map +0 -1
  1286. package/vendor/shared/dist/execution/derive-run-settle-outcome.test.d.ts.map +0 -1
  1287. package/vendor/shared/dist/execution/derive-run-settle-outcome.test.js.map +0 -1
  1288. package/vendor/shared/dist/langflower-bus-config.d.ts.map +0 -1
  1289. package/vendor/shared/dist/langflower-bus-config.js.map +0 -1
  1290. package/vendor/shared/dist/langflower-config/mcp-tool-id.d.ts.map +0 -1
  1291. package/vendor/shared/dist/langflower-config/mcp-tool-id.js.map +0 -1
  1292. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.d.ts.map +0 -1
  1293. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.js.map +0 -1
  1294. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.test.d.ts.map +0 -1
  1295. package/vendor/shared/dist/langflower-config/merge-langflower-config-layers.test.js.map +0 -1
  1296. package/vendor/shared/dist/langflower-config/merge-provider-model-options.d.ts.map +0 -1
  1297. package/vendor/shared/dist/langflower-config/merge-provider-model-options.js.map +0 -1
  1298. package/vendor/shared/dist/langflower-config/merge-provider-model-options.test.d.ts.map +0 -1
  1299. package/vendor/shared/dist/langflower-config/merge-provider-model-options.test.js.map +0 -1
  1300. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.d.ts.map +0 -1
  1301. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.js.map +0 -1
  1302. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.test.d.ts.map +0 -1
  1303. package/vendor/shared/dist/langflower-config/resolve-ui-schema-options.test.js.map +0 -1
  1304. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.d.ts.map +0 -1
  1305. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.js.map +0 -1
  1306. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.test.d.ts.map +0 -1
  1307. package/vendor/shared/dist/langflower-config/resolve-wired-tool-options.test.js.map +0 -1
  1308. package/vendor/shared/dist/langflower-ws-waits.d.ts.map +0 -1
  1309. package/vendor/shared/dist/langflower-ws-waits.js.map +0 -1
  1310. package/vendor/shared/dist/langflower.d.ts.map +0 -1
  1311. package/vendor/shared/dist/langflower.js.map +0 -1
  1312. package/vendor/shared/dist/types/config.d.ts.map +0 -1
  1313. package/vendor/shared/dist/types/config.js.map +0 -1
  1314. package/vendor/shared/dist/types/langflower-bootstrap.d.ts.map +0 -1
  1315. package/vendor/shared/dist/types/langflower-bootstrap.js.map +0 -1
  1316. package/vendor/shared/dist/types/langflower-config.d.ts.map +0 -1
  1317. package/vendor/shared/dist/types/langflower-config.js.map +0 -1
  1318. package/vendor/shared/dist/types/langflower-custom-palette.d.ts.map +0 -1
  1319. package/vendor/shared/dist/types/langflower-custom-palette.js.map +0 -1
  1320. package/vendor/shared/dist/types/langflower-editor.d.ts.map +0 -1
  1321. package/vendor/shared/dist/types/langflower-editor.js.map +0 -1
  1322. package/vendor/shared/dist/types/langflower-palette.d.ts.map +0 -1
  1323. package/vendor/shared/dist/types/langflower-palette.js.map +0 -1
  1324. package/vendor/shared/dist/types/langflower-project-bootstrap.d.ts.map +0 -1
  1325. package/vendor/shared/dist/types/langflower-project-bootstrap.js.map +0 -1
  1326. package/vendor/shared/dist/types/langflower-server.d.ts.map +0 -1
  1327. package/vendor/shared/dist/types/langflower-server.js.map +0 -1
  1328. package/vendor/shared/dist/types/langflower-workflow.d.ts.map +0 -1
  1329. package/vendor/shared/dist/types/langflower-workflow.js.map +0 -1
  1330. package/vendor/shared/dist/types/workflow-checkpoint.d.ts.map +0 -1
  1331. package/vendor/shared/dist/types/workflow-checkpoint.js.map +0 -1
  1332. package/vendor/tools/dist/builtin-schemas.d.ts.map +0 -1
  1333. package/vendor/tools/dist/builtin-schemas.js.map +0 -1
  1334. package/vendor/tools/dist/builtins/apply-post-process.d.ts.map +0 -1
  1335. package/vendor/tools/dist/builtins/apply-post-process.js.map +0 -1
  1336. package/vendor/tools/dist/builtins/args.d.ts.map +0 -1
  1337. package/vendor/tools/dist/builtins/args.js.map +0 -1
  1338. package/vendor/tools/dist/builtins/bash/tool.d.ts.map +0 -1
  1339. package/vendor/tools/dist/builtins/bash/tool.js.map +0 -1
  1340. package/vendor/tools/dist/builtins/catalog.d.ts.map +0 -1
  1341. package/vendor/tools/dist/builtins/catalog.js.map +0 -1
  1342. package/vendor/tools/dist/builtins/create/tool.d.ts.map +0 -1
  1343. package/vendor/tools/dist/builtins/create/tool.js.map +0 -1
  1344. package/vendor/tools/dist/builtins/delete/tool.d.ts.map +0 -1
  1345. package/vendor/tools/dist/builtins/delete/tool.js.map +0 -1
  1346. package/vendor/tools/dist/builtins/edit/tool.d.ts.map +0 -1
  1347. package/vendor/tools/dist/builtins/edit/tool.js.map +0 -1
  1348. package/vendor/tools/dist/builtins/fence.d.ts.map +0 -1
  1349. package/vendor/tools/dist/builtins/fence.js.map +0 -1
  1350. package/vendor/tools/dist/builtins/glob/tool.d.ts.map +0 -1
  1351. package/vendor/tools/dist/builtins/glob/tool.js.map +0 -1
  1352. package/vendor/tools/dist/builtins/grep/tool.d.ts.map +0 -1
  1353. package/vendor/tools/dist/builtins/grep/tool.js.map +0 -1
  1354. package/vendor/tools/dist/builtins/read/tool.d.ts.map +0 -1
  1355. package/vendor/tools/dist/builtins/read/tool.js.map +0 -1
  1356. package/vendor/tools/dist/builtins/types.d.ts.map +0 -1
  1357. package/vendor/tools/dist/builtins/types.js.map +0 -1
  1358. package/vendor/tools/dist/builtins/walk-files.d.ts.map +0 -1
  1359. package/vendor/tools/dist/builtins/walk-files.js.map +0 -1
  1360. package/vendor/tools/dist/builtins/write/tool.d.ts.map +0 -1
  1361. package/vendor/tools/dist/builtins/write/tool.js.map +0 -1
  1362. package/vendor/tools/dist/create-crawl-context.d.ts.map +0 -1
  1363. package/vendor/tools/dist/create-crawl-context.js.map +0 -1
  1364. package/vendor/tools/dist/create-memory-context.d.ts.map +0 -1
  1365. package/vendor/tools/dist/create-memory-context.js.map +0 -1
  1366. package/vendor/tools/dist/create-project-files-context.d.ts.map +0 -1
  1367. package/vendor/tools/dist/create-project-files-context.js.map +0 -1
  1368. package/vendor/tools/dist/create-project-harness.d.ts.map +0 -1
  1369. package/vendor/tools/dist/create-project-harness.js.map +0 -1
  1370. package/vendor/tools/dist/create-web-fetch.d.ts.map +0 -1
  1371. package/vendor/tools/dist/create-web-fetch.js.map +0 -1
  1372. package/vendor/tools/dist/domain/args.d.ts.map +0 -1
  1373. package/vendor/tools/dist/domain/args.js.map +0 -1
  1374. package/vendor/tools/dist/domain/create-domain-handlers.d.ts.map +0 -1
  1375. package/vendor/tools/dist/domain/create-domain-handlers.js.map +0 -1
  1376. package/vendor/tools/dist/domain/domain-tool-configs.d.ts.map +0 -1
  1377. package/vendor/tools/dist/domain/domain-tool-configs.js.map +0 -1
  1378. package/vendor/tools/dist/domain/html.d.ts.map +0 -1
  1379. package/vendor/tools/dist/domain/html.js.map +0 -1
  1380. package/vendor/tools/dist/domain/run-bfs-crawl.d.ts.map +0 -1
  1381. package/vendor/tools/dist/domain/run-bfs-crawl.js.map +0 -1
  1382. package/vendor/tools/dist/gate-tool-call.d.ts.map +0 -1
  1383. package/vendor/tools/dist/gate-tool-call.js.map +0 -1
  1384. package/vendor/tools/dist/gitignore.d.ts.map +0 -1
  1385. package/vendor/tools/dist/gitignore.js.map +0 -1
  1386. package/vendor/tools/dist/handlers.d.ts.map +0 -1
  1387. package/vendor/tools/dist/handlers.js.map +0 -1
  1388. package/vendor/tools/dist/harness-types.d.ts.map +0 -1
  1389. package/vendor/tools/dist/harness-types.js.map +0 -1
  1390. package/vendor/tools/dist/kb/chunk-text.d.ts.map +0 -1
  1391. package/vendor/tools/dist/kb/chunk-text.js.map +0 -1
  1392. package/vendor/tools/dist/kb/cosine.d.ts.map +0 -1
  1393. package/vendor/tools/dist/kb/cosine.js.map +0 -1
  1394. package/vendor/tools/dist/kb/create-kb-context.d.ts.map +0 -1
  1395. package/vendor/tools/dist/kb/create-kb-context.js.map +0 -1
  1396. package/vendor/tools/dist/kb/kb-curation.d.ts.map +0 -1
  1397. package/vendor/tools/dist/kb/kb-curation.js.map +0 -1
  1398. package/vendor/tools/dist/kb/kb-paths.d.ts.map +0 -1
  1399. package/vendor/tools/dist/kb/kb-paths.js.map +0 -1
  1400. package/vendor/tools/dist/kb/kb-store.d.ts.map +0 -1
  1401. package/vendor/tools/dist/kb/kb-store.js.map +0 -1
  1402. package/vendor/tools/dist/kb/local-embed.d.ts.map +0 -1
  1403. package/vendor/tools/dist/kb/local-embed.js.map +0 -1
  1404. package/vendor/tools/dist/mcp/build-mcp-handle.d.ts.map +0 -1
  1405. package/vendor/tools/dist/mcp/build-mcp-handle.js.map +0 -1
  1406. package/vendor/tools/dist/mcp/create-mcp-runtime.d.ts.map +0 -1
  1407. package/vendor/tools/dist/mcp/create-mcp-runtime.js.map +0 -1
  1408. package/vendor/tools/dist/mcp/create-system-mcp-handles.d.ts.map +0 -1
  1409. package/vendor/tools/dist/mcp/create-system-mcp-handles.js.map +0 -1
  1410. package/vendor/tools/dist/mcp/env-with-shell-com-spec.d.ts.map +0 -1
  1411. package/vendor/tools/dist/mcp/env-with-shell-com-spec.js.map +0 -1
  1412. package/vendor/tools/dist/mcp/format-mcp-connect-error.d.ts.map +0 -1
  1413. package/vendor/tools/dist/mcp/format-mcp-connect-error.js.map +0 -1
  1414. package/vendor/tools/dist/mcp/mcp-client-types.d.ts.map +0 -1
  1415. package/vendor/tools/dist/mcp/mcp-client-types.js.map +0 -1
  1416. package/vendor/tools/dist/mcp/mcp-http-client.d.ts.map +0 -1
  1417. package/vendor/tools/dist/mcp/mcp-http-client.js.map +0 -1
  1418. package/vendor/tools/dist/mcp/mcp-stdio-client.d.ts.map +0 -1
  1419. package/vendor/tools/dist/mcp/mcp-stdio-client.js.map +0 -1
  1420. package/vendor/tools/dist/mcp/mcp-stdio-frame-parser.d.ts.map +0 -1
  1421. package/vendor/tools/dist/mcp/mcp-stdio-frame-parser.js.map +0 -1
  1422. package/vendor/tools/dist/mcp/mcp-tool-id.d.ts.map +0 -1
  1423. package/vendor/tools/dist/mcp/mcp-tool-id.js.map +0 -1
  1424. package/vendor/tools/dist/mcp/require-mcp-server-name.d.ts.map +0 -1
  1425. package/vendor/tools/dist/mcp/require-mcp-server-name.js.map +0 -1
  1426. package/vendor/tools/dist/mcp/resolve-shell-option.d.ts.map +0 -1
  1427. package/vendor/tools/dist/mcp/resolve-shell-option.js.map +0 -1
  1428. package/vendor/tools/dist/mcp/wrap-harness-with-mcp.d.ts.map +0 -1
  1429. package/vendor/tools/dist/mcp/wrap-harness-with-mcp.js.map +0 -1
  1430. package/vendor/tools/dist/memory/atomic-write.d.ts.map +0 -1
  1431. package/vendor/tools/dist/memory/atomic-write.js.map +0 -1
  1432. package/vendor/tools/dist/memory/create-memory-store.d.ts.map +0 -1
  1433. package/vendor/tools/dist/memory/create-memory-store.js.map +0 -1
  1434. package/vendor/tools/dist/memory/markdown-sections.d.ts.map +0 -1
  1435. package/vendor/tools/dist/memory/markdown-sections.js.map +0 -1
  1436. package/vendor/tools/dist/memory/memory-paths.d.ts.map +0 -1
  1437. package/vendor/tools/dist/memory/memory-paths.js.map +0 -1
  1438. package/vendor/tools/dist/path-sandbox.d.ts.map +0 -1
  1439. package/vendor/tools/dist/path-sandbox.js.map +0 -1
  1440. package/vendor/tools/dist/permission.d.ts.map +0 -1
  1441. package/vendor/tools/dist/permission.js.map +0 -1
  1442. package/vendor/tools/dist/post-process.d.ts.map +0 -1
  1443. package/vendor/tools/dist/post-process.js.map +0 -1
  1444. package/vendor/tools/dist/ssrf-guard.d.ts.map +0 -1
  1445. package/vendor/tools/dist/ssrf-guard.js.map +0 -1
  1446. package/vendor/websocket-bridge/dist/bridge-codec.d.ts.map +0 -1
  1447. package/vendor/websocket-bridge/dist/bridge-codec.js.map +0 -1
  1448. package/vendor/websocket-bridge/dist/bridge-frame.d.ts.map +0 -1
  1449. package/vendor/websocket-bridge/dist/bridge-frame.js.map +0 -1
  1450. package/vendor/websocket-bridge/dist/bridge-guards.d.ts.map +0 -1
  1451. package/vendor/websocket-bridge/dist/bridge-guards.js.map +0 -1
  1452. package/vendor/websocket-bridge/dist/bridge-subjects.d.ts.map +0 -1
  1453. package/vendor/websocket-bridge/dist/bridge-subjects.js.map +0 -1
  1454. package/vendor/websocket-bridge/dist/bridge-types.d.ts.map +0 -1
  1455. package/vendor/websocket-bridge/dist/bridge-types.js.map +0 -1
  1456. package/vendor/websocket-bridge/dist/create-client.d.ts.map +0 -1
  1457. package/vendor/websocket-bridge/dist/create-client.js.map +0 -1
  1458. package/vendor/websocket-bridge/dist/create-server.d.ts.map +0 -1
  1459. package/vendor/websocket-bridge/dist/create-server.js.map +0 -1
  1460. package/vendor/websocket-bridge/dist/testing/expect-type.d.ts.map +0 -1
  1461. package/vendor/websocket-bridge/dist/testing/expect-type.js.map +0 -1
  1462. package/vendor/websocket-bridge/dist/testing/sample-diagram-ws-config.d.ts.map +0 -1
  1463. package/vendor/websocket-bridge/dist/testing/sample-diagram-ws-config.js.map +0 -1
  1464. package/vendor/websocket-bridge/dist/testing/sample-ping-ws-config.d.ts.map +0 -1
  1465. package/vendor/websocket-bridge/dist/testing/sample-ping-ws-config.js.map +0 -1
  1466. package/vendor/websocket-bridge/dist/testing/transport-test-helpers.d.ts.map +0 -1
  1467. package/vendor/websocket-bridge/dist/testing/transport-test-helpers.js.map +0 -1
@@ -1,11 +1,11 @@
1
- import{$ as pn,$a as Xr,$b as es,A as ce,Aa as qr,Ab as gt,B as xe,Ba as kn,Bb as Wt,C as Ad,Ca as kt,Cb as Ue,D as Ld,Da as Po,Db as q,E as tg,Ea as cg,Eb as ft,F as Jt,Fa as ug,Fb as C,G as Ur,Ga as Vd,Gb as re,H as ng,Ha as Rn,Hb as H,I as Tn,Ia as p,Ib as Ei,J as Fd,Ja as Yr,Jb as Zd,K as We,Ka as jd,Kb as Kd,L as Pe,La as xi,Lb as Xd,M as Vr,Ma as Wd,Mb as Qd,N as ae,Na as Gd,Nb as bg,O as ve,Oa as Zr,Ob as Io,P as So,Pa as Kr,Pb as Pi,Q as Vt,Qa as pg,Qb as wg,R as Se,Ra as hg,Rb as Do,S as zd,Sa as gg,Sb as Mo,T as V,Ta as fg,Tb as Cg,U as Bd,Ua as qd,Ub as b,V as og,Va as F,Vb as Ie,W as Oe,Wa as Yd,Wb as Jd,X as be,Xa as me,Xb as mn,Y as h,Ya as mg,Yb as I,Z as jr,Za as gn,Zb as st,_ as ig,_a as fn,_b as _g,a as g,aa as Ct,ab as yg,ac as xg,b as _,ba as M,bb as vg,bc as Sg,c as un,ca as T,cb as Qr,cc as Eg,d as Av,da as ge,db as K,dc as Pg,e as Lv,ea as Wr,eb as E,f as D,fa as jt,fb as P,g as qh,ga as it,gb as en,h as Yh,ha as qe,hb as Si,i as Br,ia as rg,ib as Q,j as ot,ja as we,jb as J,k as ut,ka as hn,kb as A,l as Zh,la as $d,lb as v,m as Pt,ma as _i,mb as y,n as Ft,na as $,nb as z,o as ie,oa as Hd,ob as U,p as Kh,pa as sg,pb as B,q as Od,qa as Eo,qb as pt,r as Xh,ra as ag,rb as Jr,s as Qh,sa as Ud,sb as j,t as N,ta as dg,tb as Ce,u as Ne,ua as fe,ub as O,v as Mn,va as Gr,vb as Ee,w as $r,wa as It,wb as m,x as Hr,xa as Dt,xb as Ye,y as Jh,ya as rt,yb as je,z as eg,za as lg,zb as ht}from"./chunk-NAV7YTWN.js";var Zf=Av((BA,Yf)=>{"use strict";Yf.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}});var Ig=null;function yn(){return Ig}function el(n){Ig??=n}var Ii=class{},ts=(()=>{class n{historyGo(t){throw new Error("")}static \u0275fac=function(o){return new(o||n)};static \u0275prov=V({token:n,factory:()=>h(Dg),providedIn:"platform"})}return n})();var Dg=(()=>{class n extends ts{_location;_history;_doc=h(it);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return yn().getBaseHref(this._doc)}onPopState(t){let o=yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("popstate",t,!1),()=>o.removeEventListener("popstate",t)}onHashChange(t){let o=yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("hashchange",t,!1),()=>o.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,o,i){this._history.pushState(t,o,i)}replaceState(t,o,i){this._history.replaceState(t,o,i)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static \u0275fac=function(o){return new(o||n)};static \u0275prov=V({token:n,factory:()=>new n,providedIn:"platform"})}return n})();function kg(n,e){return n?e?n.endsWith("/")?e.startsWith("/")?n+e.slice(1):n+e:e.startsWith("/")?n+e:`${n}/${e}`:n:e}function Mg(n){let e=n.search(/#|\?|$/);return n[e-1]==="/"?n.slice(0,e-1)+n.slice(e):n}function Nn(n){return n&&n[0]!=="?"?`?${n}`:n}var ns=(()=>{class n{historyGo(t){throw new Error("")}static \u0275fac=function(o){return new(o||n)};static \u0275prov=V({token:n,factory:()=>h(zv),providedIn:"root"})}return n})(),Fv=new Oe(""),zv=(()=>{class n extends ns{_platformLocation;_baseHref;_removeListenerFns=[];constructor(t,o){super(),this._platformLocation=t,this._baseHref=o??this._platformLocation.getBaseHrefFromDOM()??h(it).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return kg(this._baseHref,t)}path(t=!1){let o=this._platformLocation.pathname+Nn(this._platformLocation.search),i=this._platformLocation.hash;return i&&t?`${o}${i}`:o}pushState(t,o,i,r){let s=this.prepareExternalUrl(i+Nn(r));this._platformLocation.pushState(t,o,s)}replaceState(t,o,i,r){let s=this.prepareExternalUrl(i+Nn(r));this._platformLocation.replaceState(t,o,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static \u0275fac=function(o){return new(o||n)(be(ts),be(Fv,8))};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var To=(()=>{class n{_subject=new ot;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(t){this._locationStrategy=t;let o=this._locationStrategy.getBaseHref();this._basePath=Hv(Mg(Tg(o))),this._locationStrategy.onPopState(i=>{this._subject.next({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,o=""){return this.path()==this.normalize(t+Nn(o))}normalize(t){return n.stripTrailingSlash($v(this._basePath,Tg(t)))}prepareExternalUrl(t){return t&&t[0]!=="/"&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,o="",i=null){this._locationStrategy.pushState(i,"",t,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Nn(o)),i)}replaceState(t,o="",i=null){this._locationStrategy.replaceState(i,"",t,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Nn(o)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(o=>{this._notifyUrlChangeListeners(o.url,o.state)}),()=>{let o=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(o,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",o){this._urlChangeListeners.forEach(i=>i(t,o))}subscribe(t,o,i){return this._subject.subscribe({next:t,error:o??void 0,complete:i??void 0})}static normalizeQueryParams=Nn;static joinWithSlash=kg;static stripTrailingSlash=Mg;static \u0275fac=function(o){return new(o||n)(be(ns))};static \u0275prov=V({token:n,factory:()=>Bv(),providedIn:"root"})}return n})();function Bv(){return new To(be(ns))}function $v(n,e){if(!n||!e.startsWith(n))return e;let t=e.substring(n.length);return t===""||["/",";","?","#"].includes(t[0])?t:e}function Tg(n){return n.replace(/\/index\.html$/,"")}function Hv(n){if(new RegExp("^(https?:)?//").test(n)){let[,t]=n.split(/\/\/[^\/]+/);return t}return n}var os=(()=>{class n{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletEnvironmentInjector;ngComponentOutletContent;ngComponentOutletNgModule;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(t){this._viewContainerRef=t}_needToReCreateNgModuleInstance(t){return t.ngComponentOutletNgModule!==void 0}_needToReCreateComponentInstance(t){return t.ngComponentOutlet!==void 0||t.ngComponentOutletContent!==void 0||t.ngComponentOutletInjector!==void 0||t.ngComponentOutletEnvironmentInjector!==void 0||this._needToReCreateNgModuleInstance(t)}ngOnChanges(t){if(this._needToReCreateComponentInstance(t)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let o=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(t)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=fg(this.ngComponentOutletNgModule,Uv(o)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:o,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent,environmentInjector:this.ngComponentOutletEnvironmentInjector})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let t of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(t,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(t){for(let[o,i]of this._inputsUsed)i?(t.setInput(o,this.ngComponentOutletInputs[o]),this._inputsUsed.set(o,!1)):(t.setInput(o,void 0),this._inputsUsed.delete(o))}static \u0275fac=function(o){return new(o||n)(Wd(Zr))};static \u0275dir=me({type:n,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletEnvironmentInjector:"ngComponentOutletEnvironmentInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule"},exportAs:["ngComponentOutlet"],features:[Gr]})}return n})();function Uv(n){return n.get(hg).injector}function Vv(n,e){return new Se(2100,!1)}var tl=class{createSubscription(e,t,o){return Ie(()=>e.subscribe({next:t,error:o}))}dispose(e){Ie(()=>e.unsubscribe())}},nl=class{createSubscription(e,t,o){return e.then(i=>t?.(i),i=>o?.(i)),{unsubscribe:()=>{t=null,o=null}}}dispose(e){e.unsubscribe()}},jv=new nl,Wv=new tl,Kn=(()=>{class n{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;applicationErrorHandler=h(_i);constructor(t){this._ref=t}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(t){if(!this._obj){if(t)try{this.markForCheckOnValueUpdate=!1,this._subscribe(t)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,o=>this._updateLatestValue(t,o),o=>this.applicationErrorHandler(o))}_selectStrategy(t){if(Kr(t))return jv;if(pg(t))return Wv;throw Vv(n,t)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,o){t===this._obj&&(this._latestValue=o,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(o){return new(o||n)(Wd(es,16))};static \u0275pipe=mg({name:"async",type:n,pure:!1})}return n})();var Di=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275mod=Yd({type:n});static \u0275inj=Bd({})}return n})();function ol(n,e){e=encodeURIComponent(e);for(let t of n.split(";")){let o=t.indexOf("="),[i,r]=o==-1?[t,""]:[t.slice(0,o),t.slice(o+1)];if(i.trim()===e)return decodeURIComponent(r)}return null}var il="browser";function Rg(n){return n===il}var Mi=class{_doc;constructor(e){this._doc=e}manager},is=(()=>{class n extends Mi{constructor(t){super(t)}supports(t){return!0}addEventListener(t,o,i,r){return t.addEventListener(o,i,r),()=>this.removeEventListener(t,o,i,r)}removeEventListener(t,o,i,r){return t.removeEventListener(o,i,r)}static \u0275fac=function(o){return new(o||n)(be(it))};static \u0275prov=V({token:n,factory:n.\u0275fac})}return n})(),as=new Oe(""),dl=(()=>{class n{_zone;_plugins;_eventNameToPlugin=new Map;constructor(t,o){this._zone=o,t.forEach(s=>{s.manager=this});let i=t.filter(s=>!(s instanceof is));this._plugins=i.slice().reverse();let r=t.find(s=>s instanceof is);r&&this._plugins.push(r)}addEventListener(t,o,i,r){return this._findPluginFor(o).addEventListener(t,o,i,r)}getZone(){return this._zone}_findPluginFor(t){let o=this._eventNameToPlugin.get(t);if(o)return o;if(o=this._plugins.find(r=>r.supports(t)),!o)throw new Se(-5101,!1);return this._eventNameToPlugin.set(t,o),o}static \u0275fac=function(o){return new(o||n)(be(as),be(hn))};static \u0275prov=V({token:n,factory:n.\u0275fac})}return n})(),rl="ng-app-id";function Ng(n){for(let e of n)e.remove()}function Og(n,e){let t=e.createElement("style");return t.textContent=n,t}function Yv(n,e,t,o){let i=n.head?.querySelectorAll(`style[${rl}="${e}"],link[${rl}="${e}"]`);if(!i||i.length===0)return!1;for(let r of i)r.removeAttribute(rl),r instanceof HTMLLinkElement?o.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&t.set(r.textContent,{usage:0,elements:[r]});return!0}function al(n,e){let t=e.createElement("link");return t.setAttribute("rel","stylesheet"),t.setAttribute("href",n),t}var ll=(()=>{class n{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(t,o,i,r={}){this.doc=t,this.appId=o,this.nonce=i,Yv(t,o,this.inline,this.external)&&this.hosts.add(t.head)}addStyles(t,o){for(let i of t)this.addUsage(i,this.inline,Og);o?.forEach(i=>this.addUsage(i,this.external,al))}removeStyles(t,o){for(let i of t)this.removeUsage(i,this.inline);o?.forEach(i=>this.removeUsage(i,this.external))}addUsage(t,o,i){let r=o.get(t);r?r.usage++:o.set(t,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,i(t,this.doc)))})}removeUsage(t,o){let i=o.get(t);i&&(i.usage--,i.usage<=0&&(Ng(i.elements),o.delete(t)))}ngOnDestroy(){for(let[,{elements:t}]of[...this.inline,...this.external])Ng(t);this.hosts.clear()}addHost(t){if(!this.hosts.has(t)){this.hosts.add(t);for(let[o,{elements:i}]of this.inline)i.push(this.addElement(t,Og(o,this.doc)));for(let[o,{elements:i}]of this.external)i.push(this.addElement(t,al(o,this.doc)))}}removeHost(t){this.hosts.delete(t);for(let o of[...this.inline.values(),...this.external.values()]){let i=[];for(let r of o.elements)r.parentNode===t?r.remove():i.push(r);o.elements=i}}addElement(t,o){return this.nonce&&o.setAttribute("nonce",this.nonce),t.appendChild(o)}static \u0275fac=function(o){return new(o||n)(be(it),be(Hd),be(Ud,8),be(Eo))};static \u0275prov=V({token:n,factory:n.\u0275fac})}return n})(),sl={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},cl=/%COMP%/g;var Lg="%COMP%",Zv=`_nghost-${Lg}`,Kv=`_ngcontent-${Lg}`,Xv=!0,Qv=new Oe("",{factory:()=>Xv});function Jv(n){return Kv.replace(cl,n)}function eb(n){return Zv.replace(cl,n)}function Fg(n,e){return e.map(t=>t.replace(cl,n))}var Ri=(()=>{class n{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(t,o,i,r,s,a,d=null,l=null){this.eventManager=t,this.sharedStylesHost=o,this.appId=i,this.removeStylesOnCompDestroy=r,this.doc=s,this.ngZone=a,this.nonce=d,this.tracingService=l,this.defaultRenderer=new Ti(t,s,a,this.tracingService)}createRenderer(t,o){if(!t||!o)return this.defaultRenderer;let i=this.getOrCreateRenderer(t,o);return i instanceof ss?i.applyToHost(t):i instanceof ki&&i.applyStyles(),i}getOrCreateRenderer(t,o){let i=this.rendererByCompId,r=i.get(o.id);if(!r){let s=this.doc,a=this.ngZone,d=this.eventManager,l=this.sharedStylesHost,c=this.removeStylesOnCompDestroy,u=this.tracingService;switch(o.encapsulation){case qr.Emulated:r=new ss(d,l,o,this.appId,c,s,a,u);break;case qr.ShadowDom:return new rs(d,t,o,s,a,this.nonce,u,l);case qr.ExperimentalIsolatedShadowDom:return new rs(d,t,o,s,a,this.nonce,u);default:r=new ki(d,l,o,c,s,a,u);break}i.set(o.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(t){this.rendererByCompId.delete(t)}static \u0275fac=function(o){return new(o||n)(be(dl),be(xi),be(Hd),be(Qv),be(it),be(hn),be(Ud),be(ug,8))};static \u0275prov=V({token:n,factory:n.\u0275fac})}return n})(),Ti=class{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,t,o,i){this.eventManager=e,this.doc=t,this.ngZone=o,this.tracingService=i}destroy(){}destroyNode=null;createElement(e,t){return t?this.doc.createElementNS(sl[t]||t,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,t){(Ag(e)?e.content:e).appendChild(t)}insertBefore(e,t,o){e&&(Ag(e)?e.content:e).insertBefore(t,o)}removeChild(e,t){t.remove()}selectRootElement(e,t){let o=typeof e=="string"?this.doc.querySelector(e):e;if(!o)throw new Se(-5104,!1);return t||(o.textContent=""),o}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,o,i){if(i){t=i+":"+t;let r=sl[i];r?e.setAttributeNS(r,t,o):e.setAttribute(t,o)}else e.setAttribute(t,o)}removeAttribute(e,t,o){if(o){let i=sl[o];i?e.removeAttributeNS(i,t):e.removeAttribute(`${o}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,o,i){i&(Po.DashCase|Po.Important)?e.style.setProperty(t,o,i&Po.Important?"important":""):e.style[t]=o}removeStyle(e,t,o){o&Po.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,o){e!=null&&(e[t]=o)}setValue(e,t){e.nodeValue=t}listen(e,t,o,i){if(typeof e=="string"&&(e=yn().getGlobalEventTarget(this.doc,e),!e))throw new Se(-5102,!1);let r=this.decoratePreventDefault(o);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(e,t,r)),this.eventManager.addEventListener(e,t,r,i)}decoratePreventDefault(e){return t=>{if(t==="__ngUnwrap__")return e;e(t)===!1&&t.preventDefault()}}};function Ag(n){return n.tagName==="TEMPLATE"&&n.content!==void 0}var rs=class extends Ti{hostEl;sharedStylesHost;shadowRoot;constructor(e,t,o,i,r,s,a,d){super(e,i,r,a),this.hostEl=t,this.sharedStylesHost=d,this.shadowRoot=t.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let l=o.styles;l=Fg(o.id,l);for(let u of l){let w=document.createElement("style");s&&w.setAttribute("nonce",s),w.textContent=u,this.shadowRoot.appendChild(w)}let c=o.getExternalStyles?.();if(c)for(let u of c){let w=al(u,i);s&&w.setAttribute("nonce",s),this.shadowRoot.appendChild(w)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,o){return super.insertBefore(this.nodeOrShadowRoot(e),t,o)}removeChild(e,t){return super.removeChild(null,t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},ki=class extends Ti{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,t,o,i,r,s,a,d){super(e,r,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=i;let l=o.styles;this.styles=d?Fg(d,l):l,this.styleUrls=o.getExternalStyles?.(d)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&cg.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},ss=class extends ki{contentAttr;hostAttr;constructor(e,t,o,i,r,s,a,d){let l=i+"-"+o.id;super(e,t,o,r,s,a,d,l),this.contentAttr=Jv(l),this.hostAttr=eb(l)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,t){let o=super.createElement(e,t);return super.setAttribute(o,this.contentAttr,""),o}};var ds=class n extends Ii{supportsDOMEvents=!0;static makeCurrent(){el(new n)}onAndCancel(e,t,o,i){return e.addEventListener(t,o,i),()=>{e.removeEventListener(t,o,i)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.remove()}createElement(e,t){return t=t||this.getDefaultDocument(),t.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return t==="window"?window:t==="document"?e:t==="body"?e.body:null}getBaseHref(e){let t=tb();return t==null?null:nb(t)}resetBaseElement(){Ni=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return ol(document.cookie,e)}},Ni=null;function tb(){return Ni=Ni||document.head.querySelector("base"),Ni?Ni.getAttribute("href"):null}function nb(n){return new URL(n,document.baseURI).pathname}var zg=["alt","control","meta","shift"],ob={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},ib={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey},Bg=(()=>{class n extends Mi{constructor(t){super(t)}supports(t){return n.parseEventName(t)!=null}addEventListener(t,o,i,r){let s=n.parseEventName(o),a=n.eventCallback(s.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>yn().onAndCancel(t,s.domEventName,a,r))}static parseEventName(t){let o=t.toLowerCase().split("."),i=o.shift();if(o.length===0||!(i==="keydown"||i==="keyup"))return null;let r=n._normalizeKey(o.pop()),s="",a=o.indexOf("code");if(a>-1&&(o.splice(a,1),s="code."),zg.forEach(l=>{let c=o.indexOf(l);c>-1&&(o.splice(c,1),s+=l+".")}),s+=r,o.length!=0||r.length===0)return null;let d={};return d.domEventName=i,d.fullKey=s,d}static matchEventFullKeyCode(t,o){let i=ob[t.key]||t.key,r="";return o.indexOf("code.")>-1&&(i=t.code,r="code."),i==null||!i?!1:(i=i.toLowerCase(),i===" "?i="space":i==="."&&(i="dot"),zg.forEach(s=>{if(s!==i){let a=ib[s];a(t)&&(r+=s+".")}}),r+=i,r===o)}static eventCallback(t,o,i){return r=>{n.matchEventFullKeyCode(r,t)&&i.runGuarded(()=>o(r))}}static _normalizeKey(t){return t==="esc"?"escape":t}static \u0275fac=function(o){return new(o||n)(be(it))};static \u0275prov=V({token:n,factory:n.\u0275fac})}return n})();function ul(n,e,t){return D(this,null,function*(){let o=g({rootComponent:n},rb(e,t));return Sg(o)})}function rb(n,e){return{platformRef:e?.platformRef,appProviders:[...cb,...n?.providers??[]],platformProviders:lb}}function sb(){ds.makeCurrent()}function ab(){return new $d}function db(){return lg(document),document}var lb=[{provide:Eo,useValue:il},{provide:sg,useValue:sb,multi:!0},{provide:it,useFactory:db}];var cb=[{provide:ig,useValue:"root"},{provide:$d,useFactory:ab},{provide:as,useClass:is,multi:!0},{provide:as,useClass:Bg,multi:!0},Ri,{provide:xi,useClass:ll},{provide:ll,useExisting:xi},dl,{provide:Yr,useExisting:Ri},[]];var $g=(()=>{class n{_doc;constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static \u0275fac=function(o){return new(o||n)(be(it))};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var pb="@",hb=(()=>{class n{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=null;injector=h(jt);loadingSchedulerFn=h(gb,{optional:!0});_engine;constructor(t,o,i,r,s){this.doc=t,this.delegate=o,this.zone=i,this.animationType=r,this.moduleImpl=s}ngOnDestroy(){this._engine?.flush()}loadImpl(){let t=()=>this.moduleImpl??import("./chunk-6BIDZUAE.js").then(i=>i),o;return this.loadingSchedulerFn?o=this.loadingSchedulerFn(t):o=t(),o.catch(i=>{throw new Se(5300,!1)}).then(({\u0275createEngine:i,\u0275AnimationRendererFactory:r})=>{this._engine=i(this.animationType,this.doc);let s=new r(this.delegate,this._engine,this.zone);return this.delegate=s,s})}createRenderer(t,o){let i=this.delegate.createRenderer(t,o);if(i.\u0275type===0)return i;typeof i.throwOnSyntheticProps=="boolean"&&(i.throwOnSyntheticProps=!1);let r=new pl(i);return o?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(s=>{let a=s.createRenderer(t,o);r.use(a),this.scheduler??=this.injector.get(dg,null,{optional:!0}),this.scheduler?.notify(10)}).catch(s=>{r.use(i)}),r}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}componentReplaced(t){this._engine?.flush(),this.delegate.componentReplaced?.(t)}static \u0275fac=function(o){Gd()};static \u0275prov=V({token:n,factory:n.\u0275fac})}return n})(),pl=class{delegate;replay=[];\u0275type=1;constructor(e){this.delegate=e}use(e){if(this.delegate=e,this.replay!==null){for(let t of this.replay)t(e);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}get destroyNode(){return this.delegate.destroyNode}appendChild(e,t){this.delegate.appendChild(e,t)}insertBefore(e,t,o,i){this.delegate.insertBefore(e,t,o,i)}removeChild(e,t,o,i){this.delegate.removeChild(e,t,o,i)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,o,i){this.delegate.setAttribute(e,t,o,i)}removeAttribute(e,t,o){this.delegate.removeAttribute(e,t,o)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,o,i){this.delegate.setStyle(e,t,o,i)}removeStyle(e,t,o){this.delegate.removeStyle(e,t,o)}setProperty(e,t,o){this.shouldReplay(t)&&this.replay.push(i=>i.setProperty(e,t,o)),this.delegate.setProperty(e,t,o)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,o,i){return this.shouldReplay(t)&&this.replay.push(r=>r.listen(e,t,o,i)),this.delegate.listen(e,t,o,i)}shouldReplay(e){return this.replay!==null&&e.startsWith(pb)}},gb=new Oe("");function Hg(n="animations"){return Vd("NgAsyncAnimations"),jr([{provide:Yr,useFactory:()=>new hb(h(it),h(Ri),h(hn),n)},{provide:ag,useValue:n==="noop"?"NoopAnimations":"BrowserAnimations"}])}var ne="primary",qi=Symbol("RouteTitle"),yl=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){let t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}};function Qn(n){return new yl(n)}function hl(n,e,t){for(let o=0;o<n.length;o++){let i=n[o],r=e[o];if(i[0]===":")t[i.substring(1)]=r;else if(i!==r.path)return!1}return!0}function Kg(n,e,t){let o=t.path.split("/"),i=o.indexOf("**");if(i===-1){if(o.length>n.length||t.pathMatch==="full"&&(e.hasChildren()||o.length<n.length))return null;let d={},l=n.slice(0,o.length);return hl(o,l,d)?{consumed:l,posParams:d}:null}if(i!==o.lastIndexOf("**"))return null;let r=o.slice(0,i),s=o.slice(i+1);if(r.length+s.length>n.length||t.pathMatch==="full"&&e.hasChildren()&&t.path!=="**")return null;let a={};return!hl(r,n.slice(0,r.length),a)||!hl(s,n.slice(n.length-s.length),a)?null:{consumed:n,posParams:a}}function gs(n){return new Promise((e,t)=>{n.pipe(Tn()).subscribe({next:o=>e(o),error:o=>t(o)})})}function fb(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;++t)if(!tn(n[t],e[t]))return!1;return!0}function tn(n,e){let t=n?vl(n):void 0,o=e?vl(e):void 0;if(!t||!o||t.length!=o.length)return!1;let i;for(let r=0;r<t.length;r++)if(i=t[r],!Xg(n[i],e[i]))return!1;return!0}function vl(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}function Xg(n,e){if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return!1;let t=[...n].sort(),o=[...e].sort();return t.every((i,r)=>o[r]===i)}else return n===e}function mb(n){return n.length>0?n[n.length-1]:null}function to(n){return Od(n)?n:Kr(n)?Ft(Promise.resolve(n)):ie(n)}function Qg(n){return Od(n)?gs(n):Promise.resolve(n)}var yb={exact:tf,subset:nf},Jg={exact:vb,subset:bb,ignored:()=>!0},ef={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},bl={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function Ug(n,e,t){return yb[t.paths](n.root,e.root,t.matrixParams)&&Jg[t.queryParams](n.queryParams,e.queryParams)&&!(t.fragment==="exact"&&n.fragment!==e.fragment)}function vb(n,e){return tn(n,e)}function tf(n,e,t){if(!Xn(n.segments,e.segments)||!us(n.segments,e.segments,t)||n.numberOfChildren!==e.numberOfChildren)return!1;for(let o in e.children)if(!n.children[o]||!tf(n.children[o],e.children[o],t))return!1;return!0}function bb(n,e){return Object.keys(e).length<=Object.keys(n).length&&Object.keys(e).every(t=>Xg(n[t],e[t]))}function nf(n,e,t){return of(n,e,e.segments,t)}function of(n,e,t,o){if(n.segments.length>t.length){let i=n.segments.slice(0,t.length);return!(!Xn(i,t)||e.hasChildren()||!us(i,t,o))}else if(n.segments.length===t.length){if(!Xn(n.segments,t)||!us(n.segments,t,o))return!1;for(let i in e.children)if(!n.children[i]||!nf(n.children[i],e.children[i],o))return!1;return!0}else{let i=t.slice(0,n.segments.length),r=t.slice(n.segments.length);return!Xn(n.segments,i)||!us(n.segments,i,o)||!n.children[ne]?!1:of(n.children[ne],e,r,o)}}function us(n,e,t){return e.every((o,i)=>Jg[t](n[i].parameters,o.parameters))}var Bt=class{root;queryParams;fragment;_queryParamMap;constructor(e=new ye([],{}),t={},o=null){this.root=e,this.queryParams=t,this.fragment=o}get queryParamMap(){return this._queryParamMap??=Qn(this.queryParams),this._queryParamMap}toString(){return _b.serialize(this)}},ye=class{segments;children;parent=null;constructor(e,t){this.segments=e,this.children=t,Object.values(t).forEach(o=>o.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return ps(this)}},On=class{path;parameters;_parameterMap;constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap??=Qn(this.parameters),this._parameterMap}toString(){return sf(this)}};function wb(n,e){return Xn(n,e)&&n.every((t,o)=>tn(t.parameters,e[o].parameters))}function Xn(n,e){return n.length!==e.length?!1:n.every((t,o)=>t.path===e[o].path)}function Cb(n,e){let t=[];return Object.entries(n.children).forEach(([o,i])=>{o===ne&&(t=t.concat(e(i,o)))}),Object.entries(n.children).forEach(([o,i])=>{o!==ne&&(t=t.concat(e(i,o)))}),t}var Yi=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>new An})}return n})(),An=class{parse(e){let t=new Cl(e);return new Bt(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){let t=`/${Oi(e.root,!0)}`,o=Eb(e.queryParams),i=typeof e.fragment=="string"?`#${xb(e.fragment)}`:"";return`${t}${o}${i}`}},_b=new An;function ps(n){return n.segments.map(e=>sf(e)).join("/")}function Oi(n,e){if(!n.hasChildren())return ps(n);if(e){let t=n.children[ne]?Oi(n.children[ne],!1):"",o=[];return Object.entries(n.children).forEach(([i,r])=>{i!==ne&&o.push(`${i}:${Oi(r,!1)}`)}),o.length>0?`${t}(${o.join("//")})`:t}else{let t=Cb(n,(o,i)=>i===ne?[Oi(n.children[ne],!1)]:[`${i}:${Oi(o,!1)}`]);return Object.keys(n.children).length===1&&n.children[ne]!=null?`${ps(n)}/${t[0]}`:`${ps(n)}/(${t.join("//")})`}}function rf(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function ls(n){return rf(n).replace(/%3B/gi,";")}function xb(n){return encodeURI(n)}function wl(n){return rf(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function hs(n){return decodeURIComponent(n)}function Vg(n){return hs(n.replace(/\+/g,"%20"))}function sf(n){return`${wl(n.path)}${Sb(n.parameters)}`}function Sb(n){return Object.entries(n).map(([e,t])=>`;${wl(e)}=${wl(t)}`).join("")}function Eb(n){let e=Object.entries(n).map(([t,o])=>Array.isArray(o)?o.map(i=>`${ls(t)}=${ls(i)}`).join("&"):`${ls(t)}=${ls(o)}`).filter(t=>t);return e.length?`?${e.join("&")}`:""}var Pb=/^[^\/()?;#]+/;function gl(n){let e=n.match(Pb);return e?e[0]:""}var Ib=/^[^\/()?;=#]+/;function Db(n){let e=n.match(Ib);return e?e[0]:""}var Mb=/^[^=?&#]+/;function Tb(n){let e=n.match(Mb);return e?e[0]:""}var kb=/^[^&#]+/;function Rb(n){let e=n.match(kb);return e?e[0]:""}var Cl=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){for(;this.consumeOptional("/"););return this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new ye([],{}):new ye([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(e=0){if(e>50)throw new Se(4010,!1);if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let o={};this.peekStartsWith("/(")&&(this.capture("/"),o=this.parseParens(!0,e));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1,e)),(t.length>0||Object.keys(o).length>0)&&(i[ne]=new ye(t,o)),i}parseSegment(){let e=gl(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new Se(4009,!1);return this.capture(e),new On(hs(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let t=Db(this.remaining);if(!t)return;this.capture(t);let o="";if(this.consumeOptional("=")){let i=gl(this.remaining);i&&(o=i,this.capture(o))}e[hs(t)]=hs(o)}parseQueryParam(e){let t=Tb(this.remaining);if(!t)return;this.capture(t);let o="";if(this.consumeOptional("=")){let s=Rb(this.remaining);s&&(o=s,this.capture(o))}let i=Vg(t),r=Vg(o);if(Object.hasOwn(e,i)){let s=e[i];Array.isArray(s)||(s=[s],e[i]=s),s.push(r)}else e[i]=r}parseParens(e,t){let o=Object.create(null);for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=gl(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new Se(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=ne);let a=this.parseChildren(t+1);o[s??ne]=Object.keys(a).length===1&&a[ne]?a[ne]:new ye([],a),this.consumeOptional("//")}return o}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new Se(4011,!1)}};function af(n){return n.segments.length>0?new ye([],{[ne]:n}):n}function df(n){let e=Object.create(null);for(let[o,i]of Object.entries(n.children)){let r=df(i);if(o===ne&&r.segments.length===0&&r.hasChildren())for(let[s,a]of Object.entries(r.children))e[s]=a;else(r.segments.length>0||r.hasChildren())&&(e[o]=r)}let t=new ye(n.segments,e);return Nb(t)}function Nb(n){if(n.numberOfChildren===1&&n.children[ne]){let e=n.children[ne];return new ye(n.segments.concat(e.segments),e.children)}return n}function Oo(n){return n instanceof Bt}function lf(n,e,t=null,o=null,i=new An){let r=cf(n);return uf(r,e,t,o,i)}function cf(n){let e;function t(r){let s={};for(let d of r.children){let l=t(d);s[d.outlet]=l}let a=new ye(r.url,s);return r===n&&(e=a),a}let o=t(n.root),i=af(o);return e??i}function uf(n,e,t,o,i){let r=n;for(;r.parent;)r=r.parent;if(e.length===0)return fl(r,r,r,t,o,i);let s=Ob(e);if(s.toRoot())return fl(r,r,new ye([],{}),t,o,i);let a=Ab(s,r,n),d=a.processChildren?Li(a.segmentGroup,a.index,s.commands):hf(a.segmentGroup,a.index,s.commands);return fl(r,a.segmentGroup,d,t,o,i)}function fs(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function Bi(n){return typeof n=="object"&&n!=null&&n.outlets}function jg(n,e,t){n||="\u0275";let o=new Bt;return o.queryParams={[n]:e},t.parse(t.serialize(o)).queryParams[n]}function fl(n,e,t,o,i,r){let s={};for(let[l,c]of Object.entries(o??{}))s[l]=Array.isArray(c)?c.map(u=>jg(l,u,r)):jg(l,c,r);let a;n===e?a=t:a=pf(n,e,t);let d=af(df(a));return new Bt(d,s,i)}function pf(n,e,t){let o=Object.create(null);return Object.entries(n.children).forEach(([i,r])=>{r===e?o[i]=t:o[i]=pf(r,e,t)}),new ye(n.segments,o)}var ms=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,t,o){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=o,e&&o.length>0&&fs(o[0]))throw new Se(4003,!1);let i=o.find(Bi);if(i&&i!==mb(o))throw new Se(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function Ob(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new ms(!0,0,n);let e=0,t=!1,o=n.reduce((i,r,s)=>{if(typeof r=="object"&&r!=null){if(r.outlets){let a={};return Object.entries(r.outlets).forEach(([d,l])=>{a[d]=typeof l=="string"?l.split("/"):l}),[...i,{outlets:a}]}if(r.segmentPath)return[...i,r.segmentPath]}return typeof r!="string"?[...i,r]:s===0?(r.split("/").forEach((a,d)=>{d==0&&a==="."||(d==0&&a===""?t=!0:a===".."?e++:a!=""&&i.push(a))}),i):[...i,r]},[]);return new ms(t,e,o)}var Ro=class{segmentGroup;processChildren;index;constructor(e,t,o){this.segmentGroup=e,this.processChildren=t,this.index=o}};function Ab(n,e,t){if(n.isAbsolute)return new Ro(e,!0,0);if(!t)return new Ro(e,!1,NaN);if(t.parent===null)return new Ro(t,!0,0);let o=fs(n.commands[0])?0:1,i=t.segments.length-1+o;return Lb(t,i,n.numberOfDoubleDots)}function Lb(n,e,t){let o=n,i=e,r=t;for(;r>i;){if(r-=i,o=o.parent,!o)throw new Se(4005,!1);i=o.segments.length}return new Ro(o,!1,i-r)}function Fb(n){return Bi(n[0])?n[0].outlets:{[ne]:n}}function hf(n,e,t){if(n??=new ye([],{}),n.segments.length===0&&n.hasChildren())return Li(n,e,t);let o=zb(n,e,t),i=t.slice(o.commandIndex);if(o.match&&o.pathIndex<n.segments.length){let r=new ye(n.segments.slice(0,o.pathIndex),{});return r.children[ne]=new ye(n.segments.slice(o.pathIndex),n.children),Li(r,0,i)}else return o.match&&i.length===0?new ye(n.segments,{}):o.match&&!n.hasChildren()?_l(n,e,t):o.match?Li(n,0,i):_l(n,e,t)}function Li(n,e,t){if(t.length===0)return new ye(n.segments,{});{let o=Fb(t),i=Object.create(null);if(Object.keys(o).some(r=>r!==ne)&&n.children[ne]&&n.numberOfChildren===1&&n.children[ne].segments.length===0){let r=Li(n.children[ne],e,t);return new ye(n.segments,r.children)}return Object.entries(o).forEach(([r,s])=>{typeof s=="string"&&(s=[s]),s!==null&&(i[r]=hf(n.children[r],e,s))}),Object.entries(n.children).forEach(([r,s])=>{o[r]===void 0&&(i[r]=s)}),new ye(n.segments,i)}}function zb(n,e,t){let o=0,i=e,r={match:!1,pathIndex:0,commandIndex:0};for(;i<n.segments.length;){if(o>=t.length)return r;let s=n.segments[i],a=t[o];if(Bi(a))break;let d=`${a}`,l=o<t.length-1?t[o+1]:null;if(i>0&&d===void 0)break;if(d&&l&&typeof l=="object"&&l.outlets===void 0){if(!Gg(d,l,s))return r;o+=2}else{if(!Gg(d,{},s))return r;o++}i++}return{match:!0,pathIndex:i,commandIndex:o}}function _l(n,e,t){let o=n.segments.slice(0,e),i=0;for(;i<t.length;){let r=t[i];if(Bi(r)){let d=Bb(r.outlets);return new ye(o,d)}if(i===0&&fs(t[0])){let d=n.segments[e];o.push(new On(d.path,Wg(t[0]))),i++;continue}let s=Bi(r)?r.outlets[ne]:`${r}`,a=i<t.length-1?t[i+1]:null;s&&a&&fs(a)?(o.push(new On(s,Wg(a))),i+=2):(o.push(new On(s,{})),i++)}return new ye(o,{})}function Bb(n){let e={};return Object.entries(n).forEach(([t,o])=>{typeof o=="string"&&(o=[o]),o!==null&&(e[t]=_l(new ye([],{}),0,o))}),e}function Wg(n){let e={};return Object.entries(n).forEach(([t,o])=>e[t]=`${o}`),e}function Gg(n,e,t){return n==t.path&&tn(e,t.parameters)}var Fi="imperative",Ke=(function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n})(Ke||{}),Nt=class{id;url;constructor(e,t){this.id=e,this.url=t}},Jn=class extends Nt{type=Ke.NavigationStart;navigationTrigger;restoredState;constructor(e,t,o="imperative",i=null){super(e,t),this.navigationTrigger=o,this.restoredState=i}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},bn=class extends Nt{urlAfterRedirects;type=Ke.NavigationEnd;constructor(e,t,o){super(e,t),this.urlAfterRedirects=o}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},mt=(function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n[n.Aborted=4]="Aborted",n})(mt||{}),$i=(function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n})($i||{}),zt=class extends Nt{reason;code;type=Ke.NavigationCancel;constructor(e,t,o,i){super(e,t),this.reason=o,this.code=i}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}};function gf(n){return n instanceof zt&&(n.code===mt.Redirect||n.code===mt.SupersededByNewNavigation)}var wn=class extends Nt{reason;code;type=Ke.NavigationSkipped;constructor(e,t,o,i){super(e,t),this.reason=o,this.code=i}},eo=class extends Nt{error;target;type=Ke.NavigationError;constructor(e,t,o,i){super(e,t),this.error=o,this.target=i}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Hi=class extends Nt{urlAfterRedirects;state;type=Ke.RoutesRecognized;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},ys=class extends Nt{urlAfterRedirects;state;type=Ke.GuardsCheckStart;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},vs=class extends Nt{urlAfterRedirects;state;shouldActivate;type=Ke.GuardsCheckEnd;constructor(e,t,o,i,r){super(e,t),this.urlAfterRedirects=o,this.state=i,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},bs=class extends Nt{urlAfterRedirects;state;type=Ke.ResolveStart;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},ws=class extends Nt{urlAfterRedirects;state;type=Ke.ResolveEnd;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Cs=class{route;type=Ke.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},_s=class{route;type=Ke.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},xs=class{snapshot;type=Ke.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ss=class{snapshot;type=Ke.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Es=class{snapshot;type=Ke.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ps=class{snapshot;type=Ke.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}};var Ao=class{},Ui=class{},Lo=class{url;navigationBehaviorOptions;constructor(e,t){this.url=e,this.navigationBehaviorOptions=t}};function $b(n){return!(n instanceof Ao)&&!(n instanceof Lo)&&!(n instanceof Ui)}var Is=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new $o(this.rootInjector)}},$o=(()=>{class n{rootInjector;contexts=new Map;constructor(t){this.rootInjector=t}onChildOutletCreated(t,o){let i=this.getOrCreateContext(t);i.outlet=o,this.contexts.set(t,i)}onChildOutletDestroyed(t){let o=this.getContext(t);o&&(o.outlet=null,o.attachRef=null)}onOutletDeactivated(){let t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let o=this.getContext(t);return o||(o=new Is(this.rootInjector),this.contexts.set(t,o)),o}getContext(t){return this.contexts.get(t)||null}static \u0275fac=function(o){return new(o||n)(be(pn))};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ds=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){let t=xl(e,this._root);return t?t.children.map(o=>o.value):[]}firstChild(e){let t=xl(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){let t=Sl(e,this._root);return t.length<2?[]:t[t.length-2].children.map(i=>i.value).filter(i=>i!==e)}pathFromRoot(e){return Sl(e,this._root).map(t=>t.value)}};function xl(n,e){if(n===e.value)return e;for(let t of e.children){let o=xl(n,t);if(o)return o}return null}function Sl(n,e){if(n===e.value)return[e];for(let t of e.children){let o=Sl(n,t);if(o.length)return o.unshift(e),o}return[]}var Rt=class{value;children;constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}};function ko(n){let e={};return n&&n.children.forEach(t=>e[t.value.outlet]=t),e}var Vi=class extends Ds{snapshot;constructor(e,t){super(e),this.snapshot=t,Nl(this,e)}toString(){return this.snapshot.toString()}};function ff(n,e){let t=Hb(n,e),o=new ut([new On("",{})]),i=new ut({}),r=new ut({}),s=new ut({}),a=new ut(""),d=new Ln(o,i,s,a,r,ne,n,t.root);return d.snapshot=t.root,new Vi(new Rt(d,[]),t)}function Hb(n,e){let t={},o={},i={},s=new Fo([],t,i,"",o,ne,n,null,{},e);return new ji("",new Rt(s,[]))}var Ln=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;_localInjector;constructor(e,t,o,i,r,s,a,d){this.urlSubject=e,this.paramsSubject=t,this.queryParamsSubject=o,this.fragmentSubject=i,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=d,this.title=this.dataSubject?.pipe(N(l=>l[qi]))??ie(void 0),this.url=e,this.params=t,this.queryParams=o,this.fragment=i,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(N(e=>Qn(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(N(e=>Qn(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}},Ub="always";function Rl(n,e,t){let o,{routeConfig:i}=n;return e!==null&&(t==="always"||i?.path===""||!e.component&&!e.routeConfig?.loadComponent)?o={params:g(g({},e.params),n.params),data:g(g({},e.data),n.data),resolve:g(g(g(g({},n.data),e.data),i?.data),n._resolvedData)}:o={params:g({},n.params),data:g({},n.data),resolve:g(g({},n.data),n._resolvedData??{})},i&&yf(i)&&(o.resolve[qi]=i.title),o}var Fo=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[qi]}constructor(e,t,o,i,r,s,a,d,l,c){this.url=e,this.params=t,this.queryParams=o,this.fragment=i,this.data=r,this.outlet=s,this.component=a,this.routeConfig=d,this._resolve=l,this._environmentInjector=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=Qn(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Qn(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(o=>o.toString()).join("/"),t=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${t}')`}},ji=class extends Ds{url;constructor(e,t){super(t),this.url=e,Nl(this,t)}toString(){return mf(this._root)}};function Nl(n,e){e.value._routerState=n,e.children.forEach(t=>Nl(n,t))}function mf(n){let e=n.children.length>0?` { ${n.children.map(mf).join(", ")} } `:"";return`${n.value}${e}`}function ml(n){if(n.snapshot){let e=n.snapshot,t=n._futureSnapshot;n.snapshot=t,tn(e.queryParams,t.queryParams)||n.queryParamsSubject.next(t.queryParams),e.fragment!==t.fragment&&n.fragmentSubject.next(t.fragment),tn(e.params,t.params)||n.paramsSubject.next(t.params),fb(e.url,t.url)||n.urlSubject.next(t.url),tn(e.data,t.data)||n.dataSubject.next(t.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function El(n,e){let t=tn(n.params,e.params)&&wb(n.url,e.url),o=!n.parent!=!e.parent;return t&&!o&&(!n.parent||El(n.parent,e.parent))}function yf(n){return typeof n.title=="string"||n.title===null}var vf=new Oe(""),Zi=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=ne;activateEvents=new we;deactivateEvents=new we;attachEvents=new we;detachEvents=new we;routerOutletData=I();parentContexts=h($o);location=h(Zr);changeDetector=h(es);inputBinder=h(Rs,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(t){if(t.name){let{firstChange:o,previousValue:i}=t.name;if(o)return;this.isTrackedInParentContexts(i)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(i)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Se(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Se(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Se(4012,!1);this.location.detach();let t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,o){this.activated=t,this._activatedRoute=o,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){let t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,o){if(this.isActivated)throw new Se(4013,!1);this._activatedRoute=t;let i=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,d=new Pl(t,a,i.injector,this.routerOutletData);this.activated=i.createComponent(s,{index:i.length,injector:d,environmentInjector:o}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(o){return new(o||n)};static \u0275dir=me({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Gr]})}return n})(),Pl=class{route;childContexts;parent;outletData;constructor(e,t,o,i){this.route=e,this.childContexts=t,this.parent=o,this.outletData=i}get(e,t){return e===Ln?this.route:e===$o?this.childContexts:e===vf?this.outletData:this.parent.get(e,t)}},Rs=new Oe("");var Ol=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275cmp=F({type:n,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(o,i){o&1&&z(0,"router-outlet")},dependencies:[Zi],encapsulation:2,changeDetection:1})}return n})();function Al(n){let e=n.children&&n.children.map(Al),t=e?_(g({},n),{children:e}):g({},n);return!t.component&&!t.loadComponent&&(e||t.loadChildren)&&t.outlet&&t.outlet!==ne&&(t.component=Ol),t}function Vb(n,e,t){let o=new Set,i=Wi(n,e._root,t?t._root:void 0,o);return{newlyCreatedRoutes:o,state:new Vi(i,e)}}function Wi(n,e,t,o){if(t&&n.shouldReuseRoute(e.value,t.value.snapshot)){let i=t.value;i._futureSnapshot=e.value;let r=jb(n,e,t,o);return new Rt(i,r)}else{if(n.shouldAttach(e.value)){let s=n.retrieve(e.value);if(s!==null){let a=s.route;return a.value._futureSnapshot=e.value,a.children=e.children.map(d=>Wi(n,d,void 0,o)),a}}let i=Wb(e.value);o.add(i);let r=e.children.map(s=>Wi(n,s,void 0,o));return new Rt(i,r)}}function jb(n,e,t,o){return e.children.map(i=>{for(let r of t.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return Wi(n,i,r,o);return Wi(n,i,void 0,o)})}function Wb(n){return new Ln(new ut(n.url),new ut(n.params),new ut(n.queryParams),new ut(n.fragment),new ut(n.data),n.outlet,n.component,n)}var zo=class{redirectTo;navigationBehaviorOptions;constructor(e,t){this.redirectTo=e,this.navigationBehaviorOptions=t}},bf="ngNavigationCancelingError";function Ms(n,e){let{redirectTo:t,navigationBehaviorOptions:o}=Oo(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,i=wf(!1,mt.Redirect);return i.url=t,i.navigationBehaviorOptions=o,i}function wf(n,e){let t=new Error(`NavigationCancelingError: ${n||""}`);return t[bf]=!0,t.cancellationCode=e,t}function Gb(n){return Cf(n)&&Oo(n.url)}function Cf(n){return!!n&&n[bf]}var Il=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,t,o,i,r){this.routeReuseStrategy=e,this.futureState=t,this.currState=o,this.forwardEvent=i,this.inputBindingEnabled=r}activate(e){let t=this.futureState._root,o=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,o,e),ml(this.futureState.root),this.activateChildRoutes(t,o,e)}deactivateChildRoutes(e,t,o){let i=ko(t);e.children.forEach(r=>{let s=r.value.outlet;this.deactivateRoutes(r,i[s],o),delete i[s]}),Object.values(i).forEach(r=>{this.deactivateRouteAndItsChildren(r,o)})}deactivateRoutes(e,t,o){let i=e.value,r=t?t.value:null;if(i===r)if(i.component){let s=o.getContext(i.outlet);s&&this.deactivateChildRoutes(e,t,s.children)}else this.deactivateChildRoutes(e,t,o);else r&&this.deactivateRouteAndItsChildren(t,o)}deactivateRouteAndItsChildren(e,t){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){let o=t.getContext(e.value.outlet),i=o&&e.value.component?o.children:t,r=ko(e);for(let s of Object.values(r))this.deactivateRouteAndItsChildren(s,i);if(o&&o.outlet){let s=o.outlet.detach(),a=o.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:s,route:e,contexts:a})}}deactivateRouteAndOutlet(e,t){let o=t.getContext(e.value.outlet),i=o&&e.value.component?o.children:t,r=ko(e);for(let s of Object.values(r))this.deactivateRouteAndItsChildren(s,i);o&&(o.outlet&&(o.outlet.deactivate(),o.children.onOutletDeactivated()),o.attachRef=null,o.route=null),e.value._localInjector?.destroy()}activateChildRoutes(e,t,o){let i=ko(t);e.children.forEach(r=>{this.activateRoutes(r,i[r.value.outlet],o),this.forwardEvent(new Ps(r.value.snapshot))}),e.children.length&&this.forwardEvent(new Ss(e.value.snapshot))}activateRoutes(e,t,o){let i=e.value,r=t?t.value:null;if(ml(i),i===r)if(i.component){let s=o.getOrCreateContext(i.outlet);this.activateChildRoutes(e,t,s.children)}else this.activateChildRoutes(e,t,o);else if(i.component){let s=o.getOrCreateContext(i.outlet);if(this.routeReuseStrategy.shouldAttach(i.snapshot)){let a=this.routeReuseStrategy.retrieve(i.snapshot);this.routeReuseStrategy.store(i.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),ml(a.route.value),this.activateChildRoutes(e,null,s.children)}else s.attachRef=null,s.route=i,s.outlet&&s.outlet.activateWith(i,s.injector),this.activateChildRoutes(e,null,s.children)}else this.activateChildRoutes(e,null,o)}},Ts=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},No=class{component;route;constructor(e,t){this.component=e,this.route=t}};function qb(n,e,t){let o=n._root,i=e?e._root:null;return Ai(o,i,t,[o.value])}function Yb(n){let e=n.routeConfig?n.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:n,guards:e}}function Ho(n,e){let t=Symbol(),o=e.get(n,t);return o===t?typeof n=="function"&&!og(n)?n:e.get(n):o}function Ai(n,e,t,o,i={canDeactivateChecks:[],canActivateChecks:[]}){let r=ko(e);return n.children.forEach(s=>{Zb(s,r[s.value.outlet],t,o.concat([s.value]),i),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>zi(a,t.getContext(s),i)),i}function Zb(n,e,t,o,i={canDeactivateChecks:[],canActivateChecks:[]}){let r=n.value,s=e?e.value:null,a=t?t.getContext(n.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){let d=Kb(s,r,r.routeConfig.runGuardsAndResolvers);d?i.canActivateChecks.push(new Ts(o)):(r.data=s.data,r._resolvedData=s._resolvedData),r.component?Ai(n,e,a?a.children:null,o,i):Ai(n,e,t,o,i),d&&a&&a.outlet&&a.outlet.isActivated&&i.canDeactivateChecks.push(new No(a.outlet.component,s))}else s&&zi(e,a,i),i.canActivateChecks.push(new Ts(o)),r.component?Ai(n,null,a?a.children:null,o,i):Ai(n,null,t,o,i);return i}function Kb(n,e,t){if(typeof t=="function")return Ct(e._environmentInjector,()=>t(n,e));switch(t){case"pathParamsChange":return!Xn(n.url,e.url);case"pathParamsOrQueryParamsChange":return!Xn(n.url,e.url)||!tn(n.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!El(n,e)||!tn(n.queryParams,e.queryParams);default:return!El(n,e)}}function zi(n,e,t){let o=ko(n),i=n.value;Object.entries(o).forEach(([r,s])=>{i.component?e?zi(s,e.children.getContext(r),t):zi(s,null,t):zi(s,e,t)}),i.component?e&&e.outlet&&e.outlet.isActivated?t.canDeactivateChecks.push(new No(e.outlet.component,i)):t.canDeactivateChecks.push(new No(null,i)):t.canDeactivateChecks.push(new No(null,i))}function Ki(n){return typeof n=="function"}function Xb(n){return typeof n=="boolean"}function Qb(n){return n&&Ki(n.canLoad)}function Jb(n){return n&&Ki(n.canActivate)}function ew(n){return n&&Ki(n.canActivateChild)}function tw(n){return n&&Ki(n.canDeactivate)}function nw(n){return n&&Ki(n.canMatch)}function _f(n){return n instanceof Xh||n?.name==="EmptyError"}var cs=Symbol("INITIAL_VALUE");function Bo(){return ve(n=>Ne(n.map(e=>e.pipe(Jt(1),ae(cs)))).pipe(N(e=>{for(let t of e)if(t!==!0){if(t===cs)return cs;if(t===!1||ow(t))return t}return!0}),xe(e=>e!==cs),Jt(1)))}function ow(n){return Oo(n)||n instanceof zo}function xf(n){return n.aborted?ie(void 0).pipe(Jt(1)):new Br(e=>{let t=()=>{e.next(),e.complete()};return n.addEventListener("abort",t),()=>n.removeEventListener("abort",t)})}function Sf(n){return So(xf(n))}function iw(n){return Mn(e=>{let{targetSnapshot:t,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:r}}=e;return r.length===0&&i.length===0?ie(_(g({},e),{guardsResult:!0})):rw(r,t,o).pipe(Mn(s=>s&&Xb(s)?sw(t,i,n):ie(s)),N(s=>_(g({},e),{guardsResult:s})))})}function rw(n,e,t){return Ft(n).pipe(Mn(o=>uw(o.component,o.route,t,e)),Tn(o=>o!==!0,!0))}function sw(n,e,t){return Ft(e).pipe(Ld(o=>$r(dw(o.route.parent,t),aw(o.route,t),cw(n,o.path),lw(n,o.route))),Tn(o=>o!==!0,!0))}function aw(n,e){return n!==null&&e&&e(new Es(n)),ie(!0)}function dw(n,e){return n!==null&&e&&e(new xs(n)),ie(!0)}function lw(n,e){let t=e.routeConfig?e.routeConfig.canActivate:null;if(!t||t.length===0)return ie(!0);let o=t.map(i=>Hr(()=>{let r=e._environmentInjector,s=Ho(i,r),a=Jb(s)?s.canActivate(e,n):Ct(r,()=>s(e,n));return to(a).pipe(Tn())}));return ie(o).pipe(Bo())}function cw(n,e){let t=e[e.length-1],i=e.slice(0,e.length-1).reverse().map(r=>Yb(r)).filter(r=>r!==null).map(r=>Hr(()=>{let s=r.guards.map(a=>{let d=r.node._environmentInjector,l=Ho(a,d),c=ew(l)?l.canActivateChild(t,n):Ct(d,()=>l(t,n));return to(c).pipe(Tn())});return ie(s).pipe(Bo())}));return ie(i).pipe(Bo())}function uw(n,e,t,o){let i=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!i||i.length===0)return ie(!0);let r=i.map(s=>{let a=e._environmentInjector,d=Ho(s,a),l=tw(d)?d.canDeactivate(n,e,t,o):Ct(a,()=>d(n,e,t,o));return to(l).pipe(Tn())});return ie(r).pipe(Bo())}function pw(n,e,t,o,i){let r=e.canLoad;if(r===void 0||r.length===0)return ie(!0);let s=r.map(a=>{let d=Ho(a,n),l=Qb(d)?d.canLoad(e,t):Ct(n,()=>d(e,t)),c=to(l);return i?c.pipe(Sf(i)):c});return ie(s).pipe(Bo(),Ef(o))}function Ef(n){return Yh(Vt(e=>{if(typeof e!="boolean")throw Ms(n,e)}),N(e=>e===!0))}function hw(n,e,t,o,i,r){let s=e.canMatch;if(!s||s.length===0)return ie(!0);let a=s.map(d=>{let l=Ho(d,n),c=nw(l)?l.canMatch(e,t,i):Ct(n,()=>l(e,t,i));return to(c).pipe(Sf(r))});return ie(a).pipe(Bo(),Ef(o))}var vn=class n extends Error{segmentGroup;constructor(e){super(),this.segmentGroup=e||null,Object.setPrototypeOf(this,n.prototype)}},Gi=class n extends Error{urlTree;constructor(e){super(),this.urlTree=e,Object.setPrototypeOf(this,n.prototype)}};function gw(n){throw new Se(4e3,!1)}function fw(n){throw wf(!1,mt.GuardRejected)}var Dl=class{urlSerializer;urlTree;constructor(e,t){this.urlSerializer=e,this.urlTree=t}lineralizeSegments(e,t){return D(this,null,function*(){let o=[],i=t.root;for(;;){if(o=o.concat(i.segments),i.numberOfChildren===0)return o;if(i.numberOfChildren>1||!i.children[ne])throw gw(`${e.redirectTo}`);i=i.children[ne]}})}applyRedirectCommands(e,t,o,i,r){return D(this,null,function*(){let s=yield mw(t,i,r);if(s instanceof Bt)throw new Gi(s);let a=this.applyRedirectCreateUrlTree(s,this.urlSerializer.parse(s),e,o);if(s[0]==="/")throw new Gi(a);return a})}applyRedirectCreateUrlTree(e,t,o,i){let r=this.createSegmentGroup(e,t.root,o,i);return new Bt(r,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){let o={};return Object.entries(e).forEach(([i,r])=>{if(typeof r=="string"&&r[0]===":"){let a=r.substring(1);o[i]=t[a]}else o[i]=r}),o}createSegmentGroup(e,t,o,i){let r=this.createSegments(e,t.segments,o,i),s=Object.create(null);return Object.entries(t.children).forEach(([a,d])=>{s[a]=this.createSegmentGroup(e,d,o,i)}),new ye(r,s)}createSegments(e,t,o,i){return t.map(r=>r.path[0]===":"?this.findPosParam(e,r,i):this.findOrReturn(r,o))}findPosParam(e,t,o){let i=o[t.path.substring(1)];if(!i)throw new Se(4001,!1);return i}findOrReturn(e,t){let o=0;for(let i of t){if(i.path===e.path)return t.splice(o),i;o++}return e}};function mw(n,e,t){if(typeof n=="string")return Promise.resolve(n);let o=n;return gs(to(Ct(t,()=>o(e))))}function yw(n,e){return n.providers&&!n._injector&&(n._injector=qd(n.providers,e,`Route: ${n.path}`)),n._injector??e}function Gt(n){return n.outlet||ne}function vw(n,e){let t=n.filter(o=>Gt(o)===e);return t.push(...n.filter(o=>Gt(o)!==e)),t}var Ml={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Pf(n){return{routeConfig:n.routeConfig,url:n.url,params:n.params,queryParams:n.queryParams,fragment:n.fragment,data:n.data,outlet:n.outlet,title:n.title,paramMap:n.paramMap,queryParamMap:n.queryParamMap}}function bw(n,e,t,o,i,r,s){let a=If(n,e,t);if(!a.matched)return ie(a);let d=Pf(r(a));return o=yw(e,o),hw(o,e,t,i,d,s).pipe(N(l=>l===!0?a:g({},Ml)))}function If(n,e,t){if(e.path==="")return e.pathMatch==="full"&&(n.hasChildren()||t.length>0)?g({},Ml):{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};let i=(e.matcher||Kg)(t,n,e);if(!i)return g({},Ml);let r={};Object.entries(i.posParams??{}).forEach(([a,d])=>{r[a]=d.path});let s=i.consumed.length>0?g(g({},r),i.consumed[i.consumed.length-1].parameters):r;return{matched:!0,consumedSegments:i.consumed,remainingSegments:t.slice(i.consumed.length),parameters:s,positionalParamSegments:i.posParams??{}}}function qg(n,e,t,o,i){return t.length>0&&_w(n,t,o,i)?{segmentGroup:new ye(e,Cw(o,new ye(t,n.children))),slicedSegments:[]}:t.length===0&&xw(n,t,o)?{segmentGroup:new ye(n.segments,ww(n,t,o,n.children)),slicedSegments:t}:{segmentGroup:new ye(n.segments,n.children),slicedSegments:t}}function ww(n,e,t,o){let i={};for(let r of t)if(Ns(n,e,r)&&!o[Gt(r)]){let s=new ye([],{});i[Gt(r)]=s}return g(g({},o),i)}function Cw(n,e){let t={};t[ne]=e;for(let o of n)if(o.path===""&&Gt(o)!==ne){let i=new ye([],{});t[Gt(o)]=i}return t}function _w(n,e,t,o){return t.some(i=>!Ns(n,e,i)||!(Gt(i)!==ne)?!1:!(o!==void 0&&Gt(i)===o))}function xw(n,e,t){return t.some(o=>Ns(n,e,o))}function Ns(n,e,t){return(n.hasChildren()||e.length>0)&&t.pathMatch==="full"?!1:t.path===""}function Sw(n,e,t){return e.length===0&&!n.children[t]}var Tl=class{};function Ew(n,e,t,o,i,r,s,a){return D(this,null,function*(){return new kl(n,e,t,o,i,s,r,a).recognize()})}var Pw=31,kl=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,t,o,i,r,s,a,d){this.injector=e,this.configLoader=t,this.rootComponentType=o,this.config=i,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=d,this.applyRedirects=new Dl(this.urlSerializer,this.urlTree)}noMatchError(e){return new Se(4002,`'${e.segmentGroup}'`)}recognize(){return D(this,null,function*(){let e=qg(this.urlTree.root,[],[],this.config).segmentGroup,{children:t,rootSnapshot:o}=yield this.match(e),i=new Rt(o,t),r=new ji("",i),s=lf(o,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(s),{state:r,tree:s}})}match(e){return D(this,null,function*(){let t=new Fo([],Object.freeze({}),Object.freeze(g({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),ne,this.rootComponentType,null,{},this.injector);try{return{children:yield this.processSegmentGroup(this.injector,this.config,e,ne,t),rootSnapshot:t}}catch(o){if(o instanceof Gi)return this.urlTree=o.urlTree,this.match(o.urlTree.root);throw o instanceof vn?this.noMatchError(o):o}})}processSegmentGroup(e,t,o,i,r){return D(this,null,function*(){if(o.segments.length===0&&o.hasChildren())return this.processChildren(e,t,o,r);let s=yield this.processSegment(e,t,o,o.segments,i,!0,r);return s instanceof Rt?[s]:[]})}processChildren(e,t,o,i){return D(this,null,function*(){let r=[];for(let d of Object.keys(o.children))d==="primary"?r.unshift(d):r.push(d);let s=[];for(let d of r){let l=o.children[d],c=vw(t,d),u=yield this.processSegmentGroup(e,c,l,d,i);s.push(...u)}let a=Df(s);return Iw(a),a})}processSegment(e,t,o,i,r,s,a){return D(this,null,function*(){for(let d of t)try{return yield this.processSegmentAgainstRoute(d._injector??e,t,d,o,i,r,s,a)}catch(l){if(l instanceof vn||_f(l))continue;throw l}if(Sw(o,i,r))return new Tl;throw new vn(o)})}processSegmentAgainstRoute(e,t,o,i,r,s,a,d){return D(this,null,function*(){if(Gt(o)!==s&&(s===ne||!Ns(i,r,o)))throw new vn(i);if(o.redirectTo===void 0)return this.matchSegmentAgainstRoute(e,i,o,r,s,d);if(this.allowRedirects&&a)return this.expandSegmentAgainstRouteUsingRedirect(e,i,t,o,r,s,d);throw new vn(i)})}expandSegmentAgainstRouteUsingRedirect(e,t,o,i,r,s,a){return D(this,null,function*(){let{matched:d,parameters:l,consumedSegments:c,positionalParamSegments:u,remainingSegments:w}=If(t,i,r);if(!d)throw new vn(t);typeof i.redirectTo=="string"&&i.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>Pw&&(this.allowRedirects=!1));let S=this.createSnapshot(e,i,r,l,a);if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let k=yield this.applyRedirects.applyRedirectCommands(c,i.redirectTo,u,Pf(S),e),W=yield this.applyRedirects.lineralizeSegments(i,k);return this.processSegment(e,o,t,W.concat(w),s,!1,a)})}createSnapshot(e,t,o,i,r){let s=new Fo(o,i,Object.freeze(g({},this.urlTree.queryParams)),this.urlTree.fragment,Mw(t),Gt(t),t.component??t._loadedComponent??null,t,Tw(t),e),a=Rl(s,r,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}matchSegmentAgainstRoute(e,t,o,i,r,s){return D(this,null,function*(){if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let a=ke=>this.createSnapshot(e,o,ke.consumedSegments,ke.parameters,s),d=yield gs(bw(t,o,i,e,this.urlSerializer,a,this.abortSignal));if(o.path==="**"&&(t.children={}),!d?.matched)throw new vn(t);e=o._injector??e;let{routes:l}=yield this.getChildConfig(e,o,i),c=o._loadedInjector??e,{parameters:u,consumedSegments:w,remainingSegments:S}=d,k=this.createSnapshot(e,o,w,u,s),{segmentGroup:W,slicedSegments:Z}=qg(t,w,S,l,r);if(Z.length===0&&W.hasChildren()){let ke=yield this.processChildren(c,l,W,k);return new Rt(k,ke)}if(l.length===0&&Z.length===0)return new Rt(k,[]);let X=Gt(o)===r,he=yield this.processSegment(c,l,W,Z,X?ne:r,!0,k);return new Rt(k,he instanceof Rt?[he]:[])})}getChildConfig(e,t,o){return D(this,null,function*(){if(t.children)return{routes:t.children,injector:e};if(t.loadChildren){if(t._loadedRoutes!==void 0){let r=t._loadedNgModuleFactory;return r&&!t._loadedInjector&&(t._loadedInjector=r.create(e).injector),{routes:t._loadedRoutes,injector:t._loadedInjector}}if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);if(yield gs(pw(e,t,o,this.urlSerializer,this.abortSignal))){let r=yield this.configLoader.loadChildren(e,t);return t._loadedRoutes=r.routes,t._loadedInjector=r.injector,t._loadedNgModuleFactory=r.factory,r}throw fw(t)}return{routes:[],injector:e}})}};function Iw(n){n.sort((e,t)=>e.value.outlet===ne?-1:t.value.outlet===ne?1:e.value.outlet.localeCompare(t.value.outlet))}function Dw(n){let e=n.value.routeConfig;return e&&e.path===""}function Df(n){let e=[],t=new Set;for(let o of n){if(!Dw(o)){e.push(o);continue}let i=e.find(r=>o.value.routeConfig===r.value.routeConfig);i!==void 0?(i.children.push(...o.children),t.add(i)):e.push(o)}for(let o of t){let i=Df(o.children);e.push(new Rt(o.value,i))}return e.filter(o=>!t.has(o))}function Mw(n){return n.data||{}}function Tw(n){return n.resolve||{}}function kw(n,e,t,o,i,r,s){return Mn(a=>D(null,null,function*(){let{state:d,tree:l}=yield Ew(n,e,t,o,a.extractedUrl,i,r,s);return _(g({},a),{targetSnapshot:d,urlAfterRedirects:l})}))}function Rw(n){return Mn(e=>{let{targetSnapshot:t,guards:{canActivateChecks:o}}=e;if(!o.length)return ie(e);let i=new Set(o.map(a=>a.route)),r=new Set;for(let a of i)if(!r.has(a))for(let d of Mf(a))r.add(d);let s=0;return Ft(r).pipe(Ld(a=>i.has(a)?Nw(a,t,n):(a.data=Rl(a,a.parent,n).resolve,ie(void 0))),Vt(()=>s++),Fd(1),Mn(a=>s===r.size?ie(e):Pt))})}function Mf(n){let e=n.children.map(t=>Mf(t)).flat();return[n,...e]}function Nw(n,e,t){let o=n.routeConfig,i=n._resolve;return o?.title!==void 0&&!yf(o)&&(i[qi]=o.title),Hr(()=>(n.data=Rl(n,n.parent,t).resolve,Ow(i,n,e).pipe(N(r=>(n._resolvedData=r,n.data=g(g({},n.data),r),null)))))}function Ow(n,e,t){let o=vl(n);if(o.length===0)return ie({});let i={};return Ft(o).pipe(Mn(r=>Aw(n[r],e,t).pipe(Tn(),Vt(s=>{if(s instanceof zo)throw Ms(new An,s);i[r]=s}))),Fd(1),N(()=>i),Ad(r=>_f(r)?Pt:Kh(r)))}function Aw(n,e,t){let o=e._environmentInjector,i=Ho(n,o),r=i.resolve?i.resolve(e,t):Ct(o,()=>i(e,t));return to(r)}function Yg(n){return ve(e=>{let t=n(e);return t?Ft(t).pipe(N(()=>e)):ie(e)})}var Ll=(()=>{class n{buildTitle(t){let o,i=t.root;for(;i!==void 0;)o=this.getResolvedTitleForRoute(i)??o,i=i.children.find(r=>r.outlet===ne);return o}getResolvedTitleForRoute(t){return t.data[qi]}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>h(Tf)})}return n})(),Tf=(()=>{class n extends Ll{title;constructor(t){super(),this.title=t}updateTitle(t){let o=this.buildTitle(t);o!==void 0&&this.title.setTitle(o)}static \u0275fac=function(o){return new(o||n)(be($g))};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Xi=new Oe("",{factory:()=>({})}),Qi=new Oe(""),kf=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=h(Cg);loadComponent(t,o){return D(this,null,function*(){if(this.componentLoaders.get(o))return this.componentLoaders.get(o);if(o._loadedComponent)return Promise.resolve(o._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(o);let i=D(this,null,function*(){try{let r=yield Qg(Ct(t,()=>o.loadComponent())),s=yield Nf(Jd(r));return this.onLoadEndListener&&this.onLoadEndListener(o),o._loadedComponent=s,s}finally{this.componentLoaders.delete(o)}});return this.componentLoaders.set(o,i),i})}loadChildren(t,o){if(this.childrenLoaders.get(o))return this.childrenLoaders.get(o);if(o._loadedRoutes)return Promise.resolve({routes:o._loadedRoutes,injector:o._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(o);let i=D(this,null,function*(){try{let r=yield Rf(o,this.compiler,t,this.onLoadEndListener);return o._loadedRoutes=r.routes,o._loadedInjector=r.injector,o._loadedNgModuleFactory=r.factory,r}finally{this.childrenLoaders.delete(o)}});return this.childrenLoaders.set(o,i),i}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function Rf(n,e,t,o){return D(this,null,function*(){let i=yield Qg(Ct(t,()=>n.loadChildren())),r=yield Nf(Jd(i)),s;r instanceof gg||Array.isArray(r)?s=r:s=yield e.compileModuleAsync(r),o&&o(n);let a,d,l=!1,c;return Array.isArray(s)?(d=s,l=!0):(a=s.create(t).injector,c=s,d=a.get(Qi,[],{optional:!0,self:!0}).flat()),{routes:d.map(Al),injector:a,factory:c}})}function Nf(n){return D(this,null,function*(){return n})}var Os=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>h(Lw)})}return n})(),Lw=(()=>{class n{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,o){return t}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})(),Of=new Oe("");var Af=new Oe(""),Fw=()=>{},Lf=new Oe(""),Ff=(()=>{class n{currentNavigation=$(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=$(null);events=new ot;transitionAbortWithErrorSubject=new ot;configLoader=h(kf);environmentInjector=h(pn);destroyRef=h(qe);urlSerializer=h(Yi);rootContexts=h($o);location=h(To);inputBindingEnabled=h(Rs,{optional:!0})!==null;titleStrategy=h(Ll);options=h(Xi,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||Ub;urlHandlingStrategy=h(Os);createViewTransition=h(Of,{optional:!0});navigationErrorHandler=h(Lf,{optional:!0});activatedRouteInjectorFeature=h(Af,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>ie(void 0);rootComponentType=null;destroyed=!1;constructor(){let t=i=>this.events.next(new Cs(i)),o=i=>this.events.next(new _s(i));this.configLoader.onLoadEndListener=o,this.configLoader.onLoadStartListener=t,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(t){let o=++this.navigationId;Ie(()=>{this.transitions?.next(_(g({},t),{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:o,routesRecognizeHandler:{},beforeActivateHandler:{}}))})}setupNavigations(t){return this.transitions=new ut(null),this.transitions.pipe(xe(o=>o!==null),ve(o=>{let i=!0,r=!1,s=new AbortController,a=()=>!r&&this.currentTransition?.id===o.id;return ie(o).pipe(ve(d=>{if(this.navigationId>o.id)return this.cancelNavigationTransition(o,"",mt.SupersededByNewNavigation),Pt;this.currentTransition=o;let l=this.lastSuccessfulNavigation();this.currentNavigation.set({id:d.id,initialUrl:d.rawUrl,extractedUrl:d.extractedUrl,targetBrowserUrl:typeof d.extras.browserUrl=="string"?this.urlSerializer.parse(d.extras.browserUrl):d.extras.browserUrl,trigger:d.source,extras:d.extras,previousNavigation:l?_(g({},l),{previousNavigation:null}):null,abort:()=>s.abort(),routesRecognizeHandler:d.routesRecognizeHandler,beforeActivateHandler:d.beforeActivateHandler});let c=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),u=d.extras.onSameUrlNavigation??t.onSameUrlNavigation;if(!c&&u!=="reload")return this.events.next(new wn(d.id,this.urlSerializer.serialize(d.rawUrl),"",$i.IgnoredSameUrlNavigation)),d.resolve(!1),Pt;if(this.urlHandlingStrategy.shouldProcessUrl(d.rawUrl))return ie(d).pipe(ve(w=>(this.events.next(new Jn(w.id,this.urlSerializer.serialize(w.extractedUrl),w.source,w.restoredState)),w.id!==this.navigationId?Pt:Promise.resolve(w))),kw(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy,s.signal),Vt(w=>{o.targetSnapshot=w.targetSnapshot,o.urlAfterRedirects=w.urlAfterRedirects,this.currentNavigation.update(S=>(S.finalUrl=w.urlAfterRedirects,S)),this.events.next(new Ui)}),ve(w=>Ft(o.routesRecognizeHandler.deferredHandle??ie(void 0)).pipe(N(()=>w))),Vt(()=>{let w=new Hi(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(w)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(d.currentRawUrl)){let{id:w,extractedUrl:S,source:k,restoredState:W,extras:Z}=d,X=new Jn(w,this.urlSerializer.serialize(S),k,W);this.events.next(X);let he=ff(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=o=_(g({},d),{targetSnapshot:he,urlAfterRedirects:S,extras:_(g({},Z),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.update(ke=>(ke.finalUrl=S,ke)),ie(o)}else return this.events.next(new wn(d.id,this.urlSerializer.serialize(d.extractedUrl),"",$i.IgnoredByUrlHandlingStrategy)),d.resolve(!1),Pt}),N(d=>{let l=new ys(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);return this.events.next(l),this.currentTransition=o=_(g({},d),{guards:qb(d.targetSnapshot,d.currentSnapshot,this.rootContexts)}),o}),iw(d=>this.events.next(d)),ve(d=>{if(o.guardsResult=d.guardsResult,d.guardsResult&&typeof d.guardsResult!="boolean")throw Ms(this.urlSerializer,d.guardsResult);let l=new vs(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot,!!d.guardsResult);if(this.events.next(l),!a())return Pt;if(!d.guardsResult)return this.cancelNavigationTransition(d,"",mt.GuardRejected),Pt;if(d.guards.canActivateChecks.length===0)return ie(d);let c=new bs(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);if(this.events.next(c),!a())return Pt;let u=!1;return ie(d).pipe(Rw(this.paramsInheritanceStrategy),Vt({next:()=>{u=!0;let w=new ws(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(w)},complete:()=>{u||this.cancelNavigationTransition(d,"",mt.NoDataFromResolver)}}))}),Yg(d=>{let l=u=>{let w=[];if(u.routeConfig?._loadedComponent)u.component=u.routeConfig?._loadedComponent;else if(u.routeConfig?.loadComponent){let S=u._environmentInjector;w.push(this.configLoader.loadComponent(S,u.routeConfig).then(k=>{u.component=k}))}for(let S of u.children)w.push(...l(S));return w},c=l(d.targetSnapshot.root);return c.length===0?ie(d):Ft(Promise.all(c).then(()=>d))}),ve(d=>{let{newlyCreatedRoutes:l,state:c}=Vb(t.routeReuseStrategy,d.targetSnapshot,d.currentRouterState);return this.currentTransition=o=d=_(g({},d),{targetRouterState:c,newlyCreatedRoutes:l}),this.currentNavigation.update(u=>(u.targetRouterState=c,u)),ie(d)}),this.activatedRouteInjectorFeature?.operator()??(d=>d),Yg(()=>this.afterPreactivation()),ve(()=>{let{currentSnapshot:d,targetSnapshot:l}=o,c=this.createViewTransition?.(this.environmentInjector,d.root,l.root);return c?Ft(c).pipe(N(()=>o)):ie(o)}),Jt(1),ve(d=>{i=!1,this.events.next(new Ao);let l=o.beforeActivateHandler.deferredHandle;return l?Ft(l.then(()=>d)):ie(d)}),Vt(d=>{new Il(t.routeReuseStrategy,o.targetRouterState,o.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),d.newlyCreatedRoutes?.clear(),a()&&(r=!0,this.currentNavigation.update(l=>(l.abort=Fw,l)),this.lastSuccessfulNavigation.set(Ie(this.currentNavigation)),this.events.next(new bn(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects))),this.titleStrategy?.updateTitle(d.targetRouterState.snapshot),d.resolve(!0))}),So(xf(s.signal).pipe(xe(()=>!r&&i),Vt(()=>{this.cancelNavigationTransition(o,s.signal.reason+"",mt.Aborted)}))),Vt({complete:()=>{r=!0}}),So(this.transitionAbortWithErrorSubject.pipe(Vt(d=>{throw d}))),ng(()=>{s.abort(),r||this.cancelNavigationTransition(o,"",mt.SupersededByNewNavigation),this.currentTransition?.id===o.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),Ad(d=>{if(r=!0,Zg(o),this.destroyed)return o.resolve(!1),Pt;if(Cf(d))this.events.next(new zt(o.id,this.urlSerializer.serialize(o.extractedUrl),d.message,d.cancellationCode)),Gb(d)?this.events.next(new Lo(d.url,d.navigationBehaviorOptions)):o.resolve(!1);else{let l=new eo(o.id,this.urlSerializer.serialize(o.extractedUrl),d,o.targetSnapshot??void 0);try{let c=Ct(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(c instanceof zo){let{message:u,cancellationCode:w}=Ms(this.urlSerializer,c);this.events.next(new zt(o.id,this.urlSerializer.serialize(o.extractedUrl),u,w)),this.events.next(new Lo(c.redirectTo,c.navigationBehaviorOptions))}else throw this.events.next(l),d}catch(c){this.options.resolveNavigationPromiseOnError?o.resolve(!1):o.reject(c)}}return Pt}))}))}cancelNavigationTransition(t,o,i){Zg(t);let r=new zt(t.id,this.urlSerializer.serialize(t.extractedUrl),o,i);this.events.next(r),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let t=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),o=Ie(this.currentNavigation),i=o?.targetBrowserUrl??o?.extractedUrl;return t.toString()!==i?.toString()&&!o?.extras.skipLocationChange}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function zw(n){return n!==Fi}function Zg(n){if(n.newlyCreatedRoutes)for(let e of n.newlyCreatedRoutes)e._localInjector?.destroy()}var zf=new Oe("");var Bf=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>h(Bw)})}return n})(),ks=class{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}shouldDestroyInjector(e){return!0}},Bw=(()=>{class n extends ks{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})(),Fl=(()=>{class n{urlSerializer=h(Yi);options=h(Xi,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=h(To);urlHandlingStrategy=h(Os);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new Bt;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:t,initialUrl:o,targetBrowserUrl:i}){let r=t!==void 0?this.urlHandlingStrategy.merge(t,o):o,s=i??r;return s instanceof Bt?this.urlSerializer.serialize(s):s}routerUrlState(t){return t?.targetBrowserUrl===void 0||t?.finalUrl===void 0?{}:{\u0275routerUrl:this.urlSerializer.serialize(t.finalUrl)}}commitTransition({targetRouterState:t,finalUrl:o,initialUrl:i}){o&&t?(this.currentUrlTree=o,this.rawUrlTree=this.urlHandlingStrategy.merge(o,i),this.routerState=t):this.rawUrlTree=i}routerState=ff(null,h(pn));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>h($w)})}return n})(),$w=(()=>{class n extends Fl{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(o=>{o.type==="popstate"&&setTimeout(()=>{t(o.url,o.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(t,o){t instanceof Jn?this.updateStateMemento():t instanceof wn?this.commitTransition(o):t instanceof Hi?this.urlUpdateStrategy==="eager"&&(o.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(o),o)):t instanceof Ao?(this.commitTransition(o),this.urlUpdateStrategy==="deferred"&&!o.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(o),o)):t instanceof zt&&!gf(t)?this.restoreHistory(o):t instanceof eo?this.restoreHistory(o,!0):t instanceof bn&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,o){let{extras:i,id:r}=o,{replaceUrl:s,state:a}=i;if(this.location.isCurrentPathEqualTo(t)||s){let d=this.browserPageId,l=g(g({},a),this.generateNgRouterState(r,d,o));this.location.replaceState(t,"",l)}else{let d=g(g({},a),this.generateNgRouterState(r,this.browserPageId+1,o));this.location.go(t,"",d)}}restoreHistory(t,o=!1){if(this.canceledNavigationResolution==="computed"){let i=this.browserPageId,r=this.currentPageId-i;r!==0?this.location.historyGo(r):this.getCurrentUrlTree()===t.finalUrl&&r===0&&(this.resetInternalState(t),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(o&&this.resetInternalState(t),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:t}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,o,i){return this.canceledNavigationResolution==="computed"?g({navigationId:t,\u0275routerPageId:o},this.routerUrlState(i)):g({navigationId:t},this.routerUrlState(i))}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function zl(n,e){n.events.pipe(xe(t=>t instanceof bn||t instanceof zt||t instanceof eo||t instanceof wn),N(t=>t instanceof bn||t instanceof wn?0:(t instanceof zt?t.code===mt.Redirect||t.code===mt.SupersededByNewNavigation:!1)?2:1),xe(t=>t!==2),Jt(1)).subscribe(()=>{e()})}var As=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=h(yg);stateManager=h(Fl);options=h(Xi,{optional:!0})||{};pendingTasks=h(rg);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=h(Ff);urlSerializer=h(Yi);location=h(To);urlHandlingStrategy=h(Os);injector=h(pn);_events=new ot;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=h(Bf);injectorCleanup=h(zf,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=h(Qi,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!h(Rs,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:t=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new qh;subscribeToNavigationEvents(){let t=this.navigationTransitions.events.subscribe(o=>{try{let i=this.navigationTransitions.currentTransition,r=Ie(this.navigationTransitions.currentNavigation);if(i!==null&&r!==null){if(this.stateManager.handleRouterEvent(o,r),o instanceof zt&&o.code!==mt.Redirect&&o.code!==mt.SupersededByNewNavigation)this.navigated=!0;else if(o instanceof bn)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(o instanceof Lo){let s=o.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(o.url,i.currentRawUrl),d=g({scroll:i.extras.scroll,browserUrl:i.extras.browserUrl,info:i.extras.info,skipLocationChange:i.extras.skipLocationChange,replaceUrl:i.extras.replaceUrl||this.urlUpdateStrategy==="eager"||zw(i.source)},s);this.scheduleNavigation(a,Fi,null,d,{resolve:i.resolve,reject:i.reject,promise:i.promise})}}$b(o)&&this._events.next(o)}catch(i){this.navigationTransitions.transitionAbortWithErrorSubject.next(i)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Fi,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,o,i,r)=>{this.navigateToSyncWithBrowser(t,i,o,r)})}navigateToSyncWithBrowser(t,o,i,r){let s=i?.navigationId?i:null,a=i?.\u0275routerUrl??t;if(i?.\u0275routerUrl&&(r=_(g({},r),{browserUrl:t})),i){let l=g({},i);delete l.navigationId,delete l.\u0275routerPageId,delete l.\u0275routerUrl,Object.keys(l).length!==0&&(r.state=l)}let d=this.parseUrl(a);this.scheduleNavigation(d,o,s,r).catch(l=>{this.disposed||this.injector.get(_i)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return Ie(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(Al),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,o={}){let{relativeTo:i,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:d}=o,l=d?this.currentUrlTree.fragment:s,c=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":c=g(g({},this.currentUrlTree.queryParams),r);break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=r||null}c!==null&&(c=this.removeEmptyProps(c));let u;try{let w=i?i.snapshot:this.routerState.snapshot.root;u=cf(w)}catch(w){(typeof t[0]!="string"||t[0][0]!=="/")&&(t=[]),u=this.currentUrlTree.root}return uf(u,t,c,l??null,this.urlSerializer)}navigateByUrl(t,o={skipLocationChange:!1}){let i=Oo(t)?t:this.parseUrl(t),r=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(r,Fi,null,o)}navigate(t,o={skipLocationChange:!1}){return Hw(t),this.navigateByUrl(this.createUrlTree(t,o),o)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){try{return this.urlSerializer.parse(t)}catch(o){return this.console.warn(zd(4018,!1)),this.urlSerializer.parse("/")}}isActive(t,o){let i;if(o===!0?i=g({},ef):o===!1?i=g({},bl):i=g(g({},bl),o),Oo(t))return Ug(this.currentUrlTree,t,i);let r=this.parseUrl(t);return Ug(this.currentUrlTree,r,i)}removeEmptyProps(t){return Object.entries(t).reduce((o,[i,r])=>(r!=null&&(o[i]=r),o),{})}scheduleNavigation(t,o,i,r,s){if(this.disposed)return Promise.resolve(!1);let a,d,l;s?(a=s.resolve,d=s.reject,l=s.promise):l=new Promise((u,w)=>{a=u,d=w});let c=this.pendingTasks.add();return zl(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(c))}),this.navigationTransitions.handleNavigationRequest({source:o,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:r,resolve:a,reject:d,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),l.catch(Promise.reject.bind(Promise))}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function Hw(n){for(let e=0;e<n.length;e++)if(n[e]==null)throw new Se(4008,!1)}var Ww=new Oe("");function Bl(n,...e){return jr([{provide:Qi,multi:!0,useValue:n},{provide:Ln,useFactory:Gw},{provide:vg,multi:!0,useFactory:qw},e.map(t=>t.\u0275providers)])}function Gw(){return h(As).routerState.root}function qw(){let n=h(jt);return e=>{let t=n.get(Qr);if(e!==t.components[0])return;let o=n.get(As),i=n.get(Yw);n.get(Zw)===1&&o.initialNavigation(),n.get(Kw,null,{optional:!0})?.setUpPreloading(),n.get(Ww,null,{optional:!0})?.init(),o.resetRootComponentType(t.componentTypes[0]),i.closed||(i.next(),i.complete(),i.unsubscribe())}}var Yw=new Oe("",{factory:()=>new ot}),Zw=new Oe("",{factory:()=>1});var Kw=new Oe("");function nn(n){n||(n=h(qe));let e=new Br(t=>{if(n.destroyed){t.next();return}return n.onDestroy(t.next.bind(t))});return t=>t.pipe(So(e))}function Xe(n,e){let t=e?.injector??h(jt),o=new Zh(1),i=fe(()=>{let r;try{r=n()}catch(s){Ie(()=>o.error(s));return}Ie(()=>o.next(r))},{injector:t,manualCleanup:!0});return t.get(qe).onDestroy(()=>{i.destroy(),o.complete()}),o.asObservable()}function se(n,e){let o=!e?.manualCleanup?e?.injector?.get(qe)??h(qe):null,i=Qw(e?.equal),r;e?.requireSync?r=$({kind:0},{equal:i}):r=$({kind:1,value:e?.initialValue},{equal:i});let s,a=n.subscribe({next:d=>r.set({kind:1,value:d}),error:d=>{r.set({kind:2,error:d}),s?.()},complete:()=>{s?.()}});if(e?.requireSync&&r().kind===0)throw new Se(601,!1);return s=o?.onDestroy(a.unsubscribe.bind(a)),b(()=>{let d=r();switch(d.kind){case 1:return d.value;case 2:throw d.error;case 0:throw new Se(601,!1)}},{equal:e?.equal})}function Qw(n=Object.is){return(e,t)=>e.kind===1&&t.kind===1&&n(e.value,t.value)}var Ji={leftWidth:280,rightWidth:360,composerHeight:168},er=120,tr=120,Uo=120,no=1e4;var $l=(n,e)=>{let t=new Map;for(let o of n??[])t.set(o,{value:o,title:o});for(let o of e??[])t.set(o.id,{value:o.id,title:o.name??o.id});return[...t.values()]};var Jw="tools",$f=[{value:"read",title:"read"},{value:"glob",title:"glob"},{value:"grep",title:"grep"},{value:"edit",title:"edit"},{value:"write",title:"write"},{value:"create",title:"create"},{value:"delete",title:"delete"},{value:"bash",title:"bash"}],eC={"common-crawl-tools":[{value:"crawl_fetch",title:"crawl_fetch"},{value:"crawl_extract_links",title:"crawl_extract_links"},{value:"crawl_save_page",title:"crawl_save_page"},{value:"crawl_bfs",title:"crawl_bfs"}],"common-memory-tools":[{value:"get_memory_tree",title:"get_memory_tree"},{value:"read_memory_section",title:"read_memory_section"},{value:"search_memory_grep",title:"search_memory_grep"},{value:"append_memory_log",title:"append_memory_log"},{value:"update_memory_section",title:"update_memory_section"},{value:"create_memory_file",title:"create_memory_file"}]},tC=n=>{let e=String(n.inputs.toolId??"").trim();if(e.length===0)return null;let t=String(n.inputs.name??"").trim(),o=String(n.inputs.description??"").trim();return{toolId:e,name:t.length>0?t:e,description:o}},nC=n=>{let e=eC[n.type];if(e!==void 0)return e;let t=tC(n);return t===null?[]:[g({value:t.toolId,title:t.name},t.description.length>0?{description:t.description}:{})]},Ls=(n,e)=>{let t=new Map(n.nodes.map(i=>[i.id,i])),o=new Map;for(let i of n.edges){if(i.toNodeId!==e||i.toPort[0]!==Jw)continue;let r=t.get(i.fromNodeId);if(r===void 0)continue;let s=nC(r);for(let a of s)o.set(String(a.value),a)}return[...o.values()]},Hl=n=>Object.entries(n.mcp?.servers??{}).map(([e,t])=>({value:e,title:e,description:t.kind==="stdio"?`System MCP stdio \xAB${e}\xBB`:`System MCP http \xAB${e}\xBB`})),Ul=(n,e)=>{let t=Ls(n,e),o=new Set(t.map(r=>String(r.value)));return[...$f.filter(r=>!o.has(String(r.value))),...t]},Vl=(n,e)=>Array.isArray(n)?n.map(String):e,jl=(n,e)=>{let t=new Set(n),o=!1;for(let i of e)t.has(i)||(t.add(i),o=!0);return o?[...t]:n};var Wl=(n,e,t)=>{if(e.options!==void 0)return e.options;let o=e.optionsSource;switch(o){case"langflower.providers":return Object.entries(n.provider??{}).map(([i,r])=>({value:i,title:r.name}));case"langflower.models":{let i=e.dependsOn!==void 0?t[e.dependsOn]:void 0;return((typeof i=="string"?n.provider?.[i]:void 0)?.models??[]).map(s=>({value:s,title:s}))}case"langflower.tools":return(n.tools??[]).map(i=>({value:i.id,title:i.name}));case"langflower.skills":return(n.skills??[]).map(i=>({value:i.id,title:i.name,description:i.description}));case"node.wiredTools":throw new Error("resolveUiSchemaOptions does not resolve node.wiredTools \u2014 use resolveEnabledToolOptions(graph, nodeId).");case"langflower.mcpServers":return Hl(n);case void 0:return[];default:return o}};var Y=()=>({});var Hf={fromClientToServer:{"editor.addNode.requested":Y(),"editor.updateNode.requested":Y(),"editor.addEdge.requested":Y(),"editor.paste.requested":Y(),"editor.removeEdge.requested":Y(),"editor.removeNode.requested":Y(),"editor.viewport.requested":Y(),"editor.dividers.requested":Y(),"editor.selectNode.requested":Y()},fromServerToClient:{"editor.addNodes":Y(),"editor.updateNodes":Y(),"editor.addEdges":Y(),"editor.deleteNodes":Y(),"editor.deleteEdges":Y(),"editor.viewport.delta":Y(),"editor.dividers.snapshot":Y(),"editor.nodeSelected":Y()}},Uf={fromClientToServer:{"runner.start.requested":Y(),"runner.startNode.requested":Y(),"runner.interrupt.requested":Y(),"runner.hitl.event":Y(),"runner.permission.reply":Y(),"runner.executionFeed.clear.requested":Y(),"runner.resume.requested":Y(),"runner.checkpoint.discard.requested":Y()},fromServerToClient:{"runner.started":Y(),"runner.startNode.started":Y(),"runner.resume.started":Y(),"runner.resume.failed":Y(),"runner.interrupted":Y(),"runner.output-emitted":Y(),"runner.input-received":Y(),"runner.done":Y(),"runner.permission.ask":Y(),"runner.checkpoints.snapshot":Y(),"runner.checkpointed":Y()}},Vf={fromClientToServer:{},fromServerToClient:{"session.state.snapshot":Y(),"session.ready":Y(),"runner.snapshot":Y(),"executionFeed.snapshot":Y(),"toolConfig.snapshot":Y()}},jf={fromClientToServer:{"langflower.config.save.requested":Y(),"project.bootstrap.requested":Y()},fromServerToClient:{"langflower.config.snapshot":Y(),"langflower.models.catalog.snapshot":Y(),"project.bootstrap.result":Y()}},Wf={fromClientToServer:{"palette.reload.requested":Y()},fromServerToClient:{"palette.snapshot":Y()}},Gf={fromClientToServer:{"customPalette.update.requested":Y()},fromServerToClient:{"customPalette.snapshot":Y()}},qf={fromClientToServer:{"workflow.saveCurrent.requested":Y(),"workflow.renameCurrent.requested":Y(),"workflow.create.requested":Y(),"workflow.copy.requested":Y(),"workflow.load.requested":Y(),"workflow.list.requested":Y(),"workflow.delete.requested":Y()},fromServerToClient:{"workflow.current.snapshot":Y(),"workflow.load.failed":Y(),"workflow.currentStatus.snapshot":Y(),"workflow.list.snapshot":Y()}},Gl={transport:{path:"/ws",port:4010},fromClientToServer:g(g(g(g(g(g(g({},Hf.fromClientToServer),Uf.fromClientToServer),Vf.fromClientToServer),jf.fromClientToServer),Wf.fromClientToServer),Gf.fromClientToServer),qf.fromClientToServer),fromServerToClient:g(g(g(g(g(g(g({},Hf.fromServerToClient),Uf.fromServerToClient),Vf.fromServerToClient),jf.fromServerToClient),Wf.fromServerToClient),Gf.fromServerToClient),qf.fromServerToClient)};var nm=Lv(Zf(),1);var Kf={encode(n){return JSON.stringify(n)},decode(n){try{let e=JSON.parse(n);if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return typeof t.type!="string"||!("payload"in t)?null:{type:t.type,payload:t.payload}}catch(e){return null}}};var oC=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),ql=n=>oC(n)?typeof n.type=="string"&&"payload"in n:!1,iC=(n,e,t)=>e in n[t],Xf=(n,e,t)=>!ql(e)||!iC(n,e.type,t)?null:e;function Yl(n,e,t){return t===void 0?{code:n,message:e}:{code:n,message:e,cause:t}}function Qf(n,e,t,o){let i=e.decode(t);if(i===null)return{error:Yl("INVALID_FRAME","Frame is not valid bridge JSON envelope")};let r=Xf(n,i,o);return r!==null?{event:r}:ql(i)?{error:Yl("UNKNOWN_EVENT_TYPE",`Unknown or disallowed event type: ${i.type}`)}:{error:Yl("INVALID_ENVELOPE","Frame must be a { type, payload } object")}}function Zl(n,e){return Object.keys(n[e])}function Kl(n){let e={};for(let t of n)e[t]=new ot;return e}function Jf(n){let e={};for(let[t,o]of Object.entries(n))e[t]=o.asObservable();return e}function em(n,e){return Object.entries(n).map(([t,o])=>o.subscribe(i=>{e({type:t,payload:i})}))}function tm(n,e,t){let o=e[n.type];return o===void 0?!1:(o.next(t===void 0?n.payload:{clientId:t,payload:n.payload}),!0)}function Xl(n){for(let e of Object.values(n))e.complete()}var rC=1;function sC(n){if(typeof globalThis.WebSocket<"u"){let t=new globalThis.WebSocket(n);return{get readyState(){return t.readyState},send:o=>{t.send(o)},close:()=>{t.close()},onOpen:o=>{t.onopen=()=>{o()}},onMessage:o=>{t.onmessage=i=>{o(String(i.data))}},onClose:o=>{t.onclose=()=>{o()}},onError:o=>{t.onerror=i=>{o(i)}}}}let e=new nm.default(n);return{get readyState(){return e.readyState},send:t=>{e.send(t)},close:()=>{e.close()},onOpen:t=>{e.on("open",t)},onMessage:t=>{e.on("message",o=>{t(String(o))})},onClose:t=>{e.on("close",t)},onError:t=>{e.on("error",t)}}}function aC(n,e){if(e.url!==void 0)return e.url;let t=n.transport?.path??"/ws";return typeof globalThis.window<"u"?`${globalThis.window.location.protocol==="https:"?"wss:":"ws:"}//${globalThis.window.location.host}${t}`:`ws://127.0.0.1:${n.transport?.port??4010}${t}`}function om(n,e={}){let t=n.codec??Kf,o=aC(n,e),i=Zl(n,"fromClientToServer"),r=Zl(n,"fromServerToClient"),s=Kl(i),a=Kl(r),d=Jf(a),l=new ot,c=new ut("connecting"),u=sC(o),S=em(s,X=>{if(u.readyState!==rC){l.next({code:"TRANSPORT_NOT_OPEN",message:"Cannot send while WebSocket is not open"});return}u.send(t.encode(X))});u.onOpen(()=>{c.next("connected")}),u.onMessage(X=>{let he=Qf(n,t,X,"fromServerToClient");if("error"in he){l.next(he.error);return}tm(he.event,a)});let k=!1,W=X=>{if(!k){k=!0,c.next("disconnected");for(let he of S)he.unsubscribe();Xl(s),Xl(a),l.complete(),c.complete(),X&&u.close()}};u.onClose(()=>{W(!1)}),u.onError(X=>{l.next({code:"TRANSPORT_ERROR",message:"WebSocket client error",cause:X})});let Z={errors$:l.asObservable(),status$:c.asObservable(),close(){W(!0)}};return Object.assign(Z,s,d)}var dC=["langflower.models.catalog.snapshot","langflower.config.snapshot","session.state.snapshot","palette.snapshot","customPalette.snapshot","workflow.current.snapshot","workflow.list.snapshot","workflow.currentStatus.snapshot","executionFeed.snapshot","toolConfig.snapshot","editor.dividers.snapshot","runner.checkpoints.snapshot"],lC=(n,e,t)=>{let o=n[e].pipe(nn(t),Pe(1));return o.subscribe(),o},de=class n{constructor(){this.destroyRef=h(qe);let t=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;this.raw=om(Gl,{url:t}),this.cached=Object.fromEntries(dC.map(o=>[o,lC(this.raw,o,this.destroyRef)]))}ngOnDestroy(){this.raw.close()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Fs={config:{},projectConfig:{},globalConfig:{},globalPath:""},Fn=class n{constructor(){this.bridge=h(de);this.layers$=ce(this.bridge.cached["session.state.snapshot"].pipe(N(e=>({kind:"session",config:e.langflowerConfig}))),this.bridge.cached["langflower.config.snapshot"].pipe(N(e=>({kind:"snapshot",payload:e})))).pipe(We((e,t)=>t.kind==="session"?_(g({},e),{config:t.config}):{config:t.payload.config,projectConfig:t.payload.projectConfig,globalConfig:t.payload.globalConfig,globalPath:t.payload.globalPath},Fs),ae(Fs),Pe({bufferSize:1,refCount:!1}));this.config$=this.layers$.pipe(N(e=>e.config));this.config=se(this.config$,{initialValue:Fs.config});this.layers=se(this.layers$,{initialValue:Fs})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Vo=class n{constructor(){this.bridge=h(de);this.catalogs$=this.bridge.cached["langflower.models.catalog.snapshot"].pipe(N(e=>e.catalogs),Pe({bufferSize:1,refCount:!1}));this.catalogs$.subscribe()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var zn=class n{constructor(){this.bridge=h(de);this.selectedNode$=ce(this.bridge.cached["session.state.snapshot"].pipe(N(e=>e.selectedNode)),this.bridge.raw["editor.nodeSelected"].pipe(N(e=>e.node))).pipe(ae(null),Pe({bufferSize:1,refCount:!1}));this.selectedNode=se(this.selectedNode$,{initialValue:null});this.selectedNodeId=b(()=>this.selectedNode()?.id??null);this.hasSelectedNode=b(()=>this.selectedNodeId()!==null)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var im="lf-theme",jo=class n{constructor(){this.themeSubject=new ut(this.readStoredTheme());this.theme$=this.themeSubject.asObservable();this.applyTheme(this.themeSubject.value)}get snapshot(){return this.themeSubject.value}setTheme(e){this.themeSubject.next(e),this.applyTheme(e),this.persistTheme(e)}toggleTheme(){this.setTheme(this.snapshot==="dark"?"light":"dark")}readStoredTheme(){return typeof localStorage>"u"?"dark":localStorage.getItem(im)==="light"?"light":"dark"}persistTheme(e){typeof localStorage>"u"||localStorage.setItem(im,e)}applyTheme(e){typeof document>"u"||(document.documentElement.dataset.theme=e)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Wo={nodes:[],errors:[],status:"not_compiled"},Ql={sections:[{source:"system",categories:[]},{source:"custom",categories:[]}],customStatus:"not_compiled",customErrors:[]},zs=(n,e)=>({nodes:[...n.nodes.map(t=>_(g({},t),{source:"system"})),...e.nodes.map(t=>_(g({},t),{source:"custom"}))]}),Go="Advanced",cC=["system","custom"],rm=["AI","Primitives","Logic","Flow","Text","Output","HITL","Harness","Memory","Crawl","Other",Go];function sm(n){let e=rm.indexOf(n);return e===-1?rm.length-1:e}function dm(n,e){let t=sm(n)-sm(e);return t!==0?t:n.localeCompare(e)}function uC(n){return[...n].sort((e,t)=>e.displayName.localeCompare(t.displayName))}function am(n){let e=new Map;for(let t of n){let o=t.category??"Other",i=e.get(o);i===void 0?e.set(o,[t]):i.push(t)}return[...e.entries()].sort(([t],[o])=>dm(t,o)).map(([t,o])=>({category:t,nodes:uC(o)}))}function pC(n){return n.paletteSecondary===!0}function hC(n){let e=[],t=[];for(let i of n)pC(i)?t.push(i):e.push(i);let o=[...am(e)];return t.length>0&&o.push({category:Go,nodes:[],subcategories:am(t)}),o.sort((i,r)=>dm(i.category,r.category))}function lm(n,e){let t=new Map([["system",[]],["custom",[]]]);for(let o of n.nodes)t.get("system")?.push(_(g({},o),{source:"system"}));for(let o of e.nodes)t.get("custom")?.push(_(g({},o),{source:"custom"}));return{sections:cC.map(o=>({source:o,categories:hC(t.get(o)??[])})),customStatus:e.status,customErrors:e.errors}}function Bs(n,e){return`${n}:${e}`}function $s(n,e){return`${n}:${Go}:${e}`}function cm(n){return n==="system"?"System":"Custom"}var gC=(n,e)=>n.displayName.toLowerCase().includes(e)||n.type.toLowerCase().includes(e),um=(n,e)=>{if(n.subcategories!==void 0){let o=n.subcategories.map(i=>um(i,e)).filter(i=>i!==null);return o.length===0?null:{category:n.category,nodes:[],subcategories:o}}let t=n.nodes.filter(o=>gC(o,e));return t.length===0?null:{category:n.category,nodes:t}},pm=(n,e)=>{let t=e.trim().toLowerCase();return t.length===0?n:n.map(o=>({source:o.source,categories:o.categories.map(i=>um(i,t)).filter(i=>i!==null)})).filter(o=>o.categories.length>0)};var Tm=["backgroundPattern"];function fC(n,e){if(n&1&&(ge(),pt(0,"line")),n&2){let t=e.$implicit;K("x1",t.x1)("y1",t.y1)("x2",t.x2)("y2",t.y2)("stroke",t.major?"var(--ngd-background-line-major-color)":"var(--ngd-background-line-minor-color)")("stroke-width",t.major?"var(--ngd-background-line-major-width)":"var(--ngd-background-line-minor-width)")("opacity",t.major?"var(--ngd-background-line-major-opacity)":"var(--ngd-background-line-minor-opacity)")}}var yp=["contentProjection"],Tt=["*"];function mC(n,e){n&1&&z(0,"ng-diagram-dotted-background")}function yC(n,e){n&1&&z(0,"ng-diagram-grid-background")}function vC(n,e){if(n&1&&(v(0,"div"),E(1,mC,1,0,"ng-diagram-dotted-background")(2,yC,1,0,"ng-diagram-grid-background"),y()),n&2){let t=m();p(),P(t.isDottedBackground()?1:2)}}function bC(n,e){if(n&1&&pt(0,"div"),n&2){m();let t=Xd(0);Ue("left",t.x,"px")("top",t.y,"px")("width",t.width,"px")("height",t.height,"px")}}var wC=[[["ng-diagram-edge"]],[["ng-diagram-marker-arrow"]],[["ng-diagram-node"]]],CC=["ng-diagram-edge","ng-diagram-marker-arrow","ng-diagram-node"];function _C(n,e){if(n&1&&(ge(),z(0,"defs",0)),n&2){let t=m();A("sourceMarkerId",t.sourceMarkerId())("targetMarkerId",t.targetMarkerId())("edgeId",t.edge().id)}}function xC(n,e){if(n&1&&(v(0,"ng-diagram-base-edge-label",1)(1,"ng-diagram-default-edge-label"),C(2),y()()),n&2){let t=m(),o=Xd(1);A("id","edge-label")("positionOnEdge",t.positionOnEdge()),p(2),re(o)}}function SC(n,e){if(n&1&&z(0,"ng-diagram-resize-line",0),n&2){let t=e.$implicit,o=m(2);A("position",t)("targetData",o.nodeData())}}function EC(n,e){if(n&1&&z(0,"ng-diagram-resize-handle",0),n&2){let t=e.$implicit,o=m(2);A("position",t)("targetData",o.nodeData())}}function PC(n,e){if(n&1&&(Q(0,SC,1,2,"ng-diagram-resize-line",0,Si),Q(2,EC,1,2,"ng-diagram-resize-handle",0,Si)),n&2){let t=m();J(t.linePositions),p(2),J(t.handlePositions)}}function IC(n,e){n&1&&(ge(),U(0,"svg",2),pt(1,"path",3),B())}function DC(n,e){if(n&1&&(v(0,"ng-diagram-rotate-handle",0),je(1),y()),n&2){let t=m();A("data",t.nodeData())}}var MC=[[["ng-diagram-background"]]],TC=["ng-diagram-background"],kC=n=>({edge:n}),RC=n=>({node:n});function NC(n,e){n&1&&Jr(0)}function OC(n,e){if(n&1&&Xr(0,NC,1,0,"ng-container",5),n&2){let t=m().$implicit,o=m();A("ngComponentOutlet",o.getEdgeTemplate(t.type))("ngComponentOutletInputs",Pi(2,kC,t))}}function AC(n,e){if(n&1&&z(0,"ng-diagram-default-edge",4),n&2){let t=m().$implicit;A("edge",t)}}function LC(n,e){if(n&1&&(v(0,"ng-diagram-edge"),E(1,OC,1,4,"ng-container")(2,AC,1,1,"ng-diagram-default-edge",4),y()),n&2){let t=e.$implicit,o=m();K("data-edge-id",t.id),p(),P(o.getEdgeTemplate(t.type)?1:2)}}function FC(n,e){n&1&&Jr(0)}function zC(n,e){if(n&1&&Xr(0,FC,1,0,"ng-container",5),n&2){let t=m().$implicit,o=m();A("ngComponentOutlet",o.getNodeTemplate(t.type))("ngComponentOutletInputs",Pi(2,RC,t))}}function BC(n,e){if(n&1&&z(0,"ng-diagram-default-group-template",6),n&2){let t=m().$implicit,o=m();A("node",o.castToGroupNode(t))}}function $C(n,e){if(n&1&&z(0,"ng-diagram-default-node-template",6),n&2){let t=m().$implicit;A("node",t)}}function HC(n,e){if(n&1&&(v(0,"ng-diagram-node",2),E(1,zC,1,4,"ng-container")(2,BC,1,1,"ng-diagram-default-group-template",6)(3,$C,1,1,"ng-diagram-default-node-template",6),y()),n&2){let t=e.$implicit,o=m();A("node",t),K("data-node-id",t.id),p(),P(o.getNodeTemplate(t.type)?1:o.isGroup(t)?2:3)}}function UC(n,e){if(n&1&&z(0,"ng-diagram-watermark",3),n&2){let t,o=m();A("preferredPosition",(t=o.config())==null?null:t.watermarkPosition)}}function VC(n,e){if(n&1&&(ge(),pt(0,"circle")),n&2){let t=m();K("cx",t.cx())("cy",t.cy())("r",t.radius())}}function jC(n,e){if(n&1&&(ge(),pt(0,"ellipse")),n&2){let t=m();K("cx",t.cx())("cy",t.cy())("rx",t.rx())("ry",t.ry())}}function WC(n,e){if(n&1&&(ge(),pt(0,"rect")),n&2){let t=m();K("x",t.bounds().x)("y",t.bounds().y)("width",t.bounds().width)("height",t.bounds().height)}}var GC=(n,e)=>({node:n,nodeStyle:e}),qC=(n,e)=>e.bounds.id;function YC(n,e){n&1&&Jr(0)}function ZC(n,e){if(n&1&&(ge(),v(0,"foreignObject"),Xr(1,YC,1,0,"ng-container",6),y()),n&2){let t=m().$implicit;K("x",t.bounds.x)("y",t.bounds.y)("width",t.bounds.width)("height",t.bounds.height)("transform",t.bounds.transform),p(),A("ngComponentOutlet",t.template)("ngComponentOutletInputs",wg(7,GC,t.diagramNode,t.nodeStyle))}}function KC(n,e){if(n&1&&(ge(),z(0,"g",5)),n&2){let t=m().$implicit;A("bounds",t.bounds)("nodeStyle",t.nodeStyle)}}function XC(n,e){if(n&1&&E(0,ZC,2,10,":svg:foreignObject")(1,KC,1,2,":svg:g",5),n&2){let t=e.$implicit;P(t.template?0:1)}}function QC(n,e){if(n&1&&(ge(),z(0,"rect",3)),n&2){let t=m(2);A("diagramBounds",t.diagramBounds())("minimapTransform",t.transform())}}function JC(n,e){if(n&1&&(ge(),z(0,"rect",4)),n&2){let t=m(2);K("x",t.viewportRect().x)("y",t.viewportRect().y)("width",t.viewportRect().width)("height",t.viewportRect().height)}}function e_(n,e){if(n&1&&(ge(),v(0,"g"),Q(1,XC,2,1,null,null,qC),y(),E(3,QC,1,2,":svg:rect",3),E(4,JC,1,4,":svg:rect",4)),n&2){let t=m();K("transform",t.nodesGroupTransform()),p(),J(t.minimapNodes()),p(2),P(t.showDiagramBounds()?3:-1),p(),P(t.hasValidViewport()?4:-1)}}function t_(n,e){n&1&&z(0,"ng-diagram-zoom-controls")}var or=class n{boundingBox=$(null);static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})};Set.prototype.difference||(Set.prototype.difference=function(n){let e=new Set;for(let t of this)n.has(t)||e.add(t);return e}),Set.prototype.intersection||(Set.prototype.intersection=function(n){let e=new Set;for(let t of this)n.has(t)&&e.add(t);return e});var tc=class{eventManager;state;constructor(e){this.eventManager=e,this.state=new Proxy({},{set:(t,o,i)=>(t[o]=i,this.emitStateChanged(),!0)})}getState(){return this.state}emitStateChanged(){this.eventManager.emit("actionStateChanged",{actionState:g({},this.state)})}get resize(){return this.state.resize}set resize(e){this.state.resize=e}get linking(){return this.state.linking}set linking(e){this.state.linking=e}get copyPaste(){return this.state.copyPaste}set copyPaste(e){this.state.copyPaste=e}get highlightGroup(){return this.state.highlightGroup}set highlightGroup(e){this.state.highlightGroup=e}get rotation(){return this.state.rotation}set rotation(e){this.state.rotation=e}get dragging(){return this.state.dragging}set dragging(e){this.state.dragging=e}get panning(){return this.state.panning}set panning(e){this.state.panning=e}clearResize(){this.state.resize=void 0}clearLinking(){this.state.linking=void 0}clearCopyPaste(){this.state.copyPaste=void 0}clearHighlightGroup(){this.state.highlightGroup=void 0}clearRotation(){this.state.rotation=void 0}clearDragging(){this.state.dragging=void 0}isResizing(){return!!this.state.resize}isLinking(){return!!this.state.linking}isRotating(){return!!this.state.rotation}isDragging(){return!!this.state.dragging}clearPanning(){this.state.panning=void 0}isPanning(){return!!this.state.panning?.active}get selection(){return this.state.selection}set selection(e){this.state.selection=e}clearSelection(){this.state.selection=void 0}},n_=n=>{if(!n||n.length===0)return"";if(n.length===1)return`M ${n[0].x},${n[0].y}`;if(n.length===2)return`M ${n[0].x},${n[0].y} L ${n[1].x},${n[1].y}`;if(n.length===3)return`M ${n[0].x},${n[0].y} Q ${n[1].x},${n[1].y} ${n[2].x},${n[2].y}`;if(n.length===4)return`M ${n[0].x},${n[0].y} C ${n[1].x},${n[1].y} ${n[2].x},${n[2].y} ${n[3].x},${n[3].y}`;let e=[`M ${n[0].x},${n[0].y}`];for(let t=1;t<n.length;t++)e.push(`L ${n[t].x},${n[t].y}`);return e.join(" ")},wa=(n,e)=>{let t=n>=0&&!Object.is(n,-0)?n:e+n;return Math.max(0,Math.min(t,e))};function o_(n,e){return Math.atan2(e.y-n.y,e.x-n.x)*(180/Math.PI)}var vp=n=>(n%360+360)%360,i_=(n,e=!1)=>{let t=vp(n),o;return o=t>=315||t<45?"right":t>=45&&t<135?"bottom":t>=135&&t<225?"left":"top",e?{right:"left",left:"right",top:"bottom",bottom:"top"}[o]:o},qo=({min:n,value:e,max:t})=>Math.min(Math.max(e,n),t),r_=(n,e,t,o)=>{let{x:i,y:r,width:s,height:a}=n,{x:d,y:l}=e,c=0,u=0,w=d-i,S=i+s-d,k=l-r,W=r+a-l;if(w<t?c=qo({min:0,max:t,value:-(w-t)}):S<t&&(c=-qo({min:0,max:t,value:-(S-t)})),k<t?u=qo({min:0,max:t,value:-(k-t)}):W<t&&(u=-qo({min:0,max:t,value:-(W-t)})),c===0&&u===0)return null;let Z=c/t,X=u/t;return Z=isFinite(Z)?Z:1,X=isFinite(X)?X:1,{x:Z*o,y:X*o}},s_=(n,e)=>Math.sqrt((n.x-e.x)**2+(n.y-e.y)**2);function hm(n){return Math.abs(n-Math.trunc(n))}function a_(n,e){let t=Math.round(n/e);if(t===0&&e>1)return 0;let o=Math.abs(t)===1&&Math.abs(n)<e,i=qo({min:1,max:e/2-1,value:Math.floor(e/2-1)});if(o&&e-Math.abs(n)>i)return 0;let r=t*e;if(e===1){let s=(r-1)%90==0;(r+1)%90==0?1-hm(n)<.9001&&(r+=1):s&&hm(n)<.9001&&(r-=1)}return vp(r)}var nc=(n,e)=>e?e*Math.round(n/e):n,d_=(n,e)=>({x:nc(n.x,e.width),y:nc(n.y,e.height)}),Qe={angleBetweenPoints:o_,angleToSide:i_,clamp:qo,distanceBetweenPoints:s_,normalizeAngle:vp,snapAngle:a_,snapNumber:nc,snapPoint:d_,calculateEdgePanningForce:r_},js=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let t=Qe.clamp({min:0,value:e,max:1});if(n.length===2){let[w,S]=n;return{x:w.x+(S.x-w.x)*t,y:w.y+(S.y-w.y)*t}}if(n.length===3){let[w,S,k]=n,W=1-t,Z=W*W,X=t*t;return{x:Z*w.x+2*W*t*S.x+X*k.x,y:Z*w.y+2*W*t*S.y+X*k.y}}let[o,i,r,s]=n,a=1-t,d=a*a,l=d*a,c=t*t,u=c*t;return{x:l*o.x+3*d*t*i.x+3*a*c*r.x+u*s.x,y:l*o.y+3*d*t*i.y+3*a*c*r.y+u*s.y}};var l_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let t=[{t:0,length:0}],o=js(n,0),i=0;for(let u=1;u<=100;u++){let w=u/100,S=js(n,w);i+=Math.hypot(S.x-o.x,S.y-o.y),t.push({t:w,length:i}),o=S}let r=wa(e,i),s=0,a=100;for(;s<a;){let u=s+a>>1;t[u].length<r?s=u+1:a=u}let d=t[Math.max(0,s-1)],l=t[s],c=l.length-d.length;return js(n,d.t+(l.t-d.t)*(c>0?(r-d.length)/c:0))},gm=(n,e)=>{switch(n.side){case"right":default:return{x:n.x+e,y:n.y};case"left":return{x:n.x-e,y:n.y};case"bottom":return{x:n.x,y:n.y+e};case"top":return{x:n.x,y:n.y-e}}},c_=(n,e,t=100)=>{if(!n||!e)return[];let o=gm(n,Math.abs(t)),i=gm(e,Math.abs(t));return[{x:n.x,y:n.y},o,i,{x:e.x,y:e.y}]};var oc=class{name="bezier";computePoints(e,t){let{sourcePoint:o,targetPoint:i}=e;return c_(o,i,t?.bezier?.bezierControlOffset??100)}computeSvgPath(e){return n_(e)}computePointOnPath(e,t){return js(e,t)}computePointAtDistance(e,t){return l_(e,t)}},u_=(n=[],e=16)=>{if(n.length===0)return"";if(n.length===1)return`M ${n[0].x},${n[0].y}`;if(n.length===2)return`M ${n[0].x},${n[0].y} L ${n[1].x},${n[1].y}`;let t=n[0],o=n.slice(1,-1),i=n[n.length-1],r=o.map((s,a)=>{let d=n[a],l=n[a+2],c=l.y-d.y,u=Math.min(Math.abs(l.x-d.x)/2,Math.abs(c)/2,e),w=d.x<s.x,S=d.x>s.x,k=d.y>s.y,W=d.y<s.y,Z=l.x<s.x,X=l.x>s.x,he=l.y>s.y,ke=l.y<s.y,le=Math.abs(d.x-s.x)<=1,Le=Math.abs(d.y-s.y)<=1,Me=Math.abs(l.x-s.x)<=1,nt=Math.abs(l.y-s.y)<=1;if(o.length<=2&&(le&&Le||Me&&nt))return"";if(d.y===s.y&&s.y===l.y)return`L${s.x+(S?u:-u)},${s.y}`;if(d.x===s.x&&s.x===l.x)return`L${s.x},${s.y+(W?-u:u)}`;let cn=w&&he||S&&ke||W&&Z||k&&X;return d.x===s.x?`L${s.x},${s.y+(W?-u:u)} A${u},${u},0,0,${cn?1:0},${s.x+(X?u:-u)},${s.y}`:`L${s.x+(S?u:-u)},${s.y} A${u},${u},0,0,${cn?1:0},${s.x},${s.y+(ke?-u:u)}`});return`M ${t.x},${t.y} ${r.join(" ")} L ${i.x},${i.y}`},bp=n=>{let e=[],t=0;for(let o=0;o<n.length-1;o++){let i=Math.hypot(n[o+1].x-n[o].x,n[o+1].y-n[o].y);e.push(i),t+=i}return{lengths:e,totalLength:t}},wp=(n,e,t)=>{let o=0;for(let i=0;i<e.length;i++){if(o+e[i]>=t){let r=e[i]>0?(t-o)/e[i]:0;return{x:n[i].x+(n[i+1].x-n[i].x)*r,y:n[i].y+(n[i+1].y-n[i].y)*r}}o+=e[i]}return n[n.length-1]},p_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let{lengths:t,totalLength:o}=bp(n),i=wa(e,o);return wp(n,t,i)},h_=(n,e)=>{if(n.length<2)return{x:0,y:0};let t=Qe.clamp({min:0,value:e,max:1}),o=[],i=0;for(let a=0;a<n.length-1;a++){let d=Math.hypot(n[a+1].x-n[a].x,n[a+1].y-n[a].y);o.push(d),i+=d}let r=i*t,s=0;for(let a=0;a<o.length;a++){let d=o[a];if(s+d>=r){let l=n[a],c=n[a+1],u=(r-s)/d;return{x:l.x+(c.x-l.x)*u,y:l.y+(c.y-l.y)*u}}s+=d}return n[n.length-1]},Bn=(n,e,t=20)=>{let o={left:{x:-t,y:0},right:{x:t,y:0},top:{x:0,y:-t},bottom:{x:0,y:t}}[e]||{x:0,y:0};return{x:n.x+o.x,y:n.y+o.y}},g_=(n,e,t,o,i=20)=>{let r=Bn({x:e.x,y:e.y},"bottom",i),s=Bn({x:t.x,y:t.y},n,i);return n==="bottom"?r.y>s.y?[{x:r.x,y:r.y},{x:s.x,y:r.y}]:[{x:r.x,y:s.y},{x:s.x,y:s.y}]:n==="left"?r.y>s.y?r.x>s.x?[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y}]:r.x>s.x?[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:[{x:r.x,y:s.y}]:n==="top"?r.y>s.y?[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:o.y},{x:s.x,y:o.y}]:n==="right"?r.y>s.y?r.x>s.x?[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:r.x>s.x?[{x:r.x,y:s.y}]:[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:void 0},km=(n,e,t,o,i=20)=>{let r=Bn({x:e.x,y:e.y},"left",i),s=Bn({x:t.x,y:t.y},n,i);return n==="left"?r.x>s.x?[{x:s.x,y:r.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:s.y}]:n==="top"?r.x>s.x?r.y>s.y?[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:s.x,y:r.y}]:r.y>s.y?[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:n==="bottom"?r.x>s.x?r.y>s.y?[{x:r.x,y:r.y},{x:s.x,y:r.y}]:[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:r.y>s.y?[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:n==="right"?r.x>s.x?[{x:o.x,y:r.y},{x:o.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:void 0},f_=(n,e,t,o,i=20)=>{let r=Bn({x:e.x,y:e.y},"right",i),s=Bn({x:t.x,y:t.y},n,i);return n==="right"?r.x>s.x?[{x:r.x,y:r.y},{x:r.x,y:s.y}]:[{x:s.x,y:r.y},{x:s.x,y:s.y}]:n==="top"?r.x<s.x?r.y<s.y?[{x:s.x,y:r.y}]:[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:r.y<s.y?[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:n==="bottom"?r.x<s.x?r.y<s.y?[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:s.x,y:r.y}]:r.y<s.y?[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:n==="left"?r.x<s.x?[{x:o.x,y:r.y},{x:o.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:void 0},m_=(n,e,t,o,i=20)=>{let r=Bn(e,"top",i),s=Bn(t,n,i);return n==="left"?r.y>s.y?r.x>s.x?[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:[{x:r.x,y:s.y}]:r.x>s.x?[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y}]:n==="right"?r.y>s.y?r.x>s.x?[{x:r.x,y:s.y}]:[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:r.x>s.x?[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y}]:[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:n==="bottom"?r.y>s.y?[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:n==="top"?r.y>s.y?[{x:r.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:s.x,y:r.y}]:void 0},y_={top:m_,right:f_,bottom:g_,left:km},v_=(n,e,t,o=20)=>(y_[n.side]||km)(e.side,{x:n.x,y:n.y},{x:e.x,y:e.y},t,o),b_=(n,e,t=20)=>{let o=v_(n,e,{x:(n?.x+e?.x)/2,y:(n.y+e.y)/2},t)||[];return[{x:n.x,y:n.y},...o,{x:e.x,y:e.y}]},ic=class{name="orthogonal";computePoints(e,t){let{sourcePoint:o,targetPoint:i}=e,r=t?.orthogonal?.firstLastSegmentLength;return b_(o,i,r!=null&&r>=0?r:20)}computeSvgPath(e,t){let o=t?.orthogonal?.maxCornerRadius;return u_(e,o!=null&&o>=0?o:16)}computePointOnPath(e,t){return h_(e,t)}computePointAtDistance(e,t){return p_(e,t)}},w_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let{lengths:t,totalLength:o}=bp(n),i=wa(e,o);return wp(n,t,i)},C_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let t=Qe.clamp({min:0,value:e,max:1});if(n.length===2){let a=n[0],d=n[1];return{x:a.x+(d.x-a.x)*t,y:a.y+(d.y-a.y)*t}}let o=0,i=[];for(let a=0;a<n.length-1;a++){let d=n[a+1].x-n[a].x,l=n[a+1].y-n[a].y,c=Math.sqrt(d*d+l*l);i.push(c),o+=c}let r=o*t,s=0;for(let a=0;a<i.length;a++){let d=i[a];if(s+d>=r){let l=(r-s)/d,c=n[a],u=n[a+1];return{x:c.x+(u.x-c.x)*l,y:c.y+(u.y-c.y)*l}}s+=d}return n[n.length-1]},rc=class{name="polyline";computePoints(e){let{sourcePoint:t,targetPoint:o,edge:i}=e;return i.routingMode==="manual"&&i.points&&i.points.length>2?i.points:[{x:t.x,y:t.y},{x:o.x,y:o.y}]}computeSvgPath(e){return e.length===0?"":e.length===1?`M ${e[0].x},${e[0].y}`:e.map((t,o)=>o===0?`M ${t.x},${t.y}`:`L ${t.x},${t.y}`).join(" ")}computePointOnPath(e,t){return C_(e,t)}computePointAtDistance(e,t){return w_(e,t)}},__=`[ngDiagram] Routing must have a non-empty name property. Registration skipped.
1
+ import{$ as hn,$a as Jr,$b as ns,A as ce,Aa as Zr,Ab as gt,B as Pe,Ba as Rn,Bb as Gt,C as Hd,Ca as Nt,Cb as Ue,D as Ud,Da as Do,Db as Y,E as ag,Ea as yg,Eb as ft,F as nn,Fa as vg,Fb as C,G as Wr,Ga as Zd,Gb as se,H as dg,Ha as To,Hb as U,I as kn,Ia as p,Ib as Si,J as jd,Ja as Kr,Jb as tl,K as Ge,Ka as Kd,Kb as nl,L as De,La as xi,Lb as ol,M as Gr,Ma as Xd,Mb as il,N as he,Na as Qd,Nb as Pg,O as we,Oa as Xr,Ob as Mo,P as Po,Pa as Qr,Pb as Ei,Q as Rt,Qa as bg,Qb as Ig,R as Ie,Ra as wg,Rb as Nn,S as Vd,Sa as Cg,Sb as On,T as j,Ta as _g,Tb as Dg,U as Wd,Ua as Jd,Ub as b,V as lg,Va as F,Vb as xe,W as Oe,Wa as el,Wb as rl,X as Ce,Xa as ye,Xb as qt,Y as f,Ya as xg,Yb as I,Z as qr,Za as fn,Zb as st,_ as cg,_a as mn,_b as Tg,a as h,aa as Ct,ab as Sg,ac as Mg,b as _,ba as D,bb as Eg,bc as kg,c as kt,ca as T,cb as es,cc as Rg,d as Kv,da as fe,db as J,dc as Ng,e as Xv,ea as ug,eb as E,f as M,fa as Wt,fb as P,g as Jh,ga as it,gb as on,h as eg,ha as Ve,hb as Qn,i as Ur,ia as pg,ib as X,j as ot,ja as _e,jb as Q,k as ut,ka as gn,kb as L,l as tg,la as Gd,lb as v,m as Pt,ma as _i,mb as y,n as Bt,na as H,nb as $,o as re,oa as qd,ob as B,p as ng,pa as hg,pb as A,q as $d,qa as Io,qb as pt,r as og,ra as gg,rb as ts,s as ig,sa as Yd,sb as V,t as N,ta as fg,tb as ge,u as Ne,ua as me,ub as O,v as Mn,va as Yr,vb as ve,w as jr,wa as It,wb as g,x as Vr,xa as Dt,xb as Ye,y as rg,ya as rt,yb as We,z as sg,za as mg,zb as ht}from"./chunk-6ZABW4JL.js";var Yf=Kv((wA,qf)=>{"use strict";qf.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}});var Og=null;function yn(){return Og}function sl(n){Og??=n}var Pi=class{},os=(()=>{class n{historyGo(t){throw new Error("")}static \u0275fac=function(o){return new(o||n)};static \u0275prov=j({token:n,factory:()=>f(Ag),providedIn:"platform"})}return n})();var Ag=(()=>{class n extends os{_location;_history;_doc=f(it);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return yn().getBaseHref(this._doc)}onPopState(t){let o=yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("popstate",t,!1),()=>o.removeEventListener("popstate",t)}onHashChange(t){let o=yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("hashchange",t,!1),()=>o.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,o,i){this._history.pushState(t,o,i)}replaceState(t,o,i){this._history.replaceState(t,o,i)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static \u0275fac=function(o){return new(o||n)};static \u0275prov=j({token:n,factory:()=>new n,providedIn:"platform"})}return n})();function zg(n,e){return n?e?n.endsWith("/")?e.startsWith("/")?n+e.slice(1):n+e:e.startsWith("/")?n+e:`${n}/${e}`:n:e}function Lg(n){let e=n.search(/#|\?|$/);return n[e-1]==="/"?n.slice(0,e-1)+n.slice(e):n}function An(n){return n&&n[0]!=="?"?`?${n}`:n}var is=(()=>{class n{historyGo(t){throw new Error("")}static \u0275fac=function(o){return new(o||n)};static \u0275prov=j({token:n,factory:()=>f(Jv),providedIn:"root"})}return n})(),Qv=new Oe(""),Jv=(()=>{class n extends is{_platformLocation;_baseHref;_removeListenerFns=[];constructor(t,o){super(),this._platformLocation=t,this._baseHref=o??this._platformLocation.getBaseHrefFromDOM()??f(it).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return zg(this._baseHref,t)}path(t=!1){let o=this._platformLocation.pathname+An(this._platformLocation.search),i=this._platformLocation.hash;return i&&t?`${o}${i}`:o}pushState(t,o,i,r){let s=this.prepareExternalUrl(i+An(r));this._platformLocation.pushState(t,o,s)}replaceState(t,o,i,r){let s=this.prepareExternalUrl(i+An(r));this._platformLocation.replaceState(t,o,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static \u0275fac=function(o){return new(o||n)(Ce(os),Ce(Qv,8))};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ko=(()=>{class n{_subject=new ot;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(t){this._locationStrategy=t;let o=this._locationStrategy.getBaseHref();this._basePath=nb(Lg(Fg(o))),this._locationStrategy.onPopState(i=>{this._subject.next({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,o=""){return this.path()==this.normalize(t+An(o))}normalize(t){return n.stripTrailingSlash(tb(this._basePath,Fg(t)))}prepareExternalUrl(t){return t&&t[0]!=="/"&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,o="",i=null){this._locationStrategy.pushState(i,"",t,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+An(o)),i)}replaceState(t,o="",i=null){this._locationStrategy.replaceState(i,"",t,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+An(o)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(o=>{this._notifyUrlChangeListeners(o.url,o.state)}),()=>{let o=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(o,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",o){this._urlChangeListeners.forEach(i=>i(t,o))}subscribe(t,o,i){return this._subject.subscribe({next:t,error:o??void 0,complete:i??void 0})}static normalizeQueryParams=An;static joinWithSlash=zg;static stripTrailingSlash=Lg;static \u0275fac=function(o){return new(o||n)(Ce(is))};static \u0275prov=j({token:n,factory:()=>eb(),providedIn:"root"})}return n})();function eb(){return new ko(Ce(is))}function tb(n,e){if(!n||!e.startsWith(n))return e;let t=e.substring(n.length);return t===""||["/",";","?","#"].includes(t[0])?t:e}function Fg(n){return n.replace(/\/index\.html$/,"")}function nb(n){if(new RegExp("^(https?:)?//").test(n)){let[,t]=n.split(/\/\/[^\/]+/);return t}return n}var rs=(()=>{class n{_viewContainerRef;ngComponentOutlet=null;ngComponentOutletInputs;ngComponentOutletInjector;ngComponentOutletEnvironmentInjector;ngComponentOutletContent;ngComponentOutletNgModule;_componentRef;_moduleRef;_inputsUsed=new Map;get componentInstance(){return this._componentRef?.instance??null}constructor(t){this._viewContainerRef=t}_needToReCreateNgModuleInstance(t){return t.ngComponentOutletNgModule!==void 0}_needToReCreateComponentInstance(t){return t.ngComponentOutlet!==void 0||t.ngComponentOutletContent!==void 0||t.ngComponentOutletInjector!==void 0||t.ngComponentOutletEnvironmentInjector!==void 0||this._needToReCreateNgModuleInstance(t)}ngOnChanges(t){if(this._needToReCreateComponentInstance(t)&&(this._viewContainerRef.clear(),this._inputsUsed.clear(),this._componentRef=void 0,this.ngComponentOutlet)){let o=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;this._needToReCreateNgModuleInstance(t)&&(this._moduleRef?.destroy(),this.ngComponentOutletNgModule?this._moduleRef=_g(this.ngComponentOutletNgModule,ob(o)):this._moduleRef=void 0),this._componentRef=this._viewContainerRef.createComponent(this.ngComponentOutlet,{injector:o,ngModuleRef:this._moduleRef,projectableNodes:this.ngComponentOutletContent,environmentInjector:this.ngComponentOutletEnvironmentInjector})}}ngDoCheck(){if(this._componentRef){if(this.ngComponentOutletInputs)for(let t of Object.keys(this.ngComponentOutletInputs))this._inputsUsed.set(t,!0);this._applyInputStateDiff(this._componentRef)}}ngOnDestroy(){this._moduleRef?.destroy()}_applyInputStateDiff(t){for(let[o,i]of this._inputsUsed)i?(t.setInput(o,this.ngComponentOutletInputs[o]),this._inputsUsed.set(o,!1)):(t.setInput(o,void 0),this._inputsUsed.delete(o))}static \u0275fac=function(o){return new(o||n)(Xd(Xr))};static \u0275dir=ye({type:n,selectors:[["","ngComponentOutlet",""]],inputs:{ngComponentOutlet:"ngComponentOutlet",ngComponentOutletInputs:"ngComponentOutletInputs",ngComponentOutletInjector:"ngComponentOutletInjector",ngComponentOutletEnvironmentInjector:"ngComponentOutletEnvironmentInjector",ngComponentOutletContent:"ngComponentOutletContent",ngComponentOutletNgModule:"ngComponentOutletNgModule"},exportAs:["ngComponentOutlet"],features:[Yr]})}return n})();function ob(n){return n.get(wg).injector}function ib(n,e){return new Ie(2100,!1)}var al=class{createSubscription(e,t,o){return xe(()=>e.subscribe({next:t,error:o}))}dispose(e){xe(()=>e.unsubscribe())}},dl=class{createSubscription(e,t,o){return e.then(i=>t?.(i),i=>o?.(i)),{unsubscribe:()=>{t=null,o=null}}}dispose(e){e.unsubscribe()}},rb=new dl,sb=new al,vn=(()=>{class n{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;applicationErrorHandler=f(_i);constructor(t){this._ref=t}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(t){if(!this._obj){if(t)try{this.markForCheckOnValueUpdate=!1,this._subscribe(t)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,o=>this._updateLatestValue(t,o),o=>this.applicationErrorHandler(o))}_selectStrategy(t){if(Qr(t))return rb;if(bg(t))return sb;throw ib(n,t)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,o){t===this._obj&&(this._latestValue=o,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(o){return new(o||n)(Xd(ns,16))};static \u0275pipe=xg({name:"async",type:n,pure:!1})}return n})();var Ii=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275mod=el({type:n});static \u0275inj=Wd({})}return n})();function ll(n,e){e=encodeURIComponent(e);for(let t of n.split(";")){let o=t.indexOf("="),[i,r]=o==-1?[t,""]:[t.slice(0,o),t.slice(o+1)];if(i.trim()===e)return decodeURIComponent(r)}return null}var cl="browser";function Bg(n){return n===cl}var Di=class{_doc;constructor(e){this._doc=e}manager},ss=(()=>{class n extends Di{constructor(t){super(t)}supports(t){return!0}addEventListener(t,o,i,r){return t.addEventListener(o,i,r),()=>this.removeEventListener(t,o,i,r)}removeEventListener(t,o,i,r){return t.removeEventListener(o,i,r)}static \u0275fac=function(o){return new(o||n)(Ce(it))};static \u0275prov=j({token:n,factory:n.\u0275fac})}return n})(),ls=new Oe(""),gl=(()=>{class n{_zone;_plugins;_eventNameToPlugin=new Map;constructor(t,o){this._zone=o,t.forEach(s=>{s.manager=this});let i=t.filter(s=>!(s instanceof ss));this._plugins=i.slice().reverse();let r=t.find(s=>s instanceof ss);r&&this._plugins.push(r)}addEventListener(t,o,i,r){return this._findPluginFor(o).addEventListener(t,o,i,r)}getZone(){return this._zone}_findPluginFor(t){let o=this._eventNameToPlugin.get(t);if(o)return o;if(o=this._plugins.find(r=>r.supports(t)),!o)throw new Ie(-5101,!1);return this._eventNameToPlugin.set(t,o),o}static \u0275fac=function(o){return new(o||n)(Ce(ls),Ce(gn))};static \u0275prov=j({token:n,factory:n.\u0275fac})}return n})(),ul="ng-app-id";function $g(n){for(let e of n)e.remove()}function Hg(n,e){let t=e.createElement("style");return t.textContent=n,t}function lb(n,e,t,o){let i=n.head?.querySelectorAll(`style[${ul}="${e}"],link[${ul}="${e}"]`);if(!i||i.length===0)return!1;for(let r of i)r.removeAttribute(ul),r instanceof HTMLLinkElement?o.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&t.set(r.textContent,{usage:0,elements:[r]});return!0}function hl(n,e){let t=e.createElement("link");return t.setAttribute("rel","stylesheet"),t.setAttribute("href",n),t}var fl=(()=>{class n{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(t,o,i,r={}){this.doc=t,this.appId=o,this.nonce=i,lb(t,o,this.inline,this.external)&&this.hosts.add(t.head)}addStyles(t,o){for(let i of t)this.addUsage(i,this.inline,Hg);o?.forEach(i=>this.addUsage(i,this.external,hl))}removeStyles(t,o){for(let i of t)this.removeUsage(i,this.inline);o?.forEach(i=>this.removeUsage(i,this.external))}addUsage(t,o,i){let r=o.get(t);r?r.usage++:o.set(t,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,i(t,this.doc)))})}removeUsage(t,o){let i=o.get(t);i&&(i.usage--,i.usage<=0&&($g(i.elements),o.delete(t)))}ngOnDestroy(){for(let[,{elements:t}]of[...this.inline,...this.external])$g(t);this.hosts.clear()}addHost(t){if(!this.hosts.has(t)){this.hosts.add(t);for(let[o,{elements:i}]of this.inline)i.push(this.addElement(t,Hg(o,this.doc)));for(let[o,{elements:i}]of this.external)i.push(this.addElement(t,hl(o,this.doc)))}}removeHost(t){this.hosts.delete(t);for(let o of[...this.inline.values(),...this.external.values()]){let i=[];for(let r of o.elements)r.parentNode===t?r.remove():i.push(r);o.elements=i}}addElement(t,o){return this.nonce&&o.setAttribute("nonce",this.nonce),t.appendChild(o)}static \u0275fac=function(o){return new(o||n)(Ce(it),Ce(qd),Ce(Yd,8),Ce(Io))};static \u0275prov=j({token:n,factory:n.\u0275fac})}return n})(),pl={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},ml=/%COMP%/g;var jg="%COMP%",cb=`_nghost-${jg}`,ub=`_ngcontent-${jg}`,pb=!0,hb=new Oe("",{factory:()=>pb});function gb(n){return ub.replace(ml,n)}function fb(n){return cb.replace(ml,n)}function Vg(n,e){return e.map(t=>t.replace(ml,n))}var ki=(()=>{class n{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(t,o,i,r,s,a,d=null,l=null){this.eventManager=t,this.sharedStylesHost=o,this.appId=i,this.removeStylesOnCompDestroy=r,this.doc=s,this.ngZone=a,this.nonce=d,this.tracingService=l,this.defaultRenderer=new Ti(t,s,a,this.tracingService)}createRenderer(t,o){if(!t||!o)return this.defaultRenderer;let i=this.getOrCreateRenderer(t,o);return i instanceof ds?i.applyToHost(t):i instanceof Mi&&i.applyStyles(),i}getOrCreateRenderer(t,o){let i=this.rendererByCompId,r=i.get(o.id);if(!r){let s=this.doc,a=this.ngZone,d=this.eventManager,l=this.sharedStylesHost,c=this.removeStylesOnCompDestroy,u=this.tracingService;switch(o.encapsulation){case Zr.Emulated:r=new ds(d,l,o,this.appId,c,s,a,u);break;case Zr.ShadowDom:return new as(d,t,o,s,a,this.nonce,u,l);case Zr.ExperimentalIsolatedShadowDom:return new as(d,t,o,s,a,this.nonce,u);default:r=new Mi(d,l,o,c,s,a,u);break}i.set(o.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(t){this.rendererByCompId.delete(t)}static \u0275fac=function(o){return new(o||n)(Ce(gl),Ce(xi),Ce(qd),Ce(hb),Ce(it),Ce(gn),Ce(Yd),Ce(vg,8))};static \u0275prov=j({token:n,factory:n.\u0275fac})}return n})(),Ti=class{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,t,o,i){this.eventManager=e,this.doc=t,this.ngZone=o,this.tracingService=i}destroy(){}destroyNode=null;createElement(e,t){return t?this.doc.createElementNS(pl[t]||t,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,t){(Ug(e)?e.content:e).appendChild(t)}insertBefore(e,t,o){e&&(Ug(e)?e.content:e).insertBefore(t,o)}removeChild(e,t){t.remove()}selectRootElement(e,t){let o=typeof e=="string"?this.doc.querySelector(e):e;if(!o)throw new Ie(-5104,!1);return t||(o.textContent=""),o}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,o,i){if(i){t=i+":"+t;let r=pl[i];r?e.setAttributeNS(r,t,o):e.setAttribute(t,o)}else e.setAttribute(t,o)}removeAttribute(e,t,o){if(o){let i=pl[o];i?e.removeAttributeNS(i,t):e.removeAttribute(`${o}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,o,i){i&(Do.DashCase|Do.Important)?e.style.setProperty(t,o,i&Do.Important?"important":""):e.style[t]=o}removeStyle(e,t,o){o&Do.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,o){e!=null&&(e[t]=o)}setValue(e,t){e.nodeValue=t}listen(e,t,o,i){if(typeof e=="string"&&(e=yn().getGlobalEventTarget(this.doc,e),!e))throw new Ie(-5102,!1);let r=this.decoratePreventDefault(o);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(e,t,r)),this.eventManager.addEventListener(e,t,r,i)}decoratePreventDefault(e){return t=>{if(t==="__ngUnwrap__")return e;e(t)===!1&&t.preventDefault()}}};function Ug(n){return n.tagName==="TEMPLATE"&&n.content!==void 0}var as=class extends Ti{hostEl;sharedStylesHost;shadowRoot;constructor(e,t,o,i,r,s,a,d){super(e,i,r,a),this.hostEl=t,this.sharedStylesHost=d,this.shadowRoot=t.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let l=o.styles;l=Vg(o.id,l);for(let u of l){let w=document.createElement("style");s&&w.setAttribute("nonce",s),w.textContent=u,this.shadowRoot.appendChild(w)}let c=o.getExternalStyles?.();if(c)for(let u of c){let w=hl(u,i);s&&w.setAttribute("nonce",s),this.shadowRoot.appendChild(w)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,o){return super.insertBefore(this.nodeOrShadowRoot(e),t,o)}removeChild(e,t){return super.removeChild(null,t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},Mi=class extends Ti{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,t,o,i,r,s,a,d){super(e,r,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=i;let l=o.styles;this.styles=d?Vg(d,l):l,this.styleUrls=o.getExternalStyles?.(d)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&yg.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},ds=class extends Mi{contentAttr;hostAttr;constructor(e,t,o,i,r,s,a,d){let l=i+"-"+o.id;super(e,t,o,r,s,a,d,l),this.contentAttr=gb(l),this.hostAttr=fb(l)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,t){let o=super.createElement(e,t);return super.setAttribute(o,this.contentAttr,""),o}};var cs=class n extends Pi{supportsDOMEvents=!0;static makeCurrent(){sl(new n)}onAndCancel(e,t,o,i){return e.addEventListener(t,o,i),()=>{e.removeEventListener(t,o,i)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.remove()}createElement(e,t){return t=t||this.getDefaultDocument(),t.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return t==="window"?window:t==="document"?e:t==="body"?e.body:null}getBaseHref(e){let t=mb();return t==null?null:yb(t)}resetBaseElement(){Ri=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return ll(document.cookie,e)}},Ri=null;function mb(){return Ri=Ri||document.head.querySelector("base"),Ri?Ri.getAttribute("href"):null}function yb(n){return new URL(n,document.baseURI).pathname}var Wg=["alt","control","meta","shift"],vb={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},bb={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey},Gg=(()=>{class n extends Di{constructor(t){super(t)}supports(t){return n.parseEventName(t)!=null}addEventListener(t,o,i,r){let s=n.parseEventName(o),a=n.eventCallback(s.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>yn().onAndCancel(t,s.domEventName,a,r))}static parseEventName(t){let o=t.toLowerCase().split("."),i=o.shift();if(o.length===0||!(i==="keydown"||i==="keyup"))return null;let r=n._normalizeKey(o.pop()),s="",a=o.indexOf("code");if(a>-1&&(o.splice(a,1),s="code."),Wg.forEach(l=>{let c=o.indexOf(l);c>-1&&(o.splice(c,1),s+=l+".")}),s+=r,o.length!=0||r.length===0)return null;let d={};return d.domEventName=i,d.fullKey=s,d}static matchEventFullKeyCode(t,o){let i=vb[t.key]||t.key,r="";return o.indexOf("code.")>-1&&(i=t.code,r="code."),i==null||!i?!1:(i=i.toLowerCase(),i===" "?i="space":i==="."&&(i="dot"),Wg.forEach(s=>{if(s!==i){let a=bb[s];a(t)&&(r+=s+".")}}),r+=i,r===o)}static eventCallback(t,o,i){return r=>{n.matchEventFullKeyCode(r,t)&&i.runGuarded(()=>o(r))}}static _normalizeKey(t){return t==="esc"?"escape":t}static \u0275fac=function(o){return new(o||n)(Ce(it))};static \u0275prov=j({token:n,factory:n.\u0275fac})}return n})();function yl(n,e,t){return M(this,null,function*(){let o=h({rootComponent:n},wb(e,t));return kg(o)})}function wb(n,e){return{platformRef:e?.platformRef,appProviders:[...Eb,...n?.providers??[]],platformProviders:Sb}}function Cb(){cs.makeCurrent()}function _b(){return new Gd}function xb(){return mg(document),document}var Sb=[{provide:Io,useValue:cl},{provide:hg,useValue:Cb,multi:!0},{provide:it,useFactory:xb}];var Eb=[{provide:cg,useValue:"root"},{provide:Gd,useFactory:_b},{provide:ls,useClass:ss,multi:!0},{provide:ls,useClass:Gg,multi:!0},ki,{provide:xi,useClass:fl},{provide:fl,useExisting:xi},gl,{provide:Kr,useExisting:ki},[]];var qg=(()=>{class n{_doc;constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static \u0275fac=function(o){return new(o||n)(Ce(it))};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Ib="@",Db=(()=>{class n{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=null;injector=f(Wt);loadingSchedulerFn=f(Tb,{optional:!0});_engine;constructor(t,o,i,r,s){this.doc=t,this.delegate=o,this.zone=i,this.animationType=r,this.moduleImpl=s}ngOnDestroy(){this._engine?.flush()}loadImpl(){let t=()=>this.moduleImpl??import("./chunk-2AICAC67.js").then(i=>i),o;return this.loadingSchedulerFn?o=this.loadingSchedulerFn(t):o=t(),o.catch(i=>{throw new Ie(5300,!1)}).then(({\u0275createEngine:i,\u0275AnimationRendererFactory:r})=>{this._engine=i(this.animationType,this.doc);let s=new r(this.delegate,this._engine,this.zone);return this.delegate=s,s})}createRenderer(t,o){let i=this.delegate.createRenderer(t,o);if(i.\u0275type===0)return i;typeof i.throwOnSyntheticProps=="boolean"&&(i.throwOnSyntheticProps=!1);let r=new vl(i);return o?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(s=>{let a=s.createRenderer(t,o);r.use(a),this.scheduler??=this.injector.get(fg,null,{optional:!0}),this.scheduler?.notify(10)}).catch(s=>{r.use(i)}),r}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}componentReplaced(t){this._engine?.flush(),this.delegate.componentReplaced?.(t)}static \u0275fac=function(o){Qd()};static \u0275prov=j({token:n,factory:n.\u0275fac})}return n})(),vl=class{delegate;replay=[];\u0275type=1;constructor(e){this.delegate=e}use(e){if(this.delegate=e,this.replay!==null){for(let t of this.replay)t(e);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}get destroyNode(){return this.delegate.destroyNode}appendChild(e,t){this.delegate.appendChild(e,t)}insertBefore(e,t,o,i){this.delegate.insertBefore(e,t,o,i)}removeChild(e,t,o,i){this.delegate.removeChild(e,t,o,i)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,o,i){this.delegate.setAttribute(e,t,o,i)}removeAttribute(e,t,o){this.delegate.removeAttribute(e,t,o)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,o,i){this.delegate.setStyle(e,t,o,i)}removeStyle(e,t,o){this.delegate.removeStyle(e,t,o)}setProperty(e,t,o){this.shouldReplay(t)&&this.replay.push(i=>i.setProperty(e,t,o)),this.delegate.setProperty(e,t,o)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,o,i){return this.shouldReplay(t)&&this.replay.push(r=>r.listen(e,t,o,i)),this.delegate.listen(e,t,o,i)}shouldReplay(e){return this.replay!==null&&e.startsWith(Ib)}},Tb=new Oe("");function Yg(n="animations"){return Zd("NgAsyncAnimations"),qr([{provide:Kr,useFactory:()=>new Db(f(it),f(ki),f(gn),n)},{provide:gg,useValue:n==="noop"?"NoopAnimations":"BrowserAnimations"}])}var ie="primary",Gi=Symbol("RouteTitle"),xl=class{params;constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){let t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){let t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}};function eo(n){return new xl(n)}function bl(n,e,t){for(let o=0;o<n.length;o++){let i=n[o],r=e[o];if(i[0]===":")t[i.substring(1)]=r;else if(i!==r.path)return!1}return!0}function of(n,e,t){let o=t.path.split("/"),i=o.indexOf("**");if(i===-1){if(o.length>n.length||t.pathMatch==="full"&&(e.hasChildren()||o.length<n.length))return null;let d={},l=n.slice(0,o.length);return bl(o,l,d)?{consumed:l,posParams:d}:null}if(i!==o.lastIndexOf("**"))return null;let r=o.slice(0,i),s=o.slice(i+1);if(r.length+s.length>n.length||t.pathMatch==="full"&&e.hasChildren()&&t.path!=="**")return null;let a={};return!bl(r,n.slice(0,r.length),a)||!bl(s,n.slice(n.length-s.length),a)?null:{consumed:n,posParams:a}}function ms(n){return new Promise((e,t)=>{n.pipe(kn()).subscribe({next:o=>e(o),error:o=>t(o)})})}function Mb(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;++t)if(!rn(n[t],e[t]))return!1;return!0}function rn(n,e){let t=n?Sl(n):void 0,o=e?Sl(e):void 0;if(!t||!o||t.length!=o.length)return!1;let i;for(let r=0;r<t.length;r++)if(i=t[r],!rf(n[i],e[i]))return!1;return!0}function Sl(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}function rf(n,e){if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return!1;let t=[...n].sort(),o=[...e].sort();return t.every((i,r)=>o[r]===i)}else return n===e}function kb(n){return n.length>0?n[n.length-1]:null}function oo(n){return $d(n)?n:Qr(n)?Bt(Promise.resolve(n)):re(n)}function sf(n){return $d(n)?ms(n):Promise.resolve(n)}var Rb={exact:lf,subset:cf},af={exact:Nb,subset:Ob,ignored:()=>!0},df={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},El={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function Zg(n,e,t){return Rb[t.paths](n.root,e.root,t.matrixParams)&&af[t.queryParams](n.queryParams,e.queryParams)&&!(t.fragment==="exact"&&n.fragment!==e.fragment)}function Nb(n,e){return rn(n,e)}function lf(n,e,t){if(!Jn(n.segments,e.segments)||!hs(n.segments,e.segments,t)||n.numberOfChildren!==e.numberOfChildren)return!1;for(let o in e.children)if(!n.children[o]||!lf(n.children[o],e.children[o],t))return!1;return!0}function Ob(n,e){return Object.keys(e).length<=Object.keys(n).length&&Object.keys(e).every(t=>rf(n[t],e[t]))}function cf(n,e,t){return uf(n,e,e.segments,t)}function uf(n,e,t,o){if(n.segments.length>t.length){let i=n.segments.slice(0,t.length);return!(!Jn(i,t)||e.hasChildren()||!hs(i,t,o))}else if(n.segments.length===t.length){if(!Jn(n.segments,t)||!hs(n.segments,t,o))return!1;for(let i in e.children)if(!n.children[i]||!cf(n.children[i],e.children[i],o))return!1;return!0}else{let i=t.slice(0,n.segments.length),r=t.slice(n.segments.length);return!Jn(n.segments,i)||!hs(n.segments,i,o)||!n.children[ie]?!1:uf(n.children[ie],e,r,o)}}function hs(n,e,t){return e.every((o,i)=>af[t](n[i].parameters,o.parameters))}var Ht=class{root;queryParams;fragment;_queryParamMap;constructor(e=new be([],{}),t={},o=null){this.root=e,this.queryParams=t,this.fragment=o}get queryParamMap(){return this._queryParamMap??=eo(this.queryParams),this._queryParamMap}toString(){return Fb.serialize(this)}},be=class{segments;children;parent=null;constructor(e,t){this.segments=e,this.children=t,Object.values(t).forEach(o=>o.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return gs(this)}},Ln=class{path;parameters;_parameterMap;constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap??=eo(this.parameters),this._parameterMap}toString(){return hf(this)}};function Ab(n,e){return Jn(n,e)&&n.every((t,o)=>rn(t.parameters,e[o].parameters))}function Jn(n,e){return n.length!==e.length?!1:n.every((t,o)=>t.path===e[o].path)}function Lb(n,e){let t=[];return Object.entries(n.children).forEach(([o,i])=>{o===ie&&(t=t.concat(e(i,o)))}),Object.entries(n.children).forEach(([o,i])=>{o!==ie&&(t=t.concat(e(i,o)))}),t}var qi=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>new Fn})}return n})(),Fn=class{parse(e){let t=new Il(e);return new Ht(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){let t=`/${Ni(e.root,!0)}`,o=$b(e.queryParams),i=typeof e.fragment=="string"?`#${zb(e.fragment)}`:"";return`${t}${o}${i}`}},Fb=new Fn;function gs(n){return n.segments.map(e=>hf(e)).join("/")}function Ni(n,e){if(!n.hasChildren())return gs(n);if(e){let t=n.children[ie]?Ni(n.children[ie],!1):"",o=[];return Object.entries(n.children).forEach(([i,r])=>{i!==ie&&o.push(`${i}:${Ni(r,!1)}`)}),o.length>0?`${t}(${o.join("//")})`:t}else{let t=Lb(n,(o,i)=>i===ie?[Ni(n.children[ie],!1)]:[`${i}:${Ni(o,!1)}`]);return Object.keys(n.children).length===1&&n.children[ie]!=null?`${gs(n)}/${t[0]}`:`${gs(n)}/(${t.join("//")})`}}function pf(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function us(n){return pf(n).replace(/%3B/gi,";")}function zb(n){return encodeURI(n)}function Pl(n){return pf(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function fs(n){return decodeURIComponent(n)}function Kg(n){return fs(n.replace(/\+/g,"%20"))}function hf(n){return`${Pl(n.path)}${Bb(n.parameters)}`}function Bb(n){return Object.entries(n).map(([e,t])=>`;${Pl(e)}=${Pl(t)}`).join("")}function $b(n){let e=Object.entries(n).map(([t,o])=>Array.isArray(o)?o.map(i=>`${us(t)}=${us(i)}`).join("&"):`${us(t)}=${us(o)}`).filter(t=>t);return e.length?`?${e.join("&")}`:""}var Hb=/^[^\/()?;#]+/;function wl(n){let e=n.match(Hb);return e?e[0]:""}var Ub=/^[^\/()?;=#]+/;function jb(n){let e=n.match(Ub);return e?e[0]:""}var Vb=/^[^=?&#]+/;function Wb(n){let e=n.match(Vb);return e?e[0]:""}var Gb=/^[^&#]+/;function qb(n){let e=n.match(Gb);return e?e[0]:""}var Il=class{url;remaining;constructor(e){this.url=e,this.remaining=e}parseRootSegment(){for(;this.consumeOptional("/"););return this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new be([],{}):new be([],this.parseChildren())}parseQueryParams(){let e={};if(this.consumeOptional("?"))do this.parseQueryParam(e);while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(e=0){if(e>50)throw new Ie(4010,!1);if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let o={};this.peekStartsWith("/(")&&(this.capture("/"),o=this.parseParens(!0,e));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1,e)),(t.length>0||Object.keys(o).length>0)&&(i[ie]=new be(t,o)),i}parseSegment(){let e=wl(this.remaining);if(e===""&&this.peekStartsWith(";"))throw new Ie(4009,!1);return this.capture(e),new Ln(fs(e),this.parseMatrixParams())}parseMatrixParams(){let e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){let t=jb(this.remaining);if(!t)return;this.capture(t);let o="";if(this.consumeOptional("=")){let i=wl(this.remaining);i&&(o=i,this.capture(o))}e[fs(t)]=fs(o)}parseQueryParam(e){let t=Wb(this.remaining);if(!t)return;this.capture(t);let o="";if(this.consumeOptional("=")){let s=qb(this.remaining);s&&(o=s,this.capture(o))}let i=Kg(t),r=Kg(o);if(Object.hasOwn(e,i)){let s=e[i];Array.isArray(s)||(s=[s],e[i]=s),s.push(r)}else e[i]=r}parseParens(e,t){let o=Object.create(null);for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=wl(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new Ie(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=ie);let a=this.parseChildren(t+1);o[s??ie]=Object.keys(a).length===1&&a[ie]?a[ie]:new be([],a),this.consumeOptional("//")}return o}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return this.peekStartsWith(e)?(this.remaining=this.remaining.substring(e.length),!0):!1}capture(e){if(!this.consumeOptional(e))throw new Ie(4011,!1)}};function gf(n){return n.segments.length>0?new be([],{[ie]:n}):n}function ff(n){let e=Object.create(null);for(let[o,i]of Object.entries(n.children)){let r=ff(i);if(o===ie&&r.segments.length===0&&r.hasChildren())for(let[s,a]of Object.entries(r.children))e[s]=a;else(r.segments.length>0||r.hasChildren())&&(e[o]=r)}let t=new be(n.segments,e);return Yb(t)}function Yb(n){if(n.numberOfChildren===1&&n.children[ie]){let e=n.children[ie];return new be(n.segments.concat(e.segments),e.children)}return n}function Ao(n){return n instanceof Ht}function mf(n,e,t=null,o=null,i=new Fn){let r=yf(n);return vf(r,e,t,o,i)}function yf(n){let e;function t(r){let s={};for(let d of r.children){let l=t(d);s[d.outlet]=l}let a=new be(r.url,s);return r===n&&(e=a),a}let o=t(n.root),i=gf(o);return e??i}function vf(n,e,t,o,i){let r=n;for(;r.parent;)r=r.parent;if(e.length===0)return Cl(r,r,r,t,o,i);let s=Zb(e);if(s.toRoot())return Cl(r,r,new be([],{}),t,o,i);let a=Kb(s,r,n),d=a.processChildren?Ai(a.segmentGroup,a.index,s.commands):wf(a.segmentGroup,a.index,s.commands);return Cl(r,a.segmentGroup,d,t,o,i)}function ys(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function zi(n){return typeof n=="object"&&n!=null&&n.outlets}function Xg(n,e,t){n||="\u0275";let o=new Ht;return o.queryParams={[n]:e},t.parse(t.serialize(o)).queryParams[n]}function Cl(n,e,t,o,i,r){let s={};for(let[l,c]of Object.entries(o??{}))s[l]=Array.isArray(c)?c.map(u=>Xg(l,u,r)):Xg(l,c,r);let a;n===e?a=t:a=bf(n,e,t);let d=gf(ff(a));return new Ht(d,s,i)}function bf(n,e,t){let o=Object.create(null);return Object.entries(n.children).forEach(([i,r])=>{r===e?o[i]=t:o[i]=bf(r,e,t)}),new be(n.segments,o)}var vs=class{isAbsolute;numberOfDoubleDots;commands;constructor(e,t,o){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=o,e&&o.length>0&&ys(o[0]))throw new Ie(4003,!1);let i=o.find(zi);if(i&&i!==kb(o))throw new Ie(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function Zb(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new vs(!0,0,n);let e=0,t=!1,o=n.reduce((i,r,s)=>{if(typeof r=="object"&&r!=null){if(r.outlets){let a={};return Object.entries(r.outlets).forEach(([d,l])=>{a[d]=typeof l=="string"?l.split("/"):l}),[...i,{outlets:a}]}if(r.segmentPath)return[...i,r.segmentPath]}return typeof r!="string"?[...i,r]:s===0?(r.split("/").forEach((a,d)=>{d==0&&a==="."||(d==0&&a===""?t=!0:a===".."?e++:a!=""&&i.push(a))}),i):[...i,r]},[]);return new vs(t,e,o)}var No=class{segmentGroup;processChildren;index;constructor(e,t,o){this.segmentGroup=e,this.processChildren=t,this.index=o}};function Kb(n,e,t){if(n.isAbsolute)return new No(e,!0,0);if(!t)return new No(e,!1,NaN);if(t.parent===null)return new No(t,!0,0);let o=ys(n.commands[0])?0:1,i=t.segments.length-1+o;return Xb(t,i,n.numberOfDoubleDots)}function Xb(n,e,t){let o=n,i=e,r=t;for(;r>i;){if(r-=i,o=o.parent,!o)throw new Ie(4005,!1);i=o.segments.length}return new No(o,!1,i-r)}function Qb(n){return zi(n[0])?n[0].outlets:{[ie]:n}}function wf(n,e,t){if(n??=new be([],{}),n.segments.length===0&&n.hasChildren())return Ai(n,e,t);let o=Jb(n,e,t),i=t.slice(o.commandIndex);if(o.match&&o.pathIndex<n.segments.length){let r=new be(n.segments.slice(0,o.pathIndex),{});return r.children[ie]=new be(n.segments.slice(o.pathIndex),n.children),Ai(r,0,i)}else return o.match&&i.length===0?new be(n.segments,{}):o.match&&!n.hasChildren()?Dl(n,e,t):o.match?Ai(n,0,i):Dl(n,e,t)}function Ai(n,e,t){if(t.length===0)return new be(n.segments,{});{let o=Qb(t),i=Object.create(null);if(Object.keys(o).some(r=>r!==ie)&&n.children[ie]&&n.numberOfChildren===1&&n.children[ie].segments.length===0){let r=Ai(n.children[ie],e,t);return new be(n.segments,r.children)}return Object.entries(o).forEach(([r,s])=>{typeof s=="string"&&(s=[s]),s!==null&&(i[r]=wf(n.children[r],e,s))}),Object.entries(n.children).forEach(([r,s])=>{o[r]===void 0&&(i[r]=s)}),new be(n.segments,i)}}function Jb(n,e,t){let o=0,i=e,r={match:!1,pathIndex:0,commandIndex:0};for(;i<n.segments.length;){if(o>=t.length)return r;let s=n.segments[i],a=t[o];if(zi(a))break;let d=`${a}`,l=o<t.length-1?t[o+1]:null;if(i>0&&d===void 0)break;if(d&&l&&typeof l=="object"&&l.outlets===void 0){if(!Jg(d,l,s))return r;o+=2}else{if(!Jg(d,{},s))return r;o++}i++}return{match:!0,pathIndex:i,commandIndex:o}}function Dl(n,e,t){let o=n.segments.slice(0,e),i=0;for(;i<t.length;){let r=t[i];if(zi(r)){let d=ew(r.outlets);return new be(o,d)}if(i===0&&ys(t[0])){let d=n.segments[e];o.push(new Ln(d.path,Qg(t[0]))),i++;continue}let s=zi(r)?r.outlets[ie]:`${r}`,a=i<t.length-1?t[i+1]:null;s&&a&&ys(a)?(o.push(new Ln(s,Qg(a))),i+=2):(o.push(new Ln(s,{})),i++)}return new be(o,{})}function ew(n){let e={};return Object.entries(n).forEach(([t,o])=>{typeof o=="string"&&(o=[o]),o!==null&&(e[t]=Dl(new be([],{}),0,o))}),e}function Qg(n){let e={};return Object.entries(n).forEach(([t,o])=>e[t]=`${o}`),e}function Jg(n,e,t){return n==t.path&&rn(e,t.parameters)}var Li="imperative",Ke=(function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n})(Ke||{}),At=class{id;url;constructor(e,t){this.id=e,this.url=t}},to=class extends At{type=Ke.NavigationStart;navigationTrigger;restoredState;constructor(e,t,o="imperative",i=null){super(e,t),this.navigationTrigger=o,this.restoredState=i}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},wn=class extends At{urlAfterRedirects;type=Ke.NavigationEnd;constructor(e,t,o){super(e,t),this.urlAfterRedirects=o}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},mt=(function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n[n.Aborted=4]="Aborted",n})(mt||{}),Bi=(function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n})(Bi||{}),$t=class extends At{reason;code;type=Ke.NavigationCancel;constructor(e,t,o,i){super(e,t),this.reason=o,this.code=i}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}};function Cf(n){return n instanceof $t&&(n.code===mt.Redirect||n.code===mt.SupersededByNewNavigation)}var Cn=class extends At{reason;code;type=Ke.NavigationSkipped;constructor(e,t,o,i){super(e,t),this.reason=o,this.code=i}},no=class extends At{error;target;type=Ke.NavigationError;constructor(e,t,o,i){super(e,t),this.error=o,this.target=i}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},$i=class extends At{urlAfterRedirects;state;type=Ke.RoutesRecognized;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},bs=class extends At{urlAfterRedirects;state;type=Ke.GuardsCheckStart;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},ws=class extends At{urlAfterRedirects;state;shouldActivate;type=Ke.GuardsCheckEnd;constructor(e,t,o,i,r){super(e,t),this.urlAfterRedirects=o,this.state=i,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Cs=class extends At{urlAfterRedirects;state;type=Ke.ResolveStart;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},_s=class extends At{urlAfterRedirects;state;type=Ke.ResolveEnd;constructor(e,t,o,i){super(e,t),this.urlAfterRedirects=o,this.state=i}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},xs=class{route;type=Ke.RouteConfigLoadStart;constructor(e){this.route=e}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},Ss=class{route;type=Ke.RouteConfigLoadEnd;constructor(e){this.route=e}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Es=class{snapshot;type=Ke.ChildActivationStart;constructor(e){this.snapshot=e}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ps=class{snapshot;type=Ke.ChildActivationEnd;constructor(e){this.snapshot=e}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Is=class{snapshot;type=Ke.ActivationStart;constructor(e){this.snapshot=e}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ds=class{snapshot;type=Ke.ActivationEnd;constructor(e){this.snapshot=e}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}};var Lo=class{},Hi=class{},Fo=class{url;navigationBehaviorOptions;constructor(e,t){this.url=e,this.navigationBehaviorOptions=t}};function tw(n){return!(n instanceof Lo)&&!(n instanceof Fo)&&!(n instanceof Hi)}var Ts=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(e){this.rootInjector=e,this.children=new Ho(this.rootInjector)}},Ho=(()=>{class n{rootInjector;contexts=new Map;constructor(t){this.rootInjector=t}onChildOutletCreated(t,o){let i=this.getOrCreateContext(t);i.outlet=o,this.contexts.set(t,i)}onChildOutletDestroyed(t){let o=this.getContext(t);o&&(o.outlet=null,o.attachRef=null)}onOutletDeactivated(){let t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let o=this.getContext(t);return o||(o=new Ts(this.rootInjector),this.contexts.set(t,o)),o}getContext(t){return this.contexts.get(t)||null}static \u0275fac=function(o){return new(o||n)(Ce(hn))};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ms=class{_root;constructor(e){this._root=e}get root(){return this._root.value}parent(e){let t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){let t=Tl(e,this._root);return t?t.children.map(o=>o.value):[]}firstChild(e){let t=Tl(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){let t=Ml(e,this._root);return t.length<2?[]:t[t.length-2].children.map(i=>i.value).filter(i=>i!==e)}pathFromRoot(e){return Ml(e,this._root).map(t=>t.value)}};function Tl(n,e){if(n===e.value)return e;for(let t of e.children){let o=Tl(n,t);if(o)return o}return null}function Ml(n,e){if(n===e.value)return[e];for(let t of e.children){let o=Ml(n,t);if(o.length)return o.unshift(e),o}return[]}var Ot=class{value;children;constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}};function Ro(n){let e={};return n&&n.children.forEach(t=>e[t.value.outlet]=t),e}var Ui=class extends Ms{snapshot;constructor(e,t){super(e),this.snapshot=t,Bl(this,e)}toString(){return this.snapshot.toString()}};function _f(n,e){let t=nw(n,e),o=new ut([new Ln("",{})]),i=new ut({}),r=new ut({}),s=new ut({}),a=new ut(""),d=new zn(o,i,s,a,r,ie,n,t.root);return d.snapshot=t.root,new Ui(new Ot(d,[]),t)}function nw(n,e){let t={},o={},i={},s=new zo([],t,i,"",o,ie,n,null,{},e);return new ji("",new Ot(s,[]))}var zn=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;_localInjector;constructor(e,t,o,i,r,s,a,d){this.urlSubject=e,this.paramsSubject=t,this.queryParamsSubject=o,this.fragmentSubject=i,this.dataSubject=r,this.outlet=s,this.component=a,this._futureSnapshot=d,this.title=this.dataSubject?.pipe(N(l=>l[Gi]))??re(void 0),this.url=e,this.params=t,this.queryParams=o,this.fragment=i,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(N(e=>eo(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(N(e=>eo(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}},ow="always";function zl(n,e,t){let o,{routeConfig:i}=n;return e!==null&&(t==="always"||i?.path===""||!e.component&&!e.routeConfig?.loadComponent)?o={params:h(h({},e.params),n.params),data:h(h({},e.data),n.data),resolve:h(h(h(h({},n.data),e.data),i?.data),n._resolvedData)}:o={params:h({},n.params),data:h({},n.data),resolve:h(h({},n.data),n._resolvedData??{})},i&&Sf(i)&&(o.resolve[Gi]=i.title),o}var zo=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[Gi]}constructor(e,t,o,i,r,s,a,d,l,c){this.url=e,this.params=t,this.queryParams=o,this.fragment=i,this.data=r,this.outlet=s,this.component=a,this.routeConfig=d,this._resolve=l,this._environmentInjector=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=eo(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=eo(this.queryParams),this._queryParamMap}toString(){let e=this.url.map(o=>o.toString()).join("/"),t=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${e}', path:'${t}')`}},ji=class extends Ms{url;constructor(e,t){super(t),this.url=e,Bl(this,t)}toString(){return xf(this._root)}};function Bl(n,e){e.value._routerState=n,e.children.forEach(t=>Bl(n,t))}function xf(n){let e=n.children.length>0?` { ${n.children.map(xf).join(", ")} } `:"";return`${n.value}${e}`}function _l(n){if(n.snapshot){let e=n.snapshot,t=n._futureSnapshot;n.snapshot=t,rn(e.queryParams,t.queryParams)||n.queryParamsSubject.next(t.queryParams),e.fragment!==t.fragment&&n.fragmentSubject.next(t.fragment),rn(e.params,t.params)||n.paramsSubject.next(t.params),Mb(e.url,t.url)||n.urlSubject.next(t.url),rn(e.data,t.data)||n.dataSubject.next(t.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function kl(n,e){let t=rn(n.params,e.params)&&Ab(n.url,e.url),o=!n.parent!=!e.parent;return t&&!o&&(!n.parent||kl(n.parent,e.parent))}function Sf(n){return typeof n.title=="string"||n.title===null}var Ef=new Oe(""),Yi=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=ie;activateEvents=new _e;deactivateEvents=new _e;attachEvents=new _e;detachEvents=new _e;routerOutletData=I();parentContexts=f(Ho);location=f(Xr);changeDetector=f(ns);inputBinder=f(Os,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(t){if(t.name){let{firstChange:o,previousValue:i}=t.name;if(o)return;this.isTrackedInParentContexts(i)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(i)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Ie(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Ie(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Ie(4012,!1);this.location.detach();let t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,o){this.activated=t,this._activatedRoute=o,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){let t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,o){if(this.isActivated)throw new Ie(4013,!1);this._activatedRoute=t;let i=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,d=new Rl(t,a,i.injector,this.routerOutletData);this.activated=i.createComponent(s,{index:i.length,injector:d,environmentInjector:o}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(o){return new(o||n)};static \u0275dir=ye({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Yr]})}return n})(),Rl=class{route;childContexts;parent;outletData;constructor(e,t,o,i){this.route=e,this.childContexts=t,this.parent=o,this.outletData=i}get(e,t){return e===zn?this.route:e===Ho?this.childContexts:e===Ef?this.outletData:this.parent.get(e,t)}},Os=new Oe("");var $l=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275cmp=F({type:n,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(o,i){o&1&&$(0,"router-outlet")},dependencies:[Yi],encapsulation:2,changeDetection:1})}return n})();function Hl(n){let e=n.children&&n.children.map(Hl),t=e?_(h({},n),{children:e}):h({},n);return!t.component&&!t.loadComponent&&(e||t.loadChildren)&&t.outlet&&t.outlet!==ie&&(t.component=$l),t}function iw(n,e,t){let o=new Set,i=Vi(n,e._root,t?t._root:void 0,o);return{newlyCreatedRoutes:o,state:new Ui(i,e)}}function Vi(n,e,t,o){if(t&&n.shouldReuseRoute(e.value,t.value.snapshot)){let i=t.value;i._futureSnapshot=e.value;let r=rw(n,e,t,o);return new Ot(i,r)}else{if(n.shouldAttach(e.value)){let s=n.retrieve(e.value);if(s!==null){let a=s.route;return a.value._futureSnapshot=e.value,a.children=e.children.map(d=>Vi(n,d,void 0,o)),a}}let i=sw(e.value);o.add(i);let r=e.children.map(s=>Vi(n,s,void 0,o));return new Ot(i,r)}}function rw(n,e,t,o){return e.children.map(i=>{for(let r of t.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return Vi(n,i,r,o);return Vi(n,i,void 0,o)})}function sw(n){return new zn(new ut(n.url),new ut(n.params),new ut(n.queryParams),new ut(n.fragment),new ut(n.data),n.outlet,n.component,n)}var Bo=class{redirectTo;navigationBehaviorOptions;constructor(e,t){this.redirectTo=e,this.navigationBehaviorOptions=t}},Pf="ngNavigationCancelingError";function ks(n,e){let{redirectTo:t,navigationBehaviorOptions:o}=Ao(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,i=If(!1,mt.Redirect);return i.url=t,i.navigationBehaviorOptions=o,i}function If(n,e){let t=new Error(`NavigationCancelingError: ${n||""}`);return t[Pf]=!0,t.cancellationCode=e,t}function aw(n){return Df(n)&&Ao(n.url)}function Df(n){return!!n&&n[Pf]}var Nl=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(e,t,o,i,r){this.routeReuseStrategy=e,this.futureState=t,this.currState=o,this.forwardEvent=i,this.inputBindingEnabled=r}activate(e){let t=this.futureState._root,o=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,o,e),_l(this.futureState.root),this.activateChildRoutes(t,o,e)}deactivateChildRoutes(e,t,o){let i=Ro(t);e.children.forEach(r=>{let s=r.value.outlet;this.deactivateRoutes(r,i[s],o),delete i[s]}),Object.values(i).forEach(r=>{this.deactivateRouteAndItsChildren(r,o)})}deactivateRoutes(e,t,o){let i=e.value,r=t?t.value:null;if(i===r)if(i.component){let s=o.getContext(i.outlet);s&&this.deactivateChildRoutes(e,t,s.children)}else this.deactivateChildRoutes(e,t,o);else r&&this.deactivateRouteAndItsChildren(t,o)}deactivateRouteAndItsChildren(e,t){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){let o=t.getContext(e.value.outlet),i=o&&e.value.component?o.children:t,r=Ro(e);for(let s of Object.values(r))this.deactivateRouteAndItsChildren(s,i);if(o&&o.outlet){let s=o.outlet.detach(),a=o.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:s,route:e,contexts:a})}}deactivateRouteAndOutlet(e,t){let o=t.getContext(e.value.outlet),i=o&&e.value.component?o.children:t,r=Ro(e);for(let s of Object.values(r))this.deactivateRouteAndItsChildren(s,i);o&&(o.outlet&&(o.outlet.deactivate(),o.children.onOutletDeactivated()),o.attachRef=null,o.route=null),e.value._localInjector?.destroy()}activateChildRoutes(e,t,o){let i=Ro(t);e.children.forEach(r=>{this.activateRoutes(r,i[r.value.outlet],o),this.forwardEvent(new Ds(r.value.snapshot))}),e.children.length&&this.forwardEvent(new Ps(e.value.snapshot))}activateRoutes(e,t,o){let i=e.value,r=t?t.value:null;if(_l(i),i===r)if(i.component){let s=o.getOrCreateContext(i.outlet);this.activateChildRoutes(e,t,s.children)}else this.activateChildRoutes(e,t,o);else if(i.component){let s=o.getOrCreateContext(i.outlet);if(this.routeReuseStrategy.shouldAttach(i.snapshot)){let a=this.routeReuseStrategy.retrieve(i.snapshot);this.routeReuseStrategy.store(i.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),_l(a.route.value),this.activateChildRoutes(e,null,s.children)}else s.attachRef=null,s.route=i,s.outlet&&s.outlet.activateWith(i,s.injector),this.activateChildRoutes(e,null,s.children)}else this.activateChildRoutes(e,null,o)}},Rs=class{path;route;constructor(e){this.path=e,this.route=this.path[this.path.length-1]}},Oo=class{component;route;constructor(e,t){this.component=e,this.route=t}};function dw(n,e,t){let o=n._root,i=e?e._root:null;return Oi(o,i,t,[o.value])}function lw(n){let e=n.routeConfig?n.routeConfig.canActivateChild:null;return!e||e.length===0?null:{node:n,guards:e}}function Uo(n,e){let t=Symbol(),o=e.get(n,t);return o===t?typeof n=="function"&&!lg(n)?n:e.get(n):o}function Oi(n,e,t,o,i={canDeactivateChecks:[],canActivateChecks:[]}){let r=Ro(e);return n.children.forEach(s=>{cw(s,r[s.value.outlet],t,o.concat([s.value]),i),delete r[s.value.outlet]}),Object.entries(r).forEach(([s,a])=>Fi(a,t.getContext(s),i)),i}function cw(n,e,t,o,i={canDeactivateChecks:[],canActivateChecks:[]}){let r=n.value,s=e?e.value:null,a=t?t.getContext(n.value.outlet):null;if(s&&r.routeConfig===s.routeConfig){let d=uw(s,r,r.routeConfig.runGuardsAndResolvers);d?i.canActivateChecks.push(new Rs(o)):(r.data=s.data,r._resolvedData=s._resolvedData),r.component?Oi(n,e,a?a.children:null,o,i):Oi(n,e,t,o,i),d&&a&&a.outlet&&a.outlet.isActivated&&i.canDeactivateChecks.push(new Oo(a.outlet.component,s))}else s&&Fi(e,a,i),i.canActivateChecks.push(new Rs(o)),r.component?Oi(n,null,a?a.children:null,o,i):Oi(n,null,t,o,i);return i}function uw(n,e,t){if(typeof t=="function")return Ct(e._environmentInjector,()=>t(n,e));switch(t){case"pathParamsChange":return!Jn(n.url,e.url);case"pathParamsOrQueryParamsChange":return!Jn(n.url,e.url)||!rn(n.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!kl(n,e)||!rn(n.queryParams,e.queryParams);default:return!kl(n,e)}}function Fi(n,e,t){let o=Ro(n),i=n.value;Object.entries(o).forEach(([r,s])=>{i.component?e?Fi(s,e.children.getContext(r),t):Fi(s,null,t):Fi(s,e,t)}),i.component?e&&e.outlet&&e.outlet.isActivated?t.canDeactivateChecks.push(new Oo(e.outlet.component,i)):t.canDeactivateChecks.push(new Oo(null,i)):t.canDeactivateChecks.push(new Oo(null,i))}function Zi(n){return typeof n=="function"}function pw(n){return typeof n=="boolean"}function hw(n){return n&&Zi(n.canLoad)}function gw(n){return n&&Zi(n.canActivate)}function fw(n){return n&&Zi(n.canActivateChild)}function mw(n){return n&&Zi(n.canDeactivate)}function yw(n){return n&&Zi(n.canMatch)}function Tf(n){return n instanceof og||n?.name==="EmptyError"}var ps=Symbol("INITIAL_VALUE");function $o(){return we(n=>Ne(n.map(e=>e.pipe(nn(1),he(ps)))).pipe(N(e=>{for(let t of e)if(t!==!0){if(t===ps)return ps;if(t===!1||vw(t))return t}return!0}),Pe(e=>e!==ps),nn(1)))}function vw(n){return Ao(n)||n instanceof Bo}function Mf(n){return n.aborted?re(void 0).pipe(nn(1)):new Ur(e=>{let t=()=>{e.next(),e.complete()};return n.addEventListener("abort",t),()=>n.removeEventListener("abort",t)})}function kf(n){return Po(Mf(n))}function bw(n){return Mn(e=>{let{targetSnapshot:t,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:r}}=e;return r.length===0&&i.length===0?re(_(h({},e),{guardsResult:!0})):ww(r,t,o).pipe(Mn(s=>s&&pw(s)?Cw(t,i,n):re(s)),N(s=>_(h({},e),{guardsResult:s})))})}function ww(n,e,t){return Bt(n).pipe(Mn(o=>Pw(o.component,o.route,t,e)),kn(o=>o!==!0,!0))}function Cw(n,e,t){return Bt(e).pipe(Ud(o=>jr(xw(o.route.parent,t),_w(o.route,t),Ew(n,o.path),Sw(n,o.route))),kn(o=>o!==!0,!0))}function _w(n,e){return n!==null&&e&&e(new Is(n)),re(!0)}function xw(n,e){return n!==null&&e&&e(new Es(n)),re(!0)}function Sw(n,e){let t=e.routeConfig?e.routeConfig.canActivate:null;if(!t||t.length===0)return re(!0);let o=t.map(i=>Vr(()=>{let r=e._environmentInjector,s=Uo(i,r),a=gw(s)?s.canActivate(e,n):Ct(r,()=>s(e,n));return oo(a).pipe(kn())}));return re(o).pipe($o())}function Ew(n,e){let t=e[e.length-1],i=e.slice(0,e.length-1).reverse().map(r=>lw(r)).filter(r=>r!==null).map(r=>Vr(()=>{let s=r.guards.map(a=>{let d=r.node._environmentInjector,l=Uo(a,d),c=fw(l)?l.canActivateChild(t,n):Ct(d,()=>l(t,n));return oo(c).pipe(kn())});return re(s).pipe($o())}));return re(i).pipe($o())}function Pw(n,e,t,o){let i=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!i||i.length===0)return re(!0);let r=i.map(s=>{let a=e._environmentInjector,d=Uo(s,a),l=mw(d)?d.canDeactivate(n,e,t,o):Ct(a,()=>d(n,e,t,o));return oo(l).pipe(kn())});return re(r).pipe($o())}function Iw(n,e,t,o,i){let r=e.canLoad;if(r===void 0||r.length===0)return re(!0);let s=r.map(a=>{let d=Uo(a,n),l=hw(d)?d.canLoad(e,t):Ct(n,()=>d(e,t)),c=oo(l);return i?c.pipe(kf(i)):c});return re(s).pipe($o(),Rf(o))}function Rf(n){return eg(Rt(e=>{if(typeof e!="boolean")throw ks(n,e)}),N(e=>e===!0))}function Dw(n,e,t,o,i,r){let s=e.canMatch;if(!s||s.length===0)return re(!0);let a=s.map(d=>{let l=Uo(d,n),c=yw(l)?l.canMatch(e,t,i):Ct(n,()=>l(e,t,i));return oo(c).pipe(kf(r))});return re(a).pipe($o(),Rf(o))}var bn=class n extends Error{segmentGroup;constructor(e){super(),this.segmentGroup=e||null,Object.setPrototypeOf(this,n.prototype)}},Wi=class n extends Error{urlTree;constructor(e){super(),this.urlTree=e,Object.setPrototypeOf(this,n.prototype)}};function Tw(n){throw new Ie(4e3,!1)}function Mw(n){throw If(!1,mt.GuardRejected)}var Ol=class{urlSerializer;urlTree;constructor(e,t){this.urlSerializer=e,this.urlTree=t}lineralizeSegments(e,t){return M(this,null,function*(){let o=[],i=t.root;for(;;){if(o=o.concat(i.segments),i.numberOfChildren===0)return o;if(i.numberOfChildren>1||!i.children[ie])throw Tw(`${e.redirectTo}`);i=i.children[ie]}})}applyRedirectCommands(e,t,o,i,r){return M(this,null,function*(){let s=yield kw(t,i,r);if(s instanceof Ht)throw new Wi(s);let a=this.applyRedirectCreateUrlTree(s,this.urlSerializer.parse(s),e,o);if(s[0]==="/")throw new Wi(a);return a})}applyRedirectCreateUrlTree(e,t,o,i){let r=this.createSegmentGroup(e,t.root,o,i);return new Ht(r,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){let o={};return Object.entries(e).forEach(([i,r])=>{if(typeof r=="string"&&r[0]===":"){let a=r.substring(1);o[i]=t[a]}else o[i]=r}),o}createSegmentGroup(e,t,o,i){let r=this.createSegments(e,t.segments,o,i),s=Object.create(null);return Object.entries(t.children).forEach(([a,d])=>{s[a]=this.createSegmentGroup(e,d,o,i)}),new be(r,s)}createSegments(e,t,o,i){return t.map(r=>r.path[0]===":"?this.findPosParam(e,r,i):this.findOrReturn(r,o))}findPosParam(e,t,o){let i=o[t.path.substring(1)];if(!i)throw new Ie(4001,!1);return i}findOrReturn(e,t){let o=0;for(let i of t){if(i.path===e.path)return t.splice(o),i;o++}return e}};function kw(n,e,t){if(typeof n=="string")return Promise.resolve(n);let o=n;return ms(oo(Ct(t,()=>o(e))))}function Rw(n,e){return n.providers&&!n._injector&&(n._injector=Jd(n.providers,e,`Route: ${n.path}`)),n._injector??e}function Yt(n){return n.outlet||ie}function Nw(n,e){let t=n.filter(o=>Yt(o)===e);return t.push(...n.filter(o=>Yt(o)!==e)),t}var Al={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Nf(n){return{routeConfig:n.routeConfig,url:n.url,params:n.params,queryParams:n.queryParams,fragment:n.fragment,data:n.data,outlet:n.outlet,title:n.title,paramMap:n.paramMap,queryParamMap:n.queryParamMap}}function Ow(n,e,t,o,i,r,s){let a=Of(n,e,t);if(!a.matched)return re(a);let d=Nf(r(a));return o=Rw(e,o),Dw(o,e,t,i,d,s).pipe(N(l=>l===!0?a:h({},Al)))}function Of(n,e,t){if(e.path==="")return e.pathMatch==="full"&&(n.hasChildren()||t.length>0)?h({},Al):{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};let i=(e.matcher||of)(t,n,e);if(!i)return h({},Al);let r={};Object.entries(i.posParams??{}).forEach(([a,d])=>{r[a]=d.path});let s=i.consumed.length>0?h(h({},r),i.consumed[i.consumed.length-1].parameters):r;return{matched:!0,consumedSegments:i.consumed,remainingSegments:t.slice(i.consumed.length),parameters:s,positionalParamSegments:i.posParams??{}}}function ef(n,e,t,o,i){return t.length>0&&Fw(n,t,o,i)?{segmentGroup:new be(e,Lw(o,new be(t,n.children))),slicedSegments:[]}:t.length===0&&zw(n,t,o)?{segmentGroup:new be(n.segments,Aw(n,t,o,n.children)),slicedSegments:t}:{segmentGroup:new be(n.segments,n.children),slicedSegments:t}}function Aw(n,e,t,o){let i={};for(let r of t)if(As(n,e,r)&&!o[Yt(r)]){let s=new be([],{});i[Yt(r)]=s}return h(h({},o),i)}function Lw(n,e){let t={};t[ie]=e;for(let o of n)if(o.path===""&&Yt(o)!==ie){let i=new be([],{});t[Yt(o)]=i}return t}function Fw(n,e,t,o){return t.some(i=>!As(n,e,i)||!(Yt(i)!==ie)?!1:!(o!==void 0&&Yt(i)===o))}function zw(n,e,t){return t.some(o=>As(n,e,o))}function As(n,e,t){return(n.hasChildren()||e.length>0)&&t.pathMatch==="full"?!1:t.path===""}function Bw(n,e,t){return e.length===0&&!n.children[t]}var Ll=class{};function $w(n,e,t,o,i,r,s,a){return M(this,null,function*(){return new Fl(n,e,t,o,i,s,r,a).recognize()})}var Hw=31,Fl=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(e,t,o,i,r,s,a,d){this.injector=e,this.configLoader=t,this.rootComponentType=o,this.config=i,this.urlTree=r,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=d,this.applyRedirects=new Ol(this.urlSerializer,this.urlTree)}noMatchError(e){return new Ie(4002,`'${e.segmentGroup}'`)}recognize(){return M(this,null,function*(){let e=ef(this.urlTree.root,[],[],this.config).segmentGroup,{children:t,rootSnapshot:o}=yield this.match(e),i=new Ot(o,t),r=new ji("",i),s=mf(o,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(s),{state:r,tree:s}})}match(e){return M(this,null,function*(){let t=new zo([],Object.freeze({}),Object.freeze(h({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),ie,this.rootComponentType,null,{},this.injector);try{return{children:yield this.processSegmentGroup(this.injector,this.config,e,ie,t),rootSnapshot:t}}catch(o){if(o instanceof Wi)return this.urlTree=o.urlTree,this.match(o.urlTree.root);throw o instanceof bn?this.noMatchError(o):o}})}processSegmentGroup(e,t,o,i,r){return M(this,null,function*(){if(o.segments.length===0&&o.hasChildren())return this.processChildren(e,t,o,r);let s=yield this.processSegment(e,t,o,o.segments,i,!0,r);return s instanceof Ot?[s]:[]})}processChildren(e,t,o,i){return M(this,null,function*(){let r=[];for(let d of Object.keys(o.children))d==="primary"?r.unshift(d):r.push(d);let s=[];for(let d of r){let l=o.children[d],c=Nw(t,d),u=yield this.processSegmentGroup(e,c,l,d,i);s.push(...u)}let a=Af(s);return Uw(a),a})}processSegment(e,t,o,i,r,s,a){return M(this,null,function*(){for(let d of t)try{return yield this.processSegmentAgainstRoute(d._injector??e,t,d,o,i,r,s,a)}catch(l){if(l instanceof bn||Tf(l))continue;throw l}if(Bw(o,i,r))return new Ll;throw new bn(o)})}processSegmentAgainstRoute(e,t,o,i,r,s,a,d){return M(this,null,function*(){if(Yt(o)!==s&&(s===ie||!As(i,r,o)))throw new bn(i);if(o.redirectTo===void 0)return this.matchSegmentAgainstRoute(e,i,o,r,s,d);if(this.allowRedirects&&a)return this.expandSegmentAgainstRouteUsingRedirect(e,i,t,o,r,s,d);throw new bn(i)})}expandSegmentAgainstRouteUsingRedirect(e,t,o,i,r,s,a){return M(this,null,function*(){let{matched:d,parameters:l,consumedSegments:c,positionalParamSegments:u,remainingSegments:w}=Of(t,i,r);if(!d)throw new bn(t);typeof i.redirectTo=="string"&&i.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>Hw&&(this.allowRedirects=!1));let S=this.createSnapshot(e,i,r,l,a);if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let k=yield this.applyRedirects.applyRedirectCommands(c,i.redirectTo,u,Nf(S),e),W=yield this.applyRedirects.lineralizeSegments(i,k);return this.processSegment(e,o,t,W.concat(w),s,!1,a)})}createSnapshot(e,t,o,i,r){let s=new zo(o,i,Object.freeze(h({},this.urlTree.queryParams)),this.urlTree.fragment,Vw(t),Yt(t),t.component??t._loadedComponent??null,t,Ww(t),e),a=zl(s,r,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}matchSegmentAgainstRoute(e,t,o,i,r,s){return M(this,null,function*(){if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let a=Ee=>this.createSnapshot(e,o,Ee.consumedSegments,Ee.parameters,s),d=yield ms(Ow(t,o,i,e,this.urlSerializer,a,this.abortSignal));if(o.path==="**"&&(t.children={}),!d?.matched)throw new bn(t);e=o._injector??e;let{routes:l}=yield this.getChildConfig(e,o,i),c=o._loadedInjector??e,{parameters:u,consumedSegments:w,remainingSegments:S}=d,k=this.createSnapshot(e,o,w,u,s),{segmentGroup:W,slicedSegments:Z}=ef(t,w,S,l,r);if(Z.length===0&&W.hasChildren()){let Ee=yield this.processChildren(c,l,W,k);return new Ot(k,Ee)}if(l.length===0&&Z.length===0)return new Ot(k,[]);let K=Yt(o)===r,te=yield this.processSegment(c,l,W,Z,K?ie:r,!0,k);return new Ot(k,te instanceof Ot?[te]:[])})}getChildConfig(e,t,o){return M(this,null,function*(){if(t.children)return{routes:t.children,injector:e};if(t.loadChildren){if(t._loadedRoutes!==void 0){let r=t._loadedNgModuleFactory;return r&&!t._loadedInjector&&(t._loadedInjector=r.create(e).injector),{routes:t._loadedRoutes,injector:t._loadedInjector}}if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);if(yield ms(Iw(e,t,o,this.urlSerializer,this.abortSignal))){let r=yield this.configLoader.loadChildren(e,t);return t._loadedRoutes=r.routes,t._loadedInjector=r.injector,t._loadedNgModuleFactory=r.factory,r}throw Mw(t)}return{routes:[],injector:e}})}};function Uw(n){n.sort((e,t)=>e.value.outlet===ie?-1:t.value.outlet===ie?1:e.value.outlet.localeCompare(t.value.outlet))}function jw(n){let e=n.value.routeConfig;return e&&e.path===""}function Af(n){let e=[],t=new Set;for(let o of n){if(!jw(o)){e.push(o);continue}let i=e.find(r=>o.value.routeConfig===r.value.routeConfig);i!==void 0?(i.children.push(...o.children),t.add(i)):e.push(o)}for(let o of t){let i=Af(o.children);e.push(new Ot(o.value,i))}return e.filter(o=>!t.has(o))}function Vw(n){return n.data||{}}function Ww(n){return n.resolve||{}}function Gw(n,e,t,o,i,r,s){return Mn(a=>M(null,null,function*(){let{state:d,tree:l}=yield $w(n,e,t,o,a.extractedUrl,i,r,s);return _(h({},a),{targetSnapshot:d,urlAfterRedirects:l})}))}function qw(n){return Mn(e=>{let{targetSnapshot:t,guards:{canActivateChecks:o}}=e;if(!o.length)return re(e);let i=new Set(o.map(a=>a.route)),r=new Set;for(let a of i)if(!r.has(a))for(let d of Lf(a))r.add(d);let s=0;return Bt(r).pipe(Ud(a=>i.has(a)?Yw(a,t,n):(a.data=zl(a,a.parent,n).resolve,re(void 0))),Rt(()=>s++),jd(1),Mn(a=>s===r.size?re(e):Pt))})}function Lf(n){let e=n.children.map(t=>Lf(t)).flat();return[n,...e]}function Yw(n,e,t){let o=n.routeConfig,i=n._resolve;return o?.title!==void 0&&!Sf(o)&&(i[Gi]=o.title),Vr(()=>(n.data=zl(n,n.parent,t).resolve,Zw(i,n,e).pipe(N(r=>(n._resolvedData=r,n.data=h(h({},n.data),r),null)))))}function Zw(n,e,t){let o=Sl(n);if(o.length===0)return re({});let i={};return Bt(o).pipe(Mn(r=>Kw(n[r],e,t).pipe(kn(),Rt(s=>{if(s instanceof Bo)throw ks(new Fn,s);i[r]=s}))),jd(1),N(()=>i),Hd(r=>Tf(r)?Pt:ng(r)))}function Kw(n,e,t){let o=e._environmentInjector,i=Uo(n,o),r=i.resolve?i.resolve(e,t):Ct(o,()=>i(e,t));return oo(r)}function tf(n){return we(e=>{let t=n(e);return t?Bt(t).pipe(N(()=>e)):re(e)})}var Ul=(()=>{class n{buildTitle(t){let o,i=t.root;for(;i!==void 0;)o=this.getResolvedTitleForRoute(i)??o,i=i.children.find(r=>r.outlet===ie);return o}getResolvedTitleForRoute(t){return t.data[Gi]}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>f(Ff)})}return n})(),Ff=(()=>{class n extends Ul{title;constructor(t){super(),this.title=t}updateTitle(t){let o=this.buildTitle(t);o!==void 0&&this.title.setTitle(o)}static \u0275fac=function(o){return new(o||n)(Ce(qg))};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Ki=new Oe("",{factory:()=>({})}),Xi=new Oe(""),zf=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=f(Dg);loadComponent(t,o){return M(this,null,function*(){if(this.componentLoaders.get(o))return this.componentLoaders.get(o);if(o._loadedComponent)return Promise.resolve(o._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(o);let i=M(this,null,function*(){try{let r=yield sf(Ct(t,()=>o.loadComponent())),s=yield $f(rl(r));return this.onLoadEndListener&&this.onLoadEndListener(o),o._loadedComponent=s,s}finally{this.componentLoaders.delete(o)}});return this.componentLoaders.set(o,i),i})}loadChildren(t,o){if(this.childrenLoaders.get(o))return this.childrenLoaders.get(o);if(o._loadedRoutes)return Promise.resolve({routes:o._loadedRoutes,injector:o._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(o);let i=M(this,null,function*(){try{let r=yield Bf(o,this.compiler,t,this.onLoadEndListener);return o._loadedRoutes=r.routes,o._loadedInjector=r.injector,o._loadedNgModuleFactory=r.factory,r}finally{this.childrenLoaders.delete(o)}});return this.childrenLoaders.set(o,i),i}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function Bf(n,e,t,o){return M(this,null,function*(){let i=yield sf(Ct(t,()=>n.loadChildren())),r=yield $f(rl(i)),s;r instanceof Cg||Array.isArray(r)?s=r:s=yield e.compileModuleAsync(r),o&&o(n);let a,d,l=!1,c;return Array.isArray(s)?(d=s,l=!0):(a=s.create(t).injector,c=s,d=a.get(Xi,[],{optional:!0,self:!0}).flat()),{routes:d.map(Hl),injector:a,factory:c}})}function $f(n){return M(this,null,function*(){return n})}var Ls=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>f(Xw)})}return n})(),Xw=(()=>{class n{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,o){return t}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})(),Hf=new Oe("");var Uf=new Oe(""),Qw=()=>{},jf=new Oe(""),Vf=(()=>{class n{currentNavigation=H(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=H(null);events=new ot;transitionAbortWithErrorSubject=new ot;configLoader=f(zf);environmentInjector=f(hn);destroyRef=f(Ve);urlSerializer=f(qi);rootContexts=f(Ho);location=f(ko);inputBindingEnabled=f(Os,{optional:!0})!==null;titleStrategy=f(Ul);options=f(Ki,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||ow;urlHandlingStrategy=f(Ls);createViewTransition=f(Hf,{optional:!0});navigationErrorHandler=f(jf,{optional:!0});activatedRouteInjectorFeature=f(Uf,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>re(void 0);rootComponentType=null;destroyed=!1;constructor(){let t=i=>this.events.next(new xs(i)),o=i=>this.events.next(new Ss(i));this.configLoader.onLoadEndListener=o,this.configLoader.onLoadStartListener=t,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(t){let o=++this.navigationId;xe(()=>{this.transitions?.next(_(h({},t),{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:o,routesRecognizeHandler:{},beforeActivateHandler:{}}))})}setupNavigations(t){return this.transitions=new ut(null),this.transitions.pipe(Pe(o=>o!==null),we(o=>{let i=!0,r=!1,s=new AbortController,a=()=>!r&&this.currentTransition?.id===o.id;return re(o).pipe(we(d=>{if(this.navigationId>o.id)return this.cancelNavigationTransition(o,"",mt.SupersededByNewNavigation),Pt;this.currentTransition=o;let l=this.lastSuccessfulNavigation();this.currentNavigation.set({id:d.id,initialUrl:d.rawUrl,extractedUrl:d.extractedUrl,targetBrowserUrl:typeof d.extras.browserUrl=="string"?this.urlSerializer.parse(d.extras.browserUrl):d.extras.browserUrl,trigger:d.source,extras:d.extras,previousNavigation:l?_(h({},l),{previousNavigation:null}):null,abort:()=>s.abort(),routesRecognizeHandler:d.routesRecognizeHandler,beforeActivateHandler:d.beforeActivateHandler});let c=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),u=d.extras.onSameUrlNavigation??t.onSameUrlNavigation;if(!c&&u!=="reload")return this.events.next(new Cn(d.id,this.urlSerializer.serialize(d.rawUrl),"",Bi.IgnoredSameUrlNavigation)),d.resolve(!1),Pt;if(this.urlHandlingStrategy.shouldProcessUrl(d.rawUrl))return re(d).pipe(we(w=>(this.events.next(new to(w.id,this.urlSerializer.serialize(w.extractedUrl),w.source,w.restoredState)),w.id!==this.navigationId?Pt:Promise.resolve(w))),Gw(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy,s.signal),Rt(w=>{o.targetSnapshot=w.targetSnapshot,o.urlAfterRedirects=w.urlAfterRedirects,this.currentNavigation.update(S=>(S.finalUrl=w.urlAfterRedirects,S)),this.events.next(new Hi)}),we(w=>Bt(o.routesRecognizeHandler.deferredHandle??re(void 0)).pipe(N(()=>w))),Rt(()=>{let w=new $i(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(w)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(d.currentRawUrl)){let{id:w,extractedUrl:S,source:k,restoredState:W,extras:Z}=d,K=new to(w,this.urlSerializer.serialize(S),k,W);this.events.next(K);let te=_f(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=o=_(h({},d),{targetSnapshot:te,urlAfterRedirects:S,extras:_(h({},Z),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.update(Ee=>(Ee.finalUrl=S,Ee)),re(o)}else return this.events.next(new Cn(d.id,this.urlSerializer.serialize(d.extractedUrl),"",Bi.IgnoredByUrlHandlingStrategy)),d.resolve(!1),Pt}),N(d=>{let l=new bs(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);return this.events.next(l),this.currentTransition=o=_(h({},d),{guards:dw(d.targetSnapshot,d.currentSnapshot,this.rootContexts)}),o}),bw(d=>this.events.next(d)),we(d=>{if(o.guardsResult=d.guardsResult,d.guardsResult&&typeof d.guardsResult!="boolean")throw ks(this.urlSerializer,d.guardsResult);let l=new ws(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot,!!d.guardsResult);if(this.events.next(l),!a())return Pt;if(!d.guardsResult)return this.cancelNavigationTransition(d,"",mt.GuardRejected),Pt;if(d.guards.canActivateChecks.length===0)return re(d);let c=new Cs(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);if(this.events.next(c),!a())return Pt;let u=!1;return re(d).pipe(qw(this.paramsInheritanceStrategy),Rt({next:()=>{u=!0;let w=new _s(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(w)},complete:()=>{u||this.cancelNavigationTransition(d,"",mt.NoDataFromResolver)}}))}),tf(d=>{let l=u=>{let w=[];if(u.routeConfig?._loadedComponent)u.component=u.routeConfig?._loadedComponent;else if(u.routeConfig?.loadComponent){let S=u._environmentInjector;w.push(this.configLoader.loadComponent(S,u.routeConfig).then(k=>{u.component=k}))}for(let S of u.children)w.push(...l(S));return w},c=l(d.targetSnapshot.root);return c.length===0?re(d):Bt(Promise.all(c).then(()=>d))}),we(d=>{let{newlyCreatedRoutes:l,state:c}=iw(t.routeReuseStrategy,d.targetSnapshot,d.currentRouterState);return this.currentTransition=o=d=_(h({},d),{targetRouterState:c,newlyCreatedRoutes:l}),this.currentNavigation.update(u=>(u.targetRouterState=c,u)),re(d)}),this.activatedRouteInjectorFeature?.operator()??(d=>d),tf(()=>this.afterPreactivation()),we(()=>{let{currentSnapshot:d,targetSnapshot:l}=o,c=this.createViewTransition?.(this.environmentInjector,d.root,l.root);return c?Bt(c).pipe(N(()=>o)):re(o)}),nn(1),we(d=>{i=!1,this.events.next(new Lo);let l=o.beforeActivateHandler.deferredHandle;return l?Bt(l.then(()=>d)):re(d)}),Rt(d=>{new Nl(t.routeReuseStrategy,o.targetRouterState,o.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),d.newlyCreatedRoutes?.clear(),a()&&(r=!0,this.currentNavigation.update(l=>(l.abort=Qw,l)),this.lastSuccessfulNavigation.set(xe(this.currentNavigation)),this.events.next(new wn(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects))),this.titleStrategy?.updateTitle(d.targetRouterState.snapshot),d.resolve(!0))}),Po(Mf(s.signal).pipe(Pe(()=>!r&&i),Rt(()=>{this.cancelNavigationTransition(o,s.signal.reason+"",mt.Aborted)}))),Rt({complete:()=>{r=!0}}),Po(this.transitionAbortWithErrorSubject.pipe(Rt(d=>{throw d}))),dg(()=>{s.abort(),r||this.cancelNavigationTransition(o,"",mt.SupersededByNewNavigation),this.currentTransition?.id===o.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),Hd(d=>{if(r=!0,nf(o),this.destroyed)return o.resolve(!1),Pt;if(Df(d))this.events.next(new $t(o.id,this.urlSerializer.serialize(o.extractedUrl),d.message,d.cancellationCode)),aw(d)?this.events.next(new Fo(d.url,d.navigationBehaviorOptions)):o.resolve(!1);else{let l=new no(o.id,this.urlSerializer.serialize(o.extractedUrl),d,o.targetSnapshot??void 0);try{let c=Ct(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(c instanceof Bo){let{message:u,cancellationCode:w}=ks(this.urlSerializer,c);this.events.next(new $t(o.id,this.urlSerializer.serialize(o.extractedUrl),u,w)),this.events.next(new Fo(c.redirectTo,c.navigationBehaviorOptions))}else throw this.events.next(l),d}catch(c){this.options.resolveNavigationPromiseOnError?o.resolve(!1):o.reject(c)}}return Pt}))}))}cancelNavigationTransition(t,o,i){nf(t);let r=new $t(t.id,this.urlSerializer.serialize(t.extractedUrl),o,i);this.events.next(r),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let t=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),o=xe(this.currentNavigation),i=o?.targetBrowserUrl??o?.extractedUrl;return t.toString()!==i?.toString()&&!o?.extras.skipLocationChange}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function Jw(n){return n!==Li}function nf(n){if(n.newlyCreatedRoutes)for(let e of n.newlyCreatedRoutes)e._localInjector?.destroy()}var Wf=new Oe("");var Gf=(()=>{class n{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>f(eC)})}return n})(),Ns=class{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}shouldDestroyInjector(e){return!0}},eC=(()=>{class n extends Ns{static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})(),jl=(()=>{class n{urlSerializer=f(qi);options=f(Ki,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=f(ko);urlHandlingStrategy=f(Ls);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new Ht;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:t,initialUrl:o,targetBrowserUrl:i}){let r=t!==void 0?this.urlHandlingStrategy.merge(t,o):o,s=i??r;return s instanceof Ht?this.urlSerializer.serialize(s):s}routerUrlState(t){return t?.targetBrowserUrl===void 0||t?.finalUrl===void 0?{}:{\u0275routerUrl:this.urlSerializer.serialize(t.finalUrl)}}commitTransition({targetRouterState:t,finalUrl:o,initialUrl:i}){o&&t?(this.currentUrlTree=o,this.rawUrlTree=this.urlHandlingStrategy.merge(o,i),this.routerState=t):this.rawUrlTree=i}routerState=_f(null,f(hn));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:()=>f(tC)})}return n})(),tC=(()=>{class n extends jl{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(o=>{o.type==="popstate"&&setTimeout(()=>{t(o.url,o.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(t,o){t instanceof to?this.updateStateMemento():t instanceof Cn?this.commitTransition(o):t instanceof $i?this.urlUpdateStrategy==="eager"&&(o.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(o),o)):t instanceof Lo?(this.commitTransition(o),this.urlUpdateStrategy==="deferred"&&!o.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(o),o)):t instanceof $t&&!Cf(t)?this.restoreHistory(o):t instanceof no?this.restoreHistory(o,!0):t instanceof wn&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,o){let{extras:i,id:r}=o,{replaceUrl:s,state:a}=i;if(this.location.isCurrentPathEqualTo(t)||s){let d=this.browserPageId,l=h(h({},a),this.generateNgRouterState(r,d,o));this.location.replaceState(t,"",l)}else{let d=h(h({},a),this.generateNgRouterState(r,this.browserPageId+1,o));this.location.go(t,"",d)}}restoreHistory(t,o=!1){if(this.canceledNavigationResolution==="computed"){let i=this.browserPageId,r=this.currentPageId-i;r!==0?this.location.historyGo(r):this.getCurrentUrlTree()===t.finalUrl&&r===0&&(this.resetInternalState(t),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(o&&this.resetInternalState(t),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:t}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,o,i){return this.canceledNavigationResolution==="computed"?h({navigationId:t,\u0275routerPageId:o},this.routerUrlState(i)):h({navigationId:t},this.routerUrlState(i))}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function Vl(n,e){n.events.pipe(Pe(t=>t instanceof wn||t instanceof $t||t instanceof no||t instanceof Cn),N(t=>t instanceof wn||t instanceof Cn?0:(t instanceof $t?t.code===mt.Redirect||t.code===mt.SupersededByNewNavigation:!1)?2:1),Pe(t=>t!==2),nn(1)).subscribe(()=>{e()})}var Fs=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=f(Sg);stateManager=f(jl);options=f(Ki,{optional:!0})||{};pendingTasks=f(pg);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=f(Vf);urlSerializer=f(qi);location=f(ko);urlHandlingStrategy=f(Ls);injector=f(hn);_events=new ot;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=f(Gf);injectorCleanup=f(Wf,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=f(Xi,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!f(Os,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:t=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new Jh;subscribeToNavigationEvents(){let t=this.navigationTransitions.events.subscribe(o=>{try{let i=this.navigationTransitions.currentTransition,r=xe(this.navigationTransitions.currentNavigation);if(i!==null&&r!==null){if(this.stateManager.handleRouterEvent(o,r),o instanceof $t&&o.code!==mt.Redirect&&o.code!==mt.SupersededByNewNavigation)this.navigated=!0;else if(o instanceof wn)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(o instanceof Fo){let s=o.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(o.url,i.currentRawUrl),d=h({scroll:i.extras.scroll,browserUrl:i.extras.browserUrl,info:i.extras.info,skipLocationChange:i.extras.skipLocationChange,replaceUrl:i.extras.replaceUrl||this.urlUpdateStrategy==="eager"||Jw(i.source)},s);this.scheduleNavigation(a,Li,null,d,{resolve:i.resolve,reject:i.reject,promise:i.promise})}}tw(o)&&this._events.next(o)}catch(i){this.navigationTransitions.transitionAbortWithErrorSubject.next(i)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Li,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,o,i,r)=>{this.navigateToSyncWithBrowser(t,i,o,r)})}navigateToSyncWithBrowser(t,o,i,r){let s=i?.navigationId?i:null,a=i?.\u0275routerUrl??t;if(i?.\u0275routerUrl&&(r=_(h({},r),{browserUrl:t})),i){let l=h({},i);delete l.navigationId,delete l.\u0275routerPageId,delete l.\u0275routerUrl,Object.keys(l).length!==0&&(r.state=l)}let d=this.parseUrl(a);this.scheduleNavigation(d,o,s,r).catch(l=>{this.disposed||this.injector.get(_i)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return xe(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(Hl),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,o={}){let{relativeTo:i,queryParams:r,fragment:s,queryParamsHandling:a,preserveFragment:d}=o,l=d?this.currentUrlTree.fragment:s,c=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":c=h(h({},this.currentUrlTree.queryParams),r);break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=r||null}c!==null&&(c=this.removeEmptyProps(c));let u;try{let w=i?i.snapshot:this.routerState.snapshot.root;u=yf(w)}catch(w){(typeof t[0]!="string"||t[0][0]!=="/")&&(t=[]),u=this.currentUrlTree.root}return vf(u,t,c,l??null,this.urlSerializer)}navigateByUrl(t,o={skipLocationChange:!1}){let i=Ao(t)?t:this.parseUrl(t),r=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(r,Li,null,o)}navigate(t,o={skipLocationChange:!1}){return nC(t),this.navigateByUrl(this.createUrlTree(t,o),o)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){try{return this.urlSerializer.parse(t)}catch(o){return this.console.warn(Vd(4018,!1)),this.urlSerializer.parse("/")}}isActive(t,o){let i;if(o===!0?i=h({},df):o===!1?i=h({},El):i=h(h({},El),o),Ao(t))return Zg(this.currentUrlTree,t,i);let r=this.parseUrl(t);return Zg(this.currentUrlTree,r,i)}removeEmptyProps(t){return Object.entries(t).reduce((o,[i,r])=>(r!=null&&(o[i]=r),o),{})}scheduleNavigation(t,o,i,r,s){if(this.disposed)return Promise.resolve(!1);let a,d,l;s?(a=s.resolve,d=s.reject,l=s.promise):l=new Promise((u,w)=>{a=u,d=w});let c=this.pendingTasks.add();return Vl(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(c))}),this.navigationTransitions.handleNavigationRequest({source:o,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:r,resolve:a,reject:d,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),l.catch(Promise.reject.bind(Promise))}static \u0275fac=function(o){return new(o||n)};static \u0275prov=Dt({token:n,factory:n.\u0275fac})}return n})();function nC(n){for(let e=0;e<n.length;e++)if(n[e]==null)throw new Ie(4008,!1)}var sC=new Oe("");function Wl(n,...e){return qr([{provide:Xi,multi:!0,useValue:n},{provide:zn,useFactory:aC},{provide:Eg,multi:!0,useFactory:dC},e.map(t=>t.\u0275providers)])}function aC(){return f(Fs).routerState.root}function dC(){let n=f(Wt);return e=>{let t=n.get(es);if(e!==t.components[0])return;let o=n.get(Fs),i=n.get(lC);n.get(cC)===1&&o.initialNavigation(),n.get(uC,null,{optional:!0})?.setUpPreloading(),n.get(sC,null,{optional:!0})?.init(),o.resetRootComponentType(t.componentTypes[0]),i.closed||(i.next(),i.complete(),i.unsubscribe())}}var lC=new Oe("",{factory:()=>new ot}),cC=new Oe("",{factory:()=>1});var uC=new Oe("");function Zt(n){n||(n=f(Ve));let e=new Ur(t=>{if(n.destroyed){t.next();return}return n.onDestroy(t.next.bind(t))});return t=>t.pipe(Po(e))}function Xe(n,e){let t=e?.injector??f(Wt),o=new tg(1),i=me(()=>{let r;try{r=n()}catch(s){xe(()=>o.error(s));return}xe(()=>o.next(r))},{injector:t,manualCleanup:!0});return t.get(Ve).onDestroy(()=>{i.destroy(),o.complete()}),o.asObservable()}function ae(n,e){let o=!e?.manualCleanup?e?.injector?.get(Ve)??f(Ve):null,i=hC(e?.equal),r;e?.requireSync?r=H({kind:0},{equal:i}):r=H({kind:1,value:e?.initialValue},{equal:i});let s,a=n.subscribe({next:d=>r.set({kind:1,value:d}),error:d=>{r.set({kind:2,error:d}),s?.()},complete:()=>{s?.()}});if(e?.requireSync&&r().kind===0)throw new Ie(601,!1);return s=o?.onDestroy(a.unsubscribe.bind(a)),b(()=>{let d=r();switch(d.kind){case 1:return d.value;case 2:throw d.error;case 0:throw new Ie(601,!1)}},{equal:e?.equal})}function hC(n=Object.is){return(e,t)=>e.kind===1&&t.kind===1&&n(e.value,t.value)}var tm=Xv(Yf(),1);var Zf={encode(n){return JSON.stringify(n)},decode(n){try{let e=JSON.parse(n);if(typeof e!="object"||e===null||Array.isArray(e))return null;let t=e;return typeof t.type!="string"||!("payload"in t)?null:{type:t.type,payload:t.payload}}catch(e){return null}}};var gC=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),Gl=n=>gC(n)?typeof n.type=="string"&&"payload"in n:!1,fC=(n,e,t)=>e in n[t],Kf=(n,e,t)=>!Gl(e)||!fC(n,e.type,t)?null:e;function ql(n,e,t){return t===void 0?{code:n,message:e}:{code:n,message:e,cause:t}}function Xf(n,e,t,o){let i=e.decode(t);if(i===null)return{error:ql("INVALID_FRAME","Frame is not valid bridge JSON envelope")};let r=Kf(n,i,o);return r!==null?{event:r}:Gl(i)?{error:ql("UNKNOWN_EVENT_TYPE",`Unknown or disallowed event type: ${i.type}`)}:{error:ql("INVALID_ENVELOPE","Frame must be a { type, payload } object")}}function Yl(n,e){return Object.keys(n[e])}function Zl(n){let e={};for(let t of n)e[t]=new ot;return e}function Qf(n){let e={};for(let[t,o]of Object.entries(n))e[t]=o.asObservable();return e}function Jf(n,e){return Object.entries(n).map(([t,o])=>o.subscribe(i=>{e({type:t,payload:i})}))}function em(n,e,t){let o=e[n.type];return o===void 0?!1:(o.next(t===void 0?n.payload:{clientId:t,payload:n.payload}),!0)}function Kl(n){for(let e of Object.values(n))e.complete()}var mC=1;function yC(n){if(typeof globalThis.WebSocket<"u"){let t=new globalThis.WebSocket(n);return{get readyState(){return t.readyState},send:o=>{t.send(o)},close:()=>{t.close()},onOpen:o=>{t.onopen=()=>{o()}},onMessage:o=>{t.onmessage=i=>{o(String(i.data))}},onClose:o=>{t.onclose=()=>{o()}},onError:o=>{t.onerror=i=>{o(i)}}}}let e=new tm.default(n);return{get readyState(){return e.readyState},send:t=>{e.send(t)},close:()=>{e.close()},onOpen:t=>{e.on("open",t)},onMessage:t=>{e.on("message",o=>{t(String(o))})},onClose:t=>{e.on("close",t)},onError:t=>{e.on("error",t)}}}function vC(n,e){if(e.url!==void 0)return e.url;let t=n.transport?.path??"/ws";return typeof globalThis.window<"u"?`${globalThis.window.location.protocol==="https:"?"wss:":"ws:"}//${globalThis.window.location.host}${t}`:`ws://127.0.0.1:${n.transport?.port??4010}${t}`}function nm(n,e={}){let t=n.codec??Zf,o=vC(n,e),i=Yl(n,"fromClientToServer"),r=Yl(n,"fromServerToClient"),s=Zl(i),a=Zl(r),d=Qf(a),l=new ot,c=new ut("connecting"),u=yC(o),S=Jf(s,K=>{if(u.readyState!==mC){l.next({code:"TRANSPORT_NOT_OPEN",message:"Cannot send while WebSocket is not open"});return}u.send(t.encode(K))});u.onOpen(()=>{c.next("connected")}),u.onMessage(K=>{let te=Xf(n,t,K,"fromServerToClient");if("error"in te){l.next(te.error);return}em(te.event,a)});let k=!1,W=K=>{if(!k){k=!0,c.next("disconnected");for(let te of S)te.unsubscribe();Kl(s),Kl(a),l.complete(),c.complete(),K&&u.close()}};u.onClose(()=>{W(!1)}),u.onError(K=>{l.next({code:"TRANSPORT_ERROR",message:"WebSocket client error",cause:K})});let Z={errors$:l.asObservable(),status$:c.asObservable(),close(){W(!0)}};return Object.assign(Z,s,d)}var Qi=120,Ji=120,jo=120,io=1e4;var Xl=(n,e)=>{let t=new Map;for(let o of n??[])t.set(o,{value:o,title:o});for(let o of e??[])t.set(o.id,{value:o.id,title:o.name??o.id});return[...t.values()]};var bC="tools",om=[{value:"read",title:"read"},{value:"glob",title:"glob"},{value:"grep",title:"grep"},{value:"edit",title:"edit"},{value:"write",title:"write"},{value:"create",title:"create"},{value:"delete",title:"delete"},{value:"bash",title:"bash"}],wC={"common-crawl-tools":[{value:"crawl_fetch",title:"crawl_fetch"},{value:"crawl_extract_links",title:"crawl_extract_links"},{value:"crawl_save_page",title:"crawl_save_page"},{value:"crawl_bfs",title:"crawl_bfs"}],"common-memory-tools":[{value:"get_memory_tree",title:"get_memory_tree"},{value:"read_memory_section",title:"read_memory_section"},{value:"search_memory_grep",title:"search_memory_grep"},{value:"append_memory_log",title:"append_memory_log"},{value:"update_memory_section",title:"update_memory_section"},{value:"create_memory_file",title:"create_memory_file"}]},CC=n=>{let e=String(n.inputs.toolId??"").trim();if(e.length===0)return null;let t=String(n.inputs.name??"").trim(),o=String(n.inputs.description??"").trim();return{toolId:e,name:t.length>0?t:e,description:o}},_C=n=>{let e=wC[n.type];if(e!==void 0)return e;let t=CC(n);return t===null?[]:[h({value:t.toolId,title:t.name},t.description.length>0?{description:t.description}:{})]},zs=(n,e)=>{let t=new Map(n.nodes.map(i=>[i.id,i])),o=new Map;for(let i of n.edges){if(i.toNodeId!==e||i.toPort[0]!==bC)continue;let r=t.get(i.fromNodeId);if(r===void 0)continue;let s=_C(r);for(let a of s)o.set(String(a.value),a)}return[...o.values()]},Ql=n=>Object.entries(n.mcp?.servers??{}).map(([e,t])=>({value:e,title:e,description:t.kind==="stdio"?`System MCP stdio \xAB${e}\xBB`:`System MCP http \xAB${e}\xBB`})),Jl=(n,e)=>{let t=zs(n,e),o=new Set(t.map(r=>String(r.value)));return[...om.filter(r=>!o.has(String(r.value))),...t]},ec=(n,e)=>Array.isArray(n)?n.map(String):e;var tc=(n,e,t)=>{if(e.options!==void 0)return e.options;let o=e.optionsSource;switch(o){case"langflower.providers":return Object.entries(n.provider??{}).map(([i,r])=>({value:i,title:r.name}));case"langflower.models":{let i=e.dependsOn!==void 0?t[e.dependsOn]:void 0;return((typeof i=="string"?n.provider?.[i]:void 0)?.models??[]).map(s=>({value:s,title:s}))}case"langflower.tools":return(n.tools??[]).map(i=>({value:i.id,title:i.name}));case"langflower.skills":return(n.skills??[]).map(i=>({value:i.id,title:i.name,description:i.description}));case"node.wiredTools":throw new Error("resolveUiSchemaOptions does not resolve node.wiredTools \u2014 use resolveEnabledToolOptions(graph, nodeId).");case"langflower.mcpServers":return Ql(n);case void 0:return[];default:return o}};var G=()=>({});var im={fromClientToServer:{"editor.addNode.requested":G(),"editor.updateNode.requested":G(),"editor.addEdge.requested":G(),"editor.paste.requested":G(),"editor.removeEdge.requested":G(),"editor.removeNode.requested":G(),"editor.viewport.requested":G(),"editor.dividers.requested":G(),"editor.selectNode.requested":G()},fromServerToClient:{"editor.addNodes":G(),"editor.updateNodes":G(),"editor.addEdges":G(),"editor.deleteNodes":G(),"editor.deleteEdges":G(),"editor.viewport.delta":G(),"editor.dividers.snapshot":G(),"editor.nodeSelected":G()}},rm={fromClientToServer:{"runner.start.requested":G(),"runner.startNode.requested":G(),"runner.interrupt.requested":G(),"runner.hitl.event":G(),"runner.permission.reply":G(),"runner.executionFeed.clear.requested":G(),"runner.resume.requested":G(),"runner.checkpoint.discard.requested":G()},fromServerToClient:{"runner.started":G(),"runner.startNode.started":G(),"runner.resume.started":G(),"runner.resume.failed":G(),"runner.interrupted":G(),"runner.output-emitted":G(),"runner.input-received":G(),"runner.done":G(),"runner.permission.ask":G(),"runner.checkpoints.snapshot":G(),"runner.checkpointed":G()}},sm={fromClientToServer:{},fromServerToClient:{"session.state.snapshot":G(),"session.ready":G(),"runner.snapshot":G(),"executionFeed.snapshot":G(),"toolConfig.snapshot":G()}},am={fromClientToServer:{"langflower.config.save.requested":G(),"project.bootstrap.requested":G()},fromServerToClient:{"langflower.config.snapshot":G(),"langflower.models.catalog.snapshot":G(),"project.bootstrap.result":G()}},dm={fromClientToServer:{"palette.reload.requested":G()},fromServerToClient:{"palette.snapshot":G()}},lm={fromClientToServer:{"customPalette.update.requested":G()},fromServerToClient:{"customPalette.snapshot":G()}},cm={fromClientToServer:{"workflow.saveCurrent.requested":G(),"workflow.renameCurrent.requested":G(),"workflow.create.requested":G(),"workflow.copy.requested":G(),"workflow.load.requested":G(),"workflow.list.requested":G(),"workflow.delete.requested":G()},fromServerToClient:{"workflow.current.snapshot":G(),"workflow.load.failed":G(),"workflow.load.repaired":G(),"workflow.currentStatus.snapshot":G(),"workflow.list.snapshot":G()}},nc={transport:{path:"/ws",port:4010},fromClientToServer:h(h(h(h(h(h(h({},im.fromClientToServer),rm.fromClientToServer),sm.fromClientToServer),am.fromClientToServer),dm.fromClientToServer),lm.fromClientToServer),cm.fromClientToServer),fromServerToClient:h(h(h(h(h(h(h({},im.fromServerToClient),rm.fromServerToClient),sm.fromServerToClient),am.fromServerToClient),dm.fromServerToClient),lm.fromServerToClient),cm.fromServerToClient)};var xC=["langflower.models.catalog.snapshot","langflower.config.snapshot","session.state.snapshot","palette.snapshot","customPalette.snapshot","workflow.current.snapshot","workflow.list.snapshot","workflow.currentStatus.snapshot","executionFeed.snapshot","toolConfig.snapshot","editor.dividers.snapshot","runner.checkpoints.snapshot"],SC=(n,e,t)=>{let o=n[e].pipe(Zt(t),De(1));return o.subscribe(),o},le=class n{constructor(){this.destroyRef=f(Ve);let t=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;this.raw=nm(nc,{url:t}),this.cached=Object.fromEntries(xC.map(o=>[o,SC(this.raw,o,this.destroyRef)]))}ngOnDestroy(){this.raw.close()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Bs={config:{},projectConfig:{},globalConfig:{},globalPath:""},Bn=class n{constructor(){this.bridge=f(le);this.layers$=ce(this.bridge.cached["session.state.snapshot"].pipe(N(e=>({kind:"session",config:e.langflowerConfig}))),this.bridge.cached["langflower.config.snapshot"].pipe(N(e=>({kind:"snapshot",payload:e})))).pipe(Ge((e,t)=>t.kind==="session"?_(h({},e),{config:t.config}):{config:t.payload.config,projectConfig:t.payload.projectConfig,globalConfig:t.payload.globalConfig,globalPath:t.payload.globalPath},Bs),he(Bs),De({bufferSize:1,refCount:!1}));this.config$=this.layers$.pipe(N(e=>e.config));this.config=ae(this.config$,{initialValue:Bs.config});this.layers=ae(this.layers$,{initialValue:Bs})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Vo=class n{constructor(){this.bridge=f(le);this.catalogs$=this.bridge.cached["langflower.models.catalog.snapshot"].pipe(N(e=>e.catalogs),De({bufferSize:1,refCount:!1}));this.catalogs$.subscribe()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var $n=class n{constructor(){this.bridge=f(le);this.selectedNode$=ce(this.bridge.cached["session.state.snapshot"].pipe(N(e=>e.selectedNode)),this.bridge.raw["editor.nodeSelected"].pipe(N(e=>e.node))).pipe(he(null),De({bufferSize:1,refCount:!1}));this.selectedNode=ae(this.selectedNode$,{initialValue:null});this.selectedNodeId=b(()=>this.selectedNode()?.id??null);this.hasSelectedNode=b(()=>this.selectedNodeId()!==null)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var um="lf-theme",Wo=class n{constructor(){this.themeSubject=new ut(this.readStoredTheme());this.theme$=this.themeSubject.asObservable();this.applyTheme(this.themeSubject.value)}get snapshot(){return this.themeSubject.value}setTheme(e){this.themeSubject.next(e),this.applyTheme(e),this.persistTheme(e)}toggleTheme(){this.setTheme(this.snapshot==="dark"?"light":"dark")}readStoredTheme(){return typeof localStorage>"u"?"dark":localStorage.getItem(um)==="light"?"light":"dark"}persistTheme(e){typeof localStorage>"u"||localStorage.setItem(um,e)}applyTheme(e){typeof document>"u"||(document.documentElement.dataset.theme=e)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var $s={nodes:[],errors:[],status:"not_compiled"},oc={sections:[{source:"system",categories:[]},{source:"custom",categories:[]}],customStatus:"not_compiled",customErrors:[]},Hs=(n,e)=>({nodes:[...n.nodes.map(t=>_(h({},t),{source:"system"})),...e.nodes.map(t=>_(h({},t),{source:"custom"}))]}),Go="Advanced",EC=["system","custom"],pm=["AI","Tools","Primitives","Logic","Flow","Text","Output","HITL","Harness","Memory","Crawl","Other",Go];function hm(n){let e=pm.indexOf(n);return e===-1?pm.length-1:e}function fm(n,e){let t=hm(n)-hm(e);return t!==0?t:n.localeCompare(e)}function PC(n){return[...n].sort((e,t)=>e.displayName.localeCompare(t.displayName))}function gm(n){let e=new Map;for(let t of n){let o=t.category??"Other",i=e.get(o);i===void 0?e.set(o,[t]):i.push(t)}return[...e.entries()].sort(([t],[o])=>fm(t,o)).map(([t,o])=>({category:t,nodes:PC(o)}))}function IC(n){return n.paletteSecondary===!0}function DC(n){let e=[],t=[];for(let i of n)IC(i)?t.push(i):e.push(i);let o=[...gm(e)];return t.length>0&&o.push({category:Go,nodes:[],subcategories:gm(t)}),o.sort((i,r)=>fm(i.category,r.category))}function mm(n,e){let t=new Map([["system",[]],["custom",[]]]);for(let o of n.nodes)t.get("system")?.push(_(h({},o),{source:"system"}));for(let o of e.nodes)t.get("custom")?.push(_(h({},o),{source:"custom"}));return{sections:EC.map(o=>({source:o,categories:DC(t.get(o)??[])})),customStatus:e.status,customErrors:e.errors}}function Us(n,e){return`${n}:${e}`}function js(n,e){return`${n}:${Go}:${e}`}function ym(n){return n==="system"?"System":"Custom"}var TC=(n,e)=>n.displayName.toLowerCase().includes(e)||n.type.toLowerCase().includes(e),vm=(n,e)=>{if(n.subcategories!==void 0){let o=n.subcategories.map(i=>vm(i,e)).filter(i=>i!==null);return o.length===0?null:{category:n.category,nodes:[],subcategories:o}}let t=n.nodes.filter(o=>TC(o,e));return t.length===0?null:{category:n.category,nodes:t}},bm=(n,e)=>{let t=e.trim().toLowerCase();return t.length===0?n:n.map(o=>({source:o.source,categories:o.categories.map(i=>vm(i,t)).filter(i=>i!==null)})).filter(o=>o.categories.length>0)};var Fm=["backgroundPattern"];function MC(n,e){if(n&1&&(fe(),pt(0,"line")),n&2){let t=e.$implicit;J("x1",t.x1)("y1",t.y1)("x2",t.x2)("y2",t.y2)("stroke",t.major?"var(--ngd-background-line-major-color)":"var(--ngd-background-line-minor-color)")("stroke-width",t.major?"var(--ngd-background-line-major-width)":"var(--ngd-background-line-minor-width)")("opacity",t.major?"var(--ngd-background-line-major-opacity)":"var(--ngd-background-line-minor-opacity)")}}var _p=["contentProjection"],Mt=["*"];function kC(n,e){n&1&&$(0,"ng-diagram-dotted-background")}function RC(n,e){n&1&&$(0,"ng-diagram-grid-background")}function NC(n,e){if(n&1&&(v(0,"div"),E(1,kC,1,0,"ng-diagram-dotted-background")(2,RC,1,0,"ng-diagram-grid-background"),y()),n&2){let t=g();p(),P(t.isDottedBackground()?1:2)}}function OC(n,e){if(n&1&&pt(0,"div"),n&2){g();let t=ol(0);Ue("left",t.x,"px")("top",t.y,"px")("width",t.width,"px")("height",t.height,"px")}}var AC=[[["ng-diagram-edge"]],[["ng-diagram-marker-arrow"]],[["ng-diagram-node"]]],LC=["ng-diagram-edge","ng-diagram-marker-arrow","ng-diagram-node"];function FC(n,e){if(n&1&&(fe(),$(0,"defs",0)),n&2){let t=g();L("sourceMarkerId",t.sourceMarkerId())("targetMarkerId",t.targetMarkerId())("edgeId",t.edge().id)}}function zC(n,e){if(n&1&&(v(0,"ng-diagram-base-edge-label",1)(1,"ng-diagram-default-edge-label"),C(2),y()()),n&2){let t=g(),o=ol(1);L("id","edge-label")("positionOnEdge",t.positionOnEdge()),p(2),se(o)}}function BC(n,e){if(n&1&&$(0,"ng-diagram-resize-line",0),n&2){let t=e.$implicit,o=g(2);L("position",t)("targetData",o.nodeData())}}function $C(n,e){if(n&1&&$(0,"ng-diagram-resize-handle",0),n&2){let t=e.$implicit,o=g(2);L("position",t)("targetData",o.nodeData())}}function HC(n,e){if(n&1&&(X(0,BC,1,2,"ng-diagram-resize-line",0,Qn),X(2,$C,1,2,"ng-diagram-resize-handle",0,Qn)),n&2){let t=g();Q(t.linePositions),p(2),Q(t.handlePositions)}}function UC(n,e){n&1&&(fe(),B(0,"svg",2),pt(1,"path",3),A())}function jC(n,e){if(n&1&&(v(0,"ng-diagram-rotate-handle",0),We(1),y()),n&2){let t=g();L("data",t.nodeData())}}var VC=[[["ng-diagram-background"]]],WC=["ng-diagram-background"],GC=n=>({edge:n}),qC=n=>({node:n});function YC(n,e){n&1&&ts(0)}function ZC(n,e){if(n&1&&Jr(0,YC,1,0,"ng-container",5),n&2){let t=g().$implicit,o=g();L("ngComponentOutlet",o.getEdgeTemplate(t.type))("ngComponentOutletInputs",Ei(2,GC,t))}}function KC(n,e){if(n&1&&$(0,"ng-diagram-default-edge",4),n&2){let t=g().$implicit;L("edge",t)}}function XC(n,e){if(n&1&&(v(0,"ng-diagram-edge"),E(1,ZC,1,4,"ng-container")(2,KC,1,1,"ng-diagram-default-edge",4),y()),n&2){let t=e.$implicit,o=g();J("data-edge-id",t.id),p(),P(o.getEdgeTemplate(t.type)?1:2)}}function QC(n,e){n&1&&ts(0)}function JC(n,e){if(n&1&&Jr(0,QC,1,0,"ng-container",5),n&2){let t=g().$implicit,o=g();L("ngComponentOutlet",o.getNodeTemplate(t.type))("ngComponentOutletInputs",Ei(2,qC,t))}}function e_(n,e){if(n&1&&$(0,"ng-diagram-default-group-template",6),n&2){let t=g().$implicit,o=g();L("node",o.castToGroupNode(t))}}function t_(n,e){if(n&1&&$(0,"ng-diagram-default-node-template",6),n&2){let t=g().$implicit;L("node",t)}}function n_(n,e){if(n&1&&(v(0,"ng-diagram-node",2),E(1,JC,1,4,"ng-container")(2,e_,1,1,"ng-diagram-default-group-template",6)(3,t_,1,1,"ng-diagram-default-node-template",6),y()),n&2){let t=e.$implicit,o=g();L("node",t),J("data-node-id",t.id),p(),P(o.getNodeTemplate(t.type)?1:o.isGroup(t)?2:3)}}function o_(n,e){if(n&1&&$(0,"ng-diagram-watermark",3),n&2){let t,o=g();L("preferredPosition",(t=o.config())==null?null:t.watermarkPosition)}}function i_(n,e){if(n&1&&(fe(),pt(0,"circle")),n&2){let t=g();J("cx",t.cx())("cy",t.cy())("r",t.radius())}}function r_(n,e){if(n&1&&(fe(),pt(0,"ellipse")),n&2){let t=g();J("cx",t.cx())("cy",t.cy())("rx",t.rx())("ry",t.ry())}}function s_(n,e){if(n&1&&(fe(),pt(0,"rect")),n&2){let t=g();J("x",t.bounds().x)("y",t.bounds().y)("width",t.bounds().width)("height",t.bounds().height)}}var a_=(n,e)=>({node:n,nodeStyle:e}),d_=(n,e)=>e.bounds.id;function l_(n,e){n&1&&ts(0)}function c_(n,e){if(n&1&&(fe(),v(0,"foreignObject"),Jr(1,l_,1,0,"ng-container",6),y()),n&2){let t=g().$implicit;J("x",t.bounds.x)("y",t.bounds.y)("width",t.bounds.width)("height",t.bounds.height)("transform",t.bounds.transform),p(),L("ngComponentOutlet",t.template)("ngComponentOutletInputs",Ig(7,a_,t.diagramNode,t.nodeStyle))}}function u_(n,e){if(n&1&&(fe(),$(0,"g",5)),n&2){let t=g().$implicit;L("bounds",t.bounds)("nodeStyle",t.nodeStyle)}}function p_(n,e){if(n&1&&E(0,c_,2,10,":svg:foreignObject")(1,u_,1,2,":svg:g",5),n&2){let t=e.$implicit;P(t.template?0:1)}}function h_(n,e){if(n&1&&(fe(),$(0,"rect",3)),n&2){let t=g(2);L("diagramBounds",t.diagramBounds())("minimapTransform",t.transform())}}function g_(n,e){if(n&1&&(fe(),$(0,"rect",4)),n&2){let t=g(2);J("x",t.viewportRect().x)("y",t.viewportRect().y)("width",t.viewportRect().width)("height",t.viewportRect().height)}}function f_(n,e){if(n&1&&(fe(),v(0,"g"),X(1,p_,2,1,null,null,d_),y(),E(3,h_,1,2,":svg:rect",3),E(4,g_,1,4,":svg:rect",4)),n&2){let t=g();J("transform",t.nodesGroupTransform()),p(),Q(t.minimapNodes()),p(2),P(t.showDiagramBounds()?3:-1),p(),P(t.hasValidViewport()?4:-1)}}function m_(n,e){n&1&&$(0,"ng-diagram-zoom-controls")}var tr=class n{boundingBox=H(null);static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})};Set.prototype.difference||(Set.prototype.difference=function(n){let e=new Set;for(let t of this)n.has(t)||e.add(t);return e}),Set.prototype.intersection||(Set.prototype.intersection=function(n){let e=new Set;for(let t of this)n.has(t)&&e.add(t);return e});var sc=class{eventManager;state;constructor(e){this.eventManager=e,this.state=new Proxy({},{set:(t,o,i)=>(t[o]=i,this.emitStateChanged(),!0)})}getState(){return this.state}emitStateChanged(){this.eventManager.emit("actionStateChanged",{actionState:h({},this.state)})}get resize(){return this.state.resize}set resize(e){this.state.resize=e}get linking(){return this.state.linking}set linking(e){this.state.linking=e}get copyPaste(){return this.state.copyPaste}set copyPaste(e){this.state.copyPaste=e}get highlightGroup(){return this.state.highlightGroup}set highlightGroup(e){this.state.highlightGroup=e}get rotation(){return this.state.rotation}set rotation(e){this.state.rotation=e}get dragging(){return this.state.dragging}set dragging(e){this.state.dragging=e}get panning(){return this.state.panning}set panning(e){this.state.panning=e}clearResize(){this.state.resize=void 0}clearLinking(){this.state.linking=void 0}clearCopyPaste(){this.state.copyPaste=void 0}clearHighlightGroup(){this.state.highlightGroup=void 0}clearRotation(){this.state.rotation=void 0}clearDragging(){this.state.dragging=void 0}isResizing(){return!!this.state.resize}isLinking(){return!!this.state.linking}isRotating(){return!!this.state.rotation}isDragging(){return!!this.state.dragging}clearPanning(){this.state.panning=void 0}isPanning(){return!!this.state.panning?.active}get selection(){return this.state.selection}set selection(e){this.state.selection=e}clearSelection(){this.state.selection=void 0}},y_=n=>{if(!n||n.length===0)return"";if(n.length===1)return`M ${n[0].x},${n[0].y}`;if(n.length===2)return`M ${n[0].x},${n[0].y} L ${n[1].x},${n[1].y}`;if(n.length===3)return`M ${n[0].x},${n[0].y} Q ${n[1].x},${n[1].y} ${n[2].x},${n[2].y}`;if(n.length===4)return`M ${n[0].x},${n[0].y} C ${n[1].x},${n[1].y} ${n[2].x},${n[2].y} ${n[3].x},${n[3].y}`;let e=[`M ${n[0].x},${n[0].y}`];for(let t=1;t<n.length;t++)e.push(`L ${n[t].x},${n[t].y}`);return e.join(" ")},xa=(n,e)=>{let t=n>=0&&!Object.is(n,-0)?n:e+n;return Math.max(0,Math.min(t,e))};function v_(n,e){return Math.atan2(e.y-n.y,e.x-n.x)*(180/Math.PI)}var xp=n=>(n%360+360)%360,b_=(n,e=!1)=>{let t=xp(n),o;return o=t>=315||t<45?"right":t>=45&&t<135?"bottom":t>=135&&t<225?"left":"top",e?{right:"left",left:"right",top:"bottom",bottom:"top"}[o]:o},qo=({min:n,value:e,max:t})=>Math.min(Math.max(e,n),t),w_=(n,e,t,o)=>{let{x:i,y:r,width:s,height:a}=n,{x:d,y:l}=e,c=0,u=0,w=d-i,S=i+s-d,k=l-r,W=r+a-l;if(w<t?c=qo({min:0,max:t,value:-(w-t)}):S<t&&(c=-qo({min:0,max:t,value:-(S-t)})),k<t?u=qo({min:0,max:t,value:-(k-t)}):W<t&&(u=-qo({min:0,max:t,value:-(W-t)})),c===0&&u===0)return null;let Z=c/t,K=u/t;return Z=isFinite(Z)?Z:1,K=isFinite(K)?K:1,{x:Z*o,y:K*o}},C_=(n,e)=>Math.sqrt((n.x-e.x)**2+(n.y-e.y)**2);function wm(n){return Math.abs(n-Math.trunc(n))}function __(n,e){let t=Math.round(n/e);if(t===0&&e>1)return 0;let o=Math.abs(t)===1&&Math.abs(n)<e,i=qo({min:1,max:e/2-1,value:Math.floor(e/2-1)});if(o&&e-Math.abs(n)>i)return 0;let r=t*e;if(e===1){let s=(r-1)%90==0;(r+1)%90==0?1-wm(n)<.9001&&(r+=1):s&&wm(n)<.9001&&(r-=1)}return xp(r)}var ac=(n,e)=>e?e*Math.round(n/e):n,x_=(n,e)=>({x:ac(n.x,e.width),y:ac(n.y,e.height)}),Qe={angleBetweenPoints:v_,angleToSide:b_,clamp:qo,distanceBetweenPoints:C_,normalizeAngle:xp,snapAngle:__,snapNumber:ac,snapPoint:x_,calculateEdgePanningForce:w_},qs=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let t=Qe.clamp({min:0,value:e,max:1});if(n.length===2){let[w,S]=n;return{x:w.x+(S.x-w.x)*t,y:w.y+(S.y-w.y)*t}}if(n.length===3){let[w,S,k]=n,W=1-t,Z=W*W,K=t*t;return{x:Z*w.x+2*W*t*S.x+K*k.x,y:Z*w.y+2*W*t*S.y+K*k.y}}let[o,i,r,s]=n,a=1-t,d=a*a,l=d*a,c=t*t,u=c*t;return{x:l*o.x+3*d*t*i.x+3*a*c*r.x+u*s.x,y:l*o.y+3*d*t*i.y+3*a*c*r.y+u*s.y}};var S_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let t=[{t:0,length:0}],o=qs(n,0),i=0;for(let u=1;u<=100;u++){let w=u/100,S=qs(n,w);i+=Math.hypot(S.x-o.x,S.y-o.y),t.push({t:w,length:i}),o=S}let r=xa(e,i),s=0,a=100;for(;s<a;){let u=s+a>>1;t[u].length<r?s=u+1:a=u}let d=t[Math.max(0,s-1)],l=t[s],c=l.length-d.length;return qs(n,d.t+(l.t-d.t)*(c>0?(r-d.length)/c:0))},Cm=(n,e)=>{switch(n.side){case"right":default:return{x:n.x+e,y:n.y};case"left":return{x:n.x-e,y:n.y};case"bottom":return{x:n.x,y:n.y+e};case"top":return{x:n.x,y:n.y-e}}},E_=(n,e,t=100)=>{if(!n||!e)return[];let o=Cm(n,Math.abs(t)),i=Cm(e,Math.abs(t));return[{x:n.x,y:n.y},o,i,{x:e.x,y:e.y}]};var dc=class{name="bezier";computePoints(e,t){let{sourcePoint:o,targetPoint:i}=e;return E_(o,i,t?.bezier?.bezierControlOffset??100)}computeSvgPath(e){return y_(e)}computePointOnPath(e,t){return qs(e,t)}computePointAtDistance(e,t){return S_(e,t)}},P_=(n=[],e=16)=>{if(n.length===0)return"";if(n.length===1)return`M ${n[0].x},${n[0].y}`;if(n.length===2)return`M ${n[0].x},${n[0].y} L ${n[1].x},${n[1].y}`;let t=n[0],o=n.slice(1,-1),i=n[n.length-1],r=o.map((s,a)=>{let d=n[a],l=n[a+2],c=l.y-d.y,u=Math.min(Math.abs(l.x-d.x)/2,Math.abs(c)/2,e),w=d.x<s.x,S=d.x>s.x,k=d.y>s.y,W=d.y<s.y,Z=l.x<s.x,K=l.x>s.x,te=l.y>s.y,Ee=l.y<s.y,de=Math.abs(d.x-s.x)<=1,Le=Math.abs(d.y-s.y)<=1,Me=Math.abs(l.x-s.x)<=1,nt=Math.abs(l.y-s.y)<=1;if(o.length<=2&&(de&&Le||Me&&nt))return"";if(d.y===s.y&&s.y===l.y)return`L${s.x+(S?u:-u)},${s.y}`;if(d.x===s.x&&s.x===l.x)return`L${s.x},${s.y+(W?-u:u)}`;let pn=w&&te||S&&Ee||W&&Z||k&&K;return d.x===s.x?`L${s.x},${s.y+(W?-u:u)} A${u},${u},0,0,${pn?1:0},${s.x+(K?u:-u)},${s.y}`:`L${s.x+(S?u:-u)},${s.y} A${u},${u},0,0,${pn?1:0},${s.x},${s.y+(Ee?-u:u)}`});return`M ${t.x},${t.y} ${r.join(" ")} L ${i.x},${i.y}`},Sp=n=>{let e=[],t=0;for(let o=0;o<n.length-1;o++){let i=Math.hypot(n[o+1].x-n[o].x,n[o+1].y-n[o].y);e.push(i),t+=i}return{lengths:e,totalLength:t}},Ep=(n,e,t)=>{let o=0;for(let i=0;i<e.length;i++){if(o+e[i]>=t){let r=e[i]>0?(t-o)/e[i]:0;return{x:n[i].x+(n[i+1].x-n[i].x)*r,y:n[i].y+(n[i+1].y-n[i].y)*r}}o+=e[i]}return n[n.length-1]},I_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let{lengths:t,totalLength:o}=Sp(n),i=xa(e,o);return Ep(n,t,i)},D_=(n,e)=>{if(n.length<2)return{x:0,y:0};let t=Qe.clamp({min:0,value:e,max:1}),o=[],i=0;for(let a=0;a<n.length-1;a++){let d=Math.hypot(n[a+1].x-n[a].x,n[a+1].y-n[a].y);o.push(d),i+=d}let r=i*t,s=0;for(let a=0;a<o.length;a++){let d=o[a];if(s+d>=r){let l=n[a],c=n[a+1],u=(r-s)/d;return{x:l.x+(c.x-l.x)*u,y:l.y+(c.y-l.y)*u}}s+=d}return n[n.length-1]},Hn=(n,e,t=20)=>{let o={left:{x:-t,y:0},right:{x:t,y:0},top:{x:0,y:-t},bottom:{x:0,y:t}}[e]||{x:0,y:0};return{x:n.x+o.x,y:n.y+o.y}},T_=(n,e,t,o,i=20)=>{let r=Hn({x:e.x,y:e.y},"bottom",i),s=Hn({x:t.x,y:t.y},n,i);return n==="bottom"?r.y>s.y?[{x:r.x,y:r.y},{x:s.x,y:r.y}]:[{x:r.x,y:s.y},{x:s.x,y:s.y}]:n==="left"?r.y>s.y?r.x>s.x?[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y}]:r.x>s.x?[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:[{x:r.x,y:s.y}]:n==="top"?r.y>s.y?[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:o.y},{x:s.x,y:o.y}]:n==="right"?r.y>s.y?r.x>s.x?[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:r.x>s.x?[{x:r.x,y:s.y}]:[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:void 0},zm=(n,e,t,o,i=20)=>{let r=Hn({x:e.x,y:e.y},"left",i),s=Hn({x:t.x,y:t.y},n,i);return n==="left"?r.x>s.x?[{x:s.x,y:r.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:s.y}]:n==="top"?r.x>s.x?r.y>s.y?[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:s.x,y:r.y}]:r.y>s.y?[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:n==="bottom"?r.x>s.x?r.y>s.y?[{x:r.x,y:r.y},{x:s.x,y:r.y}]:[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:r.y>s.y?[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:n==="right"?r.x>s.x?[{x:o.x,y:r.y},{x:o.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:void 0},M_=(n,e,t,o,i=20)=>{let r=Hn({x:e.x,y:e.y},"right",i),s=Hn({x:t.x,y:t.y},n,i);return n==="right"?r.x>s.x?[{x:r.x,y:r.y},{x:r.x,y:s.y}]:[{x:s.x,y:r.y},{x:s.x,y:s.y}]:n==="top"?r.x<s.x?r.y<s.y?[{x:s.x,y:r.y}]:[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:r.y<s.y?[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:n==="bottom"?r.x<s.x?r.y<s.y?[{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:[{x:s.x,y:r.y}]:r.y<s.y?[{x:r.x,y:r.y},{x:r.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y}]:n==="left"?r.x<s.x?[{x:o.x,y:r.y},{x:o.x,y:s.y}]:[{x:r.x,y:r.y},{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:void 0},k_=(n,e,t,o,i=20)=>{let r=Hn(e,"top",i),s=Hn(t,n,i);return n==="left"?r.y>s.y?r.x>s.x?[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:[{x:r.x,y:s.y}]:r.x>s.x?[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y}]:n==="right"?r.y>s.y?r.x>s.x?[{x:r.x,y:s.y}]:[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:r.x>s.x?[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y}]:[{x:r.x,y:r.y},{x:s.x,y:r.y},{x:s.x,y:s.y}]:n==="bottom"?r.y>s.y?[{x:r.x,y:o.y},{x:s.x,y:o.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:o.x,y:r.y},{x:o.x,y:s.y},{x:s.x,y:s.y}]:n==="top"?r.y>s.y?[{x:r.x,y:s.y},{x:s.x,y:s.y}]:[{x:r.x,y:r.y},{x:s.x,y:r.y}]:void 0},R_={top:k_,right:M_,bottom:T_,left:zm},N_=(n,e,t,o=20)=>(R_[n.side]||zm)(e.side,{x:n.x,y:n.y},{x:e.x,y:e.y},t,o),O_=(n,e,t=20)=>{let o=N_(n,e,{x:(n?.x+e?.x)/2,y:(n.y+e.y)/2},t)||[];return[{x:n.x,y:n.y},...o,{x:e.x,y:e.y}]},lc=class{name="orthogonal";computePoints(e,t){let{sourcePoint:o,targetPoint:i}=e,r=t?.orthogonal?.firstLastSegmentLength;return O_(o,i,r!=null&&r>=0?r:20)}computeSvgPath(e,t){let o=t?.orthogonal?.maxCornerRadius;return P_(e,o!=null&&o>=0?o:16)}computePointOnPath(e,t){return D_(e,t)}computePointAtDistance(e,t){return I_(e,t)}},A_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let{lengths:t,totalLength:o}=Sp(n),i=xa(e,o);return Ep(n,t,i)},L_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let t=Qe.clamp({min:0,value:e,max:1});if(n.length===2){let a=n[0],d=n[1];return{x:a.x+(d.x-a.x)*t,y:a.y+(d.y-a.y)*t}}let o=0,i=[];for(let a=0;a<n.length-1;a++){let d=n[a+1].x-n[a].x,l=n[a+1].y-n[a].y,c=Math.sqrt(d*d+l*l);i.push(c),o+=c}let r=o*t,s=0;for(let a=0;a<i.length;a++){let d=i[a];if(s+d>=r){let l=(r-s)/d,c=n[a],u=n[a+1];return{x:c.x+(u.x-c.x)*l,y:c.y+(u.y-c.y)*l}}s+=d}return n[n.length-1]},cc=class{name="polyline";computePoints(e){let{sourcePoint:t,targetPoint:o,edge:i}=e;return i.routingMode==="manual"&&i.points&&i.points.length>2?i.points:[{x:t.x,y:t.y},{x:o.x,y:o.y}]}computeSvgPath(e){return e.length===0?"":e.length===1?`M ${e[0].x},${e[0].y}`:e.map((t,o)=>o===0?`M ${t.x},${t.y}`:`L ${t.x},${t.y}`).join(" ")}computePointOnPath(e,t){return L_(e,t)}computePointAtDistance(e,t){return A_(e,t)}},F_=`[ngDiagram] Routing must have a non-empty name property. Registration skipped.
2
2
 
3
3
  To fix this:
4
4
  \u2022 Ensure your EdgeRouting implementation has a 'name' property
5
5
  \u2022 The name should be a non-empty string
6
6
 
7
7
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/routing/
8
- `,Hs=(n,e,t)=>`[ngDiagram] Routing '${n}' is not registered. Falling back to '${t}' routing.
8
+ `,Vs=(n,e,t)=>`[ngDiagram] Routing '${n}' is not registered. Falling back to '${t}' routing.
9
9
 
10
10
  Available routings: ${e.join(", ")}
11
11
 
@@ -14,7 +14,7 @@ To fix this:
14
14
  \u2022 Or use one of the available routings listed above
15
15
 
16
16
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/routing/
17
- `,x_=(n,e)=>`[ngDiagram] Cannot set default routing to '${n}': routing not registered. Default routing unchanged.
17
+ `,z_=(n,e)=>`[ngDiagram] Cannot set default routing to '${n}': routing not registered. Default routing unchanged.
18
18
 
19
19
  Available routings: ${e.join(", ")}
20
20
 
@@ -23,7 +23,7 @@ To fix this:
23
23
  \u2022 Then set it as default
24
24
 
25
25
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/routing/
26
- `;var sc=class{routings=new Map;defaultRouting;getRoutingConfig;constructor(e,t){this.defaultRouting=e||"orthogonal",this.getRoutingConfig=t||(()=>({})),this.registerRouting(new ic),this.registerRouting(new oc),this.registerRouting(new rc)}registerRouting(e){e.name?this.routings.set(e.name,e):console.warn(__)}unregisterRouting(e){this.routings.delete(e)}getRouting(e){return this.routings.get(e)}getRegisteredRoutings(){return Array.from(this.routings.keys())}hasRouting(e){return this.routings.has(e)}computePoints(e,t){let o=e||this.defaultRouting,i=this.routings.get(o);if(!i){let r=this.defaultRouting;if(console.warn(Hs(o,this.getRegisteredRoutings(),r)),i=this.routings.get(r),!i)return[t.sourcePoint,t.targetPoint].filter(s=>!!s)}return i.computePoints(t,this.getRoutingConfig())}computePath(e,t){let o=e||this.defaultRouting,i=this.routings.get(o);if(!i){let r=this.defaultRouting;if(console.warn(Hs(o,this.getRegisteredRoutings(),r)),i=this.routings.get(r),!i)return t.length===0?"":`M ${t[0].x},${t[0].y}`}return i.computeSvgPath(t,this.getRoutingConfig())}computePointOnPath(e,t,o){let i=e||this.defaultRouting,r=this.routings.get(i);if(!r){let d=this.defaultRouting;console.warn(Hs(i,this.getRegisteredRoutings(),d)),r=this.routings.get(d)}if(r?.computePointOnPath)return r.computePointOnPath(t,o);if(t.length<2)return t[0]||{x:0,y:0};let s=t[0],a=t[t.length-1];return{x:s.x+(a.x-s.x)*o,y:s.y+(a.y-s.y)*o}}computePointAtDistance(e,t,o){let i=e||this.defaultRouting,r=this.routings.get(i);if(!r){let s=this.defaultRouting;console.warn(Hs(i,this.getRegisteredRoutings(),s)),r=this.routings.get(s)}return r?.computePointAtDistance?r.computePointAtDistance(t,o):S_(t,o)}setDefaultRouting(e){this.routings.has(e)?this.defaultRouting=e:console.warn(x_(e,this.getRegisteredRoutings()))}getDefaultRouting(){return this.defaultRouting}},S_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let{lengths:t,totalLength:o}=bp(n),i=wa(e,o);return wp(n,t,i)},Rm=(n,e,t,o)=>{if(typeof n=="string"){let i=n.trim();if(i.endsWith("px")){let r=parseFloat(i);return o.computePointAtDistance(e,t,r)}return o.computePointOnPath(e,t,parseFloat(i))}return o.computePointOnPath(e,t,n)},E_=(n,e,t)=>`[ngDiagram] Event listener error: Listener for "${n}" event threw an error.
26
+ `;var uc=class{routings=new Map;defaultRouting;getRoutingConfig;constructor(e,t){this.defaultRouting=e||"orthogonal",this.getRoutingConfig=t||(()=>({})),this.registerRouting(new lc),this.registerRouting(new dc),this.registerRouting(new cc)}registerRouting(e){e.name?this.routings.set(e.name,e):console.warn(F_)}unregisterRouting(e){this.routings.delete(e)}getRouting(e){return this.routings.get(e)}getRegisteredRoutings(){return Array.from(this.routings.keys())}hasRouting(e){return this.routings.has(e)}computePoints(e,t){let o=e||this.defaultRouting,i=this.routings.get(o);if(!i){let r=this.defaultRouting;if(console.warn(Vs(o,this.getRegisteredRoutings(),r)),i=this.routings.get(r),!i)return[t.sourcePoint,t.targetPoint].filter(s=>!!s)}return i.computePoints(t,this.getRoutingConfig())}computePath(e,t){let o=e||this.defaultRouting,i=this.routings.get(o);if(!i){let r=this.defaultRouting;if(console.warn(Vs(o,this.getRegisteredRoutings(),r)),i=this.routings.get(r),!i)return t.length===0?"":`M ${t[0].x},${t[0].y}`}return i.computeSvgPath(t,this.getRoutingConfig())}computePointOnPath(e,t,o){let i=e||this.defaultRouting,r=this.routings.get(i);if(!r){let d=this.defaultRouting;console.warn(Vs(i,this.getRegisteredRoutings(),d)),r=this.routings.get(d)}if(r?.computePointOnPath)return r.computePointOnPath(t,o);if(t.length<2)return t[0]||{x:0,y:0};let s=t[0],a=t[t.length-1];return{x:s.x+(a.x-s.x)*o,y:s.y+(a.y-s.y)*o}}computePointAtDistance(e,t,o){let i=e||this.defaultRouting,r=this.routings.get(i);if(!r){let s=this.defaultRouting;console.warn(Vs(i,this.getRegisteredRoutings(),s)),r=this.routings.get(s)}return r?.computePointAtDistance?r.computePointAtDistance(t,o):B_(t,o)}setDefaultRouting(e){this.routings.has(e)?this.defaultRouting=e:console.warn(z_(e,this.getRegisteredRoutings()))}getDefaultRouting(){return this.defaultRouting}},B_=(n,e)=>{if(n.length<2)return n[0]||{x:0,y:0};let{lengths:t,totalLength:o}=Sp(n),i=xa(e,o);return Ep(n,t,i)},Bm=(n,e,t,o)=>{if(typeof n=="string"){let i=n.trim();if(i.endsWith("px")){let r=parseFloat(i);return o.computePointAtDistance(e,t,r)}return o.computePointOnPath(e,t,parseFloat(i))}return o.computePointOnPath(e,t,n)},$_=(n,e,t)=>`[ngDiagram] Event listener error: Listener for "${n}" event threw an error.
27
27
 
28
28
  Event: ${n}
29
29
  Listener type: ${e}
@@ -31,51 +31,51 @@ Error: ${t instanceof Error?t.message:String(t)}
31
31
 
32
32
  This indicates an error in your event listener callback.
33
33
  Check your event listener implementation for the "${n}" event.
34
- The diagram will continue to function, but this listener failed to execute.`,ac=class{listeners=new Map;enabled=!0;deferredEmits=[];on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set);let o={callback:t,once:!1};return this.listeners.get(e).add(o),()=>this.removeListener(e,o)}once(e,t){this.listeners.has(e)||this.listeners.set(e,new Set);let o={callback:t,once:!0};return this.listeners.get(e).add(o),()=>this.removeListener(e,o)}emit(e,t){if(!this.enabled)return;let o=this.listeners.get(e);if(!o||o.size===0)return;let i=[];for(let r of o)try{r.callback(t),r.once&&i.push(r)}catch(s){console.error(E_(String(e),r.once?"once":"on",s))}i.forEach(r=>{o.delete(r)})}deferredEmit(e,t){this.enabled&&this.deferredEmits.push({event:e,payload:t})}off(e,t){if(!t)return void this.listeners.delete(e);let o=this.listeners.get(e);if(!o)return;let i=Array.from(o).find(r=>r.callback===t);i&&o.delete(i)}offAll(){this.listeners.clear()}setEnabled(e){this.enabled=e}isEnabled(){return this.enabled}hasListeners(e){return this.listeners.has(e)&&this.listeners.get(e).size>0}flushDeferredEmits(){let e=[...this.deferredEmits];this.deferredEmits=[];for(let{event:t,payload:o}of e)this.emit(t,o)}clearDeferredEmits(){this.deferredEmits=[]}removeListener(e,t){let o=this.listeners.get(e);o&&(o.delete(t),o.size===0&&this.listeners.delete(e))}},P_=(o,i)=>D(null,[o,i],function*(n,{groupId:e,nodeIds:t}){let r=t.map(d=>n.flowCore.modelLookup.getNodeById(d)).filter(Boolean),s=n.flowCore.modelLookup.getNodeById(e);if(!s)return;let a=[];for(let d of r)n.flowCore.modelLookup.wouldCreateCircularDependency(d.id,e)||d.groupId!==e&&n.flowCore.config.grouping.canGroup(d,s)&&a.push({id:d.id,groupId:e});a.length>0&&(yield n.flowCore.commandHandler.emit("updateNodes",{nodes:a})),a.some(d=>!!d.groupId)&&n.flowCore.commandHandler.emit("highlightGroupClear")}),fm=(n,e,t)=>{if(!n)return"left";let o;if(e&&n.measuredPorts){let r=n.measuredPorts.find(s=>s.id===e);o=r?.position?{x:n.position.x+r.position.x+(r.size?.width??0)/2,y:n.position.y+r.position.y+(r.size?.height??0)/2}:{x:n.position.x+(n.size?.width??100)/2,y:n.position.y+(n.size?.height??50)/2}}else o={x:n.position.x+(n.size?.width??100)/2,y:n.position.y+(n.size?.height??50)/2};let i=Qe.angleBetweenPoints(o,t);return Qe.angleToSide(i,!0)};var Nm=1e3/60;function Cp(n,e){let t=g({},n);for(let o in e)if(Object.hasOwn(e,o)){let i=e[o],r=n[o];i!==void 0&&(t[o]=typeof i!="object"||i===null||Array.isArray(i)||typeof i=="function"||typeof r!="object"||r===null||Array.isArray(r)||typeof r=="function"?i:Cp(r,i))}return t}var Gs=(n,e)=>({x:n.x-e,y:n.y-e,width:2*e,height:2*e}),dc=(n,e)=>n?.x===e?.x&&n?.y===e?.y&&n?.width===e?.width&&n?.height===e?.height,_t=({position:n={x:0,y:0},size:e={width:1,height:1}})=>({x:n?.x||0,y:n?.y||0,width:e?.width||1,height:e?.height||1}),Om=(n,e)=>!(n.x+n.width<=e.x||e.x+e.width<=n.x||n.y+n.height<=e.y||e.y+e.height<=n.y),I_=(n,e)=>n.x<=e.x&&n.x+n.width>=e.x+e.width&&n.y<=e.y&&n.y+n.height>=e.y+e.height,lc=(n,e)=>{if(Om(n,e))return 0;let t=n.x+n.width,o=n.y+n.height,i=e.x+e.width,r=e.y+e.height;return t<=e.x?o<=e.y?Math.sqrt((t-e.x)**2+(o-e.y)**2):n.y>=r?Math.sqrt((t-e.x)**2+(n.y-r)**2):e.x-t:n.x>=i?o<=e.y?Math.sqrt((n.x-i)**2+(o-e.y)**2):n.y>=r?Math.sqrt((n.x-i)**2+(n.y-r)**2):n.x-i:o<=e.y?e.y-o:n.y>=r?n.y-r:1/0},on=(n,e)=>n?.x===e?.x&&n?.y===e?.y,_p=(n,e)=>n?.width===e?.width&&n?.height===e?.height;var mm=n=>({left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height}),D_=(n,e)=>{if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(!on(n[t],e[t]))return!1;return!0},co=n=>{if(n.length===0)return{x:0,y:0,width:0,height:0};let e=n[0].x,t=n[0].y,o=n[0].x+n[0].width,i=n[0].y+n[0].height;return n.forEach(r=>{e=Math.min(e,r.x),t=Math.min(t,r.y),o=Math.max(o,r.x+r.width),i=Math.max(i,r.y+r.height)}),{x:e,y:t,width:o-e,height:i-t}},Am=n=>{if(n.length===0)return{x:0,y:0,width:0,height:0};let e=n[0].x,t=n[0].y,o=n[0].x,i=n[0].y;return n.forEach(r=>{e=Math.min(e,r.x),t=Math.min(t,r.y),o=Math.max(o,r.x),i=Math.max(i,r.y)}),{x:e,y:t,width:o-e,height:i-t}},cc=(n,e=0)=>{let{x:t,y:o,width:i,height:r}=n,s=t+i/2,a=o+r/2,d=e*Math.PI/180,l=Math.cos(d),c=Math.sin(d);return[{x:t,y:o},{x:t+i,y:o},{x:t+i,y:o+r},{x:t,y:o+r}].map(({x:u,y:w})=>{let S=u-s,k=w-a;return{x:s+S*l-k*c,y:a+S*c+k*l}})},xp=(n,e=0)=>e===0?n:Am(cc(n,e)),Jl=(n,e,t)=>{let o=Math.cos(t),i=Math.sin(t),r=n.x-e.x,s=n.y-e.y;return{x:e.x+r*o-s*i,y:e.y+r*i+s*o}},M_=(n,e,t,o)=>{let i=(n.x-e.x)*(t.y-o.y)-(n.y-e.y)*(t.x-o.x);if(Math.abs(i)<1e-10)return null;let r=((n.x-t.x)*(t.y-o.y)-(n.y-t.y)*(t.x-o.x))/i,s=-((n.x-e.x)*(n.y-t.y)-(n.y-e.y)*(n.x-t.x))/i;return r>=0&&r<=1&&s>=0&&s<=1?{x:n.x+r*(e.x-n.x),y:n.y+r*(e.y-n.y)}:null},T_=(n,e)=>{let t=e.y-n.y,o=-(e.x-n.x),i=Math.hypot(t,o);return i===0?{x:1,y:0}:{x:t/i,y:o/i}},ym=n=>Math.abs(n.x)>=Math.abs(n.y)?n.x>=0?"right":"left":n.y>=0?"bottom":"top",k_=(n,e)=>{let t=_t({position:n.position,size:n.size}),o=(n.angle||0)*Math.PI/180,i={x:t.x+t.width/2,y:t.y+t.height/2};if(e.x===i.x&&e.y===i.y){let S=o!==0?Jl({x:t.x+t.width,y:i.y},i,o):{x:t.x+t.width,y:i.y},k=o!==0?Jl({x:1,y:0},{x:0,y:0},o):{x:1,y:0};return{x:S.x,y:S.y,side:ym(k)}}let r=[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}],s=o!==0?r.map(S=>Jl(S,i,o)):r,a=1/0,d=null,l=null;for(let S=0;S<4;S++){let k=s[S],W=s[(S+1)%4],Z=M_(e,i,k,W);if(Z){let X=Math.hypot(Z.x-e.x,Z.y-e.y);X<a&&(a=X,d=k,l=W)}}if(!d||!l)return{x:i.x,y:i.y,side:"right"};let c=T_(d,l),u=ym(c),w={x:(d.x+l.x)/2,y:(d.y+l.y)/2};return{x:w.x,y:w.y,side:u}},Lm=(n,e)=>{let t=Math.round(e/90)%4;return{top:["top","right","bottom","left"],right:["right","bottom","left","top"],bottom:["bottom","left","top","right"],left:["left","top","right","bottom"]}[n][t]},Fm=(n,e)=>{let{x:t,y:o,width:i,height:r}=_t(n),s=t+e.position.x,a=o+e.position.y,d=n.side;return e.angle&&e.angle!==0&&(d=Lm(n.side,e.angle)),d==="left"?{x:s,y:a+r/2}:d==="top"?{x:s+i/2,y:a}:d==="bottom"?{x:s+i/2,y:a+r}:d==="right"?{x:s+i,y:a+r/2}:{x:s,y:a}},zm=(n,e)=>{let t=n.measuredPorts?.find(o=>o.id===e);return t?Fm(t,n):null},Bm=(n,e)=>{let t=n.measuredPorts?.find(r=>r.id===e);if(!t)return null;let o=Fm(t,n),i=t.side;return n.angle&&n.angle!==0&&(i=Lm(t.side,n.angle)),_(g({},o),{side:i})},R_=n=>co(n.map(e=>e.measuredBounds).filter(e=>e!==void 0)),N_=n=>co(n.map(O_)),Sp=(n,e)=>{let t=R_(n),o=N_(e);return co([t,o])},O_=n=>{let e=Am(n.points||[]),t=n.measuredLabels||[];if(t.length===0)return e;let o=t.filter(i=>i.position&&i.size).map(i=>({x:i.position.x-i.size.width/2,y:i.position.y-i.size.height/2,width:i.size.width,height:i.size.height}));return co([e,...o])},oo=n=>{let e=n.measuredPorts||[],{x:t,y:o,width:i,height:r}=_t(n),s=[xp({x:0,y:0,width:i,height:r},n.angle||0)];for(let d of e){let{x:l,y:c,width:u,height:w}=_t(d);s.push({x:l,y:c,width:u,height:w})}let a=co(s);return{x:t+a.x,y:o+a.y,width:a.width,height:a.height}},A_=(n,e,{useGroupRect:t=!0,allowResizeBelowChildrenBounds:o=!0}={})=>{if(!e.size?.width||!e.size?.height)throw new Error("Group must have both width and height defined");if(o)return{left:1/0,top:1/0,right:-1/0,bottom:-1/0};let i=mm(_t(e));return n.length?n.reduce((r,s)=>{if(s.size&&(!s.size.width||!s.size.height))throw new Error(`calculateGroupBounds: child node ${s.id} does not have both width and height defined`);let a=mm(s.measuredBounds?s.measuredBounds:oo(s));return r.left=Math.min(r.left,a.left),r.top=Math.min(r.top,a.top),r.right=Math.max(r.right,a.right),r.bottom=Math.max(r.bottom,a.bottom),r},t?i:{left:1/0,top:1/0,right:-1/0,bottom:-1/0}):i};function io(n){return n.isGroup===!0}var vt=n=>(n?.width??0)>0&&(n?.height??0)>0,Ot=n=>n?.x!=null&&n?.y!=null&&!isNaN(n.x)&&!isNaN(n.y),uc=class{permits;waiting=[];constructor(e){this.permits=e}acquire(){return D(this,null,function*(){return this.permits>0?(this.permits--,Promise.resolve()):new Promise(e=>{this.waiting.push(e)})})}release(){this.waiting.length>0?this.waiting.shift()():this.permits++}availablePermits(){return this.permits}getQueueLength(){return this.waiting.length}},Ca=(n,e,t)=>{if(!n.snapping.shouldSnapDragForNode(e))return t;let o=n.snapping.computeSnapForNodeDrag(e)??n.snapping.defaultDragSnap;return Qe.snapPoint(t,o)};function L_(n,e){let t=F_(e);return[...n].sort(t)}function F_(n){let e=new Map;return n.forEach((t,o)=>{e.set(t.id,o)}),(t,o)=>{let i=t.computedZIndex??0,r=o.computedZIndex??0;if(i!==r)return r-i;let s=e.get(t.id)??0;return(e.get(o.id)??0)-s}}var z_=(n,e)=>{let t=new Set(e.map(o=>o.id));return[...(n.measuredPorts??[]).filter(o=>!t.has(o.id)),...e]},B_=(n,e)=>{let t=new Map(e.map(({portId:o,portChanges:i})=>[o,i]));return n.map(o=>{let i=t.get(o.id);return i?g(g({},o),i):o})},$_=(n,e)=>{let t=new Set(e);return(n??[]).filter(o=>!t.has(o.id))},H_=(n,e)=>D(null,null,function*(){let{nodes:t}=e;yield n.flowCore.applyUpdate({nodesToAdd:t},"addNodes")}),U_=(n,e)=>D(null,null,function*(){let{node:t}=e,o=Ca(n.flowCore.config,t,t.position);yield n.flowCore.applyUpdate({nodesToAdd:[_(g({},t),{position:o})]},"paletteDropNode")}),V_=(n,e)=>D(null,null,function*(){let{id:t,nodeChanges:o}=e;yield n.flowCore.applyUpdate({nodesToUpdate:[g({id:t},o)]},"updateNode")}),j_=(n,e)=>D(null,null,function*(){let{nodes:t}=e;yield n.flowCore.applyUpdate({nodesToUpdate:t},"updateNodes")}),W_=(n,e)=>D(null,null,function*(){let{edges:t}=n.flowCore.getState(),{ids:o}=e,i=new Set,r=new Set(o);t.forEach(s=>{(r.has(s.source)||r.has(s.target))&&i.add(s.id)}),yield n.flowCore.applyUpdate({nodesToRemove:Array.from(r),edgesToRemove:i.size>0?Array.from(i):[]},"deleteNodes")}),G_=n=>D(null,null,function*(){let{edges:e,nodes:t}=n.flowCore.getState();yield n.flowCore.applyUpdate({nodesToRemove:t.map(o=>o.id),edgesToRemove:e.map(o=>o.id)},"clearModel")}),q_=(n,e)=>D(null,null,function*(){let{edges:t}=e;yield n.flowCore.applyUpdate({edgesToAdd:t},"addEdges")}),Y_=(n,e)=>D(null,null,function*(){let{id:t,edgeChanges:o}=e;yield n.flowCore.applyUpdate({edgesToUpdate:[g({id:t},o)]},"updateEdge")}),Z_=(n,e)=>D(null,null,function*(){let{edges:t}=e;yield n.flowCore.applyUpdate({edgesToUpdate:t},"updateEdges")}),K_=(n,e)=>D(null,null,function*(){let{ids:t}=e;yield n.flowCore.applyUpdate({edgesToRemove:t},"deleteEdges")}),X_=(n,e)=>D(null,null,function*(){let{additions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getNodeById(r);s&&o.push({id:r,measuredPorts:z_(s,i)})}),o.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:o},"addPortsBulk"))}),Q_=(n,e)=>D(null,null,function*(){let{updates:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getNodeById(r);s&&s.measuredPorts&&o.push({id:r,measuredPorts:B_(s.measuredPorts,i)})}),o.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:o},"updatePortsBulk"))}),J_=(n,e)=>D(null,null,function*(){let{deletions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getNodeById(r);s&&o.push({id:r,measuredPorts:$_(s.measuredPorts,i)})}),o.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:o},"deletePortsBulk"))}),ex=(n,e)=>D(null,null,function*(){let{additions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getEdgeById(r);if(!s)return;let a=[...s.measuredLabels??[],...i];o.push({id:r,measuredLabels:a})}),o.length!==0&&(yield n.flowCore.applyUpdate({edgesToUpdate:o},"addEdgeLabelsBulk"))}),tx=(n,e)=>D(null,null,function*(){let{updates:t}=e,o=[],i=n.flowCore.edgeRoutingManager;t.forEach((r,s)=>{let a=n.flowCore.getEdgeById(s);if(!a)return;let d=a.points||[],l=new Map;r.forEach(({labelId:S,labelChanges:k})=>{l.set(S,k)});let c=d.length>=2,u=(S,k)=>c?Rm(S,a.routing,d,i):k,w=a.measuredLabels?.map(S=>{let k=l.get(S.id);if(!k)return c?_(g({},S),{position:u(S.positionOnEdge,S.position)}):S;let W=k.positionOnEdge??S.positionOnEdge;return _(g(g({},S),k),{position:u(W,S.position)})});w&&o.push({id:s,measuredLabels:w})}),o.length!==0&&(yield n.flowCore.applyUpdate({edgesToUpdate:o},"updateEdgeLabelsBulk"))}),nx=(n,e)=>D(null,null,function*(){let{deletions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getEdgeById(r);if(!s)return;let a=new Set(i),d=s.measuredLabels?.filter(l=>!a.has(l.id));o.push({id:r,measuredLabels:d})}),o.length!==0&&(yield n.flowCore.applyUpdate({edgesToUpdate:o},"deleteEdgeLabelsBulk"))}),$m=({x:n,y:e,width:t,height:o},i)=>!t||!o||t<0||o<0?null:i.width&&i.height?{x:i.width/2-(n+t/2)*i.scale,y:i.height/2-(e+o/2)*i.scale}:null,ox=(t,o)=>D(null,[t,o],function*(n,{rect:e}){let{viewport:i}=n.flowCore.getState().metadata,r=$m(e,i);if(r){if(on(i,{x:r.x,y:r.y}))return;yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(g({},i),{x:r.x,y:r.y})}},"centerOnRect")}}),ix=(t,o)=>D(null,[t,o],function*(n,{nodeOrId:e}){let i=typeof e=="string"?n.flowCore.getNodeById(e):e,{viewport:r}=n.flowCore.getState().metadata;if(!i||!i.size?.width||!i.size?.height)return;let s=$m({x:i.position.x,y:i.position.y,width:i.size.width,height:i.size.height},r);if(s){if(on(r,{x:s.x,y:s.y}))return;yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(g({},r),{x:s.x,y:s.y})}},"centerOnNode")}});var rx=n=>n.length===0?{x:0,y:0}:{x:n.reduce((e,t)=>e+t.position.x,0)/n.length,y:n.reduce((e,t)=>e+t.position.y,0)/n.length},sx=(n,e)=>{let t=rx(n);if(!e.position)return{x:20,y:20};if(n.length===1){let o=n[0];return{x:e.position.x-(o.size?.width??0)/2-o.position.x,y:e.position.y-(o.size?.height??0)/2-o.position.y}}return{x:e.position.x-t.x,y:e.position.y-t.y}},ax=n=>{if(!n.measuredPorts||n.measuredPorts.length===0)return n;let e=n.measuredPorts.map(t=>_(g({},t),{nodeId:n.id}));return _(g({},n),{measuredPorts:e})},dx=(n,e,t,o)=>(e.forEach(i=>{let r=n.computeNodeId();o.set(i.id,r)}),e.map(i=>{let r=o.get(i.id),s=i.groupId?o.get(i.groupId):void 0,a=_(g({},i),{id:r,groupId:s,position:{x:i.position.x+t.x,y:i.position.y+t.y},selected:!0});return a=ax(a),a})),lx=(n,e,t)=>e.map(o=>{let i=n.computeEdgeId();return _(g({},o),{id:i,source:t.get(o.source)||o.source,target:t.get(o.target)||o.target,selected:!0})}),cx=(n,e)=>{let t=[],o=[];return n.forEach(i=>{i.selected&&t.push({id:i.id,selected:!1})}),e.forEach(i=>{i.selected&&o.push({id:i.id,selected:!1})}),{nodesToUpdate:t,edgesToUpdate:o}},Hm=n=>D(null,null,function*(){let{nodes:e,edges:t}=n.flowCore.getState(),o=e.filter(r=>r.selected),i=t.filter(r=>r.selected);n.flowCore.actionStateManager.copyPaste={copiedNodes:o,copiedEdges:i}}),ux=(n,e)=>{for(let t of n)t.position=Ca(e,t,t.position)},px=(n,e)=>D(null,null,function*(){let t=n.flowCore.actionStateManager.copyPaste;if(!t||t.copiedNodes.length===0&&t.copiedEdges.length===0)return;let{nodes:o,edges:i}=n.flowCore.getState(),r=new Map,s=sx(t.copiedNodes,e),a=dx(n.flowCore.config,t.copiedNodes,s,r);ux(a,n.flowCore.config);let d=lx(n.flowCore.config,t.copiedEdges,r),{nodesToUpdate:l,edgesToUpdate:c}=cx(o,i);n.flowCore.actionStateManager.selection={selectionChanged:!0},yield n.flowCore.applyUpdate({nodesToAdd:a,edgesToAdd:d,nodesToUpdate:l,edgesToUpdate:c},"paste"),yield n.flowCore.applyUpdate({},"selectEnd")}),hx=({edges:n,nodesToDeleteIds:e})=>{let t=new Set(e);return n.filter(o=>o.selected||t.has(o.source)||t.has(o.target)).map(o=>o.id)},Um=n=>D(null,null,function*(){let{nodes:e,edges:t}=n.flowCore.getState(),o=e.some(a=>a.selected),i=t.some(a=>a.selected);if(!o&&!i)return;let r=o?n.flowCore.modelLookup.getSelectedNodesWithChildren({directOnly:!1}).map(a=>a.id):[],s=hx({edges:t,nodesToDeleteIds:r});r.length===0&&s.length===0||(yield n.flowCore.applyUpdate({nodesToRemove:r,edgesToRemove:s},"deleteSelection"))}),gx=n=>D(null,null,function*(){yield Hm(n),yield Um(n)}),fx=(o,i)=>D(null,[o,i],function*(n,{groupId:e,nodes:t}){let r=n.flowCore.actionStateManager.highlightGroup,s=r?.highlightedGroupId;if(s===e)return;let a=n.flowCore.modelLookup.getNodeById(e);if(!a||!t.some(l=>n.flowCore.config.grouping.canGroup(l,a)))return;let d=[{id:e,highlighted:!0}];s&&d.push({id:s,highlighted:!1}),n.flowCore.actionStateManager.highlightGroup={highlightedGroupId:e},yield n.flowCore.applyUpdate({nodesToUpdate:d},"highlightGroup")}),mx=n=>D(null,null,function*(){let e=n.flowCore.actionStateManager.highlightGroup,t=e?.highlightedGroupId;t&&(yield n.flowCore.applyUpdate({nodesToUpdate:[{id:t,highlighted:!1}]},"highlightGroupClear"),n.flowCore.actionStateManager.clearHighlightGroup())}),yx=(n,e)=>D(null,null,function*(){yield n.flowCore.applyUpdate({renderedNodeIds:e.renderedNodeIds,renderedEdgeIds:e.renderedEdgeIds},"init")}),Vm=(n,e,t)=>{let o=_(g(g({},e),t),{temporary:!1});return n.linking.finalEdgeDataBuilder(_(g({},o),{id:n.computeEdgeId()}))},vx=(n,e,t)=>!!(n.type!=="source"&&(e&&n.nodeId!==e||t&&n.id!==t)),jm=(n,e,t,o,i,r)=>{let s=e?n.getNodeById(e):null,a=o?n.getNodeById(o):null,d=t?s?.measuredPorts?.find(c=>c.id===t)??null:null,l=i?a?.measuredPorts?.find(c=>c.id===i)??null:null;return!(r||!d||l)||n.config.linking.validateConnection(s,d,a,l)},nr=(n,e)=>n.linking.temporaryEdgeDataBuilder(_(g({id:"TEMPORARY_EDGE",data:{},temporary:!0},e),{source:e.source||"",target:e.target||"",targetArrowhead:e.targetArrowhead||"ng-diagram-arrow"})),Us=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"finishLinking"),n.flowCore.actionStateManager.clearLinking()}),bx=(n,e,t)=>{let o=e&&n.flowCore.getNodeById(e);if(!o)return{isValid:!1,targetNode:null,targetPosition:null};if(t&&o.measuredPorts?.find(r=>r.id===t)?.type==="source")return{isValid:!1,targetNode:o,targetPosition:null};let i=e&&t?zm(o,t):o.position;return i?{isValid:!0,targetNode:o,targetPosition:i}:{isValid:!1,targetNode:o,targetPosition:null}},wx=(n,e)=>D(null,null,function*(){let t=n.flowCore.actionStateManager.linking,o=t?.temporaryEdge;if(!t)return;if(!o)return void(yield Us(n));t.dropPosition=e.position??{x:0,y:0};let{source:i,sourcePort:r,target:s,targetPort:a}=o,d=s||void 0,l=a||void 0;if(!d)return t.cancelReason="noTarget",void(yield Us(n));if(!jm(n.flowCore,i,r,d,l,!0))return t.cancelReason="invalidConnection",void(yield Us(n));let{isValid:c,targetPosition:u}=bx(n,d,l);if(!c)return t.cancelReason="invalidTarget",void(yield Us(n));yield n.flowCore.applyUpdate({edgesToAdd:[Vm(n.flowCore.config,o,{target:d,targetPort:l,targetPosition:u||void 0})]},"finishLinking"),n.flowCore.actionStateManager.clearLinking()}),Cx=(n,e)=>D(null,null,function*(){let t=n.flowCore.actionStateManager.linking,o=t?.temporaryEdge,{position:i}=e;t&&(o&&(t.dropPosition=i,yield n.flowCore.applyUpdate({edgesToAdd:[Vm(n.flowCore.config,o,{target:"",targetPort:"",targetPosition:i})]},"finishLinking")),n.flowCore.actionStateManager.clearLinking())}),_x=(n,e,t)=>{let o=n.flowCore.getNearestPortInRange(e,n.flowCore.config.linking.portSnapDistance),i=o&&vx(o,t.source,t.sourcePort);return{targetNodeId:i?o.nodeId:"",targetPortId:i?o.id:"",isValid:!!i}},xx=(n,e,t,o)=>{let{targetNodeId:i,targetPortId:r}=t,s=e.source||"",a=e.sourcePort||"",d=()=>nr(n.flowCore.config,{source:s,sourcePort:a,target:"",targetPort:"",targetPosition:o});if(!i)return d();let l=n.flowCore.getNodeById(i);return l&&jm(n.flowCore,e.source,e.sourcePort,i,r)?r&&l.measuredPorts?.find(c=>c.id===r)?nr(n.flowCore.config,{source:s,sourcePort:a,target:i,targetPort:r,targetPosition:o}):nr(n.flowCore.config,{source:s,sourcePort:a,target:i,targetPort:"",targetPosition:o}):d()},Sx=(n,e,t)=>e===n.target&&t===n.targetPort,Ex=(n,e)=>D(null,null,function*(){let{position:t}=e,o=n.flowCore.actionStateManager.linking?.temporaryEdge;if(!n.flowCore.actionStateManager.linking||!o)return;let i=_x(n,t,o);if(i.targetNodeId&&Sx(o,i.targetNodeId,i.targetPortId))return;let r=xx(n,o,i,t);n.flowCore.actionStateManager.linking=_(g({},n.flowCore.actionStateManager.linking),{temporaryEdge:r}),yield n.flowCore.applyUpdate({},"moveTemporaryEdge")}),Px=(n,e)=>D(null,null,function*(){let{source:t,sourcePort:o}=e,i=n.flowCore.getNodeById(t);if(!i||o&&i.measuredPorts?.find(a=>a.id===o)?.type==="target")return;let r=o?zm(i,o):i.position;if(!r)return;let s=nr(n.flowCore.config,{source:t,sourcePort:o,sourcePosition:r,target:"",targetPosition:r});n.flowCore.actionStateManager.linking={temporaryEdge:s,sourceNodeId:t,sourcePortId:o??""},yield n.flowCore.applyUpdate({},"startLinking")}),Ix=(n,e)=>D(null,null,function*(){let{position:t}=e,o=nr(n.flowCore.config,{source:"",sourcePosition:t,target:"",targetPosition:t});n.flowCore.actionStateManager.linking={sourceNodeId:"",sourcePortId:"",temporaryEdge:o},yield n.flowCore.applyUpdate({},"startLinkingFromPosition")}),Dx=(o,i)=>D(null,[o,i],function*(n,{delta:e,nodes:t}){let r=new Set(t.map(l=>l.id)),s=t.filter(l=>!l.groupId||!r.has(l.groupId)),a=n.flowCore.actionStateManager?.dragging?.accumulatedDeltas,d=Mx(n,s,r,e,a);d.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:d},"moveNodesBy"))}),Mx=(n,e,t,o,i)=>{let r=[],s=new Set;return e.forEach(a=>{let{snappedPosition:d,actualDelta:l}=Tx(n,a,o,i);on(a.position,d)||r.push({id:a.id,position:d}),s.add(a.id),kx(n,a.id,l,t,s,r)}),r},Tx=(n,e,t,o)=>{let{snappedPosition:i,newAccumulated:r}=Rx(n,e,t,o);return o&&o.set(e.id,r),{snappedPosition:i,actualDelta:{x:i.x-e.position.x,y:i.y-e.position.y}}},kx=(n,e,t,o,i,r)=>{n.flowCore.modelLookup.getAllDescendants(e).forEach(s=>{if(o.has(s.id)&&!i.has(s.id)){let a={x:s.position.x+t.x,y:s.position.y+t.y};on(s.position,a)||r.push({id:s.id,position:a}),i.add(s.id)}})},Rx=(n,e,t,o)=>{let i=o?.get(e.id)??{x:0,y:0},r=i.x+t.x,s=i.y+t.y,a=Ca(n.flowCore.config,e,{x:e.position.x+r,y:e.position.y+s});return{snappedPosition:a,newAccumulated:{x:r-(a.x-e.position.x),y:s-(a.y-e.position.y)}}},Nx=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"moveNodesStart")}),Ox=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"moveNodesStop")}),Ax=(o,i)=>D(null,[o,i],function*(n,{x:e,y:t}){let{metadata:r}=n.flowCore.getState();(e||t)&&(n.flowCore.actionStateManager.isPanning()?n.flowCore.applyViewportOnlyUpdate({x:r.viewport.x+e,y:r.viewport.y+t}):yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(g({},r.viewport),{x:r.viewport.x+e,y:r.viewport.y+t})}},"moveViewport"))}),Lx=(n,e)=>D(null,null,function*(){let{x:t,y:o}=e,{metadata:i}=n.flowCore.getState();on(i.viewport,{x:t,y:o})||(yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(g({},i.viewport),{x:t,y:o})}},"moveViewport"))}),Fx=(o,i)=>D(null,[o,i],function*(n,{groupId:e,nodeIds:t}){let r=t.map(a=>n.flowCore.modelLookup.getNodeById(a)).filter(Boolean);if(!n.flowCore.modelLookup.getNodeById(e))return;let s=[];for(let a of r)a.groupId===e&&s.push({id:a.id,groupId:void 0});s.length>0&&(yield n.flowCore.commandHandler.emit("updateNodes",{nodes:s}))}),zx=n=>`[ngDiagram] Resize node failed: Node not found.
34
+ The diagram will continue to function, but this listener failed to execute.`,pc=class{listeners=new Map;enabled=!0;deferredEmits=[];on(e,t){this.listeners.has(e)||this.listeners.set(e,new Set);let o={callback:t,once:!1};return this.listeners.get(e).add(o),()=>this.removeListener(e,o)}once(e,t){this.listeners.has(e)||this.listeners.set(e,new Set);let o={callback:t,once:!0};return this.listeners.get(e).add(o),()=>this.removeListener(e,o)}emit(e,t){if(!this.enabled)return;let o=this.listeners.get(e);if(!o||o.size===0)return;let i=[];for(let r of o)try{r.callback(t),r.once&&i.push(r)}catch(s){console.error($_(String(e),r.once?"once":"on",s))}i.forEach(r=>{o.delete(r)})}deferredEmit(e,t){this.enabled&&this.deferredEmits.push({event:e,payload:t})}off(e,t){if(!t)return void this.listeners.delete(e);let o=this.listeners.get(e);if(!o)return;let i=Array.from(o).find(r=>r.callback===t);i&&o.delete(i)}offAll(){this.listeners.clear()}setEnabled(e){this.enabled=e}isEnabled(){return this.enabled}hasListeners(e){return this.listeners.has(e)&&this.listeners.get(e).size>0}flushDeferredEmits(){let e=[...this.deferredEmits];this.deferredEmits=[];for(let{event:t,payload:o}of e)this.emit(t,o)}clearDeferredEmits(){this.deferredEmits=[]}removeListener(e,t){let o=this.listeners.get(e);o&&(o.delete(t),o.size===0&&this.listeners.delete(e))}},H_=(o,i)=>M(null,[o,i],function*(n,{groupId:e,nodeIds:t}){let r=t.map(d=>n.flowCore.modelLookup.getNodeById(d)).filter(Boolean),s=n.flowCore.modelLookup.getNodeById(e);if(!s)return;let a=[];for(let d of r)n.flowCore.modelLookup.wouldCreateCircularDependency(d.id,e)||d.groupId!==e&&n.flowCore.config.grouping.canGroup(d,s)&&a.push({id:d.id,groupId:e});a.length>0&&(yield n.flowCore.commandHandler.emit("updateNodes",{nodes:a})),a.some(d=>!!d.groupId)&&n.flowCore.commandHandler.emit("highlightGroupClear")}),_m=(n,e,t)=>{if(!n)return"left";let o;if(e&&n.measuredPorts){let r=n.measuredPorts.find(s=>s.id===e);o=r?.position?{x:n.position.x+r.position.x+(r.size?.width??0)/2,y:n.position.y+r.position.y+(r.size?.height??0)/2}:{x:n.position.x+(n.size?.width??100)/2,y:n.position.y+(n.size?.height??50)/2}}else o={x:n.position.x+(n.size?.width??100)/2,y:n.position.y+(n.size?.height??50)/2};let i=Qe.angleBetweenPoints(o,t);return Qe.angleToSide(i,!0)};var $m=1e3/60;function Pp(n,e){let t=h({},n);for(let o in e)if(Object.hasOwn(e,o)){let i=e[o],r=n[o];i!==void 0&&(t[o]=typeof i!="object"||i===null||Array.isArray(i)||typeof i=="function"||typeof r!="object"||r===null||Array.isArray(r)||typeof r=="function"?i:Pp(r,i))}return t}var Zs=(n,e)=>({x:n.x-e,y:n.y-e,width:2*e,height:2*e}),hc=(n,e)=>n?.x===e?.x&&n?.y===e?.y&&n?.width===e?.width&&n?.height===e?.height,_t=({position:n={x:0,y:0},size:e={width:1,height:1}})=>({x:n?.x||0,y:n?.y||0,width:e?.width||1,height:e?.height||1}),Hm=(n,e)=>!(n.x+n.width<=e.x||e.x+e.width<=n.x||n.y+n.height<=e.y||e.y+e.height<=n.y),U_=(n,e)=>n.x<=e.x&&n.x+n.width>=e.x+e.width&&n.y<=e.y&&n.y+n.height>=e.y+e.height,gc=(n,e)=>{if(Hm(n,e))return 0;let t=n.x+n.width,o=n.y+n.height,i=e.x+e.width,r=e.y+e.height;return t<=e.x?o<=e.y?Math.sqrt((t-e.x)**2+(o-e.y)**2):n.y>=r?Math.sqrt((t-e.x)**2+(n.y-r)**2):e.x-t:n.x>=i?o<=e.y?Math.sqrt((n.x-i)**2+(o-e.y)**2):n.y>=r?Math.sqrt((n.x-i)**2+(n.y-r)**2):n.x-i:o<=e.y?e.y-o:n.y>=r?n.y-r:1/0},sn=(n,e)=>n?.x===e?.x&&n?.y===e?.y,Ip=(n,e)=>n?.width===e?.width&&n?.height===e?.height;var xm=n=>({left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height}),j_=(n,e)=>{if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(!sn(n[t],e[t]))return!1;return!0},po=n=>{if(n.length===0)return{x:0,y:0,width:0,height:0};let e=n[0].x,t=n[0].y,o=n[0].x+n[0].width,i=n[0].y+n[0].height;return n.forEach(r=>{e=Math.min(e,r.x),t=Math.min(t,r.y),o=Math.max(o,r.x+r.width),i=Math.max(i,r.y+r.height)}),{x:e,y:t,width:o-e,height:i-t}},Um=n=>{if(n.length===0)return{x:0,y:0,width:0,height:0};let e=n[0].x,t=n[0].y,o=n[0].x,i=n[0].y;return n.forEach(r=>{e=Math.min(e,r.x),t=Math.min(t,r.y),o=Math.max(o,r.x),i=Math.max(i,r.y)}),{x:e,y:t,width:o-e,height:i-t}},fc=(n,e=0)=>{let{x:t,y:o,width:i,height:r}=n,s=t+i/2,a=o+r/2,d=e*Math.PI/180,l=Math.cos(d),c=Math.sin(d);return[{x:t,y:o},{x:t+i,y:o},{x:t+i,y:o+r},{x:t,y:o+r}].map(({x:u,y:w})=>{let S=u-s,k=w-a;return{x:s+S*l-k*c,y:a+S*c+k*l}})},Dp=(n,e=0)=>e===0?n:Um(fc(n,e)),ic=(n,e,t)=>{let o=Math.cos(t),i=Math.sin(t),r=n.x-e.x,s=n.y-e.y;return{x:e.x+r*o-s*i,y:e.y+r*i+s*o}},V_=(n,e,t,o)=>{let i=(n.x-e.x)*(t.y-o.y)-(n.y-e.y)*(t.x-o.x);if(Math.abs(i)<1e-10)return null;let r=((n.x-t.x)*(t.y-o.y)-(n.y-t.y)*(t.x-o.x))/i,s=-((n.x-e.x)*(n.y-t.y)-(n.y-e.y)*(n.x-t.x))/i;return r>=0&&r<=1&&s>=0&&s<=1?{x:n.x+r*(e.x-n.x),y:n.y+r*(e.y-n.y)}:null},W_=(n,e)=>{let t=e.y-n.y,o=-(e.x-n.x),i=Math.hypot(t,o);return i===0?{x:1,y:0}:{x:t/i,y:o/i}},Sm=n=>Math.abs(n.x)>=Math.abs(n.y)?n.x>=0?"right":"left":n.y>=0?"bottom":"top",G_=(n,e)=>{let t=_t({position:n.position,size:n.size}),o=(n.angle||0)*Math.PI/180,i={x:t.x+t.width/2,y:t.y+t.height/2};if(e.x===i.x&&e.y===i.y){let S=o!==0?ic({x:t.x+t.width,y:i.y},i,o):{x:t.x+t.width,y:i.y},k=o!==0?ic({x:1,y:0},{x:0,y:0},o):{x:1,y:0};return{x:S.x,y:S.y,side:Sm(k)}}let r=[{x:t.x,y:t.y},{x:t.x+t.width,y:t.y},{x:t.x+t.width,y:t.y+t.height},{x:t.x,y:t.y+t.height}],s=o!==0?r.map(S=>ic(S,i,o)):r,a=1/0,d=null,l=null;for(let S=0;S<4;S++){let k=s[S],W=s[(S+1)%4],Z=V_(e,i,k,W);if(Z){let K=Math.hypot(Z.x-e.x,Z.y-e.y);K<a&&(a=K,d=k,l=W)}}if(!d||!l)return{x:i.x,y:i.y,side:"right"};let c=W_(d,l),u=Sm(c),w={x:(d.x+l.x)/2,y:(d.y+l.y)/2};return{x:w.x,y:w.y,side:u}},jm=(n,e)=>{let t=Math.round(e/90)%4;return{top:["top","right","bottom","left"],right:["right","bottom","left","top"],bottom:["bottom","left","top","right"],left:["left","top","right","bottom"]}[n][t]},Vm=(n,e)=>{let{x:t,y:o,width:i,height:r}=_t(n),s=t+e.position.x,a=o+e.position.y,d=n.side;return e.angle&&e.angle!==0&&(d=jm(n.side,e.angle)),d==="left"?{x:s,y:a+r/2}:d==="top"?{x:s+i/2,y:a}:d==="bottom"?{x:s+i/2,y:a+r}:d==="right"?{x:s+i,y:a+r/2}:{x:s,y:a}},Wm=(n,e)=>{let t=n.measuredPorts?.find(o=>o.id===e);return t?Vm(t,n):null},Gm=(n,e)=>{let t=n.measuredPorts?.find(r=>r.id===e);if(!t)return null;let o=Vm(t,n),i=t.side;return n.angle&&n.angle!==0&&(i=jm(t.side,n.angle)),_(h({},o),{side:i})},q_=n=>po(n.map(e=>e.measuredBounds).filter(e=>e!==void 0)),Y_=n=>po(n.map(Z_)),Tp=(n,e)=>{let t=q_(n),o=Y_(e);return po([t,o])},Z_=n=>{let e=Um(n.points||[]),t=n.measuredLabels||[];if(t.length===0)return e;let o=t.filter(i=>i.position&&i.size).map(i=>({x:i.position.x-i.size.width/2,y:i.position.y-i.size.height/2,width:i.size.width,height:i.size.height}));return po([e,...o])},ro=n=>{let e=n.measuredPorts||[],{x:t,y:o,width:i,height:r}=_t(n),s=[Dp({x:0,y:0,width:i,height:r},n.angle||0)];for(let d of e){let{x:l,y:c,width:u,height:w}=_t(d);s.push({x:l,y:c,width:u,height:w})}let a=po(s);return{x:t+a.x,y:o+a.y,width:a.width,height:a.height}},K_=(n,e,{useGroupRect:t=!0,allowResizeBelowChildrenBounds:o=!0}={})=>{if(!e.size?.width||!e.size?.height)throw new Error("Group must have both width and height defined");if(o)return{left:1/0,top:1/0,right:-1/0,bottom:-1/0};let i=xm(_t(e));return n.length?n.reduce((r,s)=>{if(s.size&&(!s.size.width||!s.size.height))throw new Error(`calculateGroupBounds: child node ${s.id} does not have both width and height defined`);let a=xm(s.measuredBounds?s.measuredBounds:ro(s));return r.left=Math.min(r.left,a.left),r.top=Math.min(r.top,a.top),r.right=Math.max(r.right,a.right),r.bottom=Math.max(r.bottom,a.bottom),r},t?i:{left:1/0,top:1/0,right:-1/0,bottom:-1/0}):i};function so(n){return n.isGroup===!0}var vt=n=>(n?.width??0)>0&&(n?.height??0)>0,Lt=n=>n?.x!=null&&n?.y!=null&&!isNaN(n.x)&&!isNaN(n.y),mc=class{permits;waiting=[];constructor(e){this.permits=e}acquire(){return M(this,null,function*(){return this.permits>0?(this.permits--,Promise.resolve()):new Promise(e=>{this.waiting.push(e)})})}release(){this.waiting.length>0?this.waiting.shift()():this.permits++}availablePermits(){return this.permits}getQueueLength(){return this.waiting.length}},Sa=(n,e,t)=>{if(!n.snapping.shouldSnapDragForNode(e))return t;let o=n.snapping.computeSnapForNodeDrag(e)??n.snapping.defaultDragSnap;return Qe.snapPoint(t,o)};function X_(n,e){let t=Q_(e);return[...n].sort(t)}function Q_(n){let e=new Map;return n.forEach((t,o)=>{e.set(t.id,o)}),(t,o)=>{let i=t.computedZIndex??0,r=o.computedZIndex??0;if(i!==r)return r-i;let s=e.get(t.id)??0;return(e.get(o.id)??0)-s}}var J_=(n,e)=>{let t=new Set(e.map(o=>o.id));return[...(n.measuredPorts??[]).filter(o=>!t.has(o.id)),...e]},ex=(n,e)=>{let t=new Map(e.map(({portId:o,portChanges:i})=>[o,i]));return n.map(o=>{let i=t.get(o.id);return i?h(h({},o),i):o})},tx=(n,e)=>{let t=new Set(e);return(n??[]).filter(o=>!t.has(o.id))},nx=(n,e)=>M(null,null,function*(){let{nodes:t}=e;yield n.flowCore.applyUpdate({nodesToAdd:t},"addNodes")}),ox=(n,e)=>M(null,null,function*(){let{node:t}=e,o=Sa(n.flowCore.config,t,t.position);yield n.flowCore.applyUpdate({nodesToAdd:[_(h({},t),{position:o})]},"paletteDropNode")}),ix=(n,e)=>M(null,null,function*(){let{id:t,nodeChanges:o}=e;yield n.flowCore.applyUpdate({nodesToUpdate:[h({id:t},o)]},"updateNode")}),rx=(n,e)=>M(null,null,function*(){let{nodes:t}=e;yield n.flowCore.applyUpdate({nodesToUpdate:t},"updateNodes")}),sx=(n,e)=>M(null,null,function*(){let{edges:t}=n.flowCore.getState(),{ids:o}=e,i=new Set,r=new Set(o);t.forEach(s=>{(r.has(s.source)||r.has(s.target))&&i.add(s.id)}),yield n.flowCore.applyUpdate({nodesToRemove:Array.from(r),edgesToRemove:i.size>0?Array.from(i):[]},"deleteNodes")}),ax=n=>M(null,null,function*(){let{edges:e,nodes:t}=n.flowCore.getState();yield n.flowCore.applyUpdate({nodesToRemove:t.map(o=>o.id),edgesToRemove:e.map(o=>o.id)},"clearModel")}),dx=(n,e)=>M(null,null,function*(){let{edges:t}=e;yield n.flowCore.applyUpdate({edgesToAdd:t},"addEdges")}),lx=(n,e)=>M(null,null,function*(){let{id:t,edgeChanges:o}=e;yield n.flowCore.applyUpdate({edgesToUpdate:[h({id:t},o)]},"updateEdge")}),cx=(n,e)=>M(null,null,function*(){let{edges:t}=e;yield n.flowCore.applyUpdate({edgesToUpdate:t},"updateEdges")}),ux=(n,e)=>M(null,null,function*(){let{ids:t}=e;yield n.flowCore.applyUpdate({edgesToRemove:t},"deleteEdges")}),px=(n,e)=>M(null,null,function*(){let{additions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getNodeById(r);s&&o.push({id:r,measuredPorts:J_(s,i)})}),o.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:o},"addPortsBulk"))}),hx=(n,e)=>M(null,null,function*(){let{updates:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getNodeById(r);s&&s.measuredPorts&&o.push({id:r,measuredPorts:ex(s.measuredPorts,i)})}),o.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:o},"updatePortsBulk"))}),gx=(n,e)=>M(null,null,function*(){let{deletions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getNodeById(r);s&&o.push({id:r,measuredPorts:tx(s.measuredPorts,i)})}),o.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:o},"deletePortsBulk"))}),fx=(n,e)=>M(null,null,function*(){let{additions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getEdgeById(r);if(!s)return;let a=[...s.measuredLabels??[],...i];o.push({id:r,measuredLabels:a})}),o.length!==0&&(yield n.flowCore.applyUpdate({edgesToUpdate:o},"addEdgeLabelsBulk"))}),mx=(n,e)=>M(null,null,function*(){let{updates:t}=e,o=[],i=n.flowCore.edgeRoutingManager;t.forEach((r,s)=>{let a=n.flowCore.getEdgeById(s);if(!a)return;let d=a.points||[],l=new Map;r.forEach(({labelId:S,labelChanges:k})=>{l.set(S,k)});let c=d.length>=2,u=(S,k)=>c?Bm(S,a.routing,d,i):k,w=a.measuredLabels?.map(S=>{let k=l.get(S.id);if(!k)return c?_(h({},S),{position:u(S.positionOnEdge,S.position)}):S;let W=k.positionOnEdge??S.positionOnEdge;return _(h(h({},S),k),{position:u(W,S.position)})});w&&o.push({id:s,measuredLabels:w})}),o.length!==0&&(yield n.flowCore.applyUpdate({edgesToUpdate:o},"updateEdgeLabelsBulk"))}),yx=(n,e)=>M(null,null,function*(){let{deletions:t}=e,o=[];t.forEach((i,r)=>{let s=n.flowCore.getEdgeById(r);if(!s)return;let a=new Set(i),d=s.measuredLabels?.filter(l=>!a.has(l.id));o.push({id:r,measuredLabels:d})}),o.length!==0&&(yield n.flowCore.applyUpdate({edgesToUpdate:o},"deleteEdgeLabelsBulk"))}),qm=({x:n,y:e,width:t,height:o},i)=>!t||!o||t<0||o<0?null:i.width&&i.height?{x:i.width/2-(n+t/2)*i.scale,y:i.height/2-(e+o/2)*i.scale}:null,vx=(t,o)=>M(null,[t,o],function*(n,{rect:e}){let{viewport:i}=n.flowCore.getState().metadata,r=qm(e,i);if(r){if(sn(i,{x:r.x,y:r.y}))return;yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(h({},i),{x:r.x,y:r.y})}},"centerOnRect")}}),bx=(t,o)=>M(null,[t,o],function*(n,{nodeOrId:e}){let i=typeof e=="string"?n.flowCore.getNodeById(e):e,{viewport:r}=n.flowCore.getState().metadata;if(!i||!i.size?.width||!i.size?.height)return;let s=qm({x:i.position.x,y:i.position.y,width:i.size.width,height:i.size.height},r);if(s){if(sn(r,{x:s.x,y:s.y}))return;yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(h({},r),{x:s.x,y:s.y})}},"centerOnNode")}});var wx=n=>n.length===0?{x:0,y:0}:{x:n.reduce((e,t)=>e+t.position.x,0)/n.length,y:n.reduce((e,t)=>e+t.position.y,0)/n.length},Cx=(n,e)=>{let t=wx(n);if(!e.position)return{x:20,y:20};if(n.length===1){let o=n[0];return{x:e.position.x-(o.size?.width??0)/2-o.position.x,y:e.position.y-(o.size?.height??0)/2-o.position.y}}return{x:e.position.x-t.x,y:e.position.y-t.y}},_x=n=>{if(!n.measuredPorts||n.measuredPorts.length===0)return n;let e=n.measuredPorts.map(t=>_(h({},t),{nodeId:n.id}));return _(h({},n),{measuredPorts:e})},xx=(n,e,t,o)=>(e.forEach(i=>{let r=n.computeNodeId();o.set(i.id,r)}),e.map(i=>{let r=o.get(i.id),s=i.groupId?o.get(i.groupId):void 0,a=_(h({},i),{id:r,groupId:s,position:{x:i.position.x+t.x,y:i.position.y+t.y},selected:!0});return a=_x(a),a})),Sx=(n,e,t)=>e.map(o=>{let i=n.computeEdgeId();return _(h({},o),{id:i,source:t.get(o.source)||o.source,target:t.get(o.target)||o.target,selected:!0})}),Ex=(n,e)=>{let t=[],o=[];return n.forEach(i=>{i.selected&&t.push({id:i.id,selected:!1})}),e.forEach(i=>{i.selected&&o.push({id:i.id,selected:!1})}),{nodesToUpdate:t,edgesToUpdate:o}},Ym=n=>M(null,null,function*(){let{nodes:e,edges:t}=n.flowCore.getState(),o=e.filter(r=>r.selected),i=t.filter(r=>r.selected);n.flowCore.actionStateManager.copyPaste={copiedNodes:o,copiedEdges:i}}),Px=(n,e)=>{for(let t of n)t.position=Sa(e,t,t.position)},Ix=(n,e)=>M(null,null,function*(){let t=n.flowCore.actionStateManager.copyPaste;if(!t||t.copiedNodes.length===0&&t.copiedEdges.length===0)return;let{nodes:o,edges:i}=n.flowCore.getState(),r=new Map,s=Cx(t.copiedNodes,e),a=xx(n.flowCore.config,t.copiedNodes,s,r);Px(a,n.flowCore.config);let d=Sx(n.flowCore.config,t.copiedEdges,r),{nodesToUpdate:l,edgesToUpdate:c}=Ex(o,i);n.flowCore.actionStateManager.selection={selectionChanged:!0},yield n.flowCore.applyUpdate({nodesToAdd:a,edgesToAdd:d,nodesToUpdate:l,edgesToUpdate:c},"paste"),yield n.flowCore.applyUpdate({},"selectEnd")}),Dx=({edges:n,nodesToDeleteIds:e})=>{let t=new Set(e);return n.filter(o=>o.selected||t.has(o.source)||t.has(o.target)).map(o=>o.id)},Zm=n=>M(null,null,function*(){let{nodes:e,edges:t}=n.flowCore.getState(),o=e.some(a=>a.selected),i=t.some(a=>a.selected);if(!o&&!i)return;let r=o?n.flowCore.modelLookup.getSelectedNodesWithChildren({directOnly:!1}).map(a=>a.id):[],s=Dx({edges:t,nodesToDeleteIds:r});r.length===0&&s.length===0||(yield n.flowCore.applyUpdate({nodesToRemove:r,edgesToRemove:s},"deleteSelection"))}),Tx=n=>M(null,null,function*(){yield Ym(n),yield Zm(n)}),Mx=(o,i)=>M(null,[o,i],function*(n,{groupId:e,nodes:t}){let r=n.flowCore.actionStateManager.highlightGroup,s=r?.highlightedGroupId;if(s===e)return;let a=n.flowCore.modelLookup.getNodeById(e);if(!a||!t.some(l=>n.flowCore.config.grouping.canGroup(l,a)))return;let d=[{id:e,highlighted:!0}];s&&d.push({id:s,highlighted:!1}),n.flowCore.actionStateManager.highlightGroup={highlightedGroupId:e},yield n.flowCore.applyUpdate({nodesToUpdate:d},"highlightGroup")}),kx=n=>M(null,null,function*(){let e=n.flowCore.actionStateManager.highlightGroup,t=e?.highlightedGroupId;t&&(yield n.flowCore.applyUpdate({nodesToUpdate:[{id:t,highlighted:!1}]},"highlightGroupClear"),n.flowCore.actionStateManager.clearHighlightGroup())}),Rx=(n,e)=>M(null,null,function*(){yield n.flowCore.applyUpdate({renderedNodeIds:e.renderedNodeIds,renderedEdgeIds:e.renderedEdgeIds},"init")}),Km=(n,e,t)=>{let o=_(h(h({},e),t),{temporary:!1});return n.linking.finalEdgeDataBuilder(_(h({},o),{id:n.computeEdgeId()}))},Nx=(n,e,t)=>!!(n.type!=="source"&&(e&&n.nodeId!==e||t&&n.id!==t)),Xm=(n,e,t,o,i,r)=>{let s=e?n.getNodeById(e):null,a=o?n.getNodeById(o):null,d=t?s?.measuredPorts?.find(c=>c.id===t)??null:null,l=i?a?.measuredPorts?.find(c=>c.id===i)??null:null;return!(r||!d||l)||n.config.linking.validateConnection(s,d,a,l)},er=(n,e)=>n.linking.temporaryEdgeDataBuilder(_(h({id:"TEMPORARY_EDGE",data:{},temporary:!0},e),{source:e.source||"",target:e.target||"",targetArrowhead:e.targetArrowhead||"ng-diagram-arrow"})),Ws=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"finishLinking"),n.flowCore.actionStateManager.clearLinking()}),Ox=(n,e,t)=>{let o=e&&n.flowCore.getNodeById(e);if(!o)return{isValid:!1,targetNode:null,targetPosition:null};if(t&&o.measuredPorts?.find(r=>r.id===t)?.type==="source")return{isValid:!1,targetNode:o,targetPosition:null};let i=e&&t?Wm(o,t):o.position;return i?{isValid:!0,targetNode:o,targetPosition:i}:{isValid:!1,targetNode:o,targetPosition:null}},Ax=(n,e)=>M(null,null,function*(){let t=n.flowCore.actionStateManager.linking,o=t?.temporaryEdge;if(!t)return;if(!o)return void(yield Ws(n));t.dropPosition=e.position??{x:0,y:0};let{source:i,sourcePort:r,target:s,targetPort:a}=o,d=s||void 0,l=a||void 0;if(!d)return t.cancelReason="noTarget",void(yield Ws(n));if(!Xm(n.flowCore,i,r,d,l,!0))return t.cancelReason="invalidConnection",void(yield Ws(n));let{isValid:c,targetPosition:u}=Ox(n,d,l);if(!c)return t.cancelReason="invalidTarget",void(yield Ws(n));yield n.flowCore.applyUpdate({edgesToAdd:[Km(n.flowCore.config,o,{target:d,targetPort:l,targetPosition:u||void 0})]},"finishLinking"),n.flowCore.actionStateManager.clearLinking()}),Lx=(n,e)=>M(null,null,function*(){let t=n.flowCore.actionStateManager.linking,o=t?.temporaryEdge,{position:i}=e;t&&(o&&(t.dropPosition=i,yield n.flowCore.applyUpdate({edgesToAdd:[Km(n.flowCore.config,o,{target:"",targetPort:"",targetPosition:i})]},"finishLinking")),n.flowCore.actionStateManager.clearLinking())}),Fx=(n,e,t)=>{let o=n.flowCore.getNearestPortInRange(e,n.flowCore.config.linking.portSnapDistance),i=o&&Nx(o,t.source,t.sourcePort);return{targetNodeId:i?o.nodeId:"",targetPortId:i?o.id:"",isValid:!!i}},zx=(n,e,t,o)=>{let{targetNodeId:i,targetPortId:r}=t,s=e.source||"",a=e.sourcePort||"",d=()=>er(n.flowCore.config,{source:s,sourcePort:a,target:"",targetPort:"",targetPosition:o});if(!i)return d();let l=n.flowCore.getNodeById(i);return l&&Xm(n.flowCore,e.source,e.sourcePort,i,r)?r&&l.measuredPorts?.find(c=>c.id===r)?er(n.flowCore.config,{source:s,sourcePort:a,target:i,targetPort:r,targetPosition:o}):er(n.flowCore.config,{source:s,sourcePort:a,target:i,targetPort:"",targetPosition:o}):d()},Bx=(n,e,t)=>e===n.target&&t===n.targetPort,$x=(n,e)=>M(null,null,function*(){let{position:t}=e,o=n.flowCore.actionStateManager.linking?.temporaryEdge;if(!n.flowCore.actionStateManager.linking||!o)return;let i=Fx(n,t,o);if(i.targetNodeId&&Bx(o,i.targetNodeId,i.targetPortId))return;let r=zx(n,o,i,t);n.flowCore.actionStateManager.linking=_(h({},n.flowCore.actionStateManager.linking),{temporaryEdge:r}),yield n.flowCore.applyUpdate({},"moveTemporaryEdge")}),Hx=(n,e)=>M(null,null,function*(){let{source:t,sourcePort:o}=e,i=n.flowCore.getNodeById(t);if(!i||o&&i.measuredPorts?.find(a=>a.id===o)?.type==="target")return;let r=o?Wm(i,o):i.position;if(!r)return;let s=er(n.flowCore.config,{source:t,sourcePort:o,sourcePosition:r,target:"",targetPosition:r});n.flowCore.actionStateManager.linking={temporaryEdge:s,sourceNodeId:t,sourcePortId:o??""},yield n.flowCore.applyUpdate({},"startLinking")}),Ux=(n,e)=>M(null,null,function*(){let{position:t}=e,o=er(n.flowCore.config,{source:"",sourcePosition:t,target:"",targetPosition:t});n.flowCore.actionStateManager.linking={sourceNodeId:"",sourcePortId:"",temporaryEdge:o},yield n.flowCore.applyUpdate({},"startLinkingFromPosition")}),jx=(o,i)=>M(null,[o,i],function*(n,{delta:e,nodes:t}){let r=new Set(t.map(l=>l.id)),s=t.filter(l=>!l.groupId||!r.has(l.groupId)),a=n.flowCore.actionStateManager?.dragging?.accumulatedDeltas,d=Vx(n,s,r,e,a);d.length!==0&&(yield n.flowCore.applyUpdate({nodesToUpdate:d},"moveNodesBy"))}),Vx=(n,e,t,o,i)=>{let r=[],s=new Set;return e.forEach(a=>{let{snappedPosition:d,actualDelta:l}=Wx(n,a,o,i);sn(a.position,d)||r.push({id:a.id,position:d}),s.add(a.id),Gx(n,a.id,l,t,s,r)}),r},Wx=(n,e,t,o)=>{let{snappedPosition:i,newAccumulated:r}=qx(n,e,t,o);return o&&o.set(e.id,r),{snappedPosition:i,actualDelta:{x:i.x-e.position.x,y:i.y-e.position.y}}},Gx=(n,e,t,o,i,r)=>{n.flowCore.modelLookup.getAllDescendants(e).forEach(s=>{if(o.has(s.id)&&!i.has(s.id)){let a={x:s.position.x+t.x,y:s.position.y+t.y};sn(s.position,a)||r.push({id:s.id,position:a}),i.add(s.id)}})},qx=(n,e,t,o)=>{let i=o?.get(e.id)??{x:0,y:0},r=i.x+t.x,s=i.y+t.y,a=Sa(n.flowCore.config,e,{x:e.position.x+r,y:e.position.y+s});return{snappedPosition:a,newAccumulated:{x:r-(a.x-e.position.x),y:s-(a.y-e.position.y)}}},Yx=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"moveNodesStart")}),Zx=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"moveNodesStop")}),Kx=(o,i)=>M(null,[o,i],function*(n,{x:e,y:t}){let{metadata:r}=n.flowCore.getState();(e||t)&&(n.flowCore.actionStateManager.isPanning()?n.flowCore.applyViewportOnlyUpdate({x:r.viewport.x+e,y:r.viewport.y+t}):yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(h({},r.viewport),{x:r.viewport.x+e,y:r.viewport.y+t})}},"moveViewport"))}),Xx=(n,e)=>M(null,null,function*(){let{x:t,y:o}=e,{metadata:i}=n.flowCore.getState();sn(i.viewport,{x:t,y:o})||(yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(h({},i.viewport),{x:t,y:o})}},"moveViewport"))}),Qx=(o,i)=>M(null,[o,i],function*(n,{groupId:e,nodeIds:t}){let r=t.map(a=>n.flowCore.modelLookup.getNodeById(a)).filter(Boolean);if(!n.flowCore.modelLookup.getNodeById(e))return;let s=[];for(let a of r)a.groupId===e&&s.push({id:a.id,groupId:void 0});s.length>0&&(yield n.flowCore.commandHandler.emit("updateNodes",{nodes:s}))}),Jx=n=>`[ngDiagram] Resize node failed: Node not found.
35
35
 
36
36
  Node ID: ${n}
37
37
 
38
38
  This may occur if the node was deleted before the resize command executed.
39
39
 
40
- Documentation: https://www.ngdiagram.dev/docs/guides/nodes/nodes/`,Wm=(n,e,t,o,i)=>{let r=n.resize.getMinNodeSize(e),s=Math.max(t.width,r.width),a=Math.max(t.height,r.height);if(!o)return{size:{width:s,height:a},position:o};let d=o.x,l=o.y;return s!==t.width&&o.x>i.x&&(d=o.x-(s-t.width)),a!==t.height&&o.y>i.y&&(l=o.y-(a-t.height)),{size:{width:s,height:a},position:{x:d,y:l}}},Bx=(n,e,t,o)=>{let i={left:e?.x??t.x,top:e?.y??t.y,right:(e?.x??t.x)+n.width,bottom:(e?.y??t.y)+n.height},r={left:Math.min(i.left,o.left),top:Math.min(i.top,o.top),right:Math.max(i.right,o.right),bottom:Math.max(i.bottom,o.bottom)};return{size:{width:r.right-r.left,height:r.bottom-r.top},position:{x:r.left,y:r.top}}},$x=(n,e)=>D(null,null,function*(){let t=n.flowCore.getNodeById(e.id);t?t.size||!e.size?e.size&&(_p(t.size,e.size)||io(t)&&!t.selected||(io(t)?yield Hx(n,e,t):yield Gm(n,e))):yield Ux(n,e):console.error(zx(e.id))}),Hx=(n,e,t)=>D(null,null,function*(){let o=n.flowCore.modelLookup.getNodeChildren(e.id,{directOnly:!1});if(o.length===0)return void(yield Gm(n,e));let i=A_(o,t,{useGroupRect:!1,allowResizeBelowChildrenBounds:n.flowCore.config.resize.allowResizeBelowChildrenBounds}),{size:r,position:s}=Wm(n.flowCore.config,t,e.size,e.position,t.position),{size:a,position:d}=Bx(r,s,t.position,i);yield qm(n,t,d,a,!0)}),Gm=(n,e)=>D(null,null,function*(){let t=n.flowCore.getNodeById(e.id);if(!t)return;let{size:o,position:i}=Wm(n.flowCore.config,t,e.size,e.position,t.position);yield qm(n,t,i,o,e.disableAutoSize)}),Ux=(n,e)=>D(null,null,function*(){n.flowCore.getNodeById(e.id)&&(yield n.emit("updateNode",{id:e.id,nodeChanges:{size:e.size}}))}),qm=(n,e,t,o,i)=>D(null,null,function*(){if(!n.flowCore.config.snapping.shouldSnapResizeForNode(e)){let r=g({id:e.id,size:o},i!==void 0&&{autoSize:!i});return t&&(r.position=t),yield n.flowCore.applyUpdate({nodesToUpdate:[r]},"resizeNode")}return yield jx(n,e,t,o,i)}),Vx=(n,e,t,o,i)=>{let r=n.size?.width??0,s=n.size?.height??0,a=t?.width??r,d=t?.height??s,l=e&&n.position.y!==e.y,c=a,u=d;return r!==a&&(c=o&&e&&n.position.x!==e.x?Math.round(n.position.x+r)-o.x:Qe.snapNumber(a,i.width)),s!==d&&(u=o&&l?Math.max(Math.round(n.position.y+s)-o.y,0):Qe.snapNumber(d,i.height)),{width:c,height:u}},jx=(n,e,t,o,i)=>D(null,null,function*(){let{computeSnapForNodeSize:r,defaultResizeSnap:s}=n.flowCore.config.snapping,a=r(e)??s,d=t&&Qe.snapPoint(t,a),{width:l,height:c}=Vx(e,t,o,d,a),u=g({id:e.id,size:{width:l,height:c}},i!==void 0&&{autoSize:!i});d&&(u.position=d),yield n.flowCore.applyUpdate({nodesToUpdate:[u]},"resizeNode")}),Wx=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"resizeNodeStart")}),Gx=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"resizeNodeStop")}),qx=[0,90,180,270];var Yx=n=>{let e=Qe.normalizeAngle(n);for(let t of qx){let o=Math.abs(e-t);if(Math.min(o,360-o)<=2)return t}return e},Zx=(o,i)=>D(null,[o,i],function*(n,{nodeId:e,angle:t}){let r=n.flowCore.getNodeById(e);if(!r)return;let s=r.angle??0;if(s===t)return;let{shouldSnapForNode:a,computeSnapAngleForNode:d,defaultSnapAngle:l}=n.flowCore.config.nodeRotation,c=Qe.normalizeAngle(t),u=c;if(a(r)){let w=d(r)??l;if(u=Qe.snapAngle(c,w),u===s)return}else if(u=Yx(u),u===s)return;yield n.flowCore.applyUpdate({nodesToUpdate:[{id:e,angle:u}]},"rotateNodeTo")}),Kx=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"rotateNodeStart")}),Xx=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"rotateNodeStop")}),_a=(n,e,t,o=!1)=>{let i=[],r=[],s=new Set(e),a=new Set(t);for(let d of n.nodesMap.values()){let l=s.has(d.id);!!d.selected===l||o&&d.selected||i.push({id:d.id,selected:l})}for(let d of n.edgesMap.values()){let l=a.has(d.id);!!d.selected===l||o&&d.selected||r.push({id:d.id,selected:l})}return{nodesToUpdate:i,edgesToUpdate:r}},xa=(o,i)=>D(null,[o,i],function*(n,{nodesToUpdate:e,edgesToUpdate:t}){e?.length===0&&t?.length===0||(n.flowCore.actionStateManager.selection={selectionChanged:!0},yield n.flowCore.applyUpdate({nodesToUpdate:e,edgesToUpdate:t},"changeSelection"))}),Qx=(i,r)=>D(null,[i,r],function*(n,{nodeIds:e,edgeIds:t,multiSelection:o=!1}){let{modelLookup:s}=n.flowCore,a=_a(s,e??[],t??[],o);yield xa(n,a)}),Jx=(o,i)=>D(null,[o,i],function*(n,{nodeIds:e,edgeIds:t}){let{modelLookup:r}=n.flowCore,s=new Set(e),a=new Set(t),d=[];for(let u of r.nodesMap.values())!s.has(u.id)&&u.selected&&d.push(u.id);let l=[];for(let u of r.edgesMap.values())!a.has(u.id)&&u.selected&&l.push(u.id);let c=_a(r,d,l);yield xa(n,c)}),e1=n=>D(null,null,function*(){let{modelLookup:e}=n.flowCore,t=_a(e,[],[]);yield xa(n,t)}),t1=n=>D(null,null,function*(){yield n.flowCore.applyUpdate({},"selectEnd")}),n1=n=>D(null,null,function*(){let{modelLookup:e}=n.flowCore,t=Array.from(e.nodesMap.keys()),o=Array.from(e.edgesMap.keys()),i=_a(e,t,o);yield xa(n,i)});function Sa(n){let e=new Map;for(let t of n.values())t.groupId!=null&&(e.has(t.groupId)||e.set(t.groupId,[]),e.get(t.groupId).push(t));return e}function Ym(n,e=!1){return[...n].sort((t,o)=>{if(!e){let i=t.selected?1:0,r=o.selected?1:0;if(i!==r)return i-r}return(t.zOrder??0)-(o.zOrder??0)})}function o1(n,e,t,o=!1){let i=[],r=new Set;function s(a){if(r.has(a)||(r.add(a),!e.get(a)))return;i.push(a);let d=t.get(a);if(d)for(let l of Ym(d,o))s(l.id)}for(let a of n)s(a);return i}function Zm(n,e,t,o,i){let r=[],s=new Map,a=i?.skipRoot?n.id:void 0;return Km(n,e,t,o,(d,l,c)=>{d.id!==a&&(r.push(_(g({},d),{computedZIndex:l})),s.set(d.id,c))},!1,i?.initialCumulativeElevation??0),{nodes:r,elevations:s}}function i1(n,e,t,o){let i=new Map;return Km(n,e,t,o,(r,s)=>{i.set(r.id,s)},!0),i}function Km(n,e,t,o,i,r=!1,s=0){let a=!r&&o?.elevateOnSelection?o.selectedZIndex:0,d=new Set;(function l(c,u,w){if(d.has(c.id))return;d.add(c.id);let S=c.groupId!=null?Math.max(c.zOrder??u,u):c.zOrder??u;if(c.selected&&a>0&&(w+=a),i(c,S+w,w),io(c)){let k=S;for(let W of Ym(e.get(c.id)||[],r))k+=1,l(W,k,w)}})(n,t,s)}function r1(n,e,t){let o=Array.from(n.values()).filter(a=>a.groupId==null),i=t??Sa(n),r=[],s=new Map;for(let a of o){let d=Zm(a,i,0,e);r.push(...d.nodes);for(let[l,c]of d.elevations)s.set(l,c)}return{nodes:r,elevations:s}}function s1(n,e,t){let o=Array.from(n.values()).filter(s=>s.groupId==null),i=e??Sa(n),r=new Map;for(let s of o)for(let[a,d]of i1(s,i,0,t))r.set(a,d);return r}function a1(n,e){let t=new Set(n),o=[...n];for(;o.length>0;)for(let i of e.get(o.pop())??[])t.has(i.id)||(t.add(i.id),o.push(i.id));return t}function d1(n,e){let t=new Set(n);return n.filter(o=>{let i=new Set,r=e.get(o)?.groupId;for(;r!=null&&!i.has(r);){if(t.has(r))return!1;i.add(r),r=e.get(r)?.groupId}return!0})}function l1(n,e){let t=[],o=new Set,i=e.get(n);for(;i?.groupId!=null&&!o.has(i.groupId);)o.add(i.groupId),t.push(i.groupId),i=e.get(i.groupId);return t}function c1(n,e,t,o,i){let r=0;for(let[s,a]of n)o.has(s)||(r=t?Math.max(r,a):Math.min(r,a));for(let s of e){if(i.has(s.id))continue;let a=s.zOrder??0;r=t?Math.max(r,a):Math.min(r,a)}return t?r+1:r-1}function u1(n,e,t){return t.nodeIds||t.edgeIds?{nodeIds:t.nodeIds??[],edgeIds:t.edgeIds??[]}:{nodeIds:n.filter(o=>o.selected).map(o=>o.id),edgeIds:e.filter(o=>o.selected).map(o=>o.id)}}var Xm=(n,e)=>D(null,null,function*(){let{nodes:t,edges:o}=n.flowCore.getState(),{nodeIds:i,edgeIds:r}=u1(t,o,e);if(i.length===0&&r.length===0)return;let s=new Map(t.map(W=>[W.id,W])),a=Sa(s),d=s1(s,a,n.flowCore.config.zIndex),l=d1(i,s),c=a1(l,a),u=new Set(r),w=e.name==="bringToFront",S=c1(d,o,w,c,u),k=[];if(w)for(let W of l){let Z=o1([W],s,a,!0),X=S;for(let he of Z)k.push({id:he,zOrder:X}),X+=1}else{let W=new Map;for(let Z of i){k.push({id:Z,zOrder:S});let X=l1(Z,s),he=S;for(let ke of X){he-=1;let le=W.get(ke);(le==null||he<le)&&W.set(ke,he)}}for(let[Z,X]of W)k.push({id:Z,zOrder:X})}yield n.flowCore.applyUpdate({nodesToUpdate:k,edgesToUpdate:r.map(W=>({id:W,zOrder:S}))},"changeZOrder")}),p1=(n,e)=>D(null,null,function*(){yield Xm(n,e)}),h1=(n,e)=>D(null,null,function*(){yield Xm(n,e)}),g1=n=>`[ngDiagram] Invalid zoom scale: ${n}
40
+ Documentation: https://www.ngdiagram.dev/docs/guides/nodes/nodes/`,Qm=(n,e,t,o,i)=>{let r=n.resize.getMinNodeSize(e),s=Math.max(t.width,r.width),a=Math.max(t.height,r.height);if(!o)return{size:{width:s,height:a},position:o};let d=o.x,l=o.y;return s!==t.width&&o.x>i.x&&(d=o.x-(s-t.width)),a!==t.height&&o.y>i.y&&(l=o.y-(a-t.height)),{size:{width:s,height:a},position:{x:d,y:l}}},e1=(n,e,t,o)=>{let i={left:e?.x??t.x,top:e?.y??t.y,right:(e?.x??t.x)+n.width,bottom:(e?.y??t.y)+n.height},r={left:Math.min(i.left,o.left),top:Math.min(i.top,o.top),right:Math.max(i.right,o.right),bottom:Math.max(i.bottom,o.bottom)};return{size:{width:r.right-r.left,height:r.bottom-r.top},position:{x:r.left,y:r.top}}},t1=(n,e)=>M(null,null,function*(){let t=n.flowCore.getNodeById(e.id);t?t.size||!e.size?e.size&&(Ip(t.size,e.size)||so(t)&&!t.selected||(so(t)?yield n1(n,e,t):yield Jm(n,e))):yield o1(n,e):console.error(Jx(e.id))}),n1=(n,e,t)=>M(null,null,function*(){let o=n.flowCore.modelLookup.getNodeChildren(e.id,{directOnly:!1});if(o.length===0)return void(yield Jm(n,e));let i=K_(o,t,{useGroupRect:!1,allowResizeBelowChildrenBounds:n.flowCore.config.resize.allowResizeBelowChildrenBounds}),{size:r,position:s}=Qm(n.flowCore.config,t,e.size,e.position,t.position),{size:a,position:d}=e1(r,s,t.position,i);yield e0(n,t,d,a,!0)}),Jm=(n,e)=>M(null,null,function*(){let t=n.flowCore.getNodeById(e.id);if(!t)return;let{size:o,position:i}=Qm(n.flowCore.config,t,e.size,e.position,t.position);yield e0(n,t,i,o,e.disableAutoSize)}),o1=(n,e)=>M(null,null,function*(){n.flowCore.getNodeById(e.id)&&(yield n.emit("updateNode",{id:e.id,nodeChanges:{size:e.size}}))}),e0=(n,e,t,o,i)=>M(null,null,function*(){if(!n.flowCore.config.snapping.shouldSnapResizeForNode(e)){let r=h({id:e.id,size:o},i!==void 0&&{autoSize:!i});return t&&(r.position=t),yield n.flowCore.applyUpdate({nodesToUpdate:[r]},"resizeNode")}return yield r1(n,e,t,o,i)}),i1=(n,e,t,o,i)=>{let r=n.size?.width??0,s=n.size?.height??0,a=t?.width??r,d=t?.height??s,l=e&&n.position.y!==e.y,c=a,u=d;return r!==a&&(c=o&&e&&n.position.x!==e.x?Math.round(n.position.x+r)-o.x:Qe.snapNumber(a,i.width)),s!==d&&(u=o&&l?Math.max(Math.round(n.position.y+s)-o.y,0):Qe.snapNumber(d,i.height)),{width:c,height:u}},r1=(n,e,t,o,i)=>M(null,null,function*(){let{computeSnapForNodeSize:r,defaultResizeSnap:s}=n.flowCore.config.snapping,a=r(e)??s,d=t&&Qe.snapPoint(t,a),{width:l,height:c}=i1(e,t,o,d,a),u=h({id:e.id,size:{width:l,height:c}},i!==void 0&&{autoSize:!i});d&&(u.position=d),yield n.flowCore.applyUpdate({nodesToUpdate:[u]},"resizeNode")}),s1=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"resizeNodeStart")}),a1=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"resizeNodeStop")}),d1=[0,90,180,270];var l1=n=>{let e=Qe.normalizeAngle(n);for(let t of d1){let o=Math.abs(e-t);if(Math.min(o,360-o)<=2)return t}return e},c1=(o,i)=>M(null,[o,i],function*(n,{nodeId:e,angle:t}){let r=n.flowCore.getNodeById(e);if(!r)return;let s=r.angle??0;if(s===t)return;let{shouldSnapForNode:a,computeSnapAngleForNode:d,defaultSnapAngle:l}=n.flowCore.config.nodeRotation,c=Qe.normalizeAngle(t),u=c;if(a(r)){let w=d(r)??l;if(u=Qe.snapAngle(c,w),u===s)return}else if(u=l1(u),u===s)return;yield n.flowCore.applyUpdate({nodesToUpdate:[{id:e,angle:u}]},"rotateNodeTo")}),u1=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"rotateNodeStart")}),p1=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"rotateNodeStop")}),Ea=(n,e,t,o=!1)=>{let i=[],r=[],s=new Set(e),a=new Set(t);for(let d of n.nodesMap.values()){let l=s.has(d.id);!!d.selected===l||o&&d.selected||i.push({id:d.id,selected:l})}for(let d of n.edgesMap.values()){let l=a.has(d.id);!!d.selected===l||o&&d.selected||r.push({id:d.id,selected:l})}return{nodesToUpdate:i,edgesToUpdate:r}},Pa=(o,i)=>M(null,[o,i],function*(n,{nodesToUpdate:e,edgesToUpdate:t}){e?.length===0&&t?.length===0||(n.flowCore.actionStateManager.selection={selectionChanged:!0},yield n.flowCore.applyUpdate({nodesToUpdate:e,edgesToUpdate:t},"changeSelection"))}),h1=(i,r)=>M(null,[i,r],function*(n,{nodeIds:e,edgeIds:t,multiSelection:o=!1}){let{modelLookup:s}=n.flowCore,a=Ea(s,e??[],t??[],o);yield Pa(n,a)}),g1=(o,i)=>M(null,[o,i],function*(n,{nodeIds:e,edgeIds:t}){let{modelLookup:r}=n.flowCore,s=new Set(e),a=new Set(t),d=[];for(let u of r.nodesMap.values())!s.has(u.id)&&u.selected&&d.push(u.id);let l=[];for(let u of r.edgesMap.values())!a.has(u.id)&&u.selected&&l.push(u.id);let c=Ea(r,d,l);yield Pa(n,c)}),f1=n=>M(null,null,function*(){let{modelLookup:e}=n.flowCore,t=Ea(e,[],[]);yield Pa(n,t)}),m1=n=>M(null,null,function*(){yield n.flowCore.applyUpdate({},"selectEnd")}),y1=n=>M(null,null,function*(){let{modelLookup:e}=n.flowCore,t=Array.from(e.nodesMap.keys()),o=Array.from(e.edgesMap.keys()),i=Ea(e,t,o);yield Pa(n,i)});function Ia(n){let e=new Map;for(let t of n.values())t.groupId!=null&&(e.has(t.groupId)||e.set(t.groupId,[]),e.get(t.groupId).push(t));return e}function t0(n,e=!1){return[...n].sort((t,o)=>{if(!e){let i=t.selected?1:0,r=o.selected?1:0;if(i!==r)return i-r}return(t.zOrder??0)-(o.zOrder??0)})}function v1(n,e,t,o=!1){let i=[],r=new Set;function s(a){if(r.has(a)||(r.add(a),!e.get(a)))return;i.push(a);let d=t.get(a);if(d)for(let l of t0(d,o))s(l.id)}for(let a of n)s(a);return i}function n0(n,e,t,o,i){let r=[],s=new Map,a=i?.skipRoot?n.id:void 0;return o0(n,e,t,o,(d,l,c)=>{d.id!==a&&(r.push(_(h({},d),{computedZIndex:l})),s.set(d.id,c))},!1,i?.initialCumulativeElevation??0),{nodes:r,elevations:s}}function b1(n,e,t,o){let i=new Map;return o0(n,e,t,o,(r,s)=>{i.set(r.id,s)},!0),i}function o0(n,e,t,o,i,r=!1,s=0){let a=!r&&o?.elevateOnSelection?o.selectedZIndex:0,d=new Set;(function l(c,u,w){if(d.has(c.id))return;d.add(c.id);let S=c.groupId!=null?Math.max(c.zOrder??u,u):c.zOrder??u;if(c.selected&&a>0&&(w+=a),i(c,S+w,w),so(c)){let k=S;for(let W of t0(e.get(c.id)||[],r))k+=1,l(W,k,w)}})(n,t,s)}function w1(n,e,t){let o=Array.from(n.values()).filter(a=>a.groupId==null),i=t??Ia(n),r=[],s=new Map;for(let a of o){let d=n0(a,i,0,e);r.push(...d.nodes);for(let[l,c]of d.elevations)s.set(l,c)}return{nodes:r,elevations:s}}function C1(n,e,t){let o=Array.from(n.values()).filter(s=>s.groupId==null),i=e??Ia(n),r=new Map;for(let s of o)for(let[a,d]of b1(s,i,0,t))r.set(a,d);return r}function _1(n,e){let t=new Set(n),o=[...n];for(;o.length>0;)for(let i of e.get(o.pop())??[])t.has(i.id)||(t.add(i.id),o.push(i.id));return t}function x1(n,e){let t=new Set(n);return n.filter(o=>{let i=new Set,r=e.get(o)?.groupId;for(;r!=null&&!i.has(r);){if(t.has(r))return!1;i.add(r),r=e.get(r)?.groupId}return!0})}function S1(n,e){let t=[],o=new Set,i=e.get(n);for(;i?.groupId!=null&&!o.has(i.groupId);)o.add(i.groupId),t.push(i.groupId),i=e.get(i.groupId);return t}function E1(n,e,t,o,i){let r=0;for(let[s,a]of n)o.has(s)||(r=t?Math.max(r,a):Math.min(r,a));for(let s of e){if(i.has(s.id))continue;let a=s.zOrder??0;r=t?Math.max(r,a):Math.min(r,a)}return t?r+1:r-1}function P1(n,e,t){return t.nodeIds||t.edgeIds?{nodeIds:t.nodeIds??[],edgeIds:t.edgeIds??[]}:{nodeIds:n.filter(o=>o.selected).map(o=>o.id),edgeIds:e.filter(o=>o.selected).map(o=>o.id)}}var i0=(n,e)=>M(null,null,function*(){let{nodes:t,edges:o}=n.flowCore.getState(),{nodeIds:i,edgeIds:r}=P1(t,o,e);if(i.length===0&&r.length===0)return;let s=new Map(t.map(W=>[W.id,W])),a=Ia(s),d=C1(s,a,n.flowCore.config.zIndex),l=x1(i,s),c=_1(l,a),u=new Set(r),w=e.name==="bringToFront",S=E1(d,o,w,c,u),k=[];if(w)for(let W of l){let Z=v1([W],s,a,!0),K=S;for(let te of Z)k.push({id:te,zOrder:K}),K+=1}else{let W=new Map;for(let Z of i){k.push({id:Z,zOrder:S});let K=S1(Z,s),te=S;for(let Ee of K){te-=1;let de=W.get(Ee);(de==null||te<de)&&W.set(Ee,te)}}for(let[Z,K]of W)k.push({id:Z,zOrder:K})}yield n.flowCore.applyUpdate({nodesToUpdate:k,edgesToUpdate:r.map(W=>({id:W,zOrder:S}))},"changeZOrder")}),I1=(n,e)=>M(null,null,function*(){yield i0(n,e)}),D1=(n,e)=>M(null,null,function*(){yield i0(n,e)}),T1=n=>`[ngDiagram] Invalid zoom scale: ${n}
41
41
 
42
42
  Scale must be a positive finite number.
43
43
 
44
- Documentation: https://www.ngdiagram.dev/docs/intro/coordinate-system/#viewport-and-scaling`,f1=(i,r)=>D(null,[i,r],function*(n,{x:e,y:t,scale:o}){let{metadata:s}=n.flowCore.getState();if(o<=0||!isFinite(o)||isNaN(o))return void console.error(g1(o));let{min:a,max:d}=n.flowCore.config.zoom;o<a||o>d?console.warn(`Zoom scale ${o} is out of bounds [${a}, ${d}]`):e===s.viewport.x&&t===s.viewport.y&&o===s.viewport.scale||(yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(g({},s.viewport),{x:e,y:t,scale:o})}},"zoom"))}),m1=n=>`[ngDiagram] Invalid scale calculated in zoom-to-fit: ${n}
44
+ Documentation: https://www.ngdiagram.dev/docs/intro/coordinate-system/#viewport-and-scaling`,M1=(i,r)=>M(null,[i,r],function*(n,{x:e,y:t,scale:o}){let{metadata:s}=n.flowCore.getState();if(o<=0||!isFinite(o)||isNaN(o))return void console.error(T1(o));let{min:a,max:d}=n.flowCore.config.zoom;o<a||o>d?console.warn(`Zoom scale ${o} is out of bounds [${a}, ${d}]`):e===s.viewport.x&&t===s.viewport.y&&o===s.viewport.scale||(yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(h({},s.viewport),{x:e,y:t,scale:o})}},"zoom"))}),k1=n=>`[ngDiagram] Invalid scale calculated in zoom-to-fit: ${n}
45
45
 
46
46
  Scale must be a positive finite number.
47
47
 
48
- Documentation: https://www.ngdiagram.dev/docs/intro/coordinate-system/#viewport-and-scaling`,y1=`[ngDiagram] zoomToFit is disabled when virtualization is enabled.
48
+ Documentation: https://www.ngdiagram.dev/docs/intro/coordinate-system/#viewport-and-scaling`,R1=`[ngDiagram] zoomToFit is disabled when virtualization is enabled.
49
49
 
50
50
  When virtualization is active, only visible nodes and edges are rendered for performance reasons.
51
51
  Zoom to fit requires all elements to be available for calculating bounds, which conflicts with virtualization.
52
52
 
53
53
  To use zoomToFit, disable virtualization in your config:
54
- virtualization: { enabled: false }`,v1=(n,e)=>{if(typeof n=="number")return{top:n,right:n,bottom:n,left:n};switch(n.length){case 2:return{top:n[0],right:n[1],bottom:n[0],left:n[1]};case 3:return{top:n[0],right:n[1],bottom:n[2],left:n[1]};case 4:return{top:n[0],right:n[1],bottom:n[2],left:n[3]};default:return{top:e,right:e,bottom:e,left:e}}},b1=(n,e,t,o)=>({targetNodes:t?.length?n.filter(i=>t.includes(i.id)):n,targetEdges:o?.length?e.filter(i=>o.includes(i.id)):e}),w1=(n,e,t,o,i,r)=>{let s=Math.min(t/n,o/e);return Math.max(i,Math.min(r,s))},C1=(n,e,t,o)=>({x:e.width/2-(n.x+n.width/2)*o+(t.left-t.right)/2,y:e.height/2-(n.y+n.height/2)*o+(t.top-t.bottom)/2}),_1=n=>!!n.width&&!!n.height&&n.width>0&&n.height>0,x1=(i,r)=>D(null,[i,r],function*(n,{nodeIds:e,edgeIds:t,padding:o}){if(n.flowCore.isVirtualizationActive)return void console.warn(y1);let{nodes:s,edges:a,metadata:d}=n.flowCore.getState(),{viewport:l}=d;if(!_1(l))return;let c=l.width,u=l.height,w=n.flowCore.config.zoom.zoomToFit.padding,S=o??w,{targetNodes:k,targetEdges:W}=b1(s,a,e,t),Z=Sp(k,W);if(!Z)return;let X=Array.isArray(w)?w[0]:w,he=v1(S,X),ke=c-he.left-he.right,le=u-he.top-he.bottom;if(ke<=0||le<=0)return;let{min:Le,max:Me}=n.flowCore.config.zoom,nt=w1(Z.width,Z.height,ke,le,Le,Me);if(nt<=0||!isFinite(nt)||isNaN(nt))return void console.error(m1(nt));let{x:cn,y:yi}=C1(Z,{width:c,height:u},he,nt);l.x===cn&&l.y===yi&&l.scale===nt||(yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(g({},l),{x:cn,y:yi,scale:nt})}},"zoomToFit"))}),S1={init:yx,select:Qx,selectAll:n1,selectEnd:t1,deselect:Jx,deselectAll:e1,moveNodesBy:Dx,moveNodesStart:Nx,moveNodesStop:Ox,deleteSelection:Um,addNodes:H_,updateNode:V_,updateNodes:j_,deleteNodes:W_,clearModel:G_,addEdges:q_,updateEdge:Y_,updateEdges:Z_,deleteEdges:K_,copy:Hm,cut:gx,paste:px,moveViewport:Lx,moveViewportBy:Ax,startLinking:Px,moveTemporaryEdge:Ex,finishLinking:wx,finishLinkingToPosition:Cx,startLinkingFromPosition:Ix,resizeNode:$x,resizeNodeStart:Wx,resizeNodeStop:Gx,zoom:f1,addPortsBulk:X_,updatePortsBulk:Q_,deletePortsBulk:J_,bringToFront:p1,sendToBack:h1,addEdgeLabelsBulk:ex,updateEdgeLabelsBulk:tx,deleteEdgeLabelsBulk:nx,rotateNodeTo:Zx,rotateNodeStart:Kx,rotateNodeStop:Xx,highlightGroup:fx,highlightGroupClear:mx,addToGroup:P_,removeFromGroup:Fx,paletteDropNode:U_,centerOnNode:ix,centerOnRect:ox,zoomToFit:x1},pc=class{callbacks={};flowCore;constructor(e){this.flowCore=e,Object.entries(S1).forEach(([t,o])=>{this.register(t,i=>{o(this,i)})})}emit(e,...t){return D(this,null,function*(){return yield this.emitInternal(e,!1,...t)})}emitInternal(e,t,...o){return D(this,null,function*(){if(!t&&this.flowCore.transactionManager.isActive()){let r=this.flowCore.transactionManager.getCurrentTransaction();if(r&&!r.isAborted())return r.context.emit(e,...o)}let i=this.callbacks[e];if(i){let r=g({name:e},o[0]);yield Promise.all(i.map(s=>s(r)))}})}register(e,t){return this.getCommandCallbacks(e).push(t),()=>{let o=this.getCommandCallbacks(e).filter(i=>i!==t);this.callbacks[e]=o}}getCommandCallbacks(e){return this.callbacks[e]||=[]}},E1=[{actionName:"copy",bindings:[{key:"c",modifiers:{primary:!0}}]},{actionName:"cut",bindings:[{key:"x",modifiers:{primary:!0}}]},{actionName:"paste",bindings:[{key:"v",modifiers:{primary:!0}}]},{actionName:"deleteSelection",bindings:[{key:"Delete"},{key:"Backspace"}]},{actionName:"keyboardMoveSelectionUp",bindings:[{key:"ArrowUp"}]},{actionName:"keyboardMoveSelectionDown",bindings:[{key:"ArrowDown"}]},{actionName:"keyboardMoveSelectionLeft",bindings:[{key:"ArrowLeft"}]},{actionName:"keyboardMoveSelectionRight",bindings:[{key:"ArrowRight"}]},{actionName:"keyboardPanUp",bindings:[{key:"ArrowUp"}]},{actionName:"keyboardPanDown",bindings:[{key:"ArrowDown"}]},{actionName:"keyboardPanLeft",bindings:[{key:"ArrowLeft"}]},{actionName:"keyboardPanRight",bindings:[{key:"ArrowRight"}]},{actionName:"boxSelection",bindings:[{modifiers:{shift:!0}}]},{actionName:"multiSelection",bindings:[{modifiers:{primary:!0}}]},{actionName:"selectAll",bindings:[{key:"a",modifiers:{primary:!0}}]},{actionName:"undo",bindings:[{key:"z",modifiers:{primary:!0}}]},{actionName:"redo",bindings:[{key:"y",modifiers:{primary:!0}}]},{actionName:"zoom",bindings:[{modifiers:{primary:!0}}]},{actionName:"keyboardZoomIn",bindings:[{key:"="}]},{actionName:"keyboardZoomOut",bindings:[{key:"-"}]}];var hc=class{flowCore;constructor(e){this.flowCore=e}match(e){let{shortcuts:t}=this.flowCore.config,o=[];for(let i of t)for(let r of i.bindings)if(this.matchBinding(e,r)){o.push(i);break}return o}matchesAction(e,t){let{shortcuts:o}=this.flowCore.config,i=o.find(r=>r.actionName===e);return!!i&&i.bindings.some(r=>this.matchBinding(t,r))}matchBinding(e,t){return!(t.key!==void 0&&!this.keysMatch(e.key,t.key))&&(t.key!==void 0||e.key===void 0)&&this.matchModifiers(e.modifiers,t)}matchModifiers(e,t){return e.primary===(t.modifiers?.primary??!1)&&e.shift===(t.modifiers?.shift??!1)&&e.secondary===(t.modifiers?.secondary??!1)&&(t.modifiers?.meta===void 0||e.meta===t.modifiers.meta)}keysMatch(e,t){return e!==void 0&&(e.length===1&&t.length===1?e.toLowerCase()===t.toLowerCase():e===t)}},gc={width:20,height:20},P1={getMinNodeSize:()=>g({},gc),allowResizeBelowChildrenBounds:!0,defaultResizable:!0},I1={portSnapDistance:10,edgePanningEnabled:!0,edgePanningForce:10,edgePanningThreshold:30,selectNodeOnPortPress:!0,validateConnection:()=>!0,temporaryEdgeDataBuilder:n=>g({},n),finalEdgeDataBuilder:n=>g({},n)},D1={canGroup:()=>!0},M1={padding:50,onInit:!1},T1={min:.01,max:10,step:.03,zoomToFit:M1},k1={dotSpacing:30,cellSize:{width:10,height:10},majorLinesFrequency:{x:5,y:5}},R1={shouldSnapForNode:()=>!1,computeSnapAngleForNode:()=>null,defaultSnapAngle:30,defaultRotatable:!0},N1={shouldSnapDragForNode:()=>!1,shouldSnapResizeForNode:()=>!1,computeSnapForNodeDrag:()=>null,computeSnapForNodeSize:()=>null,defaultDragSnap:{width:10,height:10},defaultResizeSnap:{width:10,height:10}},O1={edgePanningForce:10,edgePanningThreshold:30,edgePanningEnabled:!0},A1={enabled:!0,selectedZIndex:1e4,temporaryEdgeZIndex:2147483647,edgesAboveConnectedNodes:!1,elevateOnSelection:!0},L1={defaultRouting:"orthogonal",bezier:{bezierControlOffset:100},orthogonal:{maxCornerRadius:15,firstLastSegmentLength:20}},F1={partialInclusion:!0,realtime:!0},z1={enabled:!1,padding:.5,idleDelay:100},B1=(n,e)=>Cp({computeNodeId:()=>e.environment.generateId(),computeEdgeId:()=>e.environment.generateId(),resize:P1,linking:I1,grouping:D1,zoom:T1,background:k1,nodeRotation:R1,snapping:N1,selectionMoving:O1,edgeRouting:L1,zIndex:A1,boxSelection:F1,virtualization:z1,shortcuts:E1,debugMode:!1,viewportPanningEnabled:!0,nodeDraggingEnabled:!0},n),qs=class{getMeasuredIds;pendingAdds=new Map;pendingUpdates=new Map;pendingDeletes=new Map;flushScheduled=!1;constructor(e){this.getMeasuredIds=e}processAdd(e,t,o){this.getOrCreate(this.pendingAdds,e,o).items.push(t),this.scheduleFlush()}processUpdate(e,t,o){this.getOrCreate(this.pendingUpdates,e,o).items.push(t),this.scheduleFlush()}processDelete(e,t,o){this.getOrCreate(this.pendingDeletes,e,o).items.push(t),this.scheduleFlush()}scheduleFlush(){this.flushScheduled||(this.flushScheduled=!0,queueMicrotask(()=>{this.flush()}))}flush(){return D(this,null,function*(){this.cancelMatchingIntents(),this.filterAlreadyMeasuredAdds();let e=this.takeAll(this.pendingAdds),t=this.takeAll(this.pendingUpdates),o=this.takeAll(this.pendingDeletes);this.flushScheduled=!1,yield this.invokeCallbacks(e),yield this.invokeCallbacks(t),yield this.invokeCallbacks(o)})}invokeCallbacks(e){return D(this,null,function*(){if(e.size===0)return;let t=new Map;for(let[o,{items:i,onFlush:r}]of e){let s=t.get(r);s||(s=new Map,t.set(r,s)),s.set(o,i)}for(let[o,i]of t)yield o(i)})}cancelMatchingIntents(){for(let[e,t]of this.pendingDeletes){let o=this.pendingAdds.get(e);if(!o)continue;let i=new Set(t.items),r=o.items.filter(s=>!i.has(s.id)||(i.delete(s.id),!1));r.length!==o.items.length&&(r.length===0?this.pendingAdds.delete(e):o.items=r,i.size===0?this.pendingDeletes.delete(e):t.items=[...i])}}filterAlreadyMeasuredAdds(){if(this.getMeasuredIds)for(let[e,t]of this.pendingAdds){let o=this.getMeasuredIds(e);if(o.size===0)continue;let i=t.items.filter(r=>!o.has(r.id));i.length!==t.items.length&&(i.length===0?this.pendingAdds.delete(e):t.items=i)}}getOrCreate(e,t,o){let i=e.get(t);return i||(i={items:[],onFlush:o},e.set(t,i)),i}takeAll(e){let t=new Map(e);return e.clear(),t}},fc=class extends qs{constructor(e){super(t=>{let o=e(t)?.measuredLabels??[],i=new Set;for(let r of o)vt(r.size)&&i.add(r.id);return i})}};var mc=class{phase="idle";participantIds=new Set;pendingConfig=null;discoveryWindow={timeoutId:null,expiresAt:0,durationMs:70};debounce={timeoutId:null,expiresAt:0,durationMs:50};settlementPromise=null;settlementResolve=null;requestTracking(e){this.pendingConfig=e??{}}isTrackingRequested(){return this.pendingConfig!==null}registerParticipants(e){let t=this.pendingConfig;if(this.pendingConfig=null,e.length!==0){t&&(this.discoveryWindow.durationMs=t.discoveryWindowMs??70,this.debounce.durationMs=t.debounceMs??50);for(let o of e)this.participantIds.add(o);this.phase="discoveryWindow",this.startTimer(this.discoveryWindow)}}signalObserverActivity(e){if(this.phase==="idle"||!this.participantIds.has(e))return;let t=this.activeTimer();this.remainingTime(t)<40&&this.startTimer(t)}signalMeasurement(e){this.phase!=="idle"&&this.participantIds.has(e)&&(this.phase==="discoveryWindow"&&this.clearTimer(this.discoveryWindow),this.phase="debounce",this.startTimer(this.debounce))}waitForMeasurements(){return this.hasPendingMeasurements()?(this.settlementPromise||(this.settlementPromise=new Promise(e=>{this.settlementResolve=e})),this.settlementPromise):Promise.resolve()}hasPendingMeasurements(){return this.phase!=="idle"}activeTimer(){return this.phase==="discoveryWindow"?this.discoveryWindow:this.debounce}remainingTime(e){return e.expiresAt-Date.now()}startTimer(e){this.clearTimer(e),e.expiresAt=Date.now()+e.durationMs,e.timeoutId=setTimeout(()=>{this.resolve()},e.durationMs)}clearTimer(e){e.timeoutId&&(clearTimeout(e.timeoutId),e.timeoutId=null)}resolve(){this.phase="idle",this.participantIds.clear(),this.clearTimer(this.discoveryWindow),this.clearTimer(this.debounce),this.settlementResolve&&(this.settlementResolve(),this.settlementResolve=null,this.settlementPromise=null)}},yc=class{flowCore;middlewareChain;history=[];initialState;initialStateUpdate;modelActionTypes;metadata;edgesMap=new Map;nodesMap=new Map;initialNodesMap=new Map;initialEdgesMap=new Map;initialConnectedEdgesMap=new Map;addedNodesIds=new Set;removedNodesIds=new Set;addedEdgesIds=new Set;removedEdgesIds=new Set;updatedPropsToNodeIds=new Map;updatedPropsToEdgeIds=new Map;updatedNodeIdsToProps=new Map;updatedEdgeIdsToProps=new Map;constructor(e,t){this.flowCore=e,this.middlewareChain=t}run(e,t,o){return D(this,null,function*(){return this.initialState=e,this.modelActionTypes=o,this.metadata=e.metadata,this.isMetadataOnlyUpdate(t)?(this.nodesMap=this.flowCore.modelLookup.nodesMap,this.edgesMap=this.flowCore.modelLookup.edgesMap,this.initialNodesMap=this.nodesMap,this.initialEdgesMap=this.edgesMap):(this.nodesMap=new Map(this.flowCore.modelLookup.nodesMap),this.edgesMap=new Map(this.flowCore.modelLookup.edgesMap),this.initialNodesMap=new Map(this.flowCore.modelLookup.nodesMap),this.initialEdgesMap=new Map(this.flowCore.modelLookup.edgesMap)),this.initialConnectedEdgesMap=this.flowCore.modelLookup.connectedEdgesMap,this.initialStateUpdate=t,this.applyStateUpdate(t),yield this.resolveMiddlewares()})}isMetadataOnlyUpdate(e){return!(e.nodesToAdd?.length||e.nodesToUpdate?.length||e.nodesToRemove?.length||e.edgesToAdd?.length||e.edgesToUpdate?.length||e.edgesToRemove?.length||!e.metadataUpdate)}helpers=()=>({checkIfNodeChanged:e=>this.updatedNodeIdsToProps.has(e),checkIfEdgeChanged:e=>this.updatedEdgeIdsToProps.has(e),checkIfNodeAdded:e=>this.addedNodesIds.has(e),checkIfNodeRemoved:e=>this.removedNodesIds.has(e),checkIfEdgeAdded:e=>this.addedEdgesIds.has(e),checkIfEdgeRemoved:e=>this.removedEdgesIds.has(e),checkIfAnyNodePropsChanged:e=>e.some(t=>this.updatedPropsToNodeIds.has(t)),checkIfAnyEdgePropsChanged:e=>e.some(t=>this.updatedPropsToEdgeIds.has(t)),anyNodesAdded:()=>this.addedNodesIds.size>0,anyEdgesAdded:()=>this.addedEdgesIds.size>0,anyNodesRemoved:()=>this.removedNodesIds.size>0,anyEdgesRemoved:()=>this.removedEdgesIds.size>0,getAffectedNodeIds:e=>e.flatMap(t=>[...this.updatedPropsToNodeIds.get(t)??[]]),getAffectedEdgeIds:e=>e.flatMap(t=>[...this.updatedPropsToEdgeIds.get(t)??[]]),getChangedNodeIds:()=>[...this.updatedNodeIdsToProps.keys()],getChangedEdgeIds:()=>[...this.updatedEdgeIdsToProps.keys()],getAddedNodes:()=>Array.from(this.addedNodesIds).map(e=>this.nodesMap.get(e)).filter(e=>e!==void 0),getAddedEdges:()=>Array.from(this.addedEdgesIds).map(e=>this.edgesMap.get(e)).filter(e=>e!==void 0),getRemovedNodes:()=>Array.from(this.removedNodesIds).map(e=>this.initialNodesMap.get(e)).filter(e=>e!==void 0),getRemovedEdges:()=>Array.from(this.removedEdgesIds).map(e=>this.initialEdgesMap.get(e)).filter(e=>e!==void 0)});getState=()=>({nodes:Array.from(this.nodesMap.values()),edges:Array.from(this.edgesMap.values()),metadata:this.metadata});getContext=()=>({state:this.getState(),nodesMap:this.nodesMap,edgesMap:this.edgesMap,initialNodesMap:this.initialNodesMap,initialEdgesMap:this.initialEdgesMap,initialConnectedEdgesMap:this.initialConnectedEdgesMap,initialState:this.initialState,modelActionType:this.modelActionTypes[0],modelActionTypes:this.modelActionTypes,actionStateManager:this.flowCore.actionStateManager,edgeRoutingManager:this.flowCore.edgeRoutingManager,helpers:this.helpers(),history:this.history,initialUpdate:this.initialStateUpdate,config:this.flowCore.config,environment:this.flowCore.environment});resolveMiddlewares=()=>new Promise(e=>{let t=[],o=new Set,i=r=>new Promise(s=>{let a=this.middlewareChain[r];if(!a){let c=this.getState();for(e(c);t.length>0;)t.pop()?.(c);return}let d=a.name;if(o.has(r))throw new Error(`Middleware ${d} executed next() multiple times`);o.add(r),t.push(s);let l=this.getContext();a.execute(l,c=>D(this,null,function*(){return c&&Object.keys(c).length>0&&this.applyStateUpdate(c,d),yield i(r+1)}),()=>{for(;t.length>0;)t.pop()?.(this.initialState);e(void 0)})});i(0)});applyStateUpdate=(e,t)=>{t&&this.history.push({name:t,stateUpdate:e}),e.nodesToAdd?.forEach(o=>this.addNode(o)),e.edgesToAdd?.forEach(o=>this.addEdge(o)),e.edgesToRemove?.forEach(o=>this.removeEdge(o)),e.nodesToRemove?.forEach(o=>this.removeNode(o)),e.nodesToUpdate?.forEach(o=>this.updateNode(o)),e.edgesToUpdate?.forEach(o=>this.updateEdge(o)),e.metadataUpdate&&(this.metadata=g(g({},this.metadata),e.metadataUpdate))};removeNode=e=>{this.nodesMap.delete(e),this.removedNodesIds.add(e),this.addedNodesIds.delete(e)};removeEdge=e=>{this.edgesMap.delete(e),this.removedEdgesIds.add(e),this.addedEdgesIds.delete(e)};addEdge=e=>{this.edgesMap.set(e.id,e),this.addedEdgesIds.add(e.id),this.removedEdgesIds.delete(e.id)};addNode=e=>{this.nodesMap.set(e.id,e),this.addedNodesIds.add(e.id),this.removedNodesIds.delete(e.id)};updateNode=o=>{var i=o,{id:e}=i,t=un(i,["id"]);let r={},s=this.nodesMap.get(e);s&&(Object.entries(t).forEach(([a,d])=>{a==="position"?on(s.position,d)||(r.position=d,this.updateNodeProp(e,"position")):a==="size"?_p(s.size,d)||(r.size=d,this.updateNodeProp(e,"size")):s[a]!==d&&(r[a]=d,this.updateNodeProp(e,a))}),Object.keys(r).length>0&&this.nodesMap.set(e,g(g({},s),r)))};updateNodeProp=(e,t)=>{this.updatedPropsToNodeIds.has(t)||this.updatedPropsToNodeIds.set(t,new Set([])),this.updatedPropsToNodeIds.get(t).add(e),this.updatedNodeIdsToProps.has(e)||this.updatedNodeIdsToProps.set(e,new Set([])),this.updatedNodeIdsToProps.get(e).add(t)};updateEdge=o=>{var i=o,{id:e}=i,t=un(i,["id"]);let r={},s=this.edgesMap.get(e);s&&(Object.entries(t).forEach(([a,d])=>{a==="targetPosition"?on(s.targetPosition,d)||(r.targetPosition=d,this.updateEdgeProp(e,"targetPosition")):a==="sourcePosition"?on(s.sourcePosition,d)||(r.sourcePosition=d,this.updateEdgeProp(e,"sourcePosition")):s[a]!==d&&(r[a]=d,this.updateEdgeProp(e,a))}),Object.keys(r).length>0&&this.edgesMap.set(e,g(g({},s),r)))};updateEdgeProp=(e,t)=>{this.updatedPropsToEdgeIds.has(t)||this.updatedPropsToEdgeIds.set(t,new Set([])),this.updatedPropsToEdgeIds.get(t).add(e),this.updatedEdgeIdsToProps.has(e)||this.updatedEdgeIdsToProps.set(e,new Set([])),this.updatedEdgeIdsToProps.get(e).add(t)}},$1=(n,e)=>{if(!n.target&&n.targetPosition){let t=e.get(n.source);return{targetSide:fm(t,n.sourcePort,n.targetPosition)}}if(!n.source&&n.sourcePosition&&n.targetPosition){let t=e.get(n.target);return{sourceSide:fm(t,n.targetPort,n.sourcePosition)}}return{}},H1=(n,e)=>{let t=n.temporary?$1(n,e):{},o=t.sourceSide??"right",i=t.targetSide??"left",r=e.get(n.source),s=e.get(n.target),a=bm(r,n.sourcePort,n.sourcePosition),d=bm(s,n.targetPort,n.targetPosition),l=wm(e,n.source,o,n.sourcePort,n.sourcePosition,d),c=wm(e,n.target,i,n.targetPort,n.targetPosition,a);return{source:vm(l)?l:void 0,target:vm(c)?c:void 0}},vm=n=>!!n&&n.x!==void 0&&n.y!==void 0&&!!n.side,bm=(n,e,t)=>{if(!n)return t||{x:0,y:0};if(e){let o=Bm(n,e);if(o)return{x:o.x,y:o.y}}return{x:n.position.x+(n.size?.width||0)/2,y:n.position.y+(n.size?.height||0)/2}},U1=(n,e,t,o,i)=>n?t?Bm(n,t)||_(g({},o),{side:e}):k_(n,i||o||{x:0,y:0}):_(g({},o),{side:e}),wm=(n,e,t,o,i,r)=>{let s=n.get(e);return s?U1(s,t,o,i,r):_(g({},i),{side:t})},V1=(n,e,t,o,i)=>`[ngDiagram] Invalid edge coordinates detected for edge '${n}'.
54
+ virtualization: { enabled: false }`,N1=(n,e)=>{if(typeof n=="number")return{top:n,right:n,bottom:n,left:n};switch(n.length){case 2:return{top:n[0],right:n[1],bottom:n[0],left:n[1]};case 3:return{top:n[0],right:n[1],bottom:n[2],left:n[1]};case 4:return{top:n[0],right:n[1],bottom:n[2],left:n[3]};default:return{top:e,right:e,bottom:e,left:e}}},O1=(n,e,t,o)=>({targetNodes:t?.length?n.filter(i=>t.includes(i.id)):n,targetEdges:o?.length?e.filter(i=>o.includes(i.id)):e}),A1=(n,e,t,o,i,r)=>{let s=Math.min(t/n,o/e);return Math.max(i,Math.min(r,s))},L1=(n,e,t,o)=>({x:e.width/2-(n.x+n.width/2)*o+(t.left-t.right)/2,y:e.height/2-(n.y+n.height/2)*o+(t.top-t.bottom)/2}),F1=n=>!!n.width&&!!n.height&&n.width>0&&n.height>0,z1=(i,r)=>M(null,[i,r],function*(n,{nodeIds:e,edgeIds:t,padding:o}){if(n.flowCore.isVirtualizationActive)return void console.warn(R1);let{nodes:s,edges:a,metadata:d}=n.flowCore.getState(),{viewport:l}=d;if(!F1(l))return;let c=l.width,u=l.height,w=n.flowCore.config.zoom.zoomToFit.padding,S=o??w,{targetNodes:k,targetEdges:W}=O1(s,a,e,t),Z=Tp(k,W);if(!Z)return;let K=Array.isArray(w)?w[0]:w,te=N1(S,K),Ee=c-te.left-te.right,de=u-te.top-te.bottom;if(Ee<=0||de<=0)return;let{min:Le,max:Me}=n.flowCore.config.zoom,nt=A1(Z.width,Z.height,Ee,de,Le,Me);if(nt<=0||!isFinite(nt)||isNaN(nt))return void console.error(k1(nt));let{x:pn,y:yi}=L1(Z,{width:c,height:u},te,nt);l.x===pn&&l.y===yi&&l.scale===nt||(yield n.flowCore.applyUpdate({metadataUpdate:{viewport:_(h({},l),{x:pn,y:yi,scale:nt})}},"zoomToFit"))}),B1={init:Rx,select:h1,selectAll:y1,selectEnd:m1,deselect:g1,deselectAll:f1,moveNodesBy:jx,moveNodesStart:Yx,moveNodesStop:Zx,deleteSelection:Zm,addNodes:nx,updateNode:ix,updateNodes:rx,deleteNodes:sx,clearModel:ax,addEdges:dx,updateEdge:lx,updateEdges:cx,deleteEdges:ux,copy:Ym,cut:Tx,paste:Ix,moveViewport:Xx,moveViewportBy:Kx,startLinking:Hx,moveTemporaryEdge:$x,finishLinking:Ax,finishLinkingToPosition:Lx,startLinkingFromPosition:Ux,resizeNode:t1,resizeNodeStart:s1,resizeNodeStop:a1,zoom:M1,addPortsBulk:px,updatePortsBulk:hx,deletePortsBulk:gx,bringToFront:I1,sendToBack:D1,addEdgeLabelsBulk:fx,updateEdgeLabelsBulk:mx,deleteEdgeLabelsBulk:yx,rotateNodeTo:c1,rotateNodeStart:u1,rotateNodeStop:p1,highlightGroup:Mx,highlightGroupClear:kx,addToGroup:H_,removeFromGroup:Qx,paletteDropNode:ox,centerOnNode:bx,centerOnRect:vx,zoomToFit:z1},yc=class{callbacks={};flowCore;constructor(e){this.flowCore=e,Object.entries(B1).forEach(([t,o])=>{this.register(t,i=>{o(this,i)})})}emit(e,...t){return M(this,null,function*(){return yield this.emitInternal(e,!1,...t)})}emitInternal(e,t,...o){return M(this,null,function*(){if(!t&&this.flowCore.transactionManager.isActive()){let r=this.flowCore.transactionManager.getCurrentTransaction();if(r&&!r.isAborted())return r.context.emit(e,...o)}let i=this.callbacks[e];if(i){let r=h({name:e},o[0]);yield Promise.all(i.map(s=>s(r)))}})}register(e,t){return this.getCommandCallbacks(e).push(t),()=>{let o=this.getCommandCallbacks(e).filter(i=>i!==t);this.callbacks[e]=o}}getCommandCallbacks(e){return this.callbacks[e]||=[]}},$1=[{actionName:"copy",bindings:[{key:"c",modifiers:{primary:!0}}]},{actionName:"cut",bindings:[{key:"x",modifiers:{primary:!0}}]},{actionName:"paste",bindings:[{key:"v",modifiers:{primary:!0}}]},{actionName:"deleteSelection",bindings:[{key:"Delete"},{key:"Backspace"}]},{actionName:"keyboardMoveSelectionUp",bindings:[{key:"ArrowUp"}]},{actionName:"keyboardMoveSelectionDown",bindings:[{key:"ArrowDown"}]},{actionName:"keyboardMoveSelectionLeft",bindings:[{key:"ArrowLeft"}]},{actionName:"keyboardMoveSelectionRight",bindings:[{key:"ArrowRight"}]},{actionName:"keyboardPanUp",bindings:[{key:"ArrowUp"}]},{actionName:"keyboardPanDown",bindings:[{key:"ArrowDown"}]},{actionName:"keyboardPanLeft",bindings:[{key:"ArrowLeft"}]},{actionName:"keyboardPanRight",bindings:[{key:"ArrowRight"}]},{actionName:"boxSelection",bindings:[{modifiers:{shift:!0}}]},{actionName:"multiSelection",bindings:[{modifiers:{primary:!0}}]},{actionName:"selectAll",bindings:[{key:"a",modifiers:{primary:!0}}]},{actionName:"undo",bindings:[{key:"z",modifiers:{primary:!0}}]},{actionName:"redo",bindings:[{key:"y",modifiers:{primary:!0}}]},{actionName:"zoom",bindings:[{modifiers:{primary:!0}}]},{actionName:"keyboardZoomIn",bindings:[{key:"="}]},{actionName:"keyboardZoomOut",bindings:[{key:"-"}]}];var vc=class{flowCore;constructor(e){this.flowCore=e}match(e){let{shortcuts:t}=this.flowCore.config,o=[];for(let i of t)for(let r of i.bindings)if(this.matchBinding(e,r)){o.push(i);break}return o}matchesAction(e,t){let{shortcuts:o}=this.flowCore.config,i=o.find(r=>r.actionName===e);return!!i&&i.bindings.some(r=>this.matchBinding(t,r))}matchBinding(e,t){return!(t.key!==void 0&&!this.keysMatch(e.key,t.key))&&(t.key!==void 0||e.key===void 0)&&this.matchModifiers(e.modifiers,t)}matchModifiers(e,t){return e.primary===(t.modifiers?.primary??!1)&&e.shift===(t.modifiers?.shift??!1)&&e.secondary===(t.modifiers?.secondary??!1)&&(t.modifiers?.meta===void 0||e.meta===t.modifiers.meta)}keysMatch(e,t){return e!==void 0&&(e.length===1&&t.length===1?e.toLowerCase()===t.toLowerCase():e===t)}},bc={width:20,height:20},H1={getMinNodeSize:()=>h({},bc),allowResizeBelowChildrenBounds:!0,defaultResizable:!0},U1={portSnapDistance:10,edgePanningEnabled:!0,edgePanningForce:10,edgePanningThreshold:30,selectNodeOnPortPress:!0,validateConnection:()=>!0,temporaryEdgeDataBuilder:n=>h({},n),finalEdgeDataBuilder:n=>h({},n)},j1={canGroup:()=>!0},V1={padding:50,onInit:!1},W1={min:.01,max:10,step:.03,zoomToFit:V1},G1={dotSpacing:30,cellSize:{width:10,height:10},majorLinesFrequency:{x:5,y:5}},q1={shouldSnapForNode:()=>!1,computeSnapAngleForNode:()=>null,defaultSnapAngle:30,defaultRotatable:!0},Y1={shouldSnapDragForNode:()=>!1,shouldSnapResizeForNode:()=>!1,computeSnapForNodeDrag:()=>null,computeSnapForNodeSize:()=>null,defaultDragSnap:{width:10,height:10},defaultResizeSnap:{width:10,height:10}},Z1={edgePanningForce:10,edgePanningThreshold:30,edgePanningEnabled:!0},K1={enabled:!0,selectedZIndex:1e4,temporaryEdgeZIndex:2147483647,edgesAboveConnectedNodes:!1,elevateOnSelection:!0},X1={defaultRouting:"orthogonal",bezier:{bezierControlOffset:100},orthogonal:{maxCornerRadius:15,firstLastSegmentLength:20}},Q1={partialInclusion:!0,realtime:!0},J1={enabled:!1,padding:.5,idleDelay:100},eS=(n,e)=>Pp({computeNodeId:()=>e.environment.generateId(),computeEdgeId:()=>e.environment.generateId(),resize:H1,linking:U1,grouping:j1,zoom:W1,background:G1,nodeRotation:q1,snapping:Y1,selectionMoving:Z1,edgeRouting:X1,zIndex:K1,boxSelection:Q1,virtualization:J1,shortcuts:$1,debugMode:!1,viewportPanningEnabled:!0,nodeDraggingEnabled:!0},n),Ks=class{getMeasuredIds;pendingAdds=new Map;pendingUpdates=new Map;pendingDeletes=new Map;flushScheduled=!1;constructor(e){this.getMeasuredIds=e}processAdd(e,t,o){this.getOrCreate(this.pendingAdds,e,o).items.push(t),this.scheduleFlush()}processUpdate(e,t,o){this.getOrCreate(this.pendingUpdates,e,o).items.push(t),this.scheduleFlush()}processDelete(e,t,o){this.getOrCreate(this.pendingDeletes,e,o).items.push(t),this.scheduleFlush()}scheduleFlush(){this.flushScheduled||(this.flushScheduled=!0,queueMicrotask(()=>{this.flush()}))}flush(){return M(this,null,function*(){this.cancelMatchingIntents(),this.filterAlreadyMeasuredAdds();let e=this.takeAll(this.pendingAdds),t=this.takeAll(this.pendingUpdates),o=this.takeAll(this.pendingDeletes);this.flushScheduled=!1,yield this.invokeCallbacks(e),yield this.invokeCallbacks(t),yield this.invokeCallbacks(o)})}invokeCallbacks(e){return M(this,null,function*(){if(e.size===0)return;let t=new Map;for(let[o,{items:i,onFlush:r}]of e){let s=t.get(r);s||(s=new Map,t.set(r,s)),s.set(o,i)}for(let[o,i]of t)yield o(i)})}cancelMatchingIntents(){for(let[e,t]of this.pendingDeletes){let o=this.pendingAdds.get(e);if(!o)continue;let i=new Set(t.items),r=o.items.filter(s=>!i.has(s.id)||(i.delete(s.id),!1));r.length!==o.items.length&&(r.length===0?this.pendingAdds.delete(e):o.items=r,i.size===0?this.pendingDeletes.delete(e):t.items=[...i])}}filterAlreadyMeasuredAdds(){if(this.getMeasuredIds)for(let[e,t]of this.pendingAdds){let o=this.getMeasuredIds(e);if(o.size===0)continue;let i=t.items.filter(r=>!o.has(r.id));i.length!==t.items.length&&(i.length===0?this.pendingAdds.delete(e):t.items=i)}}getOrCreate(e,t,o){let i=e.get(t);return i||(i={items:[],onFlush:o},e.set(t,i)),i}takeAll(e){let t=new Map(e);return e.clear(),t}},wc=class extends Ks{constructor(e){super(t=>{let o=e(t)?.measuredLabels??[],i=new Set;for(let r of o)vt(r.size)&&i.add(r.id);return i})}};var Cc=class{phase="idle";participantIds=new Set;pendingConfig=null;discoveryWindow={timeoutId:null,expiresAt:0,durationMs:70};debounce={timeoutId:null,expiresAt:0,durationMs:50};settlementPromise=null;settlementResolve=null;requestTracking(e){this.pendingConfig=e??{}}isTrackingRequested(){return this.pendingConfig!==null}registerParticipants(e){let t=this.pendingConfig;if(this.pendingConfig=null,e.length!==0){t&&(this.discoveryWindow.durationMs=t.discoveryWindowMs??70,this.debounce.durationMs=t.debounceMs??50);for(let o of e)this.participantIds.add(o);this.phase="discoveryWindow",this.startTimer(this.discoveryWindow)}}signalObserverActivity(e){if(this.phase==="idle"||!this.participantIds.has(e))return;let t=this.activeTimer();this.remainingTime(t)<40&&this.startTimer(t)}signalMeasurement(e){this.phase!=="idle"&&this.participantIds.has(e)&&(this.phase==="discoveryWindow"&&this.clearTimer(this.discoveryWindow),this.phase="debounce",this.startTimer(this.debounce))}waitForMeasurements(){return this.hasPendingMeasurements()?(this.settlementPromise||(this.settlementPromise=new Promise(e=>{this.settlementResolve=e})),this.settlementPromise):Promise.resolve()}hasPendingMeasurements(){return this.phase!=="idle"}activeTimer(){return this.phase==="discoveryWindow"?this.discoveryWindow:this.debounce}remainingTime(e){return e.expiresAt-Date.now()}startTimer(e){this.clearTimer(e),e.expiresAt=Date.now()+e.durationMs,e.timeoutId=setTimeout(()=>{this.resolve()},e.durationMs)}clearTimer(e){e.timeoutId&&(clearTimeout(e.timeoutId),e.timeoutId=null)}resolve(){this.phase="idle",this.participantIds.clear(),this.clearTimer(this.discoveryWindow),this.clearTimer(this.debounce),this.settlementResolve&&(this.settlementResolve(),this.settlementResolve=null,this.settlementPromise=null)}},_c=class{flowCore;middlewareChain;history=[];initialState;initialStateUpdate;modelActionTypes;metadata;edgesMap=new Map;nodesMap=new Map;initialNodesMap=new Map;initialEdgesMap=new Map;initialConnectedEdgesMap=new Map;addedNodesIds=new Set;removedNodesIds=new Set;addedEdgesIds=new Set;removedEdgesIds=new Set;updatedPropsToNodeIds=new Map;updatedPropsToEdgeIds=new Map;updatedNodeIdsToProps=new Map;updatedEdgeIdsToProps=new Map;constructor(e,t){this.flowCore=e,this.middlewareChain=t}run(e,t,o){return M(this,null,function*(){return this.initialState=e,this.modelActionTypes=o,this.metadata=e.metadata,this.isMetadataOnlyUpdate(t)?(this.nodesMap=this.flowCore.modelLookup.nodesMap,this.edgesMap=this.flowCore.modelLookup.edgesMap,this.initialNodesMap=this.nodesMap,this.initialEdgesMap=this.edgesMap):(this.nodesMap=new Map(this.flowCore.modelLookup.nodesMap),this.edgesMap=new Map(this.flowCore.modelLookup.edgesMap),this.initialNodesMap=new Map(this.flowCore.modelLookup.nodesMap),this.initialEdgesMap=new Map(this.flowCore.modelLookup.edgesMap)),this.initialConnectedEdgesMap=this.flowCore.modelLookup.connectedEdgesMap,this.initialStateUpdate=t,this.applyStateUpdate(t),yield this.resolveMiddlewares()})}isMetadataOnlyUpdate(e){return!(e.nodesToAdd?.length||e.nodesToUpdate?.length||e.nodesToRemove?.length||e.edgesToAdd?.length||e.edgesToUpdate?.length||e.edgesToRemove?.length||!e.metadataUpdate)}helpers=()=>({checkIfNodeChanged:e=>this.updatedNodeIdsToProps.has(e),checkIfEdgeChanged:e=>this.updatedEdgeIdsToProps.has(e),checkIfNodeAdded:e=>this.addedNodesIds.has(e),checkIfNodeRemoved:e=>this.removedNodesIds.has(e),checkIfEdgeAdded:e=>this.addedEdgesIds.has(e),checkIfEdgeRemoved:e=>this.removedEdgesIds.has(e),checkIfAnyNodePropsChanged:e=>e.some(t=>this.updatedPropsToNodeIds.has(t)),checkIfAnyEdgePropsChanged:e=>e.some(t=>this.updatedPropsToEdgeIds.has(t)),anyNodesAdded:()=>this.addedNodesIds.size>0,anyEdgesAdded:()=>this.addedEdgesIds.size>0,anyNodesRemoved:()=>this.removedNodesIds.size>0,anyEdgesRemoved:()=>this.removedEdgesIds.size>0,getAffectedNodeIds:e=>e.flatMap(t=>[...this.updatedPropsToNodeIds.get(t)??[]]),getAffectedEdgeIds:e=>e.flatMap(t=>[...this.updatedPropsToEdgeIds.get(t)??[]]),getChangedNodeIds:()=>[...this.updatedNodeIdsToProps.keys()],getChangedEdgeIds:()=>[...this.updatedEdgeIdsToProps.keys()],getAddedNodes:()=>Array.from(this.addedNodesIds).map(e=>this.nodesMap.get(e)).filter(e=>e!==void 0),getAddedEdges:()=>Array.from(this.addedEdgesIds).map(e=>this.edgesMap.get(e)).filter(e=>e!==void 0),getRemovedNodes:()=>Array.from(this.removedNodesIds).map(e=>this.initialNodesMap.get(e)).filter(e=>e!==void 0),getRemovedEdges:()=>Array.from(this.removedEdgesIds).map(e=>this.initialEdgesMap.get(e)).filter(e=>e!==void 0)});getState=()=>({nodes:Array.from(this.nodesMap.values()),edges:Array.from(this.edgesMap.values()),metadata:this.metadata});getContext=()=>({state:this.getState(),nodesMap:this.nodesMap,edgesMap:this.edgesMap,initialNodesMap:this.initialNodesMap,initialEdgesMap:this.initialEdgesMap,initialConnectedEdgesMap:this.initialConnectedEdgesMap,initialState:this.initialState,modelActionType:this.modelActionTypes[0],modelActionTypes:this.modelActionTypes,actionStateManager:this.flowCore.actionStateManager,edgeRoutingManager:this.flowCore.edgeRoutingManager,helpers:this.helpers(),history:this.history,initialUpdate:this.initialStateUpdate,config:this.flowCore.config,environment:this.flowCore.environment});resolveMiddlewares=()=>new Promise(e=>{let t=[],o=new Set,i=r=>new Promise(s=>{let a=this.middlewareChain[r];if(!a){let c=this.getState();for(e(c);t.length>0;)t.pop()?.(c);return}let d=a.name;if(o.has(r))throw new Error(`Middleware ${d} executed next() multiple times`);o.add(r),t.push(s);let l=this.getContext();a.execute(l,c=>M(this,null,function*(){return c&&Object.keys(c).length>0&&this.applyStateUpdate(c,d),yield i(r+1)}),()=>{for(;t.length>0;)t.pop()?.(this.initialState);e(void 0)})});i(0)});applyStateUpdate=(e,t)=>{t&&this.history.push({name:t,stateUpdate:e}),e.nodesToAdd?.forEach(o=>this.addNode(o)),e.edgesToAdd?.forEach(o=>this.addEdge(o)),e.edgesToRemove?.forEach(o=>this.removeEdge(o)),e.nodesToRemove?.forEach(o=>this.removeNode(o)),e.nodesToUpdate?.forEach(o=>this.updateNode(o)),e.edgesToUpdate?.forEach(o=>this.updateEdge(o)),e.metadataUpdate&&(this.metadata=h(h({},this.metadata),e.metadataUpdate))};removeNode=e=>{this.nodesMap.delete(e),this.removedNodesIds.add(e),this.addedNodesIds.delete(e)};removeEdge=e=>{this.edgesMap.delete(e),this.removedEdgesIds.add(e),this.addedEdgesIds.delete(e)};addEdge=e=>{this.edgesMap.set(e.id,e),this.addedEdgesIds.add(e.id),this.removedEdgesIds.delete(e.id)};addNode=e=>{this.nodesMap.set(e.id,e),this.addedNodesIds.add(e.id),this.removedNodesIds.delete(e.id)};updateNode=o=>{var i=o,{id:e}=i,t=kt(i,["id"]);let r={},s=this.nodesMap.get(e);s&&(Object.entries(t).forEach(([a,d])=>{a==="position"?sn(s.position,d)||(r.position=d,this.updateNodeProp(e,"position")):a==="size"?Ip(s.size,d)||(r.size=d,this.updateNodeProp(e,"size")):s[a]!==d&&(r[a]=d,this.updateNodeProp(e,a))}),Object.keys(r).length>0&&this.nodesMap.set(e,h(h({},s),r)))};updateNodeProp=(e,t)=>{this.updatedPropsToNodeIds.has(t)||this.updatedPropsToNodeIds.set(t,new Set([])),this.updatedPropsToNodeIds.get(t).add(e),this.updatedNodeIdsToProps.has(e)||this.updatedNodeIdsToProps.set(e,new Set([])),this.updatedNodeIdsToProps.get(e).add(t)};updateEdge=o=>{var i=o,{id:e}=i,t=kt(i,["id"]);let r={},s=this.edgesMap.get(e);s&&(Object.entries(t).forEach(([a,d])=>{a==="targetPosition"?sn(s.targetPosition,d)||(r.targetPosition=d,this.updateEdgeProp(e,"targetPosition")):a==="sourcePosition"?sn(s.sourcePosition,d)||(r.sourcePosition=d,this.updateEdgeProp(e,"sourcePosition")):s[a]!==d&&(r[a]=d,this.updateEdgeProp(e,a))}),Object.keys(r).length>0&&this.edgesMap.set(e,h(h({},s),r)))};updateEdgeProp=(e,t)=>{this.updatedPropsToEdgeIds.has(t)||this.updatedPropsToEdgeIds.set(t,new Set([])),this.updatedPropsToEdgeIds.get(t).add(e),this.updatedEdgeIdsToProps.has(e)||this.updatedEdgeIdsToProps.set(e,new Set([])),this.updatedEdgeIdsToProps.get(e).add(t)}},tS=(n,e)=>{if(!n.target&&n.targetPosition){let t=e.get(n.source);return{targetSide:_m(t,n.sourcePort,n.targetPosition)}}if(!n.source&&n.sourcePosition&&n.targetPosition){let t=e.get(n.target);return{sourceSide:_m(t,n.targetPort,n.sourcePosition)}}return{}},nS=(n,e)=>{let t=n.temporary?tS(n,e):{},o=t.sourceSide??"right",i=t.targetSide??"left",r=e.get(n.source),s=e.get(n.target),a=Pm(r,n.sourcePort,n.sourcePosition),d=Pm(s,n.targetPort,n.targetPosition),l=Im(e,n.source,o,n.sourcePort,n.sourcePosition,d),c=Im(e,n.target,i,n.targetPort,n.targetPosition,a);return{source:Em(l)?l:void 0,target:Em(c)?c:void 0}},Em=n=>!!n&&n.x!==void 0&&n.y!==void 0&&!!n.side,Pm=(n,e,t)=>{if(!n)return t||{x:0,y:0};if(e){let o=Gm(n,e);if(o)return{x:o.x,y:o.y}}return{x:n.position.x+(n.size?.width||0)/2,y:n.position.y+(n.size?.height||0)/2}},oS=(n,e,t,o,i)=>n?t?Gm(n,t)||_(h({},o),{side:e}):G_(n,i||o||{x:0,y:0}):_(h({},o),{side:e}),Im=(n,e,t,o,i,r)=>{let s=n.get(e);return s?oS(s,t,o,i,r):_(h({},i),{side:t})},iS=(n,e,t,o,i)=>`[ngDiagram] Invalid edge coordinates detected for edge '${n}'.
55
55
 
56
56
  Edge details:
57
57
  \u2022 source: ${e} (port: ${t||"not specified"})
58
58
  \u2022 target: ${o} (port: ${i||"not specified"})
59
59
 
60
60
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/edges/
61
- `,j1=n=>`[ngDiagram] Edge routing '${n}' is not registered. Falling back to default routing.
61
+ `,rS=n=>`[ngDiagram] Edge routing '${n}' is not registered. Falling back to default routing.
62
62
 
63
63
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/routing/
64
- `,W1=(n,e,t)=>{if(n.sourcePort){let o=e?.measuredPorts;if(!o)return!1;let i=o.find(r=>r.id===n.sourcePort);if(!i||!i.position||!i.size)return!1}if(n.targetPort){let o=t?.measuredPorts;if(!o)return!1;let i=o.find(r=>r.id===n.targetPort);if(!i||!i.position||!i.size)return!1}return!0},G1=n=>n.routingMode==="manual"&&!!n.points&&n.points.length>0,Ys=n=>n?.x!==void 0&&n?.y!==void 0?{x:n.x,y:n.y}:void 0,Cm=(n,e)=>n&&e?n.measuredPorts?.find(t=>t.id===e):void 0,q1=(n,e,t,o,i,r)=>{let s={sourcePoint:e,targetPoint:t,edge:n,sourceNode:o,targetNode:i,sourcePort:Cm(o,n.sourcePort),targetPort:Cm(i,n.targetPort)};if(n.routing&&r.hasRouting(n.routing))return r.computePoints(n.routing,s);n.routing&&!r.hasRouting(n.routing)&&console.warn(j1(n.routing));let a=r.getDefaultRouting();return r.hasRouting(a)?r.computePoints(a,s):[Ys(e),Ys(t)].filter(d=>!!d)},Qm=(n,e,t)=>{let o=e.get(n.source),i=e.get(n.target);if(!G1(n)&&!W1(n,o,i))return{sourcePoint:void 0,targetPoint:void 0,points:[]};let{source:r,target:s}=H1(n,e),a=Ys(r),d=Ys(s);return r&&s&&Ot(a)&&Ot(d)?{sourcePoint:a,targetPoint:d,points:n.routingMode==="manual"&&n.points&&n.points.length>0?n.points:q1(n,r,s,o,i,t)}:(console.error(V1(n.id,n.source,n.sourcePort,n.target,n.targetPort)),{sourcePoint:void 0,targetPoint:void 0,points:[]})},Y1=({helpers:n,modelActionTypes:e,actionStateManager:t})=>!e.includes("zoom")&&(!e.includes("resizeNode")||!t.isResizing())&&(e.includes("init")||n.anyEdgesAdded()||n.checkIfAnyNodePropsChanged(["position","size","angle","measuredPorts"])||n.checkIfAnyEdgePropsChanged(["targetPosition","sourcePosition","points","sourcePort","targetPort","source","target","routing","routingMode","measuredLabels"])),Z1=(n,e,t)=>e.checkIfEdgeAdded(n.id)||e.checkIfEdgeChanged(n.id)||e.checkIfNodeChanged(n.source)||e.checkIfNodeChanged(n.target)||t.includes("init"),K1=(n,e)=>!n||n.length!==e.length||!n.every((t,o)=>on(t,e[o])),Jm=(n,e,t)=>e.length<2?n.measuredLabels:n.measuredLabels?.map(o=>_(g({},o),{position:Rm(o.positionOnEdge,n.routing,e,t)})),X1=(n,e,t,o,i)=>{let r=Jm(n,o,i);return r?.length||e||t?{id:n.id,sourcePosition:e,targetPosition:t,measuredLabels:r}:null},Q1=(n,e,t,o,i)=>{let r=K1(n.points,o),s=n.measuredLabels?.some(d=>!Ot(d.position));if(!r&&!s)return null;let a=Jm(n,o,i);return _(g({id:n.id},r?{points:o}:{}),{sourcePosition:e,targetPosition:t,measuredLabels:a})},J1=(n,e,t,o,i)=>{let r=[];return n.forEach(s=>{if(!Z1(s,o,i))return;let{sourcePoint:a,targetPoint:d,points:l}=Qm(s,e,t);if(!l||l.length===0)return;let c=s.routingMode==="manual"?X1(s,a,d,l,t):Q1(s,a,d,l,t);c&&r.push(c)}),r},eS=(n,e,t,o)=>{let{sourcePoint:i,targetPoint:r,points:s}=Qm(n,e,t);return _(g({},n),{points:s,sourcePosition:i,targetPosition:r,computedZIndex:o})},tS={name:"edges-routing",execute:(n,e)=>{let{state:{edges:t},nodesMap:o,edgeRoutingManager:i,actionStateManager:r,helpers:s,modelActionTypes:a,config:{zIndex:d}}=n,l=d.temporaryEdgeZIndex||d.selectedZIndex,c=Y1(n),u=r.linking?.temporaryEdge;if(!c&&!u)return void e();let w=c?J1(t,o,i,s,a):[],S=u?eS(u,o,i,l):void 0;S&&r.linking&&(r.linking=_(g({},r.linking),{temporaryEdge:S})),e(g({},w.length>0?{edgesToUpdate:w}:{}))}},vc=class{name="ClipboardPastedEmitter";emit(e,t){if(!e.modelActionTypes.includes("paste")||!e.actionStateManager.getState().copyPaste)return;let{initialNodesMap:o,initialEdgesMap:i,nodesMap:r,edgesMap:s}=e,a=[];for(let[l,c]of r)o.has(l)||a.push(c);let d=[];for(let[l,c]of s)i.has(l)||d.push(c);(a.length>0||d.length>0)&&t.deferredEmit("clipboardPasted",{nodes:a,edges:d})}},bc=class{name="DiagramInitEmitter";unmeasuredNodes=new Set;unmeasuredNodePorts=new Set;unmeasuredEdgeLabels=new Set;initialized=!1;initEventEmitted=!1;safetyHatchTimeoutId=null;SAFETY_HATCH_TIMEOUT_MS=2e3;emit(e,t){let{modelActionTypes:o}=e;o.includes("init")?this.handleInit(e,t):(o.includes("updateNode")||o.includes("updateEdge"))&&this.handleUpdate(e,t)}handleInit(e,t){this.initialized=!0;let{nodesMap:o,edgesMap:i,initialUpdate:r}=e;this.collectUnmeasuredItems(o,i,r.renderedNodeIds??Array.from(o.keys()),r.renderedEdgeIds??Array.from(i.keys())),this.areAllMeasured()?this.emitInitEvent(e,t):this.restartSafetyHatchTimeout(e,t)}handleUpdate(e,t){if(!this.initialized||this.initEventEmitted)return;let{modelActionTypes:o,initialUpdate:i,nodesMap:r,edgesMap:s}=e,a=this.countUnmeasuredItems();o.includes("updateNode")&&this.processNodeUpdates(i,r),o.includes("updateEdge")&&this.processEdgeUpdates(i,s),this.countUnmeasuredItems()<a&&this.restartSafetyHatchTimeout(e,t),this.areAllMeasured()&&this.emitInitEvent(e,t)}collectUnmeasuredItems(e,t,o,i){this.unmeasuredNodes.clear(),this.unmeasuredNodePorts.clear(),this.unmeasuredEdgeLabels.clear();for(let r of o){let s=e.get(r);if(s){vt(s.size)||this.unmeasuredNodes.add(r);for(let a of s.measuredPorts??[])vt(a.size)&&Ot(a.position)||this.unmeasuredNodePorts.add(`${r}:${a.id}`)}}for(let r of i){let s=t.get(r);if(s)for(let a of s.measuredLabels??[])vt(a.size)&&Ot(a.position)||this.unmeasuredEdgeLabels.add(`${r}:${a.id}`)}}processNodeUpdates(e,t){if(e?.nodesToUpdate?.length){for(let o of e.nodesToUpdate)if(t.has(o.id)&&(this.unmeasuredNodes.has(o.id)&&vt(o.size)&&this.unmeasuredNodes.delete(o.id),o.measuredPorts))for(let i of o.measuredPorts){let r=`${o.id}:${i.id}`;this.unmeasuredNodePorts.has(r)&&vt(i.size)&&Ot(i.position)&&this.unmeasuredNodePorts.delete(r)}}}processEdgeUpdates(e,t){if(e?.edgesToUpdate?.length){for(let o of e.edgesToUpdate)if(t.has(o.id)&&o.measuredLabels)for(let i of o.measuredLabels){let r=`${o.id}:${i.id}`;this.unmeasuredEdgeLabels.has(r)&&vt(i.size)&&Ot(i.position)&&this.unmeasuredEdgeLabels.delete(r)}}}areAllMeasured(){return this.unmeasuredNodes.size===0&&this.unmeasuredNodePorts.size===0&&this.unmeasuredEdgeLabels.size===0}emitInitEvent(e,t,o=!0){this.clearSafetyHatchTimeout();let{nodesMap:i,edgesMap:r,initialUpdate:s}=e,a=new Set(s.renderedNodeIds??i.keys()),d=new Set(s.renderedEdgeIds??r.keys()),l={nodes:Array.from(i.values()).filter(c=>a.has(c.id)),edges:Array.from(r.values()).filter(c=>d.has(c.id)),viewport:e.state.metadata.viewport};o?t.deferredEmit("diagramInit",l):t.emit("diagramInit",l),this.initEventEmitted=!0}restartSafetyHatchTimeout(e,t){this.clearSafetyHatchTimeout(),this.safetyHatchTimeoutId=setTimeout(()=>{this.initEventEmitted||this.emitInitEventWithWarning(e,t)},this.SAFETY_HATCH_TIMEOUT_MS)}clearSafetyHatchTimeout(){this.safetyHatchTimeoutId!==null&&(clearTimeout(this.safetyHatchTimeoutId),this.safetyHatchTimeoutId=null)}emitInitEventWithWarning(e,t){let o={nodes:Array.from(this.unmeasuredNodes),nodePorts:Array.from(this.unmeasuredNodePorts),edgeLabels:Array.from(this.unmeasuredEdgeLabels)},i=this.countUnmeasuredItems();console.warn("[DiagramInitEmitter] Measurement timeout reached from last measurement. Emitting diagramInit event anyway. Ensure the model provided to ng-diagram was created with initializeModel() or initializeModelAdapter() (for custom ModelAdapter)."),console.warn(`Total unmeasured elements: ${i}`),o.nodes.length>0&&console.warn(`Unmeasured nodes (${o.nodes.length}):`,o.nodes),o.nodePorts.length>0&&console.warn(`Unmeasured node ports (${o.nodePorts.length}):`,o.nodePorts),o.edgeLabels.length>0&&console.warn(`Unmeasured edge labels (${o.edgeLabels.length}):`,o.edgeLabels),this.emitInitEvent(e,t,!1)}countUnmeasuredItems(){return this.unmeasuredNodes.size+this.unmeasuredEdgeLabels.size+this.unmeasuredNodePorts.size}},wc=class{name="EdgeDrawEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("finishLinking"))return;let o=e.actionStateManager.linking;if(!o)return;let i=e.nodesMap.get(o.sourceNodeId);if(!i)return;let r=o.dropPosition??{x:0,y:0};if(e.helpers.anyEdgesAdded()){for(let[s,a]of e.edgesMap)if(!e.initialEdgesMap.has(s)){let d=a.target?e.nodesMap.get(a.target):void 0;t.deferredEmit("edgeDrawEnded",{source:i,sourcePort:a.sourcePort,dropPosition:r,success:!0,edge:a,target:d,targetPort:a.targetPort});break}}else t.deferredEmit("edgeDrawEnded",{source:i,sourcePort:o.sourcePortId||void 0,dropPosition:r,success:!1,reason:o.cancelReason})}},Cc=class{name="EdgeDrawnEmitter";emit(e,t){if(!e.modelActionTypes.includes("finishLinking")||!e.helpers.anyEdgesAdded())return;let{initialEdgesMap:o,edgesMap:i,nodesMap:r}=e;this.emitNewEdges(o,i,r,t)}emitNewEdges(e,t,o,i){for(let[r,s]of t)if(!e.has(r)){let a=o.get(s.source),d=o.get(s.target);a&&d&&i.deferredEmit("edgeDrawn",{edge:s,source:a,target:d,sourcePort:s.sourcePort,targetPort:s.targetPort})}}};function e0(n,e){let t=[];for(let o of n){let i=e.get(o);i&&t.push(i)}return t}var _c=class{name="NodeDragStartedEmitter";emit(e,t){if(!e.modelActionTypes.includes("moveNodesStart"))return;let o=e.actionStateManager.dragging?.nodeIds;if(!o||o.length===0)return;let i=e0(o,e.nodesMap);i.length!==0&&t.deferredEmit("nodeDragStarted",{nodes:i})}},xc=class{name="NodeDragEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("moveNodesStop"))return;let o=e.actionStateManager.dragging?.nodeIds;if(!o||o.length===0)return;let i=e0(o,e.nodesMap);i.length!==0&&t.deferredEmit("nodeDragEnded",{nodes:i})}},Sc=class{name="NodeResizeStartedEmitter";emit(e,t){if(!e.modelActionTypes.includes("resizeNodeStart"))return;let o=e.actionStateManager.resize?.resizingNode;if(!o)return;let i=e.nodesMap.get(o.id);i&&t.deferredEmit("nodeResizeStarted",{node:i})}},Ec=class{name="NodeResizeEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("resizeNodeStop"))return;let o=e.actionStateManager.resize?.resizingNode;if(!o)return;let i=e.nodesMap.get(o.id);i&&t.deferredEmit("nodeResizeEnded",{node:i})}},Pc=class{name="NodeRotateStartedEmitter";emit(e,t){if(!e.modelActionTypes.includes("rotateNodeStart"))return;let o=e.actionStateManager.rotation?.nodeId;if(!o)return;let i=e.nodesMap.get(o);i&&t.deferredEmit("nodeRotateStarted",{node:i})}},Ic=class{name="NodeRotateEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("rotateNodeStop"))return;let o=e.actionStateManager.rotation?.nodeId;if(!o)return;let i=e.nodesMap.get(o);i&&t.deferredEmit("nodeRotateEnded",{node:i})}},Dc=class{name="PaletteItemDroppedEmitter";emit(e,t){if(!e.modelActionTypes.includes("paletteDropNode"))return;let o=e.initialUpdate.nodesToAdd?.[0];if(!o)return;let i=o.id,r=e.initialNodesMap.get(i),s=e.nodesMap.get(i);!r&&s&&t.deferredEmit("paletteItemDropped",{node:s,dropPosition:s.position})}},Mc=class{name="SelectionChangedEmitter";emit(e,t){if(!(e.modelActionTypes.includes("changeSelection")||e.helpers.checkIfAnyNodePropsChanged(["selected"])||e.helpers.checkIfAnyEdgePropsChanged(["selected"])||e.helpers.anyNodesAdded()||e.helpers.anyEdgesAdded()||e.helpers.anyNodesRemoved()||e.helpers.anyEdgesRemoved()))return;let{initialNodesMap:o,initialEdgesMap:i,nodesMap:r,edgesMap:s}=e,a=this.collectSelectedNodes(o),d=this.collectSelectedNodes(r),l=this.collectSelectedEdges(i),c=this.collectSelectedEdges(s),u=!this.areSelectionsEqual(a.map(S=>S.id),d.map(S=>S.id)),w=!this.areSelectionsEqual(l.map(S=>S.id),c.map(S=>S.id));(u||w)&&t.deferredEmit("selectionChanged",{selectedNodes:d,selectedEdges:c,previousNodes:a,previousEdges:l})}collectSelectedNodes(e){let t=[];for(let[,o]of e)o.selected&&t.push(o);return t}collectSelectedEdges(e){let t=[];for(let[,o]of e)o.selected&&t.push(o);return t}areSelectionsEqual(e,t){if(e.length!==t.length)return!1;let o=new Set(e),i=new Set(t);return o.size===i.size&&[...o].every(r=>i.has(r))}},Tc=class{name="SelectionGestureEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("selectEnd")||!e.actionStateManager.selection?.selectionChanged)return;e.actionStateManager.clearSelection();let o=[];for(let r of e.nodesMap.values())r.selected&&o.push(r);let i=[];for(let r of e.edgesMap.values())r.selected&&i.push(r);t.deferredEmit("selectionGestureEnded",{nodes:o,edges:i})}},kc=class{name="GroupMembershipChangedEmitter";emit(e,t){if(!e.modelActionTypes.includes("updateNodes")||!e.helpers.checkIfAnyNodePropsChanged(["groupId"]))return;let{initialNodesMap:o,nodesMap:i}=e,r=e.helpers.getAffectedNodeIds(["groupId"]),s=new Map,a=[];for(let l of r){let c=o.get(l),u=i.get(l);if(!c||!u)continue;let w=c.groupId,S=u.groupId;S!=null?(s.has(S)||s.set(S,[]),s.get(S).push(u)):w!=null&&a.push(u)}let d=[];for(let[l,c]of s){let u=i.get(l);u&&u.isGroup&&d.push({nodes:c,targetGroup:u})}(d.length>0||a.length>0)&&t.deferredEmit("groupMembershipChanged",{grouped:d,ungrouped:a})}},Rc=class{name="SelectionMovedEmitter";moveActions=["moveNodes","moveNodesBy"];emit(e,t){if(!this.moveActions.some(l=>e.modelActionTypes.includes(l)))return;let{initialNodesMap:o,nodesMap:i,initialUpdate:r,history:s}=e,a=this.collectUpdatedNodeIds(r,s);if(a.size===0)return;let d=this.getMovedNodes(a,o,i);d&&d.length!==0&&t.deferredEmit("selectionMoved",{nodes:d})}collectUpdatedNodeIds(e,t){let o=new Set;if(e?.nodesToUpdate)for(let i of e.nodesToUpdate)o.add(i.id);for(let i of t)if(i.stateUpdate?.nodesToUpdate)for(let r of i.stateUpdate.nodesToUpdate)o.add(r.id);return o}getMovedNodes(e,t,o){let i=[];for(let r of e){let s=o.get(r);if(!s)continue;let a=t.get(r);s.position&&a?.position&&(s.position.x===a.position.x&&s.position.y===a.position.y||i.push(s))}return i.length>0?i:null}},Nc=class{name="SelectionRemovedEmitter";emit(e,t){if(!e.modelActionTypes.includes("deleteSelection"))return;let{initialNodesMap:o,initialEdgesMap:i,nodesMap:r,edgesMap:s}=e,a=[];for(let[l,c]of o)r.has(l)||a.push(c);let d=[];for(let[l,c]of i)s.has(l)||d.push(c);(a.length>0||d.length>0)&&t.deferredEmit("selectionRemoved",{deletedNodes:a,deletedEdges:d})}},Oc=class{name="SelectionRotatedEmitter";emit(e,t){if(!e.modelActionTypes.includes("rotateNodeTo"))return;let{initialNodesMap:o,nodesMap:i}=e,r=e.initialUpdate.nodesToUpdate?.[0];if(!r)return;let s=r.id,a=o.get(s),d=i.get(s);if(!a||!d)return;let l=a.angle??0,c=d.angle??0;l!==c&&t.deferredEmit("selectionRotated",{node:d,angle:c,previousAngle:l})}},Ac=class{name="NodeResizedEmitter";emit(e,t){if(!e.modelActionTypes.includes("resizeNode"))return;let o=e.initialUpdate.nodesToUpdate?.[0];if(!o)return;let i=o.id,r=e.initialNodesMap.get(i),s=e.nodesMap.get(i);if(!r||!s)return;let a=r.size,d=s.size;a&&d&&(d.width!==a.width||d.height!==a.height)&&t.deferredEmit("nodeResized",{node:s,previousSize:{width:a.width,height:a.height}})}},Lc=class{name="ViewportChangedEmitter";emit({initialState:e,state:t},o){let i=e.metadata.viewport,r=t.metadata.viewport;i.x===r.x&&i.y===r.y&&i.scale===r.scale&&i.width===r.width&&i.height===r.height||o.deferredEmit("viewportChanged",{viewport:r,previousViewport:i})}},nS=(n,e,t)=>`[ngDiagram] Event emitter error: ${n} failed.
64
+ `,sS=(n,e,t)=>{if(n.sourcePort){let o=e?.measuredPorts;if(!o)return!1;let i=o.find(r=>r.id===n.sourcePort);if(!i||!i.position||!i.size)return!1}if(n.targetPort){let o=t?.measuredPorts;if(!o)return!1;let i=o.find(r=>r.id===n.targetPort);if(!i||!i.position||!i.size)return!1}return!0},aS=n=>n.routingMode==="manual"&&!!n.points&&n.points.length>0,Xs=n=>n?.x!==void 0&&n?.y!==void 0?{x:n.x,y:n.y}:void 0,Dm=(n,e)=>n&&e?n.measuredPorts?.find(t=>t.id===e):void 0,dS=(n,e,t,o,i,r)=>{let s={sourcePoint:e,targetPoint:t,edge:n,sourceNode:o,targetNode:i,sourcePort:Dm(o,n.sourcePort),targetPort:Dm(i,n.targetPort)};if(n.routing&&r.hasRouting(n.routing))return r.computePoints(n.routing,s);n.routing&&!r.hasRouting(n.routing)&&console.warn(rS(n.routing));let a=r.getDefaultRouting();return r.hasRouting(a)?r.computePoints(a,s):[Xs(e),Xs(t)].filter(d=>!!d)},r0=(n,e,t)=>{let o=e.get(n.source),i=e.get(n.target);if(!aS(n)&&!sS(n,o,i))return{sourcePoint:void 0,targetPoint:void 0,points:[]};let{source:r,target:s}=nS(n,e),a=Xs(r),d=Xs(s);return r&&s&&Lt(a)&&Lt(d)?{sourcePoint:a,targetPoint:d,points:n.routingMode==="manual"&&n.points&&n.points.length>0?n.points:dS(n,r,s,o,i,t)}:(console.error(iS(n.id,n.source,n.sourcePort,n.target,n.targetPort)),{sourcePoint:void 0,targetPoint:void 0,points:[]})},lS=({helpers:n,modelActionTypes:e,actionStateManager:t})=>!e.includes("zoom")&&(!e.includes("resizeNode")||!t.isResizing())&&(e.includes("init")||n.anyEdgesAdded()||n.checkIfAnyNodePropsChanged(["position","size","angle","measuredPorts"])||n.checkIfAnyEdgePropsChanged(["targetPosition","sourcePosition","points","sourcePort","targetPort","source","target","routing","routingMode","measuredLabels"])),cS=(n,e,t)=>e.checkIfEdgeAdded(n.id)||e.checkIfEdgeChanged(n.id)||e.checkIfNodeChanged(n.source)||e.checkIfNodeChanged(n.target)||t.includes("init"),uS=(n,e)=>!n||n.length!==e.length||!n.every((t,o)=>sn(t,e[o])),s0=(n,e,t)=>e.length<2?n.measuredLabels:n.measuredLabels?.map(o=>_(h({},o),{position:Bm(o.positionOnEdge,n.routing,e,t)})),pS=(n,e,t,o,i)=>{let r=s0(n,o,i);return r?.length||e||t?{id:n.id,sourcePosition:e,targetPosition:t,measuredLabels:r}:null},hS=(n,e,t,o,i)=>{let r=uS(n.points,o),s=n.measuredLabels?.some(d=>!Lt(d.position));if(!r&&!s)return null;let a=s0(n,o,i);return _(h({id:n.id},r?{points:o}:{}),{sourcePosition:e,targetPosition:t,measuredLabels:a})},gS=(n,e,t,o,i)=>{let r=[];return n.forEach(s=>{if(!cS(s,o,i))return;let{sourcePoint:a,targetPoint:d,points:l}=r0(s,e,t);if(!l||l.length===0)return;let c=s.routingMode==="manual"?pS(s,a,d,l,t):hS(s,a,d,l,t);c&&r.push(c)}),r},fS=(n,e,t,o)=>{let{sourcePoint:i,targetPoint:r,points:s}=r0(n,e,t);return _(h({},n),{points:s,sourcePosition:i,targetPosition:r,computedZIndex:o})},mS={name:"edges-routing",execute:(n,e)=>{let{state:{edges:t},nodesMap:o,edgeRoutingManager:i,actionStateManager:r,helpers:s,modelActionTypes:a,config:{zIndex:d}}=n,l=d.temporaryEdgeZIndex||d.selectedZIndex,c=lS(n),u=r.linking?.temporaryEdge;if(!c&&!u)return void e();let w=c?gS(t,o,i,s,a):[],S=u?fS(u,o,i,l):void 0;S&&r.linking&&(r.linking=_(h({},r.linking),{temporaryEdge:S})),e(h({},w.length>0?{edgesToUpdate:w}:{}))}},xc=class{name="ClipboardPastedEmitter";emit(e,t){if(!e.modelActionTypes.includes("paste")||!e.actionStateManager.getState().copyPaste)return;let{initialNodesMap:o,initialEdgesMap:i,nodesMap:r,edgesMap:s}=e,a=[];for(let[l,c]of r)o.has(l)||a.push(c);let d=[];for(let[l,c]of s)i.has(l)||d.push(c);(a.length>0||d.length>0)&&t.deferredEmit("clipboardPasted",{nodes:a,edges:d})}},Sc=class{name="DiagramInitEmitter";unmeasuredNodes=new Set;unmeasuredNodePorts=new Set;unmeasuredEdgeLabels=new Set;initialized=!1;initEventEmitted=!1;safetyHatchTimeoutId=null;SAFETY_HATCH_TIMEOUT_MS=2e3;emit(e,t){let{modelActionTypes:o}=e;o.includes("init")?this.handleInit(e,t):(o.includes("updateNode")||o.includes("updateEdge"))&&this.handleUpdate(e,t)}handleInit(e,t){this.initialized=!0;let{nodesMap:o,edgesMap:i,initialUpdate:r}=e;this.collectUnmeasuredItems(o,i,r.renderedNodeIds??Array.from(o.keys()),r.renderedEdgeIds??Array.from(i.keys())),this.areAllMeasured()?this.emitInitEvent(e,t):this.restartSafetyHatchTimeout(e,t)}handleUpdate(e,t){if(!this.initialized||this.initEventEmitted)return;let{modelActionTypes:o,initialUpdate:i,nodesMap:r,edgesMap:s}=e,a=this.countUnmeasuredItems();o.includes("updateNode")&&this.processNodeUpdates(i,r),o.includes("updateEdge")&&this.processEdgeUpdates(i,s),this.countUnmeasuredItems()<a&&this.restartSafetyHatchTimeout(e,t),this.areAllMeasured()&&this.emitInitEvent(e,t)}collectUnmeasuredItems(e,t,o,i){this.unmeasuredNodes.clear(),this.unmeasuredNodePorts.clear(),this.unmeasuredEdgeLabels.clear();for(let r of o){let s=e.get(r);if(s){vt(s.size)||this.unmeasuredNodes.add(r);for(let a of s.measuredPorts??[])vt(a.size)&&Lt(a.position)||this.unmeasuredNodePorts.add(`${r}:${a.id}`)}}for(let r of i){let s=t.get(r);if(s)for(let a of s.measuredLabels??[])vt(a.size)&&Lt(a.position)||this.unmeasuredEdgeLabels.add(`${r}:${a.id}`)}}processNodeUpdates(e,t){if(e?.nodesToUpdate?.length){for(let o of e.nodesToUpdate)if(t.has(o.id)&&(this.unmeasuredNodes.has(o.id)&&vt(o.size)&&this.unmeasuredNodes.delete(o.id),o.measuredPorts))for(let i of o.measuredPorts){let r=`${o.id}:${i.id}`;this.unmeasuredNodePorts.has(r)&&vt(i.size)&&Lt(i.position)&&this.unmeasuredNodePorts.delete(r)}}}processEdgeUpdates(e,t){if(e?.edgesToUpdate?.length){for(let o of e.edgesToUpdate)if(t.has(o.id)&&o.measuredLabels)for(let i of o.measuredLabels){let r=`${o.id}:${i.id}`;this.unmeasuredEdgeLabels.has(r)&&vt(i.size)&&Lt(i.position)&&this.unmeasuredEdgeLabels.delete(r)}}}areAllMeasured(){return this.unmeasuredNodes.size===0&&this.unmeasuredNodePorts.size===0&&this.unmeasuredEdgeLabels.size===0}emitInitEvent(e,t,o=!0){this.clearSafetyHatchTimeout();let{nodesMap:i,edgesMap:r,initialUpdate:s}=e,a=new Set(s.renderedNodeIds??i.keys()),d=new Set(s.renderedEdgeIds??r.keys()),l={nodes:Array.from(i.values()).filter(c=>a.has(c.id)),edges:Array.from(r.values()).filter(c=>d.has(c.id)),viewport:e.state.metadata.viewport};o?t.deferredEmit("diagramInit",l):t.emit("diagramInit",l),this.initEventEmitted=!0}restartSafetyHatchTimeout(e,t){this.clearSafetyHatchTimeout(),this.safetyHatchTimeoutId=setTimeout(()=>{this.initEventEmitted||this.emitInitEventWithWarning(e,t)},this.SAFETY_HATCH_TIMEOUT_MS)}clearSafetyHatchTimeout(){this.safetyHatchTimeoutId!==null&&(clearTimeout(this.safetyHatchTimeoutId),this.safetyHatchTimeoutId=null)}emitInitEventWithWarning(e,t){let o={nodes:Array.from(this.unmeasuredNodes),nodePorts:Array.from(this.unmeasuredNodePorts),edgeLabels:Array.from(this.unmeasuredEdgeLabels)},i=this.countUnmeasuredItems();console.warn("[DiagramInitEmitter] Measurement timeout reached from last measurement. Emitting diagramInit event anyway. Ensure the model provided to ng-diagram was created with initializeModel() or initializeModelAdapter() (for custom ModelAdapter)."),console.warn(`Total unmeasured elements: ${i}`),o.nodes.length>0&&console.warn(`Unmeasured nodes (${o.nodes.length}):`,o.nodes),o.nodePorts.length>0&&console.warn(`Unmeasured node ports (${o.nodePorts.length}):`,o.nodePorts),o.edgeLabels.length>0&&console.warn(`Unmeasured edge labels (${o.edgeLabels.length}):`,o.edgeLabels),this.emitInitEvent(e,t,!1)}countUnmeasuredItems(){return this.unmeasuredNodes.size+this.unmeasuredEdgeLabels.size+this.unmeasuredNodePorts.size}},Ec=class{name="EdgeDrawEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("finishLinking"))return;let o=e.actionStateManager.linking;if(!o)return;let i=e.nodesMap.get(o.sourceNodeId);if(!i)return;let r=o.dropPosition??{x:0,y:0};if(e.helpers.anyEdgesAdded()){for(let[s,a]of e.edgesMap)if(!e.initialEdgesMap.has(s)){let d=a.target?e.nodesMap.get(a.target):void 0;t.deferredEmit("edgeDrawEnded",{source:i,sourcePort:a.sourcePort,dropPosition:r,success:!0,edge:a,target:d,targetPort:a.targetPort});break}}else t.deferredEmit("edgeDrawEnded",{source:i,sourcePort:o.sourcePortId||void 0,dropPosition:r,success:!1,reason:o.cancelReason})}},Pc=class{name="EdgeDrawnEmitter";emit(e,t){if(!e.modelActionTypes.includes("finishLinking")||!e.helpers.anyEdgesAdded())return;let{initialEdgesMap:o,edgesMap:i,nodesMap:r}=e;this.emitNewEdges(o,i,r,t)}emitNewEdges(e,t,o,i){for(let[r,s]of t)if(!e.has(r)){let a=o.get(s.source),d=o.get(s.target);a&&d&&i.deferredEmit("edgeDrawn",{edge:s,source:a,target:d,sourcePort:s.sourcePort,targetPort:s.targetPort})}}};function a0(n,e){let t=[];for(let o of n){let i=e.get(o);i&&t.push(i)}return t}var Ic=class{name="NodeDragStartedEmitter";emit(e,t){if(!e.modelActionTypes.includes("moveNodesStart"))return;let o=e.actionStateManager.dragging?.nodeIds;if(!o||o.length===0)return;let i=a0(o,e.nodesMap);i.length!==0&&t.deferredEmit("nodeDragStarted",{nodes:i})}},Dc=class{name="NodeDragEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("moveNodesStop"))return;let o=e.actionStateManager.dragging?.nodeIds;if(!o||o.length===0)return;let i=a0(o,e.nodesMap);i.length!==0&&t.deferredEmit("nodeDragEnded",{nodes:i})}},Tc=class{name="NodeResizeStartedEmitter";emit(e,t){if(!e.modelActionTypes.includes("resizeNodeStart"))return;let o=e.actionStateManager.resize?.resizingNode;if(!o)return;let i=e.nodesMap.get(o.id);i&&t.deferredEmit("nodeResizeStarted",{node:i})}},Mc=class{name="NodeResizeEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("resizeNodeStop"))return;let o=e.actionStateManager.resize?.resizingNode;if(!o)return;let i=e.nodesMap.get(o.id);i&&t.deferredEmit("nodeResizeEnded",{node:i})}},kc=class{name="NodeRotateStartedEmitter";emit(e,t){if(!e.modelActionTypes.includes("rotateNodeStart"))return;let o=e.actionStateManager.rotation?.nodeId;if(!o)return;let i=e.nodesMap.get(o);i&&t.deferredEmit("nodeRotateStarted",{node:i})}},Rc=class{name="NodeRotateEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("rotateNodeStop"))return;let o=e.actionStateManager.rotation?.nodeId;if(!o)return;let i=e.nodesMap.get(o);i&&t.deferredEmit("nodeRotateEnded",{node:i})}},Nc=class{name="PaletteItemDroppedEmitter";emit(e,t){if(!e.modelActionTypes.includes("paletteDropNode"))return;let o=e.initialUpdate.nodesToAdd?.[0];if(!o)return;let i=o.id,r=e.initialNodesMap.get(i),s=e.nodesMap.get(i);!r&&s&&t.deferredEmit("paletteItemDropped",{node:s,dropPosition:s.position})}},Oc=class{name="SelectionChangedEmitter";emit(e,t){if(!(e.modelActionTypes.includes("changeSelection")||e.helpers.checkIfAnyNodePropsChanged(["selected"])||e.helpers.checkIfAnyEdgePropsChanged(["selected"])||e.helpers.anyNodesAdded()||e.helpers.anyEdgesAdded()||e.helpers.anyNodesRemoved()||e.helpers.anyEdgesRemoved()))return;let{initialNodesMap:o,initialEdgesMap:i,nodesMap:r,edgesMap:s}=e,a=this.collectSelectedNodes(o),d=this.collectSelectedNodes(r),l=this.collectSelectedEdges(i),c=this.collectSelectedEdges(s),u=!this.areSelectionsEqual(a.map(S=>S.id),d.map(S=>S.id)),w=!this.areSelectionsEqual(l.map(S=>S.id),c.map(S=>S.id));(u||w)&&t.deferredEmit("selectionChanged",{selectedNodes:d,selectedEdges:c,previousNodes:a,previousEdges:l})}collectSelectedNodes(e){let t=[];for(let[,o]of e)o.selected&&t.push(o);return t}collectSelectedEdges(e){let t=[];for(let[,o]of e)o.selected&&t.push(o);return t}areSelectionsEqual(e,t){if(e.length!==t.length)return!1;let o=new Set(e),i=new Set(t);return o.size===i.size&&[...o].every(r=>i.has(r))}},Ac=class{name="SelectionGestureEndedEmitter";emit(e,t){if(!e.modelActionTypes.includes("selectEnd")||!e.actionStateManager.selection?.selectionChanged)return;e.actionStateManager.clearSelection();let o=[];for(let r of e.nodesMap.values())r.selected&&o.push(r);let i=[];for(let r of e.edgesMap.values())r.selected&&i.push(r);t.deferredEmit("selectionGestureEnded",{nodes:o,edges:i})}},Lc=class{name="GroupMembershipChangedEmitter";emit(e,t){if(!e.modelActionTypes.includes("updateNodes")||!e.helpers.checkIfAnyNodePropsChanged(["groupId"]))return;let{initialNodesMap:o,nodesMap:i}=e,r=e.helpers.getAffectedNodeIds(["groupId"]),s=new Map,a=[];for(let l of r){let c=o.get(l),u=i.get(l);if(!c||!u)continue;let w=c.groupId,S=u.groupId;S!=null?(s.has(S)||s.set(S,[]),s.get(S).push(u)):w!=null&&a.push(u)}let d=[];for(let[l,c]of s){let u=i.get(l);u&&u.isGroup&&d.push({nodes:c,targetGroup:u})}(d.length>0||a.length>0)&&t.deferredEmit("groupMembershipChanged",{grouped:d,ungrouped:a})}},Fc=class{name="SelectionMovedEmitter";moveActions=["moveNodes","moveNodesBy"];emit(e,t){if(!this.moveActions.some(l=>e.modelActionTypes.includes(l)))return;let{initialNodesMap:o,nodesMap:i,initialUpdate:r,history:s}=e,a=this.collectUpdatedNodeIds(r,s);if(a.size===0)return;let d=this.getMovedNodes(a,o,i);d&&d.length!==0&&t.deferredEmit("selectionMoved",{nodes:d})}collectUpdatedNodeIds(e,t){let o=new Set;if(e?.nodesToUpdate)for(let i of e.nodesToUpdate)o.add(i.id);for(let i of t)if(i.stateUpdate?.nodesToUpdate)for(let r of i.stateUpdate.nodesToUpdate)o.add(r.id);return o}getMovedNodes(e,t,o){let i=[];for(let r of e){let s=o.get(r);if(!s)continue;let a=t.get(r);s.position&&a?.position&&(s.position.x===a.position.x&&s.position.y===a.position.y||i.push(s))}return i.length>0?i:null}},zc=class{name="SelectionRemovedEmitter";emit(e,t){if(!e.modelActionTypes.includes("deleteSelection"))return;let{initialNodesMap:o,initialEdgesMap:i,nodesMap:r,edgesMap:s}=e,a=[];for(let[l,c]of o)r.has(l)||a.push(c);let d=[];for(let[l,c]of i)s.has(l)||d.push(c);(a.length>0||d.length>0)&&t.deferredEmit("selectionRemoved",{deletedNodes:a,deletedEdges:d})}},Bc=class{name="SelectionRotatedEmitter";emit(e,t){if(!e.modelActionTypes.includes("rotateNodeTo"))return;let{initialNodesMap:o,nodesMap:i}=e,r=e.initialUpdate.nodesToUpdate?.[0];if(!r)return;let s=r.id,a=o.get(s),d=i.get(s);if(!a||!d)return;let l=a.angle??0,c=d.angle??0;l!==c&&t.deferredEmit("selectionRotated",{node:d,angle:c,previousAngle:l})}},$c=class{name="NodeResizedEmitter";emit(e,t){if(!e.modelActionTypes.includes("resizeNode"))return;let o=e.initialUpdate.nodesToUpdate?.[0];if(!o)return;let i=o.id,r=e.initialNodesMap.get(i),s=e.nodesMap.get(i);if(!r||!s)return;let a=r.size,d=s.size;a&&d&&(d.width!==a.width||d.height!==a.height)&&t.deferredEmit("nodeResized",{node:s,previousSize:{width:a.width,height:a.height}})}},Hc=class{name="ViewportChangedEmitter";emit({initialState:e,state:t},o){let i=e.metadata.viewport,r=t.metadata.viewport;i.x===r.x&&i.y===r.y&&i.scale===r.scale&&i.width===r.width&&i.height===r.height||o.deferredEmit("viewportChanged",{viewport:r,previousViewport:i})}},yS=(n,e,t)=>`[ngDiagram] Event emitter error: ${n} failed.
65
65
 
66
66
  Action types: ${e.join(", ")}
67
67
  Error: ${t instanceof Error?t.message:String(t)}
68
68
 
69
69
  This may indicate an issue with event handling logic.
70
70
  The diagram will continue to function, but some events may not be emitted.
71
- `,oS=n=>{let e=[new bc,new Mc,new Tc,new Rc,new Nc,new kc,new Oc,new Lc,new Cc,new wc,new vc,new Ac,new Dc,new Sc,new Ec,new Pc,new Ic,new _c,new xc];return{name:"__internal_event_emitter",execute:(t,o)=>{if(o(),n.isEnabled())for(let i of e)try{i.emit(t,n)}catch(r){console.error(nS(i.name,t.modelActionTypes,r))}}}};function Zs(n,e){return _(g({},n),{_internalId:`${n.id}-${e()}`})}var iS={name:"internal-id-assignment",execute:(n,e)=>D(null,null,function*(){let{helpers:t,initialUpdate:o,environment:i}=n;if(!t.anyNodesAdded()&&!t.anyEdgesAdded())return void e();let r=o.nodesToAdd?.map(a=>Zs(a,()=>i.generateId())),s=o.edgesToAdd?.map(a=>Zs(a,()=>i.generateId()));e(g(g(g({},o),r?{nodesToAdd:r}:{}),s?{edgesToAdd:s}:{}))})},Ws={name:"logger",execute:(n,e)=>{n.config.debugMode&&console.log(`[ngDiagram] ${n.modelActionTypes.join(", ")}`,{initialState:n.initialState,finalState:n.state,history:n.history,initialUpdate:n.initialUpdate}),e()}},ec=n=>{if(!vt(n.size)||!Ot(n.position))return!1;if(n.measuredPorts){for(let e of n.measuredPorts)if(!vt(e.size)||!Ot(e.position))return!1}return!0},rS={name:"measured-bounds",execute:(n,e)=>{let{nodesMap:t,modelActionTypes:o,helpers:i}=n;if(o.includes("init")){let a=[];return t.forEach(d=>{ec(d)&&a.push({id:d.id,measuredBounds:oo(d)})}),void e(g({},a.length?{nodesToUpdate:a}:{}))}if(!i.anyNodesAdded()&&!i.checkIfAnyNodePropsChanged(["position","size","angle","measuredPorts"]))return void e();let r=[],s=[];if(i.anyNodesAdded()){let a=i.getAddedNodes();for(let d of a)ec(d)&&r.push(_(g({},d),{measuredBounds:oo(d)}))}if(i.checkIfAnyNodePropsChanged(["position","size","angle","measuredPorts"])){let a=i.getAffectedNodeIds(["position","size","angle","measuredPorts"]);for(let d of a){let l=t.get(d);l&&ec(l)&&s.push({id:l.id,measuredBounds:oo(l)})}}e(g(g({},r.length?{nodesToAdd:r}:{}),s.length?{nodesToUpdate:s}:{}))}},sS=n=>({name:"measurement-tracking",execute:(e,t)=>{let o=n.isTrackingRequested(),i=n.hasPendingMeasurements();if(!o&&!i)return void t();let{helpers:r}=e;if(o){let s=[];if(r.anyNodesAdded())for(let a of r.getAddedNodes())s.push(`node:${a.id}`);if(r.anyEdgesAdded())for(let a of r.getAddedEdges())s.push(`edge:${a.id}`);for(let a of r.getChangedNodeIds())s.push(`node:${a}`);for(let a of r.getChangedEdgeIds())s.push(`edge:${a}`);n.registerParticipants(s)}else{if(r.checkIfAnyNodePropsChanged(["size","position","measuredPorts","angle"]))for(let s of r.getAffectedNodeIds(["size","position","measuredPorts","angle"]))n.signalMeasurement(`node:${s}`);if(r.checkIfAnyEdgePropsChanged(["points","measuredLabels"]))for(let s of r.getAffectedEdgeIds(["points","measuredLabels"]))n.signalMeasurement(`edge:${s}`)}t()}});function aS(n,e,t,o=!1){let i=e.get(n.source)??t.get(n.source)?.computedZIndex??0,r=e.get(n.target)??t.get(n.target)?.computedZIndex??0,s=Math.max(i,r),a=n.zOrder??(o?s+1:s);return _(g({},n),{computedZIndex:a})}var dS=n=>n.includes("init"),lS=n=>n.includes("finishLinking")||n.includes("addEdges");function cS(n,e){let t=new Set;if(n.anyNodesAdded())for(let o of n.getAddedNodes())e.has(o.id)&&t.add(o.id);for(let o of["selected","groupId","zOrder"])if(n.checkIfAnyNodePropsChanged([o]))for(let i of n.getAffectedNodeIds([o]))e.has(i)&&t.add(i);return t}function uS(n,e,t,o,i,r){let s=new Set;if(o)for(let a of n.getAddedEdges())s.add(a.id);if(i)for(let a of n.getAffectedEdgeIds(["selected"]))s.add(a);if(r)for(let a of n.getAffectedEdgeIds(["zOrder"]))s.add(a);if(e.size>0)for(let a of e.keys())for(let d of t.get(a)??[])s.add(d);return s}function pS(n,e){let t=new Set;for(let i of n){let r=e.get(i);r&&(r.groupId!=null?n.has(r.groupId)||t.add(e.has(r.groupId)?r.groupId:i):t.add(i))}let o=[];for(let i of t){let r=new Set,s=e.get(i)?.groupId,a=!1;for(;s!=null&&!r.has(s);){if(t.has(s)){a=!0;break}r.add(s),s=e.get(s)?.groupId}if(!a){let d=e.get(i);d&&o.push(d)}}return o}function hS(n,e,t){if(!t.elevateOnSelection)return 0;let o=new Set,i=0,r=n;for(;r!=null&&!o.has(r.id);)o.add(r.id),r.selected&&(i+=t.selectedZIndex),r=r.groupId!=null?e.get(r.groupId):void 0;return i}function gS(n,e,t,o,i){let r=new Map,s=new Map;for(let a of n){let d,l;if(e.has(a.id)||a.computedZIndex==null)d=0;else{let w=hS(a,t,i);d=a.computedZIndex-w,l={initialCumulativeElevation:w-(a.selected?i.selectedZIndex:0),skipRoot:!0},s.set(a.id,w)}let{nodes:c,elevations:u}=Zm(a,o,d,i,l);for(let w of c)r.set(w.id,w);for(let[w,S]of u)s.set(w,S)}return{nodesWithZIndexMap:r,nodeElevationMap:s}}function fS(n,e){let t=[];for(let o of n.values()){let i=e.get(o.id);i&&o.computedZIndex!==i.computedZIndex&&t.push({id:o.id,computedZIndex:o.computedZIndex})}return t}function mS(n,e,t,o,i,r){let s=[],a=new Map;for(let[d,l]of t)a.set(d,l.computedZIndex??0);for(let d of n){let l=e.get(d);if(!l)continue;let c=aS(l,a,o,i.edgesAboveConnectedNodes).computedZIndex??0;if(i.elevateOnSelection){if(l.zOrder!=null){let u=r.get(l.source)??0,w=r.get(l.target)??0;c+=Math.max(u,w)}l.selected&&(c+=i.selectedZIndex)}c!==l.computedZIndex&&s.push({id:l.id,computedZIndex:c})}return s}var yS={name:"z-index",execute:(n,e)=>{let{state:{edges:t},nodesMap:o,edgesMap:i,initialConnectedEdgesMap:r,helpers:s,modelActionTypes:a,config:d}=n,l=d.zIndex;if(!l.enabled)return void e();let c=dS(a),u=lS(a),w=s.checkIfAnyEdgePropsChanged(["selected"]),S=s.checkIfAnyEdgePropsChanged(["zOrder"]),k,W=()=>(k??=Sa(o),k),Z,X;if(c){let{nodes:le,elevations:Le}=r1(o,l,W());Z=new Map(le.map(Me=>[Me.id,Me])),X=Le}else{let le=cS(s,o);if(le.size===0&&!u&&!w&&!S)return void e();if(le.size>0){let Le=pS(le,o);({nodesWithZIndexMap:Z,nodeElevationMap:X}=gS(Le,le,o,W(),l))}else Z=new Map,X=new Map}let he=fS(Z,o),ke=mS(c?new Set(t.map(le=>le.id)):uS(s,Z,r,u,w,S),i,Z,o,l,X);e(g(g({},he.length>0?{nodesToUpdate:he}:{}),ke.length>0?{edgesToUpdate:ke}:{}))}},Fc=class{middlewareChain=[];eventEmitterMiddleware=null;measurementTrackingMiddleware=null;flowCore;constructor(e,t){this.flowCore=e,t&&t.forEach(o=>this.register(o))}isRegistered(e){return!!this.middlewareChain.find(t=>t.name===e)}register(e){if(this.isRegistered(e.name))throw new Error(`Middleware ${e.name} already registered`);return this.middlewareChain.push(e),()=>this.unregister(e.name)}unregister(e){let t=this.middlewareChain.findIndex(o=>o.name===e);t!==-1&&this.middlewareChain.splice(t,1)}execute(e,t,o){return D(this,null,function*(){!this.eventEmitterMiddleware&&this.flowCore.eventManager&&(this.eventEmitterMiddleware=oS(this.flowCore.eventManager)),!this.measurementTrackingMiddleware&&this.flowCore.measurementTracker&&(this.measurementTrackingMiddleware=sS(this.flowCore.measurementTracker));let i=[...this.middlewareChain,rS,Ws,...this.measurementTrackingMiddleware?[this.measurementTrackingMiddleware]:[],...this.eventEmitterMiddleware?[this.eventEmitterMiddleware]:[]];return yield new yc(this.flowCore,i).run(e,t,o)})}},vS=(n,e)=>`[ngDiagram] Model integrity error: Node references non-existent parent.
71
+ `,vS=n=>{let e=[new Sc,new Oc,new Ac,new Fc,new zc,new Lc,new Bc,new Hc,new Pc,new Ec,new xc,new $c,new Nc,new Tc,new Mc,new kc,new Rc,new Ic,new Dc];return{name:"__internal_event_emitter",execute:(t,o)=>{if(o(),n.isEnabled())for(let i of e)try{i.emit(t,n)}catch(r){console.error(yS(i.name,t.modelActionTypes,r))}}}};function Qs(n,e){return _(h({},n),{_internalId:`${n.id}-${e()}`})}var bS={name:"internal-id-assignment",execute:(n,e)=>M(null,null,function*(){let{helpers:t,initialUpdate:o,environment:i}=n;if(!t.anyNodesAdded()&&!t.anyEdgesAdded())return void e();let r=o.nodesToAdd?.map(a=>Qs(a,()=>i.generateId())),s=o.edgesToAdd?.map(a=>Qs(a,()=>i.generateId()));e(h(h(h({},o),r?{nodesToAdd:r}:{}),s?{edgesToAdd:s}:{}))})},Ys={name:"logger",execute:(n,e)=>{n.config.debugMode&&console.log(`[ngDiagram] ${n.modelActionTypes.join(", ")}`,{initialState:n.initialState,finalState:n.state,history:n.history,initialUpdate:n.initialUpdate}),e()}},rc=n=>{if(!vt(n.size)||!Lt(n.position))return!1;if(n.measuredPorts){for(let e of n.measuredPorts)if(!vt(e.size)||!Lt(e.position))return!1}return!0},wS={name:"measured-bounds",execute:(n,e)=>{let{nodesMap:t,modelActionTypes:o,helpers:i}=n;if(o.includes("init")){let a=[];return t.forEach(d=>{rc(d)&&a.push({id:d.id,measuredBounds:ro(d)})}),void e(h({},a.length?{nodesToUpdate:a}:{}))}if(!i.anyNodesAdded()&&!i.checkIfAnyNodePropsChanged(["position","size","angle","measuredPorts"]))return void e();let r=[],s=[];if(i.anyNodesAdded()){let a=i.getAddedNodes();for(let d of a)rc(d)&&r.push(_(h({},d),{measuredBounds:ro(d)}))}if(i.checkIfAnyNodePropsChanged(["position","size","angle","measuredPorts"])){let a=i.getAffectedNodeIds(["position","size","angle","measuredPorts"]);for(let d of a){let l=t.get(d);l&&rc(l)&&s.push({id:l.id,measuredBounds:ro(l)})}}e(h(h({},r.length?{nodesToAdd:r}:{}),s.length?{nodesToUpdate:s}:{}))}},CS=n=>({name:"measurement-tracking",execute:(e,t)=>{let o=n.isTrackingRequested(),i=n.hasPendingMeasurements();if(!o&&!i)return void t();let{helpers:r}=e;if(o){let s=[];if(r.anyNodesAdded())for(let a of r.getAddedNodes())s.push(`node:${a.id}`);if(r.anyEdgesAdded())for(let a of r.getAddedEdges())s.push(`edge:${a.id}`);for(let a of r.getChangedNodeIds())s.push(`node:${a}`);for(let a of r.getChangedEdgeIds())s.push(`edge:${a}`);n.registerParticipants(s)}else{if(r.checkIfAnyNodePropsChanged(["size","position","measuredPorts","angle"]))for(let s of r.getAffectedNodeIds(["size","position","measuredPorts","angle"]))n.signalMeasurement(`node:${s}`);if(r.checkIfAnyEdgePropsChanged(["points","measuredLabels"]))for(let s of r.getAffectedEdgeIds(["points","measuredLabels"]))n.signalMeasurement(`edge:${s}`)}t()}});function _S(n,e,t,o=!1){let i=e.get(n.source)??t.get(n.source)?.computedZIndex??0,r=e.get(n.target)??t.get(n.target)?.computedZIndex??0,s=Math.max(i,r),a=n.zOrder??(o?s+1:s);return _(h({},n),{computedZIndex:a})}var xS=n=>n.includes("init"),SS=n=>n.includes("finishLinking")||n.includes("addEdges");function ES(n,e){let t=new Set;if(n.anyNodesAdded())for(let o of n.getAddedNodes())e.has(o.id)&&t.add(o.id);for(let o of["selected","groupId","zOrder"])if(n.checkIfAnyNodePropsChanged([o]))for(let i of n.getAffectedNodeIds([o]))e.has(i)&&t.add(i);return t}function PS(n,e,t,o,i,r){let s=new Set;if(o)for(let a of n.getAddedEdges())s.add(a.id);if(i)for(let a of n.getAffectedEdgeIds(["selected"]))s.add(a);if(r)for(let a of n.getAffectedEdgeIds(["zOrder"]))s.add(a);if(e.size>0)for(let a of e.keys())for(let d of t.get(a)??[])s.add(d);return s}function IS(n,e){let t=new Set;for(let i of n){let r=e.get(i);r&&(r.groupId!=null?n.has(r.groupId)||t.add(e.has(r.groupId)?r.groupId:i):t.add(i))}let o=[];for(let i of t){let r=new Set,s=e.get(i)?.groupId,a=!1;for(;s!=null&&!r.has(s);){if(t.has(s)){a=!0;break}r.add(s),s=e.get(s)?.groupId}if(!a){let d=e.get(i);d&&o.push(d)}}return o}function DS(n,e,t){if(!t.elevateOnSelection)return 0;let o=new Set,i=0,r=n;for(;r!=null&&!o.has(r.id);)o.add(r.id),r.selected&&(i+=t.selectedZIndex),r=r.groupId!=null?e.get(r.groupId):void 0;return i}function TS(n,e,t,o,i){let r=new Map,s=new Map;for(let a of n){let d,l;if(e.has(a.id)||a.computedZIndex==null)d=0;else{let w=DS(a,t,i);d=a.computedZIndex-w,l={initialCumulativeElevation:w-(a.selected?i.selectedZIndex:0),skipRoot:!0},s.set(a.id,w)}let{nodes:c,elevations:u}=n0(a,o,d,i,l);for(let w of c)r.set(w.id,w);for(let[w,S]of u)s.set(w,S)}return{nodesWithZIndexMap:r,nodeElevationMap:s}}function MS(n,e){let t=[];for(let o of n.values()){let i=e.get(o.id);i&&o.computedZIndex!==i.computedZIndex&&t.push({id:o.id,computedZIndex:o.computedZIndex})}return t}function kS(n,e,t,o,i,r){let s=[],a=new Map;for(let[d,l]of t)a.set(d,l.computedZIndex??0);for(let d of n){let l=e.get(d);if(!l)continue;let c=_S(l,a,o,i.edgesAboveConnectedNodes).computedZIndex??0;if(i.elevateOnSelection){if(l.zOrder!=null){let u=r.get(l.source)??0,w=r.get(l.target)??0;c+=Math.max(u,w)}l.selected&&(c+=i.selectedZIndex)}c!==l.computedZIndex&&s.push({id:l.id,computedZIndex:c})}return s}var RS={name:"z-index",execute:(n,e)=>{let{state:{edges:t},nodesMap:o,edgesMap:i,initialConnectedEdgesMap:r,helpers:s,modelActionTypes:a,config:d}=n,l=d.zIndex;if(!l.enabled)return void e();let c=xS(a),u=SS(a),w=s.checkIfAnyEdgePropsChanged(["selected"]),S=s.checkIfAnyEdgePropsChanged(["zOrder"]),k,W=()=>(k??=Ia(o),k),Z,K;if(c){let{nodes:de,elevations:Le}=w1(o,l,W());Z=new Map(de.map(Me=>[Me.id,Me])),K=Le}else{let de=ES(s,o);if(de.size===0&&!u&&!w&&!S)return void e();if(de.size>0){let Le=IS(de,o);({nodesWithZIndexMap:Z,nodeElevationMap:K}=TS(Le,de,o,W(),l))}else Z=new Map,K=new Map}let te=MS(Z,o),Ee=kS(c?new Set(t.map(de=>de.id)):PS(s,Z,r,u,w,S),i,Z,o,l,K);e(h(h({},te.length>0?{nodesToUpdate:te}:{}),Ee.length>0?{edgesToUpdate:Ee}:{}))}},Uc=class{middlewareChain=[];eventEmitterMiddleware=null;measurementTrackingMiddleware=null;flowCore;constructor(e,t){this.flowCore=e,t&&t.forEach(o=>this.register(o))}isRegistered(e){return!!this.middlewareChain.find(t=>t.name===e)}register(e){if(this.isRegistered(e.name))throw new Error(`Middleware ${e.name} already registered`);return this.middlewareChain.push(e),()=>this.unregister(e.name)}unregister(e){let t=this.middlewareChain.findIndex(o=>o.name===e);t!==-1&&this.middlewareChain.splice(t,1)}execute(e,t,o){return M(this,null,function*(){!this.eventEmitterMiddleware&&this.flowCore.eventManager&&(this.eventEmitterMiddleware=vS(this.flowCore.eventManager)),!this.measurementTrackingMiddleware&&this.flowCore.measurementTracker&&(this.measurementTrackingMiddleware=CS(this.flowCore.measurementTracker));let i=[...this.middlewareChain,wS,Ys,...this.measurementTrackingMiddleware?[this.measurementTrackingMiddleware]:[],...this.eventEmitterMiddleware?[this.eventEmitterMiddleware]:[]];return yield new _c(this.flowCore,i).run(e,t,o)})}},NS=(n,e)=>`[ngDiagram] Model integrity error: Node references non-existent parent.
72
72
 
73
73
  Node ID: ${n}
74
74
  Parent ID: ${e}
75
75
 
76
76
  This indicates corrupted model data. The group hierarchy will be incomplete.
77
77
 
78
- Documentation: https://www.ngdiagram.dev/docs/guides/nodes/groups/`,bS=(n,e,t)=>`[ngDiagram] Model integrity error: Node's parent is not a group.
78
+ Documentation: https://www.ngdiagram.dev/docs/guides/nodes/groups/`,OS=(n,e,t)=>`[ngDiagram] Model integrity error: Node's parent is not a group.
79
79
 
80
80
  Node ID: ${n}
81
81
  Parent ID: ${e}
@@ -83,15 +83,15 @@ Parent type: ${t}
83
83
 
84
84
  This indicates incorrect model structure. The group hierarchy will be incomplete.
85
85
 
86
- Documentation: https://www.ngdiagram.dev/docs/guides/nodes/groups/`,zc=class{flowCore;_nodesMap={map:new Map,synchronized:!1};_edgesMap={map:new Map,synchronized:!1};_directChildrenMap={map:new Map,synchronized:!1};_descendantsCache={map:new Map,synchronized:!1};_connectedEdgesMap={map:new Map,synchronized:!1};constructor(e){this.flowCore=e}desynchronize(){this._nodesMap.synchronized=!1,this._edgesMap.synchronized=!1,this._directChildrenMap.synchronized=!1,this._descendantsCache.synchronized=!1,this._connectedEdgesMap.synchronized=!1}get nodesMap(){return this._nodesMap.synchronized||(this._nodesMap={map:new Map(this.flowCore.getState().nodes.map(e=>[e.id,e])),synchronized:!0}),this._nodesMap.map}get edgesMap(){return this._edgesMap.synchronized||(this._edgesMap={map:new Map(this.flowCore.getState().edges.map(e=>[e.id,e])),synchronized:!0}),this._edgesMap.map}get directChildrenMap(){return this._directChildrenMap.synchronized||(this._directChildrenMap={map:this.buildDirectChildrenMap(this.flowCore.getState().nodes),synchronized:!0}),this._directChildrenMap.map}get connectedEdgesMap(){return this._connectedEdgesMap.synchronized||(this._connectedEdgesMap={map:this.buildConnectedEdgesMap(this.flowCore.getState().edges),synchronized:!0}),this._connectedEdgesMap.map}get descendantsCache(){return this._descendantsCache.synchronized||(this._descendantsCache={map:new Map,synchronized:!0}),this._descendantsCache.map}buildDirectChildrenMap(e){let t=new Map;for(let o of e)if(o.groupId){let i=t.get(o.groupId)||[];i.push(o.id),t.set(o.groupId,i)}return t}buildConnectedEdgesMap(e){let t=new Map;for(let o of e){let i=t.get(o.source)||[];i.push(o.id),t.set(o.source,i);let r=t.get(o.target)||[];r.push(o.id),t.set(o.target,r)}return t}getNodeById(e){return this.nodesMap.get(e)??null}getEdgeById(e){return this.edgesMap.get(e)??null}getConnectedEdges(e){return(this.connectedEdgesMap.get(e)??[]).map(t=>this.getEdgeById(t)).filter(t=>t!==null)}getConnectedNodes(e){let t=this.connectedEdgesMap.get(e)??[],o=new Set;for(let i of t){let r=this.getEdgeById(i);r&&o.add(r.source===e?r.target:r.source)}return Array.from(o).map(i=>this.getNodeById(i)).filter(i=>i!==null)}getNodeEnds(e){let t=this.getEdgeById(e);if(!t)return null;let o=this.getNodeById(t.source),i=this.getNodeById(t.target);return o&&i?{source:o,target:i}:null}getChildrenIds(e){return this.directChildrenMap.get(e)??[]}getChildren(e){let t=this.getChildrenIds(e);return t?t.map(o=>this.getNodeById(o)).filter(o=>o!==null):[]}getAllDescendantIds(e){if(this.descendantsCache.has(e))return this.descendantsCache.get(e);let t=this.computeAllDescendants(e);return this.descendantsCache.set(e,t),t}computeAllDescendants(e){let t=this.getChildrenIds(e);if(!t||t.length===0)return[];let o=[...t];for(let i of t){let r=this.computeAllDescendants(i);o.push(...r)}return o}getAllDescendants(e){return this.getAllDescendantIds(e).map(t=>this.getNodeById(t)).filter(t=>t!==null)}hasChildren(e){return this.directChildrenMap.has(e)&&this.directChildrenMap.get(e).length>0}hasDescendants(e){return this.getAllDescendantIds(e).length>0}getChildrenMap(){return this.directChildrenMap}getSelectedNodes(){return this.flowCore.getState().nodes.filter(e=>e.selected)}getNodeChildren(e,{directOnly:t=!0}={}){return t?this.getChildren(e):this.getAllDescendants(e)}getNodeChildrenIds(e,{directOnly:t=!0}={}){return t?this.getChildrenIds(e):this.getAllDescendantIds(e)}getSelectedNodesWithChildren({directOnly:e=!0}={}){let t=this.getSelectedNodes(),o=new Set,i=[];for(let r of t){if(o.has(r.id))continue;o.add(r.id),i.push(r);let s=this.getNodeChildren(r.id,{directOnly:e});for(let a of s)o.has(a.id)||(o.add(a.id),i.push(a))}return i}getSelectedEdges(){return this.flowCore.getState().edges.filter(e=>e.selected)}isNodeDescendantOfGroup(e,t){return this.getAllDescendantIds(t).includes(e)}wouldCreateCircularDependency(e,t){return e===t||this.isNodeDescendantOfGroup(t,e)}getParentChain(e){let t=[],o=this.getNodeById(e);for(;o&&o.groupId;){let i=this.getNodeById(o.groupId);if(!i)return console.error(vS(o.id,o.groupId)),t;if(!io(i))return console.error(bS(o.id,i.id,i.type||"unknown")),t;t.push(i),o=i}return t}},Ks=n=>n.map(({id:e,size:t,position:o})=>({portId:e,portChanges:{size:t,position:o}})),Bc=class extends qs{constructor(e){super(t=>{let o=e(t)?.measuredPorts??[],i=new Set;for(let r of o)vt(r.size)&&Ot(r.position)&&i.add(r.id);return i})}},$c=class{lastVisibleNodeIds=null;withPerformanceLogging(e,t,o){if(!o)return void e();let{added:i,removed:r,total:s}=this.calculateNodeDiff(t),a=i>0||r>0,d=performance.now();e(),a&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{console.log(`[ngDiagram] Render: +${i} -${r} nodes (total: ${s}): ${(performance.now()-d).toFixed(2)}ms`)})})}calculateNodeDiff(e){let t=new Set(e.map(s=>s.id)),o=this.lastVisibleNodeIds??new Set,i=0,r=0;for(let s of t)o.has(s)||i++;for(let s of o)t.has(s)||r++;return this.lastVisibleNodeIds=t,{added:i,removed:r,total:t.size}}},Xs=class{flowCore;performanceLogger;constructor(e){this.flowCore=e,this.performanceLogger=new $c}render(){let{nodes:e,edges:t,metadata:o}=this.flowCore.getState(),i=this.flowCore.actionStateManager.linking?.temporaryEdge,{nodes:r,edges:s}=this.process(e,t,o.viewport),a=i?.temporary?[...s,i]:s;this.performanceLogger.withPerformanceLogging(()=>this.flowCore.renderer.draw(r,a,o.viewport),r,this.flowCore.config.debugMode)}},_m=new Set,Hc=class extends Xs{constructor(e){super(e)}init(){this.render(),this.flowCore.model.onChange(o=>{this.flowCore.spatialHash.process(o.nodes),this.flowCore.modelLookup.desynchronize(),this.render()});let e=this.flowCore.model.getNodes(),t=this.flowCore.model.getEdges();this.flowCore.initUpdater.start(e,t,()=>D(this,null,function*(){yield this.flowCore.commandHandler.emit("init",{renderedNodeIds:e.map(o=>o.id),renderedEdgeIds:t.map(o=>o.id)})}))}process(e,t){return{nodes:e,edges:t,nodeIds:_m,edgeIds:_m}}isNodeRendered(e){return!0}},Uc=class{flowCore;onIdle;wasPanning=!1;idleTimeout=null;unsubscribeActionState=null;constructor(e,t){this.flowCore=e,this.onIdle=t}init(){this.unsubscribeActionState=this.flowCore.eventManager.on("actionStateChanged",({actionState:e})=>{let t=!!e.panning?.active;this.wasPanning&&!t?this.scheduleIdleRender():t&&this.idleTimeout&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),this.wasPanning=t})}scheduleIdleRender(){this.idleTimeout&&clearTimeout(this.idleTimeout),this.idleTimeout=setTimeout(()=>{this.onIdle(),this.idleTimeout=null},this.flowCore.config.virtualization.idleDelay??100)}destroy(){this.idleTimeout&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),this.unsubscribeActionState&&(this.unsubscribeActionState(),this.unsubscribeActionState=null)}};function xm(n){return!!n}function wS(n,e){let{x:t,y:o,scale:i,width:r,height:s}=n,a=r||1920,d=s||1080,l=-t/i,c=-o/i,u=a/i,w=d/i,S=e*Math.min(1,i),k=Math.max(a,d)*S/i;return{x:l-k,y:c-k,width:u+2*k,height:w+2*k}}function CS(n,e){let t=.25*n.width,o=.25*n.height,i=.1*n.width,r=.1*n.height;return Math.abs(n.x-e.x)<t&&Math.abs(n.y-e.y)<o&&Math.abs(n.width-e.width)<i&&Math.abs(n.height-e.height)<r}function _S(n,e){let t=.4*e.width,o=.4*e.height;return Math.abs(n.x-e.x)>t||Math.abs(n.y-e.y)>o}var Vc=class{cachedResult=null;lastViewportRect=null;lastNodesLength=0;lastEdgesLength=0;hasCache(){return this.cachedResult!==null}isNodeInCache(e){return this.cachedResult?.nodeIds.has(e)??!1}get(e,t){let o=this.cachedResult;return{nodes:e.filter(i=>o.nodeIds.has(i.id)),edges:t.filter(i=>o.edgeIds.has(i.id)),nodeIds:o.nodeIds,edgeIds:o.edgeIds}}set(e,t,o,i){this.cachedResult=e,this.lastViewportRect=i,this.lastNodesLength=t.length,this.lastEdgesLength=o.length}canUse(e,t,o){return!(!this.cachedResult||!this.lastViewportRect)&&e===this.lastNodesLength&&t===this.lastEdgesLength&&CS(this.lastViewportRect,o)}hasMovedTooFar(e){return!this.lastViewportRect||_S(e,this.lastViewportRect)}invalidateViewport(){this.lastViewportRect=null}invalidate(){this.cachedResult=null,this.lastViewportRect=null,this.lastNodesLength=0,this.lastEdgesLength=0}},jc=class{flowCore;constructor(e){this.flowCore=e}resolve(e){let t=this.getPrimaryVisibleIds(e),{edges:o,edgeIds:i,externalNodeIds:r}=this.collectVisibleEdges(t),{nodes:s,nodeIds:a}=this.buildNodeList(t,r);return{nodes:s,edges:o,nodeIds:a,edgeIds:i}}getPrimaryVisibleIds(e){let t=new Set(this.flowCore.spatialHash.queryIds(e));return this.addGroupDescendants(t),t}addGroupDescendants(e){let t=this.flowCore.modelLookup.nodesMap,o=Array.from(e);for(let i of o){let r=t.get(i);if(r&&io(r))for(let s of this.flowCore.modelLookup.getAllDescendantIds(i))e.add(s)}}collectVisibleEdges(e){let t=[],o=new Set,i=new Set;for(let r of e)for(let s of this.flowCore.modelLookup.getConnectedEdges(r))o.has(s.id)||(t.push(s),o.add(s.id),e.has(s.source)||i.add(s.source),e.has(s.target)||i.add(s.target));return{edges:t,edgeIds:o,externalNodeIds:i}}buildNodeList(e,t){let o=this.flowCore.modelLookup.nodesMap,i=new Set(e);for(let s of t)i.add(s);let r=[];for(let s of i){let a=o.get(s);a&&r.push(a)}return{nodes:r,nodeIds:i}}};var Wc=class{onZoomEnd;lastScale=null;isZooming=!1;zoomIdleTimeout=null;constructor(e){this.onZoomEnd=e}handleScaleChange(e){this.lastScale!==null&&this.lastScale!==e&&(this.isZooming=!0,this.scheduleZoomIdle()),this.lastScale=e}getIsZooming(){return this.isZooming}destroy(){this.zoomIdleTimeout&&(clearTimeout(this.zoomIdleTimeout),this.zoomIdleTimeout=null)}scheduleZoomIdle(){this.zoomIdleTimeout&&clearTimeout(this.zoomIdleTimeout),this.zoomIdleTimeout=setTimeout(()=>{this.isZooming=!1,this.zoomIdleTimeout=null,this.onZoomEnd()},300)}},Sm=new Set,Gc=class extends Xs{cache=new Vc;visibleElementsResolver;zoomTracker;idleRenderScheduler;lastNodesRef=null;constructor(e){super(e),this.visibleElementsResolver=new jc(e),this.zoomTracker=new Wc(()=>this.invalidateAndRender()),this.idleRenderScheduler=new Uc(e,()=>this.invalidateAndRender())}init(){this.flowCore.spatialHash.process(this.flowCore.model.getNodes()),this.flowCore.model.onChange(r=>{r.nodes!==this.lastNodesRef&&(this.flowCore.spatialHash.process(r.nodes),this.flowCore.modelLookup.desynchronize(),this.lastNodesRef=r.nodes),this.render()}),this.idleRenderScheduler.init(),this.render();let{nodes:e,edges:t,metadata:o}=this.flowCore.getState(),i=this.process(e,t,o.viewport);this.flowCore.initUpdater.start(i.nodes,i.edges,()=>D(this,null,function*(){yield this.flowCore.commandHandler.emit("init",{renderedNodeIds:i.nodes.map(r=>r.id),renderedEdgeIds:i.edges.map(r=>r.id)})}))}process(e,t,o){let i=this.flowCore.config.virtualization;if(!xm(o))return{nodes:e,edges:t,nodeIds:Sm,edgeIds:Sm};this.zoomTracker.handleScaleChange(o.scale);let r=wS(o,i.padding),s=this.cache.hasCache();if(this.zoomTracker.getIsZooming()&&s)return this.cache.get(e,t);if(this.flowCore.actionStateManager.isPanning()&&s)return this.cache.get(e,t);if(this.cache.canUse(e.length,t.length,r))return this.cache.get(e,t);let a=this.visibleElementsResolver.resolve(r);return this.cache.set(a,e,t,r),a}destroy(){this.zoomTracker.destroy(),this.idleRenderScheduler.destroy()}isNodeRendered(e){return!xm(this.flowCore.model.getMetadata().viewport)||this.cache.isNodeInCache(e)}invalidateAndRender(){this.cache.invalidateViewport(),this.render()}},xS=(n,e)=>`[ngDiagram] Spatial hash error: Attempted to remove from non-existent cell "${n}".
86
+ Documentation: https://www.ngdiagram.dev/docs/guides/nodes/groups/`,jc=class{flowCore;_nodesMap={map:new Map,synchronized:!1};_edgesMap={map:new Map,synchronized:!1};_directChildrenMap={map:new Map,synchronized:!1};_descendantsCache={map:new Map,synchronized:!1};_connectedEdgesMap={map:new Map,synchronized:!1};constructor(e){this.flowCore=e}desynchronize(){this._nodesMap.synchronized=!1,this._edgesMap.synchronized=!1,this._directChildrenMap.synchronized=!1,this._descendantsCache.synchronized=!1,this._connectedEdgesMap.synchronized=!1}get nodesMap(){return this._nodesMap.synchronized||(this._nodesMap={map:new Map(this.flowCore.getState().nodes.map(e=>[e.id,e])),synchronized:!0}),this._nodesMap.map}get edgesMap(){return this._edgesMap.synchronized||(this._edgesMap={map:new Map(this.flowCore.getState().edges.map(e=>[e.id,e])),synchronized:!0}),this._edgesMap.map}get directChildrenMap(){return this._directChildrenMap.synchronized||(this._directChildrenMap={map:this.buildDirectChildrenMap(this.flowCore.getState().nodes),synchronized:!0}),this._directChildrenMap.map}get connectedEdgesMap(){return this._connectedEdgesMap.synchronized||(this._connectedEdgesMap={map:this.buildConnectedEdgesMap(this.flowCore.getState().edges),synchronized:!0}),this._connectedEdgesMap.map}get descendantsCache(){return this._descendantsCache.synchronized||(this._descendantsCache={map:new Map,synchronized:!0}),this._descendantsCache.map}buildDirectChildrenMap(e){let t=new Map;for(let o of e)if(o.groupId){let i=t.get(o.groupId)||[];i.push(o.id),t.set(o.groupId,i)}return t}buildConnectedEdgesMap(e){let t=new Map;for(let o of e){let i=t.get(o.source)||[];i.push(o.id),t.set(o.source,i);let r=t.get(o.target)||[];r.push(o.id),t.set(o.target,r)}return t}getNodeById(e){return this.nodesMap.get(e)??null}getEdgeById(e){return this.edgesMap.get(e)??null}getConnectedEdges(e){return(this.connectedEdgesMap.get(e)??[]).map(t=>this.getEdgeById(t)).filter(t=>t!==null)}getConnectedNodes(e){let t=this.connectedEdgesMap.get(e)??[],o=new Set;for(let i of t){let r=this.getEdgeById(i);r&&o.add(r.source===e?r.target:r.source)}return Array.from(o).map(i=>this.getNodeById(i)).filter(i=>i!==null)}getNodeEnds(e){let t=this.getEdgeById(e);if(!t)return null;let o=this.getNodeById(t.source),i=this.getNodeById(t.target);return o&&i?{source:o,target:i}:null}getChildrenIds(e){return this.directChildrenMap.get(e)??[]}getChildren(e){let t=this.getChildrenIds(e);return t?t.map(o=>this.getNodeById(o)).filter(o=>o!==null):[]}getAllDescendantIds(e){if(this.descendantsCache.has(e))return this.descendantsCache.get(e);let t=this.computeAllDescendants(e);return this.descendantsCache.set(e,t),t}computeAllDescendants(e){let t=this.getChildrenIds(e);if(!t||t.length===0)return[];let o=[...t];for(let i of t){let r=this.computeAllDescendants(i);o.push(...r)}return o}getAllDescendants(e){return this.getAllDescendantIds(e).map(t=>this.getNodeById(t)).filter(t=>t!==null)}hasChildren(e){return this.directChildrenMap.has(e)&&this.directChildrenMap.get(e).length>0}hasDescendants(e){return this.getAllDescendantIds(e).length>0}getChildrenMap(){return this.directChildrenMap}getSelectedNodes(){return this.flowCore.getState().nodes.filter(e=>e.selected)}getNodeChildren(e,{directOnly:t=!0}={}){return t?this.getChildren(e):this.getAllDescendants(e)}getNodeChildrenIds(e,{directOnly:t=!0}={}){return t?this.getChildrenIds(e):this.getAllDescendantIds(e)}getSelectedNodesWithChildren({directOnly:e=!0}={}){let t=this.getSelectedNodes(),o=new Set,i=[];for(let r of t){if(o.has(r.id))continue;o.add(r.id),i.push(r);let s=this.getNodeChildren(r.id,{directOnly:e});for(let a of s)o.has(a.id)||(o.add(a.id),i.push(a))}return i}getSelectedEdges(){return this.flowCore.getState().edges.filter(e=>e.selected)}isNodeDescendantOfGroup(e,t){return this.getAllDescendantIds(t).includes(e)}wouldCreateCircularDependency(e,t){return e===t||this.isNodeDescendantOfGroup(t,e)}getParentChain(e){let t=[],o=this.getNodeById(e);for(;o&&o.groupId;){let i=this.getNodeById(o.groupId);if(!i)return console.error(NS(o.id,o.groupId)),t;if(!so(i))return console.error(OS(o.id,i.id,i.type||"unknown")),t;t.push(i),o=i}return t}},Js=n=>n.map(({id:e,size:t,position:o})=>({portId:e,portChanges:{size:t,position:o}})),Vc=class extends Ks{constructor(e){super(t=>{let o=e(t)?.measuredPorts??[],i=new Set;for(let r of o)vt(r.size)&&Lt(r.position)&&i.add(r.id);return i})}},Wc=class{lastVisibleNodeIds=null;withPerformanceLogging(e,t,o){if(!o)return void e();let{added:i,removed:r,total:s}=this.calculateNodeDiff(t),a=i>0||r>0,d=performance.now();e(),a&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{console.log(`[ngDiagram] Render: +${i} -${r} nodes (total: ${s}): ${(performance.now()-d).toFixed(2)}ms`)})})}calculateNodeDiff(e){let t=new Set(e.map(s=>s.id)),o=this.lastVisibleNodeIds??new Set,i=0,r=0;for(let s of t)o.has(s)||i++;for(let s of o)t.has(s)||r++;return this.lastVisibleNodeIds=t,{added:i,removed:r,total:t.size}}},ea=class{flowCore;performanceLogger;constructor(e){this.flowCore=e,this.performanceLogger=new Wc}render(){let{nodes:e,edges:t,metadata:o}=this.flowCore.getState(),i=this.flowCore.actionStateManager.linking?.temporaryEdge,{nodes:r,edges:s}=this.process(e,t,o.viewport),a=i?.temporary?[...s,i]:s;this.performanceLogger.withPerformanceLogging(()=>this.flowCore.renderer.draw(r,a,o.viewport),r,this.flowCore.config.debugMode)}},Tm=new Set,Gc=class extends ea{constructor(e){super(e)}init(){this.render(),this.flowCore.model.onChange(o=>{this.flowCore.spatialHash.process(o.nodes),this.flowCore.modelLookup.desynchronize(),this.render()});let e=this.flowCore.model.getNodes(),t=this.flowCore.model.getEdges();this.flowCore.initUpdater.start(e,t,()=>M(this,null,function*(){yield this.flowCore.commandHandler.emit("init",{renderedNodeIds:e.map(o=>o.id),renderedEdgeIds:t.map(o=>o.id)})}))}process(e,t){return{nodes:e,edges:t,nodeIds:Tm,edgeIds:Tm}}isNodeRendered(e){return!0}},qc=class{flowCore;onIdle;wasPanning=!1;idleTimeout=null;unsubscribeActionState=null;constructor(e,t){this.flowCore=e,this.onIdle=t}init(){this.unsubscribeActionState=this.flowCore.eventManager.on("actionStateChanged",({actionState:e})=>{let t=!!e.panning?.active;this.wasPanning&&!t?this.scheduleIdleRender():t&&this.idleTimeout&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),this.wasPanning=t})}scheduleIdleRender(){this.idleTimeout&&clearTimeout(this.idleTimeout),this.idleTimeout=setTimeout(()=>{this.onIdle(),this.idleTimeout=null},this.flowCore.config.virtualization.idleDelay??100)}destroy(){this.idleTimeout&&(clearTimeout(this.idleTimeout),this.idleTimeout=null),this.unsubscribeActionState&&(this.unsubscribeActionState(),this.unsubscribeActionState=null)}};function Mm(n){return!!n}function AS(n,e){let{x:t,y:o,scale:i,width:r,height:s}=n,a=r||1920,d=s||1080,l=-t/i,c=-o/i,u=a/i,w=d/i,S=e*Math.min(1,i),k=Math.max(a,d)*S/i;return{x:l-k,y:c-k,width:u+2*k,height:w+2*k}}function LS(n,e){let t=.25*n.width,o=.25*n.height,i=.1*n.width,r=.1*n.height;return Math.abs(n.x-e.x)<t&&Math.abs(n.y-e.y)<o&&Math.abs(n.width-e.width)<i&&Math.abs(n.height-e.height)<r}function FS(n,e){let t=.4*e.width,o=.4*e.height;return Math.abs(n.x-e.x)>t||Math.abs(n.y-e.y)>o}var Yc=class{cachedResult=null;lastViewportRect=null;lastNodesLength=0;lastEdgesLength=0;hasCache(){return this.cachedResult!==null}isNodeInCache(e){return this.cachedResult?.nodeIds.has(e)??!1}get(e,t){let o=this.cachedResult;return{nodes:e.filter(i=>o.nodeIds.has(i.id)),edges:t.filter(i=>o.edgeIds.has(i.id)),nodeIds:o.nodeIds,edgeIds:o.edgeIds}}set(e,t,o,i){this.cachedResult=e,this.lastViewportRect=i,this.lastNodesLength=t.length,this.lastEdgesLength=o.length}canUse(e,t,o){return!(!this.cachedResult||!this.lastViewportRect)&&e===this.lastNodesLength&&t===this.lastEdgesLength&&LS(this.lastViewportRect,o)}hasMovedTooFar(e){return!this.lastViewportRect||FS(e,this.lastViewportRect)}invalidateViewport(){this.lastViewportRect=null}invalidate(){this.cachedResult=null,this.lastViewportRect=null,this.lastNodesLength=0,this.lastEdgesLength=0}},Zc=class{flowCore;constructor(e){this.flowCore=e}resolve(e){let t=this.getPrimaryVisibleIds(e),{edges:o,edgeIds:i,externalNodeIds:r}=this.collectVisibleEdges(t),{nodes:s,nodeIds:a}=this.buildNodeList(t,r);return{nodes:s,edges:o,nodeIds:a,edgeIds:i}}getPrimaryVisibleIds(e){let t=new Set(this.flowCore.spatialHash.queryIds(e));return this.addGroupDescendants(t),t}addGroupDescendants(e){let t=this.flowCore.modelLookup.nodesMap,o=Array.from(e);for(let i of o){let r=t.get(i);if(r&&so(r))for(let s of this.flowCore.modelLookup.getAllDescendantIds(i))e.add(s)}}collectVisibleEdges(e){let t=[],o=new Set,i=new Set;for(let r of e)for(let s of this.flowCore.modelLookup.getConnectedEdges(r))o.has(s.id)||(t.push(s),o.add(s.id),e.has(s.source)||i.add(s.source),e.has(s.target)||i.add(s.target));return{edges:t,edgeIds:o,externalNodeIds:i}}buildNodeList(e,t){let o=this.flowCore.modelLookup.nodesMap,i=new Set(e);for(let s of t)i.add(s);let r=[];for(let s of i){let a=o.get(s);a&&r.push(a)}return{nodes:r,nodeIds:i}}};var Kc=class{onZoomEnd;lastScale=null;isZooming=!1;zoomIdleTimeout=null;constructor(e){this.onZoomEnd=e}handleScaleChange(e){this.lastScale!==null&&this.lastScale!==e&&(this.isZooming=!0,this.scheduleZoomIdle()),this.lastScale=e}getIsZooming(){return this.isZooming}destroy(){this.zoomIdleTimeout&&(clearTimeout(this.zoomIdleTimeout),this.zoomIdleTimeout=null)}scheduleZoomIdle(){this.zoomIdleTimeout&&clearTimeout(this.zoomIdleTimeout),this.zoomIdleTimeout=setTimeout(()=>{this.isZooming=!1,this.zoomIdleTimeout=null,this.onZoomEnd()},300)}},km=new Set,Xc=class extends ea{cache=new Yc;visibleElementsResolver;zoomTracker;idleRenderScheduler;lastNodesRef=null;constructor(e){super(e),this.visibleElementsResolver=new Zc(e),this.zoomTracker=new Kc(()=>this.invalidateAndRender()),this.idleRenderScheduler=new qc(e,()=>this.invalidateAndRender())}init(){this.flowCore.spatialHash.process(this.flowCore.model.getNodes()),this.flowCore.model.onChange(r=>{r.nodes!==this.lastNodesRef&&(this.flowCore.spatialHash.process(r.nodes),this.flowCore.modelLookup.desynchronize(),this.lastNodesRef=r.nodes),this.render()}),this.idleRenderScheduler.init(),this.render();let{nodes:e,edges:t,metadata:o}=this.flowCore.getState(),i=this.process(e,t,o.viewport);this.flowCore.initUpdater.start(i.nodes,i.edges,()=>M(this,null,function*(){yield this.flowCore.commandHandler.emit("init",{renderedNodeIds:i.nodes.map(r=>r.id),renderedEdgeIds:i.edges.map(r=>r.id)})}))}process(e,t,o){let i=this.flowCore.config.virtualization;if(!Mm(o))return{nodes:e,edges:t,nodeIds:km,edgeIds:km};this.zoomTracker.handleScaleChange(o.scale);let r=AS(o,i.padding),s=this.cache.hasCache();if(this.zoomTracker.getIsZooming()&&s)return this.cache.get(e,t);if(this.flowCore.actionStateManager.isPanning()&&s)return this.cache.get(e,t);if(this.cache.canUse(e.length,t.length,r))return this.cache.get(e,t);let a=this.visibleElementsResolver.resolve(r);return this.cache.set(a,e,t,r),a}destroy(){this.zoomTracker.destroy(),this.idleRenderScheduler.destroy()}isNodeRendered(e){return!Mm(this.flowCore.model.getMetadata().viewport)||this.cache.isNodeInCache(e)}invalidateAndRender(){this.cache.invalidateViewport(),this.render()}},zS=(n,e)=>`[ngDiagram] Spatial hash error: Attempted to remove from non-existent cell "${n}".
87
87
 
88
88
  Node ID: ${e}
89
89
 
90
- This may indicate a state synchronization issue.`,SS=(n,e)=>`[ngDiagram] Spatial hash error: Attempted to update non-existent cell "${n}".
90
+ This may indicate a state synchronization issue.`,BS=(n,e)=>`[ngDiagram] Spatial hash error: Attempted to update non-existent cell "${n}".
91
91
 
92
92
  Node ID: ${e}
93
93
 
94
- This may indicate a state synchronization issue.`,qc=class{cellSize=100;grid=new Map;idToCells=new Map;idToRect=new Map;process(e){let t=new Set(this.idToRect.keys()),o=new Set;for(let i of e){o.add(i.id);let r=this.idToRect.get(i.id);if(r){let s=this.nodeToRect(i);dc(r,s)||this.updateInGrid(s)}else this.addToGrid(this.nodeToRect(i))}for(let i of t.difference(o))this.removeFromGrid(i)}query(e){let t=[];return this._query(e,o=>t.push(o)),t}queryIds(e){let t=[];return this._query(e,o=>t.push(o.id)),t}_query(e,t){let o=this.getCells(e),i=new Set;for(let r of o){let s=this.grid.get(r);if(s)for(let a of s)i.has(a.id)||(i.add(a.id),Om(a,e)&&t(a))}}nodeToRect(e){let t=e.measuredBounds??oo(e);return g({id:e.id},t)}addToCell(e,t){this.grid.has(e)||this.grid.set(e,[]),this.grid.get(e).push(t)}removeFromCell(e,t){let o=this.grid.get(e);if(!o)return void console.error(xS(e,t));let i=o.filter(r=>r.id!==t);this.grid.set(e,i)}updateInCell(e,t){let o=this.grid.get(e);if(!o)return void console.error(SS(e,t.id));let i=o.filter(({id:r})=>r!==t.id);this.grid.set(e,[...i,t])}addToGrid(e){let t=this.getCells(e);for(let o of t)this.addToCell(o,e);this.idToCells.set(e.id,t),this.idToRect.set(e.id,e)}updateInGrid(e){let t=this.getCells(e),o=new Set(t),i=new Set(this.idToCells.get(e.id)||[]),r=i.difference(o),s=o.difference(i),a=o.intersection(i);for(let d of r)this.removeFromCell(d,e.id);for(let d of s)this.addToCell(d,e);for(let d of a)this.updateInCell(d,e);this.idToRect.set(e.id,e),this.idToCells.set(e.id,t)}removeFromGrid(e){let t=this.idToCells.get(e);if(t){for(let o of t){this.removeFromCell(o,e);let i=this.grid.get(o);i&&i.length===0&&this.grid.delete(o)}this.idToCells.delete(e),this.idToRect.delete(e)}}getCellsRange(e,t){return[Math.floor(e/this.cellSize),Math.floor((e+t)/this.cellSize)]}getCells(e){let[t,o]=this.getCellsRange(e.x,e.width),[i,r]=this.getCellsRange(e.y,e.height),s=[];for(let a=t;a<=o;a++)for(let d=i;d<=r;d++)s.push(`${a}-${d}`);return s}},Ep=(n,e)=>{if(Yc(n)&&!n.size||Yc(e)&&!e.size)return!1;let t=Em(n),o=Em(e);if(t.length===0||o.length===0)return!1;let i=[...Im(t),...Im(o)];for(let r of i){let s=Pm(t,r),a=Pm(o,r);if(!ES(s,a))return!1}return!0},Yc=n=>"position"in n,Em=n=>Yc(n)?n.size?cc(_t(n),n.angle??0):[]:cc(n,n.angle??0),Pm=(n,e)=>{let t=n[0].x*e.x+n[0].y*e.y,o=t;for(let i=1;i<n.length;i++){let r=n[i].x*e.x+n[i].y*e.y;r<t&&(t=r),r>o&&(o=r)}return{min:t,max:o}},ES=(n,e)=>!(n.max<e.min||e.max<n.min),Im=n=>{let e=[];for(let t=0;t<n.length;t++){let o=n[t],i=n[(t+1)%n.length],r={x:i.x-o.x,y:i.y-o.y},s=Math.sqrt(r.x*r.x+r.y*r.y);s>0&&e.push({x:-r.y/s,y:r.x/s})}return e},Pp=(n,e,t)=>{let o=Gs(e,t),i=n.spatialHash.queryIds(o),r=[];for(let s of i){let a=n.modelLookup.getNodeById(s);a&&Ep(o,a)&&r.push(a)}return r},PS=(n,e,t)=>Pp(n,e,t).sort((o,i)=>lc(_t(o),Gs(e,1))-lc(_t(i),Gs(e,1)))[0]||null,IS=(n,e,t)=>{let o=new Map;Pp(n,e,t).forEach(s=>{o.set(s,s.measuredPorts||[])});let i=1/0,r=null;for(let[s,a]of o.entries())for(let d of a){let{x:l,y:c}=_t(d),u=lc(_t({size:d.size,position:{x:l+s.position.x,y:c+s.position.y}}),Gs(e,1));u<=t&&u<i&&(i=u,r=d)}return r},DS=(n,e,t=!0)=>{let o=n.spatialHash.queryIds(e),i=[];for(let r of o){let s=n.modelLookup.getNodeById(r);s&&Ep(e,s)&&i.push(s)}return t?i:i.filter(r=>{let s=_t(r);return I_(e,s)})};function MS(n,e){let t=typeof e=="string",o=t?n.modelLookup.getNodeById(e):e;if(!o)return[];let i=t?o.measuredBounds??oo(o):oo(o),r=n.spatialHash.queryIds(i),s=[];for(let a of r){if(a===o.id)continue;let d=n.modelLookup.getNodeById(a);d&&Ep(o,d)&&s.push(d)}return s}function TS(n,e){return{emit:(t,...o)=>D(null,null,function*(){if(n.isAborted())throw new Error("Cannot emit on rolled back transaction");yield e.commandHandler.emitInternal(t,!0,...o)}),abort:()=>{n.abort()},savepoint:t=>{if(n.isAborted())throw new Error("Cannot create savepoint on rolled back transaction");n.addSavepoint(t)},rollbackTo:t=>{if(n.isAborted())throw new Error("Cannot rollback to savepoint on already rolled back transaction");n.rollback(t)},transaction:(t,o)=>e.transactionManager.transaction(t,o),hasChanges:()=>n.hasChanges(),isDirty:()=>!n.isAborted()&&n.hasChanges(),getQueuedUpdates:()=>n.getQueue()}}var Zc=class{name;parent;flowCore;queue=[];savepoints=new Map;_isAborted=!1;children=[];_context=null;constructor(e,t,o){this.name=e,this.parent=t,this.flowCore=o,t&&t.children.push(this)}get context(){return this._context||(this._context=TS(this,this.flowCore)),this._context}isAborted(){return this._isAborted}abort(){this._isAborted||(this._isAborted=!0,this.queue=[],this.savepoints.clear(),this.children.forEach(e=>e.abort()))}addSavepoint(e){this.ensureNotAborted(),this.savepoints.set(e,this.queue.length)}rollback(e){if(this.ensureNotAborted(),e===void 0)return this.queue=[],this.savepoints.clear(),void this.children.forEach(i=>i.rollback());let t=this.savepoints.get(e);if(t===void 0)throw new Error(`Savepoint '${e}' not found`);this.queue=this.queue.slice(0,t);let o=[];this.savepoints.forEach((i,r)=>{i>t&&o.push(r)}),o.forEach(i=>this.savepoints.delete(i)),this.children.forEach(i=>i.rollback())}commit(){this.ensureNotAborted(),this.parent&&this.mergeToParent()}canCommit(){return!this._isAborted&&this.hasChanges()}ensureNotAborted(){if(this._isAborted)throw new Error("Cannot perform operation on aborted transaction")}hasChanges(){return this.queue.length>0||this.children.some(e=>e.hasChanges())}getQueue(){return[...this.queue]}queueUpdate(e,t){this.ensureNotAborted(),this.queue.push({update:e,actionTypes:t})}getState(){return{name:this.name,queue:[...this.queue],savepoints:new Map(this.savepoints),isAborted:this._isAborted,parent:this.parent}}mergeToParent(){this.ensureNotAborted(),this.parent&&this.queue.forEach(e=>{this.parent.queueUpdate(e.update,e.actionTypes)})}getMergedUpdates(){if(this._isAborted)return{mergedUpdate:{},commandsCount:0,actionTypes:[]};let e=this.queue.length,t=new Set([this.name]),o=[],i=[],r=[],s=[],a=[],d=[],l=[];for(let{update:u,actionTypes:w}of this.queue)w.forEach(S=>t.add(S)),u.nodesToAdd?.length&&o.push(u.nodesToAdd),u.nodesToRemove?.length&&i.push(u.nodesToRemove),u.nodesToUpdate?.length&&r.push(u.nodesToUpdate),u.edgesToAdd?.length&&s.push(u.edgesToAdd),u.edgesToRemove?.length&&a.push(u.edgesToRemove),u.edgesToUpdate?.length&&d.push(u.edgesToUpdate),u.metadataUpdate&&l.push(u.metadataUpdate);let c={};return o.length>0&&(c.nodesToAdd=o.flat()),i.length>0&&(c.nodesToRemove=i.flat()),r.length>0&&(c.nodesToUpdate=r.flat()),s.length>0&&(c.edgesToAdd=s.flat()),a.length>0&&(c.edgesToRemove=a.flat()),d.length>0&&(c.edgesToUpdate=d.flat()),l.length>0&&(c.metadataUpdate=Object.assign({},...l)),{mergedUpdate:c,commandsCount:e,actionTypes:[...t]}}},Kc=class{flowCore;transactionStack=[];pendingOptions=null;constructor(e){this.flowCore=e}transaction(e,t,o){return D(this,null,function*(){let[i,r,s]=this.parseArgs(e,t,o),a=this.getCurrentTransaction(),d=new Zc(i,a,this.flowCore);!a&&s&&(this.pendingOptions=s),this.transactionStack.push(d);try{if(yield r(d.context),!d.isAborted()){if(!a){let{mergedUpdate:l,commandsCount:c,actionTypes:u}=d.getMergedUpdates();return{results:l,commandsCount:c,actionTypes:u}}d.mergeToParent()}return{results:{},commandsCount:0,actionTypes:[]}}catch(l){throw d.rollback(),l}finally{this.transactionStack.pop(),a||(this.pendingOptions=null)}})}getCurrentOptions(){return this.pendingOptions}queueUpdate(e,t){let o=this.getCurrentTransaction();if(!o)throw new Error("No active transaction. Cannot queue update.");o.queueUpdate(e,t)}isActive(){return this.transactionStack.length>0}getTransactionName(){let e=this.getCurrentTransaction();return e?e.getState().name:null}getCurrentTransaction(){return this.transactionStack[this.transactionStack.length-1]||null}parseArgs(e,t,o){if(typeof e=="function")return["transaction",e,t];if(typeof t!="function")throw new Error("Callback is required when transaction name is provided");return[e,t,o]}};var Xc=class{initializedPorts=new Map;initializedLabels=new Map;nodeSizes=new Map;portRects=new Map;edgeLabelSizes=new Map;portsToMeasure=new Set;labelsToMeasure=new Set;nodesToMeasure=new Set;measuredNodes=new Set;measuredPorts=new Set;measuredLabels=new Set;trackNodeMeasurement(e,t){this.nodeSizes.set(e,t),vt(t)&&this.measuredNodes.add(e)}trackPortMeasurement(e,t,o,i){let r=this.getCompoundId(e,t);this.portRects.set(r,{size:o,position:i}),vt(o)&&Ot(i)&&this.measuredPorts.add(r)}trackLabelMeasurement(e,t,o){let i=this.getCompoundId(e,t);this.edgeLabelSizes.set(i,o),vt(o)&&this.measuredLabels.add(i)}addPort(e,t){let o=this.getCompoundId(e,t.id);this.initializedPorts.set(o,t),this.portsToMeasure.add(o)}addLabel(e,t){let o=this.getCompoundId(e,t.id);this.initializedLabels.set(o,t),this.labelsToMeasure.add(o)}collectAlreadyMeasuredItems(e,t){for(let o of e){this.nodesToMeasure.add(o.id),vt(o.size)&&this.measuredNodes.add(o.id);for(let i of o.measuredPorts??[])if(this.trackPreExistingPort(o.id,i.id),vt(i.size)&&Ot(i.position)){let r=this.getCompoundId(o.id,i.id);this.measuredPorts.add(r)}}for(let o of t)for(let i of o.measuredLabels??[])if(this.trackPreExistingLabel(o.id,i.id),vt(i.size)){let r=this.getCompoundId(o.id,i.id);this.measuredLabels.add(r)}}allEntitiesHaveMeasurements(){return[...this.nodesToMeasure].every(e=>this.measuredNodes.has(e))&&this.measuredPorts.size===this.portsToMeasure.size&&this.measuredLabels.size===this.labelsToMeasure.size}applyToDiagramState(e){let l=e.getState(),{nodes:t,edges:o}=l,i=un(l,["nodes","edges"]),r=this.groupPortsByNode(),s=this.groupLabelsByEdge(),a=this.updateNodes(t,r),d=this.updateEdges(o,s);e.setState(_(g({},i),{nodes:a,edges:d}))}getCompoundId(e,t){return`${e}->${t}`}splitCompoundId(e){let[t,o]=e.split("->");return{entityId:t,itemId:o}}trackPreExistingPort(e,t){let o=this.getCompoundId(e,t);this.portsToMeasure.add(o)}trackPreExistingLabel(e,t){let o=this.getCompoundId(e,t);this.labelsToMeasure.add(o)}groupPortsByNode(){let e=new Map;for(let[t,o]of this.initializedPorts.entries()){let{entityId:i}=this.splitCompoundId(t),r=e.get(i)||[];r.push(o),e.set(i,r)}return e}groupLabelsByEdge(){let e=new Map;for(let[t,o]of this.initializedLabels.entries()){let{entityId:i}=this.splitCompoundId(t),r=e.get(i)||[];r.push(o),e.set(i,r)}return e}updateNodes(e,t){return e.map(o=>{let i=this.nodeSizes.get(o.id)||o.size,r=t.get(o.id),s=new Map;if(o.measuredPorts)for(let d of o.measuredPorts)s.set(d.id,d);if(r)for(let d of r)s.set(d.id,d);let a=s.size>0?Array.from(s.values()):void 0;return a&&(a=a.map(d=>{let l=this.getCompoundId(o.id,d.id),c=this.portRects.get(l);return c?_(g({},d),{size:c.size,position:c.position}):d})),_(g({},o),{size:i,measuredPorts:a})})}updateEdges(e,t){return e.map(o=>{let i=t.get(o.id),r=new Map;if(o.measuredLabels)for(let a of o.measuredLabels)r.set(a.id,a);if(i)for(let a of i)r.set(a.id,a);let s=r.size>0?Array.from(r.values()):void 0;return s&&(s=s.map(a=>{let d=this.getCompoundId(o.id,a.id),l=this.edgeLabelSizes.get(d);return l?_(g({},a),{size:l}):a})),_(g({},o),{measuredLabels:s})})}},Qc=class{queue=[];isProcessing=!1;get isFinishing(){return this.isProcessing}get length(){return this.queue.length}startFinishing(){this.isProcessing=!0}enqueue(e){this.queue.push(e)}processAll(e){if(this.queue.length!==0){for(let t of this.queue)switch(t.method){case"addPort":e.addPort(...t.args);break;case"addEdgeLabel":e.addEdgeLabel(...t.args);break;case"applyNodeSize":e.applyNodeSize(...t.args);break;case"applyPortChanges":e.applyPortChanges(...t.args);break;case"applyEdgeLabelChanges":e.applyEdgeLabelChanges(...t.args);break;case"deleteEdgeLabel":e.deleteEdgeLabel(...t.args)}this.queue=[]}}},Qs=class{shouldWait;stabilityDelay;stabilityTimeout=null;stabilityPromise;resolveStability=()=>null;eventCount=0;constructor(e,t){this.shouldWait=e,this.stabilityDelay=t,this.stabilityPromise=new Promise(o=>{this.resolveStability=o})}notify(){this.eventCount++,this.resetStabilityTimer()}waitForStability(){return this.shouldWait?this.eventCount===0&&this.resetStabilityTimer():this.resolveStability(),this.stabilityPromise}resetStabilityTimer(){this.stabilityTimeout&&clearTimeout(this.stabilityTimeout),this.stabilityTimeout=setTimeout(()=>{this.resolveStability(),this.stabilityTimeout=null},this.stabilityDelay)}};var kS=n=>`[ngDiagram] Initialization stabilization failed.
94
+ This may indicate a state synchronization issue.`,Qc=class{cellSize=100;grid=new Map;idToCells=new Map;idToRect=new Map;process(e){let t=new Set(this.idToRect.keys()),o=new Set;for(let i of e){o.add(i.id);let r=this.idToRect.get(i.id);if(r){let s=this.nodeToRect(i);hc(r,s)||this.updateInGrid(s)}else this.addToGrid(this.nodeToRect(i))}for(let i of t.difference(o))this.removeFromGrid(i)}query(e){let t=[];return this._query(e,o=>t.push(o)),t}queryIds(e){let t=[];return this._query(e,o=>t.push(o.id)),t}_query(e,t){let o=this.getCells(e),i=new Set;for(let r of o){let s=this.grid.get(r);if(s)for(let a of s)i.has(a.id)||(i.add(a.id),Hm(a,e)&&t(a))}}nodeToRect(e){let t=e.measuredBounds??ro(e);return h({id:e.id},t)}addToCell(e,t){this.grid.has(e)||this.grid.set(e,[]),this.grid.get(e).push(t)}removeFromCell(e,t){let o=this.grid.get(e);if(!o)return void console.error(zS(e,t));let i=o.filter(r=>r.id!==t);this.grid.set(e,i)}updateInCell(e,t){let o=this.grid.get(e);if(!o)return void console.error(BS(e,t.id));let i=o.filter(({id:r})=>r!==t.id);this.grid.set(e,[...i,t])}addToGrid(e){let t=this.getCells(e);for(let o of t)this.addToCell(o,e);this.idToCells.set(e.id,t),this.idToRect.set(e.id,e)}updateInGrid(e){let t=this.getCells(e),o=new Set(t),i=new Set(this.idToCells.get(e.id)||[]),r=i.difference(o),s=o.difference(i),a=o.intersection(i);for(let d of r)this.removeFromCell(d,e.id);for(let d of s)this.addToCell(d,e);for(let d of a)this.updateInCell(d,e);this.idToRect.set(e.id,e),this.idToCells.set(e.id,t)}removeFromGrid(e){let t=this.idToCells.get(e);if(t){for(let o of t){this.removeFromCell(o,e);let i=this.grid.get(o);i&&i.length===0&&this.grid.delete(o)}this.idToCells.delete(e),this.idToRect.delete(e)}}getCellsRange(e,t){return[Math.floor(e/this.cellSize),Math.floor((e+t)/this.cellSize)]}getCells(e){let[t,o]=this.getCellsRange(e.x,e.width),[i,r]=this.getCellsRange(e.y,e.height),s=[];for(let a=t;a<=o;a++)for(let d=i;d<=r;d++)s.push(`${a}-${d}`);return s}},Mp=(n,e)=>{if(Jc(n)&&!n.size||Jc(e)&&!e.size)return!1;let t=Rm(n),o=Rm(e);if(t.length===0||o.length===0)return!1;let i=[...Om(t),...Om(o)];for(let r of i){let s=Nm(t,r),a=Nm(o,r);if(!$S(s,a))return!1}return!0},Jc=n=>"position"in n,Rm=n=>Jc(n)?n.size?fc(_t(n),n.angle??0):[]:fc(n,n.angle??0),Nm=(n,e)=>{let t=n[0].x*e.x+n[0].y*e.y,o=t;for(let i=1;i<n.length;i++){let r=n[i].x*e.x+n[i].y*e.y;r<t&&(t=r),r>o&&(o=r)}return{min:t,max:o}},$S=(n,e)=>!(n.max<e.min||e.max<n.min),Om=n=>{let e=[];for(let t=0;t<n.length;t++){let o=n[t],i=n[(t+1)%n.length],r={x:i.x-o.x,y:i.y-o.y},s=Math.sqrt(r.x*r.x+r.y*r.y);s>0&&e.push({x:-r.y/s,y:r.x/s})}return e},kp=(n,e,t)=>{let o=Zs(e,t),i=n.spatialHash.queryIds(o),r=[];for(let s of i){let a=n.modelLookup.getNodeById(s);a&&Mp(o,a)&&r.push(a)}return r},HS=(n,e,t)=>kp(n,e,t).sort((o,i)=>gc(_t(o),Zs(e,1))-gc(_t(i),Zs(e,1)))[0]||null,US=(n,e,t)=>{let o=new Map;kp(n,e,t).forEach(s=>{o.set(s,s.measuredPorts||[])});let i=1/0,r=null;for(let[s,a]of o.entries())for(let d of a){let{x:l,y:c}=_t(d),u=gc(_t({size:d.size,position:{x:l+s.position.x,y:c+s.position.y}}),Zs(e,1));u<=t&&u<i&&(i=u,r=d)}return r},jS=(n,e,t=!0)=>{let o=n.spatialHash.queryIds(e),i=[];for(let r of o){let s=n.modelLookup.getNodeById(r);s&&Mp(e,s)&&i.push(s)}return t?i:i.filter(r=>{let s=_t(r);return U_(e,s)})};function VS(n,e){let t=typeof e=="string",o=t?n.modelLookup.getNodeById(e):e;if(!o)return[];let i=t?o.measuredBounds??ro(o):ro(o),r=n.spatialHash.queryIds(i),s=[];for(let a of r){if(a===o.id)continue;let d=n.modelLookup.getNodeById(a);d&&Mp(o,d)&&s.push(d)}return s}function WS(n,e){return{emit:(t,...o)=>M(null,null,function*(){if(n.isAborted())throw new Error("Cannot emit on rolled back transaction");yield e.commandHandler.emitInternal(t,!0,...o)}),abort:()=>{n.abort()},savepoint:t=>{if(n.isAborted())throw new Error("Cannot create savepoint on rolled back transaction");n.addSavepoint(t)},rollbackTo:t=>{if(n.isAborted())throw new Error("Cannot rollback to savepoint on already rolled back transaction");n.rollback(t)},transaction:(t,o)=>e.transactionManager.transaction(t,o),hasChanges:()=>n.hasChanges(),isDirty:()=>!n.isAborted()&&n.hasChanges(),getQueuedUpdates:()=>n.getQueue()}}var eu=class{name;parent;flowCore;queue=[];savepoints=new Map;_isAborted=!1;children=[];_context=null;constructor(e,t,o){this.name=e,this.parent=t,this.flowCore=o,t&&t.children.push(this)}get context(){return this._context||(this._context=WS(this,this.flowCore)),this._context}isAborted(){return this._isAborted}abort(){this._isAborted||(this._isAborted=!0,this.queue=[],this.savepoints.clear(),this.children.forEach(e=>e.abort()))}addSavepoint(e){this.ensureNotAborted(),this.savepoints.set(e,this.queue.length)}rollback(e){if(this.ensureNotAborted(),e===void 0)return this.queue=[],this.savepoints.clear(),void this.children.forEach(i=>i.rollback());let t=this.savepoints.get(e);if(t===void 0)throw new Error(`Savepoint '${e}' not found`);this.queue=this.queue.slice(0,t);let o=[];this.savepoints.forEach((i,r)=>{i>t&&o.push(r)}),o.forEach(i=>this.savepoints.delete(i)),this.children.forEach(i=>i.rollback())}commit(){this.ensureNotAborted(),this.parent&&this.mergeToParent()}canCommit(){return!this._isAborted&&this.hasChanges()}ensureNotAborted(){if(this._isAborted)throw new Error("Cannot perform operation on aborted transaction")}hasChanges(){return this.queue.length>0||this.children.some(e=>e.hasChanges())}getQueue(){return[...this.queue]}queueUpdate(e,t){this.ensureNotAborted(),this.queue.push({update:e,actionTypes:t})}getState(){return{name:this.name,queue:[...this.queue],savepoints:new Map(this.savepoints),isAborted:this._isAborted,parent:this.parent}}mergeToParent(){this.ensureNotAborted(),this.parent&&this.queue.forEach(e=>{this.parent.queueUpdate(e.update,e.actionTypes)})}getMergedUpdates(){if(this._isAborted)return{mergedUpdate:{},commandsCount:0,actionTypes:[]};let e=this.queue.length,t=new Set([this.name]),o=[],i=[],r=[],s=[],a=[],d=[],l=[];for(let{update:u,actionTypes:w}of this.queue)w.forEach(S=>t.add(S)),u.nodesToAdd?.length&&o.push(u.nodesToAdd),u.nodesToRemove?.length&&i.push(u.nodesToRemove),u.nodesToUpdate?.length&&r.push(u.nodesToUpdate),u.edgesToAdd?.length&&s.push(u.edgesToAdd),u.edgesToRemove?.length&&a.push(u.edgesToRemove),u.edgesToUpdate?.length&&d.push(u.edgesToUpdate),u.metadataUpdate&&l.push(u.metadataUpdate);let c={};return o.length>0&&(c.nodesToAdd=o.flat()),i.length>0&&(c.nodesToRemove=i.flat()),r.length>0&&(c.nodesToUpdate=r.flat()),s.length>0&&(c.edgesToAdd=s.flat()),a.length>0&&(c.edgesToRemove=a.flat()),d.length>0&&(c.edgesToUpdate=d.flat()),l.length>0&&(c.metadataUpdate=Object.assign({},...l)),{mergedUpdate:c,commandsCount:e,actionTypes:[...t]}}},tu=class{flowCore;transactionStack=[];pendingOptions=null;constructor(e){this.flowCore=e}transaction(e,t,o){return M(this,null,function*(){let[i,r,s]=this.parseArgs(e,t,o),a=this.getCurrentTransaction(),d=new eu(i,a,this.flowCore);!a&&s&&(this.pendingOptions=s),this.transactionStack.push(d);try{if(yield r(d.context),!d.isAborted()){if(!a){let{mergedUpdate:l,commandsCount:c,actionTypes:u}=d.getMergedUpdates();return{results:l,commandsCount:c,actionTypes:u}}d.mergeToParent()}return{results:{},commandsCount:0,actionTypes:[]}}catch(l){throw d.rollback(),l}finally{this.transactionStack.pop(),a||(this.pendingOptions=null)}})}getCurrentOptions(){return this.pendingOptions}queueUpdate(e,t){let o=this.getCurrentTransaction();if(!o)throw new Error("No active transaction. Cannot queue update.");o.queueUpdate(e,t)}isActive(){return this.transactionStack.length>0}getTransactionName(){let e=this.getCurrentTransaction();return e?e.getState().name:null}getCurrentTransaction(){return this.transactionStack[this.transactionStack.length-1]||null}parseArgs(e,t,o){if(typeof e=="function")return["transaction",e,t];if(typeof t!="function")throw new Error("Callback is required when transaction name is provided");return[e,t,o]}};var nu=class{initializedPorts=new Map;initializedLabels=new Map;nodeSizes=new Map;portRects=new Map;edgeLabelSizes=new Map;portsToMeasure=new Set;labelsToMeasure=new Set;nodesToMeasure=new Set;measuredNodes=new Set;measuredPorts=new Set;measuredLabels=new Set;trackNodeMeasurement(e,t){this.nodeSizes.set(e,t),vt(t)&&this.measuredNodes.add(e)}trackPortMeasurement(e,t,o,i){let r=this.getCompoundId(e,t);this.portRects.set(r,{size:o,position:i}),vt(o)&&Lt(i)&&this.measuredPorts.add(r)}trackLabelMeasurement(e,t,o){let i=this.getCompoundId(e,t);this.edgeLabelSizes.set(i,o),vt(o)&&this.measuredLabels.add(i)}addPort(e,t){let o=this.getCompoundId(e,t.id);this.initializedPorts.set(o,t),this.portsToMeasure.add(o)}addLabel(e,t){let o=this.getCompoundId(e,t.id);this.initializedLabels.set(o,t),this.labelsToMeasure.add(o)}collectAlreadyMeasuredItems(e,t){for(let o of e){this.nodesToMeasure.add(o.id),vt(o.size)&&this.measuredNodes.add(o.id);for(let i of o.measuredPorts??[])if(this.trackPreExistingPort(o.id,i.id),vt(i.size)&&Lt(i.position)){let r=this.getCompoundId(o.id,i.id);this.measuredPorts.add(r)}}for(let o of t)for(let i of o.measuredLabels??[])if(this.trackPreExistingLabel(o.id,i.id),vt(i.size)){let r=this.getCompoundId(o.id,i.id);this.measuredLabels.add(r)}}allEntitiesHaveMeasurements(){return[...this.nodesToMeasure].every(e=>this.measuredNodes.has(e))&&this.measuredPorts.size===this.portsToMeasure.size&&this.measuredLabels.size===this.labelsToMeasure.size}applyToDiagramState(e){let l=e.getState(),{nodes:t,edges:o}=l,i=kt(l,["nodes","edges"]),r=this.groupPortsByNode(),s=this.groupLabelsByEdge(),a=this.updateNodes(t,r),d=this.updateEdges(o,s);e.setState(_(h({},i),{nodes:a,edges:d}))}getCompoundId(e,t){return`${e}->${t}`}splitCompoundId(e){let[t,o]=e.split("->");return{entityId:t,itemId:o}}trackPreExistingPort(e,t){let o=this.getCompoundId(e,t);this.portsToMeasure.add(o)}trackPreExistingLabel(e,t){let o=this.getCompoundId(e,t);this.labelsToMeasure.add(o)}groupPortsByNode(){let e=new Map;for(let[t,o]of this.initializedPorts.entries()){let{entityId:i}=this.splitCompoundId(t),r=e.get(i)||[];r.push(o),e.set(i,r)}return e}groupLabelsByEdge(){let e=new Map;for(let[t,o]of this.initializedLabels.entries()){let{entityId:i}=this.splitCompoundId(t),r=e.get(i)||[];r.push(o),e.set(i,r)}return e}updateNodes(e,t){return e.map(o=>{let i=this.nodeSizes.get(o.id)||o.size,r=t.get(o.id),s=new Map;if(o.measuredPorts)for(let d of o.measuredPorts)s.set(d.id,d);if(r)for(let d of r)s.set(d.id,d);let a=s.size>0?Array.from(s.values()):void 0;return a&&(a=a.map(d=>{let l=this.getCompoundId(o.id,d.id),c=this.portRects.get(l);return c?_(h({},d),{size:c.size,position:c.position}):d})),_(h({},o),{size:i,measuredPorts:a})})}updateEdges(e,t){return e.map(o=>{let i=t.get(o.id),r=new Map;if(o.measuredLabels)for(let a of o.measuredLabels)r.set(a.id,a);if(i)for(let a of i)r.set(a.id,a);let s=r.size>0?Array.from(r.values()):void 0;return s&&(s=s.map(a=>{let d=this.getCompoundId(o.id,a.id),l=this.edgeLabelSizes.get(d);return l?_(h({},a),{size:l}):a})),_(h({},o),{measuredLabels:s})})}},ou=class{queue=[];isProcessing=!1;get isFinishing(){return this.isProcessing}get length(){return this.queue.length}startFinishing(){this.isProcessing=!0}enqueue(e){this.queue.push(e)}processAll(e){if(this.queue.length!==0){for(let t of this.queue)switch(t.method){case"addPort":e.addPort(...t.args);break;case"addEdgeLabel":e.addEdgeLabel(...t.args);break;case"applyNodeSize":e.applyNodeSize(...t.args);break;case"applyPortChanges":e.applyPortChanges(...t.args);break;case"applyEdgeLabelChanges":e.applyEdgeLabelChanges(...t.args);break;case"deleteEdgeLabel":e.deleteEdgeLabel(...t.args)}this.queue=[]}}},ta=class{shouldWait;stabilityDelay;stabilityTimeout=null;stabilityPromise;resolveStability=()=>null;eventCount=0;constructor(e,t){this.shouldWait=e,this.stabilityDelay=t,this.stabilityPromise=new Promise(o=>{this.resolveStability=o})}notify(){this.eventCount++,this.resetStabilityTimer()}waitForStability(){return this.shouldWait?this.eventCount===0&&this.resetStabilityTimer():this.resolveStability(),this.stabilityPromise}resetStabilityTimer(){this.stabilityTimeout&&clearTimeout(this.stabilityTimeout),this.stabilityTimeout=setTimeout(()=>{this.resolveStability(),this.stabilityTimeout=null},this.stabilityDelay)}};var GS=n=>`[ngDiagram] Initialization stabilization failed.
95
95
 
96
96
  Error: ${n instanceof Error?n.message:String(n)}
97
97
 
@@ -110,14 +110,14 @@ This usually indicates:
110
110
  The diagram will still be functional, but initial layout may be incomplete.
111
111
 
112
112
  Documentation: https://www.ngdiagram.dev/docs/guides/model-initialization/
113
- `,Jc=class{flowCore;isInitialized=!1;entitiesStabilized=!1;portStabilityDetector;labelStabilityDetector;initState;lateArrivalQueue;onCompleteCallback;measurementTimeout=null;constructor(e){this.flowCore=e,this.initState=new Xc,this.lateArrivalQueue=new Qc}start(e,t,o){this.onCompleteCallback=o;let i=t.length>0;this.portStabilityDetector=new Qs(e.length>0,50),this.labelStabilityDetector=new Qs(i,50),this.initState.collectAlreadyMeasuredItems(e,t),Promise.all([this.portStabilityDetector.waitForStability(),this.labelStabilityDetector.waitForStability()]).then(()=>{this.entitiesStabilized=!0,this.startMeasurementTimeout(),this.tryFinish()}).catch(r=>{console.error(kS(r)),this.forceFinish()})}applyNodeSize(e,t){this.lateArrivalQueue.isFinishing?this.lateArrivalQueue.enqueue({method:"applyNodeSize",args:[e,t]}):(this.initState.trackNodeMeasurement(e,t),this.tryFinish())}applyNodeSizes(e){for(let{id:t,size:o}of e)this.applyNodeSize(t,o)}addPort(e,t){this.lateArrivalQueue.isFinishing?this.lateArrivalQueue.enqueue({method:"addPort",args:[e,t]}):(this.initState.addPort(e,t),this.portStabilityDetector.notify())}applyPortChanges(e,t){if(this.lateArrivalQueue.isFinishing)this.lateArrivalQueue.enqueue({method:"applyPortChanges",args:[e,t]});else{for(let{portId:o,portChanges:i}of t)i.size&&i.position&&this.initState.trackPortMeasurement(e,o,i.size,i.position);this.tryFinish()}}addEdgeLabel(e,t){this.lateArrivalQueue.isFinishing?this.lateArrivalQueue.enqueue({method:"addEdgeLabel",args:[e,t]}):(this.initState.addLabel(e,t),this.labelStabilityDetector.notify())}deleteEdgeLabel(e,t){this.lateArrivalQueue.enqueue({method:"deleteEdgeLabel",args:[e,t]})}applyEdgeLabelChanges(e,t){if(this.lateArrivalQueue.isFinishing)this.lateArrivalQueue.enqueue({method:"applyEdgeLabelChanges",args:[e,t]});else{for(let{labelId:o,labelChanges:i}of t)i.size&&this.initState.trackLabelMeasurement(e,o,i.size);this.tryFinish()}}tryFinish(){this.lateArrivalQueue.isFinishing||this.isInitialized||this.entitiesStabilized&&this.initState.allEntitiesHaveMeasurements()&&this.finish()}finish(){return D(this,null,function*(){this.clearMeasurementTimeout(),this.lateArrivalQueue.startFinishing(),this.initState.applyToDiagramState(this.flowCore),this.onCompleteCallback&&(yield this.onCompleteCallback()),this.isInitialized=!0,this.lateArrivalQueue.processAll(this.flowCore.internalUpdater)})}forceFinish(){this.finish()}startMeasurementTimeout(){this.measurementTimeout=setTimeout(()=>{this.isInitialized||(console.warn("[InitUpdater] Measurement timeout reached. Some entities may not be measurable (e.g., display: none). Ensure the model provided to ng-diagram was created with initializeModel() or initializeModelAdapter() (for custom ModelAdapter).",{nodes:{expected:this.initState.nodesToMeasure.size,measured:this.initState.measuredNodes.size},ports:{expected:this.initState.portsToMeasure.size,measured:this.initState.measuredPorts.size},labels:{expected:this.initState.labelsToMeasure.size,measured:this.initState.measuredLabels.size}}),this.forceFinish())},2e3)}clearMeasurementTimeout(){this.measurementTimeout!==null&&(clearTimeout(this.measurementTimeout),this.measurementTimeout=null)}},eu=class{flowCore;onPortAddsFlush=e=>this.flowCore.commandHandler.emit("addPortsBulk",{additions:e});onPortUpdatesFlush=e=>this.flowCore.commandHandler.emit("updatePortsBulk",{updates:e});onPortDeletesFlush=e=>this.flowCore.commandHandler.emit("deletePortsBulk",{deletions:e});onLabelAddsFlush=e=>this.flowCore.commandHandler.emit("addEdgeLabelsBulk",{additions:e});onLabelUpdatesFlush=e=>this.flowCore.commandHandler.emit("updateEdgeLabelsBulk",{updates:e});onLabelDeletesFlush=e=>this.flowCore.commandHandler.emit("deleteEdgeLabelsBulk",{deletions:e});constructor(e){this.flowCore=e}applyNodeSize(e,t){this.applyNodeSizes([{id:e,size:t}])}applyNodeSizes(e){let t=this.flowCore.actionStateManager.isResizing(),o=e.filter(({id:i,size:r})=>{let s=this.flowCore.getNodeById(i);return!(!s||s.size&&t||dc(_t(s),_t({size:r})))});o.length>0&&this.flowCore.commandHandler.emit("updateNodes",{nodes:o})}addPort(e,t){this.flowCore.portBatchProcessor.processAdd(e,t,this.onPortAddsFlush)}deletePort(e,t){this.flowCore.portBatchProcessor.processDelete(e,t,this.onPortDeletesFlush)}applyPortChanges(e,t){let o=this.flowCore.getNodeById(e);if(!o)return;let i=this.filterUnchangedPortUpdates(o,t);if(i.length!==0)for(let r of i)this.flowCore.portBatchProcessor.processUpdate(e,r,this.onPortUpdatesFlush)}addEdgeLabel(e,t){this.flowCore.labelBatchProcessor.processAdd(e,t,this.onLabelAddsFlush)}deleteEdgeLabel(e,t){this.flowCore.labelBatchProcessor.processDelete(e,t,this.onLabelDeletesFlush)}applyEdgeLabelChanges(e,t){let o=this.filterUnchangedLabelUpdates(e,t);if(o.length!==0)for(let i of o)this.flowCore.labelBatchProcessor.processUpdate(e,i,this.onLabelUpdatesFlush)}filterUnchangedPortUpdates(e,t){let o=new Map((e.measuredPorts??[]).map(i=>[i.id,i]));return t.filter(({portId:i,portChanges:r})=>{let s=o.get(i);if(!s)return!1;if(r.side!==void 0&&r.side!==s.side||r.type!==void 0&&r.type!==s.type)return!0;if("size"in r||"position"in r){let a=r.size??s.size,d=r.position??s.position;if(!dc(_t(s),_t({size:a,position:d})))return!0}return!1})}filterUnchangedLabelUpdates(e,t){let o=this.flowCore.getEdgeById(e);if(!o)return[];let i=new Map((o.measuredLabels??[]).map(r=>[r.id,r]));return t.filter(({labelId:r,labelChanges:s})=>{let a=i.get(r);return a?s.positionOnEdge!==void 0&&s.positionOnEdge!==a.positionOnEdge||s.size!==void 0&&(!a.size||!_p(a.size,s.size)):!1})}},tu=class{renderer;inputEventsRouter;environment;_model;_config;initUpdater;internalUpdater;updateSemaphore=new uc(1);commandHandler;middlewareManager;spatialHash;modelLookup;transactionManager;portBatchProcessor;labelBatchProcessor;actionStateManager;edgeRoutingManager;eventManager;shortcutManager;measurementTracker;directRenderStrategy;virtualizedRenderStrategy;getFlowOffset;getViewportSize;constructor(e,t,o,i,r,s,a,d={}){this.renderer=t,this.inputEventsRouter=o,this.environment=i,this._model=e,this._config=B1(d,this),this.environment=i,this.commandHandler=new pc(this),this.spatialHash=new qc,this.initUpdater=new Jc(this),this.internalUpdater=new eu(this),this.modelLookup=new zc(this),this.eventManager=new ac,this.actionStateManager=new tc(this.eventManager),this.directRenderStrategy=new Hc(this),this.virtualizedRenderStrategy=new Gc(this),this.middlewareManager=new Fc(this,r),this.transactionManager=new Kc(this),this.portBatchProcessor=new Bc(this.getNodeById.bind(this)),this.labelBatchProcessor=new fc(this.getEdgeById.bind(this)),this.measurementTracker=new mc,this.edgeRoutingManager=new sc(this.config.edgeRouting.defaultRouting,()=>this.config.edgeRouting||{}),this.getFlowOffset=s||(()=>({x:0,y:0})),this.getViewportSize=a||(()=>({width:0,height:0})),this.shortcutManager=new hc(this),this.inputEventsRouter.registerDefaultCallbacks(this),this.init()}destroy(){this.virtualizedRenderStrategy.destroy(),this.eventManager.offAll(),this.model.destroy()}init(){this.initializeViewportSize(),this.renderStrategy.init()}initializeViewportSize(){let{width:e,height:t}=this.getViewportSize();if(e>0&&t>0){let o=this.model.getMetadata();this.model.updateMetadata(_(g({},o),{viewport:_(g({},o.viewport),{width:e,height:t})}))}}get model(){return this._model}getEnvironment(){return this.environment}get config(){return this._config}updateConfig(e){this._config=Cp(this._config,e)}registerMiddleware(e){return this.middlewareManager.register(e)}unregisterMiddleware(e){this.middlewareManager.unregister(e)}getState(){return{nodes:this.model.getNodes(),edges:this.model.getEdges(),metadata:this.model.getMetadata()}}get renderStrategy(){return this.isVirtualizationActive?this.virtualizedRenderStrategy:this.directRenderStrategy}setState(e){this.model.updateNodes(e.nodes),this.model.updateEdges(e.edges),this.model.updateMetadata(e.metadata),this.modelLookup.desynchronize()}transaction(e,t,o){return D(this,null,function*(){let i,r;if(typeof e=="function")r=t,i=yield this.transactionManager.transaction(e,r??{});else{let s=t;if(!s)throw new Error("Callback is required when transaction name is provided");r=o,i=yield this.transactionManager.transaction(e,s,r??{})}return i.commandsCount>0&&(r?.waitForMeasurements&&this.measurementTracker.requestTracking({discoveryWindowMs:r._measurementDiscoveryWindowTimeout,debounceMs:r._measurementDebounceTimeout}),yield this.applyUpdate(i.results,i.actionTypes)),r?.waitForMeasurements&&(yield this.measurementTracker.waitForMeasurements()),i})}applyUpdate(e,t){return D(this,null,function*(){let o=Array.isArray(t)?t:[t];if(this.transactionManager.isActive())this.transactionManager.queueUpdate(e,o);else{yield this.updateSemaphore.acquire();try{let i=this.getState(),r=yield this.middlewareManager.execute(i,e,o);r?(this.setState(r),this.eventManager.flushDeferredEmits()):this.eventManager.clearDeferredEmits()}finally{this.updateSemaphore.release()}}})}applyViewportOnlyUpdate(e){let t=this.model.getMetadata(),o=t.viewport,i=g(g({},o),e);i.x===o.x&&i.y===o.y&&i.scale===o.scale||(this.model.updateMetadata(_(g({},t),{viewport:i})),this.eventManager.emit("viewportChanged",{viewport:i,previousViewport:o}))}clientToFlowPosition(e){let{x:t,y:o,scale:i}=this.model.getMetadata().viewport,{x:r,y:s}=this.getFlowOffset();return{x:(e.x-t-r)/i,y:(e.y-o-s)/i}}flowToClientPosition(e){let{x:t,y:o,scale:i}=this.model.getMetadata().viewport,{x:r,y:s}=this.getFlowOffset();return{x:e.x*i+t+r,y:e.y*i+o+s}}clientToFlowViewportPosition(e){let{x:t,y:o}=this.getFlowOffset();return{x:e.x-t,y:e.y-o}}getNodeById(e){return this.modelLookup.getNodeById(e)}getEdgeById(e){return this.modelLookup.getEdgeById(e)}getNodesInRange(e,t){return Pp(this,e,t)}getNearestNodeInRange(e,t){return PS(this,e,t)}getNearestPortInRange(e,t){return IS(this,e,t)}getConnectedEdges(e){return this.modelLookup.getConnectedEdges(e)}getConnectedNodes(e){return this.modelLookup.getConnectedNodes(e)}getNodeEnds(e){return this.modelLookup.getNodeEnds(e)}getChildren(e){return this.modelLookup.getChildren(e)}getChildrenNested(e){return this.modelLookup.getAllDescendants(e)}isNestedChild(e,t){return this.modelLookup.isNodeDescendantOfGroup(e,t)}getParentHierarchy(e){return this.modelLookup.getParentChain(e)}getOverlappingNodes(e){return MS(this,e)}isNodeCurrentlyRendered(e){return this.renderStrategy.isNodeRendered(e)}getScale(){return this.model.getMetadata().viewport.scale}getViewport(){return this.model.getMetadata().viewport}get updater(){return this.initUpdater.isInitialized?this.internalUpdater:this.initUpdater}get isInitialized(){return this.initUpdater.isInitialized}get isVirtualizationActive(){return this.config.virtualization.enabled}setDebugMode(e){e?(window.flowCore=this,this.middlewareManager.isRegistered(Ws.name)||this.registerMiddleware(Ws)):(delete window.flowCore,this.unregisterMiddleware(Ws.name))}},Ve=class{flow;constructor(e){this.flow=e}},nu=class extends Ve{startPoint;isBoxSelecting=!1;handle(e){switch(e.phase){case"start":this.startPoint=e.lastInputPoint,this.isBoxSelecting=!0;break;case"continue":if(!this.isBoxSelecting||!this.flow.config.boxSelection.realtime)break;this.boxSelect(e);break;case"end":if(!this.isBoxSelecting)break;this.boxSelect(e),this.flow.commandHandler.emit("selectEnd"),this.startPoint=void 0,this.isBoxSelecting=!1}}boxSelect(e){if(!this.startPoint)return;let t=e.lastInputPoint,{x:o,y:i}=this.flow.clientToFlowPosition(this.startPoint),{x:r,y:s}=this.flow.clientToFlowPosition(t),a={x:Math.min(o,r),y:Math.min(i,s),width:Math.abs(r-o),height:Math.abs(s-i)},d=this.flow.model.getEdges(),l=new Set(DS(this.flow,a,this.flow.config.boxSelection.partialInclusion).map(u=>u.id)),c=d.filter(u=>l.has(u.source)&&l.has(u.target)).map(u=>u.id);this.flow.commandHandler.emit("select",{nodeIds:[...l],edgeIds:c,multiSelection:!1})}},ou=class extends Ve{handle(){this.flow.commandHandler.emit("copy")}},iu=class extends Ve{handle(){this.flow.commandHandler.emit("cut")}},ru=class extends Ve{handle(){this.flow.commandHandler.emit("deleteSelection")}},RS=["top","bottom","left","right"],NS=n=>`[ngDiagram] Unknown keyboard move direction: "${n}"
113
+ `,iu=class{flowCore;isInitialized=!1;entitiesStabilized=!1;portStabilityDetector;labelStabilityDetector;initState;lateArrivalQueue;onCompleteCallback;measurementTimeout=null;constructor(e){this.flowCore=e,this.initState=new nu,this.lateArrivalQueue=new ou}start(e,t,o){this.onCompleteCallback=o;let i=t.length>0;this.portStabilityDetector=new ta(e.length>0,50),this.labelStabilityDetector=new ta(i,50),this.initState.collectAlreadyMeasuredItems(e,t),Promise.all([this.portStabilityDetector.waitForStability(),this.labelStabilityDetector.waitForStability()]).then(()=>{this.entitiesStabilized=!0,this.startMeasurementTimeout(),this.tryFinish()}).catch(r=>{console.error(GS(r)),this.forceFinish()})}applyNodeSize(e,t){this.lateArrivalQueue.isFinishing?this.lateArrivalQueue.enqueue({method:"applyNodeSize",args:[e,t]}):(this.initState.trackNodeMeasurement(e,t),this.tryFinish())}applyNodeSizes(e){for(let{id:t,size:o}of e)this.applyNodeSize(t,o)}addPort(e,t){this.lateArrivalQueue.isFinishing?this.lateArrivalQueue.enqueue({method:"addPort",args:[e,t]}):(this.initState.addPort(e,t),this.portStabilityDetector.notify())}applyPortChanges(e,t){if(this.lateArrivalQueue.isFinishing)this.lateArrivalQueue.enqueue({method:"applyPortChanges",args:[e,t]});else{for(let{portId:o,portChanges:i}of t)i.size&&i.position&&this.initState.trackPortMeasurement(e,o,i.size,i.position);this.tryFinish()}}addEdgeLabel(e,t){this.lateArrivalQueue.isFinishing?this.lateArrivalQueue.enqueue({method:"addEdgeLabel",args:[e,t]}):(this.initState.addLabel(e,t),this.labelStabilityDetector.notify())}deleteEdgeLabel(e,t){this.lateArrivalQueue.enqueue({method:"deleteEdgeLabel",args:[e,t]})}applyEdgeLabelChanges(e,t){if(this.lateArrivalQueue.isFinishing)this.lateArrivalQueue.enqueue({method:"applyEdgeLabelChanges",args:[e,t]});else{for(let{labelId:o,labelChanges:i}of t)i.size&&this.initState.trackLabelMeasurement(e,o,i.size);this.tryFinish()}}tryFinish(){this.lateArrivalQueue.isFinishing||this.isInitialized||this.entitiesStabilized&&this.initState.allEntitiesHaveMeasurements()&&this.finish()}finish(){return M(this,null,function*(){this.clearMeasurementTimeout(),this.lateArrivalQueue.startFinishing(),this.initState.applyToDiagramState(this.flowCore),this.onCompleteCallback&&(yield this.onCompleteCallback()),this.isInitialized=!0,this.lateArrivalQueue.processAll(this.flowCore.internalUpdater)})}forceFinish(){this.finish()}startMeasurementTimeout(){this.measurementTimeout=setTimeout(()=>{this.isInitialized||(console.warn("[InitUpdater] Measurement timeout reached. Some entities may not be measurable (e.g., display: none). Ensure the model provided to ng-diagram was created with initializeModel() or initializeModelAdapter() (for custom ModelAdapter).",{nodes:{expected:this.initState.nodesToMeasure.size,measured:this.initState.measuredNodes.size},ports:{expected:this.initState.portsToMeasure.size,measured:this.initState.measuredPorts.size},labels:{expected:this.initState.labelsToMeasure.size,measured:this.initState.measuredLabels.size}}),this.forceFinish())},2e3)}clearMeasurementTimeout(){this.measurementTimeout!==null&&(clearTimeout(this.measurementTimeout),this.measurementTimeout=null)}},ru=class{flowCore;onPortAddsFlush=e=>this.flowCore.commandHandler.emit("addPortsBulk",{additions:e});onPortUpdatesFlush=e=>this.flowCore.commandHandler.emit("updatePortsBulk",{updates:e});onPortDeletesFlush=e=>this.flowCore.commandHandler.emit("deletePortsBulk",{deletions:e});onLabelAddsFlush=e=>this.flowCore.commandHandler.emit("addEdgeLabelsBulk",{additions:e});onLabelUpdatesFlush=e=>this.flowCore.commandHandler.emit("updateEdgeLabelsBulk",{updates:e});onLabelDeletesFlush=e=>this.flowCore.commandHandler.emit("deleteEdgeLabelsBulk",{deletions:e});constructor(e){this.flowCore=e}applyNodeSize(e,t){this.applyNodeSizes([{id:e,size:t}])}applyNodeSizes(e){let t=this.flowCore.actionStateManager.isResizing(),o=e.filter(({id:i,size:r})=>{let s=this.flowCore.getNodeById(i);return!(!s||s.size&&t||hc(_t(s),_t({size:r})))});o.length>0&&this.flowCore.commandHandler.emit("updateNodes",{nodes:o})}addPort(e,t){this.flowCore.portBatchProcessor.processAdd(e,t,this.onPortAddsFlush)}deletePort(e,t){this.flowCore.portBatchProcessor.processDelete(e,t,this.onPortDeletesFlush)}applyPortChanges(e,t){let o=this.flowCore.getNodeById(e);if(!o)return;let i=this.filterUnchangedPortUpdates(o,t);if(i.length!==0)for(let r of i)this.flowCore.portBatchProcessor.processUpdate(e,r,this.onPortUpdatesFlush)}addEdgeLabel(e,t){this.flowCore.labelBatchProcessor.processAdd(e,t,this.onLabelAddsFlush)}deleteEdgeLabel(e,t){this.flowCore.labelBatchProcessor.processDelete(e,t,this.onLabelDeletesFlush)}applyEdgeLabelChanges(e,t){let o=this.filterUnchangedLabelUpdates(e,t);if(o.length!==0)for(let i of o)this.flowCore.labelBatchProcessor.processUpdate(e,i,this.onLabelUpdatesFlush)}filterUnchangedPortUpdates(e,t){let o=new Map((e.measuredPorts??[]).map(i=>[i.id,i]));return t.filter(({portId:i,portChanges:r})=>{let s=o.get(i);if(!s)return!1;if(r.side!==void 0&&r.side!==s.side||r.type!==void 0&&r.type!==s.type)return!0;if("size"in r||"position"in r){let a=r.size??s.size,d=r.position??s.position;if(!hc(_t(s),_t({size:a,position:d})))return!0}return!1})}filterUnchangedLabelUpdates(e,t){let o=this.flowCore.getEdgeById(e);if(!o)return[];let i=new Map((o.measuredLabels??[]).map(r=>[r.id,r]));return t.filter(({labelId:r,labelChanges:s})=>{let a=i.get(r);return a?s.positionOnEdge!==void 0&&s.positionOnEdge!==a.positionOnEdge||s.size!==void 0&&(!a.size||!Ip(a.size,s.size)):!1})}},su=class{renderer;inputEventsRouter;environment;_model;_config;initUpdater;internalUpdater;updateSemaphore=new mc(1);commandHandler;middlewareManager;spatialHash;modelLookup;transactionManager;portBatchProcessor;labelBatchProcessor;actionStateManager;edgeRoutingManager;eventManager;shortcutManager;measurementTracker;directRenderStrategy;virtualizedRenderStrategy;getFlowOffset;getViewportSize;constructor(e,t,o,i,r,s,a,d={}){this.renderer=t,this.inputEventsRouter=o,this.environment=i,this._model=e,this._config=eS(d,this),this.environment=i,this.commandHandler=new yc(this),this.spatialHash=new Qc,this.initUpdater=new iu(this),this.internalUpdater=new ru(this),this.modelLookup=new jc(this),this.eventManager=new pc,this.actionStateManager=new sc(this.eventManager),this.directRenderStrategy=new Gc(this),this.virtualizedRenderStrategy=new Xc(this),this.middlewareManager=new Uc(this,r),this.transactionManager=new tu(this),this.portBatchProcessor=new Vc(this.getNodeById.bind(this)),this.labelBatchProcessor=new wc(this.getEdgeById.bind(this)),this.measurementTracker=new Cc,this.edgeRoutingManager=new uc(this.config.edgeRouting.defaultRouting,()=>this.config.edgeRouting||{}),this.getFlowOffset=s||(()=>({x:0,y:0})),this.getViewportSize=a||(()=>({width:0,height:0})),this.shortcutManager=new vc(this),this.inputEventsRouter.registerDefaultCallbacks(this),this.init()}destroy(){this.virtualizedRenderStrategy.destroy(),this.eventManager.offAll(),this.model.destroy()}init(){this.initializeViewportSize(),this.renderStrategy.init()}initializeViewportSize(){let{width:e,height:t}=this.getViewportSize();if(e>0&&t>0){let o=this.model.getMetadata();this.model.updateMetadata(_(h({},o),{viewport:_(h({},o.viewport),{width:e,height:t})}))}}get model(){return this._model}getEnvironment(){return this.environment}get config(){return this._config}updateConfig(e){this._config=Pp(this._config,e)}registerMiddleware(e){return this.middlewareManager.register(e)}unregisterMiddleware(e){this.middlewareManager.unregister(e)}getState(){return{nodes:this.model.getNodes(),edges:this.model.getEdges(),metadata:this.model.getMetadata()}}get renderStrategy(){return this.isVirtualizationActive?this.virtualizedRenderStrategy:this.directRenderStrategy}setState(e){this.model.updateNodes(e.nodes),this.model.updateEdges(e.edges),this.model.updateMetadata(e.metadata),this.modelLookup.desynchronize()}transaction(e,t,o){return M(this,null,function*(){let i,r;if(typeof e=="function")r=t,i=yield this.transactionManager.transaction(e,r??{});else{let s=t;if(!s)throw new Error("Callback is required when transaction name is provided");r=o,i=yield this.transactionManager.transaction(e,s,r??{})}return i.commandsCount>0&&(r?.waitForMeasurements&&this.measurementTracker.requestTracking({discoveryWindowMs:r._measurementDiscoveryWindowTimeout,debounceMs:r._measurementDebounceTimeout}),yield this.applyUpdate(i.results,i.actionTypes)),r?.waitForMeasurements&&(yield this.measurementTracker.waitForMeasurements()),i})}applyUpdate(e,t){return M(this,null,function*(){let o=Array.isArray(t)?t:[t];if(this.transactionManager.isActive())this.transactionManager.queueUpdate(e,o);else{yield this.updateSemaphore.acquire();try{let i=this.getState(),r=yield this.middlewareManager.execute(i,e,o);r?(this.setState(r),this.eventManager.flushDeferredEmits()):this.eventManager.clearDeferredEmits()}finally{this.updateSemaphore.release()}}})}applyViewportOnlyUpdate(e){let t=this.model.getMetadata(),o=t.viewport,i=h(h({},o),e);i.x===o.x&&i.y===o.y&&i.scale===o.scale||(this.model.updateMetadata(_(h({},t),{viewport:i})),this.eventManager.emit("viewportChanged",{viewport:i,previousViewport:o}))}clientToFlowPosition(e){let{x:t,y:o,scale:i}=this.model.getMetadata().viewport,{x:r,y:s}=this.getFlowOffset();return{x:(e.x-t-r)/i,y:(e.y-o-s)/i}}flowToClientPosition(e){let{x:t,y:o,scale:i}=this.model.getMetadata().viewport,{x:r,y:s}=this.getFlowOffset();return{x:e.x*i+t+r,y:e.y*i+o+s}}clientToFlowViewportPosition(e){let{x:t,y:o}=this.getFlowOffset();return{x:e.x-t,y:e.y-o}}getNodeById(e){return this.modelLookup.getNodeById(e)}getEdgeById(e){return this.modelLookup.getEdgeById(e)}getNodesInRange(e,t){return kp(this,e,t)}getNearestNodeInRange(e,t){return HS(this,e,t)}getNearestPortInRange(e,t){return US(this,e,t)}getConnectedEdges(e){return this.modelLookup.getConnectedEdges(e)}getConnectedNodes(e){return this.modelLookup.getConnectedNodes(e)}getNodeEnds(e){return this.modelLookup.getNodeEnds(e)}getChildren(e){return this.modelLookup.getChildren(e)}getChildrenNested(e){return this.modelLookup.getAllDescendants(e)}isNestedChild(e,t){return this.modelLookup.isNodeDescendantOfGroup(e,t)}getParentHierarchy(e){return this.modelLookup.getParentChain(e)}getOverlappingNodes(e){return VS(this,e)}isNodeCurrentlyRendered(e){return this.renderStrategy.isNodeRendered(e)}getScale(){return this.model.getMetadata().viewport.scale}getViewport(){return this.model.getMetadata().viewport}get updater(){return this.initUpdater.isInitialized?this.internalUpdater:this.initUpdater}get isInitialized(){return this.initUpdater.isInitialized}get isVirtualizationActive(){return this.config.virtualization.enabled}setDebugMode(e){e?(window.flowCore=this,this.middlewareManager.isRegistered(Ys.name)||this.registerMiddleware(Ys)):(delete window.flowCore,this.unregisterMiddleware(Ys.name))}},je=class{flow;constructor(e){this.flow=e}},au=class extends je{startPoint;isBoxSelecting=!1;handle(e){switch(e.phase){case"start":this.startPoint=e.lastInputPoint,this.isBoxSelecting=!0;break;case"continue":if(!this.isBoxSelecting||!this.flow.config.boxSelection.realtime)break;this.boxSelect(e);break;case"end":if(!this.isBoxSelecting)break;this.boxSelect(e),this.flow.commandHandler.emit("selectEnd"),this.startPoint=void 0,this.isBoxSelecting=!1}}boxSelect(e){if(!this.startPoint)return;let t=e.lastInputPoint,{x:o,y:i}=this.flow.clientToFlowPosition(this.startPoint),{x:r,y:s}=this.flow.clientToFlowPosition(t),a={x:Math.min(o,r),y:Math.min(i,s),width:Math.abs(r-o),height:Math.abs(s-i)},d=this.flow.model.getEdges(),l=new Set(jS(this.flow,a,this.flow.config.boxSelection.partialInclusion).map(u=>u.id)),c=d.filter(u=>l.has(u.source)&&l.has(u.target)).map(u=>u.id);this.flow.commandHandler.emit("select",{nodeIds:[...l],edgeIds:c,multiSelection:!1})}},du=class extends je{handle(){this.flow.commandHandler.emit("copy")}},lu=class extends je{handle(){this.flow.commandHandler.emit("cut")}},cu=class extends je{handle(){this.flow.commandHandler.emit("deleteSelection")}},qS=["top","bottom","left","right"],YS=n=>`[ngDiagram] Unknown keyboard move direction: "${n}"
114
114
 
115
- Valid directions are: ${RS.map(e=>`'${e}'`).join(", ")}
115
+ Valid directions are: ${qS.map(e=>`'${e}'`).join(", ")}
116
116
 
117
117
  This indicates a programming error. Check keyboard shortcut configuration.
118
118
 
119
119
  Documentation: https://www.ngdiagram.dev/docs/guides/shortcut-manager/
120
- `,Dm={top:{x:0,y:-1},bottom:{x:0,y:1},left:{x:-1,y:0},right:{x:1,y:0}},su=class extends Ve{handle(e){let t=this.flow.modelLookup.getSelectedNodesWithChildren({directOnly:!1}).filter(r=>r.draggable??!0);if(t.length===0)return;let o=this.getRootNodes(t),i=this.getDelta(e.direction,o);this.flow.commandHandler.emit("moveNodesBy",{nodes:t,delta:i}),this.flow.config.viewportPanningEnabled&&this.panViewportIfNeeded(e.direction,t,i)}getRootNodes(e){let t=new Set(e.map(o=>o.id));return e.filter(o=>o.groupId==null||!t.has(o.groupId))}getDelta(e,t){let{computeSnapForNodeDrag:o,defaultDragSnap:i}=this.flow.config.snapping,r=t.reduce((a,d)=>{let{width:l,height:c}=o(d)??i;return{width:Math.max(a.width,l),height:Math.max(a.height,c)}},{width:0,height:0}),s=Dm[e];if(!s)throw new Error(NS(e));return{x:s.x*r.width,y:s.y*r.height}}panViewportIfNeeded(e,t,o){let i=this.calculatePanAmount(e,t,o);i>0&&this.emitViewportPan(e,i)}calculatePanAmount(e,t,o){let{viewport:i}=this.flow.model.getMetadata();if(!i.width||!i.height)return 0;let r=this.getViewportBounds(i.x,i.y,i.width,i.height,i.scale);return t.reduce((s,a)=>{let d=this.calculateNodeOverflow(a,o,e,r);return Math.max(s,d)},0)}getViewportBounds(e,t,o,i,r){let{edgePanningThreshold:s}=this.flow.config.selectionMoving,a=s/r;return{left:-e/r+a,top:-t/r+a,right:(-e+o)/r-a,bottom:(-t+i)/r-a}}calculateNodeOverflow(e,t,o,i){let r=this.getSnappedPosition(e,t),s=this.getNodeBounds(e,r);switch(o){case"left":return i.left-s.left;case"right":return s.right-i.right;case"top":return i.top-s.top;case"bottom":return s.bottom-i.bottom}}getNodeBounds(e,t){let o=xp({x:t.x,y:t.y,width:e.size?.width??100,height:e.size?.height??50},e.angle??0);return{left:o.x,top:o.y,right:o.x+o.width,bottom:o.y+o.height}}getSnappedPosition(e,t){return Ca(this.flow.config,e,{x:e.position.x+t.x,y:e.position.y+t.y})}emitViewportPan(e,t){let{viewport:o}=this.flow.model.getMetadata(),i=t*o.scale,r=Dm[e];this.flow.commandHandler.emit("moveViewportBy",{x:r.x===0?0:-r.x*i,y:r.y===0?0:-r.y*i})}},au=class extends Ve{handle(e){let t=0,o=0;switch(e.direction){case"top":o=-10;break;case"bottom":o=10;break;case"left":t=-10;break;case"right":t=10;break;default:return}this.flow.commandHandler.emit("moveViewportBy",{x:t,y:o})}},OS=n=>`[ngDiagram] Linking event missing target node.
120
+ `,Am={top:{x:0,y:-1},bottom:{x:0,y:1},left:{x:-1,y:0},right:{x:1,y:0}},uu=class extends je{handle(e){let t=this.flow.modelLookup.getSelectedNodesWithChildren({directOnly:!1}).filter(r=>r.draggable??!0);if(t.length===0)return;let o=this.getRootNodes(t),i=this.getDelta(e.direction,o);this.flow.commandHandler.emit("moveNodesBy",{nodes:t,delta:i}),this.flow.config.viewportPanningEnabled&&this.panViewportIfNeeded(e.direction,t,i)}getRootNodes(e){let t=new Set(e.map(o=>o.id));return e.filter(o=>o.groupId==null||!t.has(o.groupId))}getDelta(e,t){let{computeSnapForNodeDrag:o,defaultDragSnap:i}=this.flow.config.snapping,r=t.reduce((a,d)=>{let{width:l,height:c}=o(d)??i;return{width:Math.max(a.width,l),height:Math.max(a.height,c)}},{width:0,height:0}),s=Am[e];if(!s)throw new Error(YS(e));return{x:s.x*r.width,y:s.y*r.height}}panViewportIfNeeded(e,t,o){let i=this.calculatePanAmount(e,t,o);i>0&&this.emitViewportPan(e,i)}calculatePanAmount(e,t,o){let{viewport:i}=this.flow.model.getMetadata();if(!i.width||!i.height)return 0;let r=this.getViewportBounds(i.x,i.y,i.width,i.height,i.scale);return t.reduce((s,a)=>{let d=this.calculateNodeOverflow(a,o,e,r);return Math.max(s,d)},0)}getViewportBounds(e,t,o,i,r){let{edgePanningThreshold:s}=this.flow.config.selectionMoving,a=s/r;return{left:-e/r+a,top:-t/r+a,right:(-e+o)/r-a,bottom:(-t+i)/r-a}}calculateNodeOverflow(e,t,o,i){let r=this.getSnappedPosition(e,t),s=this.getNodeBounds(e,r);switch(o){case"left":return i.left-s.left;case"right":return s.right-i.right;case"top":return i.top-s.top;case"bottom":return s.bottom-i.bottom}}getNodeBounds(e,t){let o=Dp({x:t.x,y:t.y,width:e.size?.width??100,height:e.size?.height??50},e.angle??0);return{left:o.x,top:o.y,right:o.x+o.width,bottom:o.y+o.height}}getSnappedPosition(e,t){return Sa(this.flow.config,e,{x:e.position.x+t.x,y:e.position.y+t.y})}emitViewportPan(e,t){let{viewport:o}=this.flow.model.getMetadata(),i=t*o.scale,r=Am[e];this.flow.commandHandler.emit("moveViewportBy",{x:r.x===0?0:-r.x*i,y:r.y===0?0:-r.y*i})}},pu=class extends je{handle(e){let t=0,o=0;switch(e.direction){case"top":o=-10;break;case"bottom":o=10;break;case"left":t=-10;break;case"right":t=10;break;default:return}this.flow.commandHandler.emit("moveViewportBy",{x:t,y:o})}},ZS=n=>`[ngDiagram] Linking event missing target node.
121
121
 
122
122
  Event details:
123
123
  \u2022 Phase: ${n.phase}
@@ -128,7 +128,7 @@ Event details:
128
128
  This indicates a programming error. Linking start events must have a target node.
129
129
 
130
130
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/edges/
131
- `,du=class extends Ve{handle(e){switch(e.phase){case"start":{let t=e.target?.id;if(!t)throw new Error(OS(e));this.flow.actionStateManager.linking={sourceNodeId:t,sourcePortId:e.portId,temporaryEdge:null},this.flow.commandHandler.emit("startLinking",{source:t,sourcePort:e.portId});break}case"continue":{if(!this.flow.actionStateManager.isLinking())break;let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.flow.config.viewportPanningEnabled&&e.panningForce&&this.flow.commandHandler.emit("moveViewportBy",{x:e.panningForce.x,y:e.panningForce.y}),this.flow.commandHandler.emit("moveTemporaryEdge",{position:t});break}case"end":{if(!this.flow.actionStateManager.isLinking())break;let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.flow.commandHandler.emit("finishLinking",{position:t});break}}}},lu=class extends Ve{handle(e){let{data:t,lastInputPoint:o}=e;this.flow.commandHandler.emit("paletteDropNode",{node:_(g({},t),{id:this.flow.config.computeNodeId(),position:this.flow.clientToFlowPosition({x:o.x,y:o.y})})})}},cu=class extends Ve{lastPoint;handle(e){switch(e.phase){case"start":this.lastPoint=e.lastInputPoint,this.flow.actionStateManager.panning={active:!0};break;case"continue":if(!this.flow.actionStateManager.isPanning()||!this.lastPoint)break;this.flow.commandHandler.emit("moveViewportBy",{x:e.lastInputPoint.x-this.lastPoint.x,y:e.lastInputPoint.y-this.lastPoint.y}),this.lastPoint=e.lastInputPoint;break;case"end":this.lastPoint=void 0,this.flow.actionStateManager.clearPanning()}}},uu=class extends Ve{lastPoint;accumulatedDelta={x:0,y:0};rafScheduled=!1;handle(e){switch(e.phase){case"start":this.lastPoint=e.lastInputPoint,this.accumulatedDelta={x:0,y:0},this.flow.actionStateManager.panning={active:!0};break;case"continue":{if(!this.flow.actionStateManager.isPanning()||!this.lastPoint)break;let t=e.lastInputPoint.y-this.lastPoint.y;this.accumulatedDelta.x+=e.lastInputPoint.x-this.lastPoint.x,this.accumulatedDelta.y+=t,this.lastPoint=e.lastInputPoint,this.scheduleFlush();break}case"end":this.flushDelta(),this.lastPoint=void 0,this.rafScheduled=!1,this.flow.actionStateManager.clearPanning()}}scheduleFlush(){this.rafScheduled||(this.rafScheduled=!0,requestAnimationFrame(()=>{this.flushDelta(),this.rafScheduled=!1}))}flushDelta(){let{x:e,y:t}=this.accumulatedDelta;e===0&&t===0||(this.flow.commandHandler.emit("moveViewportBy",{x:e,y:t}),this.accumulatedDelta={x:0,y:0})}};function AS(n){return n.isVirtualizationActive?new uu(n):new cu(n)}var pu=class extends Ve{handle(e){this.flow.commandHandler.emit("paste",this.getPasteParameters(e))}getPasteParameters(e){return e.lastInputPoint?{position:this.flow.clientToFlowPosition(e.lastInputPoint)}:{}}};var hu=class extends Ve{lastPointerPosition;startPoint;isMoving=!1;hasMoved=!1;handle(e){return D(this,null,function*(){switch(e.phase){case"start":{let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.lastPointerPosition=t,this.startPoint=t,this.isMoving=!0,this.flow.actionStateManager.dragging={nodeIds:[],modifiers:g({},e.modifiers),accumulatedDeltas:new Map,movementStarted:!1};break}case"continue":{let t=this.flow.modelLookup.getSelectedNodesWithChildren({directOnly:!1}).filter(a=>a.draggable??!0),o=this.flow.modelLookup.getSelectedNodes();if(t.length===0||!this.isMoving||!this.lastPointerPosition||!this.startPoint)return;let i=this.flow.clientToFlowPosition(e.lastInputPoint);if(!this.hasMoved){let a=i.x-this.startPoint.x,d=i.y-this.startPoint.y;Math.sqrt(a*a+d*d)>=5&&(this.hasMoved=!0,this.flow.actionStateManager.dragging={nodeIds:t.map(l=>l.id),modifiers:g({},e.modifiers),movementStarted:!0,accumulatedDeltas:new Map},yield this.flow.commandHandler.emit("moveNodesStart"))}let r=i.x-this.lastPointerPosition.x,s=i.y-this.lastPointerPosition.y;this.flow.actionStateManager.dragging&&(this.flow.actionStateManager.dragging.modifiers=g({},e.modifiers)),this.hasMoved&&(this.flow.transaction("moveNodes",a=>D(this,null,function*(){yield a.emit("moveNodesBy",{delta:{x:r,y:s},nodes:t}),this.updateGroupHighlightOnDrag(a,i,o)})),this.panDiagramOnScreenEdge(e.panningForce)),this.lastPointerPosition=i;break}case"end":{let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.hasMoved&&(yield this.handleDrop(t),yield this.flow.commandHandler.emit("moveNodesStop")),this.flow.actionStateManager.clearDragging(),this.lastPointerPosition=void 0,this.startPoint=void 0,this.isMoving=!1,this.hasMoved=!1}}})}updateGroupHighlightOnDrag(e,t,o){let i=this.getTopGroupAtPoint(t),r=this.flow.actionStateManager.highlightGroup?.highlightedGroupId;i&&o.some(s=>s.groupId!==i.id)?r!==i.id&&e.emit("highlightGroup",{groupId:i.id,nodes:o}):r&&e.emit("highlightGroupClear")}getTopGroupAtPoint(e){return L_(this.flow.getNodesInRange(e,1).filter(t=>io(t)&&!t.selected),this.flow.getState().nodes)[0]}handleDrop(e){return D(this,null,function*(){let t=this.getTopGroupAtPoint(e),o=this.flow.modelLookup.getSelectedNodes();if(t)yield this.flow.commandHandler.emit("addToGroup",{groupId:t.id,nodeIds:o.map(i=>i.id)});else for(let i of o)i.groupId===void 0||o.find(r=>r.id===i.groupId)||(yield this.flow.commandHandler.emit("removeFromGroup",{groupId:i.groupId,nodeIds:[i.id]}))})}panDiagramOnScreenEdge(e){e&&this.flow.commandHandler.emit("moveViewportBy",{x:e.x,y:e.y})}},gu=class extends Ve{handle(){this.flow.model.redo()}},LS=n=>`[ngDiagram] Resize event missing target node.
131
+ `,hu=class extends je{handle(e){switch(e.phase){case"start":{let t=e.target?.id;if(!t)throw new Error(ZS(e));this.flow.actionStateManager.linking={sourceNodeId:t,sourcePortId:e.portId,temporaryEdge:null},this.flow.commandHandler.emit("startLinking",{source:t,sourcePort:e.portId});break}case"continue":{if(!this.flow.actionStateManager.isLinking())break;let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.flow.config.viewportPanningEnabled&&e.panningForce&&this.flow.commandHandler.emit("moveViewportBy",{x:e.panningForce.x,y:e.panningForce.y}),this.flow.commandHandler.emit("moveTemporaryEdge",{position:t});break}case"end":{if(!this.flow.actionStateManager.isLinking())break;let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.flow.commandHandler.emit("finishLinking",{position:t});break}}}},gu=class extends je{handle(e){let{data:t,lastInputPoint:o}=e;this.flow.commandHandler.emit("paletteDropNode",{node:_(h({},t),{id:this.flow.config.computeNodeId(),position:this.flow.clientToFlowPosition({x:o.x,y:o.y})})})}},fu=class extends je{lastPoint;handle(e){switch(e.phase){case"start":this.lastPoint=e.lastInputPoint,this.flow.actionStateManager.panning={active:!0};break;case"continue":if(!this.flow.actionStateManager.isPanning()||!this.lastPoint)break;this.flow.commandHandler.emit("moveViewportBy",{x:e.lastInputPoint.x-this.lastPoint.x,y:e.lastInputPoint.y-this.lastPoint.y}),this.lastPoint=e.lastInputPoint;break;case"end":this.lastPoint=void 0,this.flow.actionStateManager.clearPanning()}}},mu=class extends je{lastPoint;accumulatedDelta={x:0,y:0};rafScheduled=!1;handle(e){switch(e.phase){case"start":this.lastPoint=e.lastInputPoint,this.accumulatedDelta={x:0,y:0},this.flow.actionStateManager.panning={active:!0};break;case"continue":{if(!this.flow.actionStateManager.isPanning()||!this.lastPoint)break;let t=e.lastInputPoint.y-this.lastPoint.y;this.accumulatedDelta.x+=e.lastInputPoint.x-this.lastPoint.x,this.accumulatedDelta.y+=t,this.lastPoint=e.lastInputPoint,this.scheduleFlush();break}case"end":this.flushDelta(),this.lastPoint=void 0,this.rafScheduled=!1,this.flow.actionStateManager.clearPanning()}}scheduleFlush(){this.rafScheduled||(this.rafScheduled=!0,requestAnimationFrame(()=>{this.flushDelta(),this.rafScheduled=!1}))}flushDelta(){let{x:e,y:t}=this.accumulatedDelta;e===0&&t===0||(this.flow.commandHandler.emit("moveViewportBy",{x:e,y:t}),this.accumulatedDelta={x:0,y:0})}};function KS(n){return n.isVirtualizationActive?new mu(n):new fu(n)}var yu=class extends je{handle(e){this.flow.commandHandler.emit("paste",this.getPasteParameters(e))}getPasteParameters(e){return e.lastInputPoint?{position:this.flow.clientToFlowPosition(e.lastInputPoint)}:{}}};var vu=class extends je{lastPointerPosition;startPoint;isMoving=!1;hasMoved=!1;handle(e){return M(this,null,function*(){switch(e.phase){case"start":{let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.lastPointerPosition=t,this.startPoint=t,this.isMoving=!0,this.flow.actionStateManager.dragging={nodeIds:[],modifiers:h({},e.modifiers),accumulatedDeltas:new Map,movementStarted:!1};break}case"continue":{let t=this.flow.modelLookup.getSelectedNodesWithChildren({directOnly:!1}).filter(a=>a.draggable??!0),o=this.flow.modelLookup.getSelectedNodes();if(t.length===0||!this.isMoving||!this.lastPointerPosition||!this.startPoint)return;let i=this.flow.clientToFlowPosition(e.lastInputPoint);if(!this.hasMoved){let a=i.x-this.startPoint.x,d=i.y-this.startPoint.y;Math.sqrt(a*a+d*d)>=5&&(this.hasMoved=!0,this.flow.actionStateManager.dragging={nodeIds:t.map(l=>l.id),modifiers:h({},e.modifiers),movementStarted:!0,accumulatedDeltas:new Map},yield this.flow.commandHandler.emit("moveNodesStart"))}let r=i.x-this.lastPointerPosition.x,s=i.y-this.lastPointerPosition.y;this.flow.actionStateManager.dragging&&(this.flow.actionStateManager.dragging.modifiers=h({},e.modifiers)),this.hasMoved&&(this.flow.transaction("moveNodes",a=>M(this,null,function*(){yield a.emit("moveNodesBy",{delta:{x:r,y:s},nodes:t}),this.updateGroupHighlightOnDrag(a,i,o)})),this.panDiagramOnScreenEdge(e.panningForce)),this.lastPointerPosition=i;break}case"end":{let t=this.flow.clientToFlowPosition(e.lastInputPoint);this.hasMoved&&(yield this.handleDrop(t),yield this.flow.commandHandler.emit("moveNodesStop")),this.flow.actionStateManager.clearDragging(),this.lastPointerPosition=void 0,this.startPoint=void 0,this.isMoving=!1,this.hasMoved=!1}}})}updateGroupHighlightOnDrag(e,t,o){let i=this.getTopGroupAtPoint(t),r=this.flow.actionStateManager.highlightGroup?.highlightedGroupId;i&&o.some(s=>s.groupId!==i.id)?r!==i.id&&e.emit("highlightGroup",{groupId:i.id,nodes:o}):r&&e.emit("highlightGroupClear")}getTopGroupAtPoint(e){return X_(this.flow.getNodesInRange(e,1).filter(t=>so(t)&&!t.selected),this.flow.getState().nodes)[0]}handleDrop(e){return M(this,null,function*(){let t=this.getTopGroupAtPoint(e),o=this.flow.modelLookup.getSelectedNodes();if(t)yield this.flow.commandHandler.emit("addToGroup",{groupId:t.id,nodeIds:o.map(i=>i.id)});else for(let i of o)i.groupId===void 0||o.find(r=>r.id===i.groupId)||(yield this.flow.commandHandler.emit("removeFromGroup",{groupId:i.groupId,nodeIds:[i.id]}))})}panDiagramOnScreenEdge(e){e&&this.flow.commandHandler.emit("moveViewportBy",{x:e.x,y:e.y})}},bu=class extends je{handle(){this.flow.model.redo()}},XS=n=>`[ngDiagram] Resize event missing target node.
132
132
 
133
133
  Event details:
134
134
  \u2022 Phase: ${n.phase}
@@ -138,7 +138,7 @@ Event details:
138
138
 
139
139
  This indicates a programming error. Resize events must have a target node.
140
140
 
141
- Documentation: https://www.ngdiagram.dev/docs/guides/nodes/resizing/`,fu=class extends Ve{handle(e){return D(this,null,function*(){if(!e.target)throw new Error(LS(e));let{x:t,y:o}=this.flow.clientToFlowPosition(e.lastInputPoint);switch(e.phase){case"start":{let i=this.flow.getNodeById(e.target.id);i&&i.size&&(this.flow.actionStateManager.resize={startX:t,startY:o,startWidth:i.size.width,startHeight:i.size.height,startNodePositionX:i.position.x,startNodePositionY:i.position.y,resizingNode:i},yield this.flow.commandHandler.emit("resizeNodeStart"));break}case"continue":{let i=this.flow.actionStateManager.resize;if(!i)break;let{startHeight:r,startNodePositionX:s,startNodePositionY:a,startWidth:d,startX:l,startY:c}=i,u=Math.round(t-l),w=Math.round(o-c),S=d,k=r,W=s,Z=a;switch(e.direction){case"top-left":S=d-u,W=s+(d-S),k=r-w,Z=a+(r-k);break;case"top":k=r-w,Z=a+(r-k);break;case"top-right":S=d+u,k=r-w,Z=a+(r-k);break;case"right":S=d+u;break;case"bottom-right":S=d+u,k=r+w;break;case"bottom":k=r+w;break;case"bottom-left":S=d-u,W=s+(d-S),k=r+w;break;case"left":S=d-u,W=s+(d-S)}let X={id:e.target.id,disableAutoSize:!0,size:{width:Math.round(S),height:Math.round(k)}};W===s&&Z===a||(X.position={x:Math.round(W),y:Math.round(Z)}),this.flow.commandHandler.emit("resizeNode",X);break}case"end":yield this.flow.commandHandler.emit("resizeNodeStop"),this.flow.actionStateManager.clearResize()}})}};var FS=n=>`[ngDiagram] Rotate event missing target node.
141
+ Documentation: https://www.ngdiagram.dev/docs/guides/nodes/resizing/`,wu=class extends je{handle(e){return M(this,null,function*(){if(!e.target)throw new Error(XS(e));let{x:t,y:o}=this.flow.clientToFlowPosition(e.lastInputPoint);switch(e.phase){case"start":{let i=this.flow.getNodeById(e.target.id);i&&i.size&&(this.flow.actionStateManager.resize={startX:t,startY:o,startWidth:i.size.width,startHeight:i.size.height,startNodePositionX:i.position.x,startNodePositionY:i.position.y,resizingNode:i},yield this.flow.commandHandler.emit("resizeNodeStart"));break}case"continue":{let i=this.flow.actionStateManager.resize;if(!i)break;let{startHeight:r,startNodePositionX:s,startNodePositionY:a,startWidth:d,startX:l,startY:c}=i,u=Math.round(t-l),w=Math.round(o-c),S=d,k=r,W=s,Z=a;switch(e.direction){case"top-left":S=d-u,W=s+(d-S),k=r-w,Z=a+(r-k);break;case"top":k=r-w,Z=a+(r-k);break;case"top-right":S=d+u,k=r-w,Z=a+(r-k);break;case"right":S=d+u;break;case"bottom-right":S=d+u,k=r+w;break;case"bottom":k=r+w;break;case"bottom-left":S=d-u,W=s+(d-S),k=r+w;break;case"left":S=d-u,W=s+(d-S)}let K={id:e.target.id,disableAutoSize:!0,size:{width:Math.round(S),height:Math.round(k)}};W===s&&Z===a||(K.position={x:Math.round(W),y:Math.round(Z)}),this.flow.commandHandler.emit("resizeNode",K);break}case"end":yield this.flow.commandHandler.emit("resizeNodeStop"),this.flow.actionStateManager.clearResize()}})}};var QS=n=>`[ngDiagram] Rotate event missing target node.
142
142
 
143
143
  Event details:
144
144
  \u2022 Phase: ${n.phase}
@@ -148,28 +148,28 @@ Event details:
148
148
 
149
149
  This indicates a programming error. Rotation events must have a target node.
150
150
 
151
- Documentation: https://www.ngdiagram.dev/docs/guides/nodes/rotation/`,mu=class extends Ve{handle(e){return D(this,null,function*(){let{center:t,lastInputPoint:o,target:i,phase:r}=e;if(!i)throw new Error(FS(e));let s=i?.id,a=this.flow.clientToFlowPosition(o);switch(r){case"start":{let d=this.flow.getNodeById(s);if(!d)return;let l=Qe.angleBetweenPoints(t,a);this.flow.actionStateManager.rotation={startAngle:l,initialNodeAngle:d.angle??0,nodeId:s},yield this.flow.commandHandler.emit("rotateNodeStart");break}case"continue":{let d=this.flow.actionStateManager.rotation;if(!d||d.nodeId!==s||Qe.distanceBetweenPoints(a,t)<30)return;let l=Qe.angleBetweenPoints(t,a);this.flow.commandHandler.emit("rotateNodeTo",{nodeId:s,angle:d.initialNodeAngle+(l-d.startAngle)});break}case"end":yield this.flow.commandHandler.emit("rotateNodeStop"),this.flow.actionStateManager.clearRotation()}})}},yu=class extends Ve{handle(){this.flow.commandHandler.emit("selectAll"),this.flow.commandHandler.emit("selectEnd")}},vu=class extends Ve{handle(e){if(e.phase==="end")return void this.flow.commandHandler.emit("selectEnd");let t=this.getTargetElements(e),o=this.flow.shortcutManager.matchesAction("multiSelection",{modifiers:e.modifiers});if(!t&&!o)return void this.flow.commandHandler.emit("deselectAll");if(!t)return;let{target:i}=e,r=i?.selected;r&&o?this.flow.commandHandler.emit("deselect",t):this.flow.commandHandler.emit("select",_(g({},t),{multiSelection:r||o}))}getTargetElements(e){return e.targetType!=="diagram"&&e.target?e.targetType==="node"?{nodeIds:[e.target.id],edgeIds:void 0}:e.targetType==="edge"?{nodeIds:void 0,edgeIds:[e.target.id]}:void 0:null}},bu=class extends Ve{handle(){this.flow.model.undo()}};var wu=class extends Ve{idleTimeout;handle(e){let{deltaX:t,deltaY:o}=e;t===0&&o===0||(this.activatePanning(),this.flow.commandHandler.emit("moveViewportBy",{x:-t||0,y:-o||0}))}activatePanning(){this.flow.actionStateManager.panning={active:!0},this.idleTimeout!==void 0&&clearTimeout(this.idleTimeout),this.idleTimeout=setTimeout(()=>{this.flow.actionStateManager.clearPanning(),this.idleTimeout=void 0},100)}},Cu=class extends Ve{handle(e){let{centerPoint:{x:t,y:o},zoomFactor:i}=e,{x:r,y:s,scale:a}=this.flow.getState().metadata.viewport,{x:d,y:l}=this.flow.getFlowOffset(),c=(t-r-d)/a,u=(o-s-l)/a;a*=i,a=Qe.clamp({min:this.flow.config.zoom.min,value:a,max:this.flow.config.zoom.max}),r+=((t-r-d)/a-c)*a,s+=((o-s-l)/a-u)*a,this.flow.commandHandler.emit("zoom",{x:r,y:s,scale:a})}},_u=class{handlers={};emit(e){let t=this.handlers[e.name];if(t)return t.handle(e);console.warn(`No handler registered for event: ${e.name}`)}register(e,t){this.handlers[e]=t}registerDefaultCallbacks(e){this.register("copy",new ou(e)),this.register("select",new vu(e)),this.register("selectAll",new yu(e)),this.register("panning",AS(e)),this.register("keyboardPanning",new au(e)),this.register("wheelPanning",new wu(e)),this.register("pointerMoveSelection",new hu(e)),this.register("keyboardMoveSelection",new su(e)),this.register("resize",new fu(e)),this.register("paste",new pu(e)),this.register("deleteSelection",new ru(e)),this.register("zoom",new Cu(e)),this.register("linking",new du(e)),this.register("rotate",new mu(e)),this.register("paletteDrop",new lu(e)),this.register("cut",new iu(e)),this.register("boxSelection",new nu(e)),this.register("undo",new bu(e)),this.register("redo",new gu(e))}hasHandler(e){return!!this.handlers[e]}},ir=class n{get os(){return this.detectOS()}get browser(){return this.detectBrowser()}get runtime(){return this.isClient?"web":"node"}get isClient(){return this.checkIfClient()}detectOS(){if(!this.isClient)return null;let e=window.navigator.userAgent;return/iPhone|iPad|iPod/.test(e)?"iOS":/Mac/.test(e)?"MacOS":/Win/.test(e)?"Windows":/Android/.test(e)?"Android":/Linux/.test(e)?"Linux":"Other"}detectBrowser(){if(!this.isClient)return null;let e=window.navigator.userAgent;return/OPR/.test(e)?"Opera":/Edge|Edg/.test(e)?"Edge":/Chrome/.test(e)?"Chrome":/Firefox/.test(e)?"Firefox":/Safari/.test(e)?"Safari":/Trident/.test(e)?"IE":"Unknown"}checkIfClient(){return typeof window<"u"&&typeof document<"u"}now(){return this.isClient?performance.now():Date.now()}generateId(){return this.isClient&&typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substring(2,15)}`}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})},at=class n extends _u{environment=h(ir);getBaseEvent(e){return{modifiers:this.getModifiers(e),id:this.environment.generateId(),timestamp:this.environment.now()}}eventGuards={isPointerEvent:this.isPointerEvent.bind(this),isKeyboardEvent:this.isKeyboardEvent.bind(this),isWheelEvent:this.isWheelEvent.bind(this),isDomEvent:this.isDomEvent.bind(this),withPrimaryModifier:this.withPrimaryModifier.bind(this),withSecondaryModifier:this.withSecondaryModifier.bind(this),withShiftModifier:this.withShiftModifier.bind(this),withMetaModifier:this.withMetaModifier.bind(this),withoutModifiers:this.withoutModifiers.bind(this),withPrimaryButton:this.withPrimaryButton.bind(this),isArrowKeyPressed:this.isArrowKeyPressed.bind(this),isKeyPressed:this.isKeyPressed.bind(this),isKeyComboPressed:this.isKeyComboPressed.bind(this)};keysMap={arrows:{up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},keys:{delete:"Delete",backspace:"Backspace"}};getPrimaryModifierKey(){return this.environment.isClient&&this.environment.os==="MacOS"?"metaKey":"ctrlKey"}isPointerEvent(e){return this.environment.isClient&&e instanceof PointerEvent}isKeyboardEvent(e){return this.environment.isClient&&e instanceof KeyboardEvent}isWheelEvent(e){return this.environment.isClient&&e instanceof WheelEvent}isDomEvent(e){return this.isPointerEvent(e)||this.isKeyboardEvent(e)||this.isWheelEvent(e)}getModifiers(e){return this.isDomEvent(e)?{primary:e[this.getPrimaryModifierKey()],secondary:e.altKey,shift:e.shiftKey,meta:e.metaKey}:{primary:!1,secondary:!1,shift:!1,meta:!1}}withPrimaryModifier(e){return this.getModifiers(e).primary}withSecondaryModifier(e){return this.getModifiers(e).secondary}withShiftModifier(e){return this.getModifiers(e).shift}withMetaModifier(e){return this.getModifiers(e).meta}withoutModifiers(e){let t=this.getModifiers(e);return Object.values(t).every(o=>o===!1)}withPrimaryButton(e){return this.isPointerEvent(e)&&(e.button===void 0||e.button===0)}isArrowKeyPressed(e){return this.isKeyboardEvent(e)&&Object.values(this.keysMap.arrows).includes(e.key)}isKeyPressed(e){return t=>this.isKeyboardEvent(t)&&t.key===e}isKeyComboPressed(e,...t){return o=>{if(!this.isKeyboardEvent(o))return!1;let i=this.getModifiers(o);return!!t.every(r=>i[r])&&this.isKeyPressed(e)(o)}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=V({token:n,factory:n.\u0275fac})},rn=class n{clear(){throw new Error("Method not implemented.")}isInitialized=$(!1);viewportPannable=$(!0);nodes=$([]);edges=$([]);viewport=$({x:0,y:0,scale:1});draw(e,t,o){this.nodes.set(e),this.edges.set(t),this.viewport.set(o)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},De=class n{renderer=h(rn);inputEventsRouter=h(at);environment=h(ir);flowCore=null;_isInitialized=$(!1);isInitialized=this._isInitialized.asReadonly();init(e,t,o,i,r){this.flowCore=new tu(e,this.renderer,this.inputEventsRouter,this.environment,t,o,i,r),this._isInitialized.set(!0)}destroy(){this.flowCore&&(this.flowCore.destroy(),this.flowCore=null,this._isInitialized.set(!1))}provide(){if(!this.flowCore)throw new Error(`[ngDiagram] Library engine not initialized yet.
151
+ Documentation: https://www.ngdiagram.dev/docs/guides/nodes/rotation/`,Cu=class extends je{handle(e){return M(this,null,function*(){let{center:t,lastInputPoint:o,target:i,phase:r}=e;if(!i)throw new Error(QS(e));let s=i?.id,a=this.flow.clientToFlowPosition(o);switch(r){case"start":{let d=this.flow.getNodeById(s);if(!d)return;let l=Qe.angleBetweenPoints(t,a);this.flow.actionStateManager.rotation={startAngle:l,initialNodeAngle:d.angle??0,nodeId:s},yield this.flow.commandHandler.emit("rotateNodeStart");break}case"continue":{let d=this.flow.actionStateManager.rotation;if(!d||d.nodeId!==s||Qe.distanceBetweenPoints(a,t)<30)return;let l=Qe.angleBetweenPoints(t,a);this.flow.commandHandler.emit("rotateNodeTo",{nodeId:s,angle:d.initialNodeAngle+(l-d.startAngle)});break}case"end":yield this.flow.commandHandler.emit("rotateNodeStop"),this.flow.actionStateManager.clearRotation()}})}},_u=class extends je{handle(){this.flow.commandHandler.emit("selectAll"),this.flow.commandHandler.emit("selectEnd")}},xu=class extends je{handle(e){if(e.phase==="end")return void this.flow.commandHandler.emit("selectEnd");let t=this.getTargetElements(e),o=this.flow.shortcutManager.matchesAction("multiSelection",{modifiers:e.modifiers});if(!t&&!o)return void this.flow.commandHandler.emit("deselectAll");if(!t)return;let{target:i}=e,r=i?.selected;r&&o?this.flow.commandHandler.emit("deselect",t):this.flow.commandHandler.emit("select",_(h({},t),{multiSelection:r||o}))}getTargetElements(e){return e.targetType!=="diagram"&&e.target?e.targetType==="node"?{nodeIds:[e.target.id],edgeIds:void 0}:e.targetType==="edge"?{nodeIds:void 0,edgeIds:[e.target.id]}:void 0:null}},Su=class extends je{handle(){this.flow.model.undo()}};var Eu=class extends je{idleTimeout;handle(e){let{deltaX:t,deltaY:o}=e;t===0&&o===0||(this.activatePanning(),this.flow.commandHandler.emit("moveViewportBy",{x:-t||0,y:-o||0}))}activatePanning(){this.flow.actionStateManager.panning={active:!0},this.idleTimeout!==void 0&&clearTimeout(this.idleTimeout),this.idleTimeout=setTimeout(()=>{this.flow.actionStateManager.clearPanning(),this.idleTimeout=void 0},100)}},Pu=class extends je{handle(e){let{centerPoint:{x:t,y:o},zoomFactor:i}=e,{x:r,y:s,scale:a}=this.flow.getState().metadata.viewport,{x:d,y:l}=this.flow.getFlowOffset(),c=(t-r-d)/a,u=(o-s-l)/a;a*=i,a=Qe.clamp({min:this.flow.config.zoom.min,value:a,max:this.flow.config.zoom.max}),r+=((t-r-d)/a-c)*a,s+=((o-s-l)/a-u)*a,this.flow.commandHandler.emit("zoom",{x:r,y:s,scale:a})}},Iu=class{handlers={};emit(e){let t=this.handlers[e.name];if(t)return t.handle(e);console.warn(`No handler registered for event: ${e.name}`)}register(e,t){this.handlers[e]=t}registerDefaultCallbacks(e){this.register("copy",new du(e)),this.register("select",new xu(e)),this.register("selectAll",new _u(e)),this.register("panning",KS(e)),this.register("keyboardPanning",new pu(e)),this.register("wheelPanning",new Eu(e)),this.register("pointerMoveSelection",new vu(e)),this.register("keyboardMoveSelection",new uu(e)),this.register("resize",new wu(e)),this.register("paste",new yu(e)),this.register("deleteSelection",new cu(e)),this.register("zoom",new Pu(e)),this.register("linking",new hu(e)),this.register("rotate",new Cu(e)),this.register("paletteDrop",new gu(e)),this.register("cut",new lu(e)),this.register("boxSelection",new au(e)),this.register("undo",new Su(e)),this.register("redo",new bu(e))}hasHandler(e){return!!this.handlers[e]}},nr=class n{get os(){return this.detectOS()}get browser(){return this.detectBrowser()}get runtime(){return this.isClient?"web":"node"}get isClient(){return this.checkIfClient()}detectOS(){if(!this.isClient)return null;let e=window.navigator.userAgent;return/iPhone|iPad|iPod/.test(e)?"iOS":/Mac/.test(e)?"MacOS":/Win/.test(e)?"Windows":/Android/.test(e)?"Android":/Linux/.test(e)?"Linux":"Other"}detectBrowser(){if(!this.isClient)return null;let e=window.navigator.userAgent;return/OPR/.test(e)?"Opera":/Edge|Edg/.test(e)?"Edge":/Chrome/.test(e)?"Chrome":/Firefox/.test(e)?"Firefox":/Safari/.test(e)?"Safari":/Trident/.test(e)?"IE":"Unknown"}checkIfClient(){return typeof window<"u"&&typeof document<"u"}now(){return this.isClient?performance.now():Date.now()}generateId(){return this.isClient&&typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substring(2,15)}`}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})},at=class n extends Iu{environment=f(nr);getBaseEvent(e){return{modifiers:this.getModifiers(e),id:this.environment.generateId(),timestamp:this.environment.now()}}eventGuards={isPointerEvent:this.isPointerEvent.bind(this),isKeyboardEvent:this.isKeyboardEvent.bind(this),isWheelEvent:this.isWheelEvent.bind(this),isDomEvent:this.isDomEvent.bind(this),withPrimaryModifier:this.withPrimaryModifier.bind(this),withSecondaryModifier:this.withSecondaryModifier.bind(this),withShiftModifier:this.withShiftModifier.bind(this),withMetaModifier:this.withMetaModifier.bind(this),withoutModifiers:this.withoutModifiers.bind(this),withPrimaryButton:this.withPrimaryButton.bind(this),isArrowKeyPressed:this.isArrowKeyPressed.bind(this),isKeyPressed:this.isKeyPressed.bind(this),isKeyComboPressed:this.isKeyComboPressed.bind(this)};keysMap={arrows:{up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},keys:{delete:"Delete",backspace:"Backspace"}};getPrimaryModifierKey(){return this.environment.isClient&&this.environment.os==="MacOS"?"metaKey":"ctrlKey"}isPointerEvent(e){return this.environment.isClient&&e instanceof PointerEvent}isKeyboardEvent(e){return this.environment.isClient&&e instanceof KeyboardEvent}isWheelEvent(e){return this.environment.isClient&&e instanceof WheelEvent}isDomEvent(e){return this.isPointerEvent(e)||this.isKeyboardEvent(e)||this.isWheelEvent(e)}getModifiers(e){return this.isDomEvent(e)?{primary:e[this.getPrimaryModifierKey()],secondary:e.altKey,shift:e.shiftKey,meta:e.metaKey}:{primary:!1,secondary:!1,shift:!1,meta:!1}}withPrimaryModifier(e){return this.getModifiers(e).primary}withSecondaryModifier(e){return this.getModifiers(e).secondary}withShiftModifier(e){return this.getModifiers(e).shift}withMetaModifier(e){return this.getModifiers(e).meta}withoutModifiers(e){let t=this.getModifiers(e);return Object.values(t).every(o=>o===!1)}withPrimaryButton(e){return this.isPointerEvent(e)&&(e.button===void 0||e.button===0)}isArrowKeyPressed(e){return this.isKeyboardEvent(e)&&Object.values(this.keysMap.arrows).includes(e.key)}isKeyPressed(e){return t=>this.isKeyboardEvent(t)&&t.key===e}isKeyComboPressed(e,...t){return o=>{if(!this.isKeyboardEvent(o))return!1;let i=this.getModifiers(o);return!!t.every(r=>i[r])&&this.isKeyPressed(e)(o)}}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=j({token:n,factory:n.\u0275fac})},an=class n{clear(){throw new Error("Method not implemented.")}isInitialized=H(!1);viewportPannable=H(!0);nodes=H([]);edges=H([]);viewport=H({x:0,y:0,scale:1});draw(e,t,o){this.nodes.set(e),this.edges.set(t),this.viewport.set(o)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Te=class n{renderer=f(an);inputEventsRouter=f(at);environment=f(nr);flowCore=null;_isInitialized=H(!1);isInitialized=this._isInitialized.asReadonly();init(e,t,o,i,r){this.flowCore=new su(e,this.renderer,this.inputEventsRouter,this.environment,t,o,i,r),this._isInitialized.set(!0)}destroy(){this.flowCore&&(this.flowCore.destroy(),this.flowCore=null,this._isInitialized.set(!1))}provide(){if(!this.flowCore)throw new Error(`[ngDiagram] Library engine not initialized yet.
152
152
 
153
153
  To fix this, wait for initialization to complete using one of these methods:
154
154
  \u2022 Use "isInitialized" signal from NgDiagramService
155
155
  \u2022 Use "diagramInit" event handler passed to NgDiagramComponent
156
156
 
157
157
  Documentation: https://www.ngdiagram.dev/docs/guides/model-initialization/#waiting-for-initialization
158
- `);return this.flowCore}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Js=class n{flowCoreProvider=h(De);element;cachedOffset=null;isInteractionActive=!1;getFlowOffset=()=>{if(this.isInteractionActive&&this.cachedOffset)return this.cachedOffset;let e=this.element.getBoundingClientRect(),t={x:e.left,y:e.top};return this.isInteractionActive&&(this.cachedOffset=t),t};initialize(e){this.element=e,this.flowCoreProvider.provide().eventManager.on("actionStateChanged",t=>{let{actionState:o}=t,i=!!(o.dragging||o.linking||o.resize||o.rotation||o.panning||o.selection);i&&!this.isInteractionActive?this.isInteractionActive=!0:!i&&this.isInteractionActive&&(this.isInteractionActive=!1,this.cachedOffset=null)})}invalidateCache(){this.cachedOffset=null}reset(){this.cachedOffset=null,this.isInteractionActive=!1}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},$n=class n{ngZone=h(hn);observer=null;observedElements=new WeakMap;entityIndex=new Map;config=null;rafId=null;pendingEntries=[];constructor(){this.ngZone.runOutsideAngular(()=>{this.observer=new ResizeObserver(e=>{if(this.pendingEntries.push(...e),this.config?.onObserverActivity){let t=[];for(let o of e){let i=this.observedElements.get(o.target);i&&t.push(i)}t.length>0&&this.config.onObserverActivity(t)}this.rafId||(this.rafId=requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.processBatch()})}))})})}configure(e){this.config=e}observe(e,t){this.observedElements.set(e,t),this.addToEntityIndex(e,t),this.observer?.observe(e)}unobserve(e){let t=this.observedElements.get(e);t&&(this.removeFromEntityIndex(e,t),this.observedElements.delete(e)),this.observer?.unobserve(e)}invalidate(e){this.observedElements.get(e)&&(this.observer?.unobserve(e),this.observer?.observe(e))}getMetadata(e){return this.observedElements.get(e)}invalidateNode(e){this.invalidateByKey(`node:${e}`)}invalidateEdgeLabels(e){this.invalidateByKey(`edge:${e}`)}invalidateAll(){let e=new Set;for(let t of this.entityIndex.values())for(let o of t)e.has(o)||(e.add(o),this.invalidate(o))}invalidateByKey(e){let t=this.entityIndex.get(e);if(t)for(let o of t)this.invalidate(o)}getEntityKeys(e){switch(e.type){case"node":case"port":return[`node:${e.nodeId}`];case"edge-label":return[`edge:${e.edgeId}`]}}addToEntityIndex(e,t){for(let o of this.getEntityKeys(t)){let i=this.entityIndex.get(o);i||(i=new Set,this.entityIndex.set(o,i)),i.add(e)}}removeFromEntityIndex(e,t){for(let o of this.getEntityKeys(t)){let i=this.entityIndex.get(o);i&&(i.delete(e),i.size===0&&this.entityIndex.delete(o))}}processBatch(){let e=[...this.pendingEntries];this.pendingEntries=[],this.rafId=null,e.length!==0&&this.config&&this.ngZone.run(()=>{this.config.processBatch(e)})}ngOnDestroy(){this.rafId&&cancelAnimationFrame(this.rafId),this.observer?.disconnect(),this.entityIndex.clear()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},zS=(n,e)=>{let t=n.parentElement;for(;t;){if(t.classList.contains(e))return t;t=t.parentElement}return null},BS=n=>`[ngDiagram] Port measurement failed: Parent node not found.
158
+ `);return this.flowCore}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},na=class n{flowCoreProvider=f(Te);element;cachedOffset=null;isInteractionActive=!1;getFlowOffset=()=>{if(this.isInteractionActive&&this.cachedOffset)return this.cachedOffset;let e=this.element.getBoundingClientRect(),t={x:e.left,y:e.top};return this.isInteractionActive&&(this.cachedOffset=t),t};initialize(e){this.element=e,this.flowCoreProvider.provide().eventManager.on("actionStateChanged",t=>{let{actionState:o}=t,i=!!(o.dragging||o.linking||o.resize||o.rotation||o.panning||o.selection);i&&!this.isInteractionActive?this.isInteractionActive=!0:!i&&this.isInteractionActive&&(this.isInteractionActive=!1,this.cachedOffset=null)})}invalidateCache(){this.cachedOffset=null}reset(){this.cachedOffset=null,this.isInteractionActive=!1}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Un=class n{ngZone=f(gn);observer=null;observedElements=new WeakMap;entityIndex=new Map;config=null;rafId=null;pendingEntries=[];constructor(){this.ngZone.runOutsideAngular(()=>{this.observer=new ResizeObserver(e=>{if(this.pendingEntries.push(...e),this.config?.onObserverActivity){let t=[];for(let o of e){let i=this.observedElements.get(o.target);i&&t.push(i)}t.length>0&&this.config.onObserverActivity(t)}this.rafId||(this.rafId=requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.processBatch()})}))})})}configure(e){this.config=e}observe(e,t){this.observedElements.set(e,t),this.addToEntityIndex(e,t),this.observer?.observe(e)}unobserve(e){let t=this.observedElements.get(e);t&&(this.removeFromEntityIndex(e,t),this.observedElements.delete(e)),this.observer?.unobserve(e)}invalidate(e){this.observedElements.get(e)&&(this.observer?.unobserve(e),this.observer?.observe(e))}getMetadata(e){return this.observedElements.get(e)}invalidateNode(e){this.invalidateByKey(`node:${e}`)}invalidateEdgeLabels(e){this.invalidateByKey(`edge:${e}`)}invalidateAll(){let e=new Set;for(let t of this.entityIndex.values())for(let o of t)e.has(o)||(e.add(o),this.invalidate(o))}invalidateByKey(e){let t=this.entityIndex.get(e);if(t)for(let o of t)this.invalidate(o)}getEntityKeys(e){switch(e.type){case"node":case"port":return[`node:${e.nodeId}`];case"edge-label":return[`edge:${e.edgeId}`]}}addToEntityIndex(e,t){for(let o of this.getEntityKeys(t)){let i=this.entityIndex.get(o);i||(i=new Set,this.entityIndex.set(o,i)),i.add(e)}}removeFromEntityIndex(e,t){for(let o of this.getEntityKeys(t)){let i=this.entityIndex.get(o);i&&(i.delete(e),i.size===0&&this.entityIndex.delete(o))}}processBatch(){let e=[...this.pendingEntries];this.pendingEntries=[],this.rafId=null,e.length!==0&&this.config&&this.ngZone.run(()=>{this.config.processBatch(e)})}ngOnDestroy(){this.rafId&&cancelAnimationFrame(this.rafId),this.observer?.disconnect(),this.entityIndex.clear()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},JS=(n,e)=>{let t=n.parentElement;for(;t;){if(t.classList.contains(e))return t;t=t.parentElement}return null},eE=n=>`[ngDiagram] Port measurement failed: Parent node not found.
159
159
 
160
160
  Port ID: ${n}
161
161
 
162
162
  This may occur during DOM updates or node removal.
163
163
 
164
164
  Documentation: https://www.ngdiagram.dev/docs/guides/nodes/ports/
165
- `,$S=n=>`[ngDiagram] Node measurement failed: Node element not found.
165
+ `,tE=n=>`[ngDiagram] Node measurement failed: Node element not found.
166
166
 
167
167
  Node ID: ${n}
168
168
 
169
169
  This may occur during DOM updates or node removal.
170
170
 
171
171
  Documentation: https://www.ngdiagram.dev/docs/guides/nodes/nodes/
172
- `,HS=(n,e)=>`[ngDiagram] Port measurement failed: Missing data-port-id attribute.
172
+ `,nE=(n,e)=>`[ngDiagram] Port measurement failed: Missing data-port-id attribute.
173
173
 
174
174
  Port element ID: ${n}
175
175
  Node ID: ${e}
@@ -181,12 +181,12 @@ To fix this:
181
181
  Skipping this port.
182
182
 
183
183
  Documentation: https://www.ngdiagram.dev/docs/guides/nodes/ports/
184
- `,rr=class n{flowCoreProvider=h(De);diagramElement=h(rt);getPortData(e){let t=zS(e,"ng-diagram-node");return t?this.measurePort(e,t.getBoundingClientRect(),this.getScale()):(console.error(BS(e.id)),null)}getNodePortsData(e){let t=this.diagramElement.nativeElement.querySelector(`.ng-diagram-node[data-node-id="${e}"]`);if(!t)return console.error($S(e)),[];let o=t.querySelectorAll("[data-port-id]"),i=[],r=t.getBoundingClientRect(),s=this.getScale();return o.forEach(a=>{let d=a.getAttribute("data-port-id");if(!d)return void console.error(HS(a.id,e));let l=this.measurePort(a,r,s);i.push({id:d,size:l.size,position:l.position})}),i}measurePort(e,t,o){let i=e.getBoundingClientRect();return{position:{x:(i.left-t.left)/o,y:(i.top-t.top)/o},size:{width:i.width/o,height:i.height/o}}}getScale(){return this.flowCoreProvider.provide().getState().metadata.viewport.scale}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},US=n=>`[ngDiagram] Unknown element type: "${n}"
184
+ `,or=class n{flowCoreProvider=f(Te);diagramElement=f(rt);getPortData(e){let t=JS(e,"ng-diagram-node");return t?this.measurePort(e,t.getBoundingClientRect(),this.getScale()):(console.error(eE(e.id)),null)}getNodePortsData(e){let t=this.diagramElement.nativeElement.querySelector(`.ng-diagram-node[data-node-id="${e}"]`);if(!t)return console.error(tE(e)),[];let o=t.querySelectorAll("[data-port-id]"),i=[],r=t.getBoundingClientRect(),s=this.getScale();return o.forEach(a=>{let d=a.getAttribute("data-port-id");if(!d)return void console.error(nE(a.id,e));let l=this.measurePort(a,r,s);i.push({id:d,size:l.size,position:l.position})}),i}measurePort(e,t,o){let i=e.getBoundingClientRect();return{position:{x:(i.left-t.left)/o,y:(i.top-t.top)/o},size:{width:i.width/o,height:i.height/o}}}getScale(){return this.flowCoreProvider.provide().getState().metadata.viewport.scale}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},oE=n=>`[ngDiagram] Unknown element type: "${n}"
185
185
 
186
186
  Expected types: 'port', 'edge-label', 'node'
187
187
 
188
188
  This indicates a programming error in the resize observer metadata configuration.
189
- Check that elements are registered with the correct type.`,ea=class n{flowCoreProvider=h(De);updatePortsService=h(rr);batchResizeObserver=h($n);isInitialized=!1;initialize(){this.isInitialized||(this.batchResizeObserver.configure({processBatch:e=>this.processAllResizes(e),onObserverActivity:e=>{let t=this.flowCoreProvider.provide().measurementTracker;for(let o of e)o.type==="port"||o.type==="node"?t.signalObserverActivity(`node:${o.nodeId}`):o.type==="edge-label"&&t.signalObserverActivity(`edge:${o.edgeId}`)}}),this.isInitialized=!0)}processAllResizes(e){if(!this.isInitialized)return void console.warn("FlowResizeBatchProcessorService not initialized yet, skipping resize processing");let t=[],o=[],i=[];for(let r of e){let s=this.batchResizeObserver.getMetadata(r.target);if(s)switch(s.type){case"port":t.push({metadata:s,entry:r});break;case"edge-label":o.push({metadata:s,entry:r});break;case"node":i.push({metadata:s,entry:r});break;default:throw new Error(US(s.type))}}t.length>0&&this.processPortBatch(t),o.length>0&&this.processEdgeLabelBatch(o),i.length>0&&this.processNodeBatch(i)}processPortBatch(e){let t=this.flowCoreProvider.provide(),o=new Map,i=new Map;for(let{entry:r,metadata:s}of e){if(s?.type!=="port")continue;let a=this.getBorderBoxSize(r);if(!a)continue;let d=this.updatePortsService.getPortData(r.target);if(!d)continue;let l=t.getNodeById(s.nodeId);if(!l)continue;o.has(s.nodeId)||o.set(s.nodeId,new Map((l.measuredPorts??[]).map(u=>[u.id,u])));let c=o.get(s.nodeId).get(s.portId);c?.size&&!this.isSizeChanged(c.size,a)&&c?.position&&!this.isPositionChanged(c.position,d.position)||(i.has(s.nodeId)||i.set(s.nodeId,[]),i.get(s.nodeId).push({id:s.portId,size:a,position:d.position}))}i.forEach((r,s)=>{t.updater.applyPortChanges(s,Ks(r))})}processNodeBatch(e){let t=this.flowCoreProvider.provide(),o=t.actionStateManager.isResizing(),i=[];for(let{entry:r,metadata:s}of e){if(s?.type!=="node")continue;let a=this.getBorderBoxSize(r);if(!a)continue;let d=t.getNodeById(s.nodeId);if(d&&(!d.size||this.isSizeChanged(d.size,a))&&(i.push({id:s.nodeId,size:a}),!o)){let l=this.updatePortsService.getNodePortsData(s.nodeId);t.updater.applyPortChanges(s.nodeId,Ks(l))}}i.length>0&&t.updater.applyNodeSizes(i)}processEdgeLabelBatch(e){let t=this.flowCoreProvider.provide(),o=new Map,i=new Map;for(let{entry:r,metadata:s}of e){if(s?.type!=="edge-label")continue;let a=this.getBorderBoxSize(r);if(!a)continue;let d=t.getEdgeById(s.edgeId);if(!d)continue;o.has(s.edgeId)||o.set(s.edgeId,new Map((d.measuredLabels??[]).map(c=>[c.id,c.size])));let l=o.get(s.edgeId).get(s.labelId);l&&!this.isSizeChanged(l,a)||(i.has(s.edgeId)||i.set(s.edgeId,[]),i.get(s.edgeId).push({labelId:s.labelId,size:a}))}i.forEach((r,s)=>{t.updater.applyEdgeLabelChanges(s,r.map(({labelId:a,size:d})=>({labelId:a,labelChanges:{size:d}})))})}getBorderBoxSize(e){let[t]=e.borderBoxSize;return t?{width:t.inlineSize,height:t.blockSize}:null}isSizeChanged(e,t){return Math.abs(e.width-t.width)>1||Math.abs(e.height-t.height)>1}isPositionChanged(e,t){return Math.abs(e.x-t.x)>1||Math.abs(e.y-t.y)>1}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},ta=class n{draggedNode=$(null);previewId=$(null);onMouseDown(e,t){this.draggedNode.set(e),this.previewId.set(t)}onDragStartFromPalette(e,t){e.dataTransfer&&e.dataTransfer?.setData("text/plain",JSON.stringify(t))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Cn=class{flowCoreProvider=h(De);get flowCore(){return this.flowCoreProvider.provide()}},sn=class extends Cn{renderer=h(rn);viewport=b(()=>this.renderer.viewport()||{x:0,y:0,scale:1});scale=b(()=>this.renderer.viewport().scale||1);get minZoom(){return this.flowCore.config.zoom.min}get maxZoom(){return this.flowCore.config.zoom.max}canZoomIn=b(()=>this.scale()<this.maxZoom);canZoomOut=b(()=>this.scale()>this.minZoom);clientToFlowPosition(e){return this.flowCore.clientToFlowPosition(e)}clientToFlowViewportPosition(e){return this.flowCore.clientToFlowViewportPosition(e)}flowToClientPosition(e){return this.flowCore.flowToClientPosition(e)}moveViewport(e,t){this.flowCore.commandHandler.emit("moveViewport",{x:e,y:t})}moveViewportBy(e,t){this.flowCore.commandHandler.emit("moveViewportBy",{x:e,y:t})}setViewport(e,t,o){let{min:i,max:r}=this.flowCore.config.zoom;(o<i||o>r)&&console.warn(`[ngDiagram] setViewport: scale ${o} is outside configured bounds [${i}, ${r}] and will be clamped.`);let s=Math.max(i,Math.min(r,o));this.flowCore.commandHandler.emit("zoom",{scale:s,x:e,y:t})}zoom(e,t){let o=this.scale()*e,i=t?.x??this.viewport().x,r=t?.y??this.viewport().y;this.flowCore.commandHandler.emit("zoom",{scale:o,x:i,y:r})}zoomToFit(e){this.flowCore.commandHandler.emit("zoomToFit",e??{})}centerOnNode(e){this.flowCore.commandHandler.emit("centerOnNode",{nodeOrId:e})}centerOnRect(e){this.flowCore.commandHandler.emit("centerOnRect",{rect:e})}},na=class{viewportService=h(sn);viewport=this.viewportService.viewport;randomHash=Math.random().toString(36).substring(2,10);size=b(()=>{let e=this.backgroundPattern(),t=e?.nativeElement.getAttribute("staticWidth");return Number(t)*this.viewport().scale});fill=b(()=>this.viewport().scale>.3?"var(--ngd-background-dot-color)":"none");fillOpacity=b(()=>this.viewport().scale-.2);patternTransform=b(()=>{let e=this.size(),t=this.viewport();return`translate(${e?t.x%e:0},${e?t.y%e:0})`})},xu=class n extends na{flowCoreService=h(De);diagramService=h(Mt);backgroundPattern=st("backgroundPattern");dotSpacing=b(()=>{let e=this.diagramService.config().background;return this.flowCoreService.isInitialized()&&e?e.dotSpacing:0});static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-dotted-background"]],viewQuery:function(t,o){t&1&&ht(o.backgroundPattern,Tm,5),t&2&&gt()},features:[fn],decls:5,vars:9,consts:[["backgroundPattern",""],[1,"dotted-background"],["x","0","y","0","patternUnits","userSpaceOnUse",3,"id"],["r","1","cx","1","cy","1"],["width","100%","height","100%","x","0","y","0"]],template:function(t,o){t&1&&(ge(),U(0,"svg",1)(1,"pattern",2,0),pt(3,"circle",3),B(),pt(4,"rect",4),B()),t&2&&(p(),Ce("id",Qd("ng-diagram-background",o.randomHash)),K("fill",o.fill())("staticWidth",o.dotSpacing())("width",o.size()||o.dotSpacing())("height",o.size()||o.dotSpacing())("patternTransform",o.patternTransform())("fill-opacity",o.fillOpacity()),p(3),K("fill","url(#ng-diagram-background"+o.randomHash+")"))},styles:["[_nghost-%COMP%] .dotted-background[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}"],changeDetection:1})},Su=class n extends na{flowCore=h(De);diagramService=h(Mt);backgroundPattern=st("backgroundPattern");cellSize=b(()=>{let e={width:10,height:10};return this.flowCore.isInitialized()?this.diagramService.config().background?.cellSize??e:e});majorLinesFrequency=b(()=>{let e={x:5,y:5};return this.flowCore.isInitialized()?this.diagramService.config().background?.majorLinesFrequency??e:e});patternSize=b(()=>{let e=this.cellSize(),t=this.majorLinesFrequency();return{width:e.width*t.x,height:e.height*t.y}});patternTransform=b(()=>{let e=this.viewport(),t=e.scale??1,o=this.patternSize();return`translate(${o.width?e.x%(o.width*t):0}, ${o.height?e.y%(o.height*t):0}) scale(${t})`});gridLines(){let e=this.cellSize(),t=this.patternSize(),o=[];for(let i=0;i<=t.width;i+=e.width)o.push({x1:i,y1:0,x2:i,y2:t.height,major:i%t.width===0});for(let i=0;i<=t.height;i+=e.height)o.push({x1:0,y1:i,x2:t.width,y2:i,major:i%t.height===0});return o}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-grid-background"]],viewQuery:function(t,o){t&1&&ht(o.backgroundPattern,Tm,5),t&2&&gt()},features:[fn],decls:6,vars:7,consts:[["backgroundPattern",""],[1,"grid-background"],["patternUnits","userSpaceOnUse",3,"id"],["width","100%","height","100%","x","0","y","0"]],template:function(t,o){t&1&&(ge(),U(0,"svg",1)(1,"pattern",2,0),Q(3,fC,1,7,":svg:line",null,en),B(),pt(5,"rect",3),B()),t&2&&(p(),Ce("id",Qd("ng-diagram-background",o.randomHash)),K("staticWidth",o.patternSize().width)("width",o.patternSize().width)("height",o.patternSize().height)("patternTransform",o.patternTransform()),p(2),J(o.gridLines()),p(2),K("fill","url(#ng-diagram-background"+o.randomHash+")"))},styles:[".grid-background[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}.grid-background[_ngcontent-%COMP%] [stroke][_ngcontent-%COMP%]{vector-effect:non-scaling-stroke}"],changeDetection:1})},oa=class n{custom=st("contentProjection");type=I("dots");hasContent=!1;isDottedBackground=b(()=>this.type()==="dots");ngAfterContentInit(){this.hasContent=(this.custom()?.nativeElement?.childNodes?.length??0)>0}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-background"]],viewQuery:function(t,o){t&1&&ht(o.custom,yp,5),t&2&&gt()},inputs:{type:[1,"type"]},ngContentSelectors:Tt,decls:4,vars:1,consts:[["contentProjection",""],[1,"content-projection"]],template:function(t,o){t&1&&(Ye(),v(0,"div",1,0),je(2),y(),E(3,vC,3,1,"div")),t&2&&(p(3),P(o.hasContent?-1:3))},dependencies:[xu,Su],styles:[".content-projection[_ngcontent-%COMP%]:not(:empty){width:100%;height:100%}"],changeDetection:1})},Yo=class n{_lastPosition={x:0,y:0,timestamp:0};updatePosition(e,t){this._lastPosition={x:e,y:t,timestamp:Date.now()}}getLastPosition(){return g({},this._lastPosition)}hasRecentPosition(){return Date.now()-this._lastPosition.timestamp<5e3}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Eu=class n{cursorPositionService=h(Yo);onMouseMove(e){this.cursorPositionService.updatePosition(e.clientX,e.clientY)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramCursorPositionTracker",""]],hostBindings:function(t,o){t&1&&O("mousemove",function(r){return o.onMouseMove(r)},kt)}})},Pu=class n{node=I.required();highlighted=b(()=>this.node().highlighted??!1);static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramGroupHighlighted",""]],hostVars:4,hostBindings:function(t,o){t&2&&q("ng-diagram-group-highlight",o.highlighted())("ng-diagram-node-wrapper",!0)},inputs:{node:[1,"node"]}})};function VS(n){return!Rg(n)||typeof CSS>"u"||!CSS.supports||CSS.supports("stroke","context-stroke")}var Zo=class n{platformId=h(Eo);markers=$(new Map);useInlineMarkers=!VS(this.platformId);registerMarker(e,t){this.markers.update(o=>{let i=new Map(o);return i.set(e,t),i})}unregisterMarker(e){this.markers.update(t=>{let o=new Map(t);return o.delete(e),o})}getMarkerUrl(e,t,o){return`url(#${this.useInlineMarkers?`${e}-${t}-${o}`:e})`}cloneMarkerElement(e,t){let o=this.markers().get(e);if(!o)return null;let i=o.cloneNode(!0);return i.id=t,this.replaceContextColors(i),i}replaceContextColors(e){e.getAttribute("stroke")==="context-stroke"&&e.setAttribute("stroke","currentColor");let t=e.getAttribute("fill");t!=="context-fill"&&t!=="context-stroke"||e.setAttribute("fill","currentColor");for(let o of Array.from(e.children))this.replaceContextColors(o)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Iu=class n{el=h(rt);markerRegistry=h(Zo);destroyRef=h(qe);sourceMarkerId=I();targetMarkerId=I();edgeId=I.required();sourceMarkerRef=null;targetMarkerRef=null;constructor(){fe(()=>{this.cleanup(),this.appendMarkers()}),this.destroyRef.onDestroy(()=>this.cleanup())}appendMarkers(){let e=this.sourceMarkerId();if(e){let o=`${e}-${this.edgeId()}-source`;this.sourceMarkerRef=this.markerRegistry.cloneMarkerElement(e,o),this.sourceMarkerRef&&this.el.nativeElement.appendChild(this.sourceMarkerRef)}let t=this.targetMarkerId();if(t){let o=`${t}-${this.edgeId()}-target`;this.targetMarkerRef=this.markerRegistry.cloneMarkerElement(t,o),this.targetMarkerRef&&this.el.nativeElement.appendChild(this.targetMarkerRef)}}cleanup(){this.sourceMarkerRef?.remove(),this.targetMarkerRef?.remove(),this.sourceMarkerRef=null,this.targetMarkerRef=null}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramInlineMarkers",""]],inputs:{sourceMarkerId:[1,"sourceMarkerId"],targetMarkerId:[1,"targetMarkerId"],edgeId:[1,"edgeId"]}})},ia=class n{canHandle(e,t){return t.config.nodeDraggingEnabled&&e.actionName.startsWith("keyboardMoveSelection")&&t.modelLookup.getSelectedNodes().length>0}createEvent(e,t){let o=this.extractDirection(e.actionName);return o?_(g({},t),{name:"keyboardMoveSelection",direction:o}):null}extractDirection(e){return e.endsWith("Up")?"top":e.endsWith("Down")?"bottom":e.endsWith("Left")?"left":e.endsWith("Right")?"right":null}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},ra=class n{canHandle(e,t){return t.config.viewportPanningEnabled&&e.actionName.startsWith("keyboardPan")&&t.modelLookup.getSelectedNodes().length===0}createEvent(e,t){let o=this.extractDirection(e.actionName);return o?_(g({},t),{name:"keyboardPanning",direction:o}):null}extractDirection(e){return e.endsWith("Up")?"bottom":e.endsWith("Down")?"top":e.endsWith("Left")?"right":e.endsWith("Right")?"left":null}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},sa=class n{cursorPositionTracker=h(Yo);canHandle(e){return e.actionName==="paste"}createEvent(e,t){let o=_(g({},t),{name:e.actionName});return this.cursorPositionTracker.hasRecentPosition()&&(o.lastInputPoint=this.cursorPositionTracker.getLastPosition()),o}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},aa=class n{canHandle(e){return e.actionName==="keyboardZoomIn"||e.actionName==="keyboardZoomOut"}createEvent(e,t,o){let i=o.config.zoom.step,r=this.getCenterPoint(o.getViewport()),s=this.extractDirection(e.actionName);return s&&r?_(g({},t),{name:"zoom",centerPoint:r,zoomFactor:s>0?1+i:1-i}):null}extractDirection(e){return e.endsWith("In")?1:e.endsWith("Out")?-1:null}getCenterPoint(e){if(e.width&&e.height)return{x:e.width/2,y:e.height/2}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Du=class n{flowCoreProvider=h(De);inputEventsRouter=h(at);keyboardActions=[h(ra),h(ia),h(sa),h(aa)];elementRef=h(rt);onPointerDown(){this.elementRef.nativeElement.contains(document.activeElement)||this.elementRef.nativeElement.focus()}onKeyDown(e){if(!this.elementRef.nativeElement.contains(document.activeElement))return;let t=this.flowCoreProvider.provide(),o=this.inputEventsRouter.getBaseEvent(e),i=t.shortcutManager.match({key:e.key,modifiers:o.modifiers});if(i.length!==0&&!this.isInputFieldFocused(e)){e.preventDefault();for(let r of i){let s=this.keyboardActions.find(d=>d.canHandle(r,t)),a=s&&s.createEvent(r,o,t);a?this.inputEventsRouter.emit(a):this.inputEventsRouter.hasHandler(r.actionName)&&this.inputEventsRouter.emit(_(g({},o),{name:r.actionName}))}}}isInputFieldFocused(e){let t=e.composedPath()[0]||e.target;return t.hasAttribute("contenteditable")||["INPUT","TEXTAREA","SELECT"].includes(t.tagName)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramKeyboardInputs",""]],hostAttrs:["tabindex","0"],hostBindings:function(t,o){t&1&&O("keydown",function(r){return o.onKeyDown(r)},kt)("pointerdown",function(){return o.onPointerDown()})},features:[Io([ra,ia,sa,aa])]})},Ko=class n{inputEventsRouter=h(at);emitStart(e,t,o){let i=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},i),{name:"linking",phase:"start",target:t,targetType:"node",portId:o,lastInputPoint:{x:e.clientX,y:e.clientY}}))}emitContinue(e,t,o,i=null){let r=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},r),{name:"linking",phase:"continue",target:t,targetType:"node",portId:o,lastInputPoint:{x:e.clientX,y:e.clientY},panningForce:i}))}emitEnd(e,t,o){let i=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},i),{name:"linking",phase:"end",target:t,targetType:"node",portId:o,lastInputPoint:{x:e.clientX,y:e.clientY}}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Xo=class extends Map{},Qo=class extends Map{},yt;(function(n){n.Rotate="rotate",n.Resize="resize",n.Move="move",n.BoxSelection="box-selection",n.Linking="linking",n.Panning="panning",n.Zooming="zooming"})(yt||(yt={}));var _n=class n{currentEvent=$(null);clearCurrentEvent(){this.currentEvent.set(null)}rotateHandled(){return this.currentEvent()===yt.Rotate}resizeHandled(){return this.currentEvent()===yt.Resize}moveHandled(){return this.currentEvent()===yt.Move}boxSelectionHandled(){return this.currentEvent()===yt.BoxSelection}linkingHandled(){return this.currentEvent()===yt.Linking}panningHandled(){return this.currentEvent()===yt.Panning}zoomingHandled(){return this.currentEvent()===yt.Zooming}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})},da=class n{linkingEventService=h(Ko);flowCoreProviderService=h(De);touchEventsStateService=h(_n);target=$(void 0);edgePanningInterval=null;portId=I.required();ngOnDestroy(){this.cleanup()}setTargetNode(e){this.target.set(e)}onPointerDown(e){this.shouldHandle(e)&&(e.linkingHandled=!0,this.touchEventsStateService.currentEvent.set(yt.Linking),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),this.linkingEventService.emitStart(e,this.target(),this.portId()))}onPointerMove=e=>{if(this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.onPointerUp(e);let{edgePanningThreshold:t,edgePanningEnabled:o,edgePanningForce:i}=this.flowCoreProviderService.provide().config.linking,r=this.flowCoreProviderService.provide(),s=null;if(o){let{width:a,height:d}=r.getViewport(),{x:l,y:c}=r.getFlowOffset();s=Qe.calculateEdgePanningForce({x:l,y:c,width:a??0,height:d??0},{x:e.clientX,y:e.clientY},t,i),s?this.startEdgePanning(e,s):this.stopEdgePanning()}this.linkingEventService.emitContinue(e,this.target(),this.portId(),s)};onPointerUp=e=>{this.linkingEventService.emitEnd(e,this.target(),this.portId()),this.cleanup()};shouldHandle(e){return this.flowCoreProviderService.provide().actionStateManager.isLinking()?(this.target.set(void 0),!1):!(e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}cleanup(){this.touchEventsStateService.clearCurrentEvent(),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.stopEdgePanning()}startEdgePanning(e,t){this.stopEdgePanning(),this.edgePanningInterval=window.setInterval(()=>{this.linkingEventService.emitContinue(e,this.target(),this.portId(),t)},Nm)}stopEdgePanning(){this.edgePanningInterval!=null&&(window.clearInterval(this.edgePanningInterval),this.edgePanningInterval=null)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramLinkingInput",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{portId:[1,"portId"]},features:[Io([Ko])]})},sr=class n{inputEventsRouter=h(at);flowCoreProvider=h(De);targetData=I.required();ngOnDestroy(){document.removeEventListener("pointerup",this.onPointerUp)}onPointerDown(e){if(!this.shouldHandle(e))return;e.selectHandled=!0;let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"select",phase:"start",target:this.targetData(),targetType:this.targetType,lastInputPoint:{x:e.clientX,y:e.clientY}})),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{document.removeEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"select",phase:"end",target:this.targetData(),targetType:this.targetType,lastInputPoint:{x:e.clientX,y:e.clientY}}))};shouldHandle(e){return!(!this.inputEventsRouter.eventGuards.withPrimaryButton(e)||e.boxSelectionHandled||e.selectHandled||e.linkingHandled&&!this.flowCoreProvider.provide().config.linking.selectNodeOnPortPress)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{targetData:[1,"targetData"]}})},Mu=class n extends sr{targetType="diagram";targetData=I();static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275dir=me({type:n,inputs:{targetData:[1,"targetData"]},features:[fn]})},Tu=class n extends sr{targetType="edge";targetData=I.required();static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275dir=me({type:n,inputs:{targetData:[1,"targetData"]},features:[fn]})},ku=class n extends sr{targetType="node";targetData=I.required();static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275dir=me({type:n,inputs:{targetData:[1,"targetData"]},features:[fn]})},jS=(n,e)=>`[ngDiagram] Failed to parse palette drop data as JSON.
189
+ Check that elements are registered with the correct type.`,oa=class n{flowCoreProvider=f(Te);updatePortsService=f(or);batchResizeObserver=f(Un);isInitialized=!1;initialize(){this.isInitialized||(this.batchResizeObserver.configure({processBatch:e=>this.processAllResizes(e),onObserverActivity:e=>{let t=this.flowCoreProvider.provide().measurementTracker;for(let o of e)o.type==="port"||o.type==="node"?t.signalObserverActivity(`node:${o.nodeId}`):o.type==="edge-label"&&t.signalObserverActivity(`edge:${o.edgeId}`)}}),this.isInitialized=!0)}processAllResizes(e){if(!this.isInitialized)return void console.warn("FlowResizeBatchProcessorService not initialized yet, skipping resize processing");let t=[],o=[],i=[];for(let r of e){let s=this.batchResizeObserver.getMetadata(r.target);if(s)switch(s.type){case"port":t.push({metadata:s,entry:r});break;case"edge-label":o.push({metadata:s,entry:r});break;case"node":i.push({metadata:s,entry:r});break;default:throw new Error(oE(s.type))}}t.length>0&&this.processPortBatch(t),o.length>0&&this.processEdgeLabelBatch(o),i.length>0&&this.processNodeBatch(i)}processPortBatch(e){let t=this.flowCoreProvider.provide(),o=new Map,i=new Map;for(let{entry:r,metadata:s}of e){if(s?.type!=="port")continue;let a=this.getBorderBoxSize(r);if(!a)continue;let d=this.updatePortsService.getPortData(r.target);if(!d)continue;let l=t.getNodeById(s.nodeId);if(!l)continue;o.has(s.nodeId)||o.set(s.nodeId,new Map((l.measuredPorts??[]).map(u=>[u.id,u])));let c=o.get(s.nodeId).get(s.portId);c?.size&&!this.isSizeChanged(c.size,a)&&c?.position&&!this.isPositionChanged(c.position,d.position)||(i.has(s.nodeId)||i.set(s.nodeId,[]),i.get(s.nodeId).push({id:s.portId,size:a,position:d.position}))}i.forEach((r,s)=>{t.updater.applyPortChanges(s,Js(r))})}processNodeBatch(e){let t=this.flowCoreProvider.provide(),o=t.actionStateManager.isResizing(),i=[];for(let{entry:r,metadata:s}of e){if(s?.type!=="node")continue;let a=this.getBorderBoxSize(r);if(!a)continue;let d=t.getNodeById(s.nodeId);if(d&&(!d.size||this.isSizeChanged(d.size,a))&&(i.push({id:s.nodeId,size:a}),!o)){let l=this.updatePortsService.getNodePortsData(s.nodeId);t.updater.applyPortChanges(s.nodeId,Js(l))}}i.length>0&&t.updater.applyNodeSizes(i)}processEdgeLabelBatch(e){let t=this.flowCoreProvider.provide(),o=new Map,i=new Map;for(let{entry:r,metadata:s}of e){if(s?.type!=="edge-label")continue;let a=this.getBorderBoxSize(r);if(!a)continue;let d=t.getEdgeById(s.edgeId);if(!d)continue;o.has(s.edgeId)||o.set(s.edgeId,new Map((d.measuredLabels??[]).map(c=>[c.id,c.size])));let l=o.get(s.edgeId).get(s.labelId);l&&!this.isSizeChanged(l,a)||(i.has(s.edgeId)||i.set(s.edgeId,[]),i.get(s.edgeId).push({labelId:s.labelId,size:a}))}i.forEach((r,s)=>{t.updater.applyEdgeLabelChanges(s,r.map(({labelId:a,size:d})=>({labelId:a,labelChanges:{size:d}})))})}getBorderBoxSize(e){let[t]=e.borderBoxSize;return t?{width:t.inlineSize,height:t.blockSize}:null}isSizeChanged(e,t){return Math.abs(e.width-t.width)>1||Math.abs(e.height-t.height)>1}isPositionChanged(e,t){return Math.abs(e.x-t.x)>1||Math.abs(e.y-t.y)>1}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},ia=class n{draggedNode=H(null);previewId=H(null);onMouseDown(e,t){this.draggedNode.set(e),this.previewId.set(t)}onDragStartFromPalette(e,t){e.dataTransfer&&e.dataTransfer?.setData("text/plain",JSON.stringify(t))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},_n=class{flowCoreProvider=f(Te);get flowCore(){return this.flowCoreProvider.provide()}},dn=class extends _n{renderer=f(an);viewport=b(()=>this.renderer.viewport()||{x:0,y:0,scale:1});scale=b(()=>this.renderer.viewport().scale||1);get minZoom(){return this.flowCore.config.zoom.min}get maxZoom(){return this.flowCore.config.zoom.max}canZoomIn=b(()=>this.scale()<this.maxZoom);canZoomOut=b(()=>this.scale()>this.minZoom);clientToFlowPosition(e){return this.flowCore.clientToFlowPosition(e)}clientToFlowViewportPosition(e){return this.flowCore.clientToFlowViewportPosition(e)}flowToClientPosition(e){return this.flowCore.flowToClientPosition(e)}moveViewport(e,t){this.flowCore.commandHandler.emit("moveViewport",{x:e,y:t})}moveViewportBy(e,t){this.flowCore.commandHandler.emit("moveViewportBy",{x:e,y:t})}setViewport(e,t,o){let{min:i,max:r}=this.flowCore.config.zoom;(o<i||o>r)&&console.warn(`[ngDiagram] setViewport: scale ${o} is outside configured bounds [${i}, ${r}] and will be clamped.`);let s=Math.max(i,Math.min(r,o));this.flowCore.commandHandler.emit("zoom",{scale:s,x:e,y:t})}zoom(e,t){let o=this.scale()*e,i=t?.x??this.viewport().x,r=t?.y??this.viewport().y;this.flowCore.commandHandler.emit("zoom",{scale:o,x:i,y:r})}zoomToFit(e){this.flowCore.commandHandler.emit("zoomToFit",e??{})}centerOnNode(e){this.flowCore.commandHandler.emit("centerOnNode",{nodeOrId:e})}centerOnRect(e){this.flowCore.commandHandler.emit("centerOnRect",{rect:e})}},ra=class{viewportService=f(dn);viewport=this.viewportService.viewport;randomHash=Math.random().toString(36).substring(2,10);size=b(()=>{let e=this.backgroundPattern(),t=e?.nativeElement.getAttribute("staticWidth");return Number(t)*this.viewport().scale});fill=b(()=>this.viewport().scale>.3?"var(--ngd-background-dot-color)":"none");fillOpacity=b(()=>this.viewport().scale-.2);patternTransform=b(()=>{let e=this.size(),t=this.viewport();return`translate(${e?t.x%e:0},${e?t.y%e:0})`})},Du=class n extends ra{flowCoreService=f(Te);diagramService=f(Tt);backgroundPattern=st("backgroundPattern");dotSpacing=b(()=>{let e=this.diagramService.config().background;return this.flowCoreService.isInitialized()&&e?e.dotSpacing:0});static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-dotted-background"]],viewQuery:function(t,o){t&1&&ht(o.backgroundPattern,Fm,5),t&2&&gt()},features:[mn],decls:5,vars:9,consts:[["backgroundPattern",""],[1,"dotted-background"],["x","0","y","0","patternUnits","userSpaceOnUse",3,"id"],["r","1","cx","1","cy","1"],["width","100%","height","100%","x","0","y","0"]],template:function(t,o){t&1&&(fe(),B(0,"svg",1)(1,"pattern",2,0),pt(3,"circle",3),A(),pt(4,"rect",4),A()),t&2&&(p(),ge("id",il("ng-diagram-background",o.randomHash)),J("fill",o.fill())("staticWidth",o.dotSpacing())("width",o.size()||o.dotSpacing())("height",o.size()||o.dotSpacing())("patternTransform",o.patternTransform())("fill-opacity",o.fillOpacity()),p(3),J("fill","url(#ng-diagram-background"+o.randomHash+")"))},styles:["[_nghost-%COMP%] .dotted-background[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}"],changeDetection:1})},Tu=class n extends ra{flowCore=f(Te);diagramService=f(Tt);backgroundPattern=st("backgroundPattern");cellSize=b(()=>{let e={width:10,height:10};return this.flowCore.isInitialized()?this.diagramService.config().background?.cellSize??e:e});majorLinesFrequency=b(()=>{let e={x:5,y:5};return this.flowCore.isInitialized()?this.diagramService.config().background?.majorLinesFrequency??e:e});patternSize=b(()=>{let e=this.cellSize(),t=this.majorLinesFrequency();return{width:e.width*t.x,height:e.height*t.y}});patternTransform=b(()=>{let e=this.viewport(),t=e.scale??1,o=this.patternSize();return`translate(${o.width?e.x%(o.width*t):0}, ${o.height?e.y%(o.height*t):0}) scale(${t})`});gridLines(){let e=this.cellSize(),t=this.patternSize(),o=[];for(let i=0;i<=t.width;i+=e.width)o.push({x1:i,y1:0,x2:i,y2:t.height,major:i%t.width===0});for(let i=0;i<=t.height;i+=e.height)o.push({x1:0,y1:i,x2:t.width,y2:i,major:i%t.height===0});return o}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-grid-background"]],viewQuery:function(t,o){t&1&&ht(o.backgroundPattern,Fm,5),t&2&&gt()},features:[mn],decls:6,vars:7,consts:[["backgroundPattern",""],[1,"grid-background"],["patternUnits","userSpaceOnUse",3,"id"],["width","100%","height","100%","x","0","y","0"]],template:function(t,o){t&1&&(fe(),B(0,"svg",1)(1,"pattern",2,0),X(3,MC,1,7,":svg:line",null,on),A(),pt(5,"rect",3),A()),t&2&&(p(),ge("id",il("ng-diagram-background",o.randomHash)),J("staticWidth",o.patternSize().width)("width",o.patternSize().width)("height",o.patternSize().height)("patternTransform",o.patternTransform()),p(2),Q(o.gridLines()),p(2),J("fill","url(#ng-diagram-background"+o.randomHash+")"))},styles:[".grid-background[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}.grid-background[_ngcontent-%COMP%] [stroke][_ngcontent-%COMP%]{vector-effect:non-scaling-stroke}"],changeDetection:1})},sa=class n{custom=st("contentProjection");type=I("dots");hasContent=!1;isDottedBackground=b(()=>this.type()==="dots");ngAfterContentInit(){this.hasContent=(this.custom()?.nativeElement?.childNodes?.length??0)>0}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-background"]],viewQuery:function(t,o){t&1&&ht(o.custom,_p,5),t&2&&gt()},inputs:{type:[1,"type"]},ngContentSelectors:Mt,decls:4,vars:1,consts:[["contentProjection",""],[1,"content-projection"]],template:function(t,o){t&1&&(Ye(),v(0,"div",1,0),We(2),y(),E(3,NC,3,1,"div")),t&2&&(p(3),P(o.hasContent?-1:3))},dependencies:[Du,Tu],styles:[".content-projection[_ngcontent-%COMP%]:not(:empty){width:100%;height:100%}"],changeDetection:1})},Yo=class n{_lastPosition={x:0,y:0,timestamp:0};updatePosition(e,t){this._lastPosition={x:e,y:t,timestamp:Date.now()}}getLastPosition(){return h({},this._lastPosition)}hasRecentPosition(){return Date.now()-this._lastPosition.timestamp<5e3}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Mu=class n{cursorPositionService=f(Yo);onMouseMove(e){this.cursorPositionService.updatePosition(e.clientX,e.clientY)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramCursorPositionTracker",""]],hostBindings:function(t,o){t&1&&O("mousemove",function(r){return o.onMouseMove(r)},Nt)}})},ku=class n{node=I.required();highlighted=b(()=>this.node().highlighted??!1);static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramGroupHighlighted",""]],hostVars:4,hostBindings:function(t,o){t&2&&Y("ng-diagram-group-highlight",o.highlighted())("ng-diagram-node-wrapper",!0)},inputs:{node:[1,"node"]}})};function iE(n){return!Bg(n)||typeof CSS>"u"||!CSS.supports||CSS.supports("stroke","context-stroke")}var Zo=class n{platformId=f(Io);markers=H(new Map);useInlineMarkers=!iE(this.platformId);registerMarker(e,t){this.markers.update(o=>{let i=new Map(o);return i.set(e,t),i})}unregisterMarker(e){this.markers.update(t=>{let o=new Map(t);return o.delete(e),o})}getMarkerUrl(e,t,o){return`url(#${this.useInlineMarkers?`${e}-${t}-${o}`:e})`}cloneMarkerElement(e,t){let o=this.markers().get(e);if(!o)return null;let i=o.cloneNode(!0);return i.id=t,this.replaceContextColors(i),i}replaceContextColors(e){e.getAttribute("stroke")==="context-stroke"&&e.setAttribute("stroke","currentColor");let t=e.getAttribute("fill");t!=="context-fill"&&t!=="context-stroke"||e.setAttribute("fill","currentColor");for(let o of Array.from(e.children))this.replaceContextColors(o)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Ru=class n{el=f(rt);markerRegistry=f(Zo);destroyRef=f(Ve);sourceMarkerId=I();targetMarkerId=I();edgeId=I.required();sourceMarkerRef=null;targetMarkerRef=null;constructor(){me(()=>{this.cleanup(),this.appendMarkers()}),this.destroyRef.onDestroy(()=>this.cleanup())}appendMarkers(){let e=this.sourceMarkerId();if(e){let o=`${e}-${this.edgeId()}-source`;this.sourceMarkerRef=this.markerRegistry.cloneMarkerElement(e,o),this.sourceMarkerRef&&this.el.nativeElement.appendChild(this.sourceMarkerRef)}let t=this.targetMarkerId();if(t){let o=`${t}-${this.edgeId()}-target`;this.targetMarkerRef=this.markerRegistry.cloneMarkerElement(t,o),this.targetMarkerRef&&this.el.nativeElement.appendChild(this.targetMarkerRef)}}cleanup(){this.sourceMarkerRef?.remove(),this.targetMarkerRef?.remove(),this.sourceMarkerRef=null,this.targetMarkerRef=null}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramInlineMarkers",""]],inputs:{sourceMarkerId:[1,"sourceMarkerId"],targetMarkerId:[1,"targetMarkerId"],edgeId:[1,"edgeId"]}})},aa=class n{canHandle(e,t){return t.config.nodeDraggingEnabled&&e.actionName.startsWith("keyboardMoveSelection")&&t.modelLookup.getSelectedNodes().length>0}createEvent(e,t){let o=this.extractDirection(e.actionName);return o?_(h({},t),{name:"keyboardMoveSelection",direction:o}):null}extractDirection(e){return e.endsWith("Up")?"top":e.endsWith("Down")?"bottom":e.endsWith("Left")?"left":e.endsWith("Right")?"right":null}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},da=class n{canHandle(e,t){return t.config.viewportPanningEnabled&&e.actionName.startsWith("keyboardPan")&&t.modelLookup.getSelectedNodes().length===0}createEvent(e,t){let o=this.extractDirection(e.actionName);return o?_(h({},t),{name:"keyboardPanning",direction:o}):null}extractDirection(e){return e.endsWith("Up")?"bottom":e.endsWith("Down")?"top":e.endsWith("Left")?"right":e.endsWith("Right")?"left":null}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},la=class n{cursorPositionTracker=f(Yo);canHandle(e){return e.actionName==="paste"}createEvent(e,t){let o=_(h({},t),{name:e.actionName});return this.cursorPositionTracker.hasRecentPosition()&&(o.lastInputPoint=this.cursorPositionTracker.getLastPosition()),o}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},ca=class n{canHandle(e){return e.actionName==="keyboardZoomIn"||e.actionName==="keyboardZoomOut"}createEvent(e,t,o){let i=o.config.zoom.step,r=this.getCenterPoint(o.getViewport()),s=this.extractDirection(e.actionName);return s&&r?_(h({},t),{name:"zoom",centerPoint:r,zoomFactor:s>0?1+i:1-i}):null}extractDirection(e){return e.endsWith("In")?1:e.endsWith("Out")?-1:null}getCenterPoint(e){if(e.width&&e.height)return{x:e.width/2,y:e.height/2}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Nu=class n{flowCoreProvider=f(Te);inputEventsRouter=f(at);keyboardActions=[f(da),f(aa),f(la),f(ca)];elementRef=f(rt);onPointerDown(){this.elementRef.nativeElement.contains(document.activeElement)||this.elementRef.nativeElement.focus()}onKeyDown(e){if(!this.elementRef.nativeElement.contains(document.activeElement))return;let t=this.flowCoreProvider.provide(),o=this.inputEventsRouter.getBaseEvent(e),i=t.shortcutManager.match({key:e.key,modifiers:o.modifiers});if(i.length!==0&&!this.isInputFieldFocused(e)){e.preventDefault();for(let r of i){let s=this.keyboardActions.find(d=>d.canHandle(r,t)),a=s&&s.createEvent(r,o,t);a?this.inputEventsRouter.emit(a):this.inputEventsRouter.hasHandler(r.actionName)&&this.inputEventsRouter.emit(_(h({},o),{name:r.actionName}))}}}isInputFieldFocused(e){let t=e.composedPath()[0]||e.target;return t.hasAttribute("contenteditable")||["INPUT","TEXTAREA","SELECT"].includes(t.tagName)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramKeyboardInputs",""]],hostAttrs:["tabindex","0"],hostBindings:function(t,o){t&1&&O("keydown",function(r){return o.onKeyDown(r)},Nt)("pointerdown",function(){return o.onPointerDown()})},features:[Mo([da,aa,la,ca])]})},Ko=class n{inputEventsRouter=f(at);emitStart(e,t,o){let i=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},i),{name:"linking",phase:"start",target:t,targetType:"node",portId:o,lastInputPoint:{x:e.clientX,y:e.clientY}}))}emitContinue(e,t,o,i=null){let r=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},r),{name:"linking",phase:"continue",target:t,targetType:"node",portId:o,lastInputPoint:{x:e.clientX,y:e.clientY},panningForce:i}))}emitEnd(e,t,o){let i=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},i),{name:"linking",phase:"end",target:t,targetType:"node",portId:o,lastInputPoint:{x:e.clientX,y:e.clientY}}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Xo=class extends Map{},Qo=class extends Map{},yt;(function(n){n.Rotate="rotate",n.Resize="resize",n.Move="move",n.BoxSelection="box-selection",n.Linking="linking",n.Panning="panning",n.Zooming="zooming"})(yt||(yt={}));var xn=class n{currentEvent=H(null);clearCurrentEvent(){this.currentEvent.set(null)}rotateHandled(){return this.currentEvent()===yt.Rotate}resizeHandled(){return this.currentEvent()===yt.Resize}moveHandled(){return this.currentEvent()===yt.Move}boxSelectionHandled(){return this.currentEvent()===yt.BoxSelection}linkingHandled(){return this.currentEvent()===yt.Linking}panningHandled(){return this.currentEvent()===yt.Panning}zoomingHandled(){return this.currentEvent()===yt.Zooming}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})},ua=class n{linkingEventService=f(Ko);flowCoreProviderService=f(Te);touchEventsStateService=f(xn);target=H(void 0);edgePanningInterval=null;portId=I.required();ngOnDestroy(){this.cleanup()}setTargetNode(e){this.target.set(e)}onPointerDown(e){this.shouldHandle(e)&&(e.linkingHandled=!0,this.touchEventsStateService.currentEvent.set(yt.Linking),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),this.linkingEventService.emitStart(e,this.target(),this.portId()))}onPointerMove=e=>{if(this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.onPointerUp(e);let{edgePanningThreshold:t,edgePanningEnabled:o,edgePanningForce:i}=this.flowCoreProviderService.provide().config.linking,r=this.flowCoreProviderService.provide(),s=null;if(o){let{width:a,height:d}=r.getViewport(),{x:l,y:c}=r.getFlowOffset();s=Qe.calculateEdgePanningForce({x:l,y:c,width:a??0,height:d??0},{x:e.clientX,y:e.clientY},t,i),s?this.startEdgePanning(e,s):this.stopEdgePanning()}this.linkingEventService.emitContinue(e,this.target(),this.portId(),s)};onPointerUp=e=>{this.linkingEventService.emitEnd(e,this.target(),this.portId()),this.cleanup()};shouldHandle(e){return this.flowCoreProviderService.provide().actionStateManager.isLinking()?(this.target.set(void 0),!1):!(e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}cleanup(){this.touchEventsStateService.clearCurrentEvent(),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.stopEdgePanning()}startEdgePanning(e,t){this.stopEdgePanning(),this.edgePanningInterval=window.setInterval(()=>{this.linkingEventService.emitContinue(e,this.target(),this.portId(),t)},$m)}stopEdgePanning(){this.edgePanningInterval!=null&&(window.clearInterval(this.edgePanningInterval),this.edgePanningInterval=null)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramLinkingInput",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{portId:[1,"portId"]},features:[Mo([Ko])]})},ir=class n{inputEventsRouter=f(at);flowCoreProvider=f(Te);targetData=I.required();ngOnDestroy(){document.removeEventListener("pointerup",this.onPointerUp)}onPointerDown(e){if(!this.shouldHandle(e))return;e.selectHandled=!0;let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"select",phase:"start",target:this.targetData(),targetType:this.targetType,lastInputPoint:{x:e.clientX,y:e.clientY}})),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{document.removeEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"select",phase:"end",target:this.targetData(),targetType:this.targetType,lastInputPoint:{x:e.clientX,y:e.clientY}}))};shouldHandle(e){return!(!this.inputEventsRouter.eventGuards.withPrimaryButton(e)||e.boxSelectionHandled||e.selectHandled||e.linkingHandled&&!this.flowCoreProvider.provide().config.linking.selectNodeOnPortPress)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{targetData:[1,"targetData"]}})},Ou=class n extends ir{targetType="diagram";targetData=I();static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275dir=ye({type:n,inputs:{targetData:[1,"targetData"]},features:[mn]})},Au=class n extends ir{targetType="edge";targetData=I.required();static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275dir=ye({type:n,inputs:{targetData:[1,"targetData"]},features:[mn]})},Lu=class n extends ir{targetType="node";targetData=I.required();static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275dir=ye({type:n,inputs:{targetData:[1,"targetData"]},features:[mn]})},rE=(n,e)=>`[ngDiagram] Failed to parse palette drop data as JSON.
190
190
 
191
191
  Received data: "${n}"
192
192
  Error: ${e instanceof Error?e.message:String(e)}
@@ -202,7 +202,7 @@ To fix custom implementations:
202
202
  The palette drop event will continue with empty data object.
203
203
 
204
204
  Documentation: https://www.ngdiagram.dev/docs/guides/palette/
205
- `,WS=()=>`[ngDiagram] Invalid drop data: expected type "NgDiagramPaletteItem".
205
+ `,sE=()=>`[ngDiagram] Invalid drop data: expected type "NgDiagramPaletteItem".
206
206
 
207
207
  Received data: "UNKNOWN"
208
208
 
@@ -212,7 +212,7 @@ To fix this error:
212
212
  The palette drop event will continue with empty data object.
213
213
 
214
214
  Documentation: https://www.ngdiagram.dev/docs/guides/palette/
215
- `,Ru=class n{inputEventsRouterService=h(at);paletteService=h(ta);el=h(rt);touchMoveListener=e=>this.onGlobalTouchMove(e);touchEndListener=e=>this.onGlobalTouchEnd(e);ngOnInit(){document.addEventListener("touchmove",this.touchMoveListener,{passive:!1}),document.addEventListener("touchend",this.touchEndListener,{passive:!1})}ngOnDestroy(){document.removeEventListener("touchmove",this.touchMoveListener),document.removeEventListener("touchend",this.touchEndListener)}onDrop(e){e.preventDefault();let t=e.dataTransfer?.getData("text/plain"),o=this.inputEventsRouterService.getBaseEvent(e),i={};if(t)try{i=JSON.parse(t)}catch(r){return this.paletteService.draggedNode()?console.error(jS(t,r)):console.warn(WS())}this.inputEventsRouterService.emit(_(g({},o),{name:"paletteDrop",data:i,lastInputPoint:{x:e.clientX,y:e.clientY}})),this.paletteService.draggedNode.set(null),this.paletteService.previewId.set(null)}onDragOver(e){e.preventDefault()}onGlobalTouchMove(e){this.paletteService.draggedNode()&&e.preventDefault()}onGlobalTouchEnd(e){let t=this.paletteService.draggedNode();if(!t)return;let o=e.changedTouches[0];if(!o)return;let i=this.el.nativeElement,r=document.elementFromPoint(o.clientX,o.clientY);if(!r||!i.contains(r))return this.paletteService.draggedNode.set(null),void this.paletteService.previewId.set(null);let s=this.inputEventsRouterService.getBaseEvent(e);this.inputEventsRouterService.emit(_(g({},s),{name:"paletteDrop",data:t,lastInputPoint:{x:o.clientX,y:o.clientY}})),this.paletteService.draggedNode.set(null),this.paletteService.previewId.set(null),e.preventDefault(),e.stopPropagation()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramPaletteDrop",""]],hostBindings:function(t,o){t&1&&O("drop",function(r){return o.onDrop(r)})("dragover",function(r){return o.onDragOver(r)})}})},la=class n{linkingEventService=h(Ko);cursorPositionTrackerService=h(Yo);node;portId;startLinking(e,t){this.node=e,this.portId=t;let o=this.cursorPositionTrackerService.getLastPosition();this.linkingEventService.emitStart({clientX:o.x,clientY:o.y},e,t),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("click",this.onDocumentClick,!0),document.addEventListener("touchmove",this.onTouchMove,{passive:!1}),document.addEventListener("touchend",this.onTouchEnd,{passive:!1})}onPointerMove=e=>{e.pointerType!=="touch"&&this.linkingEventService.emitContinue(e)};onTouchMove=e=>{if(e.touches.length!==1)return;e.preventDefault();let t=e.touches[0];this.linkingEventService.emitContinue({clientX:t.clientX,clientY:t.clientY})};onTouchEnd=e=>{e.preventDefault();let t=e.changedTouches[0],o={clientX:t.clientX,clientY:t.clientY};this.cleanup(),this.linkingEventService.emitEnd(o,this.node,this.portId)};onDocumentClick=e=>{this.cleanup(),this.linkingEventService.emitEnd(e,this.node,this.portId)};cleanup(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("click",this.onDocumentClick,!0),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},Mt=class n extends Cn{manualLinkingService=h(la);batchResizeObserver=h($n);renderer=h(rn);isInitialized=this.renderer.isInitialized.asReadonly();config$=$({});config=this.config$.asReadonly();actionState$=$({});actionState=this.actionState$.asReadonly();constructor(){super(),fe(()=>{this.isInitialized()&&Ie(()=>{this.config$.set(this.flowCore.config)})}),fe(e=>{if(!this.isInitialized())return;let t=this.flowCore.eventManager.on("actionStateChanged",o=>{Ie(()=>{this.actionState$.set(o.actionState)})});e(()=>t())})}updateConfig(e){this.flowCore.updateConfig(e),this.config$.set(this.flowCore.config)}getEnvironment(){return this.flowCore.getEnvironment()}registerMiddleware(e){return this.flowCore.registerMiddleware(e)}unregisterMiddleware(e){this.flowCore.unregisterMiddleware(e)}registerRouting(e){this.flowCore.edgeRoutingManager.registerRouting(e)}unregisterRouting(e){this.flowCore.edgeRoutingManager.unregisterRouting(e)}getRegisteredRoutings(){return this.flowCore.edgeRoutingManager.getRegisteredRoutings()}setDefaultRouting(e){this.flowCore.edgeRoutingManager.setDefaultRouting(e)}getDefaultRouting(){return this.flowCore.edgeRoutingManager.getDefaultRouting()}startLinking(e,t){this.manualLinkingService.startLinking(e,t)}addEventListener(e,t){return this.flowCore.eventManager.on(e,t)}addEventListenerOnce(e,t){return this.flowCore.eventManager.once(e,t)}removeEventListener(e,t){this.flowCore.eventManager.off(e,t)}removeAllEventListeners(){this.flowCore.eventManager.offAll()}setEventsEnabled(e){this.flowCore.eventManager.setEnabled(e)}areEventsEnabled(){return this.flowCore.eventManager.isEnabled()}hasEventListeners(e){return this.flowCore.eventManager.hasListeners(e)}transaction(e,t){let o=!1,i=this.flowCore.transaction(()=>{let r=e();return r instanceof Promise&&(o=!0),r},t??{});if(t||o)return i}invalidateMeasurements(e){if(e){if(e.nodes)for(let{nodeId:t}of e.nodes)this.batchResizeObserver.invalidateNode(t);if(e.edges)for(let{edgeId:t}of e.edges)this.batchResizeObserver.invalidateEdgeLabels(t)}else this.batchResizeObserver.invalidateAll()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})};function ca(n,e){let t=GS(e);return!!(n.target&&n.target instanceof HTMLElement)&&n.target.closest(t)}function GS(n){return`[data-no-${n}="true"]`}var Nu=class n{inputEventsRouter=h(at);elementRef=h(rt);diagramService=h(Mt);flowCoreProvider=h(De);ngOnDestroy(){document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp)}onPointerDown(e){if(e.pointerType==="touch"||!this.inputEventsRouter.eventGuards.withPrimaryButton(e)||!this.shouldHandle(e))return;this.toggleGrabbingCursor(!0),e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"panning",phase:"start",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),document.addEventListener("pointermove",this.onMouseMove),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{this.inputEventsRouter.eventGuards.withPrimaryButton(e)&&(this.toggleGrabbingCursor(!1),e.preventDefault(),e.stopPropagation(),this.finishPanning(e))};onWheel(e){if(!this.shouldHandleWheel(e))return;e.preventDefault(),e.stopPropagation();let{deltaX:t,deltaY:o}=e;e.shiftKey&&t===0&&o!==0&&(t=o,o=0);let i=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},i),{name:"wheelPanning",deltaX:t,deltaY:o}))}onMouseMove=e=>{if(e.zoomingHandled)return void this.finishPanning(e);e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"panning",phase:"continue",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}}))};finishPanning(e){document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"panning",phase:"end",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}}))}shouldHandle(e){let{viewportPanningEnabled:t}=this.diagramService.config();return!(!t||ca(e,"pan")||e.moveSelectionHandled||e.zoomingHandled||e.linkingHandled||e.rotateHandled||e.boxSelectionHandled)}shouldHandleWheel(e){let{viewportPanningEnabled:t}=this.diagramService.config();return!(!t||e.zoomingHandled||ca(e,"pan")||!this.flowCoreProvider.provide().actionStateManager.isPanning()&&(this.inputEventsRouter.eventGuards.withPrimaryModifier(e)||e.ctrlKey))}toggleGrabbingCursor(e){this.elementRef.nativeElement.classList.toggle("panning",e)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramPanning",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})("wheel",function(r){return o.onWheel(r)})}})},Ou=class n{elementRef=h(rt);flowCoreProvider=h(De);inputEventsRouterService=h(at);touchEventsStateService=h(_n);touchCache=[];lastDistance;initialDistance;isZoomingActive=!1;ZOOM_TRIGGER_DELTA=40;onTouchStart(e){for(let t of e.changedTouches)this.touchCache.push(t);this.touchCache.length===2&&(this.lastDistance=this.computeDistance(),this.initialDistance=this.lastDistance,this.isZoomingActive=!1)}onTouchEnd(e){for(let t of e.changedTouches)this.removeTouchFromCache(t);this.touchCache.length<2&&(this.lastDistance=void 0,this.initialDistance=void 0,this.isZoomingActive=!1,this.touchCache=[],this.touchEventsStateService.clearCurrentEvent())}onTouchMove(e){for(let l of e.changedTouches)this.updateTouchInCache(l);if(this.touchCache.length!==2||this.lastDistance===void 0||this.initialDistance===void 0)return;let t=this.computeDistance(),o=Math.abs(t-this.initialDistance);if(!this.isZoomingActive){if(!(o>this.ZOOM_TRIGGER_DELTA))return;this.isZoomingActive=!0,this.touchEventsStateService.currentEvent.set(yt.Zooming)}let i=this.flowCoreProvider.provide(),r=(this.touchCache[0].clientX+this.touchCache[1].clientX)/2,s=(this.touchCache[0].clientY+this.touchCache[1].clientY)/2,a=Math.min(Math.max(1-i.config.zoom.step,t/this.lastDistance),1+i.config.zoom.step);this.lastDistance=t;let d=this.inputEventsRouterService.getBaseEvent(e);this.inputEventsRouterService.emit(_(g({},d),{name:"zoom",centerPoint:{x:r,y:s},zoomFactor:a}))}removeTouchFromCache(e){let t=this.touchCache.findIndex(o=>o.identifier===e.identifier);t!==-1&&this.touchCache.splice(t,1)}computeDistance(){return Math.hypot(this.touchCache[0].clientX-this.touchCache[1].clientX,this.touchCache[0].clientY-this.touchCache[1].clientY)}updateTouchInCache(e){let t=this.touchCache.findIndex(o=>o.identifier===e.identifier);t!==-1&&(this.touchCache[t]=e)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramZoomingPointer",""]],hostBindings:function(t,o){t&1&&O("touchstart",function(r){return o.onTouchStart(r)})("touchend",function(r){return o.onTouchEnd(r)})("touchmove",function(r){return o.onTouchMove(r)})("touchcancel",function(r){return o.onTouchEnd(r)})}})};var Au=class n{flowCoreProvider=h(De);inputEventsRouterService=h(at);onWheel(e){if(!this.shouldHandle(e))return;e.stopPropagation(),e.preventDefault(),e.zoomingHandled=!0;let t=this.flowCoreProvider.provide(),o=this.getZoomFactor(e,t.config.zoom.step),i=this.inputEventsRouterService.getBaseEvent(e);this.inputEventsRouterService.emit(_(g({},i),{name:"zoom",centerPoint:{x:e.clientX,y:e.clientY},zoomFactor:o}))}shouldHandle(e){if(e.zoomingHandled)return!1;let t=this.flowCoreProvider.provide();if(t.actionStateManager.isPanning())return!1;if(e.ctrlKey)return!0;let o=this.inputEventsRouterService.getBaseEvent(e).modifiers;return t.shortcutManager.matchesAction("zoom",{modifiers:o})}isPinchGesture(e){return e.ctrlKey&&Math.abs(e.deltaY)<50}getZoomFactor(e,t){return this.isPinchGesture(e)?Math.exp(.01*-e.deltaY):e.deltaY>0?1-t:1+t}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramZoomingWheel",""]],hostBindings:function(t,o){t&1&&O("wheel",function(r){return o.onWheel(r)})}})},Lu=class n{node=I.required();position=b(()=>this.node().position);get transform(){let e=this.position();return`translate(${e.x}px, ${e.y}px)`}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramNodePosition",""]],hostVars:4,hostBindings:function(t,o){t&2&&Ue("transform",o.transform)("transform-origin","0 0")},inputs:{node:[1,"node"]}})},ua=class n{node=I.required();selected=b(()=>this.node().selected??!1);static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramNodeSelected",""]],hostVars:4,hostBindings:function(t,o){t&2&&q("ng-diagram-node-selected",o.selected())("ng-diagram-node-wrapper",!0)},inputs:{node:[1,"node"]}})},Mm={width:"11.25rem",height:"2rem"},Vs={width:"9.0625rem",height:"9.0625rem"},Fu=class n{hostElement=h(rt);renderer=h(jd);batchResizeObserver=h($n);flowCoreProvider=h(De);node=I.required();size=b(()=>this.node().size);autoSize=b(()=>this.node().autoSize??!0);id=b(()=>this.node().id);sizeState=b(()=>({size:this.size(),autoSize:this.autoSize()}));constructor(){fe(()=>{let{size:e,autoSize:t}=this.sizeState();if(!t&&e){let{width:o,height:i}=this.size();this.setSize(o,i)}else this.setSize()})}ngOnInit(){this.connectResizeObserver()}ngOnDestroy(){this.disconnectResizeObserver()}setSize(e,t){let o=this.node();e!==void 0&&t!==void 0?this.applyExplicitSize(e,t,o):this.applyAutoSize(o)}applyExplicitSize(e,t,o){let i=this.hostElement.nativeElement,r=this.flowCoreProvider.provide().config.resize.getMinNodeSize(o),s=!o.type;if(this.renderer.setStyle(i,"width",`${e}px`),this.renderer.setStyle(i,"height",`${t}px`),r||s){let a=r?.width??gc.width,d=r?.height??gc.height;this.renderer.setStyle(i,"min-width",`${a}px`),this.renderer.setStyle(i,"min-height",`${d}px`)}}applyAutoSize(e){e.type?this.resetExplicitSizes():io(e)?this.applyDefaultGroupSize():this.applyDefaultNodeSize()}applyDefaultGroupSize(){let e=this.hostElement.nativeElement;this.renderer.setStyle(e,"width",Vs.width),this.renderer.setStyle(e,"height",Vs.height),this.renderer.setStyle(e,"min-width",Vs.width),this.renderer.setStyle(e,"min-height",Vs.height)}applyDefaultNodeSize(){let e=this.hostElement.nativeElement;this.renderer.setStyle(e,"width","unset"),this.renderer.setStyle(e,"height","unset"),this.renderer.setStyle(e,"min-width",Mm.width),this.renderer.setStyle(e,"min-height",Mm.height)}resetExplicitSizes(){let e=this.hostElement.nativeElement;this.renderer.setStyle(e,"width","unset"),this.renderer.setStyle(e,"height","unset"),this.renderer.setStyle(e,"min-width","unset"),this.renderer.setStyle(e,"min-height","unset")}connectResizeObserver(){this.batchResizeObserver.observe(this.hostElement.nativeElement,{type:"node",nodeId:this.id()})}disconnectResizeObserver(){this.batchResizeObserver.unobserve(this.hostElement.nativeElement)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramNodeSize",""]],inputs:{node:[1,"node"]}})},zu=class n{viewport=I({x:0,y:0,scale:1});get transform(){let e=this.viewport();return`translate(${e.x}px, ${e.y}px) scale(${e.scale})`}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramViewport",""]],hostVars:2,hostBindings:function(t,o){t&2&&Ue("transform",o.transform)},inputs:{viewport:[1,"viewport"]}})},pa=class n{data=I.required();zIndex=b(()=>this.data().computedZIndex??0);static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramZIndex",""]],hostVars:2,hostBindings:function(t,o){t&2&&Ue("z-index",o.zIndex())},inputs:{data:[1,"data"]}})},Bu=class n{inputEventsRouter=h(at);boxSelectionProvider=h(or);flowCoreProvider=h(De);elementRef=h(rt);startPoint=null;ngOnInit(){this.elementRef.nativeElement.addEventListener("pointerdown",this.onPointerDownCapture,{capture:!0})}ngOnDestroy(){this.elementRef.nativeElement.removeEventListener("pointerdown",this.onPointerDownCapture,{capture:!0}),document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp)}onPointerDownCapture=e=>{this.shouldHandle(e)&&(e.boxSelectionHandled=!0)};onPointerDown(e){if(!e.boxSelectionHandled)return;e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"boxSelection",phase:"start",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),this.startPoint={x:e.clientX,y:e.clientY},document.addEventListener("pointermove",this.onMouseMove),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{if(!this.inputEventsRouter.eventGuards.withPrimaryButton(e))return;e.preventDefault(),e.stopPropagation(),document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"boxSelection",phase:"end",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),this.startPoint=null,this.boxSelectionProvider.boundingBox.set(null)};onMouseMove=e=>{e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);if(this.inputEventsRouter.emit(_(g({},t),{name:"boxSelection",phase:"continue",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),this.startPoint){let o=this.flowCoreProvider.provide(),{x:i,y:r}=o.clientToFlowViewportPosition(this.startPoint),{x:s,y:a}=o.clientToFlowViewportPosition({x:e.clientX,y:e.clientY}),d=Math.min(i,s),l=Math.min(r,a),c=Math.abs(s-i),u=Math.abs(a-r);this.boxSelectionProvider.boundingBox.set({x:d,y:l,width:c,height:u})}};shouldHandle(e){let t=this.flowCoreProvider.provide(),o=this.inputEventsRouter.getBaseEvent(e).modifiers;return t.shortcutManager.matchesAction("boxSelection",{modifiers:o})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramBoxSelection",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})}})},$u=class n{inputEventsRouter=h(at);diagramService=h(Mt);touchEventsStateService=h(_n);isPanning=!1;lastTouch=null;onTouchStart(e){if(!this.isTwoFingerTouch(e)||!this.shouldHandle(e)||this.touchEventsStateService.zoomingHandled())return void(this.isPanning=!1);this.isPanning=!0,this.touchEventsStateService.currentEvent.set(yt.Panning);let t=this.getMidpoint(e.touches);this.lastTouch=t,this.emitPanningEvent("start",e,t),this.preventDefaultAndStop(e)}onTouchMove(e){if(this.touchEventsStateService.zoomingHandled()&&this.isPanning)return this.isPanning=!1,this.lastTouch=null,void this.touchEventsStateService.clearCurrentEvent();if(!this.shouldContinuePanning(e))return;let t=this.getMidpoint(e.touches);this.lastTouch=t,this.emitPanningEvent("continue",e,t),this.preventDefaultAndStop(e)}onTouchEnd(e){if(!this.isPanning)return;this.isPanning=!1;let t=this.lastTouch||this.getMidpoint(e.touches);this.emitPanningEvent("end",e,t),this.lastTouch=null,this.touchEventsStateService.clearCurrentEvent(),this.preventDefaultAndStop(e)}getMidpoint(e){return e.length<2?{x:0,y:0}:{x:(e[0].clientX+e[1].clientX)/2,y:(e[0].clientY+e[1].clientY)/2}}shouldHandle(e){let{viewportPanningEnabled:t}=this.diagramService.config();return!(!t||ca(e,"pan")||this.touchEventsStateService.zoomingHandled())}isTwoFingerTouch(e){return e.touches.length===2}shouldContinuePanning(e){return this.isPanning&&this.isTwoFingerTouch(e)&&!this.touchEventsStateService.zoomingHandled()}emitPanningEvent(e,t,o){let i=this.inputEventsRouter.getBaseEvent(t);this.inputEventsRouter.emit(_(g({},i),{name:"panning",phase:e,target:void 0,targetType:"diagram",lastInputPoint:o}))}preventDefaultAndStop(e){e.preventDefault(),e.stopPropagation()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramPanning",""]],hostBindings:function(t,o){t&1&&O("touchstart",function(r){return o.onTouchStart(r)})("touchmove",function(r){return o.onTouchMove(r)})("touchend",function(r){return o.onTouchEnd(r)})("touchcancel",function(r){return o.onTouchEnd(r)})}})},Hu=class n{service=h(De,{optional:!0,skipSelf:!0});constructor(){if(!this.service)throw new Error(`NgDiagram services are not available. Please register all required services using \`provideNgDiagram()\` in your component's providers array.
215
+ `,Fu=class n{inputEventsRouterService=f(at);paletteService=f(ia);el=f(rt);touchMoveListener=e=>this.onGlobalTouchMove(e);touchEndListener=e=>this.onGlobalTouchEnd(e);ngOnInit(){document.addEventListener("touchmove",this.touchMoveListener,{passive:!1}),document.addEventListener("touchend",this.touchEndListener,{passive:!1})}ngOnDestroy(){document.removeEventListener("touchmove",this.touchMoveListener),document.removeEventListener("touchend",this.touchEndListener)}onDrop(e){e.preventDefault();let t=e.dataTransfer?.getData("text/plain"),o=this.inputEventsRouterService.getBaseEvent(e),i={};if(t)try{i=JSON.parse(t)}catch(r){return this.paletteService.draggedNode()?console.error(rE(t,r)):console.warn(sE())}this.inputEventsRouterService.emit(_(h({},o),{name:"paletteDrop",data:i,lastInputPoint:{x:e.clientX,y:e.clientY}})),this.paletteService.draggedNode.set(null),this.paletteService.previewId.set(null)}onDragOver(e){e.preventDefault()}onGlobalTouchMove(e){this.paletteService.draggedNode()&&e.preventDefault()}onGlobalTouchEnd(e){let t=this.paletteService.draggedNode();if(!t)return;let o=e.changedTouches[0];if(!o)return;let i=this.el.nativeElement,r=document.elementFromPoint(o.clientX,o.clientY);if(!r||!i.contains(r))return this.paletteService.draggedNode.set(null),void this.paletteService.previewId.set(null);let s=this.inputEventsRouterService.getBaseEvent(e);this.inputEventsRouterService.emit(_(h({},s),{name:"paletteDrop",data:t,lastInputPoint:{x:o.clientX,y:o.clientY}})),this.paletteService.draggedNode.set(null),this.paletteService.previewId.set(null),e.preventDefault(),e.stopPropagation()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramPaletteDrop",""]],hostBindings:function(t,o){t&1&&O("drop",function(r){return o.onDrop(r)})("dragover",function(r){return o.onDragOver(r)})}})},pa=class n{linkingEventService=f(Ko);cursorPositionTrackerService=f(Yo);node;portId;startLinking(e,t){this.node=e,this.portId=t;let o=this.cursorPositionTrackerService.getLastPosition();this.linkingEventService.emitStart({clientX:o.x,clientY:o.y},e,t),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("click",this.onDocumentClick,!0),document.addEventListener("touchmove",this.onTouchMove,{passive:!1}),document.addEventListener("touchend",this.onTouchEnd,{passive:!1})}onPointerMove=e=>{e.pointerType!=="touch"&&this.linkingEventService.emitContinue(e)};onTouchMove=e=>{if(e.touches.length!==1)return;e.preventDefault();let t=e.touches[0];this.linkingEventService.emitContinue({clientX:t.clientX,clientY:t.clientY})};onTouchEnd=e=>{e.preventDefault();let t=e.changedTouches[0],o={clientX:t.clientX,clientY:t.clientY};this.cleanup(),this.linkingEventService.emitEnd(o,this.node,this.portId)};onDocumentClick=e=>{this.cleanup(),this.linkingEventService.emitEnd(e,this.node,this.portId)};cleanup(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("click",this.onDocumentClick,!0),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Tt=class n extends _n{manualLinkingService=f(pa);batchResizeObserver=f(Un);renderer=f(an);isInitialized=this.renderer.isInitialized.asReadonly();config$=H({});config=this.config$.asReadonly();actionState$=H({});actionState=this.actionState$.asReadonly();constructor(){super(),me(()=>{this.isInitialized()&&xe(()=>{this.config$.set(this.flowCore.config)})}),me(e=>{if(!this.isInitialized())return;let t=this.flowCore.eventManager.on("actionStateChanged",o=>{xe(()=>{this.actionState$.set(o.actionState)})});e(()=>t())})}updateConfig(e){this.flowCore.updateConfig(e),this.config$.set(this.flowCore.config)}getEnvironment(){return this.flowCore.getEnvironment()}registerMiddleware(e){return this.flowCore.registerMiddleware(e)}unregisterMiddleware(e){this.flowCore.unregisterMiddleware(e)}registerRouting(e){this.flowCore.edgeRoutingManager.registerRouting(e)}unregisterRouting(e){this.flowCore.edgeRoutingManager.unregisterRouting(e)}getRegisteredRoutings(){return this.flowCore.edgeRoutingManager.getRegisteredRoutings()}setDefaultRouting(e){this.flowCore.edgeRoutingManager.setDefaultRouting(e)}getDefaultRouting(){return this.flowCore.edgeRoutingManager.getDefaultRouting()}startLinking(e,t){this.manualLinkingService.startLinking(e,t)}addEventListener(e,t){return this.flowCore.eventManager.on(e,t)}addEventListenerOnce(e,t){return this.flowCore.eventManager.once(e,t)}removeEventListener(e,t){this.flowCore.eventManager.off(e,t)}removeAllEventListeners(){this.flowCore.eventManager.offAll()}setEventsEnabled(e){this.flowCore.eventManager.setEnabled(e)}areEventsEnabled(){return this.flowCore.eventManager.isEnabled()}hasEventListeners(e){return this.flowCore.eventManager.hasListeners(e)}transaction(e,t){let o=!1,i=this.flowCore.transaction(()=>{let r=e();return r instanceof Promise&&(o=!0),r},t??{});if(t||o)return i}invalidateMeasurements(e){if(e){if(e.nodes)for(let{nodeId:t}of e.nodes)this.batchResizeObserver.invalidateNode(t);if(e.edges)for(let{edgeId:t}of e.edges)this.batchResizeObserver.invalidateEdgeLabels(t)}else this.batchResizeObserver.invalidateAll()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})};function ha(n,e){let t=aE(e);return!!(n.target&&n.target instanceof HTMLElement)&&n.target.closest(t)}function aE(n){return`[data-no-${n}="true"]`}var zu=class n{inputEventsRouter=f(at);elementRef=f(rt);diagramService=f(Tt);flowCoreProvider=f(Te);ngOnDestroy(){document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp)}onPointerDown(e){if(e.pointerType==="touch"||!this.inputEventsRouter.eventGuards.withPrimaryButton(e)||!this.shouldHandle(e))return;this.toggleGrabbingCursor(!0),e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"panning",phase:"start",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),document.addEventListener("pointermove",this.onMouseMove),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{this.inputEventsRouter.eventGuards.withPrimaryButton(e)&&(this.toggleGrabbingCursor(!1),e.preventDefault(),e.stopPropagation(),this.finishPanning(e))};onWheel(e){if(!this.shouldHandleWheel(e))return;e.preventDefault(),e.stopPropagation();let{deltaX:t,deltaY:o}=e;e.shiftKey&&t===0&&o!==0&&(t=o,o=0);let i=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},i),{name:"wheelPanning",deltaX:t,deltaY:o}))}onMouseMove=e=>{if(e.zoomingHandled)return void this.finishPanning(e);e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"panning",phase:"continue",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}}))};finishPanning(e){document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"panning",phase:"end",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}}))}shouldHandle(e){let{viewportPanningEnabled:t}=this.diagramService.config();return!(!t||ha(e,"pan")||e.moveSelectionHandled||e.zoomingHandled||e.linkingHandled||e.rotateHandled||e.boxSelectionHandled)}shouldHandleWheel(e){let{viewportPanningEnabled:t}=this.diagramService.config();return!(!t||e.zoomingHandled||ha(e,"pan")||!this.flowCoreProvider.provide().actionStateManager.isPanning()&&(this.inputEventsRouter.eventGuards.withPrimaryModifier(e)||e.ctrlKey))}toggleGrabbingCursor(e){this.elementRef.nativeElement.classList.toggle("panning",e)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramPanning",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})("wheel",function(r){return o.onWheel(r)})}})},Bu=class n{elementRef=f(rt);flowCoreProvider=f(Te);inputEventsRouterService=f(at);touchEventsStateService=f(xn);touchCache=[];lastDistance;initialDistance;isZoomingActive=!1;ZOOM_TRIGGER_DELTA=40;onTouchStart(e){for(let t of e.changedTouches)this.touchCache.push(t);this.touchCache.length===2&&(this.lastDistance=this.computeDistance(),this.initialDistance=this.lastDistance,this.isZoomingActive=!1)}onTouchEnd(e){for(let t of e.changedTouches)this.removeTouchFromCache(t);this.touchCache.length<2&&(this.lastDistance=void 0,this.initialDistance=void 0,this.isZoomingActive=!1,this.touchCache=[],this.touchEventsStateService.clearCurrentEvent())}onTouchMove(e){for(let l of e.changedTouches)this.updateTouchInCache(l);if(this.touchCache.length!==2||this.lastDistance===void 0||this.initialDistance===void 0)return;let t=this.computeDistance(),o=Math.abs(t-this.initialDistance);if(!this.isZoomingActive){if(!(o>this.ZOOM_TRIGGER_DELTA))return;this.isZoomingActive=!0,this.touchEventsStateService.currentEvent.set(yt.Zooming)}let i=this.flowCoreProvider.provide(),r=(this.touchCache[0].clientX+this.touchCache[1].clientX)/2,s=(this.touchCache[0].clientY+this.touchCache[1].clientY)/2,a=Math.min(Math.max(1-i.config.zoom.step,t/this.lastDistance),1+i.config.zoom.step);this.lastDistance=t;let d=this.inputEventsRouterService.getBaseEvent(e);this.inputEventsRouterService.emit(_(h({},d),{name:"zoom",centerPoint:{x:r,y:s},zoomFactor:a}))}removeTouchFromCache(e){let t=this.touchCache.findIndex(o=>o.identifier===e.identifier);t!==-1&&this.touchCache.splice(t,1)}computeDistance(){return Math.hypot(this.touchCache[0].clientX-this.touchCache[1].clientX,this.touchCache[0].clientY-this.touchCache[1].clientY)}updateTouchInCache(e){let t=this.touchCache.findIndex(o=>o.identifier===e.identifier);t!==-1&&(this.touchCache[t]=e)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramZoomingPointer",""]],hostBindings:function(t,o){t&1&&O("touchstart",function(r){return o.onTouchStart(r)})("touchend",function(r){return o.onTouchEnd(r)})("touchmove",function(r){return o.onTouchMove(r)})("touchcancel",function(r){return o.onTouchEnd(r)})}})};var $u=class n{flowCoreProvider=f(Te);inputEventsRouterService=f(at);onWheel(e){if(!this.shouldHandle(e))return;e.stopPropagation(),e.preventDefault(),e.zoomingHandled=!0;let t=this.flowCoreProvider.provide(),o=this.getZoomFactor(e,t.config.zoom.step),i=this.inputEventsRouterService.getBaseEvent(e);this.inputEventsRouterService.emit(_(h({},i),{name:"zoom",centerPoint:{x:e.clientX,y:e.clientY},zoomFactor:o}))}shouldHandle(e){if(e.zoomingHandled)return!1;let t=this.flowCoreProvider.provide();if(t.actionStateManager.isPanning())return!1;if(e.ctrlKey)return!0;let o=this.inputEventsRouterService.getBaseEvent(e).modifiers;return t.shortcutManager.matchesAction("zoom",{modifiers:o})}isPinchGesture(e){return e.ctrlKey&&Math.abs(e.deltaY)<50}getZoomFactor(e,t){return this.isPinchGesture(e)?Math.exp(.01*-e.deltaY):e.deltaY>0?1-t:1+t}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramZoomingWheel",""]],hostBindings:function(t,o){t&1&&O("wheel",function(r){return o.onWheel(r)})}})},Hu=class n{node=I.required();position=b(()=>this.node().position);get transform(){let e=this.position();return`translate(${e.x}px, ${e.y}px)`}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramNodePosition",""]],hostVars:4,hostBindings:function(t,o){t&2&&Ue("transform",o.transform)("transform-origin","0 0")},inputs:{node:[1,"node"]}})},ga=class n{node=I.required();selected=b(()=>this.node().selected??!1);static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramNodeSelected",""]],hostVars:4,hostBindings:function(t,o){t&2&&Y("ng-diagram-node-selected",o.selected())("ng-diagram-node-wrapper",!0)},inputs:{node:[1,"node"]}})},Lm={width:"11.25rem",height:"2rem"},Gs={width:"9.0625rem",height:"9.0625rem"},Uu=class n{hostElement=f(rt);renderer=f(Kd);batchResizeObserver=f(Un);flowCoreProvider=f(Te);node=I.required();size=b(()=>this.node().size);autoSize=b(()=>this.node().autoSize??!0);id=b(()=>this.node().id);sizeState=b(()=>({size:this.size(),autoSize:this.autoSize()}));constructor(){me(()=>{let{size:e,autoSize:t}=this.sizeState();if(!t&&e){let{width:o,height:i}=this.size();this.setSize(o,i)}else this.setSize()})}ngOnInit(){this.connectResizeObserver()}ngOnDestroy(){this.disconnectResizeObserver()}setSize(e,t){let o=this.node();e!==void 0&&t!==void 0?this.applyExplicitSize(e,t,o):this.applyAutoSize(o)}applyExplicitSize(e,t,o){let i=this.hostElement.nativeElement,r=this.flowCoreProvider.provide().config.resize.getMinNodeSize(o),s=!o.type;if(this.renderer.setStyle(i,"width",`${e}px`),this.renderer.setStyle(i,"height",`${t}px`),r||s){let a=r?.width??bc.width,d=r?.height??bc.height;this.renderer.setStyle(i,"min-width",`${a}px`),this.renderer.setStyle(i,"min-height",`${d}px`)}}applyAutoSize(e){e.type?this.resetExplicitSizes():so(e)?this.applyDefaultGroupSize():this.applyDefaultNodeSize()}applyDefaultGroupSize(){let e=this.hostElement.nativeElement;this.renderer.setStyle(e,"width",Gs.width),this.renderer.setStyle(e,"height",Gs.height),this.renderer.setStyle(e,"min-width",Gs.width),this.renderer.setStyle(e,"min-height",Gs.height)}applyDefaultNodeSize(){let e=this.hostElement.nativeElement;this.renderer.setStyle(e,"width","unset"),this.renderer.setStyle(e,"height","unset"),this.renderer.setStyle(e,"min-width",Lm.width),this.renderer.setStyle(e,"min-height",Lm.height)}resetExplicitSizes(){let e=this.hostElement.nativeElement;this.renderer.setStyle(e,"width","unset"),this.renderer.setStyle(e,"height","unset"),this.renderer.setStyle(e,"min-width","unset"),this.renderer.setStyle(e,"min-height","unset")}connectResizeObserver(){this.batchResizeObserver.observe(this.hostElement.nativeElement,{type:"node",nodeId:this.id()})}disconnectResizeObserver(){this.batchResizeObserver.unobserve(this.hostElement.nativeElement)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramNodeSize",""]],inputs:{node:[1,"node"]}})},ju=class n{viewport=I({x:0,y:0,scale:1});get transform(){let e=this.viewport();return`translate(${e.x}px, ${e.y}px) scale(${e.scale})`}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramViewport",""]],hostVars:2,hostBindings:function(t,o){t&2&&Ue("transform",o.transform)},inputs:{viewport:[1,"viewport"]}})},fa=class n{data=I.required();zIndex=b(()=>this.data().computedZIndex??0);static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramZIndex",""]],hostVars:2,hostBindings:function(t,o){t&2&&Ue("z-index",o.zIndex())},inputs:{data:[1,"data"]}})},Vu=class n{inputEventsRouter=f(at);boxSelectionProvider=f(tr);flowCoreProvider=f(Te);elementRef=f(rt);startPoint=null;ngOnInit(){this.elementRef.nativeElement.addEventListener("pointerdown",this.onPointerDownCapture,{capture:!0})}ngOnDestroy(){this.elementRef.nativeElement.removeEventListener("pointerdown",this.onPointerDownCapture,{capture:!0}),document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp)}onPointerDownCapture=e=>{this.shouldHandle(e)&&(e.boxSelectionHandled=!0)};onPointerDown(e){if(!e.boxSelectionHandled)return;e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"boxSelection",phase:"start",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),this.startPoint={x:e.clientX,y:e.clientY},document.addEventListener("pointermove",this.onMouseMove),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{if(!this.inputEventsRouter.eventGuards.withPrimaryButton(e))return;e.preventDefault(),e.stopPropagation(),document.removeEventListener("pointermove",this.onMouseMove),document.removeEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"boxSelection",phase:"end",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),this.startPoint=null,this.boxSelectionProvider.boundingBox.set(null)};onMouseMove=e=>{e.preventDefault(),e.stopPropagation();let t=this.inputEventsRouter.getBaseEvent(e);if(this.inputEventsRouter.emit(_(h({},t),{name:"boxSelection",phase:"continue",target:void 0,targetType:"diagram",lastInputPoint:{x:e.clientX,y:e.clientY}})),this.startPoint){let o=this.flowCoreProvider.provide(),{x:i,y:r}=o.clientToFlowViewportPosition(this.startPoint),{x:s,y:a}=o.clientToFlowViewportPosition({x:e.clientX,y:e.clientY}),d=Math.min(i,s),l=Math.min(r,a),c=Math.abs(s-i),u=Math.abs(a-r);this.boxSelectionProvider.boundingBox.set({x:d,y:l,width:c,height:u})}};shouldHandle(e){let t=this.flowCoreProvider.provide(),o=this.inputEventsRouter.getBaseEvent(e).modifiers;return t.shortcutManager.matchesAction("boxSelection",{modifiers:o})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramBoxSelection",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})}})},Wu=class n{inputEventsRouter=f(at);diagramService=f(Tt);touchEventsStateService=f(xn);isPanning=!1;lastTouch=null;onTouchStart(e){if(!this.isTwoFingerTouch(e)||!this.shouldHandle(e)||this.touchEventsStateService.zoomingHandled())return void(this.isPanning=!1);this.isPanning=!0,this.touchEventsStateService.currentEvent.set(yt.Panning);let t=this.getMidpoint(e.touches);this.lastTouch=t,this.emitPanningEvent("start",e,t),this.preventDefaultAndStop(e)}onTouchMove(e){if(this.touchEventsStateService.zoomingHandled()&&this.isPanning)return this.isPanning=!1,this.lastTouch=null,void this.touchEventsStateService.clearCurrentEvent();if(!this.shouldContinuePanning(e))return;let t=this.getMidpoint(e.touches);this.lastTouch=t,this.emitPanningEvent("continue",e,t),this.preventDefaultAndStop(e)}onTouchEnd(e){if(!this.isPanning)return;this.isPanning=!1;let t=this.lastTouch||this.getMidpoint(e.touches);this.emitPanningEvent("end",e,t),this.lastTouch=null,this.touchEventsStateService.clearCurrentEvent(),this.preventDefaultAndStop(e)}getMidpoint(e){return e.length<2?{x:0,y:0}:{x:(e[0].clientX+e[1].clientX)/2,y:(e[0].clientY+e[1].clientY)/2}}shouldHandle(e){let{viewportPanningEnabled:t}=this.diagramService.config();return!(!t||ha(e,"pan")||this.touchEventsStateService.zoomingHandled())}isTwoFingerTouch(e){return e.touches.length===2}shouldContinuePanning(e){return this.isPanning&&this.isTwoFingerTouch(e)&&!this.touchEventsStateService.zoomingHandled()}emitPanningEvent(e,t,o){let i=this.inputEventsRouter.getBaseEvent(t);this.inputEventsRouter.emit(_(h({},i),{name:"panning",phase:e,target:void 0,targetType:"diagram",lastInputPoint:o}))}preventDefaultAndStop(e){e.preventDefault(),e.stopPropagation()}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramPanning",""]],hostBindings:function(t,o){t&1&&O("touchstart",function(r){return o.onTouchStart(r)})("touchmove",function(r){return o.onTouchMove(r)})("touchend",function(r){return o.onTouchEnd(r)})("touchcancel",function(r){return o.onTouchEnd(r)})}})},Gu=class n{service=f(Te,{optional:!0,skipSelf:!0});constructor(){if(!this.service)throw new Error(`NgDiagram services are not available. Please register all required services using \`provideNgDiagram()\` in your component's providers array.
216
216
 
217
217
  Example usage:
218
218
 
@@ -223,29 +223,29 @@ import { provideNgDiagram } from 'ng-diagram';
223
223
  providers: [provideNgDiagram()], // Add this to register all ng-diagram services
224
224
  template: \`<ng-diagram ...></ng-diagram>\`
225
225
  })
226
- export class AppComponent {...}`)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramServicesAvailabilityChecker",""]]})},qS=n=>`[ngDiagram] Node template '${n}' is not registered. Falling back to default node template.
226
+ export class AppComponent {...}`)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramServicesAvailabilityChecker",""]]})},dE=n=>`[ngDiagram] Node template '${n}' is not registered. Falling back to default node template.
227
227
 
228
228
  Documentation: https://www.ngdiagram.dev/docs/guides/nodes/custom-nodes/
229
- `,YS=n=>`[ngDiagram] Edge template '${n}' is not registered. Falling back to default edge template.
229
+ `,lE=n=>`[ngDiagram] Edge template '${n}' is not registered. Falling back to default edge template.
230
230
 
231
231
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/custom-edges/
232
- `,ha=class n{flowConfig=h(De);nodeTemplateMap=new Qo;edgeTemplateMap=new Xo;accessedNodeTypes=new Set;accessedEdgeTypes=new Set;setNodeTemplateMap(e){this.accessedNodeTypes.clear(),this.nodeTemplateMap=e}setEdgeTemplateMap(e){this.accessedEdgeTypes.clear(),this.edgeTemplateMap=e}getNodeTemplate(e){if(e===void 0)return null;let t=this.nodeTemplateMap.get(e||"");return t||this.accessedNodeTypes.has(e)||(console.warn(qS(e)),this.accessedNodeTypes.add(e)),t??null}getEdgeTemplate(e){if(e===void 0)return null;let t=this.edgeTemplateMap.get(e||"");return t||this.accessedEdgeTypes.has(e)||(console.warn(YS(e)),this.accessedEdgeTypes.add(e)),t??null}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},ZS=[iS,yS,tS];var Uu=class n{boxSelectionProvider=h(or);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-box-selection"]],decls:2,vars:2,consts:[[3,"left","top","width","height"]],template:function(t,o){if(t&1&&(Zd(0),E(1,bC,1,8,"div",0)),t&2){let i=Kd(o.boxSelectionProvider.boundingBox());p(),P(i?1:-1)}},styles:["div[_ngcontent-%COMP%]{position:absolute;pointer-events:none;background-color:var(--ngd-box-selection-background);border:var(--ngd-box-selection-border-size) solid var(--ngd-box-selection-border-color)}"]})},Vu=class n{renderer=h(rn);isVisible=this.renderer.isInitialized;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-canvas"]],hostVars:2,hostBindings:function(t,o){t&2&&Ue("visibility",o.isVisible()?null:"hidden")},features:[gn([{directive:zu,inputs:["viewport","viewport"]}])],ngContentSelectors:CC,decls:5,vars:0,consts:[[1,"edges-container"],[1,"nodes-container"]],template:function(t,o){t&1&&(Ye(wC),U(0,"div",0),je(1),je(2,1),B(),U(3,"div",1),je(4,2),B())},styles:["[_nghost-%COMP%]{position:absolute;width:100%;height:100%;display:flex;overflow:visible;transform-origin:0 0}.nodes-container[_ngcontent-%COMP%], .edges-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}"]})},KS=(n,e,t,o,i)=>`[ngDiagram] Invalid edge coordinates detected for edge '${n}'.
232
+ `,ma=class n{flowConfig=f(Te);nodeTemplateMap=new Qo;edgeTemplateMap=new Xo;accessedNodeTypes=new Set;accessedEdgeTypes=new Set;setNodeTemplateMap(e){this.accessedNodeTypes.clear(),this.nodeTemplateMap=e}setEdgeTemplateMap(e){this.accessedEdgeTypes.clear(),this.edgeTemplateMap=e}getNodeTemplate(e){if(e===void 0)return null;let t=this.nodeTemplateMap.get(e||"");return t||this.accessedNodeTypes.has(e)||(console.warn(dE(e)),this.accessedNodeTypes.add(e)),t??null}getEdgeTemplate(e){if(e===void 0)return null;let t=this.edgeTemplateMap.get(e||"");return t||this.accessedEdgeTypes.has(e)||(console.warn(lE(e)),this.accessedEdgeTypes.add(e)),t??null}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},cE=[bS,RS,mS];var qu=class n{boxSelectionProvider=f(tr);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-box-selection"]],decls:2,vars:2,consts:[[3,"left","top","width","height"]],template:function(t,o){if(t&1&&(tl(0),E(1,OC,1,8,"div",0)),t&2){let i=nl(o.boxSelectionProvider.boundingBox());p(),P(i?1:-1)}},styles:["div[_ngcontent-%COMP%]{position:absolute;pointer-events:none;background-color:var(--ngd-box-selection-background);border:var(--ngd-box-selection-border-size) solid var(--ngd-box-selection-border-color)}"]})},Yu=class n{renderer=f(an);isVisible=this.renderer.isInitialized;static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-canvas"]],hostVars:2,hostBindings:function(t,o){t&2&&Ue("visibility",o.isVisible()?null:"hidden")},features:[fn([{directive:ju,inputs:["viewport","viewport"]}])],ngContentSelectors:LC,decls:5,vars:0,consts:[[1,"edges-container"],[1,"nodes-container"]],template:function(t,o){t&1&&(Ye(AC),B(0,"div",0),We(1),We(2,1),A(),B(3,"div",1),We(4,2),A())},styles:["[_nghost-%COMP%]{position:absolute;width:100%;height:100%;display:flex;overflow:visible;transform-origin:0 0}.nodes-container[_ngcontent-%COMP%], .edges-container[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}"]})},uE=(n,e,t,o,i)=>`[ngDiagram] Invalid edge coordinates detected for edge '${n}'.
233
233
 
234
234
  Edge details:
235
235
  \u2022 source: ${e} (port: ${t||"not specified"})
236
236
  \u2022 target: ${o} (port: ${i||"not specified"})
237
237
 
238
238
  Documentation: https://www.ngdiagram.dev/docs/guides/edges/edges/
239
- `,ro=class n{flowCoreProvider=h(De);markerRegistry=h(Zo);useInlineMarkers=this.markerRegistry.useInlineMarkers;edge=I.required();routing=I();stroke=I();sourceArrowhead=I();targetArrowhead=I();strokeOpacity=I();strokeWidth=I();strokeDasharray=I();points=b(()=>this.edge().points??[]);path=b(()=>{let e=this.edge(),t=this.routing()??e.routing,o=this.flowCoreProvider.provide(),i=this.points();if(i.length===0)return"";if(i.some(s=>!Ot(s)))return console.error(KS(e.id,e.source,e.sourcePort,e.target,e.targetPort)),"";if(t&&o.edgeRoutingManager.hasRouting(t))return o.edgeRoutingManager.computePath(t,i);let r=o.edgeRoutingManager.getDefaultRouting();return o.edgeRoutingManager.hasRouting(r)?o.edgeRoutingManager.computePath(r,i):`M ${i[0].x},${i[0].y}`});sourceMarkerId=b(()=>this.edge()?.sourceArrowhead??this.sourceArrowhead());targetMarkerId=b(()=>this.edge()?.targetArrowhead??this.targetArrowhead());markerStart=b(()=>{let e=this.sourceMarkerId();return e?this.markerRegistry.getMarkerUrl(e,this.edge().id,"source"):null});markerEnd=b(()=>{let e=this.targetMarkerId();return e?this.markerRegistry.getMarkerUrl(e,this.edge().id,"target"):null});selected=b(()=>this.edge().selected);temporary=b(()=>this.edge().temporary);labels=b(()=>this.edge().measuredLabels??[]);class=b(()=>{let e=["ng-diagram-edge__path"];return this.selected()&&e.push("selected"),this.temporary()&&e.push("temporary"),e.join(" ")});prevRouting;prevRoutingMode;prevPoints;constructor(){fe(()=>this.syncEdgePropertiesToModel())}syncEdgePropertiesToModel(){let e=this.edge(),t={};(this.checkRoutingChanges(e,t)||this.checkRoutingModeChanges(e,t)||this.checkPointsChanges(e,t))&&this.flowCoreProvider.provide().commandHandler.emit("updateEdge",{id:e.id,edgeChanges:t})}checkRoutingChanges(e,t){let o=this.routing()??e.routing;return!(!o||this.prevRouting===o||(t.routing=o,this.prevRouting=o,0))}checkRoutingModeChanges(e,t){return!(!e.routingMode||this.prevRoutingMode===e.routingMode||(t.routingMode=e.routingMode,this.prevRoutingMode=e.routingMode,0))}checkPointsChanges(e,t){return!(!(e.routingMode==="manual"&&e.points&&e.points.length>0)||this.prevPoints&&D_(this.prevPoints,e.points)||(t.points=e.points,this.prevPoints=e.points,0))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-base-edge"]],hostVars:4,hostBindings:function(t,o){t&2&&q("selected",o.selected())("temporary",o.temporary())},inputs:{edge:[1,"edge"],routing:[1,"routing"],stroke:[1,"stroke"],sourceArrowhead:[1,"sourceArrowhead"],targetArrowhead:[1,"targetArrowhead"],strokeOpacity:[1,"strokeOpacity"],strokeWidth:[1,"strokeWidth"],strokeDasharray:[1,"strokeDasharray"]},features:[gn([{directive:pa,inputs:["data","edge"]},{directive:Tu,inputs:["targetData","edge"]}])],ngContentSelectors:Tt,decls:5,vars:14,consts:[["ngDiagramInlineMarkers","",3,"sourceMarkerId","targetMarkerId","edgeId"],["fill","none","stroke","none","stroke-width","20","stroke-opacity","0"]],template:function(t,o){t&1&&(Ye(),ge(),v(0,"svg"),E(1,_C,1,3,":svg:defs",0),z(2,"path")(3,"path",1),y(),je(4)),t&2&&(Ue("color",o.stroke()||"var(--edge-stroke, var(--ngd-default-edge-stroke))"),p(),P(o.useInlineMarkers?1:-1),p(),ft(o.class()),K("d",o.path())("stroke",o.stroke()||"var(--edge-stroke, var(--ngd-default-edge-stroke))")("fill","none")("stroke-width",o.strokeWidth()||"var(--edge-stroke-width, 2)")("stroke-dasharray",o.strokeDasharray()||"var(--edge-stroke-dasharray, none)")("marker-start",o.markerStart())("marker-end",o.markerEnd())("stroke-opacity",o.strokeOpacity()||"var(--edge-stroke-opacity, 1)"),p(),K("d",o.path()))},dependencies:[Iu],styles:["[_nghost-%COMP%]{position:relative}svg[_ngcontent-%COMP%]{overflow:visible;position:absolute;cursor:pointer}svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{pointer-events:visibleStroke;cursor:pointer;transition:var(--edge-stroke-transition, none)}"]})},ju=class n{flowCoreProvider=h(De);hostElement=h(rt);edgeComponent=h(ro);batchResizeObserver=h($n);id=I.required();positionOnEdge=I.required();edgeData=b(()=>this.edgeComponent.edge());points=b(()=>this.edgeData()?.points);edgeId=b(()=>this.edgeData()?.id);ownerInternalId;position=b(()=>this.edgeData()?.measuredLabels?.find(o=>o.id===this.id())?.position||{x:0,y:0});isVisible=b(()=>{let e=this.edgeData();if(!e)return!1;let t=e.measuredLabels?.find(o=>o.id===this.id());return!(!t?.position||t?.position.x==null||t?.position.y==null||!(e.points&&e.points.length>=2))});lastPositionOnEdge=$(void 0);get transform(){let e=this.position();return`translate(${e.x}px, ${e.y}px) translate(-50%, -50%)`}constructor(){fe(()=>{let e=this.positionOnEdge(),t=this.lastPositionOnEdge();e!==t&&(Ie(()=>{this.lastPositionOnEdge.set(e)}),this.flowCoreProvider.provide().updater.applyEdgeLabelChanges(this.edgeId(),[{labelId:this.id(),labelChanges:{positionOnEdge:e}}]))})}ngOnInit(){this.lastPositionOnEdge.set(this.positionOnEdge()),this.ownerInternalId=this.edgeData()?._internalId,this.flowCoreProvider.provide().updater.addEdgeLabel(this.edgeId(),{id:this.id(),positionOnEdge:this.positionOnEdge()}),this.batchResizeObserver.observe(this.hostElement.nativeElement,{type:"edge-label",edgeId:this.edgeId(),labelId:this.id()})}ngOnDestroy(){this.batchResizeObserver.unobserve(this.hostElement.nativeElement);let e=this.flowCoreProvider.provide();if(!e.isInitialized)return;let t=this.edgeId(),o=t?e.getEdgeById(t):null;o&&(this.ownerInternalId&&o._internalId!==this.ownerInternalId||e.updater.deleteEdgeLabel(t,this.id()))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-base-edge-label"]],hostVars:4,hostBindings:function(t,o){t&2&&Ue("transform",o.transform)("visibility",o.isVisible()?null:"hidden")},inputs:{id:[1,"id"],positionOnEdge:[1,"positionOnEdge"]},ngContentSelectors:Tt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),je(0))},styles:["[_nghost-%COMP%]{position:absolute;pointer-events:all}"]})};var Wu=class n{edgeComponent=h(ro);selected=b(()=>this.edgeComponent.selected());static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-edge-label"]],ngContentSelectors:Tt,decls:2,vars:3,consts:[[3,"className"]],template:function(t,o){t&1&&(Ye(),U(0,"div",0),je(1),B()),t&2&&(q("selected",o.selected()),Ce("className","ng-diagram-default-edge-label"))},styles:[".ng-diagram-default-edge-label[_ngcontent-%COMP%]{display:flex;padding:var(--edge-label-padding, 4px 8px);border-radius:var(--edge-label-border-radius, 4px);font-size:var(--edge-label-font-size, 12px);background:var(--edge-label-background-color, var(--ngd-default-edge-label-background-color));color:var(--edge-label-text-color, var(--ngd-default-edge-label-color));border:var(--edge-label-border-width, 1px) solid var(--edge-label-border-color, var(--ngd-default-edge-label-border-color));transition:var(--edge-label-border-transition, border-color .1s ease-in-out)}"]})},Gu=class n{edge=I.required();label=b(()=>this.edge().data?.label);positionOnEdge=b(()=>this.edge().data?.positionOnEdge??.5);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-edge"]],inputs:{edge:[1,"edge"]},decls:3,vars:3,consts:[[1,"default-edge",3,"edge"],[1,"ng-diagram-default-label",3,"id","positionOnEdge"]],template:function(t,o){if(t&1&&(v(0,"ng-diagram-base-edge",0),Zd(1),E(2,xC,3,3,"ng-diagram-base-edge-label",1),y()),t&2){A("edge",o.edge()),p();let i=Kd(o.label());p(),P(i?2:-1)}},dependencies:[ro,ju,Wu],styles:["ng-diagram-base-edge.default-edge[_ngcontent-%COMP%]{--edge-stroke: var(--ngd-default-edge-stroke);--edge-stroke-transition: stroke .1s ease-in-out}ng-diagram-base-edge.default-edge[_ngcontent-%COMP%]:hover:not(.selected):not(.temporary){--edge-stroke: var(--ngd-default-edge-stroke-hover);--edge-label-border-color: var(--ngd-default-edge-stroke-hover)}ng-diagram-base-edge.default-edge.selected[_ngcontent-%COMP%]{--edge-stroke: var(--ngd-default-edge-stroke-selected);--edge-label-border-color: var(--ngd-default-edge-stroke-selected)}ng-diagram-base-edge.default-edge.temporary[_ngcontent-%COMP%]{--edge-stroke-opacity: .5}"]})},qu=class n{elementRef=h(rt);markerRegistry=h(Zo);destroyRef=h(qe);markerId=null;ngAfterViewInit(){let e=this.elementRef.nativeElement.querySelector("marker");if(!e)return void console.warn("[ngDiagram] Marker element not found in projected content");let t=e.getAttribute("id");t?(this.markerId=t,this.markerRegistry.registerMarker(t,e),this.destroyRef.onDestroy(()=>{this.markerId&&this.markerRegistry.unregisterMarker(this.markerId)})):console.warn("[ngDiagram] Marker element must have an id attribute")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-marker"]],ngContentSelectors:Tt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),je(0))},styles:["[_nghost-%COMP%]{display:contents}[_nghost-%COMP%] svg{position:absolute;pointer-events:none;fill:currentColor}"]})},Yu=class n{static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-marker-arrow"]],decls:5,vars:0,consts:[["id","ng-diagram-arrow","viewBox","0 9 8 14","refX","6","refY","16","markerWidth","4","markerHeight","7","orient","auto-start-reverse"],["d","M1 21L6 16L1 11","stroke","context-stroke","fill","none","stroke-width","2","stroke-linecap","round","stroke-linejoin","round"]],template:function(t,o){t&1&&(v(0,"ng-diagram-marker"),ge(),v(1,"svg")(2,"defs")(3,"marker",0),z(4,"path",1),y()()()())},dependencies:[qu],encapsulation:2,changeDetection:1})},Zu=class n{static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-edge"]],ngContentSelectors:Tt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),je(0))},styles:["[_nghost-%COMP%]{position:absolute;-webkit-user-select:none;user-select:none}"]})},Ku=class n{inputEventsRouter=h(at);diagramComponent=h(lr);flowCoreProvider=h(De);touchEventsStateService=h(_n);targetData=I();edgePanningInterval=null;cachedDiagramRect=null;ngOnDestroy(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.stopEdgePanning()}onPointerDown(e){if(!this.shouldHandle(e)||!this.inputEventsRouter.eventGuards.withPrimaryButton(e))return;let t=this.targetData();if(!t)return;this.touchEventsStateService.currentEvent.set(yt.Move),this.cachedDiagramRect=this.diagramComponent.getBoundingClientRect(),e.moveSelectionHandled=!0;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},o),{name:"pointerMoveSelection",phase:"start",target:t,targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY},currentDiagramEdge:null})),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{this.inputEventsRouter.eventGuards.withPrimaryButton(e)&&this.finishDragging(e)};onPointerMove=e=>{if(e.zoomingHandled||this.touchEventsStateService.boxSelectionHandled()||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.finishDragging(e);let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e),{selectionMoving:{edgePanningThreshold:i,edgePanningEnabled:r,edgePanningForce:s},viewportPanningEnabled:a}=this.flowCoreProvider.provide().config,d=null;a&&r&&(d=Qe.calculateEdgePanningForce(this.cachedDiagramRect||this.diagramComponent.getBoundingClientRect(),{x:e.clientX,y:e.clientY},i,s),d?this.startEdgePanning(e.clientX,e.clientY,d):this.stopEdgePanning()),this.inputEventsRouter.emit(_(g({},o),{name:"pointerMoveSelection",phase:"continue",target:t,targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY},panningForce:d}))};finishDragging(e){let t=this.targetData();if(!t)return;document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.stopEdgePanning(),this.cachedDiagramRect=null;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},o),{name:"pointerMoveSelection",phase:"end",target:t,targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY},currentDiagramEdge:null})),this.touchEventsStateService.clearCurrentEvent()}shouldHandle(e){return!(!this.flowCoreProvider.provide().config.nodeDraggingEnabled||!(this.targetData()?.draggable??1)||ca(e,"drag")||e.zoomingHandled||e.linkingHandled||e.rotateHandled||e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}startEdgePanning(e,t,o){this.stopEdgePanning(),this.edgePanningInterval=window.setInterval(()=>{let i=this.targetData();if(!i)return;let r=this.inputEventsRouter.getBaseEvent({});this.inputEventsRouter.emit(_(g({},r),{name:"pointerMoveSelection",phase:"continue",target:i,targetType:"node",lastInputPoint:{x:e,y:t},panningForce:o}))},Nm)}stopEdgePanning(){this.edgePanningInterval!=null&&(window.clearInterval(this.edgePanningInterval),this.edgePanningInterval=null)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramPointerMoveSelection",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{targetData:[1,"targetData"]}})},ga=class n{portsService=h(rr);flowCore=h(De);node=I.required();rotate=b(()=>this.node().angle?`rotate(${this.node().angle}deg)`:"");id=b(()=>this.node().id);size=b(()=>this.node().size);constructor(){this.setupPortSyncEffect()}syncPorts(){let e=this.id(),t=this.flowCore.provide();if(t.actionStateManager.isResizing()){let o=this.portsService.getNodePortsData(e);t.updater.applyPortChanges(e,Ks(o))}else queueMicrotask(()=>{let o=this.portsService.getNodePortsData(e);t.updater.applyPortChanges(e,Ks(o))})}setupPortSyncEffect(){let e,t,o=!0;fe(()=>{let i=this.size(),r=this.rotate();if(o)return o=!1,e=i,void(t=r);(i?.width!==e?.width||i?.height!==e?.height||r!==t)&&(e=i,t=r,this.syncPorts())})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-node"]],inputs:{node:[1,"node"]},features:[gn([{directive:Fu,inputs:["node","node"]},{directive:Lu,inputs:["node","node"]},{directive:ku,inputs:["targetData","node"]},{directive:Ku,inputs:["targetData","node"]},{directive:pa,inputs:["data","node"]}])],ngContentSelectors:Tt,decls:2,vars:2,consts:[[1,"node-content"]],template:function(t,o){t&1&&(Ye(),U(0,"div",0),je(1),B()),t&2&&Ue("transform",o.rotate())},styles:["[_nghost-%COMP%]{position:absolute;top:0;left:0;transform-origin:0 0;pointer-events:none;-webkit-user-select:none;user-select:none;cursor:pointer}.node-content[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;transform-origin:center center;pointer-events:all}"]})},ar=class{nodeComponent=h(ga,{optional:!0});isRenderedOnCanvas=b(()=>!!this.nodeComponent)},fa=class n{inputEventsRouter=h(at);touchEventsStateService=h(_n);direction=I.required();targetData=I.required();ngOnDestroy(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp)}onPointerDown(e){if(!this.shouldHandle(e))return;this.touchEventsStateService.currentEvent.set(yt.Resize),e.preventDefault(),e.stopPropagation(),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"resize",phase:"start",target:this.targetData(),direction:this.direction(),targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY}}))}onPointerUp=e=>{document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.touchEventsStateService.clearCurrentEvent();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"resize",phase:"end",target:this.targetData(),direction:this.direction(),targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY}}))};onPointerMove=e=>{if(this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.onPointerUp(e);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},t),{name:"resize",phase:"continue",target:this.targetData(),direction:this.direction(),targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY}}))};shouldHandle(e){return!(e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramResize",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{direction:[1,"direction"],targetData:[1,"targetData"]}})},Xu=class n{position=I.required();classes=b(()=>`resize-handle resize-handle--${this.position()}`);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-resize-handle"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.classes())},inputs:{position:[1,"position"]},features:[gn([{directive:fa,inputs:["direction","position","targetData","targetData"]}])],decls:0,vars:0,template:function(t,o){},styles:['[_nghost-%COMP%]:before{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%}.resize-handle[_nghost-%COMP%]{position:absolute;width:var(--ngd-resize-handle-size);height:var(--ngd-resize-handle-size);background-color:var(--ngd-resize-handle-background-color);border:var(--ngd-resize-handle-border-size) var(--ngd-resize-handle-border-style) var(--ngd-resize-handle-border-color);border-radius:var(--ngd-resize-handle-border-radius)}.resize-handle--top-left[_nghost-%COMP%]{top:0;left:0;transform:translate(-50%,-50%);cursor:nwse-resize}.resize-handle--top-right[_nghost-%COMP%]{top:0;right:0;transform:translate(50%,-50%);cursor:nesw-resize}.resize-handle--bottom-left[_nghost-%COMP%]{bottom:0;left:0;transform:translate(-50%,50%);cursor:nesw-resize}.resize-handle--bottom-right[_nghost-%COMP%]{bottom:0;right:0;transform:translate(50%,50%);cursor:nwse-resize}']})},Qu=class n{position=I.required();classes=b(()=>`resize-line resize-line--${this.position()}`);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-resize-line"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.classes())},inputs:{position:[1,"position"]},features:[gn([{directive:fa,inputs:["direction","position","targetData","targetData"]}])],decls:0,vars:0,template:function(t,o){},styles:['[_nghost-%COMP%]:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-line[_nghost-%COMP%]{position:absolute}.resize-line--top[_nghost-%COMP%]:before, .resize-line--bottom[_nghost-%COMP%]:before{width:100%;height:8px}.resize-line--right[_nghost-%COMP%]:before, .resize-line--left[_nghost-%COMP%]:before{width:8px;height:100%}.resize-line--top[_nghost-%COMP%]{top:0;left:0;width:100%;border-top:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ns-resize;transform:translateY(-50%)}.resize-line--right[_nghost-%COMP%]{top:0;right:0;height:100%;border-right:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ew-resize;transform:translate(50%)}.resize-line--bottom[_nghost-%COMP%]{bottom:0;left:0;width:100%;border-bottom:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ns-resize;transform:translateY(50%)}.resize-line--left[_nghost-%COMP%]{top:0;left:0;height:100%;border-left:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ew-resize;transform:translate(-50%)}']})},Jo=class n extends ar{diagramService=h(Mt);defaultResizable=I(void 0);nodeData=b(()=>this.nodeComponent?.node());dataResizable=b(()=>this.nodeData()?.resizable);isResizable=b(()=>this.dataResizable()??this.defaultResizable()??this.diagramService.config().resize?.defaultResizable);showAdornment=b(()=>!!this.isResizable()&&this.nodeData()?.selected&&this.isRenderedOnCanvas()&&!this.nodeData()?.angle);linePositions=["top","right","bottom","left"];handlePositions=["top-left","top-right","bottom-left","bottom-right"];static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-node-resize-adornment"]],inputs:{defaultResizable:[1,"defaultResizable"]},features:[fn],ngContentSelectors:Tt,decls:2,vars:1,consts:[[3,"position","targetData"]],template:function(t,o){t&1&&(Ye(),je(0),E(1,PC,4,0)),t&2&&(p(),P(o.showAdornment()?1:-1))},dependencies:[Qu,Xu],styles:["[_nghost-%COMP%]{display:flex;position:relative;width:100%;height:100%}"]})},Ju=class n{node=I.required();isSelected=b(()=>this.node().selected??!1);highlighted=b(()=>this.node().highlighted??!1);classes=b(()=>"ng-diagram-group "+(this.highlighted()?"highlight":""));static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-group-template"]],inputs:{node:[1,"node"]},ngContentSelectors:Tt,decls:3,vars:3,consts:[["ngDiagramNodeSelected","","ngDiagramGroupHighlighted","",3,"node"]],template:function(t,o){t&1&&(Ye(),v(0,"ng-diagram-node-resize-adornment")(1,"div",0),je(2),y()()),t&2&&(p(),ft(o.classes()),A("node",o.node()))},dependencies:[Jo,ua,Pu],styles:["[_nghost-%COMP%]:hover .ng-diagram-group[_ngcontent-%COMP%]{border-color:var(--ngd-group-border-color-hover)}.ng-diagram-group[_ngcontent-%COMP%]{display:flex;border-radius:var(--ngd-group-border-radius);padding:.625rem;background-color:var(--ngd-node-bg-primary-default);border:.0625rem solid var(--ngd-group-border-color);width:100%;height:100%;box-sizing:border-box}"]})},XS={topLeft:"top-left",topCenter:"top-center",topRight:"top-right",centerLeft:"center-left",center:"center",centerRight:"center-right",bottomLeft:"bottom-left",bottomCenter:"bottom-center",bottomRight:"bottom-right"},so=class n extends ar{hostElement=h(rt);flowCoreProvider=h(De);batchResizeObserver=h($n);linkingInputDirective=h(da);isInitialized=$(!1);lastSide=$(void 0);lastType=$(void 0);lastOriginPoint;ownerInternalId;nodeData=b(()=>this.nodeComponent?.node());id=I.required();type=I.required();side=I.required();originPoint=I("center");get portClass(){let e=XS[this.originPoint()]||"center";return`ng-diagram-port ${this.hasContent?"custom-content":""} ${this.side()} origin-${e}`}constructor(){super(),fe(()=>{let e=this.nodeData(),t=this.isInitialized(),o=this.side(),i=this.type(),r=this.originPoint();if(!t||!e)return;let s={};this.lastSide()!==o&&(this.lastSide.set(o),s.side=o),this.lastType()!==i&&(this.lastType.set(i),s.type=i);let a=this.lastOriginPoint!==r;a&&(this.lastOriginPoint=r),Object.keys(s).length>0&&this.flowCoreProvider.provide().updater.applyPortChanges(e.id,[{portId:this.id(),portChanges:s}]),(s.side||a)&&this.batchResizeObserver.invalidate(this.hostElement.nativeElement)}),fe(()=>{let e=this.nodeData();this.isInitialized()&&e&&Ie(()=>{this.linkingInputDirective.setTargetNode(e)})})}ngOnInit(){this.lastSide.set(this.side()),this.lastType.set(this.type()),this.lastOriginPoint=this.originPoint();let e=this.nodeData();e&&(this.ownerInternalId=e._internalId,this.flowCoreProvider.provide().updater.addPort(e.id,{id:this.id(),type:this.type(),nodeId:e.id,side:this.side()}),this.batchResizeObserver.observe(this.hostElement.nativeElement,{type:"port",nodeId:e.id,portId:this.id()}),this.isInitialized.set(!0))}ngOnDestroy(){this.batchResizeObserver.unobserve(this.hostElement.nativeElement);let e=this.id(),t=this.nodeData();if(!t)return;let o=this.flowCoreProvider.provide();if(!o.isInitialized)return;let i=o.getNodeById(t.id);i&&(this.ownerInternalId&&i._internalId!==this.ownerInternalId||o.isVirtualizationActive&&!o.isNodeCurrentlyRendered(t.id)||o.internalUpdater.deletePort(t.id,e))}custom=st("contentProjection");hasContent=!1;ngAfterContentInit(){this.hasContent=(this.custom()?.nativeElement?.childNodes?.length??0)>0}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-port"]],viewQuery:function(t,o){t&1&&ht(o.custom,yp,5),t&2&&gt()},hostVars:5,hostBindings:function(t,o){t&2&&(K("data-port-id",o.id()),ft(o.portClass),Ue("display",o.isRenderedOnCanvas()?"block":"none"))},inputs:{id:[1,"id"],type:[1,"type"],side:[1,"side"],originPoint:[1,"originPoint"]},features:[gn([{directive:da,inputs:["portId","id"]}]),fn],ngContentSelectors:Tt,decls:3,vars:0,consts:[["contentProjection",""],[1,"content-projection"]],template:function(t,o){t&1&&(Ye(),U(0,"div",1,0),je(2),B())},styles:['[_nghost-%COMP%]{position:absolute;width:fit-content;height:fit-content;inset:0;box-sizing:content-box;z-index:2;border-radius:var(--ngd-port-border-radius);cursor:crosshair}[_nghost-%COMP%]:has(.content-projection:not(:empty)){--ngd-port-border-radius: 0%}[_nghost-%COMP%]:has(.content-projection:empty), [_nghost-%COMP%] .content-projection[_ngcontent-%COMP%]:not(:empty){display:flex;background:var(--ngd-port-background-color);border:var(--ngd-port-border-size) solid var(--ngd-port-border-color);border-radius:var(--ngd-port-border-radius);transition-property:background-color,border-color,outline,box-shadow;transition-timing-function:ease-in-out;transition-duration:.1s;transform-origin:center}[_nghost-%COMP%]:has(.content-projection:empty){width:var(--ngd-port-size);height:var(--ngd-port-size)}[_nghost-%COMP%]:has(.content-projection:empty):before{content:"";position:absolute;width:18px;height:18px;top:50%;left:50%;translate:-50% -50%;border-radius:var(--ngd-port-border-radius)}.left[_nghost-%COMP%]{top:50%;left:0}.right[_nghost-%COMP%]{top:50%;left:100%}.top[_nghost-%COMP%]{top:0;left:50%}.bottom[_nghost-%COMP%]{top:100%;left:50%}.origin-top-left[_nghost-%COMP%]{transform:translate(0)}.origin-top-center[_nghost-%COMP%]{transform:translate(-50%)}.origin-top-right[_nghost-%COMP%]{transform:translate(-100%)}.origin-center-left[_nghost-%COMP%]{transform:translateY(-50%)}.origin-center[_nghost-%COMP%]{transform:translate(-50%,-50%)}.origin-center-right[_nghost-%COMP%]{transform:translate(-100%,-50%)}.origin-bottom-left[_nghost-%COMP%]{transform:translateY(-100%)}.origin-bottom-center[_nghost-%COMP%]{transform:translate(-50%,-100%)}.origin-bottom-right[_nghost-%COMP%]{transform:translate(-100%,-100%)}']})},ep=class n{inputEventsRouter=h(at);touchEventsStateService=h(_n);targetData=I();ngOnDestroy(){this.cleanup()}onPointerDown(e){if(!this.shouldHandle(e))return;e.rotateHandled=!0,this.touchEventsStateService.currentEvent.set(yt.Rotate);let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},o),{name:"rotate",phase:"start",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)})),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerCancel)}onPointerMove=e=>{if(this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.onPointerUp(e);e.rotateHandled=!0;let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},o),{name:"rotate",phase:"continue",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)}))};onPointerUp=e=>{let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},o),{name:"rotate",phase:"end",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)})),this.cleanup()};onPointerCancel=e=>{let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(g({},o),{name:"rotate",phase:"end",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)})),this.cleanup()};shouldHandle(e){return!(e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}cleanup(){this.touchEventsStateService.clearCurrentEvent(),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerCancel)}getNodeCenter(e){let{x:t,y:o}=e.position,{width:i,height:r}=e.size||{width:0,height:0};return{x:t+i/2,y:o+r/2}}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramRotateHandle",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{targetData:[1,"targetData"]}})},tp=class n{custom=st("contentProjection");data=I.required();isRotating=$(!1);hasCustomHandle=!1;ngAfterContentInit(){this.hasCustomHandle=(this.custom()?.nativeElement?.childNodes?.length??0)>0}get pointerDownAttr(){return this.isRotating()?"true":null}pointerDown(){this.isRotating.set(!0)}pointerUp(){this.isRotating.set(!1)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-rotate-handle"]],viewQuery:function(t,o){t&1&&ht(o.custom,yp,5),t&2&&gt()},hostVars:5,hostBindings:function(t,o){t&1&&O("pointerdown",function(){return o.pointerDown()})("pointerup",function(){return o.pointerUp()},kt),t&2&&(K("data-rotating",o.pointerDownAttr),q("rotate-handle",!o.hasCustomHandle)("ng-diagram-rotate-handle",!0))},inputs:{data:[1,"data"]},features:[gn([{directive:ep,inputs:["targetData","data"]}])],ngContentSelectors:Tt,decls:4,vars:1,consts:[["contentProjection",""],[1,"content-projection"],["xmlns","http://www.w3.org/2000/svg","width","18","height","19","viewBox","0 0 18 19","fill","none"],["d","M15.75 9.5637C15.7502 11.3383 15.0515 13.0416 13.8051 14.3049C12.5588 15.5682 10.8651 16.2899 9.0907 16.3137H9C7.27611 16.318 5.61676 15.6583 4.36641 14.4715C4.31271 14.4207 4.26955 14.3599 4.23938 14.2924C4.20921 14.2249 4.19262 14.1522 4.19056 14.0783C4.1885 14.0044 4.20102 13.9309 4.22739 13.8618C4.25376 13.7928 4.29347 13.7296 4.34426 13.6759C4.39504 13.6222 4.45591 13.5791 4.52337 13.5489C4.59084 13.5187 4.66359 13.5021 4.73746 13.5001C4.81134 13.498 4.8849 13.5105 4.95394 13.5369C5.02298 13.5633 5.08615 13.603 5.13984 13.6538C5.94408 14.4122 6.95396 14.9169 8.04335 15.1047C9.13273 15.2926 10.2533 15.1553 11.2651 14.7099C12.2769 14.2646 13.1351 13.531 13.7324 12.6008C14.3297 11.6706 14.6396 10.585 14.6235 9.4797C14.6075 8.37436 14.266 7.29826 13.6419 6.38583C13.0178 5.4734 12.1387 4.76509 11.1144 4.34939C10.09 3.9337 8.96594 3.82904 7.88249 4.04849C6.79903 4.26794 5.80425 4.80178 5.02242 5.58331C5.01668 5.58952 5.01057 5.59539 5.00414 5.60089L3.13523 7.3137H5.0625C5.21168 7.3137 5.35476 7.37296 5.46025 7.47845C5.56574 7.58394 5.625 7.72701 5.625 7.8762C5.625 8.02538 5.56574 8.16846 5.46025 8.27395C5.35476 8.37944 5.21168 8.4387 5.0625 8.4387H1.6875C1.53832 8.4387 1.39524 8.37944 1.28975 8.27395C1.18426 8.16846 1.125 8.02538 1.125 7.8762V4.5012C1.125 4.35201 1.18426 4.20894 1.28975 4.10345C1.39524 3.99796 1.53832 3.9387 1.6875 3.9387C1.83668 3.9387 1.97976 3.99796 2.08525 4.10345C2.19074 4.20894 2.25 4.35201 2.25 4.5012V6.59651L4.23633 4.78245C5.18131 3.84113 6.384 3.20089 7.69256 2.94253C9.00112 2.68418 10.3569 2.8193 11.5887 3.33084C12.8205 3.84238 13.8732 4.7074 14.6138 5.81671C15.3544 6.92602 15.7498 8.22988 15.75 9.5637Z","fill","white"]],template:function(t,o){t&1&&(Ye(),U(0,"div",1,0),je(2),B(),E(3,IC,2,0,":svg:svg",2)),t&2&&(p(3),P(o.hasCustomHandle?-1:3))},styles:[".content-projection[_ngcontent-%COMP%]:not(:empty){width:100%;height:100%}.rotate-handle[_nghost-%COMP%]{background-color:var(--ngd-rotate-handle-background-color);border-radius:50%;transition:background-color .1s ease-in-out}.rotate-handle[_nghost-%COMP%]:hover, .rotate-handle[_nghost-%COMP%]:focus-visible{background-color:var(--ngd-rotate-handle-background-color-hover)}.rotate-handle[data-rotating][_nghost-%COMP%], .rotate-handle.active[_nghost-%COMP%]{background-color:var(--ngd-rotate-handle-background-color-active)}[_nghost-%COMP%]{display:flex;justify-content:center;align-items:center;width:var(--ngd-rotate-handle-size);height:var(--ngd-rotate-handle-size);position:absolute;transform:translate(50%,-50%);z-index:10;box-sizing:border-box;pointer-events:auto;cursor:grab;top:var(--ngd-rotate-handle-top);right:var(--ngd-rotate-handle-right);bottom:var(--ngd-rotate-handle-bottom);left:var(--ngd-rotate-handle-left)}[data-rotating][_nghost-%COMP%], .active[_nghost-%COMP%], .active[_nghost-%COMP%], .active [_nghost-%COMP%]{cursor:grabbing}"]})},np=class n extends ar{diagramService=h(Mt);defaultRotatable=I(void 0);dataRotatable=b(()=>this.nodeData()?.rotatable);isRotating=$(!1);nodeData=b(()=>this.nodeComponent?.node());isRotatable=b(()=>this.dataRotatable()??this.defaultRotatable()??this.diagramService.config().nodeRotation?.defaultRotatable);eventTarget=b(()=>({type:"rotate-handle",element:this.nodeData()}));showAdornment=b(()=>!!this.nodeData()?.selected&&this.isRenderedOnCanvas()&&!!this.isRotatable());static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-node-rotate-adornment"]],hostAttrs:[1,"node-rotate-adornment"],inputs:{defaultRotatable:[1,"defaultRotatable"]},features:[fn],ngContentSelectors:Tt,decls:1,vars:1,consts:[[3,"data"]],template:function(t,o){t&1&&(Ye(),E(0,DC,2,1,"ng-diagram-rotate-handle",0)),t&2&&P(o.showAdornment()?0:-1)},dependencies:[tp],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none}"]})},op=class n{diagramService=h(Mt);node=I.required();isSelected=b(()=>this.node().selected??!1);classes=b(()=>"node "+(this.isSelected()?"isSelected":""));enablePortHover=b(()=>!this.diagramService.actionState().resize);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-base-node-template"]],hostVars:4,hostBindings:function(t,o){t&2&&q("isSelected",o.isSelected())("ng-diagram-port-hoverable-over-node",o.enablePortHover())},inputs:{node:[1,"node"]},ngContentSelectors:Tt,decls:6,vars:3,consts:[["ngDiagramNodeSelected","",3,"node"],["id","port-left","type","both","side","left"],["id","port-right","type","both","side","right"]],template:function(t,o){t&1&&(Ye(),z(0,"ng-diagram-node-rotate-adornment"),v(1,"ng-diagram-node-resize-adornment")(2,"div",0),je(3),y(),z(4,"ng-diagram-port",1)(5,"ng-diagram-port",2),y()),t&2&&(p(2),ft(o.classes()),A("node",o.node()))},dependencies:[so,ua,Jo,np],styles:["[_nghost-%COMP%]:hover .node[_ngcontent-%COMP%]{border-color:var(--ngd-node-border-color-hover)}.node[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:.5rem;width:100%;background-color:var(--ngd-node-bg-primary-default);border:var(--ngd-node-border-size) solid var(--ngd-node-border-color);color:var(--ngd-txt-primary-default);border-radius:var(--ngd-node-border-radius)}.node.isSelected[_ngcontent-%COMP%]{border-color:var(--ngd-node-border-color-hover)}"]})},ip=class n{node=I.required();label=b(()=>{let e=this.node().data;return"label"in e?e.label:this.node().id});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-node-template"]],inputs:{node:[1,"node"]},decls:3,vars:2,consts:[[3,"node"]],template:function(t,o){t&1&&(v(0,"ng-diagram-base-node-template",0)(1,"span"),C(2),y()()),t&2&&(A("node",o.node()),p(2),re(o.label()))},dependencies:[op],encapsulation:2})},dr=class n{panel=$(null);position=b(()=>this.panel()?.position());register(e){this.panel.set(e)}unregister(){this.panel.set(null)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},QS={"bottom-right":["top-right","bottom-left","top-left"],"top-right":["bottom-right","top-left","bottom-left"],"bottom-left":["top-left","bottom-right","top-right"],"top-left":["bottom-left","top-right","bottom-right"]},rp=class n{preferredPosition=I(void 0);panelRegistry=h(dr);position=b(()=>{let e=this.preferredPosition()??"bottom-right",t=this.panelRegistry.position();return t!==e?e:QS[e].find(o=>o!==t)??e});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-watermark"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.position())},inputs:{preferredPosition:[1,"preferredPosition"]},decls:5,vars:0,consts:[["href","https://www.ngdiagram.dev/","target","_blank"],[1,"sr-only"],["width","479","height","90","viewBox","0 0 479 90","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M78.1895 20.5088C82.5953 20.5088 85.9324 21.2858 88.2002 22.8408C90.468 24.3959 92.1205 26.0165 93.1572 27.7012H94.9062V21.8691H106.958V78.6289C106.958 81.9333 105.986 84.5572 104.042 86.501C102.098 88.5096 99.5063 89.5146 96.2666 89.5146H64V78.8232H91.9902C93.8044 78.8232 94.7119 77.8511 94.7119 75.9072V63.3701H92.9629C92.315 64.4068 91.4075 65.4757 90.2412 66.5771C89.075 67.6138 87.5199 68.4884 85.5762 69.2012C83.6324 69.9139 81.1699 70.2705 78.1895 70.2705C74.2371 70.2705 70.5762 69.3312 67.207 67.4521C63.9026 65.5083 61.2459 62.7541 59.2373 59.1904C57.2288 55.562 56.2246 51.2208 56.2246 46.167V44.6123C56.2246 39.5584 57.2287 35.2492 59.2373 31.6855C61.2458 28.0572 63.9027 25.3038 67.207 23.4248C70.5763 21.481 74.2371 20.5088 78.1895 20.5088ZM278.176 20.5088C282.582 20.5088 285.919 21.2858 288.187 22.8408C290.454 24.3959 292.107 26.0165 293.144 27.7012H294.893V21.8691H306.944V78.6289C306.944 81.9333 305.972 84.5572 304.028 86.501C302.085 88.5096 299.493 89.5146 296.253 89.5146H263.986V78.8232H291.977C293.791 78.8232 294.698 77.8511 294.698 75.9072V63.3701H292.949C292.301 64.4068 291.394 65.4757 290.228 66.5771C289.061 67.6138 287.506 68.4885 285.562 69.2012C283.619 69.9139 281.156 70.2705 278.176 70.2705C274.223 70.2705 270.563 69.3311 267.193 67.4521C263.889 65.5083 261.232 62.7541 259.224 59.1904C257.215 55.562 256.211 51.2208 256.211 46.167V44.6123C256.211 39.5584 257.215 35.2492 259.224 31.6855C261.232 28.0572 263.889 25.3038 267.193 23.4248C270.563 21.481 274.223 20.5088 278.176 20.5088ZM225.268 20.5088C231.617 20.5088 236.639 22.0958 240.332 25.2705C244.025 28.4454 245.872 33.0464 245.872 39.0723V57.0527C245.872 58.9964 246.78 59.9678 248.594 59.9678H252.481V70.0762H244.317C241.92 70.0762 239.944 69.4933 238.389 68.3271C236.834 67.1609 236.056 65.605 236.056 63.6611V63.5645H234.209C233.95 64.342 233.367 65.3791 232.46 66.6748C231.553 67.9058 230.127 69.0067 228.184 69.9785C226.24 70.9504 223.583 71.4365 220.214 71.4365C216.78 71.4365 213.703 70.8537 210.981 69.6875C208.26 68.4565 206.09 66.707 204.47 64.4395C202.915 62.1069 202.137 59.2879 202.137 55.9834C202.137 52.6789 202.915 49.9247 204.47 47.7217C206.09 45.4541 208.292 43.7694 211.078 42.668C213.929 41.5017 217.169 40.919 220.797 40.9189H234.015V38.1973C234.015 35.9295 233.302 34.0827 231.877 32.6572C230.451 31.167 228.183 30.4219 225.073 30.4219C222.028 30.4219 219.761 31.1351 218.271 32.5605C216.78 33.9212 215.808 35.7032 215.354 37.9062L204.08 34.1152C204.858 31.6531 206.089 29.4178 207.773 27.4092C209.523 25.3358 211.823 23.6832 214.674 22.4521C217.589 21.1563 221.121 20.5088 225.268 20.5088ZM374.047 20.5088C380.396 20.5088 385.418 22.0959 389.111 25.2705C392.805 28.4454 394.651 33.0464 394.651 39.0723V57.0527C394.651 58.9964 395.559 59.9678 397.373 59.9678H401.261V70.0762H393.097C390.699 70.0762 388.723 69.4933 387.168 68.3271C385.613 67.1609 384.835 65.605 384.835 63.6611V63.5645H382.988C382.729 64.342 382.146 65.3791 381.239 66.6748C380.332 67.9058 378.906 69.0067 376.963 69.9785C375.019 70.9504 372.362 71.4365 368.993 71.4365C365.559 71.4365 362.482 70.8537 359.761 69.6875C357.04 68.4565 354.869 66.707 353.249 64.4395C351.694 62.1069 350.916 59.2879 350.916 55.9834C350.916 52.6789 351.694 49.9247 353.249 47.7217C354.869 45.4541 357.072 43.7694 359.857 42.668C362.708 41.5017 365.948 40.919 369.576 40.9189H382.794V38.1973C382.794 35.9295 382.082 34.0827 380.656 32.6572C379.231 31.167 376.963 30.4219 373.853 30.4219C370.807 30.4219 368.54 31.1351 367.05 32.5605C365.56 33.9212 364.587 35.7032 364.134 37.9062L352.859 34.1152C353.637 31.6531 354.868 29.4178 356.553 27.4092C358.302 25.3358 360.602 23.6832 363.453 22.4521C366.369 21.1563 369.9 20.5088 374.047 20.5088ZM28.5029 21.0918C32.2609 21.0918 35.5332 21.9664 38.3193 23.7158C41.1701 25.4004 43.3727 27.7654 44.9277 30.8105C46.4828 33.7911 47.2607 37.2904 47.2607 41.3076V70.0762H35.0146V42.2793C35.0146 38.6509 34.1072 35.9294 32.293 34.1152C30.5436 32.3012 28.017 31.3936 24.7129 31.3936C20.9549 31.3936 18.0392 32.6577 15.9658 35.1846C13.8924 37.6468 12.8555 41.1132 12.8555 45.584V70.0762H0.609375V21.8691H12.6611V28.1865H14.4102C15.1877 26.5019 16.6461 24.915 18.7842 23.4248C20.9224 21.8697 24.1618 21.0918 28.5029 21.0918ZM144.251 2.04199C153.387 2.04207 160.319 4.37504 165.049 9.04004C169.844 13.6404 172.241 20.5086 172.241 29.6445V42.4736C172.241 51.6096 169.844 58.5106 165.049 63.1758C160.319 67.7759 153.386 70.0761 144.251 70.0762H116.26V58.8018H125.201V13.3164H116.26V2.04199H144.251ZM193.622 70.0762H181.376V21.8691H193.622V70.0762ZM347.539 32.5605H341.513C338.403 32.5606 335.843 33.4024 333.835 35.0869C331.826 36.7067 330.822 39.234 330.822 42.668V70.0762H318.576V21.8691H330.628V27.3115H332.377C333.09 25.3679 334.256 23.9422 335.876 23.0352C337.56 22.1281 339.504 21.6749 341.707 21.6748H347.539V32.5605ZM461.921 21.0918C464.901 21.0919 467.59 21.7394 469.987 23.0352C472.449 24.2662 474.393 26.1779 475.818 28.7695C477.309 31.2965 478.054 34.504 478.054 38.3916V70.0762H465.808V39.2666C465.808 36.61 465.127 34.6338 463.767 33.3379C462.406 31.9774 460.495 31.2969 458.033 31.2969C455.247 31.2969 453.077 32.2043 451.521 34.0186C450.031 35.7679 449.286 38.2944 449.286 41.5986V70.0762H437.04V39.2666C437.04 36.6101 436.36 34.6338 434.999 33.3379C433.638 31.9772 431.727 31.2969 429.265 31.2969C426.479 31.2969 424.308 32.2043 422.753 34.0186C421.263 35.7679 420.518 38.2945 420.518 41.5986V70.0762H408.271V21.8691H420.323V27.1172H422.072C422.915 25.4974 424.308 24.1047 426.252 22.9385C428.196 21.7075 430.755 21.0918 433.93 21.0918C437.364 21.0918 440.117 21.7723 442.19 23.1328C444.264 24.4287 445.852 26.146 446.953 28.2842H448.702C449.804 26.2108 451.36 24.4935 453.368 23.1328C455.377 21.7723 458.228 21.0918 461.921 21.0918ZM221.672 50.0547C219.404 50.0547 217.622 50.5408 216.326 51.5127C215.03 52.4846 214.383 53.8454 214.383 55.5947C214.383 57.3441 215.063 58.7696 216.424 59.8711C217.784 60.9725 219.761 61.5234 222.353 61.5234C225.786 61.5234 228.573 60.5841 230.711 58.7051C232.914 56.7613 234.015 54.2013 234.015 51.0264V50.0547H221.672ZM370.451 50.0547C368.183 50.0547 366.401 50.5408 365.105 51.5127C363.81 52.4846 363.162 53.8454 363.162 55.5947C363.162 57.3441 363.842 58.7696 365.203 59.8711C366.564 60.9725 368.54 61.5234 371.132 61.5234C374.566 61.5234 377.352 60.5841 379.49 58.7051C381.693 56.7613 382.794 54.2013 382.794 51.0264V50.0547H370.451ZM81.6885 31.1992C77.9305 31.1992 74.7877 32.3985 72.2607 34.7959C69.734 37.1284 68.4708 40.4976 68.4707 44.9033V45.876C68.4708 50.2169 69.734 53.5861 72.2607 55.9834C74.7877 58.3808 77.9305 59.5791 81.6885 59.5791C85.4465 59.5791 88.5893 58.3808 91.1162 55.9834C93.6429 53.5861 94.9062 50.2169 94.9062 45.876V44.9033C94.9062 40.4976 93.6429 37.1284 91.1162 34.7959C88.6541 32.3985 85.5113 31.1992 81.6885 31.1992ZM281.675 31.1992C277.917 31.1992 274.774 32.3985 272.247 34.7959C269.72 37.1284 268.457 40.4976 268.457 44.9033V45.876C268.457 50.2169 269.72 53.5861 272.247 55.9834C274.774 58.3808 277.917 59.5791 281.675 59.5791C285.433 59.5791 288.576 58.3808 291.103 55.9834C293.629 53.5861 294.892 50.2169 294.893 45.876V44.9033C294.893 40.4976 293.629 37.1284 291.103 34.7959C288.64 32.3985 285.498 31.1992 281.675 31.1992ZM138.03 58.4131H144.445C149.629 58.413 153.419 57.0523 155.816 54.3311C158.214 51.6097 159.412 47.7866 159.412 42.8623V29.2559C159.412 24.2668 158.214 20.4437 155.816 17.7871C153.419 15.0658 149.629 13.7052 144.445 13.7051H138.03V58.4131ZM187.499 0.681641C189.767 0.681641 191.646 1.3939 193.137 2.81934C194.627 4.24481 195.372 6.12444 195.372 8.45703C195.372 10.7894 194.627 12.6683 193.137 14.0938C191.646 15.5192 189.767 16.2324 187.499 16.2324C185.296 16.2324 183.417 15.5192 181.862 14.0938C180.372 12.6683 179.627 10.7895 179.627 8.45703C179.627 6.12444 180.372 4.24481 181.862 2.81934C183.417 1.39408 185.296 0.681711 187.499 0.681641Z"]],template:function(t,o){t&1&&(U(0,"a",0)(1,"span",1),C(2,"ngDiagram"),B(),ge(),U(3,"svg",2),pt(4,"path",3),B()())},styles:["[_nghost-%COMP%]{position:absolute;width:var(--watermark-size)}.bottom-right[_nghost-%COMP%]{bottom:1rem;right:1rem}.top-right[_nghost-%COMP%]{top:1rem;right:1rem}.bottom-left[_nghost-%COMP%]{bottom:1rem;left:1rem}.top-left[_nghost-%COMP%]{top:1rem;left:1rem}[_nghost-%COMP%] svg[_ngcontent-%COMP%]{opacity:.7;height:100%;width:100%;display:block}[_nghost-%COMP%] svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{fill:var(--watermark-fill)}[_nghost-%COMP%] [_ngcontent-%COMP%]:hover svg[_ngcontent-%COMP%]{opacity:1}[_nghost-%COMP%]{--watermark-size: min(4rem, 10%);--watermark-fill: #b3b3b3}[_nghost-%COMP%] .sr-only[_ngcontent-%COMP%]{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}"],changeDetection:1})},sp=class n{inputEventsRouter=h(at);boxSelectionProvider=h(or);flowCoreProvider=h(De);touchEventsStateService=h(_n);touchStartPoint=null;isBoxSelectionActive=!1;longPressTimer=null;LONG_PRESS_DELAY=400;MOVE_THRESHOLD=10;onTouchStart(e){!this.isSingleTouch(e)||this.touchEventsStateService.rotateHandled()||this.touchEventsStateService.resizeHandled()||this.touchEventsStateService.linkingHandled()?this.cancelBoxSelection():(this.touchStartPoint={x:e.touches[0].clientX,y:e.touches[0].clientY},this.longPressTimer=setTimeout(()=>{this.isBoxSelectionActive=!0,this.touchEventsStateService.currentEvent.set(yt.BoxSelection);let t=e.touches[0]||this.touchStartPoint;t&&this.emitBoxSelectionEvent("start",e,t)},this.LONG_PRESS_DELAY))}onTouchMove(e){if(!this.isSingleTouch(e)||this.shouldCancelDuringLongPress(e))return void this.cancelBoxSelection();if(!this.isBoxSelectionActive||!this.touchStartPoint)return;let t=e.touches[0];this.emitBoxSelectionEvent("continue",e,t),this.updateBoundingBox(t),e.preventDefault(),e.stopPropagation()}onTouchEnd(e){if(this.clearLongPressTimer(),!this.isBoxSelectionActive)return void(this.touchStartPoint=null);let t=e.changedTouches[0]||e.touches[0]||this.touchStartPoint;t&&this.emitBoxSelectionEvent("end",e,t),this.touchEventsStateService.clearCurrentEvent(),this.cancelBoxSelection(),e.preventDefault(),e.stopPropagation()}cancelBoxSelection(){this.isBoxSelectionActive=!1,this.touchStartPoint=null,this.boxSelectionProvider.boundingBox.set(null),this.clearLongPressTimer()}clearLongPressTimer(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}isSingleTouch(e){return e.touches.length===1}shouldCancelDuringLongPress(e){if(!this.longPressTimer||!this.touchStartPoint||this.isBoxSelectionActive)return!1;let t=e.touches[0];return Math.max(Math.abs(t.clientX-this.touchStartPoint.x),Math.abs(t.clientY-this.touchStartPoint.y))>this.MOVE_THRESHOLD}emitBoxSelectionEvent(e,t,o){if(!o)return;let i=this.inputEventsRouter.getBaseEvent(t);this.inputEventsRouter.emit(_(g({},i),{name:"boxSelection",phase:e,target:void 0,targetType:"diagram",lastInputPoint:{x:"clientX"in o?o.clientX:o.x,y:"clientY"in o?o.clientY:o.y}}))}updateBoundingBox(e){let t=this.flowCoreProvider.provide(),{x:o,y:i}=t.clientToFlowViewportPosition(this.touchStartPoint),{x:r,y:s}=t.clientToFlowViewportPosition({x:e.clientX,y:e.clientY}),a=Math.min(o,r),d=Math.min(i,s),l=Math.abs(r-o),c=Math.abs(s-i);this.boxSelectionProvider.boundingBox.set({x:a,y:d,width:l,height:c})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramMobileBoxSelection",""]],hostBindings:function(t,o){t&1&&O("touchstart",function(r){return o.onTouchStart(r)})("touchmove",function(r){return o.onTouchMove(r)})("touchend",function(r){return o.onTouchEnd(r)})("touchcancel",function(r){return o.onTouchEnd(r)})}})},lr=class n{elementRef=h(rt);flowCoreProvider=h(De);renderer=h(rn);flowResizeBatchProcessor=h(ea);flowOffsetService=h(Js);templateProviderService=h(ha);initializedModel=null;resizeObserver=null;config=I();model=I.required();middlewares=I(ZS);nodeTemplateMap=I(new Qo);edgeTemplateMap=I(new Xo);nodes=this.renderer.nodes;edges=this.renderer.edges;viewport=this.renderer.viewport;viewportPannable=this.renderer.viewportPannable;diagramInit=new we;edgeDrawn=new we;edgeDrawEnded=new we;selectionMoved=new we;selectionChanged=new we;selectionGestureEnded=new we;selectionRemoved=new we;groupMembershipChanged=new we;selectionRotated=new we;nodeRotateStarted=new we;nodeRotateEnded=new we;viewportChanged=new we;clipboardPasted=new we;nodeResized=new we;nodeResizeStarted=new we;nodeResizeEnded=new we;paletteItemDropped=new we;nodeDragStarted=new we;nodeDragEnded=new we;constructor(){fe(()=>{let e=this.model();this.initializedModel!=e&&(Ie(()=>{this.renderer.isInitialized.set(!1),this.renderer.viewportPannable.set(this.config()?.viewportPanningEnabled??!0),this.flowCoreProvider.destroy(),this.flowOffsetService.reset(),this.flowCoreProvider.init(e,this.middlewares(),this.flowOffsetService.getFlowOffset,this.getViewportSize,this.config())}),this.initializedModel=e,this.flowOffsetService.initialize(this.elementRef.nativeElement),this.setupEventBridge())}),fe(()=>{let e=this.nodeTemplateMap();this.templateProviderService.setNodeTemplateMap(e)}),fe(()=>{let e=this.edgeTemplateMap();this.templateProviderService.setEdgeTemplateMap(e)})}ngOnInit(){this.flowResizeBatchProcessor.initialize(),this.setupViewportSizeTracking()}ngOnDestroy(){this.flowCoreProvider.destroy(),this.cleanupViewportSizeTracking()}getNodeTemplate(e){return this.templateProviderService.getNodeTemplate(e)}getEdgeTemplate(e){return this.templateProviderService.getEdgeTemplate(e)}trackNode=(e,t)=>t._internalId||t.id;trackEdge=(e,t)=>t._internalId||t.id;isGroup(e){return"isGroup"in e}castToGroupNode(e){return e}getBoundingClientRect(){return this.elementRef.nativeElement.getBoundingClientRect()}getViewportSize=()=>{let{width:e,height:t}=this.elementRef.nativeElement.getBoundingClientRect();return{width:e,height:t}};setupViewportSizeTracking(){if(typeof ResizeObserver>"u")return;this.resizeObserver=new ResizeObserver(t=>{let o=t[0];if(o){this.flowOffsetService.invalidateCache();let{width:i,height:r}=o.contentRect;this.updateViewportSize(i,r)}}),this.resizeObserver.observe(this.elementRef.nativeElement);let e=this.elementRef.nativeElement.getBoundingClientRect();this.updateViewportSize(e.width,e.height)}cleanupViewportSizeTracking(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}updateViewportSize(e,t){if(!this.flowCoreProvider.isInitialized())return;let o=this.flowCoreProvider.provide(),i=o.getState().metadata.viewport;i.width===e&&i.height===t||o.applyUpdate({metadataUpdate:{viewport:_(g({},i),{width:e,height:t})}},"updateViewportSize")}setupEventBridge(){let e=this.flowCoreProvider.provide(),t=e.eventManager;t.on("diagramInit",o=>{setTimeout(()=>{this.renderer.isInitialized.set(!0),this.diagramInit.emit(o),e.config.zoom.zoomToFit.onInit&&e.commandHandler.emit("zoomToFit",{})})}),t.on("edgeDrawn",o=>this.edgeDrawn.emit(o)),t.on("edgeDrawEnded",o=>this.edgeDrawEnded.emit(o)),t.on("selectionMoved",o=>this.selectionMoved.emit(o)),t.on("selectionChanged",o=>this.selectionChanged.emit(o)),t.on("selectionGestureEnded",o=>this.selectionGestureEnded.emit(o)),t.on("selectionRemoved",o=>this.selectionRemoved.emit(o)),t.on("groupMembershipChanged",o=>this.groupMembershipChanged.emit(o)),t.on("selectionRotated",o=>this.selectionRotated.emit(o)),t.on("nodeRotateStarted",o=>this.nodeRotateStarted.emit(o)),t.on("nodeRotateEnded",o=>this.nodeRotateEnded.emit(o)),t.on("viewportChanged",o=>this.viewportChanged.emit(o)),t.on("clipboardPasted",o=>this.clipboardPasted.emit(o)),t.on("nodeResized",o=>this.nodeResized.emit(o)),t.on("nodeResizeStarted",o=>this.nodeResizeStarted.emit(o)),t.on("nodeResizeEnded",o=>this.nodeResizeEnded.emit(o)),t.on("paletteItemDropped",o=>this.paletteItemDropped.emit(o)),t.on("nodeDragStarted",o=>this.nodeDragStarted.emit(o)),t.on("nodeDragEnded",o=>this.nodeDragEnded.emit(o))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram"]],hostVars:2,hostBindings:function(t,o){t&2&&q("pannable",o.viewportPannable())},inputs:{config:[1,"config"],model:[1,"model"],middlewares:[1,"middlewares"],nodeTemplateMap:[1,"nodeTemplateMap"],edgeTemplateMap:[1,"edgeTemplateMap"]},outputs:{diagramInit:"diagramInit",edgeDrawn:"edgeDrawn",edgeDrawEnded:"edgeDrawEnded",selectionMoved:"selectionMoved",selectionChanged:"selectionChanged",selectionGestureEnded:"selectionGestureEnded",selectionRemoved:"selectionRemoved",groupMembershipChanged:"groupMembershipChanged",selectionRotated:"selectionRotated",nodeRotateStarted:"nodeRotateStarted",nodeRotateEnded:"nodeRotateEnded",viewportChanged:"viewportChanged",clipboardPasted:"clipboardPasted",nodeResized:"nodeResized",nodeResizeStarted:"nodeResizeStarted",nodeResizeEnded:"nodeResizeEnded",paletteItemDropped:"paletteItemDropped",nodeDragStarted:"nodeDragStarted",nodeDragEnded:"nodeDragEnded"},features:[gn([Hu,Bu,sp,Eu,Au,Nu,$u,Ou,Du,Ru,Mu])],ngContentSelectors:TC,decls:10,vars:2,consts:[[1,"diagram-background-container"],[3,"viewport"],[1,"ng-diagram-node",3,"node"],[3,"preferredPosition"],[3,"edge"],[4,"ngComponentOutlet","ngComponentOutletInputs"],[3,"node"]],template:function(t,o){if(t&1&&(Ye(MC),v(0,"div",0),je(1),y(),v(2,"ng-diagram-canvas",1),Q(3,LC,3,2,"ng-diagram-edge",null,o.trackEdge,!0),z(5,"ng-diagram-marker-arrow"),Q(6,HC,4,3,"ng-diagram-node",2,o.trackNode,!0),y(),E(8,UC,1,1,"ng-diagram-watermark",3),z(9,"ng-diagram-box-selection")),t&2){let i;p(2),A("viewport",o.viewport()),p(),J(o.edges()),p(3),J(o.nodes()),p(2),P((i=o.config())!=null&&i.hideWatermark?-1:8)}},dependencies:[Di,os,Vu,ga,Yu,Gu,ip,Ju,Zu,rp,Uu],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex;position:relative;overflow:hidden;background-color:var(--ngd-diagram-background-color);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transform:translateZ(0);-webkit-font-smoothing:antialiased;outline:none}.pannable[_nghost-%COMP%]{cursor:grab}.pannable.panning[_nghost-%COMP%]{cursor:grabbing}[_nghost-%COMP%] .diagram-background-container[_ngcontent-%COMP%]{width:100%;height:100%}"]})},ap=class n{panelRegistry=h(dr);position=I("bottom-right");ngAfterViewInit(){this.panelRegistry?.register(this)}ngOnDestroy(){this.panelRegistry?.unregister()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-panel"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.position())},inputs:{position:[1,"position"]},ngContentSelectors:Tt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),je(0))},styles:["[_nghost-%COMP%]{overflow:hidden;border-radius:var(--ngd-minimap-border-radius);padding:var(--ngd-minimap-padding);background-color:var(--ngd-minimap-background);box-shadow:0 8px 16px -4px var(--ngd-minimap-shadow-color);border:1px solid var(--ngd-minimap-border-color);display:flex;flex-direction:column;gap:var(--ngd-minimap-padding)}"]})},dp=class n{viewportService=h(sn);step=I(.1);zoomPercentage=b(()=>Math.round(100*this.viewportService.scale()));canZoomIn=b(()=>this.viewportService.scale()+this.step()<=this.viewportService.maxZoom);canZoomOut=b(()=>this.viewportService.scale()-this.step()>=this.viewportService.minZoom);zoomIn(){let e=this.viewportService.scale(),t=(e+this.step())/e;this.viewportService.zoom(t)}zoomOut(){let e=this.viewportService.scale(),t=(e-this.step())/e;this.viewportService.zoom(t)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-zoom-controls"]],inputs:{step:[1,"step"]},decls:7,vars:3,consts:[[1,"zoom-controls-container"],["aria-label","Zoom out",1,"nav-button",3,"click","disabled"],[1,"label"],["aria-label","Zoom in",1,"nav-button",3,"click","disabled"]],template:function(t,o){t&1&&(U(0,"div",0)(1,"button",1),Ee("click",function(){return o.zoomOut()}),C(2,"\u2212"),B(),U(3,"span",2),C(4),B(),U(5,"button",3),Ee("click",function(){return o.zoomIn()}),C(6,"+"),B()()),t&2&&(p(),Ce("disabled",!o.canZoomOut()),p(3),H("",o.zoomPercentage(),"%"),p(),Ce("disabled",!o.canZoomIn()))},styles:[".zoom-controls-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.zoom-controls-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{text-align:center;font-size:var(--ngd-zoom-controls-font-size);font-weight:var(--ngd-zoom-controls-font-weight);color:var(--ngd-zoom-controls-color);-webkit-user-select:none;user-select:none}.nav-button[_ngcontent-%COMP%]{width:var(--ngd-nav-button-size);height:var(--ngd-nav-button-size);color:var(--ngd-nav-button-color);border-radius:var(--ngd-nav-button-border-radius);padding:var(--ngd-nav-button-padding);border:none;background:none;box-sizing:content-box;cursor:pointer;font-size:var(--ngd-nav-button-size);line-height:var(--ngd-nav-button-size)}.nav-button[_ngcontent-%COMP%]:hover:not(:disabled){background-color:var(--ngd-nav-button-background-color-hover)}.nav-button[_ngcontent-%COMP%]:active{color:var(--ngd-nav-button-color-active)}.nav-button[_ngcontent-%COMP%]:disabled{color:var(--ngd-nav-button-color-disabled);cursor:default}"]})},lp=class n{bounds=I.required();nodeStyle=I();computedStyle=b(()=>this.nodeStyle()??{});shape=b(()=>this.computedStyle().shape??"rect");hostClass=b(()=>{let e=this.computedStyle().cssClass;return e?`minimap-node ${e}`:"minimap-node"});cx=b(()=>this.bounds().x+this.bounds().width/2);cy=b(()=>this.bounds().y+this.bounds().height/2);radius=b(()=>Math.min(this.bounds().width,this.bounds().height)/2);rx=b(()=>this.bounds().width/2);ry=b(()=>this.bounds().height/2);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["g","ng-diagram-default-minimap-node",""]],hostVars:11,hostBindings:function(t,o){t&2&&(K("transform",o.bounds().transform),ft(o.hostClass()),Ue("fill",o.computedStyle().fill)("stroke",o.computedStyle().stroke)("stroke-width",o.computedStyle().strokeWidth,"px")("opacity",o.computedStyle().opacity))},inputs:{bounds:[1,"bounds"],nodeStyle:[1,"nodeStyle"]},decls:3,vars:1,template:function(t,o){if(t&1&&E(0,VC,1,3,":svg:circle")(1,jC,1,4,":svg:ellipse")(2,WC,1,4,":svg:rect"),t&2){let i;P((i=o.shape())==="circle"?0:i==="ellipse"?1:2)}},styles:["[_nghost-%COMP%]{fill:var(--ngd-minimap-node-color);opacity:var(--ngd-minimap-node-opacity)}"]})},cp=class n{diagramBounds=I.required();minimapTransform=I.required();rect=b(()=>{let e=this.diagramBounds(),t=this.minimapTransform();return{x:e.x*t.scale+t.offsetX,y:e.y*t.scale+t.offsetY,width:e.width*t.scale,height:e.height*t.scale}});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["rect","ng-diagram-minimap-diagram-bounds",""]],hostVars:4,hostBindings:function(t,o){t&2&&K("x",o.rect().x)("y",o.rect().y)("width",o.rect().width)("height",o.rect().height)},inputs:{diagramBounds:[1,"diagramBounds"],minimapTransform:[1,"minimapTransform"]},decls:0,vars:0,template:function(t,o){},styles:["[_nghost-%COMP%]{fill:var(--ngd-minimap-diagram-bounds-color);opacity:var(--ngd-minimap-diagram-bounds-opacity);stroke:none;pointer-events:none}"]})},ma=class n{diagramService=h(Mt);isInteracting=b(()=>{let e=this.diagramService.actionState();return!!e.dragging?.movementStarted||!!e.resize||!!e.rotation});static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},up=class n{viewportService=h(sn);flowCoreProvider=h(De);transform=I.required();viewport=I.required();dragState={isDragging:!1,lastPosition:{x:0,y:0},pointerId:null};ngOnDestroy(){this.removeDocumentListeners()}onPointerDown(e){e.button===0&&(e.preventDefault(),this.capturePointer(e),this.dragState.isDragging=!0,this.dragState.lastPosition={x:e.clientX,y:e.clientY},this.setPanningState(!0),this.attachDocumentListeners())}onPointerMove=e=>{if(!this.dragState.isDragging)return;let t=this.calculateClientDelta(e);this.dragState.lastPosition={x:e.clientX,y:e.clientY};let o=this.calculateViewportDelta(t);this.viewportService.moveViewportBy(o.x,o.y)};onPointerUp=e=>{this.dragState.isDragging=!1,this.setPanningState(!1),this.releasePointer(e),this.removeDocumentListeners()};capturePointer(e){e.target.setPointerCapture(e.pointerId),this.dragState.pointerId=e.pointerId}releasePointer(e){if(this.dragState.pointerId===null)return;let t=e.target;t.hasPointerCapture(this.dragState.pointerId)&&t.releasePointerCapture(this.dragState.pointerId),this.dragState.pointerId=null}attachDocumentListeners(){document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerUp)}removeDocumentListeners(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerUp)}setPanningState(e){let t=this.flowCoreProvider.provide().actionStateManager;e?t.panning={active:!0}:t.clearPanning()}calculateClientDelta(e){return{x:e.clientX-this.dragState.lastPosition.x,y:e.clientY-this.dragState.lastPosition.y}}calculateViewportDelta(e){let{scale:t}=this.transform(),{scale:o}=this.viewport();return{x:-e.x/t*o,y:-e.y/t*o}}static \u0275fac=function(t){return new(t||n)};static \u0275dir=me({type:n,selectors:[["","ngDiagramMinimapNavigation",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{transform:[1,"transform"],viewport:[1,"viewport"]}})},JS=n=>({x:-n.x/n.scale,y:-n.y/n.scale,width:(n.width??0)/n.scale,height:(n.height??0)/n.scale}),eE=(n,e)=>e.width===0||e.height===0?n:co([n,e]),tE=(n,e,t,o)=>n.width===0||n.height===0?1:Math.min((e-2*o)/n.width,(t-2*o)/n.height),nE=(n,e,t,o)=>({offsetX:(e-n.width*o)/2-n.x*o,offsetY:(t-n.height*o)/2-n.y*o}),oE=(n,e,t,o)=>{let i=tE(n,e,t,o),{offsetX:r,offsetY:s}=nE(n,e,t,i);return{scale:i,offsetX:r,offsetY:s}},t0={width:100,height:50},iE=(n,e=t0)=>{let t=n.size??e,o=n.angle??0;return{id:n.id,x:n.position.x,y:n.position.y,width:t.width,height:t.height,angle:o,transform:`rotate(${o} ${n.position.x+t.width/2} ${n.position.y+t.height/2})`}},rE=(n,e=t0)=>{if(n.length===0)return{x:0,y:0,width:0,height:0};let t=n.map(o=>{let i=o.size??e;return xp({x:o.position.x,y:o.position.y,width:i.width,height:i.height},o.angle??0)});return co(t)},sE=(n,e)=>({x:-n.x/n.scale*e.scale+e.offsetX,y:-n.y/n.scale*e.scale+e.offsetY,width:(n.width??0)/n.scale*e.scale,height:(n.height??0)/n.scale*e.scale}),pp=class extends Map{},hp=class{cache=new WeakMap;clear(){this.cache=new WeakMap}getOrCompute(e,t){let o=this.cache.get(e);if(o)return o;let i=t();return this.cache.set(e,i),i}},ya=class n{renderer=h(rn);cache=new hp;lastStyleFn;lastTemplateMap;computeMinimapNodes(e,t){return this.invalidateCacheIfNeeded(e,t),this.renderer.nodes().map(o=>this.cache.getOrCompute(o,()=>({bounds:iE(o),diagramNode:o,nodeStyle:e?.(o)??{},template:o.type?t.get(o.type)??null:null})))}computeDiagramBounds(){return Sp(this.renderer.nodes(),[])}invalidateCacheIfNeeded(e,t){e===this.lastStyleFn&&t===this.lastTemplateMap||(this.cache.clear(),this.lastStyleFn=e,this.lastTemplateMap=t)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},qt=class n extends Cn{diagramService=h(Mt);_nodes=$([]);_edges=$([]);_metadata=$({viewport:{x:0,y:0,scale:1}});nodes=this._nodes.asReadonly();edges=this._edges.asReadonly();metadata=this._metadata.asReadonly();constructor(){super(),fe(()=>{this.diagramService.isInitialized()&&(this.flowCore.model.onChange(this.modelListener),Ie(()=>this.modelListener({nodes:this.flowCore.model.getNodes(),edges:this.flowCore.model.getEdges(),metadata:this.flowCore.model.getMetadata()})))})}ngOnDestroy(){this.flowCoreProvider.isInitialized()&&this.flowCore.model.unregisterOnChange(this.modelListener)}getModel(){return this.flowCore.model}toJSON(){return this.flowCore.model.toJSON()}addEdges(e){this.flowCore.commandHandler.emit("addEdges",{edges:e})}addNodes(e){this.flowCore.commandHandler.emit("addNodes",{nodes:e})}getEdgeById(e){return this.flowCore.getEdgeById(e)||null}getNearestNodeInRange(e,t){return this.flowCore.getNearestNodeInRange(e,t)||null}getNearestPortInRange(e,t){return this.flowCore.getNearestPortInRange(e,t)||null}getNodeById(e){return this.flowCore.getNodeById(e)}getNodesInRange(e,t){return this.flowCore.getNodesInRange(e,t)}getConnectedEdges(e){return this.flowCore.getConnectedEdges(e)}getConnectedNodes(e){return this.flowCore.getConnectedNodes(e)}getNodeEnds(e){return this.flowCore.getNodeEnds(e)}getChildren(e){return this.flowCore.getChildren(e)}getChildrenNested(e){return this.flowCore.getChildrenNested(e)}isNestedChild(e,t){return this.flowCore.isNestedChild(e,t)}getParentHierarchy(e){return this.flowCore.getParentHierarchy(e)}getOverlappingNodes(e){return this.flowCore.getOverlappingNodes(e)}computePartsBounds(e,t){return Sp(e,t)}updateEdge(e,t){this.flowCore.commandHandler.emit("updateEdge",{id:e,edgeChanges:g({},t)})}updateEdgeData(e,t){this.flowCore.commandHandler.emit("updateEdge",{id:e,edgeChanges:{data:t}})}updateNode(e,t){this.flowCore.commandHandler.emit("updateNode",{id:e,nodeChanges:g({},t)})}updateNodeData(e,t){this.flowCore.commandHandler.emit("updateNode",{id:e,nodeChanges:{data:t}})}updateNodes(e){this.flowCore.commandHandler.emit("updateNodes",{nodes:e})}updateEdges(e){this.flowCore.commandHandler.emit("updateEdges",{edges:e})}deleteEdges(e){this.flowCore.commandHandler.emit("deleteEdges",{ids:e})}deleteNodes(e){this.flowCore.commandHandler.emit("deleteNodes",{ids:e})}modelListener=e=>{this._nodes.set(e.nodes),this._edges.set(e.edges),this._metadata.set(e.metadata)};static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},va=class n{modelService=h(qt);computeMinimapNodes(){return[]}computeDiagramBounds(){return rE(this.modelService.nodes())}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})},ba=class n{VIEWPORT_STROKE_WIDTH_CSS_VAR="--ngd-minimap-viewport-stroke-width";renderer=h(rn);flowCoreProvider=h(De);interactionTracker=h(ma);elementRef=h(rt);directStrategy=h(ya);virtualizedStrategy=h(va);strokePadding=$(1);position=I("bottom-right");width=I(200);height=I(150);showZoomControls=I(!0);nodeStyle=I();minimapNodeTemplateMap=I(new pp);deferNodeUpdates=I(!1);ngAfterViewInit(){this.strokePadding.set(this.getStrokePaddingFromCss())}isDiagramInitialized=this.renderer.isInitialized;viewport=this.renderer.viewport;hasValidViewport=b(()=>{let e=this.viewport();return!!e.width&&!!e.height&&e.width>0&&e.height>0});viewportRect=b(()=>sE(this.viewport(),this.transform()));strategy=b(()=>this.isDiagramInitialized()&&this.flowCoreProvider.provide().isVirtualizationActive?this.virtualizedStrategy:this.directStrategy);transform=b(()=>oE(this.combinedBounds(),this.width(),this.height(),this.strokePadding()));nodesGroupTransform=b(()=>{let e=this.transform();return`translate(${e.offsetX}, ${e.offsetY}) scale(${e.scale})`});isDeferringUpdates=b(()=>this.deferNodeUpdates()&&this.interactionTracker.isInteracting());cachedMinimapNodes=[];cachedDiagramBounds={x:0,y:0,width:0,height:0};minimapNodes=b(()=>{if(this.isDeferringUpdates())return this.cachedMinimapNodes;let e=this.strategy().computeMinimapNodes(this.nodeStyle(),this.minimapNodeTemplateMap());return this.cachedMinimapNodes=e,e});showDiagramBounds=b(()=>this.isDiagramInitialized()&&this.flowCoreProvider.provide().isVirtualizationActive);diagramBounds=b(()=>{if(this.isDeferringUpdates())return this.cachedDiagramBounds;let e=this.strategy().computeDiagramBounds();return this.cachedDiagramBounds=e,e});viewportBoundsInDiagramSpace=b(()=>JS(this.viewport()));combinedBounds=b(()=>eE(this.diagramBounds(),this.viewportBoundsInDiagramSpace()));getStrokePaddingFromCss(){let e=getComputedStyle(this.elementRef.nativeElement).getPropertyValue(this.VIEWPORT_STROKE_WIDTH_CSS_VAR).trim();return parseFloat(e)||1}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-minimap"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.position())},inputs:{position:[1,"position"],width:[1,"width"],height:[1,"height"],showZoomControls:[1,"showZoomControls"],nodeStyle:[1,"nodeStyle"],minimapNodeTemplateMap:[1,"minimapNodeTemplateMap"],deferNodeUpdates:[1,"deferNodeUpdates"]},features:[Io([ya,va,ma])],decls:5,vars:10,consts:[[3,"position"],["ngDiagramMinimapNavigation","",1,"minimap-svg",3,"transform","viewport"],["x","0","y","0",1,"minimap-background"],["ng-diagram-minimap-diagram-bounds","",3,"diagramBounds","minimapTransform"],[1,"minimap-viewport"],["ng-diagram-default-minimap-node","",3,"bounds","nodeStyle"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(t,o){t&1&&(v(0,"ng-diagram-panel",0),ge(),v(1,"svg",1),z(2,"rect",2),E(3,e_,5,3),y(),E(4,t_,1,0,"ng-diagram-zoom-controls"),y()),t&2&&(A("position",o.position()),p(),A("transform",o.transform())("viewport",o.viewport()),K("viewBox","0 0 "+o.width()+" "+o.height())("width",o.width())("height",o.height()),p(),K("width",o.width())("height",o.height()),p(),P(o.isDiagramInitialized()?3:-1),p(),P(o.showZoomControls()&&o.isDiagramInitialized()?4:-1))},dependencies:[up,Di,os,lp,cp,dp,ap],styles:["[_nghost-%COMP%]{display:block;position:absolute;pointer-events:auto;z-index:10}.bottom-right[_nghost-%COMP%]{bottom:var(--ngd-minimap-margin);right:var(--ngd-minimap-margin)}.bottom-left[_nghost-%COMP%]{bottom:var(--ngd-minimap-margin);left:var(--ngd-minimap-margin)}.top-right[_nghost-%COMP%]{top:var(--ngd-minimap-margin);right:var(--ngd-minimap-margin)}.top-left[_nghost-%COMP%]{top:var(--ngd-minimap-margin);left:var(--ngd-minimap-margin)}.minimap-svg[_ngcontent-%COMP%]{display:block;cursor:pointer;touch-action:none}.minimap-background[_ngcontent-%COMP%]{fill:transparent}.minimap-viewport[_ngcontent-%COMP%]{stroke:var(--ngd-minimap-viewport-stroke-color);stroke-width:var(--ngd-minimap-viewport-stroke-width);fill:transparent;pointer-events:none}.minimap-footer[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}"]})};var gp=class n extends Cn{copy(){this.flowCore.commandHandler.emit("copy")}cut(){this.flowCore.commandHandler.emit("cut")}paste(e){this.flowCore.commandHandler.emit("paste",{position:e})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=V({token:n,factory:n.\u0275fac})},fp=class n extends Cn{addToGroup(e,t){this.flowCore.commandHandler.emit("addToGroup",{groupId:e,nodeIds:t})}highlightGroup(e,t){this.flowCore.commandHandler.emit("highlightGroup",{groupId:e,nodes:t})}highlightGroupClear(){this.flowCore.commandHandler.emit("highlightGroupClear")}removeFromGroup(e,t){this.flowCore.commandHandler.emit("removeFromGroup",{groupId:e,nodeIds:t})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=V({token:n,factory:n.\u0275fac})},ao=class n extends Cn{moveNodesBy(e,t){this.flowCore.commandHandler.emit("moveNodesBy",{nodes:e,delta:t})}resizeNode(e,t,o,i){this.flowCore.commandHandler.emit("resizeNode",{id:e,size:t,position:o,disableAutoSize:i})}rotateNodeTo(e,t){this.flowCore.commandHandler.emit("rotateNodeTo",{nodeId:e,angle:t})}bringToFront(e,t){this.flowCore.commandHandler.emit("bringToFront",{nodeIds:e,edgeIds:t})}sendToBack(e,t){this.flowCore.commandHandler.emit("sendToBack",{nodeIds:e,edgeIds:t})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=V({token:n,factory:n.\u0275fac})},lo=class n extends Cn{modelService=h(qt);selection=b(()=>({nodes:this.modelService.nodes().filter(e=>e.selected),edges:this.modelService.edges().filter(e=>e.selected)}));select(e=[],t=[]){this.flowCore.commandHandler.emit("select",{nodeIds:e,edgeIds:t})}deselect(e=[],t=[]){this.flowCore.commandHandler.emit("deselect",{nodeIds:e,edgeIds:t})}deselectAll(){this.flowCore.commandHandler.emit("deselectAll")}deleteSelection(){this.flowCore.commandHandler.emit("deleteSelection")}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=V({token:n,factory:n.\u0275fac})};function n0(n){let a=n,{selected:e,measuredPorts:t,measuredBounds:o,computedZIndex:i,_internalId:r}=a;return un(a,["selected","measuredPorts","measuredBounds","computedZIndex","_internalId"])}function o0(n){let a=n,{sourcePosition:e,targetPosition:t,measuredLabels:o,computedZIndex:i,_internalId:r}=a;return un(a,["sourcePosition","targetPosition","measuredLabels","computedZIndex","_internalId"])}var mp=class n{effectRef=null;nodes=$([]);edges=$([]);metadata=$({viewport:{x:0,y:0,scale:1}});callbacks=[];constructor(){this.effectRef=fe(()=>{let e=this.nodes(),t=this.edges(),o=this.metadata();Ie(()=>{for(let i of this.callbacks)i({nodes:e,edges:t,metadata:o})})})}destroy(){this.effectRef?.destroy(),this.callbacks=[],this.nodes.set([]),this.edges.set([]),this.metadata.set({viewport:{x:0,y:0,scale:1}})}getNodes(){return this.nodes()}getEdges(){return this.edges()}updateNodes(e){this.nodes.update(t=>typeof e=="function"?e(t):e)}updateEdges(e){this.edges.update(t=>typeof e=="function"?e(t):e)}getMetadata(){return this.metadata()}updateMetadata(e){this.metadata.update(t=>typeof e=="function"?e(t):e)}onChange(e){this.callbacks.push(e)}unregisterOnChange(e){this.callbacks=this.callbacks.filter(t=>t!==e)}undo(){console.warn("Undo is not implemented in the current model. Please implement a custom ModelAdapter to support undo functionality.")}redo(){console.warn("Redo is not implemented in the current model. Please implement a custom ModelAdapter to support redo functionality.")}toJSON(){let e=this.metadata();return JSON.stringify({nodes:this.nodes().map(n0),edges:this.edges().map(o0),metadata:e})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac})};function i0(n={},e){return Ie(()=>{let t=()=>aE(new mp,n);return e?Ct(e,t):t()})}function aE(n,e,t){let o=()=>{let i=h(ir),r=()=>i.generateId();return e&&(n.updateNodes(e.nodes||[]),n.updateEdges(e.edges||[]),n.updateMetadata(s=>g(g({},s),e.metadata))),n.updateNodes(n.getNodes().map(s=>Zs(n0(s),r))),n.updateEdges(n.getEdges().map(s=>Zs(o0(s),r))),n};return t?Ct(t,o):o()}function r0(){return[ta,De,Js,rr,rn,at,ea,Mt,Yo,$n,sn,qt,lo,gp,ao,fp,Ko,la,ha,Zo,dr]}var Ip=.01;function Ea(n,e){return Math.abs(n.x-e.x)<Ip&&Math.abs(n.y-e.y)<Ip&&Math.abs(n.scale-e.scale)<Ip}function s0(n){return Ea(n,{x:0,y:0,scale:1})}function a0(n,e,t){return t?{publish:!0,hydrateConsumed:!0}:Ea(n,e)?{publish:!1,hydrateConsumed:!0}:s0(n)&&!s0(e)?{publish:!1,hydrateConsumed:!1}:{publish:!1,hydrateConsumed:!1}}var d0=(n,e)=>({basePortId:n,slotIndex:e});var Mp=(n,e)=>e===0?n:`${n}@${e}`;var Tp=n=>{let e=n.lastIndexOf("@");if(e>0){let t=Number(n.slice(e+1));if(Number.isInteger(t)&&t>=0)return d0(n.slice(0,e),t)}return d0(n,0)};var uo=n=>`in:${n}`,cr=n=>`out:${n}`,ei=n=>n.startsWith("in:")?n.slice(3):n,po=n=>n.startsWith("out:")?n.slice(4):n,ti=Mp,Hn=Tp;var pE={inputsConfigs:[],outputsConfigs:[],bypassPorts:{}},At=n=>new Map(n.map(e=>[e.type,e])),kp=(n,e)=>{let t=e.get(n);return t!==void 0?t:pE},hE=n=>{let e=n.ui.position.width;if(e!==void 0)return{width:e,height:n.ui.position.height??72}},Pa=(n,e)=>{let t=hE(n),o=kp(n.type,e),i=t!==void 0;return _(g({id:n.id,type:"lf-node",position:{x:n.ui.position.x,y:n.ui.position.y}},t!==void 0?{size:t}:{}),{autoSize:!i,resizable:!0,data:_(g({},n),{portsConfig:o})})},Rp=n=>({id:n.edgeId,type:"lf-edge",source:n.fromNodeId,target:n.toNodeId,sourcePort:cr(ti(...n.fromPort)),targetPort:uo(ti(...n.toPort)),data:{}});var ur="application/x-langflower-node-type";var gE={width:160,height:72},ni=class n{constructor(){this.byId=new Map}set(e,t){this.byId.set(e,t)}clear(e){this.byId.delete(e)}minFor(e){return this.byId.get(e)??gE}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var l0=(n,e,t,o,i=24,r=24)=>{let s=t.top+t.height,a=o.top+o.height,d=Math.max(s,a)+r,l=n.x+i,c=e.x-i;return[{x:n.x,y:n.y},{x:l,y:n.y},{x:l,y:d},{x:c,y:d},{x:c,y:e.y},{x:e.x,y:e.y}]},oi=n=>{if(n===null)return null;let e=n.size;if(e!==void 0&&Number.isFinite(e.width)&&Number.isFinite(e.height)&&e.width>0&&e.height>0)return{left:n.position.x,top:n.position.y,width:e.width,height:e.height};let t=n.measuredBounds;return t!==void 0&&Number.isFinite(t.width)&&Number.isFinite(t.height)&&t.width>0&&t.height>0?{left:t.x,top:t.y,width:t.width,height:t.height}:null};var Ia=n=>n.left+n.width/2,c0=n=>n.top+n.height/2,u0=(n,e,t)=>n.some(o=>o.source===t&&o.target===e),pr=n=>{if(!n.hasReverseEdge)return!1;let{sourceBounds:e,targetBounds:t,sourcePort:o,targetPort:i}=n;if(e!=null&&t!=null){let d=c0(e),l=c0(t),c=d>l,u=l>d;if(!c&&!u)return Ia(t)<Ia(e);let w=c?e:t;return Ia(c?t:e)>Ia(w)+40?u:c}if(o===void 0||i===void 0)return!1;let r=o.y>i.y,s=i.y>o.y;return!r&&!s?i.x<o.x:(s?o.x>i.x+40:i.x>o.x+40)?s&&i.x<o.x:r};var p0=(n,e,t,o={hasReverseEdge:!1})=>{let{sourcePoint:i,targetPoint:r,sourceNode:s,targetNode:a}=n,d=oi(s??null),l=oi(a??null);return!pr({sourceBounds:d,targetBounds:l,sourcePort:i,targetPort:r,hasReverseEdge:o.hasReverseEdge})||d===null||l===null?e(n,t):[...l0(i,r,d,l)]};var h0=(n,e)=>({name:"orthogonal",computePoints(t,o){let i=t.sourceNode?.id??t.edge.source,r=t.targetNode?.id??t.edge.target;return p0(t,(s,a)=>n.computePoints(s,a),o,{hasReverseEdge:e(i,r)})},computeSvgPath(t,o){return n.computeSvgPath(t,o)},computePointOnPath(t,o){return n.computePointOnPath?.(t,o)??t[0]??{x:0,y:0}},computePointAtDistance(t,o){return n.computePointAtDistance?.(t,o)??t[0]??{x:0,y:0}}});var g0=n=>{let e=n.flowCore.edgeRoutingManager.getRouting("orthogonal");if(e===void 0)throw new Error("ng-diagram orthogonal routing is not registered");return e};var Np=new Map,fE=(n,e)=>{if(e.type==="reset")return Np;if(e.type==="output"){let o=new Map(n);return o.set(e.nodeId,e.atMs),o}if(e.nodeIds.length===0)return n;let t=new Map(n);for(let o of e.nodeIds)t.has(o)||t.set(o,e.atMs);return t},mE=n=>{if(n===null)return[];let e=new Set;for(let t of n.events)t.kind==="output-emitted"&&e.add(t.nodeId);return[...e]},f0=n=>{let e=n.now??(()=>Date.now()),t=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(()=>({type:"reset"}))),o=n.executionFeedSnapshot$.pipe(N(r=>r===null?{type:"reset"}:{type:"stampActive",nodeIds:mE(r),atMs:e()})),i=n.outputEmitted$.pipe(xe(r=>typeof r.portId=="string"),N(r=>({type:"output",nodeId:r.nodeId,atMs:e()})));return ce(t,o,i).pipe(We(fE,Np),ae(Np),Pe(1))};var hr={sections:[],userTurns:[],lastRunIdByNode:new Map},m0=n=>{let e=n[n.length-1];return e!==void 0&&e.status==="active"?n.length-1:-1},yE=(n,e)=>{let t=n[n.length-1];return typeof e=="string"&&t!==void 0&&typeof t.value=="string"?[...n.slice(0,-1),{value:t.value+e}]:[...n,{value:e}]},y0=(n,e)=>{if(e<0)return n;let t=n[e];return t===void 0||t.status!=="active"?n:[...n.slice(0,e),_(g({},t),{status:"completed"})]},v0=(n,e,t)=>{let o=n.lastRunIdByNode.get(e);if(o===t)return n;let i=new Map(n.lastRunIdByNode);return i.set(e,t),o===void 0?_(g({},n),{lastRunIdByNode:i}):{sections:n.sections.filter(r=>!(r.nodeId===e&&r.runId===o)),userTurns:n.userTurns.filter(r=>!(r.nodeId===e&&r.runId===o)),lastRunIdByNode:i}},vE=(n,e)=>`${n.runId}:${n.nodeId}:${n.portId}:${e}`,Da=(n,e,t,o)=>{let i=v0(n,e.nodeId,e.runId);if(e.state==="pending")return{sections:i.sections,userTurns:i.userTurns,lastRunIdByNode:i.lastRunIdByNode};let{sections:r,userTurns:s}=i,a=m0(r),d=a>=0?r[a]:void 0,l=d!==void 0&&d.nodeId===e.nodeId&&d.portId===e.portId,c=e.state==="error"?"failed":"active";if(l&&d!==void 0){let S=d.feedRole??o,k=g(_(g({},d),{status:c,chunks:e.state==="error"?[...d.chunks,{value:e.value}]:yE(d.chunks,e.value)}),S!==void 0?{feedRole:S}:{});return{sections:[...r.slice(0,a),k],userTurns:s,lastRunIdByNode:i.lastRunIdByNode}}let u=y0(r,a),w=g({id:vE(e,u.length),runId:e.runId,nodeId:e.nodeId,nodeLabel:t,portId:e.portId,status:c,chunks:[{value:e.value}]},o!==void 0?{feedRole:o}:{});return{sections:[...u,w],userTurns:s,lastRunIdByNode:i.lastRunIdByNode}},Ma=(n,e)=>{let t=e.runId.startsWith("local:"),o=t?n:v0(n,e.nodeId,e.runId),i=t?o.userTurns:o.userTurns.filter(d=>!(d.runId.startsWith("local:")&&d.nodeId===e.nodeId&&d.portId===e.portId&&d.text===e.text)),r=_(g({},o),{userTurns:i});if(r.userTurns.some(d=>d.runId===e.runId&&d.nodeId===e.nodeId&&d.portId===e.portId&&d.text===e.text)||t&&r.userTurns.some(d=>d.nodeId===e.nodeId&&d.portId===e.portId&&d.text===e.text))return r;let a={id:`${e.runId}:${e.nodeId}:${e.portId}:${r.userTurns.length}`,runId:e.runId,nodeId:e.nodeId,nodeLabel:e.nodeLabel,portId:e.portId,text:e.text,atSectionCount:r.sections.length,anchorSectionId:[...r.sections].reverse().find(d=>d.nodeId===e.nodeId)?.id};return _(g({},r),{userTurns:[...r.userTurns,a]})},xt=n=>{if(n.feedRole!==void 0)return n.feedRole;if(n.portId==="reasoning")return"reasoning";if(n.portId==="draftResponse")return"draft";if(n.portId==="response")return"result";if(n.portId==="recovery")return"recovery"},Op=n=>n==="reasoning"||n==="draft"||n==="tool"||n==="shell",gr=n=>{let e=m0(n.sections);return _(g({},n),{sections:y0(n.sections,e)})},b0=(n,e,t)=>{for(let o=n.length-1;o>=0;o--){let i=n[o];if(i!==void 0&&i.nodeId===e&&i.portId===t)return i.chunks[i.chunks.length-1]?.value}};var Ap=1e4,bE=n=>{switch(n){case"waiting":return"waiting for first token";case"reasoning":return"reasoning";case"drafting":return"drafting";case"tool":return"running tool";case"recovery":return"recovery"}},wE=n=>{let e=n.segments[n.segments.length-1];if(e!==void 0){if(e.kind==="recovery")return"recovery";if(e.kind==="tool")return"tool";if(e.kind==="draft")return"drafting"}let t=n.peekSection;if(t!==void 0){let i=xt(t);if(i==="reasoning")return"reasoning";if(i==="draft")return"drafting";if(i==="recovery")return"recovery";if(i==="tool"||i==="shell")return"tool"}let o=n.sections[n.sections.length-1];if(o!==void 0){let i=xt(o);if(i==="recovery")return"recovery";if(i==="reasoning")return"reasoning";if(i==="draft")return"drafting";if(i==="tool"||i==="shell")return"tool"}return"waiting"},Lp=(n,e,t=Ap)=>n===void 0?!1:e-n>=t,CE=(n,e)=>n===void 0?null:Math.max(0,Math.floor((e-n)/1e3)),w0=(n,e,t)=>{let o=bE(wE(n));if(!Lp(e,t))return o;let i=CE(e,t);return i===null?o:`${o} \xB7 last event ${i}s ago`};var C0=n=>{let e=new Map,t=r=>{let s=e.get(r);if(s===void 0)return e.set(r,r),r;if(s===r)return r;let a=t(s);return e.set(r,a),a},o=(r,s)=>{let a=t(r),d=t(s);a!==d&&e.set(a,d)};for(let r of n.nodes)t(r.id);for(let r of n.edges)o(r.fromNodeId,r.toNodeId);let i=new Map;for(let r of n.nodes){let s=t(r.id),a=i.get(s);a===void 0?i.set(s,[r.id]):a.push(r.id)}return[...i.values()]},Ta=(n,e)=>n.nodes.filter(t=>e.get(t.type)?.chatEntry===!0).map(t=>t.id),_0=(n,e)=>{let t=new Set(Ta(n,e));return t.size===0?n.nodes.length>0:C0(n).some(o=>o.every(i=>!t.has(i)))},x0=(n,e,t)=>{let o=new Set(Ta(n,e));if(o.size===0)return!1;let i=C0(n).find(r=>r.includes(t));return i===void 0?!1:i.some(r=>o.has(r))};var fr=100,mr=n=>n==="text-multiline"?{flex:1,minHeightPx:fr}:typeof n=="object"&&n.type==="text-multiline"?{flex:n.flex??1,minHeightPx:n.minHeightPx??fr}:null;var Ze="steerControl",Fp=n=>{if(typeof n!="object"||n===null||Array.isArray(n))return!1;let e=n.kind;return e==="pause"||e==="resume"?!0:e==="steer"?typeof n.text=="string":!1},Un=n=>Fp(n)&&n.kind==="pause",yr=n=>Fp(n)&&(n.kind==="steer"||n.kind==="resume");var vr="recovery",br=n=>{if(typeof n!="object"||n===null)return!1;let e=n;return(e.code==="retry"||e.code==="suspended")&&typeof e.text=="string"},ka=n=>br(n)&&n.code==="suspended",zp=n=>br(n)?n.text:typeof n=="string"?n:"";var ii=n=>{let e=new Map;for(let t of n.activeWorkflow?.graph.nodes??[])e.set(t.id,t.type);return e},Bp=(n,e)=>{let t=new Map;for(let o of n.activeWorkflow?.graph.nodes??[]){let i=o.ui.label?.trim()||e.get(o.type)?.displayName||o.type;t.set(o.id,i)}return t},P0=(n,e)=>{let t=At(e.nodes),o=ii(n);return{labels:Bp(n,t),paletteByType:t,nodeTypeById:o}},xn=(n,e,t)=>{let o=e.get(t);return o===void 0?void 0:n.get(o)},ME=new Set(["none","reasoning","draft","tool","shell","result","recovery"]),ri=(n,e,t,o)=>{let s=xn(n,e,t)?.outputsConfigs.find(a=>a.portId===o)?.feed?.role;return typeof s=="string"&&ME.has(s)?s:void 0},wr=(n,e,t)=>{if(Un(t))return"";if(yr(t))return t.kind==="steer"?t.text.trim():"";let i=n.inputsConfigs.find(r=>r.portId===e)?.hitl;return i===void 0?typeof t=="string"?t.trim():"":i.kind==="button"?i.label.trim():typeof t=="string"?t.trim():t==null?"":String(t)};var TE=(n,e,t)=>{if(e.type==="snapshot")return{map:t.replay(e.snap),runId:e.snap?.runId??null};if(e.type==="output"){let o=e.event;if(typeof o.portId=="symbol"||o.state!=="value"&&o.state!=="pending"&&o.state!=="error")return n;let i=t.keysFromOutput(o),r=new Map(n.map);for(let s of i)r.set(s,o.state);return{map:r,runId:o.runId}}return e.type==="reset"?e.runId===n.runId?n:{map:new Map,runId:e.runId}:n},kE=n=>{let e=new Map;if(n===null)return e;for(let t of n.events)t.kind==="output-emitted"&&typeof t.portId=="string"&&(t.state==="value"||t.state==="pending"||t.state==="error")&&e.set(`${t.nodeId}:${t.portId}`,t.state);return e},RE=n=>{let e=new Map;if(n===null)return e;for(let t of n.events)if(t.kind==="output-emitted"&&typeof t.portId=="string"&&(t.state==="pending"||t.state==="value"||t.state==="error"))for(let o of t.edgeIds??[])e.set(o,t.state);return e},NE={replay:kE,keysFromOutput:n=>typeof n.portId=="string"?[`${n.nodeId}:${n.portId}`]:[]},OE={replay:RE,keysFromOutput:n=>n.edgeIds??[]},I0=(n,e)=>{let t=n.executionFeedSnapshot$.pipe(N(r=>({type:"snapshot",snap:r}))),o=n.outputEmitted$.pipe(N(r=>({type:"output",event:r}))),i=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(r=>({type:"reset",runId:r})));return ce(t,o,i).pipe(We((r,s)=>TE(r,s,e),{map:new Map,runId:null}),N(r=>r.map),ae(new Map),Pe(1))},D0=n=>I0(n,NE),M0=n=>I0(n,OE);var $p=(n,e)=>e.inputsConfigs.filter(t=>typeof t.portId=="string"&&t.hitl!==void 0).map(t=>({nodeId:n,portId:t.portId,config:t.hitl})),AE=(n,e)=>$p(n,e).filter(t=>t.portId!==Ze),Hp=(n,e,t)=>{let o=n.inputsConfigs.find(i=>i.portId===t);return o===void 0||o.hitl!==void 0?!1:AE(e,n).length>0},si=(n,e)=>{let t=n.inputsConfigs.find(o=>o.portId===e);return t!==void 0&&t.hitl!==void 0},Up=(n,e)=>n!==Ze?"ignore":Un(e)?"open":yr(e)?"close":"ignore";var k0=n=>gr(n),T0=(n,e)=>Ma(k0(n),e),LE=(n,e)=>{if(e.type==="snapshot"){if(e.snap===null)return hr;let t=e.snap.events.reduce((o,i)=>{if(i.kind==="output-emitted"&&typeof i.portId=="string")return Da(o,{runId:i.runId,nodeId:i.nodeId,portId:i.portId,state:i.state,value:i.value},e.labels.get(i.nodeId)??i.nodeId,ri(e.paletteByType,e.nodeTypeById,i.nodeId,i.portId));if(i.kind==="input-received"&&typeof i.portId=="string"&&i.state==="value"){let r=o;i.portId===Ze&&Un(i.value)&&(r=k0(o));let s=xn(e.paletteByType,e.nodeTypeById,i.nodeId);if(s===void 0||!si(s,i.portId))return r;let a=wr(s,i.portId,i.value);return a.length===0?r:i.portId===Ze?T0(r,{runId:i.runId,nodeId:i.nodeId,nodeLabel:e.labels.get(i.nodeId)??i.nodeId,portId:i.portId,text:a}):Ma(r,{runId:i.runId,nodeId:i.nodeId,nodeLabel:e.labels.get(i.nodeId)??i.nodeId,portId:i.portId,text:a})}return i.kind==="done"?gr(o):o},hr);return e.snap.status==="running"?t:gr(t)}if(e.type==="output"){let{event:t,label:o,feedRole:i}=e;return typeof t.portId=="symbol"?n:Da(n,{runId:t.runId,nodeId:t.nodeId,portId:t.portId,state:t.state,value:t.value},o,i)}return e.type==="user"?e.portId===Ze?T0(n,{runId:e.runId,nodeId:e.nodeId,nodeLabel:e.label,portId:e.portId,text:e.text}):Ma(n,{runId:e.runId,nodeId:e.nodeId,nodeLabel:e.label,portId:e.portId,text:e.text}):e.type==="permissionAsk"?Da(n,{runId:e.ask.runId,nodeId:e.ask.nodeId,portId:"permission.ask",state:"value",value:`permission.ask: ${e.ask.summary}`},e.label,"tool"):gr(n)},R0=n=>{let e=Ne([n.workflowSnapshot$,n.paletteSnapshot$]).pipe(N(([a,d])=>P0(a,d)),Pe(1)),t=n.executionFeedSnapshot$.pipe(ve(a=>e.pipe(Jt(1),N(({labels:d,paletteByType:l,nodeTypeById:c})=>({type:"snapshot",snap:a,labels:d,paletteByType:l,nodeTypeById:c}))))),o=e.pipe(ve(({labels:a,paletteByType:d,nodeTypeById:l})=>n.outputEmitted$.pipe(N(c=>({type:"output",event:c,label:a.get(c.nodeId)??c.nodeId,feedRole:typeof c.portId=="string"?ri(d,l,c.nodeId,c.portId):void 0}))))),i=e.pipe(ve(({labels:a,paletteByType:d,nodeTypeById:l})=>n.inputReceived$.pipe(N(c=>{if(typeof c.portId!="string"||c.state!=="value")return null;if(c.portId===Ze&&Un(c.value))return{type:"settle"};let u=xn(d,l,c.nodeId);if(u===void 0||!si(u,c.portId))return null;let w=wr(u,c.portId,c.value);return w.length===0?null:{type:"user",runId:c.runId,nodeId:c.nodeId,portId:c.portId,label:a.get(c.nodeId)??c.nodeId,text:w}}),xe(c=>c!==null)))),r=ce(n.runnerDone$,n.runnerInterrupted$).pipe(N(()=>({type:"settle"}))),s=e.pipe(ve(({labels:a})=>n.permissionAsk$.pipe(N(d=>({type:"permissionAsk",ask:d,label:a.get(d.nodeId)??d.nodeId})))));return ce(t,o,i,n.feedLocal$,s,r).pipe(We(LE,hr),ae(hr),Pe(1))};var ai=(n,e,t)=>{if(t==="open"){if(n.has(e))return n;let i=new Set(n);return i.add(e),i}if(!n.has(e))return n;let o=new Set(n);return o.delete(e),o},FE=(n,e,t)=>{let o=new Set;for(let i of n){if(i.kind==="output-emitted"&&typeof i.portId=="string"&&i.state==="value"){(ri(e,t,i.nodeId,i.portId)==="recovery"||i.portId===vr)&&ka(i.value)&&o.add(i.nodeId);continue}if(i.kind!=="input-received"||typeof i.portId!="string"||i.state!=="value")continue;let r=xn(e,t,i.nodeId);if(r===void 0)continue;let s=Up(i.portId,i.value);if(s==="open"){o.add(i.nodeId);continue}if(s==="close"){o.delete(i.nodeId);continue}i.portId!==Ze&&(si(r,i.portId)?o.delete(i.nodeId):Hp(r,i.nodeId,i.portId)&&o.add(i.nodeId))}return o},zE=(n,e)=>{if(e.type==="hardReset")return e.runId!==void 0&&e.runId===n.runId?n:{ids:new Set,runId:e.runId??null,live:!1};if(e.type==="hydrate")return n.live?n:{ids:FE(e.events,e.palette,e.nodeTypes),runId:n.runId,live:!1};if(e.type==="open")return{ids:ai(n.ids,e.nodeId,"open"),runId:n.runId,live:!0};if(e.type==="resolve")return{ids:ai(n.ids,e.nodeId,"close"),runId:n.runId,live:!0};if(e.type==="output")return(e.feedRole==="recovery"||e.portId===vr)&&ka(e.value)?{ids:ai(n.ids,e.nodeId,"open"),runId:n.runId,live:!0}:n;let t=xn(e.palette,e.nodeTypes,e.nodeId);if(t===void 0)return n;let o=Up(e.portId,e.value);return o==="open"||o==="close"?{ids:ai(n.ids,e.nodeId,o),runId:n.runId,live:!0}:e.portId===Ze?n:si(t,e.portId)?{ids:ai(n.ids,e.nodeId,"close"),runId:n.runId,live:!0}:Hp(t,e.nodeId,e.portId)?{ids:ai(n.ids,e.nodeId,"open"),runId:n.runId,live:!0}:n},N0=n=>{let e=Ne([n.workflowSnapshot$,n.paletteSnapshot$]).pipe(N(([l,c])=>({palette:At(c.nodes),nodeTypes:ii(l)})),Pe(1)),t=e.pipe(ve(({palette:l,nodeTypes:c})=>n.inputReceived$.pipe(N(u=>({type:"input",nodeId:u.nodeId,portId:u.portId,value:u.value,palette:l,nodeTypes:c}))))),o=e.pipe(ve(({palette:l,nodeTypes:c})=>n.outputEmitted$.pipe(xe(u=>typeof u.portId=="string"&&u.state==="value"),N(u=>({type:"output",nodeId:u.nodeId,portId:u.portId,value:u.value,feedRole:ri(l,c,u.nodeId,u.portId)}))))),i=n.hitlOpenLocal$.pipe(N(l=>({type:"open",nodeId:l}))),r=n.hitlResolveLocal$.pipe(N(l=>({type:"resolve",nodeId:l}))),s=Ne([n.executionFeedSnapshot$,n.workflowSnapshot$,n.paletteSnapshot$]).pipe(N(([l,c,u])=>({type:"hydrate",events:l===null?[]:l.events,palette:At(u.nodes),nodeTypes:ii(c)}))),a=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(l=>({type:"hardReset",runId:l}))),d=ce(n.runnerInterrupted$,n.runnerDone$).pipe(N(()=>({type:"hardReset"})));return ce(t,o,i,r,s,a,d).pipe(We(zE,{ids:new Set,runId:null,live:!1}),N(l=>l.ids),ae(new Set),Pe(1))};var BE=(n,e)=>e.type==="hardReset"?[]:e.type==="resolve"?n.filter(o=>o.askId!==e.askId):[...n.filter(o=>o.askId!==e.ask.askId),e.ask],O0=n=>{let e=n.permissionAsk$.pipe(N(i=>({type:"ask",ask:i}))),t=n.permissionResolveLocal$.pipe(N(i=>({type:"resolve",askId:i}))),o=ce(n.runnerDone$,n.runnerInterrupted$,n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(()=>({type:"hardReset"})));return ce(e,t,o).pipe(We(BE,[]),ae([]),Pe(1))};var $E=(n,e)=>e.type==="snapshot"?{running:e.running,currentRunId:e.runId}:e.type==="start"?e.runId===n.currentRunId?n.running?n:{running:!0,currentRunId:e.runId}:{running:!0,currentRunId:e.runId}:{running:!1,currentRunId:null},A0=n=>{let e=n.executionFeedSnapshot$.pipe(N(i=>({type:"snapshot",running:i!==null&&i.status==="running",runId:i!==null&&i.status==="running"?i.runId:null}))),t=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(i=>({type:"start",runId:i}))),o=ce(n.runnerDone$,n.runnerInterrupted$).pipe(N(()=>({type:"stop"})));return ce(e,t,o).pipe(We($E,{running:!1,currentRunId:null}),N(i=>i.running),ae(!1),Pe(1))};var Te=class n{constructor(){this.bridge=h(de);this.paletteSnapshot$=Ne([this.bridge.cached["palette.snapshot"],this.bridge.cached["customPalette.snapshot"].pipe(ae(Wo))]).pipe(N(([e,t])=>zs(e,t)),Pe(1));this.workflowSnapshot$=this.bridge.cached["workflow.current.snapshot"];this.executionFeedSnapshot$=this.bridge.cached["executionFeed.snapshot"];this.outputEmitted$=this.bridge.raw["runner.output-emitted"].pipe(xe(e=>e.kind==="output-emitted"));this.inputReceived$=this.bridge.raw["runner.input-received"].pipe(xe(e=>e.kind==="input-received"&&typeof e.portId=="string"&&e.state==="value"));this.runnerStarted$=this.bridge.raw["runner.started"].pipe(xe(e=>typeof e=="string"));this.runnerStartNodeStarted$=this.bridge.raw["runner.startNode.started"].pipe(xe(e=>typeof e=="string"));this.runnerDone$=this.bridge.raw["runner.done"];this.runnerInterrupted$=this.bridge.raw["runner.interrupted"];this.permissionAsk$=this.bridge.raw["runner.permission.ask"]??Pt;this.paletteByType$=this.paletteSnapshot$.pipe(N(e=>At(e.nodes)),ae(new Map),Pe(1));this.nodeTypeById$=this.workflowSnapshot$.pipe(N(e=>ii(e)),ae(new Map),Pe(1));this.activeGraph$=this.workflowSnapshot$.pipe(N(e=>e.activeWorkflow?.graph??null),ae(null),Pe({bufferSize:1,refCount:!1}));this.nodeLabels$=ce(ie(new Map),Ne([this.workflowSnapshot$,this.paletteSnapshot$]).pipe(N(([e,t])=>Bp(e,At(t.nodes))))).pipe(Pe(1));this.paletteByType=se(this.paletteByType$,{initialValue:new Map});this.nodeTypeById=se(this.nodeTypeById$,{initialValue:new Map});this.nodeLabels=se(this.nodeLabels$,{initialValue:new Map});this.activeGraph=se(this.activeGraph$,{initialValue:null});this.hasRunnableGraph=b(()=>this.nodeTypeById().size>0);this.hasPlainStartTargets=b(()=>{let e=this.activeGraph();return e===null?!1:_0(e,this.paletteByType())});this.chatStartPending=$(!1);this.idleChatEntryNodeIds=b(()=>{if(this.isRunning()||this.chatStartPending())return[];let e=this.activeGraph();return e===null?[]:Ta(e,this.paletteByType())});this.feedLocal$=new ot;this.feedState$=R0({workflowSnapshot$:this.workflowSnapshot$,paletteSnapshot$:this.paletteSnapshot$,executionFeedSnapshot$:this.executionFeedSnapshot$,outputEmitted$:this.outputEmitted$,inputReceived$:this.inputReceived$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$,permissionAsk$:this.permissionAsk$,feedLocal$:this.feedLocal$});this.feedSections=se(this.feedState$.pipe(N(e=>e.sections)),{initialValue:[]});this.feedUserTurns=se(this.feedState$.pipe(N(e=>e.userTurns)),{initialValue:[]});this.lastActivityByNode$=f0({outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$,executionFeedSnapshot$:this.executionFeedSnapshot$});this.lastActivityByNode=se(this.lastActivityByNode$,{initialValue:new Map});this.livenessNowMs=se(eg(1e3).pipe(N(()=>Date.now())),{initialValue:Date.now()});this.isRunning$=A0({executionFeedSnapshot$:this.executionFeedSnapshot$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$});this.isRunning=se(this.isRunning$,{initialValue:!1});this.nodeOutputStates$=D0({executionFeedSnapshot$:this.executionFeedSnapshot$,outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$});this.nodeOutputStates=se(this.nodeOutputStates$,{initialValue:new Map});this.edgeStates$=M0({executionFeedSnapshot$:this.executionFeedSnapshot$,outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$});this.edgeStates=se(this.edgeStates$,{initialValue:new Map});this.hitlOpenLocal$=new ot;this.hitlResolveLocal$=new ot;this.hitlTriggeredNodes$=N0({workflowSnapshot$:this.workflowSnapshot$,paletteSnapshot$:this.paletteSnapshot$,executionFeedSnapshot$:this.executionFeedSnapshot$,inputReceived$:this.inputReceived$,outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$,hitlOpenLocal$:this.hitlOpenLocal$,hitlResolveLocal$:this.hitlResolveLocal$});this.hitlTriggeredNodes=se(this.hitlTriggeredNodes$,{initialValue:new Set});this.hitlDrafts=$(new Map);this.permissionResolveLocal$=new ot;this.pendingPermissionAsks$=O0({permissionAsk$:this.permissionAsk$,permissionResolveLocal$:this.permissionResolveLocal$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$});this.pendingPermissionAsks=se(this.pendingPermissionAsks$,{initialValue:[]});ce(this.runnerDone$,this.runnerInterrupted$).subscribe(()=>{this.hitlDrafts.set(new Map),this.chatStartPending.set(!1)}),this.isRunning$.pipe(xe(e=>e)).subscribe(()=>{this.chatStartPending.set(!1)})}nodeStatus(e){if(this.hitlTriggered(e)||this.pendingPermissionAsks().some(i=>i.nodeId===e))return"hitl";let t=`${e}:`,o=[];for(let[i,r]of this.nodeOutputStates())i.startsWith(t)&&o.push(r);return o.length===0?"inactive":o.some(i=>i==="error")?"error":o.some(i=>i==="pending")?"pending":"value"}latestOutputValue(e,t){return b0(this.feedSections(),e,t)}hitlTriggered(e){return this.hitlTriggeredNodes().has(e)||this.idleChatEntryNodeIds().includes(e)}hitlTriggeredNodeIds(){let e=[...this.hitlTriggeredNodes()],t=this.idleChatEntryNodeIds();if(t.length===0)return e;let o=new Set(e),i=[...e];for(let r of t)o.has(r)||(o.add(r),i.push(r));return i}nodeClusterRequiresChatEntry(e){let t=this.activeGraph();return t===null?!1:x0(t,this.paletteByType(),e)}hitlControls(e){let t=xn(this.paletteByType(),this.nodeTypeById(),e);return t!==void 0?$p(e,t):[]}nodeLabel(e){return this.nodeLabels().get(e)??e}lastActivityMs(e){return this.lastActivityByNode().get(e)}pausableFeedIsQuiet(){let e=this.pausableFeedNodeId();return e===null?!1:Lp(this.lastActivityMs(e),this.livenessNowMs(),Ap)}hitlDraft(e,t){return this.hitlDrafts().get(`${e}:${t}`)??""}setHitlDraft(e,t,o){this.hitlDrafts.update(i=>{let r=new Map(i);return r.set(`${e}:${t}`,o),r})}requestSoftPause(){let e=this.pausableFeedNodeId();e!==null&&(this.feedLocal$.next({type:"settle"}),this.hitlOpenLocal$.next(e),this.bridge.raw["runner.hitl.event"]?.next({nodeId:e,portId:Ze,payload:{kind:"pause"}}))}latestFeedNodeId(){let e=this.feedSections();return e[e.length-1]?.nodeId??null}pausableFeedNodeId(){let e=this.latestFeedNodeId();return e===null||this.hitlTriggeredNodeIds().includes(e)?null:this.workingSteerNodeIds().includes(e)?e:null}workingSteerNodeIds(){let e=this.activeGraph();if(e===null||!this.isRunning())return[];let t=new Set(this.feedSections().filter(i=>i.status==="active").map(i=>i.nodeId)),o=[];for(let i of e.nodes){let r=this.nodeStatus(i.id);if(!(r==="pending"||r!=="hitl"&&r!=="error"&&t.has(i.id)))continue;this.paletteByType().get(i.type)?.inputsConfigs.some(d=>d.portId===Ze)&&o.push(i.id)}return o}submitHitl(e){let t=e[0],o=e[1],i=e[2],r=o===Ze&&typeof i=="string"?{kind:"steer",text:i}:i,s=this.nodeTypeById().get(t),a=s!==void 0?this.paletteByType().get(s):void 0,d=a?.chatEntry===!0,l=a!==void 0?wr(a,o,r):typeof r=="string"?r.trim():"";this.bridge.raw["runner.hitl.event"]?.next({nodeId:t,portId:o,payload:r}),this.hitlResolveLocal$.next(t),l.length>0&&this.feedLocal$.next({type:"user",runId:`local:${t}`,nodeId:t,portId:o,label:this.nodeLabel(t),text:l}),d&&this.chatStartPending.set(!0),this.hitlDrafts.update(c=>{let u=`${t}:`,w=new Map;for(let[S,k]of c)S.startsWith(u)||w.set(S,k);return w})}submitPermissionReply(e,t){this.bridge.raw["runner.permission.reply"]?.next({runId:e.runId,askId:e.askId,decision:t}),this.permissionResolveLocal$.next(e.askId)}wireStatus(e){return this.edgeStates().get(e)??"inactive"}getEventsForNode(e){return this.outputEmitted$.pipe(xe(t=>t.nodeId===e))}getEventsForEdge(e){return this.outputEmitted$.pipe(xe(t=>(t.edgeIds??[]).includes(e)))}getEventsForPort(e,t){return this.outputEmitted$.pipe(xe(o=>o.nodeId===e&&o.portId===t))}getInputEventsForPort(e,t){return this.inputReceived$.pipe(xe(o=>o.nodeId===e&&o.portId===t))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var L0=300,HE=(n,e=L0)=>n.pipe(xe(t=>t.state==="value"),ve(()=>$r(ie("pulseOn"),Jh(e).pipe(N(()=>"pulseOff"))))),Sn=(n,e=L0)=>HE(n,e).pipe(N(t=>t==="pulseOn"),ae(!1));var UE="6 4",Ra=class n{constructor(){this.edge=I.required();this.execution=h(Te);this.diagramModel=h(qt);this.status=b(()=>this.execution.wireStatus(this.edge().id));this.selected=b(()=>this.edge().selected===!0);this.backEdgeInput=b(()=>{let e=this.edge(),t=this.diagramModel.nodes(),o=t.find(r=>r.id===e.source)??null,i=t.find(r=>r.id===e.target)??null;return{sourceBounds:oi(o),targetBounds:oi(i),sourcePort:e.sourcePosition,targetPort:e.targetPosition,hasReverseEdge:u0(this.diagramModel.edges(),e.source,e.target)}});this.isBack=b(()=>pr(this.backEdgeInput()));this.dash=b(()=>{let e=this.backEdgeInput();if(pr(e)&&!(e.sourceBounds!==null&&e.targetBounds!==null))return UE});this.pulse=se(Xe(this.edge).pipe(N(e=>e.id),ve(e=>Sn(this.execution.getEventsForEdge(e)))),{initialValue:!1})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-edge"]],hostVars:14,hostBindings:function(t,o){t&2&&q("lf-edge--inactive",o.status()==="inactive")("lf-edge--pending",o.status()==="pending")("lf-edge--value",o.status()==="value")("lf-edge--error",o.status()==="error")("lf-edge--pulse",o.pulse())("lf-edge--selected",o.selected())("lf-edge--back",o.isBack())},inputs:{edge:[1,"edge"]},decls:1,vars:2,consts:[[3,"edge","strokeDasharray"]],template:function(t,o){t&1&&z(0,"ng-diagram-base-edge",0),t&2&&A("edge",o.edge())("strokeDasharray",o.dash())},dependencies:[ro],styles:['[_nghost-%COMP%]{pointer-events:all;--edge-stroke-transition: stroke .1s ease-in-out}[_nghost-%COMP%]:hover:not(.lf-edge--selected){--edge-stroke: rgb(74 108 182)}[data-theme="dark"][_nghost-%COMP%]:hover:not(.lf-edge--selected){--edge-stroke: rgb(120 160 220)}.lf-edge--selected[_nghost-%COMP%]{--ngd-default-edge-stroke: rgb(37 99 235);--ngd-default-edge-stroke-selected: rgb(37 99 235);--edge-stroke: rgb(37 99 235);--ngd-default-edge-width: 2.5px}[data-theme="dark"].lf-edge--selected[_nghost-%COMP%]{--ngd-default-edge-stroke: rgb(96 165 250);--ngd-default-edge-stroke-selected: rgb(96 165 250);--edge-stroke: rgb(96 165 250)}']})}};function VE(n){return n?.hidden===!0}function jE(n){return typeof n.portId!="symbol"&&!VE(n)}function WE(n){return n.dynamic===!0?"dynamic":String(n.wireType??"any")}function GE(n,e,t){let o=-1;for(let i of n){if(i.target!==e||i.targetPort===void 0)continue;let{basePortId:r,slotIndex:s}=Hn(ei(i.targetPort));r===t&&s>o&&(o=s)}return o}function F0(n,e,t){let o=uo(t);return n.some(i=>i.target===e&&i.targetPort===o)}function qE(n,e,t,o){if(n===void 0)return[];let i=[];for(let r of n.inputsConfigs){if(!jE(r))continue;let s=String(r.portId??r.name??"unknown"),a=r.name??s,d=WE(r),l=o[s]!==void 0?o[s]:r.defaultValue;if(r.multi!==void 0){let c=GE(t,e,s);for(let u=0;u<=c+1;u++){let w=ti(s,u);i.push({handle:w,portId:uo(w),label:a,wireType:d,basePortId:s,slotIndex:u,inline:u===0?r.inline??null:null,value:u===0?l:void 0,connected:F0(t,e,w)})}continue}i.push({handle:s,portId:uo(s),label:a,wireType:d,basePortId:s,slotIndex:0,inline:r.inline??null,value:l,connected:F0(t,e,s)})}return i}function YE(n){if(n===void 0)return[];let e=[];for(let t of n.outputsConfigs){if(t===void 0)continue;let o=String(t.portId??"unknown"),i=t.name,r;t.fromInput!==void 0?r=`from(${t.fromInput})`:r=String(t.wireType),e.push({portId:cr(o),label:i??o,wireType:r})}return e}function ZE(n,e,t){if(n===void 0)return[];let o=[];for(let[i,r]of Object.entries(n.bypassPorts)){let s=String(r),a=z0(t,e,i,"target"),d=z0(t,e,i,"source"),l=Math.max(a,d);for(let c=0;c<=l+1;c++){let u=ti(i,c);o.push({handle:u,inputPortId:uo(u),outputPortId:cr(u),label:u,wireType:s})}}return o}function z0(n,e,t,o){let i=-1;for(let r of n){let s=o==="source"?r.source:r.target,a=o==="source"?r.sourcePort:r.targetPort;if(s!==e||a===void 0)continue;let{basePortId:d,slotIndex:l}=Hn(o==="source"?po(a):ei(a));d===t&&l>i&&(i=l)}return i}function Na(n,e,t=[],o={}){let i=ZE(n,e,t);return{inputPorts:qE(n,e,t,o),outputPorts:YE(n),bypassPorts:i}}var an=class n{constructor(){this.hovered=$(null);this.hoveredNodeId=this.hovered.asReadonly()}set(e){this.hovered.set(e)}clear(){this.hovered.set(null)}isHovered(e){return this.hovered()===e}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Vp={map:new Map,runId:null},di=class n{constructor(){this.bridge=h(de);this.values=se(ce(this.bridge.cached["executionFeed.snapshot"].pipe(N(e=>({type:"snapshot",snap:e}))),this.bridge.raw["runner.input-received"].pipe(xe(e=>e.kind==="input-received"&&e.state==="value"&&typeof e.portId=="string"),N(e=>({type:"input",runId:e.runId,nodeId:e.nodeId,portId:e.portId,value:e.value}))),ce(this.bridge.raw["runner.started"],this.bridge.raw["runner.startNode.started"]).pipe(xe(e=>typeof e=="string"),N(e=>({type:"reset",runId:e}))),this.bridge.cached["workflow.current.snapshot"].pipe(N(e=>e.activeWorkflow?.workflowId??null),Ur(),Vr(1),N(()=>({type:"clear"})))).pipe(We((e,t)=>{if(t.type==="snapshot")return{map:KE(t.snap),runId:t.snap?.runId??null};if(t.type==="clear")return Vp;if(t.type==="reset")return t.runId===e.runId?e:{map:new Map,runId:t.runId};let o=new Map(e.map);return o.set(jp(t.nodeId,t.portId),t.value),{map:o,runId:t.runId}},Vp),N(e=>e.map)),{initialValue:Vp.map})}valueFor(e,t){return this.values().get(jp(e,t))}entriesForNode(e){let t=`${e}:`,o=new Map;for(let[i,r]of this.values())i.startsWith(t)&&o.set(i.slice(t.length),r);return o}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})}},jp=(n,e)=>`${n}:${e}`,KE=n=>{let e=new Map;if(n===null)return e;for(let t of n.events)t.kind!=="input-received"||t.state!=="value"||typeof t.portId=="symbol"||e.set(jp(t.nodeId,t.portId),t.value);return e};var XE="lf-port-row-host--grow",QE="lf-node-title",JE=20,B0=(n,e,t)=>{let i=Array.from(n.children).reduce((r,s)=>{if(s.classList.contains(QE))return r+Math.max(s.offsetHeight,JE);if(!s.classList.contains(XE))return r+s.offsetHeight;let a=s.querySelector(".lf-port-row"),d=a instanceof HTMLElement?a.offsetHeight:0,l=s.querySelector(".lf-port-row__inline"),c=l instanceof HTMLElement&&Number.parseFloat(getComputedStyle(l).paddingBottom)||0,u=getComputedStyle(s).getPropertyValue("--lf-multiline-min").trim(),w=Number.parseFloat(u)||fr;return r+d+w+c},0);return Math.max(t,Math.ceil(i)+e)};var Wp=(n,e,t,o)=>({width:Math.max(o.width,n.width+(t.x-e.x)),height:Math.max(o.height,n.height+(t.y-e.y))});var Oa=class n{constructor(){this.execution=h(Te);this.nodeId=I.required();this.runtimePortId=I.required();this.inputPortId=I.required();this.outputPortId=I.required();this.label=I.required();this.wireType=I.required();this.nodeSelected=I(!1);this.inputEndpointHighlighted=I(!1);this.outputEndpointHighlighted=I(!1);this.inputPulse=se(Ne([Xe(this.nodeId),Xe(this.runtimePortId)]).pipe(ve(([e,t])=>Sn(this.execution.getInputEventsForPort(e,t)))),{initialValue:!1});this.outputPulse=se(Ne([Xe(this.nodeId),Xe(this.runtimePortId)]).pipe(ve(([e,t])=>Sn(this.execution.getEventsForPort(e,t)))),{initialValue:!1})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node-bypass-port-row"]],hostAttrs:[1,"lf-port-row-host"],inputs:{nodeId:[1,"nodeId"],runtimePortId:[1,"runtimePortId"],inputPortId:[1,"inputPortId"],outputPortId:[1,"outputPortId"],label:[1,"label"],wireType:[1,"wireType"],nodeSelected:[1,"nodeSelected"],inputEndpointHighlighted:[1,"inputEndpointHighlighted"],outputEndpointHighlighted:[1,"outputEndpointHighlighted"]},decls:10,vars:18,consts:[[1,"lf-port-row","lf-port-row--bypass"],[1,"lf-port-anchor","lf-port-anchor--in"],["type","target","side","left","originPoint","centerLeft",3,"id"],[1,"lf-port-row__content"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"lf-port-anchor","lf-port-anchor--out"],["type","source","side","right",3,"id"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"div",1),z(2,"ng-diagram-port",2),y(),v(3,"div",3)(4,"span"),C(5),y(),v(6,"span",4),C(7),y()(),v(8,"div",5),z(9,"ng-diagram-port",6),y()()),t&2&&(q("lf-port-row--node-selected",o.nodeSelected()),p(),q("lf-port-anchor--endpoint",o.inputEndpointHighlighted())("lf-port-anchor--node-selected",o.nodeSelected())("lf-port-anchor--pulse",o.inputPulse()),p(),A("id",o.inputPortId()),p(3),re(o.label()),p(2),H(" \xB7 ",o.wireType()," "),p(),q("lf-port-anchor--endpoint",o.outputEndpointHighlighted())("lf-port-anchor--node-selected",o.nodeSelected())("lf-port-anchor--pulse",o.outputPulse()),p(),A("id",o.outputPortId()))},dependencies:[so],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};function $0(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,o=Array(e);t<e;t++)o[t]=n[t];return o}function eP(n){if(Array.isArray(n))return n}function tP(n,e){var t=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(t!=null){var o,i,r,s,a=[],d=!0,l=!1;try{if(r=(t=t.call(n)).next,e!==0)for(;!(d=(o=r.call(t)).done)&&(a.push(o.value),a.length!==e);d=!0);}catch(c){l=!0,i=c}finally{try{if(!d&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}function nP(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
240
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function oP(n,e){return eP(n)||tP(n,e)||iP(n,e)||nP()}function iP(n,e){if(n){if(typeof n=="string")return $0(n,e);var t={}.toString.call(n).slice(8,-1);return t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set"?Array.from(n):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?$0(n,e):void 0}}var ty=Object.entries,H0=Object.setPrototypeOf,rP=Object.isFrozen,sP=Object.getPrototypeOf,aP=Object.getOwnPropertyDescriptor,dt=Object.freeze,lt=Object.seal,ui=Object.create,ny=typeof Reflect<"u"&&Reflect,Xp=ny.apply,Qp=ny.construct;dt||(dt=function(e){return e});lt||(lt=function(e){return e});Xp||(Xp=function(e,t){for(var o=arguments.length,i=new Array(o>2?o-2:0),r=2;r<o;r++)i[r-2]=arguments[r];return e.apply(t,i)});Qp||(Qp=function(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),i=1;i<t;i++)o[i-1]=arguments[i];return new e(...o)});var li=Ge(Array.prototype.forEach),dP=Ge(Array.prototype.lastIndexOf),U0=Ge(Array.prototype.pop),ci=Ge(Array.prototype.push),lP=Ge(Array.prototype.splice),jn=Array.isArray,xr=Ge(String.prototype.toLowerCase),Gp=Ge(String.prototype.toString),V0=Ge(String.prototype.match),Cr=Ge(String.prototype.replace),j0=Ge(String.prototype.indexOf),cP=Ge(String.prototype.trim),uP=Ge(Number.prototype.toString),pP=Ge(Boolean.prototype.toString),W0=typeof BigInt>"u"?null:Ge(BigInt.prototype.toString),G0=typeof Symbol>"u"?null:Ge(Symbol.prototype.toString),et=Ge(Object.prototype.hasOwnProperty),_r=Ge(Object.prototype.toString),Je=Ge(RegExp.prototype.test),ho=hP(TypeError);function Ge(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,o=new Array(t>1?t-1:0),i=1;i<t;i++)o[i-1]=arguments[i];return Xp(n,e,o)}}function hP(n){return function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return Qp(n,t)}}function ue(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:xr;if(H0&&H0(n,null),!jn(e))return n;let o=e.length;for(;o--;){let i=e[o];if(typeof i=="string"){let r=t(i);r!==i&&(rP(e)||(e[o]=r),i=r)}n[i]=!0}return n}function gP(n){for(let e=0;e<n.length;e++)et(n,e)||(n[e]=null);return n}function St(n){let e=ui(null);for(let o of ty(n)){var t=oP(o,2);let i=t[0],r=t[1];et(n,i)&&(jn(r)?e[i]=gP(r):r&&typeof r=="object"&&r.constructor===Object?e[i]=St(r):e[i]=r)}return e}function fP(n){switch(typeof n){case"string":return n;case"number":return uP(n);case"boolean":return pP(n);case"bigint":return W0?W0(n):"0";case"symbol":return G0?G0(n):"Symbol()";case"undefined":return _r(n);case"function":case"object":{if(n===null)return _r(n);let e=n,t=dn(e,"toString");if(typeof t=="function"){let o=t(e);return typeof o=="string"?o:_r(o)}return _r(n)}default:return _r(n)}}function dn(n,e){for(;n!==null;){let o=aP(n,e);if(o){if(o.get)return Ge(o.get);if(typeof o.value=="function")return Ge(o.value)}n=sP(n)}function t(){return null}return t}function mP(n){try{return Je(n,""),!0}catch(e){return!1}}var q0=dt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),qp=dt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Yp=dt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),yP=dt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Zp=dt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),vP=dt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Y0=dt(["#text"]),Z0=dt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),Kp=dt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),K0=dt(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Aa=dt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),bP=lt(/{{[\w\W]*|^[\w\W]*}}/g),wP=lt(/<%[\w\W]*|^[\w\W]*%>/g),CP=lt(/\${[\w\W]*/g),_P=lt(/^data-[\-\w.\u00B7-\uFFFF]+$/),xP=lt(/^aria-[\-\w]+$/),X0=lt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),SP=lt(/^(?:\w+script|data):/i),EP=lt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),PP=lt(/^html$/i),IP=lt(/^[a-z][.\w]*(-[.\w]+)+$/i),Q0=lt(/<[/\w!]/g),J0=lt(/<[/\w]/g),DP=lt(/<\/no(script|embed|frames)/i),MP=lt(/\/>/i),Lt={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},TP=function(){return typeof window>"u"?null:window},kP=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let o=null,i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(o=t.getAttribute(i));let r="dompurify"+(o?"#"+o:"");try{return e.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch(s){return console.warn("TrustedTypes policy "+r+" could not be created."),null}},ey=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Vn=function(e,t,o,i){return et(e,t)&&jn(e[t])?ue(i.base?St(i.base):{},e[t],i.transform):o};function oy(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:TP(),e=L=>oy(L);if(e.version="3.4.12",e.removed=[],!n||!n.document||n.document.nodeType!==Lt.document||!n.Element)return e.isSupported=!1,e;let t=n.document,o=t,i=o.currentScript;n.DocumentFragment;let r=n.HTMLTemplateElement,s=n.Node,a=n.Element,d=n.NodeFilter,l=n.NamedNodeMap;l===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let c=n.DOMParser,u=n.trustedTypes,w=a.prototype,S=dn(w,"cloneNode"),k=dn(w,"remove"),W=dn(w,"nextSibling"),Z=dn(w,"childNodes"),X=dn(w,"parentNode"),he=dn(w,"shadowRoot"),ke=dn(w,"attributes"),le=s&&s.prototype?dn(s.prototype,"nodeType"):null,Le=s&&s.prototype?dn(s.prototype,"nodeName"):null;if(typeof r=="function"){let L=t.createElement("template");L.content&&L.content.ownerDocument&&(t=L.content.ownerDocument)}let Me,nt="",cn,yi=!1,vi=0,wh=function(){if(vi>0)throw ho('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},vo=function(f){wh(),vi++;try{return Me.createHTML(f)}finally{vi--}},av=function(f){wh(),vi++;try{return Me.createScriptURL(f)}finally{vi--}},dv=function(){return yi||(cn=kP(u,i),yi=!0),cn},Tr=t,md=Tr.implementation,Ch=Tr.createNodeIterator,lv=Tr.createDocumentFragment,cv=Tr.getElementsByTagName,uv=o.importNode,Fe=ey();e.isSupported=typeof ty=="function"&&typeof X=="function"&&md&&md.createHTMLDocument!==void 0;let pv=bP,hv=wP,gv=CP,fv=_P,mv=xP,yv=SP,_h=EP,vv=IP,xh=X0,ze=null,Sh=ue({},[...q0,...qp,...Yp,...Zp,...Y0]),Be=null,Eh=ue({},[...Z0,...Kp,...K0,...Aa]),$e=Object.seal(ui(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),bi=null,Ph=null,En=Object.seal(ui(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Ih=!0,yd=!0,Dh=!1,Mh=!0,Pn=!1,In=!0,Yn=!1,vd=!1,bd=null,wd=null,Cd=!1,bo=!1,kr=!1,Rr=!1,Th=!0,kh=!1,Rh="user-content-",_d=!0,xd=!1,wo={},Kt=null,Sd=ue({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Nh=null,Oh=ue({},["audio","video","img","source","image","track"]),Ed=null,Ah=ue({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Nr="http://www.w3.org/1998/Math/MathML",Or="http://www.w3.org/2000/svg",Xt="http://www.w3.org/1999/xhtml",Co=Xt,Pd=!1,Id=null,bv=ue({},[Nr,Or,Xt],Gp),Lh=dt(["mi","mo","mn","ms","mtext"]),Dd=ue({},Lh),Fh=dt(["annotation-xml"]),Md=ue({},Fh),wv=ue({},["title","style","font","a","script"]),wi=null,Cv=["application/xhtml+xml","text/html"],_v="text/html",Ae=null,_o=null,xv=t.createElement("form"),zh=function(f){return f instanceof RegExp||f instanceof Function},Td=function(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(_o&&_o===f)return;(!f||typeof f!="object")&&(f={}),f=St(f),wi=Cv.indexOf(f.PARSER_MEDIA_TYPE)===-1?_v:f.PARSER_MEDIA_TYPE,Ae=wi==="application/xhtml+xml"?Gp:xr,ze=Vn(f,"ALLOWED_TAGS",Sh,{transform:Ae}),Be=Vn(f,"ALLOWED_ATTR",Eh,{transform:Ae}),Id=Vn(f,"ALLOWED_NAMESPACES",bv,{transform:Gp}),Ed=Vn(f,"ADD_URI_SAFE_ATTR",Ah,{transform:Ae,base:Ah}),Nh=Vn(f,"ADD_DATA_URI_TAGS",Oh,{transform:Ae,base:Oh}),Kt=Vn(f,"FORBID_CONTENTS",Sd,{transform:Ae}),bi=Vn(f,"FORBID_TAGS",St({}),{transform:Ae}),Ph=Vn(f,"FORBID_ATTR",St({}),{transform:Ae}),wo=et(f,"USE_PROFILES")?f.USE_PROFILES&&typeof f.USE_PROFILES=="object"?St(f.USE_PROFILES):f.USE_PROFILES:!1,Ih=f.ALLOW_ARIA_ATTR!==!1,yd=f.ALLOW_DATA_ATTR!==!1,Dh=f.ALLOW_UNKNOWN_PROTOCOLS||!1,Mh=f.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Pn=f.SAFE_FOR_TEMPLATES||!1,In=f.SAFE_FOR_XML!==!1,Yn=f.WHOLE_DOCUMENT||!1,bo=f.RETURN_DOM||!1,kr=f.RETURN_DOM_FRAGMENT||!1,Rr=f.RETURN_TRUSTED_TYPE||!1,Cd=f.FORCE_BODY||!1,Th=f.SANITIZE_DOM!==!1,kh=f.SANITIZE_NAMED_PROPS||!1,_d=f.KEEP_CONTENT!==!1,xd=f.IN_PLACE||!1,xh=mP(f.ALLOWED_URI_REGEXP)?f.ALLOWED_URI_REGEXP:X0,Co=typeof f.NAMESPACE=="string"?f.NAMESPACE:Xt,Dd=et(f,"MATHML_TEXT_INTEGRATION_POINTS")&&f.MATHML_TEXT_INTEGRATION_POINTS&&typeof f.MATHML_TEXT_INTEGRATION_POINTS=="object"?St(f.MATHML_TEXT_INTEGRATION_POINTS):ue({},Lh),Md=et(f,"HTML_INTEGRATION_POINTS")&&f.HTML_INTEGRATION_POINTS&&typeof f.HTML_INTEGRATION_POINTS=="object"?St(f.HTML_INTEGRATION_POINTS):ue({},Fh);let x=et(f,"CUSTOM_ELEMENT_HANDLING")&&f.CUSTOM_ELEMENT_HANDLING&&typeof f.CUSTOM_ELEMENT_HANDLING=="object"?St(f.CUSTOM_ELEMENT_HANDLING):ui(null);if($e=ui(null),et(x,"tagNameCheck")&&zh(x.tagNameCheck)&&($e.tagNameCheck=x.tagNameCheck),et(x,"attributeNameCheck")&&zh(x.attributeNameCheck)&&($e.attributeNameCheck=x.attributeNameCheck),et(x,"allowCustomizedBuiltInElements")&&typeof x.allowCustomizedBuiltInElements=="boolean"&&($e.allowCustomizedBuiltInElements=x.allowCustomizedBuiltInElements),lt($e),Pn&&(yd=!1),kr&&(bo=!0),wo&&(ze=ue({},Y0),Be=ui(null),wo.html===!0&&(ue(ze,q0),ue(Be,Z0)),wo.svg===!0&&(ue(ze,qp),ue(Be,Kp),ue(Be,Aa)),wo.svgFilters===!0&&(ue(ze,Yp),ue(Be,Kp),ue(Be,Aa)),wo.mathMl===!0&&(ue(ze,Zp),ue(Be,K0),ue(Be,Aa))),En.tagCheck=null,En.attributeCheck=null,et(f,"ADD_TAGS")&&(typeof f.ADD_TAGS=="function"?En.tagCheck=f.ADD_TAGS:jn(f.ADD_TAGS)&&(ze===Sh&&(ze=St(ze)),ue(ze,f.ADD_TAGS,Ae))),et(f,"ADD_ATTR")&&(typeof f.ADD_ATTR=="function"?En.attributeCheck=f.ADD_ATTR:jn(f.ADD_ATTR)&&(Be===Eh&&(Be=St(Be)),ue(Be,f.ADD_ATTR,Ae))),et(f,"ADD_URI_SAFE_ATTR")&&jn(f.ADD_URI_SAFE_ATTR)&&ue(Ed,f.ADD_URI_SAFE_ATTR,Ae),et(f,"FORBID_CONTENTS")&&jn(f.FORBID_CONTENTS)&&(Kt===Sd&&(Kt=St(Kt)),ue(Kt,f.FORBID_CONTENTS,Ae)),et(f,"ADD_FORBID_CONTENTS")&&jn(f.ADD_FORBID_CONTENTS)&&(Kt===Sd&&(Kt=St(Kt)),ue(Kt,f.ADD_FORBID_CONTENTS,Ae)),_d&&(ze["#text"]=!0),Yn&&ue(ze,["html","head","body"]),ze.table&&(ue(ze,["tbody"]),delete bi.tbody),f.TRUSTED_TYPES_POLICY){if(typeof f.TRUSTED_TYPES_POLICY.createHTML!="function")throw ho('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof f.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ho('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let R=Me;Me=f.TRUSTED_TYPES_POLICY;try{nt=vo("")}catch(G){throw Me=R,G}}else f.TRUSTED_TYPES_POLICY===null?(Me=void 0,nt=""):(Me===void 0&&(Me=dv()),Me&&typeof nt=="string"&&(nt=vo("")));dt&&dt(f),_o=f},Bh=ue({},[...qp,...Yp,...yP]),$h=ue({},[...Zp,...vP]),Sv=function(f,x,R){return x.namespaceURI===Xt?f==="svg":x.namespaceURI===Nr?f==="svg"&&(R==="annotation-xml"||Dd[R]):!!Bh[f]},Ev=function(f,x,R){return x.namespaceURI===Xt?f==="math":x.namespaceURI===Or?f==="math"&&Md[R]:!!$h[f]},Pv=function(f,x,R){return x.namespaceURI===Or&&!Md[R]||x.namespaceURI===Nr&&!Dd[R]?!1:!$h[f]&&(wv[f]||!Bh[f])},Iv=function(f){let x=X(f);(!x||!x.tagName)&&(x={namespaceURI:Co,tagName:"template"});let R=xr(f.tagName),G=xr(x.tagName);return Id[f.namespaceURI]?f.namespaceURI===Or?Sv(R,x,G):f.namespaceURI===Nr?Ev(R,x,G):f.namespaceURI===Xt?Pv(R,x,G):!!(wi==="application/xhtml+xml"&&Id[f.namespaceURI]):!1},Dn=function(f){ci(e.removed,{element:f});try{X(f).removeChild(f)}catch(x){if(k(f),!X(f))throw ho("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ar=function(f){kd(f);let x=Z(f);if(x){let G=[];li(x,ee=>{ci(G,ee)}),li(G,ee=>{try{k(ee)}catch(te){}})}let R=ke(f);if(R)for(let G=R.length-1;G>=0;--G){let ee=R[G],te=ee&&ee.name;if(typeof te=="string")try{f.removeAttribute(te)}catch(He){}}},Zn=function(f,x){try{ci(e.removed,{attribute:x.getAttributeNode(f),from:x})}catch(R){ci(e.removed,{attribute:null,from:x})}if(x.removeAttribute(f),f==="is")if(bo||kr)try{Dn(x)}catch(R){}else try{x.setAttribute(f,"")}catch(R){}},Dv=function(f){let x=ke(f);if(x)for(let R=x.length-1;R>=0;--R){let G=x[R],ee=G&&G.name;if(!(typeof ee!="string"||Be[Ae(ee)]))try{f.removeAttribute(ee)}catch(te){}}},kd=function(f){let x=[f];for(;x.length>0;){let R=x.pop();(le?le(R):R.nodeType)===Lt.element&&Dv(R);let ee=Z(R);if(ee)for(let te=ee.length-1;te>=0;--te)x.push(ee[te])}},Mv=function(f){if(!In)return;let x=[f];for(;x.length>0;){let R=x.pop(),G=le?le(R):R.nodeType;if(G===Lt.processingInstruction||G===Lt.comment&&Je(J0,R.data)){try{k(R)}catch(te){}continue}if(G===Lt.element){let te=R,He=Ae(Le?Le(R):R.nodeName);try{te.hasAttribute&&te.hasAttribute("patchsrc")&&te.removeAttribute("patchsrc"),te.hasAttribute&&te.hasAttribute("for")&&He!=="label"&&He!=="output"&&te.removeAttribute("for")}catch(ct){}}let ee=Z(R);if(ee)for(let te=ee.length-1;te>=0;--te)x.push(ee[te])}},Hh=function(f){let x=null,R=null;if(Cd)f="<remove></remove>"+f;else{let te=V0(f,/^[\r\n\t ]+/);R=te&&te[0]}wi==="application/xhtml+xml"&&Co===Xt&&(f='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+f+"</body></html>");let G=Me?vo(f):f;if(Co===Xt)try{x=new c().parseFromString(G,wi)}catch(te){}if(!x||!x.documentElement){x=md.createDocument(Co,"template",null);try{x.documentElement.innerHTML=Pd?nt:G}catch(te){}}let ee=x.body||x.documentElement;return f&&R&&ee.insertBefore(t.createTextNode(R),ee.childNodes[0]||null),Co===Xt?cv.call(x,Yn?"html":"body")[0]:Yn?x.documentElement:ee},Uh=function(f){return Ch.call(f.ownerDocument||f,f,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},Lr=function(f){return f=Cr(f,pv," "),f=Cr(f,hv," "),f=Cr(f,gv," "),f},Rd=function(f){var x;f.normalize();let R=Ch.call(f.ownerDocument||f,f,d.SHOW_TEXT|d.SHOW_COMMENT|d.SHOW_CDATA_SECTION|d.SHOW_PROCESSING_INSTRUCTION,null),G=R.nextNode();for(;G;)G.data=Lr(G.data),G=R.nextNode();let ee=(x=f.querySelectorAll)===null||x===void 0?void 0:x.call(f,"template");ee&&li(ee,te=>{xo(te.content)&&Rd(te.content)})},Fr=function(f){let x=Le?Le(f):null;return typeof x!="string"||Ae(x)!=="form"?!1:typeof f.nodeName!="string"||typeof f.textContent!="string"||typeof f.removeChild!="function"||f.attributes!==ke(f)||typeof f.removeAttribute!="function"||typeof f.setAttribute!="function"||typeof f.namespaceURI!="string"||typeof f.insertBefore!="function"||typeof f.hasChildNodes!="function"||f.nodeType!==le(f)||f.childNodes!==Z(f)},xo=function(f){if(!le||typeof f!="object"||f===null)return!1;try{return le(f)===Lt.documentFragment}catch(x){return!1}},Ci=function(f){if(!le||typeof f!="object"||f===null)return!1;try{return typeof le(f)=="number"}catch(x){return!1}};function Qt(L,f,x){L.length!==0&&li(L,R=>{R.call(e,f,x,_o)})}let Tv=function(f,x){return!!(In&&f.hasChildNodes()&&!Ci(f.firstElementChild)&&Je(Q0,f.textContent)&&Je(Q0,f.innerHTML)||In&&f.namespaceURI===Xt&&x==="style"&&Ci(f.firstElementChild)||f.nodeType===Lt.processingInstruction||In&&f.nodeType===Lt.comment&&Je(J0,f.data))},kv=function(f,x){if(!bi[x]&&Wh(x)&&($e.tagNameCheck instanceof RegExp&&Je($e.tagNameCheck,x)||$e.tagNameCheck instanceof Function&&$e.tagNameCheck(x)))return!1;if(_d&&!Kt[x]){let R=X(f),G=Z(f);if(G&&R){let ee=G.length;for(let te=ee-1;te>=0;--te){let He=xd?G[te]:S(G[te],!0);R.insertBefore(He,W(f))}}}return Dn(f),!0},Vh=function(f,x){if(Qt(Fe.beforeSanitizeElements,f,null),f!==x&&X(f)===null)return!0;if(Fr(f))return Dn(f),!0;let R=Ae(Le?Le(f):f.nodeName);if(Qt(Fe.uponSanitizeElement,f,{tagName:R,allowedTags:ze}),f!==x&&X(f)===null)return!0;if(Tv(f,R))return Dn(f),!0;if(bi[R]||!(En.tagCheck instanceof Function&&En.tagCheck(R))&&!ze[R]){let ee=kv(f,R);return ee===!1&&Qt(Fe.afterSanitizeElements,f,null),ee}if((le?le(f):f.nodeType)===Lt.element&&!Iv(f)||(R==="noscript"||R==="noembed"||R==="noframes")&&Je(DP,f.innerHTML))return Dn(f),!0;if(Pn&&f.nodeType===Lt.text){let ee=Lr(f.textContent);f.textContent!==ee&&(ci(e.removed,{element:f.cloneNode()}),f.textContent=ee)}return Qt(Fe.afterSanitizeElements,f,null),!1},jh=function(f,x,R){if(Ph[x]||In&&x==="patchsrc"||In&&x==="for"&&f!=="label"&&f!=="output"||Th&&(x==="id"||x==="name")&&(R in t||R in xv))return!1;let G=Be[x]||En.attributeCheck instanceof Function&&En.attributeCheck(x,f);if(!(yd&&Je(fv,x))){if(!(Ih&&Je(mv,x))){if(G){if(!Ed[x]){if(!Je(xh,Cr(R,_h,""))){if(!((x==="src"||x==="xlink:href"||x==="href")&&f!=="script"&&j0(R,"data:")===0&&Nh[f])){if(!(Dh&&!Je(yv,Cr(R,_h,"")))){if(R)return!1}}}}}else if(!(Wh(f)&&($e.tagNameCheck instanceof RegExp&&Je($e.tagNameCheck,f)||$e.tagNameCheck instanceof Function&&$e.tagNameCheck(f))&&($e.attributeNameCheck instanceof RegExp&&Je($e.attributeNameCheck,x)||$e.attributeNameCheck instanceof Function&&$e.attributeNameCheck(x,f))||x==="is"&&$e.allowCustomizedBuiltInElements&&($e.tagNameCheck instanceof RegExp&&Je($e.tagNameCheck,R)||$e.tagNameCheck instanceof Function&&$e.tagNameCheck(R))))return!1}}return!0},Rv=ue({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Wh=function(f){return!Rv[xr(f)]&&Je(vv,f)},Nv=function(f,x,R,G){if(Me&&typeof u=="object"&&typeof u.getAttributeType=="function"&&!R)switch(u.getAttributeType(f,x)){case"TrustedHTML":return vo(G);case"TrustedScriptURL":return av(G)}return G},Ov=function(f,x,R,G){try{R?f.setAttributeNS(R,x,G):f.setAttribute(x,G),Fr(f)?Dn(f):U0(e.removed)}catch(ee){Zn(x,f)}},Gh=function(f){Qt(Fe.beforeSanitizeAttributes,f,null);let x=f.attributes;if(!x||Fr(f))return;let R={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Be,forceKeepAttr:void 0},G=x.length,ee=Ae(f.nodeName);for(;G--;){let te=x[G],He=te.name,ct=te.namespaceURI,Ht=te.value,Et=Ae(He),Ut=Ht,wt=He==="value"?Ut:cP(Ut);if(R.attrName=Et,R.attrValue=wt,R.keepAttr=!0,R.forceKeepAttr=void 0,Qt(Fe.uponSanitizeAttribute,f,R),wt=R.attrValue,kh&&(Et==="id"||Et==="name")&&j0(wt,Rh)!==0&&(Zn(He,f),wt=Rh+wt),In&&Je(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,wt)){Zn(He,f);continue}if(Et==="attributename"&&V0(wt,"href")){Zn(He,f);continue}if(!R.forceKeepAttr){if(!R.keepAttr){Zn(He,f);continue}if(!Mh&&Je(MP,wt)){Zn(He,f);continue}if(Pn&&(wt=Lr(wt)),!jh(ee,Et,wt)){Zn(He,f);continue}wt=Nv(ee,Et,ct,wt),wt!==Ut&&Ov(f,He,ct,wt)}}Qt(Fe.afterSanitizeAttributes,f,null)},zr=function(f){let x=null,R=Uh(f);for(Qt(Fe.beforeSanitizeShadowDOM,f,null);x=R.nextNode();)if(Qt(Fe.uponSanitizeShadowNode,x,null),Vh(x,f),Gh(x),xo(x.content)&&zr(x.content),(le?le(x):x.nodeType)===Lt.element){let ee=he(x);xo(ee)&&(Nd(ee),zr(ee))}Qt(Fe.afterSanitizeShadowDOM,f,null)},Nd=function(f){let x=[{node:f,shadow:null}];for(;x.length>0;){let R=x.pop();if(R.shadow){zr(R.shadow);continue}let G=R.node,te=(le?le(G):G.nodeType)===Lt.element,He=Z(G);if(He)for(let ct=He.length-1;ct>=0;--ct)x.push({node:He[ct],shadow:null});if(te){let ct=Le?Le(G):null;if(typeof ct=="string"&&Ae(ct)==="template"){let Ht=G.content;xo(Ht)&&x.push({node:Ht,shadow:null})}}if(te){let ct=he(G);xo(ct)&&x.push({node:null,shadow:ct},{node:ct,shadow:null})}}};return e.sanitize=function(L){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=null,R=null,G=null,ee=null;if(Pd=!L,Pd&&(L="<!-->"),typeof L!="string"&&!Ci(L)&&(L=fP(L),typeof L!="string"))throw ho("dirty is not a string, aborting");if(!e.isSupported)return L;vd?(ze=bd,Be=wd):Td(f),(Fe.uponSanitizeElement.length>0||Fe.uponSanitizeAttribute.length>0)&&(ze=St(ze)),Fe.uponSanitizeAttribute.length>0&&(Be=St(Be)),e.removed=[];let te=xd&&typeof L!="string"&&Ci(L);if(te){Mv(L);let Et=Le?Le(L):L.nodeName;if(typeof Et=="string"){let Ut=Ae(Et);if(!ze[Ut]||bi[Ut])throw Ar(L),ho("root node is forbidden and cannot be sanitized in-place")}if(Fr(L))throw Ar(L),ho("root node is clobbered and cannot be sanitized in-place");try{Nd(L)}catch(Ut){throw Ar(L),Ut}}else if(Ci(L))x=Hh("<!---->"),R=x.ownerDocument.importNode(L,!0),R.nodeType===Lt.element&&R.nodeName==="BODY"||R.nodeName==="HTML"?x=R:x.appendChild(R),Nd(R);else{if(!bo&&!Pn&&!Yn&&L.indexOf("<")===-1)return Me&&Rr?vo(L):L;if(x=Hh(L),!x)return bo?null:Rr?nt:""}x&&Cd&&Dn(x.firstChild);let He=te?L:x,ct=Uh(He);try{for(;G=ct.nextNode();)Vh(G,He),Gh(G),xo(G.content)&&zr(G.content)}catch(Et){throw te&&(Ar(L),li(e.removed,Ut=>{Ut.element&&kd(Ut.element)})),Et}if(te)return li(e.removed,Et=>{Et.element&&kd(Et.element)}),Pn&&Rd(L),L;if(bo){if(Pn&&Rd(x),kr)for(ee=lv.call(x.ownerDocument);x.firstChild;)ee.appendChild(x.firstChild);else ee=x;return(Be.shadowroot||Be.shadowrootmode)&&(ee=uv.call(o,ee,!0)),ee}let Ht=Yn?x.outerHTML:x.innerHTML;return Yn&&ze["!doctype"]&&x.ownerDocument&&x.ownerDocument.doctype&&x.ownerDocument.doctype.name&&Je(PP,x.ownerDocument.doctype.name)&&(Ht="<!DOCTYPE "+x.ownerDocument.doctype.name+`>
241
- `+Ht),Pn&&(Ht=Lr(Ht)),Me&&Rr?vo(Ht):Ht},e.setConfig=function(){let L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Td(L),vd=!0,bd=ze,wd=Be},e.clearConfig=function(){_o=null,vd=!1,bd=null,wd=null,Me=cn,nt=""},e.isValidAttribute=function(L,f,x){_o||Td({});let R=Ae(L),G=Ae(f);return jh(R,G,x)},e.addHook=function(L,f){typeof f=="function"&&et(Fe,L)&&ci(Fe[L],f)},e.removeHook=function(L,f){if(et(Fe,L)){if(f!==void 0){let x=dP(Fe[L],f);return x===-1?void 0:lP(Fe[L],x,1)[0]}return U0(Fe[L])}},e.removeHooks=function(L){et(Fe,L)&&(Fe[L]=[])},e.removeAllHooks=function(){Fe=ey()},e}var iy=oy();function nh(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var mo=nh();function py(n){mo=n}var go={exec:()=>null};function pi(n){let e=[];return t=>{let o=Math.max(0,Math.min(3,t-1)),i=e[o];return i||(i=n(o),e[o]=i),i}}function pe(n,e=""){let t=typeof n=="string"?n:n.source,o={replace:(i,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(bt.caret,"$1"),t=t.replace(i,s),o},getRegex:()=>new RegExp(t,e)};return o}var RP=((n="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+n)}catch(e){return!1}})(),bt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:pi(n=>new RegExp(`^ {0,${n}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:pi(n=>new RegExp(`^ {0,${n}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:pi(n=>new RegExp(`^ {0,${n}}(?:\`\`\`|~~~)`)),headingBeginRegex:pi(n=>new RegExp(`^ {0,${n}}#`)),htmlBeginRegex:pi(n=>new RegExp(`^ {0,${n}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:pi(n=>new RegExp(`^ {0,${n}}>`))},NP=/^(?:[ \t]*(?:\n|$))+/,OP=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,AP=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Pr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,LP=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,oh=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,hy=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,gy=pe(hy).replace(/bull/g,oh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),FP=pe(hy).replace(/bull/g,oh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ih=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,zP=/^[^\n]+/,rh=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,BP=pe(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",rh).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),$P=pe(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,oh).getRegex(),$a="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",sh=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,HP=pe("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n+|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n+|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n+|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",sh).replace("tag",$a).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),fy=n=>pe(ih).replace("hr",Pr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list",n).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$a).getRegex(),UP=fy(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),VP=fy(/ {0,3}(?:[*+-]|\d{1,9}[.)])[ \t]+[^ \t\n]/),jP=pe(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",VP).getRegex(),ah={blockquote:jP,code:OP,def:BP,fences:AP,heading:LP,hr:Pr,html:HP,lheading:gy,list:$P,newline:NP,paragraph:UP,table:go,text:zP},ry=pe("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Pr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$a).getRegex(),WP=_(g({},ah),{lheading:FP,table:ry,paragraph:pe(ih).replace("hr",Pr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ry).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",$a).getRegex()}),GP=_(g({},ah),{html:pe(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",sh).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:go,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:pe(ih).replace("hr",Pr).replace("heading",` *#{1,6} *[^
242
- ]`).replace("lheading",gy).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),qP=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,YP=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,my=/^( {2,}|\\)\n(?!\s*$)/,ZP=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,hi=/[\p{P}\p{S}]/u,Ha=/[\s\p{P}\p{S}]/u,dh=/[^\s\p{P}\p{S}]/u,KP=pe(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Ha).getRegex(),yy=/(?!~)[\p{P}\p{S}]/u,XP=/(?!~)[\s\p{P}\p{S}]/u,QP=/(?:[^\s\p{P}\p{S}]|~)/u,JP=pe(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",RP?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),vy=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,eI=pe(vy,"u").replace(/punct/g,hi).getRegex(),tI=pe(vy,"u").replace(/punct/g,yy).getRegex(),by="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",nI=pe(by,"gu").replace(/notPunctSpace/g,dh).replace(/punctSpace/g,Ha).replace(/punct/g,hi).getRegex(),oI=pe(by,"gu").replace(/notPunctSpace/g,QP).replace(/punctSpace/g,XP).replace(/punct/g,yy).getRegex(),iI=pe("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,dh).replace(/punctSpace/g,Ha).replace(/punct/g,hi).getRegex(),rI=pe(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,hi).getRegex(),sI="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",aI=pe(sI,"gu").replace(/notPunctSpace/g,dh).replace(/punctSpace/g,Ha).replace(/punct/g,hi).getRegex(),dI=pe(/\\(punct)/,"gu").replace(/punct/g,hi).getRegex(),lI=pe(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),cI=pe(sh).replace("(?:-->|$)","-->").getRegex(),uI=pe("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",cI).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Fa=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,pI=pe(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Fa).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),wy=pe(/^!?\[(label)\]\[(ref)\]/).replace("label",Fa).replace("ref",rh).getRegex(),Cy=pe(/^!?\[(ref)\](?:\[\])?/).replace("ref",rh).getRegex(),hI=pe("reflink|nolink(?!\\()","g").replace("reflink",wy).replace("nolink",Cy).getRegex(),sy=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,lh={_backpedal:go,anyPunctuation:dI,autolink:lI,blockSkip:JP,br:my,code:YP,del:go,delLDelim:go,delRDelim:go,emStrongLDelim:eI,emStrongRDelimAst:nI,emStrongRDelimUnd:iI,escape:qP,link:pI,nolink:Cy,punctuation:KP,reflink:wy,reflinkSearch:hI,tag:uI,text:ZP,url:go},gI=_(g({},lh),{link:pe(/^!?\[(label)\]\((.*?)\)/).replace("label",Fa).getRegex(),reflink:pe(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Fa).getRegex()}),Jp=_(g({},lh),{emStrongRDelimAst:oI,emStrongLDelim:tI,delLDelim:rI,delRDelim:aI,url:pe(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",sy).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:pe(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",sy).getRegex()}),fI=_(g({},Jp),{br:pe(my).replace("{2,}","*").getRegex(),text:pe(Jp.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),La={normal:ah,gfm:WP,pedantic:GP},Sr={normal:lh,gfm:Jp,breaks:fI,pedantic:gI},mI={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ay=n=>mI[n];function ln(n,e){if(e){if(bt.escapeTest.test(n))return n.replace(bt.escapeReplace,ay)}else if(bt.escapeTestNoEncode.test(n))return n.replace(bt.escapeReplaceNoEncode,ay);return n}function dy(n){try{n=encodeURI(n).replace(bt.percentDecode,"%")}catch(e){return null}return n}function ly(n,e){let t=n.replace(bt.findPipe,(r,s,a)=>{let d=!1,l=s;for(;--l>=0&&a[l]==="\\";)d=!d;return d?"|":" |"}),o=t.split(bt.splitPipe),i=0;if(o[0].trim()||o.shift(),o.length>0&&!o.at(-1)?.trim()&&o.pop(),e)if(o.length>e)o.splice(e);else for(;o.length<e;)o.push("");for(;i<o.length;i++)o[i]=o[i].trim().replace(bt.slashPipe,"|");return o}function Wn(n,e,t){let o=n.length;if(o===0)return"";let i=0;for(;i<o;){let r=n.charAt(o-i-1);if(r===e&&!t)i++;else if(r!==e&&t)i++;else break}return n.slice(0,o-i)}function cy(n){let e=n.split(`
239
+ `,ao=class n{flowCoreProvider=f(Te);markerRegistry=f(Zo);useInlineMarkers=this.markerRegistry.useInlineMarkers;edge=I.required();routing=I();stroke=I();sourceArrowhead=I();targetArrowhead=I();strokeOpacity=I();strokeWidth=I();strokeDasharray=I();points=b(()=>this.edge().points??[]);path=b(()=>{let e=this.edge(),t=this.routing()??e.routing,o=this.flowCoreProvider.provide(),i=this.points();if(i.length===0)return"";if(i.some(s=>!Lt(s)))return console.error(uE(e.id,e.source,e.sourcePort,e.target,e.targetPort)),"";if(t&&o.edgeRoutingManager.hasRouting(t))return o.edgeRoutingManager.computePath(t,i);let r=o.edgeRoutingManager.getDefaultRouting();return o.edgeRoutingManager.hasRouting(r)?o.edgeRoutingManager.computePath(r,i):`M ${i[0].x},${i[0].y}`});sourceMarkerId=b(()=>this.edge()?.sourceArrowhead??this.sourceArrowhead());targetMarkerId=b(()=>this.edge()?.targetArrowhead??this.targetArrowhead());markerStart=b(()=>{let e=this.sourceMarkerId();return e?this.markerRegistry.getMarkerUrl(e,this.edge().id,"source"):null});markerEnd=b(()=>{let e=this.targetMarkerId();return e?this.markerRegistry.getMarkerUrl(e,this.edge().id,"target"):null});selected=b(()=>this.edge().selected);temporary=b(()=>this.edge().temporary);labels=b(()=>this.edge().measuredLabels??[]);class=b(()=>{let e=["ng-diagram-edge__path"];return this.selected()&&e.push("selected"),this.temporary()&&e.push("temporary"),e.join(" ")});prevRouting;prevRoutingMode;prevPoints;constructor(){me(()=>this.syncEdgePropertiesToModel())}syncEdgePropertiesToModel(){let e=this.edge(),t={};(this.checkRoutingChanges(e,t)||this.checkRoutingModeChanges(e,t)||this.checkPointsChanges(e,t))&&this.flowCoreProvider.provide().commandHandler.emit("updateEdge",{id:e.id,edgeChanges:t})}checkRoutingChanges(e,t){let o=this.routing()??e.routing;return!(!o||this.prevRouting===o||(t.routing=o,this.prevRouting=o,0))}checkRoutingModeChanges(e,t){return!(!e.routingMode||this.prevRoutingMode===e.routingMode||(t.routingMode=e.routingMode,this.prevRoutingMode=e.routingMode,0))}checkPointsChanges(e,t){return!(!(e.routingMode==="manual"&&e.points&&e.points.length>0)||this.prevPoints&&j_(this.prevPoints,e.points)||(t.points=e.points,this.prevPoints=e.points,0))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-base-edge"]],hostVars:4,hostBindings:function(t,o){t&2&&Y("selected",o.selected())("temporary",o.temporary())},inputs:{edge:[1,"edge"],routing:[1,"routing"],stroke:[1,"stroke"],sourceArrowhead:[1,"sourceArrowhead"],targetArrowhead:[1,"targetArrowhead"],strokeOpacity:[1,"strokeOpacity"],strokeWidth:[1,"strokeWidth"],strokeDasharray:[1,"strokeDasharray"]},features:[fn([{directive:fa,inputs:["data","edge"]},{directive:Au,inputs:["targetData","edge"]}])],ngContentSelectors:Mt,decls:5,vars:14,consts:[["ngDiagramInlineMarkers","",3,"sourceMarkerId","targetMarkerId","edgeId"],["fill","none","stroke","none","stroke-width","20","stroke-opacity","0"]],template:function(t,o){t&1&&(Ye(),fe(),v(0,"svg"),E(1,FC,1,3,":svg:defs",0),$(2,"path")(3,"path",1),y(),We(4)),t&2&&(Ue("color",o.stroke()||"var(--edge-stroke, var(--ngd-default-edge-stroke))"),p(),P(o.useInlineMarkers?1:-1),p(),ft(o.class()),J("d",o.path())("stroke",o.stroke()||"var(--edge-stroke, var(--ngd-default-edge-stroke))")("fill","none")("stroke-width",o.strokeWidth()||"var(--edge-stroke-width, 2)")("stroke-dasharray",o.strokeDasharray()||"var(--edge-stroke-dasharray, none)")("marker-start",o.markerStart())("marker-end",o.markerEnd())("stroke-opacity",o.strokeOpacity()||"var(--edge-stroke-opacity, 1)"),p(),J("d",o.path()))},dependencies:[Ru],styles:["[_nghost-%COMP%]{position:relative}svg[_ngcontent-%COMP%]{overflow:visible;position:absolute;cursor:pointer}svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{pointer-events:visibleStroke;cursor:pointer;transition:var(--edge-stroke-transition, none)}"]})},Zu=class n{flowCoreProvider=f(Te);hostElement=f(rt);edgeComponent=f(ao);batchResizeObserver=f(Un);id=I.required();positionOnEdge=I.required();edgeData=b(()=>this.edgeComponent.edge());points=b(()=>this.edgeData()?.points);edgeId=b(()=>this.edgeData()?.id);ownerInternalId;position=b(()=>this.edgeData()?.measuredLabels?.find(o=>o.id===this.id())?.position||{x:0,y:0});isVisible=b(()=>{let e=this.edgeData();if(!e)return!1;let t=e.measuredLabels?.find(o=>o.id===this.id());return!(!t?.position||t?.position.x==null||t?.position.y==null||!(e.points&&e.points.length>=2))});lastPositionOnEdge=H(void 0);get transform(){let e=this.position();return`translate(${e.x}px, ${e.y}px) translate(-50%, -50%)`}constructor(){me(()=>{let e=this.positionOnEdge(),t=this.lastPositionOnEdge();e!==t&&(xe(()=>{this.lastPositionOnEdge.set(e)}),this.flowCoreProvider.provide().updater.applyEdgeLabelChanges(this.edgeId(),[{labelId:this.id(),labelChanges:{positionOnEdge:e}}]))})}ngOnInit(){this.lastPositionOnEdge.set(this.positionOnEdge()),this.ownerInternalId=this.edgeData()?._internalId,this.flowCoreProvider.provide().updater.addEdgeLabel(this.edgeId(),{id:this.id(),positionOnEdge:this.positionOnEdge()}),this.batchResizeObserver.observe(this.hostElement.nativeElement,{type:"edge-label",edgeId:this.edgeId(),labelId:this.id()})}ngOnDestroy(){this.batchResizeObserver.unobserve(this.hostElement.nativeElement);let e=this.flowCoreProvider.provide();if(!e.isInitialized)return;let t=this.edgeId(),o=t?e.getEdgeById(t):null;o&&(this.ownerInternalId&&o._internalId!==this.ownerInternalId||e.updater.deleteEdgeLabel(t,this.id()))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-base-edge-label"]],hostVars:4,hostBindings:function(t,o){t&2&&Ue("transform",o.transform)("visibility",o.isVisible()?null:"hidden")},inputs:{id:[1,"id"],positionOnEdge:[1,"positionOnEdge"]},ngContentSelectors:Mt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),We(0))},styles:["[_nghost-%COMP%]{position:absolute;pointer-events:all}"]})};var Ku=class n{edgeComponent=f(ao);selected=b(()=>this.edgeComponent.selected());static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-edge-label"]],ngContentSelectors:Mt,decls:2,vars:3,consts:[[3,"className"]],template:function(t,o){t&1&&(Ye(),B(0,"div",0),We(1),A()),t&2&&(Y("selected",o.selected()),ge("className","ng-diagram-default-edge-label"))},styles:[".ng-diagram-default-edge-label[_ngcontent-%COMP%]{display:flex;padding:var(--edge-label-padding, 4px 8px);border-radius:var(--edge-label-border-radius, 4px);font-size:var(--edge-label-font-size, 12px);background:var(--edge-label-background-color, var(--ngd-default-edge-label-background-color));color:var(--edge-label-text-color, var(--ngd-default-edge-label-color));border:var(--edge-label-border-width, 1px) solid var(--edge-label-border-color, var(--ngd-default-edge-label-border-color));transition:var(--edge-label-border-transition, border-color .1s ease-in-out)}"]})},Xu=class n{edge=I.required();label=b(()=>this.edge().data?.label);positionOnEdge=b(()=>this.edge().data?.positionOnEdge??.5);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-edge"]],inputs:{edge:[1,"edge"]},decls:3,vars:3,consts:[[1,"default-edge",3,"edge"],[1,"ng-diagram-default-label",3,"id","positionOnEdge"]],template:function(t,o){if(t&1&&(v(0,"ng-diagram-base-edge",0),tl(1),E(2,zC,3,3,"ng-diagram-base-edge-label",1),y()),t&2){L("edge",o.edge()),p();let i=nl(o.label());p(),P(i?2:-1)}},dependencies:[ao,Zu,Ku],styles:["ng-diagram-base-edge.default-edge[_ngcontent-%COMP%]{--edge-stroke: var(--ngd-default-edge-stroke);--edge-stroke-transition: stroke .1s ease-in-out}ng-diagram-base-edge.default-edge[_ngcontent-%COMP%]:hover:not(.selected):not(.temporary){--edge-stroke: var(--ngd-default-edge-stroke-hover);--edge-label-border-color: var(--ngd-default-edge-stroke-hover)}ng-diagram-base-edge.default-edge.selected[_ngcontent-%COMP%]{--edge-stroke: var(--ngd-default-edge-stroke-selected);--edge-label-border-color: var(--ngd-default-edge-stroke-selected)}ng-diagram-base-edge.default-edge.temporary[_ngcontent-%COMP%]{--edge-stroke-opacity: .5}"]})},Qu=class n{elementRef=f(rt);markerRegistry=f(Zo);destroyRef=f(Ve);markerId=null;ngAfterViewInit(){let e=this.elementRef.nativeElement.querySelector("marker");if(!e)return void console.warn("[ngDiagram] Marker element not found in projected content");let t=e.getAttribute("id");t?(this.markerId=t,this.markerRegistry.registerMarker(t,e),this.destroyRef.onDestroy(()=>{this.markerId&&this.markerRegistry.unregisterMarker(this.markerId)})):console.warn("[ngDiagram] Marker element must have an id attribute")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-marker"]],ngContentSelectors:Mt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),We(0))},styles:["[_nghost-%COMP%]{display:contents}[_nghost-%COMP%] svg{position:absolute;pointer-events:none;fill:currentColor}"]})},Ju=class n{static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-marker-arrow"]],decls:5,vars:0,consts:[["id","ng-diagram-arrow","viewBox","0 9 8 14","refX","6","refY","16","markerWidth","4","markerHeight","7","orient","auto-start-reverse"],["d","M1 21L6 16L1 11","stroke","context-stroke","fill","none","stroke-width","2","stroke-linecap","round","stroke-linejoin","round"]],template:function(t,o){t&1&&(v(0,"ng-diagram-marker"),fe(),v(1,"svg")(2,"defs")(3,"marker",0),$(4,"path",1),y()()()())},dependencies:[Qu],encapsulation:2,changeDetection:1})},ep=class n{static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-edge"]],ngContentSelectors:Mt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),We(0))},styles:["[_nghost-%COMP%]{position:absolute;-webkit-user-select:none;user-select:none}"]})},tp=class n{inputEventsRouter=f(at);diagramComponent=f(ar);flowCoreProvider=f(Te);touchEventsStateService=f(xn);targetData=I();edgePanningInterval=null;cachedDiagramRect=null;ngOnDestroy(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.stopEdgePanning()}onPointerDown(e){if(!this.shouldHandle(e)||!this.inputEventsRouter.eventGuards.withPrimaryButton(e))return;let t=this.targetData();if(!t)return;this.touchEventsStateService.currentEvent.set(yt.Move),this.cachedDiagramRect=this.diagramComponent.getBoundingClientRect(),e.moveSelectionHandled=!0;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},o),{name:"pointerMoveSelection",phase:"start",target:t,targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY},currentDiagramEdge:null})),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp)}onPointerUp=e=>{this.inputEventsRouter.eventGuards.withPrimaryButton(e)&&this.finishDragging(e)};onPointerMove=e=>{if(e.zoomingHandled||this.touchEventsStateService.boxSelectionHandled()||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.finishDragging(e);let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e),{selectionMoving:{edgePanningThreshold:i,edgePanningEnabled:r,edgePanningForce:s},viewportPanningEnabled:a}=this.flowCoreProvider.provide().config,d=null;a&&r&&(d=Qe.calculateEdgePanningForce(this.cachedDiagramRect||this.diagramComponent.getBoundingClientRect(),{x:e.clientX,y:e.clientY},i,s),d?this.startEdgePanning(e.clientX,e.clientY,d):this.stopEdgePanning()),this.inputEventsRouter.emit(_(h({},o),{name:"pointerMoveSelection",phase:"continue",target:t,targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY},panningForce:d}))};finishDragging(e){let t=this.targetData();if(!t)return;document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.stopEdgePanning(),this.cachedDiagramRect=null;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},o),{name:"pointerMoveSelection",phase:"end",target:t,targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY},currentDiagramEdge:null})),this.touchEventsStateService.clearCurrentEvent()}shouldHandle(e){return!(!this.flowCoreProvider.provide().config.nodeDraggingEnabled||!(this.targetData()?.draggable??1)||ha(e,"drag")||e.zoomingHandled||e.linkingHandled||e.rotateHandled||e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}startEdgePanning(e,t,o){this.stopEdgePanning(),this.edgePanningInterval=window.setInterval(()=>{let i=this.targetData();if(!i)return;let r=this.inputEventsRouter.getBaseEvent({});this.inputEventsRouter.emit(_(h({},r),{name:"pointerMoveSelection",phase:"continue",target:i,targetType:"node",lastInputPoint:{x:e,y:t},panningForce:o}))},$m)}stopEdgePanning(){this.edgePanningInterval!=null&&(window.clearInterval(this.edgePanningInterval),this.edgePanningInterval=null)}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramPointerMoveSelection",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{targetData:[1,"targetData"]}})},ya=class n{portsService=f(or);flowCore=f(Te);node=I.required();rotate=b(()=>this.node().angle?`rotate(${this.node().angle}deg)`:"");id=b(()=>this.node().id);size=b(()=>this.node().size);constructor(){this.setupPortSyncEffect()}syncPorts(){let e=this.id(),t=this.flowCore.provide();if(t.actionStateManager.isResizing()){let o=this.portsService.getNodePortsData(e);t.updater.applyPortChanges(e,Js(o))}else queueMicrotask(()=>{let o=this.portsService.getNodePortsData(e);t.updater.applyPortChanges(e,Js(o))})}setupPortSyncEffect(){let e,t,o=!0;me(()=>{let i=this.size(),r=this.rotate();if(o)return o=!1,e=i,void(t=r);(i?.width!==e?.width||i?.height!==e?.height||r!==t)&&(e=i,t=r,this.syncPorts())})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-node"]],inputs:{node:[1,"node"]},features:[fn([{directive:Uu,inputs:["node","node"]},{directive:Hu,inputs:["node","node"]},{directive:Lu,inputs:["targetData","node"]},{directive:tp,inputs:["targetData","node"]},{directive:fa,inputs:["data","node"]}])],ngContentSelectors:Mt,decls:2,vars:2,consts:[[1,"node-content"]],template:function(t,o){t&1&&(Ye(),B(0,"div",0),We(1),A()),t&2&&Ue("transform",o.rotate())},styles:["[_nghost-%COMP%]{position:absolute;top:0;left:0;transform-origin:0 0;pointer-events:none;-webkit-user-select:none;user-select:none;cursor:pointer}.node-content[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;transform-origin:center center;pointer-events:all}"]})},rr=class{nodeComponent=f(ya,{optional:!0});isRenderedOnCanvas=b(()=>!!this.nodeComponent)},va=class n{inputEventsRouter=f(at);touchEventsStateService=f(xn);direction=I.required();targetData=I.required();ngOnDestroy(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp)}onPointerDown(e){if(!this.shouldHandle(e))return;this.touchEventsStateService.currentEvent.set(yt.Resize),e.preventDefault(),e.stopPropagation(),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"resize",phase:"start",target:this.targetData(),direction:this.direction(),targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY}}))}onPointerUp=e=>{document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),this.touchEventsStateService.clearCurrentEvent();let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"resize",phase:"end",target:this.targetData(),direction:this.direction(),targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY}}))};onPointerMove=e=>{if(this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.onPointerUp(e);let t=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},t),{name:"resize",phase:"continue",target:this.targetData(),direction:this.direction(),targetType:"node",lastInputPoint:{x:e.clientX,y:e.clientY}}))};shouldHandle(e){return!(e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramResize",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{direction:[1,"direction"],targetData:[1,"targetData"]}})},np=class n{position=I.required();classes=b(()=>`resize-handle resize-handle--${this.position()}`);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-resize-handle"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.classes())},inputs:{position:[1,"position"]},features:[fn([{directive:va,inputs:["direction","position","targetData","targetData"]}])],decls:0,vars:0,template:function(t,o){},styles:['[_nghost-%COMP%]:before{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%}.resize-handle[_nghost-%COMP%]{position:absolute;width:var(--ngd-resize-handle-size);height:var(--ngd-resize-handle-size);background-color:var(--ngd-resize-handle-background-color);border:var(--ngd-resize-handle-border-size) var(--ngd-resize-handle-border-style) var(--ngd-resize-handle-border-color);border-radius:var(--ngd-resize-handle-border-radius)}.resize-handle--top-left[_nghost-%COMP%]{top:0;left:0;transform:translate(-50%,-50%);cursor:nwse-resize}.resize-handle--top-right[_nghost-%COMP%]{top:0;right:0;transform:translate(50%,-50%);cursor:nesw-resize}.resize-handle--bottom-left[_nghost-%COMP%]{bottom:0;left:0;transform:translate(-50%,50%);cursor:nesw-resize}.resize-handle--bottom-right[_nghost-%COMP%]{bottom:0;right:0;transform:translate(50%,50%);cursor:nwse-resize}']})},op=class n{position=I.required();classes=b(()=>`resize-line resize-line--${this.position()}`);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-resize-line"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.classes())},inputs:{position:[1,"position"]},features:[fn([{directive:va,inputs:["direction","position","targetData","targetData"]}])],decls:0,vars:0,template:function(t,o){},styles:['[_nghost-%COMP%]:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-line[_nghost-%COMP%]{position:absolute}.resize-line--top[_nghost-%COMP%]:before, .resize-line--bottom[_nghost-%COMP%]:before{width:100%;height:8px}.resize-line--right[_nghost-%COMP%]:before, .resize-line--left[_nghost-%COMP%]:before{width:8px;height:100%}.resize-line--top[_nghost-%COMP%]{top:0;left:0;width:100%;border-top:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ns-resize;transform:translateY(-50%)}.resize-line--right[_nghost-%COMP%]{top:0;right:0;height:100%;border-right:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ew-resize;transform:translate(50%)}.resize-line--bottom[_nghost-%COMP%]{bottom:0;left:0;width:100%;border-bottom:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ns-resize;transform:translateY(50%)}.resize-line--left[_nghost-%COMP%]{top:0;left:0;height:100%;border-left:var(--ngd-resize-line-border-width) var(--ngd-resize-line-border-style) var(--ngd-resize-line-border-color);cursor:ew-resize;transform:translate(-50%)}']})},Jo=class n extends rr{diagramService=f(Tt);defaultResizable=I(void 0);nodeData=b(()=>this.nodeComponent?.node());dataResizable=b(()=>this.nodeData()?.resizable);isResizable=b(()=>this.dataResizable()??this.defaultResizable()??this.diagramService.config().resize?.defaultResizable);showAdornment=b(()=>!!this.isResizable()&&this.nodeData()?.selected&&this.isRenderedOnCanvas()&&!this.nodeData()?.angle);linePositions=["top","right","bottom","left"];handlePositions=["top-left","top-right","bottom-left","bottom-right"];static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-node-resize-adornment"]],inputs:{defaultResizable:[1,"defaultResizable"]},features:[mn],ngContentSelectors:Mt,decls:2,vars:1,consts:[[3,"position","targetData"]],template:function(t,o){t&1&&(Ye(),We(0),E(1,HC,4,0)),t&2&&(p(),P(o.showAdornment()?1:-1))},dependencies:[op,np],styles:["[_nghost-%COMP%]{display:flex;position:relative;width:100%;height:100%}"]})},ip=class n{node=I.required();isSelected=b(()=>this.node().selected??!1);highlighted=b(()=>this.node().highlighted??!1);classes=b(()=>"ng-diagram-group "+(this.highlighted()?"highlight":""));static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-group-template"]],inputs:{node:[1,"node"]},ngContentSelectors:Mt,decls:3,vars:3,consts:[["ngDiagramNodeSelected","","ngDiagramGroupHighlighted","",3,"node"]],template:function(t,o){t&1&&(Ye(),v(0,"ng-diagram-node-resize-adornment")(1,"div",0),We(2),y()()),t&2&&(p(),ft(o.classes()),L("node",o.node()))},dependencies:[Jo,ga,ku],styles:["[_nghost-%COMP%]:hover .ng-diagram-group[_ngcontent-%COMP%]{border-color:var(--ngd-group-border-color-hover)}.ng-diagram-group[_ngcontent-%COMP%]{display:flex;border-radius:var(--ngd-group-border-radius);padding:.625rem;background-color:var(--ngd-node-bg-primary-default);border:.0625rem solid var(--ngd-group-border-color);width:100%;height:100%;box-sizing:border-box}"]})},pE={topLeft:"top-left",topCenter:"top-center",topRight:"top-right",centerLeft:"center-left",center:"center",centerRight:"center-right",bottomLeft:"bottom-left",bottomCenter:"bottom-center",bottomRight:"bottom-right"},lo=class n extends rr{hostElement=f(rt);flowCoreProvider=f(Te);batchResizeObserver=f(Un);linkingInputDirective=f(ua);isInitialized=H(!1);lastSide=H(void 0);lastType=H(void 0);lastOriginPoint;ownerInternalId;nodeData=b(()=>this.nodeComponent?.node());id=I.required();type=I.required();side=I.required();originPoint=I("center");get portClass(){let e=pE[this.originPoint()]||"center";return`ng-diagram-port ${this.hasContent?"custom-content":""} ${this.side()} origin-${e}`}constructor(){super(),me(()=>{let e=this.nodeData(),t=this.isInitialized(),o=this.side(),i=this.type(),r=this.originPoint();if(!t||!e)return;let s={};this.lastSide()!==o&&(this.lastSide.set(o),s.side=o),this.lastType()!==i&&(this.lastType.set(i),s.type=i);let a=this.lastOriginPoint!==r;a&&(this.lastOriginPoint=r),Object.keys(s).length>0&&this.flowCoreProvider.provide().updater.applyPortChanges(e.id,[{portId:this.id(),portChanges:s}]),(s.side||a)&&this.batchResizeObserver.invalidate(this.hostElement.nativeElement)}),me(()=>{let e=this.nodeData();this.isInitialized()&&e&&xe(()=>{this.linkingInputDirective.setTargetNode(e)})})}ngOnInit(){this.lastSide.set(this.side()),this.lastType.set(this.type()),this.lastOriginPoint=this.originPoint();let e=this.nodeData();e&&(this.ownerInternalId=e._internalId,this.flowCoreProvider.provide().updater.addPort(e.id,{id:this.id(),type:this.type(),nodeId:e.id,side:this.side()}),this.batchResizeObserver.observe(this.hostElement.nativeElement,{type:"port",nodeId:e.id,portId:this.id()}),this.isInitialized.set(!0))}ngOnDestroy(){this.batchResizeObserver.unobserve(this.hostElement.nativeElement);let e=this.id(),t=this.nodeData();if(!t)return;let o=this.flowCoreProvider.provide();if(!o.isInitialized)return;let i=o.getNodeById(t.id);i&&(this.ownerInternalId&&i._internalId!==this.ownerInternalId||o.isVirtualizationActive&&!o.isNodeCurrentlyRendered(t.id)||o.internalUpdater.deletePort(t.id,e))}custom=st("contentProjection");hasContent=!1;ngAfterContentInit(){this.hasContent=(this.custom()?.nativeElement?.childNodes?.length??0)>0}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-port"]],viewQuery:function(t,o){t&1&&ht(o.custom,_p,5),t&2&&gt()},hostVars:5,hostBindings:function(t,o){t&2&&(J("data-port-id",o.id()),ft(o.portClass),Ue("display",o.isRenderedOnCanvas()?"block":"none"))},inputs:{id:[1,"id"],type:[1,"type"],side:[1,"side"],originPoint:[1,"originPoint"]},features:[fn([{directive:ua,inputs:["portId","id"]}]),mn],ngContentSelectors:Mt,decls:3,vars:0,consts:[["contentProjection",""],[1,"content-projection"]],template:function(t,o){t&1&&(Ye(),B(0,"div",1,0),We(2),A())},styles:['[_nghost-%COMP%]{position:absolute;width:fit-content;height:fit-content;inset:0;box-sizing:content-box;z-index:2;border-radius:var(--ngd-port-border-radius);cursor:crosshair}[_nghost-%COMP%]:has(.content-projection:not(:empty)){--ngd-port-border-radius: 0%}[_nghost-%COMP%]:has(.content-projection:empty), [_nghost-%COMP%] .content-projection[_ngcontent-%COMP%]:not(:empty){display:flex;background:var(--ngd-port-background-color);border:var(--ngd-port-border-size) solid var(--ngd-port-border-color);border-radius:var(--ngd-port-border-radius);transition-property:background-color,border-color,outline,box-shadow;transition-timing-function:ease-in-out;transition-duration:.1s;transform-origin:center}[_nghost-%COMP%]:has(.content-projection:empty){width:var(--ngd-port-size);height:var(--ngd-port-size)}[_nghost-%COMP%]:has(.content-projection:empty):before{content:"";position:absolute;width:18px;height:18px;top:50%;left:50%;translate:-50% -50%;border-radius:var(--ngd-port-border-radius)}.left[_nghost-%COMP%]{top:50%;left:0}.right[_nghost-%COMP%]{top:50%;left:100%}.top[_nghost-%COMP%]{top:0;left:50%}.bottom[_nghost-%COMP%]{top:100%;left:50%}.origin-top-left[_nghost-%COMP%]{transform:translate(0)}.origin-top-center[_nghost-%COMP%]{transform:translate(-50%)}.origin-top-right[_nghost-%COMP%]{transform:translate(-100%)}.origin-center-left[_nghost-%COMP%]{transform:translateY(-50%)}.origin-center[_nghost-%COMP%]{transform:translate(-50%,-50%)}.origin-center-right[_nghost-%COMP%]{transform:translate(-100%,-50%)}.origin-bottom-left[_nghost-%COMP%]{transform:translateY(-100%)}.origin-bottom-center[_nghost-%COMP%]{transform:translate(-50%,-100%)}.origin-bottom-right[_nghost-%COMP%]{transform:translate(-100%,-100%)}']})},rp=class n{inputEventsRouter=f(at);touchEventsStateService=f(xn);targetData=I();ngOnDestroy(){this.cleanup()}onPointerDown(e){if(!this.shouldHandle(e))return;e.rotateHandled=!0,this.touchEventsStateService.currentEvent.set(yt.Rotate);let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},o),{name:"rotate",phase:"start",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)})),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerCancel)}onPointerMove=e=>{if(this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())return void this.onPointerUp(e);e.rotateHandled=!0;let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},o),{name:"rotate",phase:"continue",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)}))};onPointerUp=e=>{let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},o),{name:"rotate",phase:"end",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)})),this.cleanup()};onPointerCancel=e=>{let t=this.targetData();if(!t)return;let o=this.inputEventsRouter.getBaseEvent(e);this.inputEventsRouter.emit(_(h({},o),{name:"rotate",phase:"end",target:t,lastInputPoint:{x:e.clientX,y:e.clientY},center:this.getNodeCenter(t)})),this.cleanup()};shouldHandle(e){return!(e.boxSelectionHandled||this.touchEventsStateService.panningHandled()||this.touchEventsStateService.zoomingHandled())}cleanup(){this.touchEventsStateService.clearCurrentEvent(),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerCancel)}getNodeCenter(e){let{x:t,y:o}=e.position,{width:i,height:r}=e.size||{width:0,height:0};return{x:t+i/2,y:o+r/2}}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramRotateHandle",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{targetData:[1,"targetData"]}})},sp=class n{custom=st("contentProjection");data=I.required();isRotating=H(!1);hasCustomHandle=!1;ngAfterContentInit(){this.hasCustomHandle=(this.custom()?.nativeElement?.childNodes?.length??0)>0}get pointerDownAttr(){return this.isRotating()?"true":null}pointerDown(){this.isRotating.set(!0)}pointerUp(){this.isRotating.set(!1)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-rotate-handle"]],viewQuery:function(t,o){t&1&&ht(o.custom,_p,5),t&2&&gt()},hostVars:5,hostBindings:function(t,o){t&1&&O("pointerdown",function(){return o.pointerDown()})("pointerup",function(){return o.pointerUp()},Nt),t&2&&(J("data-rotating",o.pointerDownAttr),Y("rotate-handle",!o.hasCustomHandle)("ng-diagram-rotate-handle",!0))},inputs:{data:[1,"data"]},features:[fn([{directive:rp,inputs:["targetData","data"]}])],ngContentSelectors:Mt,decls:4,vars:1,consts:[["contentProjection",""],[1,"content-projection"],["xmlns","http://www.w3.org/2000/svg","width","18","height","19","viewBox","0 0 18 19","fill","none"],["d","M15.75 9.5637C15.7502 11.3383 15.0515 13.0416 13.8051 14.3049C12.5588 15.5682 10.8651 16.2899 9.0907 16.3137H9C7.27611 16.318 5.61676 15.6583 4.36641 14.4715C4.31271 14.4207 4.26955 14.3599 4.23938 14.2924C4.20921 14.2249 4.19262 14.1522 4.19056 14.0783C4.1885 14.0044 4.20102 13.9309 4.22739 13.8618C4.25376 13.7928 4.29347 13.7296 4.34426 13.6759C4.39504 13.6222 4.45591 13.5791 4.52337 13.5489C4.59084 13.5187 4.66359 13.5021 4.73746 13.5001C4.81134 13.498 4.8849 13.5105 4.95394 13.5369C5.02298 13.5633 5.08615 13.603 5.13984 13.6538C5.94408 14.4122 6.95396 14.9169 8.04335 15.1047C9.13273 15.2926 10.2533 15.1553 11.2651 14.7099C12.2769 14.2646 13.1351 13.531 13.7324 12.6008C14.3297 11.6706 14.6396 10.585 14.6235 9.4797C14.6075 8.37436 14.266 7.29826 13.6419 6.38583C13.0178 5.4734 12.1387 4.76509 11.1144 4.34939C10.09 3.9337 8.96594 3.82904 7.88249 4.04849C6.79903 4.26794 5.80425 4.80178 5.02242 5.58331C5.01668 5.58952 5.01057 5.59539 5.00414 5.60089L3.13523 7.3137H5.0625C5.21168 7.3137 5.35476 7.37296 5.46025 7.47845C5.56574 7.58394 5.625 7.72701 5.625 7.8762C5.625 8.02538 5.56574 8.16846 5.46025 8.27395C5.35476 8.37944 5.21168 8.4387 5.0625 8.4387H1.6875C1.53832 8.4387 1.39524 8.37944 1.28975 8.27395C1.18426 8.16846 1.125 8.02538 1.125 7.8762V4.5012C1.125 4.35201 1.18426 4.20894 1.28975 4.10345C1.39524 3.99796 1.53832 3.9387 1.6875 3.9387C1.83668 3.9387 1.97976 3.99796 2.08525 4.10345C2.19074 4.20894 2.25 4.35201 2.25 4.5012V6.59651L4.23633 4.78245C5.18131 3.84113 6.384 3.20089 7.69256 2.94253C9.00112 2.68418 10.3569 2.8193 11.5887 3.33084C12.8205 3.84238 13.8732 4.7074 14.6138 5.81671C15.3544 6.92602 15.7498 8.22988 15.75 9.5637Z","fill","white"]],template:function(t,o){t&1&&(Ye(),B(0,"div",1,0),We(2),A(),E(3,UC,2,0,":svg:svg",2)),t&2&&(p(3),P(o.hasCustomHandle?-1:3))},styles:[".content-projection[_ngcontent-%COMP%]:not(:empty){width:100%;height:100%}.rotate-handle[_nghost-%COMP%]{background-color:var(--ngd-rotate-handle-background-color);border-radius:50%;transition:background-color .1s ease-in-out}.rotate-handle[_nghost-%COMP%]:hover, .rotate-handle[_nghost-%COMP%]:focus-visible{background-color:var(--ngd-rotate-handle-background-color-hover)}.rotate-handle[data-rotating][_nghost-%COMP%], .rotate-handle.active[_nghost-%COMP%]{background-color:var(--ngd-rotate-handle-background-color-active)}[_nghost-%COMP%]{display:flex;justify-content:center;align-items:center;width:var(--ngd-rotate-handle-size);height:var(--ngd-rotate-handle-size);position:absolute;transform:translate(50%,-50%);z-index:10;box-sizing:border-box;pointer-events:auto;cursor:grab;top:var(--ngd-rotate-handle-top);right:var(--ngd-rotate-handle-right);bottom:var(--ngd-rotate-handle-bottom);left:var(--ngd-rotate-handle-left)}[data-rotating][_nghost-%COMP%], .active[_nghost-%COMP%], .active[_nghost-%COMP%], .active [_nghost-%COMP%]{cursor:grabbing}"]})},ap=class n extends rr{diagramService=f(Tt);defaultRotatable=I(void 0);dataRotatable=b(()=>this.nodeData()?.rotatable);isRotating=H(!1);nodeData=b(()=>this.nodeComponent?.node());isRotatable=b(()=>this.dataRotatable()??this.defaultRotatable()??this.diagramService.config().nodeRotation?.defaultRotatable);eventTarget=b(()=>({type:"rotate-handle",element:this.nodeData()}));showAdornment=b(()=>!!this.nodeData()?.selected&&this.isRenderedOnCanvas()&&!!this.isRotatable());static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275cmp=F({type:n,selectors:[["ng-diagram-node-rotate-adornment"]],hostAttrs:[1,"node-rotate-adornment"],inputs:{defaultRotatable:[1,"defaultRotatable"]},features:[mn],ngContentSelectors:Mt,decls:1,vars:1,consts:[[3,"data"]],template:function(t,o){t&1&&(Ye(),E(0,jC,2,1,"ng-diagram-rotate-handle",0)),t&2&&P(o.showAdornment()?0:-1)},dependencies:[sp],styles:["[_nghost-%COMP%]{position:absolute;inset:0;pointer-events:none}"]})},dp=class n{diagramService=f(Tt);node=I.required();isSelected=b(()=>this.node().selected??!1);classes=b(()=>"node "+(this.isSelected()?"isSelected":""));enablePortHover=b(()=>!this.diagramService.actionState().resize);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-base-node-template"]],hostVars:4,hostBindings:function(t,o){t&2&&Y("isSelected",o.isSelected())("ng-diagram-port-hoverable-over-node",o.enablePortHover())},inputs:{node:[1,"node"]},ngContentSelectors:Mt,decls:6,vars:3,consts:[["ngDiagramNodeSelected","",3,"node"],["id","port-left","type","both","side","left"],["id","port-right","type","both","side","right"]],template:function(t,o){t&1&&(Ye(),$(0,"ng-diagram-node-rotate-adornment"),v(1,"ng-diagram-node-resize-adornment")(2,"div",0),We(3),y(),$(4,"ng-diagram-port",1)(5,"ng-diagram-port",2),y()),t&2&&(p(2),ft(o.classes()),L("node",o.node()))},dependencies:[lo,ga,Jo,ap],styles:["[_nghost-%COMP%]:hover .node[_ngcontent-%COMP%]{border-color:var(--ngd-node-border-color-hover)}.node[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;padding:.5rem;width:100%;background-color:var(--ngd-node-bg-primary-default);border:var(--ngd-node-border-size) solid var(--ngd-node-border-color);color:var(--ngd-txt-primary-default);border-radius:var(--ngd-node-border-radius)}.node.isSelected[_ngcontent-%COMP%]{border-color:var(--ngd-node-border-color-hover)}"]})},lp=class n{node=I.required();label=b(()=>{let e=this.node().data;return"label"in e?e.label:this.node().id});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-default-node-template"]],inputs:{node:[1,"node"]},decls:3,vars:2,consts:[[3,"node"]],template:function(t,o){t&1&&(v(0,"ng-diagram-base-node-template",0)(1,"span"),C(2),y()()),t&2&&(L("node",o.node()),p(2),se(o.label()))},dependencies:[dp],encapsulation:2})},sr=class n{panel=H(null);position=b(()=>this.panel()?.position());register(e){this.panel.set(e)}unregister(){this.panel.set(null)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},hE={"bottom-right":["top-right","bottom-left","top-left"],"top-right":["bottom-right","top-left","bottom-left"],"bottom-left":["top-left","bottom-right","top-right"],"top-left":["bottom-left","top-right","bottom-right"]},cp=class n{preferredPosition=I(void 0);panelRegistry=f(sr);position=b(()=>{let e=this.preferredPosition()??"bottom-right",t=this.panelRegistry.position();return t!==e?e:hE[e].find(o=>o!==t)??e});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-watermark"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.position())},inputs:{preferredPosition:[1,"preferredPosition"]},decls:5,vars:0,consts:[["href","https://www.ngdiagram.dev/","target","_blank"],[1,"sr-only"],["width","479","height","90","viewBox","0 0 479 90","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M78.1895 20.5088C82.5953 20.5088 85.9324 21.2858 88.2002 22.8408C90.468 24.3959 92.1205 26.0165 93.1572 27.7012H94.9062V21.8691H106.958V78.6289C106.958 81.9333 105.986 84.5572 104.042 86.501C102.098 88.5096 99.5063 89.5146 96.2666 89.5146H64V78.8232H91.9902C93.8044 78.8232 94.7119 77.8511 94.7119 75.9072V63.3701H92.9629C92.315 64.4068 91.4075 65.4757 90.2412 66.5771C89.075 67.6138 87.5199 68.4884 85.5762 69.2012C83.6324 69.9139 81.1699 70.2705 78.1895 70.2705C74.2371 70.2705 70.5762 69.3312 67.207 67.4521C63.9026 65.5083 61.2459 62.7541 59.2373 59.1904C57.2288 55.562 56.2246 51.2208 56.2246 46.167V44.6123C56.2246 39.5584 57.2287 35.2492 59.2373 31.6855C61.2458 28.0572 63.9027 25.3038 67.207 23.4248C70.5763 21.481 74.2371 20.5088 78.1895 20.5088ZM278.176 20.5088C282.582 20.5088 285.919 21.2858 288.187 22.8408C290.454 24.3959 292.107 26.0165 293.144 27.7012H294.893V21.8691H306.944V78.6289C306.944 81.9333 305.972 84.5572 304.028 86.501C302.085 88.5096 299.493 89.5146 296.253 89.5146H263.986V78.8232H291.977C293.791 78.8232 294.698 77.8511 294.698 75.9072V63.3701H292.949C292.301 64.4068 291.394 65.4757 290.228 66.5771C289.061 67.6138 287.506 68.4885 285.562 69.2012C283.619 69.9139 281.156 70.2705 278.176 70.2705C274.223 70.2705 270.563 69.3311 267.193 67.4521C263.889 65.5083 261.232 62.7541 259.224 59.1904C257.215 55.562 256.211 51.2208 256.211 46.167V44.6123C256.211 39.5584 257.215 35.2492 259.224 31.6855C261.232 28.0572 263.889 25.3038 267.193 23.4248C270.563 21.481 274.223 20.5088 278.176 20.5088ZM225.268 20.5088C231.617 20.5088 236.639 22.0958 240.332 25.2705C244.025 28.4454 245.872 33.0464 245.872 39.0723V57.0527C245.872 58.9964 246.78 59.9678 248.594 59.9678H252.481V70.0762H244.317C241.92 70.0762 239.944 69.4933 238.389 68.3271C236.834 67.1609 236.056 65.605 236.056 63.6611V63.5645H234.209C233.95 64.342 233.367 65.3791 232.46 66.6748C231.553 67.9058 230.127 69.0067 228.184 69.9785C226.24 70.9504 223.583 71.4365 220.214 71.4365C216.78 71.4365 213.703 70.8537 210.981 69.6875C208.26 68.4565 206.09 66.707 204.47 64.4395C202.915 62.1069 202.137 59.2879 202.137 55.9834C202.137 52.6789 202.915 49.9247 204.47 47.7217C206.09 45.4541 208.292 43.7694 211.078 42.668C213.929 41.5017 217.169 40.919 220.797 40.9189H234.015V38.1973C234.015 35.9295 233.302 34.0827 231.877 32.6572C230.451 31.167 228.183 30.4219 225.073 30.4219C222.028 30.4219 219.761 31.1351 218.271 32.5605C216.78 33.9212 215.808 35.7032 215.354 37.9062L204.08 34.1152C204.858 31.6531 206.089 29.4178 207.773 27.4092C209.523 25.3358 211.823 23.6832 214.674 22.4521C217.589 21.1563 221.121 20.5088 225.268 20.5088ZM374.047 20.5088C380.396 20.5088 385.418 22.0959 389.111 25.2705C392.805 28.4454 394.651 33.0464 394.651 39.0723V57.0527C394.651 58.9964 395.559 59.9678 397.373 59.9678H401.261V70.0762H393.097C390.699 70.0762 388.723 69.4933 387.168 68.3271C385.613 67.1609 384.835 65.605 384.835 63.6611V63.5645H382.988C382.729 64.342 382.146 65.3791 381.239 66.6748C380.332 67.9058 378.906 69.0067 376.963 69.9785C375.019 70.9504 372.362 71.4365 368.993 71.4365C365.559 71.4365 362.482 70.8537 359.761 69.6875C357.04 68.4565 354.869 66.707 353.249 64.4395C351.694 62.1069 350.916 59.2879 350.916 55.9834C350.916 52.6789 351.694 49.9247 353.249 47.7217C354.869 45.4541 357.072 43.7694 359.857 42.668C362.708 41.5017 365.948 40.919 369.576 40.9189H382.794V38.1973C382.794 35.9295 382.082 34.0827 380.656 32.6572C379.231 31.167 376.963 30.4219 373.853 30.4219C370.807 30.4219 368.54 31.1351 367.05 32.5605C365.56 33.9212 364.587 35.7032 364.134 37.9062L352.859 34.1152C353.637 31.6531 354.868 29.4178 356.553 27.4092C358.302 25.3358 360.602 23.6832 363.453 22.4521C366.369 21.1563 369.9 20.5088 374.047 20.5088ZM28.5029 21.0918C32.2609 21.0918 35.5332 21.9664 38.3193 23.7158C41.1701 25.4004 43.3727 27.7654 44.9277 30.8105C46.4828 33.7911 47.2607 37.2904 47.2607 41.3076V70.0762H35.0146V42.2793C35.0146 38.6509 34.1072 35.9294 32.293 34.1152C30.5436 32.3012 28.017 31.3936 24.7129 31.3936C20.9549 31.3936 18.0392 32.6577 15.9658 35.1846C13.8924 37.6468 12.8555 41.1132 12.8555 45.584V70.0762H0.609375V21.8691H12.6611V28.1865H14.4102C15.1877 26.5019 16.6461 24.915 18.7842 23.4248C20.9224 21.8697 24.1618 21.0918 28.5029 21.0918ZM144.251 2.04199C153.387 2.04207 160.319 4.37504 165.049 9.04004C169.844 13.6404 172.241 20.5086 172.241 29.6445V42.4736C172.241 51.6096 169.844 58.5106 165.049 63.1758C160.319 67.7759 153.386 70.0761 144.251 70.0762H116.26V58.8018H125.201V13.3164H116.26V2.04199H144.251ZM193.622 70.0762H181.376V21.8691H193.622V70.0762ZM347.539 32.5605H341.513C338.403 32.5606 335.843 33.4024 333.835 35.0869C331.826 36.7067 330.822 39.234 330.822 42.668V70.0762H318.576V21.8691H330.628V27.3115H332.377C333.09 25.3679 334.256 23.9422 335.876 23.0352C337.56 22.1281 339.504 21.6749 341.707 21.6748H347.539V32.5605ZM461.921 21.0918C464.901 21.0919 467.59 21.7394 469.987 23.0352C472.449 24.2662 474.393 26.1779 475.818 28.7695C477.309 31.2965 478.054 34.504 478.054 38.3916V70.0762H465.808V39.2666C465.808 36.61 465.127 34.6338 463.767 33.3379C462.406 31.9774 460.495 31.2969 458.033 31.2969C455.247 31.2969 453.077 32.2043 451.521 34.0186C450.031 35.7679 449.286 38.2944 449.286 41.5986V70.0762H437.04V39.2666C437.04 36.6101 436.36 34.6338 434.999 33.3379C433.638 31.9772 431.727 31.2969 429.265 31.2969C426.479 31.2969 424.308 32.2043 422.753 34.0186C421.263 35.7679 420.518 38.2945 420.518 41.5986V70.0762H408.271V21.8691H420.323V27.1172H422.072C422.915 25.4974 424.308 24.1047 426.252 22.9385C428.196 21.7075 430.755 21.0918 433.93 21.0918C437.364 21.0918 440.117 21.7723 442.19 23.1328C444.264 24.4287 445.852 26.146 446.953 28.2842H448.702C449.804 26.2108 451.36 24.4935 453.368 23.1328C455.377 21.7723 458.228 21.0918 461.921 21.0918ZM221.672 50.0547C219.404 50.0547 217.622 50.5408 216.326 51.5127C215.03 52.4846 214.383 53.8454 214.383 55.5947C214.383 57.3441 215.063 58.7696 216.424 59.8711C217.784 60.9725 219.761 61.5234 222.353 61.5234C225.786 61.5234 228.573 60.5841 230.711 58.7051C232.914 56.7613 234.015 54.2013 234.015 51.0264V50.0547H221.672ZM370.451 50.0547C368.183 50.0547 366.401 50.5408 365.105 51.5127C363.81 52.4846 363.162 53.8454 363.162 55.5947C363.162 57.3441 363.842 58.7696 365.203 59.8711C366.564 60.9725 368.54 61.5234 371.132 61.5234C374.566 61.5234 377.352 60.5841 379.49 58.7051C381.693 56.7613 382.794 54.2013 382.794 51.0264V50.0547H370.451ZM81.6885 31.1992C77.9305 31.1992 74.7877 32.3985 72.2607 34.7959C69.734 37.1284 68.4708 40.4976 68.4707 44.9033V45.876C68.4708 50.2169 69.734 53.5861 72.2607 55.9834C74.7877 58.3808 77.9305 59.5791 81.6885 59.5791C85.4465 59.5791 88.5893 58.3808 91.1162 55.9834C93.6429 53.5861 94.9062 50.2169 94.9062 45.876V44.9033C94.9062 40.4976 93.6429 37.1284 91.1162 34.7959C88.6541 32.3985 85.5113 31.1992 81.6885 31.1992ZM281.675 31.1992C277.917 31.1992 274.774 32.3985 272.247 34.7959C269.72 37.1284 268.457 40.4976 268.457 44.9033V45.876C268.457 50.2169 269.72 53.5861 272.247 55.9834C274.774 58.3808 277.917 59.5791 281.675 59.5791C285.433 59.5791 288.576 58.3808 291.103 55.9834C293.629 53.5861 294.892 50.2169 294.893 45.876V44.9033C294.893 40.4976 293.629 37.1284 291.103 34.7959C288.64 32.3985 285.498 31.1992 281.675 31.1992ZM138.03 58.4131H144.445C149.629 58.413 153.419 57.0523 155.816 54.3311C158.214 51.6097 159.412 47.7866 159.412 42.8623V29.2559C159.412 24.2668 158.214 20.4437 155.816 17.7871C153.419 15.0658 149.629 13.7052 144.445 13.7051H138.03V58.4131ZM187.499 0.681641C189.767 0.681641 191.646 1.3939 193.137 2.81934C194.627 4.24481 195.372 6.12444 195.372 8.45703C195.372 10.7894 194.627 12.6683 193.137 14.0938C191.646 15.5192 189.767 16.2324 187.499 16.2324C185.296 16.2324 183.417 15.5192 181.862 14.0938C180.372 12.6683 179.627 10.7895 179.627 8.45703C179.627 6.12444 180.372 4.24481 181.862 2.81934C183.417 1.39408 185.296 0.681711 187.499 0.681641Z"]],template:function(t,o){t&1&&(B(0,"a",0)(1,"span",1),C(2,"ngDiagram"),A(),fe(),B(3,"svg",2),pt(4,"path",3),A()())},styles:["[_nghost-%COMP%]{position:absolute;width:var(--watermark-size)}.bottom-right[_nghost-%COMP%]{bottom:1rem;right:1rem}.top-right[_nghost-%COMP%]{top:1rem;right:1rem}.bottom-left[_nghost-%COMP%]{bottom:1rem;left:1rem}.top-left[_nghost-%COMP%]{top:1rem;left:1rem}[_nghost-%COMP%] svg[_ngcontent-%COMP%]{opacity:.7;height:100%;width:100%;display:block}[_nghost-%COMP%] svg[_ngcontent-%COMP%] path[_ngcontent-%COMP%]{fill:var(--watermark-fill)}[_nghost-%COMP%] [_ngcontent-%COMP%]:hover svg[_ngcontent-%COMP%]{opacity:1}[_nghost-%COMP%]{--watermark-size: min(4rem, 10%);--watermark-fill: #b3b3b3}[_nghost-%COMP%] .sr-only[_ngcontent-%COMP%]{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}"],changeDetection:1})},up=class n{inputEventsRouter=f(at);boxSelectionProvider=f(tr);flowCoreProvider=f(Te);touchEventsStateService=f(xn);touchStartPoint=null;isBoxSelectionActive=!1;longPressTimer=null;LONG_PRESS_DELAY=400;MOVE_THRESHOLD=10;onTouchStart(e){!this.isSingleTouch(e)||this.touchEventsStateService.rotateHandled()||this.touchEventsStateService.resizeHandled()||this.touchEventsStateService.linkingHandled()?this.cancelBoxSelection():(this.touchStartPoint={x:e.touches[0].clientX,y:e.touches[0].clientY},this.longPressTimer=setTimeout(()=>{this.isBoxSelectionActive=!0,this.touchEventsStateService.currentEvent.set(yt.BoxSelection);let t=e.touches[0]||this.touchStartPoint;t&&this.emitBoxSelectionEvent("start",e,t)},this.LONG_PRESS_DELAY))}onTouchMove(e){if(!this.isSingleTouch(e)||this.shouldCancelDuringLongPress(e))return void this.cancelBoxSelection();if(!this.isBoxSelectionActive||!this.touchStartPoint)return;let t=e.touches[0];this.emitBoxSelectionEvent("continue",e,t),this.updateBoundingBox(t),e.preventDefault(),e.stopPropagation()}onTouchEnd(e){if(this.clearLongPressTimer(),!this.isBoxSelectionActive)return void(this.touchStartPoint=null);let t=e.changedTouches[0]||e.touches[0]||this.touchStartPoint;t&&this.emitBoxSelectionEvent("end",e,t),this.touchEventsStateService.clearCurrentEvent(),this.cancelBoxSelection(),e.preventDefault(),e.stopPropagation()}cancelBoxSelection(){this.isBoxSelectionActive=!1,this.touchStartPoint=null,this.boxSelectionProvider.boundingBox.set(null),this.clearLongPressTimer()}clearLongPressTimer(){this.longPressTimer&&(clearTimeout(this.longPressTimer),this.longPressTimer=null)}isSingleTouch(e){return e.touches.length===1}shouldCancelDuringLongPress(e){if(!this.longPressTimer||!this.touchStartPoint||this.isBoxSelectionActive)return!1;let t=e.touches[0];return Math.max(Math.abs(t.clientX-this.touchStartPoint.x),Math.abs(t.clientY-this.touchStartPoint.y))>this.MOVE_THRESHOLD}emitBoxSelectionEvent(e,t,o){if(!o)return;let i=this.inputEventsRouter.getBaseEvent(t);this.inputEventsRouter.emit(_(h({},i),{name:"boxSelection",phase:e,target:void 0,targetType:"diagram",lastInputPoint:{x:"clientX"in o?o.clientX:o.x,y:"clientY"in o?o.clientY:o.y}}))}updateBoundingBox(e){let t=this.flowCoreProvider.provide(),{x:o,y:i}=t.clientToFlowViewportPosition(this.touchStartPoint),{x:r,y:s}=t.clientToFlowViewportPosition({x:e.clientX,y:e.clientY}),a=Math.min(o,r),d=Math.min(i,s),l=Math.abs(r-o),c=Math.abs(s-i);this.boxSelectionProvider.boundingBox.set({x:a,y:d,width:l,height:c})}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramMobileBoxSelection",""]],hostBindings:function(t,o){t&1&&O("touchstart",function(r){return o.onTouchStart(r)})("touchmove",function(r){return o.onTouchMove(r)})("touchend",function(r){return o.onTouchEnd(r)})("touchcancel",function(r){return o.onTouchEnd(r)})}})},ar=class n{elementRef=f(rt);flowCoreProvider=f(Te);renderer=f(an);flowResizeBatchProcessor=f(oa);flowOffsetService=f(na);templateProviderService=f(ma);initializedModel=null;resizeObserver=null;config=I();model=I.required();middlewares=I(cE);nodeTemplateMap=I(new Qo);edgeTemplateMap=I(new Xo);nodes=this.renderer.nodes;edges=this.renderer.edges;viewport=this.renderer.viewport;viewportPannable=this.renderer.viewportPannable;diagramInit=new _e;edgeDrawn=new _e;edgeDrawEnded=new _e;selectionMoved=new _e;selectionChanged=new _e;selectionGestureEnded=new _e;selectionRemoved=new _e;groupMembershipChanged=new _e;selectionRotated=new _e;nodeRotateStarted=new _e;nodeRotateEnded=new _e;viewportChanged=new _e;clipboardPasted=new _e;nodeResized=new _e;nodeResizeStarted=new _e;nodeResizeEnded=new _e;paletteItemDropped=new _e;nodeDragStarted=new _e;nodeDragEnded=new _e;constructor(){me(()=>{let e=this.model();this.initializedModel!=e&&(xe(()=>{this.renderer.isInitialized.set(!1),this.renderer.viewportPannable.set(this.config()?.viewportPanningEnabled??!0),this.flowCoreProvider.destroy(),this.flowOffsetService.reset(),this.flowCoreProvider.init(e,this.middlewares(),this.flowOffsetService.getFlowOffset,this.getViewportSize,this.config())}),this.initializedModel=e,this.flowOffsetService.initialize(this.elementRef.nativeElement),this.setupEventBridge())}),me(()=>{let e=this.nodeTemplateMap();this.templateProviderService.setNodeTemplateMap(e)}),me(()=>{let e=this.edgeTemplateMap();this.templateProviderService.setEdgeTemplateMap(e)})}ngOnInit(){this.flowResizeBatchProcessor.initialize(),this.setupViewportSizeTracking()}ngOnDestroy(){this.flowCoreProvider.destroy(),this.cleanupViewportSizeTracking()}getNodeTemplate(e){return this.templateProviderService.getNodeTemplate(e)}getEdgeTemplate(e){return this.templateProviderService.getEdgeTemplate(e)}trackNode=(e,t)=>t._internalId||t.id;trackEdge=(e,t)=>t._internalId||t.id;isGroup(e){return"isGroup"in e}castToGroupNode(e){return e}getBoundingClientRect(){return this.elementRef.nativeElement.getBoundingClientRect()}getViewportSize=()=>{let{width:e,height:t}=this.elementRef.nativeElement.getBoundingClientRect();return{width:e,height:t}};setupViewportSizeTracking(){if(typeof ResizeObserver>"u")return;this.resizeObserver=new ResizeObserver(t=>{let o=t[0];if(o){this.flowOffsetService.invalidateCache();let{width:i,height:r}=o.contentRect;this.updateViewportSize(i,r)}}),this.resizeObserver.observe(this.elementRef.nativeElement);let e=this.elementRef.nativeElement.getBoundingClientRect();this.updateViewportSize(e.width,e.height)}cleanupViewportSizeTracking(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}updateViewportSize(e,t){if(!this.flowCoreProvider.isInitialized())return;let o=this.flowCoreProvider.provide(),i=o.getState().metadata.viewport;i.width===e&&i.height===t||o.applyUpdate({metadataUpdate:{viewport:_(h({},i),{width:e,height:t})}},"updateViewportSize")}setupEventBridge(){let e=this.flowCoreProvider.provide(),t=e.eventManager;t.on("diagramInit",o=>{setTimeout(()=>{this.renderer.isInitialized.set(!0),this.diagramInit.emit(o),e.config.zoom.zoomToFit.onInit&&e.commandHandler.emit("zoomToFit",{})})}),t.on("edgeDrawn",o=>this.edgeDrawn.emit(o)),t.on("edgeDrawEnded",o=>this.edgeDrawEnded.emit(o)),t.on("selectionMoved",o=>this.selectionMoved.emit(o)),t.on("selectionChanged",o=>this.selectionChanged.emit(o)),t.on("selectionGestureEnded",o=>this.selectionGestureEnded.emit(o)),t.on("selectionRemoved",o=>this.selectionRemoved.emit(o)),t.on("groupMembershipChanged",o=>this.groupMembershipChanged.emit(o)),t.on("selectionRotated",o=>this.selectionRotated.emit(o)),t.on("nodeRotateStarted",o=>this.nodeRotateStarted.emit(o)),t.on("nodeRotateEnded",o=>this.nodeRotateEnded.emit(o)),t.on("viewportChanged",o=>this.viewportChanged.emit(o)),t.on("clipboardPasted",o=>this.clipboardPasted.emit(o)),t.on("nodeResized",o=>this.nodeResized.emit(o)),t.on("nodeResizeStarted",o=>this.nodeResizeStarted.emit(o)),t.on("nodeResizeEnded",o=>this.nodeResizeEnded.emit(o)),t.on("paletteItemDropped",o=>this.paletteItemDropped.emit(o)),t.on("nodeDragStarted",o=>this.nodeDragStarted.emit(o)),t.on("nodeDragEnded",o=>this.nodeDragEnded.emit(o))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram"]],hostVars:2,hostBindings:function(t,o){t&2&&Y("pannable",o.viewportPannable())},inputs:{config:[1,"config"],model:[1,"model"],middlewares:[1,"middlewares"],nodeTemplateMap:[1,"nodeTemplateMap"],edgeTemplateMap:[1,"edgeTemplateMap"]},outputs:{diagramInit:"diagramInit",edgeDrawn:"edgeDrawn",edgeDrawEnded:"edgeDrawEnded",selectionMoved:"selectionMoved",selectionChanged:"selectionChanged",selectionGestureEnded:"selectionGestureEnded",selectionRemoved:"selectionRemoved",groupMembershipChanged:"groupMembershipChanged",selectionRotated:"selectionRotated",nodeRotateStarted:"nodeRotateStarted",nodeRotateEnded:"nodeRotateEnded",viewportChanged:"viewportChanged",clipboardPasted:"clipboardPasted",nodeResized:"nodeResized",nodeResizeStarted:"nodeResizeStarted",nodeResizeEnded:"nodeResizeEnded",paletteItemDropped:"paletteItemDropped",nodeDragStarted:"nodeDragStarted",nodeDragEnded:"nodeDragEnded"},features:[fn([Gu,Vu,up,Mu,$u,zu,Wu,Bu,Nu,Fu,Ou])],ngContentSelectors:WC,decls:10,vars:2,consts:[[1,"diagram-background-container"],[3,"viewport"],[1,"ng-diagram-node",3,"node"],[3,"preferredPosition"],[3,"edge"],[4,"ngComponentOutlet","ngComponentOutletInputs"],[3,"node"]],template:function(t,o){if(t&1&&(Ye(VC),v(0,"div",0),We(1),y(),v(2,"ng-diagram-canvas",1),X(3,XC,3,2,"ng-diagram-edge",null,o.trackEdge,!0),$(5,"ng-diagram-marker-arrow"),X(6,n_,4,3,"ng-diagram-node",2,o.trackNode,!0),y(),E(8,o_,1,1,"ng-diagram-watermark",3),$(9,"ng-diagram-box-selection")),t&2){let i;p(2),L("viewport",o.viewport()),p(),Q(o.edges()),p(3),Q(o.nodes()),p(2),P((i=o.config())!=null&&i.hideWatermark?-1:8)}},dependencies:[Ii,rs,Yu,ya,Ju,Xu,lp,ip,ep,cp,qu],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex;position:relative;overflow:hidden;background-color:var(--ngd-diagram-background-color);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transform:translateZ(0);-webkit-font-smoothing:antialiased;outline:none}.pannable[_nghost-%COMP%]{cursor:grab}.pannable.panning[_nghost-%COMP%]{cursor:grabbing}[_nghost-%COMP%] .diagram-background-container[_ngcontent-%COMP%]{width:100%;height:100%}"]})},pp=class n{panelRegistry=f(sr);position=I("bottom-right");ngAfterViewInit(){this.panelRegistry?.register(this)}ngOnDestroy(){this.panelRegistry?.unregister()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-panel"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.position())},inputs:{position:[1,"position"]},ngContentSelectors:Mt,decls:1,vars:0,template:function(t,o){t&1&&(Ye(),We(0))},styles:["[_nghost-%COMP%]{overflow:hidden;border-radius:var(--ngd-minimap-border-radius);padding:var(--ngd-minimap-padding);background-color:var(--ngd-minimap-background);box-shadow:0 8px 16px -4px var(--ngd-minimap-shadow-color);border:1px solid var(--ngd-minimap-border-color);display:flex;flex-direction:column;gap:var(--ngd-minimap-padding)}"]})},hp=class n{viewportService=f(dn);step=I(.1);zoomPercentage=b(()=>Math.round(100*this.viewportService.scale()));canZoomIn=b(()=>this.viewportService.scale()+this.step()<=this.viewportService.maxZoom);canZoomOut=b(()=>this.viewportService.scale()-this.step()>=this.viewportService.minZoom);zoomIn(){let e=this.viewportService.scale(),t=(e+this.step())/e;this.viewportService.zoom(t)}zoomOut(){let e=this.viewportService.scale(),t=(e-this.step())/e;this.viewportService.zoom(t)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-zoom-controls"]],inputs:{step:[1,"step"]},decls:7,vars:3,consts:[[1,"zoom-controls-container"],["aria-label","Zoom out",1,"nav-button",3,"click","disabled"],[1,"label"],["aria-label","Zoom in",1,"nav-button",3,"click","disabled"]],template:function(t,o){t&1&&(B(0,"div",0)(1,"button",1),ve("click",function(){return o.zoomOut()}),C(2,"\u2212"),A(),B(3,"span",2),C(4),A(),B(5,"button",3),ve("click",function(){return o.zoomIn()}),C(6,"+"),A()()),t&2&&(p(),ge("disabled",!o.canZoomOut()),p(3),U("",o.zoomPercentage(),"%"),p(),ge("disabled",!o.canZoomIn()))},styles:[".zoom-controls-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.zoom-controls-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{text-align:center;font-size:var(--ngd-zoom-controls-font-size);font-weight:var(--ngd-zoom-controls-font-weight);color:var(--ngd-zoom-controls-color);-webkit-user-select:none;user-select:none}.nav-button[_ngcontent-%COMP%]{width:var(--ngd-nav-button-size);height:var(--ngd-nav-button-size);color:var(--ngd-nav-button-color);border-radius:var(--ngd-nav-button-border-radius);padding:var(--ngd-nav-button-padding);border:none;background:none;box-sizing:content-box;cursor:pointer;font-size:var(--ngd-nav-button-size);line-height:var(--ngd-nav-button-size)}.nav-button[_ngcontent-%COMP%]:hover:not(:disabled){background-color:var(--ngd-nav-button-background-color-hover)}.nav-button[_ngcontent-%COMP%]:active{color:var(--ngd-nav-button-color-active)}.nav-button[_ngcontent-%COMP%]:disabled{color:var(--ngd-nav-button-color-disabled);cursor:default}"]})},gp=class n{bounds=I.required();nodeStyle=I();computedStyle=b(()=>this.nodeStyle()??{});shape=b(()=>this.computedStyle().shape??"rect");hostClass=b(()=>{let e=this.computedStyle().cssClass;return e?`minimap-node ${e}`:"minimap-node"});cx=b(()=>this.bounds().x+this.bounds().width/2);cy=b(()=>this.bounds().y+this.bounds().height/2);radius=b(()=>Math.min(this.bounds().width,this.bounds().height)/2);rx=b(()=>this.bounds().width/2);ry=b(()=>this.bounds().height/2);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["g","ng-diagram-default-minimap-node",""]],hostVars:11,hostBindings:function(t,o){t&2&&(J("transform",o.bounds().transform),ft(o.hostClass()),Ue("fill",o.computedStyle().fill)("stroke",o.computedStyle().stroke)("stroke-width",o.computedStyle().strokeWidth,"px")("opacity",o.computedStyle().opacity))},inputs:{bounds:[1,"bounds"],nodeStyle:[1,"nodeStyle"]},decls:3,vars:1,template:function(t,o){if(t&1&&E(0,i_,1,3,":svg:circle")(1,r_,1,4,":svg:ellipse")(2,s_,1,4,":svg:rect"),t&2){let i;P((i=o.shape())==="circle"?0:i==="ellipse"?1:2)}},styles:["[_nghost-%COMP%]{fill:var(--ngd-minimap-node-color);opacity:var(--ngd-minimap-node-opacity)}"]})},fp=class n{diagramBounds=I.required();minimapTransform=I.required();rect=b(()=>{let e=this.diagramBounds(),t=this.minimapTransform();return{x:e.x*t.scale+t.offsetX,y:e.y*t.scale+t.offsetY,width:e.width*t.scale,height:e.height*t.scale}});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["rect","ng-diagram-minimap-diagram-bounds",""]],hostVars:4,hostBindings:function(t,o){t&2&&J("x",o.rect().x)("y",o.rect().y)("width",o.rect().width)("height",o.rect().height)},inputs:{diagramBounds:[1,"diagramBounds"],minimapTransform:[1,"minimapTransform"]},decls:0,vars:0,template:function(t,o){},styles:["[_nghost-%COMP%]{fill:var(--ngd-minimap-diagram-bounds-color);opacity:var(--ngd-minimap-diagram-bounds-opacity);stroke:none;pointer-events:none}"]})},ba=class n{diagramService=f(Tt);isInteracting=b(()=>{let e=this.diagramService.actionState();return!!e.dragging?.movementStarted||!!e.resize||!!e.rotation});static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},mp=class n{viewportService=f(dn);flowCoreProvider=f(Te);transform=I.required();viewport=I.required();dragState={isDragging:!1,lastPosition:{x:0,y:0},pointerId:null};ngOnDestroy(){this.removeDocumentListeners()}onPointerDown(e){e.button===0&&(e.preventDefault(),this.capturePointer(e),this.dragState.isDragging=!0,this.dragState.lastPosition={x:e.clientX,y:e.clientY},this.setPanningState(!0),this.attachDocumentListeners())}onPointerMove=e=>{if(!this.dragState.isDragging)return;let t=this.calculateClientDelta(e);this.dragState.lastPosition={x:e.clientX,y:e.clientY};let o=this.calculateViewportDelta(t);this.viewportService.moveViewportBy(o.x,o.y)};onPointerUp=e=>{this.dragState.isDragging=!1,this.setPanningState(!1),this.releasePointer(e),this.removeDocumentListeners()};capturePointer(e){e.target.setPointerCapture(e.pointerId),this.dragState.pointerId=e.pointerId}releasePointer(e){if(this.dragState.pointerId===null)return;let t=e.target;t.hasPointerCapture(this.dragState.pointerId)&&t.releasePointerCapture(this.dragState.pointerId),this.dragState.pointerId=null}attachDocumentListeners(){document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerUp)}removeDocumentListeners(){document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerUp)}setPanningState(e){let t=this.flowCoreProvider.provide().actionStateManager;e?t.panning={active:!0}:t.clearPanning()}calculateClientDelta(e){return{x:e.clientX-this.dragState.lastPosition.x,y:e.clientY-this.dragState.lastPosition.y}}calculateViewportDelta(e){let{scale:t}=this.transform(),{scale:o}=this.viewport();return{x:-e.x/t*o,y:-e.y/t*o}}static \u0275fac=function(t){return new(t||n)};static \u0275dir=ye({type:n,selectors:[["","ngDiagramMinimapNavigation",""]],hostBindings:function(t,o){t&1&&O("pointerdown",function(r){return o.onPointerDown(r)})},inputs:{transform:[1,"transform"],viewport:[1,"viewport"]}})},gE=n=>({x:-n.x/n.scale,y:-n.y/n.scale,width:(n.width??0)/n.scale,height:(n.height??0)/n.scale}),fE=(n,e)=>e.width===0||e.height===0?n:po([n,e]),mE=(n,e,t,o)=>n.width===0||n.height===0?1:Math.min((e-2*o)/n.width,(t-2*o)/n.height),yE=(n,e,t,o)=>({offsetX:(e-n.width*o)/2-n.x*o,offsetY:(t-n.height*o)/2-n.y*o}),vE=(n,e,t,o)=>{let i=mE(n,e,t,o),{offsetX:r,offsetY:s}=yE(n,e,t,i);return{scale:i,offsetX:r,offsetY:s}},d0={width:100,height:50},bE=(n,e=d0)=>{let t=n.size??e,o=n.angle??0;return{id:n.id,x:n.position.x,y:n.position.y,width:t.width,height:t.height,angle:o,transform:`rotate(${o} ${n.position.x+t.width/2} ${n.position.y+t.height/2})`}},wE=(n,e=d0)=>{if(n.length===0)return{x:0,y:0,width:0,height:0};let t=n.map(o=>{let i=o.size??e;return Dp({x:o.position.x,y:o.position.y,width:i.width,height:i.height},o.angle??0)});return po(t)},CE=(n,e)=>({x:-n.x/n.scale*e.scale+e.offsetX,y:-n.y/n.scale*e.scale+e.offsetY,width:(n.width??0)/n.scale*e.scale,height:(n.height??0)/n.scale*e.scale}),yp=class extends Map{},vp=class{cache=new WeakMap;clear(){this.cache=new WeakMap}getOrCompute(e,t){let o=this.cache.get(e);if(o)return o;let i=t();return this.cache.set(e,i),i}},wa=class n{renderer=f(an);cache=new vp;lastStyleFn;lastTemplateMap;computeMinimapNodes(e,t){return this.invalidateCacheIfNeeded(e,t),this.renderer.nodes().map(o=>this.cache.getOrCompute(o,()=>({bounds:bE(o),diagramNode:o,nodeStyle:e?.(o)??{},template:o.type?t.get(o.type)??null:null})))}computeDiagramBounds(){return Tp(this.renderer.nodes(),[])}invalidateCacheIfNeeded(e,t){e===this.lastStyleFn&&t===this.lastTemplateMap||(this.cache.clear(),this.lastStyleFn=e,this.lastTemplateMap=t)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Kt=class n extends _n{diagramService=f(Tt);_nodes=H([]);_edges=H([]);_metadata=H({viewport:{x:0,y:0,scale:1}});nodes=this._nodes.asReadonly();edges=this._edges.asReadonly();metadata=this._metadata.asReadonly();constructor(){super(),me(()=>{this.diagramService.isInitialized()&&(this.flowCore.model.onChange(this.modelListener),xe(()=>this.modelListener({nodes:this.flowCore.model.getNodes(),edges:this.flowCore.model.getEdges(),metadata:this.flowCore.model.getMetadata()})))})}ngOnDestroy(){this.flowCoreProvider.isInitialized()&&this.flowCore.model.unregisterOnChange(this.modelListener)}getModel(){return this.flowCore.model}toJSON(){return this.flowCore.model.toJSON()}addEdges(e){this.flowCore.commandHandler.emit("addEdges",{edges:e})}addNodes(e){this.flowCore.commandHandler.emit("addNodes",{nodes:e})}getEdgeById(e){return this.flowCore.getEdgeById(e)||null}getNearestNodeInRange(e,t){return this.flowCore.getNearestNodeInRange(e,t)||null}getNearestPortInRange(e,t){return this.flowCore.getNearestPortInRange(e,t)||null}getNodeById(e){return this.flowCore.getNodeById(e)}getNodesInRange(e,t){return this.flowCore.getNodesInRange(e,t)}getConnectedEdges(e){return this.flowCore.getConnectedEdges(e)}getConnectedNodes(e){return this.flowCore.getConnectedNodes(e)}getNodeEnds(e){return this.flowCore.getNodeEnds(e)}getChildren(e){return this.flowCore.getChildren(e)}getChildrenNested(e){return this.flowCore.getChildrenNested(e)}isNestedChild(e,t){return this.flowCore.isNestedChild(e,t)}getParentHierarchy(e){return this.flowCore.getParentHierarchy(e)}getOverlappingNodes(e){return this.flowCore.getOverlappingNodes(e)}computePartsBounds(e,t){return Tp(e,t)}updateEdge(e,t){this.flowCore.commandHandler.emit("updateEdge",{id:e,edgeChanges:h({},t)})}updateEdgeData(e,t){this.flowCore.commandHandler.emit("updateEdge",{id:e,edgeChanges:{data:t}})}updateNode(e,t){this.flowCore.commandHandler.emit("updateNode",{id:e,nodeChanges:h({},t)})}updateNodeData(e,t){this.flowCore.commandHandler.emit("updateNode",{id:e,nodeChanges:{data:t}})}updateNodes(e){this.flowCore.commandHandler.emit("updateNodes",{nodes:e})}updateEdges(e){this.flowCore.commandHandler.emit("updateEdges",{edges:e})}deleteEdges(e){this.flowCore.commandHandler.emit("deleteEdges",{ids:e})}deleteNodes(e){this.flowCore.commandHandler.emit("deleteNodes",{ids:e})}modelListener=e=>{this._nodes.set(e.nodes),this._edges.set(e.edges),this._metadata.set(e.metadata)};static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},Ca=class n{modelService=f(Kt);computeMinimapNodes(){return[]}computeDiagramBounds(){return wE(this.modelService.nodes())}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})},_a=class n{VIEWPORT_STROKE_WIDTH_CSS_VAR="--ngd-minimap-viewport-stroke-width";renderer=f(an);flowCoreProvider=f(Te);interactionTracker=f(ba);elementRef=f(rt);directStrategy=f(wa);virtualizedStrategy=f(Ca);strokePadding=H(1);position=I("bottom-right");width=I(200);height=I(150);showZoomControls=I(!0);nodeStyle=I();minimapNodeTemplateMap=I(new yp);deferNodeUpdates=I(!1);ngAfterViewInit(){this.strokePadding.set(this.getStrokePaddingFromCss())}isDiagramInitialized=this.renderer.isInitialized;viewport=this.renderer.viewport;hasValidViewport=b(()=>{let e=this.viewport();return!!e.width&&!!e.height&&e.width>0&&e.height>0});viewportRect=b(()=>CE(this.viewport(),this.transform()));strategy=b(()=>this.isDiagramInitialized()&&this.flowCoreProvider.provide().isVirtualizationActive?this.virtualizedStrategy:this.directStrategy);transform=b(()=>vE(this.combinedBounds(),this.width(),this.height(),this.strokePadding()));nodesGroupTransform=b(()=>{let e=this.transform();return`translate(${e.offsetX}, ${e.offsetY}) scale(${e.scale})`});isDeferringUpdates=b(()=>this.deferNodeUpdates()&&this.interactionTracker.isInteracting());cachedMinimapNodes=[];cachedDiagramBounds={x:0,y:0,width:0,height:0};minimapNodes=b(()=>{if(this.isDeferringUpdates())return this.cachedMinimapNodes;let e=this.strategy().computeMinimapNodes(this.nodeStyle(),this.minimapNodeTemplateMap());return this.cachedMinimapNodes=e,e});showDiagramBounds=b(()=>this.isDiagramInitialized()&&this.flowCoreProvider.provide().isVirtualizationActive);diagramBounds=b(()=>{if(this.isDeferringUpdates())return this.cachedDiagramBounds;let e=this.strategy().computeDiagramBounds();return this.cachedDiagramBounds=e,e});viewportBoundsInDiagramSpace=b(()=>gE(this.viewport()));combinedBounds=b(()=>fE(this.diagramBounds(),this.viewportBoundsInDiagramSpace()));getStrokePaddingFromCss(){let e=getComputedStyle(this.elementRef.nativeElement).getPropertyValue(this.VIEWPORT_STROKE_WIDTH_CSS_VAR).trim();return parseFloat(e)||1}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=F({type:n,selectors:[["ng-diagram-minimap"]],hostVars:2,hostBindings:function(t,o){t&2&&ft(o.position())},inputs:{position:[1,"position"],width:[1,"width"],height:[1,"height"],showZoomControls:[1,"showZoomControls"],nodeStyle:[1,"nodeStyle"],minimapNodeTemplateMap:[1,"minimapNodeTemplateMap"],deferNodeUpdates:[1,"deferNodeUpdates"]},features:[Mo([wa,Ca,ba])],decls:5,vars:10,consts:[[3,"position"],["ngDiagramMinimapNavigation","",1,"minimap-svg",3,"transform","viewport"],["x","0","y","0",1,"minimap-background"],["ng-diagram-minimap-diagram-bounds","",3,"diagramBounds","minimapTransform"],[1,"minimap-viewport"],["ng-diagram-default-minimap-node","",3,"bounds","nodeStyle"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(t,o){t&1&&(v(0,"ng-diagram-panel",0),fe(),v(1,"svg",1),$(2,"rect",2),E(3,f_,5,3),y(),E(4,m_,1,0,"ng-diagram-zoom-controls"),y()),t&2&&(L("position",o.position()),p(),L("transform",o.transform())("viewport",o.viewport()),J("viewBox","0 0 "+o.width()+" "+o.height())("width",o.width())("height",o.height()),p(),J("width",o.width())("height",o.height()),p(),P(o.isDiagramInitialized()?3:-1),p(),P(o.showZoomControls()&&o.isDiagramInitialized()?4:-1))},dependencies:[mp,Ii,rs,gp,fp,hp,pp],styles:["[_nghost-%COMP%]{display:block;position:absolute;pointer-events:auto;z-index:10}.bottom-right[_nghost-%COMP%]{bottom:var(--ngd-minimap-margin);right:var(--ngd-minimap-margin)}.bottom-left[_nghost-%COMP%]{bottom:var(--ngd-minimap-margin);left:var(--ngd-minimap-margin)}.top-right[_nghost-%COMP%]{top:var(--ngd-minimap-margin);right:var(--ngd-minimap-margin)}.top-left[_nghost-%COMP%]{top:var(--ngd-minimap-margin);left:var(--ngd-minimap-margin)}.minimap-svg[_ngcontent-%COMP%]{display:block;cursor:pointer;touch-action:none}.minimap-background[_ngcontent-%COMP%]{fill:transparent}.minimap-viewport[_ngcontent-%COMP%]{stroke:var(--ngd-minimap-viewport-stroke-color);stroke-width:var(--ngd-minimap-viewport-stroke-width);fill:transparent;pointer-events:none}.minimap-footer[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}"]})};var bp=class n extends _n{copy(){this.flowCore.commandHandler.emit("copy")}cut(){this.flowCore.commandHandler.emit("cut")}paste(e){this.flowCore.commandHandler.emit("paste",{position:e})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=j({token:n,factory:n.\u0275fac})},wp=class n extends _n{addToGroup(e,t){this.flowCore.commandHandler.emit("addToGroup",{groupId:e,nodeIds:t})}highlightGroup(e,t){this.flowCore.commandHandler.emit("highlightGroup",{groupId:e,nodes:t})}highlightGroupClear(){this.flowCore.commandHandler.emit("highlightGroupClear")}removeFromGroup(e,t){this.flowCore.commandHandler.emit("removeFromGroup",{groupId:e,nodeIds:t})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=j({token:n,factory:n.\u0275fac})},co=class n extends _n{moveNodesBy(e,t){this.flowCore.commandHandler.emit("moveNodesBy",{nodes:e,delta:t})}resizeNode(e,t,o,i){this.flowCore.commandHandler.emit("resizeNode",{id:e,size:t,position:o,disableAutoSize:i})}rotateNodeTo(e,t){this.flowCore.commandHandler.emit("rotateNodeTo",{nodeId:e,angle:t})}bringToFront(e,t){this.flowCore.commandHandler.emit("bringToFront",{nodeIds:e,edgeIds:t})}sendToBack(e,t){this.flowCore.commandHandler.emit("sendToBack",{nodeIds:e,edgeIds:t})}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=j({token:n,factory:n.\u0275fac})},uo=class n extends _n{modelService=f(Kt);selection=b(()=>({nodes:this.modelService.nodes().filter(e=>e.selected),edges:this.modelService.edges().filter(e=>e.selected)}));select(e=[],t=[]){this.flowCore.commandHandler.emit("select",{nodeIds:e,edgeIds:t})}deselect(e=[],t=[]){this.flowCore.commandHandler.emit("deselect",{nodeIds:e,edgeIds:t})}deselectAll(){this.flowCore.commandHandler.emit("deselectAll")}deleteSelection(){this.flowCore.commandHandler.emit("deleteSelection")}static \u0275fac=(()=>{let e;return function(o){return(e||(e=It(n)))(o||n)}})();static \u0275prov=j({token:n,factory:n.\u0275fac})};function l0(n){let a=n,{selected:e,measuredPorts:t,measuredBounds:o,computedZIndex:i,_internalId:r}=a;return kt(a,["selected","measuredPorts","measuredBounds","computedZIndex","_internalId"])}function c0(n){let a=n,{sourcePosition:e,targetPosition:t,measuredLabels:o,computedZIndex:i,_internalId:r}=a;return kt(a,["sourcePosition","targetPosition","measuredLabels","computedZIndex","_internalId"])}var Cp=class n{effectRef=null;nodes=H([]);edges=H([]);metadata=H({viewport:{x:0,y:0,scale:1}});callbacks=[];constructor(){this.effectRef=me(()=>{let e=this.nodes(),t=this.edges(),o=this.metadata();xe(()=>{for(let i of this.callbacks)i({nodes:e,edges:t,metadata:o})})})}destroy(){this.effectRef?.destroy(),this.callbacks=[],this.nodes.set([]),this.edges.set([]),this.metadata.set({viewport:{x:0,y:0,scale:1}})}getNodes(){return this.nodes()}getEdges(){return this.edges()}updateNodes(e){this.nodes.update(t=>typeof e=="function"?e(t):e)}updateEdges(e){this.edges.update(t=>typeof e=="function"?e(t):e)}getMetadata(){return this.metadata()}updateMetadata(e){this.metadata.update(t=>typeof e=="function"?e(t):e)}onChange(e){this.callbacks.push(e)}unregisterOnChange(e){this.callbacks=this.callbacks.filter(t=>t!==e)}undo(){console.warn("Undo is not implemented in the current model. Please implement a custom ModelAdapter to support undo functionality.")}redo(){console.warn("Redo is not implemented in the current model. Please implement a custom ModelAdapter to support redo functionality.")}toJSON(){let e=this.metadata();return JSON.stringify({nodes:this.nodes().map(l0),edges:this.edges().map(c0),metadata:e})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=j({token:n,factory:n.\u0275fac})};function u0(n={},e){return xe(()=>{let t=()=>_E(new Cp,n);return e?Ct(e,t):t()})}function _E(n,e,t){let o=()=>{let i=f(nr),r=()=>i.generateId();return e&&(n.updateNodes(e.nodes||[]),n.updateEdges(e.edges||[]),n.updateMetadata(s=>h(h({},s),e.metadata))),n.updateNodes(n.getNodes().map(s=>Qs(l0(s),r))),n.updateEdges(n.getEdges().map(s=>Qs(c0(s),r))),n};return t?Ct(t,o):o()}function p0(){return[ia,Te,na,or,an,at,oa,Tt,Yo,Un,dn,Kt,uo,bp,co,wp,Ko,pa,ma,Zo,sr]}var Rp=.01;function Da(n,e){return Math.abs(n.x-e.x)<Rp&&Math.abs(n.y-e.y)<Rp&&Math.abs(n.scale-e.scale)<Rp}function h0(n){return Da(n,{x:0,y:0,scale:1})}function g0(n,e,t){return t?{publish:!0,hydrateConsumed:!0}:Da(n,e)?{publish:!1,hydrateConsumed:!0}:h0(n)&&!h0(e)?{publish:!1,hydrateConsumed:!1}:{publish:!1,hydrateConsumed:!1}}var f0=(n,e)=>({basePortId:n,slotIndex:e});var Op=(n,e)=>e===0?n:`${n}@${e}`;var Ap=n=>{let e=n.lastIndexOf("@");if(e>0){let t=Number(n.slice(e+1));if(Number.isInteger(t)&&t>=0)return f0(n.slice(0,e),t)}return f0(n,0)};var ho=n=>`in:${n}`,dr=n=>`out:${n}`,ei=n=>n.startsWith("in:")?n.slice(3):n,go=n=>n.startsWith("out:")?n.slice(4):n,ti=Op,jn=Ap;var IE={inputsConfigs:[],outputsConfigs:[],bypassPorts:{}},Ft=n=>new Map(n.map(e=>[e.type,e])),Lp=(n,e)=>{let t=e.get(n);return t!==void 0?t:IE},DE=n=>{let e=n.ui.position.width;if(e!==void 0)return{width:e,height:n.ui.position.height??72}},Ta=(n,e)=>{let t=DE(n),o=Lp(n.type,e),i=t!==void 0;return _(h({id:n.id,type:"lf-node",position:{x:n.ui.position.x,y:n.ui.position.y}},t!==void 0?{size:t}:{}),{autoSize:!i,resizable:!0,data:_(h({},n),{portsConfig:o})})},Fp=n=>({id:n.edgeId,type:"lf-edge",source:n.fromNodeId,target:n.toNodeId,sourcePort:dr(ti(...n.fromPort)),targetPort:ho(ti(...n.toPort)),data:{}});var lr="application/x-langflower-node-type";var TE={width:160,height:72},ni=class n{constructor(){this.byId=new Map}set(e,t){this.byId.set(e,t)}clear(e){this.byId.delete(e)}minFor(e){return this.byId.get(e)??TE}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var m0=(n,e,t,o,i=24,r=24)=>{let s=t.top+t.height,a=o.top+o.height,d=Math.max(s,a)+r,l=n.x+i,c=e.x-i;return[{x:n.x,y:n.y},{x:l,y:n.y},{x:l,y:d},{x:c,y:d},{x:c,y:e.y},{x:e.x,y:e.y}]},oi=n=>{if(n===null)return null;let e=n.size;if(e!==void 0&&Number.isFinite(e.width)&&Number.isFinite(e.height)&&e.width>0&&e.height>0)return{left:n.position.x,top:n.position.y,width:e.width,height:e.height};let t=n.measuredBounds;return t!==void 0&&Number.isFinite(t.width)&&Number.isFinite(t.height)&&t.width>0&&t.height>0?{left:t.x,top:t.y,width:t.width,height:t.height}:null};var Ma=n=>n.left+n.width/2,y0=n=>n.top+n.height/2,v0=(n,e,t)=>n.some(o=>o.source===t&&o.target===e),cr=n=>{if(!n.hasReverseEdge)return!1;let{sourceBounds:e,targetBounds:t,sourcePort:o,targetPort:i}=n;if(e!=null&&t!=null){let d=y0(e),l=y0(t),c=d>l,u=l>d;if(!c&&!u)return Ma(t)<Ma(e);let w=c?e:t;return Ma(c?t:e)>Ma(w)+40?u:c}if(o===void 0||i===void 0)return!1;let r=o.y>i.y,s=i.y>o.y;return!r&&!s?i.x<o.x:(s?o.x>i.x+40:i.x>o.x+40)?s&&i.x<o.x:r};var b0=(n,e,t,o={hasReverseEdge:!1})=>{let{sourcePoint:i,targetPoint:r,sourceNode:s,targetNode:a}=n,d=oi(s??null),l=oi(a??null);return!cr({sourceBounds:d,targetBounds:l,sourcePort:i,targetPort:r,hasReverseEdge:o.hasReverseEdge})||d===null||l===null?e(n,t):[...m0(i,r,d,l)]};var w0=(n,e)=>({name:"orthogonal",computePoints(t,o){let i=t.sourceNode?.id??t.edge.source,r=t.targetNode?.id??t.edge.target;return b0(t,(s,a)=>n.computePoints(s,a),o,{hasReverseEdge:e(i,r)})},computeSvgPath(t,o){return n.computeSvgPath(t,o)},computePointOnPath(t,o){return n.computePointOnPath?.(t,o)??t[0]??{x:0,y:0}},computePointAtDistance(t,o){return n.computePointAtDistance?.(t,o)??t[0]??{x:0,y:0}}});var C0=n=>{let e=n.flowCore.edgeRoutingManager.getRouting("orthogonal");if(e===void 0)throw new Error("ng-diagram orthogonal routing is not registered");return e};var zp=new Map,ME=(n,e)=>{if(e.type==="reset")return zp;if(e.type==="output"){let o=new Map(n);return o.set(e.nodeId,e.atMs),o}if(e.nodeIds.length===0)return n;let t=new Map(n);for(let o of e.nodeIds)t.has(o)||t.set(o,e.atMs);return t},kE=n=>{if(n===null)return[];let e=new Set;for(let t of n.events)t.kind==="output-emitted"&&e.add(t.nodeId);return[...e]},_0=n=>{let e=n.now??(()=>Date.now()),t=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(()=>({type:"reset"}))),o=n.executionFeedSnapshot$.pipe(N(r=>r===null?{type:"reset"}:{type:"stampActive",nodeIds:kE(r),atMs:e()})),i=n.outputEmitted$.pipe(Pe(r=>typeof r.portId=="string"),N(r=>({type:"output",nodeId:r.nodeId,atMs:e()})));return ce(t,o,i).pipe(Ge(ME,zp),he(zp),De(1))};var ur={sections:[],userTurns:[],lastRunIdByNode:new Map},x0=n=>{let e=n[n.length-1];return e!==void 0&&e.status==="active"?n.length-1:-1},RE=(n,e)=>{let t=n[n.length-1];return typeof e=="string"&&t!==void 0&&typeof t.value=="string"?[...n.slice(0,-1),{value:t.value+e}]:[...n,{value:e}]},S0=(n,e)=>{if(e<0)return n;let t=n[e];return t===void 0||t.status!=="active"?n:[...n.slice(0,e),_(h({},t),{status:"completed"})]},E0=(n,e,t)=>{let o=n.lastRunIdByNode.get(e);if(o===t)return n;let i=new Map(n.lastRunIdByNode);return i.set(e,t),o===void 0?_(h({},n),{lastRunIdByNode:i}):{sections:n.sections.filter(r=>!(r.nodeId===e&&r.runId===o)),userTurns:n.userTurns.filter(r=>!(r.nodeId===e&&r.runId===o)),lastRunIdByNode:i}},NE=(n,e)=>`${n.runId}:${n.nodeId}:${n.portId}:${e}`,ka=(n,e,t,o)=>{let i=E0(n,e.nodeId,e.runId);if(e.state==="pending")return{sections:i.sections,userTurns:i.userTurns,lastRunIdByNode:i.lastRunIdByNode};let{sections:r,userTurns:s}=i,a=x0(r),d=a>=0?r[a]:void 0,l=d!==void 0&&d.nodeId===e.nodeId&&d.portId===e.portId,c=e.state==="error"?"failed":"active";if(l&&d!==void 0){let S=d.feedRole??o,k=h(_(h({},d),{status:c,chunks:e.state==="error"?[...d.chunks,{value:e.value}]:RE(d.chunks,e.value)}),S!==void 0?{feedRole:S}:{});return{sections:[...r.slice(0,a),k],userTurns:s,lastRunIdByNode:i.lastRunIdByNode}}let u=S0(r,a),w=h({id:NE(e,u.length),runId:e.runId,nodeId:e.nodeId,nodeLabel:t,portId:e.portId,status:c,chunks:[{value:e.value}]},o!==void 0?{feedRole:o}:{});return{sections:[...u,w],userTurns:s,lastRunIdByNode:i.lastRunIdByNode}},Ra=(n,e)=>{let t=e.runId.startsWith("local:"),o=t?n:E0(n,e.nodeId,e.runId),i=t?o.userTurns:o.userTurns.filter(d=>!(d.runId.startsWith("local:")&&d.nodeId===e.nodeId&&d.portId===e.portId&&d.text===e.text)),r=_(h({},o),{userTurns:i});if(r.userTurns.some(d=>d.runId===e.runId&&d.nodeId===e.nodeId&&d.portId===e.portId&&d.text===e.text)||t&&r.userTurns.some(d=>d.nodeId===e.nodeId&&d.portId===e.portId&&d.text===e.text))return r;let a={id:`${e.runId}:${e.nodeId}:${e.portId}:${r.userTurns.length}`,runId:e.runId,nodeId:e.nodeId,nodeLabel:e.nodeLabel,portId:e.portId,text:e.text,atSectionCount:r.sections.length,anchorSectionId:[...r.sections].reverse().find(d=>d.nodeId===e.nodeId)?.id};return _(h({},r),{userTurns:[...r.userTurns,a]})},xt=n=>{if(n.feedRole!==void 0)return n.feedRole;if(n.portId==="reasoning")return"reasoning";if(n.portId==="draftResponse")return"draft";if(n.portId==="response")return"result";if(n.portId==="recovery")return"recovery"},Bp=n=>n==="reasoning"||n==="draft"||n==="tool"||n==="shell",pr=n=>{let e=x0(n.sections);return _(h({},n),{sections:S0(n.sections,e)})},P0=(n,e,t)=>{for(let o=n.length-1;o>=0;o--){let i=n[o];if(i!==void 0&&i.nodeId===e&&i.portId===t)return i.chunks[i.chunks.length-1]?.value}};var $p=1e4,OE=n=>{switch(n){case"waiting":return"waiting for first token";case"reasoning":return"reasoning";case"drafting":return"drafting";case"tool":return"running tool";case"recovery":return"recovery"}},AE=n=>{let e=n.segments[n.segments.length-1];if(e!==void 0){if(e.kind==="recovery")return"recovery";if(e.kind==="tool")return"tool";if(e.kind==="draft")return"drafting"}let t=n.peekSection;if(t!==void 0){let i=xt(t);if(i==="reasoning")return"reasoning";if(i==="draft")return"drafting";if(i==="recovery")return"recovery";if(i==="tool"||i==="shell")return"tool"}let o=n.sections[n.sections.length-1];if(o!==void 0){let i=xt(o);if(i==="recovery")return"recovery";if(i==="reasoning")return"reasoning";if(i==="draft")return"drafting";if(i==="tool"||i==="shell")return"tool"}return"waiting"},Hp=(n,e,t=$p)=>n===void 0?!1:e-n>=t,LE=(n,e)=>n===void 0?null:Math.max(0,Math.floor((e-n)/1e3)),I0=(n,e,t)=>{let o=OE(AE(n));if(!Hp(e,t))return o;let i=LE(e,t);return i===null?o:`${o} \xB7 last event ${i}s ago`};var D0=n=>{let e=new Map,t=r=>{let s=e.get(r);if(s===void 0)return e.set(r,r),r;if(s===r)return r;let a=t(s);return e.set(r,a),a},o=(r,s)=>{let a=t(r),d=t(s);a!==d&&e.set(a,d)};for(let r of n.nodes)t(r.id);for(let r of n.edges)o(r.fromNodeId,r.toNodeId);let i=new Map;for(let r of n.nodes){let s=t(r.id),a=i.get(s);a===void 0?i.set(s,[r.id]):a.push(r.id)}return[...i.values()]},Na=(n,e)=>n.nodes.filter(t=>e.get(t.type)?.chatEntry===!0).map(t=>t.id),T0=(n,e)=>{let t=new Set(Na(n,e));return t.size===0?n.nodes.length>0:D0(n).some(o=>o.every(i=>!t.has(i)))},M0=(n,e,t)=>{let o=new Set(Na(n,e));if(o.size===0)return!1;let i=D0(n).find(r=>r.includes(t));return i===void 0?!1:i.some(r=>o.has(r))};var hr=100,gr=n=>n==="text-multiline"?{flex:1,minHeightPx:hr}:typeof n=="object"&&n.type==="text-multiline"?{flex:n.flex??1,minHeightPx:n.minHeightPx??hr}:null;var Ze="steerControl",Up=n=>{if(typeof n!="object"||n===null||Array.isArray(n))return!1;let e=n.kind;return e==="pause"||e==="resume"?!0:e==="steer"?typeof n.text=="string":!1},Vn=n=>Up(n)&&n.kind==="pause",fr=n=>Up(n)&&(n.kind==="steer"||n.kind==="resume");var mr="recovery",yr=n=>{if(typeof n!="object"||n===null)return!1;let e=n;return(e.code==="retry"||e.code==="suspended")&&typeof e.text=="string"},Oa=n=>yr(n)&&n.code==="suspended",jp=n=>yr(n)?n.text:typeof n=="string"?n:"";var ii=n=>{let e=new Map;for(let t of n.activeWorkflow?.graph.nodes??[])e.set(t.id,t.type);return e},Vp=(n,e)=>{let t=new Map;for(let o of n.activeWorkflow?.graph.nodes??[]){let i=o.ui.label?.trim()||e.get(o.type)?.displayName||o.type;t.set(o.id,i)}return t},N0=(n,e)=>{let t=Ft(e.nodes),o=ii(n);return{labels:Vp(n,t),paletteByType:t,nodeTypeById:o}},Sn=(n,e,t)=>{let o=e.get(t);return o===void 0?void 0:n.get(o)},VE=new Set(["none","reasoning","draft","tool","shell","result","recovery"]),ri=(n,e,t,o)=>{let s=Sn(n,e,t)?.outputsConfigs.find(a=>a.portId===o)?.feed?.role;return typeof s=="string"&&VE.has(s)?s:void 0},vr=(n,e,t)=>{if(Vn(t))return"";if(fr(t))return t.kind==="steer"?t.text.trim():"";let i=n.inputsConfigs.find(r=>r.portId===e)?.hitl;return i===void 0?typeof t=="string"?t.trim():"":i.kind==="button"?i.label.trim():typeof t=="string"?t.trim():t==null?"":String(t)};var WE=(n,e,t)=>{if(e.type==="snapshot")return{map:t.replay(e.snap),runId:e.snap?.runId??null};if(e.type==="output"){let o=e.event;if(typeof o.portId=="symbol"||o.state!=="value"&&o.state!=="pending"&&o.state!=="error")return n;let i=t.keysFromOutput(o),r=new Map(n.map);for(let s of i)r.set(s,o.state);return{map:r,runId:o.runId}}return e.type==="reset"?e.runId===n.runId?n:{map:new Map,runId:e.runId}:n},GE=n=>{let e=new Map;if(n===null)return e;for(let t of n.events)t.kind==="output-emitted"&&typeof t.portId=="string"&&(t.state==="value"||t.state==="pending"||t.state==="error")&&e.set(`${t.nodeId}:${t.portId}`,t.state);return e},qE=n=>{let e=new Map;if(n===null)return e;for(let t of n.events)if(t.kind==="output-emitted"&&typeof t.portId=="string"&&(t.state==="pending"||t.state==="value"||t.state==="error"))for(let o of t.edgeIds??[])e.set(o,t.state);return e},YE={replay:GE,keysFromOutput:n=>typeof n.portId=="string"?[`${n.nodeId}:${n.portId}`]:[]},ZE={replay:qE,keysFromOutput:n=>n.edgeIds??[]},O0=(n,e)=>{let t=n.executionFeedSnapshot$.pipe(N(r=>({type:"snapshot",snap:r}))),o=n.outputEmitted$.pipe(N(r=>({type:"output",event:r}))),i=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(r=>({type:"reset",runId:r})));return ce(t,o,i).pipe(Ge((r,s)=>WE(r,s,e),{map:new Map,runId:null}),N(r=>r.map),he(new Map),De(1))},A0=n=>O0(n,YE),L0=n=>O0(n,ZE);var Wp=(n,e)=>e.inputsConfigs.filter(t=>typeof t.portId=="string"&&t.hitl!==void 0).map(t=>({nodeId:n,portId:t.portId,config:t.hitl})),KE=(n,e)=>Wp(n,e).filter(t=>t.portId!==Ze),Gp=(n,e,t)=>{let o=n.inputsConfigs.find(i=>i.portId===t);return o===void 0||o.hitl!==void 0?!1:KE(e,n).length>0},si=(n,e)=>{let t=n.inputsConfigs.find(o=>o.portId===e);return t!==void 0&&t.hitl!==void 0},qp=(n,e)=>n!==Ze?"ignore":Vn(e)?"open":fr(e)?"close":"ignore";var z0=n=>pr(n),F0=(n,e)=>Ra(z0(n),e),XE=(n,e)=>{if(e.type==="snapshot"){if(e.snap===null)return ur;let t=e.snap.events.reduce((o,i)=>{if(i.kind==="output-emitted"&&typeof i.portId=="string")return ka(o,{runId:i.runId,nodeId:i.nodeId,portId:i.portId,state:i.state,value:i.value},e.labels.get(i.nodeId)??i.nodeId,ri(e.paletteByType,e.nodeTypeById,i.nodeId,i.portId));if(i.kind==="input-received"&&typeof i.portId=="string"&&i.state==="value"){let r=o;i.portId===Ze&&Vn(i.value)&&(r=z0(o));let s=Sn(e.paletteByType,e.nodeTypeById,i.nodeId);if(s===void 0||!si(s,i.portId))return r;let a=vr(s,i.portId,i.value);return a.length===0?r:i.portId===Ze?F0(r,{runId:i.runId,nodeId:i.nodeId,nodeLabel:e.labels.get(i.nodeId)??i.nodeId,portId:i.portId,text:a}):Ra(r,{runId:i.runId,nodeId:i.nodeId,nodeLabel:e.labels.get(i.nodeId)??i.nodeId,portId:i.portId,text:a})}return i.kind==="done"?pr(o):o},ur);return e.snap.status==="running"?t:pr(t)}if(e.type==="output"){let{event:t,label:o,feedRole:i}=e;return typeof t.portId=="symbol"?n:ka(n,{runId:t.runId,nodeId:t.nodeId,portId:t.portId,state:t.state,value:t.value},o,i)}return e.type==="user"?e.portId===Ze?F0(n,{runId:e.runId,nodeId:e.nodeId,nodeLabel:e.label,portId:e.portId,text:e.text}):Ra(n,{runId:e.runId,nodeId:e.nodeId,nodeLabel:e.label,portId:e.portId,text:e.text}):e.type==="permissionAsk"?ka(n,{runId:e.ask.runId,nodeId:e.ask.nodeId,portId:"permission.ask",state:"value",value:`permission.ask: ${e.ask.summary}`},e.label,"tool"):pr(n)},B0=n=>{let e=Ne([n.workflowSnapshot$,n.paletteSnapshot$]).pipe(N(([a,d])=>N0(a,d)),De(1)),t=n.executionFeedSnapshot$.pipe(we(a=>e.pipe(nn(1),N(({labels:d,paletteByType:l,nodeTypeById:c})=>({type:"snapshot",snap:a,labels:d,paletteByType:l,nodeTypeById:c}))))),o=e.pipe(we(({labels:a,paletteByType:d,nodeTypeById:l})=>n.outputEmitted$.pipe(N(c=>({type:"output",event:c,label:a.get(c.nodeId)??c.nodeId,feedRole:typeof c.portId=="string"?ri(d,l,c.nodeId,c.portId):void 0}))))),i=e.pipe(we(({labels:a,paletteByType:d,nodeTypeById:l})=>n.inputReceived$.pipe(N(c=>{if(typeof c.portId!="string"||c.state!=="value")return null;if(c.portId===Ze&&Vn(c.value))return{type:"settle"};let u=Sn(d,l,c.nodeId);if(u===void 0||!si(u,c.portId))return null;let w=vr(u,c.portId,c.value);return w.length===0?null:{type:"user",runId:c.runId,nodeId:c.nodeId,portId:c.portId,label:a.get(c.nodeId)??c.nodeId,text:w}}),Pe(c=>c!==null)))),r=ce(n.runnerDone$,n.runnerInterrupted$).pipe(N(()=>({type:"settle"}))),s=e.pipe(we(({labels:a})=>n.permissionAsk$.pipe(N(d=>({type:"permissionAsk",ask:d,label:a.get(d.nodeId)??d.nodeId})))));return ce(t,o,i,n.feedLocal$,s,r).pipe(Ge(XE,ur),he(ur),De(1))};var ai=(n,e,t)=>{if(t==="open"){if(n.has(e))return n;let i=new Set(n);return i.add(e),i}if(!n.has(e))return n;let o=new Set(n);return o.delete(e),o},QE=(n,e,t)=>{let o=new Set;for(let i of n){if(i.kind==="output-emitted"&&typeof i.portId=="string"&&i.state==="value"){(ri(e,t,i.nodeId,i.portId)==="recovery"||i.portId===mr)&&Oa(i.value)&&o.add(i.nodeId);continue}if(i.kind!=="input-received"||typeof i.portId!="string"||i.state!=="value")continue;let r=Sn(e,t,i.nodeId);if(r===void 0)continue;let s=qp(i.portId,i.value);if(s==="open"){o.add(i.nodeId);continue}if(s==="close"){o.delete(i.nodeId);continue}i.portId!==Ze&&(si(r,i.portId)?o.delete(i.nodeId):Gp(r,i.nodeId,i.portId)&&o.add(i.nodeId))}return o},JE=(n,e)=>{if(e.type==="hardReset")return e.runId!==void 0&&e.runId===n.runId?n:{ids:new Set,runId:e.runId??null,live:!1};if(e.type==="hydrate")return n.live?n:{ids:QE(e.events,e.palette,e.nodeTypes),runId:n.runId,live:!1};if(e.type==="open")return{ids:ai(n.ids,e.nodeId,"open"),runId:n.runId,live:!0};if(e.type==="resolve")return{ids:ai(n.ids,e.nodeId,"close"),runId:n.runId,live:!0};if(e.type==="output")return(e.feedRole==="recovery"||e.portId===mr)&&Oa(e.value)?{ids:ai(n.ids,e.nodeId,"open"),runId:n.runId,live:!0}:n;let t=Sn(e.palette,e.nodeTypes,e.nodeId);if(t===void 0)return n;let o=qp(e.portId,e.value);return o==="open"||o==="close"?{ids:ai(n.ids,e.nodeId,o),runId:n.runId,live:!0}:e.portId===Ze?n:si(t,e.portId)?{ids:ai(n.ids,e.nodeId,"close"),runId:n.runId,live:!0}:Gp(t,e.nodeId,e.portId)?{ids:ai(n.ids,e.nodeId,"open"),runId:n.runId,live:!0}:n},$0=n=>{let e=Ne([n.workflowSnapshot$,n.paletteSnapshot$]).pipe(N(([l,c])=>({palette:Ft(c.nodes),nodeTypes:ii(l)})),De(1)),t=e.pipe(we(({palette:l,nodeTypes:c})=>n.inputReceived$.pipe(N(u=>({type:"input",nodeId:u.nodeId,portId:u.portId,value:u.value,palette:l,nodeTypes:c}))))),o=e.pipe(we(({palette:l,nodeTypes:c})=>n.outputEmitted$.pipe(Pe(u=>typeof u.portId=="string"&&u.state==="value"),N(u=>({type:"output",nodeId:u.nodeId,portId:u.portId,value:u.value,feedRole:ri(l,c,u.nodeId,u.portId)}))))),i=n.hitlOpenLocal$.pipe(N(l=>({type:"open",nodeId:l}))),r=n.hitlResolveLocal$.pipe(N(l=>({type:"resolve",nodeId:l}))),s=Ne([n.executionFeedSnapshot$,n.workflowSnapshot$,n.paletteSnapshot$]).pipe(N(([l,c,u])=>({type:"hydrate",events:l===null?[]:l.events,palette:Ft(u.nodes),nodeTypes:ii(c)}))),a=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(l=>({type:"hardReset",runId:l}))),d=ce(n.runnerInterrupted$,n.runnerDone$).pipe(N(()=>({type:"hardReset"})));return ce(t,o,i,r,s,a,d).pipe(Ge(JE,{ids:new Set,runId:null,live:!1}),N(l=>l.ids),he(new Set),De(1))};var eP=(n,e)=>e.type==="hardReset"?[]:e.type==="resolve"?n.filter(o=>o.askId!==e.askId):[...n.filter(o=>o.askId!==e.ask.askId),e.ask],H0=n=>{let e=n.permissionAsk$.pipe(N(i=>({type:"ask",ask:i}))),t=n.permissionResolveLocal$.pipe(N(i=>({type:"resolve",askId:i}))),o=ce(n.runnerDone$,n.runnerInterrupted$,n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(()=>({type:"hardReset"})));return ce(e,t,o).pipe(Ge(eP,[]),he([]),De(1))};var tP=(n,e)=>e.type==="snapshot"?{running:e.running,currentRunId:e.runId}:e.type==="start"?e.runId===n.currentRunId?n.running?n:{running:!0,currentRunId:e.runId}:{running:!0,currentRunId:e.runId}:{running:!1,currentRunId:null},U0=n=>{let e=n.executionFeedSnapshot$.pipe(N(i=>({type:"snapshot",running:i!==null&&i.status==="running",runId:i!==null&&i.status==="running"?i.runId:null}))),t=ce(n.runnerStarted$,n.runnerStartNodeStarted$).pipe(N(i=>({type:"start",runId:i}))),o=ce(n.runnerDone$,n.runnerInterrupted$).pipe(N(()=>({type:"stop"})));return ce(e,t,o).pipe(Ge(tP,{running:!1,currentRunId:null}),N(i=>i.running),he(!1),De(1))};var ke=class n{constructor(){this.bridge=f(le);this.paletteSnapshot$=Ne([this.bridge.cached["palette.snapshot"],this.bridge.cached["customPalette.snapshot"].pipe(he($s))]).pipe(N(([e,t])=>Hs(e,t)),De(1));this.workflowSnapshot$=this.bridge.cached["workflow.current.snapshot"];this.executionFeedSnapshot$=this.bridge.cached["executionFeed.snapshot"];this.outputEmitted$=this.bridge.raw["runner.output-emitted"].pipe(Pe(e=>e.kind==="output-emitted"));this.inputReceived$=this.bridge.raw["runner.input-received"].pipe(Pe(e=>e.kind==="input-received"&&typeof e.portId=="string"&&e.state==="value"));this.runnerStarted$=this.bridge.raw["runner.started"].pipe(Pe(e=>typeof e=="string"));this.runnerStartNodeStarted$=this.bridge.raw["runner.startNode.started"].pipe(Pe(e=>typeof e=="string"));this.runnerDone$=this.bridge.raw["runner.done"];this.runnerInterrupted$=this.bridge.raw["runner.interrupted"];this.permissionAsk$=this.bridge.raw["runner.permission.ask"]??Pt;this.paletteByType$=this.paletteSnapshot$.pipe(N(e=>Ft(e.nodes)),he(new Map),De(1));this.nodeTypeById$=this.workflowSnapshot$.pipe(N(e=>ii(e)),he(new Map),De(1));this.activeGraph$=this.workflowSnapshot$.pipe(N(e=>e.activeWorkflow?.graph??null),he(null),De({bufferSize:1,refCount:!1}));this.nodeLabels$=ce(re(new Map),Ne([this.workflowSnapshot$,this.paletteSnapshot$]).pipe(N(([e,t])=>Vp(e,Ft(t.nodes))))).pipe(De(1));this.paletteByType=ae(this.paletteByType$,{initialValue:new Map});this.nodeTypeById=ae(this.nodeTypeById$,{initialValue:new Map});this.nodeLabels=ae(this.nodeLabels$,{initialValue:new Map});this.activeGraph=ae(this.activeGraph$,{initialValue:null});this.hasRunnableGraph=b(()=>this.nodeTypeById().size>0);this.hasPlainStartTargets=b(()=>{let e=this.activeGraph();return e===null?!1:T0(e,this.paletteByType())});this.chatStartPending=H(!1);this.idleChatEntryNodeIds=b(()=>{if(this.isRunning()||this.chatStartPending())return[];let e=this.activeGraph();return e===null?[]:Na(e,this.paletteByType())});this.feedLocal$=new ot;this.feedState$=B0({workflowSnapshot$:this.workflowSnapshot$,paletteSnapshot$:this.paletteSnapshot$,executionFeedSnapshot$:this.executionFeedSnapshot$,outputEmitted$:this.outputEmitted$,inputReceived$:this.inputReceived$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$,permissionAsk$:this.permissionAsk$,feedLocal$:this.feedLocal$});this.feedSections=ae(this.feedState$.pipe(N(e=>e.sections)),{initialValue:[]});this.feedUserTurns=ae(this.feedState$.pipe(N(e=>e.userTurns)),{initialValue:[]});this.lastActivityByNode$=_0({outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$,executionFeedSnapshot$:this.executionFeedSnapshot$});this.lastActivityByNode=ae(this.lastActivityByNode$,{initialValue:new Map});this.livenessNowMs=ae(sg(1e3).pipe(N(()=>Date.now())),{initialValue:Date.now()});this.isRunning$=U0({executionFeedSnapshot$:this.executionFeedSnapshot$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$});this.isRunning=ae(this.isRunning$,{initialValue:!1});this.nodeOutputStates$=A0({executionFeedSnapshot$:this.executionFeedSnapshot$,outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$});this.nodeOutputStates=ae(this.nodeOutputStates$,{initialValue:new Map});this.edgeStates$=L0({executionFeedSnapshot$:this.executionFeedSnapshot$,outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$});this.edgeStates=ae(this.edgeStates$,{initialValue:new Map});this.hitlOpenLocal$=new ot;this.hitlResolveLocal$=new ot;this.hitlTriggeredNodes$=$0({workflowSnapshot$:this.workflowSnapshot$,paletteSnapshot$:this.paletteSnapshot$,executionFeedSnapshot$:this.executionFeedSnapshot$,inputReceived$:this.inputReceived$,outputEmitted$:this.outputEmitted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$,hitlOpenLocal$:this.hitlOpenLocal$,hitlResolveLocal$:this.hitlResolveLocal$});this.hitlTriggeredNodes=ae(this.hitlTriggeredNodes$,{initialValue:new Set});this.hitlDrafts=H(new Map);this.permissionResolveLocal$=new ot;this.pendingPermissionAsks$=H0({permissionAsk$:this.permissionAsk$,permissionResolveLocal$:this.permissionResolveLocal$,runnerDone$:this.runnerDone$,runnerInterrupted$:this.runnerInterrupted$,runnerStarted$:this.runnerStarted$,runnerStartNodeStarted$:this.runnerStartNodeStarted$});this.pendingPermissionAsks=ae(this.pendingPermissionAsks$,{initialValue:[]});ce(this.runnerDone$,this.runnerInterrupted$).subscribe(()=>{this.hitlDrafts.set(new Map),this.chatStartPending.set(!1)}),this.isRunning$.pipe(Pe(e=>e)).subscribe(()=>{this.chatStartPending.set(!1)})}nodeStatus(e){if(this.hitlTriggered(e)||this.pendingPermissionAsks().some(i=>i.nodeId===e))return"hitl";let t=`${e}:`,o=[];for(let[i,r]of this.nodeOutputStates())i.startsWith(t)&&o.push(r);return o.length===0?"inactive":o.some(i=>i==="error")?"error":o.some(i=>i==="pending")?"pending":"value"}latestOutputValue(e,t){return P0(this.feedSections(),e,t)}hitlTriggered(e){return this.hitlTriggeredNodes().has(e)||this.idleChatEntryNodeIds().includes(e)}hitlTriggeredNodeIds(){let e=[...this.hitlTriggeredNodes()],t=this.idleChatEntryNodeIds();if(t.length===0)return e;let o=new Set(e),i=[...e];for(let r of t)o.has(r)||(o.add(r),i.push(r));return i}nodeClusterRequiresChatEntry(e){let t=this.activeGraph();return t===null?!1:M0(t,this.paletteByType(),e)}hitlControls(e){let t=Sn(this.paletteByType(),this.nodeTypeById(),e);return t!==void 0?Wp(e,t):[]}nodeLabel(e){return this.nodeLabels().get(e)??e}lastActivityMs(e){return this.lastActivityByNode().get(e)}pausableFeedIsQuiet(){let e=this.pausableFeedNodeId();return e===null?!1:Hp(this.lastActivityMs(e),this.livenessNowMs(),$p)}hitlDraft(e,t){return this.hitlDrafts().get(`${e}:${t}`)??""}setHitlDraft(e,t,o){this.hitlDrafts.update(i=>{let r=new Map(i);return r.set(`${e}:${t}`,o),r})}requestSoftPause(){let e=this.pausableFeedNodeId();e!==null&&(this.feedLocal$.next({type:"settle"}),this.hitlOpenLocal$.next(e),this.bridge.raw["runner.hitl.event"]?.next({nodeId:e,portId:Ze,payload:{kind:"pause"}}))}latestFeedNodeId(){let e=this.feedSections();return e[e.length-1]?.nodeId??null}pausableFeedNodeId(){let e=this.latestFeedNodeId();return e===null||this.hitlTriggeredNodeIds().includes(e)?null:this.workingSteerNodeIds().includes(e)?e:null}workingSteerNodeIds(){let e=this.activeGraph();if(e===null||!this.isRunning())return[];let t=new Set(this.feedSections().filter(i=>i.status==="active").map(i=>i.nodeId)),o=[];for(let i of e.nodes){let r=this.nodeStatus(i.id);if(!(r==="pending"||r!=="hitl"&&r!=="error"&&t.has(i.id)))continue;this.paletteByType().get(i.type)?.inputsConfigs.some(d=>d.portId===Ze)&&o.push(i.id)}return o}submitHitl(e){let t=e[0],o=e[1],i=e[2],r=o===Ze&&typeof i=="string"?{kind:"steer",text:i}:i,s=this.nodeTypeById().get(t),a=s!==void 0?this.paletteByType().get(s):void 0,d=a?.chatEntry===!0,l=a!==void 0?vr(a,o,r):typeof r=="string"?r.trim():"";this.bridge.raw["runner.hitl.event"]?.next({nodeId:t,portId:o,payload:r}),this.hitlResolveLocal$.next(t),l.length>0&&this.feedLocal$.next({type:"user",runId:`local:${t}`,nodeId:t,portId:o,label:this.nodeLabel(t),text:l}),d&&this.chatStartPending.set(!0),this.hitlDrafts.update(c=>{let u=`${t}:`,w=new Map;for(let[S,k]of c)S.startsWith(u)||w.set(S,k);return w})}submitPermissionReply(e,t){this.bridge.raw["runner.permission.reply"]?.next({runId:e.runId,askId:e.askId,decision:t}),this.permissionResolveLocal$.next(e.askId)}wireStatus(e){return this.edgeStates().get(e)??"inactive"}getEventsForNode(e){return this.outputEmitted$.pipe(Pe(t=>t.nodeId===e))}getEventsForEdge(e){return this.outputEmitted$.pipe(Pe(t=>(t.edgeIds??[]).includes(e)))}getEventsForPort(e,t){return this.outputEmitted$.pipe(Pe(o=>o.nodeId===e&&o.portId===t))}getInputEventsForPort(e,t){return this.inputReceived$.pipe(Pe(o=>o.nodeId===e&&o.portId===t))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var j0=300,nP=(n,e=j0)=>n.pipe(Pe(t=>t.state==="value"),we(()=>jr(re("pulseOn"),rg(e).pipe(N(()=>"pulseOff"))))),En=(n,e=j0)=>nP(n,e).pipe(N(t=>t==="pulseOn"),he(!1));var oP="6 4",Aa=class n{constructor(){this.edge=I.required();this.execution=f(ke);this.diagramModel=f(Kt);this.status=b(()=>this.execution.wireStatus(this.edge().id));this.selected=b(()=>this.edge().selected===!0);this.backEdgeInput=b(()=>{let e=this.edge(),t=this.diagramModel.nodes(),o=t.find(r=>r.id===e.source)??null,i=t.find(r=>r.id===e.target)??null;return{sourceBounds:oi(o),targetBounds:oi(i),sourcePort:e.sourcePosition,targetPort:e.targetPosition,hasReverseEdge:v0(this.diagramModel.edges(),e.source,e.target)}});this.isBack=b(()=>cr(this.backEdgeInput()));this.dash=b(()=>{let e=this.backEdgeInput();if(cr(e)&&!(e.sourceBounds!==null&&e.targetBounds!==null))return oP});this.pulse=ae(Xe(this.edge).pipe(N(e=>e.id),we(e=>En(this.execution.getEventsForEdge(e)))),{initialValue:!1})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-edge"]],hostVars:14,hostBindings:function(t,o){t&2&&Y("lf-edge--inactive",o.status()==="inactive")("lf-edge--pending",o.status()==="pending")("lf-edge--value",o.status()==="value")("lf-edge--error",o.status()==="error")("lf-edge--pulse",o.pulse())("lf-edge--selected",o.selected())("lf-edge--back",o.isBack())},inputs:{edge:[1,"edge"]},decls:1,vars:2,consts:[[3,"edge","strokeDasharray"]],template:function(t,o){t&1&&$(0,"ng-diagram-base-edge",0),t&2&&L("edge",o.edge())("strokeDasharray",o.dash())},dependencies:[ao],styles:['[_nghost-%COMP%]{pointer-events:all;--edge-stroke-transition: stroke .1s ease-in-out}[_nghost-%COMP%]:hover:not(.lf-edge--selected){--edge-stroke: rgb(74 108 182)}[data-theme="dark"][_nghost-%COMP%]:hover:not(.lf-edge--selected){--edge-stroke: rgb(120 160 220)}.lf-edge--selected[_nghost-%COMP%]{--ngd-default-edge-stroke: rgb(37 99 235);--ngd-default-edge-stroke-selected: rgb(37 99 235);--edge-stroke: rgb(37 99 235);--ngd-default-edge-width: 2.5px}[data-theme="dark"].lf-edge--selected[_nghost-%COMP%]{--ngd-default-edge-stroke: rgb(96 165 250);--ngd-default-edge-stroke-selected: rgb(96 165 250);--edge-stroke: rgb(96 165 250)}']})}};function iP(n){return n?.hidden===!0}function rP(n){return typeof n.portId!="symbol"&&!iP(n)}function sP(n){return n.dynamic===!0?"dynamic":String(n.wireType??"any")}function aP(n,e,t){let o=-1;for(let i of n){if(i.target!==e||i.targetPort===void 0)continue;let{basePortId:r,slotIndex:s}=jn(ei(i.targetPort));r===t&&s>o&&(o=s)}return o}function V0(n,e,t){let o=ho(t);return n.some(i=>i.target===e&&i.targetPort===o)}function dP(n,e,t,o){if(n===void 0)return[];let i=[];for(let r of n.inputsConfigs){if(!rP(r))continue;let s=String(r.portId??r.name??"unknown"),a=r.name??s,d=sP(r),l=o[s]!==void 0?o[s]:r.defaultValue;if(r.multi!==void 0){let c=aP(t,e,s);for(let u=0;u<=c+1;u++){let w=ti(s,u);i.push({handle:w,portId:ho(w),label:a,wireType:d,basePortId:s,slotIndex:u,inline:u===0?r.inline??null:null,value:u===0?l:void 0,connected:V0(t,e,w)})}continue}i.push({handle:s,portId:ho(s),label:a,wireType:d,basePortId:s,slotIndex:0,inline:r.inline??null,value:l,connected:V0(t,e,s)})}return i}function lP(n){if(n===void 0)return[];let e=[];for(let t of n.outputsConfigs){if(t===void 0)continue;let o=String(t.portId??"unknown"),i=t.name,r;t.fromInput!==void 0?r=`from(${t.fromInput})`:r=String(t.wireType),e.push({portId:dr(o),label:i??o,wireType:r})}return e}function cP(n,e,t){if(n===void 0)return[];let o=[];for(let[i,r]of Object.entries(n.bypassPorts)){let s=String(r),a=W0(t,e,i,"target"),d=W0(t,e,i,"source"),l=Math.max(a,d);for(let c=0;c<=l+1;c++){let u=ti(i,c);o.push({handle:u,inputPortId:ho(u),outputPortId:dr(u),label:u,wireType:s})}}return o}function W0(n,e,t,o){let i=-1;for(let r of n){let s=o==="source"?r.source:r.target,a=o==="source"?r.sourcePort:r.targetPort;if(s!==e||a===void 0)continue;let{basePortId:d,slotIndex:l}=jn(o==="source"?go(a):ei(a));d===t&&l>i&&(i=l)}return i}function La(n,e,t=[],o={}){let i=cP(n,e,t);return{inputPorts:dP(n,e,t,o),outputPorts:lP(n),bypassPorts:i}}var ln=class n{constructor(){this.hovered=H(null);this.hoveredNodeId=this.hovered.asReadonly()}set(e){this.hovered.set(e)}clear(){this.hovered.set(null)}isHovered(e){return this.hovered()===e}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}};var Yp={map:new Map,runId:null},di=class n{constructor(){this.bridge=f(le);this.values=ae(ce(this.bridge.cached["executionFeed.snapshot"].pipe(N(e=>({type:"snapshot",snap:e}))),this.bridge.raw["runner.input-received"].pipe(Pe(e=>e.kind==="input-received"&&e.state==="value"&&typeof e.portId=="string"),N(e=>({type:"input",runId:e.runId,nodeId:e.nodeId,portId:e.portId,value:e.value}))),ce(this.bridge.raw["runner.started"],this.bridge.raw["runner.startNode.started"]).pipe(Pe(e=>typeof e=="string"),N(e=>({type:"reset",runId:e}))),this.bridge.cached["workflow.current.snapshot"].pipe(N(e=>e.activeWorkflow?.workflowId??null),Wr(),Gr(1),N(()=>({type:"clear"})))).pipe(Ge((e,t)=>{if(t.type==="snapshot")return{map:uP(t.snap),runId:t.snap?.runId??null};if(t.type==="clear")return Yp;if(t.type==="reset")return t.runId===e.runId?e:{map:new Map,runId:t.runId};let o=new Map(e.map);return o.set(Zp(t.nodeId,t.portId),t.value),{map:o,runId:t.runId}},Yp),N(e=>e.map)),{initialValue:Yp.map})}valueFor(e,t){return this.values().get(Zp(e,t))}entriesForNode(e){let t=`${e}:`,o=new Map;for(let[i,r]of this.values())i.startsWith(t)&&o.set(i.slice(t.length),r);return o}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275prov=j({token:n,factory:n.\u0275fac,providedIn:"root"})}},Zp=(n,e)=>`${n}:${e}`,uP=n=>{let e=new Map;if(n===null)return e;for(let t of n.events)t.kind!=="input-received"||t.state!=="value"||typeof t.portId=="symbol"||e.set(Zp(t.nodeId,t.portId),t.value);return e};var pP="lf-port-row-host--grow",hP="lf-node-title",gP=20,G0=(n,e,t)=>{let i=Array.from(n.children).reduce((r,s)=>{if(s.classList.contains(hP))return r+Math.max(s.offsetHeight,gP);if(!s.classList.contains(pP))return r+s.offsetHeight;let a=s.querySelector(".lf-port-row"),d=a instanceof HTMLElement?a.offsetHeight:0,l=s.querySelector(".lf-port-row__inline"),c=l instanceof HTMLElement&&Number.parseFloat(getComputedStyle(l).paddingBottom)||0,u=getComputedStyle(s).getPropertyValue("--lf-multiline-min").trim(),w=Number.parseFloat(u)||hr;return r+d+w+c},0);return Math.max(t,Math.ceil(i)+e)};var Kp=(n,e,t,o)=>({width:Math.max(o.width,n.width+(t.x-e.x)),height:Math.max(o.height,n.height+(t.y-e.y))});var Fa=class n{constructor(){this.execution=f(ke);this.nodeId=I.required();this.runtimePortId=I.required();this.inputPortId=I.required();this.outputPortId=I.required();this.label=I.required();this.wireType=I.required();this.nodeSelected=I(!1);this.inputEndpointHighlighted=I(!1);this.outputEndpointHighlighted=I(!1);this.inputPulse=ae(Ne([Xe(this.nodeId),Xe(this.runtimePortId)]).pipe(we(([e,t])=>En(this.execution.getInputEventsForPort(e,t)))),{initialValue:!1});this.outputPulse=ae(Ne([Xe(this.nodeId),Xe(this.runtimePortId)]).pipe(we(([e,t])=>En(this.execution.getEventsForPort(e,t)))),{initialValue:!1})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node-bypass-port-row"]],hostAttrs:[1,"lf-port-row-host"],inputs:{nodeId:[1,"nodeId"],runtimePortId:[1,"runtimePortId"],inputPortId:[1,"inputPortId"],outputPortId:[1,"outputPortId"],label:[1,"label"],wireType:[1,"wireType"],nodeSelected:[1,"nodeSelected"],inputEndpointHighlighted:[1,"inputEndpointHighlighted"],outputEndpointHighlighted:[1,"outputEndpointHighlighted"]},decls:10,vars:18,consts:[[1,"lf-port-row","lf-port-row--bypass"],[1,"lf-port-anchor","lf-port-anchor--in"],["type","target","side","left","originPoint","centerLeft",3,"id"],[1,"lf-port-row__content"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"lf-port-anchor","lf-port-anchor--out"],["type","source","side","right",3,"id"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"div",1),$(2,"ng-diagram-port",2),y(),v(3,"div",3)(4,"span"),C(5),y(),v(6,"span",4),C(7),y()(),v(8,"div",5),$(9,"ng-diagram-port",6),y()()),t&2&&(Y("lf-port-row--node-selected",o.nodeSelected()),p(),Y("lf-port-anchor--endpoint",o.inputEndpointHighlighted())("lf-port-anchor--node-selected",o.nodeSelected())("lf-port-anchor--pulse",o.inputPulse()),p(),L("id",o.inputPortId()),p(3),se(o.label()),p(2),U(" \xB7 ",o.wireType()," "),p(),Y("lf-port-anchor--endpoint",o.outputEndpointHighlighted())("lf-port-anchor--node-selected",o.nodeSelected())("lf-port-anchor--pulse",o.outputPulse()),p(),L("id",o.outputPortId()))},dependencies:[lo],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};function q0(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,o=Array(e);t<e;t++)o[t]=n[t];return o}function fP(n){if(Array.isArray(n))return n}function mP(n,e){var t=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(t!=null){var o,i,r,s,a=[],d=!0,l=!1;try{if(r=(t=t.call(n)).next,e!==0)for(;!(d=(o=r.call(t)).done)&&(a.push(o.value),a.length!==e);d=!0);}catch(c){l=!0,i=c}finally{try{if(!d&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}function yP(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
240
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vP(n,e){return fP(n)||mP(n,e)||bP(n,e)||yP()}function bP(n,e){if(n){if(typeof n=="string")return q0(n,e);var t={}.toString.call(n).slice(8,-1);return t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set"?Array.from(n):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?q0(n,e):void 0}}var dy=Object.entries,Y0=Object.setPrototypeOf,wP=Object.isFrozen,CP=Object.getPrototypeOf,_P=Object.getOwnPropertyDescriptor,dt=Object.freeze,lt=Object.seal,ui=Object.create,ly=typeof Reflect<"u"&&Reflect,nh=ly.apply,oh=ly.construct;dt||(dt=function(e){return e});lt||(lt=function(e){return e});nh||(nh=function(e,t){for(var o=arguments.length,i=new Array(o>2?o-2:0),r=2;r<o;r++)i[r-2]=arguments[r];return e.apply(t,i)});oh||(oh=function(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),i=1;i<t;i++)o[i-1]=arguments[i];return new e(...o)});var li=qe(Array.prototype.forEach),xP=qe(Array.prototype.lastIndexOf),Z0=qe(Array.prototype.pop),ci=qe(Array.prototype.push),SP=qe(Array.prototype.splice),Gn=Array.isArray,Cr=qe(String.prototype.toLowerCase),Xp=qe(String.prototype.toString),K0=qe(String.prototype.match),br=qe(String.prototype.replace),X0=qe(String.prototype.indexOf),EP=qe(String.prototype.trim),PP=qe(Number.prototype.toString),IP=qe(Boolean.prototype.toString),Q0=typeof BigInt>"u"?null:qe(BigInt.prototype.toString),J0=typeof Symbol>"u"?null:qe(Symbol.prototype.toString),et=qe(Object.prototype.hasOwnProperty),wr=qe(Object.prototype.toString),Je=qe(RegExp.prototype.test),fo=DP(TypeError);function qe(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,o=new Array(t>1?t-1:0),i=1;i<t;i++)o[i-1]=arguments[i];return nh(n,e,o)}}function DP(n){return function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return oh(n,t)}}function ue(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Cr;if(Y0&&Y0(n,null),!Gn(e))return n;let o=e.length;for(;o--;){let i=e[o];if(typeof i=="string"){let r=t(i);r!==i&&(wP(e)||(e[o]=r),i=r)}n[i]=!0}return n}function TP(n){for(let e=0;e<n.length;e++)et(n,e)||(n[e]=null);return n}function St(n){let e=ui(null);for(let o of dy(n)){var t=vP(o,2);let i=t[0],r=t[1];et(n,i)&&(Gn(r)?e[i]=TP(r):r&&typeof r=="object"&&r.constructor===Object?e[i]=St(r):e[i]=r)}return e}function MP(n){switch(typeof n){case"string":return n;case"number":return PP(n);case"boolean":return IP(n);case"bigint":return Q0?Q0(n):"0";case"symbol":return J0?J0(n):"Symbol()";case"undefined":return wr(n);case"function":case"object":{if(n===null)return wr(n);let e=n,t=cn(e,"toString");if(typeof t=="function"){let o=t(e);return typeof o=="string"?o:wr(o)}return wr(n)}default:return wr(n)}}function cn(n,e){for(;n!==null;){let o=_P(n,e);if(o){if(o.get)return qe(o.get);if(typeof o.value=="function")return qe(o.value)}n=CP(n)}function t(){return null}return t}function kP(n){try{return Je(n,""),!0}catch(e){return!1}}var ey=dt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Qp=dt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Jp=dt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),RP=dt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),eh=dt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),NP=dt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),ty=dt(["#text"]),ny=dt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),th=dt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),oy=dt(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),za=dt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),OP=lt(/{{[\w\W]*|^[\w\W]*}}/g),AP=lt(/<%[\w\W]*|^[\w\W]*%>/g),LP=lt(/\${[\w\W]*/g),FP=lt(/^data-[\-\w.\u00B7-\uFFFF]+$/),zP=lt(/^aria-[\-\w]+$/),iy=lt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),BP=lt(/^(?:\w+script|data):/i),$P=lt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),HP=lt(/^html$/i),UP=lt(/^[a-z][.\w]*(-[.\w]+)+$/i),ry=lt(/<[/\w!]/g),sy=lt(/<[/\w]/g),jP=lt(/<\/no(script|embed|frames)/i),VP=lt(/\/>/i),zt={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},WP=function(){return typeof window>"u"?null:window},GP=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let o=null,i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(o=t.getAttribute(i));let r="dompurify"+(o?"#"+o:"");try{return e.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch(s){return console.warn("TrustedTypes policy "+r+" could not be created."),null}},ay=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Wn=function(e,t,o,i){return et(e,t)&&Gn(e[t])?ue(i.base?St(i.base):{},e[t],i.transform):o};function cy(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:WP(),e=z=>cy(z);if(e.version="3.4.12",e.removed=[],!n||!n.document||n.document.nodeType!==zt.document||!n.Element)return e.isSupported=!1,e;let t=n.document,o=t,i=o.currentScript;n.DocumentFragment;let r=n.HTMLTemplateElement,s=n.Node,a=n.Element,d=n.NodeFilter,l=n.NamedNodeMap;l===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;let c=n.DOMParser,u=n.trustedTypes,w=a.prototype,S=cn(w,"cloneNode"),k=cn(w,"remove"),W=cn(w,"nextSibling"),Z=cn(w,"childNodes"),K=cn(w,"parentNode"),te=cn(w,"shadowRoot"),Ee=cn(w,"attributes"),de=s&&s.prototype?cn(s.prototype,"nodeType"):null,Le=s&&s.prototype?cn(s.prototype,"nodeName"):null;if(typeof r=="function"){let z=t.createElement("template");z.content&&z.content.ownerDocument&&(t=z.content.ownerDocument)}let Me,nt="",pn,yi=!1,vi=0,Ph=function(){if(vi>0)throw fo('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},wo=function(m){Ph(),vi++;try{return Me.createHTML(m)}finally{vi--}},_v=function(m){Ph(),vi++;try{return Me.createScriptURL(m)}finally{vi--}},xv=function(){return yi||(pn=GP(u,i),yi=!0),pn},Nr=t,_d=Nr.implementation,Ih=Nr.createNodeIterator,Sv=Nr.createDocumentFragment,Ev=Nr.getElementsByTagName,Pv=o.importNode,Fe=ay();e.isSupported=typeof dy=="function"&&typeof K=="function"&&_d&&_d.createHTMLDocument!==void 0;let Iv=OP,Dv=AP,Tv=LP,Mv=FP,kv=zP,Rv=BP,Dh=$P,Nv=UP,Th=iy,ze=null,Mh=ue({},[...ey,...Qp,...Jp,...eh,...ty]),Be=null,kh=ue({},[...ny,...th,...oy,...za]),$e=Object.seal(ui(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),bi=null,Rh=null,Pn=Object.seal(ui(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Nh=!0,xd=!0,Oh=!1,Ah=!0,In=!1,Dn=!0,Kn=!1,Sd=!1,Ed=null,Pd=null,Id=!1,Co=!1,Or=!1,Ar=!1,Lh=!0,Fh=!1,zh="user-content-",Dd=!0,Td=!1,_o={},Jt=null,Md=ue({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Bh=null,$h=ue({},["audio","video","img","source","image","track"]),kd=null,Hh=ue({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Lr="http://www.w3.org/1998/Math/MathML",Fr="http://www.w3.org/2000/svg",en="http://www.w3.org/1999/xhtml",xo=en,Rd=!1,Nd=null,Ov=ue({},[Lr,Fr,en],Xp),Uh=dt(["mi","mo","mn","ms","mtext"]),Od=ue({},Uh),jh=dt(["annotation-xml"]),Ad=ue({},jh),Av=ue({},["title","style","font","a","script"]),wi=null,Lv=["application/xhtml+xml","text/html"],Fv="text/html",Ae=null,So=null,zv=t.createElement("form"),Vh=function(m){return m instanceof RegExp||m instanceof Function},Ld=function(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(So&&So===m)return;(!m||typeof m!="object")&&(m={}),m=St(m),wi=Lv.indexOf(m.PARSER_MEDIA_TYPE)===-1?Fv:m.PARSER_MEDIA_TYPE,Ae=wi==="application/xhtml+xml"?Xp:Cr,ze=Wn(m,"ALLOWED_TAGS",Mh,{transform:Ae}),Be=Wn(m,"ALLOWED_ATTR",kh,{transform:Ae}),Nd=Wn(m,"ALLOWED_NAMESPACES",Ov,{transform:Xp}),kd=Wn(m,"ADD_URI_SAFE_ATTR",Hh,{transform:Ae,base:Hh}),Bh=Wn(m,"ADD_DATA_URI_TAGS",$h,{transform:Ae,base:$h}),Jt=Wn(m,"FORBID_CONTENTS",Md,{transform:Ae}),bi=Wn(m,"FORBID_TAGS",St({}),{transform:Ae}),Rh=Wn(m,"FORBID_ATTR",St({}),{transform:Ae}),_o=et(m,"USE_PROFILES")?m.USE_PROFILES&&typeof m.USE_PROFILES=="object"?St(m.USE_PROFILES):m.USE_PROFILES:!1,Nh=m.ALLOW_ARIA_ATTR!==!1,xd=m.ALLOW_DATA_ATTR!==!1,Oh=m.ALLOW_UNKNOWN_PROTOCOLS||!1,Ah=m.ALLOW_SELF_CLOSE_IN_ATTR!==!1,In=m.SAFE_FOR_TEMPLATES||!1,Dn=m.SAFE_FOR_XML!==!1,Kn=m.WHOLE_DOCUMENT||!1,Co=m.RETURN_DOM||!1,Or=m.RETURN_DOM_FRAGMENT||!1,Ar=m.RETURN_TRUSTED_TYPE||!1,Id=m.FORCE_BODY||!1,Lh=m.SANITIZE_DOM!==!1,Fh=m.SANITIZE_NAMED_PROPS||!1,Dd=m.KEEP_CONTENT!==!1,Td=m.IN_PLACE||!1,Th=kP(m.ALLOWED_URI_REGEXP)?m.ALLOWED_URI_REGEXP:iy,xo=typeof m.NAMESPACE=="string"?m.NAMESPACE:en,Od=et(m,"MATHML_TEXT_INTEGRATION_POINTS")&&m.MATHML_TEXT_INTEGRATION_POINTS&&typeof m.MATHML_TEXT_INTEGRATION_POINTS=="object"?St(m.MATHML_TEXT_INTEGRATION_POINTS):ue({},Uh),Ad=et(m,"HTML_INTEGRATION_POINTS")&&m.HTML_INTEGRATION_POINTS&&typeof m.HTML_INTEGRATION_POINTS=="object"?St(m.HTML_INTEGRATION_POINTS):ue({},jh);let x=et(m,"CUSTOM_ELEMENT_HANDLING")&&m.CUSTOM_ELEMENT_HANDLING&&typeof m.CUSTOM_ELEMENT_HANDLING=="object"?St(m.CUSTOM_ELEMENT_HANDLING):ui(null);if($e=ui(null),et(x,"tagNameCheck")&&Vh(x.tagNameCheck)&&($e.tagNameCheck=x.tagNameCheck),et(x,"attributeNameCheck")&&Vh(x.attributeNameCheck)&&($e.attributeNameCheck=x.attributeNameCheck),et(x,"allowCustomizedBuiltInElements")&&typeof x.allowCustomizedBuiltInElements=="boolean"&&($e.allowCustomizedBuiltInElements=x.allowCustomizedBuiltInElements),lt($e),In&&(xd=!1),Or&&(Co=!0),_o&&(ze=ue({},ty),Be=ui(null),_o.html===!0&&(ue(ze,ey),ue(Be,ny)),_o.svg===!0&&(ue(ze,Qp),ue(Be,th),ue(Be,za)),_o.svgFilters===!0&&(ue(ze,Jp),ue(Be,th),ue(Be,za)),_o.mathMl===!0&&(ue(ze,eh),ue(Be,oy),ue(Be,za))),Pn.tagCheck=null,Pn.attributeCheck=null,et(m,"ADD_TAGS")&&(typeof m.ADD_TAGS=="function"?Pn.tagCheck=m.ADD_TAGS:Gn(m.ADD_TAGS)&&(ze===Mh&&(ze=St(ze)),ue(ze,m.ADD_TAGS,Ae))),et(m,"ADD_ATTR")&&(typeof m.ADD_ATTR=="function"?Pn.attributeCheck=m.ADD_ATTR:Gn(m.ADD_ATTR)&&(Be===kh&&(Be=St(Be)),ue(Be,m.ADD_ATTR,Ae))),et(m,"ADD_URI_SAFE_ATTR")&&Gn(m.ADD_URI_SAFE_ATTR)&&ue(kd,m.ADD_URI_SAFE_ATTR,Ae),et(m,"FORBID_CONTENTS")&&Gn(m.FORBID_CONTENTS)&&(Jt===Md&&(Jt=St(Jt)),ue(Jt,m.FORBID_CONTENTS,Ae)),et(m,"ADD_FORBID_CONTENTS")&&Gn(m.ADD_FORBID_CONTENTS)&&(Jt===Md&&(Jt=St(Jt)),ue(Jt,m.ADD_FORBID_CONTENTS,Ae)),Dd&&(ze["#text"]=!0),Kn&&ue(ze,["html","head","body"]),ze.table&&(ue(ze,["tbody"]),delete bi.tbody),m.TRUSTED_TYPES_POLICY){if(typeof m.TRUSTED_TYPES_POLICY.createHTML!="function")throw fo('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof m.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw fo('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let R=Me;Me=m.TRUSTED_TYPES_POLICY;try{nt=wo("")}catch(q){throw Me=R,q}}else m.TRUSTED_TYPES_POLICY===null?(Me=void 0,nt=""):(Me===void 0&&(Me=xv()),Me&&typeof nt=="string"&&(nt=wo("")));dt&&dt(m),So=m},Wh=ue({},[...Qp,...Jp,...RP]),Gh=ue({},[...eh,...NP]),Bv=function(m,x,R){return x.namespaceURI===en?m==="svg":x.namespaceURI===Lr?m==="svg"&&(R==="annotation-xml"||Od[R]):!!Wh[m]},$v=function(m,x,R){return x.namespaceURI===en?m==="math":x.namespaceURI===Fr?m==="math"&&Ad[R]:!!Gh[m]},Hv=function(m,x,R){return x.namespaceURI===Fr&&!Ad[R]||x.namespaceURI===Lr&&!Od[R]?!1:!Gh[m]&&(Av[m]||!Wh[m])},Uv=function(m){let x=K(m);(!x||!x.tagName)&&(x={namespaceURI:xo,tagName:"template"});let R=Cr(m.tagName),q=Cr(x.tagName);return Nd[m.namespaceURI]?m.namespaceURI===Fr?Bv(R,x,q):m.namespaceURI===Lr?$v(R,x,q):m.namespaceURI===en?Hv(R,x,q):!!(wi==="application/xhtml+xml"&&Nd[m.namespaceURI]):!1},Tn=function(m){ci(e.removed,{element:m});try{K(m).removeChild(m)}catch(x){if(k(m),!K(m))throw fo("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},zr=function(m){Fd(m);let x=Z(m);if(x){let q=[];li(x,ee=>{ci(q,ee)}),li(q,ee=>{try{k(ee)}catch(ne){}})}let R=Ee(m);if(R)for(let q=R.length-1;q>=0;--q){let ee=R[q],ne=ee&&ee.name;if(typeof ne=="string")try{m.removeAttribute(ne)}catch(He){}}},Xn=function(m,x){try{ci(e.removed,{attribute:x.getAttributeNode(m),from:x})}catch(R){ci(e.removed,{attribute:null,from:x})}if(x.removeAttribute(m),m==="is")if(Co||Or)try{Tn(x)}catch(R){}else try{x.setAttribute(m,"")}catch(R){}},jv=function(m){let x=Ee(m);if(x)for(let R=x.length-1;R>=0;--R){let q=x[R],ee=q&&q.name;if(!(typeof ee!="string"||Be[Ae(ee)]))try{m.removeAttribute(ee)}catch(ne){}}},Fd=function(m){let x=[m];for(;x.length>0;){let R=x.pop();(de?de(R):R.nodeType)===zt.element&&jv(R);let ee=Z(R);if(ee)for(let ne=ee.length-1;ne>=0;--ne)x.push(ee[ne])}},Vv=function(m){if(!Dn)return;let x=[m];for(;x.length>0;){let R=x.pop(),q=de?de(R):R.nodeType;if(q===zt.processingInstruction||q===zt.comment&&Je(sy,R.data)){try{k(R)}catch(ne){}continue}if(q===zt.element){let ne=R,He=Ae(Le?Le(R):R.nodeName);try{ne.hasAttribute&&ne.hasAttribute("patchsrc")&&ne.removeAttribute("patchsrc"),ne.hasAttribute&&ne.hasAttribute("for")&&He!=="label"&&He!=="output"&&ne.removeAttribute("for")}catch(ct){}}let ee=Z(R);if(ee)for(let ne=ee.length-1;ne>=0;--ne)x.push(ee[ne])}},qh=function(m){let x=null,R=null;if(Id)m="<remove></remove>"+m;else{let ne=K0(m,/^[\r\n\t ]+/);R=ne&&ne[0]}wi==="application/xhtml+xml"&&xo===en&&(m='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+m+"</body></html>");let q=Me?wo(m):m;if(xo===en)try{x=new c().parseFromString(q,wi)}catch(ne){}if(!x||!x.documentElement){x=_d.createDocument(xo,"template",null);try{x.documentElement.innerHTML=Rd?nt:q}catch(ne){}}let ee=x.body||x.documentElement;return m&&R&&ee.insertBefore(t.createTextNode(R),ee.childNodes[0]||null),xo===en?Ev.call(x,Kn?"html":"body")[0]:Kn?x.documentElement:ee},Yh=function(m){return Ih.call(m.ownerDocument||m,m,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},Br=function(m){return m=br(m,Iv," "),m=br(m,Dv," "),m=br(m,Tv," "),m},zd=function(m){var x;m.normalize();let R=Ih.call(m.ownerDocument||m,m,d.SHOW_TEXT|d.SHOW_COMMENT|d.SHOW_CDATA_SECTION|d.SHOW_PROCESSING_INSTRUCTION,null),q=R.nextNode();for(;q;)q.data=Br(q.data),q=R.nextNode();let ee=(x=m.querySelectorAll)===null||x===void 0?void 0:x.call(m,"template");ee&&li(ee,ne=>{Eo(ne.content)&&zd(ne.content)})},$r=function(m){let x=Le?Le(m):null;return typeof x!="string"||Ae(x)!=="form"?!1:typeof m.nodeName!="string"||typeof m.textContent!="string"||typeof m.removeChild!="function"||m.attributes!==Ee(m)||typeof m.removeAttribute!="function"||typeof m.setAttribute!="function"||typeof m.namespaceURI!="string"||typeof m.insertBefore!="function"||typeof m.hasChildNodes!="function"||m.nodeType!==de(m)||m.childNodes!==Z(m)},Eo=function(m){if(!de||typeof m!="object"||m===null)return!1;try{return de(m)===zt.documentFragment}catch(x){return!1}},Ci=function(m){if(!de||typeof m!="object"||m===null)return!1;try{return typeof de(m)=="number"}catch(x){return!1}};function tn(z,m,x){z.length!==0&&li(z,R=>{R.call(e,m,x,So)})}let Wv=function(m,x){return!!(Dn&&m.hasChildNodes()&&!Ci(m.firstElementChild)&&Je(ry,m.textContent)&&Je(ry,m.innerHTML)||Dn&&m.namespaceURI===en&&x==="style"&&Ci(m.firstElementChild)||m.nodeType===zt.processingInstruction||Dn&&m.nodeType===zt.comment&&Je(sy,m.data))},Gv=function(m,x){if(!bi[x]&&Xh(x)&&($e.tagNameCheck instanceof RegExp&&Je($e.tagNameCheck,x)||$e.tagNameCheck instanceof Function&&$e.tagNameCheck(x)))return!1;if(Dd&&!Jt[x]){let R=K(m),q=Z(m);if(q&&R){let ee=q.length;for(let ne=ee-1;ne>=0;--ne){let He=Td?q[ne]:S(q[ne],!0);R.insertBefore(He,W(m))}}}return Tn(m),!0},Zh=function(m,x){if(tn(Fe.beforeSanitizeElements,m,null),m!==x&&K(m)===null)return!0;if($r(m))return Tn(m),!0;let R=Ae(Le?Le(m):m.nodeName);if(tn(Fe.uponSanitizeElement,m,{tagName:R,allowedTags:ze}),m!==x&&K(m)===null)return!0;if(Wv(m,R))return Tn(m),!0;if(bi[R]||!(Pn.tagCheck instanceof Function&&Pn.tagCheck(R))&&!ze[R]){let ee=Gv(m,R);return ee===!1&&tn(Fe.afterSanitizeElements,m,null),ee}if((de?de(m):m.nodeType)===zt.element&&!Uv(m)||(R==="noscript"||R==="noembed"||R==="noframes")&&Je(jP,m.innerHTML))return Tn(m),!0;if(In&&m.nodeType===zt.text){let ee=Br(m.textContent);m.textContent!==ee&&(ci(e.removed,{element:m.cloneNode()}),m.textContent=ee)}return tn(Fe.afterSanitizeElements,m,null),!1},Kh=function(m,x,R){if(Rh[x]||Dn&&x==="patchsrc"||Dn&&x==="for"&&m!=="label"&&m!=="output"||Lh&&(x==="id"||x==="name")&&(R in t||R in zv))return!1;let q=Be[x]||Pn.attributeCheck instanceof Function&&Pn.attributeCheck(x,m);if(!(xd&&Je(Mv,x))){if(!(Nh&&Je(kv,x))){if(q){if(!kd[x]){if(!Je(Th,br(R,Dh,""))){if(!((x==="src"||x==="xlink:href"||x==="href")&&m!=="script"&&X0(R,"data:")===0&&Bh[m])){if(!(Oh&&!Je(Rv,br(R,Dh,"")))){if(R)return!1}}}}}else if(!(Xh(m)&&($e.tagNameCheck instanceof RegExp&&Je($e.tagNameCheck,m)||$e.tagNameCheck instanceof Function&&$e.tagNameCheck(m))&&($e.attributeNameCheck instanceof RegExp&&Je($e.attributeNameCheck,x)||$e.attributeNameCheck instanceof Function&&$e.attributeNameCheck(x,m))||x==="is"&&$e.allowCustomizedBuiltInElements&&($e.tagNameCheck instanceof RegExp&&Je($e.tagNameCheck,R)||$e.tagNameCheck instanceof Function&&$e.tagNameCheck(R))))return!1}}return!0},qv=ue({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Xh=function(m){return!qv[Cr(m)]&&Je(Nv,m)},Yv=function(m,x,R,q){if(Me&&typeof u=="object"&&typeof u.getAttributeType=="function"&&!R)switch(u.getAttributeType(m,x)){case"TrustedHTML":return wo(q);case"TrustedScriptURL":return _v(q)}return q},Zv=function(m,x,R,q){try{R?m.setAttributeNS(R,x,q):m.setAttribute(x,q),$r(m)?Tn(m):Z0(e.removed)}catch(ee){Xn(x,m)}},Qh=function(m){tn(Fe.beforeSanitizeAttributes,m,null);let x=m.attributes;if(!x||$r(m))return;let R={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Be,forceKeepAttr:void 0},q=x.length,ee=Ae(m.nodeName);for(;q--;){let ne=x[q],He=ne.name,ct=ne.namespaceURI,jt=ne.value,Et=Ae(He),Vt=jt,wt=He==="value"?Vt:EP(Vt);if(R.attrName=Et,R.attrValue=wt,R.keepAttr=!0,R.forceKeepAttr=void 0,tn(Fe.uponSanitizeAttribute,m,R),wt=R.attrValue,Fh&&(Et==="id"||Et==="name")&&X0(wt,zh)!==0&&(Xn(He,m),wt=zh+wt),Dn&&Je(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,wt)){Xn(He,m);continue}if(Et==="attributename"&&K0(wt,"href")){Xn(He,m);continue}if(!R.forceKeepAttr){if(!R.keepAttr){Xn(He,m);continue}if(!Ah&&Je(VP,wt)){Xn(He,m);continue}if(In&&(wt=Br(wt)),!Kh(ee,Et,wt)){Xn(He,m);continue}wt=Yv(ee,Et,ct,wt),wt!==Vt&&Zv(m,He,ct,wt)}}tn(Fe.afterSanitizeAttributes,m,null)},Hr=function(m){let x=null,R=Yh(m);for(tn(Fe.beforeSanitizeShadowDOM,m,null);x=R.nextNode();)if(tn(Fe.uponSanitizeShadowNode,x,null),Zh(x,m),Qh(x),Eo(x.content)&&Hr(x.content),(de?de(x):x.nodeType)===zt.element){let ee=te(x);Eo(ee)&&(Bd(ee),Hr(ee))}tn(Fe.afterSanitizeShadowDOM,m,null)},Bd=function(m){let x=[{node:m,shadow:null}];for(;x.length>0;){let R=x.pop();if(R.shadow){Hr(R.shadow);continue}let q=R.node,ne=(de?de(q):q.nodeType)===zt.element,He=Z(q);if(He)for(let ct=He.length-1;ct>=0;--ct)x.push({node:He[ct],shadow:null});if(ne){let ct=Le?Le(q):null;if(typeof ct=="string"&&Ae(ct)==="template"){let jt=q.content;Eo(jt)&&x.push({node:jt,shadow:null})}}if(ne){let ct=te(q);Eo(ct)&&x.push({node:null,shadow:ct},{node:ct,shadow:null})}}};return e.sanitize=function(z){let m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=null,R=null,q=null,ee=null;if(Rd=!z,Rd&&(z="<!-->"),typeof z!="string"&&!Ci(z)&&(z=MP(z),typeof z!="string"))throw fo("dirty is not a string, aborting");if(!e.isSupported)return z;Sd?(ze=Ed,Be=Pd):Ld(m),(Fe.uponSanitizeElement.length>0||Fe.uponSanitizeAttribute.length>0)&&(ze=St(ze)),Fe.uponSanitizeAttribute.length>0&&(Be=St(Be)),e.removed=[];let ne=Td&&typeof z!="string"&&Ci(z);if(ne){Vv(z);let Et=Le?Le(z):z.nodeName;if(typeof Et=="string"){let Vt=Ae(Et);if(!ze[Vt]||bi[Vt])throw zr(z),fo("root node is forbidden and cannot be sanitized in-place")}if($r(z))throw zr(z),fo("root node is clobbered and cannot be sanitized in-place");try{Bd(z)}catch(Vt){throw zr(z),Vt}}else if(Ci(z))x=qh("<!---->"),R=x.ownerDocument.importNode(z,!0),R.nodeType===zt.element&&R.nodeName==="BODY"||R.nodeName==="HTML"?x=R:x.appendChild(R),Bd(R);else{if(!Co&&!In&&!Kn&&z.indexOf("<")===-1)return Me&&Ar?wo(z):z;if(x=qh(z),!x)return Co?null:Ar?nt:""}x&&Id&&Tn(x.firstChild);let He=ne?z:x,ct=Yh(He);try{for(;q=ct.nextNode();)Zh(q,He),Qh(q),Eo(q.content)&&Hr(q.content)}catch(Et){throw ne&&(zr(z),li(e.removed,Vt=>{Vt.element&&Fd(Vt.element)})),Et}if(ne)return li(e.removed,Et=>{Et.element&&Fd(Et.element)}),In&&zd(z),z;if(Co){if(In&&zd(x),Or)for(ee=Sv.call(x.ownerDocument);x.firstChild;)ee.appendChild(x.firstChild);else ee=x;return(Be.shadowroot||Be.shadowrootmode)&&(ee=Pv.call(o,ee,!0)),ee}let jt=Kn?x.outerHTML:x.innerHTML;return Kn&&ze["!doctype"]&&x.ownerDocument&&x.ownerDocument.doctype&&x.ownerDocument.doctype.name&&Je(HP,x.ownerDocument.doctype.name)&&(jt="<!DOCTYPE "+x.ownerDocument.doctype.name+`>
241
+ `+jt),In&&(jt=Br(jt)),Me&&Ar?wo(jt):jt},e.setConfig=function(){let z=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ld(z),Sd=!0,Ed=ze,Pd=Be},e.clearConfig=function(){So=null,Sd=!1,Ed=null,Pd=null,Me=pn,nt=""},e.isValidAttribute=function(z,m,x){So||Ld({});let R=Ae(z),q=Ae(m);return Kh(R,q,x)},e.addHook=function(z,m){typeof m=="function"&&et(Fe,z)&&ci(Fe[z],m)},e.removeHook=function(z,m){if(et(Fe,z)){if(m!==void 0){let x=xP(Fe[z],m);return x===-1?void 0:SP(Fe[z],x,1)[0]}return Z0(Fe[z])}},e.removeHooks=function(z){et(Fe,z)&&(Fe[z]=[])},e.removeAllHooks=function(){Fe=ay()},e}var uy=cy();function ah(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var vo=ah();function by(n){vo=n}var mo={exec:()=>null};function pi(n){let e=[];return t=>{let o=Math.max(0,Math.min(3,t-1)),i=e[o];return i||(i=n(o),e[o]=i),i}}function pe(n,e=""){let t=typeof n=="string"?n:n.source,o={replace:(i,r)=>{let s=typeof r=="string"?r:r.source;return s=s.replace(bt.caret,"$1"),t=t.replace(i,s),o},getRegex:()=>new RegExp(t,e)};return o}var qP=((n="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+n)}catch(e){return!1}})(),bt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:pi(n=>new RegExp(`^ {0,${n}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:pi(n=>new RegExp(`^ {0,${n}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:pi(n=>new RegExp(`^ {0,${n}}(?:\`\`\`|~~~)`)),headingBeginRegex:pi(n=>new RegExp(`^ {0,${n}}#`)),htmlBeginRegex:pi(n=>new RegExp(`^ {0,${n}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:pi(n=>new RegExp(`^ {0,${n}}>`))},YP=/^(?:[ \t]*(?:\n|$))+/,ZP=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,KP=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Sr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,XP=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,dh=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,wy=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Cy=pe(wy).replace(/bull/g,dh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),QP=pe(wy).replace(/bull/g,dh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),lh=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,JP=/^[^\n]+/,ch=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,eI=pe(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ch).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),tI=pe(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,dh).getRegex(),ja="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",uh=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,nI=pe("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n+|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n+|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n+|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",uh).replace("tag",ja).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),_y=n=>pe(lh).replace("hr",Sr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list",n).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ja).getRegex(),oI=_y(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),iI=_y(/ {0,3}(?:[*+-]|\d{1,9}[.)])[ \t]+[^ \t\n]/),rI=pe(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",iI).getRegex(),ph={blockquote:rI,code:ZP,def:eI,fences:KP,heading:XP,hr:Sr,html:nI,lheading:Cy,list:tI,newline:YP,paragraph:oI,table:mo,text:JP},py=pe("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Sr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ja).getRegex(),sI=_(h({},ph),{lheading:QP,table:py,paragraph:pe(lh).replace("hr",Sr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",py).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",ja).getRegex()}),aI=_(h({},ph),{html:pe(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",uh).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:mo,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:pe(lh).replace("hr",Sr).replace("heading",` *#{1,6} *[^
242
+ ]`).replace("lheading",Cy).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()}),dI=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,lI=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,xy=/^( {2,}|\\)\n(?!\s*$)/,cI=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,hi=/[\p{P}\p{S}]/u,Va=/[\s\p{P}\p{S}]/u,hh=/[^\s\p{P}\p{S}]/u,uI=pe(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Va).getRegex(),Sy=/(?!~)[\p{P}\p{S}]/u,pI=/(?!~)[\s\p{P}\p{S}]/u,hI=/(?:[^\s\p{P}\p{S}]|~)/u,gI=pe(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",qP?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Ey=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,fI=pe(Ey,"u").replace(/punct/g,hi).getRegex(),mI=pe(Ey,"u").replace(/punct/g,Sy).getRegex(),Py="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",yI=pe(Py,"gu").replace(/notPunctSpace/g,hh).replace(/punctSpace/g,Va).replace(/punct/g,hi).getRegex(),vI=pe(Py,"gu").replace(/notPunctSpace/g,hI).replace(/punctSpace/g,pI).replace(/punct/g,Sy).getRegex(),bI=pe("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,hh).replace(/punctSpace/g,Va).replace(/punct/g,hi).getRegex(),wI=pe(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,hi).getRegex(),CI="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",_I=pe(CI,"gu").replace(/notPunctSpace/g,hh).replace(/punctSpace/g,Va).replace(/punct/g,hi).getRegex(),xI=pe(/\\(punct)/,"gu").replace(/punct/g,hi).getRegex(),SI=pe(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),EI=pe(uh).replace("(?:-->|$)","-->").getRegex(),PI=pe("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",EI).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),$a=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,II=pe(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",$a).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Iy=pe(/^!?\[(label)\]\[(ref)\]/).replace("label",$a).replace("ref",ch).getRegex(),Dy=pe(/^!?\[(ref)\](?:\[\])?/).replace("ref",ch).getRegex(),DI=pe("reflink|nolink(?!\\()","g").replace("reflink",Iy).replace("nolink",Dy).getRegex(),hy=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,gh={_backpedal:mo,anyPunctuation:xI,autolink:SI,blockSkip:gI,br:xy,code:lI,del:mo,delLDelim:mo,delRDelim:mo,emStrongLDelim:fI,emStrongRDelimAst:yI,emStrongRDelimUnd:bI,escape:dI,link:II,nolink:Dy,punctuation:uI,reflink:Iy,reflinkSearch:DI,tag:PI,text:cI,url:mo},TI=_(h({},gh),{link:pe(/^!?\[(label)\]\((.*?)\)/).replace("label",$a).getRegex(),reflink:pe(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",$a).getRegex()}),ih=_(h({},gh),{emStrongRDelimAst:vI,emStrongLDelim:mI,delLDelim:wI,delRDelim:_I,url:pe(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",hy).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:pe(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",hy).getRegex()}),MI=_(h({},ih),{br:pe(xy).replace("{2,}","*").getRegex(),text:pe(ih.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()}),Ba={normal:ph,gfm:sI,pedantic:aI},_r={normal:gh,gfm:ih,breaks:MI,pedantic:TI},kI={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},gy=n=>kI[n];function un(n,e){if(e){if(bt.escapeTest.test(n))return n.replace(bt.escapeReplace,gy)}else if(bt.escapeTestNoEncode.test(n))return n.replace(bt.escapeReplaceNoEncode,gy);return n}function fy(n){try{n=encodeURI(n).replace(bt.percentDecode,"%")}catch(e){return null}return n}function my(n,e){let t=n.replace(bt.findPipe,(r,s,a)=>{let d=!1,l=s;for(;--l>=0&&a[l]==="\\";)d=!d;return d?"|":" |"}),o=t.split(bt.splitPipe),i=0;if(o[0].trim()||o.shift(),o.length>0&&!o.at(-1)?.trim()&&o.pop(),e)if(o.length>e)o.splice(e);else for(;o.length<e;)o.push("");for(;i<o.length;i++)o[i]=o[i].trim().replace(bt.slashPipe,"|");return o}function qn(n,e,t){let o=n.length;if(o===0)return"";let i=0;for(;i<o;){let r=n.charAt(o-i-1);if(r===e&&!t)i++;else if(r!==e&&t)i++;else break}return n.slice(0,o-i)}function yy(n){let e=n.split(`
243
243
  `),t=e.length-1;for(;t>=0&&bt.blankLine.test(e[t]);)t--;return e.length-t<=2?n:e.slice(0,t+1).join(`
244
- `)}function yI(n,e){if(n.indexOf(e[1])===-1)return-1;let t=0;for(let o=0;o<n.length;o++)if(n[o]==="\\")o++;else if(n[o]===e[0])t++;else if(n[o]===e[1]&&(t--,t<0))return o;return t>0?-2:-1}function vI(n,e=0){let t=e,o="";for(let i of n)if(i===" "){let r=4-t%4;o+=" ".repeat(r),t+=r}else o+=i,t++;return o}function uy(n,e,t,o,i){let r=e.href,s=e.title||null,a=n[1].replace(i.other.outputLinkReplace,"$1");o.state.inLink=!0;let d={type:n[0].charAt(0)==="!"?"image":"link",raw:t,href:r,title:s,text:a,tokens:o.inlineTokens(a)};return o.state.inLink=!1,d}function bI(n,e,t){let o=n.match(t.other.indentCodeCompensation);if(o===null)return e;let i=o[1];return e.split(`
244
+ `)}function RI(n,e){if(n.indexOf(e[1])===-1)return-1;let t=0;for(let o=0;o<n.length;o++)if(n[o]==="\\")o++;else if(n[o]===e[0])t++;else if(n[o]===e[1]&&(t--,t<0))return o;return t>0?-2:-1}function NI(n,e=0){let t=e,o="";for(let i of n)if(i===" "){let r=4-t%4;o+=" ".repeat(r),t+=r}else o+=i,t++;return o}function vy(n,e,t,o,i){let r=e.href,s=e.title||null,a=n[1].replace(i.other.outputLinkReplace,"$1");o.state.inLink=!0;let d={type:n[0].charAt(0)==="!"?"image":"link",raw:t,href:r,title:s,text:a,tokens:o.inlineTokens(a)};return o.state.inLink=!1,d}function OI(n,e,t){let o=n.match(t.other.indentCodeCompensation);if(o===null)return e;let i=o[1];return e.split(`
245
245
  `).map(r=>{let s=r.match(t.other.beginningSpace);if(s===null)return r;let[a]=s;return a.length>=i.length?r.slice(i.length):r}).join(`
246
- `)}var za=class{options;rules;lexer;constructor(n){this.options=n||mo}space(n){let e=this.rules.block.newline.exec(n);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(n){let e=this.rules.block.code.exec(n);if(e){let t=this.options.pedantic?e[0]:cy(e[0]),o=t.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t,codeBlockStyle:"indented",text:o}}}fences(n){let e=this.rules.block.fences.exec(n);if(e){let t=e[0],o=bI(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:o}}}heading(n){let e=this.rules.block.heading.exec(n);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let o=Wn(t,"#");(this.options.pedantic||!o||this.rules.other.endingSpaceChar.test(o))&&(t=o.trim())}return{type:"heading",raw:Wn(e[0],`
247
- `),depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(n){let e=this.rules.block.hr.exec(n);if(e)return{type:"hr",raw:Wn(e[0],`
248
- `)}}blockquote(n){let e=this.rules.block.blockquote.exec(n);if(e){let t=Wn(e[0],`
246
+ `)}var Ha=class{options;rules;lexer;constructor(n){this.options=n||vo}space(n){let e=this.rules.block.newline.exec(n);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(n){let e=this.rules.block.code.exec(n);if(e){let t=this.options.pedantic?e[0]:yy(e[0]),o=t.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t,codeBlockStyle:"indented",text:o}}}fences(n){let e=this.rules.block.fences.exec(n);if(e){let t=e[0],o=OI(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:o}}}heading(n){let e=this.rules.block.heading.exec(n);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let o=qn(t,"#");(this.options.pedantic||!o||this.rules.other.endingSpaceChar.test(o))&&(t=o.trim())}return{type:"heading",raw:qn(e[0],`
247
+ `),depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(n){let e=this.rules.block.hr.exec(n);if(e)return{type:"hr",raw:qn(e[0],`
248
+ `)}}blockquote(n){let e=this.rules.block.blockquote.exec(n);if(e){let t=qn(e[0],`
249
249
  `).split(`
250
250
  `),o="",i="",r=[];for(;t.length>0;){let s=!1,a=[],d;for(d=0;d<t.length;d++)if(this.rules.other.blockquoteStart.test(t[d]))a.push(t[d]),s=!0;else if(!s)a.push(t[d]);else break;t=t.slice(d);let l=a.join(`
251
251
  `),c=l.replace(this.rules.other.blockquoteSetextReplace,`
@@ -256,19 +256,19 @@ ${c}`:c;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
256
256
  `),W=this.blockquote(k);r[r.length-1]=W,o=o.substring(0,o.length-S.raw.length)+W.raw,i=i.substring(0,i.length-S.text.length)+W.text;break}else if(w?.type==="list"){let S=w,k=S.raw+`
257
257
  `+t.join(`
258
258
  `),W=this.list(k);r[r.length-1]=W,o=o.substring(0,o.length-w.raw.length)+W.raw,i=i.substring(0,i.length-S.raw.length)+W.raw,t=k.substring(r.at(-1).raw.length).split(`
259
- `);continue}}return{type:"blockquote",raw:o,tokens:r,text:i}}}list(n){let e=this.rules.block.list.exec(n);if(e){let t=e[1].trim(),o=t.length>1,i={type:"list",raw:"",ordered:o,start:o?+t.slice(0,-1):"",loose:!1,items:[]};t=o?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=o?t:"[*+-]");let r=this.rules.other.listItemRegex(t),s=!1;for(;n;){let d=!1,l="",c="";if(!(e=r.exec(n))||this.rules.block.hr.test(n))break;l=e[0],n=n.substring(l.length);let u=vI(e[2].split(`
259
+ `);continue}}return{type:"blockquote",raw:o,tokens:r,text:i}}}list(n){let e=this.rules.block.list.exec(n);if(e){let t=e[1].trim(),o=t.length>1,i={type:"list",raw:"",ordered:o,start:o?+t.slice(0,-1):"",loose:!1,items:[]};t=o?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=o?t:"[*+-]");let r=this.rules.other.listItemRegex(t),s=!1;for(;n;){let d=!1,l="",c="";if(!(e=r.exec(n))||this.rules.block.hr.test(n))break;l=e[0],n=n.substring(l.length);let u=NI(e[2].split(`
260
260
  `,1)[0],e[1].length),w=n.split(`
261
261
  `,1)[0],S=!u.trim(),k=0;if(this.options.pedantic?(k=2,c=u.trimStart()):S?k=e[1].length+1:(k=u.search(this.rules.other.nonSpaceChar),k=k>4?1:k,c=u.slice(k),k+=e[1].length),S&&this.rules.other.blankLine.test(w)&&(l+=w+`
262
- `,n=n.substring(w.length+1),d=!0),!d){let W=this.rules.other.nextBulletRegex(k),Z=this.rules.other.hrRegex(k),X=this.rules.other.fencesBeginRegex(k),he=this.rules.other.headingBeginRegex(k),ke=this.rules.other.htmlBeginRegex(k),le=this.rules.other.blockquoteBeginRegex(k);for(;n;){let Le=n.split(`
263
- `,1)[0],Me;if(w=Le,this.options.pedantic?(w=w.replace(this.rules.other.listReplaceNesting," "),Me=w):Me=w.replace(this.rules.other.tabCharGlobal," "),X.test(w)||he.test(w)||ke.test(w)||le.test(w)||W.test(w)||Z.test(w))break;if(Me.search(this.rules.other.nonSpaceChar)>=k||!w.trim())c+=`
264
- `+Me.slice(k);else{if(S||u.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||X.test(u)||he.test(u)||Z.test(u))break;c+=`
262
+ `,n=n.substring(w.length+1),d=!0),!d){let W=this.rules.other.nextBulletRegex(k),Z=this.rules.other.hrRegex(k),K=this.rules.other.fencesBeginRegex(k),te=this.rules.other.headingBeginRegex(k),Ee=this.rules.other.htmlBeginRegex(k),de=this.rules.other.blockquoteBeginRegex(k);for(;n;){let Le=n.split(`
263
+ `,1)[0],Me;if(w=Le,this.options.pedantic?(w=w.replace(this.rules.other.listReplaceNesting," "),Me=w):Me=w.replace(this.rules.other.tabCharGlobal," "),K.test(w)||te.test(w)||Ee.test(w)||de.test(w)||W.test(w)||Z.test(w))break;if(Me.search(this.rules.other.nonSpaceChar)>=k||!w.trim())c+=`
264
+ `+Me.slice(k);else{if(S||u.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||K.test(u)||te.test(u)||Z.test(u))break;c+=`
265
265
  `+w}S=!w.trim(),l+=Le+`
266
- `,n=n.substring(Le.length+1),u=Me.slice(k)}}i.loose||(s?i.loose=!0:this.rules.other.doubleBlankLine.test(l)&&(s=!0)),i.items.push({type:"list_item",raw:l,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=l}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let d of i.items){this.lexer.state.top=!1,d.tokens=this.lexer.blockTokens(d.text,[]);let l=d.tokens[0];if(d.task&&(l?.type==="text"||l?.type==="paragraph")){d.text=d.text.replace(this.rules.other.listReplaceTask,""),l.raw=l.raw.replace(this.rules.other.listReplaceTask,""),l.text=l.text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}let c=this.rules.other.listTaskCheckbox.exec(d.raw);if(c){let u={type:"checkbox",raw:c[0]+" ",checked:c[0]!=="[ ]"};d.checked=u.checked,i.loose?d.tokens[0]&&["paragraph","text"].includes(d.tokens[0].type)&&"tokens"in d.tokens[0]&&d.tokens[0].tokens?(d.tokens[0].raw=u.raw+d.tokens[0].raw,d.tokens[0].text=u.raw+d.tokens[0].text,d.tokens[0].tokens.unshift(u)):d.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):d.tokens.unshift(u)}}else d.task&&(d.task=!1);if(!i.loose){let c=d.tokens.filter(w=>w.type==="space"),u=c.length>0&&c.some(w=>this.rules.other.anyLine.test(w.raw));i.loose=u}}if(i.loose)for(let d of i.items){d.loose=!0;for(let l of d.tokens)l.type==="text"&&(l.type="paragraph")}return i}}html(n){let e=this.rules.block.html.exec(n);if(e){let t=cy(e[0]);return{type:"html",block:!0,raw:t,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:t}}}def(n){let e=this.rules.block.def.exec(n);if(e){let t=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),o=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:Wn(e[0],`
267
- `),href:o,title:i}}}table(n){let e=this.rules.block.table.exec(n);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let t=ly(e[1]),o=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
268
- `):[],r={type:"table",raw:Wn(e[0],`
269
- `),header:[],align:[],rows:[]};if(t.length===o.length){for(let s of o)this.rules.other.tableAlignRight.test(s)?r.align.push("right"):this.rules.other.tableAlignCenter.test(s)?r.align.push("center"):this.rules.other.tableAlignLeft.test(s)?r.align.push("left"):r.align.push(null);for(let s=0;s<t.length;s++)r.header.push({text:t[s],tokens:this.lexer.inline(t[s]),header:!0,align:r.align[s]});for(let s of i)r.rows.push(ly(s,r.header.length).map((a,d)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:r.align[d]})));return r}}lheading(n){let e=this.rules.block.lheading.exec(n);if(e){let t=e[1].trim();return{type:"heading",raw:Wn(e[0],`
266
+ `,n=n.substring(Le.length+1),u=Me.slice(k)}}i.loose||(s?i.loose=!0:this.rules.other.doubleBlankLine.test(l)&&(s=!0)),i.items.push({type:"list_item",raw:l,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=l}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let d of i.items){this.lexer.state.top=!1,d.tokens=this.lexer.blockTokens(d.text,[]);let l=d.tokens[0];if(d.task&&(l?.type==="text"||l?.type==="paragraph")){d.text=d.text.replace(this.rules.other.listReplaceTask,""),l.raw=l.raw.replace(this.rules.other.listReplaceTask,""),l.text=l.text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}let c=this.rules.other.listTaskCheckbox.exec(d.raw);if(c){let u={type:"checkbox",raw:c[0]+" ",checked:c[0]!=="[ ]"};d.checked=u.checked,i.loose?d.tokens[0]&&["paragraph","text"].includes(d.tokens[0].type)&&"tokens"in d.tokens[0]&&d.tokens[0].tokens?(d.tokens[0].raw=u.raw+d.tokens[0].raw,d.tokens[0].text=u.raw+d.tokens[0].text,d.tokens[0].tokens.unshift(u)):d.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):d.tokens.unshift(u)}}else d.task&&(d.task=!1);if(!i.loose){let c=d.tokens.filter(w=>w.type==="space"),u=c.length>0&&c.some(w=>this.rules.other.anyLine.test(w.raw));i.loose=u}}if(i.loose)for(let d of i.items){d.loose=!0;for(let l of d.tokens)l.type==="text"&&(l.type="paragraph")}return i}}html(n){let e=this.rules.block.html.exec(n);if(e){let t=yy(e[0]);return{type:"html",block:!0,raw:t,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:t}}}def(n){let e=this.rules.block.def.exec(n);if(e){let t=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),o=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:qn(e[0],`
267
+ `),href:o,title:i}}}table(n){let e=this.rules.block.table.exec(n);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let t=my(e[1]),o=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
268
+ `):[],r={type:"table",raw:qn(e[0],`
269
+ `),header:[],align:[],rows:[]};if(t.length===o.length){for(let s of o)this.rules.other.tableAlignRight.test(s)?r.align.push("right"):this.rules.other.tableAlignCenter.test(s)?r.align.push("center"):this.rules.other.tableAlignLeft.test(s)?r.align.push("left"):r.align.push(null);for(let s=0;s<t.length;s++)r.header.push({text:t[s],tokens:this.lexer.inline(t[s]),header:!0,align:r.align[s]});for(let s of i)r.rows.push(my(s,r.header.length).map((a,d)=>({text:a,tokens:this.lexer.inline(a),header:!1,align:r.align[d]})));return r}}lheading(n){let e=this.rules.block.lheading.exec(n);if(e){let t=e[1].trim();return{type:"heading",raw:qn(e[0],`
270
270
  `),depth:e[2].charAt(0)==="="?1:2,text:t,tokens:this.lexer.inline(t)}}}paragraph(n){let e=this.rules.block.paragraph.exec(n);if(e){let t=e[1].charAt(e[1].length-1)===`
271
- `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(n){let e=this.rules.block.text.exec(n);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(n){let e=this.rules.inline.escape.exec(n);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(n){let e=this.rules.inline.tag.exec(n);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(n){let e=this.rules.inline.link.exec(n);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let r=Wn(t.slice(0,-1),"\\");if((t.length-r.length)%2===0)return}else{let r=yI(e[2],"()");if(r===-2)return;if(r>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+r;e[2]=e[2].substring(0,r),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let o=e[2],i="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(o);r&&(o=r[1],i=r[3])}else i=e[3]?e[3].slice(1,-1):"";return o=o.trim(),this.rules.other.startAngleBracket.test(o)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?o=o.slice(1):o=o.slice(1,-1)),uy(e,{href:o&&o.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(n,e){let t;if((t=this.rules.inline.reflink.exec(n))||(t=this.rules.inline.nolink.exec(n))){let o=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[o.toLowerCase()];if(!i){let r=t[0].charAt(0);return{type:"text",raw:r,text:r}}return uy(t,i,t[0],this.lexer,this.rules)}}emStrong(n,e,t=""){let o=this.rules.inline.emStrongLDelim.exec(n);if(!(!o||!o[1]&&!o[2]&&!o[3]&&!o[4]||o[4]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(o[1]||o[3])||!t||this.rules.inline.punctuation.exec(t))){let i=[...o[0]].length-1,r,s,a=i,d=0,l=o[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,e=e.slice(-1*n.length+i);(o=l.exec(e))!==null;){if(r=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!r)continue;if(s=[...r].length,o[3]||o[4]){a+=s;continue}else if((o[5]||o[6])&&i%3&&!((i+s)%3)){d+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+d);let c=[...o[0]][0].length,u=n.slice(0,i+o.index+c+s);if(Math.min(i,s)%2){let S=u.slice(1,-1);return{type:"em",raw:u,text:S,tokens:this.lexer.inlineTokens(S)}}let w=u.slice(2,-2);return{type:"strong",raw:u,text:w,tokens:this.lexer.inlineTokens(w)}}}}codespan(n){let e=this.rules.inline.code.exec(n);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),o=this.rules.other.nonSpaceChar.test(t),i=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return o&&i&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(n){let e=this.rules.inline.br.exec(n);if(e)return{type:"br",raw:e[0]}}del(n,e,t=""){let o=this.rules.inline.delLDelim.exec(n);if(o&&(!o[1]||!t||this.rules.inline.punctuation.exec(t))){let i=[...o[0]].length-1,r,s,a=i,d=this.rules.inline.delRDelim;for(d.lastIndex=0,e=e.slice(-1*n.length+i);(o=d.exec(e))!==null;){if(r=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!r||(s=[...r].length,s!==i))continue;if(o[3]||o[4]){a+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a);let l=[...o[0]][0].length,c=n.slice(0,i+o.index+l+s),u=c.slice(i,-i);return{type:"del",raw:c,text:u,tokens:this.lexer.inlineTokens(u)}}}}autolink(n){let e=this.rules.inline.autolink.exec(n);if(e){let t,o;return e[2]==="@"?(t=e[1],o="mailto:"+t):(t=e[1],o=t),{type:"link",raw:e[0],text:t,href:o,tokens:[{type:"text",raw:t,text:t}]}}}url(n){let e;if(e=this.rules.inline.url.exec(n)){let t,o;if(e[2]==="@")t=e[0],o="mailto:"+t;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);t=e[0],e[1]==="www."?o="http://"+e[0]:o=e[0]}return{type:"link",raw:e[0],text:t,href:o,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(n){let e=this.rules.inline.text.exec(n);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},Yt=class eh{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||mo,this.options.tokenizer=this.options.tokenizer||new za,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:bt,block:La.normal,inline:Sr.normal};this.options.pedantic?(t.block=La.pedantic,t.inline=Sr.pedantic):this.options.gfm&&(t.block=La.gfm,this.options.breaks?t.inline=Sr.breaks:t.inline=Sr.gfm),this.tokenizer.rules=t}static get rules(){return{block:La,inline:Sr}}static lex(e,t){return new eh(t).lex(e)}static lexInline(e,t){return new eh(t).inlineTokens(e)}lex(e){e=e.replace(bt.carriageReturn,`
271
+ `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(n){let e=this.rules.block.text.exec(n);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(n){let e=this.rules.inline.escape.exec(n);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(n){let e=this.rules.inline.tag.exec(n);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(n){let e=this.rules.inline.link.exec(n);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let r=qn(t.slice(0,-1),"\\");if((t.length-r.length)%2===0)return}else{let r=RI(e[2],"()");if(r===-2)return;if(r>-1){let s=(e[0].indexOf("!")===0?5:4)+e[1].length+r;e[2]=e[2].substring(0,r),e[0]=e[0].substring(0,s).trim(),e[3]=""}}let o=e[2],i="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(o);r&&(o=r[1],i=r[3])}else i=e[3]?e[3].slice(1,-1):"";return o=o.trim(),this.rules.other.startAngleBracket.test(o)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?o=o.slice(1):o=o.slice(1,-1)),vy(e,{href:o&&o.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(n,e){let t;if((t=this.rules.inline.reflink.exec(n))||(t=this.rules.inline.nolink.exec(n))){let o=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[o.toLowerCase()];if(!i){let r=t[0].charAt(0);return{type:"text",raw:r,text:r}}return vy(t,i,t[0],this.lexer,this.rules)}}emStrong(n,e,t=""){let o=this.rules.inline.emStrongLDelim.exec(n);if(!(!o||!o[1]&&!o[2]&&!o[3]&&!o[4]||o[4]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(o[1]||o[3])||!t||this.rules.inline.punctuation.exec(t))){let i=[...o[0]].length-1,r,s,a=i,d=0,l=o[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,e=e.slice(-1*n.length+i);(o=l.exec(e))!==null;){if(r=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!r)continue;if(s=[...r].length,o[3]||o[4]){a+=s;continue}else if((o[5]||o[6])&&i%3&&!((i+s)%3)){d+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a+d);let c=[...o[0]][0].length,u=n.slice(0,i+o.index+c+s);if(Math.min(i,s)%2){let S=u.slice(1,-1);return{type:"em",raw:u,text:S,tokens:this.lexer.inlineTokens(S)}}let w=u.slice(2,-2);return{type:"strong",raw:u,text:w,tokens:this.lexer.inlineTokens(w)}}}}codespan(n){let e=this.rules.inline.code.exec(n);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),o=this.rules.other.nonSpaceChar.test(t),i=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return o&&i&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(n){let e=this.rules.inline.br.exec(n);if(e)return{type:"br",raw:e[0]}}del(n,e,t=""){let o=this.rules.inline.delLDelim.exec(n);if(o&&(!o[1]||!t||this.rules.inline.punctuation.exec(t))){let i=[...o[0]].length-1,r,s,a=i,d=this.rules.inline.delRDelim;for(d.lastIndex=0,e=e.slice(-1*n.length+i);(o=d.exec(e))!==null;){if(r=o[1]||o[2]||o[3]||o[4]||o[5]||o[6],!r||(s=[...r].length,s!==i))continue;if(o[3]||o[4]){a+=s;continue}if(a-=s,a>0)continue;s=Math.min(s,s+a);let l=[...o[0]][0].length,c=n.slice(0,i+o.index+l+s),u=c.slice(i,-i);return{type:"del",raw:c,text:u,tokens:this.lexer.inlineTokens(u)}}}}autolink(n){let e=this.rules.inline.autolink.exec(n);if(e){let t,o;return e[2]==="@"?(t=e[1],o="mailto:"+t):(t=e[1],o=t),{type:"link",raw:e[0],text:t,href:o,tokens:[{type:"text",raw:t,text:t}]}}}url(n){let e;if(e=this.rules.inline.url.exec(n)){let t,o;if(e[2]==="@")t=e[0],o="mailto:"+t;else{let i;do i=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(i!==e[0]);t=e[0],e[1]==="www."?o="http://"+e[0]:o=e[0]}return{type:"link",raw:e[0],text:t,href:o,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(n){let e=this.rules.inline.text.exec(n);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},Xt=class rh{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||vo,this.options.tokenizer=this.options.tokenizer||new Ha,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:bt,block:Ba.normal,inline:_r.normal};this.options.pedantic?(t.block=Ba.pedantic,t.inline=_r.pedantic):this.options.gfm&&(t.block=Ba.gfm,this.options.breaks?t.inline=_r.breaks:t.inline=_r.gfm),this.tokenizer.rules=t}static get rules(){return{block:Ba,inline:_r}}static lex(e,t){return new rh(t).lex(e)}static lexInline(e,t){return new rh(t).inlineTokens(e)}lex(e){e=e.replace(bt.carriageReturn,`
272
272
  `),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let o=this.inlineQueue[t];this.inlineTokens(o.src,o.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],o=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(bt.tabCharGlobal," ").replace(bt.spaceLine,""));let i=1/0;for(;e;){if(e.length<i)i=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(a=>(r=a.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let a=t.at(-1);r.raw.length===1&&a!==void 0?a.raw+=`
273
273
  `:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let a=t.at(-1);a?.type==="paragraph"||a?.type==="text"?(a.raw+=(a.raw.endsWith(`
274
274
  `)?"":`
@@ -282,9 +282,9 @@ ${c}`:c;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
282
282
  `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r),o=s.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let a=t.at(-1);a?.type==="text"?(a.raw+=(a.raw.endsWith(`
283
283
  `)?"":`
284
284
  `)+r.raw,a.text+=`
285
- `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let o=e,i=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(o))!==null;)l.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(o))!==null;)o=o.slice(0,i.index)+"++"+o.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(o))!==null;)r=i[2]?i[2].length:0,o=o.slice(0,i.index+r)+"["+"a".repeat(i[0].length-r-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);o=this.options.hooks?.emStrongMask?.call({lexer:this},o)??o;let s=!1,a="",d=1/0;for(;e;){if(e.length<d)d=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}s||(a=""),s=!1;let l;if(this.options.extensions?.inline?.some(u=>(l=u.call({lexer:this},e,t))?(e=e.substring(l.raw.length),t.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let u=t.at(-1);l.type==="text"&&u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):t.push(l);continue}if(l=this.tokenizer.emStrong(e,o,a)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.del(e,o,a)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),t.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),t.push(l);continue}let c=e;if(this.options.extensions?.startInline){let u=1/0,w=e.slice(1),S;this.options.extensions.startInline.forEach(k=>{S=k.call({lexer:this},w),typeof S=="number"&&S>=0&&(u=Math.min(u,S))}),u<1/0&&u>=0&&(c=e.substring(0,u+1))}if(l=this.tokenizer.inlineText(c)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(a=l.raw.slice(-1)),s=!0;let u=t.at(-1);u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):t.push(l);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw new Error(t)}},Ba=class{options;parser;constructor(n){this.options=n||mo}space(n){return""}code({text:n,lang:e,escaped:t}){let o=(e||"").match(bt.notSpaceStart)?.[0],i=n.replace(bt.endingNewline,"")+`
286
- `;return o?'<pre><code class="language-'+ln(o)+'">'+(t?i:ln(i,!0))+`</code></pre>
287
- `:"<pre><code>"+(t?i:ln(i,!0))+`</code></pre>
285
+ `+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=a.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let o=e,i=null;if(this.tokens.links){let l=Object.keys(this.tokens.links);if(l.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(o))!==null;)l.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(o=o.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+o.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(o))!==null;)o=o.slice(0,i.index)+"++"+o.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(i=this.tokenizer.rules.inline.blockSkip.exec(o))!==null;)r=i[2]?i[2].length:0,o=o.slice(0,i.index+r)+"["+"a".repeat(i[0].length-r-2)+"]"+o.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);o=this.options.hooks?.emStrongMask?.call({lexer:this},o)??o;let s=!1,a="",d=1/0;for(;e;){if(e.length<d)d=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}s||(a=""),s=!1;let l;if(this.options.extensions?.inline?.some(u=>(l=u.call({lexer:this},e,t))?(e=e.substring(l.raw.length),t.push(l),!0):!1))continue;if(l=this.tokenizer.escape(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.tag(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.link(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(l.raw.length);let u=t.at(-1);l.type==="text"&&u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):t.push(l);continue}if(l=this.tokenizer.emStrong(e,o,a)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.codespan(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.br(e)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.del(e,o,a)){e=e.substring(l.raw.length),t.push(l);continue}if(l=this.tokenizer.autolink(e)){e=e.substring(l.raw.length),t.push(l);continue}if(!this.state.inLink&&(l=this.tokenizer.url(e))){e=e.substring(l.raw.length),t.push(l);continue}let c=e;if(this.options.extensions?.startInline){let u=1/0,w=e.slice(1),S;this.options.extensions.startInline.forEach(k=>{S=k.call({lexer:this},w),typeof S=="number"&&S>=0&&(u=Math.min(u,S))}),u<1/0&&u>=0&&(c=e.substring(0,u+1))}if(l=this.tokenizer.inlineText(c)){e=e.substring(l.raw.length),l.raw.slice(-1)!=="_"&&(a=l.raw.slice(-1)),s=!0;let u=t.at(-1);u?.type==="text"?(u.raw+=l.raw,u.text+=l.text):t.push(l);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw new Error(t)}},Ua=class{options;parser;constructor(n){this.options=n||vo}space(n){return""}code({text:n,lang:e,escaped:t}){let o=(e||"").match(bt.notSpaceStart)?.[0],i=n.replace(bt.endingNewline,"")+`
286
+ `;return o?'<pre><code class="language-'+un(o)+'">'+(t?i:un(i,!0))+`</code></pre>
287
+ `:"<pre><code>"+(t?i:un(i,!0))+`</code></pre>
288
288
  `}blockquote({tokens:n}){return`<blockquote>
289
289
  ${this.parser.parse(n)}</blockquote>
290
290
  `}html({text:n}){return n}def(n){return""}heading({tokens:n,depth:e}){return`<h${e}>${this.parser.parseInline(n)}</h${e}>
@@ -300,12 +300,12 @@ ${this.parser.parse(n)}</blockquote>
300
300
  `}tablerow({text:n}){return`<tr>
301
301
  ${n}</tr>
302
302
  `}tablecell(n){let e=this.parser.parseInline(n.tokens),t=n.header?"th":"td";return(n.align?`<${t} align="${n.align}">`:`<${t}>`)+e+`</${t}>
303
- `}strong({tokens:n}){return`<strong>${this.parser.parseInline(n)}</strong>`}em({tokens:n}){return`<em>${this.parser.parseInline(n)}</em>`}codespan({text:n}){return`<code>${ln(n,!0)}</code>`}br(n){return"<br>"}del({tokens:n}){return`<del>${this.parser.parseInline(n)}</del>`}link({href:n,title:e,tokens:t}){let o=this.parser.parseInline(t),i=dy(n);if(i===null)return o;n=i;let r='<a href="'+n+'"';return e&&(r+=' title="'+ln(e)+'"'),r+=">"+o+"</a>",r}image({href:n,title:e,text:t,tokens:o}){o&&(t=this.parser.parseInline(o,this.parser.textRenderer));let i=dy(n);if(i===null)return ln(t);n=i;let r=`<img src="${n}" alt="${ln(t)}"`;return e&&(r+=` title="${ln(e)}"`),r+=">",r}text(n){return"tokens"in n&&n.tokens?this.parser.parseInline(n.tokens):"escaped"in n&&n.escaped?n.text:ln(n.text)}},ch=class{strong({text:n}){return n}em({text:n}){return n}codespan({text:n}){return n}del({text:n}){return n}html({text:n}){return n}text({text:n}){return n}link({text:n}){return""+n}image({text:n}){return""+n}br(){return""}checkbox({raw:n}){return n}},Zt=class th{options;renderer;textRenderer;constructor(e){this.options=e||mo,this.options.renderer=this.options.renderer||new Ba,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ch}static parse(e,t){return new th(t).parse(e)}static parseInline(e,t){return new th(t).parseInline(e)}parse(e){this.renderer.parser=this;let t="";for(let o=0;o<e.length;o++){let i=e[o];if(this.options.extensions?.renderers?.[i.type]){let s=i,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(s.type)){t+=a||"";continue}}let r=i;switch(r.type){case"space":{t+=this.renderer.space(r);break}case"hr":{t+=this.renderer.hr(r);break}case"heading":{t+=this.renderer.heading(r);break}case"code":{t+=this.renderer.code(r);break}case"table":{t+=this.renderer.table(r);break}case"blockquote":{t+=this.renderer.blockquote(r);break}case"list":{t+=this.renderer.list(r);break}case"checkbox":{t+=this.renderer.checkbox(r);break}case"html":{t+=this.renderer.html(r);break}case"def":{t+=this.renderer.def(r);break}case"paragraph":{t+=this.renderer.paragraph(r);break}case"text":{t+=this.renderer.text(r);break}default:{let s='Token with "'+r.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let o="";for(let i=0;i<e.length;i++){let r=e[i];if(this.options.extensions?.renderers?.[r.type]){let a=this.options.extensions.renderers[r.type].call({parser:this},r);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(r.type)){o+=a||"";continue}}let s=r;switch(s.type){case"escape":{o+=t.text(s);break}case"html":{o+=t.html(s);break}case"link":{o+=t.link(s);break}case"image":{o+=t.image(s);break}case"checkbox":{o+=t.checkbox(s);break}case"strong":{o+=t.strong(s);break}case"em":{o+=t.em(s);break}case"codespan":{o+=t.codespan(s);break}case"br":{o+=t.br(s);break}case"del":{o+=t.del(s);break}case"text":{o+=t.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return o}},Er=class{options;block;constructor(n){this.options=n||mo}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(n){return n}postprocess(n){return n}processAllTokens(n){return n}emStrongMask(n){return n}provideLexer(n=this.block){return n?Yt.lex:Yt.lexInline}provideParser(n=this.block){return n?Zt.parse:Zt.parseInline}},wI=class{defaults=nh();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Zt;Renderer=Ba;TextRenderer=ch;Lexer=Yt;Tokenizer=za;Hooks=Er;constructor(...n){this.use(...n)}walkTokens(n,e){let t=[];for(let o of n)switch(t=t.concat(e.call(this,o)),o.type){case"table":{let i=o;for(let r of i.header)t=t.concat(this.walkTokens(r.tokens,e));for(let r of i.rows)for(let s of r)t=t.concat(this.walkTokens(s.tokens,e));break}case"list":{let i=o;t=t.concat(this.walkTokens(i.items,e));break}default:{let i=o;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(r=>{let s=i[r].flat(1/0);t=t.concat(this.walkTokens(s,e))}):i.tokens&&(t=t.concat(this.walkTokens(i.tokens,e)))}}return t}use(...n){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(t=>{let o=g({},t);if(o.async=this.defaults.async||o.async||!1,t.extensions&&(t.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let r=e.renderers[i.name];r?e.renderers[i.name]=function(...s){let a=i.renderer.apply(this,s);return a===!1&&(a=r.apply(this,s)),a}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=e[i.level];r?r.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),o.extensions=e),t.renderer){let i=this.defaults.renderer||new Ba(this.defaults);for(let r in t.renderer){if(!(r in i))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let s=r,a=t.renderer[s],d=i[s];i[s]=(...l)=>{let c=a.apply(i,l);return c===!1&&(c=d.apply(i,l)),c||""}}o.renderer=i}if(t.tokenizer){let i=this.defaults.tokenizer||new za(this.defaults);for(let r in t.tokenizer){if(!(r in i))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let s=r,a=t.tokenizer[s],d=i[s];i[s]=(...l)=>{let c=a.apply(i,l);return c===!1&&(c=d.apply(i,l)),c}}o.tokenizer=i}if(t.hooks){let i=this.defaults.hooks||new Er;for(let r in t.hooks){if(!(r in i))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let s=r,a=t.hooks[s],d=i[s];Er.passThroughHooks.has(r)?i[s]=l=>{if(this.defaults.async&&Er.passThroughHooksRespectAsync.has(r))return D(this,null,function*(){let u=yield a.call(i,l);return d.call(i,u)});let c=a.call(i,l);return d.call(i,c)}:i[s]=(...l)=>{if(this.defaults.async)return D(this,null,function*(){let u=yield a.apply(i,l);return u===!1&&(u=yield d.apply(i,l)),u});let c=a.apply(i,l);return c===!1&&(c=d.apply(i,l)),c}}o.hooks=i}if(t.walkTokens){let i=this.defaults.walkTokens,r=t.walkTokens;o.walkTokens=function(s){let a=[];return a.push(r.call(this,s)),i&&(a=a.concat(i.call(this,s))),a}}this.defaults=g(g({},this.defaults),o)}),this}setOptions(n){return this.defaults=g(g({},this.defaults),n),this}lexer(n,e){return Yt.lex(n,e??this.defaults)}parser(n,e){return Zt.parse(n,e??this.defaults)}parseMarkdown(n){return(e,t)=>{let o=g({},t),i=g(g({},this.defaults),o),r=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&o.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=n),i.async)return D(this,null,function*(){let s=i.hooks?yield i.hooks.preprocess(e):e,a=yield(i.hooks?yield i.hooks.provideLexer(n):n?Yt.lex:Yt.lexInline)(s,i),d=i.hooks?yield i.hooks.processAllTokens(a):a;i.walkTokens&&(yield Promise.all(this.walkTokens(d,i.walkTokens)));let l=yield(i.hooks?yield i.hooks.provideParser(n):n?Zt.parse:Zt.parseInline)(d,i);return i.hooks?yield i.hooks.postprocess(l):l}).catch(r);try{i.hooks&&(e=i.hooks.preprocess(e));let s=(i.hooks?i.hooks.provideLexer(n):n?Yt.lex:Yt.lexInline)(e,i);i.hooks&&(s=i.hooks.processAllTokens(s)),i.walkTokens&&this.walkTokens(s,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(n):n?Zt.parse:Zt.parseInline)(s,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(s){return r(s)}}}onError(n,e){return t=>{if(t.message+=`
304
- Please report this to https://github.com/markedjs/marked.`,n){let o="<p>An error occurred:</p><pre>"+ln(t.message+"",!0)+"</pre>";return e?Promise.resolve(o):o}if(e)return Promise.reject(t);throw t}}},fo=new wI;function _e(n,e){return fo.parse(n,e)}_e.options=_e.setOptions=function(n){return fo.setOptions(n),_e.defaults=fo.defaults,py(_e.defaults),_e};_e.getDefaults=nh;_e.defaults=mo;_e.use=function(...n){return fo.use(...n),_e.defaults=fo.defaults,py(_e.defaults),_e};_e.walkTokens=function(n,e){return fo.walkTokens(n,e)};_e.parseInline=fo.parseInline;_e.Parser=Zt;_e.parser=Zt.parse;_e.Renderer=Ba;_e.TextRenderer=ch;_e.Lexer=Yt;_e.lexer=Yt.lex;_e.Tokenizer=za;_e.Hooks=Er;_e.parse=_e;var m5=_e.options,y5=_e.setOptions,v5=_e.use,b5=_e.walkTokens,w5=_e.parseInline;var C5=Zt.parse,_5=Yt.lex;var gi=n=>{if(n.trim().length===0)return"";let e=_e.parse(n,{async:!1});return typeof e=="string"?iy.sanitize(e):""};function CI(n,e){if(n&1){let t=j();U(0,"input",9,0),Ee("change",function(){M(t);let i=Wt(1),r=m();return T(r.valueChange.emit(i.value))})("keyup",function(){M(t);let i=Wt(1),r=m();return T(r.valueChange.emit(i.value))}),B()}if(n&2){let t=m();Ce("value",t.textValue())("disabled",t.disabled())}}function _I(n,e){if(n&1){let t=j();U(0,"input",10,0),Ee("change",function(){M(t);let i=Wt(1),r=m();return T(r.onNumberChange(i.value))})("keyup",function(){M(t);let i=Wt(1),r=m();return T(r.onNumberChange(i.value))}),B()}if(n&2){let t=m();Ce("value",t.textValue())("min",t.numberConfig()?.min??null)("max",t.numberConfig()?.max??null)("step",t.numberConfig()?.step??"any")("disabled",t.disabled())}}function xI(n,e){if(n&1){let t=j();U(0,"textarea",11,0),Ee("change",function(){M(t);let i=Wt(1),r=m();return T(r.valueChange.emit(i.value))})("keyup",function(){M(t);let i=Wt(1),r=m();return T(r.valueChange.emit(i.value))}),B()}if(n&2){let t=m();Ce("value",t.textValue())("disabled",t.disabled())}}function SI(n,e){if(n&1){let t=j();U(0,"label",4)(1,"input",12,0),Ee("change",function(){M(t);let i=Wt(2),r=m();return T(r.valueChange.emit(i.checked))}),B(),C(3),B()}if(n&2){let t=m();p(),Ce("checked",t.booleanValue())("disabled",t.disabled()),p(2),H(" ",t.booleanValue()?"true":"false"," ")}}function EI(n,e){if(n&1&&(U(0,"option",14),C(1),B()),n&2){let t=e.$implicit,o=e.$index,i=m(2);Ce("value",o)("selected",i.sameValue(t.value,i.value()))("title",t.description??""),p(),H(" ",t.title," ")}}function PI(n,e){n&1&&(U(0,"p",15),C(1),B()),n&2&&(p(),H(" ",e," "))}function II(n,e){if(n&1){let t=j();U(0,"div",5)(1,"select",13,0),Ee("change",function(){M(t);let i=Wt(2),r=m();return T(r.onSelectChange(i.value))}),Q(3,EI,2,4,"option",14,en),B(),E(5,PI,2,1,"p",15),B()}if(n&2){let t,o=m();p(),Ce("disabled",o.disabled()),p(2),J(o.options()),p(2),P((t=o.selectedDescription())?5:-1,t)}}function DI(n,e){if(n&1){let t=j();U(0,"label",4)(1,"input",16),Ee("change",function(){let i=M(t).$implicit,r=m(2);return T(r.valueChange.emit(i.value))}),B(),C(2),B()}if(n&2){let t=e.$implicit,o=m(2);p(),Ce("name",o.radioGroupName)("checked",o.sameValue(t.value,o.value()))("disabled",o.disabled()),p(),H(" ",t.title," ")}}function MI(n,e){if(n&1&&(U(0,"div",5),Q(1,DI,3,4,"label",4,en),B()),n&2){let t=m();p(),J(t.options())}}function TI(n,e){n&1&&(U(0,"span",15),C(1),B()),n&2&&(p(),re(e))}function kI(n,e){if(n&1){let t=j();U(0,"label",17)(1,"input",18),Ee("change",function(){let i=M(t).$implicit,r=m(2);return T(r.onMultiselectToggle(i.value))}),B(),U(2,"span",19)(3,"span"),C(4),B(),E(5,TI,2,1,"span",15),B()()}if(n&2){let t,o=e.$implicit,i=m(2);p(),Ce("checked",i.isSelected(o.value))("disabled",i.disabled()),p(3),re(o.title),p(),P((t=o.description)?5:-1,t)}}function RI(n,e){if(n&1&&(U(0,"div",5),Q(1,kI,6,4,"label",17,en),B()),n&2){let t=m();p(),J(t.options())}}function NI(n,e){if(n&1&&(U(0,"pre",6)(1,"code"),C(2),B()()),n&2){let t=m();p(2),re(t.previewText())}}function OI(n,e){if(n&1&&pt(0,"div",7),n&2){let t=m();Ce("innerHTML",t.previewHtml(),kn)}}function AI(n,e){if(n&1&&(U(0,"div",8),C(1),B()),n&2){let t=m();p(),H(" ",t.previewText()," ")}}function LI(n){if(n==null)return"";if(typeof n=="object")try{return JSON.stringify(n,null,2)}catch(e){return String(n)}return String(n)}function FI(n){return n==null?"":typeof n=="string"?n:String(n)}function zI(n){return typeof n=="string"?n:n.type}var BI=0,$I=(n,e)=>n.find(o=>fi(o.value,e))?.description,HI=(n,e)=>{let t=Array.isArray(e)?e.filter(o=>o!=null&&o!==""&&!n.some(i=>fi(i.value,o))):e!=null&&e!==""&&!n.some(o=>fi(o.value,e))?[e]:[];return t.length===0?n:[...t.map(o=>({value:o,title:`${String(o)} (missing)`,description:"No longer available \u2014 choose another option to clear this"})),...n]};function fi(n,e){if(n===e)return!0;try{return JSON.stringify(n)===JSON.stringify(e)}catch(t){return!1}}var Gn=class n{constructor(){this.config=I.required();this.value=I(void 0);this.previewValue=I(void 0);this.disabled=I(!1);this.fill=I(!1);this.valueChange=mn();this.sameValue=fi;this.kind=b(()=>zI(this.config()));this.options=b(()=>{let e=this.config(),t=typeof e=="string"||!("options"in e)?[]:e.options;return HI(t,this.value())});this.numberConfig=b(()=>{let e=this.config();return typeof e=="string"||e.type!=="number"?void 0:e});this.multilineMinHeightPx=b(()=>mr(this.config())?.minHeightPx);this.textValue=b(()=>FI(this.value()));this.booleanValue=b(()=>this.value()===!0);this.previewText=b(()=>LI(this.previewValue()));this.previewHtml=b(()=>gi(this.previewText()));this.selectedDescription=b(()=>$I(this.options(),this.value()));this.radioGroupName=`lf-inline-radio-${BI+=1}`}onNumberChange(e){let t=Number(e);e.trim().length>0&&!Number.isNaN(t)&&this.valueChange.emit(t)}onSelectChange(e){let t=this.options()[Number(e)];t!==void 0&&this.valueChange.emit(t.value)}isSelected(e){let t=this.value();return Array.isArray(t)?t.some(o=>fi(o,e)):!1}onMultiselectToggle(e){let t=this.value(),o=Array.isArray(t)?t:[],i=this.isSelected(e)?o.filter(r=>!fi(r,e)):[...o,e];this.valueChange.emit(i)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-inline-field"]],hostVars:4,hostBindings:function(t,o){t&2&&(Ue("--lf-multiline-min",o.multilineMinHeightPx(),"px"),q("lf-inline-field--fill",o.fill()))},inputs:{config:[1,"config"],value:[1,"value"],previewValue:[1,"previewValue"],disabled:[1,"disabled"],fill:[1,"fill"]},outputs:{valueChange:"valueChange"},decls:10,vars:1,consts:[["control",""],["type","text",1,"lf-inline-control",3,"value","disabled"],["type","number",1,"lf-inline-control","lf-inline-control--number",3,"value","min","max","step","disabled"],["rows","2","data-no-drag","true","data-no-pan","true",1,"lf-inline-control","lf-inline-multiline","lf-scroll",3,"value","disabled"],[1,"flex","items-center","gap-1.5","text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"flex","flex-col","gap-0.5"],[1,"lf-inline-preview","lf-inline-preview--code","lf-scroll"],[1,"lf-inline-preview","lf-scroll","prose","prose-xs","max-w-none","dark:prose-invert",3,"innerHTML"],[1,"lf-inline-preview","lf-scroll"],["type","text",1,"lf-inline-control",3,"change","keyup","value","disabled"],["type","number",1,"lf-inline-control","lf-inline-control--number",3,"change","keyup","value","min","max","step","disabled"],["rows","2","data-no-drag","true","data-no-pan","true",1,"lf-inline-control","lf-inline-multiline","lf-scroll",3,"change","keyup","value","disabled"],["type","checkbox",3,"change","checked","disabled"],[1,"lf-inline-control",3,"change","disabled"],[3,"value","selected","title"],[1,"lf-inline-select-caption"],["type","radio",3,"change","name","checked","disabled"],[1,"flex","items-start","gap-1.5","text-[10px]","text-zinc-600","dark:text-zinc-300"],["type","checkbox",1,"mt-0.5",3,"change","checked","disabled"],[1,"flex","min-w-0","flex-col","gap-0.5"]],template:function(t,o){if(t&1&&E(0,CI,2,2,"input",1)(1,_I,2,5,"input",2)(2,xI,2,2,"textarea",3)(3,SI,4,3,"label",4)(4,II,6,2,"div",5)(5,MI,3,0,"div",5)(6,RI,3,0,"div",5)(7,NI,3,1,"pre",6)(8,OI,1,1,"div",7)(9,AI,2,1,"div",8),t&2){let i;P((i=o.kind())==="text"?0:i==="number"?1:i==="text-multiline"?2:i==="boolean"?3:i==="select"?4:i==="radio"?5:i==="multiselect"?6:i==="preview-code"?7:i==="preview-markdown"?8:9)}},styles:['.lf-inline-control[_ngcontent-%COMP%]{width:100%;border-radius:.25rem;border:1px solid rgb(228 228 231);background:#fafafa;padding:.125rem .5rem;font-size:10px;color:#3f3f46}[data-theme="dark"][_nghost-%COMP%] .lf-inline-control[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-inline-control[_ngcontent-%COMP%]{border-color:#3f3f46;background:#09090b;color:#e4e4e7}.lf-inline-control--number[_ngcontent-%COMP%]{padding-right:.125rem;-moz-appearance:textfield}.lf-inline-control--number[_ngcontent-%COMP%]::-webkit-inner-spin-button, .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-outer-spin-button{margin:0;height:1.25rem;opacity:1;cursor:pointer;filter:grayscale(1) brightness(.85)}[data-theme="dark"][_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-inner-spin-button, [data-theme="dark"] [_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-inner-spin-button, [data-theme="dark"][_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-outer-spin-button, [data-theme="dark"] [_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-outer-spin-button{filter:grayscale(1) invert(1) brightness(.75)}.lf-inline-control--number[_ngcontent-%COMP%]:hover, .lf-inline-control--number[_ngcontent-%COMP%]:focus{-moz-appearance:number-input}.lf-inline-control--number[_ngcontent-%COMP%]::-moz-number-spin-box{padding-inline:.125rem}.lf-inline-control--number[_ngcontent-%COMP%]::-moz-number-spin-up, .lf-inline-control--number[_ngcontent-%COMP%]::-moz-number-spin-down{border:none;background:transparent;opacity:.55}.lf-inline-control--number[_ngcontent-%COMP%]:hover::-moz-number-spin-up, .lf-inline-control--number[_ngcontent-%COMP%]:hover::-moz-number-spin-down, .lf-inline-control--number[_ngcontent-%COMP%]:focus::-moz-number-spin-up, .lf-inline-control--number[_ngcontent-%COMP%]:focus::-moz-number-spin-down{opacity:.85}.lf-inline-field--fill[_nghost-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;height:100%}.lf-inline-multiline[_ngcontent-%COMP%]{resize:none;min-height:var(--lf-multiline-min, 100px);max-height:12rem;overflow-y:auto}lf-inspector-panel[_nghost-%COMP%] .lf-inline-multiline[_ngcontent-%COMP%], lf-inspector-panel [_nghost-%COMP%] .lf-inline-multiline[_ngcontent-%COMP%]{resize:vertical;max-height:none}.lf-inline-field--fill[_nghost-%COMP%] .lf-inline-multiline[_ngcontent-%COMP%]{flex:1 1 auto;height:100%;max-height:none;min-height:var(--lf-multiline-min, 100px)}.lf-inline-preview[_ngcontent-%COMP%]{width:100%;min-height:1rem;max-height:10rem;overflow-x:hidden;overflow-y:auto;border-radius:.25rem;padding:.125rem .5rem;font-size:10px;color:#64748b;white-space:pre-wrap;word-break:break-word;box-sizing:border-box}.lf-inline-preview--code[_ngcontent-%COMP%]{font-family:monospace;background:#fafafa}[data-theme="dark"][_nghost-%COMP%] .lf-inline-preview--code[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-inline-preview--code[_ngcontent-%COMP%]{background:#09090b}.lf-inline-select-caption[_ngcontent-%COMP%]{margin:0;font-size:10px;line-height:1.25;color:#64748b}[data-theme="dark"][_nghost-%COMP%] .lf-inline-select-caption[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-inline-select-caption[_ngcontent-%COMP%]{color:#71717a}']})}};function UI(n,e){if(n&1&&(v(0,"div",7),z(1,"ng-diagram-port",8),y()),n&2){let t=m();q("lf-port-anchor--endpoint",t.endpointHighlighted())("lf-port-anchor--node-selected",t.nodeSelected())("lf-port-anchor--pulse",t.pulse()),p(),A("id",t.portId())}}function VI(n,e){if(n&1&&(v(0,"div",9),z(1,"ng-diagram-port",10),y()),n&2){let t=m();q("lf-port-anchor--endpoint",t.endpointHighlighted())("lf-port-anchor--node-selected",t.nodeSelected())("lf-port-anchor--pulse",t.pulse()),p(),A("id",t.portId())}}function jI(n,e){if(n&1){let t=j();v(0,"div",6)(1,"lf-inline-field",11),O("valueChange",function(i){M(t);let r=m();return T(r.valueChange.emit(i))}),y()()}if(n&2){let t=m();p(),A("config",t.inline())("value",t.value())("previewValue",t.previewValue())("disabled",t.disabled())("fill",t.growFlex()>0)}}var Ua=class n{constructor(){this.execution=h(Te);this.side=I.required();this.nodeId=I.required();this.portId=I.required();this.runtimePortId=I.required();this.label=I.required();this.wireType=I.required();this.inline=I(null);this.value=I(void 0);this.previewValue=I(void 0);this.disabled=I(!1);this.nodeSelected=I(!1);this.endpointHighlighted=I(!1);this.valueChange=mn();this.pulse=se(Ne([Xe(this.nodeId),Xe(this.runtimePortId),Xe(this.side)]).pipe(ve(([e,t,o])=>{let i=o==="out"?this.execution.getEventsForPort(e,t):this.execution.getInputEventsForPort(e,t);return Sn(i)})),{initialValue:!1});this.multilineLayout=b(()=>{let e=this.inline();return e===null?null:mr(e)});this.growFlex=b(()=>this.multilineLayout()?.flex??0);this.multilineMinHeightPx=b(()=>this.multilineLayout()?.minHeightPx)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node-port-row"]],hostAttrs:[1,"lf-port-row-host"],hostVars:6,hostBindings:function(t,o){t&2&&(Ue("--lf-inline-flex",o.growFlex())("--lf-multiline-min",o.multilineMinHeightPx(),"px"),q("lf-port-row-host--grow",o.growFlex()>0))},inputs:{side:[1,"side"],nodeId:[1,"nodeId"],portId:[1,"portId"],runtimePortId:[1,"runtimePortId"],label:[1,"label"],wireType:[1,"wireType"],inline:[1,"inline"],value:[1,"value"],previewValue:[1,"previewValue"],disabled:[1,"disabled"],nodeSelected:[1,"nodeSelected"],endpointHighlighted:[1,"endpointHighlighted"]},outputs:{valueChange:"valueChange"},decls:10,vars:11,consts:[[1,"lf-port-row-wrapper"],[1,"lf-port-row"],[1,"lf-port-anchor","lf-port-anchor--in",3,"lf-port-anchor--endpoint","lf-port-anchor--node-selected","lf-port-anchor--pulse"],[1,"lf-port-row__content"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"lf-port-anchor","lf-port-anchor--out",3,"lf-port-anchor--endpoint","lf-port-anchor--node-selected","lf-port-anchor--pulse"],[1,"lf-port-row__inline"],[1,"lf-port-anchor","lf-port-anchor--in"],["type","target","side","left","originPoint","centerLeft",3,"id"],[1,"lf-port-anchor","lf-port-anchor--out"],["type","source","side","right",3,"id"],[3,"valueChange","config","value","previewValue","disabled","fill"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"div",1),E(2,UI,2,7,"div",2),v(3,"div",3)(4,"span"),C(5),y(),v(6,"span",4),C(7),y()(),E(8,VI,2,7,"div",5),y(),E(9,jI,2,5,"div",6),y()),t&2&&(q("lf-port-row-wrapper--node-selected",o.nodeSelected()),p(),q("lf-port-row--in",o.side()==="in")("lf-port-row--out",o.side()==="out"),p(),P(o.side()==="in"?2:-1),p(3),re(o.label()),p(2),H(" \xB7 ",o.wireType()," "),p(),P(o.side()==="out"?8:-1),p(),P(o.side()==="in"&&o.inline()!==null?9:-1))},dependencies:[so,Gn],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};var WI=["content"],_y=(n,e)=>e.portId,GI=(n,e)=>e.handle;function qI(n,e){if(n&1){let t=j();v(0,"input",11,1),O("input",function(){M(t);let i=Wt(1),r=m();return T(r.labelDraft.set(i.value))})("keydown",function(i){M(t);let r=m();return T(r.onLabelKeydown(i))})("blur",function(){M(t);let i=m();return T(i.onLabelBlur())}),y()}if(n&2){let t=m();A("value",t.labelDraft())}}function YI(n,e){if(n&1){let t=j();v(0,"span",12),O("dblclick",function(){M(t);let i=m();return T(i.startLabelEdit())}),C(1),y()}if(n&2){let t=m();p(),H(" ",t.label()," ")}}function ZI(n,e){if(n&1){let t=j();v(0,"lf-node-port-row",13),O("valueChange",function(i){let r=M(t).$implicit,s=m();return T(s.onPortInlineChange(r.basePortId,i))}),y()}if(n&2){let t=e.$implicit,o=m();A("nodeId",o.node().id)("portId",t.portId)("runtimePortId",t.basePortId)("label",t.label)("wireType",t.wireType)("inline",t.inline)("value",t.value)("disabled",t.connected)("previewValue",o.previewValueFor(t.basePortId))("nodeSelected",o.node().selected??!1)("endpointHighlighted",o.isEndpointHighlighted(t.portId))}}function KI(n,e){if(n&1&&z(0,"lf-node-bypass-port-row",7),n&2){let t=e.$implicit,o=m();A("nodeId",o.node().id)("runtimePortId",t.handle)("inputPortId",t.inputPortId)("outputPortId",t.outputPortId)("label",t.label)("wireType",t.wireType)("nodeSelected",o.node().selected??!1)("inputEndpointHighlighted",o.isEndpointHighlighted(t.inputPortId))("outputEndpointHighlighted",o.isEndpointHighlighted(t.outputPortId))}}function XI(n,e){if(n&1&&z(0,"lf-node-port-row",8),n&2){let t=e.$implicit,o=m();A("nodeId",o.node().id)("portId",t.portId)("runtimePortId",o.fromOutputPortId(t.portId))("label",t.label)("wireType",t.wireType)("nodeSelected",o.node().selected??!1)("endpointHighlighted",o.isEndpointHighlighted(t.portId))}}var xy=1,uh=160,Sy=72,QI=24,JI=n=>{let e=n.ui.label?.trim();return e!==void 0&&e.length>0?e:n.type},Va=class n{constructor(){this.bridge=h(de);this.diagramModel=h(qt);this.nodeService=h(ao);this.selection=h(lo);this.viewport=h(sn);this.previewValues=h(di);this.contentMinSize=h(ni);this.injector=h(jt);this.destroyRef=h(qe);this.hover=h(an);this.execution=h(Te);this.node=I.required();this.content=st("content");this.status=b(()=>this.execution.nodeStatus(this.node().id));this.pulse=se(Xe(this.node).pipe(N(e=>e.id),ve(e=>Sn(this.execution.getEventsForNode(e)))),{initialValue:!1});this.editingLabel=$(!1);this.labelDraft=$("");this.lastSyncedRowCount=void 0;this.heightSyncScheduled=!1;this.minSizePublishScheduled=!1;this.fromOutputPortId=po;this.label=b(()=>JI(this.node().data));this.connectedEdges=b(()=>{let e=this.node().id;return this.diagramModel.edges().filter(t=>t.source===e||t.target===e)});this.ports=b(()=>Na(this.node().data.portsConfig,this.node().id,this.connectedEdges(),this.node().data.inputs));this.inputPortRows=b(()=>this.ports().inputPorts);this.outputPortRows=b(()=>this.ports().outputPorts);this.bypassPortRows=b(()=>this.ports().bypassPorts);this.portRowCount=b(()=>this.inputPortRows().length+this.bypassPortRows().length+this.outputPortRows().length);this.selectedEndpointPortIds=b(()=>{let e=this.node().id,t=new Set;for(let o of this.selection.selection().edges)o.source===e&&o.sourcePort!==void 0&&t.add(o.sourcePort),o.target===e&&o.targetPort!==void 0&&t.add(o.targetPort);return t});this.destroyRef.onDestroy(()=>{this.seResizeCleanup?.(),this.contentMinSize.clear(this.node().id)}),fe(()=>{let e=this.node().data.ui.position.width,t=this.portRowCount();Ie(()=>{if(this.scheduleMinSizePublish(),e===void 0){this.lastSyncedRowCount=void 0;return}if(this.lastSyncedRowCount===void 0){this.lastSyncedRowCount=t;return}this.lastSyncedRowCount!==t&&(this.lastSyncedRowCount=t,this.scheduleHeightSync())})})}onDocumentKeydown(e){e.key==="F2"&&(this.node().selected??!1)&&!this.editingLabel()&&(e.preventDefault(),this.startLabelEdit())}isEndpointHighlighted(e){return this.selectedEndpointPortIds().has(e)}previewValueFor(e){return this.previewValues.valueFor(this.node().id,e)}onPortInlineChange(e,t){this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,inputs:_(g({},this.node().data.inputs),{[e]:t})})}startLabelEdit(){this.labelDraft.set(this.node().data.ui.label??""),this.editingLabel.set(!0),Rn(()=>{let e=document.querySelector(`[data-node-id="${this.node().id}"] .lf-node-label-input`);e instanceof HTMLInputElement&&(e.focus(),e.select())},{injector:this.injector})}onLabelKeydown(e){if(e.key==="Enter"){e.preventDefault(),this.commitLabelEdit();return}e.key==="Escape"&&(e.preventDefault(),this.cancelLabelEdit())}onLabelBlur(){this.editingLabel()&&this.cancelLabelEdit()}cancelLabelEdit(){this.editingLabel.set(!1)}commitLabelEdit(){if(!this.editingLabel())return;let e=this.labelDraft().trim(),t=this.node().data.ui.label?.trim()??"";this.editingLabel.set(!1),e!==t&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,ui:{label:e}})}onSeHandlePointerDown(e){if(e.button!==0)return;e.preventDefault(),e.stopPropagation();let t=this.node(),o=t.size??this.contentMinSize.minFor(t.id),i=this.contentMinSize.minFor(t.id),r=this.viewport.clientToFlowPosition({x:e.clientX,y:e.clientY}),s=e.currentTarget;if(!(s instanceof HTMLElement))return;s.setPointerCapture(e.pointerId),this.seResizeCleanup?.();let a=l=>{let c=this.viewport.clientToFlowPosition({x:l.clientX,y:l.clientY}),u=Wp(o,r,c,i);this.nodeService.resizeNode(t.id,u,void 0,!0)},d=l=>{this.seResizeCleanup?.(),this.seResizeCleanup=void 0,s.hasPointerCapture(l.pointerId)&&s.releasePointerCapture(l.pointerId);let c=this.viewport.clientToFlowPosition({x:l.clientX,y:l.clientY}),u=Wp(o,r,c,i);this.nodeService.resizeNode(t.id,u,void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:t.id,ui:{width:u.width,height:u.height}})};document.addEventListener("pointermove",a),document.addEventListener("pointerup",d),document.addEventListener("pointercancel",d),this.seResizeCleanup=()=>{document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",d),document.removeEventListener("pointercancel",d)}}scheduleMinSizePublish(){this.minSizePublishScheduled||(this.minSizePublishScheduled=!0,Rn(()=>{requestAnimationFrame(()=>{this.minSizePublishScheduled=!1,this.publishContentMinSize()})},{injector:this.injector}))}publishContentMinSize(){let e=this.measureContentMinSize();this.contentMinSize.set(this.node().id,e),this.clampHeightToContentMin(e.height)}measureContentMinSize(){let e=this.content()?.nativeElement;return e===void 0?{width:uh,height:Sy}:{width:uh,height:B0(e,QI,Sy)}}clampHeightToContentMin(e){let t=this.node().data.ui.position.width;if(t===void 0)return;let o=this.node().size?.height;o===void 0||o+xy>=e||(this.nodeService.resizeNode(this.node().id,{width:t,height:e},void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,ui:{height:e}}))}scheduleHeightSync(){this.heightSyncScheduled||(this.heightSyncScheduled=!0,Rn(()=>{requestAnimationFrame(()=>{this.heightSyncScheduled=!1,this.syncHeightToContent()})},{injector:this.injector}))}syncHeightToContent(){let e=this.node().data.ui.position.width;if(e===void 0)return;let{height:t}=this.measureContentMinSize();this.contentMinSize.set(this.node().id,{width:uh,height:t});let o=this.node().size?.height;o!==void 0&&Math.abs(o-t)<xy||(this.nodeService.resizeNode(this.node().id,{width:e,height:t},void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,ui:{height:t}}))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node"]],viewQuery:function(t,o){t&1&&ht(o.content,WI,5),t&2&&gt()},hostAttrs:[1,"lf-diagram-node"],hostBindings:function(t,o){t&1&&O("keydown",function(r){return o.onDocumentKeydown(r)},kt)},inputs:{node:[1,"node"]},decls:14,vars:16,consts:[["content",""],["labelInput",""],[1,"lf-node-chrome","rounded-xl","border","border-zinc-300","bg-white","py-3","shadow-sm","dark:border-zinc-700","dark:bg-zinc-900",3,"mouseenter","mouseleave"],[1,"lf-node-content"],["data-no-drag","true","data-no-pan","true",1,"lf-node-title","lf-node-label-input","mx-1","text-xs","font-semibold",3,"value"],[1,"lf-node-title","truncate","px-1","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100"],["side","in",3,"nodeId","portId","runtimePortId","label","wireType","inline","value","disabled","previewValue","nodeSelected","endpointHighlighted"],[3,"nodeId","runtimePortId","inputPortId","outputPortId","label","wireType","nodeSelected","inputEndpointHighlighted","outputEndpointHighlighted"],["side","out",3,"nodeId","portId","runtimePortId","label","wireType","nodeSelected","endpointHighlighted"],["data-no-drag","true","data-no-pan","true",1,"lf-node-se-handle",3,"pointerdown"],["aria-hidden","true",1,"lf-node-se-handle__lines"],["data-no-drag","true","data-no-pan","true",1,"lf-node-title","lf-node-label-input","mx-1","text-xs","font-semibold",3,"input","keydown","blur","value"],[1,"lf-node-title","truncate","px-1","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100",3,"dblclick"],["side","in",3,"valueChange","nodeId","portId","runtimePortId","label","wireType","inline","value","disabled","previewValue","nodeSelected","endpointHighlighted"]],template:function(t,o){t&1&&(v(0,"ng-diagram-node-resize-adornment")(1,"div",2),O("mouseenter",function(){return o.hover.set(o.node().id)})("mouseleave",function(){return o.hover.clear()}),v(2,"div",3,0),E(4,qI,2,1,"input",4)(5,YI,2,1,"span",5),Q(6,ZI,1,11,"lf-node-port-row",6,_y),Q(8,KI,1,9,"lf-node-bypass-port-row",7,GI),Q(10,XI,1,7,"lf-node-port-row",8,_y),y(),v(12,"div",9),O("pointerdown",function(r){return o.onSeHandlePointerDown(r)}),z(13,"span",10),y()()()),t&2&&(p(),q("lf-node-chrome--selected",o.node().selected??!1)("lf-node-chrome--hovered",o.hover.isHovered(o.node().id))("lf-node-chrome--pending",o.status()==="pending")("lf-node-chrome--value",o.status()==="value")("lf-node-chrome--error",o.status()==="error")("lf-node-chrome--hitl",o.status()==="hitl")("lf-node-chrome--pulse",o.pulse()),K("data-node-id",o.node().id),p(3),P(o.editingLabel()?4:5),p(2),J(o.inputPortRows()),p(2),J(o.bypassPortRows()),p(2),J(o.outputPortRows()))},dependencies:[Ua,Oa,Jo],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};function eD(n,e){if(n&1){let t=j();v(0,"ng-diagram",3),O("diagramInit",function(){M(t);let i=m();return T(i.handlers.handleDiagramInit())})("nodeDragEnded",function(i){M(t);let r=m();return T(r.handlers.handleNodeDragEnded(i))})("nodeResizeEnded",function(i){M(t);let r=m();return T(r.handlers.handleNodeResizeEnded(i))})("edgeDrawEnded",function(i){M(t);let r=m();return T(r.handlers.handleEdgeDrawEnded(i))})("clipboardPasted",function(i){M(t);let r=m();return T(r.handlers.handleClipboardPasted(i))})("selectionRemoved",function(i){M(t);let r=m();return T(r.handlers.handleSelectionRemoved(i))})("selectionChanged",function(i){M(t);let r=m();return T(r.handlers.handleSelectionChanged(i))}),z(1,"ng-diagram-background",4)(2,"ng-diagram-minimap"),y()}if(n&2){let t=m();A("model",e)("config",t.config)("nodeTemplateMap",t.nodeTemplateMap)("edgeTemplateMap",t.edgeTemplateMap)}}function tD(n,e){n&1&&(v(0,"div",2),C(1," Waiting for workflow\u2026 "),y())}var nD=n=>{if(n.edge===void 0)return null;let e=n.sourcePort??n.edge.sourcePort,t=n.targetPort??n.edge.targetPort;if(e===void 0||t===void 0)return null;let o=Hn(po(e)),i=Hn(ei(t));return{fromNodeId:n.edge.source,fromPort:[o.basePortId,o.slotIndex],toNodeId:n.edge.target,toPort:[i.basePortId,i.slotIndex]}},oD=n=>{let e=n.nodes.map(i=>{let r=i.data,s=i.size?.width??r.ui.position.width,a=i.size?.height??r.ui.position.height;return g({clientId:i.id,type:r.type,position:g(g({x:i.position.x,y:i.position.y},s!==void 0?{width:s}:{}),a!==void 0?{height:a}:{}),params:r.params,inputs:r.inputs},r.ui.label!==void 0?{label:r.ui.label}:{})}),t=new Set(e.map(i=>i.clientId)),o=n.edges.flatMap(i=>{if(!t.has(i.source)||!t.has(i.target)||i.sourcePort===void 0||i.targetPort===void 0)return[];let r=Hn(po(i.sourcePort)),s=Hn(ei(i.targetPort));return[{fromClientId:i.source,fromPort:[r.basePortId,r.slotIndex],toClientId:i.target,toPort:[s.basePortId,s.slotIndex]}]});return{nodes:e,edges:o}},ja=class n{constructor(){this.graphInput=I.required();this.palette=I.required();this.destroyRef=h(qe);this.elementRef=h(rt);this.injector=h(jt);this.bridge=h(de);this.viewportService=h(sn);this.viewport$=Xe(this.viewportService.viewport);this.diagramModel=h(qt);this.diagramService=h(Mt);this.nodeService=h(ao);this.selectionService=h(lo);this.contentMinSize=h(ni);this.lastConfirmedSelectedNodeId=void 0;this.config={zoom:{max:2,zoomToFit:{padding:100}},snapping:{shouldSnapDragForNode:()=>!0,computeSnapForNodeDrag:()=>({width:20,height:20}),defaultDragSnap:{width:20,height:20}},resize:{getMinNodeSize:e=>this.contentMinSize.minFor(e.id)}};this.nodeTemplateMap=new Qo([["lf-node",Va]]);this.edgeTemplateMap=new Xo([["lf-edge",Ra]]);this.modelAdapter=b(()=>{let e=this.graphInput(),t=Ie(()=>this.palette());return i0({nodes:e.nodes.map(o=>Pa(o,At(t.nodes))),edges:e.edges.map(Rp),metadata:{viewport:e.viewport}},this.injector)});this.hostHandlers={handleDragOver:e=>{if(!this.isPaletteDrag(e))return;let t=e.dataTransfer;t!==null&&(e.preventDefault(),t.dropEffect="copy")},handleDrop:e=>{let t=e.dataTransfer?.getData(ur);if(t===void 0||t.length===0)return;e.preventDefault(),e.stopPropagation();let o=this.viewportService.clientToFlowPosition({x:e.clientX-12,y:e.clientY-12});this.bridge.raw["editor.addNode.requested"].next({type:t,position:o})}};this.handlers={handleDiagramInit:()=>{let e=g0(this.diagramService);this.diagramService.registerRouting(h0(e,(o,i)=>this.diagramModel.edges().some(r=>r.source===i&&r.target===o)));let t=this.diagramModel.edges().filter(o=>o.routingMode==="manual").map(o=>({id:o.id,routingMode:"auto"}));t.length>0&&this.diagramModel.updateEdges(t)},handleNodeDragEnded:e=>{for(let t of e.nodes)this.bridge.raw["editor.updateNode.requested"].next({nodeId:t.id,position:{x:t.position.x,y:t.position.y}})},handleNodeResizeEnded:e=>{let t=e.node.size;if(t===void 0)return;let o=this.contentMinSize.minFor(e.node.id),i=Math.max(t.width,o.width),r=Math.max(t.height,o.height);(i!==t.width||r!==t.height)&&this.nodeService.resizeNode(e.node.id,{width:i,height:r},void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:e.node.id,ui:{width:i,height:r}})},handleEdgeDrawEnded:e=>{if(!e.success||e.edge===void 0)return;this.diagramModel.deleteEdges([e.edge.id]);let t=nD(e);t!==null&&this.bridge.raw["editor.addEdge.requested"].next(t)},handleClipboardPasted:e=>{if(e.nodes.length===0)return;let t=e.edges.map(i=>i.id),o=e.nodes.map(i=>i.id);t.length>0&&this.diagramModel.deleteEdges(t),this.diagramModel.deleteNodes(o),this.bridge.raw["editor.paste.requested"].next(oD(e))},handleSelectionRemoved:e=>{for(let t of e.deletedEdges)this.bridge.raw["editor.removeEdge.requested"].next(t.id);for(let t of e.deletedNodes)this.bridge.raw["editor.removeNode.requested"].next(t.id)},handleSelectionChanged:e=>{let t=e.selectedNodes[0]?.id??null;t!==this.lastConfirmedSelectedNodeId&&this.bridge.raw["editor.selectNode.requested"].next({nodeId:t})}};let e=!1,t;this.viewport$.pipe(nn(this.destroyRef),tg(300),Ur(Ea),xe(i=>{let r=this.graphInput();(t===void 0||r!==t)&&(t=r,e=!1);let s=a0(i,r.viewport,e);return e=s.hydrateConsumed,s.publish})).subscribe(i=>{this.bridge.raw["editor.viewport.requested"].next(i)}),Xe(this.palette).pipe(Vr(1),nn(this.destroyRef)).subscribe(i=>{this.applyPalettePortsToLiveNodes(i)});let o=(i,r)=>Ne([this.bridge.raw[i]]).pipe(nn()).subscribe(([s])=>r(s));o("editor.addEdges",i=>{this.diagramModel.addEdges(i.map(Rp))}),o("editor.viewport.delta",i=>{if(!i)return;let{x:r,y:s,scale:a}=i,d=this.viewportService.viewport();r===d.x&&s===d.y&&a===d.scale||this.viewportService.setViewport(r,s,a)}),o("editor.deleteEdges",i=>{this.diagramModel.deleteEdges(i.map(r=>r.edgeId))}),o("editor.deleteNodes",i=>{this.diagramModel.deleteNodes(i.map(r=>r.id))}),o("editor.addNodes",i=>{let r=i.map(s=>Pa(s,At(this.palette().nodes)));this.diagramModel.addNodes(r)}),o("editor.updateNodes",i=>{let r=i.map(s=>Pa(s,At(this.palette().nodes)));this.diagramModel.updateNodes(r)}),this.bridge.cached["session.state.snapshot"].pipe(nn()).subscribe(i=>{this.applyConfirmedSelection(i.selectedNode?.id??null)}),o("editor.nodeSelected",i=>{this.applyConfirmedSelection(i.node?.id??null)})}ngAfterViewInit(){let e=this.elementRef.nativeElement,t={capture:!0},o=r=>{this.isPaletteDrag(r)&&(r.stopImmediatePropagation(),this.hostHandlers.handleDragOver(r))},i=r=>{this.isPaletteDrag(r)&&(r.stopImmediatePropagation(),this.hostHandlers.handleDrop(r))};e.addEventListener("dragover",o,t),e.addEventListener("drop",i,t),this.destroyRef.onDestroy(()=>{e.removeEventListener("dragover",o,t),e.removeEventListener("drop",i,t)})}applyPalettePortsToLiveNodes(e){let t=At(e.nodes),o=this.diagramModel.nodes().map(i=>{let r=i,s=kp(r.data.type,t);return r.data.portsConfig===s?null:_(g({},r),{data:_(g({},r.data),{portsConfig:s})})}).filter(i=>i!==null);o.length>0&&this.diagramModel.updateNodes(o)}applyConfirmedSelection(e){if(this.lastConfirmedSelectedNodeId=e,(this.selectionService.selection().nodes[0]?.id??null)!==e){if(e===null){this.selectionService.deselectAll();return}this.selectionService.select([e])}}isPaletteDrag(e){return e.dataTransfer?.types.includes(ur)===!0}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-flow-canvas"]],inputs:{graphInput:[1,"graphInput"],palette:[1,"palette"]},features:[Io([r0()])],decls:3,vars:1,consts:[[1,"relative","h-full","w-full",3,"dragover","drop"],[1,"block","h-full","w-full",2,"background","transparent",3,"model","config","nodeTemplateMap","edgeTemplateMap"],[1,"flex","h-full","items-center","justify-center","text-sm","text-zinc-500","dark:text-zinc-400"],[1,"block","h-full","w-full",2,"background","transparent",3,"diagramInit","nodeDragEnded","nodeResizeEnded","edgeDrawEnded","clipboardPasted","selectionRemoved","selectionChanged","model","config","nodeTemplateMap","edgeTemplateMap"],["type","dots"]],template:function(t,o){if(t&1&&(v(0,"div",0),O("dragover",function(r){return o.hostHandlers.handleDragOver(r)})("drop",function(r){return o.hostHandlers.handleDrop(r)}),E(1,eD,3,4,"ng-diagram",1)(2,tD,2,0,"div",2),y()),t&2){let i;p(),P((i=o.modelAdapter())?1:2,i)}},dependencies:[lr,oa,ba],encapsulation:2})}};var iD=n=>[n];function rD(n,e){if(n&1&&z(0,"lf-flow-canvas",0),n&2){let t=m(),o=m();A("graphInput",t.graph)("palette",o.palette)}}function sD(n,e){n&1&&Q(0,rD,1,2,"lf-flow-canvas",0,Si),n&2&&J(Pi(0,iD,e.workflowId))}function aD(n,e){if(n&1&&E(0,sD,2,2),n&2){let t;P((t=e.workflow.activeWorkflow)?0:-1,t)}}var Wa=class n{constructor(){this.bridge=h(de);this.snapshot$=this.bridge.cached["workflow.current.snapshot"];this.palette$=Ne([this.bridge.cached["palette.snapshot"].pipe(ae({nodes:[]})),this.bridge.cached["customPalette.snapshot"].pipe(ae(Wo))]).pipe(N(([e,t])=>zs(e,t)));this.workflowAndPalette$=Ne({workflow:this.snapshot$,palette:this.palette$})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-canvas-container"]],decls:2,vars:3,consts:[[3,"graphInput","palette"]],template:function(t,o){if(t&1&&(E(0,aD,1,1),Do(1,"async")),t&2){let i;P((i=Mo(1,1,o.workflowAndPalette$))?0:-1,i)}},dependencies:[ja,Kn],encapsulation:2})}};function dD(n,e){n&1&&(U(0,"div",1),pt(1,"span",5),B())}function lD(n,e){n&1&&(U(0,"div",4),pt(1,"span",5),B())}var Ga=class n{constructor(){this.side=I.required();this.label=I.required();this.wireType=I.required()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node-port-row-static"]],hostAttrs:[1,"lf-port-row-host"],inputs:{side:[1,"side"],label:[1,"label"],wireType:[1,"wireType"]},decls:8,vars:8,consts:[[1,"lf-port-row"],[1,"lf-port-anchor","lf-port-anchor--in"],[1,"lf-port-row__content"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"lf-port-anchor","lf-port-anchor--out"],["aria-hidden","true",1,"lf-port-dot"]],template:function(t,o){t&1&&(U(0,"div",0),E(1,dD,2,0,"div",1),U(2,"div",2)(3,"span"),C(4),B(),U(5,"span",3),C(6),B()(),E(7,lD,2,0,"div",4),B()),t&2&&(q("lf-port-row--in",o.side()==="in")("lf-port-row--out",o.side()==="out"),p(),P(o.side()==="in"?1:-1),p(3),re(o.label()),p(2),H(" \xB7 ",o.wireType()," "),p(),P(o.side()==="out"?7:-1))},styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};var Ey=(n,e)=>e.portId;function cD(n,e){if(n&1&&z(0,"lf-node-port-row-static",2),n&2){let t=e.$implicit;A("label",t.label)("wireType",t.wireType)}}function uD(n,e){if(n&1&&z(0,"lf-node-port-row-static",3),n&2){let t=e.$implicit;A("label",t.label)("wireType",t.wireType)}}var qa=class n{constructor(){this.node=I.required();this.ports=b(()=>Na(this.node(),"palette-drag-preview",[]));this.inputPortRows=b(()=>this.ports().inputPorts);this.outputPortRows=b(()=>this.ports().outputPorts)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-drag-preview"]],hostAttrs:[1,"inline-block","w-max"],inputs:{node:[1,"node"]},decls:7,vars:1,consts:[[1,"lf-node-chrome","flex","h-full","min-h-12","min-w-40","flex-col","rounded-xl","border","border-zinc-300","bg-white","py-3","dark:border-zinc-700","dark:bg-zinc-900"],[1,"truncate","px-1","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100"],["side","in",3,"label","wireType"],["side","out",3,"label","wireType"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"span",1),C(2),y(),Q(3,cD,1,2,"lf-node-port-row-static",2,Ey),Q(5,uD,1,2,"lf-node-port-row-static",3,Ey),y()),t&2&&(p(2),H(" ",o.node().displayName," "),p(),J(o.inputPortRows()),p(2),J(o.outputPortRows()))},dependencies:[Ga],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};function Py(n,e,t,o){let i=o.dataTransfer;if(i===null)return null;let r=document.createElement("div");r.style.position="fixed",r.style.top="-2000px",r.style.left="-2000px",r.style.display="inline-block",r.style.width="max-content",r.style.pointerEvents="none",r.style.opacity=String(.5),document.body.appendChild(r);let s=Pg(qa,{hostElement:r,environmentInjector:n});return s.setInput("node",t),e.attachView(s.hostView),s.changeDetectorRef.detectChanges(),i.setDragImage(r,12,12),{destroy:()=>{e.detachView(s.hostView),s.destroy(),r.remove()}}}var Iy=(n,e,t,o=8)=>{if(t<=0||e<=0)return n;let i=o,r=Math.max(i,t-e-o);return Math.min(Math.max(n,i),r)};function hD(n,e){if(n&1&&(z(0,"span",9),v(1,"span",10),C(2),v(3,"span",11),C(4),y()()),n&2){let t=m().$implicit;K("aria-label",t.leftDot.ariaLabel),p(2),H(" ",t.leftDot.label," "),p(2),H(" \xB7 ",t.leftDot.wireType," ")}}function gD(n,e){n&1&&(v(0,"p",5),C(1," Dynamic channels "),y())}function fD(n,e){if(n&1&&(v(0,"span",12),C(1),v(2,"span",11),C(3),y()(),z(4,"span",9)),n&2){let t=m().$implicit;p(),H(" ",t.rightDot.label," "),p(2),H(" \xB7 ",t.rightDot.wireType," "),p(),K("aria-label",t.rightDot.ariaLabel)}}function mD(n,e){if(n&1&&(v(0,"div",7),z(1,"lf-inline-field",13),y()),n&2){let t=m().$implicit;p(),A("config",t.inline)("value",t.inlineValue)("disabled",!0)}}function yD(n,e){n&1&&(v(0,"span",8),C(1," multi "),y())}function vD(n,e){if(n&1&&(v(0,"div",2)(1,"div",3)(2,"div",4),E(3,hD,5,3),y(),E(4,gD,2,0,"p",5),v(5,"div",6),E(6,fD,5,3),y()(),E(7,mD,2,3,"div",7),E(8,yD,2,0,"span",8),y()),n&2){let t=e.$implicit;p(3),P(t.leftDot!==null?3:-1),p(),P(t.isBypassStub?4:-1),p(2),P(t.rightDot!==null?6:-1),p(),P(t.inline!==null?7:-1),p(),P(t.showMultiBadge?8:-1)}}function Dy(n){return n?.hidden===!0}function bD(n){return n.dynamic===!0?"dynamic":String(n.wireType??"any")}function wD(n){let e=n.name??String(n.portId??"unknown"),t=n.name??e,o=bD(n);return{portId:e,label:t,wireType:o,ariaLabel:`${t}, ${o} input`}}function CD(n){let e=String(n.portId),t="name"in n?n.name:void 0,o=String(t??e),i=n.fromInput!==void 0?`from(${n.fromInput})`:String(n.wireType);return{portId:e,label:o,wireType:i,ariaLabel:`${o}, ${i} output`}}function _D(n){return n===void 0||typeof n=="string"&&n.startsWith("preview")?null:n}function xD(n){return n.inputsConfigs.filter(e=>!Dy(e))}function SD(n){return n.outputsConfigs.filter(e=>e!==void 0&&!Dy(e))}function ED(n){let e=xD(n),t=SD(n),o=[],i=Math.max(e.length,t.length);for(let r=0;r<i;r+=1){let s=e[r],a=t[r];o.push({leftDot:s!==void 0?wD(s):null,rightDot:a!==void 0?CD(a):null,inline:_D(s?.inline),inlineValue:s?.defaultValue,showMultiBadge:s?.multi!==void 0,isBypassStub:!1})}return o.length===0&&Object.keys(n.bypassPorts).length>0&&e.length===0&&t.length===0&&o.push({leftDot:null,rightDot:null,inline:null,inlineValue:void 0,showMultiBadge:!1,isBypassStub:!0}),o}var Ya=class n{constructor(){this.node=I.required();this.bodyRows=b(()=>ED(this.node()))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-node-preview"]],inputs:{node:[1,"node"]},decls:5,vars:1,consts:[[1,"relative","min-w-48"],[1,"mb-2","truncate","text-center","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100"],[1,"py-1"],[1,"flex","items-start","gap-2"],[1,"flex","min-w-0","flex-1","items-start","gap-1.5"],[1,"min-w-0","flex-1","text-center","text-[10px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","min-w-0","flex-1","items-start","justify-end","gap-1.5"],[1,"mt-1"],[1,"mt-1","block","text-[10px]","text-zinc-400","dark:text-zinc-500"],[1,"mt-0.5","h-2.5","w-2.5","shrink-0","rounded-full","border-2","border-zinc-400","bg-white","dark:border-zinc-500","dark:bg-zinc-900"],[1,"text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"text-right","text-[10px]","text-zinc-600","dark:text-zinc-300"],[3,"config","value","disabled"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"p",1),C(2),y(),Q(3,vD,9,5,"div",2,en),y()),t&2&&(p(2),H(" ",o.node().displayName," "),p(),J(o.bodyRows()))},dependencies:[Gn],encapsulation:2})}};var ID=["popoverRoot"],DD=(n,e)=>e.field;function MD(n,e){if(n&1&&(v(0,"li",9)(1,"span",10),C(2),y(),v(3,"span",11),C(4),y()()),n&2){let t=e.$implicit;p(2),re(t.label??t.field),p(2),H(" \xB7 ",t.type," ")}}function TD(n,e){if(n&1&&(v(0,"div",5)(1,"h3",7),C(2," Panel "),y(),v(3,"ul",8),Q(4,MD,5,2,"li",9,DD),y()()),n&2){let t=m(2);p(4),J(t.panelFields())}}function kD(n,e){if(n&1&&z(0,"div",6),n&2){let t=m(2);A("innerHTML",t.descriptionHtml(),kn)}}function RD(n,e){if(n&1){let t=j();v(0,"div",2,0)(2,"div",3),O("mouseenter",function(){M(t);let i=m();return T(i.panelEnter.emit())})("mouseleave",function(){M(t);let i=m();return T(i.panelLeave.emit())}),z(3,"lf-palette-node-preview",4),E(4,TD,6,0,"div",5),E(5,kD,1,1,"div",6),y()()}if(n&2){let t=m();Ue("top",t.popoverTop(),"px")("left",t.popoverLeft(),"px"),K("aria-label",t.node().displayName),p(3),A("node",t.node()),p(),P(t.panelFields().length>0?4:-1),p(),P(t.descriptionHtml()!==null?5:-1)}}function ND(n){if(n===void 0||n.trim().length===0)return null;let e=gi(n);return e.length>0?e:null}var Za=class n{constructor(){this.node=I(null);this.anchor=I(null);this.panelEnter=mn();this.panelLeave=mn();this.popoverRoot=st("popoverRoot");this.popoverHeightPx=$(0);this.panelFields=b(()=>{let e=this.node();return e===null?[]:e.uiSchema.filter(t=>t.placement!=="inline")});this.descriptionHtml=b(()=>{let e=this.node();return e===null?null:ND(e.description)});this.popoverLeft=b(()=>{let e=this.anchor();return e===null?0:e.left+e.width+8});this.popoverTop=b(()=>{let e=this.anchor();if(e===null)return 0;let t=typeof globalThis<"u"&&typeof globalThis.innerHeight=="number"?globalThis.innerHeight:0;return Iy(e.top,this.popoverHeightPx(),t,8)});Eg(()=>{this.node(),this.anchor();let e=this.popoverRoot()?.nativeElement;if(e===void 0){this.popoverHeightPx.set(0);return}this.popoverHeightPx.set(e.getBoundingClientRect().height)})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-node-detail-popover"]],viewQuery:function(t,o){t&1&&ht(o.popoverRoot,ID,5),t&2&&gt()},inputs:{node:[1,"node"],anchor:[1,"anchor"]},outputs:{panelEnter:"panelEnter",panelLeave:"panelLeave"},decls:1,vars:1,consts:[["popoverRoot",""],["role","dialog",1,"pointer-events-none","fixed","z-50","w-72",3,"top","left"],["role","dialog",1,"pointer-events-none","fixed","z-50","w-72"],[1,"pointer-events-auto","rounded-lg","border","border-zinc-200","bg-white","p-3","shadow-xl","dark:border-zinc-700","dark:bg-zinc-900",3,"mouseenter","mouseleave"],[3,"node"],[1,"mt-3","pt-1"],[1,"prose","prose-xs","mt-3","max-w-none","pt-1","text-zinc-600","dark:prose-invert","dark:text-zinc-300",3,"innerHTML"],[1,"text-[10px]","font-semibold","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],[1,"mt-1","space-y-1"],[1,"text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"font-medium"],[1,"text-zinc-400","dark:text-zinc-500"]],template:function(t,o){t&1&&E(0,RD,6,8,"div",1),t&2&&P(o.node()!==null&&o.anchor()!==null?0:-1)},dependencies:[Ya],encapsulation:2})}};var OD=(n,e)=>e.source,AD=(n,e)=>e.packageName+e.message,My=(n,e)=>e.category,Ty=(n,e)=>e.type;function LD(n,e){if(n&1&&(v(0,"li",12)(1,"strong"),C(2),y(),v(3,"pre",13),C(4),y()()),n&2){let t=e.$implicit;p(2),re(t.packageName),p(2),re(t.message)}}function FD(n,e){if(n&1&&(v(0,"ul",11),Q(1,LD,5,2,"li",12,AD),y()),n&2){let t=m(4);p(),J(t.customErrors())}}function zD(n,e){if(n&1){let t=j();v(0,"div",8)(1,"span",9),C(2),y(),v(3,"button",10),O("click",function(){M(t);let i=m(3);return T(i.requestCustomPaletteUpdate())}),C(4," Update "),y()(),E(5,FD,3,0,"ul",11)}if(n&2){let t=m(3);p(2),H(" ",t.customStatusLabel()," "),p(),A("disabled",t.customStatus()==="compiling"),p(2),P(t.customErrors().length>0?5:-1)}}function BD(n,e){n&1&&(v(0,"p",14),C(1," No custom nodes yet "),y())}function $D(n,e){if(n&1&&E(0,BD,2,0,"p",14),n&2){let t=m(2).$implicit;P(t.source==="custom"?0:-1)}}function HD(n,e){if(n&1){let t=j();v(0,"li")(1,"button",20),O("dragstart",function(i){let r=M(t).$implicit,s=m(9);return T(s.startPaletteDrag(r,i))})("dragend",function(){M(t);let i=m(9);return T(i.endPaletteDrag())})("mouseenter",function(i){let r=M(t).$implicit,s=m(9);return T(s.showPopover(r,i))})("mouseleave",function(){M(t);let i=m(9);return T(i.hidePopover())})("click",function(i){let r=M(t).$implicit,s=m(9);return T(s.togglePinnedPopover(r,i))}),C(2),y()()}if(n&2){let t=e.$implicit,o=m(9);p(),ft(o.nodeRowClass),p(),H(" ",t.displayName," ")}}function UD(n,e){if(n&1&&(v(0,"ul",18),Q(1,HD,3,3,"li",null,Ty),y()),n&2){let t=m().$implicit;p(),J(t.nodes)}}function VD(n,e){if(n&1){let t=j();v(0,"div",19)(1,"button",16),O("click",function(){let i=M(t).$implicit,r=m(6).$implicit,s=m();return T(s.toggleAdvancedSubcategory(r.source,i.category))}),v(2,"span"),C(3),y(),ge(),v(4,"svg",17),z(5,"path"),y()(),E(6,UD,3,0,"ul",18),y()}if(n&2){let t=e.$implicit,o=m(6).$implicit,i=m();p(),ft(i.categoryHeaderClass),K("aria-expanded",i.isAdvancedSubcategoryExpanded(o.source,t.category)),p(2),re(t.category),p(),q("rotate-180",i.isAdvancedSubcategoryExpanded(o.source,t.category)),p(),K("d",i.chevronPath),p(),P(i.isAdvancedSubcategoryExpanded(o.source,t.category)?6:-1)}}function jD(n,e){if(n&1&&Q(0,VD,7,8,"div",19,My),n&2){let t=m(2).$implicit;J(t.subcategories)}}function WD(n,e){if(n&1){let t=j();v(0,"li")(1,"button",20),O("dragstart",function(i){let r=M(t).$implicit,s=m(7);return T(s.startPaletteDrag(r,i))})("dragend",function(){M(t);let i=m(7);return T(i.endPaletteDrag())})("mouseenter",function(i){let r=M(t).$implicit,s=m(7);return T(s.showPopover(r,i))})("mouseleave",function(){M(t);let i=m(7);return T(i.hidePopover())})("click",function(i){let r=M(t).$implicit,s=m(7);return T(s.togglePinnedPopover(r,i))}),C(2),y()()}if(n&2){let t=e.$implicit,o=m(7);p(),ft(o.nodeRowClass),p(),H(" ",t.displayName," ")}}function GD(n,e){if(n&1&&(v(0,"ul",18),Q(1,WD,3,3,"li",null,Ty),y()),n&2){let t=m(2).$implicit;p(),J(t.nodes)}}function qD(n,e){if(n&1&&E(0,jD,2,0)(1,GD,3,0,"ul",18),n&2){let t=m().$implicit,o=m(4);P(o.isAdvancedGroup(t)?0:1)}}function YD(n,e){if(n&1){let t=j();v(0,"div",15)(1,"button",16),O("click",function(){let i=M(t).$implicit,r=m(3).$implicit,s=m();return T(s.toggleCategory(r.source,i.category))}),v(2,"span"),C(3),y(),ge(),v(4,"svg",17),z(5,"path"),y()(),E(6,qD,2,1),y()}if(n&2){let t=e.$implicit,o=m(3).$implicit,i=m();p(),ft(i.categoryHeaderClass),K("aria-expanded",i.isCategoryExpanded(o.source,t.category)),p(2),re(t.category),p(),q("rotate-180",i.isCategoryExpanded(o.source,t.category)),p(),K("d",i.chevronPath),p(),P(i.isCategoryExpanded(o.source,t.category)?6:-1)}}function ZD(n,e){if(n&1&&Q(0,YD,7,8,"div",15,My),n&2){let t=m(2).$implicit;J(t.categories)}}function KD(n,e){if(n&1&&(E(0,zD,6,3),E(1,$D,1,1)(2,ZD,2,0)),n&2){let t=m().$implicit;P(t.source==="custom"?0:-1),p(),P(t.categories.length===0?1:2)}}function XD(n,e){if(n&1){let t=j();v(0,"div",4)(1,"button",6),O("click",function(){let i=M(t).$implicit,r=m();return T(r.toggleSource(i.source))}),v(2,"span"),C(3),y(),ge(),v(4,"svg",7),z(5,"path"),y()(),E(6,KD,3,2),y()}if(n&2){let t=e.$implicit,o=m();p(),K("aria-expanded",o.isSourceExpanded(t.source)),p(2),re(o.sourceSectionLabel(t.source)),p(),q("rotate-180",o.isSourceExpanded(t.source)),p(),K("d",o.chevronPath),p(),P(o.isSourceExpanded(t.source)?6:-1)}}var QD="flex w-full items-center justify-between gap-2 rounded px-1.5 py-0.5 text-left text-[10px] font-medium uppercase tracking-wide text-zinc-500 transition hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",JD="w-full cursor-grab rounded-lg border border-zinc-300 bg-white px-2 py-1.5 text-left text-[11px] text-zinc-800 shadow-sm transition hover:border-zinc-400 hover:bg-zinc-50 active:cursor-grabbing dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100 dark:hover:border-zinc-500 dark:hover:bg-zinc-800",eM="M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.24a.75.75 0 0 1-1.06 0L5.21 8.29a.75.75 0 0 1 .02-1.08Z",Ka=class n{constructor(){this.bridge=h(de);this.appRef=h(Qr);this.environmentInjector=h(pn);this.seededCategoryExpansion=!1;this.dragImageSession=null;this.categoryHeaderClass=QD;this.nodeRowClass=JD;this.chevronPath=eM;this.expandedSources=$(new Set(["system"]));this.expandedCategories=$(new Set);this.filterQuery=$("");this.hoverTarget=$(null);this.pinnedTarget=$(null);this.popoverHovered=$(!1);this.paletteState=se(Ne([this.bridge.cached["palette.snapshot"].pipe(ae({nodes:[]})),this.bridge.cached["customPalette.snapshot"].pipe(ae(Wo))]).pipe(N(([e,t])=>lm(e,t)),ae(Ql)),{initialValue:Ql});this.sections=b(()=>this.paletteState().sections);this.customStatus=b(()=>this.paletteState().customStatus);this.customErrors=b(()=>this.paletteState().customErrors);this.customStatusLabel=b(()=>{switch(this.customStatus()){case"compiling":return"Compiling\u2026";case"ok":return"Compiled";case"partial":return"Partial (some errors)";case"error":return"Compile error";default:return"Not compiled"}});this.visibleSections=b(()=>pm(this.sections(),this.filterQuery()));this.isFiltering=b(()=>this.filterQuery().trim().length>0);this.popoverNode=b(()=>this.pinnedTarget()?.node??this.hoverTarget()?.node??null);this.popoverAnchor=b(()=>(this.pinnedTarget()??this.hoverTarget())?.anchor??null);this.sourceSectionLabel=cm;fe(()=>{if(this.seededCategoryExpansion)return;let e=new Set;for(let t of this.sections())for(let o of t.categories){if(o.category===Go){for(let i of o.subcategories??[])e.add($s(t.source,i.category));continue}e.add(Bs(t.source,o.category))}e.size!==0&&(this.expandedCategories.set(e),this.seededCategoryExpansion=!0)})}onFilterInput(e){let t=e.target;t instanceof HTMLInputElement&&this.filterQuery.set(t.value)}requestCustomPaletteUpdate(){this.bridge.raw["customPalette.update.requested"].next({})}isAdvancedGroup(e){return e.category===Go}isSourceExpanded(e){return this.isFiltering()||this.expandedSources().has(e)}isCategoryExpanded(e,t){return this.isFiltering()||this.expandedCategories().has(Bs(e,t))}isAdvancedSubcategoryExpanded(e,t){return this.isFiltering()||this.expandedCategories().has($s(e,t))}toggleSource(e){this.expandedSources.update(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o})}toggleCategory(e,t){this.toggleCollapseKey(Bs(e,t))}toggleAdvancedSubcategory(e,t){this.toggleCollapseKey($s(e,t))}toggleCollapseKey(e){this.expandedCategories.update(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o})}startPaletteDrag(e,t){t.dataTransfer!==null&&(this.dismissPopover(),t.dataTransfer.setData(ur,e.type),t.dataTransfer.effectAllowed="copy",this.endPaletteDrag(),this.dragImageSession=Py(this.environmentInjector,this.appRef,e,t))}endPaletteDrag(){this.dragImageSession?.destroy(),this.dragImageSession=null}dismissPopover(){this.hoverTarget.set(null),this.pinnedTarget.set(null),this.popoverHovered.set(!1)}showPopover(e,t){if(this.pinnedTarget()!==null)return;let o=t.currentTarget;if(!(o instanceof HTMLElement))return;let i=o.getBoundingClientRect();this.hoverTarget.set({node:e,anchor:{top:i.top,left:i.left,height:i.height,width:i.width}})}hidePopover(){this.pinnedTarget()!==null||this.popoverHovered()||this.hoverTarget.set(null)}onPopoverPanelLeave(){this.popoverHovered.set(!1),this.hidePopover()}togglePinnedPopover(e,t){let o=t.currentTarget;if(!(o instanceof HTMLElement))return;let i=o.getBoundingClientRect(),r={node:e,anchor:{top:i.top,left:i.left,height:i.height,width:i.width}};if(this.pinnedTarget()?.node.type===e.type){this.pinnedTarget.set(null),this.hoverTarget.set(null);return}this.pinnedTarget.set(r),this.hoverTarget.set(null)}handleEscape(){this.dismissPopover()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-sidebar"]],hostAttrs:[1,"block","h-full","min-h-0"],hostBindings:function(t,o){t&1&&O("keydown.escape",function(){return o.handleEscape()},kt)},decls:8,vars:3,consts:[[1,"relative","flex","h-full","min-h-0","flex-col"],[1,"shrink-0","text-sm","font-semibold","text-zinc-900","dark:text-zinc-100"],["type","search","placeholder","Filter nodes\u2026",1,"mt-3","w-full","shrink-0","rounded-md","border","border-zinc-200","bg-zinc-50","px-2","py-1.5","text-[11px]","text-zinc-800","outline-none","transition","placeholder:text-zinc-400","focus:border-zinc-400","dark:border-zinc-700","dark:bg-zinc-950","dark:text-zinc-100","dark:placeholder:text-zinc-500","dark:focus:border-zinc-500",3,"input","value"],[1,"lf-scroll","mt-3","min-h-0","flex-1","overflow-y-auto","pr-1"],[1,"mb-2"],[3,"panelEnter","panelLeave","node","anchor"],["type","button",1,"flex","w-full","items-center","justify-between","gap-2","rounded-md","px-2","py-1.5","text-left","text-xs","font-semibold","text-zinc-800","transition","hover:bg-zinc-100","dark:text-zinc-100","dark:hover:bg-zinc-800",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-3.5","w-3.5","shrink-0","transition"],[1,"flex","items-center","justify-between","gap-2","py-1","pl-4","pr-2"],[1,"text-[10px]","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],["type","button",1,"rounded","px-1.5","py-0.5","text-[10px]","font-medium","text-zinc-700","transition","hover:bg-zinc-100","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],[1,"mb-1","space-y-1","py-1","pl-4","pr-2","text-[11px]","text-red-700","dark:text-red-300"],[1,"whitespace-pre-wrap"],[1,"mt-0.5","font-sans","whitespace-pre-wrap"],[1,"py-1","pl-4","pr-2","text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"mt-1.5","pl-4"],["type","button",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-2.5","w-2.5","shrink-0","transition"],[1,"mt-1","space-y-1","pl-4"],[1,"mt-1","pl-4"],["type","button","draggable","true",3,"dragstart","dragend","mouseenter","mouseleave","click"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"h2",1),C(2," Palette "),y(),v(3,"input",2),O("input",function(r){return o.onFilterInput(r)}),y(),v(4,"div",3),Q(5,XD,7,6,"div",4,OD),y(),v(7,"lf-palette-node-detail-popover",5),O("panelEnter",function(){return o.popoverHovered.set(!0)})("panelLeave",function(){return o.onPopoverPanelLeave()}),y()()),t&2&&(p(3),A("value",o.filterQuery()),p(2),J(o.visibleSections()),p(2),A("node",o.popoverNode())("anchor",o.popoverAnchor()))},dependencies:[Za],encapsulation:2})}};var tM=["read","glob","grep","edit","write","create","delete","bash"],nM=["You are the Plan agent in a Langflower workflow.","","Understand the user's goal, explore the codebase read-only, and produce a clear","implementation plan. Do not modify source code or non-documentation files.","","Write plans in Markdown with sections: Goal, Context, Steps, Risks, Open questions.","","When requirements are ambiguous, use ask_user before finalizing the plan."].join(`
305
- `),oM=["You are the Coder agent in a Langflower workflow.","","Implement the requested changes in the project repository. Make minimal, correct","edits. Prefer precise file edits over large rewrites.","","When tests are available, run them to verify your work. Summarize what you changed","in your final response."].join(`
306
- `),iM=["You are the Explorer agent in a Langflower workflow.","","Research the topic using web_fetch. Synthesize findings into clear Markdown notes.","Do not modify application source code\u2014only *.md research notes.","","Cite URLs. Separate facts from inference."].join(`
307
- `),rM=["read","glob","grep","write","create"],sM={edit:"deny",delete:"deny",bash:"deny",write:{"**/*.md":"ask","**/*.mdx":"ask","docs/**":"ask","*":"deny"},create:{"**/*.md":"ask","**/*.mdx":"ask","docs/**":"ask","*":"deny"}},aM=[...tM],dM={bash:"ask"},lM=["read","write","create"],cM={glob:"deny",grep:"deny",edit:"deny",delete:"deny",bash:"deny",write:{"**/*.md":"ask","**/*.mdx":"ask","*":"deny"},create:{"**/*.md":"ask","**/*.mdx":"ask","*":"deny"}},uM={custom:{systemPrompt:"",skillId:"",enabledToolIds:void 0,permission:{}},plan:{systemPrompt:nM,skillId:"plan",enabledToolIds:rM,permission:sM},coder:{systemPrompt:oM,skillId:"coder",enabledToolIds:aM,permission:dM},explorer:{systemPrompt:iM,skillId:"explorer",enabledToolIds:lM,permission:cM}},ky=n=>n==="plan"||n==="coder"||n==="explorer"?n:"custom";var Ry=(n,e)=>{let r=n,{enabledToolIds:t}=r,o=un(r,["enabledToolIds"]),i=uM[e];return i.enabledToolIds===void 0?_(g({},o),{rolePreset:e}):_(g({},o),{rolePreset:e,enabledToolIds:[...i.enabledToolIds]})};var hh=n=>!Array.isArray(n)||n.length===0?!1:n.every(e=>e===!1||typeof e=="string"||e instanceof Error||hh(e)||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0),Ny=n=>{if(!Array.isArray(n))return n;let e=n.filter(Boolean).map(Ny);return e.length===0?n:e.length===1?e[0]:e},ph=n=>typeof n=="string"?n:n instanceof Error?n.message.length>0?n.message:String(n):typeof n=="object"&&n!==null&&!Array.isArray(n)&&Object.keys(n).length===0?"Error":String(n),Oy=n=>{let e=Ny(n);return Array.isArray(e)?e.map(t=>hh(t)?Oy(t):ph(t)).filter(t=>t.length>0).join(`
308
- `):ph(e)},yo=n=>{if(typeof n=="string")return n;if(n==null)return String(n);if(n instanceof Error)return ph(n);if(hh(n))return Oy(n);if(typeof n=="object")try{return JSON.stringify(n,null,2)}catch(e){return String(n)}return String(n)};var Ay="No models available for this provider",Ly=(n,e)=>e?.loading===!0?{disabled:!1,emptyHint:"Loading models\u2026"}:e?.error!==void 0?n===0?{disabled:!0,fieldError:e.error.trim().length>0?e.error:Ay}:{disabled:!1,emptyHint:`Live catalog unavailable \u2014 using static models. ${e.error}`}:n===0?{disabled:!1,emptyHint:Ay}:{disabled:!1};var Fy=(n,e)=>e.some(t=>t.value==="")?e:n.optionsSource==="langflower.skills"?[{value:"",title:"None"},...e]:n.optionsSource==="langflower.providers"?[{value:"",title:"Select\u2026"},...e]:e;var zy=n=>g(g(g({type:"number"},typeof n.min=="number"?{min:n.min}:{}),typeof n.max=="number"?{max:n.max}:{}),typeof n.step=="number"?{step:n.step}:{});var By=(n,e)=>e.portId,pM=(n,e)=>e.field;function hM(n,e){if(n&1&&(v(0,"p",11),C(1),y()),n&2){let t=m().$implicit;p(),H(" ",t.fieldError," ")}}function gM(n,e){if(n&1&&(v(0,"p",12),C(1),y()),n&2){let t=m().$implicit;p(),H(" ",t.emptyHint," ")}}function fM(n,e){if(n&1){let t=j();v(0,"div",6)(1,"span",9),C(2),y(),v(3,"lf-inline-field",10),O("valueChange",function(i){let r=M(t).$implicit,s=m(4);return T(s.onFieldChange(r.field,i))}),y(),E(4,hM,2,1,"p",11)(5,gM,2,1,"p",12),y()}if(n&2){let t=e.$implicit;p(2),H(" ",t.label," "),p(),A("config",t.config)("value",t.value)("disabled",t.disabled===!0),p(),P(t.fieldError!==void 0?4:t.emptyHint!==void 0?5:-1)}}function mM(n,e){if(n&1&&(v(0,"div",8),Q(1,fM,6,5,"div",6,pM),y()),n&2){let t=m();p(),J(t)}}function yM(n,e){n&1&&E(0,mM,3,0,"div",8),n&2&&P(e.length>0?0:-1)}function vM(n,e){n&1&&(v(0,"span",14),C(1,"\xB7 hidden"),y())}function bM(n,e){if(n&1){let t=j();v(0,"lf-inline-field",17),O("valueChange",function(i){M(t);let r=m().$implicit,s=m(2);return T(s.onInputChange(r.portId,i))}),y()}if(n&2){let t=m().$implicit;A("config",t.inline)("value",t.value)}}function wM(n,e){if(n&1&&(v(0,"pre",16),C(1),y()),n&2){let t=m().$implicit,o=m(2);p(),re(o.formatValue(t.value))}}function CM(n,e){if(n&1&&(v(0,"div",6)(1,"span",13),C(2),v(3,"span",14),C(4),y(),E(5,vM,2,0,"span",14),y(),E(6,bM,1,2,"lf-inline-field",15)(7,wM,2,1,"pre",16),y()),n&2){let t=e.$implicit;p(2),H(" ",t.label," "),p(2),H("\xB7 ",t.wireType),p(),P(t.hidden?5:-1),p(),P(t.inline!==null?6:7)}}function _M(n,e){n&1&&(v(0,"p",7),C(1," This node has no input ports. "),y())}function xM(n,e){n&1&&(v(0,"span",14),C(1,"\xB7 hidden"),y())}function SM(n,e){if(n&1&&(v(0,"div",6)(1,"span",13),C(2),v(3,"span",14),C(4),y(),E(5,xM,2,0,"span",14),y(),v(6,"pre",16),C(7),y()()),n&2){let t=e.$implicit,o=m(2);p(2),H(" ",t.label," "),p(2),H("\xB7 ",t.wireType),p(),P(t.hidden?5:-1),p(2),re(t.cachedValue===void 0?"\u2014":o.formatValue(t.cachedValue))}}function EM(n,e){n&1&&(v(0,"p",7),C(1," This node has no output ports. "),y())}function PM(n,e){if(n&1&&(v(0,"div",0)(1,"div")(2,"h2",2),C(3),y(),v(4,"p",3),C(5),y()(),E(6,yM,1,1),Do(7,"async"),v(8,"div",4)(9,"span",5),C(10," Inputs "),y(),Q(11,CM,8,4,"div",6,By,!1,_M,2,0,"p",7),y(),v(14,"div",4)(15,"span",5),C(16," Outputs (cached) "),y(),Q(17,SM,8,4,"div",6,By,!1,EM,2,0,"p",7),y()()),n&2){let t,o=e,i=m();p(3),H(" ",o.ui.label??o.definition.displayName," "),p(2),Ei(" ",o.type," \xB7 ",o.id," "),p(),P((t=Mo(7,6,i.panelRows$))?6:-1,t),p(5),J(i.inputRows()),p(6),J(i.outputRows())}}function IM(n,e){n&1&&(v(0,"p",1),C(1," Select a node on the canvas to inspect its details. "),y())}var DM="Wire tool-registration nodes to enable toggles",MM="Add skills under .langflower/skills/<id>/SKILL.md",TM="Configure providers in .langflower/langflower.jsonc",kM="Declare MCP servers under mcp.servers in .langflower/langflower.jsonc",RM="Select a provider",gh=n=>typeof n=="string"&&n.trim().length>0?n:void 0,NM=n=>Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.models])),OM=(n,e)=>{let t=e[n];if(t!==void 0)return g({loading:!1},t.error!==void 0?{error:t.error}:{})},$y=(n,e,t,o,i,r)=>{if(n.optionsSource==="node.wiredTools")return o!==null&&i!==null?Ul(o,i):[];if(n.optionsSource==="langflower.models"){let s=gh(n.dependsOn!==void 0?t[n.dependsOn]:void 0),a=s!==void 0?e.provider?.[s]?.models:void 0,d=s!==void 0?r[s]:void 0;return $l(a,d)}return Wl(e,n,t)},AM=(n,e,t,o,i,r)=>{let s=$y(n,e,t,o,i,r);switch(n.type){case"string":case"url":case"file-path":case"phase":case"llm-message":return"text";case"number":return zy(n);case"boolean":return"boolean";case"select":return{type:"select",options:Fy(n,s)};case"tool-id-list":return{type:"multiselect",options:s};default:return"text-multiline"}},LM=n=>n.dynamic===!0?"dynamic":String(n.wireType??"any"),FM=n=>n.fromInput!==void 0?`from(${n.fromInput})`:String(n.wireType),zM=n=>n.uiSchema,BM=(n,e,t,o)=>{let i=NM(o);return zM(n.definition).filter(r=>r.placement!=="inline").map(r=>{let s=$y(r,e,n.params,t,n.id,i),a=s.map(S=>String(S.value)),d=n.params[r.field]??r.default,l=r.optionsSource==="node.wiredTools"?Vl(d,a):r.optionsSource==="langflower.mcpServers"?Array.isArray(d)?d.map(String):[]:d,c=r.optionsSource==="langflower.models"?gh(n.params.providerId):void 0,u=r.optionsSource==="langflower.models"?c===void 0?{disabled:!1,emptyHint:RM}:Ly(s.length,OM(c,o)):void 0,w=s.length===0?r.optionsSource==="node.wiredTools"?DM:r.optionsSource==="langflower.mcpServers"?kM:r.optionsSource==="langflower.skills"?MM:r.optionsSource==="langflower.providers"?TM:void 0:void 0;return g({field:r.field,label:r.label??r.field,config:AM(r,e,n.params,t,n.id,i),value:l},u!==void 0?g(g({disabled:u.disabled},u.fieldError!==void 0?{fieldError:u.fieldError}:{}),u.emptyHint!==void 0?{emptyHint:u.emptyHint}:{}):w!==void 0?{emptyHint:w}:{})})},Xa=class n{constructor(){this.bridge=h(de);this.execution=h(Te);this.configProjection=h(Fn);this.modelsCatalogProjection=h(Vo);this.selection=h(zn);this.selectedNode=this.selection.selectedNode;this.langflowerConfig=this.configProjection.config;this.activeGraph=this.execution.activeGraph;this.panelRows$=Ne({catalogs:this.modelsCatalogProjection.catalogs$,node:this.selection.selectedNode$,config:this.configProjection.config$,graph:Xe(this.activeGraph)}).pipe(N(({catalogs:e,node:t,config:o,graph:i})=>t===null?[]:BM(t,o,i,e)));this.inputRows=b(()=>{let e=this.selectedNode();return e===null?[]:e.definition.inputsConfigs.filter(t=>typeof t.portId=="string").map(t=>{let o=t.portId,i=e.inputs[o]!==void 0?e.inputs[o]:t.defaultValue;return{portId:o,label:t.name??o,wireType:LM(t),hidden:t.hidden===!0,inline:t.multi===void 0?t.inline??null:null,value:i}})});this.outputRows=b(()=>{let e=this.selectedNode();return e===null?[]:e.definition.outputsConfigs.filter(t=>t!==void 0&&typeof t.portId=="string").map(t=>{let o=t.portId;return{portId:o,label:t.name??o,wireType:FM(t),hidden:t.hidden===!0,cachedValue:this.execution.latestOutputValue(e.id,o)}})});this.formatValue=yo;fe(()=>{let e=this.selectedNode(),t=this.langflowerConfig();if(e===null||gh(e.params.providerId)!==void 0)return;let o=Object.keys(t.provider??{});if(o.length!==1)return;let i=o[0];i!==void 0&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:e.id,params:_(g({},e.params),{providerId:i})})}),fe(()=>{let e=this.selectedNode(),t=this.activeGraph();if(e===null||t===null)return;let o=e.params.enabledToolIds;if(!Array.isArray(o))return;let i=Ls(t,e.id).map(s=>String(s.value)),r=jl(o,i);r!==o&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:e.id,params:_(g({},e.params),{enabledToolIds:r})})})}onFieldChange(e,t){let o=this.selectedNode();if(o===null)return;let i=e==="rolePreset"?Ry(o.params,ky(t)):_(g({},o.params),{[e]:t});this.bridge.raw["editor.updateNode.requested"].next({nodeId:o.id,params:i})}onInputChange(e,t){let o=this.selectedNode();o!==null&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:o.id,inputs:_(g({},o.inputs),{[e]:t})})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-inspector-panel"]],decls:2,vars:1,consts:[[1,"flex","flex-col","gap-4"],[1,"mt-2","text-xs","leading-5","text-zinc-500","dark:text-zinc-400"],[1,"text-sm","font-semibold","text-zinc-900","dark:text-zinc-100"],[1,"mt-0.5","text-[10px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-1.5"],[1,"text-[10px]","font-semibold","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-1"],[1,"text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-2"],[1,"text-[10px]","font-medium","text-zinc-600","dark:text-zinc-300"],[3,"valueChange","config","value","disabled"],[1,"text-[10px]","text-rose-600","dark:text-rose-400"],[1,"text-[10px]","text-zinc-500","dark:text-zinc-400"],[1,"text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"text-zinc-400","dark:text-zinc-500"],[3,"config","value"],[1,"lf-scroll","max-h-48","overflow-y-auto","whitespace-pre-wrap","break-words","rounded-md","border","border-zinc-200","bg-zinc-50","p-1.5","text-[11px]","leading-4","text-zinc-600","dark:border-zinc-800","dark:bg-zinc-950","dark:text-zinc-400"],[3,"valueChange","config","value"]],template:function(t,o){if(t&1&&E(0,PM,20,8,"div",0)(1,IM,2,0,"p",1),t&2){let i;P((i=o.selectedNode())?0:1,i)}},dependencies:[Gn,Kn],encapsulation:2})}};var $M=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),HM=n=>{let e=n.options;return $M(e)&&typeof e.baseURL=="string"?e.baseURL:""},UM=n=>n.hasApiKey===!0,Dr=n=>{let e=Object.entries(n.provider??{}).map(([t,o])=>({id:t,name:o.name,baseURL:HM(o),modelsText:(o.models??[]).join(", "),apiKey:"",hasApiKey:UM(o)}));return{model:n.model??"",providers:e}},VM=n=>n.split(",").map(e=>e.trim()).filter(e=>e.length>0),Hy=(n,e)=>{let t=Object.fromEntries(e.providers.filter(r=>r.apiKey.trim().length>0).map(r=>[r.id.trim(),r.apiKey.trim()])),o=Object.fromEntries(e.providers.filter(r=>r.id.trim().length>0).map(r=>{let s=VM(r.modelsText),a=r.baseURL.trim();return[r.id.trim(),g(g({name:r.name.trim()||r.id.trim()},s.length>0?{models:s}:{}),a.length>0?{options:{baseURL:a}}:{})]})),i=e.model.trim();return _(g({scope:n},i.length>0?{model:i}:{}),{provider:o,providerApiKeys:t})},Qa=(n,e)=>JSON.stringify(n)===JSON.stringify(e),Uy=(n,e,t)=>{if(Qa(n,e))return t;let o=_(g({},n),{providers:n.providers.map(i=>{let r=t.providers.find(s=>s.id===i.id);return _(g({},i),{apiKey:"",hasApiKey:r?.hasApiKey??!1})})});return Qa(o,t)?t:o};function jM(n,e){if(n&1&&(U(0,"p",6),C(1," Global file: "),U(2,"span",22),C(3),B()()),n&2){let t=m();p(3),re(t.globalPath()||"\u2026")}}function WM(n,e){n&1&&(U(0,"p",7),C(1),B()),n&2&&(p(),H(" ",e," "))}function GM(n,e){if(n&1){let t=j();U(0,"div",16)(1,"div",23)(2,"span",24),C(3),B(),U(4,"button",25),Ee("click",function(){let i=M(t).$index,r=m();return T(r.removeProvider(i))}),C(5," Remove "),B()(),U(6,"label",10)(7,"span",26),C(8,"Id"),B(),U(9,"input",27),Ee("input",function(i){let r=M(t).$index,s=m();return T(s.patchProvider(r,{id:s.readInput(i)}))}),B()(),U(10,"label",10)(11,"span",26),C(12,"Name"),B(),U(13,"input",27),Ee("input",function(i){let r=M(t).$index,s=m();return T(s.patchProvider(r,{name:s.readInput(i)}))}),B()(),U(14,"label",10)(15,"span",26),C(16,"Base URL"),B(),U(17,"input",28),Ee("input",function(i){let r=M(t).$index,s=m();return T(s.patchProvider(r,{baseURL:s.readInput(i)}))}),B()(),U(18,"label",10)(19,"span",26),C(20,"Models (comma-separated)"),B(),U(21,"input",27),Ee("input",function(i){let r=M(t).$index,s=m();return T(s.patchProvider(r,{modelsText:s.readInput(i)}))}),B()(),U(22,"label",10)(23,"span",26),C(24,"API key"),B(),U(25,"input",29),Ee("input",function(i){let r=M(t).$index,s=m();return T(s.patchProvider(r,{apiKey:s.readInput(i)}))}),B()()()}if(n&2){let t=e.$implicit,o=e.$index;p(3),H(" Provider ",o+1," "),p(6),Ce("value",t.id),p(4),Ce("value",t.name),p(4),Ce("value",t.baseURL),p(4),Ce("value",t.modelsText),p(4),Ce("placeholder",t.hasApiKey?"Saved \u2014 enter new value to replace":"Prefer {env:VAR_NAME}")("value",t.apiKey)}}function qM(n,e){n&1&&(U(0,"p",17),C(1," No providers in this scope yet. "),B())}function YM(n,e){if(n&1&&(U(0,"p",33),C(1),B()),n&2){let t=m(2);q("text-rose-600",t.bootstrapMessageIsError())("dark:text-rose-400",t.bootstrapMessageIsError())("text-zinc-600",!t.bootstrapMessageIsError())("dark:text-zinc-300",!t.bootstrapMessageIsError()),p(),H(" ",e," ")}}function ZM(n,e){if(n&1){let t=j();U(0,"div",18)(1,"span",11),C(2," Project seed "),B(),U(3,"p",30),C(4," Re-copy packaged skeleton templates (workflows, skills, my-nodes, instructions). Does not change langflower.jsonc providers or MCP. "),B(),U(5,"button",31),Ee("click",function(){M(t);let i=m();return T(i.bootstrap())}),C(6),B(),E(7,YM,2,9,"p",32),B()}if(n&2){let t,o=m();p(5),Ce("disabled",o.bootstrapPending()),p(),H(" ",o.bootstrapPending()?"Bootstrapping\u2026":"Bootstrap"," "),p(),P((t=o.bootstrapMessage())?7:-1,t)}}var Ja=class n{constructor(){this.bridge=h(de);this.configProjection=h(Fn);this.closeRequested=mn();this.scope=$("project");this.draft=$(Dr({}));this.baseline=$(Dr({}));this.validationError=$(null);this.bootstrapPending=$(!1);this.bootstrapMessage=$(null);this.bootstrapMessageIsError=$(!1);this.globalPath=b(()=>this.configProjection.layers().globalPath);this.isDirty=b(()=>!Qa(this.draft(),this.baseline()));this.readInput=e=>{let t=e.target;return t instanceof HTMLInputElement?t.value:""};fe(()=>{let e=this.configProjection.layers(),o=this.scope()==="project"?e.projectConfig:e.globalConfig,i=Dr(o);Ie(()=>{let r=this.draft(),s=this.baseline();this.baseline.set(i),this.draft.set(Uy(r,s,i))})})}setScope(e){if(e===this.scope()||this.isDirty()&&!window.confirm("Discard unsaved settings changes for this scope?"))return;this.scope.set(e),this.validationError.set(null);let t=this.configProjection.layers(),o=e==="project"?t.projectConfig:t.globalConfig,i=Dr(o);this.baseline.set(i),this.draft.set(i)}patchDraft(e){this.draft.update(t=>g(g({},t),e)),this.validationError.set(null)}patchProvider(e,t){this.draft.update(o=>_(g({},o),{providers:o.providers.map((i,r)=>r===e?g(g({},i),t):i)})),this.validationError.set(null)}addProvider(){this.draft.update(e=>_(g({},e),{providers:[...e.providers,{id:"",name:"",baseURL:"",modelsText:"",apiKey:"",hasApiKey:!1}]}))}removeProvider(e){this.draft.update(t=>_(g({},t),{providers:t.providers.filter((o,i)=>i!==e)}))}discard(){this.draft.set(this.baseline()),this.validationError.set(null)}save(){let e=this.draft(),t=e.providers.map(i=>i.id.trim());if(t.some(i=>i.length===0)){this.validationError.set("Each provider needs a non-empty id.");return}if(new Set(t).size!==t.length){this.validationError.set("Provider ids must be unique.");return}let o=Hy(this.scope(),e);this.bridge.raw["langflower.config.save.requested"].next(o),this.validationError.set(null)}bootstrap(){return D(this,null,function*(){if(this.scope()!=="project"||this.bootstrapPending()||!window.confirm(["Restore skeleton templates into this project?","","This overwrites packaged workflows, skills, my-nodes, and instructions.","langflower.jsonc (providers / MCP) is not changed.","Stop any active run first."].join(`
309
- `)))return;this.bootstrapPending.set(!0),this.bootstrapMessage.set(null),this.bootstrapMessageIsError.set(!1);let t=Qh(this.bridge.raw["project.bootstrap.result"].pipe(Jt(1)));this.bridge.raw["project.bootstrap.requested"].next({});try{let o=yield t;o.ok?(this.bootstrapMessage.set("Skeleton templates restored."),this.bootstrapMessageIsError.set(!1)):(this.bootstrapMessage.set(o.message),this.bootstrapMessageIsError.set(!0))}catch(o){this.bootstrapMessage.set("Bootstrap failed \u2014 no response from server."),this.bootstrapMessageIsError.set(!0)}finally{this.bootstrapPending.set(!1)}})}onClose(){this.isDirty()&&!window.confirm("Discard unsaved settings changes?")||this.closeRequested.emit()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-settings-panel"]],outputs:{closeRequested:"closeRequested"},decls:34,vars:29,consts:[[1,"flex","h-full","min-h-0","flex-col","gap-3"],[1,"flex","shrink-0","items-center","justify-between","gap-2"],[1,"text-sm","font-semibold","tracking-tight","text-zinc-900","dark:text-zinc-100"],["type","button","aria-label","Close settings",1,"rounded-md","border","border-zinc-200","px-2","py-1","text-[11px]","font-medium","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],["role","tablist","aria-label","Settings scope",1,"flex","shrink-0","gap-1","rounded-md","border","border-zinc-200","p-0.5","dark:border-zinc-700"],["type","button","role","tab",1,"flex-1","rounded","px-2","py-1","text-[11px]","font-medium","transition",3,"click"],[1,"shrink-0","break-all","text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],[1,"shrink-0","text-[11px]","leading-4","text-rose-600","dark:text-rose-400"],[1,"lf-scroll","min-h-0","flex-1","overflow-y-auto"],[1,"flex","flex-col","gap-4","pr-1"],[1,"flex","flex-col","gap-1"],[1,"text-[10px]","font-semibold","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],["type","text","placeholder","provider/model-id",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1.5","text-sm","text-zinc-900","outline-none","ring-zinc-400/20","focus:ring-2","dark:border-zinc-700","dark:bg-zinc-950","dark:text-zinc-100",3,"input","value"],[1,"flex","flex-col","gap-2"],[1,"flex","items-center","justify-between","gap-2"],["type","button",1,"rounded-md","border","border-zinc-200","px-2","py-0.5","text-[11px]","font-medium","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],[1,"flex","flex-col","gap-2","rounded-md","border","border-zinc-200","p-2","dark:border-zinc-700"],[1,"text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-2","border-t","border-zinc-200","pt-3","dark:border-zinc-800"],[1,"flex","shrink-0","items-center","justify-end","gap-2","border-t","border-zinc-200","pt-3","dark:border-zinc-800"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1.5","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-100","disabled:opacity-50","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],["type","button",1,"rounded-md","bg-zinc-900","px-3","py-1.5","text-xs","font-medium","text-white","transition","hover:bg-zinc-800","disabled:opacity-50","dark:bg-zinc-100","dark:text-zinc-900","dark:hover:bg-white",3,"click","disabled"],[1,"font-mono","text-zinc-700","dark:text-zinc-300"],[1,"flex","items-start","justify-between","gap-2"],[1,"text-[11px]","font-medium","text-zinc-700","dark:text-zinc-300"],["type","button",1,"text-[11px]","text-rose-600","hover:underline","dark:text-rose-400",3,"click"],[1,"text-[10px]","text-zinc-500","dark:text-zinc-400"],["type","text",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-sm","dark:border-zinc-700","dark:bg-zinc-950",3,"input","value"],["type","url",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-sm","dark:border-zinc-700","dark:bg-zinc-950",3,"input","value"],["type","password","autocomplete","off",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-sm","dark:border-zinc-700","dark:bg-zinc-950",3,"input","placeholder","value"],[1,"text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],["type","button",1,"self-start","rounded-md","border","border-zinc-200","px-3","py-1.5","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-100","disabled:opacity-50","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],[1,"text-[11px]","leading-4",3,"text-rose-600","dark:text-rose-400","text-zinc-600","dark:text-zinc-300"],[1,"text-[11px]","leading-4"]],template:function(t,o){if(t&1&&(U(0,"div",0)(1,"div",1)(2,"h2",2),C(3," Settings "),B(),U(4,"button",3),Ee("click",function(){return o.onClose()}),C(5," Close "),B()(),U(6,"div",4)(7,"button",5),Ee("click",function(){return o.setScope("project")}),C(8," Project "),B(),U(9,"button",5),Ee("click",function(){return o.setScope("global")}),C(10," Global "),B()(),E(11,jM,4,1,"p",6),E(12,WM,2,1,"p",7),U(13,"div",8)(14,"div",9)(15,"label",10)(16,"span",11),C(17," Default chat model "),B(),U(18,"input",12),Ee("input",function(r){return o.patchDraft({model:o.readInput(r)})}),B()(),U(19,"div",13)(20,"div",14)(21,"span",11),C(22," Providers "),B(),U(23,"button",15),Ee("click",function(){return o.addProvider()}),C(24," Add "),B()(),Q(25,GM,26,7,"div",16,en,!1,qM,2,0,"p",17),B(),E(28,ZM,8,3,"div",18),B()(),U(29,"div",19)(30,"button",20),Ee("click",function(){return o.discard()}),C(31," Discard "),B(),U(32,"button",21),Ee("click",function(){return o.save()}),C(33," Save "),B()()()),t&2){let i;p(7),q("bg-zinc-900",o.scope()==="project")("text-white",o.scope()==="project")("text-zinc-600",o.scope()!=="project")("dark:bg-zinc-100",o.scope()==="project")("dark:text-zinc-900",o.scope()==="project"),K("aria-selected",o.scope()==="project"),p(2),q("bg-zinc-900",o.scope()==="global")("text-white",o.scope()==="global")("text-zinc-600",o.scope()!=="global")("dark:bg-zinc-100",o.scope()==="global")("dark:text-zinc-900",o.scope()==="global"),K("aria-selected",o.scope()==="global"),p(2),P(o.scope()==="global"?11:-1),p(),P((i=o.validationError())?12:-1,i),p(6),Ce("value",o.draft().model),p(7),J(o.draft().providers),p(3),P(o.scope()==="project"?28:-1),p(2),Ce("disabled",!o.isDirty()),p(2),Ce("disabled",!o.isDirty())}},encapsulation:2})}};var KM={reasoning:"Reasoning",draft:"Draft",tool:"Tool",shell:"Shell",result:"Response",recovery:"Recovery"},XM=new Set(["preview","prompt"]),$t=n=>xt(n)==="recovery"?n.chunks.map(e=>{let t=zp(e.value);return t.length>0?t:yo(e.value)}).join(`
310
- `):n.chunks.map(e=>yo(e.value)).join(`
311
- `),QM=n=>{let e=n.split(/\r?\n/);return([...e].reverse().find(o=>o.trim().length>0)??e[e.length-1]??"").replace(/\s+/g," ").trim()},jy=n=>QM($t(n)),Wy=n=>n.status==="active",Gy=n=>{let e=xt(n);return n.status!=="active"&&(e==="reasoning"||e==="draft")},mh=n=>{let e=xt(n),t=e!==void 0?KM[e]:void 0;return t!==void 0?t:n.portId.trim().length>0?n.portId:"output"},ed=n=>n.portId==="permission.ask",Mr=n=>xt(n)==="result",JM=n=>xt(n)==="none",eT=n=>XM.has(n),tT=(n,e)=>{let t=$t(n);return e.some(o=>o.nodeId===n.nodeId&&o.runId===n.runId&&o.text===t)},nT=(n,e)=>Mr(n)||ed(n)||Op(xt(n))?!1:e.some(o=>o.nodeId===n.nodeId&&o.runId===n.runId&&o.portId===n.portId)?!0:tT(n,e),oT=(n,e)=>{let t=$t(n).trim();if(t.length===0)return!1;let o=e.findIndex(r=>r.id===n.id);return(o===-1?e:e.slice(0,o)).some(r=>Mr(r)&&$t(r).trim()===t)},td=(n,e)=>Mr(n)||ed(n)||Op(xt(n))||!(xt(n)==="none"||eT(n.portId))?!1:oT(n,e),qy=(n,e)=>!(JM(n)||Mr(n)||ed(n)||nT(n,e)),iT=(n,e,t)=>{let o=[...e].reverse().find(d=>!td(d,t));if(o===void 0)return n;let i=mh(o),r=$t(o),a=(r.length>120?`${r.slice(0,117).trimEnd()}\u2026`:r).replace(/\s+/g," ").trim();return a.length===0?`${n} \xB7 ${i}`:`${n} \xB7 ${i}: ${a}`},rT=(n,e)=>[...n].reverse().find(t=>!td(t,e)),sT=(n,e,t)=>{if(t)return[...n].reverse().find(r=>xt(r)==="reasoning"&&!td(r,e));let o=rT(n,e);if(!(o!==void 0&&xt(o)==="recovery"))return o},aT=n=>{let e=[];for(let t of n){let o=xt(t);if(o==="draft")e.push({kind:"draft",id:t.id,text:$t(t),streaming:t.status==="active"});else if(o==="tool"||o==="shell")e.push({kind:"tool",id:t.id,text:$t(t),label:o==="shell"?"Shell":"Tool"});else if(o==="recovery"){let i=t.chunks[t.chunks.length-1]?.value,r=br(i)?i.code:"unknown";e.push({kind:"recovery",id:t.id,text:$t(t),label:r==="suspended"?"Paused for Steer":r==="retry"?"Retrying\u2026":"Recovery",code:r})}}return e},dT=n=>n.some(t=>t.status==="active")?"active":n[n.length-1]?.status??"completed",Yy=n=>n.portId===Ze,lT=(n,e,t,o)=>{let i=n.slice(e),r=i.findIndex(a=>a.atSectionCount>t),s=r===-1?i:i.slice(0,r);return{rows:s.filter(a=>Yy(a)||!o.has(a.nodeId)).map(a=>({kind:"user",id:a.id,nodeId:a.nodeId,nodeLabel:a.nodeLabel,text:a.text})),nextIdx:e+s.length}},cT=(n,e,t)=>{let o=new Set(e.map(i=>i.id));return n.filter(i=>i.nodeId===t&&!Yy(i)&&i.anchorSectionId!==void 0&&o.has(i.anchorSectionId)).map(i=>({kind:"user",id:i.id,nodeId:i.nodeId,nodeLabel:i.nodeLabel,text:i.text}))},uT=(n,e,t)=>{let o=n.sections.filter(l=>qy(l,e)),i=n.sections.filter(Mr),r=n.sections.filter(ed),s=i.length>0,a=i.map(l=>({kind:"result",id:l.id,nodeId:l.nodeId,nodeLabel:l.nodeLabel,text:$t(l),status:l.status})),d=r.map(l=>({kind:"permission",id:l.id,nodeId:l.nodeId,nodeLabel:l.nodeLabel,text:$t(l).replace(/^permission\.ask:\s*/i,"")}));if(o.length>0){let l=cT(e,n.sections,n.nodeId),c=aT(n.sections),u=!s&&(l.length>0||o.some(w=>td(w,t)));return[{kind:"technical",id:`tech:${o[0].id}`,nodeId:n.nodeId,nodeLabel:n.nodeLabel,status:dT([...o,...i]),sections:o,lastPortLine:iT(n.nodeLabel,o,t),userReplies:l,peekSection:s||u?void 0:sT(o,t,c.some(w=>w.kind==="draft")),results:a,segments:c,hitlLayout:u},...d]}return[...d,...a]},fh=(n,e,t)=>n.pending===null?n:_(g({},n),{rows:[...n.rows,...uT(n.pending,e,t)],pending:null}),Vy=(n,e,t,o,i)=>{let{rows:r,nextIdx:s}=lT(t,n.userIdx,e,o);if(r.length===0)return _(g({},n),{userIdx:s});let a=fh(n,t,i);return _(g({},a),{rows:[...a.rows,...r],userIdx:s})},Zy=(n,e)=>{let t=new Set(n.filter(r=>qy(r,e)).map(r=>r.nodeId)),o=n.reduce((r,s)=>{let a=Vy(r,r.sectionIndex,e,t,n),d=a.pending!==null&&a.pending.nodeId!==s.nodeId?fh(a,e,n):a,l=d.pending===null?{nodeId:s.nodeId,nodeLabel:s.nodeLabel,sections:[s]}:_(g({},d.pending),{sections:[...d.pending.sections,s]});return _(g({},d),{pending:l,sectionIndex:d.sectionIndex+1})},{rows:[],pending:null,sectionIndex:0,userIdx:0}),i=Vy(o,o.sectionIndex,e,t,n);return fh(i,e,n).rows},Ky=n=>{let e=[];for(let t of n){let o=e[e.length-1];if(o!==void 0&&o.nodeId===t.nodeId){e[e.length-1]=_(g({},o),{rows:[...o.rows,t]});continue}e.push({id:`${t.nodeId}:${t.id}`,nodeId:t.nodeId,rows:[t]})}return e};var pT=["*"];function hT(n,e){if(n&1&&(U(0,"span",1),C(1),B()),n&2){let t=m();q("bottom-full",t.side()==="top")("mb-2",t.side()==="top")("top-full",t.side()==="bottom")("mt-2",t.side()==="bottom")("right-full",t.side()==="left")("mr-2",t.side()==="left")("left-full",t.side()==="right")("ml-2",t.side()==="right")("right-0",t.isVerticalSide()&&t.align()==="end")("left-0",t.isVerticalSide()&&t.align()==="start")("left-1/2",t.isVerticalSide()&&t.align()==="center")("-translate-x-1/2",t.isVerticalSide()&&t.align()==="center")("top-0",t.isHorizontalSide()&&t.align()==="start")("bottom-0",t.isHorizontalSide()&&t.align()==="end")("top-1/2",t.isHorizontalSide()&&t.align()==="center")("-translate-y-1/2",t.isHorizontalSide()&&t.align()==="center"),p(),H(" ",t.tip()," ")}}var tt=class n{constructor(){this.tip=I.required();this.align=I("end");this.side=I("top")}isVerticalSide(){let e=this.side();return e==="top"||e==="bottom"}isHorizontalSide(){let e=this.side();return e==="left"||e==="right"}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-hover-tip"]],hostAttrs:[1,"group","relative","inline-flex","max-w-full"],inputs:{tip:[1,"tip"],align:[1,"align"],side:[1,"side"]},ngContentSelectors:pT,decls:2,vars:1,consts:[["role","tooltip",1,"pointer-events-none","absolute","z-20","hidden","whitespace-nowrap","rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-xs","font-medium","text-zinc-700","shadow-sm","group-hover:block","group-focus-within:block","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100",3,"bottom-full","mb-2","top-full","mt-2","right-full","mr-2","left-full","ml-2","right-0","left-0","left-1/2","-translate-x-1/2","top-0","bottom-0","top-1/2","-translate-y-1/2"],["role","tooltip",1,"pointer-events-none","absolute","z-20","hidden","whitespace-nowrap","rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-xs","font-medium","text-zinc-700","shadow-sm","group-hover:block","group-focus-within:block","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100"]],template:function(t,o){t&1&&(Ye(),je(0),E(1,hT,2,33,"span",0)),t&2&&(p(),P(o.tip().trim().length>0?1:-1))},encapsulation:2})}};var gT=["scrollRef"],fT=["streamPane"],mi=(n,e)=>e.id,mT=(n,e)=>e.portId;function yT(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",5)(1,"button",8),O("click",function(){M(t);let i=m();return T(i.clearFeed())}),C(2," Clear "),y()()}if(n&2){let t=m();A("tip",t.sections().length===0&&t.userTurns().length===0?"Nothing to clear":"Clear the work log"),p(),A("disabled",t.sections().length===0&&t.userTurns().length===0)}}function vT(n,e){n&1&&(v(0,"p",6),C(1," Run the workflow to see execution progress here. "),y())}function bT(n,e){if(n&1&&(v(0,"div",14)(1,"div",17)(2,"pre",18),C(3),y()()()),n&2){let t=m().$implicit;p(3),re(t.text)}}function wT(n,e){if(n&1&&(v(0,"div",15),z(1,"div",19),y()),n&2){let t=m().$implicit,o=m(3);p(),A("innerHTML",o.markdownHtml(t.text),kn)}}function CT(n,e){if(n&1&&(v(0,"div",15)(1,"p",20),C(2),y()()),n&2){let t=m().$implicit;p(2),H(" Permission: ",t.text," ")}}function _T(n,e){n&1&&(v(0,"span",23),C(1,"waiting\u2026"),y())}function xT(n,e){n&1&&(v(0,"span",36),C(1,"streaming\u2026"),y())}function ST(n,e){if(n&1&&(v(0,"div",32)(1,"div",35)(2,"span"),C(3,"draft"),y(),E(4,xT,2,0,"span",36),y(),v(5,"div",24),z(6,"div",37),y()()),n&2){let t=m().$implicit,o=m(5);p(4),P(t.streaming?4:-1),p(2),A("innerHTML",o.markdownHtml(t.text),kn)}}function ET(n,e){if(n&1&&(v(0,"details",33)(1,"summary",38),C(2),y(),v(3,"pre",39),C(4),y()()),n&2){let t=m().$implicit;p(2),H(" ",t.label," "),p(2),re(t.text)}}function PT(n,e){if(n&1&&(v(0,"div",34)(1,"div",40),C(2),y(),v(3,"pre",41),C(4),y()()),n&2){let t=m().$implicit;p(2),H(" ",t.label," "),p(2),re(t.text)}}function IT(n,e){if(n&1&&E(0,ST,7,2,"div",32)(1,ET,5,2,"details",33)(2,PT,5,2,"div",34),n&2){let t=e.$implicit,o=m(2).$implicit;P(t.kind==="draft"&&o.results.length===0?0:t.kind==="tool"?1:t.kind==="recovery"?2:-1)}}function DT(n,e){if(n&1&&(v(0,"div",24),z(1,"div",37),y()),n&2){let t=e.$implicit,o=m(5);p(),A("innerHTML",o.markdownHtml(t.text),kn)}}function MT(n,e){if(n&1&&(v(0,"div",25)(1,"div",42)(2,"pre",18),C(3),y()()()),n&2){let t=e.$implicit;p(3),re(t.text)}}function TT(n,e){n&1&&(v(0,"span",36),C(1,"streaming\u2026"),y())}function kT(n,e){if(n&1&&(v(0,"div",46,1)(2,"pre",18),C(3),y()()),n&2){let t=m(),o=m(2).$implicit,i=m(3);q("text-right",o.hitlLayout),p(3),re(i.sectionDisplayText(t))}}function RT(n,e){if(n&1&&(v(0,"p",47),C(1),y()),n&2){let t=m(),o=m(2).$implicit,i=m(3);q("text-right",o.hitlLayout)("text-left",!o.hitlLayout),p(),H(" ",i.sectionPeekOneLine(t)," ")}}function NT(n,e){if(n&1&&(v(0,"div",43)(1,"span"),C(2),y(),E(3,TT,2,0,"span",36),y(),E(4,kT,4,3,"div",44)(5,RT,2,5,"p",45)),n&2){let t=e,o=m(2).$implicit,i=m(3);q("justify-end",o.hitlLayout),p(2),re(i.sectionRoleLabel(t)),p(),P(i.isStreamingLinePreview(t)?3:-1),p(),P(i.isStreamingLinePreview(t)?4:5)}}function OT(n,e){if(n&1&&(v(0,"div",49)(1,"span",50),C(2),y(),v(3,"div",51)(4,"span",52),C(5),y()()()),n&2){let t=e.$implicit;p(2),H("",t.portId,":"),p(3),re(t.text)}}function AT(n,e){if(n&1&&(v(0,"div",29)(1,"span",48),C(2,"Inputs"),y(),Q(3,OT,6,2,"div",49,mT),y()),n&2){let t=m(2).$implicit,o=m(3);p(3),J(o.inputsFor(t.nodeId))}}function LT(n,e){if(n&1&&(v(0,"p",53),C(1),y()),n&2){let t=m().$implicit,o=m(5);p(),H(" ",o.sectionPeekOneLine(t)," ")}}function FT(n,e){if(n&1&&(v(0,"pre",54),C(1),y()),n&2){let t=m().$implicit,o=m(5);p(),re(o.sectionDisplayText(t))}}function zT(n,e){if(n&1&&(v(0,"div",30)(1,"span",48),C(2),y(),E(3,LT,2,1,"p",53)(4,FT,2,1,"pre",54),y()),n&2){let t=e.$implicit,o=m(5);p(2),re(o.sectionRoleLabel(t)),p(),P(o.isSettledStreamOneLine(t)?3:4)}}function BT(n,e){if(n&1&&(v(0,"p",31),C(1),y()),n&2){let t=m(2).$implicit,o=m(3);p(),H(" ",o.livenessHint(t)," ")}}function $T(n,e){if(n&1){let t=j();v(0,"div",21)(1,"div",22),C(2),E(3,_T,2,0,"span",23),y(),Q(4,IT,3,1,null,null,mi),Q(6,DT,2,1,"div",24,mi),Q(8,MT,4,1,"div",25,mi),E(10,NT,6,5),v(11,"details",26),O("toggle",function(i){M(t);let r=m().$implicit,s=m(3);return T(s.onTechnicalToggle(r,i))}),v(12,"summary",27),C(13," details "),y(),v(14,"div",28),E(15,AT,5,0,"div",29),Q(16,zT,5,2,"div",30,mi),y()(),E(18,BT,2,1,"p",31),y()}if(n&2){let t,o=m().$implicit,i=m(3);q("items-end",o.hitlLayout)("items-start",!o.hitlLayout),p(),q("text-right",o.hitlLayout)("text-left",!o.hitlLayout),p(),H(" ",o.nodeLabel," "),p(),P(o.status==="active"&&o.peekSection===void 0&&o.results.length===0&&o.segments.length===0?3:-1),p(),J(o.segments),p(2),J(o.results),p(2),J(o.userReplies),p(2),P((t=o.peekSection)?10:-1,t),p(),q("text-right",o.hitlLayout),K("open",i.isTechnicalExpanded(o)?"":null),p(4),P(i.inputsFor(o.nodeId).length>0?15:-1),p(),J(o.sections),p(2),P(o.status==="active"?18:-1)}}function HT(n,e){if(n&1&&E(0,bT,4,1,"div",14)(1,wT,2,1,"div",15)(2,CT,3,1,"div",15)(3,$T,19,16,"div",16),n&2){let t,o=e.$implicit;P((t=o.kind)==="user"?0:t==="result"?1:t==="permission"?2:t==="technical"?3:-1)}}function UT(n,e){if(n&1){let t=j();v(0,"div",13),O("mouseenter",function(){let i=M(t).$implicit,r=m(2);return T(r.hover.set(i.nodeId))})("mouseleave",function(){M(t);let i=m(2);return T(i.hover.clear())}),Q(1,HT,4,1,null,null,mi),y()}if(n&2){let t=e.$implicit,o=m(2);q("lf-feed-row--hovered",o.hover.isHovered(t.nodeId)),p(),J(t.rows)}}function VT(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",12)(1,"button",55),O("click",function(){M(t);let i=m(2);return T(i.scrollToBottom())}),C(2," \u2193 New events "),y()()}}function jT(n,e){if(n&1){let t=j();v(0,"div",7)(1,"div",9,0),O("scroll",function(){M(t);let i=m();return T(i.onScroll())}),v(3,"div",10),Q(4,UT,3,2,"div",11,mi),y()(),E(6,VT,3,0,"lf-hover-tip",12),y()}if(n&2){let t=m();p(4),J(t.rowGroups()),p(2),P(t.autoScroll()?-1:6)}}var nd=class n{constructor(){this.bridge=h(de);this.execution=h(Te);this.previewValues=h(di);this.hover=h(an);this.sections=this.execution.feedSections;this.userTurns=this.execution.feedUserTurns;this.isRunning=this.execution.isRunning;this.rows=b(()=>Zy(this.sections(),this.userTurns()));this.rowGroups=b(()=>Ky(this.rows()));this.sectionDisplayText=$t;this.sectionPeekOneLine=jy;this.isStreamingLinePreview=Wy;this.isSettledStreamOneLine=Gy;this.sectionRoleLabel=mh;this.scrollRef=st("scrollRef");this.streamPanes=_g("streamPane");this.autoScroll=$(!0);this.detailReopenOverride=$(new Map);fe(()=>{if(this.rows(),!this.autoScroll())return;let e=this.scrollRef()?.nativeElement;e!==void 0&&setTimeout(()=>{e.scrollTop=e.scrollHeight})}),fe(()=>{this.rows();let e=this.streamPanes();e.length!==0&&setTimeout(()=>{for(let t of e){let o=t.nativeElement;o.scrollTop=o.scrollHeight}})})}livenessHint(e){let t=this.execution.livenessNowMs();return w0(e,this.execution.lastActivityMs(e.nodeId),t)}markdownHtml(e){return gi(e)}isTechnicalExpanded(e){return this.detailReopenOverride().get(e.id)===!0}onTechnicalToggle(e,t){let o=t.target;o instanceof HTMLDetailsElement&&this.detailReopenOverride.update(i=>{let r=new Map(i);return o.open?r.set(e.id,!0):r.delete(e.id),r})}onScroll(){let e=this.scrollRef()?.nativeElement;if(e===void 0)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;this.autoScroll.set(t<=32)}scrollToBottom(){let e=this.scrollRef()?.nativeElement;e!==void 0&&(e.scrollTop=e.scrollHeight,this.autoScroll.set(!0))}inputsFor(e){return[...this.previewValues.entriesForNode(e)].map(([t,o])=>({portId:t,text:yo(o)}))}clearFeed(){this.bridge.raw["runner.executionFeed.clear.requested"].next({})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-work-log-panel"]],viewQuery:function(t,o){t&1&&ht(o.scrollRef,gT,5)(o.streamPanes,fT,5),t&2&&gt(2)},hostAttrs:[1,"block","h-full"],decls:7,vars:2,consts:[["scrollRef",""],["streamPane",""],[1,"flex","h-full","min-h-0","flex-col"],[1,"mb-2","flex","shrink-0","items-center","justify-between","gap-2"],[1,"text-[11px]","font-semibold","text-zinc-700","dark:text-zinc-200"],["side","left","align","center",3,"tip"],[1,"text-xs","leading-5","text-zinc-500","dark:text-zinc-400"],[1,"relative","min-h-0","flex-1"],["type","button",1,"rounded-md","px-2","py-1","text-[11px]","font-medium","text-zinc-500","transition","hover:bg-zinc-100","hover:text-zinc-700","disabled:opacity-40","dark:text-zinc-400","dark:hover:bg-zinc-800","dark:hover:text-zinc-200",3,"click","disabled"],[1,"lf-scroll","h-full","overflow-y-auto",3,"scroll"],[1,"flex","min-w-0","flex-col"],[1,"flex","min-w-0","flex-col",3,"lf-feed-row--hovered"],["tip","Jump to the latest events",1,"absolute","bottom-2","right-3"],[1,"flex","min-w-0","flex-col",3,"mouseenter","mouseleave"],[1,"flex","justify-end","px-2","py-1.5"],[1,"flex","justify-start","px-2","py-1.5"],[1,"flex","min-w-0","w-full","flex-col","gap-1","px-2","py-1.5","text-[11px]","text-zinc-500","dark:text-zinc-400",3,"items-end","items-start"],[1,"max-w-[92%]","rounded-2xl","rounded-br-md","border","border-zinc-300","bg-zinc-200","px-3","py-2","text-[12px]","leading-5","text-zinc-900","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100"],[1,"whitespace-pre-wrap","break-words","font-sans"],[1,"lf-feed-md","max-w-[92%]","rounded-2xl","rounded-bl-md","border","border-zinc-200","bg-white","px-3","py-2","text-[12px]","leading-5","text-zinc-800","dark:border-zinc-700","dark:bg-zinc-900","dark:text-zinc-100",3,"innerHTML"],[1,"max-w-[92%]","text-[11px]","leading-4","text-amber-700","dark:text-amber-300"],[1,"flex","min-w-0","w-full","flex-col","gap-1","px-2","py-1.5","text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"w-full","text-[11px]","font-medium","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"ml-1","text-[9px]","font-medium","normal-case","tracking-normal","text-amber-600","dark:text-amber-400"],[1,"flex","w-full","justify-start"],[1,"flex","w-full","justify-end"],[1,"lf-feed-technical","mt-0.5","min-w-0","w-full",3,"toggle"],[1,"min-w-0","cursor-pointer","select-none","list-none","overflow-hidden","text-[11px]","leading-4","text-zinc-400","dark:text-zinc-500","[&::-webkit-details-marker]:hidden"],[1,"mt-1.5","flex","min-w-0","flex-col","gap-2","pl-0.5","text-left"],[1,"flex","min-w-0","flex-col","gap-1"],[1,"flex","min-w-0","flex-col","gap-0.5"],[1,"mt-1","text-[9px]","leading-4","text-zinc-400","dark:text-zinc-500"],[1,"flex","w-full","flex-col","gap-0.5"],[1,"min-w-0","w-full","border-0","bg-transparent","text-left"],[1,"min-w-0","w-full","rounded-md","border","border-amber-300/80","bg-amber-50","px-2","py-1.5","text-left","dark:border-amber-700/60","dark:bg-amber-950/40"],[1,"flex","w-full","min-w-0","items-baseline","gap-1","text-[9px]","font-medium","uppercase","tracking-wide","text-zinc-400","dark:text-zinc-500"],[1,"normal-case","tracking-normal","text-amber-600","dark:text-amber-400"],[1,"lf-feed-md","max-w-[92%]","rounded-2xl","rounded-tl-md","border","border-zinc-200","bg-white","px-3","py-2","text-[12px]","leading-5","text-zinc-800","dark:border-zinc-600","dark:bg-zinc-950","dark:text-zinc-100",3,"innerHTML"],[1,"cursor-pointer","select-none","list-none","text-[11px]","leading-4","text-zinc-400","dark:text-zinc-500","[&::-webkit-details-marker]:hidden"],[1,"mt-0.5","whitespace-pre-wrap","break-words","font-sans","text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],[1,"text-[10px]","font-medium","uppercase","tracking-wide","text-amber-700","dark:text-amber-300"],[1,"mt-0.5","whitespace-pre-wrap","break-words","font-sans","text-[11px]","leading-4","text-amber-900","dark:text-amber-100"],[1,"max-w-[92%]","rounded-2xl","rounded-tr-md","border","border-zinc-300","bg-zinc-200","px-3","py-1.5","text-[12px]","leading-5","text-zinc-900","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100"],[1,"mt-0.5","flex","w-full","min-w-0","items-baseline","gap-1","text-[9px]","font-medium","uppercase","tracking-wide","text-zinc-400","dark:text-zinc-500"],[1,"h-[4lh]","min-w-0","w-full","overflow-x-hidden","overflow-y-auto","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300",3,"text-right"],[1,"min-w-0","w-full","overflow-hidden","text-ellipsis","whitespace-nowrap","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300",3,"text-right","text-left"],[1,"h-[4lh]","min-w-0","w-full","overflow-x-hidden","overflow-y-auto","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"min-w-0","w-full","overflow-hidden","text-ellipsis","whitespace-nowrap","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"text-[9px]","font-medium","uppercase","tracking-wide","text-zinc-400","dark:text-zinc-500"],[1,"flex","min-w-0","gap-1","text-[10px]"],[1,"shrink-0","font-medium"],[1,"flex","min-w-0","flex-1","justify-end","overflow-hidden"],[1,"whitespace-nowrap","text-zinc-600","dark:text-zinc-300"],[1,"min-w-0","overflow-hidden","text-ellipsis","whitespace-nowrap","text-left","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"min-w-0","whitespace-pre-wrap","break-words","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],["type","button",1,"rounded-full","border","border-zinc-200","bg-white","px-2.5","py-1","text-[10px]","font-medium","text-zinc-700","shadow-sm","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:bg-zinc-900","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"]],template:function(t,o){t&1&&(v(0,"div",2)(1,"div",3)(2,"span",4),C(3,"Work log"),y(),E(4,yT,3,2,"lf-hover-tip",5),y(),E(5,vT,2,0,"p",6)(6,jT,7,1,"div",7),y()),t&2&&(p(4),P(o.isRunning()?-1:4),p(),P(o.rows().length===0?5:6))},dependencies:[tt],encapsulation:2})}};var Xy=n=>{let e=n.replace(/[/\\]+$/,"");if(e.length===0)return n;let t=e.split(/[/\\]/);return t[t.length-1]??e};function WT(n,e){if(n&1&&(U(0,"span",0),C(1),B()),n&2){let t=e;Ce("title",t.fullPath),K("aria-label","Project directory: "+t.fullPath),p(),H(" ",t.folderName," ")}}var od=class n{constructor(){this.bridge=h(de);this.view$=this.bridge.cached["toolConfig.snapshot"].pipe(N(e=>({folderName:Xy(e.config.projectDir),fullPath:e.config.projectDir})))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-project-dir"]],decls:2,vars:3,consts:[[1,"max-w-48","truncate","rounded-full","border","border-zinc-200","px-3","py-1","text-xs","text-zinc-600","dark:border-zinc-700","dark:text-zinc-300",3,"title"]],template:function(t,o){if(t&1&&(E(0,WT,2,3,"span",0),Do(1,"async")),t&2){let i;P((i=Mo(1,1,o.view$))?0:-1,i)}},dependencies:[Kn],encapsulation:2})}};var id={workflows:[],activeWorkflow:null,currentStatus:"pristine"};function Qy(n,e){return _(g({},n),{workflows:e})}function Jy(n,e){return _(g({},n),{activeWorkflow:e.activeWorkflow,currentStatus:e.currentStatus.status})}function ev(n,e){return _(g({},n),{currentStatus:e})}var GT=["renameInput"],qT=(n,e)=>e.workflowId;function YT(n,e){if(n&1){let t=j();v(0,"input",12,0),O("input",function(i){M(t);let r=m();return T(r.renameDraft.set(i.target.value))})("keydown.enter",function(){M(t);let i=m();return T(i.commitRename())})("keydown.escape",function(){M(t);let i=m();return T(i.cancelRename())})("blur",function(){M(t);let i=m();return T(i.commitRename())}),y()}if(n&2){let t=m();A("value",t.renameDraft())}}function ZT(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",7)(1,"button",13),O("click",function(){M(t);let i=m();return T(i.startRename())}),C(2),y()()}if(n&2){let t=m();A("tip",t.activeWorkflowName()===null?"Load or create a workflow first":"Rename workflow"),p(),A("disabled",t.activeWorkflowName()===null),p(),H(" ",t.activeWorkflowName()??"No workflow loaded"," ")}}function KT(n,e){n&1&&z(0,"div",15)}function XT(n,e){if(n&1){let t=j();v(0,"div",18)(1,"button",19),O("click",function(){let i=M(t).$implicit,r=m(2);return T(r.loadWorkflow(i.workflowId))}),v(2,"span",20),C(3),y(),v(4,"span",21),C(5),y()(),v(6,"lf-hover-tip",22)(7,"button",23),O("click",function(i){let r=M(t).$implicit,s=m(2);return T(s.copyWorkflow(r.workflowId,i))}),C(8," Copy "),y()()()}if(n&2){let t=e.$implicit,o=m(2);q("bg-zinc-100",t.workflowId===o.activeWorkflowId())("dark:bg-zinc-800",t.workflowId===o.activeWorkflowId()),K("aria-selected",t.workflowId===o.activeWorkflowId()),p(3),H(" ",t.name," "),p(2),H(" ",t.workflowId," ")}}function QT(n,e){n&1&&(v(0,"p",17),C(1," No workflows available "),y())}function JT(n,e){if(n&1){let t=j();v(0,"div",10)(1,"button",14),O("click",function(){M(t);let i=m();return T(i.createWorkflow())}),C(2," New "),y(),E(3,KT,1,0,"div",15),Q(4,XT,9,7,"div",16,qT,!1,QT,2,0,"p",17),y()}if(n&2){let t=m();p(3),P(t.workflows().length>0?3:-1),p(),J(t.workflows())}}function ek(n,e){if(n&1){let t=j();v(0,"div",11)(1,"h2",24),C(2," Delete workflow? "),y(),v(3,"p",25),C(4," This removes "),v(5,"strong"),C(6),y(),C(7," from disk. "),y(),v(8,"div",26)(9,"button",27),O("click",function(){M(t);let i=m();return T(i.cancelDelete())}),C(10," Cancel "),y(),v(11,"button",28),O("click",function(){M(t);let i=m();return T(i.confirmDelete())}),C(12," Delete "),y()()()}if(n&2){let t=m();p(6),re(t.activeWorkflowName())}}var rd=class n{constructor(){this.bridge=h(de);this.renameInput=st("renameInput");this.isDropdownOpen=$(!1);this.isRenaming=$(!1);this.renameDraft=$("");this.showDeleteConfirm=$(!1);this.topbarState=se(ce(this.bridge.cached["workflow.list.snapshot"].pipe(N(e=>({kind:"list",workflows:e.workflows}))),this.bridge.cached["workflow.current.snapshot"].pipe(N(e=>({kind:"current",snapshot:e}))),this.bridge.cached["workflow.currentStatus.snapshot"].pipe(N(e=>({kind:"status",status:e.status})))).pipe(We((e,t)=>{switch(t.kind){case"list":return Qy(e,t.workflows);case"current":return Jy(e,t.snapshot);case"status":return ev(e,t.status);default:return e}},id),ae(id)),{initialValue:id});this.workflows=b(()=>this.topbarState().workflows);this.activeWorkflowName=b(()=>this.topbarState().activeWorkflow?.metadata.name??null);this.activeWorkflowId=b(()=>this.topbarState().activeWorkflow?.workflowId??null);this.isDirty=b(()=>this.topbarState().currentStatus==="dirty");this.canSave=b(()=>this.topbarState().activeWorkflow!==null&&this.topbarState().currentStatus==="dirty");this.canDelete=b(()=>this.topbarState().activeWorkflow!==null);this.saveTip=b(()=>this.topbarState().activeWorkflow===null?"Load or create a workflow first":this.canSave()?"Save the active workflow":"No unsaved changes")}toggleDropdown(){this.isDropdownOpen.update(e=>!e),this.showDeleteConfirm.set(!1)}loadWorkflow(e){this.bridge.raw["workflow.load.requested"].next({workflowId:e}),this.isDropdownOpen.set(!1)}createWorkflow(){this.bridge.raw["workflow.create.requested"].next({}),this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1)}copyWorkflow(e,t){t.stopPropagation(),this.bridge.raw["workflow.copy.requested"].next({workflowId:e}),this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1)}saveCurrent(){this.bridge.raw["workflow.saveCurrent.requested"].next({}),this.showDeleteConfirm.set(!1)}startRename(){let e=this.activeWorkflowName();e!==null&&(this.renameDraft.set(e),this.isRenaming.set(!0),this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1),queueMicrotask(()=>{let t=this.renameInput()?.nativeElement;t!==void 0&&(t.focus(),t.select())}))}commitRename(){if(!this.isRenaming())return;let e=this.renameDraft().trim(),t=this.activeWorkflowName();this.isRenaming.set(!1),!(e.length===0||t===null||e===t)&&this.bridge.raw["workflow.renameCurrent.requested"].next({name:e})}cancelRename(){this.isRenaming.set(!1)}requestDelete(){this.canDelete()&&(this.showDeleteConfirm.set(!0),this.isDropdownOpen.set(!1))}cancelDelete(){this.showDeleteConfirm.set(!1)}confirmDelete(){let e=this.activeWorkflowId();e!==null&&(this.bridge.raw["workflow.delete.requested"].next({workflowId:e}),this.showDeleteConfirm.set(!1))}handleEscape(){this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1),this.cancelRename()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-workflow-topbar"]],viewQuery:function(t,o){t&1&&ht(o.renameInput,GT,5),t&2&&gt()},hostBindings:function(t,o){t&1&&O("keydown.escape",function(){return o.handleEscape()},kt)},decls:15,vars:28,consts:[["renameInput",""],[1,"relative","flex","min-w-0","items-center","gap-2"],["tip","Show workflows","align","center","side","bottom"],["type","button","aria-label","Show workflows",1,"rounded-md","border","border-zinc-200","p-1","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.24a.75.75 0 0 1-1.06 0L5.21 8.29a.75.75 0 0 1 .02-1.08Z"],["type","text","aria-label","Rename workflow",1,"min-w-0","rounded-md","border","border-zinc-400","bg-white","px-2","py-1","text-sm","text-zinc-950","outline-none","ring-2","ring-zinc-400/20","dark:border-zinc-500","dark:bg-zinc-950","dark:text-zinc-100",3,"value"],["align","center","side","bottom",3,"tip"],["type","button",1,"rounded-md","border","px-3","py-1","text-xs","font-medium","transition","disabled:opacity-50",3,"click","disabled"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1","text-xs","font-medium","text-rose-700","transition","hover:bg-rose-50","disabled:opacity-50","dark:border-zinc-700","dark:text-rose-300","dark:hover:bg-rose-950/30",3,"click","disabled"],["role","listbox","aria-label","Workflows",1,"lf-scroll","absolute","left-0","top-full","z-20","mt-2","max-h-72","w-80","overflow-auto","rounded-lg","border","border-zinc-200","bg-white","py-1","shadow-lg","dark:border-zinc-700","dark:bg-zinc-900"],["role","alertdialog","aria-labelledby","delete-workflow-title","aria-describedby","delete-workflow-desc",1,"absolute","right-0","top-full","z-20","mt-2","w-72","rounded-lg","border","border-zinc-200","bg-white","p-4","shadow-lg","dark:border-zinc-700","dark:bg-zinc-900"],["type","text","aria-label","Rename workflow",1,"min-w-0","rounded-md","border","border-zinc-400","bg-white","px-2","py-1","text-sm","text-zinc-950","outline-none","ring-2","ring-zinc-400/20","dark:border-zinc-500","dark:bg-zinc-950","dark:text-zinc-100",3,"input","keydown.enter","keydown.escape","blur","value"],["type","button",1,"truncate","rounded-md","px-2","py-1","text-sm","font-medium","text-zinc-900","transition","hover:bg-zinc-100","disabled:opacity-50","dark:text-zinc-100","dark:hover:bg-zinc-800",3,"click","disabled"],["type","button","role","option",1,"flex","w-full","items-center","px-3","py-2","text-left","text-sm","font-medium","text-zinc-900","transition","hover:bg-zinc-100","dark:text-zinc-100","dark:hover:bg-zinc-800",3,"click"],["role","separator",1,"my-1","border-t","border-zinc-200","dark:border-zinc-700"],["role","option",1,"flex","items-stretch","gap-1","px-1","py-0.5",3,"bg-zinc-100","dark:bg-zinc-800"],[1,"px-3","py-2","text-xs","text-zinc-500","dark:text-zinc-400"],["role","option",1,"flex","items-stretch","gap-1","px-1","py-0.5"],["type","button",1,"flex","min-w-0","flex-1","flex-col","items-start","rounded-md","px-2","py-2","text-left","text-sm","transition","hover:bg-zinc-100","dark:hover:bg-zinc-800",3,"click"],[1,"truncate","font-medium","text-zinc-900","dark:text-zinc-100"],[1,"truncate","text-xs","text-zinc-500","dark:text-zinc-400"],["tip","Copy this workflow","align","center","side","bottom"],["type","button","aria-label","Copy workflow",1,"shrink-0","self-center","rounded-md","border","border-zinc-200","px-2","py-1","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-50","dark:border-zinc-600","dark:text-zinc-200","dark:hover:bg-zinc-700",3,"click"],["id","delete-workflow-title",1,"text-sm","font-semibold","text-zinc-900","dark:text-zinc-100"],["id","delete-workflow-desc",1,"mt-2","text-xs","leading-5","text-zinc-500","dark:text-zinc-400"],[1,"mt-4","flex","justify-end","gap-2"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"],["type","button",1,"rounded-md","border","border-rose-300","bg-rose-50","px-3","py-1","text-xs","font-medium","text-rose-700","transition","hover:bg-rose-100","dark:border-rose-800","dark:bg-rose-950/40","dark:text-rose-300","dark:hover:bg-rose-950/60",3,"click"]],template:function(t,o){t&1&&(v(0,"div",1)(1,"lf-hover-tip",2)(2,"button",3),O("click",function(){return o.toggleDropdown()}),ge(),v(3,"svg",4),z(4,"path",5),y()()(),E(5,YT,2,1,"input",6)(6,ZT,3,3,"lf-hover-tip",7),Wr(),v(7,"lf-hover-tip",7)(8,"button",8),O("click",function(){return o.saveCurrent()}),C(9," Save "),y()(),v(10,"lf-hover-tip",7)(11,"button",9),O("click",function(){return o.requestDelete()}),C(12," Delete "),y()(),E(13,JT,7,2,"div",10),E(14,ek,13,1,"div",11),y()),t&2&&(p(2),K("aria-expanded",o.isDropdownOpen()),p(3),P(o.isRenaming()?5:6),p(2),A("tip",o.saveTip()),p(),q("border-zinc-400",o.isDirty())("bg-zinc-50",o.isDirty())("text-zinc-700",o.isDirty())("dark:border-zinc-500",o.isDirty())("dark:bg-zinc-950/40",o.isDirty())("dark:text-zinc-300",o.isDirty())("border-zinc-200",!o.isDirty())("text-zinc-700",!o.isDirty())("dark:border-zinc-700",!o.isDirty())("dark:text-zinc-200",!o.isDirty()),A("disabled",!o.canSave()),p(2),A("tip",o.canDelete()?"Delete this workflow from disk":"No workflow loaded"),p(),A("disabled",!o.canDelete()),p(2),P(o.isDropdownOpen()?13:-1),p(),P(o.showDeleteConfirm()?14:-1))},dependencies:[tt],encapsulation:2})}};var sd=(n,e)=>{if(n.config.kind==="button")return{ok:!0,payload:n.config.payload};if(n.config.kind==="textarea"){let t=e.trim();return t.length===0?{ok:!1}:{ok:!0,payload:t}}return{ok:!1}};var tk=(n,e)=>e.nodeId+":"+e.portId;function nk(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",1)(1,"button",2),O("click",function(){M(t);let i=m(2).$implicit,r=m();return T(r.submitEntry(i))}),ge(),v(2,"svg",3),z(3,"path",4),y()()()}if(n&2){let t=m(2).$implicit,o=m();A("tip",o.canSubmitStart(t)?"Start the chat run":"Type a message to start"),p(),q("hover:bg-emerald-100",o.canSubmitStart(t))("dark:hover:bg-emerald-950/60",o.canSubmitStart(t))("opacity-50",!o.canSubmitStart(t)),K("aria-disabled",o.canSubmitStart(t)?null:"true")}}function ok(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",1)(1,"button",5),O("click",function(){M(t);let i=m(2).$implicit,r=m();return T(r.submitEntry(i))}),C(2),y()()}if(n&2){let t=m(2).$implicit,o=m();A("tip",o.draftOf(t).trim().length>0?"":"Type a message first"),p(),A("disabled",o.draftOf(t).trim().length===0),p(),H(" ",t.config.submitLabel??"Send"," ")}}function ik(n,e){if(n&1&&E(0,nk,4,8,"lf-hover-tip",1)(1,ok,3,3,"lf-hover-tip",1),n&2){let t=m().$implicit;P(t.config.role==="chat-start"?0:1)}}function rk(n,e){if(n&1){let t=j();v(0,"button",6),O("click",function(){M(t);let i=m().$implicit,r=m();return T(r.submitEntry(i))}),C(1),y()}if(n&2){let t=m().$implicit;p(),H(" ",t.config.label," ")}}function sk(n,e){if(n&1&&E(0,ik,2,1)(1,rk,2,1,"button",0),n&2){let t,o=e.$implicit;P((t=o.config.kind)==="textarea"?0:t==="button"?1:-1)}}var ad=class n{constructor(){this.entries=[];this.submitted=new we;this.execution=h(Te)}draftOf(e){return this.execution.hitlDraft(e.nodeId,e.portId)}canSubmitStart(e){return this.draftOf(e).trim().length>0}submitEntry(e){let t=sd(e,this.draftOf(e));t.ok&&this.submitted.emit([e.nodeId,e.portId,t.payload])}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-hitl-actions"]],inputs:{entries:"entries"},outputs:{submitted:"submitted"},decls:2,vars:0,consts:[["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800"],[3,"tip"],["type","button","aria-label","Start",1,"lf-composer-icon-btn","border","border-emerald-400","bg-emerald-50","text-emerald-700","dark:border-emerald-500","dark:bg-emerald-950/40","dark:text-emerald-300",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M6.3 2.84A1.5 1.5 0 0 0 4 4.11v11.78a1.5 1.5 0 0 0 2.3 1.27l9.34-5.89a1.5 1.5 0 0 0 0-2.54L6.3 2.84Z"],["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","disabled:opacity-50","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"]],template:function(t,o){t&1&&Q(0,sk,2,1,null,null,tk),t&2&&J(o.entries)},dependencies:[tt],encapsulation:2})}};function ak(n,e){if(n&1){let t=j();U(0,"div",1),Ee("mouseenter",function(){M(t);let i=m();return T(i.onPointerEnter())})("mouseleave",function(){M(t);let i=m();return T(i.onPointerLeave())}),U(1,"textarea",2),Ee("input",function(i){M(t);let r=m();return T(r.onDraft(i))})("keydown",function(i){M(t);let r=m();return T(r.onKeydown(i))})("keyup",function(i){M(t);let r=m();return T(r.onKeyup(i))})("focus",function(){M(t);let i=m();return T(i.onFocus())})("blur",function(){M(t);let i=m();return T(i.onBlur())}),B()()}if(n&2){let t=m();p(),q("pt-11",t.padTopForTabs)("pt-3",!t.padTopForTabs),Ce("id",bg("hitl-",t.nodeId,"-",t.portId))("placeholder",t.config.placeholder??"")("value",t.execution.hitlDraft(t.nodeId,t.portId)),K("aria-label",t.config.title)}}var dd=class n{constructor(){this.padTopForTabs=!1;this.enterActivate=new we;this.execution=h(Te);this.hover=h(an);this.pointerInside=!1;this.focused=!1}onDraft(e){this.execution.setHitlDraft(this.nodeId,this.portId,e.target.value)}onKeydown(e){e.key!=="Enter"||e.shiftKey||e.isComposing||e.altKey||e.ctrlKey||e.metaKey||e.preventDefault()}onKeyup(e){e.key!=="Enter"||e.shiftKey||e.isComposing||e.altKey||e.ctrlKey||e.metaKey||(e.preventDefault(),this.enterActivate.emit())}onPointerEnter(){this.pointerInside=!0,this.hover.set(this.nodeId)}onPointerLeave(){this.pointerInside=!1,this.focused||this.hover.clear()}onFocus(){this.focused=!0,this.hover.set(this.nodeId)}onBlur(){this.focused=!1,this.pointerInside||this.hover.clear()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-hitl-textarea"]],hostAttrs:[1,"block","h-full","w-full"],inputs:{nodeId:"nodeId",portId:"portId",config:"config",padTopForTabs:"padTopForTabs"},outputs:{enterActivate:"enterActivate"},decls:1,vars:1,consts:[[1,"h-full","w-full"],[1,"h-full","w-full",3,"mouseenter","mouseleave"],[1,"lf-scroll","h-full","w-full","resize-none","border-0","bg-transparent","px-3","pb-14","text-xs","leading-5","text-zinc-900","focus:outline-none","dark:text-zinc-100",3,"input","keydown","keyup","focus","blur","id","placeholder","value"]],template:function(t,o){if(t&1&&E(0,ak,2,10,"div",0),t&2){let i;P((i=o.config.kind)==="textarea"?0:-1)}},encapsulation:2})}};var tv=n=>n.hasPermissionAsk?"permission":n.isRunning&&n.hitlTabCount===0?"working":n.hitlTabCount>0||n.isRunning?"hitl":"idleRun";var dk=(n,e)=>e.runId;function lk(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",4)(1,"button",5),O("click",function(){let i=M(t),r=m(2);return T(r.discard(i))}),C(2," Discard "),y()()}}function ck(n,e){if(n&1&&(v(0,"div",2)(1,"p",3),C(2),y(),E(3,lk,3,0,"lf-hover-tip",4),y()),n&2){let t,o=e,i=m();q("w-full",!i.compact),p(2),Ei(" Resume failed (",o.code,"): ",o.message," "),p(),P((t=o.runId)?3:-1,t)}}function uk(n,e){n&1&&C(0," \xB7 stale ")}function pk(n,e){n&1&&C(0," \xB7 corrupt ")}function hk(n,e){if(n&1){let t=j();v(0,"button",21),O("click",function(){M(t);let i=m().$implicit,r=m(3);return T(r.continueFrom(i.runId))}),C(1," Continue "),y()}}function gk(n,e){if(n&1){let t=j();v(0,"li",13)(1,"div",14)(2,"div",15)(3,"p",16),C(4),y(),v(5,"p",17),C(6),E(7,uk,1,0),E(8,pk,1,0),y()(),v(9,"div",18),E(10,hk,2,0,"button",19),v(11,"button",20),O("click",function(){let i=M(t).$implicit,r=m(3);return T(r.discard(i.runId))}),C(12," Discard "),y()()()()}if(n&2){let t=e.$implicit,o=m(3);q("bg-rose-50",t.corrupt===!0||t.stale===!0)("dark:bg-rose-950/30",t.corrupt===!0||t.stale===!0),p(4),H(" ",o.titleFor(t)," "),p(2),Ei(" ",o.formatTime(t.updatedAt)," \xB7 ",t.status," "),p(),P(t.stale===!0?7:-1),p(),P(t.corrupt===!0?8:-1),p(2),P(o.canResumeEntry(t)&&!o.isRunning()?10:-1)}}function fk(n,e){if(n&1&&(v(0,"ul",11),Q(1,gk,13,10,"li",12,dk),y()),n&2){let t=m(2);p(),J(t.checkpoints())}}function mk(n,e){if(n&1){let t=j();v(0,"div",6)(1,"button",7),O("click",function(){M(t);let i=m();return T(i.togglePicker())}),v(2,"span",8),C(3," Continue from\u2026 "),v(4,"span",9),C(5),y()(),v(6,"span",10),C(7),y()(),E(8,fk,3,0,"ul",11),y()}if(n&2){let t=m();q("w-full",!t.compact),p(),K("aria-expanded",t.pickerOpen()),p(4),H(" (",t.resumableCount(),") "),p(2),H(" ",t.pickerOpen()?"\u25B4":"\u25BE"," "),p(),P(t.pickerOpen()?8:-1)}}var yk=n=>{let e=new Date(n);return Number.isNaN(e.getTime())?n:e.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})},vk=n=>n.label!==void 0&&n.label.length>0?n.label:`Checkpoint \xB7 ${n.completedNodeIds.length} stage(s)`,ld=class n{constructor(){this.compact=!1;this.bridge=h(de);this.execution=h(Te);this.isRunning=this.execution.isRunning;this.pickerOpen=$(!1);this.uiState=se(ce(this.bridge.cached["runner.checkpoints.snapshot"].pipe(N(e=>({type:"snapshot",checkpoints:e.checkpoints}))),this.bridge.raw["runner.resume.failed"].pipe(N(e=>({type:"error",error:e}))),this.bridge.raw["runner.resume.started"].pipe(N(()=>({type:"clearError"}))),this.bridge.raw["runner.started"].pipe(N(()=>({type:"clearError"})))).pipe(We((e,t)=>{switch(t.type){case"snapshot":return{checkpoints:t.checkpoints,resumeError:null};case"error":return{checkpoints:e.checkpoints,resumeError:t.error};case"clearError":return{checkpoints:e.checkpoints,resumeError:null}}},{checkpoints:[],resumeError:null}),ae({checkpoints:[],resumeError:null})),{initialValue:{checkpoints:[],resumeError:null}});this.resumeError=b(()=>this.uiState().resumeError);this.checkpoints=b(()=>this.uiState().checkpoints);this.hasCheckpoints=b(()=>this.checkpoints().length>0&&!this.isRunning());this.resumableCount=b(()=>this.checkpoints().length)}togglePicker(){this.pickerOpen.update(e=>!e)}titleFor(e){return vk(e)}formatTime(e){return yk(e)}canResumeEntry(e){return e.corrupt!==!0&&e.stale!==!0&&e.completedNodeIds.length>0&&(e.status==="stopped"||e.status==="failed"||e.status==="running")}continueFrom(e){this.pickerOpen.set(!1),this.bridge.raw["runner.resume.requested"].next({runId:e})}discard(e){this.bridge.raw["runner.checkpoint.discard.requested"].next({runId:e})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-continue-button"]],inputs:{compact:"compact"},decls:2,vars:1,consts:[[1,"flex","min-w-0","flex-col","gap-1",3,"w-full"],[1,"flex","min-w-0","flex-col","gap-1.5",3,"w-full"],[1,"flex","min-w-0","flex-col","gap-1"],[1,"lf-text-caption","text-rose-700","dark:text-rose-300"],["tip","Discard the failed checkpoint"],["type","button",1,"lf-btn","lf-btn--ghost","rounded-md","border","border-rose-300","px-2","py-1","text-rose-700","hover:bg-rose-50","dark:border-rose-700","dark:text-rose-300","dark:hover:bg-rose-950/40",3,"click"],[1,"flex","min-w-0","flex-col","gap-1.5"],["type","button",1,"lf-btn","lf-btn--ghost","flex","w-full","items-center","justify-between","gap-2","rounded-md","border","border-sky-400","bg-sky-50","px-3","py-1.5","text-sky-700","transition","hover:bg-sky-100","dark:border-sky-500","dark:bg-sky-950/40","dark:text-sky-300","dark:hover:bg-sky-950/60",3,"click"],[1,"lf-text-caption","font-medium"],[1,"opacity-70"],["aria-hidden","true",1,"lf-text-caption","opacity-60"],["role","listbox","aria-label","Resumable checkpoints",1,"lf-scroll","flex","max-h-48","flex-col","gap-1","overflow-y-auto","rounded-md","border","border-zinc-200","bg-white","p-1","dark:border-zinc-700","dark:bg-zinc-900"],[1,"flex","min-w-0","flex-col","gap-1","rounded","px-2","py-1.5",3,"bg-rose-50","dark:bg-rose-950/30"],[1,"flex","min-w-0","flex-col","gap-1","rounded","px-2","py-1.5"],[1,"flex","min-w-0","items-start","justify-between","gap-2"],[1,"min-w-0","flex-1"],[1,"lf-text-caption","truncate","font-medium","text-zinc-800","dark:text-zinc-100"],[1,"lf-text-caption","truncate","text-zinc-500","dark:text-zinc-400"],[1,"flex","shrink-0","gap-1"],["type","button",1,"lf-btn","lf-btn--ghost","rounded","border","border-sky-400","px-2","py-0.5","text-sky-700","dark:border-sky-500","dark:text-sky-300"],["type","button",1,"lf-btn","lf-btn--ghost","rounded","border","border-zinc-300","px-2","py-0.5","text-zinc-600","dark:border-zinc-600","dark:text-zinc-300",3,"click"],["type","button",1,"lf-btn","lf-btn--ghost","rounded","border","border-sky-400","px-2","py-0.5","text-sky-700","dark:border-sky-500","dark:text-sky-300",3,"click"]],template:function(t,o){if(t&1&&E(0,ck,4,5,"div",0)(1,mk,9,6,"div",1),t&2){let i;P((i=o.resumeError())?0:o.hasCheckpoints()?1:-1,i)}},dependencies:[tt],encapsulation:2})}};function bk(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",0)(1,"button",1),O("click",function(){M(t);let i=m();return T(i.onPause())}),ge(),v(2,"svg",2),z(3,"path",3),y()()()}if(n&2){let t=m();A("tip",t.pauseTip()),p(),A("disabled",!t.canPause())}}var cd=class n{constructor(){this.execution=h(Te);this.visible=b(()=>this.execution.isRunning()&&this.execution.pausableFeedNodeId()!==null);this.canPause=b(()=>this.execution.pausableFeedNodeId()!==null);this.pauseTip=b(()=>(this.execution.livenessNowMs(),this.execution.pausableFeedIsQuiet()?"API quiet \u2014 Pause to nudge":"Pause \u2014 soft interrupt"))}onPause(){this.execution.requestSoftPause()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-pause-button"]],decls:1,vars:1,consts:[["align","end",3,"tip"],["type","button","aria-label","Pause",1,"lf-composer-icon-btn","border","border-amber-400","bg-amber-50","text-amber-800","hover:bg-amber-100","disabled:opacity-50","dark:border-amber-500","dark:bg-amber-950/40","dark:text-amber-300","dark:hover:bg-amber-950/60",3,"click","disabled"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M5.75 3A1.75 1.75 0 0 0 4 4.75v10.5c0 .966.784 1.75 1.75 1.75h1.5A1.75 1.75 0 0 0 9 15.25V4.75A1.75 1.75 0 0 0 7.25 3h-1.5ZM12.75 3A1.75 1.75 0 0 0 11 4.75v10.5c0 .966.784 1.75 1.75 1.75h1.5A1.75 1.75 0 0 0 16 15.25V4.75A1.75 1.75 0 0 0 14.25 3h-1.5Z"]],template:function(t,o){t&1&&E(0,bk,4,2,"lf-hover-tip",0),t&2&&P(o.visible()?0:-1)},dependencies:[tt],encapsulation:2})}};function wk(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",0)(1,"button",2),O("click",function(){M(t);let i=m();return T(i.toggle())}),ge(),v(2,"svg",3),z(3,"path",4),y()()()}}function Ck(n,e){if(n&1){let t=j();v(0,"lf-hover-tip",1)(1,"button",5),O("click",function(){M(t);let i=m();return T(i.toggle())}),C(2),y()()}if(n&2){let t=m();A("tip",t.disabledTip()),p(),q("w-full",!t.compact)("shrink-0",t.compact),A("disabled",t.isDisabled()),p(),H(" ",t.buttonLabel()," ")}}var ud=class n{constructor(){this.compact=!1;this.bridge=h(de);this.execution=h(Te);this.selection=h(zn);this.selectedNodeId=this.selection.selectedNodeId;this.isRunning=this.execution.isRunning;this.isDisabled=b(()=>{if(this.isRunning())return!1;if(!this.execution.hasRunnableGraph())return!0;let e=this.selectedNodeId();return e!==null?this.execution.nodeClusterRequiresChatEntry(e):!this.execution.hasPlainStartTargets()});this.disabledTip=b(()=>{if(!this.isDisabled())return"";if(!this.execution.hasRunnableGraph())return"Load a workflow with nodes to run";let e=this.selectedNodeId();return e!==null&&this.execution.nodeClusterRequiresChatEntry(e)?"Start this cluster from the Chat Input composer":this.execution.hasPlainStartTargets()?"Cannot run right now":"This graph starts from Chat Input \u2014 use Start in the composer"});this.buttonLabel=b(()=>this.isRunning()?"Stop":this.selectedNodeId()!==null?"Run from node":"Run")}toggle(){if(this.isRunning()){this.bridge.raw["runner.interrupt.requested"].next("cancel");return}let e=this.selectedNodeId();if(e!==null){if(this.execution.nodeClusterRequiresChatEntry(e))return;this.bridge.raw["runner.startNode.requested"].next([e,void 0]);return}this.execution.hasPlainStartTargets()&&this.bridge.raw["runner.start.requested"].next([{},void 0])}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-run-button"]],inputs:{compact:"compact"},decls:2,vars:1,consts:[["tip","Stop \u2014 cancel run","align","start"],[3,"tip"],["type","button","aria-label","Stop",1,"lf-composer-icon-btn","border","border-rose-400","bg-rose-50","text-rose-800","hover:bg-rose-100","dark:border-rose-500","dark:bg-rose-950/40","dark:text-rose-300","dark:hover:bg-rose-950/60",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M5.25 3A2.25 2.25 0 0 0 3 5.25v9.5A2.25 2.25 0 0 0 5.25 17h9.5A2.25 2.25 0 0 0 17 14.75v-9.5A2.25 2.25 0 0 0 14.75 3h-9.5Z"],["type","button",1,"lf-composer-pill","border","border-emerald-400","bg-emerald-50","text-emerald-700","hover:bg-emerald-100","disabled:opacity-50","dark:border-emerald-500","dark:bg-emerald-950/40","dark:text-emerald-300","dark:hover:bg-emerald-950/60",3,"click","disabled"]],template:function(t,o){t&1&&E(0,wk,4,0,"lf-hover-tip",0)(1,Ck,3,7,"lf-hover-tip",1),t&2&&P(o.isRunning()?0:1)},dependencies:[tt],encapsulation:2})}};var _k=(n,e)=>e.nodeId;function xk(n,e){if(n&1&&(v(0,"div",1)(1,"p",7),C(2," permission.ask "),y(),v(3,"p",8),C(4),y(),v(5,"p",9),C(6),y()()),n&2){let t=e,o=m();p(4),H(" ",t.summary," "),p(2),H(" ",o.permissionAskMeta(t)," ")}}function Sk(n,e){n&1&&(v(0,"p",10),C(1," No pending human-in-the-loop steps. Chat Input and Review Gate replies appear here when the graph is waiting on you. "),y())}function Ek(n,e){if(n&1&&E(0,Sk,2,0,"p",10),n&2){let t=m();P(t.footerMode()!=="working"?0:-1)}}function Pk(n,e){if(n&1){let t=j();v(0,"button",14),O("click",function(){let i=M(t).$implicit,r=m(3);return T(r.selectHitlTab(i.nodeId))})("mouseenter",function(){let i=M(t).$implicit,r=m(3);return T(r.hover.set(i.nodeId))})("mouseleave",function(){M(t);let i=m(3);return T(i.hover.clear())}),C(1),y()}if(n&2){let t=e.$implicit,o=m(3);q("bg-zinc-900",t.nodeId===o.resolvedActiveHitlTab())("text-white",t.nodeId===o.resolvedActiveHitlTab())("text-zinc-600",t.nodeId!==o.resolvedActiveHitlTab())("hover:bg-zinc-100",t.nodeId!==o.resolvedActiveHitlTab())("ring-2",o.hover.isHovered(t.nodeId))("ring-violet-400",o.hover.isHovered(t.nodeId))("dark:text-zinc-300",t.nodeId!==o.resolvedActiveHitlTab())("dark:hover:bg-zinc-800",t.nodeId!==o.resolvedActiveHitlTab()),p(),H(" ",t.label," ")}}function Ik(n,e){if(n&1&&(v(0,"div",11),Q(1,Pk,2,17,"button",13,_k),y()),n&2){let t=m(2);p(),J(t.hitlTabs())}}function Dk(n,e){if(n&1){let t=j();v(0,"lf-hitl-textarea",15),O("enterActivate",function(){M(t);let i=m(2);return T(i.onEnterActivate())}),y()}if(n&2){let t=e,o=m(2);A("nodeId",t.nodeId)("portId",t.portId)("config",t.config)("padTopForTabs",o.showTabs())}}function Mk(n,e){if(n&1&&(E(0,Ik,3,0,"div",11),E(1,Dk,1,4,"lf-hitl-textarea",12)),n&2){let t,o=m();P(o.showTabs()?0:-1),p(),P((t=o.activeHitlTextarea())?1:-1,t)}}function Tk(n,e){n&1&&(v(0,"p",2),C(1," working . . . "),y())}function kk(n,e){if(n&1){let t=j();v(0,"div",16)(1,"lf-hover-tip",17)(2,"button",18),O("click",function(){let i=M(t),r=m(2);return T(r.onPermissionReply(i,"deny"))}),C(3," Deny "),y()(),v(4,"lf-hover-tip",19)(5,"button",20),O("click",function(){let i=M(t),r=m(2);return T(r.onPermissionReply(i,"allow"))}),C(6," Allow "),y()()()}}function Rk(n,e){if(n&1&&E(0,kk,7,0,"div",16),n&2){let t,o=m();P((t=o.activePermissionAsk())?0:-1,t)}}function Nk(n,e){n&1&&(v(0,"div",4),z(1,"lf-run-button",21)(2,"lf-pause-button"),y()),n&2&&(p(),A("compact",!0))}function Ok(n,e){n&1&&(v(0,"div",22),z(1,"lf-run-button",21)(2,"lf-pause-button"),y()),n&2&&(p(),A("compact",!0))}function Ak(n,e){if(n&1){let t=j();v(0,"lf-hitl-actions",26),O("submitted",function(i){M(t);let r=m(2);return T(r.onHitlSubmit(i))}),y()}if(n&2){let t=m(2);A("entries",t.hitlReplyActionsForActiveTab())}}function Lk(n,e){if(n&1){let t=j();v(0,"lf-hitl-actions",27),O("submitted",function(i){M(t);let r=m(2);return T(r.onHitlSubmit(i))}),y()}if(n&2){let t=m(2);A("entries",t.hitlStartActionForActiveTab())}}function Fk(n,e){if(n&1&&(v(0,"div",5),E(1,Ok,3,1,"div",22),v(2,"div",23),z(3,"lf-continue-button",21),E(4,Ak,1,1,"lf-hitl-actions",24),E(5,Lk,1,1,"lf-hitl-actions",25),y()()),n&2){let t=m();p(),P(t.execution.isRunning()?1:-1),p(2),A("compact",!0),p(),P(t.hitlReplyActionsForActiveTab().length>0?4:-1),p(),P(!t.execution.isRunning()&&t.hitlStartActionForActiveTab().length>0?5:-1)}}function zk(n,e){n&1&&(v(0,"div",6),z(1,"lf-continue-button")(2,"lf-run-button",28),y())}var pd=class n{constructor(){this.execution=h(Te);this.hover=h(an);this.activePermissionAsk=b(()=>this.execution.pendingPermissionAsks()[0]??null);this.hitlTabs=b(()=>this.execution.hitlTriggeredNodeIds().map(e=>{let t=this.execution.hitlControls(e);return{nodeId:e,label:this.execution.nodeLabel(e),textarea:t.find(o=>o.config.kind==="textarea")??null,actions:t}}));this.selectedHitlTab=$(null);this.resolvedActiveHitlTab=b(()=>{let e=this.hitlTabs();if(e.length===0)return null;let t=this.selectedHitlTab();return t!==null&&e.some(o=>o.nodeId===t)?t:e[0]?.nodeId??null});this.activeHitlTabEntry=b(()=>{let e=this.resolvedActiveHitlTab();return e===null?null:this.hitlTabs().find(t=>t.nodeId===e)??null});this.activeHitlTextarea=b(()=>this.activeHitlTabEntry()?.textarea??null);this.hitlReplyActionsForActiveTab=b(()=>(this.activeHitlTabEntry()?.actions??[]).filter(e=>!(e.config.kind==="textarea"&&e.config.role==="chat-start")));this.hitlStartActionForActiveTab=b(()=>(this.activeHitlTabEntry()?.actions??[]).filter(e=>e.config.kind==="textarea"&&e.config.role==="chat-start"));this.showTabs=b(()=>this.hitlTabs().length>1);this.footerMode=b(()=>tv({hasPermissionAsk:this.activePermissionAsk()!==null,isRunning:this.execution.isRunning(),hitlTabCount:this.hitlTabs().length}))}selectHitlTab(e){this.selectedHitlTab.set(e)}onHitlSubmit(e){this.execution.submitHitl(e)}onEnterActivate(){let t=[...this.hitlReplyActionsForActiveTab(),...this.execution.isRunning()?[]:this.hitlStartActionForActiveTab()].at(-1)??null;if(t===null)return;let o=this.execution.hitlDraft(t.nodeId,t.portId),i=sd(t,o);i.ok&&this.onHitlSubmit([t.nodeId,t.portId,i.payload])}onPermissionReply(e,t){this.execution.submitPermissionReply(e,t)}permissionAskMeta(e){let t=`${this.execution.nodeLabel(e.nodeId)} \xB7 ${e.toolId}`;return e.detail.length>0?`${t} \xB7 ${e.detail}`:t}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-composer-shell"]],hostAttrs:[1,"block","shrink-0"],inputs:{height:"height"},decls:10,vars:5,consts:[[1,"relative","overflow-hidden","border-t","border-zinc-200","bg-white","dark:border-zinc-800","dark:bg-zinc-900"],[1,"lf-scroll","absolute","inset-0","z-0","flex","flex-col","gap-2","overflow-y-auto","p-4","pb-14"],[1,"pointer-events-none","absolute","inset-0","z-[1]","flex","items-center","justify-center","px-3","text-xs","font-medium","tracking-wide","text-zinc-500","dark:text-zinc-400"],[1,"absolute","inset-x-0","bottom-0","z-[3]","flex","min-h-[calc(var(--lf-control-h)+1.1rem)]","items-center","bg-gradient-to-t","from-white","from-45%","to-transparent","px-3","py-2","dark:from-zinc-900"],[1,"flex","w-full","items-center","justify-between","gap-3"],[1,"flex","w-full","items-center","gap-2"],[1,"flex","w-full","flex-col","items-stretch","gap-2"],[1,"text-[11px]","font-medium","uppercase","tracking-wide","text-amber-700","dark:text-amber-300"],[1,"text-sm","leading-5","text-zinc-800","dark:text-zinc-100"],[1,"text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],[1,"absolute","inset-0","z-0","p-4","pb-14","text-[11px]","leading-4","text-zinc-400","dark:text-zinc-500"],[1,"lf-scroll","absolute","inset-x-0","top-0","z-[3]","flex","items-center","gap-1","overflow-x-auto","bg-gradient-to-b","from-white","from-40%","to-transparent","px-2","py-1.5","dark:from-zinc-900"],[1,"absolute","inset-0","z-0",3,"nodeId","portId","config","padTopForTabs"],["type","button",1,"rounded-md","px-2.5","py-1","text-[11px]","font-medium","transition",3,"bg-zinc-900","text-white","text-zinc-600","hover:bg-zinc-100","ring-2","ring-violet-400","dark:text-zinc-300","dark:hover:bg-zinc-800"],["type","button",1,"rounded-md","px-2.5","py-1","text-[11px]","font-medium","transition",3,"click","mouseenter","mouseleave"],[1,"absolute","inset-0","z-0",3,"enterActivate","nodeId","portId","config","padTopForTabs"],[1,"flex","w-full","items-center","justify-end","gap-2"],["tip","Deny this tool permission ask"],["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"],["tip","Allow this tool permission ask"],["type","button",1,"lf-composer-pill","border","border-zinc-900","bg-zinc-900","text-white","hover:bg-zinc-800","dark:border-zinc-100","dark:bg-zinc-100","dark:text-zinc-900","dark:hover:bg-zinc-200",3,"click"],[3,"compact"],[1,"mr-auto","flex","shrink-0","items-center","gap-2"],[1,"ml-auto","flex","min-w-0","flex-wrap","items-center","justify-end","gap-2"],[1,"flex","items-center","gap-2",3,"entries"],[1,"flex","items-center",3,"entries"],[1,"flex","items-center","gap-2",3,"submitted","entries"],[1,"flex","items-center",3,"submitted","entries"],[1,"w-full"]],template:function(t,o){if(t&1&&(v(0,"section",0),E(1,xk,7,2,"div",1)(2,Ek,1,1)(3,Mk,2,2),E(4,Tk,2,0,"p",2),v(5,"div",3),E(6,Rk,1,1)(7,Nk,3,1,"div",4)(8,Fk,6,4,"div",5)(9,zk,3,0,"div",6),y()()),t&2){let i,r;Ue("height",o.height,"px"),p(),P((i=o.activePermissionAsk())?1:o.hitlTabs().length===0?2:3,i),p(3),P(o.footerMode()==="working"?4:-1),p(2),P((r=o.footerMode())==="permission"?6:r==="working"?7:r==="hitl"?8:9)}},dependencies:[ud,cd,ld,dd,ad,tt],encapsulation:2})}};var Bk=4,yh=Bk*2,vh=64,nv=4,ov=80,qn=(n,e,t)=>Math.min(Math.max(n,e),t),hd=(n,e,t,o)=>{if(n==="left"){let r=Math.max(er,o.rowWidth-t.rightWidth-yh-vh);return qn(e,er,r)}if(n==="right"){let r=Math.max(tr,o.rowWidth-t.leftWidth-yh-vh);return qn(e,tr,r)}let i=Math.max(Uo,o.rightAsideHeight-ov-nv);return qn(e,Uo,i)},bh=(n,e)=>{let t=Math.max(0,e.rowWidth-yh-vh),o=qn(n.leftWidth,er,no),i=qn(n.rightWidth,tr,no);if(o+i>t&&(i=qn(t-o,0,no),o+i>t&&(o=qn(t-i,0,no)),o+i>t&&o+i>0)){let a=t/(o+i);o=Math.floor(o*a),i=Math.max(0,t-o)}let r=Math.max(Uo,e.rightAsideHeight-ov-nv),s=qn(n.composerHeight,Uo,Math.min(r,no));return{leftWidth:o,rightWidth:i,composerHeight:s}},iv=(n,e)=>n.leftWidth===e.leftWidth&&n.rightWidth===e.rightWidth&&n.composerHeight===e.composerHeight;var $k=["editorRow"],Hk=["rightAside"];function Uk(n,e){if(n&1){let t=j();v(0,"section",25)(1,"lf-settings-panel",29),O("closeRequested",function(){M(t);let i=m();return T(i.closeSettings())}),y()()}}function Vk(n,e){n&1&&(v(0,"section",25),z(1,"lf-inspector-panel"),y())}function jk(n,e){n&1&&(v(0,"section",26),z(1,"lf-work-log-panel"),y())}var gd=class n{constructor(){this.bridge=h(de);this.themeService=h(jo);this.destroyRef=h(qe);this.activeResize=$(null);this.editorRow=st("editorRow");this.rightAside=st("rightAside");this.layoutObserver=null;this.persistTimer=null;this.connectionStatus=se(this.bridge.raw.status$,{initialValue:"connecting"});this.theme=se(this.themeService.theme$,{initialValue:this.themeService.snapshot});this.themeButtonLabel=b(()=>this.theme()==="dark"?"Light":"Dark");this.leftWidth=$(Ji.leftWidth);this.rightWidth=$(Ji.rightWidth);this.composerHeight=$(Ji.composerHeight);this.selection=h(zn);this.hasSelectedNode=this.selection.hasSelectedNode;this.settingsOpen=$(!1);this.selectionIdWhenSettingsOpened=$(null);h(Fn),h(Vo),this.bridge.cached["session.state.snapshot"].pipe(nn(this.destroyRef)).subscribe(e=>{this.applyDividerPositions(e.dividerPositions)}),this.bridge.cached["editor.dividers.snapshot"].pipe(nn(this.destroyRef)).subscribe(e=>{this.applyDividerPositions(e)}),fe(()=>{let e=this.selection.selectedNode()?.id??null;if(!this.settingsOpen())return;let t=this.selectionIdWhenSettingsOpened();e!==null&&e!==t&&this.settingsOpen.set(!1)}),Rn(()=>{this.attachLayoutObserver(),this.reclampToViewport(!0)}),this.destroyRef.onDestroy(()=>{this.layoutObserver?.disconnect(),this.layoutObserver=null,this.persistTimer!==null&&(clearTimeout(this.persistTimer),this.persistTimer=null)})}toggleSettings(){if(this.settingsOpen()){this.closeSettings();return}this.selectionIdWhenSettingsOpened.set(this.selection.selectedNode()?.id??null),this.settingsOpen.set(!0)}closeSettings(){this.settingsOpen.set(!1)}toggleTheme(){this.themeService.toggleTheme()}startResize(e,t){e.preventDefault(),this.activeResize.set({target:t,startX:e.clientX,startY:e.clientY,startSize:this.currentSize(t)})}handlePointerMove(e){let t=this.activeResize();if(t===null)return;let o=this.currentDividerPositions(),i=this.readLayout();if(t.target==="left"){this.leftWidth.set(hd("left",t.startSize+e.clientX-t.startX,o,i));return}if(t.target==="right"){this.rightWidth.set(hd("right",t.startSize-e.clientX+t.startX,o,i));return}this.composerHeight.set(hd("composer",t.startSize-e.clientY+t.startY,o,i))}handlePointerUp(){let e=this.activeResize();this.activeResize.set(null),e!==null&&this.persistDividers()}currentSize(e){return e==="left"?this.leftWidth():e==="right"?this.rightWidth():this.composerHeight()}currentDividerPositions(){return{leftWidth:this.leftWidth(),rightWidth:this.rightWidth(),composerHeight:this.composerHeight()}}readLayout(){let e=this.editorRow()?.nativeElement,t=this.rightAside()?.nativeElement;return{rowWidth:e?.clientWidth??globalThis.innerWidth,rightAsideHeight:t?.clientHeight??Math.max(0,globalThis.innerHeight-48)}}applyDividerPositions(e){if(this.activeResize()!==null)return;let t=bh(e,this.readLayout());this.leftWidth.set(t.leftWidth),this.rightWidth.set(t.rightWidth),this.composerHeight.set(t.composerHeight)}reclampToViewport(e){if(this.activeResize()!==null)return;let t=this.currentDividerPositions(),o=bh(t,this.readLayout());iv(t,o)||(this.leftWidth.set(o.leftWidth),this.rightWidth.set(o.rightWidth),this.composerHeight.set(o.composerHeight),e&&this.schedulePersistDividers())}attachLayoutObserver(){let e=this.editorRow()?.nativeElement,t=this.rightAside()?.nativeElement;e===void 0||t===void 0||(this.layoutObserver?.disconnect(),this.layoutObserver=new ResizeObserver(()=>{this.reclampToViewport(!0)}),this.layoutObserver.observe(e),this.layoutObserver.observe(t))}schedulePersistDividers(){this.persistTimer!==null&&clearTimeout(this.persistTimer),this.persistTimer=setTimeout(()=>{this.persistTimer=null,this.persistDividers()},100)}persistDividers(){this.bridge.raw["editor.dividers.requested"].next(this.currentDividerPositions())}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-editor-shell"]],viewQuery:function(t,o){t&1&&ht(o.editorRow,$k,5)(o.rightAside,Hk,5),t&2&&gt(2)},hostBindings:function(t,o){t&1&&O("pointermove",function(r){return o.handlePointerMove(r)},kt)("pointerup",function(){return o.handlePointerUp()},kt)},decls:36,vars:20,consts:[["editorRow",""],["rightAside",""],[1,"flex","h-screen","flex-col","overflow-hidden","bg-zinc-50","text-zinc-950","dark:bg-zinc-950","dark:text-zinc-100"],[1,"flex","h-12","shrink-0","items-center","justify-between","border-b","border-zinc-200","bg-white","px-4","dark:border-zinc-800","dark:bg-zinc-900"],[1,"flex","min-w-0","flex-1","items-center","gap-4"],[1,"text-base","font-semibold","tracking-tight"],[1,"shrink-0"],[1,"min-w-0","flex-1"],[1,"flex","items-center","gap-3","text-xs"],[1,"flex","items-center","gap-2","rounded-full","border","border-zinc-200","px-3","py-1","text-zinc-600","dark:border-zinc-700","dark:text-zinc-300"],[1,"h-2","w-2","rounded-full"],["side","bottom",3,"tip"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1","font-medium","text-zinc-700","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"],["side","bottom","tip","Settings"],["type","button","aria-label","Settings",1,"rounded-md","border","border-zinc-200","p-1.5","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["fill-rule","evenodd","d","M7.84 1.804A1 1 0 0 1 8.82 1h2.36a1 1 0 0 1 .98.804l.331 1.652a6.993 6.993 0 0 1 1.929 1.115l1.598-.54a1 1 0 0 1 1.186.447l1.18 2.044a1 1 0 0 1-.34 1.353l-1.267.903a7.068 7.068 0 0 1 0 2.218l1.267.903a1 1 0 0 1 .34 1.353l-1.18 2.044a1 1 0 0 1-1.186.447l-1.598-.54a6.993 6.993 0 0 1-1.929 1.115l-.33 1.652a1 1 0 0 1-.98.804H8.82a1 1 0 0 1-.98-.804l-.331-1.652a6.993 6.993 0 0 1-1.929-1.115l-1.598.54a1 1 0 0 1-1.186-.447l-1.18-2.044a1 1 0 0 1 .34-1.353l1.267-.903a7.068 7.068 0 0 1 0-2.218l-1.267-.903a1 1 0 0 1-.34-1.353l1.18-2.044a1 1 0 0 1 1.186-.447l1.598.54a6.993 6.993 0 0 1 1.929-1.115l.33-1.652ZM10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z","clip-rule","evenodd"],[1,"flex","min-h-0","flex-1"],[1,"flex","min-h-0","min-w-[120px]","shrink-0","flex-col","overflow-hidden","border-r","border-zinc-200","bg-white","dark:border-zinc-800","dark:bg-zinc-900"],[1,"flex","h-full","min-h-0","flex-col","p-4"],["type","button","aria-label","Resize left sidebar",1,"w-1","cursor-col-resize","bg-zinc-200","transition","hover:bg-zinc-400","dark:bg-zinc-800","dark:hover:bg-zinc-500",3,"pointerdown"],[1,"relative","min-w-0","flex-1","overflow-hidden","bg-zinc-100","dark:bg-zinc-950"],[1,"relative","h-full","min-h-0"],["type","button","aria-label","Resize right sidebar",1,"w-1","cursor-col-resize","bg-zinc-200","transition","hover:bg-zinc-400","dark:bg-zinc-800","dark:hover:bg-zinc-500",3,"pointerdown"],[1,"flex","min-w-[120px]","shrink-0","flex-col","border-l","border-zinc-200","bg-white","dark:border-zinc-800","dark:bg-zinc-900"],[1,"lf-scroll","min-h-0","flex-1","overflow-y-auto","p-4"],[1,"min-h-0","flex-1","overflow-hidden","px-2","py-4"],["type","button","aria-label","Resize awaiting-input panel",1,"h-1","cursor-row-resize","bg-zinc-200","transition","hover:bg-zinc-400","dark:bg-zinc-800","dark:hover:bg-zinc-500",3,"pointerdown"],[3,"height"],[3,"closeRequested"]],template:function(t,o){t&1&&(v(0,"div",2)(1,"header",3)(2,"div",4)(3,"h1",5),C(4," Langflower "),y(),z(5,"lf-project-dir",6)(6,"lf-workflow-topbar",7),y(),v(7,"div",8)(8,"div",9),z(9,"span",10),v(10,"span"),C(11),y()(),v(12,"lf-hover-tip",11)(13,"button",12),O("click",function(){return o.toggleTheme()}),C(14),y()(),v(15,"lf-hover-tip",13)(16,"button",14),O("click",function(){return o.toggleSettings()}),ge(),v(17,"svg",15),z(18,"path",16),y()()()()(),Wr(),v(19,"div",17,0)(21,"aside",18)(22,"section",19),z(23,"lf-palette-sidebar"),y()(),v(24,"button",20),O("pointerdown",function(r){return o.startResize(r,"left")}),y(),v(25,"main",21)(26,"section",22),z(27,"lf-canvas-container"),y()(),v(28,"button",23),O("pointerdown",function(r){return o.startResize(r,"right")}),y(),v(29,"aside",24,1),E(31,Uk,2,0,"section",25)(32,Vk,2,0,"section",25)(33,jk,2,0,"section",26),v(34,"button",27),O("pointerdown",function(r){return o.startResize(r,"composer")}),y(),z(35,"lf-composer-shell",28),y()()()),t&2&&(p(9),q("bg-amber-400",o.connectionStatus()==="connecting")("bg-emerald-400",o.connectionStatus()==="connected")("bg-rose-400",o.connectionStatus()==="disconnected"),p(2),re(o.connectionStatus()),p(),A("tip",o.theme()==="dark"?"Switch to light theme":"Switch to dark theme"),p(2),H(" ",o.themeButtonLabel()," "),p(2),q("bg-zinc-100",o.settingsOpen())("dark:bg-zinc-800",o.settingsOpen()),K("aria-pressed",o.settingsOpen()),p(5),Ue("width",o.leftWidth(),"px"),p(8),Ue("width",o.rightWidth(),"px"),p(2),P(o.settingsOpen()?31:o.hasSelectedNode()?32:33),p(4),A("height",o.composerHeight()))},dependencies:[od,rd,Ka,Wa,Xa,Ja,nd,pd,tt],encapsulation:2})}};var rv=[{path:"",component:gd}];var sv={providers:[xg({eventCoalescing:!0}),Bl(rv),Hg()]};var fd=class n{constructor(){h(jo)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-root"]],decls:1,vars:0,template:function(t,o){t&1&&z(0,"router-outlet")},dependencies:[Zi],encapsulation:2})}};ul(fd,sv).catch(n=>{console.error(n)});
303
+ `}strong({tokens:n}){return`<strong>${this.parser.parseInline(n)}</strong>`}em({tokens:n}){return`<em>${this.parser.parseInline(n)}</em>`}codespan({text:n}){return`<code>${un(n,!0)}</code>`}br(n){return"<br>"}del({tokens:n}){return`<del>${this.parser.parseInline(n)}</del>`}link({href:n,title:e,tokens:t}){let o=this.parser.parseInline(t),i=fy(n);if(i===null)return o;n=i;let r='<a href="'+n+'"';return e&&(r+=' title="'+un(e)+'"'),r+=">"+o+"</a>",r}image({href:n,title:e,text:t,tokens:o}){o&&(t=this.parser.parseInline(o,this.parser.textRenderer));let i=fy(n);if(i===null)return un(t);n=i;let r=`<img src="${n}" alt="${un(t)}"`;return e&&(r+=` title="${un(e)}"`),r+=">",r}text(n){return"tokens"in n&&n.tokens?this.parser.parseInline(n.tokens):"escaped"in n&&n.escaped?n.text:un(n.text)}},fh=class{strong({text:n}){return n}em({text:n}){return n}codespan({text:n}){return n}del({text:n}){return n}html({text:n}){return n}text({text:n}){return n}link({text:n}){return""+n}image({text:n}){return""+n}br(){return""}checkbox({raw:n}){return n}},Qt=class sh{options;renderer;textRenderer;constructor(e){this.options=e||vo,this.options.renderer=this.options.renderer||new Ua,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new fh}static parse(e,t){return new sh(t).parse(e)}static parseInline(e,t){return new sh(t).parseInline(e)}parse(e){this.renderer.parser=this;let t="";for(let o=0;o<e.length;o++){let i=e[o];if(this.options.extensions?.renderers?.[i.type]){let s=i,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(s.type)){t+=a||"";continue}}let r=i;switch(r.type){case"space":{t+=this.renderer.space(r);break}case"hr":{t+=this.renderer.hr(r);break}case"heading":{t+=this.renderer.heading(r);break}case"code":{t+=this.renderer.code(r);break}case"table":{t+=this.renderer.table(r);break}case"blockquote":{t+=this.renderer.blockquote(r);break}case"list":{t+=this.renderer.list(r);break}case"checkbox":{t+=this.renderer.checkbox(r);break}case"html":{t+=this.renderer.html(r);break}case"def":{t+=this.renderer.def(r);break}case"paragraph":{t+=this.renderer.paragraph(r);break}case"text":{t+=this.renderer.text(r);break}default:{let s='Token with "'+r.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let o="";for(let i=0;i<e.length;i++){let r=e[i];if(this.options.extensions?.renderers?.[r.type]){let a=this.options.extensions.renderers[r.type].call({parser:this},r);if(a!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(r.type)){o+=a||"";continue}}let s=r;switch(s.type){case"escape":{o+=t.text(s);break}case"html":{o+=t.html(s);break}case"link":{o+=t.link(s);break}case"image":{o+=t.image(s);break}case"checkbox":{o+=t.checkbox(s);break}case"strong":{o+=t.strong(s);break}case"em":{o+=t.em(s);break}case"codespan":{o+=t.codespan(s);break}case"br":{o+=t.br(s);break}case"del":{o+=t.del(s);break}case"text":{o+=t.text(s);break}default:{let a='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return o}},xr=class{options;block;constructor(n){this.options=n||vo}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(n){return n}postprocess(n){return n}processAllTokens(n){return n}emStrongMask(n){return n}provideLexer(n=this.block){return n?Xt.lex:Xt.lexInline}provideParser(n=this.block){return n?Qt.parse:Qt.parseInline}},AI=class{defaults=ah();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Qt;Renderer=Ua;TextRenderer=fh;Lexer=Xt;Tokenizer=Ha;Hooks=xr;constructor(...n){this.use(...n)}walkTokens(n,e){let t=[];for(let o of n)switch(t=t.concat(e.call(this,o)),o.type){case"table":{let i=o;for(let r of i.header)t=t.concat(this.walkTokens(r.tokens,e));for(let r of i.rows)for(let s of r)t=t.concat(this.walkTokens(s.tokens,e));break}case"list":{let i=o;t=t.concat(this.walkTokens(i.items,e));break}default:{let i=o;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(r=>{let s=i[r].flat(1/0);t=t.concat(this.walkTokens(s,e))}):i.tokens&&(t=t.concat(this.walkTokens(i.tokens,e)))}}return t}use(...n){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(t=>{let o=h({},t);if(o.async=this.defaults.async||o.async||!1,t.extensions&&(t.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let r=e.renderers[i.name];r?e.renderers[i.name]=function(...s){let a=i.renderer.apply(this,s);return a===!1&&(a=r.apply(this,s)),a}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let r=e[i.level];r?r.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),o.extensions=e),t.renderer){let i=this.defaults.renderer||new Ua(this.defaults);for(let r in t.renderer){if(!(r in i))throw new Error(`renderer '${r}' does not exist`);if(["options","parser"].includes(r))continue;let s=r,a=t.renderer[s],d=i[s];i[s]=(...l)=>{let c=a.apply(i,l);return c===!1&&(c=d.apply(i,l)),c||""}}o.renderer=i}if(t.tokenizer){let i=this.defaults.tokenizer||new Ha(this.defaults);for(let r in t.tokenizer){if(!(r in i))throw new Error(`tokenizer '${r}' does not exist`);if(["options","rules","lexer"].includes(r))continue;let s=r,a=t.tokenizer[s],d=i[s];i[s]=(...l)=>{let c=a.apply(i,l);return c===!1&&(c=d.apply(i,l)),c}}o.tokenizer=i}if(t.hooks){let i=this.defaults.hooks||new xr;for(let r in t.hooks){if(!(r in i))throw new Error(`hook '${r}' does not exist`);if(["options","block"].includes(r))continue;let s=r,a=t.hooks[s],d=i[s];xr.passThroughHooks.has(r)?i[s]=l=>{if(this.defaults.async&&xr.passThroughHooksRespectAsync.has(r))return M(this,null,function*(){let u=yield a.call(i,l);return d.call(i,u)});let c=a.call(i,l);return d.call(i,c)}:i[s]=(...l)=>{if(this.defaults.async)return M(this,null,function*(){let u=yield a.apply(i,l);return u===!1&&(u=yield d.apply(i,l)),u});let c=a.apply(i,l);return c===!1&&(c=d.apply(i,l)),c}}o.hooks=i}if(t.walkTokens){let i=this.defaults.walkTokens,r=t.walkTokens;o.walkTokens=function(s){let a=[];return a.push(r.call(this,s)),i&&(a=a.concat(i.call(this,s))),a}}this.defaults=h(h({},this.defaults),o)}),this}setOptions(n){return this.defaults=h(h({},this.defaults),n),this}lexer(n,e){return Xt.lex(n,e??this.defaults)}parser(n,e){return Qt.parse(n,e??this.defaults)}parseMarkdown(n){return(e,t)=>{let o=h({},t),i=h(h({},this.defaults),o),r=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&o.async===!1)return r(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return r(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return r(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=n),i.async)return M(this,null,function*(){let s=i.hooks?yield i.hooks.preprocess(e):e,a=yield(i.hooks?yield i.hooks.provideLexer(n):n?Xt.lex:Xt.lexInline)(s,i),d=i.hooks?yield i.hooks.processAllTokens(a):a;i.walkTokens&&(yield Promise.all(this.walkTokens(d,i.walkTokens)));let l=yield(i.hooks?yield i.hooks.provideParser(n):n?Qt.parse:Qt.parseInline)(d,i);return i.hooks?yield i.hooks.postprocess(l):l}).catch(r);try{i.hooks&&(e=i.hooks.preprocess(e));let s=(i.hooks?i.hooks.provideLexer(n):n?Xt.lex:Xt.lexInline)(e,i);i.hooks&&(s=i.hooks.processAllTokens(s)),i.walkTokens&&this.walkTokens(s,i.walkTokens);let a=(i.hooks?i.hooks.provideParser(n):n?Qt.parse:Qt.parseInline)(s,i);return i.hooks&&(a=i.hooks.postprocess(a)),a}catch(s){return r(s)}}}onError(n,e){return t=>{if(t.message+=`
304
+ Please report this to https://github.com/markedjs/marked.`,n){let o="<p>An error occurred:</p><pre>"+un(t.message+"",!0)+"</pre>";return e?Promise.resolve(o):o}if(e)return Promise.reject(t);throw t}}},yo=new AI;function Se(n,e){return yo.parse(n,e)}Se.options=Se.setOptions=function(n){return yo.setOptions(n),Se.defaults=yo.defaults,by(Se.defaults),Se};Se.getDefaults=ah;Se.defaults=vo;Se.use=function(...n){return yo.use(...n),Se.defaults=yo.defaults,by(Se.defaults),Se};Se.walkTokens=function(n,e){return yo.walkTokens(n,e)};Se.parseInline=yo.parseInline;Se.Parser=Qt;Se.parser=Qt.parse;Se.Renderer=Ua;Se.TextRenderer=fh;Se.Lexer=Xt;Se.lexer=Xt.lex;Se.Tokenizer=Ha;Se.Hooks=xr;Se.parse=Se;var z5=Se.options,B5=Se.setOptions,$5=Se.use,H5=Se.walkTokens,U5=Se.parseInline;var j5=Qt.parse,V5=Xt.lex;var gi=n=>{if(n.trim().length===0)return"";let e=Se.parse(n,{async:!1});return typeof e=="string"?uy.sanitize(e):""};function LI(n,e){if(n&1){let t=V();B(0,"input",9,0),ve("change",function(){D(t);let i=Gt(1),r=g();return T(r.valueChange.emit(i.value))})("keyup",function(){D(t);let i=Gt(1),r=g();return T(r.valueChange.emit(i.value))}),A()}if(n&2){let t=g();ge("value",t.textValue())("disabled",t.disabled())}}function FI(n,e){if(n&1){let t=V();B(0,"input",10,0),ve("change",function(){D(t);let i=Gt(1),r=g();return T(r.onNumberChange(i.value))})("keyup",function(){D(t);let i=Gt(1),r=g();return T(r.onNumberChange(i.value))}),A()}if(n&2){let t=g();ge("value",t.textValue())("min",t.numberConfig()?.min??null)("max",t.numberConfig()?.max??null)("step",t.numberConfig()?.step??"any")("disabled",t.disabled())}}function zI(n,e){if(n&1){let t=V();B(0,"textarea",11,0),ve("change",function(){D(t);let i=Gt(1),r=g();return T(r.valueChange.emit(i.value))})("keyup",function(){D(t);let i=Gt(1),r=g();return T(r.valueChange.emit(i.value))}),A()}if(n&2){let t=g();ge("value",t.textValue())("disabled",t.disabled())}}function BI(n,e){if(n&1){let t=V();B(0,"label",4)(1,"input",12,0),ve("change",function(){D(t);let i=Gt(2),r=g();return T(r.valueChange.emit(i.checked))}),A(),C(3),A()}if(n&2){let t=g();p(),ge("checked",t.booleanValue())("disabled",t.disabled()),p(2),U(" ",t.booleanValue()?"true":"false"," ")}}function $I(n,e){if(n&1&&(B(0,"option",14),C(1),A()),n&2){let t=e.$implicit,o=e.$index,i=g(2);ge("value",o)("selected",i.sameValue(t.value,i.value()))("title",t.description??""),p(),U(" ",t.title," ")}}function HI(n,e){n&1&&(B(0,"p",15),C(1),A()),n&2&&(p(),U(" ",e," "))}function UI(n,e){if(n&1){let t=V();B(0,"div",5)(1,"select",13,0),ve("change",function(){D(t);let i=Gt(2),r=g();return T(r.onSelectChange(i.value))}),X(3,$I,2,4,"option",14,on),A(),E(5,HI,2,1,"p",15),A()}if(n&2){let t,o=g();p(),ge("disabled",o.disabled()),p(2),Q(o.options()),p(2),P((t=o.selectedDescription())?5:-1,t)}}function jI(n,e){if(n&1){let t=V();B(0,"label",4)(1,"input",16),ve("change",function(){let i=D(t).$implicit,r=g(2);return T(r.valueChange.emit(i.value))}),A(),C(2),A()}if(n&2){let t=e.$implicit,o=g(2);p(),ge("name",o.radioGroupName)("checked",o.sameValue(t.value,o.value()))("disabled",o.disabled()),p(),U(" ",t.title," ")}}function VI(n,e){if(n&1&&(B(0,"div",5),X(1,jI,3,4,"label",4,on),A()),n&2){let t=g();p(),Q(t.options())}}function WI(n,e){n&1&&(B(0,"span",15),C(1),A()),n&2&&(p(),se(e))}function GI(n,e){if(n&1){let t=V();B(0,"label",17)(1,"input",18),ve("change",function(){let i=D(t).$implicit,r=g(2);return T(r.onMultiselectToggle(i.value))}),A(),B(2,"span",19)(3,"span"),C(4),A(),E(5,WI,2,1,"span",15),A()()}if(n&2){let t,o=e.$implicit,i=g(2);p(),ge("checked",i.isSelected(o.value))("disabled",i.disabled()),p(3),se(o.title),p(),P((t=o.description)?5:-1,t)}}function qI(n,e){if(n&1&&(B(0,"div",5),X(1,GI,6,4,"label",17,on),A()),n&2){let t=g();p(),Q(t.options())}}function YI(n,e){if(n&1&&(B(0,"pre",6)(1,"code"),C(2),A()()),n&2){let t=g();p(2),se(t.previewText())}}function ZI(n,e){if(n&1&&pt(0,"div",7),n&2){let t=g();ge("innerHTML",t.previewHtml(),Rn)}}function KI(n,e){if(n&1&&(B(0,"div",8),C(1),A()),n&2){let t=g();p(),U(" ",t.previewText()," ")}}function XI(n){if(n==null)return"";if(typeof n=="object")try{return JSON.stringify(n,null,2)}catch(e){return String(n)}return String(n)}function QI(n){return n==null?"":typeof n=="string"?n:String(n)}function JI(n){return typeof n=="string"?n:n.type}var eD=0,tD=(n,e)=>n.find(o=>fi(o.value,e))?.description,nD=(n,e)=>{let t=Array.isArray(e)?e.filter(o=>o!=null&&o!==""&&!n.some(i=>fi(i.value,o))):e!=null&&e!==""&&!n.some(o=>fi(o.value,e))?[e]:[];return t.length===0?n:[...t.map(o=>({value:o,title:`${String(o)} (missing)`,description:"No longer available \u2014 choose another option to clear this"})),...n]};function fi(n,e){if(n===e)return!0;try{return JSON.stringify(n)===JSON.stringify(e)}catch(t){return!1}}var Yn=class n{constructor(){this.config=I.required();this.value=I(void 0);this.previewValue=I(void 0);this.disabled=I(!1);this.fill=I(!1);this.valueChange=qt();this.sameValue=fi;this.kind=b(()=>JI(this.config()));this.options=b(()=>{let e=this.config(),t=typeof e=="string"||!("options"in e)?[]:e.options;return nD(t,this.value())});this.numberConfig=b(()=>{let e=this.config();return typeof e=="string"||e.type!=="number"?void 0:e});this.multilineMinHeightPx=b(()=>gr(this.config())?.minHeightPx);this.textValue=b(()=>QI(this.value()));this.booleanValue=b(()=>this.value()===!0);this.previewText=b(()=>XI(this.previewValue()));this.previewHtml=b(()=>gi(this.previewText()));this.selectedDescription=b(()=>tD(this.options(),this.value()));this.radioGroupName=`lf-inline-radio-${eD+=1}`}onNumberChange(e){let t=Number(e);e.trim().length>0&&!Number.isNaN(t)&&this.valueChange.emit(t)}onSelectChange(e){let t=this.options()[Number(e)];t!==void 0&&this.valueChange.emit(t.value)}isSelected(e){let t=this.value();return Array.isArray(t)?t.some(o=>fi(o,e)):!1}onMultiselectToggle(e){let t=this.value(),o=Array.isArray(t)?t:[],i=this.isSelected(e)?o.filter(r=>!fi(r,e)):[...o,e];this.valueChange.emit(i)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-inline-field"]],hostVars:4,hostBindings:function(t,o){t&2&&(Ue("--lf-multiline-min",o.multilineMinHeightPx(),"px"),Y("lf-inline-field--fill",o.fill()))},inputs:{config:[1,"config"],value:[1,"value"],previewValue:[1,"previewValue"],disabled:[1,"disabled"],fill:[1,"fill"]},outputs:{valueChange:"valueChange"},decls:10,vars:1,consts:[["control",""],["type","text",1,"lf-inline-control",3,"value","disabled"],["type","number",1,"lf-inline-control","lf-inline-control--number",3,"value","min","max","step","disabled"],["rows","2","data-no-drag","true","data-no-pan","true",1,"lf-inline-control","lf-inline-multiline","lf-scroll",3,"value","disabled"],[1,"flex","items-center","gap-1.5","text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"flex","flex-col","gap-0.5"],[1,"lf-inline-preview","lf-inline-preview--code","lf-scroll"],[1,"lf-inline-preview","lf-scroll","prose","prose-xs","max-w-none","dark:prose-invert",3,"innerHTML"],[1,"lf-inline-preview","lf-scroll"],["type","text",1,"lf-inline-control",3,"change","keyup","value","disabled"],["type","number",1,"lf-inline-control","lf-inline-control--number",3,"change","keyup","value","min","max","step","disabled"],["rows","2","data-no-drag","true","data-no-pan","true",1,"lf-inline-control","lf-inline-multiline","lf-scroll",3,"change","keyup","value","disabled"],["type","checkbox",3,"change","checked","disabled"],[1,"lf-inline-control",3,"change","disabled"],[3,"value","selected","title"],[1,"lf-inline-select-caption"],["type","radio",3,"change","name","checked","disabled"],[1,"flex","items-start","gap-1.5","text-[10px]","text-zinc-600","dark:text-zinc-300"],["type","checkbox",1,"mt-0.5",3,"change","checked","disabled"],[1,"flex","min-w-0","flex-col","gap-0.5"]],template:function(t,o){if(t&1&&E(0,LI,2,2,"input",1)(1,FI,2,5,"input",2)(2,zI,2,2,"textarea",3)(3,BI,4,3,"label",4)(4,UI,6,2,"div",5)(5,VI,3,0,"div",5)(6,qI,3,0,"div",5)(7,YI,3,1,"pre",6)(8,ZI,1,1,"div",7)(9,KI,2,1,"div",8),t&2){let i;P((i=o.kind())==="text"?0:i==="number"?1:i==="text-multiline"?2:i==="boolean"?3:i==="select"?4:i==="radio"?5:i==="multiselect"?6:i==="preview-code"?7:i==="preview-markdown"?8:9)}},styles:['.lf-inline-control[_ngcontent-%COMP%]{width:100%;border-radius:.25rem;border:1px solid rgb(228 228 231);background:#fafafa;padding:.125rem .5rem;font-size:10px;color:#3f3f46}[data-theme="dark"][_nghost-%COMP%] .lf-inline-control[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-inline-control[_ngcontent-%COMP%]{border-color:#3f3f46;background:#09090b;color:#e4e4e7}.lf-inline-control--number[_ngcontent-%COMP%]{padding-right:.125rem;-moz-appearance:textfield}.lf-inline-control--number[_ngcontent-%COMP%]::-webkit-inner-spin-button, .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-outer-spin-button{margin:0;height:1.25rem;opacity:1;cursor:pointer;filter:grayscale(1) brightness(.85)}[data-theme="dark"][_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-inner-spin-button, [data-theme="dark"] [_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-inner-spin-button, [data-theme="dark"][_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-outer-spin-button, [data-theme="dark"] [_nghost-%COMP%] .lf-inline-control--number[_ngcontent-%COMP%]::-webkit-outer-spin-button{filter:grayscale(1) invert(1) brightness(.75)}.lf-inline-control--number[_ngcontent-%COMP%]:hover, .lf-inline-control--number[_ngcontent-%COMP%]:focus{-moz-appearance:number-input}.lf-inline-control--number[_ngcontent-%COMP%]::-moz-number-spin-box{padding-inline:.125rem}.lf-inline-control--number[_ngcontent-%COMP%]::-moz-number-spin-up, .lf-inline-control--number[_ngcontent-%COMP%]::-moz-number-spin-down{border:none;background:transparent;opacity:.55}.lf-inline-control--number[_ngcontent-%COMP%]:hover::-moz-number-spin-up, .lf-inline-control--number[_ngcontent-%COMP%]:hover::-moz-number-spin-down, .lf-inline-control--number[_ngcontent-%COMP%]:focus::-moz-number-spin-up, .lf-inline-control--number[_ngcontent-%COMP%]:focus::-moz-number-spin-down{opacity:.85}.lf-inline-field--fill[_nghost-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;height:100%}.lf-inline-multiline[_ngcontent-%COMP%]{resize:none;min-height:var(--lf-multiline-min, 100px);max-height:12rem;overflow-y:auto}lf-inspector-panel[_nghost-%COMP%] .lf-inline-multiline[_ngcontent-%COMP%], lf-inspector-panel [_nghost-%COMP%] .lf-inline-multiline[_ngcontent-%COMP%]{resize:vertical;max-height:none}.lf-inline-field--fill[_nghost-%COMP%] .lf-inline-multiline[_ngcontent-%COMP%]{flex:1 1 auto;height:100%;max-height:none;min-height:var(--lf-multiline-min, 100px)}.lf-inline-preview[_ngcontent-%COMP%]{width:100%;min-height:1rem;max-height:10rem;overflow-x:hidden;overflow-y:auto;border-radius:.25rem;padding:.125rem .5rem;font-size:10px;color:#64748b;white-space:pre-wrap;word-break:break-word;box-sizing:border-box}.lf-inline-preview--code[_ngcontent-%COMP%]{font-family:monospace;background:#fafafa}[data-theme="dark"][_nghost-%COMP%] .lf-inline-preview--code[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-inline-preview--code[_ngcontent-%COMP%]{background:#09090b}.lf-inline-select-caption[_ngcontent-%COMP%]{margin:0;font-size:10px;line-height:1.25;color:#64748b}[data-theme="dark"][_nghost-%COMP%] .lf-inline-select-caption[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-inline-select-caption[_ngcontent-%COMP%]{color:#71717a}']})}};function oD(n,e){if(n&1&&(v(0,"div",7),$(1,"ng-diagram-port",8),y()),n&2){let t=g();Y("lf-port-anchor--endpoint",t.endpointHighlighted())("lf-port-anchor--node-selected",t.nodeSelected())("lf-port-anchor--pulse",t.pulse()),p(),L("id",t.portId())}}function iD(n,e){if(n&1&&(v(0,"div",9),$(1,"ng-diagram-port",10),y()),n&2){let t=g();Y("lf-port-anchor--endpoint",t.endpointHighlighted())("lf-port-anchor--node-selected",t.nodeSelected())("lf-port-anchor--pulse",t.pulse()),p(),L("id",t.portId())}}function rD(n,e){if(n&1){let t=V();v(0,"div",6)(1,"lf-inline-field",11),O("valueChange",function(i){D(t);let r=g();return T(r.valueChange.emit(i))}),y()()}if(n&2){let t=g();p(),L("config",t.inline())("value",t.value())("previewValue",t.previewValue())("disabled",t.disabled())("fill",t.growFlex()>0)}}var Wa=class n{constructor(){this.execution=f(ke);this.side=I.required();this.nodeId=I.required();this.portId=I.required();this.runtimePortId=I.required();this.label=I.required();this.wireType=I.required();this.inline=I(null);this.value=I(void 0);this.previewValue=I(void 0);this.disabled=I(!1);this.nodeSelected=I(!1);this.endpointHighlighted=I(!1);this.valueChange=qt();this.pulse=ae(Ne([Xe(this.nodeId),Xe(this.runtimePortId),Xe(this.side)]).pipe(we(([e,t,o])=>{let i=o==="out"?this.execution.getEventsForPort(e,t):this.execution.getInputEventsForPort(e,t);return En(i)})),{initialValue:!1});this.multilineLayout=b(()=>{let e=this.inline();return e===null?null:gr(e)});this.growFlex=b(()=>this.multilineLayout()?.flex??0);this.multilineMinHeightPx=b(()=>this.multilineLayout()?.minHeightPx)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node-port-row"]],hostAttrs:[1,"lf-port-row-host"],hostVars:6,hostBindings:function(t,o){t&2&&(Ue("--lf-inline-flex",o.growFlex())("--lf-multiline-min",o.multilineMinHeightPx(),"px"),Y("lf-port-row-host--grow",o.growFlex()>0))},inputs:{side:[1,"side"],nodeId:[1,"nodeId"],portId:[1,"portId"],runtimePortId:[1,"runtimePortId"],label:[1,"label"],wireType:[1,"wireType"],inline:[1,"inline"],value:[1,"value"],previewValue:[1,"previewValue"],disabled:[1,"disabled"],nodeSelected:[1,"nodeSelected"],endpointHighlighted:[1,"endpointHighlighted"]},outputs:{valueChange:"valueChange"},decls:10,vars:11,consts:[[1,"lf-port-row-wrapper"],[1,"lf-port-row"],[1,"lf-port-anchor","lf-port-anchor--in",3,"lf-port-anchor--endpoint","lf-port-anchor--node-selected","lf-port-anchor--pulse"],[1,"lf-port-row__content"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"lf-port-anchor","lf-port-anchor--out",3,"lf-port-anchor--endpoint","lf-port-anchor--node-selected","lf-port-anchor--pulse"],[1,"lf-port-row__inline"],[1,"lf-port-anchor","lf-port-anchor--in"],["type","target","side","left","originPoint","centerLeft",3,"id"],[1,"lf-port-anchor","lf-port-anchor--out"],["type","source","side","right",3,"id"],[3,"valueChange","config","value","previewValue","disabled","fill"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"div",1),E(2,oD,2,7,"div",2),v(3,"div",3)(4,"span"),C(5),y(),v(6,"span",4),C(7),y()(),E(8,iD,2,7,"div",5),y(),E(9,rD,2,5,"div",6),y()),t&2&&(Y("lf-port-row-wrapper--node-selected",o.nodeSelected()),p(),Y("lf-port-row--in",o.side()==="in")("lf-port-row--out",o.side()==="out"),p(),P(o.side()==="in"?2:-1),p(3),se(o.label()),p(2),U(" \xB7 ",o.wireType()," "),p(),P(o.side()==="out"?8:-1),p(),P(o.side()==="in"&&o.inline()!==null?9:-1))},dependencies:[lo,Yn],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};var sD=["content"],Ty=(n,e)=>e.portId,aD=(n,e)=>e.handle;function dD(n,e){if(n&1){let t=V();v(0,"input",11,1),O("input",function(){D(t);let i=Gt(1),r=g();return T(r.labelDraft.set(i.value))})("keydown",function(i){D(t);let r=g();return T(r.onLabelKeydown(i))})("blur",function(){D(t);let i=g();return T(i.onLabelBlur())}),y()}if(n&2){let t=g();L("value",t.labelDraft())}}function lD(n,e){if(n&1){let t=V();v(0,"span",12),O("dblclick",function(){D(t);let i=g();return T(i.startLabelEdit())}),C(1),y()}if(n&2){let t=g();p(),U(" ",t.label()," ")}}function cD(n,e){if(n&1){let t=V();v(0,"lf-node-port-row",13),O("valueChange",function(i){let r=D(t).$implicit,s=g();return T(s.onPortInlineChange(r.basePortId,i))}),y()}if(n&2){let t=e.$implicit,o=g();L("nodeId",o.node().id)("portId",t.portId)("runtimePortId",t.basePortId)("label",t.label)("wireType",t.wireType)("inline",t.inline)("value",t.value)("disabled",t.connected)("previewValue",o.previewValueFor(t.basePortId))("nodeSelected",o.node().selected??!1)("endpointHighlighted",o.isEndpointHighlighted(t.portId))}}function uD(n,e){if(n&1&&$(0,"lf-node-bypass-port-row",7),n&2){let t=e.$implicit,o=g();L("nodeId",o.node().id)("runtimePortId",t.handle)("inputPortId",t.inputPortId)("outputPortId",t.outputPortId)("label",t.label)("wireType",t.wireType)("nodeSelected",o.node().selected??!1)("inputEndpointHighlighted",o.isEndpointHighlighted(t.inputPortId))("outputEndpointHighlighted",o.isEndpointHighlighted(t.outputPortId))}}function pD(n,e){if(n&1&&$(0,"lf-node-port-row",8),n&2){let t=e.$implicit,o=g();L("nodeId",o.node().id)("portId",t.portId)("runtimePortId",o.fromOutputPortId(t.portId))("label",t.label)("wireType",t.wireType)("nodeSelected",o.node().selected??!1)("endpointHighlighted",o.isEndpointHighlighted(t.portId))}}var My=1,mh=160,ky=72,hD=24,gD=n=>{let e=n.ui.label?.trim();return e!==void 0&&e.length>0?e:n.type},Ga=class n{constructor(){this.bridge=f(le);this.diagramModel=f(Kt);this.nodeService=f(co);this.selection=f(uo);this.viewport=f(dn);this.previewValues=f(di);this.contentMinSize=f(ni);this.injector=f(Wt);this.destroyRef=f(Ve);this.hover=f(ln);this.execution=f(ke);this.node=I.required();this.content=st("content");this.status=b(()=>this.execution.nodeStatus(this.node().id));this.pulse=ae(Xe(this.node).pipe(N(e=>e.id),we(e=>En(this.execution.getEventsForNode(e)))),{initialValue:!1});this.editingLabel=H(!1);this.labelDraft=H("");this.lastSyncedRowCount=void 0;this.heightSyncScheduled=!1;this.minSizePublishScheduled=!1;this.fromOutputPortId=go;this.label=b(()=>gD(this.node().data));this.connectedEdges=b(()=>{let e=this.node().id;return this.diagramModel.edges().filter(t=>t.source===e||t.target===e)});this.ports=b(()=>La(this.node().data.portsConfig,this.node().id,this.connectedEdges(),this.node().data.inputs));this.inputPortRows=b(()=>this.ports().inputPorts);this.outputPortRows=b(()=>this.ports().outputPorts);this.bypassPortRows=b(()=>this.ports().bypassPorts);this.portRowCount=b(()=>this.inputPortRows().length+this.bypassPortRows().length+this.outputPortRows().length);this.selectedEndpointPortIds=b(()=>{let e=this.node().id,t=new Set;for(let o of this.selection.selection().edges)o.source===e&&o.sourcePort!==void 0&&t.add(o.sourcePort),o.target===e&&o.targetPort!==void 0&&t.add(o.targetPort);return t});this.destroyRef.onDestroy(()=>{this.seResizeCleanup?.(),this.contentMinSize.clear(this.node().id)}),me(()=>{let e=this.node().data.ui.position.width,t=this.portRowCount();xe(()=>{if(this.scheduleMinSizePublish(),e===void 0){this.lastSyncedRowCount=void 0;return}if(this.lastSyncedRowCount===void 0){this.lastSyncedRowCount=t;return}this.lastSyncedRowCount!==t&&(this.lastSyncedRowCount=t,this.scheduleHeightSync())})})}onDocumentKeydown(e){e.key==="F2"&&(this.node().selected??!1)&&!this.editingLabel()&&(e.preventDefault(),this.startLabelEdit())}isEndpointHighlighted(e){return this.selectedEndpointPortIds().has(e)}previewValueFor(e){return this.previewValues.valueFor(this.node().id,e)}onPortInlineChange(e,t){this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,inputs:_(h({},this.node().data.inputs),{[e]:t})})}startLabelEdit(){this.labelDraft.set(this.node().data.ui.label??""),this.editingLabel.set(!0),To(()=>{let e=document.querySelector(`[data-node-id="${this.node().id}"] .lf-node-label-input`);e instanceof HTMLInputElement&&(e.focus(),e.select())},{injector:this.injector})}onLabelKeydown(e){if(e.key==="Enter"){e.preventDefault(),this.commitLabelEdit();return}e.key==="Escape"&&(e.preventDefault(),this.cancelLabelEdit())}onLabelBlur(){this.editingLabel()&&this.cancelLabelEdit()}cancelLabelEdit(){this.editingLabel.set(!1)}commitLabelEdit(){if(!this.editingLabel())return;let e=this.labelDraft().trim(),t=this.node().data.ui.label?.trim()??"";this.editingLabel.set(!1),e!==t&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,ui:{label:e}})}onSeHandlePointerDown(e){if(e.button!==0)return;e.preventDefault(),e.stopPropagation();let t=this.node(),o=t.size??this.contentMinSize.minFor(t.id),i=this.contentMinSize.minFor(t.id),r=this.viewport.clientToFlowPosition({x:e.clientX,y:e.clientY}),s=e.currentTarget;if(!(s instanceof HTMLElement))return;s.setPointerCapture(e.pointerId),this.seResizeCleanup?.();let a=l=>{let c=this.viewport.clientToFlowPosition({x:l.clientX,y:l.clientY}),u=Kp(o,r,c,i);this.nodeService.resizeNode(t.id,u,void 0,!0)},d=l=>{this.seResizeCleanup?.(),this.seResizeCleanup=void 0,s.hasPointerCapture(l.pointerId)&&s.releasePointerCapture(l.pointerId);let c=this.viewport.clientToFlowPosition({x:l.clientX,y:l.clientY}),u=Kp(o,r,c,i);this.nodeService.resizeNode(t.id,u,void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:t.id,ui:{width:u.width,height:u.height}})};document.addEventListener("pointermove",a),document.addEventListener("pointerup",d),document.addEventListener("pointercancel",d),this.seResizeCleanup=()=>{document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",d),document.removeEventListener("pointercancel",d)}}scheduleMinSizePublish(){this.minSizePublishScheduled||(this.minSizePublishScheduled=!0,To(()=>{requestAnimationFrame(()=>{this.minSizePublishScheduled=!1,this.publishContentMinSize()})},{injector:this.injector}))}publishContentMinSize(){let e=this.measureContentMinSize();this.contentMinSize.set(this.node().id,e),this.clampHeightToContentMin(e.height)}measureContentMinSize(){let e=this.content()?.nativeElement;return e===void 0?{width:mh,height:ky}:{width:mh,height:G0(e,hD,ky)}}clampHeightToContentMin(e){let t=this.node().data.ui.position.width;if(t===void 0)return;let o=this.node().size?.height;o===void 0||o+My>=e||(this.nodeService.resizeNode(this.node().id,{width:t,height:e},void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,ui:{height:e}}))}scheduleHeightSync(){this.heightSyncScheduled||(this.heightSyncScheduled=!0,To(()=>{requestAnimationFrame(()=>{this.heightSyncScheduled=!1,this.syncHeightToContent()})},{injector:this.injector}))}syncHeightToContent(){let e=this.node().data.ui.position.width;if(e===void 0)return;let{height:t}=this.measureContentMinSize();this.contentMinSize.set(this.node().id,{width:mh,height:t});let o=this.node().size?.height;o!==void 0&&Math.abs(o-t)<My||(this.nodeService.resizeNode(this.node().id,{width:e,height:t},void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:this.node().id,ui:{height:t}}))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node"]],viewQuery:function(t,o){t&1&&ht(o.content,sD,5),t&2&&gt()},hostAttrs:[1,"lf-diagram-node"],hostBindings:function(t,o){t&1&&O("keydown",function(r){return o.onDocumentKeydown(r)},Nt)},inputs:{node:[1,"node"]},decls:14,vars:16,consts:[["content",""],["labelInput",""],[1,"lf-node-chrome","rounded-xl","border","border-zinc-300","bg-white","py-3","shadow-sm","dark:border-zinc-700","dark:bg-zinc-900",3,"mouseenter","mouseleave"],[1,"lf-node-content"],["data-no-drag","true","data-no-pan","true",1,"lf-node-title","lf-node-label-input","mx-1","text-xs","font-semibold",3,"value"],[1,"lf-node-title","truncate","px-1","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100"],["side","in",3,"nodeId","portId","runtimePortId","label","wireType","inline","value","disabled","previewValue","nodeSelected","endpointHighlighted"],[3,"nodeId","runtimePortId","inputPortId","outputPortId","label","wireType","nodeSelected","inputEndpointHighlighted","outputEndpointHighlighted"],["side","out",3,"nodeId","portId","runtimePortId","label","wireType","nodeSelected","endpointHighlighted"],["data-no-drag","true","data-no-pan","true",1,"lf-node-se-handle",3,"pointerdown"],["aria-hidden","true",1,"lf-node-se-handle__lines"],["data-no-drag","true","data-no-pan","true",1,"lf-node-title","lf-node-label-input","mx-1","text-xs","font-semibold",3,"input","keydown","blur","value"],[1,"lf-node-title","truncate","px-1","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100",3,"dblclick"],["side","in",3,"valueChange","nodeId","portId","runtimePortId","label","wireType","inline","value","disabled","previewValue","nodeSelected","endpointHighlighted"]],template:function(t,o){t&1&&(v(0,"ng-diagram-node-resize-adornment")(1,"div",2),O("mouseenter",function(){return o.hover.set(o.node().id)})("mouseleave",function(){return o.hover.clear()}),v(2,"div",3,0),E(4,dD,2,1,"input",4)(5,lD,2,1,"span",5),X(6,cD,1,11,"lf-node-port-row",6,Ty),X(8,uD,1,9,"lf-node-bypass-port-row",7,aD),X(10,pD,1,7,"lf-node-port-row",8,Ty),y(),v(12,"div",9),O("pointerdown",function(r){return o.onSeHandlePointerDown(r)}),$(13,"span",10),y()()()),t&2&&(p(),Y("lf-node-chrome--selected",o.node().selected??!1)("lf-node-chrome--hovered",o.hover.isHovered(o.node().id))("lf-node-chrome--pending",o.status()==="pending")("lf-node-chrome--value",o.status()==="value")("lf-node-chrome--error",o.status()==="error")("lf-node-chrome--hitl",o.status()==="hitl")("lf-node-chrome--pulse",o.pulse()),J("data-node-id",o.node().id),p(3),P(o.editingLabel()?4:5),p(2),Q(o.inputPortRows()),p(2),Q(o.bypassPortRows()),p(2),Q(o.outputPortRows()))},dependencies:[Wa,Fa,Jo],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};function fD(n,e){if(n&1){let t=V();v(0,"ng-diagram",3),O("diagramInit",function(){D(t);let i=g();return T(i.handlers.handleDiagramInit())})("nodeDragEnded",function(i){D(t);let r=g();return T(r.handlers.handleNodeDragEnded(i))})("nodeResizeEnded",function(i){D(t);let r=g();return T(r.handlers.handleNodeResizeEnded(i))})("edgeDrawEnded",function(i){D(t);let r=g();return T(r.handlers.handleEdgeDrawEnded(i))})("clipboardPasted",function(i){D(t);let r=g();return T(r.handlers.handleClipboardPasted(i))})("selectionRemoved",function(i){D(t);let r=g();return T(r.handlers.handleSelectionRemoved(i))})("selectionChanged",function(i){D(t);let r=g();return T(r.handlers.handleSelectionChanged(i))}),$(1,"ng-diagram-background",4)(2,"ng-diagram-minimap"),y()}if(n&2){let t=g();L("model",e)("config",t.config)("nodeTemplateMap",t.nodeTemplateMap)("edgeTemplateMap",t.edgeTemplateMap)}}function mD(n,e){n&1&&(v(0,"div",2),C(1," Waiting for workflow\u2026 "),y())}var yD=n=>{if(n.edge===void 0)return null;let e=n.sourcePort??n.edge.sourcePort,t=n.targetPort??n.edge.targetPort;if(e===void 0||t===void 0)return null;let o=jn(go(e)),i=jn(ei(t));return{fromNodeId:n.edge.source,fromPort:[o.basePortId,o.slotIndex],toNodeId:n.edge.target,toPort:[i.basePortId,i.slotIndex]}},vD=n=>{let e=n.nodes.map(i=>{let r=i.data,s=i.size?.width??r.ui.position.width,a=i.size?.height??r.ui.position.height;return h({clientId:i.id,type:r.type,position:h(h({x:i.position.x,y:i.position.y},s!==void 0?{width:s}:{}),a!==void 0?{height:a}:{}),params:r.params,inputs:r.inputs},r.ui.label!==void 0?{label:r.ui.label}:{})}),t=new Set(e.map(i=>i.clientId)),o=n.edges.flatMap(i=>{if(!t.has(i.source)||!t.has(i.target)||i.sourcePort===void 0||i.targetPort===void 0)return[];let r=jn(go(i.sourcePort)),s=jn(ei(i.targetPort));return[{fromClientId:i.source,fromPort:[r.basePortId,r.slotIndex],toClientId:i.target,toPort:[s.basePortId,s.slotIndex]}]});return{nodes:e,edges:o}},qa=class n{constructor(){this.graphInput=I.required();this.palette=I.required();this.destroyRef=f(Ve);this.elementRef=f(rt);this.injector=f(Wt);this.bridge=f(le);this.viewportService=f(dn);this.viewport$=Xe(this.viewportService.viewport);this.diagramModel=f(Kt);this.diagramService=f(Tt);this.nodeService=f(co);this.selectionService=f(uo);this.contentMinSize=f(ni);this.lastConfirmedSelectedNodeId=void 0;this.config={zoom:{max:2,zoomToFit:{padding:100}},snapping:{shouldSnapDragForNode:()=>!0,computeSnapForNodeDrag:()=>({width:20,height:20}),defaultDragSnap:{width:20,height:20}},resize:{getMinNodeSize:e=>this.contentMinSize.minFor(e.id)}};this.nodeTemplateMap=new Qo([["lf-node",Ga]]);this.edgeTemplateMap=new Xo([["lf-edge",Aa]]);this.modelAdapter=b(()=>{let e=this.graphInput(),t=xe(()=>this.palette());return u0({nodes:e.nodes.map(o=>Ta(o,Ft(t.nodes))),edges:e.edges.map(Fp),metadata:{viewport:e.viewport}},this.injector)});this.hostHandlers={handleDragOver:e=>{if(!this.isPaletteDrag(e))return;let t=e.dataTransfer;t!==null&&(e.preventDefault(),t.dropEffect="copy")},handleDrop:e=>{let t=e.dataTransfer?.getData(lr);if(t===void 0||t.length===0)return;e.preventDefault(),e.stopPropagation();let o=this.viewportService.clientToFlowPosition({x:e.clientX-12,y:e.clientY-12});this.bridge.raw["editor.addNode.requested"].next({type:t,position:o})}};this.handlers={handleDiagramInit:()=>{let e=C0(this.diagramService);this.diagramService.registerRouting(w0(e,(o,i)=>this.diagramModel.edges().some(r=>r.source===i&&r.target===o)));let t=this.diagramModel.edges().filter(o=>o.routingMode==="manual").map(o=>({id:o.id,routingMode:"auto"}));t.length>0&&this.diagramModel.updateEdges(t)},handleNodeDragEnded:e=>{for(let t of e.nodes)this.bridge.raw["editor.updateNode.requested"].next({nodeId:t.id,position:{x:t.position.x,y:t.position.y}})},handleNodeResizeEnded:e=>{let t=e.node.size;if(t===void 0)return;let o=this.contentMinSize.minFor(e.node.id),i=Math.max(t.width,o.width),r=Math.max(t.height,o.height);(i!==t.width||r!==t.height)&&this.nodeService.resizeNode(e.node.id,{width:i,height:r},void 0,!0),this.bridge.raw["editor.updateNode.requested"].next({nodeId:e.node.id,ui:{width:i,height:r}})},handleEdgeDrawEnded:e=>{if(!e.success||e.edge===void 0)return;this.diagramModel.deleteEdges([e.edge.id]);let t=yD(e);t!==null&&this.bridge.raw["editor.addEdge.requested"].next(t)},handleClipboardPasted:e=>{if(e.nodes.length===0)return;let t=e.edges.map(i=>i.id),o=e.nodes.map(i=>i.id);t.length>0&&this.diagramModel.deleteEdges(t),this.diagramModel.deleteNodes(o),this.bridge.raw["editor.paste.requested"].next(vD(e))},handleSelectionRemoved:e=>{for(let t of e.deletedEdges)this.bridge.raw["editor.removeEdge.requested"].next(t.id);for(let t of e.deletedNodes)this.bridge.raw["editor.removeNode.requested"].next(t.id)},handleSelectionChanged:e=>{let t=e.selectedNodes[0]?.id??null;t!==this.lastConfirmedSelectedNodeId&&this.bridge.raw["editor.selectNode.requested"].next({nodeId:t})}};let e=!1,t;this.viewport$.pipe(Zt(this.destroyRef),ag(300),Wr(Da),Pe(i=>{let r=this.graphInput();(t===void 0||r!==t)&&(t=r,e=!1);let s=g0(i,r.viewport,e);return e=s.hydrateConsumed,s.publish})).subscribe(i=>{this.bridge.raw["editor.viewport.requested"].next(i)}),Xe(this.palette).pipe(Gr(1),Zt(this.destroyRef)).subscribe(i=>{this.applyPalettePortsToLiveNodes(i)});let o=(i,r)=>Ne([this.bridge.raw[i]]).pipe(Zt()).subscribe(([s])=>r(s));o("editor.addEdges",i=>{this.diagramModel.addEdges(i.map(Fp))}),o("editor.viewport.delta",i=>{if(!i)return;let{x:r,y:s,scale:a}=i,d=this.viewportService.viewport();r===d.x&&s===d.y&&a===d.scale||this.viewportService.setViewport(r,s,a)}),o("editor.deleteEdges",i=>{this.diagramModel.deleteEdges(i.map(r=>r.edgeId))}),o("editor.deleteNodes",i=>{this.diagramModel.deleteNodes(i.map(r=>r.id))}),o("editor.addNodes",i=>{let r=i.map(s=>Ta(s,Ft(this.palette().nodes)));this.diagramModel.addNodes(r)}),o("editor.updateNodes",i=>{let r=i.map(s=>Ta(s,Ft(this.palette().nodes)));this.diagramModel.updateNodes(r)}),this.bridge.cached["session.state.snapshot"].pipe(Zt()).subscribe(i=>{this.applyConfirmedSelection(i.selectedNode?.id??null)}),o("editor.nodeSelected",i=>{this.applyConfirmedSelection(i.node?.id??null)})}ngAfterViewInit(){let e=this.elementRef.nativeElement,t={capture:!0},o=r=>{this.isPaletteDrag(r)&&(r.stopImmediatePropagation(),this.hostHandlers.handleDragOver(r))},i=r=>{this.isPaletteDrag(r)&&(r.stopImmediatePropagation(),this.hostHandlers.handleDrop(r))};e.addEventListener("dragover",o,t),e.addEventListener("drop",i,t),this.destroyRef.onDestroy(()=>{e.removeEventListener("dragover",o,t),e.removeEventListener("drop",i,t)})}applyPalettePortsToLiveNodes(e){let t=Ft(e.nodes),o=this.diagramModel.nodes().map(i=>{let r=i,s=Lp(r.data.type,t);return r.data.portsConfig===s?null:_(h({},r),{data:_(h({},r.data),{portsConfig:s})})}).filter(i=>i!==null);o.length>0&&this.diagramModel.updateNodes(o)}applyConfirmedSelection(e){if(this.lastConfirmedSelectedNodeId=e,(this.selectionService.selection().nodes[0]?.id??null)!==e){if(e===null){this.selectionService.deselectAll();return}this.selectionService.select([e])}}isPaletteDrag(e){return e.dataTransfer?.types.includes(lr)===!0}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-flow-canvas"]],inputs:{graphInput:[1,"graphInput"],palette:[1,"palette"]},features:[Mo([p0()])],decls:3,vars:1,consts:[[1,"relative","h-full","w-full",3,"dragover","drop"],[1,"block","h-full","w-full",2,"background","transparent",3,"model","config","nodeTemplateMap","edgeTemplateMap"],[1,"flex","h-full","items-center","justify-center","text-sm","text-zinc-500","dark:text-zinc-400"],[1,"block","h-full","w-full",2,"background","transparent",3,"diagramInit","nodeDragEnded","nodeResizeEnded","edgeDrawEnded","clipboardPasted","selectionRemoved","selectionChanged","model","config","nodeTemplateMap","edgeTemplateMap"],["type","dots"]],template:function(t,o){if(t&1&&(v(0,"div",0),O("dragover",function(r){return o.hostHandlers.handleDragOver(r)})("drop",function(r){return o.hostHandlers.handleDrop(r)}),E(1,fD,3,4,"ng-diagram",1)(2,mD,2,0,"div",2),y()),t&2){let i;p(),P((i=o.modelAdapter())?1:2,i)}},dependencies:[ar,sa,_a],encapsulation:2})}};var bD=n=>[n];function wD(n,e){if(n&1&&$(0,"lf-flow-canvas",0),n&2){let t=g(),o=g();L("graphInput",t.graph)("palette",o.palette)}}function CD(n,e){n&1&&X(0,wD,1,2,"lf-flow-canvas",0,Qn),n&2&&Q(Ei(0,bD,e.workflowId))}function _D(n,e){if(n&1&&E(0,CD,2,2),n&2){let t;P((t=e.workflow.activeWorkflow)?0:-1,t)}}var Ya=class n{constructor(){this.bridge=f(le);this.snapshot$=this.bridge.cached["workflow.current.snapshot"];this.palette$=Ne([this.bridge.cached["palette.snapshot"],this.bridge.cached["customPalette.snapshot"]]).pipe(N(([e,t])=>Hs(e,t)));this.workflowAndPalette$=Ne({workflow:this.snapshot$,palette:this.palette$})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-canvas-container"]],decls:2,vars:3,consts:[[3,"graphInput","palette"]],template:function(t,o){if(t&1&&(E(0,_D,1,1),Nn(1,"async")),t&2){let i;P((i=On(1,1,o.workflowAndPalette$))?0:-1,i)}},dependencies:[qa,vn],encapsulation:2})}};function xD(n,e){n&1&&(B(0,"div",1),pt(1,"span",5),A())}function SD(n,e){n&1&&(B(0,"div",4),pt(1,"span",5),A())}var Za=class n{constructor(){this.side=I.required();this.label=I.required();this.wireType=I.required()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-node-port-row-static"]],hostAttrs:[1,"lf-port-row-host"],inputs:{side:[1,"side"],label:[1,"label"],wireType:[1,"wireType"]},decls:8,vars:8,consts:[[1,"lf-port-row"],[1,"lf-port-anchor","lf-port-anchor--in"],[1,"lf-port-row__content"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"lf-port-anchor","lf-port-anchor--out"],["aria-hidden","true",1,"lf-port-dot"]],template:function(t,o){t&1&&(B(0,"div",0),E(1,xD,2,0,"div",1),B(2,"div",2)(3,"span"),C(4),A(),B(5,"span",3),C(6),A()(),E(7,SD,2,0,"div",4),A()),t&2&&(Y("lf-port-row--in",o.side()==="in")("lf-port-row--out",o.side()==="out"),p(),P(o.side()==="in"?1:-1),p(3),se(o.label()),p(2),U(" \xB7 ",o.wireType()," "),p(),P(o.side()==="out"?7:-1))},styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};var Ry=(n,e)=>e.portId;function ED(n,e){if(n&1&&$(0,"lf-node-port-row-static",2),n&2){let t=e.$implicit;L("label",t.label)("wireType",t.wireType)}}function PD(n,e){if(n&1&&$(0,"lf-node-port-row-static",3),n&2){let t=e.$implicit;L("label",t.label)("wireType",t.wireType)}}var Ka=class n{constructor(){this.node=I.required();this.ports=b(()=>La(this.node(),"palette-drag-preview",[]));this.inputPortRows=b(()=>this.ports().inputPorts);this.outputPortRows=b(()=>this.ports().outputPorts)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-drag-preview"]],hostAttrs:[1,"inline-block","w-max"],inputs:{node:[1,"node"]},decls:7,vars:1,consts:[[1,"lf-node-chrome","flex","h-full","min-h-12","min-w-40","flex-col","rounded-xl","border","border-zinc-300","bg-white","py-3","dark:border-zinc-700","dark:bg-zinc-900"],[1,"truncate","px-1","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100"],["side","in",3,"label","wireType"],["side","out",3,"label","wireType"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"span",1),C(2),y(),X(3,ED,1,2,"lf-node-port-row-static",2,Ry),X(5,PD,1,2,"lf-node-port-row-static",3,Ry),y()),t&2&&(p(2),U(" ",o.node().displayName," "),p(),Q(o.inputPortRows()),p(2),Q(o.outputPortRows()))},dependencies:[Za],styles:['[_nghost-%COMP%]{display:block;box-sizing:border-box;width:100%}.lf-diagram-node[_nghost-%COMP%]{height:100%}.lf-diagram-node[_nghost-%COMP%] ng-diagram-node-resize-adornment{display:block;box-sizing:border-box;width:100%;height:100%}.lf-node-chrome[_ngcontent-%COMP%]{--lf-node-chrome-padding-x: 20px;position:relative;box-sizing:border-box;display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;padding-left:var(--lf-node-chrome-padding-x);padding-right:var(--lf-node-chrome-padding-x)}.lf-node-content[_ngcontent-%COMP%]{display:flex;width:100%;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column}.lf-node-title[_ngcontent-%COMP%]{flex:0 0 auto;min-height:1.25rem;line-height:1.25rem}.lf-port-row-host[_nghost-%COMP%]{display:flex;flex:0 0 auto;flex-direction:column}.lf-port-row-host--grow[_nghost-%COMP%]{flex:var(--lf-inline-flex, 1) 1 0;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row-wrapper[_ngcontent-%COMP%]{display:flex;flex:1 1 auto;flex-direction:column;min-height:min-content;overflow:visible}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%]{display:flex;flex:1 1 0;flex-direction:column;min-height:min-content;overflow:hidden}.lf-port-row-host--grow[_nghost-%COMP%] .lf-port-row__inline[_ngcontent-%COMP%] lf-inline-field[_ngcontent-%COMP%]{flex:1 1 0;min-height:min-content;overflow:hidden}.lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f659}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--selected[_ngcontent-%COMP%]{border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa59}.lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#d97706}.lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#10b981}.lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#f43f5e;box-shadow:0 0 0 2px rgba(244 63 94,.25)}.lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#0ea5e9;box-shadow:0 0 0 2px rgba(14 165 233,.4)}.lf-node-chrome--pulse[_ngcontent-%COMP%]{box-shadow:0 0 0 2px #10b98180;transition:box-shadow .15s ease-out}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--pending[_ngcontent-%COMP%]{border-color:#ca8a04}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--value[_ngcontent-%COMP%]{border-color:#34d399}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--error[_ngcontent-%COMP%]{border-color:#fb7185;box-shadow:0 0 0 2px rgba(251 113 133,.25)}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hitl[_ngcontent-%COMP%]{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56 189 248,.4)}.lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf64d}[data-theme="dark"][_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-chrome--hovered[_ngcontent-%COMP%]{border-color:#a78bfa;box-shadow:0 0 0 2px #a78bfa4d}.lf-port-row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;min-height:1.5rem;padding-top:.125rem;padding-bottom:.125rem}.lf-port-row__inline[_ngcontent-%COMP%]{padding-bottom:.25rem;padding-left:.25rem}.lf-port-row__content[_ngcontent-%COMP%]{min-width:0;flex:1 1 auto;font-size:10px;line-height:1.2;color:#64748b}.lf-port-row--in[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-left:.25rem}.lf-port-row--out[_ngcontent-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{padding-right:.25rem;text-align:right}.lf-port-anchor[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.lf-port-anchor--in[_ngcontent-%COMP%]{left:calc(-1 * var(--lf-node-chrome-padding-x))}.lf-port-anchor--out[_ngcontent-%COMP%]{right:calc(-1 * var(--lf-node-chrome-padding-x))}[data-theme="dark"][_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-row__content[_ngcontent-%COMP%]{color:#94a3b8}.lf-port-dot[_ngcontent-%COMP%]{display:block;box-sizing:border-box;width:10px;height:10px;border:2px solid rgb(148 163 184);border-radius:9999px;background:#fff}[data-theme="dark"][_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-dot[_ngcontent-%COMP%]{border-color:#64748b;background:#0f172a}.lf-node-label-input[_ngcontent-%COMP%]{width:calc(100% - .5rem);border-radius:.25rem;border:1px solid rgb(59 130 246);background:#fafafa;padding:.125rem .25rem;color:#18181b;outline:none}[data-theme="dark"][_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-label-input[_ngcontent-%COMP%]{border-color:#60a5fa;background:#09090b;color:#f4f4f5}[_nghost-%COMP%] .resize-handle, [_nghost-%COMP%] .resize-line{opacity:0;pointer-events:none}.lf-node-se-handle[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;z-index:2;box-sizing:border-box;width:1rem;height:1rem;overflow:hidden;border-bottom-right-radius:.75rem;cursor:nwse-resize;pointer-events:auto}.lf-node-se-handle__lines[_ngcontent-%COMP%]{display:block;position:absolute;right:0;bottom:0;width:.875rem;height:.875rem;background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(161 161 170) 2px,rgb(161 161 170) 3.25px);clip-path:polygon(100% 0,100% 100%,0 100%)}[data-theme="dark"][_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-node-se-handle__lines[_ngcontent-%COMP%]{background-image:repeating-linear-gradient(-45deg,transparent 0,transparent 2px,rgb(113 113 122) 2px,rgb(113 113 122) 3.25px)}.lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(239 246 255)}.lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(37 99 235);--ngd-port-background-color: rgb(191 219 254)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--node-selected[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(96 165 250);--ngd-port-background-color: rgb(30 58 138)}[data-theme="dark"][_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%], [data-theme="dark"] [_nghost-%COMP%] .lf-port-anchor--endpoint[_ngcontent-%COMP%]{--ngd-port-border-color: rgb(147 197 253);--ngd-port-background-color: rgb(30 64 175)}']})}};function Ny(n,e,t,o){let i=o.dataTransfer;if(i===null)return null;let r=document.createElement("div");r.style.position="fixed",r.style.top="-2000px",r.style.left="-2000px",r.style.display="inline-block",r.style.width="max-content",r.style.pointerEvents="none",r.style.opacity=String(.5),document.body.appendChild(r);let s=Ng(Ka,{hostElement:r,environmentInjector:n});return s.setInput("node",t),e.attachView(s.hostView),s.changeDetectorRef.detectChanges(),i.setDragImage(r,12,12),{destroy:()=>{e.detachView(s.hostView),s.destroy(),r.remove()}}}var Oy=(n,e,t,o=8)=>{if(t<=0||e<=0)return n;let i=o,r=Math.max(i,t-e-o);return Math.min(Math.max(n,i),r)};function DD(n,e){if(n&1&&($(0,"span",9),v(1,"span",10),C(2),v(3,"span",11),C(4),y()()),n&2){let t=g().$implicit;J("aria-label",t.leftDot.ariaLabel),p(2),U(" ",t.leftDot.label," "),p(2),U(" \xB7 ",t.leftDot.wireType," ")}}function TD(n,e){n&1&&(v(0,"p",5),C(1," Dynamic channels "),y())}function MD(n,e){if(n&1&&(v(0,"span",12),C(1),v(2,"span",11),C(3),y()(),$(4,"span",9)),n&2){let t=g().$implicit;p(),U(" ",t.rightDot.label," "),p(2),U(" \xB7 ",t.rightDot.wireType," "),p(),J("aria-label",t.rightDot.ariaLabel)}}function kD(n,e){if(n&1&&(v(0,"div",7),$(1,"lf-inline-field",13),y()),n&2){let t=g().$implicit;p(),L("config",t.inline)("value",t.inlineValue)("disabled",!0)}}function RD(n,e){n&1&&(v(0,"span",8),C(1," multi "),y())}function ND(n,e){if(n&1&&(v(0,"div",2)(1,"div",3)(2,"div",4),E(3,DD,5,3),y(),E(4,TD,2,0,"p",5),v(5,"div",6),E(6,MD,5,3),y()(),E(7,kD,2,3,"div",7),E(8,RD,2,0,"span",8),y()),n&2){let t=e.$implicit;p(3),P(t.leftDot!==null?3:-1),p(),P(t.isBypassStub?4:-1),p(2),P(t.rightDot!==null?6:-1),p(),P(t.inline!==null?7:-1),p(),P(t.showMultiBadge?8:-1)}}function Ay(n){return n?.hidden===!0}function OD(n){return n.dynamic===!0?"dynamic":String(n.wireType??"any")}function AD(n){let e=n.name??String(n.portId??"unknown"),t=n.name??e,o=OD(n);return{portId:e,label:t,wireType:o,ariaLabel:`${t}, ${o} input`}}function LD(n){let e=String(n.portId),t="name"in n?n.name:void 0,o=String(t??e),i=n.fromInput!==void 0?`from(${n.fromInput})`:String(n.wireType);return{portId:e,label:o,wireType:i,ariaLabel:`${o}, ${i} output`}}function FD(n){return n===void 0||typeof n=="string"&&n.startsWith("preview")?null:n}function zD(n){return n.inputsConfigs.filter(e=>!Ay(e))}function BD(n){return n.outputsConfigs.filter(e=>e!==void 0&&!Ay(e))}function $D(n){let e=zD(n),t=BD(n),o=[],i=Math.max(e.length,t.length);for(let r=0;r<i;r+=1){let s=e[r],a=t[r];o.push({leftDot:s!==void 0?AD(s):null,rightDot:a!==void 0?LD(a):null,inline:FD(s?.inline),inlineValue:s?.defaultValue,showMultiBadge:s?.multi!==void 0,isBypassStub:!1})}return o.length===0&&Object.keys(n.bypassPorts).length>0&&e.length===0&&t.length===0&&o.push({leftDot:null,rightDot:null,inline:null,inlineValue:void 0,showMultiBadge:!1,isBypassStub:!0}),o}var Xa=class n{constructor(){this.node=I.required();this.bodyRows=b(()=>$D(this.node()))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-node-preview"]],inputs:{node:[1,"node"]},decls:5,vars:1,consts:[[1,"relative","min-w-48"],[1,"mb-2","truncate","text-center","text-xs","font-semibold","text-zinc-900","dark:text-zinc-100"],[1,"py-1"],[1,"flex","items-start","gap-2"],[1,"flex","min-w-0","flex-1","items-start","gap-1.5"],[1,"min-w-0","flex-1","text-center","text-[10px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","min-w-0","flex-1","items-start","justify-end","gap-1.5"],[1,"mt-1"],[1,"mt-1","block","text-[10px]","text-zinc-400","dark:text-zinc-500"],[1,"mt-0.5","h-2.5","w-2.5","shrink-0","rounded-full","border-2","border-zinc-400","bg-white","dark:border-zinc-500","dark:bg-zinc-900"],[1,"text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"text-zinc-400","dark:text-zinc-500"],[1,"text-right","text-[10px]","text-zinc-600","dark:text-zinc-300"],[3,"config","value","disabled"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"p",1),C(2),y(),X(3,ND,9,5,"div",2,on),y()),t&2&&(p(2),U(" ",o.node().displayName," "),p(),Q(o.bodyRows()))},dependencies:[Yn],encapsulation:2})}};var UD=["popoverRoot"],jD=(n,e)=>e.field;function VD(n,e){if(n&1&&(v(0,"li",9)(1,"span",10),C(2),y(),v(3,"span",11),C(4),y()()),n&2){let t=e.$implicit;p(2),se(t.label??t.field),p(2),U(" \xB7 ",t.type," ")}}function WD(n,e){if(n&1&&(v(0,"div",5)(1,"h3",7),C(2," Panel "),y(),v(3,"ul",8),X(4,VD,5,2,"li",9,jD),y()()),n&2){let t=g(2);p(4),Q(t.panelFields())}}function GD(n,e){if(n&1&&$(0,"div",6),n&2){let t=g(2);L("innerHTML",t.descriptionHtml(),Rn)}}function qD(n,e){if(n&1){let t=V();v(0,"div",2,0)(2,"div",3),O("mouseenter",function(){D(t);let i=g();return T(i.panelEnter.emit())})("mouseleave",function(){D(t);let i=g();return T(i.panelLeave.emit())}),$(3,"lf-palette-node-preview",4),E(4,WD,6,0,"div",5),E(5,GD,1,1,"div",6),y()()}if(n&2){let t=g();Ue("top",t.popoverTop(),"px")("left",t.popoverLeft(),"px"),J("aria-label",t.node().displayName),p(3),L("node",t.node()),p(),P(t.panelFields().length>0?4:-1),p(),P(t.descriptionHtml()!==null?5:-1)}}function YD(n){if(n===void 0||n.trim().length===0)return null;let e=gi(n);return e.length>0?e:null}var Qa=class n{constructor(){this.node=I(null);this.anchor=I(null);this.panelEnter=qt();this.panelLeave=qt();this.popoverRoot=st("popoverRoot");this.popoverHeightPx=H(0);this.panelFields=b(()=>{let e=this.node();return e===null?[]:e.uiSchema.filter(t=>t.placement!=="inline")});this.descriptionHtml=b(()=>{let e=this.node();return e===null?null:YD(e.description)});this.popoverLeft=b(()=>{let e=this.anchor();return e===null?0:e.left+e.width+8});this.popoverTop=b(()=>{let e=this.anchor();if(e===null)return 0;let t=typeof globalThis<"u"&&typeof globalThis.innerHeight=="number"?globalThis.innerHeight:0;return Oy(e.top,this.popoverHeightPx(),t,8)});Rg(()=>{this.node(),this.anchor();let e=this.popoverRoot()?.nativeElement;if(e===void 0){this.popoverHeightPx.set(0);return}this.popoverHeightPx.set(e.getBoundingClientRect().height)})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-node-detail-popover"]],viewQuery:function(t,o){t&1&&ht(o.popoverRoot,UD,5),t&2&&gt()},inputs:{node:[1,"node"],anchor:[1,"anchor"]},outputs:{panelEnter:"panelEnter",panelLeave:"panelLeave"},decls:1,vars:1,consts:[["popoverRoot",""],["role","dialog",1,"pointer-events-none","fixed","z-50","w-72",3,"top","left"],["role","dialog",1,"pointer-events-none","fixed","z-50","w-72"],[1,"pointer-events-auto","rounded-lg","border","border-zinc-200","bg-white","p-3","shadow-xl","dark:border-zinc-700","dark:bg-zinc-900",3,"mouseenter","mouseleave"],[3,"node"],[1,"mt-3","pt-1"],[1,"prose","prose-xs","mt-3","max-w-none","pt-1","text-zinc-600","dark:prose-invert","dark:text-zinc-300",3,"innerHTML"],[1,"text-[10px]","font-semibold","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],[1,"mt-1","space-y-1"],[1,"text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"font-medium"],[1,"text-zinc-400","dark:text-zinc-500"]],template:function(t,o){t&1&&E(0,qD,6,8,"div",1),t&2&&P(o.node()!==null&&o.anchor()!==null?0:-1)},dependencies:[Xa],encapsulation:2})}};var ZD=(n,e)=>e.source,KD=(n,e)=>e.packageName+e.message,Ly=(n,e)=>e.category,Fy=(n,e)=>e.type;function XD(n,e){if(n&1&&(v(0,"li",12)(1,"strong"),C(2),y(),v(3,"pre",13),C(4),y()()),n&2){let t=e.$implicit;p(2),se(t.packageName),p(2),se(t.message)}}function QD(n,e){if(n&1&&(v(0,"ul",11),X(1,XD,5,2,"li",12,KD),y()),n&2){let t=g(4);p(),Q(t.customErrors())}}function JD(n,e){if(n&1){let t=V();v(0,"div",8)(1,"span",9),C(2),y(),v(3,"button",10),O("click",function(){D(t);let i=g(3);return T(i.requestCustomPaletteUpdate())}),C(4," Update "),y()(),E(5,QD,3,0,"ul",11)}if(n&2){let t=g(3);p(2),U(" ",t.customStatusLabel()," "),p(),L("disabled",t.customStatus()==="compiling"),p(2),P(t.customErrors().length>0?5:-1)}}function eT(n,e){n&1&&(v(0,"p",14),C(1," No custom nodes yet "),y())}function tT(n,e){if(n&1&&E(0,eT,2,0,"p",14),n&2){let t=g(2).$implicit;P(t.source==="custom"?0:-1)}}function nT(n,e){if(n&1){let t=V();v(0,"li")(1,"button",20),O("dragstart",function(i){let r=D(t).$implicit,s=g(9);return T(s.startPaletteDrag(r,i))})("dragend",function(){D(t);let i=g(9);return T(i.endPaletteDrag())})("mouseenter",function(i){let r=D(t).$implicit,s=g(9);return T(s.showPopover(r,i))})("mouseleave",function(){D(t);let i=g(9);return T(i.hidePopover())})("click",function(i){let r=D(t).$implicit,s=g(9);return T(s.togglePinnedPopover(r,i))}),C(2),y()()}if(n&2){let t=e.$implicit,o=g(9);p(),ft(o.nodeRowClass),p(),U(" ",t.displayName," ")}}function oT(n,e){if(n&1&&(v(0,"ul",18),X(1,nT,3,3,"li",null,Fy),y()),n&2){let t=g().$implicit;p(),Q(t.nodes)}}function iT(n,e){if(n&1){let t=V();v(0,"div",19)(1,"button",16),O("click",function(){let i=D(t).$implicit,r=g(6).$implicit,s=g();return T(s.toggleAdvancedSubcategory(r.source,i.category))}),v(2,"span"),C(3),y(),fe(),v(4,"svg",17),$(5,"path"),y()(),E(6,oT,3,0,"ul",18),y()}if(n&2){let t=e.$implicit,o=g(6).$implicit,i=g();p(),ft(i.categoryHeaderClass),J("aria-expanded",i.isAdvancedSubcategoryExpanded(o.source,t.category)),p(2),se(t.category),p(),Y("rotate-180",i.isAdvancedSubcategoryExpanded(o.source,t.category)),p(),J("d",i.chevronPath),p(),P(i.isAdvancedSubcategoryExpanded(o.source,t.category)?6:-1)}}function rT(n,e){if(n&1&&X(0,iT,7,8,"div",19,Ly),n&2){let t=g(2).$implicit;Q(t.subcategories)}}function sT(n,e){if(n&1){let t=V();v(0,"li")(1,"button",20),O("dragstart",function(i){let r=D(t).$implicit,s=g(7);return T(s.startPaletteDrag(r,i))})("dragend",function(){D(t);let i=g(7);return T(i.endPaletteDrag())})("mouseenter",function(i){let r=D(t).$implicit,s=g(7);return T(s.showPopover(r,i))})("mouseleave",function(){D(t);let i=g(7);return T(i.hidePopover())})("click",function(i){let r=D(t).$implicit,s=g(7);return T(s.togglePinnedPopover(r,i))}),C(2),y()()}if(n&2){let t=e.$implicit,o=g(7);p(),ft(o.nodeRowClass),p(),U(" ",t.displayName," ")}}function aT(n,e){if(n&1&&(v(0,"ul",18),X(1,sT,3,3,"li",null,Fy),y()),n&2){let t=g(2).$implicit;p(),Q(t.nodes)}}function dT(n,e){if(n&1&&E(0,rT,2,0)(1,aT,3,0,"ul",18),n&2){let t=g().$implicit,o=g(4);P(o.isAdvancedGroup(t)?0:1)}}function lT(n,e){if(n&1){let t=V();v(0,"div",15)(1,"button",16),O("click",function(){let i=D(t).$implicit,r=g(3).$implicit,s=g();return T(s.toggleCategory(r.source,i.category))}),v(2,"span"),C(3),y(),fe(),v(4,"svg",17),$(5,"path"),y()(),E(6,dT,2,1),y()}if(n&2){let t=e.$implicit,o=g(3).$implicit,i=g();p(),ft(i.categoryHeaderClass),J("aria-expanded",i.isCategoryExpanded(o.source,t.category)),p(2),se(t.category),p(),Y("rotate-180",i.isCategoryExpanded(o.source,t.category)),p(),J("d",i.chevronPath),p(),P(i.isCategoryExpanded(o.source,t.category)?6:-1)}}function cT(n,e){if(n&1&&X(0,lT,7,8,"div",15,Ly),n&2){let t=g(2).$implicit;Q(t.categories)}}function uT(n,e){if(n&1&&(E(0,JD,6,3),E(1,tT,1,1)(2,cT,2,0)),n&2){let t=g().$implicit;P(t.source==="custom"?0:-1),p(),P(t.categories.length===0?1:2)}}function pT(n,e){if(n&1){let t=V();v(0,"div",4)(1,"button",6),O("click",function(){let i=D(t).$implicit,r=g();return T(r.toggleSource(i.source))}),v(2,"span"),C(3),y(),fe(),v(4,"svg",7),$(5,"path"),y()(),E(6,uT,3,2),y()}if(n&2){let t=e.$implicit,o=g();p(),J("aria-expanded",o.isSourceExpanded(t.source)),p(2),se(o.sourceSectionLabel(t.source)),p(),Y("rotate-180",o.isSourceExpanded(t.source)),p(),J("d",o.chevronPath),p(),P(o.isSourceExpanded(t.source)?6:-1)}}var hT="flex w-full items-center justify-between gap-2 rounded px-1.5 py-0.5 text-left text-[10px] font-medium uppercase tracking-wide text-zinc-500 transition hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",gT="w-full cursor-grab rounded-lg border border-zinc-300 bg-white px-2 py-1.5 text-left text-[11px] text-zinc-800 shadow-sm transition hover:border-zinc-400 hover:bg-zinc-50 active:cursor-grabbing dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100 dark:hover:border-zinc-500 dark:hover:bg-zinc-800",fT="M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.24a.75.75 0 0 1-1.06 0L5.21 8.29a.75.75 0 0 1 .02-1.08Z",Ja=class n{constructor(){this.bridge=f(le);this.appRef=f(es);this.environmentInjector=f(hn);this.seededCategoryExpansion=!1;this.dragImageSession=null;this.categoryHeaderClass=hT;this.nodeRowClass=gT;this.chevronPath=fT;this.expandedSources=H(new Set(["system"]));this.expandedCategories=H(new Set);this.filterQuery=H("");this.hoverTarget=H(null);this.pinnedTarget=H(null);this.popoverHovered=H(!1);this.paletteState=ae(Ne([this.bridge.cached["palette.snapshot"].pipe(he({nodes:[]})),this.bridge.cached["customPalette.snapshot"].pipe(he($s))]).pipe(N(([e,t])=>mm(e,t)),he(oc)),{initialValue:oc});this.sections=b(()=>this.paletteState().sections);this.customStatus=b(()=>this.paletteState().customStatus);this.customErrors=b(()=>this.paletteState().customErrors);this.customStatusLabel=b(()=>{switch(this.customStatus()){case"compiling":return"Compiling\u2026";case"ok":return"Compiled";case"partial":return"Partial (some errors)";case"error":return"Compile error";default:return"Not compiled"}});this.visibleSections=b(()=>bm(this.sections(),this.filterQuery()));this.isFiltering=b(()=>this.filterQuery().trim().length>0);this.popoverNode=b(()=>this.pinnedTarget()?.node??this.hoverTarget()?.node??null);this.popoverAnchor=b(()=>(this.pinnedTarget()??this.hoverTarget())?.anchor??null);this.sourceSectionLabel=ym;me(()=>{if(this.seededCategoryExpansion)return;let e=new Set;for(let t of this.sections())for(let o of t.categories){if(o.category===Go){for(let i of o.subcategories??[])e.add(js(t.source,i.category));continue}e.add(Us(t.source,o.category))}e.size!==0&&(this.expandedCategories.set(e),this.seededCategoryExpansion=!0)})}onFilterInput(e){let t=e.target;t instanceof HTMLInputElement&&this.filterQuery.set(t.value)}requestCustomPaletteUpdate(){this.bridge.raw["customPalette.update.requested"].next({})}isAdvancedGroup(e){return e.category===Go}isSourceExpanded(e){return this.isFiltering()||this.expandedSources().has(e)}isCategoryExpanded(e,t){return this.isFiltering()||this.expandedCategories().has(Us(e,t))}isAdvancedSubcategoryExpanded(e,t){return this.isFiltering()||this.expandedCategories().has(js(e,t))}toggleSource(e){this.expandedSources.update(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o})}toggleCategory(e,t){this.toggleCollapseKey(Us(e,t))}toggleAdvancedSubcategory(e,t){this.toggleCollapseKey(js(e,t))}toggleCollapseKey(e){this.expandedCategories.update(t=>{let o=new Set(t);return o.has(e)?o.delete(e):o.add(e),o})}startPaletteDrag(e,t){t.dataTransfer!==null&&(this.dismissPopover(),t.dataTransfer.setData(lr,e.type),t.dataTransfer.effectAllowed="copy",this.endPaletteDrag(),this.dragImageSession=Ny(this.environmentInjector,this.appRef,e,t))}endPaletteDrag(){this.dragImageSession?.destroy(),this.dragImageSession=null}dismissPopover(){this.hoverTarget.set(null),this.pinnedTarget.set(null),this.popoverHovered.set(!1)}showPopover(e,t){if(this.pinnedTarget()!==null)return;let o=t.currentTarget;if(!(o instanceof HTMLElement))return;let i=o.getBoundingClientRect();this.hoverTarget.set({node:e,anchor:{top:i.top,left:i.left,height:i.height,width:i.width}})}hidePopover(){this.pinnedTarget()!==null||this.popoverHovered()||this.hoverTarget.set(null)}onPopoverPanelLeave(){this.popoverHovered.set(!1),this.hidePopover()}togglePinnedPopover(e,t){let o=t.currentTarget;if(!(o instanceof HTMLElement))return;let i=o.getBoundingClientRect(),r={node:e,anchor:{top:i.top,left:i.left,height:i.height,width:i.width}};if(this.pinnedTarget()?.node.type===e.type){this.pinnedTarget.set(null),this.hoverTarget.set(null);return}this.pinnedTarget.set(r),this.hoverTarget.set(null)}handleEscape(){this.dismissPopover()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-palette-sidebar"]],hostAttrs:[1,"block","h-full","min-h-0"],hostBindings:function(t,o){t&1&&O("keydown.escape",function(){return o.handleEscape()},Nt)},decls:8,vars:3,consts:[[1,"relative","flex","h-full","min-h-0","flex-col"],[1,"shrink-0","text-sm","font-semibold","text-zinc-900","dark:text-zinc-100"],["type","search","placeholder","Filter nodes\u2026",1,"mt-3","w-full","shrink-0","rounded-md","border","border-zinc-200","bg-zinc-50","px-2","py-1.5","text-[11px]","text-zinc-800","outline-none","transition","placeholder:text-zinc-400","focus:border-zinc-400","dark:border-zinc-700","dark:bg-zinc-950","dark:text-zinc-100","dark:placeholder:text-zinc-500","dark:focus:border-zinc-500",3,"input","value"],[1,"lf-scroll","mt-3","min-h-0","flex-1","overflow-y-auto","pr-1"],[1,"mb-2"],[3,"panelEnter","panelLeave","node","anchor"],["type","button",1,"flex","w-full","items-center","justify-between","gap-2","rounded-md","px-2","py-1.5","text-left","text-xs","font-semibold","text-zinc-800","transition","hover:bg-zinc-100","dark:text-zinc-100","dark:hover:bg-zinc-800",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-3.5","w-3.5","shrink-0","transition"],[1,"flex","items-center","justify-between","gap-2","py-1","pl-4","pr-2"],[1,"text-[10px]","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],["type","button",1,"rounded","px-1.5","py-0.5","text-[10px]","font-medium","text-zinc-700","transition","hover:bg-zinc-100","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],[1,"mb-1","space-y-1","py-1","pl-4","pr-2","text-[11px]","text-red-700","dark:text-red-300"],[1,"whitespace-pre-wrap"],[1,"mt-0.5","font-sans","whitespace-pre-wrap"],[1,"py-1","pl-4","pr-2","text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"mt-1.5","pl-4"],["type","button",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-2.5","w-2.5","shrink-0","transition"],[1,"mt-1","space-y-1","pl-4"],[1,"mt-1","pl-4"],["type","button","draggable","true",3,"dragstart","dragend","mouseenter","mouseleave","click"]],template:function(t,o){t&1&&(v(0,"div",0)(1,"h2",1),C(2," Palette "),y(),v(3,"input",2),O("input",function(r){return o.onFilterInput(r)}),y(),v(4,"div",3),X(5,pT,7,6,"div",4,ZD),y(),v(7,"lf-palette-node-detail-popover",5),O("panelEnter",function(){return o.popoverHovered.set(!0)})("panelLeave",function(){return o.onPopoverPanelLeave()}),y()()),t&2&&(p(3),L("value",o.filterQuery()),p(2),Q(o.visibleSections()),p(2),L("node",o.popoverNode())("anchor",o.popoverAnchor()))},dependencies:[Qa],encapsulation:2})}};var By=["read","glob","grep","edit","write","create","delete","bash"],mT=["You are the Plan agent in a Langflower workflow.","","Understand the user's goal, explore the codebase read-only, and produce a clear","implementation plan. Do not modify source code or non-documentation files.","","Write plans in Markdown with sections: Goal, Context, Steps, Risks, Open questions.","","When requirements are ambiguous, use ask_user before finalizing the plan."].join(`
305
+ `),yT=["You are the Coder agent in a Langflower workflow.","","Implement the requested changes in the project repository. Make minimal, correct","edits. Prefer precise file edits over large rewrites.","","When tests are available, run them to verify your work. Summarize what you changed","in your final response."].join(`
306
+ `),vT=["You are the Explorer agent in a Langflower workflow.","","Research the topic using web_fetch. Synthesize findings into clear Markdown notes.","Do not modify application source code\u2014only *.md research notes.","","Cite URLs. Separate facts from inference."].join(`
307
+ `),ed=()=>Object.fromEntries(By.map(n=>[n,"allow"])),bT=ed(),wT=_(h({},ed()),{bash:"ask",delete:"ask"}),CT=_(h({},ed()),{write:"ask",create:"ask",edit:"deny",delete:"deny",bash:"deny"}),_T=_(h({},ed()),{read:"allow",write:"ask",create:"ask",glob:"deny",grep:"deny",edit:"deny",delete:"deny",bash:"deny"}),$y={custom:{systemPrompt:"",skillId:"",toolPermissions:bT},plan:{systemPrompt:mT,skillId:"plan",toolPermissions:CT},coder:{systemPrompt:yT,skillId:"coder",toolPermissions:wT},explorer:{systemPrompt:vT,skillId:"explorer",toolPermissions:_T}},Ir=n=>n==="plan"||n==="coder"||n==="explorer"?n:"custom";var yh=n=>n==="allow"||n==="ask"||n==="deny",xT=n=>{if(n===null||typeof n!="object"||Array.isArray(n))return{};let e=Object.entries(n).filter(t=>yh(t[1]));return Object.fromEntries(e)},ST=n=>{let e=new Set(n),t={};for(let o of By){if(!e.has(o)){t[o]="deny";continue}t[o]=o==="bash"||o==="delete"?"ask":"allow"}for(let o of n)o in t||(t[o]="allow");return t},td=(n,e,t)=>{let o=xT(e);return Object.keys(o).length>0?o:Array.isArray(t)?ST(t.map(String)):$y[n].toolPermissions};var Hy=(n,e)=>{let s=n,{enabledToolIds:t,toolPermissions:o}=s,i=kt(s,["enabledToolIds","toolPermissions"]),r=$y[e];return _(h({},i),{rolePreset:e,toolPermissions:h({},r.toolPermissions)})},Pr={read:{"*":"allow"},glob:{"*":"allow"},grep:{"*":"allow"},edit:{"*":"allow"},write:{"*":"allow"},create:{"*":"allow"},delete:{"*":"allow"},bash:{"*":"allow"}},zy={deny:3,ask:2,allow:1},Uy=(n,e)=>{let t=n[e]??Pr[e];if(t===void 0)return{"*":"allow"};if(yh(t))return{"*":t};let o=Object.entries(t).filter(i=>yh(i[1]));return o.length===0?{"*":"deny"}:Object.fromEntries(o)},Dr=(n,e)=>{let t=h(h({},Pr),n??{});if(t[e]===void 0&&Pr[e]===void 0)return"allow";let o=Uy(t,e),i=o["*"];if(i!==void 0&&Object.keys(o).length===1)return i;let r=Object.values(o);return r.some(s=>s==="allow")?"allow":r.some(s=>s==="ask")?"ask":"deny"},jy=n=>n==="deny"?[]:n==="ask"?["deny","ask"]:["deny","ask","allow"],Tr=(n,e)=>zy[n]>=zy[e]?n:e,Mr=(n,e)=>{let t=h(h({},Pr),n??{});if(t[e]===void 0&&Pr[e]===void 0)return!1;let o=Object.values(Uy(t,e));return o.length>0&&o.every(i=>i==="deny")},Vy=(n,e)=>{let t=h({},n),o=!1;for(let i of e)t[i]===void 0&&(t[i]="allow",o=!0);return o?t:n};var bh=n=>!Array.isArray(n)||n.length===0?!1:n.every(e=>e===!1||typeof e=="string"||e instanceof Error||bh(e)||typeof e=="object"&&e!==null&&!Array.isArray(e)&&Object.keys(e).length===0),Wy=n=>{if(!Array.isArray(n))return n;let e=n.filter(Boolean).map(Wy);return e.length===0?n:e.length===1?e[0]:e},vh=n=>typeof n=="string"?n:n instanceof Error?n.message.length>0?n.message:String(n):typeof n=="object"&&n!==null&&!Array.isArray(n)&&Object.keys(n).length===0?"Error":String(n),Gy=n=>{let e=Wy(n);return Array.isArray(e)?e.map(t=>bh(t)?Gy(t):vh(t)).filter(t=>t.length>0).join(`
308
+ `):vh(e)},bo=n=>{if(typeof n=="string")return n;if(n==null)return String(n);if(n instanceof Error)return vh(n);if(bh(n))return Gy(n);if(typeof n=="object")try{return JSON.stringify(n,null,2)}catch(e){return String(n)}return String(n)};var qy="No models available for this provider",Yy=(n,e)=>e?.loading===!0?{disabled:!1,emptyHint:"Loading models\u2026"}:e?.error!==void 0?n===0?{disabled:!0,fieldError:e.error.trim().length>0?e.error:qy}:{disabled:!1,emptyHint:`Live catalog unavailable \u2014 using static models. ${e.error}`}:n===0?{disabled:!1,emptyHint:qy}:{disabled:!1};var Zy=(n,e)=>e.some(t=>t.value==="")?e:n.optionsSource==="langflower.skills"?[{value:"",title:"None"},...e]:n.optionsSource==="langflower.providers"?[{value:"",title:"Select\u2026"},...e]:e;var Ky=n=>h(h(h({type:"number"},typeof n.min=="number"?{min:n.min}:{}),typeof n.max=="number"?{max:n.max}:{}),typeof n.step=="number"?{step:n.step}:{});var ET=(n,e)=>e.toolId;function PT(n,e){if(n&1){let t=V();B(0,"input",8),ve("change",function(){D(t);let i=g().$implicit,r=g().$implicit,s=g();return T(s.onPick(r.toolId,i))}),A()}if(n&2){let t=g().$implicit,o=g().$implicit,i=g();ge("name","tool-perm-"+o.toolId)("checked",o.decision===t)("disabled",i.disabled())}}function IT(n,e){if(n&1&&(B(0,"td",6),E(1,PT,1,3,"input",7),A()),n&2){let t=e.$implicit,o=g().$implicit;p(),P(o.options.includes(t)?1:-1)}}function DT(n,e){if(n&1&&(B(0,"tr",4)(1,"td",5),C(2),A(),X(3,IT,2,1,"td",6,Qn),A()),n&2){let t=e.$implicit,o=g();p(),ge("title",t.toolId),p(),U(" ",t.title," "),p(),Q(o.allDecisions)}}var TT=["deny","ask","allow"],Xy=(n,e,t)=>{let o=[];for(let i of n){let r=String(i.value);if(Mr(t,r))continue;let s=Dr(t,r),a=jy(s);if(a.length===0)continue;let d=e[r]??"allow",l=Tr(s,d);o.push({toolId:r,title:i.title??r,decision:l,options:a})}return o},nd=class n{constructor(){this.rows=I.required();this.disabled=I(!1);this.decisionChange=qt();this.allDecisions=TT}onPick(e,t){this.decisionChange.emit({toolId:e,decision:t})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-tool-permission-table"]],inputs:{rows:[1,"rows"],disabled:[1,"disabled"]},outputs:{decisionChange:"decisionChange"},decls:14,vars:0,consts:[[1,"w-full","border-collapse","text-[10px]"],[1,"text-left","text-zinc-500","dark:text-zinc-400"],[1,"py-1","pr-2","font-medium"],[1,"px-1","py-1","text-center","font-medium"],[1,"border-t","border-zinc-200","dark:border-zinc-700"],[1,"py-1","pr-2","text-zinc-700","dark:text-zinc-200",3,"title"],[1,"px-1","py-1","text-center"],["type","radio",1,"align-middle",3,"name","checked","disabled"],["type","radio",1,"align-middle",3,"change","name","checked","disabled"]],template:function(t,o){t&1&&(B(0,"table",0)(1,"thead")(2,"tr",1)(3,"th",2),C(4,"tool"),A(),B(5,"th",3),C(6,"deny"),A(),B(7,"th",3),C(8,"ask"),A(),B(9,"th",3),C(10,"allow"),A()()(),B(11,"tbody"),X(12,DT,5,2,"tr",4,ET),A()()),t&2&&(p(12),Q(o.rows()))},encapsulation:2})}};var Qy=(n,e)=>e.portId,MT=(n,e)=>e.field;function kT(n,e){if(n&1){let t=V();v(0,"lf-tool-permission-table",14),O("decisionChange",function(i){D(t);let r=g(5);return T(r.onToolPermissionChange(i.toolId,i.decision))}),y()}if(n&2){let t=g().$implicit;L("rows",t.permissionRows)("disabled",t.disabled===!0)}}function RT(n,e){if(n&1){let t=V();v(0,"lf-inline-field",15),O("valueChange",function(i){D(t);let r=g().$implicit,s=g(4);return T(s.onFieldChange(r.field,i))}),y()}if(n&2){let t=g().$implicit;L("config",t.config)("value",t.value)("disabled",t.disabled===!0)}}function NT(n,e){if(n&1&&(v(0,"p",12),C(1),y()),n&2){let t=g().$implicit;p(),U(" ",t.fieldError," ")}}function OT(n,e){if(n&1&&(v(0,"p",13),C(1),y()),n&2){let t=g().$implicit;p(),U(" ",t.emptyHint," ")}}function AT(n,e){if(n&1&&(v(0,"div",6)(1,"span",9),C(2),y(),E(3,kT,1,2,"lf-tool-permission-table",10)(4,RT,1,3,"lf-inline-field",11),E(5,NT,2,1,"p",12)(6,OT,2,1,"p",13),y()),n&2){let t=e.$implicit;p(2),U(" ",t.label," "),p(),P(t.kind==="tool-permission-table"&&t.permissionRows!==void 0?3:4),p(2),P(t.fieldError!==void 0?5:t.emptyHint!==void 0?6:-1)}}function LT(n,e){if(n&1&&(v(0,"div",8),X(1,AT,7,3,"div",6,MT),y()),n&2){let t=g();p(),Q(t)}}function FT(n,e){n&1&&E(0,LT,3,0,"div",8),n&2&&P(e.length>0?0:-1)}function zT(n,e){n&1&&(v(0,"span",17),C(1,"\xB7 hidden"),y())}function BT(n,e){if(n&1){let t=V();v(0,"lf-inline-field",20),O("valueChange",function(i){D(t);let r=g().$implicit,s=g(2);return T(s.onInputChange(r.portId,i))}),y()}if(n&2){let t=g().$implicit;L("config",t.inline)("value",t.value)}}function $T(n,e){if(n&1&&(v(0,"pre",19),C(1),y()),n&2){let t=g().$implicit,o=g(2);p(),se(o.formatValue(t.value))}}function HT(n,e){if(n&1&&(v(0,"div",6)(1,"span",16),C(2),v(3,"span",17),C(4),y(),E(5,zT,2,0,"span",17),y(),E(6,BT,1,2,"lf-inline-field",18)(7,$T,2,1,"pre",19),y()),n&2){let t=e.$implicit;p(2),U(" ",t.label," "),p(2),U("\xB7 ",t.wireType),p(),P(t.hidden?5:-1),p(),P(t.inline!==null?6:7)}}function UT(n,e){n&1&&(v(0,"p",7),C(1," This node has no input ports. "),y())}function jT(n,e){n&1&&(v(0,"span",17),C(1,"\xB7 hidden"),y())}function VT(n,e){if(n&1&&(v(0,"div",6)(1,"span",16),C(2),v(3,"span",17),C(4),y(),E(5,jT,2,0,"span",17),y(),v(6,"pre",19),C(7),y()()),n&2){let t=e.$implicit,o=g(2);p(2),U(" ",t.label," "),p(2),U("\xB7 ",t.wireType),p(),P(t.hidden?5:-1),p(2),se(t.cachedValue===void 0?"\u2014":o.formatValue(t.cachedValue))}}function WT(n,e){n&1&&(v(0,"p",7),C(1," This node has no output ports. "),y())}function GT(n,e){if(n&1&&(v(0,"div",0)(1,"div")(2,"h2",2),C(3),y(),v(4,"p",3),C(5),y()(),E(6,FT,1,1),Nn(7,"async"),v(8,"div",4)(9,"span",5),C(10," Inputs "),y(),X(11,HT,8,4,"div",6,Qy,!1,UT,2,0,"p",7),y(),v(14,"div",4)(15,"span",5),C(16," Outputs (cached) "),y(),X(17,VT,8,4,"div",6,Qy,!1,WT,2,0,"p",7),y()()),n&2){let t,o=e,i=g();p(3),U(" ",o.ui.label??o.definition.displayName," "),p(2),Si(" ",o.type," \xB7 ",o.id," "),p(),P((t=On(7,6,i.panelRows$))?6:-1,t),p(5),Q(i.inputRows()),p(6),Q(i.outputRows())}}function qT(n,e){n&1&&(v(0,"p",1),C(1," Select a node on the canvas to inspect its details. "),y())}var Jy="Wire tool-registration nodes to enable toggles",YT="Add skills under .langflower/skills/<id>/SKILL.md",ZT="Configure providers in .langflower/langflower.jsonc",KT="Declare MCP servers under mcp.servers in .langflower/langflower.jsonc",XT="Select a provider",wh=n=>typeof n=="string"&&n.trim().length>0?n:void 0,QT=n=>Object.fromEntries(Object.entries(n).map(([e,t])=>[e,t.models])),JT=(n,e)=>{let t=e[n];if(t!==void 0)return h({loading:!1},t.error!==void 0?{error:t.error}:{})},ev=(n,e,t,o,i,r)=>{if(n.optionsSource==="node.wiredTools")return o!==null&&i!==null?Jl(o,i):[];if(n.optionsSource==="langflower.models"){let s=wh(n.dependsOn!==void 0?t[n.dependsOn]:void 0),a=s!==void 0?e.provider?.[s]?.models:void 0,d=s!==void 0?r[s]:void 0;return Xl(a,d)}return tc(e,n,t)},eM=(n,e,t,o,i,r)=>{let s=ev(n,e,t,o,i,r);switch(n.type){case"string":case"url":case"file-path":case"phase":case"llm-message":return"text";case"number":return Ky(n);case"boolean":return"boolean";case"select":return{type:"select",options:Zy(n,s)};case"tool-id-list":return{type:"multiselect",options:s};default:return"text-multiline"}},tM=n=>n.dynamic===!0?"dynamic":String(n.wireType??"any"),nM=n=>n.fromInput!==void 0?`from(${n.fromInput})`:String(n.wireType),tv=n=>n.uiSchema,oM=(n,e,t,o)=>{let i=QT(o);return tv(n.definition).filter(r=>r.placement!=="inline").map(r=>{let s=ev(r,e,n.params,t,n.id,i);if(r.type==="tool-permission-table"){let S=Ir(n.params.rolePreset),k=td(S,n.params.toolPermissions,n.params.enabledToolIds),W=Xy(s,k,e.permission);return h({field:r.field,label:r.label??r.field,config:"text",value:k,kind:"tool-permission-table",permissionRows:W},W.length===0?{emptyHint:s.length===0?Jy:"All tools are denied by project floor"}:{})}let a=s.map(S=>String(S.value)),d=n.params[r.field]??r.default,l=r.optionsSource==="node.wiredTools"?ec(d,a):r.optionsSource==="langflower.mcpServers"?Array.isArray(d)?d.map(String):[]:d,c=r.optionsSource==="langflower.models"?wh(n.params.providerId):void 0,u=r.optionsSource==="langflower.models"?c===void 0?{disabled:!1,emptyHint:XT}:Yy(s.length,JT(c,o)):void 0,w=s.length===0?r.optionsSource==="node.wiredTools"?Jy:r.optionsSource==="langflower.mcpServers"?KT:r.optionsSource==="langflower.skills"?YT:r.optionsSource==="langflower.providers"?ZT:void 0:void 0;return h({field:r.field,label:r.label??r.field,config:eM(r,e,n.params,t,n.id,i),value:l},u!==void 0?h(h({disabled:u.disabled},u.fieldError!==void 0?{fieldError:u.fieldError}:{}),u.emptyHint!==void 0?{emptyHint:u.emptyHint}:{}):w!==void 0?{emptyHint:w}:{})})},od=class n{constructor(){this.bridge=f(le);this.execution=f(ke);this.configProjection=f(Bn);this.modelsCatalogProjection=f(Vo);this.selection=f($n);this.selectedNode=this.selection.selectedNode;this.langflowerConfig=this.configProjection.config;this.activeGraph=this.execution.activeGraph;this.panelRows$=Ne({catalogs:this.modelsCatalogProjection.catalogs$,node:this.selection.selectedNode$,config:this.configProjection.config$,graph:Xe(this.activeGraph)}).pipe(N(({catalogs:e,node:t,config:o,graph:i})=>t===null?[]:oM(t,o,i,e)));this.inputRows=b(()=>{let e=this.selectedNode();return e===null?[]:e.definition.inputsConfigs.filter(t=>typeof t.portId=="string").map(t=>{let o=t.portId,i=e.inputs[o]!==void 0?e.inputs[o]:t.defaultValue;return{portId:o,label:t.name??o,wireType:tM(t),hidden:t.hidden===!0,inline:t.multi===void 0?t.inline??null:null,value:i}})});this.outputRows=b(()=>{let e=this.selectedNode();return e===null?[]:e.definition.outputsConfigs.filter(t=>t!==void 0&&typeof t.portId=="string").map(t=>{let o=t.portId;return{portId:o,label:t.name??o,wireType:nM(t),hidden:t.hidden===!0,cachedValue:this.execution.latestOutputValue(e.id,o)}})});this.formatValue=bo;me(()=>{let e=this.selectedNode(),t=this.langflowerConfig();if(e===null||wh(e.params.providerId)!==void 0)return;let o=Object.keys(t.provider??{});if(o.length!==1)return;let i=o[0];i!==void 0&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:e.id,params:_(h({},e.params),{providerId:i})})}),me(()=>{let e=this.selectedNode(),t=this.activeGraph(),o=this.langflowerConfig();if(e===null||t===null||!tv(e.definition).some(te=>te.field==="toolPermissions"))return;let r=Ir(e.params.rolePreset),s=td(r,e.params.toolPermissions,e.params.enabledToolIds),a=zs(t,e.id).map(te=>String(te.value)).filter(te=>!Mr(o.permission,te)),d=Vy(s,a),l={};for(let[te,Ee]of Object.entries(d)){if(Mr(o.permission,te))continue;let de=Dr(o.permission,te);l[te]=Tr(de,Ee)}let c=e.params.toolPermissions,u=c!==null&&typeof c=="object"&&!Array.isArray(c),w=Array.isArray(e.params.enabledToolIds),S=u?c:{};if(!w&&u&&Object.keys(l).length===Object.keys(S).length&&Object.entries(l).every(([te,Ee])=>S[te]===Ee))return;let K=e.params,{enabledToolIds:W}=K,Z=kt(K,["enabledToolIds"]);this.bridge.raw["editor.updateNode.requested"].next({nodeId:e.id,params:_(h({},Z),{toolPermissions:l})})})}onToolPermissionChange(e,t){let o=this.selectedNode();if(o===null)return;let i=Ir(o.params.rolePreset),r=td(i,o.params.toolPermissions,o.params.enabledToolIds),s=Dr(this.langflowerConfig().permission,e),a=Tr(s,t),c=o.params,{enabledToolIds:d}=c,l=kt(c,["enabledToolIds"]);this.bridge.raw["editor.updateNode.requested"].next({nodeId:o.id,params:_(h({},l),{toolPermissions:_(h({},r),{[e]:a})})})}onFieldChange(e,t){let o=this.selectedNode();if(o===null)return;let i=e==="rolePreset"?Hy(o.params,Ir(t)):_(h({},o.params),{[e]:t});this.bridge.raw["editor.updateNode.requested"].next({nodeId:o.id,params:i})}onInputChange(e,t){let o=this.selectedNode();o!==null&&this.bridge.raw["editor.updateNode.requested"].next({nodeId:o.id,inputs:_(h({},o.inputs),{[e]:t})})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-inspector-panel"]],decls:2,vars:1,consts:[[1,"flex","flex-col","gap-4"],[1,"mt-2","text-xs","leading-5","text-zinc-500","dark:text-zinc-400"],[1,"text-sm","font-semibold","text-zinc-900","dark:text-zinc-100"],[1,"mt-0.5","text-[10px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-1.5"],[1,"text-[10px]","font-semibold","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-1"],[1,"text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-2"],[1,"text-[10px]","font-medium","text-zinc-600","dark:text-zinc-300"],[3,"rows","disabled"],[3,"config","value","disabled"],[1,"text-[10px]","text-rose-600","dark:text-rose-400"],[1,"text-[10px]","text-zinc-500","dark:text-zinc-400"],[3,"decisionChange","rows","disabled"],[3,"valueChange","config","value","disabled"],[1,"text-[10px]","text-zinc-600","dark:text-zinc-300"],[1,"text-zinc-400","dark:text-zinc-500"],[3,"config","value"],[1,"lf-scroll","max-h-48","overflow-y-auto","whitespace-pre-wrap","break-words","rounded-md","border","border-zinc-200","bg-zinc-50","p-1.5","text-[11px]","leading-4","text-zinc-600","dark:border-zinc-800","dark:bg-zinc-950","dark:text-zinc-400"],[3,"valueChange","config","value"]],template:function(t,o){if(t&1&&E(0,GT,20,8,"div",0)(1,qT,2,0,"p",1),t&2){let i;P((i=o.selectedNode())?0:1,i)}},dependencies:[Yn,nd,vn],encapsulation:2})}};var iM=n=>typeof n=="object"&&n!==null&&!Array.isArray(n),rM=n=>{let e=n.options;return iM(e)&&typeof e.baseURL=="string"?e.baseURL:""},sM=n=>n.hasApiKey===!0,kr=n=>{let e=Object.entries(n.provider??{}).map(([t,o])=>({id:t,name:o.name,baseURL:rM(o),modelsText:(o.models??[]).join(", "),apiKey:"",hasApiKey:sM(o)}));return{model:n.model??"",providers:e}},aM=n=>n.split(",").map(e=>e.trim()).filter(e=>e.length>0),nv=(n,e)=>{let t=Object.fromEntries(e.providers.filter(r=>r.apiKey.trim().length>0).map(r=>[r.id.trim(),r.apiKey.trim()])),o=Object.fromEntries(e.providers.filter(r=>r.id.trim().length>0).map(r=>{let s=aM(r.modelsText),a=r.baseURL.trim();return[r.id.trim(),h(h({name:r.name.trim()||r.id.trim()},s.length>0?{models:s}:{}),a.length>0?{options:{baseURL:a}}:{})]})),i=e.model.trim();return _(h({scope:n},i.length>0?{model:i}:{}),{provider:o,providerApiKeys:t})},id=(n,e)=>JSON.stringify(n)===JSON.stringify(e),ov=(n,e,t)=>{if(id(n,e))return t;let o=_(h({},n),{providers:n.providers.map(i=>{let r=t.providers.find(s=>s.id===i.id);return _(h({},i),{apiKey:"",hasApiKey:r?.hasApiKey??!1})})});return id(o,t)?t:o};function dM(n,e){if(n&1&&(B(0,"p",6),C(1," Global file: "),B(2,"span",22),C(3),A()()),n&2){let t=g();p(3),se(t.globalPath()||"\u2026")}}function lM(n,e){n&1&&(B(0,"p",7),C(1),A()),n&2&&(p(),U(" ",e," "))}function cM(n,e){if(n&1){let t=V();B(0,"div",16)(1,"div",23)(2,"span",24),C(3),A(),B(4,"button",25),ve("click",function(){let i=D(t).$index,r=g();return T(r.removeProvider(i))}),C(5," Remove "),A()(),B(6,"label",10)(7,"span",26),C(8,"Id"),A(),B(9,"input",27),ve("input",function(i){let r=D(t).$index,s=g();return T(s.patchProvider(r,{id:s.readInput(i)}))}),A()(),B(10,"label",10)(11,"span",26),C(12,"Name"),A(),B(13,"input",27),ve("input",function(i){let r=D(t).$index,s=g();return T(s.patchProvider(r,{name:s.readInput(i)}))}),A()(),B(14,"label",10)(15,"span",26),C(16,"Base URL"),A(),B(17,"input",28),ve("input",function(i){let r=D(t).$index,s=g();return T(s.patchProvider(r,{baseURL:s.readInput(i)}))}),A()(),B(18,"label",10)(19,"span",26),C(20,"Models (comma-separated)"),A(),B(21,"input",27),ve("input",function(i){let r=D(t).$index,s=g();return T(s.patchProvider(r,{modelsText:s.readInput(i)}))}),A()(),B(22,"label",10)(23,"span",26),C(24,"API key"),A(),B(25,"input",29),ve("input",function(i){let r=D(t).$index,s=g();return T(s.patchProvider(r,{apiKey:s.readInput(i)}))}),A()()()}if(n&2){let t=e.$implicit,o=e.$index;p(3),U(" Provider ",o+1," "),p(6),ge("value",t.id),p(4),ge("value",t.name),p(4),ge("value",t.baseURL),p(4),ge("value",t.modelsText),p(4),ge("placeholder",t.hasApiKey?"Saved \u2014 enter new value to replace":"Prefer {env:VAR_NAME}")("value",t.apiKey)}}function uM(n,e){n&1&&(B(0,"p",17),C(1," No providers in this scope yet. "),A())}function pM(n,e){if(n&1&&(B(0,"p",33),C(1),A()),n&2){let t=g(2);Y("text-rose-600",t.bootstrapMessageIsError())("dark:text-rose-400",t.bootstrapMessageIsError())("text-zinc-600",!t.bootstrapMessageIsError())("dark:text-zinc-300",!t.bootstrapMessageIsError()),p(),U(" ",e," ")}}function hM(n,e){if(n&1){let t=V();B(0,"div",18)(1,"span",11),C(2," Project seed "),A(),B(3,"p",30),C(4," Re-copy packaged skeleton templates (workflows, skills, my-nodes, instructions). Does not change langflower.jsonc providers or MCP. "),A(),B(5,"button",31),ve("click",function(){D(t);let i=g();return T(i.bootstrap())}),C(6),A(),E(7,pM,2,9,"p",32),A()}if(n&2){let t,o=g();p(5),ge("disabled",o.bootstrapPending()),p(),U(" ",o.bootstrapPending()?"Bootstrapping\u2026":"Bootstrap"," "),p(),P((t=o.bootstrapMessage())?7:-1,t)}}var rd=class n{constructor(){this.bridge=f(le);this.configProjection=f(Bn);this.closeRequested=qt();this.scope=H("project");this.draft=H(kr({}));this.baseline=H(kr({}));this.validationError=H(null);this.bootstrapPending=H(!1);this.bootstrapMessage=H(null);this.bootstrapMessageIsError=H(!1);this.globalPath=b(()=>this.configProjection.layers().globalPath);this.isDirty=b(()=>!id(this.draft(),this.baseline()));this.readInput=e=>{let t=e.target;return t instanceof HTMLInputElement?t.value:""};me(()=>{let e=this.configProjection.layers(),o=this.scope()==="project"?e.projectConfig:e.globalConfig,i=kr(o);xe(()=>{let r=this.draft(),s=this.baseline();this.baseline.set(i),this.draft.set(ov(r,s,i))})})}setScope(e){if(e===this.scope()||this.isDirty()&&!window.confirm("Discard unsaved settings changes for this scope?"))return;this.scope.set(e),this.validationError.set(null);let t=this.configProjection.layers(),o=e==="project"?t.projectConfig:t.globalConfig,i=kr(o);this.baseline.set(i),this.draft.set(i)}patchDraft(e){this.draft.update(t=>h(h({},t),e)),this.validationError.set(null)}patchProvider(e,t){this.draft.update(o=>_(h({},o),{providers:o.providers.map((i,r)=>r===e?h(h({},i),t):i)})),this.validationError.set(null)}addProvider(){this.draft.update(e=>_(h({},e),{providers:[...e.providers,{id:"",name:"",baseURL:"",modelsText:"",apiKey:"",hasApiKey:!1}]}))}removeProvider(e){this.draft.update(t=>_(h({},t),{providers:t.providers.filter((o,i)=>i!==e)}))}discard(){this.draft.set(this.baseline()),this.validationError.set(null)}save(){let e=this.draft(),t=e.providers.map(i=>i.id.trim());if(t.some(i=>i.length===0)){this.validationError.set("Each provider needs a non-empty id.");return}if(new Set(t).size!==t.length){this.validationError.set("Provider ids must be unique.");return}let o=nv(this.scope(),e);this.bridge.raw["langflower.config.save.requested"].next(o),this.validationError.set(null)}bootstrap(){return M(this,null,function*(){if(this.scope()!=="project"||this.bootstrapPending()||!window.confirm(["Restore skeleton templates into this project?","","This overwrites packaged workflows, skills, my-nodes, and instructions.","langflower.jsonc (providers / MCP) is not changed.","Stop any active run first."].join(`
309
+ `)))return;this.bootstrapPending.set(!0),this.bootstrapMessage.set(null),this.bootstrapMessageIsError.set(!1);let t=ig(this.bridge.raw["project.bootstrap.result"].pipe(nn(1)));this.bridge.raw["project.bootstrap.requested"].next({});try{let o=yield t;o.ok?(this.bootstrapMessage.set("Skeleton templates restored."),this.bootstrapMessageIsError.set(!1)):(this.bootstrapMessage.set(o.message),this.bootstrapMessageIsError.set(!0))}catch(o){this.bootstrapMessage.set("Bootstrap failed \u2014 no response from server."),this.bootstrapMessageIsError.set(!0)}finally{this.bootstrapPending.set(!1)}})}onClose(){this.isDirty()&&!window.confirm("Discard unsaved settings changes?")||this.closeRequested.emit()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-settings-panel"]],outputs:{closeRequested:"closeRequested"},decls:34,vars:29,consts:[[1,"flex","h-full","min-h-0","flex-col","gap-3"],[1,"flex","shrink-0","items-center","justify-between","gap-2"],[1,"text-sm","font-semibold","tracking-tight","text-zinc-900","dark:text-zinc-100"],["type","button","aria-label","Close settings",1,"rounded-md","border","border-zinc-200","px-2","py-1","text-[11px]","font-medium","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],["role","tablist","aria-label","Settings scope",1,"flex","shrink-0","gap-1","rounded-md","border","border-zinc-200","p-0.5","dark:border-zinc-700"],["type","button","role","tab",1,"flex-1","rounded","px-2","py-1","text-[11px]","font-medium","transition",3,"click"],[1,"shrink-0","break-all","text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],[1,"shrink-0","text-[11px]","leading-4","text-rose-600","dark:text-rose-400"],[1,"lf-scroll","min-h-0","flex-1","overflow-y-auto"],[1,"flex","flex-col","gap-4","pr-1"],[1,"flex","flex-col","gap-1"],[1,"text-[10px]","font-semibold","uppercase","tracking-wide","text-zinc-500","dark:text-zinc-400"],["type","text","placeholder","provider/model-id",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1.5","text-sm","text-zinc-900","outline-none","ring-zinc-400/20","focus:ring-2","dark:border-zinc-700","dark:bg-zinc-950","dark:text-zinc-100",3,"input","value"],[1,"flex","flex-col","gap-2"],[1,"flex","items-center","justify-between","gap-2"],["type","button",1,"rounded-md","border","border-zinc-200","px-2","py-0.5","text-[11px]","font-medium","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],[1,"flex","flex-col","gap-2","rounded-md","border","border-zinc-200","p-2","dark:border-zinc-700"],[1,"text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"flex","flex-col","gap-2","border-t","border-zinc-200","pt-3","dark:border-zinc-800"],[1,"flex","shrink-0","items-center","justify-end","gap-2","border-t","border-zinc-200","pt-3","dark:border-zinc-800"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1.5","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-100","disabled:opacity-50","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],["type","button",1,"rounded-md","bg-zinc-900","px-3","py-1.5","text-xs","font-medium","text-white","transition","hover:bg-zinc-800","disabled:opacity-50","dark:bg-zinc-100","dark:text-zinc-900","dark:hover:bg-white",3,"click","disabled"],[1,"font-mono","text-zinc-700","dark:text-zinc-300"],[1,"flex","items-start","justify-between","gap-2"],[1,"text-[11px]","font-medium","text-zinc-700","dark:text-zinc-300"],["type","button",1,"text-[11px]","text-rose-600","hover:underline","dark:text-rose-400",3,"click"],[1,"text-[10px]","text-zinc-500","dark:text-zinc-400"],["type","text",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-sm","dark:border-zinc-700","dark:bg-zinc-950",3,"input","value"],["type","url",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-sm","dark:border-zinc-700","dark:bg-zinc-950",3,"input","value"],["type","password","autocomplete","off",1,"rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-sm","dark:border-zinc-700","dark:bg-zinc-950",3,"input","placeholder","value"],[1,"text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],["type","button",1,"self-start","rounded-md","border","border-zinc-200","px-3","py-1.5","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-100","disabled:opacity-50","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],[1,"text-[11px]","leading-4",3,"text-rose-600","dark:text-rose-400","text-zinc-600","dark:text-zinc-300"],[1,"text-[11px]","leading-4"]],template:function(t,o){if(t&1&&(B(0,"div",0)(1,"div",1)(2,"h2",2),C(3," Settings "),A(),B(4,"button",3),ve("click",function(){return o.onClose()}),C(5," Close "),A()(),B(6,"div",4)(7,"button",5),ve("click",function(){return o.setScope("project")}),C(8," Project "),A(),B(9,"button",5),ve("click",function(){return o.setScope("global")}),C(10," Global "),A()(),E(11,dM,4,1,"p",6),E(12,lM,2,1,"p",7),B(13,"div",8)(14,"div",9)(15,"label",10)(16,"span",11),C(17," Default chat model "),A(),B(18,"input",12),ve("input",function(r){return o.patchDraft({model:o.readInput(r)})}),A()(),B(19,"div",13)(20,"div",14)(21,"span",11),C(22," Providers "),A(),B(23,"button",15),ve("click",function(){return o.addProvider()}),C(24," Add "),A()(),X(25,cM,26,7,"div",16,on,!1,uM,2,0,"p",17),A(),E(28,hM,8,3,"div",18),A()(),B(29,"div",19)(30,"button",20),ve("click",function(){return o.discard()}),C(31," Discard "),A(),B(32,"button",21),ve("click",function(){return o.save()}),C(33," Save "),A()()()),t&2){let i;p(7),Y("bg-zinc-900",o.scope()==="project")("text-white",o.scope()==="project")("text-zinc-600",o.scope()!=="project")("dark:bg-zinc-100",o.scope()==="project")("dark:text-zinc-900",o.scope()==="project"),J("aria-selected",o.scope()==="project"),p(2),Y("bg-zinc-900",o.scope()==="global")("text-white",o.scope()==="global")("text-zinc-600",o.scope()!=="global")("dark:bg-zinc-100",o.scope()==="global")("dark:text-zinc-900",o.scope()==="global"),J("aria-selected",o.scope()==="global"),p(2),P(o.scope()==="global"?11:-1),p(),P((i=o.validationError())?12:-1,i),p(6),ge("value",o.draft().model),p(7),Q(o.draft().providers),p(3),P(o.scope()==="project"?28:-1),p(2),ge("disabled",!o.isDirty()),p(2),ge("disabled",!o.isDirty())}},encapsulation:2})}};var gM={reasoning:"Reasoning",draft:"Draft",tool:"Tool",shell:"Shell",result:"Response",recovery:"Recovery"},fM=new Set(["preview","prompt"]),Ut=n=>xt(n)==="recovery"?n.chunks.map(e=>{let t=jp(e.value);return t.length>0?t:bo(e.value)}).join(`
310
+ `):n.chunks.map(e=>bo(e.value)).join(`
311
+ `),mM=n=>{let e=n.split(/\r?\n/);return([...e].reverse().find(o=>o.trim().length>0)??e[e.length-1]??"").replace(/\s+/g," ").trim()},rv=n=>mM(Ut(n)),sv=n=>n.status==="active",av=n=>{let e=xt(n);return n.status!=="active"&&(e==="reasoning"||e==="draft")},_h=n=>{let e=xt(n),t=e!==void 0?gM[e]:void 0;return t!==void 0?t:n.portId.trim().length>0?n.portId:"output"},sd=n=>n.portId==="permission.ask",Rr=n=>xt(n)==="result",yM=n=>xt(n)==="none",vM=n=>fM.has(n),bM=(n,e)=>{let t=Ut(n);return e.some(o=>o.nodeId===n.nodeId&&o.runId===n.runId&&o.text===t)},wM=(n,e)=>Rr(n)||sd(n)||Bp(xt(n))?!1:e.some(o=>o.nodeId===n.nodeId&&o.runId===n.runId&&o.portId===n.portId)?!0:bM(n,e),CM=(n,e)=>{let t=Ut(n).trim();if(t.length===0)return!1;let o=e.findIndex(r=>r.id===n.id);return(o===-1?e:e.slice(0,o)).some(r=>Rr(r)&&Ut(r).trim()===t)},ad=(n,e)=>Rr(n)||sd(n)||Bp(xt(n))||!(xt(n)==="none"||vM(n.portId))?!1:CM(n,e),dv=(n,e)=>!(yM(n)||Rr(n)||sd(n)||wM(n,e)),_M=(n,e,t)=>{let o=[...e].reverse().find(d=>!ad(d,t));if(o===void 0)return n;let i=_h(o),r=Ut(o),a=(r.length>120?`${r.slice(0,117).trimEnd()}\u2026`:r).replace(/\s+/g," ").trim();return a.length===0?`${n} \xB7 ${i}`:`${n} \xB7 ${i}: ${a}`},xM=(n,e)=>[...n].reverse().find(t=>!ad(t,e)),SM=(n,e,t)=>{if(t)return[...n].reverse().find(r=>xt(r)==="reasoning"&&!ad(r,e));let o=xM(n,e);if(!(o!==void 0&&xt(o)==="recovery"))return o},EM=n=>{let e=[];for(let t of n){let o=xt(t);if(o==="draft")e.push({kind:"draft",id:t.id,text:Ut(t),streaming:t.status==="active"});else if(o==="tool"||o==="shell")e.push({kind:"tool",id:t.id,text:Ut(t),label:o==="shell"?"Shell":"Tool"});else if(o==="recovery"){let i=t.chunks[t.chunks.length-1]?.value,r=yr(i)?i.code:"unknown";e.push({kind:"recovery",id:t.id,text:Ut(t),label:r==="suspended"?"Paused for Steer":r==="retry"?"Retrying\u2026":"Recovery",code:r})}}return e},PM=n=>n.some(t=>t.status==="active")?"active":n[n.length-1]?.status??"completed",lv=n=>n.portId===Ze,IM=(n,e,t,o)=>{let i=n.slice(e),r=i.findIndex(a=>a.atSectionCount>t),s=r===-1?i:i.slice(0,r);return{rows:s.filter(a=>lv(a)||!o.has(a.nodeId)).map(a=>({kind:"user",id:a.id,nodeId:a.nodeId,nodeLabel:a.nodeLabel,text:a.text})),nextIdx:e+s.length}},DM=(n,e,t)=>{let o=new Set(e.map(i=>i.id));return n.filter(i=>i.nodeId===t&&!lv(i)&&i.anchorSectionId!==void 0&&o.has(i.anchorSectionId)).map(i=>({kind:"user",id:i.id,nodeId:i.nodeId,nodeLabel:i.nodeLabel,text:i.text}))},TM=(n,e,t)=>{let o=n.sections.filter(l=>dv(l,e)),i=n.sections.filter(Rr),r=n.sections.filter(sd),s=i.length>0,a=i.map(l=>({kind:"result",id:l.id,nodeId:l.nodeId,nodeLabel:l.nodeLabel,text:Ut(l),status:l.status})),d=r.map(l=>({kind:"permission",id:l.id,nodeId:l.nodeId,nodeLabel:l.nodeLabel,text:Ut(l).replace(/^permission\.ask:\s*/i,"")}));if(o.length>0){let l=DM(e,n.sections,n.nodeId),c=EM(n.sections),u=!s&&(l.length>0||o.some(w=>ad(w,t)));return[{kind:"technical",id:`tech:${o[0].id}`,nodeId:n.nodeId,nodeLabel:n.nodeLabel,status:PM([...o,...i]),sections:o,lastPortLine:_M(n.nodeLabel,o,t),userReplies:l,peekSection:s||u?void 0:SM(o,t,c.some(w=>w.kind==="draft")),results:a,segments:c,hitlLayout:u},...d]}return[...d,...a]},Ch=(n,e,t)=>n.pending===null?n:_(h({},n),{rows:[...n.rows,...TM(n.pending,e,t)],pending:null}),iv=(n,e,t,o,i)=>{let{rows:r,nextIdx:s}=IM(t,n.userIdx,e,o);if(r.length===0)return _(h({},n),{userIdx:s});let a=Ch(n,t,i);return _(h({},a),{rows:[...a.rows,...r],userIdx:s})},cv=(n,e)=>{let t=new Set(n.filter(r=>dv(r,e)).map(r=>r.nodeId)),o=n.reduce((r,s)=>{let a=iv(r,r.sectionIndex,e,t,n),d=a.pending!==null&&a.pending.nodeId!==s.nodeId?Ch(a,e,n):a,l=d.pending===null?{nodeId:s.nodeId,nodeLabel:s.nodeLabel,sections:[s]}:_(h({},d.pending),{sections:[...d.pending.sections,s]});return _(h({},d),{pending:l,sectionIndex:d.sectionIndex+1})},{rows:[],pending:null,sectionIndex:0,userIdx:0}),i=iv(o,o.sectionIndex,e,t,n);return Ch(i,e,n).rows},uv=n=>{let e=[];for(let t of n){let o=e[e.length-1];if(o!==void 0&&o.nodeId===t.nodeId){e[e.length-1]=_(h({},o),{rows:[...o.rows,t]});continue}e.push({id:`${t.nodeId}:${t.id}`,nodeId:t.nodeId,rows:[t]})}return e};var MM=["*"];function kM(n,e){if(n&1&&(B(0,"span",1),C(1),A()),n&2){let t=g();Y("bottom-full",t.side()==="top")("mb-2",t.side()==="top")("top-full",t.side()==="bottom")("mt-2",t.side()==="bottom")("right-full",t.side()==="left")("mr-2",t.side()==="left")("left-full",t.side()==="right")("ml-2",t.side()==="right")("right-0",t.isVerticalSide()&&t.align()==="end")("left-0",t.isVerticalSide()&&t.align()==="start")("left-1/2",t.isVerticalSide()&&t.align()==="center")("-translate-x-1/2",t.isVerticalSide()&&t.align()==="center")("top-0",t.isHorizontalSide()&&t.align()==="start")("bottom-0",t.isHorizontalSide()&&t.align()==="end")("top-1/2",t.isHorizontalSide()&&t.align()==="center")("-translate-y-1/2",t.isHorizontalSide()&&t.align()==="center"),p(),U(" ",t.tip()," ")}}var tt=class n{constructor(){this.tip=I.required();this.align=I("end");this.side=I("top")}isVerticalSide(){let e=this.side();return e==="top"||e==="bottom"}isHorizontalSide(){let e=this.side();return e==="left"||e==="right"}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-hover-tip"]],hostAttrs:[1,"group","relative","inline-flex","max-w-full"],inputs:{tip:[1,"tip"],align:[1,"align"],side:[1,"side"]},ngContentSelectors:MM,decls:2,vars:1,consts:[["role","tooltip",1,"pointer-events-none","absolute","z-20","hidden","whitespace-nowrap","rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-xs","font-medium","text-zinc-700","shadow-sm","group-hover:block","group-focus-within:block","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100",3,"bottom-full","mb-2","top-full","mt-2","right-full","mr-2","left-full","ml-2","right-0","left-0","left-1/2","-translate-x-1/2","top-0","bottom-0","top-1/2","-translate-y-1/2"],["role","tooltip",1,"pointer-events-none","absolute","z-20","hidden","whitespace-nowrap","rounded-md","border","border-zinc-200","bg-white","px-2","py-1","text-xs","font-medium","text-zinc-700","shadow-sm","group-hover:block","group-focus-within:block","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100"]],template:function(t,o){t&1&&(Ye(),We(0),E(1,kM,2,33,"span",0)),t&2&&(p(),P(o.tip().trim().length>0?1:-1))},encapsulation:2})}};var RM=["scrollRef"],NM=["streamPane"],mi=(n,e)=>e.id,OM=(n,e)=>e.portId;function AM(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",5)(1,"button",8),O("click",function(){D(t);let i=g();return T(i.clearFeed())}),C(2," Clear "),y()()}if(n&2){let t=g();L("tip",t.sections().length===0&&t.userTurns().length===0?"Nothing to clear":"Clear the work log"),p(),L("disabled",t.sections().length===0&&t.userTurns().length===0)}}function LM(n,e){n&1&&(v(0,"p",6),C(1," Run the workflow to see execution progress here. "),y())}function FM(n,e){if(n&1&&(v(0,"div",14)(1,"div",17)(2,"pre",18),C(3),y()()()),n&2){let t=g().$implicit;p(3),se(t.text)}}function zM(n,e){if(n&1&&(v(0,"div",15),$(1,"div",19),y()),n&2){let t=g().$implicit,o=g(3);p(),L("innerHTML",o.markdownHtml(t.text),Rn)}}function BM(n,e){if(n&1&&(v(0,"div",15)(1,"p",20),C(2),y()()),n&2){let t=g().$implicit;p(2),U(" Permission: ",t.text," ")}}function $M(n,e){n&1&&(v(0,"span",23),C(1,"waiting\u2026"),y())}function HM(n,e){n&1&&(v(0,"span",36),C(1,"streaming\u2026"),y())}function UM(n,e){if(n&1&&(v(0,"div",32)(1,"div",35)(2,"span"),C(3,"draft"),y(),E(4,HM,2,0,"span",36),y(),v(5,"div",24),$(6,"div",37),y()()),n&2){let t=g().$implicit,o=g(5);p(4),P(t.streaming?4:-1),p(2),L("innerHTML",o.markdownHtml(t.text),Rn)}}function jM(n,e){if(n&1&&(v(0,"details",33)(1,"summary",38),C(2),y(),v(3,"pre",39),C(4),y()()),n&2){let t=g().$implicit;p(2),U(" ",t.label," "),p(2),se(t.text)}}function VM(n,e){if(n&1&&(v(0,"div",34)(1,"div",40),C(2),y(),v(3,"pre",41),C(4),y()()),n&2){let t=g().$implicit;p(2),U(" ",t.label," "),p(2),se(t.text)}}function WM(n,e){if(n&1&&E(0,UM,7,2,"div",32)(1,jM,5,2,"details",33)(2,VM,5,2,"div",34),n&2){let t=e.$implicit,o=g(2).$implicit;P(t.kind==="draft"&&o.results.length===0?0:t.kind==="tool"?1:t.kind==="recovery"?2:-1)}}function GM(n,e){if(n&1&&(v(0,"div",24),$(1,"div",37),y()),n&2){let t=e.$implicit,o=g(5);p(),L("innerHTML",o.markdownHtml(t.text),Rn)}}function qM(n,e){if(n&1&&(v(0,"div",25)(1,"div",42)(2,"pre",18),C(3),y()()()),n&2){let t=e.$implicit;p(3),se(t.text)}}function YM(n,e){n&1&&(v(0,"span",36),C(1,"streaming\u2026"),y())}function ZM(n,e){if(n&1&&(v(0,"div",46,1)(2,"pre",18),C(3),y()()),n&2){let t=g(),o=g(2).$implicit,i=g(3);Y("text-right",o.hitlLayout),p(3),se(i.sectionDisplayText(t))}}function KM(n,e){if(n&1&&(v(0,"p",47),C(1),y()),n&2){let t=g(),o=g(2).$implicit,i=g(3);Y("text-right",o.hitlLayout)("text-left",!o.hitlLayout),p(),U(" ",i.sectionPeekOneLine(t)," ")}}function XM(n,e){if(n&1&&(v(0,"div",43)(1,"span"),C(2),y(),E(3,YM,2,0,"span",36),y(),E(4,ZM,4,3,"div",44)(5,KM,2,5,"p",45)),n&2){let t=e,o=g(2).$implicit,i=g(3);Y("justify-end",o.hitlLayout),p(2),se(i.sectionRoleLabel(t)),p(),P(i.isStreamingLinePreview(t)?3:-1),p(),P(i.isStreamingLinePreview(t)?4:5)}}function QM(n,e){if(n&1&&(v(0,"div",49)(1,"span",50),C(2),y(),v(3,"div",51)(4,"span",52),C(5),y()()()),n&2){let t=e.$implicit;p(2),U("",t.portId,":"),p(3),se(t.text)}}function JM(n,e){if(n&1&&(v(0,"div",29)(1,"span",48),C(2,"Inputs"),y(),X(3,QM,6,2,"div",49,OM),y()),n&2){let t=g(2).$implicit,o=g(3);p(3),Q(o.inputsFor(t.nodeId))}}function ek(n,e){if(n&1&&(v(0,"p",53),C(1),y()),n&2){let t=g().$implicit,o=g(5);p(),U(" ",o.sectionPeekOneLine(t)," ")}}function tk(n,e){if(n&1&&(v(0,"pre",54),C(1),y()),n&2){let t=g().$implicit,o=g(5);p(),se(o.sectionDisplayText(t))}}function nk(n,e){if(n&1&&(v(0,"div",30)(1,"span",48),C(2),y(),E(3,ek,2,1,"p",53)(4,tk,2,1,"pre",54),y()),n&2){let t=e.$implicit,o=g(5);p(2),se(o.sectionRoleLabel(t)),p(),P(o.isSettledStreamOneLine(t)?3:4)}}function ok(n,e){if(n&1&&(v(0,"p",31),C(1),y()),n&2){let t=g(2).$implicit,o=g(3);p(),U(" ",o.livenessHint(t)," ")}}function ik(n,e){if(n&1){let t=V();v(0,"div",21)(1,"div",22),C(2),E(3,$M,2,0,"span",23),y(),X(4,WM,3,1,null,null,mi),X(6,GM,2,1,"div",24,mi),X(8,qM,4,1,"div",25,mi),E(10,XM,6,5),v(11,"details",26),O("toggle",function(i){D(t);let r=g().$implicit,s=g(3);return T(s.onTechnicalToggle(r,i))}),v(12,"summary",27),C(13," details "),y(),v(14,"div",28),E(15,JM,5,0,"div",29),X(16,nk,5,2,"div",30,mi),y()(),E(18,ok,2,1,"p",31),y()}if(n&2){let t,o=g().$implicit,i=g(3);Y("items-end",o.hitlLayout)("items-start",!o.hitlLayout),p(),Y("text-right",o.hitlLayout)("text-left",!o.hitlLayout),p(),U(" ",o.nodeLabel," "),p(),P(o.status==="active"&&o.peekSection===void 0&&o.results.length===0&&o.segments.length===0?3:-1),p(),Q(o.segments),p(2),Q(o.results),p(2),Q(o.userReplies),p(2),P((t=o.peekSection)?10:-1,t),p(),Y("text-right",o.hitlLayout),J("open",i.isTechnicalExpanded(o)?"":null),p(4),P(i.inputsFor(o.nodeId).length>0?15:-1),p(),Q(o.sections),p(2),P(o.status==="active"?18:-1)}}function rk(n,e){if(n&1&&E(0,FM,4,1,"div",14)(1,zM,2,1,"div",15)(2,BM,3,1,"div",15)(3,ik,19,16,"div",16),n&2){let t,o=e.$implicit;P((t=o.kind)==="user"?0:t==="result"?1:t==="permission"?2:t==="technical"?3:-1)}}function sk(n,e){if(n&1){let t=V();v(0,"div",13),O("mouseenter",function(){let i=D(t).$implicit,r=g(2);return T(r.hover.set(i.nodeId))})("mouseleave",function(){D(t);let i=g(2);return T(i.hover.clear())}),X(1,rk,4,1,null,null,mi),y()}if(n&2){let t=e.$implicit,o=g(2);Y("lf-feed-row--hovered",o.hover.isHovered(t.nodeId)),p(),Q(t.rows)}}function ak(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",12)(1,"button",55),O("click",function(){D(t);let i=g(2);return T(i.scrollToBottom())}),C(2," \u2193 New events "),y()()}}function dk(n,e){if(n&1){let t=V();v(0,"div",7)(1,"div",9,0),O("scroll",function(){D(t);let i=g();return T(i.onScroll())}),v(3,"div",10),X(4,sk,3,2,"div",11,mi),y()(),E(6,ak,3,0,"lf-hover-tip",12),y()}if(n&2){let t=g();p(4),Q(t.rowGroups()),p(2),P(t.autoScroll()?-1:6)}}var dd=class n{constructor(){this.bridge=f(le);this.execution=f(ke);this.previewValues=f(di);this.hover=f(ln);this.sections=this.execution.feedSections;this.userTurns=this.execution.feedUserTurns;this.isRunning=this.execution.isRunning;this.rows=b(()=>cv(this.sections(),this.userTurns()));this.rowGroups=b(()=>uv(this.rows()));this.sectionDisplayText=Ut;this.sectionPeekOneLine=rv;this.isStreamingLinePreview=sv;this.isSettledStreamOneLine=av;this.sectionRoleLabel=_h;this.scrollRef=st("scrollRef");this.streamPanes=Tg("streamPane");this.autoScroll=H(!0);this.detailReopenOverride=H(new Map);me(()=>{if(this.rows(),!this.autoScroll())return;let e=this.scrollRef()?.nativeElement;e!==void 0&&setTimeout(()=>{e.scrollTop=e.scrollHeight})}),me(()=>{this.rows();let e=this.streamPanes();e.length!==0&&setTimeout(()=>{for(let t of e){let o=t.nativeElement;o.scrollTop=o.scrollHeight}})})}livenessHint(e){let t=this.execution.livenessNowMs();return I0(e,this.execution.lastActivityMs(e.nodeId),t)}markdownHtml(e){return gi(e)}isTechnicalExpanded(e){return this.detailReopenOverride().get(e.id)===!0}onTechnicalToggle(e,t){let o=t.target;o instanceof HTMLDetailsElement&&this.detailReopenOverride.update(i=>{let r=new Map(i);return o.open?r.set(e.id,!0):r.delete(e.id),r})}onScroll(){let e=this.scrollRef()?.nativeElement;if(e===void 0)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;this.autoScroll.set(t<=32)}scrollToBottom(){let e=this.scrollRef()?.nativeElement;e!==void 0&&(e.scrollTop=e.scrollHeight,this.autoScroll.set(!0))}inputsFor(e){return[...this.previewValues.entriesForNode(e)].map(([t,o])=>({portId:t,text:bo(o)}))}clearFeed(){this.bridge.raw["runner.executionFeed.clear.requested"].next({})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-work-log-panel"]],viewQuery:function(t,o){t&1&&ht(o.scrollRef,RM,5)(o.streamPanes,NM,5),t&2&&gt(2)},hostAttrs:[1,"block","h-full"],decls:7,vars:2,consts:[["scrollRef",""],["streamPane",""],[1,"flex","h-full","min-h-0","flex-col"],[1,"mb-2","flex","shrink-0","items-center","justify-between","gap-2"],[1,"text-[11px]","font-semibold","text-zinc-700","dark:text-zinc-200"],["side","left","align","center",3,"tip"],[1,"text-xs","leading-5","text-zinc-500","dark:text-zinc-400"],[1,"relative","min-h-0","flex-1"],["type","button",1,"rounded-md","px-2","py-1","text-[11px]","font-medium","text-zinc-500","transition","hover:bg-zinc-100","hover:text-zinc-700","disabled:opacity-40","dark:text-zinc-400","dark:hover:bg-zinc-800","dark:hover:text-zinc-200",3,"click","disabled"],[1,"lf-scroll","h-full","overflow-y-auto",3,"scroll"],[1,"flex","min-w-0","flex-col"],[1,"flex","min-w-0","flex-col",3,"lf-feed-row--hovered"],["tip","Jump to the latest events",1,"absolute","bottom-2","right-3"],[1,"flex","min-w-0","flex-col",3,"mouseenter","mouseleave"],[1,"flex","justify-end","px-2","py-1.5"],[1,"flex","justify-start","px-2","py-1.5"],[1,"flex","min-w-0","w-full","flex-col","gap-1","px-2","py-1.5","text-[11px]","text-zinc-500","dark:text-zinc-400",3,"items-end","items-start"],[1,"max-w-[92%]","rounded-2xl","rounded-br-md","border","border-zinc-300","bg-zinc-200","px-3","py-2","text-[12px]","leading-5","text-zinc-900","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100"],[1,"whitespace-pre-wrap","break-words","font-sans"],[1,"lf-feed-md","max-w-[92%]","rounded-2xl","rounded-bl-md","border","border-zinc-200","bg-white","px-3","py-2","text-[12px]","leading-5","text-zinc-800","dark:border-zinc-700","dark:bg-zinc-900","dark:text-zinc-100",3,"innerHTML"],[1,"max-w-[92%]","text-[11px]","leading-4","text-amber-700","dark:text-amber-300"],[1,"flex","min-w-0","w-full","flex-col","gap-1","px-2","py-1.5","text-[11px]","text-zinc-500","dark:text-zinc-400"],[1,"w-full","text-[11px]","font-medium","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"ml-1","text-[9px]","font-medium","normal-case","tracking-normal","text-amber-600","dark:text-amber-400"],[1,"flex","w-full","justify-start"],[1,"flex","w-full","justify-end"],[1,"lf-feed-technical","mt-0.5","min-w-0","w-full",3,"toggle"],[1,"min-w-0","cursor-pointer","select-none","list-none","overflow-hidden","text-[11px]","leading-4","text-zinc-400","dark:text-zinc-500","[&::-webkit-details-marker]:hidden"],[1,"mt-1.5","flex","min-w-0","flex-col","gap-2","pl-0.5","text-left"],[1,"flex","min-w-0","flex-col","gap-1"],[1,"flex","min-w-0","flex-col","gap-0.5"],[1,"mt-1","text-[9px]","leading-4","text-zinc-400","dark:text-zinc-500"],[1,"flex","w-full","flex-col","gap-0.5"],[1,"min-w-0","w-full","border-0","bg-transparent","text-left"],[1,"min-w-0","w-full","rounded-md","border","border-amber-300/80","bg-amber-50","px-2","py-1.5","text-left","dark:border-amber-700/60","dark:bg-amber-950/40"],[1,"flex","w-full","min-w-0","items-baseline","gap-1","text-[9px]","font-medium","uppercase","tracking-wide","text-zinc-400","dark:text-zinc-500"],[1,"normal-case","tracking-normal","text-amber-600","dark:text-amber-400"],[1,"lf-feed-md","max-w-[92%]","rounded-2xl","rounded-tl-md","border","border-zinc-200","bg-white","px-3","py-2","text-[12px]","leading-5","text-zinc-800","dark:border-zinc-600","dark:bg-zinc-950","dark:text-zinc-100",3,"innerHTML"],[1,"cursor-pointer","select-none","list-none","text-[11px]","leading-4","text-zinc-400","dark:text-zinc-500","[&::-webkit-details-marker]:hidden"],[1,"mt-0.5","whitespace-pre-wrap","break-words","font-sans","text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],[1,"text-[10px]","font-medium","uppercase","tracking-wide","text-amber-700","dark:text-amber-300"],[1,"mt-0.5","whitespace-pre-wrap","break-words","font-sans","text-[11px]","leading-4","text-amber-900","dark:text-amber-100"],[1,"max-w-[92%]","rounded-2xl","rounded-tr-md","border","border-zinc-300","bg-zinc-200","px-3","py-1.5","text-[12px]","leading-5","text-zinc-900","dark:border-zinc-600","dark:bg-zinc-800","dark:text-zinc-100"],[1,"mt-0.5","flex","w-full","min-w-0","items-baseline","gap-1","text-[9px]","font-medium","uppercase","tracking-wide","text-zinc-400","dark:text-zinc-500"],[1,"h-[4lh]","min-w-0","w-full","overflow-x-hidden","overflow-y-auto","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300",3,"text-right"],[1,"min-w-0","w-full","overflow-hidden","text-ellipsis","whitespace-nowrap","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300",3,"text-right","text-left"],[1,"h-[4lh]","min-w-0","w-full","overflow-x-hidden","overflow-y-auto","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"min-w-0","w-full","overflow-hidden","text-ellipsis","whitespace-nowrap","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"text-[9px]","font-medium","uppercase","tracking-wide","text-zinc-400","dark:text-zinc-500"],[1,"flex","min-w-0","gap-1","text-[10px]"],[1,"shrink-0","font-medium"],[1,"flex","min-w-0","flex-1","justify-end","overflow-hidden"],[1,"whitespace-nowrap","text-zinc-600","dark:text-zinc-300"],[1,"min-w-0","overflow-hidden","text-ellipsis","whitespace-nowrap","text-left","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],[1,"min-w-0","whitespace-pre-wrap","break-words","text-[11px]","leading-4","text-zinc-600","dark:text-zinc-300"],["type","button",1,"rounded-full","border","border-zinc-200","bg-white","px-2.5","py-1","text-[10px]","font-medium","text-zinc-700","shadow-sm","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:bg-zinc-900","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"]],template:function(t,o){t&1&&(v(0,"div",2)(1,"div",3)(2,"span",4),C(3,"Work log"),y(),E(4,AM,3,2,"lf-hover-tip",5),y(),E(5,LM,2,0,"p",6)(6,dk,7,1,"div",7),y()),t&2&&(p(4),P(o.isRunning()?-1:4),p(),P(o.rows().length===0?5:6))},dependencies:[tt],encapsulation:2})}};var pv=n=>{let e=n.replace(/[/\\]+$/,"");if(e.length===0)return n;let t=e.split(/[/\\]/);return t[t.length-1]??e};function lk(n,e){if(n&1&&(B(0,"span",0),C(1),A()),n&2){let t=e;ge("title",t.fullPath),J("aria-label","Project directory: "+t.fullPath),p(),U(" ",t.folderName," ")}}var ld=class n{constructor(){this.bridge=f(le);this.view$=this.bridge.cached["toolConfig.snapshot"].pipe(N(e=>({folderName:pv(e.config.projectDir),fullPath:e.config.projectDir})))}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-project-dir"]],decls:2,vars:3,consts:[[1,"max-w-48","truncate","rounded-full","border","border-zinc-200","px-3","py-1","text-xs","text-zinc-600","dark:border-zinc-700","dark:text-zinc-300",3,"title"]],template:function(t,o){if(t&1&&(E(0,lk,2,3,"span",0),Nn(1,"async")),t&2){let i;P((i=On(1,1,o.view$))?0:-1,i)}},dependencies:[vn],encapsulation:2})}};var cd={workflows:[],activeWorkflow:null,currentStatus:"pristine"};function hv(n,e){return _(h({},n),{workflows:e})}function gv(n,e){return _(h({},n),{activeWorkflow:e.activeWorkflow,currentStatus:e.currentStatus.status})}function fv(n,e){return _(h({},n),{currentStatus:e})}var ck=["renameInput"],uk=(n,e)=>e.workflowId;function pk(n,e){if(n&1){let t=V();v(0,"input",13,0),O("input",function(i){D(t);let r=g();return T(r.renameDraft.set(i.target.value))})("keydown.enter",function(){D(t);let i=g();return T(i.commitRename())})("keydown.escape",function(){D(t);let i=g();return T(i.cancelRename())})("blur",function(){D(t);let i=g();return T(i.commitRename())}),y()}if(n&2){let t=g();L("value",t.renameDraft())}}function hk(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",7)(1,"button",14),O("click",function(){D(t);let i=g();return T(i.startRename())}),C(2),y()()}if(n&2){let t=g();L("tip",t.activeWorkflowName()===null?"Load or create a workflow first":"Rename workflow"),p(),L("disabled",t.activeWorkflowName()===null),p(),U(" ",t.activeWorkflowName()??"No workflow loaded"," ")}}function gk(n,e){n&1&&$(0,"div",16)}function fk(n,e){if(n&1){let t=V();v(0,"div",19)(1,"button",20),O("click",function(){let i=D(t).$implicit,r=g(2);return T(r.loadWorkflow(i.workflowId))}),v(2,"span",21),C(3),y(),v(4,"span",22),C(5),y()(),v(6,"lf-hover-tip",23)(7,"button",24),O("click",function(i){let r=D(t).$implicit,s=g(2);return T(s.copyWorkflow(r.workflowId,i))}),C(8," Copy "),y()()()}if(n&2){let t=e.$implicit,o=g(2);Y("bg-zinc-100",t.workflowId===o.activeWorkflowId())("dark:bg-zinc-800",t.workflowId===o.activeWorkflowId()),J("aria-selected",t.workflowId===o.activeWorkflowId()),p(3),U(" ",t.name," "),p(2),U(" ",t.workflowId," ")}}function mk(n,e){n&1&&(v(0,"p",18),C(1," No workflows available "),y())}function yk(n,e){if(n&1){let t=V();v(0,"div",10)(1,"button",15),O("click",function(){D(t);let i=g();return T(i.createWorkflow())}),C(2," New "),y(),E(3,gk,1,0,"div",16),X(4,fk,9,7,"div",17,uk,!1,mk,2,0,"p",18),y()}if(n&2){let t=g();p(3),P(t.workflows().length>0?3:-1),p(),Q(t.workflows())}}function vk(n,e){if(n&1){let t=V();v(0,"div",11)(1,"h2",25),C(2," Delete workflow? "),y(),v(3,"p",26),C(4," This removes "),v(5,"strong"),C(6),y(),C(7," from disk. "),y(),v(8,"div",27)(9,"button",28),O("click",function(){D(t);let i=g();return T(i.cancelDelete())}),C(10," Cancel "),y(),v(11,"button",29),O("click",function(){D(t);let i=g();return T(i.confirmDelete())}),C(12," Delete "),y()()()}if(n&2){let t=g();p(6),se(t.activeWorkflowName())}}function bk(n,e){if(n&1){let t=V();v(0,"div",12)(1,"p",30),C(2),y(),v(3,"div",31)(4,"button",32),O("click",function(){D(t);let i=g();return T(i.dismissRepairNotice())}),C(5," Dismiss "),y()()()}n&2&&(p(2),U(" ",e," "))}var ud=class n{constructor(){this.bridge=f(le);this.destroyRef=f(Ve);this.renameInput=st("renameInput");this.isDropdownOpen=H(!1);this.isRenaming=H(!1);this.renameDraft=H("");this.showDeleteConfirm=H(!1);this.repairNotice=H(null);this.topbarState=ae(ce(this.bridge.cached["workflow.list.snapshot"].pipe(N(e=>({kind:"list",workflows:e.workflows}))),this.bridge.cached["workflow.current.snapshot"].pipe(N(e=>({kind:"current",snapshot:e}))),this.bridge.cached["workflow.currentStatus.snapshot"].pipe(N(e=>({kind:"status",status:e.status})))).pipe(Ge((e,t)=>{switch(t.kind){case"list":return hv(e,t.workflows);case"current":return gv(e,t.snapshot);case"status":return fv(e,t.status);default:return e}},cd),he(cd)),{initialValue:cd});this.workflows=b(()=>this.topbarState().workflows);this.activeWorkflowName=b(()=>this.topbarState().activeWorkflow?.metadata.name??null);this.activeWorkflowId=b(()=>this.topbarState().activeWorkflow?.workflowId??null);this.isDirty=b(()=>this.topbarState().currentStatus==="dirty");this.canSave=b(()=>this.topbarState().activeWorkflow!==null&&this.topbarState().currentStatus==="dirty");this.canDelete=b(()=>this.topbarState().activeWorkflow!==null);this.saveTip=b(()=>this.topbarState().activeWorkflow===null?"Load or create a workflow first":this.canSave()?"Save the active workflow":"No unsaved changes");this.bridge.raw["workflow.load.repaired"].pipe(Zt(this.destroyRef)).subscribe(e=>{this.repairNotice.set(e.message),this.showDeleteConfirm.set(!1),this.isDropdownOpen.set(!1)})}toggleDropdown(){this.isDropdownOpen.update(e=>!e),this.showDeleteConfirm.set(!1)}loadWorkflow(e){this.bridge.raw["workflow.load.requested"].next({workflowId:e}),this.isDropdownOpen.set(!1)}createWorkflow(){this.bridge.raw["workflow.create.requested"].next({}),this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1)}copyWorkflow(e,t){t.stopPropagation(),this.bridge.raw["workflow.copy.requested"].next({workflowId:e}),this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1)}saveCurrent(){this.bridge.raw["workflow.saveCurrent.requested"].next({}),this.showDeleteConfirm.set(!1)}startRename(){let e=this.activeWorkflowName();e!==null&&(this.renameDraft.set(e),this.isRenaming.set(!0),this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1),queueMicrotask(()=>{let t=this.renameInput()?.nativeElement;t!==void 0&&(t.focus(),t.select())}))}commitRename(){if(!this.isRenaming())return;let e=this.renameDraft().trim(),t=this.activeWorkflowName();this.isRenaming.set(!1),!(e.length===0||t===null||e===t)&&this.bridge.raw["workflow.renameCurrent.requested"].next({name:e})}cancelRename(){this.isRenaming.set(!1)}requestDelete(){this.canDelete()&&(this.showDeleteConfirm.set(!0),this.isDropdownOpen.set(!1))}cancelDelete(){this.showDeleteConfirm.set(!1)}dismissRepairNotice(){this.repairNotice.set(null)}confirmDelete(){let e=this.activeWorkflowId();e!==null&&(this.bridge.raw["workflow.delete.requested"].next({workflowId:e}),this.showDeleteConfirm.set(!1))}handleEscape(){this.isDropdownOpen.set(!1),this.showDeleteConfirm.set(!1),this.repairNotice.set(null),this.cancelRename()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-workflow-topbar"]],viewQuery:function(t,o){t&1&&ht(o.renameInput,ck,5),t&2&&gt()},hostBindings:function(t,o){t&1&&O("keydown.escape",function(){return o.handleEscape()},Nt)},decls:16,vars:29,consts:[["renameInput",""],[1,"relative","flex","min-w-0","items-center","gap-2"],["tip","Show workflows","align","center","side","bottom"],["type","button","aria-label","Show workflows",1,"rounded-md","border","border-zinc-200","p-1","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M5.23 7.21a.75.75 0 0 1 1.06.02L10 10.94l3.71-3.71a.75.75 0 1 1 1.06 1.06l-4.24 4.24a.75.75 0 0 1-1.06 0L5.21 8.29a.75.75 0 0 1 .02-1.08Z"],["type","text","aria-label","Rename workflow",1,"min-w-0","rounded-md","border","border-zinc-400","bg-white","px-2","py-1","text-sm","text-zinc-950","outline-none","ring-2","ring-zinc-400/20","dark:border-zinc-500","dark:bg-zinc-950","dark:text-zinc-100",3,"value"],["align","center","side","bottom",3,"tip"],["type","button",1,"rounded-md","border","px-3","py-1","text-xs","font-medium","transition","disabled:opacity-50",3,"click","disabled"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1","text-xs","font-medium","text-rose-700","transition","hover:bg-rose-50","disabled:opacity-50","dark:border-zinc-700","dark:text-rose-300","dark:hover:bg-rose-950/30",3,"click","disabled"],["role","listbox","aria-label","Workflows",1,"lf-scroll","absolute","left-0","top-full","z-20","mt-2","max-h-72","w-80","overflow-auto","rounded-lg","border","border-zinc-200","bg-white","py-1","shadow-lg","dark:border-zinc-700","dark:bg-zinc-900"],["role","alertdialog","aria-labelledby","delete-workflow-title","aria-describedby","delete-workflow-desc",1,"absolute","right-0","top-full","z-20","mt-2","w-72","rounded-lg","border","border-zinc-200","bg-white","p-4","shadow-lg","dark:border-zinc-700","dark:bg-zinc-900"],["role","status","aria-live","polite",1,"absolute","left-0","top-full","z-20","mt-2","w-96","max-w-[min(24rem,calc(100vw-2rem))]","rounded-lg","border","border-amber-300","bg-amber-50","p-3","shadow-lg","dark:border-amber-800","dark:bg-amber-950/40"],["type","text","aria-label","Rename workflow",1,"min-w-0","rounded-md","border","border-zinc-400","bg-white","px-2","py-1","text-sm","text-zinc-950","outline-none","ring-2","ring-zinc-400/20","dark:border-zinc-500","dark:bg-zinc-950","dark:text-zinc-100",3,"input","keydown.enter","keydown.escape","blur","value"],["type","button",1,"truncate","rounded-md","px-2","py-1","text-sm","font-medium","text-zinc-900","transition","hover:bg-zinc-100","disabled:opacity-50","dark:text-zinc-100","dark:hover:bg-zinc-800",3,"click","disabled"],["type","button","role","option",1,"flex","w-full","items-center","px-3","py-2","text-left","text-sm","font-medium","text-zinc-900","transition","hover:bg-zinc-100","dark:text-zinc-100","dark:hover:bg-zinc-800",3,"click"],["role","separator",1,"my-1","border-t","border-zinc-200","dark:border-zinc-700"],["role","option",1,"flex","items-stretch","gap-1","px-1","py-0.5",3,"bg-zinc-100","dark:bg-zinc-800"],[1,"px-3","py-2","text-xs","text-zinc-500","dark:text-zinc-400"],["role","option",1,"flex","items-stretch","gap-1","px-1","py-0.5"],["type","button",1,"flex","min-w-0","flex-1","flex-col","items-start","rounded-md","px-2","py-2","text-left","text-sm","transition","hover:bg-zinc-100","dark:hover:bg-zinc-800",3,"click"],[1,"truncate","font-medium","text-zinc-900","dark:text-zinc-100"],[1,"truncate","text-xs","text-zinc-500","dark:text-zinc-400"],["tip","Copy this workflow","align","center","side","bottom"],["type","button","aria-label","Copy workflow",1,"shrink-0","self-center","rounded-md","border","border-zinc-200","px-2","py-1","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-50","dark:border-zinc-600","dark:text-zinc-200","dark:hover:bg-zinc-700",3,"click"],["id","delete-workflow-title",1,"text-sm","font-semibold","text-zinc-900","dark:text-zinc-100"],["id","delete-workflow-desc",1,"mt-2","text-xs","leading-5","text-zinc-500","dark:text-zinc-400"],[1,"mt-4","flex","justify-end","gap-2"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1","text-xs","font-medium","text-zinc-700","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"],["type","button",1,"rounded-md","border","border-rose-300","bg-rose-50","px-3","py-1","text-xs","font-medium","text-rose-700","transition","hover:bg-rose-100","dark:border-rose-800","dark:bg-rose-950/40","dark:text-rose-300","dark:hover:bg-rose-950/60",3,"click"],[1,"text-xs","leading-5","text-amber-950","dark:text-amber-100"],[1,"mt-2","flex","justify-end"],["type","button",1,"rounded-md","border","border-amber-300","px-2","py-1","text-xs","font-medium","text-amber-900","transition","hover:bg-amber-100","dark:border-amber-700","dark:text-amber-100","dark:hover:bg-amber-900/50",3,"click"]],template:function(t,o){if(t&1&&(v(0,"div",1)(1,"lf-hover-tip",2)(2,"button",3),O("click",function(){return o.toggleDropdown()}),fe(),v(3,"svg",4),$(4,"path",5),y()()(),E(5,pk,2,1,"input",6)(6,hk,3,3,"lf-hover-tip",7),ug(),v(7,"lf-hover-tip",7)(8,"button",8),O("click",function(){return o.saveCurrent()}),C(9," Save "),y()(),v(10,"lf-hover-tip",7)(11,"button",9),O("click",function(){return o.requestDelete()}),C(12," Delete "),y()(),E(13,yk,7,2,"div",10),E(14,vk,13,1,"div",11),E(15,bk,6,1,"div",12),y()),t&2){let i;p(2),J("aria-expanded",o.isDropdownOpen()),p(3),P(o.isRenaming()?5:6),p(2),L("tip",o.saveTip()),p(),Y("border-zinc-400",o.isDirty())("bg-zinc-50",o.isDirty())("text-zinc-700",o.isDirty())("dark:border-zinc-500",o.isDirty())("dark:bg-zinc-950/40",o.isDirty())("dark:text-zinc-300",o.isDirty())("border-zinc-200",!o.isDirty())("text-zinc-700",!o.isDirty())("dark:border-zinc-700",!o.isDirty())("dark:text-zinc-200",!o.isDirty()),L("disabled",!o.canSave()),p(2),L("tip",o.canDelete()?"Delete this workflow from disk":"No workflow loaded"),p(),L("disabled",!o.canDelete()),p(2),P(o.isDropdownOpen()?13:-1),p(),P(o.showDeleteConfirm()?14:-1),p(),P((i=o.repairNotice())?15:-1,i)}},dependencies:[tt],encapsulation:2})}};var pd=(n,e)=>{if(n.config.kind==="button")return{ok:!0,payload:n.config.payload};if(n.config.kind==="textarea"){let t=e.trim();return t.length===0?{ok:!1}:{ok:!0,payload:t}}return{ok:!1}};var wk=(n,e)=>e.nodeId+":"+e.portId;function Ck(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",1)(1,"button",2),O("click",function(){D(t);let i=g(2).$implicit,r=g();return T(r.submitEntry(i))}),fe(),v(2,"svg",3),$(3,"path",4),y()()()}if(n&2){let t=g(2).$implicit,o=g();L("tip",o.canSubmitStart(t)?"Start the chat run":"Type a message to start"),p(),Y("hover:bg-emerald-100",o.canSubmitStart(t))("dark:hover:bg-emerald-950/60",o.canSubmitStart(t))("opacity-50",!o.canSubmitStart(t)),J("aria-disabled",o.canSubmitStart(t)?null:"true")}}function _k(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",1)(1,"button",5),O("click",function(){D(t);let i=g(2).$implicit,r=g();return T(r.submitEntry(i))}),C(2),y()()}if(n&2){let t=g(2).$implicit,o=g();L("tip",o.draftOf(t).trim().length>0?"":"Type a message first"),p(),L("disabled",o.draftOf(t).trim().length===0),p(),U(" ",t.config.submitLabel??"Send"," ")}}function xk(n,e){if(n&1&&E(0,Ck,4,8,"lf-hover-tip",1)(1,_k,3,3,"lf-hover-tip",1),n&2){let t=g().$implicit;P(t.config.role==="chat-start"?0:1)}}function Sk(n,e){if(n&1){let t=V();v(0,"button",6),O("click",function(){D(t);let i=g().$implicit,r=g();return T(r.submitEntry(i))}),C(1),y()}if(n&2){let t=g().$implicit;p(),U(" ",t.config.label," ")}}function Ek(n,e){if(n&1&&E(0,xk,2,1)(1,Sk,2,1,"button",0),n&2){let t,o=e.$implicit;P((t=o.config.kind)==="textarea"?0:t==="button"?1:-1)}}var hd=class n{constructor(){this.entries=[];this.submitted=new _e;this.execution=f(ke)}draftOf(e){return this.execution.hitlDraft(e.nodeId,e.portId)}canSubmitStart(e){return this.draftOf(e).trim().length>0}submitEntry(e){let t=pd(e,this.draftOf(e));t.ok&&this.submitted.emit([e.nodeId,e.portId,t.payload])}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-hitl-actions"]],inputs:{entries:"entries"},outputs:{submitted:"submitted"},decls:2,vars:0,consts:[["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800"],[3,"tip"],["type","button","aria-label","Start",1,"lf-composer-icon-btn","border","border-emerald-400","bg-emerald-50","text-emerald-700","dark:border-emerald-500","dark:bg-emerald-950/40","dark:text-emerald-300",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M6.3 2.84A1.5 1.5 0 0 0 4 4.11v11.78a1.5 1.5 0 0 0 2.3 1.27l9.34-5.89a1.5 1.5 0 0 0 0-2.54L6.3 2.84Z"],["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","disabled:opacity-50","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click","disabled"],["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"]],template:function(t,o){t&1&&X(0,Ek,2,1,null,null,wk),t&2&&Q(o.entries)},dependencies:[tt],encapsulation:2})}};function Pk(n,e){if(n&1){let t=V();B(0,"div",1),ve("mouseenter",function(){D(t);let i=g();return T(i.onPointerEnter())})("mouseleave",function(){D(t);let i=g();return T(i.onPointerLeave())}),B(1,"textarea",2),ve("input",function(i){D(t);let r=g();return T(r.onDraft(i))})("keydown",function(i){D(t);let r=g();return T(r.onKeydown(i))})("keyup",function(i){D(t);let r=g();return T(r.onKeyup(i))})("focus",function(){D(t);let i=g();return T(i.onFocus())})("blur",function(){D(t);let i=g();return T(i.onBlur())}),A()()}if(n&2){let t=g();p(),Y("pt-11",t.padTopForTabs)("pt-3",!t.padTopForTabs),ge("id",Pg("hitl-",t.nodeId,"-",t.portId))("placeholder",t.config.placeholder??"")("value",t.execution.hitlDraft(t.nodeId,t.portId)),J("aria-label",t.config.title)}}var gd=class n{constructor(){this.padTopForTabs=!1;this.enterActivate=new _e;this.execution=f(ke);this.hover=f(ln);this.pointerInside=!1;this.focused=!1}onDraft(e){this.execution.setHitlDraft(this.nodeId,this.portId,e.target.value)}onKeydown(e){e.key!=="Enter"||e.shiftKey||e.isComposing||e.altKey||e.ctrlKey||e.metaKey||e.preventDefault()}onKeyup(e){e.key!=="Enter"||e.shiftKey||e.isComposing||e.altKey||e.ctrlKey||e.metaKey||(e.preventDefault(),this.enterActivate.emit())}onPointerEnter(){this.pointerInside=!0,this.hover.set(this.nodeId)}onPointerLeave(){this.pointerInside=!1,this.focused||this.hover.clear()}onFocus(){this.focused=!0,this.hover.set(this.nodeId)}onBlur(){this.focused=!1,this.pointerInside||this.hover.clear()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-hitl-textarea"]],hostAttrs:[1,"block","h-full","w-full"],inputs:{nodeId:"nodeId",portId:"portId",config:"config",padTopForTabs:"padTopForTabs"},outputs:{enterActivate:"enterActivate"},decls:1,vars:1,consts:[[1,"h-full","w-full"],[1,"h-full","w-full",3,"mouseenter","mouseleave"],[1,"lf-scroll","h-full","w-full","resize-none","border-0","bg-transparent","px-3","pb-14","text-xs","leading-5","text-zinc-900","focus:outline-none","dark:text-zinc-100",3,"input","keydown","keyup","focus","blur","id","placeholder","value"]],template:function(t,o){if(t&1&&E(0,Pk,2,10,"div",0),t&2){let i;P((i=o.config.kind)==="textarea"?0:-1)}},encapsulation:2})}};var mv=n=>n.hasPermissionAsk?"permission":n.isRunning&&n.hitlTabCount===0?"working":n.hitlTabCount>0||n.isRunning?"hitl":"idleRun";var Ik=(n,e)=>e.runId;function Dk(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",4)(1,"button",5),O("click",function(){let i=D(t),r=g(2);return T(r.discard(i))}),C(2," Discard "),y()()}}function Tk(n,e){if(n&1&&(v(0,"div",2)(1,"p",3),C(2),y(),E(3,Dk,3,0,"lf-hover-tip",4),y()),n&2){let t,o=e,i=g();Y("w-full",!i.compact),p(2),Si(" Resume failed (",o.code,"): ",o.message," "),p(),P((t=o.runId)?3:-1,t)}}function Mk(n,e){n&1&&C(0," \xB7 stale ")}function kk(n,e){n&1&&C(0," \xB7 corrupt ")}function Rk(n,e){if(n&1){let t=V();v(0,"button",21),O("click",function(){D(t);let i=g().$implicit,r=g(3);return T(r.continueFrom(i.runId))}),C(1," Continue "),y()}}function Nk(n,e){if(n&1){let t=V();v(0,"li",13)(1,"div",14)(2,"div",15)(3,"p",16),C(4),y(),v(5,"p",17),C(6),E(7,Mk,1,0),E(8,kk,1,0),y()(),v(9,"div",18),E(10,Rk,2,0,"button",19),v(11,"button",20),O("click",function(){let i=D(t).$implicit,r=g(3);return T(r.discard(i.runId))}),C(12," Discard "),y()()()()}if(n&2){let t=e.$implicit,o=g(3);Y("bg-rose-50",t.corrupt===!0||t.stale===!0)("dark:bg-rose-950/30",t.corrupt===!0||t.stale===!0),p(4),U(" ",o.titleFor(t)," "),p(2),Si(" ",o.formatTime(t.updatedAt)," \xB7 ",t.status," "),p(),P(t.stale===!0?7:-1),p(),P(t.corrupt===!0?8:-1),p(2),P(o.canResumeEntry(t)&&!o.isRunning()?10:-1)}}function Ok(n,e){if(n&1&&(v(0,"ul",11),X(1,Nk,13,10,"li",12,Ik),y()),n&2){let t=g(2);p(),Q(t.checkpoints())}}function Ak(n,e){if(n&1){let t=V();v(0,"div",6)(1,"button",7),O("click",function(){D(t);let i=g();return T(i.togglePicker())}),v(2,"span",8),C(3," Continue from\u2026 "),v(4,"span",9),C(5),y()(),v(6,"span",10),C(7),y()(),E(8,Ok,3,0,"ul",11),y()}if(n&2){let t=g();Y("w-full",!t.compact),p(),J("aria-expanded",t.pickerOpen()),p(4),U(" (",t.resumableCount(),") "),p(2),U(" ",t.pickerOpen()?"\u25B4":"\u25BE"," "),p(),P(t.pickerOpen()?8:-1)}}var Lk=n=>{let e=new Date(n);return Number.isNaN(e.getTime())?n:e.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})},Fk=n=>n.label!==void 0&&n.label.length>0?n.label:`Checkpoint \xB7 ${n.completedNodeIds.length} stage(s)`,fd=class n{constructor(){this.compact=!1;this.bridge=f(le);this.execution=f(ke);this.isRunning=this.execution.isRunning;this.pickerOpen=H(!1);this.uiState=ae(ce(this.bridge.cached["runner.checkpoints.snapshot"].pipe(N(e=>({type:"snapshot",checkpoints:e.checkpoints}))),this.bridge.raw["runner.resume.failed"].pipe(N(e=>({type:"error",error:e}))),this.bridge.raw["runner.resume.started"].pipe(N(()=>({type:"clearError"}))),this.bridge.raw["runner.started"].pipe(N(()=>({type:"clearError"})))).pipe(Ge((e,t)=>{switch(t.type){case"snapshot":return{checkpoints:t.checkpoints,resumeError:null};case"error":return{checkpoints:e.checkpoints,resumeError:t.error};case"clearError":return{checkpoints:e.checkpoints,resumeError:null}}},{checkpoints:[],resumeError:null}),he({checkpoints:[],resumeError:null})),{initialValue:{checkpoints:[],resumeError:null}});this.resumeError=b(()=>this.uiState().resumeError);this.checkpoints=b(()=>this.uiState().checkpoints);this.hasCheckpoints=b(()=>this.checkpoints().length>0&&!this.isRunning());this.resumableCount=b(()=>this.checkpoints().length)}togglePicker(){this.pickerOpen.update(e=>!e)}titleFor(e){return Fk(e)}formatTime(e){return Lk(e)}canResumeEntry(e){return e.corrupt!==!0&&e.stale!==!0&&e.completedNodeIds.length>0&&(e.status==="stopped"||e.status==="failed"||e.status==="running")}continueFrom(e){this.pickerOpen.set(!1),this.bridge.raw["runner.resume.requested"].next({runId:e})}discard(e){this.bridge.raw["runner.checkpoint.discard.requested"].next({runId:e})}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-continue-button"]],inputs:{compact:"compact"},decls:2,vars:1,consts:[[1,"flex","min-w-0","flex-col","gap-1",3,"w-full"],[1,"flex","min-w-0","flex-col","gap-1.5",3,"w-full"],[1,"flex","min-w-0","flex-col","gap-1"],[1,"lf-text-caption","text-rose-700","dark:text-rose-300"],["tip","Discard the failed checkpoint"],["type","button",1,"lf-btn","lf-btn--ghost","rounded-md","border","border-rose-300","px-2","py-1","text-rose-700","hover:bg-rose-50","dark:border-rose-700","dark:text-rose-300","dark:hover:bg-rose-950/40",3,"click"],[1,"flex","min-w-0","flex-col","gap-1.5"],["type","button",1,"lf-btn","lf-btn--ghost","flex","w-full","items-center","justify-between","gap-2","rounded-md","border","border-sky-400","bg-sky-50","px-3","py-1.5","text-sky-700","transition","hover:bg-sky-100","dark:border-sky-500","dark:bg-sky-950/40","dark:text-sky-300","dark:hover:bg-sky-950/60",3,"click"],[1,"lf-text-caption","font-medium"],[1,"opacity-70"],["aria-hidden","true",1,"lf-text-caption","opacity-60"],["role","listbox","aria-label","Resumable checkpoints",1,"lf-scroll","flex","max-h-48","flex-col","gap-1","overflow-y-auto","rounded-md","border","border-zinc-200","bg-white","p-1","dark:border-zinc-700","dark:bg-zinc-900"],[1,"flex","min-w-0","flex-col","gap-1","rounded","px-2","py-1.5",3,"bg-rose-50","dark:bg-rose-950/30"],[1,"flex","min-w-0","flex-col","gap-1","rounded","px-2","py-1.5"],[1,"flex","min-w-0","items-start","justify-between","gap-2"],[1,"min-w-0","flex-1"],[1,"lf-text-caption","truncate","font-medium","text-zinc-800","dark:text-zinc-100"],[1,"lf-text-caption","truncate","text-zinc-500","dark:text-zinc-400"],[1,"flex","shrink-0","gap-1"],["type","button",1,"lf-btn","lf-btn--ghost","rounded","border","border-sky-400","px-2","py-0.5","text-sky-700","dark:border-sky-500","dark:text-sky-300"],["type","button",1,"lf-btn","lf-btn--ghost","rounded","border","border-zinc-300","px-2","py-0.5","text-zinc-600","dark:border-zinc-600","dark:text-zinc-300",3,"click"],["type","button",1,"lf-btn","lf-btn--ghost","rounded","border","border-sky-400","px-2","py-0.5","text-sky-700","dark:border-sky-500","dark:text-sky-300",3,"click"]],template:function(t,o){if(t&1&&E(0,Tk,4,5,"div",0)(1,Ak,9,6,"div",1),t&2){let i;P((i=o.resumeError())?0:o.hasCheckpoints()?1:-1,i)}},dependencies:[tt],encapsulation:2})}};function zk(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",0)(1,"button",1),O("click",function(){D(t);let i=g();return T(i.onPause())}),fe(),v(2,"svg",2),$(3,"path",3),y()()()}if(n&2){let t=g();L("tip",t.pauseTip()),p(),L("disabled",!t.canPause())}}var md=class n{constructor(){this.execution=f(ke);this.visible=b(()=>this.execution.isRunning()&&this.execution.pausableFeedNodeId()!==null);this.canPause=b(()=>this.execution.pausableFeedNodeId()!==null);this.pauseTip=b(()=>(this.execution.livenessNowMs(),this.execution.pausableFeedIsQuiet()?"API quiet \u2014 Pause to nudge":"Pause \u2014 soft interrupt"))}onPause(){this.execution.requestSoftPause()}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-pause-button"]],decls:1,vars:1,consts:[["align","end",3,"tip"],["type","button","aria-label","Pause",1,"lf-composer-icon-btn","border","border-amber-400","bg-amber-50","text-amber-800","hover:bg-amber-100","disabled:opacity-50","dark:border-amber-500","dark:bg-amber-950/40","dark:text-amber-300","dark:hover:bg-amber-950/60",3,"click","disabled"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M5.75 3A1.75 1.75 0 0 0 4 4.75v10.5c0 .966.784 1.75 1.75 1.75h1.5A1.75 1.75 0 0 0 9 15.25V4.75A1.75 1.75 0 0 0 7.25 3h-1.5ZM12.75 3A1.75 1.75 0 0 0 11 4.75v10.5c0 .966.784 1.75 1.75 1.75h1.5A1.75 1.75 0 0 0 16 15.25V4.75A1.75 1.75 0 0 0 14.25 3h-1.5Z"]],template:function(t,o){t&1&&E(0,zk,4,2,"lf-hover-tip",0),t&2&&P(o.visible()?0:-1)},dependencies:[tt],encapsulation:2})}};function Bk(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",0)(1,"button",2),O("click",function(){D(t);let i=g();return T(i.toggle())}),fe(),v(2,"svg",3),$(3,"path",4),y()()()}}function $k(n,e){if(n&1){let t=V();v(0,"lf-hover-tip",1)(1,"button",5),O("click",function(){D(t);let i=g();return T(i.toggle())}),C(2),y()()}if(n&2){let t=g();L("tip",t.disabledTip()),p(),Y("w-full",!t.compact)("shrink-0",t.compact),L("disabled",t.isDisabled()),p(),U(" ",t.buttonLabel()," ")}}var yd=class n{constructor(){this.compact=!1;this.bridge=f(le);this.execution=f(ke);this.selection=f($n);this.selectedNodeId=this.selection.selectedNodeId;this.isRunning=this.execution.isRunning;this.isDisabled=b(()=>{if(this.isRunning())return!1;if(!this.execution.hasRunnableGraph())return!0;let e=this.selectedNodeId();return e!==null?this.execution.nodeClusterRequiresChatEntry(e):!this.execution.hasPlainStartTargets()});this.disabledTip=b(()=>{if(!this.isDisabled())return"";if(!this.execution.hasRunnableGraph())return"Load a workflow with nodes to run";let e=this.selectedNodeId();return e!==null&&this.execution.nodeClusterRequiresChatEntry(e)?"Start this cluster from the Chat Input composer":this.execution.hasPlainStartTargets()?"Cannot run right now":"This graph starts from Chat Input \u2014 use Start in the composer"});this.buttonLabel=b(()=>this.isRunning()?"Stop":this.selectedNodeId()!==null?"Run from node":"Run")}toggle(){if(this.isRunning()){this.bridge.raw["runner.interrupt.requested"].next("cancel");return}let e=this.selectedNodeId();if(e!==null){if(this.execution.nodeClusterRequiresChatEntry(e))return;this.bridge.raw["runner.startNode.requested"].next([e,void 0]);return}this.execution.hasPlainStartTargets()&&this.bridge.raw["runner.start.requested"].next([{},void 0])}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-run-button"]],inputs:{compact:"compact"},decls:2,vars:1,consts:[["tip","Stop \u2014 cancel run","align","start"],[3,"tip"],["type","button","aria-label","Stop",1,"lf-composer-icon-btn","border","border-rose-400","bg-rose-50","text-rose-800","hover:bg-rose-100","dark:border-rose-500","dark:bg-rose-950/40","dark:text-rose-300","dark:hover:bg-rose-950/60",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["d","M5.25 3A2.25 2.25 0 0 0 3 5.25v9.5A2.25 2.25 0 0 0 5.25 17h9.5A2.25 2.25 0 0 0 17 14.75v-9.5A2.25 2.25 0 0 0 14.75 3h-9.5Z"],["type","button",1,"lf-composer-pill","border","border-emerald-400","bg-emerald-50","text-emerald-700","hover:bg-emerald-100","disabled:opacity-50","dark:border-emerald-500","dark:bg-emerald-950/40","dark:text-emerald-300","dark:hover:bg-emerald-950/60",3,"click","disabled"]],template:function(t,o){t&1&&E(0,Bk,4,0,"lf-hover-tip",0)(1,$k,3,7,"lf-hover-tip",1),t&2&&P(o.isRunning()?0:1)},dependencies:[tt],encapsulation:2})}};var Hk=(n,e)=>e.nodeId;function Uk(n,e){if(n&1&&(v(0,"div",1)(1,"p",7),C(2," permission.ask "),y(),v(3,"p",8),C(4),y(),v(5,"p",9),C(6),y()()),n&2){let t=e,o=g();p(4),U(" ",t.summary," "),p(2),U(" ",o.permissionAskMeta(t)," ")}}function jk(n,e){n&1&&(v(0,"p",10),C(1," No pending human-in-the-loop steps. Chat Input and Review Gate replies appear here when the graph is waiting on you. "),y())}function Vk(n,e){if(n&1&&E(0,jk,2,0,"p",10),n&2){let t=g();P(t.footerMode()!=="working"?0:-1)}}function Wk(n,e){if(n&1){let t=V();v(0,"button",14),O("click",function(){let i=D(t).$implicit,r=g(3);return T(r.selectHitlTab(i.nodeId))})("mouseenter",function(){let i=D(t).$implicit,r=g(3);return T(r.hover.set(i.nodeId))})("mouseleave",function(){D(t);let i=g(3);return T(i.hover.clear())}),C(1),y()}if(n&2){let t=e.$implicit,o=g(3);Y("bg-zinc-900",t.nodeId===o.resolvedActiveHitlTab())("text-white",t.nodeId===o.resolvedActiveHitlTab())("text-zinc-600",t.nodeId!==o.resolvedActiveHitlTab())("hover:bg-zinc-100",t.nodeId!==o.resolvedActiveHitlTab())("ring-2",o.hover.isHovered(t.nodeId))("ring-violet-400",o.hover.isHovered(t.nodeId))("dark:text-zinc-300",t.nodeId!==o.resolvedActiveHitlTab())("dark:hover:bg-zinc-800",t.nodeId!==o.resolvedActiveHitlTab()),p(),U(" ",t.label," ")}}function Gk(n,e){if(n&1&&(v(0,"div",11),X(1,Wk,2,17,"button",13,Hk),y()),n&2){let t=g(2);p(),Q(t.hitlTabs())}}function qk(n,e){if(n&1){let t=V();v(0,"lf-hitl-textarea",15),O("enterActivate",function(){D(t);let i=g(2);return T(i.onEnterActivate())}),y()}if(n&2){let t=e,o=g(2);L("nodeId",t.nodeId)("portId",t.portId)("config",t.config)("padTopForTabs",o.showTabs())}}function Yk(n,e){if(n&1&&(E(0,Gk,3,0,"div",11),E(1,qk,1,4,"lf-hitl-textarea",12)),n&2){let t,o=g();P(o.showTabs()?0:-1),p(),P((t=o.activeHitlTextarea())?1:-1,t)}}function Zk(n,e){n&1&&(v(0,"p",2),C(1," working . . . "),y())}function Kk(n,e){if(n&1){let t=V();v(0,"div",16)(1,"lf-hover-tip",17)(2,"button",18),O("click",function(){let i=D(t),r=g(2);return T(r.onPermissionReply(i,"deny"))}),C(3," Deny "),y()(),v(4,"lf-hover-tip",19)(5,"button",20),O("click",function(){let i=D(t),r=g(2);return T(r.onPermissionReply(i,"allow"))}),C(6," Allow "),y()()()}}function Xk(n,e){if(n&1&&E(0,Kk,7,0,"div",16),n&2){let t,o=g();P((t=o.activePermissionAsk())?0:-1,t)}}function Qk(n,e){n&1&&(v(0,"div",4),$(1,"lf-run-button",21)(2,"lf-pause-button"),y()),n&2&&(p(),L("compact",!0))}function Jk(n,e){n&1&&(v(0,"div",22),$(1,"lf-run-button",21)(2,"lf-pause-button"),y()),n&2&&(p(),L("compact",!0))}function eR(n,e){if(n&1){let t=V();v(0,"lf-hitl-actions",26),O("submitted",function(i){D(t);let r=g(2);return T(r.onHitlSubmit(i))}),y()}if(n&2){let t=g(2);L("entries",t.hitlReplyActionsForActiveTab())}}function tR(n,e){if(n&1){let t=V();v(0,"lf-hitl-actions",27),O("submitted",function(i){D(t);let r=g(2);return T(r.onHitlSubmit(i))}),y()}if(n&2){let t=g(2);L("entries",t.hitlStartActionForActiveTab())}}function nR(n,e){if(n&1&&(v(0,"div",5),E(1,Jk,3,1,"div",22),v(2,"div",23),$(3,"lf-continue-button",21),E(4,eR,1,1,"lf-hitl-actions",24),E(5,tR,1,1,"lf-hitl-actions",25),y()()),n&2){let t=g();p(),P(t.execution.isRunning()?1:-1),p(2),L("compact",!0),p(),P(t.hitlReplyActionsForActiveTab().length>0?4:-1),p(),P(!t.execution.isRunning()&&t.hitlStartActionForActiveTab().length>0?5:-1)}}function oR(n,e){n&1&&(v(0,"div",6),$(1,"lf-continue-button")(2,"lf-run-button",28),y())}var vd=class n{constructor(){this.execution=f(ke);this.hover=f(ln);this.activePermissionAsk=b(()=>this.execution.pendingPermissionAsks()[0]??null);this.hitlTabs=b(()=>this.execution.hitlTriggeredNodeIds().map(e=>{let t=this.execution.hitlControls(e);return{nodeId:e,label:this.execution.nodeLabel(e),textarea:t.find(o=>o.config.kind==="textarea")??null,actions:t}}));this.selectedHitlTab=H(null);this.resolvedActiveHitlTab=b(()=>{let e=this.hitlTabs();if(e.length===0)return null;let t=this.selectedHitlTab();return t!==null&&e.some(o=>o.nodeId===t)?t:e[0]?.nodeId??null});this.activeHitlTabEntry=b(()=>{let e=this.resolvedActiveHitlTab();return e===null?null:this.hitlTabs().find(t=>t.nodeId===e)??null});this.activeHitlTextarea=b(()=>this.activeHitlTabEntry()?.textarea??null);this.hitlReplyActionsForActiveTab=b(()=>(this.activeHitlTabEntry()?.actions??[]).filter(e=>!(e.config.kind==="textarea"&&e.config.role==="chat-start")));this.hitlStartActionForActiveTab=b(()=>(this.activeHitlTabEntry()?.actions??[]).filter(e=>e.config.kind==="textarea"&&e.config.role==="chat-start"));this.showTabs=b(()=>this.hitlTabs().length>1);this.footerMode=b(()=>mv({hasPermissionAsk:this.activePermissionAsk()!==null,isRunning:this.execution.isRunning(),hitlTabCount:this.hitlTabs().length}))}selectHitlTab(e){this.selectedHitlTab.set(e)}onHitlSubmit(e){this.execution.submitHitl(e)}onEnterActivate(){let t=[...this.hitlReplyActionsForActiveTab(),...this.execution.isRunning()?[]:this.hitlStartActionForActiveTab()].at(-1)??null;if(t===null)return;let o=this.execution.hitlDraft(t.nodeId,t.portId),i=pd(t,o);i.ok&&this.onHitlSubmit([t.nodeId,t.portId,i.payload])}onPermissionReply(e,t){this.execution.submitPermissionReply(e,t)}permissionAskMeta(e){let t=`${this.execution.nodeLabel(e.nodeId)} \xB7 ${e.toolId}`;return e.detail.length>0?`${t} \xB7 ${e.detail}`:t}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-composer-shell"]],hostAttrs:[1,"block","shrink-0"],inputs:{height:"height"},decls:10,vars:5,consts:[[1,"relative","overflow-hidden","border-t","border-zinc-200","bg-white","dark:border-zinc-800","dark:bg-zinc-900"],[1,"lf-scroll","absolute","inset-0","z-0","flex","flex-col","gap-2","overflow-y-auto","p-4","pb-14"],[1,"pointer-events-none","absolute","inset-0","z-[1]","flex","items-center","justify-center","px-3","text-xs","font-medium","tracking-wide","text-zinc-500","dark:text-zinc-400"],[1,"absolute","inset-x-0","bottom-0","z-[3]","flex","min-h-[calc(var(--lf-control-h)+1.1rem)]","items-center","bg-gradient-to-t","from-white","from-45%","to-transparent","px-3","py-2","dark:from-zinc-900"],[1,"flex","w-full","items-center","justify-between","gap-3"],[1,"flex","w-full","items-center","gap-2"],[1,"flex","w-full","flex-col","items-stretch","gap-2"],[1,"text-[11px]","font-medium","uppercase","tracking-wide","text-amber-700","dark:text-amber-300"],[1,"text-sm","leading-5","text-zinc-800","dark:text-zinc-100"],[1,"text-[11px]","leading-4","text-zinc-500","dark:text-zinc-400"],[1,"absolute","inset-0","z-0","p-4","pb-14","text-[11px]","leading-4","text-zinc-400","dark:text-zinc-500"],[1,"lf-scroll","absolute","inset-x-0","top-0","z-[3]","flex","items-center","gap-1","overflow-x-auto","bg-gradient-to-b","from-white","from-40%","to-transparent","px-2","py-1.5","dark:from-zinc-900"],[1,"absolute","inset-0","z-0",3,"nodeId","portId","config","padTopForTabs"],["type","button",1,"rounded-md","px-2.5","py-1","text-[11px]","font-medium","transition",3,"bg-zinc-900","text-white","text-zinc-600","hover:bg-zinc-100","ring-2","ring-violet-400","dark:text-zinc-300","dark:hover:bg-zinc-800"],["type","button",1,"rounded-md","px-2.5","py-1","text-[11px]","font-medium","transition",3,"click","mouseenter","mouseleave"],[1,"absolute","inset-0","z-0",3,"enterActivate","nodeId","portId","config","padTopForTabs"],[1,"flex","w-full","items-center","justify-end","gap-2"],["tip","Deny this tool permission ask"],["type","button",1,"lf-composer-pill","border","border-zinc-200","text-zinc-700","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"],["tip","Allow this tool permission ask"],["type","button",1,"lf-composer-pill","border","border-zinc-900","bg-zinc-900","text-white","hover:bg-zinc-800","dark:border-zinc-100","dark:bg-zinc-100","dark:text-zinc-900","dark:hover:bg-zinc-200",3,"click"],[3,"compact"],[1,"mr-auto","flex","shrink-0","items-center","gap-2"],[1,"ml-auto","flex","min-w-0","flex-wrap","items-center","justify-end","gap-2"],[1,"flex","items-center","gap-2",3,"entries"],[1,"flex","items-center",3,"entries"],[1,"flex","items-center","gap-2",3,"submitted","entries"],[1,"flex","items-center",3,"submitted","entries"],[1,"w-full"]],template:function(t,o){if(t&1&&(v(0,"section",0),E(1,Uk,7,2,"div",1)(2,Vk,1,1)(3,Yk,2,2),E(4,Zk,2,0,"p",2),v(5,"div",3),E(6,Xk,1,1)(7,Qk,3,1,"div",4)(8,nR,6,4,"div",5)(9,oR,3,0,"div",6),y()()),t&2){let i,r;Ue("height",o.height,"px"),p(),P((i=o.activePermissionAsk())?1:o.hitlTabs().length===0?2:3,i),p(3),P(o.footerMode()==="working"?4:-1),p(2),P((r=o.footerMode())==="permission"?6:r==="working"?7:r==="hitl"?8:9)}},dependencies:[yd,md,fd,gd,hd,tt],encapsulation:2})}};var iR=4,xh=iR*2,Sh=64,yv=4,vv=80,Zn=(n,e,t)=>Math.min(Math.max(n,e),t),bd=(n,e,t,o)=>{if(n==="left"){let r=Math.max(Qi,o.rowWidth-t.rightWidth-xh-Sh);return Zn(e,Qi,r)}if(n==="right"){let r=Math.max(Ji,o.rowWidth-t.leftWidth-xh-Sh);return Zn(e,Ji,r)}let i=Math.max(jo,o.rightAsideHeight-vv-yv);return Zn(e,jo,i)},Eh=(n,e)=>{let t=Math.max(0,e.rowWidth-xh-Sh),o=Zn(n.leftWidth,Qi,io),i=Zn(n.rightWidth,Ji,io);if(o+i>t&&(i=Zn(t-o,0,io),o+i>t&&(o=Zn(t-i,0,io)),o+i>t&&o+i>0)){let a=t/(o+i);o=Math.floor(o*a),i=Math.max(0,t-o)}let r=Math.max(jo,e.rightAsideHeight-vv-yv),s=Zn(n.composerHeight,jo,Math.min(r,io));return{leftWidth:o,rightWidth:i,composerHeight:s}},bv=(n,e)=>n.leftWidth===e.leftWidth&&n.rightWidth===e.rightWidth&&n.composerHeight===e.composerHeight;var rR=["editorRow"],sR=["rightAside"];function aR(n,e){if(n&1){let t=V();v(0,"section",25)(1,"lf-settings-panel",29),O("closeRequested",function(){D(t);let i=g(2);return T(i.closeSettings())}),y()()}}function dR(n,e){n&1&&(v(0,"section",25),$(1,"lf-inspector-panel"),y())}function lR(n,e){n&1&&(v(0,"section",26),$(1,"lf-work-log-panel"),y())}function cR(n,e){if(n&1){let t=V();v(0,"div",17,0)(2,"aside",18)(3,"section",19),$(4,"lf-palette-sidebar"),y()(),v(5,"button",20),O("pointerdown",function(i){D(t);let r=g();return T(r.startResize(i,"left"))}),y(),v(6,"main",21)(7,"section",22),$(8,"lf-canvas-container"),y()(),v(9,"button",23),O("pointerdown",function(i){D(t);let r=g();return T(r.startResize(i,"right"))}),y(),v(10,"aside",24,1),E(12,aR,2,0,"section",25)(13,dR,2,0,"section",25)(14,lR,2,0,"section",26),v(15,"button",27),O("pointerdown",function(i){D(t);let r=g();return T(r.startResize(i,"composer"))}),y(),$(16,"lf-composer-shell",28),y()()}if(n&2){let t=e,o=g();p(2),Ue("width",o.leftWidth()??t.dividerPositions.leftWidth,"px"),p(8),Ue("width",o.rightWidth()??t.dividerPositions.rightWidth,"px"),p(2),P(o.settingsOpen()?12:o.hasSelectedNode()?13:14),p(4),L("height",o.composerHeight()??t.dividerPositions.composerHeight)}}var wd=class n{constructor(){this.bridge=f(le);this.themeService=f(Wo);this.destroyRef=f(Ve);this.activeResize=H(null);this.editorRow=st("editorRow");this.rightAside=st("rightAside");this.layoutObserver=null;this.persistTimer=null;this.sessionSnapshot$=this.bridge.cached["session.state.snapshot"].pipe(Rt(()=>{this.activeResize()===null&&(this.leftWidth.set(null),this.rightWidth.set(null),this.composerHeight.set(null))}));this.connectionStatus=ae(this.bridge.raw.status$,{initialValue:"connecting"});this.theme=ae(this.themeService.theme$,{initialValue:this.themeService.snapshot});this.themeButtonLabel=b(()=>this.theme()==="dark"?"Light":"Dark");this.leftWidth=H(null);this.rightWidth=H(null);this.composerHeight=H(null);this.selection=f($n);this.hasSelectedNode=this.selection.hasSelectedNode;this.settingsOpen=H(!1);this.selectionIdWhenSettingsOpened=H(null);f(Bn),f(Vo),this.bridge.cached["editor.dividers.snapshot"].pipe(Zt(this.destroyRef)).subscribe(e=>{this.applyDividerPositions(e)}),me(()=>{let e=this.selection.selectedNode()?.id??null;if(!this.settingsOpen())return;let t=this.selectionIdWhenSettingsOpened();e!==null&&e!==t&&this.settingsOpen.set(!1)}),me(()=>{let e=this.editorRow(),t=this.rightAside();e===void 0||t===void 0||xe(()=>{this.attachLayoutObserver(),this.reclampToViewport(!0)})}),this.destroyRef.onDestroy(()=>{this.layoutObserver?.disconnect(),this.layoutObserver=null,this.persistTimer!==null&&(clearTimeout(this.persistTimer),this.persistTimer=null)})}toggleSettings(){if(this.settingsOpen()){this.closeSettings();return}this.selectionIdWhenSettingsOpened.set(this.selection.selectedNode()?.id??null),this.settingsOpen.set(!0)}closeSettings(){this.settingsOpen.set(!1)}toggleTheme(){this.themeService.toggleTheme()}startResize(e,t){e.preventDefault();let o=this.currentSize(t);o!==null&&this.activeResize.set({target:t,startX:e.clientX,startY:e.clientY,startSize:o})}handlePointerMove(e){let t=this.activeResize();if(t===null)return;let o=this.readLayout(),i=this.currentDividerPositions();if(!(o===null||i===null)){if(t.target==="left"){this.leftWidth.set(bd("left",t.startSize+e.clientX-t.startX,i,o));return}if(t.target==="right"){this.rightWidth.set(bd("right",t.startSize-e.clientX+t.startX,i,o));return}this.composerHeight.set(bd("composer",t.startSize-e.clientY+t.startY,i,o))}}handlePointerUp(){let e=this.activeResize();this.activeResize.set(null),e!==null&&this.persistDividers()}currentSize(e){if(e==="left"){let r=this.leftWidth();return r!==null?r:this.editorRow()?.nativeElement?.children[0]?.clientWidth??null}if(e==="right"){let r=this.rightWidth();return r!==null?r:this.rightAside()?.nativeElement.clientWidth??null}let t=this.composerHeight();return t!==null?t:this.rightAside()?.nativeElement?.lastElementChild?.clientHeight??null}currentDividerPositions(){let e=this.currentSize("left"),t=this.currentSize("right"),o=this.currentSize("composer");return e===null||t===null||o===null?null:{leftWidth:e,rightWidth:t,composerHeight:o}}readLayout(){let e=this.editorRow()?.nativeElement,t=this.rightAside()?.nativeElement;return e===void 0||t===void 0?null:{rowWidth:e.clientWidth,rightAsideHeight:t.clientHeight}}applyDividerPositions(e){if(this.activeResize()!==null)return;let t=this.readLayout();if(t===null){this.leftWidth.set(e.leftWidth),this.rightWidth.set(e.rightWidth),this.composerHeight.set(e.composerHeight);return}let o=Eh(e,t);this.leftWidth.set(o.leftWidth),this.rightWidth.set(o.rightWidth),this.composerHeight.set(o.composerHeight)}reclampToViewport(e){if(this.activeResize()!==null)return;let t=this.readLayout(),o=this.currentDividerPositions();if(t===null||o===null)return;let i=Eh(o,t);bv(o,i)||(this.leftWidth.set(i.leftWidth),this.rightWidth.set(i.rightWidth),this.composerHeight.set(i.composerHeight),e&&this.schedulePersistDividers())}attachLayoutObserver(){let e=this.editorRow()?.nativeElement,t=this.rightAside()?.nativeElement;e===void 0||t===void 0||(this.layoutObserver?.disconnect(),this.layoutObserver=new ResizeObserver(()=>{this.reclampToViewport(!0)}),this.layoutObserver.observe(e),this.layoutObserver.observe(t))}schedulePersistDividers(){this.persistTimer!==null&&clearTimeout(this.persistTimer),this.persistTimer=setTimeout(()=>{this.persistTimer=null,this.persistDividers()},100)}persistDividers(){let e=this.currentDividerPositions();e!==null&&this.bridge.raw["editor.dividers.requested"].next(e)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-editor-shell"]],viewQuery:function(t,o){t&1&&ht(o.editorRow,rR,5)(o.rightAside,sR,5),t&2&&gt(2)},hostBindings:function(t,o){t&1&&O("pointermove",function(r){return o.handlePointerMove(r)},Nt)("pointerup",function(){return o.handlePointerUp()},Nt)},decls:21,vars:17,consts:[["editorRow",""],["rightAside",""],[1,"flex","h-screen","flex-col","overflow-hidden","bg-zinc-50","text-zinc-950","dark:bg-zinc-950","dark:text-zinc-100"],[1,"flex","h-12","shrink-0","items-center","justify-between","border-b","border-zinc-200","bg-white","px-4","dark:border-zinc-800","dark:bg-zinc-900"],[1,"flex","min-w-0","flex-1","items-center","gap-4"],[1,"text-base","font-semibold","tracking-tight"],[1,"shrink-0"],[1,"min-w-0","flex-1"],[1,"flex","items-center","gap-3","text-xs"],[1,"flex","items-center","gap-2","rounded-full","border","border-zinc-200","px-3","py-1","text-zinc-600","dark:border-zinc-700","dark:text-zinc-300"],[1,"h-2","w-2","rounded-full"],["side","bottom",3,"tip"],["type","button",1,"rounded-md","border","border-zinc-200","px-3","py-1","font-medium","text-zinc-700","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-200","dark:hover:bg-zinc-800",3,"click"],["side","bottom","tip","Settings"],["type","button","aria-label","Settings",1,"rounded-md","border","border-zinc-200","p-1.5","text-zinc-600","transition","hover:bg-zinc-100","dark:border-zinc-700","dark:text-zinc-300","dark:hover:bg-zinc-800",3,"click"],["viewBox","0 0 20 20","fill","currentColor","aria-hidden","true",1,"h-4","w-4"],["fill-rule","evenodd","d","M7.84 1.804A1 1 0 0 1 8.82 1h2.36a1 1 0 0 1 .98.804l.331 1.652a6.993 6.993 0 0 1 1.929 1.115l1.598-.54a1 1 0 0 1 1.186.447l1.18 2.044a1 1 0 0 1-.34 1.353l-1.267.903a7.068 7.068 0 0 1 0 2.218l1.267.903a1 1 0 0 1 .34 1.353l-1.18 2.044a1 1 0 0 1-1.186.447l-1.598-.54a6.993 6.993 0 0 1-1.929 1.115l-.33 1.652a1 1 0 0 1-.98.804H8.82a1 1 0 0 1-.98-.804l-.331-1.652a6.993 6.993 0 0 1-1.929-1.115l-1.598.54a1 1 0 0 1-1.186-.447l-1.18-2.044a1 1 0 0 1 .34-1.353l1.267-.903a7.068 7.068 0 0 1 0-2.218l-1.267-.903a1 1 0 0 1-.34-1.353l1.18-2.044a1 1 0 0 1 1.186-.447l1.598.54a6.993 6.993 0 0 1 1.929-1.115l.33-1.652ZM10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z","clip-rule","evenodd"],[1,"flex","min-h-0","flex-1"],[1,"flex","min-h-0","min-w-[120px]","shrink-0","flex-col","overflow-hidden","border-r","border-zinc-200","bg-white","dark:border-zinc-800","dark:bg-zinc-900"],[1,"flex","h-full","min-h-0","flex-col","p-4"],["type","button","aria-label","Resize left sidebar",1,"w-1","cursor-col-resize","bg-zinc-200","transition","hover:bg-zinc-400","dark:bg-zinc-800","dark:hover:bg-zinc-500",3,"pointerdown"],[1,"relative","min-w-0","flex-1","overflow-hidden","bg-zinc-100","dark:bg-zinc-950"],[1,"relative","h-full","min-h-0"],["type","button","aria-label","Resize right sidebar",1,"w-1","cursor-col-resize","bg-zinc-200","transition","hover:bg-zinc-400","dark:bg-zinc-800","dark:hover:bg-zinc-500",3,"pointerdown"],[1,"flex","min-w-[120px]","shrink-0","flex-col","border-l","border-zinc-200","bg-white","dark:border-zinc-800","dark:bg-zinc-900"],[1,"lf-scroll","min-h-0","flex-1","overflow-y-auto","p-4"],[1,"min-h-0","flex-1","overflow-hidden","px-2","py-4"],["type","button","aria-label","Resize awaiting-input panel",1,"h-1","cursor-row-resize","bg-zinc-200","transition","hover:bg-zinc-400","dark:bg-zinc-800","dark:hover:bg-zinc-500",3,"pointerdown"],[3,"height"],[3,"closeRequested"]],template:function(t,o){if(t&1&&(v(0,"div",2)(1,"header",3)(2,"div",4)(3,"h1",5),C(4," Langflower "),y(),$(5,"lf-project-dir",6)(6,"lf-workflow-topbar",7),y(),v(7,"div",8)(8,"div",9),$(9,"span",10),v(10,"span"),C(11),y()(),v(12,"lf-hover-tip",11)(13,"button",12),O("click",function(){return o.toggleTheme()}),C(14),y()(),v(15,"lf-hover-tip",13)(16,"button",14),O("click",function(){return o.toggleSettings()}),fe(),v(17,"svg",15),$(18,"path",16),y()()()()(),E(19,cR,17,6,"div",17),Nn(20,"async"),y()),t&2){let i;p(9),Y("bg-amber-400",o.connectionStatus()==="connecting")("bg-emerald-400",o.connectionStatus()==="connected")("bg-rose-400",o.connectionStatus()==="disconnected"),p(2),se(o.connectionStatus()),p(),L("tip",o.theme()==="dark"?"Switch to light theme":"Switch to dark theme"),p(2),U(" ",o.themeButtonLabel()," "),p(2),Y("bg-zinc-100",o.settingsOpen())("dark:bg-zinc-800",o.settingsOpen()),J("aria-pressed",o.settingsOpen()),p(3),P((i=On(20,15,o.sessionSnapshot$))?19:-1,i)}},dependencies:[ld,ud,Ja,Ya,od,rd,dd,vd,tt,vn],encapsulation:2})}};var wv=[{path:"",component:wd}];var Cv={providers:[Mg({eventCoalescing:!0}),Wl(wv),Yg()]};var Cd=class n{constructor(){f(Wo)}static{this.\u0275fac=function(t){return new(t||n)}}static{this.\u0275cmp=F({type:n,selectors:[["lf-root"]],decls:1,vars:0,template:function(t,o){t&1&&$(0,"router-outlet")},dependencies:[Yi],encapsulation:2})}};yl(Cd,Cv).catch(n=>{console.error(n)});