@railtownai/railtracks-visualizer 0.0.5 → 0.0.7
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.
- package/dist/cjs/index.js +1 -54
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -54
- package/dist/esm/index.js.map +1 -1
- package/dist/types/AgenticFlowVisualizer.d.ts.map +1 -0
- package/dist/types/App.d.ts.map +1 -0
- package/dist/types/Visualizer.d.ts.map +1 -0
- package/dist/types/components/Edge.d.ts.map +1 -0
- package/dist/types/components/FileSelector.d.ts.map +1 -0
- package/dist/types/components/Node.d.ts.map +1 -0
- package/dist/types/components/Timeline.d.ts.map +1 -0
- package/dist/types/components/VerticalTimeline.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useApi.d.ts.map +1 -0
- package/dist/types/hooks/useFlowData.d.ts.map +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +8 -8
- package/dist/types/src/AgenticFlowVisualizer.d.ts.map +0 -1
- package/dist/types/src/App.d.ts.map +0 -1
- package/dist/types/src/Visualizer.d.ts.map +0 -1
- package/dist/types/src/components/Edge.d.ts.map +0 -1
- package/dist/types/src/components/FileSelector.d.ts.map +0 -1
- package/dist/types/src/components/Node.d.ts.map +0 -1
- package/dist/types/src/components/Timeline.d.ts.map +0 -1
- package/dist/types/src/components/VerticalTimeline.d.ts.map +0 -1
- package/dist/types/src/hooks/index.d.ts.map +0 -1
- package/dist/types/src/hooks/useApi.d.ts.map +0 -1
- package/dist/types/src/hooks/useFlowData.d.ts.map +0 -1
- package/dist/types/src/index.d.ts.map +0 -1
- package/dist/types/tests/setup.d.ts +0 -2
- package/dist/types/tests/setup.d.ts.map +0 -1
- /package/dist/types/{src/AgenticFlowVisualizer.d.ts → AgenticFlowVisualizer.d.ts} +0 -0
- /package/dist/types/{src/App.d.ts → App.d.ts} +0 -0
- /package/dist/types/{src/Visualizer.d.ts → Visualizer.d.ts} +0 -0
- /package/dist/types/{src/components → components}/Edge.d.ts +0 -0
- /package/dist/types/{src/components → components}/FileSelector.d.ts +0 -0
- /package/dist/types/{src/components → components}/Node.d.ts +0 -0
- /package/dist/types/{src/components → components}/Timeline.d.ts +0 -0
- /package/dist/types/{src/components → components}/VerticalTimeline.d.ts +0 -0
- /package/dist/types/{src/hooks → hooks}/index.d.ts +0 -0
- /package/dist/types/{src/hooks → hooks}/useApi.d.ts +0 -0
- /package/dist/types/{src/hooks → hooks}/useFlowData.d.ts +0 -0
- /package/dist/types/{src/index.d.ts → index.d.ts} +0 -0
package/dist/esm/index.js
CHANGED
|
@@ -1,55 +1,2 @@
|
|
|
1
|
-
import e,{forwardRef as t,memo as n,useState as o,useCallback as r,useMemo as a,useRef as i,createContext as s,useContext as l,useEffect as c,createElement as d}from"react";import"react-dom";function u(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=u(e[o]))&&(t+=(t&&" ")+n);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}function f(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var h,p={exports:{}},g={},m={exports:{}},y={};var v,b,w,x={};
|
|
2
|
-
/**
|
|
3
|
-
* @license React
|
|
4
|
-
* use-sync-external-store-shim.development.js
|
|
5
|
-
*
|
|
6
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
7
|
-
*
|
|
8
|
-
* This source code is licensed under the MIT license found in the
|
|
9
|
-
* LICENSE file in the root directory of this source tree.
|
|
10
|
-
*/function _(){return b||(b=1,"production"===process.env.NODE_ENV?m.exports=function(){if(h)return y;h=1;var t=e,n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=t.useState,r=t.useEffect,a=t.useLayoutEffect,i=t.useDebugValue;function s(e){var t=e.getSnapshot;e=e.value;try{var o=t();return!n(e,o)}catch(e){return!0}}var l="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),l=o({inst:{value:n,getSnapshot:t}}),c=l[0].inst,d=l[1];return a(function(){c.value=n,c.getSnapshot=t,s(c)&&d({inst:c})},[e,n,t]),r(function(){return s(c)&&d({inst:c}),e(function(){s(c)&&d({inst:c})})},[e]),i(n),n};return y.useSyncExternalStore=void 0!==t.useSyncExternalStore?t.useSyncExternalStore:l,y}():m.exports=(v||(v=1,"production"!==process.env.NODE_ENV&&function(){function t(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=e,o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=n.useState,a=n.useEffect,i=n.useLayoutEffect,s=n.useDebugValue,l=!1,c=!1,d="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,d){l||void 0===n.startTransition||(l=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var u=d();if(!c){var f=d();o(u,f)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}var h=(f=r({inst:{value:u,getSnapshot:d}}))[0].inst,p=f[1];return i(function(){h.value=u,h.getSnapshot=d,t(h)&&p({inst:h})},[e,u,d]),a(function(){return t(h)&&p({inst:h}),e(function(){t(h)&&p({inst:h})})},[e]),s(u),u};x.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:d,"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),x)),m.exports}
|
|
11
|
-
/**
|
|
12
|
-
* @license React
|
|
13
|
-
* use-sync-external-store-shim/with-selector.production.js
|
|
14
|
-
*
|
|
15
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/var E,S,N={};
|
|
20
|
-
/**
|
|
21
|
-
* @license React
|
|
22
|
-
* use-sync-external-store-shim/with-selector.development.js
|
|
23
|
-
*
|
|
24
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
25
|
-
*
|
|
26
|
-
* This source code is licensed under the MIT license found in the
|
|
27
|
-
* LICENSE file in the root directory of this source tree.
|
|
28
|
-
*/var C=(S||(S=1,"production"===process.env.NODE_ENV?p.exports=function(){if(w)return g;w=1;var t=e,n=_(),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=n.useSyncExternalStore,a=t.useRef,i=t.useEffect,s=t.useMemo,l=t.useDebugValue;return g.useSyncExternalStoreWithSelector=function(e,t,n,c,d){var u=a(null);if(null===u.current){var f={hasValue:!1,value:null};u.current=f}else f=u.current;u=s(function(){function e(e){if(!i){if(i=!0,r=e,e=c(e),void 0!==d&&f.hasValue){var t=f.value;if(d(t,e))return a=t}return a=e}if(t=a,o(r,e))return t;var n=c(e);return void 0!==d&&d(t,n)?(r=e,t):(r=e,a=n)}var r,a,i=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]},[t,n,c,d]);var h=r(e,u[0],u[1]);return i(function(){f.hasValue=!0,f.value=h},[h]),l(h),h},g}():p.exports=(E||(E=1,"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var t=e,n=_(),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=n.useSyncExternalStore,a=t.useRef,i=t.useEffect,s=t.useMemo,l=t.useDebugValue;N.useSyncExternalStoreWithSelector=function(e,t,n,c,d){var u=a(null);if(null===u.current){var f={hasValue:!1,value:null};u.current=f}else f=u.current;u=s(function(){function e(e){if(!i){if(i=!0,r=e,e=c(e),void 0!==d&&f.hasValue){var t=f.value;if(d(t,e))return a=t}return a=e}if(t=a,o(r,e))return t;var n=c(e);return void 0!==d&&d(t,n)?(r=e,t):(r=e,a=n)}var r,a,i=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]},[t,n,c,d]);var h=r(e,u[0],u[1]);return i(function(){f.hasValue=!0,f.value=h},[h]),l(h),h},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),N)),p.exports),k=f(C);const M=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,a={setState:o,getState:r,getInitialState:()=>i,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{"production"!==(import.meta.env?import.meta.env.MODE: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()}},i=t=e(o,r,a);return a},{useDebugValue:O}=e,{useSyncExternalStoreWithSelector:A}=k,z=e=>e;function I(e,t=z,n){const o=A(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return O(o),o}const P=(e,t)=>{const n=(e=>e?M(e):M)(e),o=(e,o=t)=>I(n,e,o);return Object.assign(o,n),o};function D(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 T={value:()=>{}};function $(){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 R(o)}function R(e){this._=e}function B(e,t){for(var n,o=0,r=e.length;o<r;++o)if((n=e[o]).name===t)return n.value}function L(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=T,e=e.slice(0,o).concat(e.slice(o+1));break}return null!=n&&e.push({name:t,value:n}),e}R.prototype=$.prototype={constructor:R,on:function(e,t){var n,o,r=this._,a=(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}})),i=-1,s=a.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++i<s;)if(n=(e=a[i]).type)r[n]=L(r[n],e.name,t);else if(null==t)for(n in r)r[n]=L(r[n],e.name,null);return this}for(;++i<s;)if((n=(e=a[i]).type)&&(n=B(r[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new R(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),a=0;a<n;++a)r[a]=arguments[a+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=0,n=(o=this._[e]).length;a<n;++a)o[a].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,a=o.length;r<a;++r)o[r].value.apply(t,n)}};var H="http://www.w3.org/1999/xhtml",V={svg:"http://www.w3.org/2000/svg",xhtml:H,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Y(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),V.hasOwnProperty(t)?{space:V[t],local:e}:e}function X(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===H&&t.documentElement.namespaceURI===H?t.createElement(e):t.createElementNS(n,e)}}function j(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function F(e){var t=Y(e);return(t.local?j:X)(t)}function K(){}function Z(e){return null==e?K:function(){return this.querySelector(e)}}function W(){return[]}function U(e){return null==e?W:function(){return this.querySelectorAll(e)}}function G(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}function q(e){return function(){return this.matches(e)}}function J(e){return function(t){return t.matches(e)}}var Q=Array.prototype.find;function ee(){return this.firstElementChild}var te=Array.prototype.filter;function ne(){return Array.from(this.children)}function oe(e){return new Array(e.length)}function re(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function ae(e,t,n,o,r,a){for(var i,s=0,l=t.length,c=a.length;s<c;++s)(i=t[s])?(i.__data__=a[s],o[s]=i):n[s]=new re(e,a[s]);for(;s<l;++s)(i=t[s])&&(r[s]=i)}function ie(e,t,n,o,r,a,i){var s,l,c,d=new Map,u=t.length,f=a.length,h=new Array(u);for(s=0;s<u;++s)(l=t[s])&&(h[s]=c=i.call(l,l.__data__,s,t)+"",d.has(c)?r[s]=l:d.set(c,l));for(s=0;s<f;++s)c=i.call(e,a[s],s,a)+"",(l=d.get(c))?(o[s]=l,l.__data__=a[s],d.delete(c)):n[s]=new re(e,a[s]);for(s=0;s<u;++s)(l=t[s])&&d.get(h[s])===l&&(r[s]=l)}function se(e){return e.__data__}function le(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function ce(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function de(e){return function(){this.removeAttribute(e)}}function ue(e){return function(){this.removeAttributeNS(e.space,e.local)}}function fe(e,t){return function(){this.setAttribute(e,t)}}function he(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function pe(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function ge(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 me(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function ye(e){return function(){this.style.removeProperty(e)}}function ve(e,t,n){return function(){this.style.setProperty(e,t,n)}}function be(e,t,n){return function(){var o=t.apply(this,arguments);null==o?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function we(e,t){return e.style.getPropertyValue(t)||me(e).getComputedStyle(e,null).getPropertyValue(t)}function xe(e){return function(){delete this[e]}}function _e(e,t){return function(){this[e]=t}}function Ee(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function Se(e){return e.trim().split(/^|\s+/)}function Ne(e){return e.classList||new Ce(e)}function Ce(e){this._node=e,this._names=Se(e.getAttribute("class")||"")}function ke(e,t){for(var n=Ne(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function Me(e,t){for(var n=Ne(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function Oe(e){return function(){ke(this,e)}}function Ae(e){return function(){Me(this,e)}}function ze(e,t){return function(){(t.apply(this,arguments)?ke:Me)(this,e)}}function Ie(){this.textContent=""}function Pe(e){return function(){this.textContent=e}}function De(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function Te(){this.innerHTML=""}function $e(e){return function(){this.innerHTML=e}}function Re(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function Be(){this.nextSibling&&this.parentNode.appendChild(this)}function Le(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function He(){return null}function Ve(){var e=this.parentNode;e&&e.removeChild(this)}function Ye(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Xe(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function je(e){return function(){var t=this.__on;if(t){for(var n,o=0,r=-1,a=t.length;o<a;++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 Fe(e,t,n){return function(){var o,r=this.__on,a=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(r)for(var i=0,s=r.length;i<s;++i)if((o=r[i]).type===e.type&&o.name===e.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=a,o.options=n),void(o.value=t);this.addEventListener(e.type,a,n),o={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(o):this.__on=[o]}}function Ke(e,t,n){var o=me(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 Ze(e,t){return function(){return Ke(this,e,t)}}function We(e,t){return function(){return Ke(this,e,t.apply(this,arguments))}}re.prototype={constructor:re,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)}},Ce.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 Ue=[null];function Ge(e,t){this._groups=e,this._parents=t}function qe(){return new Ge([[document.documentElement]],Ue)}function Je(e){return"string"==typeof e?new Ge([[document.querySelector(e)]],[document.documentElement]):new Ge([[e]],Ue)}function Qe(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]}Ge.prototype=qe.prototype={constructor:Ge,select:function(e){"function"!=typeof e&&(e=Z(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var a,i,s=t[r],l=s.length,c=o[r]=new Array(l),d=0;d<l;++d)(a=s[d])&&(i=e.call(a,a.__data__,d,s))&&("__data__"in a&&(i.__data__=a.__data__),c[d]=i);return new Ge(o,this._parents)},selectAll:function(e){e="function"==typeof e?G(e):U(e);for(var t=this._groups,n=t.length,o=[],r=[],a=0;a<n;++a)for(var i,s=t[a],l=s.length,c=0;c<l;++c)(i=s[c])&&(o.push(e.call(i,i.__data__,c,s)),r.push(i));return new Ge(o,r)},selectChild:function(e){return this.select(null==e?ee:function(e){return function(){return Q.call(this.children,e)}}("function"==typeof e?e:J(e)))},selectChildren:function(e){return this.selectAll(null==e?ne:function(e){return function(){return te.call(this.children,e)}}("function"==typeof e?e:J(e)))},filter:function(e){"function"!=typeof e&&(e=q(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var a,i=t[r],s=i.length,l=o[r]=[],c=0;c<s;++c)(a=i[c])&&e.call(a,a.__data__,c,i)&&l.push(a);return new Ge(o,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,se);var n,o=t?ie:ae,r=this._parents,a=this._groups;"function"!=typeof e&&(n=e,e=function(){return n});for(var i=a.length,s=new Array(i),l=new Array(i),c=new Array(i),d=0;d<i;++d){var u=r[d],f=a[d],h=f.length,p=le(e.call(u,u&&u.__data__,d,r)),g=p.length,m=l[d]=new Array(g),y=s[d]=new Array(g);o(u,f,m,y,c[d]=new Array(h),p,t);for(var v,b,w=0,x=0;w<g;++w)if(v=m[w]){for(w>=x&&(x=w+1);!(b=y[x])&&++x<g;);v._next=b||null}}return(s=new Ge(s,r))._enter=l,s._exit=c,s},enter:function(){return new Ge(this._enter||this._groups.map(oe),this._parents)},exit:function(){return new Ge(this._exit||this._groups.map(oe),this._parents)},join:function(e,t,n){var o=this.enter(),r=this,a=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?a.remove():n(a),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,a=o.length,i=Math.min(r,a),s=new Array(r),l=0;l<i;++l)for(var c,d=n[l],u=o[l],f=d.length,h=s[l]=new Array(f),p=0;p<f;++p)(c=d[p]||u[p])&&(h[p]=c);for(;l<r;++l)s[l]=n[l];return new Ge(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],a=r.length-1,i=r[a];--a>=0;)(o=r[a])&&(i&&4^o.compareDocumentPosition(i)&&i.parentNode.insertBefore(o,i),i=o);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=ce);for(var n=this._groups,o=n.length,r=new Array(o),a=0;a<o;++a){for(var i,s=n[a],l=s.length,c=r[a]=new Array(l),d=0;d<l;++d)(i=s[d])&&(c[d]=i);c.sort(t)}return new Ge(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,a=o.length;r<a;++r){var i=o[r];if(i)return i}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,a=t[n],i=0,s=a.length;i<s;++i)(r=a[i])&&e.call(r,r.__data__,i,a);return this},attr:function(e,t){var n=Y(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?ue:de:"function"==typeof t?n.local?ge:pe:n.local?he:fe)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?ye:"function"==typeof t?be:ve)(e,t,null==n?"":n)):we(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?xe:"function"==typeof t?Ee:_e)(e,t)):this.node()[e]},classed:function(e,t){var n=Se(e+"");if(arguments.length<2){for(var o=Ne(this.node()),r=-1,a=n.length;++r<a;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof t?ze:t?Oe:Ae)(n,t))},text:function(e){return arguments.length?this.each(null==e?Ie:("function"==typeof e?De:Pe)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?Te:("function"==typeof e?Re:$e)(e)):this.node().innerHTML},raise:function(){return this.each(Be)},lower:function(){return this.each(Le)},append:function(e){var t="function"==typeof e?e:F(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})},insert:function(e,t){var n="function"==typeof e?e:F(e),o=null==t?He:"function"==typeof t?t:Z(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})},remove:function(){return this.each(Ve)},clone:function(e){return this.select(e?Xe:Ye)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var o,r,a=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+""),i=a.length;if(!(arguments.length<2)){for(s=t?Fe:je,o=0;o<i;++o)this.each(s(a[o],t,n));return this}var s=this.node().__on;if(s)for(var l,c=0,d=s.length;c<d;++c)for(o=0,l=s[c];o<i;++o)if((r=a[o]).type===l.type&&r.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"==typeof t?We:Ze)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o,r=e[t],a=0,i=r.length;a<i;++a)(o=r[a])&&(yield o)}};const et={passive:!1},tt={capture:!0,passive:!1};function nt(e){e.stopImmediatePropagation()}function ot(e){e.preventDefault(),e.stopImmediatePropagation()}function rt(e){var t=e.document.documentElement,n=Je(e).on("dragstart.drag",ot,tt);"onselectstart"in t?n.on("selectstart.drag",ot,tt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function at(e,t){var n=e.document.documentElement,o=Je(e).on("dragstart.drag",null);t&&(o.on("click.drag",ot,tt),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var it=e=>()=>e;function st(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:a,x:i,y:s,dx:l,dy:c,dispatch:d}){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:a,enumerable:!0,configurable:!0},x:{value:i,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:d}})}function lt(e){return!e.ctrlKey&&!e.button}function ct(){return this.parentNode}function dt(e,t){return null==t?{x:e.x,y:e.y}:t}function ut(){return navigator.maxTouchPoints||"ontouchstart"in this}function ft(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ht(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function pt(){}st.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var gt=.7,mt=1/gt,yt="\\s*([+-]?\\d+)\\s*",vt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",bt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",wt=/^#([0-9a-f]{3,8})$/,xt=new RegExp(`^rgb\\(${yt},${yt},${yt}\\)$`),_t=new RegExp(`^rgb\\(${bt},${bt},${bt}\\)$`),Et=new RegExp(`^rgba\\(${yt},${yt},${yt},${vt}\\)$`),St=new RegExp(`^rgba\\(${bt},${bt},${bt},${vt}\\)$`),Nt=new RegExp(`^hsl\\(${vt},${bt},${bt}\\)$`),Ct=new RegExp(`^hsla\\(${vt},${bt},${bt},${vt}\\)$`),kt={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 Mt(){return this.rgb().formatHex()}function Ot(){return this.rgb().formatRgb()}function At(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=wt.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?zt(t):3===n?new Dt(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?It(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?It(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=xt.exec(e))?new Dt(t[1],t[2],t[3],1):(t=_t.exec(e))?new Dt(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Et.exec(e))?It(t[1],t[2],t[3],t[4]):(t=St.exec(e))?It(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Nt.exec(e))?Ht(t[1],t[2]/100,t[3]/100,1):(t=Ct.exec(e))?Ht(t[1],t[2]/100,t[3]/100,t[4]):kt.hasOwnProperty(e)?zt(kt[e]):"transparent"===e?new Dt(NaN,NaN,NaN,0):null}function zt(e){return new Dt(e>>16&255,e>>8&255,255&e,1)}function It(e,t,n,o){return o<=0&&(e=t=n=NaN),new Dt(e,t,n,o)}function Pt(e,t,n,o){return 1===arguments.length?((r=e)instanceof pt||(r=At(r)),r?new Dt((r=r.rgb()).r,r.g,r.b,r.opacity):new Dt):new Dt(e,t,n,null==o?1:o);var r}function Dt(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}function Tt(){return`#${Lt(this.r)}${Lt(this.g)}${Lt(this.b)}`}function $t(){const e=Rt(this.opacity);return`${1===e?"rgb(":"rgba("}${Bt(this.r)}, ${Bt(this.g)}, ${Bt(this.b)}${1===e?")":`, ${e})`}`}function Rt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Lt(e){return((e=Bt(e))<16?"0":"")+e.toString(16)}function Ht(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Yt(e,t,n,o)}function Vt(e){if(e instanceof Yt)return new Yt(e.h,e.s,e.l,e.opacity);if(e instanceof pt||(e=At(e)),!e)return new Yt;if(e instanceof Yt)return e;var t=(e=e.rgb()).r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),a=Math.max(t,n,o),i=NaN,s=a-r,l=(a+r)/2;return s?(i=t===a?(n-o)/s+6*(n<o):n===a?(o-t)/s+2:(t-n)/s+4,s/=l<.5?a+r:2-a-r,i*=60):s=l>0&&l<1?0:i,new Yt(i,s,l,e.opacity)}function Yt(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}function Xt(e){return(e=(e||0)%360)<0?e+360:e}function jt(e){return Math.max(0,Math.min(1,e||0))}function Ft(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}ft(pt,At,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Mt,formatHex:Mt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Vt(this).formatHsl()},formatRgb:Ot,toString:Ot}),ft(Dt,Pt,ht(pt,{brighter(e){return e=null==e?mt:Math.pow(mt,e),new Dt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?gt:Math.pow(gt,e),new Dt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Dt(Bt(this.r),Bt(this.g),Bt(this.b),Rt(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:Tt,formatHex:Tt,formatHex8:function(){return`#${Lt(this.r)}${Lt(this.g)}${Lt(this.b)}${Lt(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:$t,toString:$t})),ft(Yt,function(e,t,n,o){return 1===arguments.length?Vt(e):new Yt(e,t,n,null==o?1:o)},ht(pt,{brighter(e){return e=null==e?mt:Math.pow(mt,e),new Yt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?gt:Math.pow(gt,e),new Yt(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 Dt(Ft(e>=240?e-240:e+120,r,o),Ft(e,r,o),Ft(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new Yt(Xt(this.h),jt(this.s),jt(this.l),Rt(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=Rt(this.opacity);return`${1===e?"hsl(":"hsla("}${Xt(this.h)}, ${100*jt(this.s)}%, ${100*jt(this.l)}%${1===e?")":`, ${e})`}`}}));var Kt=e=>()=>e;function Zt(e){return 1===(e=+e)?Wt: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):Kt(isNaN(t)?n:t)}}function Wt(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):Kt(isNaN(e)?t:e)}var Ut=function e(t){var n=Zt(t);function o(e,t){var o=n((e=Pt(e)).r,(t=Pt(t)).r),r=n(e.g,t.g),a=n(e.b,t.b),i=Wt(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=r(t),e.b=a(t),e.opacity=i(t),e+""}}return o.gamma=e,o}(1);function Gt(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var qt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Jt=new RegExp(qt.source,"g");function Qt(e,t){var n,o,r,a=qt.lastIndex=Jt.lastIndex=0,i=-1,s=[],l=[];for(e+="",t+="";(n=qt.exec(e))&&(o=Jt.exec(t));)(r=o.index)>a&&(r=t.slice(a,r),s[i]?s[i]+=r:s[++i]=r),(n=n[0])===(o=o[0])?s[i]?s[i]+=o:s[++i]=o:(s[++i]=null,l.push({i:i,x:Gt(n,o)})),a=Jt.lastIndex;return a<t.length&&(r=t.slice(a),s[i]?s[i]+=r:s[++i]=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 en,tn=180/Math.PI,nn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function on(e,t,n,o,r,a){var i,s,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(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,i=-i),{translateX:r,translateY:a,rotate:Math.atan2(t,e)*tn,skewX:Math.atan(l)*tn,scaleX:i,scaleY:s}}function rn(e,t,n,o){function r(e){return e.length?e.pop()+" ":""}return function(a,i){var s=[],l=[];return a=e(a),i=e(i),function(e,o,r,a,i,s){if(e!==r||o!==a){var l=i.push("translate(",null,t,null,n);s.push({i:l-4,x:Gt(e,r)},{i:l-2,x:Gt(o,a)})}else(r||a)&&i.push("translate("+r+t+a+n)}(a.translateX,a.translateY,i.translateX,i.translateY,s,l),function(e,t,n,a){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(r(n)+"rotate(",null,o)-2,x:Gt(e,t)})):t&&n.push(r(n)+"rotate("+t+o)}(a.rotate,i.rotate,s,l),function(e,t,n,a){e!==t?a.push({i:n.push(r(n)+"skewX(",null,o)-2,x:Gt(e,t)}):t&&n.push(r(n)+"skewX("+t+o)}(a.skewX,i.skewX,s,l),function(e,t,n,o,a,i){if(e!==n||t!==o){var s=a.push(r(a)+"scale(",null,",",null,")");i.push({i:s-4,x:Gt(e,n)},{i:s-2,x:Gt(t,o)})}else 1===n&&1===o||a.push(r(a)+"scale("+n+","+o+")")}(a.scaleX,a.scaleY,i.scaleX,i.scaleY,s,l),a=i=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 an=rn(function(e){const t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?nn:on(t.a,t.b,t.c,t.d,t.e,t.f)},"px, ","px)","deg)"),sn=rn(function(e){return null==e?nn:(en||(en=document.createElementNS("http://www.w3.org/2000/svg","g")),en.setAttribute("transform",e),(e=en.transform.baseVal.consolidate())?on((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):nn)},", ",")",")");function ln(e){return((e=Math.exp(e))+1/e)/2}var cn,dn,un=function e(t,n,o){function r(e,r){var a,i,s=e[0],l=e[1],c=e[2],d=r[0],u=r[1],f=r[2],h=d-s,p=u-l,g=h*h+p*p;if(g<1e-12)i=Math.log(f/c)/t,a=function(e){return[s+e*h,l+e*p,c*Math.exp(t*e*i)]};else{var m=Math.sqrt(g),y=(f*f-c*c+o*g)/(2*c*n*m),v=(f*f-c*c-o*g)/(2*f*n*m),b=Math.log(Math.sqrt(y*y+1)-y),w=Math.log(Math.sqrt(v*v+1)-v);i=(w-b)/t,a=function(e){var o,r=e*i,a=ln(b),d=c/(n*m)*(a*(o=t*r+b,((o=Math.exp(2*o))-1)/(o+1))-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+d*h,l+d*p,c*a/ln(t*r+b)]}}return a.duration=1e3*i*t/Math.SQRT2,a}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),fn=0,hn=0,pn=0,gn=0,mn=0,yn=0,vn="object"==typeof performance&&performance.now?performance:Date,bn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function wn(){return mn||(bn(xn),mn=vn.now()+yn)}function xn(){mn=0}function _n(){this._call=this._time=this._next=null}function En(e,t,n){var o=new _n;return o.restart(e,t,n),o}function Sn(){mn=(gn=vn.now())+yn,fn=hn=0;try{!function(){wn(),++fn;for(var e,t=cn;t;)(e=mn-t._time)>=0&&t._call.call(void 0,e),t=t._next;--fn}()}finally{fn=0,function(){var e,t,n=cn,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:cn=t);dn=e,Cn(o)}(),mn=0}}function Nn(){var e=vn.now(),t=e-gn;t>1e3&&(yn-=t,gn=e)}function Cn(e){fn||(hn&&(hn=clearTimeout(hn)),e-mn>24?(e<1/0&&(hn=setTimeout(Sn,e-vn.now()-yn)),pn&&(pn=clearInterval(pn))):(pn||(gn=vn.now(),pn=setInterval(Nn,1e3)),fn=1,bn(Sn)))}function kn(e,t,n){var o=new _n;return t=null==t?0:+t,o.restart(n=>{o.stop(),e(n+t)},t,n),o}_n.prototype=En.prototype={constructor:_n,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?wn():+n)+(null==t?0:+t),this._next||dn===this||(dn?dn._next=this:cn=this,dn=this),this._call=e,this._time=n,Cn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Cn())}};var Mn=$("start","end","cancel","interrupt"),On=[];function An(e,t,n,o,r,a){var i=e.__transition;if(i){if(n in i)return}else e.__transition={};!function(e,t,n){var o,r=e.__transition;function a(e){n.state=1,n.timer.restart(i,n.delay,n.time),n.delay<=e&&i(e-n.delay)}function i(a){var c,d,u,f;if(1!==n.state)return l();for(c in r)if((f=r[c]).name===n.name){if(3===f.state)return kn(i);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",e,e.__data__,f.index,f.group),delete r[c]):+c<t&&(f.state=6,f.timer.stop(),f.on.call("cancel",e,e.__data__,f.index,f.group),delete r[c])}if(kn(function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(n.state=3,o=new Array(u=n.tween.length),c=0,d=-1;c<u;++c)(f=n.tween[c].value.call(e,e.__data__,n.index,n.group))&&(o[++d]=f);o.length=d+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),a=-1,i=o.length;++a<i;)o[a].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=En(a,0,n.time)}(e,n,{name:t,index:o,group:r,on:Mn,tween:On,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function zn(e,t){var n=Pn(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function In(e,t){var n=Pn(e,t);if(n.state>3)throw new Error("too late; already running");return n}function Pn(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Dn(e,t){var n,o,r,a=e.__transition,i=!0;if(a){for(r in t=null==t?null:t+"",a)(n=a[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 a[r]):i=!1;i&&delete e.__transition}}function Tn(e,t){var n,o;return function(){var r=In(this,e),a=r.tween;if(a!==n)for(var i=0,s=(o=n=a).length;i<s;++i)if(o[i].name===t){(o=o.slice()).splice(i,1);break}r.tween=o}}function $n(e,t,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var a=In(this,e),i=a.tween;if(i!==o){r=(o=i).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)}a.tween=r}}function Rn(e,t,n){var o=e._id;return e.each(function(){var e=In(this,o);(e.value||(e.value={}))[t]=n.apply(this,arguments)}),function(e){return Pn(e,o).value[t]}}function Bn(e,t){var n;return("number"==typeof t?Gt:t instanceof At?Ut:(n=At(t))?(t=n,Ut):Qt)(e,t)}function Ln(e){return function(){this.removeAttribute(e)}}function Hn(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Vn(e,t,n){var o,r,a=n+"";return function(){var i=this.getAttribute(e);return i===a?null:i===o?r:r=t(o=i,n)}}function Yn(e,t,n){var o,r,a=n+"";return function(){var i=this.getAttributeNS(e.space,e.local);return i===a?null:i===o?r:r=t(o=i,n)}}function Xn(e,t,n){var o,r,a;return function(){var i,s,l=n(this);if(null!=l)return(i=this.getAttribute(e))===(s=l+"")?null:i===o&&s===r?a:(r=s,a=t(o=i,l));this.removeAttribute(e)}}function jn(e,t,n){var o,r,a;return function(){var i,s,l=n(this);if(null!=l)return(i=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:i===o&&s===r?a:(r=s,a=t(o=i,l));this.removeAttributeNS(e.space,e.local)}}function Fn(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 Kn(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 Zn(e,t){return function(){zn(this,e).delay=+t.apply(this,arguments)}}function Wn(e,t){return t=+t,function(){zn(this,e).delay=t}}function Un(e,t){return function(){In(this,e).duration=+t.apply(this,arguments)}}function Gn(e,t){return t=+t,function(){In(this,e).duration=t}}var qn=qe.prototype.constructor;function Jn(e){return function(){this.style.removeProperty(e)}}var Qn=0;function eo(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function to(){return++Qn}var no=qe.prototype;eo.prototype={constructor:eo,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=Z(e));for(var o=this._groups,r=o.length,a=new Array(r),i=0;i<r;++i)for(var s,l,c=o[i],d=c.length,u=a[i]=new Array(d),f=0;f<d;++f)(s=c[f])&&(l=e.call(s,s.__data__,f,c))&&("__data__"in s&&(l.__data__=s.__data__),u[f]=l,An(u[f],t,n,f,u,Pn(s,n)));return new eo(a,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=U(e));for(var o=this._groups,r=o.length,a=[],i=[],s=0;s<r;++s)for(var l,c=o[s],d=c.length,u=0;u<d;++u)if(l=c[u]){for(var f,h=e.call(l,l.__data__,u,c),p=Pn(l,n),g=0,m=h.length;g<m;++g)(f=h[g])&&An(f,t,n,g,h,p);a.push(h),i.push(l)}return new eo(a,i,t,n)},selectChild:no.selectChild,selectChildren:no.selectChildren,filter:function(e){"function"!=typeof e&&(e=q(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var a,i=t[r],s=i.length,l=o[r]=[],c=0;c<s;++c)(a=i[c])&&e.call(a,a.__data__,c,i)&&l.push(a);return new eo(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,a=Math.min(o,r),i=new Array(o),s=0;s<a;++s)for(var l,c=t[s],d=n[s],u=c.length,f=i[s]=new Array(u),h=0;h<u;++h)(l=c[h]||d[h])&&(f[h]=l);for(;s<o;++s)i[s]=t[s];return new eo(i,this._parents,this._name,this._id)},selection:function(){return new qn(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=to(),o=this._groups,r=o.length,a=0;a<r;++a)for(var i,s=o[a],l=s.length,c=0;c<l;++c)if(i=s[c]){var d=Pn(i,t);An(i,e,n,c,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new eo(o,this._parents,e,n)},call:no.call,nodes:no.nodes,node:no.node,size:no.size,empty:no.empty,each:no.each,on:function(e,t){var n=this._id;return arguments.length<2?Pn(this.node(),n).on.on(e):this.each(function(e,t,n){var o,r,a=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)?zn:In;return function(){var i=a(this,e),s=i.on;s!==o&&(r=(o=s).copy()).on(t,n),i.on=r}}(n,e,t))},attr:function(e,t){var n=Y(e),o="transform"===n?sn:Bn;return this.attrTween(e,"function"==typeof t?(n.local?jn:Xn)(n,o,Rn(this,"attr."+e,t)):null==t?(n.local?Hn:Ln)(n):(n.local?Yn:Vn)(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=Y(e);return this.tween(n,(o.local?Fn:Kn)(o,t))},style:function(e,t,n){var o="transform"==(e+="")?an:Bn;return null==t?this.styleTween(e,function(e,t){var n,o,r;return function(){var a=we(this,e),i=(this.style.removeProperty(e),we(this,e));return a===i?null:a===n&&i===o?r:r=t(n=a,o=i)}}(e,o)).on("end.style."+e,Jn(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var o,r,a;return function(){var i=we(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=we(this,e)),i===l?null:i===o&&l===r?a:(r=l,a=t(o=i,s))}}(e,o,Rn(this,"style."+e,t))).each(function(e,t){var n,o,r,a,i="style."+t,s="end."+i;return function(){var l=In(this,e),c=l.on,d=null==l.value[i]?a||(a=Jn(t)):void 0;c===n&&r===d||(o=(n=c).copy()).on(s,r=d),l.on=o}}(this._id,e)):this.styleTween(e,function(e,t,n){var o,r,a=n+"";return function(){var i=we(this,e);return i===a?null:i===o?r:r=t(o=i,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 a(){var a=t.apply(this,arguments);return a!==r&&(o=(r=a)&&function(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}(e,a,n)),o}return a._value=t,a}(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}}(Rn(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",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o,r=Pn(this.node(),n).tween,a=0,i=r.length;a<i;++a)if((o=r[a]).name===e)return o.value;return null}return this.each((null==t?Tn:$n)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?Zn:Wn)(t,e)):Pn(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?Un:Gn)(t,e)):Pn(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(){In(this,e).ease=t}}(t,e)):Pn(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;In(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(a,i){var s={value:i},l={value:function(){0===--r&&a()}};n.each(function(){var n=In(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&&a()})},[Symbol.iterator]:no[Symbol.iterator]};var oo={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};function ro(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}qe.prototype.interrupt=function(e){return this.each(function(){Dn(this,e)})},qe.prototype.transition=function(e){var t,n;e instanceof eo?(t=e._id,e=e._name):(t=to(),(n=oo).time=wn(),e=null==e?null:e+"");for(var o=this._groups,r=o.length,a=0;a<r;++a)for(var i,s=o[a],l=s.length,c=0;c<l;++c)(i=s[c])&&An(i,e,t,c,s,n||ro(i,t));return new eo(o,this._parents,e,t)};var ao=e=>()=>e;function io(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 so(e,t,n){this.k=e,this.x=t,this.y=n}so.prototype={constructor:so,scale:function(e){return 1===e?this:new so(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new so(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 lo=new so(1,0,0);function co(e){e.stopImmediatePropagation()}function uo(e){e.preventDefault(),e.stopImmediatePropagation()}function fo(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function ho(){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 po(){return this.__zoom||lo}function go(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function mo(){return navigator.maxTouchPoints||"ontouchstart"in this}function yo(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),i>a?(a+i)/2:Math.min(0,a)||Math.max(0,i))}so.prototype;const vo=s(null),bo=vo.Provider,wo=()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",xo=e=>`Node type "${e}" not found. Using fallback type "default".`,_o=()=>"The React Flow parent container needs a width and a height to render the graph.",Eo=()=>"Only child nodes can use a parent extent.",So=()=>"Can't create edge. An edge needs a source and a target.",No=e=>`Marker type "${e}" doesn't exist.`,Co=(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,ko=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",Mo=e=>`Edge type "${e}" not found. Using fallback type "default".`,Oo=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.`,Ao=(()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001")();function zo(e,t){const n=l(vo);if(null===n)throw new Error(Ao);return I(n,e,t)}const Io=()=>{const e=l(vo);if(null===e)throw new Error(Ao);return a(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},Po=e=>e.userSelectionActive?"none":"all";function Do({position:t,children:n,className:o,style:r,...a}){const i=zo(Po),s=`${t}`.split("-");return e.createElement("div",{className:u(["react-flow__panel",o,...s]),style:{...r,pointerEvents:i},...a},n)}function To({proOptions:t,position:n="bottom-right"}){return t?.hideAttribution?null:e.createElement(Do,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},e.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}var $o=n(({x:t,y:n,label:r,labelStyle:a={},labelShowBg:s=!0,labelBgStyle:l={},labelBgPadding:d=[2,4],labelBgBorderRadius:f=2,children:h,className:p,...g})=>{const m=i(null),[y,v]=o({x:0,y:0,width:0,height:0}),b=u(["react-flow__edge-textwrapper",p]);return c(()=>{if(m.current){const e=m.current.getBBox();v({x:e.x,y:e.y,width:e.width,height:e.height})}},[r]),void 0!==r&&r?e.createElement("g",{transform:`translate(${t-y.width/2} ${n-y.height/2})`,className:b,visibility:y.width?"visible":"hidden",...g},s&&e.createElement("rect",{width:y.width+2*d[0],x:-d[0],y:-d[1],height:y.height+2*d[1],className:"react-flow__edge-textbg",style:l,rx:f,ry:f}),e.createElement("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:m,style:a},r),h):null});const Ro=e=>({width:e.offsetWidth,height:e.offsetHeight}),Bo=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Lo=(e={x:0,y:0},t)=>({x:Bo(e.x,t[0][0],t[1][0]),y:Bo(e.y,t[0][1],t[1][1])}),Ho=(e,t,n)=>e<t?Bo(Math.abs(e-t),1,50)/50:e>n?-Bo(Math.abs(e-n),1,50)/50:0,Vo=(e,t)=>[20*Ho(e.x,35,t.width-35),20*Ho(e.y,35,t.height-35)],Yo=e=>e.getRootNode?.()||window?.document,Xo=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),jo=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Fo=(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)},Ko=e=>!isNaN(e)&&isFinite(e),Zo=Symbol.for("internals"),Wo=["Enter"," ","Escape"],Uo=(e,t)=>{"development"===process.env.NODE_ENV&&console.warn(`[React Flow]: ${t} Help: https://reactflow.dev/error#${e}`)};function Go(e){const t=(e=>"nativeEvent"in e)(e)?e.nativeEvent:e,n=t.composedPath?.()?.[0]||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n?.nodeName)||n?.hasAttribute("contenteditable")||!!n?.closest(".nokey")}const qo=e=>"clientX"in e,Jo=(e,t)=>{const n=qo(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},Qo=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,er=({id:t,path:n,labelX:o,labelY:r,label:a,labelStyle:i,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:f,markerStart:h,interactionWidth:p=20})=>e.createElement(e.Fragment,null,e.createElement("path",{id:t,style:u,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:f,markerStart:h}),p&&e.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:p,className:"react-flow__edge-interaction"}),a&&Ko(o)&&Ko(r)?e.createElement($o,{x:o,y:r,label:a,labelStyle:i,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d}):null);function tr(e,t,n){return void 0===n?n:o=>{const r=t().edges.find(t=>t.id===e);r&&n(o,{...r})}}function nr({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,a=n<e?n+r:n-r,i=Math.abs(o-t)/2;return[a,o<t?o+i:o-i,r,i]}function or({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:a,targetControlX:i,targetControlY:s}){const l=.125*e+.375*r+.375*i+.125*n,c=.125*t+.375*a+.375*s+.125*o;return[l,c,Math.abs(l-e),Math.abs(c-t)]}var rr,ar,ir,sr,lr,cr;function dr({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===cr.Left||e===cr.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function ur({sourceX:e,sourceY:t,sourcePosition:n=cr.Bottom,targetX:o,targetY:r,targetPosition:a=cr.Top}){const[i,s]=dr({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,c]=dr({pos:a,x1:o,y1:r,x2:e,y2:t}),[d,u,f,h]=or({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:i,sourceControlY:s,targetControlX:l,targetControlY:c});return[`M${e},${t} C${i},${s} ${l},${c} ${o},${r}`,d,u,f,h]}er.displayName="BaseEdge",function(e){e.Strict="strict",e.Loose="loose"}(rr||(rr={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(ar||(ar={})),function(e){e.Partial="partial",e.Full="full"}(ir||(ir={})),function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(sr||(sr={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(lr||(lr={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(cr||(cr={}));const fr=n(({sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:a=cr.Bottom,targetPosition:i=cr.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:m})=>{const[y,v,b]=ur({sourceX:t,sourceY:n,sourcePosition:a,targetX:o,targetY:r,targetPosition:i});return e.createElement(er,{path:y,labelX:v,labelY:b,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:m})});fr.displayName="SimpleBezierEdge";const hr={[cr.Left]:{x:-1,y:0},[cr.Right]:{x:1,y:0},[cr.Top]:{x:0,y:-1},[cr.Bottom]:{x:0,y:1}},pr=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function gr({source:e,sourcePosition:t=cr.Bottom,target:n,targetPosition:o=cr.Top,center:r,offset:a}){const i=hr[t],s=hr[o],l={x:e.x+i.x*a,y:e.y+i.y*a},c={x:n.x+s.x*a,y:n.y+s.y*a},d=(({source:e,sourcePosition:t=cr.Bottom,target:n})=>t===cr.Left||t===cr.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}),u=0!==d.x?"x":"y",f=d[u];let h,p,g=[];const m={x:0,y:0},y={x:0,y:0},[v,b,w,x]=nr({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(i[u]*s[u]===-1){h=r.x??v,p=r.y??b;const e=[{x:h,y:l.y},{x:h,y:c.y}],t=[{x:l.x,y:p},{x:c.x,y:p}];g=i[u]===f?"x"===u?e:t:"x"===u?t:e}else{const r=[{x:l.x,y:c.y}],d=[{x:c.x,y:l.y}];if(g="x"===u?i.x===f?d:r:i.y===f?r:d,t===o){const t=Math.abs(e[u]-n[u]);if(t<=a){const o=Math.min(a-1,a-t);i[u]===f?m[u]=(l[u]>e[u]?-1:1)*o:y[u]=(c[u]>n[u]?-1:1)*o}}if(t!==o){const e="x"===u?"y":"x",t=i[u]===s[e],n=l[e]>c[e],o=l[e]<c[e];(1===i[u]&&(!t&&n||t&&o)||1!==i[u]&&(!t&&o||t&&n))&&(g="x"===u?r:d)}const v={x:l.x+m.x,y:l.y+m.y},b={x:c.x+y.x,y:c.y+y.y};Math.max(Math.abs(v.x-g[0].x),Math.abs(b.x-g[0].x))>=Math.max(Math.abs(v.y-g[0].y),Math.abs(b.y-g[0].y))?(h=(v.x+b.x)/2,p=g[0].y):(h=g[0].x,p=(v.y+b.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],h,p,w,x]}function mr({sourceX:e,sourceY:t,sourcePosition:n=cr.Bottom,targetX:o,targetY:r,targetPosition:a=cr.Top,borderRadius:i=5,centerX:s,centerY:l,offset:c=20}){const[d,u,f,h,p]=gr({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:a,center:{x:s,y:l},offset:c});return[d.reduce((e,t,n)=>{let o="";return o=n>0&&n<d.length-1?function(e,t,n,o){const r=Math.min(pr(e,t)/2,pr(t,n)/2,o),{x:a,y:i}=t;if(e.x===a&&a===n.x||e.y===i&&i===n.y)return`L${a} ${i}`;if(e.y===i)return`L ${a+r*(e.x<n.x?-1:1)},${i}Q ${a},${i} ${a},${i+r*(e.y<n.y?1:-1)}`;const s=e.x<n.x?1:-1;return`L ${a},${i+r*(e.y<n.y?-1:1)}Q ${a},${i} ${a+r*s},${i}`}(d[n-1],t,d[n+1],i):`${0===n?"M":"L"}${t.x} ${t.y}`,e+=o},""),u,f,h,p]}const yr=n(({sourceX:t,sourceY:n,targetX:o,targetY:r,label:a,labelStyle:i,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:u,sourcePosition:f=cr.Bottom,targetPosition:h=cr.Top,markerEnd:p,markerStart:g,pathOptions:m,interactionWidth:y})=>{const[v,b,w]=mr({sourceX:t,sourceY:n,sourcePosition:f,targetX:o,targetY:r,targetPosition:h,borderRadius:m?.borderRadius,offset:m?.offset});return e.createElement(er,{path:v,labelX:b,labelY:w,label:a,labelStyle:i,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:p,markerStart:g,interactionWidth:y})});yr.displayName="SmoothStepEdge";const vr=n(t=>e.createElement(yr,{...t,pathOptions:a(()=>({borderRadius:0,offset:t.pathOptions?.offset}),[t.pathOptions?.offset])}));vr.displayName="StepEdge";const br=n(({sourceX:t,sourceY:n,targetX:o,targetY:r,label:a,labelStyle:i,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:f,markerStart:h,interactionWidth:p})=>{const[g,m,y]=function({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,a,i,s]=nr({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,a,i,s]}({sourceX:t,sourceY:n,targetX:o,targetY:r});return e.createElement(er,{path:g,labelX:m,labelY:y,label:a,labelStyle:i,labelShowBg:s,labelBgStyle:l,labelBgPadding:c,labelBgBorderRadius:d,style:u,markerEnd:f,markerStart:h,interactionWidth:p})});function wr(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function xr({pos:e,x1:t,y1:n,x2:o,y2:r,c:a}){switch(e){case cr.Left:return[t-wr(t-o,a),n];case cr.Right:return[t+wr(o-t,a),n];case cr.Top:return[t,n-wr(n-r,a)];case cr.Bottom:return[t,n+wr(r-n,a)]}}function _r({sourceX:e,sourceY:t,sourcePosition:n=cr.Bottom,targetX:o,targetY:r,targetPosition:a=cr.Top,curvature:i=.25}){const[s,l]=xr({pos:n,x1:e,y1:t,x2:o,y2:r,c:i}),[c,d]=xr({pos:a,x1:o,y1:r,x2:e,y2:t,c:i}),[u,f,h,p]=or({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:d});return[`M${e},${t} C${s},${l} ${c},${d} ${o},${r}`,u,f,h,p]}br.displayName="StraightEdge";const Er=n(({sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:a=cr.Bottom,targetPosition:i=cr.Top,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,pathOptions:m,interactionWidth:y})=>{const[v,b,w]=_r({sourceX:t,sourceY:n,sourcePosition:a,targetX:o,targetY:r,targetPosition:i,curvature:m?.curvature});return e.createElement(er,{path:v,labelX:b,labelY:w,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:y})});Er.displayName="BezierEdge";const Sr=s(null),Nr=Sr.Provider;Sr.Consumer;const Cr=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${n}${o||""}`,kr=(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("&")}`},Mr=(e,t)=>{if(!e.source||!e.target)return Uo("006",So()),t;let n;var o;return n="id"in(o=e)&&"source"in o&&"target"in o?{...e}:{...e,id:Cr(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)},Or=({x:e,y:t},[n,o,r],a,[i,s])=>{const l={x:(e-n)/r,y:(t-o)/r};return a?{x:i*Math.round(l.x/i),y:s*Math.round(l.y/s)}:l},Ar=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o}),zr=(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}},Ir=(e,t=[0,0])=>{if(0===e.length)return{x:0,y:0,width:0,height:0};return(({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}))(e.reduce((e,n)=>{const{x:o,y:r}=zr(n,t).positionAbsolute;return a=e,i=Xo({x:o,y:r,width:n.width||0,height:n.height||0}),{x:Math.min(a.x,i.x),y:Math.min(a.y,i.y),x2:Math.max(a.x2,i.x2),y2:Math.max(a.y2,i.y2)};var a,i},{x:1/0,y:1/0,x2:-1/0,y2:-1/0}))},Pr=(e,t,[n,o,r]=[0,0,1],a=!1,i=!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(i&&!o||r)return!1;const{positionAbsolute:d}=zr(e,s),u={x:d.x,y:d.y,width:t||0,height:n||0},f=Fo(l,u);(void 0===t||void 0===n||null===t||null===n||a&&f>0||f>=(t||0)*(n||0)||e.dragging)&&c.push(e)}),c},Dr=(e,t)=>{const n=e.map(e=>e.id);return t.filter(e=>n.includes(e.source)||n.includes(e.target))},Tr=(e,t,n,o,r,a=.1)=>{const i=t/(e.width*(1+a)),s=n/(e.height*(1+a)),l=Math.min(i,s),c=Bo(l,o,r);return{x:t/2-(e.x+e.width/2)*c,y:n/2-(e.y+e.height/2)*c,zoom:c}},$r=(e,t=0)=>e.transition().duration(t);function Rr(e,t,n,o){return(t[n]||[]).reduce((t,r)=>(`${e.id}-${r.id}-${n}`!==o&&t.push({id:r.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+r.x+r.width/2,y:(e.positionAbsolute?.y??0)+r.y+r.height/2}),t),[])}const Br={source:null,target:null,sourceHandle:null,targetHandle:null},Lr=()=>({handleDomNode:null,isValid:!1,connection:Br,endHandle:null});function Hr(e,t,n,o,r,a,i){const s="target"===r,l=i.querySelector(`.react-flow__handle[data-id="${e?.nodeId}-${e?.id}-${e?.type}"]`),c={...Lr(),handleDomNode:l};if(l){const e=Vr(void 0,l),r=l.getAttribute("data-nodeid"),i=l.getAttribute("data-handleid"),d=l.classList.contains("connectable"),u=l.classList.contains("connectableend"),f={source:s?r:n,sourceHandle:s?i:o,target:s?n:r,targetHandle:s?o:i};c.connection=f;d&&u&&(t===rr.Strict?s&&"source"===e||!s&&"target"===e:r!==n||i!==o)&&(c.endHandle={nodeId:r,handleId:i,type:e},c.isValid=a(f))}return c}function Vr(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Yr(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Xr(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function jr({event:e,handleId:t,nodeId:n,onConnect:o,isTarget:r,getState:a,setState:i,isValidConnection:s,edgeUpdaterType:l,onReconnectEnd:c}){const d=Yo(e.target),{connectionMode:u,domNode:f,autoPanOnConnect:h,connectionRadius:p,onConnectStart:g,panBy:m,getNodes:y,cancelConnection:v}=a();let b,w=0;const{x:x,y:_}=Jo(e),E=d?.elementFromPoint(x,_),S=Vr(l,E),N=f?.getBoundingClientRect();if(!N||!S)return;let C,k=Jo(e,N),M=!1,O=null,A=!1,z=null;const I=function({nodes:e,nodeId:t,handleId:n,handleType:o}){return e.reduce((e,r)=>{if(r[Zo]){const{handleBounds:a}=r[Zo];let i=[],s=[];a&&(i=Rr(r,a,"source",`${t}-${n}-${o}`),s=Rr(r,a,"target",`${t}-${n}-${o}`)),e.push(...i,...s)}return e},[])}({nodes:y(),nodeId:n,handleId:t,handleType:S}),P=()=>{if(!h)return;const[e,t]=Vo(k,N);m({x:e,y:t}),w=requestAnimationFrame(P)};function D(e){const{transform:o}=a();k=Jo(e,N);const{handle:l,validHandleResult:c}=function(e,t,n,o,r,a){const{x:i,y:s}=Jo(e),l=t.elementsFromPoint(i,s).find(e=>e.classList.contains("react-flow__handle"));if(l){const e=l.getAttribute("data-nodeid");if(e){const t=Vr(void 0,l),o=l.getAttribute("data-handleid"),i=a({nodeId:e,id:o,type:t});if(i){const a=r.find(n=>n.nodeId===e&&n.type===t&&n.id===o);return{handle:{id:o,type:t,nodeId:e,x:a?.x||n.x,y:a?.y||n.y},validHandleResult:i}}}}let c=[],d=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=a(e);t<=d&&(t<d?c=[{handle:e,validHandleResult:n}]:t===d&&c.push({handle:e,validHandleResult:n}),d=t)}}),!c.length)return{handle:null,validHandleResult:Lr()};if(1===c.length)return c[0];const u=c.some(({validHandleResult:e})=>e.isValid),f=c.some(({handle:e})=>"target"===e.type);return c.find(({handle:e,validHandleResult:t})=>f?"target"===e.type:!u||t.isValid)||c[0]}(e,d,Or(k,o,!1,[1,1]),p,I,e=>Hr(e,u,n,t,r?"target":"source",s,d));if(b=l,M||(P(),M=!0),z=c.handleDomNode,O=c.connection,A=c.isValid,i({connectionPosition:b&&A?Ar({x:b.x,y:b.y},o):k,connectionStatus:Xr(!!b,A),connectionEndHandle:c.endHandle}),!b&&!A&&!z)return Yr(C);O.source!==O.target&&z&&(Yr(C),C=z,z.classList.add("connecting","react-flow__handle-connecting"),z.classList.toggle("valid",A),z.classList.toggle("react-flow__handle-valid",A))}function T(e){(b||z)&&O&&A&&o?.(O),a().onConnectEnd?.(e),l&&c?.(e),Yr(C),v(),cancelAnimationFrame(w),M=!1,A=!1,O=null,z=null,d.removeEventListener("mousemove",D),d.removeEventListener("mouseup",T),d.removeEventListener("touchmove",D),d.removeEventListener("touchend",T)}i({connectionPosition:k,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:S,connectionStartHandle:{nodeId:n,handleId:t,type:S},connectionEndHandle:null}),g?.(e,{nodeId:n,handleId:t,handleType:S}),d.addEventListener("mousemove",D),d.addEventListener("mouseup",T),d.addEventListener("touchmove",D),d.addEventListener("touchend",T)}const Fr=()=>!0,Kr=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Zr=t(({type:t="source",position:n=cr.Top,isValidConnection:o,isConnectable:r=!0,isConnectableStart:a=!0,isConnectableEnd:i=!0,id:s,onConnect:c,children:d,className:f,onMouseDown:h,onTouchStart:p,...g},m)=>{const y=s||null,v="target"===t,b=Io(),w=l(Sr),{connectOnClick:x,noPanClassName:_}=zo(Kr,D),{connecting:E,clickConnecting:S}=zo(((e,t,n)=>o=>{const{connectionStartHandle:r,connectionEndHandle:a,connectionClickStartHandle:i}=o;return{connecting:r?.nodeId===e&&r?.handleId===t&&r?.type===n||a?.nodeId===e&&a?.handleId===t&&a?.type===n,clickConnecting:i?.nodeId===e&&i?.handleId===t&&i?.type===n}})(w,y,t),D);w||b.getState().onError?.("010",ko());const N=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=b.getState(),r={...t,...e};if(o){const{edges:e,setEdges:t}=b.getState();t(Mr(r,e))}n?.(r),c?.(r)},C=e=>{if(!w)return;const t=qo(e);a&&(t&&0===e.button||!t)&&jr({event:e,handleId:y,nodeId:w,onConnect:N,isTarget:v,getState:b.getState,setState:b.setState,isValidConnection:o||b.getState().isValidConnection||Fr}),t?h?.(e):p?.(e)};return e.createElement("div",{"data-handleid":y,"data-nodeid":w,"data-handlepos":n,"data-id":`${w}-${y}-${t}`,className:u(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",_,f,{source:!v,target:v,connectable:r,connectablestart:a,connectableend:i,connecting:S,connectionindicator:r&&(a&&!E||i&&E)}]),onMouseDown:C,onTouchStart:C,onClick:x?e=>{const{onClickConnectStart:n,onClickConnectEnd:r,connectionClickStartHandle:i,connectionMode:s,isValidConnection:l}=b.getState();if(!w||!i&&!a)return;if(!i)return n?.(e,{nodeId:w,handleId:y,handleType:t}),void b.setState({connectionClickStartHandle:{nodeId:w,type:t,handleId:y}});const c=Yo(e.target),d=o||l||Fr,{connection:u,isValid:f}=Hr({nodeId:w,id:y,type:t},s,i.nodeId,i.handleId||null,i.type,d,c);f&&N(u),r?.(e),b.setState({connectionClickStartHandle:null})}:void 0,ref:m,...g},d)});Zr.displayName="Handle";var Wr=n(Zr);const Ur=({data:t,isConnectable:n,targetPosition:o=cr.Top,sourcePosition:r=cr.Bottom})=>e.createElement(e.Fragment,null,e.createElement(Wr,{type:"target",position:o,isConnectable:n}),t?.label,e.createElement(Wr,{type:"source",position:r,isConnectable:n}));Ur.displayName="DefaultNode";var Gr=n(Ur);const qr=({data:t,isConnectable:n,sourcePosition:o=cr.Bottom})=>e.createElement(e.Fragment,null,t?.label,e.createElement(Wr,{type:"source",position:o,isConnectable:n}));qr.displayName="InputNode";var Jr=n(qr);const Qr=({data:t,isConnectable:n,targetPosition:o=cr.Top})=>e.createElement(e.Fragment,null,e.createElement(Wr,{type:"target",position:o,isConnectable:n}),t?.label);Qr.displayName="OutputNode";var ea=n(Qr);const ta=()=>null;ta.displayName="GroupNode";const na=e=>({selectedNodes:e.getNodes().filter(e=>e.selected),selectedEdges:e.edges.filter(e=>e.selected).map(e=>({...e}))}),oa=e=>e.id;function ra(e,t){return D(e.selectedNodes.map(oa),t.selectedNodes.map(oa))&&D(e.selectedEdges.map(oa),t.selectedEdges.map(oa))}const aa=n(({onSelectionChange:e})=>{const t=Io(),{selectedNodes:n,selectedEdges:o}=zo(na,ra);return c(()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChange.forEach(e=>e(r))},[n,o,e]),null});aa.displayName="SelectionListener";const ia=e=>!!e.onSelectionChange;function sa({onSelectionChange:t}){const n=zo(ia);return t||n?e.createElement(aa,{onSelectionChange:t}):null}const la=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 ca(e,t){c(()=>{void 0!==e&&t(e)},[e])}function da(e,t,n){c(()=>{void 0!==t&&n({[e]:t})},[t])}const ua=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:r,onConnectStart:a,onConnectEnd:i,onClickConnectStart:s,onClickConnectEnd:l,nodesDraggable:d,nodesConnectable:u,nodesFocusable:f,edgesFocusable:h,edgesUpdatable:p,elevateNodesOnSelect:g,minZoom:m,maxZoom:y,nodeExtent:v,onNodesChange:b,onEdgesChange:w,elementsSelectable:x,connectionMode:_,snapGrid:E,snapToGrid:S,translateExtent:N,connectOnClick:C,defaultEdgeOptions:k,fitView:M,fitViewOptions:O,onNodesDelete:A,onEdgesDelete:z,onNodeDrag:I,onNodeDragStart:P,onNodeDragStop:T,onSelectionDrag:$,onSelectionDragStart:R,onSelectionDragStop:B,noPanClassName:L,nodeOrigin:H,rfId:V,autoPanOnConnect:Y,autoPanOnNodeDrag:X,onError:j,connectionRadius:F,isValidConnection:K,nodeDragThreshold:Z})=>{const{setNodes:W,setEdges:U,setDefaultNodesAndEdges:G,setMinZoom:q,setMaxZoom:J,setTranslateExtent:Q,setNodeExtent:ee,reset:te}=zo(la,D),ne=Io();return c(()=>{const e=o?.map(e=>({...e,...k}));return G(n,e),()=>{te()}},[]),da("defaultEdgeOptions",k,ne.setState),da("connectionMode",_,ne.setState),da("onConnect",r,ne.setState),da("onConnectStart",a,ne.setState),da("onConnectEnd",i,ne.setState),da("onClickConnectStart",s,ne.setState),da("onClickConnectEnd",l,ne.setState),da("nodesDraggable",d,ne.setState),da("nodesConnectable",u,ne.setState),da("nodesFocusable",f,ne.setState),da("edgesFocusable",h,ne.setState),da("edgesUpdatable",p,ne.setState),da("elementsSelectable",x,ne.setState),da("elevateNodesOnSelect",g,ne.setState),da("snapToGrid",S,ne.setState),da("snapGrid",E,ne.setState),da("onNodesChange",b,ne.setState),da("onEdgesChange",w,ne.setState),da("connectOnClick",C,ne.setState),da("fitViewOnInit",M,ne.setState),da("fitViewOnInitOptions",O,ne.setState),da("onNodesDelete",A,ne.setState),da("onEdgesDelete",z,ne.setState),da("onNodeDrag",I,ne.setState),da("onNodeDragStart",P,ne.setState),da("onNodeDragStop",T,ne.setState),da("onSelectionDrag",$,ne.setState),da("onSelectionDragStart",R,ne.setState),da("onSelectionDragStop",B,ne.setState),da("noPanClassName",L,ne.setState),da("nodeOrigin",H,ne.setState),da("rfId",V,ne.setState),da("autoPanOnConnect",Y,ne.setState),da("autoPanOnNodeDrag",X,ne.setState),da("onError",j,ne.setState),da("connectionRadius",F,ne.setState),da("isValidConnection",K,ne.setState),da("nodeDragThreshold",Z,ne.setState),ca(e,W),ca(t,U),ca(m,q),ca(y,J),ca(N,Q),ca(v,ee),null},fa={display:"none"},ha={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},pa="react-flow__node-desc",ga="react-flow__edge-desc",ma=e=>e.ariaLiveMessage;function ya({rfId:t}){const n=zo(ma);return e.createElement("div",{id:`react-flow__aria-live-${t}`,"aria-live":"assertive","aria-atomic":"true",style:ha},n)}function va({rfId:t,disableKeyboardA11y:n}){return e.createElement(e.Fragment,null,e.createElement("div",{id:`${pa}-${t}`,style:fa},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),e.createElement("div",{id:`${ga}-${t}`,style:fa},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&e.createElement(ya,{rfId:t}))}var ba=(e=null,t={actInsideInputWithModifier:!0})=>{const[n,r]=o(!1),s=i(!1),l=i(new Set([])),[d,u]=a(()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.split("+")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return c(()=>{const n="undefined"!=typeof document?document:null,o=t?.target||n;if(null!==e){const e=e=>{s.current=e.ctrlKey||e.metaKey||e.shiftKey;if((!s.current||s.current&&!t.actInsideInputWithModifier)&&Go(e))return!1;const n=xa(e.code,u);l.current.add(e[n]),wa(d,l.current,!1)&&(e.preventDefault(),r(!0))},n=e=>{if((!s.current||s.current&&!t.actInsideInputWithModifier)&&Go(e))return!1;const n=xa(e.code,u);wa(d,l.current,!0)?(r(!1),l.current.clear()):l.current.delete(e[n]),"Meta"===e.key&&l.current.clear(),s.current=!1},a=()=>{l.current.clear(),r(!1)};return o?.addEventListener("keydown",e),o?.addEventListener("keyup",n),window.addEventListener("blur",a),()=>{o?.removeEventListener("keydown",e),o?.removeEventListener("keyup",n),window.removeEventListener("blur",a)}}},[e,r]),n};function wa(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function xa(e,t){return t.includes(e)?"code":"key"}function _a(e,t,n,o){const r=e.parentNode||e.parentId;if(!r)return n;const a=t.get(r),i=zr(a,o);return _a(a,t,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(a[Zo]?.z??0)>(n.z??0)?a[Zo]?.z??0:n.z??0},o)}function Ea(e,t,n){e.forEach(o=>{const r=o.parentNode||o.parentId;if(r&&!e.has(r))throw new Error(`Parent node ${r} not found`);if(r||n?.[o.id]){const{x:r,y:a,z:i}=_a(o,e,{...o.position,z:o[Zo]?.z??0},t);o.positionAbsolute={x:r,y:a},o[Zo].z=i,n?.[o.id]&&(o[Zo].isParent=!0)}})}function Sa(e,t,n,o){const r=new Map,a={},i=o?1e3:0;return e.forEach(e=>{const n=(Ko(e.zIndex)?e.zIndex:0)+(e.selected?i:0),o=t.get(e.id),s={...e,positionAbsolute:{x:e.position.x,y:e.position.y}},l=e.parentNode||e.parentId;l&&(a[l]=!0);const c=o?.type&&o?.type!==e.type;Object.defineProperty(s,Zo,{enumerable:!1,value:{handleBounds:c?void 0:o?.[Zo]?.handleBounds,z:n}}),r.set(e.id,s)}),Ea(r,n,a),r}function Na(e,t={}){const{getNodes:n,width:o,height:r,minZoom:a,maxZoom:i,d3Zoom:s,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:d,nodeOrigin:u}=e(),f=t.initial&&!c&&d;if(s&&l&&(f||!t.initial)){const e=n().filter(e=>{const n=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return t.nodes?.length?n&&t.nodes.some(t=>t.id===e.id):n}),c=e.every(e=>e.width&&e.height);if(e.length>0&&c){const n=Ir(e,u),{x:c,y:d,zoom:f}=Tr(n,o,r,t.minZoom??a,t.maxZoom??i,t.padding??.1),h=lo.translate(c,d).scale(f);return"number"==typeof t.duration&&t.duration>0?s.transform($r(l,t.duration),h):s.transform(l,h),!0}}return!1}function Ca(e,t){return e.forEach(e=>{const n=t.get(e.id);n&&t.set(n.id,{...n,[Zo]:n[Zo],selected:e.selected})}),new Map(t)}function ka(e,t){return t.map(t=>{const n=e.find(e=>e.id===t.id);return n&&(t.selected=n.selected),t})}function Ma({changedNodes:e,changedEdges:t,get:n,set:o}){const{nodeInternals:r,edges:a,onNodesChange:i,onEdgesChange:s,hasDefaultNodes:l,hasDefaultEdges:c}=n();e?.length&&(l&&o({nodeInternals:Ca(e,r)}),i?.(e)),t?.length&&(c&&o({edges:ka(t,a)}),s?.(t))}const Oa=()=>{},Aa={zoomIn:Oa,zoomOut:Oa,zoomTo:Oa,getZoom:()=>1,setViewport:Oa,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Oa,fitBounds:Oa,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},za=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function Ia(){const e=(()=>{const e=Io(),{d3Zoom:t,d3Selection:n}=zo(za,D),o=a(()=>n&&t?{zoomIn:e=>t.scaleBy($r(n,e?.duration),1.2),zoomOut:e=>t.scaleBy($r(n,e?.duration),1/1.2),zoomTo:(e,o)=>t.scaleTo($r(n,o?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(o,r)=>{const[a,i,s]=e.getState().transform,l=lo.translate(o.x??a,o.y??i).scale(o.zoom??s);t.transform($r(n,r?.duration),l)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},fitView:t=>Na(e.getState,t),setCenter:(o,r,a)=>{const{width:i,height:s,maxZoom:l}=e.getState(),c=void 0!==a?.zoom?a.zoom:l,d=i/2-o*c,u=s/2-r*c,f=lo.translate(d,u).scale(c);t.transform($r(n,a?.duration),f)},fitBounds:(o,r)=>{const{width:a,height:i,minZoom:s,maxZoom:l}=e.getState(),{x:c,y:d,zoom:u}=Tr(o,a,i,s,l,r?.padding??.1),f=lo.translate(c,d).scale(u);t.transform($r(n,r?.duration),f)},project:t=>{const{transform:n,snapToGrid:o,snapGrid:r}=e.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"),Or(t,n,o,r)},screenToFlowPosition:t=>{const{transform:n,snapToGrid:o,snapGrid:r,domNode:a}=e.getState();if(!a)return t;const{x:i,y:s}=a.getBoundingClientRect(),l={x:t.x-i,y:t.y-s};return Or(l,n,o,r)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:a}=o.getBoundingClientRect(),i=Ar(t,n);return{x:i.x+r,y:i.y+a}},viewportInitialized:!0}:Aa,[t,n]);return o})(),t=Io(),n=r(()=>t.getState().getNodes().map(e=>({...e})),[]),o=r(e=>t.getState().nodeInternals.get(e),[]),i=r(()=>{const{edges:e=[]}=t.getState();return e.map(e=>({...e}))},[]),s=r(e=>{const{edges:n=[]}=t.getState();return n.find(t=>t.id===e)},[]),l=r(e=>{const{getNodes:n,setNodes:o,hasDefaultNodes:r,onNodesChange:a}=t.getState(),i=n(),s="function"==typeof e?e(i):e;if(r)o(s);else if(a){a(0===s.length?i.map(e=>({type:"remove",id:e.id})):s.map(e=>({item:e,type:"reset"})))}},[]),c=r(e=>{const{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:a}=t.getState(),i="function"==typeof e?e(n):e;if(r)o(i);else if(a){a(0===i.length?n.map(e=>({type:"remove",id:e.id})):i.map(e=>({item:e,type:"reset"})))}},[]),d=r(e=>{const n=Array.isArray(e)?e:[e],{getNodes:o,setNodes:r,hasDefaultNodes:a,onNodesChange:i}=t.getState();if(a){r([...o(),...n])}else if(i){i(n.map(e=>({item:e,type:"add"})))}},[]),u=r(e=>{const n=Array.isArray(e)?e:[e],{edges:o=[],setEdges:r,hasDefaultEdges:a,onEdgesChange:i}=t.getState();if(a)r([...o,...n]);else if(i){i(n.map(e=>({item:e,type:"add"})))}},[]),f=r(()=>{const{getNodes:e,edges:n=[],transform:o}=t.getState(),[r,a,i]=o;return{nodes:e().map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:r,y:a,zoom:i}}},[]),h=r(({nodes:e,edges:n})=>{const{nodeInternals:o,getNodes:r,edges:a,hasDefaultNodes:i,hasDefaultEdges:s,onNodesDelete:l,onEdgesDelete:c,onNodesChange:d,onEdgesChange:u}=t.getState(),f=(e||[]).map(e=>e.id),h=(n||[]).map(e=>e.id),p=r().reduce((e,t)=>{const n=t.parentNode||t.parentId,o=!f.includes(t.id)&&n&&e.find(e=>e.id===n);return("boolean"!=typeof t.deletable||t.deletable)&&(f.includes(t.id)||o)&&e.push(t),e},[]),g=a.filter(e=>"boolean"!=typeof e.deletable||e.deletable),m=g.filter(e=>h.includes(e.id));if(p||m){const e=Dr(p,g),n=[...m,...e],r=n.reduce((e,t)=>(e.includes(t.id)||e.push(t.id),e),[]);if((s||i)&&(s&&t.setState({edges:a.filter(e=>!r.includes(e.id))}),i&&(p.forEach(e=>{o.delete(e.id)}),t.setState({nodeInternals:new Map(o)}))),r.length>0&&(c?.(n),u&&u(r.map(e=>({id:e,type:"remove"})))),p.length>0&&(l?.(p),d)){d(p.map(e=>({id:e.id,type:"remove"})))}}},[]),p=r(e=>{const n=Ko((o=e).width)&&Ko(o.height)&&Ko(o.x)&&Ko(o.y);var o;const r=n?null:t.getState().nodeInternals.get(e.id);if(!n&&!r)return[null,null,n];return[n?e:jo(r),r,n]},[]),g=r((e,n=!0,o)=>{const[r,a,i]=p(e);return r?(o||t.getState().getNodes()).filter(e=>{if(!(i||e.id!==a.id&&e.positionAbsolute))return!1;const t=jo(e),o=Fo(t,r);return n&&o>0||o>=r.width*r.height}):[]},[]),m=r((e,t,n=!0)=>{const[o]=p(e);if(!o)return!1;const r=Fo(o,t);return n&&r>0||r>=o.width*o.height},[]);return a(()=>({...e,getNodes:n,getNode:o,getEdges:i,getEdge:s,setNodes:l,setEdges:c,addNodes:d,addEdges:u,toObject:f,deleteElements:h,getIntersectingNodes:g,isNodeIntersecting:m}),[e,n,o,i,s,l,c,d,u,f,h,g,m])}const Pa={actInsideInputWithModifier:!1};const Da={position:"absolute",width:"100%",height:"100%",top:0,left:0},Ta=e=>({x:e.x,y:e.y,zoom:e.k}),$a=(e,t)=>e.target.closest(`.${t}`),Ra=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),Ba=e=>{const t=e.ctrlKey&&Qo()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},La=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),Ha=({onMove:t,onMoveStart:n,onMoveEnd:o,onPaneContextMenu:r,zoomOnScroll:a=!0,zoomOnPinch:s=!0,panOnScroll:l=!1,panOnScrollSpeed:d=.5,panOnScrollMode:u=ar.Free,zoomOnDoubleClick:f=!0,elementsSelectable:h,panOnDrag:p=!0,defaultViewport:g,translateExtent:m,minZoom:y,maxZoom:v,zoomActivationKeyCode:b,preventScrolling:w=!0,children:x,noWheelClassName:_,noPanClassName:E})=>{const S=i(),N=Io(),C=i(!1),k=i(!1),M=i(null),O=i({x:0,y:0,zoom:0}),{d3Zoom:A,d3Selection:z,d3ZoomHandler:I,userSelectionActive:P}=zo(La,D),T=ba(b),R=i(0),B=i(!1),L=i();return function(e){const t=Io();c(()=>{let n;const o=()=>{if(!e.current)return;const n=Ro(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",_o()),t.setState({width:n.width||500,height:n.height||500})};return o(),window.addEventListener("resize",o),e.current&&(n=new ResizeObserver(()=>o()),n.observe(e.current)),()=>{window.removeEventListener("resize",o),n&&e.current&&n.unobserve(e.current)}},[])}(M),c(()=>{if(M.current){const e=M.current.getBoundingClientRect(),t=function(){var e,t,n,o=fo,r=ho,a=yo,i=go,s=mo,l=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,u=un,f=$("start","zoom","end"),h=0,p=10;function g(e){e.property("__zoom",po).on("wheel.zoom",_,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",S).filter(s).on("touchstart.zoom",N).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 so(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 so(e.k,o,r)}function v(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function b(e,t,n,o){e.on("start.zoom",function(){w(this,arguments).event(o).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).event(o).end()}).tween("zoom",function(){var e=this,a=arguments,i=w(e,a).event(o),s=r.apply(e,a),l=null==n?v(s):"function"==typeof n?n.apply(e,a):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f="function"==typeof t?t.apply(e,a):t,h=u(d.invert(l).concat(c/d.k),f.invert(l).concat(c/f.k));return function(e){if(1===e)e=f;else{var t=h(e),n=c/t[2];e=new so(n,l[0]-t[0]*n,l[1]-t[1]*n)}i.zoom(null,e)}})}function w(e,t,n){return!n&&e.__zooming||new x(e,t)}function x(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=r.apply(e,t),this.taps=0}function _(e,...t){if(o.apply(this,arguments)){var n=w(this,t).event(e),r=this.__zoom,s=Math.max(l[0],Math.min(l[1],r.k*Math.pow(2,i.apply(this,arguments)))),d=Qe(e);if(n.wheel)n.mouse[0][0]===d[0]&&n.mouse[0][1]===d[1]||(n.mouse[1]=r.invert(n.mouse[0]=d)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[d,r.invert(d)],Dn(this),n.start()}uo(e),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",a(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,i=w(this,t,!0).event(e),s=Je(e.view).on("mousemove.zoom",function(e){if(uo(e),!i.moved){var t=e.clientX-d,n=e.clientY-u;i.moved=t*t+n*n>h}i.event(e).zoom("mouse",a(y(i.that.__zoom,i.mouse[0]=Qe(e,r),i.mouse[1]),i.extent,c))},!0).on("mouseup.zoom",function(e){s.on("mousemove.zoom mouseup.zoom",null),at(e.view,i.moved),uo(e),i.event(e).end()},!0),l=Qe(e,r),d=e.clientX,u=e.clientY;rt(e.view),co(e),i.mouse=[l,this.__zoom.invert(l)],Dn(this),i.start()}}function S(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,i=Qe(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(i),l=n.k*(e.shiftKey?.5:2),u=a(y(m(n,l),i,s),r.apply(this,t),c);uo(e),d>0?Je(this).transition().duration(d).call(b,u,i,e):Je(this).call(g.transform,u,i,e)}}function N(n,...r){if(o.apply(this,arguments)){var a,i,s,l,c=n.touches,d=c.length,u=w(this,r,n.changedTouches.length===d).event(n);for(co(n),i=0;i<d;++i)l=[l=Qe(s=c[i],this),this.__zoom.invert(l),s.identifier],u.touch0?u.touch1||u.touch0[2]===l[2]||(u.touch1=l,u.taps=0):(u.touch0=l,a=!0,u.taps=1+!!e);e&&(e=clearTimeout(e)),a&&(u.taps<2&&(t=l[0],e=setTimeout(function(){e=null},500)),Dn(this),u.start())}}function C(e,...t){if(this.__zooming){var n,o,r,i,s=w(this,t).event(e),l=e.changedTouches,d=l.length;for(uo(e),n=0;n<d;++n)r=Qe(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 u=s.touch0[0],f=s.touch0[1],h=s.touch1[0],p=s.touch1[1],g=(g=h[0]-u[0])*g+(g=h[1]-u[1])*g,v=(v=p[0]-f[0])*v+(v=p[1]-f[1])*v;o=m(o,Math.sqrt(g/v)),r=[(u[0]+h[0])/2,(u[1]+h[1])/2],i=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],i=s.touch0[1]}s.zoom("touch",a(y(o,r,i),s.extent,c))}}function k(e,...o){if(this.__zooming){var r,a,i=w(this,o).event(e),s=e.changedTouches,l=s.length;for(co(e),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),r=0;r<l;++r)a=s[r],i.touch0&&i.touch0[2]===a.identifier?delete i.touch0:i.touch1&&i.touch1[2]===a.identifier&&delete i.touch1;if(i.touch1&&!i.touch0&&(i.touch0=i.touch1,delete i.touch1),i.touch0)i.touch0[1]=this.__zoom.invert(i.touch0[0]);else if(i.end(),2===i.taps&&(a=Qe(a,this),Math.hypot(t[0]-a[0],t[1]-a[1])<p)){var c=Je(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",po),e!==r?b(e,t,n,o):r.interrupt().each(function(){w(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,i=null==n?v(e):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(i),l="function"==typeof t?t.apply(this,arguments):t;return a(y(m(o,l),i,s),e,c)},n,o)},g.translateBy=function(e,t,n,o){g.transform(e,function(){return a(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,i){g.transform(e,function(){var e=r.apply(this,arguments),i=this.__zoom,s=null==o?v(e):"function"==typeof o?o.apply(this,arguments):o;return a(lo.translate(s[0],s[1]).scale(i.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,c)},o,i)},x.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=Je(this.that).datum();f.call(e,this.that,new io(e,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:f}),t)}},g.wheelDelta=function(e){return arguments.length?(i="function"==typeof e?e:ao(+e),g):i},g.filter=function(e){return arguments.length?(o="function"==typeof e?e:ao(!!e),g):o},g.touchable=function(e){return arguments.length?(s="function"==typeof e?e:ao(!!e),g):s},g.extent=function(e){return arguments.length?(r="function"==typeof e?e:ao([[+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?(a=e,g):a},g.duration=function(e){return arguments.length?(d=+e,g):d},g.interpolate=function(e){return arguments.length?(u=e,g):u},g.on=function(){var e=f.on.apply(f,arguments);return e===f?g:e},g.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,g):Math.sqrt(h)},g.tapDistance=function(e){return arguments.length?(p=+e,g):p},g}().scaleExtent([y,v]).translateExtent(m),n=Je(M.current).call(t),o=lo.translate(g.x,g.y).scale(Bo(g.zoom,y,v)),r=[[0,0],[e.width,e.height]],a=t.constrain()(o,r,m);t.transform(n,a),t.wheelDelta(Ba),N.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[a.x,a.y,a.k],domNode:M.current.closest(".react-flow")})}},[]),c(()=>{z&&A&&(!l||T||P?void 0!==I&&z.on("wheel.zoom",function(e,t){if(!w&&"wheel"===e.type&&!e.ctrlKey||$a(e,_))return null;e.preventDefault(),I.call(this,e,t)},{passive:!1}):z.on("wheel.zoom",e=>{if($a(e,_))return!1;e.preventDefault(),e.stopImmediatePropagation();const r=z.property("__zoom").k||1;if(e.ctrlKey&&s){const t=Qe(e),n=Ba(e),o=r*Math.pow(2,n);return void A.scaleTo(z,o,t,e)}const a=1===e.deltaMode?20:1;let i=u===ar.Vertical?0:e.deltaX*a,l=u===ar.Horizontal?0:e.deltaY*a;!Qo()&&e.shiftKey&&u!==ar.Vertical&&(i=e.deltaY*a,l=0),A.translateBy(z,-i/r*d,-l/r*d,{internal:!0});const c=Ta(z.property("__zoom")),{onViewportChangeStart:f,onViewportChange:h,onViewportChangeEnd:p}=N.getState();clearTimeout(L.current),B.current||(B.current=!0,n?.(e,c),f?.(c)),B.current&&(t?.(e,c),h?.(c),L.current=setTimeout(()=>{o?.(e,c),p?.(c),B.current=!1},150))},{passive:!1}))},[P,l,u,z,A,I,T,s,w,_,n,t,o]),c(()=>{A&&A.on("start",e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;R.current=e.sourceEvent?.button;const{onViewportChangeStart:t}=N.getState(),o=Ta(e.transform);C.current=!0,O.current=o,"mousedown"===e.sourceEvent?.type&&N.setState({paneDragging:!0}),t?.(o),n?.(e.sourceEvent,o)})},[A,n]),c(()=>{A&&(P&&!C.current?A.on("zoom",null):P||A.on("zoom",e=>{const{onViewportChange:n}=N.getState();if(N.setState({transform:[e.transform.x,e.transform.y,e.transform.k]}),k.current=!(!r||!Ra(p,R.current??0)),(t||n)&&!e.sourceEvent?.internal){const o=Ta(e.transform);n?.(o),t?.(e.sourceEvent,o)}}))},[P,A,t,p,r]),c(()=>{A&&A.on("end",e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;const{onViewportChangeEnd:t}=N.getState();if(C.current=!1,N.setState({paneDragging:!1}),r&&Ra(p,R.current??0)&&!k.current&&r(e.sourceEvent),k.current=!1,(o||t)&&(n=O.current,a=e.transform,n.x!==a.x||n.y!==a.y||n.zoom!==a.k)){const n=Ta(e.transform);O.current=n,clearTimeout(S.current),S.current=setTimeout(()=>{t?.(n),o?.(e.sourceEvent,n)},l?150:0)}var n,a})},[A,l,p,o,r]),c(()=>{A&&A.filter(e=>{const t=T||a,n=s&&e.ctrlKey;if((!0===p||Array.isArray(p)&&p.includes(1))&&1===e.button&&"mousedown"===e.type&&($a(e,"react-flow__node")||$a(e,"react-flow__edge")))return!0;if(!(p||t||l||f||s))return!1;if(P)return!1;if(!f&&"dblclick"===e.type)return!1;if($a(e,_)&&"wheel"===e.type)return!1;if($a(e,E)&&("wheel"!==e.type||l&&"wheel"===e.type&&!T))return!1;if(!s&&e.ctrlKey&&"wheel"===e.type)return!1;if(!t&&!l&&!n&&"wheel"===e.type)return!1;if(!p&&("mousedown"===e.type||"touchstart"===e.type))return!1;if(Array.isArray(p)&&!p.includes(e.button)&&"mousedown"===e.type)return!1;const o=Array.isArray(p)&&p.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&o})},[P,A,a,s,l,f,p,h,T]),e.createElement("div",{className:"react-flow__renderer",ref:M,style:Da},x)},Va=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Ya(){const{userSelectionActive:t,userSelectionRect:n}=zo(Va,D);return t&&n?e.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function Xa(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 ja(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&&Xa(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&&Xa(t,r);break;case"remove":return t}return t.push(r),t},n)}function Fa(e,t){return ja(e,t)}const Ka=(e,t)=>({id:e,type:"select",selected:t});function Za(e,t){return e.reduce((e,n)=>{const o=t.includes(n.id);return!n.selected&&o?(n.selected=!0,e.push(Ka(n.id,!0))):n.selected&&!o&&(n.selected=!1,e.push(Ka(n.id,!1))),e},[])}const Wa=(e,t)=>n=>{n.target===t.current&&e?.(n)},Ua=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Ga=n(({isSelecting:t,selectionMode:n=ir.Full,panOnDrag:o,onSelectionStart:r,onSelectionEnd:a,onPaneClick:s,onPaneContextMenu:l,onPaneScroll:c,onPaneMouseEnter:d,onPaneMouseMove:f,onPaneMouseLeave:h,children:p})=>{const g=i(null),m=Io(),y=i(0),v=i(0),b=i(),{userSelectionActive:w,elementsSelectable:x,dragging:_}=zo(Ua,D),E=()=>{m.setState({userSelectionActive:!1,userSelectionRect:null}),y.current=0,v.current=0},S=e=>{s?.(e),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},N=c?e=>c(e):void 0,C=x&&(t||w);return e.createElement("div",{className:u(["react-flow__pane",{dragging:_,selection:t}]),onClick:C?void 0:Wa(S,g),onContextMenu:Wa(e=>{Array.isArray(o)&&o?.includes(2)?e.preventDefault():l?.(e)},g),onWheel:Wa(N,g),onMouseEnter:C?void 0:d,onMouseDown:C?e=>{const{resetSelectedElements:n,domNode:o}=m.getState();if(b.current=o?.getBoundingClientRect(),!x||!t||0!==e.button||e.target!==g.current||!b.current)return;const{x:a,y:i}=Jo(e,b.current);n(),m.setState({userSelectionRect:{width:0,height:0,startX:a,startY:i,x:a,y:i}}),r?.(e)}:void 0,onMouseMove:C?e=>{const{userSelectionRect:o,nodeInternals:r,edges:a,transform:i,onNodesChange:s,onEdgesChange:l,nodeOrigin:c,getNodes:d}=m.getState();if(!t||!b.current||!o)return;m.setState({userSelectionActive:!0,nodesSelectionActive:!1});const u=Jo(e,b.current),f=o.startX??0,h=o.startY??0,p={...o,x:u.x<f?u.x:f,y:u.y<h?u.y:h,width:Math.abs(u.x-f),height:Math.abs(u.y-h)},g=d(),w=Pr(r,p,i,n===ir.Partial,!0,c),x=Dr(w,a).map(e=>e.id),_=w.map(e=>e.id);if(y.current!==_.length){y.current=_.length;const e=Za(g,_);e.length&&s?.(e)}if(v.current!==x.length){v.current=x.length;const e=Za(a,x);e.length&&l?.(e)}m.setState({userSelectionRect:p})}:f,onMouseUp:C?e=>{if(0!==e.button)return;const{userSelectionRect:t}=m.getState();!w&&t&&e.target===g.current&&S?.(e),m.setState({nodesSelectionActive:y.current>0}),E(),a?.(e)}:void 0,onMouseLeave:C?e=>{w&&(m.setState({nodesSelectionActive:y.current>0}),a?.(e)),E()}:h,ref:g,style:Da},p,e.createElement(Ya,null))});function qa(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const o=t.get(n);return!!o&&(!!o.selected||qa(o,t))}function Ja(e,t,n){let o=e;do{if(o?.matches(t))return!0;if(o===n.current)return!1;o=o.parentElement}while(o);return!1}function Qa(e,t,n,o){return Array.from(e.values()).filter(n=>(n.selected||n.id===o)&&(!n.parentNode||n.parentId||!qa(n,e))&&(n.draggable||t&&void 0===n.draggable)).map(e=>({id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:n.x-(e.positionAbsolute?.x??0),y:n.y-(e.positionAbsolute?.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 ei(e,t,n,o,r=[0,0],a){const i=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=i;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:a}=zr(t,r).positionAbsolute;s=[[e.extent[0][0]+o,e.extent[0][1]+a],[e.extent[1][0]+o,e.extent[1][1]+a]]}}else if(l&&e.width&&e.height){const t=n.get(l),{x:o,y:a}=zr(t,r).positionAbsolute;s=t&&Ko(o)&&Ko(a)&&Ko(t.width)&&Ko(t.height)?[[o+e.width*r[0],a+e.height*r[1]],[o+t.width-e.width+e.width*r[0],a+t.height-e.height+e.height*r[1]]]:s}else a?.("005",Eo()),s=i;let c={x:0,y:0};if(l){const e=n.get(l);c=zr(e,r).positionAbsolute}const d=s&&"parent"!==s?Lo(t,s):t;return{position:{x:d.x-c.x,y:d.y-c.y},positionAbsolute:d}}function ti({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]}Ga.displayName="Pane";const ni=(e,t,n,o)=>{const r=t.querySelectorAll(e);if(!r||!r.length)return null;const a=Array.from(r),i=t.getBoundingClientRect(),s=i.width*o[0],l=i.height*o[1];return a.map(e=>{const t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-i.left-s)/n,y:(t.top-i.top-l)/n,...Ro(e)}})};function oi(e,t,n){return void 0===n?n:o=>{const r=t().nodeInternals.get(e);r&&n(o,{...r})}}function ri({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:a,multiSelectionActive:i,nodeInternals:s,onError:l}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(a({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])):l?.("012",Oo(e))}function ai(e){return(t,n,o)=>e?.(t,o)}function ii({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:a,nodeId:s,isSelectable:l,selectNodesOnDrag:d}){const u=Io(),[f,h]=o(!1),p=i([]),g=i({x:null,y:null}),m=i(0),y=i(null),v=i({x:0,y:0}),b=i(null),w=i(!1),x=i(!1),_=i(!1),E=function(){const e=Io(),t=r(({sourceEvent:t})=>{const{transform:n,snapGrid:o,snapToGrid:r}=e.getState(),a=t.touches?t.touches[0].clientX:t.clientX,i=t.touches?t.touches[0].clientY:t.clientY,s={x:(a-n[0])/n[2],y:(i-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 t}();return c(()=>{if(e?.current){const o=Je(e.current),r=({x:e,y:t})=>{const{nodeInternals:n,onNodeDrag:o,onSelectionDrag:r,updateNodePositions:a,nodeExtent:i,snapGrid:l,snapToGrid:c,nodeOrigin:d,onError:f}=u.getState();g.current={x:e,y:t};let m=!1,y={x:0,y:0,x2:0,y2:0};if(p.current.length>1&&i){const e=Ir(p.current,d);y=Xo(e)}if(p.current=p.current.map(o=>{const r={x:e-o.distance.x,y:t-o.distance.y};c&&(r.x=l[0]*Math.round(r.x/l[0]),r.y=l[1]*Math.round(r.y/l[1]));const a=[[i[0][0],i[0][1]],[i[1][0],i[1][1]]];p.current.length>1&&i&&!o.extent&&(a[0][0]=o.positionAbsolute.x-y.x+i[0][0],a[1][0]=o.positionAbsolute.x+(o.width??0)-y.x2+i[1][0],a[0][1]=o.positionAbsolute.y-y.y+i[0][1],a[1][1]=o.positionAbsolute.y+(o.height??0)-y.y2+i[1][1]);const s=ei(o,r,n,a,d,f);return m=m||o.position.x!==s.position.x||o.position.y!==s.position.y,o.position=s.position,o.positionAbsolute=s.positionAbsolute,o}),!m)return;a(p.current,!0,!0),h(!0);const v=s?o:ai(r);if(v&&b.current){const[e,t]=ti({nodeId:s,dragItems:p.current,nodeInternals:n});v(b.current,e,t)}},i=()=>{if(!y.current)return;const[e,t]=Vo(v.current,y.current);if(0!==e||0!==t){const{transform:n,panBy:o}=u.getState();g.current.x=(g.current.x??0)-e/n[2],g.current.y=(g.current.y??0)-t/n[2],o({x:e,y:t})&&r(g.current)}m.current=requestAnimationFrame(i)},c=t=>{const{nodeInternals:n,multiSelectionActive:o,nodesDraggable:r,unselectNodesAndEdges:a,onNodeDragStart:i,onSelectionDragStart:c}=u.getState();x.current=!0;const f=s?i:ai(c);d&&l||o||!s||n.get(s)?.selected||a(),s&&l&&d&&ri({id:s,store:u,nodeRef:e});const h=E(t);if(g.current=h,p.current=Qa(n,r,h,s),f&&p.current){const[e,o]=ti({nodeId:s,dragItems:p.current,nodeInternals:n});f(t.sourceEvent,e,o)}};if(!t){const t=function(){var e,t,n,o,r=lt,a=ct,i=dt,s=ut,l={},c=$("start","drag","end"),d=0,u=0;function f(e){e.on("mousedown.drag",h).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,et).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(i,s){if(!o&&r.call(this,i,s)){var l=b(this,a.call(this,i,s),i,s,"mouse");l&&(Je(i.view).on("mousemove.drag",p,tt).on("mouseup.drag",g,tt),rt(i.view),nt(i),n=!1,e=i.clientX,t=i.clientY,l("start",i))}}function p(o){if(ot(o),!n){var r=o.clientX-e,a=o.clientY-t;n=r*r+a*a>u}l.mouse("drag",o)}function g(e){Je(e.view).on("mousemove.drag mouseup.drag",null),at(e.view,n),ot(e),l.mouse("end",e)}function m(e,t){if(r.call(this,e,t)){var n,o,i=e.changedTouches,s=a.call(this,e,t),l=i.length;for(n=0;n<l;++n)(o=b(this,s,e,t,i[n].identifier,i[n]))&&(nt(e),o("start",e,i[n]))}}function y(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&(ot(e),n("drag",e,o[t]))}function v(e){var t,n,r=e.changedTouches,a=r.length;for(o&&clearTimeout(o),o=setTimeout(function(){o=null},500),t=0;t<a;++t)(n=l[r[t].identifier])&&(nt(e),n("end",e,r[t]))}function b(e,t,n,o,r,a){var s,u,h,p=c.copy(),g=Qe(a||n,t);if(null!=(h=i.call(e,new st("beforestart",{sourceEvent:n,target:f,identifier:r,active:d,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),o)))return s=h.x-g[0]||0,u=h.y-g[1]||0,function n(a,i,c){var m,y=g;switch(a){case"start":l[r]=n,m=d++;break;case"end":delete l[r],--d;case"drag":g=Qe(c||i,t),m=d}p.call(a,e,new st(a,{sourceEvent:i,subject:h,target:f,identifier:r,active:m,x:g[0]+s,y:g[1]+u,dx:g[0]-y[0],dy:g[1]-y[1],dispatch:p}),o)}}return f.filter=function(e){return arguments.length?(r="function"==typeof e?e:it(!!e),f):r},f.container=function(e){return arguments.length?(a="function"==typeof e?e:it(e),f):a},f.subject=function(e){return arguments.length?(i="function"==typeof e?e:it(e),f):i},f.touchable=function(e){return arguments.length?(s="function"==typeof e?e:it(!!e),f):s},f.on=function(){var e=c.on.apply(c,arguments);return e===c?f:e},f.clickDistance=function(e){return arguments.length?(u=(e=+e)*e,f):Math.sqrt(u)},f}().on("start",e=>{const{domNode:t,nodeDragThreshold:n}=u.getState();0===n&&c(e),_.current=!1;const o=E(e);g.current=o,y.current=t?.getBoundingClientRect()||null,v.current=Jo(e.sourceEvent,y.current)}).on("drag",e=>{const t=E(e),{autoPanOnNodeDrag:n,nodeDragThreshold:o}=u.getState();if("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1&&(_.current=!0),!_.current){if(!w.current&&x.current&&n&&(w.current=!0,i()),!x.current){const n=t.xSnapped-(g?.current?.x??0),r=t.ySnapped-(g?.current?.y??0);Math.sqrt(n*n+r*r)>o&&c(e)}(g.current.x!==t.xSnapped||g.current.y!==t.ySnapped)&&p.current&&x.current&&(b.current=e.sourceEvent,v.current=Jo(e.sourceEvent,y.current),r(t))}}).on("end",e=>{if(x.current&&!_.current&&(h(!1),w.current=!1,x.current=!1,cancelAnimationFrame(m.current),p.current)){const{updateNodePositions:t,nodeInternals:n,onNodeDragStop:o,onSelectionDragStop:r}=u.getState(),a=s?o:ai(r);if(t(p.current,!1,!1),a){const[t,o]=ti({nodeId:s,dragItems:p.current,nodeInternals:n});a(e.sourceEvent,t,o)}}}).filter(t=>{const o=t.target;return!t.button&&(!n||!Ja(o,`.${n}`,e))&&(!a||Ja(o,a,e))});return o.call(t),()=>{o.on(".drag",null)}}o.on(".drag",null)}},[e,t,n,a,l,u,s,d,E]),f}function si(){const e=Io();return r(t=>{const{nodeInternals:n,nodeExtent:o,updateNodePositions:r,getNodes:a,snapToGrid:i,snapGrid:s,onError:l,nodesDraggable:c}=e.getState(),d=a().filter(e=>e.selected&&(e.draggable||c&&void 0===e.draggable)),u=i?s[0]:5,f=i?s[1]:5,h=t.isShiftPressed?4:1,p=t.x*u*h,g=t.y*f*h;r(d.map(e=>{if(e.positionAbsolute){const t={x:e.positionAbsolute.x+p,y:e.positionAbsolute.y+g};i&&(t.x=s[0]*Math.round(t.x/s[0]),t.y=s[1]*Math.round(t.y/s[1]));const{positionAbsolute:r,position:a}=ei(e,t,n,o,void 0,l);e.position=a,e.positionAbsolute=r}return e}),!0,!1)},[])}const li={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var ci=t=>{const o=({id:n,type:o,data:r,xPos:a,yPos:s,xPosOrigin:l,yPosOrigin:d,selected:f,onClick:h,onMouseEnter:p,onMouseMove:g,onMouseLeave:m,onContextMenu:y,onDoubleClick:v,style:b,className:w,isDraggable:x,isSelectable:_,isConnectable:E,isFocusable:S,selectNodesOnDrag:N,sourcePosition:C,targetPosition:k,hidden:M,resizeObserver:O,dragHandle:A,zIndex:z,isParent:I,noDragClassName:P,noPanClassName:D,initialized:T,disableKeyboardA11y:$,ariaLabel:R,rfId:B,hasHandleBounds:L})=>{const H=Io(),V=i(null),Y=i(null),X=i(C),j=i(k),F=i(o),K=_||x||h||p||g||m,Z=si(),W=oi(n,H.getState,p),U=oi(n,H.getState,g),G=oi(n,H.getState,m),q=oi(n,H.getState,y),J=oi(n,H.getState,v);c(()=>()=>{Y.current&&(O?.unobserve(Y.current),Y.current=null)},[]),c(()=>{if(V.current&&!M){const e=V.current;T&&L&&Y.current===e||(Y.current&&O?.unobserve(Y.current),O?.observe(e),Y.current=e)}},[M,T,L]),c(()=>{const e=F.current!==o,t=X.current!==C,r=j.current!==k;V.current&&(e||t||r)&&(e&&(F.current=o),t&&(X.current=C),r&&(j.current=k),H.getState().updateNodeDimensions([{id:n,nodeElement:V.current,forceUpdate:!0}]))},[n,o,C,k]);const Q=ii({nodeRef:V,disabled:M||!x,noDragClassName:P,handleSelector:A,nodeId:n,isSelectable:_,selectNodesOnDrag:N});return M?null:e.createElement("div",{className:u(["react-flow__node",`react-flow__node-${o}`,{[D]:x},w,{selected:f,selectable:_,parent:I,dragging:Q}]),ref:V,style:{zIndex:z,transform:`translate(${l}px,${d}px)`,pointerEvents:K?"all":"none",visibility:T?"visible":"hidden",...b},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:W,onMouseMove:U,onMouseLeave:G,onContextMenu:q,onClick:e=>{const{nodeDragThreshold:t}=H.getState();if(_&&(!N||!x||t>0)&&ri({id:n,store:H,nodeRef:V}),h){const t=H.getState().nodeInternals.get(n);t&&h(e,{...t})}},onDoubleClick:J,onKeyDown:S?e=>{if(!Go(e)&&!$)if(Wo.includes(e.key)&&_){const t="Escape"===e.key;ri({id:n,store:H,unselect:t,nodeRef:V})}else x&&f&&Object.prototype.hasOwnProperty.call(li,e.key)&&(H.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~a}, y: ${~~s}`}),Z({x:li[e.key].x,y:li[e.key].y,isShiftPressed:e.shiftKey}))}:void 0,tabIndex:S?0:void 0,role:S?"button":void 0,"aria-describedby":$?void 0:`${pa}-${B}`,"aria-label":R},e.createElement(Nr,{value:n},e.createElement(t,{id:n,data:r,type:o,xPos:a,yPos:s,selected:f,isConnectable:E,sourcePosition:C,targetPosition:k,dragging:Q,dragHandle:A,zIndex:z})))};return o.displayName="NodeWrapper",n(o)};const di=e=>{const t=e.getNodes().filter(e=>e.selected);return{...Ir(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};var ui=n(function({onSelectionContextMenu:t,noPanClassName:n,disableKeyboardA11y:o}){const r=Io(),{width:a,height:s,x:l,y:d,transformString:f,userSelectionActive:h}=zo(di,D),p=si(),g=i(null);if(c(()=>{o||g.current?.focus({preventScroll:!0})},[o]),ii({nodeRef:g}),h||!a||!s)return null;const m=t?e=>{const n=r.getState().getNodes().filter(e=>e.selected);t(e,n)}:void 0;return e.createElement("div",{className:u(["react-flow__nodesselection","react-flow__container",n]),style:{transform:f}},e.createElement("div",{ref:g,className:"react-flow__nodesselection-rect",onContextMenu:m,tabIndex:o?void 0:-1,onKeyDown:o?void 0:e=>{Object.prototype.hasOwnProperty.call(li,e.key)&&p({x:li[e.key].x,y:li[e.key].y,isShiftPressed:e.shiftKey})},style:{width:a,height:s,top:d,left:l}}))});const fi=e=>e.nodesSelectionActive,hi=({children:t,onPaneClick:n,onPaneMouseEnter:o,onPaneMouseMove:r,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:s,deleteKeyCode:l,onMove:d,onMoveStart:u,onMoveEnd:f,selectionKeyCode:h,selectionOnDrag:p,selectionMode:g,onSelectionStart:m,onSelectionEnd:y,multiSelectionKeyCode:v,panActivationKeyCode:b,zoomActivationKeyCode:w,elementsSelectable:x,zoomOnScroll:_,zoomOnPinch:E,panOnScroll:S,panOnScrollSpeed:N,panOnScrollMode:C,zoomOnDoubleClick:k,panOnDrag:M,defaultViewport:O,translateExtent:A,minZoom:z,maxZoom:I,preventScrolling:P,onSelectionContextMenu:D,noWheelClassName:T,noPanClassName:$,disableKeyboardA11y:R})=>{const B=zo(fi),L=ba(h),H=ba(b),V=H||M,Y=H||S,X=L||p&&!0!==V;return(({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=Io(),{deleteElements:o}=Ia(),r=ba(e,Pa),a=ba(t);c(()=>{if(r){const{edges:e,getNodes:t}=n.getState(),r=t().filter(e=>e.selected),a=e.filter(e=>e.selected);o({nodes:r,edges:a}),n.setState({nodesSelectionActive:!1})}},[r]),c(()=>{n.setState({multiSelectionActive:a})},[a])})({deleteKeyCode:l,multiSelectionKeyCode:v}),e.createElement(Ha,{onMove:d,onMoveStart:u,onMoveEnd:f,onPaneContextMenu:i,elementsSelectable:x,zoomOnScroll:_,zoomOnPinch:E,panOnScroll:Y,panOnScrollSpeed:N,panOnScrollMode:C,zoomOnDoubleClick:k,panOnDrag:!L&&V,defaultViewport:O,translateExtent:A,minZoom:z,maxZoom:I,zoomActivationKeyCode:w,preventScrolling:P,noWheelClassName:T,noPanClassName:$},e.createElement(Ga,{onSelectionStart:m,onSelectionEnd:y,onPaneClick:n,onPaneMouseEnter:o,onPaneMouseMove:r,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:V,isSelecting:!!X,selectionMode:g},t,B&&e.createElement(ui,{onSelectionContextMenu:D,noPanClassName:$,disableKeyboardA11y:R})))};hi.displayName="FlowRenderer";var pi=n(hi);function gi(e){return{...{input:ci(e.input||Jr),default:ci(e.default||Gr),output:ci(e.output||ea),group:ci(e.group||ta)},...Object.keys(e).filter(e=>!["input","default","output","group"].includes(e)).reduce((t,n)=>(t[n]=ci(e[n]||Gr),t),{})}}const mi=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),yi=t=>{const{nodesDraggable:n,nodesConnectable:o,nodesFocusable:s,elementsSelectable:l,updateNodeDimensions:d,onError:u}=zo(mi,D),f=(h=t.onlyRenderVisibleElements,zo(r(e=>h?Pr(e.nodeInternals,{x:0,y:0,width:e.width,height:e.height},e.transform,!0):e.getNodes(),[h])));var h;const p=i(),g=a(()=>{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}));d(t)});return p.current=e,e},[]);return c(()=>()=>{p?.current?.disconnect()},[]),e.createElement("div",{className:"react-flow__nodes",style:Da},f.map(r=>{let a=r.type||"default";t.nodeTypes[a]||(u?.("003",xo(a)),a="default");const i=t.nodeTypes[a]||t.nodeTypes.default,c=!!(r.draggable||n&&void 0===r.draggable),d=!!(r.selectable||l&&void 0===r.selectable),f=!!(r.connectable||o&&void 0===r.connectable),h=!!(r.focusable||s&&void 0===r.focusable),p=t.nodeExtent?Lo(r.positionAbsolute,t.nodeExtent):r.positionAbsolute,m=p?.x??0,y=p?.y??0,v=(({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:m,y:y,width:r.width??0,height:r.height??0,origin:t.nodeOrigin});return e.createElement(i,{key:r.id,id:r.id,className:r.className,style:r.style,type:a,data:r.data,sourcePosition:r.sourcePosition||cr.Bottom,targetPosition:r.targetPosition||cr.Top,hidden:r.hidden,xPos:m,yPos:y,xPosOrigin:v.x,yPosOrigin:v.y,selectNodesOnDrag:t.selectNodesOnDrag,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,selected:!!r.selected,isDraggable:c,isSelectable:d,isConnectable:f,isFocusable:h,resizeObserver:g,dragHandle:r.dragHandle,zIndex:r[Zo]?.z??0,isParent:!!r[Zo]?.isParent,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,initialized:!!r.width&&!!r.height,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,ariaLabel:r.ariaLabel,hasHandleBounds:!!r[Zo]?.handleBounds})}))};yi.displayName="NodeRenderer";var vi=n(yi);const bi=(e,t,n)=>n===cr.Left?e-t:n===cr.Right?e+t:e,wi=(e,t,n)=>n===cr.Top?e-t:n===cr.Bottom?e+t:e,xi="react-flow__edgeupdater",_i=({position:t,centerX:n,centerY:o,radius:r=10,onMouseDown:a,onMouseEnter:i,onMouseOut:s,type:l})=>e.createElement("circle",{onMouseDown:a,onMouseEnter:i,onMouseOut:s,className:u([xi,`${xi}-${l}`]),cx:bi(n,r,t),cy:wi(o,r,t),r:r,stroke:"transparent",fill:"transparent"}),Ei=()=>!0;var Si=t=>{const r=({id:n,className:r,type:s,data:l,onClick:c,onEdgeDoubleClick:d,selected:f,animated:h,label:p,labelStyle:g,labelShowBg:m,labelBgStyle:y,labelBgPadding:v,labelBgBorderRadius:b,style:w,source:x,target:_,sourceX:E,sourceY:S,targetX:N,targetY:C,sourcePosition:k,targetPosition:M,elementsSelectable:O,hidden:A,sourceHandleId:z,targetHandleId:I,onContextMenu:P,onMouseEnter:D,onMouseMove:T,onMouseLeave:$,reconnectRadius:R,onReconnect:B,onReconnectStart:L,onReconnectEnd:H,markerEnd:V,markerStart:Y,rfId:X,ariaLabel:j,isFocusable:F,isReconnectable:K,pathOptions:Z,interactionWidth:W,disableKeyboardA11y:U})=>{const G=i(null),[q,J]=o(!1),[Q,ee]=o(!1),te=Io(),ne=a(()=>`url('#${kr(Y,X)}')`,[Y,X]),oe=a(()=>`url('#${kr(V,X)}')`,[V,X]);if(A)return null;const re=tr(n,te.getState,d),ae=tr(n,te.getState,P),ie=tr(n,te.getState,D),se=tr(n,te.getState,T),le=tr(n,te.getState,$),ce=(e,t)=>{if(0!==e.button)return;const{edges:o,isValidConnection:r}=te.getState(),a=t?_:x,i=(t?I:z)||null,s=t?"target":"source",l=r||Ei,c=t,d=o.find(e=>e.id===n);ee(!0),L?.(e,d,s);jr({event:e,handleId:i,nodeId:a,onConnect:e=>B?.(d,e),isTarget:c,getState:te.getState,setState:te.setState,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:e=>{ee(!1),H?.(e,d,s)}})},de=()=>J(!0),ue=()=>J(!1),fe=!O&&!c;return e.createElement("g",{className:u(["react-flow__edge",`react-flow__edge-${s}`,r,{selected:f,animated:h,inactive:fe,updating:q}]),onClick:e=>{const{edges:t,addSelectedEdges:o,unselectNodesAndEdges:r,multiSelectionActive:a}=te.getState(),i=t.find(e=>e.id===n);i&&(O&&(te.setState({nodesSelectionActive:!1}),i.selected&&a?(r({nodes:[],edges:[i]}),G.current?.blur()):o([n])),c&&c(e,i))},onDoubleClick:re,onContextMenu:ae,onMouseEnter:ie,onMouseMove:se,onMouseLeave:le,onKeyDown:F?e=>{if(!U&&Wo.includes(e.key)&&O){const{unselectNodesAndEdges:t,addSelectedEdges:o,edges:r}=te.getState();"Escape"===e.key?(G.current?.blur(),t({edges:[r.find(e=>e.id===n)]})):o([n])}}:void 0,tabIndex:F?0:void 0,role:F?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":null===j?void 0:j||`Edge from ${x} to ${_}`,"aria-describedby":F?`${ga}-${X}`:void 0,ref:G},!Q&&e.createElement(t,{id:n,source:x,target:_,selected:f,animated:h,label:p,labelStyle:g,labelShowBg:m,labelBgStyle:y,labelBgPadding:v,labelBgBorderRadius:b,data:l,style:w,sourceX:E,sourceY:S,targetX:N,targetY:C,sourcePosition:k,targetPosition:M,sourceHandleId:z,targetHandleId:I,markerStart:ne,markerEnd:oe,pathOptions:Z,interactionWidth:W}),K&&e.createElement(e.Fragment,null,("source"===K||!0===K)&&e.createElement(_i,{position:k,centerX:E,centerY:S,radius:R,onMouseDown:e=>ce(e,!0),onMouseEnter:de,onMouseOut:ue,type:"source"}),("target"===K||!0===K)&&e.createElement(_i,{position:M,centerX:N,centerY:C,radius:R,onMouseDown:e=>ce(e,!1),onMouseEnter:de,onMouseOut:ue,type:"target"})))};return r.displayName="EdgeWrapper",n(r)};function Ni(e){return{...{default:Si(e.default||Er),straight:Si(e.bezier||br),step:Si(e.step||vr),smoothstep:Si(e.step||yr),simplebezier:Si(e.simplebezier||fr)},...Object.keys(e).filter(e=>!["default","bezier"].includes(e)).reduce((t,n)=>(t[n]=Si(e[n]||Er),t),{})}}function Ci(e,t,n=null){const o=(n?.x||0)+t.x,r=(n?.y||0)+t.y,a=n?.width||t.width,i=n?.height||t.height;switch(e){case cr.Top:return{x:o+a/2,y:r};case cr.Right:return{x:o+a,y:r+i/2};case cr.Bottom:return{x:o+a/2,y:r+i};case cr.Left:return{x:o,y:r+i/2}}}function ki(e,t){return e?1!==e.length&&t?t&&e.find(e=>e.id===t)||null:e[0]:null}function Mi(e){const t=e?.[Zo]?.handleBounds||null,n=t&&e?.width&&e?.height&&void 0!==e?.positionAbsolute?.x&&void 0!==e?.positionAbsolute?.y;return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}const Oi=[{level:0,isMaxLevel:!0,edges:[]}];function Ai(e,t,n){return function(e,t,n=!1){let o=-1;const r=e.reduce((e,r)=>{const a=Ko(r.zIndex);let i=a?r.zIndex:0;if(n){const e=t.get(r.target),n=t.get(r.source),o=r.selected||e?.selected||n?.selected,s=Math.max(n?.[Zo]?.z||0,e?.[Zo]?.z||0,1e3);i=(a?r.zIndex:0)+(o?s:0)}return e[i]?e[i].push(r):e[i]=[r],o=i>o?i:o,e},{}),a=Object.entries(r).map(([e,t])=>{const n=+e;return{edges:t,level:n,isMaxLevel:n===o}});return 0===a.length?Oi:a}(zo(r(n=>e?n.edges.filter(e=>{const o=t.get(e.source),r=t.get(e.target);return o?.width&&o?.height&&r?.width&&r?.height&&function({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:r,targetHeight:a,width:i,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+a)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const d=Xo({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:i/l[2],height:s/l[2]}),u=Math.max(0,Math.min(d.x2,c.x2)-Math.max(d.x,c.x)),f=Math.max(0,Math.min(d.y2,c.y2)-Math.max(d.y,c.y));return Math.ceil(u*f)>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:n.width,height:n.height,transform:n.transform})}):n.edges,[e,t])),t,n)}const zi={[lr.Arrow]:({color:t="none",strokeWidth:n=1})=>e.createElement("polyline",{style:{stroke:t,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[lr.ArrowClosed]:({color:t="none",strokeWidth:n=1})=>e.createElement("polyline",{style:{stroke:t,fill:t,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const Ii=({id:t,type:n,color:o,width:r=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:c="auto-start-reverse"})=>{const d=function(e){const t=Io();return a(()=>Object.prototype.hasOwnProperty.call(zi,e)?zi[e]:(t.getState().onError?.("009",No(e)),null),[e])}(n);return d?e.createElement("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0"},e.createElement(d,{color:o,strokeWidth:l})):null},Pi=({defaultColor:t,rfId:n})=>{const o=zo(r((({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 a=kr(r,t);o.includes(a)||(n.push({id:a,color:r.color||e,...r}),o.push(a))}}),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 e.createElement("defs",null,o.map(t=>e.createElement(Ii,{id:t.id,key:t.id,type:t.type,color:t.color,width:t.width,height:t.height,markerUnits:t.markerUnits,strokeWidth:t.strokeWidth,orient:t.orient})))};Pi.displayName="MarkerDefinitions";var Di=n(Pi);const Ti=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}),$i=({defaultMarkerColor:t,onlyRenderVisibleElements:n,elevateEdgesOnSelect:o,rfId:r,edgeTypes:a,noPanClassName:i,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:d,onEdgeClick:f,onEdgeDoubleClick:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:m,reconnectRadius:y,children:v,disableKeyboardA11y:b})=>{const{edgesFocusable:w,edgesUpdatable:x,elementsSelectable:_,width:E,height:S,connectionMode:N,nodeInternals:C,onError:k}=zo(Ti,D),M=Ai(n,C,o);return E?e.createElement(e.Fragment,null,M.map(({level:n,edges:o,isMaxLevel:v})=>e.createElement("svg",{key:n,style:{zIndex:n},width:E,height:S,className:"react-flow__edges react-flow__container"},v&&e.createElement(Di,{defaultColor:t,rfId:r}),e.createElement("g",null,o.map(t=>{const[n,o,v]=Mi(C.get(t.source)),[E,S,M]=Mi(C.get(t.target));if(!v||!M)return null;let O=t.type||"default";a[O]||(k?.("011",Mo(O)),O="default");const A=a[O]||a.default,z=N===rr.Strict?S.target:(S.target??[]).concat(S.source??[]),I=ki(o.source,t.sourceHandle),P=ki(z,t.targetHandle),D=I?.position||cr.Bottom,T=P?.position||cr.Top,$=!!(t.focusable||w&&void 0===t.focusable),R=t.reconnectable||t.updatable,B=void 0!==p&&(R||x&&void 0===R);if(!I||!P)return k?.("008",Co(I,t)),null;const{sourceX:L,sourceY:H,targetX:V,targetY:Y}=((e,t,n,o,r,a)=>{const i=Ci(n,e,t),s=Ci(a,o,r);return{sourceX:i.x,sourceY:i.y,targetX:s.x,targetY:s.y}})(n,I,D,E,P,T);return e.createElement(A,{key:t.id,id:t.id,className:u([t.className,i]),type:O,data:t.data,selected:!!t.selected,animated:!!t.animated,hidden:!!t.hidden,label:t.label,labelStyle:t.labelStyle,labelShowBg:t.labelShowBg,labelBgStyle:t.labelBgStyle,labelBgPadding:t.labelBgPadding,labelBgBorderRadius:t.labelBgBorderRadius,style:t.style,source:t.source,target:t.target,sourceHandleId:t.sourceHandle,targetHandleId:t.targetHandle,markerEnd:t.markerEnd,markerStart:t.markerStart,sourceX:L,sourceY:H,targetX:V,targetY:Y,sourcePosition:D,targetPosition:T,elementsSelectable:_,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:d,onClick:f,onEdgeDoubleClick:h,onReconnect:p,onReconnectStart:g,onReconnectEnd:m,reconnectRadius:y,rfId:r,ariaLabel:t.ariaLabel,isFocusable:$,isReconnectable:B,pathOptions:"pathOptions"in t?t.pathOptions:void 0,interactionWidth:t.interactionWidth,disableKeyboardA11y:b})})))),v):null};$i.displayName="EdgeRenderer";var Ri=n($i);const Bi=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Li({children:t}){const n=zo(Bi);return e.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},t)}const Hi={[cr.Left]:cr.Right,[cr.Right]:cr.Left,[cr.Top]:cr.Bottom,[cr.Bottom]:cr.Top},Vi=({nodeId:t,handleType:n,style:o,type:a=sr.Bezier,CustomComponent:i,connectionStatus:s})=>{const{fromNode:l,handleId:c,toX:d,toY:u,connectionMode:f}=zo(r(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]),D),h=l?.[Zo]?.handleBounds;let p=h?.[n];if(f===rr.Loose&&(p=p||h?.["source"===n?"target":"source"]),!l||!p)return null;const g=c?p.find(e=>e.id===c):p[0],m=g?g.x+g.width/2:(l.width??0)/2,y=g?g.y+g.height/2:l.height??0,v=(l.positionAbsolute?.x??0)+m,b=(l.positionAbsolute?.y??0)+y,w=g?.position,x=w?Hi[w]:null;if(!w||!x)return null;if(i)return e.createElement(i,{connectionLineType:a,connectionLineStyle:o,fromNode:l,fromHandle:g,fromX:v,fromY:b,toX:d,toY:u,fromPosition:w,toPosition:x,connectionStatus:s});let _="";const E={sourceX:v,sourceY:b,sourcePosition:w,targetX:d,targetY:u,targetPosition:x};return a===sr.Bezier?[_]=_r(E):a===sr.Step?[_]=mr({...E,borderRadius:0}):a===sr.SmoothStep?[_]=mr(E):a===sr.SimpleBezier?[_]=ur(E):_=`M${v},${b} ${d},${u}`,e.createElement("path",{d:_,fill:"none",className:"react-flow__connection-path",style:o})};Vi.displayName="ConnectionLine";const Yi=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Xi({containerStyle:t,style:n,type:o,component:r}){const{nodeId:a,handleType:i,nodesConnectable:s,width:l,height:c,connectionStatus:d}=zo(Yi,D);return!!(a&&i&&l&&s)?e.createElement("svg",{style:t,width:l,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},e.createElement("g",{className:u(["react-flow__connection",d])},e.createElement(Vi,{nodeId:a,handleType:i,style:n,type:o,CustomComponent:r,connectionStatus:d}))):null}function ji(e,t){const n=i(null),o=Io();return a(()=>{if("development"===process.env.NODE_ENV){const t=Object.keys(e);D(n.current,t)&&o.getState().onError?.("002",wo()),n.current=t}return t(e)},[e])}const Fi=({nodeTypes:t,edgeTypes:n,onMove:o,onMoveStart:r,onMoveEnd:a,onInit:s,onNodeClick:l,onEdgeClick:d,onNodeDoubleClick:u,onEdgeDoubleClick:f,onNodeMouseEnter:h,onNodeMouseMove:p,onNodeMouseLeave:g,onNodeContextMenu:m,onSelectionContextMenu:y,onSelectionStart:v,onSelectionEnd:b,connectionLineType:w,connectionLineStyle:x,connectionLineComponent:_,connectionLineContainerStyle:E,selectionKeyCode:S,selectionOnDrag:N,selectionMode:C,multiSelectionKeyCode:k,panActivationKeyCode:M,zoomActivationKeyCode:O,deleteKeyCode:A,onlyRenderVisibleElements:z,elementsSelectable:I,selectNodesOnDrag:P,defaultViewport:D,translateExtent:T,minZoom:$,maxZoom:R,preventScrolling:B,defaultMarkerColor:L,zoomOnScroll:H,zoomOnPinch:V,panOnScroll:Y,panOnScrollSpeed:X,panOnScrollMode:j,zoomOnDoubleClick:F,panOnDrag:K,onPaneClick:Z,onPaneMouseEnter:W,onPaneMouseMove:U,onPaneMouseLeave:G,onPaneScroll:q,onPaneContextMenu:J,onEdgeContextMenu:Q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:oe,onReconnectStart:re,onReconnectEnd:ae,reconnectRadius:ie,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,elevateEdgesOnSelect:de,disableKeyboardA11y:ue,nodeOrigin:fe,nodeExtent:he,rfId:pe})=>{const ge=ji(t,gi),me=ji(n,Ni);return function(e){const t=Ia(),n=i(!1);c(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}(s),e.createElement(pi,{onPaneClick:Z,onPaneMouseEnter:W,onPaneMouseMove:U,onPaneMouseLeave:G,onPaneContextMenu:J,onPaneScroll:q,deleteKeyCode:A,selectionKeyCode:S,selectionOnDrag:N,selectionMode:C,onSelectionStart:v,onSelectionEnd:b,multiSelectionKeyCode:k,panActivationKeyCode:M,zoomActivationKeyCode:O,elementsSelectable:I,onMove:o,onMoveStart:r,onMoveEnd:a,zoomOnScroll:H,zoomOnPinch:V,zoomOnDoubleClick:F,panOnScroll:Y,panOnScrollSpeed:X,panOnScrollMode:j,panOnDrag:K,defaultViewport:D,translateExtent:T,minZoom:$,maxZoom:R,onSelectionContextMenu:y,preventScrolling:B,noDragClassName:se,noWheelClassName:le,noPanClassName:ce,disableKeyboardA11y:ue},e.createElement(Li,null,e.createElement(Ri,{edgeTypes:me,onEdgeClick:d,onEdgeDoubleClick:f,onlyRenderVisibleElements:z,onEdgeContextMenu:Q,onEdgeMouseEnter:ee,onEdgeMouseMove:te,onEdgeMouseLeave:ne,onReconnect:oe,onReconnectStart:re,onReconnectEnd:ae,reconnectRadius:ie,defaultMarkerColor:L,noPanClassName:ce,elevateEdgesOnSelect:!!de,disableKeyboardA11y:ue,rfId:pe},e.createElement(Xi,{style:x,type:w,component:_,containerStyle:E})),e.createElement("div",{className:"react-flow__edgelabel-renderer"}),e.createElement(vi,{nodeTypes:ge,onNodeClick:l,onNodeDoubleClick:u,onNodeMouseEnter:h,onNodeMouseMove:p,onNodeMouseLeave:g,onNodeContextMenu:m,selectNodesOnDrag:P,onlyRenderVisibleElements:z,noPanClassName:ce,noDragClassName:se,disableKeyboardA11y:ue,nodeOrigin:fe,nodeExtent:he,rfId:pe})))};Fi.displayName="GraphView";var Ki=n(Fi);const Zi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Wi={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:Zi,nodeExtent:Zi,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:rr.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:Uo,isValidConnection:void 0},Ui=()=>{return e=(e,t)=>({...Wi,setNodes:n=>{const{nodeInternals:o,nodeOrigin:r,elevateNodesOnSelect:a}=t();e({nodeInternals:Sa(n,o,r,a)})},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,a=void 0!==o,i=r?Sa(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:i,edges:a?o:[],hasDefaultNodes:r,hasDefaultEdges:a})},updateNodeDimensions:n=>{const{onNodesChange:o,nodeInternals:r,fitViewOnInit:a,fitViewOnInitDone:i,fitViewOnInitOptions:s,domNode:l,nodeOrigin:c}=t(),d=l?.querySelector(".react-flow__viewport");if(!d)return;const u=window.getComputedStyle(d),{m22:f}=new window.DOMMatrixReadOnly(u.transform),h=n.reduce((e,t)=>{const n=r.get(t.id);if(n?.hidden)r.set(n.id,{...n,[Zo]:{...n[Zo],handleBounds:void 0}});else if(n){const o=Ro(t.nodeElement);o.width&&o.height&&(n.width!==o.width||n.height!==o.height||t.forceUpdate)&&(r.set(n.id,{...n,[Zo]:{...n[Zo],handleBounds:{source:ni(".source",t.nodeElement,f,c),target:ni(".target",t.nodeElement,f,c)}},...o}),e.push({id:n.id,type:"dimensions",dimensions:o}))}return e},[]);Ea(r,c);const p=i||a&&!i&&Na(t,{initial:!0,...s});e({nodeInternals:new Map(r),fitViewOnInitDone:p}),h?.length>0&&o?.(h)},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:a,nodeOrigin:i,getNodes:s,elevateNodesOnSelect:l}=t();if(n?.length){if(a){const t=Sa(Fa(n,s()),r,i,l);e({nodeInternals:t})}o?.(n)}},addSelectedNodes:n=>{const{multiSelectionActive:o,edges:r,getNodes:a}=t();let i,s=null;o?i=n.map(e=>Ka(e,!0)):(i=Za(a(),n),s=Za(r,[])),Ma({changedNodes:i,changedEdges:s,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:o,edges:r,getNodes:a}=t();let i,s=null;o?i=n.map(e=>Ka(e,!0)):(i=Za(r,n),s=Za(a(),[])),Ma({changedNodes:s,changedEdges:i,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:o}={})=>{const{edges:r,getNodes:a}=t(),i=o||r;Ma({changedNodes:(n||a()).map(e=>(e.selected=!1,Ka(e.id,!1))),changedEdges:i.map(e=>Ka(e.id,!1)),get:t,set:e})},setMinZoom:n=>{const{d3Zoom:o,maxZoom:r}=t();o?.scaleExtent([n,r]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:o,minZoom:r}=t();o?.scaleExtent([r,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:o}=t();Ma({changedNodes:o().filter(e=>e.selected).map(e=>Ka(e.id,!1)),changedEdges:n.filter(e=>e.selected).map(e=>Ka(e.id,!1)),get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:o}=t();o.forEach(e=>{e.positionAbsolute=Lo(e.position,n)}),e({nodeExtent:n,nodeInternals:new Map(o)})},panBy:e=>{const{transform:n,width:o,height:r,d3Zoom:a,d3Selection:i,translateExtent:s}=t();if(!a||!i||!e.x&&!e.y)return!1;const l=lo.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),c=[[0,0],[o,r]],d=a?.constrain()(l,c,s);return a.transform(i,d),n[0]!==d.x||n[1]!==d.y||n[2]!==d.k},cancelConnection:()=>e({connectionNodeId:Wi.connectionNodeId,connectionHandleId:Wi.connectionHandleId,connectionHandleType:Wi.connectionHandleType,connectionStatus:Wi.connectionStatus,connectionStartHandle:Wi.connectionStartHandle,connectionEndHandle:Wi.connectionEndHandle}),reset:()=>e({...Wi})}),t=Object.is,e?P(e,t):P;var e,t},Gi=({children:t})=>{const n=i(null);return n.current||(n.current=Ui()),e.createElement(bo,{value:n.current},t)};Gi.displayName="ReactFlowProvider";const qi=({children:t})=>l(vo)?e.createElement(e.Fragment,null,t):e.createElement(Gi,null,t);qi.displayName="ReactFlowWrapper";const Ji={input:Jr,default:Gr,output:ea,group:ta},Qi={default:Er,straight:br,step:vr,smoothstep:yr,simplebezier:fr},es=[0,0],ts=[15,15],ns={x:0,y:0,zoom:1},os={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},rs=t(({nodes:t,edges:n,defaultNodes:o,defaultEdges:r,className:a,nodeTypes:i=Ji,edgeTypes:s=Qi,onNodeClick:l,onEdgeClick:c,onInit:d,onMove:f,onMoveStart:h,onMoveEnd:p,onConnect:g,onConnectStart:m,onConnectEnd:y,onClickConnectStart:v,onClickConnectEnd:b,onNodeMouseEnter:w,onNodeMouseMove:x,onNodeMouseLeave:_,onNodeContextMenu:E,onNodeDoubleClick:S,onNodeDragStart:N,onNodeDrag:C,onNodeDragStop:k,onNodesDelete:M,onEdgesDelete:O,onSelectionChange:A,onSelectionDragStart:z,onSelectionDrag:I,onSelectionDragStop:P,onSelectionContextMenu:D,onSelectionStart:T,onSelectionEnd:$,connectionMode:R=rr.Strict,connectionLineType:B=sr.Bezier,connectionLineStyle:L,connectionLineComponent:H,connectionLineContainerStyle:V,deleteKeyCode:Y="Backspace",selectionKeyCode:X="Shift",selectionOnDrag:j=!1,selectionMode:F=ir.Full,panActivationKeyCode:K="Space",multiSelectionKeyCode:Z=(Qo()?"Meta":"Control"),zoomActivationKeyCode:W=(Qo()?"Meta":"Control"),snapToGrid:U=!1,snapGrid:G=ts,onlyRenderVisibleElements:q=!1,selectNodesOnDrag:J=!0,nodesDraggable:Q,nodesConnectable:ee,nodesFocusable:te,nodeOrigin:ne=es,edgesFocusable:oe,edgesUpdatable:re,elementsSelectable:ae,defaultViewport:ie=ns,minZoom:se=.5,maxZoom:le=2,translateExtent:ce=Zi,preventScrolling:de=!0,nodeExtent:ue,defaultMarkerColor:fe="#b1b1b7",zoomOnScroll:he=!0,zoomOnPinch:pe=!0,panOnScroll:ge=!1,panOnScrollSpeed:me=.5,panOnScrollMode:ye=ar.Free,zoomOnDoubleClick:ve=!0,panOnDrag:be=!0,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:_e,onPaneMouseLeave:Ee,onPaneScroll:Se,onPaneContextMenu:Ne,children:Ce,onEdgeContextMenu:ke,onEdgeDoubleClick:Me,onEdgeMouseEnter:Oe,onEdgeMouseMove:Ae,onEdgeMouseLeave:ze,onEdgeUpdate:Ie,onEdgeUpdateStart:Pe,onEdgeUpdateEnd:De,onReconnect:Te,onReconnectStart:$e,onReconnectEnd:Re,reconnectRadius:Be=10,edgeUpdaterRadius:Le=10,onNodesChange:He,onEdgesChange:Ve,noDragClassName:Ye="nodrag",noWheelClassName:Xe="nowheel",noPanClassName:je="nopan",fitView:Fe=!1,fitViewOptions:Ke,connectOnClick:Ze=!0,attributionPosition:We,proOptions:Ue,defaultEdgeOptions:Ge,elevateNodesOnSelect:qe=!0,elevateEdgesOnSelect:Je=!1,disableKeyboardA11y:Qe=!1,autoPanOnConnect:et=!0,autoPanOnNodeDrag:tt=!0,connectionRadius:nt=20,isValidConnection:ot,onError:rt,style:at,id:it,nodeDragThreshold:st,...lt},ct)=>{const dt=it||"1";return e.createElement("div",{...lt,style:{...at,...os},ref:ct,className:u(["react-flow",a]),"data-testid":"rf__wrapper",id:it},e.createElement(qi,null,e.createElement(Ki,{onInit:d,onMove:f,onMoveStart:h,onMoveEnd:p,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:w,onNodeMouseMove:x,onNodeMouseLeave:_,onNodeContextMenu:E,onNodeDoubleClick:S,nodeTypes:i,edgeTypes:s,connectionLineType:B,connectionLineStyle:L,connectionLineComponent:H,connectionLineContainerStyle:V,selectionKeyCode:X,selectionOnDrag:j,selectionMode:F,deleteKeyCode:Y,multiSelectionKeyCode:Z,panActivationKeyCode:K,zoomActivationKeyCode:W,onlyRenderVisibleElements:q,selectNodesOnDrag:J,defaultViewport:ie,translateExtent:ce,minZoom:se,maxZoom:le,preventScrolling:de,zoomOnScroll:he,zoomOnPinch:pe,zoomOnDoubleClick:ve,panOnScroll:ge,panOnScrollSpeed:me,panOnScrollMode:ye,panOnDrag:be,onPaneClick:we,onPaneMouseEnter:xe,onPaneMouseMove:_e,onPaneMouseLeave:Ee,onPaneScroll:Se,onPaneContextMenu:Ne,onSelectionContextMenu:D,onSelectionStart:T,onSelectionEnd:$,onEdgeContextMenu:ke,onEdgeDoubleClick:Me,onEdgeMouseEnter:Oe,onEdgeMouseMove:Ae,onEdgeMouseLeave:ze,onReconnect:Te??Ie,onReconnectStart:$e??Pe,onReconnectEnd:Re??De,reconnectRadius:Be??Le,defaultMarkerColor:fe,noDragClassName:Ye,noWheelClassName:Xe,noPanClassName:je,elevateEdgesOnSelect:Je,rfId:dt,disableKeyboardA11y:Qe,nodeOrigin:ne,nodeExtent:ue}),e.createElement(ua,{nodes:t,edges:n,defaultNodes:o,defaultEdges:r,onConnect:g,onConnectStart:m,onConnectEnd:y,onClickConnectStart:v,onClickConnectEnd:b,nodesDraggable:Q,nodesConnectable:ee,nodesFocusable:te,edgesFocusable:oe,edgesUpdatable:re,elementsSelectable:ae,elevateNodesOnSelect:qe,minZoom:se,maxZoom:le,nodeExtent:ue,onNodesChange:He,onEdgesChange:Ve,snapToGrid:U,snapGrid:G,connectionMode:R,translateExtent:ce,connectOnClick:Ze,defaultEdgeOptions:Ge,fitView:Fe,fitViewOptions:Ke,onNodesDelete:M,onEdgesDelete:O,onNodeDragStart:N,onNodeDrag:C,onNodeDragStop:k,onSelectionDrag:I,onSelectionDragStart:z,onSelectionDragStop:P,noPanClassName:je,nodeOrigin:ne,rfId:dt,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:rt,connectionRadius:nt,isValidConnection:ot,nodeDragThreshold:st}),e.createElement(sa,{onSelectionChange:A}),Ce,e.createElement(To,{proOptions:Ue,position:We}),e.createElement(va,{rfId:dt,disableKeyboardA11y:Qe})))});function as(e){return t=>{const[n,a]=o(t),i=r(t=>a(n=>e(t,n)),[]);return[n,a,i]}}rs.displayName="ReactFlow";const is=as(Fa),ss=as(function(e,t){return ja(e,t)});function ls(){return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},e.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function cs(){return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},e.createElement("path",{d:"M0 0h32v4.2H0z"}))}function ds(){return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},e.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 us(){return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},e.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 fs(){return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},e.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 hs=({children:t,className:n,...o})=>e.createElement("button",{type:"button",className:u(["react-flow__controls-button",n]),...o},t);hs.displayName="ControlButton";const ps=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),gs=({style:t,showZoom:n=!0,showFitView:r=!0,showInteractive:a=!0,fitViewOptions:i,onZoomIn:s,onZoomOut:l,onFitView:d,onInteractiveChange:f,className:h,children:p,position:g="bottom-left"})=>{const m=Io(),[y,v]=o(!1),{isInteractive:b,minZoomReached:w,maxZoomReached:x}=zo(ps,D),{zoomIn:_,zoomOut:E,fitView:S}=Ia();if(c(()=>{v(!0)},[]),!y)return null;return e.createElement(Do,{className:u(["react-flow__controls",h]),position:g,style:t,"data-testid":"rf__controls"},n&&e.createElement(e.Fragment,null,e.createElement(hs,{onClick:()=>{_(),s?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:x},e.createElement(ls,null)),e.createElement(hs,{onClick:()=>{E(),l?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:w},e.createElement(cs,null))),r&&e.createElement(hs,{className:"react-flow__controls-fitview",onClick:()=>{S(i),d?.()},title:"fit view","aria-label":"fit view"},e.createElement(ds,null)),a&&e.createElement(hs,{className:"react-flow__controls-interactive",onClick:()=>{m.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),f?.(!b)},title:"toggle interactivity","aria-label":"toggle interactivity"},b?e.createElement(fs,null):e.createElement(us,null)),p)};gs.displayName="Controls";var ms,ys=n(gs);function vs({color:t,dimensions:n,lineWidth:o}){return e.createElement("path",{stroke:t,strokeWidth:o,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function bs({color:t,radius:n}){return e.createElement("circle",{cx:n,cy:n,r:n,fill:t})}!function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"}(ms||(ms={}));const ws={[ms.Dots]:"#91919a",[ms.Lines]:"#eee",[ms.Cross]:"#e2e2e2"},xs={[ms.Dots]:1,[ms.Lines]:1,[ms.Cross]:6},_s=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Es({id:t,variant:n=ms.Dots,gap:o=20,size:r,lineWidth:a=1,offset:s=2,color:l,style:c,className:d}){const f=i(null),{transform:h,patternId:p}=zo(_s,D),g=l||ws[n],m=r||xs[n],y=n===ms.Dots,v=n===ms.Cross,b=Array.isArray(o)?o:[o,o],w=[b[0]*h[2]||1,b[1]*h[2]||1],x=m*h[2],_=v?[x,x]:w,E=y?[x/s,x/s]:[_[0]/s,_[1]/s];return e.createElement("svg",{className:u(["react-flow__background",d]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:f,"data-testid":"rf__background"},e.createElement("pattern",{id:p+t,x:h[0]%w[0],y:h[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${E[0]},-${E[1]})`},y?e.createElement(bs,{color:g,radius:x/s}):e.createElement(vs,{dimensions:_,color:g,lineWidth:a})),e.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${p+t})`}))}Es.displayName="Background";var Ss=n(Es);!function(e,t){void 0===t&&(t={});var n=t.insertAt;if("undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}(".react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:-webkit-grab;cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:-webkit-grab;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:-webkit-grab;cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:hsla(0,0%,100%,.5);font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}");
|
|
29
|
-
/**
|
|
30
|
-
* @license lucide-react v0.525.0 - ISC
|
|
31
|
-
*
|
|
32
|
-
* This source code is licensed under the ISC license.
|
|
33
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
34
|
-
*/
|
|
35
|
-
const Ns=e=>{const t=(e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()))(e);return t.charAt(0).toUpperCase()+t.slice(1)},Cs=(...e)=>e.filter((e,t,n)=>Boolean(e)&&""!==e.trim()&&n.indexOf(e)===t).join(" ").trim(),ks=e=>{for(const t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};
|
|
36
|
-
/**
|
|
37
|
-
* @license lucide-react v0.525.0 - ISC
|
|
38
|
-
*
|
|
39
|
-
* This source code is licensed under the ISC license.
|
|
40
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
41
|
-
*/
|
|
42
|
-
var Ms={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};
|
|
43
|
-
/**
|
|
44
|
-
* @license lucide-react v0.525.0 - ISC
|
|
45
|
-
*
|
|
46
|
-
* This source code is licensed under the ISC license.
|
|
47
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
48
|
-
*/const Os=t(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:o,className:r="",children:a,iconNode:i,...s},l)=>d("svg",{ref:l,...Ms,width:t,height:t,stroke:e,strokeWidth:o?24*Number(n)/Number(t):n,className:Cs("lucide",r),...!a&&!ks(s)&&{"aria-hidden":"true"},...s},[...i.map(([e,t])=>d(e,t)),...Array.isArray(a)?a:[a]])),As=(e,n)=>{const o=t(({className:t,...o},r)=>{return d(Os,{ref:r,iconNode:n,className:Cs(`lucide-${a=Ns(e),a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,t),...o});var a});return o.displayName=Ns(e),o},zs=As("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Is=As("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),Ps=As("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),Ds=({id:t,sourceX:n,sourceY:r,targetX:i,targetY:s,sourcePosition:l,targetPosition:c,style:d={},markerEnd:u,bidirectional:f=!1,data:h,clientToSvgCoords:p,svgRef:g,onInspect:m})=>{var y;const[v,b]=o(!1),w=()=>{var e;switch(null===(e=null==h?void 0:h.details)||void 0===e?void 0:e.state){case"Open":return"#000000";case"Completed":return"#15803d";case"Error":return"#ef4444";default:return d.stroke||"#6366f1"}},[x,_]=a(()=>{const o=`M ${n} ${r} Q ${(n+i)/2} ${(r+s)/2} ${i} ${s}`,a=[];if(f){const n=w();a.push(e.createElement("defs",{key:`${t}-markers`},e.createElement("marker",{id:`${t}-arrowhead-forward`,markerWidth:"10",markerHeight:"7",refX:"9",refY:"3.5",orient:"auto",markerUnits:"strokeWidth"},e.createElement("polygon",{points:"0 0, 10 3.5, 0 7",fill:n})),e.createElement("marker",{id:`${t}-arrowhead-backward`,markerWidth:"10",markerHeight:"7",refX:"1",refY:"3.5",orient:"auto",markerUnits:"strokeWidth"},e.createElement("polygon",{points:"10 0, 0 3.5, 10 7",fill:n}))))}return[o,a]},[n,r,i,s,t,f,null===(y=null==h?void 0:h.details)||void 0===y?void 0:y.state]),E=Object.assign(Object.assign({},d),{stroke:w(),strokeWidth:d.strokeWidth||4,cursor:"pointer"});return e.createElement("g",{"data-edge-id":t},_,e.createElement("path",{id:t,className:"react-flow__edge-path",d:x,markerEnd:f?`url(#${t}-arrowhead-forward)`:u,markerStart:f?`url(#${t}-arrowhead-backward)`:void 0,style:E}),(null==h?void 0:h.label)&&e.createElement("foreignObject",{x:(n+i)/2-50,y:(r+s)/2-20,width:"100",height:"40",style:{overflow:"visible",pointerEvents:"none"}},e.createElement("div",{className:"edge-label-renderer",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",pointerEvents:"auto"}},e.createElement("button",{className:"edge-label-button",onClick:e=>{e.stopPropagation(),m&&h&&m(h)},style:{background:"#6366f1",color:"white",border:"none",borderRadius:6,padding:"4px 12px",fontSize:12,fontWeight:600,cursor:"pointer",boxShadow:"0 2px 8px rgba(99,102,241,0.10)",transition:"background 0.2s"}},"Inspect"))),e.createElement("style",null,"\n .edge-label-renderer {\n z-index: 8001;\n user-select: none;\n pointer-events: auto;\n }\n\n .edge-label-button {\n pointer-events: auto;\n }\n "))},Ts=({data:t,id:n})=>{var o;const{fitView:r}=Ia(),a=(null===(o=t.edges)||void 0===o?void 0:o.some(e=>e.source===n))||!1;return e.createElement(e.Fragment,null,e.createElement("div",{className:"agent-node",onClick:()=>{r({nodes:[{id:n}],duration:800,padding:.1,minZoom:.5,maxZoom:1.5}),t.onInspect&&t.onInspect({label:t.label,description:t.description,nodeType:t.nodeType,step:t.step,time:t.time,icon:t.icon})},style:{cursor:"pointer"}},e.createElement(Wr,{type:"target",position:cr.Top,style:{background:"#6366f1"}}),e.createElement("div",{className:"agent-header"},e.createElement("div",{className:"agent-icon"},t.icon||"📋"),e.createElement("div",{className:"agent-label"},t.label)),t.description&&e.createElement("div",{className:"agent-description"},t.description),t.step&&e.createElement("div",{className:"agent-meta"},e.createElement("span",{className:"step"},"Step: ",t.step),t.time&&e.createElement("span",{className:"time"},new Date(1e3*t.time).toLocaleTimeString())),a&&e.createElement(Wr,{type:"source",position:cr.Bottom,style:{background:"#6366f1"}})),e.createElement("style",null,"\n .agent-node {\n padding: 12px;\n border-radius: 8px;\n background: white;\n border: 2px solid #e5e7eb;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n min-width: 200px;\n max-width: 250px;\n transition: all 0.2s ease;\n position: relative;\n z-index: -5;\n }\n \n .agent-node:hover {\n border-color: #6366f1;\n box-shadow: 0 4px 8px rgba(99, 102, 241, 0.2);\n }\n \n .agent-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n }\n \n .agent-icon {\n font-size: 20px;\n }\n \n .agent-label {\n font-weight: 600;\n color: #1f2937;\n font-size: 14px;\n word-break: break-word;\n }\n \n .agent-description {\n color: #6b7280;\n font-size: 12px;\n line-height: 1.4;\n word-break: break-word;\n white-space: pre-line;\n }\n \n .agent-meta {\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid #e5e7eb;\n display: flex;\n justify-content: space-between;\n font-size: 10px;\n color: #9ca3af;\n }\n \n .step {\n background: #f3f4f6;\n padding: 2px 6px;\n border-radius: 4px;\n }\n \n .time {\n font-family: monospace;\n }\n \n .react-flow__handle {\n width: 8px;\n height: 8px;\n border: 2px solid #6366f1;\n }\n "))},$s=({stamps:t,currentStep:n,isPlaying:o,onStepChange:r,onPlayPause:a})=>{const i=t.length>0?Math.max(...t.map(e=>e.step)):0,s=t.length>0?Math.min(...t.map(e=>e.step)):0,l=i-s+1;return c(()=>{const e=document.querySelectorAll('[data-bs-toggle="tooltip"]'),t=Array.from(e).map(e=>new window.bootstrap.Tooltip(e));return()=>{t.forEach(e=>e.dispose())}},[t,n]),e.createElement("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:"60px",backgroundColor:"white",borderTop:"1px solid #e5e7eb",display:"flex",alignItems:"center",padding:"0 16px",gap:"12px",zIndex:10}},e.createElement("button",{onClick:a,style:{width:"32px",height:"32px",borderRadius:"50%",border:"1px solid #d1d5db",backgroundColor:"white",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#f3f4f6"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="white"}},o?e.createElement("div",{style:{display:"flex",gap:"2px"}},e.createElement("div",{style:{width:"3px",height:"12px",backgroundColor:"#374151"}}),e.createElement("div",{style:{width:"3px",height:"12px",backgroundColor:"#374151"}})):e.createElement("div",{style:{width:0,height:0,borderLeft:"8px solid #374151",borderTop:"6px solid transparent",borderBottom:"6px solid transparent",marginLeft:"2px"}})),e.createElement("div",{style:{flex:1,display:"flex",alignItems:"center",gap:"8px",padding:"0 8px"}},Array.from({length:l},(o,a)=>{var i;const l=s+a,c=l===n,d=l<n,u=t.some(e=>e.step===l);let f="white";c?f="#6366f1":d?f="#fef3c7":u&&(f="#e5e7eb");const h=`Step ${l}${u?` - ${(null===(i=t.find(e=>e.step===l))||void 0===i?void 0:i.identifier)||""}`:" - No activity"}`;return e.createElement("button",{key:l,onClick:()=>r(l),"data-bs-toggle":"tooltip","data-bs-placement":"top","data-bs-title":h,style:{width:"16px",height:"16px",borderRadius:"50%",border:c?"2px solid #6366f1":"1px solid #d1d5db",backgroundColor:f,cursor:"pointer",transition:"all 0.2s ease",position:"relative"},onMouseEnter:e=>{c||(e.currentTarget.style.backgroundColor=d?"#fde68a":u?"#d1d5db":"#f3f4f6")},onMouseLeave:e=>{c||(e.currentTarget.style.backgroundColor=d?"#fef3c7":u?"#e5e7eb":"white")}})})),e.createElement("div",{style:{fontSize:"12px",color:"#6b7280",minWidth:"60px",textAlign:"right"}},n," / ",i))},Rs=({stamps:t,currentStep:n,onStepChange:o,onToggle:r})=>{const a=t.length>0?Math.max(...t.map(e=>e.step)):0,i=t.length>0?Math.min(...t.map(e=>e.step)):0,s=a-i+1;return e.createElement("div",{style:{width:"100%",height:"100%",backgroundColor:"white",display:"flex",flexDirection:"column",overflow:"hidden"}},e.createElement("div",{style:{padding:"16px",borderBottom:"1px solid #e5e7eb",backgroundColor:"#f9fafb",display:"flex",justifyContent:"space-between",alignItems:"flex-start"}},e.createElement("div",null,e.createElement("h3",{style:{margin:0,fontSize:"16px",fontWeight:600,color:"#1f2937"}},"Timeline"),e.createElement("p",{style:{margin:"4px 0 0 0",fontSize:"12px",color:"#6b7280"}},"Click to jump to step")),r&&e.createElement("button",{onClick:r,style:{border:"none",background:"none",cursor:"pointer",color:"#6b7280",padding:"4px",display:"flex",alignItems:"center",justifyContent:"center",transition:"color 0.2s ease"},title:"Collapse Panel"},e.createElement(zs,{size:16}))),e.createElement("div",{style:{flex:1,overflowY:"auto",padding:"8px 0 16px 0"}},Array.from({length:s},(r,a)=>{const s=i+a,l=s===n,c=s<n,d=t.some(e=>e.step===s),u=(e=>{const n=t.filter(t=>t.step===e);if(0===n.length)return null;const o=e-1,r=t.filter(e=>e.step===o);return 0===r.length?null:Math.min(...n.map(e=>e.time))-Math.max(...r.map(e=>e.time))})(s),f=(e=>{var n;const o=t.filter(t=>t.step===e);return 0===o.length?`Step ${e}`:(null===(n=o[0])||void 0===n?void 0:n.identifier)||`Step ${e}`})(s);return e.createElement("div",{key:s,onClick:()=>d&&o(s),style:{padding:"12px 16px",borderBottom:"1px solid #f3f4f6",cursor:d?"pointer":"default",backgroundColor:l?"#f0f9ff":"transparent",borderLeft:l?"4px solid #6366f1":"4px solid transparent",transition:"all 0.2s ease",position:"relative"},onMouseEnter:e=>{d&&!l&&(e.currentTarget.style.backgroundColor="#f8fafc")},onMouseLeave:e=>{d&&!l&&(e.currentTarget.style.backgroundColor="transparent")}},e.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"4px"}},e.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:l?"#6366f1":c?"#fbbf24":d?"#9ca3af":"#e5e7eb",border:l?"2px solid #6366f1":"1px solid #d1d5db",flexShrink:0}}),e.createElement("span",{style:{fontSize:"14px",fontWeight:l?600:500,color:l?"#1f2937":"#6b7280"}},"Step ",s),u&&e.createElement("span",{style:{fontSize:"11px",color:"#9ca3af",backgroundColor:"#f3f4f6",padding:"2px 6px",borderRadius:"4px",marginLeft:"auto"}},(e=>e<1e3?`${e.toFixed(0)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`)(u))),e.createElement("div",{style:{fontSize:"13px",color:d?"#1f2937":"#9ca3af",lineHeight:"1.4",wordBreak:"break-word",fontStyle:d?"normal":"italic"}},d?f:"No activity"),l&&e.createElement("div",{style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#6366f1",animation:"pulse 2s infinite"}}))})),e.createElement("style",null,"\n @keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n }\n "))},Bs=(e,t)=>e.length<=t?e:e.substring(0,t)+"...",Ls={agent:Ts},Hs=({flowData:t,width:n="100%",height:s="1000px",className:l=""})=>{var d,u,f,h;const p=t;if(!p)return e.createElement("div",{style:{width:"number"==typeof n?`${n}px`:n,height:"number"==typeof s?`${s}px`:s,border:"1px solid #e5e7eb",borderRadius:"8px",background:"#f9fafb",position:"relative",minWidth:"800px",minHeight:"600px",display:"flex",alignItems:"center",justifyContent:"center"},className:l},e.createElement("div",{style:{textAlign:"center"}},e.createElement("div",{style:{fontSize:"16px",color:"#6b7280",marginBottom:"8px"}},"No flow data available"),e.createElement("div",{style:{fontSize:"14px",color:"#9ca3af"}},"Please provide flowData prop")));const g=i(null),m=i(null),[y,v]=o({width:"number"==typeof n?n:800,height:"number"==typeof s?s:600}),[b,w]=o(0),[x,_]=o(!1),E=i(null),[S,N]=o(!1),[C,k]=o(!1),[M,O]=o(null),A=a(()=>{const e=p.stamps||p.steps||[];return e.length>0?Math.max(...e.map(e=>e.step)):0},[p.stamps,p.steps]);c(()=>(x?E.current=setInterval(()=>{w(e=>e>=A?(_(!1),e):e+1)},250):E.current&&(clearInterval(E.current),E.current=null),()=>{E.current&&clearInterval(E.current)}),[x,A]),c(()=>{const e=p.stamps||p.steps||[];e.length>0&&w(Math.max(...e.map(e=>e.step)))},[p.stamps,p.steps]),c(()=>{const e=()=>{if(g.current){const e=g.current.getBoundingClientRect();v({width:e.width||("number"==typeof n?n:800),height:e.height||("number"==typeof s?s:600)})}};if(e(),window.ResizeObserver&&g.current){const t=new ResizeObserver(e);return t.observe(g.current),()=>t.disconnect()}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[n,s]);const z=a(()=>((e,t)=>{new Map(e.map(e=>[e.identifier,e]));const n=new Map,o=new Map;e.forEach(e=>n.set(e.identifier,[])),t.length>0?t.forEach(e=>{var t;e.source&&e.target&&(null===(t=n.get(e.source))||void 0===t||t.push(e.target),o.set(e.target,e.source))}):e.forEach(e=>{var t;e.parent&&e.parent.identifier!==e.identifier&&(null===(t=n.get(e.parent.identifier))||void 0===t||t.push(e.identifier),o.set(e.identifier,e.parent.identifier))});const r=e.filter(e=>!o.has(e.identifier)),a=new Map,i=(e,t)=>{a.set(e,t);for(const o of n.get(e)||[])i(o,t+1)};r.forEach(e=>i(e.identifier,0));const s=[];e.forEach(e=>{var t;const n=null!==(t=a.get(e.identifier))&&void 0!==t?t:0;s[n]||(s[n]=[]),s[n].push(e.identifier)});const l=new Map,c=200,d=e=>{const t=n.get(e)||[];if(0===t.length)return l.set(e,c),c;let o=0;for(const e of t)o+=d(e);return o+=100*(t.length-1),l.set(e,o),o};r.forEach(e=>d(e.identifier));const u=new Map,f=(e,t,o)=>{const r=l.get(e)||c,a=300*o+100,i=n.get(e)||[];if(0===i.length)u.set(e,{x:t+r/2-100,y:a});else{let n=t;for(const e of i){const t=l.get(e)||c;f(e,n,o+1),n+=t+100}const r=i[0],s=i[i.length-1],d=u.get(r),h=u.get(s),p=(d.x+h.x)/2;u.set(e,{x:p,y:a})}};let h=0;for(const e of r)f(e.identifier,h,0),h+=(l.get(e.identifier)||c)+200;return u})(p.nodes,p.edges||[]),[p.nodes,p.edges]),I=r(e=>p.nodes.filter(t=>t.stamp.step<=e),[p.nodes]),P=r(e=>(p.edges||[]).filter(t=>t.stamp.step<=e),[p.edges]),D=r(e=>{O({type:"node",data:e}),k(!0)},[]),T=r(e=>{const t=P(b).find(t=>t.source===e.source&&t.target===e.target),n=Object.assign(Object.assign({},e),{id:(null==t?void 0:t.identifier)||"N/A"});O({type:"edge",data:n}),k(!0)},[P,b]),$=a(()=>{const e=I(b),t=P(b);return e.map(e=>{var n,o;const r=z.get(e.identifier)||{x:0,y:0},{description:a}=(e=>{var t,n;let o=e.node_type,r="";if(null===(n=null===(t=e.details)||void 0===t?void 0:t.internals)||void 0===n?void 0:n.llm_details){const t=e.details.internals.llm_details;if(t.length>0){const n=t[t.length-1];r=`${n.model_name} (${n.model_provider})`,o=`${e.node_type}\n${r}`}}return{description:o,modelInfo:r}})(e),i=e.stamp.step===b;return{id:e.identifier,type:"agent",position:r,data:{label:e.node_type,description:a,nodeType:e.node_type,step:null===(n=e.stamp)||void 0===n?void 0:n.step,time:null===(o=e.stamp)||void 0===o?void 0:o.time,isActive:i,onInspect:D,id:e.identifier,edges:t},style:{filter:i?"drop-shadow(0 4px 8px rgba(99, 102, 241, 0.3))":"none"}}})},[z,b,I,P,D]),R=a(()=>P(b).filter(e=>e.source&&e.target).map(e=>{var t,n,o,r;const a=e.stamp.step===b;return{id:e.identifier,type:"default",source:e.source,target:e.target,animated:a,bidirectional:!0,style:{stroke:a?"#6366f1":"#9ca3af",strokeWidth:a?3:2},label:(null===(t=e.stamp)||void 0===t?void 0:t.identifier)?Bs(String(e.stamp.identifier),50):void 0,data:{label:(null===(n=e.stamp)||void 0===n?void 0:n.identifier)?Bs(String(e.stamp.identifier),50):void 0,source:e.source,target:e.target,step:null===(o=e.stamp)||void 0===o?void 0:o.step,time:null===(r=e.stamp)||void 0===r?void 0:r.time,details:e.details}}}),[b,P]),[B,L,H]=is($),[V,Y,X]=ss(R);c(()=>{L($)},[$,L]),c(()=>{Y(R)},[R,Y]);const j=r(e=>Y(t=>Mr(e,t)),[Y]),F=r(e=>{w(e),_(!1)},[]),K=r(()=>{_(e=>!e)},[]),Z=(e,t)=>{var n;if(!m.current)return{x:0,y:0};const o=m.current.createSVGPoint();o.x=e,o.y=t;const r=o.matrixTransform(null===(n=m.current.getScreenCTM())||void 0===n?void 0:n.inverse());return{x:r.x,y:r.y}},W=Ia();return c(()=>{if($.length>0&&W){const e=new Map;R.forEach(t=>{const n=e.get(t.source)||0;e.set(t.source,n+1);const o=e.get(t.target)||0;e.set(t.target,o+1)});let t="",n=0;e.forEach((e,o)=>{e>n&&(n=e,t=o)}),!t&&$.length>0&&(t=$[0].id),t&&setTimeout(()=>{W.fitView({nodes:[{id:t}],duration:1e3,padding:.2,minZoom:.2,maxZoom:1.5})},500)}},[$,R,W]),e.createElement("div",{ref:g,style:{width:"number"==typeof n?`${n}px`:n,height:"number"==typeof s?`${s}px`:s,border:"1px solid #e5e7eb",borderRadius:"8px",overflow:"hidden",position:"relative",minWidth:"800px",minHeight:"600px"},className:l},e.createElement("div",{className:"side-panel "+(S?"expanded":"collapsed")},!S&&e.createElement("button",{className:"panel-toggle",onClick:()=>N(!S),title:"Expand Panel"},e.createElement(zs,{size:20})),S&&e.createElement("div",{className:"panel-content"},e.createElement(Rs,{stamps:p.stamps||p.steps||[],currentStep:b,onStepChange:F,onToggle:()=>N(!1)}))),e.createElement(rs,{nodes:B,edges:V,onNodesChange:H,onEdgesChange:X,onConnect:j,nodeTypes:Ls,edgeTypes:{default:t=>e.createElement(Ds,Object.assign({},t,{clientToSvgCoords:Z,svgRef:m,onInspect:T}))},attributionPosition:"bottom-left",style:{width:S?"calc(100% - 280px)":"100%",height:"calc(100% - 60px)",marginLeft:S?"280px":"0"},defaultViewport:{x:0,y:0,zoom:1},onInit:e=>{if(g.current){const e=g.current.querySelector("svg");e&&(m.current=e)}}},e.createElement(ys,null),e.createElement(Ss,{color:"#f3f4f6",gap:16})),e.createElement("div",{className:"right-drawer "+(C?"open":"")},e.createElement("div",{className:"drawer-toggle",onClick:()=>k(!C)},e.createElement(Is,{size:20})),C&&M&&e.createElement("div",{className:"drawer-content"},e.createElement("div",{className:"drawer-header"},e.createElement("h3",null,"node"===M.type?"Node Details":"Edge Details")),e.createElement("div",{className:"drawer-body"},"node"===M.type?e.createElement(e.Fragment,null,e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Label:"),e.createElement("span",{className:"detail-value"},M.data.label||"N/A")),M.data.description&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Description:"),e.createElement("span",{className:"detail-value"},M.data.description)),M.data.nodeType&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Type:"),e.createElement("span",{className:"detail-value"},M.data.nodeType)),M.data.step&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Step:"),e.createElement("span",{className:"detail-value"},M.data.step)),M.data.time&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Time:"),e.createElement("span",{className:"detail-value"},new Date(1e3*M.data.time).toLocaleString())),M.data.icon&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Icon:"),e.createElement("span",{className:"detail-value"},M.data.icon))):e.createElement(e.Fragment,null,e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"ID:"),e.createElement("span",{className:"detail-value"},M.data.id||"N/A")),M.data.source&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Source:"),e.createElement("span",{className:"detail-value"},M.data.source)),M.data.target&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Target:"),e.createElement("span",{className:"detail-value"},M.data.target)),M.data.label&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Label:"),e.createElement("span",{className:"detail-value"},M.data.label)),M.data.step&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Step:"),e.createElement("span",{className:"detail-value"},M.data.step)),M.data.time&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Time:"),e.createElement("span",{className:"detail-value"},new Date(1e3*M.data.time).toLocaleString())),(null===(u=null===(d=M.data)||void 0===d?void 0:d.details)||void 0===u?void 0:u.input_args)&&Array.isArray(M.data.details.input_args)&&M.data.details.input_args.length>0&&e.createElement(e.Fragment,null,e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Inputs"),e.createElement("span",{className:"detail-value",style:{overflowY:"auto",maxHeight:"300px"}},Array.isArray(M.data.details.input_args[0])?M.data.details.input_args[0].map((t,n)=>e.createElement("div",{key:(null==t?void 0:t.role)||n,style:{marginBottom:8}},e.createElement("span",{className:"detail-label"},"Role:"),e.createElement("span",{className:"detail-value"},(null==t?void 0:t.role)||"Unknown"),e.createElement("span",{className:"detail-label"},"Content:"),e.createElement("span",{className:"detail-value"},(null==t?void 0:t.content)||"No content"))):e.createElement("span",{className:"detail-value"},JSON.stringify(M.data.details.input_args[0],null,2)))),e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Outputs"),e.createElement("span",{className:"detail-value"},JSON.stringify(null===(h=null===(f=M.data)||void 0===f?void 0:f.details)||void 0===h?void 0:h.output,null,2)))))))),S&&e.createElement("div",{style:{marginLeft:"280px",marginTop:"100px"}},e.createElement($s,{stamps:p.stamps||p.steps||[],currentStep:b,isPlaying:x,onStepChange:F,onPlayPause:K})),e.createElement("style",null,`\n .react-flow__edge-label {\n font-size: 10px;\n background: white;\n padding: 2px 4px;\n border-radius: 4px;\n border: 1px solid #e5e7eb;\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Right Drawer Styles */\n .right-drawer {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n z-index: 1000;\n display: flex;\n align-items: flex-start;\n transition: transform 0.3s ease;\n margin-left: ${S?"280px":"0"}; /* Account for vertical timeline when visible */\n }\n\n .right-drawer:not(.open) {\n transform: translateX(calc(100% - 50px));\n }\n\n .right-drawer.open {\n transform: translateX(0);\n }\n\n .drawer-toggle {\n width: 50px;\n height: 50px;\n background: none;\n color: #6b7280;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s ease;\n margin-top: 20px;\n }\n\n .drawer-toggle:hover {\n color: #374151;\n }\n\n .drawer-content {\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 8px 0 0 8px;\n width: 400px;\n height: calc(100% - 40px);\n margin-top: 20px;\n display: flex;\n flex-direction: column;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n animation: drawerSlideIn 0.3s ease-out;\n }\n\n .drawer-header {\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n background: #f9fafb;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n }\n\n .drawer-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #1f2937;\n }\n\n .close-button {\n background: none;\n border: none;\n font-size: 20px;\n color: #6b7280;\n cursor: pointer;\n padding: 4px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: all 0.2s ease;\n }\n\n .close-button:hover {\n background: #e5e7eb;\n color: #1f2937;\n }\n\n .drawer-body {\n padding: 20px;\n overflow-y: auto;\n flex: 1;\n width: 100%;\n box-sizing: border-box;\n }\n\n .detail-row {\n display: grid;\n grid-template-columns: 100px 1fr;\n margin-bottom: 12px;\n align-items: flex-start;\n gap: 8px;\n }\n\n .detail-row:last-child {\n margin-bottom: 0;\n }\n\n .detail-label {\n font-weight: 600;\n color: #6b7280;\n font-size: 13px;\n word-break: break-word;\n }\n\n .detail-value {\n color: #1f2937;\n font-size: 13px;\n word-break: break-word;\n flex: 1;\n width: 100%;\n overflow: visible;\n text-overflow: unset;\n max-width: unset;\n white-space: pre-line;\n line-height: 1.4;\n }\n\n @keyframes drawerSlideIn {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n /* Scoreboard Styles */\n .scoreboard {\n position: absolute;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n min-width: 400px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .scoreboard-header {\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n background: #f9fafb;\n text-align: center;\n }\n\n .scoreboard-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #1f2937;\n }\n\n .scoreboard-content {\n padding: 16px;\n display: flex;\n justify-content: space-around;\n align-items: center;\n gap: 20px;\n }\n\n .scoreboard-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n }\n\n .scoreboard-label {\n font-size: 12px;\n color: #6b7280;\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .scoreboard-count {\n font-size: 18px;\n font-weight: 700;\n padding: 6px 12px;\n border-radius: 6px;\n min-width: 40px;\n text-align: center;\n }\n\n .scoreboard-count.open {\n background: #fef3c7;\n color: #92400e;\n }\n\n .scoreboard-count.completed {\n background: #d1fae5;\n color: #065f46;\n }\n\n .scoreboard-count.error {\n background: #fee2e2;\n color: #991b1b;\n }\n\n .scoreboard-count.error.clickable {\n transition: all 0.2s ease;\n }\n\n .scoreboard-count.error.clickable:hover {\n background: #fecaca;\n transform: scale(1.05);\n box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);\n }\n\n /* Side Panel Styles */\n .side-panel {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n transition: all 0.3s ease;\n }\n\n .side-panel.collapsed {\n width: 60px;\n }\n\n .side-panel.expanded {\n width: 280px;\n }\n\n .panel-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: none;\n cursor: pointer;\n color: #6b7280;\n transition: color 0.2s ease;\n padding: 8px;\n margin: 20px 0 0 0;\n }\n\n .panel-toggle:hover {\n color: #374151;\n }\n\n .panel-content {\n flex: 1;\n background: white;\n border-right: 1px solid #e5e7eb;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n }\n\n\n `))},Vs=t=>e.createElement(Gi,null,e.createElement(Hs,Object.assign({},t)));
|
|
49
|
-
/**
|
|
50
|
-
* @license lucide-react v0.525.0 - ISC
|
|
51
|
-
*
|
|
52
|
-
* This source code is licensed under the ISC license.
|
|
53
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
54
|
-
*/function Ys(e,t,n,o){return new(n||(n=Promise))(function(r,a){function i(e){try{l(o.next(e))}catch(e){a(e)}}function s(e){try{l(o.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(i,s)}l((o=o.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;const Xs="/api",js=()=>{const{listJsonFiles:e,loadJsonFile:t,loading:n,error:a}=(()=>{const[e,t]=o(!1),[n,a]=o(null);return{loading:e,error:n,listJsonFiles:r(()=>Ys(void 0,void 0,void 0,function*(){t(!0),a(null);try{console.log("Fetching files from:",`${Xs}/files`);const e=yield fetch(`${Xs}/files`);if(console.log("Response status:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=yield e.json();return console.log("Files received:",t),t}catch(e){console.error("Error fetching files:",e);const t={message:e instanceof Error?e.message:"Unknown error occurred",status:e instanceof Error&&"status"in e?e.status:void 0};return a(t),[]}finally{t(!1)}}),[]),loadJsonFile:r(e=>Ys(void 0,void 0,void 0,function*(){t(!0),a(null);try{const t=yield fetch(`${Xs}/json/${e}`);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return yield t.json()}catch(e){const t={message:e instanceof Error?e.message:"Unknown error occurred",status:e instanceof Error&&"status"in e?e.status:void 0};return a(t),null}finally{t(!1)}}),[]),triggerRefresh:r(()=>Ys(void 0,void 0,void 0,function*(){t(!0),a(null);try{const e=yield fetch(`${Xs}/refresh`,{method:"POST"});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return yield e.json()}catch(e){const t={message:e instanceof Error?e.message:"Unknown error occurred",status:e instanceof Error&&"status"in e?e.status:void 0};return a(t),null}finally{t(!1)}}),[])}})(),[i,s]=o({availableFiles:[],currentFile:null,flowData:null,loading:!1,error:null});c(()=>{l()},[]);const l=r(()=>Ys(void 0,void 0,void 0,function*(){const t=yield e();s(e=>Object.assign(Object.assign({},e),{availableFiles:t}))}),[e]),d=r(e=>Ys(void 0,void 0,void 0,function*(){s(e=>Object.assign(Object.assign({},e),{loading:!0,error:null}));try{const n=yield t(e);s(n?t=>Object.assign(Object.assign({},t),{currentFile:e,flowData:n,loading:!1,error:null}):e=>Object.assign(Object.assign({},e),{loading:!1,error:"Failed to load file data"}))}catch(e){s(t=>Object.assign(Object.assign({},t),{loading:!1,error:e instanceof Error?e.message:"Unknown error occurred"}))}}),[t]),u=r(()=>Ys(void 0,void 0,void 0,function*(){yield l()}),[l]);return Object.assign(Object.assign({},i),{loading:i.loading||n,error:i.error||(null==a?void 0:a.message)||null,loadFile:d,refreshFiles:u})},Fs=({files:t,currentFile:n,onFileSelect:o,onRefresh:r,loading:a=!1,disabled:i=!1})=>e.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},e.createElement("select",{value:n||"",onChange:e=>o(e.target.value),disabled:i,style:{cursor:"pointer",padding:"8px 16px 8px 16px",borderRadius:"4px",fontSize:"14px",border:"1px solid #ccc",appearance:"none",WebkitAppearance:"none",MozAppearance:"none"}},e.createElement("option",{value:""},"Select a RailTracks Run..."),t.map(t=>e.createElement("option",{key:t.name,value:t.name},t.name))),e.createElement("button",{onClick:e=>{e.stopPropagation(),r()},disabled:a||i,title:"Refresh files",style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:"4px"}},e.createElement(Ps,{size:16,style:{animation:a?"spin 1s linear infinite":"none"}}))),Ks=()=>{const{availableFiles:t,currentFile:n,flowData:o,loading:r,error:a,loadFile:i,refreshFiles:s}=js();return e.createElement("div",{className:"app"},e.createElement("div",{className:"app-header"},e.createElement("h1",null,"RailTracks Visualizer"),e.createElement("div",{className:"file-selector-container"},e.createElement(Fs,{files:t,currentFile:n,onFileSelect:e=>{i(e)},onRefresh:s,loading:r,disabled:r}))),a&&e.createElement("div",{className:"error-message"},e.createElement("p",null,"Error: ",a)),e.createElement("div",{className:"visualizer-container"},r?e.createElement("div",{className:"loading-state"},e.createElement("div",{className:"loading-spinner"}),e.createElement("p",null,"Loading flow data...")):o?e.createElement(Vs,{flowData:o}):e.createElement("div",{className:"no-data-state"},e.createElement("p",null,"Please select a file to visualize the flow data"))),e.createElement("style",null,"\n .app {\n min-height: 100vh;\n background: #f9fafb;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .app-header {\n background: white;\n border-bottom: 1px solid #e5e7eb;\n padding: 5px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n }\n\n .app-header h1 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n }\n\n .file-selector-container {\n display: flex;\n align-items: center;\n }\n\n .error-message {\n background: #fee2e2;\n border: 1px solid #fecaca;\n color: #991b1b;\n padding: 12px 20px;\n margin: 20px;\n border-radius: 6px;\n font-size: 14px;\n }\n\n .visualizer-container {\n padding: 20px;\n min-height: calc(100vh - 100px);\n }\n\n .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: #6b7280;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 4px solid #e5e7eb;\n border-top: 4px solid #6366f1;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n margin-bottom: 16px;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n .no-data-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: #6b7280;\n font-size: 16px;\n }\n "))};export{Hs as AgenticFlowVisualizer,Ks as App,Ds as Edge,Fs as FileSelector,Ts as Node,$s as Timeline,Rs as VerticalTimeline,Vs as Visualizer};
|
|
1
|
+
import e,{useState as t,useMemo as n,useEffect as o,useRef as r,useCallback as a}from"react";import l,{useReactFlow as i,Handle as s,Position as c,useNodesState as d,useEdgesState as p,addEdge as f,Controls as m,Background as u,ReactFlowProvider as g}from"reactflow";import{PanelLeft as b,PanelRight as h,RefreshCw as x}from"lucide-react";!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}(".react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:-webkit-grab;cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:-webkit-grab;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:-webkit-grab;cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:hsla(0,0%,100%,.5);font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}");const w=({id:o,sourceX:r,sourceY:a,targetX:l,targetY:i,sourcePosition:s,targetPosition:c,style:d={},markerEnd:p,bidirectional:f=!1,data:m,clientToSvgCoords:u,svgRef:g,onInspect:b})=>{var h;t(!1);const x=()=>{var e;switch(null===(e=null==m?void 0:m.details)||void 0===e?void 0:e.state){case"Open":return"#000000";case"Completed":return"#15803d";case"Error":return"#ef4444";default:return d.stroke||"#6366f1"}},[w,v]=n(()=>{const t=`M ${r} ${a} Q ${(r+l)/2} ${(a+i)/2} ${l} ${i}`,n=[];if(f){const t=x();n.push(e.createElement("defs",{key:`${o}-markers`},e.createElement("marker",{id:`${o}-arrowhead-forward`,markerWidth:"10",markerHeight:"7",refX:"9",refY:"3.5",orient:"auto",markerUnits:"strokeWidth"},e.createElement("polygon",{points:"0 0, 10 3.5, 0 7",fill:t})),e.createElement("marker",{id:`${o}-arrowhead-backward`,markerWidth:"10",markerHeight:"7",refX:"1",refY:"3.5",orient:"auto",markerUnits:"strokeWidth"},e.createElement("polygon",{points:"10 0, 0 3.5, 10 7",fill:t}))))}return[t,n]},[r,a,l,i,o,f,null===(h=null==m?void 0:m.details)||void 0===h?void 0:h.state]),_=Object.assign(Object.assign({},d),{stroke:x(),strokeWidth:d.strokeWidth||4,cursor:"pointer"});return e.createElement("g",{"data-edge-id":o},v,e.createElement("path",{id:o,className:"react-flow__edge-path",d:w,markerEnd:f?`url(#${o}-arrowhead-forward)`:p,markerStart:f?`url(#${o}-arrowhead-backward)`:void 0,style:_}),(null==m?void 0:m.label)&&e.createElement("foreignObject",{x:(r+l)/2-50,y:(a+i)/2-20,width:"100",height:"40",style:{overflow:"visible",pointerEvents:"none"}},e.createElement("div",{className:"edge-label-renderer",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",pointerEvents:"auto"}},e.createElement("button",{className:"edge-label-button",onClick:e=>{e.stopPropagation(),b&&m&&b(m)},style:{background:"#6366f1",color:"white",border:"none",borderRadius:6,padding:"4px 12px",fontSize:12,fontWeight:600,cursor:"pointer",boxShadow:"0 2px 8px rgba(99,102,241,0.10)",transition:"background 0.2s"}},"Inspect"))),e.createElement("style",null,"\n .edge-label-renderer {\n z-index: 8001;\n user-select: none;\n pointer-events: auto;\n }\n\n .edge-label-button {\n pointer-events: auto;\n }\n "))},v=({data:t,id:n})=>{var o;const{fitView:r}=i(),a=(null===(o=t.edges)||void 0===o?void 0:o.some(e=>e.source===n))||!1;return e.createElement(e.Fragment,null,e.createElement("div",{className:"agent-node",onClick:()=>{r({nodes:[{id:n}],duration:800,padding:.1,minZoom:.5,maxZoom:1.5}),t.onInspect&&t.onInspect({label:t.label,description:t.description,nodeType:t.nodeType,step:t.step,time:t.time,icon:t.icon})},style:{cursor:"pointer"}},e.createElement(s,{type:"target",position:c.Top,style:{background:"#6366f1"}}),e.createElement("div",{className:"agent-header"},e.createElement("div",{className:"agent-icon"},t.icon||"📋"),e.createElement("div",{className:"agent-label"},t.label)),t.description&&e.createElement("div",{className:"agent-description"},t.description),t.step&&e.createElement("div",{className:"agent-meta"},e.createElement("span",{className:"step"},"Step: ",t.step),t.time&&e.createElement("span",{className:"time"},new Date(1e3*t.time).toLocaleTimeString())),a&&e.createElement(s,{type:"source",position:c.Bottom,style:{background:"#6366f1"}})),e.createElement("style",null,"\n .agent-node {\n padding: 12px;\n border-radius: 8px;\n background: white;\n border: 2px solid #e5e7eb;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n min-width: 200px;\n max-width: 250px;\n transition: all 0.2s ease;\n position: relative;\n z-index: -5;\n }\n \n .agent-node:hover {\n border-color: #6366f1;\n box-shadow: 0 4px 8px rgba(99, 102, 241, 0.2);\n }\n \n .agent-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n }\n \n .agent-icon {\n font-size: 20px;\n }\n \n .agent-label {\n font-weight: 600;\n color: #1f2937;\n font-size: 14px;\n word-break: break-word;\n }\n \n .agent-description {\n color: #6b7280;\n font-size: 12px;\n line-height: 1.4;\n word-break: break-word;\n white-space: pre-line;\n }\n \n .agent-meta {\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid #e5e7eb;\n display: flex;\n justify-content: space-between;\n font-size: 10px;\n color: #9ca3af;\n }\n \n .step {\n background: #f3f4f6;\n padding: 2px 6px;\n border-radius: 4px;\n }\n \n .time {\n font-family: monospace;\n }\n \n .react-flow__handle {\n width: 8px;\n height: 8px;\n border: 2px solid #6366f1;\n }\n "))},_=({stamps:t,currentStep:n,isPlaying:r,onStepChange:a,onPlayPause:l})=>{const i=t.length>0?Math.max(...t.map(e=>e.step)):0,s=t.length>0?Math.min(...t.map(e=>e.step)):0,c=i-s+1;return o(()=>{const e=document.querySelectorAll('[data-bs-toggle="tooltip"]'),t=Array.from(e).map(e=>new window.bootstrap.Tooltip(e));return()=>{t.forEach(e=>e.dispose())}},[t,n]),e.createElement("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:"60px",backgroundColor:"white",borderTop:"1px solid #e5e7eb",display:"flex",alignItems:"center",padding:"0 16px",gap:"12px",zIndex:10}},e.createElement("button",{onClick:l,style:{width:"32px",height:"32px",borderRadius:"50%",border:"1px solid #d1d5db",backgroundColor:"white",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s ease"},onMouseEnter:e=>{e.currentTarget.style.backgroundColor="#f3f4f6"},onMouseLeave:e=>{e.currentTarget.style.backgroundColor="white"}},r?e.createElement("div",{style:{display:"flex",gap:"2px"}},e.createElement("div",{style:{width:"3px",height:"12px",backgroundColor:"#374151"}}),e.createElement("div",{style:{width:"3px",height:"12px",backgroundColor:"#374151"}})):e.createElement("div",{style:{width:0,height:0,borderLeft:"8px solid #374151",borderTop:"6px solid transparent",borderBottom:"6px solid transparent",marginLeft:"2px"}})),e.createElement("div",{style:{flex:1,display:"flex",alignItems:"center",gap:"8px",padding:"0 8px"}},Array.from({length:c},(o,r)=>{var l;const i=s+r,c=i===n,d=i<n,p=t.some(e=>e.step===i);let f="white";c?f="#6366f1":d?f="#fef3c7":p&&(f="#e5e7eb");const m=`Step ${i}${p?` - ${(null===(l=t.find(e=>e.step===i))||void 0===l?void 0:l.identifier)||""}`:" - No activity"}`;return e.createElement("button",{key:i,onClick:()=>a(i),"data-bs-toggle":"tooltip","data-bs-placement":"top","data-bs-title":m,style:{width:"16px",height:"16px",borderRadius:"50%",border:c?"2px solid #6366f1":"1px solid #d1d5db",backgroundColor:f,cursor:"pointer",transition:"all 0.2s ease",position:"relative"},onMouseEnter:e=>{c||(e.currentTarget.style.backgroundColor=d?"#fde68a":p?"#d1d5db":"#f3f4f6")},onMouseLeave:e=>{c||(e.currentTarget.style.backgroundColor=d?"#fef3c7":p?"#e5e7eb":"white")}})})),e.createElement("div",{style:{fontSize:"12px",color:"#6b7280",minWidth:"60px",textAlign:"right"}},n," / ",i))},y=({stamps:t,currentStep:n,onStepChange:o,onToggle:r})=>{const a=t.length>0?Math.max(...t.map(e=>e.step)):0,l=t.length>0?Math.min(...t.map(e=>e.step)):0,i=a-l+1;return e.createElement("div",{style:{width:"100%",height:"100%",backgroundColor:"white",display:"flex",flexDirection:"column",overflow:"hidden"}},e.createElement("div",{style:{padding:"16px",borderBottom:"1px solid #e5e7eb",backgroundColor:"#f9fafb",display:"flex",justifyContent:"space-between",alignItems:"flex-start"}},e.createElement("div",null,e.createElement("h3",{style:{margin:0,fontSize:"16px",fontWeight:600,color:"#1f2937"}},"Timeline"),e.createElement("p",{style:{margin:"4px 0 0 0",fontSize:"12px",color:"#6b7280"}},"Click to jump to step")),r&&e.createElement("button",{onClick:r,style:{border:"none",background:"none",cursor:"pointer",color:"#6b7280",padding:"4px",display:"flex",alignItems:"center",justifyContent:"center",transition:"color 0.2s ease"},title:"Collapse Panel"},e.createElement(b,{size:16}))),e.createElement("div",{style:{flex:1,overflowY:"auto",padding:"8px 0 16px 0"}},Array.from({length:i},(r,a)=>{const i=l+a,s=i===n,c=i<n,d=t.some(e=>e.step===i),p=(e=>{const n=t.filter(t=>t.step===e);if(0===n.length)return null;const o=e-1,r=t.filter(e=>e.step===o);return 0===r.length?null:Math.min(...n.map(e=>e.time))-Math.max(...r.map(e=>e.time))})(i),f=(e=>{var n;const o=t.filter(t=>t.step===e);return 0===o.length?`Step ${e}`:(null===(n=o[0])||void 0===n?void 0:n.identifier)||`Step ${e}`})(i);return e.createElement("div",{key:i,onClick:()=>d&&o(i),style:{padding:"12px 16px",borderBottom:"1px solid #f3f4f6",cursor:d?"pointer":"default",backgroundColor:s?"#f0f9ff":"transparent",borderLeft:s?"4px solid #6366f1":"4px solid transparent",transition:"all 0.2s ease",position:"relative"},onMouseEnter:e=>{d&&!s&&(e.currentTarget.style.backgroundColor="#f8fafc")},onMouseLeave:e=>{d&&!s&&(e.currentTarget.style.backgroundColor="transparent")}},e.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"4px"}},e.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:s?"#6366f1":c?"#fbbf24":d?"#9ca3af":"#e5e7eb",border:s?"2px solid #6366f1":"1px solid #d1d5db",flexShrink:0}}),e.createElement("span",{style:{fontSize:"14px",fontWeight:s?600:500,color:s?"#1f2937":"#6b7280"}},"Step ",i),p&&e.createElement("span",{style:{fontSize:"11px",color:"#9ca3af",backgroundColor:"#f3f4f6",padding:"2px 6px",borderRadius:"4px",marginLeft:"auto"}},(e=>e<1e3?`${e.toFixed(0)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`)(p))),e.createElement("div",{style:{fontSize:"13px",color:d?"#1f2937":"#9ca3af",lineHeight:"1.4",wordBreak:"break-word",fontStyle:d?"normal":"italic"}},d?f:"No activity"),s&&e.createElement("div",{style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",width:"6px",height:"6px",borderRadius:"50%",backgroundColor:"#6366f1",animation:"pulse 2s infinite"}}))})),e.createElement("style",null,"\n @keyframes pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n 100% {\n opacity: 1;\n }\n }\n "))},E=(e,t)=>e.length<=t?e:e.substring(0,t)+"...",k={agent:v},z=({flowData:s,width:c="100%",height:g="1000px",className:x=""})=>{var v,z,N,S;const C=s;if(!C)return e.createElement("div",{style:{width:"number"==typeof c?`${c}px`:c,height:"number"==typeof g?`${g}px`:g,border:"1px solid #e5e7eb",borderRadius:"8px",background:"#f9fafb",position:"relative",minWidth:"800px",minHeight:"600px",display:"flex",alignItems:"center",justifyContent:"center"},className:x},e.createElement("div",{style:{textAlign:"center"}},e.createElement("div",{style:{fontSize:"16px",color:"#6b7280",marginBottom:"8px"}},"No flow data available"),e.createElement("div",{style:{fontSize:"14px",color:"#9ca3af"}},"Please provide flowData prop")));const T=r(null),j=r(null),[$,F]=t({width:"number"==typeof c?c:800,height:"number"==typeof g?g:600}),[I,R]=t(0),[M,O]=t(!1),P=r(null),[A,L]=t(!1),[D,B]=t(!1),[W,U]=t(null),X=n(()=>{const e=C.stamps||C.steps||[];return e.length>0?Math.max(...e.map(e=>e.step)):0},[C.stamps,C.steps]);o(()=>(M?P.current=setInterval(()=>{R(e=>e>=X?(O(!1),e):e+1)},250):P.current&&(clearInterval(P.current),P.current=null),()=>{P.current&&clearInterval(P.current)}),[M,X]),o(()=>{const e=C.stamps||C.steps||[];e.length>0&&R(Math.max(...e.map(e=>e.step)))},[C.stamps,C.steps]),o(()=>{const e=()=>{if(T.current){const e=T.current.getBoundingClientRect();F({width:e.width||("number"==typeof c?c:800),height:e.height||("number"==typeof g?g:600)})}};if(e(),window.ResizeObserver&&T.current){const t=new ResizeObserver(e);return t.observe(T.current),()=>t.disconnect()}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[c,g]);const Y=n(()=>((e,t)=>{new Map(e.map(e=>[e.identifier,e]));const n=new Map,o=new Map;e.forEach(e=>n.set(e.identifier,[])),t.length>0?t.forEach(e=>{var t;e.source&&e.target&&(null===(t=n.get(e.source))||void 0===t||t.push(e.target),o.set(e.target,e.source))}):e.forEach(e=>{var t;e.parent&&e.parent.identifier!==e.identifier&&(null===(t=n.get(e.parent.identifier))||void 0===t||t.push(e.identifier),o.set(e.identifier,e.parent.identifier))});const r=e.filter(e=>!o.has(e.identifier)),a=new Map,l=(e,t)=>{a.set(e,t);for(const o of n.get(e)||[])l(o,t+1)};r.forEach(e=>l(e.identifier,0));const i=[];e.forEach(e=>{var t;const n=null!==(t=a.get(e.identifier))&&void 0!==t?t:0;i[n]||(i[n]=[]),i[n].push(e.identifier)});const s=new Map,c=200,d=e=>{const t=n.get(e)||[];if(0===t.length)return s.set(e,c),c;let o=0;for(const e of t)o+=d(e);return o+=100*(t.length-1),s.set(e,o),o};r.forEach(e=>d(e.identifier));const p=new Map,f=(e,t,o)=>{const r=s.get(e)||c,a=300*o+100,l=n.get(e)||[];if(0===l.length)p.set(e,{x:t+r/2-100,y:a});else{let n=t;for(const e of l){const t=s.get(e)||c;f(e,n,o+1),n+=t+100}const r=l[0],i=l[l.length-1],d=p.get(r),m=p.get(i),u=(d.x+m.x)/2;p.set(e,{x:u,y:a})}};let m=0;for(const e of r)f(e.identifier,m,0),m+=(s.get(e.identifier)||c)+200;return p})(C.nodes,C.edges||[]),[C.nodes,C.edges]),H=a(e=>C.nodes.filter(t=>t.stamp.step<=e),[C.nodes]),J=a(e=>(C.edges||[]).filter(t=>t.stamp.step<=e),[C.edges]),V=a(e=>{U({type:"node",data:e}),B(!0)},[]),Z=a(e=>{const t=J(I).find(t=>t.source===e.source&&t.target===e.target),n=Object.assign(Object.assign({},e),{id:(null==t?void 0:t.identifier)||"N/A"});U({type:"edge",data:n}),B(!0)},[J,I]),q=n(()=>{const e=H(I),t=J(I);return e.map(e=>{var n,o;const r=Y.get(e.identifier)||{x:0,y:0},{description:a}=(e=>{var t,n;let o=e.node_type,r="";if(null===(n=null===(t=e.details)||void 0===t?void 0:t.internals)||void 0===n?void 0:n.llm_details){const t=e.details.internals.llm_details;if(t.length>0){const n=t[t.length-1];r=`${n.model_name} (${n.model_provider})`,o=`${e.node_type}\n${r}`}}return{description:o,modelInfo:r}})(e),l=e.stamp.step===I;return{id:e.identifier,type:"agent",position:r,data:{label:e.node_type,description:a,nodeType:e.node_type,step:null===(n=e.stamp)||void 0===n?void 0:n.step,time:null===(o=e.stamp)||void 0===o?void 0:o.time,isActive:l,onInspect:V,id:e.identifier,edges:t},style:{filter:l?"drop-shadow(0 4px 8px rgba(99, 102, 241, 0.3))":"none"}}})},[Y,I,H,J,V]),G=n(()=>J(I).filter(e=>e.source&&e.target).map(e=>{var t,n,o,r;const a=e.stamp.step===I;return{id:e.identifier,type:"default",source:e.source,target:e.target,animated:a,bidirectional:!0,style:{stroke:a?"#6366f1":"#9ca3af",strokeWidth:a?3:2},label:(null===(t=e.stamp)||void 0===t?void 0:t.identifier)?E(String(e.stamp.identifier),50):void 0,data:{label:(null===(n=e.stamp)||void 0===n?void 0:n.identifier)?E(String(e.stamp.identifier),50):void 0,source:e.source,target:e.target,step:null===(o=e.stamp)||void 0===o?void 0:o.step,time:null===(r=e.stamp)||void 0===r?void 0:r.time,details:e.details}}}),[I,J]),[Q,K,ee]=d(q),[te,ne,oe]=p(G);o(()=>{K(q)},[q,K]),o(()=>{ne(G)},[G,ne]);const re=a(e=>ne(t=>f(e,t)),[ne]),ae=a(e=>{R(e),O(!1)},[]),le=a(()=>{O(e=>!e)},[]),ie=(e,t)=>{var n;if(!j.current)return{x:0,y:0};const o=j.current.createSVGPoint();o.x=e,o.y=t;const r=o.matrixTransform(null===(n=j.current.getScreenCTM())||void 0===n?void 0:n.inverse());return{x:r.x,y:r.y}},se=i();return o(()=>{if(q.length>0&&se){const e=new Map;G.forEach(t=>{const n=e.get(t.source)||0;e.set(t.source,n+1);const o=e.get(t.target)||0;e.set(t.target,o+1)});let t="",n=0;e.forEach((e,o)=>{e>n&&(n=e,t=o)}),!t&&q.length>0&&(t=q[0].id),t&&setTimeout(()=>{se.fitView({nodes:[{id:t}],duration:1e3,padding:.2,minZoom:.2,maxZoom:1.5})},500)}},[q,G,se]),e.createElement("div",{ref:T,style:{width:"number"==typeof c?`${c}px`:c,height:"number"==typeof g?`${g}px`:g,border:"1px solid #e5e7eb",borderRadius:"8px",overflow:"hidden",position:"relative",minWidth:"800px",minHeight:"600px"},className:x},e.createElement("div",{className:"side-panel "+(A?"expanded":"collapsed")},!A&&e.createElement("button",{className:"panel-toggle",onClick:()=>L(!A),title:"Expand Panel"},e.createElement(b,{size:20})),A&&e.createElement("div",{className:"panel-content"},e.createElement(y,{stamps:C.stamps||C.steps||[],currentStep:I,onStepChange:ae,onToggle:()=>L(!1)}))),e.createElement(l,{nodes:Q,edges:te,onNodesChange:ee,onEdgesChange:oe,onConnect:re,nodeTypes:k,edgeTypes:{default:t=>e.createElement(w,Object.assign({},t,{clientToSvgCoords:ie,svgRef:j,onInspect:Z}))},attributionPosition:"bottom-left",style:{width:A?"calc(100% - 280px)":"100%",height:"calc(100% - 60px)",marginLeft:A?"280px":"0"},defaultViewport:{x:0,y:0,zoom:1},onInit:e=>{if(T.current){const e=T.current.querySelector("svg");e&&(j.current=e)}}},e.createElement(m,null),e.createElement(u,{color:"#f3f4f6",gap:16})),e.createElement("div",{className:"right-drawer "+(D?"open":"")},e.createElement("div",{className:"drawer-toggle",onClick:()=>B(!D)},e.createElement(h,{size:20})),D&&W&&e.createElement("div",{className:"drawer-content"},e.createElement("div",{className:"drawer-header"},e.createElement("h3",null,"node"===W.type?"Node Details":"Edge Details")),e.createElement("div",{className:"drawer-body"},"node"===W.type?e.createElement(e.Fragment,null,e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Label:"),e.createElement("span",{className:"detail-value"},W.data.label||"N/A")),W.data.description&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Description:"),e.createElement("span",{className:"detail-value"},W.data.description)),W.data.nodeType&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Type:"),e.createElement("span",{className:"detail-value"},W.data.nodeType)),W.data.step&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Step:"),e.createElement("span",{className:"detail-value"},W.data.step)),W.data.time&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Time:"),e.createElement("span",{className:"detail-value"},new Date(1e3*W.data.time).toLocaleString())),W.data.icon&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Icon:"),e.createElement("span",{className:"detail-value"},W.data.icon))):e.createElement(e.Fragment,null,e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"ID:"),e.createElement("span",{className:"detail-value"},W.data.id||"N/A")),W.data.source&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Source:"),e.createElement("span",{className:"detail-value"},W.data.source)),W.data.target&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Target:"),e.createElement("span",{className:"detail-value"},W.data.target)),W.data.label&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Label:"),e.createElement("span",{className:"detail-value"},W.data.label)),W.data.step&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Step:"),e.createElement("span",{className:"detail-value"},W.data.step)),W.data.time&&e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Time:"),e.createElement("span",{className:"detail-value"},new Date(1e3*W.data.time).toLocaleString())),(null===(z=null===(v=W.data)||void 0===v?void 0:v.details)||void 0===z?void 0:z.input_args)&&Array.isArray(W.data.details.input_args)&&W.data.details.input_args.length>0&&e.createElement(e.Fragment,null,e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Inputs"),e.createElement("span",{className:"detail-value",style:{overflowY:"auto",maxHeight:"300px"}},Array.isArray(W.data.details.input_args[0])?W.data.details.input_args[0].map((t,n)=>e.createElement("div",{key:(null==t?void 0:t.role)||n,style:{marginBottom:8}},e.createElement("span",{className:"detail-label"},"Role:"),e.createElement("span",{className:"detail-value"},(null==t?void 0:t.role)||"Unknown"),e.createElement("span",{className:"detail-label"},"Content:"),e.createElement("span",{className:"detail-value"},(null==t?void 0:t.content)||"No content"))):e.createElement("span",{className:"detail-value"},JSON.stringify(W.data.details.input_args[0],null,2)))),e.createElement("div",{className:"detail-row"},e.createElement("span",{className:"detail-label"},"Outputs"),e.createElement("span",{className:"detail-value"},JSON.stringify(null===(S=null===(N=W.data)||void 0===N?void 0:N.details)||void 0===S?void 0:S.output,null,2)))))))),A&&e.createElement("div",{style:{marginLeft:"280px",marginTop:"100px"}},e.createElement(_,{stamps:C.stamps||C.steps||[],currentStep:I,isPlaying:M,onStepChange:ae,onPlayPause:le})),e.createElement("style",null,`\n .react-flow__edge-label {\n font-size: 10px;\n background: white;\n padding: 2px 4px;\n border-radius: 4px;\n border: 1px solid #e5e7eb;\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* Right Drawer Styles */\n .right-drawer {\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n z-index: 1000;\n display: flex;\n align-items: flex-start;\n transition: transform 0.3s ease;\n margin-left: ${A?"280px":"0"}; /* Account for vertical timeline when visible */\n }\n\n .right-drawer:not(.open) {\n transform: translateX(calc(100% - 50px));\n }\n\n .right-drawer.open {\n transform: translateX(0);\n }\n\n .drawer-toggle {\n width: 50px;\n height: 50px;\n background: none;\n color: #6b7280;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s ease;\n margin-top: 20px;\n }\n\n .drawer-toggle:hover {\n color: #374151;\n }\n\n .drawer-content {\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 8px 0 0 8px;\n width: 400px;\n height: calc(100% - 40px);\n margin-top: 20px;\n display: flex;\n flex-direction: column;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n animation: drawerSlideIn 0.3s ease-out;\n }\n\n .drawer-header {\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n background: #f9fafb;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n }\n\n .drawer-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #1f2937;\n }\n\n .close-button {\n background: none;\n border: none;\n font-size: 20px;\n color: #6b7280;\n cursor: pointer;\n padding: 4px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: all 0.2s ease;\n }\n\n .close-button:hover {\n background: #e5e7eb;\n color: #1f2937;\n }\n\n .drawer-body {\n padding: 20px;\n overflow-y: auto;\n flex: 1;\n width: 100%;\n box-sizing: border-box;\n }\n\n .detail-row {\n display: grid;\n grid-template-columns: 100px 1fr;\n margin-bottom: 12px;\n align-items: flex-start;\n gap: 8px;\n }\n\n .detail-row:last-child {\n margin-bottom: 0;\n }\n\n .detail-label {\n font-weight: 600;\n color: #6b7280;\n font-size: 13px;\n word-break: break-word;\n }\n\n .detail-value {\n color: #1f2937;\n font-size: 13px;\n word-break: break-word;\n flex: 1;\n width: 100%;\n overflow: visible;\n text-overflow: unset;\n max-width: unset;\n white-space: pre-line;\n line-height: 1.4;\n }\n\n @keyframes drawerSlideIn {\n from {\n opacity: 0;\n transform: translateX(20px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n /* Scoreboard Styles */\n .scoreboard {\n position: absolute;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n min-width: 400px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .scoreboard-header {\n padding: 12px 16px;\n border-bottom: 1px solid #e5e7eb;\n background: #f9fafb;\n text-align: center;\n }\n\n .scoreboard-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #1f2937;\n }\n\n .scoreboard-content {\n padding: 16px;\n display: flex;\n justify-content: space-around;\n align-items: center;\n gap: 20px;\n }\n\n .scoreboard-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n }\n\n .scoreboard-label {\n font-size: 12px;\n color: #6b7280;\n font-weight: 500;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .scoreboard-count {\n font-size: 18px;\n font-weight: 700;\n padding: 6px 12px;\n border-radius: 6px;\n min-width: 40px;\n text-align: center;\n }\n\n .scoreboard-count.open {\n background: #fef3c7;\n color: #92400e;\n }\n\n .scoreboard-count.completed {\n background: #d1fae5;\n color: #065f46;\n }\n\n .scoreboard-count.error {\n background: #fee2e2;\n color: #991b1b;\n }\n\n .scoreboard-count.error.clickable {\n transition: all 0.2s ease;\n }\n\n .scoreboard-count.error.clickable:hover {\n background: #fecaca;\n transform: scale(1.05);\n box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);\n }\n\n /* Side Panel Styles */\n .side-panel {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n transition: all 0.3s ease;\n }\n\n .side-panel.collapsed {\n width: 60px;\n }\n\n .side-panel.expanded {\n width: 280px;\n }\n\n .panel-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: none;\n cursor: pointer;\n color: #6b7280;\n transition: color 0.2s ease;\n padding: 8px;\n margin: 20px 0 0 0;\n }\n\n .panel-toggle:hover {\n color: #374151;\n }\n\n .panel-content {\n flex: 1;\n background: white;\n border-right: 1px solid #e5e7eb;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n }\n\n\n `))},N=t=>e.createElement(g,null,e.createElement(z,Object.assign({},t)));function S(e,t,n,o){return new(n||(n=Promise))(function(r,a){function l(e){try{s(o.next(e))}catch(e){a(e)}}function i(e){try{s(o.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(l,i)}s((o=o.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;const C="/api",T=()=>{const{listJsonFiles:e,loadJsonFile:n,loading:r,error:l}=(()=>{const[e,n]=t(!1),[o,r]=t(null);return{loading:e,error:o,listJsonFiles:a(()=>S(void 0,void 0,void 0,function*(){n(!0),r(null);try{console.log("Fetching files from:",`${C}/files`);const e=yield fetch(`${C}/files`);if(console.log("Response status:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=yield e.json();return console.log("Files received:",t),t}catch(e){console.error("Error fetching files:",e);const t={message:e instanceof Error?e.message:"Unknown error occurred",status:e instanceof Error&&"status"in e?e.status:void 0};return r(t),[]}finally{n(!1)}}),[]),loadJsonFile:a(e=>S(void 0,void 0,void 0,function*(){n(!0),r(null);try{const t=yield fetch(`${C}/json/${e}`);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return yield t.json()}catch(e){const t={message:e instanceof Error?e.message:"Unknown error occurred",status:e instanceof Error&&"status"in e?e.status:void 0};return r(t),null}finally{n(!1)}}),[]),triggerRefresh:a(()=>S(void 0,void 0,void 0,function*(){n(!0),r(null);try{const e=yield fetch(`${C}/refresh`,{method:"POST"});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return yield e.json()}catch(e){const t={message:e instanceof Error?e.message:"Unknown error occurred",status:e instanceof Error&&"status"in e?e.status:void 0};return r(t),null}finally{n(!1)}}),[])}})(),[i,s]=t({availableFiles:[],currentFile:null,flowData:null,loading:!1,error:null});o(()=>{c()},[]);const c=a(()=>S(void 0,void 0,void 0,function*(){const t=yield e();s(e=>Object.assign(Object.assign({},e),{availableFiles:t}))}),[e]),d=a(e=>S(void 0,void 0,void 0,function*(){s(e=>Object.assign(Object.assign({},e),{loading:!0,error:null}));try{const t=yield n(e);s(t?n=>Object.assign(Object.assign({},n),{currentFile:e,flowData:t,loading:!1,error:null}):e=>Object.assign(Object.assign({},e),{loading:!1,error:"Failed to load file data"}))}catch(e){s(t=>Object.assign(Object.assign({},t),{loading:!1,error:e instanceof Error?e.message:"Unknown error occurred"}))}}),[n]),p=a(()=>S(void 0,void 0,void 0,function*(){yield c()}),[c]);return Object.assign(Object.assign({},i),{loading:i.loading||r,error:i.error||(null==l?void 0:l.message)||null,loadFile:d,refreshFiles:p})},j=({files:t,currentFile:n,onFileSelect:o,onRefresh:r,loading:a=!1,disabled:l=!1})=>e.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},e.createElement("select",{value:n||"",onChange:e=>o(e.target.value),disabled:l,style:{cursor:"pointer",padding:"8px 16px 8px 16px",borderRadius:"4px",fontSize:"14px",border:"1px solid #ccc",appearance:"none",WebkitAppearance:"none",MozAppearance:"none"}},e.createElement("option",{value:""},"Select a RailTracks Run..."),t.map(t=>e.createElement("option",{key:t.name,value:t.name},t.name))),e.createElement("button",{onClick:e=>{e.stopPropagation(),r()},disabled:a||l,title:"Refresh files",style:{background:"none",border:"none",cursor:"pointer",padding:"4px",borderRadius:"4px"}},e.createElement(x,{size:16,style:{animation:a?"spin 1s linear infinite":"none"}}))),$=()=>{const{availableFiles:t,currentFile:n,flowData:o,loading:r,error:a,loadFile:l,refreshFiles:i}=T();return e.createElement("div",{className:"app"},e.createElement("div",{className:"app-header"},e.createElement("h1",null,"RailTracks Visualizer"),e.createElement("div",{className:"file-selector-container"},e.createElement(j,{files:t,currentFile:n,onFileSelect:e=>{l(e)},onRefresh:i,loading:r,disabled:r}))),a&&e.createElement("div",{className:"error-message"},e.createElement("p",null,"Error: ",a)),e.createElement("div",{className:"visualizer-container"},r?e.createElement("div",{className:"loading-state"},e.createElement("div",{className:"loading-spinner"}),e.createElement("p",null,"Loading flow data...")):o?e.createElement(N,{flowData:o}):e.createElement("div",{className:"no-data-state"},e.createElement("p",null,"Please select a file to visualize the flow data"))),e.createElement("style",null,"\n .app {\n min-height: 100vh;\n background: #f9fafb;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n .app-header {\n background: white;\n border-bottom: 1px solid #e5e7eb;\n padding: 5px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n }\n\n .app-header h1 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #1f2937;\n }\n\n .file-selector-container {\n display: flex;\n align-items: center;\n }\n\n .error-message {\n background: #fee2e2;\n border: 1px solid #fecaca;\n color: #991b1b;\n padding: 12px 20px;\n margin: 20px;\n border-radius: 6px;\n font-size: 14px;\n }\n\n .visualizer-container {\n padding: 20px;\n min-height: calc(100vh - 100px);\n }\n\n .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: #6b7280;\n }\n\n .loading-spinner {\n width: 40px;\n height: 40px;\n border: 4px solid #e5e7eb;\n border-top: 4px solid #6366f1;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n margin-bottom: 16px;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n .no-data-state {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 400px;\n color: #6b7280;\n font-size: 16px;\n }\n "))};export{z as AgenticFlowVisualizer,$ as App,w as Edge,j as FileSelector,v as Node,_ as Timeline,y as VerticalTimeline,N as Visualizer};
|
|
55
2
|
//# sourceMappingURL=index.js.map
|