@diegonogueiradev_/mcp-graph 1.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +240 -0
  3. package/dist/api/middleware/error-handler.d.ts +3 -0
  4. package/dist/api/middleware/error-handler.d.ts.map +1 -0
  5. package/dist/api/middleware/error-handler.js +35 -0
  6. package/dist/api/middleware/error-handler.js.map +1 -0
  7. package/dist/api/middleware/validate.d.ts +5 -0
  8. package/dist/api/middleware/validate.d.ts.map +1 -0
  9. package/dist/api/middleware/validate.js +23 -0
  10. package/dist/api/middleware/validate.js.map +1 -0
  11. package/dist/api/router.d.ts +11 -0
  12. package/dist/api/router.d.ts.map +1 -0
  13. package/dist/api/router.js +41 -0
  14. package/dist/api/router.js.map +1 -0
  15. package/dist/api/routes/capture.d.ts +3 -0
  16. package/dist/api/routes/capture.d.ts.map +1 -0
  17. package/dist/api/routes/capture.js +31 -0
  18. package/dist/api/routes/capture.js.map +1 -0
  19. package/dist/api/routes/context.d.ts +4 -0
  20. package/dist/api/routes/context.d.ts.map +1 -0
  21. package/dist/api/routes/context.js +25 -0
  22. package/dist/api/routes/context.js.map +1 -0
  23. package/dist/api/routes/docs-cache.d.ts +4 -0
  24. package/dist/api/routes/docs-cache.d.ts.map +1 -0
  25. package/dist/api/routes/docs-cache.js +79 -0
  26. package/dist/api/routes/docs-cache.js.map +1 -0
  27. package/dist/api/routes/edges.d.ts +4 -0
  28. package/dist/api/routes/edges.d.ts.map +1 -0
  29. package/dist/api/routes/edges.js +50 -0
  30. package/dist/api/routes/edges.js.map +1 -0
  31. package/dist/api/routes/events.d.ts +4 -0
  32. package/dist/api/routes/events.d.ts.map +1 -0
  33. package/dist/api/routes/events.js +37 -0
  34. package/dist/api/routes/events.js.map +1 -0
  35. package/dist/api/routes/graph.d.ts +4 -0
  36. package/dist/api/routes/graph.d.ts.map +1 -0
  37. package/dist/api/routes/graph.js +39 -0
  38. package/dist/api/routes/graph.js.map +1 -0
  39. package/dist/api/routes/import.d.ts +4 -0
  40. package/dist/api/routes/import.d.ts.map +1 -0
  41. package/dist/api/routes/import.js +92 -0
  42. package/dist/api/routes/import.js.map +1 -0
  43. package/dist/api/routes/insights.d.ts +4 -0
  44. package/dist/api/routes/insights.d.ts.map +1 -0
  45. package/dist/api/routes/insights.js +40 -0
  46. package/dist/api/routes/insights.js.map +1 -0
  47. package/dist/api/routes/integrations.d.ts +4 -0
  48. package/dist/api/routes/integrations.d.ts.map +1 -0
  49. package/dist/api/routes/integrations.js +56 -0
  50. package/dist/api/routes/integrations.js.map +1 -0
  51. package/dist/api/routes/nodes.d.ts +4 -0
  52. package/dist/api/routes/nodes.d.ts.map +1 -0
  53. package/dist/api/routes/nodes.js +123 -0
  54. package/dist/api/routes/nodes.js.map +1 -0
  55. package/dist/api/routes/project.d.ts +4 -0
  56. package/dist/api/routes/project.d.ts.map +1 -0
  57. package/dist/api/routes/project.js +33 -0
  58. package/dist/api/routes/project.js.map +1 -0
  59. package/dist/api/routes/search.d.ts +4 -0
  60. package/dist/api/routes/search.d.ts.map +1 -0
  61. package/dist/api/routes/search.js +25 -0
  62. package/dist/api/routes/search.js.map +1 -0
  63. package/dist/api/routes/skills.d.ts +3 -0
  64. package/dist/api/routes/skills.d.ts.map +1 -0
  65. package/dist/api/routes/skills.js +16 -0
  66. package/dist/api/routes/skills.js.map +1 -0
  67. package/dist/api/routes/stats.d.ts +4 -0
  68. package/dist/api/routes/stats.d.ts.map +1 -0
  69. package/dist/api/routes/stats.js +14 -0
  70. package/dist/api/routes/stats.js.map +1 -0
  71. package/dist/cli/commands/import-cmd.d.ts +3 -0
  72. package/dist/cli/commands/import-cmd.d.ts.map +1 -0
  73. package/dist/cli/commands/import-cmd.js +38 -0
  74. package/dist/cli/commands/import-cmd.js.map +1 -0
  75. package/dist/cli/commands/init.d.ts +3 -0
  76. package/dist/cli/commands/init.d.ts.map +1 -0
  77. package/dist/cli/commands/init.js +55 -0
  78. package/dist/cli/commands/init.js.map +1 -0
  79. package/dist/cli/commands/serve.d.ts +3 -0
  80. package/dist/cli/commands/serve.d.ts.map +1 -0
  81. package/dist/cli/commands/serve.js +18 -0
  82. package/dist/cli/commands/serve.js.map +1 -0
  83. package/dist/cli/commands/stats.d.ts +3 -0
  84. package/dist/cli/commands/stats.d.ts.map +1 -0
  85. package/dist/cli/commands/stats.js +39 -0
  86. package/dist/cli/commands/stats.js.map +1 -0
  87. package/dist/cli/index.d.ts +3 -0
  88. package/dist/cli/index.d.ts.map +1 -0
  89. package/dist/cli/index.js +17 -0
  90. package/dist/cli/index.js.map +1 -0
  91. package/dist/core/capture/content-extractor.d.ts +21 -0
  92. package/dist/core/capture/content-extractor.d.ts.map +1 -0
  93. package/dist/core/capture/content-extractor.js +74 -0
  94. package/dist/core/capture/content-extractor.js.map +1 -0
  95. package/dist/core/capture/web-capture.d.ts +20 -0
  96. package/dist/core/capture/web-capture.d.ts.map +1 -0
  97. package/dist/core/capture/web-capture.js +51 -0
  98. package/dist/core/capture/web-capture.js.map +1 -0
  99. package/dist/core/config/config-loader.d.ts +3 -0
  100. package/dist/core/config/config-loader.d.ts.map +1 -0
  101. package/dist/core/config/config-loader.js +43 -0
  102. package/dist/core/config/config-loader.js.map +1 -0
  103. package/dist/core/config/config-schema.d.ts +11 -0
  104. package/dist/core/config/config-schema.d.ts.map +1 -0
  105. package/dist/core/config/config-schema.js +12 -0
  106. package/dist/core/config/config-schema.js.map +1 -0
  107. package/dist/core/docs/docs-cache-store.d.ts +24 -0
  108. package/dist/core/docs/docs-cache-store.d.ts.map +1 -0
  109. package/dist/core/docs/docs-cache-store.js +61 -0
  110. package/dist/core/docs/docs-cache-store.js.map +1 -0
  111. package/dist/core/docs/docs-syncer.d.ts +13 -0
  112. package/dist/core/docs/docs-syncer.d.ts.map +1 -0
  113. package/dist/core/docs/docs-syncer.js +38 -0
  114. package/dist/core/docs/docs-syncer.js.map +1 -0
  115. package/dist/core/events/event-bus.d.ts +26 -0
  116. package/dist/core/events/event-bus.d.ts.map +1 -0
  117. package/dist/core/events/event-bus.js +47 -0
  118. package/dist/core/events/event-bus.js.map +1 -0
  119. package/dist/core/events/event-types.d.ts +57 -0
  120. package/dist/core/events/event-types.d.ts.map +1 -0
  121. package/dist/core/events/event-types.js +2 -0
  122. package/dist/core/events/event-types.js.map +1 -0
  123. package/dist/core/graph/mermaid-export.d.ts +9 -0
  124. package/dist/core/graph/mermaid-export.d.ts.map +1 -0
  125. package/dist/core/graph/mermaid-export.js +80 -0
  126. package/dist/core/graph/mermaid-export.js.map +1 -0
  127. package/dist/core/importer/prd-to-graph.d.ts.map +1 -1
  128. package/dist/core/importer/prd-to-graph.js +7 -0
  129. package/dist/core/importer/prd-to-graph.js.map +1 -1
  130. package/dist/core/insights/bottleneck-detector.d.ts +31 -0
  131. package/dist/core/insights/bottleneck-detector.d.ts.map +1 -0
  132. package/dist/core/insights/bottleneck-detector.js +69 -0
  133. package/dist/core/insights/bottleneck-detector.js.map +1 -0
  134. package/dist/core/insights/metrics-calculator.d.ts +31 -0
  135. package/dist/core/insights/metrics-calculator.d.ts.map +1 -0
  136. package/dist/core/insights/metrics-calculator.js +78 -0
  137. package/dist/core/insights/metrics-calculator.js.map +1 -0
  138. package/dist/core/insights/skill-recommender.d.ts +21 -0
  139. package/dist/core/insights/skill-recommender.d.ts.map +1 -0
  140. package/dist/core/insights/skill-recommender.js +129 -0
  141. package/dist/core/insights/skill-recommender.js.map +1 -0
  142. package/dist/core/integrations/serena-reader.d.ts +18 -0
  143. package/dist/core/integrations/serena-reader.d.ts.map +1 -0
  144. package/dist/core/integrations/serena-reader.js +50 -0
  145. package/dist/core/integrations/serena-reader.js.map +1 -0
  146. package/dist/core/integrations/tool-status.d.ts +18 -0
  147. package/dist/core/integrations/tool-status.d.ts.map +1 -0
  148. package/dist/core/integrations/tool-status.js +92 -0
  149. package/dist/core/integrations/tool-status.js.map +1 -0
  150. package/dist/core/parser/file-reader.d.ts +13 -0
  151. package/dist/core/parser/file-reader.d.ts.map +1 -0
  152. package/dist/core/parser/file-reader.js +52 -0
  153. package/dist/core/parser/file-reader.js.map +1 -0
  154. package/dist/core/parser/read-html.d.ts +7 -0
  155. package/dist/core/parser/read-html.d.ts.map +1 -0
  156. package/dist/core/parser/read-html.js +51 -0
  157. package/dist/core/parser/read-html.js.map +1 -0
  158. package/dist/core/parser/read-pdf.d.ts +10 -0
  159. package/dist/core/parser/read-pdf.d.ts.map +1 -0
  160. package/dist/core/parser/read-pdf.js +16 -0
  161. package/dist/core/parser/read-pdf.js.map +1 -0
  162. package/dist/core/planner/next-task.d.ts.map +1 -1
  163. package/dist/core/planner/next-task.js +4 -1
  164. package/dist/core/planner/next-task.js.map +1 -1
  165. package/dist/core/search/fts-search.d.ts.map +1 -1
  166. package/dist/core/search/fts-search.js +6 -1
  167. package/dist/core/search/fts-search.js.map +1 -1
  168. package/dist/core/store/migrations.d.ts.map +1 -1
  169. package/dist/core/store/migrations.js +38 -0
  170. package/dist/core/store/migrations.js.map +1 -1
  171. package/dist/core/store/sqlite-store.d.ts +7 -0
  172. package/dist/core/store/sqlite-store.d.ts.map +1 -1
  173. package/dist/core/store/sqlite-store.js +28 -3
  174. package/dist/core/store/sqlite-store.js.map +1 -1
  175. package/dist/core/utils/logger.d.ts +1 -0
  176. package/dist/core/utils/logger.d.ts.map +1 -1
  177. package/dist/core/utils/logger.js +5 -0
  178. package/dist/core/utils/logger.js.map +1 -1
  179. package/dist/mcp/init-project.d.ts.map +1 -1
  180. package/dist/mcp/init-project.js +12 -16
  181. package/dist/mcp/init-project.js.map +1 -1
  182. package/dist/mcp/server.d.ts +1 -0
  183. package/dist/mcp/server.js +17 -2
  184. package/dist/mcp/server.js.map +1 -1
  185. package/dist/mcp/stdio.js +0 -0
  186. package/dist/mcp/tools/export-mermaid.d.ts +4 -0
  187. package/dist/mcp/tools/export-mermaid.d.ts.map +1 -0
  188. package/dist/mcp/tools/export-mermaid.js +27 -0
  189. package/dist/mcp/tools/export-mermaid.js.map +1 -0
  190. package/dist/mcp/tools/index.d.ts.map +1 -1
  191. package/dist/mcp/tools/index.js +2 -0
  192. package/dist/mcp/tools/index.js.map +1 -1
  193. package/dist/web/dashboard/dist/assets/code-graph-tab-jvBo8Q9t.js +1 -0
  194. package/dist/web/dashboard/dist/assets/constants-CLJl-f3f.js +1 -0
  195. package/dist/web/dashboard/dist/assets/graph-tab-BoKfDlvO.js +1 -0
  196. package/dist/web/dashboard/dist/assets/graph-utils-BZV40eAE.css +1 -0
  197. package/dist/web/dashboard/dist/assets/graph-utils-uGOH4eMw.js +23 -0
  198. package/dist/web/dashboard/dist/assets/index-DM_LGeRr.css +1 -0
  199. package/dist/web/dashboard/dist/assets/index-DrHbgcp5.js +53 -0
  200. package/dist/web/dashboard/dist/assets/insights-tab-D7sHV2xV.js +1 -0
  201. package/dist/web/dashboard/dist/assets/prd-backlog-tab-C_Uq1Qte.js +1 -0
  202. package/dist/web/dashboard/dist/index.html +13 -0
  203. package/dist/web/public/css/styles.css +646 -0
  204. package/dist/web/public/index.html +209 -0
  205. package/dist/web/public/js/api-client.js +85 -0
  206. package/dist/web/public/js/app.js +112 -0
  207. package/dist/web/public/js/capture-form.js +196 -0
  208. package/dist/web/public/js/filters.js +94 -0
  209. package/dist/web/public/js/force-graph-renderer.js +498 -0
  210. package/dist/web/public/js/graph-renderer.js +62 -0
  211. package/dist/web/public/js/import-form.js +105 -0
  212. package/dist/web/public/js/node-detail.js +106 -0
  213. package/dist/web/public/js/tabs/code-graph-tab.js +66 -0
  214. package/dist/web/public/js/tabs/graph-tab.js +238 -0
  215. package/dist/web/public/js/tabs/insights-tab.js +236 -0
  216. package/dist/web/public/js/tabs/knowledge-tab.js +201 -0
  217. package/dist/web/public/js/tabs/prd-backlog-tab.js +167 -0
  218. package/dist/web/public/vendor/force-graph.min.js +5 -0
  219. package/dist/web/public/vendor/mermaid.min.js +2843 -0
  220. package/package.json +22 -3
