@stonecrop/node-editor 0.2.33 → 0.2.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-editor.js +1651 -1653
- package/dist/node-editor.js.map +1 -1
- package/dist/node-editor.umd.cjs +2 -2
- package/dist/node-editor.umd.cjs.map +1 -1
- package/dist/node_editor/src/tsdoc-metadata.json +1 -1
- package/package.json +5 -5
- package/src/components/EditableEdge.vue +4 -4
- package/src/components/EditableNode.vue +6 -6
- package/src/components/NodeEditor.vue +2 -2
- package/src/components/StateEditor.vue +6 -6
package/dist/node-editor.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(xe,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(xe=typeof globalThis<"u"?globalThis:xe||self,l(xe["@stonecrop/node-editor"]={},xe.Vue))})(this,function(xe,l){"use strict";function ct(e){return l.getCurrentScope()?(l.onScopeDispose(e),!0):!1}function Se(e){return typeof e=="function"?e():l.unref(e)}const ki=typeof window<"u"&&typeof document<"u",Mi=e=>typeof e<"u",Ii=Object.prototype.toString,$i=e=>Ii.call(e)==="[object Object]",Ti=()=>{};function Pi(e,t){function n(...o){return new Promise((i,r)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(i).catch(r)})}return n}const Tn=e=>e();function Bi(e=Tn){const t=l.ref(!0);function n(){t.value=!1}function o(){t.value=!0}const i=(...r)=>{t.value&&e(...r)};return{isActive:l.readonly(t),pause:n,resume:o,eventFilter:i}}function Pn(e,t=!1,n="Timeout"){return new Promise((o,i)=>{setTimeout(t?()=>i(n):o,e)})}function Di(e,t,n={}){const{eventFilter:o=Tn,...i}=n;return l.watch(e,Pi(o,t),i)}function Le(e,t,n={}){const{eventFilter:o,...i}=n,{eventFilter:r,pause:a,resume:s,isActive:u}=Bi(o);return{stop:Di(e,t,{...i,eventFilter:r}),pause:a,resume:s,isActive:u}}function Vi(e,t={}){if(!l.isRef(e))return l.toRefs(e);const n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const o in e.value)n[o]=l.customRef(()=>({get(){return e.value[o]},set(i){var r;if((r=Se(t.replaceRef))!=null?r:!0)if(Array.isArray(e.value)){const s=[...e.value];s[o]=i,e.value=s}else{const s={...e.value,[o]:i};Object.setPrototypeOf(s,Object.getPrototypeOf(e.value)),e.value=s}else e.value[o]=i}}));return n}function Ft(e,t=!1){function n(h,{flush:g="sync",deep:m=!1,timeout:b,throwOnTimeout:_}={}){let x=null;const p=[new Promise(C=>{x=l.watch(e,E=>{h(E)!==t&&(x==null||x(),C(E))},{flush:g,deep:m,immediate:!0})})];return b!=null&&p.push(Pn(b,_).then(()=>Se(e)).finally(()=>x==null?void 0:x())),Promise.race(p)}function o(h,g){if(!l.isRef(h))return n(E=>E===h,g);const{flush:m="sync",deep:b=!1,timeout:_,throwOnTimeout:x}=g??{};let N=null;const C=[new Promise(E=>{N=l.watch([e,h],([$,A])=>{t!==($===A)&&(N==null||N(),E($))},{flush:m,deep:b,immediate:!0})})];return _!=null&&C.push(Pn(_,x).then(()=>Se(e)).finally(()=>(N==null||N(),Se(e)))),Promise.race(C)}function i(h){return n(g=>!!g,h)}function r(h){return o(null,h)}function a(h){return o(void 0,h)}function s(h){return n(Number.isNaN,h)}function u(h,g){return n(m=>{const b=Array.from(m);return b.includes(h)||b.includes(Se(h))},g)}function c(h){return d(1,h)}function d(h=1,g){let m=-1;return n(()=>(m+=1,m>=h),g)}return Array.isArray(Se(e))?{toMatch:n,toContains:u,changed:c,changedTimes:d,get not(){return Ft(e,!t)}}:{toMatch:n,toBe:o,toBeTruthy:i,toBeNull:r,toBeNaN:s,toBeUndefined:a,changed:c,changedTimes:d,get not(){return Ft(e,!t)}}}function dt(e){return Ft(e)}function Oi(e){var t;const n=Se(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Bn=ki?window:void 0;function Dn(...e){let t,n,o,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,o,i]=e,t=Bn):[t,n,o,i]=e,!t)return Ti;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],a=()=>{r.forEach(d=>d()),r.length=0},s=(d,h,g,m)=>(d.addEventListener(h,g,m),()=>d.removeEventListener(h,g,m)),u=l.watch(()=>[Oi(t),Se(i)],([d,h])=>{if(a(),!d)return;const g=$i(h)?{...h}:h;r.push(...n.flatMap(m=>o.map(b=>s(d,m,b,g))))},{immediate:!0,flush:"post"}),c=()=>{u(),a()};return ct(c),c}function Ai(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Vn(...e){let t,n,o={};e.length===3?(t=e[0],n=e[1],o=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],o=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:i=Bn,eventName:r="keydown",passive:a=!1,dedupe:s=!1}=o,u=Ai(t);return Dn(i,r,d=>{d.repeat&&Se(s)||u(d)&&n(d)},a)}function zi(e){return JSON.parse(JSON.stringify(e))}function Yt(e,t,n,o={}){var i,r,a;const{clone:s=!1,passive:u=!1,eventName:c,deep:d=!1,defaultValue:h,shouldEmit:g}=o,m=l.getCurrentInstance(),b=n||(m==null?void 0:m.emit)||((i=m==null?void 0:m.$emit)==null?void 0:i.bind(m))||((a=(r=m==null?void 0:m.proxy)==null?void 0:r.$emit)==null?void 0:a.bind(m==null?void 0:m.proxy));let _=c;t||(t="modelValue"),_=_||`update:${t.toString()}`;const x=C=>s?typeof s=="function"?s(C):zi(C):C,N=()=>Mi(e[t])?x(e[t]):h,p=C=>{g?g(C)&&b(_,C):b(_,C)};if(u){const C=N(),E=l.ref(C);let $=!1;return l.watch(()=>e[t],A=>{$||($=!0,E.value=x(A),l.nextTick(()=>$=!1))}),l.watch(E,A=>{!$&&(A!==e[t]||d)&&p(A)},{deep:d}),E}else return l.computed({get(){return N()},set(C){p(C)}})}var Ri={value:()=>{}};function ft(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new ht(n)}function ht(e){this._=e}function Hi(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",i=n.indexOf(".");if(i>=0&&(o=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}ht.prototype=ft.prototype={constructor:ht,on:function(e,t){var n=this._,o=Hi(e+"",n),i,r=-1,a=o.length;if(arguments.length<2){for(;++r<a;)if((i=(e=o[r]).type)&&(i=Li(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++r<a;)if(i=(e=o[r]).type)n[i]=On(n[i],e.name,t);else if(t==null)for(i in n)n[i]=On(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ht(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),o=0,i,r;o<i;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],i=0,r=o.length;i<r;++i)o[i].value.apply(t,n)}};function Li(e,t){for(var n=0,o=e.length,i;n<o;++n)if((i=e[n]).name===t)return i.value}function On(e,t,n){for(var o=0,i=e.length;o<i;++o)if(e[o].name===t){e[o]=Ri,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var Gt="http://www.w3.org/1999/xhtml";const An={svg:"http://www.w3.org/2000/svg",xhtml:Gt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function gt(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),An.hasOwnProperty(t)?{space:An[t],local:e}:e}function Fi(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Gt&&t.documentElement.namespaceURI===Gt?t.createElement(e):t.createElementNS(n,e)}}function Yi(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function zn(e){var t=gt(e);return(t.local?Yi:Fi)(t)}function Gi(){}function Xt(e){return e==null?Gi:function(){return this.querySelector(e)}}function Xi(e){typeof e!="function"&&(e=Xt(e));for(var t=this._groups,n=t.length,o=new Array(n),i=0;i<n;++i)for(var r=t[i],a=r.length,s=o[i]=new Array(a),u,c,d=0;d<a;++d)(u=r[d])&&(c=e.call(u,u.__data__,d,r))&&("__data__"in u&&(c.__data__=u.__data__),s[d]=c);return new me(o,this._parents)}function Ui(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Zi(){return[]}function Rn(e){return e==null?Zi:function(){return this.querySelectorAll(e)}}function Wi(e){return function(){return Ui(e.apply(this,arguments))}}function Ki(e){typeof e=="function"?e=Wi(e):e=Rn(e);for(var t=this._groups,n=t.length,o=[],i=[],r=0;r<n;++r)for(var a=t[r],s=a.length,u,c=0;c<s;++c)(u=a[c])&&(o.push(e.call(u,u.__data__,c,a)),i.push(u));return new me(o,i)}function Hn(e){return function(){return this.matches(e)}}function Ln(e){return function(t){return t.matches(e)}}var qi=Array.prototype.find;function Ji(e){return function(){return qi.call(this.children,e)}}function ji(){return this.firstElementChild}function Qi(e){return this.select(e==null?ji:Ji(typeof e=="function"?e:Ln(e)))}var er=Array.prototype.filter;function tr(){return Array.from(this.children)}function nr(e){return function(){return er.call(this.children,e)}}function or(e){return this.selectAll(e==null?tr:nr(typeof e=="function"?e:Ln(e)))}function ir(e){typeof e!="function"&&(e=Hn(e));for(var t=this._groups,n=t.length,o=new Array(n),i=0;i<n;++i)for(var r=t[i],a=r.length,s=o[i]=[],u,c=0;c<a;++c)(u=r[c])&&e.call(u,u.__data__,c,r)&&s.push(u);return new me(o,this._parents)}function Fn(e){return new Array(e.length)}function rr(){return new me(this._enter||this._groups.map(Fn),this._parents)}function pt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}pt.prototype={constructor:pt,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 lr(e){return function(){return e}}function ar(e,t,n,o,i,r){for(var a=0,s,u=t.length,c=r.length;a<c;++a)(s=t[a])?(s.__data__=r[a],o[a]=s):n[a]=new pt(e,r[a]);for(;a<u;++a)(s=t[a])&&(i[a]=s)}function sr(e,t,n,o,i,r,a){var s,u,c=new Map,d=t.length,h=r.length,g=new Array(d),m;for(s=0;s<d;++s)(u=t[s])&&(g[s]=m=a.call(u,u.__data__,s,t)+"",c.has(m)?i[s]=u:c.set(m,u));for(s=0;s<h;++s)m=a.call(e,r[s],s,r)+"",(u=c.get(m))?(o[s]=u,u.__data__=r[s],c.delete(m)):n[s]=new pt(e,r[s]);for(s=0;s<d;++s)(u=t[s])&&c.get(g[s])===u&&(i[s]=u)}function ur(e){return e.__data__}function cr(e,t){if(!arguments.length)return Array.from(this,ur);var n=t?sr:ar,o=this._parents,i=this._groups;typeof e!="function"&&(e=lr(e));for(var r=i.length,a=new Array(r),s=new Array(r),u=new Array(r),c=0;c<r;++c){var d=o[c],h=i[c],g=h.length,m=dr(e.call(d,d&&d.__data__,c,o)),b=m.length,_=s[c]=new Array(b),x=a[c]=new Array(b),N=u[c]=new Array(g);n(d,h,_,x,N,m,t);for(var p=0,C=0,E,$;p<b;++p)if(E=_[p]){for(p>=C&&(C=p+1);!($=x[C])&&++C<b;);E._next=$||null}}return a=new me(a,o),a._enter=s,a._exit=u,a}function dr(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function fr(){return new me(this._exit||this._groups.map(Fn),this._parents)}function hr(e,t,n){var o=this.enter(),i=this,r=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(i=t(i),i&&(i=i.selection())),n==null?r.remove():n(r),o&&i?o.merge(i).order():i}function gr(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,i=n.length,r=o.length,a=Math.min(i,r),s=new Array(i),u=0;u<a;++u)for(var c=n[u],d=o[u],h=c.length,g=s[u]=new Array(h),m,b=0;b<h;++b)(m=c[b]||d[b])&&(g[b]=m);for(;u<i;++u)s[u]=n[u];return new me(s,this._parents)}function pr(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],i=o.length-1,r=o[i],a;--i>=0;)(a=o[i])&&(r&&a.compareDocumentPosition(r)^4&&r.parentNode.insertBefore(a,r),r=a);return this}function mr(e){e||(e=yr);function t(h,g){return h&&g?e(h.__data__,g.__data__):!h-!g}for(var n=this._groups,o=n.length,i=new Array(o),r=0;r<o;++r){for(var a=n[r],s=a.length,u=i[r]=new Array(s),c,d=0;d<s;++d)(c=a[d])&&(u[d]=c);u.sort(t)}return new me(i,this._parents).order()}function yr(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function vr(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function wr(){return Array.from(this)}function _r(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],i=0,r=o.length;i<r;++i){var a=o[i];if(a)return a}return null}function br(){let e=0;for(const t of this)++e;return e}function Er(){return!this.node()}function xr(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var i=t[n],r=0,a=i.length,s;r<a;++r)(s=i[r])&&e.call(s,s.__data__,r,i);return this}function Sr(e){return function(){this.removeAttribute(e)}}function Nr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Cr(e,t){return function(){this.setAttribute(e,t)}}function kr(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Mr(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ir(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 $r(e,t){var n=gt(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?Nr:Sr:typeof t=="function"?n.local?Ir:Mr:n.local?kr:Cr)(n,t))}function Yn(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Tr(e){return function(){this.style.removeProperty(e)}}function Pr(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Br(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function Dr(e,t,n){return arguments.length>1?this.each((t==null?Tr:typeof t=="function"?Br:Pr)(e,t,n??"")):Fe(this.node(),e)}function Fe(e,t){return e.style.getPropertyValue(t)||Yn(e).getComputedStyle(e,null).getPropertyValue(t)}function Vr(e){return function(){delete this[e]}}function Or(e,t){return function(){this[e]=t}}function Ar(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function zr(e,t){return arguments.length>1?this.each((t==null?Vr:typeof t=="function"?Ar:Or)(e,t)):this.node()[e]}function Gn(e){return e.trim().split(/^|\s+/)}function Ut(e){return e.classList||new Xn(e)}function Xn(e){this._node=e,this._names=Gn(e.getAttribute("class")||"")}Xn.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 Un(e,t){for(var n=Ut(e),o=-1,i=t.length;++o<i;)n.add(t[o])}function Zn(e,t){for(var n=Ut(e),o=-1,i=t.length;++o<i;)n.remove(t[o])}function Rr(e){return function(){Un(this,e)}}function Hr(e){return function(){Zn(this,e)}}function Lr(e,t){return function(){(t.apply(this,arguments)?Un:Zn)(this,e)}}function Fr(e,t){var n=Gn(e+"");if(arguments.length<2){for(var o=Ut(this.node()),i=-1,r=n.length;++i<r;)if(!o.contains(n[i]))return!1;return!0}return this.each((typeof t=="function"?Lr:t?Rr:Hr)(n,t))}function Yr(){this.textContent=""}function Gr(e){return function(){this.textContent=e}}function Xr(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ur(e){return arguments.length?this.each(e==null?Yr:(typeof e=="function"?Xr:Gr)(e)):this.node().textContent}function Zr(){this.innerHTML=""}function Wr(e){return function(){this.innerHTML=e}}function Kr(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function qr(e){return arguments.length?this.each(e==null?Zr:(typeof e=="function"?Kr:Wr)(e)):this.node().innerHTML}function Jr(){this.nextSibling&&this.parentNode.appendChild(this)}function jr(){return this.each(Jr)}function Qr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function el(){return this.each(Qr)}function tl(e){var t=typeof e=="function"?e:zn(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function nl(){return null}function ol(e,t){var n=typeof e=="function"?e:zn(e),o=t==null?nl:typeof t=="function"?t:Xt(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function il(){var e=this.parentNode;e&&e.removeChild(this)}function rl(){return this.each(il)}function ll(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function al(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function sl(e){return this.select(e?al:ll)}function ul(e){return arguments.length?this.property("__data__",e):this.node().__data__}function cl(e){return function(t){e.call(this,t,this.__data__)}}function dl(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function fl(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,i=t.length,r;n<i;++n)r=t[n],(!e.type||r.type===e.type)&&r.name===e.name?this.removeEventListener(r.type,r.listener,r.options):t[++o]=r;++o?t.length=o:delete this.__on}}}function hl(e,t,n){return function(){var o=this.__on,i,r=cl(t);if(o){for(var a=0,s=o.length;a<s;++a)if((i=o[a]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=r,i.options=n),i.value=t;return}}this.addEventListener(e.type,r,n),i={type:e.type,name:e.name,value:t,listener:r,options:n},o?o.push(i):this.__on=[i]}}function gl(e,t,n){var o=dl(e+""),i,r=o.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var u=0,c=s.length,d;u<c;++u)for(i=0,d=s[u];i<r;++i)if((a=o[i]).type===d.type&&a.name===d.name)return d.value}return}for(s=t?hl:fl,i=0;i<r;++i)this.each(s(o[i],t,n));return this}function Wn(e,t,n){var o=Yn(e),i=o.CustomEvent;typeof i=="function"?i=new i(t,n):(i=o.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function pl(e,t){return function(){return Wn(this,e,t)}}function ml(e,t){return function(){return Wn(this,e,t.apply(this,arguments))}}function yl(e,t){return this.each((typeof t=="function"?ml:pl)(e,t))}function*vl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],i=0,r=o.length,a;i<r;++i)(a=o[i])&&(yield a)}var Kn=[null];function me(e,t){this._groups=e,this._parents=t}function qe(){return new me([[document.documentElement]],Kn)}function wl(){return this}me.prototype=qe.prototype={constructor:me,select:Xi,selectAll:Ki,selectChild:Qi,selectChildren:or,filter:ir,data:cr,enter:rr,exit:fr,join:hr,merge:gr,selection:wl,order:pr,sort:mr,call:vr,nodes:wr,node:_r,size:br,empty:Er,each:xr,attr:$r,style:Dr,property:zr,classed:Fr,text:Ur,html:qr,raise:jr,lower:el,append:tl,insert:ol,remove:rl,clone:sl,datum:ul,on:gl,dispatch:yl,[Symbol.iterator]:vl};function ye(e){return typeof e=="string"?new me([[document.querySelector(e)]],[document.documentElement]):new me([[e]],Kn)}function _l(e){let t;for(;t=e.sourceEvent;)e=t;return e}function _e(e,t){if(e=_l(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}const bl={passive:!1},Je={capture:!0,passive:!1};function Zt(e){e.stopImmediatePropagation()}function Ye(e){e.preventDefault(),e.stopImmediatePropagation()}function qn(e){var t=e.document.documentElement,n=ye(e).on("dragstart.drag",Ye,Je);"onselectstart"in t?n.on("selectstart.drag",Ye,Je):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Jn(e,t){var n=e.document.documentElement,o=ye(e).on("dragstart.drag",null);t&&(o.on("click.drag",Ye,Je),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const mt=e=>()=>e;function Wt(e,{sourceEvent:t,subject:n,target:o,identifier:i,active:r,x:a,y:s,dx:u,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:r,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}Wt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function El(e){return!e.ctrlKey&&!e.button}function xl(){return this.parentNode}function Sl(e,t){return t??{x:e.x,y:e.y}}function Nl(){return navigator.maxTouchPoints||"ontouchstart"in this}function Cl(){var e=El,t=xl,n=Sl,o=Nl,i={},r=ft("start","drag","end"),a=0,s,u,c,d,h=0;function g(E){E.on("mousedown.drag",m).filter(o).on("touchstart.drag",x).on("touchmove.drag",N,bl).on("touchend.drag touchcancel.drag",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(E,$){if(!(d||!e.call(this,E,$))){var A=C(this,t.call(this,E,$),E,$,"mouse");A&&(ye(E.view).on("mousemove.drag",b,Je).on("mouseup.drag",_,Je),qn(E.view),Zt(E),c=!1,s=E.clientX,u=E.clientY,A("start",E))}}function b(E){if(Ye(E),!c){var $=E.clientX-s,A=E.clientY-u;c=$*$+A*A>h}i.mouse("drag",E)}function _(E){ye(E.view).on("mousemove.drag mouseup.drag",null),Jn(E.view,c),Ye(E),i.mouse("end",E)}function x(E,$){if(e.call(this,E,$)){var A=E.changedTouches,D=t.call(this,E,$),U=A.length,Z,V;for(Z=0;Z<U;++Z)(V=C(this,D,E,$,A[Z].identifier,A[Z]))&&(Zt(E),V("start",E,A[Z]))}}function N(E){var $=E.changedTouches,A=$.length,D,U;for(D=0;D<A;++D)(U=i[$[D].identifier])&&(Ye(E),U("drag",E,$[D]))}function p(E){var $=E.changedTouches,A=$.length,D,U;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),D=0;D<A;++D)(U=i[$[D].identifier])&&(Zt(E),U("end",E,$[D]))}function C(E,$,A,D,U,Z){var V=r.copy(),S=_e(Z||A,$),j,H,v;if((v=n.call(E,new Wt("beforestart",{sourceEvent:A,target:g,identifier:U,active:a,x:S[0],y:S[1],dx:0,dy:0,dispatch:V}),D))!=null)return j=v.x-S[0]||0,H=v.y-S[1]||0,function P(k,T,z){var M=S,B;switch(k){case"start":i[U]=P,B=a++;break;case"end":delete i[U],--a;case"drag":S=_e(z||T,$),B=a;break}V.call(k,E,new Wt(k,{sourceEvent:T,subject:v,target:g,identifier:U,active:B,x:S[0]+j,y:S[1]+H,dx:S[0]-M[0],dy:S[1]-M[1],dispatch:V}),D)}}return g.filter=function(E){return arguments.length?(e=typeof E=="function"?E:mt(!!E),g):e},g.container=function(E){return arguments.length?(t=typeof E=="function"?E:mt(E),g):t},g.subject=function(E){return arguments.length?(n=typeof E=="function"?E:mt(E),g):n},g.touchable=function(E){return arguments.length?(o=typeof E=="function"?E:mt(!!E),g):o},g.on=function(){var E=r.on.apply(r,arguments);return E===r?g:E},g.clickDistance=function(E){return arguments.length?(h=(E=+E)*E,g):Math.sqrt(h)},g}function Kt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function jn(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function je(){}var Qe=.7,yt=1/Qe,Ge="\\s*([+-]?\\d+)\\s*",et="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",be="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",kl=/^#([0-9a-f]{3,8})$/,Ml=new RegExp(`^rgb\\(${Ge},${Ge},${Ge}\\)$`),Il=new RegExp(`^rgb\\(${be},${be},${be}\\)$`),$l=new RegExp(`^rgba\\(${Ge},${Ge},${Ge},${et}\\)$`),Tl=new RegExp(`^rgba\\(${be},${be},${be},${et}\\)$`),Pl=new RegExp(`^hsl\\(${et},${be},${be}\\)$`),Bl=new RegExp(`^hsla\\(${et},${be},${be},${et}\\)$`),Qn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Kt(je,tt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:eo,formatHex:eo,formatHex8:Dl,formatHsl:Vl,formatRgb:to,toString:to});function eo(){return this.rgb().formatHex()}function Dl(){return this.rgb().formatHex8()}function Vl(){return lo(this).formatHsl()}function to(){return this.rgb().formatRgb()}function tt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=kl.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?no(t):n===3?new pe(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?vt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?vt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Ml.exec(e))?new pe(t[1],t[2],t[3],1):(t=Il.exec(e))?new pe(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$l.exec(e))?vt(t[1],t[2],t[3],t[4]):(t=Tl.exec(e))?vt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Pl.exec(e))?ro(t[1],t[2]/100,t[3]/100,1):(t=Bl.exec(e))?ro(t[1],t[2]/100,t[3]/100,t[4]):Qn.hasOwnProperty(e)?no(Qn[e]):e==="transparent"?new pe(NaN,NaN,NaN,0):null}function no(e){return new pe(e>>16&255,e>>8&255,e&255,1)}function vt(e,t,n,o){return o<=0&&(e=t=n=NaN),new pe(e,t,n,o)}function Ol(e){return e instanceof je||(e=tt(e)),e?(e=e.rgb(),new pe(e.r,e.g,e.b,e.opacity)):new pe}function qt(e,t,n,o){return arguments.length===1?Ol(e):new pe(e,t,n,o??1)}function pe(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}Kt(pe,qt,jn(je,{brighter(e){return e=e==null?yt:Math.pow(yt,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Qe:Math.pow(Qe,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pe(Pe(this.r),Pe(this.g),Pe(this.b),wt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:oo,formatHex:oo,formatHex8:Al,formatRgb:io,toString:io}));function oo(){return`#${Be(this.r)}${Be(this.g)}${Be(this.b)}`}function Al(){return`#${Be(this.r)}${Be(this.g)}${Be(this.b)}${Be((isNaN(this.opacity)?1:this.opacity)*255)}`}function io(){const e=wt(this.opacity);return`${e===1?"rgb(":"rgba("}${Pe(this.r)}, ${Pe(this.g)}, ${Pe(this.b)}${e===1?")":`, ${e})`}`}function wt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Pe(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Be(e){return e=Pe(e),(e<16?"0":"")+e.toString(16)}function ro(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ve(e,t,n,o)}function lo(e){if(e instanceof ve)return new ve(e.h,e.s,e.l,e.opacity);if(e instanceof je||(e=tt(e)),!e)return new ve;if(e instanceof ve)return e;e=e.rgb();var t=e.r/255,n=e.g/255,o=e.b/255,i=Math.min(t,n,o),r=Math.max(t,n,o),a=NaN,s=r-i,u=(r+i)/2;return s?(t===r?a=(n-o)/s+(n<o)*6:n===r?a=(o-t)/s+2:a=(t-n)/s+4,s/=u<.5?r+i:2-r-i,a*=60):s=u>0&&u<1?0:a,new ve(a,s,u,e.opacity)}function zl(e,t,n,o){return arguments.length===1?lo(e):new ve(e,t,n,o??1)}function ve(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}Kt(ve,zl,jn(je,{brighter(e){return e=e==null?yt:Math.pow(yt,e),new ve(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Qe:Math.pow(Qe,e),new ve(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,i=2*n-o;return new pe(Jt(e>=240?e-240:e+120,i,o),Jt(e,i,o),Jt(e<120?e+240:e-120,i,o),this.opacity)},clamp(){return new ve(ao(this.h),_t(this.s),_t(this.l),wt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wt(this.opacity);return`${e===1?"hsl(":"hsla("}${ao(this.h)}, ${_t(this.s)*100}%, ${_t(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ao(e){return e=(e||0)%360,e<0?e+360:e}function _t(e){return Math.max(0,Math.min(1,e||0))}function Jt(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const so=e=>()=>e;function Rl(e,t){return function(n){return e+n*t}}function Hl(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function Ll(e){return(e=+e)==1?uo:function(t,n){return n-t?Hl(t,n,e):so(isNaN(t)?n:t)}}function uo(e,t){var n=t-e;return n?Rl(e,n):so(isNaN(e)?t:e)}const co=function e(t){var n=Ll(t);function o(i,r){var a=n((i=qt(i)).r,(r=qt(r)).r),s=n(i.g,r.g),u=n(i.b,r.b),c=uo(i.opacity,r.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=u(d),i.opacity=c(d),i+""}}return o.gamma=e,o}(1);function Ie(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var jt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qt=new RegExp(jt.source,"g");function Fl(e){return function(){return e}}function Yl(e){return function(t){return e(t)+""}}function Gl(e,t){var n=jt.lastIndex=Qt.lastIndex=0,o,i,r,a=-1,s=[],u=[];for(e=e+"",t=t+"";(o=jt.exec(e))&&(i=Qt.exec(t));)(r=i.index)>n&&(r=t.slice(n,r),s[a]?s[a]+=r:s[++a]=r),(o=o[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,u.push({i:a,x:Ie(o,i)})),n=Qt.lastIndex;return n<t.length&&(r=t.slice(n),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?Yl(u[0].x):Fl(t):(t=u.length,function(c){for(var d=0,h;d<t;++d)s[(h=u[d]).i]=h.x(c);return s.join("")})}var fo=180/Math.PI,en={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ho(e,t,n,o,i,r){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*o)&&(n-=e*u,o-=t*u),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,u/=s),e*o<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:i,translateY:r,rotate:Math.atan2(t,e)*fo,skewX:Math.atan(u)*fo,scaleX:a,scaleY:s}}var bt;function Xl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?en:ho(t.a,t.b,t.c,t.d,t.e,t.f)}function Ul(e){return e==null||(bt||(bt=document.createElementNS("http://www.w3.org/2000/svg","g")),bt.setAttribute("transform",e),!(e=bt.transform.baseVal.consolidate()))?en:(e=e.matrix,ho(e.a,e.b,e.c,e.d,e.e,e.f))}function go(e,t,n,o){function i(c){return c.length?c.pop()+" ":""}function r(c,d,h,g,m,b){if(c!==h||d!==g){var _=m.push("translate(",null,t,null,n);b.push({i:_-4,x:Ie(c,h)},{i:_-2,x:Ie(d,g)})}else(h||g)&&m.push("translate("+h+t+g+n)}function a(c,d,h,g){c!==d?(c-d>180?d+=360:d-c>180&&(c+=360),g.push({i:h.push(i(h)+"rotate(",null,o)-2,x:Ie(c,d)})):d&&h.push(i(h)+"rotate("+d+o)}function s(c,d,h,g){c!==d?g.push({i:h.push(i(h)+"skewX(",null,o)-2,x:Ie(c,d)}):d&&h.push(i(h)+"skewX("+d+o)}function u(c,d,h,g,m,b){if(c!==h||d!==g){var _=m.push(i(m)+"scale(",null,",",null,")");b.push({i:_-4,x:Ie(c,h)},{i:_-2,x:Ie(d,g)})}else(h!==1||g!==1)&&m.push(i(m)+"scale("+h+","+g+")")}return function(c,d){var h=[],g=[];return c=e(c),d=e(d),r(c.translateX,c.translateY,d.translateX,d.translateY,h,g),a(c.rotate,d.rotate,h,g),s(c.skewX,d.skewX,h,g),u(c.scaleX,c.scaleY,d.scaleX,d.scaleY,h,g),c=d=null,function(m){for(var b=-1,_=g.length,x;++b<_;)h[(x=g[b]).i]=x.x(m);return h.join("")}}}var Zl=go(Xl,"px, ","px)","deg)"),Wl=go(Ul,", ",")",")"),Kl=1e-12;function po(e){return((e=Math.exp(e))+1/e)/2}function ql(e){return((e=Math.exp(e))-1/e)/2}function Jl(e){return((e=Math.exp(2*e))-1)/(e+1)}const jl=function e(t,n,o){function i(r,a){var s=r[0],u=r[1],c=r[2],d=a[0],h=a[1],g=a[2],m=d-s,b=h-u,_=m*m+b*b,x,N;if(_<Kl)N=Math.log(g/c)/t,x=function(D){return[s+D*m,u+D*b,c*Math.exp(t*D*N)]};else{var p=Math.sqrt(_),C=(g*g-c*c+o*_)/(2*c*n*p),E=(g*g-c*c-o*_)/(2*g*n*p),$=Math.log(Math.sqrt(C*C+1)-C),A=Math.log(Math.sqrt(E*E+1)-E);N=(A-$)/t,x=function(D){var U=D*N,Z=po($),V=c/(n*p)*(Z*Jl(t*U+$)-ql($));return[s+V*m,u+V*b,c*Z/po(t*U+$)]}}return x.duration=N*1e3*t/Math.SQRT2,x}return i.rho=function(r){var a=Math.max(.001,+r),s=a*a,u=s*s;return e(a,s,u)},i}(Math.SQRT2,2,4);var Xe=0,nt=0,ot=0,mo=1e3,Et,it,xt=0,De=0,St=0,rt=typeof performance=="object"&&performance.now?performance:Date,yo=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function tn(){return De||(yo(Ql),De=rt.now()+St)}function Ql(){De=0}function Nt(){this._call=this._time=this._next=null}Nt.prototype=vo.prototype={constructor:Nt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?tn():+n)+(t==null?0:+t),!this._next&&it!==this&&(it?it._next=this:Et=this,it=this),this._call=e,this._time=n,nn()},stop:function(){this._call&&(this._call=null,this._time=1/0,nn())}};function vo(e,t,n){var o=new Nt;return o.restart(e,t,n),o}function ea(){tn(),++Xe;for(var e=Et,t;e;)(t=De-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xe}function wo(){De=(xt=rt.now())+St,Xe=nt=0;try{ea()}finally{Xe=0,na(),De=0}}function ta(){var e=rt.now(),t=e-xt;t>mo&&(St-=t,xt=e)}function na(){for(var e,t=Et,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Et=n);it=e,nn(o)}function nn(e){if(!Xe){nt&&(nt=clearTimeout(nt));var t=e-De;t>24?(e<1/0&&(nt=setTimeout(wo,e-rt.now()-St)),ot&&(ot=clearInterval(ot))):(ot||(xt=rt.now(),ot=setInterval(ta,mo)),Xe=1,yo(wo))}}function _o(e,t,n){var o=new Nt;return t=t==null?0:+t,o.restart(i=>{o.stop(),e(i+t)},t,n),o}var oa=ft("start","end","cancel","interrupt"),ia=[],bo=0,Eo=1,on=2,Ct=3,xo=4,rn=5,kt=6;function Mt(e,t,n,o,i,r){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;ra(e,n,{name:t,index:o,group:i,on:oa,tween:ia,time:r.time,delay:r.delay,duration:r.duration,ease:r.ease,timer:null,state:bo})}function ln(e,t){var n=we(e,t);if(n.state>bo)throw new Error("too late; already scheduled");return n}function Ee(e,t){var n=we(e,t);if(n.state>Ct)throw new Error("too late; already running");return n}function we(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function ra(e,t,n){var o=e.__transition,i;o[t]=n,n.timer=vo(r,0,n.time);function r(c){n.state=Eo,n.timer.restart(a,n.delay,n.time),n.delay<=c&&a(c-n.delay)}function a(c){var d,h,g,m;if(n.state!==Eo)return u();for(d in o)if(m=o[d],m.name===n.name){if(m.state===Ct)return _o(a);m.state===xo?(m.state=kt,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete o[d]):+d<t&&(m.state=kt,m.timer.stop(),m.on.call("cancel",e,e.__data__,m.index,m.group),delete o[d])}if(_o(function(){n.state===Ct&&(n.state=xo,n.timer.restart(s,n.delay,n.time),s(c))}),n.state=on,n.on.call("start",e,e.__data__,n.index,n.group),n.state===on){for(n.state=Ct,i=new Array(g=n.tween.length),d=0,h=-1;d<g;++d)(m=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(i[++h]=m);i.length=h+1}}function s(c){for(var d=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(u),n.state=rn,1),h=-1,g=i.length;++h<g;)i[h].call(e,d);n.state===rn&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){n.state=kt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function It(e,t){var n=e.__transition,o,i,r=!0,a;if(n){t=t==null?null:t+"";for(a in n){if((o=n[a]).name!==t){r=!1;continue}i=o.state>on&&o.state<rn,o.state=kt,o.timer.stop(),o.on.call(i?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[a]}r&&delete e.__transition}}function la(e){return this.each(function(){It(this,e)})}function aa(e,t){var n,o;return function(){var i=Ee(this,e),r=i.tween;if(r!==n){o=n=r;for(var a=0,s=o.length;a<s;++a)if(o[a].name===t){o=o.slice(),o.splice(a,1);break}}i.tween=o}}function sa(e,t,n){var o,i;if(typeof n!="function")throw new Error;return function(){var r=Ee(this,e),a=r.tween;if(a!==o){i=(o=a).slice();for(var s={name:t,value:n},u=0,c=i.length;u<c;++u)if(i[u].name===t){i[u]=s;break}u===c&&i.push(s)}r.tween=i}}function ua(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=we(this.node(),n).tween,i=0,r=o.length,a;i<r;++i)if((a=o[i]).name===e)return a.value;return null}return this.each((t==null?aa:sa)(n,e,t))}function an(e,t,n){var o=e._id;return e.each(function(){var i=Ee(this,o);(i.value||(i.value={}))[t]=n.apply(this,arguments)}),function(i){return we(i,o).value[t]}}function So(e,t){var n;return(typeof t=="number"?Ie:t instanceof tt?co:(n=tt(t))?(t=n,co):Gl)(e,t)}function ca(e){return function(){this.removeAttribute(e)}}function da(e){return function(){this.removeAttributeNS(e.space,e.local)}}function fa(e,t,n){var o,i=n+"",r;return function(){var a=this.getAttribute(e);return a===i?null:a===o?r:r=t(o=a,n)}}function ha(e,t,n){var o,i=n+"",r;return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===o?r:r=t(o=a,n)}}function ga(e,t,n){var o,i,r;return function(){var a,s=n(this),u;return s==null?void this.removeAttribute(e):(a=this.getAttribute(e),u=s+"",a===u?null:a===o&&u===i?r:(i=u,r=t(o=a,s)))}}function pa(e,t,n){var o,i,r;return function(){var a,s=n(this),u;return s==null?void this.removeAttributeNS(e.space,e.local):(a=this.getAttributeNS(e.space,e.local),u=s+"",a===u?null:a===o&&u===i?r:(i=u,r=t(o=a,s)))}}function ma(e,t){var n=gt(e),o=n==="transform"?Wl:So;return this.attrTween(e,typeof t=="function"?(n.local?pa:ga)(n,o,an(this,"attr."+e,t)):t==null?(n.local?da:ca)(n):(n.local?ha:fa)(n,o,t))}function ya(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function va(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function wa(e,t){var n,o;function i(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&va(e,r)),n}return i._value=t,i}function _a(e,t){var n,o;function i(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&ya(e,r)),n}return i._value=t,i}function ba(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 o=gt(e);return this.tween(n,(o.local?wa:_a)(o,t))}function Ea(e,t){return function(){ln(this,e).delay=+t.apply(this,arguments)}}function xa(e,t){return t=+t,function(){ln(this,e).delay=t}}function Sa(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Ea:xa)(t,e)):we(this.node(),t).delay}function Na(e,t){return function(){Ee(this,e).duration=+t.apply(this,arguments)}}function Ca(e,t){return t=+t,function(){Ee(this,e).duration=t}}function ka(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Na:Ca)(t,e)):we(this.node(),t).duration}function Ma(e,t){if(typeof t!="function")throw new Error;return function(){Ee(this,e).ease=t}}function Ia(e){var t=this._id;return arguments.length?this.each(Ma(t,e)):we(this.node(),t).ease}function $a(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ee(this,e).ease=n}}function Ta(e){if(typeof e!="function")throw new Error;return this.each($a(this._id,e))}function Pa(e){typeof e!="function"&&(e=Hn(e));for(var t=this._groups,n=t.length,o=new Array(n),i=0;i<n;++i)for(var r=t[i],a=r.length,s=o[i]=[],u,c=0;c<a;++c)(u=r[c])&&e.call(u,u.__data__,c,r)&&s.push(u);return new Ne(o,this._parents,this._name,this._id)}function Ba(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,i=n.length,r=Math.min(o,i),a=new Array(o),s=0;s<r;++s)for(var u=t[s],c=n[s],d=u.length,h=a[s]=new Array(d),g,m=0;m<d;++m)(g=u[m]||c[m])&&(h[m]=g);for(;s<o;++s)a[s]=t[s];return new Ne(a,this._parents,this._name,this._id)}function Da(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 Va(e,t,n){var o,i,r=Da(t)?ln:Ee;return function(){var a=r(this,e),s=a.on;s!==o&&(i=(o=s).copy()).on(t,n),a.on=i}}function Oa(e,t){var n=this._id;return arguments.length<2?we(this.node(),n).on.on(e):this.each(Va(n,e,t))}function Aa(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function za(){return this.on("end.remove",Aa(this._id))}function Ra(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Xt(e));for(var o=this._groups,i=o.length,r=new Array(i),a=0;a<i;++a)for(var s=o[a],u=s.length,c=r[a]=new Array(u),d,h,g=0;g<u;++g)(d=s[g])&&(h=e.call(d,d.__data__,g,s))&&("__data__"in d&&(h.__data__=d.__data__),c[g]=h,Mt(c[g],t,n,g,c,we(d,n)));return new Ne(r,this._parents,t,n)}function Ha(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Rn(e));for(var o=this._groups,i=o.length,r=[],a=[],s=0;s<i;++s)for(var u=o[s],c=u.length,d,h=0;h<c;++h)if(d=u[h]){for(var g=e.call(d,d.__data__,h,u),m,b=we(d,n),_=0,x=g.length;_<x;++_)(m=g[_])&&Mt(m,t,n,_,g,b);r.push(g),a.push(d)}return new Ne(r,a,t,n)}var La=qe.prototype.constructor;function Fa(){return new La(this._groups,this._parents)}function Ya(e,t){var n,o,i;return function(){var r=Fe(this,e),a=(this.style.removeProperty(e),Fe(this,e));return r===a?null:r===n&&a===o?i:i=t(n=r,o=a)}}function No(e){return function(){this.style.removeProperty(e)}}function Ga(e,t,n){var o,i=n+"",r;return function(){var a=Fe(this,e);return a===i?null:a===o?r:r=t(o=a,n)}}function Xa(e,t,n){var o,i,r;return function(){var a=Fe(this,e),s=n(this),u=s+"";return s==null&&(u=s=(this.style.removeProperty(e),Fe(this,e))),a===u?null:a===o&&u===i?r:(i=u,r=t(o=a,s))}}function Ua(e,t){var n,o,i,r="style."+t,a="end."+r,s;return function(){var u=Ee(this,e),c=u.on,d=u.value[r]==null?s||(s=No(t)):void 0;(c!==n||i!==d)&&(o=(n=c).copy()).on(a,i=d),u.on=o}}function Za(e,t,n){var o=(e+="")=="transform"?Zl:So;return t==null?this.styleTween(e,Ya(e,o)).on("end.style."+e,No(e)):typeof t=="function"?this.styleTween(e,Xa(e,o,an(this,"style."+e,t))).each(Ua(this._id,e)):this.styleTween(e,Ga(e,o,t),n).on("end.style."+e,null)}function Wa(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function Ka(e,t,n){var o,i;function r(){var a=t.apply(this,arguments);return a!==i&&(o=(i=a)&&Wa(e,a,n)),o}return r._value=t,r}function qa(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,Ka(e,t,n??""))}function Ja(e){return function(){this.textContent=e}}function ja(e){return function(){var t=e(this);this.textContent=t??""}}function Qa(e){return this.tween("text",typeof e=="function"?ja(an(this,"text",e)):Ja(e==null?"":e+""))}function es(e){return function(t){this.textContent=e.call(this,t)}}function ts(e){var t,n;function o(){var i=e.apply(this,arguments);return i!==n&&(t=(n=i)&&es(i)),t}return o._value=e,o}function ns(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,ts(e))}function os(){for(var e=this._name,t=this._id,n=Co(),o=this._groups,i=o.length,r=0;r<i;++r)for(var a=o[r],s=a.length,u,c=0;c<s;++c)if(u=a[c]){var d=we(u,t);Mt(u,e,n,c,a,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Ne(o,this._parents,e,n)}function is(){var e,t,n=this,o=n._id,i=n.size();return new Promise(function(r,a){var s={value:a},u={value:function(){--i===0&&r()}};n.each(function(){var c=Ee(this,o),d=c.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(u)),c.on=t}),i===0&&r()})}var rs=0;function Ne(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Co(){return++rs}var Ce=qe.prototype;Ne.prototype={constructor:Ne,select:Ra,selectAll:Ha,selectChild:Ce.selectChild,selectChildren:Ce.selectChildren,filter:Pa,merge:Ba,selection:Fa,transition:os,call:Ce.call,nodes:Ce.nodes,node:Ce.node,size:Ce.size,empty:Ce.empty,each:Ce.each,on:Oa,attr:ma,attrTween:ba,style:Za,styleTween:qa,text:Qa,textTween:ns,remove:za,tween:ua,delay:Sa,duration:ka,ease:Ia,easeVarying:Ta,end:is,[Symbol.iterator]:Ce[Symbol.iterator]};function ls(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var as={time:null,delay:0,duration:250,ease:ls};function ss(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 us(e){var t,n;e instanceof Ne?(t=e._id,e=e._name):(t=Co(),(n=as).time=tn(),e=e==null?null:e+"");for(var o=this._groups,i=o.length,r=0;r<i;++r)for(var a=o[r],s=a.length,u,c=0;c<s;++c)(u=a[c])&&Mt(u,e,t,c,a,n||ss(u,t));return new Ne(o,this._parents,e,t)}qe.prototype.interrupt=la,qe.prototype.transition=us;const $t=e=>()=>e;function cs(e,{sourceEvent:t,target:n,transform:o,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:i}})}function ke(e,t,n){this.k=e,this.x=t,this.y=n}ke.prototype={constructor:ke,scale:function(e){return e===1?this:new ke(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ke(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 Ue=new ke(1,0,0);ke.prototype;function sn(e){e.stopImmediatePropagation()}function lt(e){e.preventDefault(),e.stopImmediatePropagation()}function ds(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function fs(){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 ko(){return this.__zoom||Ue}function hs(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function gs(){return navigator.maxTouchPoints||"ontouchstart"in this}function ps(e,t,n){var o=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],r=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),a>r?(r+a)/2:Math.min(0,r)||Math.max(0,a))}function ms(){var e=ds,t=fs,n=ps,o=hs,i=gs,r=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],s=250,u=jl,c=ft("start","zoom","end"),d,h,g,m=500,b=150,_=0,x=10;function N(v){v.property("__zoom",ko).on("wheel.zoom",U,{passive:!1}).on("mousedown.zoom",Z).on("dblclick.zoom",V).filter(i).on("touchstart.zoom",S).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}N.transform=function(v,P,k,T){var z=v.selection?v.selection():v;z.property("__zoom",ko),v!==z?$(v,P,k,T):z.interrupt().each(function(){A(this,arguments).event(T).start().zoom(null,typeof P=="function"?P.apply(this,arguments):P).end()})},N.scaleBy=function(v,P,k,T){N.scaleTo(v,function(){var z=this.__zoom.k,M=typeof P=="function"?P.apply(this,arguments):P;return z*M},k,T)},N.scaleTo=function(v,P,k,T){N.transform(v,function(){var z=t.apply(this,arguments),M=this.__zoom,B=k==null?E(z):typeof k=="function"?k.apply(this,arguments):k,L=M.invert(B),K=typeof P=="function"?P.apply(this,arguments):P;return n(C(p(M,K),B,L),z,a)},k,T)},N.translateBy=function(v,P,k,T){N.transform(v,function(){return n(this.__zoom.translate(typeof P=="function"?P.apply(this,arguments):P,typeof k=="function"?k.apply(this,arguments):k),t.apply(this,arguments),a)},null,T)},N.translateTo=function(v,P,k,T,z){N.transform(v,function(){var M=t.apply(this,arguments),B=this.__zoom,L=T==null?E(M):typeof T=="function"?T.apply(this,arguments):T;return n(Ue.translate(L[0],L[1]).scale(B.k).translate(typeof P=="function"?-P.apply(this,arguments):-P,typeof k=="function"?-k.apply(this,arguments):-k),M,a)},T,z)};function p(v,P){return P=Math.max(r[0],Math.min(r[1],P)),P===v.k?v:new ke(P,v.x,v.y)}function C(v,P,k){var T=P[0]-k[0]*v.k,z=P[1]-k[1]*v.k;return T===v.x&&z===v.y?v:new ke(v.k,T,z)}function E(v){return[(+v[0][0]+ +v[1][0])/2,(+v[0][1]+ +v[1][1])/2]}function $(v,P,k,T){v.on("start.zoom",function(){A(this,arguments).event(T).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(T).end()}).tween("zoom",function(){var z=this,M=arguments,B=A(z,M).event(T),L=t.apply(z,M),K=k==null?E(L):typeof k=="function"?k.apply(z,M):k,re=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),te=z.__zoom,oe=typeof P=="function"?P.apply(z,M):P,ue=u(te.invert(K).concat(re/te.k),oe.invert(K).concat(re/oe.k));return function(le){if(le===1)le=oe;else{var q=ue(le),W=re/q[2];le=new ke(W,K[0]-q[0]*W,K[1]-q[1]*W)}B.zoom(null,le)}})}function A(v,P,k){return!k&&v.__zooming||new D(v,P)}function D(v,P){this.that=v,this.args=P,this.active=0,this.sourceEvent=null,this.extent=t.apply(v,P),this.taps=0}D.prototype={event:function(v){return v&&(this.sourceEvent=v),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(v,P){return this.mouse&&v!=="mouse"&&(this.mouse[1]=P.invert(this.mouse[0])),this.touch0&&v!=="touch"&&(this.touch0[1]=P.invert(this.touch0[0])),this.touch1&&v!=="touch"&&(this.touch1[1]=P.invert(this.touch1[0])),this.that.__zoom=P,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(v){var P=ye(this.that).datum();c.call(v,this.that,new cs(v,{sourceEvent:this.sourceEvent,target:N,type:v,transform:this.that.__zoom,dispatch:c}),P)}};function U(v,...P){if(!e.apply(this,arguments))return;var k=A(this,P).event(v),T=this.__zoom,z=Math.max(r[0],Math.min(r[1],T.k*Math.pow(2,o.apply(this,arguments)))),M=_e(v);if(k.wheel)(k.mouse[0][0]!==M[0]||k.mouse[0][1]!==M[1])&&(k.mouse[1]=T.invert(k.mouse[0]=M)),clearTimeout(k.wheel);else{if(T.k===z)return;k.mouse=[M,T.invert(M)],It(this),k.start()}lt(v),k.wheel=setTimeout(B,b),k.zoom("mouse",n(C(p(T,z),k.mouse[0],k.mouse[1]),k.extent,a));function B(){k.wheel=null,k.end()}}function Z(v,...P){if(g||!e.apply(this,arguments))return;var k=v.currentTarget,T=A(this,P,!0).event(v),z=ye(v.view).on("mousemove.zoom",K,!0).on("mouseup.zoom",re,!0),M=_e(v,k),B=v.clientX,L=v.clientY;qn(v.view),sn(v),T.mouse=[M,this.__zoom.invert(M)],It(this),T.start();function K(te){if(lt(te),!T.moved){var oe=te.clientX-B,ue=te.clientY-L;T.moved=oe*oe+ue*ue>_}T.event(te).zoom("mouse",n(C(T.that.__zoom,T.mouse[0]=_e(te,k),T.mouse[1]),T.extent,a))}function re(te){z.on("mousemove.zoom mouseup.zoom",null),Jn(te.view,T.moved),lt(te),T.event(te).end()}}function V(v,...P){if(e.apply(this,arguments)){var k=this.__zoom,T=_e(v.changedTouches?v.changedTouches[0]:v,this),z=k.invert(T),M=k.k*(v.shiftKey?.5:2),B=n(C(p(k,M),T,z),t.apply(this,P),a);lt(v),s>0?ye(this).transition().duration(s).call($,B,T,v):ye(this).call(N.transform,B,T,v)}}function S(v,...P){if(e.apply(this,arguments)){var k=v.touches,T=k.length,z=A(this,P,v.changedTouches.length===T).event(v),M,B,L,K;for(sn(v),B=0;B<T;++B)L=k[B],K=_e(L,this),K=[K,this.__zoom.invert(K),L.identifier],z.touch0?!z.touch1&&z.touch0[2]!==K[2]&&(z.touch1=K,z.taps=0):(z.touch0=K,M=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),M&&(z.taps<2&&(h=K[0],d=setTimeout(function(){d=null},m)),It(this),z.start())}}function j(v,...P){if(this.__zooming){var k=A(this,P).event(v),T=v.changedTouches,z=T.length,M,B,L,K;for(lt(v),M=0;M<z;++M)B=T[M],L=_e(B,this),k.touch0&&k.touch0[2]===B.identifier?k.touch0[0]=L:k.touch1&&k.touch1[2]===B.identifier&&(k.touch1[0]=L);if(B=k.that.__zoom,k.touch1){var re=k.touch0[0],te=k.touch0[1],oe=k.touch1[0],ue=k.touch1[1],le=(le=oe[0]-re[0])*le+(le=oe[1]-re[1])*le,q=(q=ue[0]-te[0])*q+(q=ue[1]-te[1])*q;B=p(B,Math.sqrt(le/q)),L=[(re[0]+oe[0])/2,(re[1]+oe[1])/2],K=[(te[0]+ue[0])/2,(te[1]+ue[1])/2]}else if(k.touch0)L=k.touch0[0],K=k.touch0[1];else return;k.zoom("touch",n(C(B,L,K),k.extent,a))}}function H(v,...P){if(this.__zooming){var k=A(this,P).event(v),T=v.changedTouches,z=T.length,M,B;for(sn(v),g&&clearTimeout(g),g=setTimeout(function(){g=null},m),M=0;M<z;++M)B=T[M],k.touch0&&k.touch0[2]===B.identifier?delete k.touch0:k.touch1&&k.touch1[2]===B.identifier&&delete k.touch1;if(k.touch1&&!k.touch0&&(k.touch0=k.touch1,delete k.touch1),k.touch0)k.touch0[1]=this.__zoom.invert(k.touch0[0]);else if(k.end(),k.taps===2&&(B=_e(B,this),Math.hypot(h[0]-B[0],h[1]-B[1])<x)){var L=ye(this).on("dblclick.zoom");L&&L.apply(this,arguments)}}}return N.wheelDelta=function(v){return arguments.length?(o=typeof v=="function"?v:$t(+v),N):o},N.filter=function(v){return arguments.length?(e=typeof v=="function"?v:$t(!!v),N):e},N.touchable=function(v){return arguments.length?(i=typeof v=="function"?v:$t(!!v),N):i},N.extent=function(v){return arguments.length?(t=typeof v=="function"?v:$t([[+v[0][0],+v[0][1]],[+v[1][0],+v[1][1]]]),N):t},N.scaleExtent=function(v){return arguments.length?(r[0]=+v[0],r[1]=+v[1],N):[r[0],r[1]]},N.translateExtent=function(v){return arguments.length?(a[0][0]=+v[0][0],a[1][0]=+v[1][0],a[0][1]=+v[0][1],a[1][1]=+v[1][1],N):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},N.constrain=function(v){return arguments.length?(n=v,N):n},N.duration=function(v){return arguments.length?(s=+v,N):s},N.interpolate=function(v){return arguments.length?(u=v,N):u},N.on=function(){var v=c.on.apply(c,arguments);return v===c?N:v},N.clickDistance=function(v){return arguments.length?(_=(v=+v)*v,N):Math.sqrt(_)},N.tapDistance=function(v){return arguments.length?(x=+v,N):x},N}var F=(e=>(e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom",e))(F||{}),un=(e=>(e.Partial="partial",e.Full="full",e))(un||{}),Ve=(e=>(e.Bezier="default",e.SimpleBezier="simple-bezier",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e))(Ve||{}),Oe=(e=>(e.Strict="strict",e.Loose="loose",e))(Oe||{}),cn=(e=>(e.Arrow="arrow",e.ArrowClosed="arrowclosed",e))(cn||{}),at=(e=>(e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal",e))(at||{});function dn(){return typeof window<"u"?window:{chrome:!1,addEventListener(...e){}}}function fn(e){var t,n;const o=((n=(t=e.composedPath)==null?void 0:t.call(e))==null?void 0:n[0])||e.target,i=typeof(o==null?void 0:o.hasAttribute)=="function"?o.hasAttribute("contenteditable"):!1,r=typeof(o==null?void 0:o.closest)=="function"?o.closest(".nokey"):null;return["INPUT","SELECT","TEXTAREA"].includes(o==null?void 0:o.nodeName)||i||!!r}function ys(e){return e.ctrlKey||e.metaKey||e.shiftKey}function Mo(e,t,n,o){const i=t.split("+").map(r=>r.trim().toLowerCase());return i.length===1?e.toLowerCase()===t.toLowerCase():(o?n.delete(e.toLowerCase()):n.add(e.toLowerCase()),i.every((r,a)=>n.has(r)&&Array.from(n.values())[a]===i[a]))}function vs(e,t){return n=>{if(!n.code&&!n.key)return!1;const o=ws(n.code,e);return Array.isArray(e)?e.some(i=>Mo(n[o],i,t,n.type==="keyup")):Mo(n[o],e,t,n.type==="keyup")}}function ws(e,t){return typeof t=="string"?e===t?"code":"key":t.includes(e)?"code":"key"}function st(e,t,n={actInsideInputWithModifier:!0}){const o=dn(),i=l.ref(l.toValue(e)===!0);let r=!1;const a=new Set;let s=c(l.toValue(e));return l.watch(i,(d,h)=>{d!==h&&(t==null||t(d))}),l.watch(()=>l.toValue(e),(d,h)=>{typeof h=="boolean"&&typeof d!="boolean"&&u(),s=c(d)},{immediate:!0}),Dn(o,"blur",()=>{l.toValue(e)!==!0&&(i.value=!1)}),Vn((...d)=>s(...d),d=>{r=ys(d),!((!r||r&&!n.actInsideInputWithModifier)&&fn(d))&&(d.preventDefault(),i.value=!0)},{eventName:"keydown"}),Vn((...d)=>s(...d),d=>{if(i.value){if((!r||r&&!n.actInsideInputWithModifier)&&fn(d))return;u()}},{eventName:"keyup"}),i;function u(){r=!1,a.clear(),i.value=!1}function c(d){return d===null?(u(),()=>!1):typeof d=="boolean"?(u(),i.value=d,()=>!1):Array.isArray(d)||typeof d=="string"?vs(d,a):d}}const Io="vue-flow__node-desc",$o="vue-flow__edge-desc",_s="vue-flow__aria-live",To=["Enter"," ","Escape"],Ze={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function Po(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:o,noDragClassName:i,nodes:r,nodeExtent:a,nodeDragThreshold:s,viewport:u,autoPanOnNodeDrag:c,nodesDraggable:d,panBy:h,findNode:g,multiSelectionActive:m,nodesSelectionActive:b,selectNodesOnDrag:_,removeSelectedElements:x,addSelectedNodes:N,updateNodePositions:p,emits:C}=de(),{onStart:E,onDrag:$,onStop:A,el:D,disabled:U,id:Z,selectable:V,dragHandle:S}=e,j=l.ref(!1);let H=[],v,P=null,k={x:void 0,y:void 0},T={x:0,y:0},z=null,M=!1,B=0,L=!1;const K=Ns(),re=({x:W,y:J})=>{k={x:W,y:J};let Q=!1;if(H=H.map(ie=>{const Y={x:W-ie.distance.x,y:J-ie.distance.y};n.value&&(Y.x=o.value[0]*Math.round(Y.x/o.value[0]),Y.y=o.value[1]*Math.round(Y.y/o.value[1]));const{computedPosition:f}=bn(ie,Y,C.error,a.value,ie.parentNode?g(ie.parentNode):void 0);return Q=Q||ie.position.x!==f.x||ie.position.y!==f.y,ie.position=f,ie}),!!Q&&(p(H,!0,!0),j.value=!0,z)){const[ie,Y]=_n({id:Z,dragItems:H,findNode:g});$({event:z,node:ie,nodes:Y})}},te=()=>{if(!P)return;const[W,J]=jo(T,P);if(W!==0||J!==0){const Q={x:(k.x??0)-W/u.value.zoom,y:(k.y??0)-J/u.value.zoom};h({x:W,y:J})&&re(Q)}B=requestAnimationFrame(te)},oe=(W,J)=>{M=!0;const Q=g(Z);!_.value&&!m.value&&Q&&(Q.selected||x()),Q&&l.toValue(V)&&_.value&&Cn(Q,m.value,N,x,b,!1,J);const ie=K(W);if(k=ie,H=Hs(r.value,d.value,ie,g,Z),H.length){const[Y,f]=_n({id:Z,dragItems:H,findNode:g});E({event:W.sourceEvent,node:Y,nodes:f})}},ue=(W,J)=>{var Q;W.sourceEvent.type==="touchmove"&&W.sourceEvent.touches.length>1||(s.value===0&&oe(W,J),k=K(W),P=((Q=t.value)==null?void 0:Q.getBoundingClientRect())||null,T=Re(W.sourceEvent,P))},le=(W,J)=>{const Q=K(W);if(!L&&M&&c.value&&(L=!0,te()),!M){const ie=Q.xSnapped-(k.x??0),Y=Q.ySnapped-(k.y??0);Math.sqrt(ie*ie+Y*Y)>s.value&&oe(W,J)}(k.x!==Q.xSnapped||k.y!==Q.ySnapped)&&H.length&&M&&(z=W.sourceEvent,T=Re(W.sourceEvent,P),re(Q))},q=W=>{if(M&&(j.value=!1,L=!1,M=!1,cancelAnimationFrame(B),H.length)){p(H,!1,!1);const[J,Q]=_n({id:Z,dragItems:H,findNode:g});A({event:W.sourceEvent,node:J,nodes:Q})}};return l.watch([()=>l.toValue(U),D],([W,J],Q,ie)=>{if(J){const Y=ye(J);W||(v=Cl().on("start",f=>ue(f,J)).on("drag",f=>le(f,J)).on("end",f=>q(f)).filter(f=>{const y=f.target,w=l.toValue(S);return!f.button&&(!i.value||!oi(y,`.${i.value}`,J)&&(!w||oi(y,w,J)))}),Y.call(v)),ie(()=>{Y.on(".drag",null),v&&(v.on("start",null),v.on("drag",null),v.on("end",null))})}}),j}const Bo=Symbol("vueFlow"),Do=Symbol("nodeId"),Vo=Symbol("nodeRef"),bs=Symbol("edgeId"),Es=Symbol("edgeRef"),Tt=Symbol("slots");function xs(){return{doubleClick:R(),click:R(),mouseEnter:R(),mouseMove:R(),mouseLeave:R(),contextMenu:R(),updateStart:R(),update:R(),updateEnd:R()}}function Ss(e,t){const n=xs();return n.doubleClick.on(o=>{var i,r;t.edgeDoubleClick(o),(r=(i=e.events)==null?void 0:i.doubleClick)==null||r.call(i,o)}),n.click.on(o=>{var i,r;t.edgeClick(o),(r=(i=e.events)==null?void 0:i.click)==null||r.call(i,o)}),n.mouseEnter.on(o=>{var i,r;t.edgeMouseEnter(o),(r=(i=e.events)==null?void 0:i.mouseEnter)==null||r.call(i,o)}),n.mouseMove.on(o=>{var i,r;t.edgeMouseMove(o),(r=(i=e.events)==null?void 0:i.mouseMove)==null||r.call(i,o)}),n.mouseLeave.on(o=>{var i,r;t.edgeMouseLeave(o),(r=(i=e.events)==null?void 0:i.mouseLeave)==null||r.call(i,o)}),n.contextMenu.on(o=>{var i,r;t.edgeContextMenu(o),(r=(i=e.events)==null?void 0:i.contextMenu)==null||r.call(i,o)}),n.updateStart.on(o=>{var i,r;t.edgeUpdateStart(o),(r=(i=e.events)==null?void 0:i.updateStart)==null||r.call(i,o)}),n.update.on(o=>{var i,r;t.edgeUpdate(o),(r=(i=e.events)==null?void 0:i.update)==null||r.call(i,o)}),n.updateEnd.on(o=>{var i,r;t.edgeUpdateEnd(o),(r=(i=e.events)==null?void 0:i.updateEnd)==null||r.call(i,o)}),Object.entries(n).reduce((o,[i,r])=>(o.emit[i]=r.trigger,o.on[i]=r.on,o),{emit:{},on:{}})}function Ns(){const{viewport:e,snapGrid:t,snapToGrid:n}=de();return({sourceEvent:o})=>{const i=o.touches?o.touches[0].clientX:o.clientX,r=o.touches?o.touches[0].clientY:o.clientY,a={x:(i-e.value.x)/e.value.zoom,y:(r-e.value.y)/e.value.zoom};return{xSnapped:n.value?t.value[0]*Math.round(a.x/t.value[0]):a.x,ySnapped:n.value?t.value[1]*Math.round(a.y/t.value[1]):a.y,...a}}}function Pt(){return!0}function Oo({handleId:e,nodeId:t,type:n,isValidConnection:o,edgeUpdaterType:i,onEdgeUpdate:r,onEdgeUpdateEnd:a}){const{vueFlowRef:s,connectionMode:u,connectionRadius:c,connectOnClick:d,connectionClickStartHandle:h,nodesConnectable:g,autoPanOnConnect:m,findNode:b,panBy:_,startConnection:x,updateConnection:N,endConnection:p,emits:C,viewport:E,edges:$,nodes:A,isValidConnection:D}=de();let U=null,Z=!1,V=null;function S(H){var v;const P=l.toValue(n)==="target",k=xn(H),T=Lo(H.target);if(k&&H.button===0||!k){let z=function(f){J=Re(f,q);const{handle:y,validHandleResult:w}=Zs(f,T,mn(J,E.value,!1,[1,1]),c.value,ie,I=>ui(f,I,u.value,l.toValue(t),l.toValue(e),P?"target":"source",L,T,$.value,A.value,b));if(K=y,Q||(Y(),Q=!0),U=w.connection,Z=w.isValid,V=w.handleDomNode,N(K&&Z?Xo({x:K.x,y:K.y},E.value):J,w.endHandle,Ks(!!K,Z)),!K&&!Z&&!V)return Sn(W);U&&U.source!==U.target&&V&&(Sn(W),W=V,V.classList.add("connecting","vue-flow__handle-connecting"),V.classList.toggle("valid",Z),V.classList.toggle("vue-flow__handle-valid",Z))},M=function(f){(K||V)&&U&&Z&&(r?r(f,U):C.connect(U)),C.connectEnd(f),i&&(a==null||a(f)),Sn(W),cancelAnimationFrame(re),p(f),Q=!1,Z=!1,U=null,V=null,T.removeEventListener("mousemove",z),T.removeEventListener("mouseup",M),T.removeEventListener("touchmove",z),T.removeEventListener("touchend",M)};const B=b(l.toValue(t));let L=l.toValue(o)||D.value||Pt;!L&&B&&(L=(P?B.isValidSourcePos:B.isValidTargetPos)||Pt);let K,re=0;const{x:te,y:oe}=Re(H),ue=T==null?void 0:T.elementFromPoint(te,oe),le=Nn(l.toValue(i),ue),q=(v=s.value)==null?void 0:v.getBoundingClientRect();if(!q||!le)return;let W,J=Re(H,q),Q=!1;const ie=Ws({nodes:A.value,nodeId:l.toValue(t),handleId:l.toValue(e),handleType:le}),Y=()=>{if(!m.value)return;const[f,y]=jo(J,q);_({x:f,y}),re=requestAnimationFrame(Y)};x({nodeId:l.toValue(t),handleId:l.toValue(e),type:le},{x:te-q.left,y:oe-q.top}),C.connectStart({event:H,nodeId:l.toValue(t),handleId:l.toValue(e),handleType:le}),T.addEventListener("mousemove",z),T.addEventListener("mouseup",M),T.addEventListener("touchmove",z),T.addEventListener("touchend",M)}}function j(H){if(!d.value)return;const v=l.toValue(n)==="target";if(!h.value)C.clickConnectStart({event:H,nodeId:l.toValue(t),handleId:l.toValue(e)}),x({nodeId:l.toValue(t),type:l.toValue(n),handleId:l.toValue(e)},void 0,!0);else{let P=l.toValue(o)||D.value||Pt;const k=b(l.toValue(t));if(!P&&k&&(P=(v?k.isValidSourcePos:k.isValidTargetPos)||Pt),k&&(typeof k.connectable>"u"?g.value:k.connectable)===!1)return;const T=Lo(H.target),{connection:z,isValid:M}=ui(H,{nodeId:l.toValue(t),id:l.toValue(e),type:l.toValue(n)},u.value,h.value.nodeId,h.value.handleId||null,h.value.type,P,T,$.value,A.value,b),B=z.source===z.target;M&&!B&&C.connect(z),C.clickConnectEnd(H),p(H,!0)}}return{handlePointerDown:S,handleClick:j}}function Cs(){return l.inject(Do,"")}function Ao(e){const t=e??Cs()??"",n=l.inject(Vo,l.ref(null)),{findNode:o,edges:i,emits:r}=de(),a=o(t);return a||r.error(new ge(he.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:a,parentNode:l.computed(()=>o(a.parentNode)),connectedEdges:l.computed(()=>yn([a],i.value))}}function ks(){return{doubleClick:R(),click:R(),mouseEnter:R(),mouseMove:R(),mouseLeave:R(),contextMenu:R(),dragStart:R(),drag:R(),dragStop:R()}}function Ms(e,t){const n=ks();return n.doubleClick.on(o=>{var i,r;t.nodeDoubleClick(o),(r=(i=e.events)==null?void 0:i.doubleClick)==null||r.call(i,o)}),n.click.on(o=>{var i,r;t.nodeClick(o),(r=(i=e.events)==null?void 0:i.click)==null||r.call(i,o)}),n.mouseEnter.on(o=>{var i,r;t.nodeMouseEnter(o),(r=(i=e.events)==null?void 0:i.mouseEnter)==null||r.call(i,o)}),n.mouseMove.on(o=>{var i,r;t.nodeMouseMove(o),(r=(i=e.events)==null?void 0:i.mouseMove)==null||r.call(i,o)}),n.mouseLeave.on(o=>{var i,r;t.nodeMouseLeave(o),(r=(i=e.events)==null?void 0:i.mouseLeave)==null||r.call(i,o)}),n.contextMenu.on(o=>{var i,r;t.nodeContextMenu(o),(r=(i=e.events)==null?void 0:i.contextMenu)==null||r.call(i,o)}),n.dragStart.on(o=>{var i,r;t.nodeDragStart(o),(r=(i=e.events)==null?void 0:i.dragStart)==null||r.call(i,o)}),n.drag.on(o=>{var i,r;t.nodeDrag(o),(r=(i=e.events)==null?void 0:i.drag)==null||r.call(i,o)}),n.dragStop.on(o=>{var i,r;t.nodeDragStop(o),(r=(i=e.events)==null?void 0:i.dragStop)==null||r.call(i,o)}),Object.entries(n).reduce((o,[i,r])=>(o.emit[i]=r.trigger,o.on[i]=r.on,o),{emit:{},on:{}})}function zo(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:o,snapGrid:i,snapToGrid:r,nodesDraggable:a,emits:s}=de();return(u,c=!1)=>{const d=r.value?i.value[0]:5,h=r.value?i.value[1]:5,g=c?4:1,m=u.x*d*g,b=u.y*h*g,_=[];for(const x of e.value)if(x.draggable||a&&typeof x.draggable>"u"){const N={x:x.computedPosition.x+m,y:x.computedPosition.y+b},{computedPosition:p}=bn(x,N,s.error,t.value,x.parentNode?o(x.parentNode):void 0);_.push({id:x.id,position:p,from:x.position,distance:{x:u.x,y:u.y},dimensions:x.dimensions})}n(_,!0,!1)}}const hn=.1;function $e(){return Ot("Viewport not initialized yet."),Promise.resolve(!1)}const Is={zoomIn:$e,zoomOut:$e,zoomTo:$e,fitView:$e,setCenter:$e,fitBounds:$e,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:$e,setTransform:$e,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function $s(e){function t(o,i){return new Promise(r=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.scaleBy(gn(e.d3Selection,i,()=>{r(!0)}),o):r(!1)})}function n(o,i,r,a){return new Promise(s=>{const{x:u,y:c}=Ho({x:-o,y:-i},e.translateExtent),d=Ue.translate(-u,-c).scale(r);e.d3Selection&&e.d3Zoom?e.d3Zoom.transform(gn(e.d3Selection,a,()=>{s(!0)}),d):s(!1)})}return l.computed(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:i=>t(1.2,i==null?void 0:i.duration),zoomOut:i=>t(1/1.2,i==null?void 0:i.duration),zoomTo:(i,r)=>new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.scaleTo(gn(e.d3Selection,r==null?void 0:r.duration,()=>{a(!0)}),i):a(!1)}),setViewport:(i,r)=>n(i.x,i.y,i.zoom,r==null?void 0:r.duration),setTransform:(i,r)=>n(i.x,i.y,i.zoom,r==null?void 0:r.duration),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(i={padding:hn,includeHiddenNodes:!1,duration:0})=>{var r,a;const s=[];for(const g of e.nodes)g.dimensions.width&&g.dimensions.height&&((i==null?void 0:i.includeHiddenNodes)||!g.hidden)&&(!((r=i.nodes)!=null&&r.length)||(a=i.nodes)!=null&&a.length&&i.nodes.includes(g.id))&&s.push(g);if(!s.length)return Promise.resolve(!1);const u=Zo(s),{x:c,y:d,zoom:h}=Ko(u,e.dimensions.width,e.dimensions.height,i.minZoom??e.minZoom,i.maxZoom??e.maxZoom,i.padding??hn,i.offset);return n(c,d,h,i==null?void 0:i.duration)},setCenter:(i,r,a)=>{const s=typeof(a==null?void 0:a.zoom)<"u"?a.zoom:e.maxZoom,u=e.dimensions.width/2-i*s,c=e.dimensions.height/2-r*s;return n(u,c,s,a==null?void 0:a.duration)},fitBounds:(i,r={padding:hn})=>{const{x:a,y:s,zoom:u}=Ko(i,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,r.padding);return n(a,s,u,r==null?void 0:r.duration)},project:i=>mn(i,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:i=>{if(e.vueFlowRef){const{x:r,y:a}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x-r,y:i.y-a};return mn(s,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:i=>{if(e.vueFlowRef){const{x:r,y:a}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x+r,y:i.y+a};return Xo(s,e.viewport)}return{x:0,y:0}}}:Is)}function gn(e,t=0,n){return e.transition().duration(t).on("end",n)}function Ts(e,t,n){const o=l.effectScope(!0);return o.run(()=>{const i=()=>{o.run(()=>{let _,x,N=!!(n.nodes.value.length||n.edges.value.length);_=Le([e.modelValue,()=>{var p,C;return(C=(p=e.modelValue)==null?void 0:p.value)==null?void 0:C.length}],([p])=>{p&&Array.isArray(p)&&(x==null||x.pause(),n.setElements(p),!x&&!N&&p.length?N=!0:x==null||x.resume())}),x=Le([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([p,C])=>{var E;(E=e.modelValue)!=null&&E.value&&Array.isArray(e.modelValue.value)&&(_==null||_.pause(),e.modelValue.value=[...p,...C],l.nextTick(()=>{_==null||_.resume()}))},{immediate:N}),l.onScopeDispose(()=>{_==null||_.stop(),x==null||x.stop()})})},r=()=>{o.run(()=>{let _,x,N=!!n.nodes.value.length;_=Le([e.nodes,()=>{var p,C;return(C=(p=e.nodes)==null?void 0:p.value)==null?void 0:C.length}],([p])=>{p&&Array.isArray(p)&&(x==null||x.pause(),n.setNodes(p),!x&&!N&&p.length?N=!0:x==null||x.resume())}),x=Le([n.nodes,()=>n.nodes.value.length],([p])=>{var C;(C=e.nodes)!=null&&C.value&&Array.isArray(e.nodes.value)&&(_==null||_.pause(),e.nodes.value=[...p],l.nextTick(()=>{_==null||_.resume()}))},{immediate:N}),l.onScopeDispose(()=>{_==null||_.stop(),x==null||x.stop()})})},a=()=>{o.run(()=>{let _,x,N=!!n.edges.value.length;_=Le([e.edges,()=>{var p,C;return(C=(p=e.edges)==null?void 0:p.value)==null?void 0:C.length}],([p])=>{p&&Array.isArray(p)&&(x==null||x.pause(),n.setEdges(p),!x&&!N&&p.length?N=!0:x==null||x.resume())}),x=Le([n.edges,()=>n.edges.value.length],([p])=>{var C;(C=e.edges)!=null&&C.value&&Array.isArray(e.edges.value)&&(_==null||_.pause(),e.edges.value=[...p],l.nextTick(()=>{_==null||_.resume()}))},{immediate:N}),l.onScopeDispose(()=>{_==null||_.stop(),x==null||x.stop()})})},s=()=>{o.run(()=>{l.watch(()=>t.maxZoom,()=>{t.maxZoom&&fe(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},u=()=>{o.run(()=>{l.watch(()=>t.minZoom,()=>{t.minZoom&&fe(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},c=()=>{o.run(()=>{l.watch(()=>t.translateExtent,()=>{t.translateExtent&&fe(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},d=()=>{o.run(()=>{l.watch(()=>t.nodeExtent,()=>{t.nodeExtent&&fe(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},h=()=>{o.run(()=>{l.watch(()=>t.applyDefault,()=>{fe(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},g=()=>{o.run(()=>{const _=async x=>{let N=x;typeof t.autoConnect=="function"&&(N=await t.autoConnect(x)),N!==!1&&n.addEdges([N])};l.watch(()=>t.autoConnect,()=>{fe(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),l.watch(n.autoConnect,(x,N,p)=>{x?n.onConnect(_):n.hooks.value.connect.off(_),p(()=>{n.hooks.value.connect.off(_)})},{immediate:!0})})},m=()=>{const _=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const x of Object.keys(t)){const N=x;if(!_.includes(N)){const p=l.toRef(()=>t[N]),C=n[N];l.isRef(C)&&o.run(()=>{l.watch(p,E=>{fe(E)&&(C.value=E)},{immediate:!0})})}}};(()=>{i(),r(),a(),u(),s(),c(),d(),h(),g(),m()})()}),()=>o.stop()}function Ro(e){return{...e.computedPosition||{x:0,y:0},width:e.dimensions.width||0,height:e.dimensions.height||0}}function pn(e,t){const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)}function Bt(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Ae(e,t=0,n=1){return Math.min(Math.max(e,t),n)}function Ho(e,t){return{x:Ae(e.x,t[0][0],t[1][0]),y:Ae(e.y,t[0][1],t[1][1])}}function Lo(e){const t=e.getRootNode();return"elementFromPoint"in t?t:dn().document}function Te(e){return e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e}function ze(e){return e&&typeof e=="object"&&"id"in e&&"position"in e&&!Te(e)}function We(e){return ze(e)&&"computedPosition"in e}function Dt(e){return!Number.isNaN(e)&&Number.isFinite(e)}function Ps(e){return Dt(e.width)&&Dt(e.height)&&Dt(e.x)&&Dt(e.y)}function Bs(e,t,n){const o={id:e.id.toString(),type:e.type??"default",dimensions:l.markRaw({width:0,height:0}),computedPosition:l.markRaw({z:0,...e.position}),handleBounds:{source:[],target:[]},draggable:void 0,selectable:void 0,connectable:void 0,focusable:void 0,selected:!1,dragging:!1,resizing:!1,initialized:!1,isParent:!1,position:{x:0,y:0},data:fe(e.data)?e.data:{},events:l.markRaw(fe(e.events)?e.events:{})};return Object.assign(t??o,e,{id:e.id.toString(),parentNode:n})}function Fo(e,t,n){var o,i;const r={id:e.id.toString(),type:e.type??(t==null?void 0:t.type)??"default",source:e.source.toString(),target:e.target.toString(),sourceHandle:(o=e.sourceHandle)==null?void 0:o.toString(),targetHandle:(i=e.targetHandle)==null?void 0:i.toString(),updatable:e.updatable??(n==null?void 0:n.updatable),selectable:e.selectable??(n==null?void 0:n.selectable),focusable:e.focusable??(n==null?void 0:n.focusable),data:fe(e.data)?e.data:{},events:l.markRaw(fe(e.events)?e.events:{}),label:e.label??"",interactionWidth:e.interactionWidth??(n==null?void 0:n.interactionWidth),...n??{}};return Object.assign(t??r,e,{id:e.id.toString()})}function Yo(e,t,n,o){const i=typeof e=="string"?e:e.id,r=new Set,a=o==="source"?"target":"source";for(const s of n)s[a]===i&&r.add(s[o]);return t.filter(s=>r.has(s.id))}function Ds(...e){if(e.length===3){const[r,a,s]=e;return Yo(r,a,s,"target")}const[t,n]=e,o=typeof t=="string"?t:t.id;return n.filter(r=>Te(r)&&r.source===o).map(r=>n.find(a=>ze(a)&&a.id===r.target))}function Vs(...e){if(e.length===3){const[r,a,s]=e;return Yo(r,a,s,"source")}const[t,n]=e,o=typeof t=="string"?t:t.id;return n.filter(r=>Te(r)&&r.target===o).map(r=>n.find(a=>ze(a)&&a.id===r.source))}function Go({source:e,sourceHandle:t,target:n,targetHandle:o}){return`vueflow__edge-${e}${t??""}-${n}${o??""}`}function Os(e,t){return t.some(n=>Te(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))}function Xo({x:e,y:t},{x:n,y:o,zoom:i}){return{x:e*i+n,y:t*i+o}}function mn({x:e,y:t},{x:n,y:o,zoom:i},r,[a,s]){const u={x:(e-n)/i,y:(t-o)/i};return r?{x:a*Math.round(u.x/a),y:s*Math.round(u.y/s)}:u}function As(e,t){return{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)}}function Uo({x:e,y:t,width:n,height:o}){return{x:e,y:t,x2:e+n,y2:t+o}}function zs({x:e,y:t,x2:n,y2:o}){return{x:e,y:t,width:n-e,height:o-t}}function Zo(e){let t={x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY};for(let n=0;n<e.length;n++){const o=e[n];t=As(t,Uo({...o.computedPosition,...o.dimensions}))}return zs(t)}function Wo(e,t,{x:n,y:o,zoom:i}={x:0,y:0,zoom:1},r=!1,a=!1){const s={x:(t.x-n)/i,y:(t.y-o)/i,width:t.width/i,height:t.height/i};return e.filter(u=>{const{computedPosition:c={x:0,y:0},dimensions:d={width:0,height:0},selectable:h}=u;if(a&&!h)return!1;const g={...c,width:d.width||0,height:d.height||0},m=pn(s,g),b=typeof d.width>"u"||typeof d.height>"u"||d.width===0||d.height===0,_=r&&m>0,x=d.width*d.height;return b||_||m>=x})}function yn(e,t){const n=new Set;if(typeof e=="string")n.add(e);else if(e.length>=1)for(const o of e)n.add(o.id);return t.filter(o=>n.has(o.source)||n.has(o.target))}function Ko(e,t,n,o,i,r=.1,a={x:0,y:0}){const s=t/(e.width*(1+r)),u=n/(e.height*(1+r)),c=Math.min(s,u),d=Ae(c,o,i),h=e.x+e.width/2,g=e.y+e.height/2,m=t/2-h*d+(a.x??0),b=n/2-g*d+(a.y??0);return{x:m,y:b,zoom:d}}function Rs(e,t){return{x:t.x+e.x,y:t.y+e.y,z:(e.z>t.z?e.z:t.z)+1}}function qo(e,t){if(!e.parentNode)return!1;const n=t(e.parentNode);return n?n.selected?!0:qo(n,t):!1}function ut(e,t){return typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`}function Jo(e,t,n){return e<t?Ae(Math.abs(e-t),1,50)/50:e>n?-Ae(Math.abs(e-n),1,50)/50:0}function jo(e,t){const n=Jo(e.x,35,t.width-35)*20,o=Jo(e.y,35,t.height-35)*20;return[n,o]}function vn(e,t){if(t){const n=e.position.x+e.dimensions.width-t.dimensions.width,o=e.position.y+e.dimensions.height-t.dimensions.height;if(n>0||o>0||e.position.x<0||e.position.y<0){let i={};if(typeof t.style=="function"?i={...t.style(t)}:t.style&&(i={...t.style}),i.width=i.width??`${t.dimensions.width}px`,i.height=i.height??`${t.dimensions.height}px`,n>0)if(typeof i.width=="string"){const r=Number(i.width.replace("px",""));i.width=`${r+n}px`}else i.width+=n;if(o>0)if(typeof i.height=="string"){const r=Number(i.height.replace("px",""));i.height=`${r+o}px`}else i.height+=o;if(e.position.x<0){const r=Math.abs(e.position.x);if(t.position.x=t.position.x-r,typeof i.width=="string"){const a=Number(i.width.replace("px",""));i.width=`${a+r}px`}else i.width+=r;e.position.x=0}if(e.position.y<0){const r=Math.abs(e.position.y);if(t.position.y=t.position.y-r,typeof i.height=="string"){const a=Number(i.height.replace("px",""));i.height=`${a+r}px`}else i.height+=r;e.position.y=0}t.dimensions.width=Number(i.width.toString().replace("px","")),t.dimensions.height=Number(i.height.toString().replace("px","")),typeof t.style=="function"?t.style=r=>{const a=t.style;return{...a(r),...i}}:t.style={...t.style,...i}}}}function Qo(e,t){var n,o;const i=e.filter(a=>a.type==="add"||a.type==="remove");for(const a of i)if(a.type==="add")t.findIndex(u=>u.id===a.item.id)===-1&&t.push(a.item);else if(a.type==="remove"){const s=t.findIndex(u=>u.id===a.id);s!==-1&&t.splice(s,1)}const r=t.map(a=>a.id);for(const a of t)for(const s of e)if(s.id===a.id)switch(s.type){case"select":a.selected=s.selected;break;case"position":if(We(a)&&(typeof s.position<"u"&&(a.position=s.position),typeof s.dragging<"u"&&(a.dragging=s.dragging),a.expandParent&&a.parentNode)){const u=t[r.indexOf(a.parentNode)];u&&We(u)&&vn(a,u)}break;case"dimensions":if(We(a)&&(typeof s.dimensions<"u"&&(a.dimensions=s.dimensions),typeof s.updateStyle<"u"&&(a.style={...a.style||{},width:`${(n=s.dimensions)==null?void 0:n.width}px`,height:`${(o=s.dimensions)==null?void 0:o.height}px`}),typeof s.resizing<"u"&&(a.resizing=s.resizing),a.expandParent&&a.parentNode)){const u=t[r.indexOf(a.parentNode)];u&&We(u)&&(!!u.dimensions.width&&!!u.dimensions.height?vn(a,u):l.nextTick(()=>{vn(a,u)}))}break}return t}function Me(e,t){return{id:e,type:"select",selected:t}}function ei(e){return{item:e,type:"add"}}function ti(e){return{id:e,type:"remove"}}function ni(e,t,n,o,i){return{id:e,source:t,target:n,sourceHandle:o||null,targetHandle:i||null,type:"remove"}}function wn(e,t){return e.reduce((n,o)=>{let i=t.includes(o.id);fe(o.selectable)&&!o.selectable&&(i=!1);const r=We(o)?"changedNodes":"changedEdges";return!o.selected&&i?n[r].push(Me(o.id,!0)):o.selected&&!i&&n[r].push(Me(o.id,!1)),n},{changedNodes:[],changedEdges:[]})}function R(e){const t=new Set;let n=!1;const o=()=>t.size>0;e&&(n=!0,t.add(e));const i=s=>{t.delete(s)};return{on:s=>{e&&n&&t.delete(e),t.add(s);const u=()=>{i(s),e&&n&&t.add(e)};return ct(u),{off:u}},off:i,trigger:s=>Promise.all(Array.from(t).map(u=>u(s))),hasListeners:o,fns:t}}function oi(e,t,n){let o=e;do{if(o&&o.matches(t))return!0;if(o===n)return!1;o=o.parentElement}while(o);return!1}function Hs(e,t,n,o,i){var r,a;const s=[];for(const u of e)(u.selected||u.id===i)&&(!u.parentNode||!qo(u,o))&&(u.draggable||t&&typeof u.draggable>"u")&&s.push(l.markRaw({id:u.id,position:u.position||{x:0,y:0},distance:{x:n.x-((r=u.computedPosition)==null?void 0:r.x)||0,y:n.y-((a=u.computedPosition)==null?void 0:a.y)||0},from:u.computedPosition,extent:u.extent,parentNode:u.parentNode,dimensions:u.dimensions,expandParent:u.expandParent}));return s}function _n({id:e,dragItems:t,findNode:n}){const o=[];for(const i of t){const r=n(i.id);r&&o.push(r)}return[e?o.find(i=>i.id===e):o[0],o]}function ii(e){if(Array.isArray(e))switch(e.length){case 1:return[e[0],e[0],e[0],e[0]];case 2:return[e[0],e[1],e[0],e[1]];case 3:return[e[0],e[1],e[2],e[1]];case 4:return e;default:return[0,0,0,0]}return[e,e,e,e]}function Ls(e,t,n){const[o,i,r,a]=typeof e!="string"?ii(e.padding):[0,0,0,0];return n&&typeof n.computedPosition.x<"u"&&typeof n.computedPosition.y<"u"&&typeof n.dimensions.width<"u"&&typeof n.dimensions.height<"u"?[[n.computedPosition.x+a,n.computedPosition.y+o],[n.computedPosition.x+n.dimensions.width-i,n.computedPosition.y+n.dimensions.height-r]]:!1}function Fs(e,t,n,o){let i=e.extent||n;if((i==="parent"||!Array.isArray(i)&&(i==null?void 0:i.range)==="parent")&&!e.expandParent)if(e.parentNode&&o&&e.dimensions.width&&e.dimensions.height){const r=Ls(i,e,o);r&&(i=r)}else t(new ge(he.NODE_EXTENT_INVALID,e.id)),i=n;else if(Array.isArray(i)){const r=(o==null?void 0:o.computedPosition.x)||0,a=(o==null?void 0:o.computedPosition.y)||0;i=[[i[0][0]+r,i[0][1]+a],[i[1][0]+r,i[1][1]+a]]}else if(i!=="parent"&&(i!=null&&i.range)&&Array.isArray(i.range)){const[r,a,s,u]=ii(i.padding),c=(o==null?void 0:o.computedPosition.x)||0,d=(o==null?void 0:o.computedPosition.y)||0;i=[[i.range[0][0]+c+u,i.range[0][1]+d+r],[i.range[1][0]+c-a,i.range[1][1]+d-s]]}return i==="parent"?[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]]:i}function Ys({width:e,height:t},n){return[n[0],[n[1][0]-(e||0),n[1][1]-(t||0)]]}function bn(e,t,n,o,i){const r=Ys(e.dimensions,Fs(e,n,o,i)),a=Ho(t,r);return{position:{x:a.x-((i==null?void 0:i.computedPosition.x)||0),y:a.y-((i==null?void 0:i.computedPosition.y)||0)},computedPosition:a}}function En(e,t,n){const o=((n==null?void 0:n.x)??0)+t.x,i=((n==null?void 0:n.y)??0)+t.y,r=(n==null?void 0:n.width)??t.width,a=(n==null?void 0:n.height)??t.height;switch(e){case F.Top:return{x:o+r/2,y:i};case F.Right:return{x:o+r,y:i+a/2};case F.Bottom:return{x:o+r/2,y:i+a};case F.Left:return{x:o,y:i+a/2}}}function ri(e=[],t){return e.length&&(t?e.find(n=>n.id===t):e[0])||null}function Gs(e,t,n,o,i,r){const a=En(n,{...e.dimensions,...e.computedPosition},t),s=En(r,{...o.dimensions,...o.computedPosition},i);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}}function Xs({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:i,targetHeight:r,width:a,height:s,viewport:u}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+i),y2:Math.max(e.y+o,t.y+r)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const d=Uo({x:(0-u.x)/u.zoom,y:(0-u.y)/u.zoom,width:a/u.zoom,height:s/u.zoom}),h=Math.max(0,Math.min(d.x2,c.x2)-Math.max(d.x,c.x)),g=Math.max(0,Math.min(d.y2,c.y2)-Math.max(d.y,c.y));return Math.ceil(h*g)>0}function Us(e,t,n=!1){const o=typeof e.zIndex=="number";let i=o?e.zIndex:0;const r=t(e.source),a=t(e.target);return!r||!a?0:(n&&(i=o?e.zIndex:Math.max(r.computedPosition.z||0,a.computedPosition.z||0)),i)}var he=(e=>(e.MISSING_STYLES="MISSING_STYLES",e.MISSING_VIEWPORT_DIMENSIONS="MISSING_VIEWPORT_DIMENSIONS",e.NODE_INVALID="NODE_INVALID",e.NODE_NOT_FOUND="NODE_NOT_FOUND",e.NODE_MISSING_PARENT="NODE_MISSING_PARENT",e.NODE_TYPE_MISSING="NODE_TYPE_MISSING",e.NODE_EXTENT_INVALID="NODE_EXTENT_INVALID",e.EDGE_INVALID="EDGE_INVALID",e.EDGE_NOT_FOUND="EDGE_NOT_FOUND",e.EDGE_SOURCE_MISSING="EDGE_SOURCE_MISSING",e.EDGE_TARGET_MISSING="EDGE_TARGET_MISSING",e.EDGE_TYPE_MISSING="EDGE_TYPE_MISSING",e.EDGE_SOURCE_TARGET_SAME="EDGE_SOURCE_TARGET_SAME",e.EDGE_SOURCE_TARGET_MISSING="EDGE_SOURCE_TARGET_MISSING",e.EDGE_ORPHANED="EDGE_ORPHANED",e.USEVUEFLOW_OPTIONS="USEVUEFLOW_OPTIONS",e))(he||{});const li={MISSING_STYLES:()=>"It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly",MISSING_VIEWPORT_DIMENSIONS:()=>"The Vue Flow parent container needs a width and a height to render the graph",NODE_INVALID:e=>`Node is invalid
|
|
1
|
+
(function(xe,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],l):(xe=typeof globalThis<"u"?globalThis:xe||self,l(xe["@stonecrop/node-editor"]={},xe.Vue))})(this,function(xe,l){"use strict";function ct(e){return l.getCurrentScope()?(l.onScopeDispose(e),!0):!1}function Se(e){return typeof e=="function"?e():l.unref(e)}const ki=typeof window<"u"&&typeof document<"u",Mi=e=>typeof e<"u",Ii=Object.prototype.toString,$i=e=>Ii.call(e)==="[object Object]",Ti=()=>{};function Pi(e,t){function n(...o){return new Promise((i,r)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(i).catch(r)})}return n}const Tn=e=>e();function Bi(e=Tn){const t=l.ref(!0);function n(){t.value=!1}function o(){t.value=!0}const i=(...r)=>{t.value&&e(...r)};return{isActive:l.readonly(t),pause:n,resume:o,eventFilter:i}}function Pn(e,t=!1,n="Timeout"){return new Promise((o,i)=>{setTimeout(t?()=>i(n):o,e)})}function Di(e,t,n={}){const{eventFilter:o=Tn,...i}=n;return l.watch(e,Pi(o,t),i)}function Le(e,t,n={}){const{eventFilter:o,...i}=n,{eventFilter:r,pause:a,resume:s,isActive:u}=Bi(o);return{stop:Di(e,t,{...i,eventFilter:r}),pause:a,resume:s,isActive:u}}function Vi(e,t={}){if(!l.isRef(e))return l.toRefs(e);const n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const o in e.value)n[o]=l.customRef(()=>({get(){return e.value[o]},set(i){var r;if((r=Se(t.replaceRef))!=null?r:!0)if(Array.isArray(e.value)){const s=[...e.value];s[o]=i,e.value=s}else{const s={...e.value,[o]:i};Object.setPrototypeOf(s,Object.getPrototypeOf(e.value)),e.value=s}else e.value[o]=i}}));return n}function Ft(e,t=!1){function n(h,{flush:p="sync",deep:m=!1,timeout:b,throwOnTimeout:_}={}){let E=null;const g=[new Promise(k=>{E=l.watch(e,S=>{h(S)!==t&&(E==null||E(),k(S))},{flush:p,deep:m,immediate:!0})})];return b!=null&&g.push(Pn(b,_).then(()=>Se(e)).finally(()=>E==null?void 0:E())),Promise.race(g)}function o(h,p){if(!l.isRef(h))return n(S=>S===h,p);const{flush:m="sync",deep:b=!1,timeout:_,throwOnTimeout:E}=p??{};let N=null;const k=[new Promise(S=>{N=l.watch([e,h],([B,A])=>{t!==(B===A)&&(N==null||N(),S(B))},{flush:m,deep:b,immediate:!0})})];return _!=null&&k.push(Pn(_,E).then(()=>Se(e)).finally(()=>(N==null||N(),Se(e)))),Promise.race(k)}function i(h){return n(p=>!!p,h)}function r(h){return o(null,h)}function a(h){return o(void 0,h)}function s(h){return n(Number.isNaN,h)}function u(h,p){return n(m=>{const b=Array.from(m);return b.includes(h)||b.includes(Se(h))},p)}function c(h){return d(1,h)}function d(h=1,p){let m=-1;return n(()=>(m+=1,m>=h),p)}return Array.isArray(Se(e))?{toMatch:n,toContains:u,changed:c,changedTimes:d,get not(){return Ft(e,!t)}}:{toMatch:n,toBe:o,toBeTruthy:i,toBeNull:r,toBeNaN:s,toBeUndefined:a,changed:c,changedTimes:d,get not(){return Ft(e,!t)}}}function dt(e){return Ft(e)}function Oi(e){var t;const n=Se(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Bn=ki?window:void 0;function Dn(...e){let t,n,o,i;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,o,i]=e,t=Bn):[t,n,o,i]=e,!t)return Ti;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const r=[],a=()=>{r.forEach(d=>d()),r.length=0},s=(d,h,p,m)=>(d.addEventListener(h,p,m),()=>d.removeEventListener(h,p,m)),u=l.watch(()=>[Oi(t),Se(i)],([d,h])=>{if(a(),!d)return;const p=$i(h)?{...h}:h;r.push(...n.flatMap(m=>o.map(b=>s(d,m,b,p))))},{immediate:!0,flush:"post"}),c=()=>{u(),a()};return ct(c),c}function Ai(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Vn(...e){let t,n,o={};e.length===3?(t=e[0],n=e[1],o=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],o=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:i=Bn,eventName:r="keydown",passive:a=!1,dedupe:s=!1}=o,u=Ai(t);return Dn(i,r,d=>{d.repeat&&Se(s)||u(d)&&n(d)},a)}function zi(e){return JSON.parse(JSON.stringify(e))}function Yt(e,t,n,o={}){var i,r,a;const{clone:s=!1,passive:u=!1,eventName:c,deep:d=!1,defaultValue:h,shouldEmit:p}=o,m=l.getCurrentInstance(),b=n||(m==null?void 0:m.emit)||((i=m==null?void 0:m.$emit)==null?void 0:i.bind(m))||((a=(r=m==null?void 0:m.proxy)==null?void 0:r.$emit)==null?void 0:a.bind(m==null?void 0:m.proxy));let _=c;t||(t="modelValue"),_=_||`update:${t.toString()}`;const E=k=>s?typeof s=="function"?s(k):zi(k):k,N=()=>Mi(e[t])?E(e[t]):h,g=k=>{p?p(k)&&b(_,k):b(_,k)};if(u){const k=N(),S=l.ref(k);let B=!1;return l.watch(()=>e[t],A=>{B||(B=!0,S.value=E(A),l.nextTick(()=>B=!1))}),l.watch(S,A=>{!B&&(A!==e[t]||d)&&g(A)},{deep:d}),S}else return l.computed({get(){return N()},set(k){g(k)}})}var Ri={value:()=>{}};function ft(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new ht(n)}function ht(e){this._=e}function Hi(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",i=n.indexOf(".");if(i>=0&&(o=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}ht.prototype=ft.prototype={constructor:ht,on:function(e,t){var n=this._,o=Hi(e+"",n),i,r=-1,a=o.length;if(arguments.length<2){for(;++r<a;)if((i=(e=o[r]).type)&&(i=Li(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++r<a;)if(i=(e=o[r]).type)n[i]=On(n[i],e.name,t);else if(t==null)for(i in n)n[i]=On(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ht(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),o=0,i,r;o<i;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],i=0,r=o.length;i<r;++i)o[i].value.apply(t,n)}};function Li(e,t){for(var n=0,o=e.length,i;n<o;++n)if((i=e[n]).name===t)return i.value}function On(e,t,n){for(var o=0,i=e.length;o<i;++o)if(e[o].name===t){e[o]=Ri,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var Gt="http://www.w3.org/1999/xhtml";const An={svg:"http://www.w3.org/2000/svg",xhtml:Gt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function gt(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),An.hasOwnProperty(t)?{space:An[t],local:e}:e}function Fi(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Gt&&t.documentElement.namespaceURI===Gt?t.createElement(e):t.createElementNS(n,e)}}function Yi(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function zn(e){var t=gt(e);return(t.local?Yi:Fi)(t)}function Gi(){}function Xt(e){return e==null?Gi:function(){return this.querySelector(e)}}function Xi(e){typeof e!="function"&&(e=Xt(e));for(var t=this._groups,n=t.length,o=new Array(n),i=0;i<n;++i)for(var r=t[i],a=r.length,s=o[i]=new Array(a),u,c,d=0;d<a;++d)(u=r[d])&&(c=e.call(u,u.__data__,d,r))&&("__data__"in u&&(c.__data__=u.__data__),s[d]=c);return new me(o,this._parents)}function Ui(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Zi(){return[]}function Rn(e){return e==null?Zi:function(){return this.querySelectorAll(e)}}function Wi(e){return function(){return Ui(e.apply(this,arguments))}}function Ki(e){typeof e=="function"?e=Wi(e):e=Rn(e);for(var t=this._groups,n=t.length,o=[],i=[],r=0;r<n;++r)for(var a=t[r],s=a.length,u,c=0;c<s;++c)(u=a[c])&&(o.push(e.call(u,u.__data__,c,a)),i.push(u));return new me(o,i)}function Hn(e){return function(){return this.matches(e)}}function Ln(e){return function(t){return t.matches(e)}}var qi=Array.prototype.find;function Ji(e){return function(){return qi.call(this.children,e)}}function ji(){return this.firstElementChild}function Qi(e){return this.select(e==null?ji:Ji(typeof e=="function"?e:Ln(e)))}var er=Array.prototype.filter;function tr(){return Array.from(this.children)}function nr(e){return function(){return er.call(this.children,e)}}function or(e){return this.selectAll(e==null?tr:nr(typeof e=="function"?e:Ln(e)))}function ir(e){typeof e!="function"&&(e=Hn(e));for(var t=this._groups,n=t.length,o=new Array(n),i=0;i<n;++i)for(var r=t[i],a=r.length,s=o[i]=[],u,c=0;c<a;++c)(u=r[c])&&e.call(u,u.__data__,c,r)&&s.push(u);return new me(o,this._parents)}function Fn(e){return new Array(e.length)}function rr(){return new me(this._enter||this._groups.map(Fn),this._parents)}function pt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}pt.prototype={constructor:pt,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 lr(e){return function(){return e}}function ar(e,t,n,o,i,r){for(var a=0,s,u=t.length,c=r.length;a<c;++a)(s=t[a])?(s.__data__=r[a],o[a]=s):n[a]=new pt(e,r[a]);for(;a<u;++a)(s=t[a])&&(i[a]=s)}function sr(e,t,n,o,i,r,a){var s,u,c=new Map,d=t.length,h=r.length,p=new Array(d),m;for(s=0;s<d;++s)(u=t[s])&&(p[s]=m=a.call(u,u.__data__,s,t)+"",c.has(m)?i[s]=u:c.set(m,u));for(s=0;s<h;++s)m=a.call(e,r[s],s,r)+"",(u=c.get(m))?(o[s]=u,u.__data__=r[s],c.delete(m)):n[s]=new pt(e,r[s]);for(s=0;s<d;++s)(u=t[s])&&c.get(p[s])===u&&(i[s]=u)}function ur(e){return e.__data__}function cr(e,t){if(!arguments.length)return Array.from(this,ur);var n=t?sr:ar,o=this._parents,i=this._groups;typeof e!="function"&&(e=lr(e));for(var r=i.length,a=new Array(r),s=new Array(r),u=new Array(r),c=0;c<r;++c){var d=o[c],h=i[c],p=h.length,m=dr(e.call(d,d&&d.__data__,c,o)),b=m.length,_=s[c]=new Array(b),E=a[c]=new Array(b),N=u[c]=new Array(p);n(d,h,_,E,N,m,t);for(var g=0,k=0,S,B;g<b;++g)if(S=_[g]){for(g>=k&&(k=g+1);!(B=E[k])&&++k<b;);S._next=B||null}}return a=new me(a,o),a._enter=s,a._exit=u,a}function dr(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function fr(){return new me(this._exit||this._groups.map(Fn),this._parents)}function hr(e,t,n){var o=this.enter(),i=this,r=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(i=t(i),i&&(i=i.selection())),n==null?r.remove():n(r),o&&i?o.merge(i).order():i}function gr(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,i=n.length,r=o.length,a=Math.min(i,r),s=new Array(i),u=0;u<a;++u)for(var c=n[u],d=o[u],h=c.length,p=s[u]=new Array(h),m,b=0;b<h;++b)(m=c[b]||d[b])&&(p[b]=m);for(;u<i;++u)s[u]=n[u];return new me(s,this._parents)}function pr(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],i=o.length-1,r=o[i],a;--i>=0;)(a=o[i])&&(r&&a.compareDocumentPosition(r)^4&&r.parentNode.insertBefore(a,r),r=a);return this}function mr(e){e||(e=yr);function t(h,p){return h&&p?e(h.__data__,p.__data__):!h-!p}for(var n=this._groups,o=n.length,i=new Array(o),r=0;r<o;++r){for(var a=n[r],s=a.length,u=i[r]=new Array(s),c,d=0;d<s;++d)(c=a[d])&&(u[d]=c);u.sort(t)}return new me(i,this._parents).order()}function yr(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function vr(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function wr(){return Array.from(this)}function _r(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],i=0,r=o.length;i<r;++i){var a=o[i];if(a)return a}return null}function br(){let e=0;for(const t of this)++e;return e}function Er(){return!this.node()}function xr(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var i=t[n],r=0,a=i.length,s;r<a;++r)(s=i[r])&&e.call(s,s.__data__,r,i);return this}function Sr(e){return function(){this.removeAttribute(e)}}function Nr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Cr(e,t){return function(){this.setAttribute(e,t)}}function kr(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Mr(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ir(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 $r(e,t){var n=gt(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?Nr:Sr:typeof t=="function"?n.local?Ir:Mr:n.local?kr:Cr)(n,t))}function Yn(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Tr(e){return function(){this.style.removeProperty(e)}}function Pr(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Br(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function Dr(e,t,n){return arguments.length>1?this.each((t==null?Tr:typeof t=="function"?Br:Pr)(e,t,n??"")):Fe(this.node(),e)}function Fe(e,t){return e.style.getPropertyValue(t)||Yn(e).getComputedStyle(e,null).getPropertyValue(t)}function Vr(e){return function(){delete this[e]}}function Or(e,t){return function(){this[e]=t}}function Ar(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function zr(e,t){return arguments.length>1?this.each((t==null?Vr:typeof t=="function"?Ar:Or)(e,t)):this.node()[e]}function Gn(e){return e.trim().split(/^|\s+/)}function Ut(e){return e.classList||new Xn(e)}function Xn(e){this._node=e,this._names=Gn(e.getAttribute("class")||"")}Xn.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 Un(e,t){for(var n=Ut(e),o=-1,i=t.length;++o<i;)n.add(t[o])}function Zn(e,t){for(var n=Ut(e),o=-1,i=t.length;++o<i;)n.remove(t[o])}function Rr(e){return function(){Un(this,e)}}function Hr(e){return function(){Zn(this,e)}}function Lr(e,t){return function(){(t.apply(this,arguments)?Un:Zn)(this,e)}}function Fr(e,t){var n=Gn(e+"");if(arguments.length<2){for(var o=Ut(this.node()),i=-1,r=n.length;++i<r;)if(!o.contains(n[i]))return!1;return!0}return this.each((typeof t=="function"?Lr:t?Rr:Hr)(n,t))}function Yr(){this.textContent=""}function Gr(e){return function(){this.textContent=e}}function Xr(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ur(e){return arguments.length?this.each(e==null?Yr:(typeof e=="function"?Xr:Gr)(e)):this.node().textContent}function Zr(){this.innerHTML=""}function Wr(e){return function(){this.innerHTML=e}}function Kr(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function qr(e){return arguments.length?this.each(e==null?Zr:(typeof e=="function"?Kr:Wr)(e)):this.node().innerHTML}function Jr(){this.nextSibling&&this.parentNode.appendChild(this)}function jr(){return this.each(Jr)}function Qr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function el(){return this.each(Qr)}function tl(e){var t=typeof e=="function"?e:zn(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function nl(){return null}function ol(e,t){var n=typeof e=="function"?e:zn(e),o=t==null?nl:typeof t=="function"?t:Xt(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function il(){var e=this.parentNode;e&&e.removeChild(this)}function rl(){return this.each(il)}function ll(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function al(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function sl(e){return this.select(e?al:ll)}function ul(e){return arguments.length?this.property("__data__",e):this.node().__data__}function cl(e){return function(t){e.call(this,t,this.__data__)}}function dl(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function fl(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,i=t.length,r;n<i;++n)r=t[n],(!e.type||r.type===e.type)&&r.name===e.name?this.removeEventListener(r.type,r.listener,r.options):t[++o]=r;++o?t.length=o:delete this.__on}}}function hl(e,t,n){return function(){var o=this.__on,i,r=cl(t);if(o){for(var a=0,s=o.length;a<s;++a)if((i=o[a]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=r,i.options=n),i.value=t;return}}this.addEventListener(e.type,r,n),i={type:e.type,name:e.name,value:t,listener:r,options:n},o?o.push(i):this.__on=[i]}}function gl(e,t,n){var o=dl(e+""),i,r=o.length,a;if(arguments.length<2){var s=this.node().__on;if(s){for(var u=0,c=s.length,d;u<c;++u)for(i=0,d=s[u];i<r;++i)if((a=o[i]).type===d.type&&a.name===d.name)return d.value}return}for(s=t?hl:fl,i=0;i<r;++i)this.each(s(o[i],t,n));return this}function Wn(e,t,n){var o=Yn(e),i=o.CustomEvent;typeof i=="function"?i=new i(t,n):(i=o.document.createEvent("Event"),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function pl(e,t){return function(){return Wn(this,e,t)}}function ml(e,t){return function(){return Wn(this,e,t.apply(this,arguments))}}function yl(e,t){return this.each((typeof t=="function"?ml:pl)(e,t))}function*vl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],i=0,r=o.length,a;i<r;++i)(a=o[i])&&(yield a)}var Kn=[null];function me(e,t){this._groups=e,this._parents=t}function qe(){return new me([[document.documentElement]],Kn)}function wl(){return this}me.prototype=qe.prototype={constructor:me,select:Xi,selectAll:Ki,selectChild:Qi,selectChildren:or,filter:ir,data:cr,enter:rr,exit:fr,join:hr,merge:gr,selection:wl,order:pr,sort:mr,call:vr,nodes:wr,node:_r,size:br,empty:Er,each:xr,attr:$r,style:Dr,property:zr,classed:Fr,text:Ur,html:qr,raise:jr,lower:el,append:tl,insert:ol,remove:rl,clone:sl,datum:ul,on:gl,dispatch:yl,[Symbol.iterator]:vl};function ye(e){return typeof e=="string"?new me([[document.querySelector(e)]],[document.documentElement]):new me([[e]],Kn)}function _l(e){let t;for(;t=e.sourceEvent;)e=t;return e}function _e(e,t){if(e=_l(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}const bl={passive:!1},Je={capture:!0,passive:!1};function Zt(e){e.stopImmediatePropagation()}function Ye(e){e.preventDefault(),e.stopImmediatePropagation()}function qn(e){var t=e.document.documentElement,n=ye(e).on("dragstart.drag",Ye,Je);"onselectstart"in t?n.on("selectstart.drag",Ye,Je):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Jn(e,t){var n=e.document.documentElement,o=ye(e).on("dragstart.drag",null);t&&(o.on("click.drag",Ye,Je),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const mt=e=>()=>e;function Wt(e,{sourceEvent:t,subject:n,target:o,identifier:i,active:r,x:a,y:s,dx:u,dy:c,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:r,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:d}})}Wt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function El(e){return!e.ctrlKey&&!e.button}function xl(){return this.parentNode}function Sl(e,t){return t??{x:e.x,y:e.y}}function Nl(){return navigator.maxTouchPoints||"ontouchstart"in this}function Cl(){var e=El,t=xl,n=Sl,o=Nl,i={},r=ft("start","drag","end"),a=0,s,u,c,d,h=0;function p(S){S.on("mousedown.drag",m).filter(o).on("touchstart.drag",E).on("touchmove.drag",N,bl).on("touchend.drag touchcancel.drag",g).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(S,B){if(!(d||!e.call(this,S,B))){var A=k(this,t.call(this,S,B),S,B,"mouse");A&&(ye(S.view).on("mousemove.drag",b,Je).on("mouseup.drag",_,Je),qn(S.view),Zt(S),c=!1,s=S.clientX,u=S.clientY,A("start",S))}}function b(S){if(Ye(S),!c){var B=S.clientX-s,A=S.clientY-u;c=B*B+A*A>h}i.mouse("drag",S)}function _(S){ye(S.view).on("mousemove.drag mouseup.drag",null),Jn(S.view,c),Ye(S),i.mouse("end",S)}function E(S,B){if(e.call(this,S,B)){var A=S.changedTouches,O=t.call(this,S,B),U=A.length,Z,D;for(Z=0;Z<U;++Z)(D=k(this,O,S,B,A[Z].identifier,A[Z]))&&(Zt(S),D("start",S,A[Z]))}}function N(S){var B=S.changedTouches,A=B.length,O,U;for(O=0;O<A;++O)(U=i[B[O].identifier])&&(Ye(S),U("drag",S,B[O]))}function g(S){var B=S.changedTouches,A=B.length,O,U;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),O=0;O<A;++O)(U=i[B[O].identifier])&&(Zt(S),U("end",S,B[O]))}function k(S,B,A,O,U,Z){var D=r.copy(),x=_e(Z||A,B),j,H,v;if((v=n.call(S,new Wt("beforestart",{sourceEvent:A,target:p,identifier:U,active:a,x:x[0],y:x[1],dx:0,dy:0,dispatch:D}),O))!=null)return j=v.x-x[0]||0,H=v.y-x[1]||0,function T(C,$,z){var M=x,P;switch(C){case"start":i[U]=T,P=a++;break;case"end":delete i[U],--a;case"drag":x=_e(z||$,B),P=a;break}D.call(C,S,new Wt(C,{sourceEvent:$,subject:v,target:p,identifier:U,active:P,x:x[0]+j,y:x[1]+H,dx:x[0]-M[0],dy:x[1]-M[1],dispatch:D}),O)}}return p.filter=function(S){return arguments.length?(e=typeof S=="function"?S:mt(!!S),p):e},p.container=function(S){return arguments.length?(t=typeof S=="function"?S:mt(S),p):t},p.subject=function(S){return arguments.length?(n=typeof S=="function"?S:mt(S),p):n},p.touchable=function(S){return arguments.length?(o=typeof S=="function"?S:mt(!!S),p):o},p.on=function(){var S=r.on.apply(r,arguments);return S===r?p:S},p.clickDistance=function(S){return arguments.length?(h=(S=+S)*S,p):Math.sqrt(h)},p}function Kt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function jn(e,t){var n=Object.create(e.prototype);for(var o in t)n[o]=t[o];return n}function je(){}var Qe=.7,yt=1/Qe,Ge="\\s*([+-]?\\d+)\\s*",et="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",be="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",kl=/^#([0-9a-f]{3,8})$/,Ml=new RegExp(`^rgb\\(${Ge},${Ge},${Ge}\\)$`),Il=new RegExp(`^rgb\\(${be},${be},${be}\\)$`),$l=new RegExp(`^rgba\\(${Ge},${Ge},${Ge},${et}\\)$`),Tl=new RegExp(`^rgba\\(${be},${be},${be},${et}\\)$`),Pl=new RegExp(`^hsl\\(${et},${be},${be}\\)$`),Bl=new RegExp(`^hsla\\(${et},${be},${be},${et}\\)$`),Qn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Kt(je,tt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:eo,formatHex:eo,formatHex8:Dl,formatHsl:Vl,formatRgb:to,toString:to});function eo(){return this.rgb().formatHex()}function Dl(){return this.rgb().formatHex8()}function Vl(){return lo(this).formatHsl()}function to(){return this.rgb().formatRgb()}function tt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=kl.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?no(t):n===3?new pe(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?vt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?vt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Ml.exec(e))?new pe(t[1],t[2],t[3],1):(t=Il.exec(e))?new pe(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=$l.exec(e))?vt(t[1],t[2],t[3],t[4]):(t=Tl.exec(e))?vt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Pl.exec(e))?ro(t[1],t[2]/100,t[3]/100,1):(t=Bl.exec(e))?ro(t[1],t[2]/100,t[3]/100,t[4]):Qn.hasOwnProperty(e)?no(Qn[e]):e==="transparent"?new pe(NaN,NaN,NaN,0):null}function no(e){return new pe(e>>16&255,e>>8&255,e&255,1)}function vt(e,t,n,o){return o<=0&&(e=t=n=NaN),new pe(e,t,n,o)}function Ol(e){return e instanceof je||(e=tt(e)),e?(e=e.rgb(),new pe(e.r,e.g,e.b,e.opacity)):new pe}function qt(e,t,n,o){return arguments.length===1?Ol(e):new pe(e,t,n,o??1)}function pe(e,t,n,o){this.r=+e,this.g=+t,this.b=+n,this.opacity=+o}Kt(pe,qt,jn(je,{brighter(e){return e=e==null?yt:Math.pow(yt,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Qe:Math.pow(Qe,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pe(Pe(this.r),Pe(this.g),Pe(this.b),wt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:oo,formatHex:oo,formatHex8:Al,formatRgb:io,toString:io}));function oo(){return`#${Be(this.r)}${Be(this.g)}${Be(this.b)}`}function Al(){return`#${Be(this.r)}${Be(this.g)}${Be(this.b)}${Be((isNaN(this.opacity)?1:this.opacity)*255)}`}function io(){const e=wt(this.opacity);return`${e===1?"rgb(":"rgba("}${Pe(this.r)}, ${Pe(this.g)}, ${Pe(this.b)}${e===1?")":`, ${e})`}`}function wt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Pe(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Be(e){return e=Pe(e),(e<16?"0":"")+e.toString(16)}function ro(e,t,n,o){return o<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ve(e,t,n,o)}function lo(e){if(e instanceof ve)return new ve(e.h,e.s,e.l,e.opacity);if(e instanceof je||(e=tt(e)),!e)return new ve;if(e instanceof ve)return e;e=e.rgb();var t=e.r/255,n=e.g/255,o=e.b/255,i=Math.min(t,n,o),r=Math.max(t,n,o),a=NaN,s=r-i,u=(r+i)/2;return s?(t===r?a=(n-o)/s+(n<o)*6:n===r?a=(o-t)/s+2:a=(t-n)/s+4,s/=u<.5?r+i:2-r-i,a*=60):s=u>0&&u<1?0:a,new ve(a,s,u,e.opacity)}function zl(e,t,n,o){return arguments.length===1?lo(e):new ve(e,t,n,o??1)}function ve(e,t,n,o){this.h=+e,this.s=+t,this.l=+n,this.opacity=+o}Kt(ve,zl,jn(je,{brighter(e){return e=e==null?yt:Math.pow(yt,e),new ve(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Qe:Math.pow(Qe,e),new ve(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*t,i=2*n-o;return new pe(Jt(e>=240?e-240:e+120,i,o),Jt(e,i,o),Jt(e<120?e+240:e-120,i,o),this.opacity)},clamp(){return new ve(ao(this.h),_t(this.s),_t(this.l),wt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=wt(this.opacity);return`${e===1?"hsl(":"hsla("}${ao(this.h)}, ${_t(this.s)*100}%, ${_t(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ao(e){return e=(e||0)%360,e<0?e+360:e}function _t(e){return Math.max(0,Math.min(1,e||0))}function Jt(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const so=e=>()=>e;function Rl(e,t){return function(n){return e+n*t}}function Hl(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(o){return Math.pow(e+o*t,n)}}function Ll(e){return(e=+e)==1?uo:function(t,n){return n-t?Hl(t,n,e):so(isNaN(t)?n:t)}}function uo(e,t){var n=t-e;return n?Rl(e,n):so(isNaN(e)?t:e)}const co=function e(t){var n=Ll(t);function o(i,r){var a=n((i=qt(i)).r,(r=qt(r)).r),s=n(i.g,r.g),u=n(i.b,r.b),c=uo(i.opacity,r.opacity);return function(d){return i.r=a(d),i.g=s(d),i.b=u(d),i.opacity=c(d),i+""}}return o.gamma=e,o}(1);function Ie(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var jt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Qt=new RegExp(jt.source,"g");function Fl(e){return function(){return e}}function Yl(e){return function(t){return e(t)+""}}function Gl(e,t){var n=jt.lastIndex=Qt.lastIndex=0,o,i,r,a=-1,s=[],u=[];for(e=e+"",t=t+"";(o=jt.exec(e))&&(i=Qt.exec(t));)(r=i.index)>n&&(r=t.slice(n,r),s[a]?s[a]+=r:s[++a]=r),(o=o[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,u.push({i:a,x:Ie(o,i)})),n=Qt.lastIndex;return n<t.length&&(r=t.slice(n),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?Yl(u[0].x):Fl(t):(t=u.length,function(c){for(var d=0,h;d<t;++d)s[(h=u[d]).i]=h.x(c);return s.join("")})}var fo=180/Math.PI,en={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ho(e,t,n,o,i,r){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*o)&&(n-=e*u,o-=t*u),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,u/=s),e*o<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:i,translateY:r,rotate:Math.atan2(t,e)*fo,skewX:Math.atan(u)*fo,scaleX:a,scaleY:s}}var bt;function Xl(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?en:ho(t.a,t.b,t.c,t.d,t.e,t.f)}function Ul(e){return e==null||(bt||(bt=document.createElementNS("http://www.w3.org/2000/svg","g")),bt.setAttribute("transform",e),!(e=bt.transform.baseVal.consolidate()))?en:(e=e.matrix,ho(e.a,e.b,e.c,e.d,e.e,e.f))}function go(e,t,n,o){function i(c){return c.length?c.pop()+" ":""}function r(c,d,h,p,m,b){if(c!==h||d!==p){var _=m.push("translate(",null,t,null,n);b.push({i:_-4,x:Ie(c,h)},{i:_-2,x:Ie(d,p)})}else(h||p)&&m.push("translate("+h+t+p+n)}function a(c,d,h,p){c!==d?(c-d>180?d+=360:d-c>180&&(c+=360),p.push({i:h.push(i(h)+"rotate(",null,o)-2,x:Ie(c,d)})):d&&h.push(i(h)+"rotate("+d+o)}function s(c,d,h,p){c!==d?p.push({i:h.push(i(h)+"skewX(",null,o)-2,x:Ie(c,d)}):d&&h.push(i(h)+"skewX("+d+o)}function u(c,d,h,p,m,b){if(c!==h||d!==p){var _=m.push(i(m)+"scale(",null,",",null,")");b.push({i:_-4,x:Ie(c,h)},{i:_-2,x:Ie(d,p)})}else(h!==1||p!==1)&&m.push(i(m)+"scale("+h+","+p+")")}return function(c,d){var h=[],p=[];return c=e(c),d=e(d),r(c.translateX,c.translateY,d.translateX,d.translateY,h,p),a(c.rotate,d.rotate,h,p),s(c.skewX,d.skewX,h,p),u(c.scaleX,c.scaleY,d.scaleX,d.scaleY,h,p),c=d=null,function(m){for(var b=-1,_=p.length,E;++b<_;)h[(E=p[b]).i]=E.x(m);return h.join("")}}}var Zl=go(Xl,"px, ","px)","deg)"),Wl=go(Ul,", ",")",")"),Kl=1e-12;function po(e){return((e=Math.exp(e))+1/e)/2}function ql(e){return((e=Math.exp(e))-1/e)/2}function Jl(e){return((e=Math.exp(2*e))-1)/(e+1)}const jl=function e(t,n,o){function i(r,a){var s=r[0],u=r[1],c=r[2],d=a[0],h=a[1],p=a[2],m=d-s,b=h-u,_=m*m+b*b,E,N;if(_<Kl)N=Math.log(p/c)/t,E=function(O){return[s+O*m,u+O*b,c*Math.exp(t*O*N)]};else{var g=Math.sqrt(_),k=(p*p-c*c+o*_)/(2*c*n*g),S=(p*p-c*c-o*_)/(2*p*n*g),B=Math.log(Math.sqrt(k*k+1)-k),A=Math.log(Math.sqrt(S*S+1)-S);N=(A-B)/t,E=function(O){var U=O*N,Z=po(B),D=c/(n*g)*(Z*Jl(t*U+B)-ql(B));return[s+D*m,u+D*b,c*Z/po(t*U+B)]}}return E.duration=N*1e3*t/Math.SQRT2,E}return i.rho=function(r){var a=Math.max(.001,+r),s=a*a,u=s*s;return e(a,s,u)},i}(Math.SQRT2,2,4);var Xe=0,nt=0,ot=0,mo=1e3,Et,it,xt=0,De=0,St=0,rt=typeof performance=="object"&&performance.now?performance:Date,yo=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function tn(){return De||(yo(Ql),De=rt.now()+St)}function Ql(){De=0}function Nt(){this._call=this._time=this._next=null}Nt.prototype=vo.prototype={constructor:Nt,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?tn():+n)+(t==null?0:+t),!this._next&&it!==this&&(it?it._next=this:Et=this,it=this),this._call=e,this._time=n,nn()},stop:function(){this._call&&(this._call=null,this._time=1/0,nn())}};function vo(e,t,n){var o=new Nt;return o.restart(e,t,n),o}function ea(){tn(),++Xe;for(var e=Et,t;e;)(t=De-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xe}function wo(){De=(xt=rt.now())+St,Xe=nt=0;try{ea()}finally{Xe=0,na(),De=0}}function ta(){var e=rt.now(),t=e-xt;t>mo&&(St-=t,xt=e)}function na(){for(var e,t=Et,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Et=n);it=e,nn(o)}function nn(e){if(!Xe){nt&&(nt=clearTimeout(nt));var t=e-De;t>24?(e<1/0&&(nt=setTimeout(wo,e-rt.now()-St)),ot&&(ot=clearInterval(ot))):(ot||(xt=rt.now(),ot=setInterval(ta,mo)),Xe=1,yo(wo))}}function _o(e,t,n){var o=new Nt;return t=t==null?0:+t,o.restart(i=>{o.stop(),e(i+t)},t,n),o}var oa=ft("start","end","cancel","interrupt"),ia=[],bo=0,Eo=1,on=2,Ct=3,xo=4,rn=5,kt=6;function Mt(e,t,n,o,i,r){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;ra(e,n,{name:t,index:o,group:i,on:oa,tween:ia,time:r.time,delay:r.delay,duration:r.duration,ease:r.ease,timer:null,state:bo})}function ln(e,t){var n=we(e,t);if(n.state>bo)throw new Error("too late; already scheduled");return n}function Ee(e,t){var n=we(e,t);if(n.state>Ct)throw new Error("too late; already running");return n}function we(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function ra(e,t,n){var o=e.__transition,i;o[t]=n,n.timer=vo(r,0,n.time);function r(c){n.state=Eo,n.timer.restart(a,n.delay,n.time),n.delay<=c&&a(c-n.delay)}function a(c){var d,h,p,m;if(n.state!==Eo)return u();for(d in o)if(m=o[d],m.name===n.name){if(m.state===Ct)return _o(a);m.state===xo?(m.state=kt,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete o[d]):+d<t&&(m.state=kt,m.timer.stop(),m.on.call("cancel",e,e.__data__,m.index,m.group),delete o[d])}if(_o(function(){n.state===Ct&&(n.state=xo,n.timer.restart(s,n.delay,n.time),s(c))}),n.state=on,n.on.call("start",e,e.__data__,n.index,n.group),n.state===on){for(n.state=Ct,i=new Array(p=n.tween.length),d=0,h=-1;d<p;++d)(m=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(i[++h]=m);i.length=h+1}}function s(c){for(var d=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(u),n.state=rn,1),h=-1,p=i.length;++h<p;)i[h].call(e,d);n.state===rn&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){n.state=kt,n.timer.stop(),delete o[t];for(var c in o)return;delete e.__transition}}function It(e,t){var n=e.__transition,o,i,r=!0,a;if(n){t=t==null?null:t+"";for(a in n){if((o=n[a]).name!==t){r=!1;continue}i=o.state>on&&o.state<rn,o.state=kt,o.timer.stop(),o.on.call(i?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[a]}r&&delete e.__transition}}function la(e){return this.each(function(){It(this,e)})}function aa(e,t){var n,o;return function(){var i=Ee(this,e),r=i.tween;if(r!==n){o=n=r;for(var a=0,s=o.length;a<s;++a)if(o[a].name===t){o=o.slice(),o.splice(a,1);break}}i.tween=o}}function sa(e,t,n){var o,i;if(typeof n!="function")throw new Error;return function(){var r=Ee(this,e),a=r.tween;if(a!==o){i=(o=a).slice();for(var s={name:t,value:n},u=0,c=i.length;u<c;++u)if(i[u].name===t){i[u]=s;break}u===c&&i.push(s)}r.tween=i}}function ua(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=we(this.node(),n).tween,i=0,r=o.length,a;i<r;++i)if((a=o[i]).name===e)return a.value;return null}return this.each((t==null?aa:sa)(n,e,t))}function an(e,t,n){var o=e._id;return e.each(function(){var i=Ee(this,o);(i.value||(i.value={}))[t]=n.apply(this,arguments)}),function(i){return we(i,o).value[t]}}function So(e,t){var n;return(typeof t=="number"?Ie:t instanceof tt?co:(n=tt(t))?(t=n,co):Gl)(e,t)}function ca(e){return function(){this.removeAttribute(e)}}function da(e){return function(){this.removeAttributeNS(e.space,e.local)}}function fa(e,t,n){var o,i=n+"",r;return function(){var a=this.getAttribute(e);return a===i?null:a===o?r:r=t(o=a,n)}}function ha(e,t,n){var o,i=n+"",r;return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===o?r:r=t(o=a,n)}}function ga(e,t,n){var o,i,r;return function(){var a,s=n(this),u;return s==null?void this.removeAttribute(e):(a=this.getAttribute(e),u=s+"",a===u?null:a===o&&u===i?r:(i=u,r=t(o=a,s)))}}function pa(e,t,n){var o,i,r;return function(){var a,s=n(this),u;return s==null?void this.removeAttributeNS(e.space,e.local):(a=this.getAttributeNS(e.space,e.local),u=s+"",a===u?null:a===o&&u===i?r:(i=u,r=t(o=a,s)))}}function ma(e,t){var n=gt(e),o=n==="transform"?Wl:So;return this.attrTween(e,typeof t=="function"?(n.local?pa:ga)(n,o,an(this,"attr."+e,t)):t==null?(n.local?da:ca)(n):(n.local?ha:fa)(n,o,t))}function ya(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function va(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function wa(e,t){var n,o;function i(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&va(e,r)),n}return i._value=t,i}function _a(e,t){var n,o;function i(){var r=t.apply(this,arguments);return r!==o&&(n=(o=r)&&ya(e,r)),n}return i._value=t,i}function ba(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 o=gt(e);return this.tween(n,(o.local?wa:_a)(o,t))}function Ea(e,t){return function(){ln(this,e).delay=+t.apply(this,arguments)}}function xa(e,t){return t=+t,function(){ln(this,e).delay=t}}function Sa(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Ea:xa)(t,e)):we(this.node(),t).delay}function Na(e,t){return function(){Ee(this,e).duration=+t.apply(this,arguments)}}function Ca(e,t){return t=+t,function(){Ee(this,e).duration=t}}function ka(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Na:Ca)(t,e)):we(this.node(),t).duration}function Ma(e,t){if(typeof t!="function")throw new Error;return function(){Ee(this,e).ease=t}}function Ia(e){var t=this._id;return arguments.length?this.each(Ma(t,e)):we(this.node(),t).ease}function $a(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ee(this,e).ease=n}}function Ta(e){if(typeof e!="function")throw new Error;return this.each($a(this._id,e))}function Pa(e){typeof e!="function"&&(e=Hn(e));for(var t=this._groups,n=t.length,o=new Array(n),i=0;i<n;++i)for(var r=t[i],a=r.length,s=o[i]=[],u,c=0;c<a;++c)(u=r[c])&&e.call(u,u.__data__,c,r)&&s.push(u);return new Ne(o,this._parents,this._name,this._id)}function Ba(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,i=n.length,r=Math.min(o,i),a=new Array(o),s=0;s<r;++s)for(var u=t[s],c=n[s],d=u.length,h=a[s]=new Array(d),p,m=0;m<d;++m)(p=u[m]||c[m])&&(h[m]=p);for(;s<o;++s)a[s]=t[s];return new Ne(a,this._parents,this._name,this._id)}function Da(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 Va(e,t,n){var o,i,r=Da(t)?ln:Ee;return function(){var a=r(this,e),s=a.on;s!==o&&(i=(o=s).copy()).on(t,n),a.on=i}}function Oa(e,t){var n=this._id;return arguments.length<2?we(this.node(),n).on.on(e):this.each(Va(n,e,t))}function Aa(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function za(){return this.on("end.remove",Aa(this._id))}function Ra(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Xt(e));for(var o=this._groups,i=o.length,r=new Array(i),a=0;a<i;++a)for(var s=o[a],u=s.length,c=r[a]=new Array(u),d,h,p=0;p<u;++p)(d=s[p])&&(h=e.call(d,d.__data__,p,s))&&("__data__"in d&&(h.__data__=d.__data__),c[p]=h,Mt(c[p],t,n,p,c,we(d,n)));return new Ne(r,this._parents,t,n)}function Ha(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Rn(e));for(var o=this._groups,i=o.length,r=[],a=[],s=0;s<i;++s)for(var u=o[s],c=u.length,d,h=0;h<c;++h)if(d=u[h]){for(var p=e.call(d,d.__data__,h,u),m,b=we(d,n),_=0,E=p.length;_<E;++_)(m=p[_])&&Mt(m,t,n,_,p,b);r.push(p),a.push(d)}return new Ne(r,a,t,n)}var La=qe.prototype.constructor;function Fa(){return new La(this._groups,this._parents)}function Ya(e,t){var n,o,i;return function(){var r=Fe(this,e),a=(this.style.removeProperty(e),Fe(this,e));return r===a?null:r===n&&a===o?i:i=t(n=r,o=a)}}function No(e){return function(){this.style.removeProperty(e)}}function Ga(e,t,n){var o,i=n+"",r;return function(){var a=Fe(this,e);return a===i?null:a===o?r:r=t(o=a,n)}}function Xa(e,t,n){var o,i,r;return function(){var a=Fe(this,e),s=n(this),u=s+"";return s==null&&(u=s=(this.style.removeProperty(e),Fe(this,e))),a===u?null:a===o&&u===i?r:(i=u,r=t(o=a,s))}}function Ua(e,t){var n,o,i,r="style."+t,a="end."+r,s;return function(){var u=Ee(this,e),c=u.on,d=u.value[r]==null?s||(s=No(t)):void 0;(c!==n||i!==d)&&(o=(n=c).copy()).on(a,i=d),u.on=o}}function Za(e,t,n){var o=(e+="")=="transform"?Zl:So;return t==null?this.styleTween(e,Ya(e,o)).on("end.style."+e,No(e)):typeof t=="function"?this.styleTween(e,Xa(e,o,an(this,"style."+e,t))).each(Ua(this._id,e)):this.styleTween(e,Ga(e,o,t),n).on("end.style."+e,null)}function Wa(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function Ka(e,t,n){var o,i;function r(){var a=t.apply(this,arguments);return a!==i&&(o=(i=a)&&Wa(e,a,n)),o}return r._value=t,r}function qa(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,Ka(e,t,n??""))}function Ja(e){return function(){this.textContent=e}}function ja(e){return function(){var t=e(this);this.textContent=t??""}}function Qa(e){return this.tween("text",typeof e=="function"?ja(an(this,"text",e)):Ja(e==null?"":e+""))}function es(e){return function(t){this.textContent=e.call(this,t)}}function ts(e){var t,n;function o(){var i=e.apply(this,arguments);return i!==n&&(t=(n=i)&&es(i)),t}return o._value=e,o}function ns(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,ts(e))}function os(){for(var e=this._name,t=this._id,n=Co(),o=this._groups,i=o.length,r=0;r<i;++r)for(var a=o[r],s=a.length,u,c=0;c<s;++c)if(u=a[c]){var d=we(u,t);Mt(u,e,n,c,a,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Ne(o,this._parents,e,n)}function is(){var e,t,n=this,o=n._id,i=n.size();return new Promise(function(r,a){var s={value:a},u={value:function(){--i===0&&r()}};n.each(function(){var c=Ee(this,o),d=c.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(u)),c.on=t}),i===0&&r()})}var rs=0;function Ne(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function Co(){return++rs}var Ce=qe.prototype;Ne.prototype={constructor:Ne,select:Ra,selectAll:Ha,selectChild:Ce.selectChild,selectChildren:Ce.selectChildren,filter:Pa,merge:Ba,selection:Fa,transition:os,call:Ce.call,nodes:Ce.nodes,node:Ce.node,size:Ce.size,empty:Ce.empty,each:Ce.each,on:Oa,attr:ma,attrTween:ba,style:Za,styleTween:qa,text:Qa,textTween:ns,remove:za,tween:ua,delay:Sa,duration:ka,ease:Ia,easeVarying:Ta,end:is,[Symbol.iterator]:Ce[Symbol.iterator]};function ls(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var as={time:null,delay:0,duration:250,ease:ls};function ss(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 us(e){var t,n;e instanceof Ne?(t=e._id,e=e._name):(t=Co(),(n=as).time=tn(),e=e==null?null:e+"");for(var o=this._groups,i=o.length,r=0;r<i;++r)for(var a=o[r],s=a.length,u,c=0;c<s;++c)(u=a[c])&&Mt(u,e,t,c,a,n||ss(u,t));return new Ne(o,this._parents,e,t)}qe.prototype.interrupt=la,qe.prototype.transition=us;const $t=e=>()=>e;function cs(e,{sourceEvent:t,target:n,transform:o,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:i}})}function ke(e,t,n){this.k=e,this.x=t,this.y=n}ke.prototype={constructor:ke,scale:function(e){return e===1?this:new ke(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ke(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 Ue=new ke(1,0,0);ke.prototype;function sn(e){e.stopImmediatePropagation()}function lt(e){e.preventDefault(),e.stopImmediatePropagation()}function ds(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function fs(){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 ko(){return this.__zoom||Ue}function hs(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function gs(){return navigator.maxTouchPoints||"ontouchstart"in this}function ps(e,t,n){var o=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],r=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),a>r?(r+a)/2:Math.min(0,r)||Math.max(0,a))}function ms(){var e=ds,t=fs,n=ps,o=hs,i=gs,r=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],s=250,u=jl,c=ft("start","zoom","end"),d,h,p,m=500,b=150,_=0,E=10;function N(v){v.property("__zoom",ko).on("wheel.zoom",U,{passive:!1}).on("mousedown.zoom",Z).on("dblclick.zoom",D).filter(i).on("touchstart.zoom",x).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}N.transform=function(v,T,C,$){var z=v.selection?v.selection():v;z.property("__zoom",ko),v!==z?B(v,T,C,$):z.interrupt().each(function(){A(this,arguments).event($).start().zoom(null,typeof T=="function"?T.apply(this,arguments):T).end()})},N.scaleBy=function(v,T,C,$){N.scaleTo(v,function(){var z=this.__zoom.k,M=typeof T=="function"?T.apply(this,arguments):T;return z*M},C,$)},N.scaleTo=function(v,T,C,$){N.transform(v,function(){var z=t.apply(this,arguments),M=this.__zoom,P=C==null?S(z):typeof C=="function"?C.apply(this,arguments):C,L=M.invert(P),K=typeof T=="function"?T.apply(this,arguments):T;return n(k(g(M,K),P,L),z,a)},C,$)},N.translateBy=function(v,T,C,$){N.transform(v,function(){return n(this.__zoom.translate(typeof T=="function"?T.apply(this,arguments):T,typeof C=="function"?C.apply(this,arguments):C),t.apply(this,arguments),a)},null,$)},N.translateTo=function(v,T,C,$,z){N.transform(v,function(){var M=t.apply(this,arguments),P=this.__zoom,L=$==null?S(M):typeof $=="function"?$.apply(this,arguments):$;return n(Ue.translate(L[0],L[1]).scale(P.k).translate(typeof T=="function"?-T.apply(this,arguments):-T,typeof C=="function"?-C.apply(this,arguments):-C),M,a)},$,z)};function g(v,T){return T=Math.max(r[0],Math.min(r[1],T)),T===v.k?v:new ke(T,v.x,v.y)}function k(v,T,C){var $=T[0]-C[0]*v.k,z=T[1]-C[1]*v.k;return $===v.x&&z===v.y?v:new ke(v.k,$,z)}function S(v){return[(+v[0][0]+ +v[1][0])/2,(+v[0][1]+ +v[1][1])/2]}function B(v,T,C,$){v.on("start.zoom",function(){A(this,arguments).event($).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event($).end()}).tween("zoom",function(){var z=this,M=arguments,P=A(z,M).event($),L=t.apply(z,M),K=C==null?S(L):typeof C=="function"?C.apply(z,M):C,re=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),te=z.__zoom,oe=typeof T=="function"?T.apply(z,M):T,ue=u(te.invert(K).concat(re/te.k),oe.invert(K).concat(re/oe.k));return function(le){if(le===1)le=oe;else{var q=ue(le),W=re/q[2];le=new ke(W,K[0]-q[0]*W,K[1]-q[1]*W)}P.zoom(null,le)}})}function A(v,T,C){return!C&&v.__zooming||new O(v,T)}function O(v,T){this.that=v,this.args=T,this.active=0,this.sourceEvent=null,this.extent=t.apply(v,T),this.taps=0}O.prototype={event:function(v){return v&&(this.sourceEvent=v),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(v,T){return this.mouse&&v!=="mouse"&&(this.mouse[1]=T.invert(this.mouse[0])),this.touch0&&v!=="touch"&&(this.touch0[1]=T.invert(this.touch0[0])),this.touch1&&v!=="touch"&&(this.touch1[1]=T.invert(this.touch1[0])),this.that.__zoom=T,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(v){var T=ye(this.that).datum();c.call(v,this.that,new cs(v,{sourceEvent:this.sourceEvent,target:N,type:v,transform:this.that.__zoom,dispatch:c}),T)}};function U(v,...T){if(!e.apply(this,arguments))return;var C=A(this,T).event(v),$=this.__zoom,z=Math.max(r[0],Math.min(r[1],$.k*Math.pow(2,o.apply(this,arguments)))),M=_e(v);if(C.wheel)(C.mouse[0][0]!==M[0]||C.mouse[0][1]!==M[1])&&(C.mouse[1]=$.invert(C.mouse[0]=M)),clearTimeout(C.wheel);else{if($.k===z)return;C.mouse=[M,$.invert(M)],It(this),C.start()}lt(v),C.wheel=setTimeout(P,b),C.zoom("mouse",n(k(g($,z),C.mouse[0],C.mouse[1]),C.extent,a));function P(){C.wheel=null,C.end()}}function Z(v,...T){if(p||!e.apply(this,arguments))return;var C=v.currentTarget,$=A(this,T,!0).event(v),z=ye(v.view).on("mousemove.zoom",K,!0).on("mouseup.zoom",re,!0),M=_e(v,C),P=v.clientX,L=v.clientY;qn(v.view),sn(v),$.mouse=[M,this.__zoom.invert(M)],It(this),$.start();function K(te){if(lt(te),!$.moved){var oe=te.clientX-P,ue=te.clientY-L;$.moved=oe*oe+ue*ue>_}$.event(te).zoom("mouse",n(k($.that.__zoom,$.mouse[0]=_e(te,C),$.mouse[1]),$.extent,a))}function re(te){z.on("mousemove.zoom mouseup.zoom",null),Jn(te.view,$.moved),lt(te),$.event(te).end()}}function D(v,...T){if(e.apply(this,arguments)){var C=this.__zoom,$=_e(v.changedTouches?v.changedTouches[0]:v,this),z=C.invert($),M=C.k*(v.shiftKey?.5:2),P=n(k(g(C,M),$,z),t.apply(this,T),a);lt(v),s>0?ye(this).transition().duration(s).call(B,P,$,v):ye(this).call(N.transform,P,$,v)}}function x(v,...T){if(e.apply(this,arguments)){var C=v.touches,$=C.length,z=A(this,T,v.changedTouches.length===$).event(v),M,P,L,K;for(sn(v),P=0;P<$;++P)L=C[P],K=_e(L,this),K=[K,this.__zoom.invert(K),L.identifier],z.touch0?!z.touch1&&z.touch0[2]!==K[2]&&(z.touch1=K,z.taps=0):(z.touch0=K,M=!0,z.taps=1+!!d);d&&(d=clearTimeout(d)),M&&(z.taps<2&&(h=K[0],d=setTimeout(function(){d=null},m)),It(this),z.start())}}function j(v,...T){if(this.__zooming){var C=A(this,T).event(v),$=v.changedTouches,z=$.length,M,P,L,K;for(lt(v),M=0;M<z;++M)P=$[M],L=_e(P,this),C.touch0&&C.touch0[2]===P.identifier?C.touch0[0]=L:C.touch1&&C.touch1[2]===P.identifier&&(C.touch1[0]=L);if(P=C.that.__zoom,C.touch1){var re=C.touch0[0],te=C.touch0[1],oe=C.touch1[0],ue=C.touch1[1],le=(le=oe[0]-re[0])*le+(le=oe[1]-re[1])*le,q=(q=ue[0]-te[0])*q+(q=ue[1]-te[1])*q;P=g(P,Math.sqrt(le/q)),L=[(re[0]+oe[0])/2,(re[1]+oe[1])/2],K=[(te[0]+ue[0])/2,(te[1]+ue[1])/2]}else if(C.touch0)L=C.touch0[0],K=C.touch0[1];else return;C.zoom("touch",n(k(P,L,K),C.extent,a))}}function H(v,...T){if(this.__zooming){var C=A(this,T).event(v),$=v.changedTouches,z=$.length,M,P;for(sn(v),p&&clearTimeout(p),p=setTimeout(function(){p=null},m),M=0;M<z;++M)P=$[M],C.touch0&&C.touch0[2]===P.identifier?delete C.touch0:C.touch1&&C.touch1[2]===P.identifier&&delete C.touch1;if(C.touch1&&!C.touch0&&(C.touch0=C.touch1,delete C.touch1),C.touch0)C.touch0[1]=this.__zoom.invert(C.touch0[0]);else if(C.end(),C.taps===2&&(P=_e(P,this),Math.hypot(h[0]-P[0],h[1]-P[1])<E)){var L=ye(this).on("dblclick.zoom");L&&L.apply(this,arguments)}}}return N.wheelDelta=function(v){return arguments.length?(o=typeof v=="function"?v:$t(+v),N):o},N.filter=function(v){return arguments.length?(e=typeof v=="function"?v:$t(!!v),N):e},N.touchable=function(v){return arguments.length?(i=typeof v=="function"?v:$t(!!v),N):i},N.extent=function(v){return arguments.length?(t=typeof v=="function"?v:$t([[+v[0][0],+v[0][1]],[+v[1][0],+v[1][1]]]),N):t},N.scaleExtent=function(v){return arguments.length?(r[0]=+v[0],r[1]=+v[1],N):[r[0],r[1]]},N.translateExtent=function(v){return arguments.length?(a[0][0]=+v[0][0],a[1][0]=+v[1][0],a[0][1]=+v[0][1],a[1][1]=+v[1][1],N):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},N.constrain=function(v){return arguments.length?(n=v,N):n},N.duration=function(v){return arguments.length?(s=+v,N):s},N.interpolate=function(v){return arguments.length?(u=v,N):u},N.on=function(){var v=c.on.apply(c,arguments);return v===c?N:v},N.clickDistance=function(v){return arguments.length?(_=(v=+v)*v,N):Math.sqrt(_)},N.tapDistance=function(v){return arguments.length?(E=+v,N):E},N}var F=(e=>(e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom",e))(F||{}),un=(e=>(e.Partial="partial",e.Full="full",e))(un||{}),Ve=(e=>(e.Bezier="default",e.SimpleBezier="simple-bezier",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e))(Ve||{}),Oe=(e=>(e.Strict="strict",e.Loose="loose",e))(Oe||{}),cn=(e=>(e.Arrow="arrow",e.ArrowClosed="arrowclosed",e))(cn||{}),at=(e=>(e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal",e))(at||{});function dn(){return typeof window<"u"?window:{chrome:!1,addEventListener(...e){}}}function fn(e){var t,n;const o=((n=(t=e.composedPath)==null?void 0:t.call(e))==null?void 0:n[0])||e.target,i=typeof(o==null?void 0:o.hasAttribute)=="function"?o.hasAttribute("contenteditable"):!1,r=typeof(o==null?void 0:o.closest)=="function"?o.closest(".nokey"):null;return["INPUT","SELECT","TEXTAREA"].includes(o==null?void 0:o.nodeName)||i||!!r}function ys(e){return e.ctrlKey||e.metaKey||e.shiftKey}function Mo(e,t,n,o){const i=t.split("+").map(r=>r.trim().toLowerCase());return i.length===1?e.toLowerCase()===t.toLowerCase():(o?n.delete(e.toLowerCase()):n.add(e.toLowerCase()),i.every((r,a)=>n.has(r)&&Array.from(n.values())[a]===i[a]))}function vs(e,t){return n=>{if(!n.code&&!n.key)return!1;const o=ws(n.code,e);return Array.isArray(e)?e.some(i=>Mo(n[o],i,t,n.type==="keyup")):Mo(n[o],e,t,n.type==="keyup")}}function ws(e,t){return typeof t=="string"?e===t?"code":"key":t.includes(e)?"code":"key"}function st(e,t,n={actInsideInputWithModifier:!0}){const o=dn(),i=l.ref(l.toValue(e)===!0);let r=!1;const a=new Set;let s=c(l.toValue(e));return l.watch(i,(d,h)=>{d!==h&&(t==null||t(d))}),l.watch(()=>l.toValue(e),(d,h)=>{typeof h=="boolean"&&typeof d!="boolean"&&u(),s=c(d)},{immediate:!0}),Dn(o,"blur",()=>{l.toValue(e)!==!0&&(i.value=!1)}),Vn((...d)=>s(...d),d=>{r=ys(d),!((!r||r&&!n.actInsideInputWithModifier)&&fn(d))&&(d.preventDefault(),i.value=!0)},{eventName:"keydown"}),Vn((...d)=>s(...d),d=>{if(i.value){if((!r||r&&!n.actInsideInputWithModifier)&&fn(d))return;u()}},{eventName:"keyup"}),i;function u(){r=!1,a.clear(),i.value=!1}function c(d){return d===null?(u(),()=>!1):typeof d=="boolean"?(u(),i.value=d,()=>!1):Array.isArray(d)||typeof d=="string"?vs(d,a):d}}const Io="vue-flow__node-desc",$o="vue-flow__edge-desc",_s="vue-flow__aria-live",To=["Enter"," ","Escape"],Ze={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function Po(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:o,noDragClassName:i,nodes:r,nodeExtent:a,nodeDragThreshold:s,viewport:u,autoPanOnNodeDrag:c,nodesDraggable:d,panBy:h,findNode:p,multiSelectionActive:m,nodesSelectionActive:b,selectNodesOnDrag:_,removeSelectedElements:E,addSelectedNodes:N,updateNodePositions:g,emits:k}=de(),{onStart:S,onDrag:B,onStop:A,el:O,disabled:U,id:Z,selectable:D,dragHandle:x}=e,j=l.ref(!1);let H=[],v,T=null,C={x:void 0,y:void 0},$={x:0,y:0},z=null,M=!1,P=0,L=!1;const K=Ns(),re=({x:W,y:J})=>{C={x:W,y:J};let Q=!1;if(H=H.map(ie=>{const Y={x:W-ie.distance.x,y:J-ie.distance.y};n.value&&(Y.x=o.value[0]*Math.round(Y.x/o.value[0]),Y.y=o.value[1]*Math.round(Y.y/o.value[1]));const{computedPosition:f}=bn(ie,Y,k.error,a.value,ie.parentNode?p(ie.parentNode):void 0);return Q=Q||ie.position.x!==f.x||ie.position.y!==f.y,ie.position=f,ie}),!!Q&&(g(H,!0,!0),j.value=!0,z)){const[ie,Y]=_n({id:Z,dragItems:H,findNode:p});B({event:z,node:ie,nodes:Y})}},te=()=>{if(!T)return;const[W,J]=jo($,T);if(W!==0||J!==0){const Q={x:(C.x??0)-W/u.value.zoom,y:(C.y??0)-J/u.value.zoom};h({x:W,y:J})&&re(Q)}P=requestAnimationFrame(te)},oe=(W,J)=>{M=!0;const Q=p(Z);!_.value&&!m.value&&Q&&(Q.selected||E()),Q&&l.toValue(D)&&_.value&&Cn(Q,m.value,N,E,b,!1,J);const ie=K(W);if(C=ie,H=Hs(r.value,d.value,ie,p,Z),H.length){const[Y,f]=_n({id:Z,dragItems:H,findNode:p});S({event:W.sourceEvent,node:Y,nodes:f})}},ue=(W,J)=>{var Q;W.sourceEvent.type==="touchmove"&&W.sourceEvent.touches.length>1||(s.value===0&&oe(W,J),C=K(W),T=((Q=t.value)==null?void 0:Q.getBoundingClientRect())||null,$=Re(W.sourceEvent,T))},le=(W,J)=>{const Q=K(W);if(!L&&M&&c.value&&(L=!0,te()),!M){const ie=Q.xSnapped-(C.x??0),Y=Q.ySnapped-(C.y??0);Math.sqrt(ie*ie+Y*Y)>s.value&&oe(W,J)}(C.x!==Q.xSnapped||C.y!==Q.ySnapped)&&H.length&&M&&(z=W.sourceEvent,$=Re(W.sourceEvent,T),re(Q))},q=W=>{if(M&&(j.value=!1,L=!1,M=!1,cancelAnimationFrame(P),H.length)){g(H,!1,!1);const[J,Q]=_n({id:Z,dragItems:H,findNode:p});A({event:W.sourceEvent,node:J,nodes:Q})}};return l.watch([()=>l.toValue(U),O],([W,J],Q,ie)=>{if(J){const Y=ye(J);W||(v=Cl().on("start",f=>ue(f,J)).on("drag",f=>le(f,J)).on("end",f=>q(f)).filter(f=>{const y=f.target,w=l.toValue(x);return!f.button&&(!i.value||!oi(y,`.${i.value}`,J)&&(!w||oi(y,w,J)))}),Y.call(v)),ie(()=>{Y.on(".drag",null),v&&(v.on("start",null),v.on("drag",null),v.on("end",null))})}}),j}const Bo=Symbol("vueFlow"),Do=Symbol("nodeId"),Vo=Symbol("nodeRef"),bs=Symbol("edgeId"),Es=Symbol("edgeRef"),Tt=Symbol("slots");function xs(){return{doubleClick:R(),click:R(),mouseEnter:R(),mouseMove:R(),mouseLeave:R(),contextMenu:R(),updateStart:R(),update:R(),updateEnd:R()}}function Ss(e,t){const n=xs();return n.doubleClick.on(o=>{var i,r;t.edgeDoubleClick(o),(r=(i=e.events)==null?void 0:i.doubleClick)==null||r.call(i,o)}),n.click.on(o=>{var i,r;t.edgeClick(o),(r=(i=e.events)==null?void 0:i.click)==null||r.call(i,o)}),n.mouseEnter.on(o=>{var i,r;t.edgeMouseEnter(o),(r=(i=e.events)==null?void 0:i.mouseEnter)==null||r.call(i,o)}),n.mouseMove.on(o=>{var i,r;t.edgeMouseMove(o),(r=(i=e.events)==null?void 0:i.mouseMove)==null||r.call(i,o)}),n.mouseLeave.on(o=>{var i,r;t.edgeMouseLeave(o),(r=(i=e.events)==null?void 0:i.mouseLeave)==null||r.call(i,o)}),n.contextMenu.on(o=>{var i,r;t.edgeContextMenu(o),(r=(i=e.events)==null?void 0:i.contextMenu)==null||r.call(i,o)}),n.updateStart.on(o=>{var i,r;t.edgeUpdateStart(o),(r=(i=e.events)==null?void 0:i.updateStart)==null||r.call(i,o)}),n.update.on(o=>{var i,r;t.edgeUpdate(o),(r=(i=e.events)==null?void 0:i.update)==null||r.call(i,o)}),n.updateEnd.on(o=>{var i,r;t.edgeUpdateEnd(o),(r=(i=e.events)==null?void 0:i.updateEnd)==null||r.call(i,o)}),Object.entries(n).reduce((o,[i,r])=>(o.emit[i]=r.trigger,o.on[i]=r.on,o),{emit:{},on:{}})}function Ns(){const{viewport:e,snapGrid:t,snapToGrid:n}=de();return({sourceEvent:o})=>{const i=o.touches?o.touches[0].clientX:o.clientX,r=o.touches?o.touches[0].clientY:o.clientY,a={x:(i-e.value.x)/e.value.zoom,y:(r-e.value.y)/e.value.zoom};return{xSnapped:n.value?t.value[0]*Math.round(a.x/t.value[0]):a.x,ySnapped:n.value?t.value[1]*Math.round(a.y/t.value[1]):a.y,...a}}}function Pt(){return!0}function Oo({handleId:e,nodeId:t,type:n,isValidConnection:o,edgeUpdaterType:i,onEdgeUpdate:r,onEdgeUpdateEnd:a}){const{vueFlowRef:s,connectionMode:u,connectionRadius:c,connectOnClick:d,connectionClickStartHandle:h,nodesConnectable:p,autoPanOnConnect:m,findNode:b,panBy:_,startConnection:E,updateConnection:N,endConnection:g,emits:k,viewport:S,edges:B,nodes:A,isValidConnection:O}=de();let U=null,Z=!1,D=null;function x(H){var v;const T=l.toValue(n)==="target",C=xn(H),$=Lo(H.target);if(C&&H.button===0||!C){let z=function(f){J=Re(f,q);const{handle:y,validHandleResult:w}=Zs(f,$,mn(J,S.value,!1,[1,1]),c.value,ie,I=>ui(f,I,u.value,l.toValue(t),l.toValue(e),T?"target":"source",L,$,B.value,A.value,b));if(K=y,Q||(Y(),Q=!0),U=w.connection,Z=w.isValid,D=w.handleDomNode,N(K&&Z?Xo({x:K.x,y:K.y},S.value):J,w.endHandle,Ks(!!K,Z)),!K&&!Z&&!D)return Sn(W);U&&U.source!==U.target&&D&&(Sn(W),W=D,D.classList.add("connecting","vue-flow__handle-connecting"),D.classList.toggle("valid",Z),D.classList.toggle("vue-flow__handle-valid",Z))},M=function(f){(K||D)&&U&&Z&&(r?r(f,U):k.connect(U)),k.connectEnd(f),i&&(a==null||a(f)),Sn(W),cancelAnimationFrame(re),g(f),Q=!1,Z=!1,U=null,D=null,$.removeEventListener("mousemove",z),$.removeEventListener("mouseup",M),$.removeEventListener("touchmove",z),$.removeEventListener("touchend",M)};const P=b(l.toValue(t));let L=l.toValue(o)||O.value||Pt;!L&&P&&(L=(T?P.isValidSourcePos:P.isValidTargetPos)||Pt);let K,re=0;const{x:te,y:oe}=Re(H),ue=$==null?void 0:$.elementFromPoint(te,oe),le=Nn(l.toValue(i),ue),q=(v=s.value)==null?void 0:v.getBoundingClientRect();if(!q||!le)return;let W,J=Re(H,q),Q=!1;const ie=Ws({nodes:A.value,nodeId:l.toValue(t),handleId:l.toValue(e),handleType:le}),Y=()=>{if(!m.value)return;const[f,y]=jo(J,q);_({x:f,y}),re=requestAnimationFrame(Y)};E({nodeId:l.toValue(t),handleId:l.toValue(e),type:le},{x:te-q.left,y:oe-q.top}),k.connectStart({event:H,nodeId:l.toValue(t),handleId:l.toValue(e),handleType:le}),$.addEventListener("mousemove",z),$.addEventListener("mouseup",M),$.addEventListener("touchmove",z),$.addEventListener("touchend",M)}}function j(H){if(!d.value)return;const v=l.toValue(n)==="target";if(!h.value)k.clickConnectStart({event:H,nodeId:l.toValue(t),handleId:l.toValue(e)}),E({nodeId:l.toValue(t),type:l.toValue(n),handleId:l.toValue(e)},void 0,!0);else{let T=l.toValue(o)||O.value||Pt;const C=b(l.toValue(t));if(!T&&C&&(T=(v?C.isValidSourcePos:C.isValidTargetPos)||Pt),C&&(typeof C.connectable>"u"?p.value:C.connectable)===!1)return;const $=Lo(H.target),{connection:z,isValid:M}=ui(H,{nodeId:l.toValue(t),id:l.toValue(e),type:l.toValue(n)},u.value,h.value.nodeId,h.value.handleId||null,h.value.type,T,$,B.value,A.value,b),P=z.source===z.target;M&&!P&&k.connect(z),k.clickConnectEnd(H),g(H,!0)}}return{handlePointerDown:x,handleClick:j}}function Cs(){return l.inject(Do,"")}function Ao(e){const t=e??Cs()??"",n=l.inject(Vo,l.ref(null)),{findNode:o,edges:i,emits:r}=de(),a=o(t);return a||r.error(new ge(he.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:a,parentNode:l.computed(()=>o(a.parentNode)),connectedEdges:l.computed(()=>yn([a],i.value))}}function ks(){return{doubleClick:R(),click:R(),mouseEnter:R(),mouseMove:R(),mouseLeave:R(),contextMenu:R(),dragStart:R(),drag:R(),dragStop:R()}}function Ms(e,t){const n=ks();return n.doubleClick.on(o=>{var i,r;t.nodeDoubleClick(o),(r=(i=e.events)==null?void 0:i.doubleClick)==null||r.call(i,o)}),n.click.on(o=>{var i,r;t.nodeClick(o),(r=(i=e.events)==null?void 0:i.click)==null||r.call(i,o)}),n.mouseEnter.on(o=>{var i,r;t.nodeMouseEnter(o),(r=(i=e.events)==null?void 0:i.mouseEnter)==null||r.call(i,o)}),n.mouseMove.on(o=>{var i,r;t.nodeMouseMove(o),(r=(i=e.events)==null?void 0:i.mouseMove)==null||r.call(i,o)}),n.mouseLeave.on(o=>{var i,r;t.nodeMouseLeave(o),(r=(i=e.events)==null?void 0:i.mouseLeave)==null||r.call(i,o)}),n.contextMenu.on(o=>{var i,r;t.nodeContextMenu(o),(r=(i=e.events)==null?void 0:i.contextMenu)==null||r.call(i,o)}),n.dragStart.on(o=>{var i,r;t.nodeDragStart(o),(r=(i=e.events)==null?void 0:i.dragStart)==null||r.call(i,o)}),n.drag.on(o=>{var i,r;t.nodeDrag(o),(r=(i=e.events)==null?void 0:i.drag)==null||r.call(i,o)}),n.dragStop.on(o=>{var i,r;t.nodeDragStop(o),(r=(i=e.events)==null?void 0:i.dragStop)==null||r.call(i,o)}),Object.entries(n).reduce((o,[i,r])=>(o.emit[i]=r.trigger,o.on[i]=r.on,o),{emit:{},on:{}})}function zo(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:o,snapGrid:i,snapToGrid:r,nodesDraggable:a,emits:s}=de();return(u,c=!1)=>{const d=r.value?i.value[0]:5,h=r.value?i.value[1]:5,p=c?4:1,m=u.x*d*p,b=u.y*h*p,_=[];for(const E of e.value)if(E.draggable||a&&typeof E.draggable>"u"){const N={x:E.computedPosition.x+m,y:E.computedPosition.y+b},{computedPosition:g}=bn(E,N,s.error,t.value,E.parentNode?o(E.parentNode):void 0);_.push({id:E.id,position:g,from:E.position,distance:{x:u.x,y:u.y},dimensions:E.dimensions})}n(_,!0,!1)}}const hn=.1;function $e(){return Ot("Viewport not initialized yet."),Promise.resolve(!1)}const Is={zoomIn:$e,zoomOut:$e,zoomTo:$e,fitView:$e,setCenter:$e,fitBounds:$e,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:$e,setTransform:$e,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function $s(e){function t(o,i){return new Promise(r=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.scaleBy(gn(e.d3Selection,i,()=>{r(!0)}),o):r(!1)})}function n(o,i,r,a){return new Promise(s=>{const{x:u,y:c}=Ho({x:-o,y:-i},e.translateExtent),d=Ue.translate(-u,-c).scale(r);e.d3Selection&&e.d3Zoom?e.d3Zoom.transform(gn(e.d3Selection,a,()=>{s(!0)}),d):s(!1)})}return l.computed(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:i=>t(1.2,i==null?void 0:i.duration),zoomOut:i=>t(1/1.2,i==null?void 0:i.duration),zoomTo:(i,r)=>new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.scaleTo(gn(e.d3Selection,r==null?void 0:r.duration,()=>{a(!0)}),i):a(!1)}),setViewport:(i,r)=>n(i.x,i.y,i.zoom,r==null?void 0:r.duration),setTransform:(i,r)=>n(i.x,i.y,i.zoom,r==null?void 0:r.duration),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(i={padding:hn,includeHiddenNodes:!1,duration:0})=>{var r,a;const s=[];for(const p of e.nodes)p.dimensions.width&&p.dimensions.height&&((i==null?void 0:i.includeHiddenNodes)||!p.hidden)&&(!((r=i.nodes)!=null&&r.length)||(a=i.nodes)!=null&&a.length&&i.nodes.includes(p.id))&&s.push(p);if(!s.length)return Promise.resolve(!1);const u=Zo(s),{x:c,y:d,zoom:h}=Ko(u,e.dimensions.width,e.dimensions.height,i.minZoom??e.minZoom,i.maxZoom??e.maxZoom,i.padding??hn,i.offset);return n(c,d,h,i==null?void 0:i.duration)},setCenter:(i,r,a)=>{const s=typeof(a==null?void 0:a.zoom)<"u"?a.zoom:e.maxZoom,u=e.dimensions.width/2-i*s,c=e.dimensions.height/2-r*s;return n(u,c,s,a==null?void 0:a.duration)},fitBounds:(i,r={padding:hn})=>{const{x:a,y:s,zoom:u}=Ko(i,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,r.padding);return n(a,s,u,r==null?void 0:r.duration)},project:i=>mn(i,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:i=>{if(e.vueFlowRef){const{x:r,y:a}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x-r,y:i.y-a};return mn(s,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:i=>{if(e.vueFlowRef){const{x:r,y:a}=e.vueFlowRef.getBoundingClientRect(),s={x:i.x+r,y:i.y+a};return Xo(s,e.viewport)}return{x:0,y:0}}}:Is)}function gn(e,t=0,n){return e.transition().duration(t).on("end",n)}function Ts(e,t,n){const o=l.effectScope(!0);return o.run(()=>{const i=()=>{o.run(()=>{let _,E,N=!!(n.nodes.value.length||n.edges.value.length);_=Le([e.modelValue,()=>{var g,k;return(k=(g=e.modelValue)==null?void 0:g.value)==null?void 0:k.length}],([g])=>{g&&Array.isArray(g)&&(E==null||E.pause(),n.setElements(g),!E&&!N&&g.length?N=!0:E==null||E.resume())}),E=Le([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([g,k])=>{var S;(S=e.modelValue)!=null&&S.value&&Array.isArray(e.modelValue.value)&&(_==null||_.pause(),e.modelValue.value=[...g,...k],l.nextTick(()=>{_==null||_.resume()}))},{immediate:N}),l.onScopeDispose(()=>{_==null||_.stop(),E==null||E.stop()})})},r=()=>{o.run(()=>{let _,E,N=!!n.nodes.value.length;_=Le([e.nodes,()=>{var g,k;return(k=(g=e.nodes)==null?void 0:g.value)==null?void 0:k.length}],([g])=>{g&&Array.isArray(g)&&(E==null||E.pause(),n.setNodes(g),!E&&!N&&g.length?N=!0:E==null||E.resume())}),E=Le([n.nodes,()=>n.nodes.value.length],([g])=>{var k;(k=e.nodes)!=null&&k.value&&Array.isArray(e.nodes.value)&&(_==null||_.pause(),e.nodes.value=[...g],l.nextTick(()=>{_==null||_.resume()}))},{immediate:N}),l.onScopeDispose(()=>{_==null||_.stop(),E==null||E.stop()})})},a=()=>{o.run(()=>{let _,E,N=!!n.edges.value.length;_=Le([e.edges,()=>{var g,k;return(k=(g=e.edges)==null?void 0:g.value)==null?void 0:k.length}],([g])=>{g&&Array.isArray(g)&&(E==null||E.pause(),n.setEdges(g),!E&&!N&&g.length?N=!0:E==null||E.resume())}),E=Le([n.edges,()=>n.edges.value.length],([g])=>{var k;(k=e.edges)!=null&&k.value&&Array.isArray(e.edges.value)&&(_==null||_.pause(),e.edges.value=[...g],l.nextTick(()=>{_==null||_.resume()}))},{immediate:N}),l.onScopeDispose(()=>{_==null||_.stop(),E==null||E.stop()})})},s=()=>{o.run(()=>{l.watch(()=>t.maxZoom,()=>{t.maxZoom&&fe(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},u=()=>{o.run(()=>{l.watch(()=>t.minZoom,()=>{t.minZoom&&fe(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},c=()=>{o.run(()=>{l.watch(()=>t.translateExtent,()=>{t.translateExtent&&fe(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},d=()=>{o.run(()=>{l.watch(()=>t.nodeExtent,()=>{t.nodeExtent&&fe(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},h=()=>{o.run(()=>{l.watch(()=>t.applyDefault,()=>{fe(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},p=()=>{o.run(()=>{const _=async E=>{let N=E;typeof t.autoConnect=="function"&&(N=await t.autoConnect(E)),N!==!1&&n.addEdges([N])};l.watch(()=>t.autoConnect,()=>{fe(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),l.watch(n.autoConnect,(E,N,g)=>{E?n.onConnect(_):n.hooks.value.connect.off(_),g(()=>{n.hooks.value.connect.off(_)})},{immediate:!0})})},m=()=>{const _=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const E of Object.keys(t)){const N=E;if(!_.includes(N)){const g=l.toRef(()=>t[N]),k=n[N];l.isRef(k)&&o.run(()=>{l.watch(g,S=>{fe(S)&&(k.value=S)},{immediate:!0})})}}};(()=>{i(),r(),a(),u(),s(),c(),d(),h(),p(),m()})()}),()=>o.stop()}function Ro(e){return{...e.computedPosition||{x:0,y:0},width:e.dimensions.width||0,height:e.dimensions.height||0}}function pn(e,t){const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)}function Bt(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Ae(e,t=0,n=1){return Math.min(Math.max(e,t),n)}function Ho(e,t){return{x:Ae(e.x,t[0][0],t[1][0]),y:Ae(e.y,t[0][1],t[1][1])}}function Lo(e){const t=e.getRootNode();return"elementFromPoint"in t?t:dn().document}function Te(e){return e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e}function ze(e){return e&&typeof e=="object"&&"id"in e&&"position"in e&&!Te(e)}function We(e){return ze(e)&&"computedPosition"in e}function Dt(e){return!Number.isNaN(e)&&Number.isFinite(e)}function Ps(e){return Dt(e.width)&&Dt(e.height)&&Dt(e.x)&&Dt(e.y)}function Bs(e,t,n){const o={id:e.id.toString(),type:e.type??"default",dimensions:l.markRaw({width:0,height:0}),computedPosition:l.markRaw({z:0,...e.position}),handleBounds:{source:[],target:[]},draggable:void 0,selectable:void 0,connectable:void 0,focusable:void 0,selected:!1,dragging:!1,resizing:!1,initialized:!1,isParent:!1,position:{x:0,y:0},data:fe(e.data)?e.data:{},events:l.markRaw(fe(e.events)?e.events:{})};return Object.assign(t??o,e,{id:e.id.toString(),parentNode:n})}function Fo(e,t,n){var o,i;const r={id:e.id.toString(),type:e.type??(t==null?void 0:t.type)??"default",source:e.source.toString(),target:e.target.toString(),sourceHandle:(o=e.sourceHandle)==null?void 0:o.toString(),targetHandle:(i=e.targetHandle)==null?void 0:i.toString(),updatable:e.updatable??(n==null?void 0:n.updatable),selectable:e.selectable??(n==null?void 0:n.selectable),focusable:e.focusable??(n==null?void 0:n.focusable),data:fe(e.data)?e.data:{},events:l.markRaw(fe(e.events)?e.events:{}),label:e.label??"",interactionWidth:e.interactionWidth??(n==null?void 0:n.interactionWidth),...n??{}};return Object.assign(t??r,e,{id:e.id.toString()})}function Yo(e,t,n,o){const i=typeof e=="string"?e:e.id,r=new Set,a=o==="source"?"target":"source";for(const s of n)s[a]===i&&r.add(s[o]);return t.filter(s=>r.has(s.id))}function Ds(...e){if(e.length===3){const[r,a,s]=e;return Yo(r,a,s,"target")}const[t,n]=e,o=typeof t=="string"?t:t.id;return n.filter(r=>Te(r)&&r.source===o).map(r=>n.find(a=>ze(a)&&a.id===r.target))}function Vs(...e){if(e.length===3){const[r,a,s]=e;return Yo(r,a,s,"source")}const[t,n]=e,o=typeof t=="string"?t:t.id;return n.filter(r=>Te(r)&&r.target===o).map(r=>n.find(a=>ze(a)&&a.id===r.source))}function Go({source:e,sourceHandle:t,target:n,targetHandle:o}){return`vueflow__edge-${e}${t??""}-${n}${o??""}`}function Os(e,t){return t.some(n=>Te(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))}function Xo({x:e,y:t},{x:n,y:o,zoom:i}){return{x:e*i+n,y:t*i+o}}function mn({x:e,y:t},{x:n,y:o,zoom:i},r,[a,s]){const u={x:(e-n)/i,y:(t-o)/i};return r?{x:a*Math.round(u.x/a),y:s*Math.round(u.y/s)}:u}function As(e,t){return{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)}}function Uo({x:e,y:t,width:n,height:o}){return{x:e,y:t,x2:e+n,y2:t+o}}function zs({x:e,y:t,x2:n,y2:o}){return{x:e,y:t,width:n-e,height:o-t}}function Zo(e){let t={x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY};for(let n=0;n<e.length;n++){const o=e[n];t=As(t,Uo({...o.computedPosition,...o.dimensions}))}return zs(t)}function Wo(e,t,{x:n,y:o,zoom:i}={x:0,y:0,zoom:1},r=!1,a=!1){const s={x:(t.x-n)/i,y:(t.y-o)/i,width:t.width/i,height:t.height/i};return e.filter(u=>{const{computedPosition:c={x:0,y:0},dimensions:d={width:0,height:0},selectable:h}=u;if(a&&!h)return!1;const p={...c,width:d.width||0,height:d.height||0},m=pn(s,p),b=typeof d.width>"u"||typeof d.height>"u"||d.width===0||d.height===0,_=r&&m>0,E=d.width*d.height;return b||_||m>=E})}function yn(e,t){const n=new Set;if(typeof e=="string")n.add(e);else if(e.length>=1)for(const o of e)n.add(o.id);return t.filter(o=>n.has(o.source)||n.has(o.target))}function Ko(e,t,n,o,i,r=.1,a={x:0,y:0}){const s=t/(e.width*(1+r)),u=n/(e.height*(1+r)),c=Math.min(s,u),d=Ae(c,o,i),h=e.x+e.width/2,p=e.y+e.height/2,m=t/2-h*d+(a.x??0),b=n/2-p*d+(a.y??0);return{x:m,y:b,zoom:d}}function Rs(e,t){return{x:t.x+e.x,y:t.y+e.y,z:(e.z>t.z?e.z:t.z)+1}}function qo(e,t){if(!e.parentNode)return!1;const n=t(e.parentNode);return n?n.selected?!0:qo(n,t):!1}function ut(e,t){return typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`}function Jo(e,t,n){return e<t?Ae(Math.abs(e-t),1,50)/50:e>n?-Ae(Math.abs(e-n),1,50)/50:0}function jo(e,t){const n=Jo(e.x,35,t.width-35)*20,o=Jo(e.y,35,t.height-35)*20;return[n,o]}function vn(e,t){if(t){const n=e.position.x+e.dimensions.width-t.dimensions.width,o=e.position.y+e.dimensions.height-t.dimensions.height;if(n>0||o>0||e.position.x<0||e.position.y<0){let i={};if(typeof t.style=="function"?i={...t.style(t)}:t.style&&(i={...t.style}),i.width=i.width??`${t.dimensions.width}px`,i.height=i.height??`${t.dimensions.height}px`,n>0)if(typeof i.width=="string"){const r=Number(i.width.replace("px",""));i.width=`${r+n}px`}else i.width+=n;if(o>0)if(typeof i.height=="string"){const r=Number(i.height.replace("px",""));i.height=`${r+o}px`}else i.height+=o;if(e.position.x<0){const r=Math.abs(e.position.x);if(t.position.x=t.position.x-r,typeof i.width=="string"){const a=Number(i.width.replace("px",""));i.width=`${a+r}px`}else i.width+=r;e.position.x=0}if(e.position.y<0){const r=Math.abs(e.position.y);if(t.position.y=t.position.y-r,typeof i.height=="string"){const a=Number(i.height.replace("px",""));i.height=`${a+r}px`}else i.height+=r;e.position.y=0}t.dimensions.width=Number(i.width.toString().replace("px","")),t.dimensions.height=Number(i.height.toString().replace("px","")),typeof t.style=="function"?t.style=r=>{const a=t.style;return{...a(r),...i}}:t.style={...t.style,...i}}}}function Qo(e,t){var n,o;const i=e.filter(a=>a.type==="add"||a.type==="remove");for(const a of i)if(a.type==="add")t.findIndex(u=>u.id===a.item.id)===-1&&t.push(a.item);else if(a.type==="remove"){const s=t.findIndex(u=>u.id===a.id);s!==-1&&t.splice(s,1)}const r=t.map(a=>a.id);for(const a of t)for(const s of e)if(s.id===a.id)switch(s.type){case"select":a.selected=s.selected;break;case"position":if(We(a)&&(typeof s.position<"u"&&(a.position=s.position),typeof s.dragging<"u"&&(a.dragging=s.dragging),a.expandParent&&a.parentNode)){const u=t[r.indexOf(a.parentNode)];u&&We(u)&&vn(a,u)}break;case"dimensions":if(We(a)&&(typeof s.dimensions<"u"&&(a.dimensions=s.dimensions),typeof s.updateStyle<"u"&&(a.style={...a.style||{},width:`${(n=s.dimensions)==null?void 0:n.width}px`,height:`${(o=s.dimensions)==null?void 0:o.height}px`}),typeof s.resizing<"u"&&(a.resizing=s.resizing),a.expandParent&&a.parentNode)){const u=t[r.indexOf(a.parentNode)];u&&We(u)&&(!!u.dimensions.width&&!!u.dimensions.height?vn(a,u):l.nextTick(()=>{vn(a,u)}))}break}return t}function Me(e,t){return{id:e,type:"select",selected:t}}function ei(e){return{item:e,type:"add"}}function ti(e){return{id:e,type:"remove"}}function ni(e,t,n,o,i){return{id:e,source:t,target:n,sourceHandle:o||null,targetHandle:i||null,type:"remove"}}function wn(e,t){return e.reduce((n,o)=>{let i=t.includes(o.id);fe(o.selectable)&&!o.selectable&&(i=!1);const r=We(o)?"changedNodes":"changedEdges";return!o.selected&&i?n[r].push(Me(o.id,!0)):o.selected&&!i&&n[r].push(Me(o.id,!1)),n},{changedNodes:[],changedEdges:[]})}function R(e){const t=new Set;let n=!1;const o=()=>t.size>0;e&&(n=!0,t.add(e));const i=s=>{t.delete(s)};return{on:s=>{e&&n&&t.delete(e),t.add(s);const u=()=>{i(s),e&&n&&t.add(e)};return ct(u),{off:u}},off:i,trigger:s=>Promise.all(Array.from(t).map(u=>u(s))),hasListeners:o,fns:t}}function oi(e,t,n){let o=e;do{if(o&&o.matches(t))return!0;if(o===n)return!1;o=o.parentElement}while(o);return!1}function Hs(e,t,n,o,i){var r,a;const s=[];for(const u of e)(u.selected||u.id===i)&&(!u.parentNode||!qo(u,o))&&(u.draggable||t&&typeof u.draggable>"u")&&s.push(l.markRaw({id:u.id,position:u.position||{x:0,y:0},distance:{x:n.x-((r=u.computedPosition)==null?void 0:r.x)||0,y:n.y-((a=u.computedPosition)==null?void 0:a.y)||0},from:u.computedPosition,extent:u.extent,parentNode:u.parentNode,dimensions:u.dimensions,expandParent:u.expandParent}));return s}function _n({id:e,dragItems:t,findNode:n}){const o=[];for(const i of t){const r=n(i.id);r&&o.push(r)}return[e?o.find(i=>i.id===e):o[0],o]}function ii(e){if(Array.isArray(e))switch(e.length){case 1:return[e[0],e[0],e[0],e[0]];case 2:return[e[0],e[1],e[0],e[1]];case 3:return[e[0],e[1],e[2],e[1]];case 4:return e;default:return[0,0,0,0]}return[e,e,e,e]}function Ls(e,t,n){const[o,i,r,a]=typeof e!="string"?ii(e.padding):[0,0,0,0];return n&&typeof n.computedPosition.x<"u"&&typeof n.computedPosition.y<"u"&&typeof n.dimensions.width<"u"&&typeof n.dimensions.height<"u"?[[n.computedPosition.x+a,n.computedPosition.y+o],[n.computedPosition.x+n.dimensions.width-i,n.computedPosition.y+n.dimensions.height-r]]:!1}function Fs(e,t,n,o){let i=e.extent||n;if((i==="parent"||!Array.isArray(i)&&(i==null?void 0:i.range)==="parent")&&!e.expandParent)if(e.parentNode&&o&&e.dimensions.width&&e.dimensions.height){const r=Ls(i,e,o);r&&(i=r)}else t(new ge(he.NODE_EXTENT_INVALID,e.id)),i=n;else if(Array.isArray(i)){const r=(o==null?void 0:o.computedPosition.x)||0,a=(o==null?void 0:o.computedPosition.y)||0;i=[[i[0][0]+r,i[0][1]+a],[i[1][0]+r,i[1][1]+a]]}else if(i!=="parent"&&(i!=null&&i.range)&&Array.isArray(i.range)){const[r,a,s,u]=ii(i.padding),c=(o==null?void 0:o.computedPosition.x)||0,d=(o==null?void 0:o.computedPosition.y)||0;i=[[i.range[0][0]+c+u,i.range[0][1]+d+r],[i.range[1][0]+c-a,i.range[1][1]+d-s]]}return i==="parent"?[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]]:i}function Ys({width:e,height:t},n){return[n[0],[n[1][0]-(e||0),n[1][1]-(t||0)]]}function bn(e,t,n,o,i){const r=Ys(e.dimensions,Fs(e,n,o,i)),a=Ho(t,r);return{position:{x:a.x-((i==null?void 0:i.computedPosition.x)||0),y:a.y-((i==null?void 0:i.computedPosition.y)||0)},computedPosition:a}}function En(e,t,n){const o=((n==null?void 0:n.x)??0)+t.x,i=((n==null?void 0:n.y)??0)+t.y,r=(n==null?void 0:n.width)??t.width,a=(n==null?void 0:n.height)??t.height;switch(e){case F.Top:return{x:o+r/2,y:i};case F.Right:return{x:o+r,y:i+a/2};case F.Bottom:return{x:o+r/2,y:i+a};case F.Left:return{x:o,y:i+a/2}}}function ri(e=[],t){return e.length&&(t?e.find(n=>n.id===t):e[0])||null}function Gs(e,t,n,o,i,r){const a=En(n,{...e.dimensions,...e.computedPosition},t),s=En(r,{...o.dimensions,...o.computedPosition},i);return{sourceX:a.x,sourceY:a.y,targetX:s.x,targetY:s.y}}function Xs({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:o,targetWidth:i,targetHeight:r,width:a,height:s,viewport:u}){const c={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+i),y2:Math.max(e.y+o,t.y+r)};c.x===c.x2&&(c.x2+=1),c.y===c.y2&&(c.y2+=1);const d=Uo({x:(0-u.x)/u.zoom,y:(0-u.y)/u.zoom,width:a/u.zoom,height:s/u.zoom}),h=Math.max(0,Math.min(d.x2,c.x2)-Math.max(d.x,c.x)),p=Math.max(0,Math.min(d.y2,c.y2)-Math.max(d.y,c.y));return Math.ceil(h*p)>0}function Us(e,t,n=!1){const o=typeof e.zIndex=="number";let i=o?e.zIndex:0;const r=t(e.source),a=t(e.target);return!r||!a?0:(n&&(i=o?e.zIndex:Math.max(r.computedPosition.z||0,a.computedPosition.z||0)),i)}var he=(e=>(e.MISSING_STYLES="MISSING_STYLES",e.MISSING_VIEWPORT_DIMENSIONS="MISSING_VIEWPORT_DIMENSIONS",e.NODE_INVALID="NODE_INVALID",e.NODE_NOT_FOUND="NODE_NOT_FOUND",e.NODE_MISSING_PARENT="NODE_MISSING_PARENT",e.NODE_TYPE_MISSING="NODE_TYPE_MISSING",e.NODE_EXTENT_INVALID="NODE_EXTENT_INVALID",e.EDGE_INVALID="EDGE_INVALID",e.EDGE_NOT_FOUND="EDGE_NOT_FOUND",e.EDGE_SOURCE_MISSING="EDGE_SOURCE_MISSING",e.EDGE_TARGET_MISSING="EDGE_TARGET_MISSING",e.EDGE_TYPE_MISSING="EDGE_TYPE_MISSING",e.EDGE_SOURCE_TARGET_SAME="EDGE_SOURCE_TARGET_SAME",e.EDGE_SOURCE_TARGET_MISSING="EDGE_SOURCE_TARGET_MISSING",e.EDGE_ORPHANED="EDGE_ORPHANED",e.USEVUEFLOW_OPTIONS="USEVUEFLOW_OPTIONS",e))(he||{});const li={MISSING_STYLES:()=>"It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly",MISSING_VIEWPORT_DIMENSIONS:()=>"The Vue Flow parent container needs a width and a height to render the graph",NODE_INVALID:e=>`Node is invalid
|
|
2
2
|
Node: ${e}`,NODE_NOT_FOUND:e=>`Node not found
|
|
3
3
|
Node: ${e}`,NODE_MISSING_PARENT:(e,t)=>`Node is missing a parent
|
|
4
4
|
Node: ${e}
|
|
@@ -18,5 +18,5 @@ Edge: ${e}
|
|
|
18
18
|
Source: ${t}
|
|
19
19
|
Target: ${n}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed
|
|
20
20
|
Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found
|
|
21
|
-
Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class ge extends Error{constructor(t,...n){var o;super((o=li[t])==null?void 0:o.call(li,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function xn(e){return"clientX"in e}function Re(e,t){var n,o;const i=xn(e),r=i?e.clientX:(n=e.touches)==null?void 0:n[0].clientX,a=i?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:a-((t==null?void 0:t.top)??0)}}const Vt=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ai(){return{handleDomNode:null,isValid:!1,connection:{source:"",target:"",sourceHandle:null,targetHandle:null},endHandle:null}}function Sn(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function si(e,t,n,o){return(t[n]||[]).reduce((i,r)=>{var a,s;return`${e.id}-${r.id}-${n}`!==o&&i.push({id:r.id||null,type:n,nodeId:e.id,x:(((a=e.computedPosition)==null?void 0:a.x)??0)+r.x+r.width/2,y:(((s=e.computedPosition)==null?void 0:s.y)??0)+r.y+r.height/2,width:r.width,height:r.height}),i},[])}function Zs(e,t,n,o,i,r){const{x:a,y:s}=Re(e),c=t.elementsFromPoint(a,s).find(b=>b.classList.contains("vue-flow__handle"));if(c){const b=c.getAttribute("data-nodeid");if(b){const _=Nn(void 0,c),x=c.getAttribute("data-handleid"),N=r({nodeId:b,id:x,type:_});if(N){const p=i.find(C=>C.nodeId===b&&C.type===_&&C.id===x);return{handle:{id:x,type:_,nodeId:b,x:(p==null?void 0:p.x)||n.x,y:(p==null?void 0:p.y)||n.y},validHandleResult:N}}}}let d=[],h=Number.POSITIVE_INFINITY;for(const b of i){const _=Math.sqrt((b.x-n.x)**2+(b.y-n.y)**2);if(_<=o){const x=r(b);_<=h&&(_<h?d=[{handle:b,validHandleResult:x}]:_===h&&d.push({handle:b,validHandleResult:x}),h=_)}}if(!d.length)return{handle:null,validHandleResult:ai()};if(d.length===1)return d[0];const g=d.some(({validHandleResult:b})=>b.isValid),m=d.some(({handle:b})=>b.type==="target");return d.find(({handle:b,validHandleResult:_})=>m?b.type==="target":g?_.isValid:!0)||d[0]}function ui(e,t,n,o,i,r,a,s,u,c,d){const h=r==="target",g=s.querySelector(`.vue-flow__handle[data-id="${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`),{x:m,y:b}=Re(e),_=s.elementFromPoint(m,b),x=_!=null&&_.classList.contains("vue-flow__handle")?_:g,N=ai();if(x){N.handleDomNode=x;const p=Nn(void 0,x),C=x.getAttribute("data-nodeid"),E=x.getAttribute("data-handleid"),$=x.classList.contains("connectable"),A=x.classList.contains("connectableend"),D={source:h?C:o,sourceHandle:h?E:i,target:h?o:C,targetHandle:h?i:E};N.connection=D;const Z=$&&A&&(n===Oe.Strict?h&&p==="source"||!h&&p==="target":C!==o||E!==i);N.endHandle={nodeId:C,handleId:E,type:p},Z&&(N.isValid=a(D,{edges:u,nodes:c,sourceNode:d(D.source),targetNode:d(D.target)}))}return N}function Ws({nodes:e,nodeId:t,handleId:n,handleType:o}){const i=[];for(let r=0;r<e.length;r++){const a=e[r],{handleBounds:s}=a;let u=[],c=[];s&&(u=si(a,s,"source",`${t}-${n}-${o}`),c=si(a,s,"target",`${t}-${n}-${o}`)),i.push(...u,...c)}return i}function Nn(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Ks(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}const qs=["production","prod"];function Ot(e,...t){ci()&&console.warn(`[Vue Flow]: ${e}`,...t)}function ci(){return!qs.includes(process.env.NODE_ENV||"")}function di(e,t,n,o){const i=t.querySelectorAll(`.vue-flow__handle${e}`);return Array.from(i).map(a=>{const s=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),position:a.getAttribute("data-handlepos"),x:(s.left-n.left)/o,y:(s.top-n.top)/o,...Bt(a)}})}function Cn(e,t,n,o,i,r=!1,a){i.value=!1,e.selected?(r||e.selected&&t)&&(o([e]),l.nextTick(()=>{a.blur()})):n([e])}function fe(e){return typeof l.unref(e)<"u"}function Js(e,t,n,o){if(!e||!e.source||!e.target)return n(new ge(he.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let i;return Te(e)?i=e:i={...e,id:Go(e)},i=Fo(i,void 0,o),Os(i,t)?!1:i}function js(e,t,n,o,i,r){if(!t.source||!t.target)return r(new ge(he.EDGE_INVALID,e.id)),!1;const a=o(e.id);if(!a)return r(new ge(he.EDGE_NOT_FOUND,e.id)),!1;const{id:s,...u}=e,c={...u,id:i?Go(t):s,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.splice(n.indexOf(a),1,c),c}function fi(e,t,n){const o={},i=[];for(let r=0;r<e.length;++r){const a=e[r];if(!ze(a)){n(new ge(he.NODE_INVALID,a==null?void 0:a.id)||`[ID UNKNOWN|INDEX ${r}]`);continue}const s=Bs(a,t(a.id),a.parentNode);a.parentNode&&(o[a.parentNode]=!0),i[r]=s}for(const r of i){const a=t(r.parentNode)||i.find(s=>s.id===r.parentNode);r.parentNode&&!a&&n(new ge(he.NODE_MISSING_PARENT,r.id,r.parentNode)),(r.parentNode||o[r.id])&&(o[r.id]&&(r.isParent=!0),a&&(a.isParent=!0))}return i}function hi(e,t){e.clear();for(const n of t){const{id:o,source:i,target:r,sourceHandle:a=null,targetHandle:s=null}=n,u=`${i}-source-${a}`,c=`${r}-target-${s}`,d=e.get(u)||new Map,h=e.get(c)||new Map,g=l.markRaw({edgeId:o,source:i,target:r,sourceHandle:a,targetHandle:s});e.set(u,d.set(`${r}-${s}`,g)),e.set(c,h.set(`${i}-${a}`,g))}}function gi(e,t,n,o,i,r,a,s){const u=[];for(const c of e){const d=Te(c)?c:Js(c,s,i,r);if(!d)continue;const h=n(d.source),g=n(d.target);if(!h||!g){i(new ge(he.EDGE_SOURCE_TARGET_MISSING,d.id,d.source,d.target));continue}if(!h){i(new ge(he.EDGE_SOURCE_MISSING,d.id,d.source));continue}if(!g){i(new ge(he.EDGE_TARGET_MISSING,d.id,d.target));continue}if(t&&!t(d,{edges:s,nodes:a,sourceNode:h,targetNode:g})){i(new ge(he.EDGE_INVALID,d.id));continue}const m=o(d.id);u.push({...Fo(d,m,r),sourceNode:h,targetNode:g})}return u}function Qs(){return{edgesChange:R(),nodesChange:R(),nodeDoubleClick:R(),nodeClick:R(),nodeMouseEnter:R(),nodeMouseMove:R(),nodeMouseLeave:R(),nodeContextMenu:R(),nodeDragStart:R(),nodeDrag:R(),nodeDragStop:R(),nodesInitialized:R(),miniMapNodeClick:R(),miniMapNodeDoubleClick:R(),miniMapNodeMouseEnter:R(),miniMapNodeMouseMove:R(),miniMapNodeMouseLeave:R(),connect:R(),connectStart:R(),connectEnd:R(),clickConnectStart:R(),clickConnectEnd:R(),paneReady:R(),init:R(),move:R(),moveStart:R(),moveEnd:R(),selectionDragStart:R(),selectionDrag:R(),selectionDragStop:R(),selectionContextMenu:R(),selectionStart:R(),selectionEnd:R(),viewportChangeStart:R(),viewportChange:R(),viewportChangeEnd:R(),paneScroll:R(),paneClick:R(),paneContextMenu:R(),paneMouseEnter:R(),paneMouseMove:R(),paneMouseLeave:R(),edgeContextMenu:R(),edgeMouseEnter:R(),edgeMouseMove:R(),edgeMouseLeave:R(),edgeDoubleClick:R(),edgeClick:R(),edgeUpdateStart:R(),edgeUpdate:R(),edgeUpdateEnd:R(),updateNodeInternals:R(),error:R(e=>Ot(e.message))}}function eu(e,t){l.onBeforeMount(()=>{for(const[n,o]of Object.entries(t.value)){const i=r=>{e(n,r)};o.fns.add(i),ct(()=>{o.off(i)})}})}function pi(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:un.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:at.Free,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:Ve.Bezier,style:{}},connectionMode:Oe.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:Vt()?"Meta":"Control",zoomActivationKeyCode:Vt()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:Qs(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,disableKeyboardA11y:!1,ariaLiveMessage:""}}const tu=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function nu(e,t,n){const o=$s(e),i=f=>{const y=f??[];e.hooks.updateNodeInternals.trigger(y)},r=f=>Vs(f,e.nodes,e.edges),a=f=>Ds(f,e.nodes,e.edges),s=f=>yn(f,e.edges),u=f=>{if(f)return t.value.get(f)},c=f=>{if(f)return n.value.get(f)},d=(f,y,w)=>{var I,O;const G=[];for(const X of f){const ee={id:X.id,type:"position",dragging:w,from:X.from};if(y&&(ee.position=X.position,X.parentNode)){const ne=u(X.parentNode);ee.position={x:ee.position.x-(((I=ne==null?void 0:ne.computedPosition)==null?void 0:I.x)??0),y:ee.position.y-(((O=ne==null?void 0:ne.computedPosition)==null?void 0:O.y)??0)}}G.push(ee)}G!=null&&G.length&&e.hooks.nodesChange.trigger(G)},h=f=>{if(!e.vueFlowRef)return;const y=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!y)return;const w=window.getComputedStyle(y),{m22:I}=new window.DOMMatrixReadOnly(w.transform),O=[];for(let G=0;G<f.length;++G){const X=f[G],ee=u(X.id);if(ee){const ne=Bt(X.nodeElement);if(!!(ne.width&&ne.height&&(ee.dimensions.width!==ne.width||ee.dimensions.height!==ne.height||X.forceUpdate))){const ae=X.nodeElement.getBoundingClientRect();ee.dimensions=ne,ee.handleBounds.source=di(".source",X.nodeElement,ae,I),ee.handleBounds.target=di(".target",X.nodeElement,ae,I),O[G]={id:ee.id,type:"dimensions",dimensions:ne}}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&o.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),O.length&&e.hooks.nodesChange.trigger(O)},g=(f,y)=>{const w=[];for(const G of f)w.push(G.id);let I=[],O=[];if(e.multiSelectionActive)for(const G of w)I.push(Me(G,y));else{const G=wn([...e.nodes,...e.edges],w);I=G.changedNodes,O=G.changedEdges}I.length&&e.hooks.nodesChange.trigger(I),O.length&&e.hooks.edgesChange.trigger(O)},m=(f,y)=>{const w=[];for(const G of f)w.push(G.id);let I=[],O=[];if(e.multiSelectionActive)for(const G of w)O.push(Me(G,y));else{const G=wn([...e.nodes,...e.edges],w);I=G.changedNodes,O=G.changedEdges}I.length&&e.hooks.nodesChange.trigger(I),O.length&&e.hooks.edgesChange.trigger(O)},b=(f,y)=>{const w=[],I=[];for(const X of f)ze(X)?w.push(X.id):Te(X)&&I.push(X.id);const{changedNodes:O,changedEdges:G}=wn([...e.nodes,...e.edges],[...w,...I]);if(e.multiSelectionActive){for(const X of w)O.push(Me(X,y));for(const X of I)G.push(Me(X,y))}O.length&&e.hooks.nodesChange.trigger(O),G.length&&e.hooks.edgesChange.trigger(G)},_=f=>{g(f,!0)},x=f=>{m(f,!0)},N=f=>{b(f,!0)},p=f=>{if(!f.length)return g(f,!1);const y=[];for(const w of f)y.push(Me(w.id,!1));y.length&&e.hooks.nodesChange.trigger(y)},C=f=>{if(!f.length)return m(f,!1);const y=[];for(const w of f)y.push(Me(w.id,!1));y.length&&e.hooks.edgesChange.trigger(y)},E=f=>{if(!f||!f.length)return b([],!1);const y=f.reduce((w,I)=>{const O=Me(I.id,!1);return ze(I)?w.nodes.push(O):w.edges.push(O),w},{nodes:[],edges:[]});y.nodes.length&&e.hooks.nodesChange.trigger(y.nodes),y.edges.length&&e.hooks.edgesChange.trigger(y.edges)},$=f=>{var y;(y=e.d3Zoom)==null||y.scaleExtent([f,e.maxZoom]),e.minZoom=f},A=f=>{var y;(y=e.d3Zoom)==null||y.scaleExtent([e.minZoom,f]),e.maxZoom=f},D=f=>{var y;(y=e.d3Zoom)==null||y.translateExtent(f),e.translateExtent=f},U=f=>{e.nodeExtent=f,i()},Z=f=>{e.nodesDraggable=f,e.nodesConnectable=f,e.elementsSelectable=f},V=f=>{const y=f instanceof Function?f(e.nodes):f;!e.initialized&&!y.length||(e.nodes=fi(y,u,e.hooks.error.trigger))},S=f=>{const y=f instanceof Function?f(e.edges):f;if(!e.initialized&&!y.length)return;const w=gi(y,e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);hi(e.connectionLookup,w),e.edges=w},j=f=>{const y=f instanceof Function?f([...e.nodes,...e.edges]):f;!e.initialized&&!y.length||(V(y.filter(ze)),S(y.filter(Te)))},H=f=>{let y=f instanceof Function?f(e.nodes):f;y=Array.isArray(y)?y:[y];const w=fi(y,u,e.hooks.error.trigger),I=[];for(const O of w)I.push(ei(O));I.length&&e.hooks.nodesChange.trigger(I)},v=f=>{let y=f instanceof Function?f(e.edges):f;y=Array.isArray(y)?y:[y];const w=gi(y,e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),I=[];for(const O of w)I.push(ei(O));I.length&&e.hooks.edgesChange.trigger(I)},P=(f,y=!0,w=!1)=>{const I=f instanceof Function?f(e.nodes):f,O=Array.isArray(I)?I:[I],G=[],X=[];function ee(ce){const ae=s(ce);for(const se of ae)(!fe(se.deletable)||se.deletable)&&X.push(ni(se.id,se.source,se.target,se.sourceHandle,se.targetHandle))}function ne(ce){const ae=[];for(const se of e.nodes)se.parentNode===ce&&ae.push(se);if(ae.length){for(const se of ae)G.push(ti(se.id));y&&ee(ae);for(const se of ae)ne(se.id)}}for(const ce of O){const ae=typeof ce=="string"?u(ce):ce;ae&&(fe(ae.deletable)&&!ae.deletable||(G.push(ti(ae.id)),y&&ee([ae]),w&&ne(ae.id)))}X.length&&e.hooks.edgesChange.trigger(X),G.length&&e.hooks.nodesChange.trigger(G)},k=f=>{const y=f instanceof Function?f(e.edges):f,w=Array.isArray(y)?y:[y],I=[];for(const O of w){const G=typeof O=="string"?c(O):O;G&&(fe(G.deletable)&&!G.deletable||I.push(ni(typeof O=="string"?O:O.id,G.source,G.target,G.sourceHandle,G.targetHandle)))}e.hooks.edgesChange.trigger(I)},T=(f,y,w=!0)=>js(f,y,e.edges,c,w,e.hooks.error.trigger),z=(f,y,w={replace:!1})=>{const I=c(f);if(!I)return;const O=typeof y=="function"?y(I):y;I.data=w.replace?O:{...I.data,...O}},M=f=>Qo(f,e.nodes),B=f=>{const y=Qo(f,e.edges);return hi(e.connectionLookup,y),y},L=(f,y,w={replace:!1})=>{const I=u(f);if(!I)return;const O=typeof y=="function"?y(I):y;w.replace?e.nodes.splice(e.nodes.indexOf(I),1,O):Object.assign(I,O)},K=(f,y,w={replace:!1})=>{const I=u(f);if(!I)return;const O=typeof y=="function"?y(I):y;I.data=w.replace?O:{...I.data,...O}},re=(f,y,w=!1)=>{w?e.connectionClickStartHandle=f:e.connectionStartHandle=f,e.connectionEndHandle=null,e.connectionStatus=null,y&&(e.connectionPosition=y)},te=(f,y=null,w=null)=>{e.connectionStartHandle&&(e.connectionPosition=f,e.connectionEndHandle=y,e.connectionStatus=w)},oe=(f,y)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,y?e.connectionClickStartHandle=null:e.connectionStartHandle=null},ue=f=>{const y=Ps(f),w=y?null:We(f)?f:u(f.id);return!y&&!w?[null,null,y]:[y?f:Ro(w),w,y]},le=(f,y=!0,w=e.nodes)=>{const[I,O,G]=ue(f);if(!I)return[];const X=[];for(const ee of w||e.nodes){if(!G&&(ee.id===O.id||!ee.computedPosition))continue;const ne=Ro(ee),ce=pn(ne,I);(y&&ce>0||ce>=Number(I.width)*Number(I.height))&&X.push(ee)}return X},q=(f,y,w=!0)=>{const[I]=ue(f);if(!I)return!1;const O=pn(I,y);return w&&O>0||O>=Number(I.width)*Number(I.height)},W=f=>{const{viewport:y,dimensions:w,d3Zoom:I,d3Selection:O,translateExtent:G}=e;if(!I||!O||!f.x&&!f.y)return!1;const X=Ue.translate(y.x+f.x,y.y+f.y).scale(y.zoom),ee=[[0,0],[w.width,w.height]],ne=I.constrain()(X,ee,G),ce=e.viewport.x!==ne.x||e.viewport.y!==ne.y||e.viewport.zoom!==ne.k;return I.transform(O,ne),ce},J=f=>{const y=f instanceof Function?f(e):f,w=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];fe(y.defaultEdgeOptions)&&(e.defaultEdgeOptions=y.defaultEdgeOptions);const I=y.modelValue||y.nodes||y.edges?[]:void 0;I&&(y.modelValue&&I.push(...y.modelValue),y.nodes&&I.push(...y.nodes),y.edges&&I.push(...y.edges),j(I));const O=()=>{fe(y.maxZoom)&&A(y.maxZoom),fe(y.minZoom)&&$(y.minZoom),fe(y.translateExtent)&&D(y.translateExtent)};for(const G of Object.keys(y)){const X=G,ee=y[X];![...tu,...w].includes(X)&&fe(ee)&&(e[X]=ee)}dt(()=>e.d3Zoom).not.toBeNull().then(O),e.initialized||(e.initialized=!0)};return{updateNodePositions:d,updateNodeDimensions:h,setElements:j,setNodes:V,setEdges:S,addNodes:H,addEdges:v,removeNodes:P,removeEdges:k,findNode:u,findEdge:c,updateEdge:T,updateEdgeData:z,updateNode:L,updateNodeData:K,applyEdgeChanges:B,applyNodeChanges:M,addSelectedElements:N,addSelectedNodes:_,addSelectedEdges:x,setMinZoom:$,setMaxZoom:A,setTranslateExtent:D,setNodeExtent:U,removeSelectedElements:E,removeSelectedNodes:p,removeSelectedEdges:C,startConnection:re,updateConnection:te,endConnection:oe,setInteractive:Z,setState:J,getIntersectingNodes:le,getIncomers:r,getOutgoers:a,getConnectedEdges:s,isNodeIntersecting:q,panBy:W,fitView:f=>o.value.fitView(f),zoomIn:f=>o.value.zoomIn(f),zoomOut:f=>o.value.zoomOut(f),zoomTo:(f,y)=>o.value.zoomTo(f,y),setViewport:(f,y)=>o.value.setViewport(f,y),setTransform:(f,y)=>o.value.setTransform(f,y),getViewport:()=>o.value.getViewport(),getTransform:()=>o.value.getTransform(),setCenter:(f,y,w)=>o.value.setCenter(f,y,w),fitBounds:(f,y)=>o.value.fitBounds(f,y),project:f=>o.value.project(f),screenToFlowCoordinate:f=>o.value.screenToFlowCoordinate(f),flowToScreenCoordinate:f=>o.value.flowToScreenCoordinate(f),toObject:()=>{const f=[],y=[];for(const w of e.nodes){const{computedPosition:I,handleBounds:O,selected:G,dimensions:X,isParent:ee,resizing:ne,dragging:ce,events:ae,...se}=w;f.push(se)}for(const w of e.edges){const{selected:I,sourceNode:O,targetNode:G,events:X,...ee}=w;y.push(ee)}return JSON.parse(JSON.stringify({nodes:f,edges:y,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:f=>new Promise(y=>{const{nodes:w,edges:I,position:O,zoom:G,viewport:X}=f;if(w&&V(w),I&&S(I),X!=null&&X.x&&(X!=null&&X.y)||O){const ee=(X==null?void 0:X.x)||O[0],ne=(X==null?void 0:X.y)||O[1],ce=(X==null?void 0:X.zoom)||G||e.viewport.zoom;return dt(()=>o.value.viewportInitialized).toBe(!0).then(()=>{o.value.setViewport({x:ee,y:ne,zoom:ce}).then(()=>{y(!0)})})}else y(!0)}),updateNodeInternals:i,viewportHelper:o,$reset:()=>{const f=pi();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const y=Ue.translate(f.defaultViewport.x??0,f.defaultViewport.y??0).scale(Ae(f.defaultViewport.zoom??1,f.minZoom,f.maxZoom)),w=e.viewportRef.getBoundingClientRect(),I=[[0,0],[w.width,w.height]],O=e.d3Zoom.constrain()(y,I,f.translateExtent);e.d3Zoom.transform(e.d3Selection,O)}J(f)},$destroy:()=>{}}}const ou=["data-id","data-handleid","data-nodeid","data-handlepos"],iu={name:"Handle",compatConfig:{MODE:3}},Ke=l.defineComponent({...iu,props:{id:{default:null},type:{},position:{default:()=>F.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=l.createPropsRestProxy(e,["position","connectable","connectableStart","connectableEnd","id"]),o=l.toRef(()=>n.type??"source"),i=l.toRef(()=>n.isValidConnection??null),{connectionStartHandle:r,connectionClickStartHandle:a,connectionEndHandle:s,vueFlowRef:u,nodesConnectable:c,noDragClassName:d,noPanClassName:h}=de(),{id:g,node:m,nodeEl:b,connectedEdges:_}=Ao(),x=l.ref(),N=l.toRef(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),p=l.toRef(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),C=l.toRef(()=>{var V,S,j,H,v,P;return((V=r.value)==null?void 0:V.nodeId)===g&&((S=r.value)==null?void 0:S.handleId)===e.id&&((j=r.value)==null?void 0:j.type)===o.value||((H=s.value)==null?void 0:H.nodeId)===g&&((v=s.value)==null?void 0:v.handleId)===e.id&&((P=s.value)==null?void 0:P.type)===o.value}),E=l.toRef(()=>{var V,S,j;return((V=a.value)==null?void 0:V.nodeId)===g&&((S=a.value)==null?void 0:S.handleId)===e.id&&((j=a.value)==null?void 0:j.type)===o.value}),{handlePointerDown:$,handleClick:A}=Oo({nodeId:g,handleId:e.id,isValidConnection:i,type:o}),D=l.computed(()=>typeof e.connectable=="string"&&e.connectable==="single"?!_.value.some(V=>{const S=V[`${o.value}Handle`];return V[o.value]!==g?!1:S?S===e.id:!0}):typeof e.connectable=="number"?_.value.filter(V=>{const S=V[`${o.value}Handle`];return V[o.value]!==g?!1:S?S===e.id:!0}).length<e.connectable:typeof e.connectable=="function"?e.connectable(m,_.value):fe(e.connectable)?e.connectable:c.value);dt(()=>!!m.dimensions.width&&!!m.dimensions.height).toBe(!0,{flush:"post"}).then(()=>{var V;const S=(V=m.handleBounds[o.value])==null?void 0:V.find(z=>z.id===e.id);if(!u.value||S)return;const j=u.value.querySelector(".vue-flow__transformationpane");if(!b.value||!x.value||!j||!e.id)return;const H=b.value.getBoundingClientRect(),v=x.value.getBoundingClientRect(),P=window.getComputedStyle(j),{m22:k}=new window.DOMMatrixReadOnly(P.transform),T={id:e.id,position:e.position,x:(v.left-H.left)/k,y:(v.top-H.top)/k,...Bt(x.value)};m.handleBounds[o.value]=[...m.handleBounds[o.value]??[],T]}),l.onUnmounted(()=>{const V=m.handleBounds[o.value];V&&(m.handleBounds[o.value]=V.filter(S=>S.id!==e.id))});function U(V){const S=xn(V);D.value&&N.value&&(S&&V.button===0||!S)&&$(V)}function Z(V){!g||!a.value&&!N.value||D.value&&A(V)}return t({handleClick:A,handlePointerDown:$,onClick:Z,onPointerDown:U}),(V,S)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"handle",ref:x,"data-id":`${l.unref(g)}-${e.id}-${o.value}`,"data-handleid":e.id,"data-nodeid":l.unref(g),"data-handlepos":V.position,class:l.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${V.position}`,`vue-flow__handle-${e.id}`,l.unref(d),l.unref(h),o.value,{connectable:D.value,connecting:E.value,connectablestart:N.value,connectableend:p.value,connectionindicator:D.value&&(N.value&&!C.value||p.value&&C.value)}]]),onMousedown:U,onTouchstartPassive:U,onClick:Z},[l.renderSlot(V.$slots,"default",{id:V.id})],42,ou))}}),At=function({sourcePosition:e=F.Bottom,targetPosition:t=F.Top,label:n,connectable:o=!0,isValidTargetPos:i,isValidSourcePos:r,data:a}){const s=a.label||n;return[l.h(Ke,{type:"target",position:t,connectable:o,isValidConnection:i}),typeof s!="string"&&s?l.h(s):l.h("div",{innerHTML:s}),l.h(Ke,{type:"source",position:e,connectable:o,isValidConnection:r})]};At.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"],At.inheritAttrs=!1,At.compatConfig={MODE:3};const ru=At,zt=function({targetPosition:e=F.Top,label:t,connectable:n=!0,isValidTargetPos:o,data:i}){const r=i.label||t;return[l.h(Ke,{type:"target",position:e,connectable:n,isValidConnection:o}),typeof r!="string"&&r?l.h(r):l.h("div",{innerHTML:r})]};zt.props=["targetPosition","label","isValidTargetPos","connectable","data"],zt.inheritAttrs=!1,zt.compatConfig={MODE:3};const lu=zt,Rt=function({sourcePosition:e=F.Bottom,label:t,connectable:n=!0,isValidSourcePos:o,data:i}){const r=i.label||t;return[typeof r!="string"&&r?l.h(r):l.h("div",{innerHTML:r}),l.h(Ke,{type:"source",position:e,connectable:n,isValidConnection:o})]};Rt.props=["sourcePosition","label","isValidSourcePos","connectable","data"],Rt.inheritAttrs=!1,Rt.compatConfig={MODE:3};const au=Rt,su=["transform"],uu=["width","height","x","y","rx","ry"],cu=["y"],du={name:"EdgeText",compatConfig:{MODE:3}},fu=l.defineComponent({...du,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=l.ref({x:0,y:0,width:0,height:0}),n=l.ref(null),o=l.computed(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);l.onMounted(i),l.watch([()=>e.x,()=>e.y,n,()=>e.label],i);function i(){if(!n.value)return;const r=n.value.getBBox();(r.width!==t.value.width||r.height!==t.value.height)&&(t.value=r)}return(r,a)=>(l.openBlock(),l.createElementBlock("g",{transform:o.value,class:"vue-flow__edge-textwrapper"},[r.labelShowBg?(l.openBlock(),l.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*r.labelBgPadding[0]}px`,height:`${t.value.height+2*r.labelBgPadding[1]}px`,x:-r.labelBgPadding[0],y:-r.labelBgPadding[1],style:l.normalizeStyle(r.labelBgStyle),rx:r.labelBgBorderRadius,ry:r.labelBgBorderRadius},null,12,uu)):l.createCommentVNode("",!0),l.createElementVNode("text",l.mergeProps(r.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:r.labelStyle}),[l.renderSlot(r.$slots,"default",{},()=>[typeof r.label!="string"?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(r.label),{key:0})):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createTextVNode(l.toDisplayString(r.label),1)],64))])],16,cu)],8,su))}}),hu=["id","d","marker-end","marker-start"],gu=["d","stroke-width"],pu={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Ht=l.defineComponent({...pu,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},style:{},labelStyle:{},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=l.createPropsRestProxy(e,["interactionWidth","labelShowBg"]),o=l.ref(null),i=l.ref(null),r=l.ref(null),a=l.useAttrs();return t({pathEl:o,interactionEl:i,labelEl:r}),(s,u)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("path",{id:s.id,ref_key:"pathEl",ref:o,d:s.path,style:l.normalizeStyle(n.style),class:l.normalizeClass(["vue-flow__edge-path",l.unref(a).class]),"marker-end":s.markerEnd,"marker-start":s.markerStart},null,14,hu),s.interactionWidth?(l.openBlock(),l.createElementBlock("path",{key:0,ref_key:"interactionEl",ref:i,fill:"none",d:s.path,"stroke-width":s.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,gu)):l.createCommentVNode("",!0),s.label&&s.labelX&&s.labelY?(l.openBlock(),l.createBlock(fu,{key:1,ref_key:"labelEl",ref:r,x:s.labelX,y:s.labelY,label:s.label,"label-show-bg":s.labelShowBg,"label-bg-style":s.labelBgStyle,"label-bg-padding":s.labelBgPadding,"label-bg-border-radius":s.labelBgBorderRadius,"label-style":s.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):l.createCommentVNode("",!0)],64))}});function mi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const i=Math.abs(n-e)/2,r=n<e?n+i:n-i,a=Math.abs(o-t)/2,s=o<t?o+a:o-a;return[r,s,i,a]}function yi({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:i,sourceControlY:r,targetControlX:a,targetControlY:s}){const u=e*.125+i*.375+a*.375+n*.125,c=t*.125+r*.375+s*.375+o*.125,d=Math.abs(u-e),h=Math.abs(c-t);return[u,c,d,h]}function Lt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function vi({pos:e,x1:t,y1:n,x2:o,y2:i,c:r}){let a,s;switch(e){case F.Left:a=t-Lt(t-o,r),s=n;break;case F.Right:a=t+Lt(o-t,r),s=n;break;case F.Top:a=t,s=n-Lt(n-i,r);break;case F.Bottom:a=t,s=n+Lt(i-n,r);break}return[a,s]}function kn(e){const{sourceX:t,sourceY:n,sourcePosition:o=F.Bottom,targetX:i,targetY:r,targetPosition:a=F.Top,curvature:s=.25}=e,[u,c]=vi({pos:o,x1:t,y1:n,x2:i,y2:r,c:s}),[d,h]=vi({pos:a,x1:i,y1:r,x2:t,y2:n,c:s}),[g,m,b,_]=yi({sourceX:t,sourceY:n,targetX:i,targetY:r,sourceControlX:u,sourceControlY:c,targetControlX:d,targetControlY:h});return[`M${t},${n} C${u},${c} ${d},${h} ${i},${r}`,g,m,b,_]}function wi({pos:e,x1:t,y1:n,x2:o,y2:i}){let r,a;switch(e){case F.Left:case F.Right:r=.5*(t+o),a=n;break;case F.Top:case F.Bottom:r=t,a=.5*(n+i);break}return[r,a]}function _i(e){const{sourceX:t,sourceY:n,sourcePosition:o=F.Bottom,targetX:i,targetY:r,targetPosition:a=F.Top}=e,[s,u]=wi({pos:o,x1:t,y1:n,x2:i,y2:r}),[c,d]=wi({pos:a,x1:i,y1:r,x2:t,y2:n}),[h,g,m,b]=yi({sourceX:t,sourceY:n,targetX:i,targetY:r,sourceControlX:s,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${t},${n} C${s},${u} ${c},${d} ${i},${r}`,h,g,m,b]}const bi={[F.Left]:{x:-1,y:0},[F.Right]:{x:1,y:0},[F.Top]:{x:0,y:-1},[F.Bottom]:{x:0,y:1}};function mu({source:e,sourcePosition:t=F.Bottom,target:n}){return t===F.Left||t===F.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}}function Ei(e,t){return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)}function yu({source:e,sourcePosition:t=F.Bottom,target:n,targetPosition:o=F.Top,center:i,offset:r}){const a=bi[t],s=bi[o],u={x:e.x+a.x*r,y:e.y+a.y*r},c={x:n.x+s.x*r,y:n.y+s.y*r},d=mu({source:u,sourcePosition:t,target:c}),h=d.x!==0?"x":"y",g=d[h];let m,b,_;const x={x:0,y:0},N={x:0,y:0},[p,C,E,$]=mi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*s[h]===-1){b=i.x??p,_=i.y??C;const D=[{x:b,y:u.y},{x:b,y:c.y}],U=[{x:u.x,y:_},{x:c.x,y:_}];a[h]===g?m=h==="x"?D:U:m=h==="x"?U:D}else{const D=[{x:u.x,y:c.y}],U=[{x:c.x,y:u.y}];if(h==="x"?m=a.x===g?U:D:m=a.y===g?D:U,t===o){const H=Math.abs(e[h]-n[h]);if(H<=r){const v=Math.min(r-1,r-H);a[h]===g?x[h]=(u[h]>e[h]?-1:1)*v:N[h]=(c[h]>n[h]?-1:1)*v}}if(t!==o){const H=h==="x"?"y":"x",v=a[h]===s[H],P=u[H]>c[H],k=u[H]<c[H];(a[h]===1&&(!v&&P||v&&k)||a[h]!==1&&(!v&&k||v&&P))&&(m=h==="x"?D:U)}const Z={x:u.x+x.x,y:u.y+x.y},V={x:c.x+N.x,y:c.y+N.y},S=Math.max(Math.abs(Z.x-m[0].x),Math.abs(V.x-m[0].x)),j=Math.max(Math.abs(Z.y-m[0].y),Math.abs(V.y-m[0].y));S>=j?(b=(Z.x+V.x)/2,_=m[0].y):(b=m[0].x,_=(Z.y+V.y)/2)}return[[e,{x:u.x+x.x,y:u.y+x.y},...m,{x:c.x+N.x,y:c.y+N.y},n],b,_,E,$]}function vu(e,t,n,o){const i=Math.min(Ei(e,t)/2,Ei(t,n)/2,o),{x:r,y:a}=t;if(e.x===r&&r===n.x||e.y===a&&a===n.y)return`L${r} ${a}`;if(e.y===a){const c=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${r+i*c},${a}Q ${r},${a} ${r},${a+i*d}`}const s=e.x<n.x?1:-1,u=e.y<n.y?-1:1;return`L ${r},${a+i*u}Q ${r},${a} ${r+i*s},${a}`}function Mn(e){const{sourceX:t,sourceY:n,sourcePosition:o=F.Bottom,targetX:i,targetY:r,targetPosition:a=F.Top,borderRadius:s=5,centerX:u,centerY:c,offset:d=20}=e,[h,g,m,b,_]=yu({source:{x:t,y:n},sourcePosition:o,target:{x:i,y:r},targetPosition:a,center:{x:u,y:c},offset:d});return[h.reduce((N,p,C)=>{let E;return C>0&&C<h.length-1?E=vu(h[C-1],p,h[C+1],s):E=`${C===0?"M":"L"}${p.x} ${p.y}`,N+=E,N},""),g,m,b,_]}function wu(e){const{sourceX:t,sourceY:n,targetX:o,targetY:i}=e,[r,a,s,u]=mi({sourceX:t,sourceY:n,targetX:o,targetY:i});return[`M ${t},${n}L ${o},${i}`,r,a,s,u]}const _u=l.defineComponent({name:"StraightEdge",props:["label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=wu(e);return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),xi=l.defineComponent({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=Mn({...e,sourcePosition:e.sourcePosition??F.Bottom,targetPosition:e.targetPosition??F.Top});return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),bu=l.defineComponent({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>l.h(xi,{...e,...t,borderRadius:0})}}),Eu=l.defineComponent({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=kn({...e,sourcePosition:e.sourcePosition??F.Bottom,targetPosition:e.targetPosition??F.Top});return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),xu=l.defineComponent({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=_i({...e,sourcePosition:e.sourcePosition??F.Bottom,targetPosition:e.targetPosition??F.Top});return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),Su={input:au,default:ru,output:lu},Nu={default:Eu,straight:_u,step:bu,smoothstep:xi,simplebezier:xu};function Cu(e,t,n){const o=l.computed(()=>_=>t.value.get(_)),i=l.computed(()=>_=>n.value.get(_)),r=l.computed(()=>{const _={...Nu,...e.edgeTypes},x=Object.keys(_);for(const N of e.edges)N.type&&!x.includes(N.type)&&(_[N.type]=N.type);return _}),a=l.computed(()=>{const _={...Su,...e.nodeTypes},x=Object.keys(_);for(const N of e.nodes)N.type&&!x.includes(N.type)&&(_[N.type]=N.type);return _}),s=l.computed(()=>e.onlyRenderVisibleElements?Wo(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),u=l.computed(()=>{if(e.onlyRenderVisibleElements){const _=[];for(const x of e.edges){const N=t.value.get(x.source),p=t.value.get(x.target);Xs({sourcePos:N.computedPosition||{x:0,y:0},targetPos:p.computedPosition||{x:0,y:0},sourceWidth:N.dimensions.width,sourceHeight:N.dimensions.height,targetWidth:p.dimensions.width,targetHeight:p.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&_.push(x)}return _}return e.edges}),c=l.computed(()=>[...s.value,...u.value]),d=l.computed(()=>{const _=[];for(const x of e.nodes)x.selected&&_.push(x);return _}),h=l.computed(()=>{const _=[];for(const x of e.edges)x.selected&&_.push(x);return _}),g=l.computed(()=>[...d.value,...h.value]),m=l.computed(()=>{const _=[];for(const x of e.nodes)x.dimensions.width&&x.dimensions.height&&x.handleBounds!==void 0&&_.push(x);return _}),b=l.computed(()=>s.value.length>0&&m.value.length===s.value.length);return{getNode:o,getEdge:i,getElements:c,getEdgeTypes:r,getNodeTypes:a,getEdges:u,getNodes:s,getSelectedElements:g,getSelectedNodes:d,getSelectedEdges:h,getNodesInitialized:m,areNodesInitialized:b}}class He{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=l.getCurrentInstance())==null?void 0:t.appContext.app,o=(n==null?void 0:n.config.globalProperties.$vueFlowStorage)??He.instance;return He.instance=o??new He,n&&(n.config.globalProperties.$vueFlowStorage=He.instance),He.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const o=pi(),i=l.reactive(o),r={};for(const[g,m]of Object.entries(i.hooks)){const b=`on${g.charAt(0).toUpperCase()+g.slice(1)}`;r[b]=m.on}const a={};for(const[g,m]of Object.entries(i.hooks))a[g]=m.trigger;const s=l.computed(()=>{const g=new Map;for(const m of i.nodes)g.set(m.id,m);return g}),u=l.computed(()=>{const g=new Map;for(const m of i.edges)g.set(m.id,m);return g}),c=Cu(i,s,u),d=nu(i,s,u);d.setState({...i,...n});const h={...r,...c,...d,...Vi(i),emits:a,id:t,vueFlowVersion:"1.37.1",$destroy:()=>{this.remove(t)}};return this.set(t,h),h}getId(){return`vue-flow-${this.currentId++}`}}function de(e){const t=He.getInstance(),n=l.getCurrentScope(),o=typeof e=="object",i=o?e:{id:e},r=i.id,a=(n==null?void 0:n.vueFlowId)||r;let s;if(n){const u=l.inject(Bo,null);typeof u<"u"&&u!==null&&(s=u)}if(s||a&&(s=t.get(a)),!s||s&&r&&r!==s.id){const u=r??t.getId(),c=t.create(u,i);s=c,(n??l.effectScope(!0)).run(()=>{l.watch(c.applyDefault,(h,g,m)=>{const b=x=>{c.applyNodeChanges(x)},_=x=>{c.applyEdgeChanges(x)};h?(c.onNodesChange(b),c.onEdgesChange(_)):(c.hooks.value.nodesChange.off(b),c.hooks.value.edgesChange.off(_)),m(()=>{c.hooks.value.nodesChange.off(b),c.hooks.value.edgesChange.off(_)})},{immediate:!0}),ct(()=>{if(s){const h=t.get(s.id);h?h.$destroy():Ot(`No store instance found for id ${s.id} in storage.`)}})})}else o&&s.setState(i);if(n&&(l.provide(Bo,s),n.vueFlowId=s.id),o){const u=l.getCurrentInstance();(u==null?void 0:u.type.name)!=="VueFlow"&&s.emits.error(new ge(he.USEVUEFLOW_OPTIONS))}return s}function ku(e){const t=dn(),{emits:n,dimensions:o}=de();let i;l.onMounted(()=>{const r=e.value,a=()=>{if(!r)return;const s=Bt(r);(s.width===0||s.height===0)&&n.error(new ge(he.MISSING_VIEWPORT_DIMENSIONS)),o.value={width:s.width||500,height:s.height||500}};a(),t.addEventListener("resize",a),r&&(i=new ResizeObserver(()=>a()),i.observe(r)),l.onBeforeUnmount(()=>{t.removeEventListener("resize",a),i&&r&&i.unobserve(r)})})}const Mu={name:"UserSelection",compatConfig:{MODE:3}},Iu=l.defineComponent({...Mu,props:{userSelectionRect:{}},setup(e){return(t,n)=>(l.openBlock(),l.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:l.normalizeStyle({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),$u=["tabIndex"],Tu={name:"NodesSelection",compatConfig:{MODE:3}},Pu=l.defineComponent({...Tu,setup(e){const{emits:t,viewport:n,getSelectedNodes:o,noPanClassName:i,disableKeyboardA11y:r,userSelectionActive:a}=de(),s=zo(),u=l.ref(null),c=Po({el:u,onStart(b){t.selectionDragStart(b)},onDrag(b){t.selectionDrag(b)},onStop(b){t.selectionDragStop(b)}});l.onMounted(()=>{var b;r.value||(b=u.value)==null||b.focus({preventScroll:!0})});const d=l.computed(()=>Zo(o.value)),h=l.computed(()=>({width:`${d.value.width}px`,height:`${d.value.height}px`,top:`${d.value.y}px`,left:`${d.value.x}px`}));function g(b){t.selectionContextMenu({event:b,nodes:o.value})}function m(b){r||Ze[b.key]&&s({x:Ze[b.key].x,y:Ze[b.key].y},b.shiftKey)}return(b,_)=>!l.unref(a)&&d.value.width&&d.value.height?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["vue-flow__nodesselection vue-flow__container",l.unref(i)]),style:l.normalizeStyle({transform:`translate(${l.unref(n).x}px,${l.unref(n).y}px) scale(${l.unref(n).zoom})`})},[l.createElementVNode("div",{ref_key:"el",ref:u,class:l.normalizeClass([{dragging:l.unref(c)},"vue-flow__nodesselection-rect"]),style:l.normalizeStyle(h.value),tabIndex:l.unref(r)?void 0:-1,onContextmenu:g,onKeydown:m},null,46,$u)],6)):l.createCommentVNode("",!0)}});function Si(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const Bu={name:"Pane",compatConfig:{MODE:3}},Du=l.defineComponent({...Bu,props:{isSelecting:{type:Boolean}},setup(e){const{vueFlowRef:t,getNodes:n,getEdges:o,viewport:i,emits:r,userSelectionActive:a,removeSelectedElements:s,panOnDrag:u,userSelectionRect:c,elementsSelectable:d,nodesSelectionActive:h,addSelectedElements:g,getSelectedEdges:m,getSelectedNodes:b,removeNodes:_,removeEdges:x,selectionMode:N,deleteKeyCode:p,multiSelectionKeyCode:C,multiSelectionActive:E}=de(),$=l.ref(null),A=l.ref(0),D=l.ref(0),U=l.ref(),Z=l.toRef(()=>d.value&&(e.isSelecting||a.value));st(p,M=>{if(!M)return;const B=[];for(const L of n.value)(!L.selected&&L.parentNode&&B.some(K=>K.id===L.parentNode)||L.selected)&&B.push(L);(B||m.value)&&(m.value.length>0&&x(m.value),B.length>0&&_(B),h.value=!1,s())},{actInsideInputWithModifier:!1}),st(C,M=>{E.value=M});function V(){a.value=!1,c.value=null,A.value=0,D.value=0}function S(M){M.target!==$.value||Z.value||(r.paneClick(M),s(),h.value=!1)}function j(M){var B;if(M.target===$.value){if(Array.isArray(u.value)&&((B=u.value)!=null&&B.includes(2))){M.preventDefault();return}r.paneContextMenu(M)}}function H(M){M.target===$.value&&r.paneScroll(M)}function v(M){if(U.value=t.value.getBoundingClientRect(),!Z.value||!d||!e.isSelecting||M.button!==0||M.target!==$.value||!U.value)return;const{x:B,y:L}=Si(M,U.value);s(),c.value={width:0,height:0,startX:B,startY:L,x:B,y:L},a.value=!0,r.selectionStart(M)}function P(M){if(!Z.value)return r.paneMouseMove(M);if(!e.isSelecting||!U.value||!c.value)return;a.value||(a.value=!0),h.value&&(h.value=!1);const B=Si(M,U.value),L=c.value.startX??0,K=c.value.startY??0,re={...c.value,x:B.x<L?B.x:L,y:B.y<K?B.y:K,width:Math.abs(B.x-L),height:Math.abs(B.y-K)},te=Wo(n.value,c.value,i.value,N.value===un.Partial),oe=yn(te,o.value);A.value=te.length,D.value=oe.length,c.value=re,g([...te,...oe])}function k(M){Z.value&&M.button===0&&(!a.value&&c.value&&M.target===$.value&&S(M),h.value=A.value>0,V(),r.selectionEnd(M))}function T(M){var B;if(!Z.value)return r.paneMouseLeave(M);a.value&&(h.value=A.value>0,(B=r.selectionEnd)==null||B.call(r,M)),V()}function z(M){Z.value||r.paneMouseEnter(M)}return(M,B)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"container",ref:$,class:l.normalizeClass(["vue-flow__pane vue-flow__container",{selection:M.isSelecting}]),onClick:S,onContextmenu:j,onWheelPassive:H,onMouseenter:z,onMousedown:v,onMousemove:P,onMouseup:k,onMouseleave:T},[l.renderSlot(M.$slots,"default"),l.unref(a)&&l.unref(c)?(l.openBlock(),l.createBlock(Iu,{key:0,"user-selection-rect":l.unref(c)},null,8,["user-selection-rect"])):l.createCommentVNode("",!0),l.unref(h)&&l.unref(b).length?(l.openBlock(),l.createBlock(Pu,{key:1})):l.createCommentVNode("",!0)],34))}}),Vu={name:"Transform",compatConfig:{MODE:3}},Ou=l.defineComponent({...Vu,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:o}=de(),i=l.computed(()=>n.value?!o.value:!1),r=l.computed(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(a,s)=>(l.openBlock(),l.createElementBlock("div",{class:"vue-flow__transformationpane vue-flow__container",style:l.normalizeStyle({transform:r.value,opacity:i.value?0:void 0})},[l.renderSlot(a.$slots,"default")],4))}}),Au={name:"Viewport",compatConfig:{MODE:3}},zu=l.defineComponent({...Au,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:o,translateExtent:i,zoomActivationKeyCode:r,selectionKeyCode:a,panActivationKeyCode:s,panOnScroll:u,panOnScrollMode:c,panOnScrollSpeed:d,panOnDrag:h,zoomOnDoubleClick:g,zoomOnPinch:m,zoomOnScroll:b,preventScrolling:_,noWheelClassName:x,noPanClassName:N,emits:p,connectionStartHandle:C,userSelectionActive:E,paneDragging:$,d3Zoom:A,d3Selection:D,d3ZoomHandler:U,viewport:Z,viewportRef:V}=de();ku(V);const S=l.ref(!1),j=l.ref(!1);let H=null,v=!1,P=0,k={x:0,y:0,zoom:0};const T=st(s),z=st(a),M=st(r),B=l.toRef(()=>T.value||h.value),L=l.toRef(()=>T.value||u.value),K=l.toRef(()=>z.value||a.value===!0&&B.value!==!0);l.onMounted(()=>{if(!V.value){Ot("Viewport element is missing");return}const q=V.value,W=q.getBoundingClientRect(),J=ms().scaleExtent([t.value,n.value]).translateExtent(i.value),Q=ye(q).call(J),ie=Q.on("wheel.zoom"),Y=Ue.translate(o.value.x??0,o.value.y??0).scale(Ae(o.value.zoom??1,t.value,n.value)),f=[[0,0],[W.width,W.height]],y=J.constrain()(Y,f,i.value);J.transform(Q,y),J.wheelDelta(te),A.value=J,D.value=Q,U.value=ie,Z.value={x:y.x,y:y.y,zoom:y.k},J.on("start",w=>{var I;if(!w.sourceEvent)return null;P=w.sourceEvent.button,S.value=!0;const O=ue(w.transform);((I=w.sourceEvent)==null?void 0:I.type)==="mousedown"&&($.value=!0),k=O,p.viewportChangeStart(O),p.moveStart({event:w,flowTransform:O})}),J.on("end",w=>{if(!w.sourceEvent)return null;if(S.value=!1,$.value=!1,re(B.value,P??0)&&!v&&p.paneContextMenu(w.sourceEvent),v=!1,oe(k,w.transform)){const I=ue(w.transform);k=I,p.viewportChangeEnd(I),p.moveEnd({event:w,flowTransform:I})}}),J.filter(w=>{var I,O,G;const X=M.value||b.value,ee=m.value&&w.ctrlKey,ne=w.button;if((B.value===!0||Array.isArray(B.value)&&B.value.includes(1))&&ne===1&&w.type==="mousedown"&&((I=w.target)!=null&&I.closest(".vue-flow__node")||(O=w.target)!=null&&O.closest(".vue-flow__edge")))return!0;if(!B.value&&!X&&!L.value&&!g.value&&!m.value||E.value||!g.value&&w.type==="dblclick"||le(w,x.value)&&w.type==="wheel"||le(w,N.value)&&(w.type!=="wheel"||L.value&&w.type==="wheel"&&!M.value)||!m.value&&w.ctrlKey&&w.type==="wheel"||!X&&!L.value&&!ee&&w.type==="wheel")return!1;if(!m&&w.type==="touchstart"&&((G=w.touches)==null?void 0:G.length)>1)return w.preventDefault(),!1;if(!B.value&&(w.type==="mousedown"||w.type==="touchstart")||Array.isArray(B.value)&&!B.value.includes(ne)&&(w.type==="mousedown"||w.type==="touchstart"))return!1;const ce=Array.isArray(B.value)&&B.value.includes(ne)||!ne||ne<=1;return(!w.ctrlKey||w.type==="wheel")&&ce}),l.watch([E,B],()=>{E.value&&!S.value?J.on("zoom",null):E.value||J.on("zoom",w=>{Z.value={x:w.transform.x,y:w.transform.y,zoom:w.transform.k};const I=ue(w.transform);v=re(B.value,P??0),p.viewportChange(I),p.move({event:w,flowTransform:I})})},{immediate:!0}),l.watch([E,L,c,M,m,_,x],()=>{L.value&&!M.value&&!E.value?Q.on("wheel.zoom",w=>{if(le(w,x.value))return!1;const I=M.value||b.value,O=m.value&&w.ctrlKey;if(!(!_.value||L.value||I||O))return!1;w.preventDefault(),w.stopImmediatePropagation();const X=Q.property("__zoom").k||1,ee=Vt();if(w.ctrlKey&&m.value&&ee){const $c=_e(w),Tc=te(w),Pc=X*2**Tc;J.scaleTo(Q,Pc,$c,w);return}const ne=w.deltaMode===1?20:1;let ce=c.value===at.Vertical?0:w.deltaX*ne,ae=c.value===at.Horizontal?0:w.deltaY*ne;!ee&&w.shiftKey&&c.value!==at.Vertical&&!ce&&ae&&(ce=ae,ae=0),J.translateBy(Q,-(ce/X)*d.value,-(ae/X)*d.value);const se=ue(Q.property("__zoom"));H&&clearTimeout(H),j.value?(p.move({event:w,flowTransform:se}),p.viewportChange(se),H=setTimeout(()=>{p.moveEnd({event:w,flowTransform:se}),p.viewportChangeEnd(se),j.value=!1},150)):(j.value=!0,p.moveStart({event:w,flowTransform:se}),p.viewportChangeStart(se))},{passive:!1}):typeof ie<"u"&&Q.on("wheel.zoom",function(w,I){const O=!_.value&&w.type==="wheel"&&!w.ctrlKey,G=M.value||b.value,X=m.value&&w.ctrlKey;if(!G&&!u.value&&!X&&w.type==="wheel"||O||le(w,x.value))return null;w.preventDefault(),ie.call(this,w,I)},{passive:!1})},{immediate:!0})});function re(q,W){return W===2&&Array.isArray(q)&&q.includes(2)}function te(q){const W=q.ctrlKey&&Vt()?10:1;return-q.deltaY*(q.deltaMode===1?.05:q.deltaMode?1:.002)*W}function oe(q,W){return q.x!==W.x&&!Number.isNaN(W.x)||q.y!==W.y&&!Number.isNaN(W.y)||q.zoom!==W.k&&!Number.isNaN(W.k)}function ue(q){return{x:q.x,y:q.y,zoom:q.k}}function le(q,W){return q.target.closest(`.${W}`)}return(q,W)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"viewportRef",ref:V,class:"vue-flow__viewport vue-flow__container"},[l.createVNode(Du,{"is-selecting":K.value,class:l.normalizeClass({connecting:!!l.unref(C),dragging:l.unref($),draggable:B.value})},{default:l.withCtx(()=>[l.createVNode(Ou,null,{default:l.withCtx(()=>[l.renderSlot(q.$slots,"default")]),_:3})]),_:3},8,["is-selecting","class"])],512))}}),Ru=["id"],Hu=["id"],Lu=["id"],Fu={name:"A11yDescriptions",compatConfig:{MODE:3}},Yu=l.defineComponent({...Fu,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:o}=de();return(i,r)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("div",{id:`${l.unref(Io)}-${l.unref(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+l.toDisplayString(l.unref(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,Ru),l.createElementVNode("div",{id:`${l.unref($o)}-${l.unref(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,Hu),l.unref(n)?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",{key:0,id:`${l.unref(_s)}-${l.unref(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},l.toDisplayString(l.unref(o)),9,Lu))],64))}});function Gu(){const e=de();l.watch(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function Xu(e,t,n){return n===F.Left?e-t:n===F.Right?e+t:e}function Uu(e,t,n){return n===F.Top?e-t:n===F.Bottom?e+t:e}const In=function({radius:e=10,centerX:t=0,centerY:n=0,position:o=F.Top,type:i}){return l.h("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,cx:Xu(t,e,o),cy:Uu(n,e,o),r:e,stroke:"transparent",fill:"transparent"})};In.props=["radius","centerX","centerY","position","type"],In.compatConfig={MODE:3};const Ni=In,Zu=l.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:o,edgeUpdaterRadius:i,emits:r,nodesSelectionActive:a,noPanClassName:s,getEdgeTypes:u,removeSelectedEdges:c,findEdge:d,findNode:h,isValidConnection:g,multiSelectionActive:m,disableKeyboardA11y:b,elementsSelectable:_,edgesUpdatable:x,edgesFocusable:N}=de(),p=l.computed(()=>d(e.id)),C=Ss(p.value,r),E=l.inject(Tt),$=l.getCurrentInstance(),A=l.ref(!1),D=l.ref(!1),U=l.ref(""),Z=l.ref(null),V=l.ref("source"),S=l.ref(null),j=l.toRef(()=>typeof p.value.selectable>"u"?_.value:p.value.selectable),H=l.toRef(()=>typeof p.value.updatable>"u"?x.value:p.value.updatable),v=l.toRef(()=>typeof p.value.focusable>"u"?N.value:p.value.focusable);l.provide(bs,e.id),l.provide(Es,S);const P=l.computed(()=>p.value.class instanceof Function?p.value.class(p.value):p.value.class),k=l.computed(()=>p.value.style instanceof Function?p.value.style(p.value):p.value.style),T=l.computed(()=>{const Y=p.value.type||"default",f=E==null?void 0:E[`edge-${Y}`];if(f)return f;let y=p.value.template??u.value[Y];if(typeof y=="string"&&$){const w=Object.keys($.appContext.components);w&&w.includes(Y)&&(y=l.resolveComponent(Y,!1))}return y&&typeof y!="string"?y:(r.error(new ge(he.EDGE_TYPE_MISSING,y)),!1)}),{handlePointerDown:z}=Oo({nodeId:U,handleId:Z,type:V,isValidConnection:g,edgeUpdaterType:V,onEdgeUpdate:L,onEdgeUpdateEnd:K});return()=>{const Y=h(p.value.source),f=h(p.value.target),y="pathOptions"in p.value?p.value.pathOptions:{};if(!Y&&!f)return r.error(new ge(he.EDGE_SOURCE_TARGET_MISSING,p.value.id,p.value.source,p.value.target)),null;if(!Y)return r.error(new ge(he.EDGE_SOURCE_MISSING,p.value.id,p.value.source)),null;if(!f)return r.error(new ge(he.EDGE_TARGET_MISSING,p.value.id,p.value.target)),null;if(!p.value||p.value.hidden||Y.hidden||f.hidden)return null;let w;o.value===Oe.Strict?w=Y.handleBounds.source:w=[...Y.handleBounds.source||[],...Y.handleBounds.target||[]];const I=ri(w,p.value.sourceHandle);let O;o.value===Oe.Strict?O=f.handleBounds.target:O=[...f.handleBounds.target||[],...f.handleBounds.source||[]];const G=ri(O,p.value.targetHandle),X=I?I.position:F.Bottom,ee=G?G.position:F.Top,{sourceX:ne,sourceY:ce,targetY:ae,targetX:se}=Gs(Y,I,X,f,G,ee);return p.value.sourceX=ne,p.value.sourceY=ce,p.value.targetX=se,p.value.targetY=ae,l.h("g",{ref:S,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${T.value===!1?"default":p.value.type||"default"}`,s.value,P.value,{updating:A.value,selected:p.value.selected,animated:p.value.animated,inactive:!j.value}],onClick:te,onContextmenu:oe,onDblclick:ue,onMouseenter:le,onMousemove:q,onMouseleave:W,onKeyDown:v.value?ie:void 0,tabIndex:v.value?0:void 0,"aria-label":p.value.ariaLabel===null?void 0:p.value.ariaLabel||`Edge from ${p.value.source} to ${p.value.target}`,"aria-describedby":v.value?`${$o}-${t}`:void 0,role:v.value?"button":"img"},[D.value?null:l.h(T.value===!1?u.value.default:T.value,{id:e.id,sourceNode:Y,targetNode:f,source:p.value.source,target:p.value.target,type:p.value.type,updatable:H.value,selected:p.value.selected,animated:p.value.animated,label:p.value.label,labelStyle:p.value.labelStyle,labelShowBg:p.value.labelShowBg,labelBgStyle:p.value.labelBgStyle,labelBgPadding:p.value.labelBgPadding,labelBgBorderRadius:p.value.labelBgBorderRadius,data:p.value.data,events:{...p.value.events,...C.on},style:k.value,markerStart:`url('#${ut(p.value.markerStart,t)}')`,markerEnd:`url('#${ut(p.value.markerEnd,t)}')`,sourcePosition:X,targetPosition:ee,sourceX:ne,sourceY:ce,targetX:se,targetY:ae,sourceHandleId:p.value.sourceHandle,targetHandleId:p.value.targetHandle,interactionWidth:p.value.interactionWidth,...y}),[H.value==="source"||H.value===!0?[l.h("g",{onMousedown:J,onMouseenter:M,onMouseout:B},l.h(Ni,{position:X,centerX:ne,centerY:ce,radius:i.value,type:"source","data-type":"source"}))]:null,H.value==="target"||H.value===!0?[l.h("g",{onMousedown:Q,onMouseenter:M,onMouseout:B},l.h(Ni,{position:ee,centerX:se,centerY:ae,radius:i.value,type:"target","data-type":"target"}))]:null]])};function M(){A.value=!0}function B(){A.value=!1}function L(Y,f){C.emit.update({event:Y,edge:p.value,connection:f})}function K(Y){C.emit.updateEnd({event:Y,edge:p.value}),D.value=!1}function re(Y,f){Y.button===0&&(D.value=!0,U.value=f?p.value.target:p.value.source,Z.value=(f?p.value.targetHandle:p.value.sourceHandle)??"",V.value=f?"target":"source",C.emit.updateStart({event:Y,edge:p.value}),z(Y))}function te(Y){var f;const y={event:Y,edge:p.value};j.value&&(a.value=!1,p.value.selected&&m.value?(c([p.value]),(f=S.value)==null||f.blur()):n([p.value])),C.emit.click(y)}function oe(Y){C.emit.contextMenu({event:Y,edge:p.value})}function ue(Y){C.emit.doubleClick({event:Y,edge:p.value})}function le(Y){C.emit.mouseEnter({event:Y,edge:p.value})}function q(Y){C.emit.mouseMove({event:Y,edge:p.value})}function W(Y){C.emit.mouseLeave({event:Y,edge:p.value})}function J(Y){re(Y,!0)}function Q(Y){re(Y,!1)}function ie(Y){var f;!b.value&&To.includes(Y.key)&&j.value&&(Y.key==="Escape"?((f=S.value)==null||f.blur(),c([d(e.id)])):n([d(e.id)]))}}}),Wu={[F.Left]:F.Right,[F.Right]:F.Left,[F.Top]:F.Bottom,[F.Bottom]:F.Top},Ku=l.defineComponent({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:o,connectionEndHandle:i,connectionPosition:r,connectionLineType:a,connectionLineStyle:s,connectionLineOptions:u,connectionStatus:c,viewport:d,findNode:h}=de(),g=(e=l.inject(Tt))==null?void 0:e["connection-line"],m=l.computed(()=>{var p;return h((p=o.value)==null?void 0:p.nodeId)}),b=l.computed(()=>{var p;return h((p=i.value)==null?void 0:p.nodeId)??null}),_=l.computed(()=>({x:(r.value.x-d.value.x)/d.value.zoom,y:(r.value.y-d.value.y)/d.value.zoom})),x=l.computed(()=>u.value.markerStart?`url(#${ut(u.value.markerStart,t)})`:""),N=l.computed(()=>u.value.markerEnd?`url(#${ut(u.value.markerEnd,t)})`:"");return()=>{var p,C,E;if(!m.value||!o.value)return null;const $=o.value.handleId,A=o.value.type,D=m.value.handleBounds;let U=D==null?void 0:D[A];if(n.value===Oe.Loose&&(U=U||(D==null?void 0:D[A==="source"?"target":"source"])),!U)return null;const Z=($?U.find(z=>z.id===$):U[0])??null,V=(Z==null?void 0:Z.position)||F.Top,{x:S,y:j}=En(V,{...m.value.dimensions,...m.value.computedPosition},Z);let H=null;b.value&&((p=i.value)!=null&&p.handleId)&&(n.value===Oe.Strict?H=((C=b.value.handleBounds[A==="source"?"target":"source"])==null?void 0:C.find(z=>{var M;return z.id===((M=i.value)==null?void 0:M.handleId)}))||null:H=((E=[...b.value.handleBounds.source||[],...b.value.handleBounds.target||[]])==null?void 0:E.find(z=>{var M;return z.id===((M=i.value)==null?void 0:M.handleId)}))||null);const v=V?Wu[V]:null;if(!V||!v)return null;const P=a.value??u.value.type??Ve.Bezier;let k="";const T={sourceX:S,sourceY:j,sourcePosition:V,targetX:_.value.x,targetY:_.value.y,targetPosition:v};return P===Ve.Bezier?[k]=kn(T):P===Ve.Step?[k]=Mn({...T,borderRadius:0}):P===Ve.SmoothStep?[k]=Mn(T):P===Ve.SimpleBezier?[k]=_i(T):k=`M${S},${j} ${_.value.x},${_.value.y}`,l.h("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},l.h("g",{class:"vue-flow__connection"},g?l.h(g,{sourceX:S,sourceY:j,sourcePosition:V,targetX:_.value.x,targetY:_.value.y,targetPosition:v,sourceNode:m.value,sourceHandle:Z,targetNode:b.value,targetHandle:H,markerEnd:N.value,markerStart:x.value,connectionStatus:c.value}):l.h("path",{d:k,class:[u.value.class,c,"vue-flow__connection-path"],style:{...s.value,...u.value.style},"marker-end":N.value,"marker-start":x.value})))}}}),qu=["id","markerWidth","markerHeight","markerUnits","orient"],Ju={name:"MarkerType",compatConfig:{MODE:3}},ju=l.defineComponent({...Ju,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(l.openBlock(),l.createElementBlock("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===l.unref(cn).ArrowClosed?(l.openBlock(),l.createElementBlock("polyline",{key:0,style:l.normalizeStyle({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):l.createCommentVNode("",!0),t.type===l.unref(cn).Arrow?(l.openBlock(),l.createElementBlock("polyline",{key:1,style:l.normalizeStyle({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):l.createCommentVNode("",!0)],8,qu))}}),Qu={class:"vue-flow__marker vue-flow__container"},ec={name:"MarkerDefinitions",compatConfig:{MODE:3}},tc=l.defineComponent({...ec,setup(e){const{id:t,edges:n,connectionLineOptions:o,defaultMarkerColor:i}=de(),r=l.computed(()=>{const a=new Set,s=[],u=c=>{if(c){const d=ut(c,t);a.has(d)||(typeof c=="object"?s.push({...c,id:d,color:c.color||i.value}):s.push({id:d,color:i.value,type:c}),a.add(d))}};for(const c of[o.value.markerEnd,o.value.markerStart])u(c);for(const c of n.value)for(const d of[c.markerStart,c.markerEnd])u(d);return s.sort((c,d)=>c.id.localeCompare(d.id))});return(a,s)=>(l.openBlock(),l.createElementBlock("svg",Qu,[l.createElementVNode("defs",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,u=>(l.openBlock(),l.createBlock(ju,{id:u.id,key:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,"stroke-width":u.strokeWidth,orient:u.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),nc={name:"Edges",compatConfig:{MODE:3}},oc=l.defineComponent({...nc,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:o}=de();return(i,r)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createVNode(tc),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(n),(a,s,u,c)=>{const d=[a.id];if(c&&c.key===a.id&&l.isMemoSame(c,d))return c;const h=(l.openBlock(),l.createElementBlock("svg",{key:a.id,class:"vue-flow__edges vue-flow__container",style:l.normalizeStyle({zIndex:l.unref(Us)(a,l.unref(t),l.unref(o))})},[l.createVNode(l.unref(Zu),{id:a.id},null,8,["id"])],4));return h.memo=d,h},r,0),128)),l.createVNode(l.unref(Ku))],64))}}),ic=l.defineComponent({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:o,nodesSelectionActive:i,multiSelectionActive:r,emits:a,removeSelectedNodes:s,addSelectedNodes:u,updateNodeDimensions:c,onUpdateNodeInternals:d,getNodeTypes:h,nodeExtent:g,elevateNodesOnSelect:m,disableKeyboardA11y:b,ariaLiveMessage:_,snapToGrid:x,snapGrid:N,nodeDragThreshold:p,nodesDraggable:C,elementsSelectable:E,nodesConnectable:$,nodesFocusable:A}=de(),D=l.ref(null);l.provide(Vo,D),l.provide(Do,e.id);const U=l.inject(Tt),Z=l.getCurrentInstance(),V=zo(),{node:S,parentNode:j}=Ao(e.id),H=l.toRef(()=>typeof S.draggable>"u"?C.value:S.draggable),v=l.toRef(()=>typeof S.selectable>"u"?E.value:S.selectable),P=l.toRef(()=>typeof S.connectable>"u"?$.value:S.connectable),k=l.toRef(()=>typeof S.focusable>"u"?A.value:S.focusable),T=l.toRef(()=>!!S.dimensions.width&&!!S.dimensions.height),z=l.computed(()=>{const f=S.type||"default",y=U==null?void 0:U[`node-${f}`];if(y)return y;let w=S.template||h.value[f];if(typeof w=="string"&&Z){const I=Object.keys(Z.appContext.components);I&&I.includes(f)&&(w=l.resolveComponent(f,!1))}return w&&typeof w!="string"?w:(a.error(new ge(he.NODE_TYPE_MISSING,w)),!1)}),{emit:M,on:B}=Ms(S,a),L=Po({id:e.id,el:D,disabled:()=>!H.value,selectable:v,dragHandle:()=>S.dragHandle,onStart(f){M.dragStart(f)},onDrag(f){M.drag(f)},onStop(f){M.dragStop(f)}}),K=l.computed(()=>S.class instanceof Function?S.class(S):S.class),re=l.computed(()=>{const f=(S.style instanceof Function?S.style(S):S.style)||{},y=S.width instanceof Function?S.width(S):S.width,w=S.height instanceof Function?S.height(S):S.height;return y&&(f.width=typeof y=="string"?y:`${y}px`),w&&(f.height=typeof w=="string"?w:`${w}px`),f}),te=l.toRef(()=>Number(S.zIndex??re.value.zIndex??0));return d(f=>{(f.includes(e.id)||!f.length)&&ue()}),l.onMounted(()=>{l.watch(()=>S.hidden,(f=!1,y,w)=>{!f&&D.value&&(e.resizeObserver.observe(D.value),w(()=>{D.value&&e.resizeObserver.unobserve(D.value)}))},{immediate:!0,flush:"pre"})}),l.watch([()=>S.type,()=>S.sourcePosition,()=>S.targetPosition],()=>{l.nextTick(()=>{c([{id:e.id,nodeElement:D.value,forceUpdate:!0}])})}),l.watch([()=>S.position.x,()=>S.position.y,()=>{var f;return(f=j.value)==null?void 0:f.computedPosition.x},()=>{var f;return(f=j.value)==null?void 0:f.computedPosition.y},()=>{var f;return(f=j.value)==null?void 0:f.computedPosition.z},te,()=>S.selected,()=>S.dimensions.height,()=>S.dimensions.width,()=>{var f;return(f=j.value)==null?void 0:f.dimensions.height},()=>{var f;return(f=j.value)==null?void 0:f.dimensions.width}],([f,y,w,I,O,G])=>{const X={x:f,y,z:G+(m.value&&S.selected?1e3:0)};typeof w<"u"&&typeof I<"u"?S.computedPosition=Rs({x:w,y:I,z:O},X):S.computedPosition=X},{flush:"post",immediate:!0}),l.watch([()=>S.extent,g],([f,y],[w,I])=>{(f!==w||y!==I)&&oe()}),S.extent==="parent"||typeof S.extent=="object"&&"range"in S.extent&&S.extent.range==="parent"?dt(()=>T).toBe(!0).then(oe):oe(),()=>S.hidden?null:l.h("div",{ref:D,"data-id":S.id,class:["vue-flow__node",`vue-flow__node-${z.value===!1?"default":S.type||"default"}`,{[n.value]:H.value,dragging:L==null?void 0:L.value,draggable:H.value,selected:S.selected,selectable:v.value,parent:S.isParent},K.value],style:{visibility:T.value?"visible":"hidden",zIndex:S.computedPosition.z??te.value,transform:`translate(${S.computedPosition.x}px,${S.computedPosition.y}px)`,pointerEvents:v.value||H.value?"all":"none",...re.value},tabIndex:k.value?0:void 0,role:k.value?"button":void 0,"aria-describedby":b.value?void 0:`${Io}-${t}`,"aria-label":S.ariaLabel,onMouseenter:le,onMousemove:q,onMouseleave:W,onContextmenu:J,onClick:ie,onDblclick:Q,onKeydown:Y},[l.h(z.value===!1?h.value.default:z.value,{id:S.id,type:S.type,data:S.data,events:{...S.events,...B},selected:S.selected,resizing:S.resizing,dragging:L.value,connectable:P.value,position:S.computedPosition,dimensions:S.dimensions,isValidTargetPos:S.isValidTargetPos,isValidSourcePos:S.isValidSourcePos,parent:S.parentNode,parentNodeId:S.parentNode,zIndex:S.computedPosition.z??te.value,targetPosition:S.targetPosition,sourcePosition:S.sourcePosition,label:S.label,dragHandle:S.dragHandle,onUpdateNodeInternals:ue})]);function oe(){const f=S.computedPosition;x.value&&(f.x=N.value[0]*Math.round(f.x/N.value[0]),f.y=N.value[1]*Math.round(f.y/N.value[1]));const{computedPosition:y,position:w}=bn(S,f,a.error,g.value,j.value);(S.computedPosition.x!==y.x||S.computedPosition.y!==y.y)&&(S.computedPosition={...S.computedPosition,...y}),(S.position.x!==w.x||S.position.y!==w.y)&&(S.position=w)}function ue(){D.value&&c([{id:e.id,nodeElement:D.value,forceUpdate:!0}])}function le(f){L!=null&&L.value||M.mouseEnter({event:f,node:S})}function q(f){L!=null&&L.value||M.mouseMove({event:f,node:S})}function W(f){L!=null&&L.value||M.mouseLeave({event:f,node:S})}function J(f){return M.contextMenu({event:f,node:S})}function Q(f){return M.doubleClick({event:f,node:S})}function ie(f){v.value&&(!o.value||!H.value||p.value>0)&&Cn(S,r.value,u,s,i,!1,D.value),M.click({event:f,node:S})}function Y(f){if(!(fn(f)||b.value))if(To.includes(f.key)&&v.value){const y=f.key==="Escape";Cn(S,r.value,u,s,i,y,D.value)}else H.value&&S.selected&&Ze[f.key]&&(_.value=`Moved selected node ${f.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~S.position.x}, y: ${~~S.position.y}`,V({x:Ze[f.key].x,y:Ze[f.key].y},f.shiftKey))}}}),rc={height:"0",width:"0"},lc={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},ac=l.defineComponent({...lc,setup(e){const{viewportRef:t}=de(),n=l.toRef(()=>{var o;return(o=t.value)==null?void 0:o.getElementsByClassName("vue-flow__edge-labels")[0]});return(o,i)=>(l.openBlock(),l.createElementBlock("svg",null,[(l.openBlock(),l.createElementBlock("foreignObject",rc,[(l.openBlock(),l.createBlock(l.Teleport,{to:n.value,disabled:!n.value},[l.renderSlot(o.$slots,"default")],8,["to","disabled"]))]))]))}});function sc(e={includeHiddenNodes:!1}){const{nodes:t}=de();return l.computed(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&((n==null?void 0:n.handleBounds)===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const uc={class:"vue-flow__nodes vue-flow__container"},cc={name:"Nodes",compatConfig:{MODE:3}},dc=l.defineComponent({...cc,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:o}=de(),i=sc(),r=l.ref();return l.watch(i,a=>{a&&l.nextTick(()=>{o.nodesInitialized(t.value)})},{immediate:!0}),l.onMounted(()=>{r.value=new ResizeObserver(a=>{const s=a.map(u=>({id:u.target.getAttribute("data-id"),nodeElement:u.target,forceUpdate:!0}));l.nextTick(()=>n(s))})}),l.onBeforeUnmount(()=>{var a;return(a=r.value)==null?void 0:a.disconnect()}),(a,s)=>(l.openBlock(),l.createElementBlock("div",uc,[r.value?(l.openBlock(!0),l.createElementBlock(l.Fragment,{key:0},l.renderList(l.unref(t),(u,c,d,h)=>{const g=[u.id];if(h&&h.key===u.id&&l.isMemoSame(h,g))return h;const m=(l.openBlock(),l.createBlock(l.unref(ic),{id:u.id,key:u.id,"resize-observer":r.value},null,8,["id","resize-observer"]));return m.memo=g,m},s,0),128)):l.createCommentVNode("",!0)]))}});function fc(){const{emits:e}=de();l.onMounted(()=>{if(ci()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new ge(he.MISSING_STYLES))}})}const hc=l.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),gc={name:"VueFlow",compatConfig:{MODE:3}},pc=l.defineComponent({...gc,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0}},emits:["nodesChange","edgesChange","nodesInitialized","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneReady","init","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","updateNodeInternals","error","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdate","edgeUpdateEnd","nodeDoubleClick","nodeClick","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeContextMenu","nodeDragStart","nodeDrag","nodeDragStop","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const o=e,i=l.useSlots(),r=Yt(o,"modelValue",n),a=Yt(o,"nodes",n),s=Yt(o,"edges",n),u=de(o),c=Ts({modelValue:r,nodes:a,edges:s},o,u);return eu(n,u.hooks),Gu(),fc(),l.provide(Tt,i),l.onUnmounted(()=>{c()}),t(u),(d,h)=>(l.openBlock(),l.createElementBlock("div",{ref:l.unref(u).vueFlowRef,class:"vue-flow"},[l.createVNode(zu,null,{default:l.withCtx(()=>[l.createVNode(oc),hc,l.createVNode(dc),l.renderSlot(d.$slots,"zoom-pane")]),_:3}),l.renderSlot(d.$slots,"default"),l.createVNode(Yu)],512))}}),mc=["id","d","marker-end"],yc={class:"vue-flow__edge-label"},vc={key:0,class:"label-input-wrapper"},wc={inheritAttrs:!1},_c=l.defineComponent({...wc,__name:"EditableEdge",props:{id:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},label:{},style:{},selected:{type:Boolean},sourcePosition:{},targetPosition:{},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},markerEnd:{},curvature:{},interactionWidth:{},data:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{},sourceX:{},sourceY:{},targetX:{},targetY:{}},emits:["change"],setup(e,{emit:t}){const n=e,o=t,i=l.ref(),r=l.ref(""),a=l.ref(!1);let s=0;const u=async()=>{let g=Date.now();g-s<500&&!a.value&&await c(),s=g},c=async()=>{r.value=n.label,a.value=!0,await l.nextTick(),i.value.focus()},d=()=>{a.value=!1,o("change",r.value)},h=l.computed(()=>kn(n));return(g,m)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("path",{id:g.id,style:l.normalizeStyle(g.style),class:"vue-flow__edge-path",d:h.value[0],"marker-end":g.markerEnd},null,12,mc),l.createVNode(l.unref(ac),null,{default:l.withCtx(()=>[l.createElementVNode("div",{style:l.normalizeStyle({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${h.value[1]}px,${h.value[2]}px)`}),class:"nodrag nopan editable-edge-label",onClick:m[2]||(m[2]=b=>u())},[l.createElementVNode("div",yc,l.toDisplayString(n.label),1),a.value?(l.openBlock(),l.createElementBlock("div",vc,[l.withDirectives(l.createElementVNode("input",{ref_key:"labelInput",ref:i,class:"label-input","onUpdate:modelValue":m[0]||(m[0]=b=>r.value=b),onBlur:m[1]||(m[1]=b=>a.value=!1),onKeypress:l.withKeys(d,["enter"])},null,544),[[l.vModelText,r.value]])])):l.createCommentVNode("",!0)],4)]),_:1})],64))}}),bc={key:0,class:"label-input-wrapper"},Ec=l.defineComponent({__name:"EditableNode",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},emits:["change"],setup(e,{emit:t}){const n=e,o=t,i=l.ref(),r=l.ref(""),a=l.ref(!1);let s=0;const u=async()=>{let h=Date.now();h-s<500&&!a.value&&await c(),s=h},c=async()=>{r.value=n.label,a.value=!0,await l.nextTick(),i.value.focus()},d=()=>{a.value=!1,o("change",r.value)};return(h,g)=>(l.openBlock(),l.createElementBlock("div",{onClick:g[2]||(g[2]=m=>u())},[l.createElementVNode("div",null,l.toDisplayString(n.label),1),a.value?(l.openBlock(),l.createElementBlock("div",bc,[l.withDirectives(l.createElementVNode("input",{ref_key:"labelInput",ref:i,class:"label-input","onUpdate:modelValue":g[0]||(g[0]=m=>r.value=m),onBlur:g[1]||(g[1]=m=>a.value=!1),onKeypress:l.withKeys(d,["enter"])},null,544),[[l.vModelText,r.value]])])):l.createCommentVNode("",!0),n.data.hasInput?(l.openBlock(),l.createBlock(l.unref(Ke),{key:1,id:"a",type:"target",position:n.targetPosition},null,8,["position"])):l.createCommentVNode("",!0),n.data.hasOutput?(l.openBlock(),l.createBlock(l.unref(Ke),{key:2,id:"b",type:"source",position:n.sourcePosition},null,8,["position"])):l.createCommentVNode("",!0)]))}}),xc={class:"chart-controls"},Sc={class:"chart-controls-left"},Nc=l.createElementVNode("b",null,"Selected Node:",-1),Cc={class:"chart-controls-right"},kc={key:0},Mc={key:1},$n=l.defineComponent({__name:"NodeEditor",props:{modelValue:{},nodeContainerClass:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,o=t,i=l.ref(!1),r=l.ref([]),a=l.ref(),s=l.ref(""),u=l.computed(()=>(r.value.forEach((C,E)=>{if(C.id===s.value)return E}),-1)),c=l.computed({get:()=>{const C=n.modelValue;for(const E of C)E.data={},E.type==="input"?(E.data.hasInput=!1,E.data.hasOutput=!0):E.type==="output"?(E.data.hasInput=!0,E.data.hasOutput=!1):(E.data.hasInput=!0,E.data.hasOutput=!0),E.class="vue-flow__node-default",E.type="editable";for(const E of C)E.events={click:()=>{s.value=E.id}};return C},set:C=>{o("update:modelValue",JSON.parse(JSON.stringify(C)))}});l.onMounted(()=>{document.removeEventListener("keypress",_),document.addEventListener("keypress",_)}),l.onBeforeUnmount(()=>{document.removeEventListener("keypress",_)});const{onPaneReady:d}=de();d(C=>{a.value=C}),r.value=c.value;const h=C=>({[F.Top]:F.Right,[F.Right]:F.Bottom,[F.Bottom]:F.Left,[F.Left]:F.Top})[C],g=()=>{if(u.value>-1){const C=r.value[u.value];C.sourcePosition=h(C.sourcePosition)}},m=()=>{if(u.value>-1){const C=r.value[u.value];C.targetPosition=h(C.targetPosition)}},b=C=>{window.scrollBy(0,C.deltaY)},_=C=>{i.value&&C.ctrlKey==!0&&((C.key=="+"||C.key=="=")&&a.value.zoomIn(),C.key=="-"&&a.value.zoomOut())},x=async()=>{await a.value.fitView()},N=()=>{let C=!1,E={x:Math.random()*200,y:Math.random()*200};if(u.value>-1){const D=r.value[u.value];D.data.hasOutput&&(E={x:D.position.x+200,y:D.position.y+50},C=!0)}const $=r.value.length,A=`node-${$}`;if(r.value.push({id:A,label:"Node "+$,sourcePosition:F.Right,targetPosition:F.Left,class:"vue-flow__node-default",type:"editable",data:{hasInput:!0,hasOutput:!0},events:{click:()=>{s.value=A}},position:E}),C){let D=`edge-${$+1}`;r.value.push({id:D,source:s.value,target:A,type:"editable",label:`EDGE ${$+1}`,animated:!0,events:{click:()=>{s.value=D}}})}},p=(C,E)=>{for(let $=0;$<r.value.length;$++)if(r.value[$].id==E){r.value[$].label=C;break}};return(C,E)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["node-editor-wrapper",C.nodeContainerClass]),onMouseover:E[1]||(E[1]=$=>i.value=!0),onMouseleave:E[2]||(E[2]=$=>i.value=!1)},[l.createElementVNode("div",xc,[l.createElementVNode("div",Sc,[l.createElementVNode("div",null,[Nc,l.createTextVNode(" "+l.toDisplayString(s.value?s.value:"none"),1)])]),l.createElementVNode("div",Cc,[l.createElementVNode("div",null,[l.createElementVNode("button",{class:"button-default",onClick:N},"Add Node")]),l.createElementVNode("div",null,[l.createElementVNode("button",{class:"button-default",onClick:x},"Center")]),u.value>-1?(l.openBlock(),l.createElementBlock("div",kc,[l.createElementVNode("button",{class:"button-default",onClick:m},"Shift Input Position")])):l.createCommentVNode("",!0),u.value>-1?(l.openBlock(),l.createElementBlock("div",Mc,[l.createElementVNode("button",{class:"button-default",onClick:g},"Shift Output Position")])):l.createCommentVNode("",!0)])]),r.value&&r.value.length?(l.openBlock(),l.createBlock(l.unref(pc),{key:0,class:"nowheel","prevent-scrolling":!0,"zoom-on-scroll":!1,"fit-view-on-init":!0,modelValue:r.value,"onUpdate:modelValue":E[0]||(E[0]=$=>r.value=$),onWheel:l.withModifiers(b,["prevent"])},{"node-editable":l.withCtx($=>[l.createVNode(Ec,l.mergeProps($,{onChange:A=>p(A,$.id)}),null,16,["onChange"])]),"edge-editable":l.withCtx($=>[l.createVNode(_c,l.mergeProps($,{onChange:A=>p(A,$.id)}),null,16,["onChange"])]),_:1},8,["modelValue"])):l.createCommentVNode("",!0)],34))}}),Ci=l.defineComponent({__name:"StateEditor",props:l.mergeModels({layout:{},nodeContainerClass:{}},{modelValue:{},modelModifiers:{}}),emits:l.mergeModels(["update:modelValue"],["update:modelValue"]),setup(e,{emit:t}){const n=l.useModel(e,"modelValue"),o=e,i=t,r=l.computed({get:()=>{var h,g,m;const s={},u=[],c={};let d=0;for(const[b,_]of Object.entries(n.value)){const x={id:b,label:b,position:((h=o.layout[b])==null?void 0:h.position)||{x:200*d,y:100},targetPosition:((g=o.layout[b])==null?void 0:g.targetPosition)||F.Left,sourcePosition:((m=o.layout[b])==null?void 0:m.sourcePosition)||F.Right};if(_.type==="final"&&(x.type="output",x.class="default-output-node"),c[b]=x,_.on){for(const[N,p]of Object.entries(_.on))if(Array.isArray(p))for(const C of p){const $=C.toJSON().target.toString();u.push({id:`${b}-${N}`,target:$,source:b,label:N,animated:!0}),s[$]=!0}}d++}for(const[b,_]of Object.entries(c))s[b]||(_.type="input",_.class="default-input-node"),u.push(_);return u},set:s=>{a(s)}}),a=s=>{const u={},c={},d={};for(const h of s){const g=h.label;h.type==="input"?d[g]={on:{}}:h.type==="output"?d[g]={type:"final"}:d[g]={on:{}},c[h.id]=g}for(const[h,g]of Object.entries(u)){const m=c[h];for(const[b,_]of Object.entries(g))d[m].on[b]=_}i("update:modelValue",d)};return(s,u)=>(l.openBlock(),l.createElementBlock("div",null,[l.createVNode($n,{modelValue:r.value,"onUpdate:modelValue":u[0]||(u[0]=c=>r.value=c),"node-container-class":s.nodeContainerClass},null,8,["modelValue","node-container-class"])]))}});function Ic(e){e.component("NodeEditor",$n),e.component("StateEditor",Ci)}xe.NodeEditor=$n,xe.StateEditor=Ci,xe.install=Ic,Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"})});
|
|
21
|
+
Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class ge extends Error{constructor(t,...n){var o;super((o=li[t])==null?void 0:o.call(li,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function xn(e){return"clientX"in e}function Re(e,t){var n,o;const i=xn(e),r=i?e.clientX:(n=e.touches)==null?void 0:n[0].clientX,a=i?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:a-((t==null?void 0:t.top)??0)}}const Vt=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ai(){return{handleDomNode:null,isValid:!1,connection:{source:"",target:"",sourceHandle:null,targetHandle:null},endHandle:null}}function Sn(e){e==null||e.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function si(e,t,n,o){return(t[n]||[]).reduce((i,r)=>{var a,s;return`${e.id}-${r.id}-${n}`!==o&&i.push({id:r.id||null,type:n,nodeId:e.id,x:(((a=e.computedPosition)==null?void 0:a.x)??0)+r.x+r.width/2,y:(((s=e.computedPosition)==null?void 0:s.y)??0)+r.y+r.height/2,width:r.width,height:r.height}),i},[])}function Zs(e,t,n,o,i,r){const{x:a,y:s}=Re(e),c=t.elementsFromPoint(a,s).find(b=>b.classList.contains("vue-flow__handle"));if(c){const b=c.getAttribute("data-nodeid");if(b){const _=Nn(void 0,c),E=c.getAttribute("data-handleid"),N=r({nodeId:b,id:E,type:_});if(N){const g=i.find(k=>k.nodeId===b&&k.type===_&&k.id===E);return{handle:{id:E,type:_,nodeId:b,x:(g==null?void 0:g.x)||n.x,y:(g==null?void 0:g.y)||n.y},validHandleResult:N}}}}let d=[],h=Number.POSITIVE_INFINITY;for(const b of i){const _=Math.sqrt((b.x-n.x)**2+(b.y-n.y)**2);if(_<=o){const E=r(b);_<=h&&(_<h?d=[{handle:b,validHandleResult:E}]:_===h&&d.push({handle:b,validHandleResult:E}),h=_)}}if(!d.length)return{handle:null,validHandleResult:ai()};if(d.length===1)return d[0];const p=d.some(({validHandleResult:b})=>b.isValid),m=d.some(({handle:b})=>b.type==="target");return d.find(({handle:b,validHandleResult:_})=>m?b.type==="target":p?_.isValid:!0)||d[0]}function ui(e,t,n,o,i,r,a,s,u,c,d){const h=r==="target",p=s.querySelector(`.vue-flow__handle[data-id="${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`),{x:m,y:b}=Re(e),_=s.elementFromPoint(m,b),E=_!=null&&_.classList.contains("vue-flow__handle")?_:p,N=ai();if(E){N.handleDomNode=E;const g=Nn(void 0,E),k=E.getAttribute("data-nodeid"),S=E.getAttribute("data-handleid"),B=E.classList.contains("connectable"),A=E.classList.contains("connectableend"),O={source:h?k:o,sourceHandle:h?S:i,target:h?o:k,targetHandle:h?i:S};N.connection=O;const Z=B&&A&&(n===Oe.Strict?h&&g==="source"||!h&&g==="target":k!==o||S!==i);N.endHandle={nodeId:k,handleId:S,type:g},Z&&(N.isValid=a(O,{edges:u,nodes:c,sourceNode:d(O.source),targetNode:d(O.target)}))}return N}function Ws({nodes:e,nodeId:t,handleId:n,handleType:o}){const i=[];for(let r=0;r<e.length;r++){const a=e[r],{handleBounds:s}=a;let u=[],c=[];s&&(u=si(a,s,"source",`${t}-${n}-${o}`),c=si(a,s,"target",`${t}-${n}-${o}`)),i.push(...u,...c)}return i}function Nn(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Ks(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}const qs=["production","prod"];function Ot(e,...t){ci()&&console.warn(`[Vue Flow]: ${e}`,...t)}function ci(){return!qs.includes(process.env.NODE_ENV||"")}function di(e,t,n,o){const i=t.querySelectorAll(`.vue-flow__handle${e}`);return Array.from(i).map(a=>{const s=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),position:a.getAttribute("data-handlepos"),x:(s.left-n.left)/o,y:(s.top-n.top)/o,...Bt(a)}})}function Cn(e,t,n,o,i,r=!1,a){i.value=!1,e.selected?(r||e.selected&&t)&&(o([e]),l.nextTick(()=>{a.blur()})):n([e])}function fe(e){return typeof l.unref(e)<"u"}function Js(e,t,n,o){if(!e||!e.source||!e.target)return n(new ge(he.EDGE_INVALID,(e==null?void 0:e.id)??"[ID UNKNOWN]")),!1;let i;return Te(e)?i=e:i={...e,id:Go(e)},i=Fo(i,void 0,o),Os(i,t)?!1:i}function js(e,t,n,o,i,r){if(!t.source||!t.target)return r(new ge(he.EDGE_INVALID,e.id)),!1;const a=o(e.id);if(!a)return r(new ge(he.EDGE_NOT_FOUND,e.id)),!1;const{id:s,...u}=e,c={...u,id:i?Go(t):s,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.splice(n.indexOf(a),1,c),c}function fi(e,t,n){const o={},i=[];for(let r=0;r<e.length;++r){const a=e[r];if(!ze(a)){n(new ge(he.NODE_INVALID,a==null?void 0:a.id)||`[ID UNKNOWN|INDEX ${r}]`);continue}const s=Bs(a,t(a.id),a.parentNode);a.parentNode&&(o[a.parentNode]=!0),i[r]=s}for(const r of i){const a=t(r.parentNode)||i.find(s=>s.id===r.parentNode);r.parentNode&&!a&&n(new ge(he.NODE_MISSING_PARENT,r.id,r.parentNode)),(r.parentNode||o[r.id])&&(o[r.id]&&(r.isParent=!0),a&&(a.isParent=!0))}return i}function hi(e,t){e.clear();for(const n of t){const{id:o,source:i,target:r,sourceHandle:a=null,targetHandle:s=null}=n,u=`${i}-source-${a}`,c=`${r}-target-${s}`,d=e.get(u)||new Map,h=e.get(c)||new Map,p=l.markRaw({edgeId:o,source:i,target:r,sourceHandle:a,targetHandle:s});e.set(u,d.set(`${r}-${s}`,p)),e.set(c,h.set(`${i}-${a}`,p))}}function gi(e,t,n,o,i,r,a,s){const u=[];for(const c of e){const d=Te(c)?c:Js(c,s,i,r);if(!d)continue;const h=n(d.source),p=n(d.target);if(!h||!p){i(new ge(he.EDGE_SOURCE_TARGET_MISSING,d.id,d.source,d.target));continue}if(!h){i(new ge(he.EDGE_SOURCE_MISSING,d.id,d.source));continue}if(!p){i(new ge(he.EDGE_TARGET_MISSING,d.id,d.target));continue}if(t&&!t(d,{edges:s,nodes:a,sourceNode:h,targetNode:p})){i(new ge(he.EDGE_INVALID,d.id));continue}const m=o(d.id);u.push({...Fo(d,m,r),sourceNode:h,targetNode:p})}return u}function Qs(){return{edgesChange:R(),nodesChange:R(),nodeDoubleClick:R(),nodeClick:R(),nodeMouseEnter:R(),nodeMouseMove:R(),nodeMouseLeave:R(),nodeContextMenu:R(),nodeDragStart:R(),nodeDrag:R(),nodeDragStop:R(),nodesInitialized:R(),miniMapNodeClick:R(),miniMapNodeDoubleClick:R(),miniMapNodeMouseEnter:R(),miniMapNodeMouseMove:R(),miniMapNodeMouseLeave:R(),connect:R(),connectStart:R(),connectEnd:R(),clickConnectStart:R(),clickConnectEnd:R(),paneReady:R(),init:R(),move:R(),moveStart:R(),moveEnd:R(),selectionDragStart:R(),selectionDrag:R(),selectionDragStop:R(),selectionContextMenu:R(),selectionStart:R(),selectionEnd:R(),viewportChangeStart:R(),viewportChange:R(),viewportChangeEnd:R(),paneScroll:R(),paneClick:R(),paneContextMenu:R(),paneMouseEnter:R(),paneMouseMove:R(),paneMouseLeave:R(),edgeContextMenu:R(),edgeMouseEnter:R(),edgeMouseMove:R(),edgeMouseLeave:R(),edgeDoubleClick:R(),edgeClick:R(),edgeUpdateStart:R(),edgeUpdate:R(),edgeUpdateEnd:R(),updateNodeInternals:R(),error:R(e=>Ot(e.message))}}function eu(e,t){l.onBeforeMount(()=>{for(const[n,o]of Object.entries(t.value)){const i=r=>{e(n,r)};o.fns.add(i),ct(()=>{o.off(i)})}})}function pi(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:un.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:at.Free,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:Ve.Bezier,style:{}},connectionMode:Oe.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:Vt()?"Meta":"Control",zoomActivationKeyCode:Vt()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:Qs(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,disableKeyboardA11y:!1,ariaLiveMessage:""}}const tu=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function nu(e,t,n){const o=$s(e),i=f=>{const y=f??[];e.hooks.updateNodeInternals.trigger(y)},r=f=>Vs(f,e.nodes,e.edges),a=f=>Ds(f,e.nodes,e.edges),s=f=>yn(f,e.edges),u=f=>{if(f)return t.value.get(f)},c=f=>{if(f)return n.value.get(f)},d=(f,y,w)=>{var I,V;const G=[];for(const X of f){const ee={id:X.id,type:"position",dragging:w,from:X.from};if(y&&(ee.position=X.position,X.parentNode)){const ne=u(X.parentNode);ee.position={x:ee.position.x-(((I=ne==null?void 0:ne.computedPosition)==null?void 0:I.x)??0),y:ee.position.y-(((V=ne==null?void 0:ne.computedPosition)==null?void 0:V.y)??0)}}G.push(ee)}G!=null&&G.length&&e.hooks.nodesChange.trigger(G)},h=f=>{if(!e.vueFlowRef)return;const y=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!y)return;const w=window.getComputedStyle(y),{m22:I}=new window.DOMMatrixReadOnly(w.transform),V=[];for(let G=0;G<f.length;++G){const X=f[G],ee=u(X.id);if(ee){const ne=Bt(X.nodeElement);if(!!(ne.width&&ne.height&&(ee.dimensions.width!==ne.width||ee.dimensions.height!==ne.height||X.forceUpdate))){const ae=X.nodeElement.getBoundingClientRect();ee.dimensions=ne,ee.handleBounds.source=di(".source",X.nodeElement,ae,I),ee.handleBounds.target=di(".target",X.nodeElement,ae,I),V[G]={id:ee.id,type:"dimensions",dimensions:ne}}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&o.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),V.length&&e.hooks.nodesChange.trigger(V)},p=(f,y)=>{const w=[];for(const G of f)w.push(G.id);let I=[],V=[];if(e.multiSelectionActive)for(const G of w)I.push(Me(G,y));else{const G=wn([...e.nodes,...e.edges],w);I=G.changedNodes,V=G.changedEdges}I.length&&e.hooks.nodesChange.trigger(I),V.length&&e.hooks.edgesChange.trigger(V)},m=(f,y)=>{const w=[];for(const G of f)w.push(G.id);let I=[],V=[];if(e.multiSelectionActive)for(const G of w)V.push(Me(G,y));else{const G=wn([...e.nodes,...e.edges],w);I=G.changedNodes,V=G.changedEdges}I.length&&e.hooks.nodesChange.trigger(I),V.length&&e.hooks.edgesChange.trigger(V)},b=(f,y)=>{const w=[],I=[];for(const X of f)ze(X)?w.push(X.id):Te(X)&&I.push(X.id);const{changedNodes:V,changedEdges:G}=wn([...e.nodes,...e.edges],[...w,...I]);if(e.multiSelectionActive){for(const X of w)V.push(Me(X,y));for(const X of I)G.push(Me(X,y))}V.length&&e.hooks.nodesChange.trigger(V),G.length&&e.hooks.edgesChange.trigger(G)},_=f=>{p(f,!0)},E=f=>{m(f,!0)},N=f=>{b(f,!0)},g=f=>{if(!f.length)return p(f,!1);const y=[];for(const w of f)y.push(Me(w.id,!1));y.length&&e.hooks.nodesChange.trigger(y)},k=f=>{if(!f.length)return m(f,!1);const y=[];for(const w of f)y.push(Me(w.id,!1));y.length&&e.hooks.edgesChange.trigger(y)},S=f=>{if(!f||!f.length)return b([],!1);const y=f.reduce((w,I)=>{const V=Me(I.id,!1);return ze(I)?w.nodes.push(V):w.edges.push(V),w},{nodes:[],edges:[]});y.nodes.length&&e.hooks.nodesChange.trigger(y.nodes),y.edges.length&&e.hooks.edgesChange.trigger(y.edges)},B=f=>{var y;(y=e.d3Zoom)==null||y.scaleExtent([f,e.maxZoom]),e.minZoom=f},A=f=>{var y;(y=e.d3Zoom)==null||y.scaleExtent([e.minZoom,f]),e.maxZoom=f},O=f=>{var y;(y=e.d3Zoom)==null||y.translateExtent(f),e.translateExtent=f},U=f=>{e.nodeExtent=f,i()},Z=f=>{e.nodesDraggable=f,e.nodesConnectable=f,e.elementsSelectable=f},D=f=>{const y=f instanceof Function?f(e.nodes):f;!e.initialized&&!y.length||(e.nodes=fi(y,u,e.hooks.error.trigger))},x=f=>{const y=f instanceof Function?f(e.edges):f;if(!e.initialized&&!y.length)return;const w=gi(y,e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);hi(e.connectionLookup,w),e.edges=w},j=f=>{const y=f instanceof Function?f([...e.nodes,...e.edges]):f;!e.initialized&&!y.length||(D(y.filter(ze)),x(y.filter(Te)))},H=f=>{let y=f instanceof Function?f(e.nodes):f;y=Array.isArray(y)?y:[y];const w=fi(y,u,e.hooks.error.trigger),I=[];for(const V of w)I.push(ei(V));I.length&&e.hooks.nodesChange.trigger(I)},v=f=>{let y=f instanceof Function?f(e.edges):f;y=Array.isArray(y)?y:[y];const w=gi(y,e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),I=[];for(const V of w)I.push(ei(V));I.length&&e.hooks.edgesChange.trigger(I)},T=(f,y=!0,w=!1)=>{const I=f instanceof Function?f(e.nodes):f,V=Array.isArray(I)?I:[I],G=[],X=[];function ee(ce){const ae=s(ce);for(const se of ae)(!fe(se.deletable)||se.deletable)&&X.push(ni(se.id,se.source,se.target,se.sourceHandle,se.targetHandle))}function ne(ce){const ae=[];for(const se of e.nodes)se.parentNode===ce&&ae.push(se);if(ae.length){for(const se of ae)G.push(ti(se.id));y&&ee(ae);for(const se of ae)ne(se.id)}}for(const ce of V){const ae=typeof ce=="string"?u(ce):ce;ae&&(fe(ae.deletable)&&!ae.deletable||(G.push(ti(ae.id)),y&&ee([ae]),w&&ne(ae.id)))}X.length&&e.hooks.edgesChange.trigger(X),G.length&&e.hooks.nodesChange.trigger(G)},C=f=>{const y=f instanceof Function?f(e.edges):f,w=Array.isArray(y)?y:[y],I=[];for(const V of w){const G=typeof V=="string"?c(V):V;G&&(fe(G.deletable)&&!G.deletable||I.push(ni(typeof V=="string"?V:V.id,G.source,G.target,G.sourceHandle,G.targetHandle)))}e.hooks.edgesChange.trigger(I)},$=(f,y,w=!0)=>js(f,y,e.edges,c,w,e.hooks.error.trigger),z=(f,y,w={replace:!1})=>{const I=c(f);if(!I)return;const V=typeof y=="function"?y(I):y;I.data=w.replace?V:{...I.data,...V}},M=f=>Qo(f,e.nodes),P=f=>{const y=Qo(f,e.edges);return hi(e.connectionLookup,y),y},L=(f,y,w={replace:!1})=>{const I=u(f);if(!I)return;const V=typeof y=="function"?y(I):y;w.replace?e.nodes.splice(e.nodes.indexOf(I),1,V):Object.assign(I,V)},K=(f,y,w={replace:!1})=>{const I=u(f);if(!I)return;const V=typeof y=="function"?y(I):y;I.data=w.replace?V:{...I.data,...V}},re=(f,y,w=!1)=>{w?e.connectionClickStartHandle=f:e.connectionStartHandle=f,e.connectionEndHandle=null,e.connectionStatus=null,y&&(e.connectionPosition=y)},te=(f,y=null,w=null)=>{e.connectionStartHandle&&(e.connectionPosition=f,e.connectionEndHandle=y,e.connectionStatus=w)},oe=(f,y)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,y?e.connectionClickStartHandle=null:e.connectionStartHandle=null},ue=f=>{const y=Ps(f),w=y?null:We(f)?f:u(f.id);return!y&&!w?[null,null,y]:[y?f:Ro(w),w,y]},le=(f,y=!0,w=e.nodes)=>{const[I,V,G]=ue(f);if(!I)return[];const X=[];for(const ee of w||e.nodes){if(!G&&(ee.id===V.id||!ee.computedPosition))continue;const ne=Ro(ee),ce=pn(ne,I);(y&&ce>0||ce>=Number(I.width)*Number(I.height))&&X.push(ee)}return X},q=(f,y,w=!0)=>{const[I]=ue(f);if(!I)return!1;const V=pn(I,y);return w&&V>0||V>=Number(I.width)*Number(I.height)},W=f=>{const{viewport:y,dimensions:w,d3Zoom:I,d3Selection:V,translateExtent:G}=e;if(!I||!V||!f.x&&!f.y)return!1;const X=Ue.translate(y.x+f.x,y.y+f.y).scale(y.zoom),ee=[[0,0],[w.width,w.height]],ne=I.constrain()(X,ee,G),ce=e.viewport.x!==ne.x||e.viewport.y!==ne.y||e.viewport.zoom!==ne.k;return I.transform(V,ne),ce},J=f=>{const y=f instanceof Function?f(e):f,w=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];fe(y.defaultEdgeOptions)&&(e.defaultEdgeOptions=y.defaultEdgeOptions);const I=y.modelValue||y.nodes||y.edges?[]:void 0;I&&(y.modelValue&&I.push(...y.modelValue),y.nodes&&I.push(...y.nodes),y.edges&&I.push(...y.edges),j(I));const V=()=>{fe(y.maxZoom)&&A(y.maxZoom),fe(y.minZoom)&&B(y.minZoom),fe(y.translateExtent)&&O(y.translateExtent)};for(const G of Object.keys(y)){const X=G,ee=y[X];![...tu,...w].includes(X)&&fe(ee)&&(e[X]=ee)}dt(()=>e.d3Zoom).not.toBeNull().then(V),e.initialized||(e.initialized=!0)};return{updateNodePositions:d,updateNodeDimensions:h,setElements:j,setNodes:D,setEdges:x,addNodes:H,addEdges:v,removeNodes:T,removeEdges:C,findNode:u,findEdge:c,updateEdge:$,updateEdgeData:z,updateNode:L,updateNodeData:K,applyEdgeChanges:P,applyNodeChanges:M,addSelectedElements:N,addSelectedNodes:_,addSelectedEdges:E,setMinZoom:B,setMaxZoom:A,setTranslateExtent:O,setNodeExtent:U,removeSelectedElements:S,removeSelectedNodes:g,removeSelectedEdges:k,startConnection:re,updateConnection:te,endConnection:oe,setInteractive:Z,setState:J,getIntersectingNodes:le,getIncomers:r,getOutgoers:a,getConnectedEdges:s,isNodeIntersecting:q,panBy:W,fitView:f=>o.value.fitView(f),zoomIn:f=>o.value.zoomIn(f),zoomOut:f=>o.value.zoomOut(f),zoomTo:(f,y)=>o.value.zoomTo(f,y),setViewport:(f,y)=>o.value.setViewport(f,y),setTransform:(f,y)=>o.value.setTransform(f,y),getViewport:()=>o.value.getViewport(),getTransform:()=>o.value.getTransform(),setCenter:(f,y,w)=>o.value.setCenter(f,y,w),fitBounds:(f,y)=>o.value.fitBounds(f,y),project:f=>o.value.project(f),screenToFlowCoordinate:f=>o.value.screenToFlowCoordinate(f),flowToScreenCoordinate:f=>o.value.flowToScreenCoordinate(f),toObject:()=>{const f=[],y=[];for(const w of e.nodes){const{computedPosition:I,handleBounds:V,selected:G,dimensions:X,isParent:ee,resizing:ne,dragging:ce,events:ae,...se}=w;f.push(se)}for(const w of e.edges){const{selected:I,sourceNode:V,targetNode:G,events:X,...ee}=w;y.push(ee)}return JSON.parse(JSON.stringify({nodes:f,edges:y,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:f=>new Promise(y=>{const{nodes:w,edges:I,position:V,zoom:G,viewport:X}=f;if(w&&D(w),I&&x(I),X!=null&&X.x&&(X!=null&&X.y)||V){const ee=(X==null?void 0:X.x)||V[0],ne=(X==null?void 0:X.y)||V[1],ce=(X==null?void 0:X.zoom)||G||e.viewport.zoom;return dt(()=>o.value.viewportInitialized).toBe(!0).then(()=>{o.value.setViewport({x:ee,y:ne,zoom:ce}).then(()=>{y(!0)})})}else y(!0)}),updateNodeInternals:i,viewportHelper:o,$reset:()=>{const f=pi();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const y=Ue.translate(f.defaultViewport.x??0,f.defaultViewport.y??0).scale(Ae(f.defaultViewport.zoom??1,f.minZoom,f.maxZoom)),w=e.viewportRef.getBoundingClientRect(),I=[[0,0],[w.width,w.height]],V=e.d3Zoom.constrain()(y,I,f.translateExtent);e.d3Zoom.transform(e.d3Selection,V)}J(f)},$destroy:()=>{}}}const ou=["data-id","data-handleid","data-nodeid","data-handlepos"],iu={name:"Handle",compatConfig:{MODE:3}},Ke=l.defineComponent({...iu,props:{id:{default:null},type:{},position:{default:()=>F.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=l.createPropsRestProxy(e,["position","connectable","connectableStart","connectableEnd","id"]),o=l.toRef(()=>n.type??"source"),i=l.toRef(()=>n.isValidConnection??null),{connectionStartHandle:r,connectionClickStartHandle:a,connectionEndHandle:s,vueFlowRef:u,nodesConnectable:c,noDragClassName:d,noPanClassName:h}=de(),{id:p,node:m,nodeEl:b,connectedEdges:_}=Ao(),E=l.ref(),N=l.toRef(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),g=l.toRef(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),k=l.toRef(()=>{var D,x,j,H,v,T;return((D=r.value)==null?void 0:D.nodeId)===p&&((x=r.value)==null?void 0:x.handleId)===e.id&&((j=r.value)==null?void 0:j.type)===o.value||((H=s.value)==null?void 0:H.nodeId)===p&&((v=s.value)==null?void 0:v.handleId)===e.id&&((T=s.value)==null?void 0:T.type)===o.value}),S=l.toRef(()=>{var D,x,j;return((D=a.value)==null?void 0:D.nodeId)===p&&((x=a.value)==null?void 0:x.handleId)===e.id&&((j=a.value)==null?void 0:j.type)===o.value}),{handlePointerDown:B,handleClick:A}=Oo({nodeId:p,handleId:e.id,isValidConnection:i,type:o}),O=l.computed(()=>typeof e.connectable=="string"&&e.connectable==="single"?!_.value.some(D=>{const x=D[`${o.value}Handle`];return D[o.value]!==p?!1:x?x===e.id:!0}):typeof e.connectable=="number"?_.value.filter(D=>{const x=D[`${o.value}Handle`];return D[o.value]!==p?!1:x?x===e.id:!0}).length<e.connectable:typeof e.connectable=="function"?e.connectable(m,_.value):fe(e.connectable)?e.connectable:c.value);dt(()=>!!m.dimensions.width&&!!m.dimensions.height).toBe(!0,{flush:"post"}).then(()=>{var D;const x=(D=m.handleBounds[o.value])==null?void 0:D.find(z=>z.id===e.id);if(!u.value||x)return;const j=u.value.querySelector(".vue-flow__transformationpane");if(!b.value||!E.value||!j||!e.id)return;const H=b.value.getBoundingClientRect(),v=E.value.getBoundingClientRect(),T=window.getComputedStyle(j),{m22:C}=new window.DOMMatrixReadOnly(T.transform),$={id:e.id,position:e.position,x:(v.left-H.left)/C,y:(v.top-H.top)/C,...Bt(E.value)};m.handleBounds[o.value]=[...m.handleBounds[o.value]??[],$]}),l.onUnmounted(()=>{const D=m.handleBounds[o.value];D&&(m.handleBounds[o.value]=D.filter(x=>x.id!==e.id))});function U(D){const x=xn(D);O.value&&N.value&&(x&&D.button===0||!x)&&B(D)}function Z(D){!p||!a.value&&!N.value||O.value&&A(D)}return t({handleClick:A,handlePointerDown:B,onClick:Z,onPointerDown:U}),(D,x)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"handle",ref:E,"data-id":`${l.unref(p)}-${e.id}-${o.value}`,"data-handleid":e.id,"data-nodeid":l.unref(p),"data-handlepos":D.position,class:l.normalizeClass(["vue-flow__handle",[`vue-flow__handle-${D.position}`,`vue-flow__handle-${e.id}`,l.unref(d),l.unref(h),o.value,{connectable:O.value,connecting:S.value,connectablestart:N.value,connectableend:g.value,connectionindicator:O.value&&(N.value&&!k.value||g.value&&k.value)}]]),onMousedown:U,onTouchstartPassive:U,onClick:Z},[l.renderSlot(D.$slots,"default",{id:D.id})],42,ou))}}),At=function({sourcePosition:e=F.Bottom,targetPosition:t=F.Top,label:n,connectable:o=!0,isValidTargetPos:i,isValidSourcePos:r,data:a}){const s=a.label||n;return[l.h(Ke,{type:"target",position:t,connectable:o,isValidConnection:i}),typeof s!="string"&&s?l.h(s):l.h("div",{innerHTML:s}),l.h(Ke,{type:"source",position:e,connectable:o,isValidConnection:r})]};At.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"],At.inheritAttrs=!1,At.compatConfig={MODE:3};const ru=At,zt=function({targetPosition:e=F.Top,label:t,connectable:n=!0,isValidTargetPos:o,data:i}){const r=i.label||t;return[l.h(Ke,{type:"target",position:e,connectable:n,isValidConnection:o}),typeof r!="string"&&r?l.h(r):l.h("div",{innerHTML:r})]};zt.props=["targetPosition","label","isValidTargetPos","connectable","data"],zt.inheritAttrs=!1,zt.compatConfig={MODE:3};const lu=zt,Rt=function({sourcePosition:e=F.Bottom,label:t,connectable:n=!0,isValidSourcePos:o,data:i}){const r=i.label||t;return[typeof r!="string"&&r?l.h(r):l.h("div",{innerHTML:r}),l.h(Ke,{type:"source",position:e,connectable:n,isValidConnection:o})]};Rt.props=["sourcePosition","label","isValidSourcePos","connectable","data"],Rt.inheritAttrs=!1,Rt.compatConfig={MODE:3};const au=Rt,su=["transform"],uu=["width","height","x","y","rx","ry"],cu=["y"],du={name:"EdgeText",compatConfig:{MODE:3}},fu=l.defineComponent({...du,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=l.ref({x:0,y:0,width:0,height:0}),n=l.ref(null),o=l.computed(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);l.onMounted(i),l.watch([()=>e.x,()=>e.y,n,()=>e.label],i);function i(){if(!n.value)return;const r=n.value.getBBox();(r.width!==t.value.width||r.height!==t.value.height)&&(t.value=r)}return(r,a)=>(l.openBlock(),l.createElementBlock("g",{transform:o.value,class:"vue-flow__edge-textwrapper"},[r.labelShowBg?(l.openBlock(),l.createElementBlock("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*r.labelBgPadding[0]}px`,height:`${t.value.height+2*r.labelBgPadding[1]}px`,x:-r.labelBgPadding[0],y:-r.labelBgPadding[1],style:l.normalizeStyle(r.labelBgStyle),rx:r.labelBgBorderRadius,ry:r.labelBgBorderRadius},null,12,uu)):l.createCommentVNode("",!0),l.createElementVNode("text",l.mergeProps(r.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:r.labelStyle}),[l.renderSlot(r.$slots,"default",{},()=>[typeof r.label!="string"?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(r.label),{key:0})):(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[l.createTextVNode(l.toDisplayString(r.label),1)],64))])],16,cu)],8,su))}}),hu=["id","d","marker-end","marker-start"],gu=["d","stroke-width"],pu={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Ht=l.defineComponent({...pu,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},style:{},labelStyle:{},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=l.createPropsRestProxy(e,["interactionWidth","labelShowBg"]),o=l.ref(null),i=l.ref(null),r=l.ref(null),a=l.useAttrs();return t({pathEl:o,interactionEl:i,labelEl:r}),(s,u)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("path",{id:s.id,ref_key:"pathEl",ref:o,d:s.path,style:l.normalizeStyle(n.style),class:l.normalizeClass(["vue-flow__edge-path",l.unref(a).class]),"marker-end":s.markerEnd,"marker-start":s.markerStart},null,14,hu),s.interactionWidth?(l.openBlock(),l.createElementBlock("path",{key:0,ref_key:"interactionEl",ref:i,fill:"none",d:s.path,"stroke-width":s.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,gu)):l.createCommentVNode("",!0),s.label&&s.labelX&&s.labelY?(l.openBlock(),l.createBlock(fu,{key:1,ref_key:"labelEl",ref:r,x:s.labelX,y:s.labelY,label:s.label,"label-show-bg":s.labelShowBg,"label-bg-style":s.labelBgStyle,"label-bg-padding":s.labelBgPadding,"label-bg-border-radius":s.labelBgBorderRadius,"label-style":s.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):l.createCommentVNode("",!0)],64))}});function mi({sourceX:e,sourceY:t,targetX:n,targetY:o}){const i=Math.abs(n-e)/2,r=n<e?n+i:n-i,a=Math.abs(o-t)/2,s=o<t?o+a:o-a;return[r,s,i,a]}function yi({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:i,sourceControlY:r,targetControlX:a,targetControlY:s}){const u=e*.125+i*.375+a*.375+n*.125,c=t*.125+r*.375+s*.375+o*.125,d=Math.abs(u-e),h=Math.abs(c-t);return[u,c,d,h]}function Lt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function vi({pos:e,x1:t,y1:n,x2:o,y2:i,c:r}){let a,s;switch(e){case F.Left:a=t-Lt(t-o,r),s=n;break;case F.Right:a=t+Lt(o-t,r),s=n;break;case F.Top:a=t,s=n-Lt(n-i,r);break;case F.Bottom:a=t,s=n+Lt(i-n,r);break}return[a,s]}function kn(e){const{sourceX:t,sourceY:n,sourcePosition:o=F.Bottom,targetX:i,targetY:r,targetPosition:a=F.Top,curvature:s=.25}=e,[u,c]=vi({pos:o,x1:t,y1:n,x2:i,y2:r,c:s}),[d,h]=vi({pos:a,x1:i,y1:r,x2:t,y2:n,c:s}),[p,m,b,_]=yi({sourceX:t,sourceY:n,targetX:i,targetY:r,sourceControlX:u,sourceControlY:c,targetControlX:d,targetControlY:h});return[`M${t},${n} C${u},${c} ${d},${h} ${i},${r}`,p,m,b,_]}function wi({pos:e,x1:t,y1:n,x2:o,y2:i}){let r,a;switch(e){case F.Left:case F.Right:r=.5*(t+o),a=n;break;case F.Top:case F.Bottom:r=t,a=.5*(n+i);break}return[r,a]}function _i(e){const{sourceX:t,sourceY:n,sourcePosition:o=F.Bottom,targetX:i,targetY:r,targetPosition:a=F.Top}=e,[s,u]=wi({pos:o,x1:t,y1:n,x2:i,y2:r}),[c,d]=wi({pos:a,x1:i,y1:r,x2:t,y2:n}),[h,p,m,b]=yi({sourceX:t,sourceY:n,targetX:i,targetY:r,sourceControlX:s,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${t},${n} C${s},${u} ${c},${d} ${i},${r}`,h,p,m,b]}const bi={[F.Left]:{x:-1,y:0},[F.Right]:{x:1,y:0},[F.Top]:{x:0,y:-1},[F.Bottom]:{x:0,y:1}};function mu({source:e,sourcePosition:t=F.Bottom,target:n}){return t===F.Left||t===F.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}}function Ei(e,t){return Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2)}function yu({source:e,sourcePosition:t=F.Bottom,target:n,targetPosition:o=F.Top,center:i,offset:r}){const a=bi[t],s=bi[o],u={x:e.x+a.x*r,y:e.y+a.y*r},c={x:n.x+s.x*r,y:n.y+s.y*r},d=mu({source:u,sourcePosition:t,target:c}),h=d.x!==0?"x":"y",p=d[h];let m,b,_;const E={x:0,y:0},N={x:0,y:0},[g,k,S,B]=mi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[h]*s[h]===-1){b=i.x??g,_=i.y??k;const O=[{x:b,y:u.y},{x:b,y:c.y}],U=[{x:u.x,y:_},{x:c.x,y:_}];a[h]===p?m=h==="x"?O:U:m=h==="x"?U:O}else{const O=[{x:u.x,y:c.y}],U=[{x:c.x,y:u.y}];if(h==="x"?m=a.x===p?U:O:m=a.y===p?O:U,t===o){const H=Math.abs(e[h]-n[h]);if(H<=r){const v=Math.min(r-1,r-H);a[h]===p?E[h]=(u[h]>e[h]?-1:1)*v:N[h]=(c[h]>n[h]?-1:1)*v}}if(t!==o){const H=h==="x"?"y":"x",v=a[h]===s[H],T=u[H]>c[H],C=u[H]<c[H];(a[h]===1&&(!v&&T||v&&C)||a[h]!==1&&(!v&&C||v&&T))&&(m=h==="x"?O:U)}const Z={x:u.x+E.x,y:u.y+E.y},D={x:c.x+N.x,y:c.y+N.y},x=Math.max(Math.abs(Z.x-m[0].x),Math.abs(D.x-m[0].x)),j=Math.max(Math.abs(Z.y-m[0].y),Math.abs(D.y-m[0].y));x>=j?(b=(Z.x+D.x)/2,_=m[0].y):(b=m[0].x,_=(Z.y+D.y)/2)}return[[e,{x:u.x+E.x,y:u.y+E.y},...m,{x:c.x+N.x,y:c.y+N.y},n],b,_,S,B]}function vu(e,t,n,o){const i=Math.min(Ei(e,t)/2,Ei(t,n)/2,o),{x:r,y:a}=t;if(e.x===r&&r===n.x||e.y===a&&a===n.y)return`L${r} ${a}`;if(e.y===a){const c=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${r+i*c},${a}Q ${r},${a} ${r},${a+i*d}`}const s=e.x<n.x?1:-1,u=e.y<n.y?-1:1;return`L ${r},${a+i*u}Q ${r},${a} ${r+i*s},${a}`}function Mn(e){const{sourceX:t,sourceY:n,sourcePosition:o=F.Bottom,targetX:i,targetY:r,targetPosition:a=F.Top,borderRadius:s=5,centerX:u,centerY:c,offset:d=20}=e,[h,p,m,b,_]=yu({source:{x:t,y:n},sourcePosition:o,target:{x:i,y:r},targetPosition:a,center:{x:u,y:c},offset:d});return[h.reduce((N,g,k)=>{let S;return k>0&&k<h.length-1?S=vu(h[k-1],g,h[k+1],s):S=`${k===0?"M":"L"}${g.x} ${g.y}`,N+=S,N},""),p,m,b,_]}function wu(e){const{sourceX:t,sourceY:n,targetX:o,targetY:i}=e,[r,a,s,u]=mi({sourceX:t,sourceY:n,targetX:o,targetY:i});return[`M ${t},${n}L ${o},${i}`,r,a,s,u]}const _u=l.defineComponent({name:"StraightEdge",props:["label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=wu(e);return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),xi=l.defineComponent({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=Mn({...e,sourcePosition:e.sourcePosition??F.Bottom,targetPosition:e.targetPosition??F.Top});return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),bu=l.defineComponent({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>l.h(xi,{...e,...t,borderRadius:0})}}),Eu=l.defineComponent({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=kn({...e,sourcePosition:e.sourcePosition??F.Bottom,targetPosition:e.targetPosition??F.Top});return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),xu=l.defineComponent({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,i]=_i({...e,sourcePosition:e.sourcePosition??F.Bottom,targetPosition:e.targetPosition??F.Top});return l.h(Ht,{path:n,labelX:o,labelY:i,...t,...e})}}}),Su={input:au,default:ru,output:lu},Nu={default:Eu,straight:_u,step:bu,smoothstep:xi,simplebezier:xu};function Cu(e,t,n){const o=l.computed(()=>_=>t.value.get(_)),i=l.computed(()=>_=>n.value.get(_)),r=l.computed(()=>{const _={...Nu,...e.edgeTypes},E=Object.keys(_);for(const N of e.edges)N.type&&!E.includes(N.type)&&(_[N.type]=N.type);return _}),a=l.computed(()=>{const _={...Su,...e.nodeTypes},E=Object.keys(_);for(const N of e.nodes)N.type&&!E.includes(N.type)&&(_[N.type]=N.type);return _}),s=l.computed(()=>e.onlyRenderVisibleElements?Wo(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),u=l.computed(()=>{if(e.onlyRenderVisibleElements){const _=[];for(const E of e.edges){const N=t.value.get(E.source),g=t.value.get(E.target);Xs({sourcePos:N.computedPosition||{x:0,y:0},targetPos:g.computedPosition||{x:0,y:0},sourceWidth:N.dimensions.width,sourceHeight:N.dimensions.height,targetWidth:g.dimensions.width,targetHeight:g.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&_.push(E)}return _}return e.edges}),c=l.computed(()=>[...s.value,...u.value]),d=l.computed(()=>{const _=[];for(const E of e.nodes)E.selected&&_.push(E);return _}),h=l.computed(()=>{const _=[];for(const E of e.edges)E.selected&&_.push(E);return _}),p=l.computed(()=>[...d.value,...h.value]),m=l.computed(()=>{const _=[];for(const E of e.nodes)E.dimensions.width&&E.dimensions.height&&E.handleBounds!==void 0&&_.push(E);return _}),b=l.computed(()=>s.value.length>0&&m.value.length===s.value.length);return{getNode:o,getEdge:i,getElements:c,getEdgeTypes:r,getNodeTypes:a,getEdges:u,getNodes:s,getSelectedElements:p,getSelectedNodes:d,getSelectedEdges:h,getNodesInitialized:m,areNodesInitialized:b}}class He{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=l.getCurrentInstance())==null?void 0:t.appContext.app,o=(n==null?void 0:n.config.globalProperties.$vueFlowStorage)??He.instance;return He.instance=o??new He,n&&(n.config.globalProperties.$vueFlowStorage=He.instance),He.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const o=pi(),i=l.reactive(o),r={};for(const[p,m]of Object.entries(i.hooks)){const b=`on${p.charAt(0).toUpperCase()+p.slice(1)}`;r[b]=m.on}const a={};for(const[p,m]of Object.entries(i.hooks))a[p]=m.trigger;const s=l.computed(()=>{const p=new Map;for(const m of i.nodes)p.set(m.id,m);return p}),u=l.computed(()=>{const p=new Map;for(const m of i.edges)p.set(m.id,m);return p}),c=Cu(i,s,u),d=nu(i,s,u);d.setState({...i,...n});const h={...r,...c,...d,...Vi(i),emits:a,id:t,vueFlowVersion:"1.37.1",$destroy:()=>{this.remove(t)}};return this.set(t,h),h}getId(){return`vue-flow-${this.currentId++}`}}function de(e){const t=He.getInstance(),n=l.getCurrentScope(),o=typeof e=="object",i=o?e:{id:e},r=i.id,a=(n==null?void 0:n.vueFlowId)||r;let s;if(n){const u=l.inject(Bo,null);typeof u<"u"&&u!==null&&(s=u)}if(s||a&&(s=t.get(a)),!s||s&&r&&r!==s.id){const u=r??t.getId(),c=t.create(u,i);s=c,(n??l.effectScope(!0)).run(()=>{l.watch(c.applyDefault,(h,p,m)=>{const b=E=>{c.applyNodeChanges(E)},_=E=>{c.applyEdgeChanges(E)};h?(c.onNodesChange(b),c.onEdgesChange(_)):(c.hooks.value.nodesChange.off(b),c.hooks.value.edgesChange.off(_)),m(()=>{c.hooks.value.nodesChange.off(b),c.hooks.value.edgesChange.off(_)})},{immediate:!0}),ct(()=>{if(s){const h=t.get(s.id);h?h.$destroy():Ot(`No store instance found for id ${s.id} in storage.`)}})})}else o&&s.setState(i);if(n&&(l.provide(Bo,s),n.vueFlowId=s.id),o){const u=l.getCurrentInstance();(u==null?void 0:u.type.name)!=="VueFlow"&&s.emits.error(new ge(he.USEVUEFLOW_OPTIONS))}return s}function ku(e){const t=dn(),{emits:n,dimensions:o}=de();let i;l.onMounted(()=>{const r=e.value,a=()=>{if(!r)return;const s=Bt(r);(s.width===0||s.height===0)&&n.error(new ge(he.MISSING_VIEWPORT_DIMENSIONS)),o.value={width:s.width||500,height:s.height||500}};a(),t.addEventListener("resize",a),r&&(i=new ResizeObserver(()=>a()),i.observe(r)),l.onBeforeUnmount(()=>{t.removeEventListener("resize",a),i&&r&&i.unobserve(r)})})}const Mu={name:"UserSelection",compatConfig:{MODE:3}},Iu=l.defineComponent({...Mu,props:{userSelectionRect:{}},setup(e){return(t,n)=>(l.openBlock(),l.createElementBlock("div",{class:"vue-flow__selection vue-flow__container",style:l.normalizeStyle({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),$u=["tabIndex"],Tu={name:"NodesSelection",compatConfig:{MODE:3}},Pu=l.defineComponent({...Tu,setup(e){const{emits:t,viewport:n,getSelectedNodes:o,noPanClassName:i,disableKeyboardA11y:r,userSelectionActive:a}=de(),s=zo(),u=l.ref(null),c=Po({el:u,onStart(b){t.selectionDragStart(b)},onDrag(b){t.selectionDrag(b)},onStop(b){t.selectionDragStop(b)}});l.onMounted(()=>{var b;r.value||(b=u.value)==null||b.focus({preventScroll:!0})});const d=l.computed(()=>Zo(o.value)),h=l.computed(()=>({width:`${d.value.width}px`,height:`${d.value.height}px`,top:`${d.value.y}px`,left:`${d.value.x}px`}));function p(b){t.selectionContextMenu({event:b,nodes:o.value})}function m(b){r||Ze[b.key]&&s({x:Ze[b.key].x,y:Ze[b.key].y},b.shiftKey)}return(b,_)=>!l.unref(a)&&d.value.width&&d.value.height?(l.openBlock(),l.createElementBlock("div",{key:0,class:l.normalizeClass(["vue-flow__nodesselection vue-flow__container",l.unref(i)]),style:l.normalizeStyle({transform:`translate(${l.unref(n).x}px,${l.unref(n).y}px) scale(${l.unref(n).zoom})`})},[l.createElementVNode("div",{ref_key:"el",ref:u,class:l.normalizeClass([{dragging:l.unref(c)},"vue-flow__nodesselection-rect"]),style:l.normalizeStyle(h.value),tabIndex:l.unref(r)?void 0:-1,onContextmenu:p,onKeydown:m},null,46,$u)],6)):l.createCommentVNode("",!0)}});function Si(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const Bu={name:"Pane",compatConfig:{MODE:3}},Du=l.defineComponent({...Bu,props:{isSelecting:{type:Boolean}},setup(e){const{vueFlowRef:t,getNodes:n,getEdges:o,viewport:i,emits:r,userSelectionActive:a,removeSelectedElements:s,panOnDrag:u,userSelectionRect:c,elementsSelectable:d,nodesSelectionActive:h,addSelectedElements:p,getSelectedEdges:m,getSelectedNodes:b,removeNodes:_,removeEdges:E,selectionMode:N,deleteKeyCode:g,multiSelectionKeyCode:k,multiSelectionActive:S}=de(),B=l.ref(null),A=l.ref(0),O=l.ref(0),U=l.ref(),Z=l.toRef(()=>d.value&&(e.isSelecting||a.value));st(g,M=>{if(!M)return;const P=[];for(const L of n.value)(!L.selected&&L.parentNode&&P.some(K=>K.id===L.parentNode)||L.selected)&&P.push(L);(P||m.value)&&(m.value.length>0&&E(m.value),P.length>0&&_(P),h.value=!1,s())},{actInsideInputWithModifier:!1}),st(k,M=>{S.value=M});function D(){a.value=!1,c.value=null,A.value=0,O.value=0}function x(M){M.target!==B.value||Z.value||(r.paneClick(M),s(),h.value=!1)}function j(M){var P;if(M.target===B.value){if(Array.isArray(u.value)&&((P=u.value)!=null&&P.includes(2))){M.preventDefault();return}r.paneContextMenu(M)}}function H(M){M.target===B.value&&r.paneScroll(M)}function v(M){if(U.value=t.value.getBoundingClientRect(),!Z.value||!d||!e.isSelecting||M.button!==0||M.target!==B.value||!U.value)return;const{x:P,y:L}=Si(M,U.value);s(),c.value={width:0,height:0,startX:P,startY:L,x:P,y:L},a.value=!0,r.selectionStart(M)}function T(M){if(!Z.value)return r.paneMouseMove(M);if(!e.isSelecting||!U.value||!c.value)return;a.value||(a.value=!0),h.value&&(h.value=!1);const P=Si(M,U.value),L=c.value.startX??0,K=c.value.startY??0,re={...c.value,x:P.x<L?P.x:L,y:P.y<K?P.y:K,width:Math.abs(P.x-L),height:Math.abs(P.y-K)},te=Wo(n.value,c.value,i.value,N.value===un.Partial),oe=yn(te,o.value);A.value=te.length,O.value=oe.length,c.value=re,p([...te,...oe])}function C(M){Z.value&&M.button===0&&(!a.value&&c.value&&M.target===B.value&&x(M),h.value=A.value>0,D(),r.selectionEnd(M))}function $(M){var P;if(!Z.value)return r.paneMouseLeave(M);a.value&&(h.value=A.value>0,(P=r.selectionEnd)==null||P.call(r,M)),D()}function z(M){Z.value||r.paneMouseEnter(M)}return(M,P)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"container",ref:B,class:l.normalizeClass(["vue-flow__pane vue-flow__container",{selection:M.isSelecting}]),onClick:x,onContextmenu:j,onWheelPassive:H,onMouseenter:z,onMousedown:v,onMousemove:T,onMouseup:C,onMouseleave:$},[l.renderSlot(M.$slots,"default"),l.unref(a)&&l.unref(c)?(l.openBlock(),l.createBlock(Iu,{key:0,"user-selection-rect":l.unref(c)},null,8,["user-selection-rect"])):l.createCommentVNode("",!0),l.unref(h)&&l.unref(b).length?(l.openBlock(),l.createBlock(Pu,{key:1})):l.createCommentVNode("",!0)],34))}}),Vu={name:"Transform",compatConfig:{MODE:3}},Ou=l.defineComponent({...Vu,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:o}=de(),i=l.computed(()=>n.value?!o.value:!1),r=l.computed(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(a,s)=>(l.openBlock(),l.createElementBlock("div",{class:"vue-flow__transformationpane vue-flow__container",style:l.normalizeStyle({transform:r.value,opacity:i.value?0:void 0})},[l.renderSlot(a.$slots,"default")],4))}}),Au={name:"Viewport",compatConfig:{MODE:3}},zu=l.defineComponent({...Au,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:o,translateExtent:i,zoomActivationKeyCode:r,selectionKeyCode:a,panActivationKeyCode:s,panOnScroll:u,panOnScrollMode:c,panOnScrollSpeed:d,panOnDrag:h,zoomOnDoubleClick:p,zoomOnPinch:m,zoomOnScroll:b,preventScrolling:_,noWheelClassName:E,noPanClassName:N,emits:g,connectionStartHandle:k,userSelectionActive:S,paneDragging:B,d3Zoom:A,d3Selection:O,d3ZoomHandler:U,viewport:Z,viewportRef:D}=de();ku(D);const x=l.ref(!1),j=l.ref(!1);let H=null,v=!1,T=0,C={x:0,y:0,zoom:0};const $=st(s),z=st(a),M=st(r),P=l.toRef(()=>$.value||h.value),L=l.toRef(()=>$.value||u.value),K=l.toRef(()=>z.value||a.value===!0&&P.value!==!0);l.onMounted(()=>{if(!D.value){Ot("Viewport element is missing");return}const q=D.value,W=q.getBoundingClientRect(),J=ms().scaleExtent([t.value,n.value]).translateExtent(i.value),Q=ye(q).call(J),ie=Q.on("wheel.zoom"),Y=Ue.translate(o.value.x??0,o.value.y??0).scale(Ae(o.value.zoom??1,t.value,n.value)),f=[[0,0],[W.width,W.height]],y=J.constrain()(Y,f,i.value);J.transform(Q,y),J.wheelDelta(te),A.value=J,O.value=Q,U.value=ie,Z.value={x:y.x,y:y.y,zoom:y.k},J.on("start",w=>{var I;if(!w.sourceEvent)return null;T=w.sourceEvent.button,x.value=!0;const V=ue(w.transform);((I=w.sourceEvent)==null?void 0:I.type)==="mousedown"&&(B.value=!0),C=V,g.viewportChangeStart(V),g.moveStart({event:w,flowTransform:V})}),J.on("end",w=>{if(!w.sourceEvent)return null;if(x.value=!1,B.value=!1,re(P.value,T??0)&&!v&&g.paneContextMenu(w.sourceEvent),v=!1,oe(C,w.transform)){const I=ue(w.transform);C=I,g.viewportChangeEnd(I),g.moveEnd({event:w,flowTransform:I})}}),J.filter(w=>{var I,V,G;const X=M.value||b.value,ee=m.value&&w.ctrlKey,ne=w.button;if((P.value===!0||Array.isArray(P.value)&&P.value.includes(1))&&ne===1&&w.type==="mousedown"&&((I=w.target)!=null&&I.closest(".vue-flow__node")||(V=w.target)!=null&&V.closest(".vue-flow__edge")))return!0;if(!P.value&&!X&&!L.value&&!p.value&&!m.value||S.value||!p.value&&w.type==="dblclick"||le(w,E.value)&&w.type==="wheel"||le(w,N.value)&&(w.type!=="wheel"||L.value&&w.type==="wheel"&&!M.value)||!m.value&&w.ctrlKey&&w.type==="wheel"||!X&&!L.value&&!ee&&w.type==="wheel")return!1;if(!m&&w.type==="touchstart"&&((G=w.touches)==null?void 0:G.length)>1)return w.preventDefault(),!1;if(!P.value&&(w.type==="mousedown"||w.type==="touchstart")||Array.isArray(P.value)&&!P.value.includes(ne)&&(w.type==="mousedown"||w.type==="touchstart"))return!1;const ce=Array.isArray(P.value)&&P.value.includes(ne)||!ne||ne<=1;return(!w.ctrlKey||w.type==="wheel")&&ce}),l.watch([S,P],()=>{S.value&&!x.value?J.on("zoom",null):S.value||J.on("zoom",w=>{Z.value={x:w.transform.x,y:w.transform.y,zoom:w.transform.k};const I=ue(w.transform);v=re(P.value,T??0),g.viewportChange(I),g.move({event:w,flowTransform:I})})},{immediate:!0}),l.watch([S,L,c,M,m,_,E],()=>{L.value&&!M.value&&!S.value?Q.on("wheel.zoom",w=>{if(le(w,E.value))return!1;const I=M.value||b.value,V=m.value&&w.ctrlKey;if(!(!_.value||L.value||I||V))return!1;w.preventDefault(),w.stopImmediatePropagation();const X=Q.property("__zoom").k||1,ee=Vt();if(w.ctrlKey&&m.value&&ee){const Ic=_e(w),$c=te(w),Tc=X*2**$c;J.scaleTo(Q,Tc,Ic,w);return}const ne=w.deltaMode===1?20:1;let ce=c.value===at.Vertical?0:w.deltaX*ne,ae=c.value===at.Horizontal?0:w.deltaY*ne;!ee&&w.shiftKey&&c.value!==at.Vertical&&!ce&&ae&&(ce=ae,ae=0),J.translateBy(Q,-(ce/X)*d.value,-(ae/X)*d.value);const se=ue(Q.property("__zoom"));H&&clearTimeout(H),j.value?(g.move({event:w,flowTransform:se}),g.viewportChange(se),H=setTimeout(()=>{g.moveEnd({event:w,flowTransform:se}),g.viewportChangeEnd(se),j.value=!1},150)):(j.value=!0,g.moveStart({event:w,flowTransform:se}),g.viewportChangeStart(se))},{passive:!1}):typeof ie<"u"&&Q.on("wheel.zoom",function(w,I){const V=!_.value&&w.type==="wheel"&&!w.ctrlKey,G=M.value||b.value,X=m.value&&w.ctrlKey;if(!G&&!u.value&&!X&&w.type==="wheel"||V||le(w,E.value))return null;w.preventDefault(),ie.call(this,w,I)},{passive:!1})},{immediate:!0})});function re(q,W){return W===2&&Array.isArray(q)&&q.includes(2)}function te(q){const W=q.ctrlKey&&Vt()?10:1;return-q.deltaY*(q.deltaMode===1?.05:q.deltaMode?1:.002)*W}function oe(q,W){return q.x!==W.x&&!Number.isNaN(W.x)||q.y!==W.y&&!Number.isNaN(W.y)||q.zoom!==W.k&&!Number.isNaN(W.k)}function ue(q){return{x:q.x,y:q.y,zoom:q.k}}function le(q,W){return q.target.closest(`.${W}`)}return(q,W)=>(l.openBlock(),l.createElementBlock("div",{ref_key:"viewportRef",ref:D,class:"vue-flow__viewport vue-flow__container"},[l.createVNode(Du,{"is-selecting":K.value,class:l.normalizeClass({connecting:!!l.unref(k),dragging:l.unref(B),draggable:P.value})},{default:l.withCtx(()=>[l.createVNode(Ou,null,{default:l.withCtx(()=>[l.renderSlot(q.$slots,"default")]),_:3})]),_:3},8,["is-selecting","class"])],512))}}),Ru=["id"],Hu=["id"],Lu=["id"],Fu={name:"A11yDescriptions",compatConfig:{MODE:3}},Yu=l.defineComponent({...Fu,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:o}=de();return(i,r)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("div",{id:`${l.unref(Io)}-${l.unref(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+l.toDisplayString(l.unref(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,Ru),l.createElementVNode("div",{id:`${l.unref($o)}-${l.unref(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,Hu),l.unref(n)?l.createCommentVNode("",!0):(l.openBlock(),l.createElementBlock("div",{key:0,id:`${l.unref(_s)}-${l.unref(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},l.toDisplayString(l.unref(o)),9,Lu))],64))}});function Gu(){const e=de();l.watch(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function Xu(e,t,n){return n===F.Left?e-t:n===F.Right?e+t:e}function Uu(e,t,n){return n===F.Top?e-t:n===F.Bottom?e+t:e}const In=function({radius:e=10,centerX:t=0,centerY:n=0,position:o=F.Top,type:i}){return l.h("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${i}`,cx:Xu(t,e,o),cy:Uu(n,e,o),r:e,stroke:"transparent",fill:"transparent"})};In.props=["radius","centerX","centerY","position","type"],In.compatConfig={MODE:3};const Ni=In,Zu=l.defineComponent({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:o,edgeUpdaterRadius:i,emits:r,nodesSelectionActive:a,noPanClassName:s,getEdgeTypes:u,removeSelectedEdges:c,findEdge:d,findNode:h,isValidConnection:p,multiSelectionActive:m,disableKeyboardA11y:b,elementsSelectable:_,edgesUpdatable:E,edgesFocusable:N}=de(),g=l.computed(()=>d(e.id)),k=Ss(g.value,r),S=l.inject(Tt),B=l.getCurrentInstance(),A=l.ref(!1),O=l.ref(!1),U=l.ref(""),Z=l.ref(null),D=l.ref("source"),x=l.ref(null),j=l.toRef(()=>typeof g.value.selectable>"u"?_.value:g.value.selectable),H=l.toRef(()=>typeof g.value.updatable>"u"?E.value:g.value.updatable),v=l.toRef(()=>typeof g.value.focusable>"u"?N.value:g.value.focusable);l.provide(bs,e.id),l.provide(Es,x);const T=l.computed(()=>g.value.class instanceof Function?g.value.class(g.value):g.value.class),C=l.computed(()=>g.value.style instanceof Function?g.value.style(g.value):g.value.style),$=l.computed(()=>{const Y=g.value.type||"default",f=S==null?void 0:S[`edge-${Y}`];if(f)return f;let y=g.value.template??u.value[Y];if(typeof y=="string"&&B){const w=Object.keys(B.appContext.components);w&&w.includes(Y)&&(y=l.resolveComponent(Y,!1))}return y&&typeof y!="string"?y:(r.error(new ge(he.EDGE_TYPE_MISSING,y)),!1)}),{handlePointerDown:z}=Oo({nodeId:U,handleId:Z,type:D,isValidConnection:p,edgeUpdaterType:D,onEdgeUpdate:L,onEdgeUpdateEnd:K});return()=>{const Y=h(g.value.source),f=h(g.value.target),y="pathOptions"in g.value?g.value.pathOptions:{};if(!Y&&!f)return r.error(new ge(he.EDGE_SOURCE_TARGET_MISSING,g.value.id,g.value.source,g.value.target)),null;if(!Y)return r.error(new ge(he.EDGE_SOURCE_MISSING,g.value.id,g.value.source)),null;if(!f)return r.error(new ge(he.EDGE_TARGET_MISSING,g.value.id,g.value.target)),null;if(!g.value||g.value.hidden||Y.hidden||f.hidden)return null;let w;o.value===Oe.Strict?w=Y.handleBounds.source:w=[...Y.handleBounds.source||[],...Y.handleBounds.target||[]];const I=ri(w,g.value.sourceHandle);let V;o.value===Oe.Strict?V=f.handleBounds.target:V=[...f.handleBounds.target||[],...f.handleBounds.source||[]];const G=ri(V,g.value.targetHandle),X=I?I.position:F.Bottom,ee=G?G.position:F.Top,{sourceX:ne,sourceY:ce,targetY:ae,targetX:se}=Gs(Y,I,X,f,G,ee);return g.value.sourceX=ne,g.value.sourceY=ce,g.value.targetX=se,g.value.targetY=ae,l.h("g",{ref:x,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${$.value===!1?"default":g.value.type||"default"}`,s.value,T.value,{updating:A.value,selected:g.value.selected,animated:g.value.animated,inactive:!j.value}],onClick:te,onContextmenu:oe,onDblclick:ue,onMouseenter:le,onMousemove:q,onMouseleave:W,onKeyDown:v.value?ie:void 0,tabIndex:v.value?0:void 0,"aria-label":g.value.ariaLabel===null?void 0:g.value.ariaLabel||`Edge from ${g.value.source} to ${g.value.target}`,"aria-describedby":v.value?`${$o}-${t}`:void 0,role:v.value?"button":"img"},[O.value?null:l.h($.value===!1?u.value.default:$.value,{id:e.id,sourceNode:Y,targetNode:f,source:g.value.source,target:g.value.target,type:g.value.type,updatable:H.value,selected:g.value.selected,animated:g.value.animated,label:g.value.label,labelStyle:g.value.labelStyle,labelShowBg:g.value.labelShowBg,labelBgStyle:g.value.labelBgStyle,labelBgPadding:g.value.labelBgPadding,labelBgBorderRadius:g.value.labelBgBorderRadius,data:g.value.data,events:{...g.value.events,...k.on},style:C.value,markerStart:`url('#${ut(g.value.markerStart,t)}')`,markerEnd:`url('#${ut(g.value.markerEnd,t)}')`,sourcePosition:X,targetPosition:ee,sourceX:ne,sourceY:ce,targetX:se,targetY:ae,sourceHandleId:g.value.sourceHandle,targetHandleId:g.value.targetHandle,interactionWidth:g.value.interactionWidth,...y}),[H.value==="source"||H.value===!0?[l.h("g",{onMousedown:J,onMouseenter:M,onMouseout:P},l.h(Ni,{position:X,centerX:ne,centerY:ce,radius:i.value,type:"source","data-type":"source"}))]:null,H.value==="target"||H.value===!0?[l.h("g",{onMousedown:Q,onMouseenter:M,onMouseout:P},l.h(Ni,{position:ee,centerX:se,centerY:ae,radius:i.value,type:"target","data-type":"target"}))]:null]])};function M(){A.value=!0}function P(){A.value=!1}function L(Y,f){k.emit.update({event:Y,edge:g.value,connection:f})}function K(Y){k.emit.updateEnd({event:Y,edge:g.value}),O.value=!1}function re(Y,f){Y.button===0&&(O.value=!0,U.value=f?g.value.target:g.value.source,Z.value=(f?g.value.targetHandle:g.value.sourceHandle)??"",D.value=f?"target":"source",k.emit.updateStart({event:Y,edge:g.value}),z(Y))}function te(Y){var f;const y={event:Y,edge:g.value};j.value&&(a.value=!1,g.value.selected&&m.value?(c([g.value]),(f=x.value)==null||f.blur()):n([g.value])),k.emit.click(y)}function oe(Y){k.emit.contextMenu({event:Y,edge:g.value})}function ue(Y){k.emit.doubleClick({event:Y,edge:g.value})}function le(Y){k.emit.mouseEnter({event:Y,edge:g.value})}function q(Y){k.emit.mouseMove({event:Y,edge:g.value})}function W(Y){k.emit.mouseLeave({event:Y,edge:g.value})}function J(Y){re(Y,!0)}function Q(Y){re(Y,!1)}function ie(Y){var f;!b.value&&To.includes(Y.key)&&j.value&&(Y.key==="Escape"?((f=x.value)==null||f.blur(),c([d(e.id)])):n([d(e.id)]))}}}),Wu={[F.Left]:F.Right,[F.Right]:F.Left,[F.Top]:F.Bottom,[F.Bottom]:F.Top},Ku=l.defineComponent({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:o,connectionEndHandle:i,connectionPosition:r,connectionLineType:a,connectionLineStyle:s,connectionLineOptions:u,connectionStatus:c,viewport:d,findNode:h}=de(),p=(e=l.inject(Tt))==null?void 0:e["connection-line"],m=l.computed(()=>{var g;return h((g=o.value)==null?void 0:g.nodeId)}),b=l.computed(()=>{var g;return h((g=i.value)==null?void 0:g.nodeId)??null}),_=l.computed(()=>({x:(r.value.x-d.value.x)/d.value.zoom,y:(r.value.y-d.value.y)/d.value.zoom})),E=l.computed(()=>u.value.markerStart?`url(#${ut(u.value.markerStart,t)})`:""),N=l.computed(()=>u.value.markerEnd?`url(#${ut(u.value.markerEnd,t)})`:"");return()=>{var g,k,S;if(!m.value||!o.value)return null;const B=o.value.handleId,A=o.value.type,O=m.value.handleBounds;let U=O==null?void 0:O[A];if(n.value===Oe.Loose&&(U=U||(O==null?void 0:O[A==="source"?"target":"source"])),!U)return null;const Z=(B?U.find(z=>z.id===B):U[0])??null,D=(Z==null?void 0:Z.position)||F.Top,{x,y:j}=En(D,{...m.value.dimensions,...m.value.computedPosition},Z);let H=null;b.value&&((g=i.value)!=null&&g.handleId)&&(n.value===Oe.Strict?H=((k=b.value.handleBounds[A==="source"?"target":"source"])==null?void 0:k.find(z=>{var M;return z.id===((M=i.value)==null?void 0:M.handleId)}))||null:H=((S=[...b.value.handleBounds.source||[],...b.value.handleBounds.target||[]])==null?void 0:S.find(z=>{var M;return z.id===((M=i.value)==null?void 0:M.handleId)}))||null);const v=D?Wu[D]:null;if(!D||!v)return null;const T=a.value??u.value.type??Ve.Bezier;let C="";const $={sourceX:x,sourceY:j,sourcePosition:D,targetX:_.value.x,targetY:_.value.y,targetPosition:v};return T===Ve.Bezier?[C]=kn($):T===Ve.Step?[C]=Mn({...$,borderRadius:0}):T===Ve.SmoothStep?[C]=Mn($):T===Ve.SimpleBezier?[C]=_i($):C=`M${x},${j} ${_.value.x},${_.value.y}`,l.h("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},l.h("g",{class:"vue-flow__connection"},p?l.h(p,{sourceX:x,sourceY:j,sourcePosition:D,targetX:_.value.x,targetY:_.value.y,targetPosition:v,sourceNode:m.value,sourceHandle:Z,targetNode:b.value,targetHandle:H,markerEnd:N.value,markerStart:E.value,connectionStatus:c.value}):l.h("path",{d:C,class:[u.value.class,c,"vue-flow__connection-path"],style:{...s.value,...u.value.style},"marker-end":N.value,"marker-start":E.value})))}}}),qu=["id","markerWidth","markerHeight","markerUnits","orient"],Ju={name:"MarkerType",compatConfig:{MODE:3}},ju=l.defineComponent({...Ju,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(l.openBlock(),l.createElementBlock("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===l.unref(cn).ArrowClosed?(l.openBlock(),l.createElementBlock("polyline",{key:0,style:l.normalizeStyle({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):l.createCommentVNode("",!0),t.type===l.unref(cn).Arrow?(l.openBlock(),l.createElementBlock("polyline",{key:1,style:l.normalizeStyle({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):l.createCommentVNode("",!0)],8,qu))}}),Qu={class:"vue-flow__marker vue-flow__container"},ec={name:"MarkerDefinitions",compatConfig:{MODE:3}},tc=l.defineComponent({...ec,setup(e){const{id:t,edges:n,connectionLineOptions:o,defaultMarkerColor:i}=de(),r=l.computed(()=>{const a=new Set,s=[],u=c=>{if(c){const d=ut(c,t);a.has(d)||(typeof c=="object"?s.push({...c,id:d,color:c.color||i.value}):s.push({id:d,color:i.value,type:c}),a.add(d))}};for(const c of[o.value.markerEnd,o.value.markerStart])u(c);for(const c of n.value)for(const d of[c.markerStart,c.markerEnd])u(d);return s.sort((c,d)=>c.id.localeCompare(d.id))});return(a,s)=>(l.openBlock(),l.createElementBlock("svg",Qu,[l.createElementVNode("defs",null,[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,u=>(l.openBlock(),l.createBlock(ju,{id:u.id,key:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,"stroke-width":u.strokeWidth,orient:u.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),nc={name:"Edges",compatConfig:{MODE:3}},oc=l.defineComponent({...nc,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:o}=de();return(i,r)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createVNode(tc),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(l.unref(n),(a,s,u,c)=>{const d=[a.id];if(c&&c.key===a.id&&l.isMemoSame(c,d))return c;const h=(l.openBlock(),l.createElementBlock("svg",{key:a.id,class:"vue-flow__edges vue-flow__container",style:l.normalizeStyle({zIndex:l.unref(Us)(a,l.unref(t),l.unref(o))})},[l.createVNode(l.unref(Zu),{id:a.id},null,8,["id"])],4));return h.memo=d,h},r,0),128)),l.createVNode(l.unref(Ku))],64))}}),ic=l.defineComponent({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:o,nodesSelectionActive:i,multiSelectionActive:r,emits:a,removeSelectedNodes:s,addSelectedNodes:u,updateNodeDimensions:c,onUpdateNodeInternals:d,getNodeTypes:h,nodeExtent:p,elevateNodesOnSelect:m,disableKeyboardA11y:b,ariaLiveMessage:_,snapToGrid:E,snapGrid:N,nodeDragThreshold:g,nodesDraggable:k,elementsSelectable:S,nodesConnectable:B,nodesFocusable:A}=de(),O=l.ref(null);l.provide(Vo,O),l.provide(Do,e.id);const U=l.inject(Tt),Z=l.getCurrentInstance(),D=zo(),{node:x,parentNode:j}=Ao(e.id),H=l.toRef(()=>typeof x.draggable>"u"?k.value:x.draggable),v=l.toRef(()=>typeof x.selectable>"u"?S.value:x.selectable),T=l.toRef(()=>typeof x.connectable>"u"?B.value:x.connectable),C=l.toRef(()=>typeof x.focusable>"u"?A.value:x.focusable),$=l.toRef(()=>!!x.dimensions.width&&!!x.dimensions.height),z=l.computed(()=>{const f=x.type||"default",y=U==null?void 0:U[`node-${f}`];if(y)return y;let w=x.template||h.value[f];if(typeof w=="string"&&Z){const I=Object.keys(Z.appContext.components);I&&I.includes(f)&&(w=l.resolveComponent(f,!1))}return w&&typeof w!="string"?w:(a.error(new ge(he.NODE_TYPE_MISSING,w)),!1)}),{emit:M,on:P}=Ms(x,a),L=Po({id:e.id,el:O,disabled:()=>!H.value,selectable:v,dragHandle:()=>x.dragHandle,onStart(f){M.dragStart(f)},onDrag(f){M.drag(f)},onStop(f){M.dragStop(f)}}),K=l.computed(()=>x.class instanceof Function?x.class(x):x.class),re=l.computed(()=>{const f=(x.style instanceof Function?x.style(x):x.style)||{},y=x.width instanceof Function?x.width(x):x.width,w=x.height instanceof Function?x.height(x):x.height;return y&&(f.width=typeof y=="string"?y:`${y}px`),w&&(f.height=typeof w=="string"?w:`${w}px`),f}),te=l.toRef(()=>Number(x.zIndex??re.value.zIndex??0));return d(f=>{(f.includes(e.id)||!f.length)&&ue()}),l.onMounted(()=>{l.watch(()=>x.hidden,(f=!1,y,w)=>{!f&&O.value&&(e.resizeObserver.observe(O.value),w(()=>{O.value&&e.resizeObserver.unobserve(O.value)}))},{immediate:!0,flush:"pre"})}),l.watch([()=>x.type,()=>x.sourcePosition,()=>x.targetPosition],()=>{l.nextTick(()=>{c([{id:e.id,nodeElement:O.value,forceUpdate:!0}])})}),l.watch([()=>x.position.x,()=>x.position.y,()=>{var f;return(f=j.value)==null?void 0:f.computedPosition.x},()=>{var f;return(f=j.value)==null?void 0:f.computedPosition.y},()=>{var f;return(f=j.value)==null?void 0:f.computedPosition.z},te,()=>x.selected,()=>x.dimensions.height,()=>x.dimensions.width,()=>{var f;return(f=j.value)==null?void 0:f.dimensions.height},()=>{var f;return(f=j.value)==null?void 0:f.dimensions.width}],([f,y,w,I,V,G])=>{const X={x:f,y,z:G+(m.value&&x.selected?1e3:0)};typeof w<"u"&&typeof I<"u"?x.computedPosition=Rs({x:w,y:I,z:V},X):x.computedPosition=X},{flush:"post",immediate:!0}),l.watch([()=>x.extent,p],([f,y],[w,I])=>{(f!==w||y!==I)&&oe()}),x.extent==="parent"||typeof x.extent=="object"&&"range"in x.extent&&x.extent.range==="parent"?dt(()=>$).toBe(!0).then(oe):oe(),()=>x.hidden?null:l.h("div",{ref:O,"data-id":x.id,class:["vue-flow__node",`vue-flow__node-${z.value===!1?"default":x.type||"default"}`,{[n.value]:H.value,dragging:L==null?void 0:L.value,draggable:H.value,selected:x.selected,selectable:v.value,parent:x.isParent},K.value],style:{visibility:$.value?"visible":"hidden",zIndex:x.computedPosition.z??te.value,transform:`translate(${x.computedPosition.x}px,${x.computedPosition.y}px)`,pointerEvents:v.value||H.value?"all":"none",...re.value},tabIndex:C.value?0:void 0,role:C.value?"button":void 0,"aria-describedby":b.value?void 0:`${Io}-${t}`,"aria-label":x.ariaLabel,onMouseenter:le,onMousemove:q,onMouseleave:W,onContextmenu:J,onClick:ie,onDblclick:Q,onKeydown:Y},[l.h(z.value===!1?h.value.default:z.value,{id:x.id,type:x.type,data:x.data,events:{...x.events,...P},selected:x.selected,resizing:x.resizing,dragging:L.value,connectable:T.value,position:x.computedPosition,dimensions:x.dimensions,isValidTargetPos:x.isValidTargetPos,isValidSourcePos:x.isValidSourcePos,parent:x.parentNode,parentNodeId:x.parentNode,zIndex:x.computedPosition.z??te.value,targetPosition:x.targetPosition,sourcePosition:x.sourcePosition,label:x.label,dragHandle:x.dragHandle,onUpdateNodeInternals:ue})]);function oe(){const f=x.computedPosition;E.value&&(f.x=N.value[0]*Math.round(f.x/N.value[0]),f.y=N.value[1]*Math.round(f.y/N.value[1]));const{computedPosition:y,position:w}=bn(x,f,a.error,p.value,j.value);(x.computedPosition.x!==y.x||x.computedPosition.y!==y.y)&&(x.computedPosition={...x.computedPosition,...y}),(x.position.x!==w.x||x.position.y!==w.y)&&(x.position=w)}function ue(){O.value&&c([{id:e.id,nodeElement:O.value,forceUpdate:!0}])}function le(f){L!=null&&L.value||M.mouseEnter({event:f,node:x})}function q(f){L!=null&&L.value||M.mouseMove({event:f,node:x})}function W(f){L!=null&&L.value||M.mouseLeave({event:f,node:x})}function J(f){return M.contextMenu({event:f,node:x})}function Q(f){return M.doubleClick({event:f,node:x})}function ie(f){v.value&&(!o.value||!H.value||g.value>0)&&Cn(x,r.value,u,s,i,!1,O.value),M.click({event:f,node:x})}function Y(f){if(!(fn(f)||b.value))if(To.includes(f.key)&&v.value){const y=f.key==="Escape";Cn(x,r.value,u,s,i,y,O.value)}else H.value&&x.selected&&Ze[f.key]&&(_.value=`Moved selected node ${f.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~x.position.x}, y: ${~~x.position.y}`,D({x:Ze[f.key].x,y:Ze[f.key].y},f.shiftKey))}}}),rc={height:"0",width:"0"},lc={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},ac=l.defineComponent({...lc,setup(e){const{viewportRef:t}=de(),n=l.toRef(()=>{var o;return(o=t.value)==null?void 0:o.getElementsByClassName("vue-flow__edge-labels")[0]});return(o,i)=>(l.openBlock(),l.createElementBlock("svg",null,[(l.openBlock(),l.createElementBlock("foreignObject",rc,[(l.openBlock(),l.createBlock(l.Teleport,{to:n.value,disabled:!n.value},[l.renderSlot(o.$slots,"default")],8,["to","disabled"]))]))]))}});function sc(e={includeHiddenNodes:!1}){const{nodes:t}=de();return l.computed(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&((n==null?void 0:n.handleBounds)===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const uc={class:"vue-flow__nodes vue-flow__container"},cc={name:"Nodes",compatConfig:{MODE:3}},dc=l.defineComponent({...cc,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:o}=de(),i=sc(),r=l.ref();return l.watch(i,a=>{a&&l.nextTick(()=>{o.nodesInitialized(t.value)})},{immediate:!0}),l.onMounted(()=>{r.value=new ResizeObserver(a=>{const s=a.map(u=>({id:u.target.getAttribute("data-id"),nodeElement:u.target,forceUpdate:!0}));l.nextTick(()=>n(s))})}),l.onBeforeUnmount(()=>{var a;return(a=r.value)==null?void 0:a.disconnect()}),(a,s)=>(l.openBlock(),l.createElementBlock("div",uc,[r.value?(l.openBlock(!0),l.createElementBlock(l.Fragment,{key:0},l.renderList(l.unref(t),(u,c,d,h)=>{const p=[u.id];if(h&&h.key===u.id&&l.isMemoSame(h,p))return h;const m=(l.openBlock(),l.createBlock(l.unref(ic),{id:u.id,key:u.id,"resize-observer":r.value},null,8,["id","resize-observer"]));return m.memo=p,m},s,0),128)):l.createCommentVNode("",!0)]))}});function fc(){const{emits:e}=de();l.onMounted(()=>{if(ci()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new ge(he.MISSING_STYLES))}})}const hc=l.createElementVNode("div",{class:"vue-flow__edge-labels"},null,-1),gc={name:"VueFlow",compatConfig:{MODE:3}},pc=l.defineComponent({...gc,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0}},emits:["nodesChange","edgesChange","nodesInitialized","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneReady","init","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","updateNodeInternals","error","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdate","edgeUpdateEnd","nodeDoubleClick","nodeClick","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeContextMenu","nodeDragStart","nodeDrag","nodeDragStop","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const o=e,i=l.useSlots(),r=Yt(o,"modelValue",n),a=Yt(o,"nodes",n),s=Yt(o,"edges",n),u=de(o),c=Ts({modelValue:r,nodes:a,edges:s},o,u);return eu(n,u.hooks),Gu(),fc(),l.provide(Tt,i),l.onUnmounted(()=>{c()}),t(u),(d,h)=>(l.openBlock(),l.createElementBlock("div",{ref:l.unref(u).vueFlowRef,class:"vue-flow"},[l.createVNode(zu,null,{default:l.withCtx(()=>[l.createVNode(oc),hc,l.createVNode(dc),l.renderSlot(d.$slots,"zoom-pane")]),_:3}),l.renderSlot(d.$slots,"default"),l.createVNode(Yu)],512))}}),mc=["id","d","marker-end"],yc={class:"vue-flow__edge-label"},vc={key:0,class:"label-input-wrapper"},wc={inheritAttrs:!1},_c=l.defineComponent({...wc,__name:"EditableEdge",props:{id:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},label:{},style:{},selected:{type:Boolean},sourcePosition:{},targetPosition:{},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},markerEnd:{},curvature:{},interactionWidth:{},data:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{},sourceX:{},sourceY:{},targetX:{},targetY:{}},emits:["change"],setup(e,{emit:t}){const n=e,o=t,i=l.useTemplateRef("labelInput"),r=l.ref(""),a=l.ref(!1);let s=0;const u=async()=>{let p=Date.now();p-s<500&&!a.value&&await c(),s=p},c=async()=>{r.value=n.label,a.value=!0,await l.nextTick(),i.value.focus()},d=()=>{a.value=!1,o("change",r.value)},h=l.computed(()=>kn(n));return(p,m)=>(l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createElementVNode("path",{id:p.id,style:l.normalizeStyle(p.style),class:"vue-flow__edge-path",d:h.value[0],"marker-end":p.markerEnd},null,12,mc),l.createVNode(l.unref(ac),null,{default:l.withCtx(()=>[l.createElementVNode("div",{style:l.normalizeStyle({pointerEvents:"all",position:"absolute",transform:`translate(-50%, -50%) translate(${h.value[1]}px,${h.value[2]}px)`}),class:"nodrag nopan editable-edge-label",onClick:m[2]||(m[2]=b=>u())},[l.createElementVNode("div",yc,l.toDisplayString(p.label),1),a.value?(l.openBlock(),l.createElementBlock("div",vc,[l.withDirectives(l.createElementVNode("input",{ref:"labelInput",class:"label-input","onUpdate:modelValue":m[0]||(m[0]=b=>r.value=b),onBlur:m[1]||(m[1]=b=>a.value=!1),onKeypress:l.withKeys(d,["enter"])},null,544),[[l.vModelText,r.value]])])):l.createCommentVNode("",!0)],4)]),_:1})],64))}}),bc={key:0,class:"label-input-wrapper"},Ec=l.defineComponent({__name:"EditableNode",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},emits:["change"],setup(e,{emit:t}){const n=e,o=t,i=l.useTemplateRef("labelInput"),r=l.ref(""),a=l.ref(!1);let s=0;const u=async()=>{let h=Date.now();h-s<500&&!a.value&&await c(),s=h},c=async()=>{r.value=n.label,a.value=!0,await l.nextTick(),i.value.focus()},d=()=>{a.value=!1,o("change",r.value)};return(h,p)=>(l.openBlock(),l.createElementBlock("div",{onClick:p[2]||(p[2]=m=>u())},[l.createElementVNode("div",null,l.toDisplayString(h.label),1),a.value?(l.openBlock(),l.createElementBlock("div",bc,[l.withDirectives(l.createElementVNode("input",{ref:"labelInput",class:"label-input","onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m),onBlur:p[1]||(p[1]=m=>a.value=!1),onKeypress:l.withKeys(d,["enter"])},null,544),[[l.vModelText,r.value]])])):l.createCommentVNode("",!0),h.data.hasInput?(l.openBlock(),l.createBlock(l.unref(Ke),{key:1,id:"a",type:"target",position:h.targetPosition},null,8,["position"])):l.createCommentVNode("",!0),h.data.hasOutput?(l.openBlock(),l.createBlock(l.unref(Ke),{key:2,id:"b",type:"source",position:h.sourcePosition},null,8,["position"])):l.createCommentVNode("",!0)]))}}),xc={class:"chart-controls"},Sc={class:"chart-controls-left"},Nc={class:"chart-controls-right"},Cc={key:0},kc={key:1},$n=l.defineComponent({__name:"NodeEditor",props:{modelValue:{},nodeContainerClass:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t,o=l.ref(!1),i=l.ref([]),r=l.ref(),a=l.ref(""),s=l.computed(()=>(i.value.forEach((g,k)=>{if(g.id===a.value)return k}),-1)),u=l.computed({get:()=>{const g=e.modelValue;for(const k of g)k.data={},k.type==="input"?(k.data.hasInput=!1,k.data.hasOutput=!0):k.type==="output"?(k.data.hasInput=!0,k.data.hasOutput=!1):(k.data.hasInput=!0,k.data.hasOutput=!0),k.class="vue-flow__node-default",k.type="editable";for(const k of g)k.events={click:()=>{a.value=k.id}};return g},set:g=>{n("update:modelValue",JSON.parse(JSON.stringify(g)))}});l.onMounted(()=>{document.removeEventListener("keypress",b),document.addEventListener("keypress",b)}),l.onBeforeUnmount(()=>{document.removeEventListener("keypress",b)});const{onPaneReady:c}=de();c(g=>{r.value=g}),i.value=u.value;const d=g=>({[F.Top]:F.Right,[F.Right]:F.Bottom,[F.Bottom]:F.Left,[F.Left]:F.Top})[g],h=()=>{if(s.value>-1){const g=i.value[s.value];g.sourcePosition=d(g.sourcePosition)}},p=()=>{if(s.value>-1){const g=i.value[s.value];g.targetPosition=d(g.targetPosition)}},m=g=>{window.scrollBy(0,g.deltaY)},b=g=>{o.value&&g.ctrlKey==!0&&((g.key=="+"||g.key=="=")&&r.value.zoomIn(),g.key=="-"&&r.value.zoomOut())},_=async()=>{await r.value.fitView()},E=()=>{let g=!1,k={x:Math.random()*200,y:Math.random()*200};if(s.value>-1){const A=i.value[s.value];A.data.hasOutput&&(k={x:A.position.x+200,y:A.position.y+50},g=!0)}const S=i.value.length,B=`node-${S}`;if(i.value.push({id:B,label:"Node "+S,sourcePosition:F.Right,targetPosition:F.Left,class:"vue-flow__node-default",type:"editable",data:{hasInput:!0,hasOutput:!0},events:{click:()=>{a.value=B}},position:k}),g){let A=`edge-${S+1}`;i.value.push({id:A,source:a.value,target:B,type:"editable",label:`EDGE ${S+1}`,animated:!0,events:{click:()=>{a.value=A}}})}},N=(g,k)=>{for(let S=0;S<i.value.length;S++)if(i.value[S].id==k){i.value[S].label=g;break}};return(g,k)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(["node-editor-wrapper",g.nodeContainerClass]),onMouseover:k[1]||(k[1]=S=>o.value=!0),onMouseleave:k[2]||(k[2]=S=>o.value=!1)},[l.createElementVNode("div",xc,[l.createElementVNode("div",Sc,[l.createElementVNode("div",null,[k[3]||(k[3]=l.createElementVNode("b",null,"Selected Node:",-1)),l.createTextVNode(" "+l.toDisplayString(a.value?a.value:"none"),1)])]),l.createElementVNode("div",Nc,[l.createElementVNode("div",null,[l.createElementVNode("button",{class:"button-default",onClick:E},"Add Node")]),l.createElementVNode("div",null,[l.createElementVNode("button",{class:"button-default",onClick:_},"Center")]),s.value>-1?(l.openBlock(),l.createElementBlock("div",Cc,[l.createElementVNode("button",{class:"button-default",onClick:p},"Shift Input Position")])):l.createCommentVNode("",!0),s.value>-1?(l.openBlock(),l.createElementBlock("div",kc,[l.createElementVNode("button",{class:"button-default",onClick:h},"Shift Output Position")])):l.createCommentVNode("",!0)])]),i.value&&i.value.length?(l.openBlock(),l.createBlock(l.unref(pc),{key:0,class:"nowheel","prevent-scrolling":!0,"zoom-on-scroll":!1,"fit-view-on-init":!0,modelValue:i.value,"onUpdate:modelValue":k[0]||(k[0]=S=>i.value=S),onWheel:l.withModifiers(m,["prevent"])},{"node-editable":l.withCtx(S=>[l.createVNode(Ec,l.mergeProps(S,{onChange:B=>N(B,S.id)}),null,16,["onChange"])]),"edge-editable":l.withCtx(S=>[l.createVNode(_c,l.mergeProps(S,{onChange:B=>N(B,S.id)}),null,16,["onChange"])]),_:1},8,["modelValue"])):l.createCommentVNode("",!0)],34))}}),Ci=l.defineComponent({__name:"StateEditor",props:l.mergeModels({layout:{},nodeContainerClass:{}},{modelValue:{},modelModifiers:{}}),emits:l.mergeModels(["update:modelValue"],["update:modelValue"]),setup(e,{emit:t}){const n=t,o=l.useModel(e,"modelValue"),i=l.computed({get:()=>{var d,h,p;const a={},s=[],u={};let c=0;for(const[m,b]of Object.entries(o.value)){const _={id:m,label:m,position:((d=e.layout[m])==null?void 0:d.position)||{x:200*c,y:100},targetPosition:((h=e.layout[m])==null?void 0:h.targetPosition)||F.Left,sourcePosition:((p=e.layout[m])==null?void 0:p.sourcePosition)||F.Right};if(b.type==="final"&&(_.type="output",_.class="default-output-node"),u[m]=_,b.on){for(const[E,N]of Object.entries(b.on))if(Array.isArray(N))for(const g of N){const S=g.toJSON().target.toString();s.push({id:`${m}-${E}`,target:S,source:m,label:E,animated:!0}),a[S]=!0}}c++}for(const[m,b]of Object.entries(u))a[m]||(b.type="input",b.class="default-input-node"),s.push(b);return s},set:a=>{r(a)}}),r=a=>{const s={},u={},c={};for(const d of a){const h=d.label;d.type==="input"?c[h]={on:{}}:d.type==="output"?c[h]={type:"final"}:c[h]={on:{}},u[d.id]=h}for(const[d,h]of Object.entries(s)){const p=u[d];for(const[m,b]of Object.entries(h))c[p].on[m]=b}n("update:modelValue",c)};return(a,s)=>(l.openBlock(),l.createElementBlock("div",null,[l.createVNode($n,{modelValue:i.value,"onUpdate:modelValue":s[0]||(s[0]=u=>i.value=u),"node-container-class":a.nodeContainerClass},null,8,["modelValue","node-container-class"])]))}});function Mc(e){e.component("NodeEditor",$n),e.component("StateEditor",Ci)}xe.NodeEditor=$n,xe.StateEditor=Ci,xe.install=Mc,Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"})});
|
|
22
22
|
//# sourceMappingURL=node-editor.umd.cjs.map
|