@runfusion/fusion 0.43.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/bin.js +8264 -1823
  2. package/dist/client/.vite/manifest.json +277 -266
  3. package/dist/client/assets/AgentDetailView-CanIeYHg.css +1 -0
  4. package/dist/client/assets/{AgentDetailView-FUKwQxBP.js → AgentDetailView-DxV8pFHX.js} +3 -3
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-DMDUhF1n.js → AgentPermissionPolicyEditor--YS4iMUY.js} +2 -2
  6. package/dist/client/assets/AgentsView-BVILQjdS.css +1 -0
  7. package/dist/client/assets/{AgentsView-BrQLd-yI.js → AgentsView-CTzbcvhK.js} +3 -3
  8. package/dist/client/assets/ChatView-COygcnyk.js +6 -0
  9. package/dist/client/assets/CommandCenter-CTaopaC0.css +1 -0
  10. package/dist/client/assets/CommandCenter-DoKX2HWm.js +56 -0
  11. package/dist/client/assets/DevServerView-Cyevyvqx.js +1 -0
  12. package/dist/client/assets/{DirectoryPicker-DTKtd8L2.css → DirectoryPicker-0rspvcMz.css} +1 -1
  13. package/dist/client/assets/{DirectoryPicker-BFot4CVM.js → DirectoryPicker-DBdyXEhR.js} +1 -1
  14. package/dist/client/assets/DocumentsView-BzSMyrns.js +1 -0
  15. package/dist/client/assets/{EvalsView-DAXqDqn2.js → EvalsView-ikz00o9g.js} +1 -1
  16. package/dist/client/assets/ExperimentalAgentOnboardingModal-CZ_jbgep.css +1 -0
  17. package/dist/client/assets/{ExperimentalAgentOnboardingModal-B4aZ1y0n.js → ExperimentalAgentOnboardingModal-D-rzCCET.js} +10 -10
  18. package/dist/client/assets/GoalsView-Bfu1Oy2-.js +2 -0
  19. package/dist/client/assets/GoalsView-rg9VSIza.css +1 -0
  20. package/dist/client/assets/{InsightsView-D5fzFy-F.js → InsightsView-Cgmf5nES.js} +1 -1
  21. package/dist/client/assets/InsightsView-LMv1M1dU.css +1 -0
  22. package/dist/client/assets/MemoryView-DkEuDKQs.js +2 -0
  23. package/dist/client/assets/{NodesView-BA3pKMZu.js → NodesView-B_KYfS4o.js} +3 -3
  24. package/dist/client/assets/{PiExtensionsManager-C4I11iKm.js → PiExtensionsManager-Dz69kkKs.js} +2 -2
  25. package/dist/client/assets/PluginManager-DSiHizRD.css +1 -0
  26. package/dist/client/assets/{PluginManager-BzTzTMXZ.js → PluginManager-LHCVcduP.js} +1 -1
  27. package/dist/client/assets/PullRequestView-3AdbS2a1.css +1 -0
  28. package/dist/client/assets/{PullRequestView-11xJ565q.js → PullRequestView-DBJutLLl.js} +2 -2
  29. package/dist/client/assets/{ResearchView-BHiXfjzE.js → ResearchView-gpn1XcVy.js} +1 -1
  30. package/dist/client/assets/{SecretsView-CC5OYoCn.js → SecretsView-B7YqIowt.js} +1 -1
  31. package/dist/client/assets/SecretsView-Djo1rahi.css +1 -0
  32. package/dist/client/assets/SessionTerminal-9l4bdKcn.js +2 -0
  33. package/dist/client/assets/SessionTerminal-BNgtmXb3.css +1 -0
  34. package/dist/client/assets/SettingsModal-BGEK9_9A.js +31 -0
  35. package/dist/client/assets/{SettingsModal-DpAxDq6M.css → SettingsModal-CKv0TJfM.css} +1 -1
  36. package/dist/client/assets/SettingsModal-CXogw-Er.css +1 -0
  37. package/dist/client/assets/{SettingsModal-BKEbtdqR.js → SettingsModal-DIIoHGUH.js} +1 -1
  38. package/dist/client/assets/{SetupWizardModal-CBfItlP6.js → SetupWizardModal-BcVeMxeX.js} +1 -1
  39. package/dist/client/assets/{SkillsView-DbcW87-E.js → SkillsView-BxSJ4PHL.js} +1 -1
  40. package/dist/client/assets/{StashRecoveryView-CH9RPtzX.js → StashRecoveryView-BhFQ2FsP.js} +1 -1
  41. package/dist/client/assets/{TodoView-ToviJ0SV.js → TodoView-BZpewjy0.js} +2 -2
  42. package/dist/client/assets/WorkflowNodeEditor-Yn1FRF2v.css +1 -0
  43. package/dist/client/assets/WorkflowNodeEditor-tWsgCdVt.js +8 -0
  44. package/dist/client/assets/{addon-fit-B4jkcKk4.js → addon-fit-SnYDEvGm.js} +1 -1
  45. package/dist/client/assets/{addon-unicode11-Cdne2Sj4.js → addon-unicode11-s5GoZCpi.js} +1 -1
  46. package/dist/client/assets/{addon-web-links-CRNLzj7m.js → addon-web-links-jjt2f_oV.js} +1 -1
  47. package/dist/client/assets/{addon-webgl-CeCSULF1.js → addon-webgl-Icn-RnEx.js} +1 -1
  48. package/dist/client/assets/{app-sEkTyT-w.js → app-BmGA0Hiz.js} +3 -3
  49. package/dist/client/assets/{app-BffGU_HQ.js → app-CEVYlVuJ.js} +3 -3
  50. package/dist/client/assets/{app-C8AHhs5N.js → app-CbBFax2C.js} +3 -3
  51. package/dist/client/assets/{app-B2ZxMfJT.js → app-DORKrGAz.js} +3 -3
  52. package/dist/client/assets/{app-Ri9Te2Dv.js → app-DQibuQ9z.js} +3 -3
  53. package/dist/client/assets/app-k76GrQP0.js +13 -0
  54. package/dist/client/assets/{createLucideIcon-BYvOGRiO.js → createLucideIcon-DmVITl5d.js} +1 -1
  55. package/dist/client/assets/{dashboard-view-C3SsjXo1.js → dashboard-view-B4LXCv5H.js} +4 -4
  56. package/dist/client/assets/{dashboard-view-DlKsVySD.js → dashboard-view-BFoyhTYF.js} +1 -1
  57. package/dist/client/assets/{dashboard-view-DtgLZ_LM.js → dashboard-view-Cxzm_eqc.js} +1 -1
  58. package/dist/client/assets/dashboard-view-_8yfNwju.css +1 -0
  59. package/dist/client/assets/{folder-open-BlPyIWyf.js → folder-open-33WGVnbp.js} +1 -1
  60. package/dist/client/assets/index-Bglw05rM.js +791 -0
  61. package/dist/client/assets/index-FYgnflWD.css +1 -0
  62. package/dist/client/assets/shield-alert-CqeGWBUK.js +6 -0
  63. package/dist/client/assets/{upload-B-qmm1NH.js → upload-C11J2diI.js} +1 -1
  64. package/dist/client/assets/{users-D6C5TXf2.js → users-a-ELbyyZ.js} +1 -1
  65. package/dist/client/assets/{vendor-i18n-CV0mwX_-.js → vendor-i18n-DYlSUfot.js} +1 -1
  66. package/dist/client/assets/vendor-react-BTgM5bbZ.js +49 -0
  67. package/dist/client/assets/{vendor-reactflow-CRZcPCXF.js → vendor-reactflow-ZasuEfF9.js} +3 -3
  68. package/dist/client/assets/{vendor-xterm-tcedd2Jt.js → vendor-xterm-ea7-K05z.js} +1 -1
  69. package/dist/client/assets/{x-CqNX_9E2.js → x-PItWc-wQ.js} +1 -1
  70. package/dist/client/assets/{zoom-out-CSTHbJgD.js → zoom-out-CzlHv0Kj.js} +1 -1
  71. package/dist/client/icons/icon-192.png +0 -0
  72. package/dist/client/icons/icon-512.png +0 -0
  73. package/dist/client/index.html +6 -6
  74. package/dist/client/sw.js +1 -1
  75. package/dist/client/theme-data.css +288 -285
  76. package/dist/client/version.json +1 -1
  77. package/dist/droid-cli/package.json +1 -1
  78. package/dist/droid-cli/src/__tests__/execsync-guard.test.ts +17 -0
  79. package/dist/droid-cli/src/__tests__/process-manager.test.ts +1 -45
  80. package/dist/extension.js +4946 -820
  81. package/dist/pi-claude-cli/index.ts +47 -8
  82. package/dist/pi-claude-cli/package.json +4 -1
  83. package/dist/pi-claude-cli/src/__tests__/acp-dispatch.test.ts +80 -0
  84. package/dist/pi-claude-cli/src/__tests__/acp-driver.test.ts +423 -0
  85. package/dist/pi-claude-cli/src/__tests__/execsync-guard.test.ts +14 -0
  86. package/dist/pi-claude-cli/src/__tests__/process-manager.test.ts +1 -45
  87. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +0 -1
  88. package/dist/pi-claude-cli/src/acp-driver.ts +585 -0
  89. package/dist/pi-claude-cli/src/event-bridge.ts +7 -0
  90. package/dist/pi-claude-cli/src/mcp-config.ts +29 -0
  91. package/dist/pi-claude-cli/src/process-manager.ts +6 -38
  92. package/dist/plugin-sdk/index.d.ts +5181 -5144
  93. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +263 -19
  94. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  95. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  96. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +37 -7
  97. package/dist/plugins/fusion-plugin-compound-engineering/manifest.json +4 -4
  98. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  99. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  100. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  101. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +1 -1
  102. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  104. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  106. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  108. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  109. package/dist/plugins/fusion-plugin-whatsapp-chat/src/__tests__/index.test.ts +5 -1
  110. package/package.json +1 -1
  111. package/skill/fusion/references/engine-tools.md +6 -4
  112. package/dist/client/assets/AgentDetailView-DiWELtb1.css +0 -1
  113. package/dist/client/assets/AgentsView-DfznJDek.css +0 -1
  114. package/dist/client/assets/ChatView-Wz_0goif.js +0 -6
  115. package/dist/client/assets/DevServerView-DRqQpHsc.js +0 -1
  116. package/dist/client/assets/DocumentsView-hamhUcvL.js +0 -1
  117. package/dist/client/assets/ExperimentalAgentOnboardingModal-BNpveCEk.css +0 -1
  118. package/dist/client/assets/GoalsView-2QOp9DA0.js +0 -2
  119. package/dist/client/assets/GoalsView-DI66UsjT.css +0 -1
  120. package/dist/client/assets/InsightsView-C9-mqVvf.css +0 -1
  121. package/dist/client/assets/MemoryView-B082KoR-.js +0 -2
  122. package/dist/client/assets/PluginManager-UHVLvWWl.css +0 -1
  123. package/dist/client/assets/PullRequestView-WQIS0zUC.css +0 -1
  124. package/dist/client/assets/ReliabilityView-CpELpGqw.js +0 -1
  125. package/dist/client/assets/ReliabilityView-eoKBhBc4.css +0 -1
  126. package/dist/client/assets/SecretsView-D5bHZ-wM.css +0 -1
  127. package/dist/client/assets/SessionTerminal-BiigPP2l.css +0 -1
  128. package/dist/client/assets/SessionTerminal-G70Jwkzs.js +0 -2
  129. package/dist/client/assets/SettingsModal-C0M1CqOu.js +0 -31
  130. package/dist/client/assets/SettingsModal-nF_GaeeK.css +0 -1
  131. package/dist/client/assets/WorkflowNodeEditor-BTu0D9c5.js +0 -8
  132. package/dist/client/assets/WorkflowNodeEditor-BokhW3de.css +0 -1
  133. package/dist/client/assets/app-CUu1sm3x.js +0 -13
  134. package/dist/client/assets/dashboard-view-Du53JbmQ.css +0 -1
  135. package/dist/client/assets/index-DqhCiU35.css +0 -1
  136. package/dist/client/assets/index-bZCpHtGq.js +0 -793
  137. package/dist/client/assets/vendor-react-D37HfzIf.js +0 -49
@@ -1,4 +1,4 @@
1
- import{a as ia,g as sa,R as aa,r as D,j as A}from"./vendor-react-D37HfzIf.js";import{r as ca}from"./vendor-i18n-CV0mwX_-.js";function ie(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=ie(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var la={value:()=>{}};function Ut(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new zt(n)}function zt(e){this._=e}function ua(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",r=n.indexOf(".");if(r>=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}zt.prototype=Ut.prototype={constructor:zt,on:function(e,t){var n=this._,o=ua(e+"",n),r,i=-1,s=o.length;if(arguments.length<2){for(;++i<s;)if((r=(e=o[i]).type)&&(r=da(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(r=(e=o[i]).type)n[r]=uo(n[r],e.name,t);else if(t==null)for(r in n)n[r]=uo(n[r],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((r=arguments.length-2)>0)for(var n=new Array(r),o=0,r,i;o<r;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],o=0,r=i.length;o<r;++o)i[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)}};function da(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function uo(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=la,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var En="http://www.w3.org/1999/xhtml";const fo={svg:"http://www.w3.org/2000/svg",xhtml:En,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Qt(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),fo.hasOwnProperty(t)?{space:fo[t],local:e}:e}function fa(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===En&&t.documentElement.namespaceURI===En?t.createElement(e):t.createElementNS(n,e)}}function ha(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pr(e){var t=Qt(e);return(t.local?ha:fa)(t)}function ga(){}function Rn(e){return e==null?ga:function(){return this.querySelector(e)}}function pa(e){typeof e!="function"&&(e=Rn(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=new Array(s),l,c,u=0;u<s;++u)(l=i[u])&&(c=e.call(l,l.__data__,u,i))&&("__data__"in l&&(c.__data__=l.__data__),a[u]=c);return new le(o,this._parents)}function ma(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ya(){return[]}function mr(e){return e==null?ya:function(){return this.querySelectorAll(e)}}function xa(e){return function(){return ma(e.apply(this,arguments))}}function wa(e){typeof e=="function"?e=xa(e):e=mr(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var s=t[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&(o.push(e.call(l,l.__data__,c,s)),r.push(l));return new le(o,r)}function yr(e){return function(){return this.matches(e)}}function xr(e){return function(t){return t.matches(e)}}var va=Array.prototype.find;function ba(e){return function(){return va.call(this.children,e)}}function _a(){return this.firstElementChild}function Ea(e){return this.select(e==null?_a:ba(typeof e=="function"?e:xr(e)))}var Sa=Array.prototype.filter;function Na(){return Array.from(this.children)}function Ca(e){return function(){return Sa.call(this.children,e)}}function Ma(e){return this.selectAll(e==null?Na:Ca(typeof e=="function"?e:xr(e)))}function Ia(e){typeof e!="function"&&(e=yr(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],l,c=0;c<s;++c)(l=i[c])&&e.call(l,l.__data__,c,i)&&a.push(l);return new le(o,this._parents)}function wr(e){return new Array(e.length)}function ka(){return new le(this._enter||this._groups.map(wr),this._parents)}function Ot(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ot.prototype={constructor:Ot,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 Aa(e){return function(){return e}}function $a(e,t,n,o,r,i){for(var s=0,a,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new Ot(e,i[s]);for(;s<l;++s)(a=t[s])&&(r[s]=a)}function Pa(e,t,n,o,r,i,s){var a,l,c=new Map,u=t.length,d=i.length,f=new Array(u),p;for(a=0;a<u;++a)(l=t[a])&&(f[a]=p=s.call(l,l.__data__,a,t)+"",c.has(p)?r[a]=l:c.set(p,l));for(a=0;a<d;++a)p=s.call(e,i[a],a,i)+"",(l=c.get(p))?(o[a]=l,l.__data__=i[a],c.delete(p)):n[a]=new Ot(e,i[a]);for(a=0;a<u;++a)(l=t[a])&&c.get(f[a])===l&&(r[a]=l)}function Da(e){return e.__data__}function Ta(e,t){if(!arguments.length)return Array.from(this,Da);var n=t?Pa:$a,o=this._parents,r=this._groups;typeof e!="function"&&(e=Aa(e));for(var i=r.length,s=new Array(i),a=new Array(i),l=new Array(i),c=0;c<i;++c){var u=o[c],d=r[c],f=d.length,p=za(e.call(u,u&&u.__data__,c,o)),g=p.length,v=a[c]=new Array(g),y=s[c]=new Array(g),m=l[c]=new Array(f);n(u,d,v,y,m,p,t);for(var b=0,h=0,x,S;b<g;++b)if(x=v[b]){for(b>=h&&(h=b+1);!(S=y[h])&&++h<g;);x._next=S||null}}return s=new le(s,o),s._enter=a,s._exit=l,s}function za(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Ha(){return new le(this._exit||this._groups.map(wr),this._parents)}function Ra(e,t,n){var o=this.enter(),r=this,i=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?i.remove():n(i),o&&r?o.merge(r).order():r}function La(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,s=Math.min(r,i),a=new Array(r),l=0;l<s;++l)for(var c=n[l],u=o[l],d=c.length,f=a[l]=new Array(d),p,g=0;g<d;++g)(p=c[g]||u[g])&&(f[g]=p);for(;l<r;++l)a[l]=n[l];return new le(a,this._parents)}function Va(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],r=o.length-1,i=o[r],s;--r>=0;)(s=o[r])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function Oa(e){e||(e=Ba);function t(d,f){return d&&f?e(d.__data__,f.__data__):!d-!f}for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var s=n[i],a=s.length,l=r[i]=new Array(a),c,u=0;u<a;++u)(c=s[u])&&(l[u]=c);l.sort(t)}return new le(r,this._parents).order()}function Ba(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Fa(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Xa(){return Array.from(this)}function ja(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length;r<i;++r){var s=o[r];if(s)return s}return null}function Ya(){let e=0;for(const t of this)++e;return e}function Za(){return!this.node()}function Wa(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r=t[n],i=0,s=r.length,a;i<s;++i)(a=r[i])&&e.call(a,a.__data__,i,r);return this}function qa(e){return function(){this.removeAttribute(e)}}function Ga(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ka(e,t){return function(){this.setAttribute(e,t)}}function Ua(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Qa(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ja(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 ec(e,t){var n=Qt(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?Ga:qa:typeof t=="function"?n.local?Ja:Qa:n.local?Ua:Ka)(n,t))}function vr(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function tc(e){return function(){this.style.removeProperty(e)}}function nc(e,t,n){return function(){this.style.setProperty(e,t,n)}}function oc(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function rc(e,t,n){return arguments.length>1?this.each((t==null?tc:typeof t=="function"?oc:nc)(e,t,n??"")):Ue(this.node(),e)}function Ue(e,t){return e.style.getPropertyValue(t)||vr(e).getComputedStyle(e,null).getPropertyValue(t)}function ic(e){return function(){delete this[e]}}function sc(e,t){return function(){this[e]=t}}function ac(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function cc(e,t){return arguments.length>1?this.each((t==null?ic:typeof t=="function"?ac:sc)(e,t)):this.node()[e]}function br(e){return e.trim().split(/^|\s+/)}function Ln(e){return e.classList||new _r(e)}function _r(e){this._node=e,this._names=br(e.getAttribute("class")||"")}_r.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 Er(e,t){for(var n=Ln(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function Sr(e,t){for(var n=Ln(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function lc(e){return function(){Er(this,e)}}function uc(e){return function(){Sr(this,e)}}function dc(e,t){return function(){(t.apply(this,arguments)?Er:Sr)(this,e)}}function fc(e,t){var n=br(e+"");if(arguments.length<2){for(var o=Ln(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?dc:t?lc:uc)(n,t))}function hc(){this.textContent=""}function gc(e){return function(){this.textContent=e}}function pc(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function mc(e){return arguments.length?this.each(e==null?hc:(typeof e=="function"?pc:gc)(e)):this.node().textContent}function yc(){this.innerHTML=""}function xc(e){return function(){this.innerHTML=e}}function wc(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function vc(e){return arguments.length?this.each(e==null?yc:(typeof e=="function"?wc:xc)(e)):this.node().innerHTML}function bc(){this.nextSibling&&this.parentNode.appendChild(this)}function _c(){return this.each(bc)}function Ec(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Sc(){return this.each(Ec)}function Nc(e){var t=typeof e=="function"?e:pr(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Cc(){return null}function Mc(e,t){var n=typeof e=="function"?e:pr(e),o=t==null?Cc:typeof t=="function"?t:Rn(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function Ic(){var e=this.parentNode;e&&e.removeChild(this)}function kc(){return this.each(Ic)}function Ac(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function $c(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Pc(e){return this.select(e?$c:Ac)}function Dc(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Tc(e){return function(t){e.call(this,t,this.__data__)}}function zc(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function Hc(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,i;n<r;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++o]=i;++o?t.length=o:delete this.__on}}}function Rc(e,t,n){return function(){var o=this.__on,r,i=Tc(t);if(o){for(var s=0,a=o.length;s<a;++s)if((r=o[s]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function Lc(e,t,n){var o=zc(e+""),r,i=o.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,u;l<c;++l)for(r=0,u=a[l];r<i;++r)if((s=o[r]).type===u.type&&s.name===u.name)return u.value}return}for(a=t?Rc:Hc,r=0;r<i;++r)this.each(a(o[r],t,n));return this}function Nr(e,t,n){var o=vr(e),r=o.CustomEvent;typeof r=="function"?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function Vc(e,t){return function(){return Nr(this,e,t)}}function Oc(e,t){return function(){return Nr(this,e,t.apply(this,arguments))}}function Bc(e,t){return this.each((typeof t=="function"?Oc:Vc)(e,t))}function*Fc(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length,s;r<i;++r)(s=o[r])&&(yield s)}var Cr=[null];function le(e,t){this._groups=e,this._parents=t}function bt(){return new le([[document.documentElement]],Cr)}function Xc(){return this}le.prototype=bt.prototype={constructor:le,select:pa,selectAll:wa,selectChild:Ea,selectChildren:Ma,filter:Ia,data:Ta,enter:ka,exit:Ha,join:Ra,merge:La,selection:Xc,order:Va,sort:Oa,call:Fa,nodes:Xa,node:ja,size:Ya,empty:Za,each:Wa,attr:ec,style:rc,property:cc,classed:fc,text:mc,html:vc,raise:_c,lower:Sc,append:Nc,insert:Mc,remove:kc,clone:Pc,datum:Dc,on:Lc,dispatch:Bc,[Symbol.iterator]:Fc};function ce(e){return typeof e=="string"?new le([[document.querySelector(e)]],[document.documentElement]):new le([[e]],Cr)}function jc(e){let t;for(;t=e.sourceEvent;)e=t;return e}function de(e,t){if(e=jc(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}const Yc={passive:!1},ft={capture:!0,passive:!1};function fn(e){e.stopImmediatePropagation()}function Ge(e){e.preventDefault(),e.stopImmediatePropagation()}function Mr(e){var t=e.document.documentElement,n=ce(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 Ir(e,t){var n=e.document.documentElement,o=ce(e).on("dragstart.drag",null);t&&(o.on("click.drag",Ge,ft),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Ct=e=>()=>e;function Sn(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:s,y:a,dx:l,dy:c,dispatch:u}){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:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}Sn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Zc(e){return!e.ctrlKey&&!e.button}function Wc(){return this.parentNode}function qc(e,t){return t??{x:e.x,y:e.y}}function Gc(){return navigator.maxTouchPoints||"ontouchstart"in this}function kr(){var e=Zc,t=Wc,n=qc,o=Gc,r={},i=Ut("start","drag","end"),s=0,a,l,c,u,d=0;function f(x){x.on("mousedown.drag",p).filter(o).on("touchstart.drag",y).on("touchmove.drag",m,Yc).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(x,S){if(!(u||!e.call(this,x,S))){var _=h(this,t.call(this,x,S),x,S,"mouse");_&&(ce(x.view).on("mousemove.drag",g,ft).on("mouseup.drag",v,ft),Mr(x.view),fn(x),c=!1,a=x.clientX,l=x.clientY,_("start",x))}}function g(x){if(Ge(x),!c){var S=x.clientX-a,_=x.clientY-l;c=S*S+_*_>d}r.mouse("drag",x)}function v(x){ce(x.view).on("mousemove.drag mouseup.drag",null),Ir(x.view,c),Ge(x),r.mouse("end",x)}function y(x,S){if(e.call(this,x,S)){var _=x.changedTouches,C=t.call(this,x,S),k=_.length,$,B;for($=0;$<k;++$)(B=h(this,C,x,S,_[$].identifier,_[$]))&&(fn(x),B("start",x,_[$]))}}function m(x){var S=x.changedTouches,_=S.length,C,k;for(C=0;C<_;++C)(k=r[S[C].identifier])&&(Ge(x),k("drag",x,S[C]))}function b(x){var S=x.changedTouches,_=S.length,C,k;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),C=0;C<_;++C)(k=r[S[C].identifier])&&(fn(x),k("end",x,S[C]))}function h(x,S,_,C,k,$){var B=i.copy(),M=de($||_,S),z,R,w;if((w=n.call(x,new Sn("beforestart",{sourceEvent:_,target:f,identifier:k,active:s,x:M[0],y:M[1],dx:0,dy:0,dispatch:B}),C))!=null)return z=w.x-M[0]||0,R=w.y-M[1]||0,function N(E,I,T){var P=M,V;switch(E){case"start":r[k]=N,V=s++;break;case"end":delete r[k],--s;case"drag":M=de(T||I,S),V=s;break}B.call(E,x,new Sn(E,{sourceEvent:I,subject:w,target:f,identifier:k,active:V,x:M[0]+z,y:M[1]+R,dx:M[0]-P[0],dy:M[1]-P[1],dispatch:B}),C)}}return f.filter=function(x){return arguments.length?(e=typeof x=="function"?x:Ct(!!x),f):e},f.container=function(x){return arguments.length?(t=typeof x=="function"?x:Ct(x),f):t},f.subject=function(x){return arguments.length?(n=typeof x=="function"?x:Ct(x),f):n},f.touchable=function(x){return arguments.length?(o=typeof x=="function"?x:Ct(!!x),f):o},f.on=function(){var x=i.on.apply(i,arguments);return x===i?f:x},f.clickDistance=function(x){return arguments.length?(d=(x=+x)*x,f):Math.sqrt(d)},f}function Vn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ar(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function _t(){}var ht=.7,Bt=1/ht,Ke="\\s*([+-]?\\d+)\\s*",gt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kc=/^#([0-9a-f]{3,8})$/,Uc=new RegExp(`^rgb\\(${Ke},${Ke},${Ke}\\)$`),Qc=new RegExp(`^rgb\\(${ve},${ve},${ve}\\)$`),Jc=new RegExp(`^rgba\\(${Ke},${Ke},${Ke},${gt}\\)$`),el=new RegExp(`^rgba\\(${ve},${ve},${ve},${gt}\\)$`),tl=new RegExp(`^hsl\\(${gt},${ve},${ve}\\)$`),nl=new RegExp(`^hsla\\(${gt},${ve},${ve},${gt}\\)$`),ho={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};Vn(_t,Be,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:go,formatHex:go,formatHex8:ol,formatHsl:rl,formatRgb:po,toString:po});function go(){return this.rgb().formatHex()}function ol(){return this.rgb().formatHex8()}function rl(){return $r(this).formatHsl()}function po(){return this.rgb().formatRgb()}function Be(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Kc.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?mo(t):n===3?new ae(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Mt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Mt(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=Uc.exec(e))?new ae(t[1],t[2],t[3],1):(t=Qc.exec(e))?new ae(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jc.exec(e))?Mt(t[1],t[2],t[3],t[4]):(t=el.exec(e))?Mt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=tl.exec(e))?wo(t[1],t[2]/100,t[3]/100,1):(t=nl.exec(e))?wo(t[1],t[2]/100,t[3]/100,t[4]):ho.hasOwnProperty(e)?mo(ho[e]):e==="transparent"?new ae(NaN,NaN,NaN,0):null}function mo(e){return new ae(e>>16&255,e>>8&255,e&255,1)}function Mt(e,t,n,o){return o<=0&&(e=t=n=NaN),new ae(e,t,n,o)}function il(e){return e instanceof _t||(e=Be(e)),e?(e=e.rgb(),new ae(e.r,e.g,e.b,e.opacity)):new ae}function Nn(e,t,n,o){return arguments.length===1?il(e):new ae(e,t,n,o??1)}function ae(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}Vn(ae,Nn,Ar(_t,{brighter(e){return e=e==null?Bt:Math.pow(Bt,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ht:Math.pow(ht,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ae(Ve(this.r),Ve(this.g),Ve(this.b),Ft(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:yo,formatHex:yo,formatHex8:sl,formatRgb:xo,toString:xo}));function yo(){return`#${Le(this.r)}${Le(this.g)}${Le(this.b)}`}function sl(){return`#${Le(this.r)}${Le(this.g)}${Le(this.b)}${Le((isNaN(this.opacity)?1:this.opacity)*255)}`}function xo(){const e=Ft(this.opacity);return`${e===1?"rgb(":"rgba("}${Ve(this.r)}, ${Ve(this.g)}, ${Ve(this.b)}${e===1?")":`, ${e})`}`}function Ft(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ve(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Le(e){return e=Ve(e),(e<16?"0":"")+e.toString(16)}function wo(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fe(e,t,n,o)}function $r(e){if(e instanceof fe)return new fe(e.h,e.s,e.l,e.opacity);if(e instanceof _t||(e=Be(e)),!e)return new fe;if(e instanceof fe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),s=NaN,a=i-r,l=(i+r)/2;return a?(t===i?s=(n-o)/a+(n<o)*6:n===i?s=(o-t)/a+2:s=(t-n)/a+4,a/=l<.5?i+r:2-i-r,s*=60):a=l>0&&l<1?0:s,new fe(s,a,l,e.opacity)}function al(e,t,n,o){return arguments.length===1?$r(e):new fe(e,t,n,o??1)}function fe(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}Vn(fe,al,Ar(_t,{brighter(e){return e=e==null?Bt:Math.pow(Bt,e),new fe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ht:Math.pow(ht,e),new fe(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,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new ae(hn(e>=240?e-240:e+120,r,o),hn(e,r,o),hn(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new fe(vo(this.h),It(this.s),It(this.l),Ft(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=Ft(this.opacity);return`${e===1?"hsl(":"hsla("}${vo(this.h)}, ${It(this.s)*100}%, ${It(this.l)*100}%${e===1?")":`, ${e})`}`}}));function vo(e){return e=(e||0)%360,e<0?e+360:e}function It(e){return Math.max(0,Math.min(1,e||0))}function hn(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 On=e=>()=>e;function cl(e,t){return function(n){return e+n*t}}function ll(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function ul(e){return(e=+e)==1?Pr:function(t,n){return n-t?ll(t,n,e):On(isNaN(t)?n:t)}}function Pr(e,t){var n=t-e;return n?cl(e,n):On(isNaN(e)?t:e)}const Xt=(function e(t){var n=ul(t);function o(r,i){var s=n((r=Nn(r)).r,(i=Nn(i)).r),a=n(r.g,i.g),l=n(r.b,i.b),c=Pr(r.opacity,i.opacity);return function(u){return r.r=s(u),r.g=a(u),r.b=l(u),r.opacity=c(u),r+""}}return o.gamma=e,o})(1);function dl(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,o=t.slice(),r;return function(i){for(r=0;r<n;++r)o[r]=e[r]*(1-i)+t[r]*i;return o}}function fl(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function hl(e,t){var n=t?t.length:0,o=e?Math.min(n,e.length):0,r=new Array(o),i=new Array(n),s;for(s=0;s<o;++s)r[s]=ut(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(a){for(s=0;s<o;++s)i[s]=r[s](a);return i}}function gl(e,t){var n=new Date;return e=+e,t=+t,function(o){return n.setTime(e*(1-o)+t*o),n}}function we(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function pl(e,t){var n={},o={},r;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(r in t)r in e?n[r]=ut(e[r],t[r]):o[r]=t[r];return function(i){for(r in n)o[r]=n[r](i);return o}}var Cn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,gn=new RegExp(Cn.source,"g");function ml(e){return function(){return e}}function yl(e){return function(t){return e(t)+""}}function Dr(e,t){var n=Cn.lastIndex=gn.lastIndex=0,o,r,i,s=-1,a=[],l=[];for(e=e+"",t=t+"";(o=Cn.exec(e))&&(r=gn.exec(t));)(i=r.index)>n&&(i=t.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(o=o[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,l.push({i:s,x:we(o,r)})),n=gn.lastIndex;return n<t.length&&(i=t.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?l[0]?yl(l[0].x):ml(t):(t=l.length,function(c){for(var u=0,d;u<t;++u)a[(d=l[u]).i]=d.x(c);return a.join("")})}function ut(e,t){var n=typeof t,o;return t==null||n==="boolean"?On(t):(n==="number"?we:n==="string"?(o=Be(t))?(t=o,Xt):Dr:t instanceof Be?Xt:t instanceof Date?gl:fl(t)?dl:Array.isArray(t)?hl:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?pl:we)(e,t)}var bo=180/Math.PI,Mn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(e,t,n,o,r,i){var s,a,l;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,l/=a),e*o<t*n&&(e=-e,t=-t,l=-l,s=-s),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*bo,skewX:Math.atan(l)*bo,scaleX:s,scaleY:a}}var kt;function xl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Mn:Tr(t.a,t.b,t.c,t.d,t.e,t.f)}function wl(e){return e==null||(kt||(kt=document.createElementNS("http://www.w3.org/2000/svg","g")),kt.setAttribute("transform",e),!(e=kt.transform.baseVal.consolidate()))?Mn:(e=e.matrix,Tr(e.a,e.b,e.c,e.d,e.e,e.f))}function zr(e,t,n,o){function r(c){return c.length?c.pop()+" ":""}function i(c,u,d,f,p,g){if(c!==d||u!==f){var v=p.push("translate(",null,t,null,n);g.push({i:v-4,x:we(c,d)},{i:v-2,x:we(u,f)})}else(d||f)&&p.push("translate("+d+t+f+n)}function s(c,u,d,f){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),f.push({i:d.push(r(d)+"rotate(",null,o)-2,x:we(c,u)})):u&&d.push(r(d)+"rotate("+u+o)}function a(c,u,d,f){c!==u?f.push({i:d.push(r(d)+"skewX(",null,o)-2,x:we(c,u)}):u&&d.push(r(d)+"skewX("+u+o)}function l(c,u,d,f,p,g){if(c!==d||u!==f){var v=p.push(r(p)+"scale(",null,",",null,")");g.push({i:v-4,x:we(c,d)},{i:v-2,x:we(u,f)})}else(d!==1||f!==1)&&p.push(r(p)+"scale("+d+","+f+")")}return function(c,u){var d=[],f=[];return c=e(c),u=e(u),i(c.translateX,c.translateY,u.translateX,u.translateY,d,f),s(c.rotate,u.rotate,d,f),a(c.skewX,u.skewX,d,f),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,d,f),c=u=null,function(p){for(var g=-1,v=f.length,y;++g<v;)d[(y=f[g]).i]=y.x(p);return d.join("")}}}var vl=zr(xl,"px, ","px)","deg)"),bl=zr(wl,", ",")",")"),_l=1e-12;function _o(e){return((e=Math.exp(e))+1/e)/2}function El(e){return((e=Math.exp(e))-1/e)/2}function Sl(e){return((e=Math.exp(2*e))-1)/(e+1)}const Ht=(function e(t,n,o){function r(i,s){var a=i[0],l=i[1],c=i[2],u=s[0],d=s[1],f=s[2],p=u-a,g=d-l,v=p*p+g*g,y,m;if(v<_l)m=Math.log(f/c)/t,y=function(C){return[a+C*p,l+C*g,c*Math.exp(t*C*m)]};else{var b=Math.sqrt(v),h=(f*f-c*c+o*v)/(2*c*n*b),x=(f*f-c*c-o*v)/(2*f*n*b),S=Math.log(Math.sqrt(h*h+1)-h),_=Math.log(Math.sqrt(x*x+1)-x);m=(_-S)/t,y=function(C){var k=C*m,$=_o(S),B=c/(n*b)*($*Sl(t*k+S)-El(S));return[a+B*p,l+B*g,c*$/_o(t*k+S)]}}return y.duration=m*1e3*t/Math.SQRT2,y}return r.rho=function(i){var s=Math.max(.001,+i),a=s*s,l=a*a;return e(s,a,l)},r})(Math.SQRT2,2,4);var Qe=0,ct=0,st=0,Hr=1e3,jt,lt,Yt=0,Fe=0,Jt=0,pt=typeof performance=="object"&&performance.now?performance:Date,Rr=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Bn(){return Fe||(Rr(Nl),Fe=pt.now()+Jt)}function Nl(){Fe=0}function Zt(){this._call=this._time=this._next=null}Zt.prototype=Lr.prototype={constructor:Zt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Bn():+n)+(t==null?0:+t),!this._next&&lt!==this&&(lt?lt._next=this:jt=this,lt=this),this._call=e,this._time=n,In()},stop:function(){this._call&&(this._call=null,this._time=1/0,In())}};function Lr(e,t,n){var o=new Zt;return o.restart(e,t,n),o}function Cl(){Bn(),++Qe;for(var e=jt,t;e;)(t=Fe-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qe}function Eo(){Fe=(Yt=pt.now())+Jt,Qe=ct=0;try{Cl()}finally{Qe=0,Il(),Fe=0}}function Ml(){var e=pt.now(),t=e-Yt;t>Hr&&(Jt-=t,Yt=e)}function Il(){for(var e,t=jt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:jt=n);lt=e,In(o)}function In(e){if(!Qe){ct&&(ct=clearTimeout(ct));var t=e-Fe;t>24?(e<1/0&&(ct=setTimeout(Eo,e-pt.now()-Jt)),st&&(st=clearInterval(st))):(st||(Yt=pt.now(),st=setInterval(Ml,Hr)),Qe=1,Rr(Eo))}}function So(e,t,n){var o=new Zt;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var kl=Ut("start","end","cancel","interrupt"),Al=[],Vr=0,No=1,kn=2,Rt=3,Co=4,An=5,Lt=6;function en(e,t,n,o,r,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;$l(e,n,{name:t,index:o,group:r,on:kl,tween:Al,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Vr})}function Fn(e,t){var n=me(e,t);if(n.state>Vr)throw new Error("too late; already scheduled");return n}function be(e,t){var n=me(e,t);if(n.state>Rt)throw new Error("too late; already running");return n}function me(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function $l(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=Lr(i,0,n.time);function i(c){n.state=No,n.timer.restart(s,n.delay,n.time),n.delay<=c&&s(c-n.delay)}function s(c){var u,d,f,p;if(n.state!==No)return l();for(u in o)if(p=o[u],p.name===n.name){if(p.state===Rt)return So(s);p.state===Co?(p.state=Lt,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete o[u]):+u<t&&(p.state=Lt,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete o[u])}if(So(function(){n.state===Rt&&(n.state=Co,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=kn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===kn){for(n.state=Rt,r=new Array(f=n.tween.length),u=0,d=-1;u<f;++u)(p=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(r[++d]=p);r.length=d+1}}function a(c){for(var u=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=An,1),d=-1,f=r.length;++d<f;)r[d].call(e,u);n.state===An&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Lt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function Vt(e,t){var n=e.__transition,o,r,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((o=n[s]).name!==t){i=!1;continue}r=o.state>kn&&o.state<An,o.state=Lt,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[s]}i&&delete e.__transition}}function Pl(e){return this.each(function(){Vt(this,e)})}function Dl(e,t){var n,o;return function(){var r=be(this,e),i=r.tween;if(i!==n){o=n=i;for(var s=0,a=o.length;s<a;++s)if(o[s].name===t){o=o.slice(),o.splice(s,1);break}}r.tween=o}}function Tl(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var i=be(this,e),s=i.tween;if(s!==o){r=(o=s).slice();for(var a={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=a;break}l===c&&r.push(a)}i.tween=r}}function zl(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=me(this.node(),n).tween,r=0,i=o.length,s;r<i;++r)if((s=o[r]).name===e)return s.value;return null}return this.each((t==null?Dl:Tl)(n,e,t))}function Xn(e,t,n){var o=e._id;return e.each(function(){var r=be(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return me(r,o).value[t]}}function Or(e,t){var n;return(typeof t=="number"?we:t instanceof Be?Xt:(n=Be(t))?(t=n,Xt):Dr)(e,t)}function Hl(e){return function(){this.removeAttribute(e)}}function Rl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ll(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttribute(e);return s===r?null:s===o?i:i=t(o=s,n)}}function Vl(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===r?null:s===o?i:i=t(o=s,n)}}function Ol(e,t,n){var o,r,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),l=a+"",s===l?null:s===o&&l===r?i:(r=l,i=t(o=s,a)))}}function Bl(e,t,n){var o,r,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),l=a+"",s===l?null:s===o&&l===r?i:(r=l,i=t(o=s,a)))}}function Fl(e,t){var n=Qt(e),o=n==="transform"?bl:Or;return this.attrTween(e,typeof t=="function"?(n.local?Bl:Ol)(n,o,Xn(this,"attr."+e,t)):t==null?(n.local?Rl:Hl)(n):(n.local?Vl:Ll)(n,o,t))}function Xl(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function jl(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Yl(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&jl(e,i)),n}return r._value=t,r}function Zl(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&Xl(e,i)),n}return r._value=t,r}function Wl(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 o=Qt(e);return this.tween(n,(o.local?Yl:Zl)(o,t))}function ql(e,t){return function(){Fn(this,e).delay=+t.apply(this,arguments)}}function Gl(e,t){return t=+t,function(){Fn(this,e).delay=t}}function Kl(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ql:Gl)(t,e)):me(this.node(),t).delay}function Ul(e,t){return function(){be(this,e).duration=+t.apply(this,arguments)}}function Ql(e,t){return t=+t,function(){be(this,e).duration=t}}function Jl(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Ul:Ql)(t,e)):me(this.node(),t).duration}function eu(e,t){if(typeof t!="function")throw new Error;return function(){be(this,e).ease=t}}function tu(e){var t=this._id;return arguments.length?this.each(eu(t,e)):me(this.node(),t).ease}function nu(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;be(this,e).ease=n}}function ou(e){if(typeof e!="function")throw new Error;return this.each(nu(this._id,e))}function ru(e){typeof e!="function"&&(e=yr(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],l,c=0;c<s;++c)(l=i[c])&&e.call(l,l.__data__,c,i)&&a.push(l);return new Ie(o,this._parents,this._name,this._id)}function iu(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,i=Math.min(o,r),s=new Array(o),a=0;a<i;++a)for(var l=t[a],c=n[a],u=l.length,d=s[a]=new Array(u),f,p=0;p<u;++p)(f=l[p]||c[p])&&(d[p]=f);for(;a<o;++a)s[a]=t[a];return new Ie(s,this._parents,this._name,this._id)}function su(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 au(e,t,n){var o,r,i=su(t)?Fn:be;return function(){var s=i(this,e),a=s.on;a!==o&&(r=(o=a).copy()).on(t,n),s.on=r}}function cu(e,t){var n=this._id;return arguments.length<2?me(this.node(),n).on.on(e):this.each(au(n,e,t))}function lu(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function uu(){return this.on("end.remove",lu(this._id))}function du(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Rn(e));for(var o=this._groups,r=o.length,i=new Array(r),s=0;s<r;++s)for(var a=o[s],l=a.length,c=i[s]=new Array(l),u,d,f=0;f<l;++f)(u=a[f])&&(d=e.call(u,u.__data__,f,a))&&("__data__"in u&&(d.__data__=u.__data__),c[f]=d,en(c[f],t,n,f,c,me(u,n)));return new Ie(i,this._parents,t,n)}function fu(e){var t=this._name,n=this._id;typeof e!="function"&&(e=mr(e));for(var o=this._groups,r=o.length,i=[],s=[],a=0;a<r;++a)for(var l=o[a],c=l.length,u,d=0;d<c;++d)if(u=l[d]){for(var f=e.call(u,u.__data__,d,l),p,g=me(u,n),v=0,y=f.length;v<y;++v)(p=f[v])&&en(p,t,n,v,f,g);i.push(f),s.push(u)}return new Ie(i,s,t,n)}var hu=bt.prototype.constructor;function gu(){return new hu(this._groups,this._parents)}function pu(e,t){var n,o,r;return function(){var i=Ue(this,e),s=(this.style.removeProperty(e),Ue(this,e));return i===s?null:i===n&&s===o?r:r=t(n=i,o=s)}}function Br(e){return function(){this.style.removeProperty(e)}}function mu(e,t,n){var o,r=n+"",i;return function(){var s=Ue(this,e);return s===r?null:s===o?i:i=t(o=s,n)}}function yu(e,t,n){var o,r,i;return function(){var s=Ue(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Ue(this,e))),s===l?null:s===o&&l===r?i:(r=l,i=t(o=s,a))}}function xu(e,t){var n,o,r,i="style."+t,s="end."+i,a;return function(){var l=be(this,e),c=l.on,u=l.value[i]==null?a||(a=Br(t)):void 0;(c!==n||r!==u)&&(o=(n=c).copy()).on(s,r=u),l.on=o}}function wu(e,t,n){var o=(e+="")=="transform"?vl:Or;return t==null?this.styleTween(e,pu(e,o)).on("end.style."+e,Br(e)):typeof t=="function"?this.styleTween(e,yu(e,o,Xn(this,"style."+e,t))).each(xu(this._id,e)):this.styleTween(e,mu(e,o,t),n).on("end.style."+e,null)}function vu(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function bu(e,t,n){var o,r;function i(){var s=t.apply(this,arguments);return s!==r&&(o=(r=s)&&vu(e,s,n)),o}return i._value=t,i}function _u(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,bu(e,t,n??""))}function Eu(e){return function(){this.textContent=e}}function Su(e){return function(){var t=e(this);this.textContent=t??""}}function Nu(e){return this.tween("text",typeof e=="function"?Su(Xn(this,"text",e)):Eu(e==null?"":e+""))}function Cu(e){return function(t){this.textContent=e.call(this,t)}}function Mu(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Cu(r)),t}return o._value=e,o}function Iu(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,Mu(e))}function ku(){for(var e=this._name,t=this._id,n=Fr(),o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,l,c=0;c<a;++c)if(l=s[c]){var u=me(l,t);en(l,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Ie(o,this._parents,e,n)}function Au(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(i,s){var a={value:s},l={value:function(){--r===0&&i()}};n.each(function(){var c=be(this,o),u=c.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),r===0&&i()})}var $u=0;function Ie(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Fr(){return++$u}var Ce=bt.prototype;Ie.prototype={constructor:Ie,select:du,selectAll:fu,selectChild:Ce.selectChild,selectChildren:Ce.selectChildren,filter:ru,merge:iu,selection:gu,transition:ku,call:Ce.call,nodes:Ce.nodes,node:Ce.node,size:Ce.size,empty:Ce.empty,each:Ce.each,on:cu,attr:Fl,attrTween:Wl,style:wu,styleTween:_u,text:Nu,textTween:Iu,remove:uu,tween:zl,delay:Kl,duration:Jl,ease:tu,easeVarying:ou,end:Au,[Symbol.iterator]:Ce[Symbol.iterator]};function Pu(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Du={time:null,delay:0,duration:250,ease:Pu};function Tu(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 zu(e){var t,n;e instanceof Ie?(t=e._id,e=e._name):(t=Fr(),(n=Du).time=Bn(),e=e==null?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&en(l,e,t,c,s,n||Tu(l,t));return new Ie(o,this._parents,e,t)}bt.prototype.interrupt=Pl;bt.prototype.transition=zu;const At=e=>()=>e;function Hu(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){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:o,enumerable:!0,configurable:!0},_:{value:r}})}function Me(e,t,n){this.k=e,this.x=t,this.y=n}Me.prototype={constructor:Me,scale:function(e){return e===1?this:new Me(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Me(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 tn=new Me(1,0,0);Xr.prototype=Me.prototype;function Xr(e){for(;!e.__zoom;)if(!(e=e.parentNode))return tn;return e.__zoom}function pn(e){e.stopImmediatePropagation()}function at(e){e.preventDefault(),e.stopImmediatePropagation()}function Ru(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Lu(){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 Mo(){return this.__zoom||tn}function Vu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ou(){return navigator.maxTouchPoints||"ontouchstart"in this}function Bu(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function jr(){var e=Ru,t=Lu,n=Bu,o=Vu,r=Ou,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Ht,c=Ut("start","zoom","end"),u,d,f,p=500,g=150,v=0,y=10;function m(w){w.property("__zoom",Mo).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",$).on("dblclick.zoom",B).filter(r).on("touchstart.zoom",M).on("touchmove.zoom",z).on("touchend.zoom touchcancel.zoom",R).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(w,N,E,I){var T=w.selection?w.selection():w;T.property("__zoom",Mo),w!==T?S(w,N,E,I):T.interrupt().each(function(){_(this,arguments).event(I).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},m.scaleBy=function(w,N,E,I){m.scaleTo(w,function(){var T=this.__zoom.k,P=typeof N=="function"?N.apply(this,arguments):N;return T*P},E,I)},m.scaleTo=function(w,N,E,I){m.transform(w,function(){var T=t.apply(this,arguments),P=this.__zoom,V=E==null?x(T):typeof E=="function"?E.apply(this,arguments):E,O=P.invert(V),L=typeof N=="function"?N.apply(this,arguments):N;return n(h(b(P,L),V,O),T,s)},E,I)},m.translateBy=function(w,N,E,I){m.transform(w,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof E=="function"?E.apply(this,arguments):E),t.apply(this,arguments),s)},null,I)},m.translateTo=function(w,N,E,I,T){m.transform(w,function(){var P=t.apply(this,arguments),V=this.__zoom,O=I==null?x(P):typeof I=="function"?I.apply(this,arguments):I;return n(tn.translate(O[0],O[1]).scale(V.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof E=="function"?-E.apply(this,arguments):-E),P,s)},I,T)};function b(w,N){return N=Math.max(i[0],Math.min(i[1],N)),N===w.k?w:new Me(N,w.x,w.y)}function h(w,N,E){var I=N[0]-E[0]*w.k,T=N[1]-E[1]*w.k;return I===w.x&&T===w.y?w:new Me(w.k,I,T)}function x(w){return[(+w[0][0]+ +w[1][0])/2,(+w[0][1]+ +w[1][1])/2]}function S(w,N,E,I){w.on("start.zoom",function(){_(this,arguments).event(I).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(I).end()}).tween("zoom",function(){var T=this,P=arguments,V=_(T,P).event(I),O=t.apply(T,P),L=E==null?x(O):typeof E=="function"?E.apply(T,P):E,j=Math.max(O[1][0]-O[0][0],O[1][1]-O[0][1]),X=T.__zoom,q=typeof N=="function"?N.apply(T,P):N,Q=l(X.invert(L).concat(j/X.k),q.invert(L).concat(j/q.k));return function(W){if(W===1)W=q;else{var H=Q(W),F=j/H[2];W=new Me(F,L[0]-H[0]*F,L[1]-H[1]*F)}V.zoom(null,W)}})}function _(w,N,E){return!E&&w.__zooming||new C(w,N)}function C(w,N){this.that=w,this.args=N,this.active=0,this.sourceEvent=null,this.extent=t.apply(w,N),this.taps=0}C.prototype={event:function(w){return w&&(this.sourceEvent=w),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(w,N){return this.mouse&&w!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&w!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&w!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(w){var N=ce(this.that).datum();c.call(w,this.that,new Hu(w,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),N)}};function k(w,...N){if(!e.apply(this,arguments))return;var E=_(this,N).event(w),I=this.__zoom,T=Math.max(i[0],Math.min(i[1],I.k*Math.pow(2,o.apply(this,arguments)))),P=de(w);if(E.wheel)(E.mouse[0][0]!==P[0]||E.mouse[0][1]!==P[1])&&(E.mouse[1]=I.invert(E.mouse[0]=P)),clearTimeout(E.wheel);else{if(I.k===T)return;E.mouse=[P,I.invert(P)],Vt(this),E.start()}at(w),E.wheel=setTimeout(V,g),E.zoom("mouse",n(h(b(I,T),E.mouse[0],E.mouse[1]),E.extent,s));function V(){E.wheel=null,E.end()}}function $(w,...N){if(f||!e.apply(this,arguments))return;var E=w.currentTarget,I=_(this,N,!0).event(w),T=ce(w.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",j,!0),P=de(w,E),V=w.clientX,O=w.clientY;Mr(w.view),pn(w),I.mouse=[P,this.__zoom.invert(P)],Vt(this),I.start();function L(X){if(at(X),!I.moved){var q=X.clientX-V,Q=X.clientY-O;I.moved=q*q+Q*Q>v}I.event(X).zoom("mouse",n(h(I.that.__zoom,I.mouse[0]=de(X,E),I.mouse[1]),I.extent,s))}function j(X){T.on("mousemove.zoom mouseup.zoom",null),Ir(X.view,I.moved),at(X),I.event(X).end()}}function B(w,...N){if(e.apply(this,arguments)){var E=this.__zoom,I=de(w.changedTouches?w.changedTouches[0]:w,this),T=E.invert(I),P=E.k*(w.shiftKey?.5:2),V=n(h(b(E,P),I,T),t.apply(this,N),s);at(w),a>0?ce(this).transition().duration(a).call(S,V,I,w):ce(this).call(m.transform,V,I,w)}}function M(w,...N){if(e.apply(this,arguments)){var E=w.touches,I=E.length,T=_(this,N,w.changedTouches.length===I).event(w),P,V,O,L;for(pn(w),V=0;V<I;++V)O=E[V],L=de(O,this),L=[L,this.__zoom.invert(L),O.identifier],T.touch0?!T.touch1&&T.touch0[2]!==L[2]&&(T.touch1=L,T.taps=0):(T.touch0=L,P=!0,T.taps=1+!!u);u&&(u=clearTimeout(u)),P&&(T.taps<2&&(d=L[0],u=setTimeout(function(){u=null},p)),Vt(this),T.start())}}function z(w,...N){if(this.__zooming){var E=_(this,N).event(w),I=w.changedTouches,T=I.length,P,V,O,L;for(at(w),P=0;P<T;++P)V=I[P],O=de(V,this),E.touch0&&E.touch0[2]===V.identifier?E.touch0[0]=O:E.touch1&&E.touch1[2]===V.identifier&&(E.touch1[0]=O);if(V=E.that.__zoom,E.touch1){var j=E.touch0[0],X=E.touch0[1],q=E.touch1[0],Q=E.touch1[1],W=(W=q[0]-j[0])*W+(W=q[1]-j[1])*W,H=(H=Q[0]-X[0])*H+(H=Q[1]-X[1])*H;V=b(V,Math.sqrt(W/H)),O=[(j[0]+q[0])/2,(j[1]+q[1])/2],L=[(X[0]+Q[0])/2,(X[1]+Q[1])/2]}else if(E.touch0)O=E.touch0[0],L=E.touch0[1];else return;E.zoom("touch",n(h(V,O,L),E.extent,s))}}function R(w,...N){if(this.__zooming){var E=_(this,N).event(w),I=w.changedTouches,T=I.length,P,V;for(pn(w),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),P=0;P<T;++P)V=I[P],E.touch0&&E.touch0[2]===V.identifier?delete E.touch0:E.touch1&&E.touch1[2]===V.identifier&&delete E.touch1;if(E.touch1&&!E.touch0&&(E.touch0=E.touch1,delete E.touch1),E.touch0)E.touch0[1]=this.__zoom.invert(E.touch0[0]);else if(E.end(),E.taps===2&&(V=de(V,this),Math.hypot(d[0]-V[0],d[1]-V[1])<y)){var O=ce(this).on("dblclick.zoom");O&&O.apply(this,arguments)}}}return m.wheelDelta=function(w){return arguments.length?(o=typeof w=="function"?w:At(+w),m):o},m.filter=function(w){return arguments.length?(e=typeof w=="function"?w:At(!!w),m):e},m.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:At(!!w),m):r},m.extent=function(w){return arguments.length?(t=typeof w=="function"?w:At([[+w[0][0],+w[0][1]],[+w[1][0],+w[1][1]]]),m):t},m.scaleExtent=function(w){return arguments.length?(i[0]=+w[0],i[1]=+w[1],m):[i[0],i[1]]},m.translateExtent=function(w){return arguments.length?(s[0][0]=+w[0][0],s[1][0]=+w[1][0],s[0][1]=+w[0][1],s[1][1]=+w[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(w){return arguments.length?(n=w,m):n},m.duration=function(w){return arguments.length?(a=+w,m):a},m.interpolate=function(w){return arguments.length?(l=w,m):l},m.on=function(){var w=c.on.apply(c,arguments);return w===c?m:w},m.clickDistance=function(w){return arguments.length?(v=(w=+w)*w,m):Math.sqrt(v)},m.tapDistance=function(w){return arguments.length?(y=+w,m):y},m}const pe={error001:(e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.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 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:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", 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.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},mt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Yr=["Enter"," ","Escape"],Zr={"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 Je;(function(e){e.Strict="strict",e.Loose="loose"})(Je||(Je={}));var Oe;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Oe||(Oe={}));var yt;(function(e){e.Partial="partial",e.Full="full"})(yt||(yt={}));const Wr={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Pe;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Pe||(Pe={}));var Wt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Wt||(Wt={}));var Z;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Z||(Z={}));const Io={[Z.Left]:Z.Right,[Z.Right]:Z.Left,[Z.Top]:Z.Bottom,[Z.Bottom]:Z.Top};function qr(e){return e===null?null:e?"valid":"invalid"}const Gr=e=>"id"in e&&"source"in e&&"target"in e,Fu=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),jn=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Et=(e,t=[0,0])=>{const{width:n,height:o}=ke(e),r=e.origin??t,i=n*r[0],s=o*r[1];return{x:e.position.x-i,y:e.position.y-s}},Xu=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,r)=>{const i=typeof r=="string";let s=!t.nodeLookup&&!i?r:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(r):jn(r)?r:t.nodeLookup.get(r.id));const a=s?qt(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return nn(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return on(n)},St=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=nn(n,qt(r)),o=!0)}),o?on(n):{x:0,y:0,width:0,height:0}},Yn=(e,t,[n,o,r]=[0,0,1],i=!1,s=!1)=>{const a={...rt(t,[n,o,r]),width:t.width/r,height:t.height/r},l=[];for(const c of e.values()){const{measured:u,selectable:d=!0,hidden:f=!1}=c;if(s&&!d||f)continue;const p=u.width??c.width??c.initialWidth??null,g=u.height??c.height??c.initialHeight??null,v=xt(a,tt(c)),y=(p??0)*(g??0),m=i&&v>0;(!c.internals.handleBounds||m||v>=y||c.dragging)&&l.push(c)}return l},ju=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function Yu(e,t){const n=new Map,o=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!o||o.has(r.id))&&n.set(r.id,r)}),n}async function Zu({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},s){if(e.size===0)return!0;const a=Yu(e,s),l=St(a),c=Wn(l,t,n,s?.minZoom??r,s?.maxZoom??i,s?.padding??.1);return await o.setViewport(c,{duration:s?.duration,ease:s?.ease,interpolate:s?.interpolate}),!0}function Kr({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){const s=n.get(e),a=s.parentId?n.get(s.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},u=s.origin??o;let d=s.extent||r;if(s.extent==="parent"&&!s.expandParent)if(!a)i?.("005",pe.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(d=[[l,c],[l+p,c+g]])}else a&&je(s.extent)&&(d=[[s.extent[0][0]+l,s.extent[0][1]+c],[s.extent[1][0]+l,s.extent[1][1]+c]]);const f=je(d)?Xe(t,d,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&i?.("015",pe.error015()),{position:{x:f.x-l+(s.measured.width??0)*u[0],y:f.y-c+(s.measured.height??0)*u[1]},positionAbsolute:f}}async function Wu({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map(f=>f.id)),s=[];for(const f of n){if(f.deletable===!1)continue;const p=i.has(f.id),g=!p&&f.parentId&&s.find(v=>v.id===f.parentId);(p||g)&&s.push(f)}const a=new Set(t.map(f=>f.id)),l=o.filter(f=>f.deletable!==!1),u=ju(s,l);for(const f of l)a.has(f.id)&&!u.find(g=>g.id===f.id)&&u.push(f);if(!r)return{edges:u,nodes:s};const d=await r({nodes:s,edges:u});return typeof d=="boolean"?d?{edges:u,nodes:s}:{edges:[],nodes:[]}:d}const et=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xe=(e={x:0,y:0},t,n)=>({x:et(e.x,t[0][0],t[1][0]-(n?.width??0)),y:et(e.y,t[0][1],t[1][1]-(n?.height??0))});function Ur(e,t,n){const{width:o,height:r}=ke(n),{x:i,y:s}=n.internals.positionAbsolute;return Xe(e,[[i,s],[i+o,s+r]],t)}const ko=(e,t,n)=>e<t?et(Math.abs(e-t),1,t)/t:e>n?-et(Math.abs(e-n),1,t)/t:0,Zn=(e,t,n=15,o=40)=>{const r=ko(e.x,o,t.width-o)*n,i=ko(e.y,o,t.height-o)*n;return[r,i]},nn=(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)}),$n=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),on=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),tt=(e,t=[0,0])=>{const{x:n,y:o}=jn(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},qt=(e,t=[0,0])=>{const{x:n,y:o}=jn(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},Qr=(e,t)=>on(nn($n(e),$n(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)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},Ao=e=>he(e.width)&&he(e.height)&&he(e.x)&&he(e.y),he=e=>!isNaN(e)&&isFinite(e),Jr=(e,t)=>(n,o)=>{},Nt=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),rt=({x:e,y:t},[n,o,r],i=!1,s=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return i?Nt(a,s):a},nt=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Ze(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(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function qu(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Ze(e,n),r=Ze(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Ze(e.top??e.y??0,n),r=Ze(e.bottom??e.y??0,n),i=Ze(e.left??e.x??0,t),s=Ze(e.right??e.x??0,t);return{top:o,right:s,bottom:r,left:i,x:i+s,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Gu(e,t,n,o,r,i){const{x:s,y:a}=nt(e,[t,n,o]),{x:l,y:c}=nt({x:e.x+e.width,y:e.y+e.height},[t,n,o]),u=r-l,d=i-c;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(u),bottom:Math.floor(d)}}const Wn=(e,t,n,o,r,i)=>{const s=qu(i,t,n),a=(t-s.x)/e.width,l=(n-s.y)/e.height,c=Math.min(a,l),u=et(c,o,r),d=e.x+e.width/2,f=e.y+e.height/2,p=t/2-d*u,g=n/2-f*u,v=Gu(e,p,g,u,t,n),y={left:Math.min(v.left-s.left,0),top:Math.min(v.top-s.top,0),right:Math.min(v.right-s.right,0),bottom:Math.min(v.bottom-s.bottom,0)};return{x:p-y.left+y.right,y:g-y.top+y.bottom,zoom:u}},wt=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function je(e){return e!=null&&e!=="parent"}function ke(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ei(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ti(e,t={width:0,height:0},n,o,r){const i={...e},s=o.get(n);if(s){const a=s.origin||r;i.x+=s.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function $o(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Ku(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Uu(e){return{...Zr,...e||{}}}function dt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:i,y:s}=ge(e),a=rt({x:i-(r?.left??0),y:s-(r?.top??0)},o),{x:l,y:c}=n?Nt(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const qn=e=>({width:e.offsetWidth,height:e.offsetHeight}),ni=e=>e?.getRootNode?.()||window?.document,Qu=["INPUT","SELECT","TEXTAREA"];function oi(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Qu.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ri=e=>"clientX"in e,ge=(e,t)=>{const n=ri(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},Po=(e,t,n,o,r)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:r,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...qn(s)}})};function ii({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:s,targetControlY:a}){const l=e*.125+r*.375+s*.375+n*.125,c=t*.125+i*.375+a*.375+o*.125,u=Math.abs(l-e),d=Math.abs(c-t);return[l,c,u,d]}function $t(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Do({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case Z.Left:return[t-$t(t-o,i),n];case Z.Right:return[t+$t(o-t,i),n];case Z.Top:return[t,n-$t(n-r,i)];case Z.Bottom:return[t,n+$t(r-n,i)]}}function si({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:o,targetY:r,targetPosition:i=Z.Top,curvature:s=.25}){const[a,l]=Do({pos:n,x1:e,y1:t,x2:o,y2:r,c:s}),[c,u]=Do({pos:i,x1:o,y1:r,x2:e,y2:t,c:s}),[d,f,p,g]=ii({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${o},${r}`,d,f,p,g]}function ai({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,s=Math.abs(o-t)/2,a=o<t?o+s:o-s;return[i,a,r,s]}function Ju({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if(i==="manual")return o;const s=r&&n?o+1e3:o,a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return s+a}function ed({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const i=nn(qt(e),qt(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return xt(s,on(i))>0}const td=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,nd=(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)),od=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",pe.error006()),t;const o=n.getEdgeId||td;let r;return Gr(e)?r={...e}:r={...e,id:o(e)},nd(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function ci({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,s,a]=ai({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,s,a]}const To={[Z.Left]:{x:-1,y:0},[Z.Right]:{x:1,y:0},[Z.Top]:{x:0,y:-1},[Z.Bottom]:{x:0,y:1}},rd=({source:e,sourcePosition:t=Z.Bottom,target:n})=>t===Z.Left||t===Z.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},zo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function id({source:e,sourcePosition:t=Z.Bottom,target:n,targetPosition:o=Z.Top,center:r,offset:i,stepPosition:s}){const a=To[t],l=To[o],c={x:e.x+a.x*i,y:e.y+a.y*i},u={x:n.x+l.x*i,y:n.y+l.y*i},d=rd({source:c,sourcePosition:t,target:u}),f=d.x!==0?"x":"y",p=d[f];let g=[],v,y;const m={x:0,y:0},b={x:0,y:0},[,,h,x]=ai({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*l[f]===-1){f==="x"?(v=r.x??c.x+(u.x-c.x)*s,y=r.y??(c.y+u.y)/2):(v=r.x??(c.x+u.x)/2,y=r.y??c.y+(u.y-c.y)*s);const k=[{x:v,y:c.y},{x:v,y:u.y}],$=[{x:c.x,y},{x:u.x,y}];a[f]===p?g=f==="x"?k:$:g=f==="x"?$:k}else{const k=[{x:c.x,y:u.y}],$=[{x:u.x,y:c.y}];if(f==="x"?g=a.x===p?$:k:g=a.y===p?k:$,t===o){const w=Math.abs(e[f]-n[f]);if(w<=i){const N=Math.min(i-1,i-w);a[f]===p?m[f]=(c[f]>e[f]?-1:1)*N:b[f]=(u[f]>n[f]?-1:1)*N}}if(t!==o){const w=f==="x"?"y":"x",N=a[f]===l[w],E=c[w]>u[w],I=c[w]<u[w];(a[f]===1&&(!N&&E||N&&I)||a[f]!==1&&(!N&&I||N&&E))&&(g=f==="x"?k:$)}const B={x:c.x+m.x,y:c.y+m.y},M={x:u.x+b.x,y:u.y+b.y},z=Math.max(Math.abs(B.x-g[0].x),Math.abs(M.x-g[0].x)),R=Math.max(Math.abs(B.y-g[0].y),Math.abs(M.y-g[0].y));z>=R?(v=(B.x+M.x)/2,y=g[0].y):(v=g[0].x,y=(B.y+M.y)/2)}const S={x:c.x+m.x,y:c.y+m.y},_={x:u.x+b.x,y:u.y+b.y};return[[e,...S.x!==g[0].x||S.y!==g[0].y?[S]:[],...g,..._.x!==g[g.length-1].x||_.y!==g[g.length-1].y?[_]:[],n],v,y,h,x]}function sd(e,t,n,o){const r=Math.min(zo(e,t)/2,zo(t,n)/2,o),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const c=e.x<n.x?-1:1,u=e.y<n.y?1:-1;return`L ${i+r*c},${s}Q ${i},${s} ${i},${s+r*u}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${s+r*l}Q ${i},${s} ${i+r*a},${s}`}function Pn({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:o,targetY:r,targetPosition:i=Z.Top,borderRadius:s=5,centerX:a,centerY:l,offset:c=20,stepPosition:u=.5}){const[d,f,p,g,v]=id({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:a,y:l},offset:c,stepPosition:u});let y=`M${d[0].x} ${d[0].y}`;for(let m=1;m<d.length-1;m++)y+=sd(d[m-1],d[m],d[m+1],s);return y+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[y,f,p,g,v]}function Ho(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function ad(e){const{sourceNode:t,targetNode:n}=e;if(!Ho(t)||!Ho(n))return null;const o=t.internals.handleBounds||Ro(t.handles),r=n.internals.handleBounds||Ro(n.handles),i=Lo(o?.source??[],e.sourceHandle),s=Lo(e.connectionMode===Je.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!i||!s)return e.onError?.("008",pe.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=i?.position||Z.Bottom,l=s?.position||Z.Top,c=Ye(t,i,a),u=Ye(n,s,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:a,targetPosition:l}}function Ro(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function Ye(e,t,n=Z.Left,o=!1){const r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:s,height:a}=t??ke(e);if(o)return{x:r+s/2,y:i+a/2};switch(t?.position??n){case Z.Top:return{x:r+s/2,y:i};case Z.Right:return{x:r+s,y:i+a/2};case Z.Bottom:return{x:r+s/2,y:i+a};case Z.Left:return{x:r,y:i+a/2}}}function Lo(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Dn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function cd(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce((s,a)=>([a.markerStart||o,a.markerEnd||r].forEach(l=>{if(l&&typeof l=="object"){const c=Dn(l,t);i.has(c)||(s.push({id:c,color:l.color||n,...l}),i.add(c))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const li=1e3,ld=10,Gn={nodeOrigin:[0,0],nodeExtent:mt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},ud={...Gn,checkEquality:!0};function Kn(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function dd(e,t,n){const o=Kn(Gn,n);for(const r of e.values())if(r.parentId)Qn(r,e,t,o);else{const i=Et(r,o.nodeOrigin),s=je(r.extent)?r.extent:o.nodeExtent,a=Xe(i,s,ke(r));r.internals.positionAbsolute=a}}function fd(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],o=[];for(const r of e.handles){const i={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(i):r.type==="target"&&o.push(i)}return{source:n,target:o}}function Un(e){return e==="manual"}function Tn(e,t,n,o={}){const r=Kn(ud,o),i={i:0},s=new Map(t),a=r?.elevateNodesOnSelect&&!Un(r.zIndexMode)?li:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const u of e){let d=s.get(u.id);if(r.checkEquality&&u===d?.internals.userNode)t.set(u.id,d);else{const f=Et(u,r.nodeOrigin),p=je(u.extent)?u.extent:r.nodeExtent,g=Xe(f,p,ke(u));d={...r.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:g,handleBounds:fd(u,d),z:ui(u,a,r.zIndexMode),userNode:u}},t.set(u.id,d)}(d.measured===void 0||d.measured.width===void 0||d.measured.height===void 0)&&!d.hidden&&(l=!1),u.parentId&&Qn(d,t,n,o,i),c||=u.selected??!1}return{nodesInitialized:l,hasSelectedNodes:c}}function hd(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 Qn(e,t,n,o,r){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a,zIndexMode:l}=Kn(Gn,o),c=e.parentId,u=t.get(c);if(!u){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}hd(e,n),r&&!u.parentId&&u.internals.rootParentIndex===void 0&&l==="auto"&&(u.internals.rootParentIndex=++r.i,u.internals.z=u.internals.z+r.i*ld),r&&u.internals.rootParentIndex!==void 0&&(r.i=u.internals.rootParentIndex);const d=i&&!Un(l)?li:0,{x:f,y:p,z:g}=gd(e,u,s,a,d,l),{positionAbsolute:v}=e.internals,y=f!==v.x||p!==v.y;(y||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:f,y:p}:v,z:g}})}function ui(e,t,n){const o=he(e.zIndex)?e.zIndex:0;return Un(n)?o:o+(e.selected?t:0)}function gd(e,t,n,o,r,i){const{x:s,y:a}=t.internals.positionAbsolute,l=ke(e),c=Et(e,n),u=je(e.extent)?Xe(c,e.extent,l):c;let d=Xe({x:s+u.x,y:a+u.y},o,l);e.extent==="parent"&&(d=Ur(d,l,t));const f=ui(e,r,i),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Jn(e,t,n,o=[0,0]){const r=[],i=new Map;for(const s of e){const a=t.get(s.parentId);if(!a)continue;const l=i.get(s.parentId)?.expandedRect??tt(a),c=Qr(l,s.rect);i.set(s.parentId,{expandedRect:c,parent:a})}return i.size>0&&i.forEach(({expandedRect:s,parent:a},l)=>{const c=a.internals.positionAbsolute,u=ke(a),d=a.origin??o,f=s.x<c.x?Math.round(Math.abs(c.x-s.x)):0,p=s.y<c.y?Math.round(Math.abs(c.y-s.y)):0,g=Math.max(u.width,Math.round(s.width)),v=Math.max(u.height,Math.round(s.height)),y=(g-u.width)*d[0],m=(v-u.height)*d[1];(f>0||p>0||y||m)&&(r.push({id:l,type:"position",position:{x:a.position.x-f+y,y:a.position.y-p+m}}),n.get(l)?.forEach(b=>{e.some(h=>h.id===b.id)||r.push({id:b.id,type:"position",position:{x:b.position.x+f,y:b.position.y+p}})})),(u.width<s.width||u.height<s.height||f||p)&&r.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:g+(f?d[0]*f-y:0),height:v+(p?d[1]*p-m:0)}})}),r}function pd(e,t,n,o,r,i,s){const a=o?.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],u=window.getComputedStyle(a),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(const p of e.values()){const g=t.get(p.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),l=!0;continue}const v=qn(p.nodeElement),y=g.measured.width!==v.width||g.measured.height!==v.height;if(!!(v.width&&v.height&&(y||!g.internals.handleBounds||p.force))){const b=p.nodeElement.getBoundingClientRect(),h=je(g.extent)?g.extent:i;let{positionAbsolute:x}=g.internals;g.parentId&&g.extent==="parent"?x=Ur(x,v,t.get(g.parentId)):h&&(x=Xe(x,h,v));const S={...g,measured:v,internals:{...g.internals,positionAbsolute:x,handleBounds:{source:Po("source",p.nodeElement,b,d,g.id),target:Po("target",p.nodeElement,b,d,g.id)}}};t.set(g.id,S),g.parentId&&Qn(S,t,n,{nodeOrigin:r,zIndexMode:s}),l=!0,y&&(c.push({id:g.id,type:"dimensions",dimensions:v}),g.expandParent&&g.parentId&&f.push({id:g.id,parentId:g.parentId,rect:tt(S,r)}))}}if(f.length>0){const p=Jn(f,t,n,r);c.push(...p)}return{changes:c,updatedInternals:l}}async function md({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2])}function Vo(e,t,n,o,r,i){let s=r;const a=o.get(s)||new Map;o.set(s,a.set(n,t)),s=`${r}-${e}`;const l=o.get(s)||new Map;if(o.set(s,l.set(n,t)),i){s=`${r}-${e}-${i}`;const c=o.get(s)||new Map;o.set(s,c.set(n,t))}}function di(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:i,sourceHandle:s=null,targetHandle:a=null}=o,l={edgeId:o.id,source:r,target:i,sourceHandle:s,targetHandle:a},c=`${r}-${s}--${i}-${a}`,u=`${i}-${a}--${r}-${s}`;Vo("source",l,u,e,r,s),Vo("target",l,c,e,i,a),t.set(o.id,o)}}function fi(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:fi(n,t):!1}function Oo(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)return!1;o=o?.parentElement}while(o);return!1}function yd(e,t,n,o){const r=new Map;for(const[i,s]of e)if((s.selected||s.id===o)&&(!s.parentId||!fi(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const a=e.get(i);a&&r.set(i,{id:i,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 r}function mn({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[s,a]of t){const l=n.get(s)?.internals.userNode;l&&r.push({...l,position:a.position,dragging:o})}if(!e)return[r[0],r];const i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function xd({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const i={x:n-r.distance.x,y:o-r.distance.y},s=Nt(i,t);return{x:s.x-i.x,y:s.y-i.y}}function wd({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},s=0,a=new Map,l=!1,c={x:0,y:0},u=null,d=!1,f=null,p=!1,g=!1,v=null;function y({noDragClassName:b,handleSelector:h,domNode:x,isSelectable:S,nodeId:_,nodeClickDistance:C=0}){f=ce(x);function k({x:z,y:R}){const{nodeLookup:w,nodeExtent:N,snapGrid:E,snapToGrid:I,nodeOrigin:T,onNodeDrag:P,onSelectionDrag:V,onError:O,updateNodePositions:L}=t();i={x:z,y:R};let j=!1;const X=a.size>1,q=X&&N?$n(St(a)):null,Q=X&&I?xd({dragItems:a,snapGrid:E,x:z,y:R}):null;for(const[W,H]of a){if(!w.has(W))continue;let F={x:z-H.distance.x,y:R-H.distance.y};I&&(F=Q?{x:Math.round(F.x+Q.x),y:Math.round(F.y+Q.y)}:Nt(F,E));let U=null;if(X&&N&&!H.extent&&q){const{positionAbsolute:G}=H.internals,J=G.x-q.x+N[0][0],te=G.x+H.measured.width-q.x2+N[1][0],re=G.y-q.y+N[0][1],se=G.y+H.measured.height-q.y2+N[1][1];U=[[J,re],[te,se]]}const{position:K,positionAbsolute:Y}=Kr({nodeId:W,nextPosition:F,nodeLookup:w,nodeExtent:U||N,nodeOrigin:T,onError:O});j=j||H.position.x!==K.x||H.position.y!==K.y,H.position=K,H.internals.positionAbsolute=Y}if(g=g||j,!!j&&(L(a,!0),v&&(o||P||!_&&V))){const[W,H]=mn({nodeId:_,dragItems:a,nodeLookup:w});o?.(v,a,W,H),P?.(v,W,H),_||V?.(v,H)}}async function $(){if(!u)return;const{transform:z,panBy:R,autoPanSpeed:w,autoPanOnNodeDrag:N}=t();if(!N){l=!1,cancelAnimationFrame(s);return}const[E,I]=Zn(c,u,w);(E!==0||I!==0)&&(i.x=(i.x??0)-E/z[2],i.y=(i.y??0)-I/z[2],await R({x:E,y:I})&&k(i)),s=requestAnimationFrame($)}function B(z){const{nodeLookup:R,multiSelectionActive:w,nodesDraggable:N,transform:E,snapGrid:I,snapToGrid:T,selectNodesOnDrag:P,onNodeDragStart:V,onSelectionDragStart:O,unselectNodesAndEdges:L}=t();d=!0,(!P||!S)&&!w&&_&&(R.get(_)?.selected||L()),S&&P&&_&&e?.(_);const j=dt(z.sourceEvent,{transform:E,snapGrid:I,snapToGrid:T,containerBounds:u});if(i=j,a=yd(R,N,j,_),a.size>0&&(n||V||!_&&O)){const[X,q]=mn({nodeId:_,dragItems:a,nodeLookup:R});n?.(z.sourceEvent,a,X,q),V?.(z.sourceEvent,X,q),_||O?.(z.sourceEvent,q)}}const M=kr().clickDistance(C).on("start",z=>{const{domNode:R,nodeDragThreshold:w,transform:N,snapGrid:E,snapToGrid:I}=t();u=R?.getBoundingClientRect()||null,p=!1,g=!1,v=z.sourceEvent,w===0&&B(z),i=dt(z.sourceEvent,{transform:N,snapGrid:E,snapToGrid:I,containerBounds:u}),c=ge(z.sourceEvent,u)}).on("drag",z=>{const{autoPanOnNodeDrag:R,transform:w,snapGrid:N,snapToGrid:E,nodeDragThreshold:I,nodeLookup:T}=t(),P=dt(z.sourceEvent,{transform:w,snapGrid:N,snapToGrid:E,containerBounds:u});if(v=z.sourceEvent,(z.sourceEvent.type==="touchmove"&&z.sourceEvent.touches.length>1||_&&!T.has(_))&&(p=!0),!p){if(!l&&R&&d&&(l=!0,$()),!d){const V=ge(z.sourceEvent,u),O=V.x-c.x,L=V.y-c.y;Math.sqrt(O*O+L*L)>I&&B(z)}(i.x!==P.xSnapped||i.y!==P.ySnapped)&&a&&d&&(c=ge(z.sourceEvent,u),k(P))}}).on("end",z=>{if(!d||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,d=!1,cancelAnimationFrame(s),a.size>0){const{nodeLookup:R,updateNodePositions:w,onNodeDragStop:N,onSelectionDragStop:E}=t();if(g&&(w(a,!1),g=!1),r||N||!_&&E){const[I,T]=mn({nodeId:_,dragItems:a,nodeLookup:R,dragging:!1});r?.(z.sourceEvent,a,I,T),N?.(z.sourceEvent,I,T),_||E?.(z.sourceEvent,T)}}}).filter(z=>{const R=z.target;return!z.button&&(!b||!Oo(R,`.${b}`,x))&&(!h||Oo(R,h,x))});f.call(M)}function m(){f?.on(".drag",null)}return{update:y,destroy:m}}function vd(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())xt(r,tt(i))>0&&o.push(i);return o}const bd=250;function _d(e,t,n,o){let r=[],i=1/0;const s=vd(e,n,t+bd);for(const a of s){const l=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of l){if(o.nodeId===c.nodeId&&o.type===c.type&&o.id===c.id)continue;const{x:u,y:d}=Ye(a,c,c.position,!0),f=Math.sqrt(Math.pow(u-e.x,2)+Math.pow(d-e.y,2));f>t||(f<i?(r=[{...c,x:u,y:d}],i=f):f===i&&r.push({...c,x:u,y:d}))}}if(!r.length)return null;if(r.length>1){const a=o.type==="source"?"target":"source";return r.find(l=>l.type===a)??r[0]}return r[0]}function hi(e,t,n,o,r,i=!1){const s=o.get(e);if(!s)return null;const a=r==="strict"?s.internals.handleBounds?.[t]:[...s.internals.handleBounds?.source??[],...s.internals.handleBounds?.target??[]],l=(n?a?.find(c=>c.id===n):a?.[0])??null;return l&&i?{...l,...Ye(s,l,l.position,!0)}:l}function gi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Ed(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const pi=()=>!0;function Sd(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:g,onConnect:v,onConnectEnd:y,isValidConnection:m=pi,onReconnectEnd:b,updateConnection:h,getTransform:x,getFromHandle:S,autoPanSpeed:_,dragThreshold:C=1,handleDomNode:k}){const $=ni(e.target);let B=0,M;const{x:z,y:R}=ge(e),w=gi(i,k),N=a?.getBoundingClientRect();let E=!1;if(!N||!w)return;const I=hi(r,w,o,l,t);if(!I)return;let T=ge(e,N),P=!1,V=null,O=!1,L=null;function j(){if(!u||!N)return;const[K,Y]=Zn(T,N,_);f({x:K,y:Y}),B=requestAnimationFrame(j)}const X={...I,nodeId:r,type:w,position:I.position},q=l.get(r);let W={inProgress:!0,isValid:null,from:Ye(q,X,Z.Left,!0),fromHandle:X,fromPosition:X.position,fromNode:q,to:T,toHandle:null,toPosition:Io[X.position],toNode:null,pointer:T};function H(){E=!0,h(W),g?.(e,{nodeId:r,handleId:o,handleType:w})}C===0&&H();function F(K){if(!E){const{x:se,y:_e}=ge(K),ye=se-z,xe=_e-R;if(!(ye*ye+xe*xe>C*C))return;H()}if(!S()||!X){U(K);return}const Y=x();T=ge(K,N),M=_d(rt(T,Y,!1,[1,1]),n,l,X),P||(j(),P=!0);const G=mi(K,{handle:M,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:s?"target":"source",isValidConnection:m,doc:$,lib:c,flowId:d,nodeLookup:l});L=G.handleDomNode,V=G.connection,O=Ed(!!M,G.isValid);const J=l.get(r),te=J?Ye(J,X,Z.Left,!0):W.from,re={...W,from:te,isValid:O,to:G.toHandle&&O?nt({x:G.toHandle.x,y:G.toHandle.y},Y):T,toHandle:G.toHandle,toPosition:O&&G.toHandle?G.toHandle.position:Io[X.position],toNode:G.toHandle?l.get(G.toHandle.nodeId):null,pointer:T};h(re),W=re}function U(K){if(!("touches"in K&&K.touches.length>0)){if(E){(M||L)&&V&&O&&v?.(V);const{inProgress:Y,...G}=W,J={...G,toPosition:W.toHandle?W.toPosition:null};y?.(K,J),i&&b?.(K,J)}p(),cancelAnimationFrame(B),P=!1,O=!1,V=null,L=null,$.removeEventListener("mousemove",F),$.removeEventListener("mouseup",U),$.removeEventListener("touchmove",F),$.removeEventListener("touchend",U)}}$.addEventListener("mousemove",F),$.addEventListener("mouseup",U),$.addEventListener("touchmove",F),$.addEventListener("touchend",U)}function mi(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:s,lib:a,flowId:l,isValidConnection:c=pi,nodeLookup:u}){const d=i==="target",f=t?s.querySelector(`.${a}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:g}=ge(e),v=s.elementFromPoint(p,g),y=v?.classList.contains(`${a}-flow__handle`)?v:f,m={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const b=gi(void 0,y),h=y.getAttribute("data-nodeid"),x=y.getAttribute("data-handleid"),S=y.classList.contains("connectable"),_=y.classList.contains("connectableend");if(!h||!b)return m;const C={source:d?h:o,sourceHandle:d?x:r,target:d?o:h,targetHandle:d?r:x};m.connection=C;const $=S&&_&&(n===Je.Strict?d&&b==="source"||!d&&b==="target":h!==o||x!==r);m.isValid=$&&c(C),m.toHandle=hi(h,b,x,u,n,!0)}return m}const zn={onPointerDown:Sd,isValid:mi};function Nd({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=ce(e);function i({translateExtent:a,width:l,height:c,zoomStep:u=1,pannable:d=!0,zoomable:f=!0,inversePan:p=!1}){const g=h=>{if(h.sourceEvent.type!=="wheel"||!t)return;const x=n(),S=h.sourceEvent.ctrlKey&&wt()?10:1,_=-h.sourceEvent.deltaY*(h.sourceEvent.deltaMode===1?.05:h.sourceEvent.deltaMode?1:.002)*u,C=x[2]*Math.pow(2,_*S);t.scaleTo(C)};let v=[0,0];const y=h=>{(h.sourceEvent.type==="mousedown"||h.sourceEvent.type==="touchstart")&&(v=[h.sourceEvent.clientX??h.sourceEvent.touches[0].clientX,h.sourceEvent.clientY??h.sourceEvent.touches[0].clientY])},m=h=>{const x=n();if(h.sourceEvent.type!=="mousemove"&&h.sourceEvent.type!=="touchmove"||!t)return;const S=[h.sourceEvent.clientX??h.sourceEvent.touches[0].clientX,h.sourceEvent.clientY??h.sourceEvent.touches[0].clientY],_=[S[0]-v[0],S[1]-v[1]];v=S;const C=o()*Math.max(x[2],Math.log(x[2]))*(p?-1:1),k={x:x[0]-_[0]*C,y:x[1]-_[1]*C},$=[[0,0],[l,c]];t.setViewportConstrained({x:k.x,y:k.y,zoom:x[2]},$,a)},b=jr().on("start",y).on("zoom",d?m:null).on("zoom.wheel",f?g:null);r.call(b,{})}function s(){r.on("zoom",null)}return{update:i,destroy:s,pointer:de}}const rn=e=>({x:e.x,y:e.y,zoom:e.k}),yn=({x:e,y:t,zoom:n})=>tn.translate(e,t).scale(n),We=(e,t)=>e.target.closest(`.${t}`),yi=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Cd=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,xn=(e,t=0,n=Cd,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},xi=e=>{const t=e.ctrlKey&&wt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Md({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(We(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const d=n.property("__zoom").k||1;if(u.ctrlKey&&s){const y=de(u),m=xi(u),b=d*Math.pow(2,m);o.scaleTo(n,b,y,u);return}const f=u.deltaMode===1?20:1;let p=r===Oe.Vertical?0:u.deltaX*f,g=r===Oe.Horizontal?0:u.deltaY*f;!wt()&&u.shiftKey&&r!==Oe.Vertical&&(p=u.deltaY*f,g=0),o.translateBy(n,-(p/d)*i,-(g/d)*i,{internal:!0});const v=rn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(u,v),e.panScrollTimeout=setTimeout(()=>{c?.(u,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a?.(u,v))}}function Id({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const i=o.type==="wheel",s=!t&&i&&!o.ctrlKey,a=We(o,e);if(o.ctrlKey&&i&&a&&o.preventDefault(),s||a)return null;o.preventDefault(),n.call(this,o,r)}}function kd({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=rn(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}function Ad({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&yi(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,rn(i.transform))}}function $d({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return s=>{if(!s.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&yi(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const a=rn(s.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(s.sourceEvent,a)},n?150:0)}}}function Pd({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:u}){return d=>{const f=e||t,p=n&&d.ctrlKey,g=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(We(d,`${c}-flow__node`)||We(d,`${c}-flow__edge`)))return!0;if(!o&&!f&&!r&&!i&&!n||s||u&&!g||We(d,a)&&g||We(d,l)&&(!g||r&&g&&!e)||!n&&d.ctrlKey&&g)return!1;if(!n&&d.type==="touchstart"&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!r&&!p&&g||!o&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(o)&&!o.includes(d.button)&&d.type==="mousedown")return!1;const v=Array.isArray(o)&&o.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||g)&&v}}function Dd({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=jr().scaleExtent([t,n]).translateExtent(o),f=ce(e).call(d);b({x:r.x,y:r.y,zoom:et(r.zoom,t,n)},[[0,0],[u.width,u.height]],o);const p=f.on("wheel.zoom"),g=f.on("dblclick.zoom");d.wheelDelta(xi);async function v(M,z){return f?new Promise(R=>{d?.interpolate(z?.interpolate==="linear"?ut:Ht).transform(xn(f,z?.duration,z?.ease,()=>R(!0)),M)}):!1}function y({noWheelClassName:M,noPanClassName:z,onPaneContextMenu:R,userSelectionActive:w,panOnScroll:N,panOnDrag:E,panOnScrollMode:I,panOnScrollSpeed:T,preventScrolling:P,zoomOnPinch:V,zoomOnScroll:O,zoomOnDoubleClick:L,zoomActivationKeyPressed:j,lib:X,onTransformChange:q,connectionInProgress:Q,paneClickDistance:W,selectionOnDrag:H}){w&&!c.isZoomingOrPanning&&m();const F=N&&!j&&!w;d.clickDistance(H?1/0:!he(W)||W<0?0:W);const U=F?Md({zoomPanValues:c,noWheelClassName:M,d3Selection:f,d3Zoom:d,panOnScrollMode:I,panOnScrollSpeed:T,zoomOnPinch:V,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):Id({noWheelClassName:M,preventScrolling:P,d3ZoomHandler:p});f.on("wheel.zoom",U,{passive:!1});const K=kd({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:s});d.on("start",K);const Y=Ad({zoomPanValues:c,panOnDrag:E,onPaneContextMenu:!!R,onPanZoom:i,onTransformChange:q});d.on("zoom",Y);const G=$d({zoomPanValues:c,panOnDrag:E,panOnScroll:N,onPaneContextMenu:R,onPanZoomEnd:a,onDraggingChange:l});d.on("end",G);const J=Pd({zoomActivationKeyPressed:j,panOnDrag:E,zoomOnScroll:O,panOnScroll:N,zoomOnDoubleClick:L,zoomOnPinch:V,userSelectionActive:w,noPanClassName:z,noWheelClassName:M,lib:X,connectionInProgress:Q});d.filter(J),L?f.on("dblclick.zoom",g):f.on("dblclick.zoom",null)}function m(){d.on("zoom",null)}async function b(M,z,R){const w=yn(M),N=d?.constrain()(w,z,R);return N&&await v(N),N}async function h(M,z){const R=yn(M);return await v(R,z),R}function x(M){if(f){const z=yn(M),R=f.property("__zoom");(R.k!==M.zoom||R.x!==M.x||R.y!==M.y)&&d?.transform(f,z,null,{sync:!0})}}function S(){const M=f?Xr(f.node()):{x:0,y:0,k:1};return{x:M.x,y:M.y,zoom:M.k}}async function _(M,z){return f?new Promise(R=>{d?.interpolate(z?.interpolate==="linear"?ut:Ht).scaleTo(xn(f,z?.duration,z?.ease,()=>R(!0)),M)}):!1}async function C(M,z){return f?new Promise(R=>{d?.interpolate(z?.interpolate==="linear"?ut:Ht).scaleBy(xn(f,z?.duration,z?.ease,()=>R(!0)),M)}):!1}function k(M){d?.scaleExtent(M)}function $(M){d?.translateExtent(M)}function B(M){const z=!he(M)||M<0?0:M;d?.clickDistance(z)}return{update:y,destroy:m,setViewport:h,setViewportConstrained:b,getViewport:S,scaleTo:_,scaleBy:C,setScaleExtent:k,setTranslateExtent:$,syncViewport:x,setClickDistance:B}}var ot;(function(e){e.Line="line",e.Handle="handle"})(ot||(ot={}));function Td({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){const s=e-t,a=n-o,l=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&r&&(l[0]=l[0]*-1),a&&i&&(l[1]=l[1]*-1),l}function Bo(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function Ae(e,t){return Math.max(0,t-e)}function $e(e,t){return Math.max(0,e-t)}function Pt(e,t,n){return Math.max(0,t-e,e-n)}function Fo(e,t){return e?!t:t}function zd(e,t,n,o,r,i,s,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:g}=n,{minWidth:v,maxWidth:y,minHeight:m,maxHeight:b}=o,{x:h,y:x,width:S,height:_,aspectRatio:C}=e;let k=Math.floor(u?p-e.pointerX:0),$=Math.floor(d?g-e.pointerY:0);const B=S+(l?-k:k),M=_+(c?-$:$),z=-i[0]*S,R=-i[1]*_;let w=Pt(B,v,y),N=Pt(M,m,b);if(s){let T=0,P=0;l&&k<0?T=Ae(h+k+z,s[0][0]):!l&&k>0&&(T=$e(h+B+z,s[1][0])),c&&$<0?P=Ae(x+$+R,s[0][1]):!c&&$>0&&(P=$e(x+M+R,s[1][1])),w=Math.max(w,T),N=Math.max(N,P)}if(a){let T=0,P=0;l&&k>0?T=$e(h+k,a[0][0]):!l&&k<0&&(T=Ae(h+B,a[1][0])),c&&$>0?P=$e(x+$,a[0][1]):!c&&$<0&&(P=Ae(x+M,a[1][1])),w=Math.max(w,T),N=Math.max(N,P)}if(r){if(u){const T=Pt(B/C,m,b)*C;if(w=Math.max(w,T),s){let P=0;!l&&!c||l&&!c&&f?P=$e(x+R+B/C,s[1][1])*C:P=Ae(x+R+(l?k:-k)/C,s[0][1])*C,w=Math.max(w,P)}if(a){let P=0;!l&&!c||l&&!c&&f?P=Ae(x+B/C,a[1][1])*C:P=$e(x+(l?k:-k)/C,a[0][1])*C,w=Math.max(w,P)}}if(d){const T=Pt(M*C,v,y)/C;if(N=Math.max(N,T),s){let P=0;!l&&!c||c&&!l&&f?P=$e(h+M*C+z,s[1][0])/C:P=Ae(h+(c?$:-$)*C+z,s[0][0])/C,N=Math.max(N,P)}if(a){let P=0;!l&&!c||c&&!l&&f?P=Ae(h+M*C,a[1][0])/C:P=$e(h+(c?$:-$)*C,a[0][0])/C,N=Math.max(N,P)}}}$=$+($<0?N:-N),k=k+(k<0?w:-w),r&&(f?B>M*C?$=(Fo(l,c)?-k:k)/C:k=(Fo(l,c)?-$:$)*C:u?($=k/C,c=l):(k=$*C,l=c));const E=l?h+k:h,I=c?x+$:x;return{width:S+(l?-k:k),height:_+(c?-$:$),x:i[0]*k*(l?-1:1)+E,y:i[1]*$*(c?-1:1)+I}}const wi={width:0,height:0,x:0,y:0},Hd={...wi,pointerX:0,pointerY:0,aspectRatio:1};function Rd(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,a=n[0]*i,l=n[1]*s;return[[o-a,r-l],[o+i-a,r+s-l]]}function Ld({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const i=ce(e);let s={controlDirection:Bo("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:u,keepAspectRatio:d,resizeDirection:f,onResizeStart:p,onResize:g,onResizeEnd:v,shouldResize:y}){let m={...wi},b={...Hd};s={boundaries:u,resizeDirection:f,keepAspectRatio:d,controlDirection:Bo(c)};let h,x=null,S=[],_,C,k,$=!1;const B=kr().on("start",M=>{const{nodeLookup:z,transform:R,snapGrid:w,snapToGrid:N,nodeOrigin:E,paneDomNode:I}=n();if(h=z.get(t),!h)return;x=I?.getBoundingClientRect()??null;const{xSnapped:T,ySnapped:P}=dt(M.sourceEvent,{transform:R,snapGrid:w,snapToGrid:N,containerBounds:x});m={width:h.measured.width??0,height:h.measured.height??0,x:h.position.x??0,y:h.position.y??0},b={...m,pointerX:T,pointerY:P,aspectRatio:m.width/m.height},_=void 0,C=je(h.extent)?h.extent:void 0,h.parentId&&(h.extent==="parent"||h.expandParent)&&(_=z.get(h.parentId)),_&&h.extent==="parent"&&(C=[[0,0],[_.measured.width,_.measured.height]]),S=[],k=void 0;for(const[V,O]of z)if(O.parentId===t&&(S.push({id:V,position:{...O.position},extent:O.extent}),O.extent==="parent"||O.expandParent)){const L=Rd(O,h,O.origin??E);k?k=[[Math.min(L[0][0],k[0][0]),Math.min(L[0][1],k[0][1])],[Math.max(L[1][0],k[1][0]),Math.max(L[1][1],k[1][1])]]:k=L}p?.(M,{...m})}).on("drag",M=>{const{transform:z,snapGrid:R,snapToGrid:w,nodeOrigin:N}=n(),E=dt(M.sourceEvent,{transform:z,snapGrid:R,snapToGrid:w,containerBounds:x}),I=[];if(!h)return;const{x:T,y:P,width:V,height:O}=m,L={},j=h.origin??N,{width:X,height:q,x:Q,y:W}=zd(b,s.controlDirection,E,s.boundaries,s.keepAspectRatio,j,C,k),H=X!==V,F=q!==O,U=Q!==T&&H,K=W!==P&&F;if(!U&&!K&&!H&&!F)return;if((U||K||j[0]===1||j[1]===1)&&(L.x=U?Q:m.x,L.y=K?W:m.y,m.x=L.x,m.y=L.y,S.length>0)){const te=Q-T,re=W-P;for(const se of S)se.position={x:se.position.x-te+j[0]*(X-V),y:se.position.y-re+j[1]*(q-O)},I.push(se)}if((H||F)&&(L.width=H&&(!s.resizeDirection||s.resizeDirection==="horizontal")?X:m.width,L.height=F&&(!s.resizeDirection||s.resizeDirection==="vertical")?q:m.height,m.width=L.width,m.height=L.height),_&&h.expandParent){const te=j[0]*(L.width??0);L.x&&L.x<te&&(m.x=te,b.x=b.x-(L.x-te));const re=j[1]*(L.height??0);L.y&&L.y<re&&(m.y=re,b.y=b.y-(L.y-re))}const Y=Td({width:m.width,prevWidth:V,height:m.height,prevHeight:O,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),G={...m,direction:Y};y?.(M,G)!==!1&&($=!0,g?.(M,G),o(L,I))}).on("end",M=>{$&&(v?.(M,{...m}),r?.({...m}),$=!1)});i.call(B)}function l(){i.on(".drag",null)}return{update:a,destroy:l}}var wn={exports:{}},vn={};/**
1
+ import{a as ia,g as sa,R as aa,r as D,j as A}from"./vendor-react-BTgM5bbZ.js";import{r as ca}from"./vendor-i18n-DYlSUfot.js";function ie(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=ie(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var la={value:()=>{}};function Ut(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new zt(n)}function zt(e){this._=e}function ua(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",r=n.indexOf(".");if(r>=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}zt.prototype=Ut.prototype={constructor:zt,on:function(e,t){var n=this._,o=ua(e+"",n),r,i=-1,s=o.length;if(arguments.length<2){for(;++i<s;)if((r=(e=o[i]).type)&&(r=da(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(r=(e=o[i]).type)n[r]=uo(n[r],e.name,t);else if(t==null)for(r in n)n[r]=uo(n[r],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((r=arguments.length-2)>0)for(var n=new Array(r),o=0,r,i;o<r;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],o=0,r=i.length;o<r;++o)i[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)}};function da(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function uo(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=la,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var En="http://www.w3.org/1999/xhtml";const fo={svg:"http://www.w3.org/2000/svg",xhtml:En,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Qt(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),fo.hasOwnProperty(t)?{space:fo[t],local:e}:e}function fa(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===En&&t.documentElement.namespaceURI===En?t.createElement(e):t.createElementNS(n,e)}}function ha(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pr(e){var t=Qt(e);return(t.local?ha:fa)(t)}function ga(){}function Rn(e){return e==null?ga:function(){return this.querySelector(e)}}function pa(e){typeof e!="function"&&(e=Rn(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=new Array(s),l,c,u=0;u<s;++u)(l=i[u])&&(c=e.call(l,l.__data__,u,i))&&("__data__"in l&&(c.__data__=l.__data__),a[u]=c);return new le(o,this._parents)}function ma(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ya(){return[]}function mr(e){return e==null?ya:function(){return this.querySelectorAll(e)}}function xa(e){return function(){return ma(e.apply(this,arguments))}}function wa(e){typeof e=="function"?e=xa(e):e=mr(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var s=t[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&(o.push(e.call(l,l.__data__,c,s)),r.push(l));return new le(o,r)}function yr(e){return function(){return this.matches(e)}}function xr(e){return function(t){return t.matches(e)}}var va=Array.prototype.find;function ba(e){return function(){return va.call(this.children,e)}}function _a(){return this.firstElementChild}function Ea(e){return this.select(e==null?_a:ba(typeof e=="function"?e:xr(e)))}var Sa=Array.prototype.filter;function Na(){return Array.from(this.children)}function Ca(e){return function(){return Sa.call(this.children,e)}}function Ma(e){return this.selectAll(e==null?Na:Ca(typeof e=="function"?e:xr(e)))}function Ia(e){typeof e!="function"&&(e=yr(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],l,c=0;c<s;++c)(l=i[c])&&e.call(l,l.__data__,c,i)&&a.push(l);return new le(o,this._parents)}function wr(e){return new Array(e.length)}function ka(){return new le(this._enter||this._groups.map(wr),this._parents)}function Ot(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ot.prototype={constructor:Ot,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 Aa(e){return function(){return e}}function $a(e,t,n,o,r,i){for(var s=0,a,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new Ot(e,i[s]);for(;s<l;++s)(a=t[s])&&(r[s]=a)}function Pa(e,t,n,o,r,i,s){var a,l,c=new Map,u=t.length,d=i.length,f=new Array(u),p;for(a=0;a<u;++a)(l=t[a])&&(f[a]=p=s.call(l,l.__data__,a,t)+"",c.has(p)?r[a]=l:c.set(p,l));for(a=0;a<d;++a)p=s.call(e,i[a],a,i)+"",(l=c.get(p))?(o[a]=l,l.__data__=i[a],c.delete(p)):n[a]=new Ot(e,i[a]);for(a=0;a<u;++a)(l=t[a])&&c.get(f[a])===l&&(r[a]=l)}function Da(e){return e.__data__}function Ta(e,t){if(!arguments.length)return Array.from(this,Da);var n=t?Pa:$a,o=this._parents,r=this._groups;typeof e!="function"&&(e=Aa(e));for(var i=r.length,s=new Array(i),a=new Array(i),l=new Array(i),c=0;c<i;++c){var u=o[c],d=r[c],f=d.length,p=za(e.call(u,u&&u.__data__,c,o)),g=p.length,v=a[c]=new Array(g),y=s[c]=new Array(g),m=l[c]=new Array(f);n(u,d,v,y,m,p,t);for(var b=0,h=0,x,S;b<g;++b)if(x=v[b]){for(b>=h&&(h=b+1);!(S=y[h])&&++h<g;);x._next=S||null}}return s=new le(s,o),s._enter=a,s._exit=l,s}function za(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Ha(){return new le(this._exit||this._groups.map(wr),this._parents)}function Ra(e,t,n){var o=this.enter(),r=this,i=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?i.remove():n(i),o&&r?o.merge(r).order():r}function La(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,s=Math.min(r,i),a=new Array(r),l=0;l<s;++l)for(var c=n[l],u=o[l],d=c.length,f=a[l]=new Array(d),p,g=0;g<d;++g)(p=c[g]||u[g])&&(f[g]=p);for(;l<r;++l)a[l]=n[l];return new le(a,this._parents)}function Va(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],r=o.length-1,i=o[r],s;--r>=0;)(s=o[r])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function Oa(e){e||(e=Ba);function t(d,f){return d&&f?e(d.__data__,f.__data__):!d-!f}for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var s=n[i],a=s.length,l=r[i]=new Array(a),c,u=0;u<a;++u)(c=s[u])&&(l[u]=c);l.sort(t)}return new le(r,this._parents).order()}function Ba(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Fa(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Xa(){return Array.from(this)}function ja(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length;r<i;++r){var s=o[r];if(s)return s}return null}function Ya(){let e=0;for(const t of this)++e;return e}function Za(){return!this.node()}function Wa(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r=t[n],i=0,s=r.length,a;i<s;++i)(a=r[i])&&e.call(a,a.__data__,i,r);return this}function qa(e){return function(){this.removeAttribute(e)}}function Ga(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ka(e,t){return function(){this.setAttribute(e,t)}}function Ua(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Qa(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ja(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 ec(e,t){var n=Qt(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?Ga:qa:typeof t=="function"?n.local?Ja:Qa:n.local?Ua:Ka)(n,t))}function vr(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function tc(e){return function(){this.style.removeProperty(e)}}function nc(e,t,n){return function(){this.style.setProperty(e,t,n)}}function oc(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function rc(e,t,n){return arguments.length>1?this.each((t==null?tc:typeof t=="function"?oc:nc)(e,t,n??"")):Qe(this.node(),e)}function Qe(e,t){return e.style.getPropertyValue(t)||vr(e).getComputedStyle(e,null).getPropertyValue(t)}function ic(e){return function(){delete this[e]}}function sc(e,t){return function(){this[e]=t}}function ac(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function cc(e,t){return arguments.length>1?this.each((t==null?ic:typeof t=="function"?ac:sc)(e,t)):this.node()[e]}function br(e){return e.trim().split(/^|\s+/)}function Ln(e){return e.classList||new _r(e)}function _r(e){this._node=e,this._names=br(e.getAttribute("class")||"")}_r.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 Er(e,t){for(var n=Ln(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function Sr(e,t){for(var n=Ln(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function lc(e){return function(){Er(this,e)}}function uc(e){return function(){Sr(this,e)}}function dc(e,t){return function(){(t.apply(this,arguments)?Er:Sr)(this,e)}}function fc(e,t){var n=br(e+"");if(arguments.length<2){for(var o=Ln(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?dc:t?lc:uc)(n,t))}function hc(){this.textContent=""}function gc(e){return function(){this.textContent=e}}function pc(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function mc(e){return arguments.length?this.each(e==null?hc:(typeof e=="function"?pc:gc)(e)):this.node().textContent}function yc(){this.innerHTML=""}function xc(e){return function(){this.innerHTML=e}}function wc(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function vc(e){return arguments.length?this.each(e==null?yc:(typeof e=="function"?wc:xc)(e)):this.node().innerHTML}function bc(){this.nextSibling&&this.parentNode.appendChild(this)}function _c(){return this.each(bc)}function Ec(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Sc(){return this.each(Ec)}function Nc(e){var t=typeof e=="function"?e:pr(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Cc(){return null}function Mc(e,t){var n=typeof e=="function"?e:pr(e),o=t==null?Cc:typeof t=="function"?t:Rn(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function Ic(){var e=this.parentNode;e&&e.removeChild(this)}function kc(){return this.each(Ic)}function Ac(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function $c(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Pc(e){return this.select(e?$c:Ac)}function Dc(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Tc(e){return function(t){e.call(this,t,this.__data__)}}function zc(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function Hc(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,i;n<r;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++o]=i;++o?t.length=o:delete this.__on}}}function Rc(e,t,n){return function(){var o=this.__on,r,i=Tc(t);if(o){for(var s=0,a=o.length;s<a;++s)if((r=o[s]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function Lc(e,t,n){var o=zc(e+""),r,i=o.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,u;l<c;++l)for(r=0,u=a[l];r<i;++r)if((s=o[r]).type===u.type&&s.name===u.name)return u.value}return}for(a=t?Rc:Hc,r=0;r<i;++r)this.each(a(o[r],t,n));return this}function Nr(e,t,n){var o=vr(e),r=o.CustomEvent;typeof r=="function"?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function Vc(e,t){return function(){return Nr(this,e,t)}}function Oc(e,t){return function(){return Nr(this,e,t.apply(this,arguments))}}function Bc(e,t){return this.each((typeof t=="function"?Oc:Vc)(e,t))}function*Fc(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length,s;r<i;++r)(s=o[r])&&(yield s)}var Cr=[null];function le(e,t){this._groups=e,this._parents=t}function bt(){return new le([[document.documentElement]],Cr)}function Xc(){return this}le.prototype=bt.prototype={constructor:le,select:pa,selectAll:wa,selectChild:Ea,selectChildren:Ma,filter:Ia,data:Ta,enter:ka,exit:Ha,join:Ra,merge:La,selection:Xc,order:Va,sort:Oa,call:Fa,nodes:Xa,node:ja,size:Ya,empty:Za,each:Wa,attr:ec,style:rc,property:cc,classed:fc,text:mc,html:vc,raise:_c,lower:Sc,append:Nc,insert:Mc,remove:kc,clone:Pc,datum:Dc,on:Lc,dispatch:Bc,[Symbol.iterator]:Fc};function ce(e){return typeof e=="string"?new le([[document.querySelector(e)]],[document.documentElement]):new le([[e]],Cr)}function jc(e){let t;for(;t=e.sourceEvent;)e=t;return e}function de(e,t){if(e=jc(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}const Yc={passive:!1},ft={capture:!0,passive:!1};function fn(e){e.stopImmediatePropagation()}function Ge(e){e.preventDefault(),e.stopImmediatePropagation()}function Mr(e){var t=e.document.documentElement,n=ce(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 Ir(e,t){var n=e.document.documentElement,o=ce(e).on("dragstart.drag",null);t&&(o.on("click.drag",Ge,ft),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Ct=e=>()=>e;function Sn(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:s,y:a,dx:l,dy:c,dispatch:u}){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:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}Sn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Zc(e){return!e.ctrlKey&&!e.button}function Wc(){return this.parentNode}function qc(e,t){return t??{x:e.x,y:e.y}}function Gc(){return navigator.maxTouchPoints||"ontouchstart"in this}function kr(){var e=Zc,t=Wc,n=qc,o=Gc,r={},i=Ut("start","drag","end"),s=0,a,l,c,u,d=0;function f(x){x.on("mousedown.drag",p).filter(o).on("touchstart.drag",y).on("touchmove.drag",m,Yc).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(x,S){if(!(u||!e.call(this,x,S))){var _=h(this,t.call(this,x,S),x,S,"mouse");_&&(ce(x.view).on("mousemove.drag",g,ft).on("mouseup.drag",v,ft),Mr(x.view),fn(x),c=!1,a=x.clientX,l=x.clientY,_("start",x))}}function g(x){if(Ge(x),!c){var S=x.clientX-a,_=x.clientY-l;c=S*S+_*_>d}r.mouse("drag",x)}function v(x){ce(x.view).on("mousemove.drag mouseup.drag",null),Ir(x.view,c),Ge(x),r.mouse("end",x)}function y(x,S){if(e.call(this,x,S)){var _=x.changedTouches,C=t.call(this,x,S),k=_.length,$,B;for($=0;$<k;++$)(B=h(this,C,x,S,_[$].identifier,_[$]))&&(fn(x),B("start",x,_[$]))}}function m(x){var S=x.changedTouches,_=S.length,C,k;for(C=0;C<_;++C)(k=r[S[C].identifier])&&(Ge(x),k("drag",x,S[C]))}function b(x){var S=x.changedTouches,_=S.length,C,k;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),C=0;C<_;++C)(k=r[S[C].identifier])&&(fn(x),k("end",x,S[C]))}function h(x,S,_,C,k,$){var B=i.copy(),M=de($||_,S),z,R,w;if((w=n.call(x,new Sn("beforestart",{sourceEvent:_,target:f,identifier:k,active:s,x:M[0],y:M[1],dx:0,dy:0,dispatch:B}),C))!=null)return z=w.x-M[0]||0,R=w.y-M[1]||0,function N(E,I,T){var P=M,V;switch(E){case"start":r[k]=N,V=s++;break;case"end":delete r[k],--s;case"drag":M=de(T||I,S),V=s;break}B.call(E,x,new Sn(E,{sourceEvent:I,subject:w,target:f,identifier:k,active:V,x:M[0]+z,y:M[1]+R,dx:M[0]-P[0],dy:M[1]-P[1],dispatch:B}),C)}}return f.filter=function(x){return arguments.length?(e=typeof x=="function"?x:Ct(!!x),f):e},f.container=function(x){return arguments.length?(t=typeof x=="function"?x:Ct(x),f):t},f.subject=function(x){return arguments.length?(n=typeof x=="function"?x:Ct(x),f):n},f.touchable=function(x){return arguments.length?(o=typeof x=="function"?x:Ct(!!x),f):o},f.on=function(){var x=i.on.apply(i,arguments);return x===i?f:x},f.clickDistance=function(x){return arguments.length?(d=(x=+x)*x,f):Math.sqrt(d)},f}function Vn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Ar(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function _t(){}var ht=.7,Bt=1/ht,Ke="\\s*([+-]?\\d+)\\s*",gt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ve="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kc=/^#([0-9a-f]{3,8})$/,Uc=new RegExp(`^rgb\\(${Ke},${Ke},${Ke}\\)$`),Qc=new RegExp(`^rgb\\(${ve},${ve},${ve}\\)$`),Jc=new RegExp(`^rgba\\(${Ke},${Ke},${Ke},${gt}\\)$`),el=new RegExp(`^rgba\\(${ve},${ve},${ve},${gt}\\)$`),tl=new RegExp(`^hsl\\(${gt},${ve},${ve}\\)$`),nl=new RegExp(`^hsla\\(${gt},${ve},${ve},${gt}\\)$`),ho={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};Vn(_t,Be,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:go,formatHex:go,formatHex8:ol,formatHsl:rl,formatRgb:po,toString:po});function go(){return this.rgb().formatHex()}function ol(){return this.rgb().formatHex8()}function rl(){return $r(this).formatHsl()}function po(){return this.rgb().formatRgb()}function Be(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Kc.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?mo(t):n===3?new ae(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Mt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Mt(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=Uc.exec(e))?new ae(t[1],t[2],t[3],1):(t=Qc.exec(e))?new ae(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jc.exec(e))?Mt(t[1],t[2],t[3],t[4]):(t=el.exec(e))?Mt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=tl.exec(e))?wo(t[1],t[2]/100,t[3]/100,1):(t=nl.exec(e))?wo(t[1],t[2]/100,t[3]/100,t[4]):ho.hasOwnProperty(e)?mo(ho[e]):e==="transparent"?new ae(NaN,NaN,NaN,0):null}function mo(e){return new ae(e>>16&255,e>>8&255,e&255,1)}function Mt(e,t,n,o){return o<=0&&(e=t=n=NaN),new ae(e,t,n,o)}function il(e){return e instanceof _t||(e=Be(e)),e?(e=e.rgb(),new ae(e.r,e.g,e.b,e.opacity)):new ae}function Nn(e,t,n,o){return arguments.length===1?il(e):new ae(e,t,n,o??1)}function ae(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}Vn(ae,Nn,Ar(_t,{brighter(e){return e=e==null?Bt:Math.pow(Bt,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ht:Math.pow(ht,e),new ae(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ae(Ve(this.r),Ve(this.g),Ve(this.b),Ft(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:yo,formatHex:yo,formatHex8:sl,formatRgb:xo,toString:xo}));function yo(){return`#${Le(this.r)}${Le(this.g)}${Le(this.b)}`}function sl(){return`#${Le(this.r)}${Le(this.g)}${Le(this.b)}${Le((isNaN(this.opacity)?1:this.opacity)*255)}`}function xo(){const e=Ft(this.opacity);return`${e===1?"rgb(":"rgba("}${Ve(this.r)}, ${Ve(this.g)}, ${Ve(this.b)}${e===1?")":`, ${e})`}`}function Ft(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ve(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Le(e){return e=Ve(e),(e<16?"0":"")+e.toString(16)}function wo(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fe(e,t,n,o)}function $r(e){if(e instanceof fe)return new fe(e.h,e.s,e.l,e.opacity);if(e instanceof _t||(e=Be(e)),!e)return new fe;if(e instanceof fe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),s=NaN,a=i-r,l=(i+r)/2;return a?(t===i?s=(n-o)/a+(n<o)*6:n===i?s=(o-t)/a+2:s=(t-n)/a+4,a/=l<.5?i+r:2-i-r,s*=60):a=l>0&&l<1?0:s,new fe(s,a,l,e.opacity)}function al(e,t,n,o){return arguments.length===1?$r(e):new fe(e,t,n,o??1)}function fe(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}Vn(fe,al,Ar(_t,{brighter(e){return e=e==null?Bt:Math.pow(Bt,e),new fe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ht:Math.pow(ht,e),new fe(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,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new ae(hn(e>=240?e-240:e+120,r,o),hn(e,r,o),hn(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new fe(vo(this.h),It(this.s),It(this.l),Ft(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=Ft(this.opacity);return`${e===1?"hsl(":"hsla("}${vo(this.h)}, ${It(this.s)*100}%, ${It(this.l)*100}%${e===1?")":`, ${e})`}`}}));function vo(e){return e=(e||0)%360,e<0?e+360:e}function It(e){return Math.max(0,Math.min(1,e||0))}function hn(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 On=e=>()=>e;function cl(e,t){return function(n){return e+n*t}}function ll(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function ul(e){return(e=+e)==1?Pr:function(t,n){return n-t?ll(t,n,e):On(isNaN(t)?n:t)}}function Pr(e,t){var n=t-e;return n?cl(e,n):On(isNaN(e)?t:e)}const Xt=(function e(t){var n=ul(t);function o(r,i){var s=n((r=Nn(r)).r,(i=Nn(i)).r),a=n(r.g,i.g),l=n(r.b,i.b),c=Pr(r.opacity,i.opacity);return function(u){return r.r=s(u),r.g=a(u),r.b=l(u),r.opacity=c(u),r+""}}return o.gamma=e,o})(1);function dl(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,o=t.slice(),r;return function(i){for(r=0;r<n;++r)o[r]=e[r]*(1-i)+t[r]*i;return o}}function fl(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function hl(e,t){var n=t?t.length:0,o=e?Math.min(n,e.length):0,r=new Array(o),i=new Array(n),s;for(s=0;s<o;++s)r[s]=Ue(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(a){for(s=0;s<o;++s)i[s]=r[s](a);return i}}function gl(e,t){var n=new Date;return e=+e,t=+t,function(o){return n.setTime(e*(1-o)+t*o),n}}function we(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function pl(e,t){var n={},o={},r;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(r in t)r in e?n[r]=Ue(e[r],t[r]):o[r]=t[r];return function(i){for(r in n)o[r]=n[r](i);return o}}var Cn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,gn=new RegExp(Cn.source,"g");function ml(e){return function(){return e}}function yl(e){return function(t){return e(t)+""}}function Dr(e,t){var n=Cn.lastIndex=gn.lastIndex=0,o,r,i,s=-1,a=[],l=[];for(e=e+"",t=t+"";(o=Cn.exec(e))&&(r=gn.exec(t));)(i=r.index)>n&&(i=t.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(o=o[0])===(r=r[0])?a[s]?a[s]+=r:a[++s]=r:(a[++s]=null,l.push({i:s,x:we(o,r)})),n=gn.lastIndex;return n<t.length&&(i=t.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?l[0]?yl(l[0].x):ml(t):(t=l.length,function(c){for(var u=0,d;u<t;++u)a[(d=l[u]).i]=d.x(c);return a.join("")})}function Ue(e,t){var n=typeof t,o;return t==null||n==="boolean"?On(t):(n==="number"?we:n==="string"?(o=Be(t))?(t=o,Xt):Dr:t instanceof Be?Xt:t instanceof Date?gl:fl(t)?dl:Array.isArray(t)?hl:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?pl:we)(e,t)}function fg(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var bo=180/Math.PI,Mn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Tr(e,t,n,o,r,i){var s,a,l;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,l/=a),e*o<t*n&&(e=-e,t=-t,l=-l,s=-s),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*bo,skewX:Math.atan(l)*bo,scaleX:s,scaleY:a}}var kt;function xl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Mn:Tr(t.a,t.b,t.c,t.d,t.e,t.f)}function wl(e){return e==null||(kt||(kt=document.createElementNS("http://www.w3.org/2000/svg","g")),kt.setAttribute("transform",e),!(e=kt.transform.baseVal.consolidate()))?Mn:(e=e.matrix,Tr(e.a,e.b,e.c,e.d,e.e,e.f))}function zr(e,t,n,o){function r(c){return c.length?c.pop()+" ":""}function i(c,u,d,f,p,g){if(c!==d||u!==f){var v=p.push("translate(",null,t,null,n);g.push({i:v-4,x:we(c,d)},{i:v-2,x:we(u,f)})}else(d||f)&&p.push("translate("+d+t+f+n)}function s(c,u,d,f){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),f.push({i:d.push(r(d)+"rotate(",null,o)-2,x:we(c,u)})):u&&d.push(r(d)+"rotate("+u+o)}function a(c,u,d,f){c!==u?f.push({i:d.push(r(d)+"skewX(",null,o)-2,x:we(c,u)}):u&&d.push(r(d)+"skewX("+u+o)}function l(c,u,d,f,p,g){if(c!==d||u!==f){var v=p.push(r(p)+"scale(",null,",",null,")");g.push({i:v-4,x:we(c,d)},{i:v-2,x:we(u,f)})}else(d!==1||f!==1)&&p.push(r(p)+"scale("+d+","+f+")")}return function(c,u){var d=[],f=[];return c=e(c),u=e(u),i(c.translateX,c.translateY,u.translateX,u.translateY,d,f),s(c.rotate,u.rotate,d,f),a(c.skewX,u.skewX,d,f),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,d,f),c=u=null,function(p){for(var g=-1,v=f.length,y;++g<v;)d[(y=f[g]).i]=y.x(p);return d.join("")}}}var vl=zr(xl,"px, ","px)","deg)"),bl=zr(wl,", ",")",")"),_l=1e-12;function _o(e){return((e=Math.exp(e))+1/e)/2}function El(e){return((e=Math.exp(e))-1/e)/2}function Sl(e){return((e=Math.exp(2*e))-1)/(e+1)}const Ht=(function e(t,n,o){function r(i,s){var a=i[0],l=i[1],c=i[2],u=s[0],d=s[1],f=s[2],p=u-a,g=d-l,v=p*p+g*g,y,m;if(v<_l)m=Math.log(f/c)/t,y=function(C){return[a+C*p,l+C*g,c*Math.exp(t*C*m)]};else{var b=Math.sqrt(v),h=(f*f-c*c+o*v)/(2*c*n*b),x=(f*f-c*c-o*v)/(2*f*n*b),S=Math.log(Math.sqrt(h*h+1)-h),_=Math.log(Math.sqrt(x*x+1)-x);m=(_-S)/t,y=function(C){var k=C*m,$=_o(S),B=c/(n*b)*($*Sl(t*k+S)-El(S));return[a+B*p,l+B*g,c*$/_o(t*k+S)]}}return y.duration=m*1e3*t/Math.SQRT2,y}return r.rho=function(i){var s=Math.max(.001,+i),a=s*s,l=a*a;return e(s,a,l)},r})(Math.SQRT2,2,4);function hg(e,t){t===void 0&&(t=e,e=Ue);for(var n=0,o=t.length-1,r=t[0],i=new Array(o<0?0:o);n<o;)i[n]=e(r,r=t[++n]);return function(s){var a=Math.max(0,Math.min(o-1,Math.floor(s*=o)));return i[a](s-a)}}var Je=0,lt=0,at=0,Hr=1e3,jt,ut,Yt=0,Fe=0,Jt=0,pt=typeof performance=="object"&&performance.now?performance:Date,Rr=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Bn(){return Fe||(Rr(Nl),Fe=pt.now()+Jt)}function Nl(){Fe=0}function Zt(){this._call=this._time=this._next=null}Zt.prototype=Lr.prototype={constructor:Zt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Bn():+n)+(t==null?0:+t),!this._next&&ut!==this&&(ut?ut._next=this:jt=this,ut=this),this._call=e,this._time=n,In()},stop:function(){this._call&&(this._call=null,this._time=1/0,In())}};function Lr(e,t,n){var o=new Zt;return o.restart(e,t,n),o}function Cl(){Bn(),++Je;for(var e=jt,t;e;)(t=Fe-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Je}function Eo(){Fe=(Yt=pt.now())+Jt,Je=lt=0;try{Cl()}finally{Je=0,Il(),Fe=0}}function Ml(){var e=pt.now(),t=e-Yt;t>Hr&&(Jt-=t,Yt=e)}function Il(){for(var e,t=jt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:jt=n);ut=e,In(o)}function In(e){if(!Je){lt&&(lt=clearTimeout(lt));var t=e-Fe;t>24?(e<1/0&&(lt=setTimeout(Eo,e-pt.now()-Jt)),at&&(at=clearInterval(at))):(at||(Yt=pt.now(),at=setInterval(Ml,Hr)),Je=1,Rr(Eo))}}function So(e,t,n){var o=new Zt;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var kl=Ut("start","end","cancel","interrupt"),Al=[],Vr=0,No=1,kn=2,Rt=3,Co=4,An=5,Lt=6;function en(e,t,n,o,r,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;$l(e,n,{name:t,index:o,group:r,on:kl,tween:Al,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Vr})}function Fn(e,t){var n=me(e,t);if(n.state>Vr)throw new Error("too late; already scheduled");return n}function be(e,t){var n=me(e,t);if(n.state>Rt)throw new Error("too late; already running");return n}function me(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function $l(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=Lr(i,0,n.time);function i(c){n.state=No,n.timer.restart(s,n.delay,n.time),n.delay<=c&&s(c-n.delay)}function s(c){var u,d,f,p;if(n.state!==No)return l();for(u in o)if(p=o[u],p.name===n.name){if(p.state===Rt)return So(s);p.state===Co?(p.state=Lt,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete o[u]):+u<t&&(p.state=Lt,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete o[u])}if(So(function(){n.state===Rt&&(n.state=Co,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=kn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===kn){for(n.state=Rt,r=new Array(f=n.tween.length),u=0,d=-1;u<f;++u)(p=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(r[++d]=p);r.length=d+1}}function a(c){for(var u=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=An,1),d=-1,f=r.length;++d<f;)r[d].call(e,u);n.state===An&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Lt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function Vt(e,t){var n=e.__transition,o,r,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((o=n[s]).name!==t){i=!1;continue}r=o.state>kn&&o.state<An,o.state=Lt,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[s]}i&&delete e.__transition}}function Pl(e){return this.each(function(){Vt(this,e)})}function Dl(e,t){var n,o;return function(){var r=be(this,e),i=r.tween;if(i!==n){o=n=i;for(var s=0,a=o.length;s<a;++s)if(o[s].name===t){o=o.slice(),o.splice(s,1);break}}r.tween=o}}function Tl(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var i=be(this,e),s=i.tween;if(s!==o){r=(o=s).slice();for(var a={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=a;break}l===c&&r.push(a)}i.tween=r}}function zl(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=me(this.node(),n).tween,r=0,i=o.length,s;r<i;++r)if((s=o[r]).name===e)return s.value;return null}return this.each((t==null?Dl:Tl)(n,e,t))}function Xn(e,t,n){var o=e._id;return e.each(function(){var r=be(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return me(r,o).value[t]}}function Or(e,t){var n;return(typeof t=="number"?we:t instanceof Be?Xt:(n=Be(t))?(t=n,Xt):Dr)(e,t)}function Hl(e){return function(){this.removeAttribute(e)}}function Rl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ll(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttribute(e);return s===r?null:s===o?i:i=t(o=s,n)}}function Vl(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===r?null:s===o?i:i=t(o=s,n)}}function Ol(e,t,n){var o,r,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),l=a+"",s===l?null:s===o&&l===r?i:(r=l,i=t(o=s,a)))}}function Bl(e,t,n){var o,r,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),l=a+"",s===l?null:s===o&&l===r?i:(r=l,i=t(o=s,a)))}}function Fl(e,t){var n=Qt(e),o=n==="transform"?bl:Or;return this.attrTween(e,typeof t=="function"?(n.local?Bl:Ol)(n,o,Xn(this,"attr."+e,t)):t==null?(n.local?Rl:Hl)(n):(n.local?Vl:Ll)(n,o,t))}function Xl(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function jl(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Yl(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&jl(e,i)),n}return r._value=t,r}function Zl(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&Xl(e,i)),n}return r._value=t,r}function Wl(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 o=Qt(e);return this.tween(n,(o.local?Yl:Zl)(o,t))}function ql(e,t){return function(){Fn(this,e).delay=+t.apply(this,arguments)}}function Gl(e,t){return t=+t,function(){Fn(this,e).delay=t}}function Kl(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ql:Gl)(t,e)):me(this.node(),t).delay}function Ul(e,t){return function(){be(this,e).duration=+t.apply(this,arguments)}}function Ql(e,t){return t=+t,function(){be(this,e).duration=t}}function Jl(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Ul:Ql)(t,e)):me(this.node(),t).duration}function eu(e,t){if(typeof t!="function")throw new Error;return function(){be(this,e).ease=t}}function tu(e){var t=this._id;return arguments.length?this.each(eu(t,e)):me(this.node(),t).ease}function nu(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;be(this,e).ease=n}}function ou(e){if(typeof e!="function")throw new Error;return this.each(nu(this._id,e))}function ru(e){typeof e!="function"&&(e=yr(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],l,c=0;c<s;++c)(l=i[c])&&e.call(l,l.__data__,c,i)&&a.push(l);return new Ie(o,this._parents,this._name,this._id)}function iu(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,i=Math.min(o,r),s=new Array(o),a=0;a<i;++a)for(var l=t[a],c=n[a],u=l.length,d=s[a]=new Array(u),f,p=0;p<u;++p)(f=l[p]||c[p])&&(d[p]=f);for(;a<o;++a)s[a]=t[a];return new Ie(s,this._parents,this._name,this._id)}function su(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 au(e,t,n){var o,r,i=su(t)?Fn:be;return function(){var s=i(this,e),a=s.on;a!==o&&(r=(o=a).copy()).on(t,n),s.on=r}}function cu(e,t){var n=this._id;return arguments.length<2?me(this.node(),n).on.on(e):this.each(au(n,e,t))}function lu(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function uu(){return this.on("end.remove",lu(this._id))}function du(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Rn(e));for(var o=this._groups,r=o.length,i=new Array(r),s=0;s<r;++s)for(var a=o[s],l=a.length,c=i[s]=new Array(l),u,d,f=0;f<l;++f)(u=a[f])&&(d=e.call(u,u.__data__,f,a))&&("__data__"in u&&(d.__data__=u.__data__),c[f]=d,en(c[f],t,n,f,c,me(u,n)));return new Ie(i,this._parents,t,n)}function fu(e){var t=this._name,n=this._id;typeof e!="function"&&(e=mr(e));for(var o=this._groups,r=o.length,i=[],s=[],a=0;a<r;++a)for(var l=o[a],c=l.length,u,d=0;d<c;++d)if(u=l[d]){for(var f=e.call(u,u.__data__,d,l),p,g=me(u,n),v=0,y=f.length;v<y;++v)(p=f[v])&&en(p,t,n,v,f,g);i.push(f),s.push(u)}return new Ie(i,s,t,n)}var hu=bt.prototype.constructor;function gu(){return new hu(this._groups,this._parents)}function pu(e,t){var n,o,r;return function(){var i=Qe(this,e),s=(this.style.removeProperty(e),Qe(this,e));return i===s?null:i===n&&s===o?r:r=t(n=i,o=s)}}function Br(e){return function(){this.style.removeProperty(e)}}function mu(e,t,n){var o,r=n+"",i;return function(){var s=Qe(this,e);return s===r?null:s===o?i:i=t(o=s,n)}}function yu(e,t,n){var o,r,i;return function(){var s=Qe(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Qe(this,e))),s===l?null:s===o&&l===r?i:(r=l,i=t(o=s,a))}}function xu(e,t){var n,o,r,i="style."+t,s="end."+i,a;return function(){var l=be(this,e),c=l.on,u=l.value[i]==null?a||(a=Br(t)):void 0;(c!==n||r!==u)&&(o=(n=c).copy()).on(s,r=u),l.on=o}}function wu(e,t,n){var o=(e+="")=="transform"?vl:Or;return t==null?this.styleTween(e,pu(e,o)).on("end.style."+e,Br(e)):typeof t=="function"?this.styleTween(e,yu(e,o,Xn(this,"style."+e,t))).each(xu(this._id,e)):this.styleTween(e,mu(e,o,t),n).on("end.style."+e,null)}function vu(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function bu(e,t,n){var o,r;function i(){var s=t.apply(this,arguments);return s!==r&&(o=(r=s)&&vu(e,s,n)),o}return i._value=t,i}function _u(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,bu(e,t,n??""))}function Eu(e){return function(){this.textContent=e}}function Su(e){return function(){var t=e(this);this.textContent=t??""}}function Nu(e){return this.tween("text",typeof e=="function"?Su(Xn(this,"text",e)):Eu(e==null?"":e+""))}function Cu(e){return function(t){this.textContent=e.call(this,t)}}function Mu(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Cu(r)),t}return o._value=e,o}function Iu(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,Mu(e))}function ku(){for(var e=this._name,t=this._id,n=Fr(),o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,l,c=0;c<a;++c)if(l=s[c]){var u=me(l,t);en(l,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Ie(o,this._parents,e,n)}function Au(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(i,s){var a={value:s},l={value:function(){--r===0&&i()}};n.each(function(){var c=be(this,o),u=c.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),r===0&&i()})}var $u=0;function Ie(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Fr(){return++$u}var Ce=bt.prototype;Ie.prototype={constructor:Ie,select:du,selectAll:fu,selectChild:Ce.selectChild,selectChildren:Ce.selectChildren,filter:ru,merge:iu,selection:gu,transition:ku,call:Ce.call,nodes:Ce.nodes,node:Ce.node,size:Ce.size,empty:Ce.empty,each:Ce.each,on:cu,attr:Fl,attrTween:Wl,style:wu,styleTween:_u,text:Nu,textTween:Iu,remove:uu,tween:zl,delay:Kl,duration:Jl,ease:tu,easeVarying:ou,end:Au,[Symbol.iterator]:Ce[Symbol.iterator]};function Pu(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Du={time:null,delay:0,duration:250,ease:Pu};function Tu(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 zu(e){var t,n;e instanceof Ie?(t=e._id,e=e._name):(t=Fr(),(n=Du).time=Bn(),e=e==null?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&en(l,e,t,c,s,n||Tu(l,t));return new Ie(o,this._parents,e,t)}bt.prototype.interrupt=Pl;bt.prototype.transition=zu;const At=e=>()=>e;function Hu(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){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:o,enumerable:!0,configurable:!0},_:{value:r}})}function Me(e,t,n){this.k=e,this.x=t,this.y=n}Me.prototype={constructor:Me,scale:function(e){return e===1?this:new Me(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Me(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 tn=new Me(1,0,0);Xr.prototype=Me.prototype;function Xr(e){for(;!e.__zoom;)if(!(e=e.parentNode))return tn;return e.__zoom}function pn(e){e.stopImmediatePropagation()}function ct(e){e.preventDefault(),e.stopImmediatePropagation()}function Ru(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Lu(){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 Mo(){return this.__zoom||tn}function Vu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ou(){return navigator.maxTouchPoints||"ontouchstart"in this}function Bu(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function jr(){var e=Ru,t=Lu,n=Bu,o=Vu,r=Ou,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Ht,c=Ut("start","zoom","end"),u,d,f,p=500,g=150,v=0,y=10;function m(w){w.property("__zoom",Mo).on("wheel.zoom",k,{passive:!1}).on("mousedown.zoom",$).on("dblclick.zoom",B).filter(r).on("touchstart.zoom",M).on("touchmove.zoom",z).on("touchend.zoom touchcancel.zoom",R).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(w,N,E,I){var T=w.selection?w.selection():w;T.property("__zoom",Mo),w!==T?S(w,N,E,I):T.interrupt().each(function(){_(this,arguments).event(I).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},m.scaleBy=function(w,N,E,I){m.scaleTo(w,function(){var T=this.__zoom.k,P=typeof N=="function"?N.apply(this,arguments):N;return T*P},E,I)},m.scaleTo=function(w,N,E,I){m.transform(w,function(){var T=t.apply(this,arguments),P=this.__zoom,V=E==null?x(T):typeof E=="function"?E.apply(this,arguments):E,O=P.invert(V),L=typeof N=="function"?N.apply(this,arguments):N;return n(h(b(P,L),V,O),T,s)},E,I)},m.translateBy=function(w,N,E,I){m.transform(w,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof E=="function"?E.apply(this,arguments):E),t.apply(this,arguments),s)},null,I)},m.translateTo=function(w,N,E,I,T){m.transform(w,function(){var P=t.apply(this,arguments),V=this.__zoom,O=I==null?x(P):typeof I=="function"?I.apply(this,arguments):I;return n(tn.translate(O[0],O[1]).scale(V.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof E=="function"?-E.apply(this,arguments):-E),P,s)},I,T)};function b(w,N){return N=Math.max(i[0],Math.min(i[1],N)),N===w.k?w:new Me(N,w.x,w.y)}function h(w,N,E){var I=N[0]-E[0]*w.k,T=N[1]-E[1]*w.k;return I===w.x&&T===w.y?w:new Me(w.k,I,T)}function x(w){return[(+w[0][0]+ +w[1][0])/2,(+w[0][1]+ +w[1][1])/2]}function S(w,N,E,I){w.on("start.zoom",function(){_(this,arguments).event(I).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(I).end()}).tween("zoom",function(){var T=this,P=arguments,V=_(T,P).event(I),O=t.apply(T,P),L=E==null?x(O):typeof E=="function"?E.apply(T,P):E,j=Math.max(O[1][0]-O[0][0],O[1][1]-O[0][1]),X=T.__zoom,q=typeof N=="function"?N.apply(T,P):N,Q=l(X.invert(L).concat(j/X.k),q.invert(L).concat(j/q.k));return function(W){if(W===1)W=q;else{var H=Q(W),F=j/H[2];W=new Me(F,L[0]-H[0]*F,L[1]-H[1]*F)}V.zoom(null,W)}})}function _(w,N,E){return!E&&w.__zooming||new C(w,N)}function C(w,N){this.that=w,this.args=N,this.active=0,this.sourceEvent=null,this.extent=t.apply(w,N),this.taps=0}C.prototype={event:function(w){return w&&(this.sourceEvent=w),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(w,N){return this.mouse&&w!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&w!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&w!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(w){var N=ce(this.that).datum();c.call(w,this.that,new Hu(w,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:c}),N)}};function k(w,...N){if(!e.apply(this,arguments))return;var E=_(this,N).event(w),I=this.__zoom,T=Math.max(i[0],Math.min(i[1],I.k*Math.pow(2,o.apply(this,arguments)))),P=de(w);if(E.wheel)(E.mouse[0][0]!==P[0]||E.mouse[0][1]!==P[1])&&(E.mouse[1]=I.invert(E.mouse[0]=P)),clearTimeout(E.wheel);else{if(I.k===T)return;E.mouse=[P,I.invert(P)],Vt(this),E.start()}ct(w),E.wheel=setTimeout(V,g),E.zoom("mouse",n(h(b(I,T),E.mouse[0],E.mouse[1]),E.extent,s));function V(){E.wheel=null,E.end()}}function $(w,...N){if(f||!e.apply(this,arguments))return;var E=w.currentTarget,I=_(this,N,!0).event(w),T=ce(w.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",j,!0),P=de(w,E),V=w.clientX,O=w.clientY;Mr(w.view),pn(w),I.mouse=[P,this.__zoom.invert(P)],Vt(this),I.start();function L(X){if(ct(X),!I.moved){var q=X.clientX-V,Q=X.clientY-O;I.moved=q*q+Q*Q>v}I.event(X).zoom("mouse",n(h(I.that.__zoom,I.mouse[0]=de(X,E),I.mouse[1]),I.extent,s))}function j(X){T.on("mousemove.zoom mouseup.zoom",null),Ir(X.view,I.moved),ct(X),I.event(X).end()}}function B(w,...N){if(e.apply(this,arguments)){var E=this.__zoom,I=de(w.changedTouches?w.changedTouches[0]:w,this),T=E.invert(I),P=E.k*(w.shiftKey?.5:2),V=n(h(b(E,P),I,T),t.apply(this,N),s);ct(w),a>0?ce(this).transition().duration(a).call(S,V,I,w):ce(this).call(m.transform,V,I,w)}}function M(w,...N){if(e.apply(this,arguments)){var E=w.touches,I=E.length,T=_(this,N,w.changedTouches.length===I).event(w),P,V,O,L;for(pn(w),V=0;V<I;++V)O=E[V],L=de(O,this),L=[L,this.__zoom.invert(L),O.identifier],T.touch0?!T.touch1&&T.touch0[2]!==L[2]&&(T.touch1=L,T.taps=0):(T.touch0=L,P=!0,T.taps=1+!!u);u&&(u=clearTimeout(u)),P&&(T.taps<2&&(d=L[0],u=setTimeout(function(){u=null},p)),Vt(this),T.start())}}function z(w,...N){if(this.__zooming){var E=_(this,N).event(w),I=w.changedTouches,T=I.length,P,V,O,L;for(ct(w),P=0;P<T;++P)V=I[P],O=de(V,this),E.touch0&&E.touch0[2]===V.identifier?E.touch0[0]=O:E.touch1&&E.touch1[2]===V.identifier&&(E.touch1[0]=O);if(V=E.that.__zoom,E.touch1){var j=E.touch0[0],X=E.touch0[1],q=E.touch1[0],Q=E.touch1[1],W=(W=q[0]-j[0])*W+(W=q[1]-j[1])*W,H=(H=Q[0]-X[0])*H+(H=Q[1]-X[1])*H;V=b(V,Math.sqrt(W/H)),O=[(j[0]+q[0])/2,(j[1]+q[1])/2],L=[(X[0]+Q[0])/2,(X[1]+Q[1])/2]}else if(E.touch0)O=E.touch0[0],L=E.touch0[1];else return;E.zoom("touch",n(h(V,O,L),E.extent,s))}}function R(w,...N){if(this.__zooming){var E=_(this,N).event(w),I=w.changedTouches,T=I.length,P,V;for(pn(w),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),P=0;P<T;++P)V=I[P],E.touch0&&E.touch0[2]===V.identifier?delete E.touch0:E.touch1&&E.touch1[2]===V.identifier&&delete E.touch1;if(E.touch1&&!E.touch0&&(E.touch0=E.touch1,delete E.touch1),E.touch0)E.touch0[1]=this.__zoom.invert(E.touch0[0]);else if(E.end(),E.taps===2&&(V=de(V,this),Math.hypot(d[0]-V[0],d[1]-V[1])<y)){var O=ce(this).on("dblclick.zoom");O&&O.apply(this,arguments)}}}return m.wheelDelta=function(w){return arguments.length?(o=typeof w=="function"?w:At(+w),m):o},m.filter=function(w){return arguments.length?(e=typeof w=="function"?w:At(!!w),m):e},m.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:At(!!w),m):r},m.extent=function(w){return arguments.length?(t=typeof w=="function"?w:At([[+w[0][0],+w[0][1]],[+w[1][0],+w[1][1]]]),m):t},m.scaleExtent=function(w){return arguments.length?(i[0]=+w[0],i[1]=+w[1],m):[i[0],i[1]]},m.translateExtent=function(w){return arguments.length?(s[0][0]=+w[0][0],s[1][0]=+w[1][0],s[0][1]=+w[0][1],s[1][1]=+w[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(w){return arguments.length?(n=w,m):n},m.duration=function(w){return arguments.length?(a=+w,m):a},m.interpolate=function(w){return arguments.length?(l=w,m):l},m.on=function(){var w=c.on.apply(c,arguments);return w===c?m:w},m.clickDistance=function(w){return arguments.length?(v=(w=+w)*w,m):Math.sqrt(v)},m.tapDistance=function(w){return arguments.length?(y=+w,m):y},m}const pe={error001:(e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.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 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:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", 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.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},mt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Yr=["Enter"," ","Escape"],Zr={"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 et;(function(e){e.Strict="strict",e.Loose="loose"})(et||(et={}));var Oe;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Oe||(Oe={}));var yt;(function(e){e.Partial="partial",e.Full="full"})(yt||(yt={}));const Wr={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Pe;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Pe||(Pe={}));var Wt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Wt||(Wt={}));var Z;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Z||(Z={}));const Io={[Z.Left]:Z.Right,[Z.Right]:Z.Left,[Z.Top]:Z.Bottom,[Z.Bottom]:Z.Top};function qr(e){return e===null?null:e?"valid":"invalid"}const Gr=e=>"id"in e&&"source"in e&&"target"in e,Fu=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),jn=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Et=(e,t=[0,0])=>{const{width:n,height:o}=ke(e),r=e.origin??t,i=n*r[0],s=o*r[1];return{x:e.position.x-i,y:e.position.y-s}},Xu=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,r)=>{const i=typeof r=="string";let s=!t.nodeLookup&&!i?r:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(r):jn(r)?r:t.nodeLookup.get(r.id));const a=s?qt(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return nn(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return on(n)},St=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(r=>{(t.filter===void 0||t.filter(r))&&(n=nn(n,qt(r)),o=!0)}),o?on(n):{x:0,y:0,width:0,height:0}},Yn=(e,t,[n,o,r]=[0,0,1],i=!1,s=!1)=>{const a={...it(t,[n,o,r]),width:t.width/r,height:t.height/r},l=[];for(const c of e.values()){const{measured:u,selectable:d=!0,hidden:f=!1}=c;if(s&&!d||f)continue;const p=u.width??c.width??c.initialWidth??null,g=u.height??c.height??c.initialHeight??null,v=xt(a,nt(c)),y=(p??0)*(g??0),m=i&&v>0;(!c.internals.handleBounds||m||v>=y||c.dragging)&&l.push(c)}return l},ju=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function Yu(e,t){const n=new Map,o=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!o||o.has(r.id))&&n.set(r.id,r)}),n}async function Zu({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},s){if(e.size===0)return!0;const a=Yu(e,s),l=St(a),c=Wn(l,t,n,s?.minZoom??r,s?.maxZoom??i,s?.padding??.1);return await o.setViewport(c,{duration:s?.duration,ease:s?.ease,interpolate:s?.interpolate}),!0}function Kr({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){const s=n.get(e),a=s.parentId?n.get(s.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},u=s.origin??o;let d=s.extent||r;if(s.extent==="parent"&&!s.expandParent)if(!a)i?.("005",pe.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(d=[[l,c],[l+p,c+g]])}else a&&je(s.extent)&&(d=[[s.extent[0][0]+l,s.extent[0][1]+c],[s.extent[1][0]+l,s.extent[1][1]+c]]);const f=je(d)?Xe(t,d,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&i?.("015",pe.error015()),{position:{x:f.x-l+(s.measured.width??0)*u[0],y:f.y-c+(s.measured.height??0)*u[1]},positionAbsolute:f}}async function Wu({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map(f=>f.id)),s=[];for(const f of n){if(f.deletable===!1)continue;const p=i.has(f.id),g=!p&&f.parentId&&s.find(v=>v.id===f.parentId);(p||g)&&s.push(f)}const a=new Set(t.map(f=>f.id)),l=o.filter(f=>f.deletable!==!1),u=ju(s,l);for(const f of l)a.has(f.id)&&!u.find(g=>g.id===f.id)&&u.push(f);if(!r)return{edges:u,nodes:s};const d=await r({nodes:s,edges:u});return typeof d=="boolean"?d?{edges:u,nodes:s}:{edges:[],nodes:[]}:d}const tt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Xe=(e={x:0,y:0},t,n)=>({x:tt(e.x,t[0][0],t[1][0]-(n?.width??0)),y:tt(e.y,t[0][1],t[1][1]-(n?.height??0))});function Ur(e,t,n){const{width:o,height:r}=ke(n),{x:i,y:s}=n.internals.positionAbsolute;return Xe(e,[[i,s],[i+o,s+r]],t)}const ko=(e,t,n)=>e<t?tt(Math.abs(e-t),1,t)/t:e>n?-tt(Math.abs(e-n),1,t)/t:0,Zn=(e,t,n=15,o=40)=>{const r=ko(e.x,o,t.width-o)*n,i=ko(e.y,o,t.height-o)*n;return[r,i]},nn=(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)}),$n=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),on=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),nt=(e,t=[0,0])=>{const{x:n,y:o}=jn(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},qt=(e,t=[0,0])=>{const{x:n,y:o}=jn(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},Qr=(e,t)=>on(nn($n(e),$n(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)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},Ao=e=>he(e.width)&&he(e.height)&&he(e.x)&&he(e.y),he=e=>!isNaN(e)&&isFinite(e),Jr=(e,t)=>(n,o)=>{},Nt=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),it=({x:e,y:t},[n,o,r],i=!1,s=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return i?Nt(a,s):a},ot=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Ze(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(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function qu(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Ze(e,n),r=Ze(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Ze(e.top??e.y??0,n),r=Ze(e.bottom??e.y??0,n),i=Ze(e.left??e.x??0,t),s=Ze(e.right??e.x??0,t);return{top:o,right:s,bottom:r,left:i,x:i+s,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Gu(e,t,n,o,r,i){const{x:s,y:a}=ot(e,[t,n,o]),{x:l,y:c}=ot({x:e.x+e.width,y:e.y+e.height},[t,n,o]),u=r-l,d=i-c;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(u),bottom:Math.floor(d)}}const Wn=(e,t,n,o,r,i)=>{const s=qu(i,t,n),a=(t-s.x)/e.width,l=(n-s.y)/e.height,c=Math.min(a,l),u=tt(c,o,r),d=e.x+e.width/2,f=e.y+e.height/2,p=t/2-d*u,g=n/2-f*u,v=Gu(e,p,g,u,t,n),y={left:Math.min(v.left-s.left,0),top:Math.min(v.top-s.top,0),right:Math.min(v.right-s.right,0),bottom:Math.min(v.bottom-s.bottom,0)};return{x:p-y.left+y.right,y:g-y.top+y.bottom,zoom:u}},wt=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function je(e){return e!=null&&e!=="parent"}function ke(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ei(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ti(e,t={width:0,height:0},n,o,r){const i={...e},s=o.get(n);if(s){const a=s.origin||r;i.x+=s.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function $o(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Ku(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Uu(e){return{...Zr,...e||{}}}function dt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:i,y:s}=ge(e),a=it({x:i-(r?.left??0),y:s-(r?.top??0)},o),{x:l,y:c}=n?Nt(a,t):a;return{xSnapped:l,ySnapped:c,...a}}const qn=e=>({width:e.offsetWidth,height:e.offsetHeight}),ni=e=>e?.getRootNode?.()||window?.document,Qu=["INPUT","SELECT","TEXTAREA"];function oi(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Qu.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const ri=e=>"clientX"in e,ge=(e,t)=>{const n=ri(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},Po=(e,t,n,o,r)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:r,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...qn(s)}})};function ii({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:s,targetControlY:a}){const l=e*.125+r*.375+s*.375+n*.125,c=t*.125+i*.375+a*.375+o*.125,u=Math.abs(l-e),d=Math.abs(c-t);return[l,c,u,d]}function $t(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Do({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case Z.Left:return[t-$t(t-o,i),n];case Z.Right:return[t+$t(o-t,i),n];case Z.Top:return[t,n-$t(n-r,i)];case Z.Bottom:return[t,n+$t(r-n,i)]}}function si({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:o,targetY:r,targetPosition:i=Z.Top,curvature:s=.25}){const[a,l]=Do({pos:n,x1:e,y1:t,x2:o,y2:r,c:s}),[c,u]=Do({pos:i,x1:o,y1:r,x2:e,y2:t,c:s}),[d,f,p,g]=ii({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${o},${r}`,d,f,p,g]}function ai({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,s=Math.abs(o-t)/2,a=o<t?o+s:o-s;return[i,a,r,s]}function Ju({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if(i==="manual")return o;const s=r&&n?o+1e3:o,a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return s+a}function ed({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const i=nn(qt(e),qt(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return xt(s,on(i))>0}const td=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,nd=(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)),od=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",pe.error006()),t;const o=n.getEdgeId||td;let r;return Gr(e)?r={...e}:r={...e,id:o(e)},nd(r,t)?t:(r.sourceHandle===null&&delete r.sourceHandle,r.targetHandle===null&&delete r.targetHandle,t.concat(r))};function ci({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,s,a]=ai({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,s,a]}const To={[Z.Left]:{x:-1,y:0},[Z.Right]:{x:1,y:0},[Z.Top]:{x:0,y:-1},[Z.Bottom]:{x:0,y:1}},rd=({source:e,sourcePosition:t=Z.Bottom,target:n})=>t===Z.Left||t===Z.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},zo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function id({source:e,sourcePosition:t=Z.Bottom,target:n,targetPosition:o=Z.Top,center:r,offset:i,stepPosition:s}){const a=To[t],l=To[o],c={x:e.x+a.x*i,y:e.y+a.y*i},u={x:n.x+l.x*i,y:n.y+l.y*i},d=rd({source:c,sourcePosition:t,target:u}),f=d.x!==0?"x":"y",p=d[f];let g=[],v,y;const m={x:0,y:0},b={x:0,y:0},[,,h,x]=ai({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*l[f]===-1){f==="x"?(v=r.x??c.x+(u.x-c.x)*s,y=r.y??(c.y+u.y)/2):(v=r.x??(c.x+u.x)/2,y=r.y??c.y+(u.y-c.y)*s);const k=[{x:v,y:c.y},{x:v,y:u.y}],$=[{x:c.x,y},{x:u.x,y}];a[f]===p?g=f==="x"?k:$:g=f==="x"?$:k}else{const k=[{x:c.x,y:u.y}],$=[{x:u.x,y:c.y}];if(f==="x"?g=a.x===p?$:k:g=a.y===p?k:$,t===o){const w=Math.abs(e[f]-n[f]);if(w<=i){const N=Math.min(i-1,i-w);a[f]===p?m[f]=(c[f]>e[f]?-1:1)*N:b[f]=(u[f]>n[f]?-1:1)*N}}if(t!==o){const w=f==="x"?"y":"x",N=a[f]===l[w],E=c[w]>u[w],I=c[w]<u[w];(a[f]===1&&(!N&&E||N&&I)||a[f]!==1&&(!N&&I||N&&E))&&(g=f==="x"?k:$)}const B={x:c.x+m.x,y:c.y+m.y},M={x:u.x+b.x,y:u.y+b.y},z=Math.max(Math.abs(B.x-g[0].x),Math.abs(M.x-g[0].x)),R=Math.max(Math.abs(B.y-g[0].y),Math.abs(M.y-g[0].y));z>=R?(v=(B.x+M.x)/2,y=g[0].y):(v=g[0].x,y=(B.y+M.y)/2)}const S={x:c.x+m.x,y:c.y+m.y},_={x:u.x+b.x,y:u.y+b.y};return[[e,...S.x!==g[0].x||S.y!==g[0].y?[S]:[],...g,..._.x!==g[g.length-1].x||_.y!==g[g.length-1].y?[_]:[],n],v,y,h,x]}function sd(e,t,n,o){const r=Math.min(zo(e,t)/2,zo(t,n)/2,o),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const c=e.x<n.x?-1:1,u=e.y<n.y?1:-1;return`L ${i+r*c},${s}Q ${i},${s} ${i},${s+r*u}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${s+r*l}Q ${i},${s} ${i+r*a},${s}`}function Pn({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:o,targetY:r,targetPosition:i=Z.Top,borderRadius:s=5,centerX:a,centerY:l,offset:c=20,stepPosition:u=.5}){const[d,f,p,g,v]=id({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:a,y:l},offset:c,stepPosition:u});let y=`M${d[0].x} ${d[0].y}`;for(let m=1;m<d.length-1;m++)y+=sd(d[m-1],d[m],d[m+1],s);return y+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[y,f,p,g,v]}function Ho(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function ad(e){const{sourceNode:t,targetNode:n}=e;if(!Ho(t)||!Ho(n))return null;const o=t.internals.handleBounds||Ro(t.handles),r=n.internals.handleBounds||Ro(n.handles),i=Lo(o?.source??[],e.sourceHandle),s=Lo(e.connectionMode===et.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!i||!s)return e.onError?.("008",pe.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=i?.position||Z.Bottom,l=s?.position||Z.Top,c=Ye(t,i,a),u=Ye(n,s,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:a,targetPosition:l}}function Ro(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function Ye(e,t,n=Z.Left,o=!1){const r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:s,height:a}=t??ke(e);if(o)return{x:r+s/2,y:i+a/2};switch(t?.position??n){case Z.Top:return{x:r+s/2,y:i};case Z.Right:return{x:r+s,y:i+a/2};case Z.Bottom:return{x:r+s/2,y:i+a};case Z.Left:return{x:r,y:i+a/2}}}function Lo(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Dn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function cd(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce((s,a)=>([a.markerStart||o,a.markerEnd||r].forEach(l=>{if(l&&typeof l=="object"){const c=Dn(l,t);i.has(c)||(s.push({id:c,color:l.color||n,...l}),i.add(c))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const li=1e3,ld=10,Gn={nodeOrigin:[0,0],nodeExtent:mt,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},ud={...Gn,checkEquality:!0};function Kn(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function dd(e,t,n){const o=Kn(Gn,n);for(const r of e.values())if(r.parentId)Qn(r,e,t,o);else{const i=Et(r,o.nodeOrigin),s=je(r.extent)?r.extent:o.nodeExtent,a=Xe(i,s,ke(r));r.internals.positionAbsolute=a}}function fd(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],o=[];for(const r of e.handles){const i={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(i):r.type==="target"&&o.push(i)}return{source:n,target:o}}function Un(e){return e==="manual"}function Tn(e,t,n,o={}){const r=Kn(ud,o),i={i:0},s=new Map(t),a=r?.elevateNodesOnSelect&&!Un(r.zIndexMode)?li:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const u of e){let d=s.get(u.id);if(r.checkEquality&&u===d?.internals.userNode)t.set(u.id,d);else{const f=Et(u,r.nodeOrigin),p=je(u.extent)?u.extent:r.nodeExtent,g=Xe(f,p,ke(u));d={...r.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:g,handleBounds:fd(u,d),z:ui(u,a,r.zIndexMode),userNode:u}},t.set(u.id,d)}(d.measured===void 0||d.measured.width===void 0||d.measured.height===void 0)&&!d.hidden&&(l=!1),u.parentId&&Qn(d,t,n,o,i),c||=u.selected??!1}return{nodesInitialized:l,hasSelectedNodes:c}}function hd(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 Qn(e,t,n,o,r){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a,zIndexMode:l}=Kn(Gn,o),c=e.parentId,u=t.get(c);if(!u){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}hd(e,n),r&&!u.parentId&&u.internals.rootParentIndex===void 0&&l==="auto"&&(u.internals.rootParentIndex=++r.i,u.internals.z=u.internals.z+r.i*ld),r&&u.internals.rootParentIndex!==void 0&&(r.i=u.internals.rootParentIndex);const d=i&&!Un(l)?li:0,{x:f,y:p,z:g}=gd(e,u,s,a,d,l),{positionAbsolute:v}=e.internals,y=f!==v.x||p!==v.y;(y||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:f,y:p}:v,z:g}})}function ui(e,t,n){const o=he(e.zIndex)?e.zIndex:0;return Un(n)?o:o+(e.selected?t:0)}function gd(e,t,n,o,r,i){const{x:s,y:a}=t.internals.positionAbsolute,l=ke(e),c=Et(e,n),u=je(e.extent)?Xe(c,e.extent,l):c;let d=Xe({x:s+u.x,y:a+u.y},o,l);e.extent==="parent"&&(d=Ur(d,l,t));const f=ui(e,r,i),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Jn(e,t,n,o=[0,0]){const r=[],i=new Map;for(const s of e){const a=t.get(s.parentId);if(!a)continue;const l=i.get(s.parentId)?.expandedRect??nt(a),c=Qr(l,s.rect);i.set(s.parentId,{expandedRect:c,parent:a})}return i.size>0&&i.forEach(({expandedRect:s,parent:a},l)=>{const c=a.internals.positionAbsolute,u=ke(a),d=a.origin??o,f=s.x<c.x?Math.round(Math.abs(c.x-s.x)):0,p=s.y<c.y?Math.round(Math.abs(c.y-s.y)):0,g=Math.max(u.width,Math.round(s.width)),v=Math.max(u.height,Math.round(s.height)),y=(g-u.width)*d[0],m=(v-u.height)*d[1];(f>0||p>0||y||m)&&(r.push({id:l,type:"position",position:{x:a.position.x-f+y,y:a.position.y-p+m}}),n.get(l)?.forEach(b=>{e.some(h=>h.id===b.id)||r.push({id:b.id,type:"position",position:{x:b.position.x+f,y:b.position.y+p}})})),(u.width<s.width||u.height<s.height||f||p)&&r.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:g+(f?d[0]*f-y:0),height:v+(p?d[1]*p-m:0)}})}),r}function pd(e,t,n,o,r,i,s){const a=o?.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],u=window.getComputedStyle(a),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(const p of e.values()){const g=t.get(p.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),l=!0;continue}const v=qn(p.nodeElement),y=g.measured.width!==v.width||g.measured.height!==v.height;if(!!(v.width&&v.height&&(y||!g.internals.handleBounds||p.force))){const b=p.nodeElement.getBoundingClientRect(),h=je(g.extent)?g.extent:i;let{positionAbsolute:x}=g.internals;g.parentId&&g.extent==="parent"?x=Ur(x,v,t.get(g.parentId)):h&&(x=Xe(x,h,v));const S={...g,measured:v,internals:{...g.internals,positionAbsolute:x,handleBounds:{source:Po("source",p.nodeElement,b,d,g.id),target:Po("target",p.nodeElement,b,d,g.id)}}};t.set(g.id,S),g.parentId&&Qn(S,t,n,{nodeOrigin:r,zIndexMode:s}),l=!0,y&&(c.push({id:g.id,type:"dimensions",dimensions:v}),g.expandParent&&g.parentId&&f.push({id:g.id,parentId:g.parentId,rect:nt(S,r)}))}}if(f.length>0){const p=Jn(f,t,n,r);c.push(...p)}return{changes:c,updatedInternals:l}}async function md({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2])}function Vo(e,t,n,o,r,i){let s=r;const a=o.get(s)||new Map;o.set(s,a.set(n,t)),s=`${r}-${e}`;const l=o.get(s)||new Map;if(o.set(s,l.set(n,t)),i){s=`${r}-${e}-${i}`;const c=o.get(s)||new Map;o.set(s,c.set(n,t))}}function di(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:i,sourceHandle:s=null,targetHandle:a=null}=o,l={edgeId:o.id,source:r,target:i,sourceHandle:s,targetHandle:a},c=`${r}-${s}--${i}-${a}`,u=`${i}-${a}--${r}-${s}`;Vo("source",l,u,e,r,s),Vo("target",l,c,e,i,a),t.set(o.id,o)}}function fi(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:fi(n,t):!1}function Oo(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)return!1;o=o?.parentElement}while(o);return!1}function yd(e,t,n,o){const r=new Map;for(const[i,s]of e)if((s.selected||s.id===o)&&(!s.parentId||!fi(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const a=e.get(i);a&&r.set(i,{id:i,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 r}function mn({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[s,a]of t){const l=n.get(s)?.internals.userNode;l&&r.push({...l,position:a.position,dragging:o})}if(!e)return[r[0],r];const i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function xd({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const i={x:n-r.distance.x,y:o-r.distance.y},s=Nt(i,t);return{x:s.x-i.x,y:s.y-i.y}}function wd({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},s=0,a=new Map,l=!1,c={x:0,y:0},u=null,d=!1,f=null,p=!1,g=!1,v=null;function y({noDragClassName:b,handleSelector:h,domNode:x,isSelectable:S,nodeId:_,nodeClickDistance:C=0}){f=ce(x);function k({x:z,y:R}){const{nodeLookup:w,nodeExtent:N,snapGrid:E,snapToGrid:I,nodeOrigin:T,onNodeDrag:P,onSelectionDrag:V,onError:O,updateNodePositions:L}=t();i={x:z,y:R};let j=!1;const X=a.size>1,q=X&&N?$n(St(a)):null,Q=X&&I?xd({dragItems:a,snapGrid:E,x:z,y:R}):null;for(const[W,H]of a){if(!w.has(W))continue;let F={x:z-H.distance.x,y:R-H.distance.y};I&&(F=Q?{x:Math.round(F.x+Q.x),y:Math.round(F.y+Q.y)}:Nt(F,E));let U=null;if(X&&N&&!H.extent&&q){const{positionAbsolute:G}=H.internals,J=G.x-q.x+N[0][0],te=G.x+H.measured.width-q.x2+N[1][0],re=G.y-q.y+N[0][1],se=G.y+H.measured.height-q.y2+N[1][1];U=[[J,re],[te,se]]}const{position:K,positionAbsolute:Y}=Kr({nodeId:W,nextPosition:F,nodeLookup:w,nodeExtent:U||N,nodeOrigin:T,onError:O});j=j||H.position.x!==K.x||H.position.y!==K.y,H.position=K,H.internals.positionAbsolute=Y}if(g=g||j,!!j&&(L(a,!0),v&&(o||P||!_&&V))){const[W,H]=mn({nodeId:_,dragItems:a,nodeLookup:w});o?.(v,a,W,H),P?.(v,W,H),_||V?.(v,H)}}async function $(){if(!u)return;const{transform:z,panBy:R,autoPanSpeed:w,autoPanOnNodeDrag:N}=t();if(!N){l=!1,cancelAnimationFrame(s);return}const[E,I]=Zn(c,u,w);(E!==0||I!==0)&&(i.x=(i.x??0)-E/z[2],i.y=(i.y??0)-I/z[2],await R({x:E,y:I})&&k(i)),s=requestAnimationFrame($)}function B(z){const{nodeLookup:R,multiSelectionActive:w,nodesDraggable:N,transform:E,snapGrid:I,snapToGrid:T,selectNodesOnDrag:P,onNodeDragStart:V,onSelectionDragStart:O,unselectNodesAndEdges:L}=t();d=!0,(!P||!S)&&!w&&_&&(R.get(_)?.selected||L()),S&&P&&_&&e?.(_);const j=dt(z.sourceEvent,{transform:E,snapGrid:I,snapToGrid:T,containerBounds:u});if(i=j,a=yd(R,N,j,_),a.size>0&&(n||V||!_&&O)){const[X,q]=mn({nodeId:_,dragItems:a,nodeLookup:R});n?.(z.sourceEvent,a,X,q),V?.(z.sourceEvent,X,q),_||O?.(z.sourceEvent,q)}}const M=kr().clickDistance(C).on("start",z=>{const{domNode:R,nodeDragThreshold:w,transform:N,snapGrid:E,snapToGrid:I}=t();u=R?.getBoundingClientRect()||null,p=!1,g=!1,v=z.sourceEvent,w===0&&B(z),i=dt(z.sourceEvent,{transform:N,snapGrid:E,snapToGrid:I,containerBounds:u}),c=ge(z.sourceEvent,u)}).on("drag",z=>{const{autoPanOnNodeDrag:R,transform:w,snapGrid:N,snapToGrid:E,nodeDragThreshold:I,nodeLookup:T}=t(),P=dt(z.sourceEvent,{transform:w,snapGrid:N,snapToGrid:E,containerBounds:u});if(v=z.sourceEvent,(z.sourceEvent.type==="touchmove"&&z.sourceEvent.touches.length>1||_&&!T.has(_))&&(p=!0),!p){if(!l&&R&&d&&(l=!0,$()),!d){const V=ge(z.sourceEvent,u),O=V.x-c.x,L=V.y-c.y;Math.sqrt(O*O+L*L)>I&&B(z)}(i.x!==P.xSnapped||i.y!==P.ySnapped)&&a&&d&&(c=ge(z.sourceEvent,u),k(P))}}).on("end",z=>{if(!d||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,d=!1,cancelAnimationFrame(s),a.size>0){const{nodeLookup:R,updateNodePositions:w,onNodeDragStop:N,onSelectionDragStop:E}=t();if(g&&(w(a,!1),g=!1),r||N||!_&&E){const[I,T]=mn({nodeId:_,dragItems:a,nodeLookup:R,dragging:!1});r?.(z.sourceEvent,a,I,T),N?.(z.sourceEvent,I,T),_||E?.(z.sourceEvent,T)}}}).filter(z=>{const R=z.target;return!z.button&&(!b||!Oo(R,`.${b}`,x))&&(!h||Oo(R,h,x))});f.call(M)}function m(){f?.on(".drag",null)}return{update:y,destroy:m}}function vd(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())xt(r,nt(i))>0&&o.push(i);return o}const bd=250;function _d(e,t,n,o){let r=[],i=1/0;const s=vd(e,n,t+bd);for(const a of s){const l=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of l){if(o.nodeId===c.nodeId&&o.type===c.type&&o.id===c.id)continue;const{x:u,y:d}=Ye(a,c,c.position,!0),f=Math.sqrt(Math.pow(u-e.x,2)+Math.pow(d-e.y,2));f>t||(f<i?(r=[{...c,x:u,y:d}],i=f):f===i&&r.push({...c,x:u,y:d}))}}if(!r.length)return null;if(r.length>1){const a=o.type==="source"?"target":"source";return r.find(l=>l.type===a)??r[0]}return r[0]}function hi(e,t,n,o,r,i=!1){const s=o.get(e);if(!s)return null;const a=r==="strict"?s.internals.handleBounds?.[t]:[...s.internals.handleBounds?.source??[],...s.internals.handleBounds?.target??[]],l=(n?a?.find(c=>c.id===n):a?.[0])??null;return l&&i?{...l,...Ye(s,l,l.position,!0)}:l}function gi(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Ed(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const pi=()=>!0;function Sd(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:g,onConnect:v,onConnectEnd:y,isValidConnection:m=pi,onReconnectEnd:b,updateConnection:h,getTransform:x,getFromHandle:S,autoPanSpeed:_,dragThreshold:C=1,handleDomNode:k}){const $=ni(e.target);let B=0,M;const{x:z,y:R}=ge(e),w=gi(i,k),N=a?.getBoundingClientRect();let E=!1;if(!N||!w)return;const I=hi(r,w,o,l,t);if(!I)return;let T=ge(e,N),P=!1,V=null,O=!1,L=null;function j(){if(!u||!N)return;const[K,Y]=Zn(T,N,_);f({x:K,y:Y}),B=requestAnimationFrame(j)}const X={...I,nodeId:r,type:w,position:I.position},q=l.get(r);let W={inProgress:!0,isValid:null,from:Ye(q,X,Z.Left,!0),fromHandle:X,fromPosition:X.position,fromNode:q,to:T,toHandle:null,toPosition:Io[X.position],toNode:null,pointer:T};function H(){E=!0,h(W),g?.(e,{nodeId:r,handleId:o,handleType:w})}C===0&&H();function F(K){if(!E){const{x:se,y:_e}=ge(K),ye=se-z,xe=_e-R;if(!(ye*ye+xe*xe>C*C))return;H()}if(!S()||!X){U(K);return}const Y=x();T=ge(K,N),M=_d(it(T,Y,!1,[1,1]),n,l,X),P||(j(),P=!0);const G=mi(K,{handle:M,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:s?"target":"source",isValidConnection:m,doc:$,lib:c,flowId:d,nodeLookup:l});L=G.handleDomNode,V=G.connection,O=Ed(!!M,G.isValid);const J=l.get(r),te=J?Ye(J,X,Z.Left,!0):W.from,re={...W,from:te,isValid:O,to:G.toHandle&&O?ot({x:G.toHandle.x,y:G.toHandle.y},Y):T,toHandle:G.toHandle,toPosition:O&&G.toHandle?G.toHandle.position:Io[X.position],toNode:G.toHandle?l.get(G.toHandle.nodeId):null,pointer:T};h(re),W=re}function U(K){if(!("touches"in K&&K.touches.length>0)){if(E){(M||L)&&V&&O&&v?.(V);const{inProgress:Y,...G}=W,J={...G,toPosition:W.toHandle?W.toPosition:null};y?.(K,J),i&&b?.(K,J)}p(),cancelAnimationFrame(B),P=!1,O=!1,V=null,L=null,$.removeEventListener("mousemove",F),$.removeEventListener("mouseup",U),$.removeEventListener("touchmove",F),$.removeEventListener("touchend",U)}}$.addEventListener("mousemove",F),$.addEventListener("mouseup",U),$.addEventListener("touchmove",F),$.addEventListener("touchend",U)}function mi(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:s,lib:a,flowId:l,isValidConnection:c=pi,nodeLookup:u}){const d=i==="target",f=t?s.querySelector(`.${a}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:g}=ge(e),v=s.elementFromPoint(p,g),y=v?.classList.contains(`${a}-flow__handle`)?v:f,m={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const b=gi(void 0,y),h=y.getAttribute("data-nodeid"),x=y.getAttribute("data-handleid"),S=y.classList.contains("connectable"),_=y.classList.contains("connectableend");if(!h||!b)return m;const C={source:d?h:o,sourceHandle:d?x:r,target:d?o:h,targetHandle:d?r:x};m.connection=C;const $=S&&_&&(n===et.Strict?d&&b==="source"||!d&&b==="target":h!==o||x!==r);m.isValid=$&&c(C),m.toHandle=hi(h,b,x,u,n,!0)}return m}const zn={onPointerDown:Sd,isValid:mi};function Nd({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=ce(e);function i({translateExtent:a,width:l,height:c,zoomStep:u=1,pannable:d=!0,zoomable:f=!0,inversePan:p=!1}){const g=h=>{if(h.sourceEvent.type!=="wheel"||!t)return;const x=n(),S=h.sourceEvent.ctrlKey&&wt()?10:1,_=-h.sourceEvent.deltaY*(h.sourceEvent.deltaMode===1?.05:h.sourceEvent.deltaMode?1:.002)*u,C=x[2]*Math.pow(2,_*S);t.scaleTo(C)};let v=[0,0];const y=h=>{(h.sourceEvent.type==="mousedown"||h.sourceEvent.type==="touchstart")&&(v=[h.sourceEvent.clientX??h.sourceEvent.touches[0].clientX,h.sourceEvent.clientY??h.sourceEvent.touches[0].clientY])},m=h=>{const x=n();if(h.sourceEvent.type!=="mousemove"&&h.sourceEvent.type!=="touchmove"||!t)return;const S=[h.sourceEvent.clientX??h.sourceEvent.touches[0].clientX,h.sourceEvent.clientY??h.sourceEvent.touches[0].clientY],_=[S[0]-v[0],S[1]-v[1]];v=S;const C=o()*Math.max(x[2],Math.log(x[2]))*(p?-1:1),k={x:x[0]-_[0]*C,y:x[1]-_[1]*C},$=[[0,0],[l,c]];t.setViewportConstrained({x:k.x,y:k.y,zoom:x[2]},$,a)},b=jr().on("start",y).on("zoom",d?m:null).on("zoom.wheel",f?g:null);r.call(b,{})}function s(){r.on("zoom",null)}return{update:i,destroy:s,pointer:de}}const rn=e=>({x:e.x,y:e.y,zoom:e.k}),yn=({x:e,y:t,zoom:n})=>tn.translate(e,t).scale(n),We=(e,t)=>e.target.closest(`.${t}`),yi=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Cd=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,xn=(e,t=0,n=Cd,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},xi=e=>{const t=e.ctrlKey&&wt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Md({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(We(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const d=n.property("__zoom").k||1;if(u.ctrlKey&&s){const y=de(u),m=xi(u),b=d*Math.pow(2,m);o.scaleTo(n,b,y,u);return}const f=u.deltaMode===1?20:1;let p=r===Oe.Vertical?0:u.deltaX*f,g=r===Oe.Horizontal?0:u.deltaY*f;!wt()&&u.shiftKey&&r!==Oe.Vertical&&(p=u.deltaY*f,g=0),o.translateBy(n,-(p/d)*i,-(g/d)*i,{internal:!0});const v=rn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(u,v),e.panScrollTimeout=setTimeout(()=>{c?.(u,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a?.(u,v))}}function Id({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const i=o.type==="wheel",s=!t&&i&&!o.ctrlKey,a=We(o,e);if(o.ctrlKey&&i&&a&&o.preventDefault(),s||a)return null;o.preventDefault(),n.call(this,o,r)}}function kd({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=rn(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}function Ad({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&yi(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,rn(i.transform))}}function $d({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return s=>{if(!s.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&yi(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const a=rn(s.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(s.sourceEvent,a)},n?150:0)}}}function Pd({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:l,lib:c,connectionInProgress:u}){return d=>{const f=e||t,p=n&&d.ctrlKey,g=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(We(d,`${c}-flow__node`)||We(d,`${c}-flow__edge`)))return!0;if(!o&&!f&&!r&&!i&&!n||s||u&&!g||We(d,a)&&g||We(d,l)&&(!g||r&&g&&!e)||!n&&d.ctrlKey&&g)return!1;if(!n&&d.type==="touchstart"&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!r&&!p&&g||!o&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(o)&&!o.includes(d.button)&&d.type==="mousedown")return!1;const v=Array.isArray(o)&&o.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||g)&&v}}function Dd({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=jr().scaleExtent([t,n]).translateExtent(o),f=ce(e).call(d);b({x:r.x,y:r.y,zoom:tt(r.zoom,t,n)},[[0,0],[u.width,u.height]],o);const p=f.on("wheel.zoom"),g=f.on("dblclick.zoom");d.wheelDelta(xi);async function v(M,z){return f?new Promise(R=>{d?.interpolate(z?.interpolate==="linear"?Ue:Ht).transform(xn(f,z?.duration,z?.ease,()=>R(!0)),M)}):!1}function y({noWheelClassName:M,noPanClassName:z,onPaneContextMenu:R,userSelectionActive:w,panOnScroll:N,panOnDrag:E,panOnScrollMode:I,panOnScrollSpeed:T,preventScrolling:P,zoomOnPinch:V,zoomOnScroll:O,zoomOnDoubleClick:L,zoomActivationKeyPressed:j,lib:X,onTransformChange:q,connectionInProgress:Q,paneClickDistance:W,selectionOnDrag:H}){w&&!c.isZoomingOrPanning&&m();const F=N&&!j&&!w;d.clickDistance(H?1/0:!he(W)||W<0?0:W);const U=F?Md({zoomPanValues:c,noWheelClassName:M,d3Selection:f,d3Zoom:d,panOnScrollMode:I,panOnScrollSpeed:T,zoomOnPinch:V,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):Id({noWheelClassName:M,preventScrolling:P,d3ZoomHandler:p});f.on("wheel.zoom",U,{passive:!1});const K=kd({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:s});d.on("start",K);const Y=Ad({zoomPanValues:c,panOnDrag:E,onPaneContextMenu:!!R,onPanZoom:i,onTransformChange:q});d.on("zoom",Y);const G=$d({zoomPanValues:c,panOnDrag:E,panOnScroll:N,onPaneContextMenu:R,onPanZoomEnd:a,onDraggingChange:l});d.on("end",G);const J=Pd({zoomActivationKeyPressed:j,panOnDrag:E,zoomOnScroll:O,panOnScroll:N,zoomOnDoubleClick:L,zoomOnPinch:V,userSelectionActive:w,noPanClassName:z,noWheelClassName:M,lib:X,connectionInProgress:Q});d.filter(J),L?f.on("dblclick.zoom",g):f.on("dblclick.zoom",null)}function m(){d.on("zoom",null)}async function b(M,z,R){const w=yn(M),N=d?.constrain()(w,z,R);return N&&await v(N),N}async function h(M,z){const R=yn(M);return await v(R,z),R}function x(M){if(f){const z=yn(M),R=f.property("__zoom");(R.k!==M.zoom||R.x!==M.x||R.y!==M.y)&&d?.transform(f,z,null,{sync:!0})}}function S(){const M=f?Xr(f.node()):{x:0,y:0,k:1};return{x:M.x,y:M.y,zoom:M.k}}async function _(M,z){return f?new Promise(R=>{d?.interpolate(z?.interpolate==="linear"?Ue:Ht).scaleTo(xn(f,z?.duration,z?.ease,()=>R(!0)),M)}):!1}async function C(M,z){return f?new Promise(R=>{d?.interpolate(z?.interpolate==="linear"?Ue:Ht).scaleBy(xn(f,z?.duration,z?.ease,()=>R(!0)),M)}):!1}function k(M){d?.scaleExtent(M)}function $(M){d?.translateExtent(M)}function B(M){const z=!he(M)||M<0?0:M;d?.clickDistance(z)}return{update:y,destroy:m,setViewport:h,setViewportConstrained:b,getViewport:S,scaleTo:_,scaleBy:C,setScaleExtent:k,setTranslateExtent:$,syncViewport:x,setClickDistance:B}}var rt;(function(e){e.Line="line",e.Handle="handle"})(rt||(rt={}));function Td({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){const s=e-t,a=n-o,l=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&r&&(l[0]=l[0]*-1),a&&i&&(l[1]=l[1]*-1),l}function Bo(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function Ae(e,t){return Math.max(0,t-e)}function $e(e,t){return Math.max(0,e-t)}function Pt(e,t,n){return Math.max(0,t-e,e-n)}function Fo(e,t){return e?!t:t}function zd(e,t,n,o,r,i,s,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:g}=n,{minWidth:v,maxWidth:y,minHeight:m,maxHeight:b}=o,{x:h,y:x,width:S,height:_,aspectRatio:C}=e;let k=Math.floor(u?p-e.pointerX:0),$=Math.floor(d?g-e.pointerY:0);const B=S+(l?-k:k),M=_+(c?-$:$),z=-i[0]*S,R=-i[1]*_;let w=Pt(B,v,y),N=Pt(M,m,b);if(s){let T=0,P=0;l&&k<0?T=Ae(h+k+z,s[0][0]):!l&&k>0&&(T=$e(h+B+z,s[1][0])),c&&$<0?P=Ae(x+$+R,s[0][1]):!c&&$>0&&(P=$e(x+M+R,s[1][1])),w=Math.max(w,T),N=Math.max(N,P)}if(a){let T=0,P=0;l&&k>0?T=$e(h+k,a[0][0]):!l&&k<0&&(T=Ae(h+B,a[1][0])),c&&$>0?P=$e(x+$,a[0][1]):!c&&$<0&&(P=Ae(x+M,a[1][1])),w=Math.max(w,T),N=Math.max(N,P)}if(r){if(u){const T=Pt(B/C,m,b)*C;if(w=Math.max(w,T),s){let P=0;!l&&!c||l&&!c&&f?P=$e(x+R+B/C,s[1][1])*C:P=Ae(x+R+(l?k:-k)/C,s[0][1])*C,w=Math.max(w,P)}if(a){let P=0;!l&&!c||l&&!c&&f?P=Ae(x+B/C,a[1][1])*C:P=$e(x+(l?k:-k)/C,a[0][1])*C,w=Math.max(w,P)}}if(d){const T=Pt(M*C,v,y)/C;if(N=Math.max(N,T),s){let P=0;!l&&!c||c&&!l&&f?P=$e(h+M*C+z,s[1][0])/C:P=Ae(h+(c?$:-$)*C+z,s[0][0])/C,N=Math.max(N,P)}if(a){let P=0;!l&&!c||c&&!l&&f?P=Ae(h+M*C,a[1][0])/C:P=$e(h+(c?$:-$)*C,a[0][0])/C,N=Math.max(N,P)}}}$=$+($<0?N:-N),k=k+(k<0?w:-w),r&&(f?B>M*C?$=(Fo(l,c)?-k:k)/C:k=(Fo(l,c)?-$:$)*C:u?($=k/C,c=l):(k=$*C,l=c));const E=l?h+k:h,I=c?x+$:x;return{width:S+(l?-k:k),height:_+(c?-$:$),x:i[0]*k*(l?-1:1)+E,y:i[1]*$*(c?-1:1)+I}}const wi={width:0,height:0,x:0,y:0},Hd={...wi,pointerX:0,pointerY:0,aspectRatio:1};function Rd(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,a=n[0]*i,l=n[1]*s;return[[o-a,r-l],[o+i-a,r+s-l]]}function Ld({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const i=ce(e);let s={controlDirection:Bo("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:u,keepAspectRatio:d,resizeDirection:f,onResizeStart:p,onResize:g,onResizeEnd:v,shouldResize:y}){let m={...wi},b={...Hd};s={boundaries:u,resizeDirection:f,keepAspectRatio:d,controlDirection:Bo(c)};let h,x=null,S=[],_,C,k,$=!1;const B=kr().on("start",M=>{const{nodeLookup:z,transform:R,snapGrid:w,snapToGrid:N,nodeOrigin:E,paneDomNode:I}=n();if(h=z.get(t),!h)return;x=I?.getBoundingClientRect()??null;const{xSnapped:T,ySnapped:P}=dt(M.sourceEvent,{transform:R,snapGrid:w,snapToGrid:N,containerBounds:x});m={width:h.measured.width??0,height:h.measured.height??0,x:h.position.x??0,y:h.position.y??0},b={...m,pointerX:T,pointerY:P,aspectRatio:m.width/m.height},_=void 0,C=je(h.extent)?h.extent:void 0,h.parentId&&(h.extent==="parent"||h.expandParent)&&(_=z.get(h.parentId)),_&&h.extent==="parent"&&(C=[[0,0],[_.measured.width,_.measured.height]]),S=[],k=void 0;for(const[V,O]of z)if(O.parentId===t&&(S.push({id:V,position:{...O.position},extent:O.extent}),O.extent==="parent"||O.expandParent)){const L=Rd(O,h,O.origin??E);k?k=[[Math.min(L[0][0],k[0][0]),Math.min(L[0][1],k[0][1])],[Math.max(L[1][0],k[1][0]),Math.max(L[1][1],k[1][1])]]:k=L}p?.(M,{...m})}).on("drag",M=>{const{transform:z,snapGrid:R,snapToGrid:w,nodeOrigin:N}=n(),E=dt(M.sourceEvent,{transform:z,snapGrid:R,snapToGrid:w,containerBounds:x}),I=[];if(!h)return;const{x:T,y:P,width:V,height:O}=m,L={},j=h.origin??N,{width:X,height:q,x:Q,y:W}=zd(b,s.controlDirection,E,s.boundaries,s.keepAspectRatio,j,C,k),H=X!==V,F=q!==O,U=Q!==T&&H,K=W!==P&&F;if(!U&&!K&&!H&&!F)return;if((U||K||j[0]===1||j[1]===1)&&(L.x=U?Q:m.x,L.y=K?W:m.y,m.x=L.x,m.y=L.y,S.length>0)){const te=Q-T,re=W-P;for(const se of S)se.position={x:se.position.x-te+j[0]*(X-V),y:se.position.y-re+j[1]*(q-O)},I.push(se)}if((H||F)&&(L.width=H&&(!s.resizeDirection||s.resizeDirection==="horizontal")?X:m.width,L.height=F&&(!s.resizeDirection||s.resizeDirection==="vertical")?q:m.height,m.width=L.width,m.height=L.height),_&&h.expandParent){const te=j[0]*(L.width??0);L.x&&L.x<te&&(m.x=te,b.x=b.x-(L.x-te));const re=j[1]*(L.height??0);L.y&&L.y<re&&(m.y=re,b.y=b.y-(L.y-re))}const Y=Td({width:m.width,prevWidth:V,height:m.height,prevHeight:O,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),G={...m,direction:Y};y?.(M,G)!==!1&&($=!0,g?.(M,G),o(L,I))}).on("end",M=>{$&&(v?.(M,{...m}),r?.({...m}),$=!1)});i.call(B)}function l(){i.on(".drag",null)}return{update:a,destroy:l}}var wn={exports:{}},vn={};/**
2
2
  * @license React
3
3
  * use-sync-external-store-shim/with-selector.production.js
4
4
  *
@@ -11,5 +11,5 @@ import{a as ia,g as sa,R as aa,r as D,j as A}from"./vendor-react-D37HfzIf.js";im
11
11
 
12
12
  `,`
13
13
  +`).split(`
14
- `)),u=c.reduce((d,f)=>d.concat(...f),[]);return[c,u]}return[[],[]]},[e]);return D.useEffect(()=>{const l=t?.target??Uo,c=t?.actInsideInputWithModifier??!0;if(e!==null){const u=p=>{if(r.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!r.current||r.current&&!c)&&oi(p))return!1;const v=Jo(p.code,a);if(i.current.add(p[v]),Qo(s,i.current,!1)){const y=p.composedPath?.()?.[0]||p.target,m=y?.nodeName==="BUTTON"||y?.nodeName==="A";t.preventDefault!==!1&&(r.current||!m)&&p.preventDefault(),o(!0)}},d=p=>{const g=Jo(p.code,a);Qo(s,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(p[g]),p.key==="Meta"&&i.current.clear(),r.current=!1},f=()=>{i.current.clear(),o(!1)};return l?.addEventListener("keydown",u),l?.addEventListener("keyup",d),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l?.removeEventListener("keydown",u),l?.removeEventListener("keyup",d),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function Qo(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function Jo(e,t){return t.includes(e)?"code":"key"}const gf=()=>{const e=oe();return D.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),!0):!1},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:s,panZoom:a}=e.getState(),l=Wn(t,o,r,i,s,n?.padding??.1);return a?(await a.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:a,y:l}=s.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},u=n.snapGrid??r,d=n.snapToGrid??i;return rt(c,o,d,u)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),s=nt(t,n);return{x:s.x+r,y:s.y+i}}}),[])};function Ni(e,t){const n=[],o=new Map,r=[];for(const i of e)if(i.type==="add"){r.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const s=o.get(i.id);s?s.push(i):o.set(i.id,[i])}for(const i of t){const s=o.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const l of s)pf(l,a);n.push(a)}return r.length&&r.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function pf(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 Ci(e,t){return Ni(e,t)}function Mi(e,t){return Ni(e,t)}function Re(e,t){return{id:e,type:"select",selected:t}}function qe(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const s=t.has(r);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),o.push(Re(i.id,s)))}return o}function er({items:e=[],lookup:t}){const n=[],o=new Map(e.map(r=>[r.id,r]));for(const[r,i]of e.entries()){const s=t.get(i.id),a=s?.internals?.userNode??s;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:"replace"}),a===void 0&&n.push({item:i,type:"add",index:r})}for(const[r]of t)o.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function tr(e){return{id:e.id,type:"remove"}}const mf=Jr();function yf(e,t,n={}){return od(e,t,{...n,onError:n.onError??mf})}const nr=e=>Fu(e),xf=e=>Gr(e);function Ii(e){return D.forwardRef(e)}const wf=typeof window<"u"?D.useLayoutEffect:D.useEffect;function or(e){const[t,n]=D.useState(BigInt(0)),[o]=D.useState(()=>vf(()=>n(r=>r+BigInt(1))));return wf(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function vf(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const ki=D.createContext(null);function bf({children:e}){const t=oe(),n=D.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:u,onNodesChange:d,nodeLookup:f,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let v=l;for(const m of a)v=typeof m=="function"?m(v):m;let y=er({items:v,lookup:f});for(const m of g.values())y=m(y);u&&c(v),y.length>0?d?.(y):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:b,setNodes:h}=t.getState();m&&h(b)})},[]),o=or(n),r=D.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:u,onEdgesChange:d,edgeLookup:f}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;u?c(p):d&&d(er({items:p,lookup:f}))},[]),i=or(r),s=D.useMemo(()=>({nodeQueue:o,edgeQueue:i}),[]);return A.jsx(ki.Provider,{value:s,children:e})}function _f(){const e=D.useContext(ki);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Ef=e=>!!e.panZoom;function eo(){const e=gf(),t=oe(),n=_f(),o=ee(Ef),r=D.useMemo(()=>{const i=d=>t.getState().nodeLookup.get(d),s=d=>{n.nodeQueue.push(d)},a=d=>{n.edgeQueue.push(d)},l=d=>{const{nodeLookup:f,nodeOrigin:p}=t.getState(),g=nr(d)?d:f.get(d.id),v=g.parentId?ti(g.position,g.measured,g.parentId,f,p):g.position,y={...g,position:v,width:g.measured?.width??g.width,height:g.measured?.height??g.height};return tt(y)},c=(d,f,p={replace:!1})=>{s(g=>g.map(v=>{if(v.id===d){const y=typeof f=="function"?f(v):f;return p.replace&&nr(y)?y:{...v,...y}}return v}))},u=(d,f,p={replace:!1})=>{a(g=>g.map(v=>{if(v.id===d){const y=typeof f=="function"?f(v):f;return p.replace&&xf(y)?y:{...v,...y}}return v}))};return{getNodes:()=>t.getState().nodes.map(d=>({...d})),getNode:d=>i(d)?.internals.userNode,getInternalNode:i,getEdges:()=>{const{edges:d=[]}=t.getState();return d.map(f=>({...f}))},getEdge:d=>t.getState().edgeLookup.get(d),setNodes:s,setEdges:a,addNodes:d=>{const f=Array.isArray(d)?d:[d];n.nodeQueue.push(p=>[...p,...f])},addEdges:d=>{const f=Array.isArray(d)?d:[d];n.edgeQueue.push(p=>[...p,...f])},toObject:()=>{const{nodes:d=[],edges:f=[],transform:p}=t.getState(),[g,v,y]=p;return{nodes:d.map(m=>({...m})),edges:f.map(m=>({...m})),viewport:{x:g,y:v,zoom:y}}},deleteElements:async({nodes:d=[],edges:f=[]})=>{const{nodes:p,edges:g,onNodesDelete:v,onEdgesDelete:y,triggerNodeChanges:m,triggerEdgeChanges:b,onDelete:h,onBeforeDelete:x}=t.getState(),{nodes:S,edges:_}=await Wu({nodesToRemove:d,edgesToRemove:f,nodes:p,edges:g,onBeforeDelete:x}),C=_.length>0,k=S.length>0;if(C){const $=_.map(tr);y?.(_),b($)}if(k){const $=S.map(tr);v?.(S),m($)}return(k||C)&&h?.({nodes:S,edges:_}),{deletedNodes:S,deletedEdges:_}},getIntersectingNodes:(d,f=!0,p)=>{const g=Ao(d),v=g?d:l(d),y=p!==void 0;return v?(p||t.getState().nodes).filter(m=>{const b=t.getState().nodeLookup.get(m.id);if(b&&!g&&(m.id===d.id||!b.internals.positionAbsolute))return!1;const h=tt(y?m:b),x=xt(h,v);return f&&x>0||x>=h.width*h.height||x>=v.width*v.height}):[]},isNodeIntersecting:(d,f,p=!0)=>{const v=Ao(d)?d:l(d);if(!v)return!1;const y=xt(v,f);return p&&y>0||y>=f.width*f.height||y>=v.width*v.height},updateNode:c,updateNodeData:(d,f,p={replace:!1})=>{c(d,g=>{const v=typeof f=="function"?f(g):f;return p.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},p)},updateEdge:u,updateEdgeData:(d,f,p={replace:!1})=>{u(d,g=>{const v=typeof f=="function"?f(g):f;return p.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},p)},getNodesBounds:d=>{const{nodeLookup:f,nodeOrigin:p}=t.getState();return Xu(d,{nodeLookup:f,nodeOrigin:p})},getHandleConnections:({type:d,id:f,nodeId:p})=>Array.from(t.getState().connectionLookup.get(`${p}-${d}${f?`-${f}`:""}`)?.values()??[]),getNodeConnections:({type:d,handleId:f,nodeId:p})=>Array.from(t.getState().connectionLookup.get(`${p}${d?f?`-${d}-${f}`:`-${d}`:""}`)?.values()??[]),fitView:async d=>{const f=t.getState().fitViewResolver??Ku();return t.setState({fitViewQueued:!0,fitViewOptions:d,fitViewResolver:f}),n.nodeQueue.push(p=>[...p]),f.promise}}},[]);return D.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const rr=e=>e.selected,Sf=typeof window<"u"?window:void 0;function Nf({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=oe(),{deleteElements:o}=eo(),r=vt(e,{actInsideInputWithModifier:!1}),i=vt(t,{target:Sf});D.useEffect(()=>{if(r){const{edges:s,nodes:a}=n.getState();o({nodes:a.filter(rr),edges:s.filter(rr)}),n.setState({nodesSelectionActive:!1})}},[r]),D.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Cf(e){const t=oe();D.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=qn(e.current);(o.height===0||o.width===0)&&t.getState().onError?.("004",pe.error004()),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const cn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Mf=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function If({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=Oe.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:g,noWheelClassName:v,noPanClassName:y,onViewportChange:m,isControlledViewport:b,paneClickDistance:h,selectionOnDrag:x}){const S=oe(),_=D.useRef(null),{userSelectionActive:C,lib:k,connectionInProgress:$}=ee(Mf,ne),B=vt(f),M=D.useRef();Cf(_);const z=D.useCallback(R=>{m?.({x:R[0],y:R[1],zoom:R[2]}),b||S.setState({transform:R})},[m,b]);return D.useEffect(()=>{if(_.current){M.current=Dd({domNode:_.current,minZoom:u,maxZoom:d,translateExtent:c,viewport:l,onDraggingChange:E=>S.setState(I=>I.paneDragging===E?I:{paneDragging:E}),onPanZoomStart:(E,I)=>{const{onViewportChangeStart:T,onMoveStart:P}=S.getState();P?.(E,I),T?.(I)},onPanZoom:(E,I)=>{const{onViewportChange:T,onMove:P}=S.getState();P?.(E,I),T?.(I)},onPanZoomEnd:(E,I)=>{const{onViewportChangeEnd:T,onMoveEnd:P}=S.getState();P?.(E,I),T?.(I)}});const{x:R,y:w,zoom:N}=M.current.getViewport();return S.setState({panZoom:M.current,transform:[R,w,N],domNode:_.current.closest(".react-flow")}),()=>{M.current?.destroy()}}},[]),D.useEffect(()=>{M.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:B,preventScrolling:p,noPanClassName:y,userSelectionActive:C,noWheelClassName:v,lib:k,onTransformChange:z,connectionInProgress:$,selectionOnDrag:x,paneClickDistance:h})},[e,t,n,o,r,i,s,a,B,p,y,C,v,k,z,$,x,h]),A.jsx("div",{className:"react-flow__renderer",ref:_,style:cn,children:g})}const kf=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Af(){const{userSelectionActive:e,userSelectionRect:t}=ee(kf,ne);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 bn=(e,t)=>n=>{n.target===t.current&&e?.(n)},$f=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Pf({isSelecting:e,selectionKeyPressed:t,selectionMode:n=yt.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:i,selectionOnDrag:s,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:g,children:v}){const y=D.useRef(0),m=oe(),{userSelectionActive:b,elementsSelectable:h,dragging:x,connectionInProgress:S,panBy:_,autoPanSpeed:C}=ee($f,ne),k=h&&(e||b),$=D.useRef(null),B=D.useRef(),M=D.useRef(new Set),z=D.useRef(new Set),R=D.useRef(!1),w=D.useRef({x:0,y:0}),N=D.useRef(!1),E=H=>{if(R.current||S){R.current=!1;return}c?.(H),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},I=H=>{if(Array.isArray(o)&&o?.includes(2)){H.preventDefault();return}u?.(H)},T=d?H=>d(H):void 0,P=H=>{R.current&&(H.stopPropagation(),R.current=!1)},V=H=>{const{domNode:F,transform:U}=m.getState();if(B.current=F?.getBoundingClientRect(),!B.current)return;const K=H.target===$.current;if(!K&&!!H.target.closest(".nokey")||!e||!(s&&K||t)||H.button!==0||!H.isPrimary)return;H.target?.setPointerCapture?.(H.pointerId),R.current=!1;const{x:J,y:te}=ge(H.nativeEvent,B.current),re=rt({x:J,y:te},U);m.setState({userSelectionRect:{width:0,height:0,startX:re.x,startY:re.y,x:J,y:te}}),K||(H.stopPropagation(),H.preventDefault())};function O(H,F){const{userSelectionRect:U}=m.getState();if(!U)return;const{transform:K,nodeLookup:Y,edgeLookup:G,connectionLookup:J,triggerNodeChanges:te,triggerEdgeChanges:re,defaultEdgeOptions:se}=m.getState(),_e={x:U.startX,y:U.startY},{x:ye,y:xe}=nt(_e,K),Ee={startX:_e.x,startY:_e.y,x:H<ye?H:ye,y:F<xe?F:xe,width:Math.abs(H-ye),height:Math.abs(F-xe)},it=M.current,Te=z.current;M.current=new Set(Yn(Y,Ee,K,n===yt.Partial,!0).map(ue=>ue.id)),z.current=new Set;const ze=se?.selectable??!0;for(const ue of M.current){const Se=J.get(ue);if(Se)for(const{edgeId:Ne}of Se.values()){const He=G.get(Ne);He&&(He.selectable??ze)&&z.current.add(Ne)}}if(!$o(it,M.current)){const ue=qe(Y,M.current,!0);te(ue)}if(!$o(Te,z.current)){const ue=qe(G,z.current);re(ue)}m.setState({userSelectionRect:Ee,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!r||!B.current)return;const[H,F]=Zn(w.current,B.current,C);_({x:H,y:F}).then(U=>{if(!R.current||!U){y.current=requestAnimationFrame(L);return}const{x:K,y:Y}=w.current;O(K,Y),y.current=requestAnimationFrame(L)})}const j=()=>{cancelAnimationFrame(y.current),y.current=0,N.current=!1};D.useEffect(()=>()=>j(),[]);const X=H=>{const{userSelectionRect:F,transform:U,resetSelectedElements:K}=m.getState();if(!B.current||!F)return;const{x:Y,y:G}=ge(H.nativeEvent,B.current);w.current={x:Y,y:G};const J=nt({x:F.startX,y:F.startY},U);if(!R.current){const te=t?0:i;if(Math.hypot(Y-J.x,G-J.y)<=te)return;K(),a?.(H)}R.current=!0,N.current||(L(),N.current=!0),O(Y,G)},q=H=>{H.button===0&&(H.target?.releasePointerCapture?.(H.pointerId),!b&&H.target===$.current&&m.getState().userSelectionRect&&E?.(H),m.setState({userSelectionActive:!1,userSelectionRect:null}),R.current&&(l?.(H),m.setState({nodesSelectionActive:M.current.size>0})),j())},Q=H=>{H.target?.releasePointerCapture?.(H.pointerId),j()},W=o===!0||Array.isArray(o)&&o.includes(0);return A.jsxs("div",{className:ie(["react-flow__pane",{draggable:W,dragging:x,selection:e}]),onClick:k?void 0:bn(E,$),onContextMenu:bn(I,$),onWheel:bn(T,$),onPointerEnter:k?void 0:f,onPointerMove:k?X:p,onPointerUp:k?q:void 0,onPointerCancel:k?Q:void 0,onPointerDownCapture:k?V:void 0,onClickCapture:k?P:void 0,onPointerLeave:g,ref:$,style:cn,children:[v,A.jsx(Af,{})]})}function Hn({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l?.("012",pe.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&s)&&(i({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Ai({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:s}){const a=oe(),[l,c]=D.useState(!1),u=D.useRef();return D.useEffect(()=>{u.current=wd({getStoreItems:()=>a.getState(),onNodeMouseDown:d=>{Hn({id:d,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),D.useEffect(()=>{if(!(t||!e.current||!u.current))return u.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:s}),()=>{u.current?.destroy()}},[n,o,t,i,e,r,s]),l}const Df=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function $i(){const e=oe();return D.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:u}=e.getState(),d=new Map,f=Df(s),p=r?i[0]:5,g=r?i[1]:5,v=n.direction.x*p*n.factor,y=n.direction.y*g*n.factor;for(const[,m]of c){if(!f(m))continue;let b={x:m.internals.positionAbsolute.x+v,y:m.internals.positionAbsolute.y+y};r&&(b=Nt(b,i));const{position:h,positionAbsolute:x}=Kr({nodeId:m.id,nextPosition:b,nodeLookup:c,nodeExtent:o,nodeOrigin:u,onError:a});m.position=h,m.internals.positionAbsolute=x,d.set(m.id,m)}l(d)},[])}const to=D.createContext(null),Tf=to.Provider;to.Consumer;const Pi=()=>D.useContext(to),zf=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Hf=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:i,connection:s}=o,{fromHandle:a,toHandle:l,isValid:c}=s,u=l?.nodeId===e&&l?.id===t&&l?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:u,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:i===Je.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:u&&c}};function Rf({type:e="source",position:t=Z.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:l,className:c,onMouseDown:u,onTouchStart:d,...f},p){const g=s||null,v=e==="target",y=oe(),m=Pi(),{connectOnClick:b,noPanClassName:h,rfId:x}=ee(zf,ne),{connectingFrom:S,connectingTo:_,clickConnecting:C,isPossibleEndHandle:k,connectionInProcess:$,clickConnectionInProcess:B,valid:M}=ee(Hf(m,g,e),ne);m||y.getState().onError?.("010",pe.error010());const z=N=>{const{defaultEdgeOptions:E,onConnect:I,hasDefaultEdges:T}=y.getState(),P={...E,...N};if(T){const{edges:V,setEdges:O,onError:L}=y.getState();O(yf(P,V,{onError:L}))}I?.(P),a?.(P)},R=N=>{if(!m)return;const E=ri(N.nativeEvent);if(r&&(E&&N.button===0||!E)){const I=y.getState();zn.onPointerDown(N.nativeEvent,{handleDomNode:N.currentTarget,autoPanOnConnect:I.autoPanOnConnect,connectionMode:I.connectionMode,connectionRadius:I.connectionRadius,domNode:I.domNode,nodeLookup:I.nodeLookup,lib:I.lib,isTarget:v,handleId:g,nodeId:m,flowId:I.rfId,panBy:I.panBy,cancelConnection:I.cancelConnection,onConnectStart:I.onConnectStart,onConnectEnd:(...T)=>y.getState().onConnectEnd?.(...T),updateConnection:I.updateConnection,onConnect:z,isValidConnection:n||((...T)=>y.getState().isValidConnection?.(...T)??!0),getTransform:()=>y.getState().transform,getFromHandle:()=>y.getState().connection.fromHandle,autoPanSpeed:I.autoPanSpeed,dragThreshold:I.connectionDragThreshold})}E?u?.(N):d?.(N)},w=N=>{const{onClickConnectStart:E,onClickConnectEnd:I,connectionClickStartHandle:T,connectionMode:P,isValidConnection:V,lib:O,rfId:L,nodeLookup:j,connection:X}=y.getState();if(!m||!T&&!r)return;if(!T){E?.(N.nativeEvent,{nodeId:m,handleId:g,handleType:e}),y.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const q=ni(N.target),Q=n||V,{connection:W,isValid:H}=zn.isValid(N.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:P,fromNodeId:T.nodeId,fromHandleId:T.id||null,fromType:T.type,isValidConnection:Q,flowId:L,doc:q,lib:O,nodeLookup:j});H&&W&&z(W);const F=structuredClone(X);delete F.inProgress,F.toPosition=F.toHandle?F.toHandle.position:null,I?.(N,F),y.setState({connectionClickStartHandle:null})};return A.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${x}-${m}-${g}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",h,c,{source:!v,target:v,connectable:o,connectablestart:r,connectableend:i,clickconnecting:C,connectingfrom:S,connectingto:_,valid:M,connectionindicator:o&&(!$||k)&&($||B?i:r)}]),onMouseDown:R,onTouchStart:R,onClick:b?w:void 0,ref:p,...f,children:l})}const Gt=D.memo(Ii(Rf));function Lf({data:e,isConnectable:t,sourcePosition:n=Z.Bottom}){return A.jsxs(A.Fragment,{children:[e?.label,A.jsx(Gt,{type:"source",position:n,isConnectable:t})]})}function Vf({data:e,isConnectable:t,targetPosition:n=Z.Top,sourcePosition:o=Z.Bottom}){return A.jsxs(A.Fragment,{children:[A.jsx(Gt,{type:"target",position:n,isConnectable:t}),e?.label,A.jsx(Gt,{type:"source",position:o,isConnectable:t})]})}function Of(){return null}function Bf({data:e,isConnectable:t,targetPosition:n=Z.Top}){return A.jsxs(A.Fragment,{children:[A.jsx(Gt,{type:"target",position:n,isConnectable:t}),e?.label]})}const Kt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},ir={input:Lf,default:Vf,output:Bf,group:Of};function Ff(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}const Xf=e=>{const{width:t,height:n,x:o,y:r}=St(e.nodeLookup,{filter:i=>!!i.selected});return{width:he(t)?t:null,height:he(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function jf({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=oe(),{width:r,height:i,transformString:s,userSelectionActive:a}=ee(Xf,ne),l=$i(),c=D.useRef(null);D.useEffect(()=>{n||c.current?.focus({preventScroll:!0})},[n]);const u=!a&&r!==null&&i!==null;if(Ai({nodeRef:c,disabled:!u}),!u)return null;const d=e?p=>{const g=o.getState().nodes.filter(v=>v.selected);e(p,g)}:void 0,f=p=>{Object.prototype.hasOwnProperty.call(Kt,p.key)&&(p.preventDefault(),l({direction:Kt[p.key],factor:p.shiftKey?4:1}))};return A.jsx("div",{className:ie(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:A.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:r,height:i}})})}const sr=typeof window<"u"?window:void 0,Yf=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Di({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:v,zoomActivationKeyCode:y,elementsSelectable:m,zoomOnScroll:b,zoomOnPinch:h,panOnScroll:x,panOnScrollSpeed:S,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:k,autoPanOnSelection:$,defaultViewport:B,translateExtent:M,minZoom:z,maxZoom:R,preventScrolling:w,onSelectionContextMenu:N,noWheelClassName:E,noPanClassName:I,disableKeyboardA11y:T,onViewportChange:P,isControlledViewport:V}){const{nodesSelectionActive:O,userSelectionActive:L}=ee(Yf,ne),j=vt(c,{target:sr}),X=vt(v,{target:sr}),q=X||k,Q=X||x,W=u&&q!==!0,H=j||L||W;return Nf({deleteKeyCode:l,multiSelectionKeyCode:g}),A.jsx(If,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:b,zoomOnPinch:h,panOnScroll:Q,panOnScrollSpeed:S,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!j&&q,defaultViewport:B,translateExtent:M,minZoom:z,maxZoom:R,zoomActivationKeyCode:y,preventScrolling:w,noWheelClassName:E,noPanClassName:I,onViewportChange:P,isControlledViewport:V,paneClickDistance:a,selectionOnDrag:W,children:A.jsxs(Pf,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:q,autoPanOnSelection:$,isSelecting:!!H,selectionMode:d,selectionKeyPressed:j,paneClickDistance:a,selectionOnDrag:W,children:[e,O&&A.jsx(jf,{onSelectionContextMenu:N,noPanClassName:I,disableKeyboardA11y:T})]})})}Di.displayName="FlowRenderer";const Zf=D.memo(Di),Wf=e=>t=>e?Yn(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 qf(e){return ee(D.useCallback(Wf(e),[e]),ne)}const Gf=e=>e.updateNodeInternals;function Kf(){const e=ee(Gf),[t]=D.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(r=>{const i=r.target.getAttribute("data-id");o.set(i,{id:i,nodeElement:r.target,force:!0})}),e(o)}));return D.useEffect(()=>()=>{t?.disconnect()},[t]),t}function Uf({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=oe(),i=D.useRef(null),s=D.useRef(null),a=D.useRef(e.sourcePosition),l=D.useRef(e.targetPosition),c=D.useRef(t),u=n&&!!e.internals.handleBounds;return D.useEffect(()=>{i.current&&!e.hidden&&(!u||s.current!==i.current)&&(s.current&&o?.unobserve(s.current),o?.observe(i.current),s.current=i.current)},[u,e.hidden]),D.useEffect(()=>()=>{s.current&&(o?.unobserve(s.current),s.current=null)},[]),D.useEffect(()=>{if(i.current){const d=c.current!==t,f=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(d||f||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function Qf({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:g,rfId:v,nodeTypes:y,nodeClickDistance:m,onError:b}){const{node:h,internals:x,isParent:S}=ee(H=>{const F=H.nodeLookup.get(e),U=H.parentLookup.has(e);return{node:F,internals:F.internals,isParent:U}},ne);let _=h.type||"default",C=y?.[_]||ir[_];C===void 0&&(b?.("003",pe.error003(_)),_="default",C=y?.default||ir.default);const k=!!(h.draggable||a&&typeof h.draggable>"u"),$=!!(h.selectable||l&&typeof h.selectable>"u"),B=!!(h.connectable||c&&typeof h.connectable>"u"),M=!!(h.focusable||u&&typeof h.focusable>"u"),z=oe(),R=ei(h),w=Uf({node:h,nodeType:_,hasDimensions:R,resizeObserver:d}),N=Ai({nodeRef:w,disabled:h.hidden||!k,noDragClassName:f,handleSelector:h.dragHandle,nodeId:e,isSelectable:$,nodeClickDistance:m}),E=$i();if(h.hidden)return null;const I=ke(h),T=Ff(h),P=$||k||t||n||o||r,V=n?H=>n(H,{...x.userNode}):void 0,O=o?H=>o(H,{...x.userNode}):void 0,L=r?H=>r(H,{...x.userNode}):void 0,j=i?H=>i(H,{...x.userNode}):void 0,X=s?H=>s(H,{...x.userNode}):void 0,q=H=>{const{selectNodesOnDrag:F,nodeDragThreshold:U}=z.getState();$&&(!F||!k||U>0)&&Hn({id:e,store:z,nodeRef:w}),t&&t(H,{...x.userNode})},Q=H=>{if(!(oi(H.nativeEvent)||g)){if(Yr.includes(H.key)&&$){const F=H.key==="Escape";Hn({id:e,store:z,unselect:F,nodeRef:w})}else if(k&&h.selected&&Object.prototype.hasOwnProperty.call(Kt,H.key)){H.preventDefault();const{ariaLabelConfig:F}=z.getState();z.setState({ariaLiveMessage:F["node.a11yDescription.ariaLiveMessage"]({direction:H.key.replace("Arrow","").toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),E({direction:Kt[H.key],factor:H.shiftKey?4:1})}}},W=()=>{if(g||!w.current?.matches(":focus-visible"))return;const{transform:H,width:F,height:U,autoPanOnNodeFocus:K,setCenter:Y}=z.getState();if(!K)return;Yn(new Map([[e,h]]),{x:0,y:0,width:F,height:U},H,!0).length>0||Y(h.position.x+I.width/2,h.position.y+I.height/2,{zoom:H[2]})};return A.jsx("div",{className:ie(["react-flow__node",`react-flow__node-${_}`,{[p]:k},h.className,{selected:h.selected,selectable:$,parent:S,draggable:k,dragging:N}]),ref:w,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:P?"all":"none",visibility:R?"visible":"hidden",...h.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:V,onMouseMove:O,onMouseLeave:L,onContextMenu:j,onClick:q,onDoubleClick:X,onKeyDown:M?Q:void 0,tabIndex:M?0:void 0,onFocus:M?W:void 0,role:h.ariaRole??(M?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${_i}-${v}`,"aria-label":h.ariaLabel,...h.domAttributes,children:A.jsx(Tf,{value:e,children:A.jsx(C,{id:e,data:h.data,type:_,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:h.selected??!1,selectable:$,draggable:k,deletable:h.deletable??!0,isConnectable:B,sourcePosition:h.sourcePosition,targetPosition:h.targetPosition,dragging:N,dragHandle:h.dragHandle,zIndex:x.z,parentId:h.parentId,...I})})})}var Jf=D.memo(Qf);const eh=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Ti(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:i}=ee(eh,ne),s=qf(e.onlyRenderVisibleElements),a=Kf();return A.jsx("div",{className:"react-flow__nodes",style:cn,children:s.map(l=>A.jsx(Jf,{id:l,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:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},l))})}Ti.displayName="NodeRenderer";const th=D.memo(Ti);function nh(e){return ee(D.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const i=n.nodeLookup.get(r.source),s=n.nodeLookup.get(r.target);i&&s&&ed({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),ne)}const oh=({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"})},rh=({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"})},ar={[Wt.Arrow]:oh,[Wt.ArrowClosed]:rh};function ih(e){const t=oe();return D.useMemo(()=>Object.prototype.hasOwnProperty.call(ar,e)?ar[e]:(t.getState().onError?.("009",pe.error009(e)),null),[e])}const sh=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const l=ih(t);return l?A.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:A.jsx(l,{color:n,strokeWidth:s})}):null},zi=({defaultColor:e,rfId:t})=>{const n=ee(i=>i.edges),o=ee(i=>i.defaultEdgeOptions),r=D.useMemo(()=>cd(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?A.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:A.jsx("defs",{children:r.map(i=>A.jsx(sh,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};zi.displayName="MarkerDefinitions";var ah=D.memo(zi);function Hi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...u}){const[d,f]=D.useState({x:1,y:0,width:0,height:0}),p=ie(["react-flow__edge-textwrapper",c]),g=D.useRef(null);return D.useEffect(()=>{if(g.current){const v=g.current.getBBox();f({x:v.x,y:v.y,width:v.width,height:v.height})}},[n]),n?A.jsxs("g",{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?"visible":"hidden",...u,children:[r&&A.jsx("rect",{width:d.width+2*s[0],x:-s[0],y:-s[1],height:d.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),A.jsx("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:g,style:o,children:n}),l]}):null}Hi.displayName="EdgeText";const ch=D.memo(Hi);function ln({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...u}){return A.jsxs(A.Fragment,{children:[A.jsx("path",{...u,d:e,fill:"none",className:ie(["react-flow__edge-path",u.className])}),c?A.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,o&&he(t)&&he(n)?A.jsx(ch,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function cr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===Z.Left||e===Z.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Ri({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:o,targetY:r,targetPosition:i=Z.Top}){const[s,a]=cr({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=cr({pos:i,x1:o,y1:r,x2:e,y2:t}),[u,d,f,p]=ii({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${s},${a} ${l},${c} ${o},${r}`,u,d,f,p]}function Li(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s,targetPosition:a,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,interactionWidth:m})=>{const[b,h,x]=Ri({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a}),S=e.isInternal?void 0:t;return A.jsx(ln,{id:S,path:b,labelX:h,labelY:x,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,interactionWidth:m})})}const lh=Li({isInternal:!1}),Vi=Li({isInternal:!0});lh.displayName="SimpleBezierEdge";Vi.displayName="SimpleBezierEdgeInternal";function Oi(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=Z.Bottom,targetPosition:g=Z.Top,markerEnd:v,markerStart:y,pathOptions:m,interactionWidth:b})=>{const[h,x,S]=Pn({sourceX:n,sourceY:o,sourcePosition:p,targetX:r,targetY:i,targetPosition:g,borderRadius:m?.borderRadius,offset:m?.offset,stepPosition:m?.stepPosition}),_=e.isInternal?void 0:t;return A.jsx(ln,{id:_,path:h,labelX:x,labelY:S,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:v,markerStart:y,interactionWidth:b})})}const Bi=Oi({isInternal:!1}),Fi=Oi({isInternal:!0});Bi.displayName="SmoothStepEdge";Fi.displayName="SmoothStepEdgeInternal";function Xi(e){return D.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return A.jsx(Bi,{...n,id:o,pathOptions:D.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const uh=Xi({isInternal:!1}),ji=Xi({isInternal:!0});uh.displayName="StepEdge";ji.displayName="StepEdgeInternal";function Yi(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:g,interactionWidth:v})=>{const[y,m,b]=ci({sourceX:n,sourceY:o,targetX:r,targetY:i}),h=e.isInternal?void 0:t;return A.jsx(ln,{id:h,path:y,labelX:m,labelY:b,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:g,interactionWidth:v})})}const dh=Yi({isInternal:!1}),Zi=Yi({isInternal:!0});dh.displayName="StraightEdge";Zi.displayName="StraightEdgeInternal";function Wi(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s=Z.Bottom,targetPosition:a=Z.Top,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,pathOptions:m,interactionWidth:b})=>{const[h,x,S]=si({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a,curvature:m?.curvature}),_=e.isInternal?void 0:t;return A.jsx(ln,{id:_,path:h,labelX:x,labelY:S,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,interactionWidth:b})})}const fh=Wi({isInternal:!1}),qi=Wi({isInternal:!0});fh.displayName="BezierEdge";qi.displayName="BezierEdgeInternal";const lr={default:qi,straight:Zi,step:ji,smoothstep:Fi,simplebezier:Vi},ur={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},hh=(e,t,n)=>n===Z.Left?e-t:n===Z.Right?e+t:e,gh=(e,t,n)=>n===Z.Top?e-t:n===Z.Bottom?e+t:e,dr="react-flow__edgeupdater";function fr({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:s,type:a}){return A.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:s,className:ie([dr,`${dr}-${a}`]),cx:hh(t,o,e),cy:gh(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function ph({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:s,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){const g=oe(),v=(x,S)=>{if(x.button!==0)return;const{autoPanOnConnect:_,domNode:C,connectionMode:k,connectionRadius:$,lib:B,onConnectStart:M,cancelConnection:z,nodeLookup:R,rfId:w,panBy:N,updateConnection:E}=g.getState(),I=S.type==="target",T=(O,L)=>{f(!1),d?.(O,n,S.type,L)},P=O=>c?.(n,O),V=(O,L)=>{f(!0),u?.(x,n,S.type),M?.(O,L)};zn.onPointerDown(x.nativeEvent,{autoPanOnConnect:_,connectionMode:k,connectionRadius:$,domNode:C,handleId:S.id,nodeId:S.nodeId,nodeLookup:R,isTarget:I,edgeUpdaterType:S.type,lib:B,flowId:w,cancelConnection:z,panBy:N,isValidConnection:(...O)=>g.getState().isValidConnection?.(...O)??!0,onConnect:P,onConnectStart:V,onConnectEnd:(...O)=>g.getState().onConnectEnd?.(...O),onReconnectEnd:T,updateConnection:E,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:x.currentTarget})},y=x=>v(x,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=x=>v(x,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),b=()=>p(!0),h=()=>p(!1);return A.jsxs(A.Fragment,{children:[(e===!0||e==="source")&&A.jsx(fr,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:y,onMouseEnter:b,onMouseOut:h,type:"source"}),(e===!0||e==="target")&&A.jsx(fr,{position:l,centerX:i,centerY:s,radius:t,onMouseDown:m,onMouseEnter:b,onMouseOut:h,type:"target"})]})}function mh({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:g,edgeTypes:v,noPanClassName:y,onError:m,disableKeyboardA11y:b}){let h=ee(Y=>Y.edgeLookup.get(e));const x=ee(Y=>Y.defaultEdgeOptions);h=x?{...x,...h}:h;let S=h.type||"default",_=v?.[S]||lr[S];_===void 0&&(m?.("011",pe.error011(S)),S="default",_=v?.default||lr.default);const C=!!(h.focusable||t&&typeof h.focusable>"u"),k=typeof d<"u"&&(h.reconnectable||n&&typeof h.reconnectable>"u"),$=!!(h.selectable||o&&typeof h.selectable>"u"),B=D.useRef(null),[M,z]=D.useState(!1),[R,w]=D.useState(!1),N=oe(),{zIndex:E,sourceX:I,sourceY:T,targetX:P,targetY:V,sourcePosition:O,targetPosition:L}=ee(D.useCallback(Y=>{const G=Y.nodeLookup.get(h.source),J=Y.nodeLookup.get(h.target);if(!G||!J)return{zIndex:h.zIndex,...ur};const te=ad({id:e,sourceNode:G,targetNode:J,sourceHandle:h.sourceHandle||null,targetHandle:h.targetHandle||null,connectionMode:Y.connectionMode,onError:m});return{zIndex:Ju({selected:h.selected,zIndex:h.zIndex,sourceNode:G,targetNode:J,elevateOnSelect:Y.elevateEdgesOnSelect,zIndexMode:Y.zIndexMode}),...te||ur}},[h.source,h.target,h.sourceHandle,h.targetHandle,h.selected,h.zIndex]),ne),j=D.useMemo(()=>h.markerStart?`url('#${Dn(h.markerStart,g)}')`:void 0,[h.markerStart,g]),X=D.useMemo(()=>h.markerEnd?`url('#${Dn(h.markerEnd,g)}')`:void 0,[h.markerEnd,g]);if(h.hidden||I===null||T===null||P===null||V===null)return null;const q=Y=>{const{addSelectedEdges:G,unselectNodesAndEdges:J,multiSelectionActive:te}=N.getState();$&&(N.setState({nodesSelectionActive:!1}),h.selected&&te?(J({nodes:[],edges:[h]}),B.current?.blur()):G([e])),r&&r(Y,h)},Q=i?Y=>{i(Y,{...h})}:void 0,W=s?Y=>{s(Y,{...h})}:void 0,H=a?Y=>{a(Y,{...h})}:void 0,F=l?Y=>{l(Y,{...h})}:void 0,U=c?Y=>{c(Y,{...h})}:void 0,K=Y=>{if(!b&&Yr.includes(Y.key)&&$){const{unselectNodesAndEdges:G,addSelectedEdges:J}=N.getState();Y.key==="Escape"?(B.current?.blur(),G({edges:[h]})):J([e])}};return A.jsx("svg",{style:{zIndex:E},children:A.jsxs("g",{className:ie(["react-flow__edge",`react-flow__edge-${S}`,h.className,y,{selected:h.selected,animated:h.animated,inactive:!$&&!r,updating:M,selectable:$}]),onClick:q,onDoubleClick:Q,onContextMenu:W,onMouseEnter:H,onMouseMove:F,onMouseLeave:U,onKeyDown:C?K:void 0,tabIndex:C?0:void 0,role:h.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":h.ariaLabel===null?void 0:h.ariaLabel||`Edge from ${h.source} to ${h.target}`,"aria-describedby":C?`${Ei}-${g}`:void 0,ref:B,...h.domAttributes,children:[!R&&A.jsx(_,{id:e,source:h.source,target:h.target,type:h.type,selected:h.selected,animated:h.animated,selectable:$,deletable:h.deletable??!0,label:h.label,labelStyle:h.labelStyle,labelShowBg:h.labelShowBg,labelBgStyle:h.labelBgStyle,labelBgPadding:h.labelBgPadding,labelBgBorderRadius:h.labelBgBorderRadius,sourceX:I,sourceY:T,targetX:P,targetY:V,sourcePosition:O,targetPosition:L,data:h.data,style:h.style,sourceHandleId:h.sourceHandle,targetHandleId:h.targetHandle,markerStart:j,markerEnd:X,pathOptions:"pathOptions"in h?h.pathOptions:void 0,interactionWidth:h.interactionWidth}),k&&A.jsx(ph,{edge:h,isReconnectable:k,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:I,sourceY:T,targetX:P,targetY:V,sourcePosition:O,targetPosition:L,setUpdateHover:z,setReconnecting:w})]})})}var yh=D.memo(mh);const xh=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Gi({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:v}){const{edgesFocusable:y,edgesReconnectable:m,elementsSelectable:b,onError:h}=ee(xh,ne),x=nh(t);return A.jsxs("div",{className:"react-flow__edges",children:[A.jsx(ah,{defaultColor:e,rfId:n}),x.map(S=>A.jsx(yh,{id:S,edgesFocusable:y,edgesReconnectable:m,elementsSelectable:b,noPanClassName:r,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:h,edgeTypes:o,disableKeyboardA11y:v},S))]})}Gi.displayName="EdgeRenderer";const wh=D.memo(Gi),vh=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function bh({children:e}){const t=ee(vh);return A.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function _h(e){const t=eo(),n=D.useRef(!1);D.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Eh=e=>e.panZoom?.syncViewport;function Sh(e){const t=ee(Eh),n=oe();return D.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Nh(e){return e.connection.inProgress?{...e.connection,to:rt(e.connection.to,e.transform)}:{...e.connection}}function Ch(e){return Nh}function Mh(e){const t=Ch();return ee(t,ne)}const Ih=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function kh({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:i,height:s,isValid:a,inProgress:l}=ee(Ih,ne);return!(i&&r&&l)?null:A.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:A.jsx("g",{className:ie(["react-flow__connection",qr(a)]),children:A.jsx(Ki,{style:t,type:n,CustomComponent:o,isValid:a})})})}const Ki=({style:e,type:t=Pe.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:i,fromNode:s,fromHandle:a,fromPosition:l,to:c,toNode:u,toHandle:d,toPosition:f,pointer:p}=Mh();if(!r)return;if(n)return A.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:f,connectionStatus:qr(o),toNode:u,toHandle:d,pointer:p});let g="";const v={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:f};switch(t){case Pe.Bezier:[g]=si(v);break;case Pe.SimpleBezier:[g]=Ri(v);break;case Pe.Step:[g]=Pn({...v,borderRadius:0});break;case Pe.SmoothStep:[g]=Pn(v);break;default:[g]=ci(v)}return A.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};Ki.displayName="ConnectionLine";const Ah={};function hr(e=Ah){D.useRef(e),oe(),D.useEffect(()=>{},[e])}function $h(){oe(),D.useRef(!1),D.useEffect(()=>{},[])}function Ui({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:v,connectionLineComponent:y,connectionLineContainerStyle:m,selectionKeyCode:b,selectionOnDrag:h,selectionMode:x,multiSelectionKeyCode:S,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:k,onlyRenderVisibleElements:$,elementsSelectable:B,defaultViewport:M,translateExtent:z,minZoom:R,maxZoom:w,preventScrolling:N,defaultMarkerColor:E,zoomOnScroll:I,zoomOnPinch:T,panOnScroll:P,panOnScrollSpeed:V,panOnScrollMode:O,zoomOnDoubleClick:L,panOnDrag:j,autoPanOnSelection:X,onPaneClick:q,onPaneMouseEnter:Q,onPaneMouseMove:W,onPaneMouseLeave:H,onPaneScroll:F,onPaneContextMenu:U,paneClickDistance:K,nodeClickDistance:Y,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:te,onEdgeMouseLeave:re,reconnectRadius:se,onReconnect:_e,onReconnectStart:ye,onReconnectEnd:xe,noDragClassName:Ee,noWheelClassName:it,noPanClassName:Te,disableKeyboardA11y:ze,nodeExtent:ue,rfId:Se,viewport:Ne,onViewportChange:He}){return hr(e),hr(t),$h(),_h(n),Sh(Ne),A.jsx(Zf,{onPaneClick:q,onPaneMouseEnter:Q,onPaneMouseMove:W,onPaneMouseLeave:H,onPaneContextMenu:U,onPaneScroll:F,paneClickDistance:K,deleteKeyCode:k,selectionKeyCode:b,selectionOnDrag:h,selectionMode:x,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:B,zoomOnScroll:I,zoomOnPinch:T,zoomOnDoubleClick:L,panOnScroll:P,panOnScrollSpeed:V,panOnScrollMode:O,panOnDrag:j,autoPanOnSelection:X,defaultViewport:M,translateExtent:z,minZoom:R,maxZoom:w,onSelectionContextMenu:d,preventScrolling:N,noDragClassName:Ee,noWheelClassName:it,noPanClassName:Te,disableKeyboardA11y:ze,onViewportChange:He,isControlledViewport:!!Ne,children:A.jsxs(bh,{children:[A.jsx(wh,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:s,onReconnect:_e,onReconnectStart:ye,onReconnectEnd:xe,onlyRenderVisibleElements:$,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:te,onEdgeMouseLeave:re,reconnectRadius:se,defaultMarkerColor:E,noPanClassName:Te,disableKeyboardA11y:ze,rfId:Se}),A.jsx(kh,{style:v,type:g,component:y,containerStyle:m}),A.jsx("div",{className:"react-flow__edgelabel-renderer"}),A.jsx(th,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,nodeClickDistance:Y,onlyRenderVisibleElements:$,noPanClassName:Te,noDragClassName:Ee,disableKeyboardA11y:ze,nodeExtent:ue,rfId:Se}),A.jsx("div",{className:"react-flow__viewport-portal"})]})})}Ui.displayName="GraphView";const Ph=D.memo(Ui),Dh=Jr(),gr=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f="basic"}={})=>{const p=new Map,g=new Map,v=new Map,y=new Map,m=o??t??[],b=n??e??[],h=u??[0,0],x=d??mt;di(v,y,m);const{nodesInitialized:S}=Tn(b,p,g,{nodeOrigin:h,nodeExtent:x,zIndexMode:f});let _=[0,0,1];if(s&&r&&i){const C=St(p,{filter:M=>!!((M.width||M.initialWidth)&&(M.height||M.initialHeight))}),{x:k,y:$,zoom:B}=Wn(C,r,i,l,c,a?.padding??.1);_=[k,$,B]}return{rfId:"1",width:r??0,height:i??0,transform:_,nodes:b,nodesInitialized:S,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:y,connectionLookup:v,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:mt,nodeExtent:x,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Je.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:h,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:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Wr},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Dh,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Zr,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Th=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>qd((p,g)=>{async function v(){const{nodeLookup:y,panZoom:m,fitViewOptions:b,fitViewResolver:h,width:x,height:S,minZoom:_,maxZoom:C}=g();m&&(await Zu({nodes:y,width:x,height:S,panZoom:m,minZoom:_,maxZoom:C},b),h?.resolve(!0),p({fitViewResolver:null}))}return{...gr({nodes:e,edges:t,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:o,zIndexMode:f}),setNodes:y=>{const{nodeLookup:m,parentLookup:b,nodeOrigin:h,elevateNodesOnSelect:x,fitViewQueued:S,zIndexMode:_,nodesSelectionActive:C}=g(),{nodesInitialized:k,hasSelectedNodes:$}=Tn(y,m,b,{nodeOrigin:h,nodeExtent:d,elevateNodesOnSelect:x,checkEquality:!0,zIndexMode:_}),B=C&&$;S&&k?(v(),p({nodes:y,nodesInitialized:k,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:B})):p({nodes:y,nodesInitialized:k,nodesSelectionActive:B})},setEdges:y=>{const{connectionLookup:m,edgeLookup:b}=g();di(m,b,y),p({edges:y})},setDefaultNodesAndEdges:(y,m)=>{if(y){const{setNodes:b}=g();b(y),p({hasDefaultNodes:!0})}if(m){const{setEdges:b}=g();b(m),p({hasDefaultEdges:!0})}},updateNodeInternals:y=>{const{triggerNodeChanges:m,nodeLookup:b,parentLookup:h,domNode:x,nodeOrigin:S,nodeExtent:_,debug:C,fitViewQueued:k,zIndexMode:$}=g(),{changes:B,updatedInternals:M}=pd(y,b,h,x,S,_,$);M&&(dd(b,h,{nodeOrigin:S,nodeExtent:_,zIndexMode:$}),k?(v(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),B?.length>0&&(C&&console.log("React Flow: trigger node changes",B),m?.(B)))},updateNodePositions:(y,m=!1)=>{const b=[];let h=[];const{nodeLookup:x,triggerNodeChanges:S,connection:_,updateConnection:C,onNodesChangeMiddlewareMap:k}=g();for(const[$,B]of y){const M=x.get($),z=!!(M?.expandParent&&M?.parentId&&B?.position),R={id:$,type:"position",position:z?{x:Math.max(0,B.position.x),y:Math.max(0,B.position.y)}:B.position,dragging:m};if(M&&_.inProgress&&_.fromNode.id===M.id){const w=Ye(M,_.fromHandle,Z.Left,!0);C({..._,from:w})}z&&M.parentId&&b.push({id:$,parentId:M.parentId,rect:{...B.internals.positionAbsolute,width:B.measured.width??0,height:B.measured.height??0}}),h.push(R)}if(b.length>0){const{parentLookup:$,nodeOrigin:B}=g(),M=Jn(b,x,$,B);h.push(...M)}for(const $ of k.values())h=$(h);S(h)},triggerNodeChanges:y=>{const{onNodesChange:m,setNodes:b,nodes:h,hasDefaultNodes:x,debug:S}=g();if(y?.length){if(x){const _=Ci(y,h);b(_)}S&&console.log("React Flow: trigger node changes",y),m?.(y)}},triggerEdgeChanges:y=>{const{onEdgesChange:m,setEdges:b,edges:h,hasDefaultEdges:x,debug:S}=g();if(y?.length){if(x){const _=Mi(y,h);b(_)}S&&console.log("React Flow: trigger edge changes",y),m?.(y)}},addSelectedNodes:y=>{const{multiSelectionActive:m,edgeLookup:b,nodeLookup:h,triggerNodeChanges:x,triggerEdgeChanges:S}=g();if(m){const _=y.map(C=>Re(C,!0));x(_);return}x(qe(h,new Set([...y]),!0)),S(qe(b))},addSelectedEdges:y=>{const{multiSelectionActive:m,edgeLookup:b,nodeLookup:h,triggerNodeChanges:x,triggerEdgeChanges:S}=g();if(m){const _=y.map(C=>Re(C,!0));S(_);return}S(qe(b,new Set([...y]))),x(qe(h,new Set,!0))},unselectNodesAndEdges:({nodes:y,edges:m}={})=>{const{edges:b,nodes:h,nodeLookup:x,triggerNodeChanges:S,triggerEdgeChanges:_}=g(),C=y||h,k=m||b,$=[];for(const M of C){if(!M.selected)continue;const z=x.get(M.id);z&&(z.selected=!1),$.push(Re(M.id,!1))}const B=[];for(const M of k)M.selected&&B.push(Re(M.id,!1));S($),_(B)},setMinZoom:y=>{const{panZoom:m,maxZoom:b}=g();m?.setScaleExtent([y,b]),p({minZoom:y})},setMaxZoom:y=>{const{panZoom:m,minZoom:b}=g();m?.setScaleExtent([b,y]),p({maxZoom:y})},setTranslateExtent:y=>{g().panZoom?.setTranslateExtent(y),p({translateExtent:y})},resetSelectedElements:()=>{const{edges:y,nodes:m,triggerNodeChanges:b,triggerEdgeChanges:h,elementsSelectable:x}=g();if(!x)return;const S=m.reduce((C,k)=>k.selected?[...C,Re(k.id,!1)]:C,[]),_=y.reduce((C,k)=>k.selected?[...C,Re(k.id,!1)]:C,[]);b(S),h(_)},setNodeExtent:y=>{const{nodes:m,nodeLookup:b,parentLookup:h,nodeOrigin:x,elevateNodesOnSelect:S,nodeExtent:_,zIndexMode:C}=g();y[0][0]===_[0][0]&&y[0][1]===_[0][1]&&y[1][0]===_[1][0]&&y[1][1]===_[1][1]||(Tn(m,b,h,{nodeOrigin:x,nodeExtent:y,elevateNodesOnSelect:S,checkEquality:!1,zIndexMode:C}),p({nodeExtent:y}))},panBy:y=>{const{transform:m,width:b,height:h,panZoom:x,translateExtent:S}=g();return md({delta:y,panZoom:x,transform:m,translateExtent:S,width:b,height:h})},setCenter:async(y,m,b)=>{const{width:h,height:x,maxZoom:S,panZoom:_}=g();if(!_)return!1;const C=typeof b?.zoom<"u"?b.zoom:S;return await _.setViewport({x:h/2-y*C,y:x/2-m*C,zoom:C},{duration:b?.duration,ease:b?.ease,interpolate:b?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Wr}})},updateConnection:y=>{p({connection:y})},reset:()=>p({...gr()})}},Object.is);function zh({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){const[g]=D.useState(()=>Th({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:c,minZoom:s,maxZoom:a,fitViewOptions:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return A.jsx(Gd,{value:g,children:A.jsx(bf,{children:p})})}function Hh({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:s,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return D.useContext(sn)?A.jsx(A.Fragment,{children:e}):A.jsx(zh,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}const Rh={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Lh({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:g,onConnectEnd:v,onClickConnectStart:y,onClickConnectEnd:m,onNodeMouseEnter:b,onNodeMouseMove:h,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:_,onNodeDragStart:C,onNodeDrag:k,onNodeDragStop:$,onNodesDelete:B,onEdgesDelete:M,onDelete:z,onSelectionChange:R,onSelectionDragStart:w,onSelectionDrag:N,onSelectionDragStop:E,onSelectionContextMenu:I,onSelectionStart:T,onSelectionEnd:P,onBeforeDelete:V,connectionMode:O,connectionLineType:L=Pe.Bezier,connectionLineStyle:j,connectionLineComponent:X,connectionLineContainerStyle:q,deleteKeyCode:Q="Backspace",selectionKeyCode:W="Shift",selectionOnDrag:H=!1,selectionMode:F=yt.Full,panActivationKeyCode:U="Space",multiSelectionKeyCode:K=wt()?"Meta":"Control",zoomActivationKeyCode:Y=wt()?"Meta":"Control",snapToGrid:G,snapGrid:J,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:re,nodesDraggable:se,autoPanOnNodeFocus:_e,nodesConnectable:ye,nodesFocusable:xe,nodeOrigin:Ee=Si,edgesFocusable:it,edgesReconnectable:Te,elementsSelectable:ze=!0,defaultViewport:ue=lf,minZoom:Se=.5,maxZoom:Ne=2,translateExtent:He=mt,preventScrolling:ts=!0,nodeExtent:un,defaultMarkerColor:ns="#b1b1b7",zoomOnScroll:os=!0,zoomOnPinch:rs=!0,panOnScroll:is=!1,panOnScrollSpeed:ss=.5,panOnScrollMode:as=Oe.Free,zoomOnDoubleClick:cs=!0,panOnDrag:ls=!0,onPaneClick:us,onPaneMouseEnter:ds,onPaneMouseMove:fs,onPaneMouseLeave:hs,onPaneScroll:gs,onPaneContextMenu:ps,paneClickDistance:ms=1,nodeClickDistance:ys=0,children:xs,onReconnect:ws,onReconnectStart:vs,onReconnectEnd:bs,onEdgeContextMenu:_s,onEdgeDoubleClick:Es,onEdgeMouseEnter:Ss,onEdgeMouseMove:Ns,onEdgeMouseLeave:Cs,reconnectRadius:Ms=10,onNodesChange:Is,onEdgesChange:ks,noDragClassName:As="nodrag",noWheelClassName:$s="nowheel",noPanClassName:no="nopan",fitView:oo,fitViewOptions:ro,connectOnClick:Ps,attributionPosition:Ds,proOptions:Ts,defaultEdgeOptions:zs,elevateNodesOnSelect:Hs=!0,elevateEdgesOnSelect:Rs=!1,disableKeyboardA11y:io=!1,autoPanOnConnect:Ls,autoPanOnNodeDrag:Vs,autoPanOnSelection:Os=!0,autoPanSpeed:Bs,connectionRadius:Fs,isValidConnection:Xs,onError:js,style:Ys,id:so,nodeDragThreshold:Zs,connectionDragThreshold:Ws,viewport:qs,onViewportChange:Gs,width:Ks,height:Us,colorMode:Qs="light",debug:Js,onScroll:ao,ariaLabelConfig:ea,zIndexMode:co="basic",...ta},na){const dn=so||"1",oa=hf(Qs),ra=D.useCallback(lo=>{lo.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ao?.(lo)},[ao]);return A.jsx("div",{"data-testid":"rf__wrapper",...ta,onScroll:ra,style:{...Ys,...Rh},ref:na,className:ie(["react-flow",r,oa]),id:so,role:"application",children:A.jsxs(Hh,{nodes:e,edges:t,width:Ks,height:Us,fitView:oo,fitViewOptions:ro,minZoom:Se,maxZoom:Ne,nodeOrigin:Ee,nodeExtent:un,zIndexMode:co,children:[A.jsx(ff,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:p,onConnectStart:g,onConnectEnd:v,onClickConnectStart:y,onClickConnectEnd:m,nodesDraggable:se,autoPanOnNodeFocus:_e,nodesConnectable:ye,nodesFocusable:xe,edgesFocusable:it,edgesReconnectable:Te,elementsSelectable:ze,elevateNodesOnSelect:Hs,elevateEdgesOnSelect:Rs,minZoom:Se,maxZoom:Ne,nodeExtent:un,onNodesChange:Is,onEdgesChange:ks,snapToGrid:G,snapGrid:J,connectionMode:O,translateExtent:He,connectOnClick:Ps,defaultEdgeOptions:zs,fitView:oo,fitViewOptions:ro,onNodesDelete:B,onEdgesDelete:M,onDelete:z,onNodeDragStart:C,onNodeDrag:k,onNodeDragStop:$,onSelectionDrag:N,onSelectionDragStart:w,onSelectionDragStop:E,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:no,nodeOrigin:Ee,rfId:dn,autoPanOnConnect:Ls,autoPanOnNodeDrag:Vs,autoPanSpeed:Bs,onError:js,connectionRadius:Fs,isValidConnection:Xs,selectNodesOnDrag:re,nodeDragThreshold:Zs,connectionDragThreshold:Ws,onBeforeDelete:V,debug:Js,ariaLabelConfig:ea,zIndexMode:co}),A.jsx(Ph,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:b,onNodeMouseMove:h,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:_,nodeTypes:i,edgeTypes:s,connectionLineType:L,connectionLineStyle:j,connectionLineComponent:X,connectionLineContainerStyle:q,selectionKeyCode:W,selectionOnDrag:H,selectionMode:F,deleteKeyCode:Q,multiSelectionKeyCode:K,panActivationKeyCode:U,zoomActivationKeyCode:Y,onlyRenderVisibleElements:te,defaultViewport:ue,translateExtent:He,minZoom:Se,maxZoom:Ne,preventScrolling:ts,zoomOnScroll:os,zoomOnPinch:rs,zoomOnDoubleClick:cs,panOnScroll:is,panOnScrollSpeed:ss,panOnScrollMode:as,panOnDrag:ls,autoPanOnSelection:Os,onPaneClick:us,onPaneMouseEnter:ds,onPaneMouseMove:fs,onPaneMouseLeave:hs,onPaneScroll:gs,onPaneContextMenu:ps,paneClickDistance:ms,nodeClickDistance:ys,onSelectionContextMenu:I,onSelectionStart:T,onSelectionEnd:P,onReconnect:ws,onReconnectStart:vs,onReconnectEnd:bs,onEdgeContextMenu:_s,onEdgeDoubleClick:Es,onEdgeMouseEnter:Ss,onEdgeMouseMove:Ns,onEdgeMouseLeave:Cs,reconnectRadius:Ms,defaultMarkerColor:ns,noDragClassName:As,noWheelClassName:$s,noPanClassName:no,rfId:dn,disableKeyboardA11y:io,nodeExtent:un,viewport:qs,onViewportChange:Gs}),A.jsx(cf,{onSelectionChange:R}),xs,A.jsx(nf,{proOptions:Ts,position:Ds}),A.jsx(tf,{rfId:dn,disableKeyboardA11y:io})]})})}var fg=Ii(Lh);function hg(e){const[t,n]=D.useState(e),o=D.useCallback(r=>n(i=>Ci(r,i)),[]);return[t,n,o]}function gg(e){const[t,n]=D.useState(e),o=D.useCallback(r=>n(i=>Mi(r,i)),[]);return[t,n,o]}function Vh({dimensions:e,lineWidth:t,variant:n,className:o}){return A.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ie(["react-flow__background-pattern",n,o])})}function Oh({radius:e,className:t}){return A.jsx("circle",{cx:e,cy:e,r:e,className:ie(["react-flow__background-pattern","dots",t])})}var De;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(De||(De={}));const Bh={[De.Dots]:1,[De.Lines]:1,[De.Cross]:6},Fh=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Qi({id:e,variant:t=De.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:s,bgColor:a,style:l,className:c,patternClassName:u}){const d=D.useRef(null),{transform:f,patternId:p}=ee(Fh,ne),g=o||Bh[t],v=t===De.Dots,y=t===De.Cross,m=Array.isArray(n)?n:[n,n],b=[m[0]*f[2]||1,m[1]*f[2]||1],h=g*f[2],x=Array.isArray(i)?i:[i,i],S=y?[h,h]:b,_=[x[0]*f[2]||1+S[0]/2,x[1]*f[2]||1+S[1]/2],C=`${p}${e||""}`;return A.jsxs("svg",{className:ie(["react-flow__background",c]),style:{...l,...cn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:d,"data-testid":"rf__background",children:[A.jsx("pattern",{id:C,x:f[0]%b[0],y:f[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:v?A.jsx(Oh,{radius:h/2,className:u}):A.jsx(Vh,{dimensions:S,lineWidth:r,variant:t,className:u})}),A.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}Qi.displayName="Background";const pg=D.memo(Qi);function Xh(){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 jh(){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 Yh(){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 Zh(){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 Wh(){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 Tt({children:e,className:t,...n}){return A.jsx("button",{type:"button",className:ie(["react-flow__controls-button",t]),...n,children:e})}const qh=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Ji({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:l,className:c,children:u,position:d="bottom-left",orientation:f="vertical","aria-label":p}){const g=oe(),{isInteractive:v,minZoomReached:y,maxZoomReached:m,ariaLabelConfig:b}=ee(qh,ne),{zoomIn:h,zoomOut:x,fitView:S}=eo(),_=()=>{h(),i?.()},C=()=>{x(),s?.()},k=()=>{S(r),a?.()},$=()=>{g.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),l?.(!v)},B=f==="horizontal"?"horizontal":"vertical";return A.jsxs(an,{className:ie(["react-flow__controls",B,c]),position:d,style:e,"data-testid":"rf__controls","aria-label":p??b["controls.ariaLabel"],children:[t&&A.jsxs(A.Fragment,{children:[A.jsx(Tt,{onClick:_,className:"react-flow__controls-zoomin",title:b["controls.zoomIn.ariaLabel"],"aria-label":b["controls.zoomIn.ariaLabel"],disabled:m,children:A.jsx(Xh,{})}),A.jsx(Tt,{onClick:C,className:"react-flow__controls-zoomout",title:b["controls.zoomOut.ariaLabel"],"aria-label":b["controls.zoomOut.ariaLabel"],disabled:y,children:A.jsx(jh,{})})]}),n&&A.jsx(Tt,{className:"react-flow__controls-fitview",onClick:k,title:b["controls.fitView.ariaLabel"],"aria-label":b["controls.fitView.ariaLabel"],children:A.jsx(Yh,{})}),o&&A.jsx(Tt,{className:"react-flow__controls-interactive",onClick:$,title:b["controls.interactive.ariaLabel"],"aria-label":b["controls.interactive.ariaLabel"],children:v?A.jsx(Wh,{}):A.jsx(Zh,{})}),u]})}Ji.displayName="Controls";const mg=D.memo(Ji);function Gh({id:e,x:t,y:n,width:o,height:r,style:i,color:s,strokeColor:a,strokeWidth:l,className:c,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){const{background:g,backgroundColor:v}=i||{},y=s||g||v;return A.jsx("rect",{className:ie(["react-flow__minimap-node",{selected:f},c]),x:t,y:n,rx:u,ry:u,width:o,height:r,style:{fill:y,stroke:a,strokeWidth:l},shapeRendering:d,onClick:p?m=>p(m,e):void 0})}const Kh=D.memo(Gh),Uh=e=>e.nodes.map(t=>t.id),_n=e=>e instanceof Function?e:()=>e;function Qh({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=Kh,onClick:s}){const a=ee(Uh,ne),l=_n(t),c=_n(e),u=_n(n),d=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return A.jsx(A.Fragment,{children:a.map(f=>A.jsx(eg,{id:f,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:u,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:s,shapeRendering:d},f))})}function Jh({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:l}){const{node:c,x:u,y:d,width:f,height:p}=ee(g=>{const v=g.nodeLookup.get(e);if(!v)return{node:void 0,x:0,y:0,width:0,height:0};const y=v.internals.userNode,{x:m,y:b}=v.internals.positionAbsolute,{width:h,height:x}=ke(y);return{node:y,x:m,y:b,width:h,height:x}},ne);return!c||c.hidden||!ei(c)?null:A.jsx(a,{x:u,y:d,width:f,height:p,style:c.style,selected:!!c.selected,className:o(c),color:t(c),borderRadius:r,strokeColor:n(c),strokeWidth:i,shapeRendering:s,onClick:l,id:c.id})}const eg=D.memo(Jh);var tg=D.memo(Qh);const ng=200,og=150,rg=e=>!e.hidden,ig=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?Qr(St(e.nodeLookup,{filter:rg}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},sg="react-flow__minimap-desc";function es({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:u,maskStrokeWidth:d,position:f="bottom-right",onClick:p,onNodeClick:g,pannable:v=!1,zoomable:y=!1,ariaLabel:m,inversePan:b,zoomStep:h=1,offsetScale:x=5}){const S=oe(),_=D.useRef(null),{boundingRect:C,viewBB:k,rfId:$,panZoom:B,translateExtent:M,flowWidth:z,flowHeight:R,ariaLabelConfig:w}=ee(ig,ne),N=e?.width??ng,E=e?.height??og,I=C.width/N,T=C.height/E,P=Math.max(I,T),V=P*N,O=P*E,L=x*P,j=C.x-(V-C.width)/2-L,X=C.y-(O-C.height)/2-L,q=V+L*2,Q=O+L*2,W=`${sg}-${$}`,H=D.useRef(0),F=D.useRef();H.current=P,D.useEffect(()=>{if(_.current&&B)return F.current=Nd({domNode:_.current,panZoom:B,getTransform:()=>S.getState().transform,getViewScale:()=>H.current}),()=>{F.current?.destroy()}},[B]),D.useEffect(()=>{F.current?.update({translateExtent:M,width:z,height:R,inversePan:b,pannable:v,zoomStep:h,zoomable:y})},[v,y,b,h,M,z,R]);const U=p?G=>{const[J,te]=F.current?.pointer(G)||[0,0];p(G,{x:J,y:te})}:void 0,K=g?D.useCallback((G,J)=>{const te=S.getState().nodeLookup.get(J).internals.userNode;g(G,te)},[]):void 0,Y=m??w["minimap.ariaLabel"];return A.jsx(an,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d=="number"?d*P:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:ie(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:A.jsxs("svg",{width:N,height:E,viewBox:`${j} ${X} ${q} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":W,ref:_,onClick:U,children:[Y&&A.jsx("title",{id:W,children:Y}),A.jsx(tg,{onClick:K,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:s,nodeComponent:a}),A.jsx("path",{className:"react-flow__minimap-mask",d:`M${j-L},${X-L}h${q+L*2}v${Q+L*2}h${-q-L*2}z
15
- M${k.x},${k.y}h${k.width}v${k.height}h${-k.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}es.displayName="MiniMap";const yg=D.memo(es),ag=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,cg={[ot.Line]:"right",[ot.Handle]:"bottom-right"};function lg({nodeId:e,position:t,variant:n=ot.Handle,className:o,style:r=void 0,children:i,color:s,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:g,onResizeStart:v,onResize:y,onResizeEnd:m}){const b=Pi(),h=typeof e=="string"?e:b,x=oe(),S=D.useRef(null),_=n===ot.Handle,C=ee(D.useCallback(ag(_&&p),[_,p]),ne),k=D.useRef(null),$=t??cg[n];D.useEffect(()=>{if(!(!S.current||!h))return k.current||(k.current=Ld({domNode:S.current,nodeId:h,getStoreItems:()=>{const{nodeLookup:M,transform:z,snapGrid:R,snapToGrid:w,nodeOrigin:N,domNode:E}=x.getState();return{nodeLookup:M,transform:z,snapGrid:R,snapToGrid:w,nodeOrigin:N,paneDomNode:E}},onChange:(M,z)=>{const{triggerNodeChanges:R,nodeLookup:w,parentLookup:N,nodeOrigin:E}=x.getState(),I=[],T={x:M.x,y:M.y},P=w.get(h);if(P&&P.expandParent&&P.parentId){const V=P.origin??E,O=M.width??P.measured.width??0,L=M.height??P.measured.height??0,j={id:P.id,parentId:P.parentId,rect:{width:O,height:L,...ti({x:M.x??P.position.x,y:M.y??P.position.y},{width:O,height:L},P.parentId,w,V)}},X=Jn([j],w,N,E);I.push(...X),T.x=M.x?Math.max(V[0]*O,M.x):void 0,T.y=M.y?Math.max(V[1]*L,M.y):void 0}if(T.x!==void 0&&T.y!==void 0){const V={id:h,type:"position",position:{...T}};I.push(V)}if(M.width!==void 0&&M.height!==void 0){const O={id:h,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:M.width,height:M.height}};I.push(O)}for(const V of z){const O={...V,type:"position"};I.push(O)}R(I)},onEnd:({width:M,height:z})=>{const R={id:h,type:"dimensions",resizing:!1,dimensions:{width:M,height:z}};x.getState().triggerNodeChanges([R])}})),k.current.update({controlPosition:$,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:v,onResize:y,onResizeEnd:m,shouldResize:g}),()=>{k.current?.destroy()}},[$,a,l,c,u,d,v,y,m,g]);const B=$.split("-");return A.jsx("div",{className:ie(["react-flow__resize-control","nodrag",...B,n,o]),ref:S,style:{...r,scale:C,...s&&{[_?"backgroundColor":"borderColor"]:s}},children:i})}D.memo(lg);export{pg as B,mg as C,Gt as H,yg as M,Z as P,zh as R,gg as a,eo as b,fg as i,hg as u};
14
+ `)),u=c.reduce((d,f)=>d.concat(...f),[]);return[c,u]}return[[],[]]},[e]);return D.useEffect(()=>{const l=t?.target??Uo,c=t?.actInsideInputWithModifier??!0;if(e!==null){const u=p=>{if(r.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!r.current||r.current&&!c)&&oi(p))return!1;const v=Jo(p.code,a);if(i.current.add(p[v]),Qo(s,i.current,!1)){const y=p.composedPath?.()?.[0]||p.target,m=y?.nodeName==="BUTTON"||y?.nodeName==="A";t.preventDefault!==!1&&(r.current||!m)&&p.preventDefault(),o(!0)}},d=p=>{const g=Jo(p.code,a);Qo(s,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(p[g]),p.key==="Meta"&&i.current.clear(),r.current=!1},f=()=>{i.current.clear(),o(!1)};return l?.addEventListener("keydown",u),l?.addEventListener("keyup",d),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l?.removeEventListener("keydown",u),l?.removeEventListener("keyup",d),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function Qo(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function Jo(e,t){return t.includes(e)?"code":"key"}const gf=()=>{const e=oe();return D.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),!0):!1},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:s,panZoom:a}=e.getState(),l=Wn(t,o,r,i,s,n?.padding??.1);return a?(await a.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:a,y:l}=s.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},u=n.snapGrid??r,d=n.snapToGrid??i;return it(c,o,d,u)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),s=ot(t,n);return{x:s.x+r,y:s.y+i}}}),[])};function Ni(e,t){const n=[],o=new Map,r=[];for(const i of e)if(i.type==="add"){r.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const s=o.get(i.id);s?s.push(i):o.set(i.id,[i])}for(const i of t){const s=o.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const l of s)pf(l,a);n.push(a)}return r.length&&r.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function pf(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 Ci(e,t){return Ni(e,t)}function Mi(e,t){return Ni(e,t)}function Re(e,t){return{id:e,type:"select",selected:t}}function qe(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const s=t.has(r);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),o.push(Re(i.id,s)))}return o}function er({items:e=[],lookup:t}){const n=[],o=new Map(e.map(r=>[r.id,r]));for(const[r,i]of e.entries()){const s=t.get(i.id),a=s?.internals?.userNode??s;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:"replace"}),a===void 0&&n.push({item:i,type:"add",index:r})}for(const[r]of t)o.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function tr(e){return{id:e.id,type:"remove"}}const mf=Jr();function yf(e,t,n={}){return od(e,t,{...n,onError:n.onError??mf})}const nr=e=>Fu(e),xf=e=>Gr(e);function Ii(e){return D.forwardRef(e)}const wf=typeof window<"u"?D.useLayoutEffect:D.useEffect;function or(e){const[t,n]=D.useState(BigInt(0)),[o]=D.useState(()=>vf(()=>n(r=>r+BigInt(1))));return wf(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function vf(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const ki=D.createContext(null);function bf({children:e}){const t=oe(),n=D.useCallback(a=>{const{nodes:l=[],setNodes:c,hasDefaultNodes:u,onNodesChange:d,nodeLookup:f,fitViewQueued:p,onNodesChangeMiddlewareMap:g}=t.getState();let v=l;for(const m of a)v=typeof m=="function"?m(v):m;let y=er({items:v,lookup:f});for(const m of g.values())y=m(y);u&&c(v),y.length>0?d?.(y):p&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:b,setNodes:h}=t.getState();m&&h(b)})},[]),o=or(n),r=D.useCallback(a=>{const{edges:l=[],setEdges:c,hasDefaultEdges:u,onEdgesChange:d,edgeLookup:f}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;u?c(p):d&&d(er({items:p,lookup:f}))},[]),i=or(r),s=D.useMemo(()=>({nodeQueue:o,edgeQueue:i}),[]);return A.jsx(ki.Provider,{value:s,children:e})}function _f(){const e=D.useContext(ki);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Ef=e=>!!e.panZoom;function eo(){const e=gf(),t=oe(),n=_f(),o=ee(Ef),r=D.useMemo(()=>{const i=d=>t.getState().nodeLookup.get(d),s=d=>{n.nodeQueue.push(d)},a=d=>{n.edgeQueue.push(d)},l=d=>{const{nodeLookup:f,nodeOrigin:p}=t.getState(),g=nr(d)?d:f.get(d.id),v=g.parentId?ti(g.position,g.measured,g.parentId,f,p):g.position,y={...g,position:v,width:g.measured?.width??g.width,height:g.measured?.height??g.height};return nt(y)},c=(d,f,p={replace:!1})=>{s(g=>g.map(v=>{if(v.id===d){const y=typeof f=="function"?f(v):f;return p.replace&&nr(y)?y:{...v,...y}}return v}))},u=(d,f,p={replace:!1})=>{a(g=>g.map(v=>{if(v.id===d){const y=typeof f=="function"?f(v):f;return p.replace&&xf(y)?y:{...v,...y}}return v}))};return{getNodes:()=>t.getState().nodes.map(d=>({...d})),getNode:d=>i(d)?.internals.userNode,getInternalNode:i,getEdges:()=>{const{edges:d=[]}=t.getState();return d.map(f=>({...f}))},getEdge:d=>t.getState().edgeLookup.get(d),setNodes:s,setEdges:a,addNodes:d=>{const f=Array.isArray(d)?d:[d];n.nodeQueue.push(p=>[...p,...f])},addEdges:d=>{const f=Array.isArray(d)?d:[d];n.edgeQueue.push(p=>[...p,...f])},toObject:()=>{const{nodes:d=[],edges:f=[],transform:p}=t.getState(),[g,v,y]=p;return{nodes:d.map(m=>({...m})),edges:f.map(m=>({...m})),viewport:{x:g,y:v,zoom:y}}},deleteElements:async({nodes:d=[],edges:f=[]})=>{const{nodes:p,edges:g,onNodesDelete:v,onEdgesDelete:y,triggerNodeChanges:m,triggerEdgeChanges:b,onDelete:h,onBeforeDelete:x}=t.getState(),{nodes:S,edges:_}=await Wu({nodesToRemove:d,edgesToRemove:f,nodes:p,edges:g,onBeforeDelete:x}),C=_.length>0,k=S.length>0;if(C){const $=_.map(tr);y?.(_),b($)}if(k){const $=S.map(tr);v?.(S),m($)}return(k||C)&&h?.({nodes:S,edges:_}),{deletedNodes:S,deletedEdges:_}},getIntersectingNodes:(d,f=!0,p)=>{const g=Ao(d),v=g?d:l(d),y=p!==void 0;return v?(p||t.getState().nodes).filter(m=>{const b=t.getState().nodeLookup.get(m.id);if(b&&!g&&(m.id===d.id||!b.internals.positionAbsolute))return!1;const h=nt(y?m:b),x=xt(h,v);return f&&x>0||x>=h.width*h.height||x>=v.width*v.height}):[]},isNodeIntersecting:(d,f,p=!0)=>{const v=Ao(d)?d:l(d);if(!v)return!1;const y=xt(v,f);return p&&y>0||y>=f.width*f.height||y>=v.width*v.height},updateNode:c,updateNodeData:(d,f,p={replace:!1})=>{c(d,g=>{const v=typeof f=="function"?f(g):f;return p.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},p)},updateEdge:u,updateEdgeData:(d,f,p={replace:!1})=>{u(d,g=>{const v=typeof f=="function"?f(g):f;return p.replace?{...g,data:v}:{...g,data:{...g.data,...v}}},p)},getNodesBounds:d=>{const{nodeLookup:f,nodeOrigin:p}=t.getState();return Xu(d,{nodeLookup:f,nodeOrigin:p})},getHandleConnections:({type:d,id:f,nodeId:p})=>Array.from(t.getState().connectionLookup.get(`${p}-${d}${f?`-${f}`:""}`)?.values()??[]),getNodeConnections:({type:d,handleId:f,nodeId:p})=>Array.from(t.getState().connectionLookup.get(`${p}${d?f?`-${d}-${f}`:`-${d}`:""}`)?.values()??[]),fitView:async d=>{const f=t.getState().fitViewResolver??Ku();return t.setState({fitViewQueued:!0,fitViewOptions:d,fitViewResolver:f}),n.nodeQueue.push(p=>[...p]),f.promise}}},[]);return D.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const rr=e=>e.selected,Sf=typeof window<"u"?window:void 0;function Nf({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=oe(),{deleteElements:o}=eo(),r=vt(e,{actInsideInputWithModifier:!1}),i=vt(t,{target:Sf});D.useEffect(()=>{if(r){const{edges:s,nodes:a}=n.getState();o({nodes:a.filter(rr),edges:s.filter(rr)}),n.setState({nodesSelectionActive:!1})}},[r]),D.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Cf(e){const t=oe();D.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=qn(e.current);(o.height===0||o.width===0)&&t.getState().onError?.("004",pe.error004()),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const cn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Mf=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function If({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=Oe.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:c,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:g,noWheelClassName:v,noPanClassName:y,onViewportChange:m,isControlledViewport:b,paneClickDistance:h,selectionOnDrag:x}){const S=oe(),_=D.useRef(null),{userSelectionActive:C,lib:k,connectionInProgress:$}=ee(Mf,ne),B=vt(f),M=D.useRef();Cf(_);const z=D.useCallback(R=>{m?.({x:R[0],y:R[1],zoom:R[2]}),b||S.setState({transform:R})},[m,b]);return D.useEffect(()=>{if(_.current){M.current=Dd({domNode:_.current,minZoom:u,maxZoom:d,translateExtent:c,viewport:l,onDraggingChange:E=>S.setState(I=>I.paneDragging===E?I:{paneDragging:E}),onPanZoomStart:(E,I)=>{const{onViewportChangeStart:T,onMoveStart:P}=S.getState();P?.(E,I),T?.(I)},onPanZoom:(E,I)=>{const{onViewportChange:T,onMove:P}=S.getState();P?.(E,I),T?.(I)},onPanZoomEnd:(E,I)=>{const{onViewportChangeEnd:T,onMoveEnd:P}=S.getState();P?.(E,I),T?.(I)}});const{x:R,y:w,zoom:N}=M.current.getViewport();return S.setState({panZoom:M.current,transform:[R,w,N],domNode:_.current.closest(".react-flow")}),()=>{M.current?.destroy()}}},[]),D.useEffect(()=>{M.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:B,preventScrolling:p,noPanClassName:y,userSelectionActive:C,noWheelClassName:v,lib:k,onTransformChange:z,connectionInProgress:$,selectionOnDrag:x,paneClickDistance:h})},[e,t,n,o,r,i,s,a,B,p,y,C,v,k,z,$,x,h]),A.jsx("div",{className:"react-flow__renderer",ref:_,style:cn,children:g})}const kf=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Af(){const{userSelectionActive:e,userSelectionRect:t}=ee(kf,ne);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 bn=(e,t)=>n=>{n.target===t.current&&e?.(n)},$f=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Pf({isSelecting:e,selectionKeyPressed:t,selectionMode:n=yt.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:i,selectionOnDrag:s,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:g,children:v}){const y=D.useRef(0),m=oe(),{userSelectionActive:b,elementsSelectable:h,dragging:x,connectionInProgress:S,panBy:_,autoPanSpeed:C}=ee($f,ne),k=h&&(e||b),$=D.useRef(null),B=D.useRef(),M=D.useRef(new Set),z=D.useRef(new Set),R=D.useRef(!1),w=D.useRef({x:0,y:0}),N=D.useRef(!1),E=H=>{if(R.current||S){R.current=!1;return}c?.(H),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},I=H=>{if(Array.isArray(o)&&o?.includes(2)){H.preventDefault();return}u?.(H)},T=d?H=>d(H):void 0,P=H=>{R.current&&(H.stopPropagation(),R.current=!1)},V=H=>{const{domNode:F,transform:U}=m.getState();if(B.current=F?.getBoundingClientRect(),!B.current)return;const K=H.target===$.current;if(!K&&!!H.target.closest(".nokey")||!e||!(s&&K||t)||H.button!==0||!H.isPrimary)return;H.target?.setPointerCapture?.(H.pointerId),R.current=!1;const{x:J,y:te}=ge(H.nativeEvent,B.current),re=it({x:J,y:te},U);m.setState({userSelectionRect:{width:0,height:0,startX:re.x,startY:re.y,x:J,y:te}}),K||(H.stopPropagation(),H.preventDefault())};function O(H,F){const{userSelectionRect:U}=m.getState();if(!U)return;const{transform:K,nodeLookup:Y,edgeLookup:G,connectionLookup:J,triggerNodeChanges:te,triggerEdgeChanges:re,defaultEdgeOptions:se}=m.getState(),_e={x:U.startX,y:U.startY},{x:ye,y:xe}=ot(_e,K),Ee={startX:_e.x,startY:_e.y,x:H<ye?H:ye,y:F<xe?F:xe,width:Math.abs(H-ye),height:Math.abs(F-xe)},st=M.current,Te=z.current;M.current=new Set(Yn(Y,Ee,K,n===yt.Partial,!0).map(ue=>ue.id)),z.current=new Set;const ze=se?.selectable??!0;for(const ue of M.current){const Se=J.get(ue);if(Se)for(const{edgeId:Ne}of Se.values()){const He=G.get(Ne);He&&(He.selectable??ze)&&z.current.add(Ne)}}if(!$o(st,M.current)){const ue=qe(Y,M.current,!0);te(ue)}if(!$o(Te,z.current)){const ue=qe(G,z.current);re(ue)}m.setState({userSelectionRect:Ee,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!r||!B.current)return;const[H,F]=Zn(w.current,B.current,C);_({x:H,y:F}).then(U=>{if(!R.current||!U){y.current=requestAnimationFrame(L);return}const{x:K,y:Y}=w.current;O(K,Y),y.current=requestAnimationFrame(L)})}const j=()=>{cancelAnimationFrame(y.current),y.current=0,N.current=!1};D.useEffect(()=>()=>j(),[]);const X=H=>{const{userSelectionRect:F,transform:U,resetSelectedElements:K}=m.getState();if(!B.current||!F)return;const{x:Y,y:G}=ge(H.nativeEvent,B.current);w.current={x:Y,y:G};const J=ot({x:F.startX,y:F.startY},U);if(!R.current){const te=t?0:i;if(Math.hypot(Y-J.x,G-J.y)<=te)return;K(),a?.(H)}R.current=!0,N.current||(L(),N.current=!0),O(Y,G)},q=H=>{H.button===0&&(H.target?.releasePointerCapture?.(H.pointerId),!b&&H.target===$.current&&m.getState().userSelectionRect&&E?.(H),m.setState({userSelectionActive:!1,userSelectionRect:null}),R.current&&(l?.(H),m.setState({nodesSelectionActive:M.current.size>0})),j())},Q=H=>{H.target?.releasePointerCapture?.(H.pointerId),j()},W=o===!0||Array.isArray(o)&&o.includes(0);return A.jsxs("div",{className:ie(["react-flow__pane",{draggable:W,dragging:x,selection:e}]),onClick:k?void 0:bn(E,$),onContextMenu:bn(I,$),onWheel:bn(T,$),onPointerEnter:k?void 0:f,onPointerMove:k?X:p,onPointerUp:k?q:void 0,onPointerCancel:k?Q:void 0,onPointerDownCapture:k?V:void 0,onClickCapture:k?P:void 0,onPointerLeave:g,ref:$,style:cn,children:[v,A.jsx(Af,{})]})}function Hn({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l?.("012",pe.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&s)&&(i({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Ai({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:s}){const a=oe(),[l,c]=D.useState(!1),u=D.useRef();return D.useEffect(()=>{u.current=wd({getStoreItems:()=>a.getState(),onNodeMouseDown:d=>{Hn({id:d,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),D.useEffect(()=>{if(!(t||!e.current||!u.current))return u.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:s}),()=>{u.current?.destroy()}},[n,o,t,i,e,r,s]),l}const Df=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function $i(){const e=oe();return D.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:l,nodeLookup:c,nodeOrigin:u}=e.getState(),d=new Map,f=Df(s),p=r?i[0]:5,g=r?i[1]:5,v=n.direction.x*p*n.factor,y=n.direction.y*g*n.factor;for(const[,m]of c){if(!f(m))continue;let b={x:m.internals.positionAbsolute.x+v,y:m.internals.positionAbsolute.y+y};r&&(b=Nt(b,i));const{position:h,positionAbsolute:x}=Kr({nodeId:m.id,nextPosition:b,nodeLookup:c,nodeExtent:o,nodeOrigin:u,onError:a});m.position=h,m.internals.positionAbsolute=x,d.set(m.id,m)}l(d)},[])}const to=D.createContext(null),Tf=to.Provider;to.Consumer;const Pi=()=>D.useContext(to),zf=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Hf=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:i,connection:s}=o,{fromHandle:a,toHandle:l,isValid:c}=s,u=l?.nodeId===e&&l?.id===t&&l?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:u,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:i===et.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:u&&c}};function Rf({type:e="source",position:t=Z.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:l,className:c,onMouseDown:u,onTouchStart:d,...f},p){const g=s||null,v=e==="target",y=oe(),m=Pi(),{connectOnClick:b,noPanClassName:h,rfId:x}=ee(zf,ne),{connectingFrom:S,connectingTo:_,clickConnecting:C,isPossibleEndHandle:k,connectionInProcess:$,clickConnectionInProcess:B,valid:M}=ee(Hf(m,g,e),ne);m||y.getState().onError?.("010",pe.error010());const z=N=>{const{defaultEdgeOptions:E,onConnect:I,hasDefaultEdges:T}=y.getState(),P={...E,...N};if(T){const{edges:V,setEdges:O,onError:L}=y.getState();O(yf(P,V,{onError:L}))}I?.(P),a?.(P)},R=N=>{if(!m)return;const E=ri(N.nativeEvent);if(r&&(E&&N.button===0||!E)){const I=y.getState();zn.onPointerDown(N.nativeEvent,{handleDomNode:N.currentTarget,autoPanOnConnect:I.autoPanOnConnect,connectionMode:I.connectionMode,connectionRadius:I.connectionRadius,domNode:I.domNode,nodeLookup:I.nodeLookup,lib:I.lib,isTarget:v,handleId:g,nodeId:m,flowId:I.rfId,panBy:I.panBy,cancelConnection:I.cancelConnection,onConnectStart:I.onConnectStart,onConnectEnd:(...T)=>y.getState().onConnectEnd?.(...T),updateConnection:I.updateConnection,onConnect:z,isValidConnection:n||((...T)=>y.getState().isValidConnection?.(...T)??!0),getTransform:()=>y.getState().transform,getFromHandle:()=>y.getState().connection.fromHandle,autoPanSpeed:I.autoPanSpeed,dragThreshold:I.connectionDragThreshold})}E?u?.(N):d?.(N)},w=N=>{const{onClickConnectStart:E,onClickConnectEnd:I,connectionClickStartHandle:T,connectionMode:P,isValidConnection:V,lib:O,rfId:L,nodeLookup:j,connection:X}=y.getState();if(!m||!T&&!r)return;if(!T){E?.(N.nativeEvent,{nodeId:m,handleId:g,handleType:e}),y.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const q=ni(N.target),Q=n||V,{connection:W,isValid:H}=zn.isValid(N.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:P,fromNodeId:T.nodeId,fromHandleId:T.id||null,fromType:T.type,isValidConnection:Q,flowId:L,doc:q,lib:O,nodeLookup:j});H&&W&&z(W);const F=structuredClone(X);delete F.inProgress,F.toPosition=F.toHandle?F.toHandle.position:null,I?.(N,F),y.setState({connectionClickStartHandle:null})};return A.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${x}-${m}-${g}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",h,c,{source:!v,target:v,connectable:o,connectablestart:r,connectableend:i,clickconnecting:C,connectingfrom:S,connectingto:_,valid:M,connectionindicator:o&&(!$||k)&&($||B?i:r)}]),onMouseDown:R,onTouchStart:R,onClick:b?w:void 0,ref:p,...f,children:l})}const Gt=D.memo(Ii(Rf));function Lf({data:e,isConnectable:t,sourcePosition:n=Z.Bottom}){return A.jsxs(A.Fragment,{children:[e?.label,A.jsx(Gt,{type:"source",position:n,isConnectable:t})]})}function Vf({data:e,isConnectable:t,targetPosition:n=Z.Top,sourcePosition:o=Z.Bottom}){return A.jsxs(A.Fragment,{children:[A.jsx(Gt,{type:"target",position:n,isConnectable:t}),e?.label,A.jsx(Gt,{type:"source",position:o,isConnectable:t})]})}function Of(){return null}function Bf({data:e,isConnectable:t,targetPosition:n=Z.Top}){return A.jsxs(A.Fragment,{children:[A.jsx(Gt,{type:"target",position:n,isConnectable:t}),e?.label]})}const Kt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},ir={input:Lf,default:Vf,output:Bf,group:Of};function Ff(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}const Xf=e=>{const{width:t,height:n,x:o,y:r}=St(e.nodeLookup,{filter:i=>!!i.selected});return{width:he(t)?t:null,height:he(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function jf({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=oe(),{width:r,height:i,transformString:s,userSelectionActive:a}=ee(Xf,ne),l=$i(),c=D.useRef(null);D.useEffect(()=>{n||c.current?.focus({preventScroll:!0})},[n]);const u=!a&&r!==null&&i!==null;if(Ai({nodeRef:c,disabled:!u}),!u)return null;const d=e?p=>{const g=o.getState().nodes.filter(v=>v.selected);e(p,g)}:void 0,f=p=>{Object.prototype.hasOwnProperty.call(Kt,p.key)&&(p.preventDefault(),l({direction:Kt[p.key],factor:p.shiftKey?4:1}))};return A.jsx("div",{className:ie(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:A.jsx("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:r,height:i}})})}const sr=typeof window<"u"?window:void 0,Yf=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Di({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:v,zoomActivationKeyCode:y,elementsSelectable:m,zoomOnScroll:b,zoomOnPinch:h,panOnScroll:x,panOnScrollSpeed:S,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:k,autoPanOnSelection:$,defaultViewport:B,translateExtent:M,minZoom:z,maxZoom:R,preventScrolling:w,onSelectionContextMenu:N,noWheelClassName:E,noPanClassName:I,disableKeyboardA11y:T,onViewportChange:P,isControlledViewport:V}){const{nodesSelectionActive:O,userSelectionActive:L}=ee(Yf,ne),j=vt(c,{target:sr}),X=vt(v,{target:sr}),q=X||k,Q=X||x,W=u&&q!==!0,H=j||L||W;return Nf({deleteKeyCode:l,multiSelectionKeyCode:g}),A.jsx(If,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:b,zoomOnPinch:h,panOnScroll:Q,panOnScrollSpeed:S,panOnScrollMode:_,zoomOnDoubleClick:C,panOnDrag:!j&&q,defaultViewport:B,translateExtent:M,minZoom:z,maxZoom:R,zoomActivationKeyCode:y,preventScrolling:w,noWheelClassName:E,noPanClassName:I,onViewportChange:P,isControlledViewport:V,paneClickDistance:a,selectionOnDrag:W,children:A.jsxs(Pf,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:q,autoPanOnSelection:$,isSelecting:!!H,selectionMode:d,selectionKeyPressed:j,paneClickDistance:a,selectionOnDrag:W,children:[e,O&&A.jsx(jf,{onSelectionContextMenu:N,noPanClassName:I,disableKeyboardA11y:T})]})})}Di.displayName="FlowRenderer";const Zf=D.memo(Di),Wf=e=>t=>e?Yn(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 qf(e){return ee(D.useCallback(Wf(e),[e]),ne)}const Gf=e=>e.updateNodeInternals;function Kf(){const e=ee(Gf),[t]=D.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(r=>{const i=r.target.getAttribute("data-id");o.set(i,{id:i,nodeElement:r.target,force:!0})}),e(o)}));return D.useEffect(()=>()=>{t?.disconnect()},[t]),t}function Uf({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=oe(),i=D.useRef(null),s=D.useRef(null),a=D.useRef(e.sourcePosition),l=D.useRef(e.targetPosition),c=D.useRef(t),u=n&&!!e.internals.handleBounds;return D.useEffect(()=>{i.current&&!e.hidden&&(!u||s.current!==i.current)&&(s.current&&o?.unobserve(s.current),o?.observe(i.current),s.current=i.current)},[u,e.hidden]),D.useEffect(()=>()=>{s.current&&(o?.unobserve(s.current),s.current=null)},[]),D.useEffect(()=>{if(i.current){const d=c.current!==t,f=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(d||f||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function Qf({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:g,rfId:v,nodeTypes:y,nodeClickDistance:m,onError:b}){const{node:h,internals:x,isParent:S}=ee(H=>{const F=H.nodeLookup.get(e),U=H.parentLookup.has(e);return{node:F,internals:F.internals,isParent:U}},ne);let _=h.type||"default",C=y?.[_]||ir[_];C===void 0&&(b?.("003",pe.error003(_)),_="default",C=y?.default||ir.default);const k=!!(h.draggable||a&&typeof h.draggable>"u"),$=!!(h.selectable||l&&typeof h.selectable>"u"),B=!!(h.connectable||c&&typeof h.connectable>"u"),M=!!(h.focusable||u&&typeof h.focusable>"u"),z=oe(),R=ei(h),w=Uf({node:h,nodeType:_,hasDimensions:R,resizeObserver:d}),N=Ai({nodeRef:w,disabled:h.hidden||!k,noDragClassName:f,handleSelector:h.dragHandle,nodeId:e,isSelectable:$,nodeClickDistance:m}),E=$i();if(h.hidden)return null;const I=ke(h),T=Ff(h),P=$||k||t||n||o||r,V=n?H=>n(H,{...x.userNode}):void 0,O=o?H=>o(H,{...x.userNode}):void 0,L=r?H=>r(H,{...x.userNode}):void 0,j=i?H=>i(H,{...x.userNode}):void 0,X=s?H=>s(H,{...x.userNode}):void 0,q=H=>{const{selectNodesOnDrag:F,nodeDragThreshold:U}=z.getState();$&&(!F||!k||U>0)&&Hn({id:e,store:z,nodeRef:w}),t&&t(H,{...x.userNode})},Q=H=>{if(!(oi(H.nativeEvent)||g)){if(Yr.includes(H.key)&&$){const F=H.key==="Escape";Hn({id:e,store:z,unselect:F,nodeRef:w})}else if(k&&h.selected&&Object.prototype.hasOwnProperty.call(Kt,H.key)){H.preventDefault();const{ariaLabelConfig:F}=z.getState();z.setState({ariaLiveMessage:F["node.a11yDescription.ariaLiveMessage"]({direction:H.key.replace("Arrow","").toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),E({direction:Kt[H.key],factor:H.shiftKey?4:1})}}},W=()=>{if(g||!w.current?.matches(":focus-visible"))return;const{transform:H,width:F,height:U,autoPanOnNodeFocus:K,setCenter:Y}=z.getState();if(!K)return;Yn(new Map([[e,h]]),{x:0,y:0,width:F,height:U},H,!0).length>0||Y(h.position.x+I.width/2,h.position.y+I.height/2,{zoom:H[2]})};return A.jsx("div",{className:ie(["react-flow__node",`react-flow__node-${_}`,{[p]:k},h.className,{selected:h.selected,selectable:$,parent:S,draggable:k,dragging:N}]),ref:w,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:P?"all":"none",visibility:R?"visible":"hidden",...h.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:V,onMouseMove:O,onMouseLeave:L,onContextMenu:j,onClick:q,onDoubleClick:X,onKeyDown:M?Q:void 0,tabIndex:M?0:void 0,onFocus:M?W:void 0,role:h.ariaRole??(M?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${_i}-${v}`,"aria-label":h.ariaLabel,...h.domAttributes,children:A.jsx(Tf,{value:e,children:A.jsx(C,{id:e,data:h.data,type:_,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:h.selected??!1,selectable:$,draggable:k,deletable:h.deletable??!0,isConnectable:B,sourcePosition:h.sourcePosition,targetPosition:h.targetPosition,dragging:N,dragHandle:h.dragHandle,zIndex:x.z,parentId:h.parentId,...I})})})}var Jf=D.memo(Qf);const eh=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Ti(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:i}=ee(eh,ne),s=qf(e.onlyRenderVisibleElements),a=Kf();return A.jsx("div",{className:"react-flow__nodes",style:cn,children:s.map(l=>A.jsx(Jf,{id:l,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:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},l))})}Ti.displayName="NodeRenderer";const th=D.memo(Ti);function nh(e){return ee(D.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const i=n.nodeLookup.get(r.source),s=n.nodeLookup.get(r.target);i&&s&&ed({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),ne)}const oh=({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"})},rh=({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"})},ar={[Wt.Arrow]:oh,[Wt.ArrowClosed]:rh};function ih(e){const t=oe();return D.useMemo(()=>Object.prototype.hasOwnProperty.call(ar,e)?ar[e]:(t.getState().onError?.("009",pe.error009(e)),null),[e])}const sh=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const l=ih(t);return l?A.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:A.jsx(l,{color:n,strokeWidth:s})}):null},zi=({defaultColor:e,rfId:t})=>{const n=ee(i=>i.edges),o=ee(i=>i.defaultEdgeOptions),r=D.useMemo(()=>cd(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?A.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:A.jsx("defs",{children:r.map(i=>A.jsx(sh,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};zi.displayName="MarkerDefinitions";var ah=D.memo(zi);function Hi({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...u}){const[d,f]=D.useState({x:1,y:0,width:0,height:0}),p=ie(["react-flow__edge-textwrapper",c]),g=D.useRef(null);return D.useEffect(()=>{if(g.current){const v=g.current.getBBox();f({x:v.x,y:v.y,width:v.width,height:v.height})}},[n]),n?A.jsxs("g",{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?"visible":"hidden",...u,children:[r&&A.jsx("rect",{width:d.width+2*s[0],x:-s[0],y:-s[1],height:d.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),A.jsx("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:g,style:o,children:n}),l]}):null}Hi.displayName="EdgeText";const ch=D.memo(Hi);function ln({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...u}){return A.jsxs(A.Fragment,{children:[A.jsx("path",{...u,d:e,fill:"none",className:ie(["react-flow__edge-path",u.className])}),c?A.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,o&&he(t)&&he(n)?A.jsx(ch,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function cr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===Z.Left||e===Z.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Ri({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:o,targetY:r,targetPosition:i=Z.Top}){const[s,a]=cr({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=cr({pos:i,x1:o,y1:r,x2:e,y2:t}),[u,d,f,p]=ii({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${s},${a} ${l},${c} ${o},${r}`,u,d,f,p]}function Li(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s,targetPosition:a,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,interactionWidth:m})=>{const[b,h,x]=Ri({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a}),S=e.isInternal?void 0:t;return A.jsx(ln,{id:S,path:b,labelX:h,labelY:x,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,interactionWidth:m})})}const lh=Li({isInternal:!1}),Vi=Li({isInternal:!0});lh.displayName="SimpleBezierEdge";Vi.displayName="SimpleBezierEdgeInternal";function Oi(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=Z.Bottom,targetPosition:g=Z.Top,markerEnd:v,markerStart:y,pathOptions:m,interactionWidth:b})=>{const[h,x,S]=Pn({sourceX:n,sourceY:o,sourcePosition:p,targetX:r,targetY:i,targetPosition:g,borderRadius:m?.borderRadius,offset:m?.offset,stepPosition:m?.stepPosition}),_=e.isInternal?void 0:t;return A.jsx(ln,{id:_,path:h,labelX:x,labelY:S,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:v,markerStart:y,interactionWidth:b})})}const Bi=Oi({isInternal:!1}),Fi=Oi({isInternal:!0});Bi.displayName="SmoothStepEdge";Fi.displayName="SmoothStepEdgeInternal";function Xi(e){return D.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return A.jsx(Bi,{...n,id:o,pathOptions:D.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const uh=Xi({isInternal:!1}),ji=Xi({isInternal:!0});uh.displayName="StepEdge";ji.displayName="StepEdgeInternal";function Yi(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:g,interactionWidth:v})=>{const[y,m,b]=ci({sourceX:n,sourceY:o,targetX:r,targetY:i}),h=e.isInternal?void 0:t;return A.jsx(ln,{id:h,path:y,labelX:m,labelY:b,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:g,interactionWidth:v})})}const dh=Yi({isInternal:!1}),Zi=Yi({isInternal:!0});dh.displayName="StraightEdge";Zi.displayName="StraightEdgeInternal";function Wi(e){return D.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s=Z.Bottom,targetPosition:a=Z.Top,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,pathOptions:m,interactionWidth:b})=>{const[h,x,S]=si({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a,curvature:m?.curvature}),_=e.isInternal?void 0:t;return A.jsx(ln,{id:_,path:h,labelX:x,labelY:S,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:g,markerEnd:v,markerStart:y,interactionWidth:b})})}const fh=Wi({isInternal:!1}),qi=Wi({isInternal:!0});fh.displayName="BezierEdge";qi.displayName="BezierEdgeInternal";const lr={default:qi,straight:Zi,step:ji,smoothstep:Fi,simplebezier:Vi},ur={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},hh=(e,t,n)=>n===Z.Left?e-t:n===Z.Right?e+t:e,gh=(e,t,n)=>n===Z.Top?e-t:n===Z.Bottom?e+t:e,dr="react-flow__edgeupdater";function fr({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:s,type:a}){return A.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:s,className:ie([dr,`${dr}-${a}`]),cx:hh(t,o,e),cy:gh(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function ph({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:s,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){const g=oe(),v=(x,S)=>{if(x.button!==0)return;const{autoPanOnConnect:_,domNode:C,connectionMode:k,connectionRadius:$,lib:B,onConnectStart:M,cancelConnection:z,nodeLookup:R,rfId:w,panBy:N,updateConnection:E}=g.getState(),I=S.type==="target",T=(O,L)=>{f(!1),d?.(O,n,S.type,L)},P=O=>c?.(n,O),V=(O,L)=>{f(!0),u?.(x,n,S.type),M?.(O,L)};zn.onPointerDown(x.nativeEvent,{autoPanOnConnect:_,connectionMode:k,connectionRadius:$,domNode:C,handleId:S.id,nodeId:S.nodeId,nodeLookup:R,isTarget:I,edgeUpdaterType:S.type,lib:B,flowId:w,cancelConnection:z,panBy:N,isValidConnection:(...O)=>g.getState().isValidConnection?.(...O)??!0,onConnect:P,onConnectStart:V,onConnectEnd:(...O)=>g.getState().onConnectEnd?.(...O),onReconnectEnd:T,updateConnection:E,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:x.currentTarget})},y=x=>v(x,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=x=>v(x,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),b=()=>p(!0),h=()=>p(!1);return A.jsxs(A.Fragment,{children:[(e===!0||e==="source")&&A.jsx(fr,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:y,onMouseEnter:b,onMouseOut:h,type:"source"}),(e===!0||e==="target")&&A.jsx(fr,{position:l,centerX:i,centerY:s,radius:t,onMouseDown:m,onMouseEnter:b,onMouseOut:h,type:"target"})]})}function mh({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:g,edgeTypes:v,noPanClassName:y,onError:m,disableKeyboardA11y:b}){let h=ee(Y=>Y.edgeLookup.get(e));const x=ee(Y=>Y.defaultEdgeOptions);h=x?{...x,...h}:h;let S=h.type||"default",_=v?.[S]||lr[S];_===void 0&&(m?.("011",pe.error011(S)),S="default",_=v?.default||lr.default);const C=!!(h.focusable||t&&typeof h.focusable>"u"),k=typeof d<"u"&&(h.reconnectable||n&&typeof h.reconnectable>"u"),$=!!(h.selectable||o&&typeof h.selectable>"u"),B=D.useRef(null),[M,z]=D.useState(!1),[R,w]=D.useState(!1),N=oe(),{zIndex:E,sourceX:I,sourceY:T,targetX:P,targetY:V,sourcePosition:O,targetPosition:L}=ee(D.useCallback(Y=>{const G=Y.nodeLookup.get(h.source),J=Y.nodeLookup.get(h.target);if(!G||!J)return{zIndex:h.zIndex,...ur};const te=ad({id:e,sourceNode:G,targetNode:J,sourceHandle:h.sourceHandle||null,targetHandle:h.targetHandle||null,connectionMode:Y.connectionMode,onError:m});return{zIndex:Ju({selected:h.selected,zIndex:h.zIndex,sourceNode:G,targetNode:J,elevateOnSelect:Y.elevateEdgesOnSelect,zIndexMode:Y.zIndexMode}),...te||ur}},[h.source,h.target,h.sourceHandle,h.targetHandle,h.selected,h.zIndex]),ne),j=D.useMemo(()=>h.markerStart?`url('#${Dn(h.markerStart,g)}')`:void 0,[h.markerStart,g]),X=D.useMemo(()=>h.markerEnd?`url('#${Dn(h.markerEnd,g)}')`:void 0,[h.markerEnd,g]);if(h.hidden||I===null||T===null||P===null||V===null)return null;const q=Y=>{const{addSelectedEdges:G,unselectNodesAndEdges:J,multiSelectionActive:te}=N.getState();$&&(N.setState({nodesSelectionActive:!1}),h.selected&&te?(J({nodes:[],edges:[h]}),B.current?.blur()):G([e])),r&&r(Y,h)},Q=i?Y=>{i(Y,{...h})}:void 0,W=s?Y=>{s(Y,{...h})}:void 0,H=a?Y=>{a(Y,{...h})}:void 0,F=l?Y=>{l(Y,{...h})}:void 0,U=c?Y=>{c(Y,{...h})}:void 0,K=Y=>{if(!b&&Yr.includes(Y.key)&&$){const{unselectNodesAndEdges:G,addSelectedEdges:J}=N.getState();Y.key==="Escape"?(B.current?.blur(),G({edges:[h]})):J([e])}};return A.jsx("svg",{style:{zIndex:E},children:A.jsxs("g",{className:ie(["react-flow__edge",`react-flow__edge-${S}`,h.className,y,{selected:h.selected,animated:h.animated,inactive:!$&&!r,updating:M,selectable:$}]),onClick:q,onDoubleClick:Q,onContextMenu:W,onMouseEnter:H,onMouseMove:F,onMouseLeave:U,onKeyDown:C?K:void 0,tabIndex:C?0:void 0,role:h.ariaRole??(C?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":h.ariaLabel===null?void 0:h.ariaLabel||`Edge from ${h.source} to ${h.target}`,"aria-describedby":C?`${Ei}-${g}`:void 0,ref:B,...h.domAttributes,children:[!R&&A.jsx(_,{id:e,source:h.source,target:h.target,type:h.type,selected:h.selected,animated:h.animated,selectable:$,deletable:h.deletable??!0,label:h.label,labelStyle:h.labelStyle,labelShowBg:h.labelShowBg,labelBgStyle:h.labelBgStyle,labelBgPadding:h.labelBgPadding,labelBgBorderRadius:h.labelBgBorderRadius,sourceX:I,sourceY:T,targetX:P,targetY:V,sourcePosition:O,targetPosition:L,data:h.data,style:h.style,sourceHandleId:h.sourceHandle,targetHandleId:h.targetHandle,markerStart:j,markerEnd:X,pathOptions:"pathOptions"in h?h.pathOptions:void 0,interactionWidth:h.interactionWidth}),k&&A.jsx(ph,{edge:h,isReconnectable:k,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:I,sourceY:T,targetX:P,targetY:V,sourcePosition:O,targetPosition:L,setUpdateHover:z,setReconnecting:w})]})})}var yh=D.memo(mh);const xh=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Gi({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:v}){const{edgesFocusable:y,edgesReconnectable:m,elementsSelectable:b,onError:h}=ee(xh,ne),x=nh(t);return A.jsxs("div",{className:"react-flow__edges",children:[A.jsx(ah,{defaultColor:e,rfId:n}),x.map(S=>A.jsx(yh,{id:S,edgesFocusable:y,edgesReconnectable:m,elementsSelectable:b,noPanClassName:r,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:h,edgeTypes:o,disableKeyboardA11y:v},S))]})}Gi.displayName="EdgeRenderer";const wh=D.memo(Gi),vh=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function bh({children:e}){const t=ee(vh);return A.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function _h(e){const t=eo(),n=D.useRef(!1);D.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Eh=e=>e.panZoom?.syncViewport;function Sh(e){const t=ee(Eh),n=oe();return D.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Nh(e){return e.connection.inProgress?{...e.connection,to:it(e.connection.to,e.transform)}:{...e.connection}}function Ch(e){return Nh}function Mh(e){const t=Ch();return ee(t,ne)}const Ih=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function kh({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:i,height:s,isValid:a,inProgress:l}=ee(Ih,ne);return!(i&&r&&l)?null:A.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:A.jsx("g",{className:ie(["react-flow__connection",qr(a)]),children:A.jsx(Ki,{style:t,type:n,CustomComponent:o,isValid:a})})})}const Ki=({style:e,type:t=Pe.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:i,fromNode:s,fromHandle:a,fromPosition:l,to:c,toNode:u,toHandle:d,toPosition:f,pointer:p}=Mh();if(!r)return;if(n)return A.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:f,connectionStatus:qr(o),toNode:u,toHandle:d,pointer:p});let g="";const v={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:f};switch(t){case Pe.Bezier:[g]=si(v);break;case Pe.SimpleBezier:[g]=Ri(v);break;case Pe.Step:[g]=Pn({...v,borderRadius:0});break;case Pe.SmoothStep:[g]=Pn(v);break;default:[g]=ci(v)}return A.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};Ki.displayName="ConnectionLine";const Ah={};function hr(e=Ah){D.useRef(e),oe(),D.useEffect(()=>{},[e])}function $h(){oe(),D.useRef(!1),D.useEffect(()=>{},[])}function Ui({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:v,connectionLineComponent:y,connectionLineContainerStyle:m,selectionKeyCode:b,selectionOnDrag:h,selectionMode:x,multiSelectionKeyCode:S,panActivationKeyCode:_,zoomActivationKeyCode:C,deleteKeyCode:k,onlyRenderVisibleElements:$,elementsSelectable:B,defaultViewport:M,translateExtent:z,minZoom:R,maxZoom:w,preventScrolling:N,defaultMarkerColor:E,zoomOnScroll:I,zoomOnPinch:T,panOnScroll:P,panOnScrollSpeed:V,panOnScrollMode:O,zoomOnDoubleClick:L,panOnDrag:j,autoPanOnSelection:X,onPaneClick:q,onPaneMouseEnter:Q,onPaneMouseMove:W,onPaneMouseLeave:H,onPaneScroll:F,onPaneContextMenu:U,paneClickDistance:K,nodeClickDistance:Y,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:te,onEdgeMouseLeave:re,reconnectRadius:se,onReconnect:_e,onReconnectStart:ye,onReconnectEnd:xe,noDragClassName:Ee,noWheelClassName:st,noPanClassName:Te,disableKeyboardA11y:ze,nodeExtent:ue,rfId:Se,viewport:Ne,onViewportChange:He}){return hr(e),hr(t),$h(),_h(n),Sh(Ne),A.jsx(Zf,{onPaneClick:q,onPaneMouseEnter:Q,onPaneMouseMove:W,onPaneMouseLeave:H,onPaneContextMenu:U,onPaneScroll:F,paneClickDistance:K,deleteKeyCode:k,selectionKeyCode:b,selectionOnDrag:h,selectionMode:x,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:_,zoomActivationKeyCode:C,elementsSelectable:B,zoomOnScroll:I,zoomOnPinch:T,zoomOnDoubleClick:L,panOnScroll:P,panOnScrollSpeed:V,panOnScrollMode:O,panOnDrag:j,autoPanOnSelection:X,defaultViewport:M,translateExtent:z,minZoom:R,maxZoom:w,onSelectionContextMenu:d,preventScrolling:N,noDragClassName:Ee,noWheelClassName:st,noPanClassName:Te,disableKeyboardA11y:ze,onViewportChange:He,isControlledViewport:!!Ne,children:A.jsxs(bh,{children:[A.jsx(wh,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:s,onReconnect:_e,onReconnectStart:ye,onReconnectEnd:xe,onlyRenderVisibleElements:$,onEdgeContextMenu:G,onEdgeMouseEnter:J,onEdgeMouseMove:te,onEdgeMouseLeave:re,reconnectRadius:se,defaultMarkerColor:E,noPanClassName:Te,disableKeyboardA11y:ze,rfId:Se}),A.jsx(kh,{style:v,type:g,component:y,containerStyle:m}),A.jsx("div",{className:"react-flow__edgelabel-renderer"}),A.jsx(th,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,nodeClickDistance:Y,onlyRenderVisibleElements:$,noPanClassName:Te,noDragClassName:Ee,disableKeyboardA11y:ze,nodeExtent:ue,rfId:Se}),A.jsx("div",{className:"react-flow__viewport-portal"})]})})}Ui.displayName="GraphView";const Ph=D.memo(Ui),Dh=Jr(),gr=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f="basic"}={})=>{const p=new Map,g=new Map,v=new Map,y=new Map,m=o??t??[],b=n??e??[],h=u??[0,0],x=d??mt;di(v,y,m);const{nodesInitialized:S}=Tn(b,p,g,{nodeOrigin:h,nodeExtent:x,zIndexMode:f});let _=[0,0,1];if(s&&r&&i){const C=St(p,{filter:M=>!!((M.width||M.initialWidth)&&(M.height||M.initialHeight))}),{x:k,y:$,zoom:B}=Wn(C,r,i,l,c,a?.padding??.1);_=[k,$,B]}return{rfId:"1",width:r??0,height:i??0,transform:_,nodes:b,nodesInitialized:S,nodeLookup:p,parentLookup:g,edges:m,edgeLookup:y,connectionLookup:v,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:mt,nodeExtent:x,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:et.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:h,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:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Wr},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Dh,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Zr,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Th=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>qd((p,g)=>{async function v(){const{nodeLookup:y,panZoom:m,fitViewOptions:b,fitViewResolver:h,width:x,height:S,minZoom:_,maxZoom:C}=g();m&&(await Zu({nodes:y,width:x,height:S,panZoom:m,minZoom:_,maxZoom:C},b),h?.resolve(!0),p({fitViewResolver:null}))}return{...gr({nodes:e,edges:t,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:o,zIndexMode:f}),setNodes:y=>{const{nodeLookup:m,parentLookup:b,nodeOrigin:h,elevateNodesOnSelect:x,fitViewQueued:S,zIndexMode:_,nodesSelectionActive:C}=g(),{nodesInitialized:k,hasSelectedNodes:$}=Tn(y,m,b,{nodeOrigin:h,nodeExtent:d,elevateNodesOnSelect:x,checkEquality:!0,zIndexMode:_}),B=C&&$;S&&k?(v(),p({nodes:y,nodesInitialized:k,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:B})):p({nodes:y,nodesInitialized:k,nodesSelectionActive:B})},setEdges:y=>{const{connectionLookup:m,edgeLookup:b}=g();di(m,b,y),p({edges:y})},setDefaultNodesAndEdges:(y,m)=>{if(y){const{setNodes:b}=g();b(y),p({hasDefaultNodes:!0})}if(m){const{setEdges:b}=g();b(m),p({hasDefaultEdges:!0})}},updateNodeInternals:y=>{const{triggerNodeChanges:m,nodeLookup:b,parentLookup:h,domNode:x,nodeOrigin:S,nodeExtent:_,debug:C,fitViewQueued:k,zIndexMode:$}=g(),{changes:B,updatedInternals:M}=pd(y,b,h,x,S,_,$);M&&(dd(b,h,{nodeOrigin:S,nodeExtent:_,zIndexMode:$}),k?(v(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),B?.length>0&&(C&&console.log("React Flow: trigger node changes",B),m?.(B)))},updateNodePositions:(y,m=!1)=>{const b=[];let h=[];const{nodeLookup:x,triggerNodeChanges:S,connection:_,updateConnection:C,onNodesChangeMiddlewareMap:k}=g();for(const[$,B]of y){const M=x.get($),z=!!(M?.expandParent&&M?.parentId&&B?.position),R={id:$,type:"position",position:z?{x:Math.max(0,B.position.x),y:Math.max(0,B.position.y)}:B.position,dragging:m};if(M&&_.inProgress&&_.fromNode.id===M.id){const w=Ye(M,_.fromHandle,Z.Left,!0);C({..._,from:w})}z&&M.parentId&&b.push({id:$,parentId:M.parentId,rect:{...B.internals.positionAbsolute,width:B.measured.width??0,height:B.measured.height??0}}),h.push(R)}if(b.length>0){const{parentLookup:$,nodeOrigin:B}=g(),M=Jn(b,x,$,B);h.push(...M)}for(const $ of k.values())h=$(h);S(h)},triggerNodeChanges:y=>{const{onNodesChange:m,setNodes:b,nodes:h,hasDefaultNodes:x,debug:S}=g();if(y?.length){if(x){const _=Ci(y,h);b(_)}S&&console.log("React Flow: trigger node changes",y),m?.(y)}},triggerEdgeChanges:y=>{const{onEdgesChange:m,setEdges:b,edges:h,hasDefaultEdges:x,debug:S}=g();if(y?.length){if(x){const _=Mi(y,h);b(_)}S&&console.log("React Flow: trigger edge changes",y),m?.(y)}},addSelectedNodes:y=>{const{multiSelectionActive:m,edgeLookup:b,nodeLookup:h,triggerNodeChanges:x,triggerEdgeChanges:S}=g();if(m){const _=y.map(C=>Re(C,!0));x(_);return}x(qe(h,new Set([...y]),!0)),S(qe(b))},addSelectedEdges:y=>{const{multiSelectionActive:m,edgeLookup:b,nodeLookup:h,triggerNodeChanges:x,triggerEdgeChanges:S}=g();if(m){const _=y.map(C=>Re(C,!0));S(_);return}S(qe(b,new Set([...y]))),x(qe(h,new Set,!0))},unselectNodesAndEdges:({nodes:y,edges:m}={})=>{const{edges:b,nodes:h,nodeLookup:x,triggerNodeChanges:S,triggerEdgeChanges:_}=g(),C=y||h,k=m||b,$=[];for(const M of C){if(!M.selected)continue;const z=x.get(M.id);z&&(z.selected=!1),$.push(Re(M.id,!1))}const B=[];for(const M of k)M.selected&&B.push(Re(M.id,!1));S($),_(B)},setMinZoom:y=>{const{panZoom:m,maxZoom:b}=g();m?.setScaleExtent([y,b]),p({minZoom:y})},setMaxZoom:y=>{const{panZoom:m,minZoom:b}=g();m?.setScaleExtent([b,y]),p({maxZoom:y})},setTranslateExtent:y=>{g().panZoom?.setTranslateExtent(y),p({translateExtent:y})},resetSelectedElements:()=>{const{edges:y,nodes:m,triggerNodeChanges:b,triggerEdgeChanges:h,elementsSelectable:x}=g();if(!x)return;const S=m.reduce((C,k)=>k.selected?[...C,Re(k.id,!1)]:C,[]),_=y.reduce((C,k)=>k.selected?[...C,Re(k.id,!1)]:C,[]);b(S),h(_)},setNodeExtent:y=>{const{nodes:m,nodeLookup:b,parentLookup:h,nodeOrigin:x,elevateNodesOnSelect:S,nodeExtent:_,zIndexMode:C}=g();y[0][0]===_[0][0]&&y[0][1]===_[0][1]&&y[1][0]===_[1][0]&&y[1][1]===_[1][1]||(Tn(m,b,h,{nodeOrigin:x,nodeExtent:y,elevateNodesOnSelect:S,checkEquality:!1,zIndexMode:C}),p({nodeExtent:y}))},panBy:y=>{const{transform:m,width:b,height:h,panZoom:x,translateExtent:S}=g();return md({delta:y,panZoom:x,transform:m,translateExtent:S,width:b,height:h})},setCenter:async(y,m,b)=>{const{width:h,height:x,maxZoom:S,panZoom:_}=g();if(!_)return!1;const C=typeof b?.zoom<"u"?b.zoom:S;return await _.setViewport({x:h/2-y*C,y:x/2-m*C,zoom:C},{duration:b?.duration,ease:b?.ease,interpolate:b?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Wr}})},updateConnection:y=>{p({connection:y})},reset:()=>p({...gr()})}},Object.is);function zh({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){const[g]=D.useState(()=>Th({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:c,minZoom:s,maxZoom:a,fitViewOptions:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return A.jsx(Gd,{value:g,children:A.jsx(bf,{children:p})})}function Hh({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:s,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return D.useContext(sn)?A.jsx(A.Fragment,{children:e}):A.jsx(zh,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}const Rh={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Lh({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:g,onConnectEnd:v,onClickConnectStart:y,onClickConnectEnd:m,onNodeMouseEnter:b,onNodeMouseMove:h,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:_,onNodeDragStart:C,onNodeDrag:k,onNodeDragStop:$,onNodesDelete:B,onEdgesDelete:M,onDelete:z,onSelectionChange:R,onSelectionDragStart:w,onSelectionDrag:N,onSelectionDragStop:E,onSelectionContextMenu:I,onSelectionStart:T,onSelectionEnd:P,onBeforeDelete:V,connectionMode:O,connectionLineType:L=Pe.Bezier,connectionLineStyle:j,connectionLineComponent:X,connectionLineContainerStyle:q,deleteKeyCode:Q="Backspace",selectionKeyCode:W="Shift",selectionOnDrag:H=!1,selectionMode:F=yt.Full,panActivationKeyCode:U="Space",multiSelectionKeyCode:K=wt()?"Meta":"Control",zoomActivationKeyCode:Y=wt()?"Meta":"Control",snapToGrid:G,snapGrid:J,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:re,nodesDraggable:se,autoPanOnNodeFocus:_e,nodesConnectable:ye,nodesFocusable:xe,nodeOrigin:Ee=Si,edgesFocusable:st,edgesReconnectable:Te,elementsSelectable:ze=!0,defaultViewport:ue=lf,minZoom:Se=.5,maxZoom:Ne=2,translateExtent:He=mt,preventScrolling:ts=!0,nodeExtent:un,defaultMarkerColor:ns="#b1b1b7",zoomOnScroll:os=!0,zoomOnPinch:rs=!0,panOnScroll:is=!1,panOnScrollSpeed:ss=.5,panOnScrollMode:as=Oe.Free,zoomOnDoubleClick:cs=!0,panOnDrag:ls=!0,onPaneClick:us,onPaneMouseEnter:ds,onPaneMouseMove:fs,onPaneMouseLeave:hs,onPaneScroll:gs,onPaneContextMenu:ps,paneClickDistance:ms=1,nodeClickDistance:ys=0,children:xs,onReconnect:ws,onReconnectStart:vs,onReconnectEnd:bs,onEdgeContextMenu:_s,onEdgeDoubleClick:Es,onEdgeMouseEnter:Ss,onEdgeMouseMove:Ns,onEdgeMouseLeave:Cs,reconnectRadius:Ms=10,onNodesChange:Is,onEdgesChange:ks,noDragClassName:As="nodrag",noWheelClassName:$s="nowheel",noPanClassName:no="nopan",fitView:oo,fitViewOptions:ro,connectOnClick:Ps,attributionPosition:Ds,proOptions:Ts,defaultEdgeOptions:zs,elevateNodesOnSelect:Hs=!0,elevateEdgesOnSelect:Rs=!1,disableKeyboardA11y:io=!1,autoPanOnConnect:Ls,autoPanOnNodeDrag:Vs,autoPanOnSelection:Os=!0,autoPanSpeed:Bs,connectionRadius:Fs,isValidConnection:Xs,onError:js,style:Ys,id:so,nodeDragThreshold:Zs,connectionDragThreshold:Ws,viewport:qs,onViewportChange:Gs,width:Ks,height:Us,colorMode:Qs="light",debug:Js,onScroll:ao,ariaLabelConfig:ea,zIndexMode:co="basic",...ta},na){const dn=so||"1",oa=hf(Qs),ra=D.useCallback(lo=>{lo.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ao?.(lo)},[ao]);return A.jsx("div",{"data-testid":"rf__wrapper",...ta,onScroll:ra,style:{...Ys,...Rh},ref:na,className:ie(["react-flow",r,oa]),id:so,role:"application",children:A.jsxs(Hh,{nodes:e,edges:t,width:Ks,height:Us,fitView:oo,fitViewOptions:ro,minZoom:Se,maxZoom:Ne,nodeOrigin:Ee,nodeExtent:un,zIndexMode:co,children:[A.jsx(ff,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:p,onConnectStart:g,onConnectEnd:v,onClickConnectStart:y,onClickConnectEnd:m,nodesDraggable:se,autoPanOnNodeFocus:_e,nodesConnectable:ye,nodesFocusable:xe,edgesFocusable:st,edgesReconnectable:Te,elementsSelectable:ze,elevateNodesOnSelect:Hs,elevateEdgesOnSelect:Rs,minZoom:Se,maxZoom:Ne,nodeExtent:un,onNodesChange:Is,onEdgesChange:ks,snapToGrid:G,snapGrid:J,connectionMode:O,translateExtent:He,connectOnClick:Ps,defaultEdgeOptions:zs,fitView:oo,fitViewOptions:ro,onNodesDelete:B,onEdgesDelete:M,onDelete:z,onNodeDragStart:C,onNodeDrag:k,onNodeDragStop:$,onSelectionDrag:N,onSelectionDragStart:w,onSelectionDragStop:E,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:no,nodeOrigin:Ee,rfId:dn,autoPanOnConnect:Ls,autoPanOnNodeDrag:Vs,autoPanSpeed:Bs,onError:js,connectionRadius:Fs,isValidConnection:Xs,selectNodesOnDrag:re,nodeDragThreshold:Zs,connectionDragThreshold:Ws,onBeforeDelete:V,debug:Js,ariaLabelConfig:ea,zIndexMode:co}),A.jsx(Ph,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:b,onNodeMouseMove:h,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:_,nodeTypes:i,edgeTypes:s,connectionLineType:L,connectionLineStyle:j,connectionLineComponent:X,connectionLineContainerStyle:q,selectionKeyCode:W,selectionOnDrag:H,selectionMode:F,deleteKeyCode:Q,multiSelectionKeyCode:K,panActivationKeyCode:U,zoomActivationKeyCode:Y,onlyRenderVisibleElements:te,defaultViewport:ue,translateExtent:He,minZoom:Se,maxZoom:Ne,preventScrolling:ts,zoomOnScroll:os,zoomOnPinch:rs,zoomOnDoubleClick:cs,panOnScroll:is,panOnScrollSpeed:ss,panOnScrollMode:as,panOnDrag:ls,autoPanOnSelection:Os,onPaneClick:us,onPaneMouseEnter:ds,onPaneMouseMove:fs,onPaneMouseLeave:hs,onPaneScroll:gs,onPaneContextMenu:ps,paneClickDistance:ms,nodeClickDistance:ys,onSelectionContextMenu:I,onSelectionStart:T,onSelectionEnd:P,onReconnect:ws,onReconnectStart:vs,onReconnectEnd:bs,onEdgeContextMenu:_s,onEdgeDoubleClick:Es,onEdgeMouseEnter:Ss,onEdgeMouseMove:Ns,onEdgeMouseLeave:Cs,reconnectRadius:Ms,defaultMarkerColor:ns,noDragClassName:As,noWheelClassName:$s,noPanClassName:no,rfId:dn,disableKeyboardA11y:io,nodeExtent:un,viewport:qs,onViewportChange:Gs}),A.jsx(cf,{onSelectionChange:R}),xs,A.jsx(nf,{proOptions:Ts,position:Ds}),A.jsx(tf,{rfId:dn,disableKeyboardA11y:io})]})})}var gg=Ii(Lh);function pg(e){const[t,n]=D.useState(e),o=D.useCallback(r=>n(i=>Ci(r,i)),[]);return[t,n,o]}function mg(e){const[t,n]=D.useState(e),o=D.useCallback(r=>n(i=>Mi(r,i)),[]);return[t,n,o]}function Vh({dimensions:e,lineWidth:t,variant:n,className:o}){return A.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ie(["react-flow__background-pattern",n,o])})}function Oh({radius:e,className:t}){return A.jsx("circle",{cx:e,cy:e,r:e,className:ie(["react-flow__background-pattern","dots",t])})}var De;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(De||(De={}));const Bh={[De.Dots]:1,[De.Lines]:1,[De.Cross]:6},Fh=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Qi({id:e,variant:t=De.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:s,bgColor:a,style:l,className:c,patternClassName:u}){const d=D.useRef(null),{transform:f,patternId:p}=ee(Fh,ne),g=o||Bh[t],v=t===De.Dots,y=t===De.Cross,m=Array.isArray(n)?n:[n,n],b=[m[0]*f[2]||1,m[1]*f[2]||1],h=g*f[2],x=Array.isArray(i)?i:[i,i],S=y?[h,h]:b,_=[x[0]*f[2]||1+S[0]/2,x[1]*f[2]||1+S[1]/2],C=`${p}${e||""}`;return A.jsxs("svg",{className:ie(["react-flow__background",c]),style:{...l,...cn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:d,"data-testid":"rf__background",children:[A.jsx("pattern",{id:C,x:f[0]%b[0],y:f[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:v?A.jsx(Oh,{radius:h/2,className:u}):A.jsx(Vh,{dimensions:S,lineWidth:r,variant:t,className:u})}),A.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${C})`})]})}Qi.displayName="Background";const yg=D.memo(Qi);function Xh(){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 jh(){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 Yh(){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 Zh(){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 Wh(){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 Tt({children:e,className:t,...n}){return A.jsx("button",{type:"button",className:ie(["react-flow__controls-button",t]),...n,children:e})}const qh=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Ji({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:l,className:c,children:u,position:d="bottom-left",orientation:f="vertical","aria-label":p}){const g=oe(),{isInteractive:v,minZoomReached:y,maxZoomReached:m,ariaLabelConfig:b}=ee(qh,ne),{zoomIn:h,zoomOut:x,fitView:S}=eo(),_=()=>{h(),i?.()},C=()=>{x(),s?.()},k=()=>{S(r),a?.()},$=()=>{g.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),l?.(!v)},B=f==="horizontal"?"horizontal":"vertical";return A.jsxs(an,{className:ie(["react-flow__controls",B,c]),position:d,style:e,"data-testid":"rf__controls","aria-label":p??b["controls.ariaLabel"],children:[t&&A.jsxs(A.Fragment,{children:[A.jsx(Tt,{onClick:_,className:"react-flow__controls-zoomin",title:b["controls.zoomIn.ariaLabel"],"aria-label":b["controls.zoomIn.ariaLabel"],disabled:m,children:A.jsx(Xh,{})}),A.jsx(Tt,{onClick:C,className:"react-flow__controls-zoomout",title:b["controls.zoomOut.ariaLabel"],"aria-label":b["controls.zoomOut.ariaLabel"],disabled:y,children:A.jsx(jh,{})})]}),n&&A.jsx(Tt,{className:"react-flow__controls-fitview",onClick:k,title:b["controls.fitView.ariaLabel"],"aria-label":b["controls.fitView.ariaLabel"],children:A.jsx(Yh,{})}),o&&A.jsx(Tt,{className:"react-flow__controls-interactive",onClick:$,title:b["controls.interactive.ariaLabel"],"aria-label":b["controls.interactive.ariaLabel"],children:v?A.jsx(Wh,{}):A.jsx(Zh,{})}),u]})}Ji.displayName="Controls";const xg=D.memo(Ji);function Gh({id:e,x:t,y:n,width:o,height:r,style:i,color:s,strokeColor:a,strokeWidth:l,className:c,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){const{background:g,backgroundColor:v}=i||{},y=s||g||v;return A.jsx("rect",{className:ie(["react-flow__minimap-node",{selected:f},c]),x:t,y:n,rx:u,ry:u,width:o,height:r,style:{fill:y,stroke:a,strokeWidth:l},shapeRendering:d,onClick:p?m=>p(m,e):void 0})}const Kh=D.memo(Gh),Uh=e=>e.nodes.map(t=>t.id),_n=e=>e instanceof Function?e:()=>e;function Qh({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=Kh,onClick:s}){const a=ee(Uh,ne),l=_n(t),c=_n(e),u=_n(n),d=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return A.jsx(A.Fragment,{children:a.map(f=>A.jsx(eg,{id:f,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:u,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:s,shapeRendering:d},f))})}function Jh({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:l}){const{node:c,x:u,y:d,width:f,height:p}=ee(g=>{const v=g.nodeLookup.get(e);if(!v)return{node:void 0,x:0,y:0,width:0,height:0};const y=v.internals.userNode,{x:m,y:b}=v.internals.positionAbsolute,{width:h,height:x}=ke(y);return{node:y,x:m,y:b,width:h,height:x}},ne);return!c||c.hidden||!ei(c)?null:A.jsx(a,{x:u,y:d,width:f,height:p,style:c.style,selected:!!c.selected,className:o(c),color:t(c),borderRadius:r,strokeColor:n(c),strokeWidth:i,shapeRendering:s,onClick:l,id:c.id})}const eg=D.memo(Jh);var tg=D.memo(Qh);const ng=200,og=150,rg=e=>!e.hidden,ig=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?Qr(St(e.nodeLookup,{filter:rg}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},sg="react-flow__minimap-desc";function es({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:u,maskStrokeWidth:d,position:f="bottom-right",onClick:p,onNodeClick:g,pannable:v=!1,zoomable:y=!1,ariaLabel:m,inversePan:b,zoomStep:h=1,offsetScale:x=5}){const S=oe(),_=D.useRef(null),{boundingRect:C,viewBB:k,rfId:$,panZoom:B,translateExtent:M,flowWidth:z,flowHeight:R,ariaLabelConfig:w}=ee(ig,ne),N=e?.width??ng,E=e?.height??og,I=C.width/N,T=C.height/E,P=Math.max(I,T),V=P*N,O=P*E,L=x*P,j=C.x-(V-C.width)/2-L,X=C.y-(O-C.height)/2-L,q=V+L*2,Q=O+L*2,W=`${sg}-${$}`,H=D.useRef(0),F=D.useRef();H.current=P,D.useEffect(()=>{if(_.current&&B)return F.current=Nd({domNode:_.current,panZoom:B,getTransform:()=>S.getState().transform,getViewScale:()=>H.current}),()=>{F.current?.destroy()}},[B]),D.useEffect(()=>{F.current?.update({translateExtent:M,width:z,height:R,inversePan:b,pannable:v,zoomStep:h,zoomable:y})},[v,y,b,h,M,z,R]);const U=p?G=>{const[J,te]=F.current?.pointer(G)||[0,0];p(G,{x:J,y:te})}:void 0,K=g?D.useCallback((G,J)=>{const te=S.getState().nodeLookup.get(J).internals.userNode;g(G,te)},[]):void 0,Y=m??w["minimap.ariaLabel"];return A.jsx(an,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d=="number"?d*P:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:ie(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:A.jsxs("svg",{width:N,height:E,viewBox:`${j} ${X} ${q} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":W,ref:_,onClick:U,children:[Y&&A.jsx("title",{id:W,children:Y}),A.jsx(tg,{onClick:K,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:s,nodeComponent:a}),A.jsx("path",{className:"react-flow__minimap-mask",d:`M${j-L},${X-L}h${q+L*2}v${Q+L*2}h${-q-L*2}z
15
+ M${k.x},${k.y}h${k.width}v${k.height}h${-k.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}es.displayName="MiniMap";const wg=D.memo(es),ag=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,cg={[rt.Line]:"right",[rt.Handle]:"bottom-right"};function lg({nodeId:e,position:t,variant:n=rt.Handle,className:o,style:r=void 0,children:i,color:s,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:g,onResizeStart:v,onResize:y,onResizeEnd:m}){const b=Pi(),h=typeof e=="string"?e:b,x=oe(),S=D.useRef(null),_=n===rt.Handle,C=ee(D.useCallback(ag(_&&p),[_,p]),ne),k=D.useRef(null),$=t??cg[n];D.useEffect(()=>{if(!(!S.current||!h))return k.current||(k.current=Ld({domNode:S.current,nodeId:h,getStoreItems:()=>{const{nodeLookup:M,transform:z,snapGrid:R,snapToGrid:w,nodeOrigin:N,domNode:E}=x.getState();return{nodeLookup:M,transform:z,snapGrid:R,snapToGrid:w,nodeOrigin:N,paneDomNode:E}},onChange:(M,z)=>{const{triggerNodeChanges:R,nodeLookup:w,parentLookup:N,nodeOrigin:E}=x.getState(),I=[],T={x:M.x,y:M.y},P=w.get(h);if(P&&P.expandParent&&P.parentId){const V=P.origin??E,O=M.width??P.measured.width??0,L=M.height??P.measured.height??0,j={id:P.id,parentId:P.parentId,rect:{width:O,height:L,...ti({x:M.x??P.position.x,y:M.y??P.position.y},{width:O,height:L},P.parentId,w,V)}},X=Jn([j],w,N,E);I.push(...X),T.x=M.x?Math.max(V[0]*O,M.x):void 0,T.y=M.y?Math.max(V[1]*L,M.y):void 0}if(T.x!==void 0&&T.y!==void 0){const V={id:h,type:"position",position:{...T}};I.push(V)}if(M.width!==void 0&&M.height!==void 0){const O={id:h,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:M.width,height:M.height}};I.push(O)}for(const V of z){const O={...V,type:"position"};I.push(O)}R(I)},onEnd:({width:M,height:z})=>{const R={id:h,type:"dimensions",resizing:!1,dimensions:{width:M,height:z}};x.getState().triggerNodeChanges([R])}})),k.current.update({controlPosition:$,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:v,onResize:y,onResizeEnd:m,shouldResize:g}),()=>{k.current?.destroy()}},[$,a,l,c,u,d,v,y,m,g]);const B=$.split("-");return A.jsx("div",{className:ie(["react-flow__resize-control","nodrag",...B,n,o]),ref:S,style:{...r,scale:C,...s&&{[_?"backgroundColor":"borderColor"]:s}},children:i})}D.memo(lg);export{yg as B,xg as C,Gt as H,wg as M,Z as P,zh as R,we as a,Ue as b,fg as c,mg as d,eo as e,gg as i,hg as p,pg as u,Bd as w};