MaiBot/webui/dist/assets/reactflow-B3n3_Vkw.js

3 lines
180 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

import{u as Rc,R as P,r as T}from"./router-CWhjJi2n.js";import{i as Ac,b as Oo,c as Mc,d as Fo,e as Ic,f as qc,g as Tc,r as ea,h as Pc,j as co,k as ta,l as We,m as lo,n as Dc,o as zc,p as na,q as ra,s as oa,t as fo,u as ho,v as po,w as Lc,x as $c,y as Oc,z as Fc,A as Hc,B as Vc,C as Bc,D as go,E as Wt,F as Gc,G as Uc,H as mo,I as Yc,J as Wc,K as ia,L as sa,M as aa,N as ua,O as Zt,P as ca,Q as la,R as Zc,S as Xc,T as Kc,U as jc,V as Qc,W as Jc,X as el,Y as tl,Z as da,$ as fa,a0 as nl,a1 as rl,a2 as ol,a3 as il,a4 as sl,a5 as al,a6 as ul,a7 as cl,a8 as ll,a9 as dl,aa as fl,ab as hl,ac as pl,ad as gl,ae as ml,af as vl}from"./charts-Dhri-zxi.js";function ce(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=ce(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}const yl={},Ho=e=>{let t;const n=new Set,r=(u,d)=>{const f=typeof u=="function"?u(t):u;if(!Object.is(f,t)){const h=t;t=d??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(_=>_(t,h))}},o=()=>t,c={setState:r,getState:o,getInitialState:()=>l,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{(yl?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=t=e(r,o,c);return c},wl=e=>e?Ho(e):Ho,{useDebugValue:_l}=P,{useSyncExternalStoreWithSelector:El}=Rc,bl=e=>e;function ha(e,t=bl,n){const r=El(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return _l(r),r}const Vo=(e,t)=>{const n=wl(e),r=(o,i=t)=>ha(n,o,i);return Object.assign(r,n),r},xl=(e,t)=>e?Vo(e,t):Vo;function ue(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,o]of e)if(!Object.is(o,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Sl={value:()=>{}};function Xt(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Pt(n)}function Pt(e){this._=e}function Nl(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Pt.prototype=Xt.prototype={constructor:Pt,on:function(e,t){var n=this._,r=Nl(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=Cl(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(o=(e=r[i]).type)n[o]=Bo(n[o],e.name,t);else if(t==null)for(o in n)n[o]=Bo(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Pt(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function Cl(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function Bo(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=Sl,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Kr="http://www.w3.org/1999/xhtml";const Go={svg:"http://www.w3.org/2000/svg",xhtml:Kr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Kt(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Go.hasOwnProperty(t)?{space:Go[t],local:e}:e}function kl(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Kr&&t.documentElement.namespaceURI===Kr?t.createElement(e):t.createElementNS(n,e)}}function Rl(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pa(e){var t=Kt(e);return(t.local?Rl:kl)(t)}function Al(){}function vo(e){return e==null?Al:function(){return this.querySelector(e)}}function Ml(e){typeof e!="function"&&(e=vo(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=new Array(s),c,l,u=0;u<s;++u)(c=i[u])&&(l=e.call(c,c.__data__,u,i))&&("__data__"in c&&(l.__data__=c.__data__),a[u]=l);return new pe(r,this._parents)}function Il(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ql(){return[]}function ga(e){return e==null?ql:function(){return this.querySelectorAll(e)}}function Tl(e){return function(){return Il(e.apply(this,arguments))}}function Pl(e){typeof e=="function"?e=Tl(e):e=ga(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var s=t[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&(r.push(e.call(c,c.__data__,l,s)),o.push(c));return new pe(r,o)}function ma(e){return function(){return this.matches(e)}}function va(e){return function(t){return t.matches(e)}}var Dl=Array.prototype.find;function zl(e){return function(){return Dl.call(this.children,e)}}function Ll(){return this.firstElementChild}function $l(e){return this.select(e==null?Ll:zl(typeof e=="function"?e:va(e)))}var Ol=Array.prototype.filter;function Fl(){return Array.from(this.children)}function Hl(e){return function(){return Ol.call(this.children,e)}}function Vl(e){return this.selectAll(e==null?Fl:Hl(typeof e=="function"?e:va(e)))}function Bl(e){typeof e!="function"&&(e=ma(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new pe(r,this._parents)}function ya(e){return new Array(e.length)}function Gl(){return new pe(this._enter||this._groups.map(ya),this._parents)}function $t(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}$t.prototype={constructor:$t,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Ul(e){return function(){return e}}function Yl(e,t,n,r,o,i){for(var s=0,a,c=t.length,l=i.length;s<l;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new $t(e,i[s]);for(;s<c;++s)(a=t[s])&&(o[s]=a)}function Wl(e,t,n,r,o,i,s){var a,c,l=new Map,u=t.length,d=i.length,f=new Array(u),h;for(a=0;a<u;++a)(c=t[a])&&(f[a]=h=s.call(c,c.__data__,a,t)+"",l.has(h)?o[a]=c:l.set(h,c));for(a=0;a<d;++a)h=s.call(e,i[a],a,i)+"",(c=l.get(h))?(r[a]=c,c.__data__=i[a],l.delete(h)):n[a]=new $t(e,i[a]);for(a=0;a<u;++a)(c=t[a])&&l.get(f[a])===c&&(o[a]=c)}function Zl(e){return e.__data__}function Xl(e,t){if(!arguments.length)return Array.from(this,Zl);var n=t?Wl:Yl,r=this._parents,o=this._groups;typeof e!="function"&&(e=Ul(e));for(var i=o.length,s=new Array(i),a=new Array(i),c=new Array(i),l=0;l<i;++l){var u=r[l],d=o[l],f=d.length,h=Kl(e.call(u,u&&u.__data__,l,r)),_=h.length,m=a[l]=new Array(_),g=s[l]=new Array(_),p=c[l]=new Array(f);n(u,d,m,g,p,h,t);for(var y=0,E=0,v,b;y<_;++y)if(v=m[y]){for(y>=E&&(E=y+1);!(b=g[E])&&++E<_;);v._next=b||null}}return s=new pe(s,r),s._enter=a,s._exit=c,s}function Kl(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function jl(){return new pe(this._exit||this._groups.map(ya),this._parents)}function Ql(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function Jl(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,s=Math.min(o,i),a=new Array(o),c=0;c<s;++c)for(var l=n[c],u=r[c],d=l.length,f=a[c]=new Array(d),h,_=0;_<d;++_)(h=l[_]||u[_])&&(f[_]=h);for(;c<o;++c)a[c]=n[c];return new pe(a,this._parents)}function ed(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function td(e){e||(e=nd);function t(d,f){return d&&f?e(d.__data__,f.__data__):!d-!f}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],a=s.length,c=o[i]=new Array(a),l,u=0;u<a;++u)(l=s[u])&&(c[u]=l);c.sort(t)}return new pe(o,this._parents).order()}function nd(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function rd(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function od(){return Array.from(this)}function id(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function sd(){let e=0;for(const t of this)++e;return e}function ad(){return!this.node()}function ud(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,s=o.length,a;i<s;++i)(a=o[i])&&e.call(a,a.__data__,i,o);return this}function cd(e){return function(){this.removeAttribute(e)}}function ld(e){return function(){this.removeAttributeNS(e.space,e.local)}}function dd(e,t){return function(){this.setAttribute(e,t)}}function fd(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function hd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function pd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function gd(e,t){var n=Kt(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?ld:cd:typeof t=="function"?n.local?pd:hd:n.local?fd:dd)(n,t))}function wa(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function md(e){return function(){this.style.removeProperty(e)}}function vd(e,t,n){return function(){this.style.setProperty(e,t,n)}}function yd(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function wd(e,t,n){return arguments.length>1?this.each((t==null?md:typeof t=="function"?yd:vd)(e,t,n??"")):at(this.node(),e)}function at(e,t){return e.style.getPropertyValue(t)||wa(e).getComputedStyle(e,null).getPropertyValue(t)}function _d(e){return function(){delete this[e]}}function Ed(e,t){return function(){this[e]=t}}function bd(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function xd(e,t){return arguments.length>1?this.each((t==null?_d:typeof t=="function"?bd:Ed)(e,t)):this.node()[e]}function _a(e){return e.trim().split(/^|\s+/)}function yo(e){return e.classList||new Ea(e)}function Ea(e){this._node=e,this._names=_a(e.getAttribute("class")||"")}Ea.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function ba(e,t){for(var n=yo(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function xa(e,t){for(var n=yo(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Sd(e){return function(){ba(this,e)}}function Nd(e){return function(){xa(this,e)}}function Cd(e,t){return function(){(t.apply(this,arguments)?ba:xa)(this,e)}}function kd(e,t){var n=_a(e+"");if(arguments.length<2){for(var r=yo(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Cd:t?Sd:Nd)(n,t))}function Rd(){this.textContent=""}function Ad(e){return function(){this.textContent=e}}function Md(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Id(e){return arguments.length?this.each(e==null?Rd:(typeof e=="function"?Md:Ad)(e)):this.node().textContent}function qd(){this.innerHTML=""}function Td(e){return function(){this.innerHTML=e}}function Pd(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Dd(e){return arguments.length?this.each(e==null?qd:(typeof e=="function"?Pd:Td)(e)):this.node().innerHTML}function zd(){this.nextSibling&&this.parentNode.appendChild(this)}function Ld(){return this.each(zd)}function $d(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Od(){return this.each($d)}function Fd(e){var t=typeof e=="function"?e:pa(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Hd(){return null}function Vd(e,t){var n=typeof e=="function"?e:pa(e),r=t==null?Hd:typeof t=="function"?t:vo(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Bd(){var e=this.parentNode;e&&e.removeChild(this)}function Gd(){return this.each(Bd)}function Ud(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Yd(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Wd(e){return this.select(e?Yd:Ud)}function Zd(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Xd(e){return function(t){e.call(this,t,this.__data__)}}function Kd(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function jd(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function Qd(e,t,n){return function(){var r=this.__on,o,i=Xd(t);if(r){for(var s=0,a=r.length;s<a;++s)if((o=r[s]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function Jd(e,t,n){var r=Kd(e+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,l=a.length,u;c<l;++c)for(o=0,u=a[c];o<i;++o)if((s=r[o]).type===u.type&&s.name===u.name)return u.value}return}for(a=t?Qd:jd,o=0;o<i;++o)this.each(a(r[o],t,n));return this}function Sa(e,t,n){var r=wa(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function ef(e,t){return function(){return Sa(this,e,t)}}function tf(e,t){return function(){return Sa(this,e,t.apply(this,arguments))}}function nf(e,t){return this.each((typeof t=="function"?tf:ef)(e,t))}function*rf(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var Na=[null];function pe(e,t){this._groups=e,this._parents=t}function Ct(){return new pe([[document.documentElement]],Na)}function of(){return this}pe.prototype=Ct.prototype={constructor:pe,select:Ml,selectAll:Pl,selectChild:$l,selectChildren:Vl,filter:Bl,data:Xl,enter:Gl,exit:jl,join:Ql,merge:Jl,selection:of,order:ed,sort:td,call:rd,nodes:od,node:id,size:sd,empty:ad,each:ud,attr:gd,style:wd,property:xd,classed:kd,text:Id,html:Dd,raise:Ld,lower:Od,append:Fd,insert:Vd,remove:Gd,clone:Wd,datum:Zd,on:Jd,dispatch:nf,[Symbol.iterator]:rf};function ge(e){return typeof e=="string"?new pe([[document.querySelector(e)]],[document.documentElement]):new pe([[e]],Na)}function sf(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ye(e,t){if(e=sf(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const af={passive:!1},Et={capture:!0,passive:!1};function an(e){e.stopImmediatePropagation()}function it(e){e.preventDefault(),e.stopImmediatePropagation()}function Ca(e){var t=e.document.documentElement,n=ge(e).on("dragstart.drag",it,Et);"onselectstart"in t?n.on("selectstart.drag",it,Et):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function ka(e,t){var n=e.document.documentElement,r=ge(e).on("dragstart.drag",null);t&&(r.on("click.drag",it,Et),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Rt=e=>()=>e;function jr(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}jr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function uf(e){return!e.ctrlKey&&!e.button}function cf(){return this.parentNode}function lf(e,t){return t??{x:e.x,y:e.y}}function df(){return navigator.maxTouchPoints||"ontouchstart"in this}function ff(){var e=uf,t=cf,n=lf,r=df,o={},i=Xt("start","drag","end"),s=0,a,c,l,u,d=0;function f(v){v.on("mousedown.drag",h).filter(r).on("touchstart.drag",g).on("touchmove.drag",p,af).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(v,b){if(!(u||!e.call(this,v,b))){var x=E(this,t.call(this,v,b),v,b,"mouse");x&&(ge(v.view).on("mousemove.drag",_,Et).on("mouseup.drag",m,Et),Ca(v.view),an(v),l=!1,a=v.clientX,c=v.clientY,x("start",v))}}function _(v){if(it(v),!l){var b=v.clientX-a,x=v.clientY-c;l=b*b+x*x>d}o.mouse("drag",v)}function m(v){ge(v.view).on("mousemove.drag mouseup.drag",null),ka(v.view,l),it(v),o.mouse("end",v)}function g(v,b){if(e.call(this,v,b)){var x=v.changedTouches,C=t.call(this,v,b),q=x.length,k,A;for(k=0;k<q;++k)(A=E(this,C,v,b,x[k].identifier,x[k]))&&(an(v),A("start",v,x[k]))}}function p(v){var b=v.changedTouches,x=b.length,C,q;for(C=0;C<x;++C)(q=o[b[C].identifier])&&(it(v),q("drag",v,b[C]))}function y(v){var b=v.changedTouches,x=b.length,C,q;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),C=0;C<x;++C)(q=o[b[C].identifier])&&(an(v),q("end",v,b[C]))}function E(v,b,x,C,q,k){var A=i.copy(),D=ye(k||x,b),$,L,w;if((w=n.call(v,new jr("beforestart",{sourceEvent:x,target:f,identifier:q,active:s,x:D[0],y:D[1],dx:0,dy:0,dispatch:A}),C))!=null)return $=w.x-D[0]||0,L=w.y-D[1]||0,function R(N,O,H){var M=D,F;switch(N){case"start":o[q]=R,F=s++;break;case"end":delete o[q],--s;case"drag":D=ye(H||O,b),F=s;break}A.call(N,v,new jr(N,{sourceEvent:O,subject:w,target:f,identifier:q,active:F,x:D[0]+$,y:D[1]+L,dx:D[0]-M[0],dy:D[1]-M[1],dispatch:A}),C)}}return f.filter=function(v){return arguments.length?(e=typeof v=="function"?v:Rt(!!v),f):e},f.container=function(v){return arguments.length?(t=typeof v=="function"?v:Rt(v),f):t},f.subject=function(v){return arguments.length?(n=typeof v=="function"?v:Rt(v),f):n},f.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:Rt(!!v),f):r},f.on=function(){var v=i.on.apply(i,arguments);return v===i?f:v},f.clickDistance=function(v){return arguments.length?(d=(v=+v)*v,f):Math.sqrt(d)},f}var ut=0,yt=0,ht=0,Ra=1e3,Ot,wt,Ft=0,Ue=0,jt=0,bt=typeof performance=="object"&&performance.now?performance:Date,Aa=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function wo(){return Ue||(Aa(hf),Ue=bt.now()+jt)}function hf(){Ue=0}function Ht(){this._call=this._time=this._next=null}Ht.prototype=Ma.prototype={constructor:Ht,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?wo():+n)+(t==null?0:+t),!this._next&&wt!==this&&(wt?wt._next=this:Ot=this,wt=this),this._call=e,this._time=n,Qr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qr())}};function Ma(e,t,n){var r=new Ht;return r.restart(e,t,n),r}function pf(){wo(),++ut;for(var e=Ot,t;e;)(t=Ue-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ut}function Uo(){Ue=(Ft=bt.now())+jt,ut=yt=0;try{pf()}finally{ut=0,mf(),Ue=0}}function gf(){var e=bt.now(),t=e-Ft;t>Ra&&(jt-=t,Ft=e)}function mf(){for(var e,t=Ot,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Ot=n);wt=e,Qr(r)}function Qr(e){if(!ut){yt&&(yt=clearTimeout(yt));var t=e-Ue;t>24?(e<1/0&&(yt=setTimeout(Uo,e-bt.now()-jt)),ht&&(ht=clearInterval(ht))):(ht||(Ft=bt.now(),ht=setInterval(gf,Ra)),ut=1,Aa(Uo))}}function Yo(e,t,n){var r=new Ht;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var vf=Xt("start","end","cancel","interrupt"),yf=[],Ia=0,Wo=1,Jr=2,Dt=3,Zo=4,eo=5,zt=6;function Qt(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;wf(e,n,{name:t,index:r,group:o,on:vf,tween:yf,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Ia})}function _o(e,t){var n=Ee(e,t);if(n.state>Ia)throw new Error("too late; already scheduled");return n}function Se(e,t){var n=Ee(e,t);if(n.state>Dt)throw new Error("too late; already running");return n}function Ee(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function wf(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=Ma(i,0,n.time);function i(l){n.state=Wo,n.timer.restart(s,n.delay,n.time),n.delay<=l&&s(l-n.delay)}function s(l){var u,d,f,h;if(n.state!==Wo)return c();for(u in r)if(h=r[u],h.name===n.name){if(h.state===Dt)return Yo(s);h.state===Zo?(h.state=zt,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[u]):+u<t&&(h.state=zt,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[u])}if(Yo(function(){n.state===Dt&&(n.state=Zo,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=Jr,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Jr){for(n.state=Dt,o=new Array(f=n.tween.length),u=0,d=-1;u<f;++u)(h=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(o[++d]=h);o.length=d+1}}function a(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=eo,1),d=-1,f=o.length;++d<f;)o[d].call(e,u);n.state===eo&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=zt,n.timer.stop(),delete r[t];for(var l in r)return;delete e.__transition}}function Lt(e,t){var n=e.__transition,r,o,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((r=n[s]).name!==t){i=!1;continue}o=r.state>Jr&&r.state<eo,r.state=zt,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function _f(e){return this.each(function(){Lt(this,e)})}function Ef(e,t){var n,r;return function(){var o=Se(this,e),i=o.tween;if(i!==n){r=n=i;for(var s=0,a=r.length;s<a;++s)if(r[s].name===t){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function bf(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=Se(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:t,value:n},c=0,l=o.length;c<l;++c)if(o[c].name===t){o[c]=a;break}c===l&&o.push(a)}i.tween=o}}function xf(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Ee(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===e)return s.value;return null}return this.each((t==null?Ef:bf)(n,e,t))}function Eo(e,t,n){var r=e._id;return e.each(function(){var o=Se(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Ee(o,r).value[t]}}function qa(e,t){var n;return(typeof t=="number"?Ac:t instanceof Fo?Oo:(n=Fo(t))?(t=n,Oo):Mc)(e,t)}function Sf(e){return function(){this.removeAttribute(e)}}function Nf(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Cf(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttribute(e);return s===o?null:s===r?i:i=t(r=s,n)}}function kf(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===o?null:s===r?i:i=t(r=s,n)}}function Rf(e,t,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a)))}}function Af(e,t,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a)))}}function Mf(e,t){var n=Kt(e),r=n==="transform"?Ic:qa;return this.attrTween(e,typeof t=="function"?(n.local?Af:Rf)(n,r,Eo(this,"attr."+e,t)):t==null?(n.local?Nf:Sf)(n):(n.local?kf:Cf)(n,r,t))}function If(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function qf(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Tf(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&qf(e,i)),n}return o._value=t,o}function Pf(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&If(e,i)),n}return o._value=t,o}function Df(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=Kt(e);return this.tween(n,(r.local?Tf:Pf)(r,t))}function zf(e,t){return function(){_o(this,e).delay=+t.apply(this,arguments)}}function Lf(e,t){return t=+t,function(){_o(this,e).delay=t}}function $f(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?zf:Lf)(t,e)):Ee(this.node(),t).delay}function Of(e,t){return function(){Se(this,e).duration=+t.apply(this,arguments)}}function Ff(e,t){return t=+t,function(){Se(this,e).duration=t}}function Hf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Of:Ff)(t,e)):Ee(this.node(),t).duration}function Vf(e,t){if(typeof t!="function")throw new Error;return function(){Se(this,e).ease=t}}function Bf(e){var t=this._id;return arguments.length?this.each(Vf(t,e)):Ee(this.node(),t).ease}function Gf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Se(this,e).ease=n}}function Uf(e){if(typeof e!="function")throw new Error;return this.each(Gf(this._id,e))}function Yf(e){typeof e!="function"&&(e=ma(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new Me(r,this._parents,this._name,this._id)}function Wf(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),s=new Array(r),a=0;a<i;++a)for(var c=t[a],l=n[a],u=c.length,d=s[a]=new Array(u),f,h=0;h<u;++h)(f=c[h]||l[h])&&(d[h]=f);for(;a<r;++a)s[a]=t[a];return new Me(s,this._parents,this._name,this._id)}function Zf(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Xf(e,t,n){var r,o,i=Zf(t)?_o:Se;return function(){var s=i(this,e),a=s.on;a!==r&&(o=(r=a).copy()).on(t,n),s.on=o}}function Kf(e,t){var n=this._id;return arguments.length<2?Ee(this.node(),n).on.on(e):this.each(Xf(n,e,t))}function jf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Qf(){return this.on("end.remove",jf(this._id))}function Jf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=vo(e));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var a=r[s],c=a.length,l=i[s]=new Array(c),u,d,f=0;f<c;++f)(u=a[f])&&(d=e.call(u,u.__data__,f,a))&&("__data__"in u&&(d.__data__=u.__data__),l[f]=d,Qt(l[f],t,n,f,l,Ee(u,n)));return new Me(i,this._parents,t,n)}function eh(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ga(e));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var c=r[a],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),h,_=Ee(u,n),m=0,g=f.length;m<g;++m)(h=f[m])&&Qt(h,t,n,m,f,_);i.push(f),s.push(u)}return new Me(i,s,t,n)}var th=Ct.prototype.constructor;function nh(){return new th(this._groups,this._parents)}function rh(e,t){var n,r,o;return function(){var i=at(this,e),s=(this.style.removeProperty(e),at(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function Ta(e){return function(){this.style.removeProperty(e)}}function oh(e,t,n){var r,o=n+"",i;return function(){var s=at(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function ih(e,t,n){var r,o,i;return function(){var s=at(this,e),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(e),at(this,e))),s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a))}}function sh(e,t){var n,r,o,i="style."+t,s="end."+i,a;return function(){var c=Se(this,e),l=c.on,u=c.value[i]==null?a||(a=Ta(t)):void 0;(l!==n||o!==u)&&(r=(n=l).copy()).on(s,o=u),c.on=r}}function ah(e,t,n){var r=(e+="")=="transform"?qc:qa;return t==null?this.styleTween(e,rh(e,r)).on("end.style."+e,Ta(e)):typeof t=="function"?this.styleTween(e,ih(e,r,Eo(this,"style."+e,t))).each(sh(this._id,e)):this.styleTween(e,oh(e,r,t),n).on("end.style."+e,null)}function uh(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ch(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&uh(e,s,n)),r}return i._value=t,i}function lh(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,ch(e,t,n??""))}function dh(e){return function(){this.textContent=e}}function fh(e){return function(){var t=e(this);this.textContent=t??""}}function hh(e){return this.tween("text",typeof e=="function"?fh(Eo(this,"text",e)):dh(e==null?"":e+""))}function ph(e){return function(t){this.textContent=e.call(this,t)}}function gh(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&ph(o)),t}return r._value=e,r}function mh(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,gh(e))}function vh(){for(var e=this._name,t=this._id,n=Pa(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,l=0;l<a;++l)if(c=s[l]){var u=Ee(c,t);Qt(c,e,n,l,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Me(r,this._parents,e,n)}function yh(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var a={value:s},c={value:function(){--o===0&&i()}};n.each(function(){var l=Se(this,r),u=l.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(c)),l.on=t}),o===0&&i()})}var wh=0;function Me(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Pa(){return++wh}var ke=Ct.prototype;Me.prototype={constructor:Me,select:Jf,selectAll:eh,selectChild:ke.selectChild,selectChildren:ke.selectChildren,filter:Yf,merge:Wf,selection:nh,transition:vh,call:ke.call,nodes:ke.nodes,node:ke.node,size:ke.size,empty:ke.empty,each:ke.each,on:Kf,attr:Mf,attrTween:Df,style:ah,styleTween:lh,text:hh,textTween:mh,remove:Qf,tween:xf,delay:$f,duration:Hf,ease:Bf,easeVarying:Uf,end:yh,[Symbol.iterator]:ke[Symbol.iterator]};function _h(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Eh={time:null,delay:0,duration:250,ease:_h};function bh(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function xh(e){var t,n;e instanceof Me?(t=e._id,e=e._name):(t=Pa(),(n=Eh).time=wo(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&Qt(c,e,t,l,s,n||bh(c,t));return new Me(r,this._parents,e,t)}Ct.prototype.interrupt=_f;Ct.prototype.transition=xh;const At=e=>()=>e;function Sh(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Re(e,t,n){this.k=e,this.x=t,this.y=n}Re.prototype={constructor:Re,scale:function(e){return e===1?this:new Re(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Re(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 Ae=new Re(1,0,0);Re.prototype;function un(e){e.stopImmediatePropagation()}function pt(e){e.preventDefault(),e.stopImmediatePropagation()}function Nh(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Ch(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Xo(){return this.__zoom||Ae}function kh(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Rh(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ah(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Da(){var e=Nh,t=Ch,n=Ah,r=kh,o=Rh,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,c=Tc,l=Xt("start","zoom","end"),u,d,f,h=500,_=150,m=0,g=10;function p(w){w.property("__zoom",Xo).on("wheel.zoom",q,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",A).filter(o).on("touchstart.zoom",D).on("touchmove.zoom",$).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}p.transform=function(w,R,N,O){var H=w.selection?w.selection():w;H.property("__zoom",Xo),w!==H?b(w,R,N,O):H.interrupt().each(function(){x(this,arguments).event(O).start().zoom(null,typeof R=="function"?R.apply(this,arguments):R).end()})},p.scaleBy=function(w,R,N,O){p.scaleTo(w,function(){var H=this.__zoom.k,M=typeof R=="function"?R.apply(this,arguments):R;return H*M},N,O)},p.scaleTo=function(w,R,N,O){p.transform(w,function(){var H=t.apply(this,arguments),M=this.__zoom,F=N==null?v(H):typeof N=="function"?N.apply(this,arguments):N,B=M.invert(F),G=typeof R=="function"?R.apply(this,arguments):R;return n(E(y(M,G),F,B),H,s)},N,O)},p.translateBy=function(w,R,N,O){p.transform(w,function(){return n(this.__zoom.translate(typeof R=="function"?R.apply(this,arguments):R,typeof N=="function"?N.apply(this,arguments):N),t.apply(this,arguments),s)},null,O)},p.translateTo=function(w,R,N,O,H){p.transform(w,function(){var M=t.apply(this,arguments),F=this.__zoom,B=O==null?v(M):typeof O=="function"?O.apply(this,arguments):O;return n(Ae.translate(B[0],B[1]).scale(F.k).translate(typeof R=="function"?-R.apply(this,arguments):-R,typeof N=="function"?-N.apply(this,arguments):-N),M,s)},O,H)};function y(w,R){return R=Math.max(i[0],Math.min(i[1],R)),R===w.k?w:new Re(R,w.x,w.y)}function E(w,R,N){var O=R[0]-N[0]*w.k,H=R[1]-N[1]*w.k;return O===w.x&&H===w.y?w:new Re(w.k,O,H)}function v(w){return[(+w[0][0]+ +w[1][0])/2,(+w[0][1]+ +w[1][1])/2]}function b(w,R,N,O){w.on("start.zoom",function(){x(this,arguments).event(O).start()}).on("interrupt.zoom end.zoom",function(){x(this,arguments).event(O).end()}).tween("zoom",function(){var H=this,M=arguments,F=x(H,M).event(O),B=t.apply(H,M),G=N==null?v(B):typeof N=="function"?N.apply(H,M):N,U=Math.max(B[1][0]-B[0][0],B[1][1]-B[0][1]),S=H.__zoom,I=typeof R=="function"?R.apply(H,M):R,z=c(S.invert(G).concat(U/S.k),I.invert(G).concat(U/I.k));return function(V){if(V===1)V=I;else{var Y=z(V),W=U/Y[2];V=new Re(W,G[0]-Y[0]*W,G[1]-Y[1]*W)}F.zoom(null,V)}})}function x(w,R,N){return!N&&w.__zooming||new C(w,R)}function C(w,R){this.that=w,this.args=R,this.active=0,this.sourceEvent=null,this.extent=t.apply(w,R),this.taps=0}C.prototype={event:function(w){return w&&(this.sourceEvent=w),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(w,R){return this.mouse&&w!=="mouse"&&(this.mouse[1]=R.invert(this.mouse[0])),this.touch0&&w!=="touch"&&(this.touch0[1]=R.invert(this.touch0[0])),this.touch1&&w!=="touch"&&(this.touch1[1]=R.invert(this.touch1[0])),this.that.__zoom=R,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(w){var R=ge(this.that).datum();l.call(w,this.that,new Sh(w,{sourceEvent:this.sourceEvent,target:p,transform:this.that.__zoom,dispatch:l}),R)}};function q(w,...R){if(!e.apply(this,arguments))return;var N=x(this,R).event(w),O=this.__zoom,H=Math.max(i[0],Math.min(i[1],O.k*Math.pow(2,r.apply(this,arguments)))),M=ye(w);if(N.wheel)(N.mouse[0][0]!==M[0]||N.mouse[0][1]!==M[1])&&(N.mouse[1]=O.invert(N.mouse[0]=M)),clearTimeout(N.wheel);else{if(O.k===H)return;N.mouse=[M,O.invert(M)],Lt(this),N.start()}pt(w),N.wheel=setTimeout(F,_),N.zoom("mouse",n(E(y(O,H),N.mouse[0],N.mouse[1]),N.extent,s));function F(){N.wheel=null,N.end()}}function k(w,...R){if(f||!e.apply(this,arguments))return;var N=w.currentTarget,O=x(this,R,!0).event(w),H=ge(w.view).on("mousemove.zoom",G,!0).on("mouseup.zoom",U,!0),M=ye(w,N),F=w.clientX,B=w.clientY;Ca(w.view),un(w),O.mouse=[M,this.__zoom.invert(M)],Lt(this),O.start();function G(S){if(pt(S),!O.moved){var I=S.clientX-F,z=S.clientY-B;O.moved=I*I+z*z>m}O.event(S).zoom("mouse",n(E(O.that.__zoom,O.mouse[0]=ye(S,N),O.mouse[1]),O.extent,s))}function U(S){H.on("mousemove.zoom mouseup.zoom",null),ka(S.view,O.moved),pt(S),O.event(S).end()}}function A(w,...R){if(e.apply(this,arguments)){var N=this.__zoom,O=ye(w.changedTouches?w.changedTouches[0]:w,this),H=N.invert(O),M=N.k*(w.shiftKey?.5:2),F=n(E(y(N,M),O,H),t.apply(this,R),s);pt(w),a>0?ge(this).transition().duration(a).call(b,F,O,w):ge(this).call(p.transform,F,O,w)}}function D(w,...R){if(e.apply(this,arguments)){var N=w.touches,O=N.length,H=x(this,R,w.changedTouches.length===O).event(w),M,F,B,G;for(un(w),F=0;F<O;++F)B=N[F],G=ye(B,this),G=[G,this.__zoom.invert(G),B.identifier],H.touch0?!H.touch1&&H.touch0[2]!==G[2]&&(H.touch1=G,H.taps=0):(H.touch0=G,M=!0,H.taps=1+!!u);u&&(u=clearTimeout(u)),M&&(H.taps<2&&(d=G[0],u=setTimeout(function(){u=null},h)),Lt(this),H.start())}}function $(w,...R){if(this.__zooming){var N=x(this,R).event(w),O=w.changedTouches,H=O.length,M,F,B,G;for(pt(w),M=0;M<H;++M)F=O[M],B=ye(F,this),N.touch0&&N.touch0[2]===F.identifier?N.touch0[0]=B:N.touch1&&N.touch1[2]===F.identifier&&(N.touch1[0]=B);if(F=N.that.__zoom,N.touch1){var U=N.touch0[0],S=N.touch0[1],I=N.touch1[0],z=N.touch1[1],V=(V=I[0]-U[0])*V+(V=I[1]-U[1])*V,Y=(Y=z[0]-S[0])*Y+(Y=z[1]-S[1])*Y;F=y(F,Math.sqrt(V/Y)),B=[(U[0]+I[0])/2,(U[1]+I[1])/2],G=[(S[0]+z[0])/2,(S[1]+z[1])/2]}else if(N.touch0)B=N.touch0[0],G=N.touch0[1];else return;N.zoom("touch",n(E(F,B,G),N.extent,s))}}function L(w,...R){if(this.__zooming){var N=x(this,R).event(w),O=w.changedTouches,H=O.length,M,F;for(un(w),f&&clearTimeout(f),f=setTimeout(function(){f=null},h),M=0;M<H;++M)F=O[M],N.touch0&&N.touch0[2]===F.identifier?delete N.touch0:N.touch1&&N.touch1[2]===F.identifier&&delete N.touch1;if(N.touch1&&!N.touch0&&(N.touch0=N.touch1,delete N.touch1),N.touch0)N.touch0[1]=this.__zoom.invert(N.touch0[0]);else if(N.end(),N.taps===2&&(F=ye(F,this),Math.hypot(d[0]-F[0],d[1]-F[1])<g)){var B=ge(this).on("dblclick.zoom");B&&B.apply(this,arguments)}}}return p.wheelDelta=function(w){return arguments.length?(r=typeof w=="function"?w:At(+w),p):r},p.filter=function(w){return arguments.length?(e=typeof w=="function"?w:At(!!w),p):e},p.touchable=function(w){return arguments.length?(o=typeof w=="function"?w:At(!!w),p):o},p.extent=function(w){return arguments.length?(t=typeof w=="function"?w:At([[+w[0][0],+w[0][1]],[+w[1][0],+w[1][1]]]),p):t},p.scaleExtent=function(w){return arguments.length?(i[0]=+w[0],i[1]=+w[1],p):[i[0],i[1]]},p.translateExtent=function(w){return arguments.length?(s[0][0]=+w[0][0],s[1][0]=+w[1][0],s[0][1]=+w[0][1],s[1][1]=+w[1][1],p):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},p.constrain=function(w){return arguments.length?(n=w,p):n},p.duration=function(w){return arguments.length?(a=+w,p):a},p.interpolate=function(w){return arguments.length?(c=w,p):c},p.on=function(){var w=l.on.apply(l,arguments);return w===l?p:w},p.clickDistance=function(w){return arguments.length?(m=(w=+w)*w,p):Math.sqrt(m)},p.tapDistance=function(w){return arguments.length?(g=+w,p):g},p}const Jt=T.createContext(null),Mh=Jt.Provider,Ie={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},za=Ie.error001();function re(e,t){const n=T.useContext(Jt);if(n===null)throw new Error(za);return ha(n,e,t)}const ae=()=>{const e=T.useContext(Jt);if(e===null)throw new Error(za);return T.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},Ih=e=>e.userSelectionActive?"none":"all";function bo({position:e,children:t,className:n,style:r,...o}){const i=re(Ih),s=`${e}`.split("-");return P.createElement("div",{className:ce(["react-flow__panel",n,...s]),style:{...r,pointerEvents:i},...o},t)}function qh({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:P.createElement(bo,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},P.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const Th=({x:e,y:t,label:n,labelStyle:r={},labelShowBg:o=!0,labelBgStyle:i={},labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:c,className:l,...u})=>{const d=T.useRef(null),[f,h]=T.useState({x:0,y:0,width:0,height:0}),_=ce(["react-flow__edge-textwrapper",l]);return T.useEffect(()=>{if(d.current){const m=d.current.getBBox();h({x:m.x,y:m.y,width:m.width,height:m.height})}},[n]),typeof n>"u"||!n?null:P.createElement("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:_,visibility:f.width?"visible":"hidden",...u},o&&P.createElement("rect",{width:f.width+2*s[0],x:-s[0],y:-s[1],height:f.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),P.createElement("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:d,style:r},n),c)};var Ph=T.memo(Th);const xo=e=>({width:e.offsetWidth,height:e.offsetHeight}),ct=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),So=(e={x:0,y:0},t)=>({x:ct(e.x,t[0][0],t[1][0]),y:ct(e.y,t[0][1],t[1][1])}),Ko=(e,t,n)=>e<t?ct(Math.abs(e-t),1,50)/50:e>n?-ct(Math.abs(e-n),1,50)/50:0,La=(e,t)=>{const n=Ko(e.x,35,t.width-35)*20,r=Ko(e.y,35,t.height-35)*20;return[n,r]},$a=e=>e.getRootNode?.()||window?.document,Oa=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),xt=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Fa=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),jo=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Dh=(e,t)=>Fa(Oa(xt(e),xt(t))),to=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},zh=e=>me(e.width)&&me(e.height)&&me(e.x)&&me(e.y),me=e=>!isNaN(e)&&isFinite(e),se=Symbol.for("internals"),Ha=["Enter"," ","Escape"],Lh=(e,t)=>{},$h=e=>"nativeEvent"in e;function no(e){const n=($h(e)?e.nativeEvent:e).composedPath?.()?.[0]||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n?.nodeName)||n?.hasAttribute("contenteditable")||!!n?.closest(".nokey")}const Va=e=>"clientX"in e,De=(e,t)=>{const n=Va(e),r=n?e.clientX:e.touches?.[0].clientX,o=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:o-(t?.top??0)}},Vt=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0,kt=({id:e,path:t,labelX:n,labelY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:d,markerStart:f,interactionWidth:h=20})=>P.createElement(P.Fragment,null,P.createElement("path",{id:e,style:u,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:d,markerStart:f}),h&&P.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),o&&me(n)&&me(r)?P.createElement(Ph,{x:n,y:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l}):null);kt.displayName="BaseEdge";function gt(e,t,n){return n===void 0?n:r=>{const o=t().edges.find(i=>i.id===e);o&&n(r,{...o})}}function Ba({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,s=Math.abs(r-t)/2,a=r<t?r+s:r-s;return[i,a,o,s]}function Ga({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:a}){const c=e*.125+o*.375+s*.375+n*.125,l=t*.125+i*.375+a*.375+r*.125,u=Math.abs(c-e),d=Math.abs(l-t);return[c,l,u,d]}var Ye;(function(e){e.Strict="strict",e.Loose="loose"})(Ye||(Ye={}));var Be;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Be||(Be={}));var St;(function(e){e.Partial="partial",e.Full="full"})(St||(St={}));var Pe;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Pe||(Pe={}));var Bt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Bt||(Bt={}));var X;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(X||(X={}));function Qo({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Ua({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top}){const[s,a]=Qo({pos:n,x1:e,y1:t,x2:r,y2:o}),[c,l]=Qo({pos:i,x1:r,y1:o,x2:e,y2:t}),[u,d,f,h]=Ga({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:c,targetControlY:l});return[`M${e},${t} C${s},${a} ${c},${l} ${r},${o}`,u,d,f,h]}const No=T.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=X.Bottom,targetPosition:i=X.Top,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:_,interactionWidth:m})=>{const[g,p,y]=Ua({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i});return P.createElement(kt,{path:g,labelX:p,labelY:y,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:_,interactionWidth:m})});No.displayName="SimpleBezierEdge";const Jo={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},Oh=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.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},ei=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Fh({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:o,offset:i}){const s=Jo[t],a=Jo[r],c={x:e.x+s.x*i,y:e.y+s.y*i},l={x:n.x+a.x*i,y:n.y+a.y*i},u=Oh({source:c,sourcePosition:t,target:l}),d=u.x!==0?"x":"y",f=u[d];let h=[],_,m;const g={x:0,y:0},p={x:0,y:0},[y,E,v,b]=Ba({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[d]*a[d]===-1){_=o.x??y,m=o.y??E;const C=[{x:_,y:c.y},{x:_,y:l.y}],q=[{x:c.x,y:m},{x:l.x,y:m}];s[d]===f?h=d==="x"?C:q:h=d==="x"?q:C}else{const C=[{x:c.x,y:l.y}],q=[{x:l.x,y:c.y}];if(d==="x"?h=s.x===f?q:C:h=s.y===f?C:q,t===r){const L=Math.abs(e[d]-n[d]);if(L<=i){const w=Math.min(i-1,i-L);s[d]===f?g[d]=(c[d]>e[d]?-1:1)*w:p[d]=(l[d]>n[d]?-1:1)*w}}if(t!==r){const L=d==="x"?"y":"x",w=s[d]===a[L],R=c[L]>l[L],N=c[L]<l[L];(s[d]===1&&(!w&&R||w&&N)||s[d]!==1&&(!w&&N||w&&R))&&(h=d==="x"?C:q)}const k={x:c.x+g.x,y:c.y+g.y},A={x:l.x+p.x,y:l.y+p.y},D=Math.max(Math.abs(k.x-h[0].x),Math.abs(A.x-h[0].x)),$=Math.max(Math.abs(k.y-h[0].y),Math.abs(A.y-h[0].y));D>=$?(_=(k.x+A.x)/2,m=h[0].y):(_=h[0].x,m=(k.y+A.y)/2)}return[[e,{x:c.x+g.x,y:c.y+g.y},...h,{x:l.x+p.x,y:l.y+p.y},n],_,m,v,b]}function Hh(e,t,n,r){const o=Math.min(ei(e,t)/2,ei(t,n)/2,r),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const l=e.x<n.x?-1:1,u=e.y<n.y?1:-1;return`L ${i+o*l},${s}Q ${i},${s} ${i},${s+o*u}`}const a=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${i},${s+o*c}Q ${i},${s} ${i+o*a},${s}`}function ro({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top,borderRadius:s=5,centerX:a,centerY:c,offset:l=20}){const[u,d,f,h,_]=Fh({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:c},offset:l});return[u.reduce((g,p,y)=>{let E="";return y>0&&y<u.length-1?E=Hh(u[y-1],p,u[y+1],s):E=`${y===0?"M":"L"}${p.x} ${p.y}`,g+=E,g},""),d,f,h,_]}const en=T.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,sourcePosition:d=X.Bottom,targetPosition:f=X.Top,markerEnd:h,markerStart:_,pathOptions:m,interactionWidth:g})=>{const[p,y,E]=ro({sourceX:e,sourceY:t,sourcePosition:d,targetX:n,targetY:r,targetPosition:f,borderRadius:m?.borderRadius,offset:m?.offset});return P.createElement(kt,{path:p,labelX:y,labelY:E,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:h,markerStart:_,interactionWidth:g})});en.displayName="SmoothStepEdge";const Co=T.memo(e=>P.createElement(en,{...e,pathOptions:T.useMemo(()=>({borderRadius:0,offset:e.pathOptions?.offset}),[e.pathOptions?.offset])}));Co.displayName="StepEdge";function Vh({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,a]=Ba({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,a]}const ko=T.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:d,markerStart:f,interactionWidth:h})=>{const[_,m,g]=Vh({sourceX:e,sourceY:t,targetX:n,targetY:r});return P.createElement(kt,{path:_,labelX:m,labelY:g,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:d,markerStart:f,interactionWidth:h})});ko.displayName="StraightEdge";function Mt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function ti({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case X.Left:return[t-Mt(t-r,i),n];case X.Right:return[t+Mt(r-t,i),n];case X.Top:return[t,n-Mt(n-o,i)];case X.Bottom:return[t,n+Mt(o-n,i)]}}function Ya({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top,curvature:s=.25}){const[a,c]=ti({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[l,u]=ti({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[d,f,h,_]=Ga({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${a},${c} ${l},${u} ${r},${o}`,d,f,h,_]}const Gt=T.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=X.Bottom,targetPosition:i=X.Top,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:_,pathOptions:m,interactionWidth:g})=>{const[p,y,E]=Ya({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i,curvature:m?.curvature});return P.createElement(kt,{path:p,labelX:y,labelY:E,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:_,interactionWidth:g})});Gt.displayName="BezierEdge";const Ro=T.createContext(null),Bh=Ro.Provider;Ro.Consumer;const Gh=()=>T.useContext(Ro),Uh=e=>"id"in e&&"source"in e&&"target"in e,Yh=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,oo=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`,Wh=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Zh=(e,t)=>{if(!e.source||!e.target)return t;let n;return Uh(e)?n={...e}:n={...e,id:Yh(e)},Wh(n,t)?t:t.concat(n)},io=({x:e,y:t},[n,r,o],i,[s,a])=>{const c={x:(e-n)/o,y:(t-r)/o};return i?{x:s*Math.round(c.x/s),y:a*Math.round(c.y/a)}:c},Wa=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),Ge=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],r=(e.height??0)*t[1],o={x:e.position.x-n,y:e.position.y-r};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-r}:o}},tn=(e,t=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const{x:i,y:s}=Ge(o,t).positionAbsolute;return Oa(r,xt({x:i,y:s,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Fa(n)},Za=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1,a=[0,0])=>{const c={x:(t.x-n)/o,y:(t.y-r)/o,width:t.width/o,height:t.height/o},l=[];return e.forEach(u=>{const{width:d,height:f,selectable:h=!0,hidden:_=!1}=u;if(s&&!h||_)return!1;const{positionAbsolute:m}=Ge(u,a),g={x:m.x,y:m.y,width:d||0,height:f||0},p=to(c,g),y=typeof d>"u"||typeof f>"u"||d===null||f===null,E=i&&p>0,v=(d||0)*(f||0);(y||E||p>=v||u.dragging)&&l.push(u)}),l},Xa=(e,t)=>{const n=e.map(r=>r.id);return t.filter(r=>n.includes(r.source)||n.includes(r.target))},Ka=(e,t,n,r,o,i=.1)=>{const s=t/(e.width*(1+i)),a=n/(e.height*(1+i)),c=Math.min(s,a),l=ct(c,r,o),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,h=n/2-d*l;return{x:f,y:h,zoom:l}},Ve=(e,t=0)=>e.transition().duration(t);function ni(e,t,n,r){return(t[n]||[]).reduce((o,i)=>(`${e.id}-${i.id}-${n}`!==r&&o.push({id:i.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+i.x+i.width/2,y:(e.positionAbsolute?.y??0)+i.y+i.height/2}),o),[])}function Xh(e,t,n,r,o,i){const{x:s,y:a}=De(e),l=t.elementsFromPoint(s,a).find(_=>_.classList.contains("react-flow__handle"));if(l){const _=l.getAttribute("data-nodeid");if(_){const m=Ao(void 0,l),g=l.getAttribute("data-handleid"),p=i({nodeId:_,id:g,type:m});if(p){const y=o.find(E=>E.nodeId===_&&E.type===m&&E.id===g);return{handle:{id:g,type:m,nodeId:_,x:y?.x||n.x,y:y?.y||n.y},validHandleResult:p}}}}let u=[],d=1/0;if(o.forEach(_=>{const m=Math.sqrt((_.x-n.x)**2+(_.y-n.y)**2);if(m<=r){const g=i(_);m<=d&&(m<d?u=[{handle:_,validHandleResult:g}]:m===d&&u.push({handle:_,validHandleResult:g}),d=m)}}),!u.length)return{handle:null,validHandleResult:ja()};if(u.length===1)return u[0];const f=u.some(({validHandleResult:_})=>_.isValid),h=u.some(({handle:_})=>_.type==="target");return u.find(({handle:_,validHandleResult:m})=>h?_.type==="target":f?m.isValid:!0)||u[0]}const Kh={source:null,target:null,sourceHandle:null,targetHandle:null},ja=()=>({handleDomNode:null,isValid:!1,connection:Kh,endHandle:null});function Qa(e,t,n,r,o,i,s){const a=o==="target",c=s.querySelector(`.react-flow__handle[data-id="${e?.nodeId}-${e?.id}-${e?.type}"]`),l={...ja(),handleDomNode:c};if(c){const u=Ao(void 0,c),d=c.getAttribute("data-nodeid"),f=c.getAttribute("data-handleid"),h=c.classList.contains("connectable"),_=c.classList.contains("connectableend"),m={source:a?d:n,sourceHandle:a?f:r,target:a?n:d,targetHandle:a?r:f};l.connection=m,h&&_&&(t===Ye.Strict?a&&u==="source"||!a&&u==="target":d!==n||f!==r)&&(l.endHandle={nodeId:d,handleId:f,type:u},l.isValid=i(m))}return l}function jh({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce((o,i)=>{if(i[se]){const{handleBounds:s}=i[se];let a=[],c=[];s&&(a=ni(i,s,"source",`${t}-${n}-${r}`),c=ni(i,s,"target",`${t}-${n}-${r}`)),o.push(...a,...c)}return o},[])}function Ao(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function cn(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Qh(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function Ja({event:e,handleId:t,nodeId:n,onConnect:r,isTarget:o,getState:i,setState:s,isValidConnection:a,edgeUpdaterType:c,onReconnectEnd:l}){const u=$a(e.target),{connectionMode:d,domNode:f,autoPanOnConnect:h,connectionRadius:_,onConnectStart:m,panBy:g,getNodes:p,cancelConnection:y}=i();let E=0,v;const{x:b,y:x}=De(e),C=u?.elementFromPoint(b,x),q=Ao(c,C),k=f?.getBoundingClientRect();if(!k||!q)return;let A,D=De(e,k),$=!1,L=null,w=!1,R=null;const N=jh({nodes:p(),nodeId:n,handleId:t,handleType:q}),O=()=>{if(!h)return;const[F,B]=La(D,k);g({x:F,y:B}),E=requestAnimationFrame(O)};s({connectionPosition:D,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:q,connectionStartHandle:{nodeId:n,handleId:t,type:q},connectionEndHandle:null}),m?.(e,{nodeId:n,handleId:t,handleType:q});function H(F){const{transform:B}=i();D=De(F,k);const{handle:G,validHandleResult:U}=Xh(F,u,io(D,B,!1,[1,1]),_,N,S=>Qa(S,d,n,t,o?"target":"source",a,u));if(v=G,$||(O(),$=!0),R=U.handleDomNode,L=U.connection,w=U.isValid,s({connectionPosition:v&&w?Wa({x:v.x,y:v.y},B):D,connectionStatus:Qh(!!v,w),connectionEndHandle:U.endHandle}),!v&&!w&&!R)return cn(A);L.source!==L.target&&R&&(cn(A),A=R,R.classList.add("connecting","react-flow__handle-connecting"),R.classList.toggle("valid",w),R.classList.toggle("react-flow__handle-valid",w))}function M(F){(v||R)&&L&&w&&r?.(L),i().onConnectEnd?.(F),c&&l?.(F),cn(A),y(),cancelAnimationFrame(E),$=!1,w=!1,L=null,R=null,u.removeEventListener("mousemove",H),u.removeEventListener("mouseup",M),u.removeEventListener("touchmove",H),u.removeEventListener("touchend",M)}u.addEventListener("mousemove",H),u.addEventListener("mouseup",M),u.addEventListener("touchmove",H),u.addEventListener("touchend",M)}const ri=()=>!0,Jh=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),ep=(e,t,n)=>r=>{const{connectionStartHandle:o,connectionEndHandle:i,connectionClickStartHandle:s}=r;return{connecting:o?.nodeId===e&&o?.handleId===t&&o?.type===n||i?.nodeId===e&&i?.handleId===t&&i?.type===n,clickConnecting:s?.nodeId===e&&s?.handleId===t&&s?.type===n}},eu=T.forwardRef(({type:e="source",position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},h)=>{const _=s||null,m=e==="target",g=ae(),p=Gh(),{connectOnClick:y,noPanClassName:E}=re(Jh,ue),{connecting:v,clickConnecting:b}=re(ep(p,_,e),ue);p||g.getState().onError?.("010",Ie.error010());const x=k=>{const{defaultEdgeOptions:A,onConnect:D,hasDefaultEdges:$}=g.getState(),L={...A,...k};if($){const{edges:w,setEdges:R}=g.getState();R(Zh(L,w))}D?.(L),a?.(L)},C=k=>{if(!p)return;const A=Va(k);o&&(A&&k.button===0||!A)&&Ja({event:k,handleId:_,nodeId:p,onConnect:x,isTarget:m,getState:g.getState,setState:g.setState,isValidConnection:n||g.getState().isValidConnection||ri}),A?u?.(k):d?.(k)},q=k=>{const{onClickConnectStart:A,onClickConnectEnd:D,connectionClickStartHandle:$,connectionMode:L,isValidConnection:w}=g.getState();if(!p||!$&&!o)return;if(!$){A?.(k,{nodeId:p,handleId:_,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:p,type:e,handleId:_}});return}const R=$a(k.target),N=n||w||ri,{connection:O,isValid:H}=Qa({nodeId:p,id:_,type:e},L,$.nodeId,$.handleId||null,$.type,N,R);H&&x(O),D?.(k),g.setState({connectionClickStartHandle:null})};return P.createElement("div",{"data-handleid":_,"data-nodeid":p,"data-handlepos":t,"data-id":`${p}-${_}-${e}`,className:ce(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",E,l,{source:!m,target:m,connectable:r,connectablestart:o,connectableend:i,connecting:b,connectionindicator:r&&(o&&!v||i&&v)}]),onMouseDown:C,onTouchStart:C,onClick:y?q:void 0,ref:h,...f},c)});eu.displayName="Handle";var Ut=T.memo(eu);const tu=({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom})=>P.createElement(P.Fragment,null,P.createElement(Ut,{type:"target",position:n,isConnectable:t}),e?.label,P.createElement(Ut,{type:"source",position:r,isConnectable:t}));tu.displayName="DefaultNode";var so=T.memo(tu);const nu=({data:e,isConnectable:t,sourcePosition:n=X.Bottom})=>P.createElement(P.Fragment,null,e?.label,P.createElement(Ut,{type:"source",position:n,isConnectable:t}));nu.displayName="InputNode";var ru=T.memo(nu);const ou=({data:e,isConnectable:t,targetPosition:n=X.Top})=>P.createElement(P.Fragment,null,P.createElement(Ut,{type:"target",position:n,isConnectable:t}),e?.label);ou.displayName="OutputNode";var iu=T.memo(ou);const Mo=()=>null;Mo.displayName="GroupNode";const tp=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected).map(t=>({...t}))}),It=e=>e.id;function np(e,t){return ue(e.selectedNodes.map(It),t.selectedNodes.map(It))&&ue(e.selectedEdges.map(It),t.selectedEdges.map(It))}const su=T.memo(({onSelectionChange:e})=>{const t=ae(),{selectedNodes:n,selectedEdges:r}=re(tp,np);return T.useEffect(()=>{const o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChange.forEach(i=>i(o))},[n,r,e]),null});su.displayName="SelectionListener";const rp=e=>!!e.onSelectionChange;function op({onSelectionChange:e}){const t=re(rp);return e||t?P.createElement(su,{onSelectionChange:e}):null}const ip=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 et(e,t){T.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function j(e,t,n){T.useEffect(()=>{typeof t<"u"&&n({[e]:t})},[t])}const sp=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:s,onClickConnectStart:a,onClickConnectEnd:c,nodesDraggable:l,nodesConnectable:u,nodesFocusable:d,edgesFocusable:f,edgesUpdatable:h,elevateNodesOnSelect:_,minZoom:m,maxZoom:g,nodeExtent:p,onNodesChange:y,onEdgesChange:E,elementsSelectable:v,connectionMode:b,snapGrid:x,snapToGrid:C,translateExtent:q,connectOnClick:k,defaultEdgeOptions:A,fitView:D,fitViewOptions:$,onNodesDelete:L,onEdgesDelete:w,onNodeDrag:R,onNodeDragStart:N,onNodeDragStop:O,onSelectionDrag:H,onSelectionDragStart:M,onSelectionDragStop:F,noPanClassName:B,nodeOrigin:G,rfId:U,autoPanOnConnect:S,autoPanOnNodeDrag:I,onError:z,connectionRadius:V,isValidConnection:Y,nodeDragThreshold:W})=>{const{setNodes:K,setEdges:ee,setDefaultNodesAndEdges:ie,setMinZoom:te,setMaxZoom:Q,setTranslateExtent:ne,setNodeExtent:le,reset:J}=re(ip,ue),Z=ae();return T.useEffect(()=>{const fe=r?.map(Ne=>({...Ne,...A}));return ie(n,fe),()=>{J()}},[]),j("defaultEdgeOptions",A,Z.setState),j("connectionMode",b,Z.setState),j("onConnect",o,Z.setState),j("onConnectStart",i,Z.setState),j("onConnectEnd",s,Z.setState),j("onClickConnectStart",a,Z.setState),j("onClickConnectEnd",c,Z.setState),j("nodesDraggable",l,Z.setState),j("nodesConnectable",u,Z.setState),j("nodesFocusable",d,Z.setState),j("edgesFocusable",f,Z.setState),j("edgesUpdatable",h,Z.setState),j("elementsSelectable",v,Z.setState),j("elevateNodesOnSelect",_,Z.setState),j("snapToGrid",C,Z.setState),j("snapGrid",x,Z.setState),j("onNodesChange",y,Z.setState),j("onEdgesChange",E,Z.setState),j("connectOnClick",k,Z.setState),j("fitViewOnInit",D,Z.setState),j("fitViewOnInitOptions",$,Z.setState),j("onNodesDelete",L,Z.setState),j("onEdgesDelete",w,Z.setState),j("onNodeDrag",R,Z.setState),j("onNodeDragStart",N,Z.setState),j("onNodeDragStop",O,Z.setState),j("onSelectionDrag",H,Z.setState),j("onSelectionDragStart",M,Z.setState),j("onSelectionDragStop",F,Z.setState),j("noPanClassName",B,Z.setState),j("nodeOrigin",G,Z.setState),j("rfId",U,Z.setState),j("autoPanOnConnect",S,Z.setState),j("autoPanOnNodeDrag",I,Z.setState),j("onError",z,Z.setState),j("connectionRadius",V,Z.setState),j("isValidConnection",Y,Z.setState),j("nodeDragThreshold",W,Z.setState),et(e,K),et(t,ee),et(m,te),et(g,Q),et(q,ne),et(p,le),null},oi={display:"none"},ap={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},au="react-flow__node-desc",uu="react-flow__edge-desc",up="react-flow__aria-live",cp=e=>e.ariaLiveMessage;function lp({rfId:e}){const t=re(cp);return P.createElement("div",{id:`${up}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ap},t)}function dp({rfId:e,disableKeyboardA11y:t}){return P.createElement(P.Fragment,null,P.createElement("div",{id:`${au}-${e}`,style:oi},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),P.createElement("div",{id:`${uu}-${e}`,style:oi},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&P.createElement(lp,{rfId:e}))}var Nt=(e=null,t={actInsideInputWithModifier:!0})=>{const[n,r]=T.useState(!1),o=T.useRef(!1),i=T.useRef(new Set([])),[s,a]=T.useMemo(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.split("+")),u=l.reduce((d,f)=>d.concat(...f),[]);return[l,u]}return[[],[]]},[e]);return T.useEffect(()=>{const c=typeof document<"u"?document:null,l=t?.target||c;if(e!==null){const u=h=>{if(o.current=h.ctrlKey||h.metaKey||h.shiftKey,(!o.current||o.current&&!t.actInsideInputWithModifier)&&no(h))return!1;const m=si(h.code,a);i.current.add(h[m]),ii(s,i.current,!1)&&(h.preventDefault(),r(!0))},d=h=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&no(h))return!1;const m=si(h.code,a);ii(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[m]),h.key==="Meta"&&i.current.clear(),o.current=!1},f=()=>{i.current.clear(),r(!1)};return l?.addEventListener("keydown",u),l?.addEventListener("keyup",d),window.addEventListener("blur",f),()=>{l?.removeEventListener("keydown",u),l?.removeEventListener("keyup",d),window.removeEventListener("blur",f)}}},[e,r]),n};function ii(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function si(e,t){return t.includes(e)?"code":"key"}function cu(e,t,n,r){const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),s=Ge(i,r);return cu(i,t,{x:(n.x??0)+s.x,y:(n.y??0)+s.y,z:(i[se]?.z??0)>(n.z??0)?i[se]?.z??0:n.z??0},r)}function lu(e,t,n){e.forEach(r=>{const o=r.parentNode||r.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||n?.[r.id]){const{x:i,y:s,z:a}=cu(r,e,{...r.position,z:r[se]?.z??0},t);r.positionAbsolute={x:i,y:s},r[se].z=a,n?.[r.id]&&(r[se].isParent=!0)}})}function ln(e,t,n,r){const o=new Map,i={},s=r?1e3:0;return e.forEach(a=>{const c=(me(a.zIndex)?a.zIndex:0)+(a.selected?s:0),l=t.get(a.id),u={...a,positionAbsolute:{x:a.position.x,y:a.position.y}},d=a.parentNode||a.parentId;d&&(i[d]=!0);const f=l?.type&&l?.type!==a.type;Object.defineProperty(u,se,{enumerable:!1,value:{handleBounds:f?void 0:l?.[se]?.handleBounds,z:c}}),o.set(a.id,u)}),lu(o,n,i),o}function du(e,t={}){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:s,d3Zoom:a,d3Selection:c,fitViewOnInitDone:l,fitViewOnInit:u,nodeOrigin:d}=e(),f=t.initial&&!l&&u;if(a&&c&&(f||!t.initial)){const _=n().filter(g=>{const p=t.includeHiddenNodes?g.width&&g.height:!g.hidden;return t.nodes?.length?p&&t.nodes.some(y=>y.id===g.id):p}),m=_.every(g=>g.width&&g.height);if(_.length>0&&m){const g=tn(_,d),{x:p,y,zoom:E}=Ka(g,r,o,t.minZoom??i,t.maxZoom??s,t.padding??.1),v=Ae.translate(p,y).scale(E);return typeof t.duration=="number"&&t.duration>0?a.transform(Ve(c,t.duration),v):a.transform(c,v),!0}}return!1}function fp(e,t){return e.forEach(n=>{const r=t.get(n.id);r&&t.set(r.id,{...r,[se]:r[se],selected:n.selected})}),new Map(t)}function hp(e,t){return t.map(n=>{const r=e.find(o=>o.id===n.id);return r&&(n.selected=r.selected),n})}function qt({changedNodes:e,changedEdges:t,get:n,set:r}){const{nodeInternals:o,edges:i,onNodesChange:s,onEdgesChange:a,hasDefaultNodes:c,hasDefaultEdges:l}=n();e?.length&&(c&&r({nodeInternals:fp(e,o)}),s?.(e)),t?.length&&(l&&r({edges:hp(t,i)}),a?.(t))}const tt=()=>{},pp={zoomIn:tt,zoomOut:tt,zoomTo:tt,getZoom:()=>1,setViewport:tt,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:tt,fitBounds:tt,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},gp=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),mp=()=>{const e=ae(),{d3Zoom:t,d3Selection:n}=re(gp,ue);return T.useMemo(()=>n&&t?{zoomIn:o=>t.scaleBy(Ve(n,o?.duration),1.2),zoomOut:o=>t.scaleBy(Ve(n,o?.duration),1/1.2),zoomTo:(o,i)=>t.scaleTo(Ve(n,i?.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,i)=>{const[s,a,c]=e.getState().transform,l=Ae.translate(o.x??s,o.y??a).scale(o.zoom??c);t.transform(Ve(n,i?.duration),l)},getViewport:()=>{const[o,i,s]=e.getState().transform;return{x:o,y:i,zoom:s}},fitView:o=>du(e.getState,o),setCenter:(o,i,s)=>{const{width:a,height:c,maxZoom:l}=e.getState(),u=typeof s?.zoom<"u"?s.zoom:l,d=a/2-o*u,f=c/2-i*u,h=Ae.translate(d,f).scale(u);t.transform(Ve(n,s?.duration),h)},fitBounds:(o,i)=>{const{width:s,height:a,minZoom:c,maxZoom:l}=e.getState(),{x:u,y:d,zoom:f}=Ka(o,s,a,c,l,i?.padding??.1),h=Ae.translate(u,d).scale(f);t.transform(Ve(n,i?.duration),h)},project:o=>{const{transform:i,snapToGrid:s,snapGrid:a}=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"),io(o,i,s,a)},screenToFlowPosition:o=>{const{transform:i,snapToGrid:s,snapGrid:a,domNode:c}=e.getState();if(!c)return o;const{x:l,y:u}=c.getBoundingClientRect(),d={x:o.x-l,y:o.y-u};return io(d,i,s,a)},flowToScreenPosition:o=>{const{transform:i,domNode:s}=e.getState();if(!s)return o;const{x:a,y:c}=s.getBoundingClientRect(),l=Wa(o,i);return{x:l.x+a,y:l.y+c}},viewportInitialized:!0}:pp,[t,n])};function Io(){const e=mp(),t=ae(),n=T.useCallback(()=>t.getState().getNodes().map(m=>({...m})),[]),r=T.useCallback(m=>t.getState().nodeInternals.get(m),[]),o=T.useCallback(()=>{const{edges:m=[]}=t.getState();return m.map(g=>({...g}))},[]),i=T.useCallback(m=>{const{edges:g=[]}=t.getState();return g.find(p=>p.id===m)},[]),s=T.useCallback(m=>{const{getNodes:g,setNodes:p,hasDefaultNodes:y,onNodesChange:E}=t.getState(),v=g(),b=typeof m=="function"?m(v):m;if(y)p(b);else if(E){const x=b.length===0?v.map(C=>({type:"remove",id:C.id})):b.map(C=>({item:C,type:"reset"}));E(x)}},[]),a=T.useCallback(m=>{const{edges:g=[],setEdges:p,hasDefaultEdges:y,onEdgesChange:E}=t.getState(),v=typeof m=="function"?m(g):m;if(y)p(v);else if(E){const b=v.length===0?g.map(x=>({type:"remove",id:x.id})):v.map(x=>({item:x,type:"reset"}));E(b)}},[]),c=T.useCallback(m=>{const g=Array.isArray(m)?m:[m],{getNodes:p,setNodes:y,hasDefaultNodes:E,onNodesChange:v}=t.getState();if(E){const x=[...p(),...g];y(x)}else if(v){const b=g.map(x=>({item:x,type:"add"}));v(b)}},[]),l=T.useCallback(m=>{const g=Array.isArray(m)?m:[m],{edges:p=[],setEdges:y,hasDefaultEdges:E,onEdgesChange:v}=t.getState();if(E)y([...p,...g]);else if(v){const b=g.map(x=>({item:x,type:"add"}));v(b)}},[]),u=T.useCallback(()=>{const{getNodes:m,edges:g=[],transform:p}=t.getState(),[y,E,v]=p;return{nodes:m().map(b=>({...b})),edges:g.map(b=>({...b})),viewport:{x:y,y:E,zoom:v}}},[]),d=T.useCallback(({nodes:m,edges:g})=>{const{nodeInternals:p,getNodes:y,edges:E,hasDefaultNodes:v,hasDefaultEdges:b,onNodesDelete:x,onEdgesDelete:C,onNodesChange:q,onEdgesChange:k}=t.getState(),A=(m||[]).map(R=>R.id),D=(g||[]).map(R=>R.id),$=y().reduce((R,N)=>{const O=N.parentNode||N.parentId,H=!A.includes(N.id)&&O&&R.find(F=>F.id===O);return(typeof N.deletable=="boolean"?N.deletable:!0)&&(A.includes(N.id)||H)&&R.push(N),R},[]),L=E.filter(R=>typeof R.deletable=="boolean"?R.deletable:!0),w=L.filter(R=>D.includes(R.id));if($||w){const R=Xa($,L),N=[...w,...R],O=N.reduce((H,M)=>(H.includes(M.id)||H.push(M.id),H),[]);if((b||v)&&(b&&t.setState({edges:E.filter(H=>!O.includes(H.id))}),v&&($.forEach(H=>{p.delete(H.id)}),t.setState({nodeInternals:new Map(p)}))),O.length>0&&(C?.(N),k&&k(O.map(H=>({id:H,type:"remove"})))),$.length>0&&(x?.($),q)){const H=$.map(M=>({id:M.id,type:"remove"}));q(H)}}},[]),f=T.useCallback(m=>{const g=zh(m),p=g?null:t.getState().nodeInternals.get(m.id);return!g&&!p?[null,null,g]:[g?m:jo(p),p,g]},[]),h=T.useCallback((m,g=!0,p)=>{const[y,E,v]=f(m);return y?(p||t.getState().getNodes()).filter(b=>{if(!v&&(b.id===E.id||!b.positionAbsolute))return!1;const x=jo(b),C=to(x,y);return g&&C>0||C>=y.width*y.height}):[]},[]),_=T.useCallback((m,g,p=!0)=>{const[y]=f(m);if(!y)return!1;const E=to(y,g);return p&&E>0||E>=y.width*y.height},[]);return T.useMemo(()=>({...e,getNodes:n,getNode:r,getEdges:o,getEdge:i,setNodes:s,setEdges:a,addNodes:c,addEdges:l,toObject:u,deleteElements:d,getIntersectingNodes:h,isNodeIntersecting:_}),[e,n,r,o,i,s,a,c,l,u,d,h,_])}const vp={actInsideInputWithModifier:!1};var yp=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=ae(),{deleteElements:r}=Io(),o=Nt(e,vp),i=Nt(t);T.useEffect(()=>{if(o){const{edges:s,getNodes:a}=n.getState(),c=a().filter(u=>u.selected),l=s.filter(u=>u.selected);r({nodes:c,edges:l}),n.setState({nodesSelectionActive:!1})}},[o]),T.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])};function wp(e){const t=ae();T.useEffect(()=>{let n;const r=()=>{if(!e.current)return;const o=xo(e.current);(o.height===0||o.width===0)&&t.getState().onError?.("004",Ie.error004()),t.setState({width:o.width||500,height:o.height||500})};return r(),window.addEventListener("resize",r),e.current&&(n=new ResizeObserver(()=>r()),n.observe(e.current)),()=>{window.removeEventListener("resize",r),n&&e.current&&n.unobserve(e.current)}},[])}const qo={position:"absolute",width:"100%",height:"100%",top:0,left:0},_p=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,Tt=e=>({x:e.x,y:e.y,zoom:e.k}),nt=(e,t)=>e.target.closest(`.${t}`),ai=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ui=e=>{const t=e.ctrlKey&&Vt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},Ep=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),bp=({onMove:e,onMoveStart:t,onMoveEnd:n,onPaneContextMenu:r,zoomOnScroll:o=!0,zoomOnPinch:i=!0,panOnScroll:s=!1,panOnScrollSpeed:a=.5,panOnScrollMode:c=Be.Free,zoomOnDoubleClick:l=!0,elementsSelectable:u,panOnDrag:d=!0,defaultViewport:f,translateExtent:h,minZoom:_,maxZoom:m,zoomActivationKeyCode:g,preventScrolling:p=!0,children:y,noWheelClassName:E,noPanClassName:v})=>{const b=T.useRef(),x=ae(),C=T.useRef(!1),q=T.useRef(!1),k=T.useRef(null),A=T.useRef({x:0,y:0,zoom:0}),{d3Zoom:D,d3Selection:$,d3ZoomHandler:L,userSelectionActive:w}=re(Ep,ue),R=Nt(g),N=T.useRef(0),O=T.useRef(!1),H=T.useRef();return wp(k),T.useEffect(()=>{if(k.current){const M=k.current.getBoundingClientRect(),F=Da().scaleExtent([_,m]).translateExtent(h),B=ge(k.current).call(F),G=Ae.translate(f.x,f.y).scale(ct(f.zoom,_,m)),U=[[0,0],[M.width,M.height]],S=F.constrain()(G,U,h);F.transform(B,S),F.wheelDelta(ui),x.setState({d3Zoom:F,d3Selection:B,d3ZoomHandler:B.on("wheel.zoom"),transform:[S.x,S.y,S.k],domNode:k.current.closest(".react-flow")})}},[]),T.useEffect(()=>{$&&D&&(s&&!R&&!w?$.on("wheel.zoom",M=>{if(nt(M,E))return!1;M.preventDefault(),M.stopImmediatePropagation();const F=$.property("__zoom").k||1;if(M.ctrlKey&&i){const Y=ye(M),W=ui(M),K=F*Math.pow(2,W);D.scaleTo($,K,Y,M);return}const B=M.deltaMode===1?20:1;let G=c===Be.Vertical?0:M.deltaX*B,U=c===Be.Horizontal?0:M.deltaY*B;!Vt()&&M.shiftKey&&c!==Be.Vertical&&(G=M.deltaY*B,U=0),D.translateBy($,-(G/F)*a,-(U/F)*a,{internal:!0});const S=Tt($.property("__zoom")),{onViewportChangeStart:I,onViewportChange:z,onViewportChangeEnd:V}=x.getState();clearTimeout(H.current),O.current||(O.current=!0,t?.(M,S),I?.(S)),O.current&&(e?.(M,S),z?.(S),H.current=setTimeout(()=>{n?.(M,S),V?.(S),O.current=!1},150))},{passive:!1}):typeof L<"u"&&$.on("wheel.zoom",function(M,F){if(!p&&M.type==="wheel"&&!M.ctrlKey||nt(M,E))return null;M.preventDefault(),L.call(this,M,F)},{passive:!1}))},[w,s,c,$,D,L,R,i,p,E,t,e,n]),T.useEffect(()=>{D&&D.on("start",M=>{if(!M.sourceEvent||M.sourceEvent.internal)return null;N.current=M.sourceEvent?.button;const{onViewportChangeStart:F}=x.getState(),B=Tt(M.transform);C.current=!0,A.current=B,M.sourceEvent?.type==="mousedown"&&x.setState({paneDragging:!0}),F?.(B),t?.(M.sourceEvent,B)})},[D,t]),T.useEffect(()=>{D&&(w&&!C.current?D.on("zoom",null):w||D.on("zoom",M=>{const{onViewportChange:F}=x.getState();if(x.setState({transform:[M.transform.x,M.transform.y,M.transform.k]}),q.current=!!(r&&ai(d,N.current??0)),(e||F)&&!M.sourceEvent?.internal){const B=Tt(M.transform);F?.(B),e?.(M.sourceEvent,B)}}))},[w,D,e,d,r]),T.useEffect(()=>{D&&D.on("end",M=>{if(!M.sourceEvent||M.sourceEvent.internal)return null;const{onViewportChangeEnd:F}=x.getState();if(C.current=!1,x.setState({paneDragging:!1}),r&&ai(d,N.current??0)&&!q.current&&r(M.sourceEvent),q.current=!1,(n||F)&&_p(A.current,M.transform)){const B=Tt(M.transform);A.current=B,clearTimeout(b.current),b.current=setTimeout(()=>{F?.(B),n?.(M.sourceEvent,B)},s?150:0)}})},[D,s,d,n,r]),T.useEffect(()=>{D&&D.filter(M=>{const F=R||o,B=i&&M.ctrlKey;if((d===!0||Array.isArray(d)&&d.includes(1))&&M.button===1&&M.type==="mousedown"&&(nt(M,"react-flow__node")||nt(M,"react-flow__edge")))return!0;if(!d&&!F&&!s&&!l&&!i||w||!l&&M.type==="dblclick"||nt(M,E)&&M.type==="wheel"||nt(M,v)&&(M.type!=="wheel"||s&&M.type==="wheel"&&!R)||!i&&M.ctrlKey&&M.type==="wheel"||!F&&!s&&!B&&M.type==="wheel"||!d&&(M.type==="mousedown"||M.type==="touchstart")||Array.isArray(d)&&!d.includes(M.button)&&M.type==="mousedown")return!1;const G=Array.isArray(d)&&d.includes(M.button)||!M.button||M.button<=1;return(!M.ctrlKey||M.type==="wheel")&&G})},[w,D,o,i,s,l,d,u,R]),P.createElement("div",{className:"react-flow__renderer",ref:k,style:qo},y)},xp=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Sp(){const{userSelectionActive:e,userSelectionRect:t}=re(xp,ue);return e&&t?P.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function ci(e,t){const n=t.parentNode||t.parentId,r=e.find(o=>o.id===n);if(r){const o=t.position.x+t.width-r.width,i=t.position.y+t.height-r.height;if(o>0||i>0||t.position.x<0||t.position.y<0){if(r.style={...r.style},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,o>0&&(r.style.width+=o),i>0&&(r.style.height+=i),t.position.x<0){const s=Math.abs(t.position.x);r.position.x=r.position.x-s,r.style.width+=s,t.position.x=0}if(t.position.y<0){const s=Math.abs(t.position.y);r.position.y=r.position.y-s,r.style.height+=s,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function fu(e,t){if(e.some(r=>r.type==="reset"))return e.filter(r=>r.type==="reset").map(r=>r.item);const n=e.filter(r=>r.type==="add").map(r=>r.item);return t.reduce((r,o)=>{const i=e.filter(a=>a.id===o.id);if(i.length===0)return r.push(o),r;const s={...o};for(const a of i)if(a)switch(a.type){case"select":{s.selected=a.selected;break}case"position":{typeof a.position<"u"&&(s.position=a.position),typeof a.positionAbsolute<"u"&&(s.positionAbsolute=a.positionAbsolute),typeof a.dragging<"u"&&(s.dragging=a.dragging),s.expandParent&&ci(r,s);break}case"dimensions":{typeof a.dimensions<"u"&&(s.width=a.dimensions.width,s.height=a.dimensions.height),typeof a.updateStyle<"u"&&(s.style={...s.style||{},...a.dimensions}),typeof a.resizing=="boolean"&&(s.resizing=a.resizing),s.expandParent&&ci(r,s);break}case"remove":return r}return r.push(s),r},n)}function hu(e,t){return fu(e,t)}function Np(e,t){return fu(e,t)}const Te=(e,t)=>({id:e,type:"select",selected:t});function ot(e,t){return e.reduce((n,r)=>{const o=t.includes(r.id);return!r.selected&&o?(r.selected=!0,n.push(Te(r.id,!0))):r.selected&&!o&&(r.selected=!1,n.push(Te(r.id,!1))),n},[])}const dn=(e,t)=>n=>{n.target===t.current&&e?.(n)},Cp=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),pu=T.memo(({isSelecting:e,selectionMode:t=St.Full,panOnDrag:n,onSelectionStart:r,onSelectionEnd:o,onPaneClick:i,onPaneContextMenu:s,onPaneScroll:a,onPaneMouseEnter:c,onPaneMouseMove:l,onPaneMouseLeave:u,children:d})=>{const f=T.useRef(null),h=ae(),_=T.useRef(0),m=T.useRef(0),g=T.useRef(),{userSelectionActive:p,elementsSelectable:y,dragging:E}=re(Cp,ue),v=()=>{h.setState({userSelectionActive:!1,userSelectionRect:null}),_.current=0,m.current=0},b=L=>{i?.(L),h.getState().resetSelectedElements(),h.setState({nodesSelectionActive:!1})},x=L=>{if(Array.isArray(n)&&n?.includes(2)){L.preventDefault();return}s?.(L)},C=a?L=>a(L):void 0,q=L=>{const{resetSelectedElements:w,domNode:R}=h.getState();if(g.current=R?.getBoundingClientRect(),!y||!e||L.button!==0||L.target!==f.current||!g.current)return;const{x:N,y:O}=De(L,g.current);w(),h.setState({userSelectionRect:{width:0,height:0,startX:N,startY:O,x:N,y:O}}),r?.(L)},k=L=>{const{userSelectionRect:w,nodeInternals:R,edges:N,transform:O,onNodesChange:H,onEdgesChange:M,nodeOrigin:F,getNodes:B}=h.getState();if(!e||!g.current||!w)return;h.setState({userSelectionActive:!0,nodesSelectionActive:!1});const G=De(L,g.current),U=w.startX??0,S=w.startY??0,I={...w,x:G.x<U?G.x:U,y:G.y<S?G.y:S,width:Math.abs(G.x-U),height:Math.abs(G.y-S)},z=B(),V=Za(R,I,O,t===St.Partial,!0,F),Y=Xa(V,N).map(K=>K.id),W=V.map(K=>K.id);if(_.current!==W.length){_.current=W.length;const K=ot(z,W);K.length&&H?.(K)}if(m.current!==Y.length){m.current=Y.length;const K=ot(N,Y);K.length&&M?.(K)}h.setState({userSelectionRect:I})},A=L=>{if(L.button!==0)return;const{userSelectionRect:w}=h.getState();!p&&w&&L.target===f.current&&b?.(L),h.setState({nodesSelectionActive:_.current>0}),v(),o?.(L)},D=L=>{p&&(h.setState({nodesSelectionActive:_.current>0}),o?.(L)),v()},$=y&&(e||p);return P.createElement("div",{className:ce(["react-flow__pane",{dragging:E,selection:e}]),onClick:$?void 0:dn(b,f),onContextMenu:dn(x,f),onWheel:dn(C,f),onMouseEnter:$?void 0:c,onMouseDown:$?q:void 0,onMouseMove:$?k:l,onMouseUp:$?A:void 0,onMouseLeave:$?D:u,ref:f,style:qo},d,P.createElement(Sp,null))});pu.displayName="Pane";function gu(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return r?r.selected?!0:gu(r,t):!1}function li(e,t,n){let r=e;do{if(r?.matches(t))return!0;if(r===n.current)return!1;r=r.parentElement}while(r);return!1}function kp(e,t,n,r){return Array.from(e.values()).filter(o=>(o.selected||o.id===r)&&(!o.parentNode||o.parentId||!gu(o,e))&&(o.draggable||t&&typeof o.draggable>"u")).map(o=>({id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:n.x-(o.positionAbsolute?.x??0),y:n.y-(o.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}))}function Rp(e,t){return!t||t==="parent"?t:[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]}function mu(e,t,n,r,o=[0,0],i){const s=Rp(e,e.extent||r);let a=s;const c=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(c&&e.width&&e.height){const d=n.get(c),{x:f,y:h}=Ge(d,o).positionAbsolute;a=d&&me(f)&&me(h)&&me(d.width)&&me(d.height)?[[f+e.width*o[0],h+e.height*o[1]],[f+d.width-e.width+e.width*o[0],h+d.height-e.height+e.height*o[1]]]:a}else i?.("005",Ie.error005()),a=s;else if(e.extent&&c&&e.extent!=="parent"){const d=n.get(c),{x:f,y:h}=Ge(d,o).positionAbsolute;a=[[e.extent[0][0]+f,e.extent[0][1]+h],[e.extent[1][0]+f,e.extent[1][1]+h]]}let l={x:0,y:0};if(c){const d=n.get(c);l=Ge(d,o).positionAbsolute}const u=a&&a!=="parent"?So(t,a):t;return{position:{x:u.x-l.x,y:u.y-l.y},positionAbsolute:u}}function fn({nodeId:e,dragItems:t,nodeInternals:n}){const r=t.map(o=>({...n.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?r.find(o=>o.id===e):r[0],r]}const di=(e,t,n,r)=>{const o=t.querySelectorAll(e);if(!o||!o.length)return null;const i=Array.from(o),s=t.getBoundingClientRect(),a={x:s.width*r[0],y:s.height*r[1]};return i.map(c=>{const l=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),position:c.getAttribute("data-handlepos"),x:(l.left-s.left-a.x)/n,y:(l.top-s.top-a.y)/n,...xo(c)}})};function mt(e,t,n){return n===void 0?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function ao({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeInternals:a,onError:c}=t.getState(),l=a.get(e);if(!l){c?.("012",Ie.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&s)&&(i({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):o([e])}function Ap(){const e=ae();return T.useCallback(({sourceEvent:n})=>{const{transform:r,snapGrid:o,snapToGrid:i}=e.getState(),s=n.touches?n.touches[0].clientX:n.clientX,a=n.touches?n.touches[0].clientY:n.clientY,c={x:(s-r[0])/r[2],y:(a-r[1])/r[2]};return{xSnapped:i?o[0]*Math.round(c.x/o[0]):c.x,ySnapped:i?o[1]*Math.round(c.y/o[1]):c.y,...c}},[])}function hn(e){return(t,n,r)=>e?.(t,r)}function vu({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,selectNodesOnDrag:s}){const a=ae(),[c,l]=T.useState(!1),u=T.useRef([]),d=T.useRef({x:null,y:null}),f=T.useRef(0),h=T.useRef(null),_=T.useRef({x:0,y:0}),m=T.useRef(null),g=T.useRef(!1),p=T.useRef(!1),y=T.useRef(!1),E=Ap();return T.useEffect(()=>{if(e?.current){const v=ge(e.current),b=({x:q,y:k})=>{const{nodeInternals:A,onNodeDrag:D,onSelectionDrag:$,updateNodePositions:L,nodeExtent:w,snapGrid:R,snapToGrid:N,nodeOrigin:O,onError:H}=a.getState();d.current={x:q,y:k};let M=!1,F={x:0,y:0,x2:0,y2:0};if(u.current.length>1&&w){const G=tn(u.current,O);F=xt(G)}if(u.current=u.current.map(G=>{const U={x:q-G.distance.x,y:k-G.distance.y};N&&(U.x=R[0]*Math.round(U.x/R[0]),U.y=R[1]*Math.round(U.y/R[1]));const S=[[w[0][0],w[0][1]],[w[1][0],w[1][1]]];u.current.length>1&&w&&!G.extent&&(S[0][0]=G.positionAbsolute.x-F.x+w[0][0],S[1][0]=G.positionAbsolute.x+(G.width??0)-F.x2+w[1][0],S[0][1]=G.positionAbsolute.y-F.y+w[0][1],S[1][1]=G.positionAbsolute.y+(G.height??0)-F.y2+w[1][1]);const I=mu(G,U,A,S,O,H);return M=M||G.position.x!==I.position.x||G.position.y!==I.position.y,G.position=I.position,G.positionAbsolute=I.positionAbsolute,G}),!M)return;L(u.current,!0,!0),l(!0);const B=o?D:hn($);if(B&&m.current){const[G,U]=fn({nodeId:o,dragItems:u.current,nodeInternals:A});B(m.current,G,U)}},x=()=>{if(!h.current)return;const[q,k]=La(_.current,h.current);if(q!==0||k!==0){const{transform:A,panBy:D}=a.getState();d.current.x=(d.current.x??0)-q/A[2],d.current.y=(d.current.y??0)-k/A[2],D({x:q,y:k})&&b(d.current)}f.current=requestAnimationFrame(x)},C=q=>{const{nodeInternals:k,multiSelectionActive:A,nodesDraggable:D,unselectNodesAndEdges:$,onNodeDragStart:L,onSelectionDragStart:w}=a.getState();p.current=!0;const R=o?L:hn(w);(!s||!i)&&!A&&o&&(k.get(o)?.selected||$()),o&&i&&s&&ao({id:o,store:a,nodeRef:e});const N=E(q);if(d.current=N,u.current=kp(k,D,N,o),R&&u.current){const[O,H]=fn({nodeId:o,dragItems:u.current,nodeInternals:k});R(q.sourceEvent,O,H)}};if(t)v.on(".drag",null);else{const q=ff().on("start",k=>{const{domNode:A,nodeDragThreshold:D}=a.getState();D===0&&C(k),y.current=!1;const $=E(k);d.current=$,h.current=A?.getBoundingClientRect()||null,_.current=De(k.sourceEvent,h.current)}).on("drag",k=>{const A=E(k),{autoPanOnNodeDrag:D,nodeDragThreshold:$}=a.getState();if(k.sourceEvent.type==="touchmove"&&k.sourceEvent.touches.length>1&&(y.current=!0),!y.current){if(!g.current&&p.current&&D&&(g.current=!0,x()),!p.current){const L=A.xSnapped-(d?.current?.x??0),w=A.ySnapped-(d?.current?.y??0);Math.sqrt(L*L+w*w)>$&&C(k)}(d.current.x!==A.xSnapped||d.current.y!==A.ySnapped)&&u.current&&p.current&&(m.current=k.sourceEvent,_.current=De(k.sourceEvent,h.current),b(A))}}).on("end",k=>{if(!(!p.current||y.current)&&(l(!1),g.current=!1,p.current=!1,cancelAnimationFrame(f.current),u.current)){const{updateNodePositions:A,nodeInternals:D,onNodeDragStop:$,onSelectionDragStop:L}=a.getState(),w=o?$:hn(L);if(A(u.current,!1,!1),w){const[R,N]=fn({nodeId:o,dragItems:u.current,nodeInternals:D});w(k.sourceEvent,R,N)}}}).filter(k=>{const A=k.target;return!k.button&&(!n||!li(A,`.${n}`,e))&&(!r||li(A,r,e))});return v.call(q),()=>{v.on(".drag",null)}}}},[e,t,n,r,i,a,o,s,E]),c}function yu(){const e=ae();return T.useCallback(n=>{const{nodeInternals:r,nodeExtent:o,updateNodePositions:i,getNodes:s,snapToGrid:a,snapGrid:c,onError:l,nodesDraggable:u}=e.getState(),d=s().filter(y=>y.selected&&(y.draggable||u&&typeof y.draggable>"u")),f=a?c[0]:5,h=a?c[1]:5,_=n.isShiftPressed?4:1,m=n.x*f*_,g=n.y*h*_,p=d.map(y=>{if(y.positionAbsolute){const E={x:y.positionAbsolute.x+m,y:y.positionAbsolute.y+g};a&&(E.x=c[0]*Math.round(E.x/c[0]),E.y=c[1]*Math.round(E.y/c[1]));const{positionAbsolute:v,position:b}=mu(y,E,r,o,void 0,l);y.position=b,y.positionAbsolute=v}return y});i(p,!0,!1)},[])}const st={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var vt=e=>{const t=({id:n,type:r,data:o,xPos:i,yPos:s,xPosOrigin:a,yPosOrigin:c,selected:l,onClick:u,onMouseEnter:d,onMouseMove:f,onMouseLeave:h,onContextMenu:_,onDoubleClick:m,style:g,className:p,isDraggable:y,isSelectable:E,isConnectable:v,isFocusable:b,selectNodesOnDrag:x,sourcePosition:C,targetPosition:q,hidden:k,resizeObserver:A,dragHandle:D,zIndex:$,isParent:L,noDragClassName:w,noPanClassName:R,initialized:N,disableKeyboardA11y:O,ariaLabel:H,rfId:M,hasHandleBounds:F})=>{const B=ae(),G=T.useRef(null),U=T.useRef(null),S=T.useRef(C),I=T.useRef(q),z=T.useRef(r),V=E||y||u||d||f||h,Y=yu(),W=mt(n,B.getState,d),K=mt(n,B.getState,f),ee=mt(n,B.getState,h),ie=mt(n,B.getState,_),te=mt(n,B.getState,m),Q=J=>{const{nodeDragThreshold:Z}=B.getState();if(E&&(!x||!y||Z>0)&&ao({id:n,store:B,nodeRef:G}),u){const fe=B.getState().nodeInternals.get(n);fe&&u(J,{...fe})}},ne=J=>{if(!no(J)&&!O)if(Ha.includes(J.key)&&E){const Z=J.key==="Escape";ao({id:n,store:B,unselect:Z,nodeRef:G})}else y&&l&&Object.prototype.hasOwnProperty.call(st,J.key)&&(B.setState({ariaLiveMessage:`Moved selected node ${J.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~s}`}),Y({x:st[J.key].x,y:st[J.key].y,isShiftPressed:J.shiftKey}))};T.useEffect(()=>()=>{U.current&&(A?.unobserve(U.current),U.current=null)},[]),T.useEffect(()=>{if(G.current&&!k){const J=G.current;(!N||!F||U.current!==J)&&(U.current&&A?.unobserve(U.current),A?.observe(J),U.current=J)}},[k,N,F]),T.useEffect(()=>{const J=z.current!==r,Z=S.current!==C,fe=I.current!==q;G.current&&(J||Z||fe)&&(J&&(z.current=r),Z&&(S.current=C),fe&&(I.current=q),B.getState().updateNodeDimensions([{id:n,nodeElement:G.current,forceUpdate:!0}]))},[n,r,C,q]);const le=vu({nodeRef:G,disabled:k||!y,noDragClassName:w,handleSelector:D,nodeId:n,isSelectable:E,selectNodesOnDrag:x});return k?null:P.createElement("div",{className:ce(["react-flow__node",`react-flow__node-${r}`,{[R]:y},p,{selected:l,selectable:E,parent:L,dragging:le}]),ref:G,style:{zIndex:$,transform:`translate(${a}px,${c}px)`,pointerEvents:V?"all":"none",visibility:N?"visible":"hidden",...g},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:W,onMouseMove:K,onMouseLeave:ee,onContextMenu:ie,onClick:Q,onDoubleClick:te,onKeyDown:b?ne:void 0,tabIndex:b?0:void 0,role:b?"button":void 0,"aria-describedby":O?void 0:`${au}-${M}`,"aria-label":H},P.createElement(Bh,{value:n},P.createElement(e,{id:n,data:o,type:r,xPos:i,yPos:s,selected:l,isConnectable:v,sourcePosition:C,targetPosition:q,dragging:le,dragHandle:D,zIndex:$})))};return t.displayName="NodeWrapper",T.memo(t)};const Mp=e=>{const t=e.getNodes().filter(n=>n.selected);return{...tn(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function Ip({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ae(),{width:o,height:i,x:s,y:a,transformString:c,userSelectionActive:l}=re(Mp,ue),u=yu(),d=T.useRef(null);if(T.useEffect(()=>{n||d.current?.focus({preventScroll:!0})},[n]),vu({nodeRef:d}),l||!o||!i)return null;const f=e?_=>{const m=r.getState().getNodes().filter(g=>g.selected);e(_,m)}:void 0,h=_=>{Object.prototype.hasOwnProperty.call(st,_.key)&&u({x:st[_.key].x,y:st[_.key].y,isShiftPressed:_.shiftKey})};return P.createElement("div",{className:ce(["react-flow__nodesselection","react-flow__container",t]),style:{transform:c}},P.createElement("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:o,height:i,top:a,left:s}}))}var qp=T.memo(Ip);const Tp=e=>e.nodesSelectionActive,wu=({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,deleteKeyCode:a,onMove:c,onMoveStart:l,onMoveEnd:u,selectionKeyCode:d,selectionOnDrag:f,selectionMode:h,onSelectionStart:_,onSelectionEnd:m,multiSelectionKeyCode:g,panActivationKeyCode:p,zoomActivationKeyCode:y,elementsSelectable:E,zoomOnScroll:v,zoomOnPinch:b,panOnScroll:x,panOnScrollSpeed:C,panOnScrollMode:q,zoomOnDoubleClick:k,panOnDrag:A,defaultViewport:D,translateExtent:$,minZoom:L,maxZoom:w,preventScrolling:R,onSelectionContextMenu:N,noWheelClassName:O,noPanClassName:H,disableKeyboardA11y:M})=>{const F=re(Tp),B=Nt(d),G=Nt(p),U=G||A,S=G||x,I=B||f&&U!==!0;return yp({deleteKeyCode:a,multiSelectionKeyCode:g}),P.createElement(bp,{onMove:c,onMoveStart:l,onMoveEnd:u,onPaneContextMenu:i,elementsSelectable:E,zoomOnScroll:v,zoomOnPinch:b,panOnScroll:S,panOnScrollSpeed:C,panOnScrollMode:q,zoomOnDoubleClick:k,panOnDrag:!B&&U,defaultViewport:D,translateExtent:$,minZoom:L,maxZoom:w,zoomActivationKeyCode:y,preventScrolling:R,noWheelClassName:O,noPanClassName:H},P.createElement(pu,{onSelectionStart:_,onSelectionEnd:m,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:U,isSelecting:!!I,selectionMode:h},e,F&&P.createElement(qp,{onSelectionContextMenu:N,noPanClassName:H,disableKeyboardA11y:M})))};wu.displayName="FlowRenderer";var Pp=T.memo(wu);function Dp(e){return re(T.useCallback(n=>e?Za(n.nodeInternals,{x:0,y:0,width:n.width,height:n.height},n.transform,!0):n.getNodes(),[e]))}function zp(e){const t={input:vt(e.input||ru),default:vt(e.default||so),output:vt(e.output||iu),group:vt(e.group||Mo)},n={},r=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,i)=>(o[i]=vt(e[i]||so),o),n);return{...t,...r}}const Lp=({x:e,y:t,width:n,height:r,origin:o})=>!n||!r?{x:e,y:t}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:t}:{x:e-n*o[0],y:t-r*o[1]},$p=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),_u=e=>{const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,updateNodeDimensions:i,onError:s}=re($p,ue),a=Dp(e.onlyRenderVisibleElements),c=T.useRef(),l=T.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const u=new ResizeObserver(d=>{const f=d.map(h=>({id:h.target.getAttribute("data-id"),nodeElement:h.target,forceUpdate:!0}));i(f)});return c.current=u,u},[]);return T.useEffect(()=>()=>{c?.current?.disconnect()},[]),P.createElement("div",{className:"react-flow__nodes",style:qo},a.map(u=>{let d=u.type||"default";e.nodeTypes[d]||(s?.("003",Ie.error003(d)),d="default");const f=e.nodeTypes[d]||e.nodeTypes.default,h=!!(u.draggable||t&&typeof u.draggable>"u"),_=!!(u.selectable||o&&typeof u.selectable>"u"),m=!!(u.connectable||n&&typeof u.connectable>"u"),g=!!(u.focusable||r&&typeof u.focusable>"u"),p=e.nodeExtent?So(u.positionAbsolute,e.nodeExtent):u.positionAbsolute,y=p?.x??0,E=p?.y??0,v=Lp({x:y,y:E,width:u.width??0,height:u.height??0,origin:e.nodeOrigin});return P.createElement(f,{key:u.id,id:u.id,className:u.className,style:u.style,type:d,data:u.data,sourcePosition:u.sourcePosition||X.Bottom,targetPosition:u.targetPosition||X.Top,hidden:u.hidden,xPos:y,yPos:E,xPosOrigin:v.x,yPosOrigin:v.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!u.selected,isDraggable:h,isSelectable:_,isConnectable:m,isFocusable:g,resizeObserver:l,dragHandle:u.dragHandle,zIndex:u[se]?.z??0,isParent:!!u[se]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!u.width&&!!u.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:u.ariaLabel,hasHandleBounds:!!u[se]?.handleBounds})}))};_u.displayName="NodeRenderer";var Op=T.memo(_u);const Fp=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,Hp=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,fi="react-flow__edgeupdater",hi=({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a})=>P.createElement("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:ce([fi,`${fi}-${a}`]),cx:Fp(t,r,e),cy:Hp(n,r,e),r,stroke:"transparent",fill:"transparent"}),Vp=()=>!0;var rt=e=>{const t=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:a,selected:c,animated:l,label:u,labelStyle:d,labelShowBg:f,labelBgStyle:h,labelBgPadding:_,labelBgBorderRadius:m,style:g,source:p,target:y,sourceX:E,sourceY:v,targetX:b,targetY:x,sourcePosition:C,targetPosition:q,elementsSelectable:k,hidden:A,sourceHandleId:D,targetHandleId:$,onContextMenu:L,onMouseEnter:w,onMouseMove:R,onMouseLeave:N,reconnectRadius:O,onReconnect:H,onReconnectStart:M,onReconnectEnd:F,markerEnd:B,markerStart:G,rfId:U,ariaLabel:S,isFocusable:I,isReconnectable:z,pathOptions:V,interactionWidth:Y,disableKeyboardA11y:W})=>{const K=T.useRef(null),[ee,ie]=T.useState(!1),[te,Q]=T.useState(!1),ne=ae(),le=T.useMemo(()=>`url('#${oo(G,U)}')`,[G,U]),J=T.useMemo(()=>`url('#${oo(B,U)}')`,[B,U]);if(A)return null;const Z=de=>{const{edges:be,addSelectedEdges:$e,unselectNodesAndEdges:Oe,multiSelectionActive:Je}=ne.getState(),xe=be.find(Fe=>Fe.id===n);xe&&(k&&(ne.setState({nodesSelectionActive:!1}),xe.selected&&Je?(Oe({nodes:[],edges:[xe]}),K.current?.blur()):$e([n])),s&&s(de,xe))},fe=gt(n,ne.getState,a),Ne=gt(n,ne.getState,L),lt=gt(n,ne.getState,w),Ze=gt(n,ne.getState,R),Xe=gt(n,ne.getState,N),Ce=(de,be)=>{if(de.button!==0)return;const{edges:$e,isValidConnection:Oe}=ne.getState(),Je=be?y:p,xe=(be?$:D)||null,Fe=be?"target":"source",nn=Oe||Vp,rn=be,ft=$e.find(He=>He.id===n);Q(!0),M?.(de,ft,Fe);const on=He=>{Q(!1),F?.(He,ft,Fe)};Ja({event:de,handleId:xe,nodeId:Je,onConnect:He=>H?.(ft,He),isTarget:rn,getState:ne.getState,setState:ne.setState,isValidConnection:nn,edgeUpdaterType:Fe,onReconnectEnd:on})},Ke=de=>Ce(de,!0),ze=de=>Ce(de,!1),Le=()=>ie(!0),je=()=>ie(!1),Qe=!k&&!s,dt=de=>{if(!W&&Ha.includes(de.key)&&k){const{unselectNodesAndEdges:be,addSelectedEdges:$e,edges:Oe}=ne.getState();de.key==="Escape"?(K.current?.blur(),be({edges:[Oe.find(xe=>xe.id===n)]})):$e([n])}};return P.createElement("g",{className:ce(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:c,animated:l,inactive:Qe,updating:ee}]),onClick:Z,onDoubleClick:fe,onContextMenu:Ne,onMouseEnter:lt,onMouseMove:Ze,onMouseLeave:Xe,onKeyDown:I?dt:void 0,tabIndex:I?0:void 0,role:I?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":S===null?void 0:S||`Edge from ${p} to ${y}`,"aria-describedby":I?`${uu}-${U}`:void 0,ref:K},!te&&P.createElement(e,{id:n,source:p,target:y,selected:c,animated:l,label:u,labelStyle:d,labelShowBg:f,labelBgStyle:h,labelBgPadding:_,labelBgBorderRadius:m,data:i,style:g,sourceX:E,sourceY:v,targetX:b,targetY:x,sourcePosition:C,targetPosition:q,sourceHandleId:D,targetHandleId:$,markerStart:le,markerEnd:J,pathOptions:V,interactionWidth:Y}),z&&P.createElement(P.Fragment,null,(z==="source"||z===!0)&&P.createElement(hi,{position:C,centerX:E,centerY:v,radius:O,onMouseDown:Ke,onMouseEnter:Le,onMouseOut:je,type:"source"}),(z==="target"||z===!0)&&P.createElement(hi,{position:q,centerX:b,centerY:x,radius:O,onMouseDown:ze,onMouseEnter:Le,onMouseOut:je,type:"target"})))};return t.displayName="EdgeWrapper",T.memo(t)};function Bp(e){const t={default:rt(e.default||Gt),straight:rt(e.bezier||ko),step:rt(e.step||Co),smoothstep:rt(e.step||en),simplebezier:rt(e.simplebezier||No)},n={},r=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,i)=>(o[i]=rt(e[i]||Gt),o),n);return{...t,...r}}function pi(e,t,n=null){const r=(n?.x||0)+t.x,o=(n?.y||0)+t.y,i=n?.width||t.width,s=n?.height||t.height;switch(e){case X.Top:return{x:r+i/2,y:o};case X.Right:return{x:r+i,y:o+s/2};case X.Bottom:return{x:r+i/2,y:o+s};case X.Left:return{x:r,y:o+s/2}}}function gi(e,t){return e?e.length===1||!t?e[0]:t&&e.find(n=>n.id===t)||null:null}const Gp=(e,t,n,r,o,i)=>{const s=pi(n,e,t),a=pi(i,r,o);return{sourceX:s.x,sourceY:s.y,targetX:a.x,targetY:a.y}};function Up({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:r,targetWidth:o,targetHeight:i,width:s,height:a,transform:c}){const l={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+r,t.y+i)};l.x===l.x2&&(l.x2+=1),l.y===l.y2&&(l.y2+=1);const u=xt({x:(0-c[0])/c[2],y:(0-c[1])/c[2],width:s/c[2],height:a/c[2]}),d=Math.max(0,Math.min(u.x2,l.x2)-Math.max(u.x,l.x)),f=Math.max(0,Math.min(u.y2,l.y2)-Math.max(u.y,l.y));return Math.ceil(d*f)>0}function mi(e){const t=e?.[se]?.handleBounds||null,n=t&&e?.width&&e?.height&&typeof e?.positionAbsolute?.x<"u"&&typeof e?.positionAbsolute?.y<"u";return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}const Yp=[{level:0,isMaxLevel:!0,edges:[]}];function Wp(e,t,n=!1){let r=-1;const o=e.reduce((s,a)=>{const c=me(a.zIndex);let l=c?a.zIndex:0;if(n){const u=t.get(a.target),d=t.get(a.source),f=a.selected||u?.selected||d?.selected,h=Math.max(d?.[se]?.z||0,u?.[se]?.z||0,1e3);l=(c?a.zIndex:0)+(f?h:0)}return s[l]?s[l].push(a):s[l]=[a],r=l>r?l:r,s},{}),i=Object.entries(o).map(([s,a])=>{const c=+s;return{edges:a,level:c,isMaxLevel:c===r}});return i.length===0?Yp:i}function Zp(e,t,n){const r=re(T.useCallback(o=>e?o.edges.filter(i=>{const s=t.get(i.source),a=t.get(i.target);return s?.width&&s?.height&&a?.width&&a?.height&&Up({sourcePos:s.positionAbsolute||{x:0,y:0},targetPos:a.positionAbsolute||{x:0,y:0},sourceWidth:s.width,sourceHeight:s.height,targetWidth:a.width,targetHeight:a.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,t]));return Wp(r,t,n)}const Xp=({color:e="none",strokeWidth:t=1})=>P.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),Kp=({color:e="none",strokeWidth:t=1})=>P.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),vi={[Bt.Arrow]:Xp,[Bt.ArrowClosed]:Kp};function jp(e){const t=ae();return T.useMemo(()=>Object.prototype.hasOwnProperty.call(vi,e)?vi[e]:(t.getState().onError?.("009",Ie.error009(e)),null),[e])}const Qp=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const c=jp(t);return c?P.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0"},P.createElement(c,{color:n,strokeWidth:s})):null},Jp=({defaultColor:e,rfId:t})=>n=>{const r=[];return n.edges.reduce((o,i)=>([i.markerStart,i.markerEnd].forEach(s=>{if(s&&typeof s=="object"){const a=oo(s,t);r.includes(a)||(o.push({id:a,color:s.color||e,...s}),r.push(a))}}),o),[]).sort((o,i)=>o.id.localeCompare(i.id))},Eu=({defaultColor:e,rfId:t})=>{const n=re(T.useCallback(Jp({defaultColor:e,rfId:t}),[e,t]),(r,o)=>!(r.length!==o.length||r.some((i,s)=>i.id!==o[s].id)));return P.createElement("defs",null,n.map(r=>P.createElement(Qp,{id:r.id,key:r.id,type:r.type,color:r.color,width:r.width,height:r.height,markerUnits:r.markerUnits,strokeWidth:r.strokeWidth,orient:r.orient})))};Eu.displayName="MarkerDefinitions";var eg=T.memo(Eu);const tg=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}),bu=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:r,edgeTypes:o,noPanClassName:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,onEdgeDoubleClick:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:_,reconnectRadius:m,children:g,disableKeyboardA11y:p})=>{const{edgesFocusable:y,edgesUpdatable:E,elementsSelectable:v,width:b,height:x,connectionMode:C,nodeInternals:q,onError:k}=re(tg,ue),A=Zp(t,q,n);return b?P.createElement(P.Fragment,null,A.map(({level:D,edges:$,isMaxLevel:L})=>P.createElement("svg",{key:D,style:{zIndex:D},width:b,height:x,className:"react-flow__edges react-flow__container"},L&&P.createElement(eg,{defaultColor:e,rfId:r}),P.createElement("g",null,$.map(w=>{const[R,N,O]=mi(q.get(w.source)),[H,M,F]=mi(q.get(w.target));if(!O||!F)return null;let B=w.type||"default";o[B]||(k?.("011",Ie.error011(B)),B="default");const G=o[B]||o.default,U=C===Ye.Strict?M.target:(M.target??[]).concat(M.source??[]),S=gi(N.source,w.sourceHandle),I=gi(U,w.targetHandle),z=S?.position||X.Bottom,V=I?.position||X.Top,Y=!!(w.focusable||y&&typeof w.focusable>"u"),W=w.reconnectable||w.updatable,K=typeof f<"u"&&(W||E&&typeof W>"u");if(!S||!I)return k?.("008",Ie.error008(S,w)),null;const{sourceX:ee,sourceY:ie,targetX:te,targetY:Q}=Gp(R,S,z,H,I,V);return P.createElement(G,{key:w.id,id:w.id,className:ce([w.className,i]),type:B,data:w.data,selected:!!w.selected,animated:!!w.animated,hidden:!!w.hidden,label:w.label,labelStyle:w.labelStyle,labelShowBg:w.labelShowBg,labelBgStyle:w.labelBgStyle,labelBgPadding:w.labelBgPadding,labelBgBorderRadius:w.labelBgBorderRadius,style:w.style,source:w.source,target:w.target,sourceHandleId:w.sourceHandle,targetHandleId:w.targetHandle,markerEnd:w.markerEnd,markerStart:w.markerStart,sourceX:ee,sourceY:ie,targetX:te,targetY:Q,sourcePosition:z,targetPosition:V,elementsSelectable:v,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,onClick:u,onEdgeDoubleClick:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:_,reconnectRadius:m,rfId:r,ariaLabel:w.ariaLabel,isFocusable:Y,isReconnectable:K,pathOptions:"pathOptions"in w?w.pathOptions:void 0,interactionWidth:w.interactionWidth,disableKeyboardA11y:p})})))),g):null};bu.displayName="EdgeRenderer";var ng=T.memo(bu);const rg=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function og({children:e}){const t=re(rg);return P.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function ig(e){const t=Io(),n=T.useRef(!1);T.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const sg={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top},xu=({nodeId:e,handleType:t,style:n,type:r=Pe.Bezier,CustomComponent:o,connectionStatus:i})=>{const{fromNode:s,handleId:a,toX:c,toY:l,connectionMode:u}=re(T.useCallback(x=>({fromNode:x.nodeInternals.get(e),handleId:x.connectionHandleId,toX:(x.connectionPosition.x-x.transform[0])/x.transform[2],toY:(x.connectionPosition.y-x.transform[1])/x.transform[2],connectionMode:x.connectionMode}),[e]),ue),d=s?.[se]?.handleBounds;let f=d?.[t];if(u===Ye.Loose&&(f=f||d?.[t==="source"?"target":"source"]),!s||!f)return null;const h=a?f.find(x=>x.id===a):f[0],_=h?h.x+h.width/2:(s.width??0)/2,m=h?h.y+h.height/2:s.height??0,g=(s.positionAbsolute?.x??0)+_,p=(s.positionAbsolute?.y??0)+m,y=h?.position,E=y?sg[y]:null;if(!y||!E)return null;if(o)return P.createElement(o,{connectionLineType:r,connectionLineStyle:n,fromNode:s,fromHandle:h,fromX:g,fromY:p,toX:c,toY:l,fromPosition:y,toPosition:E,connectionStatus:i});let v="";const b={sourceX:g,sourceY:p,sourcePosition:y,targetX:c,targetY:l,targetPosition:E};return r===Pe.Bezier?[v]=Ya(b):r===Pe.Step?[v]=ro({...b,borderRadius:0}):r===Pe.SmoothStep?[v]=ro(b):r===Pe.SimpleBezier?[v]=Ua(b):v=`M${g},${p} ${c},${l}`,P.createElement("path",{d:v,fill:"none",className:"react-flow__connection-path",style:n})};xu.displayName="ConnectionLine";const ag=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function ug({containerStyle:e,style:t,type:n,component:r}){const{nodeId:o,handleType:i,nodesConnectable:s,width:a,height:c,connectionStatus:l}=re(ag,ue);return!(o&&i&&a&&s)?null:P.createElement("svg",{style:e,width:a,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},P.createElement("g",{className:ce(["react-flow__connection",l])},P.createElement(xu,{nodeId:o,handleType:i,style:t,type:n,CustomComponent:r,connectionStatus:l})))}function yi(e,t){return T.useRef(null),ae(),T.useMemo(()=>t(e),[e])}const Su=({nodeTypes:e,edgeTypes:t,onMove:n,onMoveStart:r,onMoveEnd:o,onInit:i,onNodeClick:s,onEdgeClick:a,onNodeDoubleClick:c,onEdgeDoubleClick:l,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:f,onNodeContextMenu:h,onSelectionContextMenu:_,onSelectionStart:m,onSelectionEnd:g,connectionLineType:p,connectionLineStyle:y,connectionLineComponent:E,connectionLineContainerStyle:v,selectionKeyCode:b,selectionOnDrag:x,selectionMode:C,multiSelectionKeyCode:q,panActivationKeyCode:k,zoomActivationKeyCode:A,deleteKeyCode:D,onlyRenderVisibleElements:$,elementsSelectable:L,selectNodesOnDrag:w,defaultViewport:R,translateExtent:N,minZoom:O,maxZoom:H,preventScrolling:M,defaultMarkerColor:F,zoomOnScroll:B,zoomOnPinch:G,panOnScroll:U,panOnScrollSpeed:S,panOnScrollMode:I,zoomOnDoubleClick:z,panOnDrag:V,onPaneClick:Y,onPaneMouseEnter:W,onPaneMouseMove:K,onPaneMouseLeave:ee,onPaneScroll:ie,onPaneContextMenu:te,onEdgeContextMenu:Q,onEdgeMouseEnter:ne,onEdgeMouseMove:le,onEdgeMouseLeave:J,onReconnect:Z,onReconnectStart:fe,onReconnectEnd:Ne,reconnectRadius:lt,noDragClassName:Ze,noWheelClassName:Xe,noPanClassName:Ce,elevateEdgesOnSelect:Ke,disableKeyboardA11y:ze,nodeOrigin:Le,nodeExtent:je,rfId:Qe})=>{const dt=yi(e,zp),de=yi(t,Bp);return ig(i),P.createElement(Pp,{onPaneClick:Y,onPaneMouseEnter:W,onPaneMouseMove:K,onPaneMouseLeave:ee,onPaneContextMenu:te,onPaneScroll:ie,deleteKeyCode:D,selectionKeyCode:b,selectionOnDrag:x,selectionMode:C,onSelectionStart:m,onSelectionEnd:g,multiSelectionKeyCode:q,panActivationKeyCode:k,zoomActivationKeyCode:A,elementsSelectable:L,onMove:n,onMoveStart:r,onMoveEnd:o,zoomOnScroll:B,zoomOnPinch:G,zoomOnDoubleClick:z,panOnScroll:U,panOnScrollSpeed:S,panOnScrollMode:I,panOnDrag:V,defaultViewport:R,translateExtent:N,minZoom:O,maxZoom:H,onSelectionContextMenu:_,preventScrolling:M,noDragClassName:Ze,noWheelClassName:Xe,noPanClassName:Ce,disableKeyboardA11y:ze},P.createElement(og,null,P.createElement(ng,{edgeTypes:de,onEdgeClick:a,onEdgeDoubleClick:l,onlyRenderVisibleElements:$,onEdgeContextMenu:Q,onEdgeMouseEnter:ne,onEdgeMouseMove:le,onEdgeMouseLeave:J,onReconnect:Z,onReconnectStart:fe,onReconnectEnd:Ne,reconnectRadius:lt,defaultMarkerColor:F,noPanClassName:Ce,elevateEdgesOnSelect:!!Ke,disableKeyboardA11y:ze,rfId:Qe},P.createElement(ug,{style:y,type:p,component:E,containerStyle:v})),P.createElement("div",{className:"react-flow__edgelabel-renderer"}),P.createElement(Op,{nodeTypes:dt,onNodeClick:s,onNodeDoubleClick:c,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:f,onNodeContextMenu:h,selectNodesOnDrag:w,onlyRenderVisibleElements:$,noPanClassName:Ce,noDragClassName:Ze,disableKeyboardA11y:ze,nodeOrigin:Le,nodeExtent:je,rfId:Qe})))};Su.displayName="GraphView";var cg=T.memo(Su);const uo=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],qe={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:uo,nodeExtent:uo,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Ye.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:Lh,isValidConnection:void 0},lg=()=>xl((e,t)=>({...qe,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:ln(n,r,o,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:r={}}=t();e({edges:n.map(o=>({...r,...o}))})},setDefaultNodesAndEdges:(n,r)=>{const o=typeof n<"u",i=typeof r<"u",s=o?ln(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:s,edges:i?r:[],hasDefaultNodes:o,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:r,nodeInternals:o,fitViewOnInit:i,fitViewOnInitDone:s,fitViewOnInitOptions:a,domNode:c,nodeOrigin:l}=t(),u=c?.querySelector(".react-flow__viewport");if(!u)return;const d=window.getComputedStyle(u),{m22:f}=new window.DOMMatrixReadOnly(d.transform),h=n.reduce((m,g)=>{const p=o.get(g.id);if(p?.hidden)o.set(p.id,{...p,[se]:{...p[se],handleBounds:void 0}});else if(p){const y=xo(g.nodeElement);!!(y.width&&y.height&&(p.width!==y.width||p.height!==y.height||g.forceUpdate))&&(o.set(p.id,{...p,[se]:{...p[se],handleBounds:{source:di(".source",g.nodeElement,f,l),target:di(".target",g.nodeElement,f,l)}},...y}),m.push({id:p.id,type:"dimensions",dimensions:y}))}return m},[]);lu(o,l);const _=s||i&&!s&&du(t,{initial:!0,...a});e({nodeInternals:new Map(o),fitViewOnInitDone:_}),h?.length>0&&r?.(h)},updateNodePositions:(n,r=!0,o=!1)=>{const{triggerNodeChanges:i}=t(),s=n.map(a=>{const c={id:a.id,type:"position",dragging:o};return r&&(c.positionAbsolute=a.positionAbsolute,c.position=a.position),c});i(s)},triggerNodeChanges:n=>{const{onNodesChange:r,nodeInternals:o,hasDefaultNodes:i,nodeOrigin:s,getNodes:a,elevateNodesOnSelect:c}=t();if(n?.length){if(i){const l=hu(n,a()),u=ln(l,o,s,c);e({nodeInternals:u})}r?.(n)}},addSelectedNodes:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let s,a=null;r?s=n.map(c=>Te(c,!0)):(s=ot(i(),n),a=ot(o,[])),qt({changedNodes:s,changedEdges:a,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let s,a=null;r?s=n.map(c=>Te(c,!0)):(s=ot(o,n),a=ot(i(),[])),qt({changedNodes:a,changedEdges:s,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),s=n||i(),a=r||o,c=s.map(u=>(u.selected=!1,Te(u.id,!1))),l=a.map(u=>Te(u.id,!1));qt({changedNodes:c,changedEdges:l,get:t,set:e})},setMinZoom:n=>{const{d3Zoom:r,maxZoom:o}=t();r?.scaleExtent([n,o]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:r,minZoom:o}=t();r?.scaleExtent([o,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:r}=t(),i=r().filter(a=>a.selected).map(a=>Te(a.id,!1)),s=n.filter(a=>a.selected).map(a=>Te(a.id,!1));qt({changedNodes:i,changedEdges:s,get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach(o=>{o.positionAbsolute=So(o.position,n)}),e({nodeExtent:n,nodeInternals:new Map(r)})},panBy:n=>{const{transform:r,width:o,height:i,d3Zoom:s,d3Selection:a,translateExtent:c}=t();if(!s||!a||!n.x&&!n.y)return!1;const l=Ae.translate(r[0]+n.x,r[1]+n.y).scale(r[2]),u=[[0,0],[o,i]],d=s?.constrain()(l,u,c);return s.transform(a,d),r[0]!==d.x||r[1]!==d.y||r[2]!==d.k},cancelConnection:()=>e({connectionNodeId:qe.connectionNodeId,connectionHandleId:qe.connectionHandleId,connectionHandleType:qe.connectionHandleType,connectionStatus:qe.connectionStatus,connectionStartHandle:qe.connectionStartHandle,connectionEndHandle:qe.connectionEndHandle}),reset:()=>e({...qe})}),Object.is),Nu=({children:e})=>{const t=T.useRef(null);return t.current||(t.current=lg()),P.createElement(Mh,{value:t.current},e)};Nu.displayName="ReactFlowProvider";const Cu=({children:e})=>T.useContext(Jt)?P.createElement(P.Fragment,null,e):P.createElement(Nu,null,e);Cu.displayName="ReactFlowWrapper";const dg={input:ru,default:so,output:iu,group:Mo},fg={default:Gt,straight:ko,step:Co,smoothstep:en,simplebezier:No},hg=[0,0],pg=[15,15],gg={x:0,y:0,zoom:1},mg={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},vg=T.forwardRef(({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i=dg,edgeTypes:s=fg,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:h,onConnectStart:_,onConnectEnd:m,onClickConnectStart:g,onClickConnectEnd:p,onNodeMouseEnter:y,onNodeMouseMove:E,onNodeMouseLeave:v,onNodeContextMenu:b,onNodeDoubleClick:x,onNodeDragStart:C,onNodeDrag:q,onNodeDragStop:k,onNodesDelete:A,onEdgesDelete:D,onSelectionChange:$,onSelectionDragStart:L,onSelectionDrag:w,onSelectionDragStop:R,onSelectionContextMenu:N,onSelectionStart:O,onSelectionEnd:H,connectionMode:M=Ye.Strict,connectionLineType:F=Pe.Bezier,connectionLineStyle:B,connectionLineComponent:G,connectionLineContainerStyle:U,deleteKeyCode:S="Backspace",selectionKeyCode:I="Shift",selectionOnDrag:z=!1,selectionMode:V=St.Full,panActivationKeyCode:Y="Space",multiSelectionKeyCode:W=Vt()?"Meta":"Control",zoomActivationKeyCode:K=Vt()?"Meta":"Control",snapToGrid:ee=!1,snapGrid:ie=pg,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:Q=!0,nodesDraggable:ne,nodesConnectable:le,nodesFocusable:J,nodeOrigin:Z=hg,edgesFocusable:fe,edgesUpdatable:Ne,elementsSelectable:lt,defaultViewport:Ze=gg,minZoom:Xe=.5,maxZoom:Ce=2,translateExtent:Ke=uo,preventScrolling:ze=!0,nodeExtent:Le,defaultMarkerColor:je="#b1b1b7",zoomOnScroll:Qe=!0,zoomOnPinch:dt=!0,panOnScroll:de=!1,panOnScrollSpeed:be=.5,panOnScrollMode:$e=Be.Free,zoomOnDoubleClick:Oe=!0,panOnDrag:Je=!0,onPaneClick:xe,onPaneMouseEnter:Fe,onPaneMouseMove:nn,onPaneMouseLeave:rn,onPaneScroll:ft,onPaneContextMenu:on,children:Do,onEdgeContextMenu:He,onEdgeDoubleClick:Xu,onEdgeMouseEnter:Ku,onEdgeMouseMove:ju,onEdgeMouseLeave:Qu,onEdgeUpdate:Ju,onEdgeUpdateStart:ec,onEdgeUpdateEnd:tc,onReconnect:nc,onReconnectStart:rc,onReconnectEnd:oc,reconnectRadius:ic=10,edgeUpdaterRadius:sc=10,onNodesChange:ac,onEdgesChange:uc,noDragClassName:cc="nodrag",noWheelClassName:lc="nowheel",noPanClassName:zo="nopan",fitView:dc=!1,fitViewOptions:fc,connectOnClick:hc=!0,attributionPosition:pc,proOptions:gc,defaultEdgeOptions:mc,elevateNodesOnSelect:vc=!0,elevateEdgesOnSelect:yc=!1,disableKeyboardA11y:Lo=!1,autoPanOnConnect:wc=!0,autoPanOnNodeDrag:_c=!0,connectionRadius:Ec=20,isValidConnection:bc,onError:xc,style:Sc,id:$o,nodeDragThreshold:Nc,...Cc},kc)=>{const sn=$o||"1";return P.createElement("div",{...Cc,style:{...Sc,...mg},ref:kc,className:ce(["react-flow",o]),"data-testid":"rf__wrapper",id:$o},P.createElement(Cu,null,P.createElement(cg,{onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:y,onNodeMouseMove:E,onNodeMouseLeave:v,onNodeContextMenu:b,onNodeDoubleClick:x,nodeTypes:i,edgeTypes:s,connectionLineType:F,connectionLineStyle:B,connectionLineComponent:G,connectionLineContainerStyle:U,selectionKeyCode:I,selectionOnDrag:z,selectionMode:V,deleteKeyCode:S,multiSelectionKeyCode:W,panActivationKeyCode:Y,zoomActivationKeyCode:K,onlyRenderVisibleElements:te,selectNodesOnDrag:Q,defaultViewport:Ze,translateExtent:Ke,minZoom:Xe,maxZoom:Ce,preventScrolling:ze,zoomOnScroll:Qe,zoomOnPinch:dt,zoomOnDoubleClick:Oe,panOnScroll:de,panOnScrollSpeed:be,panOnScrollMode:$e,panOnDrag:Je,onPaneClick:xe,onPaneMouseEnter:Fe,onPaneMouseMove:nn,onPaneMouseLeave:rn,onPaneScroll:ft,onPaneContextMenu:on,onSelectionContextMenu:N,onSelectionStart:O,onSelectionEnd:H,onEdgeContextMenu:He,onEdgeDoubleClick:Xu,onEdgeMouseEnter:Ku,onEdgeMouseMove:ju,onEdgeMouseLeave:Qu,onReconnect:nc??Ju,onReconnectStart:rc??ec,onReconnectEnd:oc??tc,reconnectRadius:ic??sc,defaultMarkerColor:je,noDragClassName:cc,noWheelClassName:lc,noPanClassName:zo,elevateEdgesOnSelect:yc,rfId:sn,disableKeyboardA11y:Lo,nodeOrigin:Z,nodeExtent:Le}),P.createElement(sp,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:_,onConnectEnd:m,onClickConnectStart:g,onClickConnectEnd:p,nodesDraggable:ne,nodesConnectable:le,nodesFocusable:J,edgesFocusable:fe,edgesUpdatable:Ne,elementsSelectable:lt,elevateNodesOnSelect:vc,minZoom:Xe,maxZoom:Ce,nodeExtent:Le,onNodesChange:ac,onEdgesChange:uc,snapToGrid:ee,snapGrid:ie,connectionMode:M,translateExtent:Ke,connectOnClick:hc,defaultEdgeOptions:mc,fitView:dc,fitViewOptions:fc,onNodesDelete:A,onEdgesDelete:D,onNodeDragStart:C,onNodeDrag:q,onNodeDragStop:k,onSelectionDrag:w,onSelectionDragStart:L,onSelectionDragStop:R,noPanClassName:zo,nodeOrigin:Z,rfId:sn,autoPanOnConnect:wc,autoPanOnNodeDrag:_c,onError:xc,connectionRadius:Ec,isValidConnection:bc,nodeDragThreshold:Nc}),P.createElement(op,{onSelectionChange:$}),Do,P.createElement(qh,{proOptions:gc,position:pc}),P.createElement(dp,{rfId:sn,disableKeyboardA11y:Lo})))});vg.displayName="ReactFlow";function ku(e){return t=>{const[n,r]=T.useState(t),o=T.useCallback(i=>r(s=>e(i,s)),[]);return[n,r,o]}}const jm=ku(hu),Qm=ku(Np),Ru=({id:e,x:t,y:n,width:r,height:o,style:i,color:s,strokeColor:a,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,onClick:f,selected:h})=>{const{background:_,backgroundColor:m}=i||{},g=s||_||m;return P.createElement("rect",{className:ce(["react-flow__minimap-node",{selected:h},l]),x:t,y:n,rx:u,ry:u,width:r,height:o,fill:g,stroke:a,strokeWidth:c,shapeRendering:d,onClick:f?p=>f(p,e):void 0})};Ru.displayName="MiniMapNode";var yg=T.memo(Ru);const wg=e=>e.nodeOrigin,_g=e=>e.getNodes().filter(t=>!t.hidden&&t.width&&t.height),pn=e=>e instanceof Function?e:()=>e;function Eg({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o=2,nodeComponent:i=yg,onClick:s}){const a=re(_g,ue),c=re(wg),l=pn(t),u=pn(e),d=pn(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return P.createElement(P.Fragment,null,a.map(h=>{const{x:_,y:m}=Ge(h,c).positionAbsolute;return P.createElement(i,{key:h.id,x:_,y:m,width:h.width,height:h.height,style:h.style,selected:h.selected,className:d(h),color:l(h),borderRadius:r,strokeColor:u(h),strokeWidth:o,shapeRendering:f,onClick:s,id:h.id})}))}var bg=T.memo(Eg);const xg=200,Sg=150,Ng=e=>{const t=e.getNodes(),n={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:n,boundingRect:t.length>0?Dh(tn(t,e.nodeOrigin),n):n,rfId:e.rfId}},Cg="react-flow__minimap-desc";function Au({style:e,className:t,nodeStrokeColor:n="transparent",nodeColor:r="#e2e2e2",nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s=2,nodeComponent:a,maskColor:c="rgb(240, 240, 240, 0.6)",maskStrokeColor:l="none",maskStrokeWidth:u=1,position:d="bottom-right",onClick:f,onNodeClick:h,pannable:_=!1,zoomable:m=!1,ariaLabel:g="React Flow mini map",inversePan:p=!1,zoomStep:y=10,offsetScale:E=5}){const v=ae(),b=T.useRef(null),{boundingRect:x,viewBB:C,rfId:q}=re(Ng,ue),k=e?.width??xg,A=e?.height??Sg,D=x.width/k,$=x.height/A,L=Math.max(D,$),w=L*k,R=L*A,N=E*L,O=x.x-(w-x.width)/2-N,H=x.y-(R-x.height)/2-N,M=w+N*2,F=R+N*2,B=`${Cg}-${q}`,G=T.useRef(0);G.current=L,T.useEffect(()=>{if(b.current){const I=ge(b.current),z=W=>{const{transform:K,d3Selection:ee,d3Zoom:ie}=v.getState();if(W.sourceEvent.type!=="wheel"||!ee||!ie)return;const te=-W.sourceEvent.deltaY*(W.sourceEvent.deltaMode===1?.05:W.sourceEvent.deltaMode?1:.002)*y,Q=K[2]*Math.pow(2,te);ie.scaleTo(ee,Q)},V=W=>{const{transform:K,d3Selection:ee,d3Zoom:ie,translateExtent:te,width:Q,height:ne}=v.getState();if(W.sourceEvent.type!=="mousemove"||!ee||!ie)return;const le=G.current*Math.max(1,K[2])*(p?-1:1),J={x:K[0]-W.sourceEvent.movementX*le,y:K[1]-W.sourceEvent.movementY*le},Z=[[0,0],[Q,ne]],fe=Ae.translate(J.x,J.y).scale(K[2]),Ne=ie.constrain()(fe,Z,te);ie.transform(ee,Ne)},Y=Da().on("zoom",_?V:null).on("zoom.wheel",m?z:null);return I.call(Y),()=>{I.on("zoom",null)}}},[_,m,p,y]);const U=f?I=>{const z=ye(I);f(I,{x:z[0],y:z[1]})}:void 0,S=h?(I,z)=>{const V=v.getState().nodeInternals.get(z);h(I,V)}:void 0;return P.createElement(bo,{position:d,style:e,className:ce(["react-flow__minimap",t]),"data-testid":"rf__minimap"},P.createElement("svg",{width:k,height:A,viewBox:`${O} ${H} ${M} ${F}`,role:"img","aria-labelledby":B,ref:b,onClick:U},g&&P.createElement("title",{id:B},g),P.createElement(bg,{onClick:S,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:a}),P.createElement("path",{className:"react-flow__minimap-mask",d:`M${O-N},${H-N}h${M+N*2}v${F+N*2}h${-M-N*2}z
M${C.x},${C.y}h${C.width}v${C.height}h${-C.width}z`,fill:c,fillRule:"evenodd",stroke:l,strokeWidth:u,pointerEvents:"none"})))}Au.displayName="MiniMap";var Jm=T.memo(Au);function kg(){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},P.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function Rg(){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},P.createElement("path",{d:"M0 0h32v4.2H0z"}))}function Ag(){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},P.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 Mg(){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},P.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 Ig(){return P.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},P.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 _t=({children:e,className:t,...n})=>P.createElement("button",{type:"button",className:ce(["react-flow__controls-button",t]),...n},e);_t.displayName="ControlButton";const qg=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),Mu=({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:c,className:l,children:u,position:d="bottom-left"})=>{const f=ae(),[h,_]=T.useState(!1),{isInteractive:m,minZoomReached:g,maxZoomReached:p}=re(qg,ue),{zoomIn:y,zoomOut:E,fitView:v}=Io();if(T.useEffect(()=>{_(!0)},[]),!h)return null;const b=()=>{y(),i?.()},x=()=>{E(),s?.()},C=()=>{v(o),a?.()},q=()=>{f.setState({nodesDraggable:!m,nodesConnectable:!m,elementsSelectable:!m}),c?.(!m)};return P.createElement(bo,{className:ce(["react-flow__controls",l]),position:d,style:e,"data-testid":"rf__controls"},t&&P.createElement(P.Fragment,null,P.createElement(_t,{onClick:b,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:p},P.createElement(kg,null)),P.createElement(_t,{onClick:x,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:g},P.createElement(Rg,null))),n&&P.createElement(_t,{className:"react-flow__controls-fitview",onClick:C,title:"fit view","aria-label":"fit view"},P.createElement(Ag,null)),r&&P.createElement(_t,{className:"react-flow__controls-interactive",onClick:q,title:"toggle interactivity","aria-label":"toggle interactivity"},m?P.createElement(Ig,null):P.createElement(Mg,null)),u)};Mu.displayName="Controls";var ev=T.memo(Mu),we;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(we||(we={}));function Tg({color:e,dimensions:t,lineWidth:n}){return P.createElement("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function Pg({color:e,radius:t}){return P.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const Dg={[we.Dots]:"#91919a",[we.Lines]:"#eee",[we.Cross]:"#e2e2e2"},zg={[we.Dots]:1,[we.Lines]:1,[we.Cross]:6},Lg=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Iu({id:e,variant:t=we.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=2,color:s,style:a,className:c}){const l=T.useRef(null),{transform:u,patternId:d}=re(Lg,ue),f=s||Dg[t],h=r||zg[t],_=t===we.Dots,m=t===we.Cross,g=Array.isArray(n)?n:[n,n],p=[g[0]*u[2]||1,g[1]*u[2]||1],y=h*u[2],E=m?[y,y]:p,v=_?[y/i,y/i]:[E[0]/i,E[1]/i];return P.createElement("svg",{className:ce(["react-flow__background",c]),style:{...a,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:l,"data-testid":"rf__background"},P.createElement("pattern",{id:d+e,x:u[0]%p[0],y:u[1]%p[1],width:p[0],height:p[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${v[0]},-${v[1]})`},_?P.createElement(Pg,{color:f,radius:y/i}):P.createElement(Tg,{dimensions:E,color:f,lineWidth:o})),P.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${d+e})`}))}Iu.displayName="Background";var tv=T.memo(Iu);function To(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var gn,wi;function $g(){if(wi)return gn;wi=1;var e=ea(),t=4;function n(r){return e(r,t)}return gn=n,gn}var mn,_i;function qu(){if(_i)return mn;_i=1;var e=Pc();function t(n){return typeof n=="function"?n:e}return mn=t,mn}var vn,Ei;function Tu(){if(Ei)return vn;Ei=1;var e=ta(),t=co(),n=qu(),r=We();function o(i,s){var a=r(i)?e:t;return a(i,n(s))}return vn=o,vn}var yn,bi;function Pu(){return bi||(bi=1,yn=Tu()),yn}var wn,xi;function Og(){if(xi)return wn;xi=1;var e=co();function t(n,r){var o=[];return e(n,function(i,s,a){r(i,s,a)&&o.push(i)}),o}return wn=t,wn}var _n,Si;function Du(){if(Si)return _n;Si=1;var e=Dc(),t=Og(),n=lo(),r=We();function o(i,s){var a=r(i)?e:t;return a(i,n(s,3))}return _n=o,_n}var En,Ni;function Fg(){if(Ni)return En;Ni=1;var e=Object.prototype,t=e.hasOwnProperty;function n(r,o){return r!=null&&t.call(r,o)}return En=n,En}var bn,Ci;function zu(){if(Ci)return bn;Ci=1;var e=Fg(),t=zc();function n(r,o){return r!=null&&t(r,o,e)}return bn=n,bn}var xn,ki;function Hg(){if(ki)return xn;ki=1;var e=na(),t=ra(),n=oa(),r=We(),o=fo(),i=ho(),s=Lc(),a=po(),c="[object Map]",l="[object Set]",u=Object.prototype,d=u.hasOwnProperty;function f(h){if(h==null)return!0;if(o(h)&&(r(h)||typeof h=="string"||typeof h.splice=="function"||i(h)||a(h)||n(h)))return!h.length;var _=t(h);if(_==c||_==l)return!h.size;if(s(h))return!e(h).length;for(var m in h)if(d.call(h,m))return!1;return!0}return xn=f,xn}var Sn,Ri;function Lu(){if(Ri)return Sn;Ri=1;function e(t){return t===void 0}return Sn=e,Sn}var Nn,Ai;function Vg(){if(Ai)return Nn;Ai=1;function e(t,n,r,o){var i=-1,s=t==null?0:t.length;for(o&&s&&(r=t[++i]);++i<s;)r=n(r,t[i],i,t);return r}return Nn=e,Nn}var Cn,Mi;function Bg(){if(Mi)return Cn;Mi=1;function e(t,n,r,o,i){return i(t,function(s,a,c){r=o?(o=!1,s):n(r,s,a,c)}),r}return Cn=e,Cn}var kn,Ii;function $u(){if(Ii)return kn;Ii=1;var e=Vg(),t=co(),n=lo(),r=Bg(),o=We();function i(s,a,c){var l=o(s)?e:r,u=arguments.length<3;return l(s,n(a,4),c,u,t)}return kn=i,kn}var Rn,qi;function Gg(){if(qi)return Rn;qi=1;var e=$c(),t=e("length");return Rn=t,Rn}var An,Ti;function Ug(){if(Ti)return An;Ti=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",o=t+n+r,i="\\ufe0e\\ufe0f",s="["+e+"]",a="["+o+"]",c="\\ud83c[\\udffb-\\udfff]",l="(?:"+a+"|"+c+")",u="[^"+e+"]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",f="[\\ud800-\\udbff][\\udc00-\\udfff]",h="\\u200d",_=l+"?",m="["+i+"]?",g="(?:"+h+"(?:"+[u,d,f].join("|")+")"+m+_+")*",p=m+_+g,y="(?:"+[u+a+"?",a,d,f,s].join("|")+")",E=RegExp(c+"(?="+c+")|"+y+p,"g");function v(b){for(var x=E.lastIndex=0;E.test(b);)++x;return x}return An=v,An}var Mn,Pi;function Yg(){if(Pi)return Mn;Pi=1;var e=Gg(),t=Oc(),n=Ug();function r(o){return t(o)?n(o):e(o)}return Mn=r,Mn}var In,Di;function Wg(){if(Di)return In;Di=1;var e=na(),t=ra(),n=fo(),r=Fc(),o=Yg(),i="[object Map]",s="[object Set]";function a(c){if(c==null)return 0;if(n(c))return r(c)?o(c):c.length;var l=t(c);return l==i||l==s?c.size:e(c).length}return In=a,In}var qn,zi;function Zg(){if(zi)return qn;zi=1;var e=ta(),t=Hc(),n=Vc(),r=lo(),o=Bc(),i=We(),s=ho(),a=go(),c=Wt(),l=po();function u(d,f,h){var _=i(d),m=_||s(d)||l(d);if(f=r(f,4),h==null){var g=d&&d.constructor;m?h=_?new g:[]:c(d)?h=a(g)?t(o(d)):{}:h={}}return(m?e:n)(d,function(p,y,E){return f(h,p,y,E)}),h}return qn=u,qn}var Tn,Li;function Ou(){if(Li)return Tn;Li=1;var e=fo(),t=Gc();function n(r){return t(r)&&e(r)}return Tn=n,Tn}var Pn,$i;function Xg(){if($i)return Pn;$i=1;var e=Uc(),t=mo(),n=Yc(),r=Ou(),o=t(function(i){return n(e(i,1,r,!0))});return Pn=o,Pn}var Dn,Oi;function Kg(){if(Oi)return Dn;Oi=1;var e=Wc();function t(n,r){return e(r,function(o){return n[o]})}return Dn=t,Dn}var zn,Fi;function Fu(){if(Fi)return zn;Fi=1;var e=Kg(),t=ia();function n(r){return r==null?[]:e(r,t(r))}return zn=n,zn}var Ln,Hi;function ve(){if(Hi)return Ln;Hi=1;var e;if(typeof To=="function")try{e={clone:$g(),constant:aa(),each:Pu(),filter:Du(),has:zu(),isArray:We(),isEmpty:Hg(),isFunction:go(),isUndefined:Lu(),keys:ia(),map:sa(),reduce:$u(),size:Wg(),transform:Zg(),union:Xg(),values:Fu()}}catch{}return e||(e=window._),Ln=e,Ln}var $n,Vi;function Po(){if(Vi)return $n;Vi=1;var e=ve();$n=o;var t="\0",n="\0",r="";function o(u){this._isDirected=e.has(u,"directed")?u.directed:!0,this._isMultigraph=e.has(u,"multigraph")?u.multigraph:!1,this._isCompound=e.has(u,"compound")?u.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[n]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(u){return this._label=u,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(u){return e.isFunction(u)||(u=e.constant(u)),this._defaultNodeLabelFn=u,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var u=this;return e.filter(this.nodes(),function(d){return e.isEmpty(u._in[d])})},o.prototype.sinks=function(){var u=this;return e.filter(this.nodes(),function(d){return e.isEmpty(u._out[d])})},o.prototype.setNodes=function(u,d){var f=arguments,h=this;return e.each(u,function(_){f.length>1?h.setNode(_,d):h.setNode(_)}),this},o.prototype.setNode=function(u,d){return e.has(this._nodes,u)?(arguments.length>1&&(this._nodes[u]=d),this):(this._nodes[u]=arguments.length>1?d:this._defaultNodeLabelFn(u),this._isCompound&&(this._parent[u]=n,this._children[u]={},this._children[n][u]=!0),this._in[u]={},this._preds[u]={},this._out[u]={},this._sucs[u]={},++this._nodeCount,this)},o.prototype.node=function(u){return this._nodes[u]},o.prototype.hasNode=function(u){return e.has(this._nodes,u)},o.prototype.removeNode=function(u){var d=this;if(e.has(this._nodes,u)){var f=function(h){d.removeEdge(d._edgeObjs[h])};delete this._nodes[u],this._isCompound&&(this._removeFromParentsChildList(u),delete this._parent[u],e.each(this.children(u),function(h){d.setParent(h)}),delete this._children[u]),e.each(e.keys(this._in[u]),f),delete this._in[u],delete this._preds[u],e.each(e.keys(this._out[u]),f),delete this._out[u],delete this._sucs[u],--this._nodeCount}return this},o.prototype.setParent=function(u,d){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(d))d=n;else{d+="";for(var f=d;!e.isUndefined(f);f=this.parent(f))if(f===u)throw new Error("Setting "+d+" as parent of "+u+" would create a cycle");this.setNode(d)}return this.setNode(u),this._removeFromParentsChildList(u),this._parent[u]=d,this._children[d][u]=!0,this},o.prototype._removeFromParentsChildList=function(u){delete this._children[this._parent[u]][u]},o.prototype.parent=function(u){if(this._isCompound){var d=this._parent[u];if(d!==n)return d}},o.prototype.children=function(u){if(e.isUndefined(u)&&(u=n),this._isCompound){var d=this._children[u];if(d)return e.keys(d)}else{if(u===n)return this.nodes();if(this.hasNode(u))return[]}},o.prototype.predecessors=function(u){var d=this._preds[u];if(d)return e.keys(d)},o.prototype.successors=function(u){var d=this._sucs[u];if(d)return e.keys(d)},o.prototype.neighbors=function(u){var d=this.predecessors(u);if(d)return e.union(d,this.successors(u))},o.prototype.isLeaf=function(u){var d;return this.isDirected()?d=this.successors(u):d=this.neighbors(u),d.length===0},o.prototype.filterNodes=function(u){var d=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});d.setGraph(this.graph());var f=this;e.each(this._nodes,function(m,g){u(g)&&d.setNode(g,m)}),e.each(this._edgeObjs,function(m){d.hasNode(m.v)&&d.hasNode(m.w)&&d.setEdge(m,f.edge(m))});var h={};function _(m){var g=f.parent(m);return g===void 0||d.hasNode(g)?(h[m]=g,g):g in h?h[g]:_(g)}return this._isCompound&&e.each(d.nodes(),function(m){d.setParent(m,_(m))}),d},o.prototype.setDefaultEdgeLabel=function(u){return e.isFunction(u)||(u=e.constant(u)),this._defaultEdgeLabelFn=u,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(u,d){var f=this,h=arguments;return e.reduce(u,function(_,m){return h.length>1?f.setEdge(_,m,d):f.setEdge(_,m),m}),this},o.prototype.setEdge=function(){var u,d,f,h,_=!1,m=arguments[0];typeof m=="object"&&m!==null&&"v"in m?(u=m.v,d=m.w,f=m.name,arguments.length===2&&(h=arguments[1],_=!0)):(u=m,d=arguments[1],f=arguments[3],arguments.length>2&&(h=arguments[2],_=!0)),u=""+u,d=""+d,e.isUndefined(f)||(f=""+f);var g=a(this._isDirected,u,d,f);if(e.has(this._edgeLabels,g))return _&&(this._edgeLabels[g]=h),this;if(!e.isUndefined(f)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(u),this.setNode(d),this._edgeLabels[g]=_?h:this._defaultEdgeLabelFn(u,d,f);var p=c(this._isDirected,u,d,f);return u=p.v,d=p.w,Object.freeze(p),this._edgeObjs[g]=p,i(this._preds[d],u),i(this._sucs[u],d),this._in[d][g]=p,this._out[u][g]=p,this._edgeCount++,this},o.prototype.edge=function(u,d,f){var h=arguments.length===1?l(this._isDirected,arguments[0]):a(this._isDirected,u,d,f);return this._edgeLabels[h]},o.prototype.hasEdge=function(u,d,f){var h=arguments.length===1?l(this._isDirected,arguments[0]):a(this._isDirected,u,d,f);return e.has(this._edgeLabels,h)},o.prototype.removeEdge=function(u,d,f){var h=arguments.length===1?l(this._isDirected,arguments[0]):a(this._isDirected,u,d,f),_=this._edgeObjs[h];return _&&(u=_.v,d=_.w,delete this._edgeLabels[h],delete this._edgeObjs[h],s(this._preds[d],u),s(this._sucs[u],d),delete this._in[d][h],delete this._out[u][h],this._edgeCount--),this},o.prototype.inEdges=function(u,d){var f=this._in[u];if(f){var h=e.values(f);return d?e.filter(h,function(_){return _.v===d}):h}},o.prototype.outEdges=function(u,d){var f=this._out[u];if(f){var h=e.values(f);return d?e.filter(h,function(_){return _.w===d}):h}},o.prototype.nodeEdges=function(u,d){var f=this.inEdges(u,d);if(f)return f.concat(this.outEdges(u,d))};function i(u,d){u[d]?u[d]++:u[d]=1}function s(u,d){--u[d]||delete u[d]}function a(u,d,f,h){var _=""+d,m=""+f;if(!u&&_>m){var g=_;_=m,m=g}return _+r+m+r+(e.isUndefined(h)?t:h)}function c(u,d,f,h){var _=""+d,m=""+f;if(!u&&_>m){var g=_;_=m,m=g}var p={v:_,w:m};return h&&(p.name=h),p}function l(u,d){return a(u,d.v,d.w,d.name)}return $n}var On,Bi;function jg(){return Bi||(Bi=1,On="2.1.8"),On}var Fn,Gi;function Qg(){return Gi||(Gi=1,Fn={Graph:Po(),version:jg()}),Fn}var Hn,Ui;function Jg(){if(Ui)return Hn;Ui=1;var e=ve(),t=Po();Hn={write:n,read:i};function n(s){var a={options:{directed:s.isDirected(),multigraph:s.isMultigraph(),compound:s.isCompound()},nodes:r(s),edges:o(s)};return e.isUndefined(s.graph())||(a.value=e.clone(s.graph())),a}function r(s){return e.map(s.nodes(),function(a){var c=s.node(a),l=s.parent(a),u={v:a};return e.isUndefined(c)||(u.value=c),e.isUndefined(l)||(u.parent=l),u})}function o(s){return e.map(s.edges(),function(a){var c=s.edge(a),l={v:a.v,w:a.w};return e.isUndefined(a.name)||(l.name=a.name),e.isUndefined(c)||(l.value=c),l})}function i(s){var a=new t(s.options).setGraph(s.value);return e.each(s.nodes,function(c){a.setNode(c.v,c.value),c.parent&&a.setParent(c.v,c.parent)}),e.each(s.edges,function(c){a.setEdge({v:c.v,w:c.w,name:c.name},c.value)}),a}return Hn}var Vn,Yi;function em(){if(Yi)return Vn;Yi=1;var e=ve();Vn=t;function t(n){var r={},o=[],i;function s(a){e.has(r,a)||(r[a]=!0,i.push(a),e.each(n.successors(a),s),e.each(n.predecessors(a),s))}return e.each(n.nodes(),function(a){i=[],s(a),i.length&&o.push(i)}),o}return Vn}var Bn,Wi;function Hu(){if(Wi)return Bn;Wi=1;var e=ve();Bn=t;function t(){this._arr=[],this._keyIndices={}}return t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map(function(n){return n.key})},t.prototype.has=function(n){return e.has(this._keyIndices,n)},t.prototype.priority=function(n){var r=this._keyIndices[n];if(r!==void 0)return this._arr[r].priority},t.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},t.prototype.add=function(n,r){var o=this._keyIndices;if(n=String(n),!e.has(o,n)){var i=this._arr,s=i.length;return o[n]=s,i.push({key:n,priority:r}),this._decrease(s),!0}return!1},t.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key},t.prototype.decrease=function(n,r){var o=this._keyIndices[n];if(r>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[o].priority+" New: "+r);this._arr[o].priority=r,this._decrease(o)},t.prototype._heapify=function(n){var r=this._arr,o=2*n,i=o+1,s=n;o<r.length&&(s=r[o].priority<r[s].priority?o:s,i<r.length&&(s=r[i].priority<r[s].priority?i:s),s!==n&&(this._swap(n,s),this._heapify(s)))},t.prototype._decrease=function(n){for(var r=this._arr,o=r[n].priority,i;n!==0&&(i=n>>1,!(r[i].priority<o));)this._swap(n,i),n=i},t.prototype._swap=function(n,r){var o=this._arr,i=this._keyIndices,s=o[n],a=o[r];o[n]=a,o[r]=s,i[a.key]=n,i[s.key]=r},Bn}var Gn,Zi;function Vu(){if(Zi)return Gn;Zi=1;var e=ve(),t=Hu();Gn=r;var n=e.constant(1);function r(i,s,a,c){return o(i,String(s),a||n,c||function(l){return i.outEdges(l)})}function o(i,s,a,c){var l={},u=new t,d,f,h=function(_){var m=_.v!==d?_.v:_.w,g=l[m],p=a(_),y=f.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+_+" Weight: "+p);y<g.distance&&(g.distance=y,g.predecessor=d,u.decrease(m,y))};for(i.nodes().forEach(function(_){var m=_===s?0:Number.POSITIVE_INFINITY;l[_]={distance:m},u.add(_,m)});u.size()>0&&(d=u.removeMin(),f=l[d],f.distance!==Number.POSITIVE_INFINITY);)c(d).forEach(h);return l}return Gn}var Un,Xi;function tm(){if(Xi)return Un;Xi=1;var e=Vu(),t=ve();Un=n;function n(r,o,i){return t.transform(r.nodes(),function(s,a){s[a]=e(r,a,o,i)},{})}return Un}var Yn,Ki;function Bu(){if(Ki)return Yn;Ki=1;var e=ve();Yn=t;function t(n){var r=0,o=[],i={},s=[];function a(c){var l=i[c]={onStack:!0,lowlink:r,index:r++};if(o.push(c),n.successors(c).forEach(function(f){e.has(i,f)?i[f].onStack&&(l.lowlink=Math.min(l.lowlink,i[f].index)):(a(f),l.lowlink=Math.min(l.lowlink,i[f].lowlink))}),l.lowlink===l.index){var u=[],d;do d=o.pop(),i[d].onStack=!1,u.push(d);while(c!==d);s.push(u)}}return n.nodes().forEach(function(c){e.has(i,c)||a(c)}),s}return Yn}var Wn,ji;function nm(){if(ji)return Wn;ji=1;var e=ve(),t=Bu();Wn=n;function n(r){return e.filter(t(r),function(o){return o.length>1||o.length===1&&r.hasEdge(o[0],o[0])})}return Wn}var Zn,Qi;function rm(){if(Qi)return Zn;Qi=1;var e=ve();Zn=n;var t=e.constant(1);function n(o,i,s){return r(o,i||t,s||function(a){return o.outEdges(a)})}function r(o,i,s){var a={},c=o.nodes();return c.forEach(function(l){a[l]={},a[l][l]={distance:0},c.forEach(function(u){l!==u&&(a[l][u]={distance:Number.POSITIVE_INFINITY})}),s(l).forEach(function(u){var d=u.v===l?u.w:u.v,f=i(u);a[l][d]={distance:f,predecessor:l}})}),c.forEach(function(l){var u=a[l];c.forEach(function(d){var f=a[d];c.forEach(function(h){var _=f[l],m=u[h],g=f[h],p=_.distance+m.distance;p<g.distance&&(g.distance=p,g.predecessor=m.predecessor)})})}),a}return Zn}var Xn,Ji;function Gu(){if(Ji)return Xn;Ji=1;var e=ve();Xn=t,t.CycleException=n;function t(r){var o={},i={},s=[];function a(c){if(e.has(i,c))throw new n;e.has(o,c)||(i[c]=!0,o[c]=!0,e.each(r.predecessors(c),a),delete i[c],s.push(c))}if(e.each(r.sinks(),a),e.size(o)!==r.nodeCount())throw new n;return s}function n(){}return n.prototype=new Error,Xn}var Kn,es;function om(){if(es)return Kn;es=1;var e=Gu();Kn=t;function t(n){try{e(n)}catch(r){if(r instanceof e.CycleException)return!1;throw r}return!0}return Kn}var jn,ts;function Uu(){if(ts)return jn;ts=1;var e=ve();jn=t;function t(r,o,i){e.isArray(o)||(o=[o]);var s=(r.isDirected()?r.successors:r.neighbors).bind(r),a=[],c={};return e.each(o,function(l){if(!r.hasNode(l))throw new Error("Graph does not have node: "+l);n(r,l,i==="post",c,s,a)}),a}function n(r,o,i,s,a,c){e.has(s,o)||(s[o]=!0,i||c.push(o),e.each(a(o),function(l){n(r,l,i,s,a,c)}),i&&c.push(o))}return jn}var Qn,ns;function im(){if(ns)return Qn;ns=1;var e=Uu();Qn=t;function t(n,r){return e(n,r,"post")}return Qn}var Jn,rs;function sm(){if(rs)return Jn;rs=1;var e=Uu();Jn=t;function t(n,r){return e(n,r,"pre")}return Jn}var er,os;function am(){if(os)return er;os=1;var e=ve(),t=Po(),n=Hu();er=r;function r(o,i){var s=new t,a={},c=new n,l;function u(f){var h=f.v===l?f.w:f.v,_=c.priority(h);if(_!==void 0){var m=i(f);m<_&&(a[h]=l,c.decrease(h,m))}}if(o.nodeCount()===0)return s;e.each(o.nodes(),function(f){c.add(f,Number.POSITIVE_INFINITY),s.setNode(f)}),c.decrease(o.nodes()[0],0);for(var d=!1;c.size()>0;){if(l=c.removeMin(),e.has(a,l))s.setEdge(l,a[l]);else{if(d)throw new Error("Input graph is not connected: "+o);d=!0}o.nodeEdges(l).forEach(u)}return s}return er}var tr,is;function um(){return is||(is=1,tr={components:em(),dijkstra:Vu(),dijkstraAll:tm(),findCycles:nm(),floydWarshall:rm(),isAcyclic:om(),postorder:im(),preorder:sm(),prim:am(),tarjan:Bu(),topsort:Gu()}),tr}var nr,ss;function cm(){if(ss)return nr;ss=1;var e=Qg();return nr={Graph:e.Graph,json:Jg(),alg:um(),version:e.version},nr}var rr,as;function _e(){if(as)return rr;as=1;var e;if(typeof To=="function")try{e=cm()}catch{}return e||(e=window.graphlib),rr=e,rr}var or,us;function lm(){if(us)return or;us=1;var e=ea(),t=1,n=4;function r(o){return e(o,t|n)}return or=r,or}var ir,cs;function dm(){if(cs)return ir;cs=1;var e=mo(),t=ca(),n=ua(),r=Zt(),o=Object.prototype,i=o.hasOwnProperty,s=e(function(a,c){a=Object(a);var l=-1,u=c.length,d=u>2?c[2]:void 0;for(d&&n(c[0],c[1],d)&&(u=1);++l<u;)for(var f=c[l],h=r(f),_=-1,m=h.length;++_<m;){var g=h[_],p=a[g];(p===void 0||t(p,o[g])&&!i.call(a,g))&&(a[g]=f[g])}return a});return ir=s,ir}var sr,ls;function fm(){if(ls)return sr;ls=1;var e=la(),t=qu(),n=Zt();function r(o,i){return o==null?o:e(o,t(i),n)}return sr=r,sr}var ar,ds;function Yu(){if(ds)return ar;ds=1;var e=Zc(),t=ca();function n(r,o,i){(i!==void 0&&!t(r[o],i)||i===void 0&&!(o in r))&&e(r,o,i)}return ar=n,ar}var ur,fs;function Wu(){if(fs)return ur;fs=1;function e(t,n){if(!(n==="constructor"&&typeof t[n]=="function")&&n!="__proto__")return t[n]}return ur=e,ur}var cr,hs;function hm(){if(hs)return cr;hs=1;var e=Xc(),t=Zt();function n(r){return e(r,t(r))}return cr=n,cr}var lr,ps;function pm(){if(ps)return lr;ps=1;var e=Yu(),t=Kc(),n=jc(),r=el(),o=Qc(),i=oa(),s=We(),a=Ou(),c=ho(),l=go(),u=Wt(),d=Jc(),f=po(),h=Wu(),_=hm();function m(g,p,y,E,v,b,x){var C=h(g,y),q=h(p,y),k=x.get(q);if(k){e(g,y,k);return}var A=b?b(C,q,y+"",g,p,x):void 0,D=A===void 0;if(D){var $=s(q),L=!$&&c(q),w=!$&&!L&&f(q);A=q,$||L||w?s(C)?A=C:a(C)?A=r(C):L?(D=!1,A=t(q,!0)):w?(D=!1,A=n(q,!0)):A=[]:d(q)||i(q)?(A=C,i(C)?A=_(C):(!u(C)||l(C))&&(A=o(q))):D=!1}D&&(x.set(q,A),v(A,q,E,b,x),x.delete(q)),e(g,y,A)}return lr=m,lr}var dr,gs;function gm(){if(gs)return dr;gs=1;var e=tl(),t=Yu(),n=la(),r=pm(),o=Wt(),i=Zt(),s=Wu();function a(c,l,u,d,f){c!==l&&n(l,function(h,_){if(f||(f=new e),o(h))r(c,l,_,u,a,d,f);else{var m=d?d(s(c,_),h,_+"",c,l,f):void 0;m===void 0&&(m=h),t(c,_,m)}},i)}return dr=a,dr}var fr,ms;function mm(){if(ms)return fr;ms=1;var e=mo(),t=ua();function n(r){return e(function(o,i){var s=-1,a=i.length,c=a>1?i[a-1]:void 0,l=a>2?i[2]:void 0;for(c=r.length>3&&typeof c=="function"?(a--,c):void 0,l&&t(i[0],i[1],l)&&(c=a<3?void 0:c,a=1),o=Object(o);++s<a;){var u=i[s];u&&r(o,u,s,c)}return o})}return fr=n,fr}var hr,vs;function vm(){if(vs)return hr;vs=1;var e=gm(),t=mm(),n=t(function(r,o,i){e(r,o,i)});return hr=n,hr}var pr,ys;function ym(){if(ys)return pr;ys=1;var e=da(),t=fa(),n=nl(),r=Wt(),o=rl();function i(s,a,c,l){if(!r(s))return s;a=t(a,s);for(var u=-1,d=a.length,f=d-1,h=s;h!=null&&++u<d;){var _=o(a[u]),m=c;if(_==="__proto__"||_==="constructor"||_==="prototype")return s;if(u!=f){var g=h[_];m=l?l(g,_,h):void 0,m===void 0&&(m=r(g)?g:n(a[u+1])?[]:{})}e(h,_,m),h=h[_]}return s}return pr=i,pr}var gr,ws;function wm(){if(ws)return gr;ws=1;var e=ol(),t=ym(),n=fa();function r(o,i,s){for(var a=-1,c=i.length,l={};++a<c;){var u=i[a],d=e(o,u);s(d,u)&&t(l,n(u,o),d)}return l}return gr=r,gr}var mr,_s;function _m(){if(_s)return mr;_s=1;var e=wm(),t=il();function n(r,o){return e(r,o,function(i,s){return t(r,s)})}return mr=n,mr}var vr,Es;function Em(){if(Es)return vr;Es=1;var e=_m(),t=sl(),n=t(function(r,o){return r==null?{}:e(r,o)});return vr=n,vr}var yr,bs;function bm(){if(bs)return yr;bs=1;var e=al(),t=0;function n(r){var o=++t;return e(r)+o}return yr=n,yr}var wr,xs;function xm(){if(xs)return wr;xs=1;function e(t,n,r){for(var o=-1,i=t.length,s=n.length,a={};++o<i;){var c=o<s?n[o]:void 0;r(a,t[o],c)}return a}return wr=e,wr}var _r,Ss;function Sm(){if(Ss)return _r;Ss=1;var e=da(),t=xm();function n(r,o){return t(r||[],o||[],e)}return _r=n,_r}var Er,Ns;function oe(){if(Ns)return Er;Ns=1;var e;if(typeof To=="function")try{e={cloneDeep:lm(),constant:aa(),defaults:dm(),each:Pu(),filter:Du(),find:vl(),flatten:ml(),forEach:Tu(),forIn:fm(),has:zu(),isUndefined:Lu(),last:gl(),map:sa(),mapValues:pl(),max:hl(),merge:vm(),min:fl(),minBy:dl(),now:ll(),pick:Em(),range:cl(),reduce:$u(),sortBy:ul(),uniqueId:bm(),values:Fu(),zipObject:Sm()}}catch{}return e||(e=window._),Er=e,Er}var br,Cs;function Nm(){if(Cs)return br;Cs=1,br=e;function e(){var r={};r._next=r._prev=r,this._sentinel=r}e.prototype.dequeue=function(){var r=this._sentinel,o=r._prev;if(o!==r)return t(o),o},e.prototype.enqueue=function(r){var o=this._sentinel;r._prev&&r._next&&t(r),r._next=o._next,o._next._prev=r,o._next=r,r._prev=o},e.prototype.toString=function(){for(var r=[],o=this._sentinel,i=o._prev;i!==o;)r.push(JSON.stringify(i,n)),i=i._prev;return"["+r.join(", ")+"]"};function t(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}function n(r,o){if(r!=="_next"&&r!=="_prev")return o}return br}var xr,ks;function Cm(){if(ks)return xr;ks=1;var e=oe(),t=_e().Graph,n=Nm();xr=o;var r=e.constant(1);function o(l,u){if(l.nodeCount()<=1)return[];var d=a(l,u||r),f=i(d.graph,d.buckets,d.zeroIdx);return e.flatten(e.map(f,function(h){return l.outEdges(h.v,h.w)}),!0)}function i(l,u,d){for(var f=[],h=u[u.length-1],_=u[0],m;l.nodeCount();){for(;m=_.dequeue();)s(l,u,d,m);for(;m=h.dequeue();)s(l,u,d,m);if(l.nodeCount()){for(var g=u.length-2;g>0;--g)if(m=u[g].dequeue(),m){f=f.concat(s(l,u,d,m,!0));break}}}return f}function s(l,u,d,f,h){var _=h?[]:void 0;return e.forEach(l.inEdges(f.v),function(m){var g=l.edge(m),p=l.node(m.v);h&&_.push({v:m.v,w:m.w}),p.out-=g,c(u,d,p)}),e.forEach(l.outEdges(f.v),function(m){var g=l.edge(m),p=m.w,y=l.node(p);y.in-=g,c(u,d,y)}),l.removeNode(f.v),_}function a(l,u){var d=new t,f=0,h=0;e.forEach(l.nodes(),function(g){d.setNode(g,{v:g,in:0,out:0})}),e.forEach(l.edges(),function(g){var p=d.edge(g.v,g.w)||0,y=u(g),E=p+y;d.setEdge(g.v,g.w,E),h=Math.max(h,d.node(g.v).out+=y),f=Math.max(f,d.node(g.w).in+=y)});var _=e.range(h+f+3).map(function(){return new n}),m=f+1;return e.forEach(d.nodes(),function(g){c(_,m,d.node(g))}),{graph:d,buckets:_,zeroIdx:m}}function c(l,u,d){d.out?d.in?l[d.out-d.in+u].enqueue(d):l[l.length-1].enqueue(d):l[0].enqueue(d)}return xr}var Sr,Rs;function km(){if(Rs)return Sr;Rs=1;var e=oe(),t=Cm();Sr={run:n,undo:o};function n(i){var s=i.graph().acyclicer==="greedy"?t(i,a(i)):r(i);e.forEach(s,function(c){var l=i.edge(c);i.removeEdge(c),l.forwardName=c.name,l.reversed=!0,i.setEdge(c.w,c.v,l,e.uniqueId("rev"))});function a(c){return function(l){return c.edge(l).weight}}}function r(i){var s=[],a={},c={};function l(u){e.has(c,u)||(c[u]=!0,a[u]=!0,e.forEach(i.outEdges(u),function(d){e.has(a,d.w)?s.push(d):l(d.w)}),delete a[u])}return e.forEach(i.nodes(),l),s}function o(i){e.forEach(i.edges(),function(s){var a=i.edge(s);if(a.reversed){i.removeEdge(s);var c=a.forwardName;delete a.reversed,delete a.forwardName,i.setEdge(s.w,s.v,a,c)}})}return Sr}var Nr,As;function he(){if(As)return Nr;As=1;var e=oe(),t=_e().Graph;Nr={addDummyNode:n,simplify:r,asNonCompoundGraph:o,successorWeights:i,predecessorWeights:s,intersectRect:a,buildLayerMatrix:c,normalizeRanks:l,removeEmptyRanks:u,addBorderNode:d,maxRank:f,partition:h,time:_,notime:m};function n(g,p,y,E){var v;do v=e.uniqueId(E);while(g.hasNode(v));return y.dummy=p,g.setNode(v,y),v}function r(g){var p=new t().setGraph(g.graph());return e.forEach(g.nodes(),function(y){p.setNode(y,g.node(y))}),e.forEach(g.edges(),function(y){var E=p.edge(y.v,y.w)||{weight:0,minlen:1},v=g.edge(y);p.setEdge(y.v,y.w,{weight:E.weight+v.weight,minlen:Math.max(E.minlen,v.minlen)})}),p}function o(g){var p=new t({multigraph:g.isMultigraph()}).setGraph(g.graph());return e.forEach(g.nodes(),function(y){g.children(y).length||p.setNode(y,g.node(y))}),e.forEach(g.edges(),function(y){p.setEdge(y,g.edge(y))}),p}function i(g){var p=e.map(g.nodes(),function(y){var E={};return e.forEach(g.outEdges(y),function(v){E[v.w]=(E[v.w]||0)+g.edge(v).weight}),E});return e.zipObject(g.nodes(),p)}function s(g){var p=e.map(g.nodes(),function(y){var E={};return e.forEach(g.inEdges(y),function(v){E[v.v]=(E[v.v]||0)+g.edge(v).weight}),E});return e.zipObject(g.nodes(),p)}function a(g,p){var y=g.x,E=g.y,v=p.x-y,b=p.y-E,x=g.width/2,C=g.height/2;if(!v&&!b)throw new Error("Not possible to find intersection inside of the rectangle");var q,k;return Math.abs(b)*x>Math.abs(v)*C?(b<0&&(C=-C),q=C*v/b,k=C):(v<0&&(x=-x),q=x,k=x*b/v),{x:y+q,y:E+k}}function c(g){var p=e.map(e.range(f(g)+1),function(){return[]});return e.forEach(g.nodes(),function(y){var E=g.node(y),v=E.rank;e.isUndefined(v)||(p[v][E.order]=y)}),p}function l(g){var p=e.min(e.map(g.nodes(),function(y){return g.node(y).rank}));e.forEach(g.nodes(),function(y){var E=g.node(y);e.has(E,"rank")&&(E.rank-=p)})}function u(g){var p=e.min(e.map(g.nodes(),function(b){return g.node(b).rank})),y=[];e.forEach(g.nodes(),function(b){var x=g.node(b).rank-p;y[x]||(y[x]=[]),y[x].push(b)});var E=0,v=g.graph().nodeRankFactor;e.forEach(y,function(b,x){e.isUndefined(b)&&x%v!==0?--E:E&&e.forEach(b,function(C){g.node(C).rank+=E})})}function d(g,p,y,E){var v={width:0,height:0};return arguments.length>=4&&(v.rank=y,v.order=E),n(g,"border",v,p)}function f(g){return e.max(e.map(g.nodes(),function(p){var y=g.node(p).rank;if(!e.isUndefined(y))return y}))}function h(g,p){var y={lhs:[],rhs:[]};return e.forEach(g,function(E){p(E)?y.lhs.push(E):y.rhs.push(E)}),y}function _(g,p){var y=e.now();try{return p()}finally{console.log(g+" time: "+(e.now()-y)+"ms")}}function m(g,p){return p()}return Nr}var Cr,Ms;function Rm(){if(Ms)return Cr;Ms=1;var e=oe(),t=he();Cr={run:n,undo:o};function n(i){i.graph().dummyChains=[],e.forEach(i.edges(),function(s){r(i,s)})}function r(i,s){var a=s.v,c=i.node(a).rank,l=s.w,u=i.node(l).rank,d=s.name,f=i.edge(s),h=f.labelRank;if(u!==c+1){i.removeEdge(s);var _,m,g;for(g=0,++c;c<u;++g,++c)f.points=[],m={width:0,height:0,edgeLabel:f,edgeObj:s,rank:c},_=t.addDummyNode(i,"edge",m,"_d"),c===h&&(m.width=f.width,m.height=f.height,m.dummy="edge-label",m.labelpos=f.labelpos),i.setEdge(a,_,{weight:f.weight},d),g===0&&i.graph().dummyChains.push(_),a=_;i.setEdge(a,l,{weight:f.weight},d)}}function o(i){e.forEach(i.graph().dummyChains,function(s){var a=i.node(s),c=a.edgeLabel,l;for(i.setEdge(a.edgeObj,c);a.dummy;)l=i.successors(s)[0],i.removeNode(s),c.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(c.x=a.x,c.y=a.y,c.width=a.width,c.height=a.height),s=l,a=i.node(s)})}return Cr}var kr,Is;function Yt(){if(Is)return kr;Is=1;var e=oe();kr={longestPath:t,slack:n};function t(r){var o={};function i(s){var a=r.node(s);if(e.has(o,s))return a.rank;o[s]=!0;var c=e.min(e.map(r.outEdges(s),function(l){return i(l.w)-r.edge(l).minlen}));return(c===Number.POSITIVE_INFINITY||c===void 0||c===null)&&(c=0),a.rank=c}e.forEach(r.sources(),i)}function n(r,o){return r.node(o.w).rank-r.node(o.v).rank-r.edge(o).minlen}return kr}var Rr,qs;function Zu(){if(qs)return Rr;qs=1;var e=oe(),t=_e().Graph,n=Yt().slack;Rr=r;function r(a){var c=new t({directed:!1}),l=a.nodes()[0],u=a.nodeCount();c.setNode(l,{});for(var d,f;o(c,a)<u;)d=i(c,a),f=c.hasNode(d.v)?n(a,d):-n(a,d),s(c,a,f);return c}function o(a,c){function l(u){e.forEach(c.nodeEdges(u),function(d){var f=d.v,h=u===f?d.w:f;!a.hasNode(h)&&!n(c,d)&&(a.setNode(h,{}),a.setEdge(u,h,{}),l(h))})}return e.forEach(a.nodes(),l),a.nodeCount()}function i(a,c){return e.minBy(c.edges(),function(l){if(a.hasNode(l.v)!==a.hasNode(l.w))return n(c,l)})}function s(a,c,l){e.forEach(a.nodes(),function(u){c.node(u).rank+=l})}return Rr}var Ar,Ts;function Am(){if(Ts)return Ar;Ts=1;var e=oe(),t=Zu(),n=Yt().slack,r=Yt().longestPath,o=_e().alg.preorder,i=_e().alg.postorder,s=he().simplify;Ar=a,a.initLowLimValues=d,a.initCutValues=c,a.calcCutValue=u,a.leaveEdge=h,a.enterEdge=_,a.exchangeEdges=m;function a(E){E=s(E),r(E);var v=t(E);d(v),c(v,E);for(var b,x;b=h(v);)x=_(v,E,b),m(v,E,b,x)}function c(E,v){var b=i(E,E.nodes());b=b.slice(0,b.length-1),e.forEach(b,function(x){l(E,v,x)})}function l(E,v,b){var x=E.node(b),C=x.parent;E.edge(b,C).cutvalue=u(E,v,b)}function u(E,v,b){var x=E.node(b),C=x.parent,q=!0,k=v.edge(b,C),A=0;return k||(q=!1,k=v.edge(C,b)),A=k.weight,e.forEach(v.nodeEdges(b),function(D){var $=D.v===b,L=$?D.w:D.v;if(L!==C){var w=$===q,R=v.edge(D).weight;if(A+=w?R:-R,p(E,b,L)){var N=E.edge(b,L).cutvalue;A+=w?-N:N}}}),A}function d(E,v){arguments.length<2&&(v=E.nodes()[0]),f(E,{},1,v)}function f(E,v,b,x,C){var q=b,k=E.node(x);return v[x]=!0,e.forEach(E.neighbors(x),function(A){e.has(v,A)||(b=f(E,v,b,A,x))}),k.low=q,k.lim=b++,C?k.parent=C:delete k.parent,b}function h(E){return e.find(E.edges(),function(v){return E.edge(v).cutvalue<0})}function _(E,v,b){var x=b.v,C=b.w;v.hasEdge(x,C)||(x=b.w,C=b.v);var q=E.node(x),k=E.node(C),A=q,D=!1;q.lim>k.lim&&(A=k,D=!0);var $=e.filter(v.edges(),function(L){return D===y(E,E.node(L.v),A)&&D!==y(E,E.node(L.w),A)});return e.minBy($,function(L){return n(v,L)})}function m(E,v,b,x){var C=b.v,q=b.w;E.removeEdge(C,q),E.setEdge(x.v,x.w,{}),d(E),c(E,v),g(E,v)}function g(E,v){var b=e.find(E.nodes(),function(C){return!v.node(C).parent}),x=o(E,b);x=x.slice(1),e.forEach(x,function(C){var q=E.node(C).parent,k=v.edge(C,q),A=!1;k||(k=v.edge(q,C),A=!0),v.node(C).rank=v.node(q).rank+(A?k.minlen:-k.minlen)})}function p(E,v,b){return E.hasEdge(v,b)}function y(E,v,b){return b.low<=v.lim&&v.lim<=b.lim}return Ar}var Mr,Ps;function Mm(){if(Ps)return Mr;Ps=1;var e=Yt(),t=e.longestPath,n=Zu(),r=Am();Mr=o;function o(c){switch(c.graph().ranker){case"network-simplex":a(c);break;case"tight-tree":s(c);break;case"longest-path":i(c);break;default:a(c)}}var i=t;function s(c){t(c),n(c)}function a(c){r(c)}return Mr}var Ir,Ds;function Im(){if(Ds)return Ir;Ds=1;var e=oe();Ir=t;function t(o){var i=r(o);e.forEach(o.graph().dummyChains,function(s){for(var a=o.node(s),c=a.edgeObj,l=n(o,i,c.v,c.w),u=l.path,d=l.lca,f=0,h=u[f],_=!0;s!==c.w;){if(a=o.node(s),_){for(;(h=u[f])!==d&&o.node(h).maxRank<a.rank;)f++;h===d&&(_=!1)}if(!_){for(;f<u.length-1&&o.node(h=u[f+1]).minRank<=a.rank;)f++;h=u[f]}o.setParent(s,h),s=o.successors(s)[0]}})}function n(o,i,s,a){var c=[],l=[],u=Math.min(i[s].low,i[a].low),d=Math.max(i[s].lim,i[a].lim),f,h;f=s;do f=o.parent(f),c.push(f);while(f&&(i[f].low>u||d>i[f].lim));for(h=f,f=a;(f=o.parent(f))!==h;)l.push(f);return{path:c.concat(l.reverse()),lca:h}}function r(o){var i={},s=0;function a(c){var l=s;e.forEach(o.children(c),a),i[c]={low:l,lim:s++}}return e.forEach(o.children(),a),i}return Ir}var qr,zs;function qm(){if(zs)return qr;zs=1;var e=oe(),t=he();qr={run:n,cleanup:s};function n(a){var c=t.addDummyNode(a,"root",{},"_root"),l=o(a),u=e.max(e.values(l))-1,d=2*u+1;a.graph().nestingRoot=c,e.forEach(a.edges(),function(h){a.edge(h).minlen*=d});var f=i(a)+1;e.forEach(a.children(),function(h){r(a,c,d,f,u,l,h)}),a.graph().nodeRankFactor=d}function r(a,c,l,u,d,f,h){var _=a.children(h);if(!_.length){h!==c&&a.setEdge(c,h,{weight:0,minlen:l});return}var m=t.addBorderNode(a,"_bt"),g=t.addBorderNode(a,"_bb"),p=a.node(h);a.setParent(m,h),p.borderTop=m,a.setParent(g,h),p.borderBottom=g,e.forEach(_,function(y){r(a,c,l,u,d,f,y);var E=a.node(y),v=E.borderTop?E.borderTop:y,b=E.borderBottom?E.borderBottom:y,x=E.borderTop?u:2*u,C=v!==b?1:d-f[h]+1;a.setEdge(m,v,{weight:x,minlen:C,nestingEdge:!0}),a.setEdge(b,g,{weight:x,minlen:C,nestingEdge:!0})}),a.parent(h)||a.setEdge(c,m,{weight:0,minlen:d+f[h]})}function o(a){var c={};function l(u,d){var f=a.children(u);f&&f.length&&e.forEach(f,function(h){l(h,d+1)}),c[u]=d}return e.forEach(a.children(),function(u){l(u,1)}),c}function i(a){return e.reduce(a.edges(),function(c,l){return c+a.edge(l).weight},0)}function s(a){var c=a.graph();a.removeNode(c.nestingRoot),delete c.nestingRoot,e.forEach(a.edges(),function(l){var u=a.edge(l);u.nestingEdge&&a.removeEdge(l)})}return qr}var Tr,Ls;function Tm(){if(Ls)return Tr;Ls=1;var e=oe(),t=he();Tr=n;function n(o){function i(s){var a=o.children(s),c=o.node(s);if(a.length&&e.forEach(a,i),e.has(c,"minRank")){c.borderLeft=[],c.borderRight=[];for(var l=c.minRank,u=c.maxRank+1;l<u;++l)r(o,"borderLeft","_bl",s,c,l),r(o,"borderRight","_br",s,c,l)}}e.forEach(o.children(),i)}function r(o,i,s,a,c,l){var u={width:0,height:0,rank:l,borderType:i},d=c[i][l-1],f=t.addDummyNode(o,"border",u,s);c[i][l]=f,o.setParent(f,a),d&&o.setEdge(d,f,{weight:1})}return Tr}var Pr,$s;function Pm(){if($s)return Pr;$s=1;var e=oe();Pr={adjust:t,undo:n};function t(l){var u=l.graph().rankdir.toLowerCase();(u==="lr"||u==="rl")&&r(l)}function n(l){var u=l.graph().rankdir.toLowerCase();(u==="bt"||u==="rl")&&i(l),(u==="lr"||u==="rl")&&(a(l),r(l))}function r(l){e.forEach(l.nodes(),function(u){o(l.node(u))}),e.forEach(l.edges(),function(u){o(l.edge(u))})}function o(l){var u=l.width;l.width=l.height,l.height=u}function i(l){e.forEach(l.nodes(),function(u){s(l.node(u))}),e.forEach(l.edges(),function(u){var d=l.edge(u);e.forEach(d.points,s),e.has(d,"y")&&s(d)})}function s(l){l.y=-l.y}function a(l){e.forEach(l.nodes(),function(u){c(l.node(u))}),e.forEach(l.edges(),function(u){var d=l.edge(u);e.forEach(d.points,c),e.has(d,"x")&&c(d)})}function c(l){var u=l.x;l.x=l.y,l.y=u}return Pr}var Dr,Os;function Dm(){if(Os)return Dr;Os=1;var e=oe();Dr=t;function t(n){var r={},o=e.filter(n.nodes(),function(l){return!n.children(l).length}),i=e.max(e.map(o,function(l){return n.node(l).rank})),s=e.map(e.range(i+1),function(){return[]});function a(l){if(!e.has(r,l)){r[l]=!0;var u=n.node(l);s[u.rank].push(l),e.forEach(n.successors(l),a)}}var c=e.sortBy(o,function(l){return n.node(l).rank});return e.forEach(c,a),s}return Dr}var zr,Fs;function zm(){if(Fs)return zr;Fs=1;var e=oe();zr=t;function t(r,o){for(var i=0,s=1;s<o.length;++s)i+=n(r,o[s-1],o[s]);return i}function n(r,o,i){for(var s=e.zipObject(i,e.map(i,function(f,h){return h})),a=e.flatten(e.map(o,function(f){return e.sortBy(e.map(r.outEdges(f),function(h){return{pos:s[h.w],weight:r.edge(h).weight}}),"pos")}),!0),c=1;c<i.length;)c<<=1;var l=2*c-1;c-=1;var u=e.map(new Array(l),function(){return 0}),d=0;return e.forEach(a.forEach(function(f){var h=f.pos+c;u[h]+=f.weight;for(var _=0;h>0;)h%2&&(_+=u[h+1]),h=h-1>>1,u[h]+=f.weight;d+=f.weight*_})),d}return zr}var Lr,Hs;function Lm(){if(Hs)return Lr;Hs=1;var e=oe();Lr=t;function t(n,r){return e.map(r,function(o){var i=n.inEdges(o);if(i.length){var s=e.reduce(i,function(a,c){var l=n.edge(c),u=n.node(c.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:o,barycenter:s.sum/s.weight,weight:s.weight}}else return{v:o}})}return Lr}var $r,Vs;function $m(){if(Vs)return $r;Vs=1;var e=oe();$r=t;function t(o,i){var s={};e.forEach(o,function(c,l){var u=s[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:l};e.isUndefined(c.barycenter)||(u.barycenter=c.barycenter,u.weight=c.weight)}),e.forEach(i.edges(),function(c){var l=s[c.v],u=s[c.w];!e.isUndefined(l)&&!e.isUndefined(u)&&(u.indegree++,l.out.push(s[c.w]))});var a=e.filter(s,function(c){return!c.indegree});return n(a)}function n(o){var i=[];function s(l){return function(u){u.merged||(e.isUndefined(u.barycenter)||e.isUndefined(l.barycenter)||u.barycenter>=l.barycenter)&&r(l,u)}}function a(l){return function(u){u.in.push(l),--u.indegree===0&&o.push(u)}}for(;o.length;){var c=o.pop();i.push(c),e.forEach(c.in.reverse(),s(c)),e.forEach(c.out,a(c))}return e.map(e.filter(i,function(l){return!l.merged}),function(l){return e.pick(l,["vs","i","barycenter","weight"])})}function r(o,i){var s=0,a=0;o.weight&&(s+=o.barycenter*o.weight,a+=o.weight),i.weight&&(s+=i.barycenter*i.weight,a+=i.weight),o.vs=i.vs.concat(o.vs),o.barycenter=s/a,o.weight=a,o.i=Math.min(i.i,o.i),i.merged=!0}return $r}var Or,Bs;function Om(){if(Bs)return Or;Bs=1;var e=oe(),t=he();Or=n;function n(i,s){var a=t.partition(i,function(m){return e.has(m,"barycenter")}),c=a.lhs,l=e.sortBy(a.rhs,function(m){return-m.i}),u=[],d=0,f=0,h=0;c.sort(o(!!s)),h=r(u,l,h),e.forEach(c,function(m){h+=m.vs.length,u.push(m.vs),d+=m.barycenter*m.weight,f+=m.weight,h=r(u,l,h)});var _={vs:e.flatten(u,!0)};return f&&(_.barycenter=d/f,_.weight=f),_}function r(i,s,a){for(var c;s.length&&(c=e.last(s)).i<=a;)s.pop(),i.push(c.vs),a++;return a}function o(i){return function(s,a){return s.barycenter<a.barycenter?-1:s.barycenter>a.barycenter?1:i?a.i-s.i:s.i-a.i}}return Or}var Fr,Gs;function Fm(){if(Gs)return Fr;Gs=1;var e=oe(),t=Lm(),n=$m(),r=Om();Fr=o;function o(a,c,l,u){var d=a.children(c),f=a.node(c),h=f?f.borderLeft:void 0,_=f?f.borderRight:void 0,m={};h&&(d=e.filter(d,function(b){return b!==h&&b!==_}));var g=t(a,d);e.forEach(g,function(b){if(a.children(b.v).length){var x=o(a,b.v,l,u);m[b.v]=x,e.has(x,"barycenter")&&s(b,x)}});var p=n(g,l);i(p,m);var y=r(p,u);if(h&&(y.vs=e.flatten([h,y.vs,_],!0),a.predecessors(h).length)){var E=a.node(a.predecessors(h)[0]),v=a.node(a.predecessors(_)[0]);e.has(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+E.order+v.order)/(y.weight+2),y.weight+=2}return y}function i(a,c){e.forEach(a,function(l){l.vs=e.flatten(l.vs.map(function(u){return c[u]?c[u].vs:u}),!0)})}function s(a,c){e.isUndefined(a.barycenter)?(a.barycenter=c.barycenter,a.weight=c.weight):(a.barycenter=(a.barycenter*a.weight+c.barycenter*c.weight)/(a.weight+c.weight),a.weight+=c.weight)}return Fr}var Hr,Us;function Hm(){if(Us)return Hr;Us=1;var e=oe(),t=_e().Graph;Hr=n;function n(o,i,s){var a=r(o),c=new t({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(function(l){return o.node(l)});return e.forEach(o.nodes(),function(l){var u=o.node(l),d=o.parent(l);(u.rank===i||u.minRank<=i&&i<=u.maxRank)&&(c.setNode(l),c.setParent(l,d||a),e.forEach(o[s](l),function(f){var h=f.v===l?f.w:f.v,_=c.edge(h,l),m=e.isUndefined(_)?0:_.weight;c.setEdge(h,l,{weight:o.edge(f).weight+m})}),e.has(u,"minRank")&&c.setNode(l,{borderLeft:u.borderLeft[i],borderRight:u.borderRight[i]}))}),c}function r(o){for(var i;o.hasNode(i=e.uniqueId("_root")););return i}return Hr}var Vr,Ys;function Vm(){if(Ys)return Vr;Ys=1;var e=oe();Vr=t;function t(n,r,o){var i={},s;e.forEach(o,function(a){for(var c=n.parent(a),l,u;c;){if(l=n.parent(c),l?(u=i[l],i[l]=c):(u=s,s=c),u&&u!==c){r.setEdge(u,c);return}c=l}})}return Vr}var Br,Ws;function Bm(){if(Ws)return Br;Ws=1;var e=oe(),t=Dm(),n=zm(),r=Fm(),o=Hm(),i=Vm(),s=_e().Graph,a=he();Br=c;function c(f){var h=a.maxRank(f),_=l(f,e.range(1,h+1),"inEdges"),m=l(f,e.range(h-1,-1,-1),"outEdges"),g=t(f);d(f,g);for(var p=Number.POSITIVE_INFINITY,y,E=0,v=0;v<4;++E,++v){u(E%2?_:m,E%4>=2),g=a.buildLayerMatrix(f);var b=n(f,g);b<p&&(v=0,y=e.cloneDeep(g),p=b)}d(f,y)}function l(f,h,_){return e.map(h,function(m){return o(f,m,_)})}function u(f,h){var _=new s;e.forEach(f,function(m){var g=m.graph().root,p=r(m,g,_,h);e.forEach(p.vs,function(y,E){m.node(y).order=E}),i(m,_,p.vs)})}function d(f,h){e.forEach(h,function(_){e.forEach(_,function(m,g){f.node(m).order=g})})}return Br}var Gr,Zs;function Gm(){if(Zs)return Gr;Zs=1;var e=oe(),t=_e().Graph,n=he();Gr={positionX:_,findType1Conflicts:r,findType2Conflicts:o,addConflict:s,hasConflict:a,verticalAlignment:c,horizontalCompaction:l,alignCoordinates:f,findSmallestWidthAlignment:d,balance:h};function r(p,y){var E={};function v(b,x){var C=0,q=0,k=b.length,A=e.last(x);return e.forEach(x,function(D,$){var L=i(p,D),w=L?p.node(L).order:k;(L||D===A)&&(e.forEach(x.slice(q,$+1),function(R){e.forEach(p.predecessors(R),function(N){var O=p.node(N),H=O.order;(H<C||w<H)&&!(O.dummy&&p.node(R).dummy)&&s(E,N,R)})}),q=$+1,C=w)}),x}return e.reduce(y,v),E}function o(p,y){var E={};function v(x,C,q,k,A){var D;e.forEach(e.range(C,q),function($){D=x[$],p.node(D).dummy&&e.forEach(p.predecessors(D),function(L){var w=p.node(L);w.dummy&&(w.order<k||w.order>A)&&s(E,L,D)})})}function b(x,C){var q=-1,k,A=0;return e.forEach(C,function(D,$){if(p.node(D).dummy==="border"){var L=p.predecessors(D);L.length&&(k=p.node(L[0]).order,v(C,A,$,q,k),A=$,q=k)}v(C,A,C.length,k,x.length)}),C}return e.reduce(y,b),E}function i(p,y){if(p.node(y).dummy)return e.find(p.predecessors(y),function(E){return p.node(E).dummy})}function s(p,y,E){if(y>E){var v=y;y=E,E=v}var b=p[y];b||(p[y]=b={}),b[E]=!0}function a(p,y,E){if(y>E){var v=y;y=E,E=v}return e.has(p[y],E)}function c(p,y,E,v){var b={},x={},C={};return e.forEach(y,function(q){e.forEach(q,function(k,A){b[k]=k,x[k]=k,C[k]=A})}),e.forEach(y,function(q){var k=-1;e.forEach(q,function(A){var D=v(A);if(D.length){D=e.sortBy(D,function(N){return C[N]});for(var $=(D.length-1)/2,L=Math.floor($),w=Math.ceil($);L<=w;++L){var R=D[L];x[A]===A&&k<C[R]&&!a(E,A,R)&&(x[R]=A,x[A]=b[A]=b[R],k=C[R])}}})}),{root:b,align:x}}function l(p,y,E,v,b){var x={},C=u(p,y,E,b),q=b?"borderLeft":"borderRight";function k($,L){for(var w=C.nodes(),R=w.pop(),N={};R;)N[R]?$(R):(N[R]=!0,w.push(R),w=w.concat(L(R))),R=w.pop()}function A($){x[$]=C.inEdges($).reduce(function(L,w){return Math.max(L,x[w.v]+C.edge(w))},0)}function D($){var L=C.outEdges($).reduce(function(R,N){return Math.min(R,x[N.w]-C.edge(N))},Number.POSITIVE_INFINITY),w=p.node($);L!==Number.POSITIVE_INFINITY&&w.borderType!==q&&(x[$]=Math.max(x[$],L))}return k(A,C.predecessors.bind(C)),k(D,C.successors.bind(C)),e.forEach(v,function($){x[$]=x[E[$]]}),x}function u(p,y,E,v){var b=new t,x=p.graph(),C=m(x.nodesep,x.edgesep,v);return e.forEach(y,function(q){var k;e.forEach(q,function(A){var D=E[A];if(b.setNode(D),k){var $=E[k],L=b.edge($,D);b.setEdge($,D,Math.max(C(p,A,k),L||0))}k=A})}),b}function d(p,y){return e.minBy(e.values(y),function(E){var v=Number.NEGATIVE_INFINITY,b=Number.POSITIVE_INFINITY;return e.forIn(E,function(x,C){var q=g(p,C)/2;v=Math.max(x+q,v),b=Math.min(x-q,b)}),v-b})}function f(p,y){var E=e.values(y),v=e.min(E),b=e.max(E);e.forEach(["u","d"],function(x){e.forEach(["l","r"],function(C){var q=x+C,k=p[q],A;if(k!==y){var D=e.values(k);A=C==="l"?v-e.min(D):b-e.max(D),A&&(p[q]=e.mapValues(k,function($){return $+A}))}})})}function h(p,y){return e.mapValues(p.ul,function(E,v){if(y)return p[y.toLowerCase()][v];var b=e.sortBy(e.map(p,v));return(b[1]+b[2])/2})}function _(p){var y=n.buildLayerMatrix(p),E=e.merge(r(p,y),o(p,y)),v={},b;e.forEach(["u","d"],function(C){b=C==="u"?y:e.values(y).reverse(),e.forEach(["l","r"],function(q){q==="r"&&(b=e.map(b,function($){return e.values($).reverse()}));var k=(C==="u"?p.predecessors:p.successors).bind(p),A=c(p,b,E,k),D=l(p,b,A.root,A.align,q==="r");q==="r"&&(D=e.mapValues(D,function($){return-$})),v[C+q]=D})});var x=d(p,v);return f(v,x),h(v,p.graph().align)}function m(p,y,E){return function(v,b,x){var C=v.node(b),q=v.node(x),k=0,A;if(k+=C.width/2,e.has(C,"labelpos"))switch(C.labelpos.toLowerCase()){case"l":A=-C.width/2;break;case"r":A=C.width/2;break}if(A&&(k+=E?A:-A),A=0,k+=(C.dummy?y:p)/2,k+=(q.dummy?y:p)/2,k+=q.width/2,e.has(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":A=q.width/2;break;case"r":A=-q.width/2;break}return A&&(k+=E?A:-A),A=0,k}}function g(p,y){return p.node(y).width}return Gr}var Ur,Xs;function Um(){if(Xs)return Ur;Xs=1;var e=oe(),t=he(),n=Gm().positionX;Ur=r;function r(i){i=t.asNonCompoundGraph(i),o(i),e.forEach(n(i),function(s,a){i.node(a).x=s})}function o(i){var s=t.buildLayerMatrix(i),a=i.graph().ranksep,c=0;e.forEach(s,function(l){var u=e.max(e.map(l,function(d){return i.node(d).height}));e.forEach(l,function(d){i.node(d).y=c+u/2}),c+=u+a})}return Ur}var Yr,Ks;function Ym(){if(Ks)return Yr;Ks=1;var e=oe(),t=km(),n=Rm(),r=Mm(),o=he().normalizeRanks,i=Im(),s=he().removeEmptyRanks,a=qm(),c=Tm(),l=Pm(),u=Bm(),d=Um(),f=he(),h=_e().Graph;Yr=_;function _(S,I){var z=I&&I.debugTiming?f.time:f.notime;z("layout",function(){var V=z(" buildLayoutGraph",function(){return k(S)});z(" runLayout",function(){m(V,z)}),z(" updateInputGraph",function(){g(S,V)})})}function m(S,I){I(" makeSpaceForEdgeLabels",function(){A(S)}),I(" removeSelfEdges",function(){M(S)}),I(" acyclic",function(){t.run(S)}),I(" nestingGraph.run",function(){a.run(S)}),I(" rank",function(){r(f.asNonCompoundGraph(S))}),I(" injectEdgeLabelProxies",function(){D(S)}),I(" removeEmptyRanks",function(){s(S)}),I(" nestingGraph.cleanup",function(){a.cleanup(S)}),I(" normalizeRanks",function(){o(S)}),I(" assignRankMinMax",function(){$(S)}),I(" removeEdgeLabelProxies",function(){L(S)}),I(" normalize.run",function(){n.run(S)}),I(" parentDummyChains",function(){i(S)}),I(" addBorderSegments",function(){c(S)}),I(" order",function(){u(S)}),I(" insertSelfEdges",function(){F(S)}),I(" adjustCoordinateSystem",function(){l.adjust(S)}),I(" position",function(){d(S)}),I(" positionSelfEdges",function(){B(S)}),I(" removeBorderNodes",function(){H(S)}),I(" normalize.undo",function(){n.undo(S)}),I(" fixupEdgeLabelCoords",function(){N(S)}),I(" undoCoordinateSystem",function(){l.undo(S)}),I(" translateGraph",function(){w(S)}),I(" assignNodeIntersects",function(){R(S)}),I(" reversePoints",function(){O(S)}),I(" acyclic.undo",function(){t.undo(S)})}function g(S,I){e.forEach(S.nodes(),function(z){var V=S.node(z),Y=I.node(z);V&&(V.x=Y.x,V.y=Y.y,I.children(z).length&&(V.width=Y.width,V.height=Y.height))}),e.forEach(S.edges(),function(z){var V=S.edge(z),Y=I.edge(z);V.points=Y.points,e.has(Y,"x")&&(V.x=Y.x,V.y=Y.y)}),S.graph().width=I.graph().width,S.graph().height=I.graph().height}var p=["nodesep","edgesep","ranksep","marginx","marginy"],y={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},E=["acyclicer","ranker","rankdir","align"],v=["width","height"],b={width:0,height:0},x=["minlen","weight","width","height","labeloffset"],C={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},q=["labelpos"];function k(S){var I=new h({multigraph:!0,compound:!0}),z=U(S.graph());return I.setGraph(e.merge({},y,G(z,p),e.pick(z,E))),e.forEach(S.nodes(),function(V){var Y=U(S.node(V));I.setNode(V,e.defaults(G(Y,v),b)),I.setParent(V,S.parent(V))}),e.forEach(S.edges(),function(V){var Y=U(S.edge(V));I.setEdge(V,e.merge({},C,G(Y,x),e.pick(Y,q)))}),I}function A(S){var I=S.graph();I.ranksep/=2,e.forEach(S.edges(),function(z){var V=S.edge(z);V.minlen*=2,V.labelpos.toLowerCase()!=="c"&&(I.rankdir==="TB"||I.rankdir==="BT"?V.width+=V.labeloffset:V.height+=V.labeloffset)})}function D(S){e.forEach(S.edges(),function(I){var z=S.edge(I);if(z.width&&z.height){var V=S.node(I.v),Y=S.node(I.w),W={rank:(Y.rank-V.rank)/2+V.rank,e:I};f.addDummyNode(S,"edge-proxy",W,"_ep")}})}function $(S){var I=0;e.forEach(S.nodes(),function(z){var V=S.node(z);V.borderTop&&(V.minRank=S.node(V.borderTop).rank,V.maxRank=S.node(V.borderBottom).rank,I=e.max(I,V.maxRank))}),S.graph().maxRank=I}function L(S){e.forEach(S.nodes(),function(I){var z=S.node(I);z.dummy==="edge-proxy"&&(S.edge(z.e).labelRank=z.rank,S.removeNode(I))})}function w(S){var I=Number.POSITIVE_INFINITY,z=0,V=Number.POSITIVE_INFINITY,Y=0,W=S.graph(),K=W.marginx||0,ee=W.marginy||0;function ie(te){var Q=te.x,ne=te.y,le=te.width,J=te.height;I=Math.min(I,Q-le/2),z=Math.max(z,Q+le/2),V=Math.min(V,ne-J/2),Y=Math.max(Y,ne+J/2)}e.forEach(S.nodes(),function(te){ie(S.node(te))}),e.forEach(S.edges(),function(te){var Q=S.edge(te);e.has(Q,"x")&&ie(Q)}),I-=K,V-=ee,e.forEach(S.nodes(),function(te){var Q=S.node(te);Q.x-=I,Q.y-=V}),e.forEach(S.edges(),function(te){var Q=S.edge(te);e.forEach(Q.points,function(ne){ne.x-=I,ne.y-=V}),e.has(Q,"x")&&(Q.x-=I),e.has(Q,"y")&&(Q.y-=V)}),W.width=z-I+K,W.height=Y-V+ee}function R(S){e.forEach(S.edges(),function(I){var z=S.edge(I),V=S.node(I.v),Y=S.node(I.w),W,K;z.points?(W=z.points[0],K=z.points[z.points.length-1]):(z.points=[],W=Y,K=V),z.points.unshift(f.intersectRect(V,W)),z.points.push(f.intersectRect(Y,K))})}function N(S){e.forEach(S.edges(),function(I){var z=S.edge(I);if(e.has(z,"x"))switch((z.labelpos==="l"||z.labelpos==="r")&&(z.width-=z.labeloffset),z.labelpos){case"l":z.x-=z.width/2+z.labeloffset;break;case"r":z.x+=z.width/2+z.labeloffset;break}})}function O(S){e.forEach(S.edges(),function(I){var z=S.edge(I);z.reversed&&z.points.reverse()})}function H(S){e.forEach(S.nodes(),function(I){if(S.children(I).length){var z=S.node(I),V=S.node(z.borderTop),Y=S.node(z.borderBottom),W=S.node(e.last(z.borderLeft)),K=S.node(e.last(z.borderRight));z.width=Math.abs(K.x-W.x),z.height=Math.abs(Y.y-V.y),z.x=W.x+z.width/2,z.y=V.y+z.height/2}}),e.forEach(S.nodes(),function(I){S.node(I).dummy==="border"&&S.removeNode(I)})}function M(S){e.forEach(S.edges(),function(I){if(I.v===I.w){var z=S.node(I.v);z.selfEdges||(z.selfEdges=[]),z.selfEdges.push({e:I,label:S.edge(I)}),S.removeEdge(I)}})}function F(S){var I=f.buildLayerMatrix(S);e.forEach(I,function(z){var V=0;e.forEach(z,function(Y,W){var K=S.node(Y);K.order=W+V,e.forEach(K.selfEdges,function(ee){f.addDummyNode(S,"selfedge",{width:ee.label.width,height:ee.label.height,rank:K.rank,order:W+ ++V,e:ee.e,label:ee.label},"_se")}),delete K.selfEdges})})}function B(S){e.forEach(S.nodes(),function(I){var z=S.node(I);if(z.dummy==="selfedge"){var V=S.node(z.e.v),Y=V.x+V.width/2,W=V.y,K=z.x-Y,ee=V.height/2;S.setEdge(z.e,z.label),S.removeNode(I),z.label.points=[{x:Y+2*K/3,y:W-ee},{x:Y+5*K/6,y:W-ee},{x:Y+K,y:W},{x:Y+5*K/6,y:W+ee},{x:Y+2*K/3,y:W+ee}],z.label.x=z.x,z.label.y=z.y}})}function G(S,I){return e.mapValues(e.pick(S,I),Number)}function U(S){var I={};return e.forEach(S,function(z,V){I[V.toLowerCase()]=z}),I}return Yr}var Wr,js;function Wm(){if(js)return Wr;js=1;var e=oe(),t=he(),n=_e().Graph;Wr={debugOrdering:r};function r(o){var i=t.buildLayerMatrix(o),s=new n({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(a){s.setNode(a,{label:a}),s.setParent(a,"layer"+o.node(a).rank)}),e.forEach(o.edges(),function(a){s.setEdge(a.v,a.w,{},a.name)}),e.forEach(i,function(a,c){var l="layer"+c;s.setNode(l,{rank:"same"}),e.reduce(a,function(u,d){return s.setEdge(u,d,{style:"invis"}),d})}),s}return Wr}var Zr,Qs;function Zm(){return Qs||(Qs=1,Zr="0.8.5"),Zr}var Xr,Js;function nv(){return Js||(Js=1,Xr={graphlib:_e(),layout:Ym(),debug:Wm(),util:{time:he().time,notime:he().notime},version:Zm()}),Xr}export{tv as B,ev as C,Ut as H,Jm as M,X as P,vg as R,Qm as a,we as b,bo as c,nv as r,jm as u};