@@ -0,0 +1,23 @@
1
+ var hu=Object.defineProperty;var pu=(e,t,n)=>t in e?hu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var oe=(e,t,n)=>pu(e,typeof t!="symbol"?t+"":t,n);import{a as ms,g as ys,R as gu,b as mu,r as V,j as A}from"./index-DrHbgcp5.js";import{N as zr,S as xs,E as qt}from"./constants-CLJl-f3f.js";function ae(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=ae(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var yu={value:()=>{}};function rn(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new zt(n)}function zt(e){this._=e}function xu(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}zt.prototype=rn.prototype={constructor:zt,on:function(e,t){var n=this._,r=xu(e+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(e=r[s]).type)&&(i=wu(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<o;)if(i=(e=r[s]).type)n[i]=pi(n[i],e.name,t);else if(t==null)for(i in n)n[i]=pi(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new zt(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(s=this._[e],r=0,i=s.length;r<i;++r)s[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,s=r.length;i<s;++i)r[i].value.apply(t,n)}};function wu(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function pi(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=yu,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Nr="http://www.w3.org/1999/xhtml";const gi={svg:"http://www.w3.org/2000/svg",xhtml:Nr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function on(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),gi.hasOwnProperty(t)?{space:gi[t],local:e}:e}function vu(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Nr&&t.documentElement.namespaceURI===Nr?t.createElement(e):t.createElementNS(n,e)}}function bu(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ws(e){var t=on(e);return(t.local?bu:vu)(t)}function _u(){}function Vr(e){return e==null?_u:function(){return this.querySelector(e)}}function Eu(e){typeof e!="function"&&(e=Vr(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var s=t[i],o=s.length,a=r[i]=new Array(o),u,d,l=0;l<o;++l)(u=s[l])&&(d=e.call(u,u.__data__,l,s))&&("__data__"in u&&(d.__data__=u.__data__),a[l]=d);return new de(r,this._parents)}function Nu(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Su(){return[]}function vs(e){return e==null?Su:function(){return this.querySelectorAll(e)}}function ku(e){return function(){return Nu(e.apply(this,arguments))}}function Cu(e){typeof e=="function"?e=ku(e):e=vs(e);for(var t=this._groups,n=t.length,r=[],i=[],s=0;s<n;++s)for(var o=t[s],a=o.length,u,d=0;d<a;++d)(u=o[d])&&(r.push(e.call(u,u.__data__,d,o)),i.push(u));return new de(r,i)}function bs(e){return function(){return this.matches(e)}}function _s(e){return function(t){return t.matches(e)}}var Mu=Array.prototype.find;function Iu(e){return function(){return Mu.call(this.children,e)}}function Au(){return this.firstElementChild}function Tu(e){return this.select(e==null?Au:Iu(typeof e=="function"?e:_s(e)))}var Pu=Array.prototype.filter;function Lu(){return Array.from(this.children)}function Ru(e){return function(){return Pu.call(this.children,e)}}function $u(e){return this.selectAll(e==null?Lu:Ru(typeof e=="function"?e:_s(e)))}function Ou(e){typeof e!="function"&&(e=bs(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var s=t[i],o=s.length,a=r[i]=[],u,d=0;d<o;++d)(u=s[d])&&e.call(u,u.__data__,d,s)&&a.push(u);return new de(r,this._parents)}function Es(e){return new Array(e.length)}function ju(){return new de(this._enter||this._groups.map(Es),this._parents)}function Yt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Yt.prototype={constructor:Yt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Du(e){return function(){return e}}function zu(e,t,n,r,i,s){for(var o=0,a,u=t.length,d=s.length;o<d;++o)(a=t[o])?(a.__data__=s[o],r[o]=a):n[o]=new Yt(e,s[o]);for(;o<u;++o)(a=t[o])&&(i[o]=a)}function Vu(e,t,n,r,i,s,o){var a,u,d=new Map,l=t.length,c=s.length,f=new Array(l),h;for(a=0;a<l;++a)(u=t[a])&&(f[a]=h=o.call(u,u.__data__,a,t)+"",d.has(h)?i[a]=u:d.set(h,u));for(a=0;a<c;++a)h=o.call(e,s[a],a,s)+"",(u=d.get(h))?(r[a]=u,u.__data__=s[a],d.delete(h)):n[a]=new Yt(e,s[a]);for(a=0;a<l;++a)(u=t[a])&&d.get(f[a])===u&&(i[a]=u)}function Hu(e){return e.__data__}function Fu(e,t){if(!arguments.length)return Array.from(this,Hu);var n=t?Vu:zu,r=this._parents,i=this._groups;typeof e!="function"&&(e=Du(e));for(var s=i.length,o=new Array(s),a=new Array(s),u=new Array(s),d=0;d<s;++d){var l=r[d],c=i[d],f=c.length,h=Bu(e.call(l,l&&l.__data__,d,r)),p=h.length,x=a[d]=new Array(p),m=o[d]=new Array(p),y=u[d]=new Array(f);n(l,c,x,m,y,h,t);for(var v=0,g=0,w,k;v<p;++v)if(w=x[v]){for(v>=g&&(g=v+1);!(k=m[g])&&++g<p;);w._next=k||null}}return o=new de(o,r),o._enter=a,o._exit=u,o}function Bu(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function qu(){return new de(this._exit||this._groups.map(Es),this._parents)}function Yu(e,t,n){var r=this.enter(),i=this,s=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(i=t(i),i&&(i=i.selection())),n==null?s.remove():n(s),r&&i?r.merge(i).order():i}function Gu(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,s=r.length,o=Math.min(i,s),a=new Array(i),u=0;u<o;++u)for(var d=n[u],l=r[u],c=d.length,f=a[u]=new Array(c),h,p=0;p<c;++p)(h=d[p]||l[p])&&(f[p]=h);for(;u<i;++u)a[u]=n[u];return new de(a,this._parents)}function Wu(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,s=r[i],o;--i>=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function Xu(e){e||(e=Uu);function t(c,f){return c&&f?e(c.__data__,f.__data__):!c-!f}for(var n=this._groups,r=n.length,i=new Array(r),s=0;s<r;++s){for(var o=n[s],a=o.length,u=i[s]=new Array(a),d,l=0;l<a;++l)(d=o[l])&&(u[l]=d);u.sort(t)}return new de(i,this._parents).order()}function Uu(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ku(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Zu(){return Array.from(this)}function Qu(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,s=r.length;i<s;++i){var o=r[i];if(o)return o}return null}function Ju(){let e=0;for(const t of this)++e;return e}function el(){return!this.node()}function tl(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],s=0,o=i.length,a;s<o;++s)(a=i[s])&&e.call(a,a.__data__,s,i);return this}function nl(e){return function(){this.removeAttribute(e)}}function rl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function il(e,t){return function(){this.setAttribute(e,t)}}function ol(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function sl(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function al(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function cl(e,t){var n=on(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?rl:nl:typeof t=="function"?n.local?al:sl:n.local?ol:il)(n,t))}function Ns(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function ul(e){return function(){this.style.removeProperty(e)}}function ll(e,t,n){return function(){this.style.setProperty(e,t,n)}}function dl(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function fl(e,t,n){return arguments.length>1?this.each((t==null?ul:typeof t=="function"?dl:ll)(e,t,n??"")):Xe(this.node(),e)}function Xe(e,t){return e.style.getPropertyValue(t)||Ns(e).getComputedStyle(e,null).getPropertyValue(t)}function hl(e){return function(){delete this[e]}}function pl(e,t){return function(){this[e]=t}}function gl(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function ml(e,t){return arguments.length>1?this.each((t==null?hl:typeof t=="function"?gl:pl)(e,t)):this.node()[e]}function Ss(e){return e.trim().split(/^|\s+/)}function Hr(e){return e.classList||new ks(e)}function ks(e){this._node=e,this._names=Ss(e.getAttribute("class")||"")}ks.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Cs(e,t){for(var n=Hr(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function Ms(e,t){for(var n=Hr(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function yl(e){return function(){Cs(this,e)}}function xl(e){return function(){Ms(this,e)}}function wl(e,t){return function(){(t.apply(this,arguments)?Cs:Ms)(this,e)}}function vl(e,t){var n=Ss(e+"");if(arguments.length<2){for(var r=Hr(this.node()),i=-1,s=n.length;++i<s;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t=="function"?wl:t?yl:xl)(n,t))}function bl(){this.textContent=""}function _l(e){return function(){this.textContent=e}}function El(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Nl(e){return arguments.length?this.each(e==null?bl:(typeof e=="function"?El:_l)(e)):this.node().textContent}function Sl(){this.innerHTML=""}function kl(e){return function(){this.innerHTML=e}}function Cl(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Ml(e){return arguments.length?this.each(e==null?Sl:(typeof e=="function"?Cl:kl)(e)):this.node().innerHTML}function Il(){this.nextSibling&&this.parentNode.appendChild(this)}function Al(){return this.each(Il)}function Tl(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Pl(){return this.each(Tl)}function Ll(e){var t=typeof e=="function"?e:ws(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Rl(){return null}function $l(e,t){var n=typeof e=="function"?e:ws(e),r=t==null?Rl:typeof t=="function"?t:Vr(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Ol(){var e=this.parentNode;e&&e.removeChild(this)}function jl(){return this.each(Ol)}function Dl(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function zl(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Vl(e){return this.select(e?zl:Dl)}function Hl(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Fl(e){return function(t){e.call(this,t,this.__data__)}}function Bl(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function ql(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,s;n<i;++n)s=t[n],(!e.type||s.type===e.type)&&s.name===e.name?this.removeEventListener(s.type,s.listener,s.options):t[++r]=s;++r?t.length=r:delete this.__on}}}function Yl(e,t,n){return function(){var r=this.__on,i,s=Fl(t);if(r){for(var o=0,a=r.length;o<a;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=s,i.options=n),i.value=t;return}}this.addEventListener(e.type,s,n),i={type:e.type,name:e.name,value:t,listener:s,options:n},r?r.push(i):this.__on=[i]}}function Gl(e,t,n){var r=Bl(e+""),i,s=r.length,o;if(arguments.length<2){var a=this.node().__on;if(a){for(var u=0,d=a.length,l;u<d;++u)for(i=0,l=a[u];i<s;++i)if((o=r[i]).type===l.type&&o.name===l.name)return l.value}return}for(a=t?Yl:ql,i=0;i<s;++i)this.each(a(r[i],t,n));return this}function Is(e,t,n){var r=Ns(e),i=r.CustomEvent;typeof i=="function"?i=new i(t,n):(i=r.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Wl(e,t){return function(){return Is(this,e,t)}}function Xl(e,t){return function(){return Is(this,e,t.apply(this,arguments))}}function Ul(e,t){return this.each((typeof t=="function"?Xl:Wl)(e,t))}function*Kl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,s=r.length,o;i<s;++i)(o=r[i])&&(yield o)}var As=[null];function de(e,t){this._groups=e,this._parents=t}function bt(){return new de([[document.documentElement]],As)}function Zl(){return this}de.prototype=bt.prototype={constructor:de,select:Eu,selectAll:Cu,selectChild:Tu,selectChildren:$u,filter:Ou,data:Fu,enter:ju,exit:qu,join:Yu,merge:Gu,selection:Zl,order:Wu,sort:Xu,call:Ku,nodes:Zu,node:Qu,size:Ju,empty:el,each:tl,attr:cl,style:fl,property:ml,classed:vl,text:Nl,html:Ml,raise:Al,lower:Pl,append:Ll,insert:$l,remove:jl,clone:Vl,datum:Hl,on:Gl,dispatch:Ul,[Symbol.iterator]:Kl};function le(e){return typeof e=="string"?new de([[document.querySelector(e)]],[document.documentElement]):new de([[e]],As)}function Ql(e){let t;for(;t=e.sourceEvent;)e=t;return e}function fe(e,t){if(e=Ql(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}const Jl={passive:!1},ft={capture:!0,passive:!1};function xn(e){e.stopImmediatePropagation()}function Ge(e){e.preventDefault(),e.stopImmediatePropagation()}function Ts(e){var t=e.document.documentElement,n=le(e).on("dragstart.drag",Ge,ft);"onselectstart"in t?n.on("selectstart.drag",Ge,ft):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Ps(e,t){var n=e.document.documentElement,r=le(e).on("dragstart.drag",null);t&&(r.on("click.drag",Ge,ft),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const At=e=>()=>e;function Sr(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:u,dy:d,dispatch:l}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:d,enumerable:!0,configurable:!0},_:{value:l}})}Sr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function ed(e){return!e.ctrlKey&&!e.button}function td(){return this.parentNode}function nd(e,t){return t??{x:e.x,y:e.y}}function rd(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ls(){var e=ed,t=td,n=nd,r=rd,i={},s=rn("start","drag","end"),o=0,a,u,d,l,c=0;function f(w){w.on("mousedown.drag",h).filter(r).on("touchstart.drag",m).on("touchmove.drag",y,Jl).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(w,k){if(!(l||!e.call(this,w,k))){var _=g(this,t.call(this,w,k),w,k,"mouse");_&&(le(w.view).on("mousemove.drag",p,ft).on("mouseup.drag",x,ft),Ts(w.view),xn(w),d=!1,a=w.clientX,u=w.clientY,_("start",w))}}function p(w){if(Ge(w),!d){var k=w.clientX-a,_=w.clientY-u;d=k*k+_*_>c}i.mouse("drag",w)}function x(w){le(w.view).on("mousemove.drag mouseup.drag",null),Ps(w.view,d),Ge(w),i.mouse("end",w)}function m(w,k){if(e.call(this,w,k)){var _=w.changedTouches,M=t.call(this,w,k),b=_.length,N,I;for(N=0;N<b;++N)(I=g(this,M,w,k,_[N].identifier,_[N]))&&(xn(w),I("start",w,_[N]))}}function y(w){var k=w.changedTouches,_=k.length,M,b;for(M=0;M<_;++M)(b=i[k[M].identifier])&&(Ge(w),b("drag",w,k[M]))}function v(w){var k=w.changedTouches,_=k.length,M,b;for(l&&clearTimeout(l),l=setTimeout(function(){l=null},500),M=0;M<_;++M)(b=i[k[M].identifier])&&(xn(w),b("end",w,k[M]))}function g(w,k,_,M,b,N){var I=s.copy(),S=fe(N||_,k),C,j,E;if((E=n.call(w,new Sr("beforestart",{sourceEvent:_,target:f,identifier:b,active:o,x:S[0],y:S[1],dx:0,dy:0,dispatch:I}),M))!=null)return C=E.x-S[0]||0,j=E.y-S[1]||0,function L(P,D,O){var R=S,H;switch(P){case"start":i[b]=L,H=o++;break;case"end":delete i[b],--o;case"drag":S=fe(O||D,k),H=o;break}I.call(P,w,new Sr(P,{sourceEvent:D,subject:E,target:f,identifier:b,active:H,x:S[0]+C,y:S[1]+j,dx:S[0]-R[0],dy:S[1]-R[1],dispatch:I}),M)}}return f.filter=function(w){return arguments.length?(e=typeof w=="function"?w:At(!!w),f):e},f.container=function(w){return arguments.length?(t=typeof w=="function"?w:At(w),f):t},f.subject=function(w){return arguments.length?(n=typeof w=="function"?w:At(w),f):n},f.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:At(!!w),f):r},f.on=function(){var w=s.on.apply(s,arguments);return w===s?f:w},f.clickDistance=function(w){return arguments.length?(c=(w=+w)*w,f):Math.sqrt(c)},f}function Fr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Rs(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function _t(){}var ht=.7,Gt=1/ht,We="\\s*([+-]?\\d+)\\s*",pt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",we="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",id=/^#([0-9a-f]{3,8})$/,od=new RegExp(`^rgb\\(${We},${We},${We}\\)$`),sd=new RegExp(`^rgb\\(${we},${we},${we}\\)$`),ad=new RegExp(`^rgba\\(${We},${We},${We},${pt}\\)$`),cd=new RegExp(`^rgba\\(${we},${we},${we},${pt}\\)$`),ud=new RegExp(`^hsl\\(${pt},${we},${we}\\)$`),ld=new RegExp(`^hsla\\(${pt},${we},${we},${pt}\\)$`),mi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Fr(_t,De,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:yi,formatHex:yi,formatHex8:dd,formatHsl:fd,formatRgb:xi,toString:xi});function yi(){return this.rgb().formatHex()}function dd(){return this.rgb().formatHex8()}function fd(){return $s(this).formatHsl()}function xi(){return this.rgb().formatRgb()}function De(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=id.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?wi(t):n===3?new ue(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Tt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Tt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=od.exec(e))?new ue(t[1],t[2],t[3],1):(t=sd.exec(e))?new ue(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ad.exec(e))?Tt(t[1],t[2],t[3],t[4]):(t=cd.exec(e))?Tt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=ud.exec(e))?_i(t[1],t[2]/100,t[3]/100,1):(t=ld.exec(e))?_i(t[1],t[2]/100,t[3]/100,t[4]):mi.hasOwnProperty(e)?wi(mi[e]):e==="transparent"?new ue(NaN,NaN,NaN,0):null}function wi(e){return new ue(e>>16&255,e>>8&255,e&255,1)}function Tt(e,t,n,r){return r<=0&&(e=t=n=NaN),new ue(e,t,n,r)}function hd(e){return e instanceof _t||(e=De(e)),e?(e=e.rgb(),new ue(e.r,e.g,e.b,e.opacity)):new ue}function kr(e,t,n,r){return arguments.length===1?hd(e):new ue(e,t,n,r??1)}function ue(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Fr(ue,kr,Rs(_t,{brighter(e){return e=e==null?Gt:Math.pow(Gt,e),new ue(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ht:Math.pow(ht,e),new ue(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ue(Oe(this.r),Oe(this.g),Oe(this.b),Wt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:vi,formatHex:vi,formatHex8:pd,formatRgb:bi,toString:bi}));function vi(){return`#${$e(this.r)}${$e(this.g)}${$e(this.b)}`}function pd(){return`#${$e(this.r)}${$e(this.g)}${$e(this.b)}${$e((isNaN(this.opacity)?1:this.opacity)*255)}`}function bi(){const e=Wt(this.opacity);return`${e===1?"rgb(":"rgba("}${Oe(this.r)}, ${Oe(this.g)}, ${Oe(this.b)}${e===1?")":`, ${e})`}`}function Wt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Oe(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function $e(e){return e=Oe(e),(e<16?"0":"")+e.toString(16)}function _i(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new he(e,t,n,r)}function $s(e){if(e instanceof he)return new he(e.h,e.s,e.l,e.opacity);if(e instanceof _t||(e=De(e)),!e)return new he;if(e instanceof he)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,u=(s+i)/2;return a?(t===s?o=(n-r)/a+(n<r)*6:n===s?o=(r-t)/a+2:o=(t-n)/a+4,a/=u<.5?s+i:2-s-i,o*=60):a=u>0&&u<1?0:o,new he(o,a,u,e.opacity)}function gd(e,t,n,r){return arguments.length===1?$s(e):new he(e,t,n,r??1)}function he(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Fr(he,gd,Rs(_t,{brighter(e){return e=e==null?Gt:Math.pow(Gt,e),new he(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ht:Math.pow(ht,e),new he(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ue(wn(e>=240?e-240:e+120,i,r),wn(e,i,r),wn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new he(Ei(this.h),Pt(this.s),Pt(this.l),Wt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Wt(this.opacity);return`${e===1?"hsl(":"hsla("}${Ei(this.h)}, ${Pt(this.s)*100}%, ${Pt(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ei(e){return e=(e||0)%360,e<0?e+360:e}function Pt(e){return Math.max(0,Math.min(1,e||0))}function wn(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Br=e=>()=>e;function md(e,t){return function(n){return e+n*t}}function yd(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function xd(e){return(e=+e)==1?Os:function(t,n){return n-t?yd(t,n,e):Br(isNaN(t)?n:t)}}function Os(e,t){var n=t-e;return n?md(e,n):Br(isNaN(e)?t:e)}const Xt=(function e(t){var n=xd(t);function r(i,s){var o=n((i=kr(i)).r,(s=kr(s)).r),a=n(i.g,s.g),u=n(i.b,s.b),d=Os(i.opacity,s.opacity);return function(l){return i.r=o(l),i.g=a(l),i.b=u(l),i.opacity=d(l),i+""}}return r.gamma=e,r})(1);function wd(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(s){for(i=0;i<n;++i)r[i]=e[i]*(1-s)+t[i]*s;return r}}function vd(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function bd(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),s=new Array(n),o;for(o=0;o<r;++o)i[o]=lt(e[o],t[o]);for(;o<n;++o)s[o]=t[o];return function(a){for(o=0;o<r;++o)s[o]=i[o](a);return s}}function _d(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function xe(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Ed(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=lt(e[i],t[i]):r[i]=t[i];return function(s){for(i in n)r[i]=n[i](s);return r}}var Cr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,vn=new RegExp(Cr.source,"g");function Nd(e){return function(){return e}}function Sd(e){return function(t){return e(t)+""}}function js(e,t){var n=Cr.lastIndex=vn.lastIndex=0,r,i,s,o=-1,a=[],u=[];for(e=e+"",t=t+"";(r=Cr.exec(e))&&(i=vn.exec(t));)(s=i.index)>n&&(s=t.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,u.push({i:o,x:xe(r,i)})),n=vn.lastIndex;return n<t.length&&(s=t.slice(n),a[o]?a[o]+=s:a[++o]=s),a.length<2?u[0]?Sd(u[0].x):Nd(t):(t=u.length,function(d){for(var l=0,c;l<t;++l)a[(c=u[l]).i]=c.x(d);return a.join("")})}function lt(e,t){var n=typeof t,r;return t==null||n==="boolean"?Br(t):(n==="number"?xe:n==="string"?(r=De(t))?(t=r,Xt):js:t instanceof De?Xt:t instanceof Date?_d:vd(t)?wd:Array.isArray(t)?bd:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Ed:xe)(e,t)}var Ni=180/Math.PI,Mr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ds(e,t,n,r,i,s){var o,a,u;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,u/=a),e*r<t*n&&(e=-e,t=-t,u=-u,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(t,e)*Ni,skewX:Math.atan(u)*Ni,scaleX:o,scaleY:a}}var Lt;function kd(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Mr:Ds(t.a,t.b,t.c,t.d,t.e,t.f)}function Cd(e){return e==null||(Lt||(Lt=document.createElementNS("http://www.w3.org/2000/svg","g")),Lt.setAttribute("transform",e),!(e=Lt.transform.baseVal.consolidate()))?Mr:(e=e.matrix,Ds(e.a,e.b,e.c,e.d,e.e,e.f))}function zs(e,t,n,r){function i(d){return d.length?d.pop()+" ":""}function s(d,l,c,f,h,p){if(d!==c||l!==f){var x=h.push("translate(",null,t,null,n);p.push({i:x-4,x:xe(d,c)},{i:x-2,x:xe(l,f)})}else(c||f)&&h.push("translate("+c+t+f+n)}function o(d,l,c,f){d!==l?(d-l>180?l+=360:l-d>180&&(d+=360),f.push({i:c.push(i(c)+"rotate(",null,r)-2,x:xe(d,l)})):l&&c.push(i(c)+"rotate("+l+r)}function a(d,l,c,f){d!==l?f.push({i:c.push(i(c)+"skewX(",null,r)-2,x:xe(d,l)}):l&&c.push(i(c)+"skewX("+l+r)}function u(d,l,c,f,h,p){if(d!==c||l!==f){var x=h.push(i(h)+"scale(",null,",",null,")");p.push({i:x-4,x:xe(d,c)},{i:x-2,x:xe(l,f)})}else(c!==1||f!==1)&&h.push(i(h)+"scale("+c+","+f+")")}return function(d,l){var c=[],f=[];return d=e(d),l=e(l),s(d.translateX,d.translateY,l.translateX,l.translateY,c,f),o(d.rotate,l.rotate,c,f),a(d.skewX,l.skewX,c,f),u(d.scaleX,d.scaleY,l.scaleX,l.scaleY,c,f),d=l=null,function(h){for(var p=-1,x=f.length,m;++p<x;)c[(m=f[p]).i]=m.x(h);return c.join("")}}}var Md=zs(kd,"px, ","px)","deg)"),Id=zs(Cd,", ",")",")"),Ad=1e-12;function Si(e){return((e=Math.exp(e))+1/e)/2}function Td(e){return((e=Math.exp(e))-1/e)/2}function Pd(e){return((e=Math.exp(2*e))-1)/(e+1)}const Vt=(function e(t,n,r){function i(s,o){var a=s[0],u=s[1],d=s[2],l=o[0],c=o[1],f=o[2],h=l-a,p=c-u,x=h*h+p*p,m,y;if(x<Ad)y=Math.log(f/d)/t,m=function(M){return[a+M*h,u+M*p,d*Math.exp(t*M*y)]};else{var v=Math.sqrt(x),g=(f*f-d*d+r*x)/(2*d*n*v),w=(f*f-d*d-r*x)/(2*f*n*v),k=Math.log(Math.sqrt(g*g+1)-g),_=Math.log(Math.sqrt(w*w+1)-w);y=(_-k)/t,m=function(M){var b=M*y,N=Si(k),I=d/(n*v)*(N*Pd(t*b+k)-Td(k));return[a+I*h,u+I*p,d*N/Si(t*b+k)]}}return m.duration=y*1e3*t/Math.SQRT2,m}return i.rho=function(s){var o=Math.max(.001,+s),a=o*o,u=a*a;return e(o,a,u)},i})(Math.SQRT2,2,4);var Ue=0,ct=0,st=0,Vs=1e3,Ut,ut,Kt=0,ze=0,sn=0,gt=typeof performance=="object"&&performance.now?performance:Date,Hs=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function qr(){return ze||(Hs(Ld),ze=gt.now()+sn)}function Ld(){ze=0}function Zt(){this._call=this._time=this._next=null}Zt.prototype=Fs.prototype={constructor:Zt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?qr():+n)+(t==null?0:+t),!this._next&&ut!==this&&(ut?ut._next=this:Ut=this,ut=this),this._call=e,this._time=n,Ir()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ir())}};function Fs(e,t,n){var r=new Zt;return r.restart(e,t,n),r}function Rd(){qr(),++Ue;for(var e=Ut,t;e;)(t=ze-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Ue}function ki(){ze=(Kt=gt.now())+sn,Ue=ct=0;try{Rd()}finally{Ue=0,Od(),ze=0}}function $d(){var e=gt.now(),t=e-Kt;t>Vs&&(sn-=t,Kt=e)}function Od(){for(var e,t=Ut,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ut=n);ut=e,Ir(r)}function Ir(e){if(!Ue){ct&&(ct=clearTimeout(ct));var t=e-ze;t>24?(e<1/0&&(ct=setTimeout(ki,e-gt.now()-sn)),st&&(st=clearInterval(st))):(st||(Kt=gt.now(),st=setInterval($d,Vs)),Ue=1,Hs(ki))}}function Ci(e,t,n){var r=new Zt;return t=t==null?0:+t,r.restart(i=>{r.stop(),e(i+t)},t,n),r}var jd=rn("start","end","cancel","interrupt"),Dd=[],Bs=0,Mi=1,Ar=2,Ht=3,Ii=4,Tr=5,Ft=6;function an(e,t,n,r,i,s){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;zd(e,n,{name:t,index:r,group:i,on:jd,tween:Dd,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Bs})}function Yr(e,t){var n=ye(e,t);if(n.state>Bs)throw new Error("too late; already scheduled");return n}function be(e,t){var n=ye(e,t);if(n.state>Ht)throw new Error("too late; already running");return n}function ye(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function zd(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Fs(s,0,n.time);function s(d){n.state=Mi,n.timer.restart(o,n.delay,n.time),n.delay<=d&&o(d-n.delay)}function o(d){var l,c,f,h;if(n.state!==Mi)return u();for(l in r)if(h=r[l],h.name===n.name){if(h.state===Ht)return Ci(o);h.state===Ii?(h.state=Ft,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[l]):+l<t&&(h.state=Ft,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[l])}if(Ci(function(){n.state===Ht&&(n.state=Ii,n.timer.restart(a,n.delay,n.time),a(d))}),n.state=Ar,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Ar){for(n.state=Ht,i=new Array(f=n.tween.length),l=0,c=-1;l<f;++l)(h=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++c]=h);i.length=c+1}}function a(d){for(var l=d<n.duration?n.ease.call(null,d/n.duration):(n.timer.restart(u),n.state=Tr,1),c=-1,f=i.length;++c<f;)i[c].call(e,l);n.state===Tr&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){n.state=Ft,n.timer.stop(),delete r[t];for(var d in r)return;delete e.__transition}}function Bt(e,t){var n=e.__transition,r,i,s=!0,o;if(n){t=t==null?null:t+"";for(o in n){if((r=n[o]).name!==t){s=!1;continue}i=r.state>Ar&&r.state<Tr,r.state=Ft,r.timer.stop(),r.on.call(i?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[o]}s&&delete e.__transition}}function Vd(e){return this.each(function(){Bt(this,e)})}function Hd(e,t){var n,r;return function(){var i=be(this,e),s=i.tween;if(s!==n){r=n=s;for(var o=0,a=r.length;o<a;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Fd(e,t,n){var r,i;if(typeof n!="function")throw new Error;return function(){var s=be(this,e),o=s.tween;if(o!==r){i=(r=o).slice();for(var a={name:t,value:n},u=0,d=i.length;u<d;++u)if(i[u].name===t){i[u]=a;break}u===d&&i.push(a)}s.tween=i}}function Bd(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=ye(this.node(),n).tween,i=0,s=r.length,o;i<s;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?Hd:Fd)(n,e,t))}function Gr(e,t,n){var r=e._id;return e.each(function(){var i=be(this,r);(i.value||(i.value={}))[t]=n.apply(this,arguments)}),function(i){return ye(i,r).value[t]}}function qs(e,t){var n;return(typeof t=="number"?xe:t instanceof De?Xt:(n=De(t))?(t=n,Xt):js)(e,t)}function qd(e){return function(){this.removeAttribute(e)}}function Yd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Gd(e,t,n){var r,i=n+"",s;return function(){var o=this.getAttribute(e);return o===i?null:o===r?s:s=t(r=o,n)}}function Wd(e,t,n){var r,i=n+"",s;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?s:s=t(r=o,n)}}function Xd(e,t,n){var r,i,s;return function(){var o,a=n(this),u;return a==null?void this.removeAttribute(e):(o=this.getAttribute(e),u=a+"",o===u?null:o===r&&u===i?s:(i=u,s=t(r=o,a)))}}function Ud(e,t,n){var r,i,s;return function(){var o,a=n(this),u;return a==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),u=a+"",o===u?null:o===r&&u===i?s:(i=u,s=t(r=o,a)))}}function Kd(e,t){var n=on(e),r=n==="transform"?Id:qs;return this.attrTween(e,typeof t=="function"?(n.local?Ud:Xd)(n,r,Gr(this,"attr."+e,t)):t==null?(n.local?Yd:qd)(n):(n.local?Wd:Gd)(n,r,t))}function Zd(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Qd(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Jd(e,t){var n,r;function i(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&Qd(e,s)),n}return i._value=t,i}function ef(e,t){var n,r;function i(){var s=t.apply(this,arguments);return s!==r&&(n=(r=s)&&Zd(e,s)),n}return i._value=t,i}function tf(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=on(e);return this.tween(n,(r.local?Jd:ef)(r,t))}function nf(e,t){return function(){Yr(this,e).delay=+t.apply(this,arguments)}}function rf(e,t){return t=+t,function(){Yr(this,e).delay=t}}function of(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?nf:rf)(t,e)):ye(this.node(),t).delay}function sf(e,t){return function(){be(this,e).duration=+t.apply(this,arguments)}}function af(e,t){return t=+t,function(){be(this,e).duration=t}}function cf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?sf:af)(t,e)):ye(this.node(),t).duration}function uf(e,t){if(typeof t!="function")throw new Error;return function(){be(this,e).ease=t}}function lf(e){var t=this._id;return arguments.length?this.each(uf(t,e)):ye(this.node(),t).ease}function df(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;be(this,e).ease=n}}function ff(e){if(typeof e!="function")throw new Error;return this.each(df(this._id,e))}function hf(e){typeof e!="function"&&(e=bs(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i<n;++i)for(var s=t[i],o=s.length,a=r[i]=[],u,d=0;d<o;++d)(u=s[d])&&e.call(u,u.__data__,d,s)&&a.push(u);return new Se(r,this._parents,this._name,this._id)}function pf(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,i=n.length,s=Math.min(r,i),o=new Array(r),a=0;a<s;++a)for(var u=t[a],d=n[a],l=u.length,c=o[a]=new Array(l),f,h=0;h<l;++h)(f=u[h]||d[h])&&(c[h]=f);for(;a<r;++a)o[a]=t[a];return new Se(o,this._parents,this._name,this._id)}function gf(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function mf(e,t,n){var r,i,s=gf(t)?Yr:be;return function(){var o=s(this,e),a=o.on;a!==r&&(i=(r=a).copy()).on(t,n),o.on=i}}function yf(e,t){var n=this._id;return arguments.length<2?ye(this.node(),n).on.on(e):this.each(mf(n,e,t))}function xf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function wf(){return this.on("end.remove",xf(this._id))}function vf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Vr(e));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o<i;++o)for(var a=r[o],u=a.length,d=s[o]=new Array(u),l,c,f=0;f<u;++f)(l=a[f])&&(c=e.call(l,l.__data__,f,a))&&("__data__"in l&&(c.__data__=l.__data__),d[f]=c,an(d[f],t,n,f,d,ye(l,n)));return new Se(s,this._parents,t,n)}function bf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=vs(e));for(var r=this._groups,i=r.length,s=[],o=[],a=0;a<i;++a)for(var u=r[a],d=u.length,l,c=0;c<d;++c)if(l=u[c]){for(var f=e.call(l,l.__data__,c,u),h,p=ye(l,n),x=0,m=f.length;x<m;++x)(h=f[x])&&an(h,t,n,x,f,p);s.push(f),o.push(l)}return new Se(s,o,t,n)}var _f=bt.prototype.constructor;function Ef(){return new _f(this._groups,this._parents)}function Nf(e,t){var n,r,i;return function(){var s=Xe(this,e),o=(this.style.removeProperty(e),Xe(this,e));return s===o?null:s===n&&o===r?i:i=t(n=s,r=o)}}function Ys(e){return function(){this.style.removeProperty(e)}}function Sf(e,t,n){var r,i=n+"",s;return function(){var o=Xe(this,e);return o===i?null:o===r?s:s=t(r=o,n)}}function kf(e,t,n){var r,i,s;return function(){var o=Xe(this,e),a=n(this),u=a+"";return a==null&&(u=a=(this.style.removeProperty(e),Xe(this,e))),o===u?null:o===r&&u===i?s:(i=u,s=t(r=o,a))}}function Cf(e,t){var n,r,i,s="style."+t,o="end."+s,a;return function(){var u=be(this,e),d=u.on,l=u.value[s]==null?a||(a=Ys(t)):void 0;(d!==n||i!==l)&&(r=(n=d).copy()).on(o,i=l),u.on=r}}function Mf(e,t,n){var r=(e+="")=="transform"?Md:qs;return t==null?this.styleTween(e,Nf(e,r)).on("end.style."+e,Ys(e)):typeof t=="function"?this.styleTween(e,kf(e,r,Gr(this,"style."+e,t))).each(Cf(this._id,e)):this.styleTween(e,Sf(e,r,t),n).on("end.style."+e,null)}function If(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Af(e,t,n){var r,i;function s(){var o=t.apply(this,arguments);return o!==i&&(r=(i=o)&&If(e,o,n)),r}return s._value=t,s}function Tf(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Af(e,t,n??""))}function Pf(e){return function(){this.textContent=e}}function Lf(e){return function(){var t=e(this);this.textContent=t??""}}function Rf(e){return this.tween("text",typeof e=="function"?Lf(Gr(this,"text",e)):Pf(e==null?"":e+""))}function $f(e){return function(t){this.textContent=e.call(this,t)}}function Of(e){var t,n;function r(){var i=e.apply(this,arguments);return i!==n&&(t=(n=i)&&$f(i)),t}return r._value=e,r}function jf(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Of(e))}function Df(){for(var e=this._name,t=this._id,n=Gs(),r=this._groups,i=r.length,s=0;s<i;++s)for(var o=r[s],a=o.length,u,d=0;d<a;++d)if(u=o[d]){var l=ye(u,t);an(u,e,n,d,o,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new Se(r,this._parents,e,n)}function zf(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(s,o){var a={value:o},u={value:function(){--i===0&&s()}};n.each(function(){var d=be(this,r),l=d.on;l!==e&&(t=(e=l).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(u)),d.on=t}),i===0&&s()})}var Vf=0;function Se(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Gs(){return++Vf}var Ee=bt.prototype;Se.prototype={constructor:Se,select:vf,selectAll:bf,selectChild:Ee.selectChild,selectChildren:Ee.selectChildren,filter:hf,merge:pf,selection:Ef,transition:Df,call:Ee.call,nodes:Ee.nodes,node:Ee.node,size:Ee.size,empty:Ee.empty,each:Ee.each,on:yf,attr:Kd,attrTween:tf,style:Mf,styleTween:Tf,text:Rf,textTween:jf,remove:wf,tween:Bd,delay:of,duration:cf,ease:lf,easeVarying:ff,end:zf,[Symbol.iterator]:Ee[Symbol.iterator]};function Hf(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Ff={time:null,delay:0,duration:250,ease:Hf};function Bf(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function qf(e){var t,n;e instanceof Se?(t=e._id,e=e._name):(t=Gs(),(n=Ff).time=qr(),e=e==null?null:e+"");for(var r=this._groups,i=r.length,s=0;s<i;++s)for(var o=r[s],a=o.length,u,d=0;d<a;++d)(u=o[d])&&an(u,e,t,d,o,n||Bf(u,t));return new Se(r,this._parents,e,t)}bt.prototype.interrupt=Vd;bt.prototype.transition=qf;const Rt=e=>()=>e;function Yf(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Ne(e,t,n){this.k=e,this.x=t,this.y=n}Ne.prototype={constructor:Ne,scale:function(e){return e===1?this:new Ne(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ne(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var cn=new Ne(1,0,0);Ws.prototype=Ne.prototype;function Ws(e){for(;!e.__zoom;)if(!(e=e.parentNode))return cn;return e.__zoom}function bn(e){e.stopImmediatePropagation()}function at(e){e.preventDefault(),e.stopImmediatePropagation()}function Gf(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Wf(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Ai(){return this.__zoom||cn}function Xf(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Uf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Kf(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o))}function Xs(){var e=Gf,t=Wf,n=Kf,r=Xf,i=Uf,s=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,u=Vt,d=rn("start","zoom","end"),l,c,f,h=500,p=150,x=0,m=10;function y(E){E.property("__zoom",Ai).on("wheel.zoom",b,{passive:!1}).on("mousedown.zoom",N).on("dblclick.zoom",I).filter(i).on("touchstart.zoom",S).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",j).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(E,L,P,D){var O=E.selection?E.selection():E;O.property("__zoom",Ai),E!==O?k(E,L,P,D):O.interrupt().each(function(){_(this,arguments).event(D).start().zoom(null,typeof L=="function"?L.apply(this,arguments):L).end()})},y.scaleBy=function(E,L,P,D){y.scaleTo(E,function(){var O=this.__zoom.k,R=typeof L=="function"?L.apply(this,arguments):L;return O*R},P,D)},y.scaleTo=function(E,L,P,D){y.transform(E,function(){var O=t.apply(this,arguments),R=this.__zoom,H=P==null?w(O):typeof P=="function"?P.apply(this,arguments):P,q=R.invert(H),F=typeof L=="function"?L.apply(this,arguments):L;return n(g(v(R,F),H,q),O,o)},P,D)},y.translateBy=function(E,L,P,D){y.transform(E,function(){return n(this.__zoom.translate(typeof L=="function"?L.apply(this,arguments):L,typeof P=="function"?P.apply(this,arguments):P),t.apply(this,arguments),o)},null,D)},y.translateTo=function(E,L,P,D,O){y.transform(E,function(){var R=t.apply(this,arguments),H=this.__zoom,q=D==null?w(R):typeof D=="function"?D.apply(this,arguments):D;return n(cn.translate(q[0],q[1]).scale(H.k).translate(typeof L=="function"?-L.apply(this,arguments):-L,typeof P=="function"?-P.apply(this,arguments):-P),R,o)},D,O)};function v(E,L){return L=Math.max(s[0],Math.min(s[1],L)),L===E.k?E:new Ne(L,E.x,E.y)}function g(E,L,P){var D=L[0]-P[0]*E.k,O=L[1]-P[1]*E.k;return D===E.x&&O===E.y?E:new Ne(E.k,D,O)}function w(E){return[(+E[0][0]+ +E[1][0])/2,(+E[0][1]+ +E[1][1])/2]}function k(E,L,P,D){E.on("start.zoom",function(){_(this,arguments).event(D).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(D).end()}).tween("zoom",function(){var O=this,R=arguments,H=_(O,R).event(D),q=t.apply(O,R),F=P==null?w(q):typeof P=="function"?P.apply(O,R):P,T=Math.max(q[1][0]-q[0][0],q[1][1]-q[0][1]),$=O.__zoom,z=typeof L=="function"?L.apply(O,R):L,B=u($.invert(F).concat(T/$.k),z.invert(F).concat(T/z.k));return function(G){if(G===1)G=z;else{var Y=B(G),W=T/Y[2];G=new Ne(W,F[0]-Y[0]*W,F[1]-Y[1]*W)}H.zoom(null,G)}})}function _(E,L,P){return!P&&E.__zooming||new M(E,L)}function M(E,L){this.that=E,this.args=L,this.active=0,this.sourceEvent=null,this.extent=t.apply(E,L),this.taps=0}M.prototype={event:function(E){return E&&(this.sourceEvent=E),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(E,L){return this.mouse&&E!=="mouse"&&(this.mouse[1]=L.invert(this.mouse[0])),this.touch0&&E!=="touch"&&(this.touch0[1]=L.invert(this.touch0[0])),this.touch1&&E!=="touch"&&(this.touch1[1]=L.invert(this.touch1[0])),this.that.__zoom=L,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(E){var L=le(this.that).datum();d.call(E,this.that,new Yf(E,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:d}),L)}};function b(E,...L){if(!e.apply(this,arguments))return;var P=_(this,L).event(E),D=this.__zoom,O=Math.max(s[0],Math.min(s[1],D.k*Math.pow(2,r.apply(this,arguments)))),R=fe(E);if(P.wheel)(P.mouse[0][0]!==R[0]||P.mouse[0][1]!==R[1])&&(P.mouse[1]=D.invert(P.mouse[0]=R)),clearTimeout(P.wheel);else{if(D.k===O)return;P.mouse=[R,D.invert(R)],Bt(this),P.start()}at(E),P.wheel=setTimeout(H,p),P.zoom("mouse",n(g(v(D,O),P.mouse[0],P.mouse[1]),P.extent,o));function H(){P.wheel=null,P.end()}}function N(E,...L){if(f||!e.apply(this,arguments))return;var P=E.currentTarget,D=_(this,L,!0).event(E),O=le(E.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",T,!0),R=fe(E,P),H=E.clientX,q=E.clientY;Ts(E.view),bn(E),D.mouse=[R,this.__zoom.invert(R)],Bt(this),D.start();function F($){if(at($),!D.moved){var z=$.clientX-H,B=$.clientY-q;D.moved=z*z+B*B>x}D.event($).zoom("mouse",n(g(D.that.__zoom,D.mouse[0]=fe($,P),D.mouse[1]),D.extent,o))}function T($){O.on("mousemove.zoom mouseup.zoom",null),Ps($.view,D.moved),at($),D.event($).end()}}function I(E,...L){if(e.apply(this,arguments)){var P=this.__zoom,D=fe(E.changedTouches?E.changedTouches[0]:E,this),O=P.invert(D),R=P.k*(E.shiftKey?.5:2),H=n(g(v(P,R),D,O),t.apply(this,L),o);at(E),a>0?le(this).transition().duration(a).call(k,H,D,E):le(this).call(y.transform,H,D,E)}}function S(E,...L){if(e.apply(this,arguments)){var P=E.touches,D=P.length,O=_(this,L,E.changedTouches.length===D).event(E),R,H,q,F;for(bn(E),H=0;H<D;++H)q=P[H],F=fe(q,this),F=[F,this.__zoom.invert(F),q.identifier],O.touch0?!O.touch1&&O.touch0[2]!==F[2]&&(O.touch1=F,O.taps=0):(O.touch0=F,R=!0,O.taps=1+!!l);l&&(l=clearTimeout(l)),R&&(O.taps<2&&(c=F[0],l=setTimeout(function(){l=null},h)),Bt(this),O.start())}}function C(E,...L){if(this.__zooming){var P=_(this,L).event(E),D=E.changedTouches,O=D.length,R,H,q,F;for(at(E),R=0;R<O;++R)H=D[R],q=fe(H,this),P.touch0&&P.touch0[2]===H.identifier?P.touch0[0]=q:P.touch1&&P.touch1[2]===H.identifier&&(P.touch1[0]=q);if(H=P.that.__zoom,P.touch1){var T=P.touch0[0],$=P.touch0[1],z=P.touch1[0],B=P.touch1[1],G=(G=z[0]-T[0])*G+(G=z[1]-T[1])*G,Y=(Y=B[0]-$[0])*Y+(Y=B[1]-$[1])*Y;H=v(H,Math.sqrt(G/Y)),q=[(T[0]+z[0])/2,(T[1]+z[1])/2],F=[($[0]+B[0])/2,($[1]+B[1])/2]}else if(P.touch0)q=P.touch0[0],F=P.touch0[1];else return;P.zoom("touch",n(g(H,q,F),P.extent,o))}}function j(E,...L){if(this.__zooming){var P=_(this,L).event(E),D=E.changedTouches,O=D.length,R,H;for(bn(E),f&&clearTimeout(f),f=setTimeout(function(){f=null},h),R=0;R<O;++R)H=D[R],P.touch0&&P.touch0[2]===H.identifier?delete P.touch0:P.touch1&&P.touch1[2]===H.identifier&&delete P.touch1;if(P.touch1&&!P.touch0&&(P.touch0=P.touch1,delete P.touch1),P.touch0)P.touch0[1]=this.__zoom.invert(P.touch0[0]);else if(P.end(),P.taps===2&&(H=fe(H,this),Math.hypot(c[0]-H[0],c[1]-H[1])<m)){var q=le(this).on("dblclick.zoom");q&&q.apply(this,arguments)}}}return y.wheelDelta=function(E){return arguments.length?(r=typeof E=="function"?E:Rt(+E),y):r},y.filter=function(E){return arguments.length?(e=typeof E=="function"?E:Rt(!!E),y):e},y.touchable=function(E){return arguments.length?(i=typeof E=="function"?E:Rt(!!E),y):i},y.extent=function(E){return arguments.length?(t=typeof E=="function"?E:Rt([[+E[0][0],+E[0][1]],[+E[1][0],+E[1][1]]]),y):t},y.scaleExtent=function(E){return arguments.length?(s[0]=+E[0],s[1]=+E[1],y):[s[0],s[1]]},y.translateExtent=function(E){return arguments.length?(o[0][0]=+E[0][0],o[1][0]=+E[1][0],o[0][1]=+E[0][1],o[1][1]=+E[1][1],y):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},y.constrain=function(E){return arguments.length?(n=E,y):n},y.duration=function(E){return arguments.length?(a=+E,y):a},y.interpolate=function(E){return arguments.length?(u=E,y):u},y.on=function(){var E=d.on.apply(d,arguments);return E===d?y:E},y.clickDistance=function(E){return arguments.length?(x=(E=+E)*E,y):Math.sqrt(x)},y.tapDistance=function(E){return arguments.length?(m=+E,y):m},y}const ve={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},mt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Us=["Enter"," ","Escape"],Ks={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var Ke;(function(e){e.Strict="strict",e.Loose="loose"})(Ke||(Ke={}));var je;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(je||(je={}));var yt;(function(e){e.Partial="partial",e.Full="full"})(yt||(yt={}));const Zs={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Ae;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ae||(Ae={}));var Qt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Qt||(Qt={}));var K;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(K||(K={}));const Ti={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top};function Qs(e){return e===null?null:e?"valid":"invalid"}const Js=e=>"id"in e&&"source"in e&&"target"in e,Zf=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Wr=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Et=(e,t=[0,0])=>{const{width:n,height:r}=ke(e),i=e.origin??t,s=n*i[0],o=r*i[1];return{x:e.position.x-s,y:e.position.y-o}},Qf=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,i)=>{const s=typeof i=="string";let o=!t.nodeLookup&&!s?i:void 0;t.nodeLookup&&(o=s?t.nodeLookup.get(i):Wr(i)?i:t.nodeLookup.get(i.id));const a=o?Jt(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return un(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return ln(n)},Nt=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(i=>{(t.filter===void 0||t.filter(i))&&(n=un(n,Jt(i)),r=!0)}),r?ln(n):{x:0,y:0,width:0,height:0}},Xr=(e,t,[n,r,i]=[0,0,1],s=!1,o=!1)=>{const a={...kt(t,[n,r,i]),width:t.width/i,height:t.height/i},u=[];for(const d of e.values()){const{measured:l,selectable:c=!0,hidden:f=!1}=d;if(o&&!c||f)continue;const h=l.width??d.width??d.initialWidth??null,p=l.height??d.height??d.initialHeight??null,x=xt(a,Qe(d)),m=(h??0)*(p??0),y=s&&x>0;(!d.internals.handleBounds||y||x>=m||d.dragging)&&u.push(d)}return u},Jf=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function eh(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!i.hidden)&&(!r||r.has(i.id))&&n.set(i.id,i)}),n}async function th({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:s},o){if(e.size===0)return Promise.resolve(!0);const a=eh(e,o),u=Nt(a),d=Ur(u,t,n,(o==null?void 0:o.minZoom)??i,(o==null?void 0:o.maxZoom)??s,(o==null?void 0:o.padding)??.1);return await r.setViewport(d,{duration:o==null?void 0:o.duration,ease:o==null?void 0:o.ease,interpolate:o==null?void 0:o.interpolate}),Promise.resolve(!0)}function ea({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:s}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:u,y:d}=a?a.internals.positionAbsolute:{x:0,y:0},l=o.origin??r;let c=o.extent||i;if(o.extent==="parent"&&!o.expandParent)if(!a)s==null||s("005",ve.error005());else{const h=a.measured.width,p=a.measured.height;h&&p&&(c=[[u,d],[u+h,d+p]])}else a&&Je(o.extent)&&(c=[[o.extent[0][0]+u,o.extent[0][1]+d],[o.extent[1][0]+u,o.extent[1][1]+d]]);const f=Je(c)?Ve(t,c,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&(s==null||s("015",ve.error015())),{position:{x:f.x-u+(o.measured.width??0)*l[0],y:f.y-d+(o.measured.height??0)*l[1]},positionAbsolute:f}}async function nh({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){const s=new Set(e.map(f=>f.id)),o=[];for(const f of n){if(f.deletable===!1)continue;const h=s.has(f.id),p=!h&&f.parentId&&o.find(x=>x.id===f.parentId);(h||p)&&o.push(f)}const a=new Set(t.map(f=>f.id)),u=r.filter(f=>f.deletable!==!1),l=Jf(o,u);for(const f of u)a.has(f.id)&&!l.find(p=>p.id===f.id)&&l.push(f);if(!i)return{edges:l,nodes:o};const c=await i({nodes:o,edges:l});return typeof c=="boolean"?c?{edges:l,nodes:o}:{edges:[],nodes:[]}:c}const Ze=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ve=(e={x:0,y:0},t,n)=>({x:Ze(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:Ze(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function ta(e,t,n){const{width:r,height:i}=ke(n),{x:s,y:o}=n.internals.positionAbsolute;return Ve(e,[[s,o],[s+r,o+i]],t)}const Pi=(e,t,n)=>e<t?Ze(Math.abs(e-t),1,t)/t:e>n?-Ze(Math.abs(e-n),1,t)/t:0,na=(e,t,n=15,r=40)=>{const i=Pi(e.x,r,t.width-r)*n,s=Pi(e.y,r,t.height-r)*n;return[i,s]},un=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Pr=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),ln=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Qe=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=Wr(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:r,width:((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0,height:((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0}},Jt=(e,t=[0,0])=>{var i,s;const{x:n,y:r}=Wr(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:r,x2:n+(((i=e.measured)==null?void 0:i.width)??e.width??e.initialWidth??0),y2:r+(((s=e.measured)==null?void 0:s.height)??e.height??e.initialHeight??0)}},ra=(e,t)=>ln(un(Pr(e),Pr(t))),xt=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},Li=e=>pe(e.width)&&pe(e.height)&&pe(e.x)&&pe(e.y),pe=e=>!isNaN(e)&&isFinite(e),rh=(e,t)=>{},St=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),kt=({x:e,y:t},[n,r,i],s=!1,o=[1,1])=>{const a={x:(e-n)/i,y:(t-r)/i};return s?St(a,o):a},en=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function Be(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function ih(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Be(e,n),i=Be(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e=="object"){const r=Be(e.top??e.y??0,n),i=Be(e.bottom??e.y??0,n),s=Be(e.left??e.x??0,t),o=Be(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:s,x:s+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function oh(e,t,n,r,i,s){const{x:o,y:a}=en(e,[t,n,r]),{x:u,y:d}=en({x:e.x+e.width,y:e.y+e.height},[t,n,r]),l=i-u,c=s-d;return{left:Math.floor(o),top:Math.floor(a),right:Math.floor(l),bottom:Math.floor(c)}}const Ur=(e,t,n,r,i,s)=>{const o=ih(s,t,n),a=(t-o.x)/e.width,u=(n-o.y)/e.height,d=Math.min(a,u),l=Ze(d,r,i),c=e.x+e.width/2,f=e.y+e.height/2,h=t/2-c*l,p=n/2-f*l,x=oh(e,h,p,l,t,n),m={left:Math.min(x.left-o.left,0),top:Math.min(x.top-o.top,0),right:Math.min(x.right-o.right,0),bottom:Math.min(x.bottom-o.bottom,0)};return{x:h-m.left+m.right,y:p-m.top+m.bottom,zoom:l}},wt=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Je(e){return e!=null&&e!=="parent"}function ke(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function ia(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function oa(e,t={width:0,height:0},n,r,i){const s={...e},o=r.get(n);if(o){const a=o.origin||i;s.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],s.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return s}function Ri(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function sh(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),resolve:e,reject:t}}function ah(e){return{...Ks,...e||{}}}function dt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){const{x:s,y:o}=ge(e),a=kt({x:s-((i==null?void 0:i.left)??0),y:o-((i==null?void 0:i.top)??0)},r),{x:u,y:d}=n?St(a,t):a;return{xSnapped:u,ySnapped:d,...a}}const Kr=e=>({width:e.offsetWidth,height:e.offsetHeight}),sa=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},ch=["INPUT","SELECT","TEXTAREA"];function aa(e){var r,i;const t=((i=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:i[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:ch.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ca=e=>"clientX"in e,ge=(e,t)=>{var s,o;const n=ca(e),r=n?e.clientX:(s=e.touches)==null?void 0:s[0].clientX,i=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:i-((t==null?void 0:t.top)??0)}},$i=(e,t,n,r,i)=>{const s=t.querySelectorAll(`.${e}`);return!s||!s.length?null:Array.from(s).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:i,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Kr(o)}})};function ua({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:o,targetControlY:a}){const u=e*.125+i*.375+o*.375+n*.125,d=t*.125+s*.375+a*.375+r*.125,l=Math.abs(u-e),c=Math.abs(d-t);return[u,d,l,c]}function $t(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Oi({pos:e,x1:t,y1:n,x2:r,y2:i,c:s}){switch(e){case K.Left:return[t-$t(t-r,s),n];case K.Right:return[t+$t(r-t,s),n];case K.Top:return[t,n-$t(n-i,s)];case K.Bottom:return[t,n+$t(i-n,s)]}}function Zr({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:s=K.Top,curvature:o=.25}){const[a,u]=Oi({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[d,l]=Oi({pos:s,x1:r,y1:i,x2:e,y2:t,c:o}),[c,f,h,p]=ua({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:a,sourceControlY:u,targetControlX:d,targetControlY:l});return[`M${e},${t} C${a},${u} ${d},${l} ${r},${i}`,c,f,h,p]}function la({sourceX:e,sourceY:t,targetX:n,targetY:r}){const i=Math.abs(n-e)/2,s=n<e?n+i:n-i,o=Math.abs(r-t)/2,a=r<t?r+o:r-o;return[s,a,i,o]}function uh({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:s="basic"}){if(s==="manual")return r;const o=i&&n?r+1e3:r,a=Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0);return o+a}function lh({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){const s=un(Jt(e),Jt(t));s.x===s.x2&&(s.x2+=1),s.y===s.y2&&(s.y2+=1);const o={x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]};return xt(o,ln(s))>0}const dh=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,fh=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),hh=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||dh;let i;return Js(e)?i={...e}:i={...e,id:r(e)},fh(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function da({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[i,s,o,a]=la({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,s,o,a]}const ji={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},ph=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Di=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function gh({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:r=K.Top,center:i,offset:s,stepPosition:o}){const a=ji[t],u=ji[r],d={x:e.x+a.x*s,y:e.y+a.y*s},l={x:n.x+u.x*s,y:n.y+u.y*s},c=ph({source:d,sourcePosition:t,target:l}),f=c.x!==0?"x":"y",h=c[f];let p=[],x,m;const y={x:0,y:0},v={x:0,y:0},[,,g,w]=la({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*u[f]===-1){f==="x"?(x=i.x??d.x+(l.x-d.x)*o,m=i.y??(d.y+l.y)/2):(x=i.x??(d.x+l.x)/2,m=i.y??d.y+(l.y-d.y)*o);const _=[{x,y:d.y},{x,y:l.y}],M=[{x:d.x,y:m},{x:l.x,y:m}];a[f]===h?p=f==="x"?_:M:p=f==="x"?M:_}else{const _=[{x:d.x,y:l.y}],M=[{x:l.x,y:d.y}];if(f==="x"?p=a.x===h?M:_:p=a.y===h?_:M,t===r){const C=Math.abs(e[f]-n[f]);if(C<=s){const j=Math.min(s-1,s-C);a[f]===h?y[f]=(d[f]>e[f]?-1:1)*j:v[f]=(l[f]>n[f]?-1:1)*j}}if(t!==r){const C=f==="x"?"y":"x",j=a[f]===u[C],E=d[C]>l[C],L=d[C]<l[C];(a[f]===1&&(!j&&E||j&&L)||a[f]!==1&&(!j&&L||j&&E))&&(p=f==="x"?_:M)}const b={x:d.x+y.x,y:d.y+y.y},N={x:l.x+v.x,y:l.y+v.y},I=Math.max(Math.abs(b.x-p[0].x),Math.abs(N.x-p[0].x)),S=Math.max(Math.abs(b.y-p[0].y),Math.abs(N.y-p[0].y));I>=S?(x=(b.x+N.x)/2,m=p[0].y):(x=p[0].x,m=(b.y+N.y)/2)}return[[e,{x:d.x+y.x,y:d.y+y.y},...p,{x:l.x+v.x,y:l.y+v.y},n],x,m,g,w]}function mh(e,t,n,r){const i=Math.min(Di(e,t)/2,Di(t,n)/2,r),{x:s,y:o}=t;if(e.x===s&&s===n.x||e.y===o&&o===n.y)return`L${s} ${o}`;if(e.y===o){const d=e.x<n.x?-1:1,l=e.y<n.y?1:-1;return`L ${s+i*d},${o}Q ${s},${o} ${s},${o+i*l}`}const a=e.x<n.x?1:-1,u=e.y<n.y?-1:1;return`L ${s},${o+i*u}Q ${s},${o} ${s+i*a},${o}`}function Lr({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:s=K.Top,borderRadius:o=5,centerX:a,centerY:u,offset:d=20,stepPosition:l=.5}){const[c,f,h,p,x]=gh({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:s,center:{x:a,y:u},offset:d,stepPosition:l});return[c.reduce((y,v,g)=>{let w="";return g>0&&g<c.length-1?w=mh(c[g-1],v,c[g+1],o):w=`${g===0?"M":"L"}${v.x} ${v.y}`,y+=w,y},""),f,h,p,x]}function zi(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function yh(e){var c;const{sourceNode:t,targetNode:n}=e;if(!zi(t)||!zi(n))return null;const r=t.internals.handleBounds||Vi(t.handles),i=n.internals.handleBounds||Vi(n.handles),s=Hi((r==null?void 0:r.source)??[],e.sourceHandle),o=Hi(e.connectionMode===Ke.Strict?(i==null?void 0:i.target)??[]:((i==null?void 0:i.target)??[]).concat((i==null?void 0:i.source)??[]),e.targetHandle);if(!s||!o)return(c=e.onError)==null||c.call(e,"008",ve.error008(s?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(s==null?void 0:s.position)||K.Bottom,u=(o==null?void 0:o.position)||K.Top,d=He(t,s,a),l=He(n,o,u);return{sourceX:d.x,sourceY:d.y,targetX:l.x,targetY:l.y,sourcePosition:a,targetPosition:u}}function Vi(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function He(e,t,n=K.Left,r=!1){const i=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,s=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:o,height:a}=t??ke(e);if(r)return{x:i+o/2,y:s+a/2};switch((t==null?void 0:t.position)??n){case K.Top:return{x:i+o/2,y:s};case K.Right:return{x:i+o,y:s+a/2};case K.Bottom:return{x:i+o/2,y:s+a};case K.Left:return{x:i,y:s+a/2}}}function Hi(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Rr(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function xh(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){const s=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||i].forEach(u=>{if(u&&typeof u=="object"){const d=Rr(u,t);s.has(d)||(o.push({id:d,color:u.color||n,...u}),s.add(d))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const fa=1e3,wh=10,Qr={nodeOrigin:[0,0],nodeExtent:mt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},vh={...Qr,checkEquality:!0};function Jr(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function bh(e,t,n){const r=Jr(Qr,n);for(const i of e.values())if(i.parentId)ti(i,e,t,r);else{const s=Et(i,r.nodeOrigin),o=Je(i.extent)?i.extent:r.nodeExtent,a=Ve(s,o,ke(i));i.internals.positionAbsolute=a}}function _h(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const i of e.handles){const s={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(s):i.type==="target"&&r.push(s)}return{source:n,target:r}}function ei(e){return e==="manual"}function $r(e,t,n,r={}){var d,l;const i=Jr(vh,r),s={i:0},o=new Map(t),a=i!=null&&i.elevateNodesOnSelect&&!ei(i.zIndexMode)?fa:0;let u=e.length>0;t.clear(),n.clear();for(const c of e){let f=o.get(c.id);if(i.checkEquality&&c===(f==null?void 0:f.internals.userNode))t.set(c.id,f);else{const h=Et(c,i.nodeOrigin),p=Je(c.extent)?c.extent:i.nodeExtent,x=Ve(h,p,ke(c));f={...i.defaults,...c,measured:{width:(d=c.measured)==null?void 0:d.width,height:(l=c.measured)==null?void 0:l.height},internals:{positionAbsolute:x,handleBounds:_h(c,f),z:ha(c,a,i.zIndexMode),userNode:c}},t.set(c.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(u=!1),c.parentId&&ti(f,t,n,r,s)}return u}function Eh(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ti(e,t,n,r,i){const{elevateNodesOnSelect:s,nodeOrigin:o,nodeExtent:a,zIndexMode:u}=Jr(Qr,r),d=e.parentId,l=t.get(d);if(!l){console.warn(`Parent node ${d} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Eh(e,n),i&&!l.parentId&&l.internals.rootParentIndex===void 0&&u==="auto"&&(l.internals.rootParentIndex=++i.i,l.internals.z=l.internals.z+i.i*wh),i&&l.internals.rootParentIndex!==void 0&&(i.i=l.internals.rootParentIndex);const c=s&&!ei(u)?fa:0,{x:f,y:h,z:p}=Nh(e,l,o,a,c,u),{positionAbsolute:x}=e.internals,m=f!==x.x||h!==x.y;(m||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:m?{x:f,y:h}:x,z:p}})}function ha(e,t,n){const r=pe(e.zIndex)?e.zIndex:0;return ei(n)?r:r+(e.selected?t:0)}function Nh(e,t,n,r,i,s){const{x:o,y:a}=t.internals.positionAbsolute,u=ke(e),d=Et(e,n),l=Je(e.extent)?Ve(d,e.extent,u):d;let c=Ve({x:o+l.x,y:a+l.y},r,u);e.extent==="parent"&&(c=ta(c,u,t));const f=ha(e,i,s),h=t.internals.z??0;return{x:c.x,y:c.y,z:h>=f?h+1:f}}function ni(e,t,n,r=[0,0]){var o;const i=[],s=new Map;for(const a of e){const u=t.get(a.parentId);if(!u)continue;const d=((o=s.get(a.parentId))==null?void 0:o.expandedRect)??Qe(u),l=ra(d,a.rect);s.set(a.parentId,{expandedRect:l,parent:u})}return s.size>0&&s.forEach(({expandedRect:a,parent:u},d)=>{var g;const l=u.internals.positionAbsolute,c=ke(u),f=u.origin??r,h=a.x<l.x?Math.round(Math.abs(l.x-a.x)):0,p=a.y<l.y?Math.round(Math.abs(l.y-a.y)):0,x=Math.max(c.width,Math.round(a.width)),m=Math.max(c.height,Math.round(a.height)),y=(x-c.width)*f[0],v=(m-c.height)*f[1];(h>0||p>0||y||v)&&(i.push({id:d,type:"position",position:{x:u.position.x-h+y,y:u.position.y-p+v}}),(g=n.get(d))==null||g.forEach(w=>{e.some(k=>k.id===w.id)||i.push({id:w.id,type:"position",position:{x:w.position.x+h,y:w.position.y+p}})})),(c.width<a.width||c.height<a.height||h||p)&&i.push({id:d,type:"dimensions",setAttributes:!0,dimensions:{width:x+(h?f[0]*h-y:0),height:m+(p?f[1]*p-v:0)}})}),i}function Sh(e,t,n,r,i,s,o){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let u=!1;if(!a)return{changes:[],updatedInternals:u};const d=[],l=window.getComputedStyle(a),{m22:c}=new window.DOMMatrixReadOnly(l.transform),f=[];for(const h of e.values()){const p=t.get(h.id);if(!p)continue;if(p.hidden){t.set(p.id,{...p,internals:{...p.internals,handleBounds:void 0}}),u=!0;continue}const x=Kr(h.nodeElement),m=p.measured.width!==x.width||p.measured.height!==x.height;if(!!(x.width&&x.height&&(m||!p.internals.handleBounds||h.force))){const v=h.nodeElement.getBoundingClientRect(),g=Je(p.extent)?p.extent:s;let{positionAbsolute:w}=p.internals;p.parentId&&p.extent==="parent"?w=ta(w,x,t.get(p.parentId)):g&&(w=Ve(w,g,x));const k={...p,measured:x,internals:{...p.internals,positionAbsolute:w,handleBounds:{source:$i("source",h.nodeElement,v,c,p.id),target:$i("target",h.nodeElement,v,c,p.id)}}};t.set(p.id,k),p.parentId&&ti(k,t,n,{nodeOrigin:i,zIndexMode:o}),u=!0,m&&(d.push({id:p.id,type:"dimensions",dimensions:x}),p.expandParent&&p.parentId&&f.push({id:p.id,parentId:p.parentId,rect:Qe(k,i)}))}}if(f.length>0){const h=ni(f,t,n,i);d.push(...h)}return{changes:d,updatedInternals:u}}async function kh({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:s}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,s]],r),a=!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2]);return Promise.resolve(a)}function Fi(e,t,n,r,i,s){let o=i;const a=r.get(o)||new Map;r.set(o,a.set(n,t)),o=`${i}-${e}`;const u=r.get(o)||new Map;if(r.set(o,u.set(n,t)),s){o=`${i}-${e}-${s}`;const d=r.get(o)||new Map;r.set(o,d.set(n,t))}}function pa(e,t,n){e.clear(),t.clear();for(const r of n){const{source:i,target:s,sourceHandle:o=null,targetHandle:a=null}=r,u={edgeId:r.id,source:i,target:s,sourceHandle:o,targetHandle:a},d=`${i}-${o}--${s}-${a}`,l=`${s}-${a}--${i}-${o}`;Fi("source",u,l,e,i,o),Fi("target",u,d,e,s,a),t.set(r.id,r)}}function ga(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:ga(n,t):!1}function Bi(e,t,n){var i;let r=e;do{if((i=r==null?void 0:r.matches)!=null&&i.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Ch(e,t,n,r){const i=new Map;for(const[s,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!ga(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(s);a&&i.set(s,{id:s,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return i}function _n({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,u;const i=[];for(const[d,l]of t){const c=(o=n.get(d))==null?void 0:o.internals.userNode;c&&i.push({...c,position:l.position,dragging:r})}if(!e)return[i[0],i];const s=(a=n.get(e))==null?void 0:a.internals.userNode;return[s?{...s,position:((u=t.get(e))==null?void 0:u.position)||s.position,dragging:r}:i[0],i]}function Mh({dragItems:e,snapGrid:t,x:n,y:r}){const i=e.values().next().value;if(!i)return null;const s={x:n-i.distance.x,y:r-i.distance.y},o=St(s,t);return{x:o.x-s.x,y:o.y-s.y}}function Ih({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let s={x:null,y:null},o=0,a=new Map,u=!1,d={x:0,y:0},l=null,c=!1,f=null,h=!1,p=!1,x=null;function m({noDragClassName:v,handleSelector:g,domNode:w,isSelectable:k,nodeId:_,nodeClickDistance:M=0}){f=le(w);function b({x:C,y:j}){const{nodeLookup:E,nodeExtent:L,snapGrid:P,snapToGrid:D,nodeOrigin:O,onNodeDrag:R,onSelectionDrag:H,onError:q,updateNodePositions:F}=t();s={x:C,y:j};let T=!1;const $=a.size>1,z=$&&L?Pr(Nt(a)):null,B=$&&D?Mh({dragItems:a,snapGrid:P,x:C,y:j}):null;for(const[G,Y]of a){if(!E.has(G))continue;let W={x:C-Y.distance.x,y:j-Y.distance.y};D&&(W=B?{x:Math.round(W.x+B.x),y:Math.round(W.y+B.y)}:St(W,P));let Z=null;if($&&L&&!Y.extent&&z){const{positionAbsolute:X}=Y.internals,J=X.x-z.x+L[0][0],ne=X.x+Y.measured.width-z.x2+L[1][0],ee=X.y-z.y+L[0][1],ce=X.y+Y.measured.height-z.y2+L[1][1];Z=[[J,ee],[ne,ce]]}const{position:Q,positionAbsolute:U}=ea({nodeId:G,nextPosition:W,nodeLookup:E,nodeExtent:Z||L,nodeOrigin:O,onError:q});T=T||Y.position.x!==Q.x||Y.position.y!==Q.y,Y.position=Q,Y.internals.positionAbsolute=U}if(p=p||T,!!T&&(F(a,!0),x&&(r||R||!_&&H))){const[G,Y]=_n({nodeId:_,dragItems:a,nodeLookup:E});r==null||r(x,a,G,Y),R==null||R(x,G,Y),_||H==null||H(x,Y)}}async function N(){if(!l)return;const{transform:C,panBy:j,autoPanSpeed:E,autoPanOnNodeDrag:L}=t();if(!L){u=!1,cancelAnimationFrame(o);return}const[P,D]=na(d,l,E);(P!==0||D!==0)&&(s.x=(s.x??0)-P/C[2],s.y=(s.y??0)-D/C[2],await j({x:P,y:D})&&b(s)),o=requestAnimationFrame(N)}function I(C){var $;const{nodeLookup:j,multiSelectionActive:E,nodesDraggable:L,transform:P,snapGrid:D,snapToGrid:O,selectNodesOnDrag:R,onNodeDragStart:H,onSelectionDragStart:q,unselectNodesAndEdges:F}=t();c=!0,(!R||!k)&&!E&&_&&(($=j.get(_))!=null&&$.selected||F()),k&&R&&_&&(e==null||e(_));const T=dt(C.sourceEvent,{transform:P,snapGrid:D,snapToGrid:O,containerBounds:l});if(s=T,a=Ch(j,L,T,_),a.size>0&&(n||H||!_&&q)){const[z,B]=_n({nodeId:_,dragItems:a,nodeLookup:j});n==null||n(C.sourceEvent,a,z,B),H==null||H(C.sourceEvent,z,B),_||q==null||q(C.sourceEvent,B)}}const S=Ls().clickDistance(M).on("start",C=>{const{domNode:j,nodeDragThreshold:E,transform:L,snapGrid:P,snapToGrid:D}=t();l=(j==null?void 0:j.getBoundingClientRect())||null,h=!1,p=!1,x=C.sourceEvent,E===0&&I(C),s=dt(C.sourceEvent,{transform:L,snapGrid:P,snapToGrid:D,containerBounds:l}),d=ge(C.sourceEvent,l)}).on("drag",C=>{const{autoPanOnNodeDrag:j,transform:E,snapGrid:L,snapToGrid:P,nodeDragThreshold:D,nodeLookup:O}=t(),R=dt(C.sourceEvent,{transform:E,snapGrid:L,snapToGrid:P,containerBounds:l});if(x=C.sourceEvent,(C.sourceEvent.type==="touchmove"&&C.sourceEvent.touches.length>1||_&&!O.has(_))&&(h=!0),!h){if(!u&&j&&c&&(u=!0,N()),!c){const H=ge(C.sourceEvent,l),q=H.x-d.x,F=H.y-d.y;Math.sqrt(q*q+F*F)>D&&I(C)}(s.x!==R.xSnapped||s.y!==R.ySnapped)&&a&&c&&(d=ge(C.sourceEvent,l),b(R))}}).on("end",C=>{if(!(!c||h)&&(u=!1,c=!1,cancelAnimationFrame(o),a.size>0)){const{nodeLookup:j,updateNodePositions:E,onNodeDragStop:L,onSelectionDragStop:P}=t();if(p&&(E(a,!1),p=!1),i||L||!_&&P){const[D,O]=_n({nodeId:_,dragItems:a,nodeLookup:j,dragging:!1});i==null||i(C.sourceEvent,a,D,O),L==null||L(C.sourceEvent,D,O),_||P==null||P(C.sourceEvent,O)}}}).filter(C=>{const j=C.target;return!C.button&&(!v||!Bi(j,`.${v}`,w))&&(!g||Bi(j,g,w))});f.call(S)}function y(){f==null||f.on(".drag",null)}return{update:m,destroy:y}}function Ah(e,t,n){const r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())xt(i,Qe(s))>0&&r.push(s);return r}const Th=250;function Ph(e,t,n,r){var a,u;let i=[],s=1/0;const o=Ah(e,n,t+Th);for(const d of o){const l=[...((a=d.internals.handleBounds)==null?void 0:a.source)??[],...((u=d.internals.handleBounds)==null?void 0:u.target)??[]];for(const c of l){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:f,y:h}=He(d,c,c.position,!0),p=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(h-e.y,2));p>t||(p<s?(i=[{...c,x:f,y:h}],s=p):p===s&&i.push({...c,x:f,y:h}))}}if(!i.length)return null;if(i.length>1){const d=r.type==="source"?"target":"source";return i.find(l=>l.type===d)??i[0]}return i[0]}function ma(e,t,n,r,i,s=!1){var d,l,c;const o=r.get(e);if(!o)return null;const a=i==="strict"?(d=o.internals.handleBounds)==null?void 0:d[t]:[...((l=o.internals.handleBounds)==null?void 0:l.source)??[],...((c=o.internals.handleBounds)==null?void 0:c.target)??[]],u=(n?a==null?void 0:a.find(f=>f.id===n):a==null?void 0:a[0])??null;return u&&s?{...u,...He(o,u,u.position,!0)}:u}function ya(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Lh(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const xa=()=>!0;function Rh(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:s,isTarget:o,domNode:a,nodeLookup:u,lib:d,autoPanOnConnect:l,flowId:c,panBy:f,cancelConnection:h,onConnectStart:p,onConnect:x,onConnectEnd:m,isValidConnection:y=xa,onReconnectEnd:v,updateConnection:g,getTransform:w,getFromHandle:k,autoPanSpeed:_,dragThreshold:M=1,handleDomNode:b}){const N=sa(e.target);let I=0,S;const{x:C,y:j}=ge(e),E=ya(s,b),L=a==null?void 0:a.getBoundingClientRect();let P=!1;if(!L||!E)return;const D=ma(i,E,r,u,t);if(!D)return;let O=ge(e,L),R=!1,H=null,q=!1,F=null;function T(){if(!l||!L)return;const[Q,U]=na(O,L,_);f({x:Q,y:U}),I=requestAnimationFrame(T)}const $={...D,nodeId:i,type:E,position:D.position},z=u.get(i);let G={inProgress:!0,isValid:null,from:He(z,$,K.Left,!0),fromHandle:$,fromPosition:$.position,fromNode:z,to:O,toHandle:null,toPosition:Ti[$.position],toNode:null,pointer:O};function Y(){P=!0,g(G),p==null||p(e,{nodeId:i,handleId:r,handleType:E})}M===0&&Y();function W(Q){if(!P){const{x:ce,y:Ce}=ge(Q),_e=ce-C,Pe=Ce-j;if(!(_e*_e+Pe*Pe>M*M))return;Y()}if(!k()||!$){Z(Q);return}const U=w();O=ge(Q,L),S=Ph(kt(O,U,!1,[1,1]),n,u,$),R||(T(),R=!0);const X=wa(Q,{handle:S,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?"target":"source",isValidConnection:y,doc:N,lib:d,flowId:c,nodeLookup:u});F=X.handleDomNode,H=X.connection,q=Lh(!!S,X.isValid);const J=u.get(i),ne=J?He(J,$,K.Left,!0):G.from,ee={...G,from:ne,isValid:q,to:X.toHandle&&q?en({x:X.toHandle.x,y:X.toHandle.y},U):O,toHandle:X.toHandle,toPosition:q&&X.toHandle?X.toHandle.position:Ti[$.position],toNode:X.toHandle?u.get(X.toHandle.nodeId):null,pointer:O};g(ee),G=ee}function Z(Q){if(!("touches"in Q&&Q.touches.length>0)){if(P){(S||F)&&H&&q&&(x==null||x(H));const{inProgress:U,...X}=G,J={...X,toPosition:G.toHandle?G.toPosition:null};m==null||m(Q,J),s&&(v==null||v(Q,J))}h(),cancelAnimationFrame(I),R=!1,q=!1,H=null,F=null,N.removeEventListener("mousemove",W),N.removeEventListener("mouseup",Z),N.removeEventListener("touchmove",W),N.removeEventListener("touchend",Z)}}N.addEventListener("mousemove",W),N.addEventListener("mouseup",Z),N.addEventListener("touchmove",W),N.addEventListener("touchend",Z)}function wa(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:s,doc:o,lib:a,flowId:u,isValidConnection:d=xa,nodeLookup:l}){const c=s==="target",f=t?o.querySelector(`.${a}-flow__handle[data-id="${u}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:h,y:p}=ge(e),x=o.elementFromPoint(h,p),m=x!=null&&x.classList.contains(`${a}-flow__handle`)?x:f,y={handleDomNode:m,isValid:!1,connection:null,toHandle:null};if(m){const v=ya(void 0,m),g=m.getAttribute("data-nodeid"),w=m.getAttribute("data-handleid"),k=m.classList.contains("connectable"),_=m.classList.contains("connectableend");if(!g||!v)return y;const M={source:c?g:r,sourceHandle:c?w:i,target:c?r:g,targetHandle:c?i:w};y.connection=M;const N=k&&_&&(n===Ke.Strict?c&&v==="source"||!c&&v==="target":g!==r||w!==i);y.isValid=N&&d(M),y.toHandle=ma(g,v,w,l,n,!0)}return y}const Or={onPointerDown:Rh,isValid:wa};function $h({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const i=le(e);function s({translateExtent:a,width:u,height:d,zoomStep:l=1,pannable:c=!0,zoomable:f=!0,inversePan:h=!1}){const p=g=>{if(g.sourceEvent.type!=="wheel"||!t)return;const w=n(),k=g.sourceEvent.ctrlKey&&wt()?10:1,_=-g.sourceEvent.deltaY*(g.sourceEvent.deltaMode===1?.05:g.sourceEvent.deltaMode?1:.002)*l,M=w[2]*Math.pow(2,_*k);t.scaleTo(M)};let x=[0,0];const m=g=>{(g.sourceEvent.type==="mousedown"||g.sourceEvent.type==="touchstart")&&(x=[g.sourceEvent.clientX??g.sourceEvent.touches[0].clientX,g.sourceEvent.clientY??g.sourceEvent.touches[0].clientY])},y=g=>{const w=n();if(g.sourceEvent.type!=="mousemove"&&g.sourceEvent.type!=="touchmove"||!t)return;const k=[g.sourceEvent.clientX??g.sourceEvent.touches[0].clientX,g.sourceEvent.clientY??g.sourceEvent.touches[0].clientY],_=[k[0]-x[0],k[1]-x[1]];x=k;const M=r()*Math.max(w[2],Math.log(w[2]))*(h?-1:1),b={x:w[0]-_[0]*M,y:w[1]-_[1]*M},N=[[0,0],[u,d]];t.setViewportConstrained({x:b.x,y:b.y,zoom:w[2]},N,a)},v=Xs().on("start",m).on("zoom",c?y:null).on("zoom.wheel",f?p:null);i.call(v,{})}function o(){i.on("zoom",null)}return{update:s,destroy:o,pointer:fe}}const dn=e=>({x:e.x,y:e.y,zoom:e.k}),En=({x:e,y:t,zoom:n})=>cn.translate(e,t).scale(n),qe=(e,t)=>e.target.closest(`.${t}`),va=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Oh=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Nn=(e,t=0,n=Oh,r=()=>{})=>{const i=typeof t=="number"&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},ba=e=>{const t=e.ctrlKey&&wt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function jh({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:s,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:u,onPanZoomEnd:d}){return l=>{if(qe(l,t))return l.ctrlKey&&l.preventDefault(),!1;l.preventDefault(),l.stopImmediatePropagation();const c=n.property("__zoom").k||1;if(l.ctrlKey&&o){const m=fe(l),y=ba(l),v=c*Math.pow(2,y);r.scaleTo(n,v,m,l);return}const f=l.deltaMode===1?20:1;let h=i===je.Vertical?0:l.deltaX*f,p=i===je.Horizontal?0:l.deltaY*f;!wt()&&l.shiftKey&&i!==je.Vertical&&(h=l.deltaY*f,p=0),r.translateBy(n,-(h/c)*s,-(p/c)*s,{internal:!0});const x=dn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(u==null||u(l,x),e.panScrollTimeout=setTimeout(()=>{d==null||d(l,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(l,x))}}function Dh({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){const s=r.type==="wheel",o=!t&&s&&!r.ctrlKey,a=qe(r,e);if(r.ctrlKey&&s&&a&&r.preventDefault(),o||a)return null;r.preventDefault(),n.call(this,r,i)}}function zh({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var s,o,a;if((s=r.sourceEvent)!=null&&s.internal)return;const i=dn(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=i,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,i))}}function Vh({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return s=>{var o,a;e.usedRightMouseButton=!!(n&&va(t,e.mouseButton??0)),(o=s.sourceEvent)!=null&&o.sync||r([s.transform.x,s.transform.y,s.transform.k]),i&&!((a=s.sourceEvent)!=null&&a.internal)&&(i==null||i(s.sourceEvent,dn(s.transform)))}}function Hh({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:s}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,s&&va(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&s(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){const u=dn(o.transform);e.prevViewport=u,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i==null||i(o.sourceEvent,u)},n?150:0)}}}function Fh({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:o,noWheelClassName:a,noPanClassName:u,lib:d,connectionInProgress:l}){return c=>{var m;const f=e||t,h=n&&c.ctrlKey,p=c.type==="wheel";if(c.button===1&&c.type==="mousedown"&&(qe(c,`${d}-flow__node`)||qe(c,`${d}-flow__edge`)))return!0;if(!r&&!f&&!i&&!s&&!n||o||l&&!p||qe(c,a)&&p||qe(c,u)&&(!p||i&&p&&!e)||!n&&c.ctrlKey&&p)return!1;if(!n&&c.type==="touchstart"&&((m=c.touches)==null?void 0:m.length)>1)return c.preventDefault(),!1;if(!f&&!i&&!h&&p||!r&&(c.type==="mousedown"||c.type==="touchstart")||Array.isArray(r)&&!r.includes(c.button)&&c.type==="mousedown")return!1;const x=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||p)&&x}}function Bh({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:o,onPanZoomEnd:a,onDraggingChange:u}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},l=e.getBoundingClientRect(),c=Xs().scaleExtent([t,n]).translateExtent(r),f=le(e).call(c);v({x:i.x,y:i.y,zoom:Ze(i.zoom,t,n)},[[0,0],[l.width,l.height]],r);const h=f.on("wheel.zoom"),p=f.on("dblclick.zoom");c.wheelDelta(ba);function x(S,C){return f?new Promise(j=>{c==null||c.interpolate((C==null?void 0:C.interpolate)==="linear"?lt:Vt).transform(Nn(f,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>j(!0)),S)}):Promise.resolve(!1)}function m({noWheelClassName:S,noPanClassName:C,onPaneContextMenu:j,userSelectionActive:E,panOnScroll:L,panOnDrag:P,panOnScrollMode:D,panOnScrollSpeed:O,preventScrolling:R,zoomOnPinch:H,zoomOnScroll:q,zoomOnDoubleClick:F,zoomActivationKeyPressed:T,lib:$,onTransformChange:z,connectionInProgress:B,paneClickDistance:G,selectionOnDrag:Y}){E&&!d.isZoomingOrPanning&&y();const W=L&&!T&&!E;c.clickDistance(Y?1/0:!pe(G)||G<0?0:G);const Z=W?jh({zoomPanValues:d,noWheelClassName:S,d3Selection:f,d3Zoom:c,panOnScrollMode:D,panOnScrollSpeed:O,zoomOnPinch:H,onPanZoomStart:o,onPanZoom:s,onPanZoomEnd:a}):Dh({noWheelClassName:S,preventScrolling:R,d3ZoomHandler:h});if(f.on("wheel.zoom",Z,{passive:!1}),!E){const U=zh({zoomPanValues:d,onDraggingChange:u,onPanZoomStart:o});c.on("start",U);const X=Vh({zoomPanValues:d,panOnDrag:P,onPaneContextMenu:!!j,onPanZoom:s,onTransformChange:z});c.on("zoom",X);const J=Hh({zoomPanValues:d,panOnDrag:P,panOnScroll:L,onPaneContextMenu:j,onPanZoomEnd:a,onDraggingChange:u});c.on("end",J)}const Q=Fh({zoomActivationKeyPressed:T,panOnDrag:P,zoomOnScroll:q,panOnScroll:L,zoomOnDoubleClick:F,zoomOnPinch:H,userSelectionActive:E,noPanClassName:C,noWheelClassName:S,lib:$,connectionInProgress:B});c.filter(Q),F?f.on("dblclick.zoom",p):f.on("dblclick.zoom",null)}function y(){c.on("zoom",null)}async function v(S,C,j){const E=En(S),L=c==null?void 0:c.constrain()(E,C,j);return L&&await x(L),new Promise(P=>P(L))}async function g(S,C){const j=En(S);return await x(j,C),new Promise(E=>E(j))}function w(S){if(f){const C=En(S),j=f.property("__zoom");(j.k!==S.zoom||j.x!==S.x||j.y!==S.y)&&(c==null||c.transform(f,C,null,{sync:!0}))}}function k(){const S=f?Ws(f.node()):{x:0,y:0,k:1};return{x:S.x,y:S.y,zoom:S.k}}function _(S,C){return f?new Promise(j=>{c==null||c.interpolate((C==null?void 0:C.interpolate)==="linear"?lt:Vt).scaleTo(Nn(f,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>j(!0)),S)}):Promise.resolve(!1)}function M(S,C){return f?new Promise(j=>{c==null||c.interpolate((C==null?void 0:C.interpolate)==="linear"?lt:Vt).scaleBy(Nn(f,C==null?void 0:C.duration,C==null?void 0:C.ease,()=>j(!0)),S)}):Promise.resolve(!1)}function b(S){c==null||c.scaleExtent(S)}function N(S){c==null||c.translateExtent(S)}function I(S){const C=!pe(S)||S<0?0:S;c==null||c.clickDistance(C)}return{update:m,destroy:y,setViewport:g,setViewportConstrained:v,getViewport:k,scaleTo:_,scaleBy:M,setScaleExtent:b,setTranslateExtent:N,syncViewport:w,setClickDistance:I}}var et;(function(e){e.Line="line",e.Handle="handle"})(et||(et={}));function qh({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:s}){const o=e-t,a=n-r,u=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&i&&(u[0]=u[0]*-1),a&&s&&(u[1]=u[1]*-1),u}function qi(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),i=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:i}}function Me(e,t){return Math.max(0,t-e)}function Ie(e,t){return Math.max(0,e-t)}function Ot(e,t,n){return Math.max(0,t-e,e-n)}function Yi(e,t){return e?!t:t}function Yh(e,t,n,r,i,s,o,a){let{affectsX:u,affectsY:d}=t;const{isHorizontal:l,isVertical:c}=t,f=l&&c,{xSnapped:h,ySnapped:p}=n,{minWidth:x,maxWidth:m,minHeight:y,maxHeight:v}=r,{x:g,y:w,width:k,height:_,aspectRatio:M}=e;let b=Math.floor(l?h-e.pointerX:0),N=Math.floor(c?p-e.pointerY:0);const I=k+(u?-b:b),S=_+(d?-N:N),C=-s[0]*k,j=-s[1]*_;let E=Ot(I,x,m),L=Ot(S,y,v);if(o){let O=0,R=0;u&&b<0?O=Me(g+b+C,o[0][0]):!u&&b>0&&(O=Ie(g+I+C,o[1][0])),d&&N<0?R=Me(w+N+j,o[0][1]):!d&&N>0&&(R=Ie(w+S+j,o[1][1])),E=Math.max(E,O),L=Math.max(L,R)}if(a){let O=0,R=0;u&&b>0?O=Ie(g+b,a[0][0]):!u&&b<0&&(O=Me(g+I,a[1][0])),d&&N>0?R=Ie(w+N,a[0][1]):!d&&N<0&&(R=Me(w+S,a[1][1])),E=Math.max(E,O),L=Math.max(L,R)}if(i){if(l){const O=Ot(I/M,y,v)*M;if(E=Math.max(E,O),o){let R=0;!u&&!d||u&&!d&&f?R=Ie(w+j+I/M,o[1][1])*M:R=Me(w+j+(u?b:-b)/M,o[0][1])*M,E=Math.max(E,R)}if(a){let R=0;!u&&!d||u&&!d&&f?R=Me(w+I/M,a[1][1])*M:R=Ie(w+(u?b:-b)/M,a[0][1])*M,E=Math.max(E,R)}}if(c){const O=Ot(S*M,x,m)/M;if(L=Math.max(L,O),o){let R=0;!u&&!d||d&&!u&&f?R=Ie(g+S*M+C,o[1][0])/M:R=Me(g+(d?N:-N)*M+C,o[0][0])/M,L=Math.max(L,R)}if(a){let R=0;!u&&!d||d&&!u&&f?R=Me(g+S*M,a[1][0])/M:R=Ie(g+(d?N:-N)*M,a[0][0])/M,L=Math.max(L,R)}}}N=N+(N<0?L:-L),b=b+(b<0?E:-E),i&&(f?I>S*M?N=(Yi(u,d)?-b:b)/M:b=(Yi(u,d)?-N:N)*M:l?(N=b/M,d=u):(b=N*M,u=d));const P=u?g+b:g,D=d?w+N:w;return{width:k+(u?-b:b),height:_+(d?-N:N),x:s[0]*b*(u?-1:1)+P,y:s[1]*N*(d?-1:1)+D}}const _a={width:0,height:0,x:0,y:0},Gh={..._a,pointerX:0,pointerY:0,aspectRatio:1};function Wh(e){return[[0,0],[e.measured.width,e.measured.height]]}function Xh(e,t,n){const r=t.position.x+e.position.x,i=t.position.y+e.position.y,s=e.measured.width??0,o=e.measured.height??0,a=n[0]*s,u=n[1]*o;return[[r-a,i-u],[r+s-a,i+o-u]]}function Uh({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){const s=le(e);let o={controlDirection:qi("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:d,boundaries:l,keepAspectRatio:c,resizeDirection:f,onResizeStart:h,onResize:p,onResizeEnd:x,shouldResize:m}){let y={..._a},v={...Gh};o={boundaries:l,resizeDirection:f,keepAspectRatio:c,controlDirection:qi(d)};let g,w=null,k=[],_,M,b,N=!1;const I=Ls().on("start",S=>{const{nodeLookup:C,transform:j,snapGrid:E,snapToGrid:L,nodeOrigin:P,paneDomNode:D}=n();if(g=C.get(t),!g)return;w=(D==null?void 0:D.getBoundingClientRect())??null;const{xSnapped:O,ySnapped:R}=dt(S.sourceEvent,{transform:j,snapGrid:E,snapToGrid:L,containerBounds:w});y={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},v={...y,pointerX:O,pointerY:R,aspectRatio:y.width/y.height},_=void 0,g.parentId&&(g.extent==="parent"||g.expandParent)&&(_=C.get(g.parentId),M=_&&g.extent==="parent"?Wh(_):void 0),k=[],b=void 0;for(const[H,q]of C)if(q.parentId===t&&(k.push({id:H,position:{...q.position},extent:q.extent}),q.extent==="parent"||q.expandParent)){const F=Xh(q,g,q.origin??P);b?b=[[Math.min(F[0][0],b[0][0]),Math.min(F[0][1],b[0][1])],[Math.max(F[1][0],b[1][0]),Math.max(F[1][1],b[1][1])]]:b=F}h==null||h(S,{...y})}).on("drag",S=>{const{transform:C,snapGrid:j,snapToGrid:E,nodeOrigin:L}=n(),P=dt(S.sourceEvent,{transform:C,snapGrid:j,snapToGrid:E,containerBounds:w}),D=[];if(!g)return;const{x:O,y:R,width:H,height:q}=y,F={},T=g.origin??L,{width:$,height:z,x:B,y:G}=Yh(v,o.controlDirection,P,o.boundaries,o.keepAspectRatio,T,M,b),Y=$!==H,W=z!==q,Z=B!==O&&Y,Q=G!==R&&W;if(!Z&&!Q&&!Y&&!W)return;if((Z||Q||T[0]===1||T[1]===1)&&(F.x=Z?B:y.x,F.y=Q?G:y.y,y.x=F.x,y.y=F.y,k.length>0)){const ne=B-O,ee=G-R;for(const ce of k)ce.position={x:ce.position.x-ne+T[0]*($-H),y:ce.position.y-ee+T[1]*(z-q)},D.push(ce)}if((Y||W)&&(F.width=Y&&(!o.resizeDirection||o.resizeDirection==="horizontal")?$:y.width,F.height=W&&(!o.resizeDirection||o.resizeDirection==="vertical")?z:y.height,y.width=F.width,y.height=F.height),_&&g.expandParent){const ne=T[0]*(F.width??0);F.x&&F.x<ne&&(y.x=ne,v.x=v.x-(F.x-ne));const ee=T[1]*(F.height??0);F.y&&F.y<ee&&(y.y=ee,v.y=v.y-(F.y-ee))}const U=qh({width:y.width,prevWidth:H,height:y.height,prevHeight:q,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),X={...y,direction:U};(m==null?void 0:m(S,X))!==!1&&(N=!0,p==null||p(S,X),r(F,D))}).on("end",S=>{N&&(x==null||x(S,{...y}),i==null||i({...y}),N=!1)});s.call(I)}function u(){s.on(".drag",null)}return{update:a,destroy:u}}var Sn={exports:{}},kn={},Cn={exports:{}},Mn={};/**
2
+ * @license React
3
+ * use-sync-external-store-shim.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var Gi;function Kh(){if(Gi)return Mn;Gi=1;var e=ms();function t(c,f){return c===f&&(c!==0||1/c===1/f)||c!==c&&f!==f}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,i=e.useEffect,s=e.useLayoutEffect,o=e.useDebugValue;function a(c,f){var h=f(),p=r({inst:{value:h,getSnapshot:f}}),x=p[0].inst,m=p[1];return s(function(){x.value=h,x.getSnapshot=f,u(x)&&m({inst:x})},[c,h,f]),i(function(){return u(x)&&m({inst:x}),c(function(){u(x)&&m({inst:x})})},[c]),o(h),h}function u(c){var f=c.getSnapshot;c=c.value;try{var h=f();return!n(c,h)}catch{return!0}}function d(c,f){return f()}var l=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?d:a;return Mn.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:l,Mn}var Wi;function Zh(){return Wi||(Wi=1,Cn.exports=Kh()),Cn.exports}/**
10
+ * @license React
11
+ * use-sync-external-store-shim/with-selector.production.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Xi;function Qh(){if(Xi)return kn;Xi=1;var e=ms(),t=Zh();function n(d,l){return d===l&&(d!==0||1/d===1/l)||d!==d&&l!==l}var r=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,s=e.useRef,o=e.useEffect,a=e.useMemo,u=e.useDebugValue;return kn.useSyncExternalStoreWithSelector=function(d,l,c,f,h){var p=s(null);if(p.current===null){var x={hasValue:!1,value:null};p.current=x}else x=p.current;p=a(function(){function y(_){if(!v){if(v=!0,g=_,_=f(_),h!==void 0&&x.hasValue){var M=x.value;if(h(M,_))return w=M}return w=_}if(M=w,r(g,_))return M;var b=f(_);return h!==void 0&&h(M,b)?(g=_,M):(g=_,w=b)}var v=!1,g,w,k=c===void 0?null:c;return[function(){return y(l())},k===null?void 0:function(){return y(k())}]},[l,c,f,h]);var m=i(d,p[0],p[1]);return o(function(){x.hasValue=!0,x.value=m},[m]),u(m),m},kn}var Ui;function Jh(){return Ui||(Ui=1,Sn.exports=Qh()),Sn.exports}var ep=Jh();const tp=ys(ep),np={},Ki=e=>{let t;const n=new Set,r=(l,c)=>{const f=typeof l=="function"?l(t):l;if(!Object.is(f,t)){const h=t;t=c??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(p=>p(t,h))}},i=()=>t,u={setState:r,getState:i,getInitialState:()=>d,subscribe:l=>(n.add(l),()=>n.delete(l)),destroy:()=>{(np?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},d=t=e(r,i,u);return u},rp=e=>e?Ki(e):Ki,{useDebugValue:ip}=gu,{useSyncExternalStoreWithSelector:op}=tp,sp=e=>e;function Ea(e,t=sp,n){const r=op(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ip(r),r}const Zi=(e,t)=>{const n=rp(e),r=(i,s=t)=>Ea(n,i,s);return Object.assign(r,n),r},ap=(e,t)=>e?Zi(e,t):Zi;function re(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,i]of e)if(!Object.is(i,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var cp=mu();const fn=V.createContext(null),up=fn.Provider,Na=ve.error001();function te(e,t){const n=V.useContext(fn);if(n===null)throw new Error(Na);return Ea(n,e,t)}function ie(){const e=V.useContext(fn);if(e===null)throw new Error(Na);return V.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Qi={display:"none"},lp={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Sa="react-flow__node-desc",ka="react-flow__edge-desc",dp="react-flow__aria-live",fp=e=>e.ariaLiveMessage,hp=e=>e.ariaLabelConfig;function pp({rfId:e}){const t=te(fp);return A.jsx("div",{id:`${dp}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:lp,children:t})}function gp({rfId:e,disableKeyboardA11y:t}){const n=te(hp);return A.jsxs(A.Fragment,{children:[A.jsx("div",{id:`${Sa}-${e}`,style:Qi,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),A.jsx("div",{id:`${ka}-${e}`,style:Qi,children:n["edge.a11yDescription.default"]}),!t&&A.jsx(pp,{rfId:e})]})}const hn=V.forwardRef(({position:e="top-left",children:t,className:n,style:r,...i},s)=>{const o=`${e}`.split("-");return A.jsx("div",{className:ae(["react-flow__panel",n,...o]),style:r,ref:s,...i,children:t})});hn.displayName="Panel";function mp({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:A.jsx(hn,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:A.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const yp=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},jt=e=>e.id;function xp(e,t){return re(e.selectedNodes.map(jt),t.selectedNodes.map(jt))&&re(e.selectedEdges.map(jt),t.selectedEdges.map(jt))}function wp({onSelectionChange:e}){const t=ie(),{selectedNodes:n,selectedEdges:r}=te(yp,xp);return V.useEffect(()=>{const i={nodes:n,edges:r};e==null||e(i),t.getState().onSelectionChangeHandlers.forEach(s=>s(i))},[n,r,e]),null}const vp=e=>!!e.onSelectionChangeHandlers;function bp({onSelectionChange:e}){const t=te(vp);return e||t?A.jsx(wp,{onSelectionChange:e}):null}const Ca=[0,0],_p={x:0,y:0,zoom:1},Ep=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Ji=[...Ep,"rfId"],Np=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),eo={translateExtent:mt,nodeOrigin:Ca,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Sp(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:s,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:u}=te(Np,re),d=ie();V.useEffect(()=>(u(e.defaultNodes,e.defaultEdges),()=>{l.current=eo,a()}),[]);const l=V.useRef(eo);return V.useEffect(()=>{for(const c of Ji){const f=e[c],h=l.current[c];f!==h&&(typeof e[c]>"u"||(c==="nodes"?t(f):c==="edges"?n(f):c==="minZoom"?r(f):c==="maxZoom"?i(f):c==="translateExtent"?s(f):c==="nodeExtent"?o(f):c==="ariaLabelConfig"?d.setState({ariaLabelConfig:ah(f)}):c==="fitView"?d.setState({fitViewQueued:f}):c==="fitViewOptions"?d.setState({fitViewOptions:f}):d.setState({[c]:f})))}l.current=e},Ji.map(c=>e[c])),null}function to(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function kp(e){var r;const[t,n]=V.useState(e==="system"?null:e);return V.useEffect(()=>{if(e!=="system"){n(e);return}const i=to(),s=()=>n(i!=null&&i.matches?"dark":"light");return s(),i==null||i.addEventListener("change",s),()=>{i==null||i.removeEventListener("change",s)}},[e]),t!==null?t:(r=to())!=null&&r.matches?"dark":"light"}const no=typeof document<"u"?document:null;function vt(e=null,t={target:no,actInsideInputWithModifier:!0}){const[n,r]=V.useState(!1),i=V.useRef(!1),s=V.useRef(new Set([])),[o,a]=V.useMemo(()=>{if(e!==null){const d=(Array.isArray(e)?e:[e]).filter(c=>typeof c=="string").map(c=>c.replace("+",`
18
+ `).replace(`
19
+
20
+ `,`
21
+ +`).split(`
22
+ `)),l=d.reduce((c,f)=>c.concat(...f),[]);return[d,l]}return[[],[]]},[e]);return V.useEffect(()=>{const u=(t==null?void 0:t.target)??no,d=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const l=h=>{var m,y;if(i.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!i.current||i.current&&!d)&&aa(h))return!1;const x=io(h.code,a);if(s.current.add(h[x]),ro(o,s.current,!1)){const v=((y=(m=h.composedPath)==null?void 0:m.call(h))==null?void 0:y[0])||h.target,g=(v==null?void 0:v.nodeName)==="BUTTON"||(v==null?void 0:v.nodeName)==="A";t.preventDefault!==!1&&(i.current||!g)&&h.preventDefault(),r(!0)}},c=h=>{const p=io(h.code,a);ro(o,s.current,!0)?(r(!1),s.current.clear()):s.current.delete(h[p]),h.key==="Meta"&&s.current.clear(),i.current=!1},f=()=>{s.current.clear(),r(!1)};return u==null||u.addEventListener("keydown",l),u==null||u.addEventListener("keyup",c),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{u==null||u.removeEventListener("keydown",l),u==null||u.removeEventListener("keyup",c),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function ro(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(i=>t.has(i)))}function io(e,t){return t.includes(e)?"code":"key"}const Cp=()=>{const e=ie();return V.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,i,s],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??s},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:i,minZoom:s,maxZoom:o,panZoom:a}=e.getState(),u=Ur(t,r,i,s,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(u,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:i,snapToGrid:s,domNode:o}=e.getState();if(!o)return t;const{x:a,y:u}=o.getBoundingClientRect(),d={x:t.x-a,y:t.y-u},l=n.snapGrid??i,c=n.snapToGrid??s;return kt(d,r,c,l)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:i,y:s}=r.getBoundingClientRect(),o=en(t,n);return{x:o.x+i,y:o.y+s}}}),[])};function Ma(e,t){const n=[],r=new Map,i=[];for(const s of e)if(s.type==="add"){i.push(s);continue}else if(s.type==="remove"||s.type==="replace")r.set(s.id,[s]);else{const o=r.get(s.id);o?o.push(s):r.set(s.id,[s])}for(const s of t){const o=r.get(s.id);if(!o){n.push(s);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...s};for(const u of o)Mp(u,a);n.push(a)}return i.length&&i.forEach(s=>{s.index!==void 0?n.splice(s.index,0,{...s.item}):n.push({...s.item})}),n}function Mp(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Ia(e,t){return Ma(e,t)}function Aa(e,t){return Ma(e,t)}function Re(e,t){return{id:e,type:"select",selected:t}}function Ye(e,t=new Set,n=!1){const r=[];for(const[i,s]of e){const o=t.has(i);!(s.selected===void 0&&!o)&&s.selected!==o&&(n&&(s.selected=o),r.push(Re(s.id,o)))}return r}function oo({items:e=[],lookup:t}){var i;const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const a=t.get(o.id),u=((i=a==null?void 0:a.internals)==null?void 0:i.userNode)??a;u!==void 0&&u!==o&&n.push({id:o.id,item:o,type:"replace"}),u===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function so(e){return{id:e.id,type:"remove"}}const ao=e=>Zf(e),Ip=e=>Js(e);function Ta(e){return V.forwardRef(e)}const Ap=typeof window<"u"?V.useLayoutEffect:V.useEffect;function co(e){const[t,n]=V.useState(BigInt(0)),[r]=V.useState(()=>Tp(()=>n(i=>i+BigInt(1))));return Ap(()=>{const i=r.get();i.length&&(e(i),r.reset())},[t]),r}function Tp(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Pa=V.createContext(null);function Pp({children:e}){const t=ie(),n=V.useCallback(a=>{const{nodes:u=[],setNodes:d,hasDefaultNodes:l,onNodesChange:c,nodeLookup:f,fitViewQueued:h,onNodesChangeMiddlewareMap:p}=t.getState();let x=u;for(const y of a)x=typeof y=="function"?y(x):y;let m=oo({items:x,lookup:f});for(const y of p.values())m=y(m);l&&d(x),m.length>0?c==null||c(m):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:y,nodes:v,setNodes:g}=t.getState();y&&g(v)})},[]),r=co(n),i=V.useCallback(a=>{const{edges:u=[],setEdges:d,hasDefaultEdges:l,onEdgesChange:c,edgeLookup:f}=t.getState();let h=u;for(const p of a)h=typeof p=="function"?p(h):p;l?d(h):c&&c(oo({items:h,lookup:f}))},[]),s=co(i),o=V.useMemo(()=>({nodeQueue:r,edgeQueue:s}),[]);return A.jsx(Pa.Provider,{value:o,children:e})}function Lp(){const e=V.useContext(Pa);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Rp=e=>!!e.panZoom;function ri(){const e=Cp(),t=ie(),n=Lp(),r=te(Rp),i=V.useMemo(()=>{const s=c=>t.getState().nodeLookup.get(c),o=c=>{n.nodeQueue.push(c)},a=c=>{n.edgeQueue.push(c)},u=c=>{var y,v;const{nodeLookup:f,nodeOrigin:h}=t.getState(),p=ao(c)?c:f.get(c.id),x=p.parentId?oa(p.position,p.measured,p.parentId,f,h):p.position,m={...p,position:x,width:((y=p.measured)==null?void 0:y.width)??p.width,height:((v=p.measured)==null?void 0:v.height)??p.height};return Qe(m)},d=(c,f,h={replace:!1})=>{o(p=>p.map(x=>{if(x.id===c){const m=typeof f=="function"?f(x):f;return h.replace&&ao(m)?m:{...x,...m}}return x}))},l=(c,f,h={replace:!1})=>{a(p=>p.map(x=>{if(x.id===c){const m=typeof f=="function"?f(x):f;return h.replace&&Ip(m)?m:{...x,...m}}return x}))};return{getNodes:()=>t.getState().nodes.map(c=>({...c})),getNode:c=>{var f;return(f=s(c))==null?void 0:f.internals.userNode},getInternalNode:s,getEdges:()=>{const{edges:c=[]}=t.getState();return c.map(f=>({...f}))},getEdge:c=>t.getState().edgeLookup.get(c),setNodes:o,setEdges:a,addNodes:c=>{const f=Array.isArray(c)?c:[c];n.nodeQueue.push(h=>[...h,...f])},addEdges:c=>{const f=Array.isArray(c)?c:[c];n.edgeQueue.push(h=>[...h,...f])},toObject:()=>{const{nodes:c=[],edges:f=[],transform:h}=t.getState(),[p,x,m]=h;return{nodes:c.map(y=>({...y})),edges:f.map(y=>({...y})),viewport:{x:p,y:x,zoom:m}}},deleteElements:async({nodes:c=[],edges:f=[]})=>{const{nodes:h,edges:p,onNodesDelete:x,onEdgesDelete:m,triggerNodeChanges:y,triggerEdgeChanges:v,onDelete:g,onBeforeDelete:w}=t.getState(),{nodes:k,edges:_}=await nh({nodesToRemove:c,edgesToRemove:f,nodes:h,edges:p,onBeforeDelete:w}),M=_.length>0,b=k.length>0;if(M){const N=_.map(so);m==null||m(_),v(N)}if(b){const N=k.map(so);x==null||x(k),y(N)}return(b||M)&&(g==null||g({nodes:k,edges:_})),{deletedNodes:k,deletedEdges:_}},getIntersectingNodes:(c,f=!0,h)=>{const p=Li(c),x=p?c:u(c),m=h!==void 0;return x?(h||t.getState().nodes).filter(y=>{const v=t.getState().nodeLookup.get(y.id);if(v&&!p&&(y.id===c.id||!v.internals.positionAbsolute))return!1;const g=Qe(m?y:v),w=xt(g,x);return f&&w>0||w>=g.width*g.height||w>=x.width*x.height}):[]},isNodeIntersecting:(c,f,h=!0)=>{const x=Li(c)?c:u(c);if(!x)return!1;const m=xt(x,f);return h&&m>0||m>=f.width*f.height||m>=x.width*x.height},updateNode:d,updateNodeData:(c,f,h={replace:!1})=>{d(c,p=>{const x=typeof f=="function"?f(p):f;return h.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},h)},updateEdge:l,updateEdgeData:(c,f,h={replace:!1})=>{l(c,p=>{const x=typeof f=="function"?f(p):f;return h.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},h)},getNodesBounds:c=>{const{nodeLookup:f,nodeOrigin:h}=t.getState();return Qf(c,{nodeLookup:f,nodeOrigin:h})},getHandleConnections:({type:c,id:f,nodeId:h})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${h}-${c}${f?`-${f}`:""}`))==null?void 0:p.values())??[])},getNodeConnections:({type:c,handleId:f,nodeId:h})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${h}${c?f?`-${c}-${f}`:`-${c}`:""}`))==null?void 0:p.values())??[])},fitView:async c=>{const f=t.getState().fitViewResolver??sh();return t.setState({fitViewQueued:!0,fitViewOptions:c,fitViewResolver:f}),n.nodeQueue.push(h=>[...h]),f.promise}}},[]);return V.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const uo=e=>e.selected,$p=typeof window<"u"?window:void 0;function Op({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ie(),{deleteElements:r}=ri(),i=vt(e,{actInsideInputWithModifier:!1}),s=vt(t,{target:$p});V.useEffect(()=>{if(i){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(uo),edges:o.filter(uo)}),n.setState({nodesSelectionActive:!1})}},[i]),V.useEffect(()=>{n.setState({multiSelectionActive:s})},[s])}function jp(e){const t=ie();V.useEffect(()=>{const n=()=>{var i,s,o,a;if(!e.current||!(((s=(i=e.current).checkVisibility)==null?void 0:s.call(i))??!0))return!1;const r=Kr(e.current);(r.height===0||r.width===0)&&((a=(o=t.getState()).onError)==null||a.call(o,"004",ve.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const pn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Dp=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function zp({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=je.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:u,translateExtent:d,minZoom:l,maxZoom:c,zoomActivationKeyCode:f,preventScrolling:h=!0,children:p,noWheelClassName:x,noPanClassName:m,onViewportChange:y,isControlledViewport:v,paneClickDistance:g,selectionOnDrag:w}){const k=ie(),_=V.useRef(null),{userSelectionActive:M,lib:b,connectionInProgress:N}=te(Dp,re),I=vt(f),S=V.useRef();jp(_);const C=V.useCallback(j=>{y==null||y({x:j[0],y:j[1],zoom:j[2]}),v||k.setState({transform:j})},[y,v]);return V.useEffect(()=>{if(_.current){S.current=Bh({domNode:_.current,minZoom:l,maxZoom:c,translateExtent:d,viewport:u,onDraggingChange:P=>k.setState(D=>D.paneDragging===P?D:{paneDragging:P}),onPanZoomStart:(P,D)=>{const{onViewportChangeStart:O,onMoveStart:R}=k.getState();R==null||R(P,D),O==null||O(D)},onPanZoom:(P,D)=>{const{onViewportChange:O,onMove:R}=k.getState();R==null||R(P,D),O==null||O(D)},onPanZoomEnd:(P,D)=>{const{onViewportChangeEnd:O,onMoveEnd:R}=k.getState();R==null||R(P,D),O==null||O(D)}});const{x:j,y:E,zoom:L}=S.current.getViewport();return k.setState({panZoom:S.current,transform:[j,E,L],domNode:_.current.closest(".react-flow")}),()=>{var P;(P=S.current)==null||P.destroy()}}},[]),V.useEffect(()=>{var j;(j=S.current)==null||j.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:I,preventScrolling:h,noPanClassName:m,userSelectionActive:M,noWheelClassName:x,lib:b,onTransformChange:C,connectionInProgress:N,selectionOnDrag:w,paneClickDistance:g})},[e,t,n,r,i,s,o,a,I,h,m,M,x,b,C,N,w,g]),A.jsx("div",{className:"react-flow__renderer",ref:_,style:pn,children:p})}const Vp=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Hp(){const{userSelectionActive:e,userSelectionRect:t}=te(Vp,re);return e&&t?A.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const In=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},Fp=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function Bp({isSelecting:e,selectionKeyPressed:t,selectionMode:n=yt.Full,panOnDrag:r,paneClickDistance:i,selectionOnDrag:s,onSelectionStart:o,onSelectionEnd:a,onPaneClick:u,onPaneContextMenu:d,onPaneScroll:l,onPaneMouseEnter:c,onPaneMouseMove:f,onPaneMouseLeave:h,children:p}){const x=ie(),{userSelectionActive:m,elementsSelectable:y,dragging:v,connectionInProgress:g}=te(Fp,re),w=y&&(e||m),k=V.useRef(null),_=V.useRef(),M=V.useRef(new Set),b=V.useRef(new Set),N=V.useRef(!1),I=O=>{if(N.current||g){N.current=!1;return}u==null||u(O),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},S=O=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){O.preventDefault();return}d==null||d(O)},C=l?O=>l(O):void 0,j=O=>{N.current&&(O.stopPropagation(),N.current=!1)},E=O=>{var z,B;const{domNode:R}=x.getState();if(_.current=R==null?void 0:R.getBoundingClientRect(),!_.current)return;const H=O.target===k.current;if(!H&&!!O.target.closest(".nokey")||!e||!(s&&H||t)||O.button!==0||!O.isPrimary)return;(B=(z=O.target)==null?void 0:z.setPointerCapture)==null||B.call(z,O.pointerId),N.current=!1;const{x:T,y:$}=ge(O.nativeEvent,_.current);x.setState({userSelectionRect:{width:0,height:0,startX:T,startY:$,x:T,y:$}}),H||(O.stopPropagation(),O.preventDefault())},L=O=>{const{userSelectionRect:R,transform:H,nodeLookup:q,edgeLookup:F,connectionLookup:T,triggerNodeChanges:$,triggerEdgeChanges:z,defaultEdgeOptions:B,resetSelectedElements:G}=x.getState();if(!_.current||!R)return;const{x:Y,y:W}=ge(O.nativeEvent,_.current),{startX:Z,startY:Q}=R;if(!N.current){const ee=t?0:i;if(Math.hypot(Y-Z,W-Q)<=ee)return;G(),o==null||o(O)}N.current=!0;const U={startX:Z,startY:Q,x:Y<Z?Y:Z,y:W<Q?W:Q,width:Math.abs(Y-Z),height:Math.abs(W-Q)},X=M.current,J=b.current;M.current=new Set(Xr(q,U,H,n===yt.Partial,!0).map(ee=>ee.id)),b.current=new Set;const ne=(B==null?void 0:B.selectable)??!0;for(const ee of M.current){const ce=T.get(ee);if(ce)for(const{edgeId:Ce}of ce.values()){const _e=F.get(Ce);_e&&(_e.selectable??ne)&&b.current.add(Ce)}}if(!Ri(X,M.current)){const ee=Ye(q,M.current,!0);$(ee)}if(!Ri(J,b.current)){const ee=Ye(F,b.current);z(ee)}x.setState({userSelectionRect:U,userSelectionActive:!0,nodesSelectionActive:!1})},P=O=>{var R,H;O.button===0&&((H=(R=O.target)==null?void 0:R.releasePointerCapture)==null||H.call(R,O.pointerId),!m&&O.target===k.current&&x.getState().userSelectionRect&&(I==null||I(O)),x.setState({userSelectionActive:!1,userSelectionRect:null}),N.current&&(a==null||a(O),x.setState({nodesSelectionActive:M.current.size>0})))},D=r===!0||Array.isArray(r)&&r.includes(0);return A.jsxs("div",{className:ae(["react-flow__pane",{draggable:D,dragging:v,selection:e}]),onClick:w?void 0:In(I,k),onContextMenu:In(S,k),onWheel:In(C,k),onPointerEnter:w?void 0:c,onPointerMove:w?L:f,onPointerUp:w?P:void 0,onPointerDownCapture:w?E:void 0,onClickCapture:w?j:void 0,onPointerLeave:h,ref:k,style:pn,children:[p,A.jsx(Hp,{})]})}function jr({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:i,unselectNodesAndEdges:s,multiSelectionActive:o,nodeLookup:a,onError:u}=t.getState(),d=a.get(e);if(!d){u==null||u("012",ve.error012(e));return}t.setState({nodesSelectionActive:!1}),d.selected?(n||d.selected&&o)&&(s({nodes:[d],edges:[]}),requestAnimationFrame(()=>{var l;return(l=r==null?void 0:r.current)==null?void 0:l.blur()})):i([e])}function La({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:s,nodeClickDistance:o}){const a=ie(),[u,d]=V.useState(!1),l=V.useRef();return V.useEffect(()=>{l.current=Ih({getStoreItems:()=>a.getState(),onNodeMouseDown:c=>{jr({id:c,store:a,nodeRef:e})},onDragStart:()=>{d(!0)},onDragStop:()=>{d(!1)}})},[]),V.useEffect(()=>{if(!(t||!e.current||!l.current))return l.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:s,nodeId:i,nodeClickDistance:o}),()=>{var c;(c=l.current)==null||c.destroy()}},[n,r,t,s,e,i,o]),u}const qp=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Ra(){const e=ie();return V.useCallback(n=>{const{nodeExtent:r,snapToGrid:i,snapGrid:s,nodesDraggable:o,onError:a,updateNodePositions:u,nodeLookup:d,nodeOrigin:l}=e.getState(),c=new Map,f=qp(o),h=i?s[0]:5,p=i?s[1]:5,x=n.direction.x*h*n.factor,m=n.direction.y*p*n.factor;for(const[,y]of d){if(!f(y))continue;let v={x:y.internals.positionAbsolute.x+x,y:y.internals.positionAbsolute.y+m};i&&(v=St(v,s));const{position:g,positionAbsolute:w}=ea({nodeId:y.id,nextPosition:v,nodeLookup:d,nodeExtent:r,nodeOrigin:l,onError:a});y.position=g,y.internals.positionAbsolute=w,c.set(y.id,y)}u(c)},[])}const ii=V.createContext(null),Yp=ii.Provider;ii.Consumer;const $a=()=>V.useContext(ii),Gp=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Wp=(e,t,n)=>r=>{const{connectionClickStartHandle:i,connectionMode:s,connection:o}=r,{fromHandle:a,toHandle:u,isValid:d}=o,l=(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.id)===t&&(u==null?void 0:u.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:l,clickConnecting:(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.id)===t&&(i==null?void 0:i.type)===n,isPossibleEndHandle:s===Ke.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!i,valid:l&&d}};function Xp({type:e="source",position:t=K.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:s=!0,id:o,onConnect:a,children:u,className:d,onMouseDown:l,onTouchStart:c,...f},h){var L,P;const p=o||null,x=e==="target",m=ie(),y=$a(),{connectOnClick:v,noPanClassName:g,rfId:w}=te(Gp,re),{connectingFrom:k,connectingTo:_,clickConnecting:M,isPossibleEndHandle:b,connectionInProcess:N,clickConnectionInProcess:I,valid:S}=te(Wp(y,p,e),re);y||(P=(L=m.getState()).onError)==null||P.call(L,"010",ve.error010());const C=D=>{const{defaultEdgeOptions:O,onConnect:R,hasDefaultEdges:H}=m.getState(),q={...O,...D};if(H){const{edges:F,setEdges:T}=m.getState();T(hh(q,F))}R==null||R(q),a==null||a(q)},j=D=>{if(!y)return;const O=ca(D.nativeEvent);if(i&&(O&&D.button===0||!O)){const R=m.getState();Or.onPointerDown(D.nativeEvent,{handleDomNode:D.currentTarget,autoPanOnConnect:R.autoPanOnConnect,connectionMode:R.connectionMode,connectionRadius:R.connectionRadius,domNode:R.domNode,nodeLookup:R.nodeLookup,lib:R.lib,isTarget:x,handleId:p,nodeId:y,flowId:R.rfId,panBy:R.panBy,cancelConnection:R.cancelConnection,onConnectStart:R.onConnectStart,onConnectEnd:(...H)=>{var q,F;return(F=(q=m.getState()).onConnectEnd)==null?void 0:F.call(q,...H)},updateConnection:R.updateConnection,onConnect:C,isValidConnection:n||((...H)=>{var q,F;return((F=(q=m.getState()).isValidConnection)==null?void 0:F.call(q,...H))??!0}),getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,autoPanSpeed:R.autoPanSpeed,dragThreshold:R.connectionDragThreshold})}O?l==null||l(D):c==null||c(D)},E=D=>{const{onClickConnectStart:O,onClickConnectEnd:R,connectionClickStartHandle:H,connectionMode:q,isValidConnection:F,lib:T,rfId:$,nodeLookup:z,connection:B}=m.getState();if(!y||!H&&!i)return;if(!H){O==null||O(D.nativeEvent,{nodeId:y,handleId:p,handleType:e}),m.setState({connectionClickStartHandle:{nodeId:y,type:e,id:p}});return}const G=sa(D.target),Y=n||F,{connection:W,isValid:Z}=Or.isValid(D.nativeEvent,{handle:{nodeId:y,id:p,type:e},connectionMode:q,fromNodeId:H.nodeId,fromHandleId:H.id||null,fromType:H.type,isValidConnection:Y,flowId:$,doc:G,lib:T,nodeLookup:z});Z&&W&&C(W);const Q=structuredClone(B);delete Q.inProgress,Q.toPosition=Q.toHandle?Q.toHandle.position:null,R==null||R(D,Q),m.setState({connectionClickStartHandle:null})};return A.jsx("div",{"data-handleid":p,"data-nodeid":y,"data-handlepos":t,"data-id":`${w}-${y}-${p}-${e}`,className:ae(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",g,d,{source:!x,target:x,connectable:r,connectablestart:i,connectableend:s,clickconnecting:M,connectingfrom:k,connectingto:_,valid:S,connectionindicator:r&&(!N||b)&&(N||I?s:i)}]),onMouseDown:j,onTouchStart:j,onClick:v?E:void 0,ref:h,...f,children:u})}const tt=V.memo(Ta(Xp));function Up({data:e,isConnectable:t,sourcePosition:n=K.Bottom}){return A.jsxs(A.Fragment,{children:[e==null?void 0:e.label,A.jsx(tt,{type:"source",position:n,isConnectable:t})]})}function Kp({data:e,isConnectable:t,targetPosition:n=K.Top,sourcePosition:r=K.Bottom}){return A.jsxs(A.Fragment,{children:[A.jsx(tt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,A.jsx(tt,{type:"source",position:r,isConnectable:t})]})}function Zp(){return null}function Qp({data:e,isConnectable:t,targetPosition:n=K.Top}){return A.jsxs(A.Fragment,{children:[A.jsx(tt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const tn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},lo={input:Up,default:Kp,output:Qp,group:Zp};function Jp(e){var t,n,r,i;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((i=e.style)==null?void 0:i.height)}}const eg=e=>{const{width:t,height:n,x:r,y:i}=Nt(e.nodeLookup,{filter:s=>!!s.selected});return{width:pe(t)?t:null,height:pe(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function tg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ie(),{width:i,height:s,transformString:o,userSelectionActive:a}=te(eg,re),u=Ra(),d=V.useRef(null);V.useEffect(()=>{var h;n||(h=d.current)==null||h.focus({preventScroll:!0})},[n]);const l=!a&&i!==null&&s!==null;if(La({nodeRef:d,disabled:!l}),!l)return null;const c=e?h=>{const p=r.getState().nodes.filter(x=>x.selected);e(h,p)}:void 0,f=h=>{Object.prototype.hasOwnProperty.call(tn,h.key)&&(h.preventDefault(),u({direction:tn[h.key],factor:h.shiftKey?4:1}))};return A.jsx("div",{className:ae(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:A.jsx("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:c,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:i,height:s}})})}const fo=typeof window<"u"?window:void 0,ng=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Oa({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:u,selectionKeyCode:d,selectionOnDrag:l,selectionMode:c,onSelectionStart:f,onSelectionEnd:h,multiSelectionKeyCode:p,panActivationKeyCode:x,zoomActivationKeyCode:m,elementsSelectable:y,zoomOnScroll:v,zoomOnPinch:g,panOnScroll:w,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:M,panOnDrag:b,defaultViewport:N,translateExtent:I,minZoom:S,maxZoom:C,preventScrolling:j,onSelectionContextMenu:E,noWheelClassName:L,noPanClassName:P,disableKeyboardA11y:D,onViewportChange:O,isControlledViewport:R}){const{nodesSelectionActive:H,userSelectionActive:q}=te(ng,re),F=vt(d,{target:fo}),T=vt(x,{target:fo}),$=T||b,z=T||w,B=l&&$!==!0,G=F||q||B;return Op({deleteKeyCode:u,multiSelectionKeyCode:p}),A.jsx(zp,{onPaneContextMenu:s,elementsSelectable:y,zoomOnScroll:v,zoomOnPinch:g,panOnScroll:z,panOnScrollSpeed:k,panOnScrollMode:_,zoomOnDoubleClick:M,panOnDrag:!F&&$,defaultViewport:N,translateExtent:I,minZoom:S,maxZoom:C,zoomActivationKeyCode:m,preventScrolling:j,noWheelClassName:L,noPanClassName:P,onViewportChange:O,isControlledViewport:R,paneClickDistance:a,selectionOnDrag:B,children:A.jsxs(Bp,{onSelectionStart:f,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:o,panOnDrag:$,isSelecting:!!G,selectionMode:c,selectionKeyPressed:F,paneClickDistance:a,selectionOnDrag:B,children:[e,H&&A.jsx(tg,{onSelectionContextMenu:E,noPanClassName:P,disableKeyboardA11y:D})]})})}Oa.displayName="FlowRenderer";const rg=V.memo(Oa),ig=e=>t=>e?Xr(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function og(e){return te(V.useCallback(ig(e),[e]),re)}const sg=e=>e.updateNodeInternals;function ag(){const e=te(sg),[t]=V.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(i=>{const s=i.target.getAttribute("data-id");r.set(s,{id:s,nodeElement:i.target,force:!0})}),e(r)}));return V.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function cg({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const i=ie(),s=V.useRef(null),o=V.useRef(null),a=V.useRef(e.sourcePosition),u=V.useRef(e.targetPosition),d=V.useRef(t),l=n&&!!e.internals.handleBounds;return V.useEffect(()=>{s.current&&!e.hidden&&(!l||o.current!==s.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(s.current),o.current=s.current)},[l,e.hidden]),V.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),V.useEffect(()=>{if(s.current){const c=d.current!==t,f=a.current!==e.sourcePosition,h=u.current!==e.targetPosition;(c||f||h)&&(d.current=t,a.current=e.sourcePosition,u.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:s.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),s}function ug({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:s,onDoubleClick:o,nodesDraggable:a,elementsSelectable:u,nodesConnectable:d,nodesFocusable:l,resizeObserver:c,noDragClassName:f,noPanClassName:h,disableKeyboardA11y:p,rfId:x,nodeTypes:m,nodeClickDistance:y,onError:v}){const{node:g,internals:w,isParent:k}=te(Y=>{const W=Y.nodeLookup.get(e),Z=Y.parentLookup.has(e);return{node:W,internals:W.internals,isParent:Z}},re);let _=g.type||"default",M=(m==null?void 0:m[_])||lo[_];M===void 0&&(v==null||v("003",ve.error003(_)),_="default",M=(m==null?void 0:m.default)||lo.default);const b=!!(g.draggable||a&&typeof g.draggable>"u"),N=!!(g.selectable||u&&typeof g.selectable>"u"),I=!!(g.connectable||d&&typeof g.connectable>"u"),S=!!(g.focusable||l&&typeof g.focusable>"u"),C=ie(),j=ia(g),E=cg({node:g,nodeType:_,hasDimensions:j,resizeObserver:c}),L=La({nodeRef:E,disabled:g.hidden||!b,noDragClassName:f,handleSelector:g.dragHandle,nodeId:e,isSelectable:N,nodeClickDistance:y}),P=Ra();if(g.hidden)return null;const D=ke(g),O=Jp(g),R=N||b||t||n||r||i,H=n?Y=>n(Y,{...w.userNode}):void 0,q=r?Y=>r(Y,{...w.userNode}):void 0,F=i?Y=>i(Y,{...w.userNode}):void 0,T=s?Y=>s(Y,{...w.userNode}):void 0,$=o?Y=>o(Y,{...w.userNode}):void 0,z=Y=>{const{selectNodesOnDrag:W,nodeDragThreshold:Z}=C.getState();N&&(!W||!b||Z>0)&&jr({id:e,store:C,nodeRef:E}),t&&t(Y,{...w.userNode})},B=Y=>{if(!(aa(Y.nativeEvent)||p)){if(Us.includes(Y.key)&&N){const W=Y.key==="Escape";jr({id:e,store:C,unselect:W,nodeRef:E})}else if(b&&g.selected&&Object.prototype.hasOwnProperty.call(tn,Y.key)){Y.preventDefault();const{ariaLabelConfig:W}=C.getState();C.setState({ariaLiveMessage:W["node.a11yDescription.ariaLiveMessage"]({direction:Y.key.replace("Arrow","").toLowerCase(),x:~~w.positionAbsolute.x,y:~~w.positionAbsolute.y})}),P({direction:tn[Y.key],factor:Y.shiftKey?4:1})}}},G=()=>{var J;if(p||!((J=E.current)!=null&&J.matches(":focus-visible")))return;const{transform:Y,width:W,height:Z,autoPanOnNodeFocus:Q,setCenter:U}=C.getState();if(!Q)return;Xr(new Map([[e,g]]),{x:0,y:0,width:W,height:Z},Y,!0).length>0||U(g.position.x+D.width/2,g.position.y+D.height/2,{zoom:Y[2]})};return A.jsx("div",{className:ae(["react-flow__node",`react-flow__node-${_}`,{[h]:b},g.className,{selected:g.selected,selectable:N,parent:k,draggable:b,dragging:L}]),ref:E,style:{zIndex:w.z,transform:`translate(${w.positionAbsolute.x}px,${w.positionAbsolute.y}px)`,pointerEvents:R?"all":"none",visibility:j?"visible":"hidden",...g.style,...O},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:q,onMouseLeave:F,onContextMenu:T,onClick:z,onDoubleClick:$,onKeyDown:S?B:void 0,tabIndex:S?0:void 0,onFocus:S?G:void 0,role:g.ariaRole??(S?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${Sa}-${x}`,"aria-label":g.ariaLabel,...g.domAttributes,children:A.jsx(Yp,{value:e,children:A.jsx(M,{id:e,data:g.data,type:_,positionAbsoluteX:w.positionAbsolute.x,positionAbsoluteY:w.positionAbsolute.y,selected:g.selected??!1,selectable:N,draggable:b,deletable:g.deletable??!0,isConnectable:I,sourcePosition:g.sourcePosition,targetPosition:g.targetPosition,dragging:L,dragHandle:g.dragHandle,zIndex:w.z,parentId:g.parentId,...D})})})}var lg=V.memo(ug);const dg=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function ja(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,onError:s}=te(dg,re),o=og(e.onlyRenderVisibleElements),a=ag();return A.jsx("div",{className:"react-flow__nodes",style:pn,children:o.map(u=>A.jsx(lg,{id:u,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:s},u))})}ja.displayName="NodeRenderer";const fg=V.memo(ja);function hg(e){return te(V.useCallback(n=>{if(!e)return n.edges.map(i=>i.id);const r=[];if(n.width&&n.height)for(const i of n.edges){const s=n.nodeLookup.get(i.source),o=n.nodeLookup.get(i.target);s&&o&&lh({sourceNode:s,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(i.id)}return r},[e]),re)}const pg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return A.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},gg=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return A.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},ho={[Qt.Arrow]:pg,[Qt.ArrowClosed]:gg};function mg(e){const t=ie();return V.useMemo(()=>{var i,s;return Object.prototype.hasOwnProperty.call(ho,e)?ho[e]:((s=(i=t.getState()).onError)==null||s.call(i,"009",ve.error009(e)),null)},[e])}const yg=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const u=mg(t);return u?A.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:a,refX:"0",refY:"0",children:A.jsx(u,{color:n,strokeWidth:o})}):null},Da=({defaultColor:e,rfId:t})=>{const n=te(s=>s.edges),r=te(s=>s.defaultEdgeOptions),i=V.useMemo(()=>xh(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return i.length?A.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:A.jsx("defs",{children:i.map(s=>A.jsx(yg,{id:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient},s.id))})}):null};Da.displayName="MarkerDefinitions";var xg=V.memo(Da);function za({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:u,className:d,...l}){const[c,f]=V.useState({x:1,y:0,width:0,height:0}),h=ae(["react-flow__edge-textwrapper",d]),p=V.useRef(null);return V.useEffect(()=>{if(p.current){const x=p.current.getBBox();f({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?A.jsxs("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:h,visibility:c.width?"visible":"hidden",...l,children:[i&&A.jsx("rect",{width:c.width+2*o[0],x:-o[0],y:-o[1],height:c.height+2*o[1],className:"react-flow__edge-textbg",style:s,rx:a,ry:a}),A.jsx("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:p,style:r,children:n}),u]}):null}za.displayName="EdgeText";const wg=V.memo(za);function Ct({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:u,interactionWidth:d=20,...l}){return A.jsxs(A.Fragment,{children:[A.jsx("path",{...l,d:e,fill:"none",className:ae(["react-flow__edge-path",l.className])}),d?A.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:d,className:"react-flow__edge-interaction"}):null,r&&pe(t)&&pe(n)?A.jsx(wg,{x:t,y:n,label:r,labelStyle:i,labelShowBg:s,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:u}):null]})}function po({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===K.Left||e===K.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Va({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:i,targetPosition:s=K.Top}){const[o,a]=po({pos:n,x1:e,y1:t,x2:r,y2:i}),[u,d]=po({pos:s,x1:r,y1:i,x2:e,y2:t}),[l,c,f,h]=ua({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:a,targetControlX:u,targetControlY:d});return[`M${e},${t} C${o},${a} ${u},${d} ${r},${i}`,l,c,f,h]}function Ha(e){return V.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,label:u,labelStyle:d,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:h,style:p,markerEnd:x,markerStart:m,interactionWidth:y})=>{const[v,g,w]=Va({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),k=e.isInternal?void 0:t;return A.jsx(Ct,{id:k,path:v,labelX:g,labelY:w,label:u,labelStyle:d,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:h,style:p,markerEnd:x,markerStart:m,interactionWidth:y})})}const vg=Ha({isInternal:!1}),Fa=Ha({isInternal:!0});vg.displayName="SimpleBezierEdge";Fa.displayName="SimpleBezierEdgeInternal";function Ba(e){return V.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:u,labelBgStyle:d,labelBgPadding:l,labelBgBorderRadius:c,style:f,sourcePosition:h=K.Bottom,targetPosition:p=K.Top,markerEnd:x,markerStart:m,pathOptions:y,interactionWidth:v})=>{const[g,w,k]=Lr({sourceX:n,sourceY:r,sourcePosition:h,targetX:i,targetY:s,targetPosition:p,borderRadius:y==null?void 0:y.borderRadius,offset:y==null?void 0:y.offset,stepPosition:y==null?void 0:y.stepPosition}),_=e.isInternal?void 0:t;return A.jsx(Ct,{id:_,path:g,labelX:w,labelY:k,label:o,labelStyle:a,labelShowBg:u,labelBgStyle:d,labelBgPadding:l,labelBgBorderRadius:c,style:f,markerEnd:x,markerStart:m,interactionWidth:v})})}const qa=Ba({isInternal:!1}),Ya=Ba({isInternal:!0});qa.displayName="SmoothStepEdge";Ya.displayName="SmoothStepEdgeInternal";function Ga(e){return V.memo(({id:t,...n})=>{var i;const r=e.isInternal?void 0:t;return A.jsx(qa,{...n,id:r,pathOptions:V.useMemo(()=>{var s;return{borderRadius:0,offset:(s=n.pathOptions)==null?void 0:s.offset}},[(i=n.pathOptions)==null?void 0:i.offset])})})}const bg=Ga({isInternal:!1}),Wa=Ga({isInternal:!0});bg.displayName="StepEdge";Wa.displayName="StepEdgeInternal";function Xa(e){return V.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,label:o,labelStyle:a,labelShowBg:u,labelBgStyle:d,labelBgPadding:l,labelBgBorderRadius:c,style:f,markerEnd:h,markerStart:p,interactionWidth:x})=>{const[m,y,v]=da({sourceX:n,sourceY:r,targetX:i,targetY:s}),g=e.isInternal?void 0:t;return A.jsx(Ct,{id:g,path:m,labelX:y,labelY:v,label:o,labelStyle:a,labelShowBg:u,labelBgStyle:d,labelBgPadding:l,labelBgBorderRadius:c,style:f,markerEnd:h,markerStart:p,interactionWidth:x})})}const _g=Xa({isInternal:!1}),Ua=Xa({isInternal:!0});_g.displayName="StraightEdge";Ua.displayName="StraightEdgeInternal";function Ka(e){return V.memo(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o=K.Bottom,targetPosition:a=K.Top,label:u,labelStyle:d,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:h,style:p,markerEnd:x,markerStart:m,pathOptions:y,interactionWidth:v})=>{const[g,w,k]=Zr({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a,curvature:y==null?void 0:y.curvature}),_=e.isInternal?void 0:t;return A.jsx(Ct,{id:_,path:g,labelX:w,labelY:k,label:u,labelStyle:d,labelShowBg:l,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:h,style:p,markerEnd:x,markerStart:m,interactionWidth:v})})}const Eg=Ka({isInternal:!1}),Za=Ka({isInternal:!0});Eg.displayName="BezierEdge";Za.displayName="BezierEdgeInternal";const go={default:Za,straight:Ua,step:Wa,smoothstep:Ya,simplebezier:Fa},mo={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Ng=(e,t,n)=>n===K.Left?e-t:n===K.Right?e+t:e,Sg=(e,t,n)=>n===K.Top?e-t:n===K.Bottom?e+t:e,yo="react-flow__edgeupdater";function xo({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:s,onMouseOut:o,type:a}){return A.jsx("circle",{onMouseDown:i,onMouseEnter:s,onMouseOut:o,className:ae([yo,`${yo}-${a}`]),cx:Ng(t,r,e),cy:Sg(n,r,e),r,stroke:"transparent",fill:"transparent"})}function kg({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:s,targetY:o,sourcePosition:a,targetPosition:u,onReconnect:d,onReconnectStart:l,onReconnectEnd:c,setReconnecting:f,setUpdateHover:h}){const p=ie(),x=(w,k)=>{if(w.button!==0)return;const{autoPanOnConnect:_,domNode:M,connectionMode:b,connectionRadius:N,lib:I,onConnectStart:S,cancelConnection:C,nodeLookup:j,rfId:E,panBy:L,updateConnection:P}=p.getState(),D=k.type==="target",O=(q,F)=>{f(!1),c==null||c(q,n,k.type,F)},R=q=>d==null?void 0:d(n,q),H=(q,F)=>{f(!0),l==null||l(w,n,k.type),S==null||S(q,F)};Or.onPointerDown(w.nativeEvent,{autoPanOnConnect:_,connectionMode:b,connectionRadius:N,domNode:M,handleId:k.id,nodeId:k.nodeId,nodeLookup:j,isTarget:D,edgeUpdaterType:k.type,lib:I,flowId:E,cancelConnection:C,panBy:L,isValidConnection:(...q)=>{var F,T;return((T=(F=p.getState()).isValidConnection)==null?void 0:T.call(F,...q))??!0},onConnect:R,onConnectStart:H,onConnectEnd:(...q)=>{var F,T;return(T=(F=p.getState()).onConnectEnd)==null?void 0:T.call(F,...q)},onReconnectEnd:O,updateConnection:P,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:w.currentTarget})},m=w=>x(w,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),y=w=>x(w,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),v=()=>h(!0),g=()=>h(!1);return A.jsxs(A.Fragment,{children:[(e===!0||e==="source")&&A.jsx(xo,{position:a,centerX:r,centerY:i,radius:t,onMouseDown:m,onMouseEnter:v,onMouseOut:g,type:"source"}),(e===!0||e==="target")&&A.jsx(xo,{position:u,centerX:s,centerY:o,radius:t,onMouseDown:y,onMouseEnter:v,onMouseOut:g,type:"target"})]})}function Cg({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:s,onContextMenu:o,onMouseEnter:a,onMouseMove:u,onMouseLeave:d,reconnectRadius:l,onReconnect:c,onReconnectStart:f,onReconnectEnd:h,rfId:p,edgeTypes:x,noPanClassName:m,onError:y,disableKeyboardA11y:v}){let g=te(U=>U.edgeLookup.get(e));const w=te(U=>U.defaultEdgeOptions);g=w?{...w,...g}:g;let k=g.type||"default",_=(x==null?void 0:x[k])||go[k];_===void 0&&(y==null||y("011",ve.error011(k)),k="default",_=(x==null?void 0:x.default)||go.default);const M=!!(g.focusable||t&&typeof g.focusable>"u"),b=typeof c<"u"&&(g.reconnectable||n&&typeof g.reconnectable>"u"),N=!!(g.selectable||r&&typeof g.selectable>"u"),I=V.useRef(null),[S,C]=V.useState(!1),[j,E]=V.useState(!1),L=ie(),{zIndex:P,sourceX:D,sourceY:O,targetX:R,targetY:H,sourcePosition:q,targetPosition:F}=te(V.useCallback(U=>{const X=U.nodeLookup.get(g.source),J=U.nodeLookup.get(g.target);if(!X||!J)return{zIndex:g.zIndex,...mo};const ne=yh({id:e,sourceNode:X,targetNode:J,sourceHandle:g.sourceHandle||null,targetHandle:g.targetHandle||null,connectionMode:U.connectionMode,onError:y});return{zIndex:uh({selected:g.selected,zIndex:g.zIndex,sourceNode:X,targetNode:J,elevateOnSelect:U.elevateEdgesOnSelect,zIndexMode:U.zIndexMode}),...ne||mo}},[g.source,g.target,g.sourceHandle,g.targetHandle,g.selected,g.zIndex]),re),T=V.useMemo(()=>g.markerStart?`url('#${Rr(g.markerStart,p)}')`:void 0,[g.markerStart,p]),$=V.useMemo(()=>g.markerEnd?`url('#${Rr(g.markerEnd,p)}')`:void 0,[g.markerEnd,p]);if(g.hidden||D===null||O===null||R===null||H===null)return null;const z=U=>{var ee;const{addSelectedEdges:X,unselectNodesAndEdges:J,multiSelectionActive:ne}=L.getState();N&&(L.setState({nodesSelectionActive:!1}),g.selected&&ne?(J({nodes:[],edges:[g]}),(ee=I.current)==null||ee.blur()):X([e])),i&&i(U,g)},B=s?U=>{s(U,{...g})}:void 0,G=o?U=>{o(U,{...g})}:void 0,Y=a?U=>{a(U,{...g})}:void 0,W=u?U=>{u(U,{...g})}:void 0,Z=d?U=>{d(U,{...g})}:void 0,Q=U=>{var X;if(!v&&Us.includes(U.key)&&N){const{unselectNodesAndEdges:J,addSelectedEdges:ne}=L.getState();U.key==="Escape"?((X=I.current)==null||X.blur(),J({edges:[g]})):ne([e])}};return A.jsx("svg",{style:{zIndex:P},children:A.jsxs("g",{className:ae(["react-flow__edge",`react-flow__edge-${k}`,g.className,m,{selected:g.selected,animated:g.animated,inactive:!N&&!i,updating:S,selectable:N}]),onClick:z,onDoubleClick:B,onContextMenu:G,onMouseEnter:Y,onMouseMove:W,onMouseLeave:Z,onKeyDown:M?Q:void 0,tabIndex:M?0:void 0,role:g.ariaRole??(M?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":g.ariaLabel===null?void 0:g.ariaLabel||`Edge from ${g.source} to ${g.target}`,"aria-describedby":M?`${ka}-${p}`:void 0,ref:I,...g.domAttributes,children:[!j&&A.jsx(_,{id:e,source:g.source,target:g.target,type:g.type,selected:g.selected,animated:g.animated,selectable:N,deletable:g.deletable??!0,label:g.label,labelStyle:g.labelStyle,labelShowBg:g.labelShowBg,labelBgStyle:g.labelBgStyle,labelBgPadding:g.labelBgPadding,labelBgBorderRadius:g.labelBgBorderRadius,sourceX:D,sourceY:O,targetX:R,targetY:H,sourcePosition:q,targetPosition:F,data:g.data,style:g.style,sourceHandleId:g.sourceHandle,targetHandleId:g.targetHandle,markerStart:T,markerEnd:$,pathOptions:"pathOptions"in g?g.pathOptions:void 0,interactionWidth:g.interactionWidth}),b&&A.jsx(kg,{edge:g,isReconnectable:b,reconnectRadius:l,onReconnect:c,onReconnectStart:f,onReconnectEnd:h,sourceX:D,sourceY:O,targetX:R,targetY:H,sourcePosition:q,targetPosition:F,setUpdateHover:C,setReconnecting:E})]})})}var Mg=V.memo(Cg);const Ig=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Qa({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:s,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:u,onEdgeMouseLeave:d,onEdgeClick:l,reconnectRadius:c,onEdgeDoubleClick:f,onReconnectStart:h,onReconnectEnd:p,disableKeyboardA11y:x}){const{edgesFocusable:m,edgesReconnectable:y,elementsSelectable:v,onError:g}=te(Ig,re),w=hg(t);return A.jsxs("div",{className:"react-flow__edges",children:[A.jsx(xg,{defaultColor:e,rfId:n}),w.map(k=>A.jsx(Mg,{id:k,edgesFocusable:m,edgesReconnectable:y,elementsSelectable:v,noPanClassName:i,onReconnect:s,onContextMenu:o,onMouseEnter:a,onMouseMove:u,onMouseLeave:d,onClick:l,reconnectRadius:c,onDoubleClick:f,onReconnectStart:h,onReconnectEnd:p,rfId:n,onError:g,edgeTypes:r,disableKeyboardA11y:x},k))]})}Qa.displayName="EdgeRenderer";const Ag=V.memo(Qa),Tg=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Pg({children:e}){const t=te(Tg);return A.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Lg(e){const t=ri(),n=V.useRef(!1);V.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Rg=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function $g(e){const t=te(Rg),n=ie();return V.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Og(e){return e.connection.inProgress?{...e.connection,to:kt(e.connection.to,e.transform)}:{...e.connection}}function jg(e){return Og}function Dg(e){const t=jg();return te(t,re)}const zg=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Vg({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:i,width:s,height:o,isValid:a,inProgress:u}=te(zg,re);return!(s&&i&&u)?null:A.jsx("svg",{style:e,width:s,height:o,className:"react-flow__connectionline react-flow__container",children:A.jsx("g",{className:ae(["react-flow__connection",Qs(a)]),children:A.jsx(Ja,{style:t,type:n,CustomComponent:r,isValid:a})})})}const Ja=({style:e,type:t=Ae.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:i,from:s,fromNode:o,fromHandle:a,fromPosition:u,to:d,toNode:l,toHandle:c,toPosition:f,pointer:h}=Dg();if(!i)return;if(n)return A.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:s.x,fromY:s.y,toX:d.x,toY:d.y,fromPosition:u,toPosition:f,connectionStatus:Qs(r),toNode:l,toHandle:c,pointer:h});let p="";const x={sourceX:s.x,sourceY:s.y,sourcePosition:u,targetX:d.x,targetY:d.y,targetPosition:f};switch(t){case Ae.Bezier:[p]=Zr(x);break;case Ae.SimpleBezier:[p]=Va(x);break;case Ae.Step:[p]=Lr({...x,borderRadius:0});break;case Ae.SmoothStep:[p]=Lr(x);break;default:[p]=da(x)}return A.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};Ja.displayName="ConnectionLine";const Hg={};function wo(e=Hg){V.useRef(e),ie(),V.useEffect(()=>{},[e])}function Fg(){ie(),V.useRef(!1),V.useEffect(()=>{},[])}function ec({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:l,onSelectionContextMenu:c,onSelectionStart:f,onSelectionEnd:h,connectionLineType:p,connectionLineStyle:x,connectionLineComponent:m,connectionLineContainerStyle:y,selectionKeyCode:v,selectionOnDrag:g,selectionMode:w,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:M,deleteKeyCode:b,onlyRenderVisibleElements:N,elementsSelectable:I,defaultViewport:S,translateExtent:C,minZoom:j,maxZoom:E,preventScrolling:L,defaultMarkerColor:P,zoomOnScroll:D,zoomOnPinch:O,panOnScroll:R,panOnScrollSpeed:H,panOnScrollMode:q,zoomOnDoubleClick:F,panOnDrag:T,onPaneClick:$,onPaneMouseEnter:z,onPaneMouseMove:B,onPaneMouseLeave:G,onPaneScroll:Y,onPaneContextMenu:W,paneClickDistance:Z,nodeClickDistance:Q,onEdgeContextMenu:U,onEdgeMouseEnter:X,onEdgeMouseMove:J,onEdgeMouseLeave:ne,reconnectRadius:ee,onReconnect:ce,onReconnectStart:Ce,onReconnectEnd:_e,noDragClassName:Pe,noWheelClassName:nt,noPanClassName:rt,disableKeyboardA11y:it,nodeExtent:gn,rfId:Mt,viewport:Fe,onViewportChange:ot}){return wo(e),wo(t),Fg(),Lg(n),$g(Fe),A.jsx(rg,{onPaneClick:$,onPaneMouseEnter:z,onPaneMouseMove:B,onPaneMouseLeave:G,onPaneContextMenu:W,onPaneScroll:Y,paneClickDistance:Z,deleteKeyCode:b,selectionKeyCode:v,selectionOnDrag:g,selectionMode:w,onSelectionStart:f,onSelectionEnd:h,multiSelectionKeyCode:k,panActivationKeyCode:_,zoomActivationKeyCode:M,elementsSelectable:I,zoomOnScroll:D,zoomOnPinch:O,zoomOnDoubleClick:F,panOnScroll:R,panOnScrollSpeed:H,panOnScrollMode:q,panOnDrag:T,defaultViewport:S,translateExtent:C,minZoom:j,maxZoom:E,onSelectionContextMenu:c,preventScrolling:L,noDragClassName:Pe,noWheelClassName:nt,noPanClassName:rt,disableKeyboardA11y:it,onViewportChange:ot,isControlledViewport:!!Fe,children:A.jsxs(Pg,{children:[A.jsx(Ag,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ce,onReconnectStart:Ce,onReconnectEnd:_e,onlyRenderVisibleElements:N,onEdgeContextMenu:U,onEdgeMouseEnter:X,onEdgeMouseMove:J,onEdgeMouseLeave:ne,reconnectRadius:ee,defaultMarkerColor:P,noPanClassName:rt,disableKeyboardA11y:it,rfId:Mt}),A.jsx(Vg,{style:x,type:p,component:m,containerStyle:y}),A.jsx("div",{className:"react-flow__edgelabel-renderer"}),A.jsx(fg,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:l,nodeClickDistance:Q,onlyRenderVisibleElements:N,noPanClassName:rt,noDragClassName:Pe,disableKeyboardA11y:it,nodeExtent:gn,rfId:Mt}),A.jsx("div",{className:"react-flow__viewport-portal"})]})})}ec.displayName="GraphView";const Bg=V.memo(ec),vo=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:u=.5,maxZoom:d=2,nodeOrigin:l,nodeExtent:c,zIndexMode:f="basic"}={})=>{const h=new Map,p=new Map,x=new Map,m=new Map,y=r??t??[],v=n??e??[],g=l??[0,0],w=c??mt;pa(x,m,y);const k=$r(v,h,p,{nodeOrigin:g,nodeExtent:w,zIndexMode:f});let _=[0,0,1];if(o&&i&&s){const M=Nt(h,{filter:S=>!!((S.width||S.initialWidth)&&(S.height||S.initialHeight))}),{x:b,y:N,zoom:I}=Ur(M,i,s,u,d,(a==null?void 0:a.padding)??.1);_=[b,N,I]}return{rfId:"1",width:i??0,height:s??0,transform:_,nodes:v,nodesInitialized:k,nodeLookup:h,parentLookup:p,edges:y,edgeLookup:m,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:u,maxZoom:d,translateExtent:mt,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ke.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:g,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Zs},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:rh,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Ks,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},qg=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:u,maxZoom:d,nodeOrigin:l,nodeExtent:c,zIndexMode:f})=>ap((h,p)=>{async function x(){const{nodeLookup:m,panZoom:y,fitViewOptions:v,fitViewResolver:g,width:w,height:k,minZoom:_,maxZoom:M}=p();y&&(await th({nodes:m,width:w,height:k,panZoom:y,minZoom:_,maxZoom:M},v),g==null||g.resolve(!0),h({fitViewResolver:null}))}return{...vo({nodes:e,edges:t,width:i,height:s,fitView:o,fitViewOptions:a,minZoom:u,maxZoom:d,nodeOrigin:l,nodeExtent:c,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:m=>{const{nodeLookup:y,parentLookup:v,nodeOrigin:g,elevateNodesOnSelect:w,fitViewQueued:k,zIndexMode:_}=p(),M=$r(m,y,v,{nodeOrigin:g,nodeExtent:c,elevateNodesOnSelect:w,checkEquality:!0,zIndexMode:_});k&&M?(x(),h({nodes:m,nodesInitialized:M,fitViewQueued:!1,fitViewOptions:void 0})):h({nodes:m,nodesInitialized:M})},setEdges:m=>{const{connectionLookup:y,edgeLookup:v}=p();pa(y,v,m),h({edges:m})},setDefaultNodesAndEdges:(m,y)=>{if(m){const{setNodes:v}=p();v(m),h({hasDefaultNodes:!0})}if(y){const{setEdges:v}=p();v(y),h({hasDefaultEdges:!0})}},updateNodeInternals:m=>{const{triggerNodeChanges:y,nodeLookup:v,parentLookup:g,domNode:w,nodeOrigin:k,nodeExtent:_,debug:M,fitViewQueued:b,zIndexMode:N}=p(),{changes:I,updatedInternals:S}=Sh(m,v,g,w,k,_,N);S&&(bh(v,g,{nodeOrigin:k,nodeExtent:_,zIndexMode:N}),b?(x(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(I==null?void 0:I.length)>0&&(M&&console.log("React Flow: trigger node changes",I),y==null||y(I)))},updateNodePositions:(m,y=!1)=>{const v=[];let g=[];const{nodeLookup:w,triggerNodeChanges:k,connection:_,updateConnection:M,onNodesChangeMiddlewareMap:b}=p();for(const[N,I]of m){const S=w.get(N),C=!!(S!=null&&S.expandParent&&(S!=null&&S.parentId)&&(I!=null&&I.position)),j={id:N,type:"position",position:C?{x:Math.max(0,I.position.x),y:Math.max(0,I.position.y)}:I.position,dragging:y};if(S&&_.inProgress&&_.fromNode.id===S.id){const E=He(S,_.fromHandle,K.Left,!0);M({..._,from:E})}C&&S.parentId&&v.push({id:N,parentId:S.parentId,rect:{...I.internals.positionAbsolute,width:I.measured.width??0,height:I.measured.height??0}}),g.push(j)}if(v.length>0){const{parentLookup:N,nodeOrigin:I}=p(),S=ni(v,w,N,I);g.push(...S)}for(const N of b.values())g=N(g);k(g)},triggerNodeChanges:m=>{const{onNodesChange:y,setNodes:v,nodes:g,hasDefaultNodes:w,debug:k}=p();if(m!=null&&m.length){if(w){const _=Ia(m,g);v(_)}k&&console.log("React Flow: trigger node changes",m),y==null||y(m)}},triggerEdgeChanges:m=>{const{onEdgesChange:y,setEdges:v,edges:g,hasDefaultEdges:w,debug:k}=p();if(m!=null&&m.length){if(w){const _=Aa(m,g);v(_)}k&&console.log("React Flow: trigger edge changes",m),y==null||y(m)}},addSelectedNodes:m=>{const{multiSelectionActive:y,edgeLookup:v,nodeLookup:g,triggerNodeChanges:w,triggerEdgeChanges:k}=p();if(y){const _=m.map(M=>Re(M,!0));w(_);return}w(Ye(g,new Set([...m]),!0)),k(Ye(v))},addSelectedEdges:m=>{const{multiSelectionActive:y,edgeLookup:v,nodeLookup:g,triggerNodeChanges:w,triggerEdgeChanges:k}=p();if(y){const _=m.map(M=>Re(M,!0));k(_);return}k(Ye(v,new Set([...m]))),w(Ye(g,new Set,!0))},unselectNodesAndEdges:({nodes:m,edges:y}={})=>{const{edges:v,nodes:g,nodeLookup:w,triggerNodeChanges:k,triggerEdgeChanges:_}=p(),M=m||g,b=y||v,N=[];for(const S of M){if(!S.selected)continue;const C=w.get(S.id);C&&(C.selected=!1),N.push(Re(S.id,!1))}const I=[];for(const S of b)S.selected&&I.push(Re(S.id,!1));k(N),_(I)},setMinZoom:m=>{const{panZoom:y,maxZoom:v}=p();y==null||y.setScaleExtent([m,v]),h({minZoom:m})},setMaxZoom:m=>{const{panZoom:y,minZoom:v}=p();y==null||y.setScaleExtent([v,m]),h({maxZoom:m})},setTranslateExtent:m=>{var y;(y=p().panZoom)==null||y.setTranslateExtent(m),h({translateExtent:m})},resetSelectedElements:()=>{const{edges:m,nodes:y,triggerNodeChanges:v,triggerEdgeChanges:g,elementsSelectable:w}=p();if(!w)return;const k=y.reduce((M,b)=>b.selected?[...M,Re(b.id,!1)]:M,[]),_=m.reduce((M,b)=>b.selected?[...M,Re(b.id,!1)]:M,[]);v(k),g(_)},setNodeExtent:m=>{const{nodes:y,nodeLookup:v,parentLookup:g,nodeOrigin:w,elevateNodesOnSelect:k,nodeExtent:_,zIndexMode:M}=p();m[0][0]===_[0][0]&&m[0][1]===_[0][1]&&m[1][0]===_[1][0]&&m[1][1]===_[1][1]||($r(y,v,g,{nodeOrigin:w,nodeExtent:m,elevateNodesOnSelect:k,checkEquality:!1,zIndexMode:M}),h({nodeExtent:m}))},panBy:m=>{const{transform:y,width:v,height:g,panZoom:w,translateExtent:k}=p();return kh({delta:m,panZoom:w,transform:y,translateExtent:k,width:v,height:g})},setCenter:async(m,y,v)=>{const{width:g,height:w,maxZoom:k,panZoom:_}=p();if(!_)return Promise.resolve(!1);const M=typeof(v==null?void 0:v.zoom)<"u"?v.zoom:k;return await _.setViewport({x:g/2-m*M,y:w/2-y*M,zoom:M},{duration:v==null?void 0:v.duration,ease:v==null?void 0:v.ease,interpolate:v==null?void 0:v.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{h({connection:{...Zs}})},updateConnection:m=>{h({connection:m})},reset:()=>h({...vo()})}},Object.is);function Yg({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:s,initialMinZoom:o,initialMaxZoom:a,initialFitViewOptions:u,fitView:d,nodeOrigin:l,nodeExtent:c,zIndexMode:f,children:h}){const[p]=V.useState(()=>qg({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:s,fitView:d,minZoom:o,maxZoom:a,fitViewOptions:u,nodeOrigin:l,nodeExtent:c,zIndexMode:f}));return A.jsx(up,{value:p,children:A.jsx(Pp,{children:h})})}function Gg({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:s,height:o,fitView:a,fitViewOptions:u,minZoom:d,maxZoom:l,nodeOrigin:c,nodeExtent:f,zIndexMode:h}){return V.useContext(fn)?A.jsx(A.Fragment,{children:e}):A.jsx(Yg,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:s,initialHeight:o,fitView:a,initialFitViewOptions:u,initialMinZoom:d,initialMaxZoom:l,nodeOrigin:c,nodeExtent:f,zIndexMode:h,children:e})}const Wg={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Xg({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:s,edgeTypes:o,onNodeClick:a,onEdgeClick:u,onInit:d,onMove:l,onMoveStart:c,onMoveEnd:f,onConnect:h,onConnectStart:p,onConnectEnd:x,onClickConnectStart:m,onClickConnectEnd:y,onNodeMouseEnter:v,onNodeMouseMove:g,onNodeMouseLeave:w,onNodeContextMenu:k,onNodeDoubleClick:_,onNodeDragStart:M,onNodeDrag:b,onNodeDragStop:N,onNodesDelete:I,onEdgesDelete:S,onDelete:C,onSelectionChange:j,onSelectionDragStart:E,onSelectionDrag:L,onSelectionDragStop:P,onSelectionContextMenu:D,onSelectionStart:O,onSelectionEnd:R,onBeforeDelete:H,connectionMode:q,connectionLineType:F=Ae.Bezier,connectionLineStyle:T,connectionLineComponent:$,connectionLineContainerStyle:z,deleteKeyCode:B="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:Y=!1,selectionMode:W=yt.Full,panActivationKeyCode:Z="Space",multiSelectionKeyCode:Q=wt()?"Meta":"Control",zoomActivationKeyCode:U=wt()?"Meta":"Control",snapToGrid:X,snapGrid:J,onlyRenderVisibleElements:ne=!1,selectNodesOnDrag:ee,nodesDraggable:ce,autoPanOnNodeFocus:Ce,nodesConnectable:_e,nodesFocusable:Pe,nodeOrigin:nt=Ca,edgesFocusable:rt,edgesReconnectable:it,elementsSelectable:gn=!0,defaultViewport:Mt=_p,minZoom:Fe=.5,maxZoom:ot=2,translateExtent:si=mt,preventScrolling:lc=!0,nodeExtent:mn,defaultMarkerColor:dc="#b1b1b7",zoomOnScroll:fc=!0,zoomOnPinch:hc=!0,panOnScroll:pc=!1,panOnScrollSpeed:gc=.5,panOnScrollMode:mc=je.Free,zoomOnDoubleClick:yc=!0,panOnDrag:xc=!0,onPaneClick:wc,onPaneMouseEnter:vc,onPaneMouseMove:bc,onPaneMouseLeave:_c,onPaneScroll:Ec,onPaneContextMenu:Nc,paneClickDistance:Sc=1,nodeClickDistance:kc=0,children:Cc,onReconnect:Mc,onReconnectStart:Ic,onReconnectEnd:Ac,onEdgeContextMenu:Tc,onEdgeDoubleClick:Pc,onEdgeMouseEnter:Lc,onEdgeMouseMove:Rc,onEdgeMouseLeave:$c,reconnectRadius:Oc=10,onNodesChange:jc,onEdgesChange:Dc,noDragClassName:zc="nodrag",noWheelClassName:Vc="nowheel",noPanClassName:ai="nopan",fitView:ci,fitViewOptions:ui,connectOnClick:Hc,attributionPosition:Fc,proOptions:Bc,defaultEdgeOptions:qc,elevateNodesOnSelect:Yc=!0,elevateEdgesOnSelect:Gc=!1,disableKeyboardA11y:li=!1,autoPanOnConnect:Wc,autoPanOnNodeDrag:Xc,autoPanSpeed:Uc,connectionRadius:Kc,isValidConnection:Zc,onError:Qc,style:Jc,id:di,nodeDragThreshold:eu,connectionDragThreshold:tu,viewport:nu,onViewportChange:ru,width:iu,height:ou,colorMode:su="light",debug:au,onScroll:It,ariaLabelConfig:cu,zIndexMode:fi="basic",...uu},lu){const yn=di||"1",du=kp(su),fu=V.useCallback(hi=>{hi.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),It==null||It(hi)},[It]);return A.jsx("div",{"data-testid":"rf__wrapper",...uu,onScroll:fu,style:{...Jc,...Wg},ref:lu,className:ae(["react-flow",i,du]),id:di,role:"application",children:A.jsxs(Gg,{nodes:e,edges:t,width:iu,height:ou,fitView:ci,fitViewOptions:ui,minZoom:Fe,maxZoom:ot,nodeOrigin:nt,nodeExtent:mn,zIndexMode:fi,children:[A.jsx(Bg,{onInit:d,onNodeClick:a,onEdgeClick:u,onNodeMouseEnter:v,onNodeMouseMove:g,onNodeMouseLeave:w,onNodeContextMenu:k,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:o,connectionLineType:F,connectionLineStyle:T,connectionLineComponent:$,connectionLineContainerStyle:z,selectionKeyCode:G,selectionOnDrag:Y,selectionMode:W,deleteKeyCode:B,multiSelectionKeyCode:Q,panActivationKeyCode:Z,zoomActivationKeyCode:U,onlyRenderVisibleElements:ne,defaultViewport:Mt,translateExtent:si,minZoom:Fe,maxZoom:ot,preventScrolling:lc,zoomOnScroll:fc,zoomOnPinch:hc,zoomOnDoubleClick:yc,panOnScroll:pc,panOnScrollSpeed:gc,panOnScrollMode:mc,panOnDrag:xc,onPaneClick:wc,onPaneMouseEnter:vc,onPaneMouseMove:bc,onPaneMouseLeave:_c,onPaneScroll:Ec,onPaneContextMenu:Nc,paneClickDistance:Sc,nodeClickDistance:kc,onSelectionContextMenu:D,onSelectionStart:O,onSelectionEnd:R,onReconnect:Mc,onReconnectStart:Ic,onReconnectEnd:Ac,onEdgeContextMenu:Tc,onEdgeDoubleClick:Pc,onEdgeMouseEnter:Lc,onEdgeMouseMove:Rc,onEdgeMouseLeave:$c,reconnectRadius:Oc,defaultMarkerColor:dc,noDragClassName:zc,noWheelClassName:Vc,noPanClassName:ai,rfId:yn,disableKeyboardA11y:li,nodeExtent:mn,viewport:nu,onViewportChange:ru}),A.jsx(Sp,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:p,onConnectEnd:x,onClickConnectStart:m,onClickConnectEnd:y,nodesDraggable:ce,autoPanOnNodeFocus:Ce,nodesConnectable:_e,nodesFocusable:Pe,edgesFocusable:rt,edgesReconnectable:it,elementsSelectable:gn,elevateNodesOnSelect:Yc,elevateEdgesOnSelect:Gc,minZoom:Fe,maxZoom:ot,nodeExtent:mn,onNodesChange:jc,onEdgesChange:Dc,snapToGrid:X,snapGrid:J,connectionMode:q,translateExtent:si,connectOnClick:Hc,defaultEdgeOptions:qc,fitView:ci,fitViewOptions:ui,onNodesDelete:I,onEdgesDelete:S,onDelete:C,onNodeDragStart:M,onNodeDrag:b,onNodeDragStop:N,onSelectionDrag:L,onSelectionDragStart:E,onSelectionDragStop:P,onMove:l,onMoveStart:c,onMoveEnd:f,noPanClassName:ai,nodeOrigin:nt,rfId:yn,autoPanOnConnect:Wc,autoPanOnNodeDrag:Xc,autoPanSpeed:Uc,onError:Qc,connectionRadius:Kc,isValidConnection:Zc,selectNodesOnDrag:ee,nodeDragThreshold:eu,connectionDragThreshold:tu,onBeforeDelete:H,debug:au,ariaLabelConfig:cu,zIndexMode:fi}),A.jsx(bp,{onSelectionChange:j}),Cc,A.jsx(mp,{proOptions:Bc,position:Fc}),A.jsx(gp,{rfId:yn,disableKeyboardA11y:li})]})})}var u0=Ta(Xg);const Ug=e=>{var t;return(t=e.domNode)==null?void 0:t.querySelector(".react-flow__edgelabel-renderer")};function Kg({children:e}){const t=te(Ug);return t?cp.createPortal(e,t):null}function l0(e){const[t,n]=V.useState(e),r=V.useCallback(i=>n(s=>Ia(i,s)),[]);return[t,n,r]}function d0(e){const[t,n]=V.useState(e),r=V.useCallback(i=>n(s=>Aa(i,s)),[]);return[t,n,r]}function Zg({dimensions:e,lineWidth:t,variant:n,className:r}){return A.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ae(["react-flow__background-pattern",n,r])})}function Qg({radius:e,className:t}){return A.jsx("circle",{cx:e,cy:e,r:e,className:ae(["react-flow__background-pattern","dots",t])})}var Te;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Te||(Te={}));const Jg={[Te.Dots]:1,[Te.Lines]:1,[Te.Cross]:6},em=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function tc({id:e,variant:t=Te.Dots,gap:n=20,size:r,lineWidth:i=1,offset:s=0,color:o,bgColor:a,style:u,className:d,patternClassName:l}){const c=V.useRef(null),{transform:f,patternId:h}=te(em,re),p=r||Jg[t],x=t===Te.Dots,m=t===Te.Cross,y=Array.isArray(n)?n:[n,n],v=[y[0]*f[2]||1,y[1]*f[2]||1],g=p*f[2],w=Array.isArray(s)?s:[s,s],k=m?[g,g]:v,_=[w[0]*f[2]||1+k[0]/2,w[1]*f[2]||1+k[1]/2],M=`${h}${e||""}`;return A.jsxs("svg",{className:ae(["react-flow__background",d]),style:{...u,...pn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:c,"data-testid":"rf__background",children:[A.jsx("pattern",{id:M,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:x?A.jsx(Qg,{radius:g/2,className:l}):A.jsx(Zg,{dimensions:k,lineWidth:i,variant:t,className:l})}),A.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${M})`})]})}tc.displayName="Background";const f0=V.memo(tc);function tm(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:A.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function nm(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:A.jsx("path",{d:"M0 0h32v4.2H0z"})})}function rm(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:A.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function im(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:A.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function om(){return A.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:A.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Dt({children:e,className:t,...n}){return A.jsx("button",{type:"button",className:ae(["react-flow__controls-button",t]),...n,children:e})}const sm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function nc({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:o,onFitView:a,onInteractiveChange:u,className:d,children:l,position:c="bottom-left",orientation:f="vertical","aria-label":h}){const p=ie(),{isInteractive:x,minZoomReached:m,maxZoomReached:y,ariaLabelConfig:v}=te(sm,re),{zoomIn:g,zoomOut:w,fitView:k}=ri(),_=()=>{g(),s==null||s()},M=()=>{w(),o==null||o()},b=()=>{k(i),a==null||a()},N=()=>{p.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),u==null||u(!x)},I=f==="horizontal"?"horizontal":"vertical";return A.jsxs(hn,{className:ae(["react-flow__controls",I,d]),position:c,style:e,"data-testid":"rf__controls","aria-label":h??v["controls.ariaLabel"],children:[t&&A.jsxs(A.Fragment,{children:[A.jsx(Dt,{onClick:_,className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:y,children:A.jsx(tm,{})}),A.jsx(Dt,{onClick:M,className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:m,children:A.jsx(nm,{})})]}),n&&A.jsx(Dt,{className:"react-flow__controls-fitview",onClick:b,title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:A.jsx(rm,{})}),r&&A.jsx(Dt,{className:"react-flow__controls-interactive",onClick:N,title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:x?A.jsx(om,{}):A.jsx(im,{})}),l]})}nc.displayName="Controls";const h0=V.memo(nc);function am({id:e,x:t,y:n,width:r,height:i,style:s,color:o,strokeColor:a,strokeWidth:u,className:d,borderRadius:l,shapeRendering:c,selected:f,onClick:h}){const{background:p,backgroundColor:x}=s||{},m=o||p||x;return A.jsx("rect",{className:ae(["react-flow__minimap-node",{selected:f},d]),x:t,y:n,rx:l,ry:l,width:r,height:i,style:{fill:m,stroke:a,strokeWidth:u},shapeRendering:c,onClick:h?y=>h(y,e):void 0})}const cm=V.memo(am),um=e=>e.nodes.map(t=>t.id),An=e=>e instanceof Function?e:()=>e;function lm({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:s=cm,onClick:o}){const a=te(um,re),u=An(t),d=An(e),l=An(n),c=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return A.jsx(A.Fragment,{children:a.map(f=>A.jsx(fm,{id:f,nodeColorFunc:u,nodeStrokeColorFunc:d,nodeClassNameFunc:l,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:s,onClick:o,shapeRendering:c},f))})}function dm({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:s,shapeRendering:o,NodeComponent:a,onClick:u}){const{node:d,x:l,y:c,width:f,height:h}=te(p=>{const x=p.nodeLookup.get(e);if(!x)return{node:void 0,x:0,y:0,width:0,height:0};const m=x.internals.userNode,{x:y,y:v}=x.internals.positionAbsolute,{width:g,height:w}=ke(m);return{node:m,x:y,y:v,width:g,height:w}},re);return!d||d.hidden||!ia(d)?null:A.jsx(a,{x:l,y:c,width:f,height:h,style:d.style,selected:!!d.selected,className:r(d),color:t(d),borderRadius:i,strokeColor:n(d),strokeWidth:s,shapeRendering:o,onClick:u,id:d.id})}const fm=V.memo(dm);var hm=V.memo(lm);const pm=200,gm=150,mm=e=>!e.hidden,ym=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ra(Nt(e.nodeLookup,{filter:mm}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},xm="react-flow__minimap-desc";function rc({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:u,maskColor:d,maskStrokeColor:l,maskStrokeWidth:c,position:f="bottom-right",onClick:h,onNodeClick:p,pannable:x=!1,zoomable:m=!1,ariaLabel:y,inversePan:v,zoomStep:g=1,offsetScale:w=5}){const k=ie(),_=V.useRef(null),{boundingRect:M,viewBB:b,rfId:N,panZoom:I,translateExtent:S,flowWidth:C,flowHeight:j,ariaLabelConfig:E}=te(ym,re),L=(e==null?void 0:e.width)??pm,P=(e==null?void 0:e.height)??gm,D=M.width/L,O=M.height/P,R=Math.max(D,O),H=R*L,q=R*P,F=w*R,T=M.x-(H-M.width)/2-F,$=M.y-(q-M.height)/2-F,z=H+F*2,B=q+F*2,G=`${xm}-${N}`,Y=V.useRef(0),W=V.useRef();Y.current=R,V.useEffect(()=>{if(_.current&&I)return W.current=$h({domNode:_.current,panZoom:I,getTransform:()=>k.getState().transform,getViewScale:()=>Y.current}),()=>{var X;(X=W.current)==null||X.destroy()}},[I]),V.useEffect(()=>{var X;(X=W.current)==null||X.update({translateExtent:S,width:C,height:j,inversePan:v,pannable:x,zoomStep:g,zoomable:m})},[x,m,v,g,S,C,j]);const Z=h?X=>{var ee;const[J,ne]=((ee=W.current)==null?void 0:ee.pointer(X))||[0,0];h(X,{x:J,y:ne})}:void 0,Q=p?V.useCallback((X,J)=>{const ne=k.getState().nodeLookup.get(J).internals.userNode;p(X,ne)},[]):void 0,U=y??E["minimap.ariaLabel"];return A.jsx(hn,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-stroke-width-props":typeof c=="number"?c*R:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o=="number"?o:void 0},className:ae(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:A.jsxs("svg",{width:L,height:P,viewBox:`${T} ${$} ${z} ${B}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":G,ref:_,onClick:Z,children:[U&&A.jsx("title",{id:G,children:U}),A.jsx(hm,{onClick:Q,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:a}),A.jsx("path",{className:"react-flow__minimap-mask",d:`M${T-F},${$-F}h${z+F*2}v${B+F*2}h${-z-F*2}z
23
+ M${b.x},${b.y}h${b.width}v${b.height}h${-b.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}rc.displayName="MiniMap";const p0=V.memo(rc),wm=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,vm={[et.Line]:"right",[et.Handle]:"bottom-right"};function bm({nodeId:e,position:t,variant:n=et.Handle,className:r,style:i=void 0,children:s,color:o,minWidth:a=10,minHeight:u=10,maxWidth:d=Number.MAX_VALUE,maxHeight:l=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:f,autoScale:h=!0,shouldResize:p,onResizeStart:x,onResize:m,onResizeEnd:y}){const v=$a(),g=typeof e=="string"?e:v,w=ie(),k=V.useRef(null),_=n===et.Handle,M=te(V.useCallback(wm(_&&h),[_,h]),re),b=V.useRef(null),N=t??vm[n];V.useEffect(()=>{if(!(!k.current||!g))return b.current||(b.current=Uh({domNode:k.current,nodeId:g,getStoreItems:()=>{const{nodeLookup:S,transform:C,snapGrid:j,snapToGrid:E,nodeOrigin:L,domNode:P}=w.getState();return{nodeLookup:S,transform:C,snapGrid:j,snapToGrid:E,nodeOrigin:L,paneDomNode:P}},onChange:(S,C)=>{const{triggerNodeChanges:j,nodeLookup:E,parentLookup:L,nodeOrigin:P}=w.getState(),D=[],O={x:S.x,y:S.y},R=E.get(g);if(R&&R.expandParent&&R.parentId){const H=R.origin??P,q=S.width??R.measured.width??0,F=S.height??R.measured.height??0,T={id:R.id,parentId:R.parentId,rect:{width:q,height:F,...oa({x:S.x??R.position.x,y:S.y??R.position.y},{width:q,height:F},R.parentId,E,H)}},$=ni([T],E,L,P);D.push(...$),O.x=S.x?Math.max(H[0]*q,S.x):void 0,O.y=S.y?Math.max(H[1]*F,S.y):void 0}if(O.x!==void 0&&O.y!==void 0){const H={id:g,type:"position",position:{...O}};D.push(H)}if(S.width!==void 0&&S.height!==void 0){const q={id:g,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:S.width,height:S.height}};D.push(q)}for(const H of C){const q={...H,type:"position"};D.push(q)}j(D)},onEnd:({width:S,height:C})=>{const j={id:g,type:"dimensions",resizing:!1,dimensions:{width:S,height:C}};w.getState().triggerNodeChanges([j])}})),b.current.update({controlPosition:N,boundaries:{minWidth:a,minHeight:u,maxWidth:d,maxHeight:l},keepAspectRatio:c,resizeDirection:f,onResizeStart:x,onResize:m,onResizeEnd:y,shouldResize:p}),()=>{var S;(S=b.current)==null||S.destroy()}},[N,a,u,d,l,c,x,m,y,p]);const I=N.split("-");return A.jsx("div",{className:ae(["react-flow__resize-control","nodrag",...I,n,r]),ref:k,style:{...i,scale:M,...o&&{[_?"backgroundColor":"borderColor"]:o}},children:s})}V.memo(bm);const g0=V.memo(function({data:t}){const n=zr[t.nodeType]||"#6c757d",r=xs[t.status]||"#9e9e9e";return A.jsxs(A.Fragment,{children:[A.jsx(tt,{type:"target",position:K.Top,className:"!w-2 !h-2"}),A.jsxs("div",{className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded-lg p-2.5 shadow-sm hover:shadow-md transition-shadow cursor-pointer min-w-[200px]",children:[A.jsxs("div",{className:"flex items-center justify-between mb-1",children:[A.jsx("span",{className:"text-[10px] font-semibold uppercase px-1.5 py-0.5 rounded",style:{background:`${n}20`,color:n},children:t.nodeType}),A.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:`${r}20`,color:r},children:t.status.replace("_"," ")})]}),A.jsx("div",{className:"text-sm font-medium leading-tight line-clamp-2 mb-1",children:t.label}),A.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-[var(--color-text-muted)]",children:[A.jsxs("span",{children:["P",t.priority]}),t.xpSize&&A.jsx("span",{children:t.xpSize}),t.sprint&&A.jsx("span",{children:t.sprint})]})]}),A.jsx(tt,{type:"source",position:K.Bottom,className:"!w-2 !h-2"})]})}),m0=V.memo(function({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:o,targetPosition:a,data:u,style:d={}}){const[l,c,f]=Zr({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:s,targetPosition:a}),h=(u==null?void 0:u.relationType)||"related_to",p=qt[h]||qt.related_to;return A.jsxs(A.Fragment,{children:[A.jsx(Ct,{id:t,path:l,style:{...d,stroke:p.color,strokeDasharray:p.dashed?"5 5":void 0,strokeWidth:1.5}}),A.jsx(Kg,{children:A.jsx("div",{className:"text-[9px] text-[var(--color-text-muted)] bg-[var(--color-bg)] px-1 rounded pointer-events-none absolute",style:{transform:`translate(-50%, -50%) translate(${c}px,${f}px)`},children:p.label})})]})}),y0=V.memo(function({node:t,onClose:n}){if(!t)return null;const r=zr[t.type]||"#6c757d",i=xs[t.status]||"#9e9e9e";return A.jsxs("div",{className:"w-80 border-l border-[var(--color-border)] bg-[var(--color-bg-secondary)] overflow-y-auto p-4",children:[A.jsxs("div",{className:"flex items-center justify-between mb-3",children:[A.jsx("h3",{className:"text-sm font-bold",children:"Node Details"}),A.jsx("button",{onClick:n,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] text-lg leading-none",children:"×"})]}),A.jsx("h4",{className:"text-base font-semibold mb-3",children:t.title}),A.jsxs("div",{className:"space-y-2 text-sm",children:[A.jsx(Le,{label:"ID",children:A.jsx("code",{className:"text-xs bg-[var(--color-bg-tertiary)] px-1 rounded break-all",children:t.id})}),A.jsx(Le,{label:"Type",children:A.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:`${r}20`,color:r},children:t.type})}),A.jsx(Le,{label:"Status",children:A.jsx("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{background:`${i}20`,color:i},children:t.status.replace("_"," ")})}),A.jsxs(Le,{label:"Priority",children:["P",t.priority]}),t.xpSize&&A.jsx(Le,{label:"Size",children:t.xpSize}),t.estimateMinutes!=null&&A.jsxs(Le,{label:"Estimate",children:[t.estimateMinutes,"min"]}),t.sprint&&A.jsx(Le,{label:"Sprint",children:t.sprint}),t.description&&A.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[A.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Description"}),A.jsx("p",{className:"text-xs whitespace-pre-wrap",children:t.description})]}),t.acceptanceCriteria&&t.acceptanceCriteria.length>0&&A.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[A.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Acceptance Criteria (",t.acceptanceCriteria.length,")"]}),A.jsx("ul",{className:"text-xs space-y-1 list-disc pl-4",children:t.acceptanceCriteria.map((s,o)=>A.jsx("li",{children:s},o))})]}),t.tags&&t.tags.length>0&&A.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[A.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Tags"}),A.jsx("div",{className:"flex flex-wrap gap-1",children:t.tags.map(s=>A.jsx("span",{className:"text-[10px] bg-[var(--color-bg-tertiary)] px-1.5 py-0.5 rounded",children:s},s))})]}),t.sourceRef&&A.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[A.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Source"}),A.jsxs("div",{className:"text-xs",children:[t.sourceRef.file,t.sourceRef.startLine!=null&&` (L${t.sourceRef.startLine}–${t.sourceRef.endLine??"?"})`]})]}),A.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)] text-[10px] text-[var(--color-text-muted)]",children:[A.jsxs("div",{children:["Created: ",new Date(t.createdAt).toLocaleString()]}),A.jsxs("div",{children:["Updated: ",new Date(t.updatedAt).toLocaleString()]})]})]})]})});function Le({label:e,children:t}){return A.jsxs("div",{className:"flex items-start justify-between gap-2",children:[A.jsx("span",{className:"text-xs text-[var(--color-text-muted)] shrink-0",children:e}),A.jsx("div",{className:"text-right",children:t})]})}var Tn,bo;function oi(){if(bo)return Tn;bo=1;var e="\0",t="\0",n="";class r{constructor(l){oe(this,"_isDirected",!0);oe(this,"_isMultigraph",!1);oe(this,"_isCompound",!1);oe(this,"_label");oe(this,"_defaultNodeLabelFn",()=>{});oe(this,"_defaultEdgeLabelFn",()=>{});oe(this,"_nodes",{});oe(this,"_in",{});oe(this,"_preds",{});oe(this,"_out",{});oe(this,"_sucs",{});oe(this,"_edgeObjs",{});oe(this,"_edgeLabels",{});oe(this,"_nodeCount",0);oe(this,"_edgeCount",0);oe(this,"_parent");oe(this,"_children");l&&(this._isDirected=Object.hasOwn(l,"directed")?l.directed:!0,this._isMultigraph=Object.hasOwn(l,"multigraph")?l.multigraph:!1,this._isCompound=Object.hasOwn(l,"compound")?l.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(l){return this._label=l,this}graph(){return this._label}setDefaultNodeLabel(l){return this._defaultNodeLabelFn=l,typeof l!="function"&&(this._defaultNodeLabelFn=()=>l),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var l=this;return this.nodes().filter(c=>Object.keys(l._in[c]).length===0)}sinks(){var l=this;return this.nodes().filter(c=>Object.keys(l._out[c]).length===0)}setNodes(l,c){var f=arguments,h=this;return l.forEach(function(p){f.length>1?h.setNode(p,c):h.setNode(p)}),this}setNode(l,c){return Object.hasOwn(this._nodes,l)?(arguments.length>1&&(this._nodes[l]=c),this):(this._nodes[l]=arguments.length>1?c:this._defaultNodeLabelFn(l),this._isCompound&&(this._parent[l]=t,this._children[l]={},this._children[t][l]=!0),this._in[l]={},this._preds[l]={},this._out[l]={},this._sucs[l]={},++this._nodeCount,this)}node(l){return this._nodes[l]}hasNode(l){return Object.hasOwn(this._nodes,l)}removeNode(l){var c=this;if(Object.hasOwn(this._nodes,l)){var f=h=>c.removeEdge(c._edgeObjs[h]);delete this._nodes[l],this._isCompound&&(this._removeFromParentsChildList(l),delete this._parent[l],this.children(l).forEach(function(h){c.setParent(h)}),delete this._children[l]),Object.keys(this._in[l]).forEach(f),delete this._in[l],delete this._preds[l],Object.keys(this._out[l]).forEach(f),delete this._out[l],delete this._sucs[l],--this._nodeCount}return this}setParent(l,c){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(c===void 0)c=t;else{c+="";for(var f=c;f!==void 0;f=this.parent(f))if(f===l)throw new Error("Setting "+c+" as parent of "+l+" would create a cycle");this.setNode(c)}return this.setNode(l),this._removeFromParentsChildList(l),this._parent[l]=c,this._children[c][l]=!0,this}_removeFromParentsChildList(l){delete this._children[this._parent[l]][l]}parent(l){if(this._isCompound){var c=this._parent[l];if(c!==t)return c}}children(l=t){if(this._isCompound){var c=this._children[l];if(c)return Object.keys(c)}else{if(l===t)return this.nodes();if(this.hasNode(l))return[]}}predecessors(l){var c=this._preds[l];if(c)return Object.keys(c)}successors(l){var c=this._sucs[l];if(c)return Object.keys(c)}neighbors(l){var c=this.predecessors(l);if(c){const h=new Set(c);for(var f of this.successors(l))h.add(f);return Array.from(h.values())}}isLeaf(l){var c;return this.isDirected()?c=this.successors(l):c=this.neighbors(l),c.length===0}filterNodes(l){var c=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});c.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([x,m]){l(x)&&c.setNode(x,m)}),Object.values(this._edgeObjs).forEach(function(x){c.hasNode(x.v)&&c.hasNode(x.w)&&c.setEdge(x,f.edge(x))});var h={};function p(x){var m=f.parent(x);return m===void 0||c.hasNode(m)?(h[x]=m,m):m in h?h[m]:p(m)}return this._isCompound&&c.nodes().forEach(x=>c.setParent(x,p(x))),c}setDefaultEdgeLabel(l){return this._defaultEdgeLabelFn=l,typeof l!="function"&&(this._defaultEdgeLabelFn=()=>l),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(l,c){var f=this,h=arguments;return l.reduce(function(p,x){return h.length>1?f.setEdge(p,x,c):f.setEdge(p,x),x}),this}setEdge(){var l,c,f,h,p=!1,x=arguments[0];typeof x=="object"&&x!==null&&"v"in x?(l=x.v,c=x.w,f=x.name,arguments.length===2&&(h=arguments[1],p=!0)):(l=x,c=arguments[1],f=arguments[3],arguments.length>2&&(h=arguments[2],p=!0)),l=""+l,c=""+c,f!==void 0&&(f=""+f);var m=o(this._isDirected,l,c,f);if(Object.hasOwn(this._edgeLabels,m))return p&&(this._edgeLabels[m]=h),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(l),this.setNode(c),this._edgeLabels[m]=p?h:this._defaultEdgeLabelFn(l,c,f);var y=a(this._isDirected,l,c,f);return l=y.v,c=y.w,Object.freeze(y),this._edgeObjs[m]=y,i(this._preds[c],l),i(this._sucs[l],c),this._in[c][m]=y,this._out[l][m]=y,this._edgeCount++,this}edge(l,c,f){var h=arguments.length===1?u(this._isDirected,arguments[0]):o(this._isDirected,l,c,f);return this._edgeLabels[h]}edgeAsObj(){const l=this.edge(...arguments);return typeof l!="object"?{label:l}:l}hasEdge(l,c,f){var h=arguments.length===1?u(this._isDirected,arguments[0]):o(this._isDirected,l,c,f);return Object.hasOwn(this._edgeLabels,h)}removeEdge(l,c,f){var h=arguments.length===1?u(this._isDirected,arguments[0]):o(this._isDirected,l,c,f),p=this._edgeObjs[h];return p&&(l=p.v,c=p.w,delete this._edgeLabels[h],delete this._edgeObjs[h],s(this._preds[c],l),s(this._sucs[l],c),delete this._in[c][h],delete this._out[l][h],this._edgeCount--),this}inEdges(l,c){var f=this._in[l];if(f){var h=Object.values(f);return c?h.filter(p=>p.v===c):h}}outEdges(l,c){var f=this._out[l];if(f){var h=Object.values(f);return c?h.filter(p=>p.w===c):h}}nodeEdges(l,c){var f=this.inEdges(l,c);if(f)return f.concat(this.outEdges(l,c))}}function i(d,l){d[l]?d[l]++:d[l]=1}function s(d,l){--d[l]||delete d[l]}function o(d,l,c,f){var h=""+l,p=""+c;if(!d&&h>p){var x=h;h=p,p=x}return h+n+p+n+(f===void 0?e:f)}function a(d,l,c,f){var h=""+l,p=""+c;if(!d&&h>p){var x=h;h=p,p=x}var m={v:h,w:p};return f&&(m.name=f),m}function u(d,l){return o(d,l.v,l.w,l.name)}return Tn=r,Tn}var Pn,_o;function _m(){return _o||(_o=1,Pn="2.2.4"),Pn}var Ln,Eo;function Em(){return Eo||(Eo=1,Ln={Graph:oi(),version:_m()}),Ln}var Rn,No;function Nm(){if(No)return Rn;No=1;var e=oi();Rn={write:t,read:i};function t(s){var o={options:{directed:s.isDirected(),multigraph:s.isMultigraph(),compound:s.isCompound()},nodes:n(s),edges:r(s)};return s.graph()!==void 0&&(o.value=structuredClone(s.graph())),o}function n(s){return s.nodes().map(function(o){var a=s.node(o),u=s.parent(o),d={v:o};return a!==void 0&&(d.value=a),u!==void 0&&(d.parent=u),d})}function r(s){return s.edges().map(function(o){var a=s.edge(o),u={v:o.v,w:o.w};return o.name!==void 0&&(u.name=o.name),a!==void 0&&(u.value=a),u})}function i(s){var o=new e(s.options).setGraph(s.value);return s.nodes.forEach(function(a){o.setNode(a.v,a.value),a.parent&&o.setParent(a.v,a.parent)}),s.edges.forEach(function(a){o.setEdge({v:a.v,w:a.w,name:a.name},a.value)}),o}return Rn}var $n,So;function Sm(){if(So)return $n;So=1,$n=e;function e(t){var n={},r=[],i;function s(o){Object.hasOwn(n,o)||(n[o]=!0,i.push(o),t.successors(o).forEach(s),t.predecessors(o).forEach(s))}return t.nodes().forEach(function(o){i=[],s(o),i.length&&r.push(i)}),r}return $n}var On,ko;function ic(){if(ko)return On;ko=1;class e{constructor(){oe(this,"_arr",[]);oe(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,r){var i=this._keyIndices;if(n=String(n),!Object.hasOwn(i,n)){var s=this._arr,o=s.length;return i[n]=o,s.push({key:n,priority:r}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,r){var i=this._keyIndices[n];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)}_heapify(n){var r=this._arr,i=2*n,s=i+1,o=n;i<r.length&&(o=r[i].priority<r[o].priority?i:o,s<r.length&&(o=r[s].priority<r[o].priority?s:o),o!==n&&(this._swap(n,o),this._heapify(o)))}_decrease(n){for(var r=this._arr,i=r[n].priority,s;n!==0&&(s=n>>1,!(r[s].priority<i));)this._swap(n,s),n=s}_swap(n,r){var i=this._arr,s=this._keyIndices,o=i[n],a=i[r];i[n]=a,i[r]=o,s[a.key]=n,s[o.key]=r}}return On=e,On}var jn,Co;function oc(){if(Co)return jn;Co=1;var e=ic();jn=n;var t=()=>1;function n(i,s,o,a){return r(i,String(s),o||t,a||function(u){return i.outEdges(u)})}function r(i,s,o,a){var u={},d=new e,l,c,f=function(h){var p=h.v!==l?h.v:h.w,x=u[p],m=o(h),y=c.distance+m;if(m<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+m);y<x.distance&&(x.distance=y,x.predecessor=l,d.decrease(p,y))};for(i.nodes().forEach(function(h){var p=h===s?0:Number.POSITIVE_INFINITY;u[h]={distance:p},d.add(h,p)});d.size()>0&&(l=d.removeMin(),c=u[l],c.distance!==Number.POSITIVE_INFINITY);)a(l).forEach(f);return u}return jn}var Dn,Mo;function km(){if(Mo)return Dn;Mo=1;var e=oc();Dn=t;function t(n,r,i){return n.nodes().reduce(function(s,o){return s[o]=e(n,o,r,i),s},{})}return Dn}var zn,Io;function sc(){if(Io)return zn;Io=1,zn=e;function e(t){var n=0,r=[],i={},s=[];function o(a){var u=i[a]={onStack:!0,lowlink:n,index:n++};if(r.push(a),t.successors(a).forEach(function(c){Object.hasOwn(i,c)?i[c].onStack&&(u.lowlink=Math.min(u.lowlink,i[c].index)):(o(c),u.lowlink=Math.min(u.lowlink,i[c].lowlink))}),u.lowlink===u.index){var d=[],l;do l=r.pop(),i[l].onStack=!1,d.push(l);while(a!==l);s.push(d)}}return t.nodes().forEach(function(a){Object.hasOwn(i,a)||o(a)}),s}return zn}var Vn,Ao;function Cm(){if(Ao)return Vn;Ao=1;var e=sc();Vn=t;function t(n){return e(n).filter(function(r){return r.length>1||r.length===1&&n.hasEdge(r[0],r[0])})}return Vn}var Hn,To;function Mm(){if(To)return Hn;To=1,Hn=t;var e=()=>1;function t(r,i,s){return n(r,i||e,s||function(o){return r.outEdges(o)})}function n(r,i,s){var o={},a=r.nodes();return a.forEach(function(u){o[u]={},o[u][u]={distance:0},a.forEach(function(d){u!==d&&(o[u][d]={distance:Number.POSITIVE_INFINITY})}),s(u).forEach(function(d){var l=d.v===u?d.w:d.v,c=i(d);o[u][l]={distance:c,predecessor:u}})}),a.forEach(function(u){var d=o[u];a.forEach(function(l){var c=o[l];a.forEach(function(f){var h=c[u],p=d[f],x=c[f],m=h.distance+p.distance;m<x.distance&&(x.distance=m,x.predecessor=p.predecessor)})})}),o}return Hn}var Fn,Po;function ac(){if(Po)return Fn;Po=1;function e(n){var r={},i={},s=[];function o(a){if(Object.hasOwn(i,a))throw new t;Object.hasOwn(r,a)||(i[a]=!0,r[a]=!0,n.predecessors(a).forEach(o),delete i[a],s.push(a))}if(n.sinks().forEach(o),Object.keys(r).length!==n.nodeCount())throw new t;return s}class t extends Error{constructor(){super(...arguments)}}return Fn=e,e.CycleException=t,Fn}var Bn,Lo;function Im(){if(Lo)return Bn;Lo=1;var e=ac();Bn=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return Bn}var qn,Ro;function cc(){if(Ro)return qn;Ro=1,qn=e;function e(i,s,o){Array.isArray(s)||(s=[s]);var a=i.isDirected()?c=>i.successors(c):c=>i.neighbors(c),u=o==="post"?t:n,d=[],l={};return s.forEach(c=>{if(!i.hasNode(c))throw new Error("Graph does not have node: "+c);u(c,a,l,d)}),d}function t(i,s,o,a){for(var u=[[i,!1]];u.length>0;){var d=u.pop();d[1]?a.push(d[0]):Object.hasOwn(o,d[0])||(o[d[0]]=!0,u.push([d[0],!0]),r(s(d[0]),l=>u.push([l,!1])))}}function n(i,s,o,a){for(var u=[i];u.length>0;){var d=u.pop();Object.hasOwn(o,d)||(o[d]=!0,a.push(d),r(s(d),l=>u.push(l)))}}function r(i,s){for(var o=i.length;o--;)s(i[o],o,i);return i}return qn}var Yn,$o;function Am(){if($o)return Yn;$o=1;var e=cc();Yn=t;function t(n,r){return e(n,r,"post")}return Yn}var Gn,Oo;function Tm(){if(Oo)return Gn;Oo=1;var e=cc();Gn=t;function t(n,r){return e(n,r,"pre")}return Gn}var Wn,jo;function Pm(){if(jo)return Wn;jo=1;var e=oi(),t=ic();Wn=n;function n(r,i){var s=new e,o={},a=new t,u;function d(c){var f=c.v===u?c.w:c.v,h=a.priority(f);if(h!==void 0){var p=i(c);p<h&&(o[f]=u,a.decrease(f,p))}}if(r.nodeCount()===0)return s;r.nodes().forEach(function(c){a.add(c,Number.POSITIVE_INFINITY),s.setNode(c)}),a.decrease(r.nodes()[0],0);for(var l=!1;a.size()>0;){if(u=a.removeMin(),Object.hasOwn(o,u))s.setEdge(u,o[u]);else{if(l)throw new Error("Input graph is not connected: "+r);l=!0}r.nodeEdges(u).forEach(d)}return s}return Wn}var Xn,Do;function Lm(){return Do||(Do=1,Xn={components:Sm(),dijkstra:oc(),dijkstraAll:km(),findCycles:Cm(),floydWarshall:Mm(),isAcyclic:Im(),postorder:Am(),preorder:Tm(),prim:Pm(),tarjan:sc(),topsort:ac()}),Xn}var Un,zo;function me(){if(zo)return Un;zo=1;var e=Em();return Un={Graph:e.Graph,json:Nm(),alg:Lm(),version:e.version},Un}var Kn,Vo;function Rm(){if(Vo)return Kn;Vo=1;class e{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,s=i._prev;if(s!==i)return t(s),s}enqueue(i){let s=this._sentinel;i._prev&&i._next&&t(i),i._next=s._next,s._next._prev=i,s._next=i,i._prev=s}toString(){let i=[],s=this._sentinel,o=s._prev;for(;o!==s;)i.push(JSON.stringify(o,n)),o=o._prev;return"["+i.join(", ")+"]"}}function t(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,i){if(r!=="_next"&&r!=="_prev")return i}return Kn=e,Kn}var Zn,Ho;function $m(){if(Ho)return Zn;Ho=1;let e=me().Graph,t=Rm();Zn=r;let n=()=>1;function r(d,l){if(d.nodeCount()<=1)return[];let c=o(d,l||n);return i(c.graph,c.buckets,c.zeroIdx).flatMap(h=>d.outEdges(h.v,h.w))}function i(d,l,c){let f=[],h=l[l.length-1],p=l[0],x;for(;d.nodeCount();){for(;x=p.dequeue();)s(d,l,c,x);for(;x=h.dequeue();)s(d,l,c,x);if(d.nodeCount()){for(let m=l.length-2;m>0;--m)if(x=l[m].dequeue(),x){f=f.concat(s(d,l,c,x,!0));break}}}return f}function s(d,l,c,f,h){let p=h?[]:void 0;return d.inEdges(f.v).forEach(x=>{let m=d.edge(x),y=d.node(x.v);h&&p.push({v:x.v,w:x.w}),y.out-=m,a(l,c,y)}),d.outEdges(f.v).forEach(x=>{let m=d.edge(x),y=x.w,v=d.node(y);v.in-=m,a(l,c,v)}),d.removeNode(f.v),p}function o(d,l){let c=new e,f=0,h=0;d.nodes().forEach(m=>{c.setNode(m,{v:m,in:0,out:0})}),d.edges().forEach(m=>{let y=c.edge(m.v,m.w)||0,v=l(m),g=y+v;c.setEdge(m.v,m.w,g),h=Math.max(h,c.node(m.v).out+=v),f=Math.max(f,c.node(m.w).in+=v)});let p=u(h+f+3).map(()=>new t),x=f+1;return c.nodes().forEach(m=>{a(p,x,c.node(m))}),{graph:c,buckets:p,zeroIdx:x}}function a(d,l,c){c.out?c.in?d[c.out-c.in+l].enqueue(c):d[d.length-1].enqueue(c):d[0].enqueue(c)}function u(d){const l=[];for(let c=0;c<d;c++)l.push(c);return l}return Zn}var Qn,Fo;function se(){if(Fo)return Qn;Fo=1;let e=me().Graph;Qn={addBorderNode:l,addDummyNode:t,applyWithChunking:h,asNonCompoundGraph:r,buildLayerMatrix:a,intersectRect:o,mapValues:_,maxRank:p,normalizeRanks:u,notime:y,partition:x,pick:k,predecessorWeights:s,range:w,removeEmptyRanks:d,simplify:n,successorWeights:i,time:m,uniqueId:g,zipObject:M};function t(b,N,I,S){for(var C=S;b.hasNode(C);)C=g(S);return I.dummy=N,b.setNode(C,I),C}function n(b){let N=new e().setGraph(b.graph());return b.nodes().forEach(I=>N.setNode(I,b.node(I))),b.edges().forEach(I=>{let S=N.edge(I.v,I.w)||{weight:0,minlen:1},C=b.edge(I);N.setEdge(I.v,I.w,{weight:S.weight+C.weight,minlen:Math.max(S.minlen,C.minlen)})}),N}function r(b){let N=new e({multigraph:b.isMultigraph()}).setGraph(b.graph());return b.nodes().forEach(I=>{b.children(I).length||N.setNode(I,b.node(I))}),b.edges().forEach(I=>{N.setEdge(I,b.edge(I))}),N}function i(b){let N=b.nodes().map(I=>{let S={};return b.outEdges(I).forEach(C=>{S[C.w]=(S[C.w]||0)+b.edge(C).weight}),S});return M(b.nodes(),N)}function s(b){let N=b.nodes().map(I=>{let S={};return b.inEdges(I).forEach(C=>{S[C.v]=(S[C.v]||0)+b.edge(C).weight}),S});return M(b.nodes(),N)}function o(b,N){let I=b.x,S=b.y,C=N.x-I,j=N.y-S,E=b.width/2,L=b.height/2;if(!C&&!j)throw new Error("Not possible to find intersection inside of the rectangle");let P,D;return Math.abs(j)*E>Math.abs(C)*L?(j<0&&(L=-L),P=L*C/j,D=L):(C<0&&(E=-E),P=E,D=E*j/C),{x:I+P,y:S+D}}function a(b){let N=w(p(b)+1).map(()=>[]);return b.nodes().forEach(I=>{let S=b.node(I),C=S.rank;C!==void 0&&(N[C][S.order]=I)}),N}function u(b){let N=b.nodes().map(S=>{let C=b.node(S).rank;return C===void 0?Number.MAX_VALUE:C}),I=h(Math.min,N);b.nodes().forEach(S=>{let C=b.node(S);Object.hasOwn(C,"rank")&&(C.rank-=I)})}function d(b){let N=b.nodes().map(E=>b.node(E).rank),I=h(Math.min,N),S=[];b.nodes().forEach(E=>{let L=b.node(E).rank-I;S[L]||(S[L]=[]),S[L].push(E)});let C=0,j=b.graph().nodeRankFactor;Array.from(S).forEach((E,L)=>{E===void 0&&L%j!==0?--C:E!==void 0&&C&&E.forEach(P=>b.node(P).rank+=C)})}function l(b,N,I,S){let C={width:0,height:0};return arguments.length>=4&&(C.rank=I,C.order=S),t(b,"border",C,N)}function c(b,N=f){const I=[];for(let S=0;S<b.length;S+=N){const C=b.slice(S,S+N);I.push(C)}return I}const f=65535;function h(b,N){if(N.length>f){const I=c(N);return b.apply(null,I.map(S=>b.apply(null,S)))}else return b.apply(null,N)}function p(b){const I=b.nodes().map(S=>{let C=b.node(S).rank;return C===void 0?Number.MIN_VALUE:C});return h(Math.max,I)}function x(b,N){let I={lhs:[],rhs:[]};return b.forEach(S=>{N(S)?I.lhs.push(S):I.rhs.push(S)}),I}function m(b,N){let I=Date.now();try{return N()}finally{console.log(b+" time: "+(Date.now()-I)+"ms")}}function y(b,N){return N()}let v=0;function g(b){var N=++v;return b+(""+N)}function w(b,N,I=1){N==null&&(N=b,b=0);let S=j=>j<N;I<0&&(S=j=>N<j);const C=[];for(let j=b;S(j);j+=I)C.push(j);return C}function k(b,N){const I={};for(const S of N)b[S]!==void 0&&(I[S]=b[S]);return I}function _(b,N){let I=N;return typeof N=="string"&&(I=S=>S[N]),Object.entries(b).reduce((S,[C,j])=>(S[C]=I(j,C),S),{})}function M(b,N){return b.reduce((I,S,C)=>(I[S]=N[C],I),{})}return Qn}var Jn,Bo;function Om(){if(Bo)return Jn;Bo=1;let e=$m(),t=se().uniqueId;Jn={run:n,undo:i};function n(s){(s.graph().acyclicer==="greedy"?e(s,a(s)):r(s)).forEach(u=>{let d=s.edge(u);s.removeEdge(u),d.forwardName=u.name,d.reversed=!0,s.setEdge(u.w,u.v,d,t("rev"))});function a(u){return d=>u.edge(d).weight}}function r(s){let o=[],a={},u={};function d(l){Object.hasOwn(u,l)||(u[l]=!0,a[l]=!0,s.outEdges(l).forEach(c=>{Object.hasOwn(a,c.w)?o.push(c):d(c.w)}),delete a[l])}return s.nodes().forEach(d),o}function i(s){s.edges().forEach(o=>{let a=s.edge(o);if(a.reversed){s.removeEdge(o);let u=a.forwardName;delete a.reversed,delete a.forwardName,s.setEdge(o.w,o.v,a,u)}})}return Jn}var er,qo;function jm(){if(qo)return er;qo=1;let e=se();er={run:t,undo:r};function t(i){i.graph().dummyChains=[],i.edges().forEach(s=>n(i,s))}function n(i,s){let o=s.v,a=i.node(o).rank,u=s.w,d=i.node(u).rank,l=s.name,c=i.edge(s),f=c.labelRank;if(d===a+1)return;i.removeEdge(s);let h,p,x;for(x=0,++a;a<d;++x,++a)c.points=[],p={width:0,height:0,edgeLabel:c,edgeObj:s,rank:a},h=e.addDummyNode(i,"edge",p,"_d"),a===f&&(p.width=c.width,p.height=c.height,p.dummy="edge-label",p.labelpos=c.labelpos),i.setEdge(o,h,{weight:c.weight},l),x===0&&i.graph().dummyChains.push(h),o=h;i.setEdge(o,u,{weight:c.weight},l)}function r(i){i.graph().dummyChains.forEach(s=>{let o=i.node(s),a=o.edgeLabel,u;for(i.setEdge(o.edgeObj,a);o.dummy;)u=i.successors(s)[0],i.removeNode(s),a.points.push({x:o.x,y:o.y}),o.dummy==="edge-label"&&(a.x=o.x,a.y=o.y,a.width=o.width,a.height=o.height),s=u,o=i.node(s)})}return er}var tr,Yo;function nn(){if(Yo)return tr;Yo=1;const{applyWithChunking:e}=se();tr={longestPath:t,slack:n};function t(r){var i={};function s(o){var a=r.node(o);if(Object.hasOwn(i,o))return a.rank;i[o]=!0;let u=r.outEdges(o).map(l=>l==null?Number.POSITIVE_INFINITY:s(l.w)-r.edge(l).minlen);var d=e(Math.min,u);return d===Number.POSITIVE_INFINITY&&(d=0),a.rank=d}r.sources().forEach(s)}function n(r,i){return r.node(i.w).rank-r.node(i.v).rank-r.edge(i).minlen}return tr}var nr,Go;function uc(){if(Go)return nr;Go=1;var e=me().Graph,t=nn().slack;nr=n;function n(o){var a=new e({directed:!1}),u=o.nodes()[0],d=o.nodeCount();a.setNode(u,{});for(var l,c;r(a,o)<d;)l=i(a,o),c=a.hasNode(l.v)?t(o,l):-t(o,l),s(a,o,c);return a}function r(o,a){function u(d){a.nodeEdges(d).forEach(l=>{var c=l.v,f=d===c?l.w:c;!o.hasNode(f)&&!t(a,l)&&(o.setNode(f,{}),o.setEdge(d,f,{}),u(f))})}return o.nodes().forEach(u),o.nodeCount()}function i(o,a){return a.edges().reduce((d,l)=>{let c=Number.POSITIVE_INFINITY;return o.hasNode(l.v)!==o.hasNode(l.w)&&(c=t(a,l)),c<d[0]?[c,l]:d},[Number.POSITIVE_INFINITY,null])[1]}function s(o,a,u){o.nodes().forEach(d=>a.node(d).rank+=u)}return nr}var rr,Wo;function Dm(){if(Wo)return rr;Wo=1;var e=uc(),t=nn().slack,n=nn().longestPath,r=me().alg.preorder,i=me().alg.postorder,s=se().simplify;rr=o,o.initLowLimValues=l,o.initCutValues=a,o.calcCutValue=d,o.leaveEdge=f,o.enterEdge=h,o.exchangeEdges=p;function o(v){v=s(v),n(v);var g=e(v);l(g),a(g,v);for(var w,k;w=f(g);)k=h(g,v,w),p(g,v,w,k)}function a(v,g){var w=i(v,v.nodes());w=w.slice(0,w.length-1),w.forEach(k=>u(v,g,k))}function u(v,g,w){var k=v.node(w),_=k.parent;v.edge(w,_).cutvalue=d(v,g,w)}function d(v,g,w){var k=v.node(w),_=k.parent,M=!0,b=g.edge(w,_),N=0;return b||(M=!1,b=g.edge(_,w)),N=b.weight,g.nodeEdges(w).forEach(I=>{var S=I.v===w,C=S?I.w:I.v;if(C!==_){var j=S===M,E=g.edge(I).weight;if(N+=j?E:-E,m(v,w,C)){var L=v.edge(w,C).cutvalue;N+=j?-L:L}}}),N}function l(v,g){arguments.length<2&&(g=v.nodes()[0]),c(v,{},1,g)}function c(v,g,w,k,_){var M=w,b=v.node(k);return g[k]=!0,v.neighbors(k).forEach(N=>{Object.hasOwn(g,N)||(w=c(v,g,w,N,k))}),b.low=M,b.lim=w++,_?b.parent=_:delete b.parent,w}function f(v){return v.edges().find(g=>v.edge(g).cutvalue<0)}function h(v,g,w){var k=w.v,_=w.w;g.hasEdge(k,_)||(k=w.w,_=w.v);var M=v.node(k),b=v.node(_),N=M,I=!1;M.lim>b.lim&&(N=b,I=!0);var S=g.edges().filter(C=>I===y(v,v.node(C.v),N)&&I!==y(v,v.node(C.w),N));return S.reduce((C,j)=>t(g,j)<t(g,C)?j:C)}function p(v,g,w,k){var _=w.v,M=w.w;v.removeEdge(_,M),v.setEdge(k.v,k.w,{}),l(v),a(v,g),x(v,g)}function x(v,g){var w=v.nodes().find(_=>!g.node(_).parent),k=r(v,w);k=k.slice(1),k.forEach(_=>{var M=v.node(_).parent,b=g.edge(_,M),N=!1;b||(b=g.edge(M,_),N=!0),g.node(_).rank=g.node(M).rank+(N?b.minlen:-b.minlen)})}function m(v,g,w){return v.hasEdge(g,w)}function y(v,g,w){return w.low<=g.lim&&g.lim<=w.lim}return rr}var ir,Xo;function zm(){if(Xo)return ir;Xo=1;var e=nn(),t=e.longestPath,n=uc(),r=Dm();ir=i;function i(u){var d=u.graph().ranker;if(d instanceof Function)return d(u);switch(u.graph().ranker){case"network-simplex":a(u);break;case"tight-tree":o(u);break;case"longest-path":s(u);break;case"none":break;default:a(u)}}var s=t;function o(u){t(u),n(u)}function a(u){r(u)}return ir}var or,Uo;function Vm(){if(Uo)return or;Uo=1,or=e;function e(r){let i=n(r);r.graph().dummyChains.forEach(s=>{let o=r.node(s),a=o.edgeObj,u=t(r,i,a.v,a.w),d=u.path,l=u.lca,c=0,f=d[c],h=!0;for(;s!==a.w;){if(o=r.node(s),h){for(;(f=d[c])!==l&&r.node(f).maxRank<o.rank;)c++;f===l&&(h=!1)}if(!h){for(;c<d.length-1&&r.node(f=d[c+1]).minRank<=o.rank;)c++;f=d[c]}r.setParent(s,f),s=r.successors(s)[0]}})}function t(r,i,s,o){let a=[],u=[],d=Math.min(i[s].low,i[o].low),l=Math.max(i[s].lim,i[o].lim),c,f;c=s;do c=r.parent(c),a.push(c);while(c&&(i[c].low>d||l>i[c].lim));for(f=c,c=o;(c=r.parent(c))!==f;)u.push(c);return{path:a.concat(u.reverse()),lca:f}}function n(r){let i={},s=0;function o(a){let u=s;r.children(a).forEach(o),i[a]={low:u,lim:s++}}return r.children().forEach(o),i}return or}var sr,Ko;function Hm(){if(Ko)return sr;Ko=1;let e=se();sr={run:t,cleanup:s};function t(o){let a=e.addDummyNode(o,"root",{},"_root"),u=r(o),d=Object.values(u),l=e.applyWithChunking(Math.max,d)-1,c=2*l+1;o.graph().nestingRoot=a,o.edges().forEach(h=>o.edge(h).minlen*=c);let f=i(o)+1;o.children().forEach(h=>n(o,a,c,f,l,u,h)),o.graph().nodeRankFactor=c}function n(o,a,u,d,l,c,f){let h=o.children(f);if(!h.length){f!==a&&o.setEdge(a,f,{weight:0,minlen:u});return}let p=e.addBorderNode(o,"_bt"),x=e.addBorderNode(o,"_bb"),m=o.node(f);o.setParent(p,f),m.borderTop=p,o.setParent(x,f),m.borderBottom=x,h.forEach(y=>{n(o,a,u,d,l,c,y);let v=o.node(y),g=v.borderTop?v.borderTop:y,w=v.borderBottom?v.borderBottom:y,k=v.borderTop?d:2*d,_=g!==w?1:l-c[f]+1;o.setEdge(p,g,{weight:k,minlen:_,nestingEdge:!0}),o.setEdge(w,x,{weight:k,minlen:_,nestingEdge:!0})}),o.parent(f)||o.setEdge(a,p,{weight:0,minlen:l+c[f]})}function r(o){var a={};function u(d,l){var c=o.children(d);c&&c.length&&c.forEach(f=>u(f,l+1)),a[d]=l}return o.children().forEach(d=>u(d,1)),a}function i(o){return o.edges().reduce((a,u)=>a+o.edge(u).weight,0)}function s(o){var a=o.graph();o.removeNode(a.nestingRoot),delete a.nestingRoot,o.edges().forEach(u=>{var d=o.edge(u);d.nestingEdge&&o.removeEdge(u)})}return sr}var ar,Zo;function Fm(){if(Zo)return ar;Zo=1;let e=se();ar=t;function t(r){function i(s){let o=r.children(s),a=r.node(s);if(o.length&&o.forEach(i),Object.hasOwn(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(let u=a.minRank,d=a.maxRank+1;u<d;++u)n(r,"borderLeft","_bl",s,a,u),n(r,"borderRight","_br",s,a,u)}}r.children().forEach(i)}function n(r,i,s,o,a,u){let d={width:0,height:0,rank:u,borderType:i},l=a[i][u-1],c=e.addDummyNode(r,"border",d,s);a[i][u]=c,r.setParent(c,o),l&&r.setEdge(l,c,{weight:1})}return ar}var cr,Qo;function Bm(){if(Qo)return cr;Qo=1,cr={adjust:e,undo:t};function e(u){let d=u.graph().rankdir.toLowerCase();(d==="lr"||d==="rl")&&n(u)}function t(u){let d=u.graph().rankdir.toLowerCase();(d==="bt"||d==="rl")&&i(u),(d==="lr"||d==="rl")&&(o(u),n(u))}function n(u){u.nodes().forEach(d=>r(u.node(d))),u.edges().forEach(d=>r(u.edge(d)))}function r(u){let d=u.width;u.width=u.height,u.height=d}function i(u){u.nodes().forEach(d=>s(u.node(d))),u.edges().forEach(d=>{let l=u.edge(d);l.points.forEach(s),Object.hasOwn(l,"y")&&s(l)})}function s(u){u.y=-u.y}function o(u){u.nodes().forEach(d=>a(u.node(d))),u.edges().forEach(d=>{let l=u.edge(d);l.points.forEach(a),Object.hasOwn(l,"x")&&a(l)})}function a(u){let d=u.x;u.x=u.y,u.y=d}return cr}var ur,Jo;function qm(){if(Jo)return ur;Jo=1;let e=se();ur=t;function t(n){let r={},i=n.nodes().filter(l=>!n.children(l).length),s=i.map(l=>n.node(l).rank),o=e.applyWithChunking(Math.max,s),a=e.range(o+1).map(()=>[]);function u(l){if(r[l])return;r[l]=!0;let c=n.node(l);a[c.rank].push(l),n.successors(l).forEach(u)}return i.sort((l,c)=>n.node(l).rank-n.node(c).rank).forEach(u),a}return ur}var lr,es;function Ym(){if(es)return lr;es=1;let e=se().zipObject;lr=t;function t(r,i){let s=0;for(let o=1;o<i.length;++o)s+=n(r,i[o-1],i[o]);return s}function n(r,i,s){let o=e(s,s.map((f,h)=>h)),a=i.flatMap(f=>r.outEdges(f).map(h=>({pos:o[h.w],weight:r.edge(h).weight})).sort((h,p)=>h.pos-p.pos)),u=1;for(;u<s.length;)u<<=1;let d=2*u-1;u-=1;let l=new Array(d).fill(0),c=0;return a.forEach(f=>{let h=f.pos+u;l[h]+=f.weight;let p=0;for(;h>0;)h%2&&(p+=l[h+1]),h=h-1>>1,l[h]+=f.weight;c+=f.weight*p}),c}return lr}var dr,ts;function Gm(){if(ts)return dr;ts=1,dr=e;function e(t,n=[]){return n.map(r=>{let i=t.inEdges(r);if(i.length){let s=i.reduce((o,a)=>{let u=t.edge(a),d=t.node(a.v);return{sum:o.sum+u.weight*d.order,weight:o.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:s.sum/s.weight,weight:s.weight}}else return{v:r}})}return dr}var fr,ns;function Wm(){if(ns)return fr;ns=1;let e=se();fr=t;function t(i,s){let o={};i.forEach((u,d)=>{let l=o[u.v]={indegree:0,in:[],out:[],vs:[u.v],i:d};u.barycenter!==void 0&&(l.barycenter=u.barycenter,l.weight=u.weight)}),s.edges().forEach(u=>{let d=o[u.v],l=o[u.w];d!==void 0&&l!==void 0&&(l.indegree++,d.out.push(o[u.w]))});let a=Object.values(o).filter(u=>!u.indegree);return n(a)}function n(i){let s=[];function o(u){return d=>{d.merged||(d.barycenter===void 0||u.barycenter===void 0||d.barycenter>=u.barycenter)&&r(u,d)}}function a(u){return d=>{d.in.push(u),--d.indegree===0&&i.push(d)}}for(;i.length;){let u=i.pop();s.push(u),u.in.reverse().forEach(o(u)),u.out.forEach(a(u))}return s.filter(u=>!u.merged).map(u=>e.pick(u,["vs","i","barycenter","weight"]))}function r(i,s){let o=0,a=0;i.weight&&(o+=i.barycenter*i.weight,a+=i.weight),s.weight&&(o+=s.barycenter*s.weight,a+=s.weight),i.vs=s.vs.concat(i.vs),i.barycenter=o/a,i.weight=a,i.i=Math.min(s.i,i.i),s.merged=!0}return fr}var hr,rs;function Xm(){if(rs)return hr;rs=1;let e=se();hr=t;function t(i,s){let o=e.partition(i,p=>Object.hasOwn(p,"barycenter")),a=o.lhs,u=o.rhs.sort((p,x)=>x.i-p.i),d=[],l=0,c=0,f=0;a.sort(r(!!s)),f=n(d,u,f),a.forEach(p=>{f+=p.vs.length,d.push(p.vs),l+=p.barycenter*p.weight,c+=p.weight,f=n(d,u,f)});let h={vs:d.flat(!0)};return c&&(h.barycenter=l/c,h.weight=c),h}function n(i,s,o){let a;for(;s.length&&(a=s[s.length-1]).i<=o;)s.pop(),i.push(a.vs),o++;return o}function r(i){return(s,o)=>s.barycenter<o.barycenter?-1:s.barycenter>o.barycenter?1:i?o.i-s.i:s.i-o.i}return hr}var pr,is;function Um(){if(is)return pr;is=1;let e=Gm(),t=Wm(),n=Xm();pr=r;function r(o,a,u,d){let l=o.children(a),c=o.node(a),f=c?c.borderLeft:void 0,h=c?c.borderRight:void 0,p={};f&&(l=l.filter(v=>v!==f&&v!==h));let x=e(o,l);x.forEach(v=>{if(o.children(v.v).length){let g=r(o,v.v,u,d);p[v.v]=g,Object.hasOwn(g,"barycenter")&&s(v,g)}});let m=t(x,u);i(m,p);let y=n(m,d);if(f&&(y.vs=[f,y.vs,h].flat(!0),o.predecessors(f).length)){let v=o.node(o.predecessors(f)[0]),g=o.node(o.predecessors(h)[0]);Object.hasOwn(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+v.order+g.order)/(y.weight+2),y.weight+=2}return y}function i(o,a){o.forEach(u=>{u.vs=u.vs.flatMap(d=>a[d]?a[d].vs:d)})}function s(o,a){o.barycenter!==void 0?(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight):(o.barycenter=a.barycenter,o.weight=a.weight)}return pr}var gr,os;function Km(){if(os)return gr;os=1;let e=me().Graph,t=se();gr=n;function n(i,s,o,a){a||(a=i.nodes());let u=r(i),d=new e({compound:!0}).setGraph({root:u}).setDefaultNodeLabel(l=>i.node(l));return a.forEach(l=>{let c=i.node(l),f=i.parent(l);(c.rank===s||c.minRank<=s&&s<=c.maxRank)&&(d.setNode(l),d.setParent(l,f||u),i[o](l).forEach(h=>{let p=h.v===l?h.w:h.v,x=d.edge(p,l),m=x!==void 0?x.weight:0;d.setEdge(p,l,{weight:i.edge(h).weight+m})}),Object.hasOwn(c,"minRank")&&d.setNode(l,{borderLeft:c.borderLeft[s],borderRight:c.borderRight[s]}))}),d}function r(i){for(var s;i.hasNode(s=t.uniqueId("_root")););return s}return gr}var mr,ss;function Zm(){if(ss)return mr;ss=1,mr=e;function e(t,n,r){let i={},s;r.forEach(o=>{let a=t.parent(o),u,d;for(;a;){if(u=t.parent(a),u?(d=i[u],i[u]=a):(d=s,s=a),d&&d!==a){n.setEdge(d,a);return}a=u}})}return mr}var yr,as;function Qm(){if(as)return yr;as=1;let e=qm(),t=Ym(),n=Um(),r=Km(),i=Zm(),s=me().Graph,o=se();yr=a;function a(c,f){if(f&&typeof f.customOrder=="function"){f.customOrder(c,a);return}let h=o.maxRank(c),p=u(c,o.range(1,h+1),"inEdges"),x=u(c,o.range(h-1,-1,-1),"outEdges"),m=e(c);if(l(c,m),f&&f.disableOptimalOrderHeuristic)return;let y=Number.POSITIVE_INFINITY,v;for(let g=0,w=0;w<4;++g,++w){d(g%2?p:x,g%4>=2),m=o.buildLayerMatrix(c);let k=t(c,m);k<y&&(w=0,v=Object.assign({},m),y=k)}l(c,v)}function u(c,f,h){const p=new Map,x=(m,y)=>{p.has(m)||p.set(m,[]),p.get(m).push(y)};for(const m of c.nodes()){const y=c.node(m);if(typeof y.rank=="number"&&x(y.rank,m),typeof y.minRank=="number"&&typeof y.maxRank=="number")for(let v=y.minRank;v<=y.maxRank;v++)v!==y.rank&&x(v,m)}return f.map(function(m){return r(c,m,h,p.get(m)||[])})}function d(c,f){let h=new s;c.forEach(function(p){let x=p.graph().root,m=n(p,x,h,f);m.vs.forEach((y,v)=>p.node(y).order=v),i(p,h,m.vs)})}function l(c,f){Object.values(f).forEach(h=>h.forEach((p,x)=>c.node(p).order=x))}return yr}var xr,cs;function Jm(){if(cs)return xr;cs=1;let e=me().Graph,t=se();xr={positionX:h,findType1Conflicts:n,findType2Conflicts:r,addConflict:s,hasConflict:o,verticalAlignment:a,horizontalCompaction:u,alignCoordinates:c,findSmallestWidthAlignment:l,balance:f};function n(m,y){let v={};function g(w,k){let _=0,M=0,b=w.length,N=k[k.length-1];return k.forEach((I,S)=>{let C=i(m,I),j=C?m.node(C).order:b;(C||I===N)&&(k.slice(M,S+1).forEach(E=>{m.predecessors(E).forEach(L=>{let P=m.node(L),D=P.order;(D<_||j<D)&&!(P.dummy&&m.node(E).dummy)&&s(v,L,E)})}),M=S+1,_=j)}),k}return y.length&&y.reduce(g),v}function r(m,y){let v={};function g(k,_,M,b,N){let I;t.range(_,M).forEach(S=>{I=k[S],m.node(I).dummy&&m.predecessors(I).forEach(C=>{let j=m.node(C);j.dummy&&(j.order<b||j.order>N)&&s(v,C,I)})})}function w(k,_){let M=-1,b,N=0;return _.forEach((I,S)=>{if(m.node(I).dummy==="border"){let C=m.predecessors(I);C.length&&(b=m.node(C[0]).order,g(_,N,S,M,b),N=S,M=b)}g(_,N,_.length,b,k.length)}),_}return y.length&&y.reduce(w),v}function i(m,y){if(m.node(y).dummy)return m.predecessors(y).find(v=>m.node(v).dummy)}function s(m,y,v){if(y>v){let w=y;y=v,v=w}let g=m[y];g||(m[y]=g={}),g[v]=!0}function o(m,y,v){if(y>v){let g=y;y=v,v=g}return!!m[y]&&Object.hasOwn(m[y],v)}function a(m,y,v,g){let w={},k={},_={};return y.forEach(M=>{M.forEach((b,N)=>{w[b]=b,k[b]=b,_[b]=N})}),y.forEach(M=>{let b=-1;M.forEach(N=>{let I=g(N);if(I.length){I=I.sort((C,j)=>_[C]-_[j]);let S=(I.length-1)/2;for(let C=Math.floor(S),j=Math.ceil(S);C<=j;++C){let E=I[C];k[N]===N&&b<_[E]&&!o(v,N,E)&&(k[E]=N,k[N]=w[N]=w[E],b=_[E])}}})}),{root:w,align:k}}function u(m,y,v,g,w){let k={},_=d(m,y,v,w),M=w?"borderLeft":"borderRight";function b(S,C){let j=_.nodes(),E=j.pop(),L={};for(;E;)L[E]?S(E):(L[E]=!0,j.push(E),j=j.concat(C(E))),E=j.pop()}function N(S){k[S]=_.inEdges(S).reduce((C,j)=>Math.max(C,k[j.v]+_.edge(j)),0)}function I(S){let C=_.outEdges(S).reduce((E,L)=>Math.min(E,k[L.w]-_.edge(L)),Number.POSITIVE_INFINITY),j=m.node(S);C!==Number.POSITIVE_INFINITY&&j.borderType!==M&&(k[S]=Math.max(k[S],C))}return b(N,_.predecessors.bind(_)),b(I,_.successors.bind(_)),Object.keys(g).forEach(S=>k[S]=k[v[S]]),k}function d(m,y,v,g){let w=new e,k=m.graph(),_=p(k.nodesep,k.edgesep,g);return y.forEach(M=>{let b;M.forEach(N=>{let I=v[N];if(w.setNode(I),b){var S=v[b],C=w.edge(S,I);w.setEdge(S,I,Math.max(_(m,N,b),C||0))}b=N})}),w}function l(m,y){return Object.values(y).reduce((v,g)=>{let w=Number.NEGATIVE_INFINITY,k=Number.POSITIVE_INFINITY;Object.entries(g).forEach(([M,b])=>{let N=x(m,M)/2;w=Math.max(b+N,w),k=Math.min(b-N,k)});const _=w-k;return _<v[0]&&(v=[_,g]),v},[Number.POSITIVE_INFINITY,null])[1]}function c(m,y){let v=Object.values(y),g=t.applyWithChunking(Math.min,v),w=t.applyWithChunking(Math.max,v);["u","d"].forEach(k=>{["l","r"].forEach(_=>{let M=k+_,b=m[M];if(b===y)return;let N=Object.values(b),I=g-t.applyWithChunking(Math.min,N);_!=="l"&&(I=w-t.applyWithChunking(Math.max,N)),I&&(m[M]=t.mapValues(b,S=>S+I))})})}function f(m,y){return t.mapValues(m.ul,(v,g)=>{if(y)return m[y.toLowerCase()][g];{let w=Object.values(m).map(k=>k[g]).sort((k,_)=>k-_);return(w[1]+w[2])/2}})}function h(m){let y=t.buildLayerMatrix(m),v=Object.assign(n(m,y),r(m,y)),g={},w;["u","d"].forEach(_=>{w=_==="u"?y:Object.values(y).reverse(),["l","r"].forEach(M=>{M==="r"&&(w=w.map(S=>Object.values(S).reverse()));let b=(_==="u"?m.predecessors:m.successors).bind(m),N=a(m,w,v,b),I=u(m,w,N.root,N.align,M==="r");M==="r"&&(I=t.mapValues(I,S=>-S)),g[_+M]=I})});let k=l(m,g);return c(g,k),f(g,m.graph().align)}function p(m,y,v){return(g,w,k)=>{let _=g.node(w),M=g.node(k),b=0,N;if(b+=_.width/2,Object.hasOwn(_,"labelpos"))switch(_.labelpos.toLowerCase()){case"l":N=-_.width/2;break;case"r":N=_.width/2;break}if(N&&(b+=v?N:-N),N=0,b+=(_.dummy?y:m)/2,b+=(M.dummy?y:m)/2,b+=M.width/2,Object.hasOwn(M,"labelpos"))switch(M.labelpos.toLowerCase()){case"l":N=M.width/2;break;case"r":N=-M.width/2;break}return N&&(b+=v?N:-N),N=0,b}}function x(m,y){return m.node(y).width}return xr}var wr,us;function e0(){if(us)return wr;us=1;let e=se(),t=Jm().positionX;wr=n;function n(i){i=e.asNonCompoundGraph(i),r(i),Object.entries(t(i)).forEach(([s,o])=>i.node(s).x=o)}function r(i){let s=e.buildLayerMatrix(i),o=i.graph().ranksep,a=0;s.forEach(u=>{const d=u.reduce((l,c)=>{const f=i.node(c).height;return l>f?l:f},0);u.forEach(l=>i.node(l).y=a+d/2),a+=d+o})}return wr}var vr,ls;function t0(){if(ls)return vr;ls=1;let e=Om(),t=jm(),n=zm(),r=se().normalizeRanks,i=Vm(),s=se().removeEmptyRanks,o=Hm(),a=Fm(),u=Bm(),d=Qm(),l=e0(),c=se(),f=me().Graph;vr=h;function h(T,$){let z=$&&$.debugTiming?c.time:c.notime;z("layout",()=>{let B=z(" buildLayoutGraph",()=>b(T));z(" runLayout",()=>p(B,z,$)),z(" updateInputGraph",()=>x(T,B))})}function p(T,$,z){$(" makeSpaceForEdgeLabels",()=>N(T)),$(" removeSelfEdges",()=>O(T)),$(" acyclic",()=>e.run(T)),$(" nestingGraph.run",()=>o.run(T)),$(" rank",()=>n(c.asNonCompoundGraph(T))),$(" injectEdgeLabelProxies",()=>I(T)),$(" removeEmptyRanks",()=>s(T)),$(" nestingGraph.cleanup",()=>o.cleanup(T)),$(" normalizeRanks",()=>r(T)),$(" assignRankMinMax",()=>S(T)),$(" removeEdgeLabelProxies",()=>C(T)),$(" normalize.run",()=>t.run(T)),$(" parentDummyChains",()=>i(T)),$(" addBorderSegments",()=>a(T)),$(" order",()=>d(T,z)),$(" insertSelfEdges",()=>R(T)),$(" adjustCoordinateSystem",()=>u.adjust(T)),$(" position",()=>l(T)),$(" positionSelfEdges",()=>H(T)),$(" removeBorderNodes",()=>D(T)),$(" normalize.undo",()=>t.undo(T)),$(" fixupEdgeLabelCoords",()=>L(T)),$(" undoCoordinateSystem",()=>u.undo(T)),$(" translateGraph",()=>j(T)),$(" assignNodeIntersects",()=>E(T)),$(" reversePoints",()=>P(T)),$(" acyclic.undo",()=>e.undo(T))}function x(T,$){T.nodes().forEach(z=>{let B=T.node(z),G=$.node(z);B&&(B.x=G.x,B.y=G.y,B.rank=G.rank,$.children(z).length&&(B.width=G.width,B.height=G.height))}),T.edges().forEach(z=>{let B=T.edge(z),G=$.edge(z);B.points=G.points,Object.hasOwn(G,"x")&&(B.x=G.x,B.y=G.y)}),T.graph().width=$.graph().width,T.graph().height=$.graph().height}let m=["nodesep","edgesep","ranksep","marginx","marginy"],y={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},v=["acyclicer","ranker","rankdir","align"],g=["width","height","rank"],w={width:0,height:0},k=["minlen","weight","width","height","labeloffset"],_={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},M=["labelpos"];function b(T){let $=new f({multigraph:!0,compound:!0}),z=F(T.graph());return $.setGraph(Object.assign({},y,q(z,m),c.pick(z,v))),T.nodes().forEach(B=>{let G=F(T.node(B));const Y=q(G,g);Object.keys(w).forEach(W=>{Y[W]===void 0&&(Y[W]=w[W])}),$.setNode(B,Y),$.setParent(B,T.parent(B))}),T.edges().forEach(B=>{let G=F(T.edge(B));$.setEdge(B,Object.assign({},_,q(G,k),c.pick(G,M)))}),$}function N(T){let $=T.graph();$.ranksep/=2,T.edges().forEach(z=>{let B=T.edge(z);B.minlen*=2,B.labelpos.toLowerCase()!=="c"&&($.rankdir==="TB"||$.rankdir==="BT"?B.width+=B.labeloffset:B.height+=B.labeloffset)})}function I(T){T.edges().forEach($=>{let z=T.edge($);if(z.width&&z.height){let B=T.node($.v),Y={rank:(T.node($.w).rank-B.rank)/2+B.rank,e:$};c.addDummyNode(T,"edge-proxy",Y,"_ep")}})}function S(T){let $=0;T.nodes().forEach(z=>{let B=T.node(z);B.borderTop&&(B.minRank=T.node(B.borderTop).rank,B.maxRank=T.node(B.borderBottom).rank,$=Math.max($,B.maxRank))}),T.graph().maxRank=$}function C(T){T.nodes().forEach($=>{let z=T.node($);z.dummy==="edge-proxy"&&(T.edge(z.e).labelRank=z.rank,T.removeNode($))})}function j(T){let $=Number.POSITIVE_INFINITY,z=0,B=Number.POSITIVE_INFINITY,G=0,Y=T.graph(),W=Y.marginx||0,Z=Y.marginy||0;function Q(U){let X=U.x,J=U.y,ne=U.width,ee=U.height;$=Math.min($,X-ne/2),z=Math.max(z,X+ne/2),B=Math.min(B,J-ee/2),G=Math.max(G,J+ee/2)}T.nodes().forEach(U=>Q(T.node(U))),T.edges().forEach(U=>{let X=T.edge(U);Object.hasOwn(X,"x")&&Q(X)}),$-=W,B-=Z,T.nodes().forEach(U=>{let X=T.node(U);X.x-=$,X.y-=B}),T.edges().forEach(U=>{let X=T.edge(U);X.points.forEach(J=>{J.x-=$,J.y-=B}),Object.hasOwn(X,"x")&&(X.x-=$),Object.hasOwn(X,"y")&&(X.y-=B)}),Y.width=z-$+W,Y.height=G-B+Z}function E(T){T.edges().forEach($=>{let z=T.edge($),B=T.node($.v),G=T.node($.w),Y,W;z.points?(Y=z.points[0],W=z.points[z.points.length-1]):(z.points=[],Y=G,W=B),z.points.unshift(c.intersectRect(B,Y)),z.points.push(c.intersectRect(G,W))})}function L(T){T.edges().forEach($=>{let z=T.edge($);if(Object.hasOwn(z,"x"))switch((z.labelpos==="l"||z.labelpos==="r")&&(z.width-=z.labeloffset),z.labelpos){case"l":z.x-=z.width/2+z.labeloffset;break;case"r":z.x+=z.width/2+z.labeloffset;break}})}function P(T){T.edges().forEach($=>{let z=T.edge($);z.reversed&&z.points.reverse()})}function D(T){T.nodes().forEach($=>{if(T.children($).length){let z=T.node($),B=T.node(z.borderTop),G=T.node(z.borderBottom),Y=T.node(z.borderLeft[z.borderLeft.length-1]),W=T.node(z.borderRight[z.borderRight.length-1]);z.width=Math.abs(W.x-Y.x),z.height=Math.abs(G.y-B.y),z.x=Y.x+z.width/2,z.y=B.y+z.height/2}}),T.nodes().forEach($=>{T.node($).dummy==="border"&&T.removeNode($)})}function O(T){T.edges().forEach($=>{if($.v===$.w){var z=T.node($.v);z.selfEdges||(z.selfEdges=[]),z.selfEdges.push({e:$,label:T.edge($)}),T.removeEdge($)}})}function R(T){var $=c.buildLayerMatrix(T);$.forEach(z=>{var B=0;z.forEach((G,Y)=>{var W=T.node(G);W.order=Y+B,(W.selfEdges||[]).forEach(Z=>{c.addDummyNode(T,"selfedge",{width:Z.label.width,height:Z.label.height,rank:W.rank,order:Y+ ++B,e:Z.e,label:Z.label},"_se")}),delete W.selfEdges})})}function H(T){T.nodes().forEach($=>{var z=T.node($);if(z.dummy==="selfedge"){var B=T.node(z.e.v),G=B.x+B.width/2,Y=B.y,W=z.x-G,Z=B.height/2;T.setEdge(z.e,z.label),T.removeNode($),z.label.points=[{x:G+2*W/3,y:Y-Z},{x:G+5*W/6,y:Y-Z},{x:G+W,y:Y},{x:G+5*W/6,y:Y+Z},{x:G+2*W/3,y:Y+Z}],z.label.x=z.x,z.label.y=z.y}})}function q(T,$){return c.mapValues(c.pick(T,$),Number)}function F(T){var $={};return T&&Object.entries(T).forEach(([z,B])=>{typeof z=="string"&&(z=z.toLowerCase()),$[z]=B}),$}return vr}var br,ds;function n0(){if(ds)return br;ds=1;let e=se(),t=me().Graph;br={debugOrdering:n};function n(r){let i=e.buildLayerMatrix(r),s=new t({compound:!0,multigraph:!0}).setGraph({});return r.nodes().forEach(o=>{s.setNode(o,{label:o}),s.setParent(o,"layer"+r.node(o).rank)}),r.edges().forEach(o=>s.setEdge(o.v,o.w,{},o.name)),i.forEach((o,a)=>{let u="layer"+a;s.setNode(u,{rank:"same"}),o.reduce((d,l)=>(s.setEdge(d,l,{style:"invis"}),l))}),s}return br}var _r,fs;function r0(){return fs||(fs=1,_r="1.1.8"),_r}var Er,hs;function i0(){return hs||(hs=1,Er={graphlib:me(),layout:t0(),debug:n0(),util:{time:se().time,notime:se().notime},version:r0()}),Er}var o0=i0();const ps=ys(o0),Dr=240,gs=80;function x0(e,t){return e.filter(n=>{var r,i;return!((r=t==null?void 0:t.statuses)!=null&&r.size&&!t.statuses.has(n.status)||(i=t==null?void 0:t.types)!=null&&i.size&&!t.types.has(n.type))}).map(n=>({id:n.id,type:"workflowNode",position:{x:0,y:0},data:{label:n.title,nodeType:n.type,status:n.status,priority:n.priority,xpSize:n.xpSize,sprint:n.sprint,sourceNode:n},style:{width:Dr,borderLeft:`4px solid ${zr[n.type]||"#6c757d"}`}}))}function w0(e,t){return e.filter(n=>t.has(n.from)&&t.has(n.to)).map(n=>{const r=qt[n.relationType]||qt.related_to;return{id:n.id,source:n.from,target:n.to,label:r.label,type:"workflowEdge",data:{relationType:n.relationType},style:{stroke:r.color,strokeDasharray:r.dashed?"5 5":void 0},labelStyle:{fontSize:10,fill:"#6c757d"}}})}function v0(e,t,n="TB"){const r=new ps.graphlib.Graph;r.setDefaultEdgeLabel(()=>({})),r.setGraph({rankdir:n,ranksep:60,nodesep:40});for(const s of e)r.setNode(s.id,{width:Dr,height:gs});for(const s of t)r.setEdge(s.source,s.target);return ps.layout(r),{nodes:e.map(s=>{const o=r.node(s.id);return{...s,position:{x:o.x-Dr/2,y:o.y-gs/2}}}),edges:t}}export{f0 as B,h0 as C,p0 as M,y0 as N,m0 as W,d0 as a,w0 as b,v0 as c,g0 as d,u0 as i,x0 as t,l0 as u};