vendor: 5,217 bytes, lines 1-26
1var ll=Object.defineProperty;var cl=(e,t,n)=>t in e?ll(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var be=(e,t,n)=>cl(e,typeof t!="symbol"?t+"":t,n);import{K as yn,r as x,bX as ul,bY as Us,aM as C,j as f,aY as yt,_ as dl,a as fl,a6 as cr,L as No,B as Ne,bk as So,s as rt,a4 as Ft,aD as Kr,af as hl,ag as ml,aK as ur,ah as pl,ai as ko,S as gl,C as yl,ar as dr,b as wl,d as xl,o as bl,e as vl,ak as _l,al as El,am as Nl,an as Sl,ao as kl,ab as Cl,aF as Il,aq as Tl,Q as vn,F as Al,g as jl,bT as Ml,bZ as Ol,bF as Dl,M as Fl,b_ as $l,aP as Pl,b$ as Ll,U as Zr,a7 as fr,bG as hr,h as Co,$ as mr,a0 as pr,a1 as gr,a2 as yr,a3 as Et,au as Io,aH as qs,ba as To,bb as Ao,bC as jo,bc as Mo,b7 as Oo,a8 as Rl,a9 as Bl,aa as zl}from"./index-CuSEeJFb.js";import{S as Do,a as Fo,b as $o,c as Po}from"./sheet-veaLBARn.js";import{T as Vl,a as Hl,b as Lo}from"./tabs-CcPOXtvT.js";import{i as St,c as Ro,a as Bo,b as Gl}from"./string-CFFdVFMV.js";import{S as wr}from"./save-DMqvNvzo.js";import{F as _n}from"./folder-open-nDEnLPQX.js";import{M as Ks}from"./maximize-B0AUw_l6.js";import{L as zo}from"./layout-grid-23B-LoFc.js";import{S as Pn,F as Qr}from"./snowflake-k2KdrOCY.js";import{S as Ln}from"./sun-KW6XNC1h.js";import{F as Yl}from"./facebook-BJe1dDtq.js";import{I as Wl,T as Xl}from"./twitter-C-GvanjD.js";import{L as Ul}from"./linkedin-Ds6akugu.js";import{Y as ql}from"./youtube-DlkBaL0D.js";import{V as Vo}from"./video-AMZtj4XD.js";import{I as Ho}from"./image-fQC3p4ps.js";import{S as Kl}from"./shopping-cart-DspeacC2.js";import{N as Zl}from"./newspaper-B16eXHZa.js";import{H as Ql}from"./headphones-C-dM9uDD.js";import{C as Jl}from"./chart-no-axes-column-increasing-CE8VvCUt.js";import{M as ec}from"./mail-Dl1RGATy.js";import{M as tc}from"./mail-open-DbuTRLNH.js";import{U as nc}from"./user-plus-Bycr7F9K.js";import{B as rc}from"./bot-ecRnbbNU.js";import{V as oc}from"./voicemail-2V6a7KU0.js";import{F as sc}from"./file-DOG0cMA7.js";import{R as ic}from"./radio-CZxjpB95.js";import{T as ac}from"./tv-fmJKIX6v.js";import{L as Mn}from"./link-2-B6OMy1mi.js";import{G as lc}from"./grip-vertical-DtmmqDbO.js";/** 2 * @license lucide-react v0.453.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const cc=yn("Book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]);/** 7 * @license lucide-react v0.453.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Go=yn("FilePlus",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/** 12 * @license lucide-react v0.453.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const uc=yn("FileSpreadsheet",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]);/** 17 * @license lucide-react v0.453.0 - ISC 18 * 19 * This source code is licensed under the ISC license. 20 * See the LICENSE file in the root directory of this source tree. 21 */const dc=yn("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/** 22 * @license lucide-react v0.453.0 - ISC 23 * 24 * This source code is licensed under the ISC license. 25 * See the LICENSE file in the root directory of this source tree. 26 */const fc=yn("Mails",[["rect",{width:"16",height:"13",x:"6",y:"4",rx:"2",key:"1drq3f"}],["path",{d:"m22 7-7.1 3.78c-.57.3-1.23.3-1.8 0L6 7",key:"xn252p"}],["path",{d:"M2 8v11c0 1.1.9 2 2 2h14",key:"n13cji"}]]);var Yo=180/Math.PI,Mr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Zs(e,t,n,r,o,i){var s,a,l;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),e*r<t*n&&(e=-e,t=-t,l=-l,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Yo,skewX:Math.atan(l)*Yo,scaleX:s,scaleY:a}}var En;function hc(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Mr:Zs(t.a,t.b,t.c,t.d,t.e,t.f)}function mc(e){return e==null||(En||(En=document.createElementNS("http://www.w3.org/2000/svg","g")),En.setAttribute("transform",e),!(e=En.transform.baseVal.consolidate()))?Mr:(e=e.matrix,Zs(e.a,e.b,e.c,e.d,e.e,e.f))}function Qs(e,t,n,r){function o(c){return c.length?c.pop()+" ":""}function i(c,u,d,h,m,g){if(c!==d||u!==h){var y=m.push("translate(",null,t,null,n);g.push({i:y-4,x:St(c,d)},{i:y-2,x:St(u,h)})}else(d||h)&&m.push("translate("+d+t+h+n)}function s(c,u,d,h){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),h.push({i:d.push(o(d)+"rotate(",null,r)-2,x:St(c,u)})):u&&d.push(o(d)+"rotate("+u+r)}
26function a(c,u,d,h){c!==u?h.push({i:d.push(o(d)+"skewX(",null,r)-2,x:St(c,u)}):u&&d.push(o(d)+"skewX("+u+r)}function l(c,u,d,h,m,g){if(c!==d||u!==h){var y=m.push(o(m)+"scale(",null,",",null,")");g.push({i:y-4,x:St(c,d)},{i:y-2,x:St(u,h)})}else(d!==1||h!==1)&&m.push(o(m)+"scale("+d+","+h+")")}return function(c,u){var d=[],h=[];return c=e(c),u=e(u),i(c.translateX,c.translateY,u.translateX,u.translateY,d,h),s(c.rotate,u.rotate,d,h),a(c.skewX,u.skewX,d,h),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,d,h),c=u=null,function(m){for(var g=-1,y=h.length,b;++g<y;)d[(b=h[g]).i]=b.x(m);return d.join("")}}}var pc=Qs(hc,"px, ","px)","deg)"),gc=Qs(mc,", ",")",")"),yc=1e-12;function Wo(e){return((e=Math.exp(e))+1/e)/2}function wc(e){return((e=Math.exp(e))-1/e)/2}function xc(e){return((e=Math.exp(2*e))-1)/(e+1)}const bc=function e(t,n,r){function o(i,s){var a=i[0],l=i[1],c=i[2],u=s[0],d=s[1],h=s[2],m=u-a,g=d-l,y=m*m+g*g,b,w;if(y<yc)w=Math.log(h/c)/t,b=function(R){return[a+R*m,l+R*g,c*Math.exp(t*R*w)]};else{var S=Math.sqrt(y),T=(h*h-c*c+r*y)/(2*c*n*S),_=(h*h-c*c-r*y)/(2*h*n*S),j=Math.log(Math.sqrt(T*T+1)-T),F=Math.log(Math.sqrt(_*_+1)-_);w=(F-j)/t,b=function(R){var z=R*w,M=Wo(j),H=c/(n*S)*(M*xc(t*z+j)-wc(j));return[a+H*m,l+H*g,c*M/Wo(t*z+j)]}}return b.duration=w*1e3*t/Math.SQRT2,b}return o.rho=function(i){var s=Math.max(.001,+i),a=s*s,l=a*a;return e(s,a,l)},o}(Math.SQRT2,2,4);function je(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=je(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var Js={exports:{}},ei={};/** 27 * @license React 28 * use-sync-external-store-shim/with-selector.production.min.js 29 * 30 * Copyright (c) Facebook, Inc. and its affiliates. 31 * 32 * This source code is licensed under the MIT license found in the 33 * LICENSE file in the root directory of this source tree. 34 */var Un=x,vc=ul;function _c(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Ec=typeof Object.is=="function"?Object.is:_c,Nc=vc.useSyncExternalStore,Sc=Un.useRef,kc=Un.useEffect,Cc=Un.useMemo,Ic=Un.useDebugValue;ei.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var i=Sc(null);if(i.current===null){var s={hasValue:!1,value:null};i.current=s}else s=i.current;i=Cc(function(){function l(m){if(!c){if(c=!0,u=m,m=r(m),o!==void 0&&s.hasValue){var g=s.value;if(o(g,m))return d=g}return d=m}if(g=d,Ec(u,m))return g;var y=r(m);return o!==void 0&&o(g,y)?g:(u=m,d=y)}var c=!1,u,d,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,o]);var a=Nc(e,i[0],i[1]);return kc(function(){s.hasValue=!0,s.value=a},[a]),Ic(a),a};Js.exports=ei;var Tc=Js.exports;const Ac=Us(Tc),jc={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_GA_APP_MEASUREMENT_ID:"G-QZSW3JRL06",VITE_GA_MARKETING_MEASUREMENT_ID:"G-6JHV5RMZH6",VITE_GA_MEASUREMENT_ID:"G-6JHV5RMZH6",VITE_STRIPE_PUBLIC_KEY:"pk_live_51RFCRaCMd4R2mpG2z2fNsvEtGjAsl5mKK8qxzsEcT7IEn3fKJgk1r2QRJNie4K9QLYN7lI5H1othbgYUJU8VOY1f00gVPFXJad"},Xo=e=>{let t;const n=new Set,r=(u,d)=>{const h=typeof u=="function"?u(t):u;if(!Object.is(h,t)){const m=t;t=d??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,m))}},o=()=>t,l={setState:r,getState:o,getInitialState:()=>c,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{(jc?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(r,o,l);return l},Mc=e=>e?Xo(e):Xo,{useDebugValue:Oc}=C,{useSyncExternalStoreWithSelector:Dc}=Ac,Fc=e=>e;function ti(e,t=Fc,n){const r=Dc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Oc(r),r}const Uo=(e,t)=>{const n=Mc(e),r=(o,i=t)=>ti(n,o,i);return Object.assign(r,n),r},$c=(e,t)=>e?Uo(e,t):Uo;function Se(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,o]of e)if(!Object.is(o,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Pc={value:()=>{}};function qn(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new On(n)}function On(e){this._=e}function Lc(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}On.prototype=qn.prototype={constructor:On,on:function(e,t){var n=this._,r=Lc(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=Rc(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(o=(e=r[i]).type)n[o]=qo(n[o],e.name,t);else if(t==null)for(o in n)n[o]=qo(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new On(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function Rc(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function qo(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=Pc,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Or="http://www.w3.org/1999/xhtml";const Ko={svg:"http://www.w3.org/2000/svg",xhtml:Or,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Kn(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Ko.hasOwnProperty(t)?{space:Ko[t],local:e}:e}function Bc(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Or&&t.documentElement.namespaceURI===Or?t.createElement(e):t.createElementNS(n,e)}}function zc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ni(e){var t=Kn(e);return(t.local?zc:Bc)(t)}function Vc(){}function Jr(e){return e==null?Vc:function(){return this.querySelector(e)}}function Hc(e){typeof e!="function"&&(e=Jr(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=new Array(s),l,c,u=0;u<s;++u)(l=i[u])&&(c=e.call(l,l.__data__,u,i))&&("__data__"in l&&(c.__data__=l.__data__),a[u]=c);return new Fe(r,this._parents)}function Gc(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Yc(){return[]}function ri(e){return e==null?Yc:function(){return this.querySelectorAll(e)}}function Wc(e){return function(){return Gc(e.apply(this,arguments))}}function Xc(e){typeof e=="function"?e=Wc(e):e=ri(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var s=t[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&(r.push(e.call(l,l.__data__,c,s)),o.push(l));return new Fe(r,o)}function oi(e){return function(){return this.matches(e)}}function si(e){return function(t){return t.matches(e)}}var Uc=Array.prototype.find;function qc(e){return function(){return Uc.call(this.children,e)}}function Kc(){return this.firstElementChild}function Zc(e){return this.select(e==null?Kc:qc(typeof e=="function"?e:si(e)))}var Qc=Array.prototype.filter;
vendor: 7,582 bytes, line 34
34function Jc(){return Array.from(this.children)}function eu(e){return function(){return Qc.call(this.children,e)}}function tu(e){return this.selectAll(e==null?Jc:eu(typeof e=="function"?e:si(e)))}function nu(e){typeof e!="function"&&(e=oi(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],l,c=0;c<s;++c)(l=i[c])&&e.call(l,l.__data__,c,i)&&a.push(l);return new Fe(r,this._parents)}function ii(e){return new Array(e.length)}function ru(){return new Fe(this._enter||this._groups.map(ii),this._parents)}function Rn(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Rn.prototype={constructor:Rn,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function ou(e){return function(){return e}}function su(e,t,n,r,o,i){for(var s=0,a,l=t.length,c=i.length;s<c;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new Rn(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function iu(e,t,n,r,o,i,s){var a,l,c=new Map,u=t.length,d=i.length,h=new Array(u),m;for(a=0;a<u;++a)(l=t[a])&&(h[a]=m=s.call(l,l.__data__,a,t)+"",c.has(m)?o[a]=l:c.set(m,l));for(a=0;a<d;++a)m=s.call(e,i[a],a,i)+"",(l=c.get(m))?(r[a]=l,l.__data__=i[a],c.delete(m)):n[a]=new Rn(e,i[a]);for(a=0;a<u;++a)(l=t[a])&&c.get(h[a])===l&&(o[a]=l)}function au(e){return e.__data__}function lu(e,t){if(!arguments.length)return Array.from(this,au);var n=t?iu:su,r=this._parents,o=this._groups;typeof e!="function"&&(e=ou(e));for(var i=o.length,s=new Array(i),a=new Array(i),l=new Array(i),c=0;c<i;++c){var u=r[c],d=o[c],h=d.length,m=cu(e.call(u,u&&u.__data__,c,r)),g=m.length,y=a[c]=new Array(g),b=s[c]=new Array(g),w=l[c]=new Array(h);n(u,d,y,b,w,m,t);for(var S=0,T=0,_,j;S<g;++S)if(_=y[S]){for(S>=T&&(T=S+1);!(j=b[T])&&++T<g;);_._next=j||null}}return s=new Fe(s,r),s._enter=a,s._exit=l,s}function cu(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function uu(){return new Fe(this._exit||this._groups.map(ii),this._parents)}function du(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function fu(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,s=Math.min(o,i),a=new Array(o),l=0;l<s;++l)for(var c=n[l],u=r[l],d=c.length,h=a[l]=new Array(d),m,g=0;g<d;++g)(m=c[g]||u[g])&&(h[g]=m);for(;l<o;++l)a[l]=n[l];return new Fe(a,this._parents)}function hu(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function mu(e){e||(e=pu);function t(d,h){return d&&h?e(d.__data__,h.__data__):!d-!h}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],a=s.length,l=o[i]=new Array(a),c,u=0;u<a;++u)(c=s[u])&&(l[u]=c);l.sort(t)}return new Fe(o,this._parents).order()}function pu(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function gu(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function yu(){return Array.from(this)}function wu(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function xu(){let e=0;for(const t of this)++e;return e}function bu(){return!this.node()}function vu(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,s=o.length,a;i<s;++i)(a=o[i])&&e.call(a,a.__data__,i,o);return this}function _u(e){return function(){this.removeAttribute(e)}}function Eu(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Nu(e,t){return function(){this.setAttribute(e,t)}}function Su(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ku(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Cu(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Iu(e,t){var n=Kn(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Eu:_u:typeof t=="function"?n.local?Cu:ku:n.local?Su:Nu)(n,t))}function ai(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Tu(e){return function(){this.style.removeProperty(e)}}function Au(e,t,n){return function(){this.style.setProperty(e,t,n)}}function ju(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Mu(e,t,n){return arguments.length>1?this.each((t==null?Tu:typeof t=="function"?ju:Au)(e,t,n??"")):Wt(this.node(),e)}function Wt(e,t){return e.style.getPropertyValue(t)||ai(e).getComputedStyle(e,null).getPropertyValue(t)}function Ou(e){return function(){delete this[e]}}function Du(e,t){return function(){this[e]=t}}function Fu(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function $u(e,t){return arguments.length>1?this.each((t==null?Ou:typeof t=="function"?Fu:Du)(e,t)):this.node()[e]}function li(e){return e.trim().split(/^|\s+/)}function eo(e){return e.classList||new ci(e)}function ci(e){this._node=e,this._names=li(e.getAttribute("class")||"")}ci.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function ui(e,t){for(var n=eo(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function di(e,t){for(var n=eo(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Pu(e){return function(){ui(this,e)}}function Lu(e){return function(){di(this,e)}}function Ru(e,t){return function(){(t.apply(this,arguments)?ui:di)(this,e)}}function Bu(e,t){var n=li(e+"");if(arguments.length<2){for(var r=eo(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Ru:t?Pu:Lu)(n,t))}function zu(){this.textContent=""}function Vu(e){return function(){this.textContent=e}}function Hu(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Gu(e){return arguments.length?this.each(e==null?zu:(typeof e=="function"?Hu:Vu)(e)):this.node().textContent}function Yu(){this.innerHTML=""}function Wu(e){return function(){this.innerHTML=e}}function Xu(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Uu(e){return arguments.length?this.each(e==null?Yu:(typeof e=="function"?Xu:Wu)(e)):this.node().innerHTML}function qu(){this.nextSibling&&this.parentNode.appendChild(this)}function Ku(){return this.each(qu)}function Zu(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Qu(){return this.each(Zu)}function Ju(e){var t=typeof e=="function"?e:ni(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ed(){return null}function td(e,t){var n=typeof e=="function"?e:ni(e),r=t==null?ed:typeof t=="function"?t:Jr(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}
vendor: 10,497 bytes, line 34
34function nd(){var e=this.parentNode;e&&e.removeChild(this)}function rd(){return this.each(nd)}function od(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function sd(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function id(e){return this.select(e?sd:od)}function ad(e){return arguments.length?this.property("__data__",e):this.node().__data__}function ld(e){return function(t){e.call(this,t,this.__data__)}}function cd(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function ud(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function dd(e,t,n){return function(){var r=this.__on,o,i=ld(t);if(r){for(var s=0,a=r.length;s<a;++s)if((o=r[s]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function fd(e,t,n){var r=cd(e+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,u;l<c;++l)for(o=0,u=a[l];o<i;++o)if((s=r[o]).type===u.type&&s.name===u.name)return u.value}return}for(a=t?dd:ud,o=0;o<i;++o)this.each(a(r[o],t,n));return this}function fi(e,t,n){var r=ai(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function hd(e,t){return function(){return fi(this,e,t)}}function md(e,t){return function(){return fi(this,e,t.apply(this,arguments))}}function pd(e,t){return this.each((typeof t=="function"?md:hd)(e,t))}function*gd(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var hi=[null];function Fe(e,t){this._groups=e,this._parents=t}function wn(){return new Fe([[document.documentElement]],hi)}function yd(){return this}Fe.prototype=wn.prototype={constructor:Fe,select:Hc,selectAll:Xc,selectChild:Zc,selectChildren:tu,filter:nu,data:lu,enter:ru,exit:uu,join:du,merge:fu,selection:yd,order:hu,sort:mu,call:gu,nodes:yu,node:wu,size:xu,empty:bu,each:vu,attr:Iu,style:Mu,property:$u,classed:Bu,text:Gu,html:Uu,raise:Ku,lower:Qu,append:Ju,insert:td,remove:rd,clone:id,datum:ad,on:fd,dispatch:pd,[Symbol.iterator]:gd};function Ge(e){return typeof e=="string"?new Fe([[document.querySelector(e)]],[document.documentElement]):new Fe([[e]],hi)}function wd(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Xe(e,t){if(e=wd(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const xd={passive:!1},hn={capture:!0,passive:!1};function xr(e){e.stopImmediatePropagation()}function Ht(e){e.preventDefault(),e.stopImmediatePropagation()}function mi(e){var t=e.document.documentElement,n=Ge(e).on("dragstart.drag",Ht,hn);"onselectstart"in t?n.on("selectstart.drag",Ht,hn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function pi(e,t){var n=e.document.documentElement,r=Ge(e).on("dragstart.drag",null);t&&(r.on("click.drag",Ht,hn),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Nn=e=>()=>e;function Dr(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}Dr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function bd(e){return!e.ctrlKey&&!e.button}function vd(){return this.parentNode}function _d(e,t){return t??{x:e.x,y:e.y}}function Ed(){return navigator.maxTouchPoints||"ontouchstart"in this}function Nd(){var e=bd,t=vd,n=_d,r=Ed,o={},i=qn("start","drag","end"),s=0,a,l,c,u,d=0;function h(_){_.on("mousedown.drag",m).filter(r).on("touchstart.drag",b).on("touchmove.drag",w,xd).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(_,j){if(!(u||!e.call(this,_,j))){var F=T(this,t.call(this,_,j),_,j,"mouse");F&&(Ge(_.view).on("mousemove.drag",g,hn).on("mouseup.drag",y,hn),mi(_.view),xr(_),c=!1,a=_.clientX,l=_.clientY,F("start",_))}}function g(_){if(Ht(_),!c){var j=_.clientX-a,F=_.clientY-l;c=j*j+F*F>d}o.mouse("drag",_)}function y(_){Ge(_.view).on("mousemove.drag mouseup.drag",null),pi(_.view,c),Ht(_),o.mouse("end",_)}function b(_,j){if(e.call(this,_,j)){var F=_.changedTouches,R=t.call(this,_,j),z=F.length,M,H;for(M=0;M<z;++M)(H=T(this,R,_,j,F[M].identifier,F[M]))&&(xr(_),H("start",_,F[M]))}}function w(_){var j=_.changedTouches,F=j.length,R,z;for(R=0;R<F;++R)(z=o[j[R].identifier])&&(Ht(_),z("drag",_,j[R]))}function S(_){var j=_.changedTouches,F=j.length,R,z;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),R=0;R<F;++R)(z=o[j[R].identifier])&&(xr(_),z("end",_,j[R]))}function T(_,j,F,R,z,M){var H=i.copy(),B=Xe(M||F,j),Y,V,p;if((p=n.call(_,new Dr("beforestart",{sourceEvent:F,target:h,identifier:z,active:s,x:B[0],y:B[1],dx:0,dy:0,dispatch:H}),R))!=null)return Y=p.x-B[0]||0,V=p.y-B[1]||0,function k(N,A,P){var E=B,O;switch(N){case"start":o[z]=k,O=s++;break;case"end":delete o[z],--s;case"drag":B=Xe(P||A,j),O=s;break}H.call(N,_,new Dr(N,{sourceEvent:A,subject:p,target:h,identifier:z,active:O,x:B[0]+Y,y:B[1]+V,dx:B[0]-E[0],dy:B[1]-E[1],dispatch:H}),R)}}return h.filter=function(_){return arguments.length?(e=typeof _=="function"?_:Nn(!!_),h):e},h.container=function(_){return arguments.length?(t=typeof _=="function"?_:Nn(_),h):t},h.subject=function(_){return arguments.length?(n=typeof _=="function"?_:Nn(_),h):n},h.touchable=function(_){return arguments.length?(r=typeof _=="function"?_:Nn(!!_),h):r},h.on=function(){var _=i.on.apply(i,arguments);return _===i?h:_},h.clickDistance=function(_){return arguments.length?(d=(_=+_)*_,h):Math.sqrt(d)},h}var Xt=0,an=0,Jt=0,gi=1e3,Bn,ln,zn=0,Tt=0,Zn=0,mn=typeof performance=="object"&&performance.now?performance:Date,yi=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function to(){return Tt||(yi(Sd),Tt=mn.now()+Zn)}function Sd(){Tt=0}function Vn(){this._call=this._time=this._next=null}Vn.prototype=wi.prototype={constructor:Vn,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?to():+n)+(t==null?0:+t),!this._next&&ln!==this&&(ln?ln._next=this:Bn=this,ln=this),this._call=e,this._time=n,Fr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Fr())}};function wi(e,t,n){var r=new Vn;return r.restart(e,t,n),r}function kd(){to(),++Xt;for(var e=Bn,t;e;)(t=Tt-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xt}function Zo(){Tt=(zn=mn.now())+Zn,Xt=an=0;try{kd()}finally{Xt=0,Id(),Tt=0}}function Cd(){var e=mn.now(),t=e-zn;t>gi&&(Zn-=t,zn=e)}function Id(){for(var e,t=Bn,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Bn=n);ln=e,Fr(r)}function Fr(e){if(!Xt){an&&(an=clearTimeout(an));var t=e-Tt;t>24?(e<1/0&&(an=setTimeout(Zo,e-mn.now()-Zn)),Jt&&(Jt=clearInterval(Jt))):(Jt||(zn=mn.now(),Jt=setInterval(Cd,gi)),Xt=1,yi(Zo))}}function Qo(e,t,n){var r=new Vn;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var Td=qn("start","end","cancel","interrupt"),Ad=[],xi=0,Jo=1,$r=2,Dn=3,es=4,Pr=5,Fn=6;function Qn(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;jd(e,n,{name:t,index:r,group:o,on:Td,tween:Ad,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:xi})}function no(e,t){var n=Ye(e,t);if(n.state>xi)throw new Error("too late; already scheduled");return n}function Ue(e,t){var n=Ye(e,t);if(n.state>Dn)throw new Error("too late; already running");return n}function Ye(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function jd(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=wi(i,0,n.time);function i(c){n.state=Jo,n.timer.restart(s,n.delay,n.time),n.delay<=c&&s(c-n.delay)}function s(c){var u,d,h,m;if(n.state!==Jo)return l();for(u in r)if(m=r[u],m.name===n.name){if(m.state===Dn)return Qo(s);m.state===es?(m.state=Fn,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete r[u]):+u<t&&(m.state=Fn,m.timer.stop(),m.on.call("cancel",e,e.__data__,m.index,m.group),delete r[u])}if(Qo(function(){n.state===Dn&&(n.state=es,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=$r,n.on.call("start",e,e.__data__,n.index,n.group),n.state===$r){for(n.state=Dn,o=new Array(h=n.tween.length),u=0,d=-1;u<h;++u)(m=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(o[++d]=m);o.length=d+1}}function a(c){for(var u=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=Pr,1),d=-1,h=o.length;++d<h;)o[d].call(e,u);n.state===Pr&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Fn,n.timer.stop(),delete r[t];for(var c in r)return;delete e.__transition}}function $n(e,t){var n=e.__transition,r,o,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((r=n[s]).name!==t){i=!1;continue}o=r.state>$r&&r.state<Pr,r.state=Fn,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function Md(e){return this.each(function(){$n(this,e)})}function Od(e,t){var n,r;return function(){var o=Ue(this,e),i=o.tween;if(i!==n){r=n=i;for(var s=0,a=r.length;s<a;++s)if(r[s].name===t){r=r.slice(),r.splice(s,1);break}}o.tween=r}}
vendor: 6,057 bytes, line 34
34function Dd(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=Ue(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:t,value:n},l=0,c=o.length;l<c;++l)if(o[l].name===t){o[l]=a;break}l===c&&o.push(a)}i.tween=o}}function Fd(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Ye(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===e)return s.value;return null}return this.each((t==null?Od:Dd)(n,e,t))}function ro(e,t,n){var r=e._id;return e.each(function(){var o=Ue(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Ye(o,r).value[t]}}function bi(e,t){var n;return(typeof t=="number"?St:t instanceof Ro?Bo:(n=Ro(t))?(t=n,Bo):Gl)(e,t)}function $d(e){return function(){this.removeAttribute(e)}}function Pd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ld(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttribute(e);return s===o?null:s===r?i:i=t(r=s,n)}}function Rd(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===o?null:s===r?i:i=t(r=s,n)}}function Bd(e,t,n){var r,o,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),l=a+"",s===l?null:s===r&&l===o?i:(o=l,i=t(r=s,a)))}}function zd(e,t,n){var r,o,i;return function(){var s,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),l=a+"",s===l?null:s===r&&l===o?i:(o=l,i=t(r=s,a)))}}function Vd(e,t){var n=Kn(e),r=n==="transform"?gc:bi;return this.attrTween(e,typeof t=="function"?(n.local?zd:Bd)(n,r,ro(this,"attr."+e,t)):t==null?(n.local?Pd:$d)(n):(n.local?Rd:Ld)(n,r,t))}function Hd(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Gd(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Yd(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Gd(e,i)),n}return o._value=t,o}function Wd(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Hd(e,i)),n}return o._value=t,o}function Xd(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=Kn(e);return this.tween(n,(r.local?Yd:Wd)(r,t))}function Ud(e,t){return function(){no(this,e).delay=+t.apply(this,arguments)}}function qd(e,t){return t=+t,function(){no(this,e).delay=t}}function Kd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Ud:qd)(t,e)):Ye(this.node(),t).delay}function Zd(e,t){return function(){Ue(this,e).duration=+t.apply(this,arguments)}}function Qd(e,t){return t=+t,function(){Ue(this,e).duration=t}}function Jd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Zd:Qd)(t,e)):Ye(this.node(),t).duration}function ef(e,t){if(typeof t!="function")throw new Error;return function(){Ue(this,e).ease=t}}function tf(e){var t=this._id;return arguments.length?this.each(ef(t,e)):Ye(this.node(),t).ease}function nf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ue(this,e).ease=n}}function rf(e){if(typeof e!="function")throw new Error;return this.each(nf(this._id,e))}function of(e){typeof e!="function"&&(e=oi(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],l,c=0;c<s;++c)(l=i[c])&&e.call(l,l.__data__,c,i)&&a.push(l);return new it(r,this._parents,this._name,this._id)}function sf(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),s=new Array(r),a=0;a<i;++a)for(var l=t[a],c=n[a],u=l.length,d=s[a]=new Array(u),h,m=0;m<u;++m)(h=l[m]||c[m])&&(d[m]=h);for(;a<r;++a)s[a]=t[a];return new it(s,this._parents,this._name,this._id)}function af(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function lf(e,t,n){var r,o,i=af(t)?no:Ue;return function(){var s=i(this,e),a=s.on;a!==r&&(o=(r=a).copy()).on(t,n),s.on=o}}function cf(e,t){var n=this._id;return arguments.length<2?Ye(this.node(),n).on.on(e):this.each(lf(n,e,t))}function uf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function df(){return this.on("end.remove",uf(this._id))}function ff(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Jr(e));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var a=r[s],l=a.length,c=i[s]=new Array(l),u,d,h=0;h<l;++h)(u=a[h])&&(d=e.call(u,u.__data__,h,a))&&("__data__"in u&&(d.__data__=u.__data__),c[h]=d,Qn(c[h],t,n,h,c,Ye(u,n)));return new it(i,this._parents,t,n)}function hf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ri(e));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var l=r[a],c=l.length,u,d=0;d<c;++d)if(u=l[d]){for(var h=e.call(u,u.__data__,d,l),m,g=Ye(u,n),y=0,b=h.length;y<b;++y)(m=h[y])&&Qn(m,t,n,y,h,g);i.push(h),s.push(u)}return new it(i,s,t,n)}var mf=wn.prototype.constructor;function pf(){return new mf(this._groups,this._parents)}function gf(e,t){var n,r,o;return function(){var i=Wt(this,e),s=(this.style.removeProperty(e),Wt(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function vi(e){return function(){this.style.removeProperty(e)}}function yf(e,t,n){var r,o=n+"",i;return function(){var s=Wt(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function wf(e,t,n){var r,o,i;return function(){var s=Wt(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Wt(this,e))),s===l?null:s===r&&l===o?i:(o=l,i=t(r=s,a))}}function xf(e,t){var n,r,o,i="style."+t,s="end."+i,a;return function(){var l=Ue(this,e),c=l.on,u=l.value[i]==null?a||(a=vi(t)):void 0;(c!==n||o!==u)&&(r=(n=c).copy()).on(s,o=u),l.on=r}}function bf(e,t,n){var r=(e+="")=="transform"?pc:bi;return t==null?this.styleTween(e,gf(e,r)).on("end.style."+e,vi(e)):typeof t=="function"?this.styleTween(e,wf(e,r,ro(this,"style."+e,t))).each(xf(this._id,e)):this.styleTween(e,yf
vendor: 12,984 bytes, line 34
34(e,r,t),n).on("end.style."+e,null)}function vf(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function _f(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&vf(e,s,n)),r}return i._value=t,i}function Ef(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,_f(e,t,n??""))}function Nf(e){return function(){this.textContent=e}}function Sf(e){return function(){var t=e(this);this.textContent=t??""}}function kf(e){return this.tween("text",typeof e=="function"?Sf(ro(this,"text",e)):Nf(e==null?"":e+""))}function Cf(e){return function(t){this.textContent=e.call(this,t)}}function If(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&Cf(o)),t}return r._value=e,r}function Tf(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,If(e))}function Af(){for(var e=this._name,t=this._id,n=_i(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,l,c=0;c<a;++c)if(l=s[c]){var u=Ye(l,t);Qn(l,e,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new it(r,this._parents,e,n)}function jf(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var a={value:s},l={value:function(){--o===0&&i()}};n.each(function(){var c=Ue(this,r),u=c.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),o===0&&i()})}var Mf=0;function it(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function _i(){return++Mf}var nt=wn.prototype;it.prototype={constructor:it,select:ff,selectAll:hf,selectChild:nt.selectChild,selectChildren:nt.selectChildren,filter:of,merge:sf,selection:pf,transition:Af,call:nt.call,nodes:nt.nodes,node:nt.node,size:nt.size,empty:nt.empty,each:nt.each,on:cf,attr:Vd,attrTween:Xd,style:bf,styleTween:Ef,text:kf,textTween:Tf,remove:df,tween:Fd,delay:Kd,duration:Jd,ease:tf,easeVarying:rf,end:jf,[Symbol.iterator]:nt[Symbol.iterator]};function Of(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Df={time:null,delay:0,duration:250,ease:Of};function Ff(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function $f(e){var t,n;e instanceof it?(t=e._id,e=e._name):(t=_i(),(n=Df).time=to(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,l,c=0;c<a;++c)(l=s[c])&&Qn(l,e,t,c,s,n||Ff(l,t));return new it(r,this._parents,e,t)}wn.prototype.interrupt=Md;wn.prototype.transition=$f;const Sn=e=>()=>e;function Pf(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function st(e,t,n){this.k=e,this.x=t,this.y=n}st.prototype={constructor:st,scale:function(e){return e===1?this:new st(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new st(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var wt=new st(1,0,0);st.prototype;function br(e){e.stopImmediatePropagation()}function en(e){e.preventDefault(),e.stopImmediatePropagation()}function Lf(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Rf(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function ts(){return this.__zoom||wt}function Bf(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function zf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Vf(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Hf(){var e=Lf,t=Rf,n=Vf,r=Bf,o=zf,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,l=bc,c=qn("start","zoom","end"),u,d,h,m=500,g=150,y=0,b=10;function w(p){p.property("__zoom",ts).on("wheel.zoom",z,{passive:!1}).on("mousedown.zoom",M).on("dblclick.zoom",H).filter(o).on("touchstart.zoom",B).on("touchmove.zoom",Y).on("touchend.zoom touchcancel.zoom",V).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(p,k,N,A){var P=p.selection?p.selection():p;P.property("__zoom",ts),p!==P?j(p,k,N,A):P.interrupt().each(function(){F(this,arguments).event(A).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},w.scaleBy=function(p,k,N,A){w.scaleTo(p,function(){var P=this.__zoom.k,E=typeof k=="function"?k.apply(this,arguments):k;return P*E},N,A)},w.scaleTo=function(p,k,N,A){w.transform(p,function(){var P=t.apply(this,arguments),E=this.__zoom,O=N==null?_(P):typeof N=="function"?N.apply(this,arguments):N,L=E.invert(O),$=typeof k=="function"?k.apply(this,arguments):k;return n(T(S(E,$),O,L),P,s)},N,A)},w.translateBy=function(p,k,N,A){w.transform(p,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof N=="function"?N.apply(this,arguments):N),t.apply(this,arguments),s)},null,A)},w.translateTo=function(p,k,N,A,P){w.transform(p,function(){var E=t.apply(this,arguments),O=this.__zoom,L=A==null?_(E):typeof A=="function"?A.apply(this,arguments):A;return n(wt.translate(L[0],L[1]).scale(O.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof N=="function"?-N.apply(this,arguments):-N),E,s)},A,P)};function S(p,k){return k=Math.max(i[0],Math.min(i[1],k)),k===p.k?p:new st(k,p.x,p.y)}function T(p,k,N){var A=k[0]-N[0]*p.k,P=k[1]-N[1]*p.k;return A===p.x&&P===p.y?p:new st(p.k,A,P)}function _(p){return[(+p[0][0]+ +p[1][0])/2,(+p[0][1]+ +p[1][1])/2]}function j(p,k,N,A){p.on("start.zoom",function(){F(this,arguments).event(A).start()}).on("interrupt.zoom end.zoom",function(){F(this,arguments).event(A).end()}).tween("zoom",function(){var P=this,E=arguments,O=F(P,E).event(A),L=t.apply(P,E),$=N==null?_(L):typeof N=="function"?N.apply(P,E):N,W=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),U=P.__zoom,Q=typeof k=="function"?k.apply(P,E):k,re=l(U.invert($).concat(W/U.k),Q.invert($).concat(W/Q.k));return function(oe){if(oe===1)oe=Q;else{var le=re(oe),fe=W/le[2];oe=new st(fe,$[0]-le[0]*fe,$[1]-le[1]*fe)}O.zoom(null,oe)}})}function F(p,k,N){return!N&&p.__zooming||new R(p,k)}function R(p,k){this.that=p,this.args=k,this.active=0,this.sourceEvent=null,this.extent=t.apply(p,k),this.taps=0}R.prototype={event:function(p){return p&&(this.sourceEvent=p),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(p,k){return this.mouse&&p!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&p!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&p!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(p){var k=Ge(this.that).datum();c.call(p,this.that,new Pf(p,{sourceEvent:this.sourceEvent,target:w,type:p,transform:this.that.__zoom,dispatch:c}),k)}};function z(p,...k){if(!e.apply(this,arguments))return;var N=F(this,k).event(p),A=this.__zoom,P=Math.max(i[0],Math.min(i[1],A.k*Math.pow(2,r.apply(this,arguments)))),E=Xe(p);if(N.wheel)(N.mouse[0][0]!==E[0]||N.mouse[0][1]!==E[1])&&(N.mouse[1]=A.invert(N.mouse[0]=E)),clearTimeout(N.wheel);else{if(A.k===P)return;N.mouse=[E,A.invert(E)],$n(this),N.start()}en(p),N.wheel=setTimeout(O,g),N.zoom("mouse",n(T(S(A,P),N.mouse[0],N.mouse[1]),N.extent,s));function O(){N.wheel=null,N.end()}}function M(p,...k){if(h||!e.apply(this,arguments))return;var N=p.currentTarget,A=F(this,k,!0).event(p),P=Ge(p.view).on("mousemove.zoom",$,!0).on("mouseup.zoom",W,!0),E=Xe(p,N),O=p.clientX,L=p.clientY;mi(p.view),br(p),A.mouse=[E,this.__zoom.invert(E)],$n(this),A.start();function $(U){if(en(U),!A.moved){var Q=U.clientX-O,re=U.clientY-L;A.moved=Q*Q+re*re>y}A.event(U).zoom("mouse",n(T(A.that.__zoom,A.mouse[0]=Xe(U,N),A.mouse[1]),A.extent,s))}function W(U){P.on("mousemove.zoom mouseup.zoom",null),pi(U.view,A.moved),en(U),A.event(U).end()}}function H(p,...k){if(e.apply(this,arguments)){var N=this.__zoom,A=Xe(p.changedTouches?p.changedTouches[0]:p,this),P=N.invert(A),E=N.k*(p.shiftKey?.5:2),O=n(T(S(N,E),A,P),t.apply(this,k),s);en(p),a>0?Ge(this).transition().duration(a).call(j,O,A,p):Ge(this).call(w.transform,O,A,p)}}function B(p,...k){if(e.apply(this,arguments)){var N=p.touches,A=N.length,P=F(this,k,p.changedTouches.length===A).event(p),E,O,L,$;for(br(p),O=0;O<A;++O)L=N[O],$=Xe(L,this),$=[$,this.__zoom.invert($),L.identifier],P.touch0?!P.touch1&&P.touch0[2]!==$[2]&&(P.touch1=$,P.taps=0):(P.touch0=$,E=!0,P.taps=1+!!u);u&&(u=clearTimeout(u)),E&&(P.taps<2&&(d=$[0],u=setTimeout(function(){u=null},m)),$n(this),P.start())}}function Y(p,...k){if(this.__zooming){var N=F(this,k).event(p),A=p.changedTouches,P=A.length,E,O,L,$;for(en(p),E=0;E<P;++E)O=A[E],L=Xe(O,this),N.touch0&&N.touch0[2]===O.identifier?N.touch0[0]=L:N.touch1&&N.touch1[2]===O.identifier&&(N.touch1[0]=L);if(O=N.that.__zoom,N.touch1){var W=N.touch0[0],U=N.touch0[1],Q=N.touch1[0],re=N.touch1[1],oe=(oe=Q[0]-W[0])*oe+(oe=Q[1]-W[1])*oe,le=(le=re[0]-U[0])*le+(le=re[1]-U[1])*le;O=S(O,Math.sqrt(oe/le)),L=[(W[0]+Q[0])/2,(W[1]+Q[1])/2],$=[(U[0]+re[0])/2,(U[1]+re[1])/2]}else if(N.touch0)L=N.touch0[0],$=N.touch0[1];else return;N.zoom("touch",n(T(O,L,$),N.extent,s))}}function V(p,...k){if(this.__zooming){var N=F(this,k).event(p),A=p.changedTouches,P=A.length,E,O;for(br(p),h&&clearTimeout(h),h=setTimeout(function(){h=null},m),E=0;E<P;++E)O=A[E],N.touch0&&N.touch0[2]===O.identifier?delete N.touch0:N.touch1&&N.touch1[2]===O.identifier&&delete N.touch1;if(N.touch1&&!N.touch0&&(N.touch0=N.touch1,delete N.touch1),N.touch0)N.touch0[1]=this.__zoom.invert(N.touch0[0]);else if(N.end(),N.taps===2&&(O=Xe(O,this),Math.hypot(d[0]-O[0],d[1]-O[1])<b)){var L=Ge(this).on("dblclick.zoom");L&&L.apply(this,arguments)}}}return w.wheelDelta=function(p){return arguments.length?(r=typeof p=="function"?p:Sn(+p),w):r},w.filter=function(p){return arguments.length?(e=typeof p=="function"?p:Sn(!!p),w):e},w.touchable=function(p){return arguments.length?(o=typeof p=="function"?p:Sn(!!p),w):o},w.extent=function(p){return arguments.length?(t=typeof p=="function"?p:Sn([[+p[0][0],+p[0][1]],[+p[1][0],+p[1][1]]]),w):t},w.scaleExtent=function(p){return arguments.length?(i[0]=+p[0],i[1]=+p[1],w):[i[0],i[1]]},w.translateExtent=function(p){return arguments.length?(s[0][0]=+p[0][0],s[1][0]=+p[1][0],s[0][1]=+p[0][1],s[1][1]=+p[1][1],w):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},w.constrain=function(p){return arguments.length?(n=p,w):n},w.duration=function(p){return arguments.length?(a=+p,w):a},w.interpolate=function(p){return arguments.length?(l=p,w):l},w.on=function(){var p=c.on.apply(c,arguments);return p===c?w:p},w.clickDistance=function(p){return arguments.length?(y=(p=+p)*p,w):Math.sqrt(y)},w.tapDistance=function(p){return arguments.length?(b=+p,w):b},w}const Jn=x.createContext(null),Gf=Jn.Provider,at={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>
34`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.`},Ei=at.error001();function he(e,t){const n=x.useContext(Jn);if(n===null)throw new Error(Ei);return ti(n,e,t)}const Ee=()=>{const e=x.useContext(Jn);if(e===null)throw new Error(Ei);return x.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},Yf=e=>e.userSelectionActive?"none":"all";function zt({position:e,children:t,className:n,style:r,...o}){const i=he(Yf),s=`${e}`.split("-");return C.createElement("div",{className:je(["react-flow__panel",n,...s]),style:{...r,pointerEvents:i},...o},t)}function Wf({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:C.createElement(zt,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},C.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const Xf=({x:e,y:t,label:n,labelStyle:r={},labelShowBg:o=!0,labelBgStyle:i={},labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...u})=>{const d=x.useRef(null),[h,m]=x.useState({x:0,y:0,width:0,height:0}),g=je(["react-flow__edge-textwrapper",c]);return x.useEffect(()=>{if(d.current){const y=d.current.getBBox();m({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),typeof n>"u"||!n?null:C.createElement("g",{transform:`translate(${e-h.width/2} ${t-h.height/2})`,className:g,visibility:h.width?"visible":"hidden",...u},o&&C.createElement("rect",{width:h.width+2*s[0],x:-s[0],y:-s[1],height:h.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),C.createElement("text",{className:"react-flow__edge-text",y:h.height/2,dy:"0.3em",ref:d,style:r},n),l)};var Uf=x.memo(Xf);const oo=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ut=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),so=(e={x:0,y:0},t)=>({x:Ut(e.x,t[0][0],t[1][0]),y:Ut(e.y,t[0][1],t[1][1])}),ns=(e,t,n)=>e<t?Ut(Math.abs(e-t),1,50)/50:e>n?-Ut(Math.abs(e-n),1,50)/50:0,Ni=(e,t)=>{const n=ns(e.x,35,t.width-35)*20,r=ns(e.y,35,t.height-35)*20;return[n,r]},Si=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},qf=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),io=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Kf=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),rs=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Lr=(e,t)=>
34{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},Zf=e=>Pe(e.width)&&Pe(e.height)&&Pe(e.x)&&Pe(e.y),Pe=e=>!isNaN(e)&&isFinite(e),ge=Symbol.for("internals"),ki=["Enter"," ","Escape"],Qf=(e,t)=>{},Jf=e=>"nativeEvent"in e;function Rr(e){var o,i;const t=Jf(e)?e.nativeEvent:e,n=((i=(o=t.composedPath)==null?void 0:o.call(t))==null?void 0:i[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n==null?void 0:n.nodeName)||(n==null?void 0:n.hasAttribute("contenteditable"))||!!(n!=null&&n.closest(".nokey"))}const Ci=e=>"clientX"in e,xt=(e,t)=>{var i,s;const n=Ci(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,o=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},Hn=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},xn=({id:e,path:t,labelX:n,labelY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:c,style:u,markerEnd:d,markerStart:h,interactionWidth:m=20})=>C.createElement(C.Fragment,null,C.createElement("path",{id:e,style:u,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:d,markerStart:h}),m&&C.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}),o&&Pe(n)&&Pe(r)?C.createElement(Uf,{x:n,y:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:c}):null);xn.displayName="BaseEdge";function tn(e,t,n){return n===void 0?n:r=>{const o=t().edges.find(i=>i.id===e);o&&n(r,{...o})}}function Ii({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,s=Math.abs(r-t)/2,a=r<t?r+s:r-s;return[i,a,o,s]}function Ti({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:a}){const l=e*.125+o*.375+s*.375+n*.125,c=t*.125+i*.375+a*.375+r*.125,u=Math.abs(l-e),d=Math.abs(c-t);return[l,c,u,d]}var At;(function(e){e.Strict="strict",e.Loose="loose"})(At||(At={}));var Ct;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ct||(Ct={}));var pn;(function(e){e.Partial="partial",e.Full="full"})(pn||(pn={}));var gt;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(gt||(gt={}));var It;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(It||(It={}));var Z;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Z||(Z={}));function os({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===Z.Left||e===Z.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Ai({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:r,targetY:o,targetPosition:i=Z.Top}){const[s,a]=os({pos:n,x1:e,y1:t,x2:r,y2:o}),[l,c]=os({pos:i,x1:r,y1:o,x2:e,y2:t}),[u,d,h,m]=Ti({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${s},${a} ${l},${c} ${r},${o}`,u,d,h,m]}const ao=x.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=Z.Bottom,targetPosition:i=Z.Top,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:m,markerStart:g,interactionWidth:y})=>{const[b,w,S]=Ai({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i});return C.createElement(xn,{path:b,labelX:w,labelY:S,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:m,markerStart:g,interactionWidth:y})});ao.displayName="SimpleBezierEdge";const ss={[Z.Left]:{x:-1,y:0},[Z.Right]:{x:1,y:0},[Z.Top]:{x:0,y:-1},[Z.Bottom]:{x:0,y:1}},eh=({source:e,sourcePosition:t=Z.Bottom,target:n})=>t===Z.Left||t===Z.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},is=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function th({source:e,sourcePosition:t=Z.Bottom,target:n,targetPosition:r=Z.Top,center:o,offset:i}){const s=ss[t],a=ss[r],l={x:e.x+s.x*i,y:e.y+s.y*i},c={x:n.x+a.x*i,y:n.y+a.y*i},u=eh({source:l,sourcePosition:t,target:c}),d=u.x!==0?"x":"y",h=u[d];let m=[],g,y;const b={x:0,y:0},w={x:0,y:0},[S,T,_,j]=Ii({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[d]*a[d]===-1){g=o.x??S,y=o.y??T;const R=[{x:g,y:l.y},{x:g,y:c.y}],z=[{x:l.x,y},{x:c.x,y}];s[d]===h?m=d==="x"?R:z:m=d==="x"?z:R}else{const R=[{x:l.x,y:c.y}],z=[{x:c.x,y:l.y}];if(d==="x"?m=s.x===h?z:R:m=s.y===h?R:z,t===r){const V=Math.abs(e[d]-n[d]
34);if(V<=i){const p=Math.min(i-1,i-V);s[d]===h?b[d]=(l[d]>e[d]?-1:1)*p:w[d]=(c[d]>n[d]?-1:1)*p}}if(t!==r){const V=d==="x"?"y":"x",p=s[d]===a[V],k=l[V]>c[V],N=l[V]<c[V];(s[d]===1&&(!p&&k||p&&N)||s[d]!==1&&(!p&&N||p&&k))&&(m=d==="x"?R:z)}const M={x:l.x+b.x,y:l.y+b.y},H={x:c.x+w.x,y:c.y+w.y},B=Math.max(Math.abs(M.x-m[0].x),Math.abs(H.x-m[0].x)),Y=Math.max(Math.abs(M.y-m[0].y),Math.abs(H.y-m[0].y));B>=Y?(g=(M.x+H.x)/2,y=m[0].y):(g=m[0].x,y=(M.y+H.y)/2)}return[[e,{x:l.x+b.x,y:l.y+b.y},...m,{x:c.x+w.x,y:c.y+w.y},n],g,y,_,j]}function nh(e,t,n,r){const o=Math.min(is(e,t)/2,is(t,n)/2,r),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const c=e.x<n.x?-1:1,u=e.y<n.y?1:-1;return`L ${i+o*c},${s}Q ${i},${s} ${i},${s+o*u}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${s+o*l}Q ${i},${s} ${i+o*a},${s}`}function Br({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:r,targetY:o,targetPosition:i=Z.Top,borderRadius:s=5,centerX:a,centerY:l,offset:c=20}){const[u,d,h,m,g]=th({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:l},offset:c});return[u.reduce((b,w,S)=>{let T="";return S>0&&S<u.length-1?T=nh(u[S-1],w,u[S+1],s):T=`${S===0?"M":"L"}${w.x} ${w.y}`,b+=T,b},""),d,h,m,g]}const er=x.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:c,style:u,sourcePosition:d=Z.Bottom,targetPosition:h=Z.Top,markerEnd:m,markerStart:g,pathOptions:y,interactionWidth:b})=>{const[w,S,T]=Br({sourceX:e,sourceY:t,sourcePosition:d,targetX:n,targetY:r,targetPosition:h,borderRadius:y==null?void 0:y.borderRadius,offset:y==null?void 0:y.offset});return C.createElement(xn,{path:w,labelX:S,labelY:T,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:c,style:u,markerEnd:m,markerStart:g,interactionWidth:b})});er.displayName="SmoothStepEdge";const lo=x.memo(e=>{var t;return C.createElement(er,{...e,pathOptions:x.useMemo(()=>{var n;return{borderRadius:0,offset:(n=e.pathOptions)==null?void 0:n.offset}},[(t=e.pathOptions)==null?void 0:t.offset])})});lo.displayName="StepEdge";function rh({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,a]=Ii({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,a]}const co=x.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:c,style:u,markerEnd:d,markerStart:h,interactionWidth:m})=>{const[g,y,b]=rh({sourceX:e,sourceY:t,targetX:n,targetY:r});return C.createElement(xn,{path:g,labelX:y,labelY:b,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:c,style:u,markerEnd:d,markerStart:h,interactionWidth:m})});co.displayName="StraightEdge";function kn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function as({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case Z.Left:return[t-kn(t-r,i),n];case Z.Right:return[t+kn(r-t,i),n];case Z.Top:return[t,n-kn(n-o,i)];case Z.Bottom:return[t,n+kn(o-n,i)]}}function ji({sourceX:e,sourceY:t,sourcePosition:n=Z.Bottom,targetX:r,targetY:o,targetPosition:i=Z.Top,curvature:s=.25}){const[a,l]=as({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[c,u]=as({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[d,h,m,g]=Ti({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${r},${o}`,d,h,m,g]}const Gn=x.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=Z.Bottom,targetPosition:i=Z.Top,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:m,markerStart:g,pathOptions:y,interactionWidth:b})=>{const[w,S,T]=ji({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i,curvature:y==null?void 0:y.curvature});return C.createElement(xn,{path:w,labelX:S,labelY:T,label:s,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:m,markerStart:g,interactionWidth:b})});Gn.displayName="BezierEdge";const uo=x.createContext(null),oh=uo.Provider;
34uo.Consumer;const sh=()=>x.useContext(uo),ih=e=>"id"in e&&"source"in e&&"target"in e,ah=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,zr=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`,lh=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Mi=(e,t)=>{if(!e.source||!e.target)return t;let n;return ih(e)?n={...e}:n={...e,id:ah(e)},lh(n,t)?t:t.concat(n)},Vr=({x:e,y:t},[n,r,o],i,[s,a])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?{x:s*Math.round(l.x/s),y:a*Math.round(l.y/a)}:l},Oi=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),Gt=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],r=(e.height??0)*t[1],o={x:e.position.x-n,y:e.position.y-r};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-r}:o}},fo=(e,t=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const{x:i,y:s}=Gt(o,t).positionAbsolute;return qf(r,io({x:i,y:s,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Kf(n)},Di=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1,a=[0,0])=>{const l={x:(t.x-n)/o,y:(t.y-r)/o,width:t.width/o,height:t.height/o},c=[];return e.forEach(u=>{const{width:d,height:h,selectable:m=!0,hidden:g=!1}=u;if(s&&!m||g)return!1;const{positionAbsolute:y}=Gt(u,a),b={x:y.x,y:y.y,width:d||0,height:h||0},w=Lr(l,b),S=typeof d>"u"||typeof h>"u"||d===null||h===null,T=i&&w>0,_=(d||0)*(h||0);(S||T||w>=_||u.dragging)&&c.push(u)}),c},Fi=(e,t)=>{const n=e.map(r=>r.id);return t.filter(r=>n.includes(r.source)||n.includes(r.target))},$i=(e,t,n,r,o,i=.1)=>{const s=t/(e.width*(1+i)),a=n/(e.height*(1+i)),l=Math.min(s,a),c=Ut(l,r,o),u=e.x+e.width/2,d=e.y+e.height/2,h=t/2-u*c,m=n/2-d*c;return{x:h,y:m,zoom:c}},kt=(e,t=0)=>e.transition().duration(t);function ls(e,t,n,r){return(t[n]||[]).reduce((o,i)=>{var s,a;return`${e.id}-${i.id}-${n}`!==r&&o.push({id:i.id||null,type:n,nodeId:e.id,x:(((s=e.positionAbsolute)==null?void 0:s.x)??0)+i.x+i.width/2,y:(((a=e.positionAbsolute)==null?void 0:a.y)??0)+i.y+i.height/2}),o},[])}function ch(e,t,n,r,o,i){const{x:s,y:a}=xt(e),c=t.elementsFromPoint(s,a).find(g=>g.classList.contains("react-flow__handle"));if(c){const g=c.getAttribute("data-nodeid");if(g){const y=ho(void 0,c),b=c.getAttribute("data-handleid"),w=i({nodeId:g,id:b,type:y});if(w){const S=o.find(T=>T.nodeId===g&&T.type===y&&T.id===b);return{handle:{id:b,type:y,nodeId:g,x:(S==null?void 0:S.x)||n.x,y:(S==null?void 0:S.y)||n.y},validHandleResult:w}}}}let u=[],d=1/0;if(o.forEach(g=>{const y=Math.sqrt((g.x-n.x)**2+(g.y-n.y)**2);if(y<=r){const b=i(g);y<=d&&(y<d?u=[{handle:g,validHandleResult:b}]:y===d&&u.push({handle:g,validHandleResult:b}),d=y)}}),!u.length)return{handle:null,validHandleResult:Pi()};if(u.length===1)return u[0];const h=u.some(({validHandleResult:g})=>g.isValid),m=u.some(({handle:g})=>g.type==="target");return u.find(({handle:g,validHandleResult:y})=>m?g.type==="target":h?y.isValid:!0)||u[0]}const uh={source:null,target:null,sourceHandle:null,targetHandle:null},Pi=()=>({handleDomNode:null,isValid:!1,connection:uh,endHandle:null});function Li(e,t,n,r,o,i,s){const a=o==="target",l=s.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),c={...Pi(),handleDomNode:l};if(l){const u=ho(void 0,l),d=l.getAttribute("data-nodeid"),h=l.getAttribute("data-handleid"),m=l.classList.contains("connectable"),g=l.classList.contains("connectableend"),y={source:a?d:n,sourceHandle:a?h:r,target:a?n:d,targetHandle:a?r:h};c.connection=y,m&&g&&(t===At.Strict?a&&u==="source"||!a&&u==="target":d!==n||h!==r)&&(c.endHandle={nodeId:d,handleId:h,type:u},c.isValid=i(y))}return c}function dh({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce((o,i)=>{if(i[ge]){const{handleBounds:s}=i[ge];let a=[],l=[];s&&(a=ls(i,s,"source",`${t}-${n}-${r}`),l=ls(i,s,"target",`${t}-${n}-${r}`)),o.push(...a,...l)}return o},[])}function ho(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"
34source":null)}function vr(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function fh(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function Ri({event:e,handleId:t,nodeId:n,onConnect:r,isTarget:o,getState:i,setState:s,isValidConnection:a,edgeUpdaterType:l,onReconnectEnd:c}){const u=Si(e.target),{connectionMode:d,domNode:h,autoPanOnConnect:m,connectionRadius:g,onConnectStart:y,panBy:b,getNodes:w,cancelConnection:S}=i();let T=0,_;const{x:j,y:F}=xt(e),R=u==null?void 0:u.elementFromPoint(j,F),z=ho(l,R),M=h==null?void 0:h.getBoundingClientRect();if(!M||!z)return;let H,B=xt(e,M),Y=!1,V=null,p=!1,k=null;const N=dh({nodes:w(),nodeId:n,handleId:t,handleType:z}),A=()=>{if(!m)return;const[O,L]=Ni(B,M);b({x:O,y:L}),T=requestAnimationFrame(A)};s({connectionPosition:B,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:z,connectionStartHandle:{nodeId:n,handleId:t,type:z},connectionEndHandle:null}),y==null||y(e,{nodeId:n,handleId:t,handleType:z});function P(O){const{transform:L}=i();B=xt(O,M);const{handle:$,validHandleResult:W}=ch(O,u,Vr(B,L,!1,[1,1]),g,N,U=>Li(U,d,n,t,o?"target":"source",a,u));if(_=$,Y||(A(),Y=!0),k=W.handleDomNode,V=W.connection,p=W.isValid,s({connectionPosition:_&&p?Oi({x:_.x,y:_.y},L):B,connectionStatus:fh(!!_,p),connectionEndHandle:W.endHandle}),!_&&!p&&!k)return vr(H);V.source!==V.target&&k&&(vr(H),H=k,k.classList.add("connecting","react-flow__handle-connecting"),k.classList.toggle("valid",p),k.classList.toggle("react-flow__handle-valid",p))}function E(O){var L,$;(_||k)&&V&&p&&(r==null||r(V)),($=(L=i()).onConnectEnd)==null||$.call(L,O),l&&(c==null||c(O)),vr(H),S(),cancelAnimationFrame(T),Y=!1,p=!1,V=null,k=null,u.removeEventListener("mousemove",P),u.removeEventListener("mouseup",E),u.removeEventListener("touchmove",P),u.removeEventListener("touchend",E)}u.addEventListener("mousemove",P),u.addEventListener("mouseup",E),u.addEventListener("touchmove",P),u.addEventListener("touchend",E)}const cs=()=>!0,hh=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),mh=(e,t,n)=>r=>{const{connectionStartHandle:o,connectionEndHandle:i,connectionClickStartHandle:s}=r;return{connecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.handleId)===t&&(o==null?void 0:o.type)===n||(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.handleId)===t&&(i==null?void 0:i.type)===n,clickConnecting:(s==null?void 0:s.nodeId)===e&&(s==null?void 0:s.handleId)===t&&(s==null?void 0:s.type)===n}},Bi=x.forwardRef(({type:e="source",position:t=Z.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:l,className:c,onMouseDown:u,onTouchStart:d,...h},m)=>{var M,H;const g=s||null,y=e==="target",b=Ee(),w=sh(),{connectOnClick:S,noPanClassName:T}=he(hh,Se),{connecting:_,clickConnecting:j}=he(mh(w,g,e),Se);w||(H=(M=b.getState()).onError)==null||H.call(M,"010",at.error010());const F=B=>{const{defaultEdgeOptions:Y,onConnect:V,hasDefaultEdges:p}=b.getState(),k={...Y,...B};if(p){const{edges:N,setEdges:A}=b.getState();A(Mi(k,N))}V==null||V(k),a==null||a(k)},R=B=>{if(!w)return;const Y=Ci(B);o&&(Y&&B.button===0||!Y)&&Ri({event:B,handleId:g,nodeId:w,onConnect:F,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:n||b.getState().isValidConnection||cs}),Y?u==null||u(B):d==null||d(B)},z=B=>{const{onClickConnectStart:Y,onClickConnectEnd:V,connectionClickStartHandle:p,connectionMode:k,isValidConnection:N}=b.getState();if(!w||!p&&!o)return;if(!p){Y==null||Y(B,{nodeId:w,handleId:g,handleType:e}),b.setState({connectionClickStartHandle:{nodeId:w,type:e,handleId:g}});return}const A=Si(B.target),P=n||N||cs,{connection:E,isValid:O}=Li({nodeId:w,id:g,type:e},k,p.nodeId,p.handleId||null,p.type,P,A);O&&F(E),V==null||V(B),b.setState({connectionClickStartHandle:null})};return C.createElement("div",{"data-handleid":g,"data-nodeid":w,"data-handlepos":t,"data-id":`${w}-${g}-${e}`,className:je(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",T,c,{source:!y,target:y,connectable:r,connectablestart:o,connectableend:i,connecting:j,
34connectionindicator:r&&(o&&!_||i&&_)}]),onMouseDown:R,onTouchStart:R,onClick:S?z:void 0,ref:m,...h},l)});Bi.displayName="Handle";var Yn=x.memo(Bi);const zi=({data:e,isConnectable:t,targetPosition:n=Z.Top,sourcePosition:r=Z.Bottom})=>C.createElement(C.Fragment,null,C.createElement(Yn,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,C.createElement(Yn,{type:"source",position:r,isConnectable:t}));zi.displayName="DefaultNode";var Hr=x.memo(zi);const Vi=({data:e,isConnectable:t,sourcePosition:n=Z.Bottom})=>C.createElement(C.Fragment,null,e==null?void 0:e.label,C.createElement(Yn,{type:"source",position:n,isConnectable:t}));Vi.displayName="InputNode";var Hi=x.memo(Vi);const Gi=({data:e,isConnectable:t,targetPosition:n=Z.Top})=>C.createElement(C.Fragment,null,C.createElement(Yn,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label);Gi.displayName="OutputNode";var Yi=x.memo(Gi);const mo=()=>null;mo.displayName="GroupNode";const ph=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected).map(t=>({...t}))}),Cn=e=>e.id;function gh(e,t){return Se(e.selectedNodes.map(Cn),t.selectedNodes.map(Cn))&&Se(e.selectedEdges.map(Cn),t.selectedEdges.map(Cn))}const Wi=x.memo(({onSelectionChange:e})=>{const t=Ee(),{selectedNodes:n,selectedEdges:r}=he(ph,gh);return x.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChange.forEach(i=>i(o))},[n,r,e]),null});Wi.displayName="SelectionListener";const yh=e=>!!e.onSelectionChange;function wh({onSelectionChange:e}){const t=he(yh);return e||t?C.createElement(Wi,{onSelectionChange:e}):null}const xh=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function $t(e,t){x.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function te(e,t,n){x.useEffect(()=>{typeof t<"u"&&n({[e]:t})},[t])}const bh=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:s,onClickConnectStart:a,onClickConnectEnd:l,nodesDraggable:c,nodesConnectable:u,nodesFocusable:d,edgesFocusable:h,edgesUpdatable:m,elevateNodesOnSelect:g,minZoom:y,maxZoom:b,nodeExtent:w,onNodesChange:S,onEdgesChange:T,elementsSelectable:_,connectionMode:j,snapGrid:F,snapToGrid:R,translateExtent:z,connectOnClick:M,defaultEdgeOptions:H,fitView:B,fitViewOptions:Y,onNodesDelete:V,onEdgesDelete:p,onNodeDrag:k,onNodeDragStart:N,onNodeDragStop:A,onSelectionDrag:P,onSelectionDragStart:E,onSelectionDragStop:O,noPanClassName:L,nodeOrigin:$,rfId:W,autoPanOnConnect:U,autoPanOnNodeDrag:Q,onError:re,connectionRadius:oe,isValidConnection:le,nodeDragThreshold:fe})=>
34{const{setNodes:ae,setEdges:ke,setDefaultNodesAndEdges:Ce,setMinZoom:Ie,setMaxZoom:Ae,setTranslateExtent:me,setNodeExtent:$e,reset:ce}=he(xh,Se),K=Ee();return x.useEffect(()=>{const Te=r==null?void 0:r.map(qe=>({...qe,...H}));return Ce(n,Te),()=>{ce()}},[]),te("defaultEdgeOptions",H,K.setState),te("connectionMode",j,K.setState),te("onConnect",o,K.setState),te("onConnectStart",i,K.setState),te("onConnectEnd",s,K.setState),te("onClickConnectStart",a,K.setState),te("onClickConnectEnd",l,K.setState),te("nodesDraggable",c,K.setState),te("nodesConnectable",u,K.setState),te("nodesFocusable",d,K.setState),te("edgesFocusable",h,K.setState),te("edgesUpdatable",m,K.setState),te("elementsSelectable",_,K.setState),te("elevateNodesOnSelect",g,K.setState),te("snapToGrid",R,K.setState),te("snapGrid",F,K.setState),te("onNodesChange",S,K.setState),te("onEdgesChange",T,K.setState),te("connectOnClick",M,K.setState),te("fitViewOnInit",B,K.setState),te("fitViewOnInitOptions",Y,K.setState),te("onNodesDelete",V,K.setState),te("onEdgesDelete",p,K.setState),te("onNodeDrag",k,K.setState),te("onNodeDragStart",N,K.setState),te("onNodeDragStop",A,K.setState),te("onSelectionDrag",P,K.setState),te("onSelectionDragStart",E,K.setState),te("onSelectionDragStop",O,K.setState),te("noPanClassName",L,K.setState),te("nodeOrigin",$,K.setState),te("rfId",W,K.setState),te("autoPanOnConnect",U,K.setState),te("autoPanOnNodeDrag",Q,K.setState),te("onError",re,K.setState),te("connectionRadius",oe,K.setState),te("isValidConnection",le,K.setState),te("nodeDragThreshold",fe,K.setState),$t(e,ae),$t(t,ke),$t(y,Ie),$t(b,Ae),$t(z,me),$t(w,$e),null},us={display:"none"},vh={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Xi="react-flow__node-desc",Ui="react-flow__edge-desc",_h="react-flow__aria-live",Eh=e=>e.ariaLiveMessage;function Nh({rfId:e}){const t=he(Eh);return C.createElement("div",{id:`${_h}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:vh},t)}function Sh({rfId:e,disableKeyboardA11y:t}){return C.createElement(C.Fragment,null,C.createElement("div",{id:`${Xi}-${e}`,style:us},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),C.createElement("div",{id:`${Ui}-${e}`,style:us},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&C.createElement(Nh,{rfId:e}))}var gn=(e=null,t={actInsideInputWithModifier:!0})=>{const[n,r]=x.useState(!1),o=x.useRef(!1),i=x.useRef(new Set([])),[s,a]=x.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.split("+")),u=c.reduce((d,h)=>d.concat(...h),[]);return[c,u]}return[[],[]]},[e]);return x.useEffect(()=>{const l=typeof document<"u"?document:null,c=(t==null?void 0:t.target)||l;if(e!==null){const u=m=>{if(o.current=m.ctrlKey||m.metaKey||m.shiftKey,(!o.current||o.current&&!t.actInsideInputWithModifier)&&Rr(m))return!1;const y=fs(m.code,a);i.current.add(m[y]),ds(s,i.current,!1)&&(m.preventDefault(),r(!0))},d=m=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Rr(m))return!1;const y=fs(m.code,a);ds(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(m[y]),m.key==="Meta"&&i.current.clear(),o.current=!1},h=()=>{i.current.clear(),r(!1)};return c==null||c.addEventListener("keydown",u),c==null||c.addEventListener("keyup",d),window.addEventListener("blur",h),()=>{c==null||c.removeEventListener("keydown",u),c==null||c.removeEventListener("keyup",d),window.removeEventListener("blur",h)}}},[e,r]),n};function ds(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function fs(e,t){return t.includes(e)?"code":"key"}function qi(e,t,n,r){var a,l;const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),s=Gt(i,r);return qi(i,t,{x:(n.x??0)+s.x,y:(n.y??0)+s.y,z:(((a=i[ge])==null?void 0:a.z)??0)>(n.z??0)?((l=i[ge])==null?void 0:l.z)??0:n.z??0},r)}function Ki(e,t,n){e.forEach(r=>{var i;const o=r.parentNode||r.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||n!=null&&n[r.id]){const{x:s,y:a,z:l}=qi(r,e,{...r.position,z:((i=r[ge])==null?void 0:i.z)??0},t);r.positionAbsolute={x:s,y:a},r[ge].z=l,n!=null&&n[r.id]&&(r[ge].isParent=!0)}})}function _r(e,t,n,r){const o=new Map,i={},s=r?1e3:0;return e.forEach(a=>{var m;const l=(Pe(a.zIndex)?a.zIndex:0)+(a.selected?s:0),c=t.get(a.id),u={...a,positionAbsolute:{x:a.position.x,y:a.position.y}},d=a.parentNode||a.parentId;d&&(i[d]=!0);const h=(c==null?void 0:c.type)&&(c==null?void 0:c.type)!==a.type;Object.defineProperty(u,ge,{enumerable:!1,value:{handleBounds:h||(m=c==null?void 0:c[ge])==null?void 0:m.handleBounds,z:l}}),o.set(a.id,u)}),Ki(o,n,i),o}function Zi(e,t={}
34){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:s,d3Zoom:a,d3Selection:l,fitViewOnInitDone:c,fitViewOnInit:u,nodeOrigin:d}=e(),h=t.initial&&!c&&u;if(a&&l&&(h||!t.initial)){const g=n().filter(b=>{var S;const w=t.includeHiddenNodes?b.width&&b.height:!b.hidden;return(S=t.nodes)!=null&&S.length?w&&t.nodes.some(T=>T.id===b.id):w}),y=g.every(b=>b.width&&b.height);if(g.length>0&&y){const b=fo(g,d),{x:w,y:S,zoom:T}=$i(b,r,o,t.minZoom??i,t.maxZoom??s,t.padding??.1),_=wt.translate(w,S).scale(T);return typeof t.duration=="number"&&t.duration>0?a.transform(kt(l,t.duration),_):a.transform(l,_),!0}}return!1}function kh(e,t){return e.forEach(n=>{const r=t.get(n.id);r&&t.set(r.id,{...r,[ge]:r[ge],selected:n.selected})}),new Map(t)}function Ch(e,t){return t.map(n=>{const r=e.find(o=>o.id===n.id);return r&&(n.selected=r.selected),n})}function In({changedNodes:e,changedEdges:t,get:n,set:r}){const{nodeInternals:o,edges:i,onNodesChange:s,onEdgesChange:a,hasDefaultNodes:l,hasDefaultEdges:c}=n();e!=null&&e.length&&(l&&r({nodeInternals:kh(e,o)}),s==null||s(e)),t!=null&&t.length&&(c&&r({edges:Ch(t,i)}),a==null||a(t))}const Pt=()=>{},Ih={zoomIn:Pt,zoomOut:Pt,zoomTo:Pt,getZoom:()=>1,setViewport:Pt,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Pt,fitBounds:Pt,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},Th=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),Ah=()=>{const e=Ee(),{d3Zoom:t,d3Selection:n}=he(Th,Se);return x.useMemo(()=>n&&t?{zoomIn:o=>t.scaleBy(kt(n,o==null?void 0:o.duration),1.2),zoomOut:o=>t.scaleBy(kt(n,o==null?void 0:o.duration),1/1.2),zoomTo:(o,i)=>t.scaleTo(kt(n,i==null?void 0:i.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,i)=>{const[s,a,l]=e.getState().transform,c=wt.translate(o.x??s,o.y??a).scale(o.zoom??l);t.transform(kt(n,i==null?void 0:i.duration),c)},getViewport:()=>{const[o,i,s]=e.getState().transform;return{x:o,y:i,zoom:s}},fitView:o=>Zi(e.getState,o),setCenter:(o,i,s)=>{const{width:a,height:l,maxZoom:c}=e.getState(),u=typeof(s==null?void 0:s.zoom)<"u"?s.zoom:c,d=a/2-o*u,h=l/2-i*u,m=wt.translate(d,h).scale(u);t.transform(kt(n,s==null?void 0:s.duration),m)},fitBounds:(o,i)=>{const{width:s,height:a,minZoom:l,maxZoom:c}=e.getState(),{x:u,y:d,zoom:h}=$i(o,s,a,l,c,(i==null?void 0:i.padding)??.1),m=wt.translate(u,d).scale(h);t.transform(kt(n,i==null?void 0:i.duration),m)},project:o=>{const{transform:i,snapToGrid:s,snapGrid:a}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Vr(o,i,s,a)},screenToFlowPosition:o=>{const{transform:i,snapToGrid:s,snapGrid:a,domNode:l}=e.getState();if(!l)return o;const{x:c,y:u}=l.getBoundingClientRect(),d={x:o.x-c,y:o.y-u};return Vr(d,i,s,a)},flowToScreenPosition:o=>{const{transform:i,domNode:s}=e.getState();if(!s)return o;const{x:a,y:l}=s.getBoundingClientRect(),c=Oi(o,i);return{x:c.x+a,y:c.y+l}},viewportInitialized:!0}:Ih,[t,n])};function tr(){const e=Ah(),t=Ee(),n=x.useCallback(()=>t.getState().getNodes().map(y=>({...y})),[]),r=x.useCallback(y=>t.getState().nodeInternals.get(y),[]),o=x.useCallback(()=>{const{edges:y=[]}=t.getState();return y.map(b=>({...b}))},[]),i=x.useCallback(y=>{const{edges:b=[]}=t.getState();return b.find(w=>w.id===y)},[]),s=x.useCallback(y=>{const{getNodes:b,setNodes:w,hasDefaultNodes:S,onNodesChange:T}=t.getState(),_=b(),j=typeof y=="function"?y(_):y;if(S)w(j);else if(T){const F=j.length===0?_.map(R=>({type:"remove",id:R.id})):j.map(R=>({item:R,type:"reset"}));T(F)}},[]),a=x.useCallback(y=>{const{edges:b=[],setEdges:w,hasDefaultEdges:S,onEdgesChange:T}=t.getState(),_=typeof y=="function"?y(b):y;if(S)w(_);else if(T){const j=_.length===0?b.map(F=>({type:"remove",id:F.id})):_.map(F=>({item:F,type:"reset"}));T(j)}},[]),l=x.useCallback(y=>{const b=Array.isArray(y)?y:[y],{getNodes:w,setNodes:S,hasDefaultNodes:T,onNodesChange:_}=t.getState();if(T){const F=[...w(),...b];S(F)}else if(_){const j=b.map(F=>({item:F,type:"add"}));_(j)}},[]),c=x.useCallback(y=>{const b=Array.isArray(y)?y:[y],{edges:w=[],setEdges:S,hasDefaultEdges:T,onEdgesChange:_}=t.getState();if(T)S([...w,...b]);else if(_){const j=b.map(F=>({item:F,type:"add"}));_(j)}},[]),u=x.useCallback(()=>{const{getNodes:y,edges:b=[],transform:w}=t.getState(),[S,T,_]=w;return{nodes:y().map(j=>({...j})),edges:b.map(j=>({...j})),viewport:{x:S,y:T,zoom:_}}},[]),d=x.useCallback(({nodes:y,edges:b})=>{const{nodeInternals:w,getNodes:S,edges:T,hasDefaultNodes:_,hasDefaultEdges:j,onNodesDelete:F,onEdgesDelete:R,onNodesChange:z,onEdgesChange:M}=t.getState(),H=(y||[]).map(k=>k.id),B=(b||[]).map(k=>k.id),Y=S().reduce((k,N)=>{const A=N.parentNode||N.parentId,P=!H.includes(N.id)&&A&&k.find(O=>O.id===A);return(typeof N.deletable=="boolean"?N.deletable:!0)&&(H.includes(N.id)||P)&&k.push(N),k},[]),V=T.filter(k=>typeof k.deletable=="boolean"?k.deletable:!0),p=V.filter(k=>B.includes(k.id));if(Y||p){const k=Fi(Y,V),N=[...p,...k],A=N.reduce((P,E)=>
34(P.includes(E.id)||P.push(E.id),P),[]);if((j||_)&&(j&&t.setState({edges:T.filter(P=>!A.includes(P.id))}),_&&(Y.forEach(P=>{w.delete(P.id)}),t.setState({nodeInternals:new Map(w)}))),A.length>0&&(R==null||R(N),M&&M(A.map(P=>({id:P,type:"remove"})))),Y.length>0&&(F==null||F(Y),z)){const P=Y.map(E=>({id:E.id,type:"remove"}));z(P)}}},[]),h=x.useCallback(y=>{const b=Zf(y),w=b?null:t.getState().nodeInternals.get(y.id);return!b&&!w?[null,null,b]:[b?y:rs(w),w,b]},[]),m=x.useCallback((y,b=!0,w)=>{const[S,T,_]=h(y);return S?(w||t.getState().getNodes()).filter(j=>{if(!_&&(j.id===T.id||!j.positionAbsolute))return!1;const F=rs(j),R=Lr(F,S);return b&&R>0||R>=S.width*S.height}):[]},[]),g=x.useCallback((y,b,w=!0)=>{const[S]=h(y);if(!S)return!1;const T=Lr(S,b);return w&&T>0||T>=S.width*S.height},[]);return x.useMemo(()=>({...e,getNodes:n,getNode:r,getEdges:o,getEdge:i,setNodes:s,setEdges:a,addNodes:l,addEdges:c,toObject:u,deleteElements:d,getIntersectingNodes:m,isNodeIntersecting:g}),[e,n,r,o,i,s,a,l,c,u,d,m,g])}const jh={actInsideInputWithModifier:!1};var Mh=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=Ee(),{deleteElements:r}=tr(),o=gn(e,jh),i=gn(t);x.useEffect(()=>{if(o){const{edges:s,getNodes:a}=n.getState(),l=a().filter(u=>u.selected),c=s.filter(u=>u.selected);r({nodes:l,edges:c}),n.setState({nodesSelectionActive:!1})}},[o]),x.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])};function Oh(e){const t=Ee();x.useEffect(()=>{let n;const r=()=>{var i,s;if(!e.current)return;const o=oo(e.current);(o.height===0||o.width===0)&&((s=(i=t.getState()).onError)==null||s.call(i,"004",at.error004())),t.setState({width:o.width||500,height:o.height||500})};return r(),window.addEventListener("resize",r),e.current&&(n=new ResizeObserver(()=>r()),n.observe(e.current)),()=>{window.removeEventListener("resize",r),n&&e.current&&n.unobserve(e.current)}},[])}const po={position:"absolute",width:"100%",height:"100%",top:0,left:0},Dh=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,Tn=e=>({x:e.x,y:e.y,zoom:e.k}),Lt=(e,t)=>e.target.closest(`.${t}`),hs=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ms=e=>{const t=e.ctrlKey&&Hn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},Fh=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),$h=({onMove:e,onMoveStart:t,onMoveEnd:n,onPaneContextMenu:r,zoomOnScroll:o=!0,zoomOnPinch:i=!0,panOnScroll:s=!1,panOnScrollSpeed:a=.5,panOnScrollMode:l=Ct.Free,zoomOnDoubleClick:c=!0,elementsSelectable:u,panOnDrag:d=!0,defaultViewport:h,translateExtent:m,minZoom:g,maxZoom:y,zoomActivationKeyCode:b,preventScrolling:w=!0,children:S,noWheelClassName:T,noPanClassName:_})=>{const j=x.useRef(),F=Ee(),R=x.useRef(!1),z=x.useRef(!1),M=x.useRef(null),H=x.useRef({x:0,y:0,zoom:0}),{d3Zoom:B,d3Selection:Y,d3ZoomHandler:V,userSelectionActive:p}=he(Fh,Se),k=gn(b),N=x.useRef(0),A=x.useRef(!1),P=x.useRef();return Oh(M),x.useEffect(()=>{if(M.current){const E=M.current.getBoundingClientRect(),O=Hf().scaleExtent([g,y]).translateExtent(m),L=Ge(M.current).call(O),$=wt.translate(h.x,h.y).scale(Ut(h.zoom,g,y)),W=[[0,0],[E.width,E.height]],U=O.constrain()($,W,m);O.transform(L,U),O.wheelDelta(ms),F.setState({d3Zoom:O,d3Selection:L,d3ZoomHandler:L.on("wheel.zoom"),transform:[U.x,U.y,U.k],domNode:M.current.closest(".react-flow")})}},[]),x.useEffect(()=>{Y&&B&&(s&&!k&&!p?Y.on("wheel.zoom",E=>{if(Lt(E,T))return!1;E.preventDefault(),E.stopImmediatePropagation();const O=Y.property("__zoom").k||1;if(E.ctrlKey&&i){const le=Xe(E),fe=ms(E),ae=O*Math.pow(2,fe);B.scaleTo(Y,ae,le,E);return}const L=E.deltaMode===1?20:1;let $=l===Ct.Vertical?0:E.deltaX*L,W=l===Ct.Horizontal?0:E.deltaY*L;!Hn()&&E.shiftKey&&l!==Ct.Vertical&&($=E.deltaY*L,W=0),B.translateBy(Y,-($/O)*a,-(W/O)*a,{internal:!0});const U=Tn(Y.property("__zoom")),{onViewportChangeStart:Q,onViewportChange:re,onViewportChangeEnd:oe}=F.getState();clearTimeout(P.current),A.current||(A.current=!0,t==null||t(E,U),Q==null||Q(U)),A.current&&(e==null||e(E,U),re==null||re(U),P.current=setTimeout(()=>{n==null||n(E,U),oe==null||oe(U),A.current=!1},150))},{passive:!1}):typeof V<"u"&&Y.on("wheel.zoom",function(E,O){if(!w&&E.type==="wheel"&&!E.ctrlKey||Lt(E,T))return null;E.preventDefault(),V.call(this,E,O)},{passive:!1}))},[p,s,l,Y,B,V,k,i,w,T,t,e,n]),x.useEffect(()=>{B&&B.on("start",E=>{var $,W;if(!E.sourceEvent||E.sourceEvent.internal)return null;N.current=($=E.sourceEvent)==null?void 0:$.button;const{onViewportChangeStart:O}=F.getState(),L=Tn(E.transform);R.current=!0,H.current=L,((W=E.sourceEvent)==null?void 0:W.type)==="mousedown"&&F.setState({paneDragging:!0}),O==null||O(L),t==null||t(E.sourceEvent,L)})},[B,t]),x.useEffect(()=>{B&&(p&&!R.current?B.on("zoom",null):p||B.on("zoom",E=>{var L;const{onViewportChange:O}=F.getState();if(F.setState({transform:[E.transform.x,E.transform.y,E.transform.k]}),z.current=!!(r&&hs(d,N.current??0)),(e||O)&&!((L=E.sourceEvent)!=null&&L.internal)){const $=Tn(E.transform);O==null||O($),e==null||e(E.sourceEvent,$)}}))},[p,B,e,d,r]),x.useEffect(()=>{B&&B.on("end",E=>{if(!E.sourceEvent||E.sourceEvent.internal)return null;const{onViewportChangeEnd:O}=F.getState();if(R.current=!1,F.setState({paneDragging:!1}),r&&hs(d,N.current??0)&&!z.current&&r(E.sourceEvent),z.current=!1,(n||O)&&Dh(H.current,E.transform)){const L=Tn(E.transform);H.current=L,clearTimeout(j.current),j.current=setTimeout(()=>{O==null||O(L),n==null||n(E.sourceEvent,L)},s?150:0)}})},[B,s,d,n,r]),x.useEffect(()=>{B&&B.filter(E=>{const O=k||o,L=i&&E.ctrlKey;if((d===!0||Array.isArray(d)&&d.includes(1))&&E.button===1&&E.type==="mousedown"&&(Lt(E,"react-flow__node")||Lt(E,"react-flow__edge")))return!0;
34if(!d&&!O&&!s&&!c&&!i||p||!c&&E.type==="dblclick"||Lt(E,T)&&E.type==="wheel"||Lt(E,_)&&(E.type!=="wheel"||s&&E.type==="wheel"&&!k)||!i&&E.ctrlKey&&E.type==="wheel"||!O&&!s&&!L&&E.type==="wheel"||!d&&(E.type==="mousedown"||E.type==="touchstart")||Array.isArray(d)&&!d.includes(E.button)&&E.type==="mousedown")return!1;const $=Array.isArray(d)&&d.includes(E.button)||!E.button||E.button<=1;return(!E.ctrlKey||E.type==="wheel")&&$})},[p,B,o,i,s,c,d,u,k]),C.createElement("div",{className:"react-flow__renderer",ref:M,style:po},S)},Ph=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Lh(){const{userSelectionActive:e,userSelectionRect:t}=he(Ph,Se);return e&&t?C.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function ps(e,t){const n=t.parentNode||t.parentId,r=e.find(o=>o.id===n);if(r){const o=t.position.x+t.width-r.width,i=t.position.y+t.height-r.height;if(o>0||i>0||t.position.x<0||t.position.y<0){if(r.style={...r.style},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,o>0&&(r.style.width+=o),i>0&&(r.style.height+=i),t.position.x<0){const s=Math.abs(t.position.x);r.position.x=r.position.x-s,r.style.width+=s,t.position.x=0}if(t.position.y<0){const s=Math.abs(t.position.y);r.position.y=r.position.y-s,r.style.height+=s,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function Qi(e,t){if(e.some(r=>r.type==="reset"))return e.filter(r=>r.type==="reset").map(r=>r.item);const n=e.filter(r=>r.type==="add").map(r=>r.item);return t.reduce((r,o)=>{const i=e.filter(a=>a.id===o.id);if(i.length===0)return r.push(o),r;const s={...o};for(const a of i)if(a)switch(a.type){case"select":{s.selected=a.selected;break}case"position":{typeof a.position<"u"&&(s.position=a.position),typeof a.positionAbsolute<"u"&&(s.positionAbsolute=a.positionAbsolute),typeof a.dragging<"u"&&(s.dragging=a.dragging),s.expandParent&&ps(r,s);break}case"dimensions":{typeof a.dimensions<"u"&&(s.width=a.dimensions.width,s.height=a.dimensions.height),typeof a.updateStyle<"u"&&(s.style={...s.style||{},...a.dimensions}),typeof a.resizing=="boolean"&&(s.resizing=a.resizing),s.expandParent&&ps(r,s);break}case"remove":return r}return r.push(s),r},n)}function Ji(e,t){return Qi(e,t)}function Rh(e,t){return Qi(e,t)}const pt=(e,t)=>({id:e,type:"select",selected:t});function Vt(e,t){return e.reduce((n,r)=>{const o=t.includes(r.id);return!r.selected&&o?(r.selected=!0,n.push(pt(r.id,!0))):r.selected&&!o&&(r.selected=!1,n.push(pt(r.id,!1))),n},[])}const Er=(e,t)=>
34n=>{n.target===t.current&&(e==null||e(n))},Bh=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),ea=x.memo(({isSelecting:e,selectionMode:t=pn.Full,panOnDrag:n,onSelectionStart:r,onSelectionEnd:o,onPaneClick:i,onPaneContextMenu:s,onPaneScroll:a,onPaneMouseEnter:l,onPaneMouseMove:c,onPaneMouseLeave:u,children:d})=>{const h=x.useRef(null),m=Ee(),g=x.useRef(0),y=x.useRef(0),b=x.useRef(),{userSelectionActive:w,elementsSelectable:S,dragging:T}=he(Bh,Se),_=()=>{m.setState({userSelectionActive:!1,userSelectionRect:null}),g.current=0,y.current=0},j=V=>{i==null||i(V),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},F=V=>{if(Array.isArray(n)&&(n!=null&&n.includes(2))){V.preventDefault();return}s==null||s(V)},R=a?V=>a(V):void 0,z=V=>{const{resetSelectedElements:p,domNode:k}=m.getState();if(b.current=k==null?void 0:k.getBoundingClientRect(),!S||!e||V.button!==0||V.target!==h.current||!b.current)return;const{x:N,y:A}=xt(V,b.current);p(),m.setState({userSelectionRect:{width:0,height:0,startX:N,startY:A,x:N,y:A}}),r==null||r(V)},M=V=>{const{userSelectionRect:p,nodeInternals:k,edges:N,transform:A,onNodesChange:P,onEdgesChange:E,nodeOrigin:O,getNodes:L}=m.getState();if(!e||!b.current||!p)return;m.setState({userSelectionActive:!0,nodesSelectionActive:!1});const $=xt(V,b.current),W=p.startX??0,U=p.startY??0,Q={...p,x:$.x<W?$.x:W,y:$.y<U?$.y:U,width:Math.abs($.x-W),height:Math.abs($.y-U)},re=L(),oe=Di(k,Q,A,t===pn.Partial,!0,O),le=Fi(oe,N).map(ae=>ae.id),fe=oe.map(ae=>ae.id);if(g.current!==fe.length){g.current=fe.length;const ae=Vt(re,fe);ae.length&&(P==null||P(ae))}if(y.current!==le.length){y.current=le.length;const ae=Vt(N,le);ae.length&&(E==null||E(ae))}m.setState({userSelectionRect:Q})},H=V=>{if(V.button!==0)return;const{userSelectionRect:p}=m.getState();!w&&p&&V.target===h.current&&(j==null||j(V)),m.setState({nodesSelectionActive:g.current>0}),_(),o==null||o(V)},B=V=>{w&&(m.setState({nodesSelectionActive:g.current>0}),o==null||o(V)),_()},Y=S&&(e||w);return C.createElement("div",{className:je(["react-flow__pane",{dragging:T,selection:e}]),onClick:Y?void 0:Er(j,h),onContextMenu:Er(F,h),onWheel:Er(R,h),onMouseEnter:Y?void 0:l,onMouseDown:Y?z:void 0,onMouseMove:Y?M:c,onMouseUp:Y?H:void 0,onMouseLeave:Y?B:u,ref:h,style:po},d,C.createElement(Lh,null))});ea.displayName="Pane";function ta(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return r?r.selected?!0:ta(r,t):!1}function gs(e,t,n){let r=e;do{if(r!=null&&r.matches(t))return!0;if(r===n.current)return!1;r=r.parentElement}while(r);return!1}function zh(e,t,n,r){return Array.from(e.values()).filter(o=>(o.selected||o.id===r)&&(!o.parentNode||o.parentId||!ta(o,e))&&(o.draggable||t&&typeof o.draggable>"u")).map(o=>{var i,s;return{id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:n.x-(((i=o.positionAbsolute)==null?void 0:i.x)??0),y:n.y-(((s=o.positionAbsolute)==null?void 0:s.y)??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}})}function Vh(e,t){return!t||t==="parent"?t:[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]}function na(e,t,n,r,o=[0,0],i){const s=Vh(e,e.extent||r);let a=s;const l=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(l&&e.width&&e.height){const d=n.get(l),{x:h,y:m}=Gt(d,o).positionAbsolute;a=d&&Pe(h)&&Pe(m)&&Pe(d.width)&&Pe(d.height)?[[h+e.width*o[0],m+e.height*o[1]],[h+d.width-e.width+e.width*o[0],m+d.height-e.height+e.height*o[1]]]:a}else i==null||i("005",at.error005()),a=s;else if(e.extent&&l&&e.extent!=="parent"){const d=n.get(l),{x:h,y:m}=Gt(d,o).positionAbsolute;a=[[e.extent[0][0]+h,e.extent[0][1]+m],[e.extent[1][0]+h,e.extent[1][1]+m]]}let c={x:0,y:0};if(l){const d=n.get(l);c=Gt(d,o).positionAbsolute}const u=a&&a!=="parent"?so(t,a):t;return{position:{x:u.x-c.x,y:u.y-c.y},positionAbsolute:u}}function Nr({nodeId:e,dragItems:t,nodeInternals:n}){const r=t.map(o=>({...n.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?r.find(o=>o.id===e):r[0],r]}const ys=(e,t,n,r)=>{const o=t.querySelectorAll(e);if(!o||!o.length)return null;const i=Array.from(o),s=t.getBoundingClientRect(),a={x:s.width*r[0],y:s.height*r[1]};return i.map(l=>{const c=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),position:l.getAttribute("data-handlepos"),x:(c.left-s.left-a.x)/n,y:(c.top-s.top-a.y)/n,...oo(l)}})};function nn(e,t,n){return n===void 0?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function Gr({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeInternals:a,onError:l}=t.getState(),c=a.get(e);if(!c){l==null||l("012",at.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&s)&&(i({nodes:[c],edges:[]}),requestAnimationFrame(()=>{var u;return(u=r==null?void 0:r.current)==null?void 0:u.blur()})):o([e])}function Hh(){const e=Ee();return x.useCallback(({sourceEvent:n})=>
34{const{transform:r,snapGrid:o,snapToGrid:i}=e.getState(),s=n.touches?n.touches[0].clientX:n.clientX,a=n.touches?n.touches[0].clientY:n.clientY,l={x:(s-r[0])/r[2],y:(a-r[1])/r[2]};return{xSnapped:i?o[0]*Math.round(l.x/o[0]):l.x,ySnapped:i?o[1]*Math.round(l.y/o[1]):l.y,...l}},[])}function Sr(e){return(t,n,r)=>e==null?void 0:e(t,r)}function ra({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,selectNodesOnDrag:s}){const a=Ee(),[l,c]=x.useState(!1),u=x.useRef([]),d=x.useRef({x:null,y:null}),h=x.useRef(0),m=x.useRef(null),g=x.useRef({x:0,y:0}),y=x.useRef(null),b=x.useRef(!1),w=x.useRef(!1),S=x.useRef(!1),T=Hh();return x.useEffect(()=>{if(e!=null&&e.current){const _=Ge(e.current),j=({x:z,y:M})=>{const{nodeInternals:H,onNodeDrag:B,onSelectionDrag:Y,updateNodePositions:V,nodeExtent:p,snapGrid:k,snapToGrid:N,nodeOrigin:A,onError:P}=a.getState();d.current={x:z,y:M};let E=!1,O={x:0,y:0,x2:0,y2:0};if(u.current.length>1&&p){const $=fo(u.current,A);O=io($)}if(u.current=u.current.map($=>{const W={x:z-$.distance.x,y:M-$.distance.y};
34N&&(W.x=k[0]*Math.round(W.x/k[0]),W.y=k[1]*Math.round(W.y/k[1]));const U=[[p[0][0],p[0][1]],[p[1][0],p[1][1]]];u.current.length>1&&p&&!$.extent&&(U[0][0]=$.positionAbsolute.x-O.x+p[0][0],U[1][0]=$.positionAbsolute.x+($.width??0)-O.x2+p[1][0],U[0][1]=$.positionAbsolute.y-O.y+p[0][1],U[1][1]=$.positionAbsolute.y+($.height??0)-O.y2+p[1][1]);const Q=na($,W,H,U,A,P);return E=E||$.position.x!==Q.position.x||$.position.y!==Q.position.y,$.position=Q.position,$.positionAbsolute=Q.positionAbsolute,$}),!E)return;V(u.current,!0,!0),c(!0);const L=o?B:Sr(Y);if(L&&y.current){const[$,W]=Nr({nodeId:o,dragItems:u.current,nodeInternals:H});L(y.current,$,W)}},F=()=>{if(!m.current)return;const[z,M]=Ni(g.current,m.current);if(z!==0||M!==0){const{transform:H,panBy:B}=a.getState();d.current.x=(d.current.x??0)-z/H[2],d.current.y=(d.current.y??0)-M/H[2],B({x:z,y:M})&&j(d.current)}h.current=requestAnimationFrame(F)},R=z=>{var A;const{nodeInternals:M,multiSelectionActive:H,nodesDraggable:B,unselectNodesAndEdges:Y,onNodeDragStart:V,onSelectionDragStart:p}=a.getState();w.current=!0;const k=o?V:Sr(p);(!s||!i)&&!H&&o&&((A=M.get(o))!=null&&A.selected||Y()),o&&i&&s&&Gr({id:o,store:a,nodeRef:e});const N=T(z);if(d.current=N,u.current=zh(M,B,N,o),k&&u.current){const[P,E]=Nr({nodeId:o,dragItems:u.current,nodeInternals:M});k(z.sourceEvent,P,E)}};if(t)_.on(".drag",null);else{const z=Nd().on("start",M=>{const{domNode:H,nodeDragThreshold:B}=a.getState();B===0&&R(M),S.current=!1;const Y=T(M);d.current=Y,m.current=(H==null?void 0:H.getBoundingClientRect())||null,g.current=xt(M.sourceEvent,m.current)}).on("drag",M=>{var V,p;const H=T(M),{autoPanOnNodeDrag:B,nodeDragThreshold:Y}=a.getState();if(M.sourceEvent.type==="touchmove"&&M.sourceEvent.touches.length>1&&(S.current=!0),!S.current){if(!b.current&&w.current&&B&&(b.current=!0,F()),!w.current){const k=H.xSnapped-(((V=d==null?void 0:d.current)==null?void 0:V.x)??0),N=H.ySnapped-(((p=d==null?void 0:d.current)==null?void 0:p.y)??0);Math.sqrt(k*k+N*N)>Y&&R(M)}(d.current.x!==H.xSnapped||d.current.y!==H.ySnapped)&&u.current&&w.current&&(y.current=M.sourceEvent,g.current=xt(M.sourceEvent,m.current),j(H))}}).on("end",M=>{if(!(!w.current||S.current)&&(c(!1),b.current=!1,w.current=!1,cancelAnimationFrame(h.current),u.current)){const{updateNodePositions:H,nodeInternals:B,onNodeDragStop:Y,onSelectionDragStop:V}=a.getState(),p=o?Y:Sr(V);if(H(u.current,!1,!1),p){const[k,N]=Nr({nodeId:o,dragItems:u.current,nodeInternals:B});p(M.sourceEvent,k,N)}}}).filter(M=>{const H=M.target;return!M.button&&(!n||!gs(H,`.${n}`,e))&&(!r||gs(H,r,e))});return _.call(z),()=>{_.on(".drag",null)}}}},[e,t,n,r,i,a,o,s,T]),l}function oa(){const e=Ee();return x.useCallback(n=>{const{nodeInternals:r,nodeExtent:o,updateNodePositions:i,getNodes:s,snapToGri
34d:a,snapGrid:l,onError:c,nodesDraggable:u}=e.getState(),d=s().filter(S=>S.selected&&(S.draggable||u&&typeof S.draggable>"u")),h=a?l[0]:5,m=a?l[1]:5,g=n.isShiftPressed?4:1,y=n.x*h*g,b=n.y*m*g,w=d.map(S=>{if(S.positionAbsolute){const T={x:S.positionAbsolute.x+y,y:S.positionAbsolute.y+b};a&&(T.x=l[0]*Math.round(T.x/l[0]),T.y=l[1]*Math.round(T.y/l[1]));const{positionAbsolute:_,position:j}=na(S,T,r,o,void 0,c);S.position=j,S.positionAbsolute=_}return S});i(w,!0,!1)},[])}const Yt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var rn=e=>{const t=({id:n,type:r,data:o,xPos:i,yPos:s,xPosOrigin:a,yPosOrigin:l,selected:c,onClick:u,onMouseEnter:d,onMouseMove:h,onMouseLeave:m,onContextMenu:g,onDoubleClick:y,style:b,className:w,isDraggable:S,isSelectable:T,isConnectable:_,isFocusable:j,selectNodesOnDrag:F,sourcePosition:R,targetPosition:z,hidden:M,resizeObserver:H,dragHandle:B,zIndex:Y,isParent:V,noDragClassName:p,noPanClassName:k,initialized:N,disableKeyboardA11y:A,ariaLabel:P,rfId:E,hasHandleBounds:O})=>{const L=Ee(),$=x.useRef(null),W=x.useRef(null),U=x.useRef(R),Q=x.useRef(z),re=x.useRef(r),oe=T||S||u||d||h||m,le=oa(),fe=nn(n,L.getState,d),ae=nn(n,L.getState,h),ke=nn(n,L.getState,m),Ce=nn(n,L.getState,g),Ie=nn(n,L.getState,y),Ae=ce=>{const{nodeDragThreshold:K}=L.getState();if(T&&(!F||!S||K>0)&&Gr({id:n,store:L,nodeRef:$}),u){const Te=L.getState().nodeInternals.get(n);Te&&u(ce,{...Te})}},me=ce=>{if(!Rr(ce)&&!A)if(ki.includes(ce.key)&&T){const K=ce.key==="Escape";Gr({id:n,store:L,unselect:K,nodeRef:$})}else S&&c&&Object.prototype.hasOwnProperty.call(Yt,ce.key)&&(L.setState({ariaLiveMessage:`Moved selected node ${ce.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~s}`}),le({x:Yt[ce.key].x,y:Yt[ce.key].y,isShiftPressed:ce.shiftKey}))};x.useEffect(()=>()=>{W.current&&(H==null||H.unobserve(W.current),W.current=null)},[]),x.useEffect(()=>{if($.current&&!M){const ce=$.current;(!N||!O||W.current!==ce)&&(W.current&&(H==null||H.unobserve(W.current)),H==null||H.observe(ce),W.current=ce)}},[M,N,O]),x.useEffect(()=>{const ce=re.current!==r,K=U.current!==R,Te=Q.current!==z;$.current&&(ce||K||Te)&&(ce&&(re.current=r),K&&(U.current=R),Te&&(Q.current=z),L.getState().updateNodeDimensions([{id:n,nodeElement:$.current,forceUpdate:!0}]))},[n,r,R,z]);const $e=ra({nodeRef:$,disabled:M||!S,noDragClassName:p,handleSelector:B,nodeId:n,isSelectable:T,selectNodesOnDrag:F});return M?null:C.createElement("div",{className:je(["react-flow__node",`react-flow__node-${r}`,{[k]:S},w,{selected:c,selectable:T,parent:V,dragging:$e}]),ref:$,style:{zIndex:Y,transform:`translate(${a}px,${l}px)`,pointerEvents:oe?"all":"none",visibility:N?"visible":"hidden",...b},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:fe,onMouseMove:ae,onMouseLeave:ke,onContextMenu:Ce,onClick:Ae,onDoubleClick:Ie,onKeyDown:j?me:void 0,tabIndex:j?0:void 0,role:j?"button":void 0,"aria-describedby":A?void 0:`${Xi}-${E}`,"aria-label":P},C.createElement(oh,{value:n},C.createElement(e,{id:n,data:o,type:r,xPos:i,yPos:s,selected:c,isConnectable:_,sourcePosition:R,targetPosition:z,dragging:$e,dragHandle:B,zIndex:Y})))};return t.displayName="NodeWrapper",x.memo(t)};const Gh=e=>{const t=e.getNodes().filter(n=>n.selected);return{...fo(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function Yh({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Ee(),{width:o,height:i,x:s,y:a,transformString:l,userSelectionActive:c}=he(Gh,Se),u=oa(),d=x.useRef(null);if(x.useEffect(()=>{var g;n||(g=d.current)==null||g.focus({preventScroll:!0})},[n]),ra({nodeRef:d}),c||!o||!i)return null;const h=e?g=>{const y=r.getState().getNodes().filter(b=>b.selected);e(g,y)}:void 0,m=g=>{Object.prototype.hasOwnProperty.call(Yt,g.key)&&u({x:Yt[g.key].x,y:Yt[g.key].y,isShiftPressed:g.shiftKey})};return C.createElement("div",{className:je(["react-flow__nodesselection","react-flow__container",t]),style:{transform:l}},C.createElement("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:h,tabIndex:n?void 0:-1,onKeyDown:n?void 0:m,style:{width:o,height:i,top:a,left:s}}))}var Wh=x.memo(Yh);const Xh=e=>e.nodesSelectionActive,sa=({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,deleteKeyCode:a,onMove:l,onMoveStart:c,onMoveEnd:u,selectionKeyCode:d,selectionOnDrag:h,selectionMode:m,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:b,panActivationKeyCode:w,zoomActivationKeyCode:S,elementsSelectable:T,zoomOnScroll:_,zoomOnPinch:j,panOnScroll:F,panOnScrollSpeed:R,panOnScrollMode:z,zoomOnDoubleClick:M,panOnDrag:H,defaultViewport:B,translateExtent:Y,minZoom:V,maxZoom:p,preventScrolling:k,onSelectionContextMenu:N,noWheelClassName:A,noPanClassName:P,disableKeyboardA11y:E})=>{const O=he(Xh),L=gn(d),$=gn(w),W=$||H,U=$||F,Q=L||h&&W!==!0;return Mh({deleteKeyCode:a,multiSelectionKeyCode:b}),C.createElement($h,{onMove:l,onMoveStart:c,onMoveEnd:u,onPaneContextMenu:i,elementsSelectable:T,zoomOnScroll:_,zoomOnPinch:j,panOnScroll:U,panOnScrollSpeed:R,panOnScrollMode:z,zoomOnDoubleClick:M,panOnDrag:!L&&W,defaultViewport:B,translateExtent:Y,minZoom:V,maxZoom:p,zoomActivationKeyCode:S,preventScrolling:k,noWheelClassName:A,noPanClassName:P},C.createElement(ea,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:W,isSelecting:!!Q,selectionMode:m},e,O&&C.createElement(Wh,{onSelectionContextMenu:N,noPanClassName:P,disableKeyboardA11y:E})))};sa.displayName="FlowRenderer";var Uh=x.memo(sa);function qh(e){return he(x.useCallback(n=>e?Di(n.nodeInternals,{x:0,y:0,width:n.width,height:n.height},n.transform,!0):n.getNodes(),[e]))}function Kh(e){const t={input:rn(e.input||Hi),default:rn(e.default||Hr),output:rn(e.output||Yi),group:rn(e.group||mo)},n={},r=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,i)=>(o[i]=rn(e[i]||Hr),o),n);return{...t,...r}}const Zh=({x:e,y:t,width:n,height:r,origin:o})=>!n||!r?{x:e,y:t}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:t}:{x:e-n*o[0],y:t-r*o[1]},Qh=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,no
34desFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),ia=e=>{const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,updateNodeDimensions:i,onError:s}=he(Qh,Se),a=qh(e.onlyRenderVisibleElements),l=x.useRef(),c=x.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const u=new ResizeObserver(d=>{const h=d.map(m=>({id:m.target.getAttribute("data-id"),nodeElement:m.target,forceUpdate:!0}));i(h)});return l.current=u,u},[]);return x.useEffect(()=>()=>{var u;(u=l==null?void 0:l.current)==null||u.disconnect()},[]),C.createElement("div",{className:"react-flow__nodes",style:po},a.map(u=>{var j,F,R;let d=u.type||"default";e.nodeTypes[d]||(s==null||s("003",at.error003(d)),d="default");const h=e.nodeTypes[d]||e.nodeTypes.default,m=!!(u.draggable||t&&typeof u.draggable>"u"),g=!!(u.selectable||o&&typeof u.selectable>"u"),y=!!(u.connectable||n&&typeof u.connectable>"u"),b=!!(u.focusable||r&&typeof u.focusable>"u"),w=e.nodeExtent?so(u.positionAbsolute,e.nodeExtent):u.positionAbsolute,S=(w==null?void 0:w.x)??0,T=(w==null?void 0:w.y)??0,_=Zh({x:S,y:T,width:u.width??0,height:u.height??0,origin:e.nodeOrigin});return C.createElement(h,{key:u.id,id:u.id,className:u.className,style:u.style,type:d,data:u.data,sourcePosition:u.sourcePosition||Z.Bottom,targetPosition:u.targetPosition||Z.Top,hidden:u.hidden,xPos:S,yPos:T,xPosOrigin:_.x,yPosOrigin:_.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!u.selected,isDraggable:m,isSelectable:g,isConnectable:y,isFocusable:b,resizeObserver:c,dragHandle:u.dragHandle,zIndex:((j=u[ge])==null?void 0:j.z)??0,isParent:!!((F=u[ge])!=null&&F.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!u.width&&!!u.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:u.ariaLabel,hasHandleBounds:!!((R=u[ge])!=null&&R.handleBounds)})}))};ia.displayName="NodeRenderer";var Jh=x.memo(ia);const em=(e,t,n)=>n===Z.Left?e-t:n===Z.Right?e+t:e,tm=(e,t,n)=>
34n===Z.Top?e-t:n===Z.Bottom?e+t:e,ws="react-flow__edgeupdater",xs=({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a})=>C.createElement("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:je([ws,`${ws}-${a}`]),cx:em(t,r,e),cy:tm(n,r,e),r,stroke:"transparent",fill:"transparent"}),nm=()=>!0;var Rt=e=>{const t=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:a,selected:l,animated:c,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:g,labelBgBorderRadius:y,style:b,source:w,target:S,sourceX:T,sourceY:_,targetX:j,targetY:F,sourcePosition:R,targetPosition:z,elementsSelectable:M,hidden:H,sourceHandleId:B,targetHandleId:Y,onContextMenu:V,onMouseEnter:p,onMouseMove:k,onMouseLeave:N,reconnectRadius:A,onReconnect:P,onReconnectStart:E,onReconnectEnd:O,markerEnd:L,markerStart:$,rfId:W,ariaLabel:U,isFocusable:Q,isReconnectable:re,pathOptions:oe,interactionWidth:le,disableKeyboardA11y:fe})=>{const ae=x.useRef(null),[ke,Ce]=x.useState(!1),[Ie,Ae]=x.useState(!1),me=Ee(),$e=x.useMemo(()=>`url('#${zr($,W)}')`,[$,W]),ce=x.useMemo(()=>`url('#${zr(L,W)}')`,[L,W]);if(H)return null;const K=_e=>{var Oe;const{edges:Me,addSelectedEdges:Qe,unselectNodesAndEdges:Je,multiSelectionActive:et}=me.getState(),ze=Me.find(_t=>_t.id===n);ze&&(M&&(me.setState({nodesSelectionActive:!1}),ze.selected&&et?(Je({nodes:[],edges:[ze]}),(Oe=ae.current)==null||Oe.blur()):Qe([n])),s&&s(_e,ze))},Te=tn(n,me.getState,a),qe=tn(n,me.getState,V),bt=tn(n,me.getState,p),lt=tn(n,me.getState,k),ct=tn(n,me.getState,N),Be=(_e,Me)=>
34{if(_e.button!==0)return;const{edges:Qe,isValidConnection:Je}=me.getState(),et=Me?S:w,ze=(Me?Y:B)||null,Oe=Me?"target":"source",_t=Je||nm,Kt=Me,Ve=Qe.find(tt=>tt.id===n);Ae(!0),E==null||E(_e,Ve,Oe);const Mt=tt=>{Ae(!1),O==null||O(tt,Ve,Oe)};Ri({event:_e,handleId:ze,nodeId:et,onConnect:tt=>P==null?void 0:P(Ve,tt),isTarget:Kt,getState:me.getState,setState:me.setState,isValidConnection:_t,edgeUpdaterType:Oe,onReconnectEnd:Mt})},ut=_e=>Be(_e,!0),Ke=_e=>Be(_e,!1),Ze=()=>Ce(!0),dt=()=>Ce(!1),ft=!M&&!s,vt=_e=>{var Me;if(!fe&&ki.includes(_e.key)&&M){const{unselectNodesAndEdges:Qe,addSelectedEdges:Je,edges:et}=me.getState();_e.key==="Escape"?((Me=ae.current)==null||Me.blur(),Qe({edges:[et.find(Oe=>Oe.id===n)]})):Je([n])}};return C.createElement("g",{className:je(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:l,animated:c,inactive:ft,updating:ke}]),onClick:K,onDoubleClick:Te,onContextMenu:qe,onMouseEnter:bt,onMouseMove:lt,onMouseLeave:ct,onKeyDown:Q?vt:void 0,tabIndex:Q?0:void 0,role:Q?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":U===null?void 0:U||`Edge from ${w} to ${S}`,"aria-describedby":Q?`${Ui}-${W}`:void 0,ref:ae},!Ie&&C.createElement(e,{id:n,source:w,target:S,selected:l,animated:c,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:m,labelBgPadding:g,labelBgBorderRadius:y,data:i,style:b,sourceX:T,sourceY:_,targetX:j,targetY:F,sourcePosition:R,targetPosition:z,sourceHandleId:B,targetHandleId:Y,markerStart:$e,markerEnd:ce,pathOptions:oe,interactionWidth:le}),re&&C.createElement(C.Fragment,null,(re==="source"||re===!0)&&C.createElement(xs,{position:R,centerX:T,centerY:_,radius:A,onMouseDown:ut,onMouseEnter:Ze,onMouseOut:dt,type:"source"}),(re==="target"||re===!0)&&C.createElement(xs,{position:z,centerX:j,centerY:F,radius:A,onMouseDown:Ke,onMouseEnter:Ze,onMouseOut:dt,type:"target"})))};return t.displayName="EdgeWrapper",x.memo(t)};function rm(e){const t={default:Rt(e.default||Gn),straight:Rt(e.bezier||co),step:Rt(e.step||lo),smoothstep:Rt(e.step||er),simplebezier:Rt(e.simplebezier||ao)},n={},r=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,i)=>(o[i]=Rt(e[i]||Gn),o),n);return{...t,...r}}function bs(e,t,n=null){const r=((n==null?void 0:n.x)||0)+t.x,o=((n==null?void 0:n.y)||0)+t.y,i=(n==null?void 0:n.width)||t.width,s=(n==null?void 0:n.height)||t.height;switch(e){case Z.Top:return{x:r+i/2,y:o};case Z.Right:return{x:r+i,y:o+s/2};case Z.Bottom:return{x:r+i/2,y:o+s};case Z.Left:return{x:r,y:o+s/2}}}function vs(e,t){return e?e.length===1||!t?e[0]:t&&e.find(n=>n.id===t)||null:null}const om=(e,t,n,r,o,i)=>{const s=bs(n,e,t),a=bs(i,r,o);return{sourceX:s.x,sourceY:s.y,targetX:a.x,targetY:a.y}};function sm({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:r,targetWidth:o,targetHeight:i,width:s,height:a,transform:l}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+r,t.y+i)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const u=io({x:(0-l[0])/l[2],y:(0-l[1])/l[2],width:s/l[2],height:a/l[2]}),d=Math.max(0,Math.min(u.x2,c.x2)-Math.max(u.x,c.x)),h=Math.max(0,Math.min(u.y2,c.y2)-Math.max(u.y,c.y));return Math.ceil(d*h)>0}function _s(e){var r,o,i,s,a;const t=((r=e==null?void 0:e[ge])==null?void 0:r.handleBounds)||null,n=t&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.x)<"u"&&typeof((i=e==null?void 0:e.positionAbsolute)==null?void 0:i.y)<"u";return[{x:((s=e==null?void 0:e.positionAbsolute)==null?void 0:s.x)||0,y:((a=e==null?void 0:e.positionAbsolute)==null?void 0:a.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},t,!!n]}const im=[{level:0,isMaxLevel:!0,edges:[]}];function am(e,t,n=!1){let r=-1;const o=e.reduce((s,a)=>{var u,d;const l=Pe(a.zIndex);let c=l?a.zIndex:0;if(n){const h=t.get(a.target),m=t.get(a.source),g=a.selected||(h==null?void 0:h.selected)||(m==null?void 0:m.selected),y=Math.max(((u=m==null?void 0:m[ge])==null?void 0:u.z)||0,((d=h==null?void 0:h[ge])==null?void 0:d.z)||0,1e3);c=(l?a.zIndex:0)+(g?y:0)}return s[c]?s[c].push(a):s[c]=[a],r=c>r?c:r,s},{}),i=Object.entries(o).map(([s,a])=>{const l=+s;return{edges:a,level:l,isMaxLevel:l===r}});return i.length===0?im:i}function lm(e,t,n){const r=he(x.useCallback(o=>e?o.edges.filter(i=>{const s=t.get(i.source),a=t.get(i.target);return(s==null?void 0:s.width)&&(s==null?void 0:s.height)&&(a==null?void 0:a.width)&&(a==null?void 0:a.height)&&sm({sourcePos:s.positionAbsolute||{x:0,y:0},targetPos:a.positionAbsolute||{x:0,y:0},sourceWidth:s.width,sourceHeight:s.height,targetWidth:a.width,targetHeight:a.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,t]));return am(r,t,n)}const cm=({color:e="none",strokeWidth:t=1})=>C.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),um=({color:e="none",strokeWidth:t=1})=>C.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Es={[It.Arrow]:cm,[It.ArrowClosed]:um};function dm(e){const t=Ee();return x.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(Es,e)?Es[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",at.error009(e)),null)},[e])}const fm=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const l=dm(t);return l?C.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0"},C.createElement(l,{color:n,strokeWidth:s})):null},hm=({defaultColor:e,rfId:t})=>n=>{const r=[];return n.edges.reduce((o,i)=>
34([i.markerStart,i.markerEnd].forEach(s=>{if(s&&typeof s=="object"){const a=zr(s,t);r.includes(a)||(o.push({id:a,color:s.color||e,...s}),r.push(a))}}),o),[]).sort((o,i)=>o.id.localeCompare(i.id))},aa=({defaultColor:e,rfId:t})=>{const n=he(x.useCallback(hm({defaultColor:e,rfId:t}),[e,t]),(r,o)=>!(r.length!==o.length||r.some((i,s)=>i.id!==o[s].id)));return C.createElement("defs",null,n.map(r=>C.createElement(fm,{id:r.id,key:r.id,type:r.type,color:r.color,width:r.width,height:r.height,markerUnits:r.markerUnits,strokeWidth:r.strokeWidth,orient:r.orient})))};aa.displayName="MarkerDefinitions";var mm=x.memo(aa);const pm=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),la=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:r,edgeTypes:o,noPanClassName:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:u,onEdgeDoubleClick:d,onReconnect:h,onReconnectStart:m,onReconnectEnd:g,reconnectRadius:y,children:b,disableKeyboardA11y:w})=>{const{edgesFocusable:S,edgesUpdatable:T,elementsSelectable:_,width:j,height:F,connectionMode:R,nodeInternals:z,onError:M}=he(pm,Se),H=lm(t,z,n);return j?C.createElement(C.Fragment,null,H.map(({level:B,edges:Y,isMaxLevel:V})=>C.createElement("svg",{key:B,style:{zIndex:B},width:j,height:F,className:"react-flow__edges react-flow__container"},V&&C.createElement(mm,{defaultColor:e,rfId:r}),C.createElement("g",null,Y.map(p=>{const[k,N,A]=_s(z.get(p.source)),[P,E,O]=_s(z.get(p.target));if(!A||!O)return null;let L=p.type||"default";o[L]||(M==null||M("011",at.error011(L)),L="default");const $=o[L]||o.default,W=R===At.Strict?E.target:(E.target??[]).concat(E.source??[]),U=vs(N.source,p.sourceHandle),Q=vs(W,p.targetHandle),re=(U==null?void 0:U.position)||Z.Bottom,oe=(Q==null?void 0:Q.position)||Z.Top,le=!!(p.focusable||S&&typeof p.focusable>"u"),fe=p.reconnectable||p.updatable,ae=typeof h<"u"&&(fe||T&&typeof fe>"u");if(!U||!Q)return M==null||M("008",at.error008(U,p)),null;const{sourceX:ke,sourceY:Ce,targetX:Ie,targetY:Ae}=om(k,U,re,P,Q,oe);return C.createElement($,{key:p.id,id:p.id,className:je([p.className,i]),type:L,data:p.data,selected:!!p.selected,animated:!!p.animated,hidden:!!p.hidden,label:p.label,labelStyle:p.labelStyle,labelShowBg:p.labelShowBg,labelBgStyle:p.labelBgStyle,labelBgPadding:p.labelBgPadding,labelBgBorderRadius:p.labelBgBorderRadius,style:p.style,source:p.source,target:p.target,sourceHandleId:p.sourceHandle,targetHandleId:p.targetHandle,markerEnd:p.markerEnd,markerStart:p.markerStart,sourceX:ke,sourceY:Ce,targetX:Ie,targetY:Ae,sourcePosition:re,targetPosition:oe,elementsSelectable:_,onContextMenu:s,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:u,onEdgeDoubleClick:d,onReconnect:h,onReconnectStart:m,onReconnectEnd:g,reconnectRadius:y,rfId:r,ariaLabel:p.ariaLabel,isFocusable:le,isReconnectable:ae,pathOptions:"pathOptions"in p?p.pathOptions:void 0,interactionWidth:p.interactionWidth,disableKeyboardA11y:w})})))),b):null};la.displayName="EdgeRenderer";var gm=x.memo(la);const ym=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function wm({children:e}){const t=he(ym);return C.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function xm(e){const t=tr(),n=x.useRef(!1);x.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const bm={[Z.Left]:Z.Right,[Z.Right]:Z.Left,[Z.Top]:Z.Bottom,[Z.Bottom]:Z.Top},ca=({nodeId:e,handleType:t,style:n,type:r=gt.Bezier,CustomComponent:o,connectionStatus:i})=>{var F,R,z;const{fromNode:s,handleId:a,toX:l,toY:c,connectionMode:u}=he(x.useCallback(M=>({fromNode:M.nodeInternals.get(e),handleId:M.connectionHandleId,toX:(M.connectionPosition.x-M.transform[0])/M.transform[2],toY:(M.connectionPosition.y-M.transform[1])/M.transform[2],connectionMode:M.connectionMode}),[e]),Se),d=(F=s==null?void 0:s[ge])==null?void 0:F.handleBounds;let h=d==null?void 0:d[t];
34if(u===At.Loose&&(h=h||(d==null?void 0:d[t==="source"?"target":"source"])),!s||!h)return null;const m=a?h.find(M=>M.id===a):h[0],g=m?m.x+m.width/2:(s.width??0)/2,y=m?m.y+m.height/2:s.height??0,b=(((R=s.positionAbsolute)==null?void 0:R.x)??0)+g,w=(((z=s.positionAbsolute)==null?void 0:z.y)??0)+y,S=m==null?void 0:m.position,T=S?bm[S]:null;if(!S||!T)return null;if(o)return C.createElement(o,{connectionLineType:r,connectionLineStyle:n,fromNode:s,fromHandle:m,fromX:b,fromY:w,toX:l,toY:c,fromPosition:S,toPosition:T,connectionStatus:i});let _="";const j={sourceX:b,sourceY:w,sourcePosition:S,targetX:l,targetY:c,targetPosition:T};return r===gt.Bezier?[_]=ji(j):r===gt.Step?[_]=Br({...j,borderRadius:0}):r===gt.SmoothStep?[_]=Br(j):r===gt.SimpleBezier?[_]=Ai(j):_=`M${b},${w} ${l},${c}`,C.createElement("path",{d:_,fill:"none",className:"react-flow__connection-path",style:n})};ca.displayName="ConnectionLine";const vm=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function _m({containerStyle:e,style:t,type:n,component:r}){const{nodeId:o,handleType:i,nodesConnectable:s,width:a,height:l,connectionStatus:c}=he(vm,Se);return!(o&&i&&a&&s)?null:C.createElement("svg",{style:e,width:a,height:l,className:"react-flow__edges react-flow__connectionline react-flow__container"},C.createElement("g",{className:je(["react-flow__connection",c])},C.createElement(ca,{nodeId:o,handleType:i,style:t,type:n,CustomComponent:r,connectionStatus:c})))}function Ns(e,t){return x.useRef(null),Ee(),x.useMemo(()=>t(e),[e])}const ua=({nodeTypes:e,edgeTypes:t,onMove:n,onMoveStart:r,onMoveEnd:o,onInit:i,onNodeClick:s,onEdgeClick:a,onNodeDoubleClick:l,onEdgeDoubleClick:c,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:h,onNodeContextMenu:m,onSelectionContextMenu:g,onSelectionStart:y,onSelectionEnd:b,connectionLineType:w,connectionLineStyle:S,connectionLineComponent:T,connectionLineContainerStyle:_,selectionKeyCode:j,selectionOnDrag:F,selectionMode:R,multiSelectionKeyCode:z,panActivationKeyCode:M,zoomActivationKeyCode:H,deleteKeyCode:B,onlyRenderVisibleElements:Y,elementsSelectable:V,selectNodesOnDrag:p,defaultViewport:k,translateExtent:N,minZoom:A,maxZoom:P,preventScrolling:E,defaultMarkerColor:O,zoomOnScroll:L,zoomOnPinch:$,panOnScroll:W,panOnScrollSpeed:U,panOnScrollMode:Q,zoomOnDoubleClick:re,panOnDrag:oe,onPaneClick:le,onPaneMouseEnter:fe,onPaneMouseMove:ae,onPaneMouseLeave:ke,onPaneScroll:Ce,onPaneContextMenu:Ie,onEdgeContextMenu:Ae,onEdgeMouseEnter:me,onEdgeMouseMove:$e,onEdgeMouseLeave:ce,onReconnect:K,onReconnectStart:Te,onReconnectEnd:qe,reconnectRadius:bt,noDragClassName:lt,noWheelClassName:ct,noPanClassName:Be,elevateEdgesOnSelect:ut,disableKeyboardA11y:Ke,nodeOrigin:Ze,nodeExtent:dt,rfId:ft})=>{const vt=Ns(e,Kh),_e=Ns(t,rm);return xm(i),C.createElement(Uh,{onPaneClick:le,onPaneMouseEnter:fe,onPaneMouseMove:ae,onPaneMouseLeave:ke,onPaneContextMenu:Ie,onPaneScroll:Ce,deleteKeyCode:B,selectionKeyCode:j,selectionOnDrag:F,selectionMode:R,onSelectionStart:y,onSelectionEnd:b,multiSelectionKeyCode:z,panActivationKeyCode:M,zoomActivationKeyCode:H,elementsSelectable:V,onMove:n,onMoveStart:r,onMoveEnd:o,zoomOnScroll:L,zoomOnPinch:$,zoomOnDoubleClick:re,panOnScroll:W,panOnScrollSpeed:U,panOnScrollMode:Q,panOnDrag:oe,defaultViewport:k,translateExtent:N,minZoom:A,maxZoom:P,onSelectionContextMenu:g,preventScrolling:E,noDragClassName:lt,noWheelClassName:ct,noPanClassName:Be,disableKeyboardA11y:Ke},C.createElement(wm,null,C.createElement(gm,{edgeTypes:_e,onEdgeClick:a,onEdgeDoubleClick:c,onlyRenderVisibleElements:Y,onEdgeContextMenu:Ae,onEdgeMouseEnter:me,onEdgeMouseMove:$e,onEdgeMouseLeave:ce,onReconnect:K,onReconnectStart:Te,onReconnectEnd:qe,reconnectRadius:bt,defaultMarkerColor:O,noPanClassName:Be,elevateEdgesOnSelect:!!ut,disableKeyboardA11y:Ke,rfId:ft},C.createElement(_m,{style:S,type:w,component:T,containerStyle:_})),C.createElement("div",{className:"react-flow__edgelabel-renderer"}),C.createElement(Jh,{nodeTypes:vt,onNodeClick:s,onNodeDoubleClick:l,onNodeMouseEnter:u,onNodeMouseMove:d,onNodeMouseLeave:h,onNodeContextMenu:m,selectNodesOnDrag:p,onlyRenderVisibleElements:Y,noPanClassName:Be,noDragClassName:lt,disableKeyboardA11y:Ke,nodeOrigin:Ze,nodeExtent:dt,rfId:ft})))};ua.displayName="GraphView";var Em=x.memo(ua);const Yr=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ht={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:Yr,nodeExtent:Yr,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:At.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGri
34d:!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:Qf,isValidConnection:void 0},Nm=()=>$c((e,t)=>({...ht,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:_r(n,r,o,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:r={}}=t();e({edges:n.map(o=>({...r,...o}))})},setDefaultNodesAndEdges:(n,r)=>{const o=typeof n<"u",i=typeof r<"u",s=o?_r(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:s,edges:i?r:[],hasDefaultNodes:o,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:r,nodeInternals:o,fitViewOnInit:i,fitViewOnInitDone:s,fitViewOnInitOptions:a,domNode:l,nodeOrigin:c}=t(),u=l==null?void 0:l.querySelector(".react-flow__viewport");if(!u)return;const d=window.getComputedStyle(u),{m22:h}=new window.DOMMatrixReadOnly(d.transform),m=n.reduce((y,b)=>{const w=o.get(b.id);if(w!=null&&w.hidden)o.set(w.id,{...w,[ge]:{...w[ge],handleBounds:void 0}});else if(w){const S=oo(b.nodeElement);!!(S.width&&S.height&&(w.width!==S.width||w.height!==S.height||b.forceUpdate))&&(o.set(w.id,{...w,[ge]:{...w[ge],handleBounds:{source:ys(".source",b.nodeElement,h,c),target:ys(".target",b.nodeElement,h,c)}},...S}),y.push({id:w.id,type:"dimensions",dimensions:S}))}return y},[]);Ki(o,c);const g=s||i&&!s&&Zi(t,{initial:!0,...a});e({nodeInternals:new Map(o),fitViewOnInitDone:g}),(m==null?void 0:m.length)>0&&(r==null||r(m))},updateNodePositions:(n,r=!0,o=!1)=>{const{triggerNodeChanges:i}=t(),s=n.map(a=>{const l={id:a.id,type:"position",dragging:o};return r&&(l.positionAbsolute=a.positionAbsolute,l.position=a.position),l});i(s)},triggerNodeChanges:n=>{const{onNodesChange:r,nodeInternals:o,hasDefaultNodes:i,nodeOrigin:s,getNodes:a,elevateNodesOnSelect:l}=t();if(n!=null&&n.length){if(i){const c=Ji(n,a()),u=_r(c,o,s,l);e({nodeInternals:u})}r==null||r(n)}},addSelectedNodes:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let s,a=null;r?s=n.map(l=>pt(l,!0)):(s=Vt(i(),n),a=Vt(o,[])),In({changedNodes:s,changedEdges:a,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let s,a=null;r?s=n.map(l=>pt(l,!0)):(s=Vt(o,n),a=Vt(i(),[])),In({changedNodes:a,changedEdges:s,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),s=n||i(),a=r||o,l=s.map(u=>(u.selected=!1,pt(u.id,!1))),c=a.map(u=>pt(u.id,!1));In({changedNodes:l,changedEdges:c,get:t,set:e})},setMinZoom:n=>{const{d3Zoom:r,maxZoom:o}=t();r==null||r.scaleExtent([n,o]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:r,minZoom:o}=t();r==null||r.scaleExtent([o,n]),e({maxZoom:n})},setTranslateExtent:n=>{var r;(r=t().d3Zoom)==null||r.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:r}=t(),i=r().filter(a=>a.selected).map(a=>pt(a.id,!1)),s=n.filter(a=>a.selected).map(a=>pt(a.id,!1));In({changedNodes:i,changedEdges:s,get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach(o=>{o.positionAbsolute=so(o.position,n)}),e({nodeExtent:n,nodeInternals:new Map(r)})},panBy:n=>{const{transform:r,width:o,height:i,d3Zoom:s,d3Selection:a,translateExtent:l}=t();if(!s||!a||!n.x&&!n.y)return!1;const c=wt.translate(r[0]+n.x,r[1]+n.y).scale(r[2]),u=[[0,0],[o,i]],d=s==null?void 0:s.constrain()(c,u,l);return s.transform(a,d),r[0]!==d.x||r[1]!==d.y||r[2]!==d.k},cancelConnection:()=>e({connectionNodeId:ht.connectionNodeId,connectionHandleId:ht.connectionHandleId,connectionHandleType:ht.connectionHandleType,connectionStatus:ht.connectionStatus,connectionStartHandle:ht.connectionStartHandle,connectionEndHandle:ht.connectionEndHandle}),reset:()=>e({...ht})}),Object.is),go=({children:e})=>{const t=x.useRef(null);return t.current||(t.current=Nm()),C.createElement(Gf,{value:t.current},e)};go.displayName="ReactFlowProvider";const da=({children:e})=>x.useContext(Jn)?C.createElement(C.Fragment,null,e):C.createElement(go,null,e);da.displayName="ReactFlowWrapper";const Sm={input:Hi,default:Hr,output:Yi,group:mo},km={default:Gn,straight:co,step:lo,smoothstep:er,simplebezier:ao},Cm=[0,0],Im=[15,15],Tm={x:0,y:0,zoom:1},Am={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},fa=x.forwardRef(({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i=Sm,edgeTypes:s=km,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:u,onMoveStart:d,onMoveEnd:h,onConnect:m,onConnectStart:g,onConnectEnd:y,onClickConnectStart:b,onClickConnectEnd:w,onNodeMouseEnter:S,onNodeMouseMove:T,onNodeMouseLeave:_,onNodeContextMenu:j,onNodeDoubleClick:F,onNodeDragStart:R,onNodeDrag:z,onNodeDragStop:M,onNodesDelete:H,onEdgesDelete:B,onSelectionChange:Y,onSelectionDragStart:V,onSelectionDrag:p,onSelectionDragStop:k,onSelectionContextMenu:N,onSelectionStart:A,onSelectionEnd:P,connectionMode:E=At.Strict,connectionLineType:O=gt.Bezier,connectionLineStyle:L,connectionLineComponent:$,connectionLineContainerStyle:W,deleteKeyCode:U="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:re=!1,selectionMode:oe=pn.Full,panActivationKeyCode:le="Space",multiSelectionKeyCode:fe=Hn()?"Meta":"Control",zoomActivationKeyCode:ae=Hn()?"Meta":"Control",snapToGri
vendor: 6,401 bytes, line 34
34d:ke=!1,snapGrid:Ce=Im,onlyRenderVisibleElements:Ie=!1,selectNodesOnDrag:Ae=!0,nodesDraggable:me,nodesConnectable:$e,nodesFocusable:ce,nodeOrigin:K=Cm,edgesFocusable:Te,edgesUpdatable:qe,elementsSelectable:bt,defaultViewport:lt=Tm,minZoom:ct=.5,maxZoom:Be=2,translateExtent:ut=Yr,preventScrolling:Ke=!0,nodeExtent:Ze,defaultMarkerColor:dt="#b1b1b7",zoomOnScroll:ft=!0,zoomOnPinch:vt=!0,panOnScroll:_e=!1,panOnScrollSpeed:Me=.5,panOnScrollMode:Qe=Ct.Free,zoomOnDoubleClick:Je=!0,panOnDrag:et=!0,onPaneClick:ze,onPaneMouseEnter:Oe,onPaneMouseMove:_t,onPaneMouseLeave:Kt,onPaneScroll:Ve,onPaneContextMenu:Mt,children:Ot,onEdgeContextMenu:tt,onEdgeDoubleClick:or,onEdgeMouseEnter:sr,onEdgeMouseMove:ir,onEdgeMouseLeave:ar,onEdgeUpdate:bn,onEdgeUpdateStart:v,onEdgeUpdateEnd:I,onReconnect:D,onReconnectStart:G,onReconnectEnd:X,reconnectRadius:q=10,edgeUpdaterRadius:ee=10,onNodesChange:J,onEdgesChange:de,noDragClassName:se="nodrag",noWheelClassName:ne="nowheel",noPanClassName:xe="nopan",fitView:ie=!1,fitViewOptions:ye,connectOnClick:De=!0,attributionPosition:we,proOptions:Dt,defaultEdgeOptions:Zt,elevateNodesOnSelect:Qt=!0,elevateEdgesOnSelect:Qa=!1,disableKeyboardA11y:_o=!1,autoPanOnConnect:Ja=!0,autoPanOnNodeDrag:el=!0,connectionRadius:tl=20,isValidConnection:nl,onError:rl,style:ol,id:Eo,nodeDragThreshold:sl,...il},al)=>{const lr=Eo||"1";return C.createElement("div",{...il,style:{...ol,...Am},ref:al,className:je(["react-flow",o]),"data-testid":"rf__wrapper",id:Eo},C.createElement(da,null,C.createElement(Em,{onInit:c,onMove:u,onMoveStart:d,onMoveEnd:h,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:S,onNodeMouseMove:T,onNodeMouseLeave:_,onNodeContextMenu:j,onNodeDoubleClick:F,nodeTypes:i,edgeTypes:s,connectionLineType:O,connectionLineStyle:L,connectionLineComponent:$,connectionLineContainerStyle:W,selectionKeyCode:Q,selectionOnDrag:re,selectionMode:oe,deleteKeyCode:U,multiSelectionKeyCode:fe,panActivationKeyCode:le,zoomActivationKeyCode:ae,onlyRenderVisibleElements:Ie,selectNodesOnDrag:Ae,defaultViewport:lt,translateExtent:ut,minZoom:ct,maxZoom:Be,preventScrolling:Ke,zoomOnScroll:ft,zoomOnPinch:vt,zoomOnDoubleClick:Je,panOnScroll:_e,panOnScrollSpeed:Me,panOnScrollMode:Qe,panOnDrag:et,onPaneClick:ze,onPaneMouseEnter:Oe,onPaneMouseMove:_t,onPaneMouseLeave:Kt,onPaneScroll:Ve,onPaneContextMenu:Mt,onSelectionContextMenu:N,onSelectionStart:A,onSelectionEnd:P,onEdgeContextMenu:tt,onEdgeDoubleClick:or,onEdgeMouseEnter:sr,onEdgeMouseMove:ir,onEdgeMouseLeave:ar,onReconnect:D??bn,onReconnectStart:G??v,onReconnectEnd:X??I,reconnectRadius:q??ee,defaultMarkerColor:dt,noDragClassName:se,noWheelClassName:ne,noPanClassName:xe,elevateEdgesOnSelect:Qa,rfId:lr,disableKeyboardA11y:_o,nodeOrigin:K,nodeExtent:Ze}),C.createElement(bh,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:m,onConnectStart:g,onConnectEnd:y,onClickConnectStart:b,onClickConnectEnd:w,nodesDraggable:me,nodesConnectable:$e,nodesFocusable:ce,edgesFocusable:Te,edgesUpdatable:qe,elementsSelectable:bt,elevateNodesOnSelect:Qt,minZoom:ct,maxZoom:Be,nodeExtent:Ze,onNodesChange:J,onEdgesChange:de,snapToGrid:ke,snapGrid:Ce,connectionMode:E,translateExtent:ut,connectOnClick:De,defaultEdgeOptions:Zt,fitView:ie,fitViewOptions:ye,onNodesDelete:H,onEdgesDelete:B,onNodeDragStart:R,onNodeDrag:z,onNodeDragStop:M,onSelectionDrag:p,onSelectionDragStart:V,onSelectionDragStop:k,noPanClassName:xe,nodeOrigin:K,rfId:lr,autoPanOnConnect:Ja,autoPanOnNodeDrag:el,onError:rl,connectionRadius:tl,isValidConnection:nl,nodeDragThreshold:sl}),C.createElement(wh,{onSelectionChange:Y}),Ot,C.createElement(Wf,{proOptions:Dt,position:we}),C.createElement(Sh,{rfId:lr,disableKeyboardA11y:_o})))});fa.displayName="ReactFlow";const jm=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function Mm(){return he(jm,Se)}function ha(e){return t=>{const[n,r]=x.useState(t),o=x.useCallback(i=>r(s=>e(i,s)),[]);return[n,r,o]}}const Om=ha(Ji),Dm=ha(Rh);function Fm(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},C.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function $m(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},C.createElement("path",{d:"M0 0h32v4.2H0z"}))}function Pm(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},C.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 Lm(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},C.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 Rm(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},C.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const cn=({children:e,className:t,...n})=>C.createElement("button",{type:"button",className:je(["react-flow__controls-button",t]),...n},e);cn.displayName="ControlButton";const Bm=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),ma=({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:l,className:c,children:u,position:d="bottom-left"})=>
34{const h=Ee(),[m,g]=x.useState(!1),{isInteractive:y,minZoomReached:b,maxZoomReached:w}=he(Bm,Se),{zoomIn:S,zoomOut:T,fitView:_}=tr();if(x.useEffect(()=>{g(!0)},[]),!m)return null;const j=()=>{S(),i==null||i()},F=()=>{T(),s==null||s()},R=()=>{_(o),a==null||a()},z=()=>{h.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),l==null||l(!y)};return C.createElement(zt,{className:je(["react-flow__controls",c]),position:d,style:e,"data-testid":"rf__controls"},t&&C.createElement(C.Fragment,null,C.createElement(cn,{onClick:j,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:w},C.createElement(Fm,null)),C.createElement(cn,{onClick:F,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:b},C.createElement($m,null))),n&&C.createElement(cn,{className:"react-flow__controls-fitview",onClick:R,title:"fit view","aria-label":"fit view"},C.createElement(Pm,null)),r&&C.createElement(cn,{className:"react-flow__controls-interactive",onClick:z,title:"toggle interactivity","aria-label":"toggle interactivity"},y?C.createElement(Rm,null):C.createElement(Lm,null)),u)};ma.displayName="Controls";var zm=x.memo(ma),Le;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Le||(Le={}));function Vm({color:e,dimensions:t,lineWidth:n}){return C.createElement("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function Hm({color:e,radius:t}){return C.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const Gm={[Le.Dots]:"#91919a",[Le.Lines]:"#eee",[Le.Cross]:"#e2e2e2"},Ym={[Le.Dots]:1,[Le.Lines]:1,[Le.Cross]:6},Wm=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function pa({id:e,variant:t=Le.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=2,color:s,style:a,className:l}){const c=x.useRef(null),{transform:u,patternId:d}=he(Wm,Se),h=s||Gm[t],m=r||Ym[t],g=t===Le.Dots,y=t===Le.Cross,b=Array.isArray(n)?n:[n,n],w=[b[0]*u[2]||1,b[1]*u[2]||1],S=m*u[2],T=y?[S,S]:w,_=g?[S/i,S/i]:[T[0]/i,T[1]/i];return C.createElement("svg",{className:je(["react-flow__background",l]),style:{...a,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:c,"data-testid":"rf__background"},C.createElement("pattern",{id:d+e,x:u[0]%w[0],y:u[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`},g?C.createElement(Hm,{color:h,radius:S/i}):C.createElement(Vm,{dimensions:T,color:h,lineWidth:o})),C.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${d+e})`}))}pa.displayName="Background";var Xm=x.memo(pa),Um="\0",Nt="\0",Ss="�";let qm=class{constructor(t){be(this,"_isDirected",!0);be(this,"_isMultigraph",!1);be(this,"_isCompound",!1);be(this,"_label");be(this,"_defaultNodeLabelFn",()=>{});be(this,"_defaultEdgeLabelFn",()=>{});be(this,"_nodes",{});be(this,"_in",{});be(this,"_preds",{});be(this,"_out",{});be(this,"_sucs",{});be(this,"_edgeObjs",{});be(this,"_edgeLabels",{});be(this,"_nodeCount",0);be(this,"_edgeCount",0);be(this,"_parent");be(this,"_children");t&&(this._isDirected=Object.hasOwn(t,"directed")?t.directed:!0,this._isMultigraph=Object.hasOwn(t,"multigraph")?t.multigraph:!1,this._isCompound=Object.hasOwn(t,"compound")?t.compound:!1),this._isCompound&&
vendor: 9,658 bytes, line 34
34(this._parent={},this._children={},this._children[Nt]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return this._defaultNodeLabelFn=t,typeof t!="function"&&(this._defaultNodeLabelFn=()=>t),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var t=this;return this.nodes().filter(n=>Object.keys(t._in[n]).length===0)}sinks(){var t=this;return this.nodes().filter(n=>Object.keys(t._out[n]).length===0)}setNodes(t,n){var r=arguments,o=this;return t.forEach(function(i){r.length>1?o.setNode(i,n):o.setNode(i)}),this}setNode(t,n){return Object.hasOwn(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=n),this):(this._nodes[t]=arguments.length>1?n:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=Nt,this._children[t]={},this._children[Nt][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return Object.hasOwn(this._nodes,t)}removeNode(t){var n=this;if(Object.hasOwn(this._nodes,t)){var r=o=>n.removeEdge(n._edgeObjs[o]);delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],this.children(t).forEach(function(o){n.setParent(o)}),delete this._children[t]),Object.keys(this._in[t]).forEach(r),delete this._in[t],delete this._preds[t],Object.keys(this._out[t]).forEach(r),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,n){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(n===void 0)n=Nt;else{n+="";for(var r=n;r!==void 0;r=this.parent(r))if(r===t)throw new Error("Setting "+n+" as parent of "+t+" would create a cycle");this.setNode(n)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=n,this._children[n][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var n=this._parent[t];if(n!==Nt)return n}}children(t=Nt){if(this._isCompound){var n=this._children[t];if(n)return Object.keys(n)}else{if(t===Nt)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var n=this._preds[t];if(n)return Object.keys(n)}successors(t){var n=this._sucs[t];if(n)return Object.keys(n)}neighbors(t){var n=this.predecessors(t);if(n){const o=new Set(n);for(var r of this.successors(t))o.add(r);return Array.from(o.values())}}isLeaf(t){var n;return this.isDirected()?n=this.successors(t):n=this.neighbors(t),n.length===0}filterNodes(t){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});n.setGraph(this.graph());var r=this;Object.entries(this._nodes).forEach(function([s,a]){t(s)&&n.setNode(s,a)}),Object.values(this._edgeObjs).forEach(function(s){n.hasNode(s.v)&&n.hasNode(s.w)&&n.setEdge(s,r.edge(s))});var o={};function i(s){var a=r.parent(s);return a===void 0||n.hasNode(a)?(o[s]=a,a):a in o?o[a]:i(a)}return this._isCompound&&n.nodes().forEach(s=>n.setParent(s,i(s))),n}setDefaultEdgeLabel(t){return this._defaultEdgeLabelFn=t,typeof t!="function"&&(this._defaultEdgeLabelFn=()=>t),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(t,n){var r=this,o=arguments;return t.reduce(function(i,s){return o.length>1?r.setEdge(i,s,n):r.setEdge(i,s),s}),this}setEdge(){var t,n,r,o,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(t=s.v,n=s.w,r=s.name,arguments.length===2&&(o=arguments[1],i=!0)):(t=s,n=arguments[1],r=arguments[3],arguments.length>2&&(o=arguments[2],i=!0)),t=""+t,n=""+n,r!==void 0&&(r=""+r);var a=un(this._isDirected,t,n,r);if(Object.hasOwn(this._edgeLabels,a))return i&&(this._edgeLabels[a]=o),this;if(r!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(n),this._edgeLabels[a]=i?o:this._defaultEdgeLabelFn(t,n,r);var l=Km(this._isDirected,t,n,r);return t=l.v,n=l.w,Object.freeze(l),this._edgeObjs[a]=l,ks(this._preds[n],t),ks(this._sucs[t],n),this._in[n][a]=l,this._out[t][a]=l,this._edgeCount++,this}edge(t,n,r){var o=arguments.length===1?kr(this._isDirected,arguments[0]):un(this._isDirected,t,n,r);return this._edgeLabels[o]}edgeAsObj(){const t=this.edge(...arguments);return typeof t!="object"?{label:t}:t}hasEdge(t,n,r){var o=arguments.length===1?kr(this._isDirected,arguments[0]):un(this._isDirected,t,n,r);return Object.hasOwn(this._edgeLabels,o)}removeEdge(t,n,r){var o=arguments.length===1?kr(this._isDirected,arguments[0]):un(this._isDirected,t,n,r),i=this._edgeObjs[o];return i&&(t=i.v,n=i.w,delete this._edgeLabels[o],delete this._edgeObjs[o],Cs(this._preds[n],t),Cs(this._sucs[t],n),delete this._in[n][o],delete this._out[t][o],this._edgeCount--),this}inEdges(t,n){var r=this._in[t];if(r){var o=Object.values(r);return n?o.filter(i=>i.v===n):o}}outEdges(t,n){var r=this._out[t];if(r){var o=Object.values(r);return n?o.filter(i=>i.w===n):o}}nodeEdges(t,n){var r=this.inEdges(t,n);if(r)return r.concat(this.outEdges(t,n))}};function ks(e,t){e[t]?e[t]++:e[t]=1}function Cs(e,t){--e[t]||delete e[t]}function un(e,t,n,r){var o=""+t,i=""+n;if(!e&&o>i){var s=o;o=i,i=s}return o+Ss+i+Ss+(r===void 0?Um:r)}function Km(e,t,n,r){var o=""+t,i=""+n;if(!e&&o>i){var s=o;o=i,i=s}var a={v:o,w:i};return r&&(a.name=r),a}function kr(e,t){return un(e,t.v,t.w,t.name)}var yo=qm,Zm="2.2.4",Qm={Graph:yo,version:Zm},Jm=yo,ep={write:tp,read:op};function tp(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:np(e),edges:rp(e)};return e.graph()!==void 0&&(t.value=structuredClone(e.graph())),t}function np(e){return e.nodes().map(function(t){var n=e.node(t),r=e.parent(t),o={v:t};return n!==void 0&&(o.value=n),r!==void 0&&(o.parent=r),o})}function rp(e){return e.edges().map(function(t){var n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function op(e){var t=new Jm(e.options).setGraph(e.value);return e.nodes.forEach(function(n){t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(function(n){t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var sp=ip;function ip(e){var t={},n=[],r;function o(i){Object.hasOwn(t,i)||(t[i]=!0,r.push(i),e.successors(i).forEach(o),e.predecessors(i).forEach(o))}return e.nodes().forEach(function(i){r=[],o(i),r.length&&n.push(r)}),n}let ap=class{constructor(){be(this,"_arr",[]);be(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(t){return t.key})}has(t){return Object.hasOwn(this._keyIndices,t)}priority(t){var n=this._keyIndices[t];if(n!==void 0)return this._arr[n].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(t,n){var r=this._keyIndices;if(t=String(t),!Object.hasOwn(r,t)){var o=this._arr,i=o.length;return r[t]=i,o.push({key:t,priority:n}),this._decrease(i),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key}decrease(t,n){var r=this._keyIndices[t];if(n>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+t+" Old: "+this._arr[r].priority+" New: "+n);this._arr[r].priority=n,this._decrease(r)}_heapify(t){var n=this._arr,r=2*t,o=r+1,i=t;r<n.length&&(i=n[r].priority<n[i].priority?r:i,o<n.length&&(i=n[o].priority<n[i].priority?o:i),i!==t&&(this._swap(t,i),this._heapify(i)))}_decrease(t){for(var n=this._arr,r=n[t].priority,o;t!==0&&(o=t>>1,!(n[o].priority<r));)this._swap(t,o),t=o}_swap(t,n){var r=this._arr,o=this._keyIndices,i=r[t],s=r[n];r[t]=s,r[n]=i,o[s.key]=t,o[i.key]=n}};var ga=ap,lp=ga,ya=up,cp=()=>1;function up(e,t,n,r){return dp(e,String(t),n||cp,r||function(o){return e.outEdges(o)})}function dp(e,t,n,r){var o={},i=new lp,s,a,l=function(c){var u=c.v!==s?c.v:c.w,d=o[u],h=n(c),m=a.distance+h;if(h<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+c+" Weight: "+h);m<d.distance&&(d.distance=m,d.predecessor=s,i.decrease(u,m))};for(e.nodes().forEach(function(c){var u=c===t?0:Number.POSITIVE_INFINITY;o[c]={distance:u},i.add(c,u)});i.size()>0&&(s=i.removeMin(),a=o[s],a.distance!==Number.POSITIVE_INFINITY);)r(s).forEach(l);return o}var fp=ya,hp=mp;function mp(e,t,n){return e.nodes().reduce(function(r,o){return r[o]=fp(e,o,t,n),r},{})}var wa=pp;function pp(e){var t=0,n=[],r={},o=[];function i(s){var a=r[s]={onStack:!0,lowlink:t,index:t++};if(n.push(s),e.successors(s).forEach(function(u){Object.hasOwn(r,u)?r[u].onStack&&(a.lowlink=Math.min(a.lowlink,r[u].index)):(i(u),a.lowlink=Math.min(a.lowlink,r[u].lowlink))}),a.lowlink===a.index){var l=[],c;do c=n.pop(),r[c].onStack=!1,l.push(c);while(s!==c);o.push(l)}}return e.nodes().forEach(function(s){Object.hasOwn(r,s)||i(s)}),o}var gp=wa,yp=wp;function wp(e){return gp(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var xp=vp,bp=()=>1;function vp(e,t,n){return _p(e,t||bp,n||function(r){return e.outEdges(r)})}function _p(e,t,n){var r={},o=e.nodes();return o.forEach(function(i){r[i]={},r[i][i]={distance:0},o.forEach(function(s){i!==s&&(r[i][s]={distance:Number.POSITIVE_INFINITY})}),n(i).forEach(function(s){var a=s.v===i?s.w:s.v,l=t(s);r[i][a]={distance:l,predecessor:i}})}),o.forEach(function(i){var s=r[i];o.forEach(function(a){var l=r[a];o.forEach(function(c){var u=l[i],d=s[c],h=l[c],m=u.distance+d.distance;m<h.distance&&(h.distance=m,h.predecessor=d.predecessor)})})}),r}function xa(e){var t={},n={},r=[];function o(i){if(Object.hasOwn(n,i))throw new Wr;
34Object.hasOwn(t,i)||(n[i]=!0,t[i]=!0,e.predecessors(i).forEach(o),delete n[i],r.push(i))}if(e.sinks().forEach(o),Object.keys(t).length!==e.nodeCount())throw new Wr;return r}class Wr extends Error{constructor(){super(...arguments)}}var ba=xa;xa.CycleException=Wr;var Is=ba,Ep=Np;function Np(e){try{Is(e)}catch(t){if(t instanceof Is.CycleException)return!1;throw t}return!0}var va=Sp;function Sp(e,t,n){Array.isArray(t)||(t=[t]);var r=e.isDirected()?a=>e.successors(a):a=>e.neighbors(a),o=n==="post"?kp:Cp,i=[],s={};return t.forEach(a=>{if(!e.hasNode(a))throw new Error("Graph does not have node: "+a);o(a,r,s,i)}),i}function kp(e,t,n,r){for(var o=[[e,!1]];o.length>0;){var i=o.pop();i[1]?r.push(i[0]):Object.hasOwn(n,i[0])||(n[i[0]]=!0,o.push([i[0],!0]),_a(t(i[0]),s=>o.push([s,!1])))}}function Cp(e,t,n,r){for(var o=[e];o.length>0;){var i=o.pop();Object.hasOwn(n,i)||(n[i]=!0,r.push(i),_a(t(i),s=>o.push(s)))}}function _a(e,t){for(var n=e.length;n--;)t(e[n],n,e);return e}var Ip=va,Tp=Ap;function Ap(e,t){return Ip(e,t,"post")}var jp=va,Mp=Op;function Op(e,t){return jp(e,t,"pre")}var Dp=yo,Fp=ga,$p=Pp;function Pp(e,t){var n=new Dp,r={},o=new Fp,i;function s(l){var c=l.v===i?l.w:l.v,u=o.priority(c);if(u!==void 0){var d=t(l);d<u&&(r[c]=i,o.decrease(c,d))}}if(e.nodeCount()===0)return n;e.nodes().forEach(function(l){o.add(l,Number.POSITIVE_INFINITY),n.setNode(l)}),o.decrease(e.nodes()[0],0);for(var a=!1;o.size()>0;){if(i=o.removeMin(),Object.hasOwn(r,i))n.setEdge(i,r[i]);else{if(a)throw new Error("Input graph is not connected: "+e);a=!0}e.nodeEdges(i).forEach(s)}return n}var Lp={components:sp,dijkstra:ya,dijkstraAll:hp,findCycles:yp,floydWarshall:xp,isAcyclic:Ep,postorder:Tp,preorder:Mp,prim:$p,tarjan:wa,topsort:ba},Ts=Qm,We={Graph:Ts.Graph,json:ep,alg:Lp,version:Ts.version};let Rp=class{constructor(){let t={};t._next=t._prev=t,this._sentinel=t}dequeue(){let t=this._sentinel,n=t._prev;if(n!==t)return As(n),n}enqueue(t){let n=this._sentinel;t._prev&&t._next&&As(t),t._next=n._next,n._next._prev=t,n._next=t,t._prev=n}toString(){let t=[],n=this._sentinel,r=n._prev;for(;r!==n;)t.push(JSON.stringify(r,Bp)),r=r._prev;return"["+t.join(", ")+"]"}};function As(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Bp(e,t){if(e!=="_next"&&e!=="_prev")return t}var zp=Rp;let Vp=We.Graph,Hp=zp;var Gp=Wp;let Yp=()=>1;function Wp(e,t){if(e.nodeCount()<=1)return[];let n=Up(e,t||Yp);return Xp(n.graph,n.buckets,n.zeroIdx).flatMap(o=>e.outEdges(o.v,o.w))}function Xp(e,t,n){let r=[],o=t[t.length-1],i=t[0],s;for(;e.nodeCount();){for(;s=i.dequeue();)Cr(e,t,n,s);for(;s=o.dequeue();)Cr(e,t,n,s);if(e.nodeCount()){for(let a=t.length-2;a>0;--a)if(s=t[a].dequeue(),s){r=r.concat(Cr(e,t,n,s,!0));break}}}return r}function Cr(e,t,n,r,o){let i=o?[]:void 0;return e.inEdges(r.v).forEach(s=>{let a=e.edge(s),l=e.node(s.v);o&&i.push({v:s.v,w:s.w}),l.out-=a,Xr(t,n,l)}),e.outEdges(r.v).forEach(s=>{let a=e.edge(s),l=s.w,c=e.node(l);c.in-=a,Xr(t,n,c)}),e.removeNode(r.v),i}function Up(e,t){let n=new Vp,r=0,o=0;e.nodes().forEach(a=>{n.setNode(a,{v:a,in:0,out:0})}
vendor: 8,864 bytes, line 34
34),e.edges().forEach(a=>{let l=n.edge(a.v,a.w)||0,c=t(a),u=l+c;n.setEdge(a.v,a.w,u),o=Math.max(o,n.node(a.v).out+=c),r=Math.max(r,n.node(a.w).in+=c)});let i=qp(o+r+3).map(()=>new Hp),s=r+1;return n.nodes().forEach(a=>{Xr(i,s,n.node(a))}),{graph:n,buckets:i,zeroIdx:s}}function Xr(e,t,n){n.out?n.in?e[n.out-n.in+t].enqueue(n):e[e.length-1].enqueue(n):e[0].enqueue(n)}function qp(e){const t=[];for(let n=0;n<e;n++)t.push(n);return t}let Ea=We.Graph;var ve={addBorderNode:og,addDummyNode:Na,applyWithChunking:nr,asNonCompoundGraph:Zp,buildLayerMatrix:tg,intersectRect:eg,mapValues:dg,maxRank:ka,normalizeRanks:ng,notime:lg,partition:ig,pick:ug,predecessorWeights:Jp,range:Ia,removeEmptyRanks:rg,simplify:Kp,successorWeights:Qp,time:ag,uniqueId:Ca,zipObject:wo};function Na(e,t,n,r){for(var o=r;e.hasNode(o);)o=Ca(r);return n.dummy=t,e.setNode(o,n),o}function Kp(e){let t=new Ea().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t}function Zp(e){let t=new Ea({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function Qp(e){let t=e.nodes().map(n=>{let r={};return e.outEdges(n).forEach(o=>{r[o.w]=(r[o.w]||0)+e.edge(o).weight}),r});return wo(e.nodes(),t)}function Jp(e){let t=e.nodes().map(n=>{let r={};return e.inEdges(n).forEach(o=>{r[o.v]=(r[o.v]||0)+e.edge(o).weight}),r});return wo(e.nodes(),t)}function eg(e,t){let n=e.x,r=e.y,o=t.x-n,i=t.y-r,s=e.width/2,a=e.height/2;if(!o&&!i)throw new Error("Not possible to find intersection inside of the rectangle");let l,c;return Math.abs(i)*s>Math.abs(o)*a?(i<0&&(a=-a),l=a*o/i,c=a):(o<0&&(s=-s),l=s,c=s*i/o),{x:n+l,y:r+c}}function tg(e){let t=Ia(ka(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),o=r.rank;o!==void 0&&(t[o][r.order]=n)}),t}function ng(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),n=nr(Math.min,t);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=n)})}function rg(e){let t=e.nodes().map(s=>e.node(s).rank),n=nr(Math.min,t),r=[];e.nodes().forEach(s=>{let a=e.node(s).rank-n;r[a]||(r[a]=[]),r[a].push(s)});let o=0,i=e.graph().nodeRankFactor;Array.from(r).forEach((s,a)=>{s===void 0&&a%i!==0?--o:s!==void 0&&o&&s.forEach(l=>e.node(l).rank+=o)})}function og(e,t,n,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),Na(e,"border",o,t)}function sg(e,t=Sa){const n=[];for(let r=0;r<e.length;r+=t){const o=e.slice(r,r+t);n.push(o)}return n}const Sa=65535;function nr(e,t){if(t.length>Sa){const n=sg(t);return e.apply(null,n.map(r=>e.apply(null,r)))}else return e.apply(null,t)}function ka(e){const n=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MIN_VALUE:o});return nr(Math.max,n)}function ig(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function ag(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function lg(e,t){return t()}let cg=0;function Ca(e){var t=++cg;return e+(""+t)}function Ia(e,t,n=1){t==null&&(t=e,e=0);let r=i=>i<t;n<0&&(r=i=>t<i);const o=[];for(let i=e;r(i);i+=n)o.push(i);return o}function ug(e,t){const n={};for(const r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function dg(e,t){let n=t;return typeof t=="string"&&(n=r=>r[t]),Object.entries(e).reduce((r,[o,i])=>(r[o]=n(i,o),r),{})}function wo(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}let fg=Gp,hg=ve.uniqueId;var mg={run:pg,undo:yg};function pg(e){(e.graph().acyclicer==="greedy"?fg(e,n(e)):gg(e)).forEach(r=>{let o=e.edge(r);e.removeEdge(r),o.forwardName=r.name,o.reversed=!0,e.setEdge(r.w,r.v,o,hg("rev"))});function n(r){return o=>r.edge(o).weight}}function gg(e){let t=[],n={},r={};function o(i){Object.hasOwn(r,i)||(r[i]=!0,n[i]=!0,e.outEdges(i).forEach(s=>{Object.hasOwn(n,s.w)?t.push(s):o(s.w)}),delete n[i])}return e.nodes().forEach(o),t}function yg(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}let wg=ve;var xg={run:bg,undo:_g};function bg(e){e.graph().dummyChains=[],e.edges().forEach(t=>vg(e,t))}function vg(e,t){let n=t.v,r=e.node(n).rank,o=t.w,i=e.node(o).rank,s=t.name,a=e.edge(t),l=a.labelRank;if(i===r+1)return;e.removeEdge(t);let c,u,d;for(d=0,++r;r<i;++d,++r)a.points=[],u={width:0,height:0,edgeLabel:a,edgeObj:t,rank:r},c=wg.addDummyNode(e,"edge",u,"_d"),r===l&&(u.width=a.width,u.height=a.height,u.dummy="edge-label",u.labelpos=a.labelpos),e.setEdge(n,c,{weight:a.weight},s),d===0&&e.graph().dummyChains.push(c),n=c;e.setEdge(n,o,{weight:a.weight},s)}function _g(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,o;for(e.setEdge(n.edgeObj,r);n.dummy;)o=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=o,n=e.node(t)})}const{applyWithChunking:Eg}=ve;var rr={longestPath:Ng,slack:Sg};function Ng(e){var t={};function n(r){var o=e.node(r);if(Object.hasOwn(t,r))return o.rank;t[r]=!0;let i=e.outEdges(r).map(a=>a==null?Number.POSITIVE_INFINITY:n(a.w)-e.edge(a).minlen);var s=Eg(Math.min,i);return s===Number.POSITIVE_INFINITY&&(s=0),o.rank=s}e.sources().forEach(n)}function Sg(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var kg=We.Graph,Wn=rr.slack,Ta=Cg;function Cg(e){var t=new kg({directed:!1}),n=e.nodes()[0],r=e.nodeCount();t.setNode(n,{});for(var o,i;Ig(t,e)<r;)o=Tg(t,e),i=t.hasNode(o.v)?Wn(e,o):-Wn(e,o),Ag(t,e,i);return t}function Ig(e,t){function n(r){t.nodeEdges(r).forEach(o=>{var i=o.v,s=r===i?o.w:i;!e.hasNode(s)&&!Wn(t,o)&&(e.setNode(s,{}),e.setEdge(r,s,{}),n(s))})}return e.nodes().forEach(n),e.nodeCount()}function Tg(e,t){return t.edges().reduce((r,o)=>{let i=Number.POSITIVE_INFINITY;return e.hasNode(o.v)!==e.hasNode(o.w)&&(i=Wn(t,o)),i<r[0]?[i,o]:r},[Number.POSITIVE_INFINITY,null])[1]}function Ag(e,t,n){e.nodes().forEach(r=>t.node(r).rank+=n)}var jg=Ta,js=rr.slack,Mg=rr.longestPath,Og=We.alg.preorder,Dg=We.alg.postorder,Fg=ve.simplify,$g=jt;jt.initLowLimValues=bo;jt.initCutValues=xo;jt.calcCutValue=Aa;jt.leaveEdge=Ma;jt.enterEdge=Oa;jt.exchangeEdges=Da;function jt(e){e=Fg(e),Mg(e);var t=jg(e);bo(t),xo(t,e);for(var n,r;n=Ma(t);)r=Oa(t,e,n),Da(t,e,n,r)}function xo(e,t){var n=Dg(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>Pg(e,t,r))}function Pg(e,t,n){var r=e.node(n),o=r.parent;e.edge(n,o).cutvalue=Aa(e,t,n)}function Aa(e,t,n){var r=e.node(n),o=r.parent,i=!0,s=t.edge(n,o),a=0;return s||(i=!1,s=t.edge(o,n)),a=s.weight,t.nodeEdges(n).forEach(l=>{var c=l.v===n,u=c?l.w:l.v;if(u!==o){var d=c===i,h=t.edge(l).weight;if(a+=d?h:-h,Rg(e,n,u)){var m=e.edge(n,u).cutvalue;a+=d?-m:m}}}),a}function bo(e,t){arguments.length<2&&(t=e.nodes()[0]),ja(e,{},1,t)}function ja(e,t,n,r,o){var i=n,s=e.node(r);return t[r]=!0,e.neighbors(r).forEach(a=>{Object.hasOwn(t,a)||(n=ja(e,t,n,a,r))}),s.low=i,s.lim=n++,o?s.parent=o:delete s.parent,n}function Ma(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function Oa(e,t,n){var r=n.v,o=n.w;t.hasEdge(r,o)||(r=n.w,o=n.v);var i=e.node(r),s=e.node(o),a=i,l=!1;i.lim>s.lim&&(a=s,l=!0);var c=t.edges().filter(u=>l===Ms(e,e.node(u.v),a)&&l!==Ms(e,e.node(u.w),a));return c.reduce((u,d)=>js(t,d)<js(t,u)?d:u)}function Da(e,t,n,r){var o=n.v,i=n.w;e.removeEdge(o,i),e.setEdge(r.v,r.w,{}),bo(e),xo(e,t),Lg(e,t)}function Lg(e,t){var n=e.nodes().find(o=>!t.node(o).parent),r=Og(e,n);r=r.slice(1),r.forEach(o=>{var i=e.node(o).parent,s=t.edge(o,i),a=!1;s||(s=t.edge(i,o),a=!0),t.node(o).rank=t.node(i).rank+(a?s.minlen:-s.minlen)})}function Rg(e,t,n){return e.hasEdge(t,n)}function Ms(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var Bg=rr,Fa=Bg.longestPath,zg=Ta,Vg=$g,Hg=Gg;function Gg(e){var t=e.graph().ranker;if(t instanceof Function)return t(e);switch(e.graph().ranker){case"network-simplex":Os(e);break;case"tight-tree":Wg(e);break;case"longest-path":Yg(e);break;case"none":break;default:Os(e)}}var Yg=Fa;function Wg(e){Fa(e),zg(e)}function Os(e){Vg(e)}var Xg=Ug;function Ug(e){let t=Kg(e);e.graph().dummyChains.forEach(n=>{let r=e.node(n),o=r.edgeObj,i=qg(e,t,o.v,o.w),s=i.path,a=i.lca,l=0,c=s[l],u=!0;for(;n!==o.w;){if(r=e.node(n),u){for(;(c=s[l])!==a&&e.node(c).maxRank<r.rank;)l++;c===a&&(u=!1)}if(!u){for(;l<s.length-1&&e.node(c=s[l+1]).minRank<=r.rank;)l++;c=s[l]}e.setParent(n,c),n=e.successors(n)[0]}})}function qg(e,t,n,r){let o=[],i=[],s=Math.min(t[n].low,t[r].low),a=Math.max(t[n].lim,t[r].lim),l,c;l=n;do l=e.parent(l),o.push(l);while(l&&(t[l].low>s||a>t[l].lim));for(c=l,l=r;(l=e.parent(l))!==c;)i.push(l);return{path:o.concat(i.reverse()),lca:c}}function Kg(e){let t={},n=0;function r(o){let i=n;
34e.children(o).forEach(r),t[o]={low:i,lim:n++}}return e.children().forEach(r),t}let Xn=ve;var Zg={run:Qg,cleanup:ty};function Qg(e){let t=Xn.addDummyNode(e,"root",{},"_root"),n=Jg(e),r=Object.values(n),o=Xn.applyWithChunking(Math.max,r)-1,i=2*o+1;e.graph().nestingRoot=t,e.edges().forEach(a=>e.edge(a).minlen*=i);let s=ey(e)+1;e.children().forEach(a=>$a(e,t,i,s,o,n,a)),e.graph().nodeRankFactor=i}function $a(e,t,n,r,o,i,s){let a=e.children(s);if(!a.length){s!==t&&e.setEdge(t,s,{weight:0,minlen:n});return}let l=Xn.addBorderNode(e,"_bt"),c=Xn.addBorderNode(e,"_bb"),u=e.node(s);e.setParent(l,s),u.borderTop=l,e.setParent(c,s),u.borderBottom=c,a.forEach(d=>{$a(e,t,n,r,o,i,d);let h=e.node(d),m=h.borderTop?h.borderTop:d,g=h.borderBottom?h.borderBottom:d,y=h.borderTop?r:2*r,b=m!==g?1:o-i[s]+1;e.setEdge(l,m,{weight:y,minlen:b,nestingEdge:!0}),e.setEdge(g,c,{weight:y,minlen:b,nestingEdge:!0})}),e.parent(s)||e.setEdge(t,l,{weight:0,minlen:o+i[s]})}function Jg(e){var t={};function n(r,o){var i=e.children(r);i&&i.length&&i.forEach(s=>n(s,o+1)),t[r]=o}
vendor: 1,135 bytes, line 34
34return e.children().forEach(r=>n(r,1)),t}function ey(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function ty(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{var r=e.edge(n);r.nestingEdge&&e.removeEdge(n)})}let ny=ve;var ry=oy;function oy(e){function t(n){let r=e.children(n),o=e.node(n);if(r.length&&r.forEach(t),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let i=o.minRank,s=o.maxRank+1;i<s;++i)Ds(e,"borderLeft","_bl",n,o,i),Ds(e,"borderRight","_br",n,o,i)}}e.children().forEach(t)}function Ds(e,t,n,r,o,i){let s={width:0,height:0,rank:i,borderType:t},a=o[t][i-1],l=ny.addDummyNode(e,"border",s,n);o[t][i]=l,e.setParent(l,r),a&&e.setEdge(a,l,{weight:1})}var sy={adjust:iy,undo:ay};function iy(e){let t=e.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Pa(e)}function ay(e){let t=e.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&ly(e),(t==="lr"||t==="rl")&&(cy(e),Pa(e))}function Pa(e){e.nodes().forEach(t=>Fs(e.node(t))),e.edges().forEach(t=>Fs(e.edge(t)))}function Fs(e){let t=e.width;e.width=e.height,e.height=t}function ly(e){e.nodes().forEach(t=>
34Ir(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);n.points.forEach(Ir),Object.hasOwn(n,"y")&&Ir(n)})}function Ir(e){e.y=-e.y}function cy(e){e.nodes().forEach(t=>Tr(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);n.points.forEach(Tr),Object.hasOwn(n,"x")&&Tr(n)})}function Tr(e){let t=e.x;e.x=e.y,e.y=t}let $s=ve;var uy=dy;function dy(e){let t={},n=e.nodes().filter(l=>!e.children(l).length),r=n.map(l=>e.node(l).rank),o=$s.applyWithChunking(Math.max,r),i=$s.range(o+1).map(()=>[]);function s(l){if(t[l])return;t[l]=!0;let c=e.node(l);i[c.rank].push(l),e.successors(l).forEach(s)}return n.sort((l,c)=>e.node(l).rank-e.node(c).rank).forEach(s),i}let fy=ve.zipObject;var hy=my;function my(e,t){let n=0;for(let r=1;r<t.length;++r)n+=py(e,t[r-1],t[r]);return n}function py(e,t,n){let r=fy(n,n.map((c,u)=>u)),o=t.flatMap(c=>e.outEdges(c).map(u=>({pos:r[u.w],weight:e.edge(u).weight})).sort((u,d)=>u.pos-d.pos)),i=1;for(;i<n.length;)i<<=1;let s=2*i-1;i-=1;let a=new Array(s).fill(0),l=0;return o.forEach(c=>{let u=c.pos+i;a[u]+=c.weight;let d=0;for(;u>0;)u%2&&(d+=a[u+1]),u=u-1>>1,a[u]+=c.weight;l+=c.weight*d}),l}var gy=yy;function yy(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(r.length){let o=r.reduce((i,s)=>{let a=e.edge(s),l=e.node(s.v);return{sum:i.sum+a.weight*l.order,weight:i.weight+a.weight}},{sum:0,weight:0});return{v:n,barycenter:o.sum/o.weight,weight:o.weight}}else return{v:n}})}let wy=ve;var xy=by;function by(e,t){let n={};e.forEach((o,i)=>{let s=n[o.v]={indegree:0,in:[],out:[],vs:[o.v],i};o.barycenter!==void 0&&(s.barycenter=o.barycenter,s.weight=o.weight)}
vendor: 8,666 bytes, line 34
34),t.edges().forEach(o=>{let i=n[o.v],s=n[o.w];i!==void 0&&s!==void 0&&(s.indegree++,i.out.push(n[o.w]))});let r=Object.values(n).filter(o=>!o.indegree);return vy(r)}function vy(e){let t=[];function n(o){return i=>{i.merged||(i.barycenter===void 0||o.barycenter===void 0||i.barycenter>=o.barycenter)&&_y(o,i)}}function r(o){return i=>{i.in.push(o),--i.indegree===0&&e.push(i)}}for(;e.length;){let o=e.pop();t.push(o),o.in.reverse().forEach(n(o)),o.out.forEach(r(o))}return t.filter(o=>!o.merged).map(o=>wy.pick(o,["vs","i","barycenter","weight"]))}function _y(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}let Ey=ve;var Ny=Sy;function Sy(e,t){let n=Ey.partition(e,u=>Object.hasOwn(u,"barycenter")),r=n.lhs,o=n.rhs.sort((u,d)=>d.i-u.i),i=[],s=0,a=0,l=0;r.sort(ky(!!t)),l=Ps(i,o,l),r.forEach(u=>{l+=u.vs.length,i.push(u.vs),s+=u.barycenter*u.weight,a+=u.weight,l=Ps(i,o,l)});let c={vs:i.flat(!0)};return a&&(c.barycenter=s/a,c.weight=a),c}function Ps(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function ky(e){return(t,n)=>t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}let Cy=gy,Iy=xy,Ty=Ny;var Ay=La;function La(e,t,n,r){let o=e.children(t),i=e.node(t),s=i?i.borderLeft:void 0,a=i?i.borderRight:void 0,l={};s&&(o=o.filter(h=>h!==s&&h!==a));let c=Cy(e,o);c.forEach(h=>{if(e.children(h.v).length){let m=La(e,h.v,n,r);l[h.v]=m,Object.hasOwn(m,"barycenter")&&My(h,m)}});let u=Iy(c,n);jy(u,l);let d=Ty(u,r);if(s&&(d.vs=[s,d.vs,a].flat(!0),e.predecessors(s).length)){let h=e.node(e.predecessors(s)[0]),m=e.node(e.predecessors(a)[0]);Object.hasOwn(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+h.order+m.order)/(d.weight+2),d.weight+=2}return d}function jy(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function My(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}let Oy=We.Graph,Dy=ve;var Fy=$y;function $y(e,t,n,r){r||(r=e.nodes());let o=Py(e),i=new Oy({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(s=>e.node(s));return r.forEach(s=>{let a=e.node(s),l=e.parent(s);(a.rank===t||a.minRank<=t&&t<=a.maxRank)&&(i.setNode(s),i.setParent(s,l||o),e[n](s).forEach(c=>{let u=c.v===s?c.w:c.v,d=i.edge(u,s),h=d!==void 0?d.weight:0;i.setEdge(u,s,{weight:e.edge(c).weight+h})}),Object.hasOwn(a,"minRank")&&i.setNode(s,{borderLeft:a.borderLeft[t],borderRight:a.borderRight[t]}))}),i}function Py(e){for(var t;e.hasNode(t=Dy.uniqueId("_root")););return t}var Ly=Ry;function Ry(e,t,n){let r={},o;n.forEach(i=>{let s=e.parent(i),a,l;for(;s;){if(a=e.parent(s),a?(l=r[a],r[a]=s):(l=o,o=s),l&&l!==s){t.setEdge(l,s);return}s=a}})}let By=uy,zy=hy,Vy=Ay,Hy=Fy,Gy=Ly,Yy=We.Graph,An=ve;var Wy=Ra;function Ra(e,t){if(t&&typeof t.customOrder=="function"){t.customOrder(e,Ra);return}let n=An.maxRank(e),r=Ls(e,An.range(1,n+1),"inEdges"),o=Ls(e,An.range(n-1,-1,-1),"outEdges"),i=By(e);if(Rs(e,i),t&&t.disableOptimalOrderHeuristic)return;let s=Number.POSITIVE_INFINITY,a;for(let l=0,c=0;c<4;++l,++c){Xy(l%2?r:o,l%4>=2),i=An.buildLayerMatrix(e);let u=zy(e,i);u<s&&(c=0,a=Object.assign({},i),s=u)}Rs(e,a)}function Ls(e,t,n){const r=new Map,o=(i,s)=>{r.has(i)||r.set(i,[]),r.get(i).push(s)};for(const i of e.nodes()){const s=e.node(i);if(typeof s.rank=="number"&&o(s.rank,i),typeof s.minRank=="number"&&typeof s.maxRank=="number")for(let a=s.minRank;a<=s.maxRank;a++)a!==s.rank&&o(a,i)}return t.map(function(i){return Hy(e,i,n,r.get(i)||[])})}function Xy(e,t){let n=new Yy;e.forEach(function(r){let o=r.graph().root,i=Vy(r,o,n,t);i.vs.forEach((s,a)=>r.node(s).order=a),Gy(r,n,i.vs)})}function Rs(e,t){Object.values(t).forEach(n=>n.forEach((r,o)=>e.node(r).order=o))}let Uy=We.Graph,ot=ve;var qy={positionX:Qy,findType1Conflicts:Ba,findType2Conflicts:za,addConflict:vo,hasConflict:Va,verticalAlignment:Ha,horizontalCompaction:Ga,alignCoordinates:Wa,findSmallestWidthAlignment:Ya,balance:Xa};function Ba(e,t){let n={};function r(o,i){let s=0,a=0,l=o.length,c=i[i.length-1];return i.forEach((u,d)=>{let h=Ky(e,u),m=h?e.node(h).order:l;(h||u===c)&&(i.slice(a,d+1).forEach(g=>{e.predecessors(g).forEach(y=>{let b=e.node(y),w=b.order;(w<s||m<w)&&!(b.dummy&&e.node(g).dummy)&&vo(n,y,g)})}),a=d+1,s=m)}),i}return t.length&&t.reduce(r),n}function za(e,t){let n={};function r(i,s,a,l,c){let u;ot.range(s,a).forEach(d=>{u=i[d],e.node(u).dummy&&e.predecessors(u).forEach(h=>{let m=e.node(h);m.dummy&&(m.order<l||m.order>c)&&vo(n,h,u)})})}function o(i,s){let a=-1,l,c=0;return s.forEach((u,d)=>{if(e.node(u).dummy==="border"){let h=e.predecessors(u);h.length&&(l=e.node(h[0]).order,r(s,c,d,a,l),c=d,a=l)}r(s,c,s.length,l,i.length)}),s}return t.length&&t.reduce(o),n}function Ky(e,t){if(e.node(t).dummy)return e.predecessors(t).find(n=>e.node(n).dummy)}function vo(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];r||(e[t]=r={}),r[n]=!0}function Va(e,t,n){if(t>n){let r=t;t=n,n=r}return!!e[t]&&Object.hasOwn(e[t],n)}function Ha(e,t,n,r){let o={},i={},s={};return t.forEach(a=>{a.forEach((l,c)=>{o[l]=l,i[l]=l,s[l]=c})}),t.forEach(a=>{let l=-1;a.forEach(c=>{let u=r(c);if(u.length){u=u.sort((h,m)=>s[h]-s[m]);let d=(u.length-1)/2;for(let h=Math.floor(d),m=Math.ceil(d);h<=m;++h){let g=u[h];i[c]===c&&l<s[g]&&!Va(n,c,g)&&(i[g]=c,i[c]=o[c]=o[g],l=s[g])}}})}),{root:o,align:i}}function Ga(e,t,n,r,o){let i={},s=Zy(e,t,n,o),a=o?"borderLeft":"borderRight";function l(d,h){let m=s.nodes(),g=m.pop(),y={};for(;g;)y[g]?d(g):(y[g]=!0,m.push(g),m=m.concat(h(g))),g=m.pop()}function c(d){i[d]=s.inEdges(d).reduce((h,m)=>Math.max(h,i[m.v]+s.edge(m)),0)}function u(d){let h=s.outEdges(d).reduce((g,y)=>Math.min(g,i[y.w]-s.edge(y)),Number.POSITIVE_INFINITY),m=e.node(d);h!==Number.POSITIVE_INFINITY&&m.borderType!==a&&(i[d]=Math.max(i[d],h))}return l(c,s.predecessors.bind(s)),l(u,s.successors.bind(s)),Object.keys(r).forEach(d=>i[d]=i[n[d]]),i}function Zy(e,t,n,r){let o=new Uy,i=e.graph(),s=Jy(i.nodesep,i.edgesep,r);return t.forEach(a=>{let l;a.forEach(c=>{let u=n[c];if(o.setNode(u),l){var d=n[l],h=o.edge(d,u);o.setEdge(d,u,Math.max(s(e,c,l),h||0))}l=c})}),o}function Ya(e,t){return Object.values(t).reduce((n,r)=>{let o=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([a,l])=>{let c=ew(e,a)/2;o=Math.max(l+c,o),i=Math.min(l-c,i)});const s=o-i;return s<n[0]&&(n=[s,r]),n},[Number.POSITIVE_INFINITY,null])[1]}function Wa(e,t){let n=Object.values(t),r=ot.applyWithChunking(Math.min,n),o=ot.applyWithChunking(Math.max,n);["u","d"].forEach(i=>{["l","r"].forEach(s=>{let a=i+s,l=e[a];if(l===t)return;let c=Object.values(l),u=r-ot.applyWithChunking(Math.min,c);s!=="l"&&(u=o-ot.applyWithChunking(Math.max,c)),u&&(e[a]=ot.mapValues(l,d=>d+u))})})}function Xa(e,t){return ot.mapValues(e.ul,(n,r)=>{if(t)return e[t.toLowerCase()][r];{let o=Object.values(e).map(i=>i[r]).sort((i,s)=>i-s);return(o[1]+o[2])/2}})}function Qy(e){let t=ot.buildLayerMatrix(e),n=Object.assign(Ba(e,t),za(e,t)),r={},o;["u","d"].forEach(s=>{o=s==="u"?t:Object.values(t).reverse(),["l","r"].forEach(a=>{a==="r"&&(o=o.map(d=>Object.values(d).reverse()));let l=(s==="u"?e.predecessors:e.successors).bind(e),c=Ha(e,o,n,l),u=Ga(e,o,c.root,c.align,a==="r");a==="r"&&(u=ot.mapValues(u,d=>-d)),r[s+a]=u})});let i=Ya(e,r);return Wa(r,i),Xa(r,e.graph().align)}function Jy(e,t,n){return(r,o,i)=>{let s=r.node(o),a=r.node(i),l=0,c;if(l+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":c=-s.width/2;break;case"r":c=s.width/2;break}if(c&&(l+=n?c:-c),c=0,l+=(s.dummy?t:e)/2,l+=(a.dummy?t:e)/2,l+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":c=a.width/2;break;case"r":c=-a.width/2;break}return c&&(l+=n?c:-c),c=0,l}}function ew(e,t){return e.node(t).width}let Ua=ve,tw=qy.positionX;var nw=rw;function rw(e){e=Ua.asNonCompoundGraph(e),ow(e),Object.entries(tw(e)).forEach(([t,n])=>e.node(t).x=n)}function ow(e){let t=Ua.buildLayerMatrix(e),n=e.graph().ranksep,r=0;t.forEach(o=>{const i=o.reduce((s,a)=>{const l=e.node(a).height;return s>l?s:l},0);o.forEach(s=>e.node(s).y=r+i/2),r+=i+n})}let Bs=mg,zs=xg,sw=Hg,iw=ve.normalizeRanks,aw=Xg,lw=ve.removeEmptyRanks,Vs=Zg,cw=ry,Hs=sy,uw=Wy,dw=nw,Re=ve,fw=We.Graph;var hw=mw;function mw(e,t){let n=t&&t.debugTiming?Re.time:Re.notime;n("layout",()=>{let r=n(" buildLayoutGraph",()=>Nw(e));n(" runLayout",()=>pw(r,n,t)),n(" updateInputGraph",()=>gw(e,r))})}function pw(e,t,n){t(" makeSpaceForEdgeLabels",()=>Sw(e)),t(" removeSelfEdges",()=>
34Dw(e)),t(" acyclic",()=>Bs.run(e)),t(" nestingGraph.run",()=>Vs.run(e)),t(" rank",()=>sw(Re.asNonCompoundGraph(e))),t(" injectEdgeLabelProxies",()=>kw(e)),t(" removeEmptyRanks",()=>lw(e)),t(" nestingGraph.cleanup",()=>Vs.cleanup(e)),t(" normalizeRanks",()=>iw(e)),t(" assignRankMinMax",()=>Cw(e)),t(" removeEdgeLabelProxies",()=>Iw(e)),t(" normalize.run",()=>zs.run(e)),t(" parentDummyChains",()=>aw(e)),t(" addBorderSegments",()=>cw(e)),t(" order",()=>uw(e,n)),t(" insertSelfEdges",()=>Fw(e)),t(" adjustCoordinateSystem",()=>Hs.adjust(e)),t(" position",()=>dw(e)),t(" positionSelfEdges",()=>$w(e)),t(" removeBorderNodes",()=>Ow(e)),t(" normalize.undo",()=>zs.undo(e)),t(" fixupEdgeLabelCoords",()=>jw(e)),t(" undoCoordinateSystem",()=>Hs.undo(e)),t(" translateGraph",()=>Tw(e)),t(" assignNodeIntersects",()=>Aw(e)),t(" reversePoints",()=>Mw(e)),t(" acyclic.undo",()=>Bs.undo(e))}function gw(e,t){e.nodes().forEach(n=>{let r=e.node(n),o=t.node(n);r&&(r.x=o.x,r.y=o.y,r.rank=o.rank,t.children(n).length&&(r.width=o.width,r.height=o.height))}
vendor: 4,355 bytes, line 34
34),e.edges().forEach(n=>{let r=e.edge(n),o=t.edge(n);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}let yw=["nodesep","edgesep","ranksep","marginx","marginy"],ww={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},xw=["acyclicer","ranker","rankdir","align"],bw=["width","height","rank"],Gs={width:0,height:0},vw=["minlen","weight","width","height","labeloffset"],_w={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Ew=["labelpos"];function Nw(e){let t=new fw({multigraph:!0,compound:!0}),n=jr(e.graph());return t.setGraph(Object.assign({},ww,Ar(n,yw),Re.pick(n,xw))),e.nodes().forEach(r=>{let o=jr(e.node(r));const i=Ar(o,bw);Object.keys(Gs).forEach(s=>{i[s]===void 0&&(i[s]=Gs[s])}),t.setNode(r,i),t.setParent(r,e.parent(r))}),e.edges().forEach(r=>{let o=jr(e.edge(r));t.setEdge(r,Object.assign({},_w,Ar(o,vw),Re.pick(o,Ew)))}),t}function Sw(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function kw(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v),i={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};Re.addDummyNode(e,"edge-proxy",i,"_ep")}})}function Cw(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function Iw(e){e.nodes().forEach(t=>{let n=e.node(t);n.dummy==="edge-proxy"&&(e.edge(n.e).labelRank=n.rank,e.removeNode(t))})}function Tw(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,o=0,i=e.graph(),s=i.marginx||0,a=i.marginy||0;function l(c){let u=c.x,d=c.y,h=c.width,m=c.height;t=Math.min(t,u-h/2),n=Math.max(n,u+h/2),r=Math.min(r,d-m/2),o=Math.max(o,d+m/2)}e.nodes().forEach(c=>l(e.node(c))),e.edges().forEach(c=>{let u=e.edge(c);Object.hasOwn(u,"x")&&l(u)}),t-=s,r-=a,e.nodes().forEach(c=>{let u=e.node(c);u.x-=t,u.y-=r}),e.edges().forEach(c=>{let u=e.edge(c);u.points.forEach(d=>{d.x-=t,d.y-=r}),Object.hasOwn(u,"x")&&(u.x-=t),Object.hasOwn(u,"y")&&(u.y-=r)}),i.width=n-t+s,i.height=o-r+a}function Aw(e){e.edges().forEach(t=>{let n=e.edge(t),r=e.node(t.v),o=e.node(t.w),i,s;n.points?(i=n.points[0],s=n.points[n.points.length-1]):(n.points=[],i=o,s=r),n.points.unshift(Re.intersectRect(r,i)),n.points.push(Re.intersectRect(o,s))})}function jw(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}function Mw(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function Ow(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),o=e.node(n.borderBottom),i=e.node(n.borderLeft[n.borderLeft.length-1]),s=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(s.x-i.x),n.height=Math.abs(o.y-r.y),n.x=i.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function Dw(e){e.edges().forEach(t=>{if(t.v===t.w){var n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function Fw(e){var t=Re.buildLayerMatrix(e);t.forEach(n=>{var r=0;n.forEach((o,i)=>{var s=e.node(o);s.order=i+r,(s.selfEdges||[]).forEach(a=>{Re.addDummyNode(e,"selfedge",{width:a.label.width,height:a.label.height,rank:s.rank,order:i+ ++r,e:a.e,label:a.label},"_se")}),delete s.selfEdges})})}function $w(e){e.nodes().forEach(t=>{var n=e.node(t);if(n.dummy==="selfedge"){var r=e.node(n.e.v),o=r.x+r.width/2,i=r.y,s=n.x-o,a=r.height/2;e.setEdge(n.e,n.label),e.removeNode(t),n.label.points=[{x:o+2*s/3,y:i-a},{x:o+5*s/6,y:i-a},{x:o+s,y:i},{x:o+5*s/6,y:i+a},{x:o+2*s/3,y:i+a}],n.label.x=n.x,n.label.y=n.y}})}function Ar(e,t){return Re.mapValues(Re.pick(e,t),Number)}function jr(e){var t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}let Pw=ve,Lw=We.Graph;var Rw={debugOrdering:Bw};function Bw(e){let t=Pw.buildLayerMatrix(e),n=new Lw({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{n.setNode(r,{label:r}),n.setParent(r,"layer"+e.node(r).rank)}
34),e.edges().forEach(r=>n.setEdge(r.v,r.w,{},r.name)),t.forEach((r,o)=>{let i="layer"+o;n.setNode(i,{rank:"same"}),r.reduce((s,a)=>(n.setEdge(s,a,{style:"invis"}),a))}),n}var zw="1.1.8",Vw={graphlib:We,layout:hw,debug:Rw,util:{time:ve.time,notime:ve.notime},version:zw};const jn=Us(Vw),dn={paid_social:{label:"Paid Social",description:"Paid social media advertising",order:1},organic_social:{label:"Organic Social",description:"Organic social media posts",order:2},paid_search:{label:"Paid Search",description:"Search engine advertising",order:3},content:{label:"Content",description:"Blogs, videos, podcasts",order:4},email_sms:{label:"Email & SMS",description:"Direct messaging channels",order:5},website:{label:"Website",description:"Website touchpoints",order:6},messaging:{label:"Messaging",description:"Chat and messaging",order:7},offline:{label:"Offline",description:"Traditional marketing",order:8}},qt=[{id:"facebook_ads",name:"Facebook Ads",shortName:"FB Ad",category:"paid_social",iconId:"facebook",color:"#1877F2",defaultTemperature:"cold",temperatureSuitability:["cold","warm","hot","existing"],description:"Paid Facebook advertising",order:1},{id:"instagram_ads",name:"Instagram Ads",shortName:"IG Ad",category:"paid_social",iconId:"instagram",color:"#E4405F",defaultTemperature:"cold",temperatureSuitability:["cold","warm","hot"],description:"Paid Instagram advertising",order:2},{id:"linkedin_ads",name:"LinkedIn Ads",shortName:"LI Ad",category:"paid_social",iconId:"linkedin",color:"#0A66C2",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Paid LinkedIn advertising",order:3},{id:"youtube_ads",name:"YouTube Ads",shortName:"YT Ad",category:"paid_social",iconId:"youtube",color:"#FF0000",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"YouTube video advertising",order:4},{id:"tiktok_ads",name:"TikTok Ads",shortName:"TT Ad",category:"paid_social",iconId:"tiktok",color:"#000000",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"TikTok video advertising",order:5},{id:"twitter_ads",name:"X/Twitter Ads",shortName:"X Ad",category:"paid_social",iconId:"twitter",color:"#1DA1F2",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"X/Twitter advertising",order:6},{id:"pinterest_promoted",name:"Pinterest Ads",shortName:"Pin Ad",category:"paid_social",iconId:"pinterest",color:"#E60023",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Promoted Pinterest pins",order:7},{id:"snapchat_ads",name:"Snapchat Ads",shortName:"Snap Ad",category:"paid_social",iconId:"snapchat",color:"#FFFC00",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Snapchat advertising",order:8},{id:"reddit_promoted",name:"Reddit Ads",shortName:"Reddit Ad",category:"paid_social",iconId:"reddit",color:"#FF4500",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Reddit promoted posts",order:9},{id:"facebook_posts",name:"Facebook Post",shortName:"FB Post",category:"organic_social",iconId:"facebook",color:"#1877F2",defaultTemperature:"warm",temperatureSuitability:["cold","warm","existing"],description:"Organic Facebook content",order:1},{id:"instagram_posts",name:"Instagram Post",shortName:"IG Post",category:"organic_social",iconId:"instagram",color:"#E4405F",defaultTemperature:"warm",temperatureSuitability:["cold","warm","existing"],description:"Organic Instagram content",order:2},{id:"instagram_story",name:"Instagram Story",shortName:"IG Story",category:"organic_social",iconId:"instagram",color:"#E4405F",defaultTemperature:"warm",temperatureSuitability:["warm","hot","existing"],description:"Instagram Stories",order:3},{id:"instagram_reel",name:"Instagram Reel",shortName:"IG Reel",category:"organic_social",iconId:"instagram",color:"#E4405F",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Instagram Reels",order:4},{id:"linkedin_post",name:"LinkedIn Post",shortName:"LI Post",category:"organic_social",iconId:"linkedin",color:"#0A66C2",defaultTemperature:"warm",temperatureSuitability:["cold","warm","existing"],description:"Organic LinkedIn content",order:5},{id:"twitter_posts",name:"X/Twitter Post",shortName:"X Post",category:"organic_social",iconId:"twitter",color:"#1DA1F2",defaultTemperature:"warm",temperatureSuitability:["cold","warm","existing"],description:"Organic X/Twitter content",order:6},{id:"tiktok_video",name:"TikTok Video",shortName:"TikTok",category:"organic_social",iconId:"tiktok",color:"#000000",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Organic TikTok content",order:7},{id:"youtube_video",name:"YouTube Video",shortName:"YouTube",category:"organic_social",iconId:"youtube",color:"#FF0000",defaultTemperature:"cold",temperatureSuitability:["cold","warm","existing"],description:"Organic YouTube content",order:8},{id:"pinterest_pins",name:"Pinterest Pin",shortName:"Pin",category:"organic_social",iconId:"pinterest",color:"#E60023",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Organic Pinterest pins",order:9},{id:"reddit_posts",name:"Reddit Post",shortName:"Reddit",category:"organic_social",iconId:"reddit",color:"#FF4500",defaultTemperature:"warm",temperatureSuitability:["cold","warm"],description:"Organic Reddit content",order:10},{id:"google_search",name:"Google Search Ads",shortName:"Google Ad",category:"paid_search",iconId:"google",color:"#4285F4",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Google Search advertising",order:1},{id:"google_display",name:"Google Display Ads",shortName:"Display Ad",category:"paid_search",iconId:"google",color:"#4285F4",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Google Display Network ads",order:2},{id:"google_shopping",name:"Google Shopping",shortName:"Shopping",category:"paid_search",iconId:"shopping",color:"#4285F4",defaultTemperature:"hot",temperatureSuitability:["warm","hot"],description:"Google Shopping ads",order:3},{id:"bing_ads",name:"Bing/Microsoft Ads",shortName:"Bing Ad",category:"paid_search",iconId:"microsoft",color:"#00A4EF",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Microsoft Advertising",order:4},{id:"blogs",name:"Blog Post",shortName:"Blog",category:"content",iconId:"filetext",color:"#10B981",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Blog articles and content",order:1},{id:"articles",name:"Article",shortName:"Article",category:"content",iconId:"newspaper",color:"#6B7280",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Long-form articles",order:2},{id:"podcast",name:"Podcast Episode",shortName:"Podcast",category:"content",iconId:"headphones",color:"#8B5CF6",defaultTemperature:"warm",temperatureSuitability:["cold","warm","existing"],description:"Podcast content",order:3},{id:"webinars",name:"Webinar",shortName:"Webinar",category:"content",iconId:"video",color:"#EC4899",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Live or recorded webinars",order:4},{id:"ebook",name:"eBook/Guide",shortName:"eBook",category:"content",iconId:"book",color:"#F59E0B",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Downloadable guides",order:5},{id:"case_study",name:"Case Study",shortName:"Case Study",category:"content",iconId:"briefcase",color:"#0EA5E9",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Customer success stories",order:6},{id:"infographic",name:"Infographic",shortName:"Infographic",category:"content",iconId:"barchart",color:"#14B8A6",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Visual data content",order:7},{id:"email_marketing",name:"Marketing Email",shortName:"Email",category:"email_sms",iconId:"mail",color:"#6366F1",defaultTemperature:"warm",temperatureSuitability:["warm","hot","existing"],description:"Email marketing campaigns",order:1},{id:"email_welcome",name:"Welcome Email",shortName:"Welcome",category:"email_sms",iconId:"mailopen",color:"#22C55E",defaultTemperature:"warm",temperatureSuitability:["warm"],description:"Welcome/onboarding emails",order:2},{id:"email_nurture",name:"Nurture Sequence",shortName:"Nurture",category:"email_sms",iconId:"mails",color:"#A855F7",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Email nurture sequences",order:3},{id:"email_promo",name:"Promotional Email",shortName:"Promo",category:"email_sms",iconId:"tag",color:"#EF4444",defaultTemperature:"hot",temperatureSuitability:["hot","existing"],description:"Promotional/sales emails",order:4},{id:"email_newsletter",name:"Newsletter",shortName:"Newsletter",category:"email_sms",iconId:"newspaper",color:"#0EA5E9",defaultTemperature:"existing",temperatureSuitability:["warm","existing"],description:"Regular newsletters",order:5},{id:"sms",name:"SMS/Text",shortName:"SMS",category:"email_sms",iconId:"messagesquare",color:"#8B5CF6",defaultTemperature:"hot",temperatureSuitability:["hot","existing"],description:"SMS text messaging",order:6},{id:"push_notifications",name:"Push Notification",shortName:"Push",category:"email_sms",iconId:"bell",color:"#F97316",defaultTemperature:"hot",temperatureSuitability:["hot","existing"],description:"App push notifications",order:7},{id:"landing_page",name:"Landing Page",shortName:"Landing",category:"website",iconId:"layout",color:"#F59E0B",defaultTemperature:"warm",temperatureSuitability:["cold","warm","hot"],description:"Dedicated landing pages",order:1},{id:"sales_page",name:"Sales Page",shortName:"Sales",category:"website",iconId:"megaphone",color:"#EF4444",defaultTemperature:"hot",temperatureSuitability:["hot"],description:"Sales/conversion pages",order:2},{id:"checkout",name:"Checkout Page",shortName:"Checkout",category:"website",iconId:"creditcard",color:"#22C55E",defaultTemperature:"hot",temperatureSuitability:["hot"],description:"Payment/checkout flow",order:3},{id:"thank_you",name:"Thank You Page",shortName:"Thank You",category:"website",iconId:"heart",color:"#EC4899",defaultTemperature:"existing",temperatureSuitability:["existing"],description:"Post-purchase thank you",order:4},{id:"opt_in",name:"Opt-in Page",shortName:"Opt-in",category:"website",iconId:"userplus",color:"#3B82F6",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Lead capture pages",order:5},{id:"popup",name:"Popup/Modal",shortName:"Popup",category:"website",iconId:"maximize",color:"#F97316",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Website popups",order:6},{id:"website",name:"Website Page",shortName:"Website",category:"website",iconId:"globe",color:"#6B7280",defaultTemperature:"cold",temperatureSuitability:["cold","warm","hot"],description:"General website pages",order:7},{id:"whatsapp_business",name:"WhatsApp Business",shortName:"WhatsApp",category:"messaging",iconId:"whatsapp",color:"#25D366",defaultTemperature:"warm",temperatureSuitability:["warm","hot","existing"],description:"WhatsApp Business messaging",order:1},{id:"messenger",name:"Facebook Messenger",shortName:"Messenger",category:"messaging",iconId:"messagesquare",color:"#0084FF",defaultTemperature:"warm",temperatureSuitability:["warm","hot","existing"],description:"Facebook Messenger",order:2},{id:"chatbot",name:"Website Chatbot",shortName:"Chatbot",category:"messaging",iconId:"bot",color:"#8B5CF6",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Automated chat support",order:3},{id:"live_chat",name:"Live Chat",shortName:"Live Chat",category:"messaging",iconId:"headset",color:"#10B981",defaultTemperature:"hot",temperatureSuitability:["hot","existing"],description:"Human live chat support",order:4},{id:"phone_calls",name:"Phone Call",shortName:"Phone",category:"offline",iconId:"phone",color:"#22C55E",defaultTemperature:"hot",temperatureSuitability:["hot","existing"],description:"Outbound phone calls",order:1},{id:"voicemail",name:"Voicemail Drop",shortName:"Voicemail",category:"offline",iconId:"voicemail",color:"#6366F1",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Ringless voicemail",order:2}
34,{id:"postcards",name:"Postcard",shortName:"Postcard",category:"offline",iconId:"mail",color:"#F59E0B",defaultTemperature:"warm",temperatureSuitability:["warm","hot","existing"],description:"Direct mail postcards",order:3},{id:"letters",name:"Direct Mail Letter",shortName:"Letter",category:"offline",iconId:"file",color:"#6B7280",defaultTemperature:"warm",temperatureSuitability:["warm","hot"],description:"Direct mail letters",order:4},{id:"flyers",name:"Flyer/Brochure",shortName:"Flyer",category:"offline",iconId:"filespreadsheet",color:"#0EA5E9",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Printed flyers/brochures",order:5},{id:"print_ads",name:"Print Ad",shortName:"Print Ad",category:"offline",iconId:"newspaper",color:"#374151",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Magazine/newspaper ads",order:6},{id:"billboards",name:"Billboard/OOH",shortName:"Billboard",category:"offline",iconId:"image",color:"#8B5CF6",defaultTemperature:"cold",temperatureSuitability:["cold"],description:"Out-of-home advertising",order:7},{id:"radio_ads",name:"Radio Ad",shortName:"Radio",category:"offline",iconId:"radio",color:"#EC4899",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Radio advertising",order:8},{id:"tv_commercials",name:"TV Commercial",shortName:"TV",category:"offline",iconId:"tv",color:"#3B82F6",defaultTemperature:"cold",temperatureSuitability:["cold","warm"],description:"Television advertising",order:9},{id:"trade_show",name:"Trade Show/Event",shortName:"Event",category:"offline",iconId:"users",color:"#14B8A6",defaultTemperature:"warm",temperatureSuitability:["cold","warm","hot"],description:"In-person events",order:10}];function Hw(){const e={paid_social:[],organic_social:[],paid_search:[],content:[],email_sms:[],website:[],messaging:[],offline:[]};return qt.forEach(t=>{e[t.category].push(t)}),Object.keys(e).forEach(t=>{e[t].sort((n,r)=>n.order-r.order)}),e}const Gw=[{id:"facebook",name:"Facebook",color:"#1877F2",iconId:"facebook"},{id:"instagram",name:"Instagram",color:"#E4405F",iconId:"instagram"},{id:"youtube",name:"YouTube",color:"#FF0000",iconId:"youtube"},{id:"linkedin",name:"LinkedIn",color:"#0A66C2",iconId:"linkedin"},{id:"twitter",name:"X/Twitter",color:"#1DA1F2",iconId:"twitter"}
34,{id:"tiktok",name:"TikTok",color:"#000000",iconId:"tiktok"},{id:"pinterest",name:"Pinterest",color:"#E60023",iconId:"pinterest"},{id:"snapchat",name:"Snapchat",color:"#FFFC00",iconId:"snapchat"},{id:"reddit",name:"Reddit",color:"#FF4500",iconId:"reddit"},{id:"google",name:"Google",color:"#4285F4",iconId:"google"},{id:"bing",name:"Bing",color:"#008373",iconId:"search"},{id:"email",name:"Email",color:"#EA4335",iconId:"mail"},{id:"sms",name:"SMS",color:"#22C55E",iconId:"phone"},{id:"whatsapp",name:"WhatsApp",color:"#25D366",iconId:"whatsapp"},{id:"messenger",name:"Messenger",color:"#006AFF",iconId:"messenger"},{id:"telegram",name:"Telegram",color:"#0088CC",iconId:"telegram"},{id:"website",name:"Website",color:"#8B5CF6",iconId:"globe"},{id:"blog",name:"Blog",color:"#F97316",iconId:"file-text"},{id:"podcast",name:"Podcast",color:"#8B5CF6",iconId:"mic"},{id:"offline",name:"Offline",color:"#6B7280",iconId:"map-pin"}];function Yw(){const e={};return qt.forEach(t=>{const n=t.iconId;e[n]||(e[n]=[]),e[n].push(t)}),Object.keys(e).forEach(t=>{e[t].sort((n,r)=>n.order-r.order)}),e}const He=250,on=10,ue={problem_unaware:{id:"problem_unaware",label:"Problem Unaware",subtitle:"Cold Audience",description:"They don't know they have a problem yet. Educational content only.",temperature:"cold",color:"#3B82F6",bgColor:"#DBEAFE",order:0,yStart:0,height:He},solution_unaware:{id:"solution_unaware",label:"Solution Unaware",subtitle:"Cold Audience",description:"They know the problem but not that solutions exist.",temperature:"cold",color:"#60A5FA",bgColor:"#DBEAFE",order:1,yStart:He+on,height:He},solution_aware:{id:"solution_aware",label:"Solution Aware",subtitle:"Warm Audience",description:"They know solutions exist. Show benefits and light proof.",temperature:"warm",color:"#F59E0B",bgColor:"#FEF3C7",order:2,yStart:(He+on)*2,height:He},your_solution_aware:{id:"your_solution_aware",label:"Your Solution Aware",subtitle:"Warm Audience",description:"They know about YOUR solution specifically. Testimonials and case studies.",temperature:"warm",color:"#FBBF24",bgColor:"#FEF3C7",order:3,yStart:(He+on)*3,height:He},most_aware:{id:"most_aware",label:"Most Aware",subtitle:"Hot Audience",description:"Ready to buy. Direct offers, urgency, strong CTAs.",temperature:"hot",color:"#EF4444",bgColor:"#FEE2E2",order:4,yStart:(He+on)*4,height:He},existing_customers:{id:"existing_customers",label:"Existing Customers",subtitle:"Current Customers",description:"Previous buyers. Retention, upsells, loyalty rewards.",temperature:"existing",color:"#10B981",bgColor:"#D1FAE5",order:5,yStart:(He+on)*5,height:He}},pe=["problem_unaware","solution_unaware","solution_aware","your_solution_aware","most_aware","existing_customers"],Bt=1200;function sn(e){return ue[e].temperature}const Ww=150,qa=120,Ur=4,Xw=80,Ka=10;function Ys(e){const t={problem_unaware:0,solution_unaware:0,solution_aware:0,your_solution_aware:0,most_aware:0,existing_customers:0};e.forEach(o=>{o.awarenessLevel&&t[o.awarenessLevel]!==void 0&&t[o.awarenessLevel]++});const n={};let r=0;return pe.forEach(o=>{const i=t[o],a=Math.ceil(i/Ur)*qa+Xw,l=Math.max(Ww,a);n[o]={bandId:o,yStart:r,height:l,nodeCount:i},r+=l+Ka}),{bands:n,totalHeight:r}}function Ws(e,t){for(const n of pe){const r=t.bands[n];if(e>=r.yStart&&e<r.yStart+r.height+Ka)return n}return e<0?"problem_unaware":"existing_customers"}function Uw(e,t,n=0){const r=t.bands[e],o=200,i=50,s=200,a=n%Ur,l=Math.floor(n/Ur),c=s+a*(o+i),u=r.yStart+60+l*qa;return{x:c,y:u}}const qw={facebook_ads:["landing_page","blogs","youtube_video","opt_in","ebook","webinars","lead_magnet"],instagram_ads:["landing_page","blogs","instagram_posts","opt_in","ebook"],linkedin_ads:["landing_page","blogs","case_study","webinars","ebook"],youtube_ads:["landing_page","youtube_video","opt_in","webinars"],tiktok_ads:["landing_page","tiktok_video","opt_in"],twitter_ads:["landing_page","blogs","opt_in"],google_search:["landing_page","sales_page","product_page"],google_display:["landing_page","blogs","opt_in"],blogs:["email_marketing","opt_in","landing_page","blogs","ebook","webinars"],articles:["email_marketing","opt_in","landing_page","blogs"],youtube_video:["opt_in","landing_page","email_marketing","youtube_video"],podcast:["opt_in","landing_page","email_marketing","ebook"],ebook:["email_welcome","email_nurture","landing_page"],web
34inars:["sales_page","email_marketing","checkout"],case_study:["sales_page","landing_page","email_marketing"],landing_page:["email_welcome","checkout","sales_page","opt_in"],opt_in:["email_welcome","thank_you","landing_page"],sales_page:["checkout","email_marketing"],checkout:["thank_you","email_welcome"],thank_you:["email_marketing","email_nurture"],email_marketing:["landing_page","sales_page","blogs","webinars","checkout"],email_welcome:["email_nurture","landing_page","blogs"],email_nurture:["sales_page","landing_page","email_promo","webinars"],email_promo:["sales_page","checkout","landing_page"],email_newsletter:["blogs","landing_page","sales_page"],sms:["landing_page","sales_page","checkout"],push_notifications:["landing_page","sales_page","blogs"],facebook_posts:["blogs","landing_page","opt_in","youtube_video"],instagram_posts:["blogs","landing_page","opt_in"],linkedin_post:["blogs","landing_page","case_study","webinars"],twitter_posts:["blogs","landing_page","opt_in"],tiktok_video:["landing_page","opt_in","youtube_video"],whatsapp_business:["sales_page","checkout","landing_page"],messenger:["sales_page","landing_page","blogs"],chatbot:["sales_page","landing_page","email_marketing"],live_chat:["checkout","sales_page"],phone_calls:["checkout","sales_page"],postcards:["landing_page","sales_page","opt_in"]};function Kw(e,t){const n=qw[e]||[],r=[],o=new Set;if(n.forEach(i=>{const s=qt.find(a=>a.id===i);s&&!o.has(s.id)&&(r.push(s),o.add(s.id))}),t){const s={cold:["cold","warm","hot"],warm:["warm","hot","existing"],hot:["hot","existing"],existing:["existing"]}[t];qt.forEach(a=>{!o.has(a.id)&&s.includes(a.defaultTemperature)&&(a.category==="website"||a.category==="email_sms")&&(r.push(a),o.add(a.id))})}return r.sort((i,s)=>{const a={cold:0,warm:1,hot:2,existing:3},l=a[i.defaultTemperature]-a[s.defaultTemperature];return l!==0?l:i.order-s.order})}const fn={facebook:Yl,instagram:Wl,linkedin:Ul,youtube:ql,twitter:Xl,tiktok:Vo,pinterest:Ho,snapchat:vn,reddit:vn,google:yt,shopping:Kl,microsoft:yt,filetext:Al,newspaper:Zl,headphones:Ql,video:Vo,book:cc,briefcase:jl,barchart:Jl,mail:ec,mailopen:tc,mails:fc,tag:Ml,messagesquare:vn,bell:Ol,layout:Dl,megaphone:Fl,creditcard:$l,heart:Pl,userplus:nc,maximize:Ks,globe:yt,whatsapp:vn,bot:rc,headset:dc,phone:Ll,voicemail:oc,file:sc,filespreadsheet:uc,image:Ho,radio:ic,tv:ac,users:Zr};qt.map(e=>({...e,icon:fn[e.iconId]||yt}));const qr={cold:{label:"Cold",color:"#3B82F6",bgColor:"#DBEAFE",icon:Pn},warm:{label:"Warm",color:"#F59E0B",bgColor:"#FEF3C7",icon:Ln},hot:{label:"Hot",color:"#EF4444",bgColor:"#FEE2E2",icon:Qr},existing:{label:"Existing",color:"#10B981",bgColor:"#D1FAE5",icon:Zr}},Za=x.createContext(null),Zw=({data:e,selected:t,id:n})=>{const r=qr[e.temperature],o=e.platform.icon,i=r.icon,s=x.useContext(Za),[a,l]=x.useState(!1),c=x.useMemo(()=>Kw(e.platform.id,e.temperature).map(h=>({...h,icon:fn[h.iconId]||yt})),[e.platform.id,e.temperature]),u=x.useCallback(h=>{s&&(s.onAddStep(n,h),l(!1))},[s,n]),d=x.useMemo(()=>{const h={};return c.forEach(m=>{var y;const g=((y=dn[m.category])==null?void 0:y.label)||m.category;h[g]||(h[g]=[]),h[g].push(m)}),h},[c]);return f.jsxs("div",{className:` 35 relative bg-white dark:bg-gray-800 rounded-lg shadow-lg border-2 p-4 min-w-[180px] 36 transition-all duration-200 cursor-grab active:cursor-grabbing 37 ${t?"ring-2 ring-orange-500 ring-offset-2":""} 38 `,style:{borderColor:e.platform.color},"data-testid":`flow-node-${n}`,children:[f.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[f.jsx("div",{className:"w-8 h-8 rounded-full flex items-center justify-center",style:{backgroundColor:e.platform.color+"20"},children:f.jsx(o,{className:"w-4 h-4",style:{color:e.platform.color}})}),f.jsx("span",{className:"font-medium text-sm","data-testid":`text-node-name-${n}`,children:e.platform.name})]}),f.jsx("div",{className:"flex items-center gap-1 mt-2",children:f.jsxs(rt,{variant:"outline",className:"text-xs flex items-center gap-1",style:{backgroundColor:r.bgColor,color:r.color,borderColor:r.color},"data-testid":`badge-temperature-${n}`,children:[f.jsx(i,{className:"w-3 h-3"}),r.label]})}),e.bundleId&&f.jsx("div",{className:"absolute -top-2 -right-2 w-5 h-5 bg-orange-500 rounded-full flex items-center justify-center","data-testid":`indicator-bundle-linked-${n}`,children:f.jsx(Mn,{className:"w-3 h-3 text-white"})}),f.jsx("div",{className:"absolute -top-1 left-1/2 transform -translate-x-1/2 w-3 h-3 bg-gray-300 dark:bg-gray-600 rounded-full border-2 border-white dark:border-gray-800"}),f.jsxs(Rl,{open:a,onOpenChange:l,children:[f.jsx(Bl,{asChild:!0,children:f.jsx("button",{className:"absolute -bottom-4 left-1/2 transform -translate-x-1/2 w-7 h-7 bg-orange-500 hover:bg-orange-600 rounded-full flex items-center justify-center shadow-md transition-all hover:scale-110 z-10","data-testid":`button-add-step-${n}`,onClick:h=>{h.stopPropagation(),l(!0)},children:f.jsx(Kr,{className:"w-4 h-4 text-white"})})}),f.jsxs(zl,{className:"w-64 p-0 max-h-80 overflow-hidden",side:"bottom",align:"center",onInteractOutside:()=>l(!1),children:[f.jsxs("div",{className:"p-3 border-b bg-gray-50 dark:bg-gray-800",children:[f.jsx("h4",{className:"font-medium text-sm",children:"Add Next Step"}),f.jsx("p",{className:"text-xs text-muted-foreground",children:"Select a platform to connect"})]}),f.jsx(qs,{className:"h-56",children:f.jsxs("div",{className:"p-2",children:[Object.entries(d).map(([h,m])=>f.jsxs("div",{className:"mb-2",children:[f.jsx("div",{className:"text-xs font-medium text-muted-foreground px-2 py-1",children:h}),m.slice(0,5).map(g=>{const y=g.icon;return f.jsxs("button",{className:"w-full flex items-center gap-2 p-2 rounded hover:bg-gray-100 dark:hover:bg-gray-700 text-left transition-colors",onClick:b=>{b.stopPropagation(),u(g)},"data-testid":`add-step-option-${g.id}`,children:[f.jsx("div",{className:"w-6 h-6 rounded flex items-center justify-center flex-shrink-0",style:{backgroundColor:g.color+"20"},children:f.jsx(y,{className:"w-3 h-3",style:{color:g.color}})}),f.jsx("span",{className:"text-sm truncate",children:g.name})]},g.id)})]},h)),c.length===0&&f.jsx("div",{className:"text-center py-4 text-sm text-muted-foreground",children:"No suggested next steps"})]})})]})]})]})},Qw={platform:Zw};function Jw(e,t){return e.filter(n=>n.data.awarenessLevel===t).length}function e0({dynamicLayout:e}){const{x:t,y:n,zoom:r}=Mm(),o=10;return f.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none",zIndex:0},"data-testid":"awareness-band-container",children:f.jsxs("svg",{style:{position:"absolute",top:0,left:0,transform:`translate(${t}px, ${n}px) scale(${r})`,transformOrigin:"0 0",width:Bt+100,height:e.totalHeight+100},children:[f.jsx("defs",{children:pe.map(i=>{const s=ue[i];return f.jsx("pattern",{id:`band-pattern-${i}`,patternUnits:"userSpaceOnUse",width:"20",height:"20",children:f.jsx("circle",{cx:"10",cy:"10",r:"1",fill:s.color,opacity:"0.15"})},`pattern-${i}`)})}),f.jsx("g",{className:"awareness-bands",children:pe.map((i,s)=>{const a=ue[i],l=e.bands[i],c=l.yStart,u=l.height;return f.jsxs("g",{children:[f.jsx("rect",{x:0,y:c,width:Bt,height:u,fill:a.bgColor,opacity:.3,"data-testid":`band-background-${i}`}
38),f.jsx("rect",{x:0,y:c,width:Bt,height:u,fill:`url(#band-pattern-${i})`}),f.jsxs("g",{transform:`translate(20, ${c+30})`,children:[f.jsx("rect",{x:-10,y:-20,width:160,height:50,rx:8,fill:"white",fillOpacity:.9,stroke:a.color,strokeWidth:1.5,strokeOpacity:.5}),f.jsx("text",{x:0,y:0,fill:a.color,fontSize:12,fontWeight:600,fontFamily:"system-ui, -apple-system, sans-serif",textTransform:"uppercase",letterSpacing:"0.05em","data-testid":`band-label-${i}`,children:a.label}),f.jsx("text",{x:0,y:18,fill:"#64748b",fontSize:10,fontFamily:"system-ui, -apple-system, sans-serif","data-testid":`band-subtitle-${i}`,children:a.subtitle})]}),l.nodeCount>0&&f.jsxs("text",{x:Bt-30,y:c+25,fill:a.color,fontSize:10,fontFamily:"system-ui, -apple-system, sans-serif",textAnchor:"end",opacity:.7,children:[l.nodeCount," node",l.nodeCount!==1?"s":""]}),s<pe.length-1&&f.jsx("line",{x1:0,y1:c+u+o/2,x2:Bt,y2:c+u+o/2,stroke:ue[pe[s+1]].color,strokeWidth:"2",strokeDasharray:"8 4",opacity:"0.4","data-testid":`band-divider-${i}`})]},i)})})]})})}const mt={problem_unaware:Pn,solution_unaware:Pn,solution_aware:Ln,your_solution_aware:Ln,most_aware:Qr,existing_customers:Zr},t0=[],n0=[];function Xs({platform:e,temperature:t,onDragStart:n,onClick:r}){const o=e.icon;return f.jsxs("div",{draggable:!0,onDragStart:i=>n(i,e,t),onClick:r,className:"flex items-center gap-2 p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-800 cursor-grab active:cursor-grabbing transition-colors group","data-testid":`draggable-platform-${e.id}`,children:[f.jsx(lc,{className:"w-3 h-3 text-gray-400 opacity-0 group-hover:opacity-100 transition-opacity"}),f.jsx("div",{className:"w-6 h-6 rounded flex items-center justify-center flex-shrink-0",style:{backgroundColor:e.color+"20"},children:f.jsx(o,{className:"w-3.5 h-3.5",style:{color:e.color}})}),f.jsx("span",{className:"text-sm flex-1",children:e.name}),f.jsx(Kr,{className:"w-3 h-3 text-gray-400 opacity-0 group-hover:opacity-100 transition-opacity"})]})}function r0(){const{toast:e}=dl(),t=x.useRef(null),{screenToFlowPosition:n,getViewport:r,setViewport:o,fitView:i}=tr(),[s,a,l]=Om(t0),[c,u,d]=Dm(n0),[h,m]=x.useState("cold"),[g,y]=x.useState("problem_unaware"),[b,w]=x.useState(null),[S,T]=x.useState(!1),[_,j]=x.useState(null),[F,R]=x.useState(""),[z,M]=x.useState(!1),[H,B]=x.useState(!1),[Y,V]=x.useState(""),[p,k]=x.useState(!1),[N,A]=x.useState(!1),[P,E]=x.useState(!1),[O,L]=x.useState(!0),$=x.useRef(null),W=x.useMemo(()=>{const v=s.map(I=>({awarenessLevel:I.data.awarenessLevel}));return Ys(v)},[s]),U=x.useCallback((v,I,D)=>{const X=v.data.temperature===I,q=200,ee=100,J=80;if(X){const de=s.filter(ie=>ie.data.awarenessLevel===D);let se=v.position.x+q+J,ne=v.position.y;const xe=(ie,ye)=>de.some(De=>Math.abs(De.position.x-ie)<q+20&&Math.abs(De.position.y-ye)<ee+20);for(;xe(se,ne);)se+=q+40;return{x:se,y:ne}}else{const de=W.bands[D],se=s.filter(ye=>ye.data.awarenessLevel===D);let ne=v.position.x,xe=de.yStart+60;const ie=(ye,De)=>se.some(we=>Math.abs(we.position.x-ye)<q+20&&Math.abs(we.position.y-De)<ee+20);for(;ie(ne,xe);)ne+=q+40,ne>Bt-q&&(ne=200,xe+=ee+40);return{x:ne,y:xe}}},[s,W]),Q=x.useCallback((v,I)=>{const D=s.find(ye=>ye.id===v);if(!D)return;const G=I.defaultTemperature,X={cold:"problem_unaware",warm:"solution_aware",hot:"most_aware",existing:"existing_customers"},q=pe.indexOf(D.data.awarenessLevel);let ee=X[G];pe.indexOf(ee)<q&&(ee=D.data.awarenessLevel);const de=sn(ee),se=U(D,de,ee),ne=`node-${Date.now()}`,xe={id:ne,type:"platform",position:se,data:{platform:I,temperature:de,awarenessLevel:ee,parentId:v}},ie={id:`edge-${v}-${ne}`,source:v,target:ne,type:"smoothstep",animated:!0,markerEnd:{type:It.ArrowClosed,color:"#94a3b8"}};a(ye=>[...ye,xe]),u(ye=>[...ye,ie]),e({title:"Step Added",description:`Connected ${I.name} to the flow.`})},[s,U,a,u,e]),re=x.useMemo(()=>({onAddStep:Q}),[Q]),{data:oe=[],isLoading:le,error:fe}=fl({queryKey:["/api/visual-flows"]}),ae=cr({mutationFn:async v=>(await fr("/api/visual-flows",{method:"POST",body:JSON.stringify(v)})).json(),onSuccess:v=>{hr.invalidateQueries({queryKey:["/api/visual-flows"]}),j(v.id),R(v.name),M(!1),e({title:"Flow Saved",description:`"${v.name}" has been created successfully.`})},onError:v=>{console.error("Create flow error:",v),e({title:"Error",description:"Failed to create flow. Please try again.",variant:"destructive"})}}),ke=cr({mutationFn:async({id:v,data:I})=>(await fr(`/api/visual-flows/${v}`,{method:"PATCH",body:JSON.stringify(I)})).json(),onSuccess:v=>
38{hr.invalidateQueries({queryKey:["/api/visual-flows"]}),R(v.name),M(!1),e({title:"Flow Updated",description:`"${v.name}" has been saved.`})},onError:v=>{console.error("Update flow error:",v),e({title:"Error",description:"Failed to update flow. Please try again.",variant:"destructive"})}}),Ce=cr({mutationFn:async v=>{await fr(`/api/visual-flows/${v}`,{method:"DELETE"})},onSuccess:()=>{hr.invalidateQueries({queryKey:["/api/visual-flows"]}),j(null),R(""),a([]),u([]),M(!1),e({title:"Flow Deleted",description:"The flow has been removed."})},onError:v=>{console.error("Delete flow error:",v),e({title:"Error",description:"Failed to delete flow. Please try again.",variant:"destructive"})}});x.useEffect(()=>{(s.length>0||c.length>0)&&M(!0)},[s,c]),x.useEffect(()=>{y({cold:"problem_unaware",warm:"solution_aware",hot:"most_aware",existing:"existing_customers"}[h])},[h]),x.useEffect(()=>(z&&_&&(s.length>0||c.length>0)&&($.current&&clearTimeout($.current),$.current=setTimeout(()=>{const v=r(),I={nodes:s.map(D=>({id:D.id,type:D.type,position:D.position,data:D.data})),edges:c.map(D=>({id:D.id,source:D.source,target:D.target,type:D.type,data:D.data})),viewport:v};ke.mutate({id:_,data:{flowData:I}})},3e3)),()=>{$.current&&clearTimeout($.current)}),[z,_,s,c,r]);const Ie=x.useCallback(()=>{const v=r();return{nodes:s.map(I=>({id:I.id,type:I.type,position:I.position,data:I.data})),edges:c.map(I=>({id:I.id,source:I.source,target:I.target,type:I.type,data:I.data})),viewport:v}},[s,c,r]),Ae=x.useCallback(()=>{if(_){const v=Ie();ke.mutate({id:_,data:{flowData:v}})}else V(""),B(!0)},[_,Ie,ke]),me=x.useCallback(()=>{if(!Y.trim()){e({title:"Name Required",description:"Please enter a name for your flow.",variant:"destructive"});return}const v=Ie();ae.mutate({name:Y.trim(),flowData:v}),B(!1)},[Y,Ie,ae,e]),$e=x.useCallback(v=>{if(v==="new"){j(null),R(""),a([]),u([]),M(!1);return}const I=oe.find(D=>D.id===parseInt(v,10));if(I){k(!0);try{j(I.id),R(I.name);const D=I.flowData;D&&(D.nodes&&Array.isArray(D.nodes)?a(D.nodes):a([]),D.edges&&Array.isArray(D.edges)?u(D.edges):u([]),D.viewport&&setTimeout(()=>{o(D.viewport)},100)),M(!1),e({title:"Flow Loaded",description:`"${I.name}" has been loaded.`})}catch(D){console.error("Error loading flow:",D),e({title:"Error",description:"Failed to load flow data.",variant:"destructive"})}finally{k(!1)}}},[oe,a,u,o,e]),ce=x.useCallback(v=>{const I=s.find(G=>G.id===v.source),D=s.find(G=>G.id===v.target);if(I&&D){const G=pe.indexOf(I.data.awarenessLevel);if(pe.indexOf(D.data.awarenessLevel)<G){e({title:"Invalid Connection",description:"Content should flow DOWN the funnel (top to bottom). You can't connect upward to earlier awareness stages.",variant:"destructive"});return}}u(G=>Mi({...v,type:"smoothstep",animated:!0,style:{stroke:"#F97316",strokeWidth:2},markerEnd:{type:It.ArrowClosed,color:"#F97316"}},G)),e({title:"Connected",description:"Nodes linked - they will share content context for ad scent."})},[s,u,e]);x.useCallback((v,I,D)=>{const G=Ws(D.y,W),X=sn(G),q=ue[G],ee={id:`node-${Date.now()}`,type:"platform",position:D,data:{platform:v,temperature:X,awarenessLevel:G}};a(J=>[...J,ee]),e({title:"Node Added",description:`${v.name} added to ${q.label} band.`})},[a,e,W]);const K=x.useCallback(v=>{const I=Jw(s,g),D=Uw(g,W,I),G=sn(g),X={id:`node-${Date.now()}`,type:"platform",position:D,data:{platform:v,temperature:G,awarenessLevel:g}};a(ee=>[...ee,X]);const q=ue[g];e({title:"Node Added",description:`${v.name} added to ${q.label} band.`})},[s,a,e,g,W]),Te=x.useCallback((v,I,D)=>{v.dataTransfer.setData("application/reactflow-platform",JSON.stringify(I)),v.dataTransfer.setData("application/reactflow-temperature",D),v.dataTransfer.effectAllowed="move"},[]),qe=x.useCallback(v=>{v.preventDefault(),v.dataTransfer.dropEffect="move",T(!0)},[]),bt=x.useCallback(()=>{T(!1)},[]),lt=x.useCallback(v=>{v.preventDefault(),T(!1);const I=v.dataTransfer.getData("application/reactflow-platform");if(!I)return;const D=JSON.parse(I),G=n({x:v.clientX,y:v.clientY}),X=Ws(G.y,W),q=W.bands[X],ee=ue[X],J=sn(X),de=Math.max(q.yStart+40,Math.min(q.yStart+q.height-100,G.y)),se={id:`node-${Date.now()}`,type:"platform",position:{x:Math.max(50,G.x),y:de},data:{platform:D,temperature:J,awarenessLevel:X}};a(ne=>
38[...ne,se]),e({title:"Node Added",description:`${D.name} added to ${ee.label} band.`})},[n,a,e,W]),ct=x.useCallback(()=>{const v=s.filter(I=>I.selected).map(I=>I.id);if(v.length===0){e({title:"No Selection",description:"Select nodes to delete by clicking on them.",variant:"destructive"});return}b&&v.includes(b.id)&&w(null),a(I=>I.filter(D=>!v.includes(D.id))),u(I=>I.filter(D=>!v.includes(D.source)&&!v.includes(D.target))),e({title:"Deleted",description:`Removed ${v.length} node(s) from canvas.`})},[s,a,u,b,e]),Be=x.useCallback(()=>{if(s.length===0){e({title:"No Nodes",description:"Add some nodes to the canvas before arranging.",variant:"destructive"});return}const v=180,I=80,D=50,G=200,X={problem_unaware:[],solution_unaware:[],solution_aware:[],your_solution_aware:[],most_aware:[],existing_customers:[]};s.forEach(ee=>{const J=ee.data.awarenessLevel;X[J].push(ee)});const q=[];pe.forEach(ee=>{const J=X[ee];if(J.length===0)return;const de=c.filter(ie=>{const ye=J.find(we=>we.id===ie.source),De=J.find(we=>we.id===ie.target);return ye&&De}),se=new jn.graphlib.Graph;se.setGraph({rankdir:"LR",nodesep:D,ranksep:100,marginx:0,marginy:0}),se.setDefaultEdgeLabel(()=>({})),J.forEach(ie=>{se.setNode(ie.id,{width:v,height:I})}),de.forEach(ie=>{se.setEdge(ie.source,ie.target)}),jn.layout(se);const xe=W.bands[ee].yStart+60;J.forEach(ie=>{const ye=se.node(ie.id);if(ye)q.push({...ie,position:{x:ye.x-v/2+G,y:xe}});else{const De=J.indexOf(ie);q.push({...ie,position:{x:G+De*(v+D),y:xe}})}})}),a(q),e({title:"Nodes Arranged",description:`Organized ${s.length} node(s) within their awareness bands.`})},[s,c,a,e,W]),ut=x.useCallback(()=>{if(s.length===0){e({title:"No Nodes",description:"Add some nodes to the canvas before arranging.",variant:"destructive"});return}const v=180,I=80,D=50,G=200;let X=0;const q=s.map(se=>{const ne=qt.find(ye=>ye.id===se.data.platform.id),xe=(ne==null?void 0:ne.defaultTemperature)||se.data.temperature,ie=xe==="cold"?"problem_unaware":xe==="warm"?"solution_aware":xe==="hot"?"most_aware":"existing_customers";return se.data.awarenessLevel!==ie&&X++,{...se,data:{...se.data,temperature:xe,awarenessLevel:ie}}}),ee=Ys(q.map(se=>({awarenessLevel:se.data.awarenessLevel}))),J={problem_unaware:[],solution_unaware:[],solution_aware:[],your_solution_aware:[],most_aware:[],existing_customers:[]};q.forEach(se=>{const ne=se.data.awarenessLevel;J[ne].push(se)});const de=[];pe.forEach(se=>{const ne=J[se];if(ne.length===0)return;const xe=c.filter(we=>{const Dt=ne.find(Qt=>Qt.id===we.source),Zt=ne.find(Qt=>Qt.id===we.target);return Dt&&Zt}),ie=new jn.graphlib.Graph;ie.setGraph({rankdir:"LR",nodesep:D,ranksep:100,marginx:0,marginy:0}),ie.setDefaultEdgeLabel(()=>({})),ne.forEach(we=>{ie.setNode(we.id,{width:v,height:I})}),xe.forEach(we=>{ie.setEdge(we.source,we.target)}),jn.layout(ie);const De=ee.bands[se].yStart+60;ne.forEach(we=>{const Dt=ie.node(we.id);if(Dt)de.push({...we,position:{x:Dt.x-v/2+G,y:De}});else{const Zt=ne.indexOf(we);de.push({...we,position:{x:G+Zt*(v+D),y:De}})}})}),a(de),X>0?e({title:"Smart Arrange Complete",description:`Reset ${X} node(s) to default bands and organized ${s.length} node(s).`}):e({title:"Nodes Arranged",description:`All nodes already in default bands. Organized ${s.length} node(s).`})},[s,c,a,e]),Ke=x.useCallback((v,I)=>{if(b&&b.id!==I.id){const D=pe.indexOf(b.data.awarenessLevel),G=pe.indexOf(I.data.awarenessLevel),X=c.some(q=>q.source===b.id&&q.target===I.id||q.source===I.id&&q.target===b.id);if(!X&&G>=D){const q={source:b.id,target:I.id,sourceHandle:null,targetHandle:null};ce(q),w(I),E(!0);return}else G<D?e({title:"Invalid Connection",description:"Content flows DOWN the funnel. Select nodes in same or lower bands.",variant:"destructive"}):X&&e({title:"Already Connected",description:"These nodes are already linked."})}w(I),E(!0)},[b,c,ce,e]),Ze=x.useCallback(()=>{w(null)},[]),[dt,ft]=x.useState(new Set(["paid_social","organic_social"])),[vt,_e]=x.useState(new Set(["facebook","instagram"])),[Me,Qe]=x.useState("category"),Je=x.useCallback(v=>{ft(I=>{const D=new Set(I);return D.has(v)?D.delete(v):D.add(v),D})},[]),et=x.useCallback(v=>{_e(I=>{const D=new Set(I);return D.has(v)?D.delete(v):D.add(v),D})},[]),ze=x.useMemo(()=>{const v=Hw(),I={};return Object.keys(v).forEach(D=>{I[D]=v[D].map(G=>({...G,icon:fn[G.iconId]||yt}))}),I},[]),Oe=x.useMemo(()=>{const v=Yw(),I={};return Object.keys(v).forEach(D=>{I[D]=v[D].map(G=>({...G,icon:fn[G.iconId]||yt}))}),I},[]),_t=x.useMemo(()=>Gw.filter(v=>{var I;return((I=Oe[v.iconId])==null?void 0:I.length)>0}),[Oe]),Kt=x.useMemo(()=>Object.keys(dn).sort((v,I)=>dn[v].order-dn[I].order),[]),Ve=ae.isPending||ke.isPending,Mt=()=>f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"p-4 border-b space-y-3",children:[f.jsxs("div",{className:"flex items-center justify-between",children:[f.jsx("h3",{className:"text-sm font-medium",children:"Saved Flows"}),z&&f.jsxs(rt,{variant:"outline",className:"text-xs bg-amber-50 text-amber-600 border-amber-200","data-testid":"badge-unsaved-changes",children:[f.jsx(Co,{className:"w-3 h-3 mr-1"}),"Unsaved"]})]}),le?f.jsx("div",{className:"flex items-center justify-center py-2",children:f.jsx(Ft,{className:"w-4 h-4 animate-spin text-muted-foreground"})}):fe?f.jsxs("div",{className:"text-xs text-red-500 flex items-center gap-1","data-testid":"error-loading-flows",children:[f.jsx(Co,{className:"w-3 h-3"}),"Failed to load flows"]}):f.jsxs(mr,{value:(_==null?void 0:_.toString())||"new",onValueChange:$e,"data-testid":"select-flow",children:[f.jsx(pr,{className:"w-full","data-testid":"select-flow-trigger",disabled:p,children:p?f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(Ft,{className:"w-4 h-4 animate-spin"}),f.jsx("span",{children:"Loading..."})]}):f.jsx(gr,{placeholder:"Select a flow",children:_?f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(_n,{className:"w-4 h-4"}),f.jsx("span",{className:"truncate",children:F})]}):f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(Go,{className:"w-4 h-4"}),f.jsx("span",{children:"New Flow"})]})})}),f.jsxs(yr,{"data-testid":"select-flow-content",children:[f.jsx(Et,{value:"new","data-testid":"select-flow-option-new",children:f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(Go,{className:"w-4 h-4"}),f.jsx("span",{children:"New Flow"})]})}),oe.map(v=>f.jsx(Et,{value:v.id.toString(),"data-testid":`select-flow-option-${v.id}`,children:f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(_n,{className:"w-4 h-4"}),f.jsx("span",{className:"truncate",children:v.name})]})},v.id))]})]}),_&&f.jsxs(Ne,{variant:"ghost",size:"sm",className:"w-full text-xs text-red-500 hover:text-red-600 hover:bg-red-50",onClick:()=>{confirm("Are you sure you want to delete this flow?")&&Ce.mutate(_)},disabled:Ce.isPending,"data-testid":"button-delete-flow",children:[Ce.isPending?f.jsx(Ft,{className:"w-3 h-3 animate-spin mr-1"}):f.jsx(Io,{className:"w-3 h-3 mr-1"}),"Delete Flow"]})]}),f.jsxs("div",{className:"p-4 border-b",children:[f.jsx("h3",{className:"text-sm font-medium mb-2",children:"Temperature"}),f.jsx("div",{className:"grid grid-cols-2 gap-2",children:Object.keys(qr).map(v=>{const I=qr[v],D=I.icon;return f.jsxs(Ne,{variant:h===v?"default":"outline",size:"sm",className:"flex items-center gap-1 text-xs",onClick:()=>m(v),style:h===v?{backgroundColor:I.color}:{},"data-testid":`button-temp-${v}`,children:[f.jsx(D,{className:"w-3 h-3"}),I.label]},v)})}),(h==="cold"||h==="warm")&&f.jsxs("div",{className:"mt-3",children:[f.jsx("label",{className:"text-xs text-muted-foreground mb-1.5 block",children:"Awareness Level"}),f.jsxs(mr,{value:g,onValueChange:v=>y(v),children:[f.jsx(pr,{className:"w-full h-9",style:{borderColor:ue[g].color+"80",backgroundColor:ue[g].bgColor+"40"},"data-testid":"select-awareness-filter",children:f.jsx(gr,{children:f.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const v=mt[g];return f.jsx(v,{className:"w-3 h-3",style:{color:ue[g].color}})})(),f.jsx("span",{className:"text-xs",style:{color:ue[g].color},children:ue[g].label})]})})}),f.jsxs(yr,{children:[h==="cold"&&f.jsxs(f.Fragment,{children:[f.jsx(Et,{value:"problem_unaware","data-testid":"select-awareness-problem_unaware",children:f.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const v=mt.problem_unaware;return f.jsx(v,{className:"w-4 h-4",style:{color:ue.problem_unaware.color}})})(),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:ue.problem_unaware.label}),f.jsx("span",{className:"text-xs text-muted-foreground",children:"Don't know they have a problem"})]})]})}),f.jsx(Et,{value:"solution_unaware","data-testid":"select-awareness-solution_unaware",children:f.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const v=mt.solution_unaware;return f.jsx(v,{className:"w-4 h-4",style:{color:ue.solution_unaware.color}})})(),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:ue.solution_unaware.label}),f.jsx("span",{className:"text-xs text-muted-foreground",children:"Know problem but not solutions"})]})]})})]}),h==="warm"&&f.jsxs(f.Fragment,{children:[f.jsx(Et,{value:"solution_aware","data-testid":"select-awareness-solution_aware",children:f.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const v=mt.solution_aware;return f.jsx(v,{className:"w-4 h-4",style:{color:ue.solution_aware.color}})})(),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:ue.solution_aware.label}),f.jsx("span",{className:"text-xs text-muted-foreground",children:"Know solutions exist"})]})]})}),f.jsx(Et,{value:"your_solution_aware","data-testid":"select-awareness-your_solution_aware",children:f.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const v=mt.your_solution_aware;return f.jsx(v,{className:"w-4 h-4",style:{color:ue.your_solution_aware.color}})})(),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:ue.your_solution_aware.label}),f.jsx("span",{className:"text-xs text-muted-foreground",children:"Know about YOUR solution"})]})]})})]})]})]})]})]}),f.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[f.jsxs("div",{className:"px-4 pt-4 pb-2",children:[f.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:"Drag to canvas or click to add"}),f.jsx(Vl,{value:Me,onValueChange:v=>Qe(v),children:f.jsxs(Hl,{className:"w-full h-8",children:[f.jsx(Lo,{value:"category",className:"flex-1 text-xs","data-testid":"tab-view-category",children:"By Type"}),f.jsx(Lo,{value:"brand",className:"flex-1 text-xs","data-testid":"tab-view-brand",children:"By Platform"})]})})]}),f.jsx(qs,{className:"flex-1 px-4 pb-4",children:Me==="category"?f.jsx("div",{className:"space-y-1",children:Kt.map(v=>{const I=dn[v],D=ze[v]||[],G=dt.has(v);return D.length===0?null:f.jsxs(To,{open:G,onOpenChange:()=>Je(v),children:[f.jsxs(Ao,{className:"flex items-center justify-between w-full p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors","data-testid":`collapsible-category-${v}`,children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("span",{className:"text-sm font-medium","data-testid":`text-category-${v}`,children:I.label}),f.jsx(rt,{variant:"secondary",className:"text-xs h-5 px-1.5",children:D.length})]}),G?f.jsx(jo,{className:"w-4 h-4 text-muted-foreground"}):f.jsx(ur,{className:"w-4 h-4 text-muted-foreground"})]}),f.jsx(Mo,{className:"pl-2",children:f.jsx("div",{className:"space-y-1 pt-1",children:D.map(X=>f.jsx(Xs,{platform:X,temperature:h,onDragStart:Te,onClick:()=>{K(X),A(!1)}},X.id))})})]},v)})}):f.jsx("div",{className:"space-y-1",children:_t.map(v=>{const I=Oe[v.iconId]||[],D=vt.has(v.iconId),G=fn[v.iconId]||yt;return I.length===0?null:f.jsxs(To,{open:D,onOpenChange:()=>et(v.iconId),children:[f.jsxs(Ao,{className:"flex items-center justify-between w-full p-2 rounded-md hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors","data-testid":`collapsible-brand-${v.id}`,children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:"w-5 h-5 rounded flex items-center justify-center",style:{backgroundColor:v.color+"20"},children:f.jsx(G,{className:"w-3 h-3",style:{color:v.color}})}),f.jsx("span",{className:"text-sm font-medium","data-testid":`text-brand-${v.id}`,children:v.name}),f.jsx(rt,{variant:"secondary",className:"text-xs h-5 px-1.5",children:I.length})]}),D?f.jsx(jo,{className:"w-4 h-4 text-muted-foreground"}):f.jsx(ur,{className:"w-4 h-4 text-muted-foreground"})]}),f.jsx(Mo,{className:"pl-2",children:f.jsx("div",{className:"space-y-1 pt-1",children:I.map(X=>f.jsx(Xs,{platform:X,temperature:h,onDragStart:Te,onClick:()=>{K(X),A(!1)}},X.id))})})]},v.id)})})})]}),f.jsxs("div",{className:"p-4 border-t space-y-2",children:[f.jsxs(Ne,{variant:"outline",size:"sm",className:"w-full gap-2",onClick:ct,"data-testid":"button-delete-nodes",children:[f.jsx(Io,{className:"w-4 h-4"}),"Delete Selected"]}),f.jsxs(Ne,{size:"sm",className:"w-full gap-2 bg-orange-500 hover:bg-orange-600",onClick:Ae,disabled:Ve||s.length===0&&
38c.length===0,"data-testid":"button-save-flow",children:[Ve?f.jsx(Ft,{className:"w-4 h-4 animate-spin"}):f.jsx(wr,{className:"w-4 h-4"}),Ve?"Saving...":_?"Save Flow":"Save New Flow"]})]})]}),Ot=x.useCallback((v,I,D,G,X=200)=>{const q=v.filter(de=>de.data.awarenessLevel===D&&de.id!==I);return q.length===0||!q.some(de=>Math.abs(de.position.x-G)<X)?G:Math.max(...q.map(de=>de.position.x))+X},[]),tt=x.useCallback((v,I)=>{const D=W.bands[I],G=ue[I],X=sn(I),q=D.yStart+60;if(a(ee=>{const J=ee.find(ne=>ne.id===v);if(!J)return ee;const de=J.position.x,se=Ot(ee,v,I,de);return ee.map(ne=>ne.id===v?{...ne,position:{x:se,y:q},data:{...ne.data,temperature:X,awarenessLevel:I}}:ne)}),b&&b.id===v){const ee=b.position.x,J=Ot(s,v,I,ee);w({...b,position:{x:J,y:q},data:{...b.data,temperature:X,awarenessLevel:I}})}e({title:"Node Moved",description:`Node moved to ${G.label} band.`})},[a,b,s,e,Ot,W]),or=x.useCallback(v=>{const I=s.find(X=>X.id===v);if(!I)return[];const D=pe.indexOf(I.data.awarenessLevel),G=c.filter(X=>X.source===v).map(X=>X.target);return s.filter(X=>!(X.id===v||pe.indexOf(X.data.awarenessLevel)<D||G.includes(X.id))).sort((X,q)=>{const ee=pe.indexOf(X.data.awarenessLevel),J=pe.indexOf(q.data.awarenessLevel);return ee-J})},[s,c]),sr=x.useCallback(v=>c.filter(I=>I.source===v).map(I=>{const D=s.find(G=>G.id===I.target);return{edge:I,targetNode:D}}).filter(I=>I.targetNode!==void 0),[c,s]),ir=x.useCallback((v,I)=>{const D=s.find(J=>J.id===v),G=s.find(J=>J.id===I);if(!D||!G)return;const X=pe.indexOf(D.data.awarenessLevel);if(pe.indexOf(G.data.awarenessLevel)<X){e({title:"Invalid Connection",description:"Content should flow DOWN the funnel. You can't connect upward.",variant:"destructive"});return}const ee={id:`edge-${v}-${I}`,source:v,target:I,type:"smoothstep",animated:!0,style:{stroke:"#F97316",strokeWidth:2},markerEnd:{type:It.ArrowClosed,color:"#F97316"}};u(J=>[...J,ee]),e({title:"Connected",description:`Connected to ${G.data.platform.name}.`})},[s,u,e]),ar=x.useCallback(v=>{u(I=>I.filter(D=>D.id!==v)),e({title:"Disconnected",description:"Connection removed."})},[u,e]),bn=()=>{if(!b)return null;const v=or(b.id),I=sr(b.id),D=v.reduce((G,X)=>{const q=X.data.awarenessLevel;return G[q]||(G[q]=[]),G[q].push(X),G},{});return f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{children:[f.jsx("label",{className:"text-xs text-muted-foreground",children:"Platform"}),f.jsx("p",{className:"font-medium","data-testid":"text-selected-platform",children:b.data.platform.name})]}),f.jsxs("div",{children:[f.jsx("label",{className:"text-xs text-muted-foreground mb-2 block",children:"Awareness Level"}),f.jsxs(mr,{value:b.data.awarenessLevel,onValueChange:G=>tt(b.id,G),children:[f.jsx(pr,{className:"w-full",style:{borderColor:ue[b.data.awarenessLevel].color,backgroundColor:ue[b.data.awarenessLevel].bgColor+"40"},"data-testid":"select-node-awareness",children:f.jsx(gr,{children:f.jsxs("div",{className:"flex items-center gap-2",children:[(()=>{const G=mt[b.data.awarenessLevel];return f.jsx(G,{className:"w-4 h-4",style:{color:ue[b.data.awarenessLevel].color}})})(),f.jsx("span",{style:{color:ue[b.data.awarenessLevel].color},children:ue[b.data.awarenessLevel].label})]})})}),f.jsx(yr,{children:pe.map(G=>{const X=ue[G],q=mt[G];return f.jsx(Et,{value:G,"data-testid":`select-band-option-${G}`,children:f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(q,{className:"w-4 h-4",style:{color:X.color}}),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:X.label}),f.jsx("span",{className:"text-xs text-muted-foreground",children:X.subtitle})]})]})},G)})})]}),f.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"Change awareness level to move node to a different band"})]}),f.jsx(Oo,{}),I.length>0&&f.jsxs("div",{children:[f.jsxs("label",{className:"text-xs text-muted-foreground mb-2 block",children:["Current Connections (",I.length,")"]}),f.jsx("div",{className:"space-y-2",children:I.map(({edge:G,targetNode:X})=>{if(!X)return null;const q=ue[X.data.awarenessLevel],ee=X.data.platform.icon;return f.jsxs("div",{className:"flex items-center justify-between p-2 bg-gray-50 dark:bg-gray-800 rounded-lg border","data-testid":`connection-${G.id}`,children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("div",{className:"w-6 h-6 rounded-full flex items-center justify-center",style:{backgroundColor:X.data.platform.color+"20"},children:f.jsx(ee,{className:"w-3 h-3",style:{color:X.data.platform.color}})}),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{className:"text-sm font-medium",children:X.data.platform.name}),f.jsx("span",{className:"text-xs",style:{color:q.color},children:q.label})]})]}),f.jsx(Ne,{variant:"ghost",size:"icon",className:"h-7 w-7 text-red-500 hover:text-red-700 hover:bg-red-50",onClick:()=>ar(G.id),"data-testid":`button-remove-connection-${G.id}`,children:f.jsx(dr,{className:"h-4 w-4"})})]},G.id)})})]}),v.length>0&&f.jsxs("div",{children:[f.jsx("label",{className:"text-xs text-muted-foreground mb-2 block",children:"Connect to..."}),f.jsx("div",{className:"space-y-3",children:pe.map(G=>{const X=D[G];if(!X||X.length===0)return null;const q=ue[G],ee=mt[G];return f.jsxs("div",{children:[f.jsxs("div",{className:"flex items-center gap-1 mb-1",children:[f.jsx(ee,{className:"w-3 h-3",style:{color:q.color}}),f.jsx("span",{className:"text-xs font-medium",style:{color:q.color},children:q.label})]}),f.jsx("div",{className:"space-y-1",children:X.map(J=>{const de=J.data.platform.icon;return f.jsxs(Ne,{variant:"outline",size:"sm",className:"w-full justify-start gap-2 h-auto py-2",onClick:()=>ir(b.id,J.id),"data-testid":`button-connect-to-${J.id}`,children:[f.jsx("div",{className:"w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0",style:{backgroundColor:J.data.platform.color+"20"},children:f.jsx(de,{className:"w-3 h-3",style:{color:J.data.platform.color}})}),f.jsx("span",{className:"text-sm",children:J.data.platform.name}),f.jsx(Mn,{className:"w-3 h-3 ml-auto text-muted-foreground"})]},J.id)})})]},G)})})]}),v.length===0&&I.length===0&&f.jsx("div",{className:"p-3 bg-gray-50 dark:bg-gray-800 rounded-lg text-center",children:f.jsx("p",{className:"text-xs text-muted-foreground",children:"Add more nodes to create connections between them."})}),f.jsx(Oo,{}),f.jsxs("div",{children:[f.jsx("label",{className:"text-xs text-muted-foreground mb-2 block",children:"Content Bundle"}),b.data.bundleId?f.jsx("div",{className:"p-3 bg-orange-50 dark:bg-orange-900/20 rounded-lg border border-orange-200 dark:border-orange-800","data-testid":"status-bundle-linked",children:f.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[f.jsx(Mn,{className:"w-4 h-4 text-orange-500"}),f.jsx("span",{children:"Linked to bundle"})]})}):f.jsxs(Ne,{variant:"outline",size:"sm",className:"w-full gap-2","data-testid":"button-create-bundle",children:[f.jsx(Mn,{className:"w-4 h-4"}),"Create Content Bundle"]})]})]})};return f.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col md:flex-row","data-testid":"workflow-flow-designer",children:[f.jsxs("div",{className:"md:hidden flex items-center justify-between p-3 border-b bg-white dark:bg-gray-900",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(No,{href:"/workflow-builder",children:f.jsx(Ne,{variant:"ghost",size:"icon",className:"h-8 w-8","data-testid":"button-back-workflow-mobile",children:f.jsx(So,{className:"h-4 w-4"})})}),f.jsx("h1",{className:"text-base font-bold",children:"Flow Designer"}),f.jsx(rt,{variant:"outline",className:"text-xs",children:"Beta"})]}),f.jsxs("div",{className:"flex items-center gap-2",children:[z&&f.jsx("span",{className:"text-amber-500 text-xs font-medium",children:"Unsaved"}),f.jsx(Ne,{size:"sm",className:"bg-orange-500 hover:bg-orange-600",onClick:Ae,disabled:Ve||s.length===0&&
38c.length===0,children:Ve?f.jsx(Ft,{className:"w-4 h-4 animate-spin"}):f.jsx(wr,{className:"w-4 h-4"})})]})]}),f.jsxs("div",{className:"hidden md:flex w-72 border-r bg-white dark:bg-gray-900 flex-col",children:[f.jsxs("div",{className:"p-4 border-b",children:[f.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[f.jsx(No,{href:"/workflow-builder",children:f.jsx(Ne,{variant:"ghost",size:"icon",className:"h-8 w-8","data-testid":"button-back-workflow",children:f.jsx(So,{className:"h-4 w-4"})})}),f.jsx("h1",{className:"text-lg font-bold","data-testid":"text-page-title",children:"Flow Designer"}),f.jsx(rt,{variant:"outline",className:"ml-auto text-xs","data-testid":"badge-beta",children:"Beta"})]}),f.jsx("p",{className:"text-xs text-muted-foreground",children:"Drag platforms onto the canvas and connect them to create your marketing flow."})]}),f.jsx(Mt,{})]}),f.jsx(Do,{open:N,onOpenChange:A,children:f.jsxs(Fo,{side:"bottom",className:"h-[85vh] flex flex-col p-0",children:[f.jsx($o,{className:"px-4 py-3 border-b",children:f.jsx(Po,{children:"Add Platform"})}),f.jsx("div",{className:"flex-1 overflow-auto",children:f.jsx(Mt,{})})]})}),f.jsx(Do,{open:P&&!!b,onOpenChange:v=>{E(v),v||w(null)},children:f.jsxs(Fo,{side:"bottom",className:"h-auto max-h-[60vh]",children:[f.jsx($o,{className:"pb-4",children:f.jsx(Po,{children:"Node Details"})}),f.jsx(bn,{})]})}),f.jsx(Ne,{className:"md:hidden fixed bottom-20 left-4 z-50 h-14 w-14 rounded-full shadow-lg bg-orange-500 hover:bg-orange-600",onClick:()=>A(!0),"data-testid":"button-mobile-add",children:f.jsx(Kr,{className:"h-6 w-6"})}),f.jsxs("div",{className:"flex-1 flex flex-col md:flex-row min-h-0",children:[f.jsx("div",{className:`flex-1 relative transition-colors flex flex-col ${S?"bg-orange-50 dark:bg-orange-900/10":""}`,ref:t,onDragOver:qe,onDragLeave:bt,onDrop:lt,"data-testid":"canvas-drop-zone",children:f.jsx("div",{className:"flex-1 relative",children:f.jsx(Za.Provider,{value:re,children:f.jsxs(fa,{nodes:s,edges:c,onNodesChange:l,onEdgesChange:d,onConnect:ce,onNodeClick:Ke,onPaneClick:Ze,nodeTypes:Qw,fitView:!0,snapToGrid:!0,snapGrid:[20,20],defaultEdgeOptions:{type:"smoothstep",animated:!0},children:[f.jsx(e0,{dynamicLayout:W}),f.jsx(Xm,{variant:Le.Dots,gap:20,size:1,color:"#94a3b8"}),f.jsx(zm,{"data-testid":"flow-controls"}),f.jsx(zt,{position:"top-left",className:"hidden md:flex gap-2 items-center mt-2",children:F&&f.jsxs("div",{className:"bg-white dark:bg-gray-800 px-3 py-1.5 rounded-md shadow-sm border flex items-center gap-2","data-testid":"panel-flow-name",children:[f.jsx(_n,{className:"w-4 h-4 text-orange-500"}),f.jsx("span",{className:"text-sm font-medium","data-testid":"text-current-flow-name",children:F}),z&&f.jsx("span",{className:"text-amber-500 text-xs",children:"â¢"})]})}),f.jsxs(zt,{position:"top-right",className:"hidden md:flex gap-2 mt-2 mr-2",children:[f.jsxs(Ne,{variant:"outline",size:"sm",className:"gap-2 bg-white dark:bg-gray-800 shadow-sm",onClick:()=>i({padding:.2,duration:300}),"data-testid":"button-fit-view",children:[f.jsx(Ks,{className:"w-4 h-4"}),"Fit View"]}),f.jsxs(hl,{children:[f.jsx(ml,{asChild:!0,children:f.jsxs(Ne,{variant:"outline",size:"sm",className:"gap-2 bg-white dark:bg-gray-800 shadow-sm",disabled:s.length===0,"data-testid":"button-auto-arrange",children:[f.jsx(zo,{className:"w-4 h-4"}),"Auto-Arrange",f.jsx(ur,{className:"w-3 h-3 ml-1"})]})}),f.jsxs(pl,{align:"end",className:"w-56",children:[f.jsxs(ko,{onClick:Be,"data-testid":"menu-item-arrange-current",children:[f.jsx(zo,{className:"w-4 h-4 mr-2"}),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:"Arrange in Current Bands"}),f.jsx("span",{className:"text-xs text-muted-foreground",children:"Keep nodes in their current bands"})]})]}),f.jsxs(ko,{onClick:ut,"data-testid":"menu-item-smart-arrange",children:[f.jsx(gl,{className:"w-4 h-4 mr-2"}),f.jsxs("div",{className:"flex flex-col",children:[f.jsx("span",{children:"Smart Arrange (Reset to Defaults)"}),f.jsx("span",{className:"text-xs text-muted-foreground",children:"Move nodes to platform default bands"})]})]})]})]})]}),S&&f.jsx(zt,{position:"top-center",className:"mt-8",children:f.jsx("div",{className:"bg-orange-100 dar
38k:bg-orange-900/40 border-2 border-dashed border-orange-400 rounded-lg px-6 py-4 text-center",children:f.jsx("p",{className:"text-orange-700 dark:text-orange-300 font-medium",children:"Drop here to add node"})})}),s.length===0&&!S&&O&&f.jsx(zt,{position:"top-center",className:"mt-8",children:f.jsxs(yl,{className:"w-72 md:w-96 shadow-lg mx-4 relative","data-testid":"card-empty-state",children:[f.jsx(Ne,{variant:"ghost",size:"icon",className:"absolute top-2 right-2 h-6 w-6",onClick:()=>L(!1),"data-testid":"button-close-empty-state",children:f.jsx(dr,{className:"h-4 w-4"})}),f.jsxs(wl,{className:"text-center pb-2",children:[f.jsx(xl,{className:"text-base md:text-lg",children:"Build Your Marketing Funnel"}),f.jsxs(bl,{className:"text-xs md:text-sm",children:[f.jsx("span",{className:"hidden md:inline",children:"Start at the top with cold audiences and guide them down through your funnel. Drag platforms from the left panel onto the canvas."}),f.jsx("span",{className:"md:hidden",children:"Tap the + button to add platforms to your funnel."})]})]}),f.jsx(vl,{className:"text-center",children:f.jsxs("div",{className:"flex flex-col items-center gap-1 text-xs text-muted-foreground",children:[f.jsxs(rt,{variant:"outline",className:"bg-blue-50 text-blue-600 border-blue-200",children:[f.jsx(Pn,{className:"w-3 h-3 mr-1"}),"Problem Unaware (Top)"]}),f.jsx("span",{className:"text-muted-foreground",children:"â"}),f.jsxs(rt,{variant:"outline",className:"bg-amber-50 text-amber-600 border-amber-200",children:[f.jsx(Ln,{className:"w-3 h-3 mr-1"}),"Solution Aware"]}),f.jsx("span",{className:"text-muted-foreground",children:"â"}),f.jsxs(rt,{variant:"outline",className:"bg-red-50 text-red-600 border-red-200",children:[f.jsx(Qr,{className:"w-3 h-3 mr-1"}),"Most Aware (Bottom)"]})]})})]})})]})})})}),b&&f.jsxs("div",{className:"hidden md:block w-80 border-l bg-white dark:bg-gray-900 p-4","data-testid":"panel-node-details",children:[f.jsxs("div",{className:"flex items-center justify-between mb-4",children:[f.jsx("h3",{className:"font-medium",children:"Node Details"}),f.jsx(Ne,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>w(null),"data-testid":"button-close-details",children:f.jsx(dr,{className:"h-4 w-4"})})]}),f.jsx(bn,{})]})]}),F&&f.jsxs("div",{className:"md:hidden fixed top-[7.5rem] left-1/2 -translate-x-1/2 z-40 bg-white dark:bg-gray-800 px-3 py-1 rounded-full shadow-sm border flex items-center gap-2",children:[f.jsx(_n,{className:"w-3 h-3 text-orange-500"}),f.jsx("span",{className:"text-xs font-medium truncate max-w-32",children:F})]}),f.jsx(_l,{open:H,onOpenChange:B,children:f.jsxs(El,{"data-testid":"dialog-flow-name",children:[f.jsxs(Nl,{children:[f.jsx(Sl,{children:"Save New Flow"}),f.jsx(kl,{children:"Enter a name for your flow to save it."})]}),f.jsxs("div",{className:"py-4",children:[f.jsx(Cl,{htmlFor:"flow-name",children:"Flow Name"}),f.jsx(Il,{id:"flow-name",value:Y,onChange:v=>V(v.target.value),placeholder:"My Marketing Flow",className:"mt-2",autoFocus:!0,onKeyDown:v=>{v.key==="Enter"&&me()},"data-testid":"input-flow-name"})]}),f.jsxs(Tl,{children:[f.jsx(Ne,{variant:"outline",onClick:()=>B(!1),"data-testid":"button-cancel-save",children:"Cancel"}),f.jsx(Ne,{onClick:me,disabled:!Y.trim()||ae.isPending,className:"bg-orange-500 hover:bg-orange-600","data-testid":"button-confirm-save",children:ae.isPending?f.jsxs(f.Fragment,{children:[f.jsx(Ft,{className:"w-4 h-4 animate-spin mr-2"}),"Saving..."]}):f.jsxs(f.Fragment,{children:[f.jsx(wr,{className:"w-4 h-4 mr-2"}),"Save Flow"]})})]})]})})]})}function L0(){return f.jsx(go,{children:f.jsx(r0,{})})}export{L0 as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.