@tom2012/cc-web 2026.5.18-a → 2026.5.18-b

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 (40) hide show
  1. package/README.md +1 -1
  2. package/frontend/dist/assets/{ChatOverlay-C-MIdZJm.js → ChatOverlay-DPM_F615.js} +1 -1
  3. package/frontend/dist/assets/{GraphPreview-D2qXaMDE.js → GraphPreview-CJhh33L8.js} +1 -1
  4. package/frontend/dist/assets/{MobilePage-BolIAlON.js → MobilePage-Cx9v8Udp.js} +3 -3
  5. package/frontend/dist/assets/{OfficePreview-Bw5JlSpR.js → OfficePreview-h6zYBZFQ.js} +2 -2
  6. package/frontend/dist/assets/{PdfPreview-DA96QUeL.js → PdfPreview-DbYFye7c.js} +1 -1
  7. package/frontend/dist/assets/{ProjectPage-CmbJ2g7j.js → ProjectPage-DaPmvQ-H.js} +4 -4
  8. package/frontend/dist/assets/{SettingsPage-_Cm-AVw4.js → SettingsPage-BkApTPbw.js} +1 -1
  9. package/frontend/dist/assets/{SkillHubPage-By-ccKQj.js → SkillHubPage-BwfU-hel.js} +1 -1
  10. package/frontend/dist/assets/{TrackEditor-EL1VBAhT.js → TrackEditor-BbM0eHTD.js} +3 -3
  11. package/frontend/dist/assets/TrackGraphEditor-DzEqAGFN.js +2 -0
  12. package/frontend/dist/assets/{chevron-down-DM_Mo17i.js → chevron-down-D4Vj-5wB.js} +1 -1
  13. package/frontend/dist/assets/{cssMode-CicA3AgL.js → cssMode-5whH06Yl.js} +1 -1
  14. package/frontend/dist/assets/{editor.main-DKkZVnWw.js → editor.main-CnjJg6pv.js} +7 -7
  15. package/frontend/dist/assets/{freemarker2-BAiKgR7W.js → freemarker2-CUgILTtX.js} +1 -1
  16. package/frontend/dist/assets/{handlebars-C65m36HJ.js → handlebars-C2avKkbK.js} +1 -1
  17. package/frontend/dist/assets/{html-CQKNdpNj.js → html-ZYUiGgvr.js} +1 -1
  18. package/frontend/dist/assets/{htmlMode-lb8O19um.js → htmlMode-CeliqUBd.js} +1 -1
  19. package/frontend/dist/assets/{index-B1ToZu3N.js → index-C-2GBtXy.js} +1 -1
  20. package/frontend/dist/assets/{index-ZXKKVcgm.js → index-CKxFfdqR.js} +1 -1
  21. package/frontend/dist/assets/index-COjNnvQB.css +1 -0
  22. package/frontend/dist/assets/{index-DuGXgwGK.js → index-DUIOrPha.js} +2 -2
  23. package/frontend/dist/assets/{index-BzylQAjm.js → index-DjmvYdMM.js} +1 -1
  24. package/frontend/dist/assets/{javascript-FWRasi5r.js → javascript-0VRCllAK.js} +1 -1
  25. package/frontend/dist/assets/{jsonMode-D8aGj5qS.js → jsonMode-Dwqu43-Y.js} +1 -1
  26. package/frontend/dist/assets/{jszip.min-Bm8u3Q9Z.js → jszip.min-Bn769Ot7.js} +1 -1
  27. package/frontend/dist/assets/{liquid-Bu7MHLsF.js → liquid-E2ejTVvo.js} +1 -1
  28. package/frontend/dist/assets/{mdx-C9KjBxd9.js → mdx-CqJmnu86.js} +1 -1
  29. package/frontend/dist/assets/{python-DnHhXfg2.js → python-BYNiBUNZ.js} +1 -1
  30. package/frontend/dist/assets/{razor-D4OpMyGk.js → razor-2YR0XVnP.js} +1 -1
  31. package/frontend/dist/assets/{select-CF-2DxAz.js → select-CXSNG3yW.js} +1 -1
  32. package/frontend/dist/assets/{tsMode-RIZqtAps.js → tsMode-DrjOLXjA.js} +1 -1
  33. package/frontend/dist/assets/{typescript-DJeBIxGF.js → typescript--8YtfOFf.js} +1 -1
  34. package/frontend/dist/assets/{user-mc2CAtZS.js → user-Chl3LWFq.js} +1 -1
  35. package/frontend/dist/assets/{xml-DuazQqBz.js → xml-CGj_sBRG.js} +1 -1
  36. package/frontend/dist/assets/{yaml-DsG3CKlY.js → yaml-of0AgMN8.js} +1 -1
  37. package/frontend/dist/index.html +2 -2
  38. package/package.json +1 -1
  39. package/frontend/dist/assets/TrackGraphEditor-BlSkKLI0.js +0 -2
  40. package/frontend/dist/assets/index-CI8kSYwX.css +0 -1
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/editor.main-CnjJg6pv.js","assets/index-DUIOrPha.js","assets/index-COjNnvQB.css","assets/editor-B5EY1bb8.css","assets/index-DjmvYdMM.js"])))=>i.map(i=>d[i]);
2
+ import{r as e,bM as t,bE as n,W as o,be as r,j as i,_ as a,bN as s,bO as l,bP as c,bQ as u,bR as d,bS as h}from"./index-DUIOrPha.js";import{c as f,a as p,n as g,M as m,N as y,e as v,s as x,g as b,d as w}from"./ProjectPage-DaPmvQ-H.js";import"./purify.es-CgRAQgUo.js";import"./ChatOverlay-DPM_F615.js";import"./chevron-down-D4Vj-5wB.js";import"./index-CKxFfdqR.js";import"./select-CXSNG3yW.js";import"./user-Chl3LWFq.js";function S(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n,o=0;o<e.length;o++)""!==(n=S(e[o]))&&(t+=(t&&" ")+n);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var E={exports:{}},N={},_=e,C=t;var k="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},M=C.useSyncExternalStore,j=_.useRef,I=_.useEffect,P=_.useMemo,O=_.useDebugValue;N.useSyncExternalStoreWithSelector=function(e,t,n,o,r){var i=j(null);if(null===i.current){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=P(function(){function e(e){if(!l){if(l=!0,i=e,e=o(e),void 0!==r&&a.hasValue){var t=a.value;if(r(t,e))return s=t}return s=e}if(t=s,k(i,e))return t;var n=o(e);return void 0!==r&&r(t,n)?(i=e,t):(i=e,s=n)}var i,s,l=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,n,o,r]);var s=M(e,i[0],i[1]);return I(function(){a.hasValue=!0,a.value=s},[s]),O(s),s},E.exports=N;const A=n(E.exports),$={},z=e=>{let t;const n=new Set,o=(e,o)=>{const r="function"==typeof e?e(t):e;if(!Object.is(r,t)){const e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{"production"!==($?"production":void 0)&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(o,r,i);return i},{useDebugValue:D}=o,{useSyncExternalStoreWithSelector:R}=A,T=e=>e;function B(e,t=T,n){const o=R(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return D(o),o}const L=(e,t)=>{const n=(e=>e?z(e):z)(e),o=(e,o=t)=>B(n,e,o);return Object.assign(o,n),o};function H(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}var V={value:()=>{}};function Y(){for(var e,t=0,n=arguments.length,o={};t<n;++t){if(!(e=arguments[t]+"")||e in o||/[\s.]/.test(e))throw new Error("illegal type: "+e);o[e]=[]}return new X(o)}function X(e){this._=e}function K(e,t){for(var n,o=0,r=e.length;o<r;++o)if((n=e[o]).name===t)return n.value}function Z(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=V,e=e.slice(0,o).concat(e.slice(o+1));break}return null!=n&&e.push({name:t,value:n}),e}X.prototype=Y.prototype={constructor:X,on:function(e,t){var n,o,r=this._,i=(o=r,(e+"").trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!o.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}})),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a<s;)if(n=(e=i[a]).type)r[n]=Z(r[n],e.name,t);else if(null==t)for(n in r)r[n]=Z(r[n],e.name,null);return this}for(;++a<s;)if((n=(e=i[a]).type)&&(n=K(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new X(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(o=this._[e]).length;i<n;++i)o[i].value.apply(t,r)},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)}};var F="http://www.w3.org/1999/xhtml";const W={svg:"http://www.w3.org/2000/svg",xhtml:F,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function q(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),W.hasOwnProperty(t)?{space:W[t],local:e}:e}function U(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===F&&t.documentElement.namespaceURI===F?t.createElement(e):t.createElementNS(n,e)}}function G(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function J(e){var t=q(e);return(t.local?G:U)(t)}function Q(){}function ee(e){return null==e?Q:function(){return this.querySelector(e)}}function te(){return[]}function ne(e){return null==e?te:function(){return this.querySelectorAll(e)}}function oe(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}function re(e){return function(){return this.matches(e)}}function ie(e){return function(t){return t.matches(e)}}var ae=Array.prototype.find;function se(){return this.firstElementChild}var le=Array.prototype.filter;function ce(){return Array.from(this.children)}function ue(e){return new Array(e.length)}function de(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function he(e,t,n,o,r,i){for(var a,s=0,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new de(e,i[s]);for(;s<l;++s)(a=t[s])&&(r[s]=a)}function fe(e,t,n,o,r,i,a){var s,l,c,u=new Map,d=t.length,h=i.length,f=new Array(d);for(s=0;s<d;++s)(l=t[s])&&(f[s]=c=a.call(l,l.__data__,s,t)+"",u.has(c)?r[s]=l:u.set(c,l));for(s=0;s<h;++s)c=a.call(e,i[s],s,i)+"",(l=u.get(c))?(o[s]=l,l.__data__=i[s],u.delete(c)):n[s]=new de(e,i[s]);for(s=0;s<d;++s)(l=t[s])&&u.get(f[s])===l&&(r[s]=l)}function pe(e){return e.__data__}function ge(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function me(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ye(e){return function(){this.removeAttribute(e)}}function ve(e){return function(){this.removeAttributeNS(e.space,e.local)}}function xe(e,t){return function(){this.setAttribute(e,t)}}function be(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function we(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Se(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Ee(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ne(e){return function(){this.style.removeProperty(e)}}function _e(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ce(e,t,n){return function(){var o=t.apply(this,arguments);null==o?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function ke(e,t){return e.style.getPropertyValue(t)||Ee(e).getComputedStyle(e,null).getPropertyValue(t)}function Me(e){return function(){delete this[e]}}function je(e,t){return function(){this[e]=t}}function Ie(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function Pe(e){return e.trim().split(/^|\s+/)}function Oe(e){return e.classList||new Ae(e)}function Ae(e){this._node=e,this._names=Pe(e.getAttribute("class")||"")}function $e(e,t){for(var n=Oe(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function ze(e,t){for(var n=Oe(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function De(e){return function(){$e(this,e)}}function Re(e){return function(){ze(this,e)}}function Te(e,t){return function(){(t.apply(this,arguments)?$e:ze)(this,e)}}function Be(){this.textContent=""}function Le(e){return function(){this.textContent=e}}function He(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function Ve(){this.innerHTML=""}function Ye(e){return function(){this.innerHTML=e}}function Xe(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function Ke(){this.nextSibling&&this.parentNode.appendChild(this)}function Ze(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Fe(){return null}function We(){var e=this.parentNode;e&&e.removeChild(this)}function qe(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ue(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ge(e){return function(){var t=this.__on;if(t){for(var n,o=0,r=-1,i=t.length;o<i;++o)n=t[o],e.type&&n.type!==e.type||n.name!==e.name?t[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?t.length=r:delete this.__on}}}function Je(e,t,n){return function(){var o,r=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===e.type&&o.name===e.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=t);this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function Qe(e,t,n){var o=Ee(e),r=o.CustomEvent;"function"==typeof r?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 et(e,t){return function(){return Qe(this,e,t)}}function tt(e,t){return function(){return Qe(this,e,t.apply(this,arguments))}}de.prototype={constructor:de,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)}},Ae.prototype={add:function(e){this._names.indexOf(e)<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}};var nt=[null];function ot(e,t){this._groups=e,this._parents=t}function rt(){return new ot([[document.documentElement]],nt)}function it(e){return"string"==typeof e?new ot([[document.querySelector(e)]],[document.documentElement]):new ot([[e]],nt)}function at(e,t){if(e=function(e){let t;for(;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(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())).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]}ot.prototype=rt.prototype={constructor:ot,select:function(e){"function"!=typeof e&&(e=ee(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=t[r],l=s.length,c=o[r]=new Array(l),u=0;u<l;++u)(i=s[u])&&(a=e.call(i,i.__data__,u,s))&&("__data__"in i&&(a.__data__=i.__data__),c[u]=a);return new ot(o,this._parents)},selectAll:function(e){e="function"==typeof e?oe(e):ne(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var a,s=t[i],l=s.length,c=0;c<l;++c)(a=s[c])&&(o.push(e.call(a,a.__data__,c,s)),r.push(a));return new ot(o,r)},selectChild:function(e){return this.select(null==e?se:function(e){return function(){return ae.call(this.children,e)}}("function"==typeof e?e:ie(e)))},selectChildren:function(e){return this.selectAll(null==e?ce:function(e){return function(){return le.call(this.children,e)}}("function"==typeof e?e:ie(e)))},filter:function(e){"function"!=typeof e&&(e=re(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a=t[r],s=a.length,l=o[r]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new ot(o,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,pe);var n,o=t?fe:he,r=this._parents,i=this._groups;"function"!=typeof e&&(n=e,e=function(){return n});for(var a=i.length,s=new Array(a),l=new Array(a),c=new Array(a),u=0;u<a;++u){var d=r[u],h=i[u],f=h.length,p=ge(e.call(d,d&&d.__data__,u,r)),g=p.length,m=l[u]=new Array(g),y=s[u]=new Array(g);o(d,h,m,y,c[u]=new Array(f),p,t);for(var v,x,b=0,w=0;b<g;++b)if(v=m[b]){for(b>=w&&(w=b+1);!(x=y[w])&&++w<g;);v._next=x||null}}return(s=new ot(s,r))._enter=l,s._exit=c,s},enter:function(){return new ot(this._enter||this._groups.map(ue),this._parents)},exit:function(){return new ot(this._exit||this._groups.map(ue),this._parents)},join:function(e,t,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof e?(o=e(o))&&(o=o.selection()):o=o.append(e+""),null!=t&&(r=t(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),l=0;l<a;++l)for(var c,u=n[l],d=o[l],h=u.length,f=s[l]=new Array(h),p=0;p<h;++p)(c=u[p]||d[p])&&(f[p]=c);for(;l<r;++l)s[l]=n[l];return new ot(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o,r=e[t],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=me);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],l=s.length,c=r[i]=new Array(l),u=0;u<l;++u)(a=s[u])&&(c[u]=a);c.sort(t)}return new ot(r,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){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 a=o[r];if(a)return a}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r,i=t[n],a=0,s=i.length;a<s;++a)(r=i[a])&&e.call(r,r.__data__,a,i);return this},attr:function(e,t){var n=q(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==t?n.local?ve:ye:"function"==typeof t?n.local?Se:we:n.local?be:xe)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Ne:"function"==typeof t?Ce:_e)(e,t,null==n?"":n)):ke(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Me:"function"==typeof t?Ie:je)(e,t)):this.node()[e]},classed:function(e,t){var n=Pe(e+"");if(arguments.length<2){for(var o=Oe(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof t?Te:t?De:Re)(n,t))},text:function(e){return arguments.length?this.each(null==e?Be:("function"==typeof e?He:Le)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?Ve:("function"==typeof e?Xe:Ye)(e)):this.node().innerHTML},raise:function(){return this.each(Ke)},lower:function(){return this.each(Ze)},append:function(e){var t="function"==typeof e?e:J(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})},insert:function(e,t){var n="function"==typeof e?e:J(e),o=null==t?Fe:"function"==typeof t?t:ee(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})},remove:function(){return this.each(We)},clone:function(e){return this.select(e?Ue:qe)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var o,r,i=function(e){return e.trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?Je:Ge,o=0;o<a;++o)this.each(s(i[o],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(o=0,l=s[c];o<a;++o)if((r=i[o]).type===l.type&&r.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"==typeof t?tt:et)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o,r=e[t],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}};const st={passive:!1},lt={capture:!0,passive:!1};function ct(e){e.stopImmediatePropagation()}function ut(e){e.preventDefault(),e.stopImmediatePropagation()}function dt(e){var t=e.document.documentElement,n=it(e).on("dragstart.drag",ut,lt);"onselectstart"in t?n.on("selectstart.drag",ut,lt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function ht(e,t){var n=e.document.documentElement,o=it(e).on("dragstart.drag",null);t&&(o.on("click.drag",ut,lt),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 ft=e=>()=>e;function pt(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,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:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}function gt(e){return!e.ctrlKey&&!e.button}function mt(){return this.parentNode}function yt(e,t){return null==t?{x:e.x,y:e.y}:t}function vt(){return navigator.maxTouchPoints||"ontouchstart"in this}function xt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function bt(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function wt(){}pt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var St=.7,Et=1/St,Nt="\\s*([+-]?\\d+)\\s*",_t="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ct="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",kt=/^#([0-9a-f]{3,8})$/,Mt=new RegExp(`^rgb\\(${Nt},${Nt},${Nt}\\)$`),jt=new RegExp(`^rgb\\(${Ct},${Ct},${Ct}\\)$`),It=new RegExp(`^rgba\\(${Nt},${Nt},${Nt},${_t}\\)$`),Pt=new RegExp(`^rgba\\(${Ct},${Ct},${Ct},${_t}\\)$`),Ot=new RegExp(`^hsl\\(${_t},${Ct},${Ct}\\)$`),At=new RegExp(`^hsla\\(${_t},${Ct},${Ct},${_t}\\)$`),$t={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};function zt(){return this.rgb().formatHex()}function Dt(){return this.rgb().formatRgb()}function Rt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=kt.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Tt(t):3===n?new Ht(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Bt(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Bt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Mt.exec(e))?new Ht(t[1],t[2],t[3],1):(t=jt.exec(e))?new Ht(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=It.exec(e))?Bt(t[1],t[2],t[3],t[4]):(t=Pt.exec(e))?Bt(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Ot.exec(e))?Ft(t[1],t[2]/100,t[3]/100,1):(t=At.exec(e))?Ft(t[1],t[2]/100,t[3]/100,t[4]):$t.hasOwnProperty(e)?Tt($t[e]):"transparent"===e?new Ht(NaN,NaN,NaN,0):null}function Tt(e){return new Ht(e>>16&255,e>>8&255,255&e,1)}function Bt(e,t,n,o){return o<=0&&(e=t=n=NaN),new Ht(e,t,n,o)}function Lt(e,t,n,o){return 1===arguments.length?((r=e)instanceof wt||(r=Rt(r)),r?new Ht((r=r.rgb()).r,r.g,r.b,r.opacity):new Ht):new Ht(e,t,n,null==o?1:o);var r}function Ht(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}function Vt(){return`#${Zt(this.r)}${Zt(this.g)}${Zt(this.b)}`}function Yt(){const e=Xt(this.opacity);return`${1===e?"rgb(":"rgba("}${Kt(this.r)}, ${Kt(this.g)}, ${Kt(this.b)}${1===e?")":`, ${e})`}`}function Xt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Kt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Zt(e){return((e=Kt(e))<16?"0":"")+e.toString(16)}function Ft(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new qt(e,t,n,o)}function Wt(e){if(e instanceof qt)return new qt(e.h,e.s,e.l,e.opacity);if(e instanceof wt||(e=Rt(e)),!e)return new qt;if(e instanceof qt)return e;var t=(e=e.rgb()).r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),a=NaN,s=i-r,l=(i+r)/2;return s?(a=t===i?(n-o)/s+6*(n<o):n===i?(o-t)/s+2:(t-n)/s+4,s/=l<.5?i+r:2-i-r,a*=60):s=l>0&&l<1?0:a,new qt(a,s,l,e.opacity)}function qt(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}function Ut(e){return(e=(e||0)%360)<0?e+360:e}function Gt(e){return Math.max(0,Math.min(1,e||0))}function Jt(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}xt(wt,Rt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:zt,formatHex:zt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Wt(this).formatHsl()},formatRgb:Dt,toString:Dt}),xt(Ht,Lt,bt(wt,{brighter(e){return e=null==e?Et:Math.pow(Et,e),new Ht(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?St:Math.pow(St,e),new Ht(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ht(Kt(this.r),Kt(this.g),Kt(this.b),Xt(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:Vt,formatHex:Vt,formatHex8:function(){return`#${Zt(this.r)}${Zt(this.g)}${Zt(this.b)}${Zt(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Yt,toString:Yt})),xt(qt,function(e,t,n,o){return 1===arguments.length?Wt(e):new qt(e,t,n,null==o?1:o)},bt(wt,{brighter(e){return e=null==e?Et:Math.pow(Et,e),new qt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?St:Math.pow(St,e),new qt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),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 Ht(Jt(e>=240?e-240:e+120,r,o),Jt(e,r,o),Jt(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new qt(Ut(this.h),Gt(this.s),Gt(this.l),Xt(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=Xt(this.opacity);return`${1===e?"hsl(":"hsla("}${Ut(this.h)}, ${100*Gt(this.s)}%, ${100*Gt(this.l)}%${1===e?")":`, ${e})`}`}}));const Qt=e=>()=>e;function en(e){return 1===(e=+e)?tn:function(t,n){return n-t?function(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)}}(t,n,e):Qt(isNaN(t)?n:t)}}function tn(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Qt(isNaN(e)?t:e)}const nn=function e(t){var n=en(t);function o(e,t){var o=n((e=Lt(e)).r,(t=Lt(t)).r),r=n(e.g,t.g),i=n(e.b,t.b),a=tn(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=r(t),e.b=i(t),e.opacity=a(t),e+""}}return o.gamma=e,o}(1);function on(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var rn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,an=new RegExp(rn.source,"g");function sn(e,t){var n,o,r,i=rn.lastIndex=an.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=rn.exec(e))&&(o=an.exec(t));)(r=o.index)>i&&(r=t.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,l.push({i:a,x:on(n,o)})),i=an.lastIndex;return i<t.length&&(r=t.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?function(e){return function(t){return e(t)+""}}(l[0].x):function(e){return function(){return e}}(t):(t=l.length,function(e){for(var n,o=0;o<t;++o)s[(n=l[o]).i]=n.x(e);return s.join("")})}var ln,cn=180/Math.PI,un={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function dn(e,t,n,o,r,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*o)&&(n-=e*l,o-=t*l),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,l/=s),e*o<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*cn,skewX:Math.atan(l)*cn,scaleX:a,scaleY:s}}function hn(e,t,n,o){function r(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],l=[];return i=e(i),a=e(a),function(e,o,r,i,a,s){if(e!==r||o!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:on(e,r)},{i:l-2,x:on(o,i)})}else(r||i)&&a.push("translate("+r+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,l),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:on(e,t)})):t&&n.push(r(n)+"rotate("+t+o)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:on(e,t)}):t&&n.push(r(n)+"skewX("+t+o)}(i.skewX,a.skewX,s,l),function(e,t,n,o,i,a){if(e!==n||t!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:on(e,n)},{i:s-2,x:on(t,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,o=l.length;++n<o;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var fn=hn(function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?un:dn(t.a,t.b,t.c,t.d,t.e,t.f)},"px, ","px)","deg)"),pn=hn(function(e){return null==e?un:(ln||(ln=document.createElementNS("http://www.w3.org/2000/svg","g")),ln.setAttribute("transform",e),(e=ln.transform.baseVal.consolidate())?dn((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):un)},", ",")",")");function gn(e){return((e=Math.exp(e))+1/e)/2}const mn=function e(t,n,o){function r(e,r){var i,a,s=e[0],l=e[1],c=e[2],u=r[0],d=r[1],h=r[2],f=u-s,p=d-l,g=f*f+p*p;if(g<1e-12)a=Math.log(h/c)/t,i=function(e){return[s+e*f,l+e*p,c*Math.exp(t*e*a)]};else{var m=Math.sqrt(g),y=(h*h-c*c+o*g)/(2*c*n*m),v=(h*h-c*c-o*g)/(2*h*n*m),x=Math.log(Math.sqrt(y*y+1)-y),b=Math.log(Math.sqrt(v*v+1)-v);a=(b-x)/t,i=function(e){var o,r=e*a,i=gn(x),u=c/(n*m)*(i*(o=t*r+x,((o=Math.exp(2*o))-1)/(o+1))-function(e){return((e=Math.exp(e))-1/e)/2}(x));return[s+u*f,l+u*p,c*i/gn(t*r+x)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return r.rho=function(t){var n=Math.max(.001,+t),o=n*n;return e(n,o,o*o)},r}(Math.SQRT2,2,4);var yn,vn,xn=0,bn=0,wn=0,Sn=0,En=0,Nn=0,_n="object"==typeof performance&&performance.now?performance:Date,Cn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function kn(){return En||(Cn(Mn),En=_n.now()+Nn)}function Mn(){En=0}function jn(){this._call=this._time=this._next=null}function In(e,t,n){var o=new jn;return o.restart(e,t,n),o}function Pn(){En=(Sn=_n.now())+Nn,xn=bn=0;try{!function(){kn(),++xn;for(var e,t=yn;t;)(e=En-t._time)>=0&&t._call.call(void 0,e),t=t._next;--xn}()}finally{xn=0,function(){var e,t,n=yn,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:yn=t);vn=e,An(o)}(),En=0}}function On(){var e=_n.now(),t=e-Sn;t>1e3&&(Nn-=t,Sn=e)}function An(e){xn||(bn&&(bn=clearTimeout(bn)),e-En>24?(e<1/0&&(bn=setTimeout(Pn,e-_n.now()-Nn)),wn&&(wn=clearInterval(wn))):(wn||(Sn=_n.now(),wn=setInterval(On,1e3)),xn=1,Cn(Pn)))}function $n(e,t,n){var o=new jn;return t=null==t?0:+t,o.restart(n=>{o.stop(),e(n+t)},t,n),o}jn.prototype=In.prototype={constructor:jn,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?kn():+n)+(null==t?0:+t),this._next||vn===this||(vn?vn._next=this:yn=this,vn=this),this._call=e,this._time=n,An()},stop:function(){this._call&&(this._call=null,this._time=1/0,An())}};var zn=Y("start","end","cancel","interrupt"),Dn=[];function Rn(e,t,n,o,r,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var o,r=e.__transition;function i(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var c,u,d,h;if(1!==n.state)return l();for(c in r)if((h=r[c]).name===n.name){if(3===h.state)return $n(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[c]):+c<t&&(h.state=6,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[c])}if($n(function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(i))}),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(n.state=3,o=new Array(d=n.tween.length),c=0,u=-1;c<d;++c)(h=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(o[++u]=h);o.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(l),n.state=5,1),i=-1,a=o.length;++i<a;)o[i].call(e,r);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){for(var o in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}r[t]=n,n.timer=In(i,0,n.time)}(e,n,{name:t,index:o,group:r,on:zn,tween:Dn,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function Tn(e,t){var n=Ln(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function Bn(e,t){var n=Ln(e,t);if(n.state>3)throw new Error("too late; already running");return n}function Ln(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Hn(e,t){var n,o,r,i=e.__transition,a=!0;if(i){for(r in t=null==t?null:t+"",i)(n=i[r]).name===t?(o=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(o?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete e.__transition}}function Vn(e,t){var n,o;return function(){var r=Bn(this,e),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===t){(o=o.slice()).splice(a,1);break}r.tween=o}}function Yn(e,t,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=Bn(this,e),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:t,value:n},l=0,c=r.length;l<c;++l)if(r[l].name===t){r[l]=s;break}l===c&&r.push(s)}i.tween=r}}function Xn(e,t,n){var o=e._id;return e.each(function(){var e=Bn(this,o);(e.value||(e.value={}))[t]=n.apply(this,arguments)}),function(e){return Ln(e,o).value[t]}}function Kn(e,t){var n;return("number"==typeof t?on:t instanceof Rt?nn:(n=Rt(t))?(t=n,nn):sn)(e,t)}function Zn(e){return function(){this.removeAttribute(e)}}function Fn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Wn(e,t,n){var o,r,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===o?r:r=t(o=a,n)}}function qn(e,t,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===o?r:r=t(o=a,n)}}function Un(e,t,n){var o,r,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===o&&s===r?i:(r=s,i=t(o=a,l));this.removeAttribute(e)}}function Gn(e,t,n){var o,r,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===o&&s===r?i:(r=s,i=t(o=a,l));this.removeAttributeNS(e.space,e.local)}}function Jn(e,t){var n,o;function r(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,r)),n}return r._value=t,r}function Qn(e,t){var n,o;function r(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,r)),n}return r._value=t,r}function eo(e,t){return function(){Tn(this,e).delay=+t.apply(this,arguments)}}function to(e,t){return t=+t,function(){Tn(this,e).delay=t}}function no(e,t){return function(){Bn(this,e).duration=+t.apply(this,arguments)}}function oo(e,t){return t=+t,function(){Bn(this,e).duration=t}}var ro=rt.prototype.constructor;function io(e){return function(){this.style.removeProperty(e)}}var ao=0;function so(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function lo(){return++ao}var co=rt.prototype;so.prototype={constructor:so,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=ee(e));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,l,c=o[a],u=c.length,d=i[a]=new Array(u),h=0;h<u;++h)(s=c[h])&&(l=e.call(s,s.__data__,h,c))&&("__data__"in s&&(l.__data__=s.__data__),d[h]=l,Rn(d[h],t,n,h,d,Ln(s,n)));return new so(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=ne(e));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var l,c=o[s],u=c.length,d=0;d<u;++d)if(l=c[d]){for(var h,f=e.call(l,l.__data__,d,c),p=Ln(l,n),g=0,m=f.length;g<m;++g)(h=f[g])&&Rn(h,t,n,g,f,p);i.push(f),a.push(l)}return new so(i,a,t,n)},selectChild:co.selectChild,selectChildren:co.selectChildren,filter:function(e){"function"!=typeof e&&(e=re(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i,a=t[r],s=a.length,l=o[r]=[],c=0;c<s;++c)(i=a[c])&&e.call(i,i.__data__,c,a)&&l.push(i);return new so(o,this._parents,this._name,this._id)},merge:function(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),a=new Array(o),s=0;s<i;++s)for(var l,c=t[s],u=n[s],d=c.length,h=a[s]=new Array(d),f=0;f<d;++f)(l=c[f]||u[f])&&(h[f]=l);for(;s<o;++s)a[s]=t[s];return new so(a,this._parents,this._name,this._id)},selection:function(){return new ro(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=lo(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],l=s.length,c=0;c<l;++c)if(a=s[c]){var u=Ln(a,t);Rn(a,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new so(o,this._parents,e,n)},call:co.call,nodes:co.nodes,node:co.node,size:co.size,empty:co.empty,each:co.each,on:function(e,t){var n=this._id;return arguments.length<2?Ln(this.node(),n).on.on(e):this.each(function(e,t,n){var o,r,i=function(e){return(e+"").trim().split(/^|\s+/).every(function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e})}(t)?Tn:Bn;return function(){var a=i(this,e),s=a.on;s!==o&&(r=(o=s).copy()).on(t,n),a.on=r}}(n,e,t))},attr:function(e,t){var n=q(e),o="transform"===n?pn:Kn;return this.attrTween(e,"function"==typeof t?(n.local?Gn:Un)(n,o,Xn(this,"attr."+e,t)):null==t?(n.local?Fn:Zn)(n):(n.local?qn:Wn)(n,o,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var o=q(e);return this.tween(n,(o.local?Jn:Qn)(o,t))},style:function(e,t,n){var o="transform"==(e+="")?fn:Kn;return null==t?this.styleTween(e,function(e,t){var n,o,r;return function(){var i=ke(this,e),a=(this.style.removeProperty(e),ke(this,e));return i===a?null:i===n&&a===o?r:r=t(n=i,o=a)}}(e,o)).on("end.style."+e,io(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var o,r,i;return function(){var a=ke(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=ke(this,e)),a===l?null:a===o&&l===r?i:(r=l,i=t(o=a,s))}}(e,o,Xn(this,"style."+e,t))).each(function(e,t){var n,o,r,i,a="style."+t,s="end."+a;return function(){var l=Bn(this,e),c=l.on,u=null==l.value[a]?i||(i=io(t)):void 0;c===n&&r===u||(o=(n=c).copy()).on(s,r=u),l.on=o}}(this._id,e)):this.styleTween(e,function(e,t,n){var o,r,i=n+"";return function(){var a=ke(this,e);return a===i?null:a===o?r:r=t(o=a,n)}}(e,o,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==t)return this.tween(o,null);if("function"!=typeof t)throw new Error;return this.tween(o,function(e,t,n){var o,r;function i(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&function(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}(e,i,n)),o}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(Xn(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function o(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&function(e){return function(t){this.textContent=e.call(this,t)}}(o)),t}return o._value=e,o}(e))},remove:function(){return this.on("end.remove",(e=this._id,function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}));var e},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o,r=Ln(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((null==t?Vn:Yn)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?eo:to)(t,e)):Ln(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?no:oo)(t,e)):Ln(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!=typeof t)throw new Error;return function(){Bn(this,e).ease=t}}(t,e)):Ln(this.node(),t).ease},easeVarying:function(e){if("function"!=typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!=typeof n)throw new Error;Bn(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(i,a){var s={value:a},l={value:function(){0===--r&&i()}};n.each(function(){var n=Bn(this,o),r=n.on;r!==e&&((t=(e=r).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t}),0===r&&i()})},[Symbol.iterator]:co[Symbol.iterator]};var uo={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function ho(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}rt.prototype.interrupt=function(e){return this.each(function(){Hn(this,e)})},rt.prototype.transition=function(e){var t,n;e instanceof so?(t=e._id,e=e._name):(t=lo(),(n=uo).time=kn(),e=null==e?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],l=s.length,c=0;c<l;++c)(a=s[c])&&Rn(a,e,t,c,s,n||ho(a,t));return new so(o,this._parents,e,t)};const fo=e=>()=>e;function po(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 go(e,t,n){this.k=e,this.x=t,this.y=n}go.prototype={constructor:go,scale:function(e){return 1===e?this:new go(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new go(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 mo=new go(1,0,0);function yo(e){e.stopImmediatePropagation()}function vo(e){e.preventDefault(),e.stopImmediatePropagation()}function xo(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function bo(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).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 wo(){return this.__zoom||mo}function So(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Eo(){return navigator.maxTouchPoints||"ontouchstart"in this}function No(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],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function _o(){var e,t,n,o=xo,r=bo,i=No,a=So,s=Eo,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],u=250,d=mn,h=Y("start","zoom","end"),f=0,p=10;function g(e){e.property("__zoom",wo).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",N).filter(s).on("touchstart.zoom",_).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new go(t,e.x,e.y)}function y(e,t,n){var o=t[0]-n[0]*e.k,r=t[1]-n[1]*e.k;return o===e.x&&r===e.y?e:new go(e.k,o,r)}function v(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,t,n,o){e.on("start.zoom",function(){b(this,arguments).event(o).start()}).on("interrupt.zoom end.zoom",function(){b(this,arguments).event(o).end()}).tween("zoom",function(){var e=this,i=arguments,a=b(e,i).event(o),s=r.apply(e,i),l=null==n?v(s):"function"==typeof n?n.apply(e,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,h="function"==typeof t?t.apply(e,i):t,f=d(u.invert(l).concat(c/u.k),h.invert(l).concat(c/h.k));return function(e){if(1===e)e=h;else{var t=f(e),n=c/t[2];e=new go(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}})}function b(e,t,n){return!n&&e.__zooming||new w(e,t)}function w(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=r.apply(e,t),this.taps=0}function S(e,...t){if(o.apply(this,arguments)){var n=b(this,t).event(e),r=this.__zoom,s=Math.max(l[0],Math.min(l[1],r.k*Math.pow(2,a.apply(this,arguments)))),u=at(e);if(n.wheel)n.mouse[0][0]===u[0]&&n.mouse[0][1]===u[1]||(n.mouse[1]=r.invert(n.mouse[0]=u)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[u,r.invert(u)],Hn(this),n.start()}vo(e),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",i(y(m(r,s),n.mouse[0],n.mouse[1]),n.extent,c))}}function E(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,a=b(this,t,!0).event(e),s=it(e.view).on("mousemove.zoom",function(e){if(vo(e),!a.moved){var t=e.clientX-u,n=e.clientY-d;a.moved=t*t+n*n>f}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=at(e,r),a.mouse[1]),a.extent,c))},!0).on("mouseup.zoom",function(e){s.on("mousemove.zoom mouseup.zoom",null),ht(e.view,a.moved),vo(e),a.event(e).end()},!0),l=at(e,r),u=e.clientX,d=e.clientY;dt(e.view),yo(e),a.mouse=[l,this.__zoom.invert(l)],Hn(this),a.start()}}function N(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,a=at(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),d=i(y(m(n,l),a,s),r.apply(this,t),c);vo(e),u>0?it(this).transition().duration(u).call(x,d,a,e):it(this).call(g.transform,d,a,e)}}function _(n,...r){if(o.apply(this,arguments)){var i,a,s,l,c=n.touches,u=c.length,d=b(this,r,n.changedTouches.length===u).event(n);for(yo(n),a=0;a<u;++a)l=[l=at(s=c[a],this),this.__zoom.invert(l),s.identifier],d.touch0?d.touch1||d.touch0[2]===l[2]||(d.touch1=l,d.taps=0):(d.touch0=l,i=!0,d.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(d.taps<2&&(t=l[0],e=setTimeout(function(){e=null},500)),Hn(this),d.start())}}function C(e,...t){if(this.__zooming){var n,o,r,a,s=b(this,t).event(e),l=e.changedTouches,u=l.length;for(vo(e),n=0;n<u;++n)r=at(o=l[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var d=s.touch0[0],h=s.touch0[1],f=s.touch1[0],p=s.touch1[1],g=(g=f[0]-d[0])*g+(g=f[1]-d[1])*g,v=(v=p[0]-h[0])*v+(v=p[1]-h[1])*v;o=m(o,Math.sqrt(g/v)),r=[(d[0]+f[0])/2,(d[1]+f[1])/2],a=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(y(o,r,a),s.extent,c))}}function k(e,...o){if(this.__zooming){var r,i,a=b(this,o).event(e),s=e.changedTouches,l=s.length;for(yo(e),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),r=0;r<l;++r)i=s[r],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=at(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<p)){var c=it(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return g.transform=function(e,t,n,o){var r=e.selection?e.selection():e;r.property("__zoom",wo),e!==r?x(e,t,n,o):r.interrupt().each(function(){b(this,arguments).event(o).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()})},g.scaleBy=function(e,t,n,o){g.scaleTo(e,function(){return this.__zoom.k*("function"==typeof t?t.apply(this,arguments):t)},n,o)},g.scaleTo=function(e,t,n,o){g.transform(e,function(){var e=r.apply(this,arguments),o=this.__zoom,a=null==n?v(e):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),l="function"==typeof t?t.apply(this,arguments):t;return i(y(m(o,l),a,s),e,c)},n,o)},g.translateBy=function(e,t,n,o){g.transform(e,function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)},null,o)},g.translateTo=function(e,t,n,o,a){g.transform(e,function(){var e=r.apply(this,arguments),a=this.__zoom,s=null==o?v(e):"function"==typeof o?o.apply(this,arguments):o;return i(mo.translate(s[0],s[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)},o,a)},w.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1===++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0===--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=it(this.that).datum();h.call(e,this.that,new po(e,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:h}),t)}},g.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:fo(+e),g):a},g.filter=function(e){return arguments.length?(o="function"==typeof e?e:fo(!!e),g):o},g.touchable=function(e){return arguments.length?(s="function"==typeof e?e:fo(!!e),g):s},g.extent=function(e){return arguments.length?(r="function"==typeof e?e:fo([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),g):r},g.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],g):[l[0],l[1]]},g.translateExtent=function(e){return arguments.length?(c[0][0]=+e[0][0],c[1][0]=+e[1][0],c[0][1]=+e[0][1],c[1][1]=+e[1][1],g):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},g.constrain=function(e){return arguments.length?(i=e,g):i},g.duration=function(e){return arguments.length?(u=+e,g):u},g.interpolate=function(e){return arguments.length?(d=e,g):d},g.on=function(){var e=h.on.apply(h,arguments);return e===h?g:e},g.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,g):Math.sqrt(f)},g.tapDistance=function(e){return arguments.length?(p=+e,g):p},g}go.prototype;const Co=e.createContext(null),ko=Co.Provider,Mo=e=>`Node type "${e}" not found. Using fallback type "default".`,jo=()=>"The React Flow parent container needs a width and a height to render the graph.",Io=()=>"Only child nodes can use a parent extent.",Po=e=>`Marker type "${e}" doesn't exist.`,Oo=(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,Ao=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",$o=e=>`Edge type "${e}" not found. Using fallback type "default".`,zo=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.`,Do=(()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001")();function Ro(t,n){const o=e.useContext(Co);if(null===o)throw new Error(Do);return B(o,t,n)}const To=()=>{const t=e.useContext(Co);if(null===t)throw new Error(Do);return e.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy}),[t])},Bo=e=>e.userSelectionActive?"none":"all";function Lo({position:e,children:t,className:n,style:r,...i}){const a=Ro(Bo),s=`${e}`.split("-");return o.createElement("div",{className:S(["react-flow__panel",n,...s]),style:{...r,pointerEvents:a},...i},t)}function Ho({proOptions:e,position:t="bottom-right"}){return(null==e?void 0:e.hideAttribution)?null:o.createElement(Lo,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},o.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}var Vo=e.memo(({x:t,y:n,label:r,labelStyle:i={},labelShowBg:a=!0,labelBgStyle:s={},labelBgPadding:l=[2,4],labelBgBorderRadius:c=2,children:u,className:d,...h})=>{const f=e.useRef(null),[p,g]=e.useState({x:0,y:0,width:0,height:0}),m=S(["react-flow__edge-textwrapper",d]);return e.useEffect(()=>{if(f.current){const e=f.current.getBBox();g({x:e.x,y:e.y,width:e.width,height:e.height})}},[r]),void 0!==r&&r?o.createElement("g",{transform:`translate(${t-p.width/2} ${n-p.height/2})`,className:m,visibility:p.width?"visible":"hidden",...h},a&&o.createElement("rect",{width:p.width+2*l[0],x:-l[0],y:-l[1],height:p.height+2*l[1],className:"react-flow__edge-textbg",style:s,rx:c,ry:c}),o.createElement("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:f,style:i},r),u):null});const Yo=e=>({width:e.offsetWidth,height:e.offsetHeight}),Xo=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ko=(e={x:0,y:0},t)=>({x:Xo(e.x,t[0][0],t[1][0]),y:Xo(e.y,t[0][1],t[1][1])}),Zo=(e,t,n)=>e<t?Xo(Math.abs(e-t),1,50)/50:e>n?-Xo(Math.abs(e-n),1,50)/50:0,Fo=(e,t)=>[20*Zo(e.x,35,t.width-35),20*Zo(e.y,35,t.height-35)],Wo=e=>{var t;return(null==(t=e.getRootNode)?void 0:t.call(e))||(null==window?void 0:window.document)},qo=(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)}),Uo=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),Go=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),Jo=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Qo=(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)},er=e=>!isNaN(e)&&isFinite(e),tr=Symbol.for("internals"),nr=["Enter"," ","Escape"];function or(e){var t,n;const o=(e=>"nativeEvent"in e)(e)?e.nativeEvent:e,r=(null==(n=null==(t=o.composedPath)?void 0:t.call(o))?void 0:n[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(null==r?void 0:r.nodeName)||(null==r?void 0:r.hasAttribute("contenteditable"))||!!(null==r?void 0:r.closest(".nokey"))}const rr=e=>"clientX"in e,ir=(e,t)=>{var n,o;const r=rr(e),i=r?e.clientX:null==(n=e.touches)?void 0:n[0].clientX,a=r?e.clientY:null==(o=e.touches)?void 0:o[0].clientY;return{x:i-((null==t?void 0:t.left)??0),y:a-((null==t?void 0:t.top)??0)}},ar=()=>{var e;return"undefined"!=typeof navigator&&(null==(e=null==navigator?void 0:navigator.userAgent)?void 0:e.indexOf("Mac"))>=0},sr=({id:e,path:t,labelX:n,labelY:r,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:f,interactionWidth:p=20})=>o.createElement(o.Fragment,null,o.createElement("path",{id:e,style:d,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:h,markerStart:f}),p&&o.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:p,className:"react-flow__edge-interaction"}),i&&er(n)&&er(r)?o.createElement(Vo,{x:n,y:r,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u}):null);function lr(e,t,n){return void 0===n?n:o=>{const r=t().edges.find(t=>t.id===e);r&&n(o,{...r})}}function cr({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,a=Math.abs(o-t)/2;return[i,o<t?o+a:o-a,r,a]}function ur({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){const l=.125*e+.375*r+.375*a+.125*n,c=.125*t+.375*i+.375*s+.125*o;return[l,c,Math.abs(l-e),Math.abs(c-t)]}var dr,hr,fr,pr,gr,mr,yr,vr,xr,br,wr,Sr;function Er({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===wr.Left||e===wr.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function Nr({sourceX:e,sourceY:t,sourcePosition:n=wr.Bottom,targetX:o,targetY:r,targetPosition:i=wr.Top}){const[a,s]=Er({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=Er({pos:i,x1:o,y1:r,x2:e,y2:t}),[u,d,h,f]=ur({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:c});return[`M${e},${t} C${a},${s} ${l},${c} ${o},${r}`,u,d,h,f]}sr.displayName="BaseEdge",(hr=dr||(dr={})).Strict="strict",hr.Loose="loose",(pr=fr||(fr={})).Free="free",pr.Vertical="vertical",pr.Horizontal="horizontal",(mr=gr||(gr={})).Partial="partial",mr.Full="full",(vr=yr||(yr={})).Bezier="default",vr.Straight="straight",vr.Step="step",vr.SmoothStep="smoothstep",vr.SimpleBezier="simplebezier",(br=xr||(xr={})).Arrow="arrow",br.ArrowClosed="arrowclosed",(Sr=wr||(wr={})).Left="left",Sr.Top="top",Sr.Right="right",Sr.Bottom="bottom";const _r=e.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:i=wr.Bottom,targetPosition:a=wr.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:p,markerStart:g,interactionWidth:m})=>{const[y,v,x]=Nr({sourceX:e,sourceY:t,sourcePosition:i,targetX:n,targetY:r,targetPosition:a});return o.createElement(sr,{path:y,labelX:v,labelY:x,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:p,markerStart:g,interactionWidth:m})});_r.displayName="SimpleBezierEdge";const Cr={[wr.Left]:{x:-1,y:0},[wr.Right]:{x:1,y:0},[wr.Top]:{x:0,y:-1},[wr.Bottom]:{x:0,y:1}},kr=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Mr({source:e,sourcePosition:t=wr.Bottom,target:n,targetPosition:o=wr.Top,center:r,offset:i}){const a=Cr[t],s=Cr[o],l={x:e.x+a.x*i,y:e.y+a.y*i},c={x:n.x+s.x*i,y:n.y+s.y*i},u=(({source:e,sourcePosition:t=wr.Bottom,target:n})=>t===wr.Left||t===wr.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})({source:l,sourcePosition:t,target:c}),d=0!==u.x?"x":"y",h=u[d];let f,p,g=[];const m={x:0,y:0},y={x:0,y:0},[v,x,b,w]=cr({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*s[d]===-1){f=r.x??v,p=r.y??x;const e=[{x:f,y:l.y},{x:f,y:c.y}],t=[{x:l.x,y:p},{x:c.x,y:p}];g=a[d]===h?"x"===d?e:t:"x"===d?t:e}else{const r=[{x:l.x,y:c.y}],u=[{x:c.x,y:l.y}];if(g="x"===d?a.x===h?u:r:a.y===h?r:u,t===o){const t=Math.abs(e[d]-n[d]);if(t<=i){const o=Math.min(i-1,i-t);a[d]===h?m[d]=(l[d]>e[d]?-1:1)*o:y[d]=(c[d]>n[d]?-1:1)*o}}if(t!==o){const e="x"===d?"y":"x",t=a[d]===s[e],n=l[e]>c[e],o=l[e]<c[e];(1===a[d]&&(!t&&n||t&&o)||1!==a[d]&&(!t&&o||t&&n))&&(g="x"===d?r:u)}const v={x:l.x+m.x,y:l.y+m.y},x={x:c.x+y.x,y:c.y+y.y};Math.max(Math.abs(v.x-g[0].x),Math.abs(x.x-g[0].x))>=Math.max(Math.abs(v.y-g[0].y),Math.abs(x.y-g[0].y))?(f=(v.x+x.x)/2,p=g[0].y):(f=g[0].x,p=(v.y+x.y)/2)}return[[e,{x:l.x+m.x,y:l.y+m.y},...g,{x:c.x+y.x,y:c.y+y.y},n],f,p,b,w]}function jr({sourceX:e,sourceY:t,sourcePosition:n=wr.Bottom,targetX:o,targetY:r,targetPosition:i=wr.Top,borderRadius:a=5,centerX:s,centerY:l,offset:c=20}){const[u,d,h,f,p]=Mr({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:s,y:l},offset:c});return[u.reduce((e,t,n)=>{let o="";return o=n>0&&n<u.length-1?function(e,t,n,o){const r=Math.min(kr(e,t)/2,kr(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a)return`L ${i+r*(e.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(e.y<n.y?1:-1)}`;const s=e.x<n.x?1:-1;return`L ${i},${a+r*(e.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}(u[n-1],t,u[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`,e+=o},""),d,h,f,p]}const Ir=e.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,sourcePosition:h=wr.Bottom,targetPosition:f=wr.Top,markerEnd:p,markerStart:g,pathOptions:m,interactionWidth:y})=>{const[v,x,b]=jr({sourceX:e,sourceY:t,sourcePosition:h,targetX:n,targetY:r,targetPosition:f,borderRadius:null==m?void 0:m.borderRadius,offset:null==m?void 0:m.offset});return o.createElement(sr,{path:v,labelX:x,labelY:b,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:p,markerStart:g,interactionWidth:y})});Ir.displayName="SmoothStepEdge";const Pr=e.memo(t=>{var n;return o.createElement(Ir,{...t,pathOptions:e.useMemo(()=>{var e;return{borderRadius:0,offset:null==(e=t.pathOptions)?void 0:e.offset}},[null==(n=t.pathOptions)?void 0:n.offset])})});Pr.displayName="StepEdge";const Or=e.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:f,interactionWidth:p})=>{const[g,m,y]=function({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,a,s]=cr({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}({sourceX:e,sourceY:t,targetX:n,targetY:r});return o.createElement(sr,{path:g,labelX:m,labelY:y,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:u,style:d,markerEnd:h,markerStart:f,interactionWidth:p})});function Ar(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function $r({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case wr.Left:return[t-Ar(t-o,i),n];case wr.Right:return[t+Ar(o-t,i),n];case wr.Top:return[t,n-Ar(n-r,i)];case wr.Bottom:return[t,n+Ar(r-n,i)]}}function zr({sourceX:e,sourceY:t,sourcePosition:n=wr.Bottom,targetX:o,targetY:r,targetPosition:i=wr.Top,curvature:a=.25}){const[s,l]=$r({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[c,u]=$r({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[d,h,f,p]=ur({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${s},${l} ${c},${u} ${o},${r}`,d,h,f,p]}Or.displayName="StraightEdge";const Dr=e.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:i=wr.Bottom,targetPosition:a=wr.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:p,markerStart:g,pathOptions:m,interactionWidth:y})=>{const[v,x,b]=zr({sourceX:e,sourceY:t,sourcePosition:i,targetX:n,targetY:r,targetPosition:a,curvature:null==m?void 0:m.curvature});return o.createElement(sr,{path:v,labelX:x,labelY:b,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:p,markerStart:g,interactionWidth:y})});Dr.displayName="BezierEdge";const Rr=e.createContext(null),Tr=Rr.Provider;Rr.Consumer;const Br=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${n}${o||""}`,Lr=(e,t)=>{if(void 0===e)return"";if("string"==typeof e)return e;return`${t?`${t}__`:""}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`},Hr=({x:e,y:t},[n,o,r],i,[a,s])=>{const l={x:(e-n)/r,y:(t-o)/r};return i?{x:a*Math.round(l.x/a),y:s*Math.round(l.y/s)}:l},Vr=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o}),Yr=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],o=(e.height??0)*t[1],r={x:e.position.x-n,y:e.position.y-o};return{...r,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-o}:r}},Xr=(e,t=[0,0])=>{if(0===e.length)return{x:0,y:0,width:0,height:0};const n=e.reduce((e,n)=>{const{x:o,y:r}=Yr(n,t).positionAbsolute;return qo(e,Uo({x:o,y:r,width:n.width||0,height:n.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Go(n)},Kr=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const l={x:(t.x-n)/r,y:(t.y-o)/r,width:t.width/r,height:t.height/r},c=[];return e.forEach(e=>{const{width:t,height:n,selectable:o=!0,hidden:r=!1}=e;if(a&&!o||r)return!1;const{positionAbsolute:u}=Yr(e,s),d={x:u.x,y:u.y,width:t||0,height:n||0},h=Qo(l,d);(void 0===t||void 0===n||null===t||null===n||i&&h>0||h>=(t||0)*(n||0)||e.dragging)&&c.push(e)}),c},Zr=(e,t)=>{const n=e.map(e=>e.id);return t.filter(e=>n.includes(e.source)||n.includes(e.target))},Fr=(e,t,n,o,r,i=.1)=>{const a=t/(e.width*(1+i)),s=n/(e.height*(1+i)),l=Math.min(a,s),c=Xo(l,o,r);return{x:t/2-(e.x+e.width/2)*c,y:n/2-(e.y+e.height/2)*c,zoom:c}},Wr=(e,t=0)=>e.transition().duration(t);function qr(e,t,n,o){return(t[n]||[]).reduce((t,r)=>{var i,a;return`${e.id}-${r.id}-${n}`!==o&&t.push({id:r.id||null,type:n,nodeId:e.id,x:((null==(i=e.positionAbsolute)?void 0:i.x)??0)+r.x+r.width/2,y:((null==(a=e.positionAbsolute)?void 0:a.y)??0)+r.y+r.height/2}),t},[])}const Ur={source:null,target:null,sourceHandle:null,targetHandle:null},Gr=()=>({handleDomNode:null,isValid:!1,connection:Ur,endHandle:null});function Jr(e,t,n,o,r,i,a){const s="target"===r,l=a.querySelector(`.react-flow__handle[data-id="${null==e?void 0:e.nodeId}-${null==e?void 0:e.id}-${null==e?void 0:e.type}"]`),c={...Gr(),handleDomNode:l};if(l){const e=Qr(void 0,l),r=l.getAttribute("data-nodeid"),a=l.getAttribute("data-handleid"),u=l.classList.contains("connectable"),d=l.classList.contains("connectableend"),h={source:s?r:n,sourceHandle:s?a:o,target:s?n:r,targetHandle:s?o:a};c.connection=h;u&&d&&(t===dr.Strict?s&&"source"===e||!s&&"target"===e:r!==n||a!==o)&&(c.endHandle={nodeId:r,handleId:a,type:e},c.isValid=i(h))}return c}function Qr(e,t){return e||((null==t?void 0:t.classList.contains("target"))?"target":(null==t?void 0:t.classList.contains("source"))?"source":null)}function ei(e){null==e||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function ti(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function ni({event:e,handleId:t,nodeId:n,onConnect:o,isTarget:r,getState:i,setState:a,isValidConnection:s,edgeUpdaterType:l,onReconnectEnd:c}){const u=Wo(e.target),{connectionMode:d,domNode:h,autoPanOnConnect:f,connectionRadius:p,onConnectStart:g,panBy:m,getNodes:y,cancelConnection:v}=i();let x,b=0;const{x:w,y:S}=ir(e),E=null==u?void 0:u.elementFromPoint(w,S),N=Qr(l,E),_=null==h?void 0:h.getBoundingClientRect();if(!_||!N)return;let C,k=ir(e,_),M=!1,j=null,I=!1,P=null;const O=function({nodes:e,nodeId:t,handleId:n,handleType:o}){return e.reduce((e,r)=>{if(r[tr]){const{handleBounds:i}=r[tr];let a=[],s=[];i&&(a=qr(r,i,"source",`${t}-${n}-${o}`),s=qr(r,i,"target",`${t}-${n}-${o}`)),e.push(...a,...s)}return e},[])}({nodes:y(),nodeId:n,handleId:t,handleType:N}),A=()=>{if(!f)return;const[e,t]=Fo(k,_);m({x:e,y:t}),b=requestAnimationFrame(A)};function $(e){const{transform:o}=i();k=ir(e,_);const{handle:l,validHandleResult:c}=function(e,t,n,o,r,i){const{x:a,y:s}=ir(e),l=t.elementsFromPoint(a,s).find(e=>e.classList.contains("react-flow__handle"));if(l){const e=l.getAttribute("data-nodeid");if(e){const t=Qr(void 0,l),o=l.getAttribute("data-handleid"),a=i({nodeId:e,id:o,type:t});if(a){const i=r.find(n=>n.nodeId===e&&n.type===t&&n.id===o);return{handle:{id:o,type:t,nodeId:e,x:(null==i?void 0:i.x)||n.x,y:(null==i?void 0:i.y)||n.y},validHandleResult:a}}}}let c=[],u=1/0;if(r.forEach(e=>{const t=Math.sqrt((e.x-n.x)**2+(e.y-n.y)**2);if(t<=o){const n=i(e);t<=u&&(t<u?c=[{handle:e,validHandleResult:n}]:t===u&&c.push({handle:e,validHandleResult:n}),u=t)}}),!c.length)return{handle:null,validHandleResult:Gr()};if(1===c.length)return c[0];const d=c.some(({validHandleResult:e})=>e.isValid),h=c.some(({handle:e})=>"target"===e.type);return c.find(({handle:e,validHandleResult:t})=>h?"target"===e.type:!d||t.isValid)||c[0]}(e,u,Hr(k,o,!1,[1,1]),p,O,e=>Jr(e,d,n,t,r?"target":"source",s,u));if(x=l,M||(A(),M=!0),P=c.handleDomNode,j=c.connection,I=c.isValid,a({connectionPosition:x&&I?Vr({x:x.x,y:x.y},o):k,connectionStatus:ti(!!x,I),connectionEndHandle:c.endHandle}),!x&&!I&&!P)return ei(C);j.source!==j.target&&P&&(ei(C),C=P,P.classList.add("connecting","react-flow__handle-connecting"),P.classList.toggle("valid",I),P.classList.toggle("react-flow__handle-valid",I))}function z(e){var t,n;(x||P)&&j&&I&&(null==o||o(j)),null==(n=(t=i()).onConnectEnd)||n.call(t,e),l&&(null==c||c(e)),ei(C),v(),cancelAnimationFrame(b),M=!1,I=!1,j=null,P=null,u.removeEventListener("mousemove",$),u.removeEventListener("mouseup",z),u.removeEventListener("touchmove",$),u.removeEventListener("touchend",z)}a({connectionPosition:k,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:N,connectionStartHandle:{nodeId:n,handleId:t,type:N},connectionEndHandle:null}),null==g||g(e,{nodeId:n,handleId:t,handleType:N}),u.addEventListener("mousemove",$),u.addEventListener("mouseup",z),u.addEventListener("touchmove",$),u.addEventListener("touchend",z)}const oi=()=>!0,ri=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),ii=e.forwardRef(({type:t="source",position:n=wr.Top,isValidConnection:r,isConnectable:i=!0,isConnectableStart:a=!0,isConnectableEnd:s=!0,id:l,onConnect:c,children:u,className:d,onMouseDown:h,onTouchStart:f,...p},g)=>{var m,y;const v=l||null,x="target"===t,b=To(),w=e.useContext(Rr),{connectOnClick:E,noPanClassName:N}=Ro(ri,H),{connecting:_,clickConnecting:C}=Ro(((e,t,n)=>o=>{const{connectionStartHandle:r,connectionEndHandle:i,connectionClickStartHandle:a}=o;return{connecting:(null==r?void 0:r.nodeId)===e&&(null==r?void 0:r.handleId)===t&&(null==r?void 0:r.type)===n||(null==i?void 0:i.nodeId)===e&&(null==i?void 0:i.handleId)===t&&(null==i?void 0:i.type)===n,clickConnecting:(null==a?void 0:a.nodeId)===e&&(null==a?void 0:a.handleId)===t&&(null==a?void 0:a.type)===n}})(w,v,t),H);w||null==(y=(m=b.getState()).onError)||y.call(m,"010",Ao());const k=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=b.getState(),r={...t,...e};if(o){const{edges:e,setEdges:t}=b.getState();t(((e,t)=>{if(!e.source||!e.target)return t;let n;var o;return n="id"in(o=e)&&"source"in o&&"target"in o?{...e}:{...e,id:Br(e)},((e,t)=>t.some(t=>!(t.source!==e.source||t.target!==e.target||t.sourceHandle!==e.sourceHandle&&(t.sourceHandle||e.sourceHandle)||t.targetHandle!==e.targetHandle&&(t.targetHandle||e.targetHandle))))(n,t)?t:t.concat(n)})(r,e))}null==n||n(r),null==c||c(r)},M=e=>{if(!w)return;const t=rr(e);a&&(t&&0===e.button||!t)&&ni({event:e,handleId:v,nodeId:w,onConnect:k,isTarget:x,getState:b.getState,setState:b.setState,isValidConnection:r||b.getState().isValidConnection||oi}),t?null==h||h(e):null==f||f(e)};return o.createElement("div",{"data-handleid":v,"data-nodeid":w,"data-handlepos":n,"data-id":`${w}-${v}-${t}`,className:S(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",N,d,{source:!x,target:x,connectable:i,connectablestart:a,connectableend:s,connecting:C,connectionindicator:i&&(a&&!_||s&&_)}]),onMouseDown:M,onTouchStart:M,onClick:E?e=>{const{onClickConnectStart:n,onClickConnectEnd:o,connectionClickStartHandle:i,connectionMode:s,isValidConnection:l}=b.getState();if(!w||!i&&!a)return;if(!i)return null==n||n(e,{nodeId:w,handleId:v,handleType:t}),void b.setState({connectionClickStartHandle:{nodeId:w,type:t,handleId:v}});const c=Wo(e.target),u=r||l||oi,{connection:d,isValid:h}=Jr({nodeId:w,id:v,type:t},s,i.nodeId,i.handleId||null,i.type,u,c);h&&k(d),null==o||o(e),b.setState({connectionClickStartHandle:null})}:void 0,ref:g,...p},u)});ii.displayName="Handle";var ai=e.memo(ii);const si=({data:e,isConnectable:t,targetPosition:n=wr.Top,sourcePosition:r=wr.Bottom})=>o.createElement(o.Fragment,null,o.createElement(ai,{type:"target",position:n,isConnectable:t}),null==e?void 0:e.label,o.createElement(ai,{type:"source",position:r,isConnectable:t}));si.displayName="DefaultNode";var li=e.memo(si);const ci=({data:e,isConnectable:t,sourcePosition:n=wr.Bottom})=>o.createElement(o.Fragment,null,null==e?void 0:e.label,o.createElement(ai,{type:"source",position:n,isConnectable:t}));ci.displayName="InputNode";var ui=e.memo(ci);const di=({data:e,isConnectable:t,targetPosition:n=wr.Top})=>o.createElement(o.Fragment,null,o.createElement(ai,{type:"target",position:n,isConnectable:t}),null==e?void 0:e.label);di.displayName="OutputNode";var hi=e.memo(di);const fi=()=>null;fi.displayName="GroupNode";const pi=e=>({selectedNodes:e.getNodes().filter(e=>e.selected),selectedEdges:e.edges.filter(e=>e.selected).map(e=>({...e}))}),gi=e=>e.id;function mi(e,t){return H(e.selectedNodes.map(gi),t.selectedNodes.map(gi))&&H(e.selectedEdges.map(gi),t.selectedEdges.map(gi))}const yi=e.memo(({onSelectionChange:t})=>{const n=To(),{selectedNodes:o,selectedEdges:r}=Ro(pi,mi);return e.useEffect(()=>{const e={nodes:o,edges:r};null==t||t(e),n.getState().onSelectionChange.forEach(t=>t(e))},[o,r,t]),null});yi.displayName="SelectionListener";const vi=e=>!!e.onSelectionChange;function xi({onSelectionChange:e}){const t=Ro(vi);return e||t?o.createElement(yi,{onSelectionChange:e}):null}const bi=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function wi(t,n){e.useEffect(()=>{void 0!==t&&n(t)},[t])}function Si(t,n,o){e.useEffect(()=>{void 0!==n&&o({[t]:n})},[n])}const Ei=({nodes:t,edges:n,defaultNodes:o,defaultEdges:r,onConnect:i,onConnectStart:a,onConnectEnd:s,onClickConnectStart:l,onClickConnectEnd:c,nodesDraggable:u,nodesConnectable:d,nodesFocusable:h,edgesFocusable:f,edgesUpdatable:p,elevateNodesOnSelect:g,minZoom:m,maxZoom:y,nodeExtent:v,onNodesChange:x,onEdgesChange:b,elementsSelectable:w,connectionMode:S,snapGrid:E,snapToGrid:N,translateExtent:_,connectOnClick:C,defaultEdgeOptions:k,fitView:M,fitViewOptions:j,onNodesDelete:I,onEdgesDelete:P,onNodeDrag:O,onNodeDragStart:A,onNodeDragStop:$,onSelectionDrag:z,onSelectionDragStart:D,onSelectionDragStop:R,noPanClassName:T,nodeOrigin:B,rfId:L,autoPanOnConnect:V,autoPanOnNodeDrag:Y,onError:X,connectionRadius:K,isValidConnection:Z,nodeDragThreshold:F})=>{const{setNodes:W,setEdges:q,setDefaultNodesAndEdges:U,setMinZoom:G,setMaxZoom:J,setTranslateExtent:Q,setNodeExtent:ee,reset:te}=Ro(bi,H),ne=To();return e.useEffect(()=>{const e=null==r?void 0:r.map(e=>({...e,...k}));return U(o,e),()=>{te()}},[]),Si("defaultEdgeOptions",k,ne.setState),Si("connectionMode",S,ne.setState),Si("onConnect",i,ne.setState),Si("onConnectStart",a,ne.setState),Si("onConnectEnd",s,ne.setState),Si("onClickConnectStart",l,ne.setState),Si("onClickConnectEnd",c,ne.setState),Si("nodesDraggable",u,ne.setState),Si("nodesConnectable",d,ne.setState),Si("nodesFocusable",h,ne.setState),Si("edgesFocusable",f,ne.setState),Si("edgesUpdatable",p,ne.setState),Si("elementsSelectable",w,ne.setState),Si("elevateNodesOnSelect",g,ne.setState),Si("snapToGrid",N,ne.setState),Si("snapGrid",E,ne.setState),Si("onNodesChange",x,ne.setState),Si("onEdgesChange",b,ne.setState),Si("connectOnClick",C,ne.setState),Si("fitViewOnInit",M,ne.setState),Si("fitViewOnInitOptions",j,ne.setState),Si("onNodesDelete",I,ne.setState),Si("onEdgesDelete",P,ne.setState),Si("onNodeDrag",O,ne.setState),Si("onNodeDragStart",A,ne.setState),Si("onNodeDragStop",$,ne.setState),Si("onSelectionDrag",z,ne.setState),Si("onSelectionDragStart",D,ne.setState),Si("onSelectionDragStop",R,ne.setState),Si("noPanClassName",T,ne.setState),Si("nodeOrigin",B,ne.setState),Si("rfId",L,ne.setState),Si("autoPanOnConnect",V,ne.setState),Si("autoPanOnNodeDrag",Y,ne.setState),Si("onError",X,ne.setState),Si("connectionRadius",K,ne.setState),Si("isValidConnection",Z,ne.setState),Si("nodeDragThreshold",F,ne.setState),wi(t,W),wi(n,q),wi(m,G),wi(y,J),wi(_,Q),wi(v,ee),null},Ni={display:"none"},_i={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ci="react-flow__node-desc",ki="react-flow__edge-desc",Mi=e=>e.ariaLiveMessage;function ji({rfId:e}){const t=Ro(Mi);return o.createElement("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:_i},t)}function Ii({rfId:e,disableKeyboardA11y:t}){return o.createElement(o.Fragment,null,o.createElement("div",{id:`${Ci}-${e}`,style:Ni},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),o.createElement("div",{id:`${ki}-${e}`,style:Ni},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&o.createElement(ji,{rfId:e}))}var Pi=(t=null,n={actInsideInputWithModifier:!0})=>{const[o,r]=e.useState(!1),i=e.useRef(!1),a=e.useRef(new Set([])),[s,l]=e.useMemo(()=>{if(null!==t){const e=(Array.isArray(t)?t:[t]).filter(e=>"string"==typeof e).map(e=>e.split("+")),n=e.reduce((e,t)=>e.concat(...t),[]);return[e,n]}return[[],[]]},[t]);return e.useEffect(()=>{const e="undefined"!=typeof document?document:null,o=(null==n?void 0:n.target)||e;if(null!==t){const e=e=>{i.current=e.ctrlKey||e.metaKey||e.shiftKey;if((!i.current||i.current&&!n.actInsideInputWithModifier)&&or(e))return!1;const t=Ai(e.code,l);a.current.add(e[t]),Oi(s,a.current,!1)&&(e.preventDefault(),r(!0))},t=e=>{if((!i.current||i.current&&!n.actInsideInputWithModifier)&&or(e))return!1;const t=Ai(e.code,l);Oi(s,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),"Meta"===e.key&&a.current.clear(),i.current=!1},c=()=>{a.current.clear(),r(!1)};return null==o||o.addEventListener("keydown",e),null==o||o.addEventListener("keyup",t),window.addEventListener("blur",c),()=>{null==o||o.removeEventListener("keydown",e),null==o||o.removeEventListener("keyup",t),window.removeEventListener("blur",c)}}},[t,r]),o};function Oi(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Ai(e,t){return t.includes(e)?"code":"key"}function $i(e,t,n,o){var r,i;const a=e.parentNode||e.parentId;if(!a)return n;const s=t.get(a),l=Yr(s,o);return $i(s,t,{x:(n.x??0)+l.x,y:(n.y??0)+l.y,z:((null==(r=s[tr])?void 0:r.z)??0)>(n.z??0)?(null==(i=s[tr])?void 0:i.z)??0:n.z??0},o)}function zi(e,t,n){e.forEach(o=>{var r;const i=o.parentNode||o.parentId;if(i&&!e.has(i))throw new Error(`Parent node ${i} not found`);if(i||(null==n?void 0:n[o.id])){const{x:i,y:a,z:s}=$i(o,e,{...o.position,z:(null==(r=o[tr])?void 0:r.z)??0},t);o.positionAbsolute={x:i,y:a},o[tr].z=s,(null==n?void 0:n[o.id])&&(o[tr].isParent=!0)}})}function Di(e,t,n,o){const r=new Map,i={},a=o?1e3:0;return e.forEach(e=>{var n;const o=(er(e.zIndex)?e.zIndex:0)+(e.selected?a:0),s=t.get(e.id),l={...e,positionAbsolute:{x:e.position.x,y:e.position.y}},c=e.parentNode||e.parentId;c&&(i[c]=!0);const u=(null==s?void 0:s.type)&&(null==s?void 0:s.type)!==e.type;Object.defineProperty(l,tr,{enumerable:!1,value:{handleBounds:u||null==(n=null==s?void 0:s[tr])?void 0:n.handleBounds,z:o}}),r.set(e.id,l)}),zi(r,n,i),r}function Ri(e,t={}){const{getNodes:n,width:o,height:r,minZoom:i,maxZoom:a,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:u,nodeOrigin:d}=e(),h=t.initial&&!c&&u;if(s&&l&&(h||!t.initial)){const e=n().filter(e=>{var n;const o=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return(null==(n=t.nodes)?void 0:n.length)?o&&t.nodes.some(t=>t.id===e.id):o}),c=e.every(e=>e.width&&e.height);if(e.length>0&&c){const n=Xr(e,d),{x:c,y:u,zoom:h}=Fr(n,o,r,t.minZoom??i,t.maxZoom??a,t.padding??.1),f=mo.translate(c,u).scale(h);return"number"==typeof t.duration&&t.duration>0?s.transform(Wr(l,t.duration),f):s.transform(l,f),!0}}return!1}function Ti(e,t){return e.forEach(e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[tr]:n[tr],selected:e.selected})}),new Map(t)}function Bi(e,t){return t.map(t=>{const n=e.find(e=>e.id===t.id);return n&&(t.selected=n.selected),t})}function Li({changedNodes:e,changedEdges:t,get:n,set:o}){const{nodeInternals:r,edges:i,onNodesChange:a,onEdgesChange:s,hasDefaultNodes:l,hasDefaultEdges:c}=n();(null==e?void 0:e.length)&&(l&&o({nodeInternals:Ti(e,r)}),null==a||a(e)),(null==t?void 0:t.length)&&(c&&o({edges:Bi(t,i)}),null==s||s(t))}const Hi=()=>{},Vi={zoomIn:Hi,zoomOut:Hi,zoomTo:Hi,getZoom:()=>1,setViewport:Hi,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Hi,fitBounds:Hi,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},Yi=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function Xi(){const t=(()=>{const t=To(),{d3Zoom:n,d3Selection:o}=Ro(Yi,H);return e.useMemo(()=>o&&n?{zoomIn:e=>n.scaleBy(Wr(o,null==e?void 0:e.duration),1.2),zoomOut:e=>n.scaleBy(Wr(o,null==e?void 0:e.duration),1/1.2),zoomTo:(e,t)=>n.scaleTo(Wr(o,null==t?void 0:t.duration),e),getZoom:()=>t.getState().transform[2],setViewport:(e,r)=>{const[i,a,s]=t.getState().transform,l=mo.translate(e.x??i,e.y??a).scale(e.zoom??s);n.transform(Wr(o,null==r?void 0:r.duration),l)},getViewport:()=>{const[e,n,o]=t.getState().transform;return{x:e,y:n,zoom:o}},fitView:e=>Ri(t.getState,e),setCenter:(e,r,i)=>{const{width:a,height:s,maxZoom:l}=t.getState(),c=void 0!==(null==i?void 0:i.zoom)?i.zoom:l,u=a/2-e*c,d=s/2-r*c,h=mo.translate(u,d).scale(c);n.transform(Wr(o,null==i?void 0:i.duration),h)},fitBounds:(e,r)=>{const{width:i,height:a,minZoom:s,maxZoom:l}=t.getState(),{x:c,y:u,zoom:d}=Fr(e,i,a,s,l,(null==r?void 0:r.padding)??.1),h=mo.translate(c,u).scale(d);n.transform(Wr(o,null==r?void 0:r.duration),h)},project:e=>{const{transform:n,snapToGrid:o,snapGrid:r}=t.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Hr(e,n,o,r)},screenToFlowPosition:e=>{const{transform:n,snapToGrid:o,snapGrid:r,domNode:i}=t.getState();if(!i)return e;const{x:a,y:s}=i.getBoundingClientRect(),l={x:e.x-a,y:e.y-s};return Hr(l,n,o,r)},flowToScreenPosition:e=>{const{transform:n,domNode:o}=t.getState();if(!o)return e;const{x:r,y:i}=o.getBoundingClientRect(),a=Vr(e,n);return{x:a.x+r,y:a.y+i}},viewportInitialized:!0}:Vi,[n,o])})(),n=To(),o=e.useCallback(()=>n.getState().getNodes().map(e=>({...e})),[]),r=e.useCallback(e=>n.getState().nodeInternals.get(e),[]),i=e.useCallback(()=>{const{edges:e=[]}=n.getState();return e.map(e=>({...e}))},[]),a=e.useCallback(e=>{const{edges:t=[]}=n.getState();return t.find(t=>t.id===e)},[]),s=e.useCallback(e=>{const{getNodes:t,setNodes:o,hasDefaultNodes:r,onNodesChange:i}=n.getState(),a=t(),s="function"==typeof e?e(a):e;if(r)o(s);else if(i){i(0===s.length?a.map(e=>({type:"remove",id:e.id})):s.map(e=>({item:e,type:"reset"})))}},[]),l=e.useCallback(e=>{const{edges:t=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:i}=n.getState(),a="function"==typeof e?e(t):e;if(r)o(a);else if(i){i(0===a.length?t.map(e=>({type:"remove",id:e.id})):a.map(e=>({item:e,type:"reset"})))}},[]),c=e.useCallback(e=>{const t=Array.isArray(e)?e:[e],{getNodes:o,setNodes:r,hasDefaultNodes:i,onNodesChange:a}=n.getState();if(i){r([...o(),...t])}else if(a){a(t.map(e=>({item:e,type:"add"})))}},[]),u=e.useCallback(e=>{const t=Array.isArray(e)?e:[e],{edges:o=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a}=n.getState();if(i)r([...o,...t]);else if(a){a(t.map(e=>({item:e,type:"add"})))}},[]),d=e.useCallback(()=>{const{getNodes:e,edges:t=[],transform:o}=n.getState(),[r,i,a]=o;return{nodes:e().map(e=>({...e})),edges:t.map(e=>({...e})),viewport:{x:r,y:i,zoom:a}}},[]),h=e.useCallback(({nodes:e,edges:t})=>{const{nodeInternals:o,getNodes:r,edges:i,hasDefaultNodes:a,hasDefaultEdges:s,onNodesDelete:l,onEdgesDelete:c,onNodesChange:u,onEdgesChange:d}=n.getState(),h=(e||[]).map(e=>e.id),f=(t||[]).map(e=>e.id),p=r().reduce((e,t)=>{const n=t.parentNode||t.parentId,o=!h.includes(t.id)&&n&&e.find(e=>e.id===n);return("boolean"!=typeof t.deletable||t.deletable)&&(h.includes(t.id)||o)&&e.push(t),e},[]),g=i.filter(e=>"boolean"!=typeof e.deletable||e.deletable),m=g.filter(e=>f.includes(e.id));if(p||m){const e=Zr(p,g),t=[...m,...e],r=t.reduce((e,t)=>(e.includes(t.id)||e.push(t.id),e),[]);if((s||a)&&(s&&n.setState({edges:i.filter(e=>!r.includes(e.id))}),a&&(p.forEach(e=>{o.delete(e.id)}),n.setState({nodeInternals:new Map(o)}))),r.length>0&&(null==c||c(t),d&&d(r.map(e=>({id:e,type:"remove"})))),p.length>0&&(null==l||l(p),u)){u(p.map(e=>({id:e.id,type:"remove"})))}}},[]),f=e.useCallback(e=>{const t=er((o=e).width)&&er(o.height)&&er(o.x)&&er(o.y);var o;const r=t?null:n.getState().nodeInternals.get(e.id);if(!t&&!r)return[null,null,t];return[t?e:Jo(r),r,t]},[]),p=e.useCallback((e,t=!0,o)=>{const[r,i,a]=f(e);return r?(o||n.getState().getNodes()).filter(e=>{if(!(a||e.id!==i.id&&e.positionAbsolute))return!1;const n=Jo(e),o=Qo(n,r);return t&&o>0||o>=r.width*r.height}):[]},[]),g=e.useCallback((e,t,n=!0)=>{const[o]=f(e);if(!o)return!1;const r=Qo(o,t);return n&&r>0||r>=o.width*o.height},[]);return e.useMemo(()=>({...t,getNodes:o,getNode:r,getEdges:i,getEdge:a,setNodes:s,setEdges:l,addNodes:c,addEdges:u,toObject:d,deleteElements:h,getIntersectingNodes:p,isNodeIntersecting:g}),[t,o,r,i,a,s,l,c,u,d,h,p,g])}const Ki={actInsideInputWithModifier:!1};const Zi={position:"absolute",width:"100%",height:"100%",top:0,left:0},Fi=e=>({x:e.x,y:e.y,zoom:e.k}),Wi=(e,t)=>e.target.closest(`.${t}`),qi=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),Ui=e=>{const t=e.ctrlKey&&ar()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},Gi=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),Ji=({onMove:t,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:i,zoomOnScroll:a=!0,zoomOnPinch:s=!0,panOnScroll:l=!1,panOnScrollSpeed:c=.5,panOnScrollMode:u=fr.Free,zoomOnDoubleClick:d=!0,elementsSelectable:h,panOnDrag:f=!0,defaultViewport:p,translateExtent:g,minZoom:m,maxZoom:y,zoomActivationKeyCode:v,preventScrolling:x=!0,children:b,noWheelClassName:w,noPanClassName:S})=>{const E=e.useRef(),N=To(),_=e.useRef(!1),C=e.useRef(!1),k=e.useRef(null),M=e.useRef({x:0,y:0,zoom:0}),{d3Zoom:j,d3Selection:I,d3ZoomHandler:P,userSelectionActive:O}=Ro(Gi,H),A=Pi(v),$=e.useRef(0),z=e.useRef(!1),D=e.useRef();return function(t){const n=To();e.useEffect(()=>{let e;const o=()=>{var e,o;if(!t.current)return;const r=Yo(t.current);0!==r.height&&0!==r.width||null==(o=(e=n.getState()).onError)||o.call(e,"004",jo()),n.setState({width:r.width||500,height:r.height||500})};return o(),window.addEventListener("resize",o),t.current&&(e=new ResizeObserver(()=>o()),e.observe(t.current)),()=>{window.removeEventListener("resize",o),e&&t.current&&e.unobserve(t.current)}},[])}(k),e.useEffect(()=>{if(k.current){const e=k.current.getBoundingClientRect(),t=_o().scaleExtent([m,y]).translateExtent(g),n=it(k.current).call(t),o=mo.translate(p.x,p.y).scale(Xo(p.zoom,m,y)),r=[[0,0],[e.width,e.height]],i=t.constrain()(o,r,g);t.transform(n,i),t.wheelDelta(Ui),N.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[i.x,i.y,i.k],domNode:k.current.closest(".react-flow")})}},[]),e.useEffect(()=>{I&&j&&(!l||A||O?void 0!==P&&I.on("wheel.zoom",function(e,t){if(!x&&"wheel"===e.type&&!e.ctrlKey||Wi(e,w))return null;e.preventDefault(),P.call(this,e,t)},{passive:!1}):I.on("wheel.zoom",e=>{if(Wi(e,w))return!1;e.preventDefault(),e.stopImmediatePropagation();const o=I.property("__zoom").k||1;if(e.ctrlKey&&s){const t=at(e),n=Ui(e),r=o*Math.pow(2,n);return void j.scaleTo(I,r,t,e)}const i=1===e.deltaMode?20:1;let a=u===fr.Vertical?0:e.deltaX*i,l=u===fr.Horizontal?0:e.deltaY*i;!ar()&&e.shiftKey&&u!==fr.Vertical&&(a=e.deltaY*i,l=0),j.translateBy(I,-a/o*c,-l/o*c,{internal:!0});const d=Fi(I.property("__zoom")),{onViewportChangeStart:h,onViewportChange:f,onViewportChangeEnd:p}=N.getState();clearTimeout(D.current),z.current||(z.current=!0,null==n||n(e,d),null==h||h(d)),z.current&&(null==t||t(e,d),null==f||f(d),D.current=setTimeout(()=>{null==r||r(e,d),null==p||p(d),z.current=!1},150))},{passive:!1}))},[O,l,u,I,j,P,A,s,x,w,n,t,r]),e.useEffect(()=>{j&&j.on("start",e=>{var t,o;if(!e.sourceEvent||e.sourceEvent.internal)return null;$.current=null==(t=e.sourceEvent)?void 0:t.button;const{onViewportChangeStart:r}=N.getState(),i=Fi(e.transform);_.current=!0,M.current=i,"mousedown"===(null==(o=e.sourceEvent)?void 0:o.type)&&N.setState({paneDragging:!0}),null==r||r(i),null==n||n(e.sourceEvent,i)})},[j,n]),e.useEffect(()=>{j&&(O&&!_.current?j.on("zoom",null):O||j.on("zoom",e=>{var n;const{onViewportChange:o}=N.getState();if(N.setState({transform:[e.transform.x,e.transform.y,e.transform.k]}),C.current=!(!i||!qi(f,$.current??0)),(t||o)&&!(null==(n=e.sourceEvent)?void 0:n.internal)){const n=Fi(e.transform);null==o||o(n),null==t||t(e.sourceEvent,n)}}))},[O,j,t,f,i]),e.useEffect(()=>{j&&j.on("end",e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;const{onViewportChangeEnd:t}=N.getState();if(_.current=!1,N.setState({paneDragging:!1}),i&&qi(f,$.current??0)&&!C.current&&i(e.sourceEvent),C.current=!1,(r||t)&&(n=M.current,o=e.transform,n.x!==o.x||n.y!==o.y||n.zoom!==o.k)){const n=Fi(e.transform);M.current=n,clearTimeout(E.current),E.current=setTimeout(()=>{null==t||t(n),null==r||r(e.sourceEvent,n)},l?150:0)}var n,o})},[j,l,f,r,i]),e.useEffect(()=>{j&&j.filter(e=>{const t=A||a,n=s&&e.ctrlKey;if((!0===f||Array.isArray(f)&&f.includes(1))&&1===e.button&&"mousedown"===e.type&&(Wi(e,"react-flow__node")||Wi(e,"react-flow__edge")))return!0;if(!(f||t||l||d||s))return!1;if(O)return!1;if(!d&&"dblclick"===e.type)return!1;if(Wi(e,w)&&"wheel"===e.type)return!1;if(Wi(e,S)&&("wheel"!==e.type||l&&"wheel"===e.type&&!A))return!1;if(!s&&e.ctrlKey&&"wheel"===e.type)return!1;if(!t&&!l&&!n&&"wheel"===e.type)return!1;if(!f&&("mousedown"===e.type||"touchstart"===e.type))return!1;if(Array.isArray(f)&&!f.includes(e.button)&&"mousedown"===e.type)return!1;const o=Array.isArray(f)&&f.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&o})},[O,j,a,s,l,d,f,h,A]),o.createElement("div",{className:"react-flow__renderer",ref:k,style:Zi},b)},Qi=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ea(){const{userSelectionActive:e,userSelectionRect:t}=Ro(Qi,H);return e&&t?o.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function ta(e,t){const n=t.parentNode||t.parentId,o=e.find(e=>e.id===n);if(o){const e=t.position.x+t.width-o.width,n=t.position.y+t.height-o.height;if(e>0||n>0||t.position.x<0||t.position.y<0){if(o.style={...o.style},o.style.width=o.style.width??o.width,o.style.height=o.style.height??o.height,e>0&&(o.style.width+=e),n>0&&(o.style.height+=n),t.position.x<0){const e=Math.abs(t.position.x);o.position.x=o.position.x-e,o.style.width+=e,t.position.x=0}if(t.position.y<0){const e=Math.abs(t.position.y);o.position.y=o.position.y-e,o.style.height+=e,t.position.y=0}o.width=o.style.width,o.height=o.style.height}}}function na(e,t){return function(e,t){if(e.some(e=>"reset"===e.type))return e.filter(e=>"reset"===e.type).map(e=>e.item);const n=e.filter(e=>"add"===e.type).map(e=>e.item);return t.reduce((t,n)=>{const o=e.filter(e=>e.id===n.id);if(0===o.length)return t.push(n),t;const r={...n};for(const e of o)if(e)switch(e.type){case"select":r.selected=e.selected;break;case"position":void 0!==e.position&&(r.position=e.position),void 0!==e.positionAbsolute&&(r.positionAbsolute=e.positionAbsolute),void 0!==e.dragging&&(r.dragging=e.dragging),r.expandParent&&ta(t,r);break;case"dimensions":void 0!==e.dimensions&&(r.width=e.dimensions.width,r.height=e.dimensions.height),void 0!==e.updateStyle&&(r.style={...r.style||{},...e.dimensions}),"boolean"==typeof e.resizing&&(r.resizing=e.resizing),r.expandParent&&ta(t,r);break;case"remove":return t}return t.push(r),t},n)}(e,t)}const oa=(e,t)=>({id:e,type:"select",selected:t});function ra(e,t){return e.reduce((e,n)=>{const o=t.includes(n.id);return!n.selected&&o?(n.selected=!0,e.push(oa(n.id,!0))):n.selected&&!o&&(n.selected=!1,e.push(oa(n.id,!1))),e},[])}const ia=(e,t)=>n=>{n.target===t.current&&(null==e||e(n))},aa=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),sa=e.memo(({isSelecting:t,selectionMode:n=gr.Full,panOnDrag:r,onSelectionStart:i,onSelectionEnd:a,onPaneClick:s,onPaneContextMenu:l,onPaneScroll:c,onPaneMouseEnter:u,onPaneMouseMove:d,onPaneMouseLeave:h,children:f})=>{const p=e.useRef(null),g=To(),m=e.useRef(0),y=e.useRef(0),v=e.useRef(),{userSelectionActive:x,elementsSelectable:b,dragging:w}=Ro(aa,H),E=()=>{g.setState({userSelectionActive:!1,userSelectionRect:null}),m.current=0,y.current=0},N=e=>{null==s||s(e),g.getState().resetSelectedElements(),g.setState({nodesSelectionActive:!1})},_=c?e=>c(e):void 0,C=b&&(t||x);return o.createElement("div",{className:S(["react-flow__pane",{dragging:w,selection:t}]),onClick:C?void 0:ia(N,p),onContextMenu:ia(e=>{Array.isArray(r)&&(null==r?void 0:r.includes(2))?e.preventDefault():null==l||l(e)},p),onWheel:ia(_,p),onMouseEnter:C?void 0:u,onMouseDown:C?e=>{const{resetSelectedElements:n,domNode:o}=g.getState();if(v.current=null==o?void 0:o.getBoundingClientRect(),!b||!t||0!==e.button||e.target!==p.current||!v.current)return;const{x:r,y:a}=ir(e,v.current);n(),g.setState({userSelectionRect:{width:0,height:0,startX:r,startY:a,x:r,y:a}}),null==i||i(e)}:void 0,onMouseMove:C?e=>{const{userSelectionRect:o,nodeInternals:r,edges:i,transform:a,onNodesChange:s,onEdgesChange:l,nodeOrigin:c,getNodes:u}=g.getState();if(!t||!v.current||!o)return;g.setState({userSelectionActive:!0,nodesSelectionActive:!1});const d=ir(e,v.current),h=o.startX??0,f=o.startY??0,p={...o,x:d.x<h?d.x:h,y:d.y<f?d.y:f,width:Math.abs(d.x-h),height:Math.abs(d.y-f)},x=u(),b=Kr(r,p,a,n===gr.Partial,!0,c),w=Zr(b,i).map(e=>e.id),S=b.map(e=>e.id);if(m.current!==S.length){m.current=S.length;const e=ra(x,S);e.length&&(null==s||s(e))}if(y.current!==w.length){y.current=w.length;const e=ra(i,w);e.length&&(null==l||l(e))}g.setState({userSelectionRect:p})}:d,onMouseUp:C?e=>{if(0!==e.button)return;const{userSelectionRect:t}=g.getState();!x&&t&&e.target===p.current&&(null==N||N(e)),g.setState({nodesSelectionActive:m.current>0}),E(),null==a||a(e)}:void 0,onMouseLeave:C?e=>{x&&(g.setState({nodesSelectionActive:m.current>0}),null==a||a(e)),E()}:h,ref:p,style:Zi},f,o.createElement(ea,null))});function la(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const o=t.get(n);return!!o&&(!!o.selected||la(o,t))}function ca(e,t,n){let o=e;do{if(null==o?void 0:o.matches(t))return!0;if(o===n.current)return!1;o=o.parentElement}while(o);return!1}function ua(e,t,n,o){return Array.from(e.values()).filter(n=>(n.selected||n.id===o)&&(!n.parentNode||n.parentId||!la(n,e))&&(n.draggable||t&&void 0===n.draggable)).map(e=>{var t,o;return{id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:n.x-((null==(t=e.positionAbsolute)?void 0:t.x)??0),y:n.y-((null==(o=e.positionAbsolute)?void 0:o.y)??0)},delta:{x:0,y:0},extent:e.extent,parentNode:e.parentNode||e.parentId,parentId:e.parentNode||e.parentId,width:e.width,height:e.height,expandParent:e.expandParent}})}function da(e,t,n,o,r=[0,0],i){const a=function(e,t){return t&&"parent"!==t?[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]:t}(e,e.extent||o);let s=a;const l=e.parentNode||e.parentId;if("parent"!==e.extent||e.expandParent){if(e.extent&&l&&"parent"!==e.extent){const t=n.get(l),{x:o,y:i}=Yr(t,r).positionAbsolute;s=[[e.extent[0][0]+o,e.extent[0][1]+i],[e.extent[1][0]+o,e.extent[1][1]+i]]}}else if(l&&e.width&&e.height){const t=n.get(l),{x:o,y:i}=Yr(t,r).positionAbsolute;s=t&&er(o)&&er(i)&&er(t.width)&&er(t.height)?[[o+e.width*r[0],i+e.height*r[1]],[o+t.width-e.width+e.width*r[0],i+t.height-e.height+e.height*r[1]]]:s}else null==i||i("005",Io()),s=a;let c={x:0,y:0};if(l){const e=n.get(l);c=Yr(e,r).positionAbsolute}const u=s&&"parent"!==s?Ko(t,s):t;return{position:{x:u.x-c.x,y:u.y-c.y},positionAbsolute:u}}function ha({nodeId:e,dragItems:t,nodeInternals:n}){const o=t.map(e=>({...n.get(e.id),position:e.position,positionAbsolute:e.positionAbsolute}));return[e?o.find(t=>t.id===e):o[0],o]}sa.displayName="Pane";const fa=(e,t,n,o)=>{const r=t.querySelectorAll(e);if(!r||!r.length)return null;const i=Array.from(r),a=t.getBoundingClientRect(),s=a.width*o[0],l=a.height*o[1];return i.map(e=>{const t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-a.left-s)/n,y:(t.top-a.top-l)/n,...Yo(e)}})};function pa(e,t,n){return void 0===n?n:o=>{const r=t().nodeInternals.get(e);r&&n(o,{...r})}}function ga({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:a,nodeInternals:s,onError:l}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&a)&&(i({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var e;return null==(e=null==o?void 0:o.current)?void 0:e.blur()})):r([e])):null==l||l("012",zo(e))}function ma(e){return(t,n,o)=>null==e?void 0:e(t,o)}function ya({nodeRef:t,disabled:n=!1,noDragClassName:o,handleSelector:r,nodeId:i,isSelectable:a,selectNodesOnDrag:s}){const l=To(),[c,u]=e.useState(!1),d=e.useRef([]),h=e.useRef({x:null,y:null}),f=e.useRef(0),p=e.useRef(null),g=e.useRef({x:0,y:0}),m=e.useRef(null),y=e.useRef(!1),v=e.useRef(!1),x=e.useRef(!1),b=function(){const t=To();return e.useCallback(({sourceEvent:e})=>{const{transform:n,snapGrid:o,snapToGrid:r}=t.getState(),i=e.touches?e.touches[0].clientX:e.clientX,a=e.touches?e.touches[0].clientY:e.clientY,s={x:(i-n[0])/n[2],y:(a-n[1])/n[2]};return{xSnapped:r?o[0]*Math.round(s.x/o[0]):s.x,ySnapped:r?o[1]*Math.round(s.y/o[1]):s.y,...s}},[])}();return e.useEffect(()=>{if(null==t?void 0:t.current){const e=it(t.current),c=({x:e,y:t})=>{const{nodeInternals:n,onNodeDrag:o,onSelectionDrag:r,updateNodePositions:a,nodeExtent:s,snapGrid:c,snapToGrid:f,nodeOrigin:p,onError:g}=l.getState();h.current={x:e,y:t};let y=!1,v={x:0,y:0,x2:0,y2:0};if(d.current.length>1&&s){const e=Xr(d.current,p);v=Uo(e)}if(d.current=d.current.map(o=>{const r={x:e-o.distance.x,y:t-o.distance.y};f&&(r.x=c[0]*Math.round(r.x/c[0]),r.y=c[1]*Math.round(r.y/c[1]));const i=[[s[0][0],s[0][1]],[s[1][0],s[1][1]]];d.current.length>1&&s&&!o.extent&&(i[0][0]=o.positionAbsolute.x-v.x+s[0][0],i[1][0]=o.positionAbsolute.x+(o.width??0)-v.x2+s[1][0],i[0][1]=o.positionAbsolute.y-v.y+s[0][1],i[1][1]=o.positionAbsolute.y+(o.height??0)-v.y2+s[1][1]);const a=da(o,r,n,i,p,g);return y=y||o.position.x!==a.position.x||o.position.y!==a.position.y,o.position=a.position,o.positionAbsolute=a.positionAbsolute,o}),!y)return;a(d.current,!0,!0),u(!0);const x=i?o:ma(r);if(x&&m.current){const[e,t]=ha({nodeId:i,dragItems:d.current,nodeInternals:n});x(m.current,e,t)}},w=()=>{if(!p.current)return;const[e,t]=Fo(g.current,p.current);if(0!==e||0!==t){const{transform:n,panBy:o}=l.getState();h.current.x=(h.current.x??0)-e/n[2],h.current.y=(h.current.y??0)-t/n[2],o({x:e,y:t})&&c(h.current)}f.current=requestAnimationFrame(w)},S=e=>{var n;const{nodeInternals:o,multiSelectionActive:r,nodesDraggable:c,unselectNodesAndEdges:u,onNodeDragStart:f,onSelectionDragStart:p}=l.getState();v.current=!0;const g=i?f:ma(p);s&&a||r||!i||(null==(n=o.get(i))?void 0:n.selected)||u(),i&&a&&s&&ga({id:i,store:l,nodeRef:t});const m=b(e);if(h.current=m,d.current=ua(o,c,m,i),g&&d.current){const[t,n]=ha({nodeId:i,dragItems:d.current,nodeInternals:o});g(e.sourceEvent,t,n)}};if(!n){const n=function(){var e,t,n,o,r=gt,i=mt,a=yt,s=vt,l={},c=Y("start","drag","end"),u=0,d=0;function h(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,st).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var l=x(this,i.call(this,a,s),a,s,"mouse");l&&(it(a.view).on("mousemove.drag",p,lt).on("mouseup.drag",g,lt),dt(a.view),ct(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function p(o){if(ut(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>d}l.mouse("drag",o)}function g(e){it(e.view).on("mousemove.drag mouseup.drag",null),ht(e.view,n),ut(e),l.mouse("end",e)}function m(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(o=x(this,s,e,t,a[n].identifier,a[n]))&&(ct(e),o("start",e,a[n]))}}function y(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&(ut(e),n("drag",e,o[t]))}function v(e){var t,n,r=e.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout(function(){o=null},500),t=0;t<i;++t)(n=l[r[t].identifier])&&(ct(e),n("end",e,r[t]))}function x(e,t,n,o,r,i){var s,d,f,p=c.copy(),g=at(i||n,t);if(null!=(f=a.call(e,new pt("beforestart",{sourceEvent:n,target:h,identifier:r,active:u,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),o)))return s=f.x-g[0]||0,d=f.y-g[1]||0,function n(i,a,c){var m,y=g;switch(i){case"start":l[r]=n,m=u++;break;case"end":delete l[r],--u;case"drag":g=at(c||a,t),m=u}p.call(i,e,new pt(i,{sourceEvent:a,subject:f,target:h,identifier:r,active:m,x:g[0]+s,y:g[1]+d,dx:g[0]-y[0],dy:g[1]-y[1],dispatch:p}),o)}}return h.filter=function(e){return arguments.length?(r="function"==typeof e?e:ft(!!e),h):r},h.container=function(e){return arguments.length?(i="function"==typeof e?e:ft(e),h):i},h.subject=function(e){return arguments.length?(a="function"==typeof e?e:ft(e),h):a},h.touchable=function(e){return arguments.length?(s="function"==typeof e?e:ft(!!e),h):s},h.on=function(){var e=c.on.apply(c,arguments);return e===c?h:e},h.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,h):Math.sqrt(d)},h}().on("start",e=>{const{domNode:t,nodeDragThreshold:n}=l.getState();0===n&&S(e),x.current=!1;const o=b(e);h.current=o,p.current=(null==t?void 0:t.getBoundingClientRect())||null,g.current=ir(e.sourceEvent,p.current)}).on("drag",e=>{var t,n;const o=b(e),{autoPanOnNodeDrag:r,nodeDragThreshold:i}=l.getState();if("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1&&(x.current=!0),!x.current){if(!y.current&&v.current&&r&&(y.current=!0,w()),!v.current){const r=o.xSnapped-((null==(t=null==h?void 0:h.current)?void 0:t.x)??0),a=o.ySnapped-((null==(n=null==h?void 0:h.current)?void 0:n.y)??0);Math.sqrt(r*r+a*a)>i&&S(e)}(h.current.x!==o.xSnapped||h.current.y!==o.ySnapped)&&d.current&&v.current&&(m.current=e.sourceEvent,g.current=ir(e.sourceEvent,p.current),c(o))}}).on("end",e=>{if(v.current&&!x.current&&(u(!1),y.current=!1,v.current=!1,cancelAnimationFrame(f.current),d.current)){const{updateNodePositions:t,nodeInternals:n,onNodeDragStop:o,onSelectionDragStop:r}=l.getState(),a=i?o:ma(r);if(t(d.current,!1,!1),a){const[t,o]=ha({nodeId:i,dragItems:d.current,nodeInternals:n});a(e.sourceEvent,t,o)}}}).filter(e=>{const n=e.target;return!e.button&&(!o||!ca(n,`.${o}`,t))&&(!r||ca(n,r,t))});return e.call(n),()=>{e.on(".drag",null)}}e.on(".drag",null)}},[t,n,o,r,a,l,i,s,b]),c}function va(){const t=To();return e.useCallback(e=>{const{nodeInternals:n,nodeExtent:o,updateNodePositions:r,getNodes:i,snapToGrid:a,snapGrid:s,onError:l,nodesDraggable:c}=t.getState(),u=i().filter(e=>e.selected&&(e.draggable||c&&void 0===e.draggable)),d=a?s[0]:5,h=a?s[1]:5,f=e.isShiftPressed?4:1,p=e.x*d*f,g=e.y*h*f;r(u.map(e=>{if(e.positionAbsolute){const t={x:e.positionAbsolute.x+p,y:e.positionAbsolute.y+g};a&&(t.x=s[0]*Math.round(t.x/s[0]),t.y=s[1]*Math.round(t.y/s[1]));const{positionAbsolute:r,position:i}=da(e,t,n,o,void 0,l);e.position=i,e.positionAbsolute=r}return e}),!0,!1)},[])}const xa={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var ba=t=>{const n=({id:n,type:r,data:i,xPos:a,yPos:s,xPosOrigin:l,yPosOrigin:c,selected:u,onClick:d,onMouseEnter:h,onMouseMove:f,onMouseLeave:p,onContextMenu:g,onDoubleClick:m,style:y,className:v,isDraggable:x,isSelectable:b,isConnectable:w,isFocusable:E,selectNodesOnDrag:N,sourcePosition:_,targetPosition:C,hidden:k,resizeObserver:M,dragHandle:j,zIndex:I,isParent:P,noDragClassName:O,noPanClassName:A,initialized:$,disableKeyboardA11y:z,ariaLabel:D,rfId:R,hasHandleBounds:T})=>{const B=To(),L=e.useRef(null),H=e.useRef(null),V=e.useRef(_),Y=e.useRef(C),X=e.useRef(r),K=b||x||d||h||f||p,Z=va(),F=pa(n,B.getState,h),W=pa(n,B.getState,f),q=pa(n,B.getState,p),U=pa(n,B.getState,g),G=pa(n,B.getState,m);e.useEffect(()=>()=>{H.current&&(null==M||M.unobserve(H.current),H.current=null)},[]),e.useEffect(()=>{if(L.current&&!k){const e=L.current;$&&T&&H.current===e||(H.current&&(null==M||M.unobserve(H.current)),null==M||M.observe(e),H.current=e)}},[k,$,T]),e.useEffect(()=>{const e=X.current!==r,t=V.current!==_,o=Y.current!==C;L.current&&(e||t||o)&&(e&&(X.current=r),t&&(V.current=_),o&&(Y.current=C),B.getState().updateNodeDimensions([{id:n,nodeElement:L.current,forceUpdate:!0}]))},[n,r,_,C]);const J=ya({nodeRef:L,disabled:k||!x,noDragClassName:O,handleSelector:j,nodeId:n,isSelectable:b,selectNodesOnDrag:N});return k?null:o.createElement("div",{className:S(["react-flow__node",`react-flow__node-${r}`,{[A]:x},v,{selected:u,selectable:b,parent:P,dragging:J}]),ref:L,style:{zIndex:I,transform:`translate(${l}px,${c}px)`,pointerEvents:K?"all":"none",visibility:$?"visible":"hidden",...y},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:F,onMouseMove:W,onMouseLeave:q,onContextMenu:U,onClick:e=>{const{nodeDragThreshold:t}=B.getState();if(b&&(!N||!x||t>0)&&ga({id:n,store:B,nodeRef:L}),d){const t=B.getState().nodeInternals.get(n);t&&d(e,{...t})}},onDoubleClick:G,onKeyDown:E?e=>{if(!or(e)&&!z)if(nr.includes(e.key)&&b){const t="Escape"===e.key;ga({id:n,store:B,unselect:t,nodeRef:L})}else x&&u&&Object.prototype.hasOwnProperty.call(xa,e.key)&&(B.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~a}, y: ${~~s}`}),Z({x:xa[e.key].x,y:xa[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:E?0:void 0,role:E?"button":void 0,"aria-describedby":z?void 0:`${Ci}-${R}`,"aria-label":D},o.createElement(Tr,{value:n},o.createElement(t,{id:n,data:i,type:r,xPos:a,yPos:s,selected:u,isConnectable:w,sourcePosition:_,targetPosition:C,dragging:J,dragHandle:j,zIndex:I})))};return n.displayName="NodeWrapper",e.memo(n)};const wa=e=>{const t=e.getNodes().filter(e=>e.selected);return{...Xr(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};var Sa=e.memo(function({onSelectionContextMenu:t,noPanClassName:n,disableKeyboardA11y:r}){const i=To(),{width:a,height:s,x:l,y:c,transformString:u,userSelectionActive:d}=Ro(wa,H),h=va(),f=e.useRef(null);if(e.useEffect(()=>{var e;r||null==(e=f.current)||e.focus({preventScroll:!0})},[r]),ya({nodeRef:f}),d||!a||!s)return null;const p=t?e=>{const n=i.getState().getNodes().filter(e=>e.selected);t(e,n)}:void 0;return o.createElement("div",{className:S(["react-flow__nodesselection","react-flow__container",n]),style:{transform:u}},o.createElement("div",{ref:f,className:"react-flow__nodesselection-rect",onContextMenu:p,tabIndex:r?void 0:-1,onKeyDown:r?void 0:e=>{Object.prototype.hasOwnProperty.call(xa,e.key)&&h({x:xa[e.key].x,y:xa[e.key].y,isShiftPressed:e.shiftKey})},style:{width:a,height:s,top:c,left:l}}))});const Ea=e=>e.nodesSelectionActive,Na=({children:t,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:l,deleteKeyCode:c,onMove:u,onMoveStart:d,onMoveEnd:h,selectionKeyCode:f,selectionOnDrag:p,selectionMode:g,onSelectionStart:m,onSelectionEnd:y,multiSelectionKeyCode:v,panActivationKeyCode:x,zoomActivationKeyCode:b,elementsSelectable:w,zoomOnScroll:S,zoomOnPinch:E,panOnScroll:N,panOnScrollSpeed:_,panOnScrollMode:C,zoomOnDoubleClick:k,panOnDrag:M,defaultViewport:j,translateExtent:I,minZoom:P,maxZoom:O,preventScrolling:A,onSelectionContextMenu:$,noWheelClassName:z,noPanClassName:D,disableKeyboardA11y:R})=>{const T=Ro(Ea),B=Pi(f),L=Pi(x),H=L||M,V=L||N,Y=B||p&&!0!==H;return(({deleteKeyCode:t,multiSelectionKeyCode:n})=>{const o=To(),{deleteElements:r}=Xi(),i=Pi(t,Ki),a=Pi(n);e.useEffect(()=>{if(i){const{edges:e,getNodes:t}=o.getState(),n=t().filter(e=>e.selected),i=e.filter(e=>e.selected);r({nodes:n,edges:i}),o.setState({nodesSelectionActive:!1})}},[i]),e.useEffect(()=>{o.setState({multiSelectionActive:a})},[a])})({deleteKeyCode:c,multiSelectionKeyCode:v}),o.createElement(Ji,{onMove:u,onMoveStart:d,onMoveEnd:h,onPaneContextMenu:s,elementsSelectable:w,zoomOnScroll:S,zoomOnPinch:E,panOnScroll:V,panOnScrollSpeed:_,panOnScrollMode:C,zoomOnDoubleClick:k,panOnDrag:!B&&H,defaultViewport:j,translateExtent:I,minZoom:P,maxZoom:O,zoomActivationKeyCode:b,preventScrolling:A,noWheelClassName:z,noPanClassName:D},o.createElement(sa,{onSelectionStart:m,onSelectionEnd:y,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:l,panOnDrag:H,isSelecting:!!Y,selectionMode:g},t,T&&o.createElement(Sa,{onSelectionContextMenu:$,noPanClassName:D,disableKeyboardA11y:R})))};Na.displayName="FlowRenderer";var _a=e.memo(Na);function Ca(e){return{...{input:ba(e.input||ui),default:ba(e.default||li),output:ba(e.output||hi),group:ba(e.group||fi)},...Object.keys(e).filter(e=>!["input","default","output","group"].includes(e)).reduce((t,n)=>(t[n]=ba(e[n]||li),t),{})}}const ka=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Ma=t=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,updateNodeDimensions:s,onError:l}=Ro(ka,H),c=(u=t.onlyRenderVisibleElements,Ro(e.useCallback(e=>u?Kr(e.nodeInternals,{x:0,y:0,width:e.width,height:e.height},e.transform,!0):e.getNodes(),[u])));var u;const d=e.useRef(),h=e.useMemo(()=>{if("undefined"==typeof ResizeObserver)return null;const e=new ResizeObserver(e=>{const t=e.map(e=>({id:e.target.getAttribute("data-id"),nodeElement:e.target,forceUpdate:!0}));s(t)});return d.current=e,e},[]);return e.useEffect(()=>()=>{var e;null==(e=null==d?void 0:d.current)||e.disconnect()},[]),o.createElement("div",{className:"react-flow__nodes",style:Zi},c.map(e=>{var s,c,u;let d=e.type||"default";t.nodeTypes[d]||(null==l||l("003",Mo(d)),d="default");const f=t.nodeTypes[d]||t.nodeTypes.default,p=!!(e.draggable||n&&void 0===e.draggable),g=!!(e.selectable||a&&void 0===e.selectable),m=!!(e.connectable||r&&void 0===e.connectable),y=!!(e.focusable||i&&void 0===e.focusable),v=t.nodeExtent?Ko(e.positionAbsolute,t.nodeExtent):e.positionAbsolute,x=(null==v?void 0:v.x)??0,b=(null==v?void 0:v.y)??0,w=(({x:e,y:t,width:n,height:o,origin:r})=>n&&o?r[0]<0||r[1]<0||r[0]>1||r[1]>1?{x:e,y:t}:{x:e-n*r[0],y:t-o*r[1]}:{x:e,y:t})({x:x,y:b,width:e.width??0,height:e.height??0,origin:t.nodeOrigin});return o.createElement(f,{key:e.id,id:e.id,className:e.className,style:e.style,type:d,data:e.data,sourcePosition:e.sourcePosition||wr.Bottom,targetPosition:e.targetPosition||wr.Top,hidden:e.hidden,xPos:x,yPos:b,xPosOrigin:w.x,yPosOrigin:w.y,selectNodesOnDrag:t.selectNodesOnDrag,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,selected:!!e.selected,isDraggable:p,isSelectable:g,isConnectable:m,isFocusable:y,resizeObserver:h,dragHandle:e.dragHandle,zIndex:(null==(s=e[tr])?void 0:s.z)??0,isParent:!!(null==(c=e[tr])?void 0:c.isParent),noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,initialized:!!e.width&&!!e.height,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,ariaLabel:e.ariaLabel,hasHandleBounds:!!(null==(u=e[tr])?void 0:u.handleBounds)})}))};Ma.displayName="NodeRenderer";var ja=e.memo(Ma);const Ia=(e,t,n)=>n===wr.Left?e-t:n===wr.Right?e+t:e,Pa=(e,t,n)=>n===wr.Top?e-t:n===wr.Bottom?e+t:e,Oa="react-flow__edgeupdater",Aa=({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:s,type:l})=>o.createElement("circle",{onMouseDown:i,onMouseEnter:a,onMouseOut:s,className:S([Oa,`${Oa}-${l}`]),cx:Ia(t,r,e),cy:Pa(n,r,e),r:r,stroke:"transparent",fill:"transparent"}),$a=()=>!0;var za=t=>{const n=({id:n,className:r,type:i,data:a,onClick:s,onEdgeDoubleClick:l,selected:c,animated:u,label:d,labelStyle:h,labelShowBg:f,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:m,style:y,source:v,target:x,sourceX:b,sourceY:w,targetX:E,targetY:N,sourcePosition:_,targetPosition:C,elementsSelectable:k,hidden:M,sourceHandleId:j,targetHandleId:I,onContextMenu:P,onMouseEnter:O,onMouseMove:A,onMouseLeave:$,reconnectRadius:z,onReconnect:D,onReconnectStart:R,onReconnectEnd:T,markerEnd:B,markerStart:L,rfId:H,ariaLabel:V,isFocusable:Y,isReconnectable:X,pathOptions:K,interactionWidth:Z,disableKeyboardA11y:F})=>{const W=e.useRef(null),[q,U]=e.useState(!1),[G,J]=e.useState(!1),Q=To(),ee=e.useMemo(()=>`url('#${Lr(L,H)}')`,[L,H]),te=e.useMemo(()=>`url('#${Lr(B,H)}')`,[B,H]);if(M)return null;const ne=lr(n,Q.getState,l),oe=lr(n,Q.getState,P),re=lr(n,Q.getState,O),ie=lr(n,Q.getState,A),ae=lr(n,Q.getState,$),se=(e,t)=>{if(0!==e.button)return;const{edges:o,isValidConnection:r}=Q.getState(),i=t?x:v,a=(t?I:j)||null,s=t?"target":"source",l=r||$a,c=t,u=o.find(e=>e.id===n);J(!0),null==R||R(e,u,s);ni({event:e,handleId:a,nodeId:i,onConnect:e=>null==D?void 0:D(u,e),isTarget:c,getState:Q.getState,setState:Q.setState,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:e=>{J(!1),null==T||T(e,u,s)}})},le=()=>U(!0),ce=()=>U(!1),ue=!k&&!s;return o.createElement("g",{className:S(["react-flow__edge",`react-flow__edge-${i}`,r,{selected:c,animated:u,inactive:ue,updating:q}]),onClick:e=>{var t;const{edges:o,addSelectedEdges:r,unselectNodesAndEdges:i,multiSelectionActive:a}=Q.getState(),l=o.find(e=>e.id===n);l&&(k&&(Q.setState({nodesSelectionActive:!1}),l.selected&&a?(i({nodes:[],edges:[l]}),null==(t=W.current)||t.blur()):r([n])),s&&s(e,l))},onDoubleClick:ne,onContextMenu:oe,onMouseEnter:re,onMouseMove:ie,onMouseLeave:ae,onKeyDown:Y?e=>{var t;if(!F&&nr.includes(e.key)&&k){const{unselectNodesAndEdges:o,addSelectedEdges:r,edges:i}=Q.getState();"Escape"===e.key?(null==(t=W.current)||t.blur(),o({edges:[i.find(e=>e.id===n)]})):r([n])}}:void 0,tabIndex:Y?0:void 0,role:Y?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":null===V?void 0:V||`Edge from ${v} to ${x}`,"aria-describedby":Y?`${ki}-${H}`:void 0,ref:W},!G&&o.createElement(t,{id:n,source:v,target:x,selected:c,animated:u,label:d,labelStyle:h,labelShowBg:f,labelBgStyle:p,labelBgPadding:g,labelBgBorderRadius:m,data:a,style:y,sourceX:b,sourceY:w,targetX:E,targetY:N,sourcePosition:_,targetPosition:C,sourceHandleId:j,targetHandleId:I,markerStart:ee,markerEnd:te,pathOptions:K,interactionWidth:Z}),X&&o.createElement(o.Fragment,null,("source"===X||!0===X)&&o.createElement(Aa,{position:_,centerX:b,centerY:w,radius:z,onMouseDown:e=>se(e,!0),onMouseEnter:le,onMouseOut:ce,type:"source"}),("target"===X||!0===X)&&o.createElement(Aa,{position:C,centerX:E,centerY:N,radius:z,onMouseDown:e=>se(e,!1),onMouseEnter:le,onMouseOut:ce,type:"target"})))};return n.displayName="EdgeWrapper",e.memo(n)};function Da(e){return{...{default:za(e.default||Dr),straight:za(e.bezier||Or),step:za(e.step||Pr),smoothstep:za(e.step||Ir),simplebezier:za(e.simplebezier||_r)},...Object.keys(e).filter(e=>!["default","bezier"].includes(e)).reduce((t,n)=>(t[n]=za(e[n]||Dr),t),{})}}function Ra(e,t,n=null){const o=((null==n?void 0:n.x)||0)+t.x,r=((null==n?void 0:n.y)||0)+t.y,i=(null==n?void 0:n.width)||t.width,a=(null==n?void 0:n.height)||t.height;switch(e){case wr.Top:return{x:o+i/2,y:r};case wr.Right:return{x:o+i,y:r+a/2};case wr.Bottom:return{x:o+i/2,y:r+a};case wr.Left:return{x:o,y:r+a/2}}}function Ta(e,t){return e?1!==e.length&&t?t&&e.find(e=>e.id===t)||null:e[0]:null}function Ba(e){var t,n,o,r,i;const a=(null==(t=null==e?void 0:e[tr])?void 0:t.handleBounds)||null,s=a&&(null==e?void 0:e.width)&&(null==e?void 0:e.height)&&void 0!==(null==(n=null==e?void 0:e.positionAbsolute)?void 0:n.x)&&void 0!==(null==(o=null==e?void 0:e.positionAbsolute)?void 0:o.y);return[{x:(null==(r=null==e?void 0:e.positionAbsolute)?void 0:r.x)||0,y:(null==(i=null==e?void 0:e.positionAbsolute)?void 0:i.y)||0,width:(null==e?void 0:e.width)||0,height:(null==e?void 0:e.height)||0},a,!!s]}const La=[{level:0,isMaxLevel:!0,edges:[]}];function Ha(t,n,o){return function(e,t,n=!1){let o=-1;const r=e.reduce((e,r)=>{var i,a;const s=er(r.zIndex);let l=s?r.zIndex:0;if(n){const e=t.get(r.target),n=t.get(r.source),o=r.selected||(null==e?void 0:e.selected)||(null==n?void 0:n.selected),c=Math.max((null==(i=null==n?void 0:n[tr])?void 0:i.z)||0,(null==(a=null==e?void 0:e[tr])?void 0:a.z)||0,1e3);l=(s?r.zIndex:0)+(o?c:0)}return e[l]?e[l].push(r):e[l]=[r],o=l>o?l:o,e},{}),i=Object.entries(r).map(([e,t])=>{const n=+e;return{edges:t,level:n,isMaxLevel:n===o}});return 0===i.length?La:i}(Ro(e.useCallback(e=>t?e.edges.filter(t=>{const o=n.get(t.source),r=n.get(t.target);return(null==o?void 0:o.width)&&(null==o?void 0:o.height)&&(null==r?void 0:r.width)&&(null==r?void 0:r.height)&&function({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:r,targetHeight:i,width:a,height:s,transform:l}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+r),y2:Math.max(e.y+o,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const u=Uo({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:a/l[2],height:s/l[2]}),d=Math.max(0,Math.min(u.x2,c.x2)-Math.max(u.x,c.x)),h=Math.max(0,Math.min(u.y2,c.y2)-Math.max(u.y,c.y));return Math.ceil(d*h)>0}({sourcePos:o.positionAbsolute||{x:0,y:0},targetPos:r.positionAbsolute||{x:0,y:0},sourceWidth:o.width,sourceHeight:o.height,targetWidth:r.width,targetHeight:r.height,width:e.width,height:e.height,transform:e.transform})}):e.edges,[t,n])),n,o)}const Va={[xr.Arrow]:({color:e="none",strokeWidth:t=1})=>o.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[xr.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>o.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const Ya=({id:t,type:n,color:r,width:i=12.5,height:a=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:c="auto-start-reverse"})=>{const u=function(t){const n=To();return e.useMemo(()=>{var e,o;return Object.prototype.hasOwnProperty.call(Va,t)?Va[t]:(null==(o=(e=n.getState()).onError)||o.call(e,"009",Po(t)),null)},[t])}(n);return u?o.createElement("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${i}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0"},o.createElement(u,{color:r,strokeWidth:l})):null},Xa=({defaultColor:t,rfId:n})=>{const r=Ro(e.useCallback((({defaultColor:e,rfId:t})=>n=>{const o=[];return n.edges.reduce((n,r)=>([r.markerStart,r.markerEnd].forEach(r=>{if(r&&"object"==typeof r){const i=Lr(r,t);o.includes(i)||(n.push({id:i,color:r.color||e,...r}),o.push(i))}}),n),[]).sort((e,t)=>e.id.localeCompare(t.id))})({defaultColor:t,rfId:n}),[t,n]),(e,t)=>!(e.length!==t.length||e.some((e,n)=>e.id!==t[n].id)));return o.createElement("defs",null,r.map(e=>o.createElement(Ya,{id:e.id,key:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient})))};Xa.displayName="MarkerDefinitions";var Ka=e.memo(Xa);const Za=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),Fa=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:r,edgeTypes:i,noPanClassName:a,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,onEdgeDoubleClick:h,onReconnect:f,onReconnectStart:p,onReconnectEnd:g,reconnectRadius:m,children:y,disableKeyboardA11y:v})=>{const{edgesFocusable:x,edgesUpdatable:b,elementsSelectable:w,width:E,height:N,connectionMode:_,nodeInternals:C,onError:k}=Ro(Za,H),M=Ha(t,C,n);return E?o.createElement(o.Fragment,null,M.map(({level:t,edges:n,isMaxLevel:y})=>o.createElement("svg",{key:t,style:{zIndex:t},width:E,height:N,className:"react-flow__edges react-flow__container"},y&&o.createElement(Ka,{defaultColor:e,rfId:r}),o.createElement("g",null,n.map(e=>{const[t,n,y]=Ba(C.get(e.source)),[E,N,M]=Ba(C.get(e.target));if(!y||!M)return null;let j=e.type||"default";i[j]||(null==k||k("011",$o(j)),j="default");const I=i[j]||i.default,P=_===dr.Strict?N.target:(N.target??[]).concat(N.source??[]),O=Ta(n.source,e.sourceHandle),A=Ta(P,e.targetHandle),$=(null==O?void 0:O.position)||wr.Bottom,z=(null==A?void 0:A.position)||wr.Top,D=!!(e.focusable||x&&void 0===e.focusable),R=e.reconnectable||e.updatable,T=void 0!==f&&(R||b&&void 0===R);if(!O||!A)return null==k||k("008",Oo(O,e)),null;const{sourceX:B,sourceY:L,targetX:H,targetY:V}=((e,t,n,o,r,i)=>{const a=Ra(n,e,t),s=Ra(i,o,r);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}})(t,O,$,E,A,z);return o.createElement(I,{key:e.id,id:e.id,className:S([e.className,a]),type:j,data:e.data,selected:!!e.selected,animated:!!e.animated,hidden:!!e.hidden,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,source:e.source,target:e.target,sourceHandleId:e.sourceHandle,targetHandleId:e.targetHandle,markerEnd:e.markerEnd,markerStart:e.markerStart,sourceX:B,sourceY:L,targetX:H,targetY:V,sourcePosition:$,targetPosition:z,elementsSelectable:w,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,onEdgeDoubleClick:h,onReconnect:f,onReconnectStart:p,onReconnectEnd:g,reconnectRadius:m,rfId:r,ariaLabel:e.ariaLabel,isFocusable:D,isReconnectable:T,pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth,disableKeyboardA11y:v})})))),y):null};Fa.displayName="EdgeRenderer";var Wa=e.memo(Fa);const qa=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Ua({children:e}){const t=Ro(qa);return o.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}const Ga={[wr.Left]:wr.Right,[wr.Right]:wr.Left,[wr.Top]:wr.Bottom,[wr.Bottom]:wr.Top},Ja=({nodeId:t,handleType:n,style:r,type:i=yr.Bezier,CustomComponent:a,connectionStatus:s})=>{var l,c,u;const{fromNode:d,handleId:h,toX:f,toY:p,connectionMode:g}=Ro(e.useCallback(e=>({fromNode:e.nodeInternals.get(t),handleId:e.connectionHandleId,toX:(e.connectionPosition.x-e.transform[0])/e.transform[2],toY:(e.connectionPosition.y-e.transform[1])/e.transform[2],connectionMode:e.connectionMode}),[t]),H),m=null==(l=null==d?void 0:d[tr])?void 0:l.handleBounds;let y=null==m?void 0:m[n];if(g===dr.Loose&&(y=y||(null==m?void 0:m["source"===n?"target":"source"])),!d||!y)return null;const v=h?y.find(e=>e.id===h):y[0],x=v?v.x+v.width/2:(d.width??0)/2,b=v?v.y+v.height/2:d.height??0,w=((null==(c=d.positionAbsolute)?void 0:c.x)??0)+x,S=((null==(u=d.positionAbsolute)?void 0:u.y)??0)+b,E=null==v?void 0:v.position,N=E?Ga[E]:null;if(!E||!N)return null;if(a)return o.createElement(a,{connectionLineType:i,connectionLineStyle:r,fromNode:d,fromHandle:v,fromX:w,fromY:S,toX:f,toY:p,fromPosition:E,toPosition:N,connectionStatus:s});let _="";const C={sourceX:w,sourceY:S,sourcePosition:E,targetX:f,targetY:p,targetPosition:N};return i===yr.Bezier?[_]=zr(C):i===yr.Step?[_]=jr({...C,borderRadius:0}):i===yr.SmoothStep?[_]=jr(C):i===yr.SimpleBezier?[_]=Nr(C):_=`M${w},${S} ${f},${p}`,o.createElement("path",{d:_,fill:"none",className:"react-flow__connection-path",style:r})};Ja.displayName="ConnectionLine";const Qa=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function es({containerStyle:e,style:t,type:n,component:r}){const{nodeId:i,handleType:a,nodesConnectable:s,width:l,height:c,connectionStatus:u}=Ro(Qa,H);return!!(i&&a&&l&&s)?o.createElement("svg",{style:e,width:l,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},o.createElement("g",{className:S(["react-flow__connection",u])},o.createElement(Ja,{nodeId:i,handleType:a,style:t,type:n,CustomComponent:r,connectionStatus:u}))):null}function ts(t,n){e.useRef(null),To();return e.useMemo(()=>n(t),[t])}const ns=({nodeTypes:t,edgeTypes:n,onMove:r,onMoveStart:i,onMoveEnd:a,onInit:s,onNodeClick:l,onEdgeClick:c,onNodeDoubleClick:u,onEdgeDoubleClick:d,onNodeMouseEnter:h,onNodeMouseMove:f,onNodeMouseLeave:p,onNodeContextMenu:g,onSelectionContextMenu:m,onSelectionStart:y,onSelectionEnd:v,connectionLineType:x,connectionLineStyle:b,connectionLineComponent:w,connectionLineContainerStyle:S,selectionKeyCode:E,selectionOnDrag:N,selectionMode:_,multiSelectionKeyCode:C,panActivationKeyCode:k,zoomActivationKeyCode:M,deleteKeyCode:j,onlyRenderVisibleElements:I,elementsSelectable:P,selectNodesOnDrag:O,defaultViewport:A,translateExtent:$,minZoom:z,maxZoom:D,preventScrolling:R,defaultMarkerColor:T,zoomOnScroll:B,zoomOnPinch:L,panOnScroll:H,panOnScrollSpeed:V,panOnScrollMode:Y,zoomOnDoubleClick:X,panOnDrag:K,onPaneClick:Z,onPaneMouseEnter:F,onPaneMouseMove:W,onPaneMouseLeave:q,onPaneScroll:U,onPaneContextMenu:G,onEdgeContextMenu:J,onEdgeMouseEnter:Q,onEdgeMouseMove:ee,onEdgeMouseLeave:te,onReconnect:ne,onReconnectStart:oe,onReconnectEnd:re,reconnectRadius:ie,noDragClassName:ae,noWheelClassName:se,noPanClassName:le,elevateEdgesOnSelect:ce,disableKeyboardA11y:ue,nodeOrigin:de,nodeExtent:he,rfId:fe})=>{const pe=ts(t,Ca),ge=ts(n,Da);return function(t){const n=Xi(),o=e.useRef(!1);e.useEffect(()=>{!o.current&&n.viewportInitialized&&t&&(setTimeout(()=>t(n),1),o.current=!0)},[t,n.viewportInitialized])}(s),o.createElement(_a,{onPaneClick:Z,onPaneMouseEnter:F,onPaneMouseMove:W,onPaneMouseLeave:q,onPaneContextMenu:G,onPaneScroll:U,deleteKeyCode:j,selectionKeyCode:E,selectionOnDrag:N,selectionMode:_,onSelectionStart:y,onSelectionEnd:v,multiSelectionKeyCode:C,panActivationKeyCode:k,zoomActivationKeyCode:M,elementsSelectable:P,onMove:r,onMoveStart:i,onMoveEnd:a,zoomOnScroll:B,zoomOnPinch:L,zoomOnDoubleClick:X,panOnScroll:H,panOnScrollSpeed:V,panOnScrollMode:Y,panOnDrag:K,defaultViewport:A,translateExtent:$,minZoom:z,maxZoom:D,onSelectionContextMenu:m,preventScrolling:R,noDragClassName:ae,noWheelClassName:se,noPanClassName:le,disableKeyboardA11y:ue},o.createElement(Ua,null,o.createElement(Wa,{edgeTypes:ge,onEdgeClick:c,onEdgeDoubleClick:d,onlyRenderVisibleElements:I,onEdgeContextMenu:J,onEdgeMouseEnter:Q,onEdgeMouseMove:ee,onEdgeMouseLeave:te,onReconnect:ne,onReconnectStart:oe,onReconnectEnd:re,reconnectRadius:ie,defaultMarkerColor:T,noPanClassName:le,elevateEdgesOnSelect:!!ce,disableKeyboardA11y:ue,rfId:fe},o.createElement(es,{style:b,type:x,component:w,containerStyle:S})),o.createElement("div",{className:"react-flow__edgelabel-renderer"}),o.createElement(ja,{nodeTypes:pe,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:h,onNodeMouseMove:f,onNodeMouseLeave:p,onNodeContextMenu:g,selectNodesOnDrag:O,onlyRenderVisibleElements:I,noPanClassName:le,noDragClassName:ae,disableKeyboardA11y:ue,nodeOrigin:de,nodeExtent:he,rfId:fe})))};ns.displayName="GraphView";var os=e.memo(ns);const rs=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],is={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:rs,nodeExtent:rs,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:dr.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:(e,t)=>{},isValidConnection:void 0},as=()=>{return e=(e,t)=>({...is,setNodes:n=>{const{nodeInternals:o,nodeOrigin:r,elevateNodesOnSelect:i}=t();e({nodeInternals:Di(n,o,r,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:o={}}=t();e({edges:n.map(e=>({...o,...e}))})},setDefaultNodesAndEdges:(n,o)=>{const r=void 0!==n,i=void 0!==o,a=r?Di(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:a,edges:i?o:[],hasDefaultNodes:r,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:o,nodeInternals:r,fitViewOnInit:i,fitViewOnInitDone:a,fitViewOnInitOptions:s,domNode:l,nodeOrigin:c}=t(),u=null==l?void 0:l.querySelector(".react-flow__viewport");if(!u)return;const d=window.getComputedStyle(u),{m22:h}=new window.DOMMatrixReadOnly(d.transform),f=n.reduce((e,t)=>{const n=r.get(t.id);if(null==n?void 0:n.hidden)r.set(n.id,{...n,[tr]:{...n[tr],handleBounds:void 0}});else if(n){const o=Yo(t.nodeElement);o.width&&o.height&&(n.width!==o.width||n.height!==o.height||t.forceUpdate)&&(r.set(n.id,{...n,[tr]:{...n[tr],handleBounds:{source:fa(".source",t.nodeElement,h,c),target:fa(".target",t.nodeElement,h,c)}},...o}),e.push({id:n.id,type:"dimensions",dimensions:o}))}return e},[]);zi(r,c);const p=a||i&&!a&&Ri(t,{initial:!0,...s});e({nodeInternals:new Map(r),fitViewOnInitDone:p}),(null==f?void 0:f.length)>0&&(null==o||o(f))},updateNodePositions:(e,n=!0,o=!1)=>{const{triggerNodeChanges:r}=t();r(e.map(e=>{const t={id:e.id,type:"position",dragging:o};return n&&(t.positionAbsolute=e.positionAbsolute,t.position=e.position),t}))},triggerNodeChanges:n=>{const{onNodesChange:o,nodeInternals:r,hasDefaultNodes:i,nodeOrigin:a,getNodes:s,elevateNodesOnSelect:l}=t();if(null==n?void 0:n.length){if(i){const t=Di(na(n,s()),r,a,l);e({nodeInternals:t})}null==o||o(n)}},addSelectedNodes:n=>{const{multiSelectionActive:o,edges:r,getNodes:i}=t();let a,s=null;o?a=n.map(e=>oa(e,!0)):(a=ra(i(),n),s=ra(r,[])),Li({changedNodes:a,changedEdges:s,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:o,edges:r,getNodes:i}=t();let a,s=null;o?a=n.map(e=>oa(e,!0)):(a=ra(r,n),s=ra(i(),[])),Li({changedNodes:s,changedEdges:a,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:o}={})=>{const{edges:r,getNodes:i}=t(),a=o||r;Li({changedNodes:(n||i()).map(e=>(e.selected=!1,oa(e.id,!1))),changedEdges:a.map(e=>oa(e.id,!1)),get:t,set:e})},setMinZoom:n=>{const{d3Zoom:o,maxZoom:r}=t();null==o||o.scaleExtent([n,r]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:o,minZoom:r}=t();null==o||o.scaleExtent([r,n]),e({maxZoom:n})},setTranslateExtent:n=>{var o;null==(o=t().d3Zoom)||o.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:o}=t();Li({changedNodes:o().filter(e=>e.selected).map(e=>oa(e.id,!1)),changedEdges:n.filter(e=>e.selected).map(e=>oa(e.id,!1)),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:o}=t();o.forEach(e=>{e.positionAbsolute=Ko(e.position,n)}),e({nodeExtent:n,nodeInternals:new Map(o)})},panBy:e=>{const{transform:n,width:o,height:r,d3Zoom:i,d3Selection:a,translateExtent:s}=t();if(!i||!a||!e.x&&!e.y)return!1;const l=mo.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),c=[[0,0],[o,r]],u=null==i?void 0:i.constrain()(l,c,s);return i.transform(a,u),n[0]!==u.x||n[1]!==u.y||n[2]!==u.k},cancelConnection:()=>e({connectionNodeId:is.connectionNodeId,connectionHandleId:is.connectionHandleId,connectionHandleType:is.connectionHandleType,connectionStatus:is.connectionStatus,connectionStartHandle:is.connectionStartHandle,connectionEndHandle:is.connectionEndHandle}),reset:()=>e({...is})}),t=Object.is,e?L(e,t):L;var e,t},ss=({children:t})=>{const n=e.useRef(null);return n.current||(n.current=as()),o.createElement(ko,{value:n.current},t)};ss.displayName="ReactFlowProvider";const ls=({children:t})=>e.useContext(Co)?o.createElement(o.Fragment,null,t):o.createElement(ss,null,t);ls.displayName="ReactFlowWrapper";const cs={input:ui,default:li,output:hi,group:fi},us={default:Dr,straight:Or,step:Pr,smoothstep:Ir,simplebezier:_r},ds=[0,0],hs=[15,15],fs={x:0,y:0,zoom:1},ps={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},gs=e.forwardRef(({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a=cs,edgeTypes:s=us,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:h,onMoveEnd:f,onConnect:p,onConnectStart:g,onConnectEnd:m,onClickConnectStart:y,onClickConnectEnd:v,onNodeMouseEnter:x,onNodeMouseMove:b,onNodeMouseLeave:w,onNodeContextMenu:E,onNodeDoubleClick:N,onNodeDragStart:_,onNodeDrag:C,onNodeDragStop:k,onNodesDelete:M,onEdgesDelete:j,onSelectionChange:I,onSelectionDragStart:P,onSelectionDrag:O,onSelectionDragStop:A,onSelectionContextMenu:$,onSelectionStart:z,onSelectionEnd:D,connectionMode:R=dr.Strict,connectionLineType:T=yr.Bezier,connectionLineStyle:B,connectionLineComponent:L,connectionLineContainerStyle:H,deleteKeyCode:V="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:X=!1,selectionMode:K=gr.Full,panActivationKeyCode:Z="Space",multiSelectionKeyCode:F=(ar()?"Meta":"Control"),zoomActivationKeyCode:W=(ar()?"Meta":"Control"),snapToGrid:q=!1,snapGrid:U=hs,onlyRenderVisibleElements:G=!1,selectNodesOnDrag:J=!0,nodesDraggable:Q,nodesConnectable:ee,nodesFocusable:te,nodeOrigin:ne=ds,edgesFocusable:oe,edgesUpdatable:re,elementsSelectable:ie,defaultViewport:ae=fs,minZoom:se=.5,maxZoom:le=2,translateExtent:ce=rs,preventScrolling:ue=!0,nodeExtent:de,defaultMarkerColor:he="#b1b1b7",zoomOnScroll:fe=!0,zoomOnPinch:pe=!0,panOnScroll:ge=!1,panOnScrollSpeed:me=.5,panOnScrollMode:ye=fr.Free,zoomOnDoubleClick:ve=!0,panOnDrag:xe=!0,onPaneClick:be,onPaneMouseEnter:we,onPaneMouseMove:Se,onPaneMouseLeave:Ee,onPaneScroll:Ne,onPaneContextMenu:_e,children:Ce,onEdgeContextMenu:ke,onEdgeDoubleClick:Me,onEdgeMouseEnter:je,onEdgeMouseMove:Ie,onEdgeMouseLeave:Pe,onEdgeUpdate:Oe,onEdgeUpdateStart:Ae,onEdgeUpdateEnd:$e,onReconnect:ze,onReconnectStart:De,onReconnectEnd:Re,reconnectRadius:Te=10,edgeUpdaterRadius:Be=10,onNodesChange:Le,onEdgesChange:He,noDragClassName:Ve="nodrag",noWheelClassName:Ye="nowheel",noPanClassName:Xe="nopan",fitView:Ke=!1,fitViewOptions:Ze,connectOnClick:Fe=!0,attributionPosition:We,proOptions:qe,defaultEdgeOptions:Ue,elevateNodesOnSelect:Ge=!0,elevateEdgesOnSelect:Je=!1,disableKeyboardA11y:Qe=!1,autoPanOnConnect:et=!0,autoPanOnNodeDrag:tt=!0,connectionRadius:nt=20,isValidConnection:ot,onError:rt,style:it,id:at,nodeDragThreshold:st,...lt},ct)=>{const ut=at||"1";return o.createElement("div",{...lt,style:{...it,...ps},ref:ct,className:S(["react-flow",i]),"data-testid":"rf__wrapper",id:at},o.createElement(ls,null,o.createElement(os,{onInit:u,onMove:d,onMoveStart:h,onMoveEnd:f,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:x,onNodeMouseMove:b,onNodeMouseLeave:w,onNodeContextMenu:E,onNodeDoubleClick:N,nodeTypes:a,edgeTypes:s,connectionLineType:T,connectionLineStyle:B,connectionLineComponent:L,connectionLineContainerStyle:H,selectionKeyCode:Y,selectionOnDrag:X,selectionMode:K,deleteKeyCode:V,multiSelectionKeyCode:F,panActivationKeyCode:Z,zoomActivationKeyCode:W,onlyRenderVisibleElements:G,selectNodesOnDrag:J,defaultViewport:ae,translateExtent:ce,minZoom:se,maxZoom:le,preventScrolling:ue,zoomOnScroll:fe,zoomOnPinch:pe,zoomOnDoubleClick:ve,panOnScroll:ge,panOnScrollSpeed:me,panOnScrollMode:ye,panOnDrag:xe,onPaneClick:be,onPaneMouseEnter:we,onPaneMouseMove:Se,onPaneMouseLeave:Ee,onPaneScroll:Ne,onPaneContextMenu:_e,onSelectionContextMenu:$,onSelectionStart:z,onSelectionEnd:D,onEdgeContextMenu:ke,onEdgeDoubleClick:Me,onEdgeMouseEnter:je,onEdgeMouseMove:Ie,onEdgeMouseLeave:Pe,onReconnect:ze??Oe,onReconnectStart:De??Ae,onReconnectEnd:Re??$e,reconnectRadius:Te??Be,defaultMarkerColor:he,noDragClassName:Ve,noWheelClassName:Ye,noPanClassName:Xe,elevateEdgesOnSelect:Je,rfId:ut,disableKeyboardA11y:Qe,nodeOrigin:ne,nodeExtent:de}),o.createElement(Ei,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:m,onClickConnectStart:y,onClickConnectEnd:v,nodesDraggable:Q,nodesConnectable:ee,nodesFocusable:te,edgesFocusable:oe,edgesUpdatable:re,elementsSelectable:ie,elevateNodesOnSelect:Ge,minZoom:se,maxZoom:le,nodeExtent:de,onNodesChange:Le,onEdgesChange:He,snapToGrid:q,snapGrid:U,connectionMode:R,translateExtent:ce,connectOnClick:Fe,defaultEdgeOptions:Ue,fitView:Ke,fitViewOptions:Ze,onNodesDelete:M,onEdgesDelete:j,onNodeDragStart:_,onNodeDrag:C,onNodeDragStop:k,onSelectionDrag:O,onSelectionDragStart:P,onSelectionDragStop:A,noPanClassName:Xe,nodeOrigin:ne,rfId:ut,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:rt,connectionRadius:nt,isValidConnection:ot,nodeDragThreshold:st}),o.createElement(xi,{onSelectionChange:I}),Ce,o.createElement(Ho,{proOptions:qe,position:We}),o.createElement(Ii,{rfId:ut,disableKeyboardA11y:Qe})))});gs.displayName="ReactFlow";const ms=e=>{var t;return null==(t=e.domNode)?void 0:t.querySelector(".react-flow__edgelabel-renderer")};function ys({children:e}){const t=Ro(ms);return t?r.createPortal(e,t):null}function vs(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const xs=({id:e,x:t,y:n,width:r,height:i,style:a,color:s,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:h,onClick:f,selected:p})=>{const{background:g,backgroundColor:m}=a||{},y=s||g||m;return o.createElement("rect",{className:S(["react-flow__minimap-node",{selected:p},u]),x:t,y:n,rx:d,ry:d,width:r,height:i,fill:y,stroke:l,strokeWidth:c,shapeRendering:h,onClick:f?t=>f(t,e):void 0})};xs.displayName="MiniMapNode";var bs=e.memo(xs);const ws=e=>e.nodeOrigin,Ss=e=>e.getNodes().filter(e=>!e.hidden&&e.width&&e.height),Es=e=>e instanceof Function?e:()=>e;var Ns=e.memo(function({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:i=2,nodeComponent:a=bs,onClick:s}){const l=Ro(Ss,vs),c=Ro(ws),u=Es(t),d=Es(e),h=Es(n),f="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return o.createElement(o.Fragment,null,l.map(e=>{const{x:t,y:n}=Yr(e,c).positionAbsolute;return o.createElement(a,{key:e.id,x:t,y:n,width:e.width,height:e.height,style:e.style,selected:e.selected,className:h(e),color:u(e),borderRadius:r,strokeColor:d(e),strokeWidth:i,shapeRendering:f,onClick:s,id:e.id})}))});const _s=e=>{const t=e.getNodes(),n={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:n,boundingRect:t.length>0?(o=Xr(t,e.nodeOrigin),r=n,Go(qo(Uo(o),Uo(r)))):n,rfId:e.rfId};var o,r};function Cs({style:t,className:n,nodeStrokeColor:r="transparent",nodeColor:i="#e2e2e2",nodeClassName:a="",nodeBorderRadius:s=5,nodeStrokeWidth:l=2,nodeComponent:c,maskColor:u="rgb(240, 240, 240, 0.6)",maskStrokeColor:d="none",maskStrokeWidth:h=1,position:f="bottom-right",onClick:p,onNodeClick:g,pannable:m=!1,zoomable:y=!1,ariaLabel:v="React Flow mini map",inversePan:x=!1,zoomStep:b=10,offsetScale:w=5}){const E=To(),N=e.useRef(null),{boundingRect:_,viewBB:C,rfId:k}=Ro(_s,vs),M=(null==t?void 0:t.width)??200,j=(null==t?void 0:t.height)??150,I=_.width/M,P=_.height/j,O=Math.max(I,P),A=O*M,$=O*j,z=w*O,D=_.x-(A-_.width)/2-z,R=_.y-($-_.height)/2-z,T=A+2*z,B=$+2*z,L=`react-flow__minimap-desc-${k}`,H=e.useRef(0);H.current=O,e.useEffect(()=>{if(N.current){const e=it(N.current),t=e=>{const{transform:t,d3Selection:n,d3Zoom:o}=E.getState();if("wheel"!==e.sourceEvent.type||!n||!o)return;const r=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*b,i=t[2]*Math.pow(2,r);o.scaleTo(n,i)},n=e=>{const{transform:t,d3Selection:n,d3Zoom:o,translateExtent:r,width:i,height:a}=E.getState();if("mousemove"!==e.sourceEvent.type||!n||!o)return;const s=H.current*Math.max(1,t[2])*(x?-1:1),l={x:t[0]-e.sourceEvent.movementX*s,y:t[1]-e.sourceEvent.movementY*s},c=[[0,0],[i,a]],u=mo.translate(l.x,l.y).scale(t[2]),d=o.constrain()(u,c,r);o.transform(n,d)},o=_o().on("zoom",m?n:null).on("zoom.wheel",y?t:null);return e.call(o),()=>{e.on("zoom",null)}}},[m,y,x,b]);const V=p?e=>{const t=at(e);p(e,{x:t[0],y:t[1]})}:void 0,Y=g?(e,t)=>{const n=E.getState().nodeInternals.get(t);g(e,n)}:void 0;return o.createElement(Lo,{position:f,style:t,className:S(["react-flow__minimap",n]),"data-testid":"rf__minimap"},o.createElement("svg",{width:M,height:j,viewBox:`${D} ${R} ${T} ${B}`,role:"img","aria-labelledby":L,ref:N,onClick:V},v&&o.createElement("title",{id:L},v),o.createElement(Ns,{onClick:Y,nodeColor:i,nodeStrokeColor:r,nodeBorderRadius:s,nodeClassName:a,nodeStrokeWidth:l,nodeComponent:c}),o.createElement("path",{className:"react-flow__minimap-mask",d:`M${D-z},${R-z}h${T+2*z}v${B+2*z}h${-T-2*z}z\n M${C.x},${C.y}h${C.width}v${C.height}h${-C.width}z`,fill:u,fillRule:"evenodd",stroke:d,strokeWidth:h,pointerEvents:"none"})))}Cs.displayName="MiniMap";var ks=e.memo(Cs);function Ms(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}function js(){return o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},o.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function Is(){return o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},o.createElement("path",{d:"M0 0h32v4.2H0z"}))}function Ps(){return o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},o.createElement("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 Os(){return o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},o.createElement("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 As(){return o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},o.createElement("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"}))}const $s=({children:e,className:t,...n})=>o.createElement("button",{type:"button",className:S(["react-flow__controls-button",t]),...n},e);$s.displayName="ControlButton";const zs=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),Ds=({style:t,showZoom:n=!0,showFitView:r=!0,showInteractive:i=!0,fitViewOptions:a,onZoomIn:s,onZoomOut:l,onFitView:c,onInteractiveChange:u,className:d,children:h,position:f="bottom-left"})=>{const p=To(),[g,m]=e.useState(!1),{isInteractive:y,minZoomReached:v,maxZoomReached:x}=Ro(zs,Ms),{zoomIn:b,zoomOut:w,fitView:E}=Xi();if(e.useEffect(()=>{m(!0)},[]),!g)return null;return o.createElement(Lo,{className:S(["react-flow__controls",d]),position:f,style:t,"data-testid":"rf__controls"},n&&o.createElement(o.Fragment,null,o.createElement($s,{onClick:()=>{b(),null==s||s()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:x},o.createElement(js,null)),o.createElement($s,{onClick:()=>{w(),null==l||l()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:v},o.createElement(Is,null))),r&&o.createElement($s,{className:"react-flow__controls-fitview",onClick:()=>{E(a),null==c||c()},title:"fit view","aria-label":"fit view"},o.createElement(Ps,null)),i&&o.createElement($s,{className:"react-flow__controls-interactive",onClick:()=>{p.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),null==u||u(!y)},title:"toggle interactivity","aria-label":"toggle interactivity"},y?o.createElement(As,null):o.createElement(Os,null)),h)};Ds.displayName="Controls";var Rs,Ts,Bs=e.memo(Ds);function Ls(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}function Hs({color:e,dimensions:t,lineWidth:n}){return o.createElement("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function Vs({color:e,radius:t}){return o.createElement("circle",{cx:t,cy:t,r:t,fill:e})}(Ts=Rs||(Rs={})).Lines="lines",Ts.Dots="dots",Ts.Cross="cross";const Ys={[Rs.Dots]:"#91919a",[Rs.Lines]:"#eee",[Rs.Cross]:"#e2e2e2"},Xs={[Rs.Dots]:1,[Rs.Lines]:1,[Rs.Cross]:6},Ks=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Zs({id:t,variant:n=Rs.Dots,gap:r=20,size:i,lineWidth:a=1,offset:s=2,color:l,style:c,className:u}){const d=e.useRef(null),{transform:h,patternId:f}=Ro(Ks,Ls),p=l||Ys[n],g=i||Xs[n],m=n===Rs.Dots,y=n===Rs.Cross,v=Array.isArray(r)?r:[r,r],x=[v[0]*h[2]||1,v[1]*h[2]||1],b=g*h[2],w=y?[b,b]:x,E=m?[b/s,b/s]:[w[0]/s,w[1]/s];return o.createElement("svg",{className:S(["react-flow__background",u]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:d,"data-testid":"rf__background"},o.createElement("pattern",{id:f+t,x:h[0]%x[0],y:h[1]%x[1],width:x[0],height:x[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${E[0]},-${E[1]})`},m?o.createElement(Vs,{color:p,radius:b/s}):o.createElement(Hs,{dimensions:w,color:p,lineWidth:a})),o.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${f+t})`}))}Zs.displayName="Background";var Fs=e.memo(Zs);function Ws(e){return`${e}_${"undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID().replace(/-/g,"").slice(0,6):Math.random().toString(36).slice(2,8)}`}function qs(e,t){switch(t.type){case"add_node":return{...e,nodes:[...e.nodes,t.node]};case"remove_node":return{...e,nodes:e.nodes.filter(e=>e.id!==t.nodeId),edges:e.edges.filter(e=>e.source!==t.nodeId&&e.target!==t.nodeId)};case"update_node":return{...e,nodes:e.nodes.map(e=>e.id===t.nodeId?{...e,...t.patch}:e)};case"move_node":return{...e,nodes:e.nodes.map(e=>e.id===t.nodeId?{...e,position:t.position}:e)};case"add_edge":return e.edges.some(e=>e.source===t.source&&e.target===t.target)?e:{...e,edges:[...e.edges,{id:Ws("e"),source:t.source,target:t.target,sourceHandle:"default"}]};case"remove_edge":return{...e,edges:e.edges.filter(e=>e.id!==t.edgeId)};case"set_track_name":return{...e,trackName:t.name};case"replace":return t.graph;default:return e}}const Us=e.createContext(null);function Gs({value:e,children:t}){return i.jsx(Us.Provider,{value:e,children:t})}function Js(){const t=e.useContext(Us);if(!t)throw new Error("useGraphDispatch outside GraphProvider");return t.dispatch}function Qs({nodeId:e,icon:t,label:n,hoverColor:o="hover:text-red-600"}){const r=Js();return i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("span",{className:"text-lg",children:t}),i.jsx("span",{className:"font-medium flex-1",children:n}),i.jsx("button",{type:"button",className:`nodrag text-gray-400 ${o} px-1 text-base leading-none`,onClick:t=>{t.stopPropagation(),r({type:"remove_node",nodeId:e})},onPointerDown:e=>{e.stopPropagation()},title:"删除节点",children:"×"})]})}const el=e.lazy(async()=>{const[e,t]=await Promise.all([a(()=>import("./editor.main-CnjJg6pv.js").then(e=>e.e),__vite__mapDeps([0,1,2,3])),a(()=>import("./index-DjmvYdMM.js"),__vite__mapDeps([4,1,2]))]),n=e.default??e;return t.loader.config({monaco:n}),{default:t.default}});const tl=[{type:"code",icon:"📝",label:"代码"},{type:"ask_user",icon:"💬",label:"问用户"},{type:"fai",icon:"🤖",label:"AI 调用"},{type:"return",icon:"⬅️",label:"返回"}];function nl(e,t){const n=Ws("n");switch(e){case"code":return{id:n,type:"code",position:t,code:"let x = 1"};case"ask_user":return{id:n,type:"ask_user",position:t,outputVar:"input",fields:[]};case"fai":return{id:n,type:"fai",position:t,faiName:"analyze",outputVar:"r",inputs:[],outputs:[],promptTemplate:""};case"return":return{id:n,type:"return",position:t,valueExpr:'"done"'};default:throw new Error(`unknown node type: ${e}`)}}function ol(){const e=Js();return i.jsxs("aside",{className:"w-32 border-r bg-white p-2 flex flex-col gap-2",children:[i.jsx("div",{className:"text-xs text-gray-500 px-1",children:"拖入画布"}),tl.map(t=>i.jsxs("div",{draggable:!0,onDragStart:e=>{e.dataTransfer.setData("application/x-ccweb-graph-node",t.type),e.dataTransfer.effectAllowed="move"},onClick:()=>{const n=nl(t.type,{x:200,y:200});e({type:"add_node",node:n})},className:"cursor-grab rounded border bg-gray-50 hover:bg-blue-50 px-2 py-2 text-sm flex items-center gap-1",children:[i.jsx("span",{children:t.icon}),i.jsx("span",{children:t.label})]},t.type))]})}const rl={return:function({id:e,data:t,selected:n}){return i.jsxs("div",{className:["rounded-lg border-2 px-3 py-2 bg-purple-50 min-w-[180px]",n?"border-blue-500 shadow":"border-purple-300"].join(" "),children:[i.jsx(ai,{type:"target",position:wr.Top}),i.jsx(Qs,{nodeId:e,icon:"↩",label:"返回"}),i.jsxs("div",{className:"font-mono text-sm text-gray-700 truncate",children:["return ",t.valueExpr||"<empty>"]})]})},code:function({id:t,data:n,selected:o}){const r=Js(),a=function(){const t=To();return e.useCallback(e=>{const{domNode:n,updateNodeDimensions:o}=t.getState(),r=(Array.isArray(e)?e:[e]).reduce((e,t)=>{const o=null==n?void 0:n.querySelector(`.react-flow__node[data-id="${t}"]`);return o&&e.push({id:t,nodeElement:o,forceUpdate:!0}),e},[]);requestAnimationFrame(()=>o(r))},[])}(),s=e.useRef(null),l=e.useRef(null),[c,u]=e.useState(80),d=e.useCallback(()=>a(t),[a,t]),h=e.useCallback(e=>{l.current=e,e.onDidContentSizeChange(()=>{const t=e.getContentHeight(),n=Math.min(Math.max(t,80),400);u(n),d()}),d()},[d]);return e.useEffect(()=>{d()},[d]),e.useEffect(()=>{if(!s.current)return;const e=new ResizeObserver(()=>{var e;null==(e=l.current)||e.layout(),d()});return e.observe(s.current),()=>e.disconnect()},[d]),i.jsxs("div",{ref:s,className:["rounded-lg border-2 bg-gray-50 overflow-hidden",o?"border-blue-500 shadow":"border-gray-300"].join(" "),style:{width:400,height:c+32},children:[i.jsx(ai,{type:"target",position:wr.Top}),i.jsxs("div",{className:"flex items-center gap-2 px-3 py-1 bg-gray-100 border-b",children:[i.jsx("span",{className:"text-base",children:"📝"}),i.jsx("span",{className:"text-sm font-medium flex-1",children:"代码"}),i.jsx("button",{type:"button",className:"nodrag text-gray-400 hover:text-red-600 px-1 text-base leading-none",onClick:e=>{e.stopPropagation(),r({type:"remove_node",nodeId:t})},onPointerDown:e=>e.stopPropagation(),title:"删除节点",children:"×"})]}),i.jsx(e.Suspense,{fallback:i.jsx("div",{className:"px-3 py-2 text-xs text-gray-400",children:"加载编辑器…"}),children:i.jsx(el,{height:c,language:"train-lang",value:n.code,onChange:e=>r({type:"update_node",nodeId:t,patch:{code:e??""}}),onMount:h,options:{minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:12,lineNumbers:"off",folding:!0,scrollbar:{vertical:"auto",horizontal:"hidden"}}})}),i.jsx(ai,{type:"source",position:wr.Bottom})]})},ask_user:function({id:e,data:t,selected:n}){return i.jsxs("div",{className:["rounded-lg border-2 px-3 py-2 bg-pink-50 min-w-[240px]",n?"border-blue-500 shadow":"border-pink-300"].join(" "),children:[i.jsx(ai,{type:"target",position:wr.Top}),i.jsx(Qs,{nodeId:e,icon:"💬",label:"问用户"}),i.jsxs("div",{className:"font-mono text-sm text-gray-700",children:[i.jsxs("div",{children:[t.outputVar||"<未命名>"," ← ","{"]}),0===t.fields.length?i.jsx("div",{className:"text-gray-400 pl-2",children:"(无字段)"}):t.fields.map(e=>i.jsxs("div",{className:"pl-2",children:[e.key,": ",e.type]},e.id)),i.jsx("div",{children:"}"})]}),i.jsx(ai,{type:"source",position:wr.Bottom})]})},fai:function({id:e,data:t,selected:n}){return i.jsxs("div",{className:["rounded-lg border-2 px-3 py-2 bg-orange-50 min-w-[260px]",n?"border-blue-500 shadow":"border-orange-300"].join(" "),children:[i.jsx(ai,{type:"target",position:wr.Top}),i.jsx(Qs,{nodeId:e,icon:"🤖",label:"AI 调用"}),i.jsxs("div",{className:"font-mono text-sm text-gray-700",children:[i.jsxs("div",{children:[t.outputVar," ← ",t.faiName,"(...)"]}),i.jsxs("div",{className:"text-xs text-gray-500 truncate mt-1",children:["prompt: ",t.promptTemplate.slice(0,40),t.promptTemplate.length>40?"…":""]}),i.jsxs("div",{className:"text-xs text-gray-500",children:[t.inputs.length," inputs → ",t.outputs.length," outputs"]})]}),i.jsx(ai,{type:"source",position:wr.Bottom})]})}},il={deletable:function(t){const{id:n,sourceX:o,sourceY:r,targetX:a,targetY:s,sourcePosition:l,targetPosition:c,selected:u,style:d,markerEnd:h}=t,f=Js(),[p,g]=e.useState(!1),[m,y,v]=zr({sourceX:o,sourceY:r,sourcePosition:l,targetX:a,targetY:s,targetPosition:c});return i.jsxs(i.Fragment,{children:[i.jsx(sr,{id:n,path:m,markerEnd:h,style:d}),i.jsx("path",{d:m,fill:"none",stroke:"transparent",strokeWidth:20,onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),style:{cursor:"pointer"}}),i.jsx(ys,{children:(p||u)&&i.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${y}px, ${v}px)`,pointerEvents:"all"},className:"nodrag nopan",onMouseEnter:()=>g(!0),onMouseLeave:()=>g(!1),children:i.jsx("button",{type:"button",onClick:e=>{e.stopPropagation(),f({type:"remove_edge",edgeId:n})},className:"rounded-full bg-white border border-gray-300 text-gray-500 hover:text-red-600 hover:border-red-400 w-5 h-5 leading-none text-sm shadow",title:"删除连线",children:"×"})})})]})}},al={type:"deletable"};function sl({graph:t,dispatch:n,selectedNodeId:o,onSelect:r}){const a=e.useRef(null),s=Xi(),l=e.useMemo(()=>t.nodes.map(e=>({id:e.id,type:e.type,position:e.position,data:e,selected:e.id===o})),[t.nodes,o]),c=e.useMemo(()=>t.edges.map(e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourceHandle??null,type:"deletable"})),[t.edges]),u=e.useCallback(e=>{for(const t of e)"position"===t.type&&t.position?n({type:"move_node",nodeId:t.id,position:t.position}):"remove"===t.type?n({type:"remove_node",nodeId:t.id}):"select"===t.type&&(t.selected?r(t.id):o===t.id&&r(null))},[n,r,o]),d=e.useCallback(e=>{for(const t of e)"remove"===t.type&&n({type:"remove_edge",edgeId:t.id})},[n]),h=e.useCallback(e=>{e.source&&e.target&&n({type:"add_edge",source:e.source,target:e.target})},[n]);return i.jsx("div",{ref:a,className:"flex-1 h-full",onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="move"},onDrop:e=>{e.preventDefault();const t=e.dataTransfer.getData("application/x-ccweb-graph-node");if(!t)return;const o=nl(t,s.screenToFlowPosition({x:e.clientX,y:e.clientY}));n({type:"add_node",node:o})},children:i.jsxs(gs,{nodes:l,edges:c,onNodesChange:u,onEdgesChange:d,onConnect:h,nodeTypes:rl,edgeTypes:il,defaultEdgeOptions:al,deleteKeyCode:["Delete","Backspace"],fitView:!0,children:[i.jsx(Fs,{}),i.jsx(Bs,{}),i.jsx(ks,{})]})})}function ll(e){const t=e.code.split("\n").map(e=>0===e.length?"":` ${e}`).join("\n");return[f(e.id),t,p(e.id)].join("\n")}function cl(e){const t=e.fields.map(e=>{const t=[`key: ${JSON.stringify(e.key)}`,`label: ${JSON.stringify(e.label)}`,`type: ${JSON.stringify(e.type)}`];return"enum"===e.type&&e.variants&&t.push(`variants: [${e.variants.map(e=>JSON.stringify(e)).join(", ")}]`),!1===e.required&&t.push("required: false"),` { ${t.join(", ")} }`});return[g(e.id),` let ${e.outputVar} = __ccweb_ask_user({`," fields: [",t.join(",\n")," ]"," })"].join("\n")}function ul(e){return[g(e.id),` return ${e.valueExpr}`].join("\n")}function dl(e){const t=e.inputs.map(e=>`${e.argName}:${e.argType}`).join("|"),n=e.outputs.map(e=>{const t=e.constraints??{},n=[];void 0!==t.min&&void 0!==t.max&&n.push(`range=${t.min}-${t.max}`),void 0!==t.maxLen&&n.push(`maxLen=${t.maxLen}`);const o=n.length?`;${n.join(",")}`:"";return"array"===e.type?`${e.name}:array<${e.innerType??"string"}>${o}`:`${e.name}:${e.type}${o}`}).join("|");return{faiName:e.faiName,inputsKey:t,outputsKey:n,promptKey:e.promptTemplate}}function hl(e,t){return`fai ${e}(${[...t.inputs.map(e=>`${e.argName}: ${e.argType}`),"prompt: prompt"].join(", ")}) -> ${t.outputs.map(e=>{let t=e.type;"array"===e.type&&(t=`array<${e.innerType??"string"}>`);const n=e.constraints??{},o=[];"number"==typeof n.min&&"number"==typeof n.max&&o.push(`${n.min}-${n.max}`),"number"==typeof n.maxLen&&o.push(`maxLen=${n.maxLen}`);const r=o.length?` ${o.join(" ")}`:"";return`${e.name}: ${t}${r}`}).join(", ")} { }`}function fl(e,t){const n=[...e.inputs.map(e=>e.sourceExpr),JSON.stringify(e.promptTemplate)].join(", ");return[g(e.id),` let ${e.outputVar} = ${t}(${n})`].join("\n")}function pl(e){const t=function(e,t){const n=[],o=e.filter(e=>void 0===e.parentId);if(0===o.length)return n.push("空 graph(无顶层节点)"),{ordered:[],errors:n};const r=new Set(o.map(e=>e.id)),i=new Map;for(const h of o)i.set(h.id,0);for(const h of t)r.has(h.source)&&r.has(h.target)&&i.set(h.target,(i.get(h.target)??0)+1);const a=new Set;for(const h of t)r.has(h.source)&&a.add(h.source),r.has(h.target)&&a.add(h.target);const s=o.length>1?o.filter(e=>!a.has(e.id)):[];if(s.length>0)return n.push(`孤立未连接节点:${s.map(e=>e.id).join(", ")}`),{ordered:[],errors:n};const l=o.filter(e=>0===(i.get(e.id)??0));if(0===l.length)return n.push("无入口节点(图中存在环)"),{ordered:[],errors:n};if(l.length>1)return n.push(`多入口节点:${l.map(e=>e.id).join(", ")}`),{ordered:[],errors:n};const c=[],u=new Set;let d=l[0];for(;null!==d;){if(u.has(d.id))return n.push(`检测到环:${d.id}`),{ordered:[],errors:n};u.add(d.id),c.push(d);const e=t.filter(e=>e.source===d.id&&("default"===e.sourceHandle||void 0===e.sourceHandle)&&r.has(e.target));if(0===e.length)d=null;else{if(1!==e.length)return n.push(`节点 ${d.id} 顶层出度 > 1(M1 不支持 fan-out,请用 IfFrame)`),{ordered:[],errors:n};d=o.find(t=>t.id===e[0].target)??null}}if(u.size<o.length){const e=o.filter(e=>!u.has(e.id)).map(e=>e.id);return n.push(`孤立未连接节点:${e.join(", ")}`),{ordered:[],errors:n}}return{ordered:c,errors:[]}}(e.nodes,e.edges);if(t.errors.length>0)return{ok:!1,errors:t.errors.map(e=>({message:e}))};const n=function(e){const t=[],n=new Map;for(const o of e){const e=dl(o);let r=t.find(t=>{return n=t.shape,o=e,n.faiName===o.faiName&&n.inputsKey===o.inputsKey&&n.outputsKey===o.outputsKey&&n.promptKey===o.promptKey;var n,o});if(!r){let n=e.faiName,i=2;for(;t.some(e=>e.declName===n);)n=`${e.faiName}_${i++}`;r={declName:n,declSource:hl(n,o),shape:e},t.push(r)}n.set(o.id,r.declName)}return{decls:t,nodeIdToDeclName:n}}(t.ordered.filter(e=>"fai"===e.type)),o=[];for(const i of t.ordered)if("code"===i.type)o.push(ll(i));else if("ask_user"===i.type)o.push(cl(i));else if("return"===i.type)o.push(ul(i));else if("fai"===i.type){const e=n.nodeIdToDeclName.get(i.id);if(!e)return{ok:!1,errors:[{nodeId:i.id,message:"fai dedupe lost node"}]};o.push(fl(i,e))}const r=0===n.decls.length?"":n.decls.map(e=>e.declSource).join("\n\n")+"\n\n";return{ok:!0,source:[m,y,"",r,"func main() -> any {",o.join("\n"),"}","export main",""].join("\n")}}const gl=e.lazy(async()=>{const[e,t]=await Promise.all([a(()=>import("./editor.main-CnjJg6pv.js").then(e=>e.e),__vite__mapDeps([0,1,2,3])),a(()=>import("./index-DjmvYdMM.js"),__vite__mapDeps([4,1,2]))]),n=e.default??e;return t.loader.config({monaco:n}),{default:t.default}});function ml({open:t,onOpenChange:n,source:o,errors:r}){return i.jsx(s,{open:t,onOpenChange:n,children:i.jsxs(l,{children:[i.jsx(c,{className:"fixed inset-0 bg-black/40 z-50"}),i.jsxs(u,{className:"fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[80vw] h-[80vh] bg-white dark:bg-zinc-900 rounded-lg z-50 flex flex-col shadow-xl",onKeyDown:e=>{"Escape"===e.key&&e.stopPropagation()},children:[i.jsxs("div",{className:"border-b px-4 py-2 flex items-center justify-between shrink-0",children:[i.jsx(d,{className:"text-sm font-medium",children:".tr 代码预览(只读)"}),i.jsx(h,{className:"text-gray-500 hover:text-black dark:hover:text-white px-2 py-1 text-lg leading-none",children:"×"})]}),r&&r.length>0&&i.jsxs("div",{className:"bg-red-50 border-b border-red-200 px-4 py-3 text-sm text-red-700 shrink-0",children:[i.jsx("div",{className:"font-medium mb-1",children:"codegen 错误:"}),i.jsx("ul",{className:"list-disc pl-5 space-y-0.5",children:r.map((e,t)=>i.jsx("li",{children:e},t))})]}),i.jsx("div",{className:"flex-1 min-h-0",children:i.jsx(e.Suspense,{fallback:i.jsx("div",{className:"p-4 text-sm text-gray-400",children:"加载编辑器…"}),children:i.jsx(gl,{height:"100%",language:"javascript",value:o,options:{readOnly:!0,minimap:{enabled:!1},fontSize:12,scrollBeyondLastLine:!1,wordWrap:"off"}})})})]})]})})}function yl({graph:t,projectId:n,filename:o,dirty:r,onSaved:a,onClose:s}){const[l,c]=e.useState(!1),[u,d]=e.useState(""),[h,f]=e.useState([]),[p,g]=e.useState(!1),[m,y]=e.useState(null),v=async()=>{var e;y(null);const r=pl(t);if(r.ok&&r.source){g(!0);try{const e=function(e,t){return{version:2,trackName:e.trackName,nodes:e.nodes,edges:e.edges,savedAt:(new Date).toISOString(),appVersion:t}}(t);await x(n,o,r.source,e),a()}catch(i){y(`保存失败:${i.message}`)}finally{g(!1)}}else y(`无法保存:${(null==(e=r.errors)?void 0:e.map(e=>e.message).join("; "))??"unknown"}`)};return i.jsxs(i.Fragment,{children:[i.jsxs("header",{className:"border-b bg-white dark:bg-zinc-900 px-3 py-2 flex items-center gap-2 shrink-0",children:[i.jsx("button",{onClick:s,className:"text-sm text-gray-600 hover:text-black dark:text-zinc-400 dark:hover:text-white px-1",title:"返回列表",children:"←"}),i.jsx("span",{className:"font-mono text-sm truncate max-w-[240px]",children:o}),r&&i.jsx("span",{className:"text-xs text-orange-500",title:"未保存更改",children:"●"}),i.jsx("div",{className:"flex-1"}),m&&i.jsx("span",{className:"text-xs text-red-600 max-w-[280px] truncate",children:m}),i.jsx("button",{onClick:()=>{var e;const n=pl(t);d(n.source??""),f((null==(e=n.errors)?void 0:e.map(e=>e.message))??[]),c(!0)},className:"text-sm px-3 py-1 rounded border hover:bg-gray-50 dark:border-zinc-600 dark:hover:bg-zinc-800",children:"预览 .tr 代码"}),i.jsx("button",{onClick:()=>{v()},disabled:p,className:"text-sm px-3 py-1 rounded bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-50",children:p?"保存中…":"保存"})]}),i.jsx(ml,{open:l,onOpenChange:c,source:u,errors:h})]})}const vl=/^[a-zA-Z_][a-zA-Z0-9_]*$/;function xl({value:t,onChange:n,placeholder:o}){const[r,a]=e.useState(!1),s=vl.test(t)||""===t;return i.jsxs("div",{children:[i.jsx("input",{type:"text",value:t,placeholder:o,onChange:e=>n(e.target.value),onBlur:()=>a(!0),className:["w-full px-2 py-1 rounded border text-sm font-mono",r&&!s?"border-red-500":"border-gray-300"].join(" ")}),r&&!s&&i.jsx("div",{className:"text-xs text-red-600 mt-1",children:"仅允许字母/数字/下划线,不能以数字开头"})]})}function bl({graph:e,selectedNodeId:t}){const n=Js(),o=e.nodes.find(e=>e.id===t)??null;if(!o)return i.jsx("aside",{className:"w-80 border-l bg-white p-4 text-sm text-gray-400",children:"点节点编辑"});const r=e=>n({type:"update_node",nodeId:o.id,patch:e});return i.jsxs("aside",{className:"w-80 border-l bg-white p-4 overflow-y-auto",children:[i.jsxs("div",{className:"text-xs text-gray-500 mb-2",children:["节点 ID: ",o.id]}),"code"===o.type&&i.jsx("div",{className:"text-sm text-gray-600",children:"代码节点的内容在画布上直接编辑(Monaco)。"}),"ask_user"===o.type&&i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"outputVar"}),i.jsx(xl,{value:o.outputVar,onChange:e=>r({outputVar:e})})]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"字段"}),i.jsx(wl,{node:o,dispatch:n})]})]}),"fai"===o.type&&i.jsx(Sl,{node:o,dispatch:n}),"return"===o.type&&i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"返回表达式"}),i.jsx("textarea",{value:o.valueExpr,onChange:e=>r({valueExpr:e.target.value}),rows:4,className:"w-full px-2 py-1 rounded border text-sm font-mono"})]}),i.jsx("div",{className:"mt-6 pt-3 border-t",children:i.jsx("button",{type:"button",onClick:()=>{window.confirm(`确定删除节点 "${o.id}"?相关连线一起删除。`)&&n({type:"remove_node",nodeId:o.id})},className:"w-full px-3 py-1.5 rounded border border-red-300 text-red-600 hover:bg-red-50 text-sm",children:"删除节点"})})]})}function wl({node:e,dispatch:t}){const n=(n,o)=>t({type:"update_node",nodeId:e.id,patch:{fields:e.fields.map(e=>e.id===n?{...e,...o}:e)}});return i.jsxs("div",{className:"space-y-2",children:[e.fields.map(o=>i.jsxs("div",{className:"border rounded p-2 space-y-1 bg-gray-50",children:[i.jsxs("div",{className:"flex gap-1",children:[i.jsx(xl,{value:o.key,onChange:e=>n(o.id,{key:e}),placeholder:"key"}),i.jsx("button",{onClick:()=>{return n=o.id,t({type:"update_node",nodeId:e.id,patch:{fields:e.fields.filter(e=>e.id!==n)}});var n},className:"text-xs text-red-500 px-2",children:"×"})]}),i.jsx("input",{type:"text",value:o.label,placeholder:"label",onChange:e=>n(o.id,{label:e.target.value}),className:"w-full px-2 py-1 rounded border text-sm"}),i.jsxs("select",{value:o.type,onChange:e=>n(o.id,{type:e.target.value}),className:"w-full px-2 py-1 rounded border text-sm",children:[i.jsx("option",{value:"text",children:"text"}),i.jsx("option",{value:"number",children:"number"}),i.jsx("option",{value:"bool",children:"bool"}),i.jsx("option",{value:"enum",children:"enum"})]})]},o.id)),i.jsx("button",{onClick:()=>{const n={id:`f_${Math.random().toString(36).slice(2,8)}`,key:`field${e.fields.length+1}`,label:"",type:"text"};t({type:"update_node",nodeId:e.id,patch:{fields:[...e.fields,n]}})},className:"text-sm text-blue-600",children:"+ 添加字段"})]})}function Sl({node:e,dispatch:t}){const n=n=>t({type:"update_node",nodeId:e.id,patch:n}),o=(t,o)=>n({inputs:e.inputs.map(e=>e.id===t?{...e,...o}:e)}),r=(t,o)=>n({outputs:e.outputs.map(e=>e.id===t?{...e,...o}:e)});return i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"fai 名"}),i.jsx(xl,{value:e.faiName,onChange:e=>n({faiName:e})})]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"outputVar"}),i.jsx(xl,{value:e.outputVar,onChange:e=>n({outputVar:e})})]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"prompt 模板"}),i.jsx("textarea",{value:e.promptTemplate,onChange:e=>n({promptTemplate:e.target.value}),rows:3,className:"w-full px-2 py-1 rounded border text-sm",placeholder:"使用 ${var.path} 插值"})]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"inputs"}),i.jsxs("div",{className:"space-y-2",children:[e.inputs.map(t=>i.jsxs("div",{className:"border rounded p-2 bg-gray-50 space-y-1",children:[i.jsxs("div",{className:"flex gap-1",children:[i.jsx(xl,{value:t.argName,onChange:e=>o(t.id,{argName:e}),placeholder:"argName"}),i.jsx("button",{onClick:()=>{return o=t.id,n({inputs:e.inputs.filter(e=>e.id!==o)});var o},className:"text-xs text-red-500 px-2",children:"×"})]}),i.jsxs("select",{value:t.argType,onChange:e=>o(t.id,{argType:e.target.value}),className:"w-full px-2 py-1 rounded border text-sm",children:[i.jsx("option",{value:"string",children:"string"}),i.jsx("option",{value:"number",children:"number"}),i.jsx("option",{value:"bool",children:"bool"}),i.jsx("option",{value:"prompt",children:"prompt"})]}),i.jsx("input",{type:"text",value:t.sourceExpr,placeholder:'train-lang 表达式(如 r.text 或 "literal")',onChange:e=>o(t.id,{sourceExpr:e.target.value}),className:"w-full px-2 py-1 rounded border text-sm font-mono"})]},t.id)),i.jsx("button",{onClick:()=>{const t={id:`i_${Math.random().toString(36).slice(2,8)}`,argName:`arg${e.inputs.length+1}`,argType:"string",sourceExpr:'""'};n({inputs:[...e.inputs,t]})},className:"text-sm text-blue-600",children:"+ 添加 input"})]})]}),i.jsxs("div",{children:[i.jsx("label",{className:"text-xs text-gray-500 block mb-1",children:"outputs"}),i.jsxs("div",{className:"space-y-2",children:[e.outputs.map(t=>i.jsxs("div",{className:"border rounded p-2 bg-gray-50 space-y-1",children:[i.jsxs("div",{className:"flex gap-1",children:[i.jsx(xl,{value:t.name,onChange:e=>r(t.id,{name:e}),placeholder:"name"}),i.jsx("button",{onClick:()=>{return o=t.id,n({outputs:e.outputs.filter(e=>e.id!==o)});var o},className:"text-xs text-red-500 px-2",children:"×"})]}),i.jsxs("select",{value:t.type,onChange:e=>r(t.id,{type:e.target.value}),className:"w-full px-2 py-1 rounded border text-sm",children:[i.jsx("option",{value:"string",children:"string"}),i.jsx("option",{value:"number",children:"number"}),i.jsx("option",{value:"int",children:"int"}),i.jsx("option",{value:"bool",children:"bool"}),i.jsx("option",{value:"array",children:"array"})]})]},t.id)),i.jsx("button",{onClick:()=>{const t={id:`o_${Math.random().toString(36).slice(2,8)}`,name:`out${e.outputs.length+1}`,type:"string"};n({outputs:[...e.outputs,t]})},className:"text-sm text-blue-600",children:"+ 添加 output"})]})]})]})}function El({projectId:t,filename:n,isNew:o,onClose:r}){const[a,s]=e.useReducer(qs,{version:2,trackName:n.replace(/\.tr$/,""),nodes:[],edges:[]});const[l,c]=e.useState(o?{kind:"ready"}:{kind:"loading"}),[u,d]=e.useState(null),[h,f]=e.useState(!1);e.useEffect(()=>{if(o)return;let e=!1;return(async()=>{try{const o=await b(t,n);if(e)return;const r=w(o.source);if("node-graph-v1"===r)return void c({kind:"error",message:"此节点图为旧版本(M1 嵌套块)。请切换到代码模式打开,或手动重建。"});if("code"===r)return void c({kind:"error",message:"此文件是纯 .tr 代码(无节点图 marker)。请切换到代码模式打开。"});if(o.sidecar){const e=function(e){if(!e||"object"!=typeof e)return{ok:!1,reason:"not an object"};const t=e;return 2!==t.version?{ok:!1,reason:`unsupported version: ${t.version}`}:"string"!=typeof t.trackName?{ok:!1,reason:"trackName missing"}:Array.isArray(t.nodes)&&Array.isArray(t.edges)?{ok:!0,graph:{version:2,trackName:t.trackName,nodes:t.nodes,edges:t.edges}}:{ok:!1,reason:"nodes/edges not arrays"}}(o.sidecar);if(!e.ok||!e.graph)return void c({kind:"desync",message:`sidecar 解析失败:${e.reason}`,recoverable:!1});const t=function(e,t){const n=v(t),o=new Set(e.nodes.map(e=>e.id)),r=[...o].filter(e=>!n.has(e)),i=[...n].filter(e=>!o.has(e));return{ok:0===r.length&&0===i.length,missingNids:r,extraNids:i}}(e.graph,o.source);if(!t.ok)return void c({kind:"desync",message:`sidecar 与 .tr 节点 nid 不匹配(缺失 ${t.missingNids.length} / 多余 ${t.extraNids.length})`,recoverable:!0});s({type:"replace",graph:e.graph})}c({kind:"ready"})}catch(o){e||c({kind:"error",message:o.message})}})(),()=>{e=!0}},[t,n,o]),e.useEffect(()=>{"ready"===l.kind&&f(!0)},[a]);const p=e=>{s(e)};if("loading"===l.kind)return i.jsx("div",{className:"flex items-center justify-center h-full text-gray-400",children:"加载中…"});if("error"===l.kind)return i.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-red-600 gap-2",children:[i.jsx("div",{children:l.message}),i.jsx("button",{onClick:r,className:"text-sm px-3 py-1 rounded border",children:"关闭"})]});if("desync"===l.kind)return i.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-amber-700 gap-2 max-w-md mx-auto p-6",children:[i.jsx("div",{className:"font-medium",children:"sidecar 与 .tr 失同步"}),i.jsx("div",{className:"text-sm",children:l.message}),i.jsx("div",{className:"text-xs text-gray-600 mt-2",children:'M1 暂仅支持"代码模式打开" 兜底;M2 起会提供"重建 sidecar / 只读图"恢复路径。'}),i.jsxs("div",{className:"flex gap-2 mt-2",children:[i.jsx("button",{onClick:r,className:"text-sm px-3 py-1 rounded border",children:"关闭"}),i.jsx("button",{onClick:()=>{window.dispatchEvent(new CustomEvent("ccweb:open-track-as-code",{detail:{projectId:t,filename:n}})),r()},className:"text-sm px-3 py-1 rounded bg-blue-600 text-white",children:"改为代码模式打开"})]})]});return i.jsx(ss,{children:i.jsx(Gs,{value:{dispatch:p},children:i.jsxs("div",{className:"flex flex-col h-full",children:[i.jsx(yl,{graph:a,projectId:t,filename:n,dirty:h,onSaved:()=>f(!1),onClose:()=>{if(h){if(!window.confirm("未保存的修改将丢失。确认关闭吗?"))return}r()}}),i.jsxs("div",{className:"flex-1 flex overflow-hidden",children:[i.jsx(ol,{}),i.jsx(sl,{graph:a,dispatch:p,selectedNodeId:u,onSelect:d}),i.jsx(bl,{graph:a,selectedNodeId:u})]})]})})})}export{El as TrackGraphEditor};
@@ -1,4 +1,4 @@
1
- import{c as o}from"./index-DuGXgwGK.js";
1
+ import{c as o}from"./index-DUIOrPha.js";
2
2
  /**
3
3
  * @license lucide-react v0.309.0 - ISC
4
4
  *
@@ -1,4 +1,4 @@
1
- import{m as e}from"./editor.main-DKkZVnWw.js";import"./index-DuGXgwGK.js";
1
+ import{m as e}from"./editor.main-CnjJg6pv.js";import"./index-DUIOrPha.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
4
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)