!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react/jsx-runtime"),require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react/jsx-runtime","react","react-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactFlow={},e.jsxRuntime,e.React,e.ReactDOM)}(this,function(e,t,n,o){"use strict";function r(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n,o=0;o{}};function a(){for(var e,t=0,n=arguments.length,o={};t=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!o.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}})),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++a0)for(var n,o,r=new Array(n),i=0;i=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),d.hasOwnProperty(t)?{space:d[t],local:e}:e}function f(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===u&&t.documentElement.namespaceURI===u?t.createElement(e):t.createElementNS(n,e)}}function g(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function p(e){var t=h(e);return(t.local?g:f)(t)}function m(){}function y(e){return null==e?m:function(){return this.querySelector(e)}}function v(){return[]}function x(e){return null==e?v:function(){return this.querySelectorAll(e)}}function w(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}function b(e){return function(){return this.matches(e)}}function S(e){return function(t){return t.matches(e)}}var C=Array.prototype.find;function E(){return this.firstElementChild}var M=Array.prototype.filter;function N(){return Array.from(this.children)}function k(e){return new Array(e.length)}function _(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function P(e,t,n,o,r,i){for(var a,s=0,c=t.length,l=i.length;st?1:e>=t?0:NaN}function D(e){return function(){this.removeAttribute(e)}}function R(e){return function(){this.removeAttributeNS(e.space,e.local)}}function L(e,t){return function(){this.setAttribute(e,t)}}function $(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function T(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function V(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function B(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function j(e){return function(){this.style.removeProperty(e)}}function H(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Z(e,t,n){return function(){var o=t.apply(this,arguments);null==o?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function X(e,t){return e.style.getPropertyValue(t)||B(e).getComputedStyle(e,null).getPropertyValue(t)}function Y(e){return function(){delete this[e]}}function F(e,t){return function(){this[e]=t}}function W(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function K(e){return e.trim().split(/^|\s+/)}function G(e){return e.classList||new q(e)}function q(e){this._node=e,this._names=K(e.getAttribute("class")||"")}function U(e,t){for(var n=G(e),o=-1,r=t.length;++o=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var xe=[null];function we(e,t){this._groups=e,this._parents=t}function be(){return new we([[document.documentElement]],xe)}function Se(e){return"string"==typeof e?new we([[document.querySelector(e)]],[document.documentElement]):new we([[e]],xe)}function Ce(e,t){if(e=function(e){let t;for(;t=e.sourceEvent;)e=t;return e}(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,[(o=o.matrixTransform(t.getScreenCTM().inverse())).x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}we.prototype=be.prototype={constructor:we,select:function(e){"function"!=typeof e&&(e=y(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r=b&&(b=w+1);!(x=y[b])&&++b=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=A);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i1?this.each((null==t?j:"function"==typeof t?Z:H)(e,t,null==n?"":n)):X(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Y:"function"==typeof t?W:F)(e,t)):this.node()[e]},classed:function(e,t){var n=K(e+"");if(arguments.length<2){for(var o=G(this.node()),r=-1,i=n.length;++r=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?pe:ge,o=0;o()=>e;function Ie(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,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:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}function Oe(e){return!e.ctrlKey&&!e.button}function Ae(){return this.parentNode}function De(e,t){return null==t?{x:e.x,y:e.y}:t}function Re(){return navigator.maxTouchPoints||"ontouchstart"in this}function Le(){var e,t,n,o,r=Oe,i=Ae,s=De,c=Re,l={},u=a("start","drag","end"),d=0,h=0;function f(e){e.on("mousedown.drag",g).filter(c).on("touchstart.drag",y).on("touchmove.drag",v,Ee).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(a,s){if(!o&&r.call(this,a,s)){var c=w(this,i.call(this,a,s),a,s,"mouse");c&&(Se(a.view).on("mousemove.drag",p,Me).on("mouseup.drag",m,Me),_e(a.view),Ne(a),n=!1,e=a.clientX,t=a.clientY,c("start",a))}}function p(o){if(ke(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>h}l.mouse("drag",o)}function m(e){Se(e.view).on("mousemove.drag mouseup.drag",null),Pe(e.view,n),ke(e),l.mouse("end",e)}function y(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),c=a.length;for(n=0;n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?ot(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?ot(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Fe.exec(e))?new it(t[1],t[2],t[3],1):(t=We.exec(e))?new it(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Ke.exec(e))?ot(t[1],t[2],t[3],t[4]):(t=Ge.exec(e))?ot(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=qe.exec(e))?dt(t[1],t[2]/100,t[3]/100,1):(t=Ue.exec(e))?dt(t[1],t[2]/100,t[3]/100,t[4]):Qe.hasOwnProperty(e)?nt(Qe[e]):"transparent"===e?new it(NaN,NaN,NaN,0):null}function nt(e){return new it(e>>16&255,e>>8&255,255&e,1)}function ot(e,t,n,o){return o<=0&&(e=t=n=NaN),new it(e,t,n,o)}function rt(e,t,n,o){return 1===arguments.length?((r=e)instanceof Ve||(r=tt(r)),r?new it((r=r.rgb()).r,r.g,r.b,r.opacity):new it):new it(e,t,n,null==o?1:o);var r}function it(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}function at(){return`#${ut(this.r)}${ut(this.g)}${ut(this.b)}`}function st(){const e=ct(this.opacity);return`${1===e?"rgb(":"rgba("}${lt(this.r)}, ${lt(this.g)}, ${lt(this.b)}${1===e?")":`, ${e})`}`}function ct(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function lt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ut(e){return((e=lt(e))<16?"0":"")+e.toString(16)}function dt(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ft(e,t,n,o)}function ht(e){if(e instanceof ft)return new ft(e.h,e.s,e.l,e.opacity);if(e instanceof Ve||(e=tt(e)),!e)return new ft;if(e instanceof ft)return e;var t=(e=e.rgb()).r/255,n=e.g/255,o=e.b/255,r=Math.min(t,n,o),i=Math.max(t,n,o),a=NaN,s=i-r,c=(i+r)/2;return s?(a=t===i?(n-o)/s+6*(n0&&c<1?0:a,new ft(a,s,c,e.opacity)}function ft(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}function gt(e){return(e=(e||0)%360)<0?e+360:e}function pt(e){return Math.max(0,Math.min(1,e||0))}function mt(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}$e(Ve,tt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Je,formatHex:Je,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return ht(this).formatHsl()},formatRgb:et,toString:et}),$e(it,rt,Te(Ve,{brighter(e){return e=null==e?je:Math.pow(je,e),new it(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?Be:Math.pow(Be,e),new it(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new it(lt(this.r),lt(this.g),lt(this.b),ct(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:at,formatHex:at,formatHex8:function(){return`#${ut(this.r)}${ut(this.g)}${ut(this.b)}${ut(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:st,toString:st})),$e(ft,function(e,t,n,o){return 1===arguments.length?ht(e):new ft(e,t,n,null==o?1:o)},Te(Ve,{brighter(e){return e=null==e?je:Math.pow(je,e),new ft(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Be:Math.pow(Be,e),new ft(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,r=2*n-o;return new it(mt(e>=240?e-240:e+120,r,o),mt(e,r,o),mt(e<120?e+240:e-120,r,o),this.opacity)},clamp(){return new ft(gt(this.h),pt(this.s),pt(this.l),ct(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=ct(this.opacity);return`${1===e?"hsl(":"hsla("}${gt(this.h)}, ${100*pt(this.s)}%, ${100*pt(this.l)}%${1===e?")":`, ${e})`}`}}));var yt=e=>()=>e;function vt(e){return 1===(e=+e)?xt:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}(t,n,e):yt(isNaN(t)?n:t)}}function xt(e,t){var n=t-e;return n?function(e,t){return function(n){return e+n*t}}(e,n):yt(isNaN(e)?t:e)}var wt=function e(t){var n=vt(t);function o(e,t){var o=n((e=rt(e)).r,(t=rt(t)).r),r=n(e.g,t.g),i=n(e.b,t.b),a=xt(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=r(t),e.b=i(t),e.opacity=a(t),e+""}}return o.gamma=e,o}(1);function bt(e,t){t||(t=[]);var n,o=e?Math.min(t.length,e.length):0,r=t.slice();return function(i){for(n=0;ni&&(r=t.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,c.push({i:a,x:Et(n,o)})),i=kt.lastIndex;return i180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:Et(e,t)})):t&&n.push(r(n)+"rotate("+t+o)}(i.rotate,a.rotate,s,c),function(e,t,n,i){e!==t?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:Et(e,t)}):t&&n.push(r(n)+"skewX("+t+o)}(i.skewX,a.skewX,s,c),function(e,t,n,o,i,a){if(e!==n||t!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:Et(e,n)},{i:s-2,x:Et(t,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,c),i=a=null,function(e){for(var t,n=-1,o=c.length;++n=0&&t._call.call(void 0,e),t=t._next;--jt}()}finally{jt=0,function(){var e,t,n=Tt,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Tt=t);Vt=e,tn(o)}(),Yt=0}}function en(){var e=Wt.now(),t=e-Xt;t>1e3&&(Ft-=t,Xt=e)}function tn(e){jt||(Ht&&(Ht=clearTimeout(Ht)),e-Yt>24?(e<1/0&&(Ht=setTimeout(Jt,e-Wt.now()-Ft)),Zt&&(Zt=clearInterval(Zt))):(Zt||(Xt=Wt.now(),Zt=setInterval(en,1e3)),jt=1,Kt(Jt)))}function nn(e,t,n){var o=new Ut;return t=null==t?0:+t,o.restart(n=>{o.stop(),e(n+t)},t,n),o}Ut.prototype=Qt.prototype={constructor:Ut,restart:function(e,t,n){if("function"!=typeof e)throw new TypeError("callback is not a function");n=(null==n?Gt():+n)+(null==t?0:+t),this._next||Vt===this||(Vt?Vt._next=this:Tt=this,Vt=this),this._call=e,this._time=n,tn()},stop:function(){this._call&&(this._call=null,this._time=1/0,tn())}};var on=a("start","end","cancel","interrupt"),rn=[];function an(e,t,n,o,r,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var o,r=e.__transition;function i(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var l,u,d,h;if(1!==n.state)return c();for(l in r)if((h=r[l]).name===n.name){if(3===h.state)return nn(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[l]):+l0)throw new Error("too late; already scheduled");return n}function cn(e,t){var n=ln(e,t);if(n.state>3)throw new Error("too late; already running");return n}function ln(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function un(e,t){var n,o,r,i=e.__transition,a=!0;if(i){for(r in t=null==t?null:t+"",i)(n=i[r]).name===t?(o=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(o?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete e.__transition}}function dn(e,t){var n,o;return function(){var r=cn(this,e),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a=0&&(e=e.slice(0,t)),!e||"start"===e})}(t)?sn:cn;return function(){var a=i(this,e),s=a.on;s!==o&&(r=(o=s).copy()).on(t,n),a.on=r}}(n,e,t))},attr:function(e,t){var n=h(e),o="transform"===n?Lt:gn;return this.attrTween(e,"function"==typeof t?(n.local?wn:xn)(n,o,fn(this,"attr."+e,t)):null==t?(n.local?mn:pn)(n):(n.local?vn:yn)(n,o,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;var o=h(e);return this.tween(n,(o.local?bn:Sn)(o,t))},style:function(e,t,n){var o="transform"==(e+="")?Rt:gn;return null==t?this.styleTween(e,function(e,t){var n,o,r;return function(){var i=X(this,e),a=(this.style.removeProperty(e),X(this,e));return i===a?null:i===n&&a===o?r:r=t(n=i,o=a)}}(e,o)).on("end.style."+e,_n(e)):"function"==typeof t?this.styleTween(e,function(e,t,n){var o,r,i;return function(){var a=X(this,e),s=n(this),c=s+"";return null==s&&(this.style.removeProperty(e),c=s=X(this,e)),a===c?null:a===o&&c===r?i:(r=c,i=t(o=a,s))}}(e,o,fn(this,"style."+e,t))).each(function(e,t){var n,o,r,i,a="style."+t,s="end."+a;return function(){var c=cn(this,e),l=c.on,u=null==c.value[a]?i||(i=_n(t)):void 0;l===n&&r===u||(o=(n=l).copy()).on(s,r=u),c.on=o}}(this._id,e)):this.styleTween(e,function(e,t,n){var o,r,i=n+"";return function(){var a=X(this,e);return a===i?null:a===o?r:r=t(o=a,n)}}(e,o,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==t)return this.tween(o,null);if("function"!=typeof t)throw new Error;return this.tween(o,function(e,t,n){var o,r;function i(){var i=t.apply(this,arguments);return i!==r&&(o=(r=i)&&function(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}(e,i,n)),o}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(fn(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,n;function o(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&function(e){return function(t){this.textContent=e.call(this,t)}}(o)),t}return o._value=e,o}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o,r=ln(this.node(),n).tween,i=0,a=r.length;i()=>e;function Ln(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function $n(e,t,n){this.k=e,this.x=t,this.y=n}$n.prototype={constructor:$n,scale:function(e){return 1===e?this:new $n(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new $n(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Tn=new $n(1,0,0);function Vn(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Tn;return e.__zoom}function Bn(e){e.stopImmediatePropagation()}function jn(e){e.preventDefault(),e.stopImmediatePropagation()}function Hn(e){return!(e.ctrlKey&&"wheel"!==e.type||e.button)}function Zn(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Xn(){return this.__zoom||Tn}function Yn(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Fn(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wn(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function Kn(){var e,t,n,o=Hn,r=Zn,i=Wn,s=Yn,c=Fn,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],d=250,h=Bt,f=a("start","zoom","end"),g=0,p=10;function m(e){e.property("__zoom",Xn).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",E).on("dblclick.zoom",M).filter(c).on("touchstart.zoom",N).on("touchmove.zoom",k).on("touchend.zoom touchcancel.zoom",_).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new $n(t,e.x,e.y)}function v(e,t,n){var o=t[0]-n[0]*e.k,r=t[1]-n[1]*e.k;return o===e.x&&r===e.y?e:new $n(e.k,o,r)}function x(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function w(e,t,n,o){e.on("start.zoom",function(){b(this,arguments).event(o).start()}).on("interrupt.zoom end.zoom",function(){b(this,arguments).event(o).end()}).tween("zoom",function(){var e=this,i=arguments,a=b(e,i).event(o),s=r.apply(e,i),c=null==n?x(s):"function"==typeof n?n.apply(e,i):n,l=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),u=e.__zoom,d="function"==typeof t?t.apply(e,i):t,f=h(u.invert(c).concat(l/u.k),d.invert(c).concat(l/d.k));return function(e){if(1===e)e=d;else{var t=f(e),n=l/t[2];e=new $n(n,c[0]-t[0]*n,c[1]-t[1]*n)}a.zoom(null,e)}})}function b(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=r.apply(e,t),this.taps=0}function C(e,...t){if(o.apply(this,arguments)){var n=b(this,t).event(e),r=this.__zoom,a=Math.max(l[0],Math.min(l[1],r.k*Math.pow(2,s.apply(this,arguments)))),c=Ce(e);if(n.wheel)n.mouse[0][0]===c[0]&&n.mouse[0][1]===c[1]||(n.mouse[1]=r.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(r.k===a)return;n.mouse=[c,r.invert(c)],un(this),n.start()}jn(e),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",i(v(y(r,a),n.mouse[0],n.mouse[1]),n.extent,u))}}function E(e,...t){if(!n&&o.apply(this,arguments)){var r=e.currentTarget,a=b(this,t,!0).event(e),s=Se(e.view).on("mousemove.zoom",function(e){if(jn(e),!a.moved){var t=e.clientX-l,n=e.clientY-d;a.moved=t*t+n*n>g}a.event(e).zoom("mouse",i(v(a.that.__zoom,a.mouse[0]=Ce(e,r),a.mouse[1]),a.extent,u))},!0).on("mouseup.zoom",function(e){s.on("mousemove.zoom mouseup.zoom",null),Pe(e.view,a.moved),jn(e),a.event(e).end()},!0),c=Ce(e,r),l=e.clientX,d=e.clientY;_e(e.view),Bn(e),a.mouse=[c,this.__zoom.invert(c)],un(this),a.start()}}function M(e,...t){if(o.apply(this,arguments)){var n=this.__zoom,a=Ce(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),c=n.k*(e.shiftKey?.5:2),l=i(v(y(n,c),a,s),r.apply(this,t),u);jn(e),d>0?Se(this).transition().duration(d).call(w,l,a,e):Se(this).call(m.transform,l,a,e)}}function N(n,...r){if(o.apply(this,arguments)){var i,a,s,c,l=n.touches,u=l.length,d=b(this,r,n.changedTouches.length===u).event(n);for(Bn(n),a=0;a`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,qn=e=>`Node type "${e}" not found. Using fallback type "default".`,Un=()=>"The parent container needs a width and a height to render the graph.",Qn=()=>"Only child nodes can use a parent extent.",Jn=()=>"Can't create edge. An edge needs a source and a target.",eo=e=>`The old edge with id=${e} does not exist.`,to=e=>`Marker type "${e}" doesn't exist.`,no=(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${"source"===e?n:o}", edge id: ${t}.`,oo=()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",ro=e=>`Edge type "${e}" not found. Using fallback type "default".`,io=e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,ao=()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",so=()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",co=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],lo=["Enter"," ","Escape"],uo={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var ho,fo,go;e.ConnectionMode=void 0,(ho=e.ConnectionMode||(e.ConnectionMode={})).Strict="strict",ho.Loose="loose",e.PanOnScrollMode=void 0,(fo=e.PanOnScrollMode||(e.PanOnScrollMode={})).Free="free",fo.Vertical="vertical",fo.Horizontal="horizontal",e.SelectionMode=void 0,(go=e.SelectionMode||(e.SelectionMode={})).Partial="partial",go.Full="full";const po={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var mo,yo,vo;e.ConnectionLineType=void 0,(mo=e.ConnectionLineType||(e.ConnectionLineType={})).Bezier="default",mo.Straight="straight",mo.Step="step",mo.SmoothStep="smoothstep",mo.SimpleBezier="simplebezier",e.MarkerType=void 0,(yo=e.MarkerType||(e.MarkerType={})).Arrow="arrow",yo.ArrowClosed="arrowclosed",e.Position=void 0,(vo=e.Position||(e.Position={})).Left="left",vo.Top="top",vo.Right="right",vo.Bottom="bottom";const xo={[e.Position.Left]:e.Position.Right,[e.Position.Right]:e.Position.Left,[e.Position.Top]:e.Position.Bottom,[e.Position.Bottom]:e.Position.Top};function wo(e,t){if(!e&&!t)return!0;if(!e||!t||e.size!==t.size)return!1;if(!e.size&&!t.size)return!0;for(const n of e.keys())if(!t.has(n))return!1;return!0}function bo(e,t,n){if(!n)return;const o=[];e.forEach((e,n)=>{t?.has(n)||o.push(e)}),o.length&&n(o)}function So(e){return null===e?null:e?"valid":"invalid"}const Co=e=>"id"in e&&"source"in e&&"target"in e,Eo=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Mo=(e,t=[0,0])=>{const{width:n,height:o}=Jo(e),r=e.origin??t,i=n*r[0],a=o*r[1];return{x:e.position.x-i,y:e.position.y-a}},No=(e,t={nodeOrigin:[0,0]})=>{if(0===e.length)return{x:0,y:0,width:0,height:0};const n=e.reduce((e,n)=>{const o="string"==typeof n;let r=t.nodeLookup||o?void 0:n;t.nodeLookup&&(r=o?t.nodeLookup.get(n):Eo(n)?n:t.nodeLookup.get(n.id));const i=r?jo(r,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return $o(e,i)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Vo(n)},ko=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(e=>{(void 0===t.filter||t.filter(e))&&(n=$o(n,jo(e)),o=!0)}),o?Vo(n):{x:0,y:0,width:0,height:0}},_o=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1)=>{const s={...Wo(t,[n,o,r]),width:t.width/r,height:t.height/r},c=[];for(const t of e.values()){const{measured:e,selectable:n=!0,hidden:o=!1}=t;if(a&&!n||o)continue;const r=e.width??t.width??t.initialWidth??null,l=e.height??t.height??t.initialHeight??null,u=Zo(s,Bo(t)),d=(r??0)*(l??0),h=i&&u>0;(!t.internals.handleBounds||h||u>=d||t.dragging)&&c.push(t)}return c},Po=(e,t)=>{const n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};async function zo({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},a){if(0===e.size)return!0;const s=function(e,t){const n=new Map,o=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{!e.measured.width||!e.measured.height||!t?.includeHiddenNodes&&e.hidden||o&&!o.has(e.id)||n.set(e.id,e)}),n}(e,a),c=ko(s),l=qo(c,t,n,a?.minZoom??r,a?.maxZoom??i,a?.padding??.1);return await o.setViewport(l,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),!0}function Io({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){const a=n.get(e),s=a.parentId?n.get(a.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=a.origin??o;let d=a.extent||r;if("parent"!==a.extent||a.expandParent)s&&Qo(a.extent)&&(d=[[a.extent[0][0]+c,a.extent[0][1]+l],[a.extent[1][0]+c,a.extent[1][1]+l]]);else if(s){const e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else i?.("005",Qn());const h=Qo(d)?Ao(t,d,a.measured):t;return void 0!==a.measured.width&&void 0!==a.measured.height||i?.("015",so()),{position:{x:h.x-c+(a.measured.width??0)*u[0],y:h.y-l+(a.measured.height??0)*u[1]},positionAbsolute:h}}const Oo=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ao=(e={x:0,y:0},t,n)=>({x:Oo(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Oo(e.y,t[0][1],t[1][1]-(n?.height??0))});function Do(e,t,n){const{width:o,height:r}=Jo(n),{x:i,y:a}=n.internals.positionAbsolute;return Ao(e,[[i,a],[i+o,a+r]],t)}const Ro=(e,t,n)=>en?-Oo(Math.abs(e-n),1,t)/t:0,Lo=(e,t,n=15,o=40)=>[Ro(e.x,o,t.width-o)*n,Ro(e.y,o,t.height-o)*n],$o=(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)}),To=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),Vo=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),Bo=(e,t=[0,0])=>{const{x:n,y:o}=Eo(e)?e.internals.positionAbsolute:Mo(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},jo=(e,t=[0,0])=>{const{x:n,y:o}=Eo(e)?e.internals.positionAbsolute:Mo(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},Ho=(e,t)=>Vo($o(To(e),To(t))),Zo=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},Xo=e=>Yo(e.width)&&Yo(e.height)&&Yo(e.x)&&Yo(e.y),Yo=e=>!isNaN(e)&&isFinite(e),Fo=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Wo=({x:e,y:t},[n,o,r],i=!1,a=[1,1])=>{const s={x:(e-n)/r,y:(t-o)/r};return i?Fo(s,a):s},Ko=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Go(e,t){if("number"==typeof e)return Math.floor(.5*(t-t/(1+e)));if("string"==typeof e&&e.endsWith("px")){const t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}const qo=(e,t,n,o,r,i)=>{const a=function(e,t,n){if("string"==typeof e||"number"==typeof e){const o=Go(e,n),r=Go(e,t);return{top:o,right:r,bottom:o,left:r,x:2*r,y:2*o}}if("object"==typeof e){const o=Go(e.top??e.y??0,n),r=Go(e.bottom??e.y??0,n),i=Go(e.left??e.x??0,t),a=Go(e.right??e.x??0,t);return{top:o,right:a,bottom:r,left:i,x:i+a,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(i,t,n),s=(t-a.x)/e.width,c=(n-a.y)/e.height,l=Math.min(s,c),u=Oo(l,o,r),d=t/2-(e.x+e.width/2)*u,h=n/2-(e.y+e.height/2)*u,f=function(e,t,n,o,r,i){const{x:a,y:s}=Ko(e,[t,n,o]),{x:c,y:l}=Ko({x:e.x+e.width,y:e.y+e.height},[t,n,o]),u=r-c,d=i-l;return{left:Math.floor(a),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}(e,d,h,u,t,n),g=Math.min(f.left-a.left,0),p=Math.min(f.top-a.top,0);return{x:d-g+Math.min(f.right-a.right,0),y:h-p+Math.min(f.bottom-a.bottom,0),zoom:u}},Uo=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function Qo(e){return null!=e&&"parent"!==e}function Jo(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function er(e){return void 0!==(e.measured?.width??e.width??e.initialWidth)&&void 0!==(e.measured?.height??e.height??e.initialHeight)}function tr(e,t={width:0,height:0},n,o,r){const i={...e},a=o.get(n);if(a){const e=a.origin||r;i.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return i}function nr(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function or(e){return{...uo,...e||{}}}function rr(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:i,y:a}=ur(e),s=Wo({x:i-(r?.left??0),y:a-(r?.top??0)},o),{x:c,y:l}=n?Fo(s,t):s;return{xSnapped:c,ySnapped:l,...s}}const ir=e=>({width:e.offsetWidth,height:e.offsetHeight}),ar=e=>e?.getRootNode?.()||window?.document,sr=["INPUT","SELECT","TEXTAREA"];function cr(e){const t=e.composedPath?.()?.[0]||e.target;if(1!==t?.nodeType)return!1;return sr.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const lr=e=>"clientX"in e,ur=(e,t)=>{const n=lr(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},dr=(e,t,n,o,r)=>{const i=t.querySelectorAll(`.${e}`);return i&&i.length?Array.from(i).map(t=>{const i=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:r,position:t.getAttribute("data-handlepos"),x:(i.left-n.left)/o,y:(i.top-n.top)/o,...ir(t)}}):null};function hr({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){const c=.125*e+.375*r+.375*a+.125*n,l=.125*t+.375*i+.375*s+.125*o;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function fr(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function gr({pos:t,x1:n,y1:o,x2:r,y2:i,c:a}){switch(t){case e.Position.Left:return[n-fr(n-r,a),o];case e.Position.Right:return[n+fr(r-n,a),o];case e.Position.Top:return[n,o-fr(o-i,a)];case e.Position.Bottom:return[n,o+fr(i-o,a)]}}function pr({sourceX:t,sourceY:n,sourcePosition:o=e.Position.Bottom,targetX:r,targetY:i,targetPosition:a=e.Position.Top,curvature:s=.25}){const[c,l]=gr({pos:o,x1:t,y1:n,x2:r,y2:i,c:s}),[u,d]=gr({pos:a,x1:r,y1:i,x2:t,y2:n,c:s}),[h,f,g,p]=hr({sourceX:t,sourceY:n,targetX:r,targetY:i,sourceControlX:c,sourceControlY:l,targetControlX:u,targetControlY:d});return[`M${t},${n} C${c},${l} ${u},${d} ${r},${i}`,h,f,g,p]}function mr({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n0}const vr=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`;function xr({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,a,s]=mr({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}const wr={[e.Position.Left]:{x:-1,y:0},[e.Position.Right]:{x:1,y:0},[e.Position.Top]:{x:0,y:-1},[e.Position.Bottom]:{x:0,y:1}},br=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Sr({source:t,sourcePosition:n=e.Position.Bottom,target:o,targetPosition:r=e.Position.Top,center:i,offset:a,stepPosition:s}){const c=wr[n],l=wr[r],u={x:t.x+c.x*a,y:t.y+c.y*a},d={x:o.x+l.x*a,y:o.y+l.y*a},h=(({source:t,sourcePosition:n=e.Position.Bottom,target:o})=>n===e.Position.Left||n===e.Position.Right?t.xt[f]?-1:1)*n:x[f]=(d[f]>o[f]?-1:1)*n}}if(n!==r){const t="x"===f?"y":"x",n=c[f]===l[t],o=u[t]>d[t],r=u[t]=Math.max(Math.abs(s.y-y[0].y),Math.abs(h.y-y[0].y))?(p=(s.x+h.x)/2,m=y[0].y):(p=y[0].x,m=(s.y+h.y)/2)}const S={x:u.x+v.x,y:u.y+v.y},C={x:d.x+x.x,y:d.y+x.y};return[[t,...S.x!==y[0].x||S.y!==y[0].y?[S]:[],...y,...C.x!==y[y.length-1].x||C.y!==y[y.length-1].y?[C]:[],o],p,m,w,b]}function Cr(e,t,n,o){const r=Math.min(br(e,t)/2,br(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){return`L ${i+r*(e.xe.id===t):e[0])||null}function Pr(e,t){if(!e)return"";if("string"==typeof e)return e;return`${t?`${t}__`:""}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}function zr(t,n,o,r,i){let a=.5;"start"===i?a=0:"end"===i&&(a=1);let s=[(t.x+t.width*a)*n.zoom+n.x,t.y*n.zoom+n.y-r],c=[-100*a,-100];switch(o){case e.Position.Right:s=[(t.x+t.width)*n.zoom+n.x+r,(t.y+t.height*a)*n.zoom+n.y],c=[0,-100*a];break;case e.Position.Bottom:s[1]=(t.y+t.height)*n.zoom+n.y+r,c[1]=0;break;case e.Position.Left:s=[t.x*n.zoom+n.x-r,(t.y+t.height*a)*n.zoom+n.y],c=[-100,-100*a]}return`translate(${s[0]}px, ${s[1]}px) translate(${c[0]}%, ${c[1]}%)`}const Ir={left:0,center:50,right:100},Or={top:0,center:50,bottom:100};const Ar={nodeOrigin:[0,0],nodeExtent:co,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Dr={...Ar,checkEquality:!0};function Rr(e,t){const n={...e};for(const e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function Lr(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],o=[];for(const t of e.handles){const r={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};"source"===t.type?n.push(r):"target"===t.type&&o.push(r)}return{source:n,target:o}}function $r(e){return"manual"===e}function Tr(e,t,n,o={}){const r=Rr(Dr,o),i={i:0},a=new Map(t),s=r?.elevateNodesOnSelect&&!$r(r.zIndexMode)?1e3:0;let c=e.length>0,l=!1;t.clear(),n.clear();for(const u of e){let e=a.get(u.id);if(r.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{const n=Mo(u,r.nodeOrigin),o=Qo(u.extent)?u.extent:r.nodeExtent,i=Ao(n,o,Jo(u));e={...r.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:i,handleBounds:Lr(u,e),z:Br(u,s,r.zIndexMode),userNode:u}},t.set(u.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(c=!1),u.parentId&&Vr(e,t,n,o,i),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function Vr(e,t,n,o,r){const{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:s,zIndexMode:c}=Rr(Ar,o),l=e.parentId,u=t.get(l);if(!u)return void console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}(e,n),r&&!u.parentId&&void 0===u.internals.rootParentIndex&&"auto"===c&&(u.internals.rootParentIndex=++r.i,u.internals.z=u.internals.z+10*r.i),r&&void 0!==u.internals.rootParentIndex&&(r.i=u.internals.rootParentIndex);const d=i&&!$r(c)?1e3:0,{x:h,y:f,z:g}=function(e,t,n,o,r,i){const{x:a,y:s}=t.internals.positionAbsolute,c=Jo(e),l=Mo(e,n),u=Qo(e.extent)?Ao(l,e.extent,c):l;let d=Ao({x:a+u.x,y:s+u.y},o,c);"parent"===e.extent&&(d=Do(d,c,t));const h=Br(e,r,i),f=t.internals.z??0;return{x:d.x,y:d.y,z:f>=h?f+1:h}}(e,u,a,s,d,c),{positionAbsolute:p}=e.internals,m=h!==p.x||f!==p.y;(m||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:m?{x:h,y:f}:p,z:g}})}function Br(e,t,n){const o=Yo(e.zIndex)?e.zIndex:0;return $r(n)?o:o+(e.selected?t:0)}function jr(e,t,n,o=[0,0]){const r=[],i=new Map;for(const n of e){const e=t.get(n.parentId);if(!e)continue;const o=i.get(n.parentId)?.expandedRect??Bo(e),r=Ho(o,n.rect);i.set(n.parentId,{expandedRect:r,parent:e})}return i.size>0&&i.forEach(({expandedRect:t,parent:i},a)=>{const s=i.internals.positionAbsolute,c=Jo(i),l=i.origin??o,u=t.x0||d>0||g||p)&&(r.push({id:a,type:"position",position:{x:i.position.x-u+g,y:i.position.y-d+p}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||r.push({id:t.id,type:"position",position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width1,x=v&&a?To(ko(s)):null,b=v&&l?function({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const i={x:n-r.distance.x,y:o-r.distance.y},a=Fo(i,t);return{x:a.x-i.x,y:a.y-i.y}}({dragItems:s,snapGrid:c,x:e,y:n}):null;for(const[t,o]of s){if(!r.has(t))continue;let i={x:e-o.distance.x,y:n-o.distance.y};l&&(i=b?{x:Math.round(i.x+b.x),y:Math.round(i.y+b.y)}:Fo(i,c));let s=null;if(v&&a&&!o.extent&&x){const{positionAbsolute:e}=o.internals,t=e.x-x.x+a[0][0],n=e.x+o.measured.width-x.x2+a[1][0];s=[[t,e.y-x.y+a[0][1]],[n,e.y+o.measured.height-x.y2+a[1][1]]]}const{position:d,positionAbsolute:h}=Io({nodeId:t,nextPosition:i,nodeLookup:r,nodeExtent:s||a,nodeOrigin:u,onError:f});y=y||o.position.x!==d.x||o.position.y!==d.y,o.position=d,o.internals.positionAbsolute=h}if(g=g||y,y&&(m(s,!0),p&&(o||d||!w&&h))){const[e,t]=Wr({nodeId:w,dragItems:s,nodeLookup:r});o?.(p,s,e,t),d?.(p,e,t),w||h?.(p,t)}}async function C(){if(!u)return;const{transform:e,panBy:n,autoPanSpeed:o,autoPanOnNodeDrag:r}=t();if(!r)return c=!1,void cancelAnimationFrame(a);const[s,d]=Lo(l,u,o);0===s&&0===d||(i.x=(i.x??0)-s/e[2],i.y=(i.y??0)-d/e[2],await n({x:s,y:d})&&S(i)),a=requestAnimationFrame(C)}function E(o){const{nodeLookup:r,multiSelectionActive:a,nodesDraggable:c,transform:l,snapGrid:h,snapToGrid:f,selectNodesOnDrag:g,onNodeDragStart:p,onSelectionDragStart:m,unselectNodesAndEdges:y}=t();d=!0,g&&x||a||!w||r.get(w)?.selected||y(),x&&g&&w&&e?.(w);const v=rr(o.sourceEvent,{transform:l,snapGrid:h,snapToGrid:f,containerBounds:u});if(i=v,s=function(e,t,n,o){const r=new Map;for(const[i,a]of e)if((a.selected||a.id===o)&&(!a.parentId||!Yr(a,e))&&(a.draggable||t&&void 0===a.draggable)){const t=e.get(i);t&&r.set(i,{id:i,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return r}(r,c,v,w),s.size>0&&(n||p||!w&&m)){const[e,t]=Wr({nodeId:w,dragItems:s,nodeLookup:r});n?.(o.sourceEvent,s,e,t),p?.(o.sourceEvent,e,t),w||m?.(o.sourceEvent,t)}}h=Se(v);const M=Le().clickDistance(b).on("start",e=>{const{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,f=!1,g=!1,p=e.sourceEvent,0===o&&E(e);const c=rr(e.sourceEvent,{transform:r,snapGrid:a,snapToGrid:s,containerBounds:u});i=c,l=ur(e.sourceEvent,u)}).on("drag",e=>{const{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:h,nodeLookup:g}=t(),m=rr(e.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a,containerBounds:u});if(p=e.sourceEvent,("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||w&&!g.has(w))&&(f=!0),!f){if(!c&&n&&d&&(c=!0,C()),!d){const t=ur(e.sourceEvent,u),n=t.x-l.x,o=t.y-l.y;Math.sqrt(n*n+o*o)>h&&E(e)}(i.x!==m.xSnapped||i.y!==m.ySnapped)&&s&&d&&(l=ur(e.sourceEvent,u),S(m))}}).on("end",e=>{if(d&&!f){if(c=!1,d=!1,cancelAnimationFrame(a),s.size>0){const{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=t();if(g&&(o(s,!1),g=!1),r||i||!w&&a){const[t,o]=Wr({nodeId:w,dragItems:s,nodeLookup:n,dragging:!1});r?.(e.sourceEvent,s,t,o),i?.(e.sourceEvent,t,o),w||a?.(e.sourceEvent,o)}}}else f&&s.size>0&&t().updateNodePositions(s,!1)}).filter(e=>{const t=e.target;return!e.button&&(!m||!Fr(t,`.${m}`,v))&&(!y||Fr(t,y,v))});h.call(M)},destroy:function(){h?.on(".drag",null)}}}function Gr(e,t,n,o){let r=[],i=1/0;const a=function(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(const e of t.values())Zo(r,Bo(e))>0&&o.push(e);return o}(e,n,t+250);for(const n of a){const a=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(const s of a){if(o.nodeId===s.nodeId&&o.type===s.type&&o.id===s.id)continue;const{x:a,y:c}=kr(n,s,s.position,!0),l=Math.sqrt(Math.pow(a-e.x,2)+Math.pow(c-e.y,2));l>t||(l1){const e="source"===o.type?"target":"source";return r.find(t=>t.type===e)??r[0]}return r[0]}function qr(e,t,n,o,r,i=!1){const a=o.get(e);if(!a)return null;const s="strict"===r?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&i?{...c,...kr(a,c,c.position,!0)}:c}function Ur(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}const Qr=()=>!0;function Jr(t,{handle:n,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:s,lib:c,flowId:l,isValidConnection:u=Qr,nodeLookup:d}){const h="target"===a,f=n?s.querySelector(`.${c}-flow__handle[data-id="${l}-${n?.nodeId}-${n?.id}-${n?.type}"]`):null,{x:g,y:p}=ur(t),m=s.elementFromPoint(g,p),y=m?.classList.contains(`${c}-flow__handle`)?m:f,v={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const t=Ur(void 0,y),n=y.getAttribute("data-nodeid"),a=y.getAttribute("data-handleid"),s=y.classList.contains("connectable"),c=y.classList.contains("connectableend");if(!n||!t)return v;const l={source:h?n:r,sourceHandle:h?a:i,target:h?r:n,targetHandle:h?i:a};v.connection=l;const f=s&&c&&(o===e.ConnectionMode.Strict?h&&"source"===t||!h&&"target"===t:n!==r||a!==i);v.isValid=f&&u(l),v.toHandle=qr(n,t,a,d,o,!0)}return v}const ei={onPointerDown:function(t,{connectionMode:n,connectionRadius:o,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:s,domNode:c,nodeLookup:l,lib:u,autoPanOnConnect:d,flowId:h,panBy:f,cancelConnection:g,onConnectStart:p,onConnect:m,onConnectEnd:y,isValidConnection:v=Qr,onReconnectEnd:x,updateConnection:w,getTransform:b,getFromHandle:S,autoPanSpeed:C,dragThreshold:E=1,handleDomNode:M}){const N=ar(t.target);let k,_=0;const{x:P,y:z}=ur(t),I=Ur(a,M),O=c?.getBoundingClientRect();let A=!1;if(!O||!I)return;const D=qr(i,I,r,l,n);if(!D)return;let R=ur(t,O),L=!1,$=null,T=!1,V=null;function B(){if(!d||!O)return;const[e,t]=Lo(R,O,C);f({x:e,y:t}),_=requestAnimationFrame(B)}const j={...D,nodeId:i,type:I,position:D.position},H=l.get(i);let Z={inProgress:!0,isValid:null,from:kr(H,j,e.Position.Left,!0),fromHandle:j,fromPosition:j.position,fromNode:H,to:R,toHandle:null,toPosition:xo[j.position],toNode:null,pointer:R};function X(){A=!0,w(Z),p?.(t,{nodeId:i,handleId:r,handleType:I})}function Y(t){if(!A){const{x:e,y:n}=ur(t),o=e-P,r=n-z;if(!(o*o+r*r>E*E))return;X()}if(!S()||!j)return void F(t);const a=b();R=ur(t,O),k=Gr(Wo(R,a,!1,[1,1]),o,l,j),L||(B(),L=!0);const c=Jr(t,{handle:k,connectionMode:n,fromNodeId:i,fromHandleId:r,fromType:s?"target":"source",isValidConnection:v,doc:N,lib:u,flowId:h,nodeLookup:l});V=c.handleDomNode,$=c.connection,T=function(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}(!!k,c.isValid);const d=l.get(i),f=d?kr(d,j,e.Position.Left,!0):Z.from,g={...Z,from:f,isValid:T,to:c.toHandle&&T?Ko({x:c.toHandle.x,y:c.toHandle.y},a):R,toHandle:c.toHandle,toPosition:T&&c.toHandle?c.toHandle.position:xo[j.position],toNode:c.toHandle?l.get(c.toHandle.nodeId):null,pointer:R};w(g),Z=g}function F(e){if(!("touches"in e&&e.touches.length>0)){if(A){(k||V)&&$&&T&&m?.($);const{inProgress:t,...n}=Z,o={...n,toPosition:Z.toHandle?Z.toPosition:null};y?.(e,o),a&&x?.(e,o)}g(),cancelAnimationFrame(_),L=!1,T=!1,$=null,V=null,N.removeEventListener("mousemove",Y),N.removeEventListener("mouseup",F),N.removeEventListener("touchmove",Y),N.removeEventListener("touchend",F)}}0===E&&X(),N.addEventListener("mousemove",Y),N.addEventListener("mouseup",F),N.addEventListener("touchmove",Y),N.addEventListener("touchend",F)},isValid:Jr};const ti=e=>({x:e.x,y:e.y,zoom:e.k}),ni=({x:e,y:t,zoom:n})=>Tn.translate(e,t).scale(n),oi=(e,t)=>e.target.closest(`.${t}`),ri=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ii=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ai=(e,t=0,n=ii,o=()=>{})=>{const r="number"==typeof t&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},si=e=>{const t=e.ctrlKey&&Uo()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function ci({domNode:t,minZoom:n,maxZoom:o,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:s,onPanZoomEnd:c,onDraggingChange:l}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=t.getBoundingClientRect(),h=Kn().scaleExtent([n,o]).translateExtent(r),f=Se(t).call(h);v({x:i.x,y:i.y,zoom:Oo(i.zoom,n,o)},[[0,0],[d.width,d.height]],r);const g=f.on("wheel.zoom"),p=f.on("dblclick.zoom");async function m(e,t){return!!f&&new Promise(n=>{h?.interpolate("linear"===t?.interpolate?Pt:Bt).transform(ai(f,t?.duration,t?.ease,()=>n(!0)),e)})}function y(){h.on("zoom",null)}async function v(e,t,n){const o=ni(e),r=h?.constrain()(o,t,n);return r&&await m(r),r}return h.wheelDelta(si),{update:function({noWheelClassName:t,noPanClassName:n,onPaneContextMenu:o,userSelectionActive:r,panOnScroll:i,panOnDrag:d,panOnScrollMode:m,panOnScrollSpeed:v,preventScrolling:x,zoomOnPinch:w,zoomOnScroll:b,zoomOnDoubleClick:S,zoomActivationKeyPressed:C,lib:E,onTransformChange:M,connectionInProgress:N,paneClickDistance:k,selectionOnDrag:_}){r&&!u.isZoomingOrPanning&&y();const P=i&&!C&&!r;h.clickDistance(_?1/0:!Yo(k)||k<0?0:k);const z=P?function({zoomPanValues:t,noWheelClassName:n,d3Selection:o,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:s,onPanZoomStart:c,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(oi(d,n))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const h=o.property("__zoom").k||1;if(d.ctrlKey&&s){const e=Ce(d),t=si(d),n=h*Math.pow(2,t);return void r.scaleTo(o,n,e,d)}const f=1===d.deltaMode?20:1;let g=i===e.PanOnScrollMode.Vertical?0:d.deltaX*f,p=i===e.PanOnScrollMode.Horizontal?0:d.deltaY*f;!Uo()&&d.shiftKey&&i!==e.PanOnScrollMode.Vertical&&(g=d.deltaY*f,p=0),r.translateBy(o,-g/h*a,-p/h*a,{internal:!0});const m=ti(o.property("__zoom"));clearTimeout(t.panScrollTimeout),t.isPanScrolling?(l?.(d,m),t.panScrollTimeout=setTimeout(()=>{u?.(d,m),t.isPanScrolling=!1},150)):(t.isPanScrolling=!0,c?.(d,m))}}({zoomPanValues:u,noWheelClassName:t,d3Selection:f,d3Zoom:h,panOnScrollMode:m,panOnScrollSpeed:v,zoomOnPinch:w,onPanZoomStart:s,onPanZoom:a,onPanZoomEnd:c}):function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const i="wheel"===o.type,a=!t&&i&&!o.ctrlKey,s=oi(o,e);if(o.ctrlKey&&i&&s&&o.preventDefault(),a||s)return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:t,preventScrolling:x,d3ZoomHandler:g});f.on("wheel.zoom",z,{passive:!1});const I=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=ti(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,"mousedown"===o.sourceEvent?.type&&t(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:u,onDraggingChange:l,onPanZoomStart:s});h.on("start",I);const O=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!(!n||!ri(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,ti(i.transform))}}({zoomPanValues:u,panOnDrag:d,onPaneContextMenu:!!o,onPanZoom:a,onTransformChange:M});h.on("zoom",O);const A=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&ri(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){const t=ti(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,t)},n?150:0)}}}({zoomPanValues:u,panOnDrag:d,panOnScroll:i,onPaneContextMenu:o,onPanZoomEnd:c,onDraggingChange:l});h.on("end",A);const D=function({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{const h=e||t,f=n&&d.ctrlKey,g="wheel"===d.type;if(1===d.button&&"mousedown"===d.type&&(oi(d,`${l}-flow__node`)||oi(d,`${l}-flow__edge`)))return!0;if(!(o||h||r||i||n))return!1;if(a)return!1;if(u&&!g)return!1;if(oi(d,s)&&g)return!1;if(oi(d,c)&&(!g||r&&g&&!e))return!1;if(!n&&d.ctrlKey&&g)return!1;if(!n&&"touchstart"===d.type&&d.touches?.length>1)return d.preventDefault(),!1;if(!h&&!r&&!f&&g)return!1;if(!o&&("mousedown"===d.type||"touchstart"===d.type))return!1;if(Array.isArray(o)&&!o.includes(d.button)&&"mousedown"===d.type)return!1;const p=Array.isArray(o)&&o.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||g)&&p}}({zoomActivationKeyPressed:C,panOnDrag:d,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:S,zoomOnPinch:w,userSelectionActive:r,noPanClassName:n,noWheelClassName:t,lib:E,connectionInProgress:N});h.filter(D),S?f.on("dblclick.zoom",p):f.on("dblclick.zoom",null)},destroy:y,setViewport:async function(e,t){const n=ni(e);return await m(n,t),n},setViewportConstrained:v,getViewport:function(){const e=f?Vn(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:async function(e,t){return!!f&&new Promise(n=>{h?.interpolate("linear"===t?.interpolate?Pt:Bt).scaleTo(ai(f,t?.duration,t?.ease,()=>n(!0)),e)})},scaleBy:async function(e,t){return!!f&&new Promise(n=>{h?.interpolate("linear"===t?.interpolate?Pt:Bt).scaleBy(ai(f,t?.duration,t?.ease,()=>n(!0)),e)})},setScaleExtent:function(e){h?.scaleExtent(e)},setTranslateExtent:function(e){h?.translateExtent(e)},syncViewport:function(e){if(f){const t=ni(e),n=f.property("__zoom");n.k===e.zoom&&n.x===e.x&&n.y===e.y||h?.transform(f,t,null,{sync:!0})}},setClickDistance:function(e){const t=!Yo(e)||e<0?0:e;h?.clickDistance(t)}}}var li;e.ResizeControlVariant=void 0,(li=e.ResizeControlVariant||(e.ResizeControlVariant={})).Line="line",li.Handle="handle";const ui=["top-left","top-right","bottom-left","bottom-right"],di=["top","right","bottom","left"];function hi(e){return{isHorizontal:e.includes("right")||e.includes("left"),isVertical:e.includes("bottom")||e.includes("top"),affectsX:e.includes("left"),affectsY:e.includes("top")}}function fi(e,t){return Math.max(0,t-e)}function gi(e,t){return Math.max(0,e-t)}function pi(e,t,n){return Math.max(0,t-e,e-n)}function mi(e,t){return e?!t:t}const yi={width:0,height:0,x:0,y:0},vi={...yi,pointerX:0,pointerY:0,aspectRatio:1};function xi(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,a=e.measured.height??0,s=n[0]*i,c=n[1]*a;return[[o-s,r-c],[o+i-s,r+a-c]]}function wi({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const i=Se(e);let a={controlDirection:hi("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:h,shouldResize:f}){let g,p={...yi},m={...vi};a={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:hi(e)};let y,v,x,w=null,b=[],S=!1;const C=Le().on("start",e=>{const{nodeLookup:o,transform:r,snapGrid:i,snapToGrid:a,nodeOrigin:s,paneDomNode:c}=n();if(g=o.get(t),!g)return;w=c?.getBoundingClientRect()??null;const{xSnapped:l,ySnapped:d}=rr(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:w});p={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},m={...p,pointerX:l,pointerY:d,aspectRatio:p.width/p.height},y=void 0,v=Qo(g.extent)?g.extent:void 0,g.parentId&&("parent"===g.extent||g.expandParent)&&(y=o.get(g.parentId)),y&&"parent"===g.extent&&(v=[[0,0],[y.measured.width,y.measured.height]]),b=[],x=void 0;for(const[e,n]of o)if(n.parentId===t&&(b.push({id:e,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){const e=xi(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...p})}).on("drag",e=>{const{transform:t,snapGrid:r,snapToGrid:i,nodeOrigin:s}=n(),c=rr(e.sourceEvent,{transform:t,snapGrid:r,snapToGrid:i,containerBounds:w}),l=[];if(!g)return;const{x:u,y:h,width:C,height:E}=p,M={},N=g.origin??s,{width:k,height:_,x:P,y:z}=function(e,t,n,o,r,i,a,s){let{affectsX:c,affectsY:l}=t;const{isHorizontal:u,isVertical:d}=t,h=u&&d,{xSnapped:f,ySnapped:g}=n,{minWidth:p,maxWidth:m,minHeight:y,maxHeight:v}=o,{x:x,y:w,width:b,height:S,aspectRatio:C}=e;let E=Math.floor(u?f-e.pointerX:0),M=Math.floor(d?g-e.pointerY:0);const N=b+(c?-E:E),k=S+(l?-M:M),_=-i[0]*b,P=-i[1]*S;let z=pi(N,p,m),I=pi(k,y,v);if(a){let e=0,t=0;c&&E<0?e=fi(x+E+_,a[0][0]):!c&&E>0&&(e=gi(x+N+_,a[1][0])),l&&M<0?t=fi(w+M+P,a[0][1]):!l&&M>0&&(t=gi(w+k+P,a[1][1])),z=Math.max(z,e),I=Math.max(I,t)}if(s){let e=0,t=0;c&&E>0?e=gi(x+E,s[0][0]):!c&&E<0&&(e=fi(x+N,s[1][0])),l&&M>0?t=gi(w+M,s[0][1]):!l&&M<0&&(t=fi(w+k,s[1][1])),z=Math.max(z,e),I=Math.max(I,t)}if(r){if(u){const e=pi(N/C,y,v)*C;if(z=Math.max(z,e),a){let e=0;e=!c&&!l||c&&!l&&h?gi(w+P+N/C,a[1][1])*C:fi(w+P+(c?E:-E)/C,a[0][1])*C,z=Math.max(z,e)}if(s){let e=0;e=!c&&!l||c&&!l&&h?fi(w+N/C,s[1][1])*C:gi(w+(c?E:-E)/C,s[0][1])*C,z=Math.max(z,e)}}if(d){const e=pi(k*C,p,m)/C;if(I=Math.max(I,e),a){let e=0;e=!c&&!l||l&&!c&&h?gi(x+k*C+_,a[1][0])/C:fi(x+(l?M:-M)*C+_,a[0][0])/C,I=Math.max(I,e)}if(s){let e=0;e=!c&&!l||l&&!c&&h?fi(x+k*C,s[1][0])/C:gi(x+(l?M:-M)*C,s[0][0])/C,I=Math.max(I,e)}}}M+=M<0?I:-I,E+=E<0?z:-z,r&&(h?N>k*C?M=(mi(c,l)?-E:E)/C:E=(mi(c,l)?-M:M)*C:u?(M=E/C,l=c):(E=M*C,c=l));const O=c?x+E:x,A=l?w+M:w;return{width:b+(c?-E:E),height:S+(l?-M:M),x:i[0]*E*(c?-1:1)+O,y:i[1]*M*(l?-1:1)+A}}(m,a.controlDirection,c,a.boundaries,a.keepAspectRatio,N,v,x),I=k!==C,O=_!==E,A=P!==u&&I,D=z!==h&&O;if(!(A||D||I||O))return;if((A||D||1===N[0]||1===N[1])&&(M.x=A?P:p.x,M.y=D?z:p.y,p.x=M.x,p.y=M.y,b.length>0)){const e=P-u,t=z-h;for(const n of b)n.position={x:n.position.x-e+N[0]*(k-C),y:n.position.y-t+N[1]*(_-E)},l.push(n)}if((I||O)&&(M.width=!I||a.resizeDirection&&"horizontal"!==a.resizeDirection?p.width:k,M.height=!O||a.resizeDirection&&"vertical"!==a.resizeDirection?p.height:_,p.width=M.width,p.height=M.height),y&&g.expandParent){const e=N[0]*(M.width??0);M.x&&M.x0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&r&&(c[0]=-1*c[0]),s&&i&&(c[1]=-1*c[1]),c}({width:p.width,prevWidth:C,height:p.height,prevHeight:E,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),L={...p,direction:R},$=f?.(e,L);!1!==$&&(S=!0,d?.(e,L),o(M,l))}).on("end",e=>{S&&(h?.(e,{...p}),r?.({...p}),S=!1)});i.call(C)},destroy:function(){i.on(".drag",null)}}}function bi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Si,Ci,Ei,Mi={exports:{}},Ni={},ki={exports:{}},_i={};function Pi(){return Ci||(Ci=1,ki.exports=function(){if(Si)return _i;Si=1;var e=n,t="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=e.useState,r=e.useEffect,i=e.useLayoutEffect,a=e.useDebugValue;function s(e){var n=e.getSnapshot;e=e.value;try{var o=n();return!t(e,o)}catch(e){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),c=o({inst:{value:n,getSnapshot:t}}),l=c[0].inst,u=c[1];return i(function(){l.value=n,l.getSnapshot=t,s(l)&&u({inst:l})},[e,n,t]),r(function(){return s(l)&&u({inst:l}),e(function(){s(l)&&u({inst:l})})},[e]),a(n),n};return _i.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:c,_i}()),ki.exports} /** * @license React * use-sync-external-store-shim/with-selector.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */Mi.exports=function(){if(Ei)return Ni;Ei=1;var e=n,t=Pi(),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=t.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,c=e.useDebugValue;return Ni.useSyncExternalStoreWithSelector=function(e,t,n,l,u){var d=i(null);if(null===d.current){var h={hasValue:!1,value:null};d.current=h}else h=d.current;d=s(function(){function e(e){if(!a){if(a=!0,r=e,e=l(e),void 0!==u&&h.hasValue){var t=h.value;if(u(t,e))return i=t}return i=e}if(t=i,o(r,e))return t;var n=l(e);return void 0!==u&&u(t,n)?(r=e,t):(r=e,i=n)}var r,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]},[t,n,l,u]);var f=r(e,d[0],d[1]);return a(function(){h.hasValue=!0,h.value=f},[f]),c(f),f},Ni}();var zi=bi(Mi.exports);const Ii=e=>{let t;const n=new Set,o=(e,o)=>{const r="function"==typeof e?e(t):e;if(!Object.is(r,t)){const e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(o,r,i);return i},{useDebugValue:Oi}=n,{useSyncExternalStoreWithSelector:Ai}=zi,Di=e=>e;function Ri(e,t=Di,n){const o=Ai(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Oi(o),o}const Li=(e,t)=>{const n=(e=>e?Ii(e):Ii)(e),o=(e,o=t)=>Ri(n,e,o);return Object.assign(o,n),o},$i=n.createContext(null),Ti=$i.Provider,Vi=Gn("react");function Bi(e,t){const o=n.useContext($i);if(null===o)throw new Error(Vi);return Ri(o,e,t)}function ji(){const e=n.useContext($i);if(null===e)throw new Error(Vi);return n.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Hi={display:"none"},Zi={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Xi="react-flow__node-desc",Yi="react-flow__edge-desc",Fi=e=>e.ariaLiveMessage,Wi=e=>e.ariaLabelConfig;function Ki({rfId:e}){const n=Bi(Fi);return t.jsx("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Zi,children:n})}function Gi({rfId:e,disableKeyboardA11y:n}){const o=Bi(Wi);return t.jsxs(t.Fragment,{children:[t.jsx("div",{id:`${Xi}-${e}`,style:Hi,children:n?o["node.a11yDescription.default"]:o["node.a11yDescription.keyboardDisabled"]}),t.jsx("div",{id:`${Yi}-${e}`,style:Hi,children:o["edge.a11yDescription.default"]}),!n&&t.jsx(Ki,{rfId:e})]})}const qi=n.forwardRef(({position:e="top-left",children:n,className:o,style:i,...a},s)=>{const c=`${e}`.split("-");return t.jsx("div",{className:r(["react-flow__panel",o,...c]),style:i,ref:s,...a,children:n})});function Ui({proOptions:e,position:n="bottom-right"}){return e?.hideAttribution?null:t.jsx(qi,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:t.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}function Qi(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}qi.displayName="Panel";const Ji=e=>{const t=[],n=[];for(const[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(const[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},ea=e=>e.id;function ta(e,t){return Qi(e.selectedNodes.map(ea),t.selectedNodes.map(ea))&&Qi(e.selectedEdges.map(ea),t.selectedEdges.map(ea))}function na({onSelectionChange:e}){const t=ji(),{selectedNodes:o,selectedEdges:r}=Bi(Ji,ta);return n.useEffect(()=>{const n={nodes:o,edges:r};e?.(n),t.getState().onSelectionChangeHandlers.forEach(e=>e(n))},[o,r,e]),null}const oa=e=>!!e.onSelectionChangeHandlers;function ra({onSelectionChange:e}){const n=Bi(oa);return e||n?t.jsx(na,{onSelectionChange:e}):null}const ia=[0,0],aa={x:0,y:0,zoom:1},sa=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode","rfId"],ca=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),la={translateExtent:co,nodeOrigin:ia,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function ua(e){const{setNodes:t,setEdges:o,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:s,reset:c,setDefaultNodesAndEdges:l}=Bi(ca,Qi),u=ji();n.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=la,c()}),[]);const d=n.useRef(la);return n.useEffect(()=>{for(const n of sa){const c=e[n];c!==d.current[n]&&(void 0!==e[n]&&("nodes"===n?t(c):"edges"===n?o(c):"minZoom"===n?r(c):"maxZoom"===n?i(c):"translateExtent"===n?a(c):"nodeExtent"===n?s(c):"ariaLabelConfig"===n?u.setState({ariaLabelConfig:or(c)}):"fitView"===n?u.setState({fitViewQueued:c}):"fitViewOptions"===n?u.setState({fitViewOptions:c}):u.setState({[n]:c})))}d.current=e},sa.map(t=>e[t])),null}function da(){return"undefined"!=typeof window&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null}const ha="undefined"!=typeof document?document:null;function fa(e=null,t={target:ha,actInsideInputWithModifier:!0}){const[o,r]=n.useState(!1),i=n.useRef(!1),a=n.useRef(new Set([])),[s,c]=n.useMemo(()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.replace("+","\n").replace("\n\n","\n+").split("\n")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return n.useEffect(()=>{const n=t?.target??ha,o=t?.actInsideInputWithModifier??!0;if(null!==e){const e=e=>{i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey;if((!i.current||i.current&&!o)&&cr(e))return!1;const n=pa(e.code,c);if(a.current.add(e[n]),ga(s,a.current,!1)){const n=e.composedPath?.()?.[0]||e.target,o="BUTTON"===n?.nodeName||"A"===n?.nodeName;!1===t.preventDefault||!i.current&&o||e.preventDefault(),r(!0)}},l=e=>{const t=pa(e.code,c);ga(s,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),"Meta"===e.key&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",l),window.addEventListener("blur",u),window.addEventListener("contextmenu",u),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",l),window.removeEventListener("blur",u),window.removeEventListener("contextmenu",u)}}},[e,r]),o}function ga(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function pa(e,t){return t.includes(e)?"code":"key"}function ma(e,t){const n=[],o=new Map,r=[];for(const t of e)if("add"!==t.type)if("remove"===t.type||"replace"===t.type)o.set(t.id,[t]);else{const e=o.get(t.id);e?e.push(t):o.set(t.id,[t])}else r.push(t);for(const e of t){const t=o.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}const r={...e};for(const e of t)ya(e,r);n.push(r)}return r.length&&r.forEach(e=>{void 0!==e.index?n.splice(e.index,0,{...e.item}):n.push({...e.item})}),n}function ya(e,t){switch(e.type){case"select":t.selected=e.selected;break;case"position":void 0!==e.position&&(t.position=e.position),void 0!==e.dragging&&(t.dragging=e.dragging);break;case"dimensions":void 0!==e.dimensions&&(t.measured={...e.dimensions},e.setAttributes&&(!0!==e.setAttributes&&"width"!==e.setAttributes||(t.width=e.dimensions.width),!0!==e.setAttributes&&"height"!==e.setAttributes||(t.height=e.dimensions.height))),"boolean"==typeof e.resizing&&(t.resizing=e.resizing)}}function va(e,t){return ma(e,t)}function xa(e,t){return ma(e,t)}function wa(e,t){return{id:e,type:"select",selected:t}}function ba(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const e=t.has(r);void 0===i.selected&&!e||i.selected===e||(n&&(i.selected=e),o.push(wa(i.id,e)))}return o}function Sa({items:e=[],lookup:t}){const n=[],o=new Map(e.map(e=>[e.id,e]));for(const[o,r]of e.entries()){const e=t.get(r.id),i=e?.internals?.userNode??e;void 0!==i&&i!==r&&n.push({id:r.id,item:r,type:"replace"}),void 0===i&&n.push({item:r,type:"add",index:o})}for(const[e]of t){void 0===o.get(e)&&n.push({id:e,type:"remove"})}return n}function Ca(e){return{id:e.id,type:"remove"}}const Ea=(e,t)=>{};function Ma(e,t,n={}){return((e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",Jn()),t;const o=n.getEdgeId||vr;let r;return r=Co(e)?{...e}:{...e,id:o(e)},((e,t)=>t.some(t=>!(t.source!==e.source||t.target!==e.target||t.sourceHandle!==e.sourceHandle&&(t.sourceHandle||e.sourceHandle)||t.targetHandle!==e.targetHandle&&(t.targetHandle||e.targetHandle))))(r,t)?t:(null===r.sourceHandle&&delete r.sourceHandle,null===r.targetHandle&&delete r.targetHandle,t.concat(r))})(e,t,{...n,onError:n.onError??Ea})}const Na=e=>(e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e))(e),ka=e=>Co(e);function _a(e){return n.forwardRef(e)}const Pa="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function za(e){const[t,o]=n.useState(BigInt(0)),[r]=n.useState(()=>function(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}(()=>o(e=>e+BigInt(1))));return Pa(()=>{const t=r.get();t.length&&(e(t),r.reset())},[t]),r}const Ia=n.createContext(null);function Oa({children:e}){const o=ji(),r=za(n.useCallback(e=>{const{nodes:t=[],setNodes:n,hasDefaultNodes:r,onNodesChange:i,nodeLookup:a,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=o.getState();let l=t;for(const t of e)l="function"==typeof t?t(l):t;let u=Sa({items:l,lookup:a});for(const e of c.values())u=e(u);r&&n(l),u.length>0?i?.(u):s&&window.requestAnimationFrame(()=>{const{fitViewQueued:e,nodes:t,setNodes:n}=o.getState();e&&n(t)})},[])),i=za(n.useCallback(e=>{const{edges:t=[],setEdges:n,hasDefaultEdges:r,onEdgesChange:i,edgeLookup:a}=o.getState();let s=t;for(const t of e)s="function"==typeof t?t(s):t;r?n(s):i&&i(Sa({items:s,lookup:a}))},[])),a=n.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return t.jsx(Ia.Provider,{value:a,children:e})}const Aa=e=>!!e.panZoom;function Da(){const e=(()=>{const e=ji();return n.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return!!n&&n.scaleBy(1.2,t)},zoomOut:async t=>{const{panZoom:n}=e.getState();return!!n&&n.scaleBy(1/1.2,t)},zoomTo:async(t,n)=>{const{panZoom:o}=e.getState();return!!o&&o.scaleTo(t,n)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,i],panZoom:a}=e.getState();return!!a&&(await a.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),!0)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:a,panZoom:s}=e.getState(),c=qo(t,o,r,i,a,n?.padding??.1);return!!s&&(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0)},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:i,domNode:a}=e.getState();if(!a)return t;const{x:s,y:c}=a.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??r,d=n.snapToGrid??i;return Wo(l,o,d,u)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),a=Ko(t,n);return{x:a.x+r,y:a.y+i}}}),[])})(),t=ji(),o=function(){const e=n.useContext(Ia);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}(),r=Bi(Aa),i=n.useMemo(()=>{const e=e=>t.getState().nodeLookup.get(e),n=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},i=e=>{const{nodeLookup:n,nodeOrigin:o}=t.getState(),r=Na(e)?e:n.get(e.id),i=r.parentId?tr(r.position,r.measured,r.parentId,n,o):r.position,a={...r,position:i,width:r.measured?.width??r.width,height:r.measured?.height??r.height};return Bo(a)},a=(e,t,o={replace:!1})=>{n(n=>n.map(n=>{if(n.id===e){const e="function"==typeof t?t(n):t;return o.replace&&Na(e)?e:{...n,...e}}return n}))},s=(e,t,n={replace:!1})=>{r(o=>o.map(o=>{if(o.id===e){const e="function"==typeof t?t(o):t;return n.replace&&ka(e)?e:{...o,...e}}return o}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{const{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:n,setEdges:r,addNodes:e=>{const t=Array.isArray(e)?e:[e];o.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{const t=Array.isArray(e)?e:[e];o.edgeQueue.push(e=>[...e,...t])},toObject:()=>{const{nodes:e=[],edges:n=[],transform:o}=t.getState(),[r,i,a]=o;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:r,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{const{nodes:o,edges:r,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:h}=await async function({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map(e=>e.id)),a=[];for(const e of n){if(!1===e.deletable)continue;const t=i.has(e.id),n=!t&&e.parentId&&a.find(t=>t.id===e.parentId);(t||n)&&a.push(e)}const s=new Set(t.map(e=>e.id)),c=o.filter(e=>!1!==e.deletable),l=Po(a,c);for(const e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!r)return{edges:l,nodes:a};const u=await r({nodes:a,edges:l});return"boolean"==typeof u?u?{edges:l,nodes:a}:{edges:[],nodes:[]}:u}({nodesToRemove:e,edgesToRemove:n,nodes:o,edges:r,onBeforeDelete:u}),f=h.length>0,g=d.length>0;if(f){const e=h.map(Ca);a?.(h),c(e)}if(g){const e=d.map(Ca);i?.(d),s(e)}return(g||f)&&l?.({nodes:d,edges:h}),{deletedNodes:d,deletedEdges:h}},getIntersectingNodes:(e,n=!0,o)=>{const r=Xo(e),a=r?e:i(e),s=void 0!==o;return a?(o||t.getState().nodes).filter(o=>{const i=t.getState().nodeLookup.get(o.id);if(i&&!r&&(o.id===e.id||!i.internals.positionAbsolute))return!1;const c=Bo(s?o:i),l=Zo(c,a);return n&&l>0||l>=c.width*c.height||l>=a.width*a.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{const o=Xo(e)?e:i(e);if(!o)return!1;const r=Zo(o,t);return n&&r>0||r>=t.width*t.height||r>=o.width*o.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,e=>{const o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{const o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},getNodesBounds:e=>{const{nodeLookup:n,nodeOrigin:o}=t.getState();return No(e,{nodeLookup:n,nodeOrigin:o})},getHandleConnections:({type:e,id:n,nodeId:o})=>Array.from(t.getState().connectionLookup.get(`${o}-${e}${n?`-${n}`:""}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:o})=>Array.from(t.getState().connectionLookup.get(`${o}${e?n?`-${e}-${n}`:`-${e}`:""}`)?.values()??[]),fitView:async e=>{const n=t.getState().fitViewResolver??function(){let e,t;return{promise:new Promise((n,o)=>{e=n,t=o}),resolve:e,reject:t}}();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:n}),o.nodeQueue.push(e=>[...e]),n.promise}}},[]);return n.useMemo(()=>({...i,...e,viewportInitialized:r}),[r])}const Ra=e=>e.selected,La="undefined"!=typeof window?window:void 0;const $a={position:"absolute",width:"100%",height:"100%",top:0,left:0},Ta=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Va({onPaneContextMenu:o,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:a=!1,panOnScrollSpeed:s=.5,panOnScrollMode:c=e.PanOnScrollMode.Free,zoomOnDoubleClick:l=!0,panOnDrag:u=!0,defaultViewport:d,translateExtent:h,minZoom:f,maxZoom:g,zoomActivationKeyCode:p,preventScrolling:m=!0,children:y,noWheelClassName:v,noPanClassName:x,onViewportChange:w,isControlledViewport:b,paneClickDistance:S,selectionOnDrag:C}){const E=ji(),M=n.useRef(null),{userSelectionActive:N,lib:k,connectionInProgress:_}=Bi(Ta,Qi),P=fa(p),z=n.useRef();!function(e){const t=ji();n.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??1))return!1;const n=ir(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",Un()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener("resize",n);const t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener("resize",n),t&&e.current&&t.unobserve(e.current)}}},[])}(M);const I=n.useCallback(e=>{w?.({x:e[0],y:e[1],zoom:e[2]}),b||E.setState({transform:e})},[w,b]);return n.useEffect(()=>{if(M.current){z.current=ci({domNode:M.current,minZoom:f,maxZoom:g,translateExtent:h,viewport:d,onDraggingChange:e=>E.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{const{onViewportChangeStart:n,onMoveStart:o}=E.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{const{onViewportChange:n,onMove:o}=E.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{const{onViewportChangeEnd:n,onMoveEnd:o}=E.getState();o?.(e,t),n?.(t)}});const{x:e,y:t,zoom:n}=z.current.getViewport();return E.setState({panZoom:z.current,transform:[e,t,n],domNode:M.current.closest(".react-flow")}),()=>{z.current?.destroy()}}},[]),n.useEffect(()=>{z.current?.update({onPaneContextMenu:o,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:a,panOnScrollSpeed:s,panOnScrollMode:c,zoomOnDoubleClick:l,panOnDrag:u,zoomActivationKeyPressed:P,preventScrolling:m,noPanClassName:x,userSelectionActive:N,noWheelClassName:v,lib:k,onTransformChange:I,connectionInProgress:_,selectionOnDrag:C,paneClickDistance:S})},[o,r,i,a,s,c,l,u,P,m,x,N,v,k,I,_,C,S]),t.jsx("div",{className:"react-flow__renderer",ref:M,style:$a,children:y})}const Ba=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ja(){const{userSelectionActive:e,userSelectionRect:n}=Bi(Ba,Qi);return e&&n?t.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}const Ha=(e,t)=>n=>{n.target===t.current&&e?.(n)},Za=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Xa({isSelecting:o,selectionKeyPressed:i,selectionMode:a=e.SelectionMode.Full,panOnDrag:s,autoPanOnSelection:c,paneClickDistance:l,selectionOnDrag:u,onSelectionStart:d,onSelectionEnd:h,onPaneClick:f,onPaneContextMenu:g,onPaneScroll:p,onPaneMouseEnter:m,onPaneMouseMove:y,onPaneMouseLeave:v,children:x}){const w=n.useRef(0),b=ji(),{userSelectionActive:S,elementsSelectable:C,dragging:E,connectionInProgress:M,panBy:N,autoPanSpeed:k}=Bi(Za,Qi),_=C&&(o||S),P=n.useRef(null),z=n.useRef(),I=n.useRef(new Set),O=n.useRef(new Set),A=n.useRef(!1),D=n.useRef({x:0,y:0}),R=n.useRef(!1),L=e=>{A.current||M?A.current=!1:(f?.(e),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1}))},$=p?e=>p(e):void 0;function T(t,n){const{userSelectionRect:o}=b.getState();if(!o)return;const{transform:r,nodeLookup:i,edgeLookup:s,connectionLookup:c,triggerNodeChanges:l,triggerEdgeChanges:u,defaultEdgeOptions:d}=b.getState(),h={x:o.startX,y:o.startY},{x:f,y:g}=Ko(h,r),p={startX:h.x,startY:h.y,x:te.id)),O.current=new Set;const v=d?.selectable??!0;for(const e of I.current){const t=c.get(e);if(t)for(const{edgeId:e}of t.values()){const t=s.get(e);t&&(t.selectable??v)&&O.current.add(e)}}if(!nr(m,I.current)){l(ba(i,I.current,!0))}if(!nr(y,O.current)){u(ba(s,O.current))}b.setState({userSelectionRect:p,userSelectionActive:!0,nodesSelectionActive:!1})}function V(){if(!c||!z.current)return;const[e,t]=Lo(D.current,z.current,k);N({x:e,y:t}).then(e=>{if(!A.current||!e)return void(w.current=requestAnimationFrame(V));const{x:t,y:n}=D.current;T(t,n),w.current=requestAnimationFrame(V)})}const B=()=>{cancelAnimationFrame(w.current),w.current=0,R.current=!1};n.useEffect(()=>()=>B(),[]);const j=!0===s||Array.isArray(s)&&s.includes(0);return t.jsxs("div",{className:r(["react-flow__pane",{draggable:j,dragging:E,selection:o}]),onClick:_?void 0:Ha(L,P),onContextMenu:Ha(e=>{Array.isArray(s)&&s?.includes(2)?e.preventDefault():g?.(e)},P),onWheel:Ha($,P),onPointerEnter:_?void 0:m,onPointerMove:_?e=>{const{userSelectionRect:t,transform:n,resetSelectedElements:o}=b.getState();if(!z.current||!t)return;const{x:r,y:a}=ur(e.nativeEvent,z.current);D.current={x:r,y:a};const s=Ko({x:t.startX,y:t.startY},n);if(!A.current){const t=i?0:l;if(Math.hypot(r-s.x,a-s.y)<=t)return;o(),d?.(e)}A.current=!0,R.current||(V(),R.current=!0),T(r,a)}:y,onPointerUp:_?e=>{0===e.button&&(e.target?.releasePointerCapture?.(e.pointerId),!S&&e.target===P.current&&b.getState().userSelectionRect&&L?.(e),b.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(h?.(e),b.setState({nodesSelectionActive:I.current.size>0})),B())}:void 0,onPointerCancel:_?e=>{e.target?.releasePointerCapture?.(e.pointerId),B()}:void 0,onPointerDownCapture:_?e=>{const{domNode:t,transform:n}=b.getState();if(z.current=t?.getBoundingClientRect(),!z.current)return;const r=e.target===P.current;if(!r&&!!e.target.closest(".nokey")||!o||!(u&&r||i)||0!==e.button||!e.isPrimary)return;e.target?.setPointerCapture?.(e.pointerId),A.current=!1;const{x:a,y:s}=ur(e.nativeEvent,z.current),c=Wo({x:a,y:s},n);b.setState({userSelectionRect:{width:0,height:0,startX:c.x,startY:c.y,x:a,y:s}}),r||(e.stopPropagation(),e.preventDefault())}:void 0,onClickCapture:_?e=>{A.current&&(e.stopPropagation(),A.current=!1)}:void 0,onPointerLeave:v,ref:P,style:$a,children:[x,t.jsx(ja,{})]})}function Ya({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:a,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);l?(t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&a)&&(i({nodes:[l],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])):c?.("012",io(e))}function Fa({nodeRef:e,disabled:t=!1,noDragClassName:o,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:s}){const c=ji(),[l,u]=n.useState(!1),d=n.useRef();return n.useEffect(()=>{d.current=Kr({getStoreItems:()=>c.getState(),onNodeMouseDown:t=>{Ya({id:t,store:c,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),n.useEffect(()=>{if(!t&&e.current&&d.current)return d.current.update({noDragClassName:o,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:s}),()=>{d.current?.destroy()}},[o,r,t,a,e,i,s]),l}function Wa(){const e=ji();return n.useCallback(t=>{const{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=(e=>t=>t.selected&&(t.draggable||e&&void 0===t.draggable))(i),h=o?r[0]:5,f=o?r[1]:5,g=t.direction.x*h*t.factor,p=t.direction.y*f*t.factor;for(const[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+g,y:e.internals.positionAbsolute.y+p};o&&(t=Fo(t,r));const{position:i,positionAbsolute:s}=Io({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:a});e.position=i,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}const Ka=n.createContext(null),Ga=Ka.Provider;Ka.Consumer;const qa=()=>n.useContext(Ka),Ua=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId});const Qa=n.memo(_a(function({type:n="source",position:o=e.Position.Top,isValidConnection:i,isConnectable:a=!0,isConnectableStart:s=!0,isConnectableEnd:c=!0,id:l,onConnect:u,children:d,className:h,onMouseDown:f,onTouchStart:g,...p},m){const y=l||null,v="target"===n,x=ji(),w=qa(),{connectOnClick:b,noPanClassName:S,rfId:C}=Bi(Ua,Qi),{connectingFrom:E,connectingTo:M,clickConnecting:N,isPossibleEndHandle:k,connectionInProcess:_,clickConnectionInProcess:P,valid:z}=Bi(((t,n,o)=>r=>{const{connectionClickStartHandle:i,connectionMode:a,connection:s}=r,{fromHandle:c,toHandle:l,isValid:u}=s,d=l?.nodeId===t&&l?.id===n&&l?.type===o;return{connectingFrom:c?.nodeId===t&&c?.id===n&&c?.type===o,connectingTo:d,clickConnecting:i?.nodeId===t&&i?.id===n&&i?.type===o,isPossibleEndHandle:a===e.ConnectionMode.Strict?c?.type!==o:t!==c?.nodeId||n!==c?.id,connectionInProcess:!!c,clickConnectionInProcess:!!i,valid:d&&u}})(w,y,n),Qi);w||x.getState().onError?.("010",oo());const I=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=x.getState(),r={...t,...e};if(o){const{edges:e,setEdges:t,onError:n}=x.getState();t(Ma(r,e,{onError:n}))}n?.(r),u?.(r)},O=e=>{if(!w)return;const t=lr(e.nativeEvent);if(s&&(t&&0===e.button||!t)){const t=x.getState();ei.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:v,handleId:y,nodeId:w,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>x.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:I,isValidConnection:i||((...e)=>x.getState().isValidConnection?.(...e)??!0),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?f?.(e):g?.(e)};return t.jsx("div",{"data-handleid":y,"data-nodeid":w,"data-handlepos":o,"data-id":`${C}-${w}-${y}-${n}`,className:r(["react-flow__handle",`react-flow__handle-${o}`,"nodrag",S,h,{source:!v,target:v,connectable:a,connectablestart:s,connectableend:c,clickconnecting:N,connectingfrom:E,connectingto:M,valid:z,connectionindicator:a&&(!_||k)&&(_||P?c:s)}]),onMouseDown:O,onTouchStart:O,onClick:b?e=>{const{onClickConnectStart:t,onClickConnectEnd:o,connectionClickStartHandle:r,connectionMode:a,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:h}=x.getState();if(!w||!r&&!s)return;if(!r)return t?.(e.nativeEvent,{nodeId:w,handleId:y,handleType:n}),void x.setState({connectionClickStartHandle:{nodeId:w,type:n,id:y}});const f=ar(e.target),g=i||c,{connection:p,isValid:m}=ei.isValid(e.nativeEvent,{handle:{nodeId:w,id:y,type:n},connectionMode:a,fromNodeId:r.nodeId,fromHandleId:r.id||null,fromType:r.type,isValidConnection:g,flowId:u,doc:f,lib:l,nodeLookup:d});m&&p&&I(p);const v=structuredClone(h);delete v.inProgress,v.toPosition=v.toHandle?v.toHandle.position:null,o?.(e,v),x.setState({connectionClickStartHandle:null})}:void 0,ref:m,...p,children:d})}));const Ja={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},es={input:function({data:n,isConnectable:o,sourcePosition:r=e.Position.Bottom}){return t.jsxs(t.Fragment,{children:[n?.label,t.jsx(Qa,{type:"source",position:r,isConnectable:o})]})},default:function({data:n,isConnectable:o,targetPosition:r=e.Position.Top,sourcePosition:i=e.Position.Bottom}){return t.jsxs(t.Fragment,{children:[t.jsx(Qa,{type:"target",position:r,isConnectable:o}),n?.label,t.jsx(Qa,{type:"source",position:i,isConnectable:o})]})},output:function({data:n,isConnectable:o,targetPosition:r=e.Position.Top}){return t.jsxs(t.Fragment,{children:[t.jsx(Qa,{type:"target",position:r,isConnectable:o}),n?.label]})},group:function(){return null}};const ts=e=>{const{width:t,height:n,x:o,y:r}=ko(e.nodeLookup,{filter:e=>!!e.selected});return{width:Yo(t)?t:null,height:Yo(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function ns({onSelectionContextMenu:e,noPanClassName:o,disableKeyboardA11y:i}){const a=ji(),{width:s,height:c,transformString:l,userSelectionActive:u}=Bi(ts,Qi),d=Wa(),h=n.useRef(null);n.useEffect(()=>{i||h.current?.focus({preventScroll:!0})},[i]);const f=!u&&null!==s&&null!==c;if(Fa({nodeRef:h,disabled:!f}),!f)return null;const g=e?t=>{const n=a.getState().nodes.filter(e=>e.selected);e(t,n)}:void 0;return t.jsx("div",{className:r(["react-flow__nodesselection","react-flow__container",o]),style:{transform:l},children:t.jsx("div",{ref:h,className:"react-flow__nodesselection-rect",onContextMenu:g,tabIndex:i?void 0:-1,onKeyDown:i?void 0:e=>{Object.prototype.hasOwnProperty.call(Ja,e.key)&&(e.preventDefault(),d({direction:Ja[e.key],factor:e.shiftKey?4:1}))},style:{width:s,height:c}})})}const os="undefined"!=typeof window?window:void 0,rs=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function is({children:e,onPaneClick:o,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:c,paneClickDistance:l,deleteKeyCode:u,selectionKeyCode:d,selectionOnDrag:h,selectionMode:f,onSelectionStart:g,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:y,zoomActivationKeyCode:v,elementsSelectable:x,zoomOnScroll:w,zoomOnPinch:b,panOnScroll:S,panOnScrollSpeed:C,panOnScrollMode:E,zoomOnDoubleClick:M,panOnDrag:N,autoPanOnSelection:k,defaultViewport:_,translateExtent:P,minZoom:z,maxZoom:I,preventScrolling:O,onSelectionContextMenu:A,noWheelClassName:D,noPanClassName:R,disableKeyboardA11y:L,onViewportChange:$,isControlledViewport:T}){const{nodesSelectionActive:V,userSelectionActive:B}=Bi(rs,Qi),j=fa(d,{target:os}),H=fa(y,{target:os}),Z=H||N,X=H||S,Y=h&&!0!==Z,F=j||B||Y;return function({deleteKeyCode:e,multiSelectionKeyCode:t}){const o=ji(),{deleteElements:r}=Da(),i=fa(e,{actInsideInputWithModifier:!1}),a=fa(t,{target:La});n.useEffect(()=>{if(i){const{edges:e,nodes:t}=o.getState();r({nodes:t.filter(Ra),edges:e.filter(Ra)}),o.setState({nodesSelectionActive:!1})}},[i]),n.useEffect(()=>{o.setState({multiSelectionActive:a})},[a])}({deleteKeyCode:u,multiSelectionKeyCode:m}),t.jsx(Va,{onPaneContextMenu:s,elementsSelectable:x,zoomOnScroll:w,zoomOnPinch:b,panOnScroll:X,panOnScrollSpeed:C,panOnScrollMode:E,zoomOnDoubleClick:M,panOnDrag:!j&&Z,defaultViewport:_,translateExtent:P,minZoom:z,maxZoom:I,zoomActivationKeyCode:v,preventScrolling:O,noWheelClassName:D,noPanClassName:R,onViewportChange:$,isControlledViewport:T,paneClickDistance:l,selectionOnDrag:Y,children:t.jsxs(Xa,{onSelectionStart:g,onSelectionEnd:p,onPaneClick:o,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:c,panOnDrag:Z,autoPanOnSelection:k,isSelecting:!!F,selectionMode:f,selectionKeyPressed:j,paneClickDistance:l,selectionOnDrag:Y,children:[e,V&&t.jsx(ns,{onSelectionContextMenu:A,noPanClassName:R,disableKeyboardA11y:L})]})})}is.displayName="FlowRenderer";const as=n.memo(is);function ss(e){return Bi(n.useCallback((e=>t=>e?_o(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys()))(e),[e]),Qi)}const cs=e=>e.updateNodeInternals;var ls=n.memo(function({id:e,onClick:o,onMouseEnter:i,onMouseMove:a,onMouseLeave:s,onContextMenu:c,onDoubleClick:l,nodesDraggable:u,elementsSelectable:d,nodesConnectable:h,nodesFocusable:f,resizeObserver:g,noDragClassName:p,noPanClassName:m,disableKeyboardA11y:y,rfId:v,nodeTypes:x,nodeClickDistance:w,onError:b}){const{node:S,internals:C,isParent:E}=Bi(t=>{const n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}},Qi);let M=S.type||"default",N=x?.[M]||es[M];void 0===N&&(b?.("003",qn(M)),M="default",N=x?.default||es.default);const k=!!(S.draggable||u&&void 0===S.draggable),_=!!(S.selectable||d&&void 0===S.selectable),P=!!(S.connectable||h&&void 0===S.connectable),z=!!(S.focusable||f&&void 0===S.focusable),I=ji(),O=er(S),A=function({node:e,nodeType:t,hasDimensions:o,resizeObserver:r}){const i=ji(),a=n.useRef(null),s=n.useRef(null),c=n.useRef(e.sourcePosition),l=n.useRef(e.targetPosition),u=n.useRef(t),d=o&&!!e.internals.handleBounds;return n.useEffect(()=>{!a.current||e.hidden||d&&s.current===a.current||(s.current&&r?.unobserve(s.current),r?.observe(a.current),s.current=a.current)},[d,e.hidden]),n.useEffect(()=>()=>{s.current&&(r?.unobserve(s.current),s.current=null)},[]),n.useEffect(()=>{if(a.current){const n=u.current!==t,o=c.current!==e.sourcePosition,r=l.current!==e.targetPosition;(n||o||r)&&(u.current=t,c.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}({node:S,nodeType:M,hasDimensions:O,resizeObserver:g}),D=Fa({nodeRef:A,disabled:S.hidden||!k,noDragClassName:p,handleSelector:S.dragHandle,nodeId:e,isSelectable:_,nodeClickDistance:w}),R=Wa();if(S.hidden)return null;const L=Jo(S),$=function(e){return void 0===e.internals.handleBounds?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}(S),T=_||k||o||i||a||s,V=i?e=>i(e,{...C.userNode}):void 0,B=a?e=>a(e,{...C.userNode}):void 0,j=s?e=>s(e,{...C.userNode}):void 0,H=c?e=>c(e,{...C.userNode}):void 0,Z=l?e=>l(e,{...C.userNode}):void 0;return t.jsx("div",{className:r(["react-flow__node",`react-flow__node-${M}`,{[m]:k},S.className,{selected:S.selected,selectable:_,parent:E,draggable:k,dragging:D}]),ref:A,style:{zIndex:C.z,transform:`translate(${C.positionAbsolute.x}px,${C.positionAbsolute.y}px)`,pointerEvents:T?"all":"none",visibility:O?"visible":"hidden",...S.style,...$},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:V,onMouseMove:B,onMouseLeave:j,onContextMenu:H,onClick:t=>{const{selectNodesOnDrag:n,nodeDragThreshold:r}=I.getState();_&&(!n||!k||r>0)&&Ya({id:e,store:I,nodeRef:A}),o&&o(t,{...C.userNode})},onDoubleClick:Z,onKeyDown:z?t=>{if(!cr(t.nativeEvent)&&!y)if(lo.includes(t.key)&&_){const n="Escape"===t.key;Ya({id:e,store:I,unselect:n,nodeRef:A})}else if(k&&S.selected&&Object.prototype.hasOwnProperty.call(Ja,t.key)){t.preventDefault();const{ariaLabelConfig:e}=I.getState();I.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:t.key.replace("Arrow","").toLowerCase(),x:~~C.positionAbsolute.x,y:~~C.positionAbsolute.y})}),R({direction:Ja[t.key],factor:t.shiftKey?4:1})}}:void 0,tabIndex:z?0:void 0,onFocus:z?()=>{if(y||!A.current?.matches(":focus-visible"))return;const{transform:t,width:n,height:o,autoPanOnNodeFocus:r,setCenter:i}=I.getState();if(!r)return;_o(new Map([[e,S]]),{x:0,y:0,width:n,height:o},t,!0).length>0||i(S.position.x+L.width/2,S.position.y+L.height/2,{zoom:t[2]})}:void 0,role:S.ariaRole??(z?"group":void 0),"aria-roledescription":"node","aria-describedby":y?void 0:`${Xi}-${v}`,"aria-label":S.ariaLabel,...S.domAttributes,children:t.jsx(Ga,{value:e,children:t.jsx(N,{id:e,data:S.data,type:M,positionAbsoluteX:C.positionAbsolute.x,positionAbsoluteY:C.positionAbsolute.y,selected:S.selected??!1,selectable:_,draggable:k,deletable:S.deletable??!0,isConnectable:P,sourcePosition:S.sourcePosition,targetPosition:S.targetPosition,dragging:D,dragHandle:S.dragHandle,zIndex:C.z,parentId:S.parentId,...L})})})});const us=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function ds(e){const{nodesDraggable:o,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,onError:s}=Bi(us,Qi),c=ss(e.onlyRenderVisibleElements),l=function(){const e=Bi(cs),[t]=n.useState(()=>"undefined"==typeof ResizeObserver?null:new ResizeObserver(t=>{const n=new Map;t.forEach(e=>{const t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return n.useEffect(()=>()=>{t?.disconnect()},[t]),t}();return t.jsx("div",{className:"react-flow__nodes",style:$a,children:c.map(n=>t.jsx(ls,{id:n,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:l,nodesDraggable:o,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,nodeClickDistance:e.nodeClickDistance,onError:s},n))})}ds.displayName="NodeRenderer";const hs=n.memo(ds);const fs={[e.MarkerType.Arrow]:({color:e="none",strokeWidth:n=1})=>{const o={strokeWidth:n,...e&&{stroke:e}};return t.jsx("polyline",{className:"arrow",style:o,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[e.MarkerType.ArrowClosed]:({color:e="none",strokeWidth:n=1})=>{const o={strokeWidth:n,...e&&{stroke:e,fill:e}};return t.jsx("polyline",{className:"arrowclosed",style:o,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}};const gs=({id:e,type:o,color:r,width:i=12.5,height:a=12.5,markerUnits:s="strokeWidth",strokeWidth:c,orient:l="auto-start-reverse"})=>{const u=function(e){const t=ji();return n.useMemo(()=>Object.prototype.hasOwnProperty.call(fs,e)?fs[e]:(t.getState().onError?.("009",to(e)),null),[e])}(o);return u?t.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:l,refX:"0",refY:"0",children:t.jsx(u,{color:r,strokeWidth:c})}):null},ps=({defaultColor:e,rfId:o})=>{const r=Bi(e=>e.edges),i=Bi(e=>e.defaultEdgeOptions),a=n.useMemo(()=>{const t=function(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach(o=>{if(o&&"object"==typeof o){const r=Pr(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}(r,{id:o,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd});return t},[r,i,o,e]);return a.length?t.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:t.jsx("defs",{children:a.map(e=>t.jsx(gs,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};ps.displayName="MarkerDefinitions";var ms=n.memo(ps);function ys({x:e,y:o,label:i,labelStyle:a,labelShowBg:s=!0,labelBgStyle:c,labelBgPadding:l=[2,4],labelBgBorderRadius:u=2,children:d,className:h,...f}){const[g,p]=n.useState({x:1,y:0,width:0,height:0}),m=r(["react-flow__edge-textwrapper",h]),y=n.useRef(null);return n.useEffect(()=>{if(y.current){const e=y.current.getBBox();p({x:e.x,y:e.y,width:e.width,height:e.height})}},[i]),i?t.jsxs("g",{transform:`translate(${e-g.width/2} ${o-g.height/2})`,className:m,visibility:g.width?"visible":"hidden",...f,children:[s&&t.jsx("rect",{width:g.width+2*l[0],x:-l[0],y:-l[1],height:g.height+2*l[1],className:"react-flow__edge-textbg",style:c,rx:u,ry:u}),t.jsx("text",{className:"react-flow__edge-text",y:g.height/2,dy:"0.3em",ref:y,style:a,children:i}),d]}):null}ys.displayName="EdgeText";const vs=n.memo(ys);function xs({path:e,labelX:n,labelY:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:u,interactionWidth:d=20,...h}){return t.jsxs(t.Fragment,{children:[t.jsx("path",{...h,d:e,fill:"none",className:r(["react-flow__edge-path",h.className])}),d?t.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:d,className:"react-flow__edge-interaction"}):null,i&&Yo(n)&&Yo(o)?t.jsx(vs,{x:n,y:o,label:i,labelStyle:a,labelShowBg:s,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:u}):null]})}function ws({pos:t,x1:n,y1:o,x2:r,y2:i}){return t===e.Position.Left||t===e.Position.Right?[.5*(n+r),o]:[n,.5*(o+i)]}function bs({sourceX:t,sourceY:n,sourcePosition:o=e.Position.Bottom,targetX:r,targetY:i,targetPosition:a=e.Position.Top}){const[s,c]=ws({pos:o,x1:t,y1:n,x2:r,y2:i}),[l,u]=ws({pos:a,x1:r,y1:i,x2:t,y2:n}),[d,h,f,g]=hr({sourceX:t,sourceY:n,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${t},${n} C${s},${c} ${l},${u} ${r},${i}`,d,h,f,g]}function Ss(e){return n.memo(({id:n,sourceX:o,sourceY:r,targetX:i,targetY:a,sourcePosition:s,targetPosition:c,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:g,style:p,markerEnd:m,markerStart:y,interactionWidth:v})=>{const[x,w,b]=bs({sourceX:o,sourceY:r,sourcePosition:s,targetX:i,targetY:a,targetPosition:c}),S=e.isInternal?void 0:n;return t.jsx(xs,{id:S,path:x,labelX:w,labelY:b,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:g,style:p,markerEnd:m,markerStart:y,interactionWidth:v})})}const Cs=Ss({isInternal:!1}),Es=Ss({isInternal:!0});function Ms(o){return n.memo(({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,sourcePosition:p=e.Position.Bottom,targetPosition:m=e.Position.Top,markerEnd:y,markerStart:v,pathOptions:x,interactionWidth:w})=>{const[b,S,C]=Er({sourceX:r,sourceY:i,sourcePosition:p,targetX:a,targetY:s,targetPosition:m,borderRadius:x?.borderRadius,offset:x?.offset,stepPosition:x?.stepPosition}),E=o.isInternal?void 0:n;return t.jsx(xs,{id:E,path:b,labelX:S,labelY:C,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:y,markerStart:v,interactionWidth:w})})}Cs.displayName="SimpleBezierEdge",Es.displayName="SimpleBezierEdgeInternal";const Ns=Ms({isInternal:!1}),ks=Ms({isInternal:!0});function _s(e){return n.memo(({id:o,...r})=>{const i=e.isInternal?void 0:o;return t.jsx(Ns,{...r,id:i,pathOptions:n.useMemo(()=>({borderRadius:0,offset:r.pathOptions?.offset}),[r.pathOptions?.offset])})})}Ns.displayName="SmoothStepEdge",ks.displayName="SmoothStepEdgeInternal";const Ps=_s({isInternal:!1}),zs=_s({isInternal:!0});function Is(e){return n.memo(({id:n,sourceX:o,sourceY:r,targetX:i,targetY:a,label:s,labelStyle:c,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:p,interactionWidth:m})=>{const[y,v,x]=xr({sourceX:o,sourceY:r,targetX:i,targetY:a}),w=e.isInternal?void 0:n;return t.jsx(xs,{id:w,path:y,labelX:v,labelY:x,label:s,labelStyle:c,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:p,interactionWidth:m})})}Ps.displayName="StepEdge",zs.displayName="StepEdgeInternal";const Os=Is({isInternal:!1}),As=Is({isInternal:!0});function Ds(o){return n.memo(({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,sourcePosition:c=e.Position.Bottom,targetPosition:l=e.Position.Top,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,pathOptions:x,interactionWidth:w})=>{const[b,S,C]=pr({sourceX:r,sourceY:i,sourcePosition:c,targetX:a,targetY:s,targetPosition:l,curvature:x?.curvature}),E=o.isInternal?void 0:n;return t.jsx(xs,{id:E,path:b,labelX:S,labelY:C,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:w})})}Os.displayName="StraightEdge",As.displayName="StraightEdgeInternal";const Rs=Ds({isInternal:!1}),Ls=Ds({isInternal:!0});Rs.displayName="BezierEdge",Ls.displayName="BezierEdgeInternal";const $s={default:Ls,straight:As,step:zs,smoothstep:ks,simplebezier:Es},Ts={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Vs=(t,n,o)=>o===e.Position.Left?t-n:o===e.Position.Right?t+n:t,Bs=(t,n,o)=>o===e.Position.Top?t-n:o===e.Position.Bottom?t+n:t,js="react-flow__edgeupdater";function Hs({position:e,centerX:n,centerY:o,radius:i=10,onMouseDown:a,onMouseEnter:s,onMouseOut:c,type:l}){return t.jsx("circle",{onMouseDown:a,onMouseEnter:s,onMouseOut:c,className:r([js,`${js}-${l}`]),cx:Vs(n,i,e),cy:Bs(o,i,e),r:i,stroke:"transparent",fill:"transparent"})}function Zs({isReconnectable:e,reconnectRadius:n,edge:o,sourceX:r,sourceY:i,targetX:a,targetY:s,sourcePosition:c,targetPosition:l,onReconnect:u,onReconnectStart:d,onReconnectEnd:h,setReconnecting:f,setUpdateHover:g}){const p=ji(),m=(e,t)=>{if(0!==e.button)return;const{autoPanOnConnect:n,domNode:r,connectionMode:i,connectionRadius:a,lib:s,onConnectStart:c,cancelConnection:l,nodeLookup:g,rfId:m,panBy:y,updateConnection:v}=p.getState(),x="target"===t.type;ei.onPointerDown(e.nativeEvent,{autoPanOnConnect:n,connectionMode:i,connectionRadius:a,domNode:r,handleId:t.id,nodeId:t.nodeId,nodeLookup:g,isTarget:x,edgeUpdaterType:t.type,lib:s,flowId:m,cancelConnection:l,panBy:y,isValidConnection:(...e)=>p.getState().isValidConnection?.(...e)??!0,onConnect:e=>u?.(o,e),onConnectStart:(n,r)=>{f(!0),d?.(e,o,t.type),c?.(n,r)},onConnectEnd:(...e)=>p.getState().onConnectEnd?.(...e),onReconnectEnd:(e,n)=>{f(!1),h?.(e,o,t.type,n)},updateConnection:v,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},y=()=>g(!0),v=()=>g(!1);return t.jsxs(t.Fragment,{children:[(!0===e||"source"===e)&&t.jsx(Hs,{position:c,centerX:r,centerY:i,radius:n,onMouseDown:e=>m(e,{nodeId:o.target,id:o.targetHandle??null,type:"target"}),onMouseEnter:y,onMouseOut:v,type:"source"}),(!0===e||"target"===e)&&t.jsx(Hs,{position:l,centerX:a,centerY:s,radius:n,onMouseDown:e=>m(e,{nodeId:o.source,id:o.sourceHandle??null,type:"source"}),onMouseEnter:y,onMouseOut:v,type:"target"})]})}var Xs=n.memo(function({id:o,edgesFocusable:i,edgesReconnectable:a,elementsSelectable:s,onClick:c,onDoubleClick:l,onContextMenu:u,onMouseEnter:d,onMouseMove:h,onMouseLeave:f,reconnectRadius:g,onReconnect:p,onReconnectStart:m,onReconnectEnd:y,rfId:v,edgeTypes:x,noPanClassName:w,onError:b,disableKeyboardA11y:S}){let C=Bi(e=>e.edgeLookup.get(o));const E=Bi(e=>e.defaultEdgeOptions);C=E?{...E,...C}:C;let M=C.type||"default",N=x?.[M]||$s[M];void 0===N&&(b?.("011",ro(M)),M="default",N=x?.default||$s.default);const k=!!(C.focusable||i&&void 0===C.focusable),_=void 0!==p&&(C.reconnectable||a&&void 0===C.reconnectable),P=!!(C.selectable||s&&void 0===C.selectable),z=n.useRef(null),[I,O]=n.useState(!1),[A,D]=n.useState(!1),R=ji(),{zIndex:L,sourceX:$,sourceY:T,targetX:V,targetY:B,sourcePosition:j,targetPosition:H}=Bi(n.useCallback(t=>{const n=t.nodeLookup.get(C.source),r=t.nodeLookup.get(C.target);if(!n||!r)return{zIndex:C.zIndex,...Ts};const i=function(t){const{sourceNode:n,targetNode:o}=t;if(!Mr(n)||!Mr(o))return null;const r=n.internals.handleBounds||Nr(n.handles),i=o.internals.handleBounds||Nr(o.handles),a=_r(r?.source??[],t.sourceHandle),s=_r(t.connectionMode===e.ConnectionMode.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),t.targetHandle);if(!a||!s)return t.onError?.("008",no(a?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const c=a?.position||e.Position.Bottom,l=s?.position||e.Position.Top,u=kr(n,a,c),d=kr(o,s,l);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:c,targetPosition:l}}({id:o,sourceNode:n,targetNode:r,sourceHandle:C.sourceHandle||null,targetHandle:C.targetHandle||null,connectionMode:t.connectionMode,onError:b}),a=function({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){return"manual"===i?o:(r&&n?o+1e3:o)+Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0)}({selected:C.selected,zIndex:C.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{zIndex:a,...i||Ts}},[C.source,C.target,C.sourceHandle,C.targetHandle,C.selected,C.zIndex]),Qi),Z=n.useMemo(()=>C.markerStart?`url('#${Pr(C.markerStart,v)}')`:void 0,[C.markerStart,v]),X=n.useMemo(()=>C.markerEnd?`url('#${Pr(C.markerEnd,v)}')`:void 0,[C.markerEnd,v]);if(C.hidden||null===$||null===T||null===V||null===B)return null;const Y=l?e=>{l(e,{...C})}:void 0,F=u?e=>{u(e,{...C})}:void 0,W=d?e=>{d(e,{...C})}:void 0,K=h?e=>{h(e,{...C})}:void 0,G=f?e=>{f(e,{...C})}:void 0;return t.jsx("svg",{style:{zIndex:L},children:t.jsxs("g",{className:r(["react-flow__edge",`react-flow__edge-${M}`,C.className,w,{selected:C.selected,animated:C.animated,inactive:!P&&!c,updating:I,selectable:P}]),onClick:e=>{const{addSelectedEdges:t,unselectNodesAndEdges:n,multiSelectionActive:r}=R.getState();P&&(R.setState({nodesSelectionActive:!1}),C.selected&&r?(n({nodes:[],edges:[C]}),z.current?.blur()):t([o])),c&&c(e,C)},onDoubleClick:Y,onContextMenu:F,onMouseEnter:W,onMouseMove:K,onMouseLeave:G,onKeyDown:k?e=>{if(!S&&lo.includes(e.key)&&P){const{unselectNodesAndEdges:t,addSelectedEdges:n}=R.getState();"Escape"===e.key?(z.current?.blur(),t({edges:[C]})):n([o])}}:void 0,tabIndex:k?0:void 0,role:C.ariaRole??(k?"group":"img"),"aria-roledescription":"edge","data-id":o,"data-testid":`rf__edge-${o}`,"aria-label":null===C.ariaLabel?void 0:C.ariaLabel||`Edge from ${C.source} to ${C.target}`,"aria-describedby":k?`${Yi}-${v}`:void 0,ref:z,...C.domAttributes,children:[!A&&t.jsx(N,{id:o,source:C.source,target:C.target,type:C.type,selected:C.selected,animated:C.animated,selectable:P,deletable:C.deletable??!0,label:C.label,labelStyle:C.labelStyle,labelShowBg:C.labelShowBg,labelBgStyle:C.labelBgStyle,labelBgPadding:C.labelBgPadding,labelBgBorderRadius:C.labelBgBorderRadius,sourceX:$,sourceY:T,targetX:V,targetY:B,sourcePosition:j,targetPosition:H,data:C.data,style:C.style,sourceHandleId:C.sourceHandle,targetHandleId:C.targetHandle,markerStart:Z,markerEnd:X,pathOptions:"pathOptions"in C?C.pathOptions:void 0,interactionWidth:C.interactionWidth}),_&&t.jsx(Zs,{edge:C,isReconnectable:_,reconnectRadius:g,onReconnect:p,onReconnectStart:m,onReconnectEnd:y,sourceX:$,sourceY:T,targetX:V,targetY:B,sourcePosition:j,targetPosition:H,setUpdateHover:O,setReconnecting:D})]})})});const Ys=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Fs({defaultMarkerColor:e,onlyRenderVisibleElements:o,rfId:r,edgeTypes:i,noPanClassName:a,onReconnect:s,onEdgeContextMenu:c,onEdgeMouseEnter:l,onEdgeMouseMove:u,onEdgeMouseLeave:d,onEdgeClick:h,reconnectRadius:f,onEdgeDoubleClick:g,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:y}){const{edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,onError:b}=Bi(Ys,Qi),S=(C=o,Bi(n.useCallback(e=>{if(!C)return e.edges.map(e=>e.id);const t=[];if(e.width&&e.height)for(const n of e.edges){const o=e.nodeLookup.get(n.source),r=e.nodeLookup.get(n.target);o&&r&&yr({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&t.push(n.id)}return t},[C]),Qi));var C;return t.jsxs("div",{className:"react-flow__edges",children:[t.jsx(ms,{defaultColor:e,rfId:r}),S.map(e=>t.jsx(Xs,{id:e,edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,noPanClassName:a,onReconnect:s,onContextMenu:c,onMouseEnter:l,onMouseMove:u,onMouseLeave:d,onClick:h,reconnectRadius:f,onDoubleClick:g,onReconnectStart:p,onReconnectEnd:m,rfId:r,onError:b,edgeTypes:i,disableKeyboardA11y:y},e))]})}Fs.displayName="EdgeRenderer";const Ws=n.memo(Fs),Ks=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Gs({children:e}){const n=Bi(Ks);return t.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:n},children:e})}const qs=e=>e.panZoom?.syncViewport;function Us(e){return e.connection.inProgress?{...e.connection,to:Wo(e.connection.to,e.transform)}:{...e.connection}}function Qs(e){const t=function(e){if(e)return t=>{const n=Us(t);return e(n)};return Us}(e);return Bi(t,Qi)}const Js=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ec({containerStyle:e,style:n,type:o,component:i}){const{nodesConnectable:a,width:s,height:c,isValid:l,inProgress:u}=Bi(Js,Qi);return!!(s&&a&&u)?t.jsx("svg",{style:e,width:s,height:c,className:"react-flow__connectionline react-flow__container",children:t.jsx("g",{className:r(["react-flow__connection",So(l)]),children:t.jsx(tc,{style:n,type:o,CustomComponent:i,isValid:l})})}):null}const tc=({style:n,type:o=e.ConnectionLineType.Bezier,CustomComponent:r,isValid:i})=>{const{inProgress:a,from:s,fromNode:c,fromHandle:l,fromPosition:u,to:d,toNode:h,toHandle:f,toPosition:g,pointer:p}=Qs();if(!a)return;if(r)return t.jsx(r,{connectionLineType:o,connectionLineStyle:n,fromNode:c,fromHandle:l,fromX:s.x,fromY:s.y,toX:d.x,toY:d.y,fromPosition:u,toPosition:g,connectionStatus:So(i),toNode:h,toHandle:f,pointer:p});let m="";const y={sourceX:s.x,sourceY:s.y,sourcePosition:u,targetX:d.x,targetY:d.y,targetPosition:g};switch(o){case e.ConnectionLineType.Bezier:[m]=pr(y);break;case e.ConnectionLineType.SimpleBezier:[m]=bs(y);break;case e.ConnectionLineType.Step:[m]=Er({...y,borderRadius:0});break;case e.ConnectionLineType.SmoothStep:[m]=Er(y);break;default:[m]=xr(y)}return t.jsx("path",{d:m,fill:"none",className:"react-flow__connection-path",style:n})};tc.displayName="ConnectionLine";const nc={};function oc(e=nc){n.useRef(e),ji(),n.useEffect(()=>{},[e])}function rc({nodeTypes:e,edgeTypes:o,onInit:r,onNodeClick:i,onEdgeClick:a,onNodeDoubleClick:s,onEdgeDoubleClick:c,onNodeMouseEnter:l,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:h,onSelectionContextMenu:f,onSelectionStart:g,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:y,connectionLineComponent:v,connectionLineContainerStyle:x,selectionKeyCode:w,selectionOnDrag:b,selectionMode:S,multiSelectionKeyCode:C,panActivationKeyCode:E,zoomActivationKeyCode:M,deleteKeyCode:N,onlyRenderVisibleElements:k,elementsSelectable:_,defaultViewport:P,translateExtent:z,minZoom:I,maxZoom:O,preventScrolling:A,defaultMarkerColor:D,zoomOnScroll:R,zoomOnPinch:L,panOnScroll:$,panOnScrollSpeed:T,panOnScrollMode:V,zoomOnDoubleClick:B,panOnDrag:j,autoPanOnSelection:H,onPaneClick:Z,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:F,onPaneScroll:W,onPaneContextMenu:K,paneClickDistance:G,nodeClickDistance:q,onEdgeContextMenu:U,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:te,onReconnect:ne,onReconnectStart:oe,onReconnectEnd:re,noDragClassName:ie,noWheelClassName:ae,noPanClassName:se,disableKeyboardA11y:ce,nodeExtent:le,rfId:ue,viewport:de,onViewportChange:he}){return oc(e),oc(o),ji(),n.useRef(!1),n.useEffect(()=>{},[]),function(e){const t=Da(),o=n.useRef(!1);n.useEffect(()=>{!o.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),o.current=!0)},[e,t.viewportInitialized])}(r),function(e){const t=Bi(qs),o=ji();n.useEffect(()=>{e&&(t?.(e),o.setState({transform:[e.x,e.y,e.zoom]}))},[e,t])}(de),t.jsx(as,{onPaneClick:Z,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:F,onPaneContextMenu:K,onPaneScroll:W,paneClickDistance:G,deleteKeyCode:N,selectionKeyCode:w,selectionOnDrag:b,selectionMode:S,onSelectionStart:g,onSelectionEnd:p,multiSelectionKeyCode:C,panActivationKeyCode:E,zoomActivationKeyCode:M,elementsSelectable:_,zoomOnScroll:R,zoomOnPinch:L,zoomOnDoubleClick:B,panOnScroll:$,panOnScrollSpeed:T,panOnScrollMode:V,panOnDrag:j,autoPanOnSelection:H,defaultViewport:P,translateExtent:z,minZoom:I,maxZoom:O,onSelectionContextMenu:f,preventScrolling:A,noDragClassName:ie,noWheelClassName:ae,noPanClassName:se,disableKeyboardA11y:ce,onViewportChange:he,isControlledViewport:!!de,children:t.jsxs(Gs,{children:[t.jsx(Ws,{edgeTypes:o,onEdgeClick:a,onEdgeDoubleClick:c,onReconnect:ne,onReconnectStart:oe,onReconnectEnd:re,onlyRenderVisibleElements:k,onEdgeContextMenu:U,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:te,defaultMarkerColor:D,noPanClassName:se,disableKeyboardA11y:ce,rfId:ue}),t.jsx(ec,{style:y,type:m,component:v,containerStyle:x}),t.jsx("div",{className:"react-flow__edgelabel-renderer"}),t.jsx(hs,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:s,onNodeMouseEnter:l,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:h,nodeClickDistance:q,onlyRenderVisibleElements:k,noPanClassName:se,noDragClassName:ie,disableKeyboardA11y:ce,nodeExtent:le,rfId:ue}),t.jsx("div",{className:"react-flow__viewport-portal"})]})})}rc.displayName="GraphView";const ic=n.memo(rc),ac=(e,t)=>{},sc=({nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s,fitViewOptions:c,minZoom:l=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:h,zIndexMode:f="basic"}={})=>{const g=new Map,p=new Map,m=new Map,y=new Map,v=r??n??[],x=o??t??[],w=d??[0,0],b=h??co;Zr(m,y,v);const{nodesInitialized:S}=Tr(x,g,p,{nodeOrigin:w,nodeExtent:b,zIndexMode:f});let C=[0,0,1];if(s&&i&&a){const e=ko(g,{filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),{x:t,y:n,zoom:o}=qo(e,i,a,l,u,c?.padding??.1);C=[t,n,o]}return{rfId:"1",width:i??0,height:a??0,transform:C,nodes:x,nodesInitialized:S,nodeLookup:g,parentLookup:p,edges:v,edgeLookup:y,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==o,hasDefaultEdges:void 0!==r,panZoom:null,minZoom:l,maxZoom:u,translateExtent:co,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:e.ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:w,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:c,fitViewResolver:null,connection:{...po},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ac,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:uo,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},cc=({nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:h,zIndexMode:f})=>{return g=(g,p)=>{async function m(){const{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:o,width:r,height:i,minZoom:a,maxZoom:s}=p();t&&(await zo({nodes:e,width:r,height:i,panZoom:t,minZoom:a,maxZoom:s},n),o?.resolve(!0),g({fitViewResolver:null}))}return{...sc({nodes:t,edges:n,width:i,height:a,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:h,defaultNodes:o,defaultEdges:r,zIndexMode:f}),setNodes:e=>{const{nodeLookup:t,parentLookup:n,nodeOrigin:o,elevateNodesOnSelect:r,fitViewQueued:i,zIndexMode:a,nodesSelectionActive:s}=p(),{nodesInitialized:c,hasSelectedNodes:l}=Tr(e,t,n,{nodeOrigin:o,nodeExtent:h,elevateNodesOnSelect:r,checkEquality:!0,zIndexMode:a}),u=s&&l;i&&c?(m(),g({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):g({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{const{connectionLookup:t,edgeLookup:n}=p();Zr(t,n,e),g({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){const{setNodes:t}=p();t(e),g({hasDefaultNodes:!0})}if(t){const{setEdges:e}=p();e(t),g({hasDefaultEdges:!0})}},updateNodeInternals:e=>{const{triggerNodeChanges:t,nodeLookup:n,parentLookup:o,domNode:r,nodeOrigin:i,nodeExtent:a,debug:s,fitViewQueued:c,zIndexMode:l}=p(),{changes:u,updatedInternals:d}=function(e,t,n,o,r,i,a){const s=o?.querySelector(".xyflow__viewport");let c=!1;if(!s)return{changes:[],updatedInternals:c};const l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),h=[];for(const o of e.values()){const e=t.get(o.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}const s=ir(o.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||o.force)){const f=o.nodeElement.getBoundingClientRect(),g=Qo(e.extent)?e.extent:i;let{positionAbsolute:p}=e.internals;e.parentId&&"parent"===e.extent?p=Do(p,s,t.get(e.parentId)):g&&(p=Ao(p,g,s));const m={...e,measured:s,internals:{...e.internals,positionAbsolute:p,handleBounds:{source:dr("source",o.nodeElement,f,d,e.id),target:dr("target",o.nodeElement,f,d,e.id)}}};t.set(e.id,m),e.parentId&&Vr(m,t,n,{nodeOrigin:r,zIndexMode:a}),c=!0,u&&(l.push({id:e.id,type:"dimensions",dimensions:s}),e.expandParent&&e.parentId&&h.push({id:e.id,parentId:e.parentId,rect:Bo(m,r)}))}}if(h.length>0){const e=jr(h,t,n,r);l.push(...e)}return{changes:l,updatedInternals:c}}(e,n,o,r,i,a,l);d&&(function(e,t,n){const o=Rr(Ar,n);for(const n of e.values())if(n.parentId)Vr(n,e,t,o);else{const e=Mo(n,o.nodeOrigin),t=Qo(n.extent)?n.extent:o.nodeExtent,r=Ao(e,t,Jo(n));n.internals.positionAbsolute=r}}(n,o,{nodeOrigin:i,nodeExtent:a,zIndexMode:l}),c?(m(),g({fitViewQueued:!1,fitViewOptions:void 0})):g({}),u?.length>0&&(s&&console.log("React Flow: trigger node changes",u),t?.(u)))},updateNodePositions:(t,n=!1)=>{const o=[];let r=[];const{nodeLookup:i,triggerNodeChanges:a,connection:s,updateConnection:c,onNodesChangeMiddlewareMap:l}=p();for(const[a,l]of t){const t=i.get(a),u=!!(t?.expandParent&&t?.parentId&&l?.position),d={id:a,type:"position",position:u?{x:Math.max(0,l.position.x),y:Math.max(0,l.position.y)}:l.position,dragging:n};if(t&&s.inProgress&&s.fromNode.id===t.id){const n=kr(t,s.fromHandle,e.Position.Left,!0);c({...s,from:n})}u&&t.parentId&&o.push({id:a,parentId:t.parentId,rect:{...l.internals.positionAbsolute,width:l.measured.width??0,height:l.measured.height??0}}),r.push(d)}if(o.length>0){const{parentLookup:e,nodeOrigin:t}=p(),n=jr(o,i,e,t);r.push(...n)}for(const e of l.values())r=e(r);a(r)},triggerNodeChanges:e=>{const{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:i}=p();e?.length&&(r&&n(va(e,o)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{const{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:i}=p();e?.length&&(r&&n(xa(e,o)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{const{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=p();t?r(e.map(e=>wa(e,!0))):(r(ba(o,new Set([...e]),!0)),i(ba(n)))},addSelectedEdges:e=>{const{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=p();t?i(e.map(e=>wa(e,!0))):(i(ba(n,new Set([...e]))),r(ba(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{const{edges:n,nodes:o,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=p(),s=e||o,c=t||n,l=[];for(const e of s){if(!e.selected)continue;const t=r.get(e.id);t&&(t.selected=!1),l.push(wa(e.id,!1))}const u=[];for(const e of c)e.selected&&u.push(wa(e.id,!1));i(l),a(u)},setMinZoom:e=>{const{panZoom:t,maxZoom:n}=p();t?.setScaleExtent([e,n]),g({minZoom:e})},setMaxZoom:e=>{const{panZoom:t,minZoom:n}=p();t?.setScaleExtent([n,e]),g({maxZoom:e})},setTranslateExtent:e=>{p().panZoom?.setTranslateExtent(e),g({translateExtent:e})},resetSelectedElements:()=>{const{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o,elementsSelectable:r}=p();if(!r)return;const i=t.reduce((e,t)=>t.selected?[...e,wa(t.id,!1)]:e,[]),a=e.reduce((e,t)=>t.selected?[...e,wa(t.id,!1)]:e,[]);n(i),o(a)},setNodeExtent:e=>{const{nodes:t,nodeLookup:n,parentLookup:o,nodeOrigin:r,elevateNodesOnSelect:i,nodeExtent:a,zIndexMode:s}=p();e[0][0]===a[0][0]&&e[0][1]===a[0][1]&&e[1][0]===a[1][0]&&e[1][1]===a[1][1]||(Tr(t,n,o,{nodeOrigin:r,nodeExtent:e,elevateNodesOnSelect:i,checkEquality:!1,zIndexMode:s}),g({nodeExtent:e}))},panBy:e=>{const{transform:t,width:n,height:o,panZoom:r,translateExtent:i}=p();return async function({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;const a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}({delta:e,panZoom:r,transform:t,translateExtent:i,width:n,height:o})},setCenter:async(e,t,n)=>{const{width:o,height:r,maxZoom:i,panZoom:a}=p();if(!a)return!1;const s=void 0!==n?.zoom?n.zoom:i;return await a.setViewport({x:o/2-e*s,y:r/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{g({connection:{...po}})},updateConnection:e=>{g({connection:e})},reset:()=>g({...sc()})}},p=Object.is,g?Li(g,p):Li;var g,p};function lc({initialNodes:e,initialEdges:o,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:s,initialMinZoom:c,initialMaxZoom:l,initialFitViewOptions:u,fitView:d,nodeOrigin:h,nodeExtent:f,zIndexMode:g,children:p}){const[m]=n.useState(()=>cc({nodes:e,edges:o,defaultNodes:r,defaultEdges:i,width:a,height:s,fitView:d,minZoom:c,maxZoom:l,fitViewOptions:u,nodeOrigin:h,nodeExtent:f,zIndexMode:g}));return t.jsx(Ti,{value:m,children:t.jsx(Oa,{children:p})})}function uc({children:e,nodes:o,edges:r,defaultNodes:i,defaultEdges:a,width:s,height:c,fitView:l,fitViewOptions:u,minZoom:d,maxZoom:h,nodeOrigin:f,nodeExtent:g,zIndexMode:p}){return n.useContext($i)?t.jsx(t.Fragment,{children:e}):t.jsx(lc,{initialNodes:o,initialEdges:r,defaultNodes:i,defaultEdges:a,initialWidth:s,initialHeight:c,fitView:l,initialFitViewOptions:u,initialMinZoom:d,initialMaxZoom:h,nodeOrigin:f,nodeExtent:g,zIndexMode:p,children:e})}const dc={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var hc=_a(function({nodes:o,edges:i,defaultNodes:a,defaultEdges:s,className:c,nodeTypes:l,edgeTypes:u,onNodeClick:d,onEdgeClick:h,onInit:f,onMove:g,onMoveStart:p,onMoveEnd:m,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:b,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:E,onNodeContextMenu:M,onNodeDoubleClick:N,onNodeDragStart:k,onNodeDrag:_,onNodeDragStop:P,onNodesDelete:z,onEdgesDelete:I,onDelete:O,onSelectionChange:A,onSelectionDragStart:D,onSelectionDrag:R,onSelectionDragStop:L,onSelectionContextMenu:$,onSelectionStart:T,onSelectionEnd:V,onBeforeDelete:B,connectionMode:j,connectionLineType:H=e.ConnectionLineType.Bezier,connectionLineStyle:Z,connectionLineComponent:X,connectionLineContainerStyle:Y,deleteKeyCode:F="Backspace",selectionKeyCode:W="Shift",selectionOnDrag:K=!1,selectionMode:G=e.SelectionMode.Full,panActivationKeyCode:q="Space",multiSelectionKeyCode:U=(Uo()?"Meta":"Control"),zoomActivationKeyCode:Q=(Uo()?"Meta":"Control"),snapToGrid:J,snapGrid:ee,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:ne,nodesDraggable:oe,autoPanOnNodeFocus:re,nodesConnectable:ie,nodesFocusable:ae,nodeOrigin:se=ia,edgesFocusable:ce,edgesReconnectable:le,elementsSelectable:ue=!0,defaultViewport:de=aa,minZoom:he=.5,maxZoom:fe=2,translateExtent:ge=co,preventScrolling:pe=!0,nodeExtent:me,defaultMarkerColor:ye="#b1b1b7",zoomOnScroll:ve=!0,zoomOnPinch:xe=!0,panOnScroll:we=!1,panOnScrollSpeed:be=.5,panOnScrollMode:Se=e.PanOnScrollMode.Free,zoomOnDoubleClick:Ce=!0,panOnDrag:Ee=!0,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:ke,onPaneMouseLeave:_e,onPaneScroll:Pe,onPaneContextMenu:ze,paneClickDistance:Ie=1,nodeClickDistance:Oe=0,children:Ae,onReconnect:De,onReconnectStart:Re,onReconnectEnd:Le,onEdgeContextMenu:$e,onEdgeDoubleClick:Te,onEdgeMouseEnter:Ve,onEdgeMouseMove:Be,onEdgeMouseLeave:je,reconnectRadius:He=10,onNodesChange:Ze,onEdgesChange:Xe,noDragClassName:Ye="nodrag",noWheelClassName:Fe="nowheel",noPanClassName:We="nopan",fitView:Ke,fitViewOptions:Ge,connectOnClick:qe,attributionPosition:Ue,proOptions:Qe,defaultEdgeOptions:Je,elevateNodesOnSelect:et=!0,elevateEdgesOnSelect:tt=!1,disableKeyboardA11y:nt=!1,autoPanOnConnect:ot,autoPanOnNodeDrag:rt,autoPanOnSelection:it=!0,autoPanSpeed:at,connectionRadius:st,isValidConnection:ct,onError:lt,style:ut,id:dt,nodeDragThreshold:ht,connectionDragThreshold:ft,viewport:gt,onViewportChange:pt,width:mt,height:yt,colorMode:vt="light",debug:xt,onScroll:wt,ariaLabelConfig:bt,zIndexMode:St="basic",...Ct},Et){const Mt=dt||"1",Nt=function(e){const[t,o]=n.useState("system"===e?null:e);return n.useEffect(()=>{if("system"!==e)return void o(e);const t=da(),n=()=>o(t?.matches?"dark":"light");return n(),t?.addEventListener("change",n),()=>{t?.removeEventListener("change",n)}},[e]),null!==t?t:da()?.matches?"dark":"light"}(vt),kt=n.useCallback(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),wt?.(e)},[wt]);return t.jsx("div",{"data-testid":"rf__wrapper",...Ct,onScroll:kt,style:{...ut,...dc},ref:Et,className:r(["react-flow",c,Nt]),id:dt,role:"application",children:t.jsxs(uc,{nodes:o,edges:i,width:mt,height:yt,fitView:Ke,fitViewOptions:Ge,minZoom:he,maxZoom:fe,nodeOrigin:se,nodeExtent:me,zIndexMode:St,children:[t.jsx(ua,{nodes:o,edges:i,defaultNodes:a,defaultEdges:s,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:b,nodesDraggable:oe,autoPanOnNodeFocus:re,nodesConnectable:ie,nodesFocusable:ae,edgesFocusable:ce,edgesReconnectable:le,elementsSelectable:ue,elevateNodesOnSelect:et,elevateEdgesOnSelect:tt,minZoom:he,maxZoom:fe,nodeExtent:me,onNodesChange:Ze,onEdgesChange:Xe,snapToGrid:J,snapGrid:ee,connectionMode:j,translateExtent:ge,connectOnClick:qe,defaultEdgeOptions:Je,fitView:Ke,fitViewOptions:Ge,onNodesDelete:z,onEdgesDelete:I,onDelete:O,onNodeDragStart:k,onNodeDrag:_,onNodeDragStop:P,onSelectionDrag:R,onSelectionDragStart:D,onSelectionDragStop:L,onMove:g,onMoveStart:p,onMoveEnd:m,noPanClassName:We,nodeOrigin:se,rfId:Mt,autoPanOnConnect:ot,autoPanOnNodeDrag:rt,autoPanSpeed:at,onError:lt,connectionRadius:st,isValidConnection:ct,selectNodesOnDrag:ne,nodeDragThreshold:ht,connectionDragThreshold:ft,onBeforeDelete:B,debug:xt,ariaLabelConfig:bt,zIndexMode:St}),t.jsx(ic,{onInit:f,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:E,onNodeContextMenu:M,onNodeDoubleClick:N,nodeTypes:l,edgeTypes:u,connectionLineType:H,connectionLineStyle:Z,connectionLineComponent:X,connectionLineContainerStyle:Y,selectionKeyCode:W,selectionOnDrag:K,selectionMode:G,deleteKeyCode:F,multiSelectionKeyCode:U,panActivationKeyCode:q,zoomActivationKeyCode:Q,onlyRenderVisibleElements:te,defaultViewport:de,translateExtent:ge,minZoom:he,maxZoom:fe,preventScrolling:pe,zoomOnScroll:ve,zoomOnPinch:xe,zoomOnDoubleClick:Ce,panOnScroll:we,panOnScrollSpeed:be,panOnScrollMode:Se,panOnDrag:Ee,autoPanOnSelection:it,onPaneClick:Me,onPaneMouseEnter:Ne,onPaneMouseMove:ke,onPaneMouseLeave:_e,onPaneScroll:Pe,onPaneContextMenu:ze,paneClickDistance:Ie,nodeClickDistance:Oe,onSelectionContextMenu:$,onSelectionStart:T,onSelectionEnd:V,onReconnect:De,onReconnectStart:Re,onReconnectEnd:Le,onEdgeContextMenu:$e,onEdgeDoubleClick:Te,onEdgeMouseEnter:Ve,onEdgeMouseMove:Be,onEdgeMouseLeave:je,reconnectRadius:He,defaultMarkerColor:ye,noDragClassName:Ye,noWheelClassName:Fe,noPanClassName:We,rfId:Mt,disableKeyboardA11y:nt,nodeExtent:me,viewport:gt,onViewportChange:pt}),t.jsx(ra,{onSelectionChange:A}),Ae,t.jsx(Ui,{proOptions:Qe,position:Ue}),t.jsx(Gi,{rfId:Mt,disableKeyboardA11y:nt})]})})});const fc=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function gc({children:e}){const t=Bi(fc);return t?o.createPortal(e,t):null}const pc=e=>e.domNode?.querySelector(".react-flow__viewport-portal");const mc=e=>e.nodes;const yc=e=>e.edges;const vc=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});const xc=ao();function wc({dimensions:e,lineWidth:n,variant:o,className:i}){return t.jsx("path",{strokeWidth:n,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:r(["react-flow__background-pattern",o,i])})}function bc({radius:e,className:n}){return t.jsx("circle",{cx:e,cy:e,r:e,className:r(["react-flow__background-pattern","dots",n])})}var Sc;e.BackgroundVariant=void 0,(Sc=e.BackgroundVariant||(e.BackgroundVariant={})).Lines="lines",Sc.Dots="dots",Sc.Cross="cross";const Cc={[e.BackgroundVariant.Dots]:1,[e.BackgroundVariant.Lines]:1,[e.BackgroundVariant.Cross]:6},Ec=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Mc({id:o,variant:i=e.BackgroundVariant.Dots,gap:a=20,size:s,lineWidth:c=1,offset:l=0,color:u,bgColor:d,style:h,className:f,patternClassName:g}){const p=n.useRef(null),{transform:m,patternId:y}=Bi(Ec,Qi),v=s||Cc[i],x=i===e.BackgroundVariant.Dots,w=i===e.BackgroundVariant.Cross,b=Array.isArray(a)?a:[a,a],S=[b[0]*m[2]||1,b[1]*m[2]||1],C=v*m[2],E=Array.isArray(l)?l:[l,l],M=w?[C,C]:S,N=[E[0]*m[2]||1+M[0]/2,E[1]*m[2]||1+M[1]/2],k=`${y}${o||""}`;return t.jsxs("svg",{className:r(["react-flow__background",f]),style:{...h,...$a,"--xy-background-color-props":d,"--xy-background-pattern-color-props":u},ref:p,"data-testid":"rf__background",children:[t.jsx("pattern",{id:k,x:m[0]%S[0],y:m[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${N[0]},-${N[1]})`,children:x?t.jsx(bc,{radius:C/2,className:g}):t.jsx(wc,{dimensions:M,lineWidth:c,variant:i,className:g})}),t.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${k})`})]})}Mc.displayName="Background";const Nc=n.memo(Mc);function kc(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:t.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function _c(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:t.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Pc(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:t.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function zc(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:t.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function Ic(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:t.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Oc({children:e,className:n,...o}){return t.jsx("button",{type:"button",className:r(["react-flow__controls-button",n]),...o,children:e})}const Ac=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Dc({style:e,showZoom:n=!0,showFitView:o=!0,showInteractive:i=!0,fitViewOptions:a,onZoomIn:s,onZoomOut:c,onFitView:l,onInteractiveChange:u,className:d,children:h,position:f="bottom-left",orientation:g="vertical","aria-label":p}){const m=ji(),{isInteractive:y,minZoomReached:v,maxZoomReached:x,ariaLabelConfig:w}=Bi(Ac,Qi),{zoomIn:b,zoomOut:S,fitView:C}=Da(),E="horizontal"===g?"horizontal":"vertical";return t.jsxs(qi,{className:r(["react-flow__controls",E,d]),position:f,style:e,"data-testid":"rf__controls","aria-label":p??w["controls.ariaLabel"],children:[n&&t.jsxs(t.Fragment,{children:[t.jsx(Oc,{onClick:()=>{b(),s?.()},className:"react-flow__controls-zoomin",title:w["controls.zoomIn.ariaLabel"],"aria-label":w["controls.zoomIn.ariaLabel"],disabled:x,children:t.jsx(kc,{})}),t.jsx(Oc,{onClick:()=>{S(),c?.()},className:"react-flow__controls-zoomout",title:w["controls.zoomOut.ariaLabel"],"aria-label":w["controls.zoomOut.ariaLabel"],disabled:v,children:t.jsx(_c,{})})]}),o&&t.jsx(Oc,{className:"react-flow__controls-fitview",onClick:()=>{C(a),l?.()},title:w["controls.fitView.ariaLabel"],"aria-label":w["controls.fitView.ariaLabel"],children:t.jsx(Pc,{})}),i&&t.jsx(Oc,{className:"react-flow__controls-interactive",onClick:()=>{m.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),u?.(!y)},title:w["controls.interactive.ariaLabel"],"aria-label":w["controls.interactive.ariaLabel"],children:y?t.jsx(Ic,{}):t.jsx(zc,{})}),h]})}Dc.displayName="Controls";const Rc=n.memo(Dc);const Lc=n.memo(function({id:e,x:n,y:o,width:i,height:a,style:s,color:c,strokeColor:l,strokeWidth:u,className:d,borderRadius:h,shapeRendering:f,selected:g,onClick:p}){const{background:m,backgroundColor:y}=s||{},v=c||m||y;return t.jsx("rect",{className:r(["react-flow__minimap-node",{selected:g},d]),x:n,y:o,rx:h,ry:h,width:i,height:a,style:{fill:v,stroke:l,strokeWidth:u},shapeRendering:f,onClick:p?t=>p(t,e):void 0})}),$c=e=>e.nodes.map(e=>e.id),Tc=e=>e instanceof Function?e:()=>e;const Vc=n.memo(function({id:e,nodeColorFunc:n,nodeStrokeColorFunc:o,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:s,NodeComponent:c,onClick:l}){const{node:u,x:d,y:h,width:f,height:g}=Bi(t=>{const n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};const o=n.internals.userNode,{x:r,y:i}=n.internals.positionAbsolute,{width:a,height:s}=Jo(o);return{node:o,x:r,y:i,width:a,height:s}},Qi);return u&&!u.hidden&&er(u)?t.jsx(c,{x:d,y:h,width:f,height:g,style:u.style,selected:!!u.selected,className:r(u),color:n(u),borderRadius:i,strokeColor:o(u),strokeWidth:a,shapeRendering:s,onClick:l,id:u.id}):null});var Bc=n.memo(function({nodeStrokeColor:e,nodeColor:n,nodeClassName:o="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Lc,onClick:s}){const c=Bi($c,Qi),l=Tc(n),u=Tc(e),d=Tc(o),h="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.jsx(t.Fragment,{children:c.map(e=>t.jsx(Vc,{id:e,nodeColorFunc:l,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:s,shapeRendering:h},e))})});const jc=e=>!e.hidden,Hc=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Ho(ko(e.nodeLookup,{filter:jc}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}};function Zc({style:e,className:o,nodeStrokeColor:i,nodeColor:a,nodeClassName:s="",nodeBorderRadius:c=5,nodeStrokeWidth:l,nodeComponent:u,bgColor:d,maskColor:h,maskStrokeColor:f,maskStrokeWidth:g,position:p="bottom-right",onClick:m,onNodeClick:y,pannable:v=!1,zoomable:x=!1,ariaLabel:w,inversePan:b,zoomStep:S=1,offsetScale:C=5}){const E=ji(),M=n.useRef(null),{boundingRect:N,viewBB:k,rfId:_,panZoom:P,translateExtent:z,flowWidth:I,flowHeight:O,ariaLabelConfig:A}=Bi(Hc,Qi),D=e?.width??200,R=e?.height??150,L=N.width/D,$=N.height/R,T=Math.max(L,$),V=T*D,B=T*R,j=C*T,H=N.x-(V-N.width)/2-j,Z=N.y-(B-N.height)/2-j,X=V+2*j,Y=B+2*j,F=`react-flow__minimap-desc-${_}`,W=n.useRef(0),K=n.useRef();W.current=T,n.useEffect(()=>{if(M.current&&P)return K.current=function({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=Se(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=[0,0];const h=Kn().on("start",e=>{"mousedown"!==e.sourceEvent.type&&"touchstart"!==e.sourceEvent.type||(d=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",c?r=>{const s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;const c=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],l=[c[0]-d[0],c[1]-d[1]];d=c;const h=o()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),f={x:s[0]-l[0]*h,y:s[1]-l[1]*h},g=[[0,0],[i,a]];t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},g,e)}:null).on("zoom.wheel",l?e=>{if("wheel"!==e.sourceEvent.type||!t)return;const o=n(),r=e.sourceEvent.ctrlKey&&Uo()?10:1,i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,a=o[2]*Math.pow(2,i*r);t.scaleTo(a)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:Ce}}({domNode:M.current,panZoom:P,getTransform:()=>E.getState().transform,getViewScale:()=>W.current}),()=>{K.current?.destroy()}},[P]),n.useEffect(()=>{K.current?.update({translateExtent:z,width:I,height:O,inversePan:b,pannable:v,zoomStep:S,zoomable:x})},[v,x,b,S,z,I,O]);const G=m?e=>{const[t,n]=K.current?.pointer(e)||[0,0];m(e,{x:t,y:n})}:void 0,q=y?n.useCallback((e,t)=>{const n=E.getState().nodeLookup.get(t).internals.userNode;y(e,n)},[]):void 0,U=w??A["minimap.ariaLabel"];return t.jsx(qi,{position:p,style:{...e,"--xy-minimap-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof h?h:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof f?f:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof g?g*T:void 0,"--xy-minimap-node-background-color-props":"string"==typeof a?a:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof i?i:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof l?l:void 0},className:r(["react-flow__minimap",o]),"data-testid":"rf__minimap",children:t.jsxs("svg",{width:D,height:R,viewBox:`${H} ${Z} ${X} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":F,ref:M,onClick:G,children:[U&&t.jsx("title",{id:F,children:U}),t.jsx(Bc,{onClick:q,nodeColor:a,nodeStrokeColor:i,nodeBorderRadius:c,nodeClassName:s,nodeStrokeWidth:l,nodeComponent:u}),t.jsx("path",{className:"react-flow__minimap-mask",d:`M${H-j},${Z-j}h${X+2*j}v${Y+2*j}h${-X-2*j}z\n M${k.x},${k.y}h${k.width}v${k.height}h${-k.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Zc.displayName="MiniMap";const Xc=n.memo(Zc),Yc={[e.ResizeControlVariant.Line]:"right",[e.ResizeControlVariant.Handle]:"bottom-right"};const Fc=n.memo(function({nodeId:o,position:i,variant:a=e.ResizeControlVariant.Handle,className:s,style:c,children:l,color:u,minWidth:d=10,minHeight:h=10,maxWidth:f=Number.MAX_VALUE,maxHeight:g=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:m,autoScale:y=!0,shouldResize:v,onResizeStart:x,onResize:w,onResizeEnd:b}){const S=qa(),C="string"==typeof o?o:S,E=ji(),M=n.useRef(null),N=a===e.ResizeControlVariant.Handle,k=Bi(n.useCallback((_=N&&y,e=>_?`${Math.max(1/e.transform[2],1)}`:void 0),[N,y]),Qi);var _;const P=n.useRef(null),z=i??Yc[a];n.useEffect(()=>{if(M.current&&C)return P.current||(P.current=wi({domNode:M.current,nodeId:C,getStoreItems:()=>{const{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,domNode:i}=E.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,paneDomNode:i}},onChange:(e,t)=>{const{triggerNodeChanges:n,nodeLookup:o,parentLookup:r,nodeOrigin:i}=E.getState(),a=[],s={x:e.x,y:e.y},c=o.get(C);if(c&&c.expandParent&&c.parentId){const t=c.origin??i,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=jr([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...tr({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,o,t)}}],o,r,i);a.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){const e={id:C,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){const t={id:C,type:"dimensions",resizing:!0,setAttributes:!m||("horizontal"===m?"width":"height"),dimensions:{width:e.width,height:e.height}};a.push(t)}for(const e of t){const t={...e,type:"position"};a.push(t)}n(a)},onEnd:({width:e,height:t})=>{const n={id:C,type:"dimensions",resizing:!1,dimensions:{width:e,height:t}};E.getState().triggerNodeChanges([n])}})),P.current.update({controlPosition:z,boundaries:{minWidth:d,minHeight:h,maxWidth:f,maxHeight:g},keepAspectRatio:p,resizeDirection:m,onResizeStart:x,onResize:w,onResizeEnd:b,shouldResize:v}),()=>{P.current?.destroy()}},[z,d,h,f,g,p,x,w,b,v]);const I=z.split("-");return t.jsx("div",{className:r(["react-flow__resize-control","nodrag",...I,a,s]),ref:M,style:{...c,scale:k,...u&&{[N?"backgroundColor":"borderColor"]:u}},children:l})});const Wc=e=>e.domNode?.querySelector(".react-flow__renderer");function Kc({children:e}){const t=Bi(Wc);return t?o.createPortal(e,t):null}const Gc=(e,t)=>e?.internals.positionAbsolute.x!==t?.internals.positionAbsolute.x||e?.internals.positionAbsolute.y!==t?.internals.positionAbsolute.y||e?.measured.width!==t?.measured.width||e?.measured.height!==t?.measured.height||e?.selected!==t?.selected||e?.internals.z!==t?.internals.z,qc=(e,t)=>{if(e.size!==t.size)return!1;for(const[n,o]of e)if(Gc(o,t.get(n)))return!1;return!0},Uc=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2],selectedNodesCount:e.nodes.filter(e=>e.selected).length});const Qc=e=>e.transform[2];e.Background=Nc,e.BaseEdge=xs,e.BezierEdge=Rs,e.ControlButton=Oc,e.Controls=Rc,e.EdgeLabelRenderer=gc,e.EdgeText=vs,e.EdgeToolbar=function({edgeId:e,x:o,y:i,children:a,className:s,style:c,isVisible:l,alignX:u="center",alignY:d="center",...h}){const f=Bi(n.useCallback(t=>t.edgeLookup.get(e),[e]),Qi),g="boolean"==typeof l?l:f?.selected,p=Bi(Qc);if(!g)return null;const m=(f?.zIndex??0)+1,y=function(e,t,n,o="center",r="center"){return`translate(${e}px, ${t}px) scale(${1/n}) translate(${-(Ir[o]??50)}%, ${-(Or[r]??50)}%)`}(o,i,p,u,d);return t.jsx(gc,{children:t.jsx("div",{style:{position:"absolute",transform:y,zIndex:m,pointerEvents:"all",transformOrigin:"0 0",...c},className:r(["react-flow__edge-toolbar",s]),"data-id":f?.id??"",...h,children:a})})},e.Handle=Qa,e.MiniMap=Xc,e.MiniMapNode=Lc,e.NodeResizeControl=Fc,e.NodeResizer=function({nodeId:n,isVisible:o=!0,handleClassName:r,handleStyle:i,lineClassName:a,lineStyle:s,color:c,minWidth:l=10,minHeight:u=10,maxWidth:d=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:f=!1,autoScale:g=!0,shouldResize:p,onResizeStart:m,onResize:y,onResizeEnd:v}){return o?t.jsxs(t.Fragment,{children:[di.map(o=>t.jsx(Fc,{className:a,style:s,nodeId:n,position:o,variant:e.ResizeControlVariant.Line,color:c,minWidth:l,minHeight:u,maxWidth:d,maxHeight:h,onResizeStart:m,keepAspectRatio:f,autoScale:g,shouldResize:p,onResize:y,onResizeEnd:v},o)),ui.map(e=>t.jsx(Fc,{className:r,style:i,nodeId:n,position:e,color:c,minWidth:l,minHeight:u,maxWidth:d,maxHeight:h,onResizeStart:m,keepAspectRatio:f,autoScale:g,shouldResize:p,onResize:y,onResizeEnd:v},e))]}):null},e.NodeToolbar=function({nodeId:o,children:i,className:a,style:s,isVisible:c,position:l=e.Position.Top,offset:u=10,align:d="center",...h}){const f=qa(),g=n.useCallback(e=>{const t=(Array.isArray(o)?o:[o||f||""]).reduce((t,n)=>{const o=e.nodeLookup.get(n);return o&&t.set(o.id,o),t},new Map);return t},[o,f]),p=Bi(g,qc),{x:m,y:y,zoom:v,selectedNodesCount:x}=Bi(Uc,Qi);if(!("boolean"==typeof c?c:1===p.size&&p.values().next().value?.selected&&1===x)||!p.size)return null;const w=ko(p),b=Array.from(p.values()),S=Math.max(...b.map(e=>e.internals.z+1)),C={position:"absolute",transform:zr(w,{x:m,y:y,zoom:v},l,u,d),zIndex:S,...s};return t.jsx(Kc,{children:t.jsx("div",{style:C,className:r(["react-flow__node-toolbar",a]),...h,"data-id":b.reduce((e,t)=>`${e}${t.id} `,"").trim(),children:i})})},e.Panel=qi,e.ReactFlow=hc,e.ReactFlowProvider=lc,e.SimpleBezierEdge=Cs,e.SmoothStepEdge=Ns,e.StepEdge=Ps,e.StraightEdge=Os,e.ViewportPortal=function({children:e}){const t=Bi(pc);return t?o.createPortal(e,t):null},e.addEdge=Ma,e.applyEdgeChanges=xa,e.applyNodeChanges=va,e.experimental_useOnEdgesChangeMiddleware=function(e){const t=ji(),[o]=n.useState(()=>Symbol());n.useEffect(()=>{const{onEdgesChangeMiddlewareMap:n}=t.getState();n.set(o,e)},[e]),n.useEffect(()=>{const{onEdgesChangeMiddlewareMap:e}=t.getState();return()=>{e.delete(o)}},[])},e.experimental_useOnNodesChangeMiddleware=function(e){const t=ji(),[o]=n.useState(()=>Symbol());n.useEffect(()=>{const{onNodesChangeMiddlewareMap:n}=t.getState();n.set(o,e)},[e]),n.useEffect(()=>{const{onNodesChangeMiddlewareMap:e}=t.getState();return()=>{e.delete(o)}},[])},e.getBezierEdgeCenter=hr,e.getBezierPath=pr,e.getConnectedEdges=Po,e.getEdgeCenter=mr,e.getIncomers=(e,t,n)=>{if(!e.id)return[];const o=new Set;return n.forEach(t=>{t.target===e.id&&o.add(t.source)}),t.filter(e=>o.has(e.id))},e.getNodesBounds=No,e.getOutgoers=(e,t,n)=>{if(!e.id)return[];const o=new Set;return n.forEach(t=>{t.source===e.id&&o.add(t.target)}),t.filter(e=>o.has(e.id))},e.getSimpleBezierPath=bs,e.getSmoothStepPath=Er,e.getStraightPath=xr,e.getViewportForBounds=qo,e.isEdge=ka,e.isNode=Na,e.reconnectEdge=function(e,t,n,o={shouldReplaceId:!0}){return((e,t,n,o={shouldReplaceId:!0})=>{const{id:r,...i}=e;if(!t.source||!t.target)return o.onError?.("006",Jn()),n;if(!n.find(t=>t.id===e.id))return o.onError?.("007",eo(r)),n;const a=o.getEdgeId||vr,s={...i,id:o.shouldReplaceId?a(t):r,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter(e=>e.id!==r).concat(s)})(e,t,n,{...o,onError:o.onError??Ea})},e.useConnection=Qs,e.useEdges=function(){return Bi(yc,Qi)},e.useEdgesState=function(e){const[t,o]=n.useState(e),r=n.useCallback(e=>o(t=>xa(e,t)),[]);return[t,o,r]},e.useHandleConnections=function({type:e,id:t,nodeId:o,onConnect:r,onDisconnect:i}){console.warn("[DEPRECATED] `useHandleConnections` is deprecated. Instead use `useNodeConnections` https://reactflow.dev/api-reference/hooks/useNodeConnections");const a=qa(),s=o??a,c=n.useRef(null),l=Bi(n=>n.connectionLookup.get(`${s}-${e}${t?`-${t}`:""}`),wo);return n.useEffect(()=>{if(c.current&&c.current!==l){const e=l??new Map;bo(c.current,e,i),bo(e,c.current,r)}c.current=l??new Map},[l,r,i]),n.useMemo(()=>Array.from(l?.values()??[]),[l])},e.useInternalNode=function(e){return Bi(n.useCallback(t=>t.nodeLookup.get(e),[e]),Qi)},e.useKeyPress=fa,e.useNodeConnections=function({id:e,handleType:t,handleId:o,onConnect:r,onDisconnect:i}={}){const a=qa(),s=e??a;if(!s)throw new Error(xc);const c=n.useRef(null),l=Bi(e=>e.connectionLookup.get(`${s}${t?o?`-${t}-${o}`:`-${t}`:""}`),wo);return n.useEffect(()=>{if(c.current&&c.current!==l){const e=l??new Map;bo(c.current,e,i),bo(e,c.current,r)}c.current=l??new Map},[l,r,i]),n.useMemo(()=>Array.from(l?.values()??[]),[l])},e.useNodeId=qa,e.useNodes=function(){return Bi(mc,Qi)},e.useNodesData=function(e){return Bi(n.useCallback(t=>{const n=[],o=Array.isArray(e),r=o?e:[e];for(const e of r){const o=t.nodeLookup.get(e);o&&n.push({id:o.id,type:o.type,data:o.data})}return o?n:n[0]??null},[e]),Xr)},e.useNodesInitialized=function(e={includeHiddenNodes:!1}){return Bi((e=>t=>{if(!e.includeHiddenNodes)return t.nodesInitialized;if(0===t.nodeLookup.size)return!1;for(const[,{internals:e}]of t.nodeLookup)if(void 0===e.handleBounds||!er(e.userNode))return!1;return!0})(e))},e.useNodesState=function(e){const[t,o]=n.useState(e),r=n.useCallback(e=>o(t=>va(e,t)),[]);return[t,o,r]},e.useOnSelectionChange=function({onChange:e}){const t=ji();n.useEffect(()=>{const n=[...t.getState().onSelectionChangeHandlers,e];return t.setState({onSelectionChangeHandlers:n}),()=>{const n=t.getState().onSelectionChangeHandlers.filter(t=>t!==e);t.setState({onSelectionChangeHandlers:n})}},[e])},e.useOnViewportChange=function({onStart:e,onChange:t,onEnd:o}){const r=ji();n.useEffect(()=>{r.setState({onViewportChangeStart:e})},[e]),n.useEffect(()=>{r.setState({onViewportChange:t})},[t]),n.useEffect(()=>{r.setState({onViewportChangeEnd:o})},[o])},e.useReactFlow=Da,e.useStore=Bi,e.useStoreApi=ji,e.useUpdateNodeInternals=function(){const e=ji();return n.useCallback(t=>{const{domNode:n,updateNodeInternals:o}=e.getState(),r=Array.isArray(t)?t:[t],i=new Map;r.forEach(e=>{const t=n?.querySelector(`.react-flow__node[data-id="${e}"]`);t&&i.set(e,{id:e,nodeElement:t,force:!0})}),requestAnimationFrame(()=>o(i,{triggerFitView:!1}))},[])},e.useViewport=function(){return Bi(vc,Qi)}});