21 lines
155 KiB
JavaScript
21 lines
155 KiB
JavaScript
module.exports=[13647,(a,b,c)=>{"use strict";var d=a.r(54297);d.useState,d.useEffect,d.useLayoutEffect,d.useDebugValue,c.useSyncExternalStore=void 0!==d.useSyncExternalStore?d.useSyncExternalStore:function(a,b){return b()}},81271,(a,b,c)=>{"use strict";b.exports=a.r(13647)},69220,(a,b,c)=>{"use strict";var d=a.r(54297),e=a.r(81271),f="function"==typeof Object.is?Object.is:function(a,b){return a===b&&(0!==a||1/a==1/b)||a!=a&&b!=b},g=e.useSyncExternalStore,h=d.useRef,i=d.useEffect,j=d.useMemo,k=d.useDebugValue;c.useSyncExternalStoreWithSelector=function(a,b,c,d,e){var l=h(null);if(null===l.current){var m={hasValue:!1,value:null};l.current=m}else m=l.current;var n=g(a,(l=j(function(){function a(a){if(!i){if(i=!0,g=a,a=d(a),void 0!==e&&m.hasValue){var b=m.value;if(e(b,a))return h=b}return h=a}if(b=h,f(g,a))return b;var c=d(a);return void 0!==e&&e(b,c)?(g=a,b):(g=a,h=c)}var g,h,i=!1,j=void 0===c?null:c;return[function(){return a(b())},null===j?void 0:function(){return a(j())}]},[b,c,d,e]))[0],l[1]);return i(function(){m.hasValue=!0,m.value=n},[n]),k(n),n}},16972,(a,b,c)=>{"use strict";b.exports=a.r(69220)},73201,a=>{"use strict";var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q=a.i(6155),r=a.i(74719),s=a.i(12348),t=a.i(54297),u=a.i(36636);let v=new Map;function w(a){let[b,c]=(0,t.useState)(a?v.get(a):void 0),[d,e]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{if(!a)return void c(void 0);let b=v.get(a);if(b)return void c(b);let d=!0;return e(!0),u.db.images.get(a).then(b=>{if(b&&d){let d=URL.createObjectURL(b.blob);v.set(a,d),c(d)}}).catch(a=>{console.error("Failed to load avatar:",a)}).finally(()=>{d&&e(!1)}),()=>{d=!1}},[a]),{avatarUrl:b,isLoading:d}}var x=a.i(21254),y=a.i(22772),z=a.i(37111);let A=(0,z.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 B(a){return a?a.split("-")[0]:""}function C({member:a,isRoot:b,isSpouse:c,onSelect:d,isHighlighted:e}){let{avatarUrl:f}=w(a?.avatarImageId),g=B(a.birthDate),h=B(a.deathDate),i=function(a,b){if(!a)return null;let c=new Date(a),d=b?new Date(b):new Date,e=d.getFullYear()-c.getFullYear(),f=d.getMonth()-c.getMonth();return(f<0||0===f&&d.getDate()<c.getDate())&&e--,e}(a.birthDate,a.deathDate),j=g?h?`${g}-${h}`:`${g}-`:"",k=null!==i?a.deathDate?`享年${i}岁`:`${i}岁`:"";return(0,q.jsxs)("div",{className:(0,s.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",e?"border-4 border-yellow-400 bg-yellow-50 dark:bg-yellow-900/20 ring-4 ring-yellow-200 dark:ring-yellow-800 animate-pulse":b?"border-2 border-primary bg-primary/5":c?"border-2 border-dashed border-border/60 bg-muted/30":"border-2 border-border bg-card"),onClick:()=>d?.(a),children:[(0,q.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:[a.generation,"世"]}),(0,q.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:f?(0,q.jsx)("img",{src:f,alt:a.fullName,className:"h-full w-full object-cover"}):"female"===a.gender?(0,q.jsx)(y.CircleUserRound,{className:"h-8 w-8 text-pink-400"}):(0,q.jsx)(x.CircleUser,{className:"h-8 w-8 text-blue-400"})}),(0,q.jsxs)("div",{className:"text-center w-full",children:[(0,q.jsxs)("div",{className:"font-serif font-bold text-foreground leading-tight",children:[a.surname," ",a.givenName]}),a.courtesyName&&(0,q.jsxs)("div",{className:"text-[10px] text-muted-foreground mt-0.5",children:["字 ",a.courtesyName]}),j&&(0,q.jsx)("div",{className:"text-[9px] text-muted-foreground/70 mt-1 font-mono",children:j}),k&&(0,q.jsx)("div",{className:"text-[9px] text-muted-foreground/60 font-mono",children:k}),a.phone&&(0,q.jsxs)("div",{className:"text-[9px] text-muted-foreground/60 font-mono truncate",children:["📱 ",a.phone]})]}),a.deathDate&&(0,q.jsx)("div",{className:"absolute -top-1 -right-1 h-2 w-2 rounded-full bg-neutral-400 ring-2 ring-background"})]})}function D({member:a,spouse:b,isRoot:c,onSelect:d,isHighlighted:e}){return b?(0,q.jsxs)("div",{className:"flex items-center gap-2",children:[(0,q.jsx)(C,{member:a,isRoot:c,onSelect:d,isHighlighted:e}),(0,q.jsx)(A,{className:"h-4 w-4 text-red-400 flex-shrink-0"}),(0,q.jsx)(C,{member:b,isSpouse:!0,onSelect:d})]}):(0,q.jsx)(C,{member:a,isRoot:c,onSelect:d,isHighlighted:e})}var E=a.i(43181),F=a.i(14672);function G({rootId:a,onSelectMember:b}){let{getMember:c,treeData:d,highlightedMemberId:e}=(0,E.useFamily)(),f=c(a),g=(0,F.useRouter)(),h=(0,t.useRef)(null),[i,j]=(0,t.useState)([]),k=(0,t.useRef)(new Map),l=(0,t.useCallback)(a=>{g.push(`/members/${a.id}`)},[g]),m=(0,t.useCallback)(()=>{let a=[],b=h.current?.getBoundingClientRect();b&&0!==k.current.size&&(k.current.forEach((d,e)=>{let f=c(e);if(!f||!f.childrenIds||0===f.childrenIds.length)return;let g=d.getBoundingClientRect(),h=g.left+g.width/2-b.left,i=g.bottom-b.top,j=i+24;a.push({from:{x:h,y:i},to:{x:h,y:j},type:"vertical"});let l=f.childrenIds.map(a=>{let c=k.current.get(a);if(!c)return null;let d=c.getBoundingClientRect();return{id:a,centerX:d.left+d.width/2-b.left,topY:d.top-b.top}}).filter(Boolean);if(0!==l.length){if(l.length>1){let b=Math.min(...l.map(a=>a.centerX)),c=Math.max(...l.map(a=>a.centerX));a.push({from:{x:b,y:j},to:{x:c,y:j},type:"horizontal"})}l.forEach(b=>{a.push({from:{x:b.centerX,y:j},to:{x:b.centerX,y:b.topY},type:"vertical"})})}}),j(a))},[c]);if((0,t.useEffect)(()=>{let a=[];return a.push(setTimeout(m,50)),a.push(setTimeout(m,150)),a.push(setTimeout(m,300)),a.push(setTimeout(m,500)),window.addEventListener("resize",m),()=>{a.forEach(a=>clearTimeout(a)),window.removeEventListener("resize",m)}},[m,d]),!f)return null;let n=({memberId:a,isRoot:b=!1})=>{let d=c(a);if(!d)return null;let f=d.childrenIds&&d.childrenIds.length>0,g=d.spouseIds&&d.spouseIds.length>0?c(d.spouseIds[0]):void 0;return(0,q.jsxs)("div",{className:"flex flex-col items-center",children:[(0,q.jsx)("div",{ref:b=>{b?k.current.set(a,b):k.current.delete(a)},className:"relative z-10",children:(0,q.jsx)(D,{member:d,spouse:g,onSelect:l,isRoot:b,isHighlighted:d.id===e})}),f&&(0,q.jsx)("div",{className:"flex items-start relative",style:{marginTop:"48px",gap:"32px"},children:d.childrenIds.map(a=>(0,q.jsx)(n,{memberId:a},a))})]})};return(0,q.jsx)("div",{className:"relative",children:(0,q.jsxs)("div",{ref:h,className:"p-12 min-w-fit relative",style:{minHeight:"100%"},children:[(0,q.jsx)("div",{className:"absolute inset-0 pointer-events-none",style:{zIndex:1},children:i.map((a,b)=>{let c="horizontal"===a.type,d=c?Math.abs(a.to.x-a.from.x):1,e=c?1:Math.abs(a.to.y-a.from.y),f=Math.min(a.from.x,a.to.x),g=Math.min(a.from.y,a.to.y);return d<=0||e<=0?null:(0,q.jsx)("div",{className:"absolute bg-foreground/25",style:{left:`${f}px`,top:`${g}px`,width:`${d}px`,height:`${e}px`,transform:c?"scaleY(0.3)":"scaleX(0.3)",transformOrigin:"top left"}},b)})}),(0,q.jsx)("div",{className:"relative",style:{zIndex:10},children:(0,q.jsx)(n,{memberId:a,isRoot:!0})})]})})}function H(a){if("string"==typeof a||"number"==typeof a)return""+a;let b="";if(Array.isArray(a))for(let c=0,d;c<a.length;c++)""!==(d=H(a[c]))&&(b+=(b&&" ")+d);else for(let c in a)a[c]&&(b+=(b&&" ")+c);return b}var I=a.i(16972);let J={get url(){return`file://${a.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")}`}},K=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a)),destroy:()=>{(J.env?J.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."),c.clear()}},g=b=a(d,e,f);return f},{useDebugValue:L}=t.default,{useSyncExternalStoreWithSelector:M}=I.default,N=a=>a;function O(a,b=N,c){let d=M(a.subscribe,a.getState,a.getServerState||a.getInitialState,b,c);return L(d),d}let P=(a,b)=>{let c=a?K(a):K,d=(a,d=b)=>O(c,a,d);return Object.assign(d,c),d};function Q(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b)return!1;if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return!1;for(let[c,d]of a)if(!Object.is(d,b.get(c)))return!1;return!0}if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0}let c=Object.keys(a);if(c.length!==Object.keys(b).length)return!1;for(let d of c)if(!Object.prototype.hasOwnProperty.call(b,d)||!Object.is(a[d],b[d]))return!1;return!0}var R={value:()=>{}};function S(){for(var a,b=0,c=arguments.length,d={};b<c;++b){if(!(a=arguments[b]+"")||a in d||/[\s.]/.test(a))throw Error("illegal type: "+a);d[a]=[]}return new T(d)}function T(a){this._=a}function U(a,b,c){for(var d=0,e=a.length;d<e;++d)if(a[d].name===b){a[d]=R,a=a.slice(0,d).concat(a.slice(d+1));break}return null!=c&&a.push({name:b,value:c}),a}function V(){}function W(a){return null==a?V:function(){return this.querySelector(a)}}function X(){return[]}function Y(a){return null==a?X:function(){return this.querySelectorAll(a)}}function Z(a){return function(){return this.matches(a)}}function $(a){return function(b){return b.matches(a)}}T.prototype=S.prototype={constructor:T,on:function(a,b){var c,d=this._,e=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");if(c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),a&&!d.hasOwnProperty(a))throw Error("unknown type: "+a);return{type:a,name:b}}),f=-1,g=e.length;if(arguments.length<2){for(;++f<g;)if((c=(a=e[f]).type)&&(c=function(a,b){for(var c,d=0,e=a.length;d<e;++d)if((c=a[d]).name===b)return c.value}(d[c],a.name)))return c;return}if(null!=b&&"function"!=typeof b)throw Error("invalid callback: "+b);for(;++f<g;)if(c=(a=e[f]).type)d[c]=U(d[c],a.name,b);else if(null==b)for(c in d)d[c]=U(d[c],a.name,null);return this},copy:function(){var a={},b=this._;for(var c in b)a[c]=b[c].slice();return new T(a)},call:function(a,b){if((c=arguments.length-2)>0)for(var c,d,e=Array(c),f=0;f<c;++f)e[f]=arguments[f+2];if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);for(d=this._[a],f=0,c=d.length;f<c;++f)d[f].value.apply(b,e)},apply:function(a,b,c){if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);for(var d=this._[a],e=0,f=d.length;e<f;++e)d[e].value.apply(b,c)}};var _=Array.prototype.find;function aa(){return this.firstElementChild}var ab=Array.prototype.filter;function ac(){return Array.from(this.children)}function ad(a){return Array(a.length)}function ae(a,b){this.ownerDocument=a.ownerDocument,this.namespaceURI=a.namespaceURI,this._next=null,this._parent=a,this.__data__=b}function af(a,b,c,d,e,f){for(var g,h=0,i=b.length,j=f.length;h<j;++h)(g=b[h])?(g.__data__=f[h],d[h]=g):c[h]=new ae(a,f[h]);for(;h<i;++h)(g=b[h])&&(e[h]=g)}function ag(a,b,c,d,e,f,g){var h,i,j,k=new Map,l=b.length,m=f.length,n=Array(l);for(h=0;h<l;++h)(i=b[h])&&(n[h]=j=g.call(i,i.__data__,h,b)+"",k.has(j)?e[h]=i:k.set(j,i));for(h=0;h<m;++h)j=g.call(a,f[h],h,f)+"",(i=k.get(j))?(d[h]=i,i.__data__=f[h],k.delete(j)):c[h]=new ae(a,f[h]);for(h=0;h<l;++h)(i=b[h])&&k.get(n[h])===i&&(e[h]=i)}function ah(a){return a.__data__}function ai(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}ae.prototype={constructor:ae,appendChild:function(a){return this._parent.insertBefore(a,this._next)},insertBefore:function(a,b){return this._parent.insertBefore(a,b)},querySelector:function(a){return this._parent.querySelector(a)},querySelectorAll:function(a){return this._parent.querySelectorAll(a)}};var aj="http://www.w3.org/1999/xhtml";let ak={svg:"http://www.w3.org/2000/svg",xhtml:aj,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function al(a){var b=a+="",c=b.indexOf(":");return c>=0&&"xmlns"!==(b=a.slice(0,c))&&(a=a.slice(c+1)),ak.hasOwnProperty(b)?{space:ak[b],local:a}:a}function am(a){return a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView}function an(a,b){return a.style.getPropertyValue(b)||am(a).getComputedStyle(a,null).getPropertyValue(b)}function ao(a){return a.trim().split(/^|\s+/)}function ap(a){return a.classList||new aq(a)}function aq(a){this._node=a,this._names=ao(a.getAttribute("class")||"")}function ar(a,b){for(var c=ap(a),d=-1,e=b.length;++d<e;)c.add(b[d])}function as(a,b){for(var c=ap(a),d=-1,e=b.length;++d<e;)c.remove(b[d])}function at(){this.textContent=""}function au(){this.innerHTML=""}function av(){this.nextSibling&&this.parentNode.appendChild(this)}function aw(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ax(a){var b=al(a);return(b.local?function(a){return function(){return this.ownerDocument.createElementNS(a.space,a.local)}}:function(a){return function(){var b=this.ownerDocument,c=this.namespaceURI;return c===aj&&b.documentElement.namespaceURI===aj?b.createElement(a):b.createElementNS(c,a)}})(b)}function ay(){return null}function az(){var a=this.parentNode;a&&a.removeChild(this)}function aA(){var a=this.cloneNode(!1),b=this.parentNode;return b?b.insertBefore(a,this.nextSibling):a}function aB(){var a=this.cloneNode(!0),b=this.parentNode;return b?b.insertBefore(a,this.nextSibling):a}function aC(a){return function(){var b=this.__on;if(b){for(var c,d=0,e=-1,f=b.length;d<f;++d)(c=b[d],a.type&&c.type!==a.type||c.name!==a.name)?b[++e]=c:this.removeEventListener(c.type,c.listener,c.options);++e?b.length=e:delete this.__on}}}function aD(a,b,c){return function(){var d,e=this.__on,f=function(a){b.call(this,a,this.__data__)};if(e){for(var g=0,h=e.length;g<h;++g)if((d=e[g]).type===a.type&&d.name===a.name){this.removeEventListener(d.type,d.listener,d.options),this.addEventListener(d.type,d.listener=f,d.options=c),d.value=b;return}}this.addEventListener(a.type,f,c),d={type:a.type,name:a.name,value:b,listener:f,options:c},e?e.push(d):this.__on=[d]}}function aE(a,b,c){var d=am(a),e=d.CustomEvent;"function"==typeof e?e=new e(b,c):(e=d.document.createEvent("Event"),c?(e.initEvent(b,c.bubbles,c.cancelable),e.detail=c.detail):e.initEvent(b,!1,!1)),a.dispatchEvent(e)}aq.prototype={add:function(a){0>this._names.indexOf(a)&&(this._names.push(a),this._node.setAttribute("class",this._names.join(" ")))},remove:function(a){var b=this._names.indexOf(a);b>=0&&(this._names.splice(b,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(a){return this._names.indexOf(a)>=0}};var aF=[null];function aG(a,b){this._groups=a,this._parents=b}function aH(){return new aG([[document.documentElement]],aF)}function aI(a){return"string"==typeof a?new aG([[document.querySelector(a)]],[document.documentElement]):new aG([[a]],aF)}aG.prototype=aH.prototype={constructor:aG,select:function(a){"function"!=typeof a&&(a=W(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g,h=b[e],i=h.length,j=d[e]=Array(i),k=0;k<i;++k)(f=h[k])&&(g=a.call(f,f.__data__,k,h))&&("__data__"in f&&(g.__data__=f.__data__),j[k]=g);return new aG(d,this._parents)},selectAll:function(a){if("function"==typeof a){var b;b=a,a=function(){var a;return a=b.apply(this,arguments),null==a?[]:Array.isArray(a)?a:Array.from(a)}}else a=Y(a);for(var c=this._groups,d=c.length,e=[],f=[],g=0;g<d;++g)for(var h,i=c[g],j=i.length,k=0;k<j;++k)(h=i[k])&&(e.push(a.call(h,h.__data__,k,i)),f.push(h));return new aG(e,f)},selectChild:function(a){var b;return this.select(null==a?aa:(b="function"==typeof a?a:$(a),function(){return _.call(this.children,b)}))},selectChildren:function(a){var b;return this.selectAll(null==a?ac:(b="function"==typeof a?a:$(a),function(){return ab.call(this.children,b)}))},filter:function(a){"function"!=typeof a&&(a=Z(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,i=d[e]=[],j=0;j<h;++j)(f=g[j])&&a.call(f,f.__data__,j,g)&&i.push(f);return new aG(d,this._parents)},data:function(a,b){if(!arguments.length)return Array.from(this,ah);var c=b?ag:af,d=this._parents,e=this._groups;"function"!=typeof a&&(s=a,a=function(){return s});for(var f=e.length,g=Array(f),h=Array(f),i=Array(f),j=0;j<f;++j){var k=d[j],l=e[j],m=l.length,n="object"==typeof(r=a.call(k,k&&k.__data__,j,d))&&"length"in r?r:Array.from(r),o=n.length,p=h[j]=Array(o),q=g[j]=Array(o);c(k,l,p,q,i[j]=Array(m),n,b);for(var r,s,t,u,v=0,w=0;v<o;++v)if(t=p[v]){for(v>=w&&(w=v+1);!(u=q[w])&&++w<o;);t._next=u||null}}return(g=new aG(g,d))._enter=h,g._exit=i,g},enter:function(){return new aG(this._enter||this._groups.map(ad),this._parents)},exit:function(){return new aG(this._exit||this._groups.map(ad),this._parents)},join:function(a,b,c){var d=this.enter(),e=this,f=this.exit();return"function"==typeof a?(d=a(d))&&(d=d.selection()):d=d.append(a+""),null!=b&&(e=b(e))&&(e=e.selection()),null==c?f.remove():c(f),d&&e?d.merge(e).order():e},merge:function(a){for(var b=a.selection?a.selection():a,c=this._groups,d=b._groups,e=c.length,f=d.length,g=Math.min(e,f),h=Array(e),i=0;i<g;++i)for(var j,k=c[i],l=d[i],m=k.length,n=h[i]=Array(m),o=0;o<m;++o)(j=k[o]||l[o])&&(n[o]=j);for(;i<e;++i)h[i]=c[i];return new aG(h,this._parents)},selection:function(){return this},order:function(){for(var a=this._groups,b=-1,c=a.length;++b<c;)for(var d,e=a[b],f=e.length-1,g=e[f];--f>=0;)(d=e[f])&&(g&&4^d.compareDocumentPosition(g)&&g.parentNode.insertBefore(d,g),g=d);return this},sort:function(a){function b(b,c){return b&&c?a(b.__data__,c.__data__):!b-!c}a||(a=ai);for(var c=this._groups,d=c.length,e=Array(d),f=0;f<d;++f){for(var g,h=c[f],i=h.length,j=e[f]=Array(i),k=0;k<i;++k)(g=h[k])&&(j[k]=g);j.sort(b)}return new aG(e,this._parents).order()},call:function(){var a=arguments[0];return arguments[0]=this,a.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d=a[b],e=0,f=d.length;e<f;++e){var g=d[e];if(g)return g}return null},size:function(){let a=0;for(let b of this)++a;return a},empty:function(){return!this.node()},each:function(a){for(var b=this._groups,c=0,d=b.length;c<d;++c)for(var e,f=b[c],g=0,h=f.length;g<h;++g)(e=f[g])&&a.call(e,e.__data__,g,f);return this},attr:function(a,b){var c=al(a);if(arguments.length<2){var d=this.node();return c.local?d.getAttributeNS(c.space,c.local):d.getAttribute(c)}return this.each((null==b?c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}}:"function"==typeof b?c.local?function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}}:function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}}:c.local?function(a,b){return function(){this.setAttributeNS(a.space,a.local,b)}}:function(a,b){return function(){this.setAttribute(a,b)}})(c,b))},style:function(a,b,c){return arguments.length>1?this.each((null==b?function(a){return function(){this.style.removeProperty(a)}}:"function"==typeof b?function(a,b,c){return function(){var d=b.apply(this,arguments);null==d?this.style.removeProperty(a):this.style.setProperty(a,d,c)}}:function(a,b,c){return function(){this.style.setProperty(a,b,c)}})(a,b,null==c?"":c)):an(this.node(),a)},property:function(a,b){return arguments.length>1?this.each((null==b?function(a){return function(){delete this[a]}}:"function"==typeof b?function(a,b){return function(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}}:function(a,b){return function(){this[a]=b}})(a,b)):this.node()[a]},classed:function(a,b){var c=ao(a+"");if(arguments.length<2){for(var d=ap(this.node()),e=-1,f=c.length;++e<f;)if(!d.contains(c[e]))return!1;return!0}return this.each(("function"==typeof b?function(a,b){return function(){(b.apply(this,arguments)?ar:as)(this,a)}}:b?function(a){return function(){ar(this,a)}}:function(a){return function(){as(this,a)}})(c,b))},text:function(a){return arguments.length?this.each(null==a?at:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}}:function(a){return function(){this.textContent=a}})(a)):this.node().textContent},html:function(a){return arguments.length?this.each(null==a?au:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}}:function(a){return function(){this.innerHTML=a}})(a)):this.node().innerHTML},raise:function(){return this.each(av)},lower:function(){return this.each(aw)},append:function(a){var b="function"==typeof a?a:ax(a);return this.select(function(){return this.appendChild(b.apply(this,arguments))})},insert:function(a,b){var c="function"==typeof a?a:ax(a),d=null==b?ay:"function"==typeof b?b:W(b);return this.select(function(){return this.insertBefore(c.apply(this,arguments),d.apply(this,arguments)||null)})},remove:function(){return this.each(az)},clone:function(a){return this.select(a?aB:aA)},datum:function(a){return arguments.length?this.property("__data__",a):this.node().__data__},on:function(a,b,c){var d,e,f=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");return c>=0&&(b=a.slice(c+1),a=a.slice(0,c)),{type:a,name:b}}),g=f.length;if(arguments.length<2){var h=this.node().__on;if(h){for(var i,j=0,k=h.length;j<k;++j)for(d=0,i=h[j];d<g;++d)if((e=f[d]).type===i.type&&e.name===i.name)return i.value}return}for(d=0,h=b?aD:aC;d<g;++d)this.each(h(f[d],b,c));return this},dispatch:function(a,b){return this.each(("function"==typeof b?function(a,b){return function(){return aE(this,a,b.apply(this,arguments))}}:function(a,b){return function(){return aE(this,a,b)}})(a,b))},[Symbol.iterator]:function*(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d,e=a[b],f=0,g=e.length;f<g;++f)(d=e[f])&&(yield d)}};let aJ={passive:!1},aK={capture:!0,passive:!1};function aL(a){a.stopImmediatePropagation()}function aM(a){a.preventDefault(),a.stopImmediatePropagation()}function aN(a){var b=a.document.documentElement,c=aI(a).on("dragstart.drag",aM,aK);"onselectstart"in b?c.on("selectstart.drag",aM,aK):(b.__noselect=b.style.MozUserSelect,b.style.MozUserSelect="none")}function aO(a,b){var c=a.document.documentElement,d=aI(a).on("dragstart.drag",null);b&&(d.on("click.drag",aM,aK),setTimeout(function(){d.on("click.drag",null)},0)),"onselectstart"in c?d.on("selectstart.drag",null):(c.style.MozUserSelect=c.__noselect,delete c.__noselect)}function aP(a){return((a=Math.exp(a))+1/a)/2}let aQ=function a(b,c,d){function e(a,e){var f,g,h=a[0],i=a[1],j=a[2],k=e[0],l=e[1],m=e[2],n=k-h,o=l-i,p=n*n+o*o;if(p<1e-12)g=Math.log(m/j)/b,f=function(a){return[h+a*n,i+a*o,j*Math.exp(b*a*g)]};else{var q=Math.sqrt(p),r=(m*m-j*j+d*p)/(2*j*c*q),s=(m*m-j*j-d*p)/(2*m*c*q),t=Math.log(Math.sqrt(r*r+1)-r);g=(Math.log(Math.sqrt(s*s+1)-s)-t)/b,f=function(a){var d,e,f=a*g,k=aP(t),l=j/(c*q)*(k*(((d=Math.exp(2*(d=b*f+t)))-1)/(d+1))-((e=Math.exp(e=t))-1/e)/2);return[h+l*n,i+l*o,j*k/aP(b*f+t)]}}return f.duration=1e3*g*b/Math.SQRT2,f}return e.rho=function(b){var c=Math.max(.001,+b),d=c*c;return a(c,d,d*d)},e}(Math.SQRT2,2,4);function aR(a,b){if(a=function(a){let b;for(;b=a.sourceEvent;)a=b;return a}(a),void 0===b&&(b=a.currentTarget),b){var c=b.ownerSVGElement||b;if(c.createSVGPoint){var d=c.createSVGPoint();return d.x=a.clientX,d.y=a.clientY,[(d=d.matrixTransform(b.getScreenCTM().inverse())).x,d.y]}if(b.getBoundingClientRect){var e=b.getBoundingClientRect();return[a.clientX-e.left-b.clientLeft,a.clientY-e.top-b.clientTop]}}return[a.pageX,a.pageY]}var aS,aT,aU=0,aV=0,aW=0,aX=0,aY=0,aZ=0,a$="object"==typeof performance&&performance.now?performance:Date,a_=function(a){setTimeout(a,17)};function a0(){return aY||(a_(a1),aY=a$.now()+aZ)}function a1(){aY=0}function a2(){this._call=this._time=this._next=null}function a3(a,b,c){var d=new a2;return d.restart(a,b,c),d}function a4(){aY=(aX=a$.now())+aZ,aU=aV=0;try{a0(),++aU;for(var a,b=aS;b;)(a=aY-b._time)>=0&&b._call.call(void 0,a),b=b._next;--aU}finally{aU=0,function(){for(var a,b,c=aS,d=1/0;c;)c._call?(d>c._time&&(d=c._time),a=c,c=c._next):(b=c._next,c._next=null,c=a?a._next=b:aS=b);aT=a,a6(d)}(),aY=0}}function a5(){var a=a$.now(),b=a-aX;b>1e3&&(aZ-=b,aX=a)}function a6(a){!aU&&(aV&&(aV=clearTimeout(aV)),a-aY>24?(a<1/0&&(aV=setTimeout(a4,a-a$.now()-aZ)),aW&&(aW=clearInterval(aW))):(aW||(aX=a$.now(),aW=setInterval(a5,1e3)),aU=1,a_(a4)))}function a7(a,b,c){var d=new a2;return b=null==b?0:+b,d.restart(c=>{d.stop(),a(c+b)},b,c),d}a2.prototype=a3.prototype={constructor:a2,restart:function(a,b,c){if("function"!=typeof a)throw TypeError("callback is not a function");c=(null==c?a0():+c)+(null==b?0:+b),this._next||aT===this||(aT?aT._next=this:aS=this,aT=this),this._call=a,this._time=c,a6()},stop:function(){this._call&&(this._call=null,this._time=1/0,a6())}};var a8=S("start","end","cancel","interrupt"),a9=[];function ba(a,b,c,d,e,f){var g=a.__transition;if(g){if(c in g)return}else a.__transition={};!function(a,b,c){var d,e=a.__transition;function f(i){var j,k,l,m;if(1!==c.state)return h();for(j in e)if((m=e[j]).name===c.name){if(3===m.state)return a7(f);4===m.state?(m.state=6,m.timer.stop(),m.on.call("interrupt",a,a.__data__,m.index,m.group),delete e[j]):+j<b&&(m.state=6,m.timer.stop(),m.on.call("cancel",a,a.__data__,m.index,m.group),delete e[j])}if(a7(function(){3===c.state&&(c.state=4,c.timer.restart(g,c.delay,c.time),g(i))}),c.state=2,c.on.call("start",a,a.__data__,c.index,c.group),2===c.state){for(j=0,c.state=3,d=Array(l=c.tween.length),k=-1;j<l;++j)(m=c.tween[j].value.call(a,a.__data__,c.index,c.group))&&(d[++k]=m);d.length=k+1}}function g(b){for(var e=b<c.duration?c.ease.call(null,b/c.duration):(c.timer.restart(h),c.state=5,1),f=-1,g=d.length;++f<g;)d[f].call(a,e);5===c.state&&(c.on.call("end",a,a.__data__,c.index,c.group),h())}function h(){for(var d in c.state=6,c.timer.stop(),delete e[b],e)return;delete a.__transition}e[b]=c,c.timer=a3(function(a){c.state=1,c.timer.restart(f,c.delay,c.time),c.delay<=a&&f(a-c.delay)},0,c.time)}(a,c,{name:b,index:d,group:e,on:a8,tween:a9,time:f.time,delay:f.delay,duration:f.duration,ease:f.ease,timer:null,state:0})}function bb(a,b){var c=bd(a,b);if(c.state>0)throw Error("too late; already scheduled");return c}function bc(a,b){var c=bd(a,b);if(c.state>3)throw Error("too late; already running");return c}function bd(a,b){var c=a.__transition;if(!c||!(c=c[b]))throw Error("transition not found");return c}function be(a,b){var c,d,e,f=a.__transition,g=!0;if(f){for(e in b=null==b?null:b+"",f){if((c=f[e]).name!==b){g=!1;continue}d=c.state>2&&c.state<5,c.state=6,c.timer.stop(),c.on.call(d?"interrupt":"cancel",a,a.__data__,c.index,c.group),delete f[e]}g&&delete a.__transition}}function bf(a,b){return a*=1,b*=1,function(c){return a*(1-c)+b*c}}var bg=180/Math.PI,bh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function bi(a,b,c,d,e,f){var g,h,i;return(g=Math.sqrt(a*a+b*b))&&(a/=g,b/=g),(i=a*c+b*d)&&(c-=a*i,d-=b*i),(h=Math.sqrt(c*c+d*d))&&(c/=h,d/=h,i/=h),a*d<b*c&&(a=-a,b=-b,i=-i,g=-g),{translateX:e,translateY:f,rotate:Math.atan2(b,a)*bg,skewX:Math.atan(i)*bg,scaleX:g,scaleY:h}}function bj(a,b,c,d){function e(a){return a.length?a.pop()+" ":""}return function(f,g){var h,i,j,k,l=[],m=[];return f=a(f),g=a(g),!function(a,d,e,f,g,h){if(a!==e||d!==f){var i=g.push("translate(",null,b,null,c);h.push({i:i-4,x:bf(a,e)},{i:i-2,x:bf(d,f)})}else(e||f)&&g.push("translate("+e+b+f+c)}(f.translateX,f.translateY,g.translateX,g.translateY,l,m),h=f.rotate,i=g.rotate,h!==i?(h-i>180?i+=360:i-h>180&&(h+=360),m.push({i:l.push(e(l)+"rotate(",null,d)-2,x:bf(h,i)})):i&&l.push(e(l)+"rotate("+i+d),j=f.skewX,k=g.skewX,j!==k?m.push({i:l.push(e(l)+"skewX(",null,d)-2,x:bf(j,k)}):k&&l.push(e(l)+"skewX("+k+d),!function(a,b,c,d,f,g){if(a!==c||b!==d){var h=f.push(e(f)+"scale(",null,",",null,")");g.push({i:h-4,x:bf(a,c)},{i:h-2,x:bf(b,d)})}else(1!==c||1!==d)&&f.push(e(f)+"scale("+c+","+d+")")}(f.scaleX,f.scaleY,g.scaleX,g.scaleY,l,m),f=g=null,function(a){for(var b,c=-1,d=m.length;++c<d;)l[(b=m[c]).i]=b.x(a);return l.join("")}}}var bk=bj(function(a){let b=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(a+"");return b.isIdentity?bh:bi(b.a,b.b,b.c,b.d,b.e,b.f)},"px, ","px)","deg)"),bl=bj(function(a){return null==a?bh:(i||(i=document.createElementNS("http://www.w3.org/2000/svg","g")),i.setAttribute("transform",a),a=i.transform.baseVal.consolidate())?bi((a=a.matrix).a,a.b,a.c,a.d,a.e,a.f):bh},", ",")",")");function bm(a,b,c){var d=a._id;return a.each(function(){var a=bc(this,d);(a.value||(a.value={}))[b]=c.apply(this,arguments)}),function(a){return bd(a,d).value[b]}}function bn(a,b,c){a.prototype=b.prototype=c,c.constructor=a}function bo(a,b){var c=Object.create(a.prototype);for(var d in b)c[d]=b[d];return c}function bp(){}var bq="\\s*([+-]?\\d+)\\s*",br="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",bs="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",bt=/^#([0-9a-f]{3,8})$/,bu=RegExp(`^rgb\\(${bq},${bq},${bq}\\)$`),bv=RegExp(`^rgb\\(${bs},${bs},${bs}\\)$`),bw=RegExp(`^rgba\\(${bq},${bq},${bq},${br}\\)$`),bx=RegExp(`^rgba\\(${bs},${bs},${bs},${br}\\)$`),by=RegExp(`^hsl\\(${br},${bs},${bs}\\)$`),bz=RegExp(`^hsla\\(${br},${bs},${bs},${br}\\)$`),bA={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 bB(){return this.rgb().formatHex()}function bC(){return this.rgb().formatRgb()}function bD(a){var b,c;return a=(a+"").trim().toLowerCase(),(b=bt.exec(a))?(c=b[1].length,b=parseInt(b[1],16),6===c?bE(b):3===c?new bH(b>>8&15|b>>4&240,b>>4&15|240&b,(15&b)<<4|15&b,1):8===c?bF(b>>24&255,b>>16&255,b>>8&255,(255&b)/255):4===c?bF(b>>12&15|b>>8&240,b>>8&15|b>>4&240,b>>4&15|240&b,((15&b)<<4|15&b)/255):null):(b=bu.exec(a))?new bH(b[1],b[2],b[3],1):(b=bv.exec(a))?new bH(255*b[1]/100,255*b[2]/100,255*b[3]/100,1):(b=bw.exec(a))?bF(b[1],b[2],b[3],b[4]):(b=bx.exec(a))?bF(255*b[1]/100,255*b[2]/100,255*b[3]/100,b[4]):(b=by.exec(a))?bN(b[1],b[2]/100,b[3]/100,1):(b=bz.exec(a))?bN(b[1],b[2]/100,b[3]/100,b[4]):bA.hasOwnProperty(a)?bE(bA[a]):"transparent"===a?new bH(NaN,NaN,NaN,0):null}function bE(a){return new bH(a>>16&255,a>>8&255,255&a,1)}function bF(a,b,c,d){return d<=0&&(a=b=c=NaN),new bH(a,b,c,d)}function bG(a,b,c,d){var e;return 1==arguments.length?((e=a)instanceof bp||(e=bD(e)),e)?new bH((e=e.rgb()).r,e.g,e.b,e.opacity):new bH:new bH(a,b,c,null==d?1:d)}function bH(a,b,c,d){this.r=+a,this.g=+b,this.b=+c,this.opacity=+d}function bI(){return`#${bM(this.r)}${bM(this.g)}${bM(this.b)}`}function bJ(){let a=bK(this.opacity);return`${1===a?"rgb(":"rgba("}${bL(this.r)}, ${bL(this.g)}, ${bL(this.b)}${1===a?")":`, ${a})`}`}function bK(a){return isNaN(a)?1:Math.max(0,Math.min(1,a))}function bL(a){return Math.max(0,Math.min(255,Math.round(a)||0))}function bM(a){return((a=bL(a))<16?"0":"")+a.toString(16)}function bN(a,b,c,d){return d<=0?a=b=c=NaN:c<=0||c>=1?a=b=NaN:b<=0&&(a=NaN),new bP(a,b,c,d)}function bO(a){if(a instanceof bP)return new bP(a.h,a.s,a.l,a.opacity);if(a instanceof bp||(a=bD(a)),!a)return new bP;if(a instanceof bP)return a;var b=(a=a.rgb()).r/255,c=a.g/255,d=a.b/255,e=Math.min(b,c,d),f=Math.max(b,c,d),g=NaN,h=f-e,i=(f+e)/2;return h?(g=b===f?(c-d)/h+(c<d)*6:c===f?(d-b)/h+2:(b-c)/h+4,h/=i<.5?f+e:2-f-e,g*=60):h=i>0&&i<1?0:g,new bP(g,h,i,a.opacity)}function bP(a,b,c,d){this.h=+a,this.s=+b,this.l=+c,this.opacity=+d}function bQ(a){return(a=(a||0)%360)<0?a+360:a}function bR(a){return Math.max(0,Math.min(1,a||0))}function bS(a,b,c){return(a<60?b+(c-b)*a/60:a<180?c:a<240?b+(c-b)*(240-a)/60:b)*255}function bT(a,b,c,d,e){var f=a*a,g=f*a;return((1-3*a+3*f-g)*b+(4-6*f+3*g)*c+(1+3*a+3*f-3*g)*d+g*e)/6}bn(bp,bD,{copy(a){return Object.assign(new this.constructor,this,a)},displayable(){return this.rgb().displayable()},hex:bB,formatHex:bB,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return bO(this).formatHsl()},formatRgb:bC,toString:bC}),bn(bH,bG,bo(bp,{brighter(a){return a=null==a?1.4285714285714286:Math.pow(1.4285714285714286,a),new bH(this.r*a,this.g*a,this.b*a,this.opacity)},darker(a){return a=null==a?.7:Math.pow(.7,a),new bH(this.r*a,this.g*a,this.b*a,this.opacity)},rgb(){return this},clamp(){return new bH(bL(this.r),bL(this.g),bL(this.b),bK(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:bI,formatHex:bI,formatHex8:function(){return`#${bM(this.r)}${bM(this.g)}${bM(this.b)}${bM((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:bJ,toString:bJ})),bn(bP,function(a,b,c,d){return 1==arguments.length?bO(a):new bP(a,b,c,null==d?1:d)},bo(bp,{brighter(a){return a=null==a?1.4285714285714286:Math.pow(1.4285714285714286,a),new bP(this.h,this.s,this.l*a,this.opacity)},darker(a){return a=null==a?.7:Math.pow(.7,a),new bP(this.h,this.s,this.l*a,this.opacity)},rgb(){var a=this.h%360+(this.h<0)*360,b=isNaN(a)||isNaN(this.s)?0:this.s,c=this.l,d=c+(c<.5?c:1-c)*b,e=2*c-d;return new bH(bS(a>=240?a-240:a+120,e,d),bS(a,e,d),bS(a<120?a+240:a-120,e,d),this.opacity)},clamp(){return new bP(bQ(this.h),bR(this.s),bR(this.l),bK(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 a=bK(this.opacity);return`${1===a?"hsl(":"hsla("}${bQ(this.h)}, ${100*bR(this.s)}%, ${100*bR(this.l)}%${1===a?")":`, ${a})`}`}}));let bU=a=>()=>a;function bV(a,b){var c=b-a;return c?function(b){return a+b*c}:bU(isNaN(a)?b:a)}let bW=function a(b){var c,d=1==(c=+b)?bV:function(a,b){var d,e,f;return b-a?(d=a,e=b,d=Math.pow(d,f=c),e=Math.pow(e,f)-d,f=1/f,function(a){return Math.pow(d+a*e,f)}):bU(isNaN(a)?b:a)};function e(a,b){var c=d((a=bG(a)).r,(b=bG(b)).r),e=d(a.g,b.g),f=d(a.b,b.b),g=bV(a.opacity,b.opacity);return function(b){return a.r=c(b),a.g=e(b),a.b=f(b),a.opacity=g(b),a+""}}return e.gamma=a,e}(1);function bX(a){return function(b){var c,d,e=b.length,f=Array(e),g=Array(e),h=Array(e);for(c=0;c<e;++c)d=bG(b[c]),f[c]=d.r||0,g[c]=d.g||0,h[c]=d.b||0;return f=a(f),g=a(g),h=a(h),d.opacity=1,function(a){return d.r=f(a),d.g=g(a),d.b=h(a),d+""}}}bX(function(a){var b=a.length-1;return function(c){var d=c<=0?c=0:c>=1?(c=1,b-1):Math.floor(c*b),e=a[d],f=a[d+1],g=d>0?a[d-1]:2*e-f,h=d<b-1?a[d+2]:2*f-e;return bT((c-d/b)*b,g,e,f,h)}}),bX(function(a){var b=a.length;return function(c){var d=Math.floor(((c%=1)<0?++c:c)*b),e=a[(d+b-1)%b],f=a[d%b],g=a[(d+1)%b],h=a[(d+2)%b];return bT((c-d/b)*b,e,f,g,h)}});var bY=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,bZ=RegExp(bY.source,"g");function b$(a,b){var c;return("number"==typeof b?bf:b instanceof bD?bW:(c=bD(b))?(b=c,bW):function(a,b){var c,d,e,f,g,h=bY.lastIndex=bZ.lastIndex=0,i=-1,j=[],k=[];for(a+="",b+="";(e=bY.exec(a))&&(f=bZ.exec(b));)(g=f.index)>h&&(g=b.slice(h,g),j[i]?j[i]+=g:j[++i]=g),(e=e[0])===(f=f[0])?j[i]?j[i]+=f:j[++i]=f:(j[++i]=null,k.push({i:i,x:bf(e,f)})),h=bZ.lastIndex;return h<b.length&&(g=b.slice(h),j[i]?j[i]+=g:j[++i]=g),j.length<2?k[0]?(c=k[0].x,function(a){return c(a)+""}):(d=b,function(){return d}):(b=k.length,function(a){for(var c,d=0;d<b;++d)j[(c=k[d]).i]=c.x(a);return j.join("")})})(a,b)}var b_=aH.prototype.constructor;function b0(a){return function(){this.style.removeProperty(a)}}var b1=0;function b2(a,b,c,d){this._groups=a,this._parents=b,this._name=c,this._id=d}var b3=aH.prototype;b2.prototype=(function(a){return aH().transition(a)}).prototype={constructor:b2,select:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=W(a));for(var d=this._groups,e=d.length,f=Array(e),g=0;g<e;++g)for(var h,i,j=d[g],k=j.length,l=f[g]=Array(k),m=0;m<k;++m)(h=j[m])&&(i=a.call(h,h.__data__,m,j))&&("__data__"in h&&(i.__data__=h.__data__),l[m]=i,ba(l[m],b,c,m,l,bd(h,c)));return new b2(f,this._parents,b,c)},selectAll:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=Y(a));for(var d=this._groups,e=d.length,f=[],g=[],h=0;h<e;++h)for(var i,j=d[h],k=j.length,l=0;l<k;++l)if(i=j[l]){for(var m,n=a.call(i,i.__data__,l,j),o=bd(i,c),p=0,q=n.length;p<q;++p)(m=n[p])&&ba(m,b,c,p,n,o);f.push(n),g.push(i)}return new b2(f,g,b,c)},selectChild:b3.selectChild,selectChildren:b3.selectChildren,filter:function(a){"function"!=typeof a&&(a=Z(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,i=d[e]=[],j=0;j<h;++j)(f=g[j])&&a.call(f,f.__data__,j,g)&&i.push(f);return new b2(d,this._parents,this._name,this._id)},merge:function(a){if(a._id!==this._id)throw Error();for(var b=this._groups,c=a._groups,d=b.length,e=c.length,f=Math.min(d,e),g=Array(d),h=0;h<f;++h)for(var i,j=b[h],k=c[h],l=j.length,m=g[h]=Array(l),n=0;n<l;++n)(i=j[n]||k[n])&&(m[n]=i);for(;h<d;++h)g[h]=b[h];return new b2(g,this._parents,this._name,this._id)},selection:function(){return new b_(this._groups,this._parents)},transition:function(){for(var a=this._name,b=this._id,c=++b1,d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],i=h.length,j=0;j<i;++j)if(g=h[j]){var k=bd(g,b);ba(g,a,c,j,h,{time:k.time+k.delay+k.duration,delay:0,duration:k.duration,ease:k.ease})}return new b2(d,this._parents,a,c)},call:b3.call,nodes:b3.nodes,node:b3.node,size:b3.size,empty:b3.empty,each:b3.each,on:function(a,b){var c,d,e,f,g,h,i=this._id;return arguments.length<2?bd(this.node(),i).on.on(a):this.each((c=i,d=a,e=b,h=(d+"").trim().split(/^|\s+/).every(function(a){var b=a.indexOf(".");return b>=0&&(a=a.slice(0,b)),!a||"start"===a})?bb:bc,function(){var a=h(this,c),b=a.on;b!==f&&(g=(f=b).copy()).on(d,e),a.on=g}))},attr:function(a,b){var c=al(a),d="transform"===c?bl:b$;return this.attrTween(a,"function"==typeof b?(c.local?function(a,b,c){var d,e,f;return function(){var g,h,i=c(this);return null==i?void this.removeAttributeNS(a.space,a.local):(g=this.getAttributeNS(a.space,a.local))===(h=i+"")?null:g===d&&h===e?f:(e=h,f=b(d=g,i))}}:function(a,b,c){var d,e,f;return function(){var g,h,i=c(this);return null==i?void this.removeAttribute(a):(g=this.getAttribute(a))===(h=i+"")?null:g===d&&h===e?f:(e=h,f=b(d=g,i))}})(c,d,bm(this,"attr."+a,b)):null==b?(c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}})(c):(c.local?function(a,b,c){var d,e,f=c+"";return function(){var g=this.getAttributeNS(a.space,a.local);return g===f?null:g===d?e:e=b(d=g,c)}}:function(a,b,c){var d,e,f=c+"";return function(){var g=this.getAttribute(a);return g===f?null:g===d?e:e=b(d=g,c)}})(c,d,b))},attrTween:function(a,b){var c="attr."+a;if(arguments.length<2)return(c=this.tween(c))&&c._value;if(null==b)return this.tween(c,null);if("function"!=typeof b)throw Error();var d=al(a);return this.tween(c,(d.local?function(a,b){var c,d;function e(){var e=b.apply(this,arguments);return e!==d&&(c=(d=e)&&function(b){this.setAttributeNS(a.space,a.local,e.call(this,b))}),c}return e._value=b,e}:function(a,b){var c,d;function e(){var e=b.apply(this,arguments);return e!==d&&(c=(d=e)&&function(b){this.setAttribute(a,e.call(this,b))}),c}return e._value=b,e})(d,b))},style:function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y="transform"==(a+="")?bk:b$;return null==b?this.styleTween(a,(d=a,function(){var a=an(this,d),b=(this.style.removeProperty(d),an(this,d));return a===b?null:a===e&&b===f?g:g=y(e=a,f=b)})).on("end.style."+a,b0(a)):"function"==typeof b?this.styleTween(a,(h=a,i=bm(this,"style."+a,b),function(){var a=an(this,h),b=i(this),c=b+"";return null==b&&(this.style.removeProperty(h),c=b=an(this,h)),a===c?null:a===j&&c===k?l:(k=c,l=y(j=a,b))})).each((m=this._id,t="end."+(s="style."+(n=a)),function(){var a=bc(this,m),b=a.on,c=null==a.value[s]?r||(r=b0(n)):void 0;(b!==o||q!==c)&&(p=(o=b).copy()).on(t,q=c),a.on=p})):this.styleTween(a,(u=a,x=b+"",function(){var a=an(this,u);return a===x?null:a===v?w:w=y(v=a,b)}),c).on("end.style."+a,null)},styleTween:function(a,b,c){var d="style."+(a+="");if(arguments.length<2)return(d=this.tween(d))&&d._value;if(null==b)return this.tween(d,null);if("function"!=typeof b)throw Error();return this.tween(d,function(a,b,c){var d,e;function f(){var f=b.apply(this,arguments);return f!==e&&(d=(e=f)&&function(b){this.style.setProperty(a,f.call(this,b),c)}),d}return f._value=b,f}(a,b,null==c?"":c))},text:function(a){var b,c;return this.tween("text","function"==typeof a?(b=bm(this,"text",a),function(){var a=b(this);this.textContent=null==a?"":a}):(c=null==a?"":a+"",function(){this.textContent=c}))},textTween:function(a){var b="text";if(arguments.length<1)return(b=this.tween(b))&&b._value;if(null==a)return this.tween(b,null);if("function"!=typeof a)throw Error();return this.tween(b,function(a){var b,c;function d(){var d=a.apply(this,arguments);return d!==c&&(b=(c=d)&&function(a){this.textContent=d.call(this,a)}),b}return d._value=a,d}(a))},remove:function(){var a;return this.on("end.remove",(a=this._id,function(){var b=this.parentNode;for(var c in this.__transition)if(+c!==a)return;b&&b.removeChild(this)}))},tween:function(a,b){var c=this._id;if(a+="",arguments.length<2){for(var d,e=bd(this.node(),c).tween,f=0,g=e.length;f<g;++f)if((d=e[f]).name===a)return d.value;return null}return this.each((null==b?function(a,b){var c,d;return function(){var e=bc(this,a),f=e.tween;if(f!==c){d=c=f;for(var g=0,h=d.length;g<h;++g)if(d[g].name===b){(d=d.slice()).splice(g,1);break}}e.tween=d}}:function(a,b,c){var d,e;if("function"!=typeof c)throw Error();return function(){var f=bc(this,a),g=f.tween;if(g!==d){e=(d=g).slice();for(var h={name:b,value:c},i=0,j=e.length;i<j;++i)if(e[i].name===b){e[i]=h;break}i===j&&e.push(h)}f.tween=e}})(c,a,b))},delay:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){bb(this,a).delay=+b.apply(this,arguments)}}:function(a,b){return b*=1,function(){bb(this,a).delay=b}})(b,a)):bd(this.node(),b).delay},duration:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){bc(this,a).duration=+b.apply(this,arguments)}}:function(a,b){return b*=1,function(){bc(this,a).duration=b}})(b,a)):bd(this.node(),b).duration},ease:function(a){var b=this._id;return arguments.length?this.each(function(a,b){if("function"!=typeof b)throw Error();return function(){bc(this,a).ease=b}}(b,a)):bd(this.node(),b).ease},easeVarying:function(a){var b;if("function"!=typeof a)throw Error();return this.each((b=this._id,function(){var c=a.apply(this,arguments);if("function"!=typeof c)throw Error();bc(this,b).ease=c}))},end:function(){var a,b,c=this,d=c._id,e=c.size();return new Promise(function(f,g){var h={value:g},i={value:function(){0==--e&&f()}};c.each(function(){var c=bc(this,d),e=c.on;e!==a&&((b=(a=e).copy())._.cancel.push(h),b._.interrupt.push(h),b._.end.push(i)),c.on=b}),0===e&&f()})},[Symbol.iterator]:b3[Symbol.iterator]};var b4={time:null,delay:0,duration:250,ease:function(a){return((a*=2)<=1?a*a*a:(a-=2)*a*a+2)/2}};aH.prototype.interrupt=function(a){return this.each(function(){be(this,a)})},aH.prototype.transition=function(a){var b,c;a instanceof b2?(b=a._id,a=a._name):(b=++b1,(c=b4).time=a0(),a=null==a?null:a+"");for(var d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],i=h.length,j=0;j<i;++j)(g=h[j])&&ba(g,a,b,j,h,c||function(a,b){for(var c;!(c=a.__transition)||!(c=c[b]);)if(!(a=a.parentNode))throw Error(`transition ${b} not found`);return c}(g,b));return new b2(d,this._parents,a,b)};let b5=a=>()=>a;function b6(a,{sourceEvent:b,target:c,transform:d,dispatch:e}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},target:{value:c,enumerable:!0,configurable:!0},transform:{value:d,enumerable:!0,configurable:!0},_:{value:e}})}function b7(a,b,c){this.k=a,this.x=b,this.y=c}b7.prototype={constructor:b7,scale:function(a){return 1===a?this:new b7(this.k*a,this.x,this.y)},translate:function(a,b){return 0===a&0===b?this:new b7(this.k,this.x+this.k*a,this.y+this.k*b)},apply:function(a){return[a[0]*this.k+this.x,a[1]*this.k+this.y]},applyX:function(a){return a*this.k+this.x},applyY:function(a){return a*this.k+this.y},invert:function(a){return[(a[0]-this.x)/this.k,(a[1]-this.y)/this.k]},invertX:function(a){return(a-this.x)/this.k},invertY:function(a){return(a-this.y)/this.k},rescaleX:function(a){return a.copy().domain(a.range().map(this.invertX,this).map(a.invert,a))},rescaleY:function(a){return a.copy().domain(a.range().map(this.invertY,this).map(a.invert,a))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var b8=new b7(1,0,0);function b9(a){a.stopImmediatePropagation()}function ca(a){a.preventDefault(),a.stopImmediatePropagation()}function cb(a){return(!a.ctrlKey||"wheel"===a.type)&&!a.button}function cc(){var a=this;return a instanceof SVGElement?(a=a.ownerSVGElement||a).hasAttribute("viewBox")?[[(a=a.viewBox.baseVal).x,a.y],[a.x+a.width,a.y+a.height]]:[[0,0],[a.width.baseVal.value,a.height.baseVal.value]]:[[0,0],[a.clientWidth,a.clientHeight]]}function cd(){return this.__zoom||b8}function ce(a){return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*(a.ctrlKey?10:1)}function cf(){return navigator.maxTouchPoints||"ontouchstart"in this}function cg(a,b,c){var d=a.invertX(b[0][0])-c[0][0],e=a.invertX(b[1][0])-c[1][0],f=a.invertY(b[0][1])-c[0][1],g=a.invertY(b[1][1])-c[1][1];return a.translate(e>d?(d+e)/2:Math.min(0,d)||Math.max(0,e),g>f?(f+g)/2:Math.min(0,f)||Math.max(0,g))}b7.prototype;let ch=a=>()=>a;function ci(a,{sourceEvent:b,subject:c,target:d,identifier:e,active:f,x:g,y:h,dx:i,dy:j,dispatch:k}){Object.defineProperties(this,{type:{value:a,enumerable:!0,configurable:!0},sourceEvent:{value:b,enumerable:!0,configurable:!0},subject:{value:c,enumerable:!0,configurable:!0},target:{value:d,enumerable:!0,configurable:!0},identifier:{value:e,enumerable:!0,configurable:!0},active:{value:f,enumerable:!0,configurable:!0},x:{value:g,enumerable:!0,configurable:!0},y:{value:h,enumerable:!0,configurable:!0},dx:{value:i,enumerable:!0,configurable:!0},dy:{value:j,enumerable:!0,configurable:!0},_:{value:k}})}function cj(a){return!a.ctrlKey&&!a.button}function ck(){return this.parentNode}function cl(a,b){return null==b?{x:a.x,y:a.y}:b}function cm(){return navigator.maxTouchPoints||"ontouchstart"in this}ci.prototype.on=function(){var a=this._.on.apply(this._,arguments);return a===this._?this:a},a.i(7614);let cn=(0,t.createContext)(null),co=cn.Provider,cp="[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001";function cq(a,b){let c=(0,t.useContext)(cn);if(null===c)throw Error(cp);return O(c,a,b)}let cr=()=>{let a=(0,t.useContext)(cn);if(null===a)throw Error(cp);return(0,t.useMemo)(()=>({getState:a.getState,setState:a.setState,subscribe:a.subscribe,destroy:a.destroy}),[a])},cs=a=>a.userSelectionActive?"none":"all";function ct({position:a,children:b,className:c,style:d,...e}){let f=cq(cs),g=`${a}`.split("-");return t.default.createElement("div",{className:H(["react-flow__panel",c,...g]),style:{...d,pointerEvents:f},...e},b)}function cu({proOptions:a,position:b="bottom-right"}){return a?.hideAttribution?null:t.default.createElement(ct,{position:b,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},t.default.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}var cv=(0,t.memo)(({x:a,y:b,label:c,labelStyle:d={},labelShowBg:e=!0,labelBgStyle:f={},labelBgPadding:g=[2,4],labelBgBorderRadius:h=2,children:i,className:j,...k})=>{let l=(0,t.useRef)(null),[m,n]=(0,t.useState)({x:0,y:0,width:0,height:0}),o=H(["react-flow__edge-textwrapper",j]);return((0,t.useEffect)(()=>{if(l.current){let a=l.current.getBBox();n({x:a.x,y:a.y,width:a.width,height:a.height})}},[c]),void 0!==c&&c)?t.default.createElement("g",{transform:`translate(${a-m.width/2} ${b-m.height/2})`,className:o,visibility:m.width?"visible":"hidden",...k},e&&t.default.createElement("rect",{width:m.width+2*g[0],x:-g[0],y:-g[1],height:m.height+2*g[1],className:"react-flow__edge-textbg",style:f,rx:h,ry:h}),t.default.createElement("text",{className:"react-flow__edge-text",y:m.height/2,dy:"0.3em",ref:l,style:d},c),i):null});let cw=a=>({width:a.offsetWidth,height:a.offsetHeight}),cx=(a,b=0,c=1)=>Math.min(Math.max(a,b),c),cy=(a={x:0,y:0},b)=>({x:cx(a.x,b[0][0],b[1][0]),y:cx(a.y,b[0][1],b[1][1])}),cz=(a,b,c)=>a<b?cx(Math.abs(a-b),1,50)/50:a>c?-cx(Math.abs(a-c),1,50)/50:0,cA=(a,b)=>[20*cz(a.x,35,b.width-35),20*cz(a.y,35,b.height-35)],cB=a=>a.getRootNode?.()||window?.document,cC=({x:a,y:b,width:c,height:d})=>({x:a,y:b,x2:a+c,y2:b+d}),cD=a=>({...a.positionAbsolute||{x:0,y:0},width:a.width||0,height:a.height||0}),cE=(a,b)=>Math.ceil(Math.max(0,Math.min(a.x+a.width,b.x+b.width)-Math.max(a.x,b.x))*Math.max(0,Math.min(a.y+a.height,b.y+b.height)-Math.max(a.y,b.y))),cF=a=>!isNaN(a)&&isFinite(a),cG=Symbol.for("internals"),cH=["Enter"," ","Escape"],cI=(a,b)=>{};function cJ(a){let b="nativeEvent"in a?a.nativeEvent:a,c=b.composedPath?.()?.[0]||a.target;return["INPUT","SELECT","TEXTAREA"].includes(c?.nodeName)||c?.hasAttribute("contenteditable")||!!c?.closest(".nokey")}let cK=(a,b)=>{let c="clientX"in a,d=c?a.clientX:a.touches?.[0].clientX,e=c?a.clientY:a.touches?.[0].clientY;return{x:d-(b?.left??0),y:e-(b?.top??0)}},cL=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0,cM=({id:a,path:b,labelX:c,labelY:d,label:e,labelStyle:f,labelShowBg:g,labelBgStyle:h,labelBgPadding:i,labelBgBorderRadius:j,style:k,markerEnd:l,markerStart:m,interactionWidth:n=20})=>t.default.createElement(t.default.Fragment,null,t.default.createElement("path",{id:a,style:k,d:b,fill:"none",className:"react-flow__edge-path",markerEnd:l,markerStart:m}),n&&t.default.createElement("path",{d:b,fill:"none",strokeOpacity:0,strokeWidth:n,className:"react-flow__edge-interaction"}),e&&cF(c)&&cF(d)?t.default.createElement(cv,{x:c,y:d,label:e,labelStyle:f,labelShowBg:g,labelBgStyle:h,labelBgPadding:i,labelBgBorderRadius:j}):null);function cN(a,b,c){return void 0===c?c:d=>{let e=b().edges.find(b=>b.id===a);e&&c(d,{...e})}}function cO({sourceX:a,sourceY:b,targetX:c,targetY:d}){let e=Math.abs(c-a)/2,f=Math.abs(d-b)/2;return[c<a?c+e:c-e,d<b?d+f:d-f,e,f]}function cP({sourceX:a,sourceY:b,targetX:c,targetY:d,sourceControlX:e,sourceControlY:f,targetControlX:g,targetControlY:h}){let i=.125*a+.375*e+.375*g+.125*c,j=.125*b+.375*f+.375*h+.125*d,k=Math.abs(i-a),l=Math.abs(j-b);return[i,j,k,l]}function cQ({pos:a,x1:b,y1:c,x2:d,y2:e}){return a===o.Left||a===o.Right?[.5*(b+d),c]:[b,.5*(c+e)]}function cR({sourceX:a,sourceY:b,sourcePosition:c=o.Bottom,targetX:d,targetY:e,targetPosition:f=o.Top}){let[g,h]=cQ({pos:c,x1:a,y1:b,x2:d,y2:e}),[i,j]=cQ({pos:f,x1:d,y1:e,x2:a,y2:b}),[k,l,m,n]=cP({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:g,sourceControlY:h,targetControlX:i,targetControlY:j});return[`M${a},${b} C${g},${h} ${i},${j} ${d},${e}`,k,l,m,n]}cM.displayName="BaseEdge",(b=j||(j={})).Strict="strict",b.Loose="loose",(c=k||(k={})).Free="free",c.Vertical="vertical",c.Horizontal="horizontal",(d=l||(l={})).Partial="partial",d.Full="full",(e=m||(m={})).Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier",(f=n||(n={})).Arrow="arrow",f.ArrowClosed="arrowclosed",(g=o||(o={})).Left="left",g.Top="top",g.Right="right",g.Bottom="bottom";let cS=(0,t.memo)(({sourceX:a,sourceY:b,targetX:c,targetY:d,sourcePosition:e=o.Bottom,targetPosition:f=o.Top,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:p,interactionWidth:q})=>{let[r,s,u]=cR({sourceX:a,sourceY:b,sourcePosition:e,targetX:c,targetY:d,targetPosition:f});return t.default.createElement(cM,{path:r,labelX:s,labelY:u,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:p,interactionWidth:q})});cS.displayName="SimpleBezierEdge";let cT={[o.Left]:{x:-1,y:0},[o.Right]:{x:1,y:0},[o.Top]:{x:0,y:-1},[o.Bottom]:{x:0,y:1}},cU=({source:a,sourcePosition:b=o.Bottom,target:c})=>b===o.Left||b===o.Right?a.x<c.x?{x:1,y:0}:{x:-1,y:0}:a.y<c.y?{x:0,y:1}:{x:0,y:-1},cV=(a,b)=>Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));function cW({sourceX:a,sourceY:b,sourcePosition:c=o.Bottom,targetX:d,targetY:e,targetPosition:f=o.Top,borderRadius:g=5,centerX:h,centerY:i,offset:j=20}){let[k,l,m,n,p]=function({source:a,sourcePosition:b=o.Bottom,target:c,targetPosition:d=o.Top,center:e,offset:f}){let g,h,i=cT[b],j=cT[d],k={x:a.x+i.x*f,y:a.y+i.y*f},l={x:c.x+j.x*f,y:c.y+j.y*f},m=cU({source:k,sourcePosition:b,target:l}),n=0!==m.x?"x":"y",p=m[n],q=[],r={x:0,y:0},s={x:0,y:0},[t,u,v,w]=cO({sourceX:a.x,sourceY:a.y,targetX:c.x,targetY:c.y});if(i[n]*j[n]==-1){g=e.x??t,h=e.y??u;let a=[{x:g,y:k.y},{x:g,y:l.y}],b=[{x:k.x,y:h},{x:l.x,y:h}];q=i[n]===p?"x"===n?a:b:"x"===n?b:a}else{let e=[{x:k.x,y:l.y}],m=[{x:l.x,y:k.y}];if(q="x"===n?i.x===p?m:e:i.y===p?e:m,b===d){let b=Math.abs(a[n]-c[n]);if(b<=f){let d=Math.min(f-1,f-b);i[n]===p?r[n]=(k[n]>a[n]?-1:1)*d:s[n]=(l[n]>c[n]?-1:1)*d}}if(b!==d){let a="x"===n?"y":"x",b=i[n]===j[a],c=k[a]>l[a],d=k[a]<l[a];(1===i[n]&&(!b&&c||b&&d)||1!==i[n]&&(!b&&d||b&&c))&&(q="x"===n?e:m)}let o={x:k.x+r.x,y:k.y+r.y},t={x:l.x+s.x,y:l.y+s.y};Math.max(Math.abs(o.x-q[0].x),Math.abs(t.x-q[0].x))>=Math.max(Math.abs(o.y-q[0].y),Math.abs(t.y-q[0].y))?(g=(o.x+t.x)/2,h=q[0].y):(g=q[0].x,h=(o.y+t.y)/2)}return[[a,{x:k.x+r.x,y:k.y+r.y},...q,{x:l.x+s.x,y:l.y+s.y},c],g,h,v,w]}({source:{x:a,y:b},sourcePosition:c,target:{x:d,y:e},targetPosition:f,center:{x:h,y:i},offset:j});return[k.reduce((a,b,c)=>a+(c>0&&c<k.length-1?function(a,b,c,d){let e=Math.min(cV(a,b)/2,cV(b,c)/2,d),{x:f,y:g}=b;if(a.x===f&&f===c.x||a.y===g&&g===c.y)return`L${f} ${g}`;if(a.y===g){let b=a.x<c.x?-1:1,d=a.y<c.y?1:-1;return`L ${f+e*b},${g}Q ${f},${g} ${f},${g+e*d}`}let h=a.x<c.x?1:-1,i=a.y<c.y?-1:1;return`L ${f},${g+e*i}Q ${f},${g} ${f+e*h},${g}`}(k[c-1],b,k[c+1],g):`${0===c?"M":"L"}${b.x} ${b.y}`),""),l,m,n,p]}let cX=(0,t.memo)(({sourceX:a,sourceY:b,targetX:c,targetY:d,label:e,labelStyle:f,labelShowBg:g,labelBgStyle:h,labelBgPadding:i,labelBgBorderRadius:j,style:k,sourcePosition:l=o.Bottom,targetPosition:m=o.Top,markerEnd:n,markerStart:p,pathOptions:q,interactionWidth:r})=>{let[s,u,v]=cW({sourceX:a,sourceY:b,sourcePosition:l,targetX:c,targetY:d,targetPosition:m,borderRadius:q?.borderRadius,offset:q?.offset});return t.default.createElement(cM,{path:s,labelX:u,labelY:v,label:e,labelStyle:f,labelShowBg:g,labelBgStyle:h,labelBgPadding:i,labelBgBorderRadius:j,style:k,markerEnd:n,markerStart:p,interactionWidth:r})});cX.displayName="SmoothStepEdge";let cY=(0,t.memo)(a=>t.default.createElement(cX,{...a,pathOptions:(0,t.useMemo)(()=>({borderRadius:0,offset:a.pathOptions?.offset}),[a.pathOptions?.offset])}));cY.displayName="StepEdge";let cZ=(0,t.memo)(({sourceX:a,sourceY:b,targetX:c,targetY:d,label:e,labelStyle:f,labelShowBg:g,labelBgStyle:h,labelBgPadding:i,labelBgBorderRadius:j,style:k,markerEnd:l,markerStart:m,interactionWidth:n})=>{let[o,p,q]=function({sourceX:a,sourceY:b,targetX:c,targetY:d}){let[e,f,g,h]=cO({sourceX:a,sourceY:b,targetX:c,targetY:d});return[`M ${a},${b}L ${c},${d}`,e,f,g,h]}({sourceX:a,sourceY:b,targetX:c,targetY:d});return t.default.createElement(cM,{path:o,labelX:p,labelY:q,label:e,labelStyle:f,labelShowBg:g,labelBgStyle:h,labelBgPadding:i,labelBgBorderRadius:j,style:k,markerEnd:l,markerStart:m,interactionWidth:n})});function c$(a,b){return a>=0?.5*a:25*b*Math.sqrt(-a)}function c_({pos:a,x1:b,y1:c,x2:d,y2:e,c:f}){switch(a){case o.Left:return[b-c$(b-d,f),c];case o.Right:return[b+c$(d-b,f),c];case o.Top:return[b,c-c$(c-e,f)];case o.Bottom:return[b,c+c$(e-c,f)]}}function c0({sourceX:a,sourceY:b,sourcePosition:c=o.Bottom,targetX:d,targetY:e,targetPosition:f=o.Top,curvature:g=.25}){let[h,i]=c_({pos:c,x1:a,y1:b,x2:d,y2:e,c:g}),[j,k]=c_({pos:f,x1:d,y1:e,x2:a,y2:b,c:g}),[l,m,n,p]=cP({sourceX:a,sourceY:b,targetX:d,targetY:e,sourceControlX:h,sourceControlY:i,targetControlX:j,targetControlY:k});return[`M${a},${b} C${h},${i} ${j},${k} ${d},${e}`,l,m,n,p]}cZ.displayName="StraightEdge";let c1=(0,t.memo)(({sourceX:a,sourceY:b,targetX:c,targetY:d,sourcePosition:e=o.Bottom,targetPosition:f=o.Top,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:p,pathOptions:q,interactionWidth:r})=>{let[s,u,v]=c0({sourceX:a,sourceY:b,sourcePosition:e,targetX:c,targetY:d,targetPosition:f,curvature:q?.curvature});return t.default.createElement(cM,{path:s,labelX:u,labelY:v,label:g,labelStyle:h,labelShowBg:i,labelBgStyle:j,labelBgPadding:k,labelBgBorderRadius:l,style:m,markerEnd:n,markerStart:p,interactionWidth:r})});c1.displayName="BezierEdge";let c2=(0,t.createContext)(null),c3=c2.Provider;c2.Consumer;let c4=(a,b)=>{if(void 0===a)return"";if("string"==typeof a)return a;let c=b?`${b}__`:"";return`${c}${Object.keys(a).sort().map(b=>`${b}=${a[b]}`).join("&")}`},c5=({x:a,y:b},[c,d,e],f,[g,h])=>{let i={x:(a-c)/e,y:(b-d)/e};return f?{x:g*Math.round(i.x/g),y:h*Math.round(i.y/h)}:i},c6=({x:a,y:b},[c,d,e])=>({x:a*e+c,y:b*e+d}),c7=(a,b=[0,0])=>{if(!a)return{x:0,y:0,positionAbsolute:{x:0,y:0}};let c=(a.width??0)*b[0],d=(a.height??0)*b[1],e={x:a.position.x-c,y:a.position.y-d};return{...e,positionAbsolute:a.positionAbsolute?{x:a.positionAbsolute.x-c,y:a.positionAbsolute.y-d}:e}},c8=(a,b=[0,0])=>0===a.length?{x:0,y:0,width:0,height:0}:(({x:a,y:b,x2:c,y2:d})=>({x:a,y:b,width:c-a,height:d-b}))(a.reduce((a,c)=>{let d,{x:e,y:f}=c7(c,b).positionAbsolute;return d=cC({x:e,y:f,width:c.width||0,height:c.height||0}),{x:Math.min(a.x,d.x),y:Math.min(a.y,d.y),x2:Math.max(a.x2,d.x2),y2:Math.max(a.y2,d.y2)}},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),c9=(a,b,[c,d,e]=[0,0,1],f=!1,g=!1,h=[0,0])=>{let i={x:(b.x-c)/e,y:(b.y-d)/e,width:b.width/e,height:b.height/e},j=[];return a.forEach(a=>{let{width:b,height:c,selectable:d=!0,hidden:e=!1}=a;if(g&&!d||e)return!1;let{positionAbsolute:k}=c7(a,h),l=cE(i,{x:k.x,y:k.y,width:b||0,height:c||0}),m=void 0===b||void 0===c||null===b||null===c,n=(b||0)*(c||0);(m||f&&l>0||l>=n||a.dragging)&&j.push(a)}),j},da=(a,b)=>{let c=a.map(a=>a.id);return b.filter(a=>c.includes(a.source)||c.includes(a.target))},db=(a,b,c,d,e,f=.1)=>{let g=cx(Math.min(b/(a.width*(1+f)),c/(a.height*(1+f))),d,e);return{x:b/2-(a.x+a.width/2)*g,y:c/2-(a.y+a.height/2)*g,zoom:g}},dc=(a,b=0)=>a.transition().duration(b);function dd(a,b,c,d){return(b[c]||[]).reduce((b,e)=>(`${a.id}-${e.id}-${c}`!==d&&b.push({id:e.id||null,type:c,nodeId:a.id,x:(a.positionAbsolute?.x??0)+e.x+e.width/2,y:(a.positionAbsolute?.y??0)+e.y+e.height/2}),b),[])}let de={source:null,target:null,sourceHandle:null,targetHandle:null},df=()=>({handleDomNode:null,isValid:!1,connection:de,endHandle:null});function dg(a,b,c,d,e,f,g){let h="target"===e,i=g.querySelector(`.react-flow__handle[data-id="${a?.nodeId}-${a?.id}-${a?.type}"]`),k={...df(),handleDomNode:i};if(i){let a=dh(void 0,i),e=i.getAttribute("data-nodeid"),g=i.getAttribute("data-handleid"),l=i.classList.contains("connectable"),m=i.classList.contains("connectableend"),n={source:h?e:c,sourceHandle:h?g:d,target:h?c:e,targetHandle:h?d:g};k.connection=n,l&&m&&(b===j.Strict?h&&"source"===a||!h&&"target"===a:e!==c||g!==d)&&(k.endHandle={nodeId:e,handleId:g,type:a},k.isValid=f(n))}return k}function dh(a,b){return a?a:b?.classList.contains("target")?"target":b?.classList.contains("source")?"source":null}function di(a){a?.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function dj({event:a,handleId:b,nodeId:c,onConnect:d,isTarget:e,getState:f,setState:g,isValidConnection:h,edgeUpdaterType:i,onReconnectEnd:j}){let k,l,m=cB(a.target),{connectionMode:n,domNode:o,autoPanOnConnect:p,connectionRadius:q,onConnectStart:r,panBy:s,getNodes:t,cancelConnection:u}=f(),v=0,{x:w,y:x}=cK(a),y=dh(i,m?.elementFromPoint(w,x)),z=o?.getBoundingClientRect();if(!z||!y)return;let A=cK(a,z),B=!1,C=null,D=!1,E=null,F=function({nodes:a,nodeId:b,handleId:c,handleType:d}){return a.reduce((a,e)=>{if(e[cG]){let{handleBounds:f}=e[cG],g=[],h=[];f&&(g=dd(e,f,"source",`${b}-${c}-${d}`),h=dd(e,f,"target",`${b}-${c}-${d}`)),a.push(...g,...h)}return a},[])}({nodes:t(),nodeId:c,handleId:b,handleType:y}),G=()=>{if(!p)return;let[a,b]=cA(A,z);s({x:a,y:b}),v=requestAnimationFrame(G)};function H(a){var d,i;let j,{transform:o}=f();A=cK(a,z);let{handle:p,validHandleResult:r}=function(a,b,c,d,e,f){let{x:g,y:h}=cK(a),i=b.elementsFromPoint(g,h).find(a=>a.classList.contains("react-flow__handle"));if(i){let a=i.getAttribute("data-nodeid");if(a){let b=dh(void 0,i),d=i.getAttribute("data-handleid"),g=f({nodeId:a,id:d,type:b});if(g){let f=e.find(c=>c.nodeId===a&&c.type===b&&c.id===d);return{handle:{id:d,type:b,nodeId:a,x:f?.x||c.x,y:f?.y||c.y},validHandleResult:g}}}}let j=[],k=1/0;if(e.forEach(a=>{let b=Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2);if(b<=d){let c=f(a);b<=k&&(b<k?j=[{handle:a,validHandleResult:c}]:b===k&&j.push({handle:a,validHandleResult:c}),k=b)}}),!j.length)return{handle:null,validHandleResult:df()};if(1===j.length)return j[0];let l=j.some(({validHandleResult:a})=>a.isValid),m=j.some(({handle:a})=>"target"===a.type);return j.find(({handle:a,validHandleResult:b})=>m?"target"===a.type:!l||b.isValid)||j[0]}(a,m,c5(A,o,!1,[1,1]),q,F,a=>dg(a,n,c,b,e?"target":"source",h,m));if(k=p,B||(G(),B=!0),E=r.handleDomNode,C=r.connection,D=r.isValid,g({connectionPosition:k&&D?c6({x:k.x,y:k.y},o):A,connectionStatus:(d=!!k,j=null,(i=D)?j="valid":d&&!i&&(j="invalid"),j),connectionEndHandle:r.endHandle}),!k&&!D&&!E)return di(l);C.source!==C.target&&E&&(di(l),l=E,E.classList.add("connecting","react-flow__handle-connecting"),E.classList.toggle("valid",D),E.classList.toggle("react-flow__handle-valid",D))}function I(a){(k||E)&&C&&D&&d?.(C),f().onConnectEnd?.(a),i&&j?.(a),di(l),u(),cancelAnimationFrame(v),B=!1,D=!1,C=null,E=null,m.removeEventListener("mousemove",H),m.removeEventListener("mouseup",I),m.removeEventListener("touchmove",H),m.removeEventListener("touchend",I)}g({connectionPosition:A,connectionStatus:null,connectionNodeId:c,connectionHandleId:b,connectionHandleType:y,connectionStartHandle:{nodeId:c,handleId:b,type:y},connectionEndHandle:null}),r?.(a,{nodeId:c,handleId:b,handleType:y}),m.addEventListener("mousemove",H),m.addEventListener("mouseup",I),m.addEventListener("touchmove",H),m.addEventListener("touchend",I)}let dk=()=>!0,dl=a=>({connectionStartHandle:a.connectionStartHandle,connectOnClick:a.connectOnClick,noPanClassName:a.noPanClassName}),dm=(0,t.forwardRef)(({type:a="source",position:b=o.Top,isValidConnection:c,isConnectable:d=!0,isConnectableStart:e=!0,isConnectableEnd:f=!0,id:g,onConnect:h,children:i,className:j,onMouseDown:k,onTouchStart:l,...m},n)=>{let p=g||null,q="target"===a,r=cr(),s=(0,t.useContext)(c2),{connectOnClick:u,noPanClassName:v}=cq(dl,Q),{connecting:w,clickConnecting:x}=cq(b=>{let{connectionStartHandle:c,connectionEndHandle:d,connectionClickStartHandle:e}=b;return{connecting:c?.nodeId===s&&c?.handleId===p&&c?.type===a||d?.nodeId===s&&d?.handleId===p&&d?.type===a,clickConnecting:e?.nodeId===s&&e?.handleId===p&&e?.type===a}},Q);s||r.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let y=a=>{let{defaultEdgeOptions:b,onConnect:c,hasDefaultEdges:d}=r.getState(),e={...b,...a};if(d){let{edges:a,setEdges:b}=r.getState();b(((a,b)=>{let c,d;return a.source&&a.target?(d=c="id"in a&&"source"in a&&"target"in a?{...a}:{...a,id:(({source:a,sourceHandle:b,target:c,targetHandle:d})=>`reactflow__edge-${a}${b||""}-${c}${d||""}`)(a)},b.some(a=>a.source===d.source&&a.target===d.target&&(a.sourceHandle===d.sourceHandle||!a.sourceHandle&&!d.sourceHandle)&&(a.targetHandle===d.targetHandle||!a.targetHandle&&!d.targetHandle)))?b:b.concat(c):(cI("006","Can't create edge. An edge needs a source and a target."),b)})(e,a))}c?.(e),h?.(e)},z=a=>{if(!s)return;let b="clientX"in a;e&&(b&&0===a.button||!b)&&dj({event:a,handleId:p,nodeId:s,onConnect:y,isTarget:q,getState:r.getState,setState:r.setState,isValidConnection:c||r.getState().isValidConnection||dk}),b?k?.(a):l?.(a)};return t.default.createElement("div",{"data-handleid":p,"data-nodeid":s,"data-handlepos":b,"data-id":`${s}-${p}-${a}`,className:H(["react-flow__handle",`react-flow__handle-${b}`,"nodrag",v,j,{source:!q,target:q,connectable:d,connectablestart:e,connectableend:f,connecting:x,connectionindicator:d&&(e&&!w||f&&w)}]),onMouseDown:z,onTouchStart:z,onClick:u?b=>{let{onClickConnectStart:d,onClickConnectEnd:f,connectionClickStartHandle:g,connectionMode:h,isValidConnection:i}=r.getState();if(!s||!g&&!e)return;if(!g){d?.(b,{nodeId:s,handleId:p,handleType:a}),r.setState({connectionClickStartHandle:{nodeId:s,type:a,handleId:p}});return}let j=cB(b.target),k=c||i||dk,{connection:l,isValid:m}=dg({nodeId:s,id:p,type:a},h,g.nodeId,g.handleId||null,g.type,k,j);m&&y(l),f?.(b),r.setState({connectionClickStartHandle:null})}:void 0,ref:n,...m},i)});dm.displayName="Handle";var dn=(0,t.memo)(dm);let dp=({data:a,isConnectable:b,targetPosition:c=o.Top,sourcePosition:d=o.Bottom})=>t.default.createElement(t.default.Fragment,null,t.default.createElement(dn,{type:"target",position:c,isConnectable:b}),a?.label,t.default.createElement(dn,{type:"source",position:d,isConnectable:b}));dp.displayName="DefaultNode";var dq=(0,t.memo)(dp);let dr=({data:a,isConnectable:b,sourcePosition:c=o.Bottom})=>t.default.createElement(t.default.Fragment,null,a?.label,t.default.createElement(dn,{type:"source",position:c,isConnectable:b}));dr.displayName="InputNode";var ds=(0,t.memo)(dr);let dt=({data:a,isConnectable:b,targetPosition:c=o.Top})=>t.default.createElement(t.default.Fragment,null,t.default.createElement(dn,{type:"target",position:c,isConnectable:b}),a?.label);dt.displayName="OutputNode";var du=(0,t.memo)(dt);let dv=()=>null;dv.displayName="GroupNode";let dw=a=>({selectedNodes:a.getNodes().filter(a=>a.selected),selectedEdges:a.edges.filter(a=>a.selected).map(a=>({...a}))}),dx=a=>a.id;function dy(a,b){return Q(a.selectedNodes.map(dx),b.selectedNodes.map(dx))&&Q(a.selectedEdges.map(dx),b.selectedEdges.map(dx))}let dz=(0,t.memo)(({onSelectionChange:a})=>{let b=cr(),{selectedNodes:c,selectedEdges:d}=cq(dw,dy);return(0,t.useEffect)(()=>{let e={nodes:c,edges:d};a?.(e),b.getState().onSelectionChange.forEach(a=>a(e))},[c,d,a]),null});dz.displayName="SelectionListener";let dA=a=>!!a.onSelectionChange;function dB({onSelectionChange:a}){let b=cq(dA);return a||b?t.default.createElement(dz,{onSelectionChange:a}):null}let dC=a=>({setNodes:a.setNodes,setEdges:a.setEdges,setDefaultNodesAndEdges:a.setDefaultNodesAndEdges,setMinZoom:a.setMinZoom,setMaxZoom:a.setMaxZoom,setTranslateExtent:a.setTranslateExtent,setNodeExtent:a.setNodeExtent,reset:a.reset});function dD(a,b){(0,t.useEffect)(()=>{void 0!==a&&b(a)},[a])}function dE(a,b,c){(0,t.useEffect)(()=>{void 0!==b&&c({[a]:b})},[b])}let dF=({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,onConnect:e,onConnectStart:f,onConnectEnd:g,onClickConnectStart:h,onClickConnectEnd:i,nodesDraggable:j,nodesConnectable:k,nodesFocusable:l,edgesFocusable:m,edgesUpdatable:n,elevateNodesOnSelect:o,minZoom:p,maxZoom:q,nodeExtent:r,onNodesChange:s,onEdgesChange:u,elementsSelectable:v,connectionMode:w,snapGrid:x,snapToGrid:y,translateExtent:z,connectOnClick:A,defaultEdgeOptions:B,fitView:C,fitViewOptions:D,onNodesDelete:E,onEdgesDelete:F,onNodeDrag:G,onNodeDragStart:H,onNodeDragStop:I,onSelectionDrag:J,onSelectionDragStart:K,onSelectionDragStop:L,noPanClassName:M,nodeOrigin:N,rfId:O,autoPanOnConnect:P,autoPanOnNodeDrag:R,onError:S,connectionRadius:T,isValidConnection:U,nodeDragThreshold:V})=>{let{setNodes:W,setEdges:X,setDefaultNodesAndEdges:Y,setMinZoom:Z,setMaxZoom:$,setTranslateExtent:_,setNodeExtent:aa,reset:ab}=cq(dC,Q),ac=cr();return(0,t.useEffect)(()=>(Y(c,d?.map(a=>({...a,...B}))),()=>{ab()}),[]),dE("defaultEdgeOptions",B,ac.setState),dE("connectionMode",w,ac.setState),dE("onConnect",e,ac.setState),dE("onConnectStart",f,ac.setState),dE("onConnectEnd",g,ac.setState),dE("onClickConnectStart",h,ac.setState),dE("onClickConnectEnd",i,ac.setState),dE("nodesDraggable",j,ac.setState),dE("nodesConnectable",k,ac.setState),dE("nodesFocusable",l,ac.setState),dE("edgesFocusable",m,ac.setState),dE("edgesUpdatable",n,ac.setState),dE("elementsSelectable",v,ac.setState),dE("elevateNodesOnSelect",o,ac.setState),dE("snapToGrid",y,ac.setState),dE("snapGrid",x,ac.setState),dE("onNodesChange",s,ac.setState),dE("onEdgesChange",u,ac.setState),dE("connectOnClick",A,ac.setState),dE("fitViewOnInit",C,ac.setState),dE("fitViewOnInitOptions",D,ac.setState),dE("onNodesDelete",E,ac.setState),dE("onEdgesDelete",F,ac.setState),dE("onNodeDrag",G,ac.setState),dE("onNodeDragStart",H,ac.setState),dE("onNodeDragStop",I,ac.setState),dE("onSelectionDrag",J,ac.setState),dE("onSelectionDragStart",K,ac.setState),dE("onSelectionDragStop",L,ac.setState),dE("noPanClassName",M,ac.setState),dE("nodeOrigin",N,ac.setState),dE("rfId",O,ac.setState),dE("autoPanOnConnect",P,ac.setState),dE("autoPanOnNodeDrag",R,ac.setState),dE("onError",S,ac.setState),dE("connectionRadius",T,ac.setState),dE("isValidConnection",U,ac.setState),dE("nodeDragThreshold",V,ac.setState),dD(a,W),dD(b,X),dD(p,Z),dD(q,$),dD(z,_),dD(r,aa),null},dG={display:"none"},dH={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},dI="react-flow__node-desc",dJ="react-flow__edge-desc",dK=a=>a.ariaLiveMessage;function dL({rfId:a}){let b=cq(dK);return t.default.createElement("div",{id:`react-flow__aria-live-${a}`,"aria-live":"assertive","aria-atomic":"true",style:dH},b)}function dM({rfId:a,disableKeyboardA11y:b}){return t.default.createElement(t.default.Fragment,null,t.default.createElement("div",{id:`${dI}-${a}`,style:dG},"Press enter or space to select a node.",!b&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),t.default.createElement("div",{id:`${dJ}-${a}`,style:dG},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!b&&t.default.createElement(dL,{rfId:a}))}var dN=(a=null,b={actInsideInputWithModifier:!0})=>{let[c,d]=(0,t.useState)(!1),e=(0,t.useRef)(!1),f=(0,t.useRef)(new Set([])),[g,h]=(0,t.useMemo)(()=>{if(null!==a){let b=(Array.isArray(a)?a:[a]).filter(a=>"string"==typeof a).map(a=>a.split("+")),c=b.reduce((a,b)=>a.concat(...b),[]);return[b,c]}return[[],[]]},[a]);return(0,t.useEffect)(()=>{let c="undefined"!=typeof document?document:null,i=b?.target||c;if(null!==a){let a=a=>{if(e.current=a.ctrlKey||a.metaKey||a.shiftKey,(!e.current||e.current&&!b.actInsideInputWithModifier)&&cJ(a))return!1;let c=dP(a.code,h);f.current.add(a[c]),dO(g,f.current,!1)&&(a.preventDefault(),d(!0))},c=a=>{if((!e.current||e.current&&!b.actInsideInputWithModifier)&&cJ(a))return!1;let c=dP(a.code,h);dO(g,f.current,!0)?(d(!1),f.current.clear()):f.current.delete(a[c]),"Meta"===a.key&&f.current.clear(),e.current=!1},j=()=>{f.current.clear(),d(!1)};return i?.addEventListener("keydown",a),i?.addEventListener("keyup",c),window.addEventListener("blur",j),()=>{i?.removeEventListener("keydown",a),i?.removeEventListener("keyup",c),window.removeEventListener("blur",j)}}},[a,d]),c};function dO(a,b,c){return a.filter(a=>c||a.length===b.size).some(a=>a.every(a=>b.has(a)))}function dP(a,b){return b.includes(a)?"code":"key"}function dQ(a,b,c){a.forEach(d=>{let e=d.parentNode||d.parentId;if(e&&!a.has(e))throw Error(`Parent node ${e} not found`);if(e||c?.[d.id]){let{x:e,y:f,z:g}=function a(b,c,d,e){let f=b.parentNode||b.parentId;if(!f)return d;let g=c.get(f),h=c7(g,e);return a(g,c,{x:(d.x??0)+h.x,y:(d.y??0)+h.y,z:(g[cG]?.z??0)>(d.z??0)?g[cG]?.z??0:d.z??0},e)}(d,a,{...d.position,z:d[cG]?.z??0},b);d.positionAbsolute={x:e,y:f},d[cG].z=g,c?.[d.id]&&(d[cG].isParent=!0)}})}function dR(a,b,c,d){let e=new Map,f={},g=1e3*!!d;return a.forEach(a=>{let c=(cF(a.zIndex)?a.zIndex:0)+(a.selected?g:0),d=b.get(a.id),h={...a,positionAbsolute:{x:a.position.x,y:a.position.y}},i=a.parentNode||a.parentId;i&&(f[i]=!0),Object.defineProperty(h,cG,{enumerable:!1,value:{handleBounds:d?.type&&d?.type!==a.type?void 0:d?.[cG]?.handleBounds,z:c}}),e.set(a.id,h)}),dQ(e,c,f),e}function dS(a,b={}){let{getNodes:c,width:d,height:e,minZoom:f,maxZoom:g,d3Zoom:h,d3Selection:i,fitViewOnInitDone:j,fitViewOnInit:k,nodeOrigin:l}=a(),m=b.initial&&!j&&k;if(h&&i&&(m||!b.initial)){let a=c().filter(a=>{let c=b.includeHiddenNodes?a.width&&a.height:!a.hidden;return b.nodes?.length?c&&b.nodes.some(b=>b.id===a.id):c}),j=a.every(a=>a.width&&a.height);if(a.length>0&&j){let{x:c,y:j,zoom:k}=db(c8(a,l),d,e,b.minZoom??f,b.maxZoom??g,b.padding??.1),m=b8.translate(c,j).scale(k);return"number"==typeof b.duration&&b.duration>0?h.transform(dc(i,b.duration),m):h.transform(i,m),!0}}return!1}function dT({changedNodes:a,changedEdges:b,get:c,set:d}){let{nodeInternals:e,edges:f,onNodesChange:g,onEdgesChange:h,hasDefaultNodes:i,hasDefaultEdges:j}=c();a?.length&&(i&&d({nodeInternals:(a.forEach(a=>{let b=e.get(a.id);b&&e.set(b.id,{...b,[cG]:b[cG],selected:a.selected})}),new Map(e))}),g?.(a)),b?.length&&(j&&d({edges:f.map(a=>{let c=b.find(b=>b.id===a.id);return c&&(a.selected=c.selected),a})}),h?.(b))}let dU=()=>{},dV={zoomIn:dU,zoomOut:dU,zoomTo:dU,getZoom:()=>1,setViewport:dU,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:dU,fitBounds:dU,project:a=>a,screenToFlowPosition:a=>a,flowToScreenPosition:a=>a,viewportInitialized:!1},dW=a=>({d3Zoom:a.d3Zoom,d3Selection:a.d3Selection});function dX(){let a=(()=>{let a=cr(),{d3Zoom:b,d3Selection:c}=cq(dW,Q);return(0,t.useMemo)(()=>c&&b?{zoomIn:a=>b.scaleBy(dc(c,a?.duration),1.2),zoomOut:a=>b.scaleBy(dc(c,a?.duration),1/1.2),zoomTo:(a,d)=>b.scaleTo(dc(c,d?.duration),a),getZoom:()=>a.getState().transform[2],setViewport:(d,e)=>{let[f,g,h]=a.getState().transform,i=b8.translate(d.x??f,d.y??g).scale(d.zoom??h);b.transform(dc(c,e?.duration),i)},getViewport:()=>{let[b,c,d]=a.getState().transform;return{x:b,y:c,zoom:d}},fitView:b=>dS(a.getState,b),setCenter:(d,e,f)=>{let{width:g,height:h,maxZoom:i}=a.getState(),j=void 0!==f?.zoom?f.zoom:i,k=g/2-d*j,l=h/2-e*j,m=b8.translate(k,l).scale(j);b.transform(dc(c,f?.duration),m)},fitBounds:(d,e)=>{let{width:f,height:g,minZoom:h,maxZoom:i}=a.getState(),{x:j,y:k,zoom:l}=db(d,f,g,h,i,e?.padding??.1),m=b8.translate(j,k).scale(l);b.transform(dc(c,e?.duration),m)},project:b=>{let{transform:c,snapToGrid:d,snapGrid:e}=a.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"),c5(b,c,d,e)},screenToFlowPosition:b=>{let{transform:c,snapToGrid:d,snapGrid:e,domNode:f}=a.getState();if(!f)return b;let{x:g,y:h}=f.getBoundingClientRect();return c5({x:b.x-g,y:b.y-h},c,d,e)},flowToScreenPosition:b=>{let{transform:c,domNode:d}=a.getState();if(!d)return b;let{x:e,y:f}=d.getBoundingClientRect(),g=c6(b,c);return{x:g.x+e,y:g.y+f}},viewportInitialized:!0}:dV,[b,c])})(),b=cr(),c=(0,t.useCallback)(()=>b.getState().getNodes().map(a=>({...a})),[]),d=(0,t.useCallback)(a=>b.getState().nodeInternals.get(a),[]),e=(0,t.useCallback)(()=>{let{edges:a=[]}=b.getState();return a.map(a=>({...a}))},[]),f=(0,t.useCallback)(a=>{let{edges:c=[]}=b.getState();return c.find(b=>b.id===a)},[]),g=(0,t.useCallback)(a=>{let{getNodes:c,setNodes:d,hasDefaultNodes:e,onNodesChange:f}=b.getState(),g=c(),h="function"==typeof a?a(g):a;e?d(h):f&&f(0===h.length?g.map(a=>({type:"remove",id:a.id})):h.map(a=>({item:a,type:"reset"})))},[]),h=(0,t.useCallback)(a=>{let{edges:c=[],setEdges:d,hasDefaultEdges:e,onEdgesChange:f}=b.getState(),g="function"==typeof a?a(c):a;e?d(g):f&&f(0===g.length?c.map(a=>({type:"remove",id:a.id})):g.map(a=>({item:a,type:"reset"})))},[]),i=(0,t.useCallback)(a=>{let c=Array.isArray(a)?a:[a],{getNodes:d,setNodes:e,hasDefaultNodes:f,onNodesChange:g}=b.getState();f?e([...d(),...c]):g&&g(c.map(a=>({item:a,type:"add"})))},[]),j=(0,t.useCallback)(a=>{let c=Array.isArray(a)?a:[a],{edges:d=[],setEdges:e,hasDefaultEdges:f,onEdgesChange:g}=b.getState();f?e([...d,...c]):g&&g(c.map(a=>({item:a,type:"add"})))},[]),k=(0,t.useCallback)(()=>{let{getNodes:a,edges:c=[],transform:d}=b.getState(),[e,f,g]=d;return{nodes:a().map(a=>({...a})),edges:c.map(a=>({...a})),viewport:{x:e,y:f,zoom:g}}},[]),l=(0,t.useCallback)(({nodes:a,edges:c})=>{let{nodeInternals:d,getNodes:e,edges:f,hasDefaultNodes:g,hasDefaultEdges:h,onNodesDelete:i,onEdgesDelete:j,onNodesChange:k,onEdgesChange:l}=b.getState(),m=(a||[]).map(a=>a.id),n=(c||[]).map(a=>a.id),o=e().reduce((a,b)=>{let c=b.parentNode||b.parentId,d=!m.includes(b.id)&&c&&a.find(a=>a.id===c);return("boolean"!=typeof b.deletable||b.deletable)&&(m.includes(b.id)||d)&&a.push(b),a},[]),p=f.filter(a=>"boolean"!=typeof a.deletable||a.deletable),q=p.filter(a=>n.includes(a.id));if(o||q){let a=[...q,...da(o,p)],c=a.reduce((a,b)=>(a.includes(b.id)||a.push(b.id),a),[]);(h||g)&&(h&&b.setState({edges:f.filter(a=>!c.includes(a.id))}),g&&(o.forEach(a=>{d.delete(a.id)}),b.setState({nodeInternals:new Map(d)}))),c.length>0&&(j?.(a),l&&l(c.map(a=>({id:a,type:"remove"})))),o.length>0&&(i?.(o),k&&k(o.map(a=>({id:a.id,type:"remove"}))))}},[]),m=(0,t.useCallback)(a=>{let c=cF(a.width)&&cF(a.height)&&cF(a.x)&&cF(a.y),d=c?null:b.getState().nodeInternals.get(a.id);return c||d?[c?a:cD(d),d,c]:[null,null,c]},[]),n=(0,t.useCallback)((a,c=!0,d)=>{let[e,f,g]=m(a);return e?(d||b.getState().getNodes()).filter(a=>{if(!g&&(a.id===f.id||!a.positionAbsolute))return!1;let b=cE(cD(a),e);return c&&b>0||b>=e.width*e.height}):[]},[]),o=(0,t.useCallback)((a,b,c=!0)=>{let[d]=m(a);if(!d)return!1;let e=cE(d,b);return c&&e>0||e>=d.width*d.height},[]);return(0,t.useMemo)(()=>({...a,getNodes:c,getNode:d,getEdges:e,getEdge:f,setNodes:g,setEdges:h,addNodes:i,addEdges:j,toObject:k,deleteElements:l,getIntersectingNodes:n,isNodeIntersecting:o}),[a,c,d,e,f,g,h,i,j,k,l,n,o])}let dY={actInsideInputWithModifier:!1},dZ={position:"absolute",width:"100%",height:"100%",top:0,left:0},d$=a=>({x:a.x,y:a.y,zoom:a.k}),d_=(a,b)=>a.target.closest(`.${b}`),d0=(a,b)=>2===b&&Array.isArray(a)&&a.includes(2),d1=a=>{let b=a.ctrlKey&&cL()?10:1;return-a.deltaY*(1===a.deltaMode?.05:a.deltaMode?1:.002)*b},d2=a=>({d3Zoom:a.d3Zoom,d3Selection:a.d3Selection,d3ZoomHandler:a.d3ZoomHandler,userSelectionActive:a.userSelectionActive}),d3=({onMove:a,onMoveStart:b,onMoveEnd:c,onPaneContextMenu:d,zoomOnScroll:e=!0,zoomOnPinch:f=!0,panOnScroll:g=!1,panOnScrollSpeed:h=.5,panOnScrollMode:i=k.Free,zoomOnDoubleClick:j=!0,elementsSelectable:l,panOnDrag:m=!0,defaultViewport:n,translateExtent:o,minZoom:p,maxZoom:q,zoomActivationKeyCode:r,preventScrolling:s=!0,children:u,noWheelClassName:v,noPanClassName:w})=>{let x,y=(0,t.useRef)(),z=cr(),A=(0,t.useRef)(!1),B=(0,t.useRef)(!1),C=(0,t.useRef)(null),D=(0,t.useRef)({x:0,y:0,zoom:0}),{d3Zoom:E,d3Selection:F,d3ZoomHandler:G,userSelectionActive:H}=cq(d2,Q),I=dN(r),J=(0,t.useRef)(0),K=(0,t.useRef)(!1),L=(0,t.useRef)();return x=cr(),(0,t.useEffect)(()=>{let a,b=()=>{if(!C.current)return;let a=cw(C.current);(0===a.height||0===a.width)&&x.getState().onError?.("004","The React Flow parent container needs a width and a height to render the graph."),x.setState({width:a.width||500,height:a.height||500})};return b(),window.addEventListener("resize",b),C.current&&(a=new ResizeObserver(()=>b())).observe(C.current),()=>{window.removeEventListener("resize",b),a&&C.current&&a.unobserve(C.current)}},[]),(0,t.useEffect)(()=>{if(C.current){let a=C.current.getBoundingClientRect(),b=(function(){var a,b,c,d=cb,e=cc,f=cg,g=ce,h=cf,i=[0,1/0],j=[[-1/0,-1/0],[1/0,1/0]],k=250,l=aQ,m=S("start","zoom","end"),n=0,o=10;function p(a){a.property("__zoom",cd).on("wheel.zoom",w,{passive:!1}).on("mousedown.zoom",x).on("dblclick.zoom",y).filter(h).on("touchstart.zoom",z).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function q(a,b){return(b=Math.max(i[0],Math.min(i[1],b)))===a.k?a:new b7(b,a.x,a.y)}function r(a,b,c){var d=b[0]-c[0]*a.k,e=b[1]-c[1]*a.k;return d===a.x&&e===a.y?a:new b7(a.k,d,e)}function s(a){return[(+a[0][0]+ +a[1][0])/2,(+a[0][1]+ +a[1][1])/2]}function t(a,b,c,d){a.on("start.zoom",function(){u(this,arguments).event(d).start()}).on("interrupt.zoom end.zoom",function(){u(this,arguments).event(d).end()}).tween("zoom",function(){var a=arguments,f=u(this,a).event(d),g=e.apply(this,a),h=null==c?s(g):"function"==typeof c?c.apply(this,a):c,i=Math.max(g[1][0]-g[0][0],g[1][1]-g[0][1]),j=this.__zoom,k="function"==typeof b?b.apply(this,a):b,m=l(j.invert(h).concat(i/j.k),k.invert(h).concat(i/k.k));return function(a){if(1===a)a=k;else{var b=m(a),c=i/b[2];a=new b7(c,h[0]-b[0]*c,h[1]-b[1]*c)}f.zoom(null,a)}})}function u(a,b,c){return!c&&a.__zooming||new v(a,b)}function v(a,b){this.that=a,this.args=b,this.active=0,this.sourceEvent=null,this.extent=e.apply(a,b),this.taps=0}function w(a,...b){if(d.apply(this,arguments)){var c=u(this,b).event(a),e=this.__zoom,h=Math.max(i[0],Math.min(i[1],e.k*Math.pow(2,g.apply(this,arguments)))),k=aR(a);if(c.wheel)(c.mouse[0][0]!==k[0]||c.mouse[0][1]!==k[1])&&(c.mouse[1]=e.invert(c.mouse[0]=k)),clearTimeout(c.wheel);else{if(e.k===h)return;c.mouse=[k,e.invert(k)],be(this),c.start()}ca(a),c.wheel=setTimeout(function(){c.wheel=null,c.end()},150),c.zoom("mouse",f(r(q(e,h),c.mouse[0],c.mouse[1]),c.extent,j))}}function x(a,...b){if(!c&&d.apply(this,arguments)){var e=a.currentTarget,g=u(this,b,!0).event(a),h=aI(a.view).on("mousemove.zoom",function(a){if(ca(a),!g.moved){var b=a.clientX-k,c=a.clientY-l;g.moved=b*b+c*c>n}g.event(a).zoom("mouse",f(r(g.that.__zoom,g.mouse[0]=aR(a,e),g.mouse[1]),g.extent,j))},!0).on("mouseup.zoom",function(a){h.on("mousemove.zoom mouseup.zoom",null),aO(a.view,g.moved),ca(a),g.event(a).end()},!0),i=aR(a,e),k=a.clientX,l=a.clientY;aN(a.view),b9(a),g.mouse=[i,this.__zoom.invert(i)],be(this),g.start()}}function y(a,...b){if(d.apply(this,arguments)){var c=this.__zoom,g=aR(a.changedTouches?a.changedTouches[0]:a,this),h=c.invert(g),i=c.k*(a.shiftKey?.5:2),l=f(r(q(c,i),g,h),e.apply(this,b),j);ca(a),k>0?aI(this).transition().duration(k).call(t,l,g,a):aI(this).call(p.transform,l,g,a)}}function z(c,...e){if(d.apply(this,arguments)){var f,g,h,i,j=c.touches,k=j.length,l=u(this,e,c.changedTouches.length===k).event(c);for(b9(c),g=0;g<k;++g)i=[i=aR(h=j[g],this),this.__zoom.invert(i),h.identifier],l.touch0?l.touch1||l.touch0[2]===i[2]||(l.touch1=i,l.taps=0):(l.touch0=i,f=!0,l.taps=1+!!a);a&&(a=clearTimeout(a)),f&&(l.taps<2&&(b=i[0],a=setTimeout(function(){a=null},500)),be(this),l.start())}}function A(a,...b){if(this.__zooming){var c,d,e,g,h=u(this,b).event(a),i=a.changedTouches,k=i.length;for(ca(a),c=0;c<k;++c)e=aR(d=i[c],this),h.touch0&&h.touch0[2]===d.identifier?h.touch0[0]=e:h.touch1&&h.touch1[2]===d.identifier&&(h.touch1[0]=e);if(d=h.that.__zoom,h.touch1){var l=h.touch0[0],m=h.touch0[1],n=h.touch1[0],o=h.touch1[1],p=(p=n[0]-l[0])*p+(p=n[1]-l[1])*p,s=(s=o[0]-m[0])*s+(s=o[1]-m[1])*s;d=q(d,Math.sqrt(p/s)),e=[(l[0]+n[0])/2,(l[1]+n[1])/2],g=[(m[0]+o[0])/2,(m[1]+o[1])/2]}else{if(!h.touch0)return;e=h.touch0[0],g=h.touch0[1]}h.zoom("touch",f(r(d,e,g),h.extent,j))}}function B(a,...d){if(this.__zooming){var e,f,g=u(this,d).event(a),h=a.changedTouches,i=h.length;for(b9(a),c&&clearTimeout(c),c=setTimeout(function(){c=null},500),e=0;e<i;++e)f=h[e],g.touch0&&g.touch0[2]===f.identifier?delete g.touch0:g.touch1&&g.touch1[2]===f.identifier&&delete g.touch1;if(g.touch1&&!g.touch0&&(g.touch0=g.touch1,delete g.touch1),g.touch0)g.touch0[1]=this.__zoom.invert(g.touch0[0]);else if(g.end(),2===g.taps&&(f=aR(f,this),Math.hypot(b[0]-f[0],b[1]-f[1])<o)){var j=aI(this).on("dblclick.zoom");j&&j.apply(this,arguments)}}}return p.transform=function(a,b,c,d){var e=a.selection?a.selection():a;e.property("__zoom",cd),a!==e?t(a,b,c,d):e.interrupt().each(function(){u(this,arguments).event(d).start().zoom(null,"function"==typeof b?b.apply(this,arguments):b).end()})},p.scaleBy=function(a,b,c,d){p.scaleTo(a,function(){var a=this.__zoom.k,c="function"==typeof b?b.apply(this,arguments):b;return a*c},c,d)},p.scaleTo=function(a,b,c,d){p.transform(a,function(){var a=e.apply(this,arguments),d=this.__zoom,g=null==c?s(a):"function"==typeof c?c.apply(this,arguments):c,h=d.invert(g),i="function"==typeof b?b.apply(this,arguments):b;return f(r(q(d,i),g,h),a,j)},c,d)},p.translateBy=function(a,b,c,d){p.transform(a,function(){return f(this.__zoom.translate("function"==typeof b?b.apply(this,arguments):b,"function"==typeof c?c.apply(this,arguments):c),e.apply(this,arguments),j)},null,d)},p.translateTo=function(a,b,c,d,g){p.transform(a,function(){var a=e.apply(this,arguments),g=this.__zoom,h=null==d?s(a):"function"==typeof d?d.apply(this,arguments):d;return f(b8.translate(h[0],h[1]).scale(g.k).translate("function"==typeof b?-b.apply(this,arguments):-b,"function"==typeof c?-c.apply(this,arguments):-c),a,j)},d,g)},v.prototype={event:function(a){return a&&(this.sourceEvent=a),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(a,b){return this.mouse&&"mouse"!==a&&(this.mouse[1]=b.invert(this.mouse[0])),this.touch0&&"touch"!==a&&(this.touch0[1]=b.invert(this.touch0[0])),this.touch1&&"touch"!==a&&(this.touch1[1]=b.invert(this.touch1[0])),this.that.__zoom=b,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(a){var b=aI(this.that).datum();m.call(a,this.that,new b6(a,{sourceEvent:this.sourceEvent,target:p,type:a,transform:this.that.__zoom,dispatch:m}),b)}},p.wheelDelta=function(a){return arguments.length?(g="function"==typeof a?a:b5(+a),p):g},p.filter=function(a){return arguments.length?(d="function"==typeof a?a:b5(!!a),p):d},p.touchable=function(a){return arguments.length?(h="function"==typeof a?a:b5(!!a),p):h},p.extent=function(a){return arguments.length?(e="function"==typeof a?a:b5([[+a[0][0],+a[0][1]],[+a[1][0],+a[1][1]]]),p):e},p.scaleExtent=function(a){return arguments.length?(i[0]=+a[0],i[1]=+a[1],p):[i[0],i[1]]},p.translateExtent=function(a){return arguments.length?(j[0][0]=+a[0][0],j[1][0]=+a[1][0],j[0][1]=+a[0][1],j[1][1]=+a[1][1],p):[[j[0][0],j[0][1]],[j[1][0],j[1][1]]]},p.constrain=function(a){return arguments.length?(f=a,p):f},p.duration=function(a){return arguments.length?(k=+a,p):k},p.interpolate=function(a){return arguments.length?(l=a,p):l},p.on=function(){var a=m.on.apply(m,arguments);return a===m?p:a},p.clickDistance=function(a){return arguments.length?(n=(a*=1)*a,p):Math.sqrt(n)},p.tapDistance=function(a){return arguments.length?(o=+a,p):o},p})().scaleExtent([p,q]).translateExtent(o),c=aI(C.current).call(b),d=b8.translate(n.x,n.y).scale(cx(n.zoom,p,q)),e=[[0,0],[a.width,a.height]],f=b.constrain()(d,e,o);b.transform(c,f),b.wheelDelta(d1),z.setState({d3Zoom:b,d3Selection:c,d3ZoomHandler:c.on("wheel.zoom"),transform:[f.x,f.y,f.k],domNode:C.current.closest(".react-flow")})}},[]),(0,t.useEffect)(()=>{F&&E&&(!g||I||H?void 0!==G&&F.on("wheel.zoom",function(a,b){if(!s&&"wheel"===a.type&&!a.ctrlKey||d_(a,v))return null;a.preventDefault(),G.call(this,a,b)},{passive:!1}):F.on("wheel.zoom",d=>{if(d_(d,v))return!1;d.preventDefault(),d.stopImmediatePropagation();let e=F.property("__zoom").k||1;if(d.ctrlKey&&f){let a=aR(d),b=e*Math.pow(2,d1(d));E.scaleTo(F,b,a,d);return}let g=1===d.deltaMode?20:1,j=i===k.Vertical?0:d.deltaX*g,l=i===k.Horizontal?0:d.deltaY*g;!cL()&&d.shiftKey&&i!==k.Vertical&&(j=d.deltaY*g,l=0),E.translateBy(F,-(j/e)*h,-(l/e)*h,{internal:!0});let m=d$(F.property("__zoom")),{onViewportChangeStart:n,onViewportChange:o,onViewportChangeEnd:p}=z.getState();clearTimeout(L.current),K.current||(K.current=!0,b?.(d,m),n?.(m)),K.current&&(a?.(d,m),o?.(m),L.current=setTimeout(()=>{c?.(d,m),p?.(m),K.current=!1},150))},{passive:!1}))},[H,g,i,F,E,G,I,f,s,v,b,a,c]),(0,t.useEffect)(()=>{E&&E.on("start",a=>{if(!a.sourceEvent||a.sourceEvent.internal)return null;J.current=a.sourceEvent?.button;let{onViewportChangeStart:c}=z.getState(),d=d$(a.transform);A.current=!0,D.current=d,a.sourceEvent?.type==="mousedown"&&z.setState({paneDragging:!0}),c?.(d),b?.(a.sourceEvent,d)})},[E,b]),(0,t.useEffect)(()=>{E&&(H&&!A.current?E.on("zoom",null):H||E.on("zoom",b=>{let{onViewportChange:c}=z.getState();if(z.setState({transform:[b.transform.x,b.transform.y,b.transform.k]}),B.current=!!(d&&d0(m,J.current??0)),(a||c)&&!b.sourceEvent?.internal){let d=d$(b.transform);c?.(d),a?.(b.sourceEvent,d)}}))},[H,E,a,m,d]),(0,t.useEffect)(()=>{E&&E.on("end",a=>{let b,e;if(!a.sourceEvent||a.sourceEvent.internal)return null;let{onViewportChangeEnd:f}=z.getState();if(A.current=!1,z.setState({paneDragging:!1}),d&&d0(m,J.current??0)&&!B.current&&d(a.sourceEvent),B.current=!1,(c||f)&&(b=D.current,e=a.transform,b.x!==e.x||b.y!==e.y||b.zoom!==e.k)){let b=d$(a.transform);D.current=b,clearTimeout(y.current),y.current=setTimeout(()=>{f?.(b),c?.(a.sourceEvent,b)},150*!!g)}})},[E,g,m,c,d]),(0,t.useEffect)(()=>{E&&E.filter(a=>{let b=I||e,c=f&&a.ctrlKey;if((!0===m||Array.isArray(m)&&m.includes(1))&&1===a.button&&"mousedown"===a.type&&(d_(a,"react-flow__node")||d_(a,"react-flow__edge")))return!0;if(!m&&!b&&!g&&!j&&!f||H||!j&&"dblclick"===a.type||d_(a,v)&&"wheel"===a.type||d_(a,w)&&("wheel"!==a.type||g&&"wheel"===a.type&&!I)||!f&&a.ctrlKey&&"wheel"===a.type||!b&&!g&&!c&&"wheel"===a.type||!m&&("mousedown"===a.type||"touchstart"===a.type)||Array.isArray(m)&&!m.includes(a.button)&&"mousedown"===a.type)return!1;let d=Array.isArray(m)&&m.includes(a.button)||!a.button||a.button<=1;return(!a.ctrlKey||"wheel"===a.type)&&d})},[H,E,e,f,g,j,m,l,I]),t.default.createElement("div",{className:"react-flow__renderer",ref:C,style:dZ},u)},d4=a=>({userSelectionActive:a.userSelectionActive,userSelectionRect:a.userSelectionRect});function d5(){let{userSelectionActive:a,userSelectionRect:b}=cq(d4,Q);return a&&b?t.default.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:b.width,height:b.height,transform:`translate(${b.x}px, ${b.y}px)`}}):null}function d6(a,b){let c=b.parentNode||b.parentId,d=a.find(a=>a.id===c);if(d){let a=b.position.x+b.width-d.width,c=b.position.y+b.height-d.height;if(a>0||c>0||b.position.x<0||b.position.y<0){if(d.style={...d.style},d.style.width=d.style.width??d.width,d.style.height=d.style.height??d.height,a>0&&(d.style.width+=a),c>0&&(d.style.height+=c),b.position.x<0){let a=Math.abs(b.position.x);d.position.x=d.position.x-a,d.style.width+=a,b.position.x=0}if(b.position.y<0){let a=Math.abs(b.position.y);d.position.y=d.position.y-a,d.style.height+=a,b.position.y=0}d.width=d.style.width,d.height=d.style.height}}}function d7(a,b){if(a.some(a=>"reset"===a.type))return a.filter(a=>"reset"===a.type).map(a=>a.item);let c=a.filter(a=>"add"===a.type).map(a=>a.item);return b.reduce((b,c)=>{let d=a.filter(a=>a.id===c.id);if(0===d.length)return b.push(c),b;let e={...c};for(let a of d)if(a)switch(a.type){case"select":e.selected=a.selected;break;case"position":void 0!==a.position&&(e.position=a.position),void 0!==a.positionAbsolute&&(e.positionAbsolute=a.positionAbsolute),void 0!==a.dragging&&(e.dragging=a.dragging),e.expandParent&&d6(b,e);break;case"dimensions":void 0!==a.dimensions&&(e.width=a.dimensions.width,e.height=a.dimensions.height),void 0!==a.updateStyle&&(e.style={...e.style||{},...a.dimensions}),"boolean"==typeof a.resizing&&(e.resizing=a.resizing),e.expandParent&&d6(b,e);break;case"remove":return b}return b.push(e),b},c)}function d8(a,b){return d7(a,b)}let d9=(a,b)=>({id:a,type:"select",selected:b});function ea(a,b){return a.reduce((a,c)=>{let d=b.includes(c.id);return!c.selected&&d?(c.selected=!0,a.push(d9(c.id,!0))):c.selected&&!d&&(c.selected=!1,a.push(d9(c.id,!1))),a},[])}let eb=(a,b)=>c=>{c.target===b.current&&a?.(c)},ec=a=>({userSelectionActive:a.userSelectionActive,elementsSelectable:a.elementsSelectable,dragging:a.paneDragging}),ed=(0,t.memo)(({isSelecting:a,selectionMode:b=l.Full,panOnDrag:c,onSelectionStart:d,onSelectionEnd:e,onPaneClick:f,onPaneContextMenu:g,onPaneScroll:h,onPaneMouseEnter:i,onPaneMouseMove:j,onPaneMouseLeave:k,children:m})=>{let n=(0,t.useRef)(null),o=cr(),p=(0,t.useRef)(0),q=(0,t.useRef)(0),r=(0,t.useRef)(),{userSelectionActive:s,elementsSelectable:u,dragging:v}=cq(ec,Q),w=()=>{o.setState({userSelectionActive:!1,userSelectionRect:null}),p.current=0,q.current=0},x=a=>{f?.(a),o.getState().resetSelectedElements(),o.setState({nodesSelectionActive:!1})},y=u&&(a||s);return t.default.createElement("div",{className:H(["react-flow__pane",{dragging:v,selection:a}]),onClick:y?void 0:eb(x,n),onContextMenu:eb(a=>{Array.isArray(c)&&c?.includes(2)?a.preventDefault():g?.(a)},n),onWheel:eb(h?a=>h(a):void 0,n),onMouseEnter:y?void 0:i,onMouseDown:y?b=>{let{resetSelectedElements:c,domNode:e}=o.getState();if(r.current=e?.getBoundingClientRect(),!u||!a||0!==b.button||b.target!==n.current||!r.current)return;let{x:f,y:g}=cK(b,r.current);c(),o.setState({userSelectionRect:{width:0,height:0,startX:f,startY:g,x:f,y:g}}),d?.(b)}:void 0,onMouseMove:y?c=>{let{userSelectionRect:d,nodeInternals:e,edges:f,transform:g,onNodesChange:h,onEdgesChange:i,nodeOrigin:j,getNodes:k}=o.getState();if(!a||!r.current||!d)return;o.setState({userSelectionActive:!0,nodesSelectionActive:!1});let m=cK(c,r.current),n=d.startX??0,s=d.startY??0,t={...d,x:m.x<n?m.x:n,y:m.y<s?m.y:s,width:Math.abs(m.x-n),height:Math.abs(m.y-s)},u=k(),v=c9(e,t,g,b===l.Partial,!0,j),w=da(v,f).map(a=>a.id),x=v.map(a=>a.id);if(p.current!==x.length){p.current=x.length;let a=ea(u,x);a.length&&h?.(a)}if(q.current!==w.length){q.current=w.length;let a=ea(f,w);a.length&&i?.(a)}o.setState({userSelectionRect:t})}:j,onMouseUp:y?a=>{if(0!==a.button)return;let{userSelectionRect:b}=o.getState();!s&&b&&a.target===n.current&&x?.(a),o.setState({nodesSelectionActive:p.current>0}),w(),e?.(a)}:void 0,onMouseLeave:y?a=>{s&&(o.setState({nodesSelectionActive:p.current>0}),e?.(a)),w()}:k,ref:n,style:dZ},m,t.default.createElement(d5,null))});function ee(a,b,c){let d=a;do{if(d?.matches(b))return!0;if(d===c.current)break;d=d.parentElement}while(d)return!1}function ef(a,b,c,d,e=[0,0],f){var g;let h=(g=a.extent||d)&&"parent"!==g?[g[0],[g[1][0]-(a.width||0),g[1][1]-(a.height||0)]]:g,i=h,j=a.parentNode||a.parentId;if("parent"!==a.extent||a.expandParent){if(a.extent&&j&&"parent"!==a.extent){let{x:b,y:d}=c7(c.get(j),e).positionAbsolute;i=[[a.extent[0][0]+b,a.extent[0][1]+d],[a.extent[1][0]+b,a.extent[1][1]+d]]}}else if(j&&a.width&&a.height){let b=c.get(j),{x:d,y:f}=c7(b,e).positionAbsolute;i=b&&cF(d)&&cF(f)&&cF(b.width)&&cF(b.height)?[[d+a.width*e[0],f+a.height*e[1]],[d+b.width-a.width+a.width*e[0],f+b.height-a.height+a.height*e[1]]]:i}else f?.("005","Only child nodes can use a parent extent."),i=h;let k={x:0,y:0};j&&(k=c7(c.get(j),e).positionAbsolute);let l=i&&"parent"!==i?cy(b,i):b;return{position:{x:l.x-k.x,y:l.y-k.y},positionAbsolute:l}}function eg({nodeId:a,dragItems:b,nodeInternals:c}){let d=b.map(a=>({...c.get(a.id),position:a.position,positionAbsolute:a.positionAbsolute}));return[a?d.find(b=>b.id===a):d[0],d]}ed.displayName="Pane";let eh=(a,b,c,d)=>{let e=b.querySelectorAll(a);if(!e||!e.length)return null;let f=Array.from(e),g=b.getBoundingClientRect(),h={x:g.width*d[0],y:g.height*d[1]};return f.map(a=>{let b=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),position:a.getAttribute("data-handlepos"),x:(b.left-g.left-h.x)/c,y:(b.top-g.top-h.y)/c,...cw(a)}})};function ei(a,b,c){return void 0===c?c:d=>{let e=b().nodeInternals.get(a);e&&c(d,{...e})}}function ej({id:a,store:b,unselect:c=!1,nodeRef:d}){let e,{addSelectedNodes:f,unselectNodesAndEdges:g,multiSelectionActive:h,nodeInternals:i,onError:j}=b.getState(),k=i.get(a);k?(b.setState({nodesSelectionActive:!1}),k.selected?(c||k.selected&&h)&&(g({nodes:[k],edges:[]}),requestAnimationFrame(()=>d?.current?.blur())):f([a])):j?.("012",(e=a,`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`))}function ek(a){return(b,c,d)=>a?.(b,d)}function el({nodeRef:a,disabled:b=!1,noDragClassName:c,handleSelector:d,nodeId:e,isSelectable:f,selectNodesOnDrag:g}){let h,i=cr(),[j,k]=(0,t.useState)(!1),l=(0,t.useRef)([]),m=(0,t.useRef)({x:null,y:null}),n=(0,t.useRef)(0),o=(0,t.useRef)(null),p=(0,t.useRef)({x:0,y:0}),q=(0,t.useRef)(null),r=(0,t.useRef)(!1),s=(0,t.useRef)(!1),u=(0,t.useRef)(!1),v=(h=cr(),(0,t.useCallback)(({sourceEvent:a})=>{let{transform:b,snapGrid:c,snapToGrid:d}=h.getState(),e=a.touches?a.touches[0].clientX:a.clientX,f=a.touches?a.touches[0].clientY:a.clientY,g={x:(e-b[0])/b[2],y:(f-b[1])/b[2]};return{xSnapped:d?c[0]*Math.round(g.x/c[0]):g.x,ySnapped:d?c[1]*Math.round(g.y/c[1]):g.y,...g}},[]));return(0,t.useEffect)(()=>{if(a?.current){let h=aI(a.current),j=({x:a,y:b})=>{let{nodeInternals:c,onNodeDrag:d,onSelectionDrag:f,updateNodePositions:g,nodeExtent:h,snapGrid:j,snapToGrid:n,nodeOrigin:o,onError:p}=i.getState();m.current={x:a,y:b};let r=!1,s={x:0,y:0,x2:0,y2:0};if(l.current.length>1&&h&&(s=cC(c8(l.current,o))),l.current=l.current.map(d=>{let e={x:a-d.distance.x,y:b-d.distance.y};n&&(e.x=j[0]*Math.round(e.x/j[0]),e.y=j[1]*Math.round(e.y/j[1]));let f=[[h[0][0],h[0][1]],[h[1][0],h[1][1]]];l.current.length>1&&h&&!d.extent&&(f[0][0]=d.positionAbsolute.x-s.x+h[0][0],f[1][0]=d.positionAbsolute.x+(d.width??0)-s.x2+h[1][0],f[0][1]=d.positionAbsolute.y-s.y+h[0][1],f[1][1]=d.positionAbsolute.y+(d.height??0)-s.y2+h[1][1]);let g=ef(d,e,c,f,o,p);return r=r||d.position.x!==g.position.x||d.position.y!==g.position.y,d.position=g.position,d.positionAbsolute=g.positionAbsolute,d}),!r)return;g(l.current,!0,!0),k(!0);let t=e?d:ek(f);if(t&&q.current){let[a,b]=eg({nodeId:e,dragItems:l.current,nodeInternals:c});t(q.current,a,b)}},t=()=>{if(!o.current)return;let[a,b]=cA(p.current,o.current);if(0!==a||0!==b){let{transform:c,panBy:d}=i.getState();m.current.x=(m.current.x??0)-a/c[2],m.current.y=(m.current.y??0)-b/c[2],d({x:a,y:b})&&j(m.current)}n.current=requestAnimationFrame(t)},w=b=>{let{nodeInternals:c,multiSelectionActive:d,nodesDraggable:h,unselectNodesAndEdges:j,onNodeDragStart:k,onSelectionDragStart:n}=i.getState();s.current=!0;let o=e?k:ek(n);g&&f||d||!e||c.get(e)?.selected||j(),e&&f&&g&&ej({id:e,store:i,nodeRef:a});let p=v(b);if(m.current=p,l.current=Array.from(c.values()).filter(a=>(a.selected||a.id===e)&&(!a.parentNode||a.parentId||!function a(b,c){let d=b.parentNode||b.parentId;if(!d)return!1;let e=c.get(d);return!!e&&(!!e.selected||a(e,c))}(a,c))&&(a.draggable||h&&void 0===a.draggable)).map(a=>({id:a.id,position:a.position||{x:0,y:0},positionAbsolute:a.positionAbsolute||{x:0,y:0},distance:{x:p.x-(a.positionAbsolute?.x??0),y:p.y-(a.positionAbsolute?.y??0)},delta:{x:0,y:0},extent:a.extent,parentNode:a.parentNode||a.parentId,parentId:a.parentNode||a.parentId,width:a.width,height:a.height,expandParent:a.expandParent})),o&&l.current){let[a,d]=eg({nodeId:e,dragItems:l.current,nodeInternals:c});o(b.sourceEvent,a,d)}};if(b)h.on(".drag",null);else{let b=(function(){var a,b,c,d,e=cj,f=ck,g=cl,h=cm,i={},j=S("start","drag","end"),k=0,l=0;function m(a){a.on("mousedown.drag",n).filter(h).on("touchstart.drag",q).on("touchmove.drag",r,aJ).on("touchend.drag touchcancel.drag",s).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function n(g,h){if(!d&&e.call(this,g,h)){var i=t(this,f.call(this,g,h),g,h,"mouse");i&&(aI(g.view).on("mousemove.drag",o,aK).on("mouseup.drag",p,aK),aN(g.view),aL(g),c=!1,a=g.clientX,b=g.clientY,i("start",g))}}function o(d){if(aM(d),!c){var e=d.clientX-a,f=d.clientY-b;c=e*e+f*f>l}i.mouse("drag",d)}function p(a){aI(a.view).on("mousemove.drag mouseup.drag",null),aO(a.view,c),aM(a),i.mouse("end",a)}function q(a,b){if(e.call(this,a,b)){var c,d,g=a.changedTouches,h=f.call(this,a,b),i=g.length;for(c=0;c<i;++c)(d=t(this,h,a,b,g[c].identifier,g[c]))&&(aL(a),d("start",a,g[c]))}}function r(a){var b,c,d=a.changedTouches,e=d.length;for(b=0;b<e;++b)(c=i[d[b].identifier])&&(aM(a),c("drag",a,d[b]))}function s(a){var b,c,e=a.changedTouches,f=e.length;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),b=0;b<f;++b)(c=i[e[b].identifier])&&(aL(a),c("end",a,e[b]))}function t(a,b,c,d,e,f){var h,l,n,o=j.copy(),p=aR(f||c,b);if(null!=(n=g.call(a,new ci("beforestart",{sourceEvent:c,target:m,identifier:e,active:k,x:p[0],y:p[1],dx:0,dy:0,dispatch:o}),d)))return h=n.x-p[0]||0,l=n.y-p[1]||0,function c(f,g,j){var q,r=p;switch(f){case"start":i[e]=c,q=k++;break;case"end":delete i[e],--k;case"drag":p=aR(j||g,b),q=k}o.call(f,a,new ci(f,{sourceEvent:g,subject:n,target:m,identifier:e,active:q,x:p[0]+h,y:p[1]+l,dx:p[0]-r[0],dy:p[1]-r[1],dispatch:o}),d)}}return m.filter=function(a){return arguments.length?(e="function"==typeof a?a:ch(!!a),m):e},m.container=function(a){return arguments.length?(f="function"==typeof a?a:ch(a),m):f},m.subject=function(a){return arguments.length?(g="function"==typeof a?a:ch(a),m):g},m.touchable=function(a){return arguments.length?(h="function"==typeof a?a:ch(!!a),m):h},m.on=function(){var a=j.on.apply(j,arguments);return a===j?m:a},m.clickDistance=function(a){return arguments.length?(l=(a*=1)*a,m):Math.sqrt(l)},m})().on("start",a=>{let{domNode:b,nodeDragThreshold:c}=i.getState();0===c&&w(a),u.current=!1,m.current=v(a),o.current=b?.getBoundingClientRect()||null,p.current=cK(a.sourceEvent,o.current)}).on("drag",a=>{let b=v(a),{autoPanOnNodeDrag:c,nodeDragThreshold:d}=i.getState();if("touchmove"===a.sourceEvent.type&&a.sourceEvent.touches.length>1&&(u.current=!0),!u.current){if(!r.current&&s.current&&c&&(r.current=!0,t()),!s.current){let c=b.xSnapped-(m?.current?.x??0),e=b.ySnapped-(m?.current?.y??0);Math.sqrt(c*c+e*e)>d&&w(a)}(m.current.x!==b.xSnapped||m.current.y!==b.ySnapped)&&l.current&&s.current&&(q.current=a.sourceEvent,p.current=cK(a.sourceEvent,o.current),j(b))}}).on("end",a=>{if(s.current&&!u.current&&(k(!1),r.current=!1,s.current=!1,cancelAnimationFrame(n.current),l.current)){let{updateNodePositions:b,nodeInternals:c,onNodeDragStop:d,onSelectionDragStop:f}=i.getState(),g=e?d:ek(f);if(b(l.current,!1,!1),g){let[b,d]=eg({nodeId:e,dragItems:l.current,nodeInternals:c});g(a.sourceEvent,b,d)}}}).filter(b=>{let e=b.target;return!b.button&&(!c||!ee(e,`.${c}`,a))&&(!d||ee(e,d,a))});return h.call(b),()=>{h.on(".drag",null)}}}},[a,b,c,d,f,i,e,g,v]),j}function em(){let a=cr();return(0,t.useCallback)(b=>{let{nodeInternals:c,nodeExtent:d,updateNodePositions:e,getNodes:f,snapToGrid:g,snapGrid:h,onError:i,nodesDraggable:j}=a.getState(),k=f().filter(a=>a.selected&&(a.draggable||j&&void 0===a.draggable)),l=g?h[0]:5,m=g?h[1]:5,n=b.isShiftPressed?4:1,o=b.x*l*n,p=b.y*m*n;e(k.map(a=>{if(a.positionAbsolute){let b={x:a.positionAbsolute.x+o,y:a.positionAbsolute.y+p};g&&(b.x=h[0]*Math.round(b.x/h[0]),b.y=h[1]*Math.round(b.y/h[1]));let{positionAbsolute:e,position:f}=ef(a,b,c,d,void 0,i);a.position=f,a.positionAbsolute=e}return a}),!0,!1)},[])}let en={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var eo=a=>{let b=({id:b,type:c,data:d,xPos:e,yPos:f,xPosOrigin:g,yPosOrigin:h,selected:i,onClick:j,onMouseEnter:k,onMouseMove:l,onMouseLeave:m,onContextMenu:n,onDoubleClick:o,style:p,className:q,isDraggable:r,isSelectable:s,isConnectable:u,isFocusable:v,selectNodesOnDrag:w,sourcePosition:x,targetPosition:y,hidden:z,resizeObserver:A,dragHandle:B,zIndex:C,isParent:D,noDragClassName:E,noPanClassName:F,initialized:G,disableKeyboardA11y:I,ariaLabel:J,rfId:K,hasHandleBounds:L})=>{let M=cr(),N=(0,t.useRef)(null),O=(0,t.useRef)(null),P=(0,t.useRef)(x),Q=(0,t.useRef)(y),R=(0,t.useRef)(c),S=s||r||j||k||l||m,T=em(),U=ei(b,M.getState,k),V=ei(b,M.getState,l),W=ei(b,M.getState,m),X=ei(b,M.getState,n),Y=ei(b,M.getState,o);(0,t.useEffect)(()=>()=>{O.current&&(A?.unobserve(O.current),O.current=null)},[]),(0,t.useEffect)(()=>{if(N.current&&!z){let a=N.current;G&&L&&O.current===a||(O.current&&A?.unobserve(O.current),A?.observe(a),O.current=a)}},[z,G,L]),(0,t.useEffect)(()=>{let a=R.current!==c,d=P.current!==x,e=Q.current!==y;N.current&&(a||d||e)&&(a&&(R.current=c),d&&(P.current=x),e&&(Q.current=y),M.getState().updateNodeDimensions([{id:b,nodeElement:N.current,forceUpdate:!0}]))},[b,c,x,y]);let Z=el({nodeRef:N,disabled:z||!r,noDragClassName:E,handleSelector:B,nodeId:b,isSelectable:s,selectNodesOnDrag:w});return z?null:t.default.createElement("div",{className:H(["react-flow__node",`react-flow__node-${c}`,{[F]:r},q,{selected:i,selectable:s,parent:D,dragging:Z}]),ref:N,style:{zIndex:C,transform:`translate(${g}px,${h}px)`,pointerEvents:S?"all":"none",visibility:G?"visible":"hidden",...p},"data-id":b,"data-testid":`rf__node-${b}`,onMouseEnter:U,onMouseMove:V,onMouseLeave:W,onContextMenu:X,onClick:a=>{let{nodeDragThreshold:c}=M.getState();if(s&&(!w||!r||c>0)&&ej({id:b,store:M,nodeRef:N}),j){let c=M.getState().nodeInternals.get(b);c&&j(a,{...c})}},onDoubleClick:Y,onKeyDown:v?a=>{cJ(a)||!I&&(cH.includes(a.key)&&s?ej({id:b,store:M,unselect:"Escape"===a.key,nodeRef:N}):r&&i&&Object.prototype.hasOwnProperty.call(en,a.key)&&(M.setState({ariaLiveMessage:`Moved selected node ${a.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~e}, y: ${~~f}`}),T({x:en[a.key].x,y:en[a.key].y,isShiftPressed:a.shiftKey})))}:void 0,tabIndex:v?0:void 0,role:v?"button":void 0,"aria-describedby":I?void 0:`${dI}-${K}`,"aria-label":J},t.default.createElement(c3,{value:b},t.default.createElement(a,{id:b,data:d,type:c,xPos:e,yPos:f,selected:i,isConnectable:u,sourcePosition:x,targetPosition:y,dragging:Z,dragHandle:B,zIndex:C})))};return b.displayName="NodeWrapper",(0,t.memo)(b)};let ep=a=>({...c8(a.getNodes().filter(a=>a.selected),a.nodeOrigin),transformString:`translate(${a.transform[0]}px,${a.transform[1]}px) scale(${a.transform[2]})`,userSelectionActive:a.userSelectionActive});var eq=(0,t.memo)(function({onSelectionContextMenu:a,noPanClassName:b,disableKeyboardA11y:c}){let d=cr(),{width:e,height:f,x:g,y:h,transformString:i,userSelectionActive:j}=cq(ep,Q),k=em(),l=(0,t.useRef)(null);if((0,t.useEffect)(()=>{c||l.current?.focus({preventScroll:!0})},[c]),el({nodeRef:l}),j||!e||!f)return null;let m=a?b=>{a(b,d.getState().getNodes().filter(a=>a.selected))}:void 0;return t.default.createElement("div",{className:H(["react-flow__nodesselection","react-flow__container",b]),style:{transform:i}},t.default.createElement("div",{ref:l,className:"react-flow__nodesselection-rect",onContextMenu:m,tabIndex:c?void 0:-1,onKeyDown:c?void 0:a=>{Object.prototype.hasOwnProperty.call(en,a.key)&&k({x:en[a.key].x,y:en[a.key].y,isShiftPressed:a.shiftKey})},style:{width:e,height:f,top:h,left:g}}))});let er=a=>a.nodesSelectionActive,es=({children:a,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,deleteKeyCode:h,onMove:i,onMoveStart:j,onMoveEnd:k,selectionKeyCode:l,selectionOnDrag:m,selectionMode:n,onSelectionStart:o,onSelectionEnd:p,multiSelectionKeyCode:q,panActivationKeyCode:r,zoomActivationKeyCode:s,elementsSelectable:u,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:x,panOnScrollSpeed:y,panOnScrollMode:z,zoomOnDoubleClick:A,panOnDrag:B,defaultViewport:C,translateExtent:D,minZoom:E,maxZoom:F,preventScrolling:G,onSelectionContextMenu:H,noWheelClassName:I,noPanClassName:J,disableKeyboardA11y:K})=>{let L=cq(er),M=dN(l),N=dN(r),O=N||B,P=N||x,Q=M||m&&!0!==O;return(({deleteKeyCode:a,multiSelectionKeyCode:b})=>{let c=cr(),{deleteElements:d}=dX(),e=dN(a,dY),f=dN(b);(0,t.useEffect)(()=>{if(e){let{edges:a,getNodes:b}=c.getState();d({nodes:b().filter(a=>a.selected),edges:a.filter(a=>a.selected)}),c.setState({nodesSelectionActive:!1})}},[e]),(0,t.useEffect)(()=>{c.setState({multiSelectionActive:f})},[f])})({deleteKeyCode:h,multiSelectionKeyCode:q}),t.default.createElement(d3,{onMove:i,onMoveStart:j,onMoveEnd:k,onPaneContextMenu:f,elementsSelectable:u,zoomOnScroll:v,zoomOnPinch:w,panOnScroll:P,panOnScrollSpeed:y,panOnScrollMode:z,zoomOnDoubleClick:A,panOnDrag:!M&&O,defaultViewport:C,translateExtent:D,minZoom:E,maxZoom:F,zoomActivationKeyCode:s,preventScrolling:G,noWheelClassName:I,noPanClassName:J},t.default.createElement(ed,{onSelectionStart:o,onSelectionEnd:p,onPaneClick:b,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:e,onPaneContextMenu:f,onPaneScroll:g,panOnDrag:O,isSelecting:!!Q,selectionMode:n},a,L&&t.default.createElement(eq,{onSelectionContextMenu:H,noPanClassName:J,disableKeyboardA11y:K})))};es.displayName="FlowRenderer";var et=(0,t.memo)(es);function eu(a){let b={input:eo(a.input||ds),default:eo(a.default||dq),output:eo(a.output||du),group:eo(a.group||dv)},c=Object.keys(a).filter(a=>!["input","default","output","group"].includes(a)).reduce((b,c)=>(b[c]=eo(a[c]||dq),b),{});return{...b,...c}}let ev=a=>({nodesDraggable:a.nodesDraggable,nodesConnectable:a.nodesConnectable,nodesFocusable:a.nodesFocusable,elementsSelectable:a.elementsSelectable,updateNodeDimensions:a.updateNodeDimensions,onError:a.onError}),ew=a=>{var b;let{nodesDraggable:c,nodesConnectable:d,nodesFocusable:e,elementsSelectable:f,updateNodeDimensions:g,onError:h}=cq(ev,Q),i=(b=a.onlyRenderVisibleElements,cq((0,t.useCallback)(a=>b?c9(a.nodeInternals,{x:0,y:0,width:a.width,height:a.height},a.transform,!0):a.getNodes(),[b]))),j=(0,t.useRef)(),k=(0,t.useMemo)(()=>{if("undefined"==typeof ResizeObserver)return null;let a=new ResizeObserver(a=>{g(a.map(a=>({id:a.target.getAttribute("data-id"),nodeElement:a.target,forceUpdate:!0})))});return j.current=a,a},[]);return(0,t.useEffect)(()=>()=>{j?.current?.disconnect()},[]),t.default.createElement("div",{className:"react-flow__nodes",style:dZ},i.map(b=>{let g,i=b.type||"default";a.nodeTypes[i]||(h?.("003",(g=i,`Node type "${g}" not found. Using fallback type "default".`)),i="default");let j=a.nodeTypes[i]||a.nodeTypes.default,l=!!(b.draggable||c&&void 0===b.draggable),m=!!(b.selectable||f&&void 0===b.selectable),n=!!(b.connectable||d&&void 0===b.connectable),p=!!(b.focusable||e&&void 0===b.focusable),q=a.nodeExtent?cy(b.positionAbsolute,a.nodeExtent):b.positionAbsolute,r=q?.x??0,s=q?.y??0,u=(({x:a,y:b,width:c,height:d,origin:e})=>!c||!d||e[0]<0||e[1]<0||e[0]>1||e[1]>1?{x:a,y:b}:{x:a-c*e[0],y:b-d*e[1]})({x:r,y:s,width:b.width??0,height:b.height??0,origin:a.nodeOrigin});return t.default.createElement(j,{key:b.id,id:b.id,className:b.className,style:b.style,type:i,data:b.data,sourcePosition:b.sourcePosition||o.Bottom,targetPosition:b.targetPosition||o.Top,hidden:b.hidden,xPos:r,yPos:s,xPosOrigin:u.x,yPosOrigin:u.y,selectNodesOnDrag:a.selectNodesOnDrag,onClick:a.onNodeClick,onMouseEnter:a.onNodeMouseEnter,onMouseMove:a.onNodeMouseMove,onMouseLeave:a.onNodeMouseLeave,onContextMenu:a.onNodeContextMenu,onDoubleClick:a.onNodeDoubleClick,selected:!!b.selected,isDraggable:l,isSelectable:m,isConnectable:n,isFocusable:p,resizeObserver:k,dragHandle:b.dragHandle,zIndex:b[cG]?.z??0,isParent:!!b[cG]?.isParent,noDragClassName:a.noDragClassName,noPanClassName:a.noPanClassName,initialized:!!b.width&&!!b.height,rfId:a.rfId,disableKeyboardA11y:a.disableKeyboardA11y,ariaLabel:b.ariaLabel,hasHandleBounds:!!b[cG]?.handleBounds})}))};ew.displayName="NodeRenderer";var ex=(0,t.memo)(ew);let ey="react-flow__edgeupdater",ez=({position:a,centerX:b,centerY:c,radius:d=10,onMouseDown:e,onMouseEnter:f,onMouseOut:g,type:h})=>t.default.createElement("circle",{onMouseDown:e,onMouseEnter:f,onMouseOut:g,className:H([ey,`${ey}-${h}`]),cx:a===o.Left?b-d:a===o.Right?b+d:b,cy:a===o.Top?c-d:a===o.Bottom?c+d:c,r:d,stroke:"transparent",fill:"transparent"}),eA=()=>!0;var eB=a=>{let b=({id:b,className:c,type:d,data:e,onClick:f,onEdgeDoubleClick:g,selected:h,animated:i,label:j,labelStyle:k,labelShowBg:l,labelBgStyle:m,labelBgPadding:n,labelBgBorderRadius:o,style:p,source:q,target:r,sourceX:s,sourceY:u,targetX:v,targetY:w,sourcePosition:x,targetPosition:y,elementsSelectable:z,hidden:A,sourceHandleId:B,targetHandleId:C,onContextMenu:D,onMouseEnter:E,onMouseMove:F,onMouseLeave:G,reconnectRadius:I,onReconnect:J,onReconnectStart:K,onReconnectEnd:L,markerEnd:M,markerStart:N,rfId:O,ariaLabel:P,isFocusable:Q,isReconnectable:R,pathOptions:S,interactionWidth:T,disableKeyboardA11y:U})=>{let V=(0,t.useRef)(null),[W,X]=(0,t.useState)(!1),[Y,Z]=(0,t.useState)(!1),$=cr(),_=(0,t.useMemo)(()=>`url('#${c4(N,O)}')`,[N,O]),aa=(0,t.useMemo)(()=>`url('#${c4(M,O)}')`,[M,O]);if(A)return null;let ab=cN(b,$.getState,g),ac=cN(b,$.getState,D),ad=cN(b,$.getState,E),ae=cN(b,$.getState,F),af=cN(b,$.getState,G),ag=(a,c)=>{if(0!==a.button)return;let{edges:d,isValidConnection:e}=$.getState(),f=c?r:q,g=(c?C:B)||null,h=c?"target":"source",i=d.find(a=>a.id===b);Z(!0),K?.(a,i,h),dj({event:a,handleId:g,nodeId:f,onConnect:a=>J?.(i,a),isTarget:c,getState:$.getState,setState:$.setState,isValidConnection:e||eA,edgeUpdaterType:h,onReconnectEnd:a=>{Z(!1),L?.(a,i,h)}})},ah=()=>X(!0),ai=()=>X(!1);return t.default.createElement("g",{className:H(["react-flow__edge",`react-flow__edge-${d}`,c,{selected:h,animated:i,inactive:!z&&!f,updating:W}]),onClick:a=>{let{edges:c,addSelectedEdges:d,unselectNodesAndEdges:e,multiSelectionActive:g}=$.getState(),h=c.find(a=>a.id===b);h&&(z&&($.setState({nodesSelectionActive:!1}),h.selected&&g?(e({nodes:[],edges:[h]}),V.current?.blur()):d([b])),f&&f(a,h))},onDoubleClick:ab,onContextMenu:ac,onMouseEnter:ad,onMouseMove:ae,onMouseLeave:af,onKeyDown:Q?a=>{if(!U&&cH.includes(a.key)&&z){let{unselectNodesAndEdges:c,addSelectedEdges:d,edges:e}=$.getState();"Escape"===a.key?(V.current?.blur(),c({edges:[e.find(a=>a.id===b)]})):d([b])}}:void 0,tabIndex:Q?0:void 0,role:Q?"button":"img","data-testid":`rf__edge-${b}`,"aria-label":null===P?void 0:P||`Edge from ${q} to ${r}`,"aria-describedby":Q?`${dJ}-${O}`:void 0,ref:V},!Y&&t.default.createElement(a,{id:b,source:q,target:r,selected:h,animated:i,label:j,labelStyle:k,labelShowBg:l,labelBgStyle:m,labelBgPadding:n,labelBgBorderRadius:o,data:e,style:p,sourceX:s,sourceY:u,targetX:v,targetY:w,sourcePosition:x,targetPosition:y,sourceHandleId:B,targetHandleId:C,markerStart:_,markerEnd:aa,pathOptions:S,interactionWidth:T}),R&&t.default.createElement(t.default.Fragment,null,("source"===R||!0===R)&&t.default.createElement(ez,{position:x,centerX:s,centerY:u,radius:I,onMouseDown:a=>ag(a,!0),onMouseEnter:ah,onMouseOut:ai,type:"source"}),("target"===R||!0===R)&&t.default.createElement(ez,{position:y,centerX:v,centerY:w,radius:I,onMouseDown:a=>ag(a,!1),onMouseEnter:ah,onMouseOut:ai,type:"target"})))};return b.displayName="EdgeWrapper",(0,t.memo)(b)};function eC(a){let b={default:eB(a.default||c1),straight:eB(a.bezier||cZ),step:eB(a.step||cY),smoothstep:eB(a.step||cX),simplebezier:eB(a.simplebezier||cS)},c=Object.keys(a).filter(a=>!["default","bezier"].includes(a)).reduce((b,c)=>(b[c]=eB(a[c]||c1),b),{});return{...b,...c}}function eD(a,b,c=null){let d=(c?.x||0)+b.x,e=(c?.y||0)+b.y,f=c?.width||b.width,g=c?.height||b.height;switch(a){case o.Top:return{x:d+f/2,y:e};case o.Right:return{x:d+f,y:e+g/2};case o.Bottom:return{x:d+f/2,y:e+g};case o.Left:return{x:d,y:e+g/2}}}function eE(a,b){return a?1!==a.length&&b?b&&a.find(a=>a.id===b)||null:a[0]:null}function eF(a){let b=a?.[cG]?.handleBounds||null,c=b&&a?.width&&a?.height&&void 0!==a?.positionAbsolute?.x&&void 0!==a?.positionAbsolute?.y;return[{x:a?.positionAbsolute?.x||0,y:a?.positionAbsolute?.y||0,width:a?.width||0,height:a?.height||0},b,!!c]}let eG=[{level:0,isMaxLevel:!0,edges:[]}],eH={[n.Arrow]:({color:a="none",strokeWidth:b=1})=>t.default.createElement("polyline",{style:{stroke:a,strokeWidth:b},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[n.ArrowClosed]:({color:a="none",strokeWidth:b=1})=>t.default.createElement("polyline",{style:{stroke:a,fill:a,strokeWidth:b},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},eI=({id:a,type:b,color:c,width:d=12.5,height:e=12.5,markerUnits:f="strokeWidth",strokeWidth:g,orient:h="auto-start-reverse"})=>{let i,j=(i=cr(),(0,t.useMemo)(()=>{let a;return Object.prototype.hasOwnProperty.call(eH,b)?eH[b]:(i.getState().onError?.("009",(a=b,`Marker type "${a}" doesn't exist.`)),null)},[b]));return j?t.default.createElement("marker",{className:"react-flow__arrowhead",id:a,markerWidth:`${d}`,markerHeight:`${e}`,viewBox:"-10 -10 20 20",markerUnits:f,orient:h,refX:"0",refY:"0"},t.default.createElement(j,{color:c,strokeWidth:g})):null},eJ=({defaultColor:a,rfId:b})=>{let c=cq((0,t.useCallback)((({defaultColor:a,rfId:b})=>c=>{let d=[];return c.edges.reduce((c,e)=>([e.markerStart,e.markerEnd].forEach(e=>{if(e&&"object"==typeof e){let f=c4(e,b);d.includes(f)||(c.push({id:f,color:e.color||a,...e}),d.push(f))}}),c),[]).sort((a,b)=>a.id.localeCompare(b.id))})({defaultColor:a,rfId:b}),[a,b]),(a,b)=>!(a.length!==b.length||a.some((a,c)=>a.id!==b[c].id)));return t.default.createElement("defs",null,c.map(a=>t.default.createElement(eI,{id:a.id,key:a.id,type:a.type,color:a.color,width:a.width,height:a.height,markerUnits:a.markerUnits,strokeWidth:a.strokeWidth,orient:a.orient})))};eJ.displayName="MarkerDefinitions";var eK=(0,t.memo)(eJ);let eL=a=>({nodesConnectable:a.nodesConnectable,edgesFocusable:a.edgesFocusable,edgesUpdatable:a.edgesUpdatable,elementsSelectable:a.elementsSelectable,width:a.width,height:a.height,connectionMode:a.connectionMode,nodeInternals:a.nodeInternals,onError:a.onError}),eM=({defaultMarkerColor:a,onlyRenderVisibleElements:b,elevateEdgesOnSelect:c,rfId:d,edgeTypes:e,noPanClassName:f,onEdgeContextMenu:g,onEdgeMouseEnter:h,onEdgeMouseMove:i,onEdgeMouseLeave:k,onEdgeClick:l,onEdgeDoubleClick:m,onReconnect:n,onReconnectStart:p,onReconnectEnd:q,reconnectRadius:r,children:s,disableKeyboardA11y:u})=>{let{edgesFocusable:v,edgesUpdatable:w,elementsSelectable:x,width:y,height:z,connectionMode:A,nodeInternals:B,onError:C}=cq(eL,Q),D=function(a,b,c=!1){let d=-1,e=Object.entries(a.reduce((a,e)=>{let f=cF(e.zIndex),g=f?e.zIndex:0;if(c){let a=b.get(e.target),c=b.get(e.source),d=e.selected||a?.selected||c?.selected,h=Math.max(c?.[cG]?.z||0,a?.[cG]?.z||0,1e3);g=(f?e.zIndex:0)+(d?h:0)}return a[g]?a[g].push(e):a[g]=[e],d=g>d?g:d,a},{})).map(([a,b])=>{let c=+a;return{edges:b,level:c,isMaxLevel:c===d}});return 0===e.length?eG:e}(cq((0,t.useCallback)(a=>b?a.edges.filter(b=>{let c=B.get(b.source),d=B.get(b.target);return c?.width&&c?.height&&d?.width&&d?.height&&function({sourcePos:a,targetPos:b,sourceWidth:c,sourceHeight:d,targetWidth:e,targetHeight:f,width:g,height:h,transform:i}){let j={x:Math.min(a.x,b.x),y:Math.min(a.y,b.y),x2:Math.max(a.x+c,b.x+e),y2:Math.max(a.y+d,b.y+f)};j.x===j.x2&&(j.x2+=1),j.y===j.y2&&(j.y2+=1);let k=cC({x:(0-i[0])/i[2],y:(0-i[1])/i[2],width:g/i[2],height:h/i[2]});return Math.ceil(Math.max(0,Math.min(k.x2,j.x2)-Math.max(k.x,j.x))*Math.max(0,Math.min(k.y2,j.y2)-Math.max(k.y,j.y)))>0}({sourcePos:c.positionAbsolute||{x:0,y:0},targetPos:d.positionAbsolute||{x:0,y:0},sourceWidth:c.width,sourceHeight:c.height,targetWidth:d.width,targetHeight:d.height,width:a.width,height:a.height,transform:a.transform})}):a.edges,[b,B])),B,c);return y?t.default.createElement(t.default.Fragment,null,D.map(({level:b,edges:c,isMaxLevel:s})=>t.default.createElement("svg",{key:b,style:{zIndex:b},width:y,height:z,className:"react-flow__edges react-flow__container"},s&&t.default.createElement(eK,{defaultColor:a,rfId:d}),t.default.createElement("g",null,c.map(a=>{let b,c,s,[y,z,D]=eF(B.get(a.source)),[E,F,G]=eF(B.get(a.target));if(!D||!G)return null;let I=a.type||"default";e[I]||(C?.("011",(b=I,`Edge type "${b}" not found. Using fallback type "default".`)),I="default");let J=e[I]||e.default,K=A===j.Strict?F.target:(F.target??[]).concat(F.source??[]),L=eE(z.source,a.sourceHandle),M=eE(K,a.targetHandle),N=L?.position||o.Bottom,O=M?.position||o.Top,P=!!(a.focusable||v&&void 0===a.focusable),Q=a.reconnectable||a.updatable;if(!L||!M){let b,c;return C?.("008",(b=L,c=a,`Couldn't create edge for ${!b?"source":"target"} handle id: "${!b?c.sourceHandle:c.targetHandle}", edge id: ${c.id}.`)),null}let{sourceX:R,sourceY:S,targetX:T,targetY:U}=(c=eD(N,y,L),s=eD(O,E,M),{sourceX:c.x,sourceY:c.y,targetX:s.x,targetY:s.y});return t.default.createElement(J,{key:a.id,id:a.id,className:H([a.className,f]),type:I,data:a.data,selected:!!a.selected,animated:!!a.animated,hidden:!!a.hidden,label:a.label,labelStyle:a.labelStyle,labelShowBg:a.labelShowBg,labelBgStyle:a.labelBgStyle,labelBgPadding:a.labelBgPadding,labelBgBorderRadius:a.labelBgBorderRadius,style:a.style,source:a.source,target:a.target,sourceHandleId:a.sourceHandle,targetHandleId:a.targetHandle,markerEnd:a.markerEnd,markerStart:a.markerStart,sourceX:R,sourceY:S,targetX:T,targetY:U,sourcePosition:N,targetPosition:O,elementsSelectable:x,onContextMenu:g,onMouseEnter:h,onMouseMove:i,onMouseLeave:k,onClick:l,onEdgeDoubleClick:m,onReconnect:n,onReconnectStart:p,onReconnectEnd:q,reconnectRadius:r,rfId:d,ariaLabel:a.ariaLabel,isFocusable:P,isReconnectable:void 0!==n&&(Q||w&&void 0===Q),pathOptions:"pathOptions"in a?a.pathOptions:void 0,interactionWidth:a.interactionWidth,disableKeyboardA11y:u})})))),s):null};eM.displayName="EdgeRenderer";var eN=(0,t.memo)(eM);let eO=a=>`translate(${a.transform[0]}px,${a.transform[1]}px) scale(${a.transform[2]})`;function eP({children:a}){let b=cq(eO);return t.default.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:b}},a)}let eQ={[o.Left]:o.Right,[o.Right]:o.Left,[o.Top]:o.Bottom,[o.Bottom]:o.Top},eR=({nodeId:a,handleType:b,style:c,type:d=m.Bezier,CustomComponent:e,connectionStatus:f})=>{let{fromNode:g,handleId:h,toX:i,toY:k,connectionMode:l}=cq((0,t.useCallback)(b=>({fromNode:b.nodeInternals.get(a),handleId:b.connectionHandleId,toX:(b.connectionPosition.x-b.transform[0])/b.transform[2],toY:(b.connectionPosition.y-b.transform[1])/b.transform[2],connectionMode:b.connectionMode}),[a]),Q),n=g?.[cG]?.handleBounds,o=n?.[b];if(l===j.Loose&&(o=o||n?.["source"===b?"target":"source"]),!g||!o)return null;let p=h?o.find(a=>a.id===h):o[0],q=p?p.x+p.width/2:(g.width??0)/2,r=p?p.y+p.height/2:g.height??0,s=(g.positionAbsolute?.x??0)+q,u=(g.positionAbsolute?.y??0)+r,v=p?.position,w=v?eQ[v]:null;if(!v||!w)return null;if(e)return t.default.createElement(e,{connectionLineType:d,connectionLineStyle:c,fromNode:g,fromHandle:p,fromX:s,fromY:u,toX:i,toY:k,fromPosition:v,toPosition:w,connectionStatus:f});let x="",y={sourceX:s,sourceY:u,sourcePosition:v,targetX:i,targetY:k,targetPosition:w};return d===m.Bezier?[x]=c0(y):d===m.Step?[x]=cW({...y,borderRadius:0}):d===m.SmoothStep?[x]=cW(y):d===m.SimpleBezier?[x]=cR(y):x=`M${s},${u} ${i},${k}`,t.default.createElement("path",{d:x,fill:"none",className:"react-flow__connection-path",style:c})};eR.displayName="ConnectionLine";let eS=a=>({nodeId:a.connectionNodeId,handleType:a.connectionHandleType,nodesConnectable:a.nodesConnectable,connectionStatus:a.connectionStatus,width:a.width,height:a.height});function eT({containerStyle:a,style:b,type:c,component:d}){let{nodeId:e,handleType:f,nodesConnectable:g,width:h,height:i,connectionStatus:j}=cq(eS,Q);return e&&f&&h&&g?t.default.createElement("svg",{style:a,width:h,height:i,className:"react-flow__edges react-flow__connectionline react-flow__container"},t.default.createElement("g",{className:H(["react-flow__connection",j])},t.default.createElement(eR,{nodeId:e,handleType:f,style:b,type:c,CustomComponent:d,connectionStatus:j}))):null}function eU(a,b){return(0,t.useRef)(null),cr(),(0,t.useMemo)(()=>b(a),[a])}let eV=({nodeTypes:a,edgeTypes:b,onMove:c,onMoveStart:d,onMoveEnd:e,onInit:f,onNodeClick:g,onEdgeClick:h,onNodeDoubleClick:i,onEdgeDoubleClick:j,onNodeMouseEnter:k,onNodeMouseMove:l,onNodeMouseLeave:m,onNodeContextMenu:n,onSelectionContextMenu:o,onSelectionStart:p,onSelectionEnd:q,connectionLineType:r,connectionLineStyle:s,connectionLineComponent:u,connectionLineContainerStyle:v,selectionKeyCode:w,selectionOnDrag:x,selectionMode:y,multiSelectionKeyCode:z,panActivationKeyCode:A,zoomActivationKeyCode:B,deleteKeyCode:C,onlyRenderVisibleElements:D,elementsSelectable:E,selectNodesOnDrag:F,defaultViewport:G,translateExtent:H,minZoom:I,maxZoom:J,preventScrolling:K,defaultMarkerColor:L,zoomOnScroll:M,zoomOnPinch:N,panOnScroll:O,panOnScrollSpeed:P,panOnScrollMode:Q,zoomOnDoubleClick:R,panOnDrag:S,onPaneClick:T,onPaneMouseEnter:U,onPaneMouseMove:V,onPaneMouseLeave:W,onPaneScroll:X,onPaneContextMenu:Y,onEdgeContextMenu:Z,onEdgeMouseEnter:$,onEdgeMouseMove:_,onEdgeMouseLeave:aa,onReconnect:ab,onReconnectStart:ac,onReconnectEnd:ad,reconnectRadius:ae,noDragClassName:af,noWheelClassName:ag,noPanClassName:ah,elevateEdgesOnSelect:ai,disableKeyboardA11y:aj,nodeOrigin:ak,nodeExtent:al,rfId:am})=>{let an,ao,ap=eU(a,eu),aq=eU(b,eC);return an=dX(),ao=(0,t.useRef)(!1),(0,t.useEffect)(()=>{!ao.current&&an.viewportInitialized&&f&&(setTimeout(()=>f(an),1),ao.current=!0)},[f,an.viewportInitialized]),t.default.createElement(et,{onPaneClick:T,onPaneMouseEnter:U,onPaneMouseMove:V,onPaneMouseLeave:W,onPaneContextMenu:Y,onPaneScroll:X,deleteKeyCode:C,selectionKeyCode:w,selectionOnDrag:x,selectionMode:y,onSelectionStart:p,onSelectionEnd:q,multiSelectionKeyCode:z,panActivationKeyCode:A,zoomActivationKeyCode:B,elementsSelectable:E,onMove:c,onMoveStart:d,onMoveEnd:e,zoomOnScroll:M,zoomOnPinch:N,zoomOnDoubleClick:R,panOnScroll:O,panOnScrollSpeed:P,panOnScrollMode:Q,panOnDrag:S,defaultViewport:G,translateExtent:H,minZoom:I,maxZoom:J,onSelectionContextMenu:o,preventScrolling:K,noDragClassName:af,noWheelClassName:ag,noPanClassName:ah,disableKeyboardA11y:aj},t.default.createElement(eP,null,t.default.createElement(eN,{edgeTypes:aq,onEdgeClick:h,onEdgeDoubleClick:j,onlyRenderVisibleElements:D,onEdgeContextMenu:Z,onEdgeMouseEnter:$,onEdgeMouseMove:_,onEdgeMouseLeave:aa,onReconnect:ab,onReconnectStart:ac,onReconnectEnd:ad,reconnectRadius:ae,defaultMarkerColor:L,noPanClassName:ah,elevateEdgesOnSelect:!!ai,disableKeyboardA11y:aj,rfId:am},t.default.createElement(eT,{style:s,type:r,component:u,containerStyle:v})),t.default.createElement("div",{className:"react-flow__edgelabel-renderer"}),t.default.createElement(ex,{nodeTypes:ap,onNodeClick:g,onNodeDoubleClick:i,onNodeMouseEnter:k,onNodeMouseMove:l,onNodeMouseLeave:m,onNodeContextMenu:n,selectNodesOnDrag:F,onlyRenderVisibleElements:D,noPanClassName:ah,noDragClassName:af,disableKeyboardA11y:aj,nodeOrigin:ak,nodeExtent:al,rfId:am})))};eV.displayName="GraphView";var eW=(0,t.memo)(eV);let eX=[[-1/0,-1/0],[1/0,1/0]],eY={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:eX,nodeExtent:eX,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:j.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:cI,isValidConnection:void 0},eZ=({children:a})=>{let b,c,d=(0,t.useRef)(null);return d.current||(b=(a,b)=>({...eY,setNodes:c=>{let{nodeInternals:d,nodeOrigin:e,elevateNodesOnSelect:f}=b();a({nodeInternals:dR(c,d,e,f)})},getNodes:()=>Array.from(b().nodeInternals.values()),setEdges:c=>{let{defaultEdgeOptions:d={}}=b();a({edges:c.map(a=>({...d,...a}))})},setDefaultNodesAndEdges:(c,d)=>{let e=void 0!==c,f=void 0!==d;a({nodeInternals:e?dR(c,new Map,b().nodeOrigin,b().elevateNodesOnSelect):new Map,edges:f?d:[],hasDefaultNodes:e,hasDefaultEdges:f})},updateNodeDimensions:c=>{let{onNodesChange:d,nodeInternals:e,fitViewOnInit:f,fitViewOnInitDone:g,fitViewOnInitOptions:h,domNode:i,nodeOrigin:j}=b(),k=i?.querySelector(".react-flow__viewport");if(!k)return;let l=window.getComputedStyle(k),{m22:m}=new window.DOMMatrixReadOnly(l.transform),n=c.reduce((a,b)=>{let c=e.get(b.id);if(c?.hidden)e.set(c.id,{...c,[cG]:{...c[cG],handleBounds:void 0}});else if(c){let d=cw(b.nodeElement);d.width&&d.height&&(c.width!==d.width||c.height!==d.height||b.forceUpdate)&&(e.set(c.id,{...c,[cG]:{...c[cG],handleBounds:{source:eh(".source",b.nodeElement,m,j),target:eh(".target",b.nodeElement,m,j)}},...d}),a.push({id:c.id,type:"dimensions",dimensions:d}))}return a},[]);dQ(e,j);let o=g||f&&!g&&dS(b,{initial:!0,...h});a({nodeInternals:new Map(e),fitViewOnInitDone:o}),n?.length>0&&d?.(n)},updateNodePositions:(a,c=!0,d=!1)=>{let{triggerNodeChanges:e}=b();e(a.map(a=>{let b={id:a.id,type:"position",dragging:d};return c&&(b.positionAbsolute=a.positionAbsolute,b.position=a.position),b}))},triggerNodeChanges:c=>{let{onNodesChange:d,nodeInternals:e,hasDefaultNodes:f,nodeOrigin:g,getNodes:h,elevateNodesOnSelect:i}=b();c?.length&&(f&&a({nodeInternals:dR(d8(c,h()),e,g,i)}),d?.(c))},addSelectedNodes:c=>{let d,{multiSelectionActive:e,edges:f,getNodes:g}=b(),h=null;e?d=c.map(a=>d9(a,!0)):(d=ea(g(),c),h=ea(f,[])),dT({changedNodes:d,changedEdges:h,get:b,set:a})},addSelectedEdges:c=>{let d,{multiSelectionActive:e,edges:f,getNodes:g}=b(),h=null;e?d=c.map(a=>d9(a,!0)):(d=ea(f,c),h=ea(g(),[])),dT({changedNodes:h,changedEdges:d,get:b,set:a})},unselectNodesAndEdges:({nodes:c,edges:d}={})=>{let{edges:e,getNodes:f}=b();dT({changedNodes:(c||f()).map(a=>(a.selected=!1,d9(a.id,!1))),changedEdges:(d||e).map(a=>d9(a.id,!1)),get:b,set:a})},setMinZoom:c=>{let{d3Zoom:d,maxZoom:e}=b();d?.scaleExtent([c,e]),a({minZoom:c})},setMaxZoom:c=>{let{d3Zoom:d,minZoom:e}=b();d?.scaleExtent([e,c]),a({maxZoom:c})},setTranslateExtent:c=>{b().d3Zoom?.translateExtent(c),a({translateExtent:c})},resetSelectedElements:()=>{let{edges:c,getNodes:d}=b();dT({changedNodes:d().filter(a=>a.selected).map(a=>d9(a.id,!1)),changedEdges:c.filter(a=>a.selected).map(a=>d9(a.id,!1)),get:b,set:a})},setNodeExtent:c=>{let{nodeInternals:d}=b();d.forEach(a=>{a.positionAbsolute=cy(a.position,c)}),a({nodeExtent:c,nodeInternals:new Map(d)})},panBy:a=>{let{transform:c,width:d,height:e,d3Zoom:f,d3Selection:g,translateExtent:h}=b();if(!f||!g||!a.x&&!a.y)return!1;let i=b8.translate(c[0]+a.x,c[1]+a.y).scale(c[2]),j=f?.constrain()(i,[[0,0],[d,e]],h);return f.transform(g,j),c[0]!==j.x||c[1]!==j.y||c[2]!==j.k},cancelConnection:()=>a({connectionNodeId:eY.connectionNodeId,connectionHandleId:eY.connectionHandleId,connectionHandleType:eY.connectionHandleType,connectionStatus:eY.connectionStatus,connectionStartHandle:eY.connectionStartHandle,connectionEndHandle:eY.connectionEndHandle}),reset:()=>a({...eY})}),c=Object.is,d.current=b?P(b,c):P),t.default.createElement(co,{value:d.current},a)};eZ.displayName="ReactFlowProvider";let e$=({children:a})=>(0,t.useContext)(cn)?t.default.createElement(t.default.Fragment,null,a):t.default.createElement(eZ,null,a);e$.displayName="ReactFlowWrapper";let e_={input:ds,default:dq,output:du,group:dv},e0={default:c1,straight:cZ,step:cY,smoothstep:cX,simplebezier:cS},e1=[0,0],e2=[15,15],e3={x:0,y:0,zoom:1},e4={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},e5=(0,t.forwardRef)(({nodes:a,edges:b,defaultNodes:c,defaultEdges:d,className:e,nodeTypes:f=e_,edgeTypes:g=e0,onNodeClick:h,onEdgeClick:i,onInit:n,onMove:o,onMoveStart:p,onMoveEnd:q,onConnect:r,onConnectStart:s,onConnectEnd:u,onClickConnectStart:v,onClickConnectEnd:w,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:z,onNodeContextMenu:A,onNodeDoubleClick:B,onNodeDragStart:C,onNodeDrag:D,onNodeDragStop:E,onNodesDelete:F,onEdgesDelete:G,onSelectionChange:I,onSelectionDragStart:J,onSelectionDrag:K,onSelectionDragStop:L,onSelectionContextMenu:M,onSelectionStart:N,onSelectionEnd:O,connectionMode:P=j.Strict,connectionLineType:Q=m.Bezier,connectionLineStyle:R,connectionLineComponent:S,connectionLineContainerStyle:T,deleteKeyCode:U="Backspace",selectionKeyCode:V="Shift",selectionOnDrag:W=!1,selectionMode:X=l.Full,panActivationKeyCode:Y="Space",multiSelectionKeyCode:Z=cL()?"Meta":"Control",zoomActivationKeyCode:$=cL()?"Meta":"Control",snapToGrid:_=!1,snapGrid:aa=e2,onlyRenderVisibleElements:ab=!1,selectNodesOnDrag:ac=!0,nodesDraggable:ad,nodesConnectable:ae,nodesFocusable:af,nodeOrigin:ag=e1,edgesFocusable:ah,edgesUpdatable:ai,elementsSelectable:aj,defaultViewport:ak=e3,minZoom:al=.5,maxZoom:am=2,translateExtent:an=eX,preventScrolling:ao=!0,nodeExtent:ap,defaultMarkerColor:aq="#b1b1b7",zoomOnScroll:ar=!0,zoomOnPinch:as=!0,panOnScroll:at=!1,panOnScrollSpeed:au=.5,panOnScrollMode:av=k.Free,zoomOnDoubleClick:aw=!0,panOnDrag:ax=!0,onPaneClick:ay,onPaneMouseEnter:az,onPaneMouseMove:aA,onPaneMouseLeave:aB,onPaneScroll:aC,onPaneContextMenu:aD,children:aE,onEdgeContextMenu:aF,onEdgeDoubleClick:aG,onEdgeMouseEnter:aH,onEdgeMouseMove:aI,onEdgeMouseLeave:aJ,onEdgeUpdate:aK,onEdgeUpdateStart:aL,onEdgeUpdateEnd:aM,onReconnect:aN,onReconnectStart:aO,onReconnectEnd:aP,reconnectRadius:aQ=10,edgeUpdaterRadius:aR=10,onNodesChange:aS,onEdgesChange:aT,noDragClassName:aU="nodrag",noWheelClassName:aV="nowheel",noPanClassName:aW="nopan",fitView:aX=!1,fitViewOptions:aY,connectOnClick:aZ=!0,attributionPosition:a$,proOptions:a_,defaultEdgeOptions:a0,elevateNodesOnSelect:a1=!0,elevateEdgesOnSelect:a2=!1,disableKeyboardA11y:a3=!1,autoPanOnConnect:a4=!0,autoPanOnNodeDrag:a5=!0,connectionRadius:a6=20,isValidConnection:a7,onError:a8,style:a9,id:ba,nodeDragThreshold:bb,...bc},bd)=>{let be=ba||"1";return t.default.createElement("div",{...bc,style:{...a9,...e4},ref:bd,className:H(["react-flow",e]),"data-testid":"rf__wrapper",id:ba},t.default.createElement(e$,null,t.default.createElement(eW,{onInit:n,onMove:o,onMoveStart:p,onMoveEnd:q,onNodeClick:h,onEdgeClick:i,onNodeMouseEnter:x,onNodeMouseMove:y,onNodeMouseLeave:z,onNodeContextMenu:A,onNodeDoubleClick:B,nodeTypes:f,edgeTypes:g,connectionLineType:Q,connectionLineStyle:R,connectionLineComponent:S,connectionLineContainerStyle:T,selectionKeyCode:V,selectionOnDrag:W,selectionMode:X,deleteKeyCode:U,multiSelectionKeyCode:Z,panActivationKeyCode:Y,zoomActivationKeyCode:$,onlyRenderVisibleElements:ab,selectNodesOnDrag:ac,defaultViewport:ak,translateExtent:an,minZoom:al,maxZoom:am,preventScrolling:ao,zoomOnScroll:ar,zoomOnPinch:as,zoomOnDoubleClick:aw,panOnScroll:at,panOnScrollSpeed:au,panOnScrollMode:av,panOnDrag:ax,onPaneClick:ay,onPaneMouseEnter:az,onPaneMouseMove:aA,onPaneMouseLeave:aB,onPaneScroll:aC,onPaneContextMenu:aD,onSelectionContextMenu:M,onSelectionStart:N,onSelectionEnd:O,onEdgeContextMenu:aF,onEdgeDoubleClick:aG,onEdgeMouseEnter:aH,onEdgeMouseMove:aI,onEdgeMouseLeave:aJ,onReconnect:aN??aK,onReconnectStart:aO??aL,onReconnectEnd:aP??aM,reconnectRadius:aQ??aR,defaultMarkerColor:aq,noDragClassName:aU,noWheelClassName:aV,noPanClassName:aW,elevateEdgesOnSelect:a2,rfId:be,disableKeyboardA11y:a3,nodeOrigin:ag,nodeExtent:ap}),t.default.createElement(dF,{nodes:a,edges:b,defaultNodes:c,defaultEdges:d,onConnect:r,onConnectStart:s,onConnectEnd:u,onClickConnectStart:v,onClickConnectEnd:w,nodesDraggable:ad,nodesConnectable:ae,nodesFocusable:af,edgesFocusable:ah,edgesUpdatable:ai,elementsSelectable:aj,elevateNodesOnSelect:a1,minZoom:al,maxZoom:am,nodeExtent:ap,onNodesChange:aS,onEdgesChange:aT,snapToGrid:_,snapGrid:aa,connectionMode:P,translateExtent:an,connectOnClick:aZ,defaultEdgeOptions:a0,fitView:aX,fitViewOptions:aY,onNodesDelete:F,onEdgesDelete:G,onNodeDragStart:C,onNodeDrag:D,onNodeDragStop:E,onSelectionDrag:K,onSelectionDragStart:J,onSelectionDragStop:L,noPanClassName:aW,nodeOrigin:ag,rfId:be,autoPanOnConnect:a4,autoPanOnNodeDrag:a5,onError:a8,connectionRadius:a6,isValidConnection:a7,nodeDragThreshold:bb}),t.default.createElement(dB,{onSelectionChange:I}),aE,t.default.createElement(cu,{proOptions:a_,position:a$}),t.default.createElement(dM,{rfId:be,disableKeyboardA11y:a3})))});function e6(a){return b=>{let[c,d]=(0,t.useState)(b),e=(0,t.useCallback)(b=>d(c=>a(b,c)),[]);return[c,d,e]}}e5.displayName="ReactFlow";let e7=e6(d8),e8=e6(function(a,b){return d7(a,b)});function e9(){return t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},t.default.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function fa(){return t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},t.default.createElement("path",{d:"M0 0h32v4.2H0z"}))}function fb(){return t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},t.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 fc(){return t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},t.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 fd(){return t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},t.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 fe=({children:a,className:b,...c})=>t.default.createElement("button",{type:"button",className:H(["react-flow__controls-button",b]),...c},a);fe.displayName="ControlButton";let ff=a=>({isInteractive:a.nodesDraggable||a.nodesConnectable||a.elementsSelectable,minZoomReached:a.transform[2]<=a.minZoom,maxZoomReached:a.transform[2]>=a.maxZoom}),fg=({style:a,showZoom:b=!0,showFitView:c=!0,showInteractive:d=!0,fitViewOptions:e,onZoomIn:f,onZoomOut:g,onFitView:h,onInteractiveChange:i,className:j,children:k,position:l="bottom-left"})=>{let m=cr(),[n,o]=(0,t.useState)(!1),{isInteractive:p,minZoomReached:q,maxZoomReached:r}=cq(ff,Q),{zoomIn:s,zoomOut:u,fitView:v}=dX();return((0,t.useEffect)(()=>{o(!0)},[]),n)?t.default.createElement(ct,{className:H(["react-flow__controls",j]),position:l,style:a,"data-testid":"rf__controls"},b&&t.default.createElement(t.default.Fragment,null,t.default.createElement(fe,{onClick:()=>{s(),f?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:r},t.default.createElement(e9,null)),t.default.createElement(fe,{onClick:()=>{u(),g?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:q},t.default.createElement(fa,null))),c&&t.default.createElement(fe,{className:"react-flow__controls-fitview",onClick:()=>{v(e),h?.()},title:"fit view","aria-label":"fit view"},t.default.createElement(fb,null)),d&&t.default.createElement(fe,{className:"react-flow__controls-interactive",onClick:()=>{m.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),i?.(!p)},title:"toggle interactivity","aria-label":"toggle interactivity"},p?t.default.createElement(fd,null):t.default.createElement(fc,null)),k):null};fg.displayName="Controls";var fh=(0,t.memo)(fg);function fi({color:a,dimensions:b,lineWidth:c}){return t.default.createElement("path",{stroke:a,strokeWidth:c,d:`M${b[0]/2} 0 V${b[1]} M0 ${b[1]/2} H${b[0]}`})}function fj({color:a,radius:b}){return t.default.createElement("circle",{cx:b,cy:b,r:b,fill:a})}(h=p||(p={})).Lines="lines",h.Dots="dots",h.Cross="cross";let fk={[p.Dots]:"#91919a",[p.Lines]:"#eee",[p.Cross]:"#e2e2e2"},fl={[p.Dots]:1,[p.Lines]:1,[p.Cross]:6},fm=a=>({transform:a.transform,patternId:`pattern-${a.rfId}`});function fn({id:a,variant:b=p.Dots,gap:c=20,size:d,lineWidth:e=1,offset:f=2,color:g,style:h,className:i}){let j=(0,t.useRef)(null),{transform:k,patternId:l}=cq(fm,Q),m=g||fk[b],n=d||fl[b],o=b===p.Dots,q=b===p.Cross,r=Array.isArray(c)?c:[c,c],s=[r[0]*k[2]||1,r[1]*k[2]||1],u=n*k[2],v=q?[u,u]:s,w=o?[u/f,u/f]:[v[0]/f,v[1]/f];return t.default.createElement("svg",{className:H(["react-flow__background",i]),style:{...h,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:j,"data-testid":"rf__background"},t.default.createElement("pattern",{id:l+a,x:k[0]%s[0],y:k[1]%s[1],width:s[0],height:s[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${w[0]},-${w[1]})`},o?t.default.createElement(fj,{color:m,radius:u/f}):t.default.createElement(fi,{dimensions:v,color:m,lineWidth:e})),t.default.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${l+a})`}))}fn.displayName="Background";var fo=(0,t.memo)(fn),fp=a.i(99766),fq=a.i(78802),fr=a.i(82953),fs=a.i(51038),ft=a.i(18951),fu=a.i(38689),fv=a.i(93705);let fw=({bounds:a,viewport:b})=>{let c={x:a.x*b.zoom+b.x,y:a.y*b.zoom+b.y,width:a.width*b.zoom,height:a.height*b.zoom};return(0,q.jsx)("div",{style:{position:"absolute",left:c.x-50*b.zoom,top:c.y-50*b.zoom,width:c.width+100*b.zoom,height:c.height+100*b.zoom,border:`${3*b.zoom}px solid #e2e8f0`,borderRadius:`${12*b.zoom}px`,backgroundColor:"rgba(248, 250, 252, 0.5)",pointerEvents:"none",zIndex:0}})},fx=(0,t.memo)(({data:a})=>{let b=a.member,c=a.spouse,{avatarUrl:d}=w(b?.avatarImageId);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(dn,{type:"target",position:o.Top}),(0,q.jsx)(fp.Card,{className:"w-40 h-40 hover:shadow-lg transition-all cursor-pointer border hover:border-primary",onClick:()=>a.onClick?.(b.id),children:(0,q.jsxs)(fp.CardContent,{className:"p-1 pt-0 flex flex-col h-full -mt-1 ml-1",children:[(0,q.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0 mb-1.5 ml-2",children:[(0,q.jsxs)(fq.Avatar,{className:"h-14 w-14 flex-shrink-0",children:[d&&(0,q.jsx)(fq.AvatarImage,{src:d,alt:b.fullName,className:"object-cover"}),(0,q.jsx)(fq.AvatarFallback,{className:"MALE"===b.gender?"bg-blue-100 text-blue-700":"bg-pink-100 text-pink-700",children:(0,q.jsx)(fs.User,{className:"h-6 w-6"})})]}),(0,q.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,q.jsx)("h3",{className:"font-semibold text-sm truncate leading-tight",children:b.fullName}),(0,q.jsxs)(fr.Badge,{variant:"outline",className:"text-[9px] px-1 py-0 mt-0.5",children:["第",b.generation,"世"]})]})]}),(0,q.jsxs)("div",{className:"space-y-0.5 flex-shrink-0 text-xs text-muted-foreground",children:[b.birthDate&&(0,q.jsxs)("p",{className:"truncate leading-tight",children:[new Date(b.birthDate).getFullYear(),b.deathDate&&` - ${new Date(b.deathDate).getFullYear()}`]}),b.birthPlace&&(0,q.jsx)("p",{className:"truncate leading-tight",children:b.birthPlace})]}),(0,q.jsx)("div",{className:"mt-auto pt-1.5 border-t",children:c&&(0,q.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:b=>{b.stopPropagation(),a.onClick?.(c.id)},children:[(0,q.jsx)(ft.Users,{className:"h-3 w-3 text-muted-foreground flex-shrink-0 group-hover:text-foreground"}),(0,q.jsx)("span",{className:"text-xs text-muted-foreground truncate leading-tight group-hover:text-foreground font-medium",children:c.fullName})]})})]})}),(0,q.jsx)(dn,{type:"source",position:o.Bottom})]})});fx.displayName="MemberNode";let fy={x:0,y:0,zoom:.8},fz=({members:b,rootId:c,onMemberClick:d,onExport:e})=>{let[f,g,h]=e7([]),[i,j,k]=e8([]),[l,m]=(0,t.useState)({x:0,y:0,width:0,height:0}),[n,o]=(0,t.useState)({x:0,y:0,zoom:.8}),{getNodes:p,getViewport:r}=dX(),s=(0,t.useMemo)(()=>({memberNode:fx}),[]),u=(0,t.useCallback)(a=>{o(a)},[]),v=(0,t.useCallback)(async()=>{try{let b=await a.A(7256),c=document.querySelector(".react-flow");if(!c)return void console.error("ReactFlow container not found");let d=c.querySelector(".react-flow__viewport");if(!d)return void console.error("Viewport not found");let f=c.style.overflow,g=c.style.width,h=c.style.height;c.style.overflow="visible",c.style.width="auto",c.style.height="auto",await new Promise(a=>setTimeout(a,100));let i=d.querySelectorAll(".react-flow__node"),j=c.querySelectorAll("svg path, svg g"),k=1/0,l=1/0,m=-1/0,n=-1/0;i.forEach(a=>{let b=a.getBoundingClientRect(),d=c.getBoundingClientRect();k=Math.min(k,b.left-d.left),l=Math.min(l,b.top-d.top),m=Math.max(m,b.right-d.left),n=Math.max(n,b.bottom-d.top)}),j.forEach(a=>{let b=a.getBoundingClientRect(),d=c.getBoundingClientRect();k=Math.min(k,b.left-d.left),l=Math.min(l,b.top-d.top),m=Math.max(m,b.right-d.left),n=Math.max(n,b.bottom-d.top)}),k-=100,l-=100,m+=100,n+=100;let o=m-k,p=n-l,q=c.cloneNode(!0);q.querySelectorAll(".react-flow__controls, .react-flow__background, .react-flow__panel").forEach(a=>a.remove()),q.querySelectorAll("*").forEach(a=>{a.style.border="none",a.style.outline="none",a.style.boxShadow="none"}),q.style.position="fixed",q.style.left="-9999px",q.style.top="0",q.style.width=`${o}px`,q.style.height=`${p}px`,q.style.background="#ffffff",q.style.border="none",q.style.borderRadius="0",q.style.overflow="visible";let r=q.querySelector(".react-flow__viewport");if(r){let a=r.style.transform||"",b=a.match(/translate\(([^,]+),\s*([^)]+)\)\s*scale\(([^)]+)\)/);if(b){let a=parseFloat(b[1]),c=parseFloat(b[2]),d=parseFloat(b[3]),e=a-k,f=c-l;r.style.transform=`translate(${e}px, ${f}px) scale(${d})`}else r.style.transform=`${a} translate(${-k}px, ${-l}px)`}document.body.appendChild(q),await new Promise(a=>setTimeout(a,500));let s=await b.toBlob(q,{quality:.95,bgcolor:"#ffffff",width:o,height:p});document.body.removeChild(q),c.style.overflow=f,c.style.width=g,c.style.height=h;let t=URL.createObjectURL(s),u=document.createElement("a");u.href=t,u.download=`家谱图-${new Date().toISOString().split("T")[0]}.png`,document.body.appendChild(u),u.click(),document.body.removeChild(u),setTimeout(()=>URL.revokeObjectURL(t),100),e?.()}catch(b){console.error("导出PNG失败:",b);let a=document.querySelector(".react-flow");a&&(a.style.overflow="",a.style.width="",a.style.height="")}},[e]),w=(0,t.useCallback)(async()=>{try{let b=await a.A(7256),c=document.querySelector(".react-flow");if(!c)return void console.error("ReactFlow container not found");let d=c.querySelector(".react-flow__viewport");if(!d)return void console.error("Viewport not found");let f=d.querySelectorAll(".react-flow__node"),g=c.querySelectorAll("svg path, svg g"),h=1/0,i=1/0,j=-1/0,k=-1/0;f.forEach(a=>{let b=a.getBoundingClientRect(),d=c.getBoundingClientRect();h=Math.min(h,b.left-d.left),i=Math.min(i,b.top-d.top),j=Math.max(j,b.right-d.left),k=Math.max(k,b.bottom-d.top)}),g.forEach(a=>{let b=a.getBoundingClientRect(),d=c.getBoundingClientRect();h=Math.min(h,b.left-d.left),i=Math.min(i,b.top-d.top),j=Math.max(j,b.right-d.left),k=Math.max(k,b.bottom-d.top)}),h-=100,i-=100,j+=100,k+=100;let l=j-h,m=k-i,n=c.cloneNode(!0);n.querySelectorAll(".react-flow__controls, .react-flow__background, .react-flow__panel").forEach(a=>a.remove()),n.querySelectorAll("*").forEach(a=>{a.style.border="none",a.style.outline="none",a.style.boxShadow="none"}),n.style.position="fixed",n.style.left="-9999px",n.style.top="0",n.style.width=`${l}px`,n.style.height=`${m}px`,n.style.background="#ffffff",n.style.border="none",n.style.borderRadius="0",n.style.overflow="visible";let o=n.querySelector(".react-flow__viewport");if(o){let a=o.style.transform||"",b=a.match(/translate\(([^,]+),\s*([^)]+)\)\s*scale\(([^)]+)\)/);if(b){let a=parseFloat(b[1]),c=parseFloat(b[2]),d=parseFloat(b[3]),e=a-h,f=c-i;o.style.transform=`translate(${e}px, ${f}px) scale(${d})`}else o.style.transform=`${a} translate(${-h}px, ${-i}px)`}document.body.appendChild(n),await new Promise(a=>setTimeout(a,500));let p=await b.toBlob(n,{quality:.95,bgcolor:"#ffffff",width:l,height:m});document.body.removeChild(n);let q=URL.createObjectURL(p),r=window.open("","_blank");r&&(r.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="${q}" alt="家谱图" />
|
|
</body>
|
|
</html>
|
|
`),r.document.close(),r.onload=()=>{setTimeout(()=>{r.print(),r.close(),URL.revokeObjectURL(q),e?.()},500)})}catch(a){console.error("导出PDF失败:",a)}},[e]);return(0,t.useEffect)(()=>{if(!c||!b[c])return;let a=[],e=[],f=new Map,h=new Map;Object.values(b).forEach(a=>{let b=a.generation||1;h.has(b)||h.set(b,[]),h.get(b).push(a)});let i=(a,c=new Set)=>{if(c.has(a))return 180;c.add(a);let d=Object.values(b).filter(b=>b.fatherId===a||b.motherId===a);if(0===d.length)return 180;let e=0;return d.forEach(a=>{e+=i(a.id,c)}),Math.max(e,180)},k=(c,g,h,j)=>{let l=b[c];if(!l)return g;let m=l.spouseIds?.[0]?b[l.spouseIds[0]]:null,n=Object.values(b).filter(a=>a.fatherId===c||a.motherId===c).sort((a,b)=>(a.birthDate?new Date(a.birthDate).getTime():0)-(b.birthDate?new Date(b.birthDate).getTime():0)),o=0,p=[];n.forEach(a=>{let b=i(a.id);p.push(b),o+=b});let q=g;if(n.length>0&&(q=g+o/2-80),a.push({id:c,type:"memberNode",position:{x:q,y:h},data:{member:l,spouse:m,onClick:d}}),f.set(c,{x:q,y:h}),0===n.length)return g+180;let r=g,s=h+180;return n.forEach((a,b)=>{k(a.id,r,s,j+1),e.push({id:`${c}-${a.id}`,source:c,target:a.id,type:"default",animated:!1,style:{stroke:"#94a3b8",strokeWidth:2}}),r+=p[b]}),q};if(k(c,400,50,1),g(a),j(e),a.length>0){let b=c8(a);m({x:b.x,y:b.y,width:b.width,height:b.height})}},[b,c,d,g,j]),(0,q.jsxs)("div",{className:"w-full h-full bg-background rounded-lg border relative",children:[l.width>0&&l.height>0&&(0,q.jsx)("div",{className:"absolute inset-0 pointer-events-none",children:(0,q.jsx)(fw,{bounds:l,viewport:n})}),(0,q.jsxs)("div",{className:"absolute top-4 right-4 z-10 flex gap-2",children:[(0,q.jsxs)("button",{onClick:v,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,q.jsx)(fu.Download,{className:"h-4 w-4"}),"导出PNG"]}),(0,q.jsxs)("button",{onClick:w,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,q.jsx)(fv.FileText,{className:"h-4 w-4"}),"导出PDF"]})]}),(0,q.jsxs)(e5,{nodes:f,edges:i,onNodesChange:h,onEdgesChange:k,onMove:u,nodeTypes:s,fitView:!0,minZoom:.1,maxZoom:1.5,defaultViewport:fy,children:[(0,q.jsx)(fo,{}),(0,q.jsx)(fh,{})]})]})};function fA(a){return(0,q.jsx)(eZ,{children:(0,q.jsx)(fz,{...a})})}var fB=a.i(8895),fC=a.i(76715);let fD=(0,z.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"}]]),fE=(0,z.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 fF(){let{treeData:b}=(0,E.useFamily)(),c=(0,F.useRouter)(),d=(0,F.useSearchParams)(),[e,f]=(0,t.useState)("traditional");(0,t.useEffect)(()=>{let a=d.get("view");("org-chart"===a||"traditional"===a)&&f(a)},[d]);let[g,h]=(0,t.useState)(1),[i,j]=(0,t.useState)({x:0,y:0}),[k,l]=(0,t.useState)(!1),[m,n]=(0,t.useState)({x:0,y:0}),[o,p]=(0,t.useState)({x:0,y:0}),s=(0,t.useRef)(null),u=()=>{l(!1)},v=async()=>{if(s.current)try{let b={...i};j({x:0,y:0}),h(1),await new Promise(a=>setTimeout(a,800));let c=s.current.querySelector('div[style*="transform"]');if(!c)throw Error("找不到族谱容器");let d=c.querySelectorAll("div"),e=[];d.forEach(a=>{String(a.className||"").includes("bg-foreground")&&e.push(a)});let f=c.cloneNode(!0),k=f.querySelectorAll("div"),l=0;k.forEach(a=>{if(String(a.className||"").includes("bg-foreground")&&e[l]){let b=e[l],c=window.getComputedStyle(b);a.style.backgroundColor=c.backgroundColor,a.style.width=c.width,a.style.height=c.height,a.style.position="absolute",a.style.left=c.left,a.style.top=c.top,l++}}),f.querySelectorAll("*").forEach(a=>{let b=String(a.className||"");b.includes("bg-foreground")||b.includes("pointer-events-none")||(a.style.border="none",a.style.outline="none")}),f.style.position="fixed",f.style.left="-9999px",f.style.top="0",document.body.appendChild(f),await new Promise(a=>setTimeout(a,200));let m=await a.A(7256),n=await m.default.toBlob(f,{quality:.95,bgcolor:"#ffffff"});document.body.removeChild(f),j(b),h(g);let o=URL.createObjectURL(n),p=document.createElement("a");p.download=`family-tree-${new Date().toISOString().split("T")[0]}.png`,p.href=o,p.click(),setTimeout(()=>URL.revokeObjectURL(o),100)}catch(a){console.error("导出图片失败:",a)}};return b.rootId?(0,q.jsxs)("div",{className:"h-screen flex flex-col bg-muted/30 overflow-hidden",children:[(0,q.jsx)(r.SiteHeader,{}),"traditional"===e?(0,q.jsxs)("div",{className:"flex-1 relative",children:[(0,q.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,q.jsx)(fB.Button,{variant:"outline",size:"icon",onClick:()=>h(a=>Math.min(a+.1,2)),children:(0,q.jsx)(fC.ZoomIn,{className:"h-4 w-4"})}),(0,q.jsx)(fB.Button,{variant:"outline",size:"icon",onClick:()=>h(a=>Math.max(a-.1,.1)),children:(0,q.jsx)(fD,{className:"h-4 w-4"})}),(0,q.jsx)(fB.Button,{variant:"outline",size:"icon",onClick:()=>j({x:0,y:0}),children:(0,q.jsx)(fE,{className:"h-4 w-4"})}),(0,q.jsx)("div",{className:"h-px bg-border my-1"}),(0,q.jsx)(fB.Button,{variant:"outline",size:"icon",onClick:v,title:"导出为图片",children:(0,q.jsx)(fu.Download,{className:"h-4 w-4"})})]}),(0,q.jsx)("div",{ref:s,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:a=>{a.target.closest(".family-node-card")||(l(!0),n({x:a.clientX-i.x,y:a.clientY-i.y}),p({x:a.clientX,y:a.clientY}))},onMouseMove:a=>{if(!k)return;let b=Math.abs(a.clientX-o.x),c=Math.abs(a.clientY-o.y);b<5&&c<5||j({x:a.clientX-m.x,y:a.clientY-m.y})},onMouseUp:u,onMouseLeave:u,children:(0,q.jsx)("div",{style:{transform:`translate(${i.x}px, ${i.y}px) scale(${g})`,transformOrigin:"top center",transition:k?"none":"transform 0.1s ease-out"},className:"absolute min-w-full min-h-full flex justify-center pt-20 pb-20",children:(0,q.jsx)(G,{rootId:b.rootId})})})]}):(0,q.jsx)("div",{className:"flex-1 p-4",children:(0,q.jsx)(fA,{members:b.members,rootId:b.rootId,onMemberClick:a=>c.push(`/members/${a}`)})})]}):(0,q.jsxs)("div",{className:"min-h-screen bg-background flex flex-col",children:[(0,q.jsx)(r.SiteHeader,{}),(0,q.jsx)("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"暂无家族树数据"})]})}a.s(["default",()=>fF],73201)}];
|
|
|
|
//# sourceMappingURL=Documents_go-new_chinese-family-tree_95a74d3e._.js.map
|