Files
chinese-family-tree-2/.next/static/chunks/254b056e5dd16960.js
T
freedakgmail 2b4bc92f1b 0.0.3.0
2025-11-23 13:31:06 +08:00

19 lines
156 KiB
JavaScript

(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,43193,(e,t,n)=>{"use strict";var r=e.r(34346),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useState,a=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}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(),r=i({inst:{value:n,getSnapshot:t}}),o=r[0].inst,c=r[1];return l(function(){o.value=n,o.getSnapshot=t,u(o)&&c({inst:o})},[e,n,t]),a(function(){return u(o)&&c({inst:o}),e(function(){u(o)&&c({inst:o})})},[e]),s(n),n};n.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},44738,(e,t,n)=>{"use strict";t.exports=e.r(43193)},4579,(e,t,n)=>{"use strict";var r=e.r(34346),o=e.r(44738),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=o.useSyncExternalStore,l=r.useRef,s=r.useEffect,u=r.useMemo,c=r.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var h=a(e,(d=u(function(){function e(e){if(!s){if(s=!0,a=e,e=r(e),void 0!==o&&f.hasValue){var t=f.value;if(o(t,e))return l=t}return l=e}if(t=l,i(a,e))return t;var n=r(e);return void 0!==o&&o(t,n)?(a=e,t):(a=e,l=n)}var a,l,s=!1,u=void 0===n?null:n;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,n,r,o]))[0],d[1]);return s(function(){f.hasValue=!0,f.value=h},[h]),c(h),h}},12653,(e,t,n)=>{"use strict";t.exports=e.r(4579)},85398,e=>{"use strict";var t,n,r,o,i,a,l,s,u,c,d,f,h,p,m,g=e.i(36792),y=e.i(82772),v=e.i(69744),x=e.i(34346),b=e.i(76584);let w=new Map;function S(e){let[t,n]=(0,x.useState)(e?w.get(e):void 0),[r,o]=(0,x.useState)(!1);return(0,x.useEffect)(()=>{if(!e)return void n(void 0);let t=w.get(e);if(t)return void n(t);let r=!0;return o(!0),b.db.images.get(e).then(t=>{if(t&&r){let r=URL.createObjectURL(t.blob);w.set(e,r),n(r)}}).catch(e=>{console.error("Failed to load avatar:",e)}).finally(()=>{r&&o(!1)}),()=>{r=!1}},[e]),{avatarUrl:t,isLoading:r}}var _=e.i(74665),E=e.i(8204),M=e.i(27706);let N=(0,M.default)("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);function k(e){return e?e.split("-")[0]:""}function C({member:e,isRoot:t,isSpouse:n,onSelect:r,isHighlighted:o}){let{avatarUrl:i}=S(e?.avatarImageId),a=k(e.birthDate),l=k(e.deathDate),s=function(e,t){if(!e)return null;let n=new Date(e),r=t?new Date(t):new Date,o=r.getFullYear()-n.getFullYear(),i=r.getMonth()-n.getMonth();return(i<0||0===i&&r.getDate()<n.getDate())&&o--,o}(e.birthDate,e.deathDate),u=a?l?`${a}-${l}`:`${a}-`:"",c=null!==s?e.deathDate?`享年${s}`:`${s}`:"";return(0,g.jsxs)("div",{className:(0,v.cn)("family-node-card relative flex flex-col items-center gap-2 p-3 rounded-lg transition-all cursor-pointer hover:scale-105 shadow-sm w-32",o?"border-4 border-yellow-400 bg-yellow-50 dark:bg-yellow-900/20 ring-4 ring-yellow-200 dark:ring-yellow-800 animate-pulse":t?"border-2 border-primary bg-primary/5":n?"border-2 border-dashed border-border/60 bg-muted/30":"border-2 border-border bg-card"),onClick:()=>r?.(e),children:[(0,g.jsxs)("div",{className:"absolute -top-3 bg-background border border-border px-2 py-0.5 rounded-full text-[10px] text-muted-foreground font-mono",children:[e.generation,"世"]}),(0,g.jsx)("div",{className:"h-12 w-12 rounded-full bg-muted flex items-center justify-center text-muted-foreground overflow-hidden border border-border/50",children:i?(0,g.jsx)("img",{src:i,alt:e.fullName,className:"h-full w-full object-cover"}):"female"===e.gender?(0,g.jsx)(E.CircleUserRound,{className:"h-8 w-8 text-pink-400"}):(0,g.jsx)(_.CircleUser,{className:"h-8 w-8 text-blue-400"})}),(0,g.jsxs)("div",{className:"text-center w-full",children:[(0,g.jsxs)("div",{className:"font-serif font-bold text-foreground leading-tight",children:[e.surname," ",e.givenName]}),e.courtesyName&&(0,g.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-0.5",children:["字 ",e.courtesyName]}),u&&(0,g.jsx)("div",{className:"text-[9px] text-muted-foreground/70 mt-1 font-mono",children:u}),c&&(0,g.jsx)("div",{className:"text-[9px] text-muted-foreground/60 font-mono",children:c}),e.phone&&(0,g.jsxs)("div",{className:"text-[9px] text-muted-foreground/60 font-mono truncate",children:["📱 ",e.phone]})]}),e.deathDate&&(0,g.jsx)("div",{className:"absolute -top-1 -right-1 h-2 w-2 rounded-full bg-neutral-400 ring-2 ring-background"})]})}function A({member:e,spouse:t,isRoot:n,onSelect:r,isHighlighted:o}){return t?(0,g.jsxs)("div",{className:"flex items-center gap-2",children:[(0,g.jsx)(C,{member:e,isRoot:n,onSelect:r,isHighlighted:o}),(0,g.jsx)(N,{className:"h-4 w-4 text-red-400 flex-shrink-0"}),(0,g.jsx)(C,{member:t,isSpouse:!0,onSelect:r})]}):(0,g.jsx)(C,{member:e,isRoot:n,onSelect:r,isHighlighted:o})}var $=e.i(92879),z=e.i(69074);function R({rootId:e,onSelectMember:t}){let{getMember:n,treeData:r,highlightedMemberId:o}=(0,$.useFamily)(),i=n(e),a=(0,z.useRouter)(),l=(0,x.useRef)(null),[s,u]=(0,x.useState)([]),c=(0,x.useRef)(new Map),d=(0,x.useCallback)(e=>{a.push(`/members/${e.id}`)},[a]),f=(0,x.useCallback)(()=>{let e=[],t=l.current?.getBoundingClientRect();t&&0!==c.current.size&&(c.current.forEach((r,o)=>{let i=n(o);if(!i||!i.childrenIds||0===i.childrenIds.length)return;let a=r.getBoundingClientRect(),l=a.left+a.width/2-t.left,s=a.bottom-t.top,u=s+24;e.push({from:{x:l,y:s},to:{x:l,y:u},type:"vertical"});let d=i.childrenIds.map(e=>{let n=c.current.get(e);if(!n)return null;let r=n.getBoundingClientRect();return{id:e,centerX:r.left+r.width/2-t.left,topY:r.top-t.top}}).filter(Boolean);if(0!==d.length){if(d.length>1){let t=Math.min(...d.map(e=>e.centerX)),n=Math.max(...d.map(e=>e.centerX));e.push({from:{x:t,y:u},to:{x:n,y:u},type:"horizontal"})}d.forEach(t=>{e.push({from:{x:t.centerX,y:u},to:{x:t.centerX,y:t.topY},type:"vertical"})})}}),u(e))},[n]);if((0,x.useEffect)(()=>{let e=[];return e.push(setTimeout(f,50)),e.push(setTimeout(f,150)),e.push(setTimeout(f,300)),e.push(setTimeout(f,500)),window.addEventListener("resize",f),()=>{e.forEach(e=>clearTimeout(e)),window.removeEventListener("resize",f)}},[f,r]),!i)return null;let h=({memberId:e,isRoot:t=!1})=>{let r=n(e);if(!r)return null;let i=r.childrenIds&&r.childrenIds.length>0,a=r.spouseIds&&r.spouseIds.length>0?n(r.spouseIds[0]):void 0;return(0,g.jsxs)("div",{className:"flex flex-col items-center",children:[(0,g.jsx)("div",{ref:t=>{t?c.current.set(e,t):c.current.delete(e)},className:"relative z-10",children:(0,g.jsx)(A,{member:r,spouse:a,onSelect:d,isRoot:t,isHighlighted:r.id===o})}),i&&(0,g.jsx)("div",{className:"flex items-start relative",style:{marginTop:"48px",gap:"32px"},children:r.childrenIds.map(e=>(0,g.jsx)(h,{memberId:e},e))})]})};return(0,g.jsx)("div",{className:"relative",children:(0,g.jsxs)("div",{ref:l,className:"p-12 min-w-fit relative",style:{minHeight:"100%"},children:[(0,g.jsx)("div",{className:"absolute inset-0 pointer-events-none",style:{zIndex:1},children:s.map((e,t)=>{let n="horizontal"===e.type,r=n?Math.abs(e.to.x-e.from.x):1,o=n?1:Math.abs(e.to.y-e.from.y),i=Math.min(e.from.x,e.to.x),a=Math.min(e.from.y,e.to.y);return r<=0||o<=0?null:(0,g.jsx)("div",{className:"absolute bg-foreground/25",style:{left:`${i}px`,top:`${a}px`,width:`${r}px`,height:`${o}px`,transform:n?"scaleY(0.3)":"scaleX(0.3)",transformOrigin:"top left"}},t)})}),(0,g.jsx)("div",{className:"relative",style:{zIndex:10},children:(0,g.jsx)(h,{memberId:e,isRoot:!0})})]})})}function I(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)""!==(r=I(e[n]))&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}e.i(34526);var P=e.i(12653);let O={get url(){return`file://${e.P("Documents/go-new/chinese-family-tree/node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.6_react@19.2.0/node_modules/zustand/esm/vanilla.mjs")}`}},j=e=>{let t,n=new Set,r=(e,r)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e))}},o=()=>t,i={setState:r,getState:o,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{(O.env?O.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(r,o,i);return i},{useDebugValue:D}=x.default,{useSyncExternalStoreWithSelector:T}=P.default,B=e=>e;function L(e,t=B,n){let r=T(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return D(r),r}let H=(e,t)=>{let n=e?j(e):j,r=(e,r=t)=>L(n,e,r);return Object.assign(r,n),r};function V(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(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var F={value:()=>{}};function X(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw Error("illegal type: "+e);r[e]=[]}return new Y(r)}function Y(e){this._=e}function q(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=F,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}function U(){}function K(e){return null==e?U:function(){return this.querySelector(e)}}function Z(){return[]}function W(e){return null==e?Z:function(){return this.querySelectorAll(e)}}function G(e){return function(){return this.matches(e)}}function Q(e){return function(t){return t.matches(e)}}Y.prototype=X.prototype={constructor:Y,on:function(e,t){var n,r=this._,o=(e+"").trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw Error("unknown type: "+e);return{type:e,name:t}}),i=-1,a=o.length;if(arguments.length<2){for(;++i<a;)if((n=(e=o[i]).type)&&(n=function(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}(r[n],e.name)))return n;return}if(null!=t&&"function"!=typeof t)throw Error("invalid callback: "+t);for(;++i<a;)if(n=(e=o[i]).type)r[n]=q(r[n],e.name,t);else if(null==t)for(n in r)r[n]=q(r[n],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Y(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw Error("unknown type: "+e);for(r=this._[e],i=0,n=r.length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};var J=Array.prototype.find;function ee(){return this.firstElementChild}var et=Array.prototype.filter;function en(){return Array.from(this.children)}function er(e){return Array(e.length)}function eo(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function ei(e,t,n,r,o,i){for(var a,l=0,s=t.length,u=i.length;l<u;++l)(a=t[l])?(a.__data__=i[l],r[l]=a):n[l]=new eo(e,i[l]);for(;l<s;++l)(a=t[l])&&(o[l]=a)}function ea(e,t,n,r,o,i,a){var l,s,u,c=new Map,d=t.length,f=i.length,h=Array(d);for(l=0;l<d;++l)(s=t[l])&&(h[l]=u=a.call(s,s.__data__,l,t)+"",c.has(u)?o[l]=s:c.set(u,s));for(l=0;l<f;++l)u=a.call(e,i[l],l,i)+"",(s=c.get(u))?(r[l]=s,s.__data__=i[l],c.delete(u)):n[l]=new eo(e,i[l]);for(l=0;l<d;++l)(s=t[l])&&c.get(h[l])===s&&(o[l]=s)}function el(e){return e.__data__}function es(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}eo.prototype={constructor:eo,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var eu="http://www.w3.org/1999/xhtml";let ec={svg:"http://www.w3.org/2000/svg",xhtml:eu,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ed(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),ec.hasOwnProperty(t)?{space:ec[t],local:e}:e}function ef(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function eh(e,t){return e.style.getPropertyValue(t)||ef(e).getComputedStyle(e,null).getPropertyValue(t)}function ep(e){return e.trim().split(/^|\s+/)}function em(e){return e.classList||new eg(e)}function eg(e){this._node=e,this._names=ep(e.getAttribute("class")||"")}function ey(e,t){for(var n=em(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function ev(e,t){for(var n=em(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function ex(){this.textContent=""}function eb(){this.innerHTML=""}function ew(){this.nextSibling&&this.parentNode.appendChild(this)}function eS(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function e_(e){var t=ed(e);return(t.local?function(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}:function(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===eu&&t.documentElement.namespaceURI===eu?t.createElement(e):t.createElementNS(n,e)}})(t)}function eE(){return null}function eM(){var e=this.parentNode;e&&e.removeChild(this)}function eN(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ek(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eC(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)(n=t[r],e.type&&n.type!==e.type||n.name!==e.name)?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function eA(e,t,n){return function(){var r,o=this.__on,i=function(e){t.call(this,e,this.__data__)};if(o){for(var a=0,l=o.length;a<l;++a)if((r=o[a]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function e$(e,t,n){var r=ef(e),o=r.CustomEvent;"function"==typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}eg.prototype={add:function(e){0>this._names.indexOf(e)&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var ez=[null];function eR(e,t){this._groups=e,this._parents=t}function eI(){return new eR([[document.documentElement]],ez)}function eP(e){return"string"==typeof e?new eR([[document.querySelector(e)]],[document.documentElement]):new eR([[e]],ez)}eR.prototype=eI.prototype={constructor:eR,select:function(e){"function"!=typeof e&&(e=K(e));for(var t=this._groups,n=t.length,r=Array(n),o=0;o<n;++o)for(var i,a,l=t[o],s=l.length,u=r[o]=Array(s),c=0;c<s;++c)(i=l[c])&&(a=e.call(i,i.__data__,c,l))&&("__data__"in i&&(a.__data__=i.__data__),u[c]=a);return new eR(r,this._parents)},selectAll:function(e){if("function"==typeof e){var t;t=e,e=function(){var e;return e=t.apply(this,arguments),null==e?[]:Array.isArray(e)?e:Array.from(e)}}else e=W(e);for(var n=this._groups,r=n.length,o=[],i=[],a=0;a<r;++a)for(var l,s=n[a],u=s.length,c=0;c<u;++c)(l=s[c])&&(o.push(e.call(l,l.__data__,c,s)),i.push(l));return new eR(o,i)},selectChild:function(e){var t;return this.select(null==e?ee:(t="function"==typeof e?e:Q(e),function(){return J.call(this.children,t)}))},selectChildren:function(e){var t;return this.selectAll(null==e?en:(t="function"==typeof e?e:Q(e),function(){return et.call(this.children,t)}))},filter:function(e){"function"!=typeof e&&(e=G(e));for(var t=this._groups,n=t.length,r=Array(n),o=0;o<n;++o)for(var i,a=t[o],l=a.length,s=r[o]=[],u=0;u<l;++u)(i=a[u])&&e.call(i,i.__data__,u,a)&&s.push(i);return new eR(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,el);var n=t?ea:ei,r=this._parents,o=this._groups;"function"!=typeof e&&(v=e,e=function(){return v});for(var i=o.length,a=Array(i),l=Array(i),s=Array(i),u=0;u<i;++u){var c=r[u],d=o[u],f=d.length,h="object"==typeof(y=e.call(c,c&&c.__data__,u,r))&&"length"in y?y:Array.from(y),p=h.length,m=l[u]=Array(p),g=a[u]=Array(p);n(c,d,m,g,s[u]=Array(f),h,t);for(var y,v,x,b,w=0,S=0;w<p;++w)if(x=m[w]){for(w>=S&&(S=w+1);!(b=g[S])&&++S<p;);x._next=b||null}}return(a=new eR(a,r))._enter=l,a._exit=s,a},enter:function(){return new eR(this._enter||this._groups.map(er),this._parents)},exit:function(){return new eR(this._exit||this._groups.map(er),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"==typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),l=Array(o),s=0;s<a;++s)for(var u,c=n[s],d=r[s],f=c.length,h=l[s]=Array(f),p=0;p<f;++p)(u=c[p]||d[p])&&(h[p]=u);for(;s<o;++s)l[s]=n[s];return new eR(l,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=es);for(var n=this._groups,r=n.length,o=Array(r),i=0;i<r;++i){for(var a,l=n[i],s=l.length,u=o[i]=Array(s),c=0;c<s;++c)(a=l[c])&&(u[c]=a);u.sort(t)}return new eR(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(let t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,l=i.length;a<l;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=ed(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?function(e){return function(){this.removeAttributeNS(e.space,e.local)}}:function(e){return function(){this.removeAttribute(e)}}:"function"==typeof t?n.local?function(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(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}:n.local?function(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}:function(e,t){return function(){this.setAttribute(e,t)}})(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?function(e){return function(){this.style.removeProperty(e)}}:"function"==typeof t?function(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}:function(e,t,n){return function(){this.style.setProperty(e,t,n)}})(e,t,null==n?"":n)):eh(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?function(e){return function(){delete this[e]}}:"function"==typeof t?function(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}:function(e,t){return function(){this[e]=t}})(e,t)):this.node()[e]},classed:function(e,t){var n=ep(e+"");if(arguments.length<2){for(var r=em(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"==typeof t?function(e,t){return function(){(t.apply(this,arguments)?ey:ev)(this,e)}}:t?function(e){return function(){ey(this,e)}}:function(e){return function(){ev(this,e)}})(n,t))},text:function(e){return arguments.length?this.each(null==e?ex:("function"==typeof e?function(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}:function(e){return function(){this.textContent=e}})(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?eb:("function"==typeof e?function(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}:function(e){return function(){this.innerHTML=e}})(e)):this.node().innerHTML},raise:function(){return this.each(ew)},lower:function(){return this.each(eS)},append:function(e){var t="function"==typeof e?e:e_(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})},insert:function(e,t){var n="function"==typeof e?e:e_(e),r=null==t?eE:"function"==typeof t?t:K(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(eM)},clone:function(e){return this.select(e?ek:eN)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=(e+"").trim().split(/^|\s+/).map(function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}),a=i.length;if(arguments.length<2){var l=this.node().__on;if(l){for(var s,u=0,c=l.length;u<c;++u)for(r=0,s=l[u];r<a;++r)if((o=i[r]).type===s.type&&o.name===s.name)return s.value}return}for(r=0,l=t?eA:eC;r<a;++r)this.each(l(i[r],t,n));return this},dispatch:function(e,t){return this.each(("function"==typeof t?function(e,t){return function(){return e$(this,e,t.apply(this,arguments))}}:function(e,t){return function(){return e$(this,e,t)}})(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};let eO={passive:!1},ej={capture:!0,passive:!1};function eD(e){e.stopImmediatePropagation()}function eT(e){e.preventDefault(),e.stopImmediatePropagation()}function eB(e){var t=e.document.documentElement,n=eP(e).on("dragstart.drag",eT,ej);"onselectstart"in t?n.on("selectstart.drag",eT,ej):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function eL(e,t){var n=e.document.documentElement,r=eP(e).on("dragstart.drag",null);t&&(r.on("click.drag",eT,ej),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function eH(e){return((e=Math.exp(e))+1/e)/2}let eV=function e(t,n,r){function o(e,o){var i,a,l=e[0],s=e[1],u=e[2],c=o[0],d=o[1],f=o[2],h=c-l,p=d-s,m=h*h+p*p;if(m<1e-12)a=Math.log(f/u)/t,i=function(e){return[l+e*h,s+e*p,u*Math.exp(t*e*a)]};else{var g=Math.sqrt(m),y=(f*f-u*u+r*m)/(2*u*n*g),v=(f*f-u*u-r*m)/(2*f*n*g),x=Math.log(Math.sqrt(y*y+1)-y);a=(Math.log(Math.sqrt(v*v+1)-v)-x)/t,i=function(e){var r,o,i=e*a,c=eH(x),d=u/(n*g)*(c*(((r=Math.exp(2*(r=t*i+x)))-1)/(r+1))-((o=Math.exp(o=x))-1/o)/2);return[l+d*h,s+d*p,u*c/eH(t*i+x)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4);function eF(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 r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}var eX,eY,eq=0,eU=0,eK=0,eZ=0,eW=0,eG=0,eQ="object"==typeof performance&&performance.now?performance:Date,eJ="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function e0(){return eW||(eJ(e1),eW=eQ.now()+eG)}function e1(){eW=0}function e2(){this._call=this._time=this._next=null}function e3(e,t,n){var r=new e2;return r.restart(e,t,n),r}function e5(){eW=(eZ=eQ.now())+eG,eq=eU=0;try{e0(),++eq;for(var e,t=eX;t;)(e=eW-t._time)>=0&&t._call.call(void 0,e),t=t._next;--eq}finally{eq=0,function(){for(var e,t,n=eX,r=1/0;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:eX=t);eY=e,e6(r)}(),eW=0}}function e4(){var e=eQ.now(),t=e-eZ;t>1e3&&(eG-=t,eZ=e)}function e6(e){!eq&&(eU&&(eU=clearTimeout(eU)),e-eW>24?(e<1/0&&(eU=setTimeout(e5,e-eQ.now()-eG)),eK&&(eK=clearInterval(eK))):(eK||(eZ=eQ.now(),eK=setInterval(e4,1e3)),eq=1,eJ(e5)))}function e8(e,t,n){var r=new e2;return t=null==t?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}e2.prototype=e3.prototype={constructor:e2,restart:function(e,t,n){if("function"!=typeof e)throw TypeError("callback is not a function");n=(null==n?e0():+n)+(null==t?0:+t),this._next||eY===this||(eY?eY._next=this:eX=this,eY=this),this._call=e,this._time=n,e6()},stop:function(){this._call&&(this._call=null,this._time=1/0,e6())}};var e9=X("start","end","cancel","interrupt"),e7=[];function te(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(s){var u,c,d,f;if(1!==n.state)return l();for(u in o)if((f=o[u]).name===n.name){if(3===f.state)return e8(i);4===f.state?(f.state=6,f.timer.stop(),f.on.call("interrupt",e,e.__data__,f.index,f.group),delete o[u]):+u<t&&(f.state=6,f.timer.stop(),f.on.call("cancel",e,e.__data__,f.index,f.group),delete o[u])}if(e8(function(){3===n.state&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(s))}),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),2===n.state){for(u=0,n.state=3,r=Array(d=n.tween.length),c=-1;u<d;++u)(f=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(r[++c]=f);r.length=c+1}}function a(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(l),n.state=5,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);5===n.state&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){for(var r in n.state=6,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=e3(function(e){n.state=1,n.timer.restart(i,n.delay,n.time),n.delay<=e&&i(e-n.delay)},0,n.time)}(e,n,{name:t,index:r,group:o,on:e9,tween:e7,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function tt(e,t){var n=tr(e,t);if(n.state>0)throw Error("too late; already scheduled");return n}function tn(e,t){var n=tr(e,t);if(n.state>3)throw Error("too late; already running");return n}function tr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error("transition not found");return n}function to(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i){if((n=i[o]).name!==t){a=!1;continue}r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]}a&&delete e.__transition}}function ti(e,t){return e*=1,t*=1,function(n){return e*(1-n)+t*n}}var ta=180/Math.PI,tl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ts(e,t,n,r,o,i){var a,l,s;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(s=e*n+t*r)&&(n-=e*s,r-=t*s),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,s/=l),e*r<t*n&&(e=-e,t=-t,s=-s,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*ta,skewX:Math.atan(s)*ta,scaleX:a,scaleY:l}}function tu(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var l,s,u,c,d=[],f=[];return i=e(i),a=e(a),!function(e,r,o,i,a,l){if(e!==o||r!==i){var s=a.push("translate(",null,t,null,n);l.push({i:s-4,x:ti(e,o)},{i:s-2,x:ti(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,d,f),l=i.rotate,s=a.rotate,l!==s?(l-s>180?s+=360:s-l>180&&(l+=360),f.push({i:d.push(o(d)+"rotate(",null,r)-2,x:ti(l,s)})):s&&d.push(o(d)+"rotate("+s+r),u=i.skewX,c=a.skewX,u!==c?f.push({i:d.push(o(d)+"skewX(",null,r)-2,x:ti(u,c)}):c&&d.push(o(d)+"skewX("+c+r),!function(e,t,n,r,i,a){if(e!==n||t!==r){var l=i.push(o(i)+"scale(",null,",",null,")");a.push({i:l-4,x:ti(e,n)},{i:l-2,x:ti(t,r)})}else(1!==n||1!==r)&&i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,d,f),i=a=null,function(e){for(var t,n=-1,r=f.length;++n<r;)d[(t=f[n]).i]=t.x(e);return d.join("")}}}var tc=tu(function(e){let t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?tl:ts(t.a,t.b,t.c,t.d,t.e,t.f)},"px, ","px)","deg)"),td=tu(function(e){return null==e?tl:(s||(s=document.createElementNS("http://www.w3.org/2000/svg","g")),s.setAttribute("transform",e),e=s.transform.baseVal.consolidate())?ts((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):tl},", ",")",")");function tf(e,t,n){var r=e._id;return e.each(function(){var e=tn(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)}),function(e){return tr(e,r).value[t]}}function th(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function tp(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function tm(){}var tg="\\s*([+-]?\\d+)\\s*",ty="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",tv="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tx=/^#([0-9a-f]{3,8})$/,tb=RegExp(`^rgb\\(${tg},${tg},${tg}\\)$`),tw=RegExp(`^rgb\\(${tv},${tv},${tv}\\)$`),tS=RegExp(`^rgba\\(${tg},${tg},${tg},${ty}\\)$`),t_=RegExp(`^rgba\\(${tv},${tv},${tv},${ty}\\)$`),tE=RegExp(`^hsl\\(${ty},${tv},${tv}\\)$`),tM=RegExp(`^hsla\\(${ty},${tv},${tv},${ty}\\)$`),tN={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function tk(){return this.rgb().formatHex()}function tC(){return this.rgb().formatRgb()}function tA(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=tx.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?t$(t):3===n?new tI(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?tz(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?tz(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=tb.exec(e))?new tI(t[1],t[2],t[3],1):(t=tw.exec(e))?new tI(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=tS.exec(e))?tz(t[1],t[2],t[3],t[4]):(t=t_.exec(e))?tz(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=tE.exec(e))?tB(t[1],t[2]/100,t[3]/100,1):(t=tM.exec(e))?tB(t[1],t[2]/100,t[3]/100,t[4]):tN.hasOwnProperty(e)?t$(tN[e]):"transparent"===e?new tI(NaN,NaN,NaN,0):null}function t$(e){return new tI(e>>16&255,e>>8&255,255&e,1)}function tz(e,t,n,r){return r<=0&&(e=t=n=NaN),new tI(e,t,n,r)}function tR(e,t,n,r){var o;return 1==arguments.length?((o=e)instanceof tm||(o=tA(o)),o)?new tI((o=o.rgb()).r,o.g,o.b,o.opacity):new tI:new tI(e,t,n,null==r?1:r)}function tI(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function tP(){return`#${tT(this.r)}${tT(this.g)}${tT(this.b)}`}function tO(){let e=tj(this.opacity);return`${1===e?"rgb(":"rgba("}${tD(this.r)}, ${tD(this.g)}, ${tD(this.b)}${1===e?")":`, ${e})`}`}function tj(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function tD(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function tT(e){return((e=tD(e))<16?"0":"")+e.toString(16)}function tB(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new tH(e,t,n,r)}function tL(e){if(e instanceof tH)return new tH(e.h,e.s,e.l,e.opacity);if(e instanceof tm||(e=tA(e)),!e)return new tH;if(e instanceof tH)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,s=(i+o)/2;return l?(a=t===i?(n-r)/l+(n<r)*6:n===i?(r-t)/l+2:(t-n)/l+4,l/=s<.5?i+o:2-i-o,a*=60):l=s>0&&s<1?0:a,new tH(a,l,s,e.opacity)}function tH(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function tV(e){return(e=(e||0)%360)<0?e+360:e}function tF(e){return Math.max(0,Math.min(1,e||0))}function tX(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function tY(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}th(tm,tA,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:tk,formatHex:tk,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return tL(this).formatHsl()},formatRgb:tC,toString:tC}),th(tI,tR,tp(tm,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new tI(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new tI(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new tI(tD(this.r),tD(this.g),tD(this.b),tj(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:tP,formatHex:tP,formatHex8:function(){return`#${tT(this.r)}${tT(this.g)}${tT(this.b)}${tT((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:tO,toString:tO})),th(tH,function(e,t,n,r){return 1==arguments.length?tL(e):new tH(e,t,n,null==r?1:r)},tp(tm,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new tH(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new tH(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new tI(tX(e>=240?e-240:e+120,o,r),tX(e,o,r),tX(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new tH(tV(this.h),tF(this.s),tF(this.l),tj(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(){let e=tj(this.opacity);return`${1===e?"hsl(":"hsla("}${tV(this.h)}, ${100*tF(this.s)}%, ${100*tF(this.l)}%${1===e?")":`, ${e})`}`}}));let tq=e=>()=>e;function tU(e,t){var n=t-e;return n?function(t){return e+t*n}:tq(isNaN(e)?t:e)}let tK=function e(t){var n,r=1==(n=+t)?tU:function(e,t){var r,o,i;return t-e?(r=e,o=t,r=Math.pow(r,i=n),o=Math.pow(o,i)-r,i=1/i,function(e){return Math.pow(r+e*o,i)}):tq(isNaN(e)?t:e)};function o(e,t){var n=r((e=tR(e)).r,(t=tR(t)).r),o=r(e.g,t.g),i=r(e.b,t.b),a=tU(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=o(t),e.b=i(t),e.opacity=a(t),e+""}}return o.gamma=e,o}(1);function tZ(e){return function(t){var n,r,o=t.length,i=Array(o),a=Array(o),l=Array(o);for(n=0;n<o;++n)r=tR(t[n]),i[n]=r.r||0,a[n]=r.g||0,l[n]=r.b||0;return i=e(i),a=e(a),l=e(l),r.opacity=1,function(e){return r.r=i(e),r.g=a(e),r.b=l(e),r+""}}}tZ(function(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,l=r<t-1?e[r+2]:2*i-o;return tY((n-r/t)*t,a,o,i,l)}}),tZ(function(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),o=e[(r+t-1)%t],i=e[r%t],a=e[(r+1)%t],l=e[(r+2)%t];return tY((n-r/t)*t,o,i,a,l)}});var tW=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tG=RegExp(tW.source,"g");function tQ(e,t){var n;return("number"==typeof t?ti:t instanceof tA?tK:(n=tA(t))?(t=n,tK):function(e,t){var n,r,o,i,a,l=tW.lastIndex=tG.lastIndex=0,s=-1,u=[],c=[];for(e+="",t+="";(o=tW.exec(e))&&(i=tG.exec(t));)(a=i.index)>l&&(a=t.slice(l,a),u[s]?u[s]+=a:u[++s]=a),(o=o[0])===(i=i[0])?u[s]?u[s]+=i:u[++s]=i:(u[++s]=null,c.push({i:s,x:ti(o,i)})),l=tG.lastIndex;return l<t.length&&(a=t.slice(l),u[s]?u[s]+=a:u[++s]=a),u.length<2?c[0]?(n=c[0].x,function(e){return n(e)+""}):(r=t,function(){return r}):(t=c.length,function(e){for(var n,r=0;r<t;++r)u[(n=c[r]).i]=n.x(e);return u.join("")})})(e,t)}var tJ=eI.prototype.constructor;function t0(e){return function(){this.style.removeProperty(e)}}var t1=0;function t2(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}var t3=eI.prototype;t2.prototype=(function(e){return eI().transition(e)}).prototype={constructor:t2,select:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=K(e));for(var r=this._groups,o=r.length,i=Array(o),a=0;a<o;++a)for(var l,s,u=r[a],c=u.length,d=i[a]=Array(c),f=0;f<c;++f)(l=u[f])&&(s=e.call(l,l.__data__,f,u))&&("__data__"in l&&(s.__data__=l.__data__),d[f]=s,te(d[f],t,n,f,d,tr(l,n)));return new t2(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!=typeof e&&(e=W(e));for(var r=this._groups,o=r.length,i=[],a=[],l=0;l<o;++l)for(var s,u=r[l],c=u.length,d=0;d<c;++d)if(s=u[d]){for(var f,h=e.call(s,s.__data__,d,u),p=tr(s,n),m=0,g=h.length;m<g;++m)(f=h[m])&&te(f,t,n,m,h,p);i.push(h),a.push(s)}return new t2(i,a,t,n)},selectChild:t3.selectChild,selectChildren:t3.selectChildren,filter:function(e){"function"!=typeof e&&(e=G(e));for(var t=this._groups,n=t.length,r=Array(n),o=0;o<n;++o)for(var i,a=t[o],l=a.length,s=r[o]=[],u=0;u<l;++u)(i=a[u])&&e.call(i,i.__data__,u,a)&&s.push(i);return new t2(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=Array(r),l=0;l<i;++l)for(var s,u=t[l],c=n[l],d=u.length,f=a[l]=Array(d),h=0;h<d;++h)(s=u[h]||c[h])&&(f[h]=s);for(;l<r;++l)a[l]=t[l];return new t2(a,this._parents,this._name,this._id)},selection:function(){return new tJ(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=++t1,r=this._groups,o=r.length,i=0;i<o;++i)for(var a,l=r[i],s=l.length,u=0;u<s;++u)if(a=l[u]){var c=tr(a,t);te(a,e,n,u,l,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new t2(r,this._parents,e,n)},call:t3.call,nodes:t3.nodes,node:t3.node,size:t3.size,empty:t3.empty,each:t3.each,on:function(e,t){var n,r,o,i,a,l,s=this._id;return arguments.length<2?tr(this.node(),s).on.on(e):this.each((n=s,r=e,o=t,l=(r+"").trim().split(/^|\s+/).every(function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e})?tt:tn,function(){var e=l(this,n),t=e.on;t!==i&&(a=(i=t).copy()).on(r,o),e.on=a}))},attr:function(e,t){var n=ed(e),r="transform"===n?td:tQ;return this.attrTween(e,"function"==typeof t?(n.local?function(e,t,n){var r,o,i;return function(){var a,l,s=n(this);return null==s?void this.removeAttributeNS(e.space,e.local):(a=this.getAttributeNS(e.space,e.local))===(l=s+"")?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}:function(e,t,n){var r,o,i;return function(){var a,l,s=n(this);return null==s?void this.removeAttribute(e):(a=this.getAttribute(e))===(l=s+"")?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}})(n,r,tf(this,"attr."+e,t)):null==t?(n.local?function(e){return function(){this.removeAttributeNS(e.space,e.local)}}:function(e){return function(){this.removeAttribute(e)}})(n):(n.local?function(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}:function(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}})(n,r,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 Error();var r=ed(e);return this.tween(n,(r.local?function(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(t){this.setAttributeNS(e.space,e.local,o.call(this,t))}),n}return o._value=t,o}:function(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(t){this.setAttribute(e,o.call(this,t))}),n}return o._value=t,o})(r,t))},style:function(e,t,n){var r,o,i,a,l,s,u,c,d,f,h,p,m,g,y,v,x,b,w,S,_,E="transform"==(e+="")?tc:tQ;return null==t?this.styleTween(e,(r=e,function(){var e=eh(this,r),t=(this.style.removeProperty(r),eh(this,r));return e===t?null:e===o&&t===i?a:a=E(o=e,i=t)})).on("end.style."+e,t0(e)):"function"==typeof t?this.styleTween(e,(l=e,s=tf(this,"style."+e,t),function(){var e=eh(this,l),t=s(this),n=t+"";return null==t&&(this.style.removeProperty(l),n=t=eh(this,l)),e===n?null:e===u&&n===c?d:(c=n,d=E(u=e,t))})).each((f=this._id,x="end."+(v="style."+(h=e)),function(){var e=tn(this,f),t=e.on,n=null==e.value[v]?y||(y=t0(h)):void 0;(t!==p||g!==n)&&(m=(p=t).copy()).on(x,g=n),e.on=m})):this.styleTween(e,(b=e,_=t+"",function(){var e=eh(this,b);return e===_?null:e===w?S:S=E(w=e,t)}),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw Error();return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(t){this.style.setProperty(e,i.call(this,t),n)}),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){var t,n;return this.tween("text","function"==typeof e?(t=tf(this,"text",e),function(){var e=t(this);this.textContent=null==e?"":e}):(n=null==e?"":e+"",function(){this.textContent=n}))},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 Error();return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){this.textContent=r.call(this,e)}),t}return r._value=e,r}(e))},remove:function(){var e;return this.on("end.remove",(e=this._id,function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=tr(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?function(e,t){var n,r;return function(){var o=tn(this,e),i=o.tween;if(i!==n){r=n=i;for(var a=0,l=r.length;a<l;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}}o.tween=r}}:function(e,t,n){var r,o;if("function"!=typeof n)throw Error();return function(){var i=tn(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var l={name:t,value:n},s=0,u=o.length;s<u;++s)if(o[s].name===t){o[s]=l;break}s===u&&o.push(l)}i.tween=o}})(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?function(e,t){return function(){tt(this,e).delay=+t.apply(this,arguments)}}:function(e,t){return t*=1,function(){tt(this,e).delay=t}})(t,e)):tr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"==typeof e?function(e,t){return function(){tn(this,e).duration=+t.apply(this,arguments)}}:function(e,t){return t*=1,function(){tn(this,e).duration=t}})(t,e)):tr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!=typeof t)throw Error();return function(){tn(this,e).ease=t}}(t,e)):tr(this.node(),t).ease},easeVarying:function(e){var t;if("function"!=typeof e)throw Error();return this.each((t=this._id,function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw Error();tn(this,t).ease=n}))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,a){var l={value:a},s={value:function(){0==--o&&i()}};n.each(function(){var n=tn(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(l),t._.interrupt.push(l),t._.end.push(s)),n.on=t}),0===o&&i()})},[Symbol.iterator]:t3[Symbol.iterator]};var t5={time:null,delay:0,duration:250,ease:function(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}};eI.prototype.interrupt=function(e){return this.each(function(){to(this,e)})},eI.prototype.transition=function(e){var t,n;e instanceof t2?(t=e._id,e=e._name):(t=++t1,(n=t5).time=e0(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,l=r[i],s=l.length,u=0;u<s;++u)(a=l[u])&&te(a,e,t,u,l,n||function(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}(a,t));return new t2(r,this._parents,e,t)};let t4=e=>()=>e;function t6(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function t8(e,t,n){this.k=e,this.x=t,this.y=n}t8.prototype={constructor:t8,scale:function(e){return 1===e?this:new t8(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new t8(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 t9=new t8(1,0,0);function t7(e){e.stopImmediatePropagation()}function ne(e){e.preventDefault(),e.stopImmediatePropagation()}function nt(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function nn(){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 nr(){return this.__zoom||t9}function no(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ni(){return navigator.maxTouchPoints||"ontouchstart"in this}function na(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}t8.prototype;let nl=e=>()=>e;function ns(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:l,dx:s,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:s,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}function nu(e){return!e.ctrlKey&&!e.button}function nc(){return this.parentNode}function nd(e,t){return null==t?{x:e.x,y:e.y}:t}function nf(){return navigator.maxTouchPoints||"ontouchstart"in this}ns.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},e.i(76124);let nh=(0,x.createContext)(null),np=nh.Provider,nm="[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001";function ng(e,t){let n=(0,x.useContext)(nh);if(null===n)throw Error(nm);return L(n,e,t)}let ny=()=>{let e=(0,x.useContext)(nh);if(null===e)throw Error(nm);return(0,x.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},nv=e=>e.userSelectionActive?"none":"all";function nx({position:e,children:t,className:n,style:r,...o}){let i=ng(nv),a=`${e}`.split("-");return x.default.createElement("div",{className:I(["react-flow__panel",n,...a]),style:{...r,pointerEvents:i},...o},t)}function nb({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:x.default.createElement(nx,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},x.default.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}var nw=(0,x.memo)(({x:e,y:t,label:n,labelStyle:r={},labelShowBg:o=!0,labelBgStyle:i={},labelBgPadding:a=[2,4],labelBgBorderRadius:l=2,children:s,className:u,...c})=>{let d=(0,x.useRef)(null),[f,h]=(0,x.useState)({x:0,y:0,width:0,height:0}),p=I(["react-flow__edge-textwrapper",u]);return((0,x.useEffect)(()=>{if(d.current){let e=d.current.getBBox();h({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),void 0!==n&&n)?x.default.createElement("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:p,visibility:f.width?"visible":"hidden",...c},o&&x.default.createElement("rect",{width:f.width+2*a[0],x:-a[0],y:-a[1],height:f.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:l,ry:l}),x.default.createElement("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:d,style:r},n),s):null});let nS=e=>({width:e.offsetWidth,height:e.offsetHeight}),n_=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),nE=(e={x:0,y:0},t)=>({x:n_(e.x,t[0][0],t[1][0]),y:n_(e.y,t[0][1],t[1][1])}),nM=(e,t,n)=>e<t?n_(Math.abs(e-t),1,50)/50:e>n?-n_(Math.abs(e-n),1,50)/50:0,nN=(e,t)=>[20*nM(e.x,35,t.width-35),20*nM(e.y,35,t.height-35)],nk=e=>e.getRootNode?.()||window?.document,nC=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),nA=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),n$=(e,t)=>Math.ceil(Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))),nz=e=>!isNaN(e)&&isFinite(e),nR=Symbol.for("internals"),nI=["Enter"," ","Escape"],nP=(e,t)=>{};function nO(e){let t="nativeEvent"in e?e.nativeEvent:e,n=t.composedPath?.()?.[0]||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n?.nodeName)||n?.hasAttribute("contenteditable")||!!n?.closest(".nokey")}let nj=(e,t)=>{let n="clientX"in e,r=n?e.clientX:e.touches?.[0].clientX,o=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:o-(t?.top??0)}},nD=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,nT=({id:e,path:t,labelX:n,labelY:r,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:u,style:c,markerEnd:d,markerStart:f,interactionWidth:h=20})=>x.default.createElement(x.default.Fragment,null,x.default.createElement("path",{id:e,style:c,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:d,markerStart:f}),h&&x.default.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:h,className:"react-flow__edge-interaction"}),o&&nz(n)&&nz(r)?x.default.createElement(nw,{x:n,y:r,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:u}):null);function nB(e,t,n){return void 0===n?n:r=>{let o=t().edges.find(t=>t.id===e);o&&n(r,{...o})}}function nL({sourceX:e,sourceY:t,targetX:n,targetY:r}){let o=Math.abs(n-e)/2,i=Math.abs(r-t)/2;return[n<e?n+o:n-o,r<t?r+i:r-i,o,i]}function nH({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:a,targetControlY:l}){let s=.125*e+.375*o+.375*a+.125*n,u=.125*t+.375*i+.375*l+.125*r,c=Math.abs(s-e),d=Math.abs(u-t);return[s,u,c,d]}function nV({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===p.Left||e===p.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function nF({sourceX:e,sourceY:t,sourcePosition:n=p.Bottom,targetX:r,targetY:o,targetPosition:i=p.Top}){let[a,l]=nV({pos:n,x1:e,y1:t,x2:r,y2:o}),[s,u]=nV({pos:i,x1:r,y1:o,x2:e,y2:t}),[c,d,f,h]=nH({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:l,targetControlX:s,targetControlY:u});return[`M${e},${t} C${a},${l} ${s},${u} ${r},${o}`,c,d,f,h]}nT.displayName="BaseEdge",(t=u||(u={})).Strict="strict",t.Loose="loose",(n=c||(c={})).Free="free",n.Vertical="vertical",n.Horizontal="horizontal",(r=d||(d={})).Partial="partial",r.Full="full",(o=f||(f={})).Bezier="default",o.Straight="straight",o.Step="step",o.SmoothStep="smoothstep",o.SimpleBezier="simplebezier",(i=h||(h={})).Arrow="arrow",i.ArrowClosed="arrowclosed",(a=p||(p={})).Left="left",a.Top="top",a.Right="right",a.Bottom="bottom";let nX=(0,x.memo)(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=p.Bottom,targetPosition:i=p.Top,label:a,labelStyle:l,labelShowBg:s,labelBgStyle:u,labelBgPadding:c,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:m,interactionWidth:g})=>{let[y,v,b]=nF({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i});return x.default.createElement(nT,{path:y,labelX:v,labelY:b,label:a,labelStyle:l,labelShowBg:s,labelBgStyle:u,labelBgPadding:c,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:m,interactionWidth:g})});nX.displayName="SimpleBezierEdge";let nY={[p.Left]:{x:-1,y:0},[p.Right]:{x:1,y:0},[p.Top]:{x:0,y:-1},[p.Bottom]:{x:0,y:1}},nq=({source:e,sourcePosition:t=p.Bottom,target:n})=>t===p.Left||t===p.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},nU=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function nK({sourceX:e,sourceY:t,sourcePosition:n=p.Bottom,targetX:r,targetY:o,targetPosition:i=p.Top,borderRadius:a=5,centerX:l,centerY:s,offset:u=20}){let[c,d,f,h,m]=function({source:e,sourcePosition:t=p.Bottom,target:n,targetPosition:r=p.Top,center:o,offset:i}){let a,l,s=nY[t],u=nY[r],c={x:e.x+s.x*i,y:e.y+s.y*i},d={x:n.x+u.x*i,y:n.y+u.y*i},f=nq({source:c,sourcePosition:t,target:d}),h=0!==f.x?"x":"y",m=f[h],g=[],y={x:0,y:0},v={x:0,y:0},[x,b,w,S]=nL({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[h]*u[h]==-1){a=o.x??x,l=o.y??b;let e=[{x:a,y:c.y},{x:a,y:d.y}],t=[{x:c.x,y:l},{x:d.x,y:l}];g=s[h]===m?"x"===h?e:t:"x"===h?t:e}else{let o=[{x:c.x,y:d.y}],f=[{x:d.x,y:c.y}];if(g="x"===h?s.x===m?f:o:s.y===m?o:f,t===r){let t=Math.abs(e[h]-n[h]);if(t<=i){let r=Math.min(i-1,i-t);s[h]===m?y[h]=(c[h]>e[h]?-1:1)*r:v[h]=(d[h]>n[h]?-1:1)*r}}if(t!==r){let e="x"===h?"y":"x",t=s[h]===u[e],n=c[e]>d[e],r=c[e]<d[e];(1===s[h]&&(!t&&n||t&&r)||1!==s[h]&&(!t&&r||t&&n))&&(g="x"===h?o:f)}let p={x:c.x+y.x,y:c.y+y.y},x={x:d.x+v.x,y:d.y+v.y};Math.max(Math.abs(p.x-g[0].x),Math.abs(x.x-g[0].x))>=Math.max(Math.abs(p.y-g[0].y),Math.abs(x.y-g[0].y))?(a=(p.x+x.x)/2,l=g[0].y):(a=g[0].x,l=(p.y+x.y)/2)}return[[e,{x:c.x+y.x,y:c.y+y.y},...g,{x:d.x+v.x,y:d.y+v.y},n],a,l,w,S]}({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:l,y:s},offset:u});return[c.reduce((e,t,n)=>e+(n>0&&n<c.length-1?function(e,t,n,r){let o=Math.min(nU(e,t)/2,nU(t,n)/2,r),{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){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${i+o*t},${a}Q ${i},${a} ${i},${a+o*r}`}let l=e.x<n.x?1:-1,s=e.y<n.y?-1:1;return`L ${i},${a+o*s}Q ${i},${a} ${i+o*l},${a}`}(c[n-1],t,c[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`),""),d,f,h,m]}let nZ=(0,x.memo)(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:u,style:c,sourcePosition:d=p.Bottom,targetPosition:f=p.Top,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{let[v,b,w]=nK({sourceX:e,sourceY:t,sourcePosition:d,targetX:n,targetY:r,targetPosition:f,borderRadius:g?.borderRadius,offset:g?.offset});return x.default.createElement(nT,{path:v,labelX:b,labelY:w,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:u,style:c,markerEnd:h,markerStart:m,interactionWidth:y})});nZ.displayName="SmoothStepEdge";let nW=(0,x.memo)(e=>x.default.createElement(nZ,{...e,pathOptions:(0,x.useMemo)(()=>({borderRadius:0,offset:e.pathOptions?.offset}),[e.pathOptions?.offset])}));nW.displayName="StepEdge";let nG=(0,x.memo)(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:u,style:c,markerEnd:d,markerStart:f,interactionWidth:h})=>{let[p,m,g]=function({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[o,i,a,l]=nL({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,a,l]}({sourceX:e,sourceY:t,targetX:n,targetY:r});return x.default.createElement(nT,{path:p,labelX:m,labelY:g,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:u,style:c,markerEnd:d,markerStart:f,interactionWidth:h})});function nQ(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function nJ({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case p.Left:return[t-nQ(t-r,i),n];case p.Right:return[t+nQ(r-t,i),n];case p.Top:return[t,n-nQ(n-o,i)];case p.Bottom:return[t,n+nQ(o-n,i)]}}function n0({sourceX:e,sourceY:t,sourcePosition:n=p.Bottom,targetX:r,targetY:o,targetPosition:i=p.Top,curvature:a=.25}){let[l,s]=nJ({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[u,c]=nJ({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[d,f,h,m]=nH({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:l,sourceControlY:s,targetControlX:u,targetControlY:c});return[`M${e},${t} C${l},${s} ${u},${c} ${r},${o}`,d,f,h,m]}nG.displayName="StraightEdge";let n1=(0,x.memo)(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=p.Bottom,targetPosition:i=p.Top,label:a,labelStyle:l,labelShowBg:s,labelBgStyle:u,labelBgPadding:c,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:m,pathOptions:g,interactionWidth:y})=>{let[v,b,w]=n0({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i,curvature:g?.curvature});return x.default.createElement(nT,{path:v,labelX:b,labelY:w,label:a,labelStyle:l,labelShowBg:s,labelBgStyle:u,labelBgPadding:c,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:m,interactionWidth:y})});n1.displayName="BezierEdge";let n2=(0,x.createContext)(null),n3=n2.Provider;n2.Consumer;let n5=(e,t)=>{if(void 0===e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`},n4=({x:e,y:t},[n,r,o],i,[a,l])=>{let s={x:(e-n)/o,y:(t-r)/o};return i?{x:a*Math.round(s.x/a),y:l*Math.round(s.y/l)}:s},n6=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),n8=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};let n=(e.width??0)*t[0],r=(e.height??0)*t[1],o={x:e.position.x-n,y:e.position.y-r};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-r}:o}},n9=(e,t=[0,0])=>0===e.length?{x:0,y:0,width:0,height:0}:(({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}))(e.reduce((e,n)=>{let r,{x:o,y:i}=n8(n,t).positionAbsolute;return r=nC({x:o,y:i,width:n.width||0,height:n.height||0}),{x:Math.min(e.x,r.x),y:Math.min(e.y,r.y),x2:Math.max(e.x2,r.x2),y2:Math.max(e.y2,r.y2)}},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),n7=(e,t,[n,r,o]=[0,0,1],i=!1,a=!1,l=[0,0])=>{let s={x:(t.x-n)/o,y:(t.y-r)/o,width:t.width/o,height:t.height/o},u=[];return e.forEach(e=>{let{width:t,height:n,selectable:r=!0,hidden:o=!1}=e;if(a&&!r||o)return!1;let{positionAbsolute:c}=n8(e,l),d=n$(s,{x:c.x,y:c.y,width:t||0,height:n||0}),f=void 0===t||void 0===n||null===t||null===n,h=(t||0)*(n||0);(f||i&&d>0||d>=h||e.dragging)&&u.push(e)}),u},re=(e,t)=>{let n=e.map(e=>e.id);return t.filter(e=>n.includes(e.source)||n.includes(e.target))},rt=(e,t,n,r,o,i=.1)=>{let a=n_(Math.min(t/(e.width*(1+i)),n/(e.height*(1+i))),r,o);return{x:t/2-(e.x+e.width/2)*a,y:n/2-(e.y+e.height/2)*a,zoom:a}},rn=(e,t=0)=>e.transition().duration(t);function rr(e,t,n,r){return(t[n]||[]).reduce((t,o)=>(`${e.id}-${o.id}-${n}`!==r&&t.push({id:o.id||null,type:n,nodeId:e.id,x:(e.positionAbsolute?.x??0)+o.x+o.width/2,y:(e.positionAbsolute?.y??0)+o.y+o.height/2}),t),[])}let ro={source:null,target:null,sourceHandle:null,targetHandle:null},ri=()=>({handleDomNode:null,isValid:!1,connection:ro,endHandle:null});function ra(e,t,n,r,o,i,a){let l="target"===o,s=a.querySelector(`.react-flow__handle[data-id="${e?.nodeId}-${e?.id}-${e?.type}"]`),c={...ri(),handleDomNode:s};if(s){let e=rl(void 0,s),o=s.getAttribute("data-nodeid"),a=s.getAttribute("data-handleid"),d=s.classList.contains("connectable"),f=s.classList.contains("connectableend"),h={source:l?o:n,sourceHandle:l?a:r,target:l?n:o,targetHandle:l?r:a};c.connection=h,d&&f&&(t===u.Strict?l&&"source"===e||!l&&"target"===e:o!==n||a!==r)&&(c.endHandle={nodeId:o,handleId:a,type:e},c.isValid=i(h))}return c}function rl(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}function rs(e){e?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function ru({event:e,handleId:t,nodeId:n,onConnect:r,isTarget:o,getState:i,setState:a,isValidConnection:l,edgeUpdaterType:s,onReconnectEnd:u}){let c,d,f=nk(e.target),{connectionMode:h,domNode:p,autoPanOnConnect:m,connectionRadius:g,onConnectStart:y,panBy:v,getNodes:x,cancelConnection:b}=i(),w=0,{x:S,y:_}=nj(e),E=rl(s,f?.elementFromPoint(S,_)),M=p?.getBoundingClientRect();if(!M||!E)return;let N=nj(e,M),k=!1,C=null,A=!1,$=null,z=function({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce((e,o)=>{if(o[nR]){let{handleBounds:i}=o[nR],a=[],l=[];i&&(a=rr(o,i,"source",`${t}-${n}-${r}`),l=rr(o,i,"target",`${t}-${n}-${r}`)),e.push(...a,...l)}return e},[])}({nodes:x(),nodeId:n,handleId:t,handleType:E}),R=()=>{if(!m)return;let[e,t]=nN(N,M);v({x:e,y:t}),w=requestAnimationFrame(R)};function I(e){var r,s;let u,{transform:p}=i();N=nj(e,M);let{handle:m,validHandleResult:y}=function(e,t,n,r,o,i){let{x:a,y:l}=nj(e),s=t.elementsFromPoint(a,l).find(e=>e.classList.contains("react-flow__handle"));if(s){let e=s.getAttribute("data-nodeid");if(e){let t=rl(void 0,s),r=s.getAttribute("data-handleid"),a=i({nodeId:e,id:r,type:t});if(a){let i=o.find(n=>n.nodeId===e&&n.type===t&&n.id===r);return{handle:{id:r,type:t,nodeId:e,x:i?.x||n.x,y:i?.y||n.y},validHandleResult:a}}}}let u=[],c=1/0;if(o.forEach(e=>{let t=Math.sqrt((e.x-n.x)**2+(e.y-n.y)**2);if(t<=r){let n=i(e);t<=c&&(t<c?u=[{handle:e,validHandleResult:n}]:t===c&&u.push({handle:e,validHandleResult:n}),c=t)}}),!u.length)return{handle:null,validHandleResult:ri()};if(1===u.length)return u[0];let d=u.some(({validHandleResult:e})=>e.isValid),f=u.some(({handle:e})=>"target"===e.type);return u.find(({handle:e,validHandleResult:t})=>f?"target"===e.type:!d||t.isValid)||u[0]}(e,f,n4(N,p,!1,[1,1]),g,z,e=>ra(e,h,n,t,o?"target":"source",l,f));if(c=m,k||(R(),k=!0),$=y.handleDomNode,C=y.connection,A=y.isValid,a({connectionPosition:c&&A?n6({x:c.x,y:c.y},p):N,connectionStatus:(r=!!c,u=null,(s=A)?u="valid":r&&!s&&(u="invalid"),u),connectionEndHandle:y.endHandle}),!c&&!A&&!$)return rs(d);C.source!==C.target&&$&&(rs(d),d=$,$.classList.add("connecting","react-flow__handle-connecting"),$.classList.toggle("valid",A),$.classList.toggle("react-flow__handle-valid",A))}function P(e){(c||$)&&C&&A&&r?.(C),i().onConnectEnd?.(e),s&&u?.(e),rs(d),b(),cancelAnimationFrame(w),k=!1,A=!1,C=null,$=null,f.removeEventListener("mousemove",I),f.removeEventListener("mouseup",P),f.removeEventListener("touchmove",I),f.removeEventListener("touchend",P)}a({connectionPosition:N,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:E,connectionStartHandle:{nodeId:n,handleId:t,type:E},connectionEndHandle:null}),y?.(e,{nodeId:n,handleId:t,handleType:E}),f.addEventListener("mousemove",I),f.addEventListener("mouseup",P),f.addEventListener("touchmove",I),f.addEventListener("touchend",P)}let rc=()=>!0,rd=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),rf=(0,x.forwardRef)(({type:e="source",position:t=p.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:a,onConnect:l,children:s,className:u,onMouseDown:c,onTouchStart:d,...f},h)=>{let m=a||null,g="target"===e,y=ny(),v=(0,x.useContext)(n2),{connectOnClick:b,noPanClassName:w}=ng(rd,V),{connecting:S,clickConnecting:_}=ng(t=>{let{connectionStartHandle:n,connectionEndHandle:r,connectionClickStartHandle:o}=t;return{connecting:n?.nodeId===v&&n?.handleId===m&&n?.type===e||r?.nodeId===v&&r?.handleId===m&&r?.type===e,clickConnecting:o?.nodeId===v&&o?.handleId===m&&o?.type===e}},V);v||y.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let E=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=y.getState(),o={...t,...e};if(r){let{edges:e,setEdges:t}=y.getState();t(((e,t)=>{let n,r;return e.source&&e.target?(r=n="id"in e&&"source"in e&&"target"in e?{...e}:{...e,id:(({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`)(e)},t.some(e=>e.source===r.source&&e.target===r.target&&(e.sourceHandle===r.sourceHandle||!e.sourceHandle&&!r.sourceHandle)&&(e.targetHandle===r.targetHandle||!e.targetHandle&&!r.targetHandle)))?t:t.concat(n):(nP("006","Can't create edge. An edge needs a source and a target."),t)})(o,e))}n?.(o),l?.(o)},M=e=>{if(!v)return;let t="clientX"in e;o&&(t&&0===e.button||!t)&&ru({event:e,handleId:m,nodeId:v,onConnect:E,isTarget:g,getState:y.getState,setState:y.setState,isValidConnection:n||y.getState().isValidConnection||rc}),t?c?.(e):d?.(e)};return x.default.createElement("div",{"data-handleid":m,"data-nodeid":v,"data-handlepos":t,"data-id":`${v}-${m}-${e}`,className:I(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",w,u,{source:!g,target:g,connectable:r,connectablestart:o,connectableend:i,connecting:_,connectionindicator:r&&(o&&!S||i&&S)}]),onMouseDown:M,onTouchStart:M,onClick:b?t=>{let{onClickConnectStart:r,onClickConnectEnd:i,connectionClickStartHandle:a,connectionMode:l,isValidConnection:s}=y.getState();if(!v||!a&&!o)return;if(!a){r?.(t,{nodeId:v,handleId:m,handleType:e}),y.setState({connectionClickStartHandle:{nodeId:v,type:e,handleId:m}});return}let u=nk(t.target),c=n||s||rc,{connection:d,isValid:f}=ra({nodeId:v,id:m,type:e},l,a.nodeId,a.handleId||null,a.type,c,u);f&&E(d),i?.(t),y.setState({connectionClickStartHandle:null})}:void 0,ref:h,...f},s)});rf.displayName="Handle";var rh=(0,x.memo)(rf);let rp=({data:e,isConnectable:t,targetPosition:n=p.Top,sourcePosition:r=p.Bottom})=>x.default.createElement(x.default.Fragment,null,x.default.createElement(rh,{type:"target",position:n,isConnectable:t}),e?.label,x.default.createElement(rh,{type:"source",position:r,isConnectable:t}));rp.displayName="DefaultNode";var rm=(0,x.memo)(rp);let rg=({data:e,isConnectable:t,sourcePosition:n=p.Bottom})=>x.default.createElement(x.default.Fragment,null,e?.label,x.default.createElement(rh,{type:"source",position:n,isConnectable:t}));rg.displayName="InputNode";var ry=(0,x.memo)(rg);let rv=({data:e,isConnectable:t,targetPosition:n=p.Top})=>x.default.createElement(x.default.Fragment,null,x.default.createElement(rh,{type:"target",position:n,isConnectable:t}),e?.label);rv.displayName="OutputNode";var rx=(0,x.memo)(rv);let rb=()=>null;rb.displayName="GroupNode";let rw=e=>({selectedNodes:e.getNodes().filter(e=>e.selected),selectedEdges:e.edges.filter(e=>e.selected).map(e=>({...e}))}),rS=e=>e.id;function r_(e,t){return V(e.selectedNodes.map(rS),t.selectedNodes.map(rS))&&V(e.selectedEdges.map(rS),t.selectedEdges.map(rS))}let rE=(0,x.memo)(({onSelectionChange:e})=>{let t=ny(),{selectedNodes:n,selectedEdges:r}=ng(rw,r_);return(0,x.useEffect)(()=>{let o={nodes:n,edges:r};e?.(o),t.getState().onSelectionChange.forEach(e=>e(o))},[n,r,e]),null});rE.displayName="SelectionListener";let rM=e=>!!e.onSelectionChange;function rN({onSelectionChange:e}){let t=ng(rM);return e||t?x.default.createElement(rE,{onSelectionChange:e}):null}let rk=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function rC(e,t){(0,x.useEffect)(()=>{void 0!==e&&t(e)},[e])}function rA(e,t,n){(0,x.useEffect)(()=>{void 0!==t&&n({[e]:t})},[t])}let r$=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:a,onClickConnectStart:l,onClickConnectEnd:s,nodesDraggable:u,nodesConnectable:c,nodesFocusable:d,edgesFocusable:f,edgesUpdatable:h,elevateNodesOnSelect:p,minZoom:m,maxZoom:g,nodeExtent:y,onNodesChange:v,onEdgesChange:b,elementsSelectable:w,connectionMode:S,snapGrid:_,snapToGrid:E,translateExtent:M,connectOnClick:N,defaultEdgeOptions:k,fitView:C,fitViewOptions:A,onNodesDelete:$,onEdgesDelete:z,onNodeDrag:R,onNodeDragStart:I,onNodeDragStop:P,onSelectionDrag:O,onSelectionDragStart:j,onSelectionDragStop:D,noPanClassName:T,nodeOrigin:B,rfId:L,autoPanOnConnect:H,autoPanOnNodeDrag:F,onError:X,connectionRadius:Y,isValidConnection:q,nodeDragThreshold:U})=>{let{setNodes:K,setEdges:Z,setDefaultNodesAndEdges:W,setMinZoom:G,setMaxZoom:Q,setTranslateExtent:J,setNodeExtent:ee,reset:et}=ng(rk,V),en=ny();return(0,x.useEffect)(()=>(W(n,r?.map(e=>({...e,...k}))),()=>{et()}),[]),rA("defaultEdgeOptions",k,en.setState),rA("connectionMode",S,en.setState),rA("onConnect",o,en.setState),rA("onConnectStart",i,en.setState),rA("onConnectEnd",a,en.setState),rA("onClickConnectStart",l,en.setState),rA("onClickConnectEnd",s,en.setState),rA("nodesDraggable",u,en.setState),rA("nodesConnectable",c,en.setState),rA("nodesFocusable",d,en.setState),rA("edgesFocusable",f,en.setState),rA("edgesUpdatable",h,en.setState),rA("elementsSelectable",w,en.setState),rA("elevateNodesOnSelect",p,en.setState),rA("snapToGrid",E,en.setState),rA("snapGrid",_,en.setState),rA("onNodesChange",v,en.setState),rA("onEdgesChange",b,en.setState),rA("connectOnClick",N,en.setState),rA("fitViewOnInit",C,en.setState),rA("fitViewOnInitOptions",A,en.setState),rA("onNodesDelete",$,en.setState),rA("onEdgesDelete",z,en.setState),rA("onNodeDrag",R,en.setState),rA("onNodeDragStart",I,en.setState),rA("onNodeDragStop",P,en.setState),rA("onSelectionDrag",O,en.setState),rA("onSelectionDragStart",j,en.setState),rA("onSelectionDragStop",D,en.setState),rA("noPanClassName",T,en.setState),rA("nodeOrigin",B,en.setState),rA("rfId",L,en.setState),rA("autoPanOnConnect",H,en.setState),rA("autoPanOnNodeDrag",F,en.setState),rA("onError",X,en.setState),rA("connectionRadius",Y,en.setState),rA("isValidConnection",q,en.setState),rA("nodeDragThreshold",U,en.setState),rC(e,K),rC(t,Z),rC(m,G),rC(g,Q),rC(M,J),rC(y,ee),null},rz={display:"none"},rR={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},rI="react-flow__node-desc",rP="react-flow__edge-desc",rO=e=>e.ariaLiveMessage;function rj({rfId:e}){let t=ng(rO);return x.default.createElement("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:rR},t)}function rD({rfId:e,disableKeyboardA11y:t}){return x.default.createElement(x.default.Fragment,null,x.default.createElement("div",{id:`${rI}-${e}`,style:rz},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),x.default.createElement("div",{id:`${rP}-${e}`,style:rz},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&x.default.createElement(rj,{rfId:e}))}var rT=(e=null,t={actInsideInputWithModifier:!0})=>{let[n,r]=(0,x.useState)(!1),o=(0,x.useRef)(!1),i=(0,x.useRef)(new Set([])),[a,l]=(0,x.useMemo)(()=>{if(null!==e){let t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.split("+")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return(0,x.useEffect)(()=>{let n="undefined"!=typeof document?document:null,s=t?.target||n;if(null!==e){let e=e=>{if(o.current=e.ctrlKey||e.metaKey||e.shiftKey,(!o.current||o.current&&!t.actInsideInputWithModifier)&&nO(e))return!1;let n=rL(e.code,l);i.current.add(e[n]),rB(a,i.current,!1)&&(e.preventDefault(),r(!0))},n=e=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&nO(e))return!1;let n=rL(e.code,l);rB(a,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(e[n]),"Meta"===e.key&&i.current.clear(),o.current=!1},u=()=>{i.current.clear(),r(!1)};return s?.addEventListener("keydown",e),s?.addEventListener("keyup",n),window.addEventListener("blur",u),()=>{s?.removeEventListener("keydown",e),s?.removeEventListener("keyup",n),window.removeEventListener("blur",u)}}},[e,r]),n};function rB(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function rL(e,t){return t.includes(e)?"code":"key"}function rH(e,t,n){e.forEach(r=>{let o=r.parentNode||r.parentId;if(o&&!e.has(o))throw Error(`Parent node ${o} not found`);if(o||n?.[r.id]){let{x:o,y:i,z:a}=function e(t,n,r,o){let i=t.parentNode||t.parentId;if(!i)return r;let a=n.get(i),l=n8(a,o);return e(a,n,{x:(r.x??0)+l.x,y:(r.y??0)+l.y,z:(a[nR]?.z??0)>(r.z??0)?a[nR]?.z??0:r.z??0},o)}(r,e,{...r.position,z:r[nR]?.z??0},t);r.positionAbsolute={x:o,y:i},r[nR].z=a,n?.[r.id]&&(r[nR].isParent=!0)}})}function rV(e,t,n,r){let o=new Map,i={},a=1e3*!!r;return e.forEach(e=>{let n=(nz(e.zIndex)?e.zIndex:0)+(e.selected?a:0),r=t.get(e.id),l={...e,positionAbsolute:{x:e.position.x,y:e.position.y}},s=e.parentNode||e.parentId;s&&(i[s]=!0),Object.defineProperty(l,nR,{enumerable:!1,value:{handleBounds:r?.type&&r?.type!==e.type?void 0:r?.[nR]?.handleBounds,z:n}}),o.set(e.id,l)}),rH(o,n,i),o}function rF(e,t={}){let{getNodes:n,width:r,height:o,minZoom:i,maxZoom:a,d3Zoom:l,d3Selection:s,fitViewOnInitDone:u,fitViewOnInit:c,nodeOrigin:d}=e(),f=t.initial&&!u&&c;if(l&&s&&(f||!t.initial)){let e=n().filter(e=>{let n=t.includeHiddenNodes?e.width&&e.height:!e.hidden;return t.nodes?.length?n&&t.nodes.some(t=>t.id===e.id):n}),u=e.every(e=>e.width&&e.height);if(e.length>0&&u){let{x:n,y:u,zoom:c}=rt(n9(e,d),r,o,t.minZoom??i,t.maxZoom??a,t.padding??.1),f=t9.translate(n,u).scale(c);return"number"==typeof t.duration&&t.duration>0?l.transform(rn(s,t.duration),f):l.transform(s,f),!0}}return!1}function rX({changedNodes:e,changedEdges:t,get:n,set:r}){let{nodeInternals:o,edges:i,onNodesChange:a,onEdgesChange:l,hasDefaultNodes:s,hasDefaultEdges:u}=n();e?.length&&(s&&r({nodeInternals:(e.forEach(e=>{let t=o.get(e.id);t&&o.set(t.id,{...t,[nR]:t[nR],selected:e.selected})}),new Map(o))}),a?.(e)),t?.length&&(u&&r({edges:i.map(e=>{let n=t.find(t=>t.id===e.id);return n&&(e.selected=n.selected),e})}),l?.(t))}let rY=()=>{},rq={zoomIn:rY,zoomOut:rY,zoomTo:rY,getZoom:()=>1,setViewport:rY,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:rY,fitBounds:rY,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},rU=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection});function rK(){let e=(()=>{let e=ny(),{d3Zoom:t,d3Selection:n}=ng(rU,V);return(0,x.useMemo)(()=>n&&t?{zoomIn:e=>t.scaleBy(rn(n,e?.duration),1.2),zoomOut:e=>t.scaleBy(rn(n,e?.duration),1/1.2),zoomTo:(e,r)=>t.scaleTo(rn(n,r?.duration),e),getZoom:()=>e.getState().transform[2],setViewport:(r,o)=>{let[i,a,l]=e.getState().transform,s=t9.translate(r.x??i,r.y??a).scale(r.zoom??l);t.transform(rn(n,o?.duration),s)},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>rF(e.getState,t),setCenter:(r,o,i)=>{let{width:a,height:l,maxZoom:s}=e.getState(),u=void 0!==i?.zoom?i.zoom:s,c=a/2-r*u,d=l/2-o*u,f=t9.translate(c,d).scale(u);t.transform(rn(n,i?.duration),f)},fitBounds:(r,o)=>{let{width:i,height:a,minZoom:l,maxZoom:s}=e.getState(),{x:u,y:c,zoom:d}=rt(r,i,a,l,s,o?.padding??.1),f=t9.translate(u,c).scale(d);t.transform(rn(n,o?.duration),f)},project:t=>{let{transform:n,snapToGrid:r,snapGrid:o}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),n4(t,n,r,o)},screenToFlowPosition:t=>{let{transform:n,snapToGrid:r,snapGrid:o,domNode:i}=e.getState();if(!i)return t;let{x:a,y:l}=i.getBoundingClientRect();return n4({x:t.x-a,y:t.y-l},n,r,o)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:o,y:i}=r.getBoundingClientRect(),a=n6(t,n);return{x:a.x+o,y:a.y+i}},viewportInitialized:!0}:rq,[t,n])})(),t=ny(),n=(0,x.useCallback)(()=>t.getState().getNodes().map(e=>({...e})),[]),r=(0,x.useCallback)(e=>t.getState().nodeInternals.get(e),[]),o=(0,x.useCallback)(()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},[]),i=(0,x.useCallback)(e=>{let{edges:n=[]}=t.getState();return n.find(t=>t.id===e)},[]),a=(0,x.useCallback)(e=>{let{getNodes:n,setNodes:r,hasDefaultNodes:o,onNodesChange:i}=t.getState(),a=n(),l="function"==typeof e?e(a):e;o?r(l):i&&i(0===l.length?a.map(e=>({type:"remove",id:e.id})):l.map(e=>({item:e,type:"reset"})))},[]),l=(0,x.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:o,onEdgesChange:i}=t.getState(),a="function"==typeof e?e(n):e;o?r(a):i&&i(0===a.length?n.map(e=>({type:"remove",id:e.id})):a.map(e=>({item:e,type:"reset"})))},[]),s=(0,x.useCallback)(e=>{let n=Array.isArray(e)?e:[e],{getNodes:r,setNodes:o,hasDefaultNodes:i,onNodesChange:a}=t.getState();i?o([...r(),...n]):a&&a(n.map(e=>({item:e,type:"add"})))},[]),u=(0,x.useCallback)(e=>{let n=Array.isArray(e)?e:[e],{edges:r=[],setEdges:o,hasDefaultEdges:i,onEdgesChange:a}=t.getState();i?o([...r,...n]):a&&a(n.map(e=>({item:e,type:"add"})))},[]),c=(0,x.useCallback)(()=>{let{getNodes:e,edges:n=[],transform:r}=t.getState(),[o,i,a]=r;return{nodes:e().map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:o,y:i,zoom:a}}},[]),d=(0,x.useCallback)(({nodes:e,edges:n})=>{let{nodeInternals:r,getNodes:o,edges:i,hasDefaultNodes:a,hasDefaultEdges:l,onNodesDelete:s,onEdgesDelete:u,onNodesChange:c,onEdgesChange:d}=t.getState(),f=(e||[]).map(e=>e.id),h=(n||[]).map(e=>e.id),p=o().reduce((e,t)=>{let n=t.parentNode||t.parentId,r=!f.includes(t.id)&&n&&e.find(e=>e.id===n);return("boolean"!=typeof t.deletable||t.deletable)&&(f.includes(t.id)||r)&&e.push(t),e},[]),m=i.filter(e=>"boolean"!=typeof e.deletable||e.deletable),g=m.filter(e=>h.includes(e.id));if(p||g){let e=[...g,...re(p,m)],n=e.reduce((e,t)=>(e.includes(t.id)||e.push(t.id),e),[]);(l||a)&&(l&&t.setState({edges:i.filter(e=>!n.includes(e.id))}),a&&(p.forEach(e=>{r.delete(e.id)}),t.setState({nodeInternals:new Map(r)}))),n.length>0&&(u?.(e),d&&d(n.map(e=>({id:e,type:"remove"})))),p.length>0&&(s?.(p),c&&c(p.map(e=>({id:e.id,type:"remove"}))))}},[]),f=(0,x.useCallback)(e=>{let n=nz(e.width)&&nz(e.height)&&nz(e.x)&&nz(e.y),r=n?null:t.getState().nodeInternals.get(e.id);return n||r?[n?e:nA(r),r,n]:[null,null,n]},[]),h=(0,x.useCallback)((e,n=!0,r)=>{let[o,i,a]=f(e);return o?(r||t.getState().getNodes()).filter(e=>{if(!a&&(e.id===i.id||!e.positionAbsolute))return!1;let t=n$(nA(e),o);return n&&t>0||t>=o.width*o.height}):[]},[]),p=(0,x.useCallback)((e,t,n=!0)=>{let[r]=f(e);if(!r)return!1;let o=n$(r,t);return n&&o>0||o>=r.width*r.height},[]);return(0,x.useMemo)(()=>({...e,getNodes:n,getNode:r,getEdges:o,getEdge:i,setNodes:a,setEdges:l,addNodes:s,addEdges:u,toObject:c,deleteElements:d,getIntersectingNodes:h,isNodeIntersecting:p}),[e,n,r,o,i,a,l,s,u,c,d,h,p])}let rZ={actInsideInputWithModifier:!1},rW={position:"absolute",width:"100%",height:"100%",top:0,left:0},rG=e=>({x:e.x,y:e.y,zoom:e.k}),rQ=(e,t)=>e.target.closest(`.${t}`),rJ=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),r0=e=>{let t=e.ctrlKey&&nD()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t},r1=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),r2=({onMove:e,onMoveStart:t,onMoveEnd:n,onPaneContextMenu:r,zoomOnScroll:o=!0,zoomOnPinch:i=!0,panOnScroll:a=!1,panOnScrollSpeed:l=.5,panOnScrollMode:s=c.Free,zoomOnDoubleClick:u=!0,elementsSelectable:d,panOnDrag:f=!0,defaultViewport:h,translateExtent:p,minZoom:m,maxZoom:g,zoomActivationKeyCode:y,preventScrolling:v=!0,children:b,noWheelClassName:w,noPanClassName:S})=>{let _,E=(0,x.useRef)(),M=ny(),N=(0,x.useRef)(!1),k=(0,x.useRef)(!1),C=(0,x.useRef)(null),A=(0,x.useRef)({x:0,y:0,zoom:0}),{d3Zoom:$,d3Selection:z,d3ZoomHandler:R,userSelectionActive:I}=ng(r1,V),P=rT(y),O=(0,x.useRef)(0),j=(0,x.useRef)(!1),D=(0,x.useRef)();return _=ny(),(0,x.useEffect)(()=>{let e,t=()=>{if(!C.current)return;let e=nS(C.current);(0===e.height||0===e.width)&&_.getState().onError?.("004","The React Flow parent container needs a width and a height to render the graph."),_.setState({width:e.width||500,height:e.height||500})};return t(),window.addEventListener("resize",t),C.current&&(e=new ResizeObserver(()=>t())).observe(C.current),()=>{window.removeEventListener("resize",t),e&&C.current&&e.unobserve(C.current)}},[]),(0,x.useEffect)(()=>{if(C.current){let e=C.current.getBoundingClientRect(),t=(function(){var e,t,n,r=nt,o=nn,i=na,a=no,l=ni,s=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,d=eV,f=X("start","zoom","end"),h=0,p=10;function m(e){e.property("__zoom",nr).on("wheel.zoom",S,{passive:!1}).on("mousedown.zoom",_).on("dblclick.zoom",E).filter(l).on("touchstart.zoom",M).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(e,t){return(t=Math.max(s[0],Math.min(s[1],t)))===e.k?e:new t8(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new t8(e.k,r,o)}function v(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,t,n,r){e.on("start.zoom",function(){b(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){b(this,arguments).event(r).end()}).tween("zoom",function(){var e=arguments,i=b(this,e).event(r),a=o.apply(this,e),l=null==n?v(a):"function"==typeof n?n.apply(this,e):n,s=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),u=this.__zoom,c="function"==typeof t?t.apply(this,e):t,f=d(u.invert(l).concat(s/u.k),c.invert(l).concat(s/c.k));return function(e){if(1===e)e=c;else{var t=f(e),n=s/t[2];e=new t8(n,l[0]-t[0]*n,l[1]-t[1]*n)}i.zoom(null,e)}})}function b(e,t,n){return!n&&e.__zooming||new w(e,t)}function w(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function S(e,...t){if(r.apply(this,arguments)){var n=b(this,t).event(e),o=this.__zoom,l=Math.max(s[0],Math.min(s[1],o.k*Math.pow(2,a.apply(this,arguments)))),c=eF(e);if(n.wheel)(n.mouse[0][0]!==c[0]||n.mouse[0][1]!==c[1])&&(n.mouse[1]=o.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(o.k===l)return;n.mouse=[c,o.invert(c)],to(this),n.start()}ne(e),n.wheel=setTimeout(function(){n.wheel=null,n.end()},150),n.zoom("mouse",i(y(g(o,l),n.mouse[0],n.mouse[1]),n.extent,u))}}function _(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=b(this,t,!0).event(e),l=eP(e.view).on("mousemove.zoom",function(e){if(ne(e),!a.moved){var t=e.clientX-c,n=e.clientY-d;a.moved=t*t+n*n>h}a.event(e).zoom("mouse",i(y(a.that.__zoom,a.mouse[0]=eF(e,o),a.mouse[1]),a.extent,u))},!0).on("mouseup.zoom",function(e){l.on("mousemove.zoom mouseup.zoom",null),eL(e.view,a.moved),ne(e),a.event(e).end()},!0),s=eF(e,o),c=e.clientX,d=e.clientY;eB(e.view),t7(e),a.mouse=[s,this.__zoom.invert(s)],to(this),a.start()}}function E(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=eF(e.changedTouches?e.changedTouches[0]:e,this),l=n.invert(a),s=n.k*(e.shiftKey?.5:2),d=i(y(g(n,s),a,l),o.apply(this,t),u);ne(e),c>0?eP(this).transition().duration(c).call(x,d,a,e):eP(this).call(m.transform,d,a,e)}}function M(n,...o){if(r.apply(this,arguments)){var i,a,l,s,u=n.touches,c=u.length,d=b(this,o,n.changedTouches.length===c).event(n);for(t7(n),a=0;a<c;++a)s=[s=eF(l=u[a],this),this.__zoom.invert(s),l.identifier],d.touch0?d.touch1||d.touch0[2]===s[2]||(d.touch1=s,d.taps=0):(d.touch0=s,i=!0,d.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(d.taps<2&&(t=s[0],e=setTimeout(function(){e=null},500)),to(this),d.start())}}function N(e,...t){if(this.__zooming){var n,r,o,a,l=b(this,t).event(e),s=e.changedTouches,c=s.length;for(ne(e),n=0;n<c;++n)o=eF(r=s[n],this),l.touch0&&l.touch0[2]===r.identifier?l.touch0[0]=o:l.touch1&&l.touch1[2]===r.identifier&&(l.touch1[0]=o);if(r=l.that.__zoom,l.touch1){var d=l.touch0[0],f=l.touch0[1],h=l.touch1[0],p=l.touch1[1],m=(m=h[0]-d[0])*m+(m=h[1]-d[1])*m,v=(v=p[0]-f[0])*v+(v=p[1]-f[1])*v;r=g(r,Math.sqrt(m/v)),o=[(d[0]+h[0])/2,(d[1]+h[1])/2],a=[(f[0]+p[0])/2,(f[1]+p[1])/2]}else{if(!l.touch0)return;o=l.touch0[0],a=l.touch0[1]}l.zoom("touch",i(y(r,o,a),l.extent,u))}}function k(e,...r){if(this.__zooming){var o,i,a=b(this,r).event(e),l=e.changedTouches,s=l.length;for(t7(e),n&&clearTimeout(n),n=setTimeout(function(){n=null},500),o=0;o<s;++o)i=l[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=eF(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<p)){var u=eP(this).on("dblclick.zoom");u&&u.apply(this,arguments)}}}return m.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",nr),e!==o?x(e,t,n,r):o.interrupt().each(function(){b(this,arguments).event(r).start().zoom(null,"function"==typeof t?t.apply(this,arguments):t).end()})},m.scaleBy=function(e,t,n,r){m.scaleTo(e,function(){var e=this.__zoom.k,n="function"==typeof t?t.apply(this,arguments):t;return e*n},n,r)},m.scaleTo=function(e,t,n,r){m.transform(e,function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?v(e):"function"==typeof n?n.apply(this,arguments):n,l=r.invert(a),s="function"==typeof t?t.apply(this,arguments):t;return i(y(g(r,s),a,l),e,u)},n,r)},m.translateBy=function(e,t,n,r){m.transform(e,function(){return i(this.__zoom.translate("function"==typeof t?t.apply(this,arguments):t,"function"==typeof n?n.apply(this,arguments):n),o.apply(this,arguments),u)},null,r)},m.translateTo=function(e,t,n,r,a){m.transform(e,function(){var e=o.apply(this,arguments),a=this.__zoom,l=null==r?v(e):"function"==typeof r?r.apply(this,arguments):r;return i(t9.translate(l[0],l[1]).scale(a.k).translate("function"==typeof t?-t.apply(this,arguments):-t,"function"==typeof n?-n.apply(this,arguments):-n),e,u)},r,a)},w.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=eP(this.that).datum();f.call(e,this.that,new t6(e,{sourceEvent:this.sourceEvent,target:m,type:e,transform:this.that.__zoom,dispatch:f}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"==typeof e?e:t4(+e),m):a},m.filter=function(e){return arguments.length?(r="function"==typeof e?e:t4(!!e),m):r},m.touchable=function(e){return arguments.length?(l="function"==typeof e?e:t4(!!e),m):l},m.extent=function(e){return arguments.length?(o="function"==typeof e?e:t4([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),m):o},m.scaleExtent=function(e){return arguments.length?(s[0]=+e[0],s[1]=+e[1],m):[s[0],s[1]]},m.translateExtent=function(e){return arguments.length?(u[0][0]=+e[0][0],u[1][0]=+e[1][0],u[0][1]=+e[0][1],u[1][1]=+e[1][1],m):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},m.constrain=function(e){return arguments.length?(i=e,m):i},m.duration=function(e){return arguments.length?(c=+e,m):c},m.interpolate=function(e){return arguments.length?(d=e,m):d},m.on=function(){var e=f.on.apply(f,arguments);return e===f?m:e},m.clickDistance=function(e){return arguments.length?(h=(e*=1)*e,m):Math.sqrt(h)},m.tapDistance=function(e){return arguments.length?(p=+e,m):p},m})().scaleExtent([m,g]).translateExtent(p),n=eP(C.current).call(t),r=t9.translate(h.x,h.y).scale(n_(h.zoom,m,g)),o=[[0,0],[e.width,e.height]],i=t.constrain()(r,o,p);t.transform(n,i),t.wheelDelta(r0),M.setState({d3Zoom:t,d3Selection:n,d3ZoomHandler:n.on("wheel.zoom"),transform:[i.x,i.y,i.k],domNode:C.current.closest(".react-flow")})}},[]),(0,x.useEffect)(()=>{z&&$&&(!a||P||I?void 0!==R&&z.on("wheel.zoom",function(e,t){if(!v&&"wheel"===e.type&&!e.ctrlKey||rQ(e,w))return null;e.preventDefault(),R.call(this,e,t)},{passive:!1}):z.on("wheel.zoom",r=>{if(rQ(r,w))return!1;r.preventDefault(),r.stopImmediatePropagation();let o=z.property("__zoom").k||1;if(r.ctrlKey&&i){let e=eF(r),t=o*Math.pow(2,r0(r));$.scaleTo(z,t,e,r);return}let a=1===r.deltaMode?20:1,u=s===c.Vertical?0:r.deltaX*a,d=s===c.Horizontal?0:r.deltaY*a;!nD()&&r.shiftKey&&s!==c.Vertical&&(u=r.deltaY*a,d=0),$.translateBy(z,-(u/o)*l,-(d/o)*l,{internal:!0});let f=rG(z.property("__zoom")),{onViewportChangeStart:h,onViewportChange:p,onViewportChangeEnd:m}=M.getState();clearTimeout(D.current),j.current||(j.current=!0,t?.(r,f),h?.(f)),j.current&&(e?.(r,f),p?.(f),D.current=setTimeout(()=>{n?.(r,f),m?.(f),j.current=!1},150))},{passive:!1}))},[I,a,s,z,$,R,P,i,v,w,t,e,n]),(0,x.useEffect)(()=>{$&&$.on("start",e=>{if(!e.sourceEvent||e.sourceEvent.internal)return null;O.current=e.sourceEvent?.button;let{onViewportChangeStart:n}=M.getState(),r=rG(e.transform);N.current=!0,A.current=r,e.sourceEvent?.type==="mousedown"&&M.setState({paneDragging:!0}),n?.(r),t?.(e.sourceEvent,r)})},[$,t]),(0,x.useEffect)(()=>{$&&(I&&!N.current?$.on("zoom",null):I||$.on("zoom",t=>{let{onViewportChange:n}=M.getState();if(M.setState({transform:[t.transform.x,t.transform.y,t.transform.k]}),k.current=!!(r&&rJ(f,O.current??0)),(e||n)&&!t.sourceEvent?.internal){let r=rG(t.transform);n?.(r),e?.(t.sourceEvent,r)}}))},[I,$,e,f,r]),(0,x.useEffect)(()=>{$&&$.on("end",e=>{let t,o;if(!e.sourceEvent||e.sourceEvent.internal)return null;let{onViewportChangeEnd:i}=M.getState();if(N.current=!1,M.setState({paneDragging:!1}),r&&rJ(f,O.current??0)&&!k.current&&r(e.sourceEvent),k.current=!1,(n||i)&&(t=A.current,o=e.transform,t.x!==o.x||t.y!==o.y||t.zoom!==o.k)){let t=rG(e.transform);A.current=t,clearTimeout(E.current),E.current=setTimeout(()=>{i?.(t),n?.(e.sourceEvent,t)},150*!!a)}})},[$,a,f,n,r]),(0,x.useEffect)(()=>{$&&$.filter(e=>{let t=P||o,n=i&&e.ctrlKey;if((!0===f||Array.isArray(f)&&f.includes(1))&&1===e.button&&"mousedown"===e.type&&(rQ(e,"react-flow__node")||rQ(e,"react-flow__edge")))return!0;if(!f&&!t&&!a&&!u&&!i||I||!u&&"dblclick"===e.type||rQ(e,w)&&"wheel"===e.type||rQ(e,S)&&("wheel"!==e.type||a&&"wheel"===e.type&&!P)||!i&&e.ctrlKey&&"wheel"===e.type||!t&&!a&&!n&&"wheel"===e.type||!f&&("mousedown"===e.type||"touchstart"===e.type)||Array.isArray(f)&&!f.includes(e.button)&&"mousedown"===e.type)return!1;let r=Array.isArray(f)&&f.includes(e.button)||!e.button||e.button<=1;return(!e.ctrlKey||"wheel"===e.type)&&r})},[I,$,o,i,a,u,f,d,P]),x.default.createElement("div",{className:"react-flow__renderer",ref:C,style:rW},b)},r3=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function r5(){let{userSelectionActive:e,userSelectionRect:t}=ng(r3,V);return e&&t?x.default.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function r4(e,t){let n=t.parentNode||t.parentId,r=e.find(e=>e.id===n);if(r){let e=t.position.x+t.width-r.width,n=t.position.y+t.height-r.height;if(e>0||n>0||t.position.x<0||t.position.y<0){if(r.style={...r.style},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,e>0&&(r.style.width+=e),n>0&&(r.style.height+=n),t.position.x<0){let e=Math.abs(t.position.x);r.position.x=r.position.x-e,r.style.width+=e,t.position.x=0}if(t.position.y<0){let e=Math.abs(t.position.y);r.position.y=r.position.y-e,r.style.height+=e,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function r6(e,t){if(e.some(e=>"reset"===e.type))return e.filter(e=>"reset"===e.type).map(e=>e.item);let n=e.filter(e=>"add"===e.type).map(e=>e.item);return t.reduce((t,n)=>{let r=e.filter(e=>e.id===n.id);if(0===r.length)return t.push(n),t;let o={...n};for(let e of r)if(e)switch(e.type){case"select":o.selected=e.selected;break;case"position":void 0!==e.position&&(o.position=e.position),void 0!==e.positionAbsolute&&(o.positionAbsolute=e.positionAbsolute),void 0!==e.dragging&&(o.dragging=e.dragging),o.expandParent&&r4(t,o);break;case"dimensions":void 0!==e.dimensions&&(o.width=e.dimensions.width,o.height=e.dimensions.height),void 0!==e.updateStyle&&(o.style={...o.style||{},...e.dimensions}),"boolean"==typeof e.resizing&&(o.resizing=e.resizing),o.expandParent&&r4(t,o);break;case"remove":return t}return t.push(o),t},n)}function r8(e,t){return r6(e,t)}let r9=(e,t)=>({id:e,type:"select",selected:t});function r7(e,t){return e.reduce((e,n)=>{let r=t.includes(n.id);return!n.selected&&r?(n.selected=!0,e.push(r9(n.id,!0))):n.selected&&!r&&(n.selected=!1,e.push(r9(n.id,!1))),e},[])}let oe=(e,t)=>n=>{n.target===t.current&&e?.(n)},ot=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),on=(0,x.memo)(({isSelecting:e,selectionMode:t=d.Full,panOnDrag:n,onSelectionStart:r,onSelectionEnd:o,onPaneClick:i,onPaneContextMenu:a,onPaneScroll:l,onPaneMouseEnter:s,onPaneMouseMove:u,onPaneMouseLeave:c,children:f})=>{let h=(0,x.useRef)(null),p=ny(),m=(0,x.useRef)(0),g=(0,x.useRef)(0),y=(0,x.useRef)(),{userSelectionActive:v,elementsSelectable:b,dragging:w}=ng(ot,V),S=()=>{p.setState({userSelectionActive:!1,userSelectionRect:null}),m.current=0,g.current=0},_=e=>{i?.(e),p.getState().resetSelectedElements(),p.setState({nodesSelectionActive:!1})},E=b&&(e||v);return x.default.createElement("div",{className:I(["react-flow__pane",{dragging:w,selection:e}]),onClick:E?void 0:oe(_,h),onContextMenu:oe(e=>{Array.isArray(n)&&n?.includes(2)?e.preventDefault():a?.(e)},h),onWheel:oe(l?e=>l(e):void 0,h),onMouseEnter:E?void 0:s,onMouseDown:E?t=>{let{resetSelectedElements:n,domNode:o}=p.getState();if(y.current=o?.getBoundingClientRect(),!b||!e||0!==t.button||t.target!==h.current||!y.current)return;let{x:i,y:a}=nj(t,y.current);n(),p.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),r?.(t)}:void 0,onMouseMove:E?n=>{let{userSelectionRect:r,nodeInternals:o,edges:i,transform:a,onNodesChange:l,onEdgesChange:s,nodeOrigin:u,getNodes:c}=p.getState();if(!e||!y.current||!r)return;p.setState({userSelectionActive:!0,nodesSelectionActive:!1});let f=nj(n,y.current),h=r.startX??0,v=r.startY??0,x={...r,x:f.x<h?f.x:h,y:f.y<v?f.y:v,width:Math.abs(f.x-h),height:Math.abs(f.y-v)},b=c(),w=n7(o,x,a,t===d.Partial,!0,u),S=re(w,i).map(e=>e.id),_=w.map(e=>e.id);if(m.current!==_.length){m.current=_.length;let e=r7(b,_);e.length&&l?.(e)}if(g.current!==S.length){g.current=S.length;let e=r7(i,S);e.length&&s?.(e)}p.setState({userSelectionRect:x})}:u,onMouseUp:E?e=>{if(0!==e.button)return;let{userSelectionRect:t}=p.getState();!v&&t&&e.target===h.current&&_?.(e),p.setState({nodesSelectionActive:m.current>0}),S(),o?.(e)}:void 0,onMouseLeave:E?e=>{v&&(p.setState({nodesSelectionActive:m.current>0}),o?.(e)),S()}:c,ref:h,style:rW},f,x.default.createElement(r5,null))});function or(e,t,n){let r=e;do{if(r?.matches(t))return!0;if(r===n.current)break;r=r.parentElement}while(r)return!1}function oo(e,t,n,r,o=[0,0],i){var a;let l=(a=e.extent||r)&&"parent"!==a?[a[0],[a[1][0]-(e.width||0),a[1][1]-(e.height||0)]]:a,s=l,u=e.parentNode||e.parentId;if("parent"!==e.extent||e.expandParent){if(e.extent&&u&&"parent"!==e.extent){let{x:t,y:r}=n8(n.get(u),o).positionAbsolute;s=[[e.extent[0][0]+t,e.extent[0][1]+r],[e.extent[1][0]+t,e.extent[1][1]+r]]}}else if(u&&e.width&&e.height){let t=n.get(u),{x:r,y:i}=n8(t,o).positionAbsolute;s=t&&nz(r)&&nz(i)&&nz(t.width)&&nz(t.height)?[[r+e.width*o[0],i+e.height*o[1]],[r+t.width-e.width+e.width*o[0],i+t.height-e.height+e.height*o[1]]]:s}else i?.("005","Only child nodes can use a parent extent."),s=l;let c={x:0,y:0};u&&(c=n8(n.get(u),o).positionAbsolute);let d=s&&"parent"!==s?nE(t,s):t;return{position:{x:d.x-c.x,y:d.y-c.y},positionAbsolute:d}}function oi({nodeId:e,dragItems:t,nodeInternals:n}){let r=t.map(e=>({...n.get(e.id),position:e.position,positionAbsolute:e.positionAbsolute}));return[e?r.find(t=>t.id===e):r[0],r]}on.displayName="Pane";let oa=(e,t,n,r)=>{let o=t.querySelectorAll(e);if(!o||!o.length)return null;let i=Array.from(o),a=t.getBoundingClientRect(),l={x:a.width*r[0],y:a.height*r[1]};return i.map(e=>{let t=e.getBoundingClientRect();return{id:e.getAttribute("data-handleid"),position:e.getAttribute("data-handlepos"),x:(t.left-a.left-l.x)/n,y:(t.top-a.top-l.y)/n,...nS(e)}})};function ol(e,t,n){return void 0===n?n:r=>{let o=t().nodeInternals.get(e);o&&n(r,{...o})}}function os({id:e,store:t,unselect:n=!1,nodeRef:r}){let o,{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:l,nodeInternals:s,onError:u}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&l)&&(a({nodes:[c],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])):u?.("012",(o=e,`Node with id "${o}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`))}function ou(e){return(t,n,r)=>e?.(t,r)}function oc({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,selectNodesOnDrag:a}){let l,s=ny(),[u,c]=(0,x.useState)(!1),d=(0,x.useRef)([]),f=(0,x.useRef)({x:null,y:null}),h=(0,x.useRef)(0),p=(0,x.useRef)(null),m=(0,x.useRef)({x:0,y:0}),g=(0,x.useRef)(null),y=(0,x.useRef)(!1),v=(0,x.useRef)(!1),b=(0,x.useRef)(!1),w=(l=ny(),(0,x.useCallback)(({sourceEvent:e})=>{let{transform:t,snapGrid:n,snapToGrid:r}=l.getState(),o=e.touches?e.touches[0].clientX:e.clientX,i=e.touches?e.touches[0].clientY:e.clientY,a={x:(o-t[0])/t[2],y:(i-t[1])/t[2]};return{xSnapped:r?n[0]*Math.round(a.x/n[0]):a.x,ySnapped:r?n[1]*Math.round(a.y/n[1]):a.y,...a}},[]));return(0,x.useEffect)(()=>{if(e?.current){let l=eP(e.current),u=({x:e,y:t})=>{let{nodeInternals:n,onNodeDrag:r,onSelectionDrag:i,updateNodePositions:a,nodeExtent:l,snapGrid:u,snapToGrid:h,nodeOrigin:p,onError:m}=s.getState();f.current={x:e,y:t};let y=!1,v={x:0,y:0,x2:0,y2:0};if(d.current.length>1&&l&&(v=nC(n9(d.current,p))),d.current=d.current.map(r=>{let o={x:e-r.distance.x,y:t-r.distance.y};h&&(o.x=u[0]*Math.round(o.x/u[0]),o.y=u[1]*Math.round(o.y/u[1]));let i=[[l[0][0],l[0][1]],[l[1][0],l[1][1]]];d.current.length>1&&l&&!r.extent&&(i[0][0]=r.positionAbsolute.x-v.x+l[0][0],i[1][0]=r.positionAbsolute.x+(r.width??0)-v.x2+l[1][0],i[0][1]=r.positionAbsolute.y-v.y+l[0][1],i[1][1]=r.positionAbsolute.y+(r.height??0)-v.y2+l[1][1]);let a=oo(r,o,n,i,p,m);return y=y||r.position.x!==a.position.x||r.position.y!==a.position.y,r.position=a.position,r.positionAbsolute=a.positionAbsolute,r}),!y)return;a(d.current,!0,!0),c(!0);let x=o?r:ou(i);if(x&&g.current){let[e,t]=oi({nodeId:o,dragItems:d.current,nodeInternals:n});x(g.current,e,t)}},x=()=>{if(!p.current)return;let[e,t]=nN(m.current,p.current);if(0!==e||0!==t){let{transform:n,panBy:r}=s.getState();f.current.x=(f.current.x??0)-e/n[2],f.current.y=(f.current.y??0)-t/n[2],r({x:e,y:t})&&u(f.current)}h.current=requestAnimationFrame(x)},S=t=>{let{nodeInternals:n,multiSelectionActive:r,nodesDraggable:l,unselectNodesAndEdges:u,onNodeDragStart:c,onSelectionDragStart:h}=s.getState();v.current=!0;let p=o?c:ou(h);a&&i||r||!o||n.get(o)?.selected||u(),o&&i&&a&&os({id:o,store:s,nodeRef:e});let m=w(t);if(f.current=m,d.current=Array.from(n.values()).filter(e=>(e.selected||e.id===o)&&(!e.parentNode||e.parentId||!function e(t,n){let r=t.parentNode||t.parentId;if(!r)return!1;let o=n.get(r);return!!o&&(!!o.selected||e(o,n))}(e,n))&&(e.draggable||l&&void 0===e.draggable)).map(e=>({id:e.id,position:e.position||{x:0,y:0},positionAbsolute:e.positionAbsolute||{x:0,y:0},distance:{x:m.x-(e.positionAbsolute?.x??0),y:m.y-(e.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:e.extent,parentNode:e.parentNode||e.parentId,parentId:e.parentNode||e.parentId,width:e.width,height:e.height,expandParent:e.expandParent})),p&&d.current){let[e,r]=oi({nodeId:o,dragItems:d.current,nodeInternals:n});p(t.sourceEvent,e,r)}};if(t)l.on(".drag",null);else{let t=(function(){var e,t,n,r,o=nu,i=nc,a=nd,l=nf,s={},u=X("start","drag","end"),c=0,d=0;function f(e){e.on("mousedown.drag",h).filter(l).on("touchstart.drag",g).on("touchmove.drag",y,eO).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(a,l){if(!r&&o.call(this,a,l)){var s=x(this,i.call(this,a,l),a,l,"mouse");s&&(eP(a.view).on("mousemove.drag",p,ej).on("mouseup.drag",m,ej),eB(a.view),eD(a),n=!1,e=a.clientX,t=a.clientY,s("start",a))}}function p(r){if(eT(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>d}s.mouse("drag",r)}function m(e){eP(e.view).on("mousemove.drag mouseup.drag",null),eL(e.view,n),eT(e),s.mouse("end",e)}function g(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,l=i.call(this,e,t),s=a.length;for(n=0;n<s;++n)(r=x(this,l,e,t,a[n].identifier,a[n]))&&(eD(e),r("start",e,a[n]))}}function y(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=s[r[t].identifier])&&(eT(e),n("drag",e,r[t]))}function v(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout(function(){r=null},500),t=0;t<i;++t)(n=s[o[t].identifier])&&(eD(e),n("end",e,o[t]))}function x(e,t,n,r,o,i){var l,d,h,p=u.copy(),m=eF(i||n,t);if(null!=(h=a.call(e,new ns("beforestart",{sourceEvent:n,target:f,identifier:o,active:c,x:m[0],y:m[1],dx:0,dy:0,dispatch:p}),r)))return l=h.x-m[0]||0,d=h.y-m[1]||0,function n(i,a,u){var g,y=m;switch(i){case"start":s[o]=n,g=c++;break;case"end":delete s[o],--c;case"drag":m=eF(u||a,t),g=c}p.call(i,e,new ns(i,{sourceEvent:a,subject:h,target:f,identifier:o,active:g,x:m[0]+l,y:m[1]+d,dx:m[0]-y[0],dy:m[1]-y[1],dispatch:p}),r)}}return f.filter=function(e){return arguments.length?(o="function"==typeof e?e:nl(!!e),f):o},f.container=function(e){return arguments.length?(i="function"==typeof e?e:nl(e),f):i},f.subject=function(e){return arguments.length?(a="function"==typeof e?e:nl(e),f):a},f.touchable=function(e){return arguments.length?(l="function"==typeof e?e:nl(!!e),f):l},f.on=function(){var e=u.on.apply(u,arguments);return e===u?f:e},f.clickDistance=function(e){return arguments.length?(d=(e*=1)*e,f):Math.sqrt(d)},f})().on("start",e=>{let{domNode:t,nodeDragThreshold:n}=s.getState();0===n&&S(e),b.current=!1,f.current=w(e),p.current=t?.getBoundingClientRect()||null,m.current=nj(e.sourceEvent,p.current)}).on("drag",e=>{let t=w(e),{autoPanOnNodeDrag:n,nodeDragThreshold:r}=s.getState();if("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1&&(b.current=!0),!b.current){if(!y.current&&v.current&&n&&(y.current=!0,x()),!v.current){let n=t.xSnapped-(f?.current?.x??0),o=t.ySnapped-(f?.current?.y??0);Math.sqrt(n*n+o*o)>r&&S(e)}(f.current.x!==t.xSnapped||f.current.y!==t.ySnapped)&&d.current&&v.current&&(g.current=e.sourceEvent,m.current=nj(e.sourceEvent,p.current),u(t))}}).on("end",e=>{if(v.current&&!b.current&&(c(!1),y.current=!1,v.current=!1,cancelAnimationFrame(h.current),d.current)){let{updateNodePositions:t,nodeInternals:n,onNodeDragStop:r,onSelectionDragStop:i}=s.getState(),a=o?r:ou(i);if(t(d.current,!1,!1),a){let[t,r]=oi({nodeId:o,dragItems:d.current,nodeInternals:n});a(e.sourceEvent,t,r)}}}).filter(t=>{let o=t.target;return!t.button&&(!n||!or(o,`.${n}`,e))&&(!r||or(o,r,e))});return l.call(t),()=>{l.on(".drag",null)}}}},[e,t,n,r,i,s,o,a,w]),u}function od(){let e=ny();return(0,x.useCallback)(t=>{let{nodeInternals:n,nodeExtent:r,updateNodePositions:o,getNodes:i,snapToGrid:a,snapGrid:l,onError:s,nodesDraggable:u}=e.getState(),c=i().filter(e=>e.selected&&(e.draggable||u&&void 0===e.draggable)),d=a?l[0]:5,f=a?l[1]:5,h=t.isShiftPressed?4:1,p=t.x*d*h,m=t.y*f*h;o(c.map(e=>{if(e.positionAbsolute){let t={x:e.positionAbsolute.x+p,y:e.positionAbsolute.y+m};a&&(t.x=l[0]*Math.round(t.x/l[0]),t.y=l[1]*Math.round(t.y/l[1]));let{positionAbsolute:o,position:i}=oo(e,t,n,r,void 0,s);e.position=i,e.positionAbsolute=o}return e}),!0,!1)},[])}let of={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var oh=e=>{let t=({id:t,type:n,data:r,xPos:o,yPos:i,xPosOrigin:a,yPosOrigin:l,selected:s,onClick:u,onMouseEnter:c,onMouseMove:d,onMouseLeave:f,onContextMenu:h,onDoubleClick:p,style:m,className:g,isDraggable:y,isSelectable:v,isConnectable:b,isFocusable:w,selectNodesOnDrag:S,sourcePosition:_,targetPosition:E,hidden:M,resizeObserver:N,dragHandle:k,zIndex:C,isParent:A,noDragClassName:$,noPanClassName:z,initialized:R,disableKeyboardA11y:P,ariaLabel:O,rfId:j,hasHandleBounds:D})=>{let T=ny(),B=(0,x.useRef)(null),L=(0,x.useRef)(null),H=(0,x.useRef)(_),V=(0,x.useRef)(E),F=(0,x.useRef)(n),X=v||y||u||c||d||f,Y=od(),q=ol(t,T.getState,c),U=ol(t,T.getState,d),K=ol(t,T.getState,f),Z=ol(t,T.getState,h),W=ol(t,T.getState,p);(0,x.useEffect)(()=>()=>{L.current&&(N?.unobserve(L.current),L.current=null)},[]),(0,x.useEffect)(()=>{if(B.current&&!M){let e=B.current;R&&D&&L.current===e||(L.current&&N?.unobserve(L.current),N?.observe(e),L.current=e)}},[M,R,D]),(0,x.useEffect)(()=>{let e=F.current!==n,r=H.current!==_,o=V.current!==E;B.current&&(e||r||o)&&(e&&(F.current=n),r&&(H.current=_),o&&(V.current=E),T.getState().updateNodeDimensions([{id:t,nodeElement:B.current,forceUpdate:!0}]))},[t,n,_,E]);let G=oc({nodeRef:B,disabled:M||!y,noDragClassName:$,handleSelector:k,nodeId:t,isSelectable:v,selectNodesOnDrag:S});return M?null:x.default.createElement("div",{className:I(["react-flow__node",`react-flow__node-${n}`,{[z]:y},g,{selected:s,selectable:v,parent:A,dragging:G}]),ref:B,style:{zIndex:C,transform:`translate(${a}px,${l}px)`,pointerEvents:X?"all":"none",visibility:R?"visible":"hidden",...m},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:q,onMouseMove:U,onMouseLeave:K,onContextMenu:Z,onClick:e=>{let{nodeDragThreshold:n}=T.getState();if(v&&(!S||!y||n>0)&&os({id:t,store:T,nodeRef:B}),u){let n=T.getState().nodeInternals.get(t);n&&u(e,{...n})}},onDoubleClick:W,onKeyDown:w?e=>{nO(e)||!P&&(nI.includes(e.key)&&v?os({id:t,store:T,unselect:"Escape"===e.key,nodeRef:B}):y&&s&&Object.prototype.hasOwnProperty.call(of,e.key)&&(T.setState({ariaLiveMessage:`Moved selected node ${e.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~o}, y: ${~~i}`}),Y({x:of[e.key].x,y:of[e.key].y,isShiftPressed:e.shiftKey})))}:void 0,tabIndex:w?0:void 0,role:w?"button":void 0,"aria-describedby":P?void 0:`${rI}-${j}`,"aria-label":O},x.default.createElement(n3,{value:t},x.default.createElement(e,{id:t,data:r,type:n,xPos:o,yPos:i,selected:s,isConnectable:b,sourcePosition:_,targetPosition:E,dragging:G,dragHandle:k,zIndex:C})))};return t.displayName="NodeWrapper",(0,x.memo)(t)};let op=e=>({...n9(e.getNodes().filter(e=>e.selected),e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive});var om=(0,x.memo)(function({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=ny(),{width:o,height:i,x:a,y:l,transformString:s,userSelectionActive:u}=ng(op,V),c=od(),d=(0,x.useRef)(null);if((0,x.useEffect)(()=>{n||d.current?.focus({preventScroll:!0})},[n]),oc({nodeRef:d}),u||!o||!i)return null;let f=e?t=>{e(t,r.getState().getNodes().filter(e=>e.selected))}:void 0;return x.default.createElement("div",{className:I(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s}},x.default.createElement("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(of,e.key)&&c({x:of[e.key].x,y:of[e.key].y,isShiftPressed:e.shiftKey})},style:{width:o,height:i,top:l,left:a}}))});let og=e=>e.nodesSelectionActive,oy=({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,deleteKeyCode:l,onMove:s,onMoveStart:u,onMoveEnd:c,selectionKeyCode:d,selectionOnDrag:f,selectionMode:h,onSelectionStart:p,onSelectionEnd:m,multiSelectionKeyCode:g,panActivationKeyCode:y,zoomActivationKeyCode:v,elementsSelectable:b,zoomOnScroll:w,zoomOnPinch:S,panOnScroll:_,panOnScrollSpeed:E,panOnScrollMode:M,zoomOnDoubleClick:N,panOnDrag:k,defaultViewport:C,translateExtent:A,minZoom:$,maxZoom:z,preventScrolling:R,onSelectionContextMenu:I,noWheelClassName:P,noPanClassName:O,disableKeyboardA11y:j})=>{let D=ng(og),T=rT(d),B=rT(y),L=B||k,H=B||_,V=T||f&&!0!==L;return(({deleteKeyCode:e,multiSelectionKeyCode:t})=>{let n=ny(),{deleteElements:r}=rK(),o=rT(e,rZ),i=rT(t);(0,x.useEffect)(()=>{if(o){let{edges:e,getNodes:t}=n.getState();r({nodes:t().filter(e=>e.selected),edges:e.filter(e=>e.selected)}),n.setState({nodesSelectionActive:!1})}},[o]),(0,x.useEffect)(()=>{n.setState({multiSelectionActive:i})},[i])})({deleteKeyCode:l,multiSelectionKeyCode:g}),x.default.createElement(r2,{onMove:s,onMoveStart:u,onMoveEnd:c,onPaneContextMenu:i,elementsSelectable:b,zoomOnScroll:w,zoomOnPinch:S,panOnScroll:H,panOnScrollSpeed:E,panOnScrollMode:M,zoomOnDoubleClick:N,panOnDrag:!T&&L,defaultViewport:C,translateExtent:A,minZoom:$,maxZoom:z,zoomActivationKeyCode:v,preventScrolling:R,noWheelClassName:P,noPanClassName:O},x.default.createElement(on,{onSelectionStart:p,onSelectionEnd:m,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:L,isSelecting:!!V,selectionMode:h},e,D&&x.default.createElement(om,{onSelectionContextMenu:I,noPanClassName:O,disableKeyboardA11y:j})))};oy.displayName="FlowRenderer";var ov=(0,x.memo)(oy);function ox(e){let t={input:oh(e.input||ry),default:oh(e.default||rm),output:oh(e.output||rx),group:oh(e.group||rb)},n=Object.keys(e).filter(e=>!["input","default","output","group"].includes(e)).reduce((t,n)=>(t[n]=oh(e[n]||rm),t),{});return{...t,...n}}let ob=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),ow=e=>{var t;let{nodesDraggable:n,nodesConnectable:r,nodesFocusable:o,elementsSelectable:i,updateNodeDimensions:a,onError:l}=ng(ob,V),s=(t=e.onlyRenderVisibleElements,ng((0,x.useCallback)(e=>t?n7(e.nodeInternals,{x:0,y:0,width:e.width,height:e.height},e.transform,!0):e.getNodes(),[t]))),u=(0,x.useRef)(),c=(0,x.useMemo)(()=>{if("undefined"==typeof ResizeObserver)return null;let e=new ResizeObserver(e=>{a(e.map(e=>({id:e.target.getAttribute("data-id"),nodeElement:e.target,forceUpdate:!0})))});return u.current=e,e},[]);return(0,x.useEffect)(()=>()=>{u?.current?.disconnect()},[]),x.default.createElement("div",{className:"react-flow__nodes",style:rW},s.map(t=>{let a,s=t.type||"default";e.nodeTypes[s]||(l?.("003",(a=s,`Node type "${a}" not found. Using fallback type "default".`)),s="default");let u=e.nodeTypes[s]||e.nodeTypes.default,d=!!(t.draggable||n&&void 0===t.draggable),f=!!(t.selectable||i&&void 0===t.selectable),h=!!(t.connectable||r&&void 0===t.connectable),m=!!(t.focusable||o&&void 0===t.focusable),g=e.nodeExtent?nE(t.positionAbsolute,e.nodeExtent):t.positionAbsolute,y=g?.x??0,v=g?.y??0,b=(({x:e,y:t,width:n,height:r,origin:o})=>!n||!r||o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:t}:{x:e-n*o[0],y:t-r*o[1]})({x:y,y:v,width:t.width??0,height:t.height??0,origin:e.nodeOrigin});return x.default.createElement(u,{key:t.id,id:t.id,className:t.className,style:t.style,type:s,data:t.data,sourcePosition:t.sourcePosition||p.Bottom,targetPosition:t.targetPosition||p.Top,hidden:t.hidden,xPos:y,yPos:v,xPosOrigin:b.x,yPosOrigin:b.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!t.selected,isDraggable:d,isSelectable:f,isConnectable:h,isFocusable:m,resizeObserver:c,dragHandle:t.dragHandle,zIndex:t[nR]?.z??0,isParent:!!t[nR]?.isParent,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!t.width&&!!t.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:t.ariaLabel,hasHandleBounds:!!t[nR]?.handleBounds})}))};ow.displayName="NodeRenderer";var oS=(0,x.memo)(ow);let o_="react-flow__edgeupdater",oE=({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:a,type:l})=>x.default.createElement("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:a,className:I([o_,`${o_}-${l}`]),cx:e===p.Left?t-r:e===p.Right?t+r:t,cy:e===p.Top?n-r:e===p.Bottom?n+r:n,r:r,stroke:"transparent",fill:"transparent"}),oM=()=>!0;var oN=e=>{let t=({id:t,className:n,type:r,data:o,onClick:i,onEdgeDoubleClick:a,selected:l,animated:s,label:u,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:m,source:g,target:y,sourceX:v,sourceY:b,targetX:w,targetY:S,sourcePosition:_,targetPosition:E,elementsSelectable:M,hidden:N,sourceHandleId:k,targetHandleId:C,onContextMenu:A,onMouseEnter:$,onMouseMove:z,onMouseLeave:R,reconnectRadius:P,onReconnect:O,onReconnectStart:j,onReconnectEnd:D,markerEnd:T,markerStart:B,rfId:L,ariaLabel:H,isFocusable:V,isReconnectable:F,pathOptions:X,interactionWidth:Y,disableKeyboardA11y:q})=>{let U=(0,x.useRef)(null),[K,Z]=(0,x.useState)(!1),[W,G]=(0,x.useState)(!1),Q=ny(),J=(0,x.useMemo)(()=>`url('#${n5(B,L)}')`,[B,L]),ee=(0,x.useMemo)(()=>`url('#${n5(T,L)}')`,[T,L]);if(N)return null;let et=nB(t,Q.getState,a),en=nB(t,Q.getState,A),er=nB(t,Q.getState,$),eo=nB(t,Q.getState,z),ei=nB(t,Q.getState,R),ea=(e,n)=>{if(0!==e.button)return;let{edges:r,isValidConnection:o}=Q.getState(),i=n?y:g,a=(n?C:k)||null,l=n?"target":"source",s=r.find(e=>e.id===t);G(!0),j?.(e,s,l),ru({event:e,handleId:a,nodeId:i,onConnect:e=>O?.(s,e),isTarget:n,getState:Q.getState,setState:Q.setState,isValidConnection:o||oM,edgeUpdaterType:l,onReconnectEnd:e=>{G(!1),D?.(e,s,l)}})},el=()=>Z(!0),es=()=>Z(!1);return x.default.createElement("g",{className:I(["react-flow__edge",`react-flow__edge-${r}`,n,{selected:l,animated:s,inactive:!M&&!i,updating:K}]),onClick:e=>{let{edges:n,addSelectedEdges:r,unselectNodesAndEdges:o,multiSelectionActive:a}=Q.getState(),l=n.find(e=>e.id===t);l&&(M&&(Q.setState({nodesSelectionActive:!1}),l.selected&&a?(o({nodes:[],edges:[l]}),U.current?.blur()):r([t])),i&&i(e,l))},onDoubleClick:et,onContextMenu:en,onMouseEnter:er,onMouseMove:eo,onMouseLeave:ei,onKeyDown:V?e=>{if(!q&&nI.includes(e.key)&&M){let{unselectNodesAndEdges:n,addSelectedEdges:r,edges:o}=Q.getState();"Escape"===e.key?(U.current?.blur(),n({edges:[o.find(e=>e.id===t)]})):r([t])}}:void 0,tabIndex:V?0:void 0,role:V?"button":"img","data-testid":`rf__edge-${t}`,"aria-label":null===H?void 0:H||`Edge from ${g} to ${y}`,"aria-describedby":V?`${rP}-${L}`:void 0,ref:U},!W&&x.default.createElement(e,{id:t,source:g,target:y,selected:l,animated:s,label:u,labelStyle:c,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,data:o,style:m,sourceX:v,sourceY:b,targetX:w,targetY:S,sourcePosition:_,targetPosition:E,sourceHandleId:k,targetHandleId:C,markerStart:J,markerEnd:ee,pathOptions:X,interactionWidth:Y}),F&&x.default.createElement(x.default.Fragment,null,("source"===F||!0===F)&&x.default.createElement(oE,{position:_,centerX:v,centerY:b,radius:P,onMouseDown:e=>ea(e,!0),onMouseEnter:el,onMouseOut:es,type:"source"}),("target"===F||!0===F)&&x.default.createElement(oE,{position:E,centerX:w,centerY:S,radius:P,onMouseDown:e=>ea(e,!1),onMouseEnter:el,onMouseOut:es,type:"target"})))};return t.displayName="EdgeWrapper",(0,x.memo)(t)};function ok(e){let t={default:oN(e.default||n1),straight:oN(e.bezier||nG),step:oN(e.step||nW),smoothstep:oN(e.step||nZ),simplebezier:oN(e.simplebezier||nX)},n=Object.keys(e).filter(e=>!["default","bezier"].includes(e)).reduce((t,n)=>(t[n]=oN(e[n]||n1),t),{});return{...t,...n}}function oC(e,t,n=null){let r=(n?.x||0)+t.x,o=(n?.y||0)+t.y,i=n?.width||t.width,a=n?.height||t.height;switch(e){case p.Top:return{x:r+i/2,y:o};case p.Right:return{x:r+i,y:o+a/2};case p.Bottom:return{x:r+i/2,y:o+a};case p.Left:return{x:r,y:o+a/2}}}function oA(e,t){return e?1!==e.length&&t?t&&e.find(e=>e.id===t)||null:e[0]:null}function o$(e){let t=e?.[nR]?.handleBounds||null,n=t&&e?.width&&e?.height&&void 0!==e?.positionAbsolute?.x&&void 0!==e?.positionAbsolute?.y;return[{x:e?.positionAbsolute?.x||0,y:e?.positionAbsolute?.y||0,width:e?.width||0,height:e?.height||0},t,!!n]}let oz=[{level:0,isMaxLevel:!0,edges:[]}],oR={[h.Arrow]:({color:e="none",strokeWidth:t=1})=>x.default.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[h.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>x.default.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},oI=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:l="auto-start-reverse"})=>{let s,u=(s=ny(),(0,x.useMemo)(()=>{let e;return Object.prototype.hasOwnProperty.call(oR,t)?oR[t]:(s.getState().onError?.("009",(e=t,`Marker type "${e}" doesn't exist.`)),null)},[t]));return u?x.default.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:l,refX:"0",refY:"0"},x.default.createElement(u,{color:n,strokeWidth:a})):null},oP=({defaultColor:e,rfId:t})=>{let n=ng((0,x.useCallback)((({defaultColor:e,rfId:t})=>n=>{let r=[];return n.edges.reduce((n,o)=>([o.markerStart,o.markerEnd].forEach(o=>{if(o&&"object"==typeof o){let i=n5(o,t);r.includes(i)||(n.push({id:i,color:o.color||e,...o}),r.push(i))}}),n),[]).sort((e,t)=>e.id.localeCompare(t.id))})({defaultColor:e,rfId:t}),[e,t]),(e,t)=>!(e.length!==t.length||e.some((e,n)=>e.id!==t[n].id)));return x.default.createElement("defs",null,n.map(e=>x.default.createElement(oI,{id:e.id,key:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient})))};oP.displayName="MarkerDefinitions";var oO=(0,x.memo)(oP);let oj=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),oD=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:r,edgeTypes:o,noPanClassName:i,onEdgeContextMenu:a,onEdgeMouseEnter:l,onEdgeMouseMove:s,onEdgeMouseLeave:c,onEdgeClick:d,onEdgeDoubleClick:f,onReconnect:h,onReconnectStart:m,onReconnectEnd:g,reconnectRadius:y,children:v,disableKeyboardA11y:b})=>{let{edgesFocusable:w,edgesUpdatable:S,elementsSelectable:_,width:E,height:M,connectionMode:N,nodeInternals:k,onError:C}=ng(oj,V),A=function(e,t,n=!1){let r=-1,o=Object.entries(e.reduce((e,o)=>{let i=nz(o.zIndex),a=i?o.zIndex:0;if(n){let e=t.get(o.target),n=t.get(o.source),r=o.selected||e?.selected||n?.selected,l=Math.max(n?.[nR]?.z||0,e?.[nR]?.z||0,1e3);a=(i?o.zIndex:0)+(r?l:0)}return e[a]?e[a].push(o):e[a]=[o],r=a>r?a:r,e},{})).map(([e,t])=>{let n=+e;return{edges:t,level:n,isMaxLevel:n===r}});return 0===o.length?oz:o}(ng((0,x.useCallback)(e=>t?e.edges.filter(t=>{let n=k.get(t.source),r=k.get(t.target);return n?.width&&n?.height&&r?.width&&r?.height&&function({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:r,targetWidth:o,targetHeight:i,width:a,height:l,transform:s}){let u={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+r,t.y+i)};u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);let c=nC({x:(0-s[0])/s[2],y:(0-s[1])/s[2],width:a/s[2],height:l/s[2]});return Math.ceil(Math.max(0,Math.min(c.x2,u.x2)-Math.max(c.x,u.x))*Math.max(0,Math.min(c.y2,u.y2)-Math.max(c.y,u.y)))>0}({sourcePos:n.positionAbsolute||{x:0,y:0},targetPos:r.positionAbsolute||{x:0,y:0},sourceWidth:n.width,sourceHeight:n.height,targetWidth:r.width,targetHeight:r.height,width:e.width,height:e.height,transform:e.transform})}):e.edges,[t,k])),k,n);return E?x.default.createElement(x.default.Fragment,null,A.map(({level:t,edges:n,isMaxLevel:v})=>x.default.createElement("svg",{key:t,style:{zIndex:t},width:E,height:M,className:"react-flow__edges react-flow__container"},v&&x.default.createElement(oO,{defaultColor:e,rfId:r}),x.default.createElement("g",null,n.map(e=>{let t,n,v,[E,M,A]=o$(k.get(e.source)),[$,z,R]=o$(k.get(e.target));if(!A||!R)return null;let P=e.type||"default";o[P]||(C?.("011",(t=P,`Edge type "${t}" not found. Using fallback type "default".`)),P="default");let O=o[P]||o.default,j=N===u.Strict?z.target:(z.target??[]).concat(z.source??[]),D=oA(M.source,e.sourceHandle),T=oA(j,e.targetHandle),B=D?.position||p.Bottom,L=T?.position||p.Top,H=!!(e.focusable||w&&void 0===e.focusable),V=e.reconnectable||e.updatable;if(!D||!T){let t,n;return C?.("008",(t=D,n=e,`Couldn't create edge for ${!t?"source":"target"} handle id: "${!t?n.sourceHandle:n.targetHandle}", edge id: ${n.id}.`)),null}let{sourceX:F,sourceY:X,targetX:Y,targetY:q}=(n=oC(B,E,D),v=oC(L,$,T),{sourceX:n.x,sourceY:n.y,targetX:v.x,targetY:v.y});return x.default.createElement(O,{key:e.id,id:e.id,className:I([e.className,i]),type:P,data:e.data,selected:!!e.selected,animated:!!e.animated,hidden:!!e.hidden,label:e.label,labelStyle:e.labelStyle,labelShowBg:e.labelShowBg,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,source:e.source,target:e.target,sourceHandleId:e.sourceHandle,targetHandleId:e.targetHandle,markerEnd:e.markerEnd,markerStart:e.markerStart,sourceX:F,sourceY:X,targetX:Y,targetY:q,sourcePosition:B,targetPosition:L,elementsSelectable:_,onContextMenu:a,onMouseEnter:l,onMouseMove:s,onMouseLeave:c,onClick:d,onEdgeDoubleClick:f,onReconnect:h,onReconnectStart:m,onReconnectEnd:g,reconnectRadius:y,rfId:r,ariaLabel:e.ariaLabel,isFocusable:H,isReconnectable:void 0!==h&&(V||S&&void 0===V),pathOptions:"pathOptions"in e?e.pathOptions:void 0,interactionWidth:e.interactionWidth,disableKeyboardA11y:b})})))),v):null};oD.displayName="EdgeRenderer";var oT=(0,x.memo)(oD);let oB=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function oL({children:e}){let t=ng(oB);return x.default.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}let oH={[p.Left]:p.Right,[p.Right]:p.Left,[p.Top]:p.Bottom,[p.Bottom]:p.Top},oV=({nodeId:e,handleType:t,style:n,type:r=f.Bezier,CustomComponent:o,connectionStatus:i})=>{let{fromNode:a,handleId:l,toX:s,toY:c,connectionMode:d}=ng((0,x.useCallback)(t=>({fromNode:t.nodeInternals.get(e),handleId:t.connectionHandleId,toX:(t.connectionPosition.x-t.transform[0])/t.transform[2],toY:(t.connectionPosition.y-t.transform[1])/t.transform[2],connectionMode:t.connectionMode}),[e]),V),h=a?.[nR]?.handleBounds,p=h?.[t];if(d===u.Loose&&(p=p||h?.["source"===t?"target":"source"]),!a||!p)return null;let m=l?p.find(e=>e.id===l):p[0],g=m?m.x+m.width/2:(a.width??0)/2,y=m?m.y+m.height/2:a.height??0,v=(a.positionAbsolute?.x??0)+g,b=(a.positionAbsolute?.y??0)+y,w=m?.position,S=w?oH[w]:null;if(!w||!S)return null;if(o)return x.default.createElement(o,{connectionLineType:r,connectionLineStyle:n,fromNode:a,fromHandle:m,fromX:v,fromY:b,toX:s,toY:c,fromPosition:w,toPosition:S,connectionStatus:i});let _="",E={sourceX:v,sourceY:b,sourcePosition:w,targetX:s,targetY:c,targetPosition:S};return r===f.Bezier?[_]=n0(E):r===f.Step?[_]=nK({...E,borderRadius:0}):r===f.SmoothStep?[_]=nK(E):r===f.SimpleBezier?[_]=nF(E):_=`M${v},${b} ${s},${c}`,x.default.createElement("path",{d:_,fill:"none",className:"react-flow__connection-path",style:n})};oV.displayName="ConnectionLine";let oF=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function oX({containerStyle:e,style:t,type:n,component:r}){let{nodeId:o,handleType:i,nodesConnectable:a,width:l,height:s,connectionStatus:u}=ng(oF,V);return o&&i&&l&&a?x.default.createElement("svg",{style:e,width:l,height:s,className:"react-flow__edges react-flow__connectionline react-flow__container"},x.default.createElement("g",{className:I(["react-flow__connection",u])},x.default.createElement(oV,{nodeId:o,handleType:i,style:t,type:n,CustomComponent:r,connectionStatus:u}))):null}function oY(e,t){return(0,x.useRef)(null),ny(),(0,x.useMemo)(()=>t(e),[e])}let oq=({nodeTypes:e,edgeTypes:t,onMove:n,onMoveStart:r,onMoveEnd:o,onInit:i,onNodeClick:a,onEdgeClick:l,onNodeDoubleClick:s,onEdgeDoubleClick:u,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:f,onNodeContextMenu:h,onSelectionContextMenu:p,onSelectionStart:m,onSelectionEnd:g,connectionLineType:y,connectionLineStyle:v,connectionLineComponent:b,connectionLineContainerStyle:w,selectionKeyCode:S,selectionOnDrag:_,selectionMode:E,multiSelectionKeyCode:M,panActivationKeyCode:N,zoomActivationKeyCode:k,deleteKeyCode:C,onlyRenderVisibleElements:A,elementsSelectable:$,selectNodesOnDrag:z,defaultViewport:R,translateExtent:I,minZoom:P,maxZoom:O,preventScrolling:j,defaultMarkerColor:D,zoomOnScroll:T,zoomOnPinch:B,panOnScroll:L,panOnScrollSpeed:H,panOnScrollMode:V,zoomOnDoubleClick:F,panOnDrag:X,onPaneClick:Y,onPaneMouseEnter:q,onPaneMouseMove:U,onPaneMouseLeave:K,onPaneScroll:Z,onPaneContextMenu:W,onEdgeContextMenu:G,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,onReconnect:et,onReconnectStart:en,onReconnectEnd:er,reconnectRadius:eo,noDragClassName:ei,noWheelClassName:ea,noPanClassName:el,elevateEdgesOnSelect:es,disableKeyboardA11y:eu,nodeOrigin:ec,nodeExtent:ed,rfId:ef})=>{let eh,ep,em=oY(e,ox),eg=oY(t,ok);return eh=rK(),ep=(0,x.useRef)(!1),(0,x.useEffect)(()=>{!ep.current&&eh.viewportInitialized&&i&&(setTimeout(()=>i(eh),1),ep.current=!0)},[i,eh.viewportInitialized]),x.default.createElement(ov,{onPaneClick:Y,onPaneMouseEnter:q,onPaneMouseMove:U,onPaneMouseLeave:K,onPaneContextMenu:W,onPaneScroll:Z,deleteKeyCode:C,selectionKeyCode:S,selectionOnDrag:_,selectionMode:E,onSelectionStart:m,onSelectionEnd:g,multiSelectionKeyCode:M,panActivationKeyCode:N,zoomActivationKeyCode:k,elementsSelectable:$,onMove:n,onMoveStart:r,onMoveEnd:o,zoomOnScroll:T,zoomOnPinch:B,zoomOnDoubleClick:F,panOnScroll:L,panOnScrollSpeed:H,panOnScrollMode:V,panOnDrag:X,defaultViewport:R,translateExtent:I,minZoom:P,maxZoom:O,onSelectionContextMenu:p,preventScrolling:j,noDragClassName:ei,noWheelClassName:ea,noPanClassName:el,disableKeyboardA11y:eu},x.default.createElement(oL,null,x.default.createElement(oT,{edgeTypes:eg,onEdgeClick:l,onEdgeDoubleClick:u,onlyRenderVisibleElements:A,onEdgeContextMenu:G,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,onReconnect:et,onReconnectStart:en,onReconnectEnd:er,reconnectRadius:eo,defaultMarkerColor:D,noPanClassName:el,elevateEdgesOnSelect:!!es,disableKeyboardA11y:eu,rfId:ef},x.default.createElement(oX,{style:v,type:y,component:b,containerStyle:w})),x.default.createElement("div",{className:"react-flow__edgelabel-renderer"}),x.default.createElement(oS,{nodeTypes:em,onNodeClick:a,onNodeDoubleClick:s,onNodeMouseEnter:c,onNodeMouseMove:d,onNodeMouseLeave:f,onNodeContextMenu:h,selectNodesOnDrag:z,onlyRenderVisibleElements:A,noPanClassName:el,noDragClassName:ei,disableKeyboardA11y:eu,nodeOrigin:ec,nodeExtent:ed,rfId:ef})))};oq.displayName="GraphView";var oU=(0,x.memo)(oq);let oK=[[-1/0,-1/0],[1/0,1/0]],oZ={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:oK,nodeExtent:oK,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:u.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:nP,isValidConnection:void 0},oW=({children:e})=>{let t,n,r=(0,x.useRef)(null);return r.current||(t=(e,t)=>({...oZ,setNodes:n=>{let{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:rV(n,r,o,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{let{defaultEdgeOptions:r={}}=t();e({edges:n.map(e=>({...r,...e}))})},setDefaultNodesAndEdges:(n,r)=>{let o=void 0!==n,i=void 0!==r;e({nodeInternals:o?rV(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map,edges:i?r:[],hasDefaultNodes:o,hasDefaultEdges:i})},updateNodeDimensions:n=>{let{onNodesChange:r,nodeInternals:o,fitViewOnInit:i,fitViewOnInitDone:a,fitViewOnInitOptions:l,domNode:s,nodeOrigin:u}=t(),c=s?.querySelector(".react-flow__viewport");if(!c)return;let d=window.getComputedStyle(c),{m22:f}=new window.DOMMatrixReadOnly(d.transform),h=n.reduce((e,t)=>{let n=o.get(t.id);if(n?.hidden)o.set(n.id,{...n,[nR]:{...n[nR],handleBounds:void 0}});else if(n){let r=nS(t.nodeElement);r.width&&r.height&&(n.width!==r.width||n.height!==r.height||t.forceUpdate)&&(o.set(n.id,{...n,[nR]:{...n[nR],handleBounds:{source:oa(".source",t.nodeElement,f,u),target:oa(".target",t.nodeElement,f,u)}},...r}),e.push({id:n.id,type:"dimensions",dimensions:r}))}return e},[]);rH(o,u);let p=a||i&&!a&&rF(t,{initial:!0,...l});e({nodeInternals:new Map(o),fitViewOnInitDone:p}),h?.length>0&&r?.(h)},updateNodePositions:(e,n=!0,r=!1)=>{let{triggerNodeChanges:o}=t();o(e.map(e=>{let t={id:e.id,type:"position",dragging:r};return n&&(t.positionAbsolute=e.positionAbsolute,t.position=e.position),t}))},triggerNodeChanges:n=>{let{onNodesChange:r,nodeInternals:o,hasDefaultNodes:i,nodeOrigin:a,getNodes:l,elevateNodesOnSelect:s}=t();n?.length&&(i&&e({nodeInternals:rV(r8(n,l()),o,a,s)}),r?.(n))},addSelectedNodes:n=>{let r,{multiSelectionActive:o,edges:i,getNodes:a}=t(),l=null;o?r=n.map(e=>r9(e,!0)):(r=r7(a(),n),l=r7(i,[])),rX({changedNodes:r,changedEdges:l,get:t,set:e})},addSelectedEdges:n=>{let r,{multiSelectionActive:o,edges:i,getNodes:a}=t(),l=null;o?r=n.map(e=>r9(e,!0)):(r=r7(i,n),l=r7(a(),[])),rX({changedNodes:l,changedEdges:r,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{let{edges:o,getNodes:i}=t();rX({changedNodes:(n||i()).map(e=>(e.selected=!1,r9(e.id,!1))),changedEdges:(r||o).map(e=>r9(e.id,!1)),get:t,set:e})},setMinZoom:n=>{let{d3Zoom:r,maxZoom:o}=t();r?.scaleExtent([n,o]),e({minZoom:n})},setMaxZoom:n=>{let{d3Zoom:r,minZoom:o}=t();r?.scaleExtent([o,n]),e({maxZoom:n})},setTranslateExtent:n=>{t().d3Zoom?.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{let{edges:n,getNodes:r}=t();rX({changedNodes:r().filter(e=>e.selected).map(e=>r9(e.id,!1)),changedEdges:n.filter(e=>e.selected).map(e=>r9(e.id,!1)),get:t,set:e})},setNodeExtent:n=>{let{nodeInternals:r}=t();r.forEach(e=>{e.positionAbsolute=nE(e.position,n)}),e({nodeExtent:n,nodeInternals:new Map(r)})},panBy:e=>{let{transform:n,width:r,height:o,d3Zoom:i,d3Selection:a,translateExtent:l}=t();if(!i||!a||!e.x&&!e.y)return!1;let s=t9.translate(n[0]+e.x,n[1]+e.y).scale(n[2]),u=i?.constrain()(s,[[0,0],[r,o]],l);return i.transform(a,u),n[0]!==u.x||n[1]!==u.y||n[2]!==u.k},cancelConnection:()=>e({connectionNodeId:oZ.connectionNodeId,connectionHandleId:oZ.connectionHandleId,connectionHandleType:oZ.connectionHandleType,connectionStatus:oZ.connectionStatus,connectionStartHandle:oZ.connectionStartHandle,connectionEndHandle:oZ.connectionEndHandle}),reset:()=>e({...oZ})}),n=Object.is,r.current=t?H(t,n):H),x.default.createElement(np,{value:r.current},e)};oW.displayName="ReactFlowProvider";let oG=({children:e})=>(0,x.useContext)(nh)?x.default.createElement(x.default.Fragment,null,e):x.default.createElement(oW,null,e);oG.displayName="ReactFlowWrapper";let oQ={input:ry,default:rm,output:rx,group:rb},oJ={default:n1,straight:nG,step:nW,smoothstep:nZ,simplebezier:nX},o0=[0,0],o1=[15,15],o2={x:0,y:0,zoom:1},o3={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},o5=(0,x.forwardRef)(({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i=oQ,edgeTypes:a=oJ,onNodeClick:l,onEdgeClick:s,onInit:h,onMove:p,onMoveStart:m,onMoveEnd:g,onConnect:y,onConnectStart:v,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:S,onNodeMouseEnter:_,onNodeMouseMove:E,onNodeMouseLeave:M,onNodeContextMenu:N,onNodeDoubleClick:k,onNodeDragStart:C,onNodeDrag:A,onNodeDragStop:$,onNodesDelete:z,onEdgesDelete:R,onSelectionChange:P,onSelectionDragStart:O,onSelectionDrag:j,onSelectionDragStop:D,onSelectionContextMenu:T,onSelectionStart:B,onSelectionEnd:L,connectionMode:H=u.Strict,connectionLineType:V=f.Bezier,connectionLineStyle:F,connectionLineComponent:X,connectionLineContainerStyle:Y,deleteKeyCode:q="Backspace",selectionKeyCode:U="Shift",selectionOnDrag:K=!1,selectionMode:Z=d.Full,panActivationKeyCode:W="Space",multiSelectionKeyCode:G=nD()?"Meta":"Control",zoomActivationKeyCode:Q=nD()?"Meta":"Control",snapToGrid:J=!1,snapGrid:ee=o1,onlyRenderVisibleElements:et=!1,selectNodesOnDrag:en=!0,nodesDraggable:er,nodesConnectable:eo,nodesFocusable:ei,nodeOrigin:ea=o0,edgesFocusable:el,edgesUpdatable:es,elementsSelectable:eu,defaultViewport:ec=o2,minZoom:ed=.5,maxZoom:ef=2,translateExtent:eh=oK,preventScrolling:ep=!0,nodeExtent:em,defaultMarkerColor:eg="#b1b1b7",zoomOnScroll:ey=!0,zoomOnPinch:ev=!0,panOnScroll:ex=!1,panOnScrollSpeed:eb=.5,panOnScrollMode:ew=c.Free,zoomOnDoubleClick:eS=!0,panOnDrag:e_=!0,onPaneClick:eE,onPaneMouseEnter:eM,onPaneMouseMove:eN,onPaneMouseLeave:ek,onPaneScroll:eC,onPaneContextMenu:eA,children:e$,onEdgeContextMenu:ez,onEdgeDoubleClick:eR,onEdgeMouseEnter:eI,onEdgeMouseMove:eP,onEdgeMouseLeave:eO,onEdgeUpdate:ej,onEdgeUpdateStart:eD,onEdgeUpdateEnd:eT,onReconnect:eB,onReconnectStart:eL,onReconnectEnd:eH,reconnectRadius:eV=10,edgeUpdaterRadius:eF=10,onNodesChange:eX,onEdgesChange:eY,noDragClassName:eq="nodrag",noWheelClassName:eU="nowheel",noPanClassName:eK="nopan",fitView:eZ=!1,fitViewOptions:eW,connectOnClick:eG=!0,attributionPosition:eQ,proOptions:eJ,defaultEdgeOptions:e0,elevateNodesOnSelect:e1=!0,elevateEdgesOnSelect:e2=!1,disableKeyboardA11y:e3=!1,autoPanOnConnect:e5=!0,autoPanOnNodeDrag:e4=!0,connectionRadius:e6=20,isValidConnection:e8,onError:e9,style:e7,id:te,nodeDragThreshold:tt,...tn},tr)=>{let to=te||"1";return x.default.createElement("div",{...tn,style:{...e7,...o3},ref:tr,className:I(["react-flow",o]),"data-testid":"rf__wrapper",id:te},x.default.createElement(oG,null,x.default.createElement(oU,{onInit:h,onMove:p,onMoveStart:m,onMoveEnd:g,onNodeClick:l,onEdgeClick:s,onNodeMouseEnter:_,onNodeMouseMove:E,onNodeMouseLeave:M,onNodeContextMenu:N,onNodeDoubleClick:k,nodeTypes:i,edgeTypes:a,connectionLineType:V,connectionLineStyle:F,connectionLineComponent:X,connectionLineContainerStyle:Y,selectionKeyCode:U,selectionOnDrag:K,selectionMode:Z,deleteKeyCode:q,multiSelectionKeyCode:G,panActivationKeyCode:W,zoomActivationKeyCode:Q,onlyRenderVisibleElements:et,selectNodesOnDrag:en,defaultViewport:ec,translateExtent:eh,minZoom:ed,maxZoom:ef,preventScrolling:ep,zoomOnScroll:ey,zoomOnPinch:ev,zoomOnDoubleClick:eS,panOnScroll:ex,panOnScrollSpeed:eb,panOnScrollMode:ew,panOnDrag:e_,onPaneClick:eE,onPaneMouseEnter:eM,onPaneMouseMove:eN,onPaneMouseLeave:ek,onPaneScroll:eC,onPaneContextMenu:eA,onSelectionContextMenu:T,onSelectionStart:B,onSelectionEnd:L,onEdgeContextMenu:ez,onEdgeDoubleClick:eR,onEdgeMouseEnter:eI,onEdgeMouseMove:eP,onEdgeMouseLeave:eO,onReconnect:eB??ej,onReconnectStart:eL??eD,onReconnectEnd:eH??eT,reconnectRadius:eV??eF,defaultMarkerColor:eg,noDragClassName:eq,noWheelClassName:eU,noPanClassName:eK,elevateEdgesOnSelect:e2,rfId:to,disableKeyboardA11y:e3,nodeOrigin:ea,nodeExtent:em}),x.default.createElement(r$,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:y,onConnectStart:v,onConnectEnd:b,onClickConnectStart:w,onClickConnectEnd:S,nodesDraggable:er,nodesConnectable:eo,nodesFocusable:ei,edgesFocusable:el,edgesUpdatable:es,elementsSelectable:eu,elevateNodesOnSelect:e1,minZoom:ed,maxZoom:ef,nodeExtent:em,onNodesChange:eX,onEdgesChange:eY,snapToGrid:J,snapGrid:ee,connectionMode:H,translateExtent:eh,connectOnClick:eG,defaultEdgeOptions:e0,fitView:eZ,fitViewOptions:eW,onNodesDelete:z,onEdgesDelete:R,onNodeDragStart:C,onNodeDrag:A,onNodeDragStop:$,onSelectionDrag:j,onSelectionDragStart:O,onSelectionDragStop:D,noPanClassName:eK,nodeOrigin:ea,rfId:to,autoPanOnConnect:e5,autoPanOnNodeDrag:e4,onError:e9,connectionRadius:e6,isValidConnection:e8,nodeDragThreshold:tt}),x.default.createElement(rN,{onSelectionChange:P}),e$,x.default.createElement(nb,{proOptions:eJ,position:eQ}),x.default.createElement(rD,{rfId:to,disableKeyboardA11y:e3})))});function o4(e){return t=>{let[n,r]=(0,x.useState)(t),o=(0,x.useCallback)(t=>r(n=>e(t,n)),[]);return[n,r,o]}}o5.displayName="ReactFlow";let o6=o4(r8),o8=o4(function(e,t){return r6(e,t)});function o9(){return x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},x.default.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function o7(){return x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},x.default.createElement("path",{d:"M0 0h32v4.2H0z"}))}function ie(){return x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},x.default.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function it(){return x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},x.default.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function ir(){return x.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},x.default.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}let io=({children:e,className:t,...n})=>x.default.createElement("button",{type:"button",className:I(["react-flow__controls-button",t]),...n},e);io.displayName="ControlButton";let ii=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),ia=({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:a,onFitView:l,onInteractiveChange:s,className:u,children:c,position:d="bottom-left"})=>{let f=ny(),[h,p]=(0,x.useState)(!1),{isInteractive:m,minZoomReached:g,maxZoomReached:y}=ng(ii,V),{zoomIn:v,zoomOut:b,fitView:w}=rK();return((0,x.useEffect)(()=>{p(!0)},[]),h)?x.default.createElement(nx,{className:I(["react-flow__controls",u]),position:d,style:e,"data-testid":"rf__controls"},t&&x.default.createElement(x.default.Fragment,null,x.default.createElement(io,{onClick:()=>{v(),i?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:y},x.default.createElement(o9,null)),x.default.createElement(io,{onClick:()=>{b(),a?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:g},x.default.createElement(o7,null))),n&&x.default.createElement(io,{className:"react-flow__controls-fitview",onClick:()=>{w(o),l?.()},title:"fit view","aria-label":"fit view"},x.default.createElement(ie,null)),r&&x.default.createElement(io,{className:"react-flow__controls-interactive",onClick:()=>{f.setState({nodesDraggable:!m,nodesConnectable:!m,elementsSelectable:!m}),s?.(!m)},title:"toggle interactivity","aria-label":"toggle interactivity"},m?x.default.createElement(ir,null):x.default.createElement(it,null)),c):null};ia.displayName="Controls";var il=(0,x.memo)(ia);function is({color:e,dimensions:t,lineWidth:n}){return x.default.createElement("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function iu({color:e,radius:t}){return x.default.createElement("circle",{cx:t,cy:t,r:t,fill:e})}(l=m||(m={})).Lines="lines",l.Dots="dots",l.Cross="cross";let ic={[m.Dots]:"#91919a",[m.Lines]:"#eee",[m.Cross]:"#e2e2e2"},id={[m.Dots]:1,[m.Lines]:1,[m.Cross]:6},ih=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function ip({id:e,variant:t=m.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=2,color:a,style:l,className:s}){let u=(0,x.useRef)(null),{transform:c,patternId:d}=ng(ih,V),f=a||ic[t],h=r||id[t],p=t===m.Dots,g=t===m.Cross,y=Array.isArray(n)?n:[n,n],v=[y[0]*c[2]||1,y[1]*c[2]||1],b=h*c[2],w=g?[b,b]:v,S=p?[b/i,b/i]:[w[0]/i,w[1]/i];return x.default.createElement("svg",{className:I(["react-flow__background",s]),style:{...l,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:u,"data-testid":"rf__background"},x.default.createElement("pattern",{id:d+e,x:c[0]%v[0],y:c[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`},p?x.default.createElement(iu,{color:f,radius:b/i}):x.default.createElement(is,{dimensions:w,color:f,lineWidth:o})),x.default.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${d+e})`}))}ip.displayName="Background";var im=(0,x.memo)(ip),ig=e.i(10743),iy=e.i(59786),iv=e.i(90672),ix=e.i(21446),ib=e.i(43359),iw=e.i(42864),iS=e.i(2810);let i_=({bounds:e,viewport:t})=>{let n={x:e.x*t.zoom+t.x,y:e.y*t.zoom+t.y,width:e.width*t.zoom,height:e.height*t.zoom};return(0,g.jsx)("div",{style:{position:"absolute",left:n.x-50*t.zoom,top:n.y-50*t.zoom,width:n.width+100*t.zoom,height:n.height+100*t.zoom,border:`${3*t.zoom}px solid #e2e8f0`,borderRadius:`${12*t.zoom}px`,backgroundColor:"rgba(248, 250, 252, 0.5)",pointerEvents:"none",zIndex:0}})},iE=(0,x.memo)(({data:e})=>{let t=e.member,n=e.spouse,{avatarUrl:r}=S(t?.avatarImageId);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(rh,{type:"target",position:p.Top}),(0,g.jsx)(ig.Card,{className:"w-40 h-40 hover:shadow-lg transition-all cursor-pointer border hover:border-primary",onClick:()=>e.onClick?.(t.id),children:(0,g.jsxs)(ig.CardContent,{className:"p-1 pt-0 flex flex-col h-full -mt-1 ml-1",children:[(0,g.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0 mb-1.5 ml-2",children:[(0,g.jsxs)(iy.Avatar,{className:"h-14 w-14 flex-shrink-0",children:[r&&(0,g.jsx)(iy.AvatarImage,{src:r,alt:t.fullName,className:"object-cover"}),(0,g.jsx)(iy.AvatarFallback,{className:"MALE"===t.gender?"bg-blue-100 text-blue-700":"bg-pink-100 text-pink-700",children:(0,g.jsx)(ix.User,{className:"h-6 w-6"})})]}),(0,g.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,g.jsx)("h3",{className:"font-semibold text-sm truncate leading-tight",children:t.fullName}),(0,g.jsxs)(iv.Badge,{variant:"outline",className:"text-[9px] px-1 py-0 mt-0.5",children:["第",t.generation,"世"]})]})]}),(0,g.jsxs)("div",{className:"space-y-0.5 flex-shrink-0 text-xs text-muted-foreground",children:[t.birthDate&&(0,g.jsxs)("p",{className:"truncate leading-tight",children:[new Date(t.birthDate).getFullYear(),t.deathDate&&` - ${new Date(t.deathDate).getFullYear()}`]}),t.birthPlace&&(0,g.jsx)("p",{className:"truncate leading-tight",children:t.birthPlace})]}),(0,g.jsx)("div",{className:"mt-auto pt-1.5 border-t",children:n&&(0,g.jsxs)("div",{className:"flex items-center gap-1 cursor-pointer bg-muted/50 hover:bg-muted border border-transparent hover:border-blue-500 rounded px-1.5 py-1 transition-all hover:shadow-sm",onClick:t=>{t.stopPropagation(),e.onClick?.(n.id)},children:[(0,g.jsx)(ib.Users,{className:"h-3 w-3 text-muted-foreground flex-shrink-0 group-hover:text-foreground"}),(0,g.jsx)("span",{className:"text-xs text-muted-foreground truncate leading-tight group-hover:text-foreground font-medium",children:n.fullName})]})})]})}),(0,g.jsx)(rh,{type:"source",position:p.Bottom})]})});iE.displayName="MemberNode";let iM={x:0,y:0,zoom:.8},iN=({members:t,rootId:n,onMemberClick:r,onExport:o})=>{let[i,a,l]=o6([]),[s,u,c]=o8([]),[d,f]=(0,x.useState)({x:0,y:0,width:0,height:0}),[h,p]=(0,x.useState)({x:0,y:0,zoom:.8}),{getNodes:m,getViewport:y}=rK(),v=(0,x.useMemo)(()=>({memberNode:iE}),[]),b=(0,x.useCallback)(e=>{p(e)},[]),w=(0,x.useCallback)(async()=>{try{let t=await e.A(91205),n=document.querySelector(".react-flow");if(!n)return void console.error("ReactFlow container not found");let r=n.querySelector(".react-flow__viewport");if(!r)return void console.error("Viewport not found");let i=n.style.overflow,a=n.style.width,l=n.style.height;n.style.overflow="visible",n.style.width="auto",n.style.height="auto",await new Promise(e=>setTimeout(e,100));let s=r.querySelectorAll(".react-flow__node"),u=n.querySelectorAll("svg path, svg g"),c=1/0,d=1/0,f=-1/0,h=-1/0;s.forEach(e=>{let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();c=Math.min(c,t.left-r.left),d=Math.min(d,t.top-r.top),f=Math.max(f,t.right-r.left),h=Math.max(h,t.bottom-r.top)}),u.forEach(e=>{let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();c=Math.min(c,t.left-r.left),d=Math.min(d,t.top-r.top),f=Math.max(f,t.right-r.left),h=Math.max(h,t.bottom-r.top)}),c-=100,d-=100,f+=100,h+=100;let p=f-c,m=h-d,g=n.cloneNode(!0);g.querySelectorAll(".react-flow__controls, .react-flow__background, .react-flow__panel").forEach(e=>e.remove()),g.querySelectorAll("*").forEach(e=>{e.style.border="none",e.style.outline="none",e.style.boxShadow="none"}),g.style.position="fixed",g.style.left="-9999px",g.style.top="0",g.style.width=`${p}px`,g.style.height=`${m}px`,g.style.background="#ffffff",g.style.border="none",g.style.borderRadius="0",g.style.overflow="visible";let y=g.querySelector(".react-flow__viewport");if(y){let e=y.style.transform||"",t=e.match(/translate\(([^,]+),\s*([^)]+)\)\s*scale\(([^)]+)\)/);if(t){let e=parseFloat(t[1]),n=parseFloat(t[2]),r=parseFloat(t[3]),o=e-c,i=n-d;y.style.transform=`translate(${o}px, ${i}px) scale(${r})`}else y.style.transform=`${e} translate(${-c}px, ${-d}px)`}document.body.appendChild(g),await new Promise(e=>setTimeout(e,500));let v=await t.toBlob(g,{quality:.95,bgcolor:"#ffffff",width:p,height:m});document.body.removeChild(g),n.style.overflow=i,n.style.width=a,n.style.height=l;let x=URL.createObjectURL(v),b=document.createElement("a");b.href=x,b.download=`家谱图-${new Date().toISOString().split("T")[0]}.png`,document.body.appendChild(b),b.click(),document.body.removeChild(b),setTimeout(()=>URL.revokeObjectURL(x),100),o?.()}catch(t){console.error("导出PNG失败:",t);let e=document.querySelector(".react-flow");e&&(e.style.overflow="",e.style.width="",e.style.height="")}},[o]),S=(0,x.useCallback)(async()=>{try{let t=await e.A(91205),n=document.querySelector(".react-flow");if(!n)return void console.error("ReactFlow container not found");let r=n.querySelector(".react-flow__viewport");if(!r)return void console.error("Viewport not found");let i=r.querySelectorAll(".react-flow__node"),a=n.querySelectorAll("svg path, svg g"),l=1/0,s=1/0,u=-1/0,c=-1/0;i.forEach(e=>{let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();l=Math.min(l,t.left-r.left),s=Math.min(s,t.top-r.top),u=Math.max(u,t.right-r.left),c=Math.max(c,t.bottom-r.top)}),a.forEach(e=>{let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();l=Math.min(l,t.left-r.left),s=Math.min(s,t.top-r.top),u=Math.max(u,t.right-r.left),c=Math.max(c,t.bottom-r.top)}),l-=100,s-=100,u+=100,c+=100;let d=u-l,f=c-s,h=n.cloneNode(!0);h.querySelectorAll(".react-flow__controls, .react-flow__background, .react-flow__panel").forEach(e=>e.remove()),h.querySelectorAll("*").forEach(e=>{e.style.border="none",e.style.outline="none",e.style.boxShadow="none"}),h.style.position="fixed",h.style.left="-9999px",h.style.top="0",h.style.width=`${d}px`,h.style.height=`${f}px`,h.style.background="#ffffff",h.style.border="none",h.style.borderRadius="0",h.style.overflow="visible";let p=h.querySelector(".react-flow__viewport");if(p){let e=p.style.transform||"",t=e.match(/translate\(([^,]+),\s*([^)]+)\)\s*scale\(([^)]+)\)/);if(t){let e=parseFloat(t[1]),n=parseFloat(t[2]),r=parseFloat(t[3]),o=e-l,i=n-s;p.style.transform=`translate(${o}px, ${i}px) scale(${r})`}else p.style.transform=`${e} translate(${-l}px, ${-s}px)`}document.body.appendChild(h),await new Promise(e=>setTimeout(e,500));let m=await t.toBlob(h,{quality:.95,bgcolor:"#ffffff",width:d,height:f});document.body.removeChild(h);let g=URL.createObjectURL(m),y=window.open("","_blank");y&&(y.document.write(`
<!DOCTYPE html>
<html>
<head>
<title>家谱图</title>
<style>
body { margin: 0; padding: 20px; display: flex; justify-content: center; }
img { max-width: 100%; height: auto; }
@media print {
body { margin: 0; padding: 0; }
img { page-break-inside: avoid; }
}
</style>
</head>
<body>
<img src="${g}" alt="家谱图" />
</body>
</html>
`),y.document.close(),y.onload=()=>{setTimeout(()=>{y.print(),y.close(),URL.revokeObjectURL(g),o?.()},500)})}catch(e){console.error("导出PDF失败:",e)}},[o]);return(0,x.useEffect)(()=>{if(!n||!t[n])return;let e=[],o=[],i=new Map,l=new Map;Object.values(t).forEach(e=>{let t=e.generation||1;l.has(t)||l.set(t,[]),l.get(t).push(e)});let s=(e,n=new Set)=>{if(n.has(e))return 180;n.add(e);let r=Object.values(t).filter(t=>t.fatherId===e||t.motherId===e);if(0===r.length)return 180;let o=0;return r.forEach(e=>{o+=s(e.id,n)}),Math.max(o,180)},c=(n,a,l,u)=>{let d=t[n];if(!d)return a;let f=d.spouseIds?.[0]?t[d.spouseIds[0]]:null,h=Object.values(t).filter(e=>e.fatherId===n||e.motherId===n).sort((e,t)=>(e.birthDate?new Date(e.birthDate).getTime():0)-(t.birthDate?new Date(t.birthDate).getTime():0)),p=0,m=[];h.forEach(e=>{let t=s(e.id);m.push(t),p+=t});let g=a;if(h.length>0&&(g=a+p/2-80),e.push({id:n,type:"memberNode",position:{x:g,y:l},data:{member:d,spouse:f,onClick:r}}),i.set(n,{x:g,y:l}),0===h.length)return a+180;let y=a,v=l+180;return h.forEach((e,t)=>{c(e.id,y,v,u+1),o.push({id:`${n}-${e.id}`,source:n,target:e.id,type:"default",animated:!1,style:{stroke:"#94a3b8",strokeWidth:2}}),y+=m[t]}),g};if(c(n,400,50,1),a(e),u(o),e.length>0){let t=n9(e);f({x:t.x,y:t.y,width:t.width,height:t.height})}},[t,n,r,a,u]),(0,g.jsxs)("div",{className:"w-full h-full bg-background rounded-lg border relative",children:[d.width>0&&d.height>0&&(0,g.jsx)("div",{className:"absolute inset-0 pointer-events-none",children:(0,g.jsx)(i_,{bounds:d,viewport:h})}),(0,g.jsxs)("div",{className:"absolute top-4 right-4 z-10 flex gap-2",children:[(0,g.jsxs)("button",{onClick:w,className:"bg-primary text-primary-foreground px-3 py-2 rounded-md shadow-md hover:bg-primary/90 transition-colors flex items-center gap-2 text-sm",children:[(0,g.jsx)(iw.Download,{className:"h-4 w-4"}),"导出PNG"]}),(0,g.jsxs)("button",{onClick:S,className:"bg-secondary text-secondary-foreground px-3 py-2 rounded-md shadow-md hover:bg-secondary/90 transition-colors flex items-center gap-2 text-sm",children:[(0,g.jsx)(iS.FileText,{className:"h-4 w-4"}),"导出PDF"]})]}),(0,g.jsxs)(o5,{nodes:i,edges:s,onNodesChange:l,onEdgesChange:c,onMove:b,nodeTypes:v,fitView:!0,minZoom:.1,maxZoom:1.5,defaultViewport:iM,children:[(0,g.jsx)(im,{}),(0,g.jsx)(il,{})]})]})};function ik(e){return(0,g.jsx)(oW,{children:(0,g.jsx)(iN,{...e})})}var iC=e.i(9991),iA=e.i(78657);let i$=(0,M.default)("ZoomOut",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),iz=(0,M.default)("Move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]);function iR(){let{treeData:t}=(0,$.useFamily)(),n=(0,z.useRouter)(),r=(0,z.useSearchParams)(),[o,i]=(0,x.useState)("traditional");(0,x.useEffect)(()=>{let e=r.get("view");("org-chart"===e||"traditional"===e)&&i(e)},[r]);let[a,l]=(0,x.useState)(1),[s,u]=(0,x.useState)({x:0,y:0}),[c,d]=(0,x.useState)(!1),[f,h]=(0,x.useState)({x:0,y:0}),[p,m]=(0,x.useState)({x:0,y:0}),v=(0,x.useRef)(null),b=()=>{d(!1)},w=async()=>{if(v.current)try{let t={...s};u({x:0,y:0}),l(1),await new Promise(e=>setTimeout(e,800));let n=v.current.querySelector('div[style*="transform"]');if(!n)throw Error("找不到族谱容器");let r=n.querySelectorAll("div"),o=[];r.forEach(e=>{String(e.className||"").includes("bg-foreground")&&o.push(e)});let i=n.cloneNode(!0),c=i.querySelectorAll("div"),d=0;c.forEach(e=>{if(String(e.className||"").includes("bg-foreground")&&o[d]){let t=o[d],n=window.getComputedStyle(t);e.style.backgroundColor=n.backgroundColor,e.style.width=n.width,e.style.height=n.height,e.style.position="absolute",e.style.left=n.left,e.style.top=n.top,d++}}),i.querySelectorAll("*").forEach(e=>{let t=String(e.className||"");t.includes("bg-foreground")||t.includes("pointer-events-none")||(e.style.border="none",e.style.outline="none")}),i.style.position="fixed",i.style.left="-9999px",i.style.top="0",document.body.appendChild(i),await new Promise(e=>setTimeout(e,200));let f=await e.A(91205),h=await f.default.toBlob(i,{quality:.95,bgcolor:"#ffffff"});document.body.removeChild(i),u(t),l(a);let p=URL.createObjectURL(h),m=document.createElement("a");m.download=`family-tree-${new Date().toISOString().split("T")[0]}.png`,m.href=p,m.click(),setTimeout(()=>URL.revokeObjectURL(p),100)}catch(e){console.error("导出图片失败:",e)}};return t.rootId?(0,g.jsxs)("div",{className:"h-screen flex flex-col bg-muted/30 overflow-hidden",children:[(0,g.jsx)(y.SiteHeader,{}),"traditional"===o?(0,g.jsxs)("div",{className:"flex-1 relative",children:[(0,g.jsxs)("div",{className:"absolute top-4 left-4 z-20 flex flex-col gap-2 bg-background/80 backdrop-blur p-2 rounded-lg border shadow-sm",children:[(0,g.jsx)(iC.Button,{variant:"outline",size:"icon",onClick:()=>l(e=>Math.min(e+.1,2)),children:(0,g.jsx)(iA.ZoomIn,{className:"h-4 w-4"})}),(0,g.jsx)(iC.Button,{variant:"outline",size:"icon",onClick:()=>l(e=>Math.max(e-.1,.1)),children:(0,g.jsx)(i$,{className:"h-4 w-4"})}),(0,g.jsx)(iC.Button,{variant:"outline",size:"icon",onClick:()=>u({x:0,y:0}),children:(0,g.jsx)(iz,{className:"h-4 w-4"})}),(0,g.jsx)("div",{className:"h-px bg-border my-1"}),(0,g.jsx)(iC.Button,{variant:"outline",size:"icon",onClick:w,title:"导出为图片",children:(0,g.jsx)(iw.Download,{className:"h-4 w-4"})})]}),(0,g.jsx)("div",{ref:v,className:"w-full h-full overflow-hidden cursor-move relative touch-none bg-[url('https://www.transparenttextures.com/patterns/rice-paper.png')] bg-repeat select-none",onMouseDown:e=>{e.target.closest(".family-node-card")||(d(!0),h({x:e.clientX-s.x,y:e.clientY-s.y}),m({x:e.clientX,y:e.clientY}))},onMouseMove:e=>{if(!c)return;let t=Math.abs(e.clientX-p.x),n=Math.abs(e.clientY-p.y);t<5&&n<5||u({x:e.clientX-f.x,y:e.clientY-f.y})},onMouseUp:b,onMouseLeave:b,children:(0,g.jsx)("div",{style:{transform:`translate(${s.x}px, ${s.y}px) scale(${a})`,transformOrigin:"top center",transition:c?"none":"transform 0.1s ease-out"},className:"absolute min-w-full min-h-full flex justify-center pt-20 pb-20",children:(0,g.jsx)(R,{rootId:t.rootId})})})]}):(0,g.jsx)("div",{className:"flex-1 p-4",children:(0,g.jsx)(ik,{members:t.members,rootId:t.rootId,onMemberClick:e=>n.push(`/members/${e}`)})})]}):(0,g.jsxs)("div",{className:"min-h-screen bg-background flex flex-col",children:[(0,g.jsx)(y.SiteHeader,{}),(0,g.jsx)("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"暂无家族树数据"})]})}e.s(["default",()=>iR],85398)}]